From 990570b96dff809d6627d2a81f945dffc7d1d728 Mon Sep 17 00:00:00 2001
From: sundp <dp.s@yunhorn.com>
Date: Sun, 8 Oct 2023 22:50:44 +0800
Subject: [PATCH]  add bin file

---
 STM32CubeIDE/Debug/STS_RR_R125.list           | 59439 ++++++++++++++++
 .../Release/STS_RR_R125-YUNHORN-MASTER.bin    |   Bin 0 -> 90840 bytes
 .../Release/STS_RR_R125-YUNHORN-MASTER.list   | 32756 +++++++++
 STM32CubeIDE/Release/STS_RR_R125.bin          |   Bin 0 -> 91396 bytes
 STM32CubeIDE/Release/STS_RR_R125.list         | 32914 +++++++++
 STS-IOT-PCBA.pdf                              |   Bin 0 -> 269464 bytes
 6 files changed, 125109 insertions(+)
 create mode 100644 STM32CubeIDE/Debug/STS_RR_R125.list
 create mode 100644 STM32CubeIDE/Release/STS_RR_R125-YUNHORN-MASTER.bin
 create mode 100644 STM32CubeIDE/Release/STS_RR_R125-YUNHORN-MASTER.list
 create mode 100644 STM32CubeIDE/Release/STS_RR_R125.bin
 create mode 100644 STM32CubeIDE/Release/STS_RR_R125.list
 create mode 100644 STS-IOT-PCBA.pdf

diff --git a/STM32CubeIDE/Debug/STS_RR_R125.list b/STM32CubeIDE/Debug/STS_RR_R125.list
new file mode 100644
index 0000000..5c52a9e
--- /dev/null
+++ b/STM32CubeIDE/Debug/STS_RR_R125.list
@@ -0,0 +1,59439 @@
+
+STS_RR_R125.elf:     file format elf32-littlearm
+
+Sections:
+Idx Name          Size      VMA       LMA       File off  Algn
+  0 .isr_vector   00000138  08000000  08000000  00010000  2**0
+                  CONTENTS, ALLOC, LOAD, READONLY, DATA
+  1 .text         00017738  08000138  08000138  00010138  2**3
+                  CONTENTS, ALLOC, LOAD, READONLY, CODE
+  2 .rodata       000015e8  08017870  08017870  00027870  2**2
+                  CONTENTS, ALLOC, LOAD, READONLY, DATA
+  3 .USER_embedded_Keys 000000d8  08018e58  08018e58  00028e58  2**2
+                  CONTENTS, ALLOC, LOAD, READONLY, DATA
+  4 .ARM.extab    00000000  08018f30  08018f30  000308cc  2**0
+                  CONTENTS
+  5 .ARM          00000008  08018f30  08018f30  00028f30  2**2
+                  CONTENTS, ALLOC, LOAD, READONLY, DATA
+  6 .preinit_array 00000000  08018f38  08018f38  000308cc  2**0
+                  CONTENTS, ALLOC, LOAD, DATA
+  7 .init_array   00000004  08018f38  08018f38  00028f38  2**2
+                  CONTENTS, ALLOC, LOAD, DATA
+  8 .fini_array   00000004  08018f3c  08018f3c  00028f3c  2**2
+                  CONTENTS, ALLOC, LOAD, DATA
+  9 .data         000008cc  20000000  08018f40  00030000  2**2
+                  CONTENTS, ALLOC, LOAD, DATA
+ 10 .bss          00002578  200008cc  0801980c  000308cc  2**2
+                  ALLOC
+ 11 ._user_heap_stack 00000a04  20002e44  0801980c  00032e44  2**0
+                  ALLOC
+ 12 .ARM.attributes 0000002e  00000000  00000000  000308cc  2**0
+                  CONTENTS, READONLY
+ 13 .comment      00000043  00000000  00000000  000308fa  2**0
+                  CONTENTS, READONLY
+ 14 .iar_vfe_header 00000020  00000000  00000000  00030940  2**2
+                  CONTENTS, READONLY
+ 15 .debug_info   00069db0  00000000  00000000  00030960  2**0
+                  CONTENTS, READONLY, DEBUGGING, OCTETS
+ 16 .debug_abbrev 0000d77a  00000000  00000000  0009a710  2**0
+                  CONTENTS, READONLY, DEBUGGING, OCTETS
+ 17 .debug_loclists 00020684  00000000  00000000  000a7e8a  2**0
+                  CONTENTS, READONLY, DEBUGGING, OCTETS
+ 18 .debug_aranges 00003570  00000000  00000000  000c8510  2**3
+                  CONTENTS, READONLY, DEBUGGING, OCTETS
+ 19 .debug_rnglists 00002b39  00000000  00000000  000cba80  2**0
+                  CONTENTS, READONLY, DEBUGGING, OCTETS
+ 20 .debug_macro  0002e415  00000000  00000000  000ce5b9  2**0
+                  CONTENTS, READONLY, DEBUGGING, OCTETS
+ 21 .debug_line   00063196  00000000  00000000  000fc9ce  2**0
+                  CONTENTS, READONLY, DEBUGGING, OCTETS
+ 22 .debug_str    000dbc5e  00000000  00000000  0015fb64  2**0
+                  CONTENTS, READONLY, DEBUGGING, OCTETS
+ 23 .debug_frame  000098f0  00000000  00000000  0023b7c4  2**2
+                  CONTENTS, READONLY, DEBUGGING, OCTETS
+ 24 .debug_line_str 00000096  00000000  00000000  002450b4  2**0
+                  CONTENTS, READONLY, DEBUGGING, OCTETS
+
+Disassembly of section .text:
+
+08000138 <__do_global_dtors_aux>:
+ 8000138:	b510      	push	{r4, lr}
+ 800013a:	4c05      	ldr	r4, [pc, #20]	; (8000150 <__do_global_dtors_aux+0x18>)
+ 800013c:	7823      	ldrb	r3, [r4, #0]
+ 800013e:	b933      	cbnz	r3, 800014e <__do_global_dtors_aux+0x16>
+ 8000140:	4b04      	ldr	r3, [pc, #16]	; (8000154 <__do_global_dtors_aux+0x1c>)
+ 8000142:	b113      	cbz	r3, 800014a <__do_global_dtors_aux+0x12>
+ 8000144:	4804      	ldr	r0, [pc, #16]	; (8000158 <__do_global_dtors_aux+0x20>)
+ 8000146:	f3af 8000 	nop.w
+ 800014a:	2301      	movs	r3, #1
+ 800014c:	7023      	strb	r3, [r4, #0]
+ 800014e:	bd10      	pop	{r4, pc}
+ 8000150:	200008cc 	.word	0x200008cc
+ 8000154:	00000000 	.word	0x00000000
+ 8000158:	08017858 	.word	0x08017858
+
+0800015c <frame_dummy>:
+ 800015c:	b508      	push	{r3, lr}
+ 800015e:	4b03      	ldr	r3, [pc, #12]	; (800016c <frame_dummy+0x10>)
+ 8000160:	b11b      	cbz	r3, 800016a <frame_dummy+0xe>
+ 8000162:	4903      	ldr	r1, [pc, #12]	; (8000170 <frame_dummy+0x14>)
+ 8000164:	4803      	ldr	r0, [pc, #12]	; (8000174 <frame_dummy+0x18>)
+ 8000166:	f3af 8000 	nop.w
+ 800016a:	bd08      	pop	{r3, pc}
+ 800016c:	00000000 	.word	0x00000000
+ 8000170:	200008d0 	.word	0x200008d0
+ 8000174:	08017858 	.word	0x08017858
+
+08000178 <cmox_sha1_setDefaultMacLen>:
+ 8000178:	2114      	movs	r1, #20
+ 800017a:	6041      	str	r1, [r0, #4]
+ 800017c:	4770      	bx	lr
+
+0800017e <cmox_sha1_getDefaultMacLen>:
+ 800017e:	2014      	movs	r0, #20
+ 8000180:	4770      	bx	lr
+
+08000182 <cmox_sha1_getBlockLen>:
+ 8000182:	6a40      	ldr	r0, [r0, #36]	; 0x24
+ 8000184:	4770      	bx	lr
+	...
+
+08000188 <CMOX_HMAC_SUPPORT_SHA1>:
+ 8000188:	0179 0800 017f 0800 0183 0800               y...........
+
+08000194 <CMOX_HMAC_SHA1_TABLE>:
+ 8000194:	0199 0800                                   ....
+
+08000198 <cmox_hmac_sha1_constructor>:
+ 8000198:	b510      	push	{r4, lr}
+ 800019a:	4604      	mov	r4, r0
+ 800019c:	f104 0010 	add.w	r0, r4, #16
+ 80001a0:	f000 fc5c 	bl	8000a5c <cmox_sha1_construct>
+ 80001a4:	f8c4 00f8 	str.w	r0, [r4, #248]	; 0xf8
+ 80001a8:	4801      	ldr	r0, [pc, #4]	; (80001b0 <cmox_hmac_sha1_constructor+0x18>)
+ 80001aa:	f8c4 017c 	str.w	r0, [r4, #380]	; 0x17c
+ 80001ae:	bd10      	pop	{r4, pc}
+ 80001b0:	08000188 	.word	0x08000188
+
+080001b4 <cmox_hmac_sha1_compute>:
+ 80001b4:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 80001b6:	b0e6      	sub	sp, #408	; 0x198
+ 80001b8:	4604      	mov	r4, r0
+ 80001ba:	460d      	mov	r5, r1
+ 80001bc:	4616      	mov	r6, r2
+ 80001be:	461f      	mov	r7, r3
+ 80001c0:	490a      	ldr	r1, [pc, #40]	; (80001ec <cmox_hmac_sha1_compute+0x38>)
+ 80001c2:	a806      	add	r0, sp, #24
+ 80001c4:	f000 feca 	bl	8000f5c <cmox_hmac_construct>
+ 80001c8:	9970      	ldr	r1, [sp, #448]	; 0x1c0
+ 80001ca:	9a6f      	ldr	r2, [sp, #444]	; 0x1bc
+ 80001cc:	9105      	str	r1, [sp, #20]
+ 80001ce:	9204      	str	r2, [sp, #16]
+ 80001d0:	9700      	str	r7, [sp, #0]
+ 80001d2:	4633      	mov	r3, r6
+ 80001d4:	996e      	ldr	r1, [sp, #440]	; 0x1b8
+ 80001d6:	9a6d      	ldr	r2, [sp, #436]	; 0x1b4
+ 80001d8:	9103      	str	r1, [sp, #12]
+ 80001da:	9202      	str	r2, [sp, #8]
+ 80001dc:	462a      	mov	r2, r5
+ 80001de:	996c      	ldr	r1, [sp, #432]	; 0x1b0
+ 80001e0:	9101      	str	r1, [sp, #4]
+ 80001e2:	4621      	mov	r1, r4
+ 80001e4:	f000 f860 	bl	80002a8 <cmox_mac_innerCompute>
+ 80001e8:	b067      	add	sp, #412	; 0x19c
+ 80001ea:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 80001ec:	08000194 	.word	0x08000194
+
+080001f0 <cmox_hmac_sha1_verify>:
+ 80001f0:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 80001f2:	b0e6      	sub	sp, #408	; 0x198
+ 80001f4:	4604      	mov	r4, r0
+ 80001f6:	460d      	mov	r5, r1
+ 80001f8:	4616      	mov	r6, r2
+ 80001fa:	461f      	mov	r7, r3
+ 80001fc:	4909      	ldr	r1, [pc, #36]	; (8000224 <cmox_hmac_sha1_verify+0x34>)
+ 80001fe:	a806      	add	r0, sp, #24
+ 8000200:	f000 feac 	bl	8000f5c <cmox_hmac_construct>
+ 8000204:	996f      	ldr	r1, [sp, #444]	; 0x1bc
+ 8000206:	9a6e      	ldr	r2, [sp, #440]	; 0x1b8
+ 8000208:	9104      	str	r1, [sp, #16]
+ 800020a:	9203      	str	r2, [sp, #12]
+ 800020c:	9700      	str	r7, [sp, #0]
+ 800020e:	996d      	ldr	r1, [sp, #436]	; 0x1b4
+ 8000210:	9a6c      	ldr	r2, [sp, #432]	; 0x1b0
+ 8000212:	9102      	str	r1, [sp, #8]
+ 8000214:	9201      	str	r2, [sp, #4]
+ 8000216:	4633      	mov	r3, r6
+ 8000218:	462a      	mov	r2, r5
+ 800021a:	4621      	mov	r1, r4
+ 800021c:	f000 f887 	bl	800032e <cmox_mac_innerVerify>
+ 8000220:	b067      	add	sp, #412	; 0x19c
+ 8000222:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8000224:	08000194 	.word	0x08000194
+
+08000228 <cmox_initialize>:
+ 8000228:	b538      	push	{r3, r4, r5, lr}
+ 800022a:	2800      	cmp	r0, #0
+ 800022c:	bf1c      	itt	ne
+ 800022e:	6801      	ldrne	r1, [r0, #0]
+ 8000230:	2900      	cmpne	r1, #0
+ 8000232:	4a18      	ldr	r2, [pc, #96]	; (8000294 <cmox_initialize+0x6c>)
+ 8000234:	d123      	bne.n	800027e <cmox_initialize+0x56>
+ 8000236:	4b18      	ldr	r3, [pc, #96]	; (8000298 <cmox_initialize+0x70>)
+ 8000238:	681c      	ldr	r4, [r3, #0]
+ 800023a:	f64f 71f0 	movw	r1, #65520	; 0xfff0
+ 800023e:	400c      	ands	r4, r1
+ 8000240:	f24c 2540 	movw	r5, #49728	; 0xc240
+ 8000244:	42ac      	cmp	r4, r5
+ 8000246:	bf1f      	itttt	ne
+ 8000248:	681b      	ldrne	r3, [r3, #0]
+ 800024a:	4019      	andne	r1, r3
+ 800024c:	f24c 2470 	movwne	r4, #49776	; 0xc270
+ 8000250:	42a1      	cmpne	r1, r4
+ 8000252:	d112      	bne.n	800027a <cmox_initialize+0x52>
+ 8000254:	4d11      	ldr	r5, [pc, #68]	; (800029c <cmox_initialize+0x74>)
+ 8000256:	6829      	ldr	r1, [r5, #0]
+ 8000258:	b979      	cbnz	r1, 800027a <cmox_initialize+0x52>
+ 800025a:	4911      	ldr	r1, [pc, #68]	; (80002a0 <cmox_initialize+0x78>)
+ 800025c:	680b      	ldr	r3, [r1, #0]
+ 800025e:	f3c3 030b 	ubfx	r3, r3, #0, #12
+ 8000262:	f5b3 6f8a 	cmp.w	r3, #1104	; 0x450
+ 8000266:	bf1f      	itttt	ne
+ 8000268:	6809      	ldrne	r1, [r1, #0]
+ 800026a:	f3c1 010b 	ubfxne	r1, r1, #0, #12
+ 800026e:	f240 4383 	movwne	r3, #1155	; 0x483
+ 8000272:	4299      	cmpne	r1, r3
+ 8000274:	bf04      	itt	eq
+ 8000276:	2101      	moveq	r1, #1
+ 8000278:	7011      	strbeq	r1, [r2, #0]
+ 800027a:	b928      	cbnz	r0, 8000288 <cmox_initialize+0x60>
+ 800027c:	e005      	b.n	800028a <cmox_initialize+0x62>
+ 800027e:	4b09      	ldr	r3, [pc, #36]	; (80002a4 <cmox_initialize+0x7c>)
+ 8000280:	4299      	cmp	r1, r3
+ 8000282:	bf04      	itt	eq
+ 8000284:	2101      	moveq	r1, #1
+ 8000286:	7011      	strbeq	r1, [r2, #0]
+ 8000288:	6840      	ldr	r0, [r0, #4]
+ 800028a:	e8bd 4032 	ldmia.w	sp!, {r1, r4, r5, lr}
+ 800028e:	f001 bec5 	b.w	800201c <cmox_ll_init>
+ 8000292:	bf00      	nop
+ 8000294:	200008e8 	.word	0x200008e8
+ 8000298:	e000ed00 	.word	0xe000ed00
+ 800029c:	e0042000 	.word	0xe0042000
+ 80002a0:	5c001000 	.word	0x5c001000
+ 80002a4:	48370000 	.word	0x48370000
+
+080002a8 <cmox_mac_innerCompute>:
+ 80002a8:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 80002ac:	4604      	mov	r4, r0
+ 80002ae:	460d      	mov	r5, r1
+ 80002b0:	6821      	ldr	r1, [r4, #0]
+ 80002b2:	4616      	mov	r6, r2
+ 80002b4:	684a      	ldr	r2, [r1, #4]
+ 80002b6:	461f      	mov	r7, r3
+ 80002b8:	4790      	blx	r2
+ 80002ba:	4680      	mov	r8, r0
+ 80002bc:	f5b8 3f40 	cmp.w	r8, #196608	; 0x30000
+ 80002c0:	d12e      	bne.n	8000320 <cmox_mac_innerCompute+0x78>
+ 80002c2:	6822      	ldr	r2, [r4, #0]
+ 80002c4:	990a      	ldr	r1, [sp, #40]	; 0x28
+ 80002c6:	6893      	ldr	r3, [r2, #8]
+ 80002c8:	4620      	mov	r0, r4
+ 80002ca:	4798      	blx	r3
+ 80002cc:	4680      	mov	r8, r0
+ 80002ce:	f5b8 3f40 	cmp.w	r8, #196608	; 0x30000
+ 80002d2:	d125      	bne.n	8000320 <cmox_mac_innerCompute+0x78>
+ 80002d4:	6823      	ldr	r3, [r4, #0]
+ 80002d6:	9a08      	ldr	r2, [sp, #32]
+ 80002d8:	9907      	ldr	r1, [sp, #28]
+ 80002da:	f8d3 c00c 	ldr.w	ip, [r3, #12]
+ 80002de:	4620      	mov	r0, r4
+ 80002e0:	47e0      	blx	ip
+ 80002e2:	4680      	mov	r8, r0
+ 80002e4:	f5b8 3f40 	cmp.w	r8, #196608	; 0x30000
+ 80002e8:	d11a      	bne.n	8000320 <cmox_mac_innerCompute+0x78>
+ 80002ea:	6823      	ldr	r3, [r4, #0]
+ 80002ec:	9a06      	ldr	r2, [sp, #24]
+ 80002ee:	4639      	mov	r1, r7
+ 80002f0:	691f      	ldr	r7, [r3, #16]
+ 80002f2:	4620      	mov	r0, r4
+ 80002f4:	47b8      	blx	r7
+ 80002f6:	4680      	mov	r8, r0
+ 80002f8:	f5b8 3f40 	cmp.w	r8, #196608	; 0x30000
+ 80002fc:	d110      	bne.n	8000320 <cmox_mac_innerCompute+0x78>
+ 80002fe:	6823      	ldr	r3, [r4, #0]
+ 8000300:	4629      	mov	r1, r5
+ 8000302:	695d      	ldr	r5, [r3, #20]
+ 8000304:	4632      	mov	r2, r6
+ 8000306:	4620      	mov	r0, r4
+ 8000308:	47a8      	blx	r5
+ 800030a:	4680      	mov	r8, r0
+ 800030c:	f5b8 3f40 	cmp.w	r8, #196608	; 0x30000
+ 8000310:	d106      	bne.n	8000320 <cmox_mac_innerCompute+0x78>
+ 8000312:	6823      	ldr	r3, [r4, #0]
+ 8000314:	9a0b      	ldr	r2, [sp, #44]	; 0x2c
+ 8000316:	9909      	ldr	r1, [sp, #36]	; 0x24
+ 8000318:	699d      	ldr	r5, [r3, #24]
+ 800031a:	4620      	mov	r0, r4
+ 800031c:	47a8      	blx	r5
+ 800031e:	4680      	mov	r8, r0
+ 8000320:	6821      	ldr	r1, [r4, #0]
+ 8000322:	680a      	ldr	r2, [r1, #0]
+ 8000324:	4620      	mov	r0, r4
+ 8000326:	4790      	blx	r2
+ 8000328:	4640      	mov	r0, r8
+ 800032a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+
+0800032e <cmox_mac_innerVerify>:
+ 800032e:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8000332:	4604      	mov	r4, r0
+ 8000334:	460d      	mov	r5, r1
+ 8000336:	6821      	ldr	r1, [r4, #0]
+ 8000338:	4616      	mov	r6, r2
+ 800033a:	684a      	ldr	r2, [r1, #4]
+ 800033c:	461f      	mov	r7, r3
+ 800033e:	4790      	blx	r2
+ 8000340:	4680      	mov	r8, r0
+ 8000342:	f5b8 3f40 	cmp.w	r8, #196608	; 0x30000
+ 8000346:	d12e      	bne.n	80003a6 <cmox_mac_innerVerify+0x78>
+ 8000348:	6822      	ldr	r2, [r4, #0]
+ 800034a:	990a      	ldr	r1, [sp, #40]	; 0x28
+ 800034c:	6893      	ldr	r3, [r2, #8]
+ 800034e:	4620      	mov	r0, r4
+ 8000350:	4798      	blx	r3
+ 8000352:	4680      	mov	r8, r0
+ 8000354:	f5b8 3f40 	cmp.w	r8, #196608	; 0x30000
+ 8000358:	d125      	bne.n	80003a6 <cmox_mac_innerVerify+0x78>
+ 800035a:	6823      	ldr	r3, [r4, #0]
+ 800035c:	9a08      	ldr	r2, [sp, #32]
+ 800035e:	9907      	ldr	r1, [sp, #28]
+ 8000360:	f8d3 c00c 	ldr.w	ip, [r3, #12]
+ 8000364:	4620      	mov	r0, r4
+ 8000366:	47e0      	blx	ip
+ 8000368:	4680      	mov	r8, r0
+ 800036a:	f5b8 3f40 	cmp.w	r8, #196608	; 0x30000
+ 800036e:	d11a      	bne.n	80003a6 <cmox_mac_innerVerify+0x78>
+ 8000370:	6823      	ldr	r3, [r4, #0]
+ 8000372:	9a06      	ldr	r2, [sp, #24]
+ 8000374:	4639      	mov	r1, r7
+ 8000376:	691f      	ldr	r7, [r3, #16]
+ 8000378:	4620      	mov	r0, r4
+ 800037a:	47b8      	blx	r7
+ 800037c:	4680      	mov	r8, r0
+ 800037e:	f5b8 3f40 	cmp.w	r8, #196608	; 0x30000
+ 8000382:	d110      	bne.n	80003a6 <cmox_mac_innerVerify+0x78>
+ 8000384:	6823      	ldr	r3, [r4, #0]
+ 8000386:	4629      	mov	r1, r5
+ 8000388:	695d      	ldr	r5, [r3, #20]
+ 800038a:	4632      	mov	r2, r6
+ 800038c:	4620      	mov	r0, r4
+ 800038e:	47a8      	blx	r5
+ 8000390:	4680      	mov	r8, r0
+ 8000392:	f5b8 3f40 	cmp.w	r8, #196608	; 0x30000
+ 8000396:	d106      	bne.n	80003a6 <cmox_mac_innerVerify+0x78>
+ 8000398:	6823      	ldr	r3, [r4, #0]
+ 800039a:	9909      	ldr	r1, [sp, #36]	; 0x24
+ 800039c:	69dd      	ldr	r5, [r3, #28]
+ 800039e:	2200      	movs	r2, #0
+ 80003a0:	4620      	mov	r0, r4
+ 80003a2:	47a8      	blx	r5
+ 80003a4:	4680      	mov	r8, r0
+ 80003a6:	6821      	ldr	r1, [r4, #0]
+ 80003a8:	680a      	ldr	r2, [r1, #0]
+ 80003aa:	4620      	mov	r0, r4
+ 80003ac:	4790      	blx	r2
+ 80003ae:	4640      	mov	r0, r8
+ 80003b0:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+
+080003b4 <cmox_mac_setCustomData_empty>:
+ 80003b4:	f44f 3040 	mov.w	r0, #196608	; 0x30000
+ 80003b8:	4770      	bx	lr
+	...
+
+080003bc <cmox_mac_compute>:
+ 80003bc:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 80003be:	460c      	mov	r4, r1
+ 80003c0:	b085      	sub	sp, #20
+ 80003c2:	4611      	mov	r1, r2
+ 80003c4:	2800      	cmp	r0, #0
+ 80003c6:	461a      	mov	r2, r3
+ 80003c8:	bf1c      	itt	ne
+ 80003ca:	6805      	ldrne	r5, [r0, #0]
+ 80003cc:	2d00      	cmpne	r5, #0
+ 80003ce:	4b0b      	ldr	r3, [pc, #44]	; (80003fc <cmox_mac_compute+0x40>)
+ 80003d0:	d011      	beq.n	80003f6 <cmox_mac_compute+0x3a>
+ 80003d2:	b182      	cbz	r2, 80003f6 <cmox_mac_compute+0x3a>
+ 80003d4:	b904      	cbnz	r4, 80003d8 <cmox_mac_compute+0x1c>
+ 80003d6:	b971      	cbnz	r1, 80003f6 <cmox_mac_compute+0x3a>
+ 80003d8:	980d      	ldr	r0, [sp, #52]	; 0x34
+ 80003da:	b160      	cbz	r0, 80003f6 <cmox_mac_compute+0x3a>
+ 80003dc:	9e0f      	ldr	r6, [sp, #60]	; 0x3c
+ 80003de:	9f0e      	ldr	r7, [sp, #56]	; 0x38
+ 80003e0:	9b0a      	ldr	r3, [sp, #40]	; 0x28
+ 80003e2:	9002      	str	r0, [sp, #8]
+ 80003e4:	9604      	str	r6, [sp, #16]
+ 80003e6:	9703      	str	r7, [sp, #12]
+ 80003e8:	980b      	ldr	r0, [sp, #44]	; 0x2c
+ 80003ea:	9e0c      	ldr	r6, [sp, #48]	; 0x30
+ 80003ec:	9000      	str	r0, [sp, #0]
+ 80003ee:	9601      	str	r6, [sp, #4]
+ 80003f0:	4620      	mov	r0, r4
+ 80003f2:	47a8      	blx	r5
+ 80003f4:	4603      	mov	r3, r0
+ 80003f6:	4618      	mov	r0, r3
+ 80003f8:	b005      	add	sp, #20
+ 80003fa:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 80003fc:	00030002 	.word	0x00030002
+
+08000400 <cmox_sha1_transform>:
+ 8000400:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8000404:	4606      	mov	r6, r0
+ 8000406:	b0d0      	sub	sp, #320	; 0x140
+ 8000408:	6808      	ldr	r0, [r1, #0]
+ 800040a:	6df5      	ldr	r5, [r6, #92]	; 0x5c
+ 800040c:	f8d6 e060 	ldr.w	lr, [r6, #96]	; 0x60
+ 8000410:	6e72      	ldr	r2, [r6, #100]	; 0x64
+ 8000412:	6eb7      	ldr	r7, [r6, #104]	; 0x68
+ 8000414:	6ef3      	ldr	r3, [r6, #108]	; 0x6c
+ 8000416:	ba00      	rev	r0, r0
+ 8000418:	9000      	str	r0, [sp, #0]
+ 800041a:	466c      	mov	r4, sp
+ 800041c:	6848      	ldr	r0, [r1, #4]
+ 800041e:	ba00      	rev	r0, r0
+ 8000420:	6060      	str	r0, [r4, #4]
+ 8000422:	f10d 0840 	add.w	r8, sp, #64	; 0x40
+ 8000426:	6888      	ldr	r0, [r1, #8]
+ 8000428:	ba00      	rev	r0, r0
+ 800042a:	60a0      	str	r0, [r4, #8]
+ 800042c:	68c8      	ldr	r0, [r1, #12]
+ 800042e:	ba00      	rev	r0, r0
+ 8000430:	60e0      	str	r0, [r4, #12]
+ 8000432:	6908      	ldr	r0, [r1, #16]
+ 8000434:	ba00      	rev	r0, r0
+ 8000436:	6120      	str	r0, [r4, #16]
+ 8000438:	6948      	ldr	r0, [r1, #20]
+ 800043a:	ba00      	rev	r0, r0
+ 800043c:	6160      	str	r0, [r4, #20]
+ 800043e:	6988      	ldr	r0, [r1, #24]
+ 8000440:	ba00      	rev	r0, r0
+ 8000442:	61a0      	str	r0, [r4, #24]
+ 8000444:	69c8      	ldr	r0, [r1, #28]
+ 8000446:	ba00      	rev	r0, r0
+ 8000448:	61e0      	str	r0, [r4, #28]
+ 800044a:	6a08      	ldr	r0, [r1, #32]
+ 800044c:	ba00      	rev	r0, r0
+ 800044e:	6220      	str	r0, [r4, #32]
+ 8000450:	6a48      	ldr	r0, [r1, #36]	; 0x24
+ 8000452:	ba00      	rev	r0, r0
+ 8000454:	6260      	str	r0, [r4, #36]	; 0x24
+ 8000456:	6a88      	ldr	r0, [r1, #40]	; 0x28
+ 8000458:	ba00      	rev	r0, r0
+ 800045a:	62a0      	str	r0, [r4, #40]	; 0x28
+ 800045c:	6ac8      	ldr	r0, [r1, #44]	; 0x2c
+ 800045e:	ba00      	rev	r0, r0
+ 8000460:	62e0      	str	r0, [r4, #44]	; 0x2c
+ 8000462:	6b08      	ldr	r0, [r1, #48]	; 0x30
+ 8000464:	ba00      	rev	r0, r0
+ 8000466:	6320      	str	r0, [r4, #48]	; 0x30
+ 8000468:	6b48      	ldr	r0, [r1, #52]	; 0x34
+ 800046a:	ba00      	rev	r0, r0
+ 800046c:	6360      	str	r0, [r4, #52]	; 0x34
+ 800046e:	6b88      	ldr	r0, [r1, #56]	; 0x38
+ 8000470:	ba00      	rev	r0, r0
+ 8000472:	63a0      	str	r0, [r4, #56]	; 0x38
+ 8000474:	6bc8      	ldr	r0, [r1, #60]	; 0x3c
+ 8000476:	ba00      	rev	r0, r0
+ 8000478:	63e0      	str	r0, [r4, #60]	; 0x3c
+ 800047a:	2040      	movs	r0, #64	; 0x40
+ 800047c:	f858 1c0c 	ldr.w	r1, [r8, #-12]
+ 8000480:	f858 cc20 	ldr.w	ip, [r8, #-32]
+ 8000484:	f858 ac38 	ldr.w	sl, [r8, #-56]
+ 8000488:	ea8c 0101 	eor.w	r1, ip, r1
+ 800048c:	f858 cc40 	ldr.w	ip, [r8, #-64]
+ 8000490:	ea8a 0101 	eor.w	r1, sl, r1
+ 8000494:	ea8c 0901 	eor.w	r9, ip, r1
+ 8000498:	ea4f 79f9 	mov.w	r9, r9, ror #31
+ 800049c:	1e40      	subs	r0, r0, #1
+ 800049e:	f848 9b04 	str.w	r9, [r8], #4
+ 80004a2:	d1eb      	bne.n	800047c <cmox_sha1_transform+0x7c>
+ 80004a4:	ea87 0002 	eor.w	r0, r7, r2
+ 80004a8:	ea00 000e 	and.w	r0, r0, lr
+ 80004ac:	4078      	eors	r0, r7
+ 80004ae:	eb10 61f5 	adds.w	r1, r0, r5, ror #27
+ 80004b2:	9800      	ldr	r0, [sp, #0]
+ 80004b4:	f8df c424 	ldr.w	ip, [pc, #1060]	; 80008dc <cmox_sha1_transform+0x4dc>
+ 80004b8:	1841      	adds	r1, r0, r1
+ 80004ba:	4461      	add	r1, ip
+ 80004bc:	18c8      	adds	r0, r1, r3
+ 80004be:	ea82 03be 	eor.w	r3, r2, lr, ror #2
+ 80004c2:	402b      	ands	r3, r5
+ 80004c4:	ea4f 61f0 	mov.w	r1, r0, ror #27
+ 80004c8:	4053      	eors	r3, r2
+ 80004ca:	1859      	adds	r1, r3, r1
+ 80004cc:	6863      	ldr	r3, [r4, #4]
+ 80004ce:	1859      	adds	r1, r3, r1
+ 80004d0:	4461      	add	r1, ip
+ 80004d2:	19cf      	adds	r7, r1, r7
+ 80004d4:	ea4f 03b5 	mov.w	r3, r5, ror #2
+ 80004d8:	ea83 01be 	eor.w	r1, r3, lr, ror #2
+ 80004dc:	4001      	ands	r1, r0
+ 80004de:	ea81 01be 	eor.w	r1, r1, lr, ror #2
+ 80004e2:	eb11 65f7 	adds.w	r5, r1, r7, ror #27
+ 80004e6:	68a1      	ldr	r1, [r4, #8]
+ 80004e8:	194d      	adds	r5, r1, r5
+ 80004ea:	4465      	add	r5, ip
+ 80004ec:	18a9      	adds	r1, r5, r2
+ 80004ee:	ea83 02b0 	eor.w	r2, r3, r0, ror #2
+ 80004f2:	403a      	ands	r2, r7
+ 80004f4:	ea4f 65f1 	mov.w	r5, r1, ror #27
+ 80004f8:	405a      	eors	r2, r3
+ 80004fa:	1955      	adds	r5, r2, r5
+ 80004fc:	68e2      	ldr	r2, [r4, #12]
+ 80004fe:	1955      	adds	r5, r2, r5
+ 8000500:	ea4f 02b7 	mov.w	r2, r7, ror #2
+ 8000504:	ea82 07b0 	eor.w	r7, r2, r0, ror #2
+ 8000508:	4465      	add	r5, ip
+ 800050a:	400f      	ands	r7, r1
+ 800050c:	eb05 0ebe 	add.w	lr, r5, lr, ror #2
+ 8000510:	ea97 07b0 	eors.w	r7, r7, r0, ror #2
+ 8000514:	eb17 65fe 	adds.w	r5, r7, lr, ror #27
+ 8000518:	6927      	ldr	r7, [r4, #16]
+ 800051a:	197d      	adds	r5, r7, r5
+ 800051c:	ea4f 07b1 	mov.w	r7, r1, ror #2
+ 8000520:	ea82 0107 	eor.w	r1, r2, r7
+ 8000524:	4465      	add	r5, ip
+ 8000526:	ea01 010e 	and.w	r1, r1, lr
+ 800052a:	18eb      	adds	r3, r5, r3
+ 800052c:	4051      	eors	r1, r2
+ 800052e:	eb11 65f3 	adds.w	r5, r1, r3, ror #27
+ 8000532:	6961      	ldr	r1, [r4, #20]
+ 8000534:	194d      	adds	r5, r1, r5
+ 8000536:	ea4f 01be 	mov.w	r1, lr, ror #2
+ 800053a:	ea87 0e01 	eor.w	lr, r7, r1
+ 800053e:	4465      	add	r5, ip
+ 8000540:	ea0e 0e03 	and.w	lr, lr, r3
+ 8000544:	eb15 00b0 	adds.w	r0, r5, r0, ror #2
+ 8000548:	ea8e 0e07 	eor.w	lr, lr, r7
+ 800054c:	eb0e 65f0 	add.w	r5, lr, r0, ror #27
+ 8000550:	f8d4 e018 	ldr.w	lr, [r4, #24]
+ 8000554:	4475      	add	r5, lr
+ 8000556:	4465      	add	r5, ip
+ 8000558:	18aa      	adds	r2, r5, r2
+ 800055a:	ea81 05b3 	eor.w	r5, r1, r3, ror #2
+ 800055e:	4005      	ands	r5, r0
+ 8000560:	ea4f 6ef2 	mov.w	lr, r2, ror #27
+ 8000564:	404d      	eors	r5, r1
+ 8000566:	44ae      	add	lr, r5
+ 8000568:	69e5      	ldr	r5, [r4, #28]
+ 800056a:	44ae      	add	lr, r5
+ 800056c:	44e6      	add	lr, ip
+ 800056e:	4477      	add	r7, lr
+ 8000570:	ea4f 00b0 	mov.w	r0, r0, ror #2
+ 8000574:	ea80 0eb3 	eor.w	lr, r0, r3, ror #2
+ 8000578:	ea0e 0e02 	and.w	lr, lr, r2
+ 800057c:	ea8e 0eb3 	eor.w	lr, lr, r3, ror #2
+ 8000580:	eb0e 65f7 	add.w	r5, lr, r7, ror #27
+ 8000584:	f8d4 e020 	ldr.w	lr, [r4, #32]
+ 8000588:	4475      	add	r5, lr
+ 800058a:	4465      	add	r5, ip
+ 800058c:	1869      	adds	r1, r5, r1
+ 800058e:	ea80 05b2 	eor.w	r5, r0, r2, ror #2
+ 8000592:	403d      	ands	r5, r7
+ 8000594:	ea4f 6ef1 	mov.w	lr, r1, ror #27
+ 8000598:	4045      	eors	r5, r0
+ 800059a:	44ae      	add	lr, r5
+ 800059c:	6a65      	ldr	r5, [r4, #36]	; 0x24
+ 800059e:	44ae      	add	lr, r5
+ 80005a0:	44e6      	add	lr, ip
+ 80005a2:	eb0e 03b3 	add.w	r3, lr, r3, ror #2
+ 80005a6:	ea4f 07b7 	mov.w	r7, r7, ror #2
+ 80005aa:	ea87 0eb2 	eor.w	lr, r7, r2, ror #2
+ 80005ae:	ea0e 0e01 	and.w	lr, lr, r1
+ 80005b2:	ea8e 0eb2 	eor.w	lr, lr, r2, ror #2
+ 80005b6:	eb0e 65f3 	add.w	r5, lr, r3, ror #27
+ 80005ba:	f8d4 e028 	ldr.w	lr, [r4, #40]	; 0x28
+ 80005be:	4475      	add	r5, lr
+ 80005c0:	4465      	add	r5, ip
+ 80005c2:	1828      	adds	r0, r5, r0
+ 80005c4:	ea87 05b1 	eor.w	r5, r7, r1, ror #2
+ 80005c8:	401d      	ands	r5, r3
+ 80005ca:	ea4f 6ef0 	mov.w	lr, r0, ror #27
+ 80005ce:	407d      	eors	r5, r7
+ 80005d0:	44ae      	add	lr, r5
+ 80005d2:	6ae5      	ldr	r5, [r4, #44]	; 0x2c
+ 80005d4:	44ae      	add	lr, r5
+ 80005d6:	44e6      	add	lr, ip
+ 80005d8:	eb0e 02b2 	add.w	r2, lr, r2, ror #2
+ 80005dc:	ea4f 03b3 	mov.w	r3, r3, ror #2
+ 80005e0:	ea83 0eb1 	eor.w	lr, r3, r1, ror #2
+ 80005e4:	ea0e 0e00 	and.w	lr, lr, r0
+ 80005e8:	ea8e 0eb1 	eor.w	lr, lr, r1, ror #2
+ 80005ec:	eb0e 65f2 	add.w	r5, lr, r2, ror #27
+ 80005f0:	f8d4 e030 	ldr.w	lr, [r4, #48]	; 0x30
+ 80005f4:	4475      	add	r5, lr
+ 80005f6:	4465      	add	r5, ip
+ 80005f8:	19ef      	adds	r7, r5, r7
+ 80005fa:	ea83 05b0 	eor.w	r5, r3, r0, ror #2
+ 80005fe:	4015      	ands	r5, r2
+ 8000600:	ea4f 6ef7 	mov.w	lr, r7, ror #27
+ 8000604:	405d      	eors	r5, r3
+ 8000606:	44ae      	add	lr, r5
+ 8000608:	6b65      	ldr	r5, [r4, #52]	; 0x34
+ 800060a:	44ae      	add	lr, r5
+ 800060c:	44e6      	add	lr, ip
+ 800060e:	eb0e 01b1 	add.w	r1, lr, r1, ror #2
+ 8000612:	ea4f 02b2 	mov.w	r2, r2, ror #2
+ 8000616:	ea82 0eb0 	eor.w	lr, r2, r0, ror #2
+ 800061a:	ea0e 0e07 	and.w	lr, lr, r7
+ 800061e:	ea8e 0eb0 	eor.w	lr, lr, r0, ror #2
+ 8000622:	eb0e 65f1 	add.w	r5, lr, r1, ror #27
+ 8000626:	f8d4 e038 	ldr.w	lr, [r4, #56]	; 0x38
+ 800062a:	4475      	add	r5, lr
+ 800062c:	4465      	add	r5, ip
+ 800062e:	18eb      	adds	r3, r5, r3
+ 8000630:	ea82 05b7 	eor.w	r5, r2, r7, ror #2
+ 8000634:	400d      	ands	r5, r1
+ 8000636:	ea4f 6ef3 	mov.w	lr, r3, ror #27
+ 800063a:	4055      	eors	r5, r2
+ 800063c:	44ae      	add	lr, r5
+ 800063e:	6be5      	ldr	r5, [r4, #60]	; 0x3c
+ 8000640:	44ae      	add	lr, r5
+ 8000642:	44e6      	add	lr, ip
+ 8000644:	eb0e 00b0 	add.w	r0, lr, r0, ror #2
+ 8000648:	ea4f 01b1 	mov.w	r1, r1, ror #2
+ 800064c:	ea81 0eb7 	eor.w	lr, r1, r7, ror #2
+ 8000650:	ea0e 0e03 	and.w	lr, lr, r3
+ 8000654:	ea8e 0eb7 	eor.w	lr, lr, r7, ror #2
+ 8000658:	eb0e 65f0 	add.w	r5, lr, r0, ror #27
+ 800065c:	f8d4 e040 	ldr.w	lr, [r4, #64]	; 0x40
+ 8000660:	4475      	add	r5, lr
+ 8000662:	4465      	add	r5, ip
+ 8000664:	ea81 0eb3 	eor.w	lr, r1, r3, ror #2
+ 8000668:	18aa      	adds	r2, r5, r2
+ 800066a:	ea0e 0e00 	and.w	lr, lr, r0
+ 800066e:	ea4f 65f2 	mov.w	r5, r2, ror #27
+ 8000672:	ea8e 0e01 	eor.w	lr, lr, r1
+ 8000676:	4475      	add	r5, lr
+ 8000678:	f8dd e044 	ldr.w	lr, [sp, #68]	; 0x44
+ 800067c:	ea4f 00b0 	mov.w	r0, r0, ror #2
+ 8000680:	4475      	add	r5, lr
+ 8000682:	ea80 0eb3 	eor.w	lr, r0, r3, ror #2
+ 8000686:	4465      	add	r5, ip
+ 8000688:	ea0e 0e02 	and.w	lr, lr, r2
+ 800068c:	eb15 07b7 	adds.w	r7, r5, r7, ror #2
+ 8000690:	ea8e 0eb3 	eor.w	lr, lr, r3, ror #2
+ 8000694:	eb0e 65f7 	add.w	r5, lr, r7, ror #27
+ 8000698:	f8dd e048 	ldr.w	lr, [sp, #72]	; 0x48
+ 800069c:	ea4f 02b2 	mov.w	r2, r2, ror #2
+ 80006a0:	4475      	add	r5, lr
+ 80006a2:	ea80 0e02 	eor.w	lr, r0, r2
+ 80006a6:	4465      	add	r5, ip
+ 80006a8:	ea0e 0e07 	and.w	lr, lr, r7
+ 80006ac:	1869      	adds	r1, r5, r1
+ 80006ae:	ea8e 0e00 	eor.w	lr, lr, r0
+ 80006b2:	eb0e 65f1 	add.w	r5, lr, r1, ror #27
+ 80006b6:	f8dd e04c 	ldr.w	lr, [sp, #76]	; 0x4c
+ 80006ba:	4475      	add	r5, lr
+ 80006bc:	4465      	add	r5, ip
+ 80006be:	eb05 03b3 	add.w	r3, r5, r3, ror #2
+ 80006c2:	ea4f 0eb7 	mov.w	lr, r7, ror #2
+ 80006c6:	2714      	movs	r7, #20
+ 80006c8:	f10d 0c50 	add.w	ip, sp, #80	; 0x50
+ 80006cc:	f8df 5210 	ldr.w	r5, [pc, #528]	; 80008e0 <cmox_sha1_transform+0x4e0>
+ 80006d0:	ea8e 0b01 	eor.w	fp, lr, r1
+ 80006d4:	ea82 0b0b 	eor.w	fp, r2, fp
+ 80006d8:	eb0b 6af3 	add.w	sl, fp, r3, ror #27
+ 80006dc:	f85c bb04 	ldr.w	fp, [ip], #4
+ 80006e0:	44da      	add	sl, fp
+ 80006e2:	44aa      	add	sl, r5
+ 80006e4:	4450      	add	r0, sl
+ 80006e6:	ea83 0bb1 	eor.w	fp, r3, r1, ror #2
+ 80006ea:	ea4f 6af0 	mov.w	sl, r0, ror #27
+ 80006ee:	ea8e 0b0b 	eor.w	fp, lr, fp
+ 80006f2:	44da      	add	sl, fp
+ 80006f4:	f85c bb04 	ldr.w	fp, [ip], #4
+ 80006f8:	44da      	add	sl, fp
+ 80006fa:	44aa      	add	sl, r5
+ 80006fc:	4452      	add	r2, sl
+ 80006fe:	ea80 0bb3 	eor.w	fp, r0, r3, ror #2
+ 8000702:	ea4f 6af2 	mov.w	sl, r2, ror #27
+ 8000706:	ea8b 0bb1 	eor.w	fp, fp, r1, ror #2
+ 800070a:	44da      	add	sl, fp
+ 800070c:	f85c bb04 	ldr.w	fp, [ip], #4
+ 8000710:	44da      	add	sl, fp
+ 8000712:	ea4f 00b0 	mov.w	r0, r0, ror #2
+ 8000716:	44aa      	add	sl, r5
+ 8000718:	ea80 0b02 	eor.w	fp, r0, r2
+ 800071c:	44d6      	add	lr, sl
+ 800071e:	ea8b 0bb3 	eor.w	fp, fp, r3, ror #2
+ 8000722:	eb0b 6afe 	add.w	sl, fp, lr, ror #27
+ 8000726:	f85c bb04 	ldr.w	fp, [ip], #4
+ 800072a:	44da      	add	sl, fp
+ 800072c:	ea4f 02b2 	mov.w	r2, r2, ror #2
+ 8000730:	44aa      	add	sl, r5
+ 8000732:	ea82 0b0e 	eor.w	fp, r2, lr
+ 8000736:	eb0a 01b1 	add.w	r1, sl, r1, ror #2
+ 800073a:	ea80 0b0b 	eor.w	fp, r0, fp
+ 800073e:	eb0b 6af1 	add.w	sl, fp, r1, ror #27
+ 8000742:	f85c bb04 	ldr.w	fp, [ip], #4
+ 8000746:	44da      	add	sl, fp
+ 8000748:	1d7f      	adds	r7, r7, #5
+ 800074a:	44aa      	add	sl, r5
+ 800074c:	2f28      	cmp	r7, #40	; 0x28
+ 800074e:	eb0a 03b3 	add.w	r3, sl, r3, ror #2
+ 8000752:	ea4f 0ebe 	mov.w	lr, lr, ror #2
+ 8000756:	d3bb      	bcc.n	80006d0 <cmox_sha1_transform+0x2d0>
+ 8000758:	2f3c      	cmp	r7, #60	; 0x3c
+ 800075a:	d361      	bcc.n	8000820 <cmox_sha1_transform+0x420>
+ 800075c:	2f50      	cmp	r7, #80	; 0x50
+ 800075e:	d24d      	bcs.n	80007fc <cmox_sha1_transform+0x3fc>
+ 8000760:	eb04 0c87 	add.w	ip, r4, r7, lsl #2
+ 8000764:	f1c7 0754 	rsb	r7, r7, #84	; 0x54
+ 8000768:	4c5e      	ldr	r4, [pc, #376]	; (80008e4 <cmox_sha1_transform+0x4e4>)
+ 800076a:	fba7 a504 	umull	sl, r5, r7, r4
+ 800076e:	4604      	mov	r4, r0
+ 8000770:	4f5d      	ldr	r7, [pc, #372]	; (80008e8 <cmox_sha1_transform+0x4e8>)
+ 8000772:	08a8      	lsrs	r0, r5, #2
+ 8000774:	ea8e 0a01 	eor.w	sl, lr, r1
+ 8000778:	ea82 0a0a 	eor.w	sl, r2, sl
+ 800077c:	f85c bb04 	ldr.w	fp, [ip], #4
+ 8000780:	eb0a 65f3 	add.w	r5, sl, r3, ror #27
+ 8000784:	445d      	add	r5, fp
+ 8000786:	197d      	adds	r5, r7, r5
+ 8000788:	192c      	adds	r4, r5, r4
+ 800078a:	ea83 0ab1 	eor.w	sl, r3, r1, ror #2
+ 800078e:	ea4f 65f4 	mov.w	r5, r4, ror #27
+ 8000792:	ea8e 0a0a 	eor.w	sl, lr, sl
+ 8000796:	4455      	add	r5, sl
+ 8000798:	f85c ab04 	ldr.w	sl, [ip], #4
+ 800079c:	f85c bb04 	ldr.w	fp, [ip], #4
+ 80007a0:	4455      	add	r5, sl
+ 80007a2:	197d      	adds	r5, r7, r5
+ 80007a4:	18aa      	adds	r2, r5, r2
+ 80007a6:	ea84 0ab3 	eor.w	sl, r4, r3, ror #2
+ 80007aa:	ea4f 65f2 	mov.w	r5, r2, ror #27
+ 80007ae:	ea8a 0ab1 	eor.w	sl, sl, r1, ror #2
+ 80007b2:	4455      	add	r5, sl
+ 80007b4:	445d      	add	r5, fp
+ 80007b6:	ea4f 04b4 	mov.w	r4, r4, ror #2
+ 80007ba:	197d      	adds	r5, r7, r5
+ 80007bc:	ea84 0a02 	eor.w	sl, r4, r2
+ 80007c0:	44ae      	add	lr, r5
+ 80007c2:	ea8a 0ab3 	eor.w	sl, sl, r3, ror #2
+ 80007c6:	eb0a 65fe 	add.w	r5, sl, lr, ror #27
+ 80007ca:	f85c ab04 	ldr.w	sl, [ip], #4
+ 80007ce:	4455      	add	r5, sl
+ 80007d0:	ea4f 02b2 	mov.w	r2, r2, ror #2
+ 80007d4:	197d      	adds	r5, r7, r5
+ 80007d6:	ea82 0a0e 	eor.w	sl, r2, lr
+ 80007da:	eb15 01b1 	adds.w	r1, r5, r1, ror #2
+ 80007de:	ea84 0a0a 	eor.w	sl, r4, sl
+ 80007e2:	f85c bb04 	ldr.w	fp, [ip], #4
+ 80007e6:	eb0a 65f1 	add.w	r5, sl, r1, ror #27
+ 80007ea:	445d      	add	r5, fp
+ 80007ec:	197d      	adds	r5, r7, r5
+ 80007ee:	eb15 03b3 	adds.w	r3, r5, r3, ror #2
+ 80007f2:	1e40      	subs	r0, r0, #1
+ 80007f4:	ea4f 0ebe 	mov.w	lr, lr, ror #2
+ 80007f8:	d1bc      	bne.n	8000774 <cmox_sha1_transform+0x374>
+ 80007fa:	4620      	mov	r0, r4
+ 80007fc:	6df4      	ldr	r4, [r6, #92]	; 0x5c
+ 80007fe:	191b      	adds	r3, r3, r4
+ 8000800:	65f3      	str	r3, [r6, #92]	; 0x5c
+ 8000802:	6e33      	ldr	r3, [r6, #96]	; 0x60
+ 8000804:	18c9      	adds	r1, r1, r3
+ 8000806:	6631      	str	r1, [r6, #96]	; 0x60
+ 8000808:	6e71      	ldr	r1, [r6, #100]	; 0x64
+ 800080a:	4471      	add	r1, lr
+ 800080c:	6671      	str	r1, [r6, #100]	; 0x64
+ 800080e:	6eb3      	ldr	r3, [r6, #104]	; 0x68
+ 8000810:	18d2      	adds	r2, r2, r3
+ 8000812:	66b2      	str	r2, [r6, #104]	; 0x68
+ 8000814:	6ef1      	ldr	r1, [r6, #108]	; 0x6c
+ 8000816:	1840      	adds	r0, r0, r1
+ 8000818:	66f0      	str	r0, [r6, #108]	; 0x6c
+ 800081a:	b050      	add	sp, #320	; 0x140
+ 800081c:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 8000820:	ea4e 0b01 	orr.w	fp, lr, r1
+ 8000824:	ea0e 0a01 	and.w	sl, lr, r1
+ 8000828:	ea0b 0b02 	and.w	fp, fp, r2
+ 800082c:	ea4b 0a0a 	orr.w	sl, fp, sl
+ 8000830:	eb0a 65f3 	add.w	r5, sl, r3, ror #27
+ 8000834:	f854 a027 	ldr.w	sl, [r4, r7, lsl #2]
+ 8000838:	f8df c0b0 	ldr.w	ip, [pc, #176]	; 80008ec <cmox_sha1_transform+0x4ec>
+ 800083c:	4455      	add	r5, sl
+ 800083e:	ea43 0bb1 	orr.w	fp, r3, r1, ror #2
+ 8000842:	4465      	add	r5, ip
+ 8000844:	ea03 0ab1 	and.w	sl, r3, r1, ror #2
+ 8000848:	ea0b 0b0e 	and.w	fp, fp, lr
+ 800084c:	1828      	adds	r0, r5, r0
+ 800084e:	ea4b 0a0a 	orr.w	sl, fp, sl
+ 8000852:	1c7f      	adds	r7, r7, #1
+ 8000854:	eb0a 65f0 	add.w	r5, sl, r0, ror #27
+ 8000858:	f854 a027 	ldr.w	sl, [r4, r7, lsl #2]
+ 800085c:	4455      	add	r5, sl
+ 800085e:	ea40 0bb3 	orr.w	fp, r0, r3, ror #2
+ 8000862:	4465      	add	r5, ip
+ 8000864:	ea00 0ab3 	and.w	sl, r0, r3, ror #2
+ 8000868:	ea0b 0bb1 	and.w	fp, fp, r1, ror #2
+ 800086c:	18aa      	adds	r2, r5, r2
+ 800086e:	ea4b 0a0a 	orr.w	sl, fp, sl
+ 8000872:	1c7f      	adds	r7, r7, #1
+ 8000874:	eb0a 65f2 	add.w	r5, sl, r2, ror #27
+ 8000878:	f854 a027 	ldr.w	sl, [r4, r7, lsl #2]
+ 800087c:	4455      	add	r5, sl
+ 800087e:	ea4f 00b0 	mov.w	r0, r0, ror #2
+ 8000882:	ea40 0b02 	orr.w	fp, r0, r2
+ 8000886:	4465      	add	r5, ip
+ 8000888:	ea00 0a02 	and.w	sl, r0, r2
+ 800088c:	ea0b 0bb3 	and.w	fp, fp, r3, ror #2
+ 8000890:	44ae      	add	lr, r5
+ 8000892:	ea4b 0a0a 	orr.w	sl, fp, sl
+ 8000896:	1c7f      	adds	r7, r7, #1
+ 8000898:	eb0a 65fe 	add.w	r5, sl, lr, ror #27
+ 800089c:	f854 a027 	ldr.w	sl, [r4, r7, lsl #2]
+ 80008a0:	4455      	add	r5, sl
+ 80008a2:	ea4f 02b2 	mov.w	r2, r2, ror #2
+ 80008a6:	ea42 0b0e 	orr.w	fp, r2, lr
+ 80008aa:	4465      	add	r5, ip
+ 80008ac:	ea02 0a0e 	and.w	sl, r2, lr
+ 80008b0:	ea0b 0b00 	and.w	fp, fp, r0
+ 80008b4:	eb15 01b1 	adds.w	r1, r5, r1, ror #2
+ 80008b8:	ea4b 0a0a 	orr.w	sl, fp, sl
+ 80008bc:	1c7f      	adds	r7, r7, #1
+ 80008be:	eb0a 65f1 	add.w	r5, sl, r1, ror #27
+ 80008c2:	f854 a027 	ldr.w	sl, [r4, r7, lsl #2]
+ 80008c6:	4455      	add	r5, sl
+ 80008c8:	1c7f      	adds	r7, r7, #1
+ 80008ca:	4465      	add	r5, ip
+ 80008cc:	2f3c      	cmp	r7, #60	; 0x3c
+ 80008ce:	eb05 03b3 	add.w	r3, r5, r3, ror #2
+ 80008d2:	ea4f 0ebe 	mov.w	lr, lr, ror #2
+ 80008d6:	d3a3      	bcc.n	8000820 <cmox_sha1_transform+0x420>
+ 80008d8:	e740      	b.n	800075c <cmox_sha1_transform+0x35c>
+ 80008da:	bf00      	nop
+ 80008dc:	5a827999 	.word	0x5a827999
+ 80008e0:	6ed9eba1 	.word	0x6ed9eba1
+ 80008e4:	cccccccd 	.word	0xcccccccd
+ 80008e8:	ca62c1d6 	.word	0xca62c1d6
+ 80008ec:	8f1bbcdc 	.word	0x8f1bbcdc
+
+080008f0 <cmox_sha1_cleanup>:
+ 80008f0:	b500      	push	{lr}
+ 80008f2:	b081      	sub	sp, #4
+ 80008f4:	6801      	ldr	r1, [r0, #0]
+ 80008f6:	4a07      	ldr	r2, [pc, #28]	; (8000914 <cmox_sha1_cleanup+0x24>)
+ 80008f8:	4291      	cmp	r1, r2
+ 80008fa:	d100      	bne.n	80008fe <cmox_sha1_cleanup+0xe>
+ 80008fc:	b910      	cbnz	r0, 8000904 <cmox_sha1_cleanup+0x14>
+ 80008fe:	4806      	ldr	r0, [pc, #24]	; (8000918 <cmox_sha1_cleanup+0x28>)
+ 8000900:	b001      	add	sp, #4
+ 8000902:	bd00      	pop	{pc}
+ 8000904:	217c      	movs	r1, #124	; 0x7c
+ 8000906:	f016 ff11 	bl	801772c <__aeabi_memclr>
+ 800090a:	f44f 3000 	mov.w	r0, #131072	; 0x20000
+ 800090e:	b001      	add	sp, #4
+ 8000910:	bd00      	pop	{pc}
+ 8000912:	bf00      	nop
+ 8000914:	080009fc 	.word	0x080009fc
+ 8000918:	00020003 	.word	0x00020003
+
+0800091c <cmox_sha1_init>:
+ 800091c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8000920:	4a0b      	ldr	r2, [pc, #44]	; (8000950 <cmox_sha1_init+0x34>)
+ 8000922:	e892 51f8 	ldmia.w	r2, {r3, r4, r5, r6, r7, r8, ip, lr}
+ 8000926:	b088      	sub	sp, #32
+ 8000928:	4669      	mov	r1, sp
+ 800092a:	e881 51f8 	stmia.w	r1, {r3, r4, r5, r6, r7, r8, ip, lr}
+ 800092e:	6802      	ldr	r2, [r0, #0]
+ 8000930:	4b08      	ldr	r3, [pc, #32]	; (8000954 <cmox_sha1_init+0x38>)
+ 8000932:	429a      	cmp	r2, r3
+ 8000934:	d100      	bne.n	8000938 <cmox_sha1_init+0x1c>
+ 8000936:	b918      	cbnz	r0, 8000940 <cmox_sha1_init+0x24>
+ 8000938:	4807      	ldr	r0, [pc, #28]	; (8000958 <cmox_sha1_init+0x3c>)
+ 800093a:	b008      	add	sp, #32
+ 800093c:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 8000940:	2214      	movs	r2, #20
+ 8000942:	3008      	adds	r0, #8
+ 8000944:	f000 fb4f 	bl	8000fe6 <cmox_md_init>
+ 8000948:	b008      	add	sp, #32
+ 800094a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800094e:	bf00      	nop
+ 8000950:	080009dc 	.word	0x080009dc
+ 8000954:	080009fc 	.word	0x080009fc
+ 8000958:	00020003 	.word	0x00020003
+
+0800095c <cmox_sha1_setTagLen>:
+ 800095c:	2915      	cmp	r1, #21
+ 800095e:	d204      	bcs.n	800096a <cmox_sha1_setTagLen+0xe>
+ 8000960:	6802      	ldr	r2, [r0, #0]
+ 8000962:	4b04      	ldr	r3, [pc, #16]	; (8000974 <cmox_sha1_setTagLen+0x18>)
+ 8000964:	429a      	cmp	r2, r3
+ 8000966:	d100      	bne.n	800096a <cmox_sha1_setTagLen+0xe>
+ 8000968:	b908      	cbnz	r0, 800096e <cmox_sha1_setTagLen+0x12>
+ 800096a:	4803      	ldr	r0, [pc, #12]	; (8000978 <cmox_sha1_setTagLen+0x1c>)
+ 800096c:	4770      	bx	lr
+ 800096e:	3008      	adds	r0, #8
+ 8000970:	f000 bb48 	b.w	8001004 <cmox_md_setTagSize>
+ 8000974:	080009fc 	.word	0x080009fc
+ 8000978:	00020003 	.word	0x00020003
+
+0800097c <cmox_sha1_append>:
+ 800097c:	b410      	push	{r4}
+ 800097e:	b081      	sub	sp, #4
+ 8000980:	4613      	mov	r3, r2
+ 8000982:	6802      	ldr	r2, [r0, #0]
+ 8000984:	4c07      	ldr	r4, [pc, #28]	; (80009a4 <cmox_sha1_append+0x28>)
+ 8000986:	42a2      	cmp	r2, r4
+ 8000988:	d100      	bne.n	800098c <cmox_sha1_append+0x10>
+ 800098a:	b918      	cbnz	r0, 8000994 <cmox_sha1_append+0x18>
+ 800098c:	b001      	add	sp, #4
+ 800098e:	bc10      	pop	{r4}
+ 8000990:	4805      	ldr	r0, [pc, #20]	; (80009a8 <cmox_sha1_append+0x2c>)
+ 8000992:	4770      	bx	lr
+ 8000994:	b001      	add	sp, #4
+ 8000996:	f100 0224 	add.w	r2, r0, #36	; 0x24
+ 800099a:	bc10      	pop	{r4}
+ 800099c:	3008      	adds	r0, #8
+ 800099e:	f000 bb35 	b.w	800100c <cmox_md_append>
+ 80009a2:	bf00      	nop
+ 80009a4:	080009fc 	.word	0x080009fc
+ 80009a8:	00020003 	.word	0x00020003
+
+080009ac <cmox_sha1_generateTag>:
+ 80009ac:	b410      	push	{r4}
+ 80009ae:	b081      	sub	sp, #4
+ 80009b0:	4613      	mov	r3, r2
+ 80009b2:	6802      	ldr	r2, [r0, #0]
+ 80009b4:	4c07      	ldr	r4, [pc, #28]	; (80009d4 <cmox_sha1_generateTag+0x28>)
+ 80009b6:	42a2      	cmp	r2, r4
+ 80009b8:	d100      	bne.n	80009bc <cmox_sha1_generateTag+0x10>
+ 80009ba:	b918      	cbnz	r0, 80009c4 <cmox_sha1_generateTag+0x18>
+ 80009bc:	b001      	add	sp, #4
+ 80009be:	bc10      	pop	{r4}
+ 80009c0:	4805      	ldr	r0, [pc, #20]	; (80009d8 <cmox_sha1_generateTag+0x2c>)
+ 80009c2:	4770      	bx	lr
+ 80009c4:	460a      	mov	r2, r1
+ 80009c6:	b001      	add	sp, #4
+ 80009c8:	f100 0124 	add.w	r1, r0, #36	; 0x24
+ 80009cc:	bc10      	pop	{r4}
+ 80009ce:	3008      	adds	r0, #8
+ 80009d0:	f000 bb70 	b.w	80010b4 <cmox_md_generateTag>
+ 80009d4:	080009fc 	.word	0x080009fc
+ 80009d8:	00020003 	.word	0x00020003
+ 80009dc:	67452301 	.word	0x67452301
+ 80009e0:	efcdab89 	.word	0xefcdab89
+ 80009e4:	98badcfe 	.word	0x98badcfe
+ 80009e8:	10325476 	.word	0x10325476
+ 80009ec:	c3d2e1f0 	.word	0xc3d2e1f0
+	...
+
+080009fc <CMOX_SHA1_VTABLE>:
+ 80009fc:	080008f1 0800091d 0800095d 0800097d     ........]...}...
+ 8000a0c:	080009ad                                ....
+
+08000a10 <CMOX_SHA1_MD_VTABLE_ST>:
+ 8000a10:	08000401 08000f79 08000fc5 08000f81     ....y...........
+
+08000a20 <cmox_sha1_compute>:
+ 8000a20:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8000a22:	b0a3      	sub	sp, #140	; 0x8c
+ 8000a24:	4604      	mov	r4, r0
+ 8000a26:	480b      	ldr	r0, [pc, #44]	; (8000a54 <cmox_sha1_compute+0x34>)
+ 8000a28:	9002      	str	r0, [sp, #8]
+ 8000a2a:	460d      	mov	r5, r1
+ 8000a2c:	4616      	mov	r6, r2
+ 8000a2e:	461f      	mov	r7, r3
+ 8000a30:	4b09      	ldr	r3, [pc, #36]	; (8000a58 <cmox_sha1_compute+0x38>)
+ 8000a32:	2208      	movs	r2, #8
+ 8000a34:	2140      	movs	r1, #64	; 0x40
+ 8000a36:	a804      	add	r0, sp, #16
+ 8000a38:	f000 fad1 	bl	8000fde <cmox_md_construct>
+ 8000a3c:	9828      	ldr	r0, [sp, #160]	; 0xa0
+ 8000a3e:	9001      	str	r0, [sp, #4]
+ 8000a40:	9700      	str	r7, [sp, #0]
+ 8000a42:	4633      	mov	r3, r6
+ 8000a44:	462a      	mov	r2, r5
+ 8000a46:	4621      	mov	r1, r4
+ 8000a48:	a802      	add	r0, sp, #8
+ 8000a4a:	f000 f81b 	bl	8000a84 <cmox_hash_common_compute>
+ 8000a4e:	b023      	add	sp, #140	; 0x8c
+ 8000a50:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8000a52:	bf00      	nop
+ 8000a54:	080009fc 	.word	0x080009fc
+ 8000a58:	08000a10 	.word	0x08000a10
+
+08000a5c <cmox_sha1_construct>:
+ 8000a5c:	b510      	push	{r4, lr}
+ 8000a5e:	0004      	movs	r4, r0
+ 8000a60:	bf08      	it	eq
+ 8000a62:	2400      	moveq	r4, #0
+ 8000a64:	d008      	beq.n	8000a78 <cmox_sha1_construct+0x1c>
+ 8000a66:	4805      	ldr	r0, [pc, #20]	; (8000a7c <cmox_sha1_construct+0x20>)
+ 8000a68:	4b05      	ldr	r3, [pc, #20]	; (8000a80 <cmox_sha1_construct+0x24>)
+ 8000a6a:	6020      	str	r0, [r4, #0]
+ 8000a6c:	2208      	movs	r2, #8
+ 8000a6e:	2140      	movs	r1, #64	; 0x40
+ 8000a70:	f104 0008 	add.w	r0, r4, #8
+ 8000a74:	f000 fab3 	bl	8000fde <cmox_md_construct>
+ 8000a78:	4620      	mov	r0, r4
+ 8000a7a:	bd10      	pop	{r4, pc}
+ 8000a7c:	080009fc 	.word	0x080009fc
+ 8000a80:	08000a10 	.word	0x08000a10
+
+08000a84 <cmox_hash_common_compute>:
+ 8000a84:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8000a88:	4604      	mov	r4, r0
+ 8000a8a:	460e      	mov	r6, r1
+ 8000a8c:	6821      	ldr	r1, [r4, #0]
+ 8000a8e:	4617      	mov	r7, r2
+ 8000a90:	684a      	ldr	r2, [r1, #4]
+ 8000a92:	461d      	mov	r5, r3
+ 8000a94:	4790      	blx	r2
+ 8000a96:	4680      	mov	r8, r0
+ 8000a98:	f5b8 3f00 	cmp.w	r8, #131072	; 0x20000
+ 8000a9c:	d119      	bne.n	8000ad2 <cmox_hash_common_compute+0x4e>
+ 8000a9e:	6822      	ldr	r2, [r4, #0]
+ 8000aa0:	9906      	ldr	r1, [sp, #24]
+ 8000aa2:	6893      	ldr	r3, [r2, #8]
+ 8000aa4:	4620      	mov	r0, r4
+ 8000aa6:	4798      	blx	r3
+ 8000aa8:	4680      	mov	r8, r0
+ 8000aaa:	f5b8 3f00 	cmp.w	r8, #131072	; 0x20000
+ 8000aae:	d110      	bne.n	8000ad2 <cmox_hash_common_compute+0x4e>
+ 8000ab0:	6823      	ldr	r3, [r4, #0]
+ 8000ab2:	4631      	mov	r1, r6
+ 8000ab4:	68de      	ldr	r6, [r3, #12]
+ 8000ab6:	463a      	mov	r2, r7
+ 8000ab8:	4620      	mov	r0, r4
+ 8000aba:	47b0      	blx	r6
+ 8000abc:	4680      	mov	r8, r0
+ 8000abe:	f5b8 3f00 	cmp.w	r8, #131072	; 0x20000
+ 8000ac2:	d106      	bne.n	8000ad2 <cmox_hash_common_compute+0x4e>
+ 8000ac4:	6823      	ldr	r3, [r4, #0]
+ 8000ac6:	9a07      	ldr	r2, [sp, #28]
+ 8000ac8:	4629      	mov	r1, r5
+ 8000aca:	691d      	ldr	r5, [r3, #16]
+ 8000acc:	4620      	mov	r0, r4
+ 8000ace:	47a8      	blx	r5
+ 8000ad0:	4680      	mov	r8, r0
+ 8000ad2:	6821      	ldr	r1, [r4, #0]
+ 8000ad4:	680a      	ldr	r2, [r1, #0]
+ 8000ad6:	4620      	mov	r0, r4
+ 8000ad8:	4790      	blx	r2
+ 8000ada:	4640      	mov	r0, r8
+ 8000adc:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+
+08000ae0 <cmox_hmac_cleanup>:
+ 8000ae0:	b510      	push	{r4, lr}
+ 8000ae2:	f000 fa33 	bl	8000f4c <cmox_hmac_getByMAC>
+ 8000ae6:	f44f 3440 	mov.w	r4, #196608	; 0x30000
+ 8000aea:	2800      	cmp	r0, #0
+ 8000aec:	bf0e      	itee	eq
+ 8000aee:	4c03      	ldreq	r4, [pc, #12]	; (8000afc <cmox_hmac_cleanup+0x1c>)
+ 8000af0:	f44f 71c0 	movne.w	r1, #384	; 0x180
+ 8000af4:	f016 fe1a 	blne	801772c <__aeabi_memclr>
+ 8000af8:	4620      	mov	r0, r4
+ 8000afa:	bd10      	pop	{r4, pc}
+ 8000afc:	00030002 	.word	0x00030002
+
+08000b00 <cmox_hmac_init>:
+ 8000b00:	b510      	push	{r4, lr}
+ 8000b02:	4604      	mov	r4, r0
+ 8000b04:	f000 fa22 	bl	8000f4c <cmox_hmac_getByMAC>
+ 8000b08:	b908      	cbnz	r0, 8000b0e <cmox_hmac_init+0xe>
+ 8000b0a:	4805      	ldr	r0, [pc, #20]	; (8000b20 <cmox_hmac_init+0x20>)
+ 8000b0c:	bd10      	pop	{r4, pc}
+ 8000b0e:	2100      	movs	r1, #0
+ 8000b10:	60a1      	str	r1, [r4, #8]
+ 8000b12:	f8d0 217c 	ldr.w	r2, [r0, #380]	; 0x17c
+ 8000b16:	6811      	ldr	r1, [r2, #0]
+ 8000b18:	4788      	blx	r1
+ 8000b1a:	f44f 3040 	mov.w	r0, #196608	; 0x30000
+ 8000b1e:	bd10      	pop	{r4, pc}
+ 8000b20:	00030002 	.word	0x00030002
+
+08000b24 <cmox_hmac_setTagLen>:
+ 8000b24:	b570      	push	{r4, r5, r6, lr}
+ 8000b26:	4604      	mov	r4, r0
+ 8000b28:	460d      	mov	r5, r1
+ 8000b2a:	f000 fa0f 	bl	8000f4c <cmox_hmac_getByMAC>
+ 8000b2e:	4e06      	ldr	r6, [pc, #24]	; (8000b48 <cmox_hmac_setTagLen+0x24>)
+ 8000b30:	b140      	cbz	r0, 8000b44 <cmox_hmac_setTagLen+0x20>
+ 8000b32:	f8d0 017c 	ldr.w	r0, [r0, #380]	; 0x17c
+ 8000b36:	6841      	ldr	r1, [r0, #4]
+ 8000b38:	4788      	blx	r1
+ 8000b3a:	42a8      	cmp	r0, r5
+ 8000b3c:	bf24      	itt	cs
+ 8000b3e:	6065      	strcs	r5, [r4, #4]
+ 8000b40:	f44f 3640 	movcs.w	r6, #196608	; 0x30000
+ 8000b44:	4630      	mov	r0, r6
+ 8000b46:	bd70      	pop	{r4, r5, r6, pc}
+ 8000b48:	00030002 	.word	0x00030002
+
+08000b4c <cmox_hmac_setKey>:
+ 8000b4c:	e92d 47ff 	stmdb	sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr}
+ 8000b50:	0015      	movs	r5, r2
+ 8000b52:	460c      	mov	r4, r1
+ 8000b54:	d000      	beq.n	8000b58 <cmox_hmac_setKey+0xc>
+ 8000b56:	b12c      	cbz	r4, 8000b64 <cmox_hmac_setKey+0x18>
+ 8000b58:	4606      	mov	r6, r0
+ 8000b5a:	f000 f9f7 	bl	8000f4c <cmox_hmac_getByMAC>
+ 8000b5e:	ea5f 0800 	movs.w	r8, r0
+ 8000b62:	d101      	bne.n	8000b68 <cmox_hmac_setKey+0x1c>
+ 8000b64:	4864      	ldr	r0, [pc, #400]	; (8000cf8 <cmox_hmac_setKey+0x1ac>)
+ 8000b66:	e0c3      	b.n	8000cf0 <cmox_hmac_setKey+0x1a4>
+ 8000b68:	f8d8 00f8 	ldr.w	r0, [r8, #248]	; 0xf8
+ 8000b6c:	6801      	ldr	r1, [r0, #0]
+ 8000b6e:	684a      	ldr	r2, [r1, #4]
+ 8000b70:	4790      	blx	r2
+ 8000b72:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000b76:	d117      	bne.n	8000ba8 <cmox_hmac_setKey+0x5c>
+ 8000b78:	f8d8 117c 	ldr.w	r1, [r8, #380]	; 0x17c
+ 8000b7c:	688a      	ldr	r2, [r1, #8]
+ 8000b7e:	4640      	mov	r0, r8
+ 8000b80:	4790      	blx	r2
+ 8000b82:	4681      	mov	r9, r0
+ 8000b84:	f1b9 0f81 	cmp.w	r9, #129	; 0x81
+ 8000b88:	f080 809e 	bcs.w	8000cc8 <cmox_hmac_setKey+0x17c>
+ 8000b8c:	45a9      	cmp	r9, r5
+ 8000b8e:	f108 0afc 	add.w	sl, r8, #252	; 0xfc
+ 8000b92:	d217      	bcs.n	8000bc4 <cmox_hmac_setKey+0x78>
+ 8000b94:	f8d8 00f8 	ldr.w	r0, [r8, #248]	; 0xf8
+ 8000b98:	6803      	ldr	r3, [r0, #0]
+ 8000b9a:	f8d3 c00c 	ldr.w	ip, [r3, #12]
+ 8000b9e:	462a      	mov	r2, r5
+ 8000ba0:	4621      	mov	r1, r4
+ 8000ba2:	47e0      	blx	ip
+ 8000ba4:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000ba8:	f040 808e 	bne.w	8000cc8 <cmox_hmac_setKey+0x17c>
+ 8000bac:	f8d8 00f8 	ldr.w	r0, [r8, #248]	; 0xf8
+ 8000bb0:	6803      	ldr	r3, [r0, #0]
+ 8000bb2:	f8d3 c010 	ldr.w	ip, [r3, #16]
+ 8000bb6:	466a      	mov	r2, sp
+ 8000bb8:	4651      	mov	r1, sl
+ 8000bba:	47e0      	blx	ip
+ 8000bbc:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000bc0:	d176      	bne.n	8000cb0 <cmox_hmac_setKey+0x164>
+ 8000bc2:	e00a      	b.n	8000bda <cmox_hmac_setKey+0x8e>
+ 8000bc4:	2000      	movs	r0, #0
+ 8000bc6:	e004      	b.n	8000bd2 <cmox_hmac_setKey+0x86>
+ 8000bc8:	5c21      	ldrb	r1, [r4, r0]
+ 8000bca:	f80a 1000 	strb.w	r1, [sl, r0]
+ 8000bce:	9800      	ldr	r0, [sp, #0]
+ 8000bd0:	1c40      	adds	r0, r0, #1
+ 8000bd2:	9000      	str	r0, [sp, #0]
+ 8000bd4:	9800      	ldr	r0, [sp, #0]
+ 8000bd6:	42a8      	cmp	r0, r5
+ 8000bd8:	d3f6      	bcc.n	8000bc8 <cmox_hmac_setKey+0x7c>
+ 8000bda:	f04f 0c00 	mov.w	ip, #0
+ 8000bde:	4947      	ldr	r1, [pc, #284]	; (8000cfc <cmox_hmac_setKey+0x1b0>)
+ 8000be0:	4a47      	ldr	r2, [pc, #284]	; (8000d00 <cmox_hmac_setKey+0x1b4>)
+ 8000be2:	4b48      	ldr	r3, [pc, #288]	; (8000d04 <cmox_hmac_setKey+0x1b8>)
+ 8000be4:	ac01      	add	r4, sp, #4
+ 8000be6:	9800      	ldr	r0, [sp, #0]
+ 8000be8:	4584      	cmp	ip, r0
+ 8000bea:	d258      	bcs.n	8000c9e <cmox_hmac_setKey+0x152>
+ 8000bec:	e9d3 7000 	ldrd	r7, r0, [r3]
+ 8000bf0:	ad01      	add	r5, sp, #4
+ 8000bf2:	e9c5 7000 	strd	r7, r0, [r5]
+ 8000bf6:	7810      	ldrb	r0, [r2, #0]
+ 8000bf8:	2800      	cmp	r0, #0
+ 8000bfa:	bf1a      	itte	ne
+ 8000bfc:	2004      	movne	r0, #4
+ 8000bfe:	4686      	movne	lr, r0
+ 8000c00:	f04f 0e00 	moveq.w	lr, #0
+ 8000c04:	5808      	ldr	r0, [r1, r0]
+ 8000c06:	f854 500e 	ldr.w	r5, [r4, lr]
+ 8000c0a:	4428      	add	r0, r5
+ 8000c0c:	4d3e      	ldr	r5, [pc, #248]	; (8000d08 <cmox_hmac_setKey+0x1bc>)
+ 8000c0e:	6005      	str	r5, [r0, #0]
+ 8000c10:	2701      	movs	r7, #1
+ 8000c12:	f8d0 e000 	ldr.w	lr, [r0]
+ 8000c16:	6087      	str	r7, [r0, #8]
+ 8000c18:	9d01      	ldr	r5, [sp, #4]
+ 8000c1a:	684f      	ldr	r7, [r1, #4]
+ 8000c1c:	f81a 000c 	ldrb.w	r0, [sl, ip]
+ 8000c20:	407d      	eors	r5, r7
+ 8000c22:	ea8e 0505 	eor.w	r5, lr, r5
+ 8000c26:	f085 0e04 	eor.w	lr, r5, #4
+ 8000c2a:	6865      	ldr	r5, [r4, #4]
+ 8000c2c:	680f      	ldr	r7, [r1, #0]
+ 8000c2e:	407d      	eors	r5, r7
+ 8000c30:	f085 05fc 	eor.w	r5, r5, #252	; 0xfc
+ 8000c34:	4475      	add	r5, lr
+ 8000c36:	f085 05a3 	eor.w	r5, r5, #163	; 0xa3
+ 8000c3a:	4068      	eors	r0, r5
+ 8000c3c:	f80a 000c 	strb.w	r0, [sl, ip]
+ 8000c40:	f10c 0c01 	add.w	ip, ip, #1
+ 8000c44:	e7cf      	b.n	8000be6 <cmox_hmac_setKey+0x9a>
+ 8000c46:	e9d3 4500 	ldrd	r4, r5, [r3]
+ 8000c4a:	a801      	add	r0, sp, #4
+ 8000c4c:	e9c0 4500 	strd	r4, r5, [r0]
+ 8000c50:	7810      	ldrb	r0, [r2, #0]
+ 8000c52:	4d2e      	ldr	r5, [pc, #184]	; (8000d0c <cmox_hmac_setKey+0x1c0>)
+ 8000c54:	2800      	cmp	r0, #0
+ 8000c56:	bf14      	ite	ne
+ 8000c58:	f04f 0e04 	movne.w	lr, #4
+ 8000c5c:	f04f 0e00 	moveq.w	lr, #0
+ 8000c60:	a801      	add	r0, sp, #4
+ 8000c62:	4674      	mov	r4, lr
+ 8000c64:	f851 e00e 	ldr.w	lr, [r1, lr]
+ 8000c68:	5904      	ldr	r4, [r0, r4]
+ 8000c6a:	44a6      	add	lr, r4
+ 8000c6c:	2701      	movs	r7, #1
+ 8000c6e:	f8ce 5000 	str.w	r5, [lr]
+ 8000c72:	f8de 4000 	ldr.w	r4, [lr]
+ 8000c76:	f8ce 7008 	str.w	r7, [lr, #8]
+ 8000c7a:	684d      	ldr	r5, [r1, #4]
+ 8000c7c:	9f01      	ldr	r7, [sp, #4]
+ 8000c7e:	6840      	ldr	r0, [r0, #4]
+ 8000c80:	407d      	eors	r5, r7
+ 8000c82:	406c      	eors	r4, r5
+ 8000c84:	680d      	ldr	r5, [r1, #0]
+ 8000c86:	4068      	eors	r0, r5
+ 8000c88:	f084 0404 	eor.w	r4, r4, #4
+ 8000c8c:	f080 00fc 	eor.w	r0, r0, #252	; 0xfc
+ 8000c90:	1904      	adds	r4, r0, r4
+ 8000c92:	f084 0457 	eor.w	r4, r4, #87	; 0x57
+ 8000c96:	f80a 400c 	strb.w	r4, [sl, ip]
+ 8000c9a:	f10c 0c01 	add.w	ip, ip, #1
+ 8000c9e:	45cc      	cmp	ip, r9
+ 8000ca0:	d3d1      	bcc.n	8000c46 <cmox_hmac_setKey+0xfa>
+ 8000ca2:	f8d8 00f8 	ldr.w	r0, [r8, #248]	; 0xf8
+ 8000ca6:	6801      	ldr	r1, [r0, #0]
+ 8000ca8:	684a      	ldr	r2, [r1, #4]
+ 8000caa:	4790      	blx	r2
+ 8000cac:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000cb0:	d10a      	bne.n	8000cc8 <cmox_hmac_setKey+0x17c>
+ 8000cb2:	f8d8 00f8 	ldr.w	r0, [r8, #248]	; 0xf8
+ 8000cb6:	6803      	ldr	r3, [r0, #0]
+ 8000cb8:	f8d3 800c 	ldr.w	r8, [r3, #12]
+ 8000cbc:	464a      	mov	r2, r9
+ 8000cbe:	4651      	mov	r1, sl
+ 8000cc0:	47c0      	blx	r8
+ 8000cc2:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000cc6:	d001      	beq.n	8000ccc <cmox_hmac_setKey+0x180>
+ 8000cc8:	4811      	ldr	r0, [pc, #68]	; (8000d10 <cmox_hmac_setKey+0x1c4>)
+ 8000cca:	e011      	b.n	8000cf0 <cmox_hmac_setKey+0x1a4>
+ 8000ccc:	2000      	movs	r0, #0
+ 8000cce:	e006      	b.n	8000cde <cmox_hmac_setKey+0x192>
+ 8000cd0:	f85a 1020 	ldr.w	r1, [sl, r0, lsl #2]
+ 8000cd4:	f081 316a 	eor.w	r1, r1, #1785358954	; 0x6a6a6a6a
+ 8000cd8:	f84a 1020 	str.w	r1, [sl, r0, lsl #2]
+ 8000cdc:	1c40      	adds	r0, r0, #1
+ 8000cde:	ebb0 0f99 	cmp.w	r0, r9, lsr #2
+ 8000ce2:	d3f5      	bcc.n	8000cd0 <cmox_hmac_setKey+0x184>
+ 8000ce4:	68b0      	ldr	r0, [r6, #8]
+ 8000ce6:	f040 0001 	orr.w	r0, r0, #1
+ 8000cea:	60b0      	str	r0, [r6, #8]
+ 8000cec:	f44f 3040 	mov.w	r0, #196608	; 0x30000
+ 8000cf0:	b004      	add	sp, #16
+ 8000cf2:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 8000cf6:	bf00      	nop
+ 8000cf8:	00030002 	.word	0x00030002
+ 8000cfc:	080178d4 	.word	0x080178d4
+ 8000d00:	200008e8 	.word	0x200008e8
+ 8000d04:	08000f24 	.word	0x08000f24
+ 8000d08:	d74ebead 	.word	0xd74ebead
+ 8000d0c:	a175be0d 	.word	0xa175be0d
+ 8000d10:	00030001 	.word	0x00030001
+
+08000d14 <cmox_hmac_append>:
+ 8000d14:	b538      	push	{r3, r4, r5, lr}
+ 8000d16:	460c      	mov	r4, r1
+ 8000d18:	7a01      	ldrb	r1, [r0, #8]
+ 8000d1a:	4615      	mov	r5, r2
+ 8000d1c:	07ca      	lsls	r2, r1, #31
+ 8000d1e:	d502      	bpl.n	8000d26 <cmox_hmac_append+0x12>
+ 8000d20:	f000 f914 	bl	8000f4c <cmox_hmac_getByMAC>
+ 8000d24:	b908      	cbnz	r0, 8000d2a <cmox_hmac_append+0x16>
+ 8000d26:	4808      	ldr	r0, [pc, #32]	; (8000d48 <cmox_hmac_append+0x34>)
+ 8000d28:	bd32      	pop	{r1, r4, r5, pc}
+ 8000d2a:	f8d0 00f8 	ldr.w	r0, [r0, #248]	; 0xf8
+ 8000d2e:	6803      	ldr	r3, [r0, #0]
+ 8000d30:	4621      	mov	r1, r4
+ 8000d32:	68dc      	ldr	r4, [r3, #12]
+ 8000d34:	462a      	mov	r2, r5
+ 8000d36:	47a0      	blx	r4
+ 8000d38:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000d3c:	d001      	beq.n	8000d42 <cmox_hmac_append+0x2e>
+ 8000d3e:	4803      	ldr	r0, [pc, #12]	; (8000d4c <cmox_hmac_append+0x38>)
+ 8000d40:	bd32      	pop	{r1, r4, r5, pc}
+ 8000d42:	f44f 3040 	mov.w	r0, #196608	; 0x30000
+ 8000d46:	bd32      	pop	{r1, r4, r5, pc}
+ 8000d48:	00030002 	.word	0x00030002
+ 8000d4c:	00030001 	.word	0x00030001
+
+08000d50 <cmox_hmac_generateTag>:
+ 8000d50:	e92d 41f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, lr}
+ 8000d54:	b091      	sub	sp, #68	; 0x44
+ 8000d56:	4605      	mov	r5, r0
+ 8000d58:	460e      	mov	r6, r1
+ 8000d5a:	4617      	mov	r7, r2
+ 8000d5c:	2140      	movs	r1, #64	; 0x40
+ 8000d5e:	a801      	add	r0, sp, #4
+ 8000d60:	f016 fce4 	bl	801772c <__aeabi_memclr>
+ 8000d64:	7a29      	ldrb	r1, [r5, #8]
+ 8000d66:	07c8      	lsls	r0, r1, #31
+ 8000d68:	d504      	bpl.n	8000d74 <cmox_hmac_generateTag+0x24>
+ 8000d6a:	4628      	mov	r0, r5
+ 8000d6c:	f000 f8ee 	bl	8000f4c <cmox_hmac_getByMAC>
+ 8000d70:	0004      	movs	r4, r0
+ 8000d72:	d102      	bne.n	8000d7a <cmox_hmac_generateTag+0x2a>
+ 8000d74:	f8df 80a4 	ldr.w	r8, [pc, #164]	; 8000e1c <cmox_hmac_generateTag+0xcc>
+ 8000d78:	e04b      	b.n	8000e12 <cmox_hmac_generateTag+0xc2>
+ 8000d7a:	f8d4 00f8 	ldr.w	r0, [r4, #248]	; 0xf8
+ 8000d7e:	f8df 80a0 	ldr.w	r8, [pc, #160]	; 8000e20 <cmox_hmac_generateTag+0xd0>
+ 8000d82:	6803      	ldr	r3, [r0, #0]
+ 8000d84:	f8d3 c010 	ldr.w	ip, [r3, #16]
+ 8000d88:	466a      	mov	r2, sp
+ 8000d8a:	a901      	add	r1, sp, #4
+ 8000d8c:	47e0      	blx	ip
+ 8000d8e:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000d92:	d13e      	bne.n	8000e12 <cmox_hmac_generateTag+0xc2>
+ 8000d94:	f8d4 00f8 	ldr.w	r0, [r4, #248]	; 0xf8
+ 8000d98:	6801      	ldr	r1, [r0, #0]
+ 8000d9a:	684a      	ldr	r2, [r1, #4]
+ 8000d9c:	4790      	blx	r2
+ 8000d9e:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000da2:	d136      	bne.n	8000e12 <cmox_hmac_generateTag+0xc2>
+ 8000da4:	f8d4 117c 	ldr.w	r1, [r4, #380]	; 0x17c
+ 8000da8:	688a      	ldr	r2, [r1, #8]
+ 8000daa:	4620      	mov	r0, r4
+ 8000dac:	4790      	blx	r2
+ 8000dae:	f8d4 30f8 	ldr.w	r3, [r4, #248]	; 0xf8
+ 8000db2:	4602      	mov	r2, r0
+ 8000db4:	4618      	mov	r0, r3
+ 8000db6:	681b      	ldr	r3, [r3, #0]
+ 8000db8:	f8d3 c00c 	ldr.w	ip, [r3, #12]
+ 8000dbc:	f104 01fc 	add.w	r1, r4, #252	; 0xfc
+ 8000dc0:	47e0      	blx	ip
+ 8000dc2:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000dc6:	d124      	bne.n	8000e12 <cmox_hmac_generateTag+0xc2>
+ 8000dc8:	f8d4 017c 	ldr.w	r0, [r4, #380]	; 0x17c
+ 8000dcc:	6841      	ldr	r1, [r0, #4]
+ 8000dce:	4788      	blx	r1
+ 8000dd0:	f8d4 30f8 	ldr.w	r3, [r4, #248]	; 0xf8
+ 8000dd4:	4602      	mov	r2, r0
+ 8000dd6:	4618      	mov	r0, r3
+ 8000dd8:	681b      	ldr	r3, [r3, #0]
+ 8000dda:	f8d3 c00c 	ldr.w	ip, [r3, #12]
+ 8000dde:	a901      	add	r1, sp, #4
+ 8000de0:	47e0      	blx	ip
+ 8000de2:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000de6:	d114      	bne.n	8000e12 <cmox_hmac_generateTag+0xc2>
+ 8000de8:	f8d4 00f8 	ldr.w	r0, [r4, #248]	; 0xf8
+ 8000dec:	6802      	ldr	r2, [r0, #0]
+ 8000dee:	6869      	ldr	r1, [r5, #4]
+ 8000df0:	6893      	ldr	r3, [r2, #8]
+ 8000df2:	4798      	blx	r3
+ 8000df4:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000df8:	d10b      	bne.n	8000e12 <cmox_hmac_generateTag+0xc2>
+ 8000dfa:	f8d4 00f8 	ldr.w	r0, [r4, #248]	; 0xf8
+ 8000dfe:	6803      	ldr	r3, [r0, #0]
+ 8000e00:	691c      	ldr	r4, [r3, #16]
+ 8000e02:	463a      	mov	r2, r7
+ 8000e04:	4631      	mov	r1, r6
+ 8000e06:	47a0      	blx	r4
+ 8000e08:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000e0c:	bf08      	it	eq
+ 8000e0e:	f44f 3840 	moveq.w	r8, #196608	; 0x30000
+ 8000e12:	4640      	mov	r0, r8
+ 8000e14:	b012      	add	sp, #72	; 0x48
+ 8000e16:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 8000e1a:	bf00      	nop
+ 8000e1c:	00030002 	.word	0x00030002
+ 8000e20:	00030001 	.word	0x00030001
+
+08000e24 <cmox_hmac_verifyTag>:
+ 8000e24:	e92d 41f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, lr}
+ 8000e28:	b0a5      	sub	sp, #148	; 0x94
+ 8000e2a:	4607      	mov	r7, r0
+ 8000e2c:	4688      	mov	r8, r1
+ 8000e2e:	4616      	mov	r6, r2
+ 8000e30:	2140      	movs	r1, #64	; 0x40
+ 8000e32:	a815      	add	r0, sp, #84	; 0x54
+ 8000e34:	f016 fc7a 	bl	801772c <__aeabi_memclr>
+ 8000e38:	2200      	movs	r2, #0
+ 8000e3a:	9204      	str	r2, [sp, #16]
+ 8000e3c:	2140      	movs	r1, #64	; 0x40
+ 8000e3e:	a805      	add	r0, sp, #20
+ 8000e40:	f016 fc74 	bl	801772c <__aeabi_memclr>
+ 8000e44:	7a38      	ldrb	r0, [r7, #8]
+ 8000e46:	07c1      	lsls	r1, r0, #31
+ 8000e48:	d55e      	bpl.n	8000f08 <cmox_hmac_verifyTag+0xe4>
+ 8000e4a:	4638      	mov	r0, r7
+ 8000e4c:	f000 f87e 	bl	8000f4c <cmox_hmac_getByMAC>
+ 8000e50:	0005      	movs	r5, r0
+ 8000e52:	d059      	beq.n	8000f08 <cmox_hmac_verifyTag+0xe4>
+ 8000e54:	f8d5 00f8 	ldr.w	r0, [r5, #248]	; 0xf8
+ 8000e58:	4c2d      	ldr	r4, [pc, #180]	; (8000f10 <cmox_hmac_verifyTag+0xec>)
+ 8000e5a:	6803      	ldr	r3, [r0, #0]
+ 8000e5c:	f8d3 c010 	ldr.w	ip, [r3, #16]
+ 8000e60:	466a      	mov	r2, sp
+ 8000e62:	a905      	add	r1, sp, #20
+ 8000e64:	47e0      	blx	ip
+ 8000e66:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000e6a:	d13c      	bne.n	8000ee6 <cmox_hmac_verifyTag+0xc2>
+ 8000e6c:	f8d5 00f8 	ldr.w	r0, [r5, #248]	; 0xf8
+ 8000e70:	6801      	ldr	r1, [r0, #0]
+ 8000e72:	684a      	ldr	r2, [r1, #4]
+ 8000e74:	4790      	blx	r2
+ 8000e76:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000e7a:	d134      	bne.n	8000ee6 <cmox_hmac_verifyTag+0xc2>
+ 8000e7c:	f8d5 117c 	ldr.w	r1, [r5, #380]	; 0x17c
+ 8000e80:	688a      	ldr	r2, [r1, #8]
+ 8000e82:	4628      	mov	r0, r5
+ 8000e84:	4790      	blx	r2
+ 8000e86:	f8d5 30f8 	ldr.w	r3, [r5, #248]	; 0xf8
+ 8000e8a:	4602      	mov	r2, r0
+ 8000e8c:	4618      	mov	r0, r3
+ 8000e8e:	681b      	ldr	r3, [r3, #0]
+ 8000e90:	f8d3 c00c 	ldr.w	ip, [r3, #12]
+ 8000e94:	f105 01fc 	add.w	r1, r5, #252	; 0xfc
+ 8000e98:	47e0      	blx	ip
+ 8000e9a:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000e9e:	d122      	bne.n	8000ee6 <cmox_hmac_verifyTag+0xc2>
+ 8000ea0:	f8d5 017c 	ldr.w	r0, [r5, #380]	; 0x17c
+ 8000ea4:	6841      	ldr	r1, [r0, #4]
+ 8000ea6:	4788      	blx	r1
+ 8000ea8:	f8d5 30f8 	ldr.w	r3, [r5, #248]	; 0xf8
+ 8000eac:	4602      	mov	r2, r0
+ 8000eae:	4618      	mov	r0, r3
+ 8000eb0:	681b      	ldr	r3, [r3, #0]
+ 8000eb2:	f8d3 c00c 	ldr.w	ip, [r3, #12]
+ 8000eb6:	a905      	add	r1, sp, #20
+ 8000eb8:	47e0      	blx	ip
+ 8000eba:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000ebe:	d112      	bne.n	8000ee6 <cmox_hmac_verifyTag+0xc2>
+ 8000ec0:	f8d5 00f8 	ldr.w	r0, [r5, #248]	; 0xf8
+ 8000ec4:	6802      	ldr	r2, [r0, #0]
+ 8000ec6:	6879      	ldr	r1, [r7, #4]
+ 8000ec8:	6893      	ldr	r3, [r2, #8]
+ 8000eca:	4798      	blx	r3
+ 8000ecc:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000ed0:	d109      	bne.n	8000ee6 <cmox_hmac_verifyTag+0xc2>
+ 8000ed2:	f8d5 00f8 	ldr.w	r0, [r5, #248]	; 0xf8
+ 8000ed6:	6803      	ldr	r3, [r0, #0]
+ 8000ed8:	691d      	ldr	r5, [r3, #16]
+ 8000eda:	aa04      	add	r2, sp, #16
+ 8000edc:	a915      	add	r1, sp, #84	; 0x54
+ 8000ede:	47a8      	blx	r5
+ 8000ee0:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000ee4:	d001      	beq.n	8000eea <cmox_hmac_verifyTag+0xc6>
+ 8000ee6:	4620      	mov	r0, r4
+ 8000ee8:	e00f      	b.n	8000f0a <cmox_hmac_verifyTag+0xe6>
+ 8000eea:	4b0a      	ldr	r3, [pc, #40]	; (8000f14 <cmox_hmac_verifyTag+0xf0>)
+ 8000eec:	490a      	ldr	r1, [pc, #40]	; (8000f18 <cmox_hmac_verifyTag+0xf4>)
+ 8000eee:	4a0b      	ldr	r2, [pc, #44]	; (8000f1c <cmox_hmac_verifyTag+0xf8>)
+ 8000ef0:	9603      	str	r6, [sp, #12]
+ 8000ef2:	9102      	str	r1, [sp, #8]
+ 8000ef4:	9201      	str	r2, [sp, #4]
+ 8000ef6:	4640      	mov	r0, r8
+ 8000ef8:	681c      	ldr	r4, [r3, #0]
+ 8000efa:	9b04      	ldr	r3, [sp, #16]
+ 8000efc:	9400      	str	r4, [sp, #0]
+ 8000efe:	aa15      	add	r2, sp, #84	; 0x54
+ 8000f00:	6879      	ldr	r1, [r7, #4]
+ 8000f02:	f000 f9e5 	bl	80012d0 <cmox_utils_robustCmp>
+ 8000f06:	e000      	b.n	8000f0a <cmox_hmac_verifyTag+0xe6>
+ 8000f08:	4805      	ldr	r0, [pc, #20]	; (8000f20 <cmox_hmac_verifyTag+0xfc>)
+ 8000f0a:	b026      	add	sp, #152	; 0x98
+ 8000f0c:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 8000f10:	00030001 	.word	0x00030001
+ 8000f14:	080178dc 	.word	0x080178dc
+ 8000f18:	00036e93 	.word	0x00036e93
+ 8000f1c:	0003c726 	.word	0x0003c726
+ 8000f20:	00030002 	.word	0x00030002
+ 8000f24:	0101b004 	.word	0x0101b004
+ 8000f28:	45011700 	.word	0x45011700
+
+08000f2c <hmac_table>:
+ 8000f2c:	08000ae1 08000b01 08000b25 080003b5     ........%.......
+ 8000f3c:	08000b4d 08000d15 08000d51 08000e25     M.......Q...%...
+
+08000f4c <cmox_hmac_getByMAC>:
+ 8000f4c:	6801      	ldr	r1, [r0, #0]
+ 8000f4e:	4a02      	ldr	r2, [pc, #8]	; (8000f58 <cmox_hmac_getByMAC+0xc>)
+ 8000f50:	4291      	cmp	r1, r2
+ 8000f52:	bf18      	it	ne
+ 8000f54:	2000      	movne	r0, #0
+ 8000f56:	4770      	bx	lr
+ 8000f58:	08000f2c 	.word	0x08000f2c
+
+08000f5c <cmox_hmac_construct>:
+ 8000f5c:	b510      	push	{r4, lr}
+ 8000f5e:	0004      	movs	r4, r0
+ 8000f60:	bf08      	it	eq
+ 8000f62:	2400      	moveq	r4, #0
+ 8000f64:	d004      	beq.n	8000f70 <cmox_hmac_construct+0x14>
+ 8000f66:	4803      	ldr	r0, [pc, #12]	; (8000f74 <cmox_hmac_construct+0x18>)
+ 8000f68:	6020      	str	r0, [r4, #0]
+ 8000f6a:	4620      	mov	r0, r4
+ 8000f6c:	6809      	ldr	r1, [r1, #0]
+ 8000f6e:	4788      	blx	r1
+ 8000f70:	4620      	mov	r0, r4
+ 8000f72:	bd10      	pop	{r4, pc}
+ 8000f74:	08000f2c 	.word	0x08000f2c
+
+08000f78 <cmox_md_updateState_small>:
+ 8000f78:	2220      	movs	r2, #32
+ 8000f7a:	305c      	adds	r0, #92	; 0x5c
+ 8000f7c:	f016 bbd4 	b.w	8017728 <__aeabi_memcpy>
+
+08000f80 <cmox_md_copyLastState_small>:
+ 8000f80:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8000f82:	6884      	ldr	r4, [r0, #8]
+ 8000f84:	08a3      	lsrs	r3, r4, #2
+ 8000f86:	2200      	movs	r2, #0
+ 8000f88:	f004 0403 	and.w	r4, r4, #3
+ 8000f8c:	e007      	b.n	8000f9e <cmox_md_copyLastState_small+0x1e>
+ 8000f8e:	f100 055c 	add.w	r5, r0, #92	; 0x5c
+ 8000f92:	f855 6022 	ldr.w	r6, [r5, r2, lsl #2]
+ 8000f96:	ba35      	rev	r5, r6
+ 8000f98:	f841 5022 	str.w	r5, [r1, r2, lsl #2]
+ 8000f9c:	1c52      	adds	r2, r2, #1
+ 8000f9e:	429a      	cmp	r2, r3
+ 8000fa0:	d3f5      	bcc.n	8000f8e <cmox_md_copyLastState_small+0xe>
+ 8000fa2:	2200      	movs	r2, #0
+ 8000fa4:	e00b      	b.n	8000fbe <cmox_md_copyLastState_small+0x3e>
+ 8000fa6:	f100 055c 	add.w	r5, r0, #92	; 0x5c
+ 8000faa:	eb02 0783 	add.w	r7, r2, r3, lsl #2
+ 8000fae:	f855 6023 	ldr.w	r6, [r5, r3, lsl #2]
+ 8000fb2:	00d5      	lsls	r5, r2, #3
+ 8000fb4:	f1c5 0518 	rsb	r5, r5, #24
+ 8000fb8:	40ee      	lsrs	r6, r5
+ 8000fba:	55ce      	strb	r6, [r1, r7]
+ 8000fbc:	1c52      	adds	r2, r2, #1
+ 8000fbe:	42a2      	cmp	r2, r4
+ 8000fc0:	d3f1      	bcc.n	8000fa6 <cmox_md_copyLastState_small+0x26>
+ 8000fc2:	bdf0      	pop	{r4, r5, r6, r7, pc}
+
+08000fc4 <cmox_md_padMsgLen_small>:
+ 8000fc4:	b530      	push	{r4, r5, lr}
+ 8000fc6:	68c4      	ldr	r4, [r0, #12]
+ 8000fc8:	6903      	ldr	r3, [r0, #16]
+ 8000fca:	2200      	movs	r2, #0
+ 8000fcc:	1ae3      	subs	r3, r4, r3
+ 8000fce:	18d5      	adds	r5, r2, r3
+ 8000fd0:	5c8c      	ldrb	r4, [r1, r2]
+ 8000fd2:	4405      	add	r5, r0
+ 8000fd4:	1c52      	adds	r2, r2, #1
+ 8000fd6:	2a08      	cmp	r2, #8
+ 8000fd8:	772c      	strb	r4, [r5, #28]
+ 8000fda:	d3f8      	bcc.n	8000fce <cmox_md_padMsgLen_small+0xa>
+ 8000fdc:	bd30      	pop	{r4, r5, pc}
+
+08000fde <cmox_md_construct>:
+ 8000fde:	6003      	str	r3, [r0, #0]
+ 8000fe0:	60c1      	str	r1, [r0, #12]
+ 8000fe2:	6102      	str	r2, [r0, #16]
+ 8000fe4:	4770      	bx	lr
+
+08000fe6 <cmox_md_init>:
+ 8000fe6:	b538      	push	{r3, r4, r5, lr}
+ 8000fe8:	4604      	mov	r4, r0
+ 8000fea:	4615      	mov	r5, r2
+ 8000fec:	2200      	movs	r2, #0
+ 8000fee:	6062      	str	r2, [r4, #4]
+ 8000ff0:	6823      	ldr	r3, [r4, #0]
+ 8000ff2:	685a      	ldr	r2, [r3, #4]
+ 8000ff4:	4790      	blx	r2
+ 8000ff6:	2000      	movs	r0, #0
+ 8000ff8:	6160      	str	r0, [r4, #20]
+ 8000ffa:	61a0      	str	r0, [r4, #24]
+ 8000ffc:	60a5      	str	r5, [r4, #8]
+ 8000ffe:	f44f 3000 	mov.w	r0, #131072	; 0x20000
+ 8001002:	bd32      	pop	{r1, r4, r5, pc}
+
+08001004 <cmox_md_setTagSize>:
+ 8001004:	6081      	str	r1, [r0, #8]
+ 8001006:	f44f 3000 	mov.w	r0, #131072	; 0x20000
+ 800100a:	4770      	bx	lr
+
+0800100c <cmox_md_append>:
+ 800100c:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
+ 8001010:	4604      	mov	r4, r0
+ 8001012:	7920      	ldrb	r0, [r4, #4]
+ 8001014:	f8d4 800c 	ldr.w	r8, [r4, #12]
+ 8001018:	0745      	lsls	r5, r0, #29
+ 800101a:	bf48      	it	mi
+ 800101c:	4824      	ldrmi	r0, [pc, #144]	; (80010b0 <cmox_md_append+0xa4>)
+ 800101e:	d445      	bmi.n	80010ac <cmox_md_append+0xa0>
+ 8001020:	6966      	ldr	r6, [r4, #20]
+ 8001022:	461d      	mov	r5, r3
+ 8001024:	f1a8 0001 	sub.w	r0, r8, #1
+ 8001028:	ea00 03d6 	and.w	r3, r0, r6, lsr #3
+ 800102c:	eb06 06c5 	add.w	r6, r6, r5, lsl #3
+ 8001030:	ebb6 0fc5 	cmp.w	r6, r5, lsl #3
+ 8001034:	6166      	str	r6, [r4, #20]
+ 8001036:	d202      	bcs.n	800103e <cmox_md_append+0x32>
+ 8001038:	69a6      	ldr	r6, [r4, #24]
+ 800103a:	1c76      	adds	r6, r6, #1
+ 800103c:	61a6      	str	r6, [r4, #24]
+ 800103e:	4617      	mov	r7, r2
+ 8001040:	69a6      	ldr	r6, [r4, #24]
+ 8001042:	eb06 7655 	add.w	r6, r6, r5, lsr #29
+ 8001046:	61a6      	str	r6, [r4, #24]
+ 8001048:	460e      	mov	r6, r1
+ 800104a:	18e9      	adds	r1, r5, r3
+ 800104c:	4288      	cmp	r0, r1
+ 800104e:	d225      	bcs.n	800109c <cmox_md_append+0x90>
+ 8001050:	eba8 0903 	sub.w	r9, r8, r3
+ 8001054:	464a      	mov	r2, r9
+ 8001056:	4631      	mov	r1, r6
+ 8001058:	18f8      	adds	r0, r7, r3
+ 800105a:	f016 fb65 	bl	8017728 <__aeabi_memcpy>
+ 800105e:	6822      	ldr	r2, [r4, #0]
+ 8001060:	6813      	ldr	r3, [r2, #0]
+ 8001062:	4639      	mov	r1, r7
+ 8001064:	e00f      	b.n	8001086 <cmox_md_append+0x7a>
+ 8001066:	4642      	mov	r2, r8
+ 8001068:	4638      	mov	r0, r7
+ 800106a:	f016 fb5d 	bl	8017728 <__aeabi_memcpy>
+ 800106e:	6823      	ldr	r3, [r4, #0]
+ 8001070:	681a      	ldr	r2, [r3, #0]
+ 8001072:	4639      	mov	r1, r7
+ 8001074:	4620      	mov	r0, r4
+ 8001076:	4790      	blx	r2
+ 8001078:	e007      	b.n	800108a <cmox_md_append+0x7e>
+ 800107a:	1831      	adds	r1, r6, r0
+ 800107c:	f011 0003 	ands.w	r0, r1, #3
+ 8001080:	d1f1      	bne.n	8001066 <cmox_md_append+0x5a>
+ 8001082:	6822      	ldr	r2, [r4, #0]
+ 8001084:	6813      	ldr	r3, [r2, #0]
+ 8001086:	4620      	mov	r0, r4
+ 8001088:	4798      	blx	r3
+ 800108a:	4648      	mov	r0, r9
+ 800108c:	eb00 0908 	add.w	r9, r0, r8
+ 8001090:	f1a9 0101 	sub.w	r1, r9, #1
+ 8001094:	42a9      	cmp	r1, r5
+ 8001096:	d3f0      	bcc.n	800107a <cmox_md_append+0x6e>
+ 8001098:	2300      	movs	r3, #0
+ 800109a:	e000      	b.n	800109e <cmox_md_append+0x92>
+ 800109c:	2000      	movs	r0, #0
+ 800109e:	1a2a      	subs	r2, r5, r0
+ 80010a0:	1831      	adds	r1, r6, r0
+ 80010a2:	18f8      	adds	r0, r7, r3
+ 80010a4:	f016 fb40 	bl	8017728 <__aeabi_memcpy>
+ 80010a8:	f44f 3000 	mov.w	r0, #131072	; 0x20000
+ 80010ac:	e8bd 83f2 	ldmia.w	sp!, {r1, r4, r5, r6, r7, r8, r9, pc}
+ 80010b0:	00020004 	.word	0x00020004
+
+080010b4 <cmox_md_generateTag>:
+ 80010b4:	e92d 4ffc 	stmdb	sp!, {r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 80010b8:	4602      	mov	r2, r0
+ 80010ba:	b085      	sub	sp, #20
+ 80010bc:	68d0      	ldr	r0, [r2, #12]
+ 80010be:	6913      	ldr	r3, [r2, #16]
+ 80010c0:	f8df c16c 	ldr.w	ip, [pc, #364]	; 8001230 <cmox_md_generateTag+0x17c>
+ 80010c4:	f8df 816c 	ldr.w	r8, [pc, #364]	; 8001234 <cmox_md_generateTag+0x180>
+ 80010c8:	eba0 0a03 	sub.w	sl, r0, r3
+ 80010cc:	6850      	ldr	r0, [r2, #4]
+ 80010ce:	f040 0004 	orr.w	r0, r0, #4
+ 80010d2:	6050      	str	r0, [r2, #4]
+ 80010d4:	2700      	movs	r7, #0
+ 80010d6:	a803      	add	r0, sp, #12
+ 80010d8:	9002      	str	r0, [sp, #8]
+ 80010da:	f10d 0e0c 	add.w	lr, sp, #12
+ 80010de:	e9d8 3400 	ldrd	r3, r4, [r8]
+ 80010e2:	a803      	add	r0, sp, #12
+ 80010e4:	4d54      	ldr	r5, [pc, #336]	; (8001238 <cmox_md_generateTag+0x184>)
+ 80010e6:	e9c0 3400 	strd	r3, r4, [r0]
+ 80010ea:	7828      	ldrb	r0, [r5, #0]
+ 80010ec:	4d53      	ldr	r5, [pc, #332]	; (800123c <cmox_md_generateTag+0x188>)
+ 80010ee:	2800      	cmp	r0, #0
+ 80010f0:	bf0c      	ite	eq
+ 80010f2:	2300      	moveq	r3, #0
+ 80010f4:	2304      	movne	r3, #4
+ 80010f6:	4699      	mov	r9, r3
+ 80010f8:	f85c 3003 	ldr.w	r3, [ip, r3]
+ 80010fc:	f85e 4009 	ldr.w	r4, [lr, r9]
+ 8001100:	4423      	add	r3, r4
+ 8001102:	2601      	movs	r6, #1
+ 8001104:	601d      	str	r5, [r3, #0]
+ 8001106:	681c      	ldr	r4, [r3, #0]
+ 8001108:	609e      	str	r6, [r3, #8]
+ 800110a:	f8dc 3004 	ldr.w	r3, [ip, #4]
+ 800110e:	9d03      	ldr	r5, [sp, #12]
+ 8001110:	f8dc 9000 	ldr.w	r9, [ip]
+ 8001114:	f8de 6004 	ldr.w	r6, [lr, #4]
+ 8001118:	405d      	eors	r5, r3
+ 800111a:	4065      	eors	r5, r4
+ 800111c:	4c48      	ldr	r4, [pc, #288]	; (8001240 <cmox_md_generateTag+0x18c>)
+ 800111e:	4065      	eors	r5, r4
+ 8001120:	ea89 0606 	eor.w	r6, r9, r6
+ 8001124:	4c47      	ldr	r4, [pc, #284]	; (8001244 <cmox_md_generateTag+0x190>)
+ 8001126:	4066      	eors	r6, r4
+ 8001128:	1975      	adds	r5, r6, r5
+ 800112a:	4c47      	ldr	r4, [pc, #284]	; (8001248 <cmox_md_generateTag+0x194>)
+ 800112c:	4065      	eors	r5, r4
+ 800112e:	e9d8 6b00 	ldrd	r6, fp, [r8]
+ 8001132:	ac03      	add	r4, sp, #12
+ 8001134:	2800      	cmp	r0, #0
+ 8001136:	e9c4 6b00 	strd	r6, fp, [r4]
+ 800113a:	bf0e      	itee	eq
+ 800113c:	2400      	moveq	r4, #0
+ 800113e:	2004      	movne	r0, #4
+ 8001140:	2404      	movne	r4, #4
+ 8001142:	9e02      	ldr	r6, [sp, #8]
+ 8001144:	f85c 0000 	ldr.w	r0, [ip, r0]
+ 8001148:	5934      	ldr	r4, [r6, r4]
+ 800114a:	1820      	adds	r0, r4, r0
+ 800114c:	4c3f      	ldr	r4, [pc, #252]	; (800124c <cmox_md_generateTag+0x198>)
+ 800114e:	6004      	str	r4, [r0, #0]
+ 8001150:	2601      	movs	r6, #1
+ 8001152:	6804      	ldr	r4, [r0, #0]
+ 8001154:	6086      	str	r6, [r0, #8]
+ 8001156:	9803      	ldr	r0, [sp, #12]
+ 8001158:	9e02      	ldr	r6, [sp, #8]
+ 800115a:	4043      	eors	r3, r0
+ 800115c:	4063      	eors	r3, r4
+ 800115e:	4c38      	ldr	r4, [pc, #224]	; (8001240 <cmox_md_generateTag+0x18c>)
+ 8001160:	6870      	ldr	r0, [r6, #4]
+ 8001162:	4063      	eors	r3, r4
+ 8001164:	ea89 0000 	eor.w	r0, r9, r0
+ 8001168:	4c36      	ldr	r4, [pc, #216]	; (8001244 <cmox_md_generateTag+0x190>)
+ 800116a:	4060      	eors	r0, r4
+ 800116c:	4403      	add	r3, r0
+ 800116e:	4838      	ldr	r0, [pc, #224]	; (8001250 <cmox_md_generateTag+0x19c>)
+ 8001170:	4043      	eors	r3, r0
+ 8001172:	0028      	movs	r0, r5
+ 8001174:	bf18      	it	ne
+ 8001176:	2001      	movne	r0, #1
+ 8001178:	1e5b      	subs	r3, r3, #1
+ 800117a:	419b      	sbcs	r3, r3
+ 800117c:	2f04      	cmp	r7, #4
+ 800117e:	bf2c      	ite	cs
+ 8001180:	b2c0      	uxtbcs	r0, r0
+ 8001182:	0fd8      	lsrcc	r0, r3, #31
+ 8001184:	f102 0314 	add.w	r3, r2, #20
+ 8001188:	f853 0020 	ldr.w	r0, [r3, r0, lsl #2]
+ 800118c:	f007 0303 	and.w	r3, r7, #3
+ 8001190:	f1c3 0303 	rsb	r3, r3, #3
+ 8001194:	00db      	lsls	r3, r3, #3
+ 8001196:	40d8      	lsrs	r0, r3
+ 8001198:	f80d 0007 	strb.w	r0, [sp, r7]
+ 800119c:	1c7f      	adds	r7, r7, #1
+ 800119e:	2f08      	cmp	r7, #8
+ 80011a0:	d39d      	bcc.n	80010de <cmox_md_generateTag+0x2a>
+ 80011a2:	4615      	mov	r5, r2
+ 80011a4:	460c      	mov	r4, r1
+ 80011a6:	696a      	ldr	r2, [r5, #20]
+ 80011a8:	69ab      	ldr	r3, [r5, #24]
+ 80011aa:	68e8      	ldr	r0, [r5, #12]
+ 80011ac:	08d2      	lsrs	r2, r2, #3
+ 80011ae:	ea42 7243 	orr.w	r2, r2, r3, lsl #29
+ 80011b2:	1e40      	subs	r0, r0, #1
+ 80011b4:	ea00 0702 	and.w	r7, r0, r2
+ 80011b8:	2300      	movs	r3, #0
+ 80011ba:	4002      	ands	r2, r0
+ 80011bc:	429b      	cmp	r3, r3
+ 80011be:	d80a      	bhi.n	80011d6 <cmox_md_generateTag+0x122>
+ 80011c0:	4552      	cmp	r2, sl
+ 80011c2:	d208      	bcs.n	80011d6 <cmox_md_generateTag+0x122>
+ 80011c4:	2080      	movs	r0, #128	; 0x80
+ 80011c6:	55e0      	strb	r0, [r4, r7]
+ 80011c8:	1c7f      	adds	r7, r7, #1
+ 80011ca:	4557      	cmp	r7, sl
+ 80011cc:	d216      	bcs.n	80011fc <cmox_md_generateTag+0x148>
+ 80011ce:	ebaa 0107 	sub.w	r1, sl, r7
+ 80011d2:	19e0      	adds	r0, r4, r7
+ 80011d4:	e010      	b.n	80011f8 <cmox_md_generateTag+0x144>
+ 80011d6:	2080      	movs	r0, #128	; 0x80
+ 80011d8:	55e0      	strb	r0, [r4, r7]
+ 80011da:	e000      	b.n	80011de <cmox_md_generateTag+0x12a>
+ 80011dc:	55e3      	strb	r3, [r4, r7]
+ 80011de:	68e8      	ldr	r0, [r5, #12]
+ 80011e0:	1c7f      	adds	r7, r7, #1
+ 80011e2:	4287      	cmp	r7, r0
+ 80011e4:	d3fa      	bcc.n	80011dc <cmox_md_generateTag+0x128>
+ 80011e6:	682a      	ldr	r2, [r5, #0]
+ 80011e8:	6813      	ldr	r3, [r2, #0]
+ 80011ea:	4628      	mov	r0, r5
+ 80011ec:	4798      	blx	r3
+ 80011ee:	f1ba 0f00 	cmp.w	sl, #0
+ 80011f2:	d003      	beq.n	80011fc <cmox_md_generateTag+0x148>
+ 80011f4:	4651      	mov	r1, sl
+ 80011f6:	4620      	mov	r0, r4
+ 80011f8:	f016 fa98 	bl	801772c <__aeabi_memclr>
+ 80011fc:	682a      	ldr	r2, [r5, #0]
+ 80011fe:	9e06      	ldr	r6, [sp, #24]
+ 8001200:	9f05      	ldr	r7, [sp, #20]
+ 8001202:	6893      	ldr	r3, [r2, #8]
+ 8001204:	4669      	mov	r1, sp
+ 8001206:	4628      	mov	r0, r5
+ 8001208:	4798      	blx	r3
+ 800120a:	682a      	ldr	r2, [r5, #0]
+ 800120c:	f8d2 9000 	ldr.w	r9, [r2]
+ 8001210:	4621      	mov	r1, r4
+ 8001212:	4628      	mov	r0, r5
+ 8001214:	47c8      	blx	r9
+ 8001216:	682b      	ldr	r3, [r5, #0]
+ 8001218:	68da      	ldr	r2, [r3, #12]
+ 800121a:	4639      	mov	r1, r7
+ 800121c:	4628      	mov	r0, r5
+ 800121e:	4790      	blx	r2
+ 8001220:	b10e      	cbz	r6, 8001226 <cmox_md_generateTag+0x172>
+ 8001222:	68a8      	ldr	r0, [r5, #8]
+ 8001224:	6030      	str	r0, [r6, #0]
+ 8001226:	f44f 3000 	mov.w	r0, #131072	; 0x20000
+ 800122a:	b007      	add	sp, #28
+ 800122c:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 8001230:	080178d4 	.word	0x080178d4
+ 8001234:	08001254 	.word	0x08001254
+ 8001238:	200008e8 	.word	0x200008e8
+ 800123c:	9310c55f 	.word	0x9310c55f
+ 8001240:	12008504 	.word	0x12008504
+ 8001244:	7a0168fc 	.word	0x7a0168fc
+ 8001248:	ff24f5c0 	.word	0xff24f5c0
+ 800124c:	d433af24 	.word	0xd433af24
+ 8001250:	8b69af26 	.word	0x8b69af26
+ 8001254:	0101b004 	.word	0x0101b004
+ 8001258:	45011700 	.word	0x45011700
+
+0800125c <firstloop_bb_cmp>:
+ 800125c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 800125e:	2401      	movs	r4, #1
+ 8001260:	9400      	str	r4, [sp, #0]
+ 8001262:	2300      	movs	r3, #0
+ 8001264:	2400      	movs	r4, #0
+ 8001266:	e00d      	b.n	8001284 <firstloop_bb_cmp+0x28>
+ 8001268:	9d00      	ldr	r5, [sp, #0]
+ 800126a:	5d06      	ldrb	r6, [r0, r4]
+ 800126c:	5d0f      	ldrb	r7, [r1, r4]
+ 800126e:	407e      	eors	r6, r7
+ 8001270:	43f6      	mvns	r6, r6
+ 8001272:	1c76      	adds	r6, r6, #1
+ 8001274:	0ff6      	lsrs	r6, r6, #31
+ 8001276:	f086 0601 	eor.w	r6, r6, #1
+ 800127a:	4035      	ands	r5, r6
+ 800127c:	9500      	str	r5, [sp, #0]
+ 800127e:	1c64      	adds	r4, r4, #1
+ 8001280:	9d00      	ldr	r5, [sp, #0]
+ 8001282:	18eb      	adds	r3, r5, r3
+ 8001284:	4294      	cmp	r4, r2
+ 8001286:	d3ef      	bcc.n	8001268 <firstloop_bb_cmp+0xc>
+ 8001288:	4618      	mov	r0, r3
+ 800128a:	bdf2      	pop	{r1, r4, r5, r6, r7, pc}
+
+0800128c <secondloop_bb_cmp>:
+ 800128c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 800128e:	2300      	movs	r3, #0
+ 8001290:	2401      	movs	r4, #1
+ 8001292:	9400      	str	r4, [sp, #0]
+ 8001294:	2a00      	cmp	r2, #0
+ 8001296:	e011      	b.n	80012bc <secondloop_bb_cmp+0x30>
+ 8001298:	9c00      	ldr	r4, [sp, #0]
+ 800129a:	1885      	adds	r5, r0, r2
+ 800129c:	188f      	adds	r7, r1, r2
+ 800129e:	f815 6c01 	ldrb.w	r6, [r5, #-1]
+ 80012a2:	f817 5c01 	ldrb.w	r5, [r7, #-1]
+ 80012a6:	406e      	eors	r6, r5
+ 80012a8:	43f6      	mvns	r6, r6
+ 80012aa:	1c76      	adds	r6, r6, #1
+ 80012ac:	0ff6      	lsrs	r6, r6, #31
+ 80012ae:	f086 0601 	eor.w	r6, r6, #1
+ 80012b2:	4034      	ands	r4, r6
+ 80012b4:	9400      	str	r4, [sp, #0]
+ 80012b6:	9c00      	ldr	r4, [sp, #0]
+ 80012b8:	18e3      	adds	r3, r4, r3
+ 80012ba:	1e52      	subs	r2, r2, #1
+ 80012bc:	d1ec      	bne.n	8001298 <secondloop_bb_cmp+0xc>
+ 80012be:	4618      	mov	r0, r3
+ 80012c0:	bdf2      	pop	{r1, r4, r5, r6, r7, pc}
+	...
+
+080012c4 <bufType_bb>:
+ 80012c4:	125d 0800 128d 0800 0001 0000               ]...........
+
+080012d0 <cmox_utils_robustCmp>:
+ 80012d0:	e92d 4ff8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 80012d4:	461d      	mov	r5, r3
+ 80012d6:	f8dd 9028 	ldr.w	r9, [sp, #40]	; 0x28
+ 80012da:	9f0b      	ldr	r7, [sp, #44]	; 0x2c
+ 80012dc:	9c0d      	ldr	r4, [sp, #52]	; 0x34
+ 80012de:	f04f 33ff 	mov.w	r3, #4294967295
+ 80012e2:	9300      	str	r3, [sp, #0]
+ 80012e4:	460e      	mov	r6, r1
+ 80012e6:	4692      	mov	sl, r2
+ 80012e8:	f8d9 b000 	ldr.w	fp, [r9]
+ 80012ec:	4680      	mov	r8, r0
+ 80012ee:	4632      	mov	r2, r6
+ 80012f0:	4651      	mov	r1, sl
+ 80012f2:	47d8      	blx	fp
+ 80012f4:	4683      	mov	fp, r0
+ 80012f6:	b364      	cbz	r4, 8001352 <cmox_utils_robustCmp+0x82>
+ 80012f8:	f8d9 3004 	ldr.w	r3, [r9, #4]
+ 80012fc:	4632      	mov	r2, r6
+ 80012fe:	4651      	mov	r1, sl
+ 8001300:	4640      	mov	r0, r8
+ 8001302:	4798      	blx	r3
+ 8001304:	ea6f 020b 	mvn.w	r2, fp
+ 8001308:	1c52      	adds	r2, r2, #1
+ 800130a:	ea42 020b 	orr.w	r2, r2, fp
+ 800130e:	9900      	ldr	r1, [sp, #0]
+ 8001310:	ea6f 73d2 	mvn.w	r3, r2, lsr #31
+ 8001314:	1c5b      	adds	r3, r3, #1
+ 8001316:	4019      	ands	r1, r3
+ 8001318:	43c2      	mvns	r2, r0
+ 800131a:	9100      	str	r1, [sp, #0]
+ 800131c:	1c52      	adds	r2, r2, #1
+ 800131e:	4302      	orrs	r2, r0
+ 8001320:	9900      	ldr	r1, [sp, #0]
+ 8001322:	ea6f 73d2 	mvn.w	r3, r2, lsr #31
+ 8001326:	1c5b      	adds	r3, r3, #1
+ 8001328:	4019      	ands	r1, r3
+ 800132a:	9100      	str	r1, [sp, #0]
+ 800132c:	f086 3155 	eor.w	r1, r6, #1431655765	; 0x55555555
+ 8001330:	4048      	eors	r0, r1
+ 8001332:	ea87 0100 	eor.w	r1, r7, r0
+ 8001336:	f081 3155 	eor.w	r1, r1, #1431655765	; 0x55555555
+ 800133a:	6021      	str	r1, [r4, #0]
+ 800133c:	f080 3155 	eor.w	r1, r0, #1431655765	; 0x55555555
+ 8001340:	43c9      	mvns	r1, r1
+ 8001342:	1c49      	adds	r1, r1, #1
+ 8001344:	4308      	orrs	r0, r1
+ 8001346:	9a00      	ldr	r2, [sp, #0]
+ 8001348:	ea6f 70d0 	mvn.w	r0, r0, lsr #31
+ 800134c:	1c40      	adds	r0, r0, #1
+ 800134e:	4382      	bics	r2, r0
+ 8001350:	9200      	str	r2, [sp, #0]
+ 8001352:	f8d9 0008 	ldr.w	r0, [r9, #8]
+ 8001356:	2801      	cmp	r0, #1
+ 8001358:	d109      	bne.n	800136e <cmox_utils_robustCmp+0x9e>
+ 800135a:	4075      	eors	r5, r6
+ 800135c:	43e9      	mvns	r1, r5
+ 800135e:	1c49      	adds	r1, r1, #1
+ 8001360:	430d      	orrs	r5, r1
+ 8001362:	9800      	ldr	r0, [sp, #0]
+ 8001364:	ea6f 72d5 	mvn.w	r2, r5, lsr #31
+ 8001368:	1c52      	adds	r2, r2, #1
+ 800136a:	4390      	bics	r0, r2
+ 800136c:	e00a      	b.n	8001384 <cmox_utils_robustCmp+0xb4>
+ 800136e:	1cf1      	adds	r1, r6, #3
+ 8001370:	ea85 0291 	eor.w	r2, r5, r1, lsr #2
+ 8001374:	43d2      	mvns	r2, r2
+ 8001376:	1c52      	adds	r2, r2, #1
+ 8001378:	4315      	orrs	r5, r2
+ 800137a:	9800      	ldr	r0, [sp, #0]
+ 800137c:	ea6f 73d5 	mvn.w	r3, r5, lsr #31
+ 8001380:	1c5b      	adds	r3, r3, #1
+ 8001382:	4398      	bics	r0, r3
+ 8001384:	f086 36aa 	eor.w	r6, r6, #2863311530	; 0xaaaaaaaa
+ 8001388:	9000      	str	r0, [sp, #0]
+ 800138a:	ea86 060b 	eor.w	r6, r6, fp
+ 800138e:	f086 33aa 	eor.w	r3, r6, #2863311530	; 0xaaaaaaaa
+ 8001392:	43f2      	mvns	r2, r6
+ 8001394:	43db      	mvns	r3, r3
+ 8001396:	980c      	ldr	r0, [sp, #48]	; 0x30
+ 8001398:	f3c2 72c0 	ubfx	r2, r2, #31, #1
+ 800139c:	1c5b      	adds	r3, r3, #1
+ 800139e:	ea42 72d3 	orr.w	r2, r2, r3, lsr #31
+ 80013a2:	9900      	ldr	r1, [sp, #0]
+ 80013a4:	43d2      	mvns	r2, r2
+ 80013a6:	1c52      	adds	r2, r2, #1
+ 80013a8:	4391      	bics	r1, r2
+ 80013aa:	9100      	str	r1, [sp, #0]
+ 80013ac:	4077      	eors	r7, r6
+ 80013ae:	9900      	ldr	r1, [sp, #0]
+ 80013b0:	4388      	bics	r0, r1
+ 80013b2:	9900      	ldr	r1, [sp, #0]
+ 80013b4:	f087 37aa 	eor.w	r7, r7, #2863311530	; 0xaaaaaaaa
+ 80013b8:	400f      	ands	r7, r1
+ 80013ba:	4338      	orrs	r0, r7
+ 80013bc:	e8bd 8ff2 	ldmia.w	sp!, {r1, r4, r5, r6, r7, r8, r9, sl, fp, pc}
+
+080013c0 <strlen>:
+ 80013c0:	4603      	mov	r3, r0
+ 80013c2:	f813 2b01 	ldrb.w	r2, [r3], #1
+ 80013c6:	2a00      	cmp	r2, #0
+ 80013c8:	d1fb      	bne.n	80013c2 <strlen+0x2>
+ 80013ca:	1a18      	subs	r0, r3, r0
+ 80013cc:	3801      	subs	r0, #1
+ 80013ce:	4770      	bx	lr
+
+080013d0 <__aeabi_drsub>:
+ 80013d0:	f081 4100 	eor.w	r1, r1, #2147483648	; 0x80000000
+ 80013d4:	e002      	b.n	80013dc <__adddf3>
+ 80013d6:	bf00      	nop
+
+080013d8 <__aeabi_dsub>:
+ 80013d8:	f083 4300 	eor.w	r3, r3, #2147483648	; 0x80000000
+
+080013dc <__adddf3>:
+ 80013dc:	b530      	push	{r4, r5, lr}
+ 80013de:	ea4f 0441 	mov.w	r4, r1, lsl #1
+ 80013e2:	ea4f 0543 	mov.w	r5, r3, lsl #1
+ 80013e6:	ea94 0f05 	teq	r4, r5
+ 80013ea:	bf08      	it	eq
+ 80013ec:	ea90 0f02 	teqeq	r0, r2
+ 80013f0:	bf1f      	itttt	ne
+ 80013f2:	ea54 0c00 	orrsne.w	ip, r4, r0
+ 80013f6:	ea55 0c02 	orrsne.w	ip, r5, r2
+ 80013fa:	ea7f 5c64 	mvnsne.w	ip, r4, asr #21
+ 80013fe:	ea7f 5c65 	mvnsne.w	ip, r5, asr #21
+ 8001402:	f000 80e2 	beq.w	80015ca <__adddf3+0x1ee>
+ 8001406:	ea4f 5454 	mov.w	r4, r4, lsr #21
+ 800140a:	ebd4 5555 	rsbs	r5, r4, r5, lsr #21
+ 800140e:	bfb8      	it	lt
+ 8001410:	426d      	neglt	r5, r5
+ 8001412:	dd0c      	ble.n	800142e <__adddf3+0x52>
+ 8001414:	442c      	add	r4, r5
+ 8001416:	ea80 0202 	eor.w	r2, r0, r2
+ 800141a:	ea81 0303 	eor.w	r3, r1, r3
+ 800141e:	ea82 0000 	eor.w	r0, r2, r0
+ 8001422:	ea83 0101 	eor.w	r1, r3, r1
+ 8001426:	ea80 0202 	eor.w	r2, r0, r2
+ 800142a:	ea81 0303 	eor.w	r3, r1, r3
+ 800142e:	2d36      	cmp	r5, #54	; 0x36
+ 8001430:	bf88      	it	hi
+ 8001432:	bd30      	pophi	{r4, r5, pc}
+ 8001434:	f011 4f00 	tst.w	r1, #2147483648	; 0x80000000
+ 8001438:	ea4f 3101 	mov.w	r1, r1, lsl #12
+ 800143c:	f44f 1c80 	mov.w	ip, #1048576	; 0x100000
+ 8001440:	ea4c 3111 	orr.w	r1, ip, r1, lsr #12
+ 8001444:	d002      	beq.n	800144c <__adddf3+0x70>
+ 8001446:	4240      	negs	r0, r0
+ 8001448:	eb61 0141 	sbc.w	r1, r1, r1, lsl #1
+ 800144c:	f013 4f00 	tst.w	r3, #2147483648	; 0x80000000
+ 8001450:	ea4f 3303 	mov.w	r3, r3, lsl #12
+ 8001454:	ea4c 3313 	orr.w	r3, ip, r3, lsr #12
+ 8001458:	d002      	beq.n	8001460 <__adddf3+0x84>
+ 800145a:	4252      	negs	r2, r2
+ 800145c:	eb63 0343 	sbc.w	r3, r3, r3, lsl #1
+ 8001460:	ea94 0f05 	teq	r4, r5
+ 8001464:	f000 80a7 	beq.w	80015b6 <__adddf3+0x1da>
+ 8001468:	f1a4 0401 	sub.w	r4, r4, #1
+ 800146c:	f1d5 0e20 	rsbs	lr, r5, #32
+ 8001470:	db0d      	blt.n	800148e <__adddf3+0xb2>
+ 8001472:	fa02 fc0e 	lsl.w	ip, r2, lr
+ 8001476:	fa22 f205 	lsr.w	r2, r2, r5
+ 800147a:	1880      	adds	r0, r0, r2
+ 800147c:	f141 0100 	adc.w	r1, r1, #0
+ 8001480:	fa03 f20e 	lsl.w	r2, r3, lr
+ 8001484:	1880      	adds	r0, r0, r2
+ 8001486:	fa43 f305 	asr.w	r3, r3, r5
+ 800148a:	4159      	adcs	r1, r3
+ 800148c:	e00e      	b.n	80014ac <__adddf3+0xd0>
+ 800148e:	f1a5 0520 	sub.w	r5, r5, #32
+ 8001492:	f10e 0e20 	add.w	lr, lr, #32
+ 8001496:	2a01      	cmp	r2, #1
+ 8001498:	fa03 fc0e 	lsl.w	ip, r3, lr
+ 800149c:	bf28      	it	cs
+ 800149e:	f04c 0c02 	orrcs.w	ip, ip, #2
+ 80014a2:	fa43 f305 	asr.w	r3, r3, r5
+ 80014a6:	18c0      	adds	r0, r0, r3
+ 80014a8:	eb51 71e3 	adcs.w	r1, r1, r3, asr #31
+ 80014ac:	f001 4500 	and.w	r5, r1, #2147483648	; 0x80000000
+ 80014b0:	d507      	bpl.n	80014c2 <__adddf3+0xe6>
+ 80014b2:	f04f 0e00 	mov.w	lr, #0
+ 80014b6:	f1dc 0c00 	rsbs	ip, ip, #0
+ 80014ba:	eb7e 0000 	sbcs.w	r0, lr, r0
+ 80014be:	eb6e 0101 	sbc.w	r1, lr, r1
+ 80014c2:	f5b1 1f80 	cmp.w	r1, #1048576	; 0x100000
+ 80014c6:	d31b      	bcc.n	8001500 <__adddf3+0x124>
+ 80014c8:	f5b1 1f00 	cmp.w	r1, #2097152	; 0x200000
+ 80014cc:	d30c      	bcc.n	80014e8 <__adddf3+0x10c>
+ 80014ce:	0849      	lsrs	r1, r1, #1
+ 80014d0:	ea5f 0030 	movs.w	r0, r0, rrx
+ 80014d4:	ea4f 0c3c 	mov.w	ip, ip, rrx
+ 80014d8:	f104 0401 	add.w	r4, r4, #1
+ 80014dc:	ea4f 5244 	mov.w	r2, r4, lsl #21
+ 80014e0:	f512 0f80 	cmn.w	r2, #4194304	; 0x400000
+ 80014e4:	f080 809a 	bcs.w	800161c <__adddf3+0x240>
+ 80014e8:	f1bc 4f00 	cmp.w	ip, #2147483648	; 0x80000000
+ 80014ec:	bf08      	it	eq
+ 80014ee:	ea5f 0c50 	movseq.w	ip, r0, lsr #1
+ 80014f2:	f150 0000 	adcs.w	r0, r0, #0
+ 80014f6:	eb41 5104 	adc.w	r1, r1, r4, lsl #20
+ 80014fa:	ea41 0105 	orr.w	r1, r1, r5
+ 80014fe:	bd30      	pop	{r4, r5, pc}
+ 8001500:	ea5f 0c4c 	movs.w	ip, ip, lsl #1
+ 8001504:	4140      	adcs	r0, r0
+ 8001506:	eb41 0101 	adc.w	r1, r1, r1
+ 800150a:	3c01      	subs	r4, #1
+ 800150c:	bf28      	it	cs
+ 800150e:	f5b1 1f80 	cmpcs.w	r1, #1048576	; 0x100000
+ 8001512:	d2e9      	bcs.n	80014e8 <__adddf3+0x10c>
+ 8001514:	f091 0f00 	teq	r1, #0
+ 8001518:	bf04      	itt	eq
+ 800151a:	4601      	moveq	r1, r0
+ 800151c:	2000      	moveq	r0, #0
+ 800151e:	fab1 f381 	clz	r3, r1
+ 8001522:	bf08      	it	eq
+ 8001524:	3320      	addeq	r3, #32
+ 8001526:	f1a3 030b 	sub.w	r3, r3, #11
+ 800152a:	f1b3 0220 	subs.w	r2, r3, #32
+ 800152e:	da0c      	bge.n	800154a <__adddf3+0x16e>
+ 8001530:	320c      	adds	r2, #12
+ 8001532:	dd08      	ble.n	8001546 <__adddf3+0x16a>
+ 8001534:	f102 0c14 	add.w	ip, r2, #20
+ 8001538:	f1c2 020c 	rsb	r2, r2, #12
+ 800153c:	fa01 f00c 	lsl.w	r0, r1, ip
+ 8001540:	fa21 f102 	lsr.w	r1, r1, r2
+ 8001544:	e00c      	b.n	8001560 <__adddf3+0x184>
+ 8001546:	f102 0214 	add.w	r2, r2, #20
+ 800154a:	bfd8      	it	le
+ 800154c:	f1c2 0c20 	rsble	ip, r2, #32
+ 8001550:	fa01 f102 	lsl.w	r1, r1, r2
+ 8001554:	fa20 fc0c 	lsr.w	ip, r0, ip
+ 8001558:	bfdc      	itt	le
+ 800155a:	ea41 010c 	orrle.w	r1, r1, ip
+ 800155e:	4090      	lslle	r0, r2
+ 8001560:	1ae4      	subs	r4, r4, r3
+ 8001562:	bfa2      	ittt	ge
+ 8001564:	eb01 5104 	addge.w	r1, r1, r4, lsl #20
+ 8001568:	4329      	orrge	r1, r5
+ 800156a:	bd30      	popge	{r4, r5, pc}
+ 800156c:	ea6f 0404 	mvn.w	r4, r4
+ 8001570:	3c1f      	subs	r4, #31
+ 8001572:	da1c      	bge.n	80015ae <__adddf3+0x1d2>
+ 8001574:	340c      	adds	r4, #12
+ 8001576:	dc0e      	bgt.n	8001596 <__adddf3+0x1ba>
+ 8001578:	f104 0414 	add.w	r4, r4, #20
+ 800157c:	f1c4 0220 	rsb	r2, r4, #32
+ 8001580:	fa20 f004 	lsr.w	r0, r0, r4
+ 8001584:	fa01 f302 	lsl.w	r3, r1, r2
+ 8001588:	ea40 0003 	orr.w	r0, r0, r3
+ 800158c:	fa21 f304 	lsr.w	r3, r1, r4
+ 8001590:	ea45 0103 	orr.w	r1, r5, r3
+ 8001594:	bd30      	pop	{r4, r5, pc}
+ 8001596:	f1c4 040c 	rsb	r4, r4, #12
+ 800159a:	f1c4 0220 	rsb	r2, r4, #32
+ 800159e:	fa20 f002 	lsr.w	r0, r0, r2
+ 80015a2:	fa01 f304 	lsl.w	r3, r1, r4
+ 80015a6:	ea40 0003 	orr.w	r0, r0, r3
+ 80015aa:	4629      	mov	r1, r5
+ 80015ac:	bd30      	pop	{r4, r5, pc}
+ 80015ae:	fa21 f004 	lsr.w	r0, r1, r4
+ 80015b2:	4629      	mov	r1, r5
+ 80015b4:	bd30      	pop	{r4, r5, pc}
+ 80015b6:	f094 0f00 	teq	r4, #0
+ 80015ba:	f483 1380 	eor.w	r3, r3, #1048576	; 0x100000
+ 80015be:	bf06      	itte	eq
+ 80015c0:	f481 1180 	eoreq.w	r1, r1, #1048576	; 0x100000
+ 80015c4:	3401      	addeq	r4, #1
+ 80015c6:	3d01      	subne	r5, #1
+ 80015c8:	e74e      	b.n	8001468 <__adddf3+0x8c>
+ 80015ca:	ea7f 5c64 	mvns.w	ip, r4, asr #21
+ 80015ce:	bf18      	it	ne
+ 80015d0:	ea7f 5c65 	mvnsne.w	ip, r5, asr #21
+ 80015d4:	d029      	beq.n	800162a <__adddf3+0x24e>
+ 80015d6:	ea94 0f05 	teq	r4, r5
+ 80015da:	bf08      	it	eq
+ 80015dc:	ea90 0f02 	teqeq	r0, r2
+ 80015e0:	d005      	beq.n	80015ee <__adddf3+0x212>
+ 80015e2:	ea54 0c00 	orrs.w	ip, r4, r0
+ 80015e6:	bf04      	itt	eq
+ 80015e8:	4619      	moveq	r1, r3
+ 80015ea:	4610      	moveq	r0, r2
+ 80015ec:	bd30      	pop	{r4, r5, pc}
+ 80015ee:	ea91 0f03 	teq	r1, r3
+ 80015f2:	bf1e      	ittt	ne
+ 80015f4:	2100      	movne	r1, #0
+ 80015f6:	2000      	movne	r0, #0
+ 80015f8:	bd30      	popne	{r4, r5, pc}
+ 80015fa:	ea5f 5c54 	movs.w	ip, r4, lsr #21
+ 80015fe:	d105      	bne.n	800160c <__adddf3+0x230>
+ 8001600:	0040      	lsls	r0, r0, #1
+ 8001602:	4149      	adcs	r1, r1
+ 8001604:	bf28      	it	cs
+ 8001606:	f041 4100 	orrcs.w	r1, r1, #2147483648	; 0x80000000
+ 800160a:	bd30      	pop	{r4, r5, pc}
+ 800160c:	f514 0480 	adds.w	r4, r4, #4194304	; 0x400000
+ 8001610:	bf3c      	itt	cc
+ 8001612:	f501 1180 	addcc.w	r1, r1, #1048576	; 0x100000
+ 8001616:	bd30      	popcc	{r4, r5, pc}
+ 8001618:	f001 4500 	and.w	r5, r1, #2147483648	; 0x80000000
+ 800161c:	f045 41fe 	orr.w	r1, r5, #2130706432	; 0x7f000000
+ 8001620:	f441 0170 	orr.w	r1, r1, #15728640	; 0xf00000
+ 8001624:	f04f 0000 	mov.w	r0, #0
+ 8001628:	bd30      	pop	{r4, r5, pc}
+ 800162a:	ea7f 5c64 	mvns.w	ip, r4, asr #21
+ 800162e:	bf1a      	itte	ne
+ 8001630:	4619      	movne	r1, r3
+ 8001632:	4610      	movne	r0, r2
+ 8001634:	ea7f 5c65 	mvnseq.w	ip, r5, asr #21
+ 8001638:	bf1c      	itt	ne
+ 800163a:	460b      	movne	r3, r1
+ 800163c:	4602      	movne	r2, r0
+ 800163e:	ea50 3401 	orrs.w	r4, r0, r1, lsl #12
+ 8001642:	bf06      	itte	eq
+ 8001644:	ea52 3503 	orrseq.w	r5, r2, r3, lsl #12
+ 8001648:	ea91 0f03 	teqeq	r1, r3
+ 800164c:	f441 2100 	orrne.w	r1, r1, #524288	; 0x80000
+ 8001650:	bd30      	pop	{r4, r5, pc}
+ 8001652:	bf00      	nop
+
+08001654 <__aeabi_ui2d>:
+ 8001654:	f090 0f00 	teq	r0, #0
+ 8001658:	bf04      	itt	eq
+ 800165a:	2100      	moveq	r1, #0
+ 800165c:	4770      	bxeq	lr
+ 800165e:	b530      	push	{r4, r5, lr}
+ 8001660:	f44f 6480 	mov.w	r4, #1024	; 0x400
+ 8001664:	f104 0432 	add.w	r4, r4, #50	; 0x32
+ 8001668:	f04f 0500 	mov.w	r5, #0
+ 800166c:	f04f 0100 	mov.w	r1, #0
+ 8001670:	e750      	b.n	8001514 <__adddf3+0x138>
+ 8001672:	bf00      	nop
+
+08001674 <__aeabi_i2d>:
+ 8001674:	f090 0f00 	teq	r0, #0
+ 8001678:	bf04      	itt	eq
+ 800167a:	2100      	moveq	r1, #0
+ 800167c:	4770      	bxeq	lr
+ 800167e:	b530      	push	{r4, r5, lr}
+ 8001680:	f44f 6480 	mov.w	r4, #1024	; 0x400
+ 8001684:	f104 0432 	add.w	r4, r4, #50	; 0x32
+ 8001688:	f010 4500 	ands.w	r5, r0, #2147483648	; 0x80000000
+ 800168c:	bf48      	it	mi
+ 800168e:	4240      	negmi	r0, r0
+ 8001690:	f04f 0100 	mov.w	r1, #0
+ 8001694:	e73e      	b.n	8001514 <__adddf3+0x138>
+ 8001696:	bf00      	nop
+
+08001698 <__aeabi_f2d>:
+ 8001698:	0042      	lsls	r2, r0, #1
+ 800169a:	ea4f 01e2 	mov.w	r1, r2, asr #3
+ 800169e:	ea4f 0131 	mov.w	r1, r1, rrx
+ 80016a2:	ea4f 7002 	mov.w	r0, r2, lsl #28
+ 80016a6:	bf1f      	itttt	ne
+ 80016a8:	f012 437f 	andsne.w	r3, r2, #4278190080	; 0xff000000
+ 80016ac:	f093 4f7f 	teqne	r3, #4278190080	; 0xff000000
+ 80016b0:	f081 5160 	eorne.w	r1, r1, #939524096	; 0x38000000
+ 80016b4:	4770      	bxne	lr
+ 80016b6:	f032 427f 	bics.w	r2, r2, #4278190080	; 0xff000000
+ 80016ba:	bf08      	it	eq
+ 80016bc:	4770      	bxeq	lr
+ 80016be:	f093 4f7f 	teq	r3, #4278190080	; 0xff000000
+ 80016c2:	bf04      	itt	eq
+ 80016c4:	f441 2100 	orreq.w	r1, r1, #524288	; 0x80000
+ 80016c8:	4770      	bxeq	lr
+ 80016ca:	b530      	push	{r4, r5, lr}
+ 80016cc:	f44f 7460 	mov.w	r4, #896	; 0x380
+ 80016d0:	f001 4500 	and.w	r5, r1, #2147483648	; 0x80000000
+ 80016d4:	f021 4100 	bic.w	r1, r1, #2147483648	; 0x80000000
+ 80016d8:	e71c      	b.n	8001514 <__adddf3+0x138>
+ 80016da:	bf00      	nop
+
+080016dc <__aeabi_ul2d>:
+ 80016dc:	ea50 0201 	orrs.w	r2, r0, r1
+ 80016e0:	bf08      	it	eq
+ 80016e2:	4770      	bxeq	lr
+ 80016e4:	b530      	push	{r4, r5, lr}
+ 80016e6:	f04f 0500 	mov.w	r5, #0
+ 80016ea:	e00a      	b.n	8001702 <__aeabi_l2d+0x16>
+
+080016ec <__aeabi_l2d>:
+ 80016ec:	ea50 0201 	orrs.w	r2, r0, r1
+ 80016f0:	bf08      	it	eq
+ 80016f2:	4770      	bxeq	lr
+ 80016f4:	b530      	push	{r4, r5, lr}
+ 80016f6:	f011 4500 	ands.w	r5, r1, #2147483648	; 0x80000000
+ 80016fa:	d502      	bpl.n	8001702 <__aeabi_l2d+0x16>
+ 80016fc:	4240      	negs	r0, r0
+ 80016fe:	eb61 0141 	sbc.w	r1, r1, r1, lsl #1
+ 8001702:	f44f 6480 	mov.w	r4, #1024	; 0x400
+ 8001706:	f104 0432 	add.w	r4, r4, #50	; 0x32
+ 800170a:	ea5f 5c91 	movs.w	ip, r1, lsr #22
+ 800170e:	f43f aed8 	beq.w	80014c2 <__adddf3+0xe6>
+ 8001712:	f04f 0203 	mov.w	r2, #3
+ 8001716:	ea5f 0cdc 	movs.w	ip, ip, lsr #3
+ 800171a:	bf18      	it	ne
+ 800171c:	3203      	addne	r2, #3
+ 800171e:	ea5f 0cdc 	movs.w	ip, ip, lsr #3
+ 8001722:	bf18      	it	ne
+ 8001724:	3203      	addne	r2, #3
+ 8001726:	eb02 02dc 	add.w	r2, r2, ip, lsr #3
+ 800172a:	f1c2 0320 	rsb	r3, r2, #32
+ 800172e:	fa00 fc03 	lsl.w	ip, r0, r3
+ 8001732:	fa20 f002 	lsr.w	r0, r0, r2
+ 8001736:	fa01 fe03 	lsl.w	lr, r1, r3
+ 800173a:	ea40 000e 	orr.w	r0, r0, lr
+ 800173e:	fa21 f102 	lsr.w	r1, r1, r2
+ 8001742:	4414      	add	r4, r2
+ 8001744:	e6bd      	b.n	80014c2 <__adddf3+0xe6>
+ 8001746:	bf00      	nop
+
+08001748 <__gedf2>:
+ 8001748:	f04f 3cff 	mov.w	ip, #4294967295
+ 800174c:	e006      	b.n	800175c <__cmpdf2+0x4>
+ 800174e:	bf00      	nop
+
+08001750 <__ledf2>:
+ 8001750:	f04f 0c01 	mov.w	ip, #1
+ 8001754:	e002      	b.n	800175c <__cmpdf2+0x4>
+ 8001756:	bf00      	nop
+
+08001758 <__cmpdf2>:
+ 8001758:	f04f 0c01 	mov.w	ip, #1
+ 800175c:	f84d cd04 	str.w	ip, [sp, #-4]!
+ 8001760:	ea4f 0c41 	mov.w	ip, r1, lsl #1
+ 8001764:	ea7f 5c6c 	mvns.w	ip, ip, asr #21
+ 8001768:	ea4f 0c43 	mov.w	ip, r3, lsl #1
+ 800176c:	bf18      	it	ne
+ 800176e:	ea7f 5c6c 	mvnsne.w	ip, ip, asr #21
+ 8001772:	d01b      	beq.n	80017ac <__cmpdf2+0x54>
+ 8001774:	b001      	add	sp, #4
+ 8001776:	ea50 0c41 	orrs.w	ip, r0, r1, lsl #1
+ 800177a:	bf0c      	ite	eq
+ 800177c:	ea52 0c43 	orrseq.w	ip, r2, r3, lsl #1
+ 8001780:	ea91 0f03 	teqne	r1, r3
+ 8001784:	bf02      	ittt	eq
+ 8001786:	ea90 0f02 	teqeq	r0, r2
+ 800178a:	2000      	moveq	r0, #0
+ 800178c:	4770      	bxeq	lr
+ 800178e:	f110 0f00 	cmn.w	r0, #0
+ 8001792:	ea91 0f03 	teq	r1, r3
+ 8001796:	bf58      	it	pl
+ 8001798:	4299      	cmppl	r1, r3
+ 800179a:	bf08      	it	eq
+ 800179c:	4290      	cmpeq	r0, r2
+ 800179e:	bf2c      	ite	cs
+ 80017a0:	17d8      	asrcs	r0, r3, #31
+ 80017a2:	ea6f 70e3 	mvncc.w	r0, r3, asr #31
+ 80017a6:	f040 0001 	orr.w	r0, r0, #1
+ 80017aa:	4770      	bx	lr
+ 80017ac:	ea4f 0c41 	mov.w	ip, r1, lsl #1
+ 80017b0:	ea7f 5c6c 	mvns.w	ip, ip, asr #21
+ 80017b4:	d102      	bne.n	80017bc <__cmpdf2+0x64>
+ 80017b6:	ea50 3c01 	orrs.w	ip, r0, r1, lsl #12
+ 80017ba:	d107      	bne.n	80017cc <__cmpdf2+0x74>
+ 80017bc:	ea4f 0c43 	mov.w	ip, r3, lsl #1
+ 80017c0:	ea7f 5c6c 	mvns.w	ip, ip, asr #21
+ 80017c4:	d1d6      	bne.n	8001774 <__cmpdf2+0x1c>
+ 80017c6:	ea52 3c03 	orrs.w	ip, r2, r3, lsl #12
+ 80017ca:	d0d3      	beq.n	8001774 <__cmpdf2+0x1c>
+ 80017cc:	f85d 0b04 	ldr.w	r0, [sp], #4
+ 80017d0:	4770      	bx	lr
+ 80017d2:	bf00      	nop
+
+080017d4 <__aeabi_cdrcmple>:
+ 80017d4:	4684      	mov	ip, r0
+ 80017d6:	4610      	mov	r0, r2
+ 80017d8:	4662      	mov	r2, ip
+ 80017da:	468c      	mov	ip, r1
+ 80017dc:	4619      	mov	r1, r3
+ 80017de:	4663      	mov	r3, ip
+ 80017e0:	e000      	b.n	80017e4 <__aeabi_cdcmpeq>
+ 80017e2:	bf00      	nop
+
+080017e4 <__aeabi_cdcmpeq>:
+ 80017e4:	b501      	push	{r0, lr}
+ 80017e6:	f7ff ffb7 	bl	8001758 <__cmpdf2>
+ 80017ea:	2800      	cmp	r0, #0
+ 80017ec:	bf48      	it	mi
+ 80017ee:	f110 0f00 	cmnmi.w	r0, #0
+ 80017f2:	bd01      	pop	{r0, pc}
+
+080017f4 <__aeabi_dcmpeq>:
+ 80017f4:	f84d ed08 	str.w	lr, [sp, #-8]!
+ 80017f8:	f7ff fff4 	bl	80017e4 <__aeabi_cdcmpeq>
+ 80017fc:	bf0c      	ite	eq
+ 80017fe:	2001      	moveq	r0, #1
+ 8001800:	2000      	movne	r0, #0
+ 8001802:	f85d fb08 	ldr.w	pc, [sp], #8
+ 8001806:	bf00      	nop
+
+08001808 <__aeabi_dcmplt>:
+ 8001808:	f84d ed08 	str.w	lr, [sp, #-8]!
+ 800180c:	f7ff ffea 	bl	80017e4 <__aeabi_cdcmpeq>
+ 8001810:	bf34      	ite	cc
+ 8001812:	2001      	movcc	r0, #1
+ 8001814:	2000      	movcs	r0, #0
+ 8001816:	f85d fb08 	ldr.w	pc, [sp], #8
+ 800181a:	bf00      	nop
+
+0800181c <__aeabi_dcmple>:
+ 800181c:	f84d ed08 	str.w	lr, [sp, #-8]!
+ 8001820:	f7ff ffe0 	bl	80017e4 <__aeabi_cdcmpeq>
+ 8001824:	bf94      	ite	ls
+ 8001826:	2001      	movls	r0, #1
+ 8001828:	2000      	movhi	r0, #0
+ 800182a:	f85d fb08 	ldr.w	pc, [sp], #8
+ 800182e:	bf00      	nop
+
+08001830 <__aeabi_dcmpge>:
+ 8001830:	f84d ed08 	str.w	lr, [sp, #-8]!
+ 8001834:	f7ff ffce 	bl	80017d4 <__aeabi_cdrcmple>
+ 8001838:	bf94      	ite	ls
+ 800183a:	2001      	movls	r0, #1
+ 800183c:	2000      	movhi	r0, #0
+ 800183e:	f85d fb08 	ldr.w	pc, [sp], #8
+ 8001842:	bf00      	nop
+
+08001844 <__aeabi_dcmpgt>:
+ 8001844:	f84d ed08 	str.w	lr, [sp, #-8]!
+ 8001848:	f7ff ffc4 	bl	80017d4 <__aeabi_cdrcmple>
+ 800184c:	bf34      	ite	cc
+ 800184e:	2001      	movcc	r0, #1
+ 8001850:	2000      	movcs	r0, #0
+ 8001852:	f85d fb08 	ldr.w	pc, [sp], #8
+ 8001856:	bf00      	nop
+
+08001858 <__aeabi_d2iz>:
+ 8001858:	ea4f 0241 	mov.w	r2, r1, lsl #1
+ 800185c:	f512 1200 	adds.w	r2, r2, #2097152	; 0x200000
+ 8001860:	d215      	bcs.n	800188e <__aeabi_d2iz+0x36>
+ 8001862:	d511      	bpl.n	8001888 <__aeabi_d2iz+0x30>
+ 8001864:	f46f 7378 	mvn.w	r3, #992	; 0x3e0
+ 8001868:	ebb3 5262 	subs.w	r2, r3, r2, asr #21
+ 800186c:	d912      	bls.n	8001894 <__aeabi_d2iz+0x3c>
+ 800186e:	ea4f 23c1 	mov.w	r3, r1, lsl #11
+ 8001872:	f043 4300 	orr.w	r3, r3, #2147483648	; 0x80000000
+ 8001876:	ea43 5350 	orr.w	r3, r3, r0, lsr #21
+ 800187a:	f011 4f00 	tst.w	r1, #2147483648	; 0x80000000
+ 800187e:	fa23 f002 	lsr.w	r0, r3, r2
+ 8001882:	bf18      	it	ne
+ 8001884:	4240      	negne	r0, r0
+ 8001886:	4770      	bx	lr
+ 8001888:	f04f 0000 	mov.w	r0, #0
+ 800188c:	4770      	bx	lr
+ 800188e:	ea50 3001 	orrs.w	r0, r0, r1, lsl #12
+ 8001892:	d105      	bne.n	80018a0 <__aeabi_d2iz+0x48>
+ 8001894:	f011 4000 	ands.w	r0, r1, #2147483648	; 0x80000000
+ 8001898:	bf08      	it	eq
+ 800189a:	f06f 4000 	mvneq.w	r0, #2147483648	; 0x80000000
+ 800189e:	4770      	bx	lr
+ 80018a0:	f04f 0000 	mov.w	r0, #0
+ 80018a4:	4770      	bx	lr
+ 80018a6:	bf00      	nop
+
+080018a8 <__aeabi_frsub>:
+ 80018a8:	f080 4000 	eor.w	r0, r0, #2147483648	; 0x80000000
+ 80018ac:	e002      	b.n	80018b4 <__addsf3>
+ 80018ae:	bf00      	nop
+
+080018b0 <__aeabi_fsub>:
+ 80018b0:	f081 4100 	eor.w	r1, r1, #2147483648	; 0x80000000
+
+080018b4 <__addsf3>:
+ 80018b4:	0042      	lsls	r2, r0, #1
+ 80018b6:	bf1f      	itttt	ne
+ 80018b8:	ea5f 0341 	movsne.w	r3, r1, lsl #1
+ 80018bc:	ea92 0f03 	teqne	r2, r3
+ 80018c0:	ea7f 6c22 	mvnsne.w	ip, r2, asr #24
+ 80018c4:	ea7f 6c23 	mvnsne.w	ip, r3, asr #24
+ 80018c8:	d06a      	beq.n	80019a0 <__addsf3+0xec>
+ 80018ca:	ea4f 6212 	mov.w	r2, r2, lsr #24
+ 80018ce:	ebd2 6313 	rsbs	r3, r2, r3, lsr #24
+ 80018d2:	bfc1      	itttt	gt
+ 80018d4:	18d2      	addgt	r2, r2, r3
+ 80018d6:	4041      	eorgt	r1, r0
+ 80018d8:	4048      	eorgt	r0, r1
+ 80018da:	4041      	eorgt	r1, r0
+ 80018dc:	bfb8      	it	lt
+ 80018de:	425b      	neglt	r3, r3
+ 80018e0:	2b19      	cmp	r3, #25
+ 80018e2:	bf88      	it	hi
+ 80018e4:	4770      	bxhi	lr
+ 80018e6:	f010 4f00 	tst.w	r0, #2147483648	; 0x80000000
+ 80018ea:	f440 0000 	orr.w	r0, r0, #8388608	; 0x800000
+ 80018ee:	f020 407f 	bic.w	r0, r0, #4278190080	; 0xff000000
+ 80018f2:	bf18      	it	ne
+ 80018f4:	4240      	negne	r0, r0
+ 80018f6:	f011 4f00 	tst.w	r1, #2147483648	; 0x80000000
+ 80018fa:	f441 0100 	orr.w	r1, r1, #8388608	; 0x800000
+ 80018fe:	f021 417f 	bic.w	r1, r1, #4278190080	; 0xff000000
+ 8001902:	bf18      	it	ne
+ 8001904:	4249      	negne	r1, r1
+ 8001906:	ea92 0f03 	teq	r2, r3
+ 800190a:	d03f      	beq.n	800198c <__addsf3+0xd8>
+ 800190c:	f1a2 0201 	sub.w	r2, r2, #1
+ 8001910:	fa41 fc03 	asr.w	ip, r1, r3
+ 8001914:	eb10 000c 	adds.w	r0, r0, ip
+ 8001918:	f1c3 0320 	rsb	r3, r3, #32
+ 800191c:	fa01 f103 	lsl.w	r1, r1, r3
+ 8001920:	f000 4300 	and.w	r3, r0, #2147483648	; 0x80000000
+ 8001924:	d502      	bpl.n	800192c <__addsf3+0x78>
+ 8001926:	4249      	negs	r1, r1
+ 8001928:	eb60 0040 	sbc.w	r0, r0, r0, lsl #1
+ 800192c:	f5b0 0f00 	cmp.w	r0, #8388608	; 0x800000
+ 8001930:	d313      	bcc.n	800195a <__addsf3+0xa6>
+ 8001932:	f1b0 7f80 	cmp.w	r0, #16777216	; 0x1000000
+ 8001936:	d306      	bcc.n	8001946 <__addsf3+0x92>
+ 8001938:	0840      	lsrs	r0, r0, #1
+ 800193a:	ea4f 0131 	mov.w	r1, r1, rrx
+ 800193e:	f102 0201 	add.w	r2, r2, #1
+ 8001942:	2afe      	cmp	r2, #254	; 0xfe
+ 8001944:	d251      	bcs.n	80019ea <__addsf3+0x136>
+ 8001946:	f1b1 4f00 	cmp.w	r1, #2147483648	; 0x80000000
+ 800194a:	eb40 50c2 	adc.w	r0, r0, r2, lsl #23
+ 800194e:	bf08      	it	eq
+ 8001950:	f020 0001 	biceq.w	r0, r0, #1
+ 8001954:	ea40 0003 	orr.w	r0, r0, r3
+ 8001958:	4770      	bx	lr
+ 800195a:	0049      	lsls	r1, r1, #1
+ 800195c:	eb40 0000 	adc.w	r0, r0, r0
+ 8001960:	3a01      	subs	r2, #1
+ 8001962:	bf28      	it	cs
+ 8001964:	f5b0 0f00 	cmpcs.w	r0, #8388608	; 0x800000
+ 8001968:	d2ed      	bcs.n	8001946 <__addsf3+0x92>
+ 800196a:	fab0 fc80 	clz	ip, r0
+ 800196e:	f1ac 0c08 	sub.w	ip, ip, #8
+ 8001972:	ebb2 020c 	subs.w	r2, r2, ip
+ 8001976:	fa00 f00c 	lsl.w	r0, r0, ip
+ 800197a:	bfaa      	itet	ge
+ 800197c:	eb00 50c2 	addge.w	r0, r0, r2, lsl #23
+ 8001980:	4252      	neglt	r2, r2
+ 8001982:	4318      	orrge	r0, r3
+ 8001984:	bfbc      	itt	lt
+ 8001986:	40d0      	lsrlt	r0, r2
+ 8001988:	4318      	orrlt	r0, r3
+ 800198a:	4770      	bx	lr
+ 800198c:	f092 0f00 	teq	r2, #0
+ 8001990:	f481 0100 	eor.w	r1, r1, #8388608	; 0x800000
+ 8001994:	bf06      	itte	eq
+ 8001996:	f480 0000 	eoreq.w	r0, r0, #8388608	; 0x800000
+ 800199a:	3201      	addeq	r2, #1
+ 800199c:	3b01      	subne	r3, #1
+ 800199e:	e7b5      	b.n	800190c <__addsf3+0x58>
+ 80019a0:	ea4f 0341 	mov.w	r3, r1, lsl #1
+ 80019a4:	ea7f 6c22 	mvns.w	ip, r2, asr #24
+ 80019a8:	bf18      	it	ne
+ 80019aa:	ea7f 6c23 	mvnsne.w	ip, r3, asr #24
+ 80019ae:	d021      	beq.n	80019f4 <__addsf3+0x140>
+ 80019b0:	ea92 0f03 	teq	r2, r3
+ 80019b4:	d004      	beq.n	80019c0 <__addsf3+0x10c>
+ 80019b6:	f092 0f00 	teq	r2, #0
+ 80019ba:	bf08      	it	eq
+ 80019bc:	4608      	moveq	r0, r1
+ 80019be:	4770      	bx	lr
+ 80019c0:	ea90 0f01 	teq	r0, r1
+ 80019c4:	bf1c      	itt	ne
+ 80019c6:	2000      	movne	r0, #0
+ 80019c8:	4770      	bxne	lr
+ 80019ca:	f012 4f7f 	tst.w	r2, #4278190080	; 0xff000000
+ 80019ce:	d104      	bne.n	80019da <__addsf3+0x126>
+ 80019d0:	0040      	lsls	r0, r0, #1
+ 80019d2:	bf28      	it	cs
+ 80019d4:	f040 4000 	orrcs.w	r0, r0, #2147483648	; 0x80000000
+ 80019d8:	4770      	bx	lr
+ 80019da:	f112 7200 	adds.w	r2, r2, #33554432	; 0x2000000
+ 80019de:	bf3c      	itt	cc
+ 80019e0:	f500 0000 	addcc.w	r0, r0, #8388608	; 0x800000
+ 80019e4:	4770      	bxcc	lr
+ 80019e6:	f000 4300 	and.w	r3, r0, #2147483648	; 0x80000000
+ 80019ea:	f043 40fe 	orr.w	r0, r3, #2130706432	; 0x7f000000
+ 80019ee:	f440 0000 	orr.w	r0, r0, #8388608	; 0x800000
+ 80019f2:	4770      	bx	lr
+ 80019f4:	ea7f 6222 	mvns.w	r2, r2, asr #24
+ 80019f8:	bf16      	itet	ne
+ 80019fa:	4608      	movne	r0, r1
+ 80019fc:	ea7f 6323 	mvnseq.w	r3, r3, asr #24
+ 8001a00:	4601      	movne	r1, r0
+ 8001a02:	0242      	lsls	r2, r0, #9
+ 8001a04:	bf06      	itte	eq
+ 8001a06:	ea5f 2341 	movseq.w	r3, r1, lsl #9
+ 8001a0a:	ea90 0f01 	teqeq	r0, r1
+ 8001a0e:	f440 0080 	orrne.w	r0, r0, #4194304	; 0x400000
+ 8001a12:	4770      	bx	lr
+
+08001a14 <__aeabi_ui2f>:
+ 8001a14:	f04f 0300 	mov.w	r3, #0
+ 8001a18:	e004      	b.n	8001a24 <__aeabi_i2f+0x8>
+ 8001a1a:	bf00      	nop
+
+08001a1c <__aeabi_i2f>:
+ 8001a1c:	f010 4300 	ands.w	r3, r0, #2147483648	; 0x80000000
+ 8001a20:	bf48      	it	mi
+ 8001a22:	4240      	negmi	r0, r0
+ 8001a24:	ea5f 0c00 	movs.w	ip, r0
+ 8001a28:	bf08      	it	eq
+ 8001a2a:	4770      	bxeq	lr
+ 8001a2c:	f043 4396 	orr.w	r3, r3, #1258291200	; 0x4b000000
+ 8001a30:	4601      	mov	r1, r0
+ 8001a32:	f04f 0000 	mov.w	r0, #0
+ 8001a36:	e01c      	b.n	8001a72 <__aeabi_l2f+0x2a>
+
+08001a38 <__aeabi_ul2f>:
+ 8001a38:	ea50 0201 	orrs.w	r2, r0, r1
+ 8001a3c:	bf08      	it	eq
+ 8001a3e:	4770      	bxeq	lr
+ 8001a40:	f04f 0300 	mov.w	r3, #0
+ 8001a44:	e00a      	b.n	8001a5c <__aeabi_l2f+0x14>
+ 8001a46:	bf00      	nop
+
+08001a48 <__aeabi_l2f>:
+ 8001a48:	ea50 0201 	orrs.w	r2, r0, r1
+ 8001a4c:	bf08      	it	eq
+ 8001a4e:	4770      	bxeq	lr
+ 8001a50:	f011 4300 	ands.w	r3, r1, #2147483648	; 0x80000000
+ 8001a54:	d502      	bpl.n	8001a5c <__aeabi_l2f+0x14>
+ 8001a56:	4240      	negs	r0, r0
+ 8001a58:	eb61 0141 	sbc.w	r1, r1, r1, lsl #1
+ 8001a5c:	ea5f 0c01 	movs.w	ip, r1
+ 8001a60:	bf02      	ittt	eq
+ 8001a62:	4684      	moveq	ip, r0
+ 8001a64:	4601      	moveq	r1, r0
+ 8001a66:	2000      	moveq	r0, #0
+ 8001a68:	f043 43b6 	orr.w	r3, r3, #1526726656	; 0x5b000000
+ 8001a6c:	bf08      	it	eq
+ 8001a6e:	f1a3 5380 	subeq.w	r3, r3, #268435456	; 0x10000000
+ 8001a72:	f5a3 0300 	sub.w	r3, r3, #8388608	; 0x800000
+ 8001a76:	fabc f28c 	clz	r2, ip
+ 8001a7a:	3a08      	subs	r2, #8
+ 8001a7c:	eba3 53c2 	sub.w	r3, r3, r2, lsl #23
+ 8001a80:	db10      	blt.n	8001aa4 <__aeabi_l2f+0x5c>
+ 8001a82:	fa01 fc02 	lsl.w	ip, r1, r2
+ 8001a86:	4463      	add	r3, ip
+ 8001a88:	fa00 fc02 	lsl.w	ip, r0, r2
+ 8001a8c:	f1c2 0220 	rsb	r2, r2, #32
+ 8001a90:	f1bc 4f00 	cmp.w	ip, #2147483648	; 0x80000000
+ 8001a94:	fa20 f202 	lsr.w	r2, r0, r2
+ 8001a98:	eb43 0002 	adc.w	r0, r3, r2
+ 8001a9c:	bf08      	it	eq
+ 8001a9e:	f020 0001 	biceq.w	r0, r0, #1
+ 8001aa2:	4770      	bx	lr
+ 8001aa4:	f102 0220 	add.w	r2, r2, #32
+ 8001aa8:	fa01 fc02 	lsl.w	ip, r1, r2
+ 8001aac:	f1c2 0220 	rsb	r2, r2, #32
+ 8001ab0:	ea50 004c 	orrs.w	r0, r0, ip, lsl #1
+ 8001ab4:	fa21 f202 	lsr.w	r2, r1, r2
+ 8001ab8:	eb43 0002 	adc.w	r0, r3, r2
+ 8001abc:	bf08      	it	eq
+ 8001abe:	ea20 70dc 	biceq.w	r0, r0, ip, lsr #31
+ 8001ac2:	4770      	bx	lr
+
+08001ac4 <__aeabi_f2iz>:
+ 8001ac4:	ea4f 0240 	mov.w	r2, r0, lsl #1
+ 8001ac8:	f1b2 4ffe 	cmp.w	r2, #2130706432	; 0x7f000000
+ 8001acc:	d30f      	bcc.n	8001aee <__aeabi_f2iz+0x2a>
+ 8001ace:	f04f 039e 	mov.w	r3, #158	; 0x9e
+ 8001ad2:	ebb3 6212 	subs.w	r2, r3, r2, lsr #24
+ 8001ad6:	d90d      	bls.n	8001af4 <__aeabi_f2iz+0x30>
+ 8001ad8:	ea4f 2300 	mov.w	r3, r0, lsl #8
+ 8001adc:	f043 4300 	orr.w	r3, r3, #2147483648	; 0x80000000
+ 8001ae0:	f010 4f00 	tst.w	r0, #2147483648	; 0x80000000
+ 8001ae4:	fa23 f002 	lsr.w	r0, r3, r2
+ 8001ae8:	bf18      	it	ne
+ 8001aea:	4240      	negne	r0, r0
+ 8001aec:	4770      	bx	lr
+ 8001aee:	f04f 0000 	mov.w	r0, #0
+ 8001af2:	4770      	bx	lr
+ 8001af4:	f112 0f61 	cmn.w	r2, #97	; 0x61
+ 8001af8:	d101      	bne.n	8001afe <__aeabi_f2iz+0x3a>
+ 8001afa:	0242      	lsls	r2, r0, #9
+ 8001afc:	d105      	bne.n	8001b0a <__aeabi_f2iz+0x46>
+ 8001afe:	f010 4000 	ands.w	r0, r0, #2147483648	; 0x80000000
+ 8001b02:	bf08      	it	eq
+ 8001b04:	f06f 4000 	mvneq.w	r0, #2147483648	; 0x80000000
+ 8001b08:	4770      	bx	lr
+ 8001b0a:	f04f 0000 	mov.w	r0, #0
+ 8001b0e:	4770      	bx	lr
+
+08001b10 <__aeabi_uldivmod>:
+ 8001b10:	b953      	cbnz	r3, 8001b28 <__aeabi_uldivmod+0x18>
+ 8001b12:	b94a      	cbnz	r2, 8001b28 <__aeabi_uldivmod+0x18>
+ 8001b14:	2900      	cmp	r1, #0
+ 8001b16:	bf08      	it	eq
+ 8001b18:	2800      	cmpeq	r0, #0
+ 8001b1a:	bf1c      	itt	ne
+ 8001b1c:	f04f 31ff 	movne.w	r1, #4294967295
+ 8001b20:	f04f 30ff 	movne.w	r0, #4294967295
+ 8001b24:	f000 b970 	b.w	8001e08 <__aeabi_idiv0>
+ 8001b28:	f1ad 0c08 	sub.w	ip, sp, #8
+ 8001b2c:	e96d ce04 	strd	ip, lr, [sp, #-16]!
+ 8001b30:	f000 f806 	bl	8001b40 <__udivmoddi4>
+ 8001b34:	f8dd e004 	ldr.w	lr, [sp, #4]
+ 8001b38:	e9dd 2302 	ldrd	r2, r3, [sp, #8]
+ 8001b3c:	b004      	add	sp, #16
+ 8001b3e:	4770      	bx	lr
+
+08001b40 <__udivmoddi4>:
+ 8001b40:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
+ 8001b44:	9e08      	ldr	r6, [sp, #32]
+ 8001b46:	460d      	mov	r5, r1
+ 8001b48:	4604      	mov	r4, r0
+ 8001b4a:	460f      	mov	r7, r1
+ 8001b4c:	2b00      	cmp	r3, #0
+ 8001b4e:	d14a      	bne.n	8001be6 <__udivmoddi4+0xa6>
+ 8001b50:	428a      	cmp	r2, r1
+ 8001b52:	4694      	mov	ip, r2
+ 8001b54:	d965      	bls.n	8001c22 <__udivmoddi4+0xe2>
+ 8001b56:	fab2 f382 	clz	r3, r2
+ 8001b5a:	b143      	cbz	r3, 8001b6e <__udivmoddi4+0x2e>
+ 8001b5c:	fa02 fc03 	lsl.w	ip, r2, r3
+ 8001b60:	f1c3 0220 	rsb	r2, r3, #32
+ 8001b64:	409f      	lsls	r7, r3
+ 8001b66:	fa20 f202 	lsr.w	r2, r0, r2
+ 8001b6a:	4317      	orrs	r7, r2
+ 8001b6c:	409c      	lsls	r4, r3
+ 8001b6e:	ea4f 4e1c 	mov.w	lr, ip, lsr #16
+ 8001b72:	fa1f f58c 	uxth.w	r5, ip
+ 8001b76:	fbb7 f1fe 	udiv	r1, r7, lr
+ 8001b7a:	0c22      	lsrs	r2, r4, #16
+ 8001b7c:	fb0e 7711 	mls	r7, lr, r1, r7
+ 8001b80:	ea42 4207 	orr.w	r2, r2, r7, lsl #16
+ 8001b84:	fb01 f005 	mul.w	r0, r1, r5
+ 8001b88:	4290      	cmp	r0, r2
+ 8001b8a:	d90a      	bls.n	8001ba2 <__udivmoddi4+0x62>
+ 8001b8c:	eb1c 0202 	adds.w	r2, ip, r2
+ 8001b90:	f101 37ff 	add.w	r7, r1, #4294967295
+ 8001b94:	f080 811b 	bcs.w	8001dce <__udivmoddi4+0x28e>
+ 8001b98:	4290      	cmp	r0, r2
+ 8001b9a:	f240 8118 	bls.w	8001dce <__udivmoddi4+0x28e>
+ 8001b9e:	3902      	subs	r1, #2
+ 8001ba0:	4462      	add	r2, ip
+ 8001ba2:	1a12      	subs	r2, r2, r0
+ 8001ba4:	b2a4      	uxth	r4, r4
+ 8001ba6:	fbb2 f0fe 	udiv	r0, r2, lr
+ 8001baa:	fb0e 2210 	mls	r2, lr, r0, r2
+ 8001bae:	ea44 4402 	orr.w	r4, r4, r2, lsl #16
+ 8001bb2:	fb00 f505 	mul.w	r5, r0, r5
+ 8001bb6:	42a5      	cmp	r5, r4
+ 8001bb8:	d90a      	bls.n	8001bd0 <__udivmoddi4+0x90>
+ 8001bba:	eb1c 0404 	adds.w	r4, ip, r4
+ 8001bbe:	f100 32ff 	add.w	r2, r0, #4294967295
+ 8001bc2:	f080 8106 	bcs.w	8001dd2 <__udivmoddi4+0x292>
+ 8001bc6:	42a5      	cmp	r5, r4
+ 8001bc8:	f240 8103 	bls.w	8001dd2 <__udivmoddi4+0x292>
+ 8001bcc:	4464      	add	r4, ip
+ 8001bce:	3802      	subs	r0, #2
+ 8001bd0:	ea40 4001 	orr.w	r0, r0, r1, lsl #16
+ 8001bd4:	1b64      	subs	r4, r4, r5
+ 8001bd6:	2100      	movs	r1, #0
+ 8001bd8:	b11e      	cbz	r6, 8001be2 <__udivmoddi4+0xa2>
+ 8001bda:	40dc      	lsrs	r4, r3
+ 8001bdc:	2300      	movs	r3, #0
+ 8001bde:	e9c6 4300 	strd	r4, r3, [r6]
+ 8001be2:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 8001be6:	428b      	cmp	r3, r1
+ 8001be8:	d908      	bls.n	8001bfc <__udivmoddi4+0xbc>
+ 8001bea:	2e00      	cmp	r6, #0
+ 8001bec:	f000 80ec 	beq.w	8001dc8 <__udivmoddi4+0x288>
+ 8001bf0:	2100      	movs	r1, #0
+ 8001bf2:	e9c6 0500 	strd	r0, r5, [r6]
+ 8001bf6:	4608      	mov	r0, r1
+ 8001bf8:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 8001bfc:	fab3 f183 	clz	r1, r3
+ 8001c00:	2900      	cmp	r1, #0
+ 8001c02:	d149      	bne.n	8001c98 <__udivmoddi4+0x158>
+ 8001c04:	42ab      	cmp	r3, r5
+ 8001c06:	d302      	bcc.n	8001c0e <__udivmoddi4+0xce>
+ 8001c08:	4282      	cmp	r2, r0
+ 8001c0a:	f200 80f7 	bhi.w	8001dfc <__udivmoddi4+0x2bc>
+ 8001c0e:	1a84      	subs	r4, r0, r2
+ 8001c10:	eb65 0203 	sbc.w	r2, r5, r3
+ 8001c14:	2001      	movs	r0, #1
+ 8001c16:	4617      	mov	r7, r2
+ 8001c18:	2e00      	cmp	r6, #0
+ 8001c1a:	d0e2      	beq.n	8001be2 <__udivmoddi4+0xa2>
+ 8001c1c:	e9c6 4700 	strd	r4, r7, [r6]
+ 8001c20:	e7df      	b.n	8001be2 <__udivmoddi4+0xa2>
+ 8001c22:	b902      	cbnz	r2, 8001c26 <__udivmoddi4+0xe6>
+ 8001c24:	deff      	udf	#255	; 0xff
+ 8001c26:	fab2 f382 	clz	r3, r2
+ 8001c2a:	2b00      	cmp	r3, #0
+ 8001c2c:	f040 808f 	bne.w	8001d4e <__udivmoddi4+0x20e>
+ 8001c30:	1a8a      	subs	r2, r1, r2
+ 8001c32:	ea4f 471c 	mov.w	r7, ip, lsr #16
+ 8001c36:	fa1f fe8c 	uxth.w	lr, ip
+ 8001c3a:	2101      	movs	r1, #1
+ 8001c3c:	fbb2 f5f7 	udiv	r5, r2, r7
+ 8001c40:	fb07 2015 	mls	r0, r7, r5, r2
+ 8001c44:	0c22      	lsrs	r2, r4, #16
+ 8001c46:	ea42 4200 	orr.w	r2, r2, r0, lsl #16
+ 8001c4a:	fb0e f005 	mul.w	r0, lr, r5
+ 8001c4e:	4290      	cmp	r0, r2
+ 8001c50:	d908      	bls.n	8001c64 <__udivmoddi4+0x124>
+ 8001c52:	eb1c 0202 	adds.w	r2, ip, r2
+ 8001c56:	f105 38ff 	add.w	r8, r5, #4294967295
+ 8001c5a:	d202      	bcs.n	8001c62 <__udivmoddi4+0x122>
+ 8001c5c:	4290      	cmp	r0, r2
+ 8001c5e:	f200 80ca 	bhi.w	8001df6 <__udivmoddi4+0x2b6>
+ 8001c62:	4645      	mov	r5, r8
+ 8001c64:	1a12      	subs	r2, r2, r0
+ 8001c66:	b2a4      	uxth	r4, r4
+ 8001c68:	fbb2 f0f7 	udiv	r0, r2, r7
+ 8001c6c:	fb07 2210 	mls	r2, r7, r0, r2
+ 8001c70:	ea44 4402 	orr.w	r4, r4, r2, lsl #16
+ 8001c74:	fb0e fe00 	mul.w	lr, lr, r0
+ 8001c78:	45a6      	cmp	lr, r4
+ 8001c7a:	d908      	bls.n	8001c8e <__udivmoddi4+0x14e>
+ 8001c7c:	eb1c 0404 	adds.w	r4, ip, r4
+ 8001c80:	f100 32ff 	add.w	r2, r0, #4294967295
+ 8001c84:	d202      	bcs.n	8001c8c <__udivmoddi4+0x14c>
+ 8001c86:	45a6      	cmp	lr, r4
+ 8001c88:	f200 80ba 	bhi.w	8001e00 <__udivmoddi4+0x2c0>
+ 8001c8c:	4610      	mov	r0, r2
+ 8001c8e:	eba4 040e 	sub.w	r4, r4, lr
+ 8001c92:	ea40 4005 	orr.w	r0, r0, r5, lsl #16
+ 8001c96:	e79f      	b.n	8001bd8 <__udivmoddi4+0x98>
+ 8001c98:	f1c1 0720 	rsb	r7, r1, #32
+ 8001c9c:	408b      	lsls	r3, r1
+ 8001c9e:	fa22 fc07 	lsr.w	ip, r2, r7
+ 8001ca2:	ea4c 0c03 	orr.w	ip, ip, r3
+ 8001ca6:	fa05 f401 	lsl.w	r4, r5, r1
+ 8001caa:	fa20 f307 	lsr.w	r3, r0, r7
+ 8001cae:	40fd      	lsrs	r5, r7
+ 8001cb0:	4323      	orrs	r3, r4
+ 8001cb2:	fa00 f901 	lsl.w	r9, r0, r1
+ 8001cb6:	ea4f 401c 	mov.w	r0, ip, lsr #16
+ 8001cba:	fa1f fe8c 	uxth.w	lr, ip
+ 8001cbe:	fbb5 f8f0 	udiv	r8, r5, r0
+ 8001cc2:	0c1c      	lsrs	r4, r3, #16
+ 8001cc4:	fb00 5518 	mls	r5, r0, r8, r5
+ 8001cc8:	ea44 4405 	orr.w	r4, r4, r5, lsl #16
+ 8001ccc:	fb08 f50e 	mul.w	r5, r8, lr
+ 8001cd0:	42a5      	cmp	r5, r4
+ 8001cd2:	fa02 f201 	lsl.w	r2, r2, r1
+ 8001cd6:	d90b      	bls.n	8001cf0 <__udivmoddi4+0x1b0>
+ 8001cd8:	eb1c 0404 	adds.w	r4, ip, r4
+ 8001cdc:	f108 3aff 	add.w	sl, r8, #4294967295
+ 8001ce0:	f080 8087 	bcs.w	8001df2 <__udivmoddi4+0x2b2>
+ 8001ce4:	42a5      	cmp	r5, r4
+ 8001ce6:	f240 8084 	bls.w	8001df2 <__udivmoddi4+0x2b2>
+ 8001cea:	f1a8 0802 	sub.w	r8, r8, #2
+ 8001cee:	4464      	add	r4, ip
+ 8001cf0:	1b64      	subs	r4, r4, r5
+ 8001cf2:	b29d      	uxth	r5, r3
+ 8001cf4:	fbb4 f3f0 	udiv	r3, r4, r0
+ 8001cf8:	fb00 4413 	mls	r4, r0, r3, r4
+ 8001cfc:	ea45 4404 	orr.w	r4, r5, r4, lsl #16
+ 8001d00:	fb03 fe0e 	mul.w	lr, r3, lr
+ 8001d04:	45a6      	cmp	lr, r4
+ 8001d06:	d908      	bls.n	8001d1a <__udivmoddi4+0x1da>
+ 8001d08:	eb1c 0404 	adds.w	r4, ip, r4
+ 8001d0c:	f103 30ff 	add.w	r0, r3, #4294967295
+ 8001d10:	d26b      	bcs.n	8001dea <__udivmoddi4+0x2aa>
+ 8001d12:	45a6      	cmp	lr, r4
+ 8001d14:	d969      	bls.n	8001dea <__udivmoddi4+0x2aa>
+ 8001d16:	3b02      	subs	r3, #2
+ 8001d18:	4464      	add	r4, ip
+ 8001d1a:	ea43 4008 	orr.w	r0, r3, r8, lsl #16
+ 8001d1e:	fba0 8302 	umull	r8, r3, r0, r2
+ 8001d22:	eba4 040e 	sub.w	r4, r4, lr
+ 8001d26:	429c      	cmp	r4, r3
+ 8001d28:	46c6      	mov	lr, r8
+ 8001d2a:	461d      	mov	r5, r3
+ 8001d2c:	d355      	bcc.n	8001dda <__udivmoddi4+0x29a>
+ 8001d2e:	d052      	beq.n	8001dd6 <__udivmoddi4+0x296>
+ 8001d30:	b156      	cbz	r6, 8001d48 <__udivmoddi4+0x208>
+ 8001d32:	ebb9 030e 	subs.w	r3, r9, lr
+ 8001d36:	eb64 0405 	sbc.w	r4, r4, r5
+ 8001d3a:	fa04 f707 	lsl.w	r7, r4, r7
+ 8001d3e:	40cb      	lsrs	r3, r1
+ 8001d40:	40cc      	lsrs	r4, r1
+ 8001d42:	431f      	orrs	r7, r3
+ 8001d44:	e9c6 7400 	strd	r7, r4, [r6]
+ 8001d48:	2100      	movs	r1, #0
+ 8001d4a:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 8001d4e:	f1c3 0120 	rsb	r1, r3, #32
+ 8001d52:	fa02 fc03 	lsl.w	ip, r2, r3
+ 8001d56:	fa20 f201 	lsr.w	r2, r0, r1
+ 8001d5a:	fa25 f101 	lsr.w	r1, r5, r1
+ 8001d5e:	409d      	lsls	r5, r3
+ 8001d60:	432a      	orrs	r2, r5
+ 8001d62:	ea4f 471c 	mov.w	r7, ip, lsr #16
+ 8001d66:	fa1f fe8c 	uxth.w	lr, ip
+ 8001d6a:	fbb1 f0f7 	udiv	r0, r1, r7
+ 8001d6e:	fb07 1510 	mls	r5, r7, r0, r1
+ 8001d72:	0c11      	lsrs	r1, r2, #16
+ 8001d74:	ea41 4105 	orr.w	r1, r1, r5, lsl #16
+ 8001d78:	fb00 f50e 	mul.w	r5, r0, lr
+ 8001d7c:	428d      	cmp	r5, r1
+ 8001d7e:	fa04 f403 	lsl.w	r4, r4, r3
+ 8001d82:	d908      	bls.n	8001d96 <__udivmoddi4+0x256>
+ 8001d84:	eb1c 0101 	adds.w	r1, ip, r1
+ 8001d88:	f100 38ff 	add.w	r8, r0, #4294967295
+ 8001d8c:	d22f      	bcs.n	8001dee <__udivmoddi4+0x2ae>
+ 8001d8e:	428d      	cmp	r5, r1
+ 8001d90:	d92d      	bls.n	8001dee <__udivmoddi4+0x2ae>
+ 8001d92:	3802      	subs	r0, #2
+ 8001d94:	4461      	add	r1, ip
+ 8001d96:	1b49      	subs	r1, r1, r5
+ 8001d98:	b292      	uxth	r2, r2
+ 8001d9a:	fbb1 f5f7 	udiv	r5, r1, r7
+ 8001d9e:	fb07 1115 	mls	r1, r7, r5, r1
+ 8001da2:	ea42 4201 	orr.w	r2, r2, r1, lsl #16
+ 8001da6:	fb05 f10e 	mul.w	r1, r5, lr
+ 8001daa:	4291      	cmp	r1, r2
+ 8001dac:	d908      	bls.n	8001dc0 <__udivmoddi4+0x280>
+ 8001dae:	eb1c 0202 	adds.w	r2, ip, r2
+ 8001db2:	f105 38ff 	add.w	r8, r5, #4294967295
+ 8001db6:	d216      	bcs.n	8001de6 <__udivmoddi4+0x2a6>
+ 8001db8:	4291      	cmp	r1, r2
+ 8001dba:	d914      	bls.n	8001de6 <__udivmoddi4+0x2a6>
+ 8001dbc:	3d02      	subs	r5, #2
+ 8001dbe:	4462      	add	r2, ip
+ 8001dc0:	1a52      	subs	r2, r2, r1
+ 8001dc2:	ea45 4100 	orr.w	r1, r5, r0, lsl #16
+ 8001dc6:	e739      	b.n	8001c3c <__udivmoddi4+0xfc>
+ 8001dc8:	4631      	mov	r1, r6
+ 8001dca:	4630      	mov	r0, r6
+ 8001dcc:	e709      	b.n	8001be2 <__udivmoddi4+0xa2>
+ 8001dce:	4639      	mov	r1, r7
+ 8001dd0:	e6e7      	b.n	8001ba2 <__udivmoddi4+0x62>
+ 8001dd2:	4610      	mov	r0, r2
+ 8001dd4:	e6fc      	b.n	8001bd0 <__udivmoddi4+0x90>
+ 8001dd6:	45c1      	cmp	r9, r8
+ 8001dd8:	d2aa      	bcs.n	8001d30 <__udivmoddi4+0x1f0>
+ 8001dda:	ebb8 0e02 	subs.w	lr, r8, r2
+ 8001dde:	eb63 050c 	sbc.w	r5, r3, ip
+ 8001de2:	3801      	subs	r0, #1
+ 8001de4:	e7a4      	b.n	8001d30 <__udivmoddi4+0x1f0>
+ 8001de6:	4645      	mov	r5, r8
+ 8001de8:	e7ea      	b.n	8001dc0 <__udivmoddi4+0x280>
+ 8001dea:	4603      	mov	r3, r0
+ 8001dec:	e795      	b.n	8001d1a <__udivmoddi4+0x1da>
+ 8001dee:	4640      	mov	r0, r8
+ 8001df0:	e7d1      	b.n	8001d96 <__udivmoddi4+0x256>
+ 8001df2:	46d0      	mov	r8, sl
+ 8001df4:	e77c      	b.n	8001cf0 <__udivmoddi4+0x1b0>
+ 8001df6:	3d02      	subs	r5, #2
+ 8001df8:	4462      	add	r2, ip
+ 8001dfa:	e733      	b.n	8001c64 <__udivmoddi4+0x124>
+ 8001dfc:	4608      	mov	r0, r1
+ 8001dfe:	e70b      	b.n	8001c18 <__udivmoddi4+0xd8>
+ 8001e00:	4464      	add	r4, ip
+ 8001e02:	3802      	subs	r0, #2
+ 8001e04:	e743      	b.n	8001c8e <__udivmoddi4+0x14e>
+ 8001e06:	bf00      	nop
+
+08001e08 <__aeabi_idiv0>:
+ 8001e08:	4770      	bx	lr
+ 8001e0a:	bf00      	nop
+
+08001e0c <MX_ADC_Init>:
+
+ADC_HandleTypeDef hadc;
+
+/* ADC init function */
+void MX_ADC_Init(void)
+{
+ 8001e0c:	b508      	push	{r3, lr}
+
+  /* USER CODE END ADC_Init 1 */
+
+  /** Configure the global features of the ADC (Clock, Resolution, Data Alignment and number of conversion)
+  */
+  hadc.Instance = ADC;
+ 8001e0e:	4813      	ldr	r0, [pc, #76]	; (8001e5c <MX_ADC_Init+0x50>)
+ 8001e10:	4b13      	ldr	r3, [pc, #76]	; (8001e60 <MX_ADC_Init+0x54>)
+ 8001e12:	6003      	str	r3, [r0, #0]
+  hadc.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4;
+ 8001e14:	f04f 4300 	mov.w	r3, #2147483648	; 0x80000000
+ 8001e18:	6043      	str	r3, [r0, #4]
+  hadc.Init.Resolution = ADC_RESOLUTION_12B;
+ 8001e1a:	2300      	movs	r3, #0
+ 8001e1c:	6083      	str	r3, [r0, #8]
+  hadc.Init.DataAlign = ADC_DATAALIGN_RIGHT;
+ 8001e1e:	60c3      	str	r3, [r0, #12]
+  hadc.Init.ScanConvMode = ADC_SCAN_DISABLE;
+ 8001e20:	6103      	str	r3, [r0, #16]
+  hadc.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
+ 8001e22:	2204      	movs	r2, #4
+ 8001e24:	6142      	str	r2, [r0, #20]
+  hadc.Init.LowPowerAutoWait = DISABLE;
+ 8001e26:	7603      	strb	r3, [r0, #24]
+  hadc.Init.LowPowerAutoPowerOff = DISABLE;
+ 8001e28:	7643      	strb	r3, [r0, #25]
+  hadc.Init.ContinuousConvMode = DISABLE;
+ 8001e2a:	7683      	strb	r3, [r0, #26]
+  hadc.Init.NbrOfConversion = 1;
+ 8001e2c:	2201      	movs	r2, #1
+ 8001e2e:	61c2      	str	r2, [r0, #28]
+  hadc.Init.DiscontinuousConvMode = DISABLE;
+ 8001e30:	f880 3020 	strb.w	r3, [r0, #32]
+  hadc.Init.ExternalTrigConv = ADC_SOFTWARE_START;
+ 8001e34:	6243      	str	r3, [r0, #36]	; 0x24
+  hadc.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
+ 8001e36:	6283      	str	r3, [r0, #40]	; 0x28
+  hadc.Init.DMAContinuousRequests = DISABLE;
+ 8001e38:	f880 302c 	strb.w	r3, [r0, #44]	; 0x2c
+  hadc.Init.Overrun = ADC_OVR_DATA_OVERWRITTEN;
+ 8001e3c:	f44f 5280 	mov.w	r2, #4096	; 0x1000
+ 8001e40:	6302      	str	r2, [r0, #48]	; 0x30
+  hadc.Init.SamplingTimeCommon1 = ADC_SAMPLETIME_160CYCLES_5;
+ 8001e42:	2207      	movs	r2, #7
+ 8001e44:	6342      	str	r2, [r0, #52]	; 0x34
+  hadc.Init.SamplingTimeCommon2 = ADC_SAMPLETIME_160CYCLES_5;
+ 8001e46:	6382      	str	r2, [r0, #56]	; 0x38
+  hadc.Init.OversamplingMode = DISABLE;
+ 8001e48:	f880 303c 	strb.w	r3, [r0, #60]	; 0x3c
+  hadc.Init.TriggerFrequencyMode = ADC_TRIGGER_FREQ_HIGH;
+ 8001e4c:	64c3      	str	r3, [r0, #76]	; 0x4c
+  if (HAL_ADC_Init(&hadc) != HAL_OK)
+ 8001e4e:	f006 f9fb 	bl	8008248 <HAL_ADC_Init>
+ 8001e52:	b900      	cbnz	r0, 8001e56 <MX_ADC_Init+0x4a>
+  }
+  /* USER CODE BEGIN ADC_Init 2 */
+
+  /* USER CODE END ADC_Init 2 */
+
+}
+ 8001e54:	bd08      	pop	{r3, pc}
+    Error_Handler();
+ 8001e56:	f000 fc41 	bl	80026dc <Error_Handler>
+}
+ 8001e5a:	e7fb      	b.n	8001e54 <MX_ADC_Init+0x48>
+ 8001e5c:	200008ec 	.word	0x200008ec
+ 8001e60:	40012400 	.word	0x40012400
+
+08001e64 <HAL_ADC_MspInit>:
+
+void HAL_ADC_MspInit(ADC_HandleTypeDef* adcHandle)
+{
+
+  if(adcHandle->Instance==ADC)
+ 8001e64:	6802      	ldr	r2, [r0, #0]
+ 8001e66:	4b09      	ldr	r3, [pc, #36]	; (8001e8c <HAL_ADC_MspInit+0x28>)
+ 8001e68:	429a      	cmp	r2, r3
+ 8001e6a:	d000      	beq.n	8001e6e <HAL_ADC_MspInit+0xa>
+ 8001e6c:	4770      	bx	lr
+{
+ 8001e6e:	b082      	sub	sp, #8
+  * @retval None
+  */
+__STATIC_INLINE void LL_APB2_GRP1_EnableClock(uint32_t Periphs)
+{
+  __IO uint32_t tmpreg;
+  SET_BIT(RCC->APB2ENR, Periphs);
+ 8001e70:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8001e74:	6e1a      	ldr	r2, [r3, #96]	; 0x60
+ 8001e76:	f442 7200 	orr.w	r2, r2, #512	; 0x200
+ 8001e7a:	661a      	str	r2, [r3, #96]	; 0x60
+  /* Delay after an RCC peripheral clock enabling */
+  tmpreg = READ_BIT(RCC->APB2ENR, Periphs);
+ 8001e7c:	6e1b      	ldr	r3, [r3, #96]	; 0x60
+ 8001e7e:	f403 7300 	and.w	r3, r3, #512	; 0x200
+ 8001e82:	9301      	str	r3, [sp, #4]
+  (void)tmpreg;
+ 8001e84:	9b01      	ldr	r3, [sp, #4]
+    __HAL_RCC_ADC_CLK_ENABLE();
+  /* USER CODE BEGIN ADC_MspInit 1 */
+
+  /* USER CODE END ADC_MspInit 1 */
+  }
+}
+ 8001e86:	b002      	add	sp, #8
+ 8001e88:	4770      	bx	lr
+ 8001e8a:	bf00      	nop
+ 8001e8c:	40012400 	.word	0x40012400
+
+08001e90 <HAL_ADC_MspDeInit>:
+
+void HAL_ADC_MspDeInit(ADC_HandleTypeDef* adcHandle)
+{
+
+  if(adcHandle->Instance==ADC)
+ 8001e90:	6802      	ldr	r2, [r0, #0]
+ 8001e92:	4b05      	ldr	r3, [pc, #20]	; (8001ea8 <HAL_ADC_MspDeInit+0x18>)
+ 8001e94:	429a      	cmp	r2, r3
+ 8001e96:	d000      	beq.n	8001e9a <HAL_ADC_MspDeInit+0xa>
+    __HAL_RCC_ADC_CLK_DISABLE();
+  /* USER CODE BEGIN ADC_MspDeInit 1 */
+
+  /* USER CODE END ADC_MspDeInit 1 */
+  }
+}
+ 8001e98:	4770      	bx	lr
+  *         @arg @ref LL_APB2_GRP1_PERIPH_TIM17
+  * @retval None
+  */
+__STATIC_INLINE void LL_APB2_GRP1_DisableClock(uint32_t Periphs)
+{
+  CLEAR_BIT(RCC->APB2ENR, Periphs);
+ 8001e9a:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 8001e9e:	6e13      	ldr	r3, [r2, #96]	; 0x60
+ 8001ea0:	f423 7300 	bic.w	r3, r3, #512	; 0x200
+ 8001ea4:	6613      	str	r3, [r2, #96]	; 0x60
+ 8001ea6:	e7f7      	b.n	8001e98 <HAL_ADC_MspDeInit+0x8>
+ 8001ea8:	40012400 	.word	0x40012400
+
+08001eac <ADC_ReadChannels>:
+/* USER CODE BEGIN PrFD */
+
+/* USER CODE END PrFD */
+
+static uint32_t ADC_ReadChannels(uint32_t channel)
+{
+ 8001eac:	b530      	push	{r4, r5, lr}
+ 8001eae:	b085      	sub	sp, #20
+ 8001eb0:	4604      	mov	r4, r0
+  /* USER CODE BEGIN ADC_ReadChannels_1 */
+
+  /* USER CODE END ADC_ReadChannels_1 */
+  uint32_t ADCxConvertedValues = 0;
+  ADC_ChannelConfTypeDef sConfig = {0};
+ 8001eb2:	2300      	movs	r3, #0
+ 8001eb4:	9301      	str	r3, [sp, #4]
+ 8001eb6:	9302      	str	r3, [sp, #8]
+ 8001eb8:	9303      	str	r3, [sp, #12]
+
+  MX_ADC_Init();
+ 8001eba:	f7ff ffa7 	bl	8001e0c <MX_ADC_Init>
+
+  /* Start Calibration */
+  if (HAL_ADCEx_Calibration_Start(&hadc) != HAL_OK)
+ 8001ebe:	4816      	ldr	r0, [pc, #88]	; (8001f18 <ADC_ReadChannels+0x6c>)
+ 8001ec0:	f006 fdfa 	bl	8008ab8 <HAL_ADCEx_Calibration_Start>
+ 8001ec4:	b9f8      	cbnz	r0, 8001f06 <ADC_ReadChannels+0x5a>
+  {
+    Error_Handler();
+  }
+
+  /* Configure Regular Channel */
+  sConfig.Channel = channel;
+ 8001ec6:	9401      	str	r4, [sp, #4]
+  sConfig.Rank = ADC_REGULAR_RANK_1;
+ 8001ec8:	2300      	movs	r3, #0
+ 8001eca:	9302      	str	r3, [sp, #8]
+  sConfig.SamplingTime = ADC_SAMPLINGTIME_COMMON_1;
+ 8001ecc:	9303      	str	r3, [sp, #12]
+  if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK)
+ 8001ece:	a901      	add	r1, sp, #4
+ 8001ed0:	4811      	ldr	r0, [pc, #68]	; (8001f18 <ADC_ReadChannels+0x6c>)
+ 8001ed2:	f006 fb33 	bl	800853c <HAL_ADC_ConfigChannel>
+ 8001ed6:	b9c8      	cbnz	r0, 8001f0c <ADC_ReadChannels+0x60>
+  {
+    Error_Handler();
+  }
+
+  if (HAL_ADC_Start(&hadc) != HAL_OK)
+ 8001ed8:	480f      	ldr	r0, [pc, #60]	; (8001f18 <ADC_ReadChannels+0x6c>)
+ 8001eda:	f006 fcf1 	bl	80088c0 <HAL_ADC_Start>
+ 8001ede:	b9c0      	cbnz	r0, 8001f12 <ADC_ReadChannels+0x66>
+  {
+    /* Start Error */
+    Error_Handler();
+  }
+  /** Wait for end of conversion */
+  HAL_ADC_PollForConversion(&hadc, HAL_MAX_DELAY);
+ 8001ee0:	4c0d      	ldr	r4, [pc, #52]	; (8001f18 <ADC_ReadChannels+0x6c>)
+ 8001ee2:	f04f 31ff 	mov.w	r1, #4294967295
+ 8001ee6:	4620      	mov	r0, r4
+ 8001ee8:	f006 fac6 	bl	8008478 <HAL_ADC_PollForConversion>
+
+  /** Wait for end of conversion */
+  HAL_ADC_Stop(&hadc);   /* it calls also ADC_Disable() */
+ 8001eec:	4620      	mov	r0, r4
+ 8001eee:	f006 fdc3 	bl	8008a78 <HAL_ADC_Stop>
+
+  ADCxConvertedValues = HAL_ADC_GetValue(&hadc);
+ 8001ef2:	4620      	mov	r0, r4
+ 8001ef4:	f006 fb1f 	bl	8008536 <HAL_ADC_GetValue>
+ 8001ef8:	4605      	mov	r5, r0
+
+  HAL_ADC_DeInit(&hadc);
+ 8001efa:	4620      	mov	r0, r4
+ 8001efc:	f006 fd5c 	bl	80089b8 <HAL_ADC_DeInit>
+
+  return ADCxConvertedValues;
+  /* USER CODE BEGIN ADC_ReadChannels_2 */
+
+  /* USER CODE END ADC_ReadChannels_2 */
+}
+ 8001f00:	4628      	mov	r0, r5
+ 8001f02:	b005      	add	sp, #20
+ 8001f04:	bd30      	pop	{r4, r5, pc}
+    Error_Handler();
+ 8001f06:	f000 fbe9 	bl	80026dc <Error_Handler>
+ 8001f0a:	e7dc      	b.n	8001ec6 <ADC_ReadChannels+0x1a>
+    Error_Handler();
+ 8001f0c:	f000 fbe6 	bl	80026dc <Error_Handler>
+ 8001f10:	e7e2      	b.n	8001ed8 <ADC_ReadChannels+0x2c>
+    Error_Handler();
+ 8001f12:	f000 fbe3 	bl	80026dc <Error_Handler>
+ 8001f16:	e7e3      	b.n	8001ee0 <ADC_ReadChannels+0x34>
+ 8001f18:	200008ec 	.word	0x200008ec
+
+08001f1c <SYS_InitMeasurement>:
+  hadc.Instance = ADC;
+ 8001f1c:	4b01      	ldr	r3, [pc, #4]	; (8001f24 <SYS_InitMeasurement+0x8>)
+ 8001f1e:	4a02      	ldr	r2, [pc, #8]	; (8001f28 <SYS_InitMeasurement+0xc>)
+ 8001f20:	601a      	str	r2, [r3, #0]
+}
+ 8001f22:	4770      	bx	lr
+ 8001f24:	200008ec 	.word	0x200008ec
+ 8001f28:	40012400 	.word	0x40012400
+
+08001f2c <SYS_GetBatteryLevel>:
+{
+ 8001f2c:	b508      	push	{r3, lr}
+  measuredLevel = ADC_ReadChannels(ADC_CHANNEL_VREFINT);
+ 8001f2e:	480d      	ldr	r0, [pc, #52]	; (8001f64 <SYS_GetBatteryLevel+0x38>)
+ 8001f30:	f7ff ffbc 	bl	8001eac <ADC_ReadChannels>
+  if (measuredLevel == 0)
+ 8001f34:	b1a0      	cbz	r0, 8001f60 <SYS_GetBatteryLevel+0x34>
+ 8001f36:	4603      	mov	r3, r0
+    if ((uint32_t)*VREFINT_CAL_ADDR != (uint32_t)0xFFFFU)
+ 8001f38:	4a0b      	ldr	r2, [pc, #44]	; (8001f68 <SYS_GetBatteryLevel+0x3c>)
+ 8001f3a:	f8b2 00aa 	ldrh.w	r0, [r2, #170]	; 0xaa
+ 8001f3e:	f64f 72ff 	movw	r2, #65535	; 0xffff
+ 8001f42:	4290      	cmp	r0, r2
+ 8001f44:	d007      	beq.n	8001f56 <SYS_GetBatteryLevel+0x2a>
+      batteryLevelmV = __LL_ADC_CALC_VREFANALOG_VOLTAGE(measuredLevel,
+ 8001f46:	f640 42e4 	movw	r2, #3300	; 0xce4
+ 8001f4a:	fb02 f000 	mul.w	r0, r2, r0
+ 8001f4e:	fbb0 f0f3 	udiv	r0, r0, r3
+ 8001f52:	b280      	uxth	r0, r0
+ 8001f54:	e005      	b.n	8001f62 <SYS_GetBatteryLevel+0x36>
+      batteryLevelmV = (VREFINT_CAL_VREF * 1510) / measuredLevel;
+ 8001f56:	4805      	ldr	r0, [pc, #20]	; (8001f6c <SYS_GetBatteryLevel+0x40>)
+ 8001f58:	fbb0 f0f3 	udiv	r0, r0, r3
+ 8001f5c:	b280      	uxth	r0, r0
+ 8001f5e:	e000      	b.n	8001f62 <SYS_GetBatteryLevel+0x36>
+    batteryLevelmV = 0;
+ 8001f60:	2000      	movs	r0, #0
+}
+ 8001f62:	bd08      	pop	{r3, pc}
+ 8001f64:	b4002000 	.word	0xb4002000
+ 8001f68:	1fff7500 	.word	0x1fff7500
+ 8001f6c:	004c08d8 	.word	0x004c08d8
+
+08001f70 <SYS_GetTemperatureLevel>:
+{
+ 8001f70:	b510      	push	{r4, lr}
+ 8001f72:	b082      	sub	sp, #8
+  __IO int16_t temperatureDegreeC = 0;
+ 8001f74:	2300      	movs	r3, #0
+ 8001f76:	f8ad 3006 	strh.w	r3, [sp, #6]
+  uint16_t batteryLevelmV = SYS_GetBatteryLevel();
+ 8001f7a:	f7ff ffd7 	bl	8001f2c <SYS_GetBatteryLevel>
+ 8001f7e:	4604      	mov	r4, r0
+  measuredLevel = ADC_ReadChannels(ADC_CHANNEL_TEMPSENSOR);
+ 8001f80:	4821      	ldr	r0, [pc, #132]	; (8002008 <SYS_GetTemperatureLevel+0x98>)
+ 8001f82:	f7ff ff93 	bl	8001eac <ADC_ReadChannels>
+  if (((int32_t)*TEMPSENSOR_CAL2_ADDR - (int32_t)*TEMPSENSOR_CAL1_ADDR) != 0)
+ 8001f86:	4b21      	ldr	r3, [pc, #132]	; (800200c <SYS_GetTemperatureLevel+0x9c>)
+ 8001f88:	f8b3 20c8 	ldrh.w	r2, [r3, #200]	; 0xc8
+ 8001f8c:	f8b3 10a8 	ldrh.w	r1, [r3, #168]	; 0xa8
+ 8001f90:	428a      	cmp	r2, r1
+ 8001f92:	d01d      	beq.n	8001fd0 <SYS_GetTemperatureLevel+0x60>
+    temperatureDegreeC = __LL_ADC_CALC_TEMPERATURE(batteryLevelmV,
+ 8001f94:	fb00 f304 	mul.w	r3, r0, r4
+ 8001f98:	089b      	lsrs	r3, r3, #2
+ 8001f9a:	481d      	ldr	r0, [pc, #116]	; (8002010 <SYS_GetTemperatureLevel+0xa0>)
+ 8001f9c:	fba0 0303 	umull	r0, r3, r0, r3
+ 8001fa0:	ebc1 1353 	rsb	r3, r1, r3, lsr #5
+ 8001fa4:	2064      	movs	r0, #100	; 0x64
+ 8001fa6:	fb00 f303 	mul.w	r3, r0, r3
+ 8001faa:	1a52      	subs	r2, r2, r1
+ 8001fac:	fb93 f3f2 	sdiv	r3, r3, r2
+ 8001fb0:	331e      	adds	r3, #30
+ 8001fb2:	b21b      	sxth	r3, r3
+ 8001fb4:	f8ad 3006 	strh.w	r3, [sp, #6]
+  temperatureDegreeC <<= 8;
+ 8001fb8:	f8bd 3006 	ldrh.w	r3, [sp, #6]
+ 8001fbc:	b21b      	sxth	r3, r3
+ 8001fbe:	021b      	lsls	r3, r3, #8
+ 8001fc0:	b21b      	sxth	r3, r3
+ 8001fc2:	f8ad 3006 	strh.w	r3, [sp, #6]
+  return (int16_t) temperatureDegreeC;
+ 8001fc6:	f8bd 0006 	ldrh.w	r0, [sp, #6]
+}
+ 8001fca:	b200      	sxth	r0, r0
+ 8001fcc:	b002      	add	sp, #8
+ 8001fce:	bd10      	pop	{r4, pc}
+    temperatureDegreeC = __LL_ADC_CALC_TEMPERATURE_TYP_PARAMS(TEMPSENSOR_TYP_AVGSLOPE,
+ 8001fd0:	fb04 f000 	mul.w	r0, r4, r0
+ 8001fd4:	4b0f      	ldr	r3, [pc, #60]	; (8002014 <SYS_GetTemperatureLevel+0xa4>)
+ 8001fd6:	fba3 2300 	umull	r2, r3, r3, r0
+ 8001fda:	1ac4      	subs	r4, r0, r3
+ 8001fdc:	eb03 0354 	add.w	r3, r3, r4, lsr #1
+ 8001fe0:	0adb      	lsrs	r3, r3, #11
+ 8001fe2:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
+ 8001fe6:	fb02 f303 	mul.w	r3, r2, r3
+ 8001fea:	f5a3 2339 	sub.w	r3, r3, #757760	; 0xb9000
+ 8001fee:	f5a3 630c 	sub.w	r3, r3, #2240	; 0x8c0
+ 8001ff2:	4a09      	ldr	r2, [pc, #36]	; (8002018 <SYS_GetTemperatureLevel+0xa8>)
+ 8001ff4:	fb82 1203 	smull	r1, r2, r2, r3
+ 8001ff8:	17db      	asrs	r3, r3, #31
+ 8001ffa:	ebc3 23a2 	rsb	r3, r3, r2, asr #10
+ 8001ffe:	331e      	adds	r3, #30
+ 8002000:	b21b      	sxth	r3, r3
+ 8002002:	f8ad 3006 	strh.w	r3, [sp, #6]
+ 8002006:	e7d7      	b.n	8001fb8 <SYS_GetTemperatureLevel+0x48>
+ 8002008:	b0001000 	.word	0xb0001000
+ 800200c:	1fff7500 	.word	0x1fff7500
+ 8002010:	09ee009f 	.word	0x09ee009f
+ 8002014:	00100101 	.word	0x00100101
+ 8002018:	68db8bad 	.word	0x68db8bad
+
+0800201c <cmox_ll_init>:
+  * @brief          CMOX library low level initialization
+  * @param          pArg User defined parameter that is transmitted from initialize service
+  * @retval         Initialization status: @ref CMOX_INIT_SUCCESS / @ref CMOX_INIT_FAIL
+  */
+cmox_init_retval_t cmox_ll_init(void *pArg)
+{
+ 800201c:	b082      	sub	sp, #8
+  CLEAR_BIT(RCC->AHB1RSTR, Periphs);
+ 800201e:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8002022:	6a9a      	ldr	r2, [r3, #40]	; 0x28
+ 8002024:	f422 5280 	bic.w	r2, r2, #4096	; 0x1000
+ 8002028:	629a      	str	r2, [r3, #40]	; 0x28
+  SET_BIT(RCC->AHB1ENR, Periphs);
+ 800202a:	6c9a      	ldr	r2, [r3, #72]	; 0x48
+ 800202c:	f442 5280 	orr.w	r2, r2, #4096	; 0x1000
+ 8002030:	649a      	str	r2, [r3, #72]	; 0x48
+  tmpreg = READ_BIT(RCC->AHB1ENR, Periphs);
+ 8002032:	6c9b      	ldr	r3, [r3, #72]	; 0x48
+ 8002034:	f403 5380 	and.w	r3, r3, #4096	; 0x1000
+ 8002038:	9301      	str	r3, [sp, #4]
+  (void)tmpreg;
+ 800203a:	9b01      	ldr	r3, [sp, #4]
+  (void)pArg;
+  /* Ensure CRC is enabled for cryptographic processing */
+  __HAL_RCC_CRC_RELEASE_RESET();
+  __HAL_RCC_CRC_CLK_ENABLE();
+  return CMOX_INIT_SUCCESS;
+}
+ 800203c:	2000      	movs	r0, #0
+ 800203e:	b002      	add	sp, #8
+ 8002040:	4770      	bx	lr
+
+08002042 <MX_DMA_Init>:
+
+/**
+  * Enable DMA controller clock
+  */
+void MX_DMA_Init(void)
+{
+ 8002042:	b500      	push	{lr}
+ 8002044:	b085      	sub	sp, #20
+  SET_BIT(RCC->AHB1ENR, Periphs);
+ 8002046:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800204a:	6c9a      	ldr	r2, [r3, #72]	; 0x48
+ 800204c:	f042 0204 	orr.w	r2, r2, #4
+ 8002050:	649a      	str	r2, [r3, #72]	; 0x48
+  tmpreg = READ_BIT(RCC->AHB1ENR, Periphs);
+ 8002052:	6c9a      	ldr	r2, [r3, #72]	; 0x48
+ 8002054:	f002 0204 	and.w	r2, r2, #4
+ 8002058:	9203      	str	r2, [sp, #12]
+  (void)tmpreg;
+ 800205a:	9a03      	ldr	r2, [sp, #12]
+  SET_BIT(RCC->AHB1ENR, Periphs);
+ 800205c:	6c9a      	ldr	r2, [r3, #72]	; 0x48
+ 800205e:	f042 0201 	orr.w	r2, r2, #1
+ 8002062:	649a      	str	r2, [r3, #72]	; 0x48
+  tmpreg = READ_BIT(RCC->AHB1ENR, Periphs);
+ 8002064:	6c9a      	ldr	r2, [r3, #72]	; 0x48
+ 8002066:	f002 0201 	and.w	r2, r2, #1
+ 800206a:	9202      	str	r2, [sp, #8]
+  (void)tmpreg;
+ 800206c:	9a02      	ldr	r2, [sp, #8]
+  SET_BIT(RCC->AHB1ENR, Periphs);
+ 800206e:	6c9a      	ldr	r2, [r3, #72]	; 0x48
+ 8002070:	f042 0202 	orr.w	r2, r2, #2
+ 8002074:	649a      	str	r2, [r3, #72]	; 0x48
+  tmpreg = READ_BIT(RCC->AHB1ENR, Periphs);
+ 8002076:	6c9b      	ldr	r3, [r3, #72]	; 0x48
+ 8002078:	f003 0302 	and.w	r3, r3, #2
+ 800207c:	9301      	str	r3, [sp, #4]
+  (void)tmpreg;
+ 800207e:	9b01      	ldr	r3, [sp, #4]
+  __HAL_RCC_DMA1_CLK_ENABLE();
+  __HAL_RCC_DMA2_CLK_ENABLE();
+  /* DMA interrupt init */
+
+  // **** TIM1_CH2 WS2812B @ PA-9
+  HAL_NVIC_SetPriority(DMA1_Channel1_IRQn, 0, 0);
+ 8002080:	2200      	movs	r2, #0
+ 8002082:	4611      	mov	r1, r2
+ 8002084:	200b      	movs	r0, #11
+ 8002086:	f006 fdc9 	bl	8008c1c <HAL_NVIC_SetPriority>
+  HAL_NVIC_EnableIRQ(DMA1_Channel1_IRQn);
+ 800208a:	200b      	movs	r0, #11
+ 800208c:	f006 fdfe 	bl	8008c8c <HAL_NVIC_EnableIRQ>
+
+  // **** SPI1
+  /* DMA1_Channel2_IRQn interrupt configuration */
+  HAL_NVIC_SetPriority(DMA1_Channel2_IRQn, 0, 0);
+ 8002090:	2200      	movs	r2, #0
+ 8002092:	4611      	mov	r1, r2
+ 8002094:	200c      	movs	r0, #12
+ 8002096:	f006 fdc1 	bl	8008c1c <HAL_NVIC_SetPriority>
+  HAL_NVIC_EnableIRQ(DMA1_Channel2_IRQn);
+ 800209a:	200c      	movs	r0, #12
+ 800209c:	f006 fdf6 	bl	8008c8c <HAL_NVIC_EnableIRQ>
+  /* DMA1_Channel3_IRQn interrupt configuration */
+  HAL_NVIC_SetPriority(DMA1_Channel3_IRQn, 0, 0);
+ 80020a0:	2200      	movs	r2, #0
+ 80020a2:	4611      	mov	r1, r2
+ 80020a4:	200d      	movs	r0, #13
+ 80020a6:	f006 fdb9 	bl	8008c1c <HAL_NVIC_SetPriority>
+  HAL_NVIC_EnableIRQ(DMA1_Channel3_IRQn);
+ 80020aa:	200d      	movs	r0, #13
+ 80020ac:	f006 fdee 	bl	8008c8c <HAL_NVIC_EnableIRQ>
+  // **** SPI1
+
+  // **** I2C2
+  /* DMA1_Channel4_IRQn interrupt configuration */
+  HAL_NVIC_SetPriority(DMA1_Channel4_IRQn, 0, 0);
+ 80020b0:	2200      	movs	r2, #0
+ 80020b2:	4611      	mov	r1, r2
+ 80020b4:	200e      	movs	r0, #14
+ 80020b6:	f006 fdb1 	bl	8008c1c <HAL_NVIC_SetPriority>
+  HAL_NVIC_EnableIRQ(DMA1_Channel4_IRQn);
+ 80020ba:	200e      	movs	r0, #14
+ 80020bc:	f006 fde6 	bl	8008c8c <HAL_NVIC_EnableIRQ>
+  /* DMA1_Channel5_IRQn interrupt configuration */
+  HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 0, 0);
+ 80020c0:	2200      	movs	r2, #0
+ 80020c2:	4611      	mov	r1, r2
+ 80020c4:	200f      	movs	r0, #15
+ 80020c6:	f006 fda9 	bl	8008c1c <HAL_NVIC_SetPriority>
+  HAL_NVIC_EnableIRQ(DMA1_Channel5_IRQn);
+ 80020ca:	200f      	movs	r0, #15
+ 80020cc:	f006 fdde 	bl	8008c8c <HAL_NVIC_EnableIRQ>
+  // **** I2C2
+
+  // **** USART2
+  /* DMA1_Channel6_IRQn interrupt configuration */
+  HAL_NVIC_SetPriority(DMA1_Channel6_IRQn, 0, 0);
+ 80020d0:	2200      	movs	r2, #0
+ 80020d2:	4611      	mov	r1, r2
+ 80020d4:	2010      	movs	r0, #16
+ 80020d6:	f006 fda1 	bl	8008c1c <HAL_NVIC_SetPriority>
+  HAL_NVIC_EnableIRQ(DMA1_Channel6_IRQn);
+ 80020da:	2010      	movs	r0, #16
+ 80020dc:	f006 fdd6 	bl	8008c8c <HAL_NVIC_EnableIRQ>
+  /* DMA1_Channel7_IRQn interrupt configuration */
+  HAL_NVIC_SetPriority(DMA1_Channel7_IRQn, 0, 0);
+ 80020e0:	2200      	movs	r2, #0
+ 80020e2:	4611      	mov	r1, r2
+ 80020e4:	2011      	movs	r0, #17
+ 80020e6:	f006 fd99 	bl	8008c1c <HAL_NVIC_SetPriority>
+  HAL_NVIC_EnableIRQ(DMA1_Channel7_IRQn);
+ 80020ea:	2011      	movs	r0, #17
+ 80020ec:	f006 fdce 	bl	8008c8c <HAL_NVIC_EnableIRQ>
+  // **** USART2
+
+  /* DMA2_Channel1_IRQn interrupt configuration */
+  HAL_NVIC_SetPriority(DMA2_Channel1_IRQn, 0, 0);
+ 80020f0:	2200      	movs	r2, #0
+ 80020f2:	4611      	mov	r1, r2
+ 80020f4:	2036      	movs	r0, #54	; 0x36
+ 80020f6:	f006 fd91 	bl	8008c1c <HAL_NVIC_SetPriority>
+  HAL_NVIC_EnableIRQ(DMA2_Channel1_IRQn);
+ 80020fa:	2036      	movs	r0, #54	; 0x36
+ 80020fc:	f006 fdc6 	bl	8008c8c <HAL_NVIC_EnableIRQ>
+
+
+}
+ 8002100:	b005      	add	sp, #20
+ 8002102:	f85d fb04 	ldr.w	pc, [sp], #4
+
+08002106 <FLASH_IF_INT_IsEmpty>:
+  int32_t status = FLASH_IF_MEM_EMPTY;
+  /* USER CODE BEGIN FLASH_IF_INT_IsEmpty_1 */
+
+  /* USER CODE END FLASH_IF_INT_IsEmpty_1 */
+  uint32_t index;
+  for (index = 0; index < uLength; index += 8)
+ 8002106:	2300      	movs	r3, #0
+ 8002108:	e001      	b.n	800210e <FLASH_IF_INT_IsEmpty+0x8>
+    if (*(uint64_t *)pStart != UINT64_MAX)
+    {
+      status = FLASH_IF_MEM_NOT_EMPTY;
+      break;
+    }
+    pStart = (void *)((uint32_t)pStart + 8U);
+ 800210a:	3008      	adds	r0, #8
+  for (index = 0; index < uLength; index += 8)
+ 800210c:	3308      	adds	r3, #8
+ 800210e:	428b      	cmp	r3, r1
+ 8002110:	d20a      	bcs.n	8002128 <FLASH_IF_INT_IsEmpty+0x22>
+    if (*(uint64_t *)pStart != UINT64_MAX)
+ 8002112:	6842      	ldr	r2, [r0, #4]
+ 8002114:	f8d0 c000 	ldr.w	ip, [r0]
+ 8002118:	f1b2 3fff 	cmp.w	r2, #4294967295
+ 800211c:	bf08      	it	eq
+ 800211e:	f1bc 3fff 	cmpeq.w	ip, #4294967295
+ 8002122:	d0f2      	beq.n	800210a <FLASH_IF_INT_IsEmpty+0x4>
+      status = FLASH_IF_MEM_NOT_EMPTY;
+ 8002124:	2001      	movs	r0, #1
+  }
+  /* USER CODE BEGIN FLASH_IF_INT_IsEmpty_2 */
+
+  /* USER CODE END FLASH_IF_INT_IsEmpty_2 */
+  return status;
+}
+ 8002126:	4770      	bx	lr
+  int32_t status = FLASH_IF_MEM_EMPTY;
+ 8002128:	2000      	movs	r0, #0
+ 800212a:	4770      	bx	lr
+
+0800212c <FLASH_IF_INT_Read>:
+  if ((pDestination == NULL) || (pSource == NULL))
+ 800212c:	b130      	cbz	r0, 800213c <FLASH_IF_INT_Read+0x10>
+{
+ 800212e:	b508      	push	{r3, lr}
+  if ((pDestination == NULL) || (pSource == NULL))
+ 8002130:	b139      	cbz	r1, 8002142 <FLASH_IF_INT_Read+0x16>
+  UTIL_MEM_cpy_8(pDestination, pSource, uLength);
+ 8002132:	b292      	uxth	r2, r2
+ 8002134:	f014 fe16 	bl	8016d64 <UTIL_MEM_cpy_8>
+  return ret_status;
+ 8002138:	2000      	movs	r0, #0
+}
+ 800213a:	bd08      	pop	{r3, pc}
+    return FLASH_IF_PARAM_ERROR;
+ 800213c:	f06f 0005 	mvn.w	r0, #5
+}
+ 8002140:	4770      	bx	lr
+    return FLASH_IF_PARAM_ERROR;
+ 8002142:	f06f 0005 	mvn.w	r0, #5
+ 8002146:	e7f8      	b.n	800213a <FLASH_IF_INT_Read+0xe>
+
+08002148 <FLASH_IF_INT_Clear_Error>:
+
+static FLASH_IF_StatusTypedef FLASH_IF_INT_Clear_Error(void)
+{
+ 8002148:	b508      	push	{r3, lr}
+  FLASH_IF_StatusTypedef ret_status = FLASH_IF_LOCK_ERROR;
+  /* USER CODE BEGIN FLASH_IF_INT_Clear_Error_1 */
+
+  /* USER CODE END FLASH_IF_INT_Clear_Error_1 */
+  /* Unlock the Program memory */
+  if (HAL_FLASH_Unlock() == HAL_OK)
+ 800214a:	f007 f85b 	bl	8009204 <HAL_FLASH_Unlock>
+ 800214e:	b978      	cbnz	r0, 8002170 <FLASH_IF_INT_Clear_Error+0x28>
+  {
+    /* Clear all FLASH flags */
+    __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_ALL_ERRORS);
+ 8002150:	4b09      	ldr	r3, [pc, #36]	; (8002178 <FLASH_IF_INT_Clear_Error+0x30>)
+ 8002152:	699a      	ldr	r2, [r3, #24]
+ 8002154:	f042 4240 	orr.w	r2, r2, #3221225472	; 0xc0000000
+ 8002158:	619a      	str	r2, [r3, #24]
+ 800215a:	f24c 32fa 	movw	r2, #50170	; 0xc3fa
+ 800215e:	611a      	str	r2, [r3, #16]
+    /* Unlock the Program memory */
+    if (HAL_FLASH_Lock() == HAL_OK)
+ 8002160:	f007 f868 	bl	8009234 <HAL_FLASH_Lock>
+ 8002164:	b908      	cbnz	r0, 800216a <FLASH_IF_INT_Clear_Error+0x22>
+    {
+      ret_status = FLASH_IF_OK;
+ 8002166:	2000      	movs	r0, #0
+  }
+  /* USER CODE BEGIN FLASH_IF_INT_Clear_Error_2 */
+
+  /* USER CODE END FLASH_IF_INT_Clear_Error_2 */
+  return ret_status;
+}
+ 8002168:	bd08      	pop	{r3, pc}
+  FLASH_IF_StatusTypedef ret_status = FLASH_IF_LOCK_ERROR;
+ 800216a:	f06f 0004 	mvn.w	r0, #4
+ 800216e:	e7fb      	b.n	8002168 <FLASH_IF_INT_Clear_Error+0x20>
+ 8002170:	f06f 0004 	mvn.w	r0, #4
+ 8002174:	e7f8      	b.n	8002168 <FLASH_IF_INT_Clear_Error+0x20>
+ 8002176:	bf00      	nop
+ 8002178:	58004000 	.word	0x58004000
+
+0800217c <FLASH_IF_INT_Erase>:
+{
+ 800217c:	b570      	push	{r4, r5, r6, lr}
+ 800217e:	b084      	sub	sp, #16
+  uint32_t page_error = 0U;
+ 8002180:	2300      	movs	r3, #0
+ 8002182:	9303      	str	r3, [sp, #12]
+  if (pStart == NULL)
+ 8002184:	2800      	cmp	r0, #0
+ 8002186:	d039      	beq.n	80021fc <FLASH_IF_INT_Erase+0x80>
+ 8002188:	460e      	mov	r6, r1
+ 800218a:	4604      	mov	r4, r0
+  ret_status = FLASH_IF_INT_Clear_Error();
+ 800218c:	f7ff ffdc 	bl	8002148 <FLASH_IF_INT_Clear_Error>
+  if (ret_status == FLASH_IF_OK)
+ 8002190:	4605      	mov	r5, r0
+ 8002192:	b110      	cbz	r0, 800219a <FLASH_IF_INT_Erase+0x1e>
+}
+ 8002194:	4628      	mov	r0, r5
+ 8002196:	b004      	add	sp, #16
+ 8002198:	bd70      	pop	{r4, r5, r6, pc}
+    if (HAL_FLASH_Unlock() == HAL_OK)
+ 800219a:	f007 f833 	bl	8009204 <HAL_FLASH_Unlock>
+ 800219e:	bb80      	cbnz	r0, 8002202 <FLASH_IF_INT_Erase+0x86>
+      erase_init.TypeErase = FLASH_TYPEERASE_PAGES;
+ 80021a0:	2302      	movs	r3, #2
+ 80021a2:	9300      	str	r3, [sp, #0]
+      erase_init.Page = PAGE_INDEX(uStart);
+ 80021a4:	f104 4378 	add.w	r3, r4, #4160749568	; 0xf8000000
+ 80021a8:	4817      	ldr	r0, [pc, #92]	; (8002208 <FLASH_IF_INT_Erase+0x8c>)
+ 80021aa:	f8d0 15e0 	ldr.w	r1, [r0, #1504]	; 0x5e0
+ 80021ae:	4a17      	ldr	r2, [pc, #92]	; (800220c <FLASH_IF_INT_Erase+0x90>)
+ 80021b0:	ea02 2181 	and.w	r1, r2, r1, lsl #10
+ 80021b4:	fbb3 fcf1 	udiv	ip, r3, r1
+ 80021b8:	fb01 331c 	mls	r3, r1, ip, r3
+ 80021bc:	0adb      	lsrs	r3, r3, #11
+ 80021be:	9301      	str	r3, [sp, #4]
+      erase_init.NbPages = PAGE_INDEX(uStart + uLength - 1U) - erase_init.Page + 1U;
+ 80021c0:	19a1      	adds	r1, r4, r6
+ 80021c2:	f101 4178 	add.w	r1, r1, #4160749568	; 0xf8000000
+ 80021c6:	3901      	subs	r1, #1
+ 80021c8:	f8d0 05e0 	ldr.w	r0, [r0, #1504]	; 0x5e0
+ 80021cc:	ea02 2280 	and.w	r2, r2, r0, lsl #10
+ 80021d0:	fbb1 f0f2 	udiv	r0, r1, r2
+ 80021d4:	fb02 1110 	mls	r1, r2, r0, r1
+ 80021d8:	ebc3 23d1 	rsb	r3, r3, r1, lsr #11
+ 80021dc:	3301      	adds	r3, #1
+ 80021de:	9302      	str	r3, [sp, #8]
+      hal_status = HAL_FLASHEx_Erase(&erase_init, &page_error);
+ 80021e0:	a903      	add	r1, sp, #12
+ 80021e2:	4668      	mov	r0, sp
+ 80021e4:	f007 f8f2 	bl	80093cc <HAL_FLASHEx_Erase>
+      if (hal_status != HAL_OK)
+ 80021e8:	b118      	cbz	r0, 80021f2 <FLASH_IF_INT_Erase+0x76>
+        ret_status = (hal_status == HAL_BUSY) ? FLASH_IF_BUSY : FLASH_IF_ERASE_ERROR;
+ 80021ea:	2802      	cmp	r0, #2
+ 80021ec:	d004      	beq.n	80021f8 <FLASH_IF_INT_Erase+0x7c>
+ 80021ee:	f06f 0501 	mvn.w	r5, #1
+      HAL_FLASH_Lock();
+ 80021f2:	f007 f81f 	bl	8009234 <HAL_FLASH_Lock>
+ 80021f6:	e7cd      	b.n	8002194 <FLASH_IF_INT_Erase+0x18>
+        ret_status = (hal_status == HAL_BUSY) ? FLASH_IF_BUSY : FLASH_IF_ERASE_ERROR;
+ 80021f8:	2501      	movs	r5, #1
+ 80021fa:	e7fa      	b.n	80021f2 <FLASH_IF_INT_Erase+0x76>
+    return FLASH_IF_PARAM_ERROR;
+ 80021fc:	f06f 0505 	mvn.w	r5, #5
+ 8002200:	e7c8      	b.n	8002194 <FLASH_IF_INT_Erase+0x18>
+      ret_status = FLASH_IF_LOCK_ERROR;
+ 8002202:	f06f 0504 	mvn.w	r5, #4
+ 8002206:	e7c5      	b.n	8002194 <FLASH_IF_INT_Erase+0x18>
+ 8002208:	1fff7000 	.word	0x1fff7000
+ 800220c:	03fffc00 	.word	0x03fffc00
+
+08002210 <FLASH_IF_INT_Write>:
+{
+ 8002210:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8002214:	b089      	sub	sp, #36	; 0x24
+ 8002216:	9003      	str	r0, [sp, #12]
+ 8002218:	9204      	str	r2, [sp, #16]
+  uint32_t uSource = (uint32_t)pSource;
+ 800221a:	9101      	str	r1, [sp, #4]
+  if ((pDestination == NULL) || (pSource == NULL) || !IS_ADDR_ALIGNED_64BITS(uLength)
+ 800221c:	2800      	cmp	r0, #0
+ 800221e:	f000 80a9 	beq.w	8002374 <FLASH_IF_INT_Write+0x164>
+ 8002222:	4683      	mov	fp, r0
+ 8002224:	2900      	cmp	r1, #0
+ 8002226:	f000 80a9 	beq.w	800237c <FLASH_IF_INT_Write+0x16c>
+ 800222a:	f012 0f07 	tst.w	r2, #7
+ 800222e:	f040 80a9 	bne.w	8002384 <FLASH_IF_INT_Write+0x174>
+      || !IS_ADDR_ALIGNED_64BITS((uint32_t)pDestination))
+ 8002232:	f010 0307 	ands.w	r3, r0, #7
+ 8002236:	9305      	str	r3, [sp, #20]
+ 8002238:	f040 80a8 	bne.w	800238c <FLASH_IF_INT_Write+0x17c>
+  ret_status = FLASH_IF_INT_Clear_Error();
+ 800223c:	f7ff ff84 	bl	8002148 <FLASH_IF_INT_Clear_Error>
+  if (ret_status == FLASH_IF_OK)
+ 8002240:	9002      	str	r0, [sp, #8]
+ 8002242:	b118      	cbz	r0, 800224c <FLASH_IF_INT_Write+0x3c>
+}
+ 8002244:	9802      	ldr	r0, [sp, #8]
+ 8002246:	b009      	add	sp, #36	; 0x24
+ 8002248:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+    if (HAL_FLASH_Unlock() == HAL_OK)
+ 800224c:	f006 ffda 	bl	8009204 <HAL_FLASH_Unlock>
+ 8002250:	2800      	cmp	r0, #0
+ 8002252:	f040 809f 	bne.w	8002394 <FLASH_IF_INT_Write+0x184>
+      start_page_index = PAGE_INDEX(uDest);
+ 8002256:	9c03      	ldr	r4, [sp, #12]
+ 8002258:	f104 4278 	add.w	r2, r4, #4160749568	; 0xf8000000
+ 800225c:	4b4f      	ldr	r3, [pc, #316]	; (800239c <FLASH_IF_INT_Write+0x18c>)
+ 800225e:	f8d3 35e0 	ldr.w	r3, [r3, #1504]	; 0x5e0
+ 8002262:	494f      	ldr	r1, [pc, #316]	; (80023a0 <FLASH_IF_INT_Write+0x190>)
+ 8002264:	ea01 2183 	and.w	r1, r1, r3, lsl #10
+ 8002268:	fbb2 f3f1 	udiv	r3, r2, r1
+ 800226c:	fb01 2213 	mls	r2, r1, r3, r2
+ 8002270:	0ad3      	lsrs	r3, r2, #11
+ 8002272:	9306      	str	r3, [sp, #24]
+      number_pages = PAGE_INDEX(uDest + uLength - 1U) - start_page_index + 1U;
+ 8002274:	9b04      	ldr	r3, [sp, #16]
+ 8002276:	18e3      	adds	r3, r4, r3
+ 8002278:	f103 4378 	add.w	r3, r3, #4160749568	; 0xf8000000
+ 800227c:	3b01      	subs	r3, #1
+ 800227e:	fbb3 f0f1 	udiv	r0, r3, r1
+ 8002282:	fb01 3310 	mls	r3, r1, r0, r3
+ 8002286:	0adb      	lsrs	r3, r3, #11
+ 8002288:	eba3 23d2 	sub.w	r3, r3, r2, lsr #11
+ 800228c:	3301      	adds	r3, #1
+ 800228e:	9307      	str	r3, [sp, #28]
+      if (number_pages > 1)
+ 8002290:	2b01      	cmp	r3, #1
+ 8002292:	d906      	bls.n	80022a2 <FLASH_IF_INT_Write+0x92>
+        length = FLASH_PAGE_SIZE - (uDest % FLASH_PAGE_SIZE);
+ 8002294:	f3c4 090a 	ubfx	r9, r4, #0, #11
+ 8002298:	f5c9 6900 	rsb	r9, r9, #2048	; 0x800
+            ret_status = FLASH_IF_WRITE_ERROR;
+ 800229c:	f8dd a018 	ldr.w	sl, [sp, #24]
+ 80022a0:	e02f      	b.n	8002302 <FLASH_IF_INT_Write+0xf2>
+  uint32_t length = uLength;
+ 80022a2:	f8dd 9010 	ldr.w	r9, [sp, #16]
+ 80022a6:	e7f9      	b.n	800229c <FLASH_IF_INT_Write+0x8c>
+          current_length = length;
+ 80022a8:	46c8      	mov	r8, r9
+          current_source = uSource;
+ 80022aa:	9f01      	ldr	r7, [sp, #4]
+          current_dest = uDest;
+ 80022ac:	465c      	mov	r4, fp
+        for (address_offset = 0U; address_offset < current_length; address_offset += 8U)
+ 80022ae:	9d05      	ldr	r5, [sp, #20]
+ 80022b0:	4545      	cmp	r5, r8
+ 80022b2:	d215      	bcs.n	80022e0 <FLASH_IF_INT_Write+0xd0>
+                                *((uint64_t *)(current_source + address_offset))) == HAL_OK)
+ 80022b4:	19ee      	adds	r6, r5, r7
+          if (HAL_FLASH_Program(FLASH_TYPEPROGRAM_DOUBLEWORD, current_dest,
+ 80022b6:	e9d6 2300 	ldrd	r2, r3, [r6]
+ 80022ba:	4621      	mov	r1, r4
+ 80022bc:	2001      	movs	r0, #1
+ 80022be:	f006 fffd 	bl	80092bc <HAL_FLASH_Program>
+ 80022c2:	b950      	cbnz	r0, 80022da <FLASH_IF_INT_Write+0xca>
+            if (*(uint64_t *)current_dest != *(uint64_t *)(current_source + address_offset))
+ 80022c4:	6820      	ldr	r0, [r4, #0]
+ 80022c6:	6862      	ldr	r2, [r4, #4]
+ 80022c8:	59e9      	ldr	r1, [r5, r7]
+ 80022ca:	6873      	ldr	r3, [r6, #4]
+ 80022cc:	429a      	cmp	r2, r3
+ 80022ce:	bf08      	it	eq
+ 80022d0:	4288      	cmpeq	r0, r1
+ 80022d2:	d141      	bne.n	8002358 <FLASH_IF_INT_Write+0x148>
+            current_dest = current_dest + 8U;
+ 80022d4:	3408      	adds	r4, #8
+        for (address_offset = 0U; address_offset < current_length; address_offset += 8U)
+ 80022d6:	3508      	adds	r5, #8
+ 80022d8:	e7ea      	b.n	80022b0 <FLASH_IF_INT_Write+0xa0>
+            ret_status = FLASH_IF_WRITE_ERROR;
+ 80022da:	f06f 0303 	mvn.w	r3, #3
+ 80022de:	9302      	str	r3, [sp, #8]
+        if (ret_status != FLASH_IF_OK)
+ 80022e0:	9b02      	ldr	r3, [sp, #8]
+ 80022e2:	2b00      	cmp	r3, #0
+ 80022e4:	d13f      	bne.n	8002366 <FLASH_IF_INT_Write+0x156>
+        uDest += length;
+ 80022e6:	44cb      	add	fp, r9
+        uSource += length;
+ 80022e8:	9b01      	ldr	r3, [sp, #4]
+ 80022ea:	444b      	add	r3, r9
+ 80022ec:	9301      	str	r3, [sp, #4]
+        length = ((uLength - length) > FLASH_PAGE_SIZE) ? FLASH_PAGE_SIZE : uLength - length;
+ 80022ee:	9b04      	ldr	r3, [sp, #16]
+ 80022f0:	eba3 0909 	sub.w	r9, r3, r9
+ 80022f4:	f5b9 6f00 	cmp.w	r9, #2048	; 0x800
+ 80022f8:	bf28      	it	cs
+ 80022fa:	f44f 6900 	movcs.w	r9, #2048	; 0x800
+      for (page_index = start_page_index; page_index < (start_page_index + number_pages); page_index++)
+ 80022fe:	f10a 0a01 	add.w	sl, sl, #1
+ 8002302:	9b06      	ldr	r3, [sp, #24]
+ 8002304:	9a07      	ldr	r2, [sp, #28]
+ 8002306:	4413      	add	r3, r2
+ 8002308:	4553      	cmp	r3, sl
+ 800230a:	d92c      	bls.n	8002366 <FLASH_IF_INT_Write+0x156>
+        page_address = page_index * FLASH_PAGE_SIZE + FLASH_BASE;
+ 800230c:	f50a 3480 	add.w	r4, sl, #65536	; 0x10000
+ 8002310:	02e4      	lsls	r4, r4, #11
+        if (FLASH_IF_INT_IsEmpty(pDestination, length) != FLASH_IF_MEM_EMPTY)
+ 8002312:	4649      	mov	r1, r9
+ 8002314:	9803      	ldr	r0, [sp, #12]
+ 8002316:	f7ff fef6 	bl	8002106 <FLASH_IF_INT_IsEmpty>
+ 800231a:	2800      	cmp	r0, #0
+ 800231c:	d0c4      	beq.n	80022a8 <FLASH_IF_INT_Write+0x98>
+          if (pAllocatedBuffer == NULL)
+ 800231e:	4b21      	ldr	r3, [pc, #132]	; (80023a4 <FLASH_IF_INT_Write+0x194>)
+ 8002320:	6818      	ldr	r0, [r3, #0]
+ 8002322:	b1e8      	cbz	r0, 8002360 <FLASH_IF_INT_Write+0x150>
+          FLASH_IF_INT_Read(pAllocatedBuffer, (const void *)page_address, FLASH_PAGE_SIZE);
+ 8002324:	f44f 6200 	mov.w	r2, #2048	; 0x800
+ 8002328:	4621      	mov	r1, r4
+ 800232a:	f7ff feff 	bl	800212c <FLASH_IF_INT_Read>
+          UTIL_MEM_cpy_8(&pAllocatedBuffer[uDest % FLASH_PAGE_SIZE], (const void *)uSource, length);
+ 800232e:	4b1d      	ldr	r3, [pc, #116]	; (80023a4 <FLASH_IF_INT_Write+0x194>)
+ 8002330:	681b      	ldr	r3, [r3, #0]
+ 8002332:	f3cb 000a 	ubfx	r0, fp, #0, #11
+ 8002336:	fa1f f289 	uxth.w	r2, r9
+ 800233a:	9901      	ldr	r1, [sp, #4]
+ 800233c:	4418      	add	r0, r3
+ 800233e:	f014 fd11 	bl	8016d64 <UTIL_MEM_cpy_8>
+          if (FLASH_IF_INT_Erase((void *)page_address, FLASH_PAGE_SIZE) != FLASH_IF_OK)
+ 8002342:	f44f 6100 	mov.w	r1, #2048	; 0x800
+ 8002346:	4620      	mov	r0, r4
+ 8002348:	f7ff ff18 	bl	800217c <FLASH_IF_INT_Erase>
+ 800234c:	b970      	cbnz	r0, 800236c <FLASH_IF_INT_Write+0x15c>
+          current_source = (uint32_t)pAllocatedBuffer;
+ 800234e:	4b15      	ldr	r3, [pc, #84]	; (80023a4 <FLASH_IF_INT_Write+0x194>)
+ 8002350:	681f      	ldr	r7, [r3, #0]
+          current_length = FLASH_PAGE_SIZE;
+ 8002352:	f44f 6800 	mov.w	r8, #2048	; 0x800
+ 8002356:	e7aa      	b.n	80022ae <FLASH_IF_INT_Write+0x9e>
+              ret_status = FLASH_IF_WRITE_ERROR;
+ 8002358:	f06f 0303 	mvn.w	r3, #3
+ 800235c:	9302      	str	r3, [sp, #8]
+ 800235e:	e7bf      	b.n	80022e0 <FLASH_IF_INT_Write+0xd0>
+            ret_status = FLASH_IF_PARAM_ERROR;
+ 8002360:	f06f 0305 	mvn.w	r3, #5
+ 8002364:	9302      	str	r3, [sp, #8]
+      HAL_FLASH_Lock();
+ 8002366:	f006 ff65 	bl	8009234 <HAL_FLASH_Lock>
+ 800236a:	e76b      	b.n	8002244 <FLASH_IF_INT_Write+0x34>
+            ret_status = FLASH_IF_ERASE_ERROR;
+ 800236c:	f06f 0301 	mvn.w	r3, #1
+ 8002370:	9302      	str	r3, [sp, #8]
+ 8002372:	e7f8      	b.n	8002366 <FLASH_IF_INT_Write+0x156>
+    return FLASH_IF_PARAM_ERROR;
+ 8002374:	f06f 0305 	mvn.w	r3, #5
+ 8002378:	9302      	str	r3, [sp, #8]
+ 800237a:	e763      	b.n	8002244 <FLASH_IF_INT_Write+0x34>
+ 800237c:	f06f 0305 	mvn.w	r3, #5
+ 8002380:	9302      	str	r3, [sp, #8]
+ 8002382:	e75f      	b.n	8002244 <FLASH_IF_INT_Write+0x34>
+ 8002384:	f06f 0305 	mvn.w	r3, #5
+ 8002388:	9302      	str	r3, [sp, #8]
+ 800238a:	e75b      	b.n	8002244 <FLASH_IF_INT_Write+0x34>
+ 800238c:	f06f 0305 	mvn.w	r3, #5
+ 8002390:	9302      	str	r3, [sp, #8]
+ 8002392:	e757      	b.n	8002244 <FLASH_IF_INT_Write+0x34>
+      ret_status = FLASH_IF_LOCK_ERROR;
+ 8002394:	f06f 0304 	mvn.w	r3, #4
+ 8002398:	9302      	str	r3, [sp, #8]
+ 800239a:	e753      	b.n	8002244 <FLASH_IF_INT_Write+0x34>
+ 800239c:	1fff7000 	.word	0x1fff7000
+ 80023a0:	03fffc00 	.word	0x03fffc00
+ 80023a4:	20000950 	.word	0x20000950
+
+080023a8 <FLASH_IF_Init>:
+  pAllocatedBuffer = (uint8_t *)pAllocRamBuffer;
+ 80023a8:	4b01      	ldr	r3, [pc, #4]	; (80023b0 <FLASH_IF_Init+0x8>)
+ 80023aa:	6018      	str	r0, [r3, #0]
+}
+ 80023ac:	2000      	movs	r0, #0
+ 80023ae:	4770      	bx	lr
+ 80023b0:	20000950 	.word	0x20000950
+
+080023b4 <FLASH_IF_Write>:
+  if (IS_FLASH_MAIN_MEM_ADDRESS((uint32_t)pDestination))
+ 80023b4:	f1b0 6f00 	cmp.w	r0, #134217728	; 0x8000000
+ 80023b8:	d30e      	bcc.n	80023d8 <FLASH_IF_Write+0x24>
+{
+ 80023ba:	b510      	push	{r4, lr}
+  if (IS_FLASH_MAIN_MEM_ADDRESS((uint32_t)pDestination))
+ 80023bc:	4b09      	ldr	r3, [pc, #36]	; (80023e4 <FLASH_IF_Write+0x30>)
+ 80023be:	f8d3 45e0 	ldr.w	r4, [r3, #1504]	; 0x5e0
+ 80023c2:	4b09      	ldr	r3, [pc, #36]	; (80023e8 <FLASH_IF_Write+0x34>)
+ 80023c4:	ea03 2384 	and.w	r3, r3, r4, lsl #10
+ 80023c8:	f103 6300 	add.w	r3, r3, #134217728	; 0x8000000
+ 80023cc:	3b01      	subs	r3, #1
+ 80023ce:	4298      	cmp	r0, r3
+ 80023d0:	d805      	bhi.n	80023de <FLASH_IF_Write+0x2a>
+    ret_status = FLASH_IF_INT_Write(pDestination, pSource, uLength);
+ 80023d2:	f7ff ff1d 	bl	8002210 <FLASH_IF_INT_Write>
+}
+ 80023d6:	bd10      	pop	{r4, pc}
+  FLASH_IF_StatusTypedef ret_status = FLASH_IF_ERROR;
+ 80023d8:	f04f 30ff 	mov.w	r0, #4294967295
+}
+ 80023dc:	4770      	bx	lr
+  FLASH_IF_StatusTypedef ret_status = FLASH_IF_ERROR;
+ 80023de:	f04f 30ff 	mov.w	r0, #4294967295
+ 80023e2:	e7f8      	b.n	80023d6 <FLASH_IF_Write+0x22>
+ 80023e4:	1fff7000 	.word	0x1fff7000
+ 80023e8:	03fffc00 	.word	0x03fffc00
+
+080023ec <FLASH_IF_Read>:
+  if (IS_FLASH_MAIN_MEM_ADDRESS((uint32_t)pSource))
+ 80023ec:	f1b1 6f00 	cmp.w	r1, #134217728	; 0x8000000
+ 80023f0:	d30e      	bcc.n	8002410 <FLASH_IF_Read+0x24>
+{
+ 80023f2:	b510      	push	{r4, lr}
+  if (IS_FLASH_MAIN_MEM_ADDRESS((uint32_t)pSource))
+ 80023f4:	4b09      	ldr	r3, [pc, #36]	; (800241c <FLASH_IF_Read+0x30>)
+ 80023f6:	f8d3 45e0 	ldr.w	r4, [r3, #1504]	; 0x5e0
+ 80023fa:	4b09      	ldr	r3, [pc, #36]	; (8002420 <FLASH_IF_Read+0x34>)
+ 80023fc:	ea03 2384 	and.w	r3, r3, r4, lsl #10
+ 8002400:	f103 6300 	add.w	r3, r3, #134217728	; 0x8000000
+ 8002404:	3b01      	subs	r3, #1
+ 8002406:	4299      	cmp	r1, r3
+ 8002408:	d805      	bhi.n	8002416 <FLASH_IF_Read+0x2a>
+    ret_status = FLASH_IF_INT_Read(pDestination, pSource, uLength);
+ 800240a:	f7ff fe8f 	bl	800212c <FLASH_IF_INT_Read>
+}
+ 800240e:	bd10      	pop	{r4, pc}
+  FLASH_IF_StatusTypedef ret_status = FLASH_IF_ERROR;
+ 8002410:	f04f 30ff 	mov.w	r0, #4294967295
+}
+ 8002414:	4770      	bx	lr
+  FLASH_IF_StatusTypedef ret_status = FLASH_IF_ERROR;
+ 8002416:	f04f 30ff 	mov.w	r0, #4294967295
+ 800241a:	e7f8      	b.n	800240e <FLASH_IF_Read+0x22>
+ 800241c:	1fff7000 	.word	0x1fff7000
+ 8002420:	03fffc00 	.word	0x03fffc00
+
+08002424 <FLASH_IF_Erase>:
+  if (IS_FLASH_MAIN_MEM_ADDRESS((uint32_t)pStart))
+ 8002424:	f1b0 6f00 	cmp.w	r0, #134217728	; 0x8000000
+ 8002428:	d30e      	bcc.n	8002448 <FLASH_IF_Erase+0x24>
+{
+ 800242a:	b508      	push	{r3, lr}
+  if (IS_FLASH_MAIN_MEM_ADDRESS((uint32_t)pStart))
+ 800242c:	4b09      	ldr	r3, [pc, #36]	; (8002454 <FLASH_IF_Erase+0x30>)
+ 800242e:	f8d3 25e0 	ldr.w	r2, [r3, #1504]	; 0x5e0
+ 8002432:	4b09      	ldr	r3, [pc, #36]	; (8002458 <FLASH_IF_Erase+0x34>)
+ 8002434:	ea03 2382 	and.w	r3, r3, r2, lsl #10
+ 8002438:	f103 6300 	add.w	r3, r3, #134217728	; 0x8000000
+ 800243c:	3b01      	subs	r3, #1
+ 800243e:	4298      	cmp	r0, r3
+ 8002440:	d805      	bhi.n	800244e <FLASH_IF_Erase+0x2a>
+    ret_status = FLASH_IF_INT_Erase(pStart, uLength);
+ 8002442:	f7ff fe9b 	bl	800217c <FLASH_IF_INT_Erase>
+}
+ 8002446:	bd08      	pop	{r3, pc}
+  FLASH_IF_StatusTypedef ret_status = FLASH_IF_ERROR;
+ 8002448:	f04f 30ff 	mov.w	r0, #4294967295
+}
+ 800244c:	4770      	bx	lr
+  FLASH_IF_StatusTypedef ret_status = FLASH_IF_ERROR;
+ 800244e:	f04f 30ff 	mov.w	r0, #4294967295
+ 8002452:	e7f8      	b.n	8002446 <FLASH_IF_Erase+0x22>
+ 8002454:	1fff7000 	.word	0x1fff7000
+ 8002458:	03fffc00 	.word	0x03fffc00
+
+0800245c <MX_GPIO_Init>:
+        * Output
+        * EVENT_OUT
+        * EXTI
+*/
+void MX_GPIO_Init(void)
+{
+ 800245c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8002460:	b088      	sub	sp, #32
+
+  GPIO_InitTypeDef GPIO_InitStruct = {0};
+ 8002462:	2400      	movs	r4, #0
+ 8002464:	9403      	str	r4, [sp, #12]
+ 8002466:	9404      	str	r4, [sp, #16]
+ 8002468:	9405      	str	r4, [sp, #20]
+ 800246a:	9406      	str	r4, [sp, #24]
+ 800246c:	9407      	str	r4, [sp, #28]
+  SET_BIT(RCC->AHB2ENR, Periphs);
+ 800246e:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8002472:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 8002474:	f042 0201 	orr.w	r2, r2, #1
+ 8002478:	64da      	str	r2, [r3, #76]	; 0x4c
+  tmpreg = READ_BIT(RCC->AHB2ENR, Periphs);
+ 800247a:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 800247c:	f002 0201 	and.w	r2, r2, #1
+ 8002480:	9202      	str	r2, [sp, #8]
+  (void)tmpreg;
+ 8002482:	9a02      	ldr	r2, [sp, #8]
+  SET_BIT(RCC->AHB2ENR, Periphs);
+ 8002484:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 8002486:	f042 0202 	orr.w	r2, r2, #2
+ 800248a:	64da      	str	r2, [r3, #76]	; 0x4c
+  tmpreg = READ_BIT(RCC->AHB2ENR, Periphs);
+ 800248c:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 800248e:	f002 0202 	and.w	r2, r2, #2
+ 8002492:	9201      	str	r2, [sp, #4]
+  (void)tmpreg;
+ 8002494:	9a01      	ldr	r2, [sp, #4]
+  SET_BIT(RCC->AHB2ENR, Periphs);
+ 8002496:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 8002498:	f042 0204 	orr.w	r2, r2, #4
+ 800249c:	64da      	str	r2, [r3, #76]	; 0x4c
+  tmpreg = READ_BIT(RCC->AHB2ENR, Periphs);
+ 800249e:	6cdb      	ldr	r3, [r3, #76]	; 0x4c
+ 80024a0:	f003 0304 	and.w	r3, r3, #4
+ 80024a4:	9300      	str	r3, [sp, #0]
+  (void)tmpreg;
+ 80024a6:	9b00      	ldr	r3, [sp, #0]
+  HAL_GPIO_WritePin(GPIOB, LED1_Pin|LED2_Pin|PROB2_Pin|PROB1_Pin
+                          |LED3_Pin, GPIO_PIN_RESET);
+#endif
+  /*Configure GPIO pin Output Level */
+#if defined(TOF_2)
+  HAL_GPIO_WritePin(TOF_C_XSHUT_GPIO_Port, TOF_C_XSHUT_Pin, GPIO_PIN_SET);
+ 80024a8:	4e36      	ldr	r6, [pc, #216]	; (8002584 <MX_GPIO_Init+0x128>)
+ 80024aa:	2201      	movs	r2, #1
+ 80024ac:	2108      	movs	r1, #8
+ 80024ae:	4630      	mov	r0, r6
+ 80024b0:	f007 f923 	bl	80096fa <HAL_GPIO_WritePin>
+  GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
+  GPIO_InitStruct.Pull = GPIO_PULLUP;
+  HAL_GPIO_Init(BUT3_GPIO_Port, &GPIO_InitStruct);
+#endif
+  /*Configure GPIO pin : PtPin */
+  GPIO_InitStruct.Pin = BUT2_Pin;
+ 80024b4:	2302      	movs	r3, #2
+ 80024b6:	9303      	str	r3, [sp, #12]
+  GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
+ 80024b8:	f44f 1704 	mov.w	r7, #2162688	; 0x210000
+ 80024bc:	9704      	str	r7, [sp, #16]
+  GPIO_InitStruct.Pull = GPIO_PULLUP;
+ 80024be:	2501      	movs	r5, #1
+ 80024c0:	9505      	str	r5, [sp, #20]
+  HAL_GPIO_Init(BUT2_GPIO_Port, &GPIO_InitStruct);
+ 80024c2:	a903      	add	r1, sp, #12
+ 80024c4:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 80024c8:	f006 ffc0 	bl	800944c <HAL_GPIO_Init>
+
+  /*Configure GPIO pin : PtPin */
+  GPIO_InitStruct.Pin = BUT1_Pin;
+ 80024cc:	9503      	str	r5, [sp, #12]
+  GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING_FALLING;
+ 80024ce:	f44f 1344 	mov.w	r3, #3211264	; 0x310000
+ 80024d2:	9304      	str	r3, [sp, #16]
+  GPIO_InitStruct.Pull = GPIO_PULLUP;
+ 80024d4:	9505      	str	r5, [sp, #20]
+  HAL_GPIO_Init(BUT1_GPIO_Port, &GPIO_InitStruct);
+ 80024d6:	a903      	add	r1, sp, #12
+ 80024d8:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 80024dc:	f006 ffb6 	bl	800944c <HAL_GPIO_Init>
+
+
+  /*Configure GPIO pins : TOF_C_INT_Pin */
+#if defined(TOF_1)
+  GPIO_InitStruct.Pin = TOF_C_INT_Pin;
+ 80024e0:	f04f 0820 	mov.w	r8, #32
+ 80024e4:	f8cd 800c 	str.w	r8, [sp, #12]
+  GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
+ 80024e8:	9704      	str	r7, [sp, #16]
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
+ 80024ea:	9405      	str	r4, [sp, #20]
+  HAL_GPIO_Init(TOF_C_INT_GPIO_Port, &GPIO_InitStruct);
+ 80024ec:	a903      	add	r1, sp, #12
+ 80024ee:	4630      	mov	r0, r6
+ 80024f0:	f006 ffac 	bl	800944c <HAL_GPIO_Init>
+#endif
+
+  /*Configure GPIO pins : TOF_L_INT_Pin */
+#if	defined(TOF_2)
+  GPIO_InitStruct.Pin = TOF_L_INT_Pin;
+ 80024f4:	f8cd 800c 	str.w	r8, [sp, #12]
+  GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
+ 80024f8:	9704      	str	r7, [sp, #16]
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
+ 80024fa:	9405      	str	r4, [sp, #20]
+  HAL_GPIO_Init(TOF_L_INT_GPIO_Port, &GPIO_InitStruct);
+ 80024fc:	a903      	add	r1, sp, #12
+ 80024fe:	4630      	mov	r0, r6
+ 8002500:	f006 ffa4 	bl	800944c <HAL_GPIO_Init>
+  HAL_GPIO_Init(TOF_R_INT_GPIO_Port, &GPIO_InitStruct);
+#endif
+
+  /*Configure GPIO pins : TOF_C_XSHUT_Pin */
+#if defined(TOF_1)
+  GPIO_InitStruct.Pin = TOF_C_XSHUT_Pin;
+ 8002504:	2308      	movs	r3, #8
+ 8002506:	9303      	str	r3, [sp, #12]
+  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ 8002508:	9504      	str	r5, [sp, #16]
+  GPIO_InitStruct.Pull = GPIO_PULLUP;
+ 800250a:	9505      	str	r5, [sp, #20]
+  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ 800250c:	9406      	str	r4, [sp, #24]
+  HAL_GPIO_Init(TOF_C_XSHUT_GPIO_Port, &GPIO_InitStruct);
+ 800250e:	a903      	add	r1, sp, #12
+ 8002510:	4630      	mov	r0, r6
+ 8002512:	f006 ff9b 	bl	800944c <HAL_GPIO_Init>
+#endif
+  /*Configure GPIO pins : TOF_L_XSHUT_Pin */
+#if	defined(TOF_2)
+  GPIO_InitStruct.Pin = TOF_L_XSHUT_Pin;
+ 8002516:	f44f 7300 	mov.w	r3, #512	; 0x200
+ 800251a:	9303      	str	r3, [sp, #12]
+  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ 800251c:	9504      	str	r5, [sp, #16]
+  GPIO_InitStruct.Pull = GPIO_PULLUP;
+ 800251e:	9505      	str	r5, [sp, #20]
+  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ 8002520:	9406      	str	r4, [sp, #24]
+  HAL_GPIO_Init(TOF_L_XSHUT_GPIO_Port, &GPIO_InitStruct);
+ 8002522:	a903      	add	r1, sp, #12
+ 8002524:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8002528:	f006 ff90 	bl	800944c <HAL_GPIO_Init>
+  HAL_GPIO_Init(TOF_R_XSHUT_GPIO_Port, &GPIO_InitStruct);
+#endif
+
+
+ /*Configure GPIO pins : PBPin PBPin PBPin */
+  GPIO_InitStruct.Pin = LED1_Pin;
+ 800252c:	2304      	movs	r3, #4
+ 800252e:	9303      	str	r3, [sp, #12]
+  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ 8002530:	9504      	str	r5, [sp, #16]
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
+ 8002532:	9405      	str	r4, [sp, #20]
+  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ 8002534:	9406      	str	r4, [sp, #24]
+  HAL_GPIO_Init(LED1_GPIO_Port, &GPIO_InitStruct);
+ 8002536:	a903      	add	r1, sp, #12
+ 8002538:	4630      	mov	r0, r6
+ 800253a:	f006 ff87 	bl	800944c <HAL_GPIO_Init>
+/* ==============   SOAP LEVEL DETECTION ========================= */
+#endif
+
+
+  /* EXTI interrupt init*/
+  HAL_NVIC_SetPriority(EXTI0_IRQn, 0, 0);
+ 800253e:	4622      	mov	r2, r4
+ 8002540:	4621      	mov	r1, r4
+ 8002542:	2006      	movs	r0, #6
+ 8002544:	f006 fb6a 	bl	8008c1c <HAL_NVIC_SetPriority>
+  HAL_NVIC_EnableIRQ(EXTI0_IRQn);
+ 8002548:	2006      	movs	r0, #6
+ 800254a:	f006 fb9f 	bl	8008c8c <HAL_NVIC_EnableIRQ>
+
+  HAL_NVIC_SetPriority(EXTI1_IRQn, 0, 0);
+ 800254e:	4622      	mov	r2, r4
+ 8002550:	4621      	mov	r1, r4
+ 8002552:	2007      	movs	r0, #7
+ 8002554:	f006 fb62 	bl	8008c1c <HAL_NVIC_SetPriority>
+  HAL_NVIC_EnableIRQ(EXTI1_IRQn);
+ 8002558:	2007      	movs	r0, #7
+ 800255a:	f006 fb97 	bl	8008c8c <HAL_NVIC_EnableIRQ>
+#if	defined(TOF_1)
+  HAL_NVIC_SetPriority(TOF_C_INT_EXTI_IRQn, 0, 0);
+ 800255e:	4622      	mov	r2, r4
+ 8002560:	4621      	mov	r1, r4
+ 8002562:	2016      	movs	r0, #22
+ 8002564:	f006 fb5a 	bl	8008c1c <HAL_NVIC_SetPriority>
+  HAL_NVIC_EnableIRQ(TOF_C_INT_EXTI_IRQn);
+ 8002568:	2016      	movs	r0, #22
+ 800256a:	f006 fb8f 	bl	8008c8c <HAL_NVIC_EnableIRQ>
+#endif
+
+#if	defined(TOF_2)
+  HAL_NVIC_SetPriority(TOF_L_INT_EXTI_IRQn, 0, 0);
+ 800256e:	4622      	mov	r2, r4
+ 8002570:	4621      	mov	r1, r4
+ 8002572:	2016      	movs	r0, #22
+ 8002574:	f006 fb52 	bl	8008c1c <HAL_NVIC_SetPriority>
+  HAL_NVIC_EnableIRQ(TOF_L_INT_EXTI_IRQn);
+ 8002578:	2016      	movs	r0, #22
+ 800257a:	f006 fb87 	bl	8008c8c <HAL_NVIC_EnableIRQ>
+
+#if	defined(TOF_3)
+  HAL_NVIC_SetPriority(TOF_R_INT_EXTI_IRQn, 0, 0);
+  HAL_NVIC_EnableIRQ(TOF_R_INT_EXTI_IRQn);
+#endif
+}
+ 800257e:	b008      	add	sp, #32
+ 8002580:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 8002584:	48000400 	.word	0x48000400
+
+08002588 <MX_I2C2_Init>:
+  * @brief I2C2 Initialization Function
+  * @param None
+  * @retval None
+  */
+void MX_I2C2_Init(void)
+{
+ 8002588:	b508      	push	{r3, lr}
+  /* USER CODE END I2C2_Init 0 */
+
+  /* USER CODE BEGIN I2C2_Init 1 */
+
+  /* USER CODE END I2C2_Init 1 */
+  hi2c2.Instance = I2C2;
+ 800258a:	4812      	ldr	r0, [pc, #72]	; (80025d4 <MX_I2C2_Init+0x4c>)
+ 800258c:	4b12      	ldr	r3, [pc, #72]	; (80025d8 <MX_I2C2_Init+0x50>)
+ 800258e:	6003      	str	r3, [r0, #0]
+  hi2c2.Init.Timing = 0x2010091A; //0x2010091A = 400K Fast Mode, 0x20303E5D, 100K Standard mode, 0x20000209 Fast Mode Plus, 1Mbps
+ 8002590:	4b12      	ldr	r3, [pc, #72]	; (80025dc <MX_I2C2_Init+0x54>)
+ 8002592:	6043      	str	r3, [r0, #4]
+  hi2c2.Init.OwnAddress1 = 0;
+ 8002594:	2300      	movs	r3, #0
+ 8002596:	6083      	str	r3, [r0, #8]
+  hi2c2.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ 8002598:	2201      	movs	r2, #1
+ 800259a:	60c2      	str	r2, [r0, #12]
+  hi2c2.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
+ 800259c:	6103      	str	r3, [r0, #16]
+  hi2c2.Init.OwnAddress2 = 0;
+ 800259e:	6143      	str	r3, [r0, #20]
+  hi2c2.Init.OwnAddress2Masks = I2C_OA2_NOMASK;
+ 80025a0:	6183      	str	r3, [r0, #24]
+  hi2c2.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
+ 80025a2:	61c3      	str	r3, [r0, #28]
+  hi2c2.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
+ 80025a4:	6203      	str	r3, [r0, #32]
+  if (HAL_I2C_Init(&hi2c2) != HAL_OK)
+ 80025a6:	f007 fa48 	bl	8009a3a <HAL_I2C_Init>
+ 80025aa:	b950      	cbnz	r0, 80025c2 <MX_I2C2_Init+0x3a>
+    Error_Handler();
+  }
+
+  /** Configure Analogue filter
+  */
+  if (HAL_I2CEx_ConfigAnalogFilter(&hi2c2, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
+ 80025ac:	2100      	movs	r1, #0
+ 80025ae:	4809      	ldr	r0, [pc, #36]	; (80025d4 <MX_I2C2_Init+0x4c>)
+ 80025b0:	f007 fc1e 	bl	8009df0 <HAL_I2CEx_ConfigAnalogFilter>
+ 80025b4:	b940      	cbnz	r0, 80025c8 <MX_I2C2_Init+0x40>
+  {
+    Error_Handler();
+  }
+  /** Configure Digital filter
+  */
+  if (HAL_I2CEx_ConfigDigitalFilter(&hi2c2, 0) != HAL_OK)
+ 80025b6:	2100      	movs	r1, #0
+ 80025b8:	4806      	ldr	r0, [pc, #24]	; (80025d4 <MX_I2C2_Init+0x4c>)
+ 80025ba:	f007 fc47 	bl	8009e4c <HAL_I2CEx_ConfigDigitalFilter>
+ 80025be:	b930      	cbnz	r0, 80025ce <MX_I2C2_Init+0x46>
+  }
+  /* USER CODE BEGIN I2C2_Init 2 */
+
+  /* USER CODE END I2C2_Init 2 */
+
+}
+ 80025c0:	bd08      	pop	{r3, pc}
+    Error_Handler();
+ 80025c2:	f000 f88b 	bl	80026dc <Error_Handler>
+ 80025c6:	e7f1      	b.n	80025ac <MX_I2C2_Init+0x24>
+    Error_Handler();
+ 80025c8:	f000 f888 	bl	80026dc <Error_Handler>
+ 80025cc:	e7f3      	b.n	80025b6 <MX_I2C2_Init+0x2e>
+    Error_Handler();
+ 80025ce:	f000 f885 	bl	80026dc <Error_Handler>
+}
+ 80025d2:	e7f5      	b.n	80025c0 <MX_I2C2_Init+0x38>
+ 80025d4:	20000a14 	.word	0x20000a14
+ 80025d8:	40005800 	.word	0x40005800
+ 80025dc:	2010091a 	.word	0x2010091a
+
+080025e0 <HAL_I2C_MspInit>:
+
+void HAL_I2C_MspInit(I2C_HandleTypeDef* i2cHandle)
+{
+ 80025e0:	b570      	push	{r4, r5, r6, lr}
+ 80025e2:	b096      	sub	sp, #88	; 0x58
+ 80025e4:	4604      	mov	r4, r0
+
+  GPIO_InitTypeDef GPIO_InitStruct = {0};
+ 80025e6:	2100      	movs	r1, #0
+ 80025e8:	9111      	str	r1, [sp, #68]	; 0x44
+ 80025ea:	9112      	str	r1, [sp, #72]	; 0x48
+ 80025ec:	9113      	str	r1, [sp, #76]	; 0x4c
+ 80025ee:	9114      	str	r1, [sp, #80]	; 0x50
+ 80025f0:	9115      	str	r1, [sp, #84]	; 0x54
+  RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
+ 80025f2:	2238      	movs	r2, #56	; 0x38
+ 80025f4:	a803      	add	r0, sp, #12
+ 80025f6:	f015 f863 	bl	80176c0 <memset>
+  if(i2cHandle->Instance==I2C2)
+ 80025fa:	6822      	ldr	r2, [r4, #0]
+ 80025fc:	4b32      	ldr	r3, [pc, #200]	; (80026c8 <HAL_I2C_MspInit+0xe8>)
+ 80025fe:	429a      	cmp	r2, r3
+ 8002600:	d001      	beq.n	8002606 <HAL_I2C_MspInit+0x26>
+
+  /* USER CODE BEGIN I2C2_MspInit 1 */
+
+  /* USER CODE END I2C2_MspInit 1 */
+  }
+}
+ 8002602:	b016      	add	sp, #88	; 0x58
+ 8002604:	bd70      	pop	{r4, r5, r6, pc}
+	      PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_I2C2;
+ 8002606:	2380      	movs	r3, #128	; 0x80
+ 8002608:	9303      	str	r3, [sp, #12]
+	      PeriphClkInitStruct.I2c2ClockSelection = RCC_I2C2CLKSOURCE_PCLK1;
+ 800260a:	f44f 2340 	mov.w	r3, #786432	; 0xc0000
+ 800260e:	9309      	str	r3, [sp, #36]	; 0x24
+	      if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
+ 8002610:	a803      	add	r0, sp, #12
+ 8002612:	f008 fa45 	bl	800aaa0 <HAL_RCCEx_PeriphCLKConfig>
+ 8002616:	2800      	cmp	r0, #0
+ 8002618:	d14c      	bne.n	80026b4 <HAL_I2C_MspInit+0xd4>
+  SET_BIT(RCC->AHB2ENR, Periphs);
+ 800261a:	f04f 46b0 	mov.w	r6, #1476395008	; 0x58000000
+ 800261e:	6cf3      	ldr	r3, [r6, #76]	; 0x4c
+ 8002620:	f043 0301 	orr.w	r3, r3, #1
+ 8002624:	64f3      	str	r3, [r6, #76]	; 0x4c
+  tmpreg = READ_BIT(RCC->AHB2ENR, Periphs);
+ 8002626:	6cf3      	ldr	r3, [r6, #76]	; 0x4c
+ 8002628:	f003 0301 	and.w	r3, r3, #1
+ 800262c:	9302      	str	r3, [sp, #8]
+  (void)tmpreg;
+ 800262e:	9b02      	ldr	r3, [sp, #8]
+    GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_11;
+ 8002630:	f44f 53c0 	mov.w	r3, #6144	; 0x1800
+ 8002634:	9311      	str	r3, [sp, #68]	; 0x44
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
+ 8002636:	2312      	movs	r3, #18
+ 8002638:	9312      	str	r3, [sp, #72]	; 0x48
+    GPIO_InitStruct.Pull = GPIO_NOPULL; 		//GPIO_PULLUP;
+ 800263a:	2500      	movs	r5, #0
+ 800263c:	9513      	str	r5, [sp, #76]	; 0x4c
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+ 800263e:	2303      	movs	r3, #3
+ 8002640:	9314      	str	r3, [sp, #80]	; 0x50
+    GPIO_InitStruct.Alternate = GPIO_AF4_I2C2;
+ 8002642:	2304      	movs	r3, #4
+ 8002644:	9315      	str	r3, [sp, #84]	; 0x54
+    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+ 8002646:	a911      	add	r1, sp, #68	; 0x44
+ 8002648:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 800264c:	f006 fefe 	bl	800944c <HAL_GPIO_Init>
+  SET_BIT(RCC->APB1ENR1, Periphs);
+ 8002650:	6db3      	ldr	r3, [r6, #88]	; 0x58
+ 8002652:	f443 0380 	orr.w	r3, r3, #4194304	; 0x400000
+ 8002656:	65b3      	str	r3, [r6, #88]	; 0x58
+  tmpreg = READ_BIT(RCC->APB1ENR1, Periphs);
+ 8002658:	6db3      	ldr	r3, [r6, #88]	; 0x58
+ 800265a:	f403 0380 	and.w	r3, r3, #4194304	; 0x400000
+ 800265e:	9301      	str	r3, [sp, #4]
+  (void)tmpreg;
+ 8002660:	9b01      	ldr	r3, [sp, #4]
+    hdma_i2c2_rx.Instance = DMA1_Channel4;
+ 8002662:	481a      	ldr	r0, [pc, #104]	; (80026cc <HAL_I2C_MspInit+0xec>)
+ 8002664:	4b1a      	ldr	r3, [pc, #104]	; (80026d0 <HAL_I2C_MspInit+0xf0>)
+ 8002666:	6003      	str	r3, [r0, #0]
+    hdma_i2c2_rx.Init.Request = DMA_REQUEST_I2C2_RX;
+ 8002668:	230d      	movs	r3, #13
+ 800266a:	6043      	str	r3, [r0, #4]
+    hdma_i2c2_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
+ 800266c:	6085      	str	r5, [r0, #8]
+    hdma_i2c2_rx.Init.PeriphInc = DMA_PINC_DISABLE;
+ 800266e:	60c5      	str	r5, [r0, #12]
+    hdma_i2c2_rx.Init.MemInc = DMA_MINC_ENABLE;
+ 8002670:	2380      	movs	r3, #128	; 0x80
+ 8002672:	6103      	str	r3, [r0, #16]
+    hdma_i2c2_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
+ 8002674:	6145      	str	r5, [r0, #20]
+    hdma_i2c2_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
+ 8002676:	6185      	str	r5, [r0, #24]
+    hdma_i2c2_rx.Init.Mode = DMA_NORMAL;
+ 8002678:	61c5      	str	r5, [r0, #28]
+    hdma_i2c2_rx.Init.Priority = DMA_PRIORITY_LOW;
+ 800267a:	6205      	str	r5, [r0, #32]
+    if (HAL_DMA_Init(&hdma_i2c2_rx) != HAL_OK)
+ 800267c:	f006 fb96 	bl	8008dac <HAL_DMA_Init>
+ 8002680:	b9d8      	cbnz	r0, 80026ba <HAL_I2C_MspInit+0xda>
+    __HAL_LINKDMA(i2cHandle,hdmarx,hdma_i2c2_rx);
+ 8002682:	4b12      	ldr	r3, [pc, #72]	; (80026cc <HAL_I2C_MspInit+0xec>)
+ 8002684:	63e3      	str	r3, [r4, #60]	; 0x3c
+ 8002686:	629c      	str	r4, [r3, #40]	; 0x28
+    hdma_i2c2_tx.Instance = DMA1_Channel5;
+ 8002688:	4812      	ldr	r0, [pc, #72]	; (80026d4 <HAL_I2C_MspInit+0xf4>)
+ 800268a:	4b13      	ldr	r3, [pc, #76]	; (80026d8 <HAL_I2C_MspInit+0xf8>)
+ 800268c:	6003      	str	r3, [r0, #0]
+    hdma_i2c2_tx.Init.Request = DMA_REQUEST_I2C2_TX;
+ 800268e:	230e      	movs	r3, #14
+ 8002690:	6043      	str	r3, [r0, #4]
+    hdma_i2c2_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
+ 8002692:	2310      	movs	r3, #16
+ 8002694:	6083      	str	r3, [r0, #8]
+    hdma_i2c2_tx.Init.PeriphInc = DMA_PINC_DISABLE;
+ 8002696:	2300      	movs	r3, #0
+ 8002698:	60c3      	str	r3, [r0, #12]
+    hdma_i2c2_tx.Init.MemInc = DMA_MINC_ENABLE;
+ 800269a:	2280      	movs	r2, #128	; 0x80
+ 800269c:	6102      	str	r2, [r0, #16]
+    hdma_i2c2_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
+ 800269e:	6143      	str	r3, [r0, #20]
+    hdma_i2c2_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
+ 80026a0:	6183      	str	r3, [r0, #24]
+    hdma_i2c2_tx.Init.Mode = DMA_NORMAL;
+ 80026a2:	61c3      	str	r3, [r0, #28]
+    hdma_i2c2_tx.Init.Priority = DMA_PRIORITY_LOW;
+ 80026a4:	6203      	str	r3, [r0, #32]
+    if (HAL_DMA_Init(&hdma_i2c2_tx) != HAL_OK)
+ 80026a6:	f006 fb81 	bl	8008dac <HAL_DMA_Init>
+ 80026aa:	b948      	cbnz	r0, 80026c0 <HAL_I2C_MspInit+0xe0>
+    __HAL_LINKDMA(i2cHandle,hdmatx,hdma_i2c2_tx);
+ 80026ac:	4b09      	ldr	r3, [pc, #36]	; (80026d4 <HAL_I2C_MspInit+0xf4>)
+ 80026ae:	63a3      	str	r3, [r4, #56]	; 0x38
+ 80026b0:	629c      	str	r4, [r3, #40]	; 0x28
+}
+ 80026b2:	e7a6      	b.n	8002602 <HAL_I2C_MspInit+0x22>
+	        Error_Handler();
+ 80026b4:	f000 f812 	bl	80026dc <Error_Handler>
+ 80026b8:	e7af      	b.n	800261a <HAL_I2C_MspInit+0x3a>
+      Error_Handler();
+ 80026ba:	f000 f80f 	bl	80026dc <Error_Handler>
+ 80026be:	e7e0      	b.n	8002682 <HAL_I2C_MspInit+0xa2>
+      Error_Handler();
+ 80026c0:	f000 f80c 	bl	80026dc <Error_Handler>
+ 80026c4:	e7f2      	b.n	80026ac <HAL_I2C_MspInit+0xcc>
+ 80026c6:	bf00      	nop
+ 80026c8:	40005800 	.word	0x40005800
+ 80026cc:	20000954 	.word	0x20000954
+ 80026d0:	40020044 	.word	0x40020044
+ 80026d4:	200009b4 	.word	0x200009b4
+ 80026d8:	40020058 	.word	0x40020058
+
+080026dc <Error_Handler>:
+  \details Disables IRQ interrupts by setting the I-bit in the CPSR.
+           Can only be executed in Privileged modes.
+ */
+__STATIC_FORCEINLINE void __disable_irq(void)
+{
+  __ASM volatile ("cpsid i" : : : "memory");
+ 80026dc:	b672      	cpsid	i
+void Error_Handler(void)
+{
+  /* USER CODE BEGIN Error_Handler_Debug */
+  /* User can add his own implementation to report the HAL error return state */
+  __disable_irq();
+  while (1)
+ 80026de:	e7fe      	b.n	80026de <Error_Handler+0x2>
+
+080026e0 <SystemClock_Config>:
+{
+ 80026e0:	b510      	push	{r4, lr}
+ 80026e2:	b09a      	sub	sp, #104	; 0x68
+  RCC_OscInitTypeDef RCC_OscInitStruct = {0};
+ 80026e4:	2248      	movs	r2, #72	; 0x48
+ 80026e6:	2100      	movs	r1, #0
+ 80026e8:	a808      	add	r0, sp, #32
+ 80026ea:	f014 ffe9 	bl	80176c0 <memset>
+  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
+ 80026ee:	2400      	movs	r4, #0
+ 80026f0:	9402      	str	r4, [sp, #8]
+ 80026f2:	9403      	str	r4, [sp, #12]
+ 80026f4:	9404      	str	r4, [sp, #16]
+ 80026f6:	9405      	str	r4, [sp, #20]
+ 80026f8:	9406      	str	r4, [sp, #24]
+ 80026fa:	9407      	str	r4, [sp, #28]
+  HAL_PWR_EnableBkUpAccess();
+ 80026fc:	f007 fbd2 	bl	8009ea4 <HAL_PWR_EnableBkUpAccess>
+  *         @arg @ref LL_RCC_LSEDRIVE_HIGH
+  * @retval None
+  */
+__STATIC_INLINE void LL_RCC_LSE_SetDriveCapability(uint32_t LSEDrive)
+{
+  MODIFY_REG(RCC->BDCR, RCC_BDCR_LSEDRV, LSEDrive);
+ 8002700:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 8002704:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 8002708:	f023 0318 	bic.w	r3, r3, #24
+ 800270c:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
+ 8002710:	f502 6280 	add.w	r2, r2, #1024	; 0x400
+ 8002714:	6813      	ldr	r3, [r2, #0]
+ 8002716:	f423 63c0 	bic.w	r3, r3, #1536	; 0x600
+ 800271a:	f443 7300 	orr.w	r3, r3, #512	; 0x200
+ 800271e:	6013      	str	r3, [r2, #0]
+ 8002720:	6813      	ldr	r3, [r2, #0]
+ 8002722:	f403 63c0 	and.w	r3, r3, #1536	; 0x600
+ 8002726:	9301      	str	r3, [sp, #4]
+ 8002728:	9b01      	ldr	r3, [sp, #4]
+  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE|RCC_OSCILLATORTYPE_MSI;
+ 800272a:	2324      	movs	r3, #36	; 0x24
+ 800272c:	9308      	str	r3, [sp, #32]
+  RCC_OscInitStruct.LSEState = RCC_LSE_ON;
+ 800272e:	2381      	movs	r3, #129	; 0x81
+ 8002730:	930b      	str	r3, [sp, #44]	; 0x2c
+  RCC_OscInitStruct.MSIState = RCC_MSI_ON;
+ 8002732:	2301      	movs	r3, #1
+ 8002734:	9310      	str	r3, [sp, #64]	; 0x40
+  RCC_OscInitStruct.MSICalibrationValue = RCC_MSICALIBRATION_DEFAULT;
+ 8002736:	9411      	str	r4, [sp, #68]	; 0x44
+  RCC_OscInitStruct.MSIClockRange = RCC_MSIRANGE_11;
+ 8002738:	23b0      	movs	r3, #176	; 0xb0
+ 800273a:	9312      	str	r3, [sp, #72]	; 0x48
+  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
+ 800273c:	9413      	str	r4, [sp, #76]	; 0x4c
+  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
+ 800273e:	a808      	add	r0, sp, #32
+ 8002740:	f007 fd4a 	bl	800a1d8 <HAL_RCC_OscConfig>
+ 8002744:	b970      	cbnz	r0, 8002764 <SystemClock_Config+0x84>
+  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK3|RCC_CLOCKTYPE_HCLK
+ 8002746:	234f      	movs	r3, #79	; 0x4f
+ 8002748:	9302      	str	r3, [sp, #8]
+  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_MSI;
+ 800274a:	2300      	movs	r3, #0
+ 800274c:	9303      	str	r3, [sp, #12]
+  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
+ 800274e:	9304      	str	r3, [sp, #16]
+  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
+ 8002750:	9305      	str	r3, [sp, #20]
+  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+ 8002752:	9306      	str	r3, [sp, #24]
+  RCC_ClkInitStruct.AHBCLK3Divider = RCC_SYSCLK_DIV1;
+ 8002754:	9307      	str	r3, [sp, #28]
+  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ 8002756:	2102      	movs	r1, #2
+ 8002758:	a802      	add	r0, sp, #8
+ 800275a:	f008 f86f 	bl	800a83c <HAL_RCC_ClockConfig>
+ 800275e:	b918      	cbnz	r0, 8002768 <SystemClock_Config+0x88>
+}
+ 8002760:	b01a      	add	sp, #104	; 0x68
+ 8002762:	bd10      	pop	{r4, pc}
+    Error_Handler();
+ 8002764:	f7ff ffba 	bl	80026dc <Error_Handler>
+    Error_Handler();
+ 8002768:	f7ff ffb8 	bl	80026dc <Error_Handler>
+
+0800276c <main>:
+{
+ 800276c:	b508      	push	{r3, lr}
+  HAL_Init();
+ 800276e:	f005 fd1d 	bl	80081ac <HAL_Init>
+  SystemClock_Config();
+ 8002772:	f7ff ffb5 	bl	80026e0 <SystemClock_Config>
+  MX_GPIO_Init();
+ 8002776:	f7ff fe71 	bl	800245c <MX_GPIO_Init>
+  MX_DMA_Init();
+ 800277a:	f7ff fc62 	bl	8002042 <MX_DMA_Init>
+  MX_I2C2_Init();
+ 800277e:	f7ff ff03 	bl	8002588 <MX_I2C2_Init>
+  MX_LoRaWAN_Init();
+ 8002782:	f000 fefa 	bl	800357a <MX_LoRaWAN_Init>
+  HAL_Delay(3000);
+ 8002786:	f640 30b8 	movw	r0, #3000	; 0xbb8
+ 800278a:	f000 fa91 	bl	8002cb0 <HAL_Delay>
+    MX_LoRaWAN_Process();
+ 800278e:	f000 fefa 	bl	8003586 <MX_LoRaWAN_Process>
+  while (1)
+ 8002792:	e7fc      	b.n	800278e <main+0x22>
+
+08002794 <MX_RTC_Init>:
+
+RTC_HandleTypeDef hrtc;
+
+/* RTC init function */
+void MX_RTC_Init(void)
+{
+ 8002794:	b500      	push	{lr}
+ 8002796:	b08d      	sub	sp, #52	; 0x34
+
+  /* USER CODE BEGIN RTC_Init 0 */
+
+  /* USER CODE END RTC_Init 0 */
+
+  RTC_AlarmTypeDef sAlarm = {0};
+ 8002798:	222c      	movs	r2, #44	; 0x2c
+ 800279a:	2100      	movs	r1, #0
+ 800279c:	a801      	add	r0, sp, #4
+ 800279e:	f014 ff8f 	bl	80176c0 <memset>
+
+  /* USER CODE END RTC_Init 1 */
+
+  /** Initialize RTC Only
+  */
+  hrtc.Instance = RTC;
+ 80027a2:	4819      	ldr	r0, [pc, #100]	; (8002808 <MX_RTC_Init+0x74>)
+ 80027a4:	4b19      	ldr	r3, [pc, #100]	; (800280c <MX_RTC_Init+0x78>)
+ 80027a6:	6003      	str	r3, [r0, #0]
+  hrtc.Init.AsynchPrediv = RTC_PREDIV_A;
+ 80027a8:	231f      	movs	r3, #31
+ 80027aa:	6083      	str	r3, [r0, #8]
+  hrtc.Init.OutPut = RTC_OUTPUT_DISABLE;
+ 80027ac:	2300      	movs	r3, #0
+ 80027ae:	6103      	str	r3, [r0, #16]
+  hrtc.Init.OutPutRemap = RTC_OUTPUT_REMAP_NONE;
+ 80027b0:	6143      	str	r3, [r0, #20]
+  hrtc.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;
+ 80027b2:	6183      	str	r3, [r0, #24]
+  hrtc.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN;
+ 80027b4:	f04f 4280 	mov.w	r2, #1073741824	; 0x40000000
+ 80027b8:	61c2      	str	r2, [r0, #28]
+  hrtc.Init.OutPutPullUp = RTC_OUTPUT_PULLUP_NONE;
+ 80027ba:	6203      	str	r3, [r0, #32]
+  hrtc.Init.BinMode = RTC_BINARY_ONLY;
+ 80027bc:	f44f 7380 	mov.w	r3, #256	; 0x100
+ 80027c0:	6243      	str	r3, [r0, #36]	; 0x24
+  if (HAL_RTC_Init(&hrtc) != HAL_OK)
+ 80027c2:	f008 fb7d 	bl	800aec0 <HAL_RTC_Init>
+ 80027c6:	b9a8      	cbnz	r0, 80027f4 <MX_RTC_Init+0x60>
+
+  /* USER CODE END Check_RTC_BKUP */
+
+  /** Initialize RTC and set the Time and Date
+  */
+  if (HAL_RTCEx_SetSSRU_IT(&hrtc) != HAL_OK)
+ 80027c8:	480f      	ldr	r0, [pc, #60]	; (8002808 <MX_RTC_Init+0x74>)
+ 80027ca:	f008 fcbb 	bl	800b144 <HAL_RTCEx_SetSSRU_IT>
+ 80027ce:	b9a0      	cbnz	r0, 80027fa <MX_RTC_Init+0x66>
+    Error_Handler();
+  }
+
+  /** Enable the Alarm A
+  */
+  sAlarm.BinaryAutoClr = RTC_ALARMSUBSECONDBIN_AUTOCLR_NO;
+ 80027d0:	2200      	movs	r2, #0
+ 80027d2:	9208      	str	r2, [sp, #32]
+  sAlarm.AlarmTime.SubSeconds = 0x0;
+ 80027d4:	9202      	str	r2, [sp, #8]
+  sAlarm.AlarmMask = RTC_ALARMMASK_NONE;
+ 80027d6:	9206      	str	r2, [sp, #24]
+  sAlarm.AlarmSubSecondMask = RTC_ALARMSUBSECONDBINMASK_NONE;
+ 80027d8:	f04f 5300 	mov.w	r3, #536870912	; 0x20000000
+ 80027dc:	9307      	str	r3, [sp, #28]
+  sAlarm.Alarm = RTC_ALARM_A;
+ 80027de:	f44f 7380 	mov.w	r3, #256	; 0x100
+ 80027e2:	930b      	str	r3, [sp, #44]	; 0x2c
+  if (HAL_RTC_SetAlarm_IT(&hrtc, &sAlarm, 0) != HAL_OK)
+ 80027e4:	a901      	add	r1, sp, #4
+ 80027e6:	4808      	ldr	r0, [pc, #32]	; (8002808 <MX_RTC_Init+0x74>)
+ 80027e8:	f008 fbd0 	bl	800af8c <HAL_RTC_SetAlarm_IT>
+ 80027ec:	b940      	cbnz	r0, 8002800 <MX_RTC_Init+0x6c>
+  }
+  /* USER CODE BEGIN RTC_Init 2 */
+
+  /* USER CODE END RTC_Init 2 */
+
+}
+ 80027ee:	b00d      	add	sp, #52	; 0x34
+ 80027f0:	f85d fb04 	ldr.w	pc, [sp], #4
+    Error_Handler();
+ 80027f4:	f7ff ff72 	bl	80026dc <Error_Handler>
+ 80027f8:	e7e6      	b.n	80027c8 <MX_RTC_Init+0x34>
+    Error_Handler();
+ 80027fa:	f7ff ff6f 	bl	80026dc <Error_Handler>
+ 80027fe:	e7e7      	b.n	80027d0 <MX_RTC_Init+0x3c>
+    Error_Handler();
+ 8002800:	f7ff ff6c 	bl	80026dc <Error_Handler>
+}
+ 8002804:	e7f3      	b.n	80027ee <MX_RTC_Init+0x5a>
+ 8002806:	bf00      	nop
+ 8002808:	20000a68 	.word	0x20000a68
+ 800280c:	40002800 	.word	0x40002800
+
+08002810 <HAL_RTC_MspInit>:
+
+void HAL_RTC_MspInit(RTC_HandleTypeDef* rtcHandle)
+{
+ 8002810:	b510      	push	{r4, lr}
+ 8002812:	b090      	sub	sp, #64	; 0x40
+ 8002814:	4604      	mov	r4, r0
+
+  RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
+ 8002816:	2238      	movs	r2, #56	; 0x38
+ 8002818:	2100      	movs	r1, #0
+ 800281a:	a802      	add	r0, sp, #8
+ 800281c:	f014 ff50 	bl	80176c0 <memset>
+  if(rtcHandle->Instance==RTC)
+ 8002820:	6822      	ldr	r2, [r4, #0]
+ 8002822:	4b1a      	ldr	r3, [pc, #104]	; (800288c <HAL_RTC_MspInit+0x7c>)
+ 8002824:	429a      	cmp	r2, r3
+ 8002826:	d001      	beq.n	800282c <HAL_RTC_MspInit+0x1c>
+    HAL_NVIC_EnableIRQ(RTC_Alarm_IRQn);
+  /* USER CODE BEGIN RTC_MspInit 1 */
+
+  /* USER CODE END RTC_MspInit 1 */
+  }
+}
+ 8002828:	b010      	add	sp, #64	; 0x40
+ 800282a:	bd10      	pop	{r4, pc}
+    PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;
+ 800282c:	f44f 3380 	mov.w	r3, #65536	; 0x10000
+ 8002830:	9302      	str	r3, [sp, #8]
+    PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;
+ 8002832:	f44f 7380 	mov.w	r3, #256	; 0x100
+ 8002836:	930f      	str	r3, [sp, #60]	; 0x3c
+    if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
+ 8002838:	a802      	add	r0, sp, #8
+ 800283a:	f008 f931 	bl	800aaa0 <HAL_RCCEx_PeriphCLKConfig>
+ 800283e:	bb08      	cbnz	r0, 8002884 <HAL_RTC_MspInit+0x74>
+  * @rmtoll BDCR         RTCEN         LL_RCC_EnableRTC
+  * @retval None
+  */
+__STATIC_INLINE void LL_RCC_EnableRTC(void)
+{
+  SET_BIT(RCC->BDCR, RCC_BDCR_RTCEN);
+ 8002840:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8002844:	f8d3 2090 	ldr.w	r2, [r3, #144]	; 0x90
+ 8002848:	f442 4200 	orr.w	r2, r2, #32768	; 0x8000
+ 800284c:	f8c3 2090 	str.w	r2, [r3, #144]	; 0x90
+  SET_BIT(RCC->APB1ENR1, Periphs);
+ 8002850:	6d9a      	ldr	r2, [r3, #88]	; 0x58
+ 8002852:	f442 6280 	orr.w	r2, r2, #1024	; 0x400
+ 8002856:	659a      	str	r2, [r3, #88]	; 0x58
+  tmpreg = READ_BIT(RCC->APB1ENR1, Periphs);
+ 8002858:	6d9b      	ldr	r3, [r3, #88]	; 0x58
+ 800285a:	f403 6380 	and.w	r3, r3, #1024	; 0x400
+ 800285e:	9301      	str	r3, [sp, #4]
+  (void)tmpreg;
+ 8002860:	9b01      	ldr	r3, [sp, #4]
+    HAL_NVIC_SetPriority(TAMP_STAMP_LSECSS_SSRU_IRQn, 0, 0);
+ 8002862:	2200      	movs	r2, #0
+ 8002864:	4611      	mov	r1, r2
+ 8002866:	2002      	movs	r0, #2
+ 8002868:	f006 f9d8 	bl	8008c1c <HAL_NVIC_SetPriority>
+    HAL_NVIC_EnableIRQ(TAMP_STAMP_LSECSS_SSRU_IRQn);
+ 800286c:	2002      	movs	r0, #2
+ 800286e:	f006 fa0d 	bl	8008c8c <HAL_NVIC_EnableIRQ>
+    HAL_NVIC_SetPriority(RTC_Alarm_IRQn, 0, 0);
+ 8002872:	2200      	movs	r2, #0
+ 8002874:	4611      	mov	r1, r2
+ 8002876:	202a      	movs	r0, #42	; 0x2a
+ 8002878:	f006 f9d0 	bl	8008c1c <HAL_NVIC_SetPriority>
+    HAL_NVIC_EnableIRQ(RTC_Alarm_IRQn);
+ 800287c:	202a      	movs	r0, #42	; 0x2a
+ 800287e:	f006 fa05 	bl	8008c8c <HAL_NVIC_EnableIRQ>
+}
+ 8002882:	e7d1      	b.n	8002828 <HAL_RTC_MspInit+0x18>
+      Error_Handler();
+ 8002884:	f7ff ff2a 	bl	80026dc <Error_Handler>
+ 8002888:	e7da      	b.n	8002840 <HAL_RTC_MspInit+0x30>
+ 800288a:	bf00      	nop
+ 800288c:	40002800 	.word	0x40002800
+
+08002890 <PWR_EnterOffMode>:
+void PWR_EnterOffMode(void)
+{
+  /* USER CODE BEGIN EnterOffMode_1 */
+
+  /* USER CODE END EnterOffMode_1 */
+}
+ 8002890:	4770      	bx	lr
+
+08002892 <PWR_ExitOffMode>:
+void PWR_ExitOffMode(void)
+{
+  /* USER CODE BEGIN ExitOffMode_1 */
+
+  /* USER CODE END ExitOffMode_1 */
+}
+ 8002892:	4770      	bx	lr
+
+08002894 <PWR_EnterStopMode>:
+
+void PWR_EnterStopMode(void)
+{
+ 8002894:	b508      	push	{r3, lr}
+  /* USER CODE BEGIN EnterStopMode_1 */
+
+  /* USER CODE END EnterStopMode_1 */
+  HAL_SuspendTick();
+ 8002896:	f005 fc9f 	bl	80081d8 <HAL_SuspendTick>
+  * @rmtoll EXTSCR       C1CSSF        LL_PWR_ClearFlag_C1STOP_C1STB
+  * @retval None
+  */
+__STATIC_INLINE void LL_PWR_ClearFlag_C1STOP_C1STB(void)
+{
+  WRITE_REG(PWR->EXTSCR, PWR_EXTSCR_C1CSSF);
+ 800289a:	2001      	movs	r0, #1
+ 800289c:	4b02      	ldr	r3, [pc, #8]	; (80028a8 <PWR_EnterStopMode+0x14>)
+ 800289e:	f8c3 0088 	str.w	r0, [r3, #136]	; 0x88
+  LL_PWR_ClearFlag_C1STOP_C1STB();
+
+  /* USER CODE BEGIN EnterStopMode_2 */
+
+  /* USER CODE END EnterStopMode_2 */
+  HAL_PWREx_EnterSTOP2Mode(PWR_STOPENTRY_WFI);
+ 80028a2:	f007 fb63 	bl	8009f6c <HAL_PWREx_EnterSTOP2Mode>
+  /* USER CODE BEGIN EnterStopMode_3 */
+
+  /* USER CODE END EnterStopMode_3 */
+}
+ 80028a6:	bd08      	pop	{r3, pc}
+ 80028a8:	58000400 	.word	0x58000400
+
+080028ac <PWR_ExitSleepMode>:
+
+  /* USER CODE END EnterSleepMode_3 */
+}
+
+void PWR_ExitSleepMode(void)
+{
+ 80028ac:	b508      	push	{r3, lr}
+  /* USER CODE BEGIN ExitSleepMode_1 */
+
+  /* USER CODE END ExitSleepMode_1 */
+  /* Resume sysTick */
+  HAL_ResumeTick();
+ 80028ae:	f005 fc9a 	bl	80081e6 <HAL_ResumeTick>
+
+  /* USER CODE BEGIN ExitSleepMode_2 */
+
+  /* USER CODE END ExitSleepMode_2 */
+}
+ 80028b2:	bd08      	pop	{r3, pc}
+
+080028b4 <PWR_ExitStopMode>:
+{
+ 80028b4:	b508      	push	{r3, lr}
+  HAL_ResumeTick();
+ 80028b6:	f005 fc96 	bl	80081e6 <HAL_ResumeTick>
+  vcom_Resume();
+ 80028ba:	f000 fd13 	bl	80032e4 <vcom_Resume>
+  MX_GPIO_Init();
+ 80028be:	f7ff fdcd 	bl	800245c <MX_GPIO_Init>
+  MX_DMA_Init();
+ 80028c2:	f7ff fbbe 	bl	8002042 <MX_DMA_Init>
+  MX_I2C2_Init();
+ 80028c6:	f7ff fe5f 	bl	8002588 <MX_I2C2_Init>
+}
+ 80028ca:	bd08      	pop	{r3, pc}
+
+080028cc <PWR_EnterSleepMode>:
+{
+ 80028cc:	b508      	push	{r3, lr}
+  HAL_SuspendTick();
+ 80028ce:	f005 fc83 	bl	80081d8 <HAL_SuspendTick>
+  HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFI);
+ 80028d2:	2101      	movs	r1, #1
+ 80028d4:	2000      	movs	r0, #0
+ 80028d6:	f007 faed 	bl	8009eb4 <HAL_PWR_EnterSLEEPMode>
+}
+ 80028da:	bd08      	pop	{r3, pc}
+
+080028dc <HAL_MspInit>:
+  /* System interrupt init*/
+
+  /* USER CODE BEGIN MspInit 1 */
+
+  /* USER CODE END MspInit 1 */
+}
+ 80028dc:	4770      	bx	lr
+
+080028de <NMI_Handler>:
+{
+  /* USER CODE BEGIN NonMaskableInt_IRQn 0 */
+
+  /* USER CODE END NonMaskableInt_IRQn 0 */
+  /* USER CODE BEGIN NonMaskableInt_IRQn 1 */
+  while (1)
+ 80028de:	e7fe      	b.n	80028de <NMI_Handler>
+
+080028e0 <HardFault_Handler>:
+void HardFault_Handler(void)
+{
+  /* USER CODE BEGIN HardFault_IRQn 0 */
+
+  /* USER CODE END HardFault_IRQn 0 */
+  while (1)
+ 80028e0:	e7fe      	b.n	80028e0 <HardFault_Handler>
+
+080028e2 <MemManage_Handler>:
+void MemManage_Handler(void)
+{
+  /* USER CODE BEGIN MemoryManagement_IRQn 0 */
+
+  /* USER CODE END MemoryManagement_IRQn 0 */
+  while (1)
+ 80028e2:	e7fe      	b.n	80028e2 <MemManage_Handler>
+
+080028e4 <BusFault_Handler>:
+void BusFault_Handler(void)
+{
+  /* USER CODE BEGIN BusFault_IRQn 0 */
+
+  /* USER CODE END BusFault_IRQn 0 */
+  while (1)
+ 80028e4:	e7fe      	b.n	80028e4 <BusFault_Handler>
+
+080028e6 <UsageFault_Handler>:
+void UsageFault_Handler(void)
+{
+  /* USER CODE BEGIN UsageFault_IRQn 0 */
+
+  /* USER CODE END UsageFault_IRQn 0 */
+  while (1)
+ 80028e6:	e7fe      	b.n	80028e6 <UsageFault_Handler>
+
+080028e8 <SVC_Handler>:
+
+  /* USER CODE END SVCall_IRQn 0 */
+  /* USER CODE BEGIN SVCall_IRQn 1 */
+
+  /* USER CODE END SVCall_IRQn 1 */
+}
+ 80028e8:	4770      	bx	lr
+
+080028ea <DebugMon_Handler>:
+
+  /* USER CODE END DebugMonitor_IRQn 0 */
+  /* USER CODE BEGIN DebugMonitor_IRQn 1 */
+
+  /* USER CODE END DebugMonitor_IRQn 1 */
+}
+ 80028ea:	4770      	bx	lr
+
+080028ec <PendSV_Handler>:
+
+  /* USER CODE END PendSV_IRQn 0 */
+  /* USER CODE BEGIN PendSV_IRQn 1 */
+
+  /* USER CODE END PendSV_IRQn 1 */
+}
+ 80028ec:	4770      	bx	lr
+
+080028ee <SysTick_Handler>:
+
+  /* USER CODE END SysTick_IRQn 0 */
+  /* USER CODE BEGIN SysTick_IRQn 1 */
+
+  /* USER CODE END SysTick_IRQn 1 */
+}
+ 80028ee:	4770      	bx	lr
+
+080028f0 <TAMP_STAMP_LSECSS_SSRU_IRQHandler>:
+
+/**
+  * @brief This function handles RTC Tamper, RTC TimeStamp, LSECSS and RTC SSRU Interrupts.
+  */
+void TAMP_STAMP_LSECSS_SSRU_IRQHandler(void)
+{
+ 80028f0:	b508      	push	{r3, lr}
+  /* USER CODE BEGIN TAMP_STAMP_LSECSS_SSRU_IRQn 0 */
+
+  /* USER CODE END TAMP_STAMP_LSECSS_SSRU_IRQn 0 */
+  HAL_RTCEx_SSRUIRQHandler(&hrtc);
+ 80028f2:	4802      	ldr	r0, [pc, #8]	; (80028fc <TAMP_STAMP_LSECSS_SSRU_IRQHandler+0xc>)
+ 80028f4:	f008 fc52 	bl	800b19c <HAL_RTCEx_SSRUIRQHandler>
+  /* USER CODE BEGIN TAMP_STAMP_LSECSS_SSRU_IRQn 1 */
+
+  /* USER CODE END TAMP_STAMP_LSECSS_SSRU_IRQn 1 */
+}
+ 80028f8:	bd08      	pop	{r3, pc}
+ 80028fa:	bf00      	nop
+ 80028fc:	20000a68 	.word	0x20000a68
+
+08002900 <EXTI0_IRQHandler>:
+
+/**
+  * @brief This function handles EXTI Line 0 Interrupt.
+  */
+void EXTI0_IRQHandler(void)
+{
+ 8002900:	b508      	push	{r3, lr}
+  /* USER CODE BEGIN EXTI0_IRQn 0 */
+
+  /* USER CODE END EXTI0_IRQn 0 */
+  //HAL_EXTI_IRQHandler(&H_EXTI_0);
+	HAL_GPIO_EXTI_IRQHandler(BUT1_Pin);
+ 8002902:	2001      	movs	r0, #1
+ 8002904:	f006 fefe 	bl	8009704 <HAL_GPIO_EXTI_IRQHandler>
+  /* USER CODE BEGIN EXTI0_IRQn 1 */
+
+  /* USER CODE END EXTI0_IRQn 1 */
+}
+ 8002908:	bd08      	pop	{r3, pc}
+
+0800290a <EXTI1_IRQHandler>:
+
+/**
+  * @brief This function handles EXTI Line 1 Interrupt.
+  */
+void EXTI1_IRQHandler(void)
+{
+ 800290a:	b508      	push	{r3, lr}
+  /* USER CODE BEGIN EXTI1_IRQn 0 */
+
+  /* USER CODE END EXTI1_IRQn 0 */
+  HAL_GPIO_EXTI_IRQHandler(BUT2_Pin);
+ 800290c:	2002      	movs	r0, #2
+ 800290e:	f006 fef9 	bl	8009704 <HAL_GPIO_EXTI_IRQHandler>
+  /* USER CODE BEGIN EXTI1_IRQn 1 */
+
+  /* USER CODE END EXTI1_IRQn 1 */
+}
+ 8002912:	bd08      	pop	{r3, pc}
+
+08002914 <DMA1_Channel2_IRQHandler>:
+  /* USER CODE END DMA1_Channel2_IRQn 0 */
+ // HAL_DMA_IRQHandler(&hdma_spi1_rx);
+  /* USER CODE BEGIN DMA1_Channel2_IRQn 1 */
+
+  /* USER CODE END DMA1_Channel2_IRQn 1 */
+}
+ 8002914:	4770      	bx	lr
+
+08002916 <DMA1_Channel3_IRQHandler>:
+  /* USER CODE END DMA1_Channel3_IRQn 0 */
+  //HAL_DMA_IRQHandler(&hdma_spi1_tx);
+  /* USER CODE BEGIN DMA1_Channel3_IRQn 1 */
+
+  /* USER CODE END DMA1_Channel3_IRQn 1 */
+}
+ 8002916:	4770      	bx	lr
+
+08002918 <DMA1_Channel4_IRQHandler>:
+
+/**
+  * @brief This function handles DMA1 Channel 4 Interrupt.
+  */
+void DMA1_Channel4_IRQHandler(void)
+{
+ 8002918:	b508      	push	{r3, lr}
+  /* USER CODE BEGIN DMA1_Channel4_IRQn 0 */
+
+  /* USER CODE END DMA1_Channel4_IRQn 0 */
+  HAL_DMA_IRQHandler(&hdma_i2c2_rx);
+ 800291a:	4802      	ldr	r0, [pc, #8]	; (8002924 <DMA1_Channel4_IRQHandler+0xc>)
+ 800291c:	f006 fbd4 	bl	80090c8 <HAL_DMA_IRQHandler>
+  /* USER CODE BEGIN DMA1_Channel4_IRQn 1 */
+
+  /* USER CODE END DMA1_Channel4_IRQn 1 */
+}
+ 8002920:	bd08      	pop	{r3, pc}
+ 8002922:	bf00      	nop
+ 8002924:	20000954 	.word	0x20000954
+
+08002928 <DMA1_Channel5_IRQHandler>:
+
+/**
+  * @brief This function handles DMA1 Channel 5 Interrupt.
+  */
+void DMA1_Channel5_IRQHandler(void)
+{
+ 8002928:	b508      	push	{r3, lr}
+  /* USER CODE BEGIN DMA1_Channel5_IRQn 0 */
+
+  /* USER CODE END DMA1_Channel5_IRQn 0 */
+  HAL_DMA_IRQHandler(&hdma_usart2_tx);
+ 800292a:	4802      	ldr	r0, [pc, #8]	; (8002934 <DMA1_Channel5_IRQHandler+0xc>)
+ 800292c:	f006 fbcc 	bl	80090c8 <HAL_DMA_IRQHandler>
+  /* USER CODE BEGIN DMA1_Channel5_IRQn 1 */
+
+  /* USER CODE END DMA1_Channel5_IRQn 1 */
+}
+ 8002930:	bd08      	pop	{r3, pc}
+ 8002932:	bf00      	nop
+ 8002934:	20000b40 	.word	0x20000b40
+
+08002938 <DMA1_Channel6_IRQHandler>:
+
+/**
+  * @brief This function handles DMA1 Channel 6 Interrupt.
+  */
+void DMA1_Channel6_IRQHandler(void)
+{
+ 8002938:	b508      	push	{r3, lr}
+  /* USER CODE BEGIN DMA1_Channel6_IRQn 0 */
+
+  /* USER CODE END DMA1_Channel6_IRQn 0 */
+  HAL_DMA_IRQHandler(&hdma_usart2_rx);
+ 800293a:	4802      	ldr	r0, [pc, #8]	; (8002944 <DMA1_Channel6_IRQHandler+0xc>)
+ 800293c:	f006 fbc4 	bl	80090c8 <HAL_DMA_IRQHandler>
+  /* USER CODE BEGIN DMA1_Channel6_IRQn 1 */
+
+  /* USER CODE END DMA1_Channel6_IRQn 1 */
+}
+ 8002940:	bd08      	pop	{r3, pc}
+ 8002942:	bf00      	nop
+ 8002944:	20000ae0 	.word	0x20000ae0
+
+08002948 <DMA1_Channel7_IRQHandler>:
+
+/**
+  * @brief This function handles DMA1 Channel 7 Interrupt.
+  */
+void DMA1_Channel7_IRQHandler(void)
+{
+ 8002948:	b508      	push	{r3, lr}
+  /* USER CODE BEGIN DMA1_Channel7_IRQn 0 */
+
+  /* USER CODE END DMA1_Channel7_IRQn 0 */
+	  HAL_DMA_IRQHandler(&hdma_usart2_tx);
+ 800294a:	4802      	ldr	r0, [pc, #8]	; (8002954 <DMA1_Channel7_IRQHandler+0xc>)
+ 800294c:	f006 fbbc 	bl	80090c8 <HAL_DMA_IRQHandler>
+  /* USER CODE BEGIN DMA1_Channel7_IRQn 1 */
+
+  /* USER CODE END DMA1_Channel7_IRQn 1 */
+}
+ 8002950:	bd08      	pop	{r3, pc}
+ 8002952:	bf00      	nop
+ 8002954:	20000b40 	.word	0x20000b40
+
+08002958 <EXTI4_IRQHandler>:
+  /* USER CODE END EXTI9_5_IRQn 0 */
+  //HAL_GPIO_EXTI_IRQHandler(TOF_INT_EXTI_PIN);
+  /* USER CODE BEGIN EXTI9_5_IRQn 1 */
+
+  /* USER CODE END EXTI9_5_IRQn 1 */
+}
+ 8002958:	4770      	bx	lr
+
+0800295a <EXTI9_5_IRQHandler>:
+
+/**
+  * @brief This function handles EXTI Lines [9:5] Interrupt.
+  */
+void EXTI9_5_IRQHandler(void)
+{
+ 800295a:	b508      	push	{r3, lr}
+#if	defined(STM32WL55xx)
+  HAL_GPIO_EXTI_IRQHandler(BUT3_Pin);
+#endif
+#if	defined(STM32WLE5xx)
+  //HAL_GPIO_EXTI_IRQHandler(TOF_INT_EXTI_PIN);
+  HAL_GPIO_EXTI_IRQHandler(TOF_INT_EXTI_PIN);
+ 800295c:	2020      	movs	r0, #32
+ 800295e:	f006 fed1 	bl	8009704 <HAL_GPIO_EXTI_IRQHandler>
+#endif
+  /* USER CODE BEGIN EXTI9_5_IRQn 1 */
+
+  /* USER CODE END EXTI9_5_IRQn 1 */
+}
+ 8002962:	bd08      	pop	{r3, pc}
+
+08002964 <EXTI15_10_IRQHandler>:
+  HAL_GPIO_EXTI_IRQHandler(TOF_INT_EXTI_PIN);
+#endif
+  /* USER CODE BEGIN EXTI15_10_IRQn 1 */
+
+  /* USER CODE END EXTI15_10_IRQn 1 */
+}
+ 8002964:	4770      	bx	lr
+	...
+
+08002968 <USART2_IRQHandler>:
+
+/**
+  * @brief This function handles USART2 Interrupt.
+  */
+void USART2_IRQHandler(void)
+{
+ 8002968:	b508      	push	{r3, lr}
+  /* USER CODE BEGIN USART2_IRQn 0 */
+
+  /* USER CODE END USART2_IRQn 0 */
+  HAL_UART_IRQHandler(&huart2);
+ 800296a:	4802      	ldr	r0, [pc, #8]	; (8002974 <USART2_IRQHandler+0xc>)
+ 800296c:	f009 f8d4 	bl	800bb18 <HAL_UART_IRQHandler>
+  /* USER CODE BEGIN USART2_IRQn 1 */
+
+  /* USER CODE END USART2_IRQn 1 */
+}
+ 8002970:	bd08      	pop	{r3, pc}
+ 8002972:	bf00      	nop
+ 8002974:	20000ba0 	.word	0x20000ba0
+
+08002978 <RTC_Alarm_IRQHandler>:
+
+/**
+  * @brief This function handles RTC Alarms (A and B) Interrupt.
+  */
+void RTC_Alarm_IRQHandler(void)
+{
+ 8002978:	b508      	push	{r3, lr}
+  /* USER CODE BEGIN RTC_Alarm_IRQn 0 */
+
+  /* USER CODE END RTC_Alarm_IRQn 0 */
+  HAL_RTC_AlarmIRQHandler(&hrtc);
+ 800297a:	4802      	ldr	r0, [pc, #8]	; (8002984 <RTC_Alarm_IRQHandler+0xc>)
+ 800297c:	f008 fa1a 	bl	800adb4 <HAL_RTC_AlarmIRQHandler>
+  /* USER CODE BEGIN RTC_Alarm_IRQn 1 */
+
+  /* USER CODE END RTC_Alarm_IRQn 1 */
+}
+ 8002980:	bd08      	pop	{r3, pc}
+ 8002982:	bf00      	nop
+ 8002984:	20000a68 	.word	0x20000a68
+
+08002988 <SUBGHZ_Radio_IRQHandler>:
+
+/**
+  * @brief This function handles SUBGHZ Radio Interrupt.
+  */
+void SUBGHZ_Radio_IRQHandler(void)
+{
+ 8002988:	b508      	push	{r3, lr}
+  /* USER CODE BEGIN SUBGHZ_Radio_IRQn 0 */
+
+  /* USER CODE END SUBGHZ_Radio_IRQn 0 */
+  HAL_SUBGHZ_IRQHandler(&hsubghz);
+ 800298a:	4802      	ldr	r0, [pc, #8]	; (8002994 <SUBGHZ_Radio_IRQHandler+0xc>)
+ 800298c:	f008 feba 	bl	800b704 <HAL_SUBGHZ_IRQHandler>
+  /* USER CODE BEGIN SUBGHZ_Radio_IRQn 1 */
+
+  /* USER CODE END SUBGHZ_Radio_IRQn 1 */
+}
+ 8002990:	bd08      	pop	{r3, pc}
+ 8002992:	bf00      	nop
+ 8002994:	20000acc 	.word	0x20000acc
+
+08002998 <sts_hmac_sha1>:
+	return ret;
+}
+
+
+uint32_t sts_hmac_sha1(const uint8_t *key, int key_length, const uint8_t *message, int message_length, hmac_result_t *hmac_result)
+{
+ 8002998:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
+ 800299c:	b089      	sub	sp, #36	; 0x24
+ 800299e:	4607      	mov	r7, r0
+ 80029a0:	4688      	mov	r8, r1
+ 80029a2:	4616      	mov	r6, r2
+ 80029a4:	4699      	mov	r9, r3
+ 80029a6:	9d10      	ldr	r5, [sp, #64]	; 0x40
+	cmox_mac_retval_t retval=0;
+	size_t computed_size=0;
+ 80029a8:	2000      	movs	r0, #0
+ 80029aa:	9007      	str	r0, [sp, #28]
+	/* Initialize cryptographic library */
+	if (cmox_initialize(NULL) != CMOX_INIT_SUCCESS)
+ 80029ac:	f7fd fc3c 	bl	8000228 <cmox_initialize>
+ 80029b0:	b120      	cbz	r0, 80029bc <sts_hmac_sha1+0x24>
+	{
+		retval = 1;
+		return retval;
+ 80029b2:	2601      	movs	r6, #1
+
+	  memcpy(hmac_result->hmac_tag, Computed_Tag_SHA1, sizeof(Computed_Tag_SHA1));
+	  hmac_result->hmac_tag_size = computed_size;
+
+	  return retval;
+}
+ 80029b4:	4630      	mov	r0, r6
+ 80029b6:	b009      	add	sp, #36	; 0x24
+ 80029b8:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
+	  retval = cmox_mac_compute(CMOX_HMAC_SHA1_ALGO,     /* Use HMAC SHA256 algorithm */
+ 80029bc:	ab07      	add	r3, sp, #28
+ 80029be:	9305      	str	r3, [sp, #20]
+ 80029c0:	2314      	movs	r3, #20
+ 80029c2:	9304      	str	r3, [sp, #16]
+ 80029c4:	4c0d      	ldr	r4, [pc, #52]	; (80029fc <sts_hmac_sha1+0x64>)
+ 80029c6:	9403      	str	r4, [sp, #12]
+ 80029c8:	2300      	movs	r3, #0
+ 80029ca:	9302      	str	r3, [sp, #8]
+ 80029cc:	9301      	str	r3, [sp, #4]
+ 80029ce:	f8cd 8000 	str.w	r8, [sp]
+ 80029d2:	463b      	mov	r3, r7
+ 80029d4:	464a      	mov	r2, r9
+ 80029d6:	4631      	mov	r1, r6
+ 80029d8:	4809      	ldr	r0, [pc, #36]	; (8002a00 <sts_hmac_sha1+0x68>)
+ 80029da:	6800      	ldr	r0, [r0, #0]
+ 80029dc:	f7fd fcee 	bl	80003bc <cmox_mac_compute>
+ 80029e0:	4606      	mov	r6, r0
+	  memcpy(hmac_result->hmac_tag, Computed_Tag_SHA1, sizeof(Computed_Tag_SHA1));
+ 80029e2:	46a4      	mov	ip, r4
+ 80029e4:	e8bc 000f 	ldmia.w	ip!, {r0, r1, r2, r3}
+ 80029e8:	6028      	str	r0, [r5, #0]
+ 80029ea:	6069      	str	r1, [r5, #4]
+ 80029ec:	60aa      	str	r2, [r5, #8]
+ 80029ee:	60eb      	str	r3, [r5, #12]
+ 80029f0:	f8dc 0000 	ldr.w	r0, [ip]
+ 80029f4:	6128      	str	r0, [r5, #16]
+	  hmac_result->hmac_tag_size = computed_size;
+ 80029f6:	9b07      	ldr	r3, [sp, #28]
+ 80029f8:	752b      	strb	r3, [r5, #20]
+	  return retval;
+ 80029fa:	e7db      	b.n	80029b4 <sts_hmac_sha1+0x1c>
+ 80029fc:	20000aa0 	.word	0x20000aa0
+ 8002a00:	080178d0 	.word	0x080178d0
+
+08002a04 <sts_hmac_verify>:
+{
+ 8002a04:	b530      	push	{r4, r5, lr}
+ 8002a06:	b085      	sub	sp, #20
+	uint8_t uid[8]="";
+ 8002a08:	2400      	movs	r4, #0
+ 8002a0a:	9402      	str	r4, [sp, #8]
+ 8002a0c:	9403      	str	r4, [sp, #12]
+	hmac_result.ac_pass = 60;
+ 8002a0e:	4d1c      	ldr	r5, [pc, #112]	; (8002a80 <sts_hmac_verify+0x7c>)
+ 8002a10:	233c      	movs	r3, #60	; 0x3c
+ 8002a12:	756b      	strb	r3, [r5, #21]
+	hmac_result.hmac_tag_size = 0;
+ 8002a14:	752c      	strb	r4, [r5, #20]
+	GetUniqueId(uid);
+ 8002a16:	a802      	add	r0, sp, #8
+ 8002a18:	f000 f8e2 	bl	8002be0 <GetUniqueId>
+	ret = sts_hmac_sha1((const uint8_t *) mKey, sizeof(mKey), (const uint8_t*)(uid+4), 4, &hmac_result);
+ 8002a1c:	9500      	str	r5, [sp, #0]
+ 8002a1e:	2304      	movs	r3, #4
+ 8002a20:	aa03      	add	r2, sp, #12
+ 8002a22:	2112      	movs	r1, #18
+ 8002a24:	4817      	ldr	r0, [pc, #92]	; (8002a84 <sts_hmac_verify+0x80>)
+ 8002a26:	f7ff ffb7 	bl	8002998 <sts_hmac_sha1>
+	for (i=0;i<sizeof(Computed_Tag_SHA1); i++) {
+ 8002a2a:	e00a      	b.n	8002a42 <sts_hmac_verify+0x3e>
+			APP_LOG(TS_OFF,VLEVEL_M,"0x%02x ", hmac_result.hmac_tag[i]);
+ 8002a2c:	4b14      	ldr	r3, [pc, #80]	; (8002a80 <sts_hmac_verify+0x7c>)
+ 8002a2e:	5d1b      	ldrb	r3, [r3, r4]
+ 8002a30:	9300      	str	r3, [sp, #0]
+ 8002a32:	4b15      	ldr	r3, [pc, #84]	; (8002a88 <sts_hmac_verify+0x84>)
+ 8002a34:	2200      	movs	r2, #0
+ 8002a36:	4611      	mov	r1, r2
+ 8002a38:	2002      	movs	r0, #2
+ 8002a3a:	f014 f87d 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+	for (i=0;i<sizeof(Computed_Tag_SHA1); i++) {
+ 8002a3e:	3401      	adds	r4, #1
+ 8002a40:	b2e4      	uxtb	r4, r4
+ 8002a42:	2c13      	cmp	r4, #19
+ 8002a44:	d9f2      	bls.n	8002a2c <sts_hmac_verify+0x28>
+	ret = memcmp(hmac_result.hmac_tag, (void *)sts_ac_code, sizeof(sts_ac_code));
+ 8002a46:	2214      	movs	r2, #20
+ 8002a48:	4910      	ldr	r1, [pc, #64]	; (8002a8c <sts_hmac_verify+0x88>)
+ 8002a4a:	480d      	ldr	r0, [pc, #52]	; (8002a80 <sts_hmac_verify+0x7c>)
+ 8002a4c:	f014 fe28 	bl	80176a0 <memcmp>
+	if (ret !=0)
+ 8002a50:	4604      	mov	r4, r0
+ 8002a52:	b150      	cbz	r0, 8002a6a <sts_hmac_verify+0x66>
+		hmac_result.ac_pass  =0U;
+ 8002a54:	2100      	movs	r1, #0
+ 8002a56:	4b0a      	ldr	r3, [pc, #40]	; (8002a80 <sts_hmac_verify+0x7c>)
+ 8002a58:	7559      	strb	r1, [r3, #21]
+		APP_LOG(TS_OFF, VLEVEL_M, "\r\nHMAC Verify Error \r\n");
+ 8002a5a:	4b0d      	ldr	r3, [pc, #52]	; (8002a90 <sts_hmac_verify+0x8c>)
+ 8002a5c:	460a      	mov	r2, r1
+ 8002a5e:	2002      	movs	r0, #2
+ 8002a60:	f014 f86a 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+}
+ 8002a64:	4620      	mov	r0, r4
+ 8002a66:	b005      	add	sp, #20
+ 8002a68:	bd30      	pop	{r4, r5, pc}
+		hmac_result.ac_pass = 1U;
+ 8002a6a:	4b05      	ldr	r3, [pc, #20]	; (8002a80 <sts_hmac_verify+0x7c>)
+ 8002a6c:	2201      	movs	r2, #1
+ 8002a6e:	755a      	strb	r2, [r3, #21]
+		APP_LOG(TS_OFF, VLEVEL_M, "\r\nHMAC Verify Success\r\n");
+ 8002a70:	4b08      	ldr	r3, [pc, #32]	; (8002a94 <sts_hmac_verify+0x90>)
+ 8002a72:	2200      	movs	r2, #0
+ 8002a74:	4611      	mov	r1, r2
+ 8002a76:	2002      	movs	r0, #2
+ 8002a78:	f014 f85e 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+	return ret;
+ 8002a7c:	e7f2      	b.n	8002a64 <sts_hmac_verify+0x60>
+ 8002a7e:	bf00      	nop
+ 8002a80:	20000ab4 	.word	0x20000ab4
+ 8002a84:	08017930 	.word	0x08017930
+ 8002a88:	080178f8 	.word	0x080178f8
+ 8002a8c:	20000e58 	.word	0x20000e58
+ 8002a90:	08017900 	.word	0x08017900
+ 8002a94:	08017918 	.word	0x08017918
+
+08002a98 <MX_SUBGHZ_Init>:
+
+SUBGHZ_HandleTypeDef hsubghz;
+
+/* SUBGHZ init function */
+void MX_SUBGHZ_Init(void)
+{
+ 8002a98:	b508      	push	{r3, lr}
+  /* USER CODE END SUBGHZ_Init 0 */
+
+  /* USER CODE BEGIN SUBGHZ_Init 1 */
+
+  /* USER CODE END SUBGHZ_Init 1 */
+  hsubghz.Init.BaudratePrescaler = SUBGHZSPI_BAUDRATEPRESCALER_4;
+ 8002a9a:	4805      	ldr	r0, [pc, #20]	; (8002ab0 <MX_SUBGHZ_Init+0x18>)
+ 8002a9c:	2308      	movs	r3, #8
+ 8002a9e:	6003      	str	r3, [r0, #0]
+  if (HAL_SUBGHZ_Init(&hsubghz) != HAL_OK)
+ 8002aa0:	f008 fbb2 	bl	800b208 <HAL_SUBGHZ_Init>
+ 8002aa4:	b900      	cbnz	r0, 8002aa8 <MX_SUBGHZ_Init+0x10>
+  }
+  /* USER CODE BEGIN SUBGHZ_Init 2 */
+
+  /* USER CODE END SUBGHZ_Init 2 */
+
+}
+ 8002aa6:	bd08      	pop	{r3, pc}
+    Error_Handler();
+ 8002aa8:	f7ff fe18 	bl	80026dc <Error_Handler>
+}
+ 8002aac:	e7fb      	b.n	8002aa6 <MX_SUBGHZ_Init+0xe>
+ 8002aae:	bf00      	nop
+ 8002ab0:	20000acc 	.word	0x20000acc
+
+08002ab4 <HAL_SUBGHZ_MspInit>:
+
+void HAL_SUBGHZ_MspInit(SUBGHZ_HandleTypeDef* subghzHandle)
+{
+ 8002ab4:	b500      	push	{lr}
+ 8002ab6:	b083      	sub	sp, #12
+  * @retval None
+  */
+__STATIC_INLINE void LL_APB3_GRP1_EnableClock(uint32_t Periphs)
+{
+  __IO uint32_t tmpreg;
+  SET_BIT(RCC->APB3ENR, Periphs);
+ 8002ab8:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8002abc:	6e5a      	ldr	r2, [r3, #100]	; 0x64
+ 8002abe:	f042 0201 	orr.w	r2, r2, #1
+ 8002ac2:	665a      	str	r2, [r3, #100]	; 0x64
+  /* Delay after an RCC peripheral clock enabling */
+  tmpreg = READ_BIT(RCC->APB3ENR, Periphs);
+ 8002ac4:	6e5b      	ldr	r3, [r3, #100]	; 0x64
+ 8002ac6:	f003 0301 	and.w	r3, r3, #1
+ 8002aca:	9301      	str	r3, [sp, #4]
+  (void)tmpreg;
+ 8002acc:	9b01      	ldr	r3, [sp, #4]
+  /* USER CODE END SUBGHZ_MspInit 0 */
+    /* SUBGHZ clock enable */
+    __HAL_RCC_SUBGHZSPI_CLK_ENABLE();
+
+    /* SUBGHZ interrupt Init */
+    HAL_NVIC_SetPriority(SUBGHZ_Radio_IRQn, 0, 0);
+ 8002ace:	2200      	movs	r2, #0
+ 8002ad0:	4611      	mov	r1, r2
+ 8002ad2:	2032      	movs	r0, #50	; 0x32
+ 8002ad4:	f006 f8a2 	bl	8008c1c <HAL_NVIC_SetPriority>
+    HAL_NVIC_EnableIRQ(SUBGHZ_Radio_IRQn);
+ 8002ad8:	2032      	movs	r0, #50	; 0x32
+ 8002ada:	f006 f8d7 	bl	8008c8c <HAL_NVIC_EnableIRQ>
+  /* USER CODE BEGIN SUBGHZ_MspInit 1 */
+
+  /* USER CODE END SUBGHZ_MspInit 1 */
+}
+ 8002ade:	b003      	add	sp, #12
+ 8002ae0:	f85d fb04 	ldr.w	pc, [sp], #4
+
+08002ae4 <tiny_snprintf_like>:
+
+  /* USER CODE END UTIL_LPM_SetStopMode_2 */
+}
+
+static void tiny_snprintf_like(char *buf, uint32_t maxsize, const char *strFormat, ...)
+{
+ 8002ae4:	b40c      	push	{r2, r3}
+ 8002ae6:	b500      	push	{lr}
+ 8002ae8:	b083      	sub	sp, #12
+ 8002aea:	ab04      	add	r3, sp, #16
+ 8002aec:	f853 2b04 	ldr.w	r2, [r3], #4
+  /* USER CODE BEGIN tiny_snprintf_like_1 */
+
+  /* USER CODE END tiny_snprintf_like_1 */
+  va_list vaArgs;
+  va_start(vaArgs, strFormat);
+ 8002af0:	9301      	str	r3, [sp, #4]
+  UTIL_ADV_TRACE_VSNPRINTF(buf, maxsize, strFormat, vaArgs);
+ 8002af2:	f014 fd11 	bl	8017518 <tiny_vsnprintf_like>
+  va_end(vaArgs);
+  /* USER CODE BEGIN tiny_snprintf_like_2 */
+
+  /* USER CODE END tiny_snprintf_like_2 */
+}
+ 8002af6:	b003      	add	sp, #12
+ 8002af8:	f85d eb04 	ldr.w	lr, [sp], #4
+ 8002afc:	b002      	add	sp, #8
+ 8002afe:	4770      	bx	lr
+
+08002b00 <TimestampNow>:
+{
+ 8002b00:	b530      	push	{r4, r5, lr}
+ 8002b02:	b085      	sub	sp, #20
+ 8002b04:	4604      	mov	r4, r0
+ 8002b06:	460d      	mov	r5, r1
+  SysTime_t curtime = SysTimeGet();
+ 8002b08:	a802      	add	r0, sp, #8
+ 8002b0a:	f014 fa79 	bl	8017000 <SysTimeGet>
+  tiny_snprintf_like((char *)buff, MAX_TS_SIZE, "%ds%03d:", curtime.Seconds, curtime.SubSeconds);
+ 8002b0e:	f9bd 300c 	ldrsh.w	r3, [sp, #12]
+ 8002b12:	9300      	str	r3, [sp, #0]
+ 8002b14:	9b02      	ldr	r3, [sp, #8]
+ 8002b16:	4a05      	ldr	r2, [pc, #20]	; (8002b2c <TimestampNow+0x2c>)
+ 8002b18:	2110      	movs	r1, #16
+ 8002b1a:	4620      	mov	r0, r4
+ 8002b1c:	f7ff ffe2 	bl	8002ae4 <tiny_snprintf_like>
+  *size = strlen((char *)buff);
+ 8002b20:	4620      	mov	r0, r4
+ 8002b22:	f7fe fc4d 	bl	80013c0 <strlen>
+ 8002b26:	8028      	strh	r0, [r5, #0]
+}
+ 8002b28:	b005      	add	sp, #20
+ 8002b2a:	bd30      	pop	{r4, r5, pc}
+ 8002b2c:	08017944 	.word	0x08017944
+
+08002b30 <SystemApp_Init>:
+{
+ 8002b30:	b510      	push	{r4, lr}
+  MODIFY_REG(RCC->CFGR, RCC_CFGR_STOPWUCK, Clock);
+ 8002b32:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 8002b36:	6893      	ldr	r3, [r2, #8]
+ 8002b38:	f423 4300 	bic.w	r3, r3, #32768	; 0x8000
+ 8002b3c:	6093      	str	r3, [r2, #8]
+  UTIL_TIMER_Init();
+ 8002b3e:	f014 fae3 	bl	8017108 <UTIL_TIMER_Init>
+  SYS_TimerInitialisedFlag = 1;
+ 8002b42:	2401      	movs	r4, #1
+ 8002b44:	4b0d      	ldr	r3, [pc, #52]	; (8002b7c <SystemApp_Init+0x4c>)
+ 8002b46:	701c      	strb	r4, [r3, #0]
+  DBG_Init();
+ 8002b48:	f000 f8bc 	bl	8002cc4 <DBG_Init>
+  UTIL_ADV_TRACE_Init();
+ 8002b4c:	f013 ff80 	bl	8016a50 <UTIL_ADV_TRACE_Init>
+  UTIL_ADV_TRACE_RegisterTimeStampFunction(TimestampNow);
+ 8002b50:	480b      	ldr	r0, [pc, #44]	; (8002b80 <SystemApp_Init+0x50>)
+ 8002b52:	f013 ff97 	bl	8016a84 <UTIL_ADV_TRACE_RegisterTimeStampFunction>
+  __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_OPTVERR);
+ 8002b56:	4b0b      	ldr	r3, [pc, #44]	; (8002b84 <SystemApp_Init+0x54>)
+ 8002b58:	f44f 4200 	mov.w	r2, #32768	; 0x8000
+ 8002b5c:	611a      	str	r2, [r3, #16]
+  UTIL_ADV_TRACE_SetVerboseLevel(VERBOSE_LEVEL);
+ 8002b5e:	4620      	mov	r0, r4
+ 8002b60:	f013 ff96 	bl	8016a90 <UTIL_ADV_TRACE_SetVerboseLevel>
+  SYS_InitMeasurement();
+ 8002b64:	f7ff f9da 	bl	8001f1c <SYS_InitMeasurement>
+  EnvSensors_Init();
+ 8002b68:	f000 f942 	bl	8002df0 <EnvSensors_Init>
+  UTIL_LPM_Init();
+ 8002b6c:	f014 f8a0 	bl	8016cb0 <UTIL_LPM_Init>
+  UTIL_LPM_SetOffMode((1 << CFG_LPM_APPLI_Id), UTIL_LPM_DISABLE);
+ 8002b70:	4621      	mov	r1, r4
+ 8002b72:	4620      	mov	r0, r4
+ 8002b74:	f014 f8bc 	bl	8016cf0 <UTIL_LPM_SetOffMode>
+}
+ 8002b78:	bd10      	pop	{r4, pc}
+ 8002b7a:	bf00      	nop
+ 8002b7c:	20000ad8 	.word	0x20000ad8
+ 8002b80:	08002b01 	.word	0x08002b01
+ 8002b84:	58004000 	.word	0x58004000
+
+08002b88 <UTIL_SEQ_Idle>:
+{
+ 8002b88:	b508      	push	{r3, lr}
+  UTIL_LPM_EnterLowPower();
+ 8002b8a:	f014 f8c7 	bl	8016d1c <UTIL_LPM_EnterLowPower>
+}
+ 8002b8e:	bd08      	pop	{r3, pc}
+
+08002b90 <GetBatteryLevel>:
+{
+ 8002b90:	b508      	push	{r3, lr}
+  batteryLevelmV = (uint16_t) SYS_GetBatteryLevel();
+ 8002b92:	f7ff f9cb 	bl	8001f2c <SYS_GetBatteryLevel>
+  if (batteryLevelmV > VDD_BAT)
+ 8002b96:	f640 33b8 	movw	r3, #3000	; 0xbb8
+ 8002b9a:	4298      	cmp	r0, r3
+ 8002b9c:	d80d      	bhi.n	8002bba <GetBatteryLevel+0x2a>
+  else if (batteryLevelmV < VDD_MIN)
+ 8002b9e:	f5b0 6fe1 	cmp.w	r0, #1800	; 0x708
+ 8002ba2:	d30c      	bcc.n	8002bbe <GetBatteryLevel+0x2e>
+    batteryLevel = (((uint32_t)(batteryLevelmV - VDD_MIN) * LORAWAN_MAX_BAT) / (VDD_BAT - VDD_MIN));
+ 8002ba4:	f5a0 60e1 	sub.w	r0, r0, #1800	; 0x708
+ 8002ba8:	ebc0 10c0 	rsb	r0, r0, r0, lsl #7
+ 8002bac:	0040      	lsls	r0, r0, #1
+ 8002bae:	4b05      	ldr	r3, [pc, #20]	; (8002bc4 <GetBatteryLevel+0x34>)
+ 8002bb0:	fba3 3000 	umull	r3, r0, r3, r0
+ 8002bb4:	f3c0 10c7 	ubfx	r0, r0, #7, #8
+ 8002bb8:	e000      	b.n	8002bbc <GetBatteryLevel+0x2c>
+    batteryLevel = LORAWAN_MAX_BAT;
+ 8002bba:	20fe      	movs	r0, #254	; 0xfe
+}
+ 8002bbc:	bd08      	pop	{r3, pc}
+    batteryLevel = 0;
+ 8002bbe:	2000      	movs	r0, #0
+ 8002bc0:	e7fc      	b.n	8002bbc <GetBatteryLevel+0x2c>
+ 8002bc2:	bf00      	nop
+ 8002bc4:	1b4e81b5 	.word	0x1b4e81b5
+
+08002bc8 <GetTemperatureLevel>:
+{
+ 8002bc8:	b500      	push	{lr}
+ 8002bca:	b087      	sub	sp, #28
+  EnvSensors_Read(&sensor_data);
+ 8002bcc:	4668      	mov	r0, sp
+ 8002bce:	f000 f8f3 	bl	8002db8 <EnvSensors_Read>
+  temperatureLevel = (int16_t)(sensor_data.temperature);
+ 8002bd2:	9801      	ldr	r0, [sp, #4]
+ 8002bd4:	f7fe ff76 	bl	8001ac4 <__aeabi_f2iz>
+}
+ 8002bd8:	b200      	sxth	r0, r0
+ 8002bda:	b007      	add	sp, #28
+ 8002bdc:	f85d fb04 	ldr.w	pc, [sp], #4
+
+08002be0 <GetUniqueId>:
+{
+ 8002be0:	b538      	push	{r3, r4, r5, lr}
+ 8002be2:	4604      	mov	r4, r0
+  * @brief  Return the Unique Device Number
+  * @retval Values between Min_Data=0x00000000 and Max_Data=0xFFFFFFFF
+  */
+__STATIC_INLINE uint32_t LL_FLASH_GetUDN(void)
+{
+  return (READ_REG(*((uint32_t *)UID64_BASE)));
+ 8002be4:	4b18      	ldr	r3, [pc, #96]	; (8002c48 <GetUniqueId+0x68>)
+ 8002be6:	f8d3 3580 	ldr.w	r3, [r3, #1408]	; 0x580
+  if (val == 0xFFFFFFFF)  /* Normally this should not happen */
+ 8002bea:	f1b3 3fff 	cmp.w	r3, #4294967295
+ 8002bee:	d013      	beq.n	8002c18 <GetUniqueId+0x38>
+    id[7] = val & 0xFF;
+ 8002bf0:	71c3      	strb	r3, [r0, #7]
+    id[6] = (val >> 8) & 0xFF;
+ 8002bf2:	0a1a      	lsrs	r2, r3, #8
+ 8002bf4:	7182      	strb	r2, [r0, #6]
+    id[5] = (val >> 16) & 0xFF;
+ 8002bf6:	0c1a      	lsrs	r2, r3, #16
+ 8002bf8:	7142      	strb	r2, [r0, #5]
+    id[4] = (val >> 24) & 0xFF;
+ 8002bfa:	0e1b      	lsrs	r3, r3, #24
+ 8002bfc:	7103      	strb	r3, [r0, #4]
+  *         For STM32WLxxxx devices, the device ID is 0x15
+  * @retval Values between Min_Data=0x00 and Max_Data=0xFF (ex: Device ID is 0x15)
+  */
+__STATIC_INLINE uint32_t LL_FLASH_GetDeviceID(void)
+{
+  return ((READ_REG(*((uint32_t *)UID64_BASE + 1U))) & 0x000000FFU);
+ 8002bfe:	4b12      	ldr	r3, [pc, #72]	; (8002c48 <GetUniqueId+0x68>)
+ 8002c00:	f8d3 2584 	ldr.w	r2, [r3, #1412]	; 0x584
+    id[3] = val & 0xFF;
+ 8002c04:	70c2      	strb	r2, [r0, #3]
+  * @note   For STM32WLxxxx devices, the ST Company ID is 0x0080E1
+  * @retval Values between Min_Data=0x00 and Max_Data=0xFFFFFF (ex: ST Company ID is 0x0080E1)
+  */
+__STATIC_INLINE uint32_t LL_FLASH_GetSTCompanyID(void)
+{
+  return (((READ_REG(*((uint32_t *)UID64_BASE + 1U))) >> 8U) & 0x00FFFFFFU);
+ 8002c06:	f8d3 3584 	ldr.w	r3, [r3, #1412]	; 0x584
+ 8002c0a:	0a1a      	lsrs	r2, r3, #8
+    id[2] = val & 0xFF;
+ 8002c0c:	7082      	strb	r2, [r0, #2]
+    id[1] = (val >> 8) & 0xFF;
+ 8002c0e:	0c1a      	lsrs	r2, r3, #16
+ 8002c10:	7042      	strb	r2, [r0, #1]
+    id[0] = (val >> 16) & 0xFF;
+ 8002c12:	0e1b      	lsrs	r3, r3, #24
+ 8002c14:	7003      	strb	r3, [r0, #0]
+}
+ 8002c16:	bd38      	pop	{r3, r4, r5, pc}
+    uint32_t ID_1_3_val = HAL_GetUIDw0() + HAL_GetUIDw2();
+ 8002c18:	f005 faec 	bl	80081f4 <HAL_GetUIDw0>
+ 8002c1c:	4605      	mov	r5, r0
+ 8002c1e:	f005 faf5 	bl	800820c <HAL_GetUIDw2>
+ 8002c22:	4405      	add	r5, r0
+    uint32_t ID_2_val = HAL_GetUIDw1();
+ 8002c24:	f005 faec 	bl	8008200 <HAL_GetUIDw1>
+    id[7] = (ID_1_3_val) >> 24;
+ 8002c28:	0e2b      	lsrs	r3, r5, #24
+ 8002c2a:	71e3      	strb	r3, [r4, #7]
+    id[6] = (ID_1_3_val) >> 16;
+ 8002c2c:	0c2b      	lsrs	r3, r5, #16
+ 8002c2e:	71a3      	strb	r3, [r4, #6]
+    id[5] = (ID_1_3_val) >> 8;
+ 8002c30:	0a2b      	lsrs	r3, r5, #8
+ 8002c32:	7163      	strb	r3, [r4, #5]
+    id[4] = (ID_1_3_val);
+ 8002c34:	7125      	strb	r5, [r4, #4]
+    id[3] = (ID_2_val) >> 24;
+ 8002c36:	0e03      	lsrs	r3, r0, #24
+ 8002c38:	70e3      	strb	r3, [r4, #3]
+    id[2] = (ID_2_val) >> 16;
+ 8002c3a:	0c03      	lsrs	r3, r0, #16
+ 8002c3c:	70a3      	strb	r3, [r4, #2]
+    id[1] = (ID_2_val) >> 8;
+ 8002c3e:	0a03      	lsrs	r3, r0, #8
+ 8002c40:	7063      	strb	r3, [r4, #1]
+    id[0] = (ID_2_val);
+ 8002c42:	7020      	strb	r0, [r4, #0]
+ 8002c44:	e7e7      	b.n	8002c16 <GetUniqueId+0x36>
+ 8002c46:	bf00      	nop
+ 8002c48:	1fff7000 	.word	0x1fff7000
+
+08002c4c <GetDevAddr>:
+{
+ 8002c4c:	b538      	push	{r3, r4, r5, lr}
+  return (READ_REG(*((uint32_t *)UID64_BASE)));
+ 8002c4e:	4b0a      	ldr	r3, [pc, #40]	; (8002c78 <GetDevAddr+0x2c>)
+ 8002c50:	f8d3 3580 	ldr.w	r3, [r3, #1408]	; 0x580
+  *devAddr = LL_FLASH_GetUDN();
+ 8002c54:	6003      	str	r3, [r0, #0]
+  if (*devAddr == 0xFFFFFFFF)
+ 8002c56:	f1b3 3fff 	cmp.w	r3, #4294967295
+ 8002c5a:	d000      	beq.n	8002c5e <GetDevAddr+0x12>
+}
+ 8002c5c:	bd38      	pop	{r3, r4, r5, pc}
+ 8002c5e:	4604      	mov	r4, r0
+    *devAddr = ((HAL_GetUIDw0()) ^ (HAL_GetUIDw1()) ^ (HAL_GetUIDw2()));
+ 8002c60:	f005 fac8 	bl	80081f4 <HAL_GetUIDw0>
+ 8002c64:	4605      	mov	r5, r0
+ 8002c66:	f005 facb 	bl	8008200 <HAL_GetUIDw1>
+ 8002c6a:	4045      	eors	r5, r0
+ 8002c6c:	f005 face 	bl	800820c <HAL_GetUIDw2>
+ 8002c70:	4045      	eors	r5, r0
+ 8002c72:	6025      	str	r5, [r4, #0]
+}
+ 8002c74:	e7f2      	b.n	8002c5c <GetDevAddr+0x10>
+ 8002c76:	bf00      	nop
+ 8002c78:	1fff7000 	.word	0x1fff7000
+
+08002c7c <UTIL_ADV_TRACE_PreSendHook>:
+{
+ 8002c7c:	b508      	push	{r3, lr}
+  UTIL_LPM_SetStopMode((1 << CFG_LPM_UART_TX_Id), UTIL_LPM_DISABLE);
+ 8002c7e:	2101      	movs	r1, #1
+ 8002c80:	2002      	movs	r0, #2
+ 8002c82:	f014 f81f 	bl	8016cc4 <UTIL_LPM_SetStopMode>
+}
+ 8002c86:	bd08      	pop	{r3, pc}
+
+08002c88 <UTIL_ADV_TRACE_PostSendHook>:
+{
+ 8002c88:	b508      	push	{r3, lr}
+  UTIL_LPM_SetStopMode((1 << CFG_LPM_UART_TX_Id), UTIL_LPM_ENABLE);
+ 8002c8a:	2100      	movs	r1, #0
+ 8002c8c:	2002      	movs	r0, #2
+ 8002c8e:	f014 f819 	bl	8016cc4 <UTIL_LPM_SetStopMode>
+}
+ 8002c92:	bd08      	pop	{r3, pc}
+
+08002c94 <HAL_InitTick>:
+  /* USER CODE END HAL_InitTick_1 */
+  return HAL_OK;
+  /* USER CODE BEGIN HAL_InitTick_2 */
+
+  /* USER CODE END HAL_InitTick_2 */
+}
+ 8002c94:	2000      	movs	r0, #0
+ 8002c96:	4770      	bx	lr
+
+08002c98 <HAL_GetTick>:
+
+/**
+  * @note This function overwrites the __weak one from HAL
+  */
+uint32_t HAL_GetTick(void)
+{
+ 8002c98:	b508      	push	{r3, lr}
+  uint32_t ret = 0;
+  /* TIMER_IF can be based on other counter the SysTick e.g. RTC */
+  /* USER CODE BEGIN HAL_GetTick_1 */
+
+  /* USER CODE END HAL_GetTick_1 */
+  if (SYS_TimerInitialisedFlag == 0)
+ 8002c9a:	4b04      	ldr	r3, [pc, #16]	; (8002cac <HAL_GetTick+0x14>)
+ 8002c9c:	781b      	ldrb	r3, [r3, #0]
+ 8002c9e:	b90b      	cbnz	r3, 8002ca4 <HAL_GetTick+0xc>
+  uint32_t ret = 0;
+ 8002ca0:	2000      	movs	r0, #0
+  }
+  /* USER CODE BEGIN HAL_GetTick_2 */
+
+  /* USER CODE END HAL_GetTick_2 */
+  return ret;
+}
+ 8002ca2:	bd08      	pop	{r3, pc}
+    ret = TIMER_IF_GetTimerValue();
+ 8002ca4:	f000 f8d0 	bl	8002e48 <TIMER_IF_GetTimerValue>
+ 8002ca8:	e7fb      	b.n	8002ca2 <HAL_GetTick+0xa>
+ 8002caa:	bf00      	nop
+ 8002cac:	20000ad8 	.word	0x20000ad8
+
+08002cb0 <HAL_Delay>:
+
+/**
+  * @note This function overwrites the __weak one from HAL
+  */
+void HAL_Delay(__IO uint32_t Delay)
+{
+ 8002cb0:	b500      	push	{lr}
+ 8002cb2:	b083      	sub	sp, #12
+ 8002cb4:	9001      	str	r0, [sp, #4]
+  /* TIMER_IF can be based on other counter the SysTick e.g. RTC */
+  /* USER CODE BEGIN HAL_Delay_1 */
+
+  /* USER CODE END HAL_Delay_1 */
+  TIMER_IF_DelayMs(Delay);
+ 8002cb6:	9801      	ldr	r0, [sp, #4]
+ 8002cb8:	f000 f9ac 	bl	8003014 <TIMER_IF_DelayMs>
+  /* USER CODE BEGIN HAL_Delay_2 */
+
+  /* USER CODE END HAL_Delay_2 */
+}
+ 8002cbc:	b003      	add	sp, #12
+ 8002cbe:	f85d fb04 	ldr.w	pc, [sp], #4
+	...
+
+08002cc4 <DBG_Init>:
+
+/**
+  * @brief Initializes the SW probes pins and the monitor RF pins via Alternate Function
+  */
+void DBG_Init(void)
+{
+ 8002cc4:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
+ 8002cc8:	b08b      	sub	sp, #44	; 0x2c
+  *         (*) value not defined in all devices
+  * @retval None
+  */
+__STATIC_INLINE void LL_EXTI_EnableIT_32_63(uint32_t ExtiLine)
+{
+  SET_BIT(EXTI->IMR2, ExtiLine);
+ 8002cca:	4a39      	ldr	r2, [pc, #228]	; (8002db0 <DBG_Init+0xec>)
+ 8002ccc:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 8002cd0:	f443 4380 	orr.w	r3, r3, #16384	; 0x4000
+ 8002cd4:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+  HAL_DBGMCU_DisableDBGStandbyMode();
+#elif defined (DEBUGGER_ENABLED) && ( DEBUGGER_ENABLED == 1 )
+  /*Debug power up request wakeup CBDGPWRUPREQ*/
+  LL_EXTI_EnableIT_32_63(LL_EXTI_LINE_46);
+  /* Disabled HAL_DBGMCU_  */
+  HAL_DBGMCU_EnableDBGSleepMode();
+ 8002cd8:	f005 fa9e 	bl	8008218 <HAL_DBGMCU_EnableDBGSleepMode>
+  HAL_DBGMCU_EnableDBGStopMode();
+ 8002cdc:	f005 faa4 	bl	8008228 <HAL_DBGMCU_EnableDBGStopMode>
+  HAL_DBGMCU_EnableDBGStandbyMode();
+ 8002ce0:	f005 faaa 	bl	8008238 <HAL_DBGMCU_EnableDBGStandbyMode>
+#elif !defined (DEBUGGER_ENABLED)
+#error "DEBUGGER_ENABLED not defined or out of range <0,1>"
+#endif /* DEBUGGER_OFF */
+
+  GPIO_InitTypeDef  GPIO_InitStruct = {0};
+ 8002ce4:	2400      	movs	r4, #0
+ 8002ce6:	9405      	str	r4, [sp, #20]
+ 8002ce8:	9406      	str	r4, [sp, #24]
+ 8002cea:	9407      	str	r4, [sp, #28]
+ 8002cec:	9408      	str	r4, [sp, #32]
+ 8002cee:	9409      	str	r4, [sp, #36]	; 0x24
+
+  /* Configure the GPIO pin */
+  GPIO_InitStruct.Mode   = GPIO_MODE_OUTPUT_PP;
+ 8002cf0:	2301      	movs	r3, #1
+ 8002cf2:	9306      	str	r3, [sp, #24]
+  GPIO_InitStruct.Pull   = GPIO_NOPULL;
+  GPIO_InitStruct.Speed  = GPIO_SPEED_FREQ_VERY_HIGH;
+ 8002cf4:	2303      	movs	r3, #3
+ 8002cf6:	9308      	str	r3, [sp, #32]
+  SET_BIT(RCC->AHB2ENR, Periphs);
+ 8002cf8:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8002cfc:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 8002cfe:	f042 0202 	orr.w	r2, r2, #2
+ 8002d02:	64da      	str	r2, [r3, #76]	; 0x4c
+  tmpreg = READ_BIT(RCC->AHB2ENR, Periphs);
+ 8002d04:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 8002d06:	f002 0202 	and.w	r2, r2, #2
+ 8002d0a:	9204      	str	r2, [sp, #16]
+  (void)tmpreg;
+ 8002d0c:	9a04      	ldr	r2, [sp, #16]
+  SET_BIT(RCC->AHB2ENR, Periphs);
+ 8002d0e:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 8002d10:	f042 0202 	orr.w	r2, r2, #2
+ 8002d14:	64da      	str	r2, [r3, #76]	; 0x4c
+  tmpreg = READ_BIT(RCC->AHB2ENR, Periphs);
+ 8002d16:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 8002d18:	f002 0202 	and.w	r2, r2, #2
+ 8002d1c:	9203      	str	r2, [sp, #12]
+  (void)tmpreg;
+ 8002d1e:	9a03      	ldr	r2, [sp, #12]
+  SET_BIT(RCC->AHB2ENR, Periphs);
+ 8002d20:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 8002d22:	f042 0202 	orr.w	r2, r2, #2
+ 8002d26:	64da      	str	r2, [r3, #76]	; 0x4c
+  tmpreg = READ_BIT(RCC->AHB2ENR, Periphs);
+ 8002d28:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 8002d2a:	f002 0202 	and.w	r2, r2, #2
+ 8002d2e:	9202      	str	r2, [sp, #8]
+  (void)tmpreg;
+ 8002d30:	9a02      	ldr	r2, [sp, #8]
+  SET_BIT(RCC->AHB2ENR, Periphs);
+ 8002d32:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 8002d34:	f042 0202 	orr.w	r2, r2, #2
+ 8002d38:	64da      	str	r2, [r3, #76]	; 0x4c
+  tmpreg = READ_BIT(RCC->AHB2ENR, Periphs);
+ 8002d3a:	6cdb      	ldr	r3, [r3, #76]	; 0x4c
+ 8002d3c:	f003 0302 	and.w	r3, r3, #2
+ 8002d40:	9301      	str	r3, [sp, #4]
+  (void)tmpreg;
+ 8002d42:	9b01      	ldr	r3, [sp, #4]
+  PROBE_LINE1_CLK_ENABLE();
+  PROBE_LINE2_CLK_ENABLE();
+  PROBE_LINE3_CLK_ENABLE();
+  PROBE_LINE4_CLK_ENABLE();
+
+  GPIO_InitStruct.Pin    = PROBE_LINE1_PIN;
+ 8002d44:	f44f 5980 	mov.w	r9, #4096	; 0x1000
+ 8002d48:	f8cd 9014 	str.w	r9, [sp, #20]
+  HAL_GPIO_Init(PROBE_LINE1_PORT, &GPIO_InitStruct);
+ 8002d4c:	4d19      	ldr	r5, [pc, #100]	; (8002db4 <DBG_Init+0xf0>)
+ 8002d4e:	a905      	add	r1, sp, #20
+ 8002d50:	4628      	mov	r0, r5
+ 8002d52:	f006 fb7b 	bl	800944c <HAL_GPIO_Init>
+  GPIO_InitStruct.Pin    = PROBE_LINE2_PIN;
+ 8002d56:	f44f 5800 	mov.w	r8, #8192	; 0x2000
+ 8002d5a:	f8cd 8014 	str.w	r8, [sp, #20]
+  HAL_GPIO_Init(PROBE_LINE2_PORT, &GPIO_InitStruct);
+ 8002d5e:	a905      	add	r1, sp, #20
+ 8002d60:	4628      	mov	r0, r5
+ 8002d62:	f006 fb73 	bl	800944c <HAL_GPIO_Init>
+  GPIO_InitStruct.Pin    = PROBE_LINE3_PIN;
+ 8002d66:	f44f 6700 	mov.w	r7, #2048	; 0x800
+ 8002d6a:	9705      	str	r7, [sp, #20]
+  HAL_GPIO_Init(PROBE_LINE3_PORT, &GPIO_InitStruct);
+ 8002d6c:	a905      	add	r1, sp, #20
+ 8002d6e:	4628      	mov	r0, r5
+ 8002d70:	f006 fb6c 	bl	800944c <HAL_GPIO_Init>
+  GPIO_InitStruct.Pin    = PROBE_LINE4_PIN;
+ 8002d74:	f44f 4600 	mov.w	r6, #32768	; 0x8000
+ 8002d78:	9605      	str	r6, [sp, #20]
+  HAL_GPIO_Init(PROBE_LINE4_PORT, &GPIO_InitStruct);
+ 8002d7a:	a905      	add	r1, sp, #20
+ 8002d7c:	4628      	mov	r0, r5
+ 8002d7e:	f006 fb65 	bl	800944c <HAL_GPIO_Init>
+
+  /* Reset probe Pins */
+  HAL_GPIO_WritePin(PROBE_LINE1_PORT, PROBE_LINE1_PIN, GPIO_PIN_RESET);
+ 8002d82:	4622      	mov	r2, r4
+ 8002d84:	4649      	mov	r1, r9
+ 8002d86:	4628      	mov	r0, r5
+ 8002d88:	f006 fcb7 	bl	80096fa <HAL_GPIO_WritePin>
+  HAL_GPIO_WritePin(PROBE_LINE2_PORT, PROBE_LINE2_PIN, GPIO_PIN_RESET);
+ 8002d8c:	4622      	mov	r2, r4
+ 8002d8e:	4641      	mov	r1, r8
+ 8002d90:	4628      	mov	r0, r5
+ 8002d92:	f006 fcb2 	bl	80096fa <HAL_GPIO_WritePin>
+  HAL_GPIO_WritePin(PROBE_LINE3_PORT, PROBE_LINE3_PIN, GPIO_PIN_RESET);
+ 8002d96:	4622      	mov	r2, r4
+ 8002d98:	4639      	mov	r1, r7
+ 8002d9a:	4628      	mov	r0, r5
+ 8002d9c:	f006 fcad 	bl	80096fa <HAL_GPIO_WritePin>
+  HAL_GPIO_WritePin(PROBE_LINE4_PORT, PROBE_LINE4_PIN, GPIO_PIN_RESET);
+ 8002da0:	4622      	mov	r2, r4
+ 8002da2:	4631      	mov	r1, r6
+ 8002da4:	4628      	mov	r0, r5
+ 8002da6:	f006 fca8 	bl	80096fa <HAL_GPIO_WritePin>
+#endif /* DEBUG_RF_BUSY_ENABLED */
+
+  /* USER CODE BEGIN DBG_Init_3 */
+
+  /* USER CODE END DBG_Init_3 */
+}
+ 8002daa:	b00b      	add	sp, #44	; 0x2c
+ 8002dac:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
+ 8002db0:	58000800 	.word	0x58000800
+ 8002db4:	48000400 	.word	0x48000400
+
+08002db8 <EnvSensors_Read>:
+
+/* USER CODE END PFP */
+
+/* Exported functions --------------------------------------------------------*/
+int32_t EnvSensors_Read(sensor_t *sensor_data)
+{
+ 8002db8:	b510      	push	{r4, lr}
+ 8002dba:	4604      	mov	r4, r0
+#if (USE_IKS01A3_ENV_SENSOR_LPS22HH_0 == 1)
+  IKS01A3_ENV_SENSOR_GetValue(IKS01A3_LPS22HH_0, ENV_PRESSURE, &PRESSURE_Value);
+  IKS01A3_ENV_SENSOR_GetValue(IKS01A3_LPS22HH_0, ENV_TEMPERATURE, &TEMPERATURE_Value);
+#endif /* USE_IKS01A3_ENV_SENSOR_LPS22HH_0 */
+#else
+  TEMPERATURE_Value = (SYS_GetTemperatureLevel() >> 8);
+ 8002dbc:	f7ff f8d8 	bl	8001f70 <SYS_GetTemperatureLevel>
+ 8002dc0:	f340 200f 	sbfx	r0, r0, #8, #16
+ 8002dc4:	f7fe fe2a 	bl	8001a1c <__aeabi_i2f>
+#endif  /* SENSOR_ENABLED */
+
+  sensor_data->humidity    = HUMIDITY_Value;
+ 8002dc8:	4b05      	ldr	r3, [pc, #20]	; (8002de0 <EnvSensors_Read+0x28>)
+ 8002dca:	60a3      	str	r3, [r4, #8]
+  sensor_data->temperature = TEMPERATURE_Value;
+ 8002dcc:	6060      	str	r0, [r4, #4]
+  sensor_data->pressure    = PRESSURE_Value;
+ 8002dce:	4b05      	ldr	r3, [pc, #20]	; (8002de4 <EnvSensors_Read+0x2c>)
+ 8002dd0:	6023      	str	r3, [r4, #0]
+
+  sensor_data->latitude  = (int32_t)((STSOP_LATTITUDE  * MAX_GPS_POS) / 90);
+ 8002dd2:	4b05      	ldr	r3, [pc, #20]	; (8002de8 <EnvSensors_Read+0x30>)
+ 8002dd4:	60e3      	str	r3, [r4, #12]
+  sensor_data->longitude = (int32_t)((STSOP_LONGITUDE  * MAX_GPS_POS) / 180);
+ 8002dd6:	4b05      	ldr	r3, [pc, #20]	; (8002dec <EnvSensors_Read+0x34>)
+ 8002dd8:	6123      	str	r3, [r4, #16]
+
+  return 0;
+  /* USER CODE END EnvSensors_Read */
+}
+ 8002dda:	2000      	movs	r0, #0
+ 8002ddc:	bd10      	pop	{r4, pc}
+ 8002dde:	bf00      	nop
+ 8002de0:	42480000 	.word	0x42480000
+ 8002de4:	447a0000 	.word	0x447a0000
+ 8002de8:	003e090d 	.word	0x003e090d
+ 8002dec:	000503ab 	.word	0x000503ab
+
+08002df0 <EnvSensors_Init>:
+#elif !defined (SENSOR_ENABLED)
+#error SENSOR_ENABLED not defined
+#endif /* SENSOR_ENABLED  */
+  /* USER CODE END EnvSensors_Init */
+  return ret;
+}
+ 8002df0:	2000      	movs	r0, #0
+ 8002df2:	4770      	bx	lr
+
+08002df4 <TIMER_IF_SetTimerContext>:
+  * @retval If binary mode is none, Value between Min_Data=0x0 and Max_Data=0x7FFF
+  *         else Value between Min_Data=0x0 and Max_Data=0xFFFFFFFF
+  */
+__STATIC_INLINE uint32_t LL_RTC_TIME_GetSubSecond(RTC_TypeDef *RTCx)
+{
+  return (uint32_t)(READ_BIT(RTCx->SSR, RTC_SSR_SS));
+ 8002df4:	4b06      	ldr	r3, [pc, #24]	; (8002e10 <TIMER_IF_SetTimerContext+0x1c>)
+ 8002df6:	6898      	ldr	r0, [r3, #8]
+  /* USER CODE BEGIN GetTimerTicks */
+
+  /* USER CODE END GetTimerTicks */
+  uint32_t ssr = LL_RTC_TIME_GetSubSecond(RTC);
+  /* read twice to make sure value it valid*/
+  while (ssr != LL_RTC_TIME_GetSubSecond(RTC))
+ 8002df8:	e001      	b.n	8002dfe <TIMER_IF_SetTimerContext+0xa>
+ 8002dfa:	4b05      	ldr	r3, [pc, #20]	; (8002e10 <TIMER_IF_SetTimerContext+0x1c>)
+ 8002dfc:	6898      	ldr	r0, [r3, #8]
+ 8002dfe:	4b04      	ldr	r3, [pc, #16]	; (8002e10 <TIMER_IF_SetTimerContext+0x1c>)
+ 8002e00:	689b      	ldr	r3, [r3, #8]
+ 8002e02:	4283      	cmp	r3, r0
+ 8002e04:	d1f9      	bne.n	8002dfa <TIMER_IF_SetTimerContext+0x6>
+  {
+    ssr = LL_RTC_TIME_GetSubSecond(RTC);
+  }
+  return UINT32_MAX - ssr;
+ 8002e06:	43c0      	mvns	r0, r0
+  RtcTimerContext = GetTimerTicks();
+ 8002e08:	4b02      	ldr	r3, [pc, #8]	; (8002e14 <TIMER_IF_SetTimerContext+0x20>)
+ 8002e0a:	6018      	str	r0, [r3, #0]
+}
+ 8002e0c:	4770      	bx	lr
+ 8002e0e:	bf00      	nop
+ 8002e10:	40002800 	.word	0x40002800
+ 8002e14:	20000adc 	.word	0x20000adc
+
+08002e18 <TIMER_IF_GetTimerContext>:
+}
+ 8002e18:	4b01      	ldr	r3, [pc, #4]	; (8002e20 <TIMER_IF_GetTimerContext+0x8>)
+ 8002e1a:	6818      	ldr	r0, [r3, #0]
+ 8002e1c:	4770      	bx	lr
+ 8002e1e:	bf00      	nop
+ 8002e20:	20000adc 	.word	0x20000adc
+
+08002e24 <TIMER_IF_GetTimerElapsedTime>:
+ 8002e24:	4b06      	ldr	r3, [pc, #24]	; (8002e40 <TIMER_IF_GetTimerElapsedTime+0x1c>)
+ 8002e26:	6898      	ldr	r0, [r3, #8]
+  while (ssr != LL_RTC_TIME_GetSubSecond(RTC))
+ 8002e28:	e001      	b.n	8002e2e <TIMER_IF_GetTimerElapsedTime+0xa>
+ 8002e2a:	4b05      	ldr	r3, [pc, #20]	; (8002e40 <TIMER_IF_GetTimerElapsedTime+0x1c>)
+ 8002e2c:	6898      	ldr	r0, [r3, #8]
+ 8002e2e:	4b04      	ldr	r3, [pc, #16]	; (8002e40 <TIMER_IF_GetTimerElapsedTime+0x1c>)
+ 8002e30:	689b      	ldr	r3, [r3, #8]
+ 8002e32:	4283      	cmp	r3, r0
+ 8002e34:	d1f9      	bne.n	8002e2a <TIMER_IF_GetTimerElapsedTime+0x6>
+  return UINT32_MAX - ssr;
+ 8002e36:	43c0      	mvns	r0, r0
+  ret = ((uint32_t)(GetTimerTicks() - RtcTimerContext));
+ 8002e38:	4b02      	ldr	r3, [pc, #8]	; (8002e44 <TIMER_IF_GetTimerElapsedTime+0x20>)
+ 8002e3a:	681b      	ldr	r3, [r3, #0]
+}
+ 8002e3c:	1ac0      	subs	r0, r0, r3
+ 8002e3e:	4770      	bx	lr
+ 8002e40:	40002800 	.word	0x40002800
+ 8002e44:	20000adc 	.word	0x20000adc
+
+08002e48 <TIMER_IF_GetTimerValue>:
+  if (RTC_Initialized == true)
+ 8002e48:	4b07      	ldr	r3, [pc, #28]	; (8002e68 <TIMER_IF_GetTimerValue+0x20>)
+ 8002e4a:	781b      	ldrb	r3, [r3, #0]
+ 8002e4c:	b153      	cbz	r3, 8002e64 <TIMER_IF_GetTimerValue+0x1c>
+ 8002e4e:	4b07      	ldr	r3, [pc, #28]	; (8002e6c <TIMER_IF_GetTimerValue+0x24>)
+ 8002e50:	6898      	ldr	r0, [r3, #8]
+  while (ssr != LL_RTC_TIME_GetSubSecond(RTC))
+ 8002e52:	e001      	b.n	8002e58 <TIMER_IF_GetTimerValue+0x10>
+ 8002e54:	4b05      	ldr	r3, [pc, #20]	; (8002e6c <TIMER_IF_GetTimerValue+0x24>)
+ 8002e56:	6898      	ldr	r0, [r3, #8]
+ 8002e58:	4b04      	ldr	r3, [pc, #16]	; (8002e6c <TIMER_IF_GetTimerValue+0x24>)
+ 8002e5a:	689b      	ldr	r3, [r3, #8]
+ 8002e5c:	4283      	cmp	r3, r0
+ 8002e5e:	d1f9      	bne.n	8002e54 <TIMER_IF_GetTimerValue+0xc>
+  return UINT32_MAX - ssr;
+ 8002e60:	43c0      	mvns	r0, r0
+ 8002e62:	4770      	bx	lr
+  uint32_t ret = 0;
+ 8002e64:	2000      	movs	r0, #0
+}
+ 8002e66:	4770      	bx	lr
+ 8002e68:	20000ad9 	.word	0x20000ad9
+ 8002e6c:	40002800 	.word	0x40002800
+
+08002e70 <TIMER_IF_GetMinimumTimeout>:
+}
+ 8002e70:	2003      	movs	r0, #3
+ 8002e72:	4770      	bx	lr
+
+08002e74 <TIMER_IF_Convert_ms2Tick>:
+{
+ 8002e74:	b508      	push	{r3, lr}
+ 8002e76:	4601      	mov	r1, r0
+  ret = ((uint32_t)((((uint64_t) timeMilliSec) << RTC_N_PREDIV_S) / 1000));
+ 8002e78:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
+ 8002e7c:	2300      	movs	r3, #0
+ 8002e7e:	0280      	lsls	r0, r0, #10
+ 8002e80:	0d89      	lsrs	r1, r1, #22
+ 8002e82:	f7fe fe45 	bl	8001b10 <__aeabi_uldivmod>
+}
+ 8002e86:	bd08      	pop	{r3, pc}
+
+08002e88 <TIMER_IF_Convert_Tick2ms>:
+  ret = ((uint32_t)((((uint64_t)(tick)) * 1000) >> RTC_N_PREDIV_S));
+ 8002e88:	0ec2      	lsrs	r2, r0, #27
+ 8002e8a:	0143      	lsls	r3, r0, #5
+ 8002e8c:	1a1b      	subs	r3, r3, r0
+ 8002e8e:	f162 0200 	sbc.w	r2, r2, #0
+ 8002e92:	0092      	lsls	r2, r2, #2
+ 8002e94:	ea42 7293 	orr.w	r2, r2, r3, lsr #30
+ 8002e98:	009b      	lsls	r3, r3, #2
+ 8002e9a:	181b      	adds	r3, r3, r0
+ 8002e9c:	f142 0000 	adc.w	r0, r2, #0
+ 8002ea0:	00c0      	lsls	r0, r0, #3
+ 8002ea2:	ea40 7053 	orr.w	r0, r0, r3, lsr #29
+ 8002ea6:	f3c3 13d5 	ubfx	r3, r3, #7, #22
+}
+ 8002eaa:	ea43 5080 	orr.w	r0, r3, r0, lsl #22
+ 8002eae:	4770      	bx	lr
+
+08002eb0 <TIMER_IF_StopTimer>:
+{
+ 8002eb0:	b510      	push	{r4, lr}
+  __HAL_RTC_ALARM_CLEAR_FLAG(&hrtc, RTC_FLAG_ALRAF);
+ 8002eb2:	4b07      	ldr	r3, [pc, #28]	; (8002ed0 <TIMER_IF_StopTimer+0x20>)
+ 8002eb4:	2201      	movs	r2, #1
+ 8002eb6:	65da      	str	r2, [r3, #92]	; 0x5c
+  HAL_RTC_DeactivateAlarm(&hrtc, RTC_ALARM_A);
+ 8002eb8:	4c06      	ldr	r4, [pc, #24]	; (8002ed4 <TIMER_IF_StopTimer+0x24>)
+ 8002eba:	f44f 7180 	mov.w	r1, #256	; 0x100
+ 8002ebe:	4620      	mov	r0, r4
+ 8002ec0:	f007 ff38 	bl	800ad34 <HAL_RTC_DeactivateAlarm>
+  hrtc.IsEnabled.RtcFeatures = UINT32_MAX;
+ 8002ec4:	f04f 33ff 	mov.w	r3, #4294967295
+ 8002ec8:	6323      	str	r3, [r4, #48]	; 0x30
+}
+ 8002eca:	2000      	movs	r0, #0
+ 8002ecc:	bd10      	pop	{r4, pc}
+ 8002ece:	bf00      	nop
+ 8002ed0:	40002800 	.word	0x40002800
+ 8002ed4:	20000a68 	.word	0x20000a68
+
+08002ed8 <TIMER_IF_BkUp_Write_MSBticks>:
+{
+ 8002ed8:	b508      	push	{r3, lr}
+ 8002eda:	4602      	mov	r2, r0
+  HAL_RTCEx_BKUPWrite(&hrtc, RTC_BKP_MSBTICKS, MSBticks);
+ 8002edc:	2102      	movs	r1, #2
+ 8002ede:	4802      	ldr	r0, [pc, #8]	; (8002ee8 <TIMER_IF_BkUp_Write_MSBticks+0x10>)
+ 8002ee0:	f008 f971 	bl	800b1c6 <HAL_RTCEx_BKUPWrite>
+}
+ 8002ee4:	bd08      	pop	{r3, pc}
+ 8002ee6:	bf00      	nop
+ 8002ee8:	20000a68 	.word	0x20000a68
+
+08002eec <TIMER_IF_Init>:
+{
+ 8002eec:	b538      	push	{r3, r4, r5, lr}
+  if (RTC_Initialized == false)
+ 8002eee:	4b0f      	ldr	r3, [pc, #60]	; (8002f2c <TIMER_IF_Init+0x40>)
+ 8002ef0:	781b      	ldrb	r3, [r3, #0]
+ 8002ef2:	b10b      	cbz	r3, 8002ef8 <TIMER_IF_Init+0xc>
+}
+ 8002ef4:	2000      	movs	r0, #0
+ 8002ef6:	bd38      	pop	{r3, r4, r5, pc}
+    hrtc.IsEnabled.RtcFeatures = UINT32_MAX;
+ 8002ef8:	4c0d      	ldr	r4, [pc, #52]	; (8002f30 <TIMER_IF_Init+0x44>)
+ 8002efa:	f04f 35ff 	mov.w	r5, #4294967295
+ 8002efe:	6325      	str	r5, [r4, #48]	; 0x30
+    MX_RTC_Init();
+ 8002f00:	f7ff fc48 	bl	8002794 <MX_RTC_Init>
+    TIMER_IF_StopTimer();
+ 8002f04:	f7ff ffd4 	bl	8002eb0 <TIMER_IF_StopTimer>
+    HAL_RTC_DeactivateAlarm(&hrtc, RTC_ALARM_A);
+ 8002f08:	f44f 7180 	mov.w	r1, #256	; 0x100
+ 8002f0c:	4620      	mov	r0, r4
+ 8002f0e:	f007 ff11 	bl	800ad34 <HAL_RTC_DeactivateAlarm>
+    hrtc.IsEnabled.RtcFeatures = UINT32_MAX;
+ 8002f12:	6325      	str	r5, [r4, #48]	; 0x30
+    HAL_RTCEx_EnableBypassShadow(&hrtc);
+ 8002f14:	4620      	mov	r0, r4
+ 8002f16:	f008 f8f5 	bl	800b104 <HAL_RTCEx_EnableBypassShadow>
+    TIMER_IF_BkUp_Write_MSBticks(0);
+ 8002f1a:	2000      	movs	r0, #0
+ 8002f1c:	f7ff ffdc 	bl	8002ed8 <TIMER_IF_BkUp_Write_MSBticks>
+    TIMER_IF_SetTimerContext();
+ 8002f20:	f7ff ff68 	bl	8002df4 <TIMER_IF_SetTimerContext>
+    RTC_Initialized = true;
+ 8002f24:	4b01      	ldr	r3, [pc, #4]	; (8002f2c <TIMER_IF_Init+0x40>)
+ 8002f26:	2201      	movs	r2, #1
+ 8002f28:	701a      	strb	r2, [r3, #0]
+ 8002f2a:	e7e3      	b.n	8002ef4 <TIMER_IF_Init+0x8>
+ 8002f2c:	20000ad9 	.word	0x20000ad9
+ 8002f30:	20000a68 	.word	0x20000a68
+
+08002f34 <TIMER_IF_BkUp_Write_Seconds>:
+{
+ 8002f34:	b508      	push	{r3, lr}
+ 8002f36:	4602      	mov	r2, r0
+  HAL_RTCEx_BKUPWrite(&hrtc, RTC_BKP_SECONDS, Seconds);
+ 8002f38:	2100      	movs	r1, #0
+ 8002f3a:	4802      	ldr	r0, [pc, #8]	; (8002f44 <TIMER_IF_BkUp_Write_Seconds+0x10>)
+ 8002f3c:	f008 f943 	bl	800b1c6 <HAL_RTCEx_BKUPWrite>
+}
+ 8002f40:	bd08      	pop	{r3, pc}
+ 8002f42:	bf00      	nop
+ 8002f44:	20000a68 	.word	0x20000a68
+
+08002f48 <TIMER_IF_BkUp_Write_SubSeconds>:
+{
+ 8002f48:	b508      	push	{r3, lr}
+ 8002f4a:	4602      	mov	r2, r0
+  HAL_RTCEx_BKUPWrite(&hrtc, RTC_BKP_SUBSECONDS, SubSeconds);
+ 8002f4c:	2101      	movs	r1, #1
+ 8002f4e:	4802      	ldr	r0, [pc, #8]	; (8002f58 <TIMER_IF_BkUp_Write_SubSeconds+0x10>)
+ 8002f50:	f008 f939 	bl	800b1c6 <HAL_RTCEx_BKUPWrite>
+}
+ 8002f54:	bd08      	pop	{r3, pc}
+ 8002f56:	bf00      	nop
+ 8002f58:	20000a68 	.word	0x20000a68
+
+08002f5c <TIMER_IF_StartTimer>:
+{
+ 8002f5c:	b510      	push	{r4, lr}
+ 8002f5e:	b08c      	sub	sp, #48	; 0x30
+ 8002f60:	4604      	mov	r4, r0
+  RTC_AlarmTypeDef sAlarm = {0};
+ 8002f62:	222c      	movs	r2, #44	; 0x2c
+ 8002f64:	2100      	movs	r1, #0
+ 8002f66:	a801      	add	r0, sp, #4
+ 8002f68:	f014 fbaa 	bl	80176c0 <memset>
+  TIMER_IF_StopTimer();
+ 8002f6c:	f7ff ffa0 	bl	8002eb0 <TIMER_IF_StopTimer>
+  timeout += RtcTimerContext;
+ 8002f70:	4b0c      	ldr	r3, [pc, #48]	; (8002fa4 <TIMER_IF_StartTimer+0x48>)
+ 8002f72:	681b      	ldr	r3, [r3, #0]
+ 8002f74:	441c      	add	r4, r3
+  sAlarm.BinaryAutoClr = RTC_ALARMSUBSECONDBIN_AUTOCLR_NO;
+ 8002f76:	2300      	movs	r3, #0
+ 8002f78:	9308      	str	r3, [sp, #32]
+  sAlarm.AlarmTime.SubSeconds = UINT32_MAX - timeout;
+ 8002f7a:	43e4      	mvns	r4, r4
+ 8002f7c:	9402      	str	r4, [sp, #8]
+  sAlarm.AlarmMask = RTC_ALARMMASK_NONE;
+ 8002f7e:	9306      	str	r3, [sp, #24]
+  sAlarm.AlarmSubSecondMask = RTC_ALARMSUBSECONDBINMASK_NONE;
+ 8002f80:	f04f 5300 	mov.w	r3, #536870912	; 0x20000000
+ 8002f84:	9307      	str	r3, [sp, #28]
+  sAlarm.Alarm = RTC_ALARM_A;
+ 8002f86:	f44f 7380 	mov.w	r3, #256	; 0x100
+ 8002f8a:	930b      	str	r3, [sp, #44]	; 0x2c
+  if (HAL_RTC_SetAlarm_IT(&hrtc, &sAlarm, RTC_FORMAT_BCD) != HAL_OK)
+ 8002f8c:	2201      	movs	r2, #1
+ 8002f8e:	a901      	add	r1, sp, #4
+ 8002f90:	4805      	ldr	r0, [pc, #20]	; (8002fa8 <TIMER_IF_StartTimer+0x4c>)
+ 8002f92:	f007 fffb 	bl	800af8c <HAL_RTC_SetAlarm_IT>
+ 8002f96:	b910      	cbnz	r0, 8002f9e <TIMER_IF_StartTimer+0x42>
+}
+ 8002f98:	2000      	movs	r0, #0
+ 8002f9a:	b00c      	add	sp, #48	; 0x30
+ 8002f9c:	bd10      	pop	{r4, pc}
+    Error_Handler();
+ 8002f9e:	f7ff fb9d 	bl	80026dc <Error_Handler>
+ 8002fa2:	e7f9      	b.n	8002f98 <TIMER_IF_StartTimer+0x3c>
+ 8002fa4:	20000adc 	.word	0x20000adc
+ 8002fa8:	20000a68 	.word	0x20000a68
+
+08002fac <TIMER_IF_BkUp_Read_MSBticks>:
+{
+ 8002fac:	b508      	push	{r3, lr}
+  MSBticks = HAL_RTCEx_BKUPRead(&hrtc, RTC_BKP_MSBTICKS);
+ 8002fae:	2102      	movs	r1, #2
+ 8002fb0:	4801      	ldr	r0, [pc, #4]	; (8002fb8 <TIMER_IF_BkUp_Read_MSBticks+0xc>)
+ 8002fb2:	f008 f90f 	bl	800b1d4 <HAL_RTCEx_BKUPRead>
+}
+ 8002fb6:	bd08      	pop	{r3, pc}
+ 8002fb8:	20000a68 	.word	0x20000a68
+
+08002fbc <TIMER_IF_GetTime>:
+{
+ 8002fbc:	b538      	push	{r3, r4, r5, lr}
+ 8002fbe:	4605      	mov	r5, r0
+ 8002fc0:	4b0b      	ldr	r3, [pc, #44]	; (8002ff0 <TIMER_IF_GetTime+0x34>)
+ 8002fc2:	689c      	ldr	r4, [r3, #8]
+  while (ssr != LL_RTC_TIME_GetSubSecond(RTC))
+ 8002fc4:	e001      	b.n	8002fca <TIMER_IF_GetTime+0xe>
+ 8002fc6:	4b0a      	ldr	r3, [pc, #40]	; (8002ff0 <TIMER_IF_GetTime+0x34>)
+ 8002fc8:	689c      	ldr	r4, [r3, #8]
+ 8002fca:	4a09      	ldr	r2, [pc, #36]	; (8002ff0 <TIMER_IF_GetTime+0x34>)
+ 8002fcc:	6892      	ldr	r2, [r2, #8]
+ 8002fce:	42a2      	cmp	r2, r4
+ 8002fd0:	d1f9      	bne.n	8002fc6 <TIMER_IF_GetTime+0xa>
+  return UINT32_MAX - ssr;
+ 8002fd2:	43e4      	mvns	r4, r4
+  uint32_t timerValueMSB = TIMER_IF_BkUp_Read_MSBticks();
+ 8002fd4:	f7ff ffea 	bl	8002fac <TIMER_IF_BkUp_Read_MSBticks>
+  ticks = (((uint64_t) timerValueMSB) << 32) + timerValueLsb;
+ 8002fd8:	4623      	mov	r3, r4
+  seconds = (uint32_t)(ticks >> RTC_N_PREDIV_S);
+ 8002fda:	0aa4      	lsrs	r4, r4, #10
+ 8002fdc:	ea44 5480 	orr.w	r4, r4, r0, lsl #22
+  *mSeconds = TIMER_IF_Convert_Tick2ms(ticks);
+ 8002fe0:	f3c3 0009 	ubfx	r0, r3, #0, #10
+ 8002fe4:	f7ff ff50 	bl	8002e88 <TIMER_IF_Convert_Tick2ms>
+ 8002fe8:	8028      	strh	r0, [r5, #0]
+}
+ 8002fea:	4620      	mov	r0, r4
+ 8002fec:	bd38      	pop	{r3, r4, r5, pc}
+ 8002fee:	bf00      	nop
+ 8002ff0:	40002800 	.word	0x40002800
+
+08002ff4 <TIMER_IF_BkUp_Read_Seconds>:
+{
+ 8002ff4:	b508      	push	{r3, lr}
+  ret = HAL_RTCEx_BKUPRead(&hrtc, RTC_BKP_SECONDS);
+ 8002ff6:	2100      	movs	r1, #0
+ 8002ff8:	4801      	ldr	r0, [pc, #4]	; (8003000 <TIMER_IF_BkUp_Read_Seconds+0xc>)
+ 8002ffa:	f008 f8eb 	bl	800b1d4 <HAL_RTCEx_BKUPRead>
+}
+ 8002ffe:	bd08      	pop	{r3, pc}
+ 8003000:	20000a68 	.word	0x20000a68
+
+08003004 <TIMER_IF_BkUp_Read_SubSeconds>:
+{
+ 8003004:	b508      	push	{r3, lr}
+  ret = HAL_RTCEx_BKUPRead(&hrtc, RTC_BKP_SUBSECONDS);
+ 8003006:	2101      	movs	r1, #1
+ 8003008:	4801      	ldr	r0, [pc, #4]	; (8003010 <TIMER_IF_BkUp_Read_SubSeconds+0xc>)
+ 800300a:	f008 f8e3 	bl	800b1d4 <HAL_RTCEx_BKUPRead>
+}
+ 800300e:	bd08      	pop	{r3, pc}
+ 8003010:	20000a68 	.word	0x20000a68
+
+08003014 <TIMER_IF_DelayMs>:
+{
+ 8003014:	b508      	push	{r3, lr}
+  uint32_t delayTicks = TIMER_IF_Convert_ms2Tick(delay);
+ 8003016:	f7ff ff2d 	bl	8002e74 <TIMER_IF_Convert_ms2Tick>
+ 800301a:	4b0d      	ldr	r3, [pc, #52]	; (8003050 <TIMER_IF_DelayMs+0x3c>)
+ 800301c:	6899      	ldr	r1, [r3, #8]
+  while (ssr != LL_RTC_TIME_GetSubSecond(RTC))
+ 800301e:	e001      	b.n	8003024 <TIMER_IF_DelayMs+0x10>
+ 8003020:	4b0b      	ldr	r3, [pc, #44]	; (8003050 <TIMER_IF_DelayMs+0x3c>)
+ 8003022:	6899      	ldr	r1, [r3, #8]
+ 8003024:	4a0a      	ldr	r2, [pc, #40]	; (8003050 <TIMER_IF_DelayMs+0x3c>)
+ 8003026:	6892      	ldr	r2, [r2, #8]
+ 8003028:	428a      	cmp	r2, r1
+ 800302a:	d1f9      	bne.n	8003020 <TIMER_IF_DelayMs+0xc>
+  return UINT32_MAX - ssr;
+ 800302c:	43c9      	mvns	r1, r1
+  while (((GetTimerTicks() - timeout)) < delayTicks)
+ 800302e:	e00a      	b.n	8003046 <TIMER_IF_DelayMs+0x32>
+ 8003030:	4b07      	ldr	r3, [pc, #28]	; (8003050 <TIMER_IF_DelayMs+0x3c>)
+ 8003032:	689b      	ldr	r3, [r3, #8]
+ 8003034:	4a06      	ldr	r2, [pc, #24]	; (8003050 <TIMER_IF_DelayMs+0x3c>)
+ 8003036:	6892      	ldr	r2, [r2, #8]
+  while (ssr != LL_RTC_TIME_GetSubSecond(RTC))
+ 8003038:	429a      	cmp	r2, r3
+ 800303a:	d1f9      	bne.n	8003030 <TIMER_IF_DelayMs+0x1c>
+  return UINT32_MAX - ssr;
+ 800303c:	43db      	mvns	r3, r3
+  while (((GetTimerTicks() - timeout)) < delayTicks)
+ 800303e:	1a5b      	subs	r3, r3, r1
+ 8003040:	4283      	cmp	r3, r0
+ 8003042:	d203      	bcs.n	800304c <TIMER_IF_DelayMs+0x38>
+    __NOP();
+ 8003044:	bf00      	nop
+ 8003046:	4b02      	ldr	r3, [pc, #8]	; (8003050 <TIMER_IF_DelayMs+0x3c>)
+ 8003048:	689b      	ldr	r3, [r3, #8]
+  while (ssr != LL_RTC_TIME_GetSubSecond(RTC))
+ 800304a:	e7f3      	b.n	8003034 <TIMER_IF_DelayMs+0x20>
+}
+ 800304c:	bd08      	pop	{r3, pc}
+ 800304e:	bf00      	nop
+ 8003050:	40002800 	.word	0x40002800
+
+08003054 <HAL_RTC_AlarmAEventCallback>:
+{
+ 8003054:	b508      	push	{r3, lr}
+  UTIL_TIMER_IRQ_MAP_PROCESS();
+ 8003056:	f014 f97b 	bl	8017350 <UTIL_TIMER_IRQ_Handler>
+}
+ 800305a:	bd08      	pop	{r3, pc}
+
+0800305c <HAL_RTCEx_SSRUEventCallback>:
+{
+ 800305c:	b508      	push	{r3, lr}
+  uint32_t MSB_ticks = TIMER_IF_BkUp_Read_MSBticks();
+ 800305e:	f7ff ffa5 	bl	8002fac <TIMER_IF_BkUp_Read_MSBticks>
+  TIMER_IF_BkUp_Write_MSBticks(MSB_ticks + 1);
+ 8003062:	3001      	adds	r0, #1
+ 8003064:	f7ff ff38 	bl	8002ed8 <TIMER_IF_BkUp_Write_MSBticks>
+}
+ 8003068:	bd08      	pop	{r3, pc}
+	...
+
+0800306c <MX_USART2_UART_Init>:
+DMA_HandleTypeDef hdma_usart2_rx;
+
+/* USART2 init function */
+
+void MX_USART2_UART_Init(void)
+{
+ 800306c:	b508      	push	{r3, lr}
+  /* USER CODE END USART2_Init 0 */
+
+  /* USER CODE BEGIN USART2_Init 1 */
+
+  /* USER CODE END USART2_Init 1 */
+  huart2.Instance = USART2;
+ 800306e:	4817      	ldr	r0, [pc, #92]	; (80030cc <MX_USART2_UART_Init+0x60>)
+ 8003070:	4b17      	ldr	r3, [pc, #92]	; (80030d0 <MX_USART2_UART_Init+0x64>)
+ 8003072:	6003      	str	r3, [r0, #0]
+  huart2.Init.BaudRate = 115200;
+ 8003074:	f44f 33e1 	mov.w	r3, #115200	; 0x1c200
+ 8003078:	6043      	str	r3, [r0, #4]
+  huart2.Init.WordLength = UART_WORDLENGTH_8B;
+ 800307a:	2300      	movs	r3, #0
+ 800307c:	6083      	str	r3, [r0, #8]
+  huart2.Init.StopBits = UART_STOPBITS_1;
+ 800307e:	60c3      	str	r3, [r0, #12]
+  huart2.Init.Parity = UART_PARITY_NONE;
+ 8003080:	6103      	str	r3, [r0, #16]
+  huart2.Init.Mode = UART_MODE_TX_RX;
+ 8003082:	220c      	movs	r2, #12
+ 8003084:	6142      	str	r2, [r0, #20]
+  huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ 8003086:	6183      	str	r3, [r0, #24]
+  huart2.Init.OverSampling = UART_OVERSAMPLING_16;
+ 8003088:	61c3      	str	r3, [r0, #28]
+  huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
+ 800308a:	6203      	str	r3, [r0, #32]
+  huart2.Init.ClockPrescaler = UART_PRESCALER_DIV1;
+ 800308c:	6243      	str	r3, [r0, #36]	; 0x24
+  huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
+ 800308e:	6283      	str	r3, [r0, #40]	; 0x28
+  if (HAL_UART_Init(&huart2) != HAL_OK)
+ 8003090:	f009 fbfc 	bl	800c88c <HAL_UART_Init>
+ 8003094:	b970      	cbnz	r0, 80030b4 <MX_USART2_UART_Init+0x48>
+  {
+    Error_Handler();
+  }
+  if (HAL_UARTEx_SetTxFifoThreshold(&huart2, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
+ 8003096:	2100      	movs	r1, #0
+ 8003098:	480c      	ldr	r0, [pc, #48]	; (80030cc <MX_USART2_UART_Init+0x60>)
+ 800309a:	f009 fdac 	bl	800cbf6 <HAL_UARTEx_SetTxFifoThreshold>
+ 800309e:	b960      	cbnz	r0, 80030ba <MX_USART2_UART_Init+0x4e>
+  {
+    Error_Handler();
+  }
+  if (HAL_UARTEx_SetRxFifoThreshold(&huart2, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
+ 80030a0:	2100      	movs	r1, #0
+ 80030a2:	480a      	ldr	r0, [pc, #40]	; (80030cc <MX_USART2_UART_Init+0x60>)
+ 80030a4:	f009 fdcc 	bl	800cc40 <HAL_UARTEx_SetRxFifoThreshold>
+ 80030a8:	b950      	cbnz	r0, 80030c0 <MX_USART2_UART_Init+0x54>
+  {
+    Error_Handler();
+  }
+  if (HAL_UARTEx_EnableFifoMode(&huart2) != HAL_OK)
+ 80030aa:	4808      	ldr	r0, [pc, #32]	; (80030cc <MX_USART2_UART_Init+0x60>)
+ 80030ac:	f009 fd7f 	bl	800cbae <HAL_UARTEx_EnableFifoMode>
+ 80030b0:	b948      	cbnz	r0, 80030c6 <MX_USART2_UART_Init+0x5a>
+  }
+  /* USER CODE BEGIN USART2_Init 2 */
+
+  /* USER CODE END USART2_Init 2 */
+
+}
+ 80030b2:	bd08      	pop	{r3, pc}
+    Error_Handler();
+ 80030b4:	f7ff fb12 	bl	80026dc <Error_Handler>
+ 80030b8:	e7ed      	b.n	8003096 <MX_USART2_UART_Init+0x2a>
+    Error_Handler();
+ 80030ba:	f7ff fb0f 	bl	80026dc <Error_Handler>
+ 80030be:	e7ef      	b.n	80030a0 <MX_USART2_UART_Init+0x34>
+    Error_Handler();
+ 80030c0:	f7ff fb0c 	bl	80026dc <Error_Handler>
+ 80030c4:	e7f1      	b.n	80030aa <MX_USART2_UART_Init+0x3e>
+    Error_Handler();
+ 80030c6:	f7ff fb09 	bl	80026dc <Error_Handler>
+}
+ 80030ca:	e7f2      	b.n	80030b2 <MX_USART2_UART_Init+0x46>
+ 80030cc:	20000ba0 	.word	0x20000ba0
+ 80030d0:	40004400 	.word	0x40004400
+
+080030d4 <HAL_UART_MspInit>:
+
+void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
+{
+ 80030d4:	b530      	push	{r4, r5, lr}
+ 80030d6:	b097      	sub	sp, #92	; 0x5c
+ 80030d8:	4604      	mov	r4, r0
+
+  GPIO_InitTypeDef GPIO_InitStruct = {0};
+ 80030da:	2100      	movs	r1, #0
+ 80030dc:	9111      	str	r1, [sp, #68]	; 0x44
+ 80030de:	9112      	str	r1, [sp, #72]	; 0x48
+ 80030e0:	9113      	str	r1, [sp, #76]	; 0x4c
+ 80030e2:	9114      	str	r1, [sp, #80]	; 0x50
+ 80030e4:	9115      	str	r1, [sp, #84]	; 0x54
+  RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
+ 80030e6:	2238      	movs	r2, #56	; 0x38
+ 80030e8:	a803      	add	r0, sp, #12
+ 80030ea:	f014 fae9 	bl	80176c0 <memset>
+  if(uartHandle->Instance==USART2)
+ 80030ee:	6822      	ldr	r2, [r4, #0]
+ 80030f0:	4b35      	ldr	r3, [pc, #212]	; (80031c8 <HAL_UART_MspInit+0xf4>)
+ 80030f2:	429a      	cmp	r2, r3
+ 80030f4:	d001      	beq.n	80030fa <HAL_UART_MspInit+0x26>
+    HAL_NVIC_EnableIRQ(USART2_IRQn);
+  /* USER CODE BEGIN USART2_MspInit 1 */
+
+  /* USER CODE END USART2_MspInit 1 */
+  }
+}
+ 80030f6:	b017      	add	sp, #92	; 0x5c
+ 80030f8:	bd30      	pop	{r4, r5, pc}
+    PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART2;
+ 80030fa:	2302      	movs	r3, #2
+ 80030fc:	9303      	str	r3, [sp, #12]
+    PeriphClkInitStruct.Usart2ClockSelection = RCC_USART2CLKSOURCE_SYSCLK;
+ 80030fe:	4b33      	ldr	r3, [pc, #204]	; (80031cc <HAL_UART_MspInit+0xf8>)
+ 8003100:	9305      	str	r3, [sp, #20]
+    if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
+ 8003102:	a803      	add	r0, sp, #12
+ 8003104:	f007 fccc 	bl	800aaa0 <HAL_RCCEx_PeriphCLKConfig>
+ 8003108:	2800      	cmp	r0, #0
+ 800310a:	d154      	bne.n	80031b6 <HAL_UART_MspInit+0xe2>
+  SET_BIT(RCC->APB1ENR1, Periphs);
+ 800310c:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8003110:	6d9a      	ldr	r2, [r3, #88]	; 0x58
+ 8003112:	f442 3200 	orr.w	r2, r2, #131072	; 0x20000
+ 8003116:	659a      	str	r2, [r3, #88]	; 0x58
+  tmpreg = READ_BIT(RCC->APB1ENR1, Periphs);
+ 8003118:	6d9a      	ldr	r2, [r3, #88]	; 0x58
+ 800311a:	f402 3200 	and.w	r2, r2, #131072	; 0x20000
+ 800311e:	9202      	str	r2, [sp, #8]
+  (void)tmpreg;
+ 8003120:	9a02      	ldr	r2, [sp, #8]
+  SET_BIT(RCC->AHB2ENR, Periphs);
+ 8003122:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 8003124:	f042 0201 	orr.w	r2, r2, #1
+ 8003128:	64da      	str	r2, [r3, #76]	; 0x4c
+  tmpreg = READ_BIT(RCC->AHB2ENR, Periphs);
+ 800312a:	6cdb      	ldr	r3, [r3, #76]	; 0x4c
+ 800312c:	f003 0301 	and.w	r3, r3, #1
+ 8003130:	9301      	str	r3, [sp, #4]
+  (void)tmpreg;
+ 8003132:	9b01      	ldr	r3, [sp, #4]
+    GPIO_InitStruct.Pin = USARTx_RX_Pin|USARTx_TX_Pin;
+ 8003134:	230c      	movs	r3, #12
+ 8003136:	9311      	str	r3, [sp, #68]	; 0x44
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ 8003138:	2302      	movs	r3, #2
+ 800313a:	9312      	str	r3, [sp, #72]	; 0x48
+    GPIO_InitStruct.Pull = GPIO_NOPULL;
+ 800313c:	2500      	movs	r5, #0
+ 800313e:	9513      	str	r5, [sp, #76]	; 0x4c
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+ 8003140:	2303      	movs	r3, #3
+ 8003142:	9314      	str	r3, [sp, #80]	; 0x50
+    GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
+ 8003144:	2307      	movs	r3, #7
+ 8003146:	9315      	str	r3, [sp, #84]	; 0x54
+    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+ 8003148:	a911      	add	r1, sp, #68	; 0x44
+ 800314a:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 800314e:	f006 f97d 	bl	800944c <HAL_GPIO_Init>
+    hdma_usart2_tx.Instance = DMA1_Channel7;
+ 8003152:	481f      	ldr	r0, [pc, #124]	; (80031d0 <HAL_UART_MspInit+0xfc>)
+ 8003154:	4b1f      	ldr	r3, [pc, #124]	; (80031d4 <HAL_UART_MspInit+0x100>)
+ 8003156:	6003      	str	r3, [r0, #0]
+    hdma_usart2_tx.Init.Request = DMA_REQUEST_USART2_TX;
+ 8003158:	2314      	movs	r3, #20
+ 800315a:	6043      	str	r3, [r0, #4]
+    hdma_usart2_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
+ 800315c:	2310      	movs	r3, #16
+ 800315e:	6083      	str	r3, [r0, #8]
+    hdma_usart2_tx.Init.PeriphInc = DMA_PINC_DISABLE;
+ 8003160:	60c5      	str	r5, [r0, #12]
+    hdma_usart2_tx.Init.MemInc = DMA_MINC_ENABLE;
+ 8003162:	2380      	movs	r3, #128	; 0x80
+ 8003164:	6103      	str	r3, [r0, #16]
+    hdma_usart2_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
+ 8003166:	6145      	str	r5, [r0, #20]
+    hdma_usart2_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
+ 8003168:	6185      	str	r5, [r0, #24]
+    hdma_usart2_tx.Init.Mode = DMA_NORMAL;
+ 800316a:	61c5      	str	r5, [r0, #28]
+    hdma_usart2_tx.Init.Priority = DMA_PRIORITY_LOW;
+ 800316c:	6205      	str	r5, [r0, #32]
+    if (HAL_DMA_Init(&hdma_usart2_tx) != HAL_OK)
+ 800316e:	f005 fe1d 	bl	8008dac <HAL_DMA_Init>
+ 8003172:	bb18      	cbnz	r0, 80031bc <HAL_UART_MspInit+0xe8>
+    __HAL_LINKDMA(uartHandle,hdmatx,hdma_usart2_tx);
+ 8003174:	4b16      	ldr	r3, [pc, #88]	; (80031d0 <HAL_UART_MspInit+0xfc>)
+ 8003176:	67e3      	str	r3, [r4, #124]	; 0x7c
+ 8003178:	629c      	str	r4, [r3, #40]	; 0x28
+     hdma_usart2_rx.Instance = DMA1_Channel6;
+ 800317a:	4817      	ldr	r0, [pc, #92]	; (80031d8 <HAL_UART_MspInit+0x104>)
+ 800317c:	4b17      	ldr	r3, [pc, #92]	; (80031dc <HAL_UART_MspInit+0x108>)
+ 800317e:	6003      	str	r3, [r0, #0]
+     hdma_usart2_rx.Init.Request = DMA_REQUEST_USART2_RX;
+ 8003180:	2313      	movs	r3, #19
+ 8003182:	6043      	str	r3, [r0, #4]
+     hdma_usart2_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
+ 8003184:	2300      	movs	r3, #0
+ 8003186:	6083      	str	r3, [r0, #8]
+     hdma_usart2_rx.Init.PeriphInc = DMA_PINC_DISABLE;
+ 8003188:	60c3      	str	r3, [r0, #12]
+     hdma_usart2_rx.Init.MemInc = DMA_MINC_ENABLE;
+ 800318a:	2280      	movs	r2, #128	; 0x80
+ 800318c:	6102      	str	r2, [r0, #16]
+     hdma_usart2_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
+ 800318e:	6143      	str	r3, [r0, #20]
+     hdma_usart2_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
+ 8003190:	6183      	str	r3, [r0, #24]
+     hdma_usart2_rx.Init.Mode = DMA_NORMAL;
+ 8003192:	61c3      	str	r3, [r0, #28]
+     hdma_usart2_rx.Init.Priority = DMA_PRIORITY_LOW;
+ 8003194:	6203      	str	r3, [r0, #32]
+     if (HAL_DMA_Init(&hdma_usart2_rx) != HAL_OK)
+ 8003196:	f005 fe09 	bl	8008dac <HAL_DMA_Init>
+ 800319a:	b990      	cbnz	r0, 80031c2 <HAL_UART_MspInit+0xee>
+     __HAL_LINKDMA(uartHandle,hdmarx,hdma_usart2_rx);
+ 800319c:	4b0e      	ldr	r3, [pc, #56]	; (80031d8 <HAL_UART_MspInit+0x104>)
+ 800319e:	f8c4 3080 	str.w	r3, [r4, #128]	; 0x80
+ 80031a2:	629c      	str	r4, [r3, #40]	; 0x28
+    HAL_NVIC_SetPriority(USART2_IRQn, 2, 0);
+ 80031a4:	2200      	movs	r2, #0
+ 80031a6:	2102      	movs	r1, #2
+ 80031a8:	2025      	movs	r0, #37	; 0x25
+ 80031aa:	f005 fd37 	bl	8008c1c <HAL_NVIC_SetPriority>
+    HAL_NVIC_EnableIRQ(USART2_IRQn);
+ 80031ae:	2025      	movs	r0, #37	; 0x25
+ 80031b0:	f005 fd6c 	bl	8008c8c <HAL_NVIC_EnableIRQ>
+}
+ 80031b4:	e79f      	b.n	80030f6 <HAL_UART_MspInit+0x22>
+      Error_Handler();
+ 80031b6:	f7ff fa91 	bl	80026dc <Error_Handler>
+ 80031ba:	e7a7      	b.n	800310c <HAL_UART_MspInit+0x38>
+      Error_Handler();
+ 80031bc:	f7ff fa8e 	bl	80026dc <Error_Handler>
+ 80031c0:	e7d8      	b.n	8003174 <HAL_UART_MspInit+0xa0>
+       Error_Handler();
+ 80031c2:	f7ff fa8b 	bl	80026dc <Error_Handler>
+ 80031c6:	e7e9      	b.n	800319c <HAL_UART_MspInit+0xc8>
+ 80031c8:	40004400 	.word	0x40004400
+ 80031cc:	000c0004 	.word	0x000c0004
+ 80031d0:	20000b40 	.word	0x20000b40
+ 80031d4:	40020080 	.word	0x40020080
+ 80031d8:	20000ae0 	.word	0x20000ae0
+ 80031dc:	4002006c 	.word	0x4002006c
+
+080031e0 <HAL_UART_MspDeInit>:
+
+void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
+{
+
+  if(uartHandle->Instance==USART2)
+ 80031e0:	6802      	ldr	r2, [r0, #0]
+ 80031e2:	4b0e      	ldr	r3, [pc, #56]	; (800321c <HAL_UART_MspDeInit+0x3c>)
+ 80031e4:	429a      	cmp	r2, r3
+ 80031e6:	d000      	beq.n	80031ea <HAL_UART_MspDeInit+0xa>
+ 80031e8:	4770      	bx	lr
+{
+ 80031ea:	b510      	push	{r4, lr}
+ 80031ec:	4604      	mov	r4, r0
+  CLEAR_BIT(RCC->APB1ENR1, Periphs);
+ 80031ee:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 80031f2:	6d93      	ldr	r3, [r2, #88]	; 0x58
+ 80031f4:	f423 3300 	bic.w	r3, r3, #131072	; 0x20000
+ 80031f8:	6593      	str	r3, [r2, #88]	; 0x58
+
+    /**USART2 GPIO Configuration
+    PA3     ------> USART2_RX
+    PA2     ------> USART2_TX
+    */
+    HAL_GPIO_DeInit(GPIOA, USARTx_RX_Pin|USARTx_TX_Pin);
+ 80031fa:	210c      	movs	r1, #12
+ 80031fc:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8003200:	f006 f9f6 	bl	80095f0 <HAL_GPIO_DeInit>
+
+    /* USART2 DMA DeInit */
+    HAL_DMA_DeInit(uartHandle->hdmatx);
+ 8003204:	6fe0      	ldr	r0, [r4, #124]	; 0x7c
+ 8003206:	f005 fe43 	bl	8008e90 <HAL_DMA_DeInit>
+    HAL_DMA_DeInit(uartHandle->hdmarx);
+ 800320a:	f8d4 0080 	ldr.w	r0, [r4, #128]	; 0x80
+ 800320e:	f005 fe3f 	bl	8008e90 <HAL_DMA_DeInit>
+    /* USART2 interrupt Deinit */
+    HAL_NVIC_DisableIRQ(USART2_IRQn);
+ 8003212:	2025      	movs	r0, #37	; 0x25
+ 8003214:	f005 fd48 	bl	8008ca8 <HAL_NVIC_DisableIRQ>
+  /* USER CODE BEGIN USART2_MspDeInit 1 */
+
+  /* USER CODE END USART2_MspDeInit 1 */
+  }
+}
+ 8003218:	bd10      	pop	{r4, pc}
+ 800321a:	bf00      	nop
+ 800321c:	40004400 	.word	0x40004400
+
+08003220 <vcom_Init>:
+/* USER CODE END PFP */
+
+/* Exported functions --------------------------------------------------------*/
+
+UTIL_ADV_TRACE_Status_t vcom_Init(void (*cb)(void *))
+{
+ 8003220:	b508      	push	{r3, lr}
+  /* USER CODE BEGIN vcom_Init_1 */
+
+  /* USER CODE END vcom_Init_1 */
+  TxCpltCallback = cb;
+ 8003222:	4b07      	ldr	r3, [pc, #28]	; (8003240 <vcom_Init+0x20>)
+ 8003224:	6018      	str	r0, [r3, #0]
+  MX_DMA_Init();
+ 8003226:	f7fe ff0c 	bl	8002042 <MX_DMA_Init>
+  MX_USART2_UART_Init();
+ 800322a:	f7ff ff1f 	bl	800306c <MX_USART2_UART_Init>
+  SET_BIT(EXTI->IMR1, ExtiLine);
+ 800322e:	4a05      	ldr	r2, [pc, #20]	; (8003244 <vcom_Init+0x24>)
+ 8003230:	f8d2 3080 	ldr.w	r3, [r2, #128]	; 0x80
+ 8003234:	f043 6300 	orr.w	r3, r3, #134217728	; 0x8000000
+ 8003238:	f8c2 3080 	str.w	r3, [r2, #128]	; 0x80
+  LL_EXTI_EnableIT_0_31(LL_EXTI_LINE_27);
+  return UTIL_ADV_TRACE_OK;
+  /* USER CODE BEGIN vcom_Init_2 */
+
+  /* USER CODE END vcom_Init_2 */
+}
+ 800323c:	2000      	movs	r0, #0
+ 800323e:	bd08      	pop	{r3, pc}
+ 8003240:	20000c38 	.word	0x20000c38
+ 8003244:	58000800 	.word	0x58000800
+
+08003248 <vcom_DeInit>:
+
+UTIL_ADV_TRACE_Status_t vcom_DeInit(void)
+{
+ 8003248:	b508      	push	{r3, lr}
+  SET_BIT(RCC->APB1RSTR1, Periphs);
+ 800324a:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800324e:	6b9a      	ldr	r2, [r3, #56]	; 0x38
+ 8003250:	f442 3200 	orr.w	r2, r2, #131072	; 0x20000
+ 8003254:	639a      	str	r2, [r3, #56]	; 0x38
+  CLEAR_BIT(RCC->APB1RSTR1, Periphs);
+ 8003256:	6b9a      	ldr	r2, [r3, #56]	; 0x38
+ 8003258:	f422 3200 	bic.w	r2, r2, #131072	; 0x20000
+ 800325c:	639a      	str	r2, [r3, #56]	; 0x38
+  /* ##-1- Reset peripherals ################################################## */
+  __HAL_RCC_USART2_FORCE_RESET();
+  __HAL_RCC_USART2_RELEASE_RESET();
+
+  /* ##-2- MspDeInit ################################################## */
+  HAL_UART_MspDeInit(&huart2);
+ 800325e:	4804      	ldr	r0, [pc, #16]	; (8003270 <vcom_DeInit+0x28>)
+ 8003260:	f7ff ffbe 	bl	80031e0 <HAL_UART_MspDeInit>
+
+  /* ##-3- Disable the NVIC for DMA ########################################### */
+  /* USER CODE BEGIN 1 */
+  HAL_NVIC_DisableIRQ(DMA1_Channel5_IRQn);
+ 8003264:	200f      	movs	r0, #15
+ 8003266:	f005 fd1f 	bl	8008ca8 <HAL_NVIC_DisableIRQ>
+  return UTIL_ADV_TRACE_OK;
+  /* USER CODE END 1 */
+  /* USER CODE BEGIN vcom_DeInit_2 */
+
+  /* USER CODE END vcom_DeInit_2 */
+}
+ 800326a:	2000      	movs	r0, #0
+ 800326c:	bd08      	pop	{r3, pc}
+ 800326e:	bf00      	nop
+ 8003270:	20000ba0 	.word	0x20000ba0
+
+08003274 <vcom_Trace_DMA>:
+
+  /* USER CODE END vcom_Trace_2 */
+}
+
+UTIL_ADV_TRACE_Status_t vcom_Trace_DMA(uint8_t *p_data, uint16_t size)
+{
+ 8003274:	b508      	push	{r3, lr}
+ 8003276:	460a      	mov	r2, r1
+  /* USER CODE BEGIN vcom_Trace_DMA_1 */
+
+  /* USER CODE END vcom_Trace_DMA_1 */
+  HAL_UART_Transmit_DMA(&huart2, p_data, size);
+ 8003278:	4601      	mov	r1, r0
+ 800327a:	4802      	ldr	r0, [pc, #8]	; (8003284 <vcom_Trace_DMA+0x10>)
+ 800327c:	f008 fb88 	bl	800b990 <HAL_UART_Transmit_DMA>
+  return UTIL_ADV_TRACE_OK;
+  /* USER CODE BEGIN vcom_Trace_DMA_2 */
+
+  /* USER CODE END vcom_Trace_DMA_2 */
+}
+ 8003280:	2000      	movs	r0, #0
+ 8003282:	bd08      	pop	{r3, pc}
+ 8003284:	20000ba0 	.word	0x20000ba0
+
+08003288 <vcom_ReceiveInit>:
+
+UTIL_ADV_TRACE_Status_t vcom_ReceiveInit(void (*RxCb)(uint8_t *rxChar, uint16_t size, uint8_t error))
+{
+ 8003288:	b510      	push	{r4, lr}
+ 800328a:	b082      	sub	sp, #8
+
+  /* USER CODE END vcom_ReceiveInit_1 */
+  UART_WakeUpTypeDef WakeUpSelection;
+
+  /*record call back*/
+  RxCpltCallback = RxCb;
+ 800328c:	4b12      	ldr	r3, [pc, #72]	; (80032d8 <vcom_ReceiveInit+0x50>)
+ 800328e:	6018      	str	r0, [r3, #0]
+
+  /*Set wakeUp event on start bit*/
+  WakeUpSelection.WakeUpEvent = UART_WAKEUP_ON_STARTBIT;
+ 8003290:	f44f 1300 	mov.w	r3, #2097152	; 0x200000
+ 8003294:	9300      	str	r3, [sp, #0]
+
+  HAL_UARTEx_StopModeWakeUpSourceConfig(&huart2, WakeUpSelection);
+ 8003296:	ab02      	add	r3, sp, #8
+ 8003298:	e913 0006 	ldmdb	r3, {r1, r2}
+ 800329c:	480f      	ldr	r0, [pc, #60]	; (80032dc <vcom_ReceiveInit+0x54>)
+ 800329e:	f009 fc2e 	bl	800cafe <HAL_UARTEx_StopModeWakeUpSourceConfig>
+
+  /* Make sure that no UART transfer is on-going */
+  while (__HAL_UART_GET_FLAG(&huart2, USART_ISR_BUSY) == SET);
+ 80032a2:	4b0e      	ldr	r3, [pc, #56]	; (80032dc <vcom_ReceiveInit+0x54>)
+ 80032a4:	681b      	ldr	r3, [r3, #0]
+ 80032a6:	69da      	ldr	r2, [r3, #28]
+ 80032a8:	f412 3f80 	tst.w	r2, #65536	; 0x10000
+ 80032ac:	d1f9      	bne.n	80032a2 <vcom_ReceiveInit+0x1a>
+
+  /* Make sure that UART is ready to receive)   */
+  while (__HAL_UART_GET_FLAG(&huart2, USART_ISR_REACK) == RESET);
+ 80032ae:	69da      	ldr	r2, [r3, #28]
+ 80032b0:	f412 0f80 	tst.w	r2, #4194304	; 0x400000
+ 80032b4:	d0fb      	beq.n	80032ae <vcom_ReceiveInit+0x26>
+
+  /* Enable USART interrupt */
+  __HAL_UART_ENABLE_IT(&huart2, UART_IT_WUF);
+ 80032b6:	689a      	ldr	r2, [r3, #8]
+ 80032b8:	f442 0280 	orr.w	r2, r2, #4194304	; 0x400000
+ 80032bc:	609a      	str	r2, [r3, #8]
+
+  /*Enable wakeup from stop mode*/
+  HAL_UARTEx_EnableStopMode(&huart2);
+ 80032be:	4c07      	ldr	r4, [pc, #28]	; (80032dc <vcom_ReceiveInit+0x54>)
+ 80032c0:	4620      	mov	r0, r4
+ 80032c2:	f009 fc5d 	bl	800cb80 <HAL_UARTEx_EnableStopMode>
+
+  /*Start LPUART receive on IT*/
+  HAL_UART_Receive_IT(&huart2, &charRx, 1);
+ 80032c6:	2201      	movs	r2, #1
+ 80032c8:	4905      	ldr	r1, [pc, #20]	; (80032e0 <vcom_ReceiveInit+0x58>)
+ 80032ca:	4620      	mov	r0, r4
+ 80032cc:	f009 fbb0 	bl	800ca30 <HAL_UART_Receive_IT>
+
+  return UTIL_ADV_TRACE_OK;
+  /* USER CODE BEGIN vcom_ReceiveInit_2 */
+
+  /* USER CODE END vcom_ReceiveInit_2 */
+}
+ 80032d0:	2000      	movs	r0, #0
+ 80032d2:	b002      	add	sp, #8
+ 80032d4:	bd10      	pop	{r4, pc}
+ 80032d6:	bf00      	nop
+ 80032d8:	20000c34 	.word	0x20000c34
+ 80032dc:	20000ba0 	.word	0x20000ba0
+ 80032e0:	20000c3c 	.word	0x20000c3c
+
+080032e4 <vcom_Resume>:
+
+void vcom_Resume(void)
+{
+ 80032e4:	b508      	push	{r3, lr}
+  /* USER CODE BEGIN vcom_Resume_1 */
+
+  /* USER CODE END vcom_Resume_1 */
+  /*to re-enable lost UART settings*/
+  if (HAL_UART_Init(&huart2) != HAL_OK)
+ 80032e6:	4807      	ldr	r0, [pc, #28]	; (8003304 <vcom_Resume+0x20>)
+ 80032e8:	f009 fad0 	bl	800c88c <HAL_UART_Init>
+ 80032ec:	b920      	cbnz	r0, 80032f8 <vcom_Resume+0x14>
+  {
+    Error_Handler();
+  }
+
+  /*to re-enable lost DMA settings*/
+  if (HAL_DMA_Init(&hdma_usart2_tx) != HAL_OK)
+ 80032ee:	4806      	ldr	r0, [pc, #24]	; (8003308 <vcom_Resume+0x24>)
+ 80032f0:	f005 fd5c 	bl	8008dac <HAL_DMA_Init>
+ 80032f4:	b918      	cbnz	r0, 80032fe <vcom_Resume+0x1a>
+    Error_Handler();
+  }
+  /* USER CODE BEGIN vcom_Resume_2 */
+
+  /* USER CODE END vcom_Resume_2 */
+}
+ 80032f6:	bd08      	pop	{r3, pc}
+    Error_Handler();
+ 80032f8:	f7ff f9f0 	bl	80026dc <Error_Handler>
+ 80032fc:	e7f7      	b.n	80032ee <vcom_Resume+0xa>
+    Error_Handler();
+ 80032fe:	f7ff f9ed 	bl	80026dc <Error_Handler>
+}
+ 8003302:	e7f8      	b.n	80032f6 <vcom_Resume+0x12>
+ 8003304:	20000ba0 	.word	0x20000ba0
+ 8003308:	20000b40 	.word	0x20000b40
+
+0800330c <HAL_UART_TxCpltCallback>:
+
+void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
+{
+ 800330c:	b508      	push	{r3, lr}
+  /* USER CODE BEGIN HAL_UART_TxCpltCallback_1 */
+
+  /* USER CODE END HAL_UART_TxCpltCallback_1 */
+  /* buffer transmission complete*/
+  if (huart->Instance == USART2)
+ 800330e:	6802      	ldr	r2, [r0, #0]
+ 8003310:	4b04      	ldr	r3, [pc, #16]	; (8003324 <HAL_UART_TxCpltCallback+0x18>)
+ 8003312:	429a      	cmp	r2, r3
+ 8003314:	d000      	beq.n	8003318 <HAL_UART_TxCpltCallback+0xc>
+    TxCpltCallback(NULL);
+  }
+  /* USER CODE BEGIN HAL_UART_TxCpltCallback_2 */
+
+  /* USER CODE END HAL_UART_TxCpltCallback_2 */
+}
+ 8003316:	bd08      	pop	{r3, pc}
+    TxCpltCallback(NULL);
+ 8003318:	4b03      	ldr	r3, [pc, #12]	; (8003328 <HAL_UART_TxCpltCallback+0x1c>)
+ 800331a:	681b      	ldr	r3, [r3, #0]
+ 800331c:	2000      	movs	r0, #0
+ 800331e:	4798      	blx	r3
+}
+ 8003320:	e7f9      	b.n	8003316 <HAL_UART_TxCpltCallback+0xa>
+ 8003322:	bf00      	nop
+ 8003324:	40004400 	.word	0x40004400
+ 8003328:	20000c38 	.word	0x20000c38
+
+0800332c <HAL_UART_RxCpltCallback>:
+void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
+{
+  /* USER CODE BEGIN HAL_UART_RxCpltCallback_1 */
+
+  /* USER CODE END HAL_UART_RxCpltCallback_1 */
+  if (huart->Instance == USART2)
+ 800332c:	6802      	ldr	r2, [r0, #0]
+ 800332e:	4b0a      	ldr	r3, [pc, #40]	; (8003358 <HAL_UART_RxCpltCallback+0x2c>)
+ 8003330:	429a      	cmp	r2, r3
+ 8003332:	d000      	beq.n	8003336 <HAL_UART_RxCpltCallback+0xa>
+ 8003334:	4770      	bx	lr
+{
+ 8003336:	b510      	push	{r4, lr}
+ 8003338:	4604      	mov	r4, r0
+  {
+    if ((NULL != RxCpltCallback) && (HAL_UART_ERROR_NONE == huart->ErrorCode))
+ 800333a:	4b08      	ldr	r3, [pc, #32]	; (800335c <HAL_UART_RxCpltCallback+0x30>)
+ 800333c:	681b      	ldr	r3, [r3, #0]
+ 800333e:	b12b      	cbz	r3, 800334c <HAL_UART_RxCpltCallback+0x20>
+ 8003340:	f8d0 2090 	ldr.w	r2, [r0, #144]	; 0x90
+ 8003344:	b912      	cbnz	r2, 800334c <HAL_UART_RxCpltCallback+0x20>
+    {
+      RxCpltCallback(&charRx, 1, 0);
+ 8003346:	2101      	movs	r1, #1
+ 8003348:	4805      	ldr	r0, [pc, #20]	; (8003360 <HAL_UART_RxCpltCallback+0x34>)
+ 800334a:	4798      	blx	r3
+    }
+    HAL_UART_Receive_IT(huart, &charRx, 1);
+ 800334c:	2201      	movs	r2, #1
+ 800334e:	4904      	ldr	r1, [pc, #16]	; (8003360 <HAL_UART_RxCpltCallback+0x34>)
+ 8003350:	4620      	mov	r0, r4
+ 8003352:	f009 fb6d 	bl	800ca30 <HAL_UART_Receive_IT>
+  }
+  /* USER CODE BEGIN HAL_UART_RxCpltCallback_2 */
+
+  /* USER CODE END HAL_UART_RxCpltCallback_2 */
+}
+ 8003356:	bd10      	pop	{r4, pc}
+ 8003358:	40004400 	.word	0x40004400
+ 800335c:	20000c34 	.word	0x20000c34
+ 8003360:	20000c3c 	.word	0x20000c3c
+
+08003364 <STS_YunhornAuthenticationCode_Process>:
+/* USER CODE END PFP */
+
+/* Exported functions --------------------------------------------------------*/
+
+void STS_YunhornAuthenticationCode_Process(void)
+{
+ 8003364:	b500      	push	{lr}
+ 8003366:	b083      	sub	sp, #12
+	if (sts_ac_code[0] == 0x00) {
+ 8003368:	4b12      	ldr	r3, [pc, #72]	; (80033b4 <STS_YunhornAuthenticationCode_Process+0x50>)
+ 800336a:	781b      	ldrb	r3, [r3, #0]
+ 800336c:	b1ab      	cbz	r3, 800339a <STS_YunhornAuthenticationCode_Process+0x36>
+		APP_LOG(TS_OFF,VLEVEL_M, "Initial AC CODE blank... \r\n");
+		return;
+	}
+
+	sts_service_mask = (sts_hmac_verify()!= 0)? STS_SERVICE_MASK_L2:STS_SERVICE_MASK_L0;
+ 800336e:	f7ff fb49 	bl	8002a04 <sts_hmac_verify>
+ 8003372:	b1c8      	cbz	r0, 80033a8 <STS_YunhornAuthenticationCode_Process+0x44>
+ 8003374:	2202      	movs	r2, #2
+ 8003376:	4b10      	ldr	r3, [pc, #64]	; (80033b8 <STS_YunhornAuthenticationCode_Process+0x54>)
+ 8003378:	701a      	strb	r2, [r3, #0]
+	if (sts_service_mask == STS_SERVICE_MASK_L2) {
+ 800337a:	781b      	ldrb	r3, [r3, #0]
+ 800337c:	b2db      	uxtb	r3, r3
+ 800337e:	2b02      	cmp	r3, #2
+ 8003380:	d014      	beq.n	80033ac <STS_YunhornAuthenticationCode_Process+0x48>
+		sts_ac_code[0] = 0x0;
+	}
+	APP_LOG(TS_OFF, VLEVEL_H, "STS_SERVICE_MASK:%d \r\n",sts_service_mask);
+ 8003382:	4b0d      	ldr	r3, [pc, #52]	; (80033b8 <STS_YunhornAuthenticationCode_Process+0x54>)
+ 8003384:	781b      	ldrb	r3, [r3, #0]
+ 8003386:	9300      	str	r3, [sp, #0]
+ 8003388:	4b0c      	ldr	r3, [pc, #48]	; (80033bc <STS_YunhornAuthenticationCode_Process+0x58>)
+ 800338a:	2200      	movs	r2, #0
+ 800338c:	4611      	mov	r1, r2
+ 800338e:	2003      	movs	r0, #3
+ 8003390:	f013 fbd2 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+}
+ 8003394:	b003      	add	sp, #12
+ 8003396:	f85d fb04 	ldr.w	pc, [sp], #4
+		APP_LOG(TS_OFF,VLEVEL_M, "Initial AC CODE blank... \r\n");
+ 800339a:	4b09      	ldr	r3, [pc, #36]	; (80033c0 <STS_YunhornAuthenticationCode_Process+0x5c>)
+ 800339c:	2200      	movs	r2, #0
+ 800339e:	4611      	mov	r1, r2
+ 80033a0:	2002      	movs	r0, #2
+ 80033a2:	f013 fbc9 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+		return;
+ 80033a6:	e7f5      	b.n	8003394 <STS_YunhornAuthenticationCode_Process+0x30>
+	sts_service_mask = (sts_hmac_verify()!= 0)? STS_SERVICE_MASK_L2:STS_SERVICE_MASK_L0;
+ 80033a8:	2200      	movs	r2, #0
+ 80033aa:	e7e4      	b.n	8003376 <STS_YunhornAuthenticationCode_Process+0x12>
+		sts_ac_code[0] = 0x0;
+ 80033ac:	4b01      	ldr	r3, [pc, #4]	; (80033b4 <STS_YunhornAuthenticationCode_Process+0x50>)
+ 80033ae:	2200      	movs	r2, #0
+ 80033b0:	701a      	strb	r2, [r3, #0]
+ 80033b2:	e7e6      	b.n	8003382 <STS_YunhornAuthenticationCode_Process+0x1e>
+ 80033b4:	20000e58 	.word	0x20000e58
+ 80033b8:	20000c44 	.word	0x20000c44
+ 80033bc:	080179bc 	.word	0x080179bc
+ 80033c0:	080179a0 	.word	0x080179a0
+
+080033c4 <STS_YunhornSTSEventRFAC_Process>:
+
+void STS_YunhornSTSEventRFAC_Process(void)
+{
+	if (sts_ac_code[0] ==0x0)
+ 80033c4:	4b19      	ldr	r3, [pc, #100]	; (800342c <STS_YunhornSTSEventRFAC_Process+0x68>)
+ 80033c6:	781b      	ldrb	r3, [r3, #0]
+ 80033c8:	bb7b      	cbnz	r3, 800342a <STS_YunhornSTSEventRFAC_Process+0x66>
+{
+ 80033ca:	b510      	push	{r4, lr}
+ 80033cc:	f003 04ff 	and.w	r4, r3, #255	; 0xff
+	{
+		if ((rfac_timer >= STS_BURN_IN_RFAC) && (rfac_timer < (STS_BURN_IN_RFAC +3)))
+ 80033d0:	4b17      	ldr	r3, [pc, #92]	; (8003430 <STS_YunhornSTSEventRFAC_Process+0x6c>)
+ 80033d2:	681b      	ldr	r3, [r3, #0]
+ 80033d4:	2b01      	cmp	r3, #1
+ 80033d6:	d903      	bls.n	80033e0 <STS_YunhornSTSEventRFAC_Process+0x1c>
+ 80033d8:	4b15      	ldr	r3, [pc, #84]	; (8003430 <STS_YunhornSTSEventRFAC_Process+0x6c>)
+ 80033da:	681b      	ldr	r3, [r3, #0]
+ 80033dc:	2b04      	cmp	r3, #4
+ 80033de:	d904      	bls.n	80033ea <STS_YunhornSTSEventRFAC_Process+0x26>
+		{
+			APP_LOG(TS_OFF, VLEVEL_M, "\r\n -------------------RFAC Process\r\n");
+			STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, 4, "RFAC");
+		}
+		if ((rfac_timer > (STS_BURN_IN_RFAC + 2)))
+ 80033e0:	4b13      	ldr	r3, [pc, #76]	; (8003430 <STS_YunhornSTSEventRFAC_Process+0x6c>)
+ 80033e2:	681b      	ldr	r3, [r3, #0]
+ 80033e4:	2b04      	cmp	r3, #4
+ 80033e6:	d80c      	bhi.n	8003402 <STS_YunhornSTSEventRFAC_Process+0x3e>
+				sts_ac_code[0] = 0x0;
+			}
+		}
+	}
+
+}
+ 80033e8:	bd10      	pop	{r4, pc}
+			APP_LOG(TS_OFF, VLEVEL_M, "\r\n -------------------RFAC Process\r\n");
+ 80033ea:	4b12      	ldr	r3, [pc, #72]	; (8003434 <STS_YunhornSTSEventRFAC_Process+0x70>)
+ 80033ec:	2200      	movs	r2, #0
+ 80033ee:	4611      	mov	r1, r2
+ 80033f0:	2002      	movs	r0, #2
+ 80033f2:	f013 fba1 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+			STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, 4, "RFAC");
+ 80033f6:	4a10      	ldr	r2, [pc, #64]	; (8003438 <STS_YunhornSTSEventRFAC_Process+0x74>)
+ 80033f8:	2104      	movs	r1, #4
+ 80033fa:	2001      	movs	r0, #1
+ 80033fc:	f000 fc8a 	bl	8003d14 <STS_SENSOR_Upload_Message>
+ 8003400:	e7ee      	b.n	80033e0 <STS_YunhornSTSEventRFAC_Process+0x1c>
+			APP_LOG(TS_OFF, VLEVEL_M, "\r\n -------------------Verify RFAC Success or Not\r\n");
+ 8003402:	4b0e      	ldr	r3, [pc, #56]	; (800343c <STS_YunhornSTSEventRFAC_Process+0x78>)
+ 8003404:	2200      	movs	r2, #0
+ 8003406:	4611      	mov	r1, r2
+ 8003408:	2002      	movs	r0, #2
+ 800340a:	f013 fb95 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+			sts_service_mask = (sts_hmac_verify()!= 0)? STS_SERVICE_MASK_L2:STS_SERVICE_MASK_L0;
+ 800340e:	f7ff faf9 	bl	8002a04 <sts_hmac_verify>
+ 8003412:	b100      	cbz	r0, 8003416 <STS_YunhornSTSEventRFAC_Process+0x52>
+ 8003414:	2402      	movs	r4, #2
+ 8003416:	4b0a      	ldr	r3, [pc, #40]	; (8003440 <STS_YunhornSTSEventRFAC_Process+0x7c>)
+ 8003418:	701c      	strb	r4, [r3, #0]
+			if (sts_service_mask == STS_SERVICE_MASK_L2) {
+ 800341a:	781b      	ldrb	r3, [r3, #0]
+ 800341c:	b2db      	uxtb	r3, r3
+ 800341e:	2b02      	cmp	r3, #2
+ 8003420:	d1e2      	bne.n	80033e8 <STS_YunhornSTSEventRFAC_Process+0x24>
+				sts_ac_code[0] = 0x0;
+ 8003422:	4b02      	ldr	r3, [pc, #8]	; (800342c <STS_YunhornSTSEventRFAC_Process+0x68>)
+ 8003424:	2200      	movs	r2, #0
+ 8003426:	701a      	strb	r2, [r3, #0]
+}
+ 8003428:	e7de      	b.n	80033e8 <STS_YunhornSTSEventRFAC_Process+0x24>
+ 800342a:	4770      	bx	lr
+ 800342c:	20000e58 	.word	0x20000e58
+ 8003430:	20000c40 	.word	0x20000c40
+ 8003434:	080179d4 	.word	0x080179d4
+ 8003438:	080179fc 	.word	0x080179fc
+ 800343c:	08017a04 	.word	0x08017a04
+ 8003440:	20000c44 	.word	0x20000c44
+
+08003444 <STS_SENSOR_Power_ON>:
+#endif
+}
+
+void STS_SENSOR_Power_ON(uint8_t cnt)
+{
+	switch (cnt) {
+ 8003444:	2802      	cmp	r0, #2
+ 8003446:	d900      	bls.n	800344a <STS_SENSOR_Power_ON+0x6>
+ 8003448:	4770      	bx	lr
+{
+ 800344a:	b508      	push	{r3, lr}
+		case 0:
+		case 1:
+		case 2:
+#if	(defined(YUNHORN_STS_M7_ENABLED) || defined(YUNHORN_STS_R0_ENABLED))
+		HAL_GPIO_WritePin(MEMS_POWER_GPIO_Port, MEMS_POWER_Pin, GPIO_PIN_SET);
+ 800344c:	2201      	movs	r2, #1
+ 800344e:	2110      	movs	r1, #16
+ 8003450:	4801      	ldr	r0, [pc, #4]	; (8003458 <STS_SENSOR_Power_ON+0x14>)
+ 8003452:	f006 f952 	bl	80096fa <HAL_GPIO_WritePin>
+		break;
+		default:
+		break;
+	}
+
+}
+ 8003456:	bd08      	pop	{r3, pc}
+ 8003458:	48000400 	.word	0x48000400
+
+0800345c <STS_SENSOR_Power_OFF>:
+void STS_SENSOR_Power_OFF(uint8_t cnt)
+{
+	switch (cnt) {
+ 800345c:	2802      	cmp	r0, #2
+ 800345e:	d900      	bls.n	8003462 <STS_SENSOR_Power_OFF+0x6>
+ 8003460:	4770      	bx	lr
+{
+ 8003462:	b508      	push	{r3, lr}
+		case 0:
+		case 1:
+		case 2:
+#if	(defined(YUNHORN_STS_M7_ENABLED) || defined(YUNHORN_STS_R0_ENABLED))
+		HAL_GPIO_WritePin(MEMS_POWER_GPIO_Port, MEMS_POWER_Pin, GPIO_PIN_RESET);
+ 8003464:	2200      	movs	r2, #0
+ 8003466:	2110      	movs	r1, #16
+ 8003468:	4801      	ldr	r0, [pc, #4]	; (8003470 <STS_SENSOR_Power_OFF+0x14>)
+ 800346a:	f006 f946 	bl	80096fa <HAL_GPIO_WritePin>
+
+		break;
+		default:
+		break;
+	}
+}
+ 800346e:	bd08      	pop	{r3, pc}
+ 8003470:	48000400 	.word	0x48000400
+
+08003474 <STS_YunhornSTSEventP4_Process>:
+{
+ 8003474:	b510      	push	{r4, lr}
+	STS_SENSOR_Power_ON(0);
+ 8003476:	2000      	movs	r0, #0
+ 8003478:	f7ff ffe4 	bl	8003444 <STS_SENSOR_Power_ON>
+	LED_ON;
+ 800347c:	4c0c      	ldr	r4, [pc, #48]	; (80034b0 <STS_YunhornSTSEventP4_Process+0x3c>)
+ 800347e:	2201      	movs	r2, #1
+ 8003480:	2104      	movs	r1, #4
+ 8003482:	4620      	mov	r0, r4
+ 8003484:	f006 f939 	bl	80096fa <HAL_GPIO_WritePin>
+	HAL_Delay(50);
+ 8003488:	2032      	movs	r0, #50	; 0x32
+ 800348a:	f7ff fc11 	bl	8002cb0 <HAL_Delay>
+	APP_LOG(TS_OFF, VLEVEL_L, "\r\n P4 Testing Process\r\n");
+ 800348e:	4b09      	ldr	r3, [pc, #36]	; (80034b4 <STS_YunhornSTSEventP4_Process+0x40>)
+ 8003490:	2200      	movs	r2, #0
+ 8003492:	4611      	mov	r1, r2
+ 8003494:	2001      	movs	r0, #1
+ 8003496:	f013 fb4f 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+	STS_TOF_VL53L0X_Range_Process();
+ 800349a:	f001 ff67 	bl	800536c <STS_TOF_VL53L0X_Range_Process>
+	LED_OFF;
+ 800349e:	2200      	movs	r2, #0
+ 80034a0:	2104      	movs	r1, #4
+ 80034a2:	4620      	mov	r0, r4
+ 80034a4:	f006 f929 	bl	80096fa <HAL_GPIO_WritePin>
+	STS_SENSOR_Power_OFF(0);
+ 80034a8:	2000      	movs	r0, #0
+ 80034aa:	f7ff ffd7 	bl	800345c <STS_SENSOR_Power_OFF>
+}
+ 80034ae:	bd10      	pop	{r4, pc}
+ 80034b0:	48000400 	.word	0x48000400
+ 80034b4:	08017a38 	.word	0x08017a38
+
+080034b8 <STS_YunhornSTSEventP6_Process>:
+{
+ 80034b8:	b510      	push	{r4, lr}
+	APP_LOG(TS_OFF, VLEVEL_L, "\r\n P6 Testing Process\r\n");
+ 80034ba:	4b1c      	ldr	r3, [pc, #112]	; (800352c <STS_YunhornSTSEventP6_Process+0x74>)
+ 80034bc:	2200      	movs	r2, #0
+ 80034be:	4611      	mov	r1, r2
+ 80034c0:	2001      	movs	r0, #1
+ 80034c2:	f013 fb39 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+	STS_SENSOR_Power_ON(0);
+ 80034c6:	2000      	movs	r0, #0
+ 80034c8:	f7ff ffbc 	bl	8003444 <STS_SENSOR_Power_ON>
+	LED_ON;
+ 80034cc:	4c18      	ldr	r4, [pc, #96]	; (8003530 <STS_YunhornSTSEventP6_Process+0x78>)
+ 80034ce:	2201      	movs	r2, #1
+ 80034d0:	2104      	movs	r1, #4
+ 80034d2:	4620      	mov	r0, r4
+ 80034d4:	f006 f911 	bl	80096fa <HAL_GPIO_WritePin>
+	HAL_Delay(50);
+ 80034d8:	2032      	movs	r0, #50	; 0x32
+ 80034da:	f7ff fbe9 	bl	8002cb0 <HAL_Delay>
+	LED_OFF;
+ 80034de:	2200      	movs	r2, #0
+ 80034e0:	2104      	movs	r1, #4
+ 80034e2:	4620      	mov	r0, r4
+ 80034e4:	f006 f909 	bl	80096fa <HAL_GPIO_WritePin>
+	HAL_Delay(20);
+ 80034e8:	2014      	movs	r0, #20
+ 80034ea:	f7ff fbe1 	bl	8002cb0 <HAL_Delay>
+	LED_ON;
+ 80034ee:	2201      	movs	r2, #1
+ 80034f0:	2104      	movs	r1, #4
+ 80034f2:	4620      	mov	r0, r4
+ 80034f4:	f006 f901 	bl	80096fa <HAL_GPIO_WritePin>
+	HAL_Delay(50);
+ 80034f8:	2032      	movs	r0, #50	; 0x32
+ 80034fa:	f7ff fbd9 	bl	8002cb0 <HAL_Delay>
+	LED_OFF;
+ 80034fe:	2200      	movs	r2, #0
+ 8003500:	2104      	movs	r1, #4
+ 8003502:	4620      	mov	r0, r4
+ 8003504:	f006 f8f9 	bl	80096fa <HAL_GPIO_WritePin>
+	STS_SENSOR_Power_OFF(0);
+ 8003508:	2000      	movs	r0, #0
+ 800350a:	f7ff ffa7 	bl	800345c <STS_SENSOR_Power_OFF>
+    LED_ON;
+ 800350e:	2201      	movs	r2, #1
+ 8003510:	2104      	movs	r1, #4
+ 8003512:	4620      	mov	r0, r4
+ 8003514:	f006 f8f1 	bl	80096fa <HAL_GPIO_WritePin>
+    HAL_Delay(500);
+ 8003518:	f44f 70fa 	mov.w	r0, #500	; 0x1f4
+ 800351c:	f7ff fbc8 	bl	8002cb0 <HAL_Delay>
+    LED_OFF;
+ 8003520:	2200      	movs	r2, #0
+ 8003522:	2104      	movs	r1, #4
+ 8003524:	4620      	mov	r0, r4
+ 8003526:	f006 f8e8 	bl	80096fa <HAL_GPIO_WritePin>
+}
+ 800352a:	bd10      	pop	{r4, pc}
+ 800352c:	08017a50 	.word	0x08017a50
+ 8003530:	48000400 	.word	0x48000400
+
+08003534 <STS_SENSOR_MEMS_Reset>:
+
+void STS_SENSOR_MEMS_Reset(uint8_t cnt)
+{
+	switch (cnt) {
+ 8003534:	2802      	cmp	r0, #2
+ 8003536:	d900      	bls.n	800353a <STS_SENSOR_MEMS_Reset+0x6>
+ 8003538:	4770      	bx	lr
+{
+ 800353a:	b510      	push	{r4, lr}
+		case 0:
+		case 1:
+		case 2:
+#if	(defined(YUNHORN_STS_M7_ENABLED) || defined(YUNHORN_STS_R0_ENABLED))
+		HAL_GPIO_WritePin(MEMS_RESET_GPIO_Port, MEMS_RESET_Pin, GPIO_PIN_SET);
+ 800353c:	4c0d      	ldr	r4, [pc, #52]	; (8003574 <STS_SENSOR_MEMS_Reset+0x40>)
+ 800353e:	2201      	movs	r2, #1
+ 8003540:	2110      	movs	r1, #16
+ 8003542:	4620      	mov	r0, r4
+ 8003544:	f006 f8d9 	bl	80096fa <HAL_GPIO_WritePin>
+		HAL_Delay(50);
+ 8003548:	2032      	movs	r0, #50	; 0x32
+ 800354a:	f7ff fbb1 	bl	8002cb0 <HAL_Delay>
+		HAL_GPIO_WritePin(MEMS_RESET_GPIO_Port, MEMS_RESET_Pin, GPIO_PIN_RESET);
+ 800354e:	2200      	movs	r2, #0
+ 8003550:	2110      	movs	r1, #16
+ 8003552:	4620      	mov	r0, r4
+ 8003554:	f006 f8d1 	bl	80096fa <HAL_GPIO_WritePin>
+#endif
+		HAL_GPIO_WritePin(MEMS_RESET_GPIO_Port, MEMS_RESET_Pin, GPIO_PIN_SET);
+ 8003558:	2201      	movs	r2, #1
+ 800355a:	2110      	movs	r1, #16
+ 800355c:	4620      	mov	r0, r4
+ 800355e:	f006 f8cc 	bl	80096fa <HAL_GPIO_WritePin>
+		HAL_Delay(50);
+ 8003562:	2032      	movs	r0, #50	; 0x32
+ 8003564:	f7ff fba4 	bl	8002cb0 <HAL_Delay>
+		HAL_GPIO_WritePin(MEMS_RESET_GPIO_Port, MEMS_RESET_Pin, GPIO_PIN_RESET);
+ 8003568:	2200      	movs	r2, #0
+ 800356a:	2110      	movs	r1, #16
+ 800356c:	4620      	mov	r0, r4
+ 800356e:	f006 f8c4 	bl	80096fa <HAL_GPIO_WritePin>
+		break;
+		default:
+		break;
+	}
+
+}
+ 8003572:	bd10      	pop	{r4, pc}
+ 8003574:	48000400 	.word	0x48000400
+
+08003578 <STS_SENSOR_NVM_CFG_SIMPLE>:
+}
+
+void STS_SENSOR_NVM_CFG_SIMPLE(void)
+{
+
+}
+ 8003578:	4770      	bx	lr
+
+0800357a <MX_LoRaWAN_Init>:
+/* USER CODE END PFP */
+
+/* Exported functions --------------------------------------------------------*/
+
+void MX_LoRaWAN_Init(void)
+{
+ 800357a:	b508      	push	{r3, lr}
+  /* USER CODE BEGIN MX_LoRaWAN_Init_1 */
+
+  /* USER CODE END MX_LoRaWAN_Init_1 */
+  SystemApp_Init();
+ 800357c:	f7ff fad8 	bl	8002b30 <SystemApp_Init>
+  /* USER CODE BEGIN MX_LoRaWAN_Init_2 */
+
+  /* USER CODE END MX_LoRaWAN_Init_2 */
+  LoRaWAN_Init();
+ 8003580:	f000 fdc0 	bl	8004104 <LoRaWAN_Init>
+  /* USER CODE BEGIN MX_LoRaWAN_Init_3 */
+
+  /* USER CODE END MX_LoRaWAN_Init_3 */
+}
+ 8003584:	bd08      	pop	{r3, pc}
+
+08003586 <MX_LoRaWAN_Process>:
+
+void MX_LoRaWAN_Process(void)
+{
+ 8003586:	b508      	push	{r3, lr}
+  /* USER CODE BEGIN MX_LoRaWAN_Process_1 */
+
+  /* USER CODE END MX_LoRaWAN_Process_1 */
+  UTIL_SEQ_Run(UTIL_SEQ_DEFAULT);
+ 8003588:	f04f 30ff 	mov.w	r0, #4294967295
+ 800358c:	f013 fc32 	bl	8016df4 <UTIL_SEQ_Run>
+  /* USER CODE BEGIN MX_LoRaWAN_Process_2 */
+
+  /* USER CODE END MX_LoRaWAN_Process_2 */
+}
+ 8003590:	bd08      	pop	{r3, pc}
+
+08003592 <OnTxTimerLedEvent>:
+static void OnTxTimerLedEvent(void *context)
+{
+#if	defined(STM32WL55xx)
+  HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_RESET); /* LED_GREEN */
+#endif
+}
+ 8003592:	4770      	bx	lr
+
+08003594 <OnRxTimerLedEvent>:
+static void OnRxTimerLedEvent(void *context)
+{
+#if	defined(STM32WL55xx)
+  HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET); /* LED_BLUE */
+#endif
+}
+ 8003594:	4770      	bx	lr
+
+08003596 <OnJoinTimerLedEvent>:
+static void OnJoinTimerLedEvent(void *context)
+{
+#if	defined(STM32WL55xx)
+  HAL_GPIO_TogglePin(LED3_GPIO_Port, LED3_Pin); /* LED_RED */
+#endif
+}
+ 8003596:	4770      	bx	lr
+
+08003598 <OnSysTimeUpdate>:
+static void OnSysTimeUpdate(void)
+{
+  /* USER CODE BEGIN OnSysTimeUpdate_1 */
+
+  /* USER CODE END OnSysTimeUpdate_1 */
+}
+ 8003598:	4770      	bx	lr
+	...
+
+0800359c <OnTxFrameCtrlChanged>:
+static void OnTxFrameCtrlChanged(LmHandlerMsgTypes_t isTxConfirmed)
+{
+  /* USER CODE BEGIN OnTxFrameCtrlChanged_1 */
+
+  /* USER CODE END OnTxFrameCtrlChanged_1 */
+  LmHandlerParams.IsTxConfirmed = isTxConfirmed;
+ 800359c:	4b01      	ldr	r3, [pc, #4]	; (80035a4 <OnTxFrameCtrlChanged+0x8>)
+ 800359e:	70d8      	strb	r0, [r3, #3]
+  /* USER CODE BEGIN OnTxFrameCtrlChanged_2 */
+
+  /* USER CODE END OnTxFrameCtrlChanged_2 */
+}
+ 80035a0:	4770      	bx	lr
+ 80035a2:	bf00      	nop
+ 80035a4:	2000005c 	.word	0x2000005c
+
+080035a8 <OnPingSlotPeriodicityChanged>:
+static void OnPingSlotPeriodicityChanged(uint8_t pingSlotPeriodicity)
+{
+  /* USER CODE BEGIN OnPingSlotPeriodicityChanged_1 */
+
+  /* USER CODE END OnPingSlotPeriodicityChanged_1 */
+  LmHandlerParams.PingSlotPeriodicity = pingSlotPeriodicity;
+ 80035a8:	4b01      	ldr	r3, [pc, #4]	; (80035b0 <OnPingSlotPeriodicityChanged+0x8>)
+ 80035aa:	7418      	strb	r0, [r3, #16]
+  /* USER CODE BEGIN OnPingSlotPeriodicityChanged_2 */
+
+  /* USER CODE END OnPingSlotPeriodicityChanged_2 */
+}
+ 80035ac:	4770      	bx	lr
+ 80035ae:	bf00      	nop
+ 80035b0:	2000005c 	.word	0x2000005c
+
+080035b4 <OnBeaconStatusChange>:
+  if (params != NULL)
+ 80035b4:	2800      	cmp	r0, #0
+ 80035b6:	d03f      	beq.n	8003638 <OnBeaconStatusChange+0x84>
+{
+ 80035b8:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 80035bc:	b08c      	sub	sp, #48	; 0x30
+ 80035be:	4603      	mov	r3, r0
+    switch (params->State)
+ 80035c0:	7842      	ldrb	r2, [r0, #1]
+ 80035c2:	2a02      	cmp	r2, #2
+ 80035c4:	d00a      	beq.n	80035dc <OnBeaconStatusChange+0x28>
+ 80035c6:	2a03      	cmp	r2, #3
+ 80035c8:	d02f      	beq.n	800362a <OnBeaconStatusChange+0x76>
+        APP_LOG(TS_OFF, VLEVEL_M, "\r\n###### BEACON LOST\r\n");
+ 80035ca:	4b1c      	ldr	r3, [pc, #112]	; (800363c <OnBeaconStatusChange+0x88>)
+ 80035cc:	2200      	movs	r2, #0
+ 80035ce:	4611      	mov	r1, r2
+ 80035d0:	2002      	movs	r0, #2
+ 80035d2:	f013 fab1 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+}
+ 80035d6:	b00c      	add	sp, #48	; 0x30
+ 80035d8:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+        APP_LOG(TS_OFF, VLEVEL_M,
+ 80035dc:	7c02      	ldrb	r2, [r0, #16]
+ 80035de:	f9b0 1012 	ldrsh.w	r1, [r0, #18]
+ 80035e2:	f990 0014 	ldrsb.w	r0, [r0, #20]
+ 80035e6:	7d5c      	ldrb	r4, [r3, #21]
+ 80035e8:	7d9d      	ldrb	r5, [r3, #22]
+ 80035ea:	7dde      	ldrb	r6, [r3, #23]
+ 80035ec:	7e1f      	ldrb	r7, [r3, #24]
+ 80035ee:	f893 c019 	ldrb.w	ip, [r3, #25]
+ 80035f2:	f893 e01a 	ldrb.w	lr, [r3, #26]
+ 80035f6:	f893 801b 	ldrb.w	r8, [r3, #27]
+ 80035fa:	f8cd 802c 	str.w	r8, [sp, #44]	; 0x2c
+ 80035fe:	f8cd e028 	str.w	lr, [sp, #40]	; 0x28
+ 8003602:	f8cd c024 	str.w	ip, [sp, #36]	; 0x24
+ 8003606:	9708      	str	r7, [sp, #32]
+ 8003608:	9607      	str	r6, [sp, #28]
+ 800360a:	9506      	str	r5, [sp, #24]
+ 800360c:	9405      	str	r4, [sp, #20]
+ 800360e:	685c      	ldr	r4, [r3, #4]
+ 8003610:	9404      	str	r4, [sp, #16]
+ 8003612:	68db      	ldr	r3, [r3, #12]
+ 8003614:	9303      	str	r3, [sp, #12]
+ 8003616:	9002      	str	r0, [sp, #8]
+ 8003618:	9101      	str	r1, [sp, #4]
+ 800361a:	9200      	str	r2, [sp, #0]
+ 800361c:	4b08      	ldr	r3, [pc, #32]	; (8003640 <OnBeaconStatusChange+0x8c>)
+ 800361e:	2200      	movs	r2, #0
+ 8003620:	4611      	mov	r1, r2
+ 8003622:	2002      	movs	r0, #2
+ 8003624:	f013 fa88 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+        break;
+ 8003628:	e7d5      	b.n	80035d6 <OnBeaconStatusChange+0x22>
+        APP_LOG(TS_OFF, VLEVEL_M, "\r\n###### BEACON NOT RECEIVED\r\n");
+ 800362a:	4b06      	ldr	r3, [pc, #24]	; (8003644 <OnBeaconStatusChange+0x90>)
+ 800362c:	2200      	movs	r2, #0
+ 800362e:	4611      	mov	r1, r2
+ 8003630:	2002      	movs	r0, #2
+ 8003632:	f013 fa81 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+}
+ 8003636:	e7ce      	b.n	80035d6 <OnBeaconStatusChange+0x22>
+ 8003638:	4770      	bx	lr
+ 800363a:	bf00      	nop
+ 800363c:	08017a68 	.word	0x08017a68
+ 8003640:	08017a80 	.word	0x08017a80
+ 8003644:	08017af4 	.word	0x08017af4
+
+08003648 <OnClassChange>:
+{
+ 8003648:	b500      	push	{lr}
+ 800364a:	b083      	sub	sp, #12
+  APP_LOG(TS_OFF, VLEVEL_M, "Switch to Class %c done\r\n", "ABC"[deviceClass]);
+ 800364c:	4b05      	ldr	r3, [pc, #20]	; (8003664 <OnClassChange+0x1c>)
+ 800364e:	5c1b      	ldrb	r3, [r3, r0]
+ 8003650:	9300      	str	r3, [sp, #0]
+ 8003652:	4b05      	ldr	r3, [pc, #20]	; (8003668 <OnClassChange+0x20>)
+ 8003654:	2200      	movs	r2, #0
+ 8003656:	4611      	mov	r1, r2
+ 8003658:	2002      	movs	r0, #2
+ 800365a:	f013 fa6d 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+}
+ 800365e:	b003      	add	sp, #12
+ 8003660:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8003664:	08017b30 	.word	0x08017b30
+ 8003668:	08017b14 	.word	0x08017b14
+
+0800366c <OnNvmDataChange>:
+
+  /* USER CODE END StoreContext_Last */
+}
+
+static void OnNvmDataChange(LmHandlerNvmContextStates_t state)
+{
+ 800366c:	b508      	push	{r3, lr}
+  /* USER CODE BEGIN OnNvmDataChange_1 */
+
+  /* USER CODE END OnNvmDataChange_1 */
+  if (state == LORAMAC_HANDLER_NVM_STORE)
+ 800366e:	2801      	cmp	r0, #1
+ 8003670:	d006      	beq.n	8003680 <OnNvmDataChange+0x14>
+  {
+    APP_LOG(TS_OFF, VLEVEL_M, "NVM DATA STORED\r\n");
+  }
+  else
+  {
+    APP_LOG(TS_OFF, VLEVEL_M, "NVM DATA RESTORED\r\n");
+ 8003672:	4b07      	ldr	r3, [pc, #28]	; (8003690 <OnNvmDataChange+0x24>)
+ 8003674:	2200      	movs	r2, #0
+ 8003676:	4611      	mov	r1, r2
+ 8003678:	2002      	movs	r0, #2
+ 800367a:	f013 fa5d 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+  }
+  /* USER CODE BEGIN OnNvmDataChange_Last */
+
+  /* USER CODE END OnNvmDataChange_Last */
+}
+ 800367e:	bd08      	pop	{r3, pc}
+    APP_LOG(TS_OFF, VLEVEL_M, "NVM DATA STORED\r\n");
+ 8003680:	4b04      	ldr	r3, [pc, #16]	; (8003694 <OnNvmDataChange+0x28>)
+ 8003682:	2200      	movs	r2, #0
+ 8003684:	4611      	mov	r1, r2
+ 8003686:	2002      	movs	r0, #2
+ 8003688:	f013 fa56 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+ 800368c:	e7f7      	b.n	800367e <OnNvmDataChange+0x12>
+ 800368e:	bf00      	nop
+ 8003690:	08017b48 	.word	0x08017b48
+ 8003694:	08017b34 	.word	0x08017b34
+
+08003698 <OnTxData>:
+  if ((params != NULL))
+ 8003698:	2800      	cmp	r0, #0
+ 800369a:	d03c      	beq.n	8003716 <OnTxData+0x7e>
+{
+ 800369c:	b510      	push	{r4, lr}
+ 800369e:	b084      	sub	sp, #16
+ 80036a0:	4604      	mov	r4, r0
+    if (params->IsMcpsConfirm != 0)
+ 80036a2:	7803      	ldrb	r3, [r0, #0]
+ 80036a4:	b90b      	cbnz	r3, 80036aa <OnTxData+0x12>
+}
+ 80036a6:	b004      	add	sp, #16
+ 80036a8:	bd10      	pop	{r4, pc}
+      UTIL_TIMER_Start(&TxLedTimer);
+ 80036aa:	481b      	ldr	r0, [pc, #108]	; (8003718 <OnTxData+0x80>)
+ 80036ac:	f013 fdf0 	bl	8017290 <UTIL_TIMER_Start>
+      APP_LOG(TS_OFF, VLEVEL_M, "\r\n###### ========== MCPS-Confirm =============\r\n");
+ 80036b0:	4b1a      	ldr	r3, [pc, #104]	; (800371c <OnTxData+0x84>)
+ 80036b2:	2200      	movs	r2, #0
+ 80036b4:	4611      	mov	r1, r2
+ 80036b6:	2002      	movs	r0, #2
+ 80036b8:	f013 fa3e 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+      APP_LOG(TS_OFF, VLEVEL_H, "###### U/L FRAME:%04d | PORT:%d | DR:%d | PWR:%d", params->UplinkCounter,
+ 80036bc:	7c23      	ldrb	r3, [r4, #16]
+ 80036be:	f994 200a 	ldrsb.w	r2, [r4, #10]
+ 80036c2:	f994 1018 	ldrsb.w	r1, [r4, #24]
+ 80036c6:	9103      	str	r1, [sp, #12]
+ 80036c8:	9202      	str	r2, [sp, #8]
+ 80036ca:	9301      	str	r3, [sp, #4]
+ 80036cc:	68e3      	ldr	r3, [r4, #12]
+ 80036ce:	9300      	str	r3, [sp, #0]
+ 80036d0:	4b13      	ldr	r3, [pc, #76]	; (8003720 <OnTxData+0x88>)
+ 80036d2:	2200      	movs	r2, #0
+ 80036d4:	4611      	mov	r1, r2
+ 80036d6:	2003      	movs	r0, #3
+ 80036d8:	f013 fa2e 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+      APP_LOG(TS_OFF, VLEVEL_H, " | MSG TYPE:");
+ 80036dc:	4b11      	ldr	r3, [pc, #68]	; (8003724 <OnTxData+0x8c>)
+ 80036de:	2200      	movs	r2, #0
+ 80036e0:	4611      	mov	r1, r2
+ 80036e2:	2003      	movs	r0, #3
+ 80036e4:	f013 fa28 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+      if (params->MsgType == LORAMAC_HANDLER_CONFIRMED_MSG)
+ 80036e8:	7a23      	ldrb	r3, [r4, #8]
+ 80036ea:	2b01      	cmp	r3, #1
+ 80036ec:	d10c      	bne.n	8003708 <OnTxData+0x70>
+        APP_LOG(TS_OFF, VLEVEL_H, "CONFIRMED [%s]\r\n", (params->AckReceived != 0) ? "ACK" : "NACK");
+ 80036ee:	7a63      	ldrb	r3, [r4, #9]
+ 80036f0:	b143      	cbz	r3, 8003704 <OnTxData+0x6c>
+ 80036f2:	4b0d      	ldr	r3, [pc, #52]	; (8003728 <OnTxData+0x90>)
+ 80036f4:	9300      	str	r3, [sp, #0]
+ 80036f6:	4b0d      	ldr	r3, [pc, #52]	; (800372c <OnTxData+0x94>)
+ 80036f8:	2200      	movs	r2, #0
+ 80036fa:	4611      	mov	r1, r2
+ 80036fc:	2003      	movs	r0, #3
+ 80036fe:	f013 fa1b 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+ 8003702:	e7d0      	b.n	80036a6 <OnTxData+0xe>
+ 8003704:	4b0a      	ldr	r3, [pc, #40]	; (8003730 <OnTxData+0x98>)
+ 8003706:	e7f5      	b.n	80036f4 <OnTxData+0x5c>
+        APP_LOG(TS_OFF, VLEVEL_H, "UNCONFIRMED\r\n");
+ 8003708:	4b0a      	ldr	r3, [pc, #40]	; (8003734 <OnTxData+0x9c>)
+ 800370a:	2200      	movs	r2, #0
+ 800370c:	4611      	mov	r1, r2
+ 800370e:	2003      	movs	r0, #3
+ 8003710:	f013 fa12 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+}
+ 8003714:	e7c7      	b.n	80036a6 <OnTxData+0xe>
+ 8003716:	4770      	bx	lr
+ 8003718:	20000d88 	.word	0x20000d88
+ 800371c:	08017b68 	.word	0x08017b68
+ 8003720:	08017b9c 	.word	0x08017b9c
+ 8003724:	08017bd0 	.word	0x08017bd0
+ 8003728:	08017b5c 	.word	0x08017b5c
+ 800372c:	08017be0 	.word	0x08017be0
+ 8003730:	08017b60 	.word	0x08017b60
+ 8003734:	08017bf4 	.word	0x08017bf4
+
+08003738 <OnYunhornSTSHeartBeatTimerEvent>:
+/**
+  * @brief  Yunhorn STS Sensor Heart Beat Timer callback function
+  * @param  context ptr of STS Sampling Check context
+  */
+static void OnYunhornSTSHeartBeatTimerEvent(void *context)
+{
+ 8003738:	b508      	push	{r3, lr}
+	heart_beat_timer = 1;
+ 800373a:	4b0e      	ldr	r3, [pc, #56]	; (8003774 <OnYunhornSTSHeartBeatTimerEvent+0x3c>)
+ 800373c:	2201      	movs	r2, #1
+ 800373e:	701a      	strb	r2, [r3, #0]
+	UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0);
+ 8003740:	2100      	movs	r1, #0
+ 8003742:	2002      	movs	r0, #2
+ 8003744:	f013 fb22 	bl	8016d8c <UTIL_SEQ_SetTask>
+	UTIL_TIMER_Start(&YunhornSTSHeartBeatTimer);
+ 8003748:	480b      	ldr	r0, [pc, #44]	; (8003778 <OnYunhornSTSHeartBeatTimerEvent+0x40>)
+ 800374a:	f013 fda1 	bl	8017290 <UTIL_TIMER_Start>
+
+	if ((STS_LoRa_WAN_Joined ) && (sts_ac_code[0]==0x0))
+ 800374e:	4b0b      	ldr	r3, [pc, #44]	; (800377c <OnYunhornSTSHeartBeatTimerEvent+0x44>)
+ 8003750:	781b      	ldrb	r3, [r3, #0]
+ 8003752:	b173      	cbz	r3, 8003772 <OnYunhornSTSHeartBeatTimerEvent+0x3a>
+ 8003754:	4b0a      	ldr	r3, [pc, #40]	; (8003780 <OnYunhornSTSHeartBeatTimerEvent+0x48>)
+ 8003756:	781b      	ldrb	r3, [r3, #0]
+ 8003758:	b95b      	cbnz	r3, 8003772 <OnYunhornSTSHeartBeatTimerEvent+0x3a>
+	{
+	  		/* RFAC  Challenge */
+	  		if (rfac_timer < (STS_BURN_IN_RFAC+3)) {
+ 800375a:	4b0a      	ldr	r3, [pc, #40]	; (8003784 <OnYunhornSTSHeartBeatTimerEvent+0x4c>)
+ 800375c:	681b      	ldr	r3, [r3, #0]
+ 800375e:	2b04      	cmp	r3, #4
+ 8003760:	d803      	bhi.n	800376a <OnYunhornSTSHeartBeatTimerEvent+0x32>
+	  			rfac_timer ++;
+ 8003762:	4a08      	ldr	r2, [pc, #32]	; (8003784 <OnYunhornSTSHeartBeatTimerEvent+0x4c>)
+ 8003764:	6813      	ldr	r3, [r2, #0]
+ 8003766:	3301      	adds	r3, #1
+ 8003768:	6013      	str	r3, [r2, #0]
+	  		}
+	   		UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventRFAC), CFG_SEQ_Prio_0);
+ 800376a:	2100      	movs	r1, #0
+ 800376c:	2010      	movs	r0, #16
+ 800376e:	f013 fb0d 	bl	8016d8c <UTIL_SEQ_SetTask>
+	}
+}
+ 8003772:	bd08      	pop	{r3, pc}
+ 8003774:	20000dd0 	.word	0x20000dd0
+ 8003778:	20000db8 	.word	0x20000db8
+ 800377c:	20000d6c 	.word	0x20000d6c
+ 8003780:	20000e58 	.word	0x20000e58
+ 8003784:	20000c40 	.word	0x20000c40
+
+08003788 <OnTxTimerEvent>:
+{
+ 8003788:	b508      	push	{r3, lr}
+  upload_message_timer =1U;
+ 800378a:	4b05      	ldr	r3, [pc, #20]	; (80037a0 <OnTxTimerEvent+0x18>)
+ 800378c:	2201      	movs	r2, #1
+ 800378e:	701a      	strb	r2, [r3, #0]
+  UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0);
+ 8003790:	2100      	movs	r1, #0
+ 8003792:	2002      	movs	r0, #2
+ 8003794:	f013 fafa 	bl	8016d8c <UTIL_SEQ_SetTask>
+  UTIL_TIMER_Start(&TxTimer);
+ 8003798:	4802      	ldr	r0, [pc, #8]	; (80037a4 <OnTxTimerEvent+0x1c>)
+ 800379a:	f013 fd79 	bl	8017290 <UTIL_TIMER_Start>
+}
+ 800379e:	bd08      	pop	{r3, pc}
+ 80037a0:	20000e6d 	.word	0x20000e6d
+ 80037a4:	20000da0 	.word	0x20000da0
+
+080037a8 <OnMacProcessNotify>:
+{
+ 80037a8:	b508      	push	{r3, lr}
+  UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LmHandlerProcess), CFG_SEQ_Prio_0);
+ 80037aa:	2100      	movs	r1, #0
+ 80037ac:	2001      	movs	r0, #1
+ 80037ae:	f013 faed 	bl	8016d8c <UTIL_SEQ_SetTask>
+}
+ 80037b2:	bd08      	pop	{r3, pc}
+
+080037b4 <OnStopJoinTimerEvent>:
+{
+ 80037b4:	b508      	push	{r3, lr}
+  if (ActivationType == LORAWAN_DEFAULT_ACTIVATION_TYPE)
+ 80037b6:	4b05      	ldr	r3, [pc, #20]	; (80037cc <OnStopJoinTimerEvent+0x18>)
+ 80037b8:	781b      	ldrb	r3, [r3, #0]
+ 80037ba:	2b02      	cmp	r3, #2
+ 80037bc:	d000      	beq.n	80037c0 <OnStopJoinTimerEvent+0xc>
+}
+ 80037be:	bd08      	pop	{r3, pc}
+    UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaStopJoinEvent), CFG_SEQ_Prio_0);
+ 80037c0:	2100      	movs	r1, #0
+ 80037c2:	2008      	movs	r0, #8
+ 80037c4:	f013 fae2 	bl	8016d8c <UTIL_SEQ_SetTask>
+}
+ 80037c8:	e7f9      	b.n	80037be <OnStopJoinTimerEvent+0xa>
+ 80037ca:	bf00      	nop
+ 80037cc:	20000000 	.word	0x20000000
+
+080037d0 <OnSystemReset>:
+{
+ 80037d0:	b508      	push	{r3, lr}
+  if ((LORAMAC_HANDLER_SUCCESS == LmHandlerHalt()) && (LmHandlerJoinStatus() == LORAMAC_HANDLER_SET))
+ 80037d2:	f009 fef9 	bl	800d5c8 <LmHandlerHalt>
+ 80037d6:	b100      	cbz	r0, 80037da <OnSystemReset+0xa>
+}
+ 80037d8:	bd08      	pop	{r3, pc}
+  if ((LORAMAC_HANDLER_SUCCESS == LmHandlerHalt()) && (LmHandlerJoinStatus() == LORAMAC_HANDLER_SET))
+ 80037da:	f009 fb53 	bl	800ce84 <LmHandlerJoinStatus>
+ 80037de:	2801      	cmp	r0, #1
+ 80037e0:	d1fa      	bne.n	80037d8 <OnSystemReset+0x8>
+  \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");
+ 80037e2:	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) |
+ 80037e6:	4905      	ldr	r1, [pc, #20]	; (80037fc <OnSystemReset+0x2c>)
+ 80037e8:	68ca      	ldr	r2, [r1, #12]
+ 80037ea:	f402 62e0 	and.w	r2, r2, #1792	; 0x700
+  SCB->AIRCR  = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos)    |
+ 80037ee:	4b04      	ldr	r3, [pc, #16]	; (8003800 <OnSystemReset+0x30>)
+ 80037f0:	4313      	orrs	r3, r2
+ 80037f2:	60cb      	str	r3, [r1, #12]
+ 80037f4:	f3bf 8f4f 	dsb	sy
+                            SCB_AIRCR_SYSRESETREQ_Msk    );         /* Keep priority group unchanged */
+  __DSB();                                                          /* Ensure completion of memory access */
+
+  for(;;)                                                           /* wait until reset */
+  {
+    __NOP();
+ 80037f8:	bf00      	nop
+  for(;;)                                                           /* wait until reset */
+ 80037fa:	e7fd      	b.n	80037f8 <OnSystemReset+0x28>
+ 80037fc:	e000ed00 	.word	0xe000ed00
+ 8003800:	05fa0004 	.word	0x05fa0004
+
+08003804 <OnJoinRequest>:
+  if (joinParams != NULL)
+ 8003804:	2800      	cmp	r0, #0
+ 8003806:	d03e      	beq.n	8003886 <OnJoinRequest+0x82>
+{
+ 8003808:	b510      	push	{r4, lr}
+ 800380a:	b082      	sub	sp, #8
+ 800380c:	4604      	mov	r4, r0
+    if (joinParams->Status == LORAMAC_HANDLER_SUCCESS)
+ 800380e:	f990 3006 	ldrsb.w	r3, [r0, #6]
+ 8003812:	bb8b      	cbnz	r3, 8003878 <OnJoinRequest+0x74>
+      UTIL_TIMER_Stop(&JoinLedTimer);
+ 8003814:	481c      	ldr	r0, [pc, #112]	; (8003888 <OnJoinRequest+0x84>)
+ 8003816:	f013 fce1 	bl	80171dc <UTIL_TIMER_Stop>
+      APP_LOG(TS_OFF, VLEVEL_M, "\r\n###### = JOINED = ");
+ 800381a:	4b1c      	ldr	r3, [pc, #112]	; (800388c <OnJoinRequest+0x88>)
+ 800381c:	2200      	movs	r2, #0
+ 800381e:	4611      	mov	r1, r2
+ 8003820:	2002      	movs	r0, #2
+ 8003822:	f013 f989 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+      if (joinParams->Mode == ACTIVATION_TYPE_ABP)
+ 8003826:	79e3      	ldrb	r3, [r4, #7]
+ 8003828:	2b01      	cmp	r3, #1
+ 800382a:	d01e      	beq.n	800386a <OnJoinRequest+0x66>
+        APP_LOG(TS_OFF, VLEVEL_M, "OTAA =====================\r\n");
+ 800382c:	4b18      	ldr	r3, [pc, #96]	; (8003890 <OnJoinRequest+0x8c>)
+ 800382e:	2200      	movs	r2, #0
+ 8003830:	4611      	mov	r1, r2
+ 8003832:	2002      	movs	r0, #2
+ 8003834:	f013 f980 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+      STS_LoRa_WAN_Joined = (uint8_t) joinParams->Mode;
+ 8003838:	79e2      	ldrb	r2, [r4, #7]
+ 800383a:	4b16      	ldr	r3, [pc, #88]	; (8003894 <OnJoinRequest+0x90>)
+ 800383c:	701a      	strb	r2, [r3, #0]
+      APP_LOG(TS_OFF, VLEVEL_L,"\r\n STS_LoRa_WAN_Joined = %d \r\n", STS_LoRa_WAN_Joined);
+ 800383e:	781b      	ldrb	r3, [r3, #0]
+ 8003840:	9300      	str	r3, [sp, #0]
+ 8003842:	4b15      	ldr	r3, [pc, #84]	; (8003898 <OnJoinRequest+0x94>)
+ 8003844:	2200      	movs	r2, #0
+ 8003846:	4611      	mov	r1, r2
+ 8003848:	2001      	movs	r0, #1
+ 800384a:	f013 f975 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+    APP_LOG(TS_OFF, VLEVEL_H, "###### U/L FRAME:JOIN | DR:%d | PWR:%d\r\n", joinParams->Datarate, joinParams->TxPower);
+ 800384e:	f994 3004 	ldrsb.w	r3, [r4, #4]
+ 8003852:	f994 2005 	ldrsb.w	r2, [r4, #5]
+ 8003856:	9201      	str	r2, [sp, #4]
+ 8003858:	9300      	str	r3, [sp, #0]
+ 800385a:	4b10      	ldr	r3, [pc, #64]	; (800389c <OnJoinRequest+0x98>)
+ 800385c:	2200      	movs	r2, #0
+ 800385e:	4611      	mov	r1, r2
+ 8003860:	2003      	movs	r0, #3
+ 8003862:	f013 f969 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+}
+ 8003866:	b002      	add	sp, #8
+ 8003868:	bd10      	pop	{r4, pc}
+        APP_LOG(TS_OFF, VLEVEL_M, "ABP ======================\r\n");
+ 800386a:	4b0d      	ldr	r3, [pc, #52]	; (80038a0 <OnJoinRequest+0x9c>)
+ 800386c:	2200      	movs	r2, #0
+ 800386e:	4611      	mov	r1, r2
+ 8003870:	2002      	movs	r0, #2
+ 8003872:	f013 f961 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+ 8003876:	e7df      	b.n	8003838 <OnJoinRequest+0x34>
+      APP_LOG(TS_OFF, VLEVEL_M, "\r\n###### = JOIN FAILED\r\n");
+ 8003878:	4b0a      	ldr	r3, [pc, #40]	; (80038a4 <OnJoinRequest+0xa0>)
+ 800387a:	2200      	movs	r2, #0
+ 800387c:	4611      	mov	r1, r2
+ 800387e:	2002      	movs	r0, #2
+ 8003880:	f013 f95a 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+ 8003884:	e7e3      	b.n	800384e <OnJoinRequest+0x4a>
+ 8003886:	4770      	bx	lr
+ 8003888:	20000d3c 	.word	0x20000d3c
+ 800388c:	08017c04 	.word	0x08017c04
+ 8003890:	08017c3c 	.word	0x08017c3c
+ 8003894:	20000d6c 	.word	0x20000d6c
+ 8003898:	08017c5c 	.word	0x08017c5c
+ 800389c:	08017c98 	.word	0x08017c98
+ 80038a0:	08017c1c 	.word	0x08017c1c
+ 80038a4:	08017c7c 	.word	0x08017c7c
+
+080038a8 <OnTxPeriodicityChanged>:
+{
+ 80038a8:	b530      	push	{r4, r5, lr}
+ 80038aa:	b083      	sub	sp, #12
+  TxPeriodicity = periodicity;
+ 80038ac:	4b0d      	ldr	r3, [pc, #52]	; (80038e4 <OnTxPeriodicityChanged+0x3c>)
+ 80038ae:	6018      	str	r0, [r3, #0]
+  if (TxPeriodicity == 0)
+ 80038b0:	b910      	cbnz	r0, 80038b8 <OnTxPeriodicityChanged+0x10>
+    TxPeriodicity = APP_TX_DUTYCYCLE;
+ 80038b2:	f242 7210 	movw	r2, #10000	; 0x2710
+ 80038b6:	601a      	str	r2, [r3, #0]
+  UTIL_TIMER_Stop(&TxTimer);
+ 80038b8:	4c0b      	ldr	r4, [pc, #44]	; (80038e8 <OnTxPeriodicityChanged+0x40>)
+ 80038ba:	4620      	mov	r0, r4
+ 80038bc:	f013 fc8e 	bl	80171dc <UTIL_TIMER_Stop>
+  UTIL_TIMER_SetPeriod(&TxTimer, TxPeriodicity);
+ 80038c0:	4d08      	ldr	r5, [pc, #32]	; (80038e4 <OnTxPeriodicityChanged+0x3c>)
+ 80038c2:	6829      	ldr	r1, [r5, #0]
+ 80038c4:	4620      	mov	r0, r4
+ 80038c6:	f013 fd29 	bl	801731c <UTIL_TIMER_SetPeriod>
+  UTIL_TIMER_Start(&TxTimer);
+ 80038ca:	4620      	mov	r0, r4
+ 80038cc:	f013 fce0 	bl	8017290 <UTIL_TIMER_Start>
+  APP_LOG(TS_OFF, VLEVEL_L,"\r\n TxPeriodicity changed to %u (msec) \r\n", TxPeriodicity);
+ 80038d0:	682b      	ldr	r3, [r5, #0]
+ 80038d2:	9300      	str	r3, [sp, #0]
+ 80038d4:	4b05      	ldr	r3, [pc, #20]	; (80038ec <OnTxPeriodicityChanged+0x44>)
+ 80038d6:	2200      	movs	r2, #0
+ 80038d8:	4611      	mov	r1, r2
+ 80038da:	2001      	movs	r0, #1
+ 80038dc:	f013 f92c 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+}
+ 80038e0:	b003      	add	sp, #12
+ 80038e2:	bd30      	pop	{r4, r5, pc}
+ 80038e4:	20000074 	.word	0x20000074
+ 80038e8:	20000da0 	.word	0x20000da0
+ 80038ec:	08017cc4 	.word	0x08017cc4
+
+080038f0 <OnYunhornSTSHeartBeatPeriodicityChanged>:
+{
+ 80038f0:	b530      	push	{r4, r5, lr}
+ 80038f2:	b083      	sub	sp, #12
+	HeartBeatPeriodicity = periodicity;
+ 80038f4:	4b0e      	ldr	r3, [pc, #56]	; (8003930 <OnYunhornSTSHeartBeatPeriodicityChanged+0x40>)
+ 80038f6:	6018      	str	r0, [r3, #0]
+  if (HeartBeatPeriodicity == 0)
+ 80038f8:	681b      	ldr	r3, [r3, #0]
+ 80038fa:	b913      	cbnz	r3, 8003902 <OnYunhornSTSHeartBeatPeriodicityChanged+0x12>
+	  HeartBeatPeriodicity = 10*APP_TX_DUTYCYCLE;
+ 80038fc:	4b0c      	ldr	r3, [pc, #48]	; (8003930 <OnYunhornSTSHeartBeatPeriodicityChanged+0x40>)
+ 80038fe:	4a0d      	ldr	r2, [pc, #52]	; (8003934 <OnYunhornSTSHeartBeatPeriodicityChanged+0x44>)
+ 8003900:	601a      	str	r2, [r3, #0]
+	  UTIL_TIMER_Stop(&YunhornSTSHeartBeatTimer);
+ 8003902:	4c0d      	ldr	r4, [pc, #52]	; (8003938 <OnYunhornSTSHeartBeatPeriodicityChanged+0x48>)
+ 8003904:	4620      	mov	r0, r4
+ 8003906:	f013 fc69 	bl	80171dc <UTIL_TIMER_Stop>
+	  UTIL_TIMER_SetPeriod(&YunhornSTSHeartBeatTimer, HeartBeatPeriodicity);
+ 800390a:	4d09      	ldr	r5, [pc, #36]	; (8003930 <OnYunhornSTSHeartBeatPeriodicityChanged+0x40>)
+ 800390c:	6829      	ldr	r1, [r5, #0]
+ 800390e:	4620      	mov	r0, r4
+ 8003910:	f013 fd04 	bl	801731c <UTIL_TIMER_SetPeriod>
+	  UTIL_TIMER_Start(&YunhornSTSHeartBeatTimer);
+ 8003914:	4620      	mov	r0, r4
+ 8003916:	f013 fcbb 	bl	8017290 <UTIL_TIMER_Start>
+  APP_LOG(TS_OFF, VLEVEL_L,"**************** HeartBeatPeriodicity Changed to: %u (ms)\r\n", HeartBeatPeriodicity );
+ 800391a:	682b      	ldr	r3, [r5, #0]
+ 800391c:	9300      	str	r3, [sp, #0]
+ 800391e:	4b07      	ldr	r3, [pc, #28]	; (800393c <OnYunhornSTSHeartBeatPeriodicityChanged+0x4c>)
+ 8003920:	2200      	movs	r2, #0
+ 8003922:	4611      	mov	r1, r2
+ 8003924:	2001      	movs	r0, #1
+ 8003926:	f013 f907 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+}
+ 800392a:	b003      	add	sp, #12
+ 800392c:	bd30      	pop	{r4, r5, pc}
+ 800392e:	bf00      	nop
+ 8003930:	2000000c 	.word	0x2000000c
+ 8003934:	000186a0 	.word	0x000186a0
+ 8003938:	20000db8 	.word	0x20000db8
+ 800393c:	08017cf0 	.word	0x08017cf0
+
+08003940 <OnStoreContextRequest>:
+{
+ 8003940:	b538      	push	{r3, r4, r5, lr}
+ 8003942:	4604      	mov	r4, r0
+ 8003944:	460d      	mov	r5, r1
+  if (FLASH_IF_Erase(LORAWAN_NVM_BASE_ADDRESS, FLASH_PAGE_SIZE) == FLASH_IF_OK)
+ 8003946:	f44f 6100 	mov.w	r1, #2048	; 0x800
+ 800394a:	4805      	ldr	r0, [pc, #20]	; (8003960 <OnStoreContextRequest+0x20>)
+ 800394c:	f7fe fd6a 	bl	8002424 <FLASH_IF_Erase>
+ 8003950:	b100      	cbz	r0, 8003954 <OnStoreContextRequest+0x14>
+}
+ 8003952:	bd38      	pop	{r3, r4, r5, pc}
+    FLASH_IF_Write(LORAWAN_NVM_BASE_ADDRESS, (const void *)nvm, nvm_size);
+ 8003954:	462a      	mov	r2, r5
+ 8003956:	4621      	mov	r1, r4
+ 8003958:	4801      	ldr	r0, [pc, #4]	; (8003960 <OnStoreContextRequest+0x20>)
+ 800395a:	f7fe fd2b 	bl	80023b4 <FLASH_IF_Write>
+}
+ 800395e:	e7f8      	b.n	8003952 <OnStoreContextRequest+0x12>
+ 8003960:	0803f000 	.word	0x0803f000
+
+08003964 <OnRestoreContextRequest>:
+{
+ 8003964:	b508      	push	{r3, lr}
+ 8003966:	460a      	mov	r2, r1
+  FLASH_IF_Read(nvm, LORAWAN_NVM_BASE_ADDRESS, nvm_size);
+ 8003968:	4901      	ldr	r1, [pc, #4]	; (8003970 <OnRestoreContextRequest+0xc>)
+ 800396a:	f7fe fd3f 	bl	80023ec <FLASH_IF_Read>
+}
+ 800396e:	bd08      	pop	{r3, pc}
+ 8003970:	0803f000 	.word	0x0803f000
+
+08003974 <StopJoin>:
+{
+ 8003974:	b538      	push	{r3, r4, r5, lr}
+  UTIL_TIMER_Stop(&TxTimer);
+ 8003976:	4815      	ldr	r0, [pc, #84]	; (80039cc <StopJoin+0x58>)
+ 8003978:	f013 fc30 	bl	80171dc <UTIL_TIMER_Stop>
+  if (LORAMAC_HANDLER_SUCCESS != LmHandlerStop())
+ 800397c:	f009 fe1c 	bl	800d5b8 <LmHandlerStop>
+ 8003980:	b148      	cbz	r0, 8003996 <StopJoin+0x22>
+    APP_LOG(TS_OFF, VLEVEL_M, "LmHandler Stop on going ...\r\n");
+ 8003982:	4b13      	ldr	r3, [pc, #76]	; (80039d0 <StopJoin+0x5c>)
+ 8003984:	2200      	movs	r2, #0
+ 8003986:	4611      	mov	r1, r2
+ 8003988:	2002      	movs	r0, #2
+ 800398a:	f013 f8d5 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+  UTIL_TIMER_Start(&StopJoinTimer);
+ 800398e:	4811      	ldr	r0, [pc, #68]	; (80039d4 <StopJoin+0x60>)
+ 8003990:	f013 fc7e 	bl	8017290 <UTIL_TIMER_Start>
+}
+ 8003994:	bd38      	pop	{r3, r4, r5, pc}
+    APP_LOG(TS_OFF, VLEVEL_M, "LmHandler Stopped\r\n");
+ 8003996:	4b10      	ldr	r3, [pc, #64]	; (80039d8 <StopJoin+0x64>)
+ 8003998:	2200      	movs	r2, #0
+ 800399a:	4611      	mov	r1, r2
+ 800399c:	2002      	movs	r0, #2
+ 800399e:	f013 f8cb 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+      ActivationType = ACTIVATION_TYPE_ABP;
+ 80039a2:	4c0e      	ldr	r4, [pc, #56]	; (80039dc <StopJoin+0x68>)
+ 80039a4:	2501      	movs	r5, #1
+ 80039a6:	7025      	strb	r5, [r4, #0]
+      APP_LOG(TS_OFF, VLEVEL_M, "LmHandler switch to ABP mode\r\n");
+ 80039a8:	4b0d      	ldr	r3, [pc, #52]	; (80039e0 <StopJoin+0x6c>)
+ 80039aa:	2200      	movs	r2, #0
+ 80039ac:	4611      	mov	r1, r2
+ 80039ae:	2002      	movs	r0, #2
+ 80039b0:	f013 f8c2 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+    LmHandlerConfigure(&LmHandlerParams);
+ 80039b4:	480b      	ldr	r0, [pc, #44]	; (80039e4 <StopJoin+0x70>)
+ 80039b6:	f009 fc87 	bl	800d2c8 <LmHandlerConfigure>
+    LmHandlerJoin(ActivationType, true);
+ 80039ba:	4629      	mov	r1, r5
+ 80039bc:	7820      	ldrb	r0, [r4, #0]
+ 80039be:	f009 facd 	bl	800cf5c <LmHandlerJoin>
+    UTIL_TIMER_Start(&TxTimer);
+ 80039c2:	4802      	ldr	r0, [pc, #8]	; (80039cc <StopJoin+0x58>)
+ 80039c4:	f013 fc64 	bl	8017290 <UTIL_TIMER_Start>
+ 80039c8:	e7e1      	b.n	800398e <StopJoin+0x1a>
+ 80039ca:	bf00      	nop
+ 80039cc:	20000da0 	.word	0x20000da0
+ 80039d0:	08017d2c 	.word	0x08017d2c
+ 80039d4:	20000d70 	.word	0x20000d70
+ 80039d8:	08017d4c 	.word	0x08017d4c
+ 80039dc:	20000000 	.word	0x20000000
+ 80039e0:	08017d60 	.word	0x08017d60
+ 80039e4:	2000005c 	.word	0x2000005c
+
+080039e8 <StoreContext>:
+{
+ 80039e8:	b508      	push	{r3, lr}
+  status = LmHandlerNvmDataStore();
+ 80039ea:	f009 fe77 	bl	800d6dc <LmHandlerNvmDataStore>
+  if (status == LORAMAC_HANDLER_NVM_DATA_UP_TO_DATE)
+ 80039ee:	f110 0f08 	cmn.w	r0, #8
+ 80039f2:	d003      	beq.n	80039fc <StoreContext+0x14>
+  else if (status == LORAMAC_HANDLER_ERROR)
+ 80039f4:	f1b0 3fff 	cmp.w	r0, #4294967295
+ 80039f8:	d007      	beq.n	8003a0a <StoreContext+0x22>
+}
+ 80039fa:	bd08      	pop	{r3, pc}
+    APP_LOG(TS_OFF, VLEVEL_M, "NVM DATA UP TO DATE\r\n");
+ 80039fc:	4b06      	ldr	r3, [pc, #24]	; (8003a18 <StoreContext+0x30>)
+ 80039fe:	2200      	movs	r2, #0
+ 8003a00:	4611      	mov	r1, r2
+ 8003a02:	2002      	movs	r0, #2
+ 8003a04:	f013 f898 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+ 8003a08:	e7f7      	b.n	80039fa <StoreContext+0x12>
+    APP_LOG(TS_OFF, VLEVEL_M, "NVM DATA STORE FAILED\r\n");
+ 8003a0a:	4b04      	ldr	r3, [pc, #16]	; (8003a1c <StoreContext+0x34>)
+ 8003a0c:	2200      	movs	r2, #0
+ 8003a0e:	4611      	mov	r1, r2
+ 8003a10:	2002      	movs	r0, #2
+ 8003a12:	f013 f891 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+}
+ 8003a16:	e7f0      	b.n	80039fa <StoreContext+0x12>
+ 8003a18:	08017d80 	.word	0x08017d80
+ 8003a1c:	08017d98 	.word	0x08017d98
+
+08003a20 <SendTxData>:
+{
+ 8003a20:	b570      	push	{r4, r5, r6, lr}
+ 8003a22:	b08e      	sub	sp, #56	; 0x38
+  uint8_t batteryLevel = GetBatteryLevel();
+ 8003a24:	f7ff f8b4 	bl	8002b90 <GetBatteryLevel>
+ 8003a28:	4604      	mov	r4, r0
+  uint16_t batteryLevelmV = SYS_GetBatteryLevel();
+ 8003a2a:	f7fe fa7f 	bl	8001f2c <SYS_GetBatteryLevel>
+ 8003a2e:	4605      	mov	r5, r0
+  APP_LOG(TS_ON, VLEVEL_H, "\r\n Flag: Heart-beat-timer = %u \r\n   upload_message_timer %u  \r\n sensor_data_ready = %u   \r\n",
+ 8003a30:	4b7a      	ldr	r3, [pc, #488]	; (8003c1c <SendTxData+0x1fc>)
+ 8003a32:	781b      	ldrb	r3, [r3, #0]
+ 8003a34:	4a7a      	ldr	r2, [pc, #488]	; (8003c20 <SendTxData+0x200>)
+ 8003a36:	7812      	ldrb	r2, [r2, #0]
+ 8003a38:	497a      	ldr	r1, [pc, #488]	; (8003c24 <SendTxData+0x204>)
+ 8003a3a:	7809      	ldrb	r1, [r1, #0]
+ 8003a3c:	9102      	str	r1, [sp, #8]
+ 8003a3e:	9201      	str	r2, [sp, #4]
+ 8003a40:	9300      	str	r3, [sp, #0]
+ 8003a42:	4b79      	ldr	r3, [pc, #484]	; (8003c28 <SendTxData+0x208>)
+ 8003a44:	2201      	movs	r2, #1
+ 8003a46:	2100      	movs	r1, #0
+ 8003a48:	2003      	movs	r0, #3
+ 8003a4a:	f013 f875 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+  APP_LOG(TS_ON, VLEVEL_L, "\r\nVDDA: %4d (mV)\r\n", batteryLevelmV);
+ 8003a4e:	9500      	str	r5, [sp, #0]
+ 8003a50:	4b76      	ldr	r3, [pc, #472]	; (8003c2c <SendTxData+0x20c>)
+ 8003a52:	2201      	movs	r2, #1
+ 8003a54:	2100      	movs	r1, #0
+ 8003a56:	4610      	mov	r0, r2
+ 8003a58:	f013 f86e 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+  if (LmHandlerIsBusy() == false)
+ 8003a5c:	f009 faf8 	bl	800d050 <LmHandlerIsBusy>
+ 8003a60:	b188      	cbz	r0, 8003a86 <SendTxData+0x66>
+  UTIL_TIMER_Time_t nextTxIn = 0;
+ 8003a62:	2500      	movs	r5, #0
+    UTIL_TIMER_Stop(&TxTimer);
+ 8003a64:	4c72      	ldr	r4, [pc, #456]	; (8003c30 <SendTxData+0x210>)
+ 8003a66:	4620      	mov	r0, r4
+ 8003a68:	f013 fbb8 	bl	80171dc <UTIL_TIMER_Stop>
+    UTIL_TIMER_SetPeriod(&TxTimer, MAX(nextTxIn, TxPeriodicity));
+ 8003a6c:	4b71      	ldr	r3, [pc, #452]	; (8003c34 <SendTxData+0x214>)
+ 8003a6e:	6819      	ldr	r1, [r3, #0]
+ 8003a70:	42a9      	cmp	r1, r5
+ 8003a72:	bf38      	it	cc
+ 8003a74:	4629      	movcc	r1, r5
+ 8003a76:	4620      	mov	r0, r4
+ 8003a78:	f013 fc50 	bl	801731c <UTIL_TIMER_SetPeriod>
+    UTIL_TIMER_Start(&TxTimer);
+ 8003a7c:	4620      	mov	r0, r4
+ 8003a7e:	f013 fc07 	bl	8017290 <UTIL_TIMER_Start>
+}
+ 8003a82:	b00e      	add	sp, #56	; 0x38
+ 8003a84:	bd70      	pop	{r4, r5, r6, pc}
+	  LED_ON;
+ 8003a86:	4e6c      	ldr	r6, [pc, #432]	; (8003c38 <SendTxData+0x218>)
+ 8003a88:	2201      	movs	r2, #1
+ 8003a8a:	2104      	movs	r1, #4
+ 8003a8c:	4630      	mov	r0, r6
+ 8003a8e:	f005 fe34 	bl	80096fa <HAL_GPIO_WritePin>
+	  UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP4), CFG_SEQ_Prio_0);
+ 8003a92:	2100      	movs	r1, #0
+ 8003a94:	f44f 7080 	mov.w	r0, #256	; 0x100
+ 8003a98:	f013 f978 	bl	8016d8c <UTIL_SEQ_SetTask>
+	  LED_OFF;
+ 8003a9c:	2200      	movs	r2, #0
+ 8003a9e:	2104      	movs	r1, #4
+ 8003aa0:	4630      	mov	r0, r6
+ 8003aa2:	f005 fe2a 	bl	80096fa <HAL_GPIO_WritePin>
+	  STS_R0_SENSOR_Read(&r0_data);
+ 8003aa6:	a804      	add	r0, sp, #16
+ 8003aa8:	f001 fa3c 	bl	8004f24 <STS_R0_SENSOR_Read>
+	  r0_data.battery_mV = batteryLevelmV;
+ 8003aac:	f8ad 5012 	strh.w	r5, [sp, #18]
+	  r0_data.battery_Pct = (uint8_t)(99*batteryLevel/254);
+ 8003ab0:	eb04 0444 	add.w	r4, r4, r4, lsl #1
+ 8003ab4:	eb04 1444 	add.w	r4, r4, r4, lsl #5
+ 8003ab8:	4b60      	ldr	r3, [pc, #384]	; (8003c3c <SendTxData+0x21c>)
+ 8003aba:	fb83 2304 	smull	r2, r3, r3, r4
+ 8003abe:	4423      	add	r3, r4
+ 8003ac0:	17e4      	asrs	r4, r4, #31
+ 8003ac2:	ebc4 14e3 	rsb	r4, r4, r3, asr #7
+ 8003ac6:	f88d 401c 	strb.w	r4, [sp, #28]
+    EnvSensors_Read(&sensor_data);
+ 8003aca:	a808      	add	r0, sp, #32
+ 8003acc:	f7ff f974 	bl	8002db8 <EnvSensors_Read>
+    AppData.Port = LORAWAN_USER_APP_PORT;
+ 8003ad0:	4b5b      	ldr	r3, [pc, #364]	; (8003c40 <SendTxData+0x220>)
+ 8003ad2:	220a      	movs	r2, #10
+ 8003ad4:	701a      	strb	r2, [r3, #0]
+    AppData.Buffer[i++] = AppLedStateOn;
+ 8003ad6:	685a      	ldr	r2, [r3, #4]
+ 8003ad8:	495a      	ldr	r1, [pc, #360]	; (8003c44 <SendTxData+0x224>)
+ 8003ada:	7809      	ldrb	r1, [r1, #0]
+ 8003adc:	7011      	strb	r1, [r2, #0]
+    AppData.Buffer[i++] = (uint8_t)(0xFF & sts_mtmcode1); //mtmcode1;		//#02
+ 8003ade:	685a      	ldr	r2, [r3, #4]
+ 8003ae0:	2100      	movs	r1, #0
+ 8003ae2:	7051      	strb	r1, [r2, #1]
+    AppData.Buffer[i++] = (uint8_t)(0xFF & sts_mtmcode2); //mtmcode2;		//#03
+ 8003ae4:	685a      	ldr	r2, [r3, #4]
+ 8003ae6:	2110      	movs	r1, #16
+ 8003ae8:	7091      	strb	r1, [r2, #2]
+    AppData.Buffer[i++] = (uint8_t)(0xFF & sts_hardware_ver); //hardware_Ver; //#04
+ 8003aea:	685a      	ldr	r2, [r3, #4]
+ 8003aec:	2101      	movs	r1, #1
+ 8003aee:	70d1      	strb	r1, [r2, #3]
+    AppData.Buffer[i++] = (uint8_t)(r0_data.battery_Pct);					//#05
+ 8003af0:	685a      	ldr	r2, [r3, #4]
+ 8003af2:	f89d 301c 	ldrb.w	r3, [sp, #28]
+ 8003af6:	7113      	strb	r3, [r2, #4]
+    if (heart_beat_timer)
+ 8003af8:	4a48      	ldr	r2, [pc, #288]	; (8003c1c <SendTxData+0x1fc>)
+ 8003afa:	7812      	ldrb	r2, [r2, #0]
+ 8003afc:	2a00      	cmp	r2, #0
+ 8003afe:	d152      	bne.n	8003ba6 <SendTxData+0x186>
+    } else if ((upload_message_timer)||(sensor_data_ready)) //sensor_data_ready for manual push button-1 trigger)
+ 8003b00:	4b47      	ldr	r3, [pc, #284]	; (8003c20 <SendTxData+0x200>)
+ 8003b02:	781b      	ldrb	r3, [r3, #0]
+ 8003b04:	b91b      	cbnz	r3, 8003b0e <SendTxData+0xee>
+ 8003b06:	4b47      	ldr	r3, [pc, #284]	; (8003c24 <SendTxData+0x204>)
+ 8003b08:	781b      	ldrb	r3, [r3, #0]
+ 8003b0a:	2b00      	cmp	r3, #0
+ 8003b0c:	d062      	beq.n	8003bd4 <SendTxData+0x1b4>
+    	sensor_data_ready =0;
+ 8003b0e:	2100      	movs	r1, #0
+ 8003b10:	4b44      	ldr	r3, [pc, #272]	; (8003c24 <SendTxData+0x204>)
+ 8003b12:	7019      	strb	r1, [r3, #0]
+    	upload_message_timer =0;
+ 8003b14:	4b42      	ldr	r3, [pc, #264]	; (8003c20 <SendTxData+0x200>)
+ 8003b16:	7019      	strb	r1, [r3, #0]
+    	AppData.Buffer[i++] = (uint8_t)(r0_data.distance_mm >>8)&0xff;					//#05
+ 8003b18:	f8bd 2010 	ldrh.w	r2, [sp, #16]
+ 8003b1c:	4b48      	ldr	r3, [pc, #288]	; (8003c40 <SendTxData+0x220>)
+ 8003b1e:	6858      	ldr	r0, [r3, #4]
+ 8003b20:	0a14      	lsrs	r4, r2, #8
+ 8003b22:	7144      	strb	r4, [r0, #5]
+    	AppData.Buffer[i++] = (uint8_t)(r0_data.distance_mm)&0xff;						//#06
+ 8003b24:	6858      	ldr	r0, [r3, #4]
+ 8003b26:	7182      	strb	r2, [r0, #6]
+    	AppData.Buffer[i++] = (uint8_t)(r0_data.distance1_mm >>8)&0xff;					//#07
+ 8003b28:	f8bd 0018 	ldrh.w	r0, [sp, #24]
+ 8003b2c:	685c      	ldr	r4, [r3, #4]
+ 8003b2e:	0a00      	lsrs	r0, r0, #8
+ 8003b30:	71e0      	strb	r0, [r4, #7]
+    	AppData.Buffer[i++] = (uint8_t)(r0_data.distance1_mm)&0xff;						//#08
+ 8003b32:	685b      	ldr	r3, [r3, #4]
+ 8003b34:	f89d 0018 	ldrb.w	r0, [sp, #24]
+ 8003b38:	7218      	strb	r0, [r3, #8]
+    	AppData.Buffer[i++] = (uint8_t)(r0_data.distance2_mm >>8)&0xff;					//#09
+ 8003b3a:	f8bd 001a 	ldrh.w	r0, [sp, #26]
+ 8003b3e:	0a00      	lsrs	r0, r0, #8
+ 8003b40:	7258      	strb	r0, [r3, #9]
+    	AppData.Buffer[i++] = (uint8_t)(r0_data.distance2_mm)&0xff;						//#10
+ 8003b42:	f89d 001a 	ldrb.w	r0, [sp, #26]
+ 8003b46:	7298      	strb	r0, [r3, #10]
+    	AppData.Buffer[i++] = (uint8_t)(sts_soap_level_state)&0xff;							//#11
+ 8003b48:	483f      	ldr	r0, [pc, #252]	; (8003c48 <SendTxData+0x228>)
+ 8003b4a:	7800      	ldrb	r0, [r0, #0]
+ 8003b4c:	72d8      	strb	r0, [r3, #11]
+    	AppData.Buffer[i++] = (uint8_t)(r0_data.battery_mV >>8)&0xff;						//#12
+ 8003b4e:	f8bd 0012 	ldrh.w	r0, [sp, #18]
+ 8003b52:	0a04      	lsrs	r4, r0, #8
+ 8003b54:	731c      	strb	r4, [r3, #12]
+    	AppData.Buffer[i++] = (uint8_t)(r0_data.battery_mV)&0xff;							//#13
+ 8003b56:	7358      	strb	r0, [r3, #13]
+    	APP_LOG(TS_ON, VLEVEL_H, "\r\n------------ Heart-Beat ------------- \r\n ------------------\r\nDistance0 = %d mm, \r\nDistance1 = %d mm,\r\nDistance2 = %d mm, \r\nVBAT=%d\r\n",
+ 8003b58:	f8bd 3018 	ldrh.w	r3, [sp, #24]
+ 8003b5c:	f8bd 001a 	ldrh.w	r0, [sp, #26]
+ 8003b60:	f89d 401c 	ldrb.w	r4, [sp, #28]
+ 8003b64:	9403      	str	r4, [sp, #12]
+ 8003b66:	9002      	str	r0, [sp, #8]
+ 8003b68:	9301      	str	r3, [sp, #4]
+ 8003b6a:	9200      	str	r2, [sp, #0]
+ 8003b6c:	4b37      	ldr	r3, [pc, #220]	; (8003c4c <SendTxData+0x22c>)
+ 8003b6e:	2201      	movs	r2, #1
+ 8003b70:	2003      	movs	r0, #3
+ 8003b72:	f012 ffe1 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+    	AppData.Buffer[i++] = (uint8_t)(r0_data.battery_mV)&0xff;							//#13
+ 8003b76:	220e      	movs	r2, #14
+    AppData.BufferSize = (sts_service_mask >1?0:i);
+ 8003b78:	4b35      	ldr	r3, [pc, #212]	; (8003c50 <SendTxData+0x230>)
+ 8003b7a:	781b      	ldrb	r3, [r3, #0]
+ 8003b7c:	b2db      	uxtb	r3, r3
+ 8003b7e:	2b01      	cmp	r3, #1
+ 8003b80:	d900      	bls.n	8003b84 <SendTxData+0x164>
+ 8003b82:	2200      	movs	r2, #0
+ 8003b84:	4b2e      	ldr	r3, [pc, #184]	; (8003c40 <SendTxData+0x220>)
+ 8003b86:	705a      	strb	r2, [r3, #1]
+    if ((JoinLedTimer.IsRunning) && (LmHandlerJoinStatus() == LORAMAC_HANDLER_SET))
+ 8003b88:	4b32      	ldr	r3, [pc, #200]	; (8003c54 <SendTxData+0x234>)
+ 8003b8a:	7a5b      	ldrb	r3, [r3, #9]
+ 8003b8c:	bb23      	cbnz	r3, 8003bd8 <SendTxData+0x1b8>
+    status = LmHandlerSend(&AppData, LmHandlerParams.IsTxConfirmed, false);
+ 8003b8e:	2200      	movs	r2, #0
+ 8003b90:	4b31      	ldr	r3, [pc, #196]	; (8003c58 <SendTxData+0x238>)
+ 8003b92:	78d9      	ldrb	r1, [r3, #3]
+ 8003b94:	482a      	ldr	r0, [pc, #168]	; (8003c40 <SendTxData+0x220>)
+ 8003b96:	f009 fa79 	bl	800d08c <LmHandlerSend>
+    if (LORAMAC_HANDLER_SUCCESS == status)
+ 8003b9a:	b328      	cbz	r0, 8003be8 <SendTxData+0x1c8>
+    else if (LORAMAC_HANDLER_DUTYCYCLE_RESTRICTED == status)
+ 8003b9c:	f110 0f06 	cmn.w	r0, #6
+ 8003ba0:	d02a      	beq.n	8003bf8 <SendTxData+0x1d8>
+  UTIL_TIMER_Time_t nextTxIn = 0;
+ 8003ba2:	2500      	movs	r5, #0
+ 8003ba4:	e75e      	b.n	8003a64 <SendTxData+0x44>
+		heart_beat_timer = 0;
+ 8003ba6:	2100      	movs	r1, #0
+ 8003ba8:	4a1c      	ldr	r2, [pc, #112]	; (8003c1c <SendTxData+0x1fc>)
+ 8003baa:	7011      	strb	r1, [r2, #0]
+		AppData.Port = LORAWAN_USER_HTBT_PORT; //LORAWAN_USER_APP_PORT+1;
+ 8003bac:	4a24      	ldr	r2, [pc, #144]	; (8003c40 <SendTxData+0x220>)
+ 8003bae:	200b      	movs	r0, #11
+ 8003bb0:	7010      	strb	r0, [r2, #0]
+		APP_LOG(TS_ON, VLEVEL_H, "\r\n------------ Heart-Beat ------------- \r\n ------------------\r\nDistance0 = %d mm, \r\nDistance1 = %d mm,\r\nDistance2 = %d mm, \r\nVBAT=%d\r\n",
+ 8003bb2:	f8bd 2010 	ldrh.w	r2, [sp, #16]
+ 8003bb6:	f8bd 0018 	ldrh.w	r0, [sp, #24]
+ 8003bba:	f8bd 401a 	ldrh.w	r4, [sp, #26]
+ 8003bbe:	9303      	str	r3, [sp, #12]
+ 8003bc0:	9402      	str	r4, [sp, #8]
+ 8003bc2:	9001      	str	r0, [sp, #4]
+ 8003bc4:	9200      	str	r2, [sp, #0]
+ 8003bc6:	4b21      	ldr	r3, [pc, #132]	; (8003c4c <SendTxData+0x22c>)
+ 8003bc8:	2201      	movs	r2, #1
+ 8003bca:	2003      	movs	r0, #3
+ 8003bcc:	f012 ffb4 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+    AppData.Buffer[i++] = (uint8_t)(r0_data.battery_Pct);					//#05
+ 8003bd0:	2205      	movs	r2, #5
+ 8003bd2:	e7d1      	b.n	8003b78 <SendTxData+0x158>
+ 8003bd4:	2205      	movs	r2, #5
+ 8003bd6:	e7cf      	b.n	8003b78 <SendTxData+0x158>
+    if ((JoinLedTimer.IsRunning) && (LmHandlerJoinStatus() == LORAMAC_HANDLER_SET))
+ 8003bd8:	f009 f954 	bl	800ce84 <LmHandlerJoinStatus>
+ 8003bdc:	2801      	cmp	r0, #1
+ 8003bde:	d1d6      	bne.n	8003b8e <SendTxData+0x16e>
+      UTIL_TIMER_Stop(&JoinLedTimer);
+ 8003be0:	481c      	ldr	r0, [pc, #112]	; (8003c54 <SendTxData+0x234>)
+ 8003be2:	f013 fafb 	bl	80171dc <UTIL_TIMER_Stop>
+ 8003be6:	e7d2      	b.n	8003b8e <SendTxData+0x16e>
+      APP_LOG(TS_ON, VLEVEL_M, "SEND REQUEST\r\n");
+ 8003be8:	4b1c      	ldr	r3, [pc, #112]	; (8003c5c <SendTxData+0x23c>)
+ 8003bea:	2201      	movs	r2, #1
+ 8003bec:	2100      	movs	r1, #0
+ 8003bee:	2002      	movs	r0, #2
+ 8003bf0:	f012 ffa2 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+  UTIL_TIMER_Time_t nextTxIn = 0;
+ 8003bf4:	2500      	movs	r5, #0
+ 8003bf6:	e735      	b.n	8003a64 <SendTxData+0x44>
+      nextTxIn = LmHandlerGetDutyCycleWaitTime();
+ 8003bf8:	f009 f93e 	bl	800ce78 <LmHandlerGetDutyCycleWaitTime>
+      if (nextTxIn > 0)
+ 8003bfc:	4605      	mov	r5, r0
+ 8003bfe:	2800      	cmp	r0, #0
+ 8003c00:	f43f af30 	beq.w	8003a64 <SendTxData+0x44>
+        APP_LOG(TS_ON, VLEVEL_L, "Next Tx in  : ~%d second(s)\r\n", (nextTxIn / 1000));
+ 8003c04:	4b16      	ldr	r3, [pc, #88]	; (8003c60 <SendTxData+0x240>)
+ 8003c06:	fba3 2300 	umull	r2, r3, r3, r0
+ 8003c0a:	099b      	lsrs	r3, r3, #6
+ 8003c0c:	9300      	str	r3, [sp, #0]
+ 8003c0e:	4b15      	ldr	r3, [pc, #84]	; (8003c64 <SendTxData+0x244>)
+ 8003c10:	2201      	movs	r2, #1
+ 8003c12:	2100      	movs	r1, #0
+ 8003c14:	4610      	mov	r0, r2
+ 8003c16:	f012 ff8f 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+ 8003c1a:	e723      	b.n	8003a64 <SendTxData+0x44>
+ 8003c1c:	20000dd0 	.word	0x20000dd0
+ 8003c20:	20000e6d 	.word	0x20000e6d
+ 8003c24:	20000e54 	.word	0x20000e54
+ 8003c28:	08017db0 	.word	0x08017db0
+ 8003c2c:	08017e0c 	.word	0x08017e0c
+ 8003c30:	20000da0 	.word	0x20000da0
+ 8003c34:	20000074 	.word	0x20000074
+ 8003c38:	48000400 	.word	0x48000400
+ 8003c3c:	81020409 	.word	0x81020409
+ 8003c40:	20000004 	.word	0x20000004
+ 8003c44:	20000d3a 	.word	0x20000d3a
+ 8003c48:	20000c45 	.word	0x20000c45
+ 8003c4c:	08017e20 	.word	0x08017e20
+ 8003c50:	20000c44 	.word	0x20000c44
+ 8003c54:	20000d3c 	.word	0x20000d3c
+ 8003c58:	2000005c 	.word	0x2000005c
+ 8003c5c:	08017ea8 	.word	0x08017ea8
+ 8003c60:	10624dd3 	.word	0x10624dd3
+ 8003c64:	08017eb8 	.word	0x08017eb8
+
+08003c68 <STS_YUNHORN_RFAC_HANDLE_PROCESS>:
+	if (sts_service_mask == STS_SERVICE_MASK_L0)
+		STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, 5, "PVXXX");
+}
+
+static void STS_YUNHORN_RFAC_HANDLE_PROCESS(void)
+{
+ 8003c68:	b508      	push	{r3, lr}
+
+	STS_YunhornAuthenticationCode_Process();
+ 8003c6a:	f7ff fb7b 	bl	8003364 <STS_YunhornAuthenticationCode_Process>
+
+}
+ 8003c6e:	bd08      	pop	{r3, pc}
+
+08003c70 <HAL_GPIO_EXTI_Callback>:
+{
+ 8003c70:	b530      	push	{r4, r5, lr}
+ 8003c72:	b083      	sub	sp, #12
+  switch (GPIO_Pin)
+ 8003c74:	2802      	cmp	r0, #2
+ 8003c76:	d03b      	beq.n	8003cf0 <HAL_GPIO_EXTI_Callback+0x80>
+ 8003c78:	2820      	cmp	r0, #32
+ 8003c7a:	d03e      	beq.n	8003cfa <HAL_GPIO_EXTI_Callback+0x8a>
+ 8003c7c:	2801      	cmp	r0, #1
+ 8003c7e:	d001      	beq.n	8003c84 <HAL_GPIO_EXTI_Callback+0x14>
+}
+ 8003c80:	b003      	add	sp, #12
+ 8003c82:	bd30      	pop	{r4, r5, pc}
+    	sensor_data_ready =1;
+ 8003c84:	2501      	movs	r5, #1
+ 8003c86:	4b1f      	ldr	r3, [pc, #124]	; (8003d04 <HAL_GPIO_EXTI_Callback+0x94>)
+ 8003c88:	701d      	strb	r5, [r3, #0]
+    	uint8_t pinstate = HAL_GPIO_ReadPin(BUT1_GPIO_Port,BUT1_Pin);
+ 8003c8a:	4629      	mov	r1, r5
+ 8003c8c:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8003c90:	f005 fd2c 	bl	80096ec <HAL_GPIO_ReadPin>
+ 8003c94:	4604      	mov	r4, r0
+    	APP_LOG(TS_OFF, VLEVEL_L, "##################################### BUTTON-1 DETECTED:  %2d \r\n", pinstate);
+ 8003c96:	9000      	str	r0, [sp, #0]
+ 8003c98:	4b1b      	ldr	r3, [pc, #108]	; (8003d08 <HAL_GPIO_EXTI_Callback+0x98>)
+ 8003c9a:	2200      	movs	r2, #0
+ 8003c9c:	4611      	mov	r1, r2
+ 8003c9e:	4628      	mov	r0, r5
+ 8003ca0:	f012 ff4a 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+    	if (pinstate == 1)
+ 8003ca4:	42ac      	cmp	r4, r5
+ 8003ca6:	d01e      	beq.n	8003ce6 <HAL_GPIO_EXTI_Callback+0x76>
+    		LED_ON;
+ 8003ca8:	4c18      	ldr	r4, [pc, #96]	; (8003d0c <HAL_GPIO_EXTI_Callback+0x9c>)
+ 8003caa:	2201      	movs	r2, #1
+ 8003cac:	2104      	movs	r1, #4
+ 8003cae:	4620      	mov	r0, r4
+ 8003cb0:	f005 fd23 	bl	80096fa <HAL_GPIO_WritePin>
+    		HAL_Delay(50);
+ 8003cb4:	2032      	movs	r0, #50	; 0x32
+ 8003cb6:	f7fe fffb 	bl	8002cb0 <HAL_Delay>
+    		LED_OFF;
+ 8003cba:	2200      	movs	r2, #0
+ 8003cbc:	2104      	movs	r1, #4
+ 8003cbe:	4620      	mov	r0, r4
+ 8003cc0:	f005 fd1b 	bl	80096fa <HAL_GPIO_WritePin>
+    		HAL_Delay(20);
+ 8003cc4:	2014      	movs	r0, #20
+ 8003cc6:	f7fe fff3 	bl	8002cb0 <HAL_Delay>
+    		LED_ON;
+ 8003cca:	2201      	movs	r2, #1
+ 8003ccc:	2104      	movs	r1, #4
+ 8003cce:	4620      	mov	r0, r4
+ 8003cd0:	f005 fd13 	bl	80096fa <HAL_GPIO_WritePin>
+    		HAL_Delay(50);
+ 8003cd4:	2032      	movs	r0, #50	; 0x32
+ 8003cd6:	f7fe ffeb 	bl	8002cb0 <HAL_Delay>
+    		LED_OFF;
+ 8003cda:	2200      	movs	r2, #0
+ 8003cdc:	2104      	movs	r1, #4
+ 8003cde:	4620      	mov	r0, r4
+ 8003ce0:	f005 fd0b 	bl	80096fa <HAL_GPIO_WritePin>
+ 8003ce4:	e7cc      	b.n	8003c80 <HAL_GPIO_EXTI_Callback+0x10>
+        UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0);
+ 8003ce6:	2100      	movs	r1, #0
+ 8003ce8:	2002      	movs	r0, #2
+ 8003cea:	f013 f84f 	bl	8016d8c <UTIL_SEQ_SetTask>
+ 8003cee:	e7c7      	b.n	8003c80 <HAL_GPIO_EXTI_Callback+0x10>
+      UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaStopJoinEvent), CFG_SEQ_Prio_0);
+ 8003cf0:	2100      	movs	r1, #0
+ 8003cf2:	2008      	movs	r0, #8
+ 8003cf4:	f013 f84a 	bl	8016d8c <UTIL_SEQ_SetTask>
+      break;
+ 8003cf8:	e7c2      	b.n	8003c80 <HAL_GPIO_EXTI_Callback+0x10>
+    	 ToF_EventDetected = 1;
+ 8003cfa:	4b05      	ldr	r3, [pc, #20]	; (8003d10 <HAL_GPIO_EXTI_Callback+0xa0>)
+ 8003cfc:	2201      	movs	r2, #1
+ 8003cfe:	701a      	strb	r2, [r3, #0]
+}
+ 8003d00:	e7be      	b.n	8003c80 <HAL_GPIO_EXTI_Callback+0x10>
+ 8003d02:	bf00      	nop
+ 8003d04:	20000e54 	.word	0x20000e54
+ 8003d08:	08017ed8 	.word	0x08017ed8
+ 8003d0c:	48000400 	.word	0x48000400
+ 8003d10:	20000ed4 	.word	0x20000ed4
+
+08003d14 <STS_SENSOR_Upload_Message>:
+
+void STS_SENSOR_Upload_Message(uint8_t appDataPort, uint8_t appBufferSize, char *appDataBuffer)
+{
+ 8003d14:	b570      	push	{r4, r5, r6, lr}
+ 8003d16:	b082      	sub	sp, #8
+ 8003d18:	4606      	mov	r6, r0
+ 8003d1a:	460c      	mov	r4, r1
+ 8003d1c:	4615      	mov	r5, r2
+	LmHandlerErrorStatus_t status = LORAMAC_HANDLER_ERROR;
+	UTIL_TIMER_Time_t nextTxIn = 0;
+
+	if (LmHandlerIsBusy() == false)
+ 8003d1e:	f009 f997 	bl	800d050 <LmHandlerIsBusy>
+ 8003d22:	2800      	cmp	r0, #0
+ 8003d24:	d144      	bne.n	8003db0 <STS_SENSOR_Upload_Message+0x9c>
+	{
+
+		for (uint8_t i=0;i<appBufferSize; i++) {
+ 8003d26:	2300      	movs	r3, #0
+ 8003d28:	e007      	b.n	8003d3a <STS_SENSOR_Upload_Message+0x26>
+			AppData.Buffer[i] = appDataBuffer[i];
+ 8003d2a:	492a      	ldr	r1, [pc, #168]	; (8003dd4 <STS_SENSOR_Upload_Message+0xc0>)
+ 8003d2c:	6849      	ldr	r1, [r1, #4]
+ 8003d2e:	f815 c003 	ldrb.w	ip, [r5, r3]
+ 8003d32:	f801 c003 	strb.w	ip, [r1, r3]
+		for (uint8_t i=0;i<appBufferSize; i++) {
+ 8003d36:	3301      	adds	r3, #1
+ 8003d38:	b2db      	uxtb	r3, r3
+ 8003d3a:	42a3      	cmp	r3, r4
+ 8003d3c:	d3f5      	bcc.n	8003d2a <STS_SENSOR_Upload_Message+0x16>
+		}
+
+		AppData.Port = appDataPort;
+ 8003d3e:	4b25      	ldr	r3, [pc, #148]	; (8003dd4 <STS_SENSOR_Upload_Message+0xc0>)
+ 8003d40:	701e      	strb	r6, [r3, #0]
+		AppData.BufferSize = (sts_service_mask >1?0:appBufferSize);
+ 8003d42:	4b25      	ldr	r3, [pc, #148]	; (8003dd8 <STS_SENSOR_Upload_Message+0xc4>)
+ 8003d44:	781b      	ldrb	r3, [r3, #0]
+ 8003d46:	b2db      	uxtb	r3, r3
+ 8003d48:	2b01      	cmp	r3, #1
+ 8003d4a:	d900      	bls.n	8003d4e <STS_SENSOR_Upload_Message+0x3a>
+ 8003d4c:	2400      	movs	r4, #0
+ 8003d4e:	4b21      	ldr	r3, [pc, #132]	; (8003dd4 <STS_SENSOR_Upload_Message+0xc0>)
+ 8003d50:	705c      	strb	r4, [r3, #1]
+
+	    if ((JoinLedTimer.IsRunning) && (LmHandlerJoinStatus() == LORAMAC_HANDLER_SET))
+ 8003d52:	4b22      	ldr	r3, [pc, #136]	; (8003ddc <STS_SENSOR_Upload_Message+0xc8>)
+ 8003d54:	7a5b      	ldrb	r3, [r3, #9]
+ 8003d56:	b95b      	cbnz	r3, 8003d70 <STS_SENSOR_Upload_Message+0x5c>
+#if	defined(STM32WL55xx)
+	      HAL_GPIO_WritePin(LED3_GPIO_Port, LED3_Pin, GPIO_PIN_RESET); /* LED_RED */
+#endif
+	    }
+
+		status = LmHandlerSend(&AppData, LmHandlerParams.IsTxConfirmed, false);
+ 8003d58:	2200      	movs	r2, #0
+ 8003d5a:	4b21      	ldr	r3, [pc, #132]	; (8003de0 <STS_SENSOR_Upload_Message+0xcc>)
+ 8003d5c:	78d9      	ldrb	r1, [r3, #3]
+ 8003d5e:	481d      	ldr	r0, [pc, #116]	; (8003dd4 <STS_SENSOR_Upload_Message+0xc0>)
+ 8003d60:	f009 f994 	bl	800d08c <LmHandlerSend>
+		if (LORAMAC_HANDLER_SUCCESS == status)
+ 8003d64:	b160      	cbz	r0, 8003d80 <STS_SENSOR_Upload_Message+0x6c>
+		{
+			APP_LOG(TS_ON, VLEVEL_L, "SEND REQUEST\r\n");
+		}
+		else if (LORAMAC_HANDLER_DUTYCYCLE_RESTRICTED == status)
+ 8003d66:	f110 0f06 	cmn.w	r0, #6
+ 8003d6a:	d011      	beq.n	8003d90 <STS_SENSOR_Upload_Message+0x7c>
+	UTIL_TIMER_Time_t nextTxIn = 0;
+ 8003d6c:	2500      	movs	r5, #0
+ 8003d6e:	e020      	b.n	8003db2 <STS_SENSOR_Upload_Message+0x9e>
+	    if ((JoinLedTimer.IsRunning) && (LmHandlerJoinStatus() == LORAMAC_HANDLER_SET))
+ 8003d70:	f009 f888 	bl	800ce84 <LmHandlerJoinStatus>
+ 8003d74:	2801      	cmp	r0, #1
+ 8003d76:	d1ef      	bne.n	8003d58 <STS_SENSOR_Upload_Message+0x44>
+	      UTIL_TIMER_Stop(&JoinLedTimer);
+ 8003d78:	4818      	ldr	r0, [pc, #96]	; (8003ddc <STS_SENSOR_Upload_Message+0xc8>)
+ 8003d7a:	f013 fa2f 	bl	80171dc <UTIL_TIMER_Stop>
+ 8003d7e:	e7eb      	b.n	8003d58 <STS_SENSOR_Upload_Message+0x44>
+			APP_LOG(TS_ON, VLEVEL_L, "SEND REQUEST\r\n");
+ 8003d80:	4b18      	ldr	r3, [pc, #96]	; (8003de4 <STS_SENSOR_Upload_Message+0xd0>)
+ 8003d82:	2201      	movs	r2, #1
+ 8003d84:	2100      	movs	r1, #0
+ 8003d86:	4610      	mov	r0, r2
+ 8003d88:	f012 fed6 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+	UTIL_TIMER_Time_t nextTxIn = 0;
+ 8003d8c:	2500      	movs	r5, #0
+ 8003d8e:	e010      	b.n	8003db2 <STS_SENSOR_Upload_Message+0x9e>
+		{
+			nextTxIn = LmHandlerGetDutyCycleWaitTime();
+ 8003d90:	f009 f872 	bl	800ce78 <LmHandlerGetDutyCycleWaitTime>
+			if (nextTxIn > 0)
+ 8003d94:	4605      	mov	r5, r0
+ 8003d96:	b160      	cbz	r0, 8003db2 <STS_SENSOR_Upload_Message+0x9e>
+			{
+				APP_LOG(TS_ON, VLEVEL_L, "Next Tx in  : ~%d second(s)\r\n", (nextTxIn / 1000));
+ 8003d98:	4b13      	ldr	r3, [pc, #76]	; (8003de8 <STS_SENSOR_Upload_Message+0xd4>)
+ 8003d9a:	fba3 2300 	umull	r2, r3, r3, r0
+ 8003d9e:	099b      	lsrs	r3, r3, #6
+ 8003da0:	9300      	str	r3, [sp, #0]
+ 8003da2:	4b12      	ldr	r3, [pc, #72]	; (8003dec <STS_SENSOR_Upload_Message+0xd8>)
+ 8003da4:	2201      	movs	r2, #1
+ 8003da6:	2100      	movs	r1, #0
+ 8003da8:	4610      	mov	r0, r2
+ 8003daa:	f012 fec5 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+ 8003dae:	e000      	b.n	8003db2 <STS_SENSOR_Upload_Message+0x9e>
+	UTIL_TIMER_Time_t nextTxIn = 0;
+ 8003db0:	2500      	movs	r5, #0
+
+	}
+
+	if (EventType == TX_ON_TIMER)
+	{
+	    UTIL_TIMER_Stop(&TxTimer);
+ 8003db2:	4c0f      	ldr	r4, [pc, #60]	; (8003df0 <STS_SENSOR_Upload_Message+0xdc>)
+ 8003db4:	4620      	mov	r0, r4
+ 8003db6:	f013 fa11 	bl	80171dc <UTIL_TIMER_Stop>
+	    UTIL_TIMER_SetPeriod(&TxTimer, MAX(nextTxIn, TxPeriodicity));
+ 8003dba:	4b0e      	ldr	r3, [pc, #56]	; (8003df4 <STS_SENSOR_Upload_Message+0xe0>)
+ 8003dbc:	6819      	ldr	r1, [r3, #0]
+ 8003dbe:	42a9      	cmp	r1, r5
+ 8003dc0:	bf38      	it	cc
+ 8003dc2:	4629      	movcc	r1, r5
+ 8003dc4:	4620      	mov	r0, r4
+ 8003dc6:	f013 faa9 	bl	801731c <UTIL_TIMER_SetPeriod>
+	    UTIL_TIMER_Start(&TxTimer);
+ 8003dca:	4620      	mov	r0, r4
+ 8003dcc:	f013 fa60 	bl	8017290 <UTIL_TIMER_Start>
+	}
+}
+ 8003dd0:	b002      	add	sp, #8
+ 8003dd2:	bd70      	pop	{r4, r5, r6, pc}
+ 8003dd4:	20000004 	.word	0x20000004
+ 8003dd8:	20000c44 	.word	0x20000c44
+ 8003ddc:	20000d3c 	.word	0x20000d3c
+ 8003de0:	2000005c 	.word	0x2000005c
+ 8003de4:	08017ea8 	.word	0x08017ea8
+ 8003de8:	10624dd3 	.word	0x10624dd3
+ 8003dec:	08017eb8 	.word	0x08017eb8
+ 8003df0:	20000da0 	.word	0x20000da0
+ 8003df4:	20000074 	.word	0x20000074
+
+08003df8 <STS_SENSOR_Upload_Config_Invalid_Message>:
+{
+ 8003df8:	b508      	push	{r3, lr}
+	if (sts_service_mask == STS_SERVICE_MASK_L0)
+ 8003dfa:	4b05      	ldr	r3, [pc, #20]	; (8003e10 <STS_SENSOR_Upload_Config_Invalid_Message+0x18>)
+ 8003dfc:	781b      	ldrb	r3, [r3, #0]
+ 8003dfe:	b103      	cbz	r3, 8003e02 <STS_SENSOR_Upload_Config_Invalid_Message+0xa>
+}
+ 8003e00:	bd08      	pop	{r3, pc}
+		STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, 5, "PVXXX");
+ 8003e02:	4a04      	ldr	r2, [pc, #16]	; (8003e14 <STS_SENSOR_Upload_Config_Invalid_Message+0x1c>)
+ 8003e04:	2105      	movs	r1, #5
+ 8003e06:	2001      	movs	r0, #1
+ 8003e08:	f7ff ff84 	bl	8003d14 <STS_SENSOR_Upload_Message>
+}
+ 8003e0c:	e7f8      	b.n	8003e00 <STS_SENSOR_Upload_Config_Invalid_Message+0x8>
+ 8003e0e:	bf00      	nop
+ 8003e10:	20000c44 	.word	0x20000c44
+ 8003e14:	08017f1c 	.word	0x08017f1c
+
+08003e18 <OnStoreSTSCFGContextRequest>:
+
+
+void OnStoreSTSCFGContextRequest(void)
+{
+ 8003e18:	b510      	push	{r4, lr}
+ 8003e1a:	b090      	sub	sp, #64	; 0x40
+  /* USER CODE BEGIN OnStoreContextRequest_1 */
+	uint8_t i=0, j=0, nvm_store_value[YUNHORN_STS_MAX_NVM_CFG_SIZE]="";
+ 8003e1c:	2400      	movs	r4, #0
+ 8003e1e:	9400      	str	r4, [sp, #0]
+ 8003e20:	223c      	movs	r2, #60	; 0x3c
+ 8003e22:	4621      	mov	r1, r4
+ 8003e24:	a801      	add	r0, sp, #4
+ 8003e26:	f013 fc4b 	bl	80176c0 <memset>
+
+#if (defined(YUNHORN_STS_O6_ENABLED) || defined(YUNHORN_STS_R0_ENABLED))
+	sts_cfg_nvm.length   = STS_NVM_CFG_SIZE;
+ 8003e2a:	4b3a      	ldr	r3, [pc, #232]	; (8003f14 <OnStoreSTSCFGContextRequest+0xfc>)
+ 8003e2c:	2220      	movs	r2, #32
+ 8003e2e:	72da      	strb	r2, [r3, #11]
+	nvm_store_value[i++] = sts_cfg_nvm.mtmcode1;
+ 8003e30:	7819      	ldrb	r1, [r3, #0]
+ 8003e32:	f88d 1000 	strb.w	r1, [sp]
+	nvm_store_value[i++] = sts_cfg_nvm.mtmcode2;
+ 8003e36:	7859      	ldrb	r1, [r3, #1]
+ 8003e38:	f88d 1001 	strb.w	r1, [sp, #1]
+	nvm_store_value[i++] = sts_cfg_nvm.version;
+ 8003e3c:	7899      	ldrb	r1, [r3, #2]
+ 8003e3e:	f88d 1002 	strb.w	r1, [sp, #2]
+	nvm_store_value[i++] = sts_cfg_nvm.hardware_ver;
+ 8003e42:	78d9      	ldrb	r1, [r3, #3]
+ 8003e44:	f88d 1003 	strb.w	r1, [sp, #3]
+	nvm_store_value[i++] = sts_cfg_nvm.periodicity;
+ 8003e48:	7919      	ldrb	r1, [r3, #4]
+ 8003e4a:	f88d 1004 	strb.w	r1, [sp, #4]
+	nvm_store_value[i++] = sts_cfg_nvm.unit;
+ 8003e4e:	7959      	ldrb	r1, [r3, #5]
+ 8003e50:	f88d 1005 	strb.w	r1, [sp, #5]
+	nvm_store_value[i++] = sts_cfg_nvm.sampling;
+ 8003e54:	7999      	ldrb	r1, [r3, #6]
+ 8003e56:	f88d 1006 	strb.w	r1, [sp, #6]
+	nvm_store_value[i++] = sts_cfg_nvm.s_unit;
+ 8003e5a:	79d9      	ldrb	r1, [r3, #7]
+ 8003e5c:	f88d 1007 	strb.w	r1, [sp, #7]
+	nvm_store_value[i++] = sts_cfg_nvm.work_mode;
+ 8003e60:	7a19      	ldrb	r1, [r3, #8]
+ 8003e62:	f88d 1008 	strb.w	r1, [sp, #8]
+	nvm_store_value[i++] = sts_cfg_nvm.sts_service_mask;
+ 8003e66:	7a59      	ldrb	r1, [r3, #9]
+ 8003e68:	f88d 1009 	strb.w	r1, [sp, #9]
+	nvm_store_value[i++] = sts_cfg_nvm.reseve01;
+ 8003e6c:	7a9b      	ldrb	r3, [r3, #10]
+ 8003e6e:	f88d 300a 	strb.w	r3, [sp, #10]
+	nvm_store_value[i++] = (uint8_t) STS_NVM_CFG_SIZE; //sts_cfg_nvm.length;
+ 8003e72:	f88d 200b 	strb.w	r2, [sp, #11]
+
+	for (j = 0; j < STS_CFG_PCFG_SIZE; j++) {
+ 8003e76:	4621      	mov	r1, r4
+	nvm_store_value[i++] = (uint8_t) STS_NVM_CFG_SIZE; //sts_cfg_nvm.length;
+ 8003e78:	230c      	movs	r3, #12
+	for (j = 0; j < STS_CFG_PCFG_SIZE; j++) {
+ 8003e7a:	e00a      	b.n	8003e92 <OnStoreSTSCFGContextRequest+0x7a>
+		nvm_store_value[i++] = (sts_cfg_nvm.p[j]);
+ 8003e7c:	1c58      	adds	r0, r3, #1
+ 8003e7e:	4a25      	ldr	r2, [pc, #148]	; (8003f14 <OnStoreSTSCFGContextRequest+0xfc>)
+ 8003e80:	440a      	add	r2, r1
+ 8003e82:	7b12      	ldrb	r2, [r2, #12]
+ 8003e84:	3340      	adds	r3, #64	; 0x40
+ 8003e86:	446b      	add	r3, sp
+ 8003e88:	f803 2c40 	strb.w	r2, [r3, #-64]
+	for (j = 0; j < STS_CFG_PCFG_SIZE; j++) {
+ 8003e8c:	3101      	adds	r1, #1
+ 8003e8e:	b2c9      	uxtb	r1, r1
+		nvm_store_value[i++] = (sts_cfg_nvm.p[j]);
+ 8003e90:	b2c3      	uxtb	r3, r0
+	for (j = 0; j < STS_CFG_PCFG_SIZE; j++) {
+ 8003e92:	291b      	cmp	r1, #27
+ 8003e94:	d9f2      	bls.n	8003e7c <OnStoreSTSCFGContextRequest+0x64>
+	}
+
+	nvm_store_value[i++] = sts_cfg_nvm.fall_detection_acc_threshold;
+ 8003e96:	1c59      	adds	r1, r3, #1
+ 8003e98:	4a1e      	ldr	r2, [pc, #120]	; (8003f14 <OnStoreSTSCFGContextRequest+0xfc>)
+ 8003e9a:	f892 4028 	ldrb.w	r4, [r2, #40]	; 0x28
+ 8003e9e:	f103 0040 	add.w	r0, r3, #64	; 0x40
+ 8003ea2:	4468      	add	r0, sp
+ 8003ea4:	f800 4c40 	strb.w	r4, [r0, #-64]
+	nvm_store_value[i++] = sts_cfg_nvm.fall_detection_depth_threshold;
+ 8003ea8:	1c98      	adds	r0, r3, #2
+ 8003eaa:	f892 4029 	ldrb.w	r4, [r2, #41]	; 0x29
+ 8003eae:	f10d 0c40 	add.w	ip, sp, #64	; 0x40
+ 8003eb2:	fa5c f181 	uxtab	r1, ip, r1
+ 8003eb6:	f801 4c40 	strb.w	r4, [r1, #-64]
+	nvm_store_value[i++] = sts_cfg_nvm.fall_detection_reserve;
+ 8003eba:	1cd9      	adds	r1, r3, #3
+ 8003ebc:	f892 402a 	ldrb.w	r4, [r2, #42]	; 0x2a
+ 8003ec0:	fa5c f080 	uxtab	r0, ip, r0
+ 8003ec4:	f800 4c40 	strb.w	r4, [r0, #-64]
+	nvm_store_value[i++] = sts_cfg_nvm.occupancy_overtime_threshold;
+ 8003ec8:	3304      	adds	r3, #4
+ 8003eca:	b2db      	uxtb	r3, r3
+ 8003ecc:	f892 002b 	ldrb.w	r0, [r2, #43]	; 0x2b
+ 8003ed0:	fa5c f281 	uxtab	r2, ip, r1
+ 8003ed4:	f802 0c40 	strb.w	r0, [r2, #-64]
+
+	for (j = 0; j < YUNHORN_STS_AC_CODE_SIZE; j++) {
+ 8003ed8:	2200      	movs	r2, #0
+ 8003eda:	e00b      	b.n	8003ef4 <OnStoreSTSCFGContextRequest+0xdc>
+		nvm_store_value[i++] = (sts_cfg_nvm.ac[j]);
+ 8003edc:	1c58      	adds	r0, r3, #1
+ 8003ede:	490d      	ldr	r1, [pc, #52]	; (8003f14 <OnStoreSTSCFGContextRequest+0xfc>)
+ 8003ee0:	4411      	add	r1, r2
+ 8003ee2:	f891 102c 	ldrb.w	r1, [r1, #44]	; 0x2c
+ 8003ee6:	3340      	adds	r3, #64	; 0x40
+ 8003ee8:	446b      	add	r3, sp
+ 8003eea:	f803 1c40 	strb.w	r1, [r3, #-64]
+	for (j = 0; j < YUNHORN_STS_AC_CODE_SIZE; j++) {
+ 8003eee:	3201      	adds	r2, #1
+ 8003ef0:	b2d2      	uxtb	r2, r2
+		nvm_store_value[i++] = (sts_cfg_nvm.ac[j]);
+ 8003ef2:	b2c3      	uxtb	r3, r0
+	for (j = 0; j < YUNHORN_STS_AC_CODE_SIZE; j++) {
+ 8003ef4:	2a13      	cmp	r2, #19
+ 8003ef6:	d9f1      	bls.n	8003edc <OnStoreSTSCFGContextRequest+0xc4>
+	}
+#endif
+  /* USER CODE END OnStoreContextRequest_1 */
+  /* store nvm in flash */
+
+  if (FLASH_IF_Erase(STS_CONFIG_NVM_BASE_ADDRESS, FLASH_PAGE_SIZE) == FLASH_IF_OK)
+ 8003ef8:	f44f 6100 	mov.w	r1, #2048	; 0x800
+ 8003efc:	4806      	ldr	r0, [pc, #24]	; (8003f18 <OnStoreSTSCFGContextRequest+0x100>)
+ 8003efe:	f7fe fa91 	bl	8002424 <FLASH_IF_Erase>
+ 8003f02:	b108      	cbz	r0, 8003f08 <OnStoreSTSCFGContextRequest+0xf0>
+
+  /* USER CODE BEGIN OnStoreContextRequest_Last */
+
+
+  /* USER CODE END OnStoreContextRequest_Last */
+}
+ 8003f04:	b010      	add	sp, #64	; 0x40
+ 8003f06:	bd10      	pop	{r4, pc}
+    FLASH_IF_Write(STS_CONFIG_NVM_BASE_ADDRESS, (const void *)nvm_store_value, YUNHORN_STS_MAX_NVM_CFG_SIZE);
+ 8003f08:	2240      	movs	r2, #64	; 0x40
+ 8003f0a:	4669      	mov	r1, sp
+ 8003f0c:	4802      	ldr	r0, [pc, #8]	; (8003f18 <OnStoreSTSCFGContextRequest+0x100>)
+ 8003f0e:	f7fe fa51 	bl	80023b4 <FLASH_IF_Write>
+}
+ 8003f12:	e7f7      	b.n	8003f04 <OnStoreSTSCFGContextRequest+0xec>
+ 8003f14:	20000078 	.word	0x20000078
+ 8003f18:	0803f800 	.word	0x0803f800
+
+08003f1c <OnRestoreSTSCFGContextRequest>:
+
+void OnRestoreSTSCFGContextRequest(uint8_t *cfg_in_nvm)
+{
+ 8003f1c:	b508      	push	{r3, lr}
+  /* USER CODE BEGIN OnRestoreSTSCFGContextRequest_1 */
+
+  /* USER CODE END OnRestoreSTSCFGContextRequest_1 */
+  UTIL_MEM_cpy_8(cfg_in_nvm, (void *)STS_CONFIG_NVM_BASE_ADDRESS, YUNHORN_STS_MAX_NVM_CFG_SIZE);
+ 8003f1e:	2240      	movs	r2, #64	; 0x40
+ 8003f20:	4901      	ldr	r1, [pc, #4]	; (8003f28 <OnRestoreSTSCFGContextRequest+0xc>)
+ 8003f22:	f012 ff1f 	bl	8016d64 <UTIL_MEM_cpy_8>
+  /* USER CODE BEGIN OnRestoreSTSCFGContextRequest_Last */
+
+  /* USER CODE END OnRestoreSTSCFGContextRequest_Last */
+}
+ 8003f26:	bd08      	pop	{r3, pc}
+ 8003f28:	0803f800 	.word	0x0803f800
+
+08003f2c <OnRestoreSTSCFGContextProcess>:
+
+  /* USER CODE END OnRestoreContextRequest_Last */
+}
+
+void OnRestoreSTSCFGContextProcess(void)
+{
+ 8003f2c:	b508      	push	{r3, lr}
+	uint32_t periodicity = (sts_cfg_nvm.periodicity);		//TxPeriodicty interval
+ 8003f2e:	4b2c      	ldr	r3, [pc, #176]	; (8003fe0 <OnRestoreSTSCFGContextProcess+0xb4>)
+ 8003f30:	7918      	ldrb	r0, [r3, #4]
+ 8003f32:	b2c0      	uxtb	r0, r0
+	if ((char)sts_cfg_nvm.unit =='M') {
+ 8003f34:	795b      	ldrb	r3, [r3, #5]
+ 8003f36:	b2db      	uxtb	r3, r3
+ 8003f38:	2b4d      	cmp	r3, #77	; 0x4d
+ 8003f3a:	d032      	beq.n	8003fa2 <OnRestoreSTSCFGContextProcess+0x76>
+		periodicity *= 60;
+	} else if ((char) sts_cfg_nvm.unit =='H') {
+ 8003f3c:	4b28      	ldr	r3, [pc, #160]	; (8003fe0 <OnRestoreSTSCFGContextProcess+0xb4>)
+ 8003f3e:	795b      	ldrb	r3, [r3, #5]
+ 8003f40:	b2db      	uxtb	r3, r3
+ 8003f42:	2b48      	cmp	r3, #72	; 0x48
+ 8003f44:	d031      	beq.n	8003faa <OnRestoreSTSCFGContextProcess+0x7e>
+		periodicity *= 3600;
+	} else if ((char) sts_cfg_nvm.unit =='S') {
+ 8003f46:	4b26      	ldr	r3, [pc, #152]	; (8003fe0 <OnRestoreSTSCFGContextProcess+0xb4>)
+ 8003f48:	795b      	ldrb	r3, [r3, #5]
+		periodicity *= 1;
+	}
+	periodicity = (periodicity > 10)? periodicity : 10;		// in seconds unit
+ 8003f4a:	280a      	cmp	r0, #10
+ 8003f4c:	bf38      	it	cc
+ 8003f4e:	200a      	movcc	r0, #10
+	TxPeriodicity= periodicity*1000;  // to ms
+ 8003f50:	f44f 737a 	mov.w	r3, #1000	; 0x3e8
+ 8003f54:	fb03 f000 	mul.w	r0, r3, r0
+ 8003f58:	4b22      	ldr	r3, [pc, #136]	; (8003fe4 <OnRestoreSTSCFGContextProcess+0xb8>)
+ 8003f5a:	6018      	str	r0, [r3, #0]
+	OnTxPeriodicityChanged(TxPeriodicity);				// in msec unit
+ 8003f5c:	f7ff fca4 	bl	80038a8 <OnTxPeriodicityChanged>
+
+	uint32_t samplingperiodicity = (sts_cfg_nvm.sampling);		//Heart-beat or Sampling interval
+ 8003f60:	4a1f      	ldr	r2, [pc, #124]	; (8003fe0 <OnRestoreSTSCFGContextProcess+0xb4>)
+ 8003f62:	7993      	ldrb	r3, [r2, #6]
+ 8003f64:	b2db      	uxtb	r3, r3
+	if ((char)sts_cfg_nvm.s_unit =='M') {
+ 8003f66:	79d2      	ldrb	r2, [r2, #7]
+ 8003f68:	b2d2      	uxtb	r2, r2
+ 8003f6a:	2a4d      	cmp	r2, #77	; 0x4d
+ 8003f6c:	d022      	beq.n	8003fb4 <OnRestoreSTSCFGContextProcess+0x88>
+		samplingperiodicity *= 60;
+	} else if ((char) sts_cfg_nvm.s_unit =='H') {
+ 8003f6e:	4a1c      	ldr	r2, [pc, #112]	; (8003fe0 <OnRestoreSTSCFGContextProcess+0xb4>)
+ 8003f70:	79d2      	ldrb	r2, [r2, #7]
+ 8003f72:	b2d2      	uxtb	r2, r2
+ 8003f74:	2a48      	cmp	r2, #72	; 0x48
+ 8003f76:	d021      	beq.n	8003fbc <OnRestoreSTSCFGContextProcess+0x90>
+		samplingperiodicity *= 3600;
+	} else if ((char) sts_cfg_nvm.s_unit =='S') {
+ 8003f78:	4a19      	ldr	r2, [pc, #100]	; (8003fe0 <OnRestoreSTSCFGContextProcess+0xb4>)
+ 8003f7a:	79d2      	ldrb	r2, [r2, #7]
+		samplingperiodicity *= 1;
+	}
+
+	//Heart-beat or Sampling interval
+	samplingperiodicity = (samplingperiodicity > 0)? samplingperiodicity : 1;		// in seconds unit
+ 8003f7c:	b903      	cbnz	r3, 8003f80 <OnRestoreSTSCFGContextProcess+0x54>
+ 8003f7e:	2301      	movs	r3, #1
+#ifdef	YUNHORN_STS_O6_ENABLED
+	OnYunhornSTSSamplingPeriodicityChanged(samplingperiodicity*1000);				// in m-sec unit
+#endif
+
+#ifdef YUNHORN_STS_R0_ENABLED
+	OnYunhornSTSHeartBeatPeriodicityChanged(samplingperiodicity*1000);
+ 8003f80:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
+ 8003f84:	fb03 f000 	mul.w	r0, r3, r0
+ 8003f88:	f7ff fcb2 	bl	80038f0 <OnYunhornSTSHeartBeatPeriodicityChanged>
+#endif
+
+	sts_work_mode	= sts_cfg_nvm.work_mode;
+ 8003f8c:	4a14      	ldr	r2, [pc, #80]	; (8003fe0 <OnRestoreSTSCFGContextProcess+0xb4>)
+ 8003f8e:	7a13      	ldrb	r3, [r2, #8]
+ 8003f90:	b2db      	uxtb	r3, r3
+ 8003f92:	4915      	ldr	r1, [pc, #84]	; (8003fe8 <OnRestoreSTSCFGContextProcess+0xbc>)
+ 8003f94:	700b      	strb	r3, [r1, #0]
+	sts_service_mask = sts_cfg_nvm.sts_service_mask;
+ 8003f96:	7a53      	ldrb	r3, [r2, #9]
+ 8003f98:	b2db      	uxtb	r3, r3
+ 8003f9a:	4a14      	ldr	r2, [pc, #80]	; (8003fec <OnRestoreSTSCFGContextProcess+0xc0>)
+ 8003f9c:	7013      	strb	r3, [r2, #0]
+	// ****								= sts_cfg_nvm.fall_detection_reserve;
+	sts_occupancy_overtime_threshold 	= (uint8_t)sts_cfg_nvm.occupancy_overtime_threshold*10;			// minutes
+#endif
+
+
+	for (uint8_t j=0; j< YUNHORN_STS_AC_CODE_SIZE; j++)
+ 8003f9e:	2300      	movs	r3, #0
+ 8003fa0:	e01a      	b.n	8003fd8 <OnRestoreSTSCFGContextProcess+0xac>
+		periodicity *= 60;
+ 8003fa2:	ebc0 1300 	rsb	r3, r0, r0, lsl #4
+ 8003fa6:	0098      	lsls	r0, r3, #2
+ 8003fa8:	e7cf      	b.n	8003f4a <OnRestoreSTSCFGContextProcess+0x1e>
+		periodicity *= 3600;
+ 8003faa:	f44f 6361 	mov.w	r3, #3600	; 0xe10
+ 8003fae:	fb03 f000 	mul.w	r0, r3, r0
+ 8003fb2:	e7ca      	b.n	8003f4a <OnRestoreSTSCFGContextProcess+0x1e>
+		samplingperiodicity *= 60;
+ 8003fb4:	ebc3 1203 	rsb	r2, r3, r3, lsl #4
+ 8003fb8:	0093      	lsls	r3, r2, #2
+ 8003fba:	e7df      	b.n	8003f7c <OnRestoreSTSCFGContextProcess+0x50>
+		samplingperiodicity *= 3600;
+ 8003fbc:	f44f 6261 	mov.w	r2, #3600	; 0xe10
+ 8003fc0:	fb02 f303 	mul.w	r3, r2, r3
+ 8003fc4:	e7da      	b.n	8003f7c <OnRestoreSTSCFGContextProcess+0x50>
+	{
+		sts_ac_code[j] = sts_cfg_nvm.ac[j];
+ 8003fc6:	4a06      	ldr	r2, [pc, #24]	; (8003fe0 <OnRestoreSTSCFGContextProcess+0xb4>)
+ 8003fc8:	441a      	add	r2, r3
+ 8003fca:	f892 202c 	ldrb.w	r2, [r2, #44]	; 0x2c
+ 8003fce:	b2d2      	uxtb	r2, r2
+ 8003fd0:	4907      	ldr	r1, [pc, #28]	; (8003ff0 <OnRestoreSTSCFGContextProcess+0xc4>)
+ 8003fd2:	54ca      	strb	r2, [r1, r3]
+	for (uint8_t j=0; j< YUNHORN_STS_AC_CODE_SIZE; j++)
+ 8003fd4:	3301      	adds	r3, #1
+ 8003fd6:	b2db      	uxtb	r3, r3
+ 8003fd8:	2b13      	cmp	r3, #19
+ 8003fda:	d9f4      	bls.n	8003fc6 <OnRestoreSTSCFGContextProcess+0x9a>
+		STS_PRESENCE_SENSOR_Init();
+		STS_PRESENCE_SENSOR_RSS_Init();
+	}
+#endif
+
+}
+ 8003fdc:	bd08      	pop	{r3, pc}
+ 8003fde:	bf00      	nop
+ 8003fe0:	20000078 	.word	0x20000078
+ 8003fe4:	20000074 	.word	0x20000074
+ 8003fe8:	20000e6c 	.word	0x20000e6c
+ 8003fec:	20000c44 	.word	0x20000c44
+ 8003ff0:	20000e58 	.word	0x20000e58
+
+08003ff4 <STS_REBOOT_CONFIG_Init>:
+{
+ 8003ff4:	b500      	push	{lr}
+ 8003ff6:	b091      	sub	sp, #68	; 0x44
+	uint8_t nvm_stored_value[YUNHORN_STS_MAX_NVM_CFG_SIZE]={0x0};
+ 8003ff8:	2100      	movs	r1, #0
+ 8003ffa:	9100      	str	r1, [sp, #0]
+ 8003ffc:	223c      	movs	r2, #60	; 0x3c
+ 8003ffe:	a801      	add	r0, sp, #4
+ 8004000:	f013 fb5e 	bl	80176c0 <memset>
+	UTIL_MEM_cpy_8(nvm_stored_value, (void *)STS_CONFIG_NVM_BASE_ADDRESS, YUNHORN_STS_MAX_NVM_CFG_SIZE);
+ 8004004:	2240      	movs	r2, #64	; 0x40
+ 8004006:	493b      	ldr	r1, [pc, #236]	; (80040f4 <STS_REBOOT_CONFIG_Init+0x100>)
+ 8004008:	4668      	mov	r0, sp
+ 800400a:	f012 feab 	bl	8016d64 <UTIL_MEM_cpy_8>
+  if ((nvm_stored_value[NVM_MTM1] != sts_mtmcode1) || (nvm_stored_value[NVM_MTM2] != sts_mtmcode2) || (nvm_stored_value[NVM_VER] != sts_version))
+ 800400e:	f89d 3000 	ldrb.w	r3, [sp]
+ 8004012:	b91b      	cbnz	r3, 800401c <STS_REBOOT_CONFIG_Init+0x28>
+ 8004014:	f89d 2001 	ldrb.w	r2, [sp, #1]
+ 8004018:	2a10      	cmp	r2, #16
+ 800401a:	d015      	beq.n	8004048 <STS_REBOOT_CONFIG_Init+0x54>
+		APP_LOG(TS_OFF, VLEVEL_L, "\r\nInitial Boot with Empty Config, Flash with default config....\r\n");
+ 800401c:	4b36      	ldr	r3, [pc, #216]	; (80040f8 <STS_REBOOT_CONFIG_Init+0x104>)
+ 800401e:	2200      	movs	r2, #0
+ 8004020:	4611      	mov	r1, r2
+ 8004022:	2001      	movs	r0, #1
+ 8004024:	f012 fd88 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+		OnStoreSTSCFGContextRequest();
+ 8004028:	f7ff fef6 	bl	8003e18 <OnStoreSTSCFGContextRequest>
+		UTIL_MEM_set_8((void *)sts_ac_code, 0x00, YUNHORN_STS_AC_CODE_SIZE);
+ 800402c:	2214      	movs	r2, #20
+ 800402e:	2100      	movs	r1, #0
+ 8004030:	4832      	ldr	r0, [pc, #200]	; (80040fc <STS_REBOOT_CONFIG_Init+0x108>)
+ 8004032:	f012 fea2 	bl	8016d7a <UTIL_MEM_set_8>
+		HAL_Delay(1000);
+ 8004036:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
+ 800403a:	f7fe fe39 	bl	8002cb0 <HAL_Delay>
+	OnRestoreSTSCFGContextProcess();
+ 800403e:	f7ff ff75 	bl	8003f2c <OnRestoreSTSCFGContextProcess>
+}
+ 8004042:	b011      	add	sp, #68	; 0x44
+ 8004044:	f85d fb04 	ldr.w	pc, [sp], #4
+  if ((nvm_stored_value[NVM_MTM1] != sts_mtmcode1) || (nvm_stored_value[NVM_MTM2] != sts_mtmcode2) || (nvm_stored_value[NVM_VER] != sts_version))
+ 8004048:	f89d 0002 	ldrb.w	r0, [sp, #2]
+ 800404c:	2801      	cmp	r0, #1
+ 800404e:	d1e5      	bne.n	800401c <STS_REBOOT_CONFIG_Init+0x28>
+		sts_cfg_nvm.mtmcode1 			= (uint8_t)nvm_stored_value[NVM_MTM1];
+ 8004050:	492b      	ldr	r1, [pc, #172]	; (8004100 <STS_REBOOT_CONFIG_Init+0x10c>)
+ 8004052:	700b      	strb	r3, [r1, #0]
+		sts_cfg_nvm.mtmcode2 			= (uint8_t)nvm_stored_value[NVM_MTM2];
+ 8004054:	704a      	strb	r2, [r1, #1]
+		sts_cfg_nvm.version 			= (uint8_t)nvm_stored_value[NVM_VER];
+ 8004056:	7088      	strb	r0, [r1, #2]
+		sts_cfg_nvm.hardware_ver  		= (uint8_t)nvm_stored_value[NVM_HWV];
+ 8004058:	f89d 2003 	ldrb.w	r2, [sp, #3]
+ 800405c:	70ca      	strb	r2, [r1, #3]
+		sts_cfg_nvm.periodicity 		= (uint8_t)(nvm_stored_value[NVM_PERIODICITY]);				//TxPeriodicity interval
+ 800405e:	f89d 2004 	ldrb.w	r2, [sp, #4]
+ 8004062:	710a      	strb	r2, [r1, #4]
+		sts_cfg_nvm.unit				= (uint8_t)(nvm_stored_value[NVM_UNIT]);
+ 8004064:	f89d 2005 	ldrb.w	r2, [sp, #5]
+ 8004068:	714a      	strb	r2, [r1, #5]
+		sts_cfg_nvm.sampling			= (uint8_t)(nvm_stored_value[NVM_SAMPLING]);				//Heart-beat or sampling interval
+ 800406a:	f89d 2006 	ldrb.w	r2, [sp, #6]
+ 800406e:	718a      	strb	r2, [r1, #6]
+		sts_cfg_nvm.s_unit				= (uint8_t)(nvm_stored_value[NVM_S_UNIT]);
+ 8004070:	f89d 2007 	ldrb.w	r2, [sp, #7]
+ 8004074:	71ca      	strb	r2, [r1, #7]
+		sts_cfg_nvm.work_mode			= (uint8_t)(nvm_stored_value[NVM_WORK_MODE]);
+ 8004076:	f89d 2008 	ldrb.w	r2, [sp, #8]
+ 800407a:	720a      	strb	r2, [r1, #8]
+		sts_cfg_nvm.sts_service_mask	= (uint8_t)(nvm_stored_value[NVM_SERVICE_MASK]);
+ 800407c:	f89d 2009 	ldrb.w	r2, [sp, #9]
+ 8004080:	724a      	strb	r2, [r1, #9]
+		sts_cfg_nvm.reseve01			= (uint8_t)(nvm_stored_value[NVM_RESERVE01]);
+ 8004082:	f89d 200a 	ldrb.w	r2, [sp, #10]
+ 8004086:	728a      	strb	r2, [r1, #10]
+		sts_cfg_nvm.length 				= (uint8_t)(nvm_stored_value[NVM_LEN]&0x3F);		//MAX 32 bytes
+ 8004088:	f89d 200b 	ldrb.w	r2, [sp, #11]
+ 800408c:	f002 023f 	and.w	r2, r2, #63	; 0x3f
+ 8004090:	72ca      	strb	r2, [r1, #11]
+		for (uint8_t j=0; j< sts_cfg_nvm.length; j++) {
+ 8004092:	461a      	mov	r2, r3
+ 8004094:	e009      	b.n	80040aa <STS_REBOOT_CONFIG_Init+0xb6>
+			sts_cfg_nvm.p[j] 				= (uint8_t)nvm_stored_value[NVM_CFG_START+j];
+ 8004096:	f102 014c 	add.w	r1, r2, #76	; 0x4c
+ 800409a:	4469      	add	r1, sp
+ 800409c:	f811 0c40 	ldrb.w	r0, [r1, #-64]
+ 80040a0:	4917      	ldr	r1, [pc, #92]	; (8004100 <STS_REBOOT_CONFIG_Init+0x10c>)
+ 80040a2:	4411      	add	r1, r2
+ 80040a4:	7308      	strb	r0, [r1, #12]
+		for (uint8_t j=0; j< sts_cfg_nvm.length; j++) {
+ 80040a6:	3201      	adds	r2, #1
+ 80040a8:	b2d2      	uxtb	r2, r2
+ 80040aa:	4915      	ldr	r1, [pc, #84]	; (8004100 <STS_REBOOT_CONFIG_Init+0x10c>)
+ 80040ac:	7ac9      	ldrb	r1, [r1, #11]
+ 80040ae:	b2c9      	uxtb	r1, r1
+ 80040b0:	4291      	cmp	r1, r2
+ 80040b2:	d8f0      	bhi.n	8004096 <STS_REBOOT_CONFIG_Init+0xa2>
+		sts_cfg_nvm.fall_detection_acc_threshold 	= (uint8_t)nvm_stored_value[NVM_FALL_DETECTION_ACC_THRESHOLD];
+ 80040b4:	f89d 1028 	ldrb.w	r1, [sp, #40]	; 0x28
+ 80040b8:	4a11      	ldr	r2, [pc, #68]	; (8004100 <STS_REBOOT_CONFIG_Init+0x10c>)
+ 80040ba:	f882 1028 	strb.w	r1, [r2, #40]	; 0x28
+		sts_cfg_nvm.fall_detection_depth_threshold 	= (uint8_t)nvm_stored_value[NVM_FALL_DETECTION_DEPTH_THRESHOLD];
+ 80040be:	f89d 1029 	ldrb.w	r1, [sp, #41]	; 0x29
+ 80040c2:	f882 1029 	strb.w	r1, [r2, #41]	; 0x29
+		sts_cfg_nvm.fall_detection_reserve			= (uint8_t)nvm_stored_value[NVM_FALL_DETECTION_RESERVE];
+ 80040c6:	f89d 102a 	ldrb.w	r1, [sp, #42]	; 0x2a
+ 80040ca:	f882 102a 	strb.w	r1, [r2, #42]	; 0x2a
+		sts_cfg_nvm.occupancy_overtime_threshold 	= (uint8_t)nvm_stored_value[NVM_OCCUPANCY_OVERTIME_THRESHOLD];
+ 80040ce:	f89d 102b 	ldrb.w	r1, [sp, #43]	; 0x2b
+ 80040d2:	f882 102b 	strb.w	r1, [r2, #43]	; 0x2b
+		for (uint8_t j=0; j< YUNHORN_STS_AC_CODE_SIZE; j++) {
+ 80040d6:	e00a      	b.n	80040ee <STS_REBOOT_CONFIG_Init+0xfa>
+			sts_cfg_nvm.ac[j] 				= (uint8_t)nvm_stored_value[NVM_AC_CODE_START +j];
+ 80040d8:	f103 026c 	add.w	r2, r3, #108	; 0x6c
+ 80040dc:	446a      	add	r2, sp
+ 80040de:	f812 1c40 	ldrb.w	r1, [r2, #-64]
+ 80040e2:	4a07      	ldr	r2, [pc, #28]	; (8004100 <STS_REBOOT_CONFIG_Init+0x10c>)
+ 80040e4:	441a      	add	r2, r3
+ 80040e6:	f882 102c 	strb.w	r1, [r2, #44]	; 0x2c
+		for (uint8_t j=0; j< YUNHORN_STS_AC_CODE_SIZE; j++) {
+ 80040ea:	3301      	adds	r3, #1
+ 80040ec:	b2db      	uxtb	r3, r3
+ 80040ee:	2b13      	cmp	r3, #19
+ 80040f0:	d9f2      	bls.n	80040d8 <STS_REBOOT_CONFIG_Init+0xe4>
+ 80040f2:	e7a4      	b.n	800403e <STS_REBOOT_CONFIG_Init+0x4a>
+ 80040f4:	0803f800 	.word	0x0803f800
+ 80040f8:	08017f24 	.word	0x08017f24
+ 80040fc:	20000e58 	.word	0x20000e58
+ 8004100:	20000078 	.word	0x20000078
+
+08004104 <LoRaWAN_Init>:
+{
+ 8004104:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8004106:	b08b      	sub	sp, #44	; 0x2c
+  uint32_t feature_version = 0UL;
+ 8004108:	2400      	movs	r4, #0
+ 800410a:	9409      	str	r4, [sp, #36]	; 0x24
+  APP_LOG(TS_OFF, VLEVEL_M, "\r\n\n\n##### YUNHORN_STS_FW:%d SWV%d HWV:%d MTM:%d.%d R:%d.%d.%d ####\r\n\n\n",
+ 800410c:	231c      	movs	r3, #28
+ 800410e:	9307      	str	r3, [sp, #28]
+ 8004110:	2306      	movs	r3, #6
+ 8004112:	9306      	str	r3, [sp, #24]
+ 8004114:	2317      	movs	r3, #23
+ 8004116:	9305      	str	r3, [sp, #20]
+ 8004118:	2310      	movs	r3, #16
+ 800411a:	9304      	str	r3, [sp, #16]
+ 800411c:	9403      	str	r4, [sp, #12]
+ 800411e:	2501      	movs	r5, #1
+ 8004120:	9502      	str	r5, [sp, #8]
+ 8004122:	9501      	str	r5, [sp, #4]
+ 8004124:	2703      	movs	r7, #3
+ 8004126:	9700      	str	r7, [sp, #0]
+ 8004128:	4b62      	ldr	r3, [pc, #392]	; (80042b4 <LoRaWAN_Init+0x1b0>)
+ 800412a:	4622      	mov	r2, r4
+ 800412c:	4621      	mov	r1, r4
+ 800412e:	2002      	movs	r0, #2
+ 8004130:	f012 fd02 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+  APP_LOG(TS_OFF, VLEVEL_M, "APPLICATION_VERSION: V%X.%X.%X\r\n",
+ 8004134:	9402      	str	r4, [sp, #8]
+ 8004136:	9701      	str	r7, [sp, #4]
+ 8004138:	9500      	str	r5, [sp, #0]
+ 800413a:	4b5f      	ldr	r3, [pc, #380]	; (80042b8 <LoRaWAN_Init+0x1b4>)
+ 800413c:	4622      	mov	r2, r4
+ 800413e:	4621      	mov	r1, r4
+ 8004140:	2002      	movs	r0, #2
+ 8004142:	f012 fcf9 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+  APP_LOG(TS_OFF, VLEVEL_M, "MW_LORAWAN_VERSION:  V%X.%X.%X\r\n",
+ 8004146:	9402      	str	r4, [sp, #8]
+ 8004148:	2305      	movs	r3, #5
+ 800414a:	9301      	str	r3, [sp, #4]
+ 800414c:	2602      	movs	r6, #2
+ 800414e:	9600      	str	r6, [sp, #0]
+ 8004150:	4b5a      	ldr	r3, [pc, #360]	; (80042bc <LoRaWAN_Init+0x1b8>)
+ 8004152:	4622      	mov	r2, r4
+ 8004154:	4621      	mov	r1, r4
+ 8004156:	4630      	mov	r0, r6
+ 8004158:	f012 fcee 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+  APP_LOG(TS_OFF, VLEVEL_M, "MW_RADIO_VERSION:    V%X.%X.%X\r\n",
+ 800415c:	9402      	str	r4, [sp, #8]
+ 800415e:	9701      	str	r7, [sp, #4]
+ 8004160:	9500      	str	r5, [sp, #0]
+ 8004162:	4b57      	ldr	r3, [pc, #348]	; (80042c0 <LoRaWAN_Init+0x1bc>)
+ 8004164:	4622      	mov	r2, r4
+ 8004166:	4621      	mov	r1, r4
+ 8004168:	4630      	mov	r0, r6
+ 800416a:	f012 fce5 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+  LmHandlerGetVersion(LORAMAC_HANDLER_L2_VERSION, &feature_version);
+ 800416e:	a909      	add	r1, sp, #36	; 0x24
+ 8004170:	4620      	mov	r0, r4
+ 8004172:	f009 fa0b 	bl	800d58c <LmHandlerGetVersion>
+  APP_LOG(TS_OFF, VLEVEL_M, "L2_SPEC_VERSION:     V%X.%X.%X\r\n",
+ 8004176:	9b09      	ldr	r3, [sp, #36]	; 0x24
+ 8004178:	0e1a      	lsrs	r2, r3, #24
+ 800417a:	f3c3 2107 	ubfx	r1, r3, #8, #8
+ 800417e:	9102      	str	r1, [sp, #8]
+ 8004180:	f3c3 4307 	ubfx	r3, r3, #16, #8
+ 8004184:	9301      	str	r3, [sp, #4]
+ 8004186:	9200      	str	r2, [sp, #0]
+ 8004188:	4b4e      	ldr	r3, [pc, #312]	; (80042c4 <LoRaWAN_Init+0x1c0>)
+ 800418a:	4622      	mov	r2, r4
+ 800418c:	4621      	mov	r1, r4
+ 800418e:	4630      	mov	r0, r6
+ 8004190:	f012 fcd2 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+  LmHandlerGetVersion(LORAMAC_HANDLER_REGION_VERSION, &feature_version);
+ 8004194:	a909      	add	r1, sp, #36	; 0x24
+ 8004196:	4628      	mov	r0, r5
+ 8004198:	f009 f9f8 	bl	800d58c <LmHandlerGetVersion>
+  APP_LOG(TS_OFF, VLEVEL_M, "RP_SPEC_VERSION:     V%X-%X.%X.%X\r\n",
+ 800419c:	9b09      	ldr	r3, [sp, #36]	; 0x24
+ 800419e:	0e1a      	lsrs	r2, r3, #24
+ 80041a0:	b2d9      	uxtb	r1, r3
+ 80041a2:	9103      	str	r1, [sp, #12]
+ 80041a4:	f3c3 2107 	ubfx	r1, r3, #8, #8
+ 80041a8:	9102      	str	r1, [sp, #8]
+ 80041aa:	f3c3 4307 	ubfx	r3, r3, #16, #8
+ 80041ae:	9301      	str	r3, [sp, #4]
+ 80041b0:	9200      	str	r2, [sp, #0]
+ 80041b2:	4b45      	ldr	r3, [pc, #276]	; (80042c8 <LoRaWAN_Init+0x1c4>)
+ 80041b4:	4622      	mov	r2, r4
+ 80041b6:	4621      	mov	r1, r4
+ 80041b8:	4630      	mov	r0, r6
+ 80041ba:	f012 fcbd 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+  UTIL_TIMER_Create(&TxLedTimer, LED_PERIOD_TIME, UTIL_TIMER_ONESHOT, OnTxTimerLedEvent, NULL);
+ 80041be:	9400      	str	r4, [sp, #0]
+ 80041c0:	4b42      	ldr	r3, [pc, #264]	; (80042cc <LoRaWAN_Init+0x1c8>)
+ 80041c2:	4622      	mov	r2, r4
+ 80041c4:	f44f 71fa 	mov.w	r1, #500	; 0x1f4
+ 80041c8:	4841      	ldr	r0, [pc, #260]	; (80042d0 <LoRaWAN_Init+0x1cc>)
+ 80041ca:	f012 ffa9 	bl	8017120 <UTIL_TIMER_Create>
+  UTIL_TIMER_Create(&RxLedTimer, LED_PERIOD_TIME, UTIL_TIMER_ONESHOT, OnRxTimerLedEvent, NULL);
+ 80041ce:	9400      	str	r4, [sp, #0]
+ 80041d0:	4b40      	ldr	r3, [pc, #256]	; (80042d4 <LoRaWAN_Init+0x1d0>)
+ 80041d2:	4622      	mov	r2, r4
+ 80041d4:	f44f 71fa 	mov.w	r1, #500	; 0x1f4
+ 80041d8:	483f      	ldr	r0, [pc, #252]	; (80042d8 <LoRaWAN_Init+0x1d4>)
+ 80041da:	f012 ffa1 	bl	8017120 <UTIL_TIMER_Create>
+  UTIL_TIMER_Create(&JoinLedTimer, LED_PERIOD_TIME, UTIL_TIMER_PERIODIC, OnJoinTimerLedEvent, NULL);
+ 80041de:	9400      	str	r4, [sp, #0]
+ 80041e0:	4b3e      	ldr	r3, [pc, #248]	; (80042dc <LoRaWAN_Init+0x1d8>)
+ 80041e2:	462a      	mov	r2, r5
+ 80041e4:	f44f 71fa 	mov.w	r1, #500	; 0x1f4
+ 80041e8:	483d      	ldr	r0, [pc, #244]	; (80042e0 <LoRaWAN_Init+0x1dc>)
+ 80041ea:	f012 ff99 	bl	8017120 <UTIL_TIMER_Create>
+  if (FLASH_IF_Init(NULL) != FLASH_IF_OK)
+ 80041ee:	4620      	mov	r0, r4
+ 80041f0:	f7fe f8da 	bl	80023a8 <FLASH_IF_Init>
+ 80041f4:	2800      	cmp	r0, #0
+ 80041f6:	d15a      	bne.n	80042ae <LoRaWAN_Init+0x1aa>
+  UTIL_TIMER_Create(&StopJoinTimer, JOIN_TIME, UTIL_TIMER_ONESHOT, OnStopJoinTimerEvent, NULL);
+ 80041f8:	2400      	movs	r4, #0
+ 80041fa:	9400      	str	r4, [sp, #0]
+ 80041fc:	4b39      	ldr	r3, [pc, #228]	; (80042e4 <LoRaWAN_Init+0x1e0>)
+ 80041fe:	4622      	mov	r2, r4
+ 8004200:	f44f 61fa 	mov.w	r1, #2000	; 0x7d0
+ 8004204:	4838      	ldr	r0, [pc, #224]	; (80042e8 <LoRaWAN_Init+0x1e4>)
+ 8004206:	f012 ff8b 	bl	8017120 <UTIL_TIMER_Create>
+  UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_LmHandlerProcess), UTIL_SEQ_RFU, LmHandlerProcess);
+ 800420a:	4a38      	ldr	r2, [pc, #224]	; (80042ec <LoRaWAN_Init+0x1e8>)
+ 800420c:	4621      	mov	r1, r4
+ 800420e:	2001      	movs	r0, #1
+ 8004210:	f012 fe86 	bl	8016f20 <UTIL_SEQ_RegTask>
+  UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), UTIL_SEQ_RFU, SendTxData);
+ 8004214:	4a36      	ldr	r2, [pc, #216]	; (80042f0 <LoRaWAN_Init+0x1ec>)
+ 8004216:	4621      	mov	r1, r4
+ 8004218:	2002      	movs	r0, #2
+ 800421a:	f012 fe81 	bl	8016f20 <UTIL_SEQ_RegTask>
+  UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_LoRaStoreContextEvent), UTIL_SEQ_RFU, StoreContext);
+ 800421e:	4a35      	ldr	r2, [pc, #212]	; (80042f4 <LoRaWAN_Init+0x1f0>)
+ 8004220:	4621      	mov	r1, r4
+ 8004222:	2004      	movs	r0, #4
+ 8004224:	f012 fe7c 	bl	8016f20 <UTIL_SEQ_RegTask>
+  UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_LoRaStopJoinEvent), UTIL_SEQ_RFU, StopJoin);
+ 8004228:	4a33      	ldr	r2, [pc, #204]	; (80042f8 <LoRaWAN_Init+0x1f4>)
+ 800422a:	4621      	mov	r1, r4
+ 800422c:	2008      	movs	r0, #8
+ 800422e:	f012 fe77 	bl	8016f20 <UTIL_SEQ_RegTask>
+  LoraInfo_Init();
+ 8004232:	f000 fcaf 	bl	8004b94 <LoraInfo_Init>
+  LmHandlerInit(&LmHandlerCallbacks, APP_VERSION);
+ 8004236:	4931      	ldr	r1, [pc, #196]	; (80042fc <LoRaWAN_Init+0x1f8>)
+ 8004238:	4831      	ldr	r0, [pc, #196]	; (8004300 <LoRaWAN_Init+0x1fc>)
+ 800423a:	f009 f967 	bl	800d50c <LmHandlerInit>
+  LmHandlerConfigure(&LmHandlerParams);
+ 800423e:	4831      	ldr	r0, [pc, #196]	; (8004304 <LoRaWAN_Init+0x200>)
+ 8004240:	f009 f842 	bl	800d2c8 <LmHandlerConfigure>
+  UTIL_TIMER_Start(&JoinLedTimer);
+ 8004244:	4826      	ldr	r0, [pc, #152]	; (80042e0 <LoRaWAN_Init+0x1dc>)
+ 8004246:	f013 f823 	bl	8017290 <UTIL_TIMER_Start>
+  LmHandlerJoin(ActivationType, ForceRejoin);
+ 800424a:	4621      	mov	r1, r4
+ 800424c:	4b2e      	ldr	r3, [pc, #184]	; (8004308 <LoRaWAN_Init+0x204>)
+ 800424e:	7818      	ldrb	r0, [r3, #0]
+ 8004250:	f008 fe84 	bl	800cf5c <LmHandlerJoin>
+    UTIL_TIMER_Create(&TxTimer, TxPeriodicity, UTIL_TIMER_ONESHOT, OnTxTimerEvent, NULL);
+ 8004254:	4d2d      	ldr	r5, [pc, #180]	; (800430c <LoRaWAN_Init+0x208>)
+ 8004256:	9400      	str	r4, [sp, #0]
+ 8004258:	4b2d      	ldr	r3, [pc, #180]	; (8004310 <LoRaWAN_Init+0x20c>)
+ 800425a:	4622      	mov	r2, r4
+ 800425c:	492d      	ldr	r1, [pc, #180]	; (8004314 <LoRaWAN_Init+0x210>)
+ 800425e:	6809      	ldr	r1, [r1, #0]
+ 8004260:	4628      	mov	r0, r5
+ 8004262:	f012 ff5d 	bl	8017120 <UTIL_TIMER_Create>
+    UTIL_TIMER_Start(&TxTimer);
+ 8004266:	4628      	mov	r0, r5
+ 8004268:	f013 f812 	bl	8017290 <UTIL_TIMER_Start>
+  STS_REBOOT_CONFIG_Init();
+ 800426c:	f7ff fec2 	bl	8003ff4 <STS_REBOOT_CONFIG_Init>
+  UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventRFAC), UTIL_SEQ_RFU, STS_YunhornSTSEventRFAC_Process);
+ 8004270:	4a29      	ldr	r2, [pc, #164]	; (8004318 <LoRaWAN_Init+0x214>)
+ 8004272:	4621      	mov	r1, r4
+ 8004274:	2010      	movs	r0, #16
+ 8004276:	f012 fe53 	bl	8016f20 <UTIL_SEQ_RegTask>
+  UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP4), UTIL_SEQ_RFU, STS_YunhornSTSEventP4_Process);
+ 800427a:	4a28      	ldr	r2, [pc, #160]	; (800431c <LoRaWAN_Init+0x218>)
+ 800427c:	4621      	mov	r1, r4
+ 800427e:	f44f 7080 	mov.w	r0, #256	; 0x100
+ 8004282:	f012 fe4d 	bl	8016f20 <UTIL_SEQ_RegTask>
+  UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP6), UTIL_SEQ_RFU, STS_YunhornSTSEventP6_Process);
+ 8004286:	4a26      	ldr	r2, [pc, #152]	; (8004320 <LoRaWAN_Init+0x21c>)
+ 8004288:	4621      	mov	r1, r4
+ 800428a:	f44f 6080 	mov.w	r0, #1024	; 0x400
+ 800428e:	f012 fe47 	bl	8016f20 <UTIL_SEQ_RegTask>
+    UTIL_TIMER_Create(&YunhornSTSHeartBeatTimer, HeartBeatPeriodicity,
+ 8004292:	4b24      	ldr	r3, [pc, #144]	; (8004324 <LoRaWAN_Init+0x220>)
+ 8004294:	6819      	ldr	r1, [r3, #0]
+ 8004296:	4d24      	ldr	r5, [pc, #144]	; (8004328 <LoRaWAN_Init+0x224>)
+ 8004298:	9400      	str	r4, [sp, #0]
+ 800429a:	4b24      	ldr	r3, [pc, #144]	; (800432c <LoRaWAN_Init+0x228>)
+ 800429c:	4622      	mov	r2, r4
+ 800429e:	4628      	mov	r0, r5
+ 80042a0:	f012 ff3e 	bl	8017120 <UTIL_TIMER_Create>
+        UTIL_TIMER_Start(&YunhornSTSHeartBeatTimer);
+ 80042a4:	4628      	mov	r0, r5
+ 80042a6:	f012 fff3 	bl	8017290 <UTIL_TIMER_Start>
+}
+ 80042aa:	b00b      	add	sp, #44	; 0x2c
+ 80042ac:	bdf0      	pop	{r4, r5, r6, r7, pc}
+    Error_Handler();
+ 80042ae:	f7fe fa15 	bl	80026dc <Error_Handler>
+ 80042b2:	e7a1      	b.n	80041f8 <LoRaWAN_Init+0xf4>
+ 80042b4:	08017f68 	.word	0x08017f68
+ 80042b8:	08017fb0 	.word	0x08017fb0
+ 80042bc:	08017fd4 	.word	0x08017fd4
+ 80042c0:	08017ff8 	.word	0x08017ff8
+ 80042c4:	0801801c 	.word	0x0801801c
+ 80042c8:	08018040 	.word	0x08018040
+ 80042cc:	08003593 	.word	0x08003593
+ 80042d0:	20000d88 	.word	0x20000d88
+ 80042d4:	08003595 	.word	0x08003595
+ 80042d8:	20000d54 	.word	0x20000d54
+ 80042dc:	08003597 	.word	0x08003597
+ 80042e0:	20000d3c 	.word	0x20000d3c
+ 80042e4:	080037b5 	.word	0x080037b5
+ 80042e8:	20000d70 	.word	0x20000d70
+ 80042ec:	0800ce69 	.word	0x0800ce69
+ 80042f0:	08003a21 	.word	0x08003a21
+ 80042f4:	080039e9 	.word	0x080039e9
+ 80042f8:	08003975 	.word	0x08003975
+ 80042fc:	01030000 	.word	0x01030000
+ 8004300:	20000010 	.word	0x20000010
+ 8004304:	2000005c 	.word	0x2000005c
+ 8004308:	20000000 	.word	0x20000000
+ 800430c:	20000da0 	.word	0x20000da0
+ 8004310:	08003789 	.word	0x08003789
+ 8004314:	20000074 	.word	0x20000074
+ 8004318:	080033c5 	.word	0x080033c5
+ 800431c:	08003475 	.word	0x08003475
+ 8004320:	080034b9 	.word	0x080034b9
+ 8004324:	2000000c 	.word	0x2000000c
+ 8004328:	20000db8 	.word	0x20000db8
+ 800432c:	08003739 	.word	0x08003739
+
+08004330 <STS_SENSOR_Distance_Test_Process>:
+
+void STS_SENSOR_Distance_Test_Process(void)
+{
+ 8004330:	b508      	push	{r3, lr}
+
+	APP_LOG(TS_OFF, VLEVEL_M, "\r\nSensor Function Test: Distance Measured =%u mm\r\n", (int)sts_distance_rss_distance);
+#endif
+
+#ifdef	YUNHORN_STS_R0_ENABLED
+		MX_TOF_Process();
+ 8004332:	f000 fde7 	bl	8004f04 <MX_TOF_Process>
+#endif
+}
+ 8004336:	bd08      	pop	{r3, pc}
+
+08004338 <STS_SENSOR_Function_Test_Process>:
+
+void STS_SENSOR_Function_Test_Process(void)
+{
+ 8004338:	b530      	push	{r4, r5, lr}
+ 800433a:	b0a3      	sub	sp, #140	; 0x8c
+	char tstbuf[128] =""; uint8_t i=0;
+ 800433c:	2400      	movs	r4, #0
+ 800433e:	9402      	str	r4, [sp, #8]
+ 8004340:	227c      	movs	r2, #124	; 0x7c
+ 8004342:	4621      	mov	r1, r4
+ 8004344:	a803      	add	r0, sp, #12
+ 8004346:	f013 f9bb 	bl	80176c0 <memset>
+	uint8_t count = 0;
+	uint8_t mems_Dev_ID[2] = "";
+ 800434a:	f8ad 4004 	strh.w	r4, [sp, #4]
+
+	tstbuf[i++] = (uint8_t) 'S';
+ 800434e:	2353      	movs	r3, #83	; 0x53
+ 8004350:	f88d 3008 	strb.w	r3, [sp, #8]
+	tstbuf[i++] = (uint8_t) sts_mtmcode1;
+	tstbuf[i++] = (uint8_t) sts_mtmcode2;
+ 8004354:	2310      	movs	r3, #16
+ 8004356:	f88d 300a 	strb.w	r3, [sp, #10]
+	tstbuf[i++] = (uint8_t) sts_version;
+ 800435a:	2301      	movs	r3, #1
+ 800435c:	f88d 300b 	strb.w	r3, [sp, #11]
+	tstbuf[i++] = (uint8_t) sts_hardware_ver;
+ 8004360:	f88d 300c 	strb.w	r3, [sp, #12]
+	tstbuf[i++] = (uint8_t) (99*((GetBatteryLevel()/254)&0xff));
+ 8004364:	f7fe fc14 	bl	8002b90 <GetBatteryLevel>
+ 8004368:	0840      	lsrs	r0, r0, #1
+ 800436a:	4b1f      	ldr	r3, [pc, #124]	; (80043e8 <STS_SENSOR_Function_Test_Process+0xb0>)
+ 800436c:	fba3 3000 	umull	r3, r0, r3, r0
+ 8004370:	0980      	lsrs	r0, r0, #6
+ 8004372:	eb00 0040 	add.w	r0, r0, r0, lsl #1
+ 8004376:	eb00 1040 	add.w	r0, r0, r0, lsl #5
+ 800437a:	f88d 000d 	strb.w	r0, [sp, #13]
+
+
+	count = STS_SENSOR_MEMS_Get_ID(mems_Dev_ID);
+ 800437e:	a801      	add	r0, sp, #4
+ 8004380:	f000 fde0 	bl	8004f44 <STS_SENSOR_MEMS_Get_ID>
+
+//	if ((mems_Dev_ID[0]==0X0) && (mems_Dev_ID[1]==0x0))
+	if (count ==0)
+ 8004384:	b980      	cbnz	r0, 80043a8 <STS_SENSOR_Function_Test_Process+0x70>
+	{
+		tstbuf[i++] = (uint8_t) 'X'; // Slave MEMS Not Avaliable
+ 8004386:	2358      	movs	r3, #88	; 0x58
+ 8004388:	f88d 300e 	strb.w	r3, [sp, #14]
+ 800438c:	2507      	movs	r5, #7
+		tstbuf[i++] = (uint8_t) (sts_tof_distance_data[2]  &0xff);
+
+
+#endif
+	}
+	memset((void*)outbuf,sizeof(outbuf),0x30);
+ 800438e:	4c17      	ldr	r4, [pc, #92]	; (80043ec <STS_SENSOR_Function_Test_Process+0xb4>)
+ 8004390:	2230      	movs	r2, #48	; 0x30
+ 8004392:	2180      	movs	r1, #128	; 0x80
+ 8004394:	4620      	mov	r0, r4
+ 8004396:	f013 f993 	bl	80176c0 <memset>
+	memcpy((void*)outbuf, tstbuf, i);
+ 800439a:	462a      	mov	r2, r5
+ 800439c:	a902      	add	r1, sp, #8
+ 800439e:	4620      	mov	r0, r4
+ 80043a0:	f013 f9c7 	bl	8017732 <memcpy>
+
+	//STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf);
+
+}
+ 80043a4:	b023      	add	sp, #140	; 0x8c
+ 80043a6:	bd30      	pop	{r4, r5, pc}
+		tstbuf[i++] = (uint8_t)2; //length of following data
+ 80043a8:	2302      	movs	r3, #2
+ 80043aa:	f88d 300e 	strb.w	r3, [sp, #14]
+		MX_TOF_Process();
+ 80043ae:	f000 fda9 	bl	8004f04 <MX_TOF_Process>
+		tstbuf[i++] = (uint8_t) ((sts_tof_distance_data[0] >>8 ) &0xff);
+ 80043b2:	4b0f      	ldr	r3, [pc, #60]	; (80043f0 <STS_SENSOR_Function_Test_Process+0xb8>)
+ 80043b4:	681a      	ldr	r2, [r3, #0]
+ 80043b6:	f3c2 2207 	ubfx	r2, r2, #8, #8
+ 80043ba:	f88d 200f 	strb.w	r2, [sp, #15]
+		tstbuf[i++] = (uint8_t) (sts_tof_distance_data[0]  &0xff);
+ 80043be:	681a      	ldr	r2, [r3, #0]
+ 80043c0:	f88d 2010 	strb.w	r2, [sp, #16]
+		tstbuf[i++] = (uint8_t) ((sts_tof_distance_data[1] >>8 ) &0xff);
+ 80043c4:	685a      	ldr	r2, [r3, #4]
+ 80043c6:	f3c2 2207 	ubfx	r2, r2, #8, #8
+ 80043ca:	f88d 2011 	strb.w	r2, [sp, #17]
+		tstbuf[i++] = (uint8_t) (sts_tof_distance_data[1]  &0xff);
+ 80043ce:	685a      	ldr	r2, [r3, #4]
+ 80043d0:	f88d 2012 	strb.w	r2, [sp, #18]
+		tstbuf[i++] = (uint8_t) ((sts_tof_distance_data[2] >>8 ) &0xff);
+ 80043d4:	689a      	ldr	r2, [r3, #8]
+ 80043d6:	f3c2 2207 	ubfx	r2, r2, #8, #8
+ 80043da:	f88d 2013 	strb.w	r2, [sp, #19]
+		tstbuf[i++] = (uint8_t) (sts_tof_distance_data[2]  &0xff);
+ 80043de:	689b      	ldr	r3, [r3, #8]
+ 80043e0:	f88d 3014 	strb.w	r3, [sp, #20]
+ 80043e4:	250d      	movs	r5, #13
+ 80043e6:	e7d2      	b.n	800438e <STS_SENSOR_Function_Test_Process+0x56>
+ 80043e8:	81020409 	.word	0x81020409
+ 80043ec:	20000dd4 	.word	0x20000dd4
+ 80043f0:	20000f00 	.word	0x20000f00
+
+080043f4 <USER_APP_AUTO_RESPONDER_Parse>:
+{
+ 80043f4:	b570      	push	{r4, r5, r6, lr}
+ 80043f6:	b094      	sub	sp, #80	; 0x50
+ 80043f8:	4604      	mov	r4, r0
+ 80043fa:	460d      	mov	r5, r1
+	if (((char)tlv_buf[CFG_CMD1] == 'Y') && (tlv_buf_size <=5))  // BEGIN OF *** BOARD LEVEL CONTROL OR REPORT
+ 80043fc:	7803      	ldrb	r3, [r0, #0]
+ 80043fe:	2b59      	cmp	r3, #89	; 0x59
+ 8004400:	d007      	beq.n	8004412 <USER_APP_AUTO_RESPONDER_Parse+0x1e>
+	else if (((char)tlv_buf[CFG_CMD1] == 'P') && (tlv_buf_size >= 3)) //   BEGIN OF PARAMETER CONFIG
+ 8004402:	2b50      	cmp	r3, #80	; 0x50
+ 8004404:	f000 828a 	beq.w	800491c <USER_APP_AUTO_RESPONDER_Parse+0x528>
+	else if (((char)tlv_buf[CFG_CMD1] == 'A') && ((char)tlv_buf[CFG_CMD2] == 'C') && (tlv_buf_size == (YUNHORN_STS_AC_CODE_SIZE+2)))  // BEGIN OF *** BOARD LEVEL AUTHORIZATION CODE
+ 8004408:	2b41      	cmp	r3, #65	; 0x41
+ 800440a:	f000 82ef 	beq.w	80049ec <USER_APP_AUTO_RESPONDER_Parse+0x5f8>
+} // END OF  USER_APP_AUTO_RESPONDER_Parse
+ 800440e:	b014      	add	sp, #80	; 0x50
+ 8004410:	bd70      	pop	{r4, r5, r6, pc}
+	if (((char)tlv_buf[CFG_CMD1] == 'Y') && (tlv_buf_size <=5))  // BEGIN OF *** BOARD LEVEL CONTROL OR REPORT
+ 8004412:	2905      	cmp	r1, #5
+ 8004414:	d8f5      	bhi.n	8004402 <USER_APP_AUTO_RESPONDER_Parse+0xe>
+		switch ((char)tlv_buf[CFG_CMD2])
+ 8004416:	7843      	ldrb	r3, [r0, #1]
+ 8004418:	3b44      	subs	r3, #68	; 0x44
+ 800441a:	2b16      	cmp	r3, #22
+ 800441c:	d8f7      	bhi.n	800440e <USER_APP_AUTO_RESPONDER_Parse+0x1a>
+ 800441e:	a201      	add	r2, pc, #4	; (adr r2, 8004424 <USER_APP_AUTO_RESPONDER_Parse+0x30>)
+ 8004420:	f852 f023 	ldr.w	pc, [r2, r3, lsl #2]
+ 8004424:	0800475b 	.word	0x0800475b
+ 8004428:	0800440f 	.word	0x0800440f
+ 800442c:	08004703 	.word	0x08004703
+ 8004430:	0800440f 	.word	0x0800440f
+ 8004434:	0800472f 	.word	0x0800472f
+ 8004438:	0800440f 	.word	0x0800440f
+ 800443c:	0800440f 	.word	0x0800440f
+ 8004440:	0800440f 	.word	0x0800440f
+ 8004444:	0800440f 	.word	0x0800440f
+ 8004448:	080045c3 	.word	0x080045c3
+ 800444c:	0800440f 	.word	0x0800440f
+ 8004450:	080046d7 	.word	0x080046d7
+ 8004454:	0800440f 	.word	0x0800440f
+ 8004458:	0800440f 	.word	0x0800440f
+ 800445c:	0800440f 	.word	0x0800440f
+ 8004460:	0800484f 	.word	0x0800484f
+ 8004464:	0800440f 	.word	0x0800440f
+ 8004468:	0800440f 	.word	0x0800440f
+ 800446c:	08004609 	.word	0x08004609
+ 8004470:	0800440f 	.word	0x0800440f
+ 8004474:	0800440f 	.word	0x0800440f
+ 8004478:	0800440f 	.word	0x0800440f
+ 800447c:	08004481 	.word	0x08004481
+				if ((char)tlv_buf[CFG_CMD3] == 'H') {  //BOARD SOFT RESET, REVIVE "YZH"
+ 8004480:	7883      	ldrb	r3, [r0, #2]
+ 8004482:	2b48      	cmp	r3, #72	; 0x48
+ 8004484:	d05f      	beq.n	8004546 <USER_APP_AUTO_RESPONDER_Parse+0x152>
+				}	else if 	((char)tlv_buf[CFG_CMD3] == 'S') {		// Self Function Testing "YZS"
+ 8004486:	2b53      	cmp	r3, #83	; 0x53
+ 8004488:	d073      	beq.n	8004572 <USER_APP_AUTO_RESPONDER_Parse+0x17e>
+				} else if 	((char)tlv_buf[CFG_CMD3] == 'C') {		// Lora-WAN Class "YZC" LORAWAN CLASS A/B/C
+ 800448a:	2b43      	cmp	r3, #67	; 0x43
+ 800448c:	f000 8083 	beq.w	8004596 <USER_APP_AUTO_RESPONDER_Parse+0x1a2>
+				} else if 	((char)tlv_buf[CFG_CMD3] == 'D') {		// Distance Measure "YZD"
+ 8004490:	2b44      	cmp	r3, #68	; 0x44
+ 8004492:	d1bc      	bne.n	800440e <USER_APP_AUTO_RESPONDER_Parse+0x1a>
+					outbuf[i++] = (uint8_t) 'Y';
+ 8004494:	4cbb      	ldr	r4, [pc, #748]	; (8004784 <USER_APP_AUTO_RESPONDER_Parse+0x390>)
+ 8004496:	2359      	movs	r3, #89	; 0x59
+ 8004498:	7023      	strb	r3, [r4, #0]
+					outbuf[i++] = (uint8_t) 'Z';
+ 800449a:	235a      	movs	r3, #90	; 0x5a
+ 800449c:	7063      	strb	r3, [r4, #1]
+					outbuf[i++] = (uint8_t) 'D';
+ 800449e:	2544      	movs	r5, #68	; 0x44
+ 80044a0:	70a5      	strb	r5, [r4, #2]
+					STS_SENSOR_Distance_Test_Process();
+ 80044a2:	f7ff ff45 	bl	8004330 <STS_SENSOR_Distance_Test_Process>
+					memset(outbuf,sizeof(outbuf),0x30);
+ 80044a6:	2230      	movs	r2, #48	; 0x30
+ 80044a8:	2180      	movs	r1, #128	; 0x80
+ 80044aa:	4620      	mov	r0, r4
+ 80044ac:	f013 f908 	bl	80176c0 <memset>
+					outbuf[i++] 	= (uint8_t)'D';
+ 80044b0:	7025      	strb	r5, [r4, #0]
+					outbuf[i++] 	= (uint8_t)sts_mtmcode1;
+ 80044b2:	2300      	movs	r3, #0
+ 80044b4:	7063      	strb	r3, [r4, #1]
+					outbuf[i++] 	= (uint8_t)sts_mtmcode2;
+ 80044b6:	2310      	movs	r3, #16
+ 80044b8:	70a3      	strb	r3, [r4, #2]
+					outbuf[i++] 	= (uint8_t)sts_version;
+ 80044ba:	2501      	movs	r5, #1
+ 80044bc:	70e5      	strb	r5, [r4, #3]
+					outbuf[i++] 	= (uint8_t)sts_hardware_ver;
+ 80044be:	7125      	strb	r5, [r4, #4]
+					outbuf[i++] 	= (uint8_t)(99*((GetBatteryLevel()/254)&0xff));
+ 80044c0:	f7fe fb66 	bl	8002b90 <GetBatteryLevel>
+ 80044c4:	fa20 f305 	lsr.w	r3, r0, r5
+ 80044c8:	4aaf      	ldr	r2, [pc, #700]	; (8004788 <USER_APP_AUTO_RESPONDER_Parse+0x394>)
+ 80044ca:	fba2 2303 	umull	r2, r3, r2, r3
+ 80044ce:	099b      	lsrs	r3, r3, #6
+ 80044d0:	eb03 0343 	add.w	r3, r3, r3, lsl #1
+ 80044d4:	eb03 1343 	add.w	r3, r3, r3, lsl #5
+ 80044d8:	7163      	strb	r3, [r4, #5]
+					outbuf[i++] 	= (uint8_t) (((uint16_t)sts_tof_distance_data[0])/100)&0xff;
+ 80044da:	48ac      	ldr	r0, [pc, #688]	; (800478c <USER_APP_AUTO_RESPONDER_Parse+0x398>)
+ 80044dc:	6802      	ldr	r2, [r0, #0]
+ 80044de:	b292      	uxth	r2, r2
+ 80044e0:	4bab      	ldr	r3, [pc, #684]	; (8004790 <USER_APP_AUTO_RESPONDER_Parse+0x39c>)
+ 80044e2:	fba3 1202 	umull	r1, r2, r3, r2
+ 80044e6:	f3c2 1247 	ubfx	r2, r2, #5, #8
+ 80044ea:	71a2      	strb	r2, [r4, #6]
+					outbuf[i++] 	= (uint8_t) (((uint16_t)sts_tof_distance_data[0])%100)&0xff;
+ 80044ec:	6802      	ldr	r2, [r0, #0]
+ 80044ee:	b292      	uxth	r2, r2
+ 80044f0:	fba3 1602 	umull	r1, r6, r3, r2
+ 80044f4:	0976      	lsrs	r6, r6, #5
+ 80044f6:	2164      	movs	r1, #100	; 0x64
+ 80044f8:	fb01 2216 	mls	r2, r1, r6, r2
+ 80044fc:	71e2      	strb	r2, [r4, #7]
+					outbuf[i++] 	= (uint8_t) (((uint16_t)sts_tof_distance_data[1])/100)&0xff;
+ 80044fe:	6842      	ldr	r2, [r0, #4]
+ 8004500:	b292      	uxth	r2, r2
+ 8004502:	fba3 6202 	umull	r6, r2, r3, r2
+ 8004506:	f3c2 1247 	ubfx	r2, r2, #5, #8
+ 800450a:	7222      	strb	r2, [r4, #8]
+					outbuf[i++] 	= (uint8_t) (((uint16_t)sts_tof_distance_data[1])%100)&0xff;
+ 800450c:	6842      	ldr	r2, [r0, #4]
+ 800450e:	b292      	uxth	r2, r2
+ 8004510:	fba3 c602 	umull	ip, r6, r3, r2
+ 8004514:	0976      	lsrs	r6, r6, #5
+ 8004516:	fb01 2216 	mls	r2, r1, r6, r2
+ 800451a:	7262      	strb	r2, [r4, #9]
+					outbuf[i++] 	= (uint8_t) (((uint16_t)sts_tof_distance_data[2])/100)&0xff;
+ 800451c:	6882      	ldr	r2, [r0, #8]
+ 800451e:	b292      	uxth	r2, r2
+ 8004520:	fba3 6202 	umull	r6, r2, r3, r2
+ 8004524:	f3c2 1247 	ubfx	r2, r2, #5, #8
+ 8004528:	72a2      	strb	r2, [r4, #10]
+					outbuf[i++] 	= (uint8_t) (((uint16_t)sts_tof_distance_data[2])%100)&0xff;
+ 800452a:	6882      	ldr	r2, [r0, #8]
+ 800452c:	b292      	uxth	r2, r2
+ 800452e:	fba3 0302 	umull	r0, r3, r3, r2
+ 8004532:	095b      	lsrs	r3, r3, #5
+ 8004534:	fb01 2213 	mls	r2, r1, r3, r2
+ 8004538:	72e2      	strb	r2, [r4, #11]
+					STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf);
+ 800453a:	4622      	mov	r2, r4
+ 800453c:	210c      	movs	r1, #12
+ 800453e:	4628      	mov	r0, r5
+ 8004540:	f7ff fbe8 	bl	8003d14 <STS_SENSOR_Upload_Message>
+ 8004544:	e763      	b.n	800440e <USER_APP_AUTO_RESPONDER_Parse+0x1a>
+					STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, 20, "!YunHorn STS Revive!");
+ 8004546:	4a93      	ldr	r2, [pc, #588]	; (8004794 <USER_APP_AUTO_RESPONDER_Parse+0x3a0>)
+ 8004548:	2114      	movs	r1, #20
+ 800454a:	2001      	movs	r0, #1
+ 800454c:	f7ff fbe2 	bl	8003d14 <STS_SENSOR_Upload_Message>
+					HAL_Delay(5000);
+ 8004550:	f241 3088 	movw	r0, #5000	; 0x1388
+ 8004554:	f7fe fbac 	bl	8002cb0 <HAL_Delay>
+					APP_LOG(TS_OFF, VLEVEL_H, "\r\n Yunhorn STS Node Revive ... \r\n");
+ 8004558:	4b8f      	ldr	r3, [pc, #572]	; (8004798 <USER_APP_AUTO_RESPONDER_Parse+0x3a4>)
+ 800455a:	2200      	movs	r2, #0
+ 800455c:	4611      	mov	r1, r2
+ 800455e:	2003      	movs	r0, #3
+ 8004560:	f012 faea 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+					HAL_Delay(3000);
+ 8004564:	f640 30b8 	movw	r0, #3000	; 0xbb8
+ 8004568:	f7fe fba2 	bl	8002cb0 <HAL_Delay>
+					OnSystemReset();
+ 800456c:	f7ff f930 	bl	80037d0 <OnSystemReset>
+ 8004570:	e74d      	b.n	800440e <USER_APP_AUTO_RESPONDER_Parse+0x1a>
+					memset(outbuf,sizeof(outbuf),0x30);
+ 8004572:	4c84      	ldr	r4, [pc, #528]	; (8004784 <USER_APP_AUTO_RESPONDER_Parse+0x390>)
+ 8004574:	2230      	movs	r2, #48	; 0x30
+ 8004576:	2180      	movs	r1, #128	; 0x80
+ 8004578:	4620      	mov	r0, r4
+ 800457a:	f013 f8a1 	bl	80176c0 <memset>
+					STS_SENSOR_Function_Test_Process();
+ 800457e:	f7ff fedb 	bl	8004338 <STS_SENSOR_Function_Test_Process>
+					HAL_Delay(5000);
+ 8004582:	f241 3088 	movw	r0, #5000	; 0x1388
+ 8004586:	f7fe fb93 	bl	8002cb0 <HAL_Delay>
+					STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf);
+ 800458a:	4622      	mov	r2, r4
+ 800458c:	2115      	movs	r1, #21
+ 800458e:	2001      	movs	r0, #1
+ 8004590:	f7ff fbc0 	bl	8003d14 <STS_SENSOR_Upload_Message>
+ 8004594:	e73b      	b.n	800440e <USER_APP_AUTO_RESPONDER_Parse+0x1a>
+					DeviceClass_t deviceClass = CLASS_A;
+ 8004596:	2400      	movs	r4, #0
+ 8004598:	f88d 4010 	strb.w	r4, [sp, #16]
+					LmHandlerGetCurrentClass( &deviceClass );
+ 800459c:	a804      	add	r0, sp, #16
+ 800459e:	f008 fe07 	bl	800d1b0 <LmHandlerGetCurrentClass>
+					outbuf[i++] = (uint8_t) 'L';
+ 80045a2:	4a78      	ldr	r2, [pc, #480]	; (8004784 <USER_APP_AUTO_RESPONDER_Parse+0x390>)
+ 80045a4:	234c      	movs	r3, #76	; 0x4c
+ 80045a6:	7013      	strb	r3, [r2, #0]
+					outbuf[i++] = (uint8_t) sts_mtmcode1;
+ 80045a8:	7054      	strb	r4, [r2, #1]
+					outbuf[i++] = (uint8_t) sts_mtmcode2;
+ 80045aa:	2310      	movs	r3, #16
+ 80045ac:	7093      	strb	r3, [r2, #2]
+					outbuf[i++] = (uint8_t) sts_version;
+ 80045ae:	2001      	movs	r0, #1
+ 80045b0:	70d0      	strb	r0, [r2, #3]
+					outbuf[i++] = (uint8_t) (0x41+ deviceClass); //translate to 'A','B','C'
+ 80045b2:	f89d 3010 	ldrb.w	r3, [sp, #16]
+ 80045b6:	3341      	adds	r3, #65	; 0x41
+ 80045b8:	7113      	strb	r3, [r2, #4]
+					STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf);
+ 80045ba:	2105      	movs	r1, #5
+ 80045bc:	f7ff fbaa 	bl	8003d14 <STS_SENSOR_Upload_Message>
+ 80045c0:	e725      	b.n	800440e <USER_APP_AUTO_RESPONDER_Parse+0x1a>
+				if ((char)tlv_buf[CFG_CMD3] >= '0' && (char)tlv_buf[CFG_CMD3]<='9') 	// Service Mask "YZM"
+ 80045c2:	7883      	ldrb	r3, [r0, #2]
+ 80045c4:	3b30      	subs	r3, #48	; 0x30
+ 80045c6:	b2db      	uxtb	r3, r3
+ 80045c8:	2b09      	cmp	r3, #9
+ 80045ca:	f63f af20 	bhi.w	800440e <USER_APP_AUTO_RESPONDER_Parse+0x1a>
+						sts_service_mask = (uint8_t)(tlv_buf[CFG_CMD3]-0x30)&0xFF;
+ 80045ce:	4c73      	ldr	r4, [pc, #460]	; (800479c <USER_APP_AUTO_RESPONDER_Parse+0x3a8>)
+ 80045d0:	7023      	strb	r3, [r4, #0]
+						sts_cfg_nvm.sts_service_mask = (uint8_t)sts_service_mask;
+ 80045d2:	7823      	ldrb	r3, [r4, #0]
+ 80045d4:	b2db      	uxtb	r3, r3
+ 80045d6:	4a72      	ldr	r2, [pc, #456]	; (80047a0 <USER_APP_AUTO_RESPONDER_Parse+0x3ac>)
+ 80045d8:	7253      	strb	r3, [r2, #9]
+						outbuf[i++] = (uint8_t) 'Y';
+ 80045da:	4a6a      	ldr	r2, [pc, #424]	; (8004784 <USER_APP_AUTO_RESPONDER_Parse+0x390>)
+ 80045dc:	2359      	movs	r3, #89	; 0x59
+ 80045de:	7013      	strb	r3, [r2, #0]
+						outbuf[i++] = (uint8_t) 'M';
+ 80045e0:	234d      	movs	r3, #77	; 0x4d
+ 80045e2:	7053      	strb	r3, [r2, #1]
+						outbuf[i++] = (uint8_t) (sts_service_mask+0x30);
+ 80045e4:	7823      	ldrb	r3, [r4, #0]
+ 80045e6:	3330      	adds	r3, #48	; 0x30
+ 80045e8:	7093      	strb	r3, [r2, #2]
+						STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf);
+ 80045ea:	2103      	movs	r1, #3
+ 80045ec:	2001      	movs	r0, #1
+ 80045ee:	f7ff fb91 	bl	8003d14 <STS_SENSOR_Upload_Message>
+						APP_LOG(TS_OFF, VLEVEL_L, ">>>>>>>>>>>>>>>>>>>>> Mask = [ %02x ] \r\n", sts_service_mask);
+ 80045f2:	7823      	ldrb	r3, [r4, #0]
+ 80045f4:	9300      	str	r3, [sp, #0]
+ 80045f6:	4b6b      	ldr	r3, [pc, #428]	; (80047a4 <USER_APP_AUTO_RESPONDER_Parse+0x3b0>)
+ 80045f8:	2200      	movs	r2, #0
+ 80045fa:	4611      	mov	r1, r2
+ 80045fc:	2001      	movs	r0, #1
+ 80045fe:	f012 fa9b 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+						OnStoreSTSCFGContextRequest();
+ 8004602:	f7ff fc09 	bl	8003e18 <OnStoreSTSCFGContextRequest>
+ 8004606:	e702      	b.n	800440e <USER_APP_AUTO_RESPONDER_Parse+0x1a>
+				if ((char)tlv_buf[CFG_CMD3] == 'H') { // "YVH"   REPORT FIRMWARE VERSION "YVH"
+ 8004608:	7883      	ldrb	r3, [r0, #2]
+ 800460a:	2b48      	cmp	r3, #72	; 0x48
+ 800460c:	d03c      	beq.n	8004688 <USER_APP_AUTO_RESPONDER_Parse+0x294>
+				if ((char)tlv_buf[CFG_CMD3] == 'C') { // "YVC"   REPORT NVM STORED CONFIG PARAMETERS  "YVC"
+ 800460e:	2b43      	cmp	r3, #67	; 0x43
+ 8004610:	f47f aefd 	bne.w	800440e <USER_APP_AUTO_RESPONDER_Parse+0x1a>
+					uint8_t cfg_in_nvm[YUNHORN_STS_MAX_NVM_CFG_SIZE]="";
+ 8004614:	2400      	movs	r4, #0
+ 8004616:	9404      	str	r4, [sp, #16]
+ 8004618:	223c      	movs	r2, #60	; 0x3c
+ 800461a:	4621      	mov	r1, r4
+ 800461c:	a805      	add	r0, sp, #20
+ 800461e:	f013 f84f 	bl	80176c0 <memset>
+					OnRestoreSTSCFGContextRequest((uint8_t *)cfg_in_nvm);
+ 8004622:	a804      	add	r0, sp, #16
+ 8004624:	f7ff fc7a 	bl	8003f1c <OnRestoreSTSCFGContextRequest>
+					memset(outbuf,sizeof(outbuf),0x30);
+ 8004628:	4d56      	ldr	r5, [pc, #344]	; (8004784 <USER_APP_AUTO_RESPONDER_Parse+0x390>)
+ 800462a:	2230      	movs	r2, #48	; 0x30
+ 800462c:	2180      	movs	r1, #128	; 0x80
+ 800462e:	4628      	mov	r0, r5
+ 8004630:	f013 f846 	bl	80176c0 <memset>
+					outbuf[i++] = (uint8_t) 'C';
+ 8004634:	2343      	movs	r3, #67	; 0x43
+ 8004636:	702b      	strb	r3, [r5, #0]
+					outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_MTM1];  				//MTM Code
+ 8004638:	f89d 3010 	ldrb.w	r3, [sp, #16]
+ 800463c:	706b      	strb	r3, [r5, #1]
+					outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_MTM2];  				//MTM Code
+ 800463e:	f89d 3011 	ldrb.w	r3, [sp, #17]
+ 8004642:	70ab      	strb	r3, [r5, #2]
+					outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_VER];  				//STS Version
+ 8004644:	f89d 3012 	ldrb.w	r3, [sp, #18]
+ 8004648:	70eb      	strb	r3, [r5, #3]
+					outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_HWV];  				//STS Version
+ 800464a:	f89d 3013 	ldrb.w	r3, [sp, #19]
+ 800464e:	712b      	strb	r3, [r5, #4]
+					outbuf[i++] = (uint8_t) (cfg_in_nvm[NVM_PERIODICITY]);  	//UPLINK Periodicity
+ 8004650:	f89d 3014 	ldrb.w	r3, [sp, #20]
+ 8004654:	716b      	strb	r3, [r5, #5]
+					outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_UNIT];  				//UPLINK Periodicity unit
+ 8004656:	f89d 3015 	ldrb.w	r3, [sp, #21]
+ 800465a:	71ab      	strb	r3, [r5, #6]
+					outbuf[i++] = (uint8_t) (cfg_in_nvm[NVM_SAMPLING]);  		//Heart-beat or SAMPLING Periodicity
+ 800465c:	f89d 3016 	ldrb.w	r3, [sp, #22]
+ 8004660:	71eb      	strb	r3, [r5, #7]
+					outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_S_UNIT];  			//Heart-beat or SAMPLING Periodicity unit
+ 8004662:	f89d 3017 	ldrb.w	r3, [sp, #23]
+ 8004666:	722b      	strb	r3, [r5, #8]
+					outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_WORK_MODE];			// STS WORK MODE
+ 8004668:	f89d 3018 	ldrb.w	r3, [sp, #24]
+ 800466c:	726b      	strb	r3, [r5, #9]
+					outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_SERVICE_MASK];  		//service mask
+ 800466e:	f89d 3019 	ldrb.w	r3, [sp, #25]
+ 8004672:	72ab      	strb	r3, [r5, #10]
+					outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_RESERVE01];  		//service mask
+ 8004674:	f89d 301a 	ldrb.w	r3, [sp, #26]
+ 8004678:	72eb      	strb	r3, [r5, #11]
+					outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_LEN];  				//length of following cfg value
+ 800467a:	f89d c01b 	ldrb.w	ip, [sp, #27]
+ 800467e:	f885 c00c 	strb.w	ip, [r5, #12]
+					for (uint8_t j=0; j < cfg_in_nvm[NVM_LEN]; j++) {
+ 8004682:	4623      	mov	r3, r4
+					outbuf[i++] = (uint8_t) cfg_in_nvm[NVM_LEN];  				//length of following cfg value
+ 8004684:	210d      	movs	r1, #13
+					for (uint8_t j=0; j < cfg_in_nvm[NVM_LEN]; j++) {
+ 8004686:	e01f      	b.n	80046c8 <USER_APP_AUTO_RESPONDER_Parse+0x2d4>
+					outbuf[i++] = (uint8_t) 'V';
+ 8004688:	4a3e      	ldr	r2, [pc, #248]	; (8004784 <USER_APP_AUTO_RESPONDER_Parse+0x390>)
+ 800468a:	2356      	movs	r3, #86	; 0x56
+ 800468c:	7013      	strb	r3, [r2, #0]
+					outbuf[i++] = (uint8_t) sts_mtmcode1;
+ 800468e:	2300      	movs	r3, #0
+ 8004690:	7053      	strb	r3, [r2, #1]
+					outbuf[i++] = (uint8_t) sts_mtmcode2;
+ 8004692:	2310      	movs	r3, #16
+ 8004694:	7093      	strb	r3, [r2, #2]
+					outbuf[i++] = (uint8_t) sts_version;
+ 8004696:	2001      	movs	r0, #1
+ 8004698:	70d0      	strb	r0, [r2, #3]
+					outbuf[i++] = (uint8_t) FirmwareVersion;
+ 800469a:	2303      	movs	r3, #3
+ 800469c:	7113      	strb	r3, [r2, #4]
+					outbuf[i++] = (uint8_t) MajorVer;
+ 800469e:	2317      	movs	r3, #23
+ 80046a0:	7153      	strb	r3, [r2, #5]
+					outbuf[i++] = (uint8_t) MinorVer;
+ 80046a2:	2306      	movs	r3, #6
+ 80046a4:	7193      	strb	r3, [r2, #6]
+					outbuf[i++] = (uint8_t) SubMinorVer;
+ 80046a6:	231c      	movs	r3, #28
+ 80046a8:	71d3      	strb	r3, [r2, #7]
+					STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf);
+ 80046aa:	2108      	movs	r1, #8
+ 80046ac:	f7ff fb32 	bl	8003d14 <STS_SENSOR_Upload_Message>
+ 80046b0:	e6ad      	b.n	800440e <USER_APP_AUTO_RESPONDER_Parse+0x1a>
+						outbuf[i++] = (uint8_t) (cfg_in_nvm[NVM_CFG_START+j]);
+ 80046b2:	1c48      	adds	r0, r1, #1
+ 80046b4:	f103 025c 	add.w	r2, r3, #92	; 0x5c
+ 80046b8:	446a      	add	r2, sp
+ 80046ba:	f812 4c40 	ldrb.w	r4, [r2, #-64]
+ 80046be:	4a31      	ldr	r2, [pc, #196]	; (8004784 <USER_APP_AUTO_RESPONDER_Parse+0x390>)
+ 80046c0:	5454      	strb	r4, [r2, r1]
+					for (uint8_t j=0; j < cfg_in_nvm[NVM_LEN]; j++) {
+ 80046c2:	3301      	adds	r3, #1
+ 80046c4:	b2db      	uxtb	r3, r3
+						outbuf[i++] = (uint8_t) (cfg_in_nvm[NVM_CFG_START+j]);
+ 80046c6:	b2c1      	uxtb	r1, r0
+					for (uint8_t j=0; j < cfg_in_nvm[NVM_LEN]; j++) {
+ 80046c8:	459c      	cmp	ip, r3
+ 80046ca:	d8f2      	bhi.n	80046b2 <USER_APP_AUTO_RESPONDER_Parse+0x2be>
+					STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf);
+ 80046cc:	4a2d      	ldr	r2, [pc, #180]	; (8004784 <USER_APP_AUTO_RESPONDER_Parse+0x390>)
+ 80046ce:	2001      	movs	r0, #1
+ 80046d0:	f7ff fb20 	bl	8003d14 <STS_SENSOR_Upload_Message>
+ 80046d4:	e69b      	b.n	800440e <USER_APP_AUTO_RESPONDER_Parse+0x1a>
+						if (((uint8_t)(tlv_buf[CFG_CMD3]-0x30) >= 0) && ((uint8_t)tlv_buf[CFG_CMD3]-0x30) <=9)
+ 80046d6:	7883      	ldrb	r3, [r0, #2]
+ 80046d8:	2b39      	cmp	r3, #57	; 0x39
+ 80046da:	d80f      	bhi.n	80046fc <USER_APP_AUTO_RESPONDER_Parse+0x308>
+							STS_SENSOR_Power_ON((uint8_t)(tlv_buf[CFG_CMD3]-0x30));
+ 80046dc:	3b30      	subs	r3, #48	; 0x30
+ 80046de:	b2d8      	uxtb	r0, r3
+ 80046e0:	f7fe feb0 	bl	8003444 <STS_SENSOR_Power_ON>
+							outbuf[i++] 	= (uint8_t) tlv_buf[CFG_CMD1];
+ 80046e4:	7823      	ldrb	r3, [r4, #0]
+ 80046e6:	4a27      	ldr	r2, [pc, #156]	; (8004784 <USER_APP_AUTO_RESPONDER_Parse+0x390>)
+ 80046e8:	7013      	strb	r3, [r2, #0]
+							outbuf[i++] 	= (uint8_t) tlv_buf[CFG_CMD2];
+ 80046ea:	7863      	ldrb	r3, [r4, #1]
+ 80046ec:	7053      	strb	r3, [r2, #1]
+							outbuf[i++] 	= (uint8_t) tlv_buf[CFG_CMD3];
+ 80046ee:	78a3      	ldrb	r3, [r4, #2]
+ 80046f0:	7093      	strb	r3, [r2, #2]
+							STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf);
+ 80046f2:	2103      	movs	r1, #3
+ 80046f4:	2001      	movs	r0, #1
+ 80046f6:	f7ff fb0d 	bl	8003d14 <STS_SENSOR_Upload_Message>
+ 80046fa:	e688      	b.n	800440e <USER_APP_AUTO_RESPONDER_Parse+0x1a>
+							STS_SENSOR_Upload_Config_Invalid_Message();
+ 80046fc:	f7ff fb7c 	bl	8003df8 <STS_SENSOR_Upload_Config_Invalid_Message>
+ 8004700:	e685      	b.n	800440e <USER_APP_AUTO_RESPONDER_Parse+0x1a>
+						if (((uint8_t)(tlv_buf[CFG_CMD3]-0x30) >= 0) && ((uint8_t)tlv_buf[CFG_CMD3]-0x30) <=9) {
+ 8004702:	7883      	ldrb	r3, [r0, #2]
+ 8004704:	2b39      	cmp	r3, #57	; 0x39
+ 8004706:	d80f      	bhi.n	8004728 <USER_APP_AUTO_RESPONDER_Parse+0x334>
+						STS_SENSOR_Power_OFF((tlv_buf[CFG_CMD3]-0x30));
+ 8004708:	3b30      	subs	r3, #48	; 0x30
+ 800470a:	b2d8      	uxtb	r0, r3
+ 800470c:	f7fe fea6 	bl	800345c <STS_SENSOR_Power_OFF>
+						outbuf[i++] 	= (uint8_t) tlv_buf[CFG_CMD1];
+ 8004710:	7823      	ldrb	r3, [r4, #0]
+ 8004712:	4a1c      	ldr	r2, [pc, #112]	; (8004784 <USER_APP_AUTO_RESPONDER_Parse+0x390>)
+ 8004714:	7013      	strb	r3, [r2, #0]
+						outbuf[i++] 	= (uint8_t) tlv_buf[CFG_CMD2];
+ 8004716:	7863      	ldrb	r3, [r4, #1]
+ 8004718:	7053      	strb	r3, [r2, #1]
+						outbuf[i++] 	= (uint8_t) tlv_buf[CFG_CMD3];
+ 800471a:	78a3      	ldrb	r3, [r4, #2]
+ 800471c:	7093      	strb	r3, [r2, #2]
+						STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf);
+ 800471e:	2103      	movs	r1, #3
+ 8004720:	2001      	movs	r0, #1
+ 8004722:	f7ff faf7 	bl	8003d14 <STS_SENSOR_Upload_Message>
+ 8004726:	e672      	b.n	800440e <USER_APP_AUTO_RESPONDER_Parse+0x1a>
+						STS_SENSOR_Upload_Config_Invalid_Message();
+ 8004728:	f7ff fb66 	bl	8003df8 <STS_SENSOR_Upload_Config_Invalid_Message>
+ 800472c:	e66f      	b.n	800440e <USER_APP_AUTO_RESPONDER_Parse+0x1a>
+						if (((uint8_t)(tlv_buf[CFG_CMD3]-0x30) >= 0) && ((uint8_t)tlv_buf[CFG_CMD3]-0x30) <=9) {
+ 800472e:	7883      	ldrb	r3, [r0, #2]
+ 8004730:	2b39      	cmp	r3, #57	; 0x39
+ 8004732:	d80f      	bhi.n	8004754 <USER_APP_AUTO_RESPONDER_Parse+0x360>
+						STS_SENSOR_MEMS_Reset((tlv_buf[CFG_CMD3]-0x30));
+ 8004734:	3b30      	subs	r3, #48	; 0x30
+ 8004736:	b2d8      	uxtb	r0, r3
+ 8004738:	f7fe fefc 	bl	8003534 <STS_SENSOR_MEMS_Reset>
+						outbuf[i++] 	= (uint8_t) tlv_buf[CFG_CMD1];
+ 800473c:	7823      	ldrb	r3, [r4, #0]
+ 800473e:	4a11      	ldr	r2, [pc, #68]	; (8004784 <USER_APP_AUTO_RESPONDER_Parse+0x390>)
+ 8004740:	7013      	strb	r3, [r2, #0]
+						outbuf[i++] 	= (uint8_t) tlv_buf[CFG_CMD2];
+ 8004742:	7863      	ldrb	r3, [r4, #1]
+ 8004744:	7053      	strb	r3, [r2, #1]
+						outbuf[i++] 	= (uint8_t) tlv_buf[CFG_CMD3];
+ 8004746:	78a3      	ldrb	r3, [r4, #2]
+ 8004748:	7093      	strb	r3, [r2, #2]
+						STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf);
+ 800474a:	2103      	movs	r1, #3
+ 800474c:	2001      	movs	r0, #1
+ 800474e:	f7ff fae1 	bl	8003d14 <STS_SENSOR_Upload_Message>
+ 8004752:	e65c      	b.n	800440e <USER_APP_AUTO_RESPONDER_Parse+0x1a>
+						STS_SENSOR_Upload_Config_Invalid_Message();
+ 8004754:	f7ff fb50 	bl	8003df8 <STS_SENSOR_Upload_Config_Invalid_Message>
+ 8004758:	e659      	b.n	800440e <USER_APP_AUTO_RESPONDER_Parse+0x1a>
+				if ((((char)tlv_buf[CFG_CMD3] >= '0') && ((char)tlv_buf[CFG_CMD3] <='9')
+ 800475a:	7882      	ldrb	r2, [r0, #2]
+ 800475c:	f1a2 0330 	sub.w	r3, r2, #48	; 0x30
+ 8004760:	b2db      	uxtb	r3, r3
+ 8004762:	2b09      	cmp	r3, #9
+ 8004764:	d80b      	bhi.n	800477e <USER_APP_AUTO_RESPONDER_Parse+0x38a>
+					&& ((char)tlv_buf[CFG_CMD4] >='0') && ((char)tlv_buf[CFG_CMD4] <='9')) &&
+ 8004766:	78c3      	ldrb	r3, [r0, #3]
+ 8004768:	2b2f      	cmp	r3, #47	; 0x2f
+ 800476a:	d908      	bls.n	800477e <USER_APP_AUTO_RESPONDER_Parse+0x38a>
+ 800476c:	2b39      	cmp	r3, #57	; 0x39
+ 800476e:	d806      	bhi.n	800477e <USER_APP_AUTO_RESPONDER_Parse+0x38a>
+						(((char)tlv_buf[CFG_CMD5] == 'M' || ((char)tlv_buf[CFG_CMD5] =='H') ||((char)tlv_buf[CFG_CMD5] =='S'))))
+ 8004770:	7901      	ldrb	r1, [r0, #4]
+					&& ((char)tlv_buf[CFG_CMD4] >='0') && ((char)tlv_buf[CFG_CMD4] <='9')) &&
+ 8004772:	294d      	cmp	r1, #77	; 0x4d
+ 8004774:	d018      	beq.n	80047a8 <USER_APP_AUTO_RESPONDER_Parse+0x3b4>
+						(((char)tlv_buf[CFG_CMD5] == 'M' || ((char)tlv_buf[CFG_CMD5] =='H') ||((char)tlv_buf[CFG_CMD5] =='S'))))
+ 8004776:	2948      	cmp	r1, #72	; 0x48
+ 8004778:	d016      	beq.n	80047a8 <USER_APP_AUTO_RESPONDER_Parse+0x3b4>
+ 800477a:	2953      	cmp	r1, #83	; 0x53
+ 800477c:	d014      	beq.n	80047a8 <USER_APP_AUTO_RESPONDER_Parse+0x3b4>
+						STS_SENSOR_Upload_Config_Invalid_Message();
+ 800477e:	f7ff fb3b 	bl	8003df8 <STS_SENSOR_Upload_Config_Invalid_Message>
+ 8004782:	e644      	b.n	800440e <USER_APP_AUTO_RESPONDER_Parse+0x1a>
+ 8004784:	20000dd4 	.word	0x20000dd4
+ 8004788:	81020409 	.word	0x81020409
+ 800478c:	20000f00 	.word	0x20000f00
+ 8004790:	51eb851f 	.word	0x51eb851f
+ 8004794:	08018064 	.word	0x08018064
+ 8004798:	0801807c 	.word	0x0801807c
+ 800479c:	20000c44 	.word	0x20000c44
+ 80047a0:	20000078 	.word	0x20000078
+ 80047a4:	080180a0 	.word	0x080180a0
+						uint32_t periodicity_length = (tlv_buf[CFG_CMD3]-0x30)*10+ (tlv_buf[CFG_CMD4]-0x30);
+ 80047a8:	3a30      	subs	r2, #48	; 0x30
+ 80047aa:	eb02 0282 	add.w	r2, r2, r2, lsl #2
+ 80047ae:	3b30      	subs	r3, #48	; 0x30
+ 80047b0:	eb03 0542 	add.w	r5, r3, r2, lsl #1
+						if ((char)tlv_buf[CFG_CMD5] == 'M') {
+ 80047b4:	294d      	cmp	r1, #77	; 0x4d
+ 80047b6:	d041      	beq.n	800483c <USER_APP_AUTO_RESPONDER_Parse+0x448>
+						} else if ((char)tlv_buf[CFG_CMD5] == 'H') {
+ 80047b8:	2948      	cmp	r1, #72	; 0x48
+ 80047ba:	d043      	beq.n	8004844 <USER_APP_AUTO_RESPONDER_Parse+0x450>
+						TxPeriodicity = periodicity_length*1000;	//translate to 1000ms=1s
+ 80047bc:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
+ 80047c0:	fb05 f000 	mul.w	r0, r5, r0
+ 80047c4:	4bab      	ldr	r3, [pc, #684]	; (8004a74 <USER_APP_AUTO_RESPONDER_Parse+0x680>)
+ 80047c6:	6018      	str	r0, [r3, #0]
+						HeartBeatPeriodicity = TxPeriodicity;
+ 80047c8:	4bab      	ldr	r3, [pc, #684]	; (8004a78 <USER_APP_AUTO_RESPONDER_Parse+0x684>)
+ 80047ca:	6018      	str	r0, [r3, #0]
+						OnTxPeriodicityChanged(TxPeriodicity);
+ 80047cc:	f7ff f86c 	bl	80038a8 <OnTxPeriodicityChanged>
+						outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD1];
+ 80047d0:	7823      	ldrb	r3, [r4, #0]
+ 80047d2:	4aaa      	ldr	r2, [pc, #680]	; (8004a7c <USER_APP_AUTO_RESPONDER_Parse+0x688>)
+ 80047d4:	7013      	strb	r3, [r2, #0]
+						outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD2];
+ 80047d6:	7863      	ldrb	r3, [r4, #1]
+ 80047d8:	7053      	strb	r3, [r2, #1]
+						outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD3];
+ 80047da:	78a3      	ldrb	r3, [r4, #2]
+ 80047dc:	7093      	strb	r3, [r2, #2]
+						outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD4];
+ 80047de:	78e3      	ldrb	r3, [r4, #3]
+ 80047e0:	70d3      	strb	r3, [r2, #3]
+						outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD5];
+ 80047e2:	7923      	ldrb	r3, [r4, #4]
+ 80047e4:	7113      	strb	r3, [r2, #4]
+						STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf);
+ 80047e6:	2105      	movs	r1, #5
+ 80047e8:	2001      	movs	r0, #1
+ 80047ea:	f7ff fa93 	bl	8003d14 <STS_SENSOR_Upload_Message>
+						sts_cfg_nvm.mtmcode1 = (uint8_t)sts_mtmcode1;
+ 80047ee:	4aa4      	ldr	r2, [pc, #656]	; (8004a80 <USER_APP_AUTO_RESPONDER_Parse+0x68c>)
+ 80047f0:	2600      	movs	r6, #0
+ 80047f2:	7016      	strb	r6, [r2, #0]
+						sts_cfg_nvm.mtmcode2 = (uint8_t)sts_mtmcode2;
+ 80047f4:	2310      	movs	r3, #16
+ 80047f6:	7053      	strb	r3, [r2, #1]
+						sts_cfg_nvm.version = (uint8_t)sts_version;
+ 80047f8:	2301      	movs	r3, #1
+ 80047fa:	7093      	strb	r3, [r2, #2]
+						sts_cfg_nvm.hardware_ver = (uint8_t)sts_hardware_ver;
+ 80047fc:	70d3      	strb	r3, [r2, #3]
+						sts_cfg_nvm.periodicity = (uint8_t)((tlv_buf[CFG_CMD3]-0x30)*10+(tlv_buf[CFG_CMD4]-0x30));
+ 80047fe:	78a1      	ldrb	r1, [r4, #2]
+ 8004800:	78e3      	ldrb	r3, [r4, #3]
+ 8004802:	3930      	subs	r1, #48	; 0x30
+ 8004804:	eb01 0181 	add.w	r1, r1, r1, lsl #2
+ 8004808:	eb03 0341 	add.w	r3, r3, r1, lsl #1
+ 800480c:	b2db      	uxtb	r3, r3
+ 800480e:	3b30      	subs	r3, #48	; 0x30
+ 8004810:	b2db      	uxtb	r3, r3
+ 8004812:	7113      	strb	r3, [r2, #4]
+						sts_cfg_nvm.unit = (uint8_t)tlv_buf[CFG_CMD5];
+ 8004814:	7923      	ldrb	r3, [r4, #4]
+ 8004816:	7153      	strb	r3, [r2, #5]
+						sts_cfg_nvm.work_mode = (uint8_t)sts_work_mode;
+ 8004818:	4b9a      	ldr	r3, [pc, #616]	; (8004a84 <USER_APP_AUTO_RESPONDER_Parse+0x690>)
+ 800481a:	781b      	ldrb	r3, [r3, #0]
+ 800481c:	b2db      	uxtb	r3, r3
+ 800481e:	7213      	strb	r3, [r2, #8]
+						sts_cfg_nvm.sts_service_mask = (uint8_t)sts_service_mask;
+ 8004820:	4b99      	ldr	r3, [pc, #612]	; (8004a88 <USER_APP_AUTO_RESPONDER_Parse+0x694>)
+ 8004822:	781b      	ldrb	r3, [r3, #0]
+ 8004824:	b2db      	uxtb	r3, r3
+ 8004826:	7253      	strb	r3, [r2, #9]
+						OnStoreSTSCFGContextRequest();
+ 8004828:	f7ff faf6 	bl	8003e18 <OnStoreSTSCFGContextRequest>
+						APP_LOG(TS_OFF, VLEVEL_M, "###### YUNHORN Periodicity Changed to [ %d ] Seconds\r\n", periodicity_length);
+ 800482c:	9500      	str	r5, [sp, #0]
+ 800482e:	4b97      	ldr	r3, [pc, #604]	; (8004a8c <USER_APP_AUTO_RESPONDER_Parse+0x698>)
+ 8004830:	4632      	mov	r2, r6
+ 8004832:	4631      	mov	r1, r6
+ 8004834:	2002      	movs	r0, #2
+ 8004836:	f012 f97f 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+					{
+ 800483a:	e5e8      	b.n	800440e <USER_APP_AUTO_RESPONDER_Parse+0x1a>
+							periodicity_length *= 60;
+ 800483c:	233c      	movs	r3, #60	; 0x3c
+ 800483e:	fb03 f505 	mul.w	r5, r3, r5
+ 8004842:	e7bb      	b.n	80047bc <USER_APP_AUTO_RESPONDER_Parse+0x3c8>
+							periodicity_length *= 3600;
+ 8004844:	f44f 6361 	mov.w	r3, #3600	; 0xe10
+ 8004848:	fb03 f505 	mul.w	r5, r3, r5
+ 800484c:	e7b6      	b.n	80047bc <USER_APP_AUTO_RESPONDER_Parse+0x3c8>
+				if ((((char)tlv_buf[CFG_CMD3] >= '0') && ((char)tlv_buf[CFG_CMD3] <='9')
+ 800484e:	7882      	ldrb	r2, [r0, #2]
+ 8004850:	f1a2 0330 	sub.w	r3, r2, #48	; 0x30
+ 8004854:	b2db      	uxtb	r3, r3
+ 8004856:	2b09      	cmp	r3, #9
+ 8004858:	d80b      	bhi.n	8004872 <USER_APP_AUTO_RESPONDER_Parse+0x47e>
+					&& ((char)tlv_buf[CFG_CMD4] >='0') && ((char)tlv_buf[CFG_CMD4] <='9')) &&
+ 800485a:	78c3      	ldrb	r3, [r0, #3]
+ 800485c:	2b2f      	cmp	r3, #47	; 0x2f
+ 800485e:	d908      	bls.n	8004872 <USER_APP_AUTO_RESPONDER_Parse+0x47e>
+ 8004860:	2b39      	cmp	r3, #57	; 0x39
+ 8004862:	d806      	bhi.n	8004872 <USER_APP_AUTO_RESPONDER_Parse+0x47e>
+						(((char)tlv_buf[CFG_CMD5] == 'M' || ((char)tlv_buf[CFG_CMD5] =='H') ||((char)tlv_buf[CFG_CMD5] =='S'))))
+ 8004864:	7901      	ldrb	r1, [r0, #4]
+					&& ((char)tlv_buf[CFG_CMD4] >='0') && ((char)tlv_buf[CFG_CMD4] <='9')) &&
+ 8004866:	294d      	cmp	r1, #77	; 0x4d
+ 8004868:	d006      	beq.n	8004878 <USER_APP_AUTO_RESPONDER_Parse+0x484>
+						(((char)tlv_buf[CFG_CMD5] == 'M' || ((char)tlv_buf[CFG_CMD5] =='H') ||((char)tlv_buf[CFG_CMD5] =='S'))))
+ 800486a:	2948      	cmp	r1, #72	; 0x48
+ 800486c:	d004      	beq.n	8004878 <USER_APP_AUTO_RESPONDER_Parse+0x484>
+ 800486e:	2953      	cmp	r1, #83	; 0x53
+ 8004870:	d002      	beq.n	8004878 <USER_APP_AUTO_RESPONDER_Parse+0x484>
+						STS_SENSOR_Upload_Config_Invalid_Message();
+ 8004872:	f7ff fac1 	bl	8003df8 <STS_SENSOR_Upload_Config_Invalid_Message>
+ 8004876:	e5ca      	b.n	800440e <USER_APP_AUTO_RESPONDER_Parse+0x1a>
+						uint32_t heart_beat_or_sampling_periodicity_length = (tlv_buf[CFG_CMD3]-0x30)*10+ (tlv_buf[CFG_CMD4]-0x30);
+ 8004878:	3a30      	subs	r2, #48	; 0x30
+ 800487a:	eb02 0282 	add.w	r2, r2, r2, lsl #2
+ 800487e:	3b30      	subs	r3, #48	; 0x30
+ 8004880:	eb03 0542 	add.w	r5, r3, r2, lsl #1
+						if ((char)tlv_buf[CFG_CMD5] == 'M') {
+ 8004884:	294d      	cmp	r1, #77	; 0x4d
+ 8004886:	d040      	beq.n	800490a <USER_APP_AUTO_RESPONDER_Parse+0x516>
+						} else if ((char)tlv_buf[CFG_CMD5] == 'H') {
+ 8004888:	2948      	cmp	r1, #72	; 0x48
+ 800488a:	d042      	beq.n	8004912 <USER_APP_AUTO_RESPONDER_Parse+0x51e>
+						HeartBeatPeriodicity = heart_beat_or_sampling_periodicity_length*1000;  //translate to 1000ms=1s
+ 800488c:	f44f 737a 	mov.w	r3, #1000	; 0x3e8
+ 8004890:	fb05 f303 	mul.w	r3, r5, r3
+ 8004894:	4a78      	ldr	r2, [pc, #480]	; (8004a78 <USER_APP_AUTO_RESPONDER_Parse+0x684>)
+ 8004896:	6013      	str	r3, [r2, #0]
+						OnYunhornSTSHeartBeatPeriodicityChanged(HeartBeatPeriodicity);
+ 8004898:	6810      	ldr	r0, [r2, #0]
+ 800489a:	f7ff f829 	bl	80038f0 <OnYunhornSTSHeartBeatPeriodicityChanged>
+						outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD1];
+ 800489e:	7823      	ldrb	r3, [r4, #0]
+ 80048a0:	4a76      	ldr	r2, [pc, #472]	; (8004a7c <USER_APP_AUTO_RESPONDER_Parse+0x688>)
+ 80048a2:	7013      	strb	r3, [r2, #0]
+						outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD2];
+ 80048a4:	7863      	ldrb	r3, [r4, #1]
+ 80048a6:	7053      	strb	r3, [r2, #1]
+						outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD3];
+ 80048a8:	78a3      	ldrb	r3, [r4, #2]
+ 80048aa:	7093      	strb	r3, [r2, #2]
+						outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD4];
+ 80048ac:	78e3      	ldrb	r3, [r4, #3]
+ 80048ae:	70d3      	strb	r3, [r2, #3]
+						outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD5];
+ 80048b0:	7923      	ldrb	r3, [r4, #4]
+ 80048b2:	7113      	strb	r3, [r2, #4]
+						STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf);
+ 80048b4:	2105      	movs	r1, #5
+ 80048b6:	2001      	movs	r0, #1
+ 80048b8:	f7ff fa2c 	bl	8003d14 <STS_SENSOR_Upload_Message>
+						sts_cfg_nvm.mtmcode1 = (uint8_t)sts_mtmcode1;
+ 80048bc:	4a70      	ldr	r2, [pc, #448]	; (8004a80 <USER_APP_AUTO_RESPONDER_Parse+0x68c>)
+ 80048be:	2600      	movs	r6, #0
+ 80048c0:	7016      	strb	r6, [r2, #0]
+						sts_cfg_nvm.mtmcode2 = (uint8_t)sts_mtmcode2;
+ 80048c2:	2310      	movs	r3, #16
+ 80048c4:	7053      	strb	r3, [r2, #1]
+						sts_cfg_nvm.version = (uint8_t)sts_version;
+ 80048c6:	2301      	movs	r3, #1
+ 80048c8:	7093      	strb	r3, [r2, #2]
+						sts_cfg_nvm.hardware_ver = (uint8_t)sts_hardware_ver;
+ 80048ca:	70d3      	strb	r3, [r2, #3]
+						sts_cfg_nvm.sampling = (uint8_t)((tlv_buf[CFG_CMD3]-0x30)*10+(tlv_buf[CFG_CMD4]-0x30));
+ 80048cc:	78a1      	ldrb	r1, [r4, #2]
+ 80048ce:	78e3      	ldrb	r3, [r4, #3]
+ 80048d0:	3930      	subs	r1, #48	; 0x30
+ 80048d2:	eb01 0181 	add.w	r1, r1, r1, lsl #2
+ 80048d6:	eb03 0341 	add.w	r3, r3, r1, lsl #1
+ 80048da:	b2db      	uxtb	r3, r3
+ 80048dc:	3b30      	subs	r3, #48	; 0x30
+ 80048de:	b2db      	uxtb	r3, r3
+ 80048e0:	7193      	strb	r3, [r2, #6]
+						sts_cfg_nvm.s_unit = (uint8_t)tlv_buf[CFG_CMD5];
+ 80048e2:	7923      	ldrb	r3, [r4, #4]
+ 80048e4:	71d3      	strb	r3, [r2, #7]
+						sts_cfg_nvm.work_mode = (uint8_t)sts_work_mode;
+ 80048e6:	4b67      	ldr	r3, [pc, #412]	; (8004a84 <USER_APP_AUTO_RESPONDER_Parse+0x690>)
+ 80048e8:	781b      	ldrb	r3, [r3, #0]
+ 80048ea:	b2db      	uxtb	r3, r3
+ 80048ec:	7213      	strb	r3, [r2, #8]
+						sts_cfg_nvm.sts_service_mask = (uint8_t)sts_service_mask;
+ 80048ee:	4b66      	ldr	r3, [pc, #408]	; (8004a88 <USER_APP_AUTO_RESPONDER_Parse+0x694>)
+ 80048f0:	781b      	ldrb	r3, [r3, #0]
+ 80048f2:	b2db      	uxtb	r3, r3
+ 80048f4:	7253      	strb	r3, [r2, #9]
+						OnStoreSTSCFGContextRequest();
+ 80048f6:	f7ff fa8f 	bl	8003e18 <OnStoreSTSCFGContextRequest>
+						APP_LOG(TS_OFF, VLEVEL_M, "###### YUNHORN Sampling Or Heart-Beat Interval Changed to [ %d ] Seconds\r\n", heart_beat_or_sampling_periodicity_length);
+ 80048fa:	9500      	str	r5, [sp, #0]
+ 80048fc:	4b64      	ldr	r3, [pc, #400]	; (8004a90 <USER_APP_AUTO_RESPONDER_Parse+0x69c>)
+ 80048fe:	4632      	mov	r2, r6
+ 8004900:	4631      	mov	r1, r6
+ 8004902:	2002      	movs	r0, #2
+ 8004904:	f012 f918 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+					{
+ 8004908:	e581      	b.n	800440e <USER_APP_AUTO_RESPONDER_Parse+0x1a>
+							heart_beat_or_sampling_periodicity_length *= 60;
+ 800490a:	233c      	movs	r3, #60	; 0x3c
+ 800490c:	fb03 f505 	mul.w	r5, r3, r5
+ 8004910:	e7bc      	b.n	800488c <USER_APP_AUTO_RESPONDER_Parse+0x498>
+							heart_beat_or_sampling_periodicity_length *= 3600;
+ 8004912:	f44f 6361 	mov.w	r3, #3600	; 0xe10
+ 8004916:	fb03 f505 	mul.w	r5, r3, r5
+ 800491a:	e7b7      	b.n	800488c <USER_APP_AUTO_RESPONDER_Parse+0x498>
+	else if (((char)tlv_buf[CFG_CMD1] == 'P') && (tlv_buf_size >= 3)) //   BEGIN OF PARAMETER CONFIG
+ 800491c:	2d02      	cmp	r5, #2
+ 800491e:	f67f ad73 	bls.w	8004408 <USER_APP_AUTO_RESPONDER_Parse+0x14>
+		switch ((char)tlv_buf[CFG_CMD2])   //BEGIN OF SWITCH TVL_BUF_P_MEMS_NO
+ 8004922:	7863      	ldrb	r3, [r4, #1]
+ 8004924:	3b30      	subs	r3, #48	; 0x30
+ 8004926:	2b01      	cmp	r3, #1
+ 8004928:	f63f ad71 	bhi.w	800440e <USER_APP_AUTO_RESPONDER_Parse+0x1a>
+				mems_ver = (uint8_t)(tlv_buf[CFG_CMD3]-0x30);
+ 800492c:	78a3      	ldrb	r3, [r4, #2]
+				if (mems_ver == sts_version)
+ 800492e:	2b31      	cmp	r3, #49	; 0x31
+ 8004930:	f47f ad6d 	bne.w	800440e <USER_APP_AUTO_RESPONDER_Parse+0x1a>
+					if (tlv_buf_size >= CFG_CMD_TOF_SIMPLE_SIZE)
+ 8004934:	2d0b      	cmp	r5, #11
+ 8004936:	d901      	bls.n	800493c <USER_APP_AUTO_RESPONDER_Parse+0x548>
+							for (j =0; j < CFG_CMD_TOF_SIMPLE_SIZE; j++)
+ 8004938:	2500      	movs	r5, #0
+ 800493a:	e018      	b.n	800496e <USER_APP_AUTO_RESPONDER_Parse+0x57a>
+					STS_SENSOR_Upload_Config_Invalid_Message();
+ 800493c:	f7ff fa5c 	bl	8003df8 <STS_SENSOR_Upload_Config_Invalid_Message>
+	uint8_t i=0, mems_ver, invalid_flag=1;
+ 8004940:	2400      	movs	r4, #0
+ 8004942:	e04d      	b.n	80049e0 <USER_APP_AUTO_RESPONDER_Parse+0x5ec>
+								sts_cfg_nvm.p[j] = (uint8_t)((tlv_buf[CFG_CMD4+j] - 0x30)&0xff);
+ 8004944:	1ce9      	adds	r1, r5, #3
+ 8004946:	5c63      	ldrb	r3, [r4, r1]
+ 8004948:	3b30      	subs	r3, #48	; 0x30
+ 800494a:	b2db      	uxtb	r3, r3
+ 800494c:	4a4c      	ldr	r2, [pc, #304]	; (8004a80 <USER_APP_AUTO_RESPONDER_Parse+0x68c>)
+ 800494e:	442a      	add	r2, r5
+ 8004950:	7313      	strb	r3, [r2, #12]
+								APP_LOG(TS_OFF,VLEVEL_L,"\r\n tlv_buf %d = %02x cfg->p[%d]=%02x \r\n",
+ 8004952:	5c63      	ldrb	r3, [r4, r1]
+ 8004954:	7b12      	ldrb	r2, [r2, #12]
+ 8004956:	9203      	str	r2, [sp, #12]
+ 8004958:	9502      	str	r5, [sp, #8]
+ 800495a:	9301      	str	r3, [sp, #4]
+ 800495c:	9500      	str	r5, [sp, #0]
+ 800495e:	4b4d      	ldr	r3, [pc, #308]	; (8004a94 <USER_APP_AUTO_RESPONDER_Parse+0x6a0>)
+ 8004960:	2200      	movs	r2, #0
+ 8004962:	4611      	mov	r1, r2
+ 8004964:	2001      	movs	r0, #1
+ 8004966:	f012 f8e7 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+							for (j =0; j < CFG_CMD_TOF_SIMPLE_SIZE; j++)
+ 800496a:	3501      	adds	r5, #1
+ 800496c:	b2ed      	uxtb	r5, r5
+ 800496e:	2d0b      	cmp	r5, #11
+ 8004970:	d9e8      	bls.n	8004944 <USER_APP_AUTO_RESPONDER_Parse+0x550>
+							STS_SENSOR_NVM_CFG_SIMPLE();
+ 8004972:	f7fe fe01 	bl	8003578 <STS_SENSOR_NVM_CFG_SIMPLE>
+							outbuf[i++] 	= (char) 'P';
+ 8004976:	4a41      	ldr	r2, [pc, #260]	; (8004a7c <USER_APP_AUTO_RESPONDER_Parse+0x688>)
+ 8004978:	2350      	movs	r3, #80	; 0x50
+ 800497a:	7013      	strb	r3, [r2, #0]
+							outbuf[i++] 	= sts_mtmcode1;
+ 800497c:	2300      	movs	r3, #0
+ 800497e:	7053      	strb	r3, [r2, #1]
+							outbuf[i++] 	= sts_mtmcode2;
+ 8004980:	2110      	movs	r1, #16
+ 8004982:	7091      	strb	r1, [r2, #2]
+							outbuf[i++] 	= sts_version;
+ 8004984:	2101      	movs	r1, #1
+ 8004986:	70d1      	strb	r1, [r2, #3]
+							outbuf[i++] 	= sts_hardware_ver;
+ 8004988:	7111      	strb	r1, [r2, #4]
+ 800498a:	2405      	movs	r4, #5
+							for (j=0; j < CFG_CMD_TOF_SIMPLE_SIZE; j++)
+ 800498c:	e009      	b.n	80049a2 <USER_APP_AUTO_RESPONDER_Parse+0x5ae>
+								outbuf[i++] = (uint8_t)(sts_cfg_nvm.p[j]+0x30)&0xff;
+ 800498e:	4a3c      	ldr	r2, [pc, #240]	; (8004a80 <USER_APP_AUTO_RESPONDER_Parse+0x68c>)
+ 8004990:	441a      	add	r2, r3
+ 8004992:	7b12      	ldrb	r2, [r2, #12]
+ 8004994:	1c61      	adds	r1, r4, #1
+ 8004996:	3230      	adds	r2, #48	; 0x30
+ 8004998:	4838      	ldr	r0, [pc, #224]	; (8004a7c <USER_APP_AUTO_RESPONDER_Parse+0x688>)
+ 800499a:	5502      	strb	r2, [r0, r4]
+							for (j=0; j < CFG_CMD_TOF_SIMPLE_SIZE; j++)
+ 800499c:	3301      	adds	r3, #1
+ 800499e:	b2db      	uxtb	r3, r3
+								outbuf[i++] = (uint8_t)(sts_cfg_nvm.p[j]+0x30)&0xff;
+ 80049a0:	b2cc      	uxtb	r4, r1
+							for (j=0; j < CFG_CMD_TOF_SIMPLE_SIZE; j++)
+ 80049a2:	2b0b      	cmp	r3, #11
+ 80049a4:	d9f3      	bls.n	800498e <USER_APP_AUTO_RESPONDER_Parse+0x59a>
+							APP_LOG(TS_OFF, VLEVEL_L, "###### RSS Simple CFG=%s\r\n",*outbuf);
+ 80049a6:	4b35      	ldr	r3, [pc, #212]	; (8004a7c <USER_APP_AUTO_RESPONDER_Parse+0x688>)
+ 80049a8:	781b      	ldrb	r3, [r3, #0]
+ 80049aa:	9300      	str	r3, [sp, #0]
+ 80049ac:	4b3a      	ldr	r3, [pc, #232]	; (8004a98 <USER_APP_AUTO_RESPONDER_Parse+0x6a4>)
+ 80049ae:	2200      	movs	r2, #0
+ 80049b0:	4611      	mov	r1, r2
+ 80049b2:	2001      	movs	r0, #1
+ 80049b4:	f012 f8c0 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+							sts_cfg_nvm.mtmcode1 = sts_mtmcode1;
+ 80049b8:	4b31      	ldr	r3, [pc, #196]	; (8004a80 <USER_APP_AUTO_RESPONDER_Parse+0x68c>)
+ 80049ba:	2200      	movs	r2, #0
+ 80049bc:	701a      	strb	r2, [r3, #0]
+							sts_cfg_nvm.mtmcode2 = sts_mtmcode2;
+ 80049be:	2210      	movs	r2, #16
+ 80049c0:	705a      	strb	r2, [r3, #1]
+							sts_cfg_nvm.version = sts_version;
+ 80049c2:	2201      	movs	r2, #1
+ 80049c4:	709a      	strb	r2, [r3, #2]
+							sts_cfg_nvm.hardware_ver = sts_hardware_ver;
+ 80049c6:	70da      	strb	r2, [r3, #3]
+							sts_cfg_nvm.work_mode = sts_work_mode;
+ 80049c8:	4a2e      	ldr	r2, [pc, #184]	; (8004a84 <USER_APP_AUTO_RESPONDER_Parse+0x690>)
+ 80049ca:	7812      	ldrb	r2, [r2, #0]
+ 80049cc:	b2d2      	uxtb	r2, r2
+ 80049ce:	721a      	strb	r2, [r3, #8]
+							sts_cfg_nvm.sts_service_mask = sts_service_mask;
+ 80049d0:	4a2d      	ldr	r2, [pc, #180]	; (8004a88 <USER_APP_AUTO_RESPONDER_Parse+0x694>)
+ 80049d2:	7812      	ldrb	r2, [r2, #0]
+ 80049d4:	b2d2      	uxtb	r2, r2
+ 80049d6:	725a      	strb	r2, [r3, #9]
+							sts_cfg_nvm.length = CFG_CMD_TOF_SIMPLE_SIZE;
+ 80049d8:	220c      	movs	r2, #12
+ 80049da:	72da      	strb	r2, [r3, #11]
+							OnStoreSTSCFGContextRequest();
+ 80049dc:	f7ff fa1c 	bl	8003e18 <OnStoreSTSCFGContextRequest>
+				STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf);
+ 80049e0:	4a26      	ldr	r2, [pc, #152]	; (8004a7c <USER_APP_AUTO_RESPONDER_Parse+0x688>)
+ 80049e2:	4621      	mov	r1, r4
+ 80049e4:	2001      	movs	r0, #1
+ 80049e6:	f7ff f995 	bl	8003d14 <STS_SENSOR_Upload_Message>
+ 80049ea:	e510      	b.n	800440e <USER_APP_AUTO_RESPONDER_Parse+0x1a>
+	else if (((char)tlv_buf[CFG_CMD1] == 'A') && ((char)tlv_buf[CFG_CMD2] == 'C') && (tlv_buf_size == (YUNHORN_STS_AC_CODE_SIZE+2)))  // BEGIN OF *** BOARD LEVEL AUTHORIZATION CODE
+ 80049ec:	7863      	ldrb	r3, [r4, #1]
+ 80049ee:	2b43      	cmp	r3, #67	; 0x43
+ 80049f0:	f47f ad0d 	bne.w	800440e <USER_APP_AUTO_RESPONDER_Parse+0x1a>
+ 80049f4:	2d16      	cmp	r5, #22
+ 80049f6:	f47f ad0a 	bne.w	800440e <USER_APP_AUTO_RESPONDER_Parse+0x1a>
+			for (uint8_t j=0; j< YUNHORN_STS_AC_CODE_SIZE; j++)
+ 80049fa:	2300      	movs	r3, #0
+ 80049fc:	e005      	b.n	8004a0a <USER_APP_AUTO_RESPONDER_Parse+0x616>
+				sts_ac_code[j] = (uint8_t) tlv_buf[2+j];
+ 80049fe:	1c9a      	adds	r2, r3, #2
+ 8004a00:	5ca1      	ldrb	r1, [r4, r2]
+ 8004a02:	4a26      	ldr	r2, [pc, #152]	; (8004a9c <USER_APP_AUTO_RESPONDER_Parse+0x6a8>)
+ 8004a04:	54d1      	strb	r1, [r2, r3]
+			for (uint8_t j=0; j< YUNHORN_STS_AC_CODE_SIZE; j++)
+ 8004a06:	3301      	adds	r3, #1
+ 8004a08:	b2db      	uxtb	r3, r3
+ 8004a0a:	2b13      	cmp	r3, #19
+ 8004a0c:	d9f7      	bls.n	80049fe <USER_APP_AUTO_RESPONDER_Parse+0x60a>
+			STS_YUNHORN_RFAC_HANDLE_PROCESS();
+ 8004a0e:	f7ff f92b 	bl	8003c68 <STS_YUNHORN_RFAC_HANDLE_PROCESS>
+			if ((hmac_result.ac_pass == 1U))
+ 8004a12:	4b23      	ldr	r3, [pc, #140]	; (8004aa0 <USER_APP_AUTO_RESPONDER_Parse+0x6ac>)
+ 8004a14:	7d5b      	ldrb	r3, [r3, #21]
+ 8004a16:	2b01      	cmp	r3, #1
+ 8004a18:	d01a      	beq.n	8004a50 <USER_APP_AUTO_RESPONDER_Parse+0x65c>
+				sts_service_mask = STS_SERVICE_MASK_L2;
+ 8004a1a:	4b1b      	ldr	r3, [pc, #108]	; (8004a88 <USER_APP_AUTO_RESPONDER_Parse+0x694>)
+ 8004a1c:	2202      	movs	r2, #2
+ 8004a1e:	701a      	strb	r2, [r3, #0]
+				for (uint8_t j=0; j < YUNHORN_STS_AC_CODE_SIZE; j++)
+ 8004a20:	2300      	movs	r3, #0
+ 8004a22:	4619      	mov	r1, r3
+ 8004a24:	e01f      	b.n	8004a66 <USER_APP_AUTO_RESPONDER_Parse+0x672>
+					sts_cfg_nvm.ac[j] = sts_ac_code[j];
+ 8004a26:	4a1d      	ldr	r2, [pc, #116]	; (8004a9c <USER_APP_AUTO_RESPONDER_Parse+0x6a8>)
+ 8004a28:	5cd1      	ldrb	r1, [r2, r3]
+ 8004a2a:	b2c9      	uxtb	r1, r1
+ 8004a2c:	4a14      	ldr	r2, [pc, #80]	; (8004a80 <USER_APP_AUTO_RESPONDER_Parse+0x68c>)
+ 8004a2e:	441a      	add	r2, r3
+ 8004a30:	f882 102c 	strb.w	r1, [r2, #44]	; 0x2c
+				for (uint8_t j=0; j < YUNHORN_STS_AC_CODE_SIZE; j++)
+ 8004a34:	3301      	adds	r3, #1
+ 8004a36:	b2db      	uxtb	r3, r3
+ 8004a38:	2b13      	cmp	r3, #19
+ 8004a3a:	d9f4      	bls.n	8004a26 <USER_APP_AUTO_RESPONDER_Parse+0x632>
+				sts_service_mask = STS_SERVICE_MASK_L0;
+ 8004a3c:	4b12      	ldr	r3, [pc, #72]	; (8004a88 <USER_APP_AUTO_RESPONDER_Parse+0x694>)
+ 8004a3e:	2200      	movs	r2, #0
+ 8004a40:	701a      	strb	r2, [r3, #0]
+				sts_cfg_nvm.sts_service_mask = sts_service_mask;
+ 8004a42:	781b      	ldrb	r3, [r3, #0]
+ 8004a44:	b2db      	uxtb	r3, r3
+ 8004a46:	4a0e      	ldr	r2, [pc, #56]	; (8004a80 <USER_APP_AUTO_RESPONDER_Parse+0x68c>)
+ 8004a48:	7253      	strb	r3, [r2, #9]
+				OnStoreSTSCFGContextRequest();
+ 8004a4a:	f7ff f9e5 	bl	8003e18 <OnStoreSTSCFGContextRequest>
+ 8004a4e:	e7e7      	b.n	8004a20 <USER_APP_AUTO_RESPONDER_Parse+0x62c>
+				for (uint8_t j=0; j < YUNHORN_STS_AC_CODE_SIZE; j++)
+ 8004a50:	2300      	movs	r3, #0
+ 8004a52:	e7f1      	b.n	8004a38 <USER_APP_AUTO_RESPONDER_Parse+0x644>
+				outbuf[i++] = (uint8_t) tlv_buf[j];
+ 8004a54:	1c4a      	adds	r2, r1, #1
+ 8004a56:	f814 c003 	ldrb.w	ip, [r4, r3]
+ 8004a5a:	4808      	ldr	r0, [pc, #32]	; (8004a7c <USER_APP_AUTO_RESPONDER_Parse+0x688>)
+ 8004a5c:	f800 c001 	strb.w	ip, [r0, r1]
+			for (uint8_t j=0; j <(tlv_buf_size) ; j++) {
+ 8004a60:	3301      	adds	r3, #1
+ 8004a62:	b2db      	uxtb	r3, r3
+				outbuf[i++] = (uint8_t) tlv_buf[j];
+ 8004a64:	b2d1      	uxtb	r1, r2
+			for (uint8_t j=0; j <(tlv_buf_size) ; j++) {
+ 8004a66:	42ab      	cmp	r3, r5
+ 8004a68:	d3f4      	bcc.n	8004a54 <USER_APP_AUTO_RESPONDER_Parse+0x660>
+			STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (char*)outbuf);
+ 8004a6a:	4a04      	ldr	r2, [pc, #16]	; (8004a7c <USER_APP_AUTO_RESPONDER_Parse+0x688>)
+ 8004a6c:	2001      	movs	r0, #1
+ 8004a6e:	f7ff f951 	bl	8003d14 <STS_SENSOR_Upload_Message>
+} // END OF  USER_APP_AUTO_RESPONDER_Parse
+ 8004a72:	e4cc      	b.n	800440e <USER_APP_AUTO_RESPONDER_Parse+0x1a>
+ 8004a74:	20000074 	.word	0x20000074
+ 8004a78:	2000000c 	.word	0x2000000c
+ 8004a7c:	20000dd4 	.word	0x20000dd4
+ 8004a80:	20000078 	.word	0x20000078
+ 8004a84:	20000e6c 	.word	0x20000e6c
+ 8004a88:	20000c44 	.word	0x20000c44
+ 8004a8c:	080180cc 	.word	0x080180cc
+ 8004a90:	08018104 	.word	0x08018104
+ 8004a94:	08018150 	.word	0x08018150
+ 8004a98:	08018178 	.word	0x08018178
+ 8004a9c:	20000e58 	.word	0x20000e58
+ 8004aa0:	20000ab4 	.word	0x20000ab4
+
+08004aa4 <OnRxData>:
+  if (params != NULL)
+ 8004aa4:	2900      	cmp	r1, #0
+ 8004aa6:	d067      	beq.n	8004b78 <OnRxData+0xd4>
+{
+ 8004aa8:	b570      	push	{r4, r5, r6, lr}
+ 8004aaa:	b086      	sub	sp, #24
+ 8004aac:	4604      	mov	r4, r0
+ 8004aae:	460d      	mov	r5, r1
+    UTIL_TIMER_Start(&RxLedTimer);
+ 8004ab0:	4832      	ldr	r0, [pc, #200]	; (8004b7c <OnRxData+0xd8>)
+ 8004ab2:	f012 fbed 	bl	8017290 <UTIL_TIMER_Start>
+    if (params->IsMcpsIndication)
+ 8004ab6:	782e      	ldrb	r6, [r5, #0]
+ 8004ab8:	b156      	cbz	r6, 8004ad0 <OnRxData+0x2c>
+      if (appData != NULL)
+ 8004aba:	2c00      	cmp	r4, #0
+ 8004abc:	d043      	beq.n	8004b46 <OnRxData+0xa2>
+        RxPort = appData->Port;
+ 8004abe:	7826      	ldrb	r6, [r4, #0]
+        if (appData->Buffer != NULL)
+ 8004ac0:	6860      	ldr	r0, [r4, #4]
+ 8004ac2:	b128      	cbz	r0, 8004ad0 <OnRxData+0x2c>
+          switch (appData->Port)
+ 8004ac4:	2e03      	cmp	r6, #3
+ 8004ac6:	d008      	beq.n	8004ada <OnRxData+0x36>
+ 8004ac8:	2e0a      	cmp	r6, #10
+ 8004aca:	d01c      	beq.n	8004b06 <OnRxData+0x62>
+ 8004acc:	2e02      	cmp	r6, #2
+ 8004ace:	d031      	beq.n	8004b34 <OnRxData+0x90>
+    if (params->RxSlot < RX_SLOT_NONE)
+ 8004ad0:	7c2b      	ldrb	r3, [r5, #16]
+ 8004ad2:	2b05      	cmp	r3, #5
+ 8004ad4:	d939      	bls.n	8004b4a <OnRxData+0xa6>
+}
+ 8004ad6:	b006      	add	sp, #24
+ 8004ad8:	bd70      	pop	{r4, r5, r6, pc}
+              if (appData->BufferSize == 1)
+ 8004ada:	7863      	ldrb	r3, [r4, #1]
+ 8004adc:	2b01      	cmp	r3, #1
+ 8004ade:	d1f7      	bne.n	8004ad0 <OnRxData+0x2c>
+                switch (appData->Buffer[0])
+ 8004ae0:	7803      	ldrb	r3, [r0, #0]
+ 8004ae2:	2b01      	cmp	r3, #1
+ 8004ae4:	d007      	beq.n	8004af6 <OnRxData+0x52>
+ 8004ae6:	2b02      	cmp	r3, #2
+ 8004ae8:	d009      	beq.n	8004afe <OnRxData+0x5a>
+ 8004aea:	2b00      	cmp	r3, #0
+ 8004aec:	d1f0      	bne.n	8004ad0 <OnRxData+0x2c>
+                    LmHandlerRequestClass(CLASS_A);
+ 8004aee:	2000      	movs	r0, #0
+ 8004af0:	f008 f9da 	bl	800cea8 <LmHandlerRequestClass>
+                    break;
+ 8004af4:	e7ec      	b.n	8004ad0 <OnRxData+0x2c>
+                    LmHandlerRequestClass(CLASS_B);
+ 8004af6:	2001      	movs	r0, #1
+ 8004af8:	f008 f9d6 	bl	800cea8 <LmHandlerRequestClass>
+                    break;
+ 8004afc:	e7e8      	b.n	8004ad0 <OnRxData+0x2c>
+                    LmHandlerRequestClass(CLASS_C);
+ 8004afe:	2002      	movs	r0, #2
+ 8004b00:	f008 f9d2 	bl	800cea8 <LmHandlerRequestClass>
+                    break;
+ 8004b04:	e7e4      	b.n	8004ad0 <OnRxData+0x2c>
+              if (appData->BufferSize == 1)
+ 8004b06:	7863      	ldrb	r3, [r4, #1]
+ 8004b08:	2b01      	cmp	r3, #1
+ 8004b0a:	d1e1      	bne.n	8004ad0 <OnRxData+0x2c>
+                AppLedStateOn = appData->Buffer[0] & 0x01;
+ 8004b0c:	7803      	ldrb	r3, [r0, #0]
+ 8004b0e:	f003 0301 	and.w	r3, r3, #1
+ 8004b12:	4a1b      	ldr	r2, [pc, #108]	; (8004b80 <OnRxData+0xdc>)
+ 8004b14:	7013      	strb	r3, [r2, #0]
+                if (AppLedStateOn == RESET)
+ 8004b16:	b933      	cbnz	r3, 8004b26 <OnRxData+0x82>
+                  APP_LOG(TS_OFF, VLEVEL_H, "LED OFF\r\n");
+ 8004b18:	4b1a      	ldr	r3, [pc, #104]	; (8004b84 <OnRxData+0xe0>)
+ 8004b1a:	2200      	movs	r2, #0
+ 8004b1c:	4611      	mov	r1, r2
+ 8004b1e:	2003      	movs	r0, #3
+ 8004b20:	f012 f80a 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+ 8004b24:	e7d4      	b.n	8004ad0 <OnRxData+0x2c>
+                  APP_LOG(TS_OFF, VLEVEL_H, "LED ON\r\n");
+ 8004b26:	4b18      	ldr	r3, [pc, #96]	; (8004b88 <OnRxData+0xe4>)
+ 8004b28:	2200      	movs	r2, #0
+ 8004b2a:	4611      	mov	r1, r2
+ 8004b2c:	2003      	movs	r0, #3
+ 8004b2e:	f012 f803 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+ 8004b32:	e7cd      	b.n	8004ad0 <OnRxData+0x2c>
+			  if (appData->BufferSize != 1)
+ 8004b34:	7861      	ldrb	r1, [r4, #1]
+ 8004b36:	2901      	cmp	r1, #1
+ 8004b38:	d0ca      	beq.n	8004ad0 <OnRxData+0x2c>
+				if (appData->BufferSize < 128) {
+ 8004b3a:	f011 0f80 	tst.w	r1, #128	; 0x80
+ 8004b3e:	d1c7      	bne.n	8004ad0 <OnRxData+0x2c>
+					USER_APP_AUTO_RESPONDER_Parse((char*)appData->Buffer, appData->BufferSize);
+ 8004b40:	f7ff fc58 	bl	80043f4 <USER_APP_AUTO_RESPONDER_Parse>
+ 8004b44:	e7c4      	b.n	8004ad0 <OnRxData+0x2c>
+  uint8_t RxPort = 0;
+ 8004b46:	2600      	movs	r6, #0
+ 8004b48:	e7c2      	b.n	8004ad0 <OnRxData+0x2c>
+      APP_LOG(TS_OFF, VLEVEL_H, "###### D/L FRAME:%04d | PORT:%d | DR:%d | SLOT:%s | RSSI:%d | SNR:%d\r\n",
+ 8004b4a:	f995 2008 	ldrsb.w	r2, [r5, #8]
+ 8004b4e:	f995 1009 	ldrsb.w	r1, [r5, #9]
+ 8004b52:	f995 000a 	ldrsb.w	r0, [r5, #10]
+ 8004b56:	9005      	str	r0, [sp, #20]
+ 8004b58:	9104      	str	r1, [sp, #16]
+ 8004b5a:	490c      	ldr	r1, [pc, #48]	; (8004b8c <OnRxData+0xe8>)
+ 8004b5c:	f851 3023 	ldr.w	r3, [r1, r3, lsl #2]
+ 8004b60:	9303      	str	r3, [sp, #12]
+ 8004b62:	9202      	str	r2, [sp, #8]
+ 8004b64:	9601      	str	r6, [sp, #4]
+ 8004b66:	68eb      	ldr	r3, [r5, #12]
+ 8004b68:	9300      	str	r3, [sp, #0]
+ 8004b6a:	4b09      	ldr	r3, [pc, #36]	; (8004b90 <OnRxData+0xec>)
+ 8004b6c:	2200      	movs	r2, #0
+ 8004b6e:	4611      	mov	r1, r2
+ 8004b70:	2003      	movs	r0, #3
+ 8004b72:	f011 ffe1 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+}
+ 8004b76:	e7ae      	b.n	8004ad6 <OnRxData+0x32>
+ 8004b78:	4770      	bx	lr
+ 8004b7a:	bf00      	nop
+ 8004b7c:	20000d54 	.word	0x20000d54
+ 8004b80:	20000d3a 	.word	0x20000d3a
+ 8004b84:	08018194 	.word	0x08018194
+ 8004b88:	080181a0 	.word	0x080181a0
+ 8004b8c:	08018214 	.word	0x08018214
+ 8004b90:	080181ac 	.word	0x080181ac
+
+08004b94 <LoraInfo_Init>:
+/* USER CODE END EV */
+
+/* Exported functions --------------------------------------------------------*/
+void LoraInfo_Init(void)
+{
+  loraInfo.ContextManagement = 0;
+ 8004b94:	4b04      	ldr	r3, [pc, #16]	; (8004ba8 <LoraInfo_Init+0x14>)
+ 8004b96:	2200      	movs	r2, #0
+ 8004b98:	601a      	str	r2, [r3, #0]
+  loraInfo.Region = 0;
+ 8004b9a:	605a      	str	r2, [r3, #4]
+  loraInfo.ClassB = 0;
+ 8004b9c:	609a      	str	r2, [r3, #8]
+  loraInfo.Kms = 0;
+ 8004b9e:	60da      	str	r2, [r3, #12]
+  /* USER CODE BEGIN LoraInfo_Init_1 */
+
+  /* USER CODE END LoraInfo_Init_1 */
+
+#ifdef  REGION_AS923
+  loraInfo.Region |= (1 << LORAMAC_REGION_AS923);
+ 8004ba0:	2201      	movs	r2, #1
+ 8004ba2:	605a      	str	r2, [r3, #4]
+#endif /* LORAWAN_KMS */
+
+#if (!defined (CONTEXT_MANAGEMENT_ENABLED) || (CONTEXT_MANAGEMENT_ENABLED == 0))
+  loraInfo.ContextManagement = 0;
+#else /* CONTEXT_MANAGEMENT_ENABLED == 1 */
+  loraInfo.ContextManagement = 1;
+ 8004ba4:	601a      	str	r2, [r3, #0]
+#endif /* CONTEXT_MANAGEMENT_ENABLED */
+
+  /* USER CODE BEGIN LoraInfo_Init_2 */
+
+  /* USER CODE END LoraInfo_Init_2 */
+}
+ 8004ba6:	4770      	bx	lr
+ 8004ba8:	20000e70 	.word	0x20000e70
+
+08004bac <LoraInfo_GetPtr>:
+{
+  /* USER CODE BEGIN LoraInfo_GetPtr */
+
+  /* USER CODE END LoraInfo_GetPtr */
+  return &loraInfo;
+}
+ 8004bac:	4800      	ldr	r0, [pc, #0]	; (8004bb0 <LoraInfo_GetPtr+0x4>)
+ 8004bae:	4770      	bx	lr
+ 8004bb0:	20000e70 	.word	0x20000e70
+
+08004bb4 <RBI_Init>:
+
+/* USER CODE END PFP */
+
+/* Exported functions --------------------------------------------------------*/
+int32_t RBI_Init(void)
+{
+ 8004bb4:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8004bb8:	b088      	sub	sp, #32
+  /* and define USE_BSP_DRIVER in the preprocessor definitions  or in platform.h */
+  return BSP_RADIO_Init();
+#elif defined(YUNHORN_STS_WLE5CCxx)
+  /* should be calling BSP_RADIO_Init() but not supported by MX*/
+
+  GPIO_InitTypeDef  gpio_init_structure = {0};
+ 8004bba:	2400      	movs	r4, #0
+ 8004bbc:	9403      	str	r4, [sp, #12]
+ 8004bbe:	9404      	str	r4, [sp, #16]
+ 8004bc0:	9405      	str	r4, [sp, #20]
+ 8004bc2:	9406      	str	r4, [sp, #24]
+ 8004bc4:	9407      	str	r4, [sp, #28]
+  SET_BIT(RCC->AHB2ENR, Periphs);
+ 8004bc6:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8004bca:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 8004bcc:	f042 0202 	orr.w	r2, r2, #2
+ 8004bd0:	64da      	str	r2, [r3, #76]	; 0x4c
+  tmpreg = READ_BIT(RCC->AHB2ENR, Periphs);
+ 8004bd2:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 8004bd4:	f002 0202 	and.w	r2, r2, #2
+ 8004bd8:	9202      	str	r2, [sp, #8]
+  (void)tmpreg;
+ 8004bda:	9a02      	ldr	r2, [sp, #8]
+  SET_BIT(RCC->AHB2ENR, Periphs);
+ 8004bdc:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 8004bde:	f042 0204 	orr.w	r2, r2, #4
+ 8004be2:	64da      	str	r2, [r3, #76]	; 0x4c
+  tmpreg = READ_BIT(RCC->AHB2ENR, Periphs);
+ 8004be4:	6cdb      	ldr	r3, [r3, #76]	; 0x4c
+ 8004be6:	f003 0304 	and.w	r3, r3, #4
+ 8004bea:	9301      	str	r3, [sp, #4]
+  (void)tmpreg;
+ 8004bec:	9b01      	ldr	r3, [sp, #4]
+#if defined(YUNHORN_STS_RF_CHANNEL_SWITCH)
+    /* Enable the Radio Switch Clock */
+    RF_SW_CTRL1_GPIO_CLK_ENABLE();
+    RF_SW_CTRL2_GPIO_CLK_ENABLE();
+    /* Configure the Radio Switch pin */
+    gpio_init_structure.Pin   = RF_SW_CTRL1_PIN;
+ 8004bee:	f44f 7680 	mov.w	r6, #256	; 0x100
+ 8004bf2:	9603      	str	r6, [sp, #12]
+    gpio_init_structure.Mode  = GPIO_MODE_OUTPUT_PP;
+ 8004bf4:	2301      	movs	r3, #1
+ 8004bf6:	9304      	str	r3, [sp, #16]
+    gpio_init_structure.Pull  = GPIO_NOPULL;
+    gpio_init_structure.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+ 8004bf8:	2303      	movs	r3, #3
+ 8004bfa:	9306      	str	r3, [sp, #24]
+    HAL_GPIO_Init(RF_SW_CTRL1_GPIO_PORT, &gpio_init_structure);
+ 8004bfc:	4d0d      	ldr	r5, [pc, #52]	; (8004c34 <RBI_Init+0x80>)
+ 8004bfe:	a903      	add	r1, sp, #12
+ 8004c00:	4628      	mov	r0, r5
+ 8004c02:	f004 fc23 	bl	800944c <HAL_GPIO_Init>
+    gpio_init_structure.Pin = RF_SW_CTRL2_PIN;
+ 8004c06:	f44f 5800 	mov.w	r8, #8192	; 0x2000
+ 8004c0a:	f8cd 800c 	str.w	r8, [sp, #12]
+    HAL_GPIO_Init(RF_SW_CTRL2_GPIO_PORT, &gpio_init_structure);
+ 8004c0e:	4f0a      	ldr	r7, [pc, #40]	; (8004c38 <RBI_Init+0x84>)
+ 8004c10:	a903      	add	r1, sp, #12
+ 8004c12:	4638      	mov	r0, r7
+ 8004c14:	f004 fc1a 	bl	800944c <HAL_GPIO_Init>
+
+    HAL_GPIO_WritePin(RF_SW_CTRL2_GPIO_PORT, RF_SW_CTRL2_PIN, GPIO_PIN_RESET);
+ 8004c18:	4622      	mov	r2, r4
+ 8004c1a:	4641      	mov	r1, r8
+ 8004c1c:	4638      	mov	r0, r7
+ 8004c1e:	f004 fd6c 	bl	80096fa <HAL_GPIO_WritePin>
+    HAL_GPIO_WritePin(RF_SW_CTRL1_GPIO_PORT, RF_SW_CTRL1_PIN, GPIO_PIN_RESET);
+ 8004c22:	4622      	mov	r2, r4
+ 8004c24:	4631      	mov	r1, r6
+ 8004c26:	4628      	mov	r0, r5
+ 8004c28:	f004 fd67 	bl	80096fa <HAL_GPIO_WritePin>
+  /* USER CODE END RBI_Init_2 */
+#endif /* USE_BSP_DRIVER  || YUNHORN_STS_WLE5CCxx  */
+  /* USER CODE BEGIN RBI_Init_3 */
+
+  /* USER CODE END RBI_Init_3 */
+}
+ 8004c2c:	4620      	mov	r0, r4
+ 8004c2e:	b008      	add	sp, #32
+ 8004c30:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 8004c34:	48000400 	.word	0x48000400
+ 8004c38:	48000800 	.word	0x48000800
+
+08004c3c <RBI_ConfigRFSwitch>:
+
+  /* USER CODE END RBI_DeInit_3 */
+}
+
+int32_t RBI_ConfigRFSwitch(RBI_Switch_TypeDef Config)
+{
+ 8004c3c:	b508      	push	{r3, lr}
+  /* code generated by MX does not support BSP */
+  /* In order to use BSP driver, add the correspondent files in the IDE workspace */
+  /* and define USE_BSP_DRIVER in the preprocessor definitions  or in platform.h */
+  return BSP_RADIO_ConfigRFSwitch((BSP_RADIO_Switch_TypeDef) Config);
+#elif defined(YUNHORN_STS_WLE5CCxx)
+  switch (Config)
+ 8004c3e:	2803      	cmp	r0, #3
+ 8004c40:	d80f      	bhi.n	8004c62 <RBI_ConfigRFSwitch+0x26>
+ 8004c42:	e8df f000 	tbb	[pc, r0]
+ 8004c46:	1002      	.short	0x1002
+ 8004c48:	2a1d      	.short	0x2a1d
+  {
+    case RBI_SWITCH_OFF:
+    {
+#if defined(YUNHORN_STS_RF_CHANNEL_SWITCH)
+        /* Turn off switch */
+        HAL_GPIO_WritePin(RF_SW_CTRL1_GPIO_PORT, RF_SW_CTRL1_PIN, GPIO_PIN_RESET);
+ 8004c4a:	2200      	movs	r2, #0
+ 8004c4c:	f44f 7180 	mov.w	r1, #256	; 0x100
+ 8004c50:	4818      	ldr	r0, [pc, #96]	; (8004cb4 <RBI_ConfigRFSwitch+0x78>)
+ 8004c52:	f004 fd52 	bl	80096fa <HAL_GPIO_WritePin>
+        HAL_GPIO_WritePin(RF_SW_CTRL2_GPIO_PORT, RF_SW_CTRL2_PIN, GPIO_PIN_RESET);
+ 8004c56:	2200      	movs	r2, #0
+ 8004c58:	f44f 5100 	mov.w	r1, #8192	; 0x2000
+ 8004c5c:	4816      	ldr	r0, [pc, #88]	; (8004cb8 <RBI_ConfigRFSwitch+0x7c>)
+ 8004c5e:	f004 fd4c 	bl	80096fa <HAL_GPIO_WritePin>
+  /* USER CODE END RBI_ConfigRFSwitch_2 */
+#endif /* USE_BSP_DRIVER  || YUNHORN_STS_WLE5CCxx */
+  /* USER CODE BEGIN RBI_ConfigRFSwitch_3 */
+
+  /* USER CODE END RBI_ConfigRFSwitch_3 */
+}
+ 8004c62:	2000      	movs	r0, #0
+ 8004c64:	bd08      	pop	{r3, pc}
+        HAL_GPIO_WritePin(RF_SW_CTRL1_GPIO_PORT, RF_SW_CTRL1_PIN, GPIO_PIN_SET);
+ 8004c66:	2201      	movs	r2, #1
+ 8004c68:	f44f 7180 	mov.w	r1, #256	; 0x100
+ 8004c6c:	4811      	ldr	r0, [pc, #68]	; (8004cb4 <RBI_ConfigRFSwitch+0x78>)
+ 8004c6e:	f004 fd44 	bl	80096fa <HAL_GPIO_WritePin>
+        HAL_GPIO_WritePin(RF_SW_CTRL2_GPIO_PORT, RF_SW_CTRL2_PIN, GPIO_PIN_RESET);
+ 8004c72:	2200      	movs	r2, #0
+ 8004c74:	f44f 5100 	mov.w	r1, #8192	; 0x2000
+ 8004c78:	480f      	ldr	r0, [pc, #60]	; (8004cb8 <RBI_ConfigRFSwitch+0x7c>)
+ 8004c7a:	f004 fd3e 	bl	80096fa <HAL_GPIO_WritePin>
+      break;
+ 8004c7e:	e7f0      	b.n	8004c62 <RBI_ConfigRFSwitch+0x26>
+        HAL_GPIO_WritePin(RF_SW_CTRL1_GPIO_PORT, RF_SW_CTRL1_PIN, GPIO_PIN_RESET);
+ 8004c80:	2200      	movs	r2, #0
+ 8004c82:	f44f 7180 	mov.w	r1, #256	; 0x100
+ 8004c86:	480b      	ldr	r0, [pc, #44]	; (8004cb4 <RBI_ConfigRFSwitch+0x78>)
+ 8004c88:	f004 fd37 	bl	80096fa <HAL_GPIO_WritePin>
+        HAL_GPIO_WritePin(RF_SW_CTRL2_GPIO_PORT, RF_SW_CTRL2_PIN, GPIO_PIN_SET);
+ 8004c8c:	2201      	movs	r2, #1
+ 8004c8e:	f44f 5100 	mov.w	r1, #8192	; 0x2000
+ 8004c92:	4809      	ldr	r0, [pc, #36]	; (8004cb8 <RBI_ConfigRFSwitch+0x7c>)
+ 8004c94:	f004 fd31 	bl	80096fa <HAL_GPIO_WritePin>
+      break;
+ 8004c98:	e7e3      	b.n	8004c62 <RBI_ConfigRFSwitch+0x26>
+        HAL_GPIO_WritePin(RF_SW_CTRL1_GPIO_PORT, RF_SW_CTRL1_PIN, GPIO_PIN_RESET);
+ 8004c9a:	2200      	movs	r2, #0
+ 8004c9c:	f44f 7180 	mov.w	r1, #256	; 0x100
+ 8004ca0:	4804      	ldr	r0, [pc, #16]	; (8004cb4 <RBI_ConfigRFSwitch+0x78>)
+ 8004ca2:	f004 fd2a 	bl	80096fa <HAL_GPIO_WritePin>
+        HAL_GPIO_WritePin(RF_SW_CTRL2_GPIO_PORT, RF_SW_CTRL2_PIN, GPIO_PIN_SET);
+ 8004ca6:	2201      	movs	r2, #1
+ 8004ca8:	f44f 5100 	mov.w	r1, #8192	; 0x2000
+ 8004cac:	4802      	ldr	r0, [pc, #8]	; (8004cb8 <RBI_ConfigRFSwitch+0x7c>)
+ 8004cae:	f004 fd24 	bl	80096fa <HAL_GPIO_WritePin>
+      break;
+ 8004cb2:	e7d6      	b.n	8004c62 <RBI_ConfigRFSwitch+0x26>
+ 8004cb4:	48000400 	.word	0x48000400
+ 8004cb8:	48000800 	.word	0x48000800
+
+08004cbc <RBI_GetTxConfig>:
+  /* USER CODE END RBI_GetTxConfig_2 */
+#endif /* USE_BSP_DRIVER  || YUNHORN_STS_WLE5CCxx */
+  /* USER CODE BEGIN RBI_GetTxConfig_3 */
+
+  /* USER CODE END RBI_GetTxConfig_3 */
+}
+ 8004cbc:	2002      	movs	r0, #2
+ 8004cbe:	4770      	bx	lr
+
+08004cc0 <RBI_IsTCXO>:
+  /* USER CODE END RBI_IsTCXO_2 */
+#endif /* USE_BSP_DRIVER   || YUNHORN_STS_WLE5CCxx */
+  /* USER CODE BEGIN RBI_IsTCXO_3 */
+
+  /* USER CODE END RBI_IsTCXO_3 */
+}
+ 8004cc0:	2000      	movs	r0, #0
+ 8004cc2:	4770      	bx	lr
+
+08004cc4 <RBI_IsDCDC>:
+  /* USER CODE END RBI_IsDCDC_2 */
+#endif /* USE_BSP_DRIVER   || YUNHORN_STS_WLE5CCxx */
+  /* USER CODE BEGIN RBI_IsDCDC_3 */
+
+  /* USER CODE END RBI_IsDCDC_3 */
+}
+ 8004cc4:	2001      	movs	r0, #1
+ 8004cc6:	4770      	bx	lr
+
+08004cc8 <RBI_GetRFOMaxPowerConfig>:
+#else
+  /* 2/ Or implement RBI_RBI_GetRFOMaxPowerConfig here */
+  int32_t ret = 0;
+  /* USER CODE BEGIN RBI_GetRFOMaxPowerConfig_2 */
+  /* #warning user to provide its board code or to call his board driver functions */
+  if (Config == RBI_RFO_LP_MAXPOWER)
+ 8004cc8:	b908      	cbnz	r0, 8004cce <RBI_GetRFOMaxPowerConfig+0x6>
+  {
+    ret = 15; /*dBm*/
+ 8004cca:	200f      	movs	r0, #15
+ 8004ccc:	4770      	bx	lr
+  }
+  else
+  {
+    ret = 22; /*dBm*/
+ 8004cce:	2016      	movs	r0, #22
+  }
+  /* USER CODE END RBI_GetRFOMaxPowerConfig_2 */
+  return ret;
+#endif  /* USE_BSP_DRIVER  */
+}
+ 8004cd0:	4770      	bx	lr
+	...
+
+08004cd4 <Reset_Handler>:
+
+  .section .text.Reset_Handler
+  .weak Reset_Handler
+  .type Reset_Handler, %function
+Reset_Handler:
+  ldr   r0, =_estack
+ 8004cd4:	480d      	ldr	r0, [pc, #52]	; (8004d0c <LoopForever+0x2>)
+  mov   sp, r0          /* set stack pointer */
+ 8004cd6:	4685      	mov	sp, r0
+
+/* Call the clock system initialization function.*/
+  bl  SystemInit
+ 8004cd8:	f003 fa66 	bl	80081a8 <SystemInit>
+
+/* Copy the data segment initializers from flash to SRAM */
+  ldr r0, =_sdata
+ 8004cdc:	480c      	ldr	r0, [pc, #48]	; (8004d10 <LoopForever+0x6>)
+  ldr r1, =_edata
+ 8004cde:	490d      	ldr	r1, [pc, #52]	; (8004d14 <LoopForever+0xa>)
+  ldr r2, =_sidata
+ 8004ce0:	4a0d      	ldr	r2, [pc, #52]	; (8004d18 <LoopForever+0xe>)
+  movs r3, #0
+ 8004ce2:	2300      	movs	r3, #0
+  b LoopCopyDataInit
+ 8004ce4:	e002      	b.n	8004cec <LoopCopyDataInit>
+
+08004ce6 <CopyDataInit>:
+
+CopyDataInit:
+  ldr r4, [r2, r3]
+ 8004ce6:	58d4      	ldr	r4, [r2, r3]
+  str r4, [r0, r3]
+ 8004ce8:	50c4      	str	r4, [r0, r3]
+  adds r3, r3, #4
+ 8004cea:	3304      	adds	r3, #4
+
+08004cec <LoopCopyDataInit>:
+
+LoopCopyDataInit:
+  adds r4, r0, r3
+ 8004cec:	18c4      	adds	r4, r0, r3
+  cmp r4, r1
+ 8004cee:	428c      	cmp	r4, r1
+  bcc CopyDataInit
+ 8004cf0:	d3f9      	bcc.n	8004ce6 <CopyDataInit>
+
+/* Zero fill the bss segment. */
+  ldr r2, =_sbss
+ 8004cf2:	4a0a      	ldr	r2, [pc, #40]	; (8004d1c <LoopForever+0x12>)
+  ldr r4, =_ebss
+ 8004cf4:	4c0a      	ldr	r4, [pc, #40]	; (8004d20 <LoopForever+0x16>)
+  movs r3, #0
+ 8004cf6:	2300      	movs	r3, #0
+  b LoopFillZerobss
+ 8004cf8:	e001      	b.n	8004cfe <LoopFillZerobss>
+
+08004cfa <FillZerobss>:
+
+FillZerobss:
+  str  r3, [r2]
+ 8004cfa:	6013      	str	r3, [r2, #0]
+  adds r2, r2, #4
+ 8004cfc:	3204      	adds	r2, #4
+
+08004cfe <LoopFillZerobss>:
+
+LoopFillZerobss:
+  cmp r2, r4
+ 8004cfe:	42a2      	cmp	r2, r4
+  bcc FillZerobss
+ 8004d00:	d3fb      	bcc.n	8004cfa <FillZerobss>
+
+/* Call static constructors */
+  bl __libc_init_array
+ 8004d02:	f012 fce5 	bl	80176d0 <__libc_init_array>
+/* Call the application's entry point.*/
+  bl main
+ 8004d06:	f7fd fd31 	bl	800276c <main>
+
+08004d0a <LoopForever>:
+
+LoopForever:
+    b LoopForever
+ 8004d0a:	e7fe      	b.n	8004d0a <LoopForever>
+  ldr   r0, =_estack
+ 8004d0c:	20010000 	.word	0x20010000
+  ldr r0, =_sdata
+ 8004d10:	20000000 	.word	0x20000000
+  ldr r1, =_edata
+ 8004d14:	200008cc 	.word	0x200008cc
+  ldr r2, =_sidata
+ 8004d18:	08018f40 	.word	0x08018f40
+  ldr r2, =_sbss
+ 8004d1c:	200008cc 	.word	0x200008cc
+  ldr r4, =_ebss
+ 8004d20:	20002e44 	.word	0x20002e44
+
+08004d24 <ADC_IRQHandler>:
+ * @retval : None
+*/
+  .section .text.Default_Handler,"ax",%progbits
+Default_Handler:
+Infinite_Loop:
+  b Infinite_Loop
+ 8004d24:	e7fe      	b.n	8004d24 <ADC_IRQHandler>
+	...
+
+08004d28 <_I2cFailRecover>:
+ *
+ * We may get reset in middle of an i2c access (h/w reset button, debug or f/w load)
+ * hence some agent on bus may be in middle of a transaction and can create issue or even prevent starting (SDA is low)
+ * this routine does use gpio to manipulate and recover i2c bus line in all cases.
+ */
+static void _I2cFailRecover(){
+ 8004d28:	b530      	push	{r4, r5, lr}
+ 8004d2a:	b089      	sub	sp, #36	; 0x24
+  SET_BIT(RCC->AHB2ENR, Periphs);
+ 8004d2c:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8004d30:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 8004d32:	f042 0201 	orr.w	r2, r2, #1
+ 8004d36:	64da      	str	r2, [r3, #76]	; 0x4c
+  tmpreg = READ_BIT(RCC->AHB2ENR, Periphs);
+ 8004d38:	6cdb      	ldr	r3, [r3, #76]	; 0x4c
+ 8004d3a:	f003 0301 	and.w	r3, r3, #1
+ 8004d3e:	9301      	str	r3, [sp, #4]
+  (void)tmpreg;
+ 8004d40:	9b01      	ldr	r3, [sp, #4]
+    // by setting SDA high and toggling SCL at least 10 time we ensure whatever agent and state
+    // all agent should end up seeing a "stop" and bus get back to an known idle i2c  bus state
+
+    // Enable I/O
+    __GPIOA_CLK_ENABLE();
+    HAL_GPIO_WritePin(I2C2_SCL_PORT, I2C2_SCL_PIN, GPIO_PIN_SET);
+ 8004d42:	2201      	movs	r2, #1
+ 8004d44:	f44f 5180 	mov.w	r1, #4096	; 0x1000
+ 8004d48:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8004d4c:	f004 fcd5 	bl	80096fa <HAL_GPIO_WritePin>
+    HAL_GPIO_WritePin(I2C2_SDA_PORT, I2C2_SDA_PIN, GPIO_PIN_SET);
+ 8004d50:	2201      	movs	r2, #1
+ 8004d52:	f44f 6100 	mov.w	r1, #2048	; 0x800
+ 8004d56:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8004d5a:	f004 fcce 	bl	80096fa <HAL_GPIO_WritePin>
+    GPIO_InitStruct.Pin = I2C2_SCL_PIN|I2C2_SDA_PIN ;
+ 8004d5e:	f44f 53c0 	mov.w	r3, #6144	; 0x1800
+ 8004d62:	9303      	str	r3, [sp, #12]
+    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
+ 8004d64:	2311      	movs	r3, #17
+ 8004d66:	9304      	str	r3, [sp, #16]
+    GPIO_InitStruct.Pull = GPIO_PULLUP;
+ 8004d68:	2301      	movs	r3, #1
+ 8004d6a:	9305      	str	r3, [sp, #20]
+    HAL_GPIO_Init(I2C2_SDA_PORT, &GPIO_InitStruct);
+ 8004d6c:	a903      	add	r1, sp, #12
+ 8004d6e:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8004d72:	f004 fb6b 	bl	800944c <HAL_GPIO_Init>
+    int i, nRetry=0;
+ 8004d76:	2500      	movs	r5, #0
+ 8004d78:	e021      	b.n	8004dbe <_I2cFailRecover+0x96>
+    //TODO we could do this faster by not using HAL delay 1ms for clk timing
+    do{
+        for( i=0; i<10; i++){
+            HAL_GPIO_WritePin(I2C2_SCL_PORT, I2C2_SCL_PIN, GPIO_PIN_RESET);
+ 8004d7a:	2200      	movs	r2, #0
+ 8004d7c:	f44f 5180 	mov.w	r1, #4096	; 0x1000
+ 8004d80:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8004d84:	f004 fcb9 	bl	80096fa <HAL_GPIO_WritePin>
+            HAL_Delay(1);
+ 8004d88:	2001      	movs	r0, #1
+ 8004d8a:	f7fd ff91 	bl	8002cb0 <HAL_Delay>
+            HAL_GPIO_WritePin(I2C2_SCL_PORT, I2C2_SCL_PIN, GPIO_PIN_SET);
+ 8004d8e:	2201      	movs	r2, #1
+ 8004d90:	f44f 5180 	mov.w	r1, #4096	; 0x1000
+ 8004d94:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8004d98:	f004 fcaf 	bl	80096fa <HAL_GPIO_WritePin>
+            HAL_Delay(1);
+ 8004d9c:	2001      	movs	r0, #1
+ 8004d9e:	f7fd ff87 	bl	8002cb0 <HAL_Delay>
+        for( i=0; i<10; i++){
+ 8004da2:	3401      	adds	r4, #1
+ 8004da4:	2c09      	cmp	r4, #9
+ 8004da6:	dde8      	ble.n	8004d7a <_I2cFailRecover+0x52>
+        }
+//        if( HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_9) == 0 ){
+//            static int RetryRecover;
+//            RetryRecover++;
+//        }
+    }while(HAL_GPIO_ReadPin(I2C2_SDA_PORT, I2C2_SDA_PIN) == 0 && nRetry++<7);
+ 8004da8:	f44f 6100 	mov.w	r1, #2048	; 0x800
+ 8004dac:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8004db0:	f004 fc9c 	bl	80096ec <HAL_GPIO_ReadPin>
+ 8004db4:	b928      	cbnz	r0, 8004dc2 <_I2cFailRecover+0x9a>
+ 8004db6:	1c6b      	adds	r3, r5, #1
+ 8004db8:	2d06      	cmp	r5, #6
+ 8004dba:	dc02      	bgt.n	8004dc2 <_I2cFailRecover+0x9a>
+ 8004dbc:	461d      	mov	r5, r3
+        for( i=0; i<10; i++){
+ 8004dbe:	2400      	movs	r4, #0
+ 8004dc0:	e7f0      	b.n	8004da4 <_I2cFailRecover+0x7c>
+
+    if( HAL_GPIO_ReadPin(I2C2_SDA_PORT, I2C2_SDA_PIN) == 0 ){
+ 8004dc2:	f44f 6100 	mov.w	r1, #2048	; 0x800
+ 8004dc6:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8004dca:	f004 fc8f 	bl	80096ec <HAL_GPIO_ReadPin>
+ 8004dce:	b108      	cbz	r0, 8004dd4 <_I2cFailRecover+0xac>
+            HAL_Delay(33);
+            HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET);
+            HAL_Delay(33*20);
+        }while(1);
+    }
+}
+ 8004dd0:	b009      	add	sp, #36	; 0x24
+ 8004dd2:	bd30      	pop	{r4, r5, pc}
+  SET_BIT(RCC->AHB2ENR, Periphs);
+ 8004dd4:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8004dd8:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 8004dda:	f042 0201 	orr.w	r2, r2, #1
+ 8004dde:	64da      	str	r2, [r3, #76]	; 0x4c
+  tmpreg = READ_BIT(RCC->AHB2ENR, Periphs);
+ 8004de0:	6cdb      	ldr	r3, [r3, #76]	; 0x4c
+ 8004de2:	f003 0301 	and.w	r3, r3, #1
+ 8004de6:	9302      	str	r3, [sp, #8]
+  (void)tmpreg;
+ 8004de8:	9b02      	ldr	r3, [sp, #8]
+        GPIO_InitStruct.Pin = LED1_Pin ;
+ 8004dea:	2304      	movs	r3, #4
+ 8004dec:	9303      	str	r3, [sp, #12]
+        GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ 8004dee:	2301      	movs	r3, #1
+ 8004df0:	9304      	str	r3, [sp, #16]
+        GPIO_InitStruct.Pull = GPIO_NOPULL;
+ 8004df2:	2300      	movs	r3, #0
+ 8004df4:	9305      	str	r3, [sp, #20]
+        HAL_GPIO_Init(LED1_GPIO_Port, &GPIO_InitStruct);
+ 8004df6:	a903      	add	r1, sp, #12
+ 8004df8:	4812      	ldr	r0, [pc, #72]	; (8004e44 <_I2cFailRecover+0x11c>)
+ 8004dfa:	f004 fb27 	bl	800944c <HAL_GPIO_Init>
+            HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET);
+ 8004dfe:	4c11      	ldr	r4, [pc, #68]	; (8004e44 <_I2cFailRecover+0x11c>)
+ 8004e00:	2201      	movs	r2, #1
+ 8004e02:	2104      	movs	r1, #4
+ 8004e04:	4620      	mov	r0, r4
+ 8004e06:	f004 fc78 	bl	80096fa <HAL_GPIO_WritePin>
+            HAL_Delay(33);
+ 8004e0a:	2021      	movs	r0, #33	; 0x21
+ 8004e0c:	f7fd ff50 	bl	8002cb0 <HAL_Delay>
+            HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET);
+ 8004e10:	2200      	movs	r2, #0
+ 8004e12:	2104      	movs	r1, #4
+ 8004e14:	4620      	mov	r0, r4
+ 8004e16:	f004 fc70 	bl	80096fa <HAL_GPIO_WritePin>
+            HAL_Delay(33);
+ 8004e1a:	2021      	movs	r0, #33	; 0x21
+ 8004e1c:	f7fd ff48 	bl	8002cb0 <HAL_Delay>
+            HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET);
+ 8004e20:	2201      	movs	r2, #1
+ 8004e22:	2104      	movs	r1, #4
+ 8004e24:	4620      	mov	r0, r4
+ 8004e26:	f004 fc68 	bl	80096fa <HAL_GPIO_WritePin>
+            HAL_Delay(33);
+ 8004e2a:	2021      	movs	r0, #33	; 0x21
+ 8004e2c:	f7fd ff40 	bl	8002cb0 <HAL_Delay>
+            HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET);
+ 8004e30:	2200      	movs	r2, #0
+ 8004e32:	2104      	movs	r1, #4
+ 8004e34:	4620      	mov	r0, r4
+ 8004e36:	f004 fc60 	bl	80096fa <HAL_GPIO_WritePin>
+            HAL_Delay(33*20);
+ 8004e3a:	f44f 7025 	mov.w	r0, #660	; 0x294
+ 8004e3e:	f7fd ff37 	bl	8002cb0 <HAL_Delay>
+        do{
+ 8004e42:	e7dc      	b.n	8004dfe <_I2cFailRecover+0xd6>
+ 8004e44:	48000400 	.word	0x48000400
+
+08004e48 <XWL55_WLE5_53L0X_I2C2Configure>:
+
+
+
+int XWL55_WLE5_53L0X_I2C2Configure() {
+ 8004e48:	b510      	push	{r4, lr}
+ 8004e4a:	b088      	sub	sp, #32
+    int status;
+    GPIO_InitTypeDef GPIO_InitStruct;
+
+    _I2cFailRecover();
+ 8004e4c:	f7ff ff6c 	bl	8004d28 <_I2cFailRecover>
+  SET_BIT(RCC->AHB2ENR, Periphs);
+ 8004e50:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8004e54:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 8004e56:	f042 0201 	orr.w	r2, r2, #1
+ 8004e5a:	64da      	str	r2, [r3, #76]	; 0x4c
+  tmpreg = READ_BIT(RCC->AHB2ENR, Periphs);
+ 8004e5c:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 8004e5e:	f002 0201 	and.w	r2, r2, #1
+ 8004e62:	9202      	str	r2, [sp, #8]
+  (void)tmpreg;
+ 8004e64:	9a02      	ldr	r2, [sp, #8]
+  SET_BIT(RCC->APB1ENR1, Periphs);
+ 8004e66:	6d9a      	ldr	r2, [r3, #88]	; 0x58
+ 8004e68:	f442 0280 	orr.w	r2, r2, #4194304	; 0x400000
+ 8004e6c:	659a      	str	r2, [r3, #88]	; 0x58
+  tmpreg = READ_BIT(RCC->APB1ENR1, Periphs);
+ 8004e6e:	6d9b      	ldr	r3, [r3, #88]	; 0x58
+ 8004e70:	f403 0380 	and.w	r3, r3, #4194304	; 0x400000
+ 8004e74:	9301      	str	r3, [sp, #4]
+  (void)tmpreg;
+ 8004e76:	9b01      	ldr	r3, [sp, #4]
+     PB9     ------> I2C1_SDA
+     *I2C2 GPIO configuration
+     PA12	-------> I2C2_SCL
+     PA11	-------> I2C2_SDA
+     */
+    GPIO_InitStruct.Pin = I2C2_SCL_PIN | I2C2_SDA_PIN;
+ 8004e78:	f44f 53c0 	mov.w	r3, #6144	; 0x1800
+ 8004e7c:	9303      	str	r3, [sp, #12]
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
+ 8004e7e:	2312      	movs	r3, #18
+ 8004e80:	9304      	str	r3, [sp, #16]
+    GPIO_InitStruct.Pull = GPIO_NOPULL;
+ 8004e82:	2400      	movs	r4, #0
+ 8004e84:	9405      	str	r4, [sp, #20]
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+ 8004e86:	2303      	movs	r3, #3
+ 8004e88:	9306      	str	r3, [sp, #24]
+    GPIO_InitStruct.Alternate = GPIO_AF4_I2C2;
+ 8004e8a:	2304      	movs	r3, #4
+ 8004e8c:	9307      	str	r3, [sp, #28]
+    HAL_GPIO_Init(I2C2_SDA_PORT, &GPIO_InitStruct);
+ 8004e8e:	a903      	add	r1, sp, #12
+ 8004e90:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8004e94:	f004 fada 	bl	800944c <HAL_GPIO_Init>
+
+    XNUCLEO53L1A1_hi2c.Instance = I2C2;
+ 8004e98:	4807      	ldr	r0, [pc, #28]	; (8004eb8 <XWL55_WLE5_53L0X_I2C2Configure+0x70>)
+ 8004e9a:	4b08      	ldr	r3, [pc, #32]	; (8004ebc <XWL55_WLE5_53L0X_I2C2Configure+0x74>)
+ 8004e9c:	6003      	str	r3, [r0, #0]
+    //XNUCLEO53L1A1_hi2c.Init.Timing = 0x00300F38; /* set 400KHz fast mode i2c*/
+    XNUCLEO53L1A1_hi2c.Init.Timing = 0x2010091A; //0x2010091A = 400K Fast Mode, 0x20303E5D, 100K Standard mode, 0x20000209 Fast Mode Plus, 1Mbps
+ 8004e9e:	4b08      	ldr	r3, [pc, #32]	; (8004ec0 <XWL55_WLE5_53L0X_I2C2Configure+0x78>)
+ 8004ea0:	6043      	str	r3, [r0, #4]
+
+    XNUCLEO53L1A1_hi2c.Init.OwnAddress1 = 0;
+ 8004ea2:	6084      	str	r4, [r0, #8]
+    XNUCLEO53L1A1_hi2c.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+ 8004ea4:	2301      	movs	r3, #1
+ 8004ea6:	60c3      	str	r3, [r0, #12]
+    XNUCLEO53L1A1_hi2c.Init.DualAddressMode = I2C_DUALADDRESS_DISABLED;
+ 8004ea8:	6104      	str	r4, [r0, #16]
+    XNUCLEO53L1A1_hi2c.Init.OwnAddress2 = 0;
+ 8004eaa:	6144      	str	r4, [r0, #20]
+    XNUCLEO53L1A1_hi2c.Init.GeneralCallMode = I2C_GENERALCALL_DISABLED;
+ 8004eac:	61c4      	str	r4, [r0, #28]
+    XNUCLEO53L1A1_hi2c.Init.NoStretchMode = I2C_NOSTRETCH_DISABLED;
+ 8004eae:	6204      	str	r4, [r0, #32]
+    status = HAL_I2C_Init(&XNUCLEO53L1A1_hi2c);
+ 8004eb0:	f004 fdc3 	bl	8009a3a <HAL_I2C_Init>
+    return status;
+}
+ 8004eb4:	b008      	add	sp, #32
+ 8004eb6:	bd10      	pop	{r4, pc}
+ 8004eb8:	20000e80 	.word	0x20000e80
+ 8004ebc:	40005800 	.word	0x40005800
+ 8004ec0:	2010091a 	.word	0x2010091a
+
+08004ec4 <XWL55_WLE5_53L0X_Init>:
+
+    return status;
+}
+
+int	XWL55_WLE5_53L0X_Init(void)
+{
+ 8004ec4:	b508      	push	{r3, lr}
+    int status;
+    status = XWL55_WLE5_53L0X_I2C2Configure();
+ 8004ec6:	f7ff ffbf 	bl	8004e48 <XWL55_WLE5_53L0X_I2C2Configure>
+    return status;
+}
+ 8004eca:	bd08      	pop	{r3, pc}
+
+08004ecc <XWL55_WLE5_53L0X_ResetId>:
+
+
+void XWL55_WLE5_53L0X_ResetId(uint8_t DevNo, int state)
+{
+ 8004ecc:	b508      	push	{r3, lr}
+
+	switch(DevNo) {
+ 8004ece:	b110      	cbz	r0, 8004ed6 <XWL55_WLE5_53L0X_ResetId+0xa>
+ 8004ed0:	2801      	cmp	r0, #1
+ 8004ed2:	d00b      	beq.n	8004eec <XWL55_WLE5_53L0X_ResetId+0x20>
+		break;
+
+		default:
+		break;
+	}
+}
+ 8004ed4:	bd08      	pop	{r3, pc}
+			HAL_GPIO_WritePin(TOF_L_XSHUT_GPIO_Port, TOF_L_XSHUT_Pin, ((state == 1)?GPIO_PIN_SET:GPIO_PIN_RESET));
+ 8004ed6:	2901      	cmp	r1, #1
+ 8004ed8:	bf14      	ite	ne
+ 8004eda:	2200      	movne	r2, #0
+ 8004edc:	2201      	moveq	r2, #1
+ 8004ede:	f44f 7100 	mov.w	r1, #512	; 0x200
+ 8004ee2:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8004ee6:	f004 fc08 	bl	80096fa <HAL_GPIO_WritePin>
+		break;
+ 8004eea:	e7f3      	b.n	8004ed4 <XWL55_WLE5_53L0X_ResetId+0x8>
+			HAL_GPIO_WritePin(TOF_C_XSHUT_GPIO_Port, TOF_C_XSHUT_Pin, ((state == 1)?GPIO_PIN_SET:GPIO_PIN_RESET));
+ 8004eec:	2901      	cmp	r1, #1
+ 8004eee:	bf14      	ite	ne
+ 8004ef0:	2200      	movne	r2, #0
+ 8004ef2:	2201      	moveq	r2, #1
+ 8004ef4:	2108      	movs	r1, #8
+ 8004ef6:	4802      	ldr	r0, [pc, #8]	; (8004f00 <XWL55_WLE5_53L0X_ResetId+0x34>)
+ 8004ef8:	f004 fbff 	bl	80096fa <HAL_GPIO_WritePin>
+}
+ 8004efc:	e7ea      	b.n	8004ed4 <XWL55_WLE5_53L0X_ResetId+0x8>
+ 8004efe:	bf00      	nop
+ 8004f00:	48000400 	.word	0x48000400
+
+08004f04 <MX_TOF_Process>:
+
+/*
+ * LM background task
+ */
+void MX_TOF_Process(void)
+{
+ 8004f04:	b508      	push	{r3, lr}
+#ifdef	STS_USE_TOF_VL53L1X
+	STS_TOF_VL53L1X_Range_Process();
+#endif
+
+#ifdef	STS_USE_TOF_VL53L0X
+	STS_SENSOR_Power_ON(1);
+ 8004f06:	2001      	movs	r0, #1
+ 8004f08:	f7fe fa9c 	bl	8003444 <STS_SENSOR_Power_ON>
+	HAL_Delay(100);
+ 8004f0c:	2064      	movs	r0, #100	; 0x64
+ 8004f0e:	f7fd fecf 	bl	8002cb0 <HAL_Delay>
+	STS_TOF_VL53L0X_Range_Process();
+ 8004f12:	f000 fa2b 	bl	800536c <STS_TOF_VL53L0X_Range_Process>
+	HAL_Delay(100);
+ 8004f16:	2064      	movs	r0, #100	; 0x64
+ 8004f18:	f7fd feca 	bl	8002cb0 <HAL_Delay>
+	STS_SENSOR_Power_OFF(1);
+ 8004f1c:	2001      	movs	r0, #1
+ 8004f1e:	f7fe fa9d 	bl	800345c <STS_SENSOR_Power_OFF>
+
+
+  /* USER CODE BEGIN TOF_Process_PostTreatment */
+
+  /* USER CODE END TOF_Process_PostTreatment */
+}
+ 8004f22:	bd08      	pop	{r3, pc}
+
+08004f24 <STS_R0_SENSOR_Read>:
+void STS_R0_SENSOR_Read(STS_R0_SensorDataTypeDef *r0_data)
+{
+	r0_data->distance_mm  = sts_tof_distance_data[0];
+ 8004f24:	4b05      	ldr	r3, [pc, #20]	; (8004f3c <STS_R0_SENSOR_Read+0x18>)
+ 8004f26:	681a      	ldr	r2, [r3, #0]
+ 8004f28:	8002      	strh	r2, [r0, #0]
+	r0_data->distance1_mm = sts_tof_distance_data[1];
+ 8004f2a:	685a      	ldr	r2, [r3, #4]
+ 8004f2c:	8102      	strh	r2, [r0, #8]
+	r0_data->distance2_mm = sts_tof_distance_data[2];
+ 8004f2e:	689b      	ldr	r3, [r3, #8]
+ 8004f30:	8143      	strh	r3, [r0, #10]
+
+	sensor_data_ready = 1;
+ 8004f32:	4b03      	ldr	r3, [pc, #12]	; (8004f40 <STS_R0_SENSOR_Read+0x1c>)
+ 8004f34:	2201      	movs	r2, #1
+ 8004f36:	701a      	strb	r2, [r3, #0]
+}
+ 8004f38:	4770      	bx	lr
+ 8004f3a:	bf00      	nop
+ 8004f3c:	20000f00 	.word	0x20000f00
+ 8004f40:	20000e54 	.word	0x20000e54
+
+08004f44 <STS_SENSOR_MEMS_Get_ID>:
+	STS_TOF_VL53L6X,
+	STS_TOF_VL53L7X
+} vl53lx_model;
+
+uint8_t STS_SENSOR_MEMS_Get_ID(uint8_t *mems_Dev_ID)
+{
+ 8004f44:	b530      	push	{r4, r5, lr}
+ 8004f46:	b083      	sub	sp, #12
+ 8004f48:	4604      	mov	r4, r0
+	uint16_t Id = 0xEEAA; 	//0xeeaa for VL53L0X
+	uint8_t cnt =0;
+
+	cnt = sts_tof_vl53l0x_DetectSensors();
+ 8004f4a:	f000 f815 	bl	8004f78 <sts_tof_vl53l0x_DetectSensors>
+
+	if (cnt > 0)
+ 8004f4e:	f010 05ff 	ands.w	r5, r0, #255	; 0xff
+ 8004f52:	d001      	beq.n	8004f58 <STS_SENSOR_MEMS_Get_ID+0x14>
+	mems_Dev_ID[0] = (Id >>8)&0xff;
+ 8004f54:	23ee      	movs	r3, #238	; 0xee
+ 8004f56:	7023      	strb	r3, [r4, #0]
+	mems_Dev_ID[1] = (Id & 0xff);
+ 8004f58:	23aa      	movs	r3, #170	; 0xaa
+ 8004f5a:	7063      	strb	r3, [r4, #1]
+
+	APP_LOG(TS_OFF, VLEVEL_L,"MEMS ID=%02x %02x \r\n", mems_Dev_ID[0],mems_Dev_ID[1]);
+ 8004f5c:	7822      	ldrb	r2, [r4, #0]
+ 8004f5e:	9301      	str	r3, [sp, #4]
+ 8004f60:	9200      	str	r2, [sp, #0]
+ 8004f62:	4b04      	ldr	r3, [pc, #16]	; (8004f74 <STS_SENSOR_MEMS_Get_ID+0x30>)
+ 8004f64:	2200      	movs	r2, #0
+ 8004f66:	4611      	mov	r1, r2
+ 8004f68:	2001      	movs	r0, #1
+ 8004f6a:	f011 fde5 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+	return cnt;
+}
+ 8004f6e:	4628      	mov	r0, r5
+ 8004f70:	b003      	add	sp, #12
+ 8004f72:	bd30      	pop	{r4, r5, pc}
+ 8004f74:	0801822c 	.word	0x0801822c
+
+08004f78 <sts_tof_vl53l0x_DetectSensors>:
+ *
+ * All present devices are data initiated and assigned with their final address
+ * @return
+ */
+int sts_tof_vl53l0x_DetectSensors(void)
+{
+ 8004f78:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8004f7a:	b087      	sub	sp, #28
+	int i;
+    uint16_t Id;
+    int status;
+    int FinalAddress;
+    nDevPresent = 0;
+ 8004f7c:	2400      	movs	r4, #0
+ 8004f7e:	4b4a      	ldr	r3, [pc, #296]	; (80050a8 <sts_tof_vl53l0x_DetectSensors+0x130>)
+ 8004f80:	601c      	str	r4, [r3, #0]
+
+    for (i=0; i < MAX_TOF_COUNT; i++) {
+ 8004f82:	e004      	b.n	8004f8e <sts_tof_vl53l0x_DetectSensors+0x16>
+    	XWL55_WLE5_53L0X_ResetId(i,0);
+ 8004f84:	2100      	movs	r1, #0
+ 8004f86:	b2e0      	uxtb	r0, r4
+ 8004f88:	f7ff ffa0 	bl	8004ecc <XWL55_WLE5_53L0X_ResetId>
+    for (i=0; i < MAX_TOF_COUNT; i++) {
+ 8004f8c:	3401      	adds	r4, #1
+ 8004f8e:	2c02      	cmp	r4, #2
+ 8004f90:	ddf8      	ble.n	8004f84 <sts_tof_vl53l0x_DetectSensors+0xc>
+    	//XWL55_WLE5_53L0X_SetIntrStateId(0,i);
+    }
+
+    /* detect all sensors (even on-board)*/
+    for (i=0; i < MAX_TOF_COUNT; i++)
+ 8004f92:	2500      	movs	r5, #0
+ 8004f94:	e00b      	b.n	8004fae <sts_tof_vl53l0x_DetectSensors+0x36>
+
+		   /* Try to read one register using default 0x52 address */
+		   status = VL53L0X_RdWord(pDev, VL53L0X_REG_IDENTIFICATION_MODEL_ID, &Id);
+		   //APP_LOG(TS_OFF, VLEVEL_H, "#%u read id = %04x I2C ADDR=0x%2X\r\n",i, Id, pDev->I2cDevAddr);
+		   if (status) {
+				 APP_LOG(TS_OFF, VLEVEL_L, "# Read id fail \r\n");
+ 8004f96:	4b45      	ldr	r3, [pc, #276]	; (80050ac <sts_tof_vl53l0x_DetectSensors+0x134>)
+ 8004f98:	2200      	movs	r2, #0
+ 8004f9a:	4611      	mov	r1, r2
+ 8004f9c:	2001      	movs	r0, #1
+ 8004f9e:	f011 fdcb 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+			   APP_LOG(TS_OFF, VLEVEL_L, "# unknown ID %x\r\n", Id);
+			   status = 1;
+		   }
+	   } while(0);
+		/* Display detected sensor(s) */
+	   if (status) {
+ 8004fa2:	b11f      	cbz	r7, 8004fac <sts_tof_vl53l0x_DetectSensors+0x34>
+		   XWL55_WLE5_53L0X_ResetId(i,0);
+ 8004fa4:	2100      	movs	r1, #0
+ 8004fa6:	b2e8      	uxtb	r0, r5
+ 8004fa8:	f7ff ff90 	bl	8004ecc <XWL55_WLE5_53L0X_ResetId>
+    for (i=0; i < MAX_TOF_COUNT; i++)
+ 8004fac:	3501      	adds	r5, #1
+ 8004fae:	2d02      	cmp	r5, #2
+ 8004fb0:	dc75      	bgt.n	800509e <sts_tof_vl53l0x_DetectSensors+0x126>
+		pDev = &VL53L0XDevs[i];
+ 8004fb2:	4c3f      	ldr	r4, [pc, #252]	; (80050b0 <sts_tof_vl53l0x_DetectSensors+0x138>)
+ 8004fb4:	f44f 73c8 	mov.w	r3, #400	; 0x190
+ 8004fb8:	fb03 4405 	mla	r4, r3, r5, r4
+		pDev->I2cDevAddr = 0x52;
+ 8004fbc:	2352      	movs	r3, #82	; 0x52
+ 8004fbe:	f884 3160 	strb.w	r3, [r4, #352]	; 0x160
+		pDev->Present = 0;
+ 8004fc2:	2300      	movs	r3, #0
+ 8004fc4:	f8c4 3168 	str.w	r3, [r4, #360]	; 0x168
+		XWL55_WLE5_53L0X_ResetId(pDev->Id, 1);
+ 8004fc8:	2101      	movs	r1, #1
+ 8004fca:	f894 0164 	ldrb.w	r0, [r4, #356]	; 0x164
+ 8004fce:	f7ff ff7d 	bl	8004ecc <XWL55_WLE5_53L0X_ResetId>
+		HAL_Delay(3);
+ 8004fd2:	2003      	movs	r0, #3
+ 8004fd4:	f7fd fe6c 	bl	8002cb0 <HAL_Delay>
+		FinalAddress = 0x52+(i+1)*2;
+ 8004fd8:	f105 012a 	add.w	r1, r5, #42	; 0x2a
+ 8004fdc:	004e      	lsls	r6, r1, #1
+		   status = VL53L0X_RdWord(pDev, VL53L0X_REG_IDENTIFICATION_MODEL_ID, &Id);
+ 8004fde:	f10d 0216 	add.w	r2, sp, #22
+ 8004fe2:	21c0      	movs	r1, #192	; 0xc0
+ 8004fe4:	4620      	mov	r0, r4
+ 8004fe6:	f003 f88f 	bl	8008108 <VL53L0X_RdWord>
+ 8004fea:	4607      	mov	r7, r0
+		   if (status) {
+ 8004fec:	2800      	cmp	r0, #0
+ 8004fee:	d1d2      	bne.n	8004f96 <sts_tof_vl53l0x_DetectSensors+0x1e>
+		   if (Id == 0xEEAA) {
+ 8004ff0:	f8bd 3016 	ldrh.w	r3, [sp, #22]
+ 8004ff4:	f64e 62aa 	movw	r2, #61098	; 0xeeaa
+ 8004ff8:	4293      	cmp	r3, r2
+ 8004ffa:	d007      	beq.n	800500c <sts_tof_vl53l0x_DetectSensors+0x94>
+			   APP_LOG(TS_OFF, VLEVEL_L, "# unknown ID %x\r\n", Id);
+ 8004ffc:	9300      	str	r3, [sp, #0]
+ 8004ffe:	4b2d      	ldr	r3, [pc, #180]	; (80050b4 <sts_tof_vl53l0x_DetectSensors+0x13c>)
+ 8005000:	2200      	movs	r2, #0
+ 8005002:	4611      	mov	r1, r2
+ 8005004:	2001      	movs	r0, #1
+ 8005006:	f011 fd97 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+	   if (status) {
+ 800500a:	e7cb      	b.n	8004fa4 <sts_tof_vl53l0x_DetectSensors+0x2c>
+			   status = VL53L0X_SetDeviceAddress(pDev,FinalAddress);
+ 800500c:	b2f6      	uxtb	r6, r6
+ 800500e:	4631      	mov	r1, r6
+ 8005010:	4620      	mov	r0, r4
+ 8005012:	f000 fa37 	bl	8005484 <VL53L0X_SetDeviceAddress>
+ 8005016:	4607      	mov	r7, r0
+			   if (status != 0) {
+ 8005018:	b130      	cbz	r0, 8005028 <sts_tof_vl53l0x_DetectSensors+0xb0>
+				   APP_LOG(TS_OFF, VLEVEL_L, "#i VL53L0X_SetDeviceAddress fail\r\n");
+ 800501a:	4b27      	ldr	r3, [pc, #156]	; (80050b8 <sts_tof_vl53l0x_DetectSensors+0x140>)
+ 800501c:	2200      	movs	r2, #0
+ 800501e:	4611      	mov	r1, r2
+ 8005020:	2001      	movs	r0, #1
+ 8005022:	f011 fd89 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+				   break;
+ 8005026:	e7bc      	b.n	8004fa2 <sts_tof_vl53l0x_DetectSensors+0x2a>
+			   pDev->I2cDevAddr = FinalAddress;
+ 8005028:	4b21      	ldr	r3, [pc, #132]	; (80050b0 <sts_tof_vl53l0x_DetectSensors+0x138>)
+ 800502a:	f44f 72c8 	mov.w	r2, #400	; 0x190
+ 800502e:	fb02 3305 	mla	r3, r2, r5, r3
+ 8005032:	f883 6160 	strb.w	r6, [r3, #352]	; 0x160
+			   status = VL53L0X_RdWord(pDev, VL53L0X_REG_IDENTIFICATION_MODEL_ID, &Id);
+ 8005036:	f10d 0216 	add.w	r2, sp, #22
+ 800503a:	21c0      	movs	r1, #192	; 0xc0
+ 800503c:	4620      	mov	r0, r4
+ 800503e:	f003 f863 	bl	8008108 <VL53L0X_RdWord>
+			   status = VL53L0X_DataInit(pDev);
+ 8005042:	4620      	mov	r0, r4
+ 8005044:	f000 fc9c 	bl	8005980 <VL53L0X_DataInit>
+ 8005048:	4607      	mov	r7, r0
+			   if( status == 0 ){
+ 800504a:	b9f0      	cbnz	r0, 800508a <sts_tof_vl53l0x_DetectSensors+0x112>
+				   pDev->Present = 1;
+ 800504c:	4b18      	ldr	r3, [pc, #96]	; (80050b0 <sts_tof_vl53l0x_DetectSensors+0x138>)
+ 800504e:	f44f 72c8 	mov.w	r2, #400	; 0x190
+ 8005052:	fb02 3305 	mla	r3, r2, r5, r3
+ 8005056:	2001      	movs	r0, #1
+ 8005058:	f8c3 0168 	str.w	r0, [r3, #360]	; 0x168
+				   nDevPresent++;
+ 800505c:	4912      	ldr	r1, [pc, #72]	; (80050a8 <sts_tof_vl53l0x_DetectSensors+0x130>)
+ 800505e:	680a      	ldr	r2, [r1, #0]
+ 8005060:	4402      	add	r2, r0
+ 8005062:	600a      	str	r2, [r1, #0]
+				   nDevMask |= 1 << i;
+ 8005064:	fa00 f205 	lsl.w	r2, r0, r5
+ 8005068:	4914      	ldr	r1, [pc, #80]	; (80050bc <sts_tof_vl53l0x_DetectSensors+0x144>)
+ 800506a:	680c      	ldr	r4, [r1, #0]
+ 800506c:	4322      	orrs	r2, r4
+ 800506e:	600a      	str	r2, [r1, #0]
+				   APP_LOG(TS_OFF, VLEVEL_L, "VL53L0X %d Present and initiated to final 0x%2x,  Position Mask=0x%02x\r\n", pDev->Id, pDev->I2cDevAddr, nDevMask);
+ 8005070:	f893 1160 	ldrb.w	r1, [r3, #352]	; 0x160
+ 8005074:	9202      	str	r2, [sp, #8]
+ 8005076:	9101      	str	r1, [sp, #4]
+ 8005078:	f8d3 3164 	ldr.w	r3, [r3, #356]	; 0x164
+ 800507c:	9300      	str	r3, [sp, #0]
+ 800507e:	4b10      	ldr	r3, [pc, #64]	; (80050c0 <sts_tof_vl53l0x_DetectSensors+0x148>)
+ 8005080:	2200      	movs	r2, #0
+ 8005082:	4611      	mov	r1, r2
+ 8005084:	f011 fd58 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+ 8005088:	e78b      	b.n	8004fa2 <sts_tof_vl53l0x_DetectSensors+0x2a>
+				   APP_LOG(TS_OFF, VLEVEL_L, "VL53L0X_DataInit %d fail\r\n", Id);
+ 800508a:	f8bd 3016 	ldrh.w	r3, [sp, #22]
+ 800508e:	9300      	str	r3, [sp, #0]
+ 8005090:	4b0c      	ldr	r3, [pc, #48]	; (80050c4 <sts_tof_vl53l0x_DetectSensors+0x14c>)
+ 8005092:	2200      	movs	r2, #0
+ 8005094:	4611      	mov	r1, r2
+ 8005096:	2001      	movs	r0, #1
+ 8005098:	f011 fd4e 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+				   break;
+ 800509c:	e781      	b.n	8004fa2 <sts_tof_vl53l0x_DetectSensors+0x2a>
+	   }
+	}
+
+    return nDevPresent;
+}
+ 800509e:	4b02      	ldr	r3, [pc, #8]	; (80050a8 <sts_tof_vl53l0x_DetectSensors+0x130>)
+ 80050a0:	6818      	ldr	r0, [r3, #0]
+ 80050a2:	b007      	add	sp, #28
+ 80050a4:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 80050a6:	bf00      	nop
+ 80050a8:	20000ef8 	.word	0x20000ef8
+ 80050ac:	08018244 	.word	0x08018244
+ 80050b0:	200000bc 	.word	0x200000bc
+ 80050b4:	080182e4 	.word	0x080182e4
+ 80050b8:	08018258 	.word	0x08018258
+ 80050bc:	20000ef4 	.word	0x20000ef4
+ 80050c0:	0801827c 	.word	0x0801827c
+ 80050c4:	080182c8 	.word	0x080182c8
+
+080050c8 <sts_tof_vl53l0x_SetupSingleShot>:
+
+/**
+ *  Setup all detected sensors for single shot mode and setup ranging configuration
+ */
+void sts_tof_vl53l0x_SetupSingleShot(RangingConfig_e rangingConfig)
+{	int i;
+ 80050c8:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 80050cc:	b087      	sub	sp, #28
+ 80050ce:	4606      	mov	r6, r0
+	uint8_t isApertureSpads;
+	FixPoint1616_t signalLimit = (FixPoint1616_t)(0.25*65536);
+	FixPoint1616_t sigmaLimit = (FixPoint1616_t)(18*65536);
+	uint32_t timingBudget = 33000;
+	uint8_t preRangeVcselPeriod = 14;
+	uint8_t finalRangeVcselPeriod = 10;
+ 80050d0:	f04f 0b0a 	mov.w	fp, #10
+	uint8_t preRangeVcselPeriod = 14;
+ 80050d4:	f04f 0a0e 	mov.w	sl, #14
+	uint32_t timingBudget = 33000;
+ 80050d8:	f248 09e8 	movw	r9, #33000	; 0x80e8
+	FixPoint1616_t sigmaLimit = (FixPoint1616_t)(18*65536);
+ 80050dc:	f44f 1890 	mov.w	r8, #1179648	; 0x120000
+	FixPoint1616_t signalLimit = (FixPoint1616_t)(0.25*65536);
+ 80050e0:	f44f 4780 	mov.w	r7, #16384	; 0x4000
+    // uart_printf("\r\n#########  start setup for single shot \r\n");
+	for( i=0; i< MAX_TOF_COUNT; i++){
+ 80050e4:	2400      	movs	r4, #0
+ 80050e6:	e078      	b.n	80051da <sts_tof_vl53l0x_SetupSingleShot+0x112>
+
+		  APP_LOG(TS_OFF, VLEVEL_L, "\r\n ######  Starting Range   #%u sensor \r\n",i);
+
+		  status=VL53L0X_StaticInit(&VL53L0XDevs[i]);
+		  if( status ){
+			  APP_LOG(TS_OFF, VLEVEL_L, "VL53L0X_StaticInit failed\n");
+ 80050e8:	4b83      	ldr	r3, [pc, #524]	; (80052f8 <sts_tof_vl53l0x_SetupSingleShot+0x230>)
+ 80050ea:	2200      	movs	r2, #0
+ 80050ec:	4611      	mov	r1, r2
+ 80050ee:	2001      	movs	r0, #1
+ 80050f0:	f011 fd22 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+ 80050f4:	e08f      	b.n	8005216 <sts_tof_vl53l0x_SetupSingleShot+0x14e>
+		  }
+
+		  status = VL53L0X_PerformRefCalibration(&VL53L0XDevs[i], &VhvSettings, &PhaseCal);
+		  if( status ){
+			  APP_LOG(TS_OFF, VLEVEL_L, "VL53L0X_PerformRefCalibration failed\n");
+ 80050f6:	4b81      	ldr	r3, [pc, #516]	; (80052fc <sts_tof_vl53l0x_SetupSingleShot+0x234>)
+ 80050f8:	2200      	movs	r2, #0
+ 80050fa:	4611      	mov	r1, r2
+ 80050fc:	2001      	movs	r0, #1
+ 80050fe:	f011 fd1b 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+ 8005102:	e092      	b.n	800522a <sts_tof_vl53l0x_SetupSingleShot+0x162>
+		  }
+
+		  status = VL53L0X_PerformRefSpadManagement(&VL53L0XDevs[i], &refSpadCount, &isApertureSpads);
+		  if( status ){
+			  APP_LOG(TS_OFF, VLEVEL_L, "VL53L0X_PerformRefSpadManagement failed\n");
+ 8005104:	4b7e      	ldr	r3, [pc, #504]	; (8005300 <sts_tof_vl53l0x_SetupSingleShot+0x238>)
+ 8005106:	2200      	movs	r2, #0
+ 8005108:	4611      	mov	r1, r2
+ 800510a:	2001      	movs	r0, #1
+ 800510c:	f011 fd14 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+ 8005110:	e094      	b.n	800523c <sts_tof_vl53l0x_SetupSingleShot+0x174>
+		  }
+
+		  status = VL53L0X_SetDeviceMode(&VL53L0XDevs[i], VL53L0X_DEVICEMODE_SINGLE_RANGING); // Setup in single ranging mode
+		  if( status ){
+			  APP_LOG(TS_OFF, VLEVEL_L, "VL53L0X_SetDeviceMode failed\n");
+ 8005112:	4b7c      	ldr	r3, [pc, #496]	; (8005304 <sts_tof_vl53l0x_SetupSingleShot+0x23c>)
+ 8005114:	2200      	movs	r2, #0
+ 8005116:	4611      	mov	r1, r2
+ 8005118:	2001      	movs	r0, #1
+ 800511a:	f011 fd0d 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+ 800511e:	e094      	b.n	800524a <sts_tof_vl53l0x_SetupSingleShot+0x182>
+		  }
+		  status = VL53L0X_SetLimitCheckEnable(&VL53L0XDevs[i], VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE, 1); // Enable Sigma limit
+		  if( status ){
+			  APP_LOG(TS_OFF, VLEVEL_L, "VL53L0X_SetLimitCheckEnable failed\n");
+ 8005120:	4b79      	ldr	r3, [pc, #484]	; (8005308 <sts_tof_vl53l0x_SetupSingleShot+0x240>)
+ 8005122:	2200      	movs	r2, #0
+ 8005124:	4611      	mov	r1, r2
+ 8005126:	2001      	movs	r0, #1
+ 8005128:	f011 fd06 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+ 800512c:	e095      	b.n	800525a <sts_tof_vl53l0x_SetupSingleShot+0x192>
+		  }
+		  status = VL53L0X_SetLimitCheckEnable(&VL53L0XDevs[i], VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE, 1); // Enable Signa limit
+		  if( status ){
+			  APP_LOG(TS_OFF, VLEVEL_L, "VL53L0X_SetLimitCheckEnable failed\n");
+ 800512e:	4b76      	ldr	r3, [pc, #472]	; (8005308 <sts_tof_vl53l0x_SetupSingleShot+0x240>)
+ 8005130:	2200      	movs	r2, #0
+ 8005132:	4611      	mov	r1, r2
+ 8005134:	2001      	movs	r0, #1
+ 8005136:	f011 fcff 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+ 800513a:	e096      	b.n	800526a <sts_tof_vl53l0x_SetupSingleShot+0x1a2>
+			  case HIGH_SPEED:
+				  signalLimit = (FixPoint1616_t)(0.25*65536);
+				  sigmaLimit = (FixPoint1616_t)(32*65536);
+				  timingBudget = 20000;
+				  preRangeVcselPeriod = 14;
+				  finalRangeVcselPeriod = 10;
+ 800513c:	f04f 0b0a 	mov.w	fp, #10
+				  preRangeVcselPeriod = 14;
+ 8005140:	f04f 0a0e 	mov.w	sl, #14
+				  timingBudget = 20000;
+ 8005144:	f644 6920 	movw	r9, #20000	; 0x4e20
+				  sigmaLimit = (FixPoint1616_t)(32*65536);
+ 8005148:	f44f 1800 	mov.w	r8, #2097152	; 0x200000
+				  signalLimit = (FixPoint1616_t)(0.25*65536);
+ 800514c:	f44f 4780 	mov.w	r7, #16384	; 0x4000
+ 8005150:	e009      	b.n	8005166 <sts_tof_vl53l0x_SetupSingleShot+0x9e>
+				  finalRangeVcselPeriod = 10;
+ 8005152:	f04f 0b0a 	mov.w	fp, #10
+				  preRangeVcselPeriod = 14;
+ 8005156:	f04f 0a0e 	mov.w	sl, #14
+				  timingBudget = 200000;
+ 800515a:	f8df 91b0 	ldr.w	r9, [pc, #432]	; 800530c <sts_tof_vl53l0x_SetupSingleShot+0x244>
+				  sigmaLimit = (FixPoint1616_t)(18*65536);
+ 800515e:	f44f 1890 	mov.w	r8, #1179648	; 0x120000
+				  signalLimit = (FixPoint1616_t)(0.25*65536);
+ 8005162:	f44f 4780 	mov.w	r7, #16384	; 0x4000
+			  default:
+				  APP_LOG(TS_OFF, VLEVEL_L, "Not Supported");
+			  break;
+		  }
+
+		  status = VL53L0X_SetLimitCheckValue(&VL53L0XDevs[i],  VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE, signalLimit);
+ 8005166:	463a      	mov	r2, r7
+ 8005168:	2101      	movs	r1, #1
+ 800516a:	4628      	mov	r0, r5
+ 800516c:	f000 fb10 	bl	8005790 <VL53L0X_SetLimitCheckValue>
+		  if( status ){
+ 8005170:	2800      	cmp	r0, #0
+ 8005172:	f040 8093 	bne.w	800529c <sts_tof_vl53l0x_SetupSingleShot+0x1d4>
+			  APP_LOG(TS_OFF, VLEVEL_L, "VL53L0X_SetLimitCheckValue failed\n");
+		  }
+
+		  status = VL53L0X_SetLimitCheckValue(&VL53L0XDevs[i],  VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE, sigmaLimit);
+ 8005176:	4642      	mov	r2, r8
+ 8005178:	2100      	movs	r1, #0
+ 800517a:	4628      	mov	r0, r5
+ 800517c:	f000 fb08 	bl	8005790 <VL53L0X_SetLimitCheckValue>
+		  if( status ){
+ 8005180:	2800      	cmp	r0, #0
+ 8005182:	f040 8092 	bne.w	80052aa <sts_tof_vl53l0x_SetupSingleShot+0x1e2>
+			  APP_LOG(TS_OFF, VLEVEL_L, "VL53L0X_SetLimitCheckValue failed\n");
+		  }
+
+		  status = VL53L0X_SetMeasurementTimingBudgetMicroSeconds(&VL53L0XDevs[i],  timingBudget);
+ 8005186:	4649      	mov	r1, r9
+ 8005188:	4628      	mov	r0, r5
+ 800518a:	f000 f9a3 	bl	80054d4 <VL53L0X_SetMeasurementTimingBudgetMicroSeconds>
+		  if( status ){
+ 800518e:	2800      	cmp	r0, #0
+ 8005190:	f040 8092 	bne.w	80052b8 <sts_tof_vl53l0x_SetupSingleShot+0x1f0>
+			  APP_LOG(TS_OFF, VLEVEL_L, "VL53L0X_SetMeasurementTimingBudgetMicroSeconds failed\n");
+		  }
+
+		  status = VL53L0X_SetVcselPulsePeriod(&VL53L0XDevs[i],  VL53L0X_VCSEL_PERIOD_PRE_RANGE, preRangeVcselPeriod);
+ 8005194:	4652      	mov	r2, sl
+ 8005196:	2100      	movs	r1, #0
+ 8005198:	4628      	mov	r0, r5
+ 800519a:	f000 f9a3 	bl	80054e4 <VL53L0X_SetVcselPulsePeriod>
+		  if( status ){
+ 800519e:	2800      	cmp	r0, #0
+ 80051a0:	f040 8091 	bne.w	80052c6 <sts_tof_vl53l0x_SetupSingleShot+0x1fe>
+			  APP_LOG(TS_OFF, VLEVEL_L, "VL53L0X_SetVcselPulsePeriod failed\n");
+		  }
+
+		  status = VL53L0X_SetVcselPulsePeriod(&VL53L0XDevs[i],  VL53L0X_VCSEL_PERIOD_FINAL_RANGE, finalRangeVcselPeriod);
+ 80051a4:	465a      	mov	r2, fp
+ 80051a6:	2101      	movs	r1, #1
+ 80051a8:	4628      	mov	r0, r5
+ 80051aa:	f000 f99b 	bl	80054e4 <VL53L0X_SetVcselPulsePeriod>
+		  if( status ){
+ 80051ae:	2800      	cmp	r0, #0
+ 80051b0:	f040 8090 	bne.w	80052d4 <sts_tof_vl53l0x_SetupSingleShot+0x20c>
+			  APP_LOG(TS_OFF, VLEVEL_L, "VL53L0X_SetVcselPulsePeriod failed\n");
+		  }
+
+		  status = VL53L0X_PerformRefCalibration(&VL53L0XDevs[i], &VhvSettings, &PhaseCal);
+ 80051b4:	f10d 0216 	add.w	r2, sp, #22
+ 80051b8:	f10d 0117 	add.w	r1, sp, #23
+ 80051bc:	4628      	mov	r0, r5
+ 80051be:	f000 fcc5 	bl	8005b4c <VL53L0X_PerformRefCalibration>
+		  if( status ){
+ 80051c2:	2800      	cmp	r0, #0
+ 80051c4:	f040 808d 	bne.w	80052e2 <sts_tof_vl53l0x_SetupSingleShot+0x21a>
+			  APP_LOG(TS_OFF, VLEVEL_L, "VL53L0X_PerformRefCalibration failed\n");
+		  }
+
+		  VL53L0XDevs[i].LeakyFirst =1;
+ 80051c8:	4b51      	ldr	r3, [pc, #324]	; (8005310 <sts_tof_vl53l0x_SetupSingleShot+0x248>)
+ 80051ca:	f44f 72c8 	mov.w	r2, #400	; 0x190
+ 80051ce:	fb02 3304 	mla	r3, r2, r4, r3
+ 80051d2:	2201      	movs	r2, #1
+ 80051d4:	f8c3 217c 	str.w	r2, [r3, #380]	; 0x17c
+	for( i=0; i< MAX_TOF_COUNT; i++){
+ 80051d8:	3401      	adds	r4, #1
+ 80051da:	2c02      	cmp	r4, #2
+ 80051dc:	f300 8088 	bgt.w	80052f0 <sts_tof_vl53l0x_SetupSingleShot+0x228>
+		if( VL53L0XDevs[i].Present){
+ 80051e0:	4b4b      	ldr	r3, [pc, #300]	; (8005310 <sts_tof_vl53l0x_SetupSingleShot+0x248>)
+ 80051e2:	f44f 72c8 	mov.w	r2, #400	; 0x190
+ 80051e6:	fb02 3304 	mla	r3, r2, r4, r3
+ 80051ea:	f8d3 3168 	ldr.w	r3, [r3, #360]	; 0x168
+ 80051ee:	2b00      	cmp	r3, #0
+ 80051f0:	d0f2      	beq.n	80051d8 <sts_tof_vl53l0x_SetupSingleShot+0x110>
+		  APP_LOG(TS_OFF, VLEVEL_L, "\r\n ######  Starting Range   #%u sensor \r\n",i);
+ 80051f2:	9400      	str	r4, [sp, #0]
+ 80051f4:	4b47      	ldr	r3, [pc, #284]	; (8005314 <sts_tof_vl53l0x_SetupSingleShot+0x24c>)
+ 80051f6:	2200      	movs	r2, #0
+ 80051f8:	4611      	mov	r1, r2
+ 80051fa:	2001      	movs	r0, #1
+ 80051fc:	f011 fc9c 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+		  status=VL53L0X_StaticInit(&VL53L0XDevs[i]);
+ 8005200:	4d43      	ldr	r5, [pc, #268]	; (8005310 <sts_tof_vl53l0x_SetupSingleShot+0x248>)
+ 8005202:	f44f 73c8 	mov.w	r3, #400	; 0x190
+ 8005206:	fb03 5504 	mla	r5, r3, r4, r5
+ 800520a:	4628      	mov	r0, r5
+ 800520c:	f000 ff3a 	bl	8006084 <VL53L0X_StaticInit>
+		  if( status ){
+ 8005210:	2800      	cmp	r0, #0
+ 8005212:	f47f af69 	bne.w	80050e8 <sts_tof_vl53l0x_SetupSingleShot+0x20>
+		  status = VL53L0X_PerformRefCalibration(&VL53L0XDevs[i], &VhvSettings, &PhaseCal);
+ 8005216:	f10d 0216 	add.w	r2, sp, #22
+ 800521a:	f10d 0117 	add.w	r1, sp, #23
+ 800521e:	4628      	mov	r0, r5
+ 8005220:	f000 fc94 	bl	8005b4c <VL53L0X_PerformRefCalibration>
+		  if( status ){
+ 8005224:	2800      	cmp	r0, #0
+ 8005226:	f47f af66 	bne.w	80050f6 <sts_tof_vl53l0x_SetupSingleShot+0x2e>
+		  status = VL53L0X_PerformRefSpadManagement(&VL53L0XDevs[i], &refSpadCount, &isApertureSpads);
+ 800522a:	f10d 020f 	add.w	r2, sp, #15
+ 800522e:	a904      	add	r1, sp, #16
+ 8005230:	4628      	mov	r0, r5
+ 8005232:	f001 f857 	bl	80062e4 <VL53L0X_PerformRefSpadManagement>
+		  if( status ){
+ 8005236:	2800      	cmp	r0, #0
+ 8005238:	f47f af64 	bne.w	8005104 <sts_tof_vl53l0x_SetupSingleShot+0x3c>
+		  status = VL53L0X_SetDeviceMode(&VL53L0XDevs[i], VL53L0X_DEVICEMODE_SINGLE_RANGING); // Setup in single ranging mode
+ 800523c:	2100      	movs	r1, #0
+ 800523e:	4628      	mov	r0, r5
+ 8005240:	f000 f926 	bl	8005490 <VL53L0X_SetDeviceMode>
+		  if( status ){
+ 8005244:	2800      	cmp	r0, #0
+ 8005246:	f47f af64 	bne.w	8005112 <sts_tof_vl53l0x_SetupSingleShot+0x4a>
+		  status = VL53L0X_SetLimitCheckEnable(&VL53L0XDevs[i], VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE, 1); // Enable Sigma limit
+ 800524a:	2201      	movs	r2, #1
+ 800524c:	2100      	movs	r1, #0
+ 800524e:	4628      	mov	r0, r5
+ 8005250:	f000 fa46 	bl	80056e0 <VL53L0X_SetLimitCheckEnable>
+		  if( status ){
+ 8005254:	2800      	cmp	r0, #0
+ 8005256:	f47f af63 	bne.w	8005120 <sts_tof_vl53l0x_SetupSingleShot+0x58>
+		  status = VL53L0X_SetLimitCheckEnable(&VL53L0XDevs[i], VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE, 1); // Enable Signa limit
+ 800525a:	2201      	movs	r2, #1
+ 800525c:	4611      	mov	r1, r2
+ 800525e:	4628      	mov	r0, r5
+ 8005260:	f000 fa3e 	bl	80056e0 <VL53L0X_SetLimitCheckEnable>
+		  if( status ){
+ 8005264:	2800      	cmp	r0, #0
+ 8005266:	f47f af62 	bne.w	800512e <sts_tof_vl53l0x_SetupSingleShot+0x66>
+		  switch(rangingConfig) {
+ 800526a:	2e01      	cmp	r6, #1
+ 800526c:	f43f af66 	beq.w	800513c <sts_tof_vl53l0x_SetupSingleShot+0x74>
+ 8005270:	2e02      	cmp	r6, #2
+ 8005272:	f43f af6e 	beq.w	8005152 <sts_tof_vl53l0x_SetupSingleShot+0x8a>
+ 8005276:	b136      	cbz	r6, 8005286 <sts_tof_vl53l0x_SetupSingleShot+0x1be>
+				  APP_LOG(TS_OFF, VLEVEL_L, "Not Supported");
+ 8005278:	4b27      	ldr	r3, [pc, #156]	; (8005318 <sts_tof_vl53l0x_SetupSingleShot+0x250>)
+ 800527a:	2200      	movs	r2, #0
+ 800527c:	4611      	mov	r1, r2
+ 800527e:	2001      	movs	r0, #1
+ 8005280:	f011 fc5a 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+			  break;
+ 8005284:	e76f      	b.n	8005166 <sts_tof_vl53l0x_SetupSingleShot+0x9e>
+		  switch(rangingConfig) {
+ 8005286:	f04f 0b0e 	mov.w	fp, #14
+ 800528a:	f04f 0a12 	mov.w	sl, #18
+ 800528e:	f248 09e8 	movw	r9, #33000	; 0x80e8
+ 8005292:	f44f 1870 	mov.w	r8, #3932160	; 0x3c0000
+ 8005296:	f641 1799 	movw	r7, #6553	; 0x1999
+ 800529a:	e764      	b.n	8005166 <sts_tof_vl53l0x_SetupSingleShot+0x9e>
+			  APP_LOG(TS_OFF, VLEVEL_L, "VL53L0X_SetLimitCheckValue failed\n");
+ 800529c:	4b1f      	ldr	r3, [pc, #124]	; (800531c <sts_tof_vl53l0x_SetupSingleShot+0x254>)
+ 800529e:	2200      	movs	r2, #0
+ 80052a0:	4611      	mov	r1, r2
+ 80052a2:	2001      	movs	r0, #1
+ 80052a4:	f011 fc48 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+ 80052a8:	e765      	b.n	8005176 <sts_tof_vl53l0x_SetupSingleShot+0xae>
+			  APP_LOG(TS_OFF, VLEVEL_L, "VL53L0X_SetLimitCheckValue failed\n");
+ 80052aa:	4b1c      	ldr	r3, [pc, #112]	; (800531c <sts_tof_vl53l0x_SetupSingleShot+0x254>)
+ 80052ac:	2200      	movs	r2, #0
+ 80052ae:	4611      	mov	r1, r2
+ 80052b0:	2001      	movs	r0, #1
+ 80052b2:	f011 fc41 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+ 80052b6:	e766      	b.n	8005186 <sts_tof_vl53l0x_SetupSingleShot+0xbe>
+			  APP_LOG(TS_OFF, VLEVEL_L, "VL53L0X_SetMeasurementTimingBudgetMicroSeconds failed\n");
+ 80052b8:	4b19      	ldr	r3, [pc, #100]	; (8005320 <sts_tof_vl53l0x_SetupSingleShot+0x258>)
+ 80052ba:	2200      	movs	r2, #0
+ 80052bc:	4611      	mov	r1, r2
+ 80052be:	2001      	movs	r0, #1
+ 80052c0:	f011 fc3a 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+ 80052c4:	e766      	b.n	8005194 <sts_tof_vl53l0x_SetupSingleShot+0xcc>
+			  APP_LOG(TS_OFF, VLEVEL_L, "VL53L0X_SetVcselPulsePeriod failed\n");
+ 80052c6:	4b17      	ldr	r3, [pc, #92]	; (8005324 <sts_tof_vl53l0x_SetupSingleShot+0x25c>)
+ 80052c8:	2200      	movs	r2, #0
+ 80052ca:	4611      	mov	r1, r2
+ 80052cc:	2001      	movs	r0, #1
+ 80052ce:	f011 fc33 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+ 80052d2:	e767      	b.n	80051a4 <sts_tof_vl53l0x_SetupSingleShot+0xdc>
+			  APP_LOG(TS_OFF, VLEVEL_L, "VL53L0X_SetVcselPulsePeriod failed\n");
+ 80052d4:	4b13      	ldr	r3, [pc, #76]	; (8005324 <sts_tof_vl53l0x_SetupSingleShot+0x25c>)
+ 80052d6:	2200      	movs	r2, #0
+ 80052d8:	4611      	mov	r1, r2
+ 80052da:	2001      	movs	r0, #1
+ 80052dc:	f011 fc2c 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+ 80052e0:	e768      	b.n	80051b4 <sts_tof_vl53l0x_SetupSingleShot+0xec>
+			  APP_LOG(TS_OFF, VLEVEL_L, "VL53L0X_PerformRefCalibration failed\n");
+ 80052e2:	4b06      	ldr	r3, [pc, #24]	; (80052fc <sts_tof_vl53l0x_SetupSingleShot+0x234>)
+ 80052e4:	2200      	movs	r2, #0
+ 80052e6:	4611      	mov	r1, r2
+ 80052e8:	2001      	movs	r0, #1
+ 80052ea:	f011 fc25 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+ 80052ee:	e76b      	b.n	80051c8 <sts_tof_vl53l0x_SetupSingleShot+0x100>
+
+		}
+	}
+  
+}
+ 80052f0:	b007      	add	sp, #28
+ 80052f2:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 80052f6:	bf00      	nop
+ 80052f8:	08018324 	.word	0x08018324
+ 80052fc:	08018340 	.word	0x08018340
+ 8005300:	08018368 	.word	0x08018368
+ 8005304:	08018394 	.word	0x08018394
+ 8005308:	080183b4 	.word	0x080183b4
+ 800530c:	00030d40 	.word	0x00030d40
+ 8005310:	200000bc 	.word	0x200000bc
+ 8005314:	080182f8 	.word	0x080182f8
+ 8005318:	080183d8 	.word	0x080183d8
+ 800531c:	080183e8 	.word	0x080183e8
+ 8005320:	0801840c 	.word	0x0801840c
+ 8005324:	08018444 	.word	0x08018444
+
+08005328 <sts_tof_vl53l0x_Sensor_SetNewRange>:
+
+
+/* Store new ranging data into the device structure, apply leaky integrator if needed */
+void sts_tof_vl53l0x_Sensor_SetNewRange(VL53L0X_Dev_t *pDev, VL53L0X_RangingMeasurementData_t *pRange)
+{
+    if( pRange->RangeStatus == 0 ){
+ 8005328:	7e0b      	ldrb	r3, [r1, #24]
+ 800532a:	b9c3      	cbnz	r3, 800535e <sts_tof_vl53l0x_Sensor_SetNewRange+0x36>
+        if( pDev->LeakyFirst ){
+ 800532c:	f8d0 317c 	ldr.w	r3, [r0, #380]	; 0x17c
+ 8005330:	b133      	cbz	r3, 8005340 <sts_tof_vl53l0x_Sensor_SetNewRange+0x18>
+            pDev->LeakyFirst = 0;
+ 8005332:	2300      	movs	r3, #0
+ 8005334:	f8c0 317c 	str.w	r3, [r0, #380]	; 0x17c
+            pDev->LeakyRange = pRange->RangeMilliMeter;
+ 8005338:	890b      	ldrh	r3, [r1, #8]
+ 800533a:	f8c0 3178 	str.w	r3, [r0, #376]	; 0x178
+ 800533e:	4770      	bx	lr
+        }
+        else{
+            pDev->LeakyRange = (pDev->LeakyRange*LeakyFactorFix8 + (256-LeakyFactorFix8)*pRange->RangeMilliMeter)>>8;
+ 8005340:	4b09      	ldr	r3, [pc, #36]	; (8005368 <sts_tof_vl53l0x_Sensor_SetNewRange+0x40>)
+ 8005342:	681a      	ldr	r2, [r3, #0]
+ 8005344:	f5c2 7380 	rsb	r3, r2, #256	; 0x100
+ 8005348:	8909      	ldrh	r1, [r1, #8]
+ 800534a:	fb01 f303 	mul.w	r3, r1, r3
+ 800534e:	f8d0 1178 	ldr.w	r1, [r0, #376]	; 0x178
+ 8005352:	fb02 3301 	mla	r3, r2, r1, r3
+ 8005356:	121b      	asrs	r3, r3, #8
+ 8005358:	f8c0 3178 	str.w	r3, [r0, #376]	; 0x178
+ 800535c:	4770      	bx	lr
+        }
+    }
+    else{
+        pDev->LeakyFirst = 1;
+ 800535e:	2301      	movs	r3, #1
+ 8005360:	f8c0 317c 	str.w	r3, [r0, #380]	; 0x17c
+    }
+}
+ 8005364:	4770      	bx	lr
+ 8005366:	bf00      	nop
+ 8005368:	200000b8 	.word	0x200000b8
+
+0800536c <STS_TOF_VL53L0X_Range_Process>:
+
+/* USER CODE END 0 */
+
+void STS_TOF_VL53L0X_Range_Process(void)
+{
+ 800536c:	b570      	push	{r4, r5, r6, lr}
+ 800536e:	b084      	sub	sp, #16
+  int status=0, i;
+  RangingConfig_e RangingConfig = HIGH_ACCURACY; //HIGH_ACCURACY;		//LONG_RANGE;
+  XWL55_WLE5_53L0X_Init();
+ 8005370:	f7ff fda8 	bl	8004ec4 <XWL55_WLE5_53L0X_Init>
+  if ((nDevMask ==0) || (nSensorPresent ==0))
+ 8005374:	4b38      	ldr	r3, [pc, #224]	; (8005458 <STS_TOF_VL53L0X_Range_Process+0xec>)
+ 8005376:	681b      	ldr	r3, [r3, #0]
+ 8005378:	b113      	cbz	r3, 8005380 <STS_TOF_VL53L0X_Range_Process+0x14>
+ 800537a:	4b38      	ldr	r3, [pc, #224]	; (800545c <STS_TOF_VL53L0X_Range_Process+0xf0>)
+ 800537c:	681b      	ldr	r3, [r3, #0]
+ 800537e:	b953      	cbnz	r3, 8005396 <STS_TOF_VL53L0X_Range_Process+0x2a>
+  {
+	  nSensorPresent = sts_tof_vl53l0x_DetectSensors();					// confirm sensor online
+ 8005380:	f7ff fdfa 	bl	8004f78 <sts_tof_vl53l0x_DetectSensors>
+ 8005384:	4b35      	ldr	r3, [pc, #212]	; (800545c <STS_TOF_VL53L0X_Range_Process+0xf0>)
+ 8005386:	6018      	str	r0, [r3, #0]
+	  APP_LOG(TS_OFF, VLEVEL_L, "\r\n %u pcs sensor(s) online \r\n", nSensorPresent);
+ 8005388:	9000      	str	r0, [sp, #0]
+ 800538a:	4b35      	ldr	r3, [pc, #212]	; (8005460 <STS_TOF_VL53L0X_Range_Process+0xf4>)
+ 800538c:	2200      	movs	r2, #0
+ 800538e:	4611      	mov	r1, r2
+ 8005390:	2001      	movs	r0, #1
+ 8005392:	f011 fbd1 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+  }
+  sts_tof_distance_data[0] = 0;
+ 8005396:	4b33      	ldr	r3, [pc, #204]	; (8005464 <STS_TOF_VL53L0X_Range_Process+0xf8>)
+ 8005398:	2200      	movs	r2, #0
+ 800539a:	601a      	str	r2, [r3, #0]
+  sts_tof_distance_data[1] = 0;
+ 800539c:	605a      	str	r2, [r3, #4]
+  sts_tof_distance_data[2] = 0;
+ 800539e:	609a      	str	r2, [r3, #8]
+
+  if (nSensorPresent > 0)
+ 80053a0:	4b2e      	ldr	r3, [pc, #184]	; (800545c <STS_TOF_VL53L0X_Range_Process+0xf0>)
+ 80053a2:	681b      	ldr	r3, [r3, #0]
+ 80053a4:	4293      	cmp	r3, r2
+ 80053a6:	dc01      	bgt.n	80053ac <STS_TOF_VL53L0X_Range_Process+0x40>
+		  APP_LOG(TS_OFF, VLEVEL_L, "\r\n## Measured Range: \r\nTOF #0 = %4u mm, \r\nTOF #1 = %4u mm, \r\nTOF #2 = %4u mm\r\n",
+				  (int)sts_tof_distance_data[0],(int)sts_tof_distance_data[1],(int)sts_tof_distance_data[2]);
+	  }
+
+  }   // nSensorPresent >0
+}
+ 80053a8:	b004      	add	sp, #16
+ 80053aa:	bd70      	pop	{r4, r5, r6, pc}
+	  sts_tof_vl53l0x_SetupSingleShot(RangingConfig);
+ 80053ac:	2002      	movs	r0, #2
+ 80053ae:	f7ff fe8b 	bl	80050c8 <sts_tof_vl53l0x_SetupSingleShot>
+	  sts_tof_distance_data[0]=0;
+ 80053b2:	4b2c      	ldr	r3, [pc, #176]	; (8005464 <STS_TOF_VL53L0X_Range_Process+0xf8>)
+ 80053b4:	2400      	movs	r4, #0
+ 80053b6:	601c      	str	r4, [r3, #0]
+	  sts_tof_distance_data[1]=0;
+ 80053b8:	605c      	str	r4, [r3, #4]
+	  sts_tof_distance_data[2]=0;
+ 80053ba:	609c      	str	r4, [r3, #8]
+	  sensor_data_ready = 0 ;
+ 80053bc:	4b2a      	ldr	r3, [pc, #168]	; (8005468 <STS_TOF_VL53L0X_Range_Process+0xfc>)
+ 80053be:	701c      	strb	r4, [r3, #0]
+	  for (i=0; i< MAX_TOF_COUNT; i++)
+ 80053c0:	e00b      	b.n	80053da <STS_TOF_VL53L0X_Range_Process+0x6e>
+					 APP_LOG(TS_OFF, VLEVEL_L,"\r\n#%u sensor   ERR code = %04u\r\n",i, ERR_DEMO_RANGE_ONE);
+ 80053c2:	2001      	movs	r0, #1
+ 80053c4:	9001      	str	r0, [sp, #4]
+ 80053c6:	9400      	str	r4, [sp, #0]
+ 80053c8:	4b28      	ldr	r3, [pc, #160]	; (800546c <STS_TOF_VL53L0X_Range_Process+0x100>)
+ 80053ca:	2200      	movs	r2, #0
+ 80053cc:	4611      	mov	r1, r2
+ 80053ce:	f011 fbb3 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+		  HAL_Delay(30);
+ 80053d2:	201e      	movs	r0, #30
+ 80053d4:	f7fd fc6c 	bl	8002cb0 <HAL_Delay>
+	  for (i=0; i< MAX_TOF_COUNT; i++)
+ 80053d8:	3401      	adds	r4, #1
+ 80053da:	2c02      	cmp	r4, #2
+ 80053dc:	dc2a      	bgt.n	8005434 <STS_TOF_VL53L0X_Range_Process+0xc8>
+		  if (VL53L0XDevs[i].Present ==1)
+ 80053de:	4b24      	ldr	r3, [pc, #144]	; (8005470 <STS_TOF_VL53L0X_Range_Process+0x104>)
+ 80053e0:	f44f 72c8 	mov.w	r2, #400	; 0x190
+ 80053e4:	fb02 3304 	mla	r3, r2, r4, r3
+ 80053e8:	f8d3 3168 	ldr.w	r3, [r3, #360]	; 0x168
+ 80053ec:	2b01      	cmp	r3, #1
+ 80053ee:	d1f0      	bne.n	80053d2 <STS_TOF_VL53L0X_Range_Process+0x66>
+			status = VL53L0X_PerformSingleRangingMeasurement(&VL53L0XDevs[i], &RangingMeasurementData);
+ 80053f0:	4d1f      	ldr	r5, [pc, #124]	; (8005470 <STS_TOF_VL53L0X_Range_Process+0x104>)
+ 80053f2:	fb02 5504 	mla	r5, r2, r4, r5
+ 80053f6:	491f      	ldr	r1, [pc, #124]	; (8005474 <STS_TOF_VL53L0X_Range_Process+0x108>)
+ 80053f8:	4628      	mov	r0, r5
+ 80053fa:	f000 fd88 	bl	8005f0e <VL53L0X_PerformSingleRangingMeasurement>
+			if( status ==0 )
+ 80053fe:	2800      	cmp	r0, #0
+ 8005400:	d1e7      	bne.n	80053d2 <STS_TOF_VL53L0X_Range_Process+0x66>
+				sts_tof_vl53l0x_Sensor_SetNewRange(&VL53L0XDevs[i],&RangingMeasurementData);
+ 8005402:	4e1c      	ldr	r6, [pc, #112]	; (8005474 <STS_TOF_VL53L0X_Range_Process+0x108>)
+ 8005404:	4631      	mov	r1, r6
+ 8005406:	4628      	mov	r0, r5
+ 8005408:	f7ff ff8e 	bl	8005328 <sts_tof_vl53l0x_Sensor_SetNewRange>
+				if( RangingMeasurementData.RangeStatus == 0 )
+ 800540c:	7e33      	ldrb	r3, [r6, #24]
+ 800540e:	2b00      	cmp	r3, #0
+ 8005410:	d1d7      	bne.n	80053c2 <STS_TOF_VL53L0X_Range_Process+0x56>
+				  sts_tof_distance_data[i] = (int)VL53L0XDevs[i].LeakyRange;
+ 8005412:	f8d5 2178 	ldr.w	r2, [r5, #376]	; 0x178
+ 8005416:	4b13      	ldr	r3, [pc, #76]	; (8005464 <STS_TOF_VL53L0X_Range_Process+0xf8>)
+ 8005418:	f843 2024 	str.w	r2, [r3, r4, lsl #2]
+		  		  nDevMask |= (1 << i);
+ 800541c:	2201      	movs	r2, #1
+ 800541e:	40a2      	lsls	r2, r4
+ 8005420:	490d      	ldr	r1, [pc, #52]	; (8005458 <STS_TOF_VL53L0X_Range_Process+0xec>)
+ 8005422:	680b      	ldr	r3, [r1, #0]
+ 8005424:	4313      	orrs	r3, r2
+ 8005426:	600b      	str	r3, [r1, #0]
+		  		  sensor_data_ready |= 1;
+ 8005428:	4a0f      	ldr	r2, [pc, #60]	; (8005468 <STS_TOF_VL53L0X_Range_Process+0xfc>)
+ 800542a:	7813      	ldrb	r3, [r2, #0]
+ 800542c:	f043 0301 	orr.w	r3, r3, #1
+ 8005430:	7013      	strb	r3, [r2, #0]
+ 8005432:	e7ce      	b.n	80053d2 <STS_TOF_VL53L0X_Range_Process+0x66>
+	  if (sensor_data_ready != 0) {
+ 8005434:	4b0c      	ldr	r3, [pc, #48]	; (8005468 <STS_TOF_VL53L0X_Range_Process+0xfc>)
+ 8005436:	781b      	ldrb	r3, [r3, #0]
+ 8005438:	2b00      	cmp	r3, #0
+ 800543a:	d0b5      	beq.n	80053a8 <STS_TOF_VL53L0X_Range_Process+0x3c>
+		  APP_LOG(TS_OFF, VLEVEL_L, "\r\n## Measured Range: \r\nTOF #0 = %4u mm, \r\nTOF #1 = %4u mm, \r\nTOF #2 = %4u mm\r\n",
+ 800543c:	4b09      	ldr	r3, [pc, #36]	; (8005464 <STS_TOF_VL53L0X_Range_Process+0xf8>)
+ 800543e:	681a      	ldr	r2, [r3, #0]
+ 8005440:	6859      	ldr	r1, [r3, #4]
+ 8005442:	689b      	ldr	r3, [r3, #8]
+ 8005444:	9302      	str	r3, [sp, #8]
+ 8005446:	9101      	str	r1, [sp, #4]
+ 8005448:	9200      	str	r2, [sp, #0]
+ 800544a:	4b0b      	ldr	r3, [pc, #44]	; (8005478 <STS_TOF_VL53L0X_Range_Process+0x10c>)
+ 800544c:	2200      	movs	r2, #0
+ 800544e:	4611      	mov	r1, r2
+ 8005450:	2001      	movs	r0, #1
+ 8005452:	f011 fb71 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+}
+ 8005456:	e7a7      	b.n	80053a8 <STS_TOF_VL53L0X_Range_Process+0x3c>
+ 8005458:	20000ef4 	.word	0x20000ef4
+ 800545c:	20000efc 	.word	0x20000efc
+ 8005460:	08018468 	.word	0x08018468
+ 8005464:	20000f00 	.word	0x20000f00
+ 8005468:	20000e54 	.word	0x20000e54
+ 800546c:	08018488 	.word	0x08018488
+ 8005470:	200000bc 	.word	0x200000bc
+ 8005474:	20000ed8 	.word	0x20000ed8
+ 8005478:	080184ac 	.word	0x080184ac
+
+0800547c <VL53L0X_GetOffsetCalibrationDataMicroMeter>:
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetOffsetCalibrationDataMicroMeter(VL53L0X_DEV Dev,
+	int32_t *pOffsetCalibrationDataMicroMeter)
+{
+ 800547c:	b508      	push	{r3, lr}
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_get_offset_calibration_data_micro_meter(Dev,
+ 800547e:	f000 ff35 	bl	80062ec <VL53L0X_get_offset_calibration_data_micro_meter>
+		pOffsetCalibrationDataMicroMeter);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+ 8005482:	bd08      	pop	{r3, pc}
+
+08005484 <VL53L0X_SetDeviceAddress>:
+
+/* End Group PAL General Functions */
+
+/* Group PAL Init Functions */
+VL53L0X_Error VL53L0X_SetDeviceAddress(VL53L0X_DEV Dev, uint8_t DeviceAddress)
+{
+ 8005484:	b508      	push	{r3, lr}
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_WrByte(Dev, VL53L0X_REG_I2C_SLAVE_DEVICE_ADDRESS,
+ 8005486:	084a      	lsrs	r2, r1, #1
+ 8005488:	218a      	movs	r1, #138	; 0x8a
+ 800548a:	f002 fde7 	bl	800805c <VL53L0X_WrByte>
+		DeviceAddress / 2);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+ 800548e:	bd08      	pop	{r3, pc}
+
+08005490 <VL53L0X_SetDeviceMode>:
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+	LOG_FUNCTION_START("%d", (int)DeviceMode);
+
+	switch (DeviceMode) {
+ 8005490:	2915      	cmp	r1, #21
+ 8005492:	d80a      	bhi.n	80054aa <VL53L0X_SetDeviceMode+0x1a>
+ 8005494:	4b06      	ldr	r3, [pc, #24]	; (80054b0 <VL53L0X_SetDeviceMode+0x20>)
+ 8005496:	40cb      	lsrs	r3, r1
+ 8005498:	f013 0f01 	tst.w	r3, #1
+ 800549c:	d102      	bne.n	80054a4 <VL53L0X_SetDeviceMode+0x14>
+ 800549e:	f06f 0007 	mvn.w	r0, #7
+		Status = VL53L0X_ERROR_MODE_NOT_SUPPORTED;
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+ 80054a2:	4770      	bx	lr
+		VL53L0X_SETPARAMETERFIELD(Dev, DeviceMode, DeviceMode);
+ 80054a4:	7401      	strb	r1, [r0, #16]
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ 80054a6:	2000      	movs	r0, #0
+		break;
+ 80054a8:	4770      	bx	lr
+	switch (DeviceMode) {
+ 80054aa:	f06f 0007 	mvn.w	r0, #7
+ 80054ae:	4770      	bx	lr
+ 80054b0:	0030000b 	.word	0x0030000b
+
+080054b4 <VL53L0X_GetDeviceMode>:
+	VL53L0X_DeviceModes *pDeviceMode)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	VL53L0X_GETPARAMETERFIELD(Dev, DeviceMode, *pDeviceMode);
+ 80054b4:	7c03      	ldrb	r3, [r0, #16]
+ 80054b6:	700b      	strb	r3, [r1, #0]
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+ 80054b8:	2000      	movs	r0, #0
+ 80054ba:	4770      	bx	lr
+
+080054bc <VL53L0X_GetFractionEnable>:
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetFractionEnable(VL53L0X_DEV Dev, uint8_t *pEnabled)
+{
+ 80054bc:	b510      	push	{r4, lr}
+ 80054be:	460c      	mov	r4, r1
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_RdByte(Dev, VL53L0X_REG_SYSTEM_RANGE_CONFIG, pEnabled);
+ 80054c0:	460a      	mov	r2, r1
+ 80054c2:	2109      	movs	r1, #9
+ 80054c4:	f002 fdec 	bl	80080a0 <VL53L0X_RdByte>
+
+	if (Status == VL53L0X_ERROR_NONE)
+ 80054c8:	b918      	cbnz	r0, 80054d2 <VL53L0X_GetFractionEnable+0x16>
+		*pEnabled = (*pEnabled & 1);
+ 80054ca:	7823      	ldrb	r3, [r4, #0]
+ 80054cc:	f003 0301 	and.w	r3, r3, #1
+ 80054d0:	7023      	strb	r3, [r4, #0]
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+ 80054d2:	bd10      	pop	{r4, pc}
+
+080054d4 <VL53L0X_SetMeasurementTimingBudgetMicroSeconds>:
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_SetMeasurementTimingBudgetMicroSeconds(VL53L0X_DEV Dev,
+	uint32_t MeasurementTimingBudgetMicroSeconds)
+{
+ 80054d4:	b508      	push	{r3, lr}
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_set_measurement_timing_budget_micro_seconds(Dev,
+ 80054d6:	f002 f929 	bl	800772c <VL53L0X_set_measurement_timing_budget_micro_seconds>
+		MeasurementTimingBudgetMicroSeconds);
+
+	LOG_FUNCTION_END(Status);
+
+	return Status;
+}
+ 80054da:	bd08      	pop	{r3, pc}
+
+080054dc <VL53L0X_GetMeasurementTimingBudgetMicroSeconds>:
+
+VL53L0X_Error VL53L0X_GetMeasurementTimingBudgetMicroSeconds(VL53L0X_DEV Dev,
+	uint32_t *pMeasurementTimingBudgetMicroSeconds)
+{
+ 80054dc:	b508      	push	{r3, lr}
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_get_measurement_timing_budget_micro_seconds(Dev,
+ 80054de:	f002 f998 	bl	8007812 <VL53L0X_get_measurement_timing_budget_micro_seconds>
+		pMeasurementTimingBudgetMicroSeconds);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+ 80054e2:	bd08      	pop	{r3, pc}
+
+080054e4 <VL53L0X_SetVcselPulsePeriod>:
+
+VL53L0X_Error VL53L0X_SetVcselPulsePeriod(VL53L0X_DEV Dev,
+	VL53L0X_VcselPeriod VcselPeriodType, uint8_t VCSELPulsePeriodPCLK)
+{
+ 80054e4:	b508      	push	{r3, lr}
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_set_vcsel_pulse_period(Dev, VcselPeriodType,
+ 80054e6:	f001 ff74 	bl	80073d2 <VL53L0X_set_vcsel_pulse_period>
+		VCSELPulsePeriodPCLK);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+ 80054ea:	bd08      	pop	{r3, pc}
+
+080054ec <VL53L0X_GetVcselPulsePeriod>:
+
+VL53L0X_Error VL53L0X_GetVcselPulsePeriod(VL53L0X_DEV Dev,
+	VL53L0X_VcselPeriod VcselPeriodType, uint8_t *pVCSELPulsePeriodPCLK)
+{
+ 80054ec:	b508      	push	{r3, lr}
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_get_vcsel_pulse_period(Dev, VcselPeriodType,
+ 80054ee:	f002 f8fd 	bl	80076ec <VL53L0X_get_vcsel_pulse_period>
+		pVCSELPulsePeriodPCLK);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+ 80054f2:	bd08      	pop	{r3, pc}
+
+080054f4 <VL53L0X_SetSequenceStepEnable>:
+
+VL53L0X_Error VL53L0X_SetSequenceStepEnable(VL53L0X_DEV Dev,
+	VL53L0X_SequenceStepId SequenceStepId, uint8_t SequenceStepEnabled)
+{
+ 80054f4:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 80054f6:	b083      	sub	sp, #12
+ 80054f8:	4605      	mov	r5, r0
+ 80054fa:	460f      	mov	r7, r1
+ 80054fc:	4616      	mov	r6, r2
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t SequenceConfig = 0;
+ 80054fe:	2300      	movs	r3, #0
+ 8005500:	f88d 3007 	strb.w	r3, [sp, #7]
+	uint8_t SequenceConfigNew = 0;
+	uint32_t MeasurementTimingBudgetMicroSeconds;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_RdByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
+ 8005504:	f10d 0207 	add.w	r2, sp, #7
+ 8005508:	2101      	movs	r1, #1
+ 800550a:	f002 fdc9 	bl	80080a0 <VL53L0X_RdByte>
+		&SequenceConfig);
+
+	SequenceConfigNew = SequenceConfig;
+ 800550e:	f89d 3007 	ldrb.w	r3, [sp, #7]
+
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8005512:	4604      	mov	r4, r0
+ 8005514:	bb68      	cbnz	r0, 8005572 <VL53L0X_SetSequenceStepEnable+0x7e>
+		if (SequenceStepEnabled == 1) {
+ 8005516:	2e01      	cmp	r6, #1
+ 8005518:	d006      	beq.n	8005528 <VL53L0X_SetSequenceStepEnable+0x34>
+				Status = VL53L0X_ERROR_INVALID_PARAMS;
+			}
+		} else {
+			/* Disable requested sequence step
+			 */
+			switch (SequenceStepId) {
+ 800551a:	2f04      	cmp	r7, #4
+ 800551c:	d838      	bhi.n	8005590 <VL53L0X_SetSequenceStepEnable+0x9c>
+ 800551e:	e8df f007 	tbb	[pc, r7]
+ 8005522:	1c19      	.short	0x1c19
+ 8005524:	221f      	.short	0x221f
+ 8005526:	25          	.byte	0x25
+ 8005527:	00          	.byte	0x00
+			switch (SequenceStepId) {
+ 8005528:	2f04      	cmp	r7, #4
+ 800552a:	d82d      	bhi.n	8005588 <VL53L0X_SetSequenceStepEnable+0x94>
+ 800552c:	e8df f007 	tbb	[pc, r7]
+ 8005530:	0c090603 	.word	0x0c090603
+ 8005534:	0f          	.byte	0x0f
+ 8005535:	00          	.byte	0x00
+				SequenceConfigNew |= 0x10;
+ 8005536:	f043 0610 	orr.w	r6, r3, #16
+				break;
+ 800553a:	e01b      	b.n	8005574 <VL53L0X_SetSequenceStepEnable+0x80>
+				SequenceConfigNew |= 0x28;
+ 800553c:	f043 0628 	orr.w	r6, r3, #40	; 0x28
+				break;
+ 8005540:	e018      	b.n	8005574 <VL53L0X_SetSequenceStepEnable+0x80>
+				SequenceConfigNew |= 0x04;
+ 8005542:	f043 0604 	orr.w	r6, r3, #4
+				break;
+ 8005546:	e015      	b.n	8005574 <VL53L0X_SetSequenceStepEnable+0x80>
+				SequenceConfigNew |= 0x40;
+ 8005548:	f043 0640 	orr.w	r6, r3, #64	; 0x40
+				break;
+ 800554c:	e012      	b.n	8005574 <VL53L0X_SetSequenceStepEnable+0x80>
+				SequenceConfigNew |= 0x80;
+ 800554e:	f043 0680 	orr.w	r6, r3, #128	; 0x80
+				break;
+ 8005552:	e00f      	b.n	8005574 <VL53L0X_SetSequenceStepEnable+0x80>
+			case VL53L0X_SEQUENCESTEP_TCC:
+				SequenceConfigNew &= 0xef;
+ 8005554:	f003 06ef 	and.w	r6, r3, #239	; 0xef
+				break;
+ 8005558:	e00c      	b.n	8005574 <VL53L0X_SetSequenceStepEnable+0x80>
+			case VL53L0X_SEQUENCESTEP_DSS:
+				SequenceConfigNew &= 0xd7;
+ 800555a:	f003 06d7 	and.w	r6, r3, #215	; 0xd7
+				break;
+ 800555e:	e009      	b.n	8005574 <VL53L0X_SetSequenceStepEnable+0x80>
+			case VL53L0X_SEQUENCESTEP_MSRC:
+				SequenceConfigNew &= 0xfb;
+ 8005560:	f003 06fb 	and.w	r6, r3, #251	; 0xfb
+				break;
+ 8005564:	e006      	b.n	8005574 <VL53L0X_SetSequenceStepEnable+0x80>
+			case VL53L0X_SEQUENCESTEP_PRE_RANGE:
+				SequenceConfigNew &= 0xbf;
+ 8005566:	f003 06bf 	and.w	r6, r3, #191	; 0xbf
+				break;
+ 800556a:	e003      	b.n	8005574 <VL53L0X_SetSequenceStepEnable+0x80>
+			case VL53L0X_SEQUENCESTEP_FINAL_RANGE:
+				SequenceConfigNew &= 0x7f;
+ 800556c:	f003 067f 	and.w	r6, r3, #127	; 0x7f
+				break;
+ 8005570:	e000      	b.n	8005574 <VL53L0X_SetSequenceStepEnable+0x80>
+	SequenceConfigNew = SequenceConfig;
+ 8005572:	461e      	mov	r6, r3
+				Status = VL53L0X_ERROR_INVALID_PARAMS;
+			}
+		}
+	}
+
+	if (SequenceConfigNew != SequenceConfig) {
+ 8005574:	429e      	cmp	r6, r3
+ 8005576:	d004      	beq.n	8005582 <VL53L0X_SetSequenceStepEnable+0x8e>
+		/* Apply New Setting */
+		if (Status == VL53L0X_ERROR_NONE) {
+ 8005578:	b174      	cbz	r4, 8005598 <VL53L0X_SetSequenceStepEnable+0xa4>
+			Status = VL53L0X_WrByte(Dev,
+			VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG, SequenceConfigNew);
+		}
+		if (Status == VL53L0X_ERROR_NONE)
+ 800557a:	b90c      	cbnz	r4, 8005580 <VL53L0X_SetSequenceStepEnable+0x8c>
+			PALDevDataSet(Dev, SequenceConfig, SequenceConfigNew);
+ 800557c:	f885 6130 	strb.w	r6, [r5, #304]	; 0x130
+
+
+		/* Recalculate timing budget */
+		if (Status == VL53L0X_ERROR_NONE) {
+ 8005580:	b18c      	cbz	r4, 80055a6 <VL53L0X_SetSequenceStepEnable+0xb2>
+	}
+
+	LOG_FUNCTION_END(Status);
+
+	return Status;
+}
+ 8005582:	4620      	mov	r0, r4
+ 8005584:	b003      	add	sp, #12
+ 8005586:	bdf0      	pop	{r4, r5, r6, r7, pc}
+			switch (SequenceStepId) {
+ 8005588:	461e      	mov	r6, r3
+ 800558a:	f06f 0403 	mvn.w	r4, #3
+ 800558e:	e7f1      	b.n	8005574 <VL53L0X_SetSequenceStepEnable+0x80>
+			switch (SequenceStepId) {
+ 8005590:	461e      	mov	r6, r3
+ 8005592:	f06f 0403 	mvn.w	r4, #3
+ 8005596:	e7ed      	b.n	8005574 <VL53L0X_SetSequenceStepEnable+0x80>
+			Status = VL53L0X_WrByte(Dev,
+ 8005598:	4632      	mov	r2, r6
+ 800559a:	2101      	movs	r1, #1
+ 800559c:	4628      	mov	r0, r5
+ 800559e:	f002 fd5d 	bl	800805c <VL53L0X_WrByte>
+ 80055a2:	4604      	mov	r4, r0
+ 80055a4:	e7e9      	b.n	800557a <VL53L0X_SetSequenceStepEnable+0x86>
+			VL53L0X_SetMeasurementTimingBudgetMicroSeconds(Dev,
+ 80055a6:	6969      	ldr	r1, [r5, #20]
+ 80055a8:	4628      	mov	r0, r5
+ 80055aa:	f7ff ff93 	bl	80054d4 <VL53L0X_SetMeasurementTimingBudgetMicroSeconds>
+ 80055ae:	e7e8      	b.n	8005582 <VL53L0X_SetSequenceStepEnable+0x8e>
+
+080055b0 <sequence_step_enabled>:
+VL53L0X_Error sequence_step_enabled(VL53L0X_DEV Dev,
+	VL53L0X_SequenceStepId SequenceStepId, uint8_t SequenceConfig,
+	uint8_t *pSequenceStepEnabled)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	*pSequenceStepEnabled = 0;
+ 80055b0:	2000      	movs	r0, #0
+ 80055b2:	7018      	strb	r0, [r3, #0]
+	LOG_FUNCTION_START("");
+
+	switch (SequenceStepId) {
+ 80055b4:	2904      	cmp	r1, #4
+ 80055b6:	d81c      	bhi.n	80055f2 <sequence_step_enabled+0x42>
+ 80055b8:	e8df f001 	tbb	[pc, r1]
+ 80055bc:	120d0803 	.word	0x120d0803
+ 80055c0:	17          	.byte	0x17
+ 80055c1:	00          	.byte	0x00
+	case VL53L0X_SEQUENCESTEP_TCC:
+		*pSequenceStepEnabled = (SequenceConfig & 0x10) >> 4;
+ 80055c2:	f3c2 1200 	ubfx	r2, r2, #4, #1
+ 80055c6:	701a      	strb	r2, [r3, #0]
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ 80055c8:	2000      	movs	r0, #0
+		break;
+ 80055ca:	4770      	bx	lr
+	case VL53L0X_SEQUENCESTEP_DSS:
+		*pSequenceStepEnabled = (SequenceConfig & 0x08) >> 3;
+ 80055cc:	f3c2 02c0 	ubfx	r2, r2, #3, #1
+ 80055d0:	701a      	strb	r2, [r3, #0]
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ 80055d2:	2000      	movs	r0, #0
+		break;
+ 80055d4:	4770      	bx	lr
+	case VL53L0X_SEQUENCESTEP_MSRC:
+		*pSequenceStepEnabled = (SequenceConfig & 0x04) >> 2;
+ 80055d6:	f3c2 0280 	ubfx	r2, r2, #2, #1
+ 80055da:	701a      	strb	r2, [r3, #0]
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ 80055dc:	2000      	movs	r0, #0
+		break;
+ 80055de:	4770      	bx	lr
+	case VL53L0X_SEQUENCESTEP_PRE_RANGE:
+		*pSequenceStepEnabled = (SequenceConfig & 0x40) >> 6;
+ 80055e0:	f3c2 1280 	ubfx	r2, r2, #6, #1
+ 80055e4:	701a      	strb	r2, [r3, #0]
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ 80055e6:	2000      	movs	r0, #0
+		break;
+ 80055e8:	4770      	bx	lr
+	case VL53L0X_SEQUENCESTEP_FINAL_RANGE:
+		*pSequenceStepEnabled = (SequenceConfig & 0x80) >> 7;
+ 80055ea:	09d2      	lsrs	r2, r2, #7
+ 80055ec:	701a      	strb	r2, [r3, #0]
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ 80055ee:	2000      	movs	r0, #0
+		break;
+ 80055f0:	4770      	bx	lr
+	switch (SequenceStepId) {
+ 80055f2:	f06f 0003 	mvn.w	r0, #3
+		Status = VL53L0X_ERROR_INVALID_PARAMS;
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+ 80055f6:	4770      	bx	lr
+
+080055f8 <VL53L0X_GetSequenceStepEnables>:
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetSequenceStepEnables(VL53L0X_DEV Dev,
+	VL53L0X_SchedulerSequenceSteps_t *pSchedulerSequenceSteps)
+{
+ 80055f8:	b530      	push	{r4, r5, lr}
+ 80055fa:	b083      	sub	sp, #12
+ 80055fc:	4604      	mov	r4, r0
+ 80055fe:	460d      	mov	r5, r1
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t SequenceConfig = 0;
+ 8005600:	2300      	movs	r3, #0
+ 8005602:	f88d 3007 	strb.w	r3, [sp, #7]
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_RdByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
+ 8005606:	f10d 0207 	add.w	r2, sp, #7
+ 800560a:	2101      	movs	r1, #1
+ 800560c:	f002 fd48 	bl	80080a0 <VL53L0X_RdByte>
+		&SequenceConfig);
+
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8005610:	b128      	cbz	r0, 800561e <VL53L0X_GetSequenceStepEnables+0x26>
+		Status = sequence_step_enabled(Dev,
+		VL53L0X_SEQUENCESTEP_TCC, SequenceConfig,
+			&pSchedulerSequenceSteps->TccOn);
+	}
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8005612:	b160      	cbz	r0, 800562e <VL53L0X_GetSequenceStepEnables+0x36>
+		Status = sequence_step_enabled(Dev,
+		VL53L0X_SEQUENCESTEP_DSS, SequenceConfig,
+			&pSchedulerSequenceSteps->DssOn);
+	}
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8005614:	b198      	cbz	r0, 800563e <VL53L0X_GetSequenceStepEnables+0x46>
+		Status = sequence_step_enabled(Dev,
+		VL53L0X_SEQUENCESTEP_MSRC, SequenceConfig,
+			&pSchedulerSequenceSteps->MsrcOn);
+	}
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8005616:	b1d0      	cbz	r0, 800564e <VL53L0X_GetSequenceStepEnables+0x56>
+		Status = sequence_step_enabled(Dev,
+		VL53L0X_SEQUENCESTEP_PRE_RANGE, SequenceConfig,
+			&pSchedulerSequenceSteps->PreRangeOn);
+	}
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8005618:	b308      	cbz	r0, 800565e <VL53L0X_GetSequenceStepEnables+0x66>
+			&pSchedulerSequenceSteps->FinalRangeOn);
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+ 800561a:	b003      	add	sp, #12
+ 800561c:	bd30      	pop	{r4, r5, pc}
+		Status = sequence_step_enabled(Dev,
+ 800561e:	462b      	mov	r3, r5
+ 8005620:	f89d 2007 	ldrb.w	r2, [sp, #7]
+ 8005624:	2100      	movs	r1, #0
+ 8005626:	4620      	mov	r0, r4
+ 8005628:	f7ff ffc2 	bl	80055b0 <sequence_step_enabled>
+ 800562c:	e7f1      	b.n	8005612 <VL53L0X_GetSequenceStepEnables+0x1a>
+		Status = sequence_step_enabled(Dev,
+ 800562e:	1cab      	adds	r3, r5, #2
+ 8005630:	f89d 2007 	ldrb.w	r2, [sp, #7]
+ 8005634:	2101      	movs	r1, #1
+ 8005636:	4620      	mov	r0, r4
+ 8005638:	f7ff ffba 	bl	80055b0 <sequence_step_enabled>
+ 800563c:	e7ea      	b.n	8005614 <VL53L0X_GetSequenceStepEnables+0x1c>
+		Status = sequence_step_enabled(Dev,
+ 800563e:	1c6b      	adds	r3, r5, #1
+ 8005640:	f89d 2007 	ldrb.w	r2, [sp, #7]
+ 8005644:	2102      	movs	r1, #2
+ 8005646:	4620      	mov	r0, r4
+ 8005648:	f7ff ffb2 	bl	80055b0 <sequence_step_enabled>
+ 800564c:	e7e3      	b.n	8005616 <VL53L0X_GetSequenceStepEnables+0x1e>
+		Status = sequence_step_enabled(Dev,
+ 800564e:	1ceb      	adds	r3, r5, #3
+ 8005650:	f89d 2007 	ldrb.w	r2, [sp, #7]
+ 8005654:	2103      	movs	r1, #3
+ 8005656:	4620      	mov	r0, r4
+ 8005658:	f7ff ffaa 	bl	80055b0 <sequence_step_enabled>
+ 800565c:	e7dc      	b.n	8005618 <VL53L0X_GetSequenceStepEnables+0x20>
+		Status = sequence_step_enabled(Dev,
+ 800565e:	1d2b      	adds	r3, r5, #4
+ 8005660:	f89d 2007 	ldrb.w	r2, [sp, #7]
+ 8005664:	2104      	movs	r1, #4
+ 8005666:	4620      	mov	r0, r4
+ 8005668:	f7ff ffa2 	bl	80055b0 <sequence_step_enabled>
+ 800566c:	e7d5      	b.n	800561a <VL53L0X_GetSequenceStepEnables+0x22>
+
+0800566e <VL53L0X_GetInterMeasurementPeriodMilliSeconds>:
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetInterMeasurementPeriodMilliSeconds(VL53L0X_DEV Dev,
+	uint32_t *pInterMeasurementPeriodMilliSeconds)
+{
+ 800566e:	b530      	push	{r4, r5, lr}
+ 8005670:	b083      	sub	sp, #12
+ 8005672:	4605      	mov	r5, r0
+ 8005674:	460c      	mov	r4, r1
+	uint16_t osc_calibrate_val;
+	uint32_t IMPeriodMilliSeconds;
+
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_RdWord(Dev, VL53L0X_REG_OSC_CALIBRATE_VAL,
+ 8005676:	f10d 0206 	add.w	r2, sp, #6
+ 800567a:	21f8      	movs	r1, #248	; 0xf8
+ 800567c:	f002 fd44 	bl	8008108 <VL53L0X_RdWord>
+		&osc_calibrate_val);
+
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8005680:	b158      	cbz	r0, 800569a <VL53L0X_GetInterMeasurementPeriodMilliSeconds+0x2c>
+		Status = VL53L0X_RdDWord(Dev,
+		VL53L0X_REG_SYSTEM_INTERMEASUREMENT_PERIOD,
+			&IMPeriodMilliSeconds);
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8005682:	b940      	cbnz	r0, 8005696 <VL53L0X_GetInterMeasurementPeriodMilliSeconds+0x28>
+		if (osc_calibrate_val != 0) {
+ 8005684:	f8bd 3006 	ldrh.w	r3, [sp, #6]
+ 8005688:	b11b      	cbz	r3, 8005692 <VL53L0X_GetInterMeasurementPeriodMilliSeconds+0x24>
+			*pInterMeasurementPeriodMilliSeconds =
+				IMPeriodMilliSeconds / osc_calibrate_val;
+ 800568a:	9a00      	ldr	r2, [sp, #0]
+ 800568c:	fbb2 f2f3 	udiv	r2, r2, r3
+			*pInterMeasurementPeriodMilliSeconds =
+ 8005690:	6022      	str	r2, [r4, #0]
+		}
+		VL53L0X_SETPARAMETERFIELD(Dev,
+ 8005692:	6823      	ldr	r3, [r4, #0]
+ 8005694:	61ab      	str	r3, [r5, #24]
+			*pInterMeasurementPeriodMilliSeconds);
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+ 8005696:	b003      	add	sp, #12
+ 8005698:	bd30      	pop	{r4, r5, pc}
+		Status = VL53L0X_RdDWord(Dev,
+ 800569a:	466a      	mov	r2, sp
+ 800569c:	2104      	movs	r1, #4
+ 800569e:	4628      	mov	r0, r5
+ 80056a0:	f002 fd54 	bl	800814c <VL53L0X_RdDWord>
+ 80056a4:	e7ed      	b.n	8005682 <VL53L0X_GetInterMeasurementPeriodMilliSeconds+0x14>
+
+080056a6 <VL53L0X_GetXTalkCompensationEnable>:
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t Temp8;
+	LOG_FUNCTION_START("");
+
+	VL53L0X_GETPARAMETERFIELD(Dev, XTalkCompensationEnable, Temp8);
+ 80056a6:	7f03      	ldrb	r3, [r0, #28]
+	*pXTalkCompensationEnable = Temp8;
+ 80056a8:	700b      	strb	r3, [r1, #0]
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+ 80056aa:	2000      	movs	r0, #0
+ 80056ac:	4770      	bx	lr
+
+080056ae <VL53L0X_GetXTalkCompensationRateMegaCps>:
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetXTalkCompensationRateMegaCps(VL53L0X_DEV Dev,
+	FixPoint1616_t *pXTalkCompensationRateMegaCps)
+{
+ 80056ae:	b530      	push	{r4, r5, lr}
+ 80056b0:	b083      	sub	sp, #12
+ 80056b2:	4604      	mov	r4, r0
+ 80056b4:	460d      	mov	r5, r1
+	uint16_t Value;
+	FixPoint1616_t TempFix1616;
+
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_RdWord(Dev,
+ 80056b6:	f10d 0206 	add.w	r2, sp, #6
+ 80056ba:	2120      	movs	r1, #32
+ 80056bc:	f002 fd24 	bl	8008108 <VL53L0X_RdWord>
+	VL53L0X_REG_CROSSTALK_COMPENSATION_PEAK_RATE_MCPS, (uint16_t *)&Value);
+	if (Status == VL53L0X_ERROR_NONE) {
+ 80056c0:	b930      	cbnz	r0, 80056d0 <VL53L0X_GetXTalkCompensationRateMegaCps+0x22>
+		if (Value == 0) {
+ 80056c2:	f8bd 3006 	ldrh.w	r3, [sp, #6]
+ 80056c6:	b92b      	cbnz	r3, 80056d4 <VL53L0X_GetXTalkCompensationRateMegaCps+0x26>
+			/* the Xtalk is disabled return value from memory */
+			VL53L0X_GETPARAMETERFIELD(Dev,
+ 80056c8:	6a23      	ldr	r3, [r4, #32]
+				XTalkCompensationRateMegaCps, TempFix1616);
+			*pXTalkCompensationRateMegaCps = TempFix1616;
+ 80056ca:	602b      	str	r3, [r5, #0]
+			VL53L0X_SETPARAMETERFIELD(Dev, XTalkCompensationEnable,
+ 80056cc:	2300      	movs	r3, #0
+ 80056ce:	7723      	strb	r3, [r4, #28]
+		}
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+ 80056d0:	b003      	add	sp, #12
+ 80056d2:	bd30      	pop	{r4, r5, pc}
+			TempFix1616 = VL53L0X_FIXPOINT313TOFIXPOINT1616(Value);
+ 80056d4:	00db      	lsls	r3, r3, #3
+			*pXTalkCompensationRateMegaCps = TempFix1616;
+ 80056d6:	602b      	str	r3, [r5, #0]
+			VL53L0X_SETPARAMETERFIELD(Dev,
+ 80056d8:	6223      	str	r3, [r4, #32]
+			VL53L0X_SETPARAMETERFIELD(Dev, XTalkCompensationEnable,
+ 80056da:	2301      	movs	r3, #1
+ 80056dc:	7723      	strb	r3, [r4, #28]
+ 80056de:	e7f7      	b.n	80056d0 <VL53L0X_GetXTalkCompensationRateMegaCps+0x22>
+
+080056e0 <VL53L0X_SetLimitCheckEnable>:
+	uint8_t LimitCheckDisable = 0;
+	uint8_t Temp8;
+
+	LOG_FUNCTION_START("");
+
+	if (LimitCheckId >= VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS) {
+ 80056e0:	2905      	cmp	r1, #5
+ 80056e2:	d842      	bhi.n	800576a <VL53L0X_SetLimitCheckEnable+0x8a>
+{
+ 80056e4:	b570      	push	{r4, r5, r6, lr}
+ 80056e6:	4605      	mov	r5, r0
+ 80056e8:	460c      	mov	r4, r1
+ 80056ea:	4616      	mov	r6, r2
+		Status = VL53L0X_ERROR_INVALID_PARAMS;
+	} else {
+		if (LimitCheckEnable == 0) {
+ 80056ec:	b13a      	cbz	r2, 80056fe <VL53L0X_SetLimitCheckEnable+0x1e>
+			TempFix1616 = 0;
+			LimitCheckEnableInt = 0;
+			LimitCheckDisable = 1;
+
+		} else {
+			VL53L0X_GETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
+ 80056ee:	f101 030c 	add.w	r3, r1, #12
+ 80056f2:	eb00 0383 	add.w	r3, r0, r3, lsl #2
+ 80056f6:	685a      	ldr	r2, [r3, #4]
+				LimitCheckId, TempFix1616);
+			LimitCheckDisable = 0;
+ 80056f8:	2300      	movs	r3, #0
+			/* this to be sure to have either 0 or 1 */
+			LimitCheckEnableInt = 1;
+ 80056fa:	2101      	movs	r1, #1
+ 80056fc:	e002      	b.n	8005704 <VL53L0X_SetLimitCheckEnable+0x24>
+			LimitCheckEnableInt = 0;
+ 80056fe:	4611      	mov	r1, r2
+			LimitCheckDisable = 1;
+ 8005700:	2301      	movs	r3, #1
+			TempFix1616 = 0;
+ 8005702:	2200      	movs	r2, #0
+		}
+
+		switch (LimitCheckId) {
+ 8005704:	2c05      	cmp	r4, #5
+ 8005706:	d833      	bhi.n	8005770 <VL53L0X_SetLimitCheckEnable+0x90>
+ 8005708:	e8df f004 	tbb	[pc, r4]
+ 800570c:	18140703 	.word	0x18140703
+ 8005710:	231c      	.short	0x231c
+
+		case VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE:
+			/* internal computation: */
+			VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksEnable,
+ 8005712:	f885 1028 	strb.w	r1, [r5, #40]	; 0x28
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ 8005716:	2000      	movs	r0, #0
+ 8005718:	e006      	b.n	8005728 <VL53L0X_SetLimitCheckEnable+0x48>
+
+			break;
+
+		case VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE:
+
+			Status = VL53L0X_WrWord(Dev,
+ 800571a:	f3c2 224f 	ubfx	r2, r2, #9, #16
+ 800571e:	2144      	movs	r1, #68	; 0x44
+ 8005720:	4628      	mov	r0, r5
+ 8005722:	f002 fcab 	bl	800807c <VL53L0X_WrWord>
+
+		}
+
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8005726:	b920      	cbnz	r0, 8005732 <VL53L0X_SetLimitCheckEnable+0x52>
+		if (LimitCheckEnable == 0) {
+ 8005728:	b9d6      	cbnz	r6, 8005760 <VL53L0X_SetLimitCheckEnable+0x80>
+			VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksEnable,
+ 800572a:	442c      	add	r4, r5
+ 800572c:	2300      	movs	r3, #0
+ 800572e:	f884 3028 	strb.w	r3, [r4, #40]	; 0x28
+		}
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+ 8005732:	bd70      	pop	{r4, r5, r6, pc}
+			VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksEnable,
+ 8005734:	f885 102a 	strb.w	r1, [r5, #42]	; 0x2a
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ 8005738:	2000      	movs	r0, #0
+ 800573a:	e7f5      	b.n	8005728 <VL53L0X_SetLimitCheckEnable+0x48>
+			VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksEnable,
+ 800573c:	f885 102b 	strb.w	r1, [r5, #43]	; 0x2b
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ 8005740:	2000      	movs	r0, #0
+ 8005742:	e7f1      	b.n	8005728 <VL53L0X_SetLimitCheckEnable+0x48>
+			Status = VL53L0X_UpdateByte(Dev,
+ 8005744:	005b      	lsls	r3, r3, #1
+ 8005746:	22fe      	movs	r2, #254	; 0xfe
+ 8005748:	2160      	movs	r1, #96	; 0x60
+ 800574a:	4628      	mov	r0, r5
+ 800574c:	f002 fcc2 	bl	80080d4 <VL53L0X_UpdateByte>
+			break;
+ 8005750:	e7e9      	b.n	8005726 <VL53L0X_SetLimitCheckEnable+0x46>
+			Status = VL53L0X_UpdateByte(Dev,
+ 8005752:	011b      	lsls	r3, r3, #4
+ 8005754:	22ef      	movs	r2, #239	; 0xef
+ 8005756:	2160      	movs	r1, #96	; 0x60
+ 8005758:	4628      	mov	r0, r5
+ 800575a:	f002 fcbb 	bl	80080d4 <VL53L0X_UpdateByte>
+			break;
+ 800575e:	e7e2      	b.n	8005726 <VL53L0X_SetLimitCheckEnable+0x46>
+			VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksEnable,
+ 8005760:	4425      	add	r5, r4
+ 8005762:	2301      	movs	r3, #1
+ 8005764:	f885 3028 	strb.w	r3, [r5, #40]	; 0x28
+ 8005768:	e7e3      	b.n	8005732 <VL53L0X_SetLimitCheckEnable+0x52>
+		Status = VL53L0X_ERROR_INVALID_PARAMS;
+ 800576a:	f06f 0003 	mvn.w	r0, #3
+}
+ 800576e:	4770      	bx	lr
+		switch (LimitCheckId) {
+ 8005770:	f06f 0003 	mvn.w	r0, #3
+ 8005774:	e7dd      	b.n	8005732 <VL53L0X_SetLimitCheckEnable+0x52>
+
+08005776 <VL53L0X_GetLimitCheckEnable>:
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t Temp8;
+
+	LOG_FUNCTION_START("");
+
+	if (LimitCheckId >= VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS) {
+ 8005776:	2905      	cmp	r1, #5
+ 8005778:	d805      	bhi.n	8005786 <VL53L0X_GetLimitCheckEnable+0x10>
+		Status = VL53L0X_ERROR_INVALID_PARAMS;
+		*pLimitCheckEnable = 0;
+	} else {
+		VL53L0X_GETARRAYPARAMETERFIELD(Dev, LimitChecksEnable,
+ 800577a:	4408      	add	r0, r1
+ 800577c:	f890 3028 	ldrb.w	r3, [r0, #40]	; 0x28
+			LimitCheckId, Temp8);
+		*pLimitCheckEnable = Temp8;
+ 8005780:	7013      	strb	r3, [r2, #0]
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ 8005782:	2000      	movs	r0, #0
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+ 8005784:	4770      	bx	lr
+		*pLimitCheckEnable = 0;
+ 8005786:	2300      	movs	r3, #0
+ 8005788:	7013      	strb	r3, [r2, #0]
+		Status = VL53L0X_ERROR_INVALID_PARAMS;
+ 800578a:	f06f 0003 	mvn.w	r0, #3
+ 800578e:	4770      	bx	lr
+
+08005790 <VL53L0X_SetLimitCheckValue>:
+
+VL53L0X_Error VL53L0X_SetLimitCheckValue(VL53L0X_DEV Dev, uint16_t LimitCheckId,
+	FixPoint1616_t LimitCheckValue)
+{
+ 8005790:	b570      	push	{r4, r5, r6, lr}
+ 8005792:	4606      	mov	r6, r0
+ 8005794:	460c      	mov	r4, r1
+ 8005796:	4615      	mov	r5, r2
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t Temp8;
+
+	LOG_FUNCTION_START("");
+
+	VL53L0X_GETARRAYPARAMETERFIELD(Dev, LimitChecksEnable, LimitCheckId,
+ 8005798:	1843      	adds	r3, r0, r1
+ 800579a:	f893 3028 	ldrb.w	r3, [r3, #40]	; 0x28
+		Temp8);
+
+	if (Temp8 == 0) { /* disabled write only internal value */
+ 800579e:	b92b      	cbnz	r3, 80057ac <VL53L0X_SetLimitCheckValue+0x1c>
+		VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
+ 80057a0:	340c      	adds	r4, #12
+ 80057a2:	eb00 0084 	add.w	r0, r0, r4, lsl #2
+ 80057a6:	6042      	str	r2, [r0, #4]
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ 80057a8:	2000      	movs	r0, #0
+		}
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+ 80057aa:	bd70      	pop	{r4, r5, r6, pc}
+		switch (LimitCheckId) {
+ 80057ac:	2905      	cmp	r1, #5
+ 80057ae:	d81f      	bhi.n	80057f0 <VL53L0X_SetLimitCheckValue+0x60>
+ 80057b0:	e8df f001 	tbb	[pc, r1]
+ 80057b4:	15120a03 	.word	0x15120a03
+ 80057b8:	1818      	.short	0x1818
+			VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
+ 80057ba:	6372      	str	r2, [r6, #52]	; 0x34
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ 80057bc:	2000      	movs	r0, #0
+			VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
+ 80057be:	340c      	adds	r4, #12
+ 80057c0:	eb06 0384 	add.w	r3, r6, r4, lsl #2
+ 80057c4:	605d      	str	r5, [r3, #4]
+ 80057c6:	e7f0      	b.n	80057aa <VL53L0X_SetLimitCheckValue+0x1a>
+			Status = VL53L0X_WrWord(Dev,
+ 80057c8:	f3c2 224f 	ubfx	r2, r2, #9, #16
+ 80057cc:	2144      	movs	r1, #68	; 0x44
+ 80057ce:	f002 fc55 	bl	800807c <VL53L0X_WrWord>
+		if (Status == VL53L0X_ERROR_NONE) {
+ 80057d2:	2800      	cmp	r0, #0
+ 80057d4:	d1e9      	bne.n	80057aa <VL53L0X_SetLimitCheckValue+0x1a>
+ 80057d6:	e7f2      	b.n	80057be <VL53L0X_SetLimitCheckValue+0x2e>
+			VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
+ 80057d8:	63f2      	str	r2, [r6, #60]	; 0x3c
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ 80057da:	2000      	movs	r0, #0
+ 80057dc:	e7ef      	b.n	80057be <VL53L0X_SetLimitCheckValue+0x2e>
+			VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
+ 80057de:	6432      	str	r2, [r6, #64]	; 0x40
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ 80057e0:	2000      	movs	r0, #0
+ 80057e2:	e7ec      	b.n	80057be <VL53L0X_SetLimitCheckValue+0x2e>
+			Status = VL53L0X_WrWord(Dev,
+ 80057e4:	f3c2 224f 	ubfx	r2, r2, #9, #16
+ 80057e8:	2164      	movs	r1, #100	; 0x64
+ 80057ea:	f002 fc47 	bl	800807c <VL53L0X_WrWord>
+			break;
+ 80057ee:	e7f0      	b.n	80057d2 <VL53L0X_SetLimitCheckValue+0x42>
+		switch (LimitCheckId) {
+ 80057f0:	f06f 0003 	mvn.w	r0, #3
+ 80057f4:	e7d9      	b.n	80057aa <VL53L0X_SetLimitCheckValue+0x1a>
+
+080057f6 <VL53L0X_GetLimitCheckValue>:
+
+VL53L0X_Error VL53L0X_GetLimitCheckValue(VL53L0X_DEV Dev, uint16_t LimitCheckId,
+	FixPoint1616_t *pLimitCheckValue)
+{
+ 80057f6:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 80057f8:	b083      	sub	sp, #12
+ 80057fa:	4606      	mov	r6, r0
+ 80057fc:	460c      	mov	r4, r1
+ 80057fe:	4615      	mov	r5, r2
+	uint16_t Temp16;
+	FixPoint1616_t TempFix1616;
+
+	LOG_FUNCTION_START("");
+
+	switch (LimitCheckId) {
+ 8005800:	2905      	cmp	r1, #5
+ 8005802:	d82a      	bhi.n	800585a <VL53L0X_GetLimitCheckValue+0x64>
+ 8005804:	e8df f001 	tbb	[pc, r1]
+ 8005808:	1a160b03 	.word	0x1a160b03
+ 800580c:	1e1e      	.short	0x1e1e
+
+	case VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE:
+		/* internal computation: */
+		VL53L0X_GETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
+ 800580e:	6b47      	ldr	r7, [r0, #52]	; 0x34
+			VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE, TempFix1616);
+		EnableZeroValue = 0;
+ 8005810:	2300      	movs	r3, #0
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ 8005812:	4618      	mov	r0, r3
+	default:
+		Status = VL53L0X_ERROR_INVALID_PARAMS;
+
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8005814:	b908      	cbnz	r0, 800581a <VL53L0X_GetLimitCheckValue+0x24>
+
+		if (EnableZeroValue == 1) {
+ 8005816:	bb43      	cbnz	r3, 800586a <VL53L0X_GetLimitCheckValue+0x74>
+					TempFix1616);
+				VL53L0X_SETARRAYPARAMETERFIELD(Dev,
+					LimitChecksEnable, LimitCheckId, 1);
+			}
+		} else {
+			*pLimitCheckValue = TempFix1616;
+ 8005818:	602f      	str	r7, [r5, #0]
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+
+}
+ 800581a:	b003      	add	sp, #12
+ 800581c:	bdf0      	pop	{r4, r5, r6, r7, pc}
+		Status = VL53L0X_RdWord(Dev,
+ 800581e:	f10d 0206 	add.w	r2, sp, #6
+ 8005822:	2144      	movs	r1, #68	; 0x44
+ 8005824:	f002 fc70 	bl	8008108 <VL53L0X_RdWord>
+		if (Status == VL53L0X_ERROR_NONE)
+ 8005828:	b9d8      	cbnz	r0, 8005862 <VL53L0X_GetLimitCheckValue+0x6c>
+			TempFix1616 = VL53L0X_FIXPOINT97TOFIXPOINT1616(Temp16);
+ 800582a:	f8bd 7006 	ldrh.w	r7, [sp, #6]
+ 800582e:	027f      	lsls	r7, r7, #9
+		EnableZeroValue = 1;
+ 8005830:	2301      	movs	r3, #1
+ 8005832:	e7ef      	b.n	8005814 <VL53L0X_GetLimitCheckValue+0x1e>
+		VL53L0X_GETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
+ 8005834:	6bc7      	ldr	r7, [r0, #60]	; 0x3c
+		EnableZeroValue = 0;
+ 8005836:	2300      	movs	r3, #0
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ 8005838:	4618      	mov	r0, r3
+		break;
+ 800583a:	e7eb      	b.n	8005814 <VL53L0X_GetLimitCheckValue+0x1e>
+		VL53L0X_GETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
+ 800583c:	6c07      	ldr	r7, [r0, #64]	; 0x40
+		EnableZeroValue = 0;
+ 800583e:	2300      	movs	r3, #0
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ 8005840:	4618      	mov	r0, r3
+		break;
+ 8005842:	e7e7      	b.n	8005814 <VL53L0X_GetLimitCheckValue+0x1e>
+		Status = VL53L0X_RdWord(Dev,
+ 8005844:	f10d 0206 	add.w	r2, sp, #6
+ 8005848:	2164      	movs	r1, #100	; 0x64
+ 800584a:	f002 fc5d 	bl	8008108 <VL53L0X_RdWord>
+ 800584e:	4603      	mov	r3, r0
+		if (Status == VL53L0X_ERROR_NONE)
+ 8005850:	b948      	cbnz	r0, 8005866 <VL53L0X_GetLimitCheckValue+0x70>
+			TempFix1616 = VL53L0X_FIXPOINT97TOFIXPOINT1616(Temp16);
+ 8005852:	f8bd 7006 	ldrh.w	r7, [sp, #6]
+ 8005856:	027f      	lsls	r7, r7, #9
+ 8005858:	e7dc      	b.n	8005814 <VL53L0X_GetLimitCheckValue+0x1e>
+	switch (LimitCheckId) {
+ 800585a:	2300      	movs	r3, #0
+ 800585c:	f06f 0003 	mvn.w	r0, #3
+ 8005860:	e7d8      	b.n	8005814 <VL53L0X_GetLimitCheckValue+0x1e>
+		EnableZeroValue = 1;
+ 8005862:	2301      	movs	r3, #1
+ 8005864:	e7d6      	b.n	8005814 <VL53L0X_GetLimitCheckValue+0x1e>
+		EnableZeroValue = 0;
+ 8005866:	2300      	movs	r3, #0
+ 8005868:	e7d4      	b.n	8005814 <VL53L0X_GetLimitCheckValue+0x1e>
+			if (TempFix1616 == 0) {
+ 800586a:	b957      	cbnz	r7, 8005882 <VL53L0X_GetLimitCheckValue+0x8c>
+				VL53L0X_GETARRAYPARAMETERFIELD(Dev,
+ 800586c:	f104 030c 	add.w	r3, r4, #12
+ 8005870:	eb06 0383 	add.w	r3, r6, r3, lsl #2
+ 8005874:	685b      	ldr	r3, [r3, #4]
+				*pLimitCheckValue = TempFix1616;
+ 8005876:	602b      	str	r3, [r5, #0]
+				VL53L0X_SETARRAYPARAMETERFIELD(Dev,
+ 8005878:	4434      	add	r4, r6
+ 800587a:	2300      	movs	r3, #0
+ 800587c:	f884 3028 	strb.w	r3, [r4, #40]	; 0x28
+ 8005880:	e7cb      	b.n	800581a <VL53L0X_GetLimitCheckValue+0x24>
+				*pLimitCheckValue = TempFix1616;
+ 8005882:	602f      	str	r7, [r5, #0]
+				VL53L0X_SETARRAYPARAMETERFIELD(Dev,
+ 8005884:	f104 030c 	add.w	r3, r4, #12
+ 8005888:	eb06 0383 	add.w	r3, r6, r3, lsl #2
+ 800588c:	605f      	str	r7, [r3, #4]
+				VL53L0X_SETARRAYPARAMETERFIELD(Dev,
+ 800588e:	1933      	adds	r3, r6, r4
+ 8005890:	2201      	movs	r2, #1
+ 8005892:	f883 2028 	strb.w	r2, [r3, #40]	; 0x28
+ 8005896:	e7c0      	b.n	800581a <VL53L0X_GetLimitCheckValue+0x24>
+
+08005898 <VL53L0X_GetWrapAroundCheckEnable>:
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetWrapAroundCheckEnable(VL53L0X_DEV Dev,
+	uint8_t *pWrapAroundCheckEnable)
+{
+ 8005898:	b530      	push	{r4, r5, lr}
+ 800589a:	b083      	sub	sp, #12
+ 800589c:	4604      	mov	r4, r0
+ 800589e:	460d      	mov	r5, r1
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t data;
+
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_RdByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG, &data);
+ 80058a0:	f10d 0207 	add.w	r2, sp, #7
+ 80058a4:	2101      	movs	r1, #1
+ 80058a6:	f002 fbfb 	bl	80080a0 <VL53L0X_RdByte>
+	if (Status == VL53L0X_ERROR_NONE) {
+ 80058aa:	4603      	mov	r3, r0
+ 80058ac:	b940      	cbnz	r0, 80058c0 <VL53L0X_GetWrapAroundCheckEnable+0x28>
+		PALDevDataSet(Dev, SequenceConfig, data);
+ 80058ae:	f89d 2007 	ldrb.w	r2, [sp, #7]
+ 80058b2:	f884 2130 	strb.w	r2, [r4, #304]	; 0x130
+		if (data & (0x01 << 7))
+ 80058b6:	f012 0f80 	tst.w	r2, #128	; 0x80
+ 80058ba:	d108      	bne.n	80058ce <VL53L0X_GetWrapAroundCheckEnable+0x36>
+			*pWrapAroundCheckEnable = 0x01;
+		else
+			*pWrapAroundCheckEnable = 0x00;
+ 80058bc:	2200      	movs	r2, #0
+ 80058be:	702a      	strb	r2, [r5, #0]
+	}
+	if (Status == VL53L0X_ERROR_NONE) {
+ 80058c0:	b913      	cbnz	r3, 80058c8 <VL53L0X_GetWrapAroundCheckEnable+0x30>
+		VL53L0X_SETPARAMETERFIELD(Dev, WrapAroundCheckEnable,
+ 80058c2:	782a      	ldrb	r2, [r5, #0]
+ 80058c4:	f884 204c 	strb.w	r2, [r4, #76]	; 0x4c
+			*pWrapAroundCheckEnable);
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+ 80058c8:	4618      	mov	r0, r3
+ 80058ca:	b003      	add	sp, #12
+ 80058cc:	bd30      	pop	{r4, r5, pc}
+			*pWrapAroundCheckEnable = 0x01;
+ 80058ce:	2201      	movs	r2, #1
+ 80058d0:	702a      	strb	r2, [r5, #0]
+ 80058d2:	e7f5      	b.n	80058c0 <VL53L0X_GetWrapAroundCheckEnable+0x28>
+
+080058d4 <VL53L0X_GetDeviceParameters>:
+{
+ 80058d4:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 80058d8:	4607      	mov	r7, r0
+ 80058da:	460e      	mov	r6, r1
+	Status = VL53L0X_GetDeviceMode(Dev, &(pDeviceParameters->DeviceMode));
+ 80058dc:	f7ff fdea 	bl	80054b4 <VL53L0X_GetDeviceMode>
+	if (Status == VL53L0X_ERROR_NONE)
+ 80058e0:	4604      	mov	r4, r0
+ 80058e2:	b160      	cbz	r0, 80058fe <VL53L0X_GetDeviceParameters+0x2a>
+	if (Status == VL53L0X_ERROR_NONE)
+ 80058e4:	b90c      	cbnz	r4, 80058ea <VL53L0X_GetDeviceParameters+0x16>
+		pDeviceParameters->XTalkCompensationEnable = 0;
+ 80058e6:	2300      	movs	r3, #0
+ 80058e8:	7333      	strb	r3, [r6, #12]
+	if (Status == VL53L0X_ERROR_NONE)
+ 80058ea:	b17c      	cbz	r4, 800590c <VL53L0X_GetDeviceParameters+0x38>
+	if (Status == VL53L0X_ERROR_NONE)
+ 80058ec:	b1ac      	cbz	r4, 800591a <VL53L0X_GetDeviceParameters+0x46>
+	if (Status == VL53L0X_ERROR_NONE) {
+ 80058ee:	b1dc      	cbz	r4, 8005928 <VL53L0X_GetDeviceParameters+0x54>
+	if (Status == VL53L0X_ERROR_NONE) {
+ 80058f0:	2c00      	cmp	r4, #0
+ 80058f2:	d038      	beq.n	8005966 <VL53L0X_GetDeviceParameters+0x92>
+	if (Status == VL53L0X_ERROR_NONE) {
+ 80058f4:	2c00      	cmp	r4, #0
+ 80058f6:	d03d      	beq.n	8005974 <VL53L0X_GetDeviceParameters+0xa0>
+}
+ 80058f8:	4620      	mov	r0, r4
+ 80058fa:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+		Status = VL53L0X_GetInterMeasurementPeriodMilliSeconds(Dev,
+ 80058fe:	f106 0108 	add.w	r1, r6, #8
+ 8005902:	4638      	mov	r0, r7
+ 8005904:	f7ff feb3 	bl	800566e <VL53L0X_GetInterMeasurementPeriodMilliSeconds>
+ 8005908:	4604      	mov	r4, r0
+ 800590a:	e7eb      	b.n	80058e4 <VL53L0X_GetDeviceParameters+0x10>
+		Status = VL53L0X_GetXTalkCompensationRateMegaCps(Dev,
+ 800590c:	f106 0110 	add.w	r1, r6, #16
+ 8005910:	4638      	mov	r0, r7
+ 8005912:	f7ff fecc 	bl	80056ae <VL53L0X_GetXTalkCompensationRateMegaCps>
+ 8005916:	4604      	mov	r4, r0
+ 8005918:	e7e8      	b.n	80058ec <VL53L0X_GetDeviceParameters+0x18>
+		Status = VL53L0X_GetOffsetCalibrationDataMicroMeter(Dev,
+ 800591a:	f106 0114 	add.w	r1, r6, #20
+ 800591e:	4638      	mov	r0, r7
+ 8005920:	f7ff fdac 	bl	800547c <VL53L0X_GetOffsetCalibrationDataMicroMeter>
+ 8005924:	4604      	mov	r4, r0
+ 8005926:	e7e2      	b.n	80058ee <VL53L0X_GetDeviceParameters+0x1a>
+		for (i = 0; i < VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS; i++) {
+ 8005928:	2500      	movs	r5, #0
+ 800592a:	2d05      	cmp	r5, #5
+ 800592c:	dce0      	bgt.n	80058f0 <VL53L0X_GetDeviceParameters+0x1c>
+			if (Status == VL53L0X_ERROR_NONE) {
+ 800592e:	2c00      	cmp	r4, #0
+ 8005930:	d1de      	bne.n	80058f0 <VL53L0X_GetDeviceParameters+0x1c>
+				Status |= VL53L0X_GetLimitCheckValue(Dev, i,
+ 8005932:	fa1f f885 	uxth.w	r8, r5
+ 8005936:	f105 0208 	add.w	r2, r5, #8
+ 800593a:	eb06 0282 	add.w	r2, r6, r2, lsl #2
+ 800593e:	3204      	adds	r2, #4
+ 8005940:	4641      	mov	r1, r8
+ 8005942:	4638      	mov	r0, r7
+ 8005944:	f7ff ff57 	bl	80057f6 <VL53L0X_GetLimitCheckValue>
+ 8005948:	4320      	orrs	r0, r4
+ 800594a:	b244      	sxtb	r4, r0
+			if (Status == VL53L0X_ERROR_NONE) {
+ 800594c:	2c00      	cmp	r4, #0
+ 800594e:	d1cf      	bne.n	80058f0 <VL53L0X_GetDeviceParameters+0x1c>
+				Status |= VL53L0X_GetLimitCheckEnable(Dev, i,
+ 8005950:	f105 0218 	add.w	r2, r5, #24
+ 8005954:	4432      	add	r2, r6
+ 8005956:	4641      	mov	r1, r8
+ 8005958:	4638      	mov	r0, r7
+ 800595a:	f7ff ff0c 	bl	8005776 <VL53L0X_GetLimitCheckEnable>
+ 800595e:	4320      	orrs	r0, r4
+ 8005960:	b244      	sxtb	r4, r0
+		for (i = 0; i < VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS; i++) {
+ 8005962:	3501      	adds	r5, #1
+ 8005964:	e7e1      	b.n	800592a <VL53L0X_GetDeviceParameters+0x56>
+		Status = VL53L0X_GetWrapAroundCheckEnable(Dev,
+ 8005966:	f106 013c 	add.w	r1, r6, #60	; 0x3c
+ 800596a:	4638      	mov	r0, r7
+ 800596c:	f7ff ff94 	bl	8005898 <VL53L0X_GetWrapAroundCheckEnable>
+ 8005970:	4604      	mov	r4, r0
+ 8005972:	e7bf      	b.n	80058f4 <VL53L0X_GetDeviceParameters+0x20>
+		Status = VL53L0X_GetMeasurementTimingBudgetMicroSeconds(Dev,
+ 8005974:	1d31      	adds	r1, r6, #4
+ 8005976:	4638      	mov	r0, r7
+ 8005978:	f7ff fdb0 	bl	80054dc <VL53L0X_GetMeasurementTimingBudgetMicroSeconds>
+ 800597c:	4604      	mov	r4, r0
+ 800597e:	e7bb      	b.n	80058f8 <VL53L0X_GetDeviceParameters+0x24>
+
+08005980 <VL53L0X_DataInit>:
+{
+ 8005980:	b570      	push	{r4, r5, r6, lr}
+ 8005982:	b092      	sub	sp, #72	; 0x48
+ 8005984:	4605      	mov	r5, r0
+		Status = VL53L0X_WrByte(Dev, 0x88, 0x00);
+ 8005986:	2200      	movs	r2, #0
+ 8005988:	2188      	movs	r1, #136	; 0x88
+ 800598a:	f002 fb67 	bl	800805c <VL53L0X_WrByte>
+	VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, ReadDataFromDeviceDone, 0);
+ 800598e:	2300      	movs	r3, #0
+ 8005990:	f885 30f0 	strb.w	r3, [r5, #240]	; 0xf0
+	PALDevDataSet(Dev, LinearityCorrectiveGain, 1000);
+ 8005994:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
+ 8005998:	f8a5 2152 	strh.w	r2, [r5, #338]	; 0x152
+	PALDevDataSet(Dev, DmaxCalRangeMilliMeter, 400);
+ 800599c:	f44f 72c8 	mov.w	r2, #400	; 0x190
+ 80059a0:	f8a5 2154 	strh.w	r2, [r5, #340]	; 0x154
+	PALDevDataSet(Dev, DmaxCalSignalRateRtnMegaCps,
+ 80059a4:	4a67      	ldr	r2, [pc, #412]	; (8005b44 <VL53L0X_DataInit+0x1c4>)
+ 80059a6:	f8c5 2158 	str.w	r2, [r5, #344]	; 0x158
+	VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, OscFrequencyMHz, 618660);
+ 80059aa:	4a67      	ldr	r2, [pc, #412]	; (8005b48 <VL53L0X_DataInit+0x1c8>)
+ 80059ac:	f8c5 20d4 	str.w	r2, [r5, #212]	; 0xd4
+	VL53L0X_SETPARAMETERFIELD(Dev, XTalkCompensationRateMegaCps, 0);
+ 80059b0:	622b      	str	r3, [r5, #32]
+	Status = VL53L0X_GetDeviceParameters(Dev, &CurrentParameters);
+ 80059b2:	a902      	add	r1, sp, #8
+ 80059b4:	4628      	mov	r0, r5
+ 80059b6:	f7ff ff8d 	bl	80058d4 <VL53L0X_GetDeviceParameters>
+	if (Status == VL53L0X_ERROR_NONE) {
+ 80059ba:	4604      	mov	r4, r0
+ 80059bc:	b9a8      	cbnz	r0, 80059ea <VL53L0X_DataInit+0x6a>
+		CurrentParameters.DeviceMode = VL53L0X_DEVICEMODE_SINGLE_RANGING;
+ 80059be:	2300      	movs	r3, #0
+ 80059c0:	f88d 3008 	strb.w	r3, [sp, #8]
+		CurrentParameters.HistogramMode = VL53L0X_HISTOGRAMMODE_DISABLED;
+ 80059c4:	f88d 3009 	strb.w	r3, [sp, #9]
+		PALDevDataSet(Dev, CurrentParameters, CurrentParameters);
+ 80059c8:	f105 0610 	add.w	r6, r5, #16
+ 80059cc:	f10d 0c08 	add.w	ip, sp, #8
+ 80059d0:	e8bc 000f 	ldmia.w	ip!, {r0, r1, r2, r3}
+ 80059d4:	c60f      	stmia	r6!, {r0, r1, r2, r3}
+ 80059d6:	e8bc 000f 	ldmia.w	ip!, {r0, r1, r2, r3}
+ 80059da:	c60f      	stmia	r6!, {r0, r1, r2, r3}
+ 80059dc:	e8bc 000f 	ldmia.w	ip!, {r0, r1, r2, r3}
+ 80059e0:	c60f      	stmia	r6!, {r0, r1, r2, r3}
+ 80059e2:	e89c 000f 	ldmia.w	ip, {r0, r1, r2, r3}
+ 80059e6:	e886 000f 	stmia.w	r6, {r0, r1, r2, r3}
+	PALDevDataSet(Dev, SigmaEstRefArray, 100);
+ 80059ea:	2364      	movs	r3, #100	; 0x64
+ 80059ec:	f8a5 3134 	strh.w	r3, [r5, #308]	; 0x134
+	PALDevDataSet(Dev, SigmaEstEffPulseWidth, 900);
+ 80059f0:	f44f 7361 	mov.w	r3, #900	; 0x384
+ 80059f4:	f8a5 3136 	strh.w	r3, [r5, #310]	; 0x136
+	PALDevDataSet(Dev, SigmaEstEffAmbWidth, 500);
+ 80059f8:	f44f 73fa 	mov.w	r3, #500	; 0x1f4
+ 80059fc:	f8a5 3138 	strh.w	r3, [r5, #312]	; 0x138
+	PALDevDataSet(Dev, targetRefRate, 0x0A00); /* 20 MCPS in 9:7 format */
+ 8005a00:	f44f 6320 	mov.w	r3, #2560	; 0xa00
+ 8005a04:	f8a5 313c 	strh.w	r3, [r5, #316]	; 0x13c
+	PALDevDataSet(Dev, UseInternalTuningSettings, 1);
+ 8005a08:	2601      	movs	r6, #1
+ 8005a0a:	f885 6150 	strb.w	r6, [r5, #336]	; 0x150
+	Status |= VL53L0X_WrByte(Dev, 0x80, 0x01);
+ 8005a0e:	4632      	mov	r2, r6
+ 8005a10:	2180      	movs	r1, #128	; 0x80
+ 8005a12:	4628      	mov	r0, r5
+ 8005a14:	f002 fb22 	bl	800805c <VL53L0X_WrByte>
+ 8005a18:	4304      	orrs	r4, r0
+ 8005a1a:	b264      	sxtb	r4, r4
+	Status |= VL53L0X_WrByte(Dev, 0xFF, 0x01);
+ 8005a1c:	4632      	mov	r2, r6
+ 8005a1e:	21ff      	movs	r1, #255	; 0xff
+ 8005a20:	4628      	mov	r0, r5
+ 8005a22:	f002 fb1b 	bl	800805c <VL53L0X_WrByte>
+ 8005a26:	4304      	orrs	r4, r0
+ 8005a28:	b264      	sxtb	r4, r4
+	Status |= VL53L0X_WrByte(Dev, 0x00, 0x00);
+ 8005a2a:	2200      	movs	r2, #0
+ 8005a2c:	4611      	mov	r1, r2
+ 8005a2e:	4628      	mov	r0, r5
+ 8005a30:	f002 fb14 	bl	800805c <VL53L0X_WrByte>
+ 8005a34:	4304      	orrs	r4, r0
+ 8005a36:	b264      	sxtb	r4, r4
+	Status |= VL53L0X_RdByte(Dev, 0x91, &StopVariable);
+ 8005a38:	f10d 0207 	add.w	r2, sp, #7
+ 8005a3c:	2191      	movs	r1, #145	; 0x91
+ 8005a3e:	4628      	mov	r0, r5
+ 8005a40:	f002 fb2e 	bl	80080a0 <VL53L0X_RdByte>
+ 8005a44:	4304      	orrs	r4, r0
+ 8005a46:	b264      	sxtb	r4, r4
+	PALDevDataSet(Dev, StopVariable, StopVariable);
+ 8005a48:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8005a4c:	f885 313a 	strb.w	r3, [r5, #314]	; 0x13a
+	Status |= VL53L0X_WrByte(Dev, 0x00, 0x01);
+ 8005a50:	4632      	mov	r2, r6
+ 8005a52:	2100      	movs	r1, #0
+ 8005a54:	4628      	mov	r0, r5
+ 8005a56:	f002 fb01 	bl	800805c <VL53L0X_WrByte>
+ 8005a5a:	4304      	orrs	r4, r0
+ 8005a5c:	b264      	sxtb	r4, r4
+	Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
+ 8005a5e:	2200      	movs	r2, #0
+ 8005a60:	21ff      	movs	r1, #255	; 0xff
+ 8005a62:	4628      	mov	r0, r5
+ 8005a64:	f002 fafa 	bl	800805c <VL53L0X_WrByte>
+ 8005a68:	4304      	orrs	r4, r0
+ 8005a6a:	b264      	sxtb	r4, r4
+	Status |= VL53L0X_WrByte(Dev, 0x80, 0x00);
+ 8005a6c:	2200      	movs	r2, #0
+ 8005a6e:	2180      	movs	r1, #128	; 0x80
+ 8005a70:	4628      	mov	r0, r5
+ 8005a72:	f002 faf3 	bl	800805c <VL53L0X_WrByte>
+ 8005a76:	4320      	orrs	r0, r4
+ 8005a78:	b244      	sxtb	r4, r0
+	for (i = 0; i < VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS; i++) {
+ 8005a7a:	2600      	movs	r6, #0
+ 8005a7c:	2e05      	cmp	r6, #5
+ 8005a7e:	dc09      	bgt.n	8005a94 <VL53L0X_DataInit+0x114>
+		if (Status == VL53L0X_ERROR_NONE)
+ 8005a80:	b944      	cbnz	r4, 8005a94 <VL53L0X_DataInit+0x114>
+			Status |= VL53L0X_SetLimitCheckEnable(Dev, i, 1);
+ 8005a82:	2201      	movs	r2, #1
+ 8005a84:	b2b1      	uxth	r1, r6
+ 8005a86:	4628      	mov	r0, r5
+ 8005a88:	f7ff fe2a 	bl	80056e0 <VL53L0X_SetLimitCheckEnable>
+ 8005a8c:	4320      	orrs	r0, r4
+ 8005a8e:	b244      	sxtb	r4, r0
+	for (i = 0; i < VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS; i++) {
+ 8005a90:	3601      	adds	r6, #1
+ 8005a92:	e7f3      	b.n	8005a7c <VL53L0X_DataInit+0xfc>
+	if (Status == VL53L0X_ERROR_NONE)
+ 8005a94:	b17c      	cbz	r4, 8005ab6 <VL53L0X_DataInit+0x136>
+	if (Status == VL53L0X_ERROR_NONE)
+ 8005a96:	b1ac      	cbz	r4, 8005ac4 <VL53L0X_DataInit+0x144>
+	if (Status == VL53L0X_ERROR_NONE)
+ 8005a98:	b1dc      	cbz	r4, 8005ad2 <VL53L0X_DataInit+0x152>
+	if (Status == VL53L0X_ERROR_NONE)
+ 8005a9a:	b30c      	cbz	r4, 8005ae0 <VL53L0X_DataInit+0x160>
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8005a9c:	b33c      	cbz	r4, 8005aee <VL53L0X_DataInit+0x16e>
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8005a9e:	b374      	cbz	r4, 8005afe <VL53L0X_DataInit+0x17e>
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8005aa0:	b3ac      	cbz	r4, 8005b0e <VL53L0X_DataInit+0x18e>
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8005aa2:	b3e4      	cbz	r4, 8005b1e <VL53L0X_DataInit+0x19e>
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8005aa4:	2c00      	cmp	r4, #0
+ 8005aa6:	d041      	beq.n	8005b2c <VL53L0X_DataInit+0x1ac>
+	if (Status == VL53L0X_ERROR_NONE)
+ 8005aa8:	b914      	cbnz	r4, 8005ab0 <VL53L0X_DataInit+0x130>
+		VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, RefSpadsInitialised, 0);
+ 8005aaa:	2300      	movs	r3, #0
+ 8005aac:	f885 3115 	strb.w	r3, [r5, #277]	; 0x115
+}
+ 8005ab0:	4620      	mov	r0, r4
+ 8005ab2:	b012      	add	sp, #72	; 0x48
+ 8005ab4:	bd70      	pop	{r4, r5, r6, pc}
+		Status = VL53L0X_SetLimitCheckEnable(Dev,
+ 8005ab6:	2200      	movs	r2, #0
+ 8005ab8:	2102      	movs	r1, #2
+ 8005aba:	4628      	mov	r0, r5
+ 8005abc:	f7ff fe10 	bl	80056e0 <VL53L0X_SetLimitCheckEnable>
+ 8005ac0:	4604      	mov	r4, r0
+ 8005ac2:	e7e8      	b.n	8005a96 <VL53L0X_DataInit+0x116>
+		Status = VL53L0X_SetLimitCheckEnable(Dev,
+ 8005ac4:	2200      	movs	r2, #0
+ 8005ac6:	2103      	movs	r1, #3
+ 8005ac8:	4628      	mov	r0, r5
+ 8005aca:	f7ff fe09 	bl	80056e0 <VL53L0X_SetLimitCheckEnable>
+ 8005ace:	4604      	mov	r4, r0
+ 8005ad0:	e7e2      	b.n	8005a98 <VL53L0X_DataInit+0x118>
+		Status = VL53L0X_SetLimitCheckEnable(Dev,
+ 8005ad2:	2200      	movs	r2, #0
+ 8005ad4:	2104      	movs	r1, #4
+ 8005ad6:	4628      	mov	r0, r5
+ 8005ad8:	f7ff fe02 	bl	80056e0 <VL53L0X_SetLimitCheckEnable>
+ 8005adc:	4604      	mov	r4, r0
+ 8005ade:	e7dc      	b.n	8005a9a <VL53L0X_DataInit+0x11a>
+		Status = VL53L0X_SetLimitCheckEnable(Dev,
+ 8005ae0:	2200      	movs	r2, #0
+ 8005ae2:	2105      	movs	r1, #5
+ 8005ae4:	4628      	mov	r0, r5
+ 8005ae6:	f7ff fdfb 	bl	80056e0 <VL53L0X_SetLimitCheckEnable>
+ 8005aea:	4604      	mov	r4, r0
+ 8005aec:	e7d6      	b.n	8005a9c <VL53L0X_DataInit+0x11c>
+		Status = VL53L0X_SetLimitCheckValue(Dev,
+ 8005aee:	f44f 1290 	mov.w	r2, #1179648	; 0x120000
+ 8005af2:	2100      	movs	r1, #0
+ 8005af4:	4628      	mov	r0, r5
+ 8005af6:	f7ff fe4b 	bl	8005790 <VL53L0X_SetLimitCheckValue>
+ 8005afa:	4604      	mov	r4, r0
+ 8005afc:	e7cf      	b.n	8005a9e <VL53L0X_DataInit+0x11e>
+		Status = VL53L0X_SetLimitCheckValue(Dev,
+ 8005afe:	f44f 4280 	mov.w	r2, #16384	; 0x4000
+ 8005b02:	2101      	movs	r1, #1
+ 8005b04:	4628      	mov	r0, r5
+ 8005b06:	f7ff fe43 	bl	8005790 <VL53L0X_SetLimitCheckValue>
+ 8005b0a:	4604      	mov	r4, r0
+ 8005b0c:	e7c8      	b.n	8005aa0 <VL53L0X_DataInit+0x120>
+		Status = VL53L0X_SetLimitCheckValue(Dev,
+ 8005b0e:	f44f 120c 	mov.w	r2, #2293760	; 0x230000
+ 8005b12:	2102      	movs	r1, #2
+ 8005b14:	4628      	mov	r0, r5
+ 8005b16:	f7ff fe3b 	bl	8005790 <VL53L0X_SetLimitCheckValue>
+ 8005b1a:	4604      	mov	r4, r0
+ 8005b1c:	e7c1      	b.n	8005aa2 <VL53L0X_DataInit+0x122>
+		Status = VL53L0X_SetLimitCheckValue(Dev,
+ 8005b1e:	2200      	movs	r2, #0
+ 8005b20:	2103      	movs	r1, #3
+ 8005b22:	4628      	mov	r0, r5
+ 8005b24:	f7ff fe34 	bl	8005790 <VL53L0X_SetLimitCheckValue>
+ 8005b28:	4604      	mov	r4, r0
+ 8005b2a:	e7bb      	b.n	8005aa4 <VL53L0X_DataInit+0x124>
+		PALDevDataSet(Dev, SequenceConfig, 0xFF);
+ 8005b2c:	22ff      	movs	r2, #255	; 0xff
+ 8005b2e:	f885 2130 	strb.w	r2, [r5, #304]	; 0x130
+		Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
+ 8005b32:	2101      	movs	r1, #1
+ 8005b34:	4628      	mov	r0, r5
+ 8005b36:	f002 fa91 	bl	800805c <VL53L0X_WrByte>
+ 8005b3a:	4604      	mov	r4, r0
+		PALDevDataSet(Dev, PalState, VL53L0X_STATE_WAIT_STATICINIT);
+ 8005b3c:	2301      	movs	r3, #1
+ 8005b3e:	f885 3132 	strb.w	r3, [r5, #306]	; 0x132
+ 8005b42:	e7b1      	b.n	8005aa8 <VL53L0X_DataInit+0x128>
+ 8005b44:	00016b85 	.word	0x00016b85
+ 8005b48:	000970a4 	.word	0x000970a4
+
+08005b4c <VL53L0X_PerformRefCalibration>:
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_PerformRefCalibration(VL53L0X_DEV Dev, uint8_t *pVhvSettings,
+	uint8_t *pPhaseCal)
+{
+ 8005b4c:	b508      	push	{r3, lr}
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_perform_ref_calibration(Dev, pVhvSettings,
+ 8005b4e:	2301      	movs	r3, #1
+ 8005b50:	f000 fe2c 	bl	80067ac <VL53L0X_perform_ref_calibration>
+		pPhaseCal, 1);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+ 8005b54:	bd08      	pop	{r3, pc}
+	...
+
+08005b58 <VL53L0X_GetRangingMeasurementData>:
+}
+
+
+VL53L0X_Error VL53L0X_GetRangingMeasurementData(VL53L0X_DEV Dev,
+	VL53L0X_RangingMeasurementData_t *pRangingMeasurementData)
+{
+ 8005b58:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8005b5c:	b08e      	sub	sp, #56	; 0x38
+ 8005b5e:	4605      	mov	r5, r0
+ 8005b60:	460c      	mov	r4, r1
+	 * use multi read even if some registers are not useful, result will
+	 * be more efficient
+	 * start reading at 0x14 dec20
+	 * end reading at 0x21 dec33 total 14 bytes to read
+	 */
+	Status = VL53L0X_ReadMulti(Dev, 0x14, localBuffer, 12);
+ 8005b62:	230c      	movs	r3, #12
+ 8005b64:	aa0a      	add	r2, sp, #40	; 0x28
+ 8005b66:	2114      	movs	r1, #20
+ 8005b68:	f002 fa5c 	bl	8008024 <VL53L0X_ReadMulti>
+
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8005b6c:	4606      	mov	r6, r0
+ 8005b6e:	2800      	cmp	r0, #0
+ 8005b70:	d168      	bne.n	8005c44 <VL53L0X_GetRangingMeasurementData+0xec>
+
+		pRangingMeasurementData->ZoneId = 0; /* Only one zone */
+ 8005b72:	2300      	movs	r3, #0
+ 8005b74:	75a3      	strb	r3, [r4, #22]
+		pRangingMeasurementData->TimeStamp = 0; /* Not Implemented */
+ 8005b76:	6023      	str	r3, [r4, #0]
+
+		tmpuint16 = VL53L0X_MAKEUINT16(localBuffer[11], localBuffer[10]);
+ 8005b78:	f89d 2032 	ldrb.w	r2, [sp, #50]	; 0x32
+ 8005b7c:	f89d 0033 	ldrb.w	r0, [sp, #51]	; 0x33
+ 8005b80:	eb00 2002 	add.w	r0, r0, r2, lsl #8
+ 8005b84:	b280      	uxth	r0, r0
+		/* cut1.1 if SYSTEM__RANGE_CONFIG if 1 range is 2bits fractional
+		 *(format 11.2) else no fractional
+		 */
+
+		pRangingMeasurementData->MeasurementTimeUsec = 0;
+ 8005b86:	6063      	str	r3, [r4, #4]
+
+		SignalRate = VL53L0X_FIXPOINT97TOFIXPOINT1616(
+ 8005b88:	f89d 302e 	ldrb.w	r3, [sp, #46]	; 0x2e
+ 8005b8c:	f89d 202f 	ldrb.w	r2, [sp, #47]	; 0x2f
+ 8005b90:	eb02 2203 	add.w	r2, r2, r3, lsl #8
+ 8005b94:	b292      	uxth	r2, r2
+ 8005b96:	0252      	lsls	r2, r2, #9
+			VL53L0X_MAKEUINT16(localBuffer[7], localBuffer[6]));
+		/* peak_signal_count_rate_rtn_mcps */
+		pRangingMeasurementData->SignalRateRtnMegaCps = SignalRate;
+ 8005b98:	60e2      	str	r2, [r4, #12]
+
+		AmbientRate = VL53L0X_MAKEUINT16(localBuffer[9], localBuffer[8]);
+ 8005b9a:	f89d 1030 	ldrb.w	r1, [sp, #48]	; 0x30
+ 8005b9e:	f89d 3031 	ldrb.w	r3, [sp, #49]	; 0x31
+ 8005ba2:	eb03 2301 	add.w	r3, r3, r1, lsl #8
+ 8005ba6:	b29b      	uxth	r3, r3
+		pRangingMeasurementData->AmbientRateRtnMegaCps =
+			VL53L0X_FIXPOINT97TOFIXPOINT1616(AmbientRate);
+ 8005ba8:	025b      	lsls	r3, r3, #9
+		pRangingMeasurementData->AmbientRateRtnMegaCps =
+ 8005baa:	6123      	str	r3, [r4, #16]
+
+		EffectiveSpadRtnCount = VL53L0X_MAKEUINT16(localBuffer[3],
+ 8005bac:	f89d 102a 	ldrb.w	r1, [sp, #42]	; 0x2a
+ 8005bb0:	f89d 302b 	ldrb.w	r3, [sp, #43]	; 0x2b
+ 8005bb4:	eb03 2301 	add.w	r3, r3, r1, lsl #8
+ 8005bb8:	b29b      	uxth	r3, r3
+			localBuffer[2]);
+		/* EffectiveSpadRtnCount is 8.8 format */
+		pRangingMeasurementData->EffectiveSpadRtnCount =
+ 8005bba:	82a3      	strh	r3, [r4, #20]
+			EffectiveSpadRtnCount;
+
+		DeviceRangeStatus = localBuffer[0];
+ 8005bbc:	f89d 1028 	ldrb.w	r1, [sp, #40]	; 0x28
+
+		/* Get Linearity Corrective Gain */
+		LinearityCorrectiveGain = PALDevDataGet(Dev,
+ 8005bc0:	f8b5 c152 	ldrh.w	ip, [r5, #338]	; 0x152
+			LinearityCorrectiveGain);
+
+		/* Get ranging configuration */
+		RangeFractionalEnable = PALDevDataGet(Dev,
+ 8005bc4:	f895 7131 	ldrb.w	r7, [r5, #305]	; 0x131
+			RangeFractionalEnable);
+
+		if (LinearityCorrectiveGain != 1000) {
+ 8005bc8:	f5bc 7f7a 	cmp.w	ip, #1000	; 0x3e8
+ 8005bcc:	d026      	beq.n	8005c1c <VL53L0X_GetRangingMeasurementData+0xc4>
+
+			tmpuint16 = (uint16_t)((LinearityCorrectiveGain
+				* tmpuint16 + 500) / 1000);
+ 8005bce:	fb00 fc0c 	mul.w	ip, r0, ip
+ 8005bd2:	f50c 7cfa 	add.w	ip, ip, #500	; 0x1f4
+ 8005bd6:	4837      	ldr	r0, [pc, #220]	; (8005cb4 <VL53L0X_GetRangingMeasurementData+0x15c>)
+ 8005bd8:	fb80 e00c 	smull	lr, r0, r0, ip
+ 8005bdc:	ea4f 7cec 	mov.w	ip, ip, asr #31
+ 8005be0:	ebcc 1ca0 	rsb	ip, ip, r0, asr #6
+			tmpuint16 = (uint16_t)((LinearityCorrectiveGain
+ 8005be4:	fa1f f08c 	uxth.w	r0, ip
+
+			/* Implement Xtalk */
+			VL53L0X_GETPARAMETERFIELD(Dev,
+ 8005be8:	f8d5 e020 	ldr.w	lr, [r5, #32]
+				XTalkCompensationRateMegaCps,
+				XTalkCompensationRateMegaCps);
+			VL53L0X_GETPARAMETERFIELD(Dev, XTalkCompensationEnable,
+ 8005bec:	f895 801c 	ldrb.w	r8, [r5, #28]
+				XTalkCompensationEnable);
+
+			if (XTalkCompensationEnable) {
+ 8005bf0:	f1b8 0f00 	cmp.w	r8, #0
+ 8005bf4:	d012      	beq.n	8005c1c <VL53L0X_GetRangingMeasurementData+0xc4>
+
+				if ((SignalRate
+					- ((XTalkCompensationRateMegaCps
+					* EffectiveSpadRtnCount) >> 8))
+ 8005bf6:	fa1f f08e 	uxth.w	r0, lr
+ 8005bfa:	fb03 f000 	mul.w	r0, r3, r0
+ 8005bfe:	ea4f 2e20 	mov.w	lr, r0, asr #8
+				if ((SignalRate
+ 8005c02:	ebb2 2f20 	cmp.w	r2, r0, asr #8
+ 8005c06:	d04a      	beq.n	8005c9e <VL53L0X_GetRangingMeasurementData+0x146>
+					else
+						XtalkRangeMilliMeter = 8888
+							<< 2;
+				} else {
+					XtalkRangeMilliMeter =
+					(tmpuint16 * SignalRate)
+ 8005c08:	fa1f fc8c 	uxth.w	ip, ip
+ 8005c0c:	fb02 fc0c 	mul.w	ip, r2, ip
+						/ (SignalRate
+						- ((XTalkCompensationRateMegaCps
+ 8005c10:	eba2 0e0e 	sub.w	lr, r2, lr
+						/ (SignalRate
+ 8005c14:	fbbc fcfe 	udiv	ip, ip, lr
+					XtalkRangeMilliMeter =
+ 8005c18:	fa1f f08c 	uxth.w	r0, ip
+				tmpuint16 = XtalkRangeMilliMeter;
+			}
+
+		}
+
+		if (RangeFractionalEnable) {
+ 8005c1c:	2f00      	cmp	r7, #0
+ 8005c1e:	d045      	beq.n	8005cac <VL53L0X_GetRangingMeasurementData+0x154>
+			pRangingMeasurementData->RangeMilliMeter =
+				(uint16_t)((tmpuint16) >> 2);
+ 8005c20:	0887      	lsrs	r7, r0, #2
+			pRangingMeasurementData->RangeMilliMeter =
+ 8005c22:	8127      	strh	r7, [r4, #8]
+			pRangingMeasurementData->RangeFractionalPart =
+				(uint8_t)((tmpuint16 & 0x03) << 6);
+ 8005c24:	b2c0      	uxtb	r0, r0
+ 8005c26:	0180      	lsls	r0, r0, #6
+			pRangingMeasurementData->RangeFractionalPart =
+ 8005c28:	75e0      	strb	r0, [r4, #23]
+		 * For a standard definition of RangeStatus, this should
+		 * return 0 in case of good result after a ranging
+		 * The range status depends on the device so call a device
+		 * specific function to obtain the right Status.
+		 */
+		Status |= VL53L0X_get_pal_range_status(Dev, DeviceRangeStatus,
+ 8005c2a:	f10d 0037 	add.w	r0, sp, #55	; 0x37
+ 8005c2e:	9001      	str	r0, [sp, #4]
+ 8005c30:	9400      	str	r4, [sp, #0]
+ 8005c32:	4628      	mov	r0, r5
+ 8005c34:	f002 f88c 	bl	8007d50 <VL53L0X_get_pal_range_status>
+ 8005c38:	4330      	orrs	r0, r6
+ 8005c3a:	b246      	sxtb	r6, r0
+			SignalRate, EffectiveSpadRtnCount,
+			pRangingMeasurementData, &PalRangeStatus);
+
+		if (Status == VL53L0X_ERROR_NONE)
+ 8005c3c:	b916      	cbnz	r6, 8005c44 <VL53L0X_GetRangingMeasurementData+0xec>
+			pRangingMeasurementData->RangeStatus = PalRangeStatus;
+ 8005c3e:	f89d 3037 	ldrb.w	r3, [sp, #55]	; 0x37
+ 8005c42:	7623      	strb	r3, [r4, #24]
+
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8005c44:	bb3e      	cbnz	r6, 8005c96 <VL53L0X_GetRangingMeasurementData+0x13e>
+		/* Copy last read data into Dev buffer */
+		LastRangeDataBuffer = PALDevDataGet(Dev, LastRangeMeasure);
+ 8005c46:	af03      	add	r7, sp, #12
+ 8005c48:	f105 0c50 	add.w	ip, r5, #80	; 0x50
+ 8005c4c:	e8bc 000f 	ldmia.w	ip!, {r0, r1, r2, r3}
+ 8005c50:	c70f      	stmia	r7!, {r0, r1, r2, r3}
+ 8005c52:	e89c 0007 	ldmia.w	ip, {r0, r1, r2}
+ 8005c56:	e887 0007 	stmia.w	r7, {r0, r1, r2}
+
+		LastRangeDataBuffer.RangeMilliMeter =
+			pRangingMeasurementData->RangeMilliMeter;
+ 8005c5a:	8923      	ldrh	r3, [r4, #8]
+		LastRangeDataBuffer.RangeMilliMeter =
+ 8005c5c:	f8ad 3014 	strh.w	r3, [sp, #20]
+		LastRangeDataBuffer.RangeFractionalPart =
+			pRangingMeasurementData->RangeFractionalPart;
+ 8005c60:	7de3      	ldrb	r3, [r4, #23]
+		LastRangeDataBuffer.RangeFractionalPart =
+ 8005c62:	f88d 3023 	strb.w	r3, [sp, #35]	; 0x23
+		LastRangeDataBuffer.RangeDMaxMilliMeter =
+			pRangingMeasurementData->RangeDMaxMilliMeter;
+ 8005c66:	8963      	ldrh	r3, [r4, #10]
+		LastRangeDataBuffer.RangeDMaxMilliMeter =
+ 8005c68:	f8ad 3016 	strh.w	r3, [sp, #22]
+		LastRangeDataBuffer.MeasurementTimeUsec =
+			pRangingMeasurementData->MeasurementTimeUsec;
+ 8005c6c:	6863      	ldr	r3, [r4, #4]
+		LastRangeDataBuffer.MeasurementTimeUsec =
+ 8005c6e:	9304      	str	r3, [sp, #16]
+		LastRangeDataBuffer.SignalRateRtnMegaCps =
+			pRangingMeasurementData->SignalRateRtnMegaCps;
+ 8005c70:	68e3      	ldr	r3, [r4, #12]
+		LastRangeDataBuffer.SignalRateRtnMegaCps =
+ 8005c72:	9306      	str	r3, [sp, #24]
+		LastRangeDataBuffer.AmbientRateRtnMegaCps =
+			pRangingMeasurementData->AmbientRateRtnMegaCps;
+ 8005c74:	6923      	ldr	r3, [r4, #16]
+		LastRangeDataBuffer.AmbientRateRtnMegaCps =
+ 8005c76:	9307      	str	r3, [sp, #28]
+		LastRangeDataBuffer.EffectiveSpadRtnCount =
+			pRangingMeasurementData->EffectiveSpadRtnCount;
+ 8005c78:	8aa3      	ldrh	r3, [r4, #20]
+		LastRangeDataBuffer.EffectiveSpadRtnCount =
+ 8005c7a:	f8ad 3020 	strh.w	r3, [sp, #32]
+		LastRangeDataBuffer.RangeStatus =
+			pRangingMeasurementData->RangeStatus;
+ 8005c7e:	7e23      	ldrb	r3, [r4, #24]
+		LastRangeDataBuffer.RangeStatus =
+ 8005c80:	f88d 3024 	strb.w	r3, [sp, #36]	; 0x24
+
+		PALDevDataSet(Dev, LastRangeMeasure, LastRangeDataBuffer);
+ 8005c84:	f105 0450 	add.w	r4, r5, #80	; 0x50
+ 8005c88:	ad03      	add	r5, sp, #12
+ 8005c8a:	cd0f      	ldmia	r5!, {r0, r1, r2, r3}
+ 8005c8c:	c40f      	stmia	r4!, {r0, r1, r2, r3}
+ 8005c8e:	e895 0007 	ldmia.w	r5, {r0, r1, r2}
+ 8005c92:	e884 0007 	stmia.w	r4, {r0, r1, r2}
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+ 8005c96:	4630      	mov	r0, r6
+ 8005c98:	b00e      	add	sp, #56	; 0x38
+ 8005c9a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+					if (RangeFractionalEnable)
+ 8005c9e:	b117      	cbz	r7, 8005ca6 <VL53L0X_GetRangingMeasurementData+0x14e>
+						XtalkRangeMilliMeter = 8888;
+ 8005ca0:	f242 20b8 	movw	r0, #8888	; 0x22b8
+ 8005ca4:	e7ba      	b.n	8005c1c <VL53L0X_GetRangingMeasurementData+0xc4>
+						XtalkRangeMilliMeter = 8888
+ 8005ca6:	f648 20e0 	movw	r0, #35552	; 0x8ae0
+ 8005caa:	e7b7      	b.n	8005c1c <VL53L0X_GetRangingMeasurementData+0xc4>
+			pRangingMeasurementData->RangeMilliMeter = tmpuint16;
+ 8005cac:	8120      	strh	r0, [r4, #8]
+			pRangingMeasurementData->RangeFractionalPart = 0;
+ 8005cae:	2000      	movs	r0, #0
+ 8005cb0:	75e0      	strb	r0, [r4, #23]
+ 8005cb2:	e7ba      	b.n	8005c2a <VL53L0X_GetRangingMeasurementData+0xd2>
+ 8005cb4:	10624dd3 	.word	0x10624dd3
+
+08005cb8 <VL53L0X_GetInterruptThresholds>:
+}
+
+VL53L0X_Error VL53L0X_GetInterruptThresholds(VL53L0X_DEV Dev,
+	VL53L0X_DeviceModes DeviceMode, FixPoint1616_t *pThresholdLow,
+	FixPoint1616_t *pThresholdHigh)
+{
+ 8005cb8:	b570      	push	{r4, r5, r6, lr}
+ 8005cba:	b082      	sub	sp, #8
+ 8005cbc:	4606      	mov	r6, r0
+ 8005cbe:	4614      	mov	r4, r2
+ 8005cc0:	461d      	mov	r5, r3
+	uint16_t Threshold16;
+	LOG_FUNCTION_START("");
+
+	/* no dependency on DeviceMode for Ewok */
+
+	Status = VL53L0X_RdWord(Dev, VL53L0X_REG_SYSTEM_THRESH_LOW, &Threshold16);
+ 8005cc2:	f10d 0206 	add.w	r2, sp, #6
+ 8005cc6:	210e      	movs	r1, #14
+ 8005cc8:	f002 fa1e 	bl	8008108 <VL53L0X_RdWord>
+	/* Need to multiply by 2 because the FW will apply a x2 */
+	*pThresholdLow = (FixPoint1616_t)((0x00fff & Threshold16) << 17);
+ 8005ccc:	f8bd 1006 	ldrh.w	r1, [sp, #6]
+ 8005cd0:	4a09      	ldr	r2, [pc, #36]	; (8005cf8 <VL53L0X_GetInterruptThresholds+0x40>)
+ 8005cd2:	ea02 4241 	and.w	r2, r2, r1, lsl #17
+ 8005cd6:	6022      	str	r2, [r4, #0]
+
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8005cd8:	b108      	cbz	r0, 8005cde <VL53L0X_GetInterruptThresholds+0x26>
+			(FixPoint1616_t)((0x00fff & Threshold16) << 17);
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+ 8005cda:	b002      	add	sp, #8
+ 8005cdc:	bd70      	pop	{r4, r5, r6, pc}
+		Status = VL53L0X_RdWord(Dev, VL53L0X_REG_SYSTEM_THRESH_HIGH,
+ 8005cde:	f10d 0206 	add.w	r2, sp, #6
+ 8005ce2:	210c      	movs	r1, #12
+ 8005ce4:	4630      	mov	r0, r6
+ 8005ce6:	f002 fa0f 	bl	8008108 <VL53L0X_RdWord>
+			(FixPoint1616_t)((0x00fff & Threshold16) << 17);
+ 8005cea:	f8bd 2006 	ldrh.w	r2, [sp, #6]
+ 8005cee:	4b02      	ldr	r3, [pc, #8]	; (8005cf8 <VL53L0X_GetInterruptThresholds+0x40>)
+ 8005cf0:	ea03 4342 	and.w	r3, r3, r2, lsl #17
+		*pThresholdHigh =
+ 8005cf4:	602b      	str	r3, [r5, #0]
+ 8005cf6:	e7f0      	b.n	8005cda <VL53L0X_GetInterruptThresholds+0x22>
+ 8005cf8:	1ffe0000 	.word	0x1ffe0000
+
+08005cfc <VL53L0X_CheckAndLoadInterruptSettings>:
+{
+ 8005cfc:	b570      	push	{r4, r5, r6, lr}
+ 8005cfe:	b082      	sub	sp, #8
+	InterruptConfig = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
+ 8005d00:	f890 30da 	ldrb.w	r3, [r0, #218]	; 0xda
+		VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_HIGH) ||
+ 8005d04:	3b01      	subs	r3, #1
+ 8005d06:	b2db      	uxtb	r3, r3
+	if ((InterruptConfig ==
+ 8005d08:	2b02      	cmp	r3, #2
+ 8005d0a:	d903      	bls.n	8005d14 <VL53L0X_CheckAndLoadInterruptSettings+0x18>
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ 8005d0c:	2500      	movs	r5, #0
+}
+ 8005d0e:	4628      	mov	r0, r5
+ 8005d10:	b002      	add	sp, #8
+ 8005d12:	bd70      	pop	{r4, r5, r6, pc}
+ 8005d14:	4604      	mov	r4, r0
+ 8005d16:	460e      	mov	r6, r1
+		Status = VL53L0X_GetInterruptThresholds(Dev,
+ 8005d18:	466b      	mov	r3, sp
+ 8005d1a:	aa01      	add	r2, sp, #4
+ 8005d1c:	2101      	movs	r1, #1
+ 8005d1e:	f7ff ffcb 	bl	8005cb8 <VL53L0X_GetInterruptThresholds>
+ 8005d22:	4605      	mov	r5, r0
+		if (((ThresholdLow > 255*65536) ||
+ 8005d24:	9b01      	ldr	r3, [sp, #4]
+ 8005d26:	f5b3 0f7f 	cmp.w	r3, #16711680	; 0xff0000
+ 8005d2a:	d803      	bhi.n	8005d34 <VL53L0X_CheckAndLoadInterruptSettings+0x38>
+			(ThresholdHigh > 255*65536)) &&
+ 8005d2c:	9b00      	ldr	r3, [sp, #0]
+		if (((ThresholdLow > 255*65536) ||
+ 8005d2e:	f5b3 0f7f 	cmp.w	r3, #16711680	; 0xff0000
+ 8005d32:	d9ec      	bls.n	8005d0e <VL53L0X_CheckAndLoadInterruptSettings+0x12>
+			(ThresholdHigh > 255*65536)) &&
+ 8005d34:	2d00      	cmp	r5, #0
+ 8005d36:	d1ea      	bne.n	8005d0e <VL53L0X_CheckAndLoadInterruptSettings+0x12>
+			if (StartNotStopFlag != 0) {
+ 8005d38:	b12e      	cbz	r6, 8005d46 <VL53L0X_CheckAndLoadInterruptSettings+0x4a>
+				Status = VL53L0X_load_tuning_settings(Dev,
+ 8005d3a:	4911      	ldr	r1, [pc, #68]	; (8005d80 <VL53L0X_CheckAndLoadInterruptSettings+0x84>)
+ 8005d3c:	4620      	mov	r0, r4
+ 8005d3e:	f001 fdcf 	bl	80078e0 <VL53L0X_load_tuning_settings>
+ 8005d42:	4605      	mov	r5, r0
+ 8005d44:	e7e3      	b.n	8005d0e <VL53L0X_CheckAndLoadInterruptSettings+0x12>
+				Status |= VL53L0X_WrByte(Dev, 0xFF, 0x04);
+ 8005d46:	2204      	movs	r2, #4
+ 8005d48:	21ff      	movs	r1, #255	; 0xff
+ 8005d4a:	4620      	mov	r0, r4
+ 8005d4c:	f002 f986 	bl	800805c <VL53L0X_WrByte>
+ 8005d50:	4305      	orrs	r5, r0
+ 8005d52:	b26d      	sxtb	r5, r5
+				Status |= VL53L0X_WrByte(Dev, 0x70, 0x00);
+ 8005d54:	2200      	movs	r2, #0
+ 8005d56:	2170      	movs	r1, #112	; 0x70
+ 8005d58:	4620      	mov	r0, r4
+ 8005d5a:	f002 f97f 	bl	800805c <VL53L0X_WrByte>
+ 8005d5e:	4305      	orrs	r5, r0
+ 8005d60:	b26d      	sxtb	r5, r5
+				Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
+ 8005d62:	2200      	movs	r2, #0
+ 8005d64:	21ff      	movs	r1, #255	; 0xff
+ 8005d66:	4620      	mov	r0, r4
+ 8005d68:	f002 f978 	bl	800805c <VL53L0X_WrByte>
+ 8005d6c:	4305      	orrs	r5, r0
+ 8005d6e:	b26d      	sxtb	r5, r5
+				Status |= VL53L0X_WrByte(Dev, 0x80, 0x00);
+ 8005d70:	2200      	movs	r2, #0
+ 8005d72:	2180      	movs	r1, #128	; 0x80
+ 8005d74:	4620      	mov	r0, r4
+ 8005d76:	f002 f971 	bl	800805c <VL53L0X_WrByte>
+ 8005d7a:	4305      	orrs	r5, r0
+ 8005d7c:	b26d      	sxtb	r5, r5
+ 8005d7e:	e7c6      	b.n	8005d0e <VL53L0X_CheckAndLoadInterruptSettings+0x12>
+ 8005d80:	20000660 	.word	0x20000660
+
+08005d84 <VL53L0X_StartMeasurement>:
+{
+ 8005d84:	b530      	push	{r4, r5, lr}
+ 8005d86:	b083      	sub	sp, #12
+ 8005d88:	4604      	mov	r4, r0
+	VL53L0X_GetDeviceMode(Dev, &DeviceMode);
+ 8005d8a:	f10d 0107 	add.w	r1, sp, #7
+ 8005d8e:	f7ff fb91 	bl	80054b4 <VL53L0X_GetDeviceMode>
+	Status = VL53L0X_WrByte(Dev, 0x80, 0x01);
+ 8005d92:	2201      	movs	r2, #1
+ 8005d94:	2180      	movs	r1, #128	; 0x80
+ 8005d96:	4620      	mov	r0, r4
+ 8005d98:	f002 f960 	bl	800805c <VL53L0X_WrByte>
+	Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
+ 8005d9c:	2201      	movs	r2, #1
+ 8005d9e:	21ff      	movs	r1, #255	; 0xff
+ 8005da0:	4620      	mov	r0, r4
+ 8005da2:	f002 f95b 	bl	800805c <VL53L0X_WrByte>
+	Status = VL53L0X_WrByte(Dev, 0x00, 0x00);
+ 8005da6:	2200      	movs	r2, #0
+ 8005da8:	4611      	mov	r1, r2
+ 8005daa:	4620      	mov	r0, r4
+ 8005dac:	f002 f956 	bl	800805c <VL53L0X_WrByte>
+	Status = VL53L0X_WrByte(Dev, 0x91, PALDevDataGet(Dev, StopVariable));
+ 8005db0:	f894 213a 	ldrb.w	r2, [r4, #314]	; 0x13a
+ 8005db4:	2191      	movs	r1, #145	; 0x91
+ 8005db6:	4620      	mov	r0, r4
+ 8005db8:	f002 f950 	bl	800805c <VL53L0X_WrByte>
+	Status = VL53L0X_WrByte(Dev, 0x00, 0x01);
+ 8005dbc:	2201      	movs	r2, #1
+ 8005dbe:	2100      	movs	r1, #0
+ 8005dc0:	4620      	mov	r0, r4
+ 8005dc2:	f002 f94b 	bl	800805c <VL53L0X_WrByte>
+	Status = VL53L0X_WrByte(Dev, 0xFF, 0x00);
+ 8005dc6:	2200      	movs	r2, #0
+ 8005dc8:	21ff      	movs	r1, #255	; 0xff
+ 8005dca:	4620      	mov	r0, r4
+ 8005dcc:	f002 f946 	bl	800805c <VL53L0X_WrByte>
+	Status = VL53L0X_WrByte(Dev, 0x80, 0x00);
+ 8005dd0:	2200      	movs	r2, #0
+ 8005dd2:	2180      	movs	r1, #128	; 0x80
+ 8005dd4:	4620      	mov	r0, r4
+ 8005dd6:	f002 f941 	bl	800805c <VL53L0X_WrByte>
+	switch (DeviceMode) {
+ 8005dda:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8005dde:	2b01      	cmp	r3, #1
+ 8005de0:	d02b      	beq.n	8005e3a <VL53L0X_StartMeasurement+0xb6>
+ 8005de2:	2b03      	cmp	r3, #3
+ 8005de4:	d03a      	beq.n	8005e5c <VL53L0X_StartMeasurement+0xd8>
+ 8005de6:	b11b      	cbz	r3, 8005df0 <VL53L0X_StartMeasurement+0x6c>
+ 8005de8:	f06f 0007 	mvn.w	r0, #7
+}
+ 8005dec:	b003      	add	sp, #12
+ 8005dee:	bd30      	pop	{r4, r5, pc}
+		Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSRANGE_START, 0x01);
+ 8005df0:	2201      	movs	r2, #1
+ 8005df2:	2100      	movs	r1, #0
+ 8005df4:	4620      	mov	r0, r4
+ 8005df6:	f002 f931 	bl	800805c <VL53L0X_WrByte>
+		Byte = StartStopByte;
+ 8005dfa:	2201      	movs	r2, #1
+ 8005dfc:	f88d 2006 	strb.w	r2, [sp, #6]
+		if (Status == VL53L0X_ERROR_NONE) {
+ 8005e00:	2800      	cmp	r0, #0
+ 8005e02:	d1f3      	bne.n	8005dec <VL53L0X_StartMeasurement+0x68>
+			LoopNb = 0;
+ 8005e04:	2500      	movs	r5, #0
+ 8005e06:	e00f      	b.n	8005e28 <VL53L0X_StartMeasurement+0xa4>
+					Status = VL53L0X_RdByte(Dev,
+ 8005e08:	f10d 0206 	add.w	r2, sp, #6
+ 8005e0c:	2100      	movs	r1, #0
+ 8005e0e:	4620      	mov	r0, r4
+ 8005e10:	f002 f946 	bl	80080a0 <VL53L0X_RdByte>
+				LoopNb = LoopNb + 1;
+ 8005e14:	3501      	adds	r5, #1
+			} while (((Byte & StartStopByte) == StartStopByte)
+ 8005e16:	f89d 3006 	ldrb.w	r3, [sp, #6]
+				&& (LoopNb < VL53L0X_DEFAULT_MAX_LOOP));
+ 8005e1a:	f013 0f01 	tst.w	r3, #1
+ 8005e1e:	d006      	beq.n	8005e2e <VL53L0X_StartMeasurement+0xaa>
+				&& (Status == VL53L0X_ERROR_NONE)
+ 8005e20:	b928      	cbnz	r0, 8005e2e <VL53L0X_StartMeasurement+0xaa>
+				&& (LoopNb < VL53L0X_DEFAULT_MAX_LOOP));
+ 8005e22:	f5b5 6ffa 	cmp.w	r5, #2000	; 0x7d0
+ 8005e26:	d202      	bcs.n	8005e2e <VL53L0X_StartMeasurement+0xaa>
+				if (LoopNb > 0)
+ 8005e28:	2d00      	cmp	r5, #0
+ 8005e2a:	d0f3      	beq.n	8005e14 <VL53L0X_StartMeasurement+0x90>
+ 8005e2c:	e7ec      	b.n	8005e08 <VL53L0X_StartMeasurement+0x84>
+			if (LoopNb >= VL53L0X_DEFAULT_MAX_LOOP)
+ 8005e2e:	f5b5 6ffa 	cmp.w	r5, #2000	; 0x7d0
+ 8005e32:	d3db      	bcc.n	8005dec <VL53L0X_StartMeasurement+0x68>
+				Status = VL53L0X_ERROR_TIME_OUT;
+ 8005e34:	f06f 0006 	mvn.w	r0, #6
+ 8005e38:	e7d8      	b.n	8005dec <VL53L0X_StartMeasurement+0x68>
+		if (Status == VL53L0X_ERROR_NONE)
+ 8005e3a:	b150      	cbz	r0, 8005e52 <VL53L0X_StartMeasurement+0xce>
+		Status = VL53L0X_WrByte(Dev,
+ 8005e3c:	2202      	movs	r2, #2
+ 8005e3e:	2100      	movs	r1, #0
+ 8005e40:	4620      	mov	r0, r4
+ 8005e42:	f002 f90b 	bl	800805c <VL53L0X_WrByte>
+		if (Status == VL53L0X_ERROR_NONE) {
+ 8005e46:	2800      	cmp	r0, #0
+ 8005e48:	d1d0      	bne.n	8005dec <VL53L0X_StartMeasurement+0x68>
+			PALDevDataSet(Dev, PalState, VL53L0X_STATE_RUNNING);
+ 8005e4a:	2304      	movs	r3, #4
+ 8005e4c:	f884 3132 	strb.w	r3, [r4, #306]	; 0x132
+ 8005e50:	e7cc      	b.n	8005dec <VL53L0X_StartMeasurement+0x68>
+			Status = VL53L0X_CheckAndLoadInterruptSettings(Dev, 1);
+ 8005e52:	2101      	movs	r1, #1
+ 8005e54:	4620      	mov	r0, r4
+ 8005e56:	f7ff ff51 	bl	8005cfc <VL53L0X_CheckAndLoadInterruptSettings>
+ 8005e5a:	e7ef      	b.n	8005e3c <VL53L0X_StartMeasurement+0xb8>
+		if (Status == VL53L0X_ERROR_NONE)
+ 8005e5c:	b150      	cbz	r0, 8005e74 <VL53L0X_StartMeasurement+0xf0>
+		Status = VL53L0X_WrByte(Dev,
+ 8005e5e:	2204      	movs	r2, #4
+ 8005e60:	2100      	movs	r1, #0
+ 8005e62:	4620      	mov	r0, r4
+ 8005e64:	f002 f8fa 	bl	800805c <VL53L0X_WrByte>
+		if (Status == VL53L0X_ERROR_NONE) {
+ 8005e68:	2800      	cmp	r0, #0
+ 8005e6a:	d1bf      	bne.n	8005dec <VL53L0X_StartMeasurement+0x68>
+			PALDevDataSet(Dev, PalState, VL53L0X_STATE_RUNNING);
+ 8005e6c:	2304      	movs	r3, #4
+ 8005e6e:	f884 3132 	strb.w	r3, [r4, #306]	; 0x132
+ 8005e72:	e7bb      	b.n	8005dec <VL53L0X_StartMeasurement+0x68>
+			Status = VL53L0X_CheckAndLoadInterruptSettings(Dev, 1);
+ 8005e74:	2101      	movs	r1, #1
+ 8005e76:	4620      	mov	r0, r4
+ 8005e78:	f7ff ff40 	bl	8005cfc <VL53L0X_CheckAndLoadInterruptSettings>
+ 8005e7c:	e7ef      	b.n	8005e5e <VL53L0X_StartMeasurement+0xda>
+
+08005e7e <VL53L0X_PerformSingleMeasurement>:
+{
+ 8005e7e:	b510      	push	{r4, lr}
+ 8005e80:	b082      	sub	sp, #8
+ 8005e82:	4604      	mov	r4, r0
+	Status = VL53L0X_GetDeviceMode(Dev, &DeviceMode);
+ 8005e84:	f10d 0107 	add.w	r1, sp, #7
+ 8005e88:	f7ff fb14 	bl	80054b4 <VL53L0X_GetDeviceMode>
+	if (Status == VL53L0X_ERROR_NONE
+ 8005e8c:	b910      	cbnz	r0, 8005e94 <VL53L0X_PerformSingleMeasurement+0x16>
+		&& DeviceMode == VL53L0X_DEVICEMODE_SINGLE_RANGING)
+ 8005e8e:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8005e92:	b14b      	cbz	r3, 8005ea8 <VL53L0X_PerformSingleMeasurement+0x2a>
+	if (Status == VL53L0X_ERROR_NONE)
+ 8005e94:	b160      	cbz	r0, 8005eb0 <VL53L0X_PerformSingleMeasurement+0x32>
+	if (Status == VL53L0X_ERROR_NONE
+ 8005e96:	b928      	cbnz	r0, 8005ea4 <VL53L0X_PerformSingleMeasurement+0x26>
+		&& DeviceMode == VL53L0X_DEVICEMODE_SINGLE_RANGING)
+ 8005e98:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8005e9c:	b913      	cbnz	r3, 8005ea4 <VL53L0X_PerformSingleMeasurement+0x26>
+		PALDevDataSet(Dev, PalState, VL53L0X_STATE_IDLE);
+ 8005e9e:	2303      	movs	r3, #3
+ 8005ea0:	f884 3132 	strb.w	r3, [r4, #306]	; 0x132
+}
+ 8005ea4:	b002      	add	sp, #8
+ 8005ea6:	bd10      	pop	{r4, pc}
+		Status = VL53L0X_StartMeasurement(Dev);
+ 8005ea8:	4620      	mov	r0, r4
+ 8005eaa:	f7ff ff6b 	bl	8005d84 <VL53L0X_StartMeasurement>
+ 8005eae:	e7f1      	b.n	8005e94 <VL53L0X_PerformSingleMeasurement+0x16>
+		Status = VL53L0X_measurement_poll_for_completion(Dev);
+ 8005eb0:	4620      	mov	r0, r4
+ 8005eb2:	f000 fe04 	bl	8006abe <VL53L0X_measurement_poll_for_completion>
+ 8005eb6:	e7ee      	b.n	8005e96 <VL53L0X_PerformSingleMeasurement+0x18>
+
+08005eb8 <VL53L0X_ClearInterruptMask>:
+	return Status;
+}
+
+/* Group PAL Interrupt Functions */
+VL53L0X_Error VL53L0X_ClearInterruptMask(VL53L0X_DEV Dev, uint32_t InterruptMask)
+{
+ 8005eb8:	b570      	push	{r4, r5, r6, lr}
+ 8005eba:	b082      	sub	sp, #8
+ 8005ebc:	4606      	mov	r6, r0
+	uint8_t LoopCount;
+	uint8_t Byte;
+	LOG_FUNCTION_START("");
+
+	/* clear bit 0 range interrupt, bit 1 error interrupt */
+	LoopCount = 0;
+ 8005ebe:	2500      	movs	r5, #0
+	do {
+		Status = VL53L0X_WrByte(Dev,
+ 8005ec0:	2201      	movs	r2, #1
+ 8005ec2:	210b      	movs	r1, #11
+ 8005ec4:	4630      	mov	r0, r6
+ 8005ec6:	f002 f8c9 	bl	800805c <VL53L0X_WrByte>
+ 8005eca:	4604      	mov	r4, r0
+			VL53L0X_REG_SYSTEM_INTERRUPT_CLEAR, 0x01);
+		Status |= VL53L0X_WrByte(Dev,
+ 8005ecc:	2200      	movs	r2, #0
+ 8005ece:	210b      	movs	r1, #11
+ 8005ed0:	4630      	mov	r0, r6
+ 8005ed2:	f002 f8c3 	bl	800805c <VL53L0X_WrByte>
+ 8005ed6:	4304      	orrs	r4, r0
+ 8005ed8:	b264      	sxtb	r4, r4
+			VL53L0X_REG_SYSTEM_INTERRUPT_CLEAR, 0x00);
+		Status |= VL53L0X_RdByte(Dev,
+ 8005eda:	f10d 0207 	add.w	r2, sp, #7
+ 8005ede:	2113      	movs	r1, #19
+ 8005ee0:	4630      	mov	r0, r6
+ 8005ee2:	f002 f8dd 	bl	80080a0 <VL53L0X_RdByte>
+ 8005ee6:	4304      	orrs	r4, r0
+ 8005ee8:	b260      	sxtb	r0, r4
+			VL53L0X_REG_RESULT_INTERRUPT_STATUS, &Byte);
+		LoopCount++;
+ 8005eea:	3501      	adds	r5, #1
+ 8005eec:	b2ed      	uxtb	r5, r5
+	} while (((Byte & 0x07) != 0x00)
+ 8005eee:	f89d 3007 	ldrb.w	r3, [sp, #7]
+			&& (LoopCount < 3)
+			&& (Status == VL53L0X_ERROR_NONE));
+ 8005ef2:	f013 0f07 	tst.w	r3, #7
+ 8005ef6:	d003      	beq.n	8005f00 <VL53L0X_ClearInterruptMask+0x48>
+			&& (LoopCount < 3)
+ 8005ef8:	2d02      	cmp	r5, #2
+ 8005efa:	d801      	bhi.n	8005f00 <VL53L0X_ClearInterruptMask+0x48>
+			&& (Status == VL53L0X_ERROR_NONE));
+ 8005efc:	2800      	cmp	r0, #0
+ 8005efe:	d0df      	beq.n	8005ec0 <VL53L0X_ClearInterruptMask+0x8>
+
+
+	if (LoopCount >= 3)
+ 8005f00:	2d02      	cmp	r5, #2
+ 8005f02:	d801      	bhi.n	8005f08 <VL53L0X_ClearInterruptMask+0x50>
+		Status = VL53L0X_ERROR_INTERRUPT_NOT_CLEARED;
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+ 8005f04:	b002      	add	sp, #8
+ 8005f06:	bd70      	pop	{r4, r5, r6, pc}
+		Status = VL53L0X_ERROR_INTERRUPT_NOT_CLEARED;
+ 8005f08:	f06f 000b 	mvn.w	r0, #11
+ 8005f0c:	e7fa      	b.n	8005f04 <VL53L0X_ClearInterruptMask+0x4c>
+
+08005f0e <VL53L0X_PerformSingleRangingMeasurement>:
+{
+ 8005f0e:	b538      	push	{r3, r4, r5, lr}
+ 8005f10:	4604      	mov	r4, r0
+ 8005f12:	460d      	mov	r5, r1
+	Status = VL53L0X_SetDeviceMode(Dev, VL53L0X_DEVICEMODE_SINGLE_RANGING);
+ 8005f14:	2100      	movs	r1, #0
+ 8005f16:	f7ff fabb 	bl	8005490 <VL53L0X_SetDeviceMode>
+	if (Status == VL53L0X_ERROR_NONE)
+ 8005f1a:	b110      	cbz	r0, 8005f22 <VL53L0X_PerformSingleRangingMeasurement+0x14>
+	if (Status == VL53L0X_ERROR_NONE)
+ 8005f1c:	b128      	cbz	r0, 8005f2a <VL53L0X_PerformSingleRangingMeasurement+0x1c>
+	if (Status == VL53L0X_ERROR_NONE)
+ 8005f1e:	b148      	cbz	r0, 8005f34 <VL53L0X_PerformSingleRangingMeasurement+0x26>
+}
+ 8005f20:	bd38      	pop	{r3, r4, r5, pc}
+		Status = VL53L0X_PerformSingleMeasurement(Dev);
+ 8005f22:	4620      	mov	r0, r4
+ 8005f24:	f7ff ffab 	bl	8005e7e <VL53L0X_PerformSingleMeasurement>
+ 8005f28:	e7f8      	b.n	8005f1c <VL53L0X_PerformSingleRangingMeasurement+0xe>
+		Status = VL53L0X_GetRangingMeasurementData(Dev,
+ 8005f2a:	4629      	mov	r1, r5
+ 8005f2c:	4620      	mov	r0, r4
+ 8005f2e:	f7ff fe13 	bl	8005b58 <VL53L0X_GetRangingMeasurementData>
+ 8005f32:	e7f4      	b.n	8005f1e <VL53L0X_PerformSingleRangingMeasurement+0x10>
+		Status = VL53L0X_ClearInterruptMask(Dev, 0);
+ 8005f34:	2100      	movs	r1, #0
+ 8005f36:	4620      	mov	r0, r4
+ 8005f38:	f7ff ffbe 	bl	8005eb8 <VL53L0X_ClearInterruptMask>
+ 8005f3c:	e7f0      	b.n	8005f20 <VL53L0X_PerformSingleRangingMeasurement+0x12>
+
+08005f3e <VL53L0X_SetGpioConfig>:
+{
+ 8005f3e:	b570      	push	{r4, r5, r6, lr}
+ 8005f40:	f89d 6010 	ldrb.w	r6, [sp, #16]
+	if (Pin != 0) {
+ 8005f44:	2900      	cmp	r1, #0
+ 8005f46:	f040 8099 	bne.w	800607c <VL53L0X_SetGpioConfig+0x13e>
+ 8005f4a:	4605      	mov	r5, r0
+ 8005f4c:	461c      	mov	r4, r3
+	} else if (DeviceMode == VL53L0X_DEVICEMODE_GPIO_DRIVE) {
+ 8005f4e:	2a14      	cmp	r2, #20
+ 8005f50:	d009      	beq.n	8005f66 <VL53L0X_SetGpioConfig+0x28>
+	} else if (DeviceMode == VL53L0X_DEVICEMODE_GPIO_OSC) {
+ 8005f52:	2a15      	cmp	r2, #21
+ 8005f54:	d010      	beq.n	8005f78 <VL53L0X_SetGpioConfig+0x3a>
+			switch (Functionality) {
+ 8005f56:	2c04      	cmp	r4, #4
+ 8005f58:	f200 8088 	bhi.w	800606c <VL53L0X_SetGpioConfig+0x12e>
+ 8005f5c:	e8df f004 	tbb	[pc, r4]
+ 8005f60:	74747474 	.word	0x74747474
+ 8005f64:	74          	.byte	0x74
+ 8005f65:	00          	.byte	0x00
+		if (Polarity == VL53L0X_INTERRUPTPOLARITY_LOW)
+ 8005f66:	b92e      	cbnz	r6, 8005f74 <VL53L0X_SetGpioConfig+0x36>
+			data = 0x10;
+ 8005f68:	2210      	movs	r2, #16
+		Status = VL53L0X_WrByte(Dev,
+ 8005f6a:	2184      	movs	r1, #132	; 0x84
+ 8005f6c:	4628      	mov	r0, r5
+ 8005f6e:	f002 f875 	bl	800805c <VL53L0X_WrByte>
+ 8005f72:	e07a      	b.n	800606a <VL53L0X_SetGpioConfig+0x12c>
+			data = 1;
+ 8005f74:	2201      	movs	r2, #1
+ 8005f76:	e7f8      	b.n	8005f6a <VL53L0X_SetGpioConfig+0x2c>
+		Status |= VL53L0X_WrByte(Dev, 0xff, 0x01);
+ 8005f78:	2201      	movs	r2, #1
+ 8005f7a:	21ff      	movs	r1, #255	; 0xff
+ 8005f7c:	f002 f86e 	bl	800805c <VL53L0X_WrByte>
+ 8005f80:	4604      	mov	r4, r0
+		Status |= VL53L0X_WrByte(Dev, 0x00, 0x00);
+ 8005f82:	2200      	movs	r2, #0
+ 8005f84:	4611      	mov	r1, r2
+ 8005f86:	4628      	mov	r0, r5
+ 8005f88:	f002 f868 	bl	800805c <VL53L0X_WrByte>
+ 8005f8c:	4304      	orrs	r4, r0
+ 8005f8e:	b264      	sxtb	r4, r4
+		Status |= VL53L0X_WrByte(Dev, 0xff, 0x00);
+ 8005f90:	2200      	movs	r2, #0
+ 8005f92:	21ff      	movs	r1, #255	; 0xff
+ 8005f94:	4628      	mov	r0, r5
+ 8005f96:	f002 f861 	bl	800805c <VL53L0X_WrByte>
+ 8005f9a:	4304      	orrs	r4, r0
+ 8005f9c:	b264      	sxtb	r4, r4
+		Status |= VL53L0X_WrByte(Dev, 0x80, 0x01);
+ 8005f9e:	2201      	movs	r2, #1
+ 8005fa0:	2180      	movs	r1, #128	; 0x80
+ 8005fa2:	4628      	mov	r0, r5
+ 8005fa4:	f002 f85a 	bl	800805c <VL53L0X_WrByte>
+ 8005fa8:	4304      	orrs	r4, r0
+ 8005faa:	b264      	sxtb	r4, r4
+		Status |= VL53L0X_WrByte(Dev, 0x85, 0x02);
+ 8005fac:	2202      	movs	r2, #2
+ 8005fae:	2185      	movs	r1, #133	; 0x85
+ 8005fb0:	4628      	mov	r0, r5
+ 8005fb2:	f002 f853 	bl	800805c <VL53L0X_WrByte>
+ 8005fb6:	4304      	orrs	r4, r0
+ 8005fb8:	b264      	sxtb	r4, r4
+		Status |= VL53L0X_WrByte(Dev, 0xff, 0x04);
+ 8005fba:	2204      	movs	r2, #4
+ 8005fbc:	21ff      	movs	r1, #255	; 0xff
+ 8005fbe:	4628      	mov	r0, r5
+ 8005fc0:	f002 f84c 	bl	800805c <VL53L0X_WrByte>
+ 8005fc4:	4304      	orrs	r4, r0
+ 8005fc6:	b264      	sxtb	r4, r4
+		Status |= VL53L0X_WrByte(Dev, 0xcd, 0x00);
+ 8005fc8:	2200      	movs	r2, #0
+ 8005fca:	21cd      	movs	r1, #205	; 0xcd
+ 8005fcc:	4628      	mov	r0, r5
+ 8005fce:	f002 f845 	bl	800805c <VL53L0X_WrByte>
+ 8005fd2:	4304      	orrs	r4, r0
+ 8005fd4:	b264      	sxtb	r4, r4
+		Status |= VL53L0X_WrByte(Dev, 0xcc, 0x11);
+ 8005fd6:	2211      	movs	r2, #17
+ 8005fd8:	21cc      	movs	r1, #204	; 0xcc
+ 8005fda:	4628      	mov	r0, r5
+ 8005fdc:	f002 f83e 	bl	800805c <VL53L0X_WrByte>
+ 8005fe0:	4304      	orrs	r4, r0
+ 8005fe2:	b264      	sxtb	r4, r4
+		Status |= VL53L0X_WrByte(Dev, 0xff, 0x07);
+ 8005fe4:	2207      	movs	r2, #7
+ 8005fe6:	21ff      	movs	r1, #255	; 0xff
+ 8005fe8:	4628      	mov	r0, r5
+ 8005fea:	f002 f837 	bl	800805c <VL53L0X_WrByte>
+ 8005fee:	4304      	orrs	r4, r0
+ 8005ff0:	b264      	sxtb	r4, r4
+		Status |= VL53L0X_WrByte(Dev, 0xbe, 0x00);
+ 8005ff2:	2200      	movs	r2, #0
+ 8005ff4:	21be      	movs	r1, #190	; 0xbe
+ 8005ff6:	4628      	mov	r0, r5
+ 8005ff8:	f002 f830 	bl	800805c <VL53L0X_WrByte>
+ 8005ffc:	4304      	orrs	r4, r0
+ 8005ffe:	b264      	sxtb	r4, r4
+		Status |= VL53L0X_WrByte(Dev, 0xff, 0x06);
+ 8006000:	2206      	movs	r2, #6
+ 8006002:	21ff      	movs	r1, #255	; 0xff
+ 8006004:	4628      	mov	r0, r5
+ 8006006:	f002 f829 	bl	800805c <VL53L0X_WrByte>
+ 800600a:	4304      	orrs	r4, r0
+ 800600c:	b264      	sxtb	r4, r4
+		Status |= VL53L0X_WrByte(Dev, 0xcc, 0x09);
+ 800600e:	2209      	movs	r2, #9
+ 8006010:	21cc      	movs	r1, #204	; 0xcc
+ 8006012:	4628      	mov	r0, r5
+ 8006014:	f002 f822 	bl	800805c <VL53L0X_WrByte>
+ 8006018:	4304      	orrs	r4, r0
+ 800601a:	b264      	sxtb	r4, r4
+		Status |= VL53L0X_WrByte(Dev, 0xff, 0x00);
+ 800601c:	2200      	movs	r2, #0
+ 800601e:	21ff      	movs	r1, #255	; 0xff
+ 8006020:	4628      	mov	r0, r5
+ 8006022:	f002 f81b 	bl	800805c <VL53L0X_WrByte>
+ 8006026:	4304      	orrs	r4, r0
+ 8006028:	b264      	sxtb	r4, r4
+		Status |= VL53L0X_WrByte(Dev, 0xff, 0x01);
+ 800602a:	2201      	movs	r2, #1
+ 800602c:	21ff      	movs	r1, #255	; 0xff
+ 800602e:	4628      	mov	r0, r5
+ 8006030:	f002 f814 	bl	800805c <VL53L0X_WrByte>
+ 8006034:	4304      	orrs	r4, r0
+ 8006036:	b264      	sxtb	r4, r4
+		Status |= VL53L0X_WrByte(Dev, 0x00, 0x00);
+ 8006038:	2200      	movs	r2, #0
+ 800603a:	4611      	mov	r1, r2
+ 800603c:	4628      	mov	r0, r5
+ 800603e:	f002 f80d 	bl	800805c <VL53L0X_WrByte>
+ 8006042:	4320      	orrs	r0, r4
+ 8006044:	b240      	sxtb	r0, r0
+ 8006046:	e010      	b.n	800606a <VL53L0X_SetGpioConfig+0x12c>
+			Status = VL53L0X_WrByte(Dev,
+ 8006048:	4622      	mov	r2, r4
+ 800604a:	210a      	movs	r1, #10
+ 800604c:	f002 f806 	bl	800805c <VL53L0X_WrByte>
+		if (Status == VL53L0X_ERROR_NONE) {
+ 8006050:	b938      	cbnz	r0, 8006062 <VL53L0X_SetGpioConfig+0x124>
+			if (Polarity == VL53L0X_INTERRUPTPOLARITY_LOW)
+ 8006052:	b106      	cbz	r6, 8006056 <VL53L0X_SetGpioConfig+0x118>
+				data = (uint8_t)(1 << 4);
+ 8006054:	2610      	movs	r6, #16
+			Status = VL53L0X_UpdateByte(Dev,
+ 8006056:	4633      	mov	r3, r6
+ 8006058:	22ef      	movs	r2, #239	; 0xef
+ 800605a:	2184      	movs	r1, #132	; 0x84
+ 800605c:	4628      	mov	r0, r5
+ 800605e:	f002 f839 	bl	80080d4 <VL53L0X_UpdateByte>
+		if (Status == VL53L0X_ERROR_NONE)
+ 8006062:	b908      	cbnz	r0, 8006068 <VL53L0X_SetGpioConfig+0x12a>
+			VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ 8006064:	f885 40da 	strb.w	r4, [r5, #218]	; 0xda
+		if (Status == VL53L0X_ERROR_NONE)
+ 8006068:	b118      	cbz	r0, 8006072 <VL53L0X_SetGpioConfig+0x134>
+}
+ 800606a:	bd70      	pop	{r4, r5, r6, pc}
+			switch (Functionality) {
+ 800606c:	f06f 000a 	mvn.w	r0, #10
+ 8006070:	e7ee      	b.n	8006050 <VL53L0X_SetGpioConfig+0x112>
+			Status = VL53L0X_ClearInterruptMask(Dev, 0);
+ 8006072:	2100      	movs	r1, #0
+ 8006074:	4628      	mov	r0, r5
+ 8006076:	f7ff ff1f 	bl	8005eb8 <VL53L0X_ClearInterruptMask>
+ 800607a:	e7f6      	b.n	800606a <VL53L0X_SetGpioConfig+0x12c>
+		Status = VL53L0X_ERROR_GPIO_NOT_EXISTING;
+ 800607c:	f06f 0009 	mvn.w	r0, #9
+ 8006080:	e7f3      	b.n	800606a <VL53L0X_SetGpioConfig+0x12c>
+	...
+
+08006084 <VL53L0X_StaticInit>:
+{
+ 8006084:	b530      	push	{r4, r5, lr}
+ 8006086:	b097      	sub	sp, #92	; 0x5c
+ 8006088:	4605      	mov	r5, r0
+	VL53L0X_DeviceParameters_t CurrentParameters = {0};
+ 800608a:	2240      	movs	r2, #64	; 0x40
+ 800608c:	2100      	movs	r1, #0
+ 800608e:	a806      	add	r0, sp, #24
+ 8006090:	f011 fb16 	bl	80176c0 <memset>
+	uint16_t tempword = 0;
+ 8006094:	2300      	movs	r3, #0
+ 8006096:	f8ad 3016 	strh.w	r3, [sp, #22]
+	uint8_t tempbyte = 0;
+ 800609a:	f88d 3015 	strb.w	r3, [sp, #21]
+	uint8_t isApertureSpads = 0;
+ 800609e:	f88d 3014 	strb.w	r3, [sp, #20]
+	uint32_t refSpadCount = 0;
+ 80060a2:	9304      	str	r3, [sp, #16]
+	Status = VL53L0X_get_info_from_device(Dev, 1);
+ 80060a4:	2101      	movs	r1, #1
+ 80060a6:	4628      	mov	r0, r5
+ 80060a8:	f000 fd6c 	bl	8006b84 <VL53L0X_get_info_from_device>
+	count	= (uint32_t)VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
+ 80060ac:	f895 1113 	ldrb.w	r1, [r5, #275]	; 0x113
+	ApertureSpads = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
+ 80060b0:	f895 2114 	ldrb.w	r2, [r5, #276]	; 0x114
+	if ((ApertureSpads > 1) ||
+ 80060b4:	2a01      	cmp	r2, #1
+ 80060b6:	d803      	bhi.n	80060c0 <VL53L0X_StaticInit+0x3c>
+ 80060b8:	d010      	beq.n	80060dc <VL53L0X_StaticInit+0x58>
+		((ApertureSpads == 1) && (count > 32)) ||
+ 80060ba:	b992      	cbnz	r2, 80060e2 <VL53L0X_StaticInit+0x5e>
+		((ApertureSpads == 0) && (count > 12)))
+ 80060bc:	290c      	cmp	r1, #12
+ 80060be:	d910      	bls.n	80060e2 <VL53L0X_StaticInit+0x5e>
+		Status = VL53L0X_perform_ref_spad_management(Dev, &refSpadCount,
+ 80060c0:	aa05      	add	r2, sp, #20
+ 80060c2:	a904      	add	r1, sp, #16
+ 80060c4:	4628      	mov	r0, r5
+ 80060c6:	f000 fb93 	bl	80067f0 <VL53L0X_perform_ref_spad_management>
+ 80060ca:	4604      	mov	r4, r0
+	if (Status == VL53L0X_ERROR_NONE) {
+ 80060cc:	b974      	cbnz	r4, 80060ec <VL53L0X_StaticInit+0x68>
+		UseInternalTuningSettings = PALDevDataGet(Dev,
+ 80060ce:	f895 3150 	ldrb.w	r3, [r5, #336]	; 0x150
+		if (UseInternalTuningSettings == 0)
+ 80060d2:	2b00      	cmp	r3, #0
+ 80060d4:	d157      	bne.n	8006186 <VL53L0X_StaticInit+0x102>
+			pTuningSettingBuffer = PALDevDataGet(Dev,
+ 80060d6:	f8d5 114c 	ldr.w	r1, [r5, #332]	; 0x14c
+ 80060da:	e008      	b.n	80060ee <VL53L0X_StaticInit+0x6a>
+		((ApertureSpads == 1) && (count > 32)) ||
+ 80060dc:	2920      	cmp	r1, #32
+ 80060de:	d8ef      	bhi.n	80060c0 <VL53L0X_StaticInit+0x3c>
+ 80060e0:	e7eb      	b.n	80060ba <VL53L0X_StaticInit+0x36>
+		Status = VL53L0X_set_reference_spads(Dev, count, ApertureSpads);
+ 80060e2:	4628      	mov	r0, r5
+ 80060e4:	f000 fa03 	bl	80064ee <VL53L0X_set_reference_spads>
+ 80060e8:	4604      	mov	r4, r0
+ 80060ea:	e7ef      	b.n	80060cc <VL53L0X_StaticInit+0x48>
+	pTuningSettingBuffer = DefaultTuningSettings;
+ 80060ec:	495f      	ldr	r1, [pc, #380]	; (800626c <VL53L0X_StaticInit+0x1e8>)
+	if (Status == VL53L0X_ERROR_NONE)
+ 80060ee:	2c00      	cmp	r4, #0
+ 80060f0:	d04b      	beq.n	800618a <VL53L0X_StaticInit+0x106>
+	if (Status == VL53L0X_ERROR_NONE) {
+ 80060f2:	2c00      	cmp	r4, #0
+ 80060f4:	d04e      	beq.n	8006194 <VL53L0X_StaticInit+0x110>
+	if (Status == VL53L0X_ERROR_NONE) {
+ 80060f6:	2c00      	cmp	r4, #0
+ 80060f8:	d055      	beq.n	80061a6 <VL53L0X_StaticInit+0x122>
+	if (Status == VL53L0X_ERROR_NONE) {
+ 80060fa:	b924      	cbnz	r4, 8006106 <VL53L0X_StaticInit+0x82>
+		VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, OscFrequencyMHz,
+ 80060fc:	f8bd 3016 	ldrh.w	r3, [sp, #22]
+ 8006100:	011b      	lsls	r3, r3, #4
+ 8006102:	f8c5 30d4 	str.w	r3, [r5, #212]	; 0xd4
+	if (Status == VL53L0X_ERROR_NONE)
+ 8006106:	2c00      	cmp	r4, #0
+ 8006108:	d063      	beq.n	80061d2 <VL53L0X_StaticInit+0x14e>
+	if (Status == VL53L0X_ERROR_NONE) {
+ 800610a:	2c00      	cmp	r4, #0
+ 800610c:	d067      	beq.n	80061de <VL53L0X_StaticInit+0x15a>
+	if (Status == VL53L0X_ERROR_NONE)
+ 800610e:	b99c      	cbnz	r4, 8006138 <VL53L0X_StaticInit+0xb4>
+		PALDevDataSet(Dev, CurrentParameters, CurrentParameters);
+ 8006110:	f105 0c10 	add.w	ip, r5, #16
+ 8006114:	f10d 0e18 	add.w	lr, sp, #24
+ 8006118:	e8be 000f 	ldmia.w	lr!, {r0, r1, r2, r3}
+ 800611c:	e8ac 000f 	stmia.w	ip!, {r0, r1, r2, r3}
+ 8006120:	e8be 000f 	ldmia.w	lr!, {r0, r1, r2, r3}
+ 8006124:	e8ac 000f 	stmia.w	ip!, {r0, r1, r2, r3}
+ 8006128:	e8be 000f 	ldmia.w	lr!, {r0, r1, r2, r3}
+ 800612c:	e8ac 000f 	stmia.w	ip!, {r0, r1, r2, r3}
+ 8006130:	e89e 000f 	ldmia.w	lr, {r0, r1, r2, r3}
+ 8006134:	e88c 000f 	stmia.w	ip, {r0, r1, r2, r3}
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8006138:	2c00      	cmp	r4, #0
+ 800613a:	d05d      	beq.n	80061f8 <VL53L0X_StaticInit+0x174>
+	if (Status == VL53L0X_ERROR_NONE)
+ 800613c:	2c00      	cmp	r4, #0
+ 800613e:	d069      	beq.n	8006214 <VL53L0X_StaticInit+0x190>
+	if (Status == VL53L0X_ERROR_NONE)
+ 8006140:	2c00      	cmp	r4, #0
+ 8006142:	d06e      	beq.n	8006222 <VL53L0X_StaticInit+0x19e>
+	if (Status == VL53L0X_ERROR_NONE)
+ 8006144:	b914      	cbnz	r4, 800614c <VL53L0X_StaticInit+0xc8>
+		PALDevDataSet(Dev, PalState, VL53L0X_STATE_IDLE);
+ 8006146:	2303      	movs	r3, #3
+ 8006148:	f885 3132 	strb.w	r3, [r5, #306]	; 0x132
+	if (Status == VL53L0X_ERROR_NONE) {
+ 800614c:	2c00      	cmp	r4, #0
+ 800614e:	d06f      	beq.n	8006230 <VL53L0X_StaticInit+0x1ac>
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8006150:	b91c      	cbnz	r4, 800615a <VL53L0X_StaticInit+0xd6>
+			VL53L0X_SETDEVICESPECIFICPARAMETER(
+ 8006152:	f89d 300f 	ldrb.w	r3, [sp, #15]
+ 8006156:	f885 30e8 	strb.w	r3, [r5, #232]	; 0xe8
+	if (Status == VL53L0X_ERROR_NONE) {
+ 800615a:	2c00      	cmp	r4, #0
+ 800615c:	d070      	beq.n	8006240 <VL53L0X_StaticInit+0x1bc>
+	if (Status == VL53L0X_ERROR_NONE) {
+ 800615e:	b91c      	cbnz	r4, 8006168 <VL53L0X_StaticInit+0xe4>
+			VL53L0X_SETDEVICESPECIFICPARAMETER(
+ 8006160:	f89d 300f 	ldrb.w	r3, [sp, #15]
+ 8006164:	f885 30e0 	strb.w	r3, [r5, #224]	; 0xe0
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8006168:	2c00      	cmp	r4, #0
+ 800616a:	d071      	beq.n	8006250 <VL53L0X_StaticInit+0x1cc>
+	if (Status == VL53L0X_ERROR_NONE) {
+ 800616c:	b914      	cbnz	r4, 8006174 <VL53L0X_StaticInit+0xf0>
+		VL53L0X_SETDEVICESPECIFICPARAMETER(
+ 800616e:	9b02      	ldr	r3, [sp, #8]
+ 8006170:	f8c5 30e4 	str.w	r3, [r5, #228]	; 0xe4
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8006174:	2c00      	cmp	r4, #0
+ 8006176:	d072      	beq.n	800625e <VL53L0X_StaticInit+0x1da>
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8006178:	b914      	cbnz	r4, 8006180 <VL53L0X_StaticInit+0xfc>
+		VL53L0X_SETDEVICESPECIFICPARAMETER(
+ 800617a:	9b02      	ldr	r3, [sp, #8]
+ 800617c:	f8c5 30dc 	str.w	r3, [r5, #220]	; 0xdc
+}
+ 8006180:	4620      	mov	r0, r4
+ 8006182:	b017      	add	sp, #92	; 0x5c
+ 8006184:	bd30      	pop	{r4, r5, pc}
+			pTuningSettingBuffer = DefaultTuningSettings;
+ 8006186:	4939      	ldr	r1, [pc, #228]	; (800626c <VL53L0X_StaticInit+0x1e8>)
+ 8006188:	e7b1      	b.n	80060ee <VL53L0X_StaticInit+0x6a>
+		Status = VL53L0X_load_tuning_settings(Dev, pTuningSettingBuffer);
+ 800618a:	4628      	mov	r0, r5
+ 800618c:	f001 fba8 	bl	80078e0 <VL53L0X_load_tuning_settings>
+ 8006190:	4604      	mov	r4, r0
+ 8006192:	e7ae      	b.n	80060f2 <VL53L0X_StaticInit+0x6e>
+		Status = VL53L0X_SetGpioConfig(Dev, 0, 0,
+ 8006194:	2100      	movs	r1, #0
+ 8006196:	9100      	str	r1, [sp, #0]
+ 8006198:	2304      	movs	r3, #4
+ 800619a:	460a      	mov	r2, r1
+ 800619c:	4628      	mov	r0, r5
+ 800619e:	f7ff fece 	bl	8005f3e <VL53L0X_SetGpioConfig>
+ 80061a2:	4604      	mov	r4, r0
+ 80061a4:	e7a7      	b.n	80060f6 <VL53L0X_StaticInit+0x72>
+		Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
+ 80061a6:	2201      	movs	r2, #1
+ 80061a8:	21ff      	movs	r1, #255	; 0xff
+ 80061aa:	4628      	mov	r0, r5
+ 80061ac:	f001 ff56 	bl	800805c <VL53L0X_WrByte>
+ 80061b0:	4604      	mov	r4, r0
+		Status |= VL53L0X_RdWord(Dev, 0x84, &tempword);
+ 80061b2:	f10d 0216 	add.w	r2, sp, #22
+ 80061b6:	2184      	movs	r1, #132	; 0x84
+ 80061b8:	4628      	mov	r0, r5
+ 80061ba:	f001 ffa5 	bl	8008108 <VL53L0X_RdWord>
+ 80061be:	4304      	orrs	r4, r0
+ 80061c0:	b264      	sxtb	r4, r4
+		Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
+ 80061c2:	2200      	movs	r2, #0
+ 80061c4:	21ff      	movs	r1, #255	; 0xff
+ 80061c6:	4628      	mov	r0, r5
+ 80061c8:	f001 ff48 	bl	800805c <VL53L0X_WrByte>
+ 80061cc:	4304      	orrs	r4, r0
+ 80061ce:	b264      	sxtb	r4, r4
+ 80061d0:	e793      	b.n	80060fa <VL53L0X_StaticInit+0x76>
+		Status = VL53L0X_GetDeviceParameters(Dev, &CurrentParameters);
+ 80061d2:	a906      	add	r1, sp, #24
+ 80061d4:	4628      	mov	r0, r5
+ 80061d6:	f7ff fb7d 	bl	80058d4 <VL53L0X_GetDeviceParameters>
+ 80061da:	4604      	mov	r4, r0
+ 80061dc:	e795      	b.n	800610a <VL53L0X_StaticInit+0x86>
+		Status = VL53L0X_GetFractionEnable(Dev, &tempbyte);
+ 80061de:	f10d 0115 	add.w	r1, sp, #21
+ 80061e2:	4628      	mov	r0, r5
+ 80061e4:	f7ff f96a 	bl	80054bc <VL53L0X_GetFractionEnable>
+		if (Status == VL53L0X_ERROR_NONE)
+ 80061e8:	4604      	mov	r4, r0
+ 80061ea:	2800      	cmp	r0, #0
+ 80061ec:	d18f      	bne.n	800610e <VL53L0X_StaticInit+0x8a>
+			PALDevDataSet(Dev, RangeFractionalEnable, tempbyte);
+ 80061ee:	f89d 3015 	ldrb.w	r3, [sp, #21]
+ 80061f2:	f885 3131 	strb.w	r3, [r5, #305]	; 0x131
+ 80061f6:	e78a      	b.n	800610e <VL53L0X_StaticInit+0x8a>
+		Status = VL53L0X_RdByte(Dev,
+ 80061f8:	f10d 0215 	add.w	r2, sp, #21
+ 80061fc:	2101      	movs	r1, #1
+ 80061fe:	4628      	mov	r0, r5
+ 8006200:	f001 ff4e 	bl	80080a0 <VL53L0X_RdByte>
+		if (Status == VL53L0X_ERROR_NONE)
+ 8006204:	4604      	mov	r4, r0
+ 8006206:	2800      	cmp	r0, #0
+ 8006208:	d198      	bne.n	800613c <VL53L0X_StaticInit+0xb8>
+			PALDevDataSet(Dev, SequenceConfig, tempbyte);
+ 800620a:	f89d 3015 	ldrb.w	r3, [sp, #21]
+ 800620e:	f885 3130 	strb.w	r3, [r5, #304]	; 0x130
+ 8006212:	e793      	b.n	800613c <VL53L0X_StaticInit+0xb8>
+		Status = VL53L0X_SetSequenceStepEnable(Dev,
+ 8006214:	2200      	movs	r2, #0
+ 8006216:	4611      	mov	r1, r2
+ 8006218:	4628      	mov	r0, r5
+ 800621a:	f7ff f96b 	bl	80054f4 <VL53L0X_SetSequenceStepEnable>
+ 800621e:	4604      	mov	r4, r0
+ 8006220:	e78e      	b.n	8006140 <VL53L0X_StaticInit+0xbc>
+		Status = VL53L0X_SetSequenceStepEnable(Dev,
+ 8006222:	2200      	movs	r2, #0
+ 8006224:	2102      	movs	r1, #2
+ 8006226:	4628      	mov	r0, r5
+ 8006228:	f7ff f964 	bl	80054f4 <VL53L0X_SetSequenceStepEnable>
+ 800622c:	4604      	mov	r4, r0
+ 800622e:	e789      	b.n	8006144 <VL53L0X_StaticInit+0xc0>
+		Status = VL53L0X_GetVcselPulsePeriod(
+ 8006230:	f10d 020f 	add.w	r2, sp, #15
+ 8006234:	2100      	movs	r1, #0
+ 8006236:	4628      	mov	r0, r5
+ 8006238:	f7ff f958 	bl	80054ec <VL53L0X_GetVcselPulsePeriod>
+ 800623c:	4604      	mov	r4, r0
+ 800623e:	e787      	b.n	8006150 <VL53L0X_StaticInit+0xcc>
+		Status = VL53L0X_GetVcselPulsePeriod(
+ 8006240:	f10d 020f 	add.w	r2, sp, #15
+ 8006244:	2101      	movs	r1, #1
+ 8006246:	4628      	mov	r0, r5
+ 8006248:	f7ff f950 	bl	80054ec <VL53L0X_GetVcselPulsePeriod>
+ 800624c:	4604      	mov	r4, r0
+ 800624e:	e786      	b.n	800615e <VL53L0X_StaticInit+0xda>
+		Status = get_sequence_step_timeout(
+ 8006250:	aa02      	add	r2, sp, #8
+ 8006252:	2103      	movs	r1, #3
+ 8006254:	4628      	mov	r0, r5
+ 8006256:	f000 ffa1 	bl	800719c <get_sequence_step_timeout>
+ 800625a:	4604      	mov	r4, r0
+ 800625c:	e786      	b.n	800616c <VL53L0X_StaticInit+0xe8>
+		Status = get_sequence_step_timeout(
+ 800625e:	aa02      	add	r2, sp, #8
+ 8006260:	2104      	movs	r1, #4
+ 8006262:	4628      	mov	r0, r5
+ 8006264:	f000 ff9a 	bl	800719c <get_sequence_step_timeout>
+ 8006268:	4604      	mov	r4, r0
+ 800626a:	e785      	b.n	8006178 <VL53L0X_StaticInit+0xf4>
+ 800626c:	2000056c 	.word	0x2000056c
+
+08006270 <VL53L0X_GetInterruptMaskStatus>:
+
+VL53L0X_Error VL53L0X_GetInterruptMaskStatus(VL53L0X_DEV Dev,
+	uint32_t *pInterruptMaskStatus)
+{
+ 8006270:	b510      	push	{r4, lr}
+ 8006272:	b082      	sub	sp, #8
+ 8006274:	460c      	mov	r4, r1
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t Byte;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_RdByte(Dev, VL53L0X_REG_RESULT_INTERRUPT_STATUS, &Byte);
+ 8006276:	f10d 0207 	add.w	r2, sp, #7
+ 800627a:	2113      	movs	r1, #19
+ 800627c:	f001 ff10 	bl	80080a0 <VL53L0X_RdByte>
+	*pInterruptMaskStatus = Byte & 0x07;
+ 8006280:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8006284:	f003 0207 	and.w	r2, r3, #7
+ 8006288:	6022      	str	r2, [r4, #0]
+
+	if (Byte & 0x18)
+ 800628a:	f013 0f18 	tst.w	r3, #24
+ 800628e:	d101      	bne.n	8006294 <VL53L0X_GetInterruptMaskStatus+0x24>
+		Status = VL53L0X_ERROR_RANGE_ERROR;
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+ 8006290:	b002      	add	sp, #8
+ 8006292:	bd10      	pop	{r4, pc}
+		Status = VL53L0X_ERROR_RANGE_ERROR;
+ 8006294:	f06f 0005 	mvn.w	r0, #5
+ 8006298:	e7fa      	b.n	8006290 <VL53L0X_GetInterruptMaskStatus+0x20>
+
+0800629a <VL53L0X_GetMeasurementDataReady>:
+{
+ 800629a:	b510      	push	{r4, lr}
+ 800629c:	b082      	sub	sp, #8
+ 800629e:	460c      	mov	r4, r1
+	InterruptConfig = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
+ 80062a0:	f890 30da 	ldrb.w	r3, [r0, #218]	; 0xda
+	if (InterruptConfig ==
+ 80062a4:	2b04      	cmp	r3, #4
+ 80062a6:	d00d      	beq.n	80062c4 <VL53L0X_GetMeasurementDataReady+0x2a>
+		Status = VL53L0X_RdByte(Dev, VL53L0X_REG_RESULT_RANGE_STATUS,
+ 80062a8:	f10d 0207 	add.w	r2, sp, #7
+ 80062ac:	2114      	movs	r1, #20
+ 80062ae:	f001 fef7 	bl	80080a0 <VL53L0X_RdByte>
+		if (Status == VL53L0X_ERROR_NONE) {
+ 80062b2:	b978      	cbnz	r0, 80062d4 <VL53L0X_GetMeasurementDataReady+0x3a>
+			if (SysRangeStatusRegister & 0x01)
+ 80062b4:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 80062b8:	f013 0f01 	tst.w	r3, #1
+ 80062bc:	d00f      	beq.n	80062de <VL53L0X_GetMeasurementDataReady+0x44>
+				*pMeasurementDataReady = 1;
+ 80062be:	2301      	movs	r3, #1
+ 80062c0:	7023      	strb	r3, [r4, #0]
+ 80062c2:	e007      	b.n	80062d4 <VL53L0X_GetMeasurementDataReady+0x3a>
+		Status = VL53L0X_GetInterruptMaskStatus(Dev, &InterruptMask);
+ 80062c4:	4669      	mov	r1, sp
+ 80062c6:	f7ff ffd3 	bl	8006270 <VL53L0X_GetInterruptMaskStatus>
+		if (InterruptMask ==
+ 80062ca:	9b00      	ldr	r3, [sp, #0]
+ 80062cc:	2b04      	cmp	r3, #4
+ 80062ce:	d003      	beq.n	80062d8 <VL53L0X_GetMeasurementDataReady+0x3e>
+			*pMeasurementDataReady = 0;
+ 80062d0:	2300      	movs	r3, #0
+ 80062d2:	7023      	strb	r3, [r4, #0]
+}
+ 80062d4:	b002      	add	sp, #8
+ 80062d6:	bd10      	pop	{r4, pc}
+			*pMeasurementDataReady = 1;
+ 80062d8:	2301      	movs	r3, #1
+ 80062da:	7023      	strb	r3, [r4, #0]
+ 80062dc:	e7fa      	b.n	80062d4 <VL53L0X_GetMeasurementDataReady+0x3a>
+				*pMeasurementDataReady = 0;
+ 80062de:	2300      	movs	r3, #0
+ 80062e0:	7023      	strb	r3, [r4, #0]
+ 80062e2:	e7f7      	b.n	80062d4 <VL53L0X_GetMeasurementDataReady+0x3a>
+
+080062e4 <VL53L0X_PerformRefSpadManagement>:
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_PerformRefSpadManagement(VL53L0X_DEV Dev,
+	uint32_t *refSpadCount, uint8_t *isApertureSpads)
+{
+ 80062e4:	b508      	push	{r3, lr}
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_perform_ref_spad_management(Dev, refSpadCount,
+ 80062e6:	f000 fa83 	bl	80067f0 <VL53L0X_perform_ref_spad_management>
+		isApertureSpads);
+
+	LOG_FUNCTION_END(Status);
+
+	return Status;
+}
+ 80062ea:	bd08      	pop	{r3, pc}
+
+080062ec <VL53L0X_get_offset_calibration_data_micro_meter>:
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_get_offset_calibration_data_micro_meter(VL53L0X_DEV Dev,
+		int32_t *pOffsetCalibrationDataMicroMeter)
+{
+ 80062ec:	b510      	push	{r4, lr}
+ 80062ee:	b082      	sub	sp, #8
+ 80062f0:	460c      	mov	r4, r1
+	int16_t cMaxOffset = 2047;
+	int16_t cOffsetRange = 4096;
+
+	/* Note that offset has 10.2 format */
+
+	Status = VL53L0X_RdWord(Dev,
+ 80062f2:	f10d 0206 	add.w	r2, sp, #6
+ 80062f6:	2128      	movs	r1, #40	; 0x28
+ 80062f8:	f001 ff06 	bl	8008108 <VL53L0X_RdWord>
+				VL53L0X_REG_ALGO_PART_TO_PART_RANGE_OFFSET_MM,
+				&RangeOffsetRegister);
+
+	if (Status == VL53L0X_ERROR_NONE) {
+ 80062fc:	b970      	cbnz	r0, 800631c <VL53L0X_get_offset_calibration_data_micro_meter+0x30>
+		RangeOffsetRegister = (RangeOffsetRegister & 0x0fff);
+ 80062fe:	f8bd 3006 	ldrh.w	r3, [sp, #6]
+ 8006302:	f3c3 030b 	ubfx	r3, r3, #0, #12
+ 8006306:	f8ad 3006 	strh.w	r3, [sp, #6]
+
+		/* Apply 12 bit 2's compliment conversion */
+		if (RangeOffsetRegister > cMaxOffset)
+ 800630a:	f5b3 6f00 	cmp.w	r3, #2048	; 0x800
+ 800630e:	d307      	bcc.n	8006320 <VL53L0X_get_offset_calibration_data_micro_meter+0x34>
+			*pOffsetCalibrationDataMicroMeter =
+				(int16_t)(RangeOffsetRegister - cOffsetRange)
+ 8006310:	f5a3 5380 	sub.w	r3, r3, #4096	; 0x1000
+					* 250;
+ 8006314:	22fa      	movs	r2, #250	; 0xfa
+ 8006316:	fb02 f303 	mul.w	r3, r2, r3
+			*pOffsetCalibrationDataMicroMeter =
+ 800631a:	6023      	str	r3, [r4, #0]
+				(int16_t)RangeOffsetRegister * 250;
+
+	}
+
+	return Status;
+}
+ 800631c:	b002      	add	sp, #8
+ 800631e:	bd10      	pop	{r4, pc}
+				(int16_t)RangeOffsetRegister * 250;
+ 8006320:	22fa      	movs	r2, #250	; 0xfa
+ 8006322:	fb02 f303 	mul.w	r3, r2, r3
+			*pOffsetCalibrationDataMicroMeter =
+ 8006326:	6023      	str	r3, [r4, #0]
+ 8006328:	e7f8      	b.n	800631c <VL53L0X_get_offset_calibration_data_micro_meter+0x30>
+
+0800632a <get_next_good_spad>:
+	return Status;
+}
+
+void get_next_good_spad(uint8_t goodSpadArray[], uint32_t size,
+			uint32_t curr, int32_t *next)
+{
+ 800632a:	b570      	push	{r4, r5, r6, lr}
+ 800632c:	4604      	mov	r4, r0
+ 800632e:	4608      	mov	r0, r1
+ 8006330:	461e      	mov	r6, r3
+	 *
+	 * The coarse index is the byte index of the array and the fine index is
+	 * the index of the bit within each byte.
+	 */
+
+	*next = -1;
+ 8006332:	f04f 33ff 	mov.w	r3, #4294967295
+ 8006336:	6033      	str	r3, [r6, #0]
+
+	startIndex = curr / cSpadsPerByte;
+ 8006338:	08d3      	lsrs	r3, r2, #3
+	fineOffset = curr % cSpadsPerByte;
+ 800633a:	f002 0507 	and.w	r5, r2, #7
+
+	for (coarseIndex = startIndex; ((coarseIndex < size) && !success);
+ 800633e:	469e      	mov	lr, r3
+	uint8_t success = 0;
+ 8006340:	2100      	movs	r1, #0
+	for (coarseIndex = startIndex; ((coarseIndex < size) && !success);
+ 8006342:	e00b      	b.n	800635c <get_next_good_spad+0x32>
+		dataByte = goodSpadArray[coarseIndex];
+
+		if (coarseIndex == startIndex) {
+			/* locate the bit position of the provided current
+			 * spad bit before iterating */
+			dataByte >>= fineOffset;
+ 8006344:	fa4c fc05 	asr.w	ip, ip, r5
+ 8006348:	fa5f fc8c 	uxtb.w	ip, ip
+			fineIndex = fineOffset;
+ 800634c:	462a      	mov	r2, r5
+ 800634e:	e00d      	b.n	800636c <get_next_good_spad+0x42>
+		}
+
+		while (fineIndex < cSpadsPerByte) {
+			if ((dataByte & 0x1) == 1) {
+				success = 1;
+				*next = coarseIndex * cSpadsPerByte + fineIndex;
+ 8006350:	eb02 02ce 	add.w	r2, r2, lr, lsl #3
+ 8006354:	6032      	str	r2, [r6, #0]
+				success = 1;
+ 8006356:	2101      	movs	r1, #1
+				coarseIndex++) {
+ 8006358:	f10e 0e01 	add.w	lr, lr, #1
+	for (coarseIndex = startIndex; ((coarseIndex < size) && !success);
+ 800635c:	4586      	cmp	lr, r0
+ 800635e:	d20e      	bcs.n	800637e <get_next_good_spad+0x54>
+ 8006360:	b969      	cbnz	r1, 800637e <get_next_good_spad+0x54>
+		dataByte = goodSpadArray[coarseIndex];
+ 8006362:	f814 c00e 	ldrb.w	ip, [r4, lr]
+		if (coarseIndex == startIndex) {
+ 8006366:	459e      	cmp	lr, r3
+ 8006368:	d0ec      	beq.n	8006344 <get_next_good_spad+0x1a>
+		fineIndex = 0;
+ 800636a:	2200      	movs	r2, #0
+		while (fineIndex < cSpadsPerByte) {
+ 800636c:	2a07      	cmp	r2, #7
+ 800636e:	d8f3      	bhi.n	8006358 <get_next_good_spad+0x2e>
+			if ((dataByte & 0x1) == 1) {
+ 8006370:	f01c 0f01 	tst.w	ip, #1
+ 8006374:	d1ec      	bne.n	8006350 <get_next_good_spad+0x26>
+				break;
+			}
+			dataByte >>= 1;
+ 8006376:	ea4f 0c5c 	mov.w	ip, ip, lsr #1
+			fineIndex++;
+ 800637a:	3201      	adds	r2, #1
+ 800637c:	e7f6      	b.n	800636c <get_next_good_spad+0x42>
+		}
+	}
+}
+ 800637e:	bd70      	pop	{r4, r5, r6, pc}
+
+08006380 <is_aperture>:
+	 * This function reports if a given spad index is an aperture SPAD by
+	 * deriving the quadrant.
+	 */
+	uint32_t quadrant;
+	uint8_t isAperture = 1;
+	quadrant = spadIndex >> 6;
+ 8006380:	0980      	lsrs	r0, r0, #6
+	if (refArrayQuadrants[quadrant] == REF_ARRAY_SPAD_0)
+ 8006382:	4b04      	ldr	r3, [pc, #16]	; (8006394 <is_aperture+0x14>)
+ 8006384:	f853 3020 	ldr.w	r3, [r3, r0, lsl #2]
+ 8006388:	b10b      	cbz	r3, 800638e <is_aperture+0xe>
+	uint8_t isAperture = 1;
+ 800638a:	2001      	movs	r0, #1
+ 800638c:	4770      	bx	lr
+		isAperture = 0;
+ 800638e:	2000      	movs	r0, #0
+
+	return isAperture;
+}
+ 8006390:	4770      	bx	lr
+ 8006392:	bf00      	nop
+ 8006394:	20000818 	.word	0x20000818
+
+08006398 <enable_spad_bit>:
+	VL53L0X_Error status = VL53L0X_ERROR_NONE;
+	uint32_t cSpadsPerByte = 8;
+	uint32_t coarseIndex;
+	uint32_t fineIndex;
+
+	coarseIndex = spadIndex / cSpadsPerByte;
+ 8006398:	ea4f 0cd2 	mov.w	ip, r2, lsr #3
+	fineIndex = spadIndex % cSpadsPerByte;
+ 800639c:	f002 0307 	and.w	r3, r2, #7
+	if (coarseIndex >= size)
+ 80063a0:	ebb1 0fd2 	cmp.w	r1, r2, lsr #3
+ 80063a4:	d908      	bls.n	80063b8 <enable_spad_bit+0x20>
+		status = VL53L0X_ERROR_REF_SPAD_INIT;
+	else
+		spadArray[coarseIndex] |= (1 << fineIndex);
+ 80063a6:	2201      	movs	r2, #1
+ 80063a8:	409a      	lsls	r2, r3
+ 80063aa:	f810 300c 	ldrb.w	r3, [r0, ip]
+ 80063ae:	4313      	orrs	r3, r2
+ 80063b0:	f800 300c 	strb.w	r3, [r0, ip]
+	VL53L0X_Error status = VL53L0X_ERROR_NONE;
+ 80063b4:	2000      	movs	r0, #0
+ 80063b6:	4770      	bx	lr
+		status = VL53L0X_ERROR_REF_SPAD_INIT;
+ 80063b8:	f06f 0031 	mvn.w	r0, #49	; 0x31
+
+	return status;
+}
+ 80063bc:	4770      	bx	lr
+
+080063be <set_ref_spad_map>:
+
+	return status;
+}
+
+VL53L0X_Error set_ref_spad_map(VL53L0X_DEV Dev, uint8_t *refSpadArray)
+{
+ 80063be:	b508      	push	{r3, lr}
+ 80063c0:	460a      	mov	r2, r1
+	VL53L0X_Error status = VL53L0X_WriteMulti(Dev,
+ 80063c2:	2306      	movs	r3, #6
+ 80063c4:	21b0      	movs	r1, #176	; 0xb0
+ 80063c6:	f001 fe0f 	bl	8007fe8 <VL53L0X_WriteMulti>
+				VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_0,
+				refSpadArray, 6);
+	return status;
+}
+ 80063ca:	bd08      	pop	{r3, pc}
+
+080063cc <get_ref_spad_map>:
+
+VL53L0X_Error get_ref_spad_map(VL53L0X_DEV Dev, uint8_t *refSpadArray)
+{
+ 80063cc:	b508      	push	{r3, lr}
+ 80063ce:	460a      	mov	r2, r1
+	VL53L0X_Error status = VL53L0X_ReadMulti(Dev,
+ 80063d0:	2306      	movs	r3, #6
+ 80063d2:	21b0      	movs	r1, #176	; 0xb0
+ 80063d4:	f001 fe26 	bl	8008024 <VL53L0X_ReadMulti>
+				VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_0,
+				refSpadArray,
+				6);
+	return status;
+}
+ 80063d8:	bd08      	pop	{r3, pc}
+
+080063da <enable_ref_spads>:
+				uint32_t size,
+				uint32_t start,
+				uint32_t offset,
+				uint32_t spadCount,
+				uint32_t *lastSpad)
+{
+ 80063da:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 80063de:	b087      	sub	sp, #28
+ 80063e0:	9001      	str	r0, [sp, #4]
+ 80063e2:	4689      	mov	r9, r1
+ 80063e4:	9200      	str	r2, [sp, #0]
+ 80063e6:	4698      	mov	r8, r3
+ 80063e8:	9e10      	ldr	r6, [sp, #64]	; 0x40
+ 80063ea:	f8dd b044 	ldr.w	fp, [sp, #68]	; 0x44
+ 80063ee:	9f12      	ldr	r7, [sp, #72]	; 0x48
+ 80063f0:	f8dd a04c 	ldr.w	sl, [sp, #76]	; 0x4c
+	VL53L0X_Error status = VL53L0X_ERROR_NONE;
+	uint32_t index;
+	uint32_t i;
+	int32_t nextGoodSpad = offset;
+ 80063f4:	9705      	str	r7, [sp, #20]
+	 * This function applies to only aperture or only non-aperture spads.
+	 * Checks are performed to ensure this.
+	 */
+
+	currentSpad = offset;
+	for (index = 0; index < spadCount; index++) {
+ 80063f6:	2500      	movs	r5, #0
+ 80063f8:	e006      	b.n	8006408 <enable_ref_spads+0x2e>
+			 */
+			status = VL53L0X_ERROR_REF_SPAD_INIT;
+			break;
+		}
+		currentSpad = (uint32_t)nextGoodSpad;
+		enable_spad_bit(spadArray, size, currentSpad);
+ 80063fa:	4622      	mov	r2, r4
+ 80063fc:	4631      	mov	r1, r6
+ 80063fe:	4640      	mov	r0, r8
+ 8006400:	f7ff ffca 	bl	8006398 <enable_spad_bit>
+		currentSpad++;
+ 8006404:	1c67      	adds	r7, r4, #1
+	for (index = 0; index < spadCount; index++) {
+ 8006406:	3501      	adds	r5, #1
+ 8006408:	4555      	cmp	r5, sl
+ 800640a:	d212      	bcs.n	8006432 <enable_ref_spads+0x58>
+		get_next_good_spad(goodSpadArray, size, currentSpad,
+ 800640c:	ab05      	add	r3, sp, #20
+ 800640e:	463a      	mov	r2, r7
+ 8006410:	4631      	mov	r1, r6
+ 8006412:	9800      	ldr	r0, [sp, #0]
+ 8006414:	f7ff ff89 	bl	800632a <get_next_good_spad>
+		if (nextGoodSpad == -1) {
+ 8006418:	9c05      	ldr	r4, [sp, #20]
+ 800641a:	f1b4 3fff 	cmp.w	r4, #4294967295
+ 800641e:	d010      	beq.n	8006442 <enable_ref_spads+0x68>
+		if (is_aperture(start + nextGoodSpad) != apertureSpads) {
+ 8006420:	eb04 000b 	add.w	r0, r4, fp
+ 8006424:	f7ff ffac 	bl	8006380 <is_aperture>
+ 8006428:	4548      	cmp	r0, r9
+ 800642a:	d0e6      	beq.n	80063fa <enable_ref_spads+0x20>
+			status = VL53L0X_ERROR_REF_SPAD_INIT;
+ 800642c:	f06f 0031 	mvn.w	r0, #49	; 0x31
+ 8006430:	e000      	b.n	8006434 <enable_ref_spads+0x5a>
+	VL53L0X_Error status = VL53L0X_ERROR_NONE;
+ 8006432:	2000      	movs	r0, #0
+	}
+	*lastSpad = currentSpad;
+ 8006434:	9b14      	ldr	r3, [sp, #80]	; 0x50
+ 8006436:	601f      	str	r7, [r3, #0]
+
+	if (status == VL53L0X_ERROR_NONE)
+ 8006438:	b130      	cbz	r0, 8006448 <enable_ref_spads+0x6e>
+		status = set_ref_spad_map(Dev, spadArray);
+
+
+	if (status == VL53L0X_ERROR_NONE) {
+ 800643a:	b150      	cbz	r0, 8006452 <enable_ref_spads+0x78>
+			}
+			i++;
+		}
+	}
+	return status;
+}
+ 800643c:	b007      	add	sp, #28
+ 800643e:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+			status = VL53L0X_ERROR_REF_SPAD_INIT;
+ 8006442:	f06f 0031 	mvn.w	r0, #49	; 0x31
+ 8006446:	e7f5      	b.n	8006434 <enable_ref_spads+0x5a>
+		status = set_ref_spad_map(Dev, spadArray);
+ 8006448:	4641      	mov	r1, r8
+ 800644a:	9801      	ldr	r0, [sp, #4]
+ 800644c:	f7ff ffb7 	bl	80063be <set_ref_spad_map>
+ 8006450:	e7f3      	b.n	800643a <enable_ref_spads+0x60>
+		status = get_ref_spad_map(Dev, checkSpadArray);
+ 8006452:	a903      	add	r1, sp, #12
+ 8006454:	9801      	ldr	r0, [sp, #4]
+ 8006456:	f7ff ffb9 	bl	80063cc <get_ref_spad_map>
+		i = 0;
+ 800645a:	2300      	movs	r3, #0
+		while (i < size) {
+ 800645c:	42b3      	cmp	r3, r6
+ 800645e:	d2ed      	bcs.n	800643c <enable_ref_spads+0x62>
+			if (spadArray[i] != checkSpadArray[i]) {
+ 8006460:	f818 1003 	ldrb.w	r1, [r8, r3]
+ 8006464:	f103 0218 	add.w	r2, r3, #24
+ 8006468:	446a      	add	r2, sp
+ 800646a:	f812 2c0c 	ldrb.w	r2, [r2, #-12]
+ 800646e:	4291      	cmp	r1, r2
+ 8006470:	d101      	bne.n	8006476 <enable_ref_spads+0x9c>
+			i++;
+ 8006472:	3301      	adds	r3, #1
+ 8006474:	e7f2      	b.n	800645c <enable_ref_spads+0x82>
+				status = VL53L0X_ERROR_REF_SPAD_INIT;
+ 8006476:	f06f 0031 	mvn.w	r0, #49	; 0x31
+ 800647a:	e7df      	b.n	800643c <enable_ref_spads+0x62>
+
+0800647c <perform_ref_signal_measurement>:
+
+
+VL53L0X_Error perform_ref_signal_measurement(VL53L0X_DEV Dev,
+		uint16_t *refSignalRate)
+{
+ 800647c:	b570      	push	{r4, r5, r6, lr}
+ 800647e:	b088      	sub	sp, #32
+ 8006480:	4604      	mov	r4, r0
+ 8006482:	460d      	mov	r5, r1
+
+	/* store the value of the sequence config,
+	 * this will be reset before the end of the function
+	 */
+
+	SequenceConfig = PALDevDataGet(Dev, SequenceConfig);
+ 8006484:	f890 6130 	ldrb.w	r6, [r0, #304]	; 0x130
+
+	/*
+	 * This function performs a reference signal rate measurement.
+	 */
+	if (status == VL53L0X_ERROR_NONE)
+		status = VL53L0X_WrByte(Dev,
+ 8006488:	22c0      	movs	r2, #192	; 0xc0
+ 800648a:	2101      	movs	r1, #1
+ 800648c:	f001 fde6 	bl	800805c <VL53L0X_WrByte>
+			VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG, 0xC0);
+
+	if (status == VL53L0X_ERROR_NONE)
+ 8006490:	4603      	mov	r3, r0
+ 8006492:	b130      	cbz	r0, 80064a2 <perform_ref_signal_measurement+0x26>
+		status = VL53L0X_PerformSingleRangingMeasurement(Dev,
+				&rangingMeasurementData);
+
+	if (status == VL53L0X_ERROR_NONE)
+ 8006494:	b15b      	cbz	r3, 80064ae <perform_ref_signal_measurement+0x32>
+		status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
+
+	if (status == VL53L0X_ERROR_NONE)
+ 8006496:	b18b      	cbz	r3, 80064bc <perform_ref_signal_measurement+0x40>
+		status = VL53L0X_RdWord(Dev,
+			VL53L0X_REG_RESULT_PEAK_SIGNAL_RATE_REF,
+			refSignalRate);
+
+	if (status == VL53L0X_ERROR_NONE)
+ 8006498:	b1bb      	cbz	r3, 80064ca <perform_ref_signal_measurement+0x4e>
+		status = VL53L0X_WrByte(Dev, 0xFF, 0x00);
+
+	if (status == VL53L0X_ERROR_NONE) {
+ 800649a:	b1eb      	cbz	r3, 80064d8 <perform_ref_signal_measurement+0x5c>
+		if (status == VL53L0X_ERROR_NONE)
+			PALDevDataSet(Dev, SequenceConfig, SequenceConfig);
+	}
+
+	return status;
+}
+ 800649c:	4618      	mov	r0, r3
+ 800649e:	b008      	add	sp, #32
+ 80064a0:	bd70      	pop	{r4, r5, r6, pc}
+		status = VL53L0X_PerformSingleRangingMeasurement(Dev,
+ 80064a2:	a901      	add	r1, sp, #4
+ 80064a4:	4620      	mov	r0, r4
+ 80064a6:	f7ff fd32 	bl	8005f0e <VL53L0X_PerformSingleRangingMeasurement>
+ 80064aa:	4603      	mov	r3, r0
+ 80064ac:	e7f2      	b.n	8006494 <perform_ref_signal_measurement+0x18>
+		status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
+ 80064ae:	2201      	movs	r2, #1
+ 80064b0:	21ff      	movs	r1, #255	; 0xff
+ 80064b2:	4620      	mov	r0, r4
+ 80064b4:	f001 fdd2 	bl	800805c <VL53L0X_WrByte>
+ 80064b8:	4603      	mov	r3, r0
+ 80064ba:	e7ec      	b.n	8006496 <perform_ref_signal_measurement+0x1a>
+		status = VL53L0X_RdWord(Dev,
+ 80064bc:	462a      	mov	r2, r5
+ 80064be:	21b6      	movs	r1, #182	; 0xb6
+ 80064c0:	4620      	mov	r0, r4
+ 80064c2:	f001 fe21 	bl	8008108 <VL53L0X_RdWord>
+ 80064c6:	4603      	mov	r3, r0
+ 80064c8:	e7e6      	b.n	8006498 <perform_ref_signal_measurement+0x1c>
+		status = VL53L0X_WrByte(Dev, 0xFF, 0x00);
+ 80064ca:	2200      	movs	r2, #0
+ 80064cc:	21ff      	movs	r1, #255	; 0xff
+ 80064ce:	4620      	mov	r0, r4
+ 80064d0:	f001 fdc4 	bl	800805c <VL53L0X_WrByte>
+ 80064d4:	4603      	mov	r3, r0
+ 80064d6:	e7e0      	b.n	800649a <perform_ref_signal_measurement+0x1e>
+		status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
+ 80064d8:	4632      	mov	r2, r6
+ 80064da:	2101      	movs	r1, #1
+ 80064dc:	4620      	mov	r0, r4
+ 80064de:	f001 fdbd 	bl	800805c <VL53L0X_WrByte>
+		if (status == VL53L0X_ERROR_NONE)
+ 80064e2:	4603      	mov	r3, r0
+ 80064e4:	2800      	cmp	r0, #0
+ 80064e6:	d1d9      	bne.n	800649c <perform_ref_signal_measurement+0x20>
+			PALDevDataSet(Dev, SequenceConfig, SequenceConfig);
+ 80064e8:	f884 6130 	strb.w	r6, [r4, #304]	; 0x130
+ 80064ec:	e7d6      	b.n	800649c <perform_ref_signal_measurement+0x20>
+
+080064ee <VL53L0X_set_reference_spads>:
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_set_reference_spads(VL53L0X_DEV Dev,
+				 uint32_t count, uint8_t isApertureSpads)
+{
+ 80064ee:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 80064f0:	b089      	sub	sp, #36	; 0x24
+ 80064f2:	4605      	mov	r5, r0
+ 80064f4:	460f      	mov	r7, r1
+ 80064f6:	4616      	mov	r6, r2
+	 * aperture or
+	 * non-aperture, as requested.
+	 * The good spad map will be applied.
+	 */
+
+	Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
+ 80064f8:	2201      	movs	r2, #1
+ 80064fa:	21ff      	movs	r1, #255	; 0xff
+ 80064fc:	f001 fdae 	bl	800805c <VL53L0X_WrByte>
+
+	if (Status == VL53L0X_ERROR_NONE)
+ 8006500:	4603      	mov	r3, r0
+ 8006502:	b120      	cbz	r0, 800650e <VL53L0X_set_reference_spads+0x20>
+		Status = VL53L0X_WrByte(Dev,
+			VL53L0X_REG_DYNAMIC_SPAD_REF_EN_START_OFFSET, 0x00);
+
+	if (Status == VL53L0X_ERROR_NONE)
+ 8006504:	b153      	cbz	r3, 800651c <VL53L0X_set_reference_spads+0x2e>
+		Status = VL53L0X_WrByte(Dev,
+			VL53L0X_REG_DYNAMIC_SPAD_NUM_REQUESTED_REF_SPAD, 0x2C);
+
+	if (Status == VL53L0X_ERROR_NONE)
+ 8006506:	b183      	cbz	r3, 800652a <VL53L0X_set_reference_spads+0x3c>
+		Status = VL53L0X_WrByte(Dev, 0xFF, 0x00);
+
+	if (Status == VL53L0X_ERROR_NONE)
+ 8006508:	b1b3      	cbz	r3, 8006538 <VL53L0X_set_reference_spads+0x4a>
+{
+ 800650a:	2300      	movs	r3, #0
+ 800650c:	e01f      	b.n	800654e <VL53L0X_set_reference_spads+0x60>
+		Status = VL53L0X_WrByte(Dev,
+ 800650e:	2200      	movs	r2, #0
+ 8006510:	214f      	movs	r1, #79	; 0x4f
+ 8006512:	4628      	mov	r0, r5
+ 8006514:	f001 fda2 	bl	800805c <VL53L0X_WrByte>
+ 8006518:	4603      	mov	r3, r0
+ 800651a:	e7f3      	b.n	8006504 <VL53L0X_set_reference_spads+0x16>
+		Status = VL53L0X_WrByte(Dev,
+ 800651c:	222c      	movs	r2, #44	; 0x2c
+ 800651e:	214e      	movs	r1, #78	; 0x4e
+ 8006520:	4628      	mov	r0, r5
+ 8006522:	f001 fd9b 	bl	800805c <VL53L0X_WrByte>
+ 8006526:	4603      	mov	r3, r0
+ 8006528:	e7ed      	b.n	8006506 <VL53L0X_set_reference_spads+0x18>
+		Status = VL53L0X_WrByte(Dev, 0xFF, 0x00);
+ 800652a:	2200      	movs	r2, #0
+ 800652c:	21ff      	movs	r1, #255	; 0xff
+ 800652e:	4628      	mov	r0, r5
+ 8006530:	f001 fd94 	bl	800805c <VL53L0X_WrByte>
+ 8006534:	4603      	mov	r3, r0
+ 8006536:	e7e7      	b.n	8006508 <VL53L0X_set_reference_spads+0x1a>
+		Status = VL53L0X_WrByte(Dev,
+ 8006538:	22b4      	movs	r2, #180	; 0xb4
+ 800653a:	21b6      	movs	r1, #182	; 0xb6
+ 800653c:	4628      	mov	r0, r5
+ 800653e:	f001 fd8d 	bl	800805c <VL53L0X_WrByte>
+ 8006542:	e7e2      	b.n	800650a <VL53L0X_set_reference_spads+0x1c>
+			VL53L0X_REG_GLOBAL_CONFIG_REF_EN_START_SELECT,
+			startSelect);
+
+	for (index = 0; index < spadArraySize; index++)
+		Dev->Data.SpadData.RefSpadEnables[index] = 0;
+ 8006544:	18e8      	adds	r0, r5, r3
+ 8006546:	2400      	movs	r4, #0
+ 8006548:	f880 4124 	strb.w	r4, [r0, #292]	; 0x124
+	for (index = 0; index < spadArraySize; index++)
+ 800654c:	3301      	adds	r3, #1
+ 800654e:	2b05      	cmp	r3, #5
+ 8006550:	d9f8      	bls.n	8006544 <VL53L0X_set_reference_spads+0x56>
+
+	if (isApertureSpads) {
+ 8006552:	b9d6      	cbnz	r6, 800658a <VL53L0X_set_reference_spads+0x9c>
+	uint32_t currentSpadIndex = 0;
+ 8006554:	2400      	movs	r4, #0
+		while ((is_aperture(startSelect + currentSpadIndex) == 0) &&
+			  (currentSpadIndex < maxSpadCount)) {
+			currentSpadIndex++;
+		}
+	}
+	Status = enable_ref_spads(Dev,
+ 8006556:	ab07      	add	r3, sp, #28
+ 8006558:	9304      	str	r3, [sp, #16]
+ 800655a:	9703      	str	r7, [sp, #12]
+ 800655c:	9402      	str	r4, [sp, #8]
+ 800655e:	23b4      	movs	r3, #180	; 0xb4
+ 8006560:	9301      	str	r3, [sp, #4]
+ 8006562:	2306      	movs	r3, #6
+ 8006564:	9300      	str	r3, [sp, #0]
+ 8006566:	f505 7392 	add.w	r3, r5, #292	; 0x124
+ 800656a:	f505 7295 	add.w	r2, r5, #298	; 0x12a
+ 800656e:	4631      	mov	r1, r6
+ 8006570:	4628      	mov	r0, r5
+ 8006572:	f7ff ff32 	bl	80063da <enable_ref_spads>
+				startSelect,
+				currentSpadIndex,
+				count,
+				&lastSpadIndex);
+
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8006576:	b930      	cbnz	r0, 8006586 <VL53L0X_set_reference_spads+0x98>
+		VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, RefSpadsInitialised, 1);
+ 8006578:	2301      	movs	r3, #1
+ 800657a:	f885 3115 	strb.w	r3, [r5, #277]	; 0x115
+		VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ 800657e:	f885 7113 	strb.w	r7, [r5, #275]	; 0x113
+			ReferenceSpadCount, (uint8_t)(count));
+		VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ 8006582:	f885 6114 	strb.w	r6, [r5, #276]	; 0x114
+			ReferenceSpadType, isApertureSpads);
+	}
+
+	return Status;
+}
+ 8006586:	b009      	add	sp, #36	; 0x24
+ 8006588:	bdf0      	pop	{r4, r5, r6, r7, pc}
+	uint32_t currentSpadIndex = 0;
+ 800658a:	2400      	movs	r4, #0
+		while ((is_aperture(startSelect + currentSpadIndex) == 0) &&
+ 800658c:	f104 00b4 	add.w	r0, r4, #180	; 0xb4
+ 8006590:	f7ff fef6 	bl	8006380 <is_aperture>
+ 8006594:	2800      	cmp	r0, #0
+ 8006596:	d1de      	bne.n	8006556 <VL53L0X_set_reference_spads+0x68>
+ 8006598:	2c2b      	cmp	r4, #43	; 0x2b
+ 800659a:	d8dc      	bhi.n	8006556 <VL53L0X_set_reference_spads+0x68>
+			currentSpadIndex++;
+ 800659c:	3401      	adds	r4, #1
+ 800659e:	e7f5      	b.n	800658c <VL53L0X_set_reference_spads+0x9e>
+
+080065a0 <VL53L0X_perform_single_ref_calibration>:
+}
+
+
+VL53L0X_Error VL53L0X_perform_single_ref_calibration(VL53L0X_DEV Dev,
+		uint8_t vhv_init_byte)
+{
+ 80065a0:	b510      	push	{r4, lr}
+ 80065a2:	4604      	mov	r4, r0
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSRANGE_START,
+ 80065a4:	f041 0201 	orr.w	r2, r1, #1
+ 80065a8:	2100      	movs	r1, #0
+ 80065aa:	f001 fd57 	bl	800805c <VL53L0X_WrByte>
+				VL53L0X_REG_SYSRANGE_MODE_START_STOP |
+				vhv_init_byte);
+
+	if (Status == VL53L0X_ERROR_NONE)
+ 80065ae:	b110      	cbz	r0, 80065b6 <VL53L0X_perform_single_ref_calibration+0x16>
+		Status = VL53L0X_measurement_poll_for_completion(Dev);
+
+	if (Status == VL53L0X_ERROR_NONE)
+ 80065b0:	b128      	cbz	r0, 80065be <VL53L0X_perform_single_ref_calibration+0x1e>
+		Status = VL53L0X_ClearInterruptMask(Dev, 0);
+
+	if (Status == VL53L0X_ERROR_NONE)
+ 80065b2:	b148      	cbz	r0, 80065c8 <VL53L0X_perform_single_ref_calibration+0x28>
+		Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSRANGE_START, 0x00);
+
+	return Status;
+}
+ 80065b4:	bd10      	pop	{r4, pc}
+		Status = VL53L0X_measurement_poll_for_completion(Dev);
+ 80065b6:	4620      	mov	r0, r4
+ 80065b8:	f000 fa81 	bl	8006abe <VL53L0X_measurement_poll_for_completion>
+ 80065bc:	e7f8      	b.n	80065b0 <VL53L0X_perform_single_ref_calibration+0x10>
+		Status = VL53L0X_ClearInterruptMask(Dev, 0);
+ 80065be:	2100      	movs	r1, #0
+ 80065c0:	4620      	mov	r0, r4
+ 80065c2:	f7ff fc79 	bl	8005eb8 <VL53L0X_ClearInterruptMask>
+ 80065c6:	e7f4      	b.n	80065b2 <VL53L0X_perform_single_ref_calibration+0x12>
+		Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSRANGE_START, 0x00);
+ 80065c8:	2200      	movs	r2, #0
+ 80065ca:	4611      	mov	r1, r2
+ 80065cc:	4620      	mov	r0, r4
+ 80065ce:	f001 fd45 	bl	800805c <VL53L0X_WrByte>
+ 80065d2:	e7ef      	b.n	80065b4 <VL53L0X_perform_single_ref_calibration+0x14>
+
+080065d4 <VL53L0X_ref_calibration_io>:
+
+VL53L0X_Error VL53L0X_ref_calibration_io(VL53L0X_DEV Dev, uint8_t read_not_write,
+	uint8_t VhvSettings, uint8_t PhaseCal,
+	uint8_t *pVhvSettings, uint8_t *pPhaseCal,
+	const uint8_t vhv_enable, const uint8_t phase_enable)
+{
+ 80065d4:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 80065d8:	b083      	sub	sp, #12
+ 80065da:	4605      	mov	r5, r0
+ 80065dc:	460e      	mov	r6, r1
+ 80065de:	4690      	mov	r8, r2
+ 80065e0:	461f      	mov	r7, r3
+ 80065e2:	f89d a038 	ldrb.w	sl, [sp, #56]	; 0x38
+ 80065e6:	f89d 903c 	ldrb.w	r9, [sp, #60]	; 0x3c
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t PhaseCalint = 0;
+ 80065ea:	f04f 0b00 	mov.w	fp, #0
+ 80065ee:	f88d b007 	strb.w	fp, [sp, #7]
+
+	/* Read VHV from device */
+	Status |= VL53L0X_WrByte(Dev, 0xFF, 0x01);
+ 80065f2:	2201      	movs	r2, #1
+ 80065f4:	21ff      	movs	r1, #255	; 0xff
+ 80065f6:	f001 fd31 	bl	800805c <VL53L0X_WrByte>
+ 80065fa:	4604      	mov	r4, r0
+	Status |= VL53L0X_WrByte(Dev, 0x00, 0x00);
+ 80065fc:	465a      	mov	r2, fp
+ 80065fe:	4659      	mov	r1, fp
+ 8006600:	4628      	mov	r0, r5
+ 8006602:	f001 fd2b 	bl	800805c <VL53L0X_WrByte>
+ 8006606:	4304      	orrs	r4, r0
+ 8006608:	b264      	sxtb	r4, r4
+	Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
+ 800660a:	465a      	mov	r2, fp
+ 800660c:	21ff      	movs	r1, #255	; 0xff
+ 800660e:	4628      	mov	r0, r5
+ 8006610:	f001 fd24 	bl	800805c <VL53L0X_WrByte>
+ 8006614:	4304      	orrs	r4, r0
+ 8006616:	b264      	sxtb	r4, r4
+
+	if (read_not_write) {
+ 8006618:	b3a6      	cbz	r6, 8006684 <VL53L0X_ref_calibration_io+0xb0>
+		if (vhv_enable)
+ 800661a:	f1ba 0f00 	cmp.w	sl, #0
+ 800661e:	d120      	bne.n	8006662 <VL53L0X_ref_calibration_io+0x8e>
+			Status |= VL53L0X_RdByte(Dev, 0xCB, pVhvSettings);
+		if (phase_enable)
+ 8006620:	f1b9 0f00 	cmp.w	r9, #0
+ 8006624:	d125      	bne.n	8006672 <VL53L0X_ref_calibration_io+0x9e>
+			Status |= VL53L0X_WrByte(Dev, 0xCB, VhvSettings);
+		if (phase_enable)
+			Status |= VL53L0X_UpdateByte(Dev, 0xEE, 0x80, PhaseCal);
+	}
+
+	Status |= VL53L0X_WrByte(Dev, 0xFF, 0x01);
+ 8006626:	2201      	movs	r2, #1
+ 8006628:	21ff      	movs	r1, #255	; 0xff
+ 800662a:	4628      	mov	r0, r5
+ 800662c:	f001 fd16 	bl	800805c <VL53L0X_WrByte>
+ 8006630:	4304      	orrs	r4, r0
+ 8006632:	b264      	sxtb	r4, r4
+	Status |= VL53L0X_WrByte(Dev, 0x00, 0x01);
+ 8006634:	2201      	movs	r2, #1
+ 8006636:	2100      	movs	r1, #0
+ 8006638:	4628      	mov	r0, r5
+ 800663a:	f001 fd0f 	bl	800805c <VL53L0X_WrByte>
+ 800663e:	4304      	orrs	r4, r0
+ 8006640:	b264      	sxtb	r4, r4
+	Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
+ 8006642:	2200      	movs	r2, #0
+ 8006644:	21ff      	movs	r1, #255	; 0xff
+ 8006646:	4628      	mov	r0, r5
+ 8006648:	f001 fd08 	bl	800805c <VL53L0X_WrByte>
+ 800664c:	4320      	orrs	r0, r4
+
+	*pPhaseCal = (uint8_t)(PhaseCalint&0xEF);
+ 800664e:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8006652:	f003 03ef 	and.w	r3, r3, #239	; 0xef
+ 8006656:	9a0d      	ldr	r2, [sp, #52]	; 0x34
+ 8006658:	7013      	strb	r3, [r2, #0]
+
+	return Status;
+}
+ 800665a:	b240      	sxtb	r0, r0
+ 800665c:	b003      	add	sp, #12
+ 800665e:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+			Status |= VL53L0X_RdByte(Dev, 0xCB, pVhvSettings);
+ 8006662:	9a0c      	ldr	r2, [sp, #48]	; 0x30
+ 8006664:	21cb      	movs	r1, #203	; 0xcb
+ 8006666:	4628      	mov	r0, r5
+ 8006668:	f001 fd1a 	bl	80080a0 <VL53L0X_RdByte>
+ 800666c:	4320      	orrs	r0, r4
+ 800666e:	b244      	sxtb	r4, r0
+ 8006670:	e7d6      	b.n	8006620 <VL53L0X_ref_calibration_io+0x4c>
+			Status |= VL53L0X_RdByte(Dev, 0xEE, &PhaseCalint);
+ 8006672:	f10d 0207 	add.w	r2, sp, #7
+ 8006676:	21ee      	movs	r1, #238	; 0xee
+ 8006678:	4628      	mov	r0, r5
+ 800667a:	f001 fd11 	bl	80080a0 <VL53L0X_RdByte>
+ 800667e:	4320      	orrs	r0, r4
+ 8006680:	b244      	sxtb	r4, r0
+ 8006682:	e7d0      	b.n	8006626 <VL53L0X_ref_calibration_io+0x52>
+		if (vhv_enable)
+ 8006684:	f1ba 0f00 	cmp.w	sl, #0
+ 8006688:	d10b      	bne.n	80066a2 <VL53L0X_ref_calibration_io+0xce>
+		if (phase_enable)
+ 800668a:	f1b9 0f00 	cmp.w	r9, #0
+ 800668e:	d0ca      	beq.n	8006626 <VL53L0X_ref_calibration_io+0x52>
+			Status |= VL53L0X_UpdateByte(Dev, 0xEE, 0x80, PhaseCal);
+ 8006690:	463b      	mov	r3, r7
+ 8006692:	2280      	movs	r2, #128	; 0x80
+ 8006694:	21ee      	movs	r1, #238	; 0xee
+ 8006696:	4628      	mov	r0, r5
+ 8006698:	f001 fd1c 	bl	80080d4 <VL53L0X_UpdateByte>
+ 800669c:	4320      	orrs	r0, r4
+ 800669e:	b244      	sxtb	r4, r0
+ 80066a0:	e7c1      	b.n	8006626 <VL53L0X_ref_calibration_io+0x52>
+			Status |= VL53L0X_WrByte(Dev, 0xCB, VhvSettings);
+ 80066a2:	4642      	mov	r2, r8
+ 80066a4:	21cb      	movs	r1, #203	; 0xcb
+ 80066a6:	4628      	mov	r0, r5
+ 80066a8:	f001 fcd8 	bl	800805c <VL53L0X_WrByte>
+ 80066ac:	4320      	orrs	r0, r4
+ 80066ae:	b244      	sxtb	r4, r0
+ 80066b0:	e7eb      	b.n	800668a <VL53L0X_ref_calibration_io+0xb6>
+
+080066b2 <VL53L0X_perform_vhv_calibration>:
+
+
+VL53L0X_Error VL53L0X_perform_vhv_calibration(VL53L0X_DEV Dev,
+	uint8_t *pVhvSettings, const uint8_t get_data_enable,
+	const uint8_t restore_config)
+{
+ 80066b2:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 80066b6:	b086      	sub	sp, #24
+ 80066b8:	4604      	mov	r4, r0
+ 80066ba:	460d      	mov	r5, r1
+ 80066bc:	4616      	mov	r6, r2
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t SequenceConfig = 0;
+	uint8_t VhvSettings = 0;
+	uint8_t PhaseCal = 0;
+	uint8_t PhaseCalInt = 0;
+ 80066be:	2200      	movs	r2, #0
+ 80066c0:	f88d 2017 	strb.w	r2, [sp, #23]
+
+	/* store the value of the sequence config,
+	 * this will be reset before the end of the function
+	 */
+
+	if (restore_config)
+ 80066c4:	461f      	mov	r7, r3
+ 80066c6:	b19b      	cbz	r3, 80066f0 <VL53L0X_perform_vhv_calibration+0x3e>
+		SequenceConfig = PALDevDataGet(Dev, SequenceConfig);
+ 80066c8:	f890 8130 	ldrb.w	r8, [r0, #304]	; 0x130
+
+	/* Run VHV */
+	Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG, 0x01);
+ 80066cc:	2201      	movs	r2, #1
+ 80066ce:	4611      	mov	r1, r2
+ 80066d0:	4620      	mov	r0, r4
+ 80066d2:	f001 fcc3 	bl	800805c <VL53L0X_WrByte>
+
+	if (Status == VL53L0X_ERROR_NONE)
+ 80066d6:	4603      	mov	r3, r0
+ 80066d8:	b160      	cbz	r0, 80066f4 <VL53L0X_perform_vhv_calibration+0x42>
+		Status = VL53L0X_perform_single_ref_calibration(Dev, 0x40);
+
+	/* Read VHV from device */
+	if ((Status == VL53L0X_ERROR_NONE) && (get_data_enable == 1)) {
+ 80066da:	b90b      	cbnz	r3, 80066e0 <VL53L0X_perform_vhv_calibration+0x2e>
+ 80066dc:	2e01      	cmp	r6, #1
+ 80066de:	d00f      	beq.n	8006700 <VL53L0X_perform_vhv_calibration+0x4e>
+		Status = VL53L0X_ref_calibration_io(Dev, 1,
+			VhvSettings, PhaseCal, /* Not used here */
+			pVhvSettings, &PhaseCalInt,
+			1, 0);
+	} else
+		*pVhvSettings = 0;
+ 80066e0:	2200      	movs	r2, #0
+ 80066e2:	702a      	strb	r2, [r5, #0]
+
+
+	if ((Status == VL53L0X_ERROR_NONE) && restore_config) {
+ 80066e4:	b903      	cbnz	r3, 80066e8 <VL53L0X_perform_vhv_calibration+0x36>
+ 80066e6:	b9cf      	cbnz	r7, 800671c <VL53L0X_perform_vhv_calibration+0x6a>
+			PALDevDataSet(Dev, SequenceConfig, SequenceConfig);
+
+	}
+
+	return Status;
+}
+ 80066e8:	4618      	mov	r0, r3
+ 80066ea:	b006      	add	sp, #24
+ 80066ec:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+	uint8_t SequenceConfig = 0;
+ 80066f0:	4698      	mov	r8, r3
+ 80066f2:	e7eb      	b.n	80066cc <VL53L0X_perform_vhv_calibration+0x1a>
+		Status = VL53L0X_perform_single_ref_calibration(Dev, 0x40);
+ 80066f4:	2140      	movs	r1, #64	; 0x40
+ 80066f6:	4620      	mov	r0, r4
+ 80066f8:	f7ff ff52 	bl	80065a0 <VL53L0X_perform_single_ref_calibration>
+ 80066fc:	4603      	mov	r3, r0
+ 80066fe:	e7ec      	b.n	80066da <VL53L0X_perform_vhv_calibration+0x28>
+		Status = VL53L0X_ref_calibration_io(Dev, 1,
+ 8006700:	2200      	movs	r2, #0
+ 8006702:	9203      	str	r2, [sp, #12]
+ 8006704:	2101      	movs	r1, #1
+ 8006706:	9102      	str	r1, [sp, #8]
+ 8006708:	f10d 0317 	add.w	r3, sp, #23
+ 800670c:	9301      	str	r3, [sp, #4]
+ 800670e:	9500      	str	r5, [sp, #0]
+ 8006710:	4613      	mov	r3, r2
+ 8006712:	4620      	mov	r0, r4
+ 8006714:	f7ff ff5e 	bl	80065d4 <VL53L0X_ref_calibration_io>
+ 8006718:	4603      	mov	r3, r0
+ 800671a:	e7e3      	b.n	80066e4 <VL53L0X_perform_vhv_calibration+0x32>
+		Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
+ 800671c:	4642      	mov	r2, r8
+ 800671e:	2101      	movs	r1, #1
+ 8006720:	4620      	mov	r0, r4
+ 8006722:	f001 fc9b 	bl	800805c <VL53L0X_WrByte>
+		if (Status == VL53L0X_ERROR_NONE)
+ 8006726:	4603      	mov	r3, r0
+ 8006728:	2800      	cmp	r0, #0
+ 800672a:	d1dd      	bne.n	80066e8 <VL53L0X_perform_vhv_calibration+0x36>
+			PALDevDataSet(Dev, SequenceConfig, SequenceConfig);
+ 800672c:	f884 8130 	strb.w	r8, [r4, #304]	; 0x130
+ 8006730:	e7da      	b.n	80066e8 <VL53L0X_perform_vhv_calibration+0x36>
+
+08006732 <VL53L0X_perform_phase_calibration>:
+
+VL53L0X_Error VL53L0X_perform_phase_calibration(VL53L0X_DEV Dev,
+	uint8_t *pPhaseCal, const uint8_t get_data_enable,
+	const uint8_t restore_config)
+{
+ 8006732:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8006736:	b086      	sub	sp, #24
+ 8006738:	4604      	mov	r4, r0
+ 800673a:	460d      	mov	r5, r1
+ 800673c:	4616      	mov	r6, r2
+
+	/* store the value of the sequence config,
+	 * this will be reset before the end of the function
+	 */
+
+	if (restore_config)
+ 800673e:	461f      	mov	r7, r3
+ 8006740:	b19b      	cbz	r3, 800676a <VL53L0X_perform_phase_calibration+0x38>
+		SequenceConfig = PALDevDataGet(Dev, SequenceConfig);
+ 8006742:	f890 8130 	ldrb.w	r8, [r0, #304]	; 0x130
+
+	/* Run PhaseCal */
+	Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG, 0x02);
+ 8006746:	2202      	movs	r2, #2
+ 8006748:	2101      	movs	r1, #1
+ 800674a:	4620      	mov	r0, r4
+ 800674c:	f001 fc86 	bl	800805c <VL53L0X_WrByte>
+
+	if (Status == VL53L0X_ERROR_NONE)
+ 8006750:	4603      	mov	r3, r0
+ 8006752:	b160      	cbz	r0, 800676e <VL53L0X_perform_phase_calibration+0x3c>
+		Status = VL53L0X_perform_single_ref_calibration(Dev, 0x0);
+
+	/* Read PhaseCal from device */
+	if ((Status == VL53L0X_ERROR_NONE) && (get_data_enable == 1)) {
+ 8006754:	b90b      	cbnz	r3, 800675a <VL53L0X_perform_phase_calibration+0x28>
+ 8006756:	2e01      	cmp	r6, #1
+ 8006758:	d00f      	beq.n	800677a <VL53L0X_perform_phase_calibration+0x48>
+		Status = VL53L0X_ref_calibration_io(Dev, 1,
+			VhvSettings, PhaseCal, /* Not used here */
+			&VhvSettingsint, pPhaseCal,
+			0, 1);
+	} else
+		*pPhaseCal = 0;
+ 800675a:	2200      	movs	r2, #0
+ 800675c:	702a      	strb	r2, [r5, #0]
+
+
+	if ((Status == VL53L0X_ERROR_NONE) && restore_config) {
+ 800675e:	b903      	cbnz	r3, 8006762 <VL53L0X_perform_phase_calibration+0x30>
+ 8006760:	b9cf      	cbnz	r7, 8006796 <VL53L0X_perform_phase_calibration+0x64>
+			PALDevDataSet(Dev, SequenceConfig, SequenceConfig);
+
+	}
+
+	return Status;
+}
+ 8006762:	4618      	mov	r0, r3
+ 8006764:	b006      	add	sp, #24
+ 8006766:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+	uint8_t SequenceConfig = 0;
+ 800676a:	4698      	mov	r8, r3
+ 800676c:	e7eb      	b.n	8006746 <VL53L0X_perform_phase_calibration+0x14>
+		Status = VL53L0X_perform_single_ref_calibration(Dev, 0x0);
+ 800676e:	2100      	movs	r1, #0
+ 8006770:	4620      	mov	r0, r4
+ 8006772:	f7ff ff15 	bl	80065a0 <VL53L0X_perform_single_ref_calibration>
+ 8006776:	4603      	mov	r3, r0
+ 8006778:	e7ec      	b.n	8006754 <VL53L0X_perform_phase_calibration+0x22>
+		Status = VL53L0X_ref_calibration_io(Dev, 1,
+ 800677a:	2101      	movs	r1, #1
+ 800677c:	9103      	str	r1, [sp, #12]
+ 800677e:	2200      	movs	r2, #0
+ 8006780:	9202      	str	r2, [sp, #8]
+ 8006782:	9501      	str	r5, [sp, #4]
+ 8006784:	f10d 0317 	add.w	r3, sp, #23
+ 8006788:	9300      	str	r3, [sp, #0]
+ 800678a:	4613      	mov	r3, r2
+ 800678c:	4620      	mov	r0, r4
+ 800678e:	f7ff ff21 	bl	80065d4 <VL53L0X_ref_calibration_io>
+ 8006792:	4603      	mov	r3, r0
+ 8006794:	e7e3      	b.n	800675e <VL53L0X_perform_phase_calibration+0x2c>
+		Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
+ 8006796:	4642      	mov	r2, r8
+ 8006798:	2101      	movs	r1, #1
+ 800679a:	4620      	mov	r0, r4
+ 800679c:	f001 fc5e 	bl	800805c <VL53L0X_WrByte>
+		if (Status == VL53L0X_ERROR_NONE)
+ 80067a0:	4603      	mov	r3, r0
+ 80067a2:	2800      	cmp	r0, #0
+ 80067a4:	d1dd      	bne.n	8006762 <VL53L0X_perform_phase_calibration+0x30>
+			PALDevDataSet(Dev, SequenceConfig, SequenceConfig);
+ 80067a6:	f884 8130 	strb.w	r8, [r4, #304]	; 0x130
+ 80067aa:	e7da      	b.n	8006762 <VL53L0X_perform_phase_calibration+0x30>
+
+080067ac <VL53L0X_perform_ref_calibration>:
+
+VL53L0X_Error VL53L0X_perform_ref_calibration(VL53L0X_DEV Dev,
+	uint8_t *pVhvSettings, uint8_t *pPhaseCal, uint8_t get_data_enable)
+{
+ 80067ac:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 80067ae:	4604      	mov	r4, r0
+ 80067b0:	4616      	mov	r6, r2
+ 80067b2:	461d      	mov	r5, r3
+
+	/* store the value of the sequence config,
+	 * this will be reset before the end of the function
+	 */
+
+	SequenceConfig = PALDevDataGet(Dev, SequenceConfig);
+ 80067b4:	f890 7130 	ldrb.w	r7, [r0, #304]	; 0x130
+
+	/* In the following function we don't save the config to optimize
+	 * writes on device. Config is saved and restored only once. */
+	Status = VL53L0X_perform_vhv_calibration(
+ 80067b8:	2300      	movs	r3, #0
+ 80067ba:	462a      	mov	r2, r5
+ 80067bc:	f7ff ff79 	bl	80066b2 <VL53L0X_perform_vhv_calibration>
+			Dev, pVhvSettings, get_data_enable, 0);
+
+
+	if (Status == VL53L0X_ERROR_NONE)
+ 80067c0:	4603      	mov	r3, r0
+ 80067c2:	b110      	cbz	r0, 80067ca <VL53L0X_perform_ref_calibration+0x1e>
+		Status = VL53L0X_perform_phase_calibration(
+			Dev, pPhaseCal, get_data_enable, 0);
+
+
+	if (Status == VL53L0X_ERROR_NONE) {
+ 80067c4:	b14b      	cbz	r3, 80067da <VL53L0X_perform_ref_calibration+0x2e>
+			PALDevDataSet(Dev, SequenceConfig, SequenceConfig);
+
+	}
+
+	return Status;
+}
+ 80067c6:	4618      	mov	r0, r3
+ 80067c8:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+		Status = VL53L0X_perform_phase_calibration(
+ 80067ca:	2300      	movs	r3, #0
+ 80067cc:	462a      	mov	r2, r5
+ 80067ce:	4631      	mov	r1, r6
+ 80067d0:	4620      	mov	r0, r4
+ 80067d2:	f7ff ffae 	bl	8006732 <VL53L0X_perform_phase_calibration>
+ 80067d6:	4603      	mov	r3, r0
+ 80067d8:	e7f4      	b.n	80067c4 <VL53L0X_perform_ref_calibration+0x18>
+		Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
+ 80067da:	463a      	mov	r2, r7
+ 80067dc:	2101      	movs	r1, #1
+ 80067de:	4620      	mov	r0, r4
+ 80067e0:	f001 fc3c 	bl	800805c <VL53L0X_WrByte>
+		if (Status == VL53L0X_ERROR_NONE)
+ 80067e4:	4603      	mov	r3, r0
+ 80067e6:	2800      	cmp	r0, #0
+ 80067e8:	d1ed      	bne.n	80067c6 <VL53L0X_perform_ref_calibration+0x1a>
+			PALDevDataSet(Dev, SequenceConfig, SequenceConfig);
+ 80067ea:	f884 7130 	strb.w	r7, [r4, #304]	; 0x130
+ 80067ee:	e7ea      	b.n	80067c6 <VL53L0X_perform_ref_calibration+0x1a>
+
+080067f0 <VL53L0X_perform_ref_spad_management>:
+{
+ 80067f0:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 80067f4:	b093      	sub	sp, #76	; 0x4c
+ 80067f6:	4605      	mov	r5, r0
+ 80067f8:	910a      	str	r1, [sp, #40]	; 0x28
+ 80067fa:	920b      	str	r2, [sp, #44]	; 0x2c
+	uint32_t lastSpadIndex = 0;
+ 80067fc:	2300      	movs	r3, #0
+ 80067fe:	930f      	str	r3, [sp, #60]	; 0x3c
+	int32_t nextGoodSpad = 0;
+ 8006800:	930e      	str	r3, [sp, #56]	; 0x38
+	uint8_t VhvSettings = 0;
+ 8006802:	f88d 3035 	strb.w	r3, [sp, #53]	; 0x35
+	uint8_t PhaseCal = 0;
+ 8006806:	f88d 3034 	strb.w	r3, [sp, #52]	; 0x34
+	targetRefRate = PALDevDataGet(Dev, targetRefRate);
+ 800680a:	f8b0 913c 	ldrh.w	r9, [r0, #316]	; 0x13c
+	for (index = 0; index < spadArraySize; index++)
+ 800680e:	e004      	b.n	800681a <VL53L0X_perform_ref_spad_management+0x2a>
+		Dev->Data.SpadData.RefSpadEnables[index] = 0;
+ 8006810:	18ea      	adds	r2, r5, r3
+ 8006812:	2100      	movs	r1, #0
+ 8006814:	f882 1124 	strb.w	r1, [r2, #292]	; 0x124
+	for (index = 0; index < spadArraySize; index++)
+ 8006818:	3301      	adds	r3, #1
+ 800681a:	2b05      	cmp	r3, #5
+ 800681c:	d9f8      	bls.n	8006810 <VL53L0X_perform_ref_spad_management+0x20>
+	Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
+ 800681e:	2201      	movs	r2, #1
+ 8006820:	21ff      	movs	r1, #255	; 0xff
+ 8006822:	4628      	mov	r0, r5
+ 8006824:	f001 fc1a 	bl	800805c <VL53L0X_WrByte>
+	if (Status == VL53L0X_ERROR_NONE)
+ 8006828:	4604      	mov	r4, r0
+ 800682a:	2800      	cmp	r0, #0
+ 800682c:	d02f      	beq.n	800688e <VL53L0X_perform_ref_spad_management+0x9e>
+	if (Status == VL53L0X_ERROR_NONE)
+ 800682e:	2c00      	cmp	r4, #0
+ 8006830:	d034      	beq.n	800689c <VL53L0X_perform_ref_spad_management+0xac>
+	if (Status == VL53L0X_ERROR_NONE)
+ 8006832:	2c00      	cmp	r4, #0
+ 8006834:	d039      	beq.n	80068aa <VL53L0X_perform_ref_spad_management+0xba>
+	if (Status == VL53L0X_ERROR_NONE)
+ 8006836:	2c00      	cmp	r4, #0
+ 8006838:	d03e      	beq.n	80068b8 <VL53L0X_perform_ref_spad_management+0xc8>
+	if (Status == VL53L0X_ERROR_NONE)
+ 800683a:	2c00      	cmp	r4, #0
+ 800683c:	d043      	beq.n	80068c6 <VL53L0X_perform_ref_spad_management+0xd6>
+	if (Status == VL53L0X_ERROR_NONE)
+ 800683e:	2c00      	cmp	r4, #0
+ 8006840:	d048      	beq.n	80068d4 <VL53L0X_perform_ref_spad_management+0xe4>
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8006842:	2c00      	cmp	r4, #0
+ 8006844:	d04f      	beq.n	80068e6 <VL53L0X_perform_ref_spad_management+0xf6>
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8006846:	2c00      	cmp	r4, #0
+ 8006848:	d061      	beq.n	800690e <VL53L0X_perform_ref_spad_management+0x11e>
+	uint8_t	 isApertureSpads_int = 0;
+ 800684a:	2700      	movs	r7, #0
+ 800684c:	9709      	str	r7, [sp, #36]	; 0x24
+	uint32_t refSpadCount_int = 0;
+ 800684e:	46b8      	mov	r8, r7
+ 8006850:	9707      	str	r7, [sp, #28]
+	if ((Status == VL53L0X_ERROR_NONE) &&
+ 8006852:	2c00      	cmp	r4, #0
+ 8006854:	f040 8119 	bne.w	8006a8a <VL53L0X_perform_ref_spad_management+0x29a>
+		(peakSignalRateRef < targetRefRate)) {
+ 8006858:	f8bd 3036 	ldrh.w	r3, [sp, #54]	; 0x36
+	if ((Status == VL53L0X_ERROR_NONE) &&
+ 800685c:	454b      	cmp	r3, r9
+ 800685e:	f080 8114 	bcs.w	8006a8a <VL53L0X_perform_ref_spad_management+0x29a>
+		isApertureSpads_int = needAptSpads;
+ 8006862:	f89d 201c 	ldrb.w	r2, [sp, #28]
+ 8006866:	9209      	str	r2, [sp, #36]	; 0x24
+		memcpy(lastSpadArray, Dev->Data.SpadData.RefSpadEnables,
+ 8006868:	f8d5 0124 	ldr.w	r0, [r5, #292]	; 0x124
+ 800686c:	9010      	str	r0, [sp, #64]	; 0x40
+ 800686e:	f8b5 2128 	ldrh.w	r2, [r5, #296]	; 0x128
+ 8006872:	f8ad 2044 	strh.w	r2, [sp, #68]	; 0x44
+		lastSignalRateDiff = abs(peakSignalRateRef -
+ 8006876:	eba3 0309 	sub.w	r3, r3, r9
+ 800687a:	ea83 72e3 	eor.w	r2, r3, r3, asr #31
+ 800687e:	eba2 72e3 	sub.w	r2, r2, r3, asr #31
+ 8006882:	9208      	str	r2, [sp, #32]
+		refSpadCount_int	= minimumSpadCount;
+ 8006884:	f04f 0803 	mov.w	r8, #3
+		complete = 0;
+ 8006888:	f04f 0b00 	mov.w	fp, #0
+		while (!complete) {
+ 800688c:	e0c1      	b.n	8006a12 <VL53L0X_perform_ref_spad_management+0x222>
+		Status = VL53L0X_WrByte(Dev,
+ 800688e:	2200      	movs	r2, #0
+ 8006890:	214f      	movs	r1, #79	; 0x4f
+ 8006892:	4628      	mov	r0, r5
+ 8006894:	f001 fbe2 	bl	800805c <VL53L0X_WrByte>
+ 8006898:	4604      	mov	r4, r0
+ 800689a:	e7c8      	b.n	800682e <VL53L0X_perform_ref_spad_management+0x3e>
+		Status = VL53L0X_WrByte(Dev,
+ 800689c:	222c      	movs	r2, #44	; 0x2c
+ 800689e:	214e      	movs	r1, #78	; 0x4e
+ 80068a0:	4628      	mov	r0, r5
+ 80068a2:	f001 fbdb 	bl	800805c <VL53L0X_WrByte>
+ 80068a6:	4604      	mov	r4, r0
+ 80068a8:	e7c3      	b.n	8006832 <VL53L0X_perform_ref_spad_management+0x42>
+		Status = VL53L0X_WrByte(Dev, 0xFF, 0x00);
+ 80068aa:	2200      	movs	r2, #0
+ 80068ac:	21ff      	movs	r1, #255	; 0xff
+ 80068ae:	4628      	mov	r0, r5
+ 80068b0:	f001 fbd4 	bl	800805c <VL53L0X_WrByte>
+ 80068b4:	4604      	mov	r4, r0
+ 80068b6:	e7be      	b.n	8006836 <VL53L0X_perform_ref_spad_management+0x46>
+		Status = VL53L0X_WrByte(Dev,
+ 80068b8:	22b4      	movs	r2, #180	; 0xb4
+ 80068ba:	21b6      	movs	r1, #182	; 0xb6
+ 80068bc:	4628      	mov	r0, r5
+ 80068be:	f001 fbcd 	bl	800805c <VL53L0X_WrByte>
+ 80068c2:	4604      	mov	r4, r0
+ 80068c4:	e7b9      	b.n	800683a <VL53L0X_perform_ref_spad_management+0x4a>
+		Status = VL53L0X_WrByte(Dev,
+ 80068c6:	2200      	movs	r2, #0
+ 80068c8:	2180      	movs	r1, #128	; 0x80
+ 80068ca:	4628      	mov	r0, r5
+ 80068cc:	f001 fbc6 	bl	800805c <VL53L0X_WrByte>
+ 80068d0:	4604      	mov	r4, r0
+ 80068d2:	e7b4      	b.n	800683e <VL53L0X_perform_ref_spad_management+0x4e>
+		Status = VL53L0X_perform_ref_calibration(Dev, &VhvSettings,
+ 80068d4:	2300      	movs	r3, #0
+ 80068d6:	aa0d      	add	r2, sp, #52	; 0x34
+ 80068d8:	f10d 0135 	add.w	r1, sp, #53	; 0x35
+ 80068dc:	4628      	mov	r0, r5
+ 80068de:	f7ff ff65 	bl	80067ac <VL53L0X_perform_ref_calibration>
+ 80068e2:	4604      	mov	r4, r0
+ 80068e4:	e7ad      	b.n	8006842 <VL53L0X_perform_ref_spad_management+0x52>
+		lastSpadIndex = currentSpadIndex;
+ 80068e6:	2100      	movs	r1, #0
+ 80068e8:	910f      	str	r1, [sp, #60]	; 0x3c
+		Status = enable_ref_spads(Dev,
+ 80068ea:	ab0f      	add	r3, sp, #60	; 0x3c
+ 80068ec:	9304      	str	r3, [sp, #16]
+ 80068ee:	2303      	movs	r3, #3
+ 80068f0:	9303      	str	r3, [sp, #12]
+ 80068f2:	9102      	str	r1, [sp, #8]
+ 80068f4:	23b4      	movs	r3, #180	; 0xb4
+ 80068f6:	9301      	str	r3, [sp, #4]
+ 80068f8:	2306      	movs	r3, #6
+ 80068fa:	9300      	str	r3, [sp, #0]
+ 80068fc:	f505 7392 	add.w	r3, r5, #292	; 0x124
+ 8006900:	f505 7295 	add.w	r2, r5, #298	; 0x12a
+ 8006904:	4628      	mov	r0, r5
+ 8006906:	f7ff fd68 	bl	80063da <enable_ref_spads>
+ 800690a:	4604      	mov	r4, r0
+ 800690c:	e79b      	b.n	8006846 <VL53L0X_perform_ref_spad_management+0x56>
+		currentSpadIndex = lastSpadIndex;
+ 800690e:	9f0f      	ldr	r7, [sp, #60]	; 0x3c
+		Status = perform_ref_signal_measurement(Dev,
+ 8006910:	f10d 0136 	add.w	r1, sp, #54	; 0x36
+ 8006914:	4628      	mov	r0, r5
+ 8006916:	f7ff fdb1 	bl	800647c <perform_ref_signal_measurement>
+		if ((Status == VL53L0X_ERROR_NONE) &&
+ 800691a:	4604      	mov	r4, r0
+ 800691c:	2800      	cmp	r0, #0
+ 800691e:	d145      	bne.n	80069ac <VL53L0X_perform_ref_spad_management+0x1bc>
+			(peakSignalRateRef > targetRefRate)) {
+ 8006920:	f8bd 3036 	ldrh.w	r3, [sp, #54]	; 0x36
+		if ((Status == VL53L0X_ERROR_NONE) &&
+ 8006924:	454b      	cmp	r3, r9
+ 8006926:	d80c      	bhi.n	8006942 <VL53L0X_perform_ref_spad_management+0x152>
+	uint8_t	 isApertureSpads_int = 0;
+ 8006928:	2300      	movs	r3, #0
+ 800692a:	9309      	str	r3, [sp, #36]	; 0x24
+	uint32_t refSpadCount_int = 0;
+ 800692c:	4698      	mov	r8, r3
+			needAptSpads = 0;
+ 800692e:	9307      	str	r3, [sp, #28]
+ 8006930:	e78f      	b.n	8006852 <VL53L0X_perform_ref_spad_management+0x62>
+				Dev->Data.SpadData.RefSpadEnables[index] = 0;
+ 8006932:	18ea      	adds	r2, r5, r3
+ 8006934:	2100      	movs	r1, #0
+ 8006936:	f882 1124 	strb.w	r1, [r2, #292]	; 0x124
+			for (index = 0; index < spadArraySize; index++)
+ 800693a:	3301      	adds	r3, #1
+ 800693c:	2b05      	cmp	r3, #5
+ 800693e:	d9f8      	bls.n	8006932 <VL53L0X_perform_ref_spad_management+0x142>
+ 8006940:	e002      	b.n	8006948 <VL53L0X_perform_ref_spad_management+0x158>
+ 8006942:	2300      	movs	r3, #0
+ 8006944:	e7fa      	b.n	800693c <VL53L0X_perform_ref_spad_management+0x14c>
+				currentSpadIndex++;
+ 8006946:	3701      	adds	r7, #1
+			while ((is_aperture(startSelect + currentSpadIndex)
+ 8006948:	f107 00b4 	add.w	r0, r7, #180	; 0xb4
+ 800694c:	f7ff fd18 	bl	8006380 <is_aperture>
+				== 0) && (currentSpadIndex < maxSpadCount)) {
+ 8006950:	b908      	cbnz	r0, 8006956 <VL53L0X_perform_ref_spad_management+0x166>
+ 8006952:	2f2b      	cmp	r7, #43	; 0x2b
+ 8006954:	d9f7      	bls.n	8006946 <VL53L0X_perform_ref_spad_management+0x156>
+			Status = enable_ref_spads(Dev,
+ 8006956:	ab0f      	add	r3, sp, #60	; 0x3c
+ 8006958:	9304      	str	r3, [sp, #16]
+ 800695a:	2303      	movs	r3, #3
+ 800695c:	9303      	str	r3, [sp, #12]
+ 800695e:	9702      	str	r7, [sp, #8]
+ 8006960:	23b4      	movs	r3, #180	; 0xb4
+ 8006962:	9301      	str	r3, [sp, #4]
+ 8006964:	2306      	movs	r3, #6
+ 8006966:	9300      	str	r3, [sp, #0]
+ 8006968:	f505 7392 	add.w	r3, r5, #292	; 0x124
+ 800696c:	f505 7295 	add.w	r2, r5, #298	; 0x12a
+ 8006970:	2101      	movs	r1, #1
+ 8006972:	4628      	mov	r0, r5
+ 8006974:	f7ff fd31 	bl	80063da <enable_ref_spads>
+			if (Status == VL53L0X_ERROR_NONE) {
+ 8006978:	4604      	mov	r4, r0
+ 800697a:	b128      	cbz	r0, 8006988 <VL53L0X_perform_ref_spad_management+0x198>
+	uint8_t	 isApertureSpads_int = 0;
+ 800697c:	2300      	movs	r3, #0
+ 800697e:	9309      	str	r3, [sp, #36]	; 0x24
+	uint32_t refSpadCount_int = 0;
+ 8006980:	4698      	mov	r8, r3
+			needAptSpads = 1;
+ 8006982:	2301      	movs	r3, #1
+ 8006984:	9307      	str	r3, [sp, #28]
+ 8006986:	e764      	b.n	8006852 <VL53L0X_perform_ref_spad_management+0x62>
+				currentSpadIndex = lastSpadIndex;
+ 8006988:	9f0f      	ldr	r7, [sp, #60]	; 0x3c
+				Status = perform_ref_signal_measurement(Dev,
+ 800698a:	f10d 0136 	add.w	r1, sp, #54	; 0x36
+ 800698e:	4628      	mov	r0, r5
+ 8006990:	f7ff fd74 	bl	800647c <perform_ref_signal_measurement>
+				if ((Status == VL53L0X_ERROR_NONE) &&
+ 8006994:	4604      	mov	r4, r0
+ 8006996:	b970      	cbnz	r0, 80069b6 <VL53L0X_perform_ref_spad_management+0x1c6>
+					(peakSignalRateRef > targetRefRate)) {
+ 8006998:	f8bd 3036 	ldrh.w	r3, [sp, #54]	; 0x36
+				if ((Status == VL53L0X_ERROR_NONE) &&
+ 800699c:	454b      	cmp	r3, r9
+ 800699e:	d810      	bhi.n	80069c2 <VL53L0X_perform_ref_spad_management+0x1d2>
+	uint8_t	 isApertureSpads_int = 0;
+ 80069a0:	2300      	movs	r3, #0
+ 80069a2:	9309      	str	r3, [sp, #36]	; 0x24
+	uint32_t refSpadCount_int = 0;
+ 80069a4:	4698      	mov	r8, r3
+			needAptSpads = 1;
+ 80069a6:	2301      	movs	r3, #1
+ 80069a8:	9307      	str	r3, [sp, #28]
+ 80069aa:	e752      	b.n	8006852 <VL53L0X_perform_ref_spad_management+0x62>
+	uint8_t	 isApertureSpads_int = 0;
+ 80069ac:	2300      	movs	r3, #0
+ 80069ae:	9309      	str	r3, [sp, #36]	; 0x24
+	uint32_t refSpadCount_int = 0;
+ 80069b0:	4698      	mov	r8, r3
+			needAptSpads = 0;
+ 80069b2:	9307      	str	r3, [sp, #28]
+ 80069b4:	e74d      	b.n	8006852 <VL53L0X_perform_ref_spad_management+0x62>
+	uint8_t	 isApertureSpads_int = 0;
+ 80069b6:	2300      	movs	r3, #0
+ 80069b8:	9309      	str	r3, [sp, #36]	; 0x24
+	uint32_t refSpadCount_int = 0;
+ 80069ba:	4698      	mov	r8, r3
+			needAptSpads = 1;
+ 80069bc:	2301      	movs	r3, #1
+ 80069be:	9307      	str	r3, [sp, #28]
+ 80069c0:	e747      	b.n	8006852 <VL53L0X_perform_ref_spad_management+0x62>
+					isApertureSpads_int = 1;
+ 80069c2:	2301      	movs	r3, #1
+ 80069c4:	9309      	str	r3, [sp, #36]	; 0x24
+					refSpadCount_int = minimumSpadCount;
+ 80069c6:	f04f 0803 	mov.w	r8, #3
+			needAptSpads = 1;
+ 80069ca:	9307      	str	r3, [sp, #28]
+ 80069cc:	e741      	b.n	8006852 <VL53L0X_perform_ref_spad_management+0x62>
+				currentSpadIndex++;
+ 80069ce:	1c77      	adds	r7, r6, #1
+				Status = set_ref_spad_map(Dev,
+ 80069d0:	4651      	mov	r1, sl
+ 80069d2:	4628      	mov	r0, r5
+ 80069d4:	f7ff fcf3 	bl	80063be <set_ref_spad_map>
+ 80069d8:	4604      	mov	r4, r0
+ 80069da:	e03d      	b.n	8006a58 <VL53L0X_perform_ref_spad_management+0x268>
+					Status = set_ref_spad_map(Dev,
+ 80069dc:	a910      	add	r1, sp, #64	; 0x40
+ 80069de:	4628      	mov	r0, r5
+ 80069e0:	f7ff fced 	bl	80063be <set_ref_spad_map>
+ 80069e4:	4604      	mov	r4, r0
+					memcpy(
+ 80069e6:	9810      	ldr	r0, [sp, #64]	; 0x40
+ 80069e8:	f8c5 0124 	str.w	r0, [r5, #292]	; 0x124
+ 80069ec:	f8bd 3044 	ldrh.w	r3, [sp, #68]	; 0x44
+ 80069f0:	f8a5 3128 	strh.w	r3, [r5, #296]	; 0x128
+					(refSpadCount_int)--;
+ 80069f4:	f8cd 8018 	str.w	r8, [sp, #24]
+				complete = 1;
+ 80069f8:	f04f 0b01 	mov.w	fp, #1
+ 80069fc:	e007      	b.n	8006a0e <VL53L0X_perform_ref_spad_management+0x21e>
+				memcpy(lastSpadArray,
+ 80069fe:	f8d5 0124 	ldr.w	r0, [r5, #292]	; 0x124
+ 8006a02:	9010      	str	r0, [sp, #64]	; 0x40
+ 8006a04:	f8b5 2128 	ldrh.w	r2, [r5, #296]	; 0x128
+ 8006a08:	f8ad 2044 	strh.w	r2, [sp, #68]	; 0x44
+				lastSignalRateDiff = signalRateDiff;
+ 8006a0c:	9308      	str	r3, [sp, #32]
+ 8006a0e:	f8dd 8018 	ldr.w	r8, [sp, #24]
+		while (!complete) {
+ 8006a12:	f1bb 0f00 	cmp.w	fp, #0
+ 8006a16:	d138      	bne.n	8006a8a <VL53L0X_perform_ref_spad_management+0x29a>
+			get_next_good_spad(
+ 8006a18:	ab0e      	add	r3, sp, #56	; 0x38
+ 8006a1a:	463a      	mov	r2, r7
+ 8006a1c:	2106      	movs	r1, #6
+ 8006a1e:	f505 7095 	add.w	r0, r5, #298	; 0x12a
+ 8006a22:	f7ff fc82 	bl	800632a <get_next_good_spad>
+			if (nextGoodSpad == -1) {
+ 8006a26:	9e0e      	ldr	r6, [sp, #56]	; 0x38
+ 8006a28:	f1b6 3fff 	cmp.w	r6, #4294967295
+ 8006a2c:	d02b      	beq.n	8006a86 <VL53L0X_perform_ref_spad_management+0x296>
+			if (is_aperture((uint32_t)startSelect + nextGoodSpad) !=
+ 8006a2e:	4637      	mov	r7, r6
+ 8006a30:	f106 00b4 	add.w	r0, r6, #180	; 0xb4
+ 8006a34:	f7ff fca4 	bl	8006380 <is_aperture>
+ 8006a38:	9b07      	ldr	r3, [sp, #28]
+ 8006a3a:	4298      	cmp	r0, r3
+ 8006a3c:	d125      	bne.n	8006a8a <VL53L0X_perform_ref_spad_management+0x29a>
+			(refSpadCount_int)++;
+ 8006a3e:	f108 0301 	add.w	r3, r8, #1
+ 8006a42:	9306      	str	r3, [sp, #24]
+					Dev->Data.SpadData.RefSpadEnables,
+ 8006a44:	f505 7a92 	add.w	sl, r5, #292	; 0x124
+			Status = enable_spad_bit(
+ 8006a48:	4632      	mov	r2, r6
+ 8006a4a:	2106      	movs	r1, #6
+ 8006a4c:	4650      	mov	r0, sl
+ 8006a4e:	f7ff fca3 	bl	8006398 <enable_spad_bit>
+			if (Status == VL53L0X_ERROR_NONE) {
+ 8006a52:	4604      	mov	r4, r0
+ 8006a54:	2800      	cmp	r0, #0
+ 8006a56:	d0ba      	beq.n	80069ce <VL53L0X_perform_ref_spad_management+0x1de>
+			if (Status != VL53L0X_ERROR_NONE)
+ 8006a58:	bb5c      	cbnz	r4, 8006ab2 <VL53L0X_perform_ref_spad_management+0x2c2>
+			Status = perform_ref_signal_measurement(Dev,
+ 8006a5a:	f10d 0136 	add.w	r1, sp, #54	; 0x36
+ 8006a5e:	4628      	mov	r0, r5
+ 8006a60:	f7ff fd0c 	bl	800647c <perform_ref_signal_measurement>
+			if (Status != VL53L0X_ERROR_NONE)
+ 8006a64:	4604      	mov	r4, r0
+ 8006a66:	bb38      	cbnz	r0, 8006ab8 <VL53L0X_perform_ref_spad_management+0x2c8>
+			signalRateDiff = abs(peakSignalRateRef - targetRefRate);
+ 8006a68:	f8bd 2036 	ldrh.w	r2, [sp, #54]	; 0x36
+ 8006a6c:	eba2 0309 	sub.w	r3, r2, r9
+ 8006a70:	2b00      	cmp	r3, #0
+ 8006a72:	bfb8      	it	lt
+ 8006a74:	425b      	neglt	r3, r3
+			if (peakSignalRateRef > targetRefRate) {
+ 8006a76:	454a      	cmp	r2, r9
+ 8006a78:	d9c1      	bls.n	80069fe <VL53L0X_perform_ref_spad_management+0x20e>
+				if (signalRateDiff > lastSignalRateDiff) {
+ 8006a7a:	9a08      	ldr	r2, [sp, #32]
+ 8006a7c:	429a      	cmp	r2, r3
+ 8006a7e:	d3ad      	bcc.n	80069dc <VL53L0X_perform_ref_spad_management+0x1ec>
+				complete = 1;
+ 8006a80:	f04f 0b01 	mov.w	fp, #1
+ 8006a84:	e7c3      	b.n	8006a0e <VL53L0X_perform_ref_spad_management+0x21e>
+				Status = VL53L0X_ERROR_REF_SPAD_INIT;
+ 8006a86:	f06f 0431 	mvn.w	r4, #49	; 0x31
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8006a8a:	b974      	cbnz	r4, 8006aaa <VL53L0X_perform_ref_spad_management+0x2ba>
+		*refSpadCount = refSpadCount_int;
+ 8006a8c:	9a0a      	ldr	r2, [sp, #40]	; 0x28
+ 8006a8e:	f8c2 8000 	str.w	r8, [r2]
+		*isApertureSpads = isApertureSpads_int;
+ 8006a92:	990b      	ldr	r1, [sp, #44]	; 0x2c
+ 8006a94:	9b09      	ldr	r3, [sp, #36]	; 0x24
+ 8006a96:	700b      	strb	r3, [r1, #0]
+		VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, RefSpadsInitialised, 1);
+ 8006a98:	2301      	movs	r3, #1
+ 8006a9a:	f885 3115 	strb.w	r3, [r5, #277]	; 0x115
+		VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ 8006a9e:	7813      	ldrb	r3, [r2, #0]
+ 8006aa0:	f885 3113 	strb.w	r3, [r5, #275]	; 0x113
+		VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ 8006aa4:	780b      	ldrb	r3, [r1, #0]
+ 8006aa6:	f885 3114 	strb.w	r3, [r5, #276]	; 0x114
+}
+ 8006aaa:	4620      	mov	r0, r4
+ 8006aac:	b013      	add	sp, #76	; 0x4c
+ 8006aae:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+			(refSpadCount_int)++;
+ 8006ab2:	f8dd 8018 	ldr.w	r8, [sp, #24]
+ 8006ab6:	e7e8      	b.n	8006a8a <VL53L0X_perform_ref_spad_management+0x29a>
+ 8006ab8:	f8dd 8018 	ldr.w	r8, [sp, #24]
+ 8006abc:	e7e5      	b.n	8006a8a <VL53L0X_perform_ref_spad_management+0x29a>
+
+08006abe <VL53L0X_measurement_poll_for_completion>:
+	}
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_measurement_poll_for_completion(VL53L0X_DEV Dev)
+{
+ 8006abe:	b530      	push	{r4, r5, lr}
+ 8006ac0:	b083      	sub	sp, #12
+ 8006ac2:	4605      	mov	r5, r0
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t NewDataReady = 0;
+ 8006ac4:	2400      	movs	r4, #0
+ 8006ac6:	f88d 4007 	strb.w	r4, [sp, #7]
+	LOG_FUNCTION_START("");
+
+	LoopNb = 0;
+
+	do {
+		Status = VL53L0X_GetMeasurementDataReady(Dev, &NewDataReady);
+ 8006aca:	f10d 0107 	add.w	r1, sp, #7
+ 8006ace:	4628      	mov	r0, r5
+ 8006ad0:	f7ff fbe3 	bl	800629a <VL53L0X_GetMeasurementDataReady>
+		if (Status != 0)
+ 8006ad4:	4602      	mov	r2, r0
+ 8006ad6:	b968      	cbnz	r0, 8006af4 <VL53L0X_measurement_poll_for_completion+0x36>
+			break; /* the error is set */
+
+		if (NewDataReady == 1)
+ 8006ad8:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8006adc:	2b01      	cmp	r3, #1
+ 8006ade:	d009      	beq.n	8006af4 <VL53L0X_measurement_poll_for_completion+0x36>
+			break; /* done note that status == 0 */
+
+		LoopNb++;
+ 8006ae0:	3401      	adds	r4, #1
+		if (LoopNb >= VL53L0X_DEFAULT_MAX_LOOP) {
+ 8006ae2:	f5b4 6ffa 	cmp.w	r4, #2000	; 0x7d0
+ 8006ae6:	d203      	bcs.n	8006af0 <VL53L0X_measurement_poll_for_completion+0x32>
+			Status = VL53L0X_ERROR_TIME_OUT;
+			break;
+		}
+
+		VL53L0X_PollingDelay(Dev);
+ 8006ae8:	4628      	mov	r0, r5
+ 8006aea:	f001 fb57 	bl	800819c <VL53L0X_PollingDelay>
+		Status = VL53L0X_GetMeasurementDataReady(Dev, &NewDataReady);
+ 8006aee:	e7ec      	b.n	8006aca <VL53L0X_measurement_poll_for_completion+0xc>
+			Status = VL53L0X_ERROR_TIME_OUT;
+ 8006af0:	f06f 0206 	mvn.w	r2, #6
+	} while (1);
+
+	LOG_FUNCTION_END(Status);
+
+	return Status;
+}
+ 8006af4:	4610      	mov	r0, r2
+ 8006af6:	b003      	add	sp, #12
+ 8006af8:	bd30      	pop	{r4, r5, pc}
+
+08006afa <VL53L0X_decode_vcsel_period>:
+	 * period in PLL clocks
+	 */
+
+	uint8_t vcsel_period_pclks = 0;
+
+	vcsel_period_pclks = (vcsel_period_reg + 1) << 1;
+ 8006afa:	3001      	adds	r0, #1
+ 8006afc:	b2c0      	uxtb	r0, r0
+ 8006afe:	0040      	lsls	r0, r0, #1
+
+	return vcsel_period_pclks;
+}
+ 8006b00:	f000 00fe 	and.w	r0, r0, #254	; 0xfe
+ 8006b04:	4770      	bx	lr
+
+08006b06 <VL53L0X_encode_vcsel_period>:
+	 * in PLL clocks
+	 */
+
+	uint8_t vcsel_period_reg = 0;
+
+	vcsel_period_reg = (vcsel_period_pclks >> 1) - 1;
+ 8006b06:	0840      	lsrs	r0, r0, #1
+ 8006b08:	3801      	subs	r0, #1
+
+	return vcsel_period_reg;
+}
+ 8006b0a:	b2c0      	uxtb	r0, r0
+ 8006b0c:	4770      	bx	lr
+
+08006b0e <VL53L0X_isqrt>:
+
+
+uint32_t VL53L0X_isqrt(uint32_t num)
+{
+ 8006b0e:	4602      	mov	r2, r0
+	 *
+	 * From: http://en.wikipedia.org/wiki/Methods_of_computing_square_roots
+	 */
+
+	uint32_t  res = 0;
+	uint32_t  bit = 1 << 30;
+ 8006b10:	f04f 4380 	mov.w	r3, #1073741824	; 0x40000000
+	/* The second-to-top bit is set:
+	 *	1 << 14 for 16-bits, 1 << 30 for 32 bits */
+
+	 /* "bit" starts at the highest power of four <= the argument. */
+	while (bit > num)
+ 8006b14:	e000      	b.n	8006b18 <VL53L0X_isqrt+0xa>
+		bit >>= 2;
+ 8006b16:	089b      	lsrs	r3, r3, #2
+	while (bit > num)
+ 8006b18:	4293      	cmp	r3, r2
+ 8006b1a:	d8fc      	bhi.n	8006b16 <VL53L0X_isqrt+0x8>
+	uint32_t  res = 0;
+ 8006b1c:	2000      	movs	r0, #0
+ 8006b1e:	e001      	b.n	8006b24 <VL53L0X_isqrt+0x16>
+	while (bit != 0) {
+		if (num >= res + bit) {
+			num -= res + bit;
+			res = (res >> 1) + bit;
+		} else
+			res >>= 1;
+ 8006b20:	0840      	lsrs	r0, r0, #1
+
+		bit >>= 2;
+ 8006b22:	089b      	lsrs	r3, r3, #2
+	while (bit != 0) {
+ 8006b24:	b133      	cbz	r3, 8006b34 <VL53L0X_isqrt+0x26>
+		if (num >= res + bit) {
+ 8006b26:	18c1      	adds	r1, r0, r3
+ 8006b28:	4291      	cmp	r1, r2
+ 8006b2a:	d8f9      	bhi.n	8006b20 <VL53L0X_isqrt+0x12>
+			num -= res + bit;
+ 8006b2c:	1a52      	subs	r2, r2, r1
+			res = (res >> 1) + bit;
+ 8006b2e:	eb03 0050 	add.w	r0, r3, r0, lsr #1
+ 8006b32:	e7f6      	b.n	8006b22 <VL53L0X_isqrt+0x14>
+	}
+
+	return res;
+}
+ 8006b34:	4770      	bx	lr
+
+08006b36 <VL53L0X_device_read_strobe>:
+	return res;
+}
+
+
+VL53L0X_Error VL53L0X_device_read_strobe(VL53L0X_DEV Dev)
+{
+ 8006b36:	b570      	push	{r4, r5, r6, lr}
+ 8006b38:	b082      	sub	sp, #8
+ 8006b3a:	4606      	mov	r6, r0
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t strobe;
+	uint32_t LoopNb;
+	LOG_FUNCTION_START("");
+
+	Status |= VL53L0X_WrByte(Dev, 0x83, 0x00);
+ 8006b3c:	2200      	movs	r2, #0
+ 8006b3e:	2183      	movs	r1, #131	; 0x83
+ 8006b40:	f001 fa8c 	bl	800805c <VL53L0X_WrByte>
+
+	/* polling
+	 * use timeout to avoid deadlock*/
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8006b44:	4604      	mov	r4, r0
+ 8006b46:	b9a0      	cbnz	r0, 8006b72 <VL53L0X_device_read_strobe+0x3c>
+		LoopNb = 0;
+ 8006b48:	2500      	movs	r5, #0
+		do {
+			Status = VL53L0X_RdByte(Dev, 0x83, &strobe);
+ 8006b4a:	f10d 0207 	add.w	r2, sp, #7
+ 8006b4e:	2183      	movs	r1, #131	; 0x83
+ 8006b50:	4630      	mov	r0, r6
+ 8006b52:	f001 faa5 	bl	80080a0 <VL53L0X_RdByte>
+ 8006b56:	4604      	mov	r4, r0
+			if ((strobe != 0x00) || Status != VL53L0X_ERROR_NONE)
+ 8006b58:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8006b5c:	b923      	cbnz	r3, 8006b68 <VL53L0X_device_read_strobe+0x32>
+ 8006b5e:	b918      	cbnz	r0, 8006b68 <VL53L0X_device_read_strobe+0x32>
+					break;
+
+			LoopNb = LoopNb + 1;
+ 8006b60:	3501      	adds	r5, #1
+		} while (LoopNb < VL53L0X_DEFAULT_MAX_LOOP);
+ 8006b62:	f5b5 6ffa 	cmp.w	r5, #2000	; 0x7d0
+ 8006b66:	d3f0      	bcc.n	8006b4a <VL53L0X_device_read_strobe+0x14>
+
+		if (LoopNb >= VL53L0X_DEFAULT_MAX_LOOP)
+ 8006b68:	f5b5 6ffa 	cmp.w	r5, #2000	; 0x7d0
+ 8006b6c:	d301      	bcc.n	8006b72 <VL53L0X_device_read_strobe+0x3c>
+			Status = VL53L0X_ERROR_TIME_OUT;
+ 8006b6e:	f06f 0406 	mvn.w	r4, #6
+
+	}
+
+	Status |= VL53L0X_WrByte(Dev, 0x83, 0x01);
+ 8006b72:	2201      	movs	r2, #1
+ 8006b74:	2183      	movs	r1, #131	; 0x83
+ 8006b76:	4630      	mov	r0, r6
+ 8006b78:	f001 fa70 	bl	800805c <VL53L0X_WrByte>
+ 8006b7c:	4320      	orrs	r0, r4
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+
+}
+ 8006b7e:	b240      	sxtb	r0, r0
+ 8006b80:	b002      	add	sp, #8
+ 8006b82:	bd70      	pop	{r4, r5, r6, pc}
+
+08006b84 <VL53L0X_get_info_from_device>:
+
+VL53L0X_Error VL53L0X_get_info_from_device(VL53L0X_DEV Dev, uint8_t option)
+{
+ 8006b84:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8006b88:	b08d      	sub	sp, #52	; 0x34
+ 8006b8a:	4605      	mov	r5, r0
+ 8006b8c:	460e      	mov	r6, r1
+	uint32_t TmpDWord;
+	uint8_t ModuleId;
+	uint8_t Revision;
+	uint8_t ReferenceSpadCount = 0;
+	uint8_t ReferenceSpadType = 0;
+	uint32_t PartUIDUpper = 0;
+ 8006b8e:	2300      	movs	r3, #0
+ 8006b90:	9308      	str	r3, [sp, #32]
+	uint32_t PartUIDLower = 0;
+ 8006b92:	9307      	str	r3, [sp, #28]
+	int i;
+
+
+	LOG_FUNCTION_START("");
+
+	ReadDataFromDeviceDone = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
+ 8006b94:	f890 70f0 	ldrb.w	r7, [r0, #240]	; 0xf0
+			ReadDataFromDeviceDone);
+
+	/* This access is done only once after that a GetDeviceInfo or
+	 * datainit is done*/
+	if (ReadDataFromDeviceDone != 7) {
+ 8006b98:	2f07      	cmp	r7, #7
+ 8006b9a:	d125      	bne.n	8006be8 <VL53L0X_get_info_from_device+0x64>
+	uint32_t SignalRateMeasFixed1104_400_mm = 0;
+ 8006b9c:	f04f 0800 	mov.w	r8, #0
+	uint32_t DistMeasFixed1104_400_mm = 0;
+ 8006ba0:	46c1      	mov	r9, r8
+	uint8_t ReferenceSpadType = 0;
+ 8006ba2:	46c3      	mov	fp, r8
+	uint8_t ReferenceSpadCount = 0;
+ 8006ba4:	46c2      	mov	sl, r8
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ 8006ba6:	4644      	mov	r4, r8
+
+		Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
+		Status |= VL53L0X_WrByte(Dev, 0x80, 0x00);
+	}
+
+	if ((Status == VL53L0X_ERROR_NONE) &&
+ 8006ba8:	2c00      	cmp	r4, #0
+ 8006baa:	f040 8298 	bne.w	80070de <VL53L0X_get_info_from_device+0x55a>
+ 8006bae:	2f07      	cmp	r7, #7
+ 8006bb0:	f000 8295 	beq.w	80070de <VL53L0X_get_info_from_device+0x55a>
+		(ReadDataFromDeviceDone != 7)) {
+		/* Assign to variable if status is ok */
+		if (((option & 1) == 1) &&
+ 8006bb4:	f016 0f01 	tst.w	r6, #1
+ 8006bb8:	f000 8269 	beq.w	800708e <VL53L0X_get_info_from_device+0x50a>
+ 8006bbc:	f017 0f01 	tst.w	r7, #1
+ 8006bc0:	f040 8265 	bne.w	800708e <VL53L0X_get_info_from_device+0x50a>
+			((ReadDataFromDeviceDone & 1) == 0)) {
+			VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ 8006bc4:	f885 a113 	strb.w	sl, [r5, #275]	; 0x113
+				ReferenceSpadCount, ReferenceSpadCount);
+
+			VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ 8006bc8:	f885 b114 	strb.w	fp, [r5, #276]	; 0x114
+				ReferenceSpadType, ReferenceSpadType);
+
+			for (i = 0; i < VL53L0X_REF_SPAD_BUFFER_SIZE; i++) {
+ 8006bcc:	2300      	movs	r3, #0
+ 8006bce:	2b05      	cmp	r3, #5
+ 8006bd0:	f300 825d 	bgt.w	800708e <VL53L0X_get_info_from_device+0x50a>
+				Dev->Data.SpadData.RefGoodSpadMap[i] =
+					NvmRefGoodSpadMap[i];
+ 8006bd4:	f103 0230 	add.w	r2, r3, #48	; 0x30
+ 8006bd8:	446a      	add	r2, sp
+ 8006bda:	f812 1c30 	ldrb.w	r1, [r2, #-48]
+				Dev->Data.SpadData.RefGoodSpadMap[i] =
+ 8006bde:	18ea      	adds	r2, r5, r3
+ 8006be0:	f882 112a 	strb.w	r1, [r2, #298]	; 0x12a
+			for (i = 0; i < VL53L0X_REF_SPAD_BUFFER_SIZE; i++) {
+ 8006be4:	3301      	adds	r3, #1
+ 8006be6:	e7f2      	b.n	8006bce <VL53L0X_get_info_from_device+0x4a>
+		Status |= VL53L0X_WrByte(Dev, 0x80, 0x01);
+ 8006be8:	2201      	movs	r2, #1
+ 8006bea:	2180      	movs	r1, #128	; 0x80
+ 8006bec:	f001 fa36 	bl	800805c <VL53L0X_WrByte>
+ 8006bf0:	4604      	mov	r4, r0
+		Status |= VL53L0X_WrByte(Dev, 0xFF, 0x01);
+ 8006bf2:	2201      	movs	r2, #1
+ 8006bf4:	21ff      	movs	r1, #255	; 0xff
+ 8006bf6:	4628      	mov	r0, r5
+ 8006bf8:	f001 fa30 	bl	800805c <VL53L0X_WrByte>
+ 8006bfc:	4304      	orrs	r4, r0
+ 8006bfe:	b264      	sxtb	r4, r4
+		Status |= VL53L0X_WrByte(Dev, 0x00, 0x00);
+ 8006c00:	2200      	movs	r2, #0
+ 8006c02:	4611      	mov	r1, r2
+ 8006c04:	4628      	mov	r0, r5
+ 8006c06:	f001 fa29 	bl	800805c <VL53L0X_WrByte>
+ 8006c0a:	4304      	orrs	r4, r0
+ 8006c0c:	b264      	sxtb	r4, r4
+		Status |= VL53L0X_WrByte(Dev, 0xFF, 0x06);
+ 8006c0e:	2206      	movs	r2, #6
+ 8006c10:	21ff      	movs	r1, #255	; 0xff
+ 8006c12:	4628      	mov	r0, r5
+ 8006c14:	f001 fa22 	bl	800805c <VL53L0X_WrByte>
+ 8006c18:	4304      	orrs	r4, r0
+ 8006c1a:	b264      	sxtb	r4, r4
+		Status |= VL53L0X_RdByte(Dev, 0x83, &byte);
+ 8006c1c:	f10d 022f 	add.w	r2, sp, #47	; 0x2f
+ 8006c20:	2183      	movs	r1, #131	; 0x83
+ 8006c22:	4628      	mov	r0, r5
+ 8006c24:	f001 fa3c 	bl	80080a0 <VL53L0X_RdByte>
+ 8006c28:	4304      	orrs	r4, r0
+ 8006c2a:	b264      	sxtb	r4, r4
+		Status |= VL53L0X_WrByte(Dev, 0x83, byte|4);
+ 8006c2c:	f89d 202f 	ldrb.w	r2, [sp, #47]	; 0x2f
+ 8006c30:	f042 0204 	orr.w	r2, r2, #4
+ 8006c34:	2183      	movs	r1, #131	; 0x83
+ 8006c36:	4628      	mov	r0, r5
+ 8006c38:	f001 fa10 	bl	800805c <VL53L0X_WrByte>
+ 8006c3c:	4304      	orrs	r4, r0
+ 8006c3e:	b264      	sxtb	r4, r4
+		Status |= VL53L0X_WrByte(Dev, 0xFF, 0x07);
+ 8006c40:	2207      	movs	r2, #7
+ 8006c42:	21ff      	movs	r1, #255	; 0xff
+ 8006c44:	4628      	mov	r0, r5
+ 8006c46:	f001 fa09 	bl	800805c <VL53L0X_WrByte>
+ 8006c4a:	4304      	orrs	r4, r0
+ 8006c4c:	b264      	sxtb	r4, r4
+		Status |= VL53L0X_WrByte(Dev, 0x81, 0x01);
+ 8006c4e:	2201      	movs	r2, #1
+ 8006c50:	2181      	movs	r1, #129	; 0x81
+ 8006c52:	4628      	mov	r0, r5
+ 8006c54:	f001 fa02 	bl	800805c <VL53L0X_WrByte>
+ 8006c58:	4304      	orrs	r4, r0
+ 8006c5a:	b264      	sxtb	r4, r4
+		Status |= VL53L0X_PollingDelay(Dev);
+ 8006c5c:	4628      	mov	r0, r5
+ 8006c5e:	f001 fa9d 	bl	800819c <VL53L0X_PollingDelay>
+ 8006c62:	4304      	orrs	r4, r0
+ 8006c64:	b264      	sxtb	r4, r4
+		Status |= VL53L0X_WrByte(Dev, 0x80, 0x01);
+ 8006c66:	2201      	movs	r2, #1
+ 8006c68:	2180      	movs	r1, #128	; 0x80
+ 8006c6a:	4628      	mov	r0, r5
+ 8006c6c:	f001 f9f6 	bl	800805c <VL53L0X_WrByte>
+ 8006c70:	4304      	orrs	r4, r0
+ 8006c72:	b264      	sxtb	r4, r4
+		if (((option & 1) == 1) &&
+ 8006c74:	f016 0a01 	ands.w	sl, r6, #1
+ 8006c78:	d05b      	beq.n	8006d32 <VL53L0X_get_info_from_device+0x1ae>
+ 8006c7a:	f017 0f01 	tst.w	r7, #1
+ 8006c7e:	d003      	beq.n	8006c88 <VL53L0X_get_info_from_device+0x104>
+	uint8_t ReferenceSpadType = 0;
+ 8006c80:	f04f 0b00 	mov.w	fp, #0
+	uint8_t ReferenceSpadCount = 0;
+ 8006c84:	46da      	mov	sl, fp
+ 8006c86:	e055      	b.n	8006d34 <VL53L0X_get_info_from_device+0x1b0>
+			Status |= VL53L0X_WrByte(Dev, 0x94, 0x6b);
+ 8006c88:	226b      	movs	r2, #107	; 0x6b
+ 8006c8a:	2194      	movs	r1, #148	; 0x94
+ 8006c8c:	4628      	mov	r0, r5
+ 8006c8e:	f001 f9e5 	bl	800805c <VL53L0X_WrByte>
+ 8006c92:	4304      	orrs	r4, r0
+ 8006c94:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_device_read_strobe(Dev);
+ 8006c96:	4628      	mov	r0, r5
+ 8006c98:	f7ff ff4d 	bl	8006b36 <VL53L0X_device_read_strobe>
+ 8006c9c:	4304      	orrs	r4, r0
+ 8006c9e:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+ 8006ca0:	aa0a      	add	r2, sp, #40	; 0x28
+ 8006ca2:	2190      	movs	r1, #144	; 0x90
+ 8006ca4:	4628      	mov	r0, r5
+ 8006ca6:	f001 fa51 	bl	800814c <VL53L0X_RdDWord>
+ 8006caa:	4304      	orrs	r4, r0
+ 8006cac:	b264      	sxtb	r4, r4
+			ReferenceSpadCount = (uint8_t)((TmpDWord >> 8) & 0x07f);
+ 8006cae:	9b0a      	ldr	r3, [sp, #40]	; 0x28
+ 8006cb0:	f3c3 2a06 	ubfx	sl, r3, #8, #7
+			ReferenceSpadType  = (uint8_t)((TmpDWord >> 15) & 0x01);
+ 8006cb4:	f3c3 3bc0 	ubfx	fp, r3, #15, #1
+			Status |= VL53L0X_WrByte(Dev, 0x94, 0x24);
+ 8006cb8:	2224      	movs	r2, #36	; 0x24
+ 8006cba:	2194      	movs	r1, #148	; 0x94
+ 8006cbc:	4628      	mov	r0, r5
+ 8006cbe:	f001 f9cd 	bl	800805c <VL53L0X_WrByte>
+ 8006cc2:	4304      	orrs	r4, r0
+ 8006cc4:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_device_read_strobe(Dev);
+ 8006cc6:	4628      	mov	r0, r5
+ 8006cc8:	f7ff ff35 	bl	8006b36 <VL53L0X_device_read_strobe>
+ 8006ccc:	4304      	orrs	r4, r0
+ 8006cce:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+ 8006cd0:	aa0a      	add	r2, sp, #40	; 0x28
+ 8006cd2:	2190      	movs	r1, #144	; 0x90
+ 8006cd4:	4628      	mov	r0, r5
+ 8006cd6:	f001 fa39 	bl	800814c <VL53L0X_RdDWord>
+ 8006cda:	4304      	orrs	r4, r0
+ 8006cdc:	b264      	sxtb	r4, r4
+			NvmRefGoodSpadMap[0] = (uint8_t)((TmpDWord >> 24)
+ 8006cde:	9b0a      	ldr	r3, [sp, #40]	; 0x28
+ 8006ce0:	0e1a      	lsrs	r2, r3, #24
+ 8006ce2:	f88d 2000 	strb.w	r2, [sp]
+			NvmRefGoodSpadMap[1] = (uint8_t)((TmpDWord >> 16)
+ 8006ce6:	f3c3 4207 	ubfx	r2, r3, #16, #8
+ 8006cea:	f88d 2001 	strb.w	r2, [sp, #1]
+			NvmRefGoodSpadMap[2] = (uint8_t)((TmpDWord >> 8)
+ 8006cee:	f3c3 2207 	ubfx	r2, r3, #8, #8
+ 8006cf2:	f88d 2002 	strb.w	r2, [sp, #2]
+			NvmRefGoodSpadMap[3] = (uint8_t)(TmpDWord & 0xff);
+ 8006cf6:	f88d 3003 	strb.w	r3, [sp, #3]
+			Status |= VL53L0X_WrByte(Dev, 0x94, 0x25);
+ 8006cfa:	2225      	movs	r2, #37	; 0x25
+ 8006cfc:	2194      	movs	r1, #148	; 0x94
+ 8006cfe:	4628      	mov	r0, r5
+ 8006d00:	f001 f9ac 	bl	800805c <VL53L0X_WrByte>
+ 8006d04:	4304      	orrs	r4, r0
+ 8006d06:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_device_read_strobe(Dev);
+ 8006d08:	4628      	mov	r0, r5
+ 8006d0a:	f7ff ff14 	bl	8006b36 <VL53L0X_device_read_strobe>
+ 8006d0e:	4304      	orrs	r4, r0
+ 8006d10:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+ 8006d12:	aa0a      	add	r2, sp, #40	; 0x28
+ 8006d14:	2190      	movs	r1, #144	; 0x90
+ 8006d16:	4628      	mov	r0, r5
+ 8006d18:	f001 fa18 	bl	800814c <VL53L0X_RdDWord>
+ 8006d1c:	4304      	orrs	r4, r0
+ 8006d1e:	b264      	sxtb	r4, r4
+			NvmRefGoodSpadMap[4] = (uint8_t)((TmpDWord >> 24)
+ 8006d20:	9b0a      	ldr	r3, [sp, #40]	; 0x28
+ 8006d22:	0e1a      	lsrs	r2, r3, #24
+ 8006d24:	f88d 2004 	strb.w	r2, [sp, #4]
+			NvmRefGoodSpadMap[5] = (uint8_t)((TmpDWord >> 16)
+ 8006d28:	f3c3 4307 	ubfx	r3, r3, #16, #8
+ 8006d2c:	f88d 3005 	strb.w	r3, [sp, #5]
+ 8006d30:	e000      	b.n	8006d34 <VL53L0X_get_info_from_device+0x1b0>
+	uint8_t ReferenceSpadType = 0;
+ 8006d32:	46d3      	mov	fp, sl
+		if (((option & 2) == 2) &&
+ 8006d34:	f016 0f02 	tst.w	r6, #2
+ 8006d38:	d002      	beq.n	8006d40 <VL53L0X_get_info_from_device+0x1bc>
+ 8006d3a:	f017 0f02 	tst.w	r7, #2
+ 8006d3e:	d00b      	beq.n	8006d58 <VL53L0X_get_info_from_device+0x1d4>
+		if (((option & 4) == 4) &&
+ 8006d40:	f016 0f04 	tst.w	r6, #4
+ 8006d44:	f000 8163 	beq.w	800700e <VL53L0X_get_info_from_device+0x48a>
+ 8006d48:	f017 0f04 	tst.w	r7, #4
+ 8006d4c:	f000 80dc 	beq.w	8006f08 <VL53L0X_get_info_from_device+0x384>
+	uint32_t SignalRateMeasFixed1104_400_mm = 0;
+ 8006d50:	f04f 0800 	mov.w	r8, #0
+	uint32_t DistMeasFixed1104_400_mm = 0;
+ 8006d54:	46c1      	mov	r9, r8
+ 8006d56:	e15d      	b.n	8007014 <VL53L0X_get_info_from_device+0x490>
+			Status |= VL53L0X_WrByte(Dev, 0x94, 0x02);
+ 8006d58:	2202      	movs	r2, #2
+ 8006d5a:	2194      	movs	r1, #148	; 0x94
+ 8006d5c:	4628      	mov	r0, r5
+ 8006d5e:	f001 f97d 	bl	800805c <VL53L0X_WrByte>
+ 8006d62:	4304      	orrs	r4, r0
+ 8006d64:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_device_read_strobe(Dev);
+ 8006d66:	4628      	mov	r0, r5
+ 8006d68:	f7ff fee5 	bl	8006b36 <VL53L0X_device_read_strobe>
+ 8006d6c:	4304      	orrs	r4, r0
+ 8006d6e:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_RdByte(Dev, 0x90, &ModuleId);
+ 8006d70:	f10d 0227 	add.w	r2, sp, #39	; 0x27
+ 8006d74:	2190      	movs	r1, #144	; 0x90
+ 8006d76:	4628      	mov	r0, r5
+ 8006d78:	f001 f992 	bl	80080a0 <VL53L0X_RdByte>
+ 8006d7c:	4304      	orrs	r4, r0
+ 8006d7e:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_WrByte(Dev, 0x94, 0x7B);
+ 8006d80:	227b      	movs	r2, #123	; 0x7b
+ 8006d82:	2194      	movs	r1, #148	; 0x94
+ 8006d84:	4628      	mov	r0, r5
+ 8006d86:	f001 f969 	bl	800805c <VL53L0X_WrByte>
+ 8006d8a:	4304      	orrs	r4, r0
+ 8006d8c:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_device_read_strobe(Dev);
+ 8006d8e:	4628      	mov	r0, r5
+ 8006d90:	f7ff fed1 	bl	8006b36 <VL53L0X_device_read_strobe>
+ 8006d94:	4304      	orrs	r4, r0
+ 8006d96:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_RdByte(Dev, 0x90, &Revision);
+ 8006d98:	f10d 0226 	add.w	r2, sp, #38	; 0x26
+ 8006d9c:	2190      	movs	r1, #144	; 0x90
+ 8006d9e:	4628      	mov	r0, r5
+ 8006da0:	f001 f97e 	bl	80080a0 <VL53L0X_RdByte>
+ 8006da4:	4304      	orrs	r4, r0
+ 8006da6:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_WrByte(Dev, 0x94, 0x77);
+ 8006da8:	2277      	movs	r2, #119	; 0x77
+ 8006daa:	2194      	movs	r1, #148	; 0x94
+ 8006dac:	4628      	mov	r0, r5
+ 8006dae:	f001 f955 	bl	800805c <VL53L0X_WrByte>
+ 8006db2:	4304      	orrs	r4, r0
+ 8006db4:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_device_read_strobe(Dev);
+ 8006db6:	4628      	mov	r0, r5
+ 8006db8:	f7ff febd 	bl	8006b36 <VL53L0X_device_read_strobe>
+ 8006dbc:	4304      	orrs	r4, r0
+ 8006dbe:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+ 8006dc0:	aa0a      	add	r2, sp, #40	; 0x28
+ 8006dc2:	2190      	movs	r1, #144	; 0x90
+ 8006dc4:	4628      	mov	r0, r5
+ 8006dc6:	f001 f9c1 	bl	800814c <VL53L0X_RdDWord>
+ 8006dca:	4304      	orrs	r4, r0
+ 8006dcc:	b264      	sxtb	r4, r4
+			ProductId[0] = (char)((TmpDWord >> 25) & 0x07f);
+ 8006dce:	9b0a      	ldr	r3, [sp, #40]	; 0x28
+ 8006dd0:	0e5a      	lsrs	r2, r3, #25
+ 8006dd2:	f88d 2008 	strb.w	r2, [sp, #8]
+			ProductId[1] = (char)((TmpDWord >> 18) & 0x07f);
+ 8006dd6:	f3c3 4286 	ubfx	r2, r3, #18, #7
+ 8006dda:	f88d 2009 	strb.w	r2, [sp, #9]
+			ProductId[2] = (char)((TmpDWord >> 11) & 0x07f);
+ 8006dde:	f3c3 22c6 	ubfx	r2, r3, #11, #7
+ 8006de2:	f88d 200a 	strb.w	r2, [sp, #10]
+			ProductId[3] = (char)((TmpDWord >> 4) & 0x07f);
+ 8006de6:	f3c3 1206 	ubfx	r2, r3, #4, #7
+ 8006dea:	f88d 200b 	strb.w	r2, [sp, #11]
+			byte = (uint8_t)((TmpDWord & 0x00f) << 3);
+ 8006dee:	00db      	lsls	r3, r3, #3
+ 8006df0:	f003 0378 	and.w	r3, r3, #120	; 0x78
+ 8006df4:	f88d 302f 	strb.w	r3, [sp, #47]	; 0x2f
+			Status |= VL53L0X_WrByte(Dev, 0x94, 0x78);
+ 8006df8:	2278      	movs	r2, #120	; 0x78
+ 8006dfa:	2194      	movs	r1, #148	; 0x94
+ 8006dfc:	4628      	mov	r0, r5
+ 8006dfe:	f001 f92d 	bl	800805c <VL53L0X_WrByte>
+ 8006e02:	4304      	orrs	r4, r0
+ 8006e04:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_device_read_strobe(Dev);
+ 8006e06:	4628      	mov	r0, r5
+ 8006e08:	f7ff fe95 	bl	8006b36 <VL53L0X_device_read_strobe>
+ 8006e0c:	4304      	orrs	r4, r0
+ 8006e0e:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+ 8006e10:	aa0a      	add	r2, sp, #40	; 0x28
+ 8006e12:	2190      	movs	r1, #144	; 0x90
+ 8006e14:	4628      	mov	r0, r5
+ 8006e16:	f001 f999 	bl	800814c <VL53L0X_RdDWord>
+ 8006e1a:	4304      	orrs	r4, r0
+ 8006e1c:	b264      	sxtb	r4, r4
+					((TmpDWord >> 29) & 0x07f));
+ 8006e1e:	9b0a      	ldr	r3, [sp, #40]	; 0x28
+			ProductId[4] = (char)(byte +
+ 8006e20:	f89d 202f 	ldrb.w	r2, [sp, #47]	; 0x2f
+ 8006e24:	eb02 7253 	add.w	r2, r2, r3, lsr #29
+ 8006e28:	f88d 200c 	strb.w	r2, [sp, #12]
+			ProductId[5] = (char)((TmpDWord >> 22) & 0x07f);
+ 8006e2c:	f3c3 5286 	ubfx	r2, r3, #22, #7
+ 8006e30:	f88d 200d 	strb.w	r2, [sp, #13]
+			ProductId[6] = (char)((TmpDWord >> 15) & 0x07f);
+ 8006e34:	f3c3 32c6 	ubfx	r2, r3, #15, #7
+ 8006e38:	f88d 200e 	strb.w	r2, [sp, #14]
+			ProductId[7] = (char)((TmpDWord >> 8) & 0x07f);
+ 8006e3c:	f3c3 2206 	ubfx	r2, r3, #8, #7
+ 8006e40:	f88d 200f 	strb.w	r2, [sp, #15]
+			ProductId[8] = (char)((TmpDWord >> 1) & 0x07f);
+ 8006e44:	f3c3 0246 	ubfx	r2, r3, #1, #7
+ 8006e48:	f88d 2010 	strb.w	r2, [sp, #16]
+			byte = (uint8_t)((TmpDWord & 0x001) << 6);
+ 8006e4c:	019b      	lsls	r3, r3, #6
+ 8006e4e:	f003 0340 	and.w	r3, r3, #64	; 0x40
+ 8006e52:	f88d 302f 	strb.w	r3, [sp, #47]	; 0x2f
+			Status |= VL53L0X_WrByte(Dev, 0x94, 0x79);
+ 8006e56:	2279      	movs	r2, #121	; 0x79
+ 8006e58:	2194      	movs	r1, #148	; 0x94
+ 8006e5a:	4628      	mov	r0, r5
+ 8006e5c:	f001 f8fe 	bl	800805c <VL53L0X_WrByte>
+ 8006e60:	4304      	orrs	r4, r0
+ 8006e62:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_device_read_strobe(Dev);
+ 8006e64:	4628      	mov	r0, r5
+ 8006e66:	f7ff fe66 	bl	8006b36 <VL53L0X_device_read_strobe>
+ 8006e6a:	4304      	orrs	r4, r0
+ 8006e6c:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+ 8006e6e:	aa0a      	add	r2, sp, #40	; 0x28
+ 8006e70:	2190      	movs	r1, #144	; 0x90
+ 8006e72:	4628      	mov	r0, r5
+ 8006e74:	f001 f96a 	bl	800814c <VL53L0X_RdDWord>
+ 8006e78:	4304      	orrs	r4, r0
+ 8006e7a:	b264      	sxtb	r4, r4
+					((TmpDWord >> 26) & 0x07f));
+ 8006e7c:	9b0a      	ldr	r3, [sp, #40]	; 0x28
+			ProductId[9] = (char)(byte +
+ 8006e7e:	f89d 202f 	ldrb.w	r2, [sp, #47]	; 0x2f
+ 8006e82:	eb02 6293 	add.w	r2, r2, r3, lsr #26
+ 8006e86:	f88d 2011 	strb.w	r2, [sp, #17]
+			ProductId[10] = (char)((TmpDWord >> 19) & 0x07f);
+ 8006e8a:	f3c3 42c6 	ubfx	r2, r3, #19, #7
+ 8006e8e:	f88d 2012 	strb.w	r2, [sp, #18]
+			ProductId[11] = (char)((TmpDWord >> 12) & 0x07f);
+ 8006e92:	f3c3 3206 	ubfx	r2, r3, #12, #7
+ 8006e96:	f88d 2013 	strb.w	r2, [sp, #19]
+			ProductId[12] = (char)((TmpDWord >> 5) & 0x07f);
+ 8006e9a:	f3c3 1246 	ubfx	r2, r3, #5, #7
+ 8006e9e:	f88d 2014 	strb.w	r2, [sp, #20]
+			byte = (uint8_t)((TmpDWord & 0x01f) << 2);
+ 8006ea2:	009b      	lsls	r3, r3, #2
+ 8006ea4:	f003 037c 	and.w	r3, r3, #124	; 0x7c
+ 8006ea8:	f88d 302f 	strb.w	r3, [sp, #47]	; 0x2f
+			Status |= VL53L0X_WrByte(Dev, 0x94, 0x7A);
+ 8006eac:	227a      	movs	r2, #122	; 0x7a
+ 8006eae:	2194      	movs	r1, #148	; 0x94
+ 8006eb0:	4628      	mov	r0, r5
+ 8006eb2:	f001 f8d3 	bl	800805c <VL53L0X_WrByte>
+ 8006eb6:	4304      	orrs	r4, r0
+ 8006eb8:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_device_read_strobe(Dev);
+ 8006eba:	4628      	mov	r0, r5
+ 8006ebc:	f7ff fe3b 	bl	8006b36 <VL53L0X_device_read_strobe>
+ 8006ec0:	4304      	orrs	r4, r0
+ 8006ec2:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+ 8006ec4:	aa0a      	add	r2, sp, #40	; 0x28
+ 8006ec6:	2190      	movs	r1, #144	; 0x90
+ 8006ec8:	4628      	mov	r0, r5
+ 8006eca:	f001 f93f 	bl	800814c <VL53L0X_RdDWord>
+ 8006ece:	4304      	orrs	r4, r0
+ 8006ed0:	b264      	sxtb	r4, r4
+					((TmpDWord >> 30) & 0x07f));
+ 8006ed2:	9b0a      	ldr	r3, [sp, #40]	; 0x28
+			ProductId[13] = (char)(byte +
+ 8006ed4:	f89d 202f 	ldrb.w	r2, [sp, #47]	; 0x2f
+ 8006ed8:	eb02 7293 	add.w	r2, r2, r3, lsr #30
+ 8006edc:	f88d 2015 	strb.w	r2, [sp, #21]
+			ProductId[14] = (char)((TmpDWord >> 23) & 0x07f);
+ 8006ee0:	f3c3 52c6 	ubfx	r2, r3, #23, #7
+ 8006ee4:	f88d 2016 	strb.w	r2, [sp, #22]
+			ProductId[15] = (char)((TmpDWord >> 16) & 0x07f);
+ 8006ee8:	f3c3 4206 	ubfx	r2, r3, #16, #7
+ 8006eec:	f88d 2017 	strb.w	r2, [sp, #23]
+			ProductId[16] = (char)((TmpDWord >> 9) & 0x07f);
+ 8006ef0:	f3c3 2246 	ubfx	r2, r3, #9, #7
+ 8006ef4:	f88d 2018 	strb.w	r2, [sp, #24]
+			ProductId[17] = (char)((TmpDWord >> 2) & 0x07f);
+ 8006ef8:	f3c3 0386 	ubfx	r3, r3, #2, #7
+ 8006efc:	f88d 3019 	strb.w	r3, [sp, #25]
+			ProductId[18] = '\0';
+ 8006f00:	2300      	movs	r3, #0
+ 8006f02:	f88d 301a 	strb.w	r3, [sp, #26]
+ 8006f06:	e71b      	b.n	8006d40 <VL53L0X_get_info_from_device+0x1bc>
+			Status |= VL53L0X_WrByte(Dev, 0x94, 0x7B);
+ 8006f08:	227b      	movs	r2, #123	; 0x7b
+ 8006f0a:	2194      	movs	r1, #148	; 0x94
+ 8006f0c:	4628      	mov	r0, r5
+ 8006f0e:	f001 f8a5 	bl	800805c <VL53L0X_WrByte>
+ 8006f12:	4304      	orrs	r4, r0
+ 8006f14:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_device_read_strobe(Dev);
+ 8006f16:	4628      	mov	r0, r5
+ 8006f18:	f7ff fe0d 	bl	8006b36 <VL53L0X_device_read_strobe>
+ 8006f1c:	4304      	orrs	r4, r0
+ 8006f1e:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_RdDWord(Dev, 0x90, &PartUIDUpper);
+ 8006f20:	aa08      	add	r2, sp, #32
+ 8006f22:	2190      	movs	r1, #144	; 0x90
+ 8006f24:	4628      	mov	r0, r5
+ 8006f26:	f001 f911 	bl	800814c <VL53L0X_RdDWord>
+ 8006f2a:	4304      	orrs	r4, r0
+ 8006f2c:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_WrByte(Dev, 0x94, 0x7C);
+ 8006f2e:	227c      	movs	r2, #124	; 0x7c
+ 8006f30:	2194      	movs	r1, #148	; 0x94
+ 8006f32:	4628      	mov	r0, r5
+ 8006f34:	f001 f892 	bl	800805c <VL53L0X_WrByte>
+ 8006f38:	4304      	orrs	r4, r0
+ 8006f3a:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_device_read_strobe(Dev);
+ 8006f3c:	4628      	mov	r0, r5
+ 8006f3e:	f7ff fdfa 	bl	8006b36 <VL53L0X_device_read_strobe>
+ 8006f42:	4304      	orrs	r4, r0
+ 8006f44:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_RdDWord(Dev, 0x90, &PartUIDLower);
+ 8006f46:	aa07      	add	r2, sp, #28
+ 8006f48:	2190      	movs	r1, #144	; 0x90
+ 8006f4a:	4628      	mov	r0, r5
+ 8006f4c:	f001 f8fe 	bl	800814c <VL53L0X_RdDWord>
+ 8006f50:	4304      	orrs	r4, r0
+ 8006f52:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_WrByte(Dev, 0x94, 0x73);
+ 8006f54:	2273      	movs	r2, #115	; 0x73
+ 8006f56:	2194      	movs	r1, #148	; 0x94
+ 8006f58:	4628      	mov	r0, r5
+ 8006f5a:	f001 f87f 	bl	800805c <VL53L0X_WrByte>
+ 8006f5e:	4304      	orrs	r4, r0
+ 8006f60:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_device_read_strobe(Dev);
+ 8006f62:	4628      	mov	r0, r5
+ 8006f64:	f7ff fde7 	bl	8006b36 <VL53L0X_device_read_strobe>
+ 8006f68:	4304      	orrs	r4, r0
+ 8006f6a:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+ 8006f6c:	aa0a      	add	r2, sp, #40	; 0x28
+ 8006f6e:	2190      	movs	r1, #144	; 0x90
+ 8006f70:	4628      	mov	r0, r5
+ 8006f72:	f001 f8eb 	bl	800814c <VL53L0X_RdDWord>
+ 8006f76:	4304      	orrs	r4, r0
+ 8006f78:	b264      	sxtb	r4, r4
+				0x0000000ff) << 8;
+ 8006f7a:	9b0a      	ldr	r3, [sp, #40]	; 0x28
+ 8006f7c:	021b      	lsls	r3, r3, #8
+			SignalRateMeasFixed1104_400_mm = (TmpDWord &
+ 8006f7e:	fa1f f983 	uxth.w	r9, r3
+			Status |= VL53L0X_WrByte(Dev, 0x94, 0x74);
+ 8006f82:	2274      	movs	r2, #116	; 0x74
+ 8006f84:	2194      	movs	r1, #148	; 0x94
+ 8006f86:	4628      	mov	r0, r5
+ 8006f88:	f001 f868 	bl	800805c <VL53L0X_WrByte>
+ 8006f8c:	4304      	orrs	r4, r0
+ 8006f8e:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_device_read_strobe(Dev);
+ 8006f90:	4628      	mov	r0, r5
+ 8006f92:	f7ff fdd0 	bl	8006b36 <VL53L0X_device_read_strobe>
+ 8006f96:	4304      	orrs	r4, r0
+ 8006f98:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+ 8006f9a:	aa0a      	add	r2, sp, #40	; 0x28
+ 8006f9c:	2190      	movs	r1, #144	; 0x90
+ 8006f9e:	4628      	mov	r0, r5
+ 8006fa0:	f001 f8d4 	bl	800814c <VL53L0X_RdDWord>
+ 8006fa4:	4304      	orrs	r4, r0
+ 8006fa6:	b264      	sxtb	r4, r4
+				0xff000000) >> 24);
+ 8006fa8:	f89d 802b 	ldrb.w	r8, [sp, #43]	; 0x2b
+			SignalRateMeasFixed1104_400_mm |= ((TmpDWord &
+ 8006fac:	ea48 0809 	orr.w	r8, r8, r9
+			Status |= VL53L0X_WrByte(Dev, 0x94, 0x75);
+ 8006fb0:	2275      	movs	r2, #117	; 0x75
+ 8006fb2:	2194      	movs	r1, #148	; 0x94
+ 8006fb4:	4628      	mov	r0, r5
+ 8006fb6:	f001 f851 	bl	800805c <VL53L0X_WrByte>
+ 8006fba:	4304      	orrs	r4, r0
+ 8006fbc:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_device_read_strobe(Dev);
+ 8006fbe:	4628      	mov	r0, r5
+ 8006fc0:	f7ff fdb9 	bl	8006b36 <VL53L0X_device_read_strobe>
+ 8006fc4:	4304      	orrs	r4, r0
+ 8006fc6:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+ 8006fc8:	aa0a      	add	r2, sp, #40	; 0x28
+ 8006fca:	2190      	movs	r1, #144	; 0x90
+ 8006fcc:	4628      	mov	r0, r5
+ 8006fce:	f001 f8bd 	bl	800814c <VL53L0X_RdDWord>
+ 8006fd2:	4304      	orrs	r4, r0
+ 8006fd4:	b264      	sxtb	r4, r4
+							<< 8;
+ 8006fd6:	9b0a      	ldr	r3, [sp, #40]	; 0x28
+ 8006fd8:	021b      	lsls	r3, r3, #8
+			DistMeasFixed1104_400_mm = (TmpDWord & 0x0000000ff)
+ 8006fda:	fa1f f983 	uxth.w	r9, r3
+			Status |= VL53L0X_WrByte(Dev, 0x94, 0x76);
+ 8006fde:	2276      	movs	r2, #118	; 0x76
+ 8006fe0:	2194      	movs	r1, #148	; 0x94
+ 8006fe2:	4628      	mov	r0, r5
+ 8006fe4:	f001 f83a 	bl	800805c <VL53L0X_WrByte>
+ 8006fe8:	4304      	orrs	r4, r0
+ 8006fea:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_device_read_strobe(Dev);
+ 8006fec:	4628      	mov	r0, r5
+ 8006fee:	f7ff fda2 	bl	8006b36 <VL53L0X_device_read_strobe>
+ 8006ff2:	4304      	orrs	r4, r0
+ 8006ff4:	b264      	sxtb	r4, r4
+			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+ 8006ff6:	aa0a      	add	r2, sp, #40	; 0x28
+ 8006ff8:	2190      	movs	r1, #144	; 0x90
+ 8006ffa:	4628      	mov	r0, r5
+ 8006ffc:	f001 f8a6 	bl	800814c <VL53L0X_RdDWord>
+ 8007000:	4304      	orrs	r4, r0
+ 8007002:	b264      	sxtb	r4, r4
+							>> 24);
+ 8007004:	f89d 302b 	ldrb.w	r3, [sp, #43]	; 0x2b
+			DistMeasFixed1104_400_mm |= ((TmpDWord & 0xff000000)
+ 8007008:	ea43 0909 	orr.w	r9, r3, r9
+ 800700c:	e002      	b.n	8007014 <VL53L0X_get_info_from_device+0x490>
+	uint32_t SignalRateMeasFixed1104_400_mm = 0;
+ 800700e:	f04f 0800 	mov.w	r8, #0
+	uint32_t DistMeasFixed1104_400_mm = 0;
+ 8007012:	46c1      	mov	r9, r8
+		Status |= VL53L0X_WrByte(Dev, 0x81, 0x00);
+ 8007014:	2200      	movs	r2, #0
+ 8007016:	2181      	movs	r1, #129	; 0x81
+ 8007018:	4628      	mov	r0, r5
+ 800701a:	f001 f81f 	bl	800805c <VL53L0X_WrByte>
+ 800701e:	4304      	orrs	r4, r0
+ 8007020:	b264      	sxtb	r4, r4
+		Status |= VL53L0X_WrByte(Dev, 0xFF, 0x06);
+ 8007022:	2206      	movs	r2, #6
+ 8007024:	21ff      	movs	r1, #255	; 0xff
+ 8007026:	4628      	mov	r0, r5
+ 8007028:	f001 f818 	bl	800805c <VL53L0X_WrByte>
+ 800702c:	4304      	orrs	r4, r0
+ 800702e:	b264      	sxtb	r4, r4
+		Status |= VL53L0X_RdByte(Dev, 0x83, &byte);
+ 8007030:	f10d 022f 	add.w	r2, sp, #47	; 0x2f
+ 8007034:	2183      	movs	r1, #131	; 0x83
+ 8007036:	4628      	mov	r0, r5
+ 8007038:	f001 f832 	bl	80080a0 <VL53L0X_RdByte>
+ 800703c:	4304      	orrs	r4, r0
+ 800703e:	b264      	sxtb	r4, r4
+		Status |= VL53L0X_WrByte(Dev, 0x83, byte&0xfb);
+ 8007040:	f89d 202f 	ldrb.w	r2, [sp, #47]	; 0x2f
+ 8007044:	f002 02fb 	and.w	r2, r2, #251	; 0xfb
+ 8007048:	2183      	movs	r1, #131	; 0x83
+ 800704a:	4628      	mov	r0, r5
+ 800704c:	f001 f806 	bl	800805c <VL53L0X_WrByte>
+ 8007050:	4304      	orrs	r4, r0
+ 8007052:	b264      	sxtb	r4, r4
+		Status |= VL53L0X_WrByte(Dev, 0xFF, 0x01);
+ 8007054:	2201      	movs	r2, #1
+ 8007056:	21ff      	movs	r1, #255	; 0xff
+ 8007058:	4628      	mov	r0, r5
+ 800705a:	f000 ffff 	bl	800805c <VL53L0X_WrByte>
+ 800705e:	4304      	orrs	r4, r0
+ 8007060:	b264      	sxtb	r4, r4
+		Status |= VL53L0X_WrByte(Dev, 0x00, 0x01);
+ 8007062:	2201      	movs	r2, #1
+ 8007064:	2100      	movs	r1, #0
+ 8007066:	4628      	mov	r0, r5
+ 8007068:	f000 fff8 	bl	800805c <VL53L0X_WrByte>
+ 800706c:	4304      	orrs	r4, r0
+ 800706e:	b264      	sxtb	r4, r4
+		Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
+ 8007070:	2200      	movs	r2, #0
+ 8007072:	21ff      	movs	r1, #255	; 0xff
+ 8007074:	4628      	mov	r0, r5
+ 8007076:	f000 fff1 	bl	800805c <VL53L0X_WrByte>
+ 800707a:	4304      	orrs	r4, r0
+ 800707c:	b264      	sxtb	r4, r4
+		Status |= VL53L0X_WrByte(Dev, 0x80, 0x00);
+ 800707e:	2200      	movs	r2, #0
+ 8007080:	2180      	movs	r1, #128	; 0x80
+ 8007082:	4628      	mov	r0, r5
+ 8007084:	f000 ffea 	bl	800805c <VL53L0X_WrByte>
+ 8007088:	4304      	orrs	r4, r0
+ 800708a:	b264      	sxtb	r4, r4
+ 800708c:	e58c      	b.n	8006ba8 <VL53L0X_get_info_from_device+0x24>
+			}
+		}
+
+		if (((option & 2) == 2) &&
+ 800708e:	f016 0f02 	tst.w	r6, #2
+ 8007092:	d002      	beq.n	800709a <VL53L0X_get_info_from_device+0x516>
+ 8007094:	f017 0f02 	tst.w	r7, #2
+ 8007098:	d025      	beq.n	80070e6 <VL53L0X_get_info_from_device+0x562>
+					ProductId);
+			VL53L0X_COPYSTRING(ProductId_tmp, ProductId);
+
+		}
+
+		if (((option & 4) == 4) &&
+ 800709a:	f016 0f04 	tst.w	r6, #4
+ 800709e:	d019      	beq.n	80070d4 <VL53L0X_get_info_from_device+0x550>
+ 80070a0:	f017 0f04 	tst.w	r7, #4
+ 80070a4:	d116      	bne.n	80070d4 <VL53L0X_get_info_from_device+0x550>
+			((ReadDataFromDeviceDone & 4) == 0)) {
+			VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ 80070a6:	9b08      	ldr	r3, [sp, #32]
+ 80070a8:	f8c5 3118 	str.w	r3, [r5, #280]	; 0x118
+						PartUIDUpper, PartUIDUpper);
+
+			VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ 80070ac:	9b07      	ldr	r3, [sp, #28]
+ 80070ae:	f8c5 311c 	str.w	r3, [r5, #284]	; 0x11c
+						PartUIDLower, PartUIDLower);
+
+			SignalRateMeasFixed400mmFix =
+ 80070b2:	ea4f 2348 	mov.w	r3, r8, lsl #9
+				VL53L0X_FIXPOINT97TOFIXPOINT1616(
+					SignalRateMeasFixed1104_400_mm);
+
+			VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ 80070b6:	f8c5 3120 	str.w	r3, [r5, #288]	; 0x120
+				SignalRateMeasFixed400mm,
+				SignalRateMeasFixed400mmFix);
+
+			OffsetMicroMeters = 0;
+			if (DistMeasFixed1104_400_mm != 0) {
+ 80070ba:	f1b9 0f00 	cmp.w	r9, #0
+ 80070be:	d020      	beq.n	8007102 <VL53L0X_get_info_from_device+0x57e>
+					OffsetFixed1104_mm =
+ 80070c0:	f5a9 53c8 	sub.w	r3, r9, #6400	; 0x1900
+						DistMeasFixed1104_400_mm -
+						DistMeasTgtFixed1104_mm;
+					OffsetMicroMeters = (OffsetFixed1104_mm
+						* 1000) >> 4;
+ 80070c4:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
+ 80070c8:	fb02 f303 	mul.w	r3, r2, r3
+ 80070cc:	091b      	lsrs	r3, r3, #4
+					OffsetMicroMeters *= -1;
+ 80070ce:	425b      	negs	r3, r3
+ 80070d0:	b21b      	sxth	r3, r3
+			}
+
+			PALDevDataSet(Dev,
+ 80070d2:	60eb      	str	r3, [r5, #12]
+				Part2PartOffsetAdjustmentNVMMicroMeter,
+				OffsetMicroMeters);
+		}
+		byte = (uint8_t)(ReadDataFromDeviceDone|option);
+ 80070d4:	4337      	orrs	r7, r6
+ 80070d6:	f88d 702f 	strb.w	r7, [sp, #47]	; 0x2f
+		VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, ReadDataFromDeviceDone,
+ 80070da:	f885 70f0 	strb.w	r7, [r5, #240]	; 0xf0
+				byte);
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+ 80070de:	4620      	mov	r0, r4
+ 80070e0:	b00d      	add	sp, #52	; 0x34
+ 80070e2:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+			VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ 80070e6:	f89d 3027 	ldrb.w	r3, [sp, #39]	; 0x27
+ 80070ea:	f885 30f1 	strb.w	r3, [r5, #241]	; 0xf1
+			VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ 80070ee:	f89d 3026 	ldrb.w	r3, [sp, #38]	; 0x26
+ 80070f2:	f885 30f2 	strb.w	r3, [r5, #242]	; 0xf2
+			VL53L0X_COPYSTRING(ProductId_tmp, ProductId);
+ 80070f6:	a902      	add	r1, sp, #8
+ 80070f8:	f105 00f3 	add.w	r0, r5, #243	; 0xf3
+ 80070fc:	f010 fb0c 	bl	8017718 <strcpy>
+ 8007100:	e7cb      	b.n	800709a <VL53L0X_get_info_from_device+0x516>
+			OffsetMicroMeters = 0;
+ 8007102:	2300      	movs	r3, #0
+ 8007104:	e7e5      	b.n	80070d2 <VL53L0X_get_info_from_device+0x54e>
+	...
+
+08007108 <VL53L0X_calc_macro_period_ps>:
+	macro_period_ps = (uint32_t)(macro_period_vclks
+			* vcsel_period_pclks * PLL_period_ps);
+
+	LOG_FUNCTION_END("");
+	return macro_period_ps;
+}
+ 8007108:	4801      	ldr	r0, [pc, #4]	; (8007110 <VL53L0X_calc_macro_period_ps+0x8>)
+ 800710a:	fb01 f000 	mul.w	r0, r1, r0
+ 800710e:	4770      	bx	lr
+ 8007110:	003a2f00 	.word	0x003a2f00
+
+08007114 <VL53L0X_encode_timeout>:
+
+	uint16_t encoded_timeout = 0;
+	uint32_t ls_byte = 0;
+	uint16_t ms_byte = 0;
+
+	if (timeout_macro_clks > 0) {
+ 8007114:	b170      	cbz	r0, 8007134 <VL53L0X_encode_timeout+0x20>
+		ls_byte = timeout_macro_clks - 1;
+ 8007116:	3801      	subs	r0, #1
+	uint16_t ms_byte = 0;
+ 8007118:	2300      	movs	r3, #0
+
+		while ((ls_byte & 0xFFFFFF00) > 0) {
+ 800711a:	e002      	b.n	8007122 <VL53L0X_encode_timeout+0xe>
+			ls_byte = ls_byte >> 1;
+ 800711c:	0840      	lsrs	r0, r0, #1
+			ms_byte++;
+ 800711e:	3301      	adds	r3, #1
+ 8007120:	b29b      	uxth	r3, r3
+		while ((ls_byte & 0xFFFFFF00) > 0) {
+ 8007122:	f030 02ff 	bics.w	r2, r0, #255	; 0xff
+ 8007126:	d1f9      	bne.n	800711c <VL53L0X_encode_timeout+0x8>
+		}
+
+		encoded_timeout = (ms_byte << 8)
+ 8007128:	021b      	lsls	r3, r3, #8
+ 800712a:	b29b      	uxth	r3, r3
+ 800712c:	fa53 f080 	uxtab	r0, r3, r0
+ 8007130:	b280      	uxth	r0, r0
+ 8007132:	4770      	bx	lr
+	uint16_t encoded_timeout = 0;
+ 8007134:	2000      	movs	r0, #0
+				+ (uint16_t) (ls_byte & 0x000000FF);
+	}
+
+	return encoded_timeout;
+
+}
+ 8007136:	4770      	bx	lr
+
+08007138 <VL53L0X_decode_timeout>:
+	 * Decode 16-bit timeout register value - format (LSByte * 2^MSByte) + 1
+	 */
+
+	uint32_t timeout_macro_clks = 0;
+
+	timeout_macro_clks = ((uint32_t) (encoded_timeout & 0x00FF)
+ 8007138:	b2c3      	uxtb	r3, r0
+			<< (uint32_t) ((encoded_timeout & 0xFF00) >> 8)) + 1;
+ 800713a:	0a00      	lsrs	r0, r0, #8
+ 800713c:	fa03 f000 	lsl.w	r0, r3, r0
+
+	return timeout_macro_clks;
+}
+ 8007140:	3001      	adds	r0, #1
+ 8007142:	4770      	bx	lr
+
+08007144 <VL53L0X_calc_timeout_mclks>:
+
+/* To convert ms into register value */
+uint32_t VL53L0X_calc_timeout_mclks(VL53L0X_DEV Dev,
+		uint32_t timeout_period_us,
+		uint8_t vcsel_period_pclks)
+{
+ 8007144:	b510      	push	{r4, lr}
+ 8007146:	460c      	mov	r4, r1
+	uint32_t macro_period_ps;
+	uint32_t macro_period_ns;
+	uint32_t timeout_period_mclks = 0;
+
+	macro_period_ps = VL53L0X_calc_macro_period_ps(Dev, vcsel_period_pclks);
+ 8007148:	4611      	mov	r1, r2
+ 800714a:	f7ff ffdd 	bl	8007108 <VL53L0X_calc_macro_period_ps>
+	macro_period_ns = (macro_period_ps + 500) / 1000;
+ 800714e:	f500 73fa 	add.w	r3, r0, #500	; 0x1f4
+ 8007152:	4a06      	ldr	r2, [pc, #24]	; (800716c <VL53L0X_calc_timeout_mclks+0x28>)
+ 8007154:	fba2 2303 	umull	r2, r3, r2, r3
+ 8007158:	0998      	lsrs	r0, r3, #6
+
+	timeout_period_mclks =
+		(uint32_t) (((timeout_period_us * 1000)
+		+ (macro_period_ns / 2)) / macro_period_ns);
+ 800715a:	09db      	lsrs	r3, r3, #7
+ 800715c:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
+ 8007160:	fb02 3304 	mla	r3, r2, r4, r3
+
+    return timeout_period_mclks;
+}
+ 8007164:	fbb3 f0f0 	udiv	r0, r3, r0
+ 8007168:	bd10      	pop	{r4, pc}
+ 800716a:	bf00      	nop
+ 800716c:	10624dd3 	.word	0x10624dd3
+
+08007170 <VL53L0X_calc_timeout_us>:
+
+/* To convert register value into us */
+uint32_t VL53L0X_calc_timeout_us(VL53L0X_DEV Dev,
+		uint16_t timeout_period_mclks,
+		uint8_t vcsel_period_pclks)
+{
+ 8007170:	b510      	push	{r4, lr}
+ 8007172:	460c      	mov	r4, r1
+	uint32_t macro_period_ps;
+	uint32_t macro_period_ns;
+	uint32_t actual_timeout_period_us = 0;
+
+	macro_period_ps = VL53L0X_calc_macro_period_ps(Dev, vcsel_period_pclks);
+ 8007174:	4611      	mov	r1, r2
+ 8007176:	f7ff ffc7 	bl	8007108 <VL53L0X_calc_macro_period_ps>
+	macro_period_ns = (macro_period_ps + 500) / 1000;
+ 800717a:	f500 70fa 	add.w	r0, r0, #500	; 0x1f4
+ 800717e:	4b06      	ldr	r3, [pc, #24]	; (8007198 <VL53L0X_calc_timeout_us+0x28>)
+ 8007180:	fba3 2000 	umull	r2, r0, r3, r0
+ 8007184:	0980      	lsrs	r0, r0, #6
+
+	actual_timeout_period_us =
+		((timeout_period_mclks * macro_period_ns) + 500) / 1000;
+ 8007186:	fb04 f000 	mul.w	r0, r4, r0
+ 800718a:	f500 70fa 	add.w	r0, r0, #500	; 0x1f4
+	actual_timeout_period_us =
+ 800718e:	fba3 3000 	umull	r3, r0, r3, r0
+
+	return actual_timeout_period_us;
+}
+ 8007192:	0980      	lsrs	r0, r0, #6
+ 8007194:	bd10      	pop	{r4, pc}
+ 8007196:	bf00      	nop
+ 8007198:	10624dd3 	.word	0x10624dd3
+
+0800719c <get_sequence_step_timeout>:
+
+
+VL53L0X_Error get_sequence_step_timeout(VL53L0X_DEV Dev,
+				VL53L0X_SequenceStepId SequenceStepId,
+				uint32_t *pTimeOutMicroSecs)
+{
+ 800719c:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 800719e:	b085      	sub	sp, #20
+ 80071a0:	4604      	mov	r4, r0
+ 80071a2:	4615      	mov	r5, r2
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t CurrentVCSELPulsePeriodPClk;
+	uint8_t EncodedTimeOutByte = 0;
+ 80071a4:	2300      	movs	r3, #0
+ 80071a6:	f88d 300e 	strb.w	r3, [sp, #14]
+	uint32_t TimeoutMicroSeconds = 0;
+	uint16_t PreRangeEncodedTimeOut = 0;
+ 80071aa:	f8ad 300c 	strh.w	r3, [sp, #12]
+	uint16_t PreRangeTimeOutMClks;
+	uint16_t FinalRangeTimeOutMClks = 0;
+	uint16_t FinalRangeEncodedTimeOut;
+	VL53L0X_SchedulerSequenceSteps_t SchedulerSequenceSteps;
+
+	if ((SequenceStepId == VL53L0X_SEQUENCESTEP_TCC)	 ||
+ 80071ae:	2902      	cmp	r1, #2
+ 80071b0:	d909      	bls.n	80071c6 <get_sequence_step_timeout+0x2a>
+		MsrcTimeOutMClks = VL53L0X_decode_timeout(EncodedTimeOutByte);
+
+		TimeoutMicroSeconds = VL53L0X_calc_timeout_us(Dev,
+						MsrcTimeOutMClks,
+						CurrentVCSELPulsePeriodPClk);
+	} else if (SequenceStepId == VL53L0X_SEQUENCESTEP_PRE_RANGE) {
+ 80071b2:	2903      	cmp	r1, #3
+ 80071b4:	d021      	beq.n	80071fa <get_sequence_step_timeout+0x5e>
+
+			TimeoutMicroSeconds = VL53L0X_calc_timeout_us(Dev,
+					PreRangeTimeOutMClks,
+					CurrentVCSELPulsePeriodPClk);
+		}
+	} else if (SequenceStepId == VL53L0X_SEQUENCESTEP_FINAL_RANGE) {
+ 80071b6:	2904      	cmp	r1, #4
+ 80071b8:	d042      	beq.n	8007240 <get_sequence_step_timeout+0xa4>
+	uint32_t TimeoutMicroSeconds = 0;
+ 80071ba:	2000      	movs	r0, #0
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ 80071bc:	4606      	mov	r6, r0
+		TimeoutMicroSeconds = VL53L0X_calc_timeout_us(Dev,
+						FinalRangeTimeOutMClks,
+						CurrentVCSELPulsePeriodPClk);
+	}
+
+	*pTimeOutMicroSecs = TimeoutMicroSeconds;
+ 80071be:	6028      	str	r0, [r5, #0]
+
+	return Status;
+}
+ 80071c0:	4630      	mov	r0, r6
+ 80071c2:	b005      	add	sp, #20
+ 80071c4:	bdf0      	pop	{r4, r5, r6, r7, pc}
+		Status = VL53L0X_GetVcselPulsePeriod(Dev,
+ 80071c6:	f10d 020f 	add.w	r2, sp, #15
+ 80071ca:	4619      	mov	r1, r3
+ 80071cc:	f7fe f98e 	bl	80054ec <VL53L0X_GetVcselPulsePeriod>
+		if (Status == VL53L0X_ERROR_NONE) {
+ 80071d0:	4606      	mov	r6, r0
+ 80071d2:	b150      	cbz	r0, 80071ea <get_sequence_step_timeout+0x4e>
+		MsrcTimeOutMClks = VL53L0X_decode_timeout(EncodedTimeOutByte);
+ 80071d4:	f89d 000e 	ldrb.w	r0, [sp, #14]
+ 80071d8:	f7ff ffae 	bl	8007138 <VL53L0X_decode_timeout>
+		TimeoutMicroSeconds = VL53L0X_calc_timeout_us(Dev,
+ 80071dc:	f89d 200f 	ldrb.w	r2, [sp, #15]
+ 80071e0:	b281      	uxth	r1, r0
+ 80071e2:	4620      	mov	r0, r4
+ 80071e4:	f7ff ffc4 	bl	8007170 <VL53L0X_calc_timeout_us>
+ 80071e8:	e7e9      	b.n	80071be <get_sequence_step_timeout+0x22>
+			Status = VL53L0X_RdByte(Dev,
+ 80071ea:	f10d 020e 	add.w	r2, sp, #14
+ 80071ee:	2146      	movs	r1, #70	; 0x46
+ 80071f0:	4620      	mov	r0, r4
+ 80071f2:	f000 ff55 	bl	80080a0 <VL53L0X_RdByte>
+ 80071f6:	4606      	mov	r6, r0
+ 80071f8:	e7ec      	b.n	80071d4 <get_sequence_step_timeout+0x38>
+		Status = VL53L0X_GetVcselPulsePeriod(Dev,
+ 80071fa:	f10d 020f 	add.w	r2, sp, #15
+ 80071fe:	2100      	movs	r1, #0
+ 8007200:	f7fe f974 	bl	80054ec <VL53L0X_GetVcselPulsePeriod>
+		if (Status == VL53L0X_ERROR_NONE) {
+ 8007204:	4606      	mov	r6, r0
+ 8007206:	b108      	cbz	r0, 800720c <get_sequence_step_timeout+0x70>
+	uint32_t TimeoutMicroSeconds = 0;
+ 8007208:	2000      	movs	r0, #0
+ 800720a:	e7d8      	b.n	80071be <get_sequence_step_timeout+0x22>
+			Status = VL53L0X_GetVcselPulsePeriod(Dev,
+ 800720c:	f10d 020f 	add.w	r2, sp, #15
+ 8007210:	2100      	movs	r1, #0
+ 8007212:	4620      	mov	r0, r4
+ 8007214:	f7fe f96a 	bl	80054ec <VL53L0X_GetVcselPulsePeriod>
+			if (Status == VL53L0X_ERROR_NONE) {
+ 8007218:	4606      	mov	r6, r0
+ 800721a:	b150      	cbz	r0, 8007232 <get_sequence_step_timeout+0x96>
+			PreRangeTimeOutMClks = VL53L0X_decode_timeout(
+ 800721c:	f8bd 000c 	ldrh.w	r0, [sp, #12]
+ 8007220:	f7ff ff8a 	bl	8007138 <VL53L0X_decode_timeout>
+			TimeoutMicroSeconds = VL53L0X_calc_timeout_us(Dev,
+ 8007224:	f89d 200f 	ldrb.w	r2, [sp, #15]
+ 8007228:	b281      	uxth	r1, r0
+ 800722a:	4620      	mov	r0, r4
+ 800722c:	f7ff ffa0 	bl	8007170 <VL53L0X_calc_timeout_us>
+ 8007230:	e7c5      	b.n	80071be <get_sequence_step_timeout+0x22>
+				Status = VL53L0X_RdWord(Dev,
+ 8007232:	aa03      	add	r2, sp, #12
+ 8007234:	2151      	movs	r1, #81	; 0x51
+ 8007236:	4620      	mov	r0, r4
+ 8007238:	f000 ff66 	bl	8008108 <VL53L0X_RdWord>
+ 800723c:	4606      	mov	r6, r0
+ 800723e:	e7ed      	b.n	800721c <get_sequence_step_timeout+0x80>
+		VL53L0X_GetSequenceStepEnables(Dev, &SchedulerSequenceSteps);
+ 8007240:	a901      	add	r1, sp, #4
+ 8007242:	f7fe f9d9 	bl	80055f8 <VL53L0X_GetSequenceStepEnables>
+		if (SchedulerSequenceSteps.PreRangeOn) {
+ 8007246:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 800724a:	b1b3      	cbz	r3, 800727a <get_sequence_step_timeout+0xde>
+			Status = VL53L0X_GetVcselPulsePeriod(Dev,
+ 800724c:	f10d 020f 	add.w	r2, sp, #15
+ 8007250:	2100      	movs	r1, #0
+ 8007252:	4620      	mov	r0, r4
+ 8007254:	f7fe f94a 	bl	80054ec <VL53L0X_GetVcselPulsePeriod>
+			if (Status == VL53L0X_ERROR_NONE) {
+ 8007258:	4606      	mov	r6, r0
+ 800725a:	b110      	cbz	r0, 8007262 <get_sequence_step_timeout+0xc6>
+		PreRangeTimeOutMClks = 0;
+ 800725c:	2700      	movs	r7, #0
+		if (Status == VL53L0X_ERROR_NONE) {
+ 800725e:	b9a6      	cbnz	r6, 800728a <get_sequence_step_timeout+0xee>
+ 8007260:	e00c      	b.n	800727c <get_sequence_step_timeout+0xe0>
+				Status = VL53L0X_RdWord(Dev,
+ 8007262:	aa03      	add	r2, sp, #12
+ 8007264:	2151      	movs	r1, #81	; 0x51
+ 8007266:	4620      	mov	r0, r4
+ 8007268:	f000 ff4e 	bl	8008108 <VL53L0X_RdWord>
+ 800726c:	4606      	mov	r6, r0
+				PreRangeTimeOutMClks = VL53L0X_decode_timeout(
+ 800726e:	f8bd 000c 	ldrh.w	r0, [sp, #12]
+ 8007272:	f7ff ff61 	bl	8007138 <VL53L0X_decode_timeout>
+ 8007276:	b287      	uxth	r7, r0
+ 8007278:	e7f1      	b.n	800725e <get_sequence_step_timeout+0xc2>
+		PreRangeTimeOutMClks = 0;
+ 800727a:	2700      	movs	r7, #0
+			Status = VL53L0X_GetVcselPulsePeriod(Dev,
+ 800727c:	f10d 020f 	add.w	r2, sp, #15
+ 8007280:	2101      	movs	r1, #1
+ 8007282:	4620      	mov	r0, r4
+ 8007284:	f7fe f932 	bl	80054ec <VL53L0X_GetVcselPulsePeriod>
+ 8007288:	4606      	mov	r6, r0
+		if (Status == VL53L0X_ERROR_NONE) {
+ 800728a:	b146      	cbz	r6, 800729e <get_sequence_step_timeout+0x102>
+	uint16_t FinalRangeTimeOutMClks = 0;
+ 800728c:	2100      	movs	r1, #0
+		FinalRangeTimeOutMClks -= PreRangeTimeOutMClks;
+ 800728e:	1bc9      	subs	r1, r1, r7
+		TimeoutMicroSeconds = VL53L0X_calc_timeout_us(Dev,
+ 8007290:	f89d 200f 	ldrb.w	r2, [sp, #15]
+ 8007294:	b289      	uxth	r1, r1
+ 8007296:	4620      	mov	r0, r4
+ 8007298:	f7ff ff6a 	bl	8007170 <VL53L0X_calc_timeout_us>
+ 800729c:	e78f      	b.n	80071be <get_sequence_step_timeout+0x22>
+			Status = VL53L0X_RdWord(Dev,
+ 800729e:	f10d 020a 	add.w	r2, sp, #10
+ 80072a2:	2171      	movs	r1, #113	; 0x71
+ 80072a4:	4620      	mov	r0, r4
+ 80072a6:	f000 ff2f 	bl	8008108 <VL53L0X_RdWord>
+ 80072aa:	4606      	mov	r6, r0
+			FinalRangeTimeOutMClks = VL53L0X_decode_timeout(
+ 80072ac:	f8bd 000a 	ldrh.w	r0, [sp, #10]
+ 80072b0:	f7ff ff42 	bl	8007138 <VL53L0X_decode_timeout>
+ 80072b4:	b281      	uxth	r1, r0
+ 80072b6:	e7ea      	b.n	800728e <get_sequence_step_timeout+0xf2>
+
+080072b8 <set_sequence_step_timeout>:
+
+
+VL53L0X_Error set_sequence_step_timeout(VL53L0X_DEV Dev,
+					VL53L0X_SequenceStepId SequenceStepId,
+					uint32_t TimeOutMicroSecs)
+{
+ 80072b8:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 80072ba:	b085      	sub	sp, #20
+ 80072bc:	4604      	mov	r4, r0
+ 80072be:	4617      	mov	r7, r2
+	uint16_t MsrcRangeTimeOutMClks;
+	uint32_t FinalRangeTimeOutMClks;
+	uint16_t FinalRangeEncodedTimeOut;
+	VL53L0X_SchedulerSequenceSteps_t SchedulerSequenceSteps;
+
+	if ((SequenceStepId == VL53L0X_SEQUENCESTEP_TCC)	 ||
+ 80072c0:	2902      	cmp	r1, #2
+ 80072c2:	d917      	bls.n	80072f4 <set_sequence_step_timeout+0x3c>
+				VL53L0X_REG_MSRC_CONFIG_TIMEOUT_MACROP,
+				MsrcEncodedTimeOut);
+		}
+	} else {
+
+		if (SequenceStepId == VL53L0X_SEQUENCESTEP_PRE_RANGE) {
+ 80072c4:	2903      	cmp	r1, #3
+ 80072c6:	d036      	beq.n	8007336 <set_sequence_step_timeout+0x7e>
+				VL53L0X_SETDEVICESPECIFICPARAMETER(
+					Dev,
+					PreRangeTimeoutMicroSecs,
+					TimeOutMicroSecs);
+			}
+		} else if (SequenceStepId == VL53L0X_SEQUENCESTEP_FINAL_RANGE) {
+ 80072c8:	2904      	cmp	r1, #4
+ 80072ca:	d17f      	bne.n	80073cc <set_sequence_step_timeout+0x114>
+			 * must be added. To do this both final and pre-range
+			 * timeouts must be expressed in macro periods MClks
+			 * because they have different vcsel periods.
+			 */
+
+			VL53L0X_GetSequenceStepEnables(Dev,
+ 80072cc:	a901      	add	r1, sp, #4
+ 80072ce:	f7fe f993 	bl	80055f8 <VL53L0X_GetSequenceStepEnables>
+					&SchedulerSequenceSteps);
+			PreRangeTimeOutMClks = 0;
+			if (SchedulerSequenceSteps.PreRangeOn) {
+ 80072d2:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 80072d6:	2b00      	cmp	r3, #0
+ 80072d8:	d058      	beq.n	800738c <set_sequence_step_timeout+0xd4>
+
+				/* Retrieve PRE-RANGE VCSEL Period */
+				Status = VL53L0X_GetVcselPulsePeriod(Dev,
+ 80072da:	f10d 020f 	add.w	r2, sp, #15
+ 80072de:	2100      	movs	r1, #0
+ 80072e0:	4620      	mov	r0, r4
+ 80072e2:	f7fe f903 	bl	80054ec <VL53L0X_GetVcselPulsePeriod>
+					VL53L0X_VCSEL_PERIOD_PRE_RANGE,
+					&CurrentVCSELPulsePeriodPClk);
+
+				/* Retrieve PRE-RANGE Timeout in Macro periods
+				 * (MCLKS) */
+				if (Status == VL53L0X_ERROR_NONE) {
+ 80072e6:	4605      	mov	r5, r0
+ 80072e8:	2800      	cmp	r0, #0
+ 80072ea:	d043      	beq.n	8007374 <set_sequence_step_timeout+0xbc>
+			PreRangeTimeOutMClks = 0;
+ 80072ec:	2600      	movs	r6, #0
+			}
+
+			/* Calculate FINAL RANGE Timeout in Macro Periods
+			 * (MCLKS) and add PRE-RANGE value
+			 */
+			if (Status == VL53L0X_ERROR_NONE) {
+ 80072ee:	2d00      	cmp	r5, #0
+ 80072f0:	d154      	bne.n	800739c <set_sequence_step_timeout+0xe4>
+ 80072f2:	e04c      	b.n	800738e <set_sequence_step_timeout+0xd6>
+ 80072f4:	2600      	movs	r6, #0
+		Status = VL53L0X_GetVcselPulsePeriod(Dev,
+ 80072f6:	f10d 020f 	add.w	r2, sp, #15
+ 80072fa:	4631      	mov	r1, r6
+ 80072fc:	f7fe f8f6 	bl	80054ec <VL53L0X_GetVcselPulsePeriod>
+		if (Status == VL53L0X_ERROR_NONE) {
+ 8007300:	4605      	mov	r5, r0
+ 8007302:	b970      	cbnz	r0, 8007322 <set_sequence_step_timeout+0x6a>
+			MsrcRangeTimeOutMClks = VL53L0X_calc_timeout_mclks(Dev,
+ 8007304:	f89d 200f 	ldrb.w	r2, [sp, #15]
+ 8007308:	4639      	mov	r1, r7
+ 800730a:	4620      	mov	r0, r4
+ 800730c:	f7ff ff1a 	bl	8007144 <VL53L0X_calc_timeout_mclks>
+ 8007310:	b283      	uxth	r3, r0
+			if (MsrcRangeTimeOutMClks > 256)
+ 8007312:	f5b3 7f80 	cmp.w	r3, #256	; 0x100
+ 8007316:	d80c      	bhi.n	8007332 <set_sequence_step_timeout+0x7a>
+					(uint8_t)MsrcRangeTimeOutMClks - 1;
+ 8007318:	b2c6      	uxtb	r6, r0
+				MsrcEncodedTimeOut =
+ 800731a:	3e01      	subs	r6, #1
+ 800731c:	b2f6      	uxtb	r6, r6
+			VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ 800731e:	f8a4 60d8 	strh.w	r6, [r4, #216]	; 0xd8
+		if (Status == VL53L0X_ERROR_NONE) {
+ 8007322:	bbe5      	cbnz	r5, 800739e <set_sequence_step_timeout+0xe6>
+			Status = VL53L0X_WrByte(Dev,
+ 8007324:	4632      	mov	r2, r6
+ 8007326:	2146      	movs	r1, #70	; 0x46
+ 8007328:	4620      	mov	r0, r4
+ 800732a:	f000 fe97 	bl	800805c <VL53L0X_WrByte>
+ 800732e:	4605      	mov	r5, r0
+ 8007330:	e035      	b.n	800739e <set_sequence_step_timeout+0xe6>
+				MsrcEncodedTimeOut = 255;
+ 8007332:	26ff      	movs	r6, #255	; 0xff
+ 8007334:	e7f3      	b.n	800731e <set_sequence_step_timeout+0x66>
+				Status = VL53L0X_GetVcselPulsePeriod(Dev,
+ 8007336:	f10d 020f 	add.w	r2, sp, #15
+ 800733a:	2100      	movs	r1, #0
+ 800733c:	f7fe f8d6 	bl	80054ec <VL53L0X_GetVcselPulsePeriod>
+ 8007340:	4605      	mov	r5, r0
+					VL53L0X_calc_timeout_mclks(Dev,
+ 8007342:	f89d 200f 	ldrb.w	r2, [sp, #15]
+ 8007346:	4639      	mov	r1, r7
+ 8007348:	4620      	mov	r0, r4
+ 800734a:	f7ff fefb 	bl	8007144 <VL53L0X_calc_timeout_mclks>
+				PreRangeEncodedTimeOut = VL53L0X_encode_timeout(
+ 800734e:	b280      	uxth	r0, r0
+ 8007350:	f7ff fee0 	bl	8007114 <VL53L0X_encode_timeout>
+ 8007354:	f8ad 000c 	strh.w	r0, [sp, #12]
+				VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ 8007358:	f8a4 00d8 	strh.w	r0, [r4, #216]	; 0xd8
+			if (Status == VL53L0X_ERROR_NONE) {
+ 800735c:	b11d      	cbz	r5, 8007366 <set_sequence_step_timeout+0xae>
+			if (Status == VL53L0X_ERROR_NONE) {
+ 800735e:	b9f5      	cbnz	r5, 800739e <set_sequence_step_timeout+0xe6>
+				VL53L0X_SETDEVICESPECIFICPARAMETER(
+ 8007360:	f8c4 70e4 	str.w	r7, [r4, #228]	; 0xe4
+ 8007364:	e01b      	b.n	800739e <set_sequence_step_timeout+0xe6>
+				Status = VL53L0X_WrWord(Dev,
+ 8007366:	4602      	mov	r2, r0
+ 8007368:	2151      	movs	r1, #81	; 0x51
+ 800736a:	4620      	mov	r0, r4
+ 800736c:	f000 fe86 	bl	800807c <VL53L0X_WrWord>
+ 8007370:	4605      	mov	r5, r0
+ 8007372:	e7f4      	b.n	800735e <set_sequence_step_timeout+0xa6>
+					Status = VL53L0X_RdWord(Dev, 0x51,
+ 8007374:	aa03      	add	r2, sp, #12
+ 8007376:	2151      	movs	r1, #81	; 0x51
+ 8007378:	4620      	mov	r0, r4
+ 800737a:	f000 fec5 	bl	8008108 <VL53L0X_RdWord>
+ 800737e:	4605      	mov	r5, r0
+						VL53L0X_decode_timeout(
+ 8007380:	f8bd 000c 	ldrh.w	r0, [sp, #12]
+ 8007384:	f7ff fed8 	bl	8007138 <VL53L0X_decode_timeout>
+					PreRangeTimeOutMClks =
+ 8007388:	b286      	uxth	r6, r0
+ 800738a:	e7b0      	b.n	80072ee <set_sequence_step_timeout+0x36>
+			PreRangeTimeOutMClks = 0;
+ 800738c:	2600      	movs	r6, #0
+
+				Status = VL53L0X_GetVcselPulsePeriod(Dev,
+ 800738e:	f10d 020f 	add.w	r2, sp, #15
+ 8007392:	2101      	movs	r1, #1
+ 8007394:	4620      	mov	r0, r4
+ 8007396:	f7fe f8a9 	bl	80054ec <VL53L0X_GetVcselPulsePeriod>
+ 800739a:	4605      	mov	r5, r0
+						VL53L0X_VCSEL_PERIOD_FINAL_RANGE,
+						&CurrentVCSELPulsePeriodPClk);
+			}
+			if (Status == VL53L0X_ERROR_NONE) {
+ 800739c:	b115      	cbz	r5, 80073a4 <set_sequence_step_timeout+0xec>
+		} else
+			Status = VL53L0X_ERROR_INVALID_PARAMS;
+
+	}
+	return Status;
+}
+ 800739e:	4628      	mov	r0, r5
+ 80073a0:	b005      	add	sp, #20
+ 80073a2:	bdf0      	pop	{r4, r5, r6, r7, pc}
+					VL53L0X_calc_timeout_mclks(Dev,
+ 80073a4:	f89d 200f 	ldrb.w	r2, [sp, #15]
+ 80073a8:	4639      	mov	r1, r7
+ 80073aa:	4620      	mov	r0, r4
+ 80073ac:	f7ff feca 	bl	8007144 <VL53L0X_calc_timeout_mclks>
+				VL53L0X_encode_timeout(FinalRangeTimeOutMClks);
+ 80073b0:	4430      	add	r0, r6
+ 80073b2:	f7ff feaf 	bl	8007114 <VL53L0X_encode_timeout>
+ 80073b6:	4602      	mov	r2, r0
+					Status = VL53L0X_WrWord(Dev, 0x71,
+ 80073b8:	2171      	movs	r1, #113	; 0x71
+ 80073ba:	4620      	mov	r0, r4
+ 80073bc:	f000 fe5e 	bl	800807c <VL53L0X_WrWord>
+				if (Status == VL53L0X_ERROR_NONE) {
+ 80073c0:	4605      	mov	r5, r0
+ 80073c2:	2800      	cmp	r0, #0
+ 80073c4:	d1eb      	bne.n	800739e <set_sequence_step_timeout+0xe6>
+					VL53L0X_SETDEVICESPECIFICPARAMETER(
+ 80073c6:	f8c4 70dc 	str.w	r7, [r4, #220]	; 0xdc
+ 80073ca:	e7e8      	b.n	800739e <set_sequence_step_timeout+0xe6>
+			Status = VL53L0X_ERROR_INVALID_PARAMS;
+ 80073cc:	f06f 0503 	mvn.w	r5, #3
+ 80073d0:	e7e5      	b.n	800739e <set_sequence_step_timeout+0xe6>
+
+080073d2 <VL53L0X_set_vcsel_pulse_period>:
+
+VL53L0X_Error VL53L0X_set_vcsel_pulse_period(VL53L0X_DEV Dev,
+	VL53L0X_VcselPeriod VcselPeriodType, uint8_t VCSELPulsePeriodPCLK)
+{
+ 80073d2:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 80073d4:	b085      	sub	sp, #20
+	uint8_t MaxFinalVcselPeriodPCLK = 14;
+	uint32_t MeasurementTimingBudgetMicroSeconds;
+	uint32_t FinalRangeTimeoutMicroSeconds;
+	uint32_t PreRangeTimeoutMicroSeconds;
+	uint32_t MsrcTimeoutMicroSeconds;
+	uint8_t PhaseCalInt = 0;
+ 80073d6:	2300      	movs	r3, #0
+ 80073d8:	f88d 3003 	strb.w	r3, [sp, #3]
+
+	/* Check if valid clock period requested */
+
+	if ((VCSELPulsePeriodPCLK % 2) != 0) {
+ 80073dc:	f012 0f01 	tst.w	r2, #1
+ 80073e0:	f040 8178 	bne.w	80076d4 <VL53L0X_set_vcsel_pulse_period+0x302>
+ 80073e4:	4604      	mov	r4, r0
+ 80073e6:	460e      	mov	r6, r1
+ 80073e8:	4615      	mov	r5, r2
+		/* Value must be an even number */
+		Status = VL53L0X_ERROR_INVALID_PARAMS;
+	} else if (VcselPeriodType == VL53L0X_VCSEL_PERIOD_PRE_RANGE &&
+ 80073ea:	b929      	cbnz	r1, 80073f8 <VL53L0X_set_vcsel_pulse_period+0x26>
+ 80073ec:	2a0b      	cmp	r2, #11
+ 80073ee:	f240 8174 	bls.w	80076da <VL53L0X_set_vcsel_pulse_period+0x308>
+		(VCSELPulsePeriodPCLK < MinPreVcselPeriodPCLK ||
+ 80073f2:	2a12      	cmp	r2, #18
+ 80073f4:	f200 8174 	bhi.w	80076e0 <VL53L0X_set_vcsel_pulse_period+0x30e>
+		VCSELPulsePeriodPCLK > MaxPreVcselPeriodPCLK)) {
+		Status = VL53L0X_ERROR_INVALID_PARAMS;
+	} else if (VcselPeriodType == VL53L0X_VCSEL_PERIOD_FINAL_RANGE &&
+ 80073f8:	2e01      	cmp	r6, #1
+ 80073fa:	d00f      	beq.n	800741c <VL53L0X_set_vcsel_pulse_period+0x4a>
+
+	if (Status != VL53L0X_ERROR_NONE)
+		return Status;
+
+
+	if (VcselPeriodType == VL53L0X_VCSEL_PERIOD_PRE_RANGE) {
+ 80073fc:	2e00      	cmp	r6, #0
+ 80073fe:	d141      	bne.n	8007484 <VL53L0X_set_vcsel_pulse_period+0xb2>
+
+		/* Set phase check limits */
+		if (VCSELPulsePeriodPCLK == 12) {
+ 8007400:	f1a5 030c 	sub.w	r3, r5, #12
+ 8007404:	2b06      	cmp	r3, #6
+ 8007406:	f200 8117 	bhi.w	8007638 <VL53L0X_set_vcsel_pulse_period+0x266>
+ 800740a:	e8df f013 	tbh	[pc, r3, lsl #1]
+ 800740e:	000f      	.short	0x000f
+ 8007410:	001a0115 	.word	0x001a0115
+ 8007414:	00250115 	.word	0x00250115
+ 8007418:	00300115 	.word	0x00300115
+	} else if (VcselPeriodType == VL53L0X_VCSEL_PERIOD_FINAL_RANGE &&
+ 800741c:	2d07      	cmp	r5, #7
+ 800741e:	f240 8162 	bls.w	80076e6 <VL53L0X_set_vcsel_pulse_period+0x314>
+		(VCSELPulsePeriodPCLK < MinFinalVcselPeriodPCLK ||
+ 8007422:	2d0e      	cmp	r5, #14
+ 8007424:	d9ea      	bls.n	80073fc <VL53L0X_set_vcsel_pulse_period+0x2a>
+ 8007426:	f06f 0003 	mvn.w	r0, #3
+ 800742a:	e116      	b.n	800765a <VL53L0X_set_vcsel_pulse_period+0x288>
+
+			Status = VL53L0X_WrByte(Dev,
+ 800742c:	2218      	movs	r2, #24
+ 800742e:	2157      	movs	r1, #87	; 0x57
+ 8007430:	4620      	mov	r0, r4
+ 8007432:	f000 fe13 	bl	800805c <VL53L0X_WrByte>
+				VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_HIGH,
+				0x18);
+			Status = VL53L0X_WrByte(Dev,
+ 8007436:	2208      	movs	r2, #8
+ 8007438:	2156      	movs	r1, #86	; 0x56
+ 800743a:	4620      	mov	r0, r4
+ 800743c:	f000 fe0e 	bl	800805c <VL53L0X_WrByte>
+ 8007440:	e023      	b.n	800748a <VL53L0X_set_vcsel_pulse_period+0xb8>
+				VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_LOW,
+				0x08);
+		} else if (VCSELPulsePeriodPCLK == 14) {
+
+			Status = VL53L0X_WrByte(Dev,
+ 8007442:	2230      	movs	r2, #48	; 0x30
+ 8007444:	2157      	movs	r1, #87	; 0x57
+ 8007446:	4620      	mov	r0, r4
+ 8007448:	f000 fe08 	bl	800805c <VL53L0X_WrByte>
+				VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_HIGH,
+				0x30);
+			Status = VL53L0X_WrByte(Dev,
+ 800744c:	2208      	movs	r2, #8
+ 800744e:	2156      	movs	r1, #86	; 0x56
+ 8007450:	4620      	mov	r0, r4
+ 8007452:	f000 fe03 	bl	800805c <VL53L0X_WrByte>
+ 8007456:	e018      	b.n	800748a <VL53L0X_set_vcsel_pulse_period+0xb8>
+				VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_LOW,
+				0x08);
+		} else if (VCSELPulsePeriodPCLK == 16) {
+
+			Status = VL53L0X_WrByte(Dev,
+ 8007458:	2240      	movs	r2, #64	; 0x40
+ 800745a:	2157      	movs	r1, #87	; 0x57
+ 800745c:	4620      	mov	r0, r4
+ 800745e:	f000 fdfd 	bl	800805c <VL53L0X_WrByte>
+				VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_HIGH,
+				0x40);
+			Status = VL53L0X_WrByte(Dev,
+ 8007462:	2208      	movs	r2, #8
+ 8007464:	2156      	movs	r1, #86	; 0x56
+ 8007466:	4620      	mov	r0, r4
+ 8007468:	f000 fdf8 	bl	800805c <VL53L0X_WrByte>
+ 800746c:	e00d      	b.n	800748a <VL53L0X_set_vcsel_pulse_period+0xb8>
+				VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_LOW,
+				0x08);
+		} else if (VCSELPulsePeriodPCLK == 18) {
+
+			Status = VL53L0X_WrByte(Dev,
+ 800746e:	2250      	movs	r2, #80	; 0x50
+ 8007470:	2157      	movs	r1, #87	; 0x57
+ 8007472:	4620      	mov	r0, r4
+ 8007474:	f000 fdf2 	bl	800805c <VL53L0X_WrByte>
+				VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_HIGH,
+				0x50);
+			Status = VL53L0X_WrByte(Dev,
+ 8007478:	2208      	movs	r2, #8
+ 800747a:	2156      	movs	r1, #86	; 0x56
+ 800747c:	4620      	mov	r0, r4
+ 800747e:	f000 fded 	bl	800805c <VL53L0X_WrByte>
+ 8007482:	e002      	b.n	800748a <VL53L0X_set_vcsel_pulse_period+0xb8>
+				VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_LOW,
+				0x08);
+		}
+	} else if (VcselPeriodType == VL53L0X_VCSEL_PERIOD_FINAL_RANGE) {
+ 8007484:	2e01      	cmp	r6, #1
+ 8007486:	d010      	beq.n	80074aa <VL53L0X_set_vcsel_pulse_period+0xd8>
+ 8007488:	2000      	movs	r0, #0
+	}
+
+
+	/* Re-calculate and apply timeouts, in macro periods */
+
+	if (Status == VL53L0X_ERROR_NONE) {
+ 800748a:	2800      	cmp	r0, #0
+ 800748c:	f040 80e3 	bne.w	8007656 <VL53L0X_set_vcsel_pulse_period+0x284>
+		vcsel_period_reg = VL53L0X_encode_vcsel_period((uint8_t)
+ 8007490:	4628      	mov	r0, r5
+ 8007492:	f7ff fb38 	bl	8006b06 <VL53L0X_encode_vcsel_period>
+ 8007496:	4607      	mov	r7, r0
+		* using the new VCSEL period.
+		*
+		* For the MSRC timeout, the same applies - this timeout being
+		* dependant on the pre-range vcsel period.
+		*/
+		switch (VcselPeriodType) {
+ 8007498:	2e00      	cmp	r6, #0
+ 800749a:	f000 80d1 	beq.w	8007640 <VL53L0X_set_vcsel_pulse_period+0x26e>
+ 800749e:	2e01      	cmp	r6, #1
+ 80074a0:	f000 80f5 	beq.w	800768e <VL53L0X_set_vcsel_pulse_period+0x2bc>
+ 80074a4:	f06f 0003 	mvn.w	r0, #3
+ 80074a8:	e0d6      	b.n	8007658 <VL53L0X_set_vcsel_pulse_period+0x286>
+		if (VCSELPulsePeriodPCLK == 8) {
+ 80074aa:	f1a5 0308 	sub.w	r3, r5, #8
+ 80074ae:	2b06      	cmp	r3, #6
+ 80074b0:	f200 80c4 	bhi.w	800763c <VL53L0X_set_vcsel_pulse_period+0x26a>
+ 80074b4:	e8df f003 	tbb	[pc, r3]
+ 80074b8:	c233c204 	.word	0xc233c204
+ 80074bc:	c262      	.short	0xc262
+ 80074be:	91          	.byte	0x91
+ 80074bf:	00          	.byte	0x00
+			Status = VL53L0X_WrByte(Dev,
+ 80074c0:	2210      	movs	r2, #16
+ 80074c2:	2148      	movs	r1, #72	; 0x48
+ 80074c4:	4620      	mov	r0, r4
+ 80074c6:	f000 fdc9 	bl	800805c <VL53L0X_WrByte>
+			Status = VL53L0X_WrByte(Dev,
+ 80074ca:	2208      	movs	r2, #8
+ 80074cc:	2147      	movs	r1, #71	; 0x47
+ 80074ce:	4620      	mov	r0, r4
+ 80074d0:	f000 fdc4 	bl	800805c <VL53L0X_WrByte>
+ 80074d4:	4607      	mov	r7, r0
+			Status |= VL53L0X_WrByte(Dev,
+ 80074d6:	2202      	movs	r2, #2
+ 80074d8:	2132      	movs	r1, #50	; 0x32
+ 80074da:	4620      	mov	r0, r4
+ 80074dc:	f000 fdbe 	bl	800805c <VL53L0X_WrByte>
+ 80074e0:	4307      	orrs	r7, r0
+ 80074e2:	b27f      	sxtb	r7, r7
+			Status |= VL53L0X_WrByte(Dev,
+ 80074e4:	220c      	movs	r2, #12
+ 80074e6:	2130      	movs	r1, #48	; 0x30
+ 80074e8:	4620      	mov	r0, r4
+ 80074ea:	f000 fdb7 	bl	800805c <VL53L0X_WrByte>
+ 80074ee:	4307      	orrs	r7, r0
+ 80074f0:	b27f      	sxtb	r7, r7
+			Status |= VL53L0X_WrByte(Dev, 0xff, 0x01);
+ 80074f2:	2201      	movs	r2, #1
+ 80074f4:	21ff      	movs	r1, #255	; 0xff
+ 80074f6:	4620      	mov	r0, r4
+ 80074f8:	f000 fdb0 	bl	800805c <VL53L0X_WrByte>
+ 80074fc:	4307      	orrs	r7, r0
+ 80074fe:	b27f      	sxtb	r7, r7
+			Status |= VL53L0X_WrByte(Dev,
+ 8007500:	2230      	movs	r2, #48	; 0x30
+ 8007502:	4611      	mov	r1, r2
+ 8007504:	4620      	mov	r0, r4
+ 8007506:	f000 fda9 	bl	800805c <VL53L0X_WrByte>
+ 800750a:	4307      	orrs	r7, r0
+ 800750c:	b27f      	sxtb	r7, r7
+			Status |= VL53L0X_WrByte(Dev, 0xff, 0x00);
+ 800750e:	2200      	movs	r2, #0
+ 8007510:	21ff      	movs	r1, #255	; 0xff
+ 8007512:	4620      	mov	r0, r4
+ 8007514:	f000 fda2 	bl	800805c <VL53L0X_WrByte>
+ 8007518:	4338      	orrs	r0, r7
+ 800751a:	b240      	sxtb	r0, r0
+ 800751c:	e7b5      	b.n	800748a <VL53L0X_set_vcsel_pulse_period+0xb8>
+			Status = VL53L0X_WrByte(Dev,
+ 800751e:	2228      	movs	r2, #40	; 0x28
+ 8007520:	2148      	movs	r1, #72	; 0x48
+ 8007522:	4620      	mov	r0, r4
+ 8007524:	f000 fd9a 	bl	800805c <VL53L0X_WrByte>
+			Status = VL53L0X_WrByte(Dev,
+ 8007528:	2208      	movs	r2, #8
+ 800752a:	2147      	movs	r1, #71	; 0x47
+ 800752c:	4620      	mov	r0, r4
+ 800752e:	f000 fd95 	bl	800805c <VL53L0X_WrByte>
+ 8007532:	4607      	mov	r7, r0
+			Status |= VL53L0X_WrByte(Dev,
+ 8007534:	2203      	movs	r2, #3
+ 8007536:	2132      	movs	r1, #50	; 0x32
+ 8007538:	4620      	mov	r0, r4
+ 800753a:	f000 fd8f 	bl	800805c <VL53L0X_WrByte>
+ 800753e:	4307      	orrs	r7, r0
+ 8007540:	b27f      	sxtb	r7, r7
+			Status |= VL53L0X_WrByte(Dev,
+ 8007542:	2209      	movs	r2, #9
+ 8007544:	2130      	movs	r1, #48	; 0x30
+ 8007546:	4620      	mov	r0, r4
+ 8007548:	f000 fd88 	bl	800805c <VL53L0X_WrByte>
+ 800754c:	4307      	orrs	r7, r0
+ 800754e:	b27f      	sxtb	r7, r7
+			Status |= VL53L0X_WrByte(Dev, 0xff, 0x01);
+ 8007550:	2201      	movs	r2, #1
+ 8007552:	21ff      	movs	r1, #255	; 0xff
+ 8007554:	4620      	mov	r0, r4
+ 8007556:	f000 fd81 	bl	800805c <VL53L0X_WrByte>
+ 800755a:	4307      	orrs	r7, r0
+ 800755c:	b27f      	sxtb	r7, r7
+			Status |= VL53L0X_WrByte(Dev,
+ 800755e:	2220      	movs	r2, #32
+ 8007560:	2130      	movs	r1, #48	; 0x30
+ 8007562:	4620      	mov	r0, r4
+ 8007564:	f000 fd7a 	bl	800805c <VL53L0X_WrByte>
+ 8007568:	4307      	orrs	r7, r0
+ 800756a:	b27f      	sxtb	r7, r7
+			Status |= VL53L0X_WrByte(Dev, 0xff, 0x00);
+ 800756c:	2200      	movs	r2, #0
+ 800756e:	21ff      	movs	r1, #255	; 0xff
+ 8007570:	4620      	mov	r0, r4
+ 8007572:	f000 fd73 	bl	800805c <VL53L0X_WrByte>
+ 8007576:	4338      	orrs	r0, r7
+ 8007578:	b240      	sxtb	r0, r0
+ 800757a:	e786      	b.n	800748a <VL53L0X_set_vcsel_pulse_period+0xb8>
+			Status = VL53L0X_WrByte(Dev,
+ 800757c:	2238      	movs	r2, #56	; 0x38
+ 800757e:	2148      	movs	r1, #72	; 0x48
+ 8007580:	4620      	mov	r0, r4
+ 8007582:	f000 fd6b 	bl	800805c <VL53L0X_WrByte>
+			Status = VL53L0X_WrByte(Dev,
+ 8007586:	2208      	movs	r2, #8
+ 8007588:	2147      	movs	r1, #71	; 0x47
+ 800758a:	4620      	mov	r0, r4
+ 800758c:	f000 fd66 	bl	800805c <VL53L0X_WrByte>
+ 8007590:	4607      	mov	r7, r0
+			Status |= VL53L0X_WrByte(Dev,
+ 8007592:	2203      	movs	r2, #3
+ 8007594:	2132      	movs	r1, #50	; 0x32
+ 8007596:	4620      	mov	r0, r4
+ 8007598:	f000 fd60 	bl	800805c <VL53L0X_WrByte>
+ 800759c:	4307      	orrs	r7, r0
+ 800759e:	b27f      	sxtb	r7, r7
+			Status |= VL53L0X_WrByte(Dev,
+ 80075a0:	2208      	movs	r2, #8
+ 80075a2:	2130      	movs	r1, #48	; 0x30
+ 80075a4:	4620      	mov	r0, r4
+ 80075a6:	f000 fd59 	bl	800805c <VL53L0X_WrByte>
+ 80075aa:	4307      	orrs	r7, r0
+ 80075ac:	b27f      	sxtb	r7, r7
+			Status |= VL53L0X_WrByte(Dev, 0xff, 0x01);
+ 80075ae:	2201      	movs	r2, #1
+ 80075b0:	21ff      	movs	r1, #255	; 0xff
+ 80075b2:	4620      	mov	r0, r4
+ 80075b4:	f000 fd52 	bl	800805c <VL53L0X_WrByte>
+ 80075b8:	4307      	orrs	r7, r0
+ 80075ba:	b27f      	sxtb	r7, r7
+			Status |= VL53L0X_WrByte(Dev,
+ 80075bc:	2220      	movs	r2, #32
+ 80075be:	2130      	movs	r1, #48	; 0x30
+ 80075c0:	4620      	mov	r0, r4
+ 80075c2:	f000 fd4b 	bl	800805c <VL53L0X_WrByte>
+ 80075c6:	4307      	orrs	r7, r0
+ 80075c8:	b27f      	sxtb	r7, r7
+			Status |= VL53L0X_WrByte(Dev, 0xff, 0x00);
+ 80075ca:	2200      	movs	r2, #0
+ 80075cc:	21ff      	movs	r1, #255	; 0xff
+ 80075ce:	4620      	mov	r0, r4
+ 80075d0:	f000 fd44 	bl	800805c <VL53L0X_WrByte>
+ 80075d4:	4338      	orrs	r0, r7
+ 80075d6:	b240      	sxtb	r0, r0
+ 80075d8:	e757      	b.n	800748a <VL53L0X_set_vcsel_pulse_period+0xb8>
+			Status = VL53L0X_WrByte(Dev,
+ 80075da:	2248      	movs	r2, #72	; 0x48
+ 80075dc:	4611      	mov	r1, r2
+ 80075de:	4620      	mov	r0, r4
+ 80075e0:	f000 fd3c 	bl	800805c <VL53L0X_WrByte>
+			Status = VL53L0X_WrByte(Dev,
+ 80075e4:	2208      	movs	r2, #8
+ 80075e6:	2147      	movs	r1, #71	; 0x47
+ 80075e8:	4620      	mov	r0, r4
+ 80075ea:	f000 fd37 	bl	800805c <VL53L0X_WrByte>
+ 80075ee:	4607      	mov	r7, r0
+			Status |= VL53L0X_WrByte(Dev,
+ 80075f0:	2203      	movs	r2, #3
+ 80075f2:	2132      	movs	r1, #50	; 0x32
+ 80075f4:	4620      	mov	r0, r4
+ 80075f6:	f000 fd31 	bl	800805c <VL53L0X_WrByte>
+ 80075fa:	4307      	orrs	r7, r0
+ 80075fc:	b27f      	sxtb	r7, r7
+			Status |= VL53L0X_WrByte(Dev,
+ 80075fe:	2207      	movs	r2, #7
+ 8007600:	2130      	movs	r1, #48	; 0x30
+ 8007602:	4620      	mov	r0, r4
+ 8007604:	f000 fd2a 	bl	800805c <VL53L0X_WrByte>
+ 8007608:	4307      	orrs	r7, r0
+ 800760a:	b27f      	sxtb	r7, r7
+			Status |= VL53L0X_WrByte(Dev, 0xff, 0x01);
+ 800760c:	2201      	movs	r2, #1
+ 800760e:	21ff      	movs	r1, #255	; 0xff
+ 8007610:	4620      	mov	r0, r4
+ 8007612:	f000 fd23 	bl	800805c <VL53L0X_WrByte>
+ 8007616:	4307      	orrs	r7, r0
+ 8007618:	b27f      	sxtb	r7, r7
+			Status |= VL53L0X_WrByte(Dev,
+ 800761a:	2220      	movs	r2, #32
+ 800761c:	2130      	movs	r1, #48	; 0x30
+ 800761e:	4620      	mov	r0, r4
+ 8007620:	f000 fd1c 	bl	800805c <VL53L0X_WrByte>
+ 8007624:	4307      	orrs	r7, r0
+ 8007626:	b27f      	sxtb	r7, r7
+			Status |= VL53L0X_WrByte(Dev, 0xff, 0x00);
+ 8007628:	2200      	movs	r2, #0
+ 800762a:	21ff      	movs	r1, #255	; 0xff
+ 800762c:	4620      	mov	r0, r4
+ 800762e:	f000 fd15 	bl	800805c <VL53L0X_WrByte>
+ 8007632:	4338      	orrs	r0, r7
+ 8007634:	b240      	sxtb	r0, r0
+ 8007636:	e728      	b.n	800748a <VL53L0X_set_vcsel_pulse_period+0xb8>
+	if (VcselPeriodType == VL53L0X_VCSEL_PERIOD_PRE_RANGE) {
+ 8007638:	2000      	movs	r0, #0
+ 800763a:	e726      	b.n	800748a <VL53L0X_set_vcsel_pulse_period+0xb8>
+	} else if (VcselPeriodType == VL53L0X_VCSEL_PERIOD_FINAL_RANGE) {
+ 800763c:	2000      	movs	r0, #0
+ 800763e:	e724      	b.n	800748a <VL53L0X_set_vcsel_pulse_period+0xb8>
+		case VL53L0X_VCSEL_PERIOD_PRE_RANGE:
+			Status = get_sequence_step_timeout(Dev,
+ 8007640:	aa02      	add	r2, sp, #8
+ 8007642:	2103      	movs	r1, #3
+ 8007644:	4620      	mov	r0, r4
+ 8007646:	f7ff fda9 	bl	800719c <get_sequence_step_timeout>
+				VL53L0X_SEQUENCESTEP_PRE_RANGE,
+				&PreRangeTimeoutMicroSeconds);
+
+			if (Status == VL53L0X_ERROR_NONE)
+ 800764a:	b140      	cbz	r0, 800765e <VL53L0X_set_vcsel_pulse_period+0x28c>
+				Status = get_sequence_step_timeout(Dev,
+					VL53L0X_SEQUENCESTEP_MSRC,
+					&MsrcTimeoutMicroSeconds);
+
+			if (Status == VL53L0X_ERROR_NONE)
+ 800764c:	b168      	cbz	r0, 800766a <VL53L0X_set_vcsel_pulse_period+0x298>
+				Status = VL53L0X_WrByte(Dev,
+				VL53L0X_REG_PRE_RANGE_CONFIG_VCSEL_PERIOD,
+					vcsel_period_reg);
+
+
+			if (Status == VL53L0X_ERROR_NONE)
+ 800764e:	b190      	cbz	r0, 8007676 <VL53L0X_set_vcsel_pulse_period+0x2a4>
+				Status = set_sequence_step_timeout(Dev,
+					VL53L0X_SEQUENCESTEP_PRE_RANGE,
+					PreRangeTimeoutMicroSeconds);
+
+
+			if (Status == VL53L0X_ERROR_NONE)
+ 8007650:	b1b8      	cbz	r0, 8007682 <VL53L0X_set_vcsel_pulse_period+0x2b0>
+				Status = set_sequence_step_timeout(Dev,
+					VL53L0X_SEQUENCESTEP_MSRC,
+					MsrcTimeoutMicroSeconds);
+
+			VL53L0X_SETDEVICESPECIFICPARAMETER(
+ 8007652:	f884 50e8 	strb.w	r5, [r4, #232]	; 0xe8
+			Status = VL53L0X_ERROR_INVALID_PARAMS;
+		}
+	}
+
+	/* Finally, the timing budget must be re-applied */
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8007656:	b380      	cbz	r0, 80076ba <VL53L0X_set_vcsel_pulse_period+0x2e8>
+	}
+
+	/* Perform the phase calibration. This is needed after changing on
+	 * vcsel period.
+	 * get_data_enable = 0, restore_config = 1 */
+	if (Status == VL53L0X_ERROR_NONE)
+ 8007658:	b3a0      	cbz	r0, 80076c4 <VL53L0X_set_vcsel_pulse_period+0x2f2>
+		Status = VL53L0X_perform_phase_calibration(
+			Dev, &PhaseCalInt, 0, 1);
+
+	return Status;
+}
+ 800765a:	b005      	add	sp, #20
+ 800765c:	bdf0      	pop	{r4, r5, r6, r7, pc}
+				Status = get_sequence_step_timeout(Dev,
+ 800765e:	aa01      	add	r2, sp, #4
+ 8007660:	2102      	movs	r1, #2
+ 8007662:	4620      	mov	r0, r4
+ 8007664:	f7ff fd9a 	bl	800719c <get_sequence_step_timeout>
+ 8007668:	e7f0      	b.n	800764c <VL53L0X_set_vcsel_pulse_period+0x27a>
+				Status = VL53L0X_WrByte(Dev,
+ 800766a:	463a      	mov	r2, r7
+ 800766c:	2150      	movs	r1, #80	; 0x50
+ 800766e:	4620      	mov	r0, r4
+ 8007670:	f000 fcf4 	bl	800805c <VL53L0X_WrByte>
+ 8007674:	e7eb      	b.n	800764e <VL53L0X_set_vcsel_pulse_period+0x27c>
+				Status = set_sequence_step_timeout(Dev,
+ 8007676:	9a02      	ldr	r2, [sp, #8]
+ 8007678:	2103      	movs	r1, #3
+ 800767a:	4620      	mov	r0, r4
+ 800767c:	f7ff fe1c 	bl	80072b8 <set_sequence_step_timeout>
+ 8007680:	e7e6      	b.n	8007650 <VL53L0X_set_vcsel_pulse_period+0x27e>
+				Status = set_sequence_step_timeout(Dev,
+ 8007682:	9a01      	ldr	r2, [sp, #4]
+ 8007684:	2102      	movs	r1, #2
+ 8007686:	4620      	mov	r0, r4
+ 8007688:	f7ff fe16 	bl	80072b8 <set_sequence_step_timeout>
+ 800768c:	e7e1      	b.n	8007652 <VL53L0X_set_vcsel_pulse_period+0x280>
+			Status = get_sequence_step_timeout(Dev,
+ 800768e:	aa03      	add	r2, sp, #12
+ 8007690:	2104      	movs	r1, #4
+ 8007692:	4620      	mov	r0, r4
+ 8007694:	f7ff fd82 	bl	800719c <get_sequence_step_timeout>
+			if (Status == VL53L0X_ERROR_NONE)
+ 8007698:	b118      	cbz	r0, 80076a2 <VL53L0X_set_vcsel_pulse_period+0x2d0>
+			if (Status == VL53L0X_ERROR_NONE)
+ 800769a:	b140      	cbz	r0, 80076ae <VL53L0X_set_vcsel_pulse_period+0x2dc>
+			VL53L0X_SETDEVICESPECIFICPARAMETER(
+ 800769c:	f884 50e0 	strb.w	r5, [r4, #224]	; 0xe0
+			break;
+ 80076a0:	e7d9      	b.n	8007656 <VL53L0X_set_vcsel_pulse_period+0x284>
+				Status = VL53L0X_WrByte(Dev,
+ 80076a2:	463a      	mov	r2, r7
+ 80076a4:	2170      	movs	r1, #112	; 0x70
+ 80076a6:	4620      	mov	r0, r4
+ 80076a8:	f000 fcd8 	bl	800805c <VL53L0X_WrByte>
+ 80076ac:	e7f5      	b.n	800769a <VL53L0X_set_vcsel_pulse_period+0x2c8>
+				Status = set_sequence_step_timeout(Dev,
+ 80076ae:	9a03      	ldr	r2, [sp, #12]
+ 80076b0:	2104      	movs	r1, #4
+ 80076b2:	4620      	mov	r0, r4
+ 80076b4:	f7ff fe00 	bl	80072b8 <set_sequence_step_timeout>
+ 80076b8:	e7f0      	b.n	800769c <VL53L0X_set_vcsel_pulse_period+0x2ca>
+		Status = VL53L0X_SetMeasurementTimingBudgetMicroSeconds(Dev,
+ 80076ba:	6961      	ldr	r1, [r4, #20]
+ 80076bc:	4620      	mov	r0, r4
+ 80076be:	f7fd ff09 	bl	80054d4 <VL53L0X_SetMeasurementTimingBudgetMicroSeconds>
+ 80076c2:	e7c9      	b.n	8007658 <VL53L0X_set_vcsel_pulse_period+0x286>
+		Status = VL53L0X_perform_phase_calibration(
+ 80076c4:	2301      	movs	r3, #1
+ 80076c6:	2200      	movs	r2, #0
+ 80076c8:	f10d 0103 	add.w	r1, sp, #3
+ 80076cc:	4620      	mov	r0, r4
+ 80076ce:	f7ff f830 	bl	8006732 <VL53L0X_perform_phase_calibration>
+ 80076d2:	e7c2      	b.n	800765a <VL53L0X_set_vcsel_pulse_period+0x288>
+ 80076d4:	f06f 0003 	mvn.w	r0, #3
+ 80076d8:	e7bf      	b.n	800765a <VL53L0X_set_vcsel_pulse_period+0x288>
+ 80076da:	f06f 0003 	mvn.w	r0, #3
+ 80076de:	e7bc      	b.n	800765a <VL53L0X_set_vcsel_pulse_period+0x288>
+ 80076e0:	f06f 0003 	mvn.w	r0, #3
+ 80076e4:	e7b9      	b.n	800765a <VL53L0X_set_vcsel_pulse_period+0x288>
+ 80076e6:	f06f 0003 	mvn.w	r0, #3
+ 80076ea:	e7b6      	b.n	800765a <VL53L0X_set_vcsel_pulse_period+0x288>
+
+080076ec <VL53L0X_get_vcsel_pulse_period>:
+
+VL53L0X_Error VL53L0X_get_vcsel_pulse_period(VL53L0X_DEV Dev,
+	VL53L0X_VcselPeriod VcselPeriodType, uint8_t *pVCSELPulsePeriodPCLK)
+{
+ 80076ec:	b530      	push	{r4, r5, lr}
+ 80076ee:	b083      	sub	sp, #12
+ 80076f0:	4615      	mov	r5, r2
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t vcsel_period_reg;
+
+	switch (VcselPeriodType) {
+ 80076f2:	b131      	cbz	r1, 8007702 <VL53L0X_get_vcsel_pulse_period+0x16>
+ 80076f4:	2901      	cmp	r1, #1
+ 80076f6:	d012      	beq.n	800771e <VL53L0X_get_vcsel_pulse_period+0x32>
+ 80076f8:	f06f 0403 	mvn.w	r4, #3
+	if (Status == VL53L0X_ERROR_NONE)
+		*pVCSELPulsePeriodPCLK =
+			VL53L0X_decode_vcsel_period(vcsel_period_reg);
+
+	return Status;
+}
+ 80076fc:	4620      	mov	r0, r4
+ 80076fe:	b003      	add	sp, #12
+ 8007700:	bd30      	pop	{r4, r5, pc}
+		Status = VL53L0X_RdByte(Dev,
+ 8007702:	f10d 0207 	add.w	r2, sp, #7
+ 8007706:	2150      	movs	r1, #80	; 0x50
+ 8007708:	f000 fcca 	bl	80080a0 <VL53L0X_RdByte>
+ 800770c:	4604      	mov	r4, r0
+	if (Status == VL53L0X_ERROR_NONE)
+ 800770e:	2c00      	cmp	r4, #0
+ 8007710:	d1f4      	bne.n	80076fc <VL53L0X_get_vcsel_pulse_period+0x10>
+			VL53L0X_decode_vcsel_period(vcsel_period_reg);
+ 8007712:	f89d 0007 	ldrb.w	r0, [sp, #7]
+ 8007716:	f7ff f9f0 	bl	8006afa <VL53L0X_decode_vcsel_period>
+		*pVCSELPulsePeriodPCLK =
+ 800771a:	7028      	strb	r0, [r5, #0]
+ 800771c:	e7ee      	b.n	80076fc <VL53L0X_get_vcsel_pulse_period+0x10>
+		Status = VL53L0X_RdByte(Dev,
+ 800771e:	f10d 0207 	add.w	r2, sp, #7
+ 8007722:	2170      	movs	r1, #112	; 0x70
+ 8007724:	f000 fcbc 	bl	80080a0 <VL53L0X_RdByte>
+ 8007728:	4604      	mov	r4, r0
+	break;
+ 800772a:	e7f0      	b.n	800770e <VL53L0X_get_vcsel_pulse_period+0x22>
+
+0800772c <VL53L0X_set_measurement_timing_budget_micro_seconds>:
+
+
+
+VL53L0X_Error VL53L0X_set_measurement_timing_budget_micro_seconds(VL53L0X_DEV Dev,
+		uint32_t MeasurementTimingBudgetMicroSeconds)
+{
+ 800772c:	b570      	push	{r4, r5, r6, lr}
+ 800772e:	b084      	sub	sp, #16
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint32_t FinalRangeTimingBudgetMicroSeconds;
+	VL53L0X_SchedulerSequenceSteps_t SchedulerSequenceSteps;
+	uint32_t MsrcDccTccTimeoutMicroSeconds	= 2000;
+ 8007730:	f44f 63fa 	mov.w	r3, #2000	; 0x7d0
+ 8007734:	9301      	str	r3, [sp, #4]
+	uint32_t MsrcOverheadMicroSeconds		= 660;
+	uint32_t TccOverheadMicroSeconds		= 590;
+	uint32_t DssOverheadMicroSeconds		= 690;
+	uint32_t PreRangeOverheadMicroSeconds	= 660;
+	uint32_t FinalRangeOverheadMicroSeconds = 550;
+	uint32_t PreRangeTimeoutMicroSeconds	= 0;
+ 8007736:	2300      	movs	r3, #0
+ 8007738:	9300      	str	r3, [sp, #0]
+	uint32_t cMinTimingBudgetMicroSeconds	= 20000;
+	uint32_t SubTimeout = 0;
+
+	LOG_FUNCTION_START("");
+
+	if (MeasurementTimingBudgetMicroSeconds
+ 800773a:	f644 631f 	movw	r3, #19999	; 0x4e1f
+ 800773e:	4299      	cmp	r1, r3
+ 8007740:	d95e      	bls.n	8007800 <VL53L0X_set_measurement_timing_budget_micro_seconds+0xd4>
+ 8007742:	4605      	mov	r5, r0
+ 8007744:	460c      	mov	r4, r1
+			< cMinTimingBudgetMicroSeconds) {
+		Status = VL53L0X_ERROR_INVALID_PARAMS;
+		return Status;
+	}
+
+	FinalRangeTimingBudgetMicroSeconds =
+ 8007746:	f6a1 3636 	subw	r6, r1, #2870	; 0xb36
+		MeasurementTimingBudgetMicroSeconds -
+		(StartOverheadMicroSeconds + EndOverheadMicroSeconds);
+
+	Status = VL53L0X_GetSequenceStepEnables(Dev, &SchedulerSequenceSteps);
+ 800774a:	a902      	add	r1, sp, #8
+ 800774c:	f7fd ff54 	bl	80055f8 <VL53L0X_GetSequenceStepEnables>
+
+	if (Status == VL53L0X_ERROR_NONE &&
+ 8007750:	4603      	mov	r3, r0
+ 8007752:	bb18      	cbnz	r0, 800779c <VL53L0X_set_measurement_timing_budget_micro_seconds+0x70>
+		(SchedulerSequenceSteps.TccOn  ||
+ 8007754:	f89d 2008 	ldrb.w	r2, [sp, #8]
+	if (Status == VL53L0X_ERROR_NONE &&
+ 8007758:	b92a      	cbnz	r2, 8007766 <VL53L0X_set_measurement_timing_budget_micro_seconds+0x3a>
+		SchedulerSequenceSteps.MsrcOn ||
+ 800775a:	f89d 2009 	ldrb.w	r2, [sp, #9]
+		(SchedulerSequenceSteps.TccOn  ||
+ 800775e:	b912      	cbnz	r2, 8007766 <VL53L0X_set_measurement_timing_budget_micro_seconds+0x3a>
+		SchedulerSequenceSteps.DssOn)) {
+ 8007760:	f89d 200a 	ldrb.w	r2, [sp, #10]
+		SchedulerSequenceSteps.MsrcOn ||
+ 8007764:	b1d2      	cbz	r2, 800779c <VL53L0X_set_measurement_timing_budget_micro_seconds+0x70>
+
+		/* TCC, MSRC and DSS all share the same timeout */
+		Status = get_sequence_step_timeout(Dev,
+ 8007766:	aa01      	add	r2, sp, #4
+ 8007768:	2102      	movs	r1, #2
+ 800776a:	4628      	mov	r0, r5
+ 800776c:	f7ff fd16 	bl	800719c <get_sequence_step_timeout>
+					&MsrcDccTccTimeoutMicroSeconds);
+
+		/* Subtract the TCC, MSRC and DSS timeouts if they are
+		 * enabled. */
+
+		if (Status != VL53L0X_ERROR_NONE)
+ 8007770:	4603      	mov	r3, r0
+ 8007772:	b9d8      	cbnz	r0, 80077ac <VL53L0X_set_measurement_timing_budget_micro_seconds+0x80>
+			return Status;
+
+		/* TCC */
+		if (SchedulerSequenceSteps.TccOn) {
+ 8007774:	f89d 2008 	ldrb.w	r2, [sp, #8]
+ 8007778:	b12a      	cbz	r2, 8007786 <VL53L0X_set_measurement_timing_budget_micro_seconds+0x5a>
+
+			SubTimeout = MsrcDccTccTimeoutMicroSeconds
+				+ TccOverheadMicroSeconds;
+ 800777a:	9a01      	ldr	r2, [sp, #4]
+			SubTimeout = MsrcDccTccTimeoutMicroSeconds
+ 800777c:	f202 224e 	addw	r2, r2, #590	; 0x24e
+
+			if (SubTimeout <
+ 8007780:	4296      	cmp	r6, r2
+ 8007782:	d940      	bls.n	8007806 <VL53L0X_set_measurement_timing_budget_micro_seconds+0xda>
+				FinalRangeTimingBudgetMicroSeconds) {
+				FinalRangeTimingBudgetMicroSeconds -=
+ 8007784:	1ab6      	subs	r6, r6, r2
+			LOG_FUNCTION_END(Status);
+			return Status;
+		}
+
+		/* DSS */
+		if (SchedulerSequenceSteps.DssOn) {
+ 8007786:	f89d 200a 	ldrb.w	r2, [sp, #10]
+ 800778a:	b192      	cbz	r2, 80077b2 <VL53L0X_set_measurement_timing_budget_micro_seconds+0x86>
+
+			SubTimeout = 2 * (MsrcDccTccTimeoutMicroSeconds +
+ 800778c:	9a01      	ldr	r2, [sp, #4]
+ 800778e:	f202 22b2 	addw	r2, r2, #690	; 0x2b2
+ 8007792:	0051      	lsls	r1, r2, #1
+				DssOverheadMicroSeconds);
+
+			if (SubTimeout < FinalRangeTimingBudgetMicroSeconds) {
+ 8007794:	ebb6 0f42 	cmp.w	r6, r2, lsl #1
+ 8007798:	d916      	bls.n	80077c8 <VL53L0X_set_measurement_timing_budget_micro_seconds+0x9c>
+				FinalRangeTimingBudgetMicroSeconds
+							-= SubTimeout;
+ 800779a:	1a76      	subs	r6, r6, r1
+			}
+		}
+
+	}
+
+	if (Status != VL53L0X_ERROR_NONE) {
+ 800779c:	b933      	cbnz	r3, 80077ac <VL53L0X_set_measurement_timing_budget_micro_seconds+0x80>
+		LOG_FUNCTION_END(Status);
+		return Status;
+	}
+
+	if (SchedulerSequenceSteps.PreRangeOn) {
+ 800779e:	f89d 200b 	ldrb.w	r2, [sp, #11]
+ 80077a2:	b9ba      	cbnz	r2, 80077d4 <VL53L0X_set_measurement_timing_budget_micro_seconds+0xa8>
+			Status = VL53L0X_ERROR_INVALID_PARAMS;
+		}
+	}
+
+
+	if (Status == VL53L0X_ERROR_NONE &&
+ 80077a4:	b913      	cbnz	r3, 80077ac <VL53L0X_set_measurement_timing_budget_micro_seconds+0x80>
+		SchedulerSequenceSteps.FinalRangeOn) {
+ 80077a6:	f89d 200c 	ldrb.w	r2, [sp, #12]
+	if (Status == VL53L0X_ERROR_NONE &&
+ 80077aa:	bb02      	cbnz	r2, 80077ee <VL53L0X_set_measurement_timing_budget_micro_seconds+0xc2>
+	}
+
+	LOG_FUNCTION_END(Status);
+
+	return Status;
+}
+ 80077ac:	4618      	mov	r0, r3
+ 80077ae:	b004      	add	sp, #16
+ 80077b0:	bd70      	pop	{r4, r5, r6, pc}
+		} else if (SchedulerSequenceSteps.MsrcOn) {
+ 80077b2:	f89d 2009 	ldrb.w	r2, [sp, #9]
+ 80077b6:	2a00      	cmp	r2, #0
+ 80077b8:	d0f0      	beq.n	800779c <VL53L0X_set_measurement_timing_budget_micro_seconds+0x70>
+			SubTimeout = MsrcDccTccTimeoutMicroSeconds +
+ 80077ba:	9a01      	ldr	r2, [sp, #4]
+ 80077bc:	f502 7225 	add.w	r2, r2, #660	; 0x294
+			if (SubTimeout < FinalRangeTimingBudgetMicroSeconds) {
+ 80077c0:	4296      	cmp	r6, r2
+ 80077c2:	d904      	bls.n	80077ce <VL53L0X_set_measurement_timing_budget_micro_seconds+0xa2>
+							-= SubTimeout;
+ 80077c4:	1ab6      	subs	r6, r6, r2
+ 80077c6:	e7e9      	b.n	800779c <VL53L0X_set_measurement_timing_budget_micro_seconds+0x70>
+				Status = VL53L0X_ERROR_INVALID_PARAMS;
+ 80077c8:	f06f 0303 	mvn.w	r3, #3
+ 80077cc:	e7ee      	b.n	80077ac <VL53L0X_set_measurement_timing_budget_micro_seconds+0x80>
+				Status = VL53L0X_ERROR_INVALID_PARAMS;
+ 80077ce:	f06f 0303 	mvn.w	r3, #3
+		return Status;
+ 80077d2:	e7eb      	b.n	80077ac <VL53L0X_set_measurement_timing_budget_micro_seconds+0x80>
+		Status = get_sequence_step_timeout(Dev,
+ 80077d4:	466a      	mov	r2, sp
+ 80077d6:	2103      	movs	r1, #3
+ 80077d8:	4628      	mov	r0, r5
+ 80077da:	f7ff fcdf 	bl	800719c <get_sequence_step_timeout>
+ 80077de:	4603      	mov	r3, r0
+		SubTimeout = PreRangeTimeoutMicroSeconds +
+ 80077e0:	9a00      	ldr	r2, [sp, #0]
+ 80077e2:	f502 7225 	add.w	r2, r2, #660	; 0x294
+		if (SubTimeout < FinalRangeTimingBudgetMicroSeconds) {
+ 80077e6:	4296      	cmp	r6, r2
+ 80077e8:	d910      	bls.n	800780c <VL53L0X_set_measurement_timing_budget_micro_seconds+0xe0>
+			FinalRangeTimingBudgetMicroSeconds -= SubTimeout;
+ 80077ea:	1ab6      	subs	r6, r6, r2
+ 80077ec:	e7da      	b.n	80077a4 <VL53L0X_set_measurement_timing_budget_micro_seconds+0x78>
+		Status = set_sequence_step_timeout(Dev,
+ 80077ee:	f2a6 2226 	subw	r2, r6, #550	; 0x226
+ 80077f2:	2104      	movs	r1, #4
+ 80077f4:	4628      	mov	r0, r5
+ 80077f6:	f7ff fd5f 	bl	80072b8 <set_sequence_step_timeout>
+ 80077fa:	4603      	mov	r3, r0
+		VL53L0X_SETPARAMETERFIELD(Dev,
+ 80077fc:	616c      	str	r4, [r5, #20]
+ 80077fe:	e7d5      	b.n	80077ac <VL53L0X_set_measurement_timing_budget_micro_seconds+0x80>
+		return Status;
+ 8007800:	f06f 0303 	mvn.w	r3, #3
+ 8007804:	e7d2      	b.n	80077ac <VL53L0X_set_measurement_timing_budget_micro_seconds+0x80>
+ 8007806:	f06f 0303 	mvn.w	r3, #3
+ 800780a:	e7cf      	b.n	80077ac <VL53L0X_set_measurement_timing_budget_micro_seconds+0x80>
+			Status = VL53L0X_ERROR_INVALID_PARAMS;
+ 800780c:	f06f 0303 	mvn.w	r3, #3
+ 8007810:	e7cc      	b.n	80077ac <VL53L0X_set_measurement_timing_budget_micro_seconds+0x80>
+
+08007812 <VL53L0X_get_measurement_timing_budget_micro_seconds>:
+
+VL53L0X_Error VL53L0X_get_measurement_timing_budget_micro_seconds(VL53L0X_DEV Dev,
+		uint32_t *pMeasurementTimingBudgetMicroSeconds)
+{
+ 8007812:	b530      	push	{r4, r5, lr}
+ 8007814:	b087      	sub	sp, #28
+ 8007816:	4605      	mov	r5, r0
+ 8007818:	460c      	mov	r4, r1
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	VL53L0X_SchedulerSequenceSteps_t SchedulerSequenceSteps;
+	uint32_t FinalRangeTimeoutMicroSeconds;
+	uint32_t MsrcDccTccTimeoutMicroSeconds	= 2000;
+ 800781a:	f44f 63fa 	mov.w	r3, #2000	; 0x7d0
+ 800781e:	9302      	str	r3, [sp, #8]
+	uint32_t MsrcOverheadMicroSeconds		= 660;
+	uint32_t TccOverheadMicroSeconds		= 590;
+	uint32_t DssOverheadMicroSeconds		= 690;
+	uint32_t PreRangeOverheadMicroSeconds	= 660;
+	uint32_t FinalRangeOverheadMicroSeconds = 550;
+	uint32_t PreRangeTimeoutMicroSeconds	= 0;
+ 8007820:	2300      	movs	r3, #0
+ 8007822:	9301      	str	r3, [sp, #4]
+
+	LOG_FUNCTION_START("");
+
+	/* Start and end overhead times always present */
+	*pMeasurementTimingBudgetMicroSeconds
+		= StartOverheadMicroSeconds + EndOverheadMicroSeconds;
+ 8007824:	f640 3336 	movw	r3, #2870	; 0xb36
+ 8007828:	600b      	str	r3, [r1, #0]
+
+	Status = VL53L0X_GetSequenceStepEnables(Dev, &SchedulerSequenceSteps);
+ 800782a:	a904      	add	r1, sp, #16
+ 800782c:	f7fd fee4 	bl	80055f8 <VL53L0X_GetSequenceStepEnables>
+
+	if (Status != VL53L0X_ERROR_NONE) {
+ 8007830:	4603      	mov	r3, r0
+ 8007832:	bb68      	cbnz	r0, 8007890 <VL53L0X_get_measurement_timing_budget_micro_seconds+0x7e>
+		LOG_FUNCTION_END(Status);
+		return Status;
+	}
+
+
+	if (SchedulerSequenceSteps.TccOn  ||
+ 8007834:	f89d 2010 	ldrb.w	r2, [sp, #16]
+ 8007838:	b92a      	cbnz	r2, 8007846 <VL53L0X_get_measurement_timing_budget_micro_seconds+0x34>
+		SchedulerSequenceSteps.MsrcOn ||
+ 800783a:	f89d 2011 	ldrb.w	r2, [sp, #17]
+	if (SchedulerSequenceSteps.TccOn  ||
+ 800783e:	b912      	cbnz	r2, 8007846 <VL53L0X_get_measurement_timing_budget_micro_seconds+0x34>
+		SchedulerSequenceSteps.DssOn) {
+ 8007840:	f89d 2012 	ldrb.w	r2, [sp, #18]
+		SchedulerSequenceSteps.MsrcOn ||
+ 8007844:	b1ca      	cbz	r2, 800787a <VL53L0X_get_measurement_timing_budget_micro_seconds+0x68>
+
+		Status = get_sequence_step_timeout(Dev,
+ 8007846:	aa02      	add	r2, sp, #8
+ 8007848:	2102      	movs	r1, #2
+ 800784a:	4628      	mov	r0, r5
+ 800784c:	f7ff fca6 	bl	800719c <get_sequence_step_timeout>
+				VL53L0X_SEQUENCESTEP_MSRC,
+				&MsrcDccTccTimeoutMicroSeconds);
+
+		if (Status == VL53L0X_ERROR_NONE) {
+ 8007850:	4603      	mov	r3, r0
+ 8007852:	b990      	cbnz	r0, 800787a <VL53L0X_get_measurement_timing_budget_micro_seconds+0x68>
+			if (SchedulerSequenceSteps.TccOn) {
+ 8007854:	f89d 2010 	ldrb.w	r2, [sp, #16]
+ 8007858:	b12a      	cbz	r2, 8007866 <VL53L0X_get_measurement_timing_budget_micro_seconds+0x54>
+				*pMeasurementTimingBudgetMicroSeconds +=
+					MsrcDccTccTimeoutMicroSeconds +
+ 800785a:	9a02      	ldr	r2, [sp, #8]
+ 800785c:	f202 214e 	addw	r1, r2, #590	; 0x24e
+				*pMeasurementTimingBudgetMicroSeconds +=
+ 8007860:	6822      	ldr	r2, [r4, #0]
+ 8007862:	440a      	add	r2, r1
+ 8007864:	6022      	str	r2, [r4, #0]
+					TccOverheadMicroSeconds;
+			}
+
+			if (SchedulerSequenceSteps.DssOn) {
+ 8007866:	f89d 2012 	ldrb.w	r2, [sp, #18]
+ 800786a:	b1a2      	cbz	r2, 8007896 <VL53L0X_get_measurement_timing_budget_micro_seconds+0x84>
+				*pMeasurementTimingBudgetMicroSeconds +=
+				2 * (MsrcDccTccTimeoutMicroSeconds +
+ 800786c:	9a02      	ldr	r2, [sp, #8]
+ 800786e:	f202 21b2 	addw	r1, r2, #690	; 0x2b2
+				*pMeasurementTimingBudgetMicroSeconds +=
+ 8007872:	6822      	ldr	r2, [r4, #0]
+ 8007874:	eb02 0241 	add.w	r2, r2, r1, lsl #1
+ 8007878:	6022      	str	r2, [r4, #0]
+					MsrcOverheadMicroSeconds;
+			}
+		}
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+ 800787a:	b913      	cbnz	r3, 8007882 <VL53L0X_get_measurement_timing_budget_micro_seconds+0x70>
+		if (SchedulerSequenceSteps.PreRangeOn) {
+ 800787c:	f89d 2013 	ldrb.w	r2, [sp, #19]
+ 8007880:	b9a2      	cbnz	r2, 80078ac <VL53L0X_get_measurement_timing_budget_micro_seconds+0x9a>
+				PreRangeTimeoutMicroSeconds +
+				PreRangeOverheadMicroSeconds;
+		}
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8007882:	b913      	cbnz	r3, 800788a <VL53L0X_get_measurement_timing_budget_micro_seconds+0x78>
+		if (SchedulerSequenceSteps.FinalRangeOn) {
+ 8007884:	f89d 2014 	ldrb.w	r2, [sp, #20]
+ 8007888:	b9ea      	cbnz	r2, 80078c6 <VL53L0X_get_measurement_timing_budget_micro_seconds+0xb4>
+				(FinalRangeTimeoutMicroSeconds +
+				FinalRangeOverheadMicroSeconds);
+		}
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+ 800788a:	b90b      	cbnz	r3, 8007890 <VL53L0X_get_measurement_timing_budget_micro_seconds+0x7e>
+		VL53L0X_SETPARAMETERFIELD(Dev,
+ 800788c:	6822      	ldr	r2, [r4, #0]
+ 800788e:	616a      	str	r2, [r5, #20]
+			*pMeasurementTimingBudgetMicroSeconds);
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+ 8007890:	4618      	mov	r0, r3
+ 8007892:	b007      	add	sp, #28
+ 8007894:	bd30      	pop	{r4, r5, pc}
+			} else if (SchedulerSequenceSteps.MsrcOn) {
+ 8007896:	f89d 2011 	ldrb.w	r2, [sp, #17]
+ 800789a:	2a00      	cmp	r2, #0
+ 800789c:	d0ed      	beq.n	800787a <VL53L0X_get_measurement_timing_budget_micro_seconds+0x68>
+					MsrcDccTccTimeoutMicroSeconds +
+ 800789e:	9a02      	ldr	r2, [sp, #8]
+ 80078a0:	f502 7125 	add.w	r1, r2, #660	; 0x294
+				*pMeasurementTimingBudgetMicroSeconds +=
+ 80078a4:	6822      	ldr	r2, [r4, #0]
+ 80078a6:	440a      	add	r2, r1
+ 80078a8:	6022      	str	r2, [r4, #0]
+ 80078aa:	e7e6      	b.n	800787a <VL53L0X_get_measurement_timing_budget_micro_seconds+0x68>
+			Status = get_sequence_step_timeout(Dev,
+ 80078ac:	aa01      	add	r2, sp, #4
+ 80078ae:	2103      	movs	r1, #3
+ 80078b0:	4628      	mov	r0, r5
+ 80078b2:	f7ff fc73 	bl	800719c <get_sequence_step_timeout>
+ 80078b6:	4603      	mov	r3, r0
+				PreRangeTimeoutMicroSeconds +
+ 80078b8:	9a01      	ldr	r2, [sp, #4]
+ 80078ba:	f502 7125 	add.w	r1, r2, #660	; 0x294
+			*pMeasurementTimingBudgetMicroSeconds +=
+ 80078be:	6822      	ldr	r2, [r4, #0]
+ 80078c0:	440a      	add	r2, r1
+ 80078c2:	6022      	str	r2, [r4, #0]
+ 80078c4:	e7dd      	b.n	8007882 <VL53L0X_get_measurement_timing_budget_micro_seconds+0x70>
+			Status = get_sequence_step_timeout(Dev,
+ 80078c6:	aa03      	add	r2, sp, #12
+ 80078c8:	2104      	movs	r1, #4
+ 80078ca:	4628      	mov	r0, r5
+ 80078cc:	f7ff fc66 	bl	800719c <get_sequence_step_timeout>
+ 80078d0:	4603      	mov	r3, r0
+				(FinalRangeTimeoutMicroSeconds +
+ 80078d2:	9a03      	ldr	r2, [sp, #12]
+ 80078d4:	f202 2126 	addw	r1, r2, #550	; 0x226
+			*pMeasurementTimingBudgetMicroSeconds +=
+ 80078d8:	6822      	ldr	r2, [r4, #0]
+ 80078da:	440a      	add	r2, r1
+ 80078dc:	6022      	str	r2, [r4, #0]
+ 80078de:	e7d4      	b.n	800788a <VL53L0X_get_measurement_timing_budget_micro_seconds+0x78>
+
+080078e0 <VL53L0X_load_tuning_settings>:
+
+
+
+VL53L0X_Error VL53L0X_load_tuning_settings(VL53L0X_DEV Dev,
+		uint8_t *pTuningSettingBuffer)
+{
+ 80078e0:	b570      	push	{r4, r5, r6, lr}
+ 80078e2:	b082      	sub	sp, #8
+ 80078e4:	4606      	mov	r6, r0
+ 80078e6:	460d      	mov	r5, r1
+	uint8_t localBuffer[4]; /* max */
+	uint16_t Temp16;
+
+	LOG_FUNCTION_START("");
+
+	Index = 0;
+ 80078e8:	2400      	movs	r4, #0
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ 80078ea:	4620      	mov	r0, r4
+
+	while ((*(pTuningSettingBuffer + Index) != 0) &&
+ 80078ec:	e03d      	b.n	800796a <VL53L0X_load_tuning_settings+0x8a>
+			(Status == VL53L0X_ERROR_NONE)) {
+		NumberOfWrites = *(pTuningSettingBuffer + Index);
+		Index++;
+		if (NumberOfWrites == 0xFF) {
+			/* internal parameters */
+			SelectParam = *(pTuningSettingBuffer + Index);
+ 80078ee:	5cab      	ldrb	r3, [r5, r2]
+			Index++;
+ 80078f0:	1ca2      	adds	r2, r4, #2
+			switch (SelectParam) {
+ 80078f2:	2b03      	cmp	r3, #3
+ 80078f4:	d845      	bhi.n	8007982 <VL53L0X_load_tuning_settings+0xa2>
+ 80078f6:	e8df f003 	tbb	[pc, r3]
+ 80078fa:	0b02      	.short	0x0b02
+ 80078fc:	1d14      	.short	0x1d14
+			case 0: /* uint16_t SigmaEstRefArray -> 2 bytes */
+				msb = *(pTuningSettingBuffer + Index);
+ 80078fe:	5caa      	ldrb	r2, [r5, r2]
+				Index++;
+ 8007900:	1ce3      	adds	r3, r4, #3
+				lsb = *(pTuningSettingBuffer + Index);
+				Index++;
+				Temp16 = VL53L0X_MAKEUINT16(lsb, msb);
+ 8007902:	5ceb      	ldrb	r3, [r5, r3]
+ 8007904:	3404      	adds	r4, #4
+ 8007906:	eb03 2302 	add.w	r3, r3, r2, lsl #8
+				PALDevDataSet(Dev, SigmaEstRefArray, Temp16);
+ 800790a:	f8a6 3134 	strh.w	r3, [r6, #308]	; 0x134
+				break;
+ 800790e:	e02c      	b.n	800796a <VL53L0X_load_tuning_settings+0x8a>
+			case 1: /* uint16_t SigmaEstEffPulseWidth -> 2 bytes */
+				msb = *(pTuningSettingBuffer + Index);
+ 8007910:	5caa      	ldrb	r2, [r5, r2]
+				Index++;
+ 8007912:	1ce3      	adds	r3, r4, #3
+				lsb = *(pTuningSettingBuffer + Index);
+				Index++;
+				Temp16 = VL53L0X_MAKEUINT16(lsb, msb);
+ 8007914:	5ceb      	ldrb	r3, [r5, r3]
+ 8007916:	3404      	adds	r4, #4
+ 8007918:	eb03 2302 	add.w	r3, r3, r2, lsl #8
+				PALDevDataSet(Dev, SigmaEstEffPulseWidth,
+ 800791c:	f8a6 3136 	strh.w	r3, [r6, #310]	; 0x136
+					Temp16);
+				break;
+ 8007920:	e023      	b.n	800796a <VL53L0X_load_tuning_settings+0x8a>
+			case 2: /* uint16_t SigmaEstEffAmbWidth -> 2 bytes */
+				msb = *(pTuningSettingBuffer + Index);
+ 8007922:	5caa      	ldrb	r2, [r5, r2]
+				Index++;
+ 8007924:	1ce3      	adds	r3, r4, #3
+				lsb = *(pTuningSettingBuffer + Index);
+				Index++;
+				Temp16 = VL53L0X_MAKEUINT16(lsb, msb);
+ 8007926:	5ceb      	ldrb	r3, [r5, r3]
+ 8007928:	3404      	adds	r4, #4
+ 800792a:	eb03 2302 	add.w	r3, r3, r2, lsl #8
+				PALDevDataSet(Dev, SigmaEstEffAmbWidth, Temp16);
+ 800792e:	f8a6 3138 	strh.w	r3, [r6, #312]	; 0x138
+				break;
+ 8007932:	e01a      	b.n	800796a <VL53L0X_load_tuning_settings+0x8a>
+			case 3: /* uint16_t targetRefRate -> 2 bytes */
+				msb = *(pTuningSettingBuffer + Index);
+ 8007934:	5caa      	ldrb	r2, [r5, r2]
+				Index++;
+ 8007936:	1ce3      	adds	r3, r4, #3
+				lsb = *(pTuningSettingBuffer + Index);
+				Index++;
+				Temp16 = VL53L0X_MAKEUINT16(lsb, msb);
+ 8007938:	5ceb      	ldrb	r3, [r5, r3]
+ 800793a:	3404      	adds	r4, #4
+ 800793c:	eb03 2302 	add.w	r3, r3, r2, lsl #8
+				PALDevDataSet(Dev, targetRefRate, Temp16);
+ 8007940:	f8a6 313c 	strh.w	r3, [r6, #316]	; 0x13c
+				break;
+ 8007944:	e011      	b.n	800796a <VL53L0X_load_tuning_settings+0x8a>
+			default: /* invalid parameter */
+				Status = VL53L0X_ERROR_INVALID_PARAMS;
+			}
+
+		} else if (NumberOfWrites <= 4) {
+			Address = *(pTuningSettingBuffer + Index);
+ 8007946:	5ca9      	ldrb	r1, [r5, r2]
+			Index++;
+ 8007948:	3402      	adds	r4, #2
+
+			for (i = 0; i < NumberOfWrites; i++) {
+ 800794a:	2200      	movs	r2, #0
+ 800794c:	e007      	b.n	800795e <VL53L0X_load_tuning_settings+0x7e>
+				localBuffer[i] = *(pTuningSettingBuffer +
+ 800794e:	5d28      	ldrb	r0, [r5, r4]
+ 8007950:	f102 0c08 	add.w	ip, r2, #8
+ 8007954:	44ec      	add	ip, sp
+ 8007956:	f80c 0c04 	strb.w	r0, [ip, #-4]
+							Index);
+				Index++;
+ 800795a:	3401      	adds	r4, #1
+			for (i = 0; i < NumberOfWrites; i++) {
+ 800795c:	3201      	adds	r2, #1
+ 800795e:	4293      	cmp	r3, r2
+ 8007960:	dcf5      	bgt.n	800794e <VL53L0X_load_tuning_settings+0x6e>
+			}
+
+			Status = VL53L0X_WriteMulti(Dev, Address, localBuffer,
+ 8007962:	aa01      	add	r2, sp, #4
+ 8007964:	4630      	mov	r0, r6
+ 8007966:	f000 fb3f 	bl	8007fe8 <VL53L0X_WriteMulti>
+	while ((*(pTuningSettingBuffer + Index) != 0) &&
+ 800796a:	5d2b      	ldrb	r3, [r5, r4]
+ 800796c:	b16b      	cbz	r3, 800798a <VL53L0X_load_tuning_settings+0xaa>
+ 800796e:	b960      	cbnz	r0, 800798a <VL53L0X_load_tuning_settings+0xaa>
+		Index++;
+ 8007970:	1c62      	adds	r2, r4, #1
+		if (NumberOfWrites == 0xFF) {
+ 8007972:	2bff      	cmp	r3, #255	; 0xff
+ 8007974:	d0bb      	beq.n	80078ee <VL53L0X_load_tuning_settings+0xe>
+		} else if (NumberOfWrites <= 4) {
+ 8007976:	2b04      	cmp	r3, #4
+ 8007978:	d9e5      	bls.n	8007946 <VL53L0X_load_tuning_settings+0x66>
+		Index++;
+ 800797a:	4614      	mov	r4, r2
+					NumberOfWrites);
+
+		} else {
+			Status = VL53L0X_ERROR_INVALID_PARAMS;
+ 800797c:	f06f 0003 	mvn.w	r0, #3
+ 8007980:	e7f3      	b.n	800796a <VL53L0X_load_tuning_settings+0x8a>
+			switch (SelectParam) {
+ 8007982:	4614      	mov	r4, r2
+ 8007984:	f06f 0003 	mvn.w	r0, #3
+ 8007988:	e7ef      	b.n	800796a <VL53L0X_load_tuning_settings+0x8a>
+		}
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+ 800798a:	b002      	add	sp, #8
+ 800798c:	bd70      	pop	{r4, r5, r6, pc}
+
+0800798e <VL53L0X_get_total_xtalk_rate>:
+
+VL53L0X_Error VL53L0X_get_total_xtalk_rate(VL53L0X_DEV Dev,
+	VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
+	FixPoint1616_t *ptotal_xtalk_rate_mcps)
+{
+ 800798e:	b570      	push	{r4, r5, r6, lr}
+ 8007990:	b082      	sub	sp, #8
+ 8007992:	4606      	mov	r6, r0
+ 8007994:	460d      	mov	r5, r1
+ 8007996:	4614      	mov	r4, r2
+
+	uint8_t xtalkCompEnable;
+	FixPoint1616_t totalXtalkMegaCps;
+	FixPoint1616_t xtalkPerSpadMegaCps;
+
+	*ptotal_xtalk_rate_mcps = 0;
+ 8007998:	2300      	movs	r3, #0
+ 800799a:	6013      	str	r3, [r2, #0]
+
+	Status = VL53L0X_GetXTalkCompensationEnable(Dev, &xtalkCompEnable);
+ 800799c:	f10d 0107 	add.w	r1, sp, #7
+ 80079a0:	f7fd fe81 	bl	80056a6 <VL53L0X_GetXTalkCompensationEnable>
+	if (Status == VL53L0X_ERROR_NONE) {
+ 80079a4:	b948      	cbnz	r0, 80079ba <VL53L0X_get_total_xtalk_rate+0x2c>
+
+		if (xtalkCompEnable) {
+ 80079a6:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 80079aa:	b133      	cbz	r3, 80079ba <VL53L0X_get_total_xtalk_rate+0x2c>
+
+			VL53L0X_GETPARAMETERFIELD(
+ 80079ac:	6a32      	ldr	r2, [r6, #32]
+				XTalkCompensationRateMegaCps,
+				xtalkPerSpadMegaCps);
+
+			/* FixPoint1616 * FixPoint 8:8 = FixPoint0824 */
+			totalXtalkMegaCps =
+				pRangingMeasurementData->EffectiveSpadRtnCount *
+ 80079ae:	8aab      	ldrh	r3, [r5, #20]
+			totalXtalkMegaCps =
+ 80079b0:	fb02 f303 	mul.w	r3, r2, r3
+				xtalkPerSpadMegaCps;
+
+			/* FixPoint0824 >> 8 = FixPoint1616 */
+			*ptotal_xtalk_rate_mcps =
+				(totalXtalkMegaCps + 0x80) >> 8;
+ 80079b4:	3380      	adds	r3, #128	; 0x80
+ 80079b6:	0a1b      	lsrs	r3, r3, #8
+			*ptotal_xtalk_rate_mcps =
+ 80079b8:	6023      	str	r3, [r4, #0]
+		}
+	}
+
+	return Status;
+}
+ 80079ba:	b002      	add	sp, #8
+ 80079bc:	bd70      	pop	{r4, r5, r6, pc}
+
+080079be <VL53L0X_get_total_signal_rate>:
+
+VL53L0X_Error VL53L0X_get_total_signal_rate(VL53L0X_DEV Dev,
+	VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
+	FixPoint1616_t *ptotal_signal_rate_mcps)
+{
+ 80079be:	b510      	push	{r4, lr}
+ 80079c0:	b082      	sub	sp, #8
+ 80079c2:	4614      	mov	r4, r2
+	FixPoint1616_t totalXtalkMegaCps;
+
+	LOG_FUNCTION_START("");
+
+	*ptotal_signal_rate_mcps =
+		pRangingMeasurementData->SignalRateRtnMegaCps;
+ 80079c4:	68cb      	ldr	r3, [r1, #12]
+	*ptotal_signal_rate_mcps =
+ 80079c6:	6013      	str	r3, [r2, #0]
+
+	Status = VL53L0X_get_total_xtalk_rate(
+ 80079c8:	aa01      	add	r2, sp, #4
+ 80079ca:	f7ff ffe0 	bl	800798e <VL53L0X_get_total_xtalk_rate>
+		Dev, pRangingMeasurementData, &totalXtalkMegaCps);
+
+	if (Status == VL53L0X_ERROR_NONE)
+ 80079ce:	b918      	cbnz	r0, 80079d8 <VL53L0X_get_total_signal_rate+0x1a>
+		*ptotal_signal_rate_mcps += totalXtalkMegaCps;
+ 80079d0:	6823      	ldr	r3, [r4, #0]
+ 80079d2:	9a01      	ldr	r2, [sp, #4]
+ 80079d4:	4413      	add	r3, r2
+ 80079d6:	6023      	str	r3, [r4, #0]
+
+	return Status;
+}
+ 80079d8:	b002      	add	sp, #8
+ 80079da:	bd10      	pop	{r4, pc}
+
+080079dc <VL53L0X_calc_dmax>:
+	FixPoint1616_t pwMult,
+	uint32_t sigmaEstimateP1,
+	FixPoint1616_t sigmaEstimateP2,
+	uint32_t peakVcselDuration_us,
+	uint32_t *pdmax_mm)
+{
+ 80079dc:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 80079e0:	9c07      	ldr	r4, [sp, #28]
+ 80079e2:	9f08      	ldr	r7, [sp, #32]
+ 80079e4:	9e09      	ldr	r6, [sp, #36]	; 0x24
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+	LOG_FUNCTION_START("");
+
+	dmaxCalRange_mm =
+		PALDevDataGet(Dev, DmaxCalRangeMilliMeter);
+ 80079e6:	f8b0 5154 	ldrh.w	r5, [r0, #340]	; 0x154
+
+	dmaxCalSignalRateRtn_mcps =
+ 80079ea:	f8d0 0158 	ldr.w	r0, [r0, #344]	; 0x158
+		PALDevDataGet(Dev, DmaxCalSignalRateRtnMegaCps);
+
+	/* uint32 * FixPoint1616 = FixPoint1616 */
+	SignalAt0mm = dmaxCalRange_mm * dmaxCalSignalRateRtn_mcps;
+ 80079ee:	fb00 fc05 	mul.w	ip, r0, r5
+
+	/* FixPoint1616 >> 8 = FixPoint2408 */
+	SignalAt0mm = (SignalAt0mm + 0x80) >> 8;
+ 80079f2:	f10c 0c80 	add.w	ip, ip, #128	; 0x80
+ 80079f6:	ea4f 2c1c 	mov.w	ip, ip, lsr #8
+	SignalAt0mm *= dmaxCalRange_mm;
+ 80079fa:	fb0c f505 	mul.w	r5, ip, r5
+
+	minSignalNeeded_p1 = 0;
+	if (totalCorrSignalRate_mcps > 0) {
+ 80079fe:	4610      	mov	r0, r2
+ 8007a00:	b15a      	cbz	r2, 8007a1a <VL53L0X_calc_dmax+0x3e>
+		 * division */
+		signalRateTemp_mcps = totalSignalRate_mcps << 10;
+
+		/* Add rounding value prior to division */
+		minSignalNeeded_p1 = signalRateTemp_mcps +
+			(totalCorrSignalRate_mcps/2);
+ 8007a02:	0852      	lsrs	r2, r2, #1
+		minSignalNeeded_p1 = signalRateTemp_mcps +
+ 8007a04:	eb02 2181 	add.w	r1, r2, r1, lsl #10
+
+		/* FixPoint0626/FixPoint1616 = FixPoint2210 */
+		minSignalNeeded_p1 /= totalCorrSignalRate_mcps;
+ 8007a08:	fbb1 f1f0 	udiv	r1, r1, r0
+
+		/* Apply a factored version of the speed of light.
+		 Correction to be applied at the end */
+		minSignalNeeded_p1 *= 3;
+ 8007a0c:	eb01 0141 	add.w	r1, r1, r1, lsl #1
+
+		/* FixPoint2210 * FixPoint2210 = FixPoint1220 */
+		minSignalNeeded_p1 *= minSignalNeeded_p1;
+ 8007a10:	fb01 f101 	mul.w	r1, r1, r1
+
+		/* FixPoint1220 >> 16 = FixPoint2804 */
+		minSignalNeeded_p1 = (minSignalNeeded_p1 + 0x8000) >> 16;
+ 8007a14:	f501 4100 	add.w	r1, r1, #32768	; 0x8000
+ 8007a18:	0c08      	lsrs	r0, r1, #16
+	}
+
+	minSignalNeeded_p2 = pwMult * sigmaEstimateP1;
+ 8007a1a:	9a06      	ldr	r2, [sp, #24]
+ 8007a1c:	fb03 f202 	mul.w	r2, r3, r2
+
+	/* FixPoint1616 >> 16 =	 uint32 */
+	minSignalNeeded_p2 = (minSignalNeeded_p2 + 0x8000) >> 16;
+ 8007a20:	f502 4200 	add.w	r2, r2, #32768	; 0x8000
+ 8007a24:	0c12      	lsrs	r2, r2, #16
+
+	/* uint32 * uint32	=  uint32 */
+	minSignalNeeded_p2 *= minSignalNeeded_p2;
+ 8007a26:	fb02 f202 	mul.w	r2, r2, r2
+	/* Check sigmaEstimateP2
+	 * If this value is too high there is not enough signal rate
+	 * to calculate dmax value so set a suitable value to ensure
+	 * a very small dmax.
+	 */
+	sigmaEstP2Tmp = (sigmaEstimateP2 + 0x8000) >> 16;
+ 8007a2a:	f504 4300 	add.w	r3, r4, #32768	; 0x8000
+ 8007a2e:	0c1b      	lsrs	r3, r3, #16
+	sigmaEstP2Tmp = (sigmaEstP2Tmp + cAmbEffWidthSigmaEst_ns/2)/
+ 8007a30:	3303      	adds	r3, #3
+ 8007a32:	4926      	ldr	r1, [pc, #152]	; (8007acc <VL53L0X_calc_dmax+0xf0>)
+ 8007a34:	fba1 1303 	umull	r1, r3, r1, r3
+ 8007a38:	089b      	lsrs	r3, r3, #2
+		cAmbEffWidthSigmaEst_ns;
+	sigmaEstP2Tmp *= cAmbEffWidthDMax_ns;
+ 8007a3a:	ebc3 03c3 	rsb	r3, r3, r3, lsl #3
+
+	if (sigmaEstP2Tmp > 0xffff) {
+ 8007a3e:	f5b3 3f80 	cmp.w	r3, #65536	; 0x10000
+ 8007a42:	d23f      	bcs.n	8007ac4 <VL53L0X_calc_dmax+0xe8>
+
+		/* DMAX uses a different ambient width from sigma, so apply
+		 * correction.
+		 * Perform division before multiplication to prevent overflow.
+		 */
+		sigmaEstimateP2 = (sigmaEstimateP2 + cAmbEffWidthSigmaEst_ns/2)/
+ 8007a44:	1ce3      	adds	r3, r4, #3
+ 8007a46:	4921      	ldr	r1, [pc, #132]	; (8007acc <VL53L0X_calc_dmax+0xf0>)
+ 8007a48:	fba1 1303 	umull	r1, r3, r1, r3
+ 8007a4c:	089b      	lsrs	r3, r3, #2
+			cAmbEffWidthSigmaEst_ns;
+		sigmaEstimateP2 *= cAmbEffWidthDMax_ns;
+ 8007a4e:	ebc3 03c3 	rsb	r3, r3, r3, lsl #3
+
+		/* FixPoint1616 >> 16 = uint32 */
+		minSignalNeeded_p3 = (sigmaEstimateP2 + 0x8000) >> 16;
+ 8007a52:	f503 4300 	add.w	r3, r3, #32768	; 0x8000
+ 8007a56:	0c1b      	lsrs	r3, r3, #16
+
+		minSignalNeeded_p3 *= minSignalNeeded_p3;
+ 8007a58:	fb03 f303 	mul.w	r3, r3, r3
+
+	/* FixPoint0428 >> 14 = FixPoint1814 */
+	minSignalNeeded_p4 = (minSignalNeeded_p4 + 0x2000) >> 14;
+
+	/* uint32 + uint32 = uint32 */
+	minSignalNeeded = (minSignalNeeded_p2 + minSignalNeeded_p3);
+ 8007a5c:	4413      	add	r3, r2
+
+	/* uint32 / uint32 = uint32 */
+	minSignalNeeded += (peakVcselDuration_us/2);
+ 8007a5e:	eb03 0357 	add.w	r3, r3, r7, lsr #1
+	minSignalNeeded /= peakVcselDuration_us;
+ 8007a62:	fbb3 f3f7 	udiv	r3, r3, r7
+
+	/* uint32 << 14 = FixPoint1814 */
+	minSignalNeeded <<= 14;
+ 8007a66:	039b      	lsls	r3, r3, #14
+
+	/* FixPoint1814 / FixPoint1814 = uint32 */
+	minSignalNeeded += (minSignalNeeded_p4/2);
+ 8007a68:	337f      	adds	r3, #127	; 0x7f
+	minSignalNeeded /= minSignalNeeded_p4;
+ 8007a6a:	085b      	lsrs	r3, r3, #1
+ 8007a6c:	4a18      	ldr	r2, [pc, #96]	; (8007ad0 <VL53L0X_calc_dmax+0xf4>)
+ 8007a6e:	fba2 2303 	umull	r2, r3, r2, r3
+ 8007a72:	099b      	lsrs	r3, r3, #6
+
+	/* FixPoint3200 * FixPoint2804 := FixPoint2804*/
+	minSignalNeeded *= minSignalNeeded_p1;
+ 8007a74:	fb03 f400 	mul.w	r4, r3, r0
+	 * and 10E-22 on the denominator.
+	 * We do this because 32bit fix point calculation can't
+	 * handle the larger and smaller elements of this equation,
+	 * i.e. speed of light and pulse widths.
+	 */
+	minSignalNeeded = (minSignalNeeded + 500) / 1000;
+ 8007a78:	f504 74fa 	add.w	r4, r4, #500	; 0x1f4
+ 8007a7c:	4b15      	ldr	r3, [pc, #84]	; (8007ad4 <VL53L0X_calc_dmax+0xf8>)
+ 8007a7e:	fba3 2404 	umull	r2, r4, r3, r4
+ 8007a82:	09a4      	lsrs	r4, r4, #6
+	minSignalNeeded <<= 4;
+ 8007a84:	0124      	lsls	r4, r4, #4
+
+	minSignalNeeded = (minSignalNeeded + 500) / 1000;
+ 8007a86:	f504 74fa 	add.w	r4, r4, #500	; 0x1f4
+ 8007a8a:	fba3 2304 	umull	r2, r3, r3, r4
+ 8007a8e:	099f      	lsrs	r7, r3, #6
+	/* FixPoint1616 >> 8 = FixPoint2408 */
+	signalLimitTmp = (cSignalLimit + 0x80) >> 8;
+
+	/* FixPoint2408/FixPoint2408 = uint32 */
+	if (signalLimitTmp != 0)
+		dmaxDarkTmp = (SignalAt0mm + (signalLimitTmp / 2))
+ 8007a90:	f105 0020 	add.w	r0, r5, #32
+			/ signalLimitTmp;
+	else
+		dmaxDarkTmp = 0;
+
+	dmaxDark = VL53L0X_isqrt(dmaxDarkTmp);
+ 8007a94:	0980      	lsrs	r0, r0, #6
+ 8007a96:	f7ff f83a 	bl	8006b0e <VL53L0X_isqrt>
+ 8007a9a:	4680      	mov	r8, r0
+
+	/* FixPoint2408/FixPoint2408 = uint32 */
+	if (minSignalNeeded != 0)
+ 8007a9c:	f5b4 7f7a 	cmp.w	r4, #1000	; 0x3e8
+ 8007aa0:	d312      	bcc.n	8007ac8 <VL53L0X_calc_dmax+0xec>
+		dmaxAmbient = (SignalAt0mm + minSignalNeeded/2)
+ 8007aa2:	4b0c      	ldr	r3, [pc, #48]	; (8007ad4 <VL53L0X_calc_dmax+0xf8>)
+ 8007aa4:	fba3 3404 	umull	r3, r4, r3, r4
+ 8007aa8:	eb05 15d4 	add.w	r5, r5, r4, lsr #7
+ 8007aac:	fbb5 f0f7 	udiv	r0, r5, r7
+			/ minSignalNeeded;
+	else
+		dmaxAmbient = 0;
+
+	dmaxAmbient = VL53L0X_isqrt(dmaxAmbient);
+ 8007ab0:	f7ff f82d 	bl	8006b0e <VL53L0X_isqrt>
+
+	*pdmax_mm = dmaxDark;
+ 8007ab4:	f8c6 8000 	str.w	r8, [r6]
+	if (dmaxDark > dmaxAmbient)
+ 8007ab8:	4580      	cmp	r8, r0
+ 8007aba:	d900      	bls.n	8007abe <VL53L0X_calc_dmax+0xe2>
+		*pdmax_mm = dmaxAmbient;
+ 8007abc:	6030      	str	r0, [r6, #0]
+
+	LOG_FUNCTION_END(Status);
+
+	return Status;
+}
+ 8007abe:	2000      	movs	r0, #0
+ 8007ac0:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+		minSignalNeeded_p3 = 0xfff00000;
+ 8007ac4:	4b04      	ldr	r3, [pc, #16]	; (8007ad8 <VL53L0X_calc_dmax+0xfc>)
+ 8007ac6:	e7c9      	b.n	8007a5c <VL53L0X_calc_dmax+0x80>
+		dmaxAmbient = 0;
+ 8007ac8:	2000      	movs	r0, #0
+ 8007aca:	e7f1      	b.n	8007ab0 <VL53L0X_calc_dmax+0xd4>
+ 8007acc:	aaaaaaab 	.word	0xaaaaaaab
+ 8007ad0:	81020409 	.word	0x81020409
+ 8007ad4:	10624dd3 	.word	0x10624dd3
+ 8007ad8:	fff00000 	.word	0xfff00000
+
+08007adc <VL53L0X_calc_sigma_estimate>:
+
+VL53L0X_Error VL53L0X_calc_sigma_estimate(VL53L0X_DEV Dev,
+	VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
+	FixPoint1616_t *pSigmaEstimate,
+	uint32_t *pDmax_mm)
+{
+ 8007adc:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8007ae0:	b08f      	sub	sp, #60	; 0x3c
+ 8007ae2:	4606      	mov	r6, r0
+ 8007ae4:	4689      	mov	r9, r1
+ 8007ae6:	9206      	str	r2, [sp, #24]
+ 8007ae8:	9307      	str	r3, [sp, #28]
+	 * Estimates the range sigma
+	 */
+
+	LOG_FUNCTION_START("");
+
+	VL53L0X_GETPARAMETERFIELD(Dev, XTalkCompensationRateMegaCps,
+ 8007aea:	6a03      	ldr	r3, [r0, #32]
+ 8007aec:	930d      	str	r3, [sp, #52]	; 0x34
+	 * We work in kcps rather than mcps as this helps keep within the
+	 * confines of the 32 Fix1616 type.
+	 */
+
+	ambientRate_kcps =
+		(pRangingMeasurementData->AmbientRateRtnMegaCps * 1000) >> 16;
+ 8007aee:	690b      	ldr	r3, [r1, #16]
+ 8007af0:	f44f 747a 	mov.w	r4, #1000	; 0x3e8
+ 8007af4:	fb04 f303 	mul.w	r3, r4, r3
+ 8007af8:	9308      	str	r3, [sp, #32]
+
+	correctedSignalRate_mcps =
+ 8007afa:	68cb      	ldr	r3, [r1, #12]
+ 8007afc:	9309      	str	r3, [sp, #36]	; 0x24
+		pRangingMeasurementData->SignalRateRtnMegaCps;
+
+
+	Status = VL53L0X_get_total_signal_rate(
+ 8007afe:	aa0c      	add	r2, sp, #48	; 0x30
+ 8007b00:	f7ff ff5d 	bl	80079be <VL53L0X_get_total_signal_rate>
+		Dev, pRangingMeasurementData, &totalSignalRate_mcps);
+	Status = VL53L0X_get_total_xtalk_rate(
+ 8007b04:	aa0d      	add	r2, sp, #52	; 0x34
+ 8007b06:	4649      	mov	r1, r9
+ 8007b08:	4630      	mov	r0, r6
+ 8007b0a:	f7ff ff40 	bl	800798e <VL53L0X_get_total_xtalk_rate>
+ 8007b0e:	4680      	mov	r8, r0
+
+
+	/* Signal rate measurement provided by device is the
+	 * peak signal rate, not average.
+	 */
+	peakSignalRate_kcps = (totalSignalRate_mcps * 1000);
+ 8007b10:	f8dd a030 	ldr.w	sl, [sp, #48]	; 0x30
+ 8007b14:	fb04 f70a 	mul.w	r7, r4, sl
+	peakSignalRate_kcps = (peakSignalRate_kcps + 0x8000) >> 16;
+ 8007b18:	f507 4700 	add.w	r7, r7, #32768	; 0x8000
+ 8007b1c:	0c3b      	lsrs	r3, r7, #16
+ 8007b1e:	9305      	str	r3, [sp, #20]
+
+	xTalkCompRate_kcps = xTalkCompRate_mcps * 1000;
+ 8007b20:	9b0d      	ldr	r3, [sp, #52]	; 0x34
+ 8007b22:	fb03 f404 	mul.w	r4, r3, r4
+
+	if (xTalkCompRate_kcps > cMaxXTalk_kcps)
+ 8007b26:	f5b4 1f48 	cmp.w	r4, #3276800	; 0x320000
+ 8007b2a:	d901      	bls.n	8007b30 <VL53L0X_calc_sigma_estimate+0x54>
+		xTalkCompRate_kcps = cMaxXTalk_kcps;
+ 8007b2c:	f44f 1448 	mov.w	r4, #3276800	; 0x320000
+
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8007b30:	f1b8 0f00 	cmp.w	r8, #0
+ 8007b34:	d137      	bne.n	8007ba6 <VL53L0X_calc_sigma_estimate+0xca>
+
+		/* Calculate final range macro periods */
+		finalRangeTimeoutMicroSecs = VL53L0X_GETDEVICESPECIFICPARAMETER(
+ 8007b36:	f8d6 30dc 	ldr.w	r3, [r6, #220]	; 0xdc
+ 8007b3a:	930a      	str	r3, [sp, #40]	; 0x28
+			Dev, FinalRangeTimeoutMicroSecs);
+
+		finalRangeVcselPCLKS = VL53L0X_GETDEVICESPECIFICPARAMETER(
+ 8007b3c:	f896 50e0 	ldrb.w	r5, [r6, #224]	; 0xe0
+			Dev, FinalRangeVcselPulsePeriod);
+
+		finalRangeMacroPCLKS = VL53L0X_calc_timeout_mclks(
+ 8007b40:	462a      	mov	r2, r5
+ 8007b42:	4619      	mov	r1, r3
+ 8007b44:	4630      	mov	r0, r6
+ 8007b46:	f7ff fafd 	bl	8007144 <VL53L0X_calc_timeout_mclks>
+ 8007b4a:	4683      	mov	fp, r0
+			Dev, finalRangeTimeoutMicroSecs, finalRangeVcselPCLKS);
+
+		/* Calculate pre-range macro periods */
+		preRangeTimeoutMicroSecs = VL53L0X_GETDEVICESPECIFICPARAMETER(
+ 8007b4c:	f8d6 30e4 	ldr.w	r3, [r6, #228]	; 0xe4
+ 8007b50:	930b      	str	r3, [sp, #44]	; 0x2c
+			Dev, PreRangeTimeoutMicroSecs);
+
+		preRangeVcselPCLKS = VL53L0X_GETDEVICESPECIFICPARAMETER(
+			Dev, PreRangeVcselPulsePeriod);
+
+		preRangeMacroPCLKS = VL53L0X_calc_timeout_mclks(
+ 8007b52:	f896 20e8 	ldrb.w	r2, [r6, #232]	; 0xe8
+ 8007b56:	4619      	mov	r1, r3
+ 8007b58:	4630      	mov	r0, r6
+ 8007b5a:	f7ff faf3 	bl	8007144 <VL53L0X_calc_timeout_mclks>
+			Dev, preRangeTimeoutMicroSecs, preRangeVcselPCLKS);
+
+		vcselWidth = 3;
+		if (finalRangeVcselPCLKS == 8)
+ 8007b5e:	2d08      	cmp	r5, #8
+ 8007b60:	d032      	beq.n	8007bc8 <VL53L0X_calc_sigma_estimate+0xec>
+		vcselWidth = 3;
+ 8007b62:	2303      	movs	r3, #3
+			vcselWidth = 2;
+
+
+		peakVcselDuration_us = vcselWidth * 2048 *
+			(preRangeMacroPCLKS + finalRangeMacroPCLKS);
+ 8007b64:	eb0b 0500 	add.w	r5, fp, r0
+		peakVcselDuration_us = vcselWidth * 2048 *
+ 8007b68:	fb03 f505 	mul.w	r5, r3, r5
+ 8007b6c:	02ed      	lsls	r5, r5, #11
+		peakVcselDuration_us = (peakVcselDuration_us + 500)/1000;
+ 8007b6e:	f505 75fa 	add.w	r5, r5, #500	; 0x1f4
+ 8007b72:	4b6f      	ldr	r3, [pc, #444]	; (8007d30 <VL53L0X_calc_sigma_estimate+0x254>)
+ 8007b74:	fba3 2505 	umull	r2, r5, r3, r5
+ 8007b78:	09ad      	lsrs	r5, r5, #6
+		peakVcselDuration_us *= cPllPeriod_ps;
+ 8007b7a:	f240 6277 	movw	r2, #1655	; 0x677
+ 8007b7e:	fb02 f505 	mul.w	r5, r2, r5
+		peakVcselDuration_us = (peakVcselDuration_us + 500)/1000;
+ 8007b82:	f505 75fa 	add.w	r5, r5, #500	; 0x1f4
+ 8007b86:	fba3 3505 	umull	r3, r5, r3, r5
+ 8007b8a:	09ad      	lsrs	r5, r5, #6
+
+		/* Fix1616 >> 8 = Fix2408 */
+		totalSignalRate_mcps = (totalSignalRate_mcps + 0x80) >> 8;
+ 8007b8c:	f10a 0a80 	add.w	sl, sl, #128	; 0x80
+ 8007b90:	ea4f 231a 	mov.w	r3, sl, lsr #8
+ 8007b94:	930c      	str	r3, [sp, #48]	; 0x30
+
+		/* Fix2408 * uint32 = Fix2408 */
+		vcselTotalEventsRtn = totalSignalRate_mcps *
+ 8007b96:	fb05 fb03 	mul.w	fp, r5, r3
+			peakVcselDuration_us;
+
+		/* Fix2408 >> 8 = uint32 */
+		vcselTotalEventsRtn = (vcselTotalEventsRtn + 0x80) >> 8;
+ 8007b9a:	f10b 0b80 	add.w	fp, fp, #128	; 0x80
+ 8007b9e:	ea4f 2b1b 	mov.w	fp, fp, lsr #8
+
+		/* Fix2408 << 8 = Fix1616 = */
+		totalSignalRate_mcps <<= 8;
+ 8007ba2:	021b      	lsls	r3, r3, #8
+ 8007ba4:	930c      	str	r3, [sp, #48]	; 0x30
+	}
+
+	if (Status != VL53L0X_ERROR_NONE) {
+ 8007ba6:	f1b8 0f00 	cmp.w	r8, #0
+ 8007baa:	d109      	bne.n	8007bc0 <VL53L0X_calc_sigma_estimate+0xe4>
+		LOG_FUNCTION_END(Status);
+		return Status;
+	}
+
+	if (peakSignalRate_kcps == 0) {
+ 8007bac:	9b05      	ldr	r3, [sp, #20]
+ 8007bae:	b96b      	cbnz	r3, 8007bcc <VL53L0X_calc_sigma_estimate+0xf0>
+		*pSigmaEstimate = cSigmaEstMax;
+ 8007bb0:	4b60      	ldr	r3, [pc, #384]	; (8007d34 <VL53L0X_calc_sigma_estimate+0x258>)
+ 8007bb2:	9a06      	ldr	r2, [sp, #24]
+ 8007bb4:	6013      	str	r3, [r2, #0]
+		PALDevDataSet(Dev, SigmaEstimate, cSigmaEstMax);
+ 8007bb6:	f8c6 3140 	str.w	r3, [r6, #320]	; 0x140
+		*pDmax_mm = 0;
+ 8007bba:	2300      	movs	r3, #0
+ 8007bbc:	9a07      	ldr	r2, [sp, #28]
+ 8007bbe:	6013      	str	r3, [r2, #0]
+			pDmax_mm);
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+ 8007bc0:	4640      	mov	r0, r8
+ 8007bc2:	b00f      	add	sp, #60	; 0x3c
+ 8007bc4:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+			vcselWidth = 2;
+ 8007bc8:	2302      	movs	r3, #2
+ 8007bca:	e7cb      	b.n	8007b64 <VL53L0X_calc_sigma_estimate+0x88>
+		if (vcselTotalEventsRtn < 1)
+ 8007bcc:	f1bb 0f00 	cmp.w	fp, #0
+ 8007bd0:	d101      	bne.n	8007bd6 <VL53L0X_calc_sigma_estimate+0xfa>
+			vcselTotalEventsRtn = 1;
+ 8007bd2:	f04f 0b01 	mov.w	fp, #1
+		sigmaEstimateP2 = (ambientRate_kcps << 16)/peakSignalRate_kcps;
+ 8007bd6:	9b08      	ldr	r3, [sp, #32]
+ 8007bd8:	ea4f 4813 	mov.w	r8, r3, lsr #16
+ 8007bdc:	ea4f 4808 	mov.w	r8, r8, lsl #16
+ 8007be0:	9b05      	ldr	r3, [sp, #20]
+ 8007be2:	fbb8 f3f3 	udiv	r3, r8, r3
+		if (sigmaEstimateP2 > cAmbToSignalRatioMax) {
+ 8007be6:	4a54      	ldr	r2, [pc, #336]	; (8007d38 <VL53L0X_calc_sigma_estimate+0x25c>)
+ 8007be8:	4293      	cmp	r3, r2
+ 8007bea:	d900      	bls.n	8007bee <VL53L0X_calc_sigma_estimate+0x112>
+			sigmaEstimateP2 = cAmbToSignalRatioMax;
+ 8007bec:	4613      	mov	r3, r2
+		sigmaEstimateP2 *= cAmbientEffectiveWidth_centi_ns;
+ 8007bee:	f44f 7216 	mov.w	r2, #600	; 0x258
+ 8007bf2:	fb02 f803 	mul.w	r8, r2, r3
+		sigmaEstimateP3 = 2 * VL53L0X_isqrt(vcselTotalEventsRtn * 12);
+ 8007bf6:	eb0b 004b 	add.w	r0, fp, fp, lsl #1
+ 8007bfa:	0080      	lsls	r0, r0, #2
+ 8007bfc:	f7fe ff87 	bl	8006b0e <VL53L0X_isqrt>
+ 8007c00:	ea4f 0a40 	mov.w	sl, r0, lsl #1
+		deltaT_ps = pRangingMeasurementData->RangeMilliMeter *
+ 8007c04:	f8b9 3008 	ldrh.w	r3, [r9, #8]
+ 8007c08:	4a4c      	ldr	r2, [pc, #304]	; (8007d3c <VL53L0X_calc_sigma_estimate+0x260>)
+ 8007c0a:	fb02 f303 	mul.w	r3, r2, r3
+		diff1_mcps = (((peakSignalRate_kcps << 16) -
+ 8007c0e:	0c3f      	lsrs	r7, r7, #16
+ 8007c10:	043f      	lsls	r7, r7, #16
+ 8007c12:	eba7 0444 	sub.w	r4, r7, r4, lsl #1
+			2 * xTalkCompRate_kcps) + 500)/1000;
+ 8007c16:	f504 74fa 	add.w	r4, r4, #500	; 0x1f4
+		diff1_mcps = (((peakSignalRate_kcps << 16) -
+ 8007c1a:	4a45      	ldr	r2, [pc, #276]	; (8007d30 <VL53L0X_calc_sigma_estimate+0x254>)
+ 8007c1c:	fba2 1404 	umull	r1, r4, r2, r4
+ 8007c20:	09a4      	lsrs	r4, r4, #6
+		diff2_mcps = ((peakSignalRate_kcps << 16) + 500)/1000;
+ 8007c22:	f507 77fa 	add.w	r7, r7, #500	; 0x1f4
+ 8007c26:	fba2 2707 	umull	r2, r7, r2, r7
+ 8007c2a:	09bf      	lsrs	r7, r7, #6
+		diff1_mcps <<= 8;
+ 8007c2c:	0224      	lsls	r4, r4, #8
+		xTalkCorrection	 = abs(diff1_mcps/diff2_mcps);
+ 8007c2e:	fbb4 f4f7 	udiv	r4, r4, r7
+		xTalkCorrection <<= 8;
+ 8007c32:	0224      	lsls	r4, r4, #8
+		if(pRangingMeasurementData->RangeStatus != 0){
+ 8007c34:	f899 2018 	ldrb.w	r2, [r9, #24]
+ 8007c38:	2a00      	cmp	r2, #0
+ 8007c3a:	d160      	bne.n	8007cfe <VL53L0X_calc_sigma_estimate+0x222>
+			pwMult = deltaT_ps/cVcselPulseWidth_ps; /* smaller than 1.0f */
+ 8007c3c:	4a40      	ldr	r2, [pc, #256]	; (8007d40 <VL53L0X_calc_sigma_estimate+0x264>)
+ 8007c3e:	fba2 2303 	umull	r2, r3, r2, r3
+ 8007c42:	0a9b      	lsrs	r3, r3, #10
+			pwMult *= ((1 << 16) - xTalkCorrection);
+ 8007c44:	f5c4 3480 	rsb	r4, r4, #65536	; 0x10000
+ 8007c48:	fb03 f404 	mul.w	r4, r3, r4
+			pwMult =  (pwMult + c16BitRoundingParam) >> 16;
+ 8007c4c:	f504 4400 	add.w	r4, r4, #32768	; 0x8000
+ 8007c50:	0c24      	lsrs	r4, r4, #16
+			pwMult += (1 << 16);
+ 8007c52:	f504 3480 	add.w	r4, r4, #65536	; 0x10000
+			pwMult >>= 1;
+ 8007c56:	0864      	lsrs	r4, r4, #1
+			pwMult = pwMult * pwMult;
+ 8007c58:	fb04 f404 	mul.w	r4, r4, r4
+			pwMult >>= 14;
+ 8007c5c:	0ba4      	lsrs	r4, r4, #14
+		sqr1 = pwMult * sigmaEstimateP1;
+ 8007c5e:	f44f 7048 	mov.w	r0, #800	; 0x320
+ 8007c62:	fb04 f000 	mul.w	r0, r4, r0
+		sqr1 = (sqr1 + 0x8000) >> 16;
+ 8007c66:	f500 4000 	add.w	r0, r0, #32768	; 0x8000
+ 8007c6a:	0c00      	lsrs	r0, r0, #16
+		sqr2 = (sqr2 + 0x8000) >> 16;
+ 8007c6c:	f508 4300 	add.w	r3, r8, #32768	; 0x8000
+ 8007c70:	0c1b      	lsrs	r3, r3, #16
+		sqr2 *= sqr2;
+ 8007c72:	fb03 f303 	mul.w	r3, r3, r3
+		sqrtResult_centi_ns = VL53L0X_isqrt(sqrSum);
+ 8007c76:	fb00 3000 	mla	r0, r0, r0, r3
+ 8007c7a:	f7fe ff48 	bl	8006b0e <VL53L0X_isqrt>
+		sqrtResult_centi_ns <<= 16;
+ 8007c7e:	0403      	lsls	r3, r0, #16
+		sigmaEstRtn = (((sqrtResult_centi_ns+50)/100) /
+ 8007c80:	3332      	adds	r3, #50	; 0x32
+ 8007c82:	4a30      	ldr	r2, [pc, #192]	; (8007d44 <VL53L0X_calc_sigma_estimate+0x268>)
+ 8007c84:	fba2 2303 	umull	r2, r3, r2, r3
+ 8007c88:	095b      	lsrs	r3, r3, #5
+ 8007c8a:	fbb3 f3fa 	udiv	r3, r3, sl
+		sigmaEstRtn		 += 5000;
+ 8007c8e:	f640 31b5 	movw	r1, #2997	; 0xbb5
+ 8007c92:	f241 3288 	movw	r2, #5000	; 0x1388
+ 8007c96:	fb01 2303 	mla	r3, r1, r3, r2
+		sigmaEstRtn		 /= 10000;
+ 8007c9a:	4f2b      	ldr	r7, [pc, #172]	; (8007d48 <VL53L0X_calc_sigma_estimate+0x26c>)
+ 8007c9c:	fba7 2703 	umull	r2, r7, r7, r3
+ 8007ca0:	0b7f      	lsrs	r7, r7, #13
+		if (sigmaEstRtn > cSigmaEstRtnMax) {
+ 8007ca2:	4a2a      	ldr	r2, [pc, #168]	; (8007d4c <VL53L0X_calc_sigma_estimate+0x270>)
+ 8007ca4:	4293      	cmp	r3, r2
+ 8007ca6:	d901      	bls.n	8007cac <VL53L0X_calc_sigma_estimate+0x1d0>
+			sigmaEstRtn = cSigmaEstRtnMax;
+ 8007ca8:	f44f 4770 	mov.w	r7, #61440	; 0xf000
+			(finalRangeTimeoutMicroSecs + preRangeTimeoutMicroSecs + 500)/1000;
+ 8007cac:	9b0a      	ldr	r3, [sp, #40]	; 0x28
+ 8007cae:	9a0b      	ldr	r2, [sp, #44]	; 0x2c
+ 8007cb0:	4413      	add	r3, r2
+ 8007cb2:	f503 73fa 	add.w	r3, r3, #500	; 0x1f4
+		finalRangeIntegrationTimeMilliSecs =
+ 8007cb6:	f8df 9078 	ldr.w	r9, [pc, #120]	; 8007d30 <VL53L0X_calc_sigma_estimate+0x254>
+ 8007cba:	fba9 2303 	umull	r2, r3, r9, r3
+ 8007cbe:	0998      	lsrs	r0, r3, #6
+				finalRangeIntegrationTimeMilliSecs/2)/
+ 8007cc0:	09db      	lsrs	r3, r3, #7
+			VL53L0X_isqrt((cDfltFinalRangeIntegrationTimeMilliSecs +
+ 8007cc2:	f503 13c8 	add.w	r3, r3, #1638400	; 0x190000
+ 8007cc6:	fbb3 f0f0 	udiv	r0, r3, r0
+ 8007cca:	f7fe ff20 	bl	8006b0e <VL53L0X_isqrt>
+		sigmaEstRef <<= 8;
+ 8007cce:	0200      	lsls	r0, r0, #8
+		sigmaEstRef = (sigmaEstRef + 500)/1000;
+ 8007cd0:	f500 70fa 	add.w	r0, r0, #500	; 0x1f4
+ 8007cd4:	fba9 9000 	umull	r9, r0, r9, r0
+ 8007cd8:	0980      	lsrs	r0, r0, #6
+		sqr2 = sigmaEstRef * sigmaEstRef;
+ 8007cda:	fb00 f000 	mul.w	r0, r0, r0
+		sqrtResult = VL53L0X_isqrt((sqr1 + sqr2));
+ 8007cde:	fb07 0007 	mla	r0, r7, r7, r0
+ 8007ce2:	f7fe ff14 	bl	8006b0e <VL53L0X_isqrt>
+		sigmaEstimate	 = 1000 * sqrtResult;
+ 8007ce6:	f44f 737a 	mov.w	r3, #1000	; 0x3e8
+ 8007cea:	fb03 f000 	mul.w	r0, r3, r0
+		if ((peakSignalRate_kcps < 1) || (vcselTotalEventsRtn < 1) ||
+ 8007cee:	f1bb 0f00 	cmp.w	fp, #0
+ 8007cf2:	d007      	beq.n	8007d04 <VL53L0X_calc_sigma_estimate+0x228>
+ 8007cf4:	4b0f      	ldr	r3, [pc, #60]	; (8007d34 <VL53L0X_calc_sigma_estimate+0x258>)
+ 8007cf6:	4298      	cmp	r0, r3
+ 8007cf8:	d905      	bls.n	8007d06 <VL53L0X_calc_sigma_estimate+0x22a>
+				sigmaEstimate = cSigmaEstMax;
+ 8007cfa:	480e      	ldr	r0, [pc, #56]	; (8007d34 <VL53L0X_calc_sigma_estimate+0x258>)
+ 8007cfc:	e003      	b.n	8007d06 <VL53L0X_calc_sigma_estimate+0x22a>
+			pwMult = 1 << 16;
+ 8007cfe:	f44f 3480 	mov.w	r4, #65536	; 0x10000
+ 8007d02:	e7ac      	b.n	8007c5e <VL53L0X_calc_sigma_estimate+0x182>
+				sigmaEstimate = cSigmaEstMax;
+ 8007d04:	480b      	ldr	r0, [pc, #44]	; (8007d34 <VL53L0X_calc_sigma_estimate+0x258>)
+		*pSigmaEstimate = (uint32_t)(sigmaEstimate);
+ 8007d06:	9b06      	ldr	r3, [sp, #24]
+ 8007d08:	6018      	str	r0, [r3, #0]
+		PALDevDataSet(Dev, SigmaEstimate, *pSigmaEstimate);
+ 8007d0a:	f8c6 0140 	str.w	r0, [r6, #320]	; 0x140
+		Status = VL53L0X_calc_dmax(
+ 8007d0e:	9b07      	ldr	r3, [sp, #28]
+ 8007d10:	9303      	str	r3, [sp, #12]
+ 8007d12:	9502      	str	r5, [sp, #8]
+ 8007d14:	f8cd 8004 	str.w	r8, [sp, #4]
+ 8007d18:	f44f 7348 	mov.w	r3, #800	; 0x320
+ 8007d1c:	9300      	str	r3, [sp, #0]
+ 8007d1e:	4623      	mov	r3, r4
+ 8007d20:	9a09      	ldr	r2, [sp, #36]	; 0x24
+ 8007d22:	990c      	ldr	r1, [sp, #48]	; 0x30
+ 8007d24:	4630      	mov	r0, r6
+ 8007d26:	f7ff fe59 	bl	80079dc <VL53L0X_calc_dmax>
+ 8007d2a:	4680      	mov	r8, r0
+ 8007d2c:	e748      	b.n	8007bc0 <VL53L0X_calc_sigma_estimate+0xe4>
+ 8007d2e:	bf00      	nop
+ 8007d30:	10624dd3 	.word	0x10624dd3
+ 8007d34:	028f87ae 	.word	0x028f87ae
+ 8007d38:	00666666 	.word	0x00666666
+ 8007d3c:	0006999a 	.word	0x0006999a
+ 8007d40:	37c67b51 	.word	0x37c67b51
+ 8007d44:	51eb851f 	.word	0x51eb851f
+ 8007d48:	d1b71759 	.word	0xd1b71759
+ 8007d4c:	249f270f 	.word	0x249f270f
+
+08007d50 <VL53L0X_get_pal_range_status>:
+		uint8_t DeviceRangeStatus,
+		FixPoint1616_t SignalRate,
+		uint16_t EffectiveSpadRtnCount,
+		VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
+		uint8_t *pPalRangeStatus)
+{
+ 8007d50:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8007d54:	b08b      	sub	sp, #44	; 0x2c
+ 8007d56:	4604      	mov	r4, r0
+ 8007d58:	9201      	str	r2, [sp, #4]
+ 8007d5a:	461d      	mov	r5, r3
+ 8007d5c:	f8dd 9054 	ldr.w	r9, [sp, #84]	; 0x54
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t NoneFlag;
+	uint8_t SigmaLimitflag = 0;
+	uint8_t SignalRefClipflag = 0;
+	uint8_t RangeIgnoreThresholdflag = 0;
+	uint8_t SigmaLimitCheckEnable = 0;
+ 8007d60:	2300      	movs	r3, #0
+ 8007d62:	f88d 3027 	strb.w	r3, [sp, #39]	; 0x27
+	uint8_t SignalRateFinalRangeLimitCheckEnable = 0;
+ 8007d66:	f88d 3026 	strb.w	r3, [sp, #38]	; 0x26
+	uint8_t SignalRefClipLimitCheckEnable = 0;
+ 8007d6a:	f88d 3025 	strb.w	r3, [sp, #37]	; 0x25
+	uint8_t RangeIgnoreThresholdLimitCheckEnable = 0;
+ 8007d6e:	f88d 3024 	strb.w	r3, [sp, #36]	; 0x24
+	FixPoint1616_t SigmaLimitValue;
+	FixPoint1616_t SignalRefClipValue;
+	FixPoint1616_t RangeIgnoreThresholdValue;
+	FixPoint1616_t SignalRatePerSpad;
+	uint8_t DeviceRangeStatusInternal = 0;
+	uint16_t tmpWord = 0;
+ 8007d72:	f8ad 3012 	strh.w	r3, [sp, #18]
+	uint8_t Temp8;
+	uint32_t Dmax_mm = 0;
+ 8007d76:	9303      	str	r3, [sp, #12]
+	 * the value 11 in the DeviceRangeStatus.
+	 * In addition, the SigmaEstimator is not included in the VL53L0X
+	 * DeviceRangeStatus, this will be added in the PalRangeStatus.
+	 */
+
+	DeviceRangeStatusInternal = ((DeviceRangeStatus & 0x78) >> 3);
+ 8007d78:	f3c1 0ac3 	ubfx	sl, r1, #3, #4
+
+	if (DeviceRangeStatusInternal == 0 ||
+ 8007d7c:	f011 0f78 	tst.w	r1, #120	; 0x78
+ 8007d80:	d00e      	beq.n	8007da0 <VL53L0X_get_pal_range_status+0x50>
+ 8007d82:	f1aa 0305 	sub.w	r3, sl, #5
+ 8007d86:	2b0a      	cmp	r3, #10
+ 8007d88:	d807      	bhi.n	8007d9a <VL53L0X_get_pal_range_status+0x4a>
+ 8007d8a:	e8df f003 	tbb	[pc, r3]
+ 8007d8e:	063d      	.short	0x063d
+ 8007d90:	0606063d 	.word	0x0606063d
+ 8007d94:	3d3d3d06 	.word	0x3d3d3d06
+ 8007d98:	3d          	.byte	0x3d
+ 8007d99:	00          	.byte	0x00
+ 8007d9a:	f04f 0b00 	mov.w	fp, #0
+ 8007d9e:	e001      	b.n	8007da4 <VL53L0X_get_pal_range_status+0x54>
+		DeviceRangeStatusInternal == 12 ||
+		DeviceRangeStatusInternal == 13 ||
+		DeviceRangeStatusInternal == 14 ||
+		DeviceRangeStatusInternal == 15
+			) {
+		NoneFlag = 1;
+ 8007da0:	f04f 0b01 	mov.w	fp, #1
+	/*
+	 * Check if Sigma limit is enabled, if yes then do comparison with limit
+	 * value and put the result back into pPalRangeStatus.
+	 */
+	if (Status == VL53L0X_ERROR_NONE)
+		Status =  VL53L0X_GetLimitCheckEnable(Dev,
+ 8007da4:	f10d 0227 	add.w	r2, sp, #39	; 0x27
+ 8007da8:	2100      	movs	r1, #0
+ 8007daa:	4620      	mov	r0, r4
+ 8007dac:	f7fd fce3 	bl	8005776 <VL53L0X_GetLimitCheckEnable>
+ 8007db0:	4603      	mov	r3, r0
+			VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE,
+			&SigmaLimitCheckEnable);
+
+	if ((SigmaLimitCheckEnable != 0) && (Status == VL53L0X_ERROR_NONE)) {
+ 8007db2:	f89d 8027 	ldrb.w	r8, [sp, #39]	; 0x27
+ 8007db6:	f1b8 0f00 	cmp.w	r8, #0
+ 8007dba:	d002      	beq.n	8007dc2 <VL53L0X_get_pal_range_status+0x72>
+ 8007dbc:	b338      	cbz	r0, 8007e0e <VL53L0X_get_pal_range_status+0xbe>
+	uint8_t SigmaLimitflag = 0;
+ 8007dbe:	f04f 0800 	mov.w	r8, #0
+
+	/*
+	 * Check if Signal ref clip limit is enabled, if yes then do comparison
+	 * with limit value and put the result back into pPalRangeStatus.
+	 */
+	if (Status == VL53L0X_ERROR_NONE)
+ 8007dc2:	2b00      	cmp	r3, #0
+ 8007dc4:	d046      	beq.n	8007e54 <VL53L0X_get_pal_range_status+0x104>
+		Status =  VL53L0X_GetLimitCheckEnable(Dev,
+				VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP,
+				&SignalRefClipLimitCheckEnable);
+
+	if ((SignalRefClipLimitCheckEnable != 0) &&
+ 8007dc6:	f89d 6025 	ldrb.w	r6, [sp, #37]	; 0x25
+ 8007dca:	b116      	cbz	r6, 8007dd2 <VL53L0X_get_pal_range_status+0x82>
+ 8007dcc:	2b00      	cmp	r3, #0
+ 8007dce:	d049      	beq.n	8007e64 <VL53L0X_get_pal_range_status+0x114>
+	uint8_t SignalRefClipflag = 0;
+ 8007dd0:	2600      	movs	r6, #0
+	 * Check if Signal ref clip limit is enabled, if yes then do comparison
+	 * with limit value and put the result back into pPalRangeStatus.
+	 * EffectiveSpadRtnCount has a format 8.8
+	 * If (Return signal rate < (1.5 x Xtalk x number of Spads)) : FAIL
+	 */
+	if (Status == VL53L0X_ERROR_NONE)
+ 8007dd2:	2b00      	cmp	r3, #0
+ 8007dd4:	d074      	beq.n	8007ec0 <VL53L0X_get_pal_range_status+0x170>
+		Status =  VL53L0X_GetLimitCheckEnable(Dev,
+				VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD,
+				&RangeIgnoreThresholdLimitCheckEnable);
+
+	if ((RangeIgnoreThresholdLimitCheckEnable != 0) &&
+ 8007dd6:	f89d 7024 	ldrb.w	r7, [sp, #36]	; 0x24
+ 8007dda:	2f00      	cmp	r7, #0
+ 8007ddc:	d07a      	beq.n	8007ed4 <VL53L0X_get_pal_range_status+0x184>
+ 8007dde:	2b00      	cmp	r3, #0
+ 8007de0:	d177      	bne.n	8007ed2 <VL53L0X_get_pal_range_status+0x182>
+			(Status == VL53L0X_ERROR_NONE)) {
+
+		/* Compute the signal rate per spad */
+		if (EffectiveSpadRtnCount == 0) {
+ 8007de2:	2d00      	cmp	r5, #0
+ 8007de4:	d073      	beq.n	8007ece <VL53L0X_get_pal_range_status+0x17e>
+			SignalRatePerSpad = 0;
+		} else {
+			SignalRatePerSpad = (FixPoint1616_t)((256 * SignalRate)
+ 8007de6:	9b01      	ldr	r3, [sp, #4]
+ 8007de8:	021b      	lsls	r3, r3, #8
+ 8007dea:	fbb3 f5f5 	udiv	r5, r3, r5
+				/ EffectiveSpadRtnCount);
+		}
+
+		Status = VL53L0X_GetLimitCheckValue(Dev,
+ 8007dee:	aa05      	add	r2, sp, #20
+ 8007df0:	2103      	movs	r1, #3
+ 8007df2:	4620      	mov	r0, r4
+ 8007df4:	f7fd fcff 	bl	80057f6 <VL53L0X_GetLimitCheckValue>
+ 8007df8:	4603      	mov	r3, r0
+				VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD,
+				&RangeIgnoreThresholdValue);
+
+		if ((RangeIgnoreThresholdValue > 0) &&
+ 8007dfa:	9a05      	ldr	r2, [sp, #20]
+ 8007dfc:	2a00      	cmp	r2, #0
+ 8007dfe:	d078      	beq.n	8007ef2 <VL53L0X_get_pal_range_status+0x1a2>
+ 8007e00:	42aa      	cmp	r2, r5
+ 8007e02:	d878      	bhi.n	8007ef6 <VL53L0X_get_pal_range_status+0x1a6>
+	uint8_t RangeIgnoreThresholdflag = 0;
+ 8007e04:	2700      	movs	r7, #0
+ 8007e06:	e065      	b.n	8007ed4 <VL53L0X_get_pal_range_status+0x184>
+	if (DeviceRangeStatusInternal == 0 ||
+ 8007e08:	f04f 0b01 	mov.w	fp, #1
+ 8007e0c:	e7ca      	b.n	8007da4 <VL53L0X_get_pal_range_status+0x54>
+		Status = VL53L0X_calc_sigma_estimate(
+ 8007e0e:	ab03      	add	r3, sp, #12
+ 8007e10:	aa08      	add	r2, sp, #32
+ 8007e12:	9914      	ldr	r1, [sp, #80]	; 0x50
+ 8007e14:	4620      	mov	r0, r4
+ 8007e16:	f7ff fe61 	bl	8007adc <VL53L0X_calc_sigma_estimate>
+		if (Status == VL53L0X_ERROR_NONE)
+ 8007e1a:	4603      	mov	r3, r0
+ 8007e1c:	b910      	cbnz	r0, 8007e24 <VL53L0X_get_pal_range_status+0xd4>
+			pRangingMeasurementData->RangeDMaxMilliMeter = Dmax_mm;
+ 8007e1e:	9a03      	ldr	r2, [sp, #12]
+ 8007e20:	9914      	ldr	r1, [sp, #80]	; 0x50
+ 8007e22:	814a      	strh	r2, [r1, #10]
+		if (Status == VL53L0X_ERROR_NONE) {
+ 8007e24:	b113      	cbz	r3, 8007e2c <VL53L0X_get_pal_range_status+0xdc>
+	uint8_t SigmaLimitflag = 0;
+ 8007e26:	f04f 0800 	mov.w	r8, #0
+ 8007e2a:	e7ca      	b.n	8007dc2 <VL53L0X_get_pal_range_status+0x72>
+			Status = VL53L0X_GetLimitCheckValue(Dev,
+ 8007e2c:	aa07      	add	r2, sp, #28
+ 8007e2e:	2100      	movs	r1, #0
+ 8007e30:	4620      	mov	r0, r4
+ 8007e32:	f7fd fce0 	bl	80057f6 <VL53L0X_GetLimitCheckValue>
+ 8007e36:	4603      	mov	r3, r0
+			if ((SigmaLimitValue > 0) &&
+ 8007e38:	9a07      	ldr	r2, [sp, #28]
+ 8007e3a:	b12a      	cbz	r2, 8007e48 <VL53L0X_get_pal_range_status+0xf8>
+				(SigmaEstimate > SigmaLimitValue))
+ 8007e3c:	9908      	ldr	r1, [sp, #32]
+			if ((SigmaLimitValue > 0) &&
+ 8007e3e:	428a      	cmp	r2, r1
+ 8007e40:	d305      	bcc.n	8007e4e <VL53L0X_get_pal_range_status+0xfe>
+	uint8_t SigmaLimitflag = 0;
+ 8007e42:	f04f 0800 	mov.w	r8, #0
+ 8007e46:	e7bc      	b.n	8007dc2 <VL53L0X_get_pal_range_status+0x72>
+ 8007e48:	f04f 0800 	mov.w	r8, #0
+ 8007e4c:	e7b9      	b.n	8007dc2 <VL53L0X_get_pal_range_status+0x72>
+					SigmaLimitflag = 1;
+ 8007e4e:	f04f 0801 	mov.w	r8, #1
+ 8007e52:	e7b6      	b.n	8007dc2 <VL53L0X_get_pal_range_status+0x72>
+		Status =  VL53L0X_GetLimitCheckEnable(Dev,
+ 8007e54:	f10d 0225 	add.w	r2, sp, #37	; 0x25
+ 8007e58:	2102      	movs	r1, #2
+ 8007e5a:	4620      	mov	r0, r4
+ 8007e5c:	f7fd fc8b 	bl	8005776 <VL53L0X_GetLimitCheckEnable>
+ 8007e60:	4603      	mov	r3, r0
+ 8007e62:	e7b0      	b.n	8007dc6 <VL53L0X_get_pal_range_status+0x76>
+		Status = VL53L0X_GetLimitCheckValue(Dev,
+ 8007e64:	aa06      	add	r2, sp, #24
+ 8007e66:	2102      	movs	r1, #2
+ 8007e68:	4620      	mov	r0, r4
+ 8007e6a:	f7fd fcc4 	bl	80057f6 <VL53L0X_GetLimitCheckValue>
+		if (Status == VL53L0X_ERROR_NONE)
+ 8007e6e:	4603      	mov	r3, r0
+ 8007e70:	b160      	cbz	r0, 8007e8c <VL53L0X_get_pal_range_status+0x13c>
+		if (Status == VL53L0X_ERROR_NONE)
+ 8007e72:	b193      	cbz	r3, 8007e9a <VL53L0X_get_pal_range_status+0x14a>
+		if (Status == VL53L0X_ERROR_NONE)
+ 8007e74:	b1cb      	cbz	r3, 8007eaa <VL53L0X_get_pal_range_status+0x15a>
+		LastSignalRefMcps = VL53L0X_FIXPOINT97TOFIXPOINT1616(tmpWord);
+ 8007e76:	f8bd 2012 	ldrh.w	r2, [sp, #18]
+ 8007e7a:	0252      	lsls	r2, r2, #9
+		PALDevDataSet(Dev, LastSignalRefMcps, LastSignalRefMcps);
+ 8007e7c:	f8c4 2148 	str.w	r2, [r4, #328]	; 0x148
+		if ((SignalRefClipValue > 0) &&
+ 8007e80:	9906      	ldr	r1, [sp, #24]
+ 8007e82:	b1c9      	cbz	r1, 8007eb8 <VL53L0X_get_pal_range_status+0x168>
+ 8007e84:	4291      	cmp	r1, r2
+ 8007e86:	d319      	bcc.n	8007ebc <VL53L0X_get_pal_range_status+0x16c>
+	uint8_t SignalRefClipflag = 0;
+ 8007e88:	2600      	movs	r6, #0
+ 8007e8a:	e7a2      	b.n	8007dd2 <VL53L0X_get_pal_range_status+0x82>
+			Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
+ 8007e8c:	2201      	movs	r2, #1
+ 8007e8e:	21ff      	movs	r1, #255	; 0xff
+ 8007e90:	4620      	mov	r0, r4
+ 8007e92:	f000 f8e3 	bl	800805c <VL53L0X_WrByte>
+ 8007e96:	4603      	mov	r3, r0
+ 8007e98:	e7eb      	b.n	8007e72 <VL53L0X_get_pal_range_status+0x122>
+			Status = VL53L0X_RdWord(Dev,
+ 8007e9a:	f10d 0212 	add.w	r2, sp, #18
+ 8007e9e:	21b6      	movs	r1, #182	; 0xb6
+ 8007ea0:	4620      	mov	r0, r4
+ 8007ea2:	f000 f931 	bl	8008108 <VL53L0X_RdWord>
+ 8007ea6:	4603      	mov	r3, r0
+ 8007ea8:	e7e4      	b.n	8007e74 <VL53L0X_get_pal_range_status+0x124>
+			Status = VL53L0X_WrByte(Dev, 0xFF, 0x00);
+ 8007eaa:	2200      	movs	r2, #0
+ 8007eac:	21ff      	movs	r1, #255	; 0xff
+ 8007eae:	4620      	mov	r0, r4
+ 8007eb0:	f000 f8d4 	bl	800805c <VL53L0X_WrByte>
+ 8007eb4:	4603      	mov	r3, r0
+ 8007eb6:	e7de      	b.n	8007e76 <VL53L0X_get_pal_range_status+0x126>
+	uint8_t SignalRefClipflag = 0;
+ 8007eb8:	2600      	movs	r6, #0
+ 8007eba:	e78a      	b.n	8007dd2 <VL53L0X_get_pal_range_status+0x82>
+			SignalRefClipflag = 1;
+ 8007ebc:	2601      	movs	r6, #1
+ 8007ebe:	e788      	b.n	8007dd2 <VL53L0X_get_pal_range_status+0x82>
+		Status =  VL53L0X_GetLimitCheckEnable(Dev,
+ 8007ec0:	aa09      	add	r2, sp, #36	; 0x24
+ 8007ec2:	2103      	movs	r1, #3
+ 8007ec4:	4620      	mov	r0, r4
+ 8007ec6:	f7fd fc56 	bl	8005776 <VL53L0X_GetLimitCheckEnable>
+ 8007eca:	4603      	mov	r3, r0
+ 8007ecc:	e783      	b.n	8007dd6 <VL53L0X_get_pal_range_status+0x86>
+			SignalRatePerSpad = 0;
+ 8007ece:	2500      	movs	r5, #0
+ 8007ed0:	e78d      	b.n	8007dee <VL53L0X_get_pal_range_status+0x9e>
+	uint8_t RangeIgnoreThresholdflag = 0;
+ 8007ed2:	2700      	movs	r7, #0
+			/* Limit Fail add 2^6 to range status */
+			RangeIgnoreThresholdflag = 1;
+		}
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8007ed4:	b9a3      	cbnz	r3, 8007f00 <VL53L0X_get_pal_range_status+0x1b0>
+		if (NoneFlag == 1) {
+ 8007ed6:	f1bb 0f00 	cmp.w	fp, #0
+ 8007eda:	d10e      	bne.n	8007efa <VL53L0X_get_pal_range_status+0x1aa>
+			*pPalRangeStatus = 255;	 /* NONE */
+		} else if (DeviceRangeStatusInternal == 1 ||
+ 8007edc:	f10a 33ff 	add.w	r3, sl, #4294967295
+ 8007ee0:	2b09      	cmp	r3, #9
+ 8007ee2:	d830      	bhi.n	8007f46 <VL53L0X_get_pal_range_status+0x1f6>
+ 8007ee4:	e8df f003 	tbb	[pc, r3]
+ 8007ee8:	2f272727 	.word	0x2f272727
+ 8007eec:	3d2f2b2f 	.word	0x3d2f2b2f
+ 8007ef0:	3d2b      	.short	0x3d2b
+	uint8_t RangeIgnoreThresholdflag = 0;
+ 8007ef2:	2700      	movs	r7, #0
+ 8007ef4:	e7ee      	b.n	8007ed4 <VL53L0X_get_pal_range_status+0x184>
+			RangeIgnoreThresholdflag = 1;
+ 8007ef6:	2701      	movs	r7, #1
+ 8007ef8:	e7ec      	b.n	8007ed4 <VL53L0X_get_pal_range_status+0x184>
+			*pPalRangeStatus = 255;	 /* NONE */
+ 8007efa:	23ff      	movs	r3, #255	; 0xff
+ 8007efc:	f889 3000 	strb.w	r3, [r9]
+			*pPalRangeStatus = 0; /* Range Valid */
+		}
+	}
+
+	/* DMAX only relevant during range error */
+	if (*pPalRangeStatus == 0)
+ 8007f00:	f899 3000 	ldrb.w	r3, [r9]
+ 8007f04:	b90b      	cbnz	r3, 8007f0a <VL53L0X_get_pal_range_status+0x1ba>
+		pRangingMeasurementData->RangeDMaxMilliMeter = 0;
+ 8007f06:	9a14      	ldr	r2, [sp, #80]	; 0x50
+ 8007f08:	8153      	strh	r3, [r2, #10]
+
+	/* fill the Limit Check Status */
+
+	Status =  VL53L0X_GetLimitCheckEnable(Dev,
+ 8007f0a:	f10d 0226 	add.w	r2, sp, #38	; 0x26
+ 8007f0e:	2101      	movs	r1, #1
+ 8007f10:	4620      	mov	r0, r4
+ 8007f12:	f7fd fc30 	bl	8005776 <VL53L0X_GetLimitCheckEnable>
+			VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE,
+			&SignalRateFinalRangeLimitCheckEnable);
+
+	if (Status == VL53L0X_ERROR_NONE) {
+ 8007f16:	bbf8      	cbnz	r0, 8007f98 <VL53L0X_get_pal_range_status+0x248>
+		if ((SigmaLimitCheckEnable == 0) || (SigmaLimitflag == 1))
+ 8007f18:	f89d 3027 	ldrb.w	r3, [sp, #39]	; 0x27
+ 8007f1c:	b90b      	cbnz	r3, 8007f22 <VL53L0X_get_pal_range_status+0x1d2>
+			Temp8 = 1;
+ 8007f1e:	f04f 0801 	mov.w	r8, #1
+		else
+			Temp8 = 0;
+		VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksStatus,
+ 8007f22:	f884 802e 	strb.w	r8, [r4, #46]	; 0x2e
+				VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE, Temp8);
+
+		if ((DeviceRangeStatusInternal == 4) ||
+ 8007f26:	f1ba 0f04 	cmp.w	sl, #4
+ 8007f2a:	d026      	beq.n	8007f7a <VL53L0X_get_pal_range_status+0x22a>
+				(SignalRateFinalRangeLimitCheckEnable == 0))
+ 8007f2c:	f89d 3026 	ldrb.w	r3, [sp, #38]	; 0x26
+		if ((DeviceRangeStatusInternal == 4) ||
+ 8007f30:	bbab      	cbnz	r3, 8007f9e <VL53L0X_get_pal_range_status+0x24e>
+			Temp8 = 1;
+ 8007f32:	2301      	movs	r3, #1
+ 8007f34:	e022      	b.n	8007f7c <VL53L0X_get_pal_range_status+0x22c>
+			*pPalRangeStatus = 5; /* HW fail */
+ 8007f36:	2305      	movs	r3, #5
+ 8007f38:	f889 3000 	strb.w	r3, [r9]
+ 8007f3c:	e7e0      	b.n	8007f00 <VL53L0X_get_pal_range_status+0x1b0>
+			*pPalRangeStatus = 4;  /* Phase fail */
+ 8007f3e:	2304      	movs	r3, #4
+ 8007f40:	f889 3000 	strb.w	r3, [r9]
+ 8007f44:	e7dc      	b.n	8007f00 <VL53L0X_get_pal_range_status+0x1b0>
+					DeviceRangeStatusInternal == 10 ||
+ 8007f46:	2e01      	cmp	r6, #1
+ 8007f48:	d00b      	beq.n	8007f62 <VL53L0X_get_pal_range_status+0x212>
+		} else if (DeviceRangeStatusInternal == 4 ||
+ 8007f4a:	f1ba 0f04 	cmp.w	sl, #4
+ 8007f4e:	d00c      	beq.n	8007f6a <VL53L0X_get_pal_range_status+0x21a>
+ 8007f50:	2f01      	cmp	r7, #1
+ 8007f52:	d00a      	beq.n	8007f6a <VL53L0X_get_pal_range_status+0x21a>
+		} else if (SigmaLimitflag == 1) {
+ 8007f54:	f1b8 0f01 	cmp.w	r8, #1
+ 8007f58:	d00b      	beq.n	8007f72 <VL53L0X_get_pal_range_status+0x222>
+			*pPalRangeStatus = 0; /* Range Valid */
+ 8007f5a:	2300      	movs	r3, #0
+ 8007f5c:	f889 3000 	strb.w	r3, [r9]
+ 8007f60:	e7ce      	b.n	8007f00 <VL53L0X_get_pal_range_status+0x1b0>
+			*pPalRangeStatus = 3;  /* Min range */
+ 8007f62:	2303      	movs	r3, #3
+ 8007f64:	f889 3000 	strb.w	r3, [r9]
+ 8007f68:	e7ca      	b.n	8007f00 <VL53L0X_get_pal_range_status+0x1b0>
+			*pPalRangeStatus = 2;  /* Signal Fail */
+ 8007f6a:	2302      	movs	r3, #2
+ 8007f6c:	f889 3000 	strb.w	r3, [r9]
+ 8007f70:	e7c6      	b.n	8007f00 <VL53L0X_get_pal_range_status+0x1b0>
+			*pPalRangeStatus = 1;  /* Sigma	 Fail */
+ 8007f72:	2301      	movs	r3, #1
+ 8007f74:	f889 3000 	strb.w	r3, [r9]
+ 8007f78:	e7c2      	b.n	8007f00 <VL53L0X_get_pal_range_status+0x1b0>
+			Temp8 = 1;
+ 8007f7a:	2301      	movs	r3, #1
+		else
+			Temp8 = 0;
+		VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksStatus,
+ 8007f7c:	f884 302f 	strb.w	r3, [r4, #47]	; 0x2f
+				VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE,
+				Temp8);
+
+		if ((SignalRefClipLimitCheckEnable == 0) ||
+ 8007f80:	f89d 3025 	ldrb.w	r3, [sp, #37]	; 0x25
+ 8007f84:	b903      	cbnz	r3, 8007f88 <VL53L0X_get_pal_range_status+0x238>
+					(SignalRefClipflag == 1))
+			Temp8 = 1;
+ 8007f86:	2601      	movs	r6, #1
+		else
+			Temp8 = 0;
+
+		VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksStatus,
+ 8007f88:	f884 6030 	strb.w	r6, [r4, #48]	; 0x30
+				VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP, Temp8);
+
+		if ((RangeIgnoreThresholdLimitCheckEnable == 0) ||
+ 8007f8c:	f89d 3024 	ldrb.w	r3, [sp, #36]	; 0x24
+ 8007f90:	b903      	cbnz	r3, 8007f94 <VL53L0X_get_pal_range_status+0x244>
+				(RangeIgnoreThresholdflag == 1))
+			Temp8 = 1;
+ 8007f92:	2701      	movs	r7, #1
+		else
+			Temp8 = 0;
+
+		VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksStatus,
+ 8007f94:	f884 7031 	strb.w	r7, [r4, #49]	; 0x31
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+
+}
+ 8007f98:	b00b      	add	sp, #44	; 0x2c
+ 8007f9a:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+			Temp8 = 0;
+ 8007f9e:	2300      	movs	r3, #0
+ 8007fa0:	e7ec      	b.n	8007f7c <VL53L0X_get_pal_range_status+0x22c>
+
+08007fa2 <_I2CWrite>:
+#endif
+
+
+uint8_t _I2CBuffer[64];
+
+int _I2CWrite(VL53L0X_DEV Dev, uint8_t *pdata, uint32_t count) {
+ 8007fa2:	b500      	push	{lr}
+ 8007fa4:	b083      	sub	sp, #12
+    int status;
+    int i2c_time_out = I2C_TIME_OUT_BASE+ count* I2C_TIME_OUT_BYTE;
+ 8007fa6:	f102 030a 	add.w	r3, r2, #10
+
+    status = HAL_I2C_Master_Transmit(Dev->I2cHandle, Dev->I2cDevAddr, pdata, count, i2c_time_out);
+ 8007faa:	9300      	str	r3, [sp, #0]
+ 8007fac:	b293      	uxth	r3, r2
+ 8007fae:	460a      	mov	r2, r1
+ 8007fb0:	f890 1160 	ldrb.w	r1, [r0, #352]	; 0x160
+ 8007fb4:	f8d0 015c 	ldr.w	r0, [r0, #348]	; 0x15c
+ 8007fb8:	f001 fd9e 	bl	8009af8 <HAL_I2C_Master_Transmit>
+    if (status) {
+        //VL6180x_ErrLog("I2C error 0x%x %d len", dev->I2cAddr, len);
+        //XNUCLEO6180XA1_I2C1_Init(&hi2c1);
+    }
+    return status;
+}
+ 8007fbc:	b003      	add	sp, #12
+ 8007fbe:	f85d fb04 	ldr.w	pc, [sp], #4
+
+08007fc2 <_I2CRead>:
+
+int _I2CRead(VL53L0X_DEV Dev, uint8_t *pdata, uint32_t count) {
+ 8007fc2:	b500      	push	{lr}
+ 8007fc4:	b083      	sub	sp, #12
+    int status;
+    int i2c_time_out = I2C_TIME_OUT_BASE+ count* I2C_TIME_OUT_BYTE;
+ 8007fc6:	f102 030a 	add.w	r3, r2, #10
+
+    status = HAL_I2C_Master_Receive(Dev->I2cHandle, Dev->I2cDevAddr|1, pdata, count, i2c_time_out);
+ 8007fca:	f890 c160 	ldrb.w	ip, [r0, #352]	; 0x160
+ 8007fce:	9300      	str	r3, [sp, #0]
+ 8007fd0:	b293      	uxth	r3, r2
+ 8007fd2:	460a      	mov	r2, r1
+ 8007fd4:	f04c 0101 	orr.w	r1, ip, #1
+ 8007fd8:	f8d0 015c 	ldr.w	r0, [r0, #348]	; 0x15c
+ 8007fdc:	f001 fe4a 	bl	8009c74 <HAL_I2C_Master_Receive>
+    if (status) {
+        //VL6180x_ErrLog("I2C error 0x%x %d len", dev->I2cAddr, len);
+        //XNUCLEO6180XA1_I2C1_Init(&hi2c1);
+    }
+    return status;
+}
+ 8007fe0:	b003      	add	sp, #12
+ 8007fe2:	f85d fb04 	ldr.w	pc, [sp], #4
+	...
+
+08007fe8 <VL53L0X_WriteMulti>:
+
+// the ranging_sensor_comms.dll will take care of the page selection
+VL53L0X_Error VL53L0X_WriteMulti(VL53L0X_DEV Dev, uint8_t index, uint8_t *pdata, uint32_t count) {
+    int status_int;
+    VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+    if (count > sizeof(_I2CBuffer) - 1) {
+ 8007fe8:	2b3f      	cmp	r3, #63	; 0x3f
+ 8007fea:	d812      	bhi.n	8008012 <VL53L0X_WriteMulti+0x2a>
+VL53L0X_Error VL53L0X_WriteMulti(VL53L0X_DEV Dev, uint8_t index, uint8_t *pdata, uint32_t count) {
+ 8007fec:	b570      	push	{r4, r5, r6, lr}
+ 8007fee:	4605      	mov	r5, r0
+ 8007ff0:	468c      	mov	ip, r1
+ 8007ff2:	4611      	mov	r1, r2
+ 8007ff4:	461c      	mov	r4, r3
+        return VL53L0X_ERROR_INVALID_PARAMS;
+    }
+    _I2CBuffer[0] = index;
+ 8007ff6:	4e0a      	ldr	r6, [pc, #40]	; (8008020 <VL53L0X_WriteMulti+0x38>)
+ 8007ff8:	4630      	mov	r0, r6
+ 8007ffa:	f800 cb01 	strb.w	ip, [r0], #1
+    memcpy(&_I2CBuffer[1], pdata, count);
+ 8007ffe:	461a      	mov	r2, r3
+ 8008000:	f00f fb97 	bl	8017732 <memcpy>
+    VL53L0X_GetI2cBus();
+    status_int = _I2CWrite(Dev, _I2CBuffer, count + 1);
+ 8008004:	1c62      	adds	r2, r4, #1
+ 8008006:	4631      	mov	r1, r6
+ 8008008:	4628      	mov	r0, r5
+ 800800a:	f7ff ffca 	bl	8007fa2 <_I2CWrite>
+    if (status_int != 0) {
+ 800800e:	b918      	cbnz	r0, 8008018 <VL53L0X_WriteMulti+0x30>
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+    }
+    VL53L0X_PutI2cBus();
+    return Status;
+}
+ 8008010:	bd70      	pop	{r4, r5, r6, pc}
+        return VL53L0X_ERROR_INVALID_PARAMS;
+ 8008012:	f06f 0003 	mvn.w	r0, #3
+}
+ 8008016:	4770      	bx	lr
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+ 8008018:	f06f 0013 	mvn.w	r0, #19
+ 800801c:	e7f8      	b.n	8008010 <VL53L0X_WriteMulti+0x28>
+ 800801e:	bf00      	nop
+ 8008020:	20000f0c 	.word	0x20000f0c
+
+08008024 <VL53L0X_ReadMulti>:
+
+// the ranging_sensor_comms.dll will take care of the page selection
+VL53L0X_Error VL53L0X_ReadMulti(VL53L0X_DEV Dev, uint8_t index, uint8_t *pdata, uint32_t count) {
+ 8008024:	b570      	push	{r4, r5, r6, lr}
+ 8008026:	b082      	sub	sp, #8
+ 8008028:	4604      	mov	r4, r0
+ 800802a:	4615      	mov	r5, r2
+ 800802c:	461e      	mov	r6, r3
+ 800802e:	f88d 1007 	strb.w	r1, [sp, #7]
+    VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+    int32_t status_int;
+    VL53L0X_GetI2cBus();
+    status_int = _I2CWrite(Dev, &index, 1);
+ 8008032:	2201      	movs	r2, #1
+ 8008034:	f10d 0107 	add.w	r1, sp, #7
+ 8008038:	f7ff ffb3 	bl	8007fa2 <_I2CWrite>
+    if (status_int != 0) {
+ 800803c:	b938      	cbnz	r0, 800804e <VL53L0X_ReadMulti+0x2a>
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+        goto done;
+    }
+    status_int = _I2CRead(Dev, pdata, count);
+ 800803e:	4632      	mov	r2, r6
+ 8008040:	4629      	mov	r1, r5
+ 8008042:	4620      	mov	r0, r4
+ 8008044:	f7ff ffbd 	bl	8007fc2 <_I2CRead>
+    if (status_int != 0) {
+ 8008048:	b920      	cbnz	r0, 8008054 <VL53L0X_ReadMulti+0x30>
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+    }
+done:
+    VL53L0X_PutI2cBus();
+    return Status;
+}
+ 800804a:	b002      	add	sp, #8
+ 800804c:	bd70      	pop	{r4, r5, r6, pc}
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+ 800804e:	f06f 0013 	mvn.w	r0, #19
+ 8008052:	e7fa      	b.n	800804a <VL53L0X_ReadMulti+0x26>
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+ 8008054:	f06f 0013 	mvn.w	r0, #19
+ 8008058:	e7f7      	b.n	800804a <VL53L0X_ReadMulti+0x26>
+	...
+
+0800805c <VL53L0X_WrByte>:
+
+VL53L0X_Error VL53L0X_WrByte(VL53L0X_DEV Dev, uint8_t index, uint8_t data) {
+ 800805c:	b508      	push	{r3, lr}
+    VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+    int32_t status_int;
+
+    _I2CBuffer[0] = index;
+ 800805e:	4b06      	ldr	r3, [pc, #24]	; (8008078 <VL53L0X_WrByte+0x1c>)
+ 8008060:	7019      	strb	r1, [r3, #0]
+    _I2CBuffer[1] = data;
+ 8008062:	705a      	strb	r2, [r3, #1]
+
+    VL53L0X_GetI2cBus();
+    status_int = _I2CWrite(Dev, _I2CBuffer, 2);
+ 8008064:	2202      	movs	r2, #2
+ 8008066:	4619      	mov	r1, r3
+ 8008068:	f7ff ff9b 	bl	8007fa2 <_I2CWrite>
+    if (status_int != 0) {
+ 800806c:	b900      	cbnz	r0, 8008070 <VL53L0X_WrByte+0x14>
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+    }
+    VL53L0X_PutI2cBus();
+    return Status;
+}
+ 800806e:	bd08      	pop	{r3, pc}
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+ 8008070:	f06f 0013 	mvn.w	r0, #19
+ 8008074:	e7fb      	b.n	800806e <VL53L0X_WrByte+0x12>
+ 8008076:	bf00      	nop
+ 8008078:	20000f0c 	.word	0x20000f0c
+
+0800807c <VL53L0X_WrWord>:
+
+VL53L0X_Error VL53L0X_WrWord(VL53L0X_DEV Dev, uint8_t index, uint16_t data) {
+ 800807c:	b508      	push	{r3, lr}
+    VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+    int32_t status_int;
+
+    _I2CBuffer[0] = index;
+ 800807e:	4b07      	ldr	r3, [pc, #28]	; (800809c <VL53L0X_WrWord+0x20>)
+ 8008080:	7019      	strb	r1, [r3, #0]
+    _I2CBuffer[1] = data >> 8;
+ 8008082:	0a11      	lsrs	r1, r2, #8
+ 8008084:	7059      	strb	r1, [r3, #1]
+    _I2CBuffer[2] = data & 0x00FF;
+ 8008086:	709a      	strb	r2, [r3, #2]
+
+    VL53L0X_GetI2cBus();
+    status_int = _I2CWrite(Dev, _I2CBuffer, 3);
+ 8008088:	2203      	movs	r2, #3
+ 800808a:	4619      	mov	r1, r3
+ 800808c:	f7ff ff89 	bl	8007fa2 <_I2CWrite>
+    if (status_int != 0) {
+ 8008090:	b900      	cbnz	r0, 8008094 <VL53L0X_WrWord+0x18>
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+    }
+    VL53L0X_PutI2cBus();
+    return Status;
+}
+ 8008092:	bd08      	pop	{r3, pc}
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+ 8008094:	f06f 0013 	mvn.w	r0, #19
+ 8008098:	e7fb      	b.n	8008092 <VL53L0X_WrWord+0x16>
+ 800809a:	bf00      	nop
+ 800809c:	20000f0c 	.word	0x20000f0c
+
+080080a0 <VL53L0X_RdByte>:
+    Status = VL53L0X_WrByte(Dev, index, data);
+done:
+    return Status;
+}
+
+VL53L0X_Error VL53L0X_RdByte(VL53L0X_DEV Dev, uint8_t index, uint8_t *data) {
+ 80080a0:	b530      	push	{r4, r5, lr}
+ 80080a2:	b083      	sub	sp, #12
+ 80080a4:	4604      	mov	r4, r0
+ 80080a6:	4615      	mov	r5, r2
+ 80080a8:	f88d 1007 	strb.w	r1, [sp, #7]
+    VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+    int32_t status_int;
+
+    VL53L0X_GetI2cBus();
+    status_int = _I2CWrite(Dev, &index, 1);
+ 80080ac:	2201      	movs	r2, #1
+ 80080ae:	f10d 0107 	add.w	r1, sp, #7
+ 80080b2:	f7ff ff76 	bl	8007fa2 <_I2CWrite>
+    if( status_int ){
+ 80080b6:	b938      	cbnz	r0, 80080c8 <VL53L0X_RdByte+0x28>
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+        goto done;
+    }
+    status_int = _I2CRead(Dev, data, 1);
+ 80080b8:	2201      	movs	r2, #1
+ 80080ba:	4629      	mov	r1, r5
+ 80080bc:	4620      	mov	r0, r4
+ 80080be:	f7ff ff80 	bl	8007fc2 <_I2CRead>
+    if (status_int != 0) {
+ 80080c2:	b920      	cbnz	r0, 80080ce <VL53L0X_RdByte+0x2e>
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+    }
+done:
+    VL53L0X_PutI2cBus();
+    return Status;
+}
+ 80080c4:	b003      	add	sp, #12
+ 80080c6:	bd30      	pop	{r4, r5, pc}
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+ 80080c8:	f06f 0013 	mvn.w	r0, #19
+ 80080cc:	e7fa      	b.n	80080c4 <VL53L0X_RdByte+0x24>
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+ 80080ce:	f06f 0013 	mvn.w	r0, #19
+ 80080d2:	e7f7      	b.n	80080c4 <VL53L0X_RdByte+0x24>
+
+080080d4 <VL53L0X_UpdateByte>:
+VL53L0X_Error VL53L0X_UpdateByte(VL53L0X_DEV Dev, uint8_t index, uint8_t AndData, uint8_t OrData) {
+ 80080d4:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 80080d6:	b083      	sub	sp, #12
+ 80080d8:	4606      	mov	r6, r0
+ 80080da:	460f      	mov	r7, r1
+ 80080dc:	4615      	mov	r5, r2
+ 80080de:	461c      	mov	r4, r3
+    Status = VL53L0X_RdByte(Dev, index, &data);
+ 80080e0:	f10d 0207 	add.w	r2, sp, #7
+ 80080e4:	f7ff ffdc 	bl	80080a0 <VL53L0X_RdByte>
+    if (Status) {
+ 80080e8:	b108      	cbz	r0, 80080ee <VL53L0X_UpdateByte+0x1a>
+}
+ 80080ea:	b003      	add	sp, #12
+ 80080ec:	bdf0      	pop	{r4, r5, r6, r7, pc}
+    data = (data & AndData) | OrData;
+ 80080ee:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 80080f2:	ea05 0203 	and.w	r2, r5, r3
+ 80080f6:	4322      	orrs	r2, r4
+ 80080f8:	f88d 2007 	strb.w	r2, [sp, #7]
+    Status = VL53L0X_WrByte(Dev, index, data);
+ 80080fc:	4639      	mov	r1, r7
+ 80080fe:	4630      	mov	r0, r6
+ 8008100:	f7ff ffac 	bl	800805c <VL53L0X_WrByte>
+ 8008104:	e7f1      	b.n	80080ea <VL53L0X_UpdateByte+0x16>
+	...
+
+08008108 <VL53L0X_RdWord>:
+
+VL53L0X_Error VL53L0X_RdWord(VL53L0X_DEV Dev, uint8_t index, uint16_t *data) {
+ 8008108:	b530      	push	{r4, r5, lr}
+ 800810a:	b083      	sub	sp, #12
+ 800810c:	4604      	mov	r4, r0
+ 800810e:	4615      	mov	r5, r2
+ 8008110:	f88d 1007 	strb.w	r1, [sp, #7]
+    VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+    int32_t status_int;
+
+    VL53L0X_GetI2cBus();
+    status_int = _I2CWrite(Dev, &index, 1);
+ 8008114:	2201      	movs	r2, #1
+ 8008116:	f10d 0107 	add.w	r1, sp, #7
+ 800811a:	f7ff ff42 	bl	8007fa2 <_I2CWrite>
+
+    if( status_int ){
+ 800811e:	b968      	cbnz	r0, 800813c <VL53L0X_RdWord+0x34>
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+        goto done;
+    }
+    status_int = _I2CRead(Dev, _I2CBuffer, 2);
+ 8008120:	2202      	movs	r2, #2
+ 8008122:	4909      	ldr	r1, [pc, #36]	; (8008148 <VL53L0X_RdWord+0x40>)
+ 8008124:	4620      	mov	r0, r4
+ 8008126:	f7ff ff4c 	bl	8007fc2 <_I2CRead>
+    if (status_int != 0) {
+ 800812a:	b950      	cbnz	r0, 8008142 <VL53L0X_RdWord+0x3a>
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+        goto done;
+    }
+
+    *data = ((uint16_t)_I2CBuffer[0]<<8) + (uint16_t)_I2CBuffer[1];
+ 800812c:	4b06      	ldr	r3, [pc, #24]	; (8008148 <VL53L0X_RdWord+0x40>)
+ 800812e:	781a      	ldrb	r2, [r3, #0]
+ 8008130:	785b      	ldrb	r3, [r3, #1]
+ 8008132:	eb03 2302 	add.w	r3, r3, r2, lsl #8
+ 8008136:	802b      	strh	r3, [r5, #0]
+done:
+    VL53L0X_PutI2cBus();
+    return Status;
+}
+ 8008138:	b003      	add	sp, #12
+ 800813a:	bd30      	pop	{r4, r5, pc}
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+ 800813c:	f06f 0013 	mvn.w	r0, #19
+ 8008140:	e7fa      	b.n	8008138 <VL53L0X_RdWord+0x30>
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+ 8008142:	f06f 0013 	mvn.w	r0, #19
+ 8008146:	e7f7      	b.n	8008138 <VL53L0X_RdWord+0x30>
+ 8008148:	20000f0c 	.word	0x20000f0c
+
+0800814c <VL53L0X_RdDWord>:
+
+VL53L0X_Error VL53L0X_RdDWord(VL53L0X_DEV Dev, uint8_t index, uint32_t *data) {
+ 800814c:	b530      	push	{r4, r5, lr}
+ 800814e:	b083      	sub	sp, #12
+ 8008150:	4604      	mov	r4, r0
+ 8008152:	4615      	mov	r5, r2
+ 8008154:	f88d 1007 	strb.w	r1, [sp, #7]
+    VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+    int32_t status_int;
+
+    VL53L0X_GetI2cBus();
+    status_int = _I2CWrite(Dev, &index, 1);
+ 8008158:	2201      	movs	r2, #1
+ 800815a:	f10d 0107 	add.w	r1, sp, #7
+ 800815e:	f7ff ff20 	bl	8007fa2 <_I2CWrite>
+    if (status_int != 0) {
+ 8008162:	b998      	cbnz	r0, 800818c <VL53L0X_RdDWord+0x40>
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+        goto done;
+    }
+    status_int = _I2CRead(Dev, _I2CBuffer, 4);
+ 8008164:	2204      	movs	r2, #4
+ 8008166:	490c      	ldr	r1, [pc, #48]	; (8008198 <VL53L0X_RdDWord+0x4c>)
+ 8008168:	4620      	mov	r0, r4
+ 800816a:	f7ff ff2a 	bl	8007fc2 <_I2CRead>
+    if (status_int != 0) {
+ 800816e:	b980      	cbnz	r0, 8008192 <VL53L0X_RdDWord+0x46>
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+        goto done;
+    }
+
+    *data = ((uint32_t)_I2CBuffer[0]<<24) + ((uint32_t)_I2CBuffer[1]<<16) + ((uint32_t)_I2CBuffer[2]<<8) + (uint32_t)_I2CBuffer[3];
+ 8008170:	4909      	ldr	r1, [pc, #36]	; (8008198 <VL53L0X_RdDWord+0x4c>)
+ 8008172:	780a      	ldrb	r2, [r1, #0]
+ 8008174:	784b      	ldrb	r3, [r1, #1]
+ 8008176:	041b      	lsls	r3, r3, #16
+ 8008178:	eb03 6302 	add.w	r3, r3, r2, lsl #24
+ 800817c:	788a      	ldrb	r2, [r1, #2]
+ 800817e:	eb03 2302 	add.w	r3, r3, r2, lsl #8
+ 8008182:	78ca      	ldrb	r2, [r1, #3]
+ 8008184:	4413      	add	r3, r2
+ 8008186:	602b      	str	r3, [r5, #0]
+
+done:
+    VL53L0X_PutI2cBus();
+    return Status;
+}
+ 8008188:	b003      	add	sp, #12
+ 800818a:	bd30      	pop	{r4, r5, pc}
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+ 800818c:	f06f 0013 	mvn.w	r0, #19
+ 8008190:	e7fa      	b.n	8008188 <VL53L0X_RdDWord+0x3c>
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+ 8008192:	f06f 0013 	mvn.w	r0, #19
+ 8008196:	e7f7      	b.n	8008188 <VL53L0X_RdDWord+0x3c>
+ 8008198:	20000f0c 	.word	0x20000f0c
+
+0800819c <VL53L0X_PollingDelay>:
+
+VL53L0X_Error VL53L0X_PollingDelay(VL53L0X_DEV Dev) {
+ 800819c:	b508      	push	{r3, lr}
+    VL53L0X_Error status = VL53L0X_ERROR_NONE;
+
+    // do nothing
+    VL53L0X_OsDelay();
+ 800819e:	2002      	movs	r0, #2
+ 80081a0:	f7fa fd86 	bl	8002cb0 <HAL_Delay>
+    return status;
+}
+ 80081a4:	2000      	movs	r0, #0
+ 80081a6:	bd08      	pop	{r3, pc}
+
+080081a8 <SystemInit>:
+
+  /* FPU settings ------------------------------------------------------------*/
+#if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
+  SCB->CPACR |= ((3UL << (10UL*2UL))|(3UL << (11UL*2UL)));  /* set CP10 and CP11 Full Access */
+#endif
+}
+ 80081a8:	4770      	bx	lr
+	...
+
+080081ac <HAL_Init>:
+  *         need to ensure that the SysTick time base is always set to 1 millisecond
+  *         to have correct HAL operation.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_Init(void)
+{
+ 80081ac:	b510      	push	{r4, lr}
+#endif /* PREFETCH_ENABLE */
+
+#ifdef CORE_CM0PLUS
+#else
+  /* Set Interrupt Group Priority */
+  HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);
+ 80081ae:	2003      	movs	r0, #3
+ 80081b0:	f000 fd22 	bl	8008bf8 <HAL_NVIC_SetPriorityGrouping>
+
+  /* Update the SystemCoreClock global variable */
+#if defined(DUAL_CORE) && defined(CORE_CM0PLUS)
+  SystemCoreClock = HAL_RCC_GetHCLK2Freq();
+#else
+  SystemCoreClock = HAL_RCC_GetHCLKFreq();
+ 80081b4:	f002 f800 	bl	800a1b8 <HAL_RCC_GetHCLKFreq>
+ 80081b8:	4b06      	ldr	r3, [pc, #24]	; (80081d4 <HAL_Init+0x28>)
+ 80081ba:	6018      	str	r0, [r3, #0]
+#endif
+
+  /* Use SysTick as time base source and configure 1ms tick (default clock after Reset is MSI) */
+  if (HAL_InitTick(TICK_INT_PRIORITY) != HAL_OK)
+ 80081bc:	200f      	movs	r0, #15
+ 80081be:	f7fa fd69 	bl	8002c94 <HAL_InitTick>
+ 80081c2:	b110      	cbz	r0, 80081ca <HAL_Init+0x1e>
+  {
+    status = HAL_ERROR;
+ 80081c4:	2401      	movs	r4, #1
+    HAL_MspInit();
+  }
+
+  /* Return function status */
+  return status;
+}
+ 80081c6:	4620      	mov	r0, r4
+ 80081c8:	bd10      	pop	{r4, pc}
+ 80081ca:	4604      	mov	r4, r0
+    HAL_MspInit();
+ 80081cc:	f7fa fb86 	bl	80028dc <HAL_MspInit>
+ 80081d0:	e7f9      	b.n	80081c6 <HAL_Init+0x1a>
+ 80081d2:	bf00      	nop
+ 80081d4:	20000828 	.word	0x20000828
+
+080081d8 <HAL_SuspendTick>:
+  * @retval None
+  */
+__weak void HAL_SuspendTick(void)
+{
+  /* Disable SysTick Interrupt */
+  CLEAR_BIT(SysTick->CTRL, SysTick_CTRL_TICKINT_Msk);
+ 80081d8:	f04f 22e0 	mov.w	r2, #3758153728	; 0xe000e000
+ 80081dc:	6913      	ldr	r3, [r2, #16]
+ 80081de:	f023 0302 	bic.w	r3, r3, #2
+ 80081e2:	6113      	str	r3, [r2, #16]
+}
+ 80081e4:	4770      	bx	lr
+
+080081e6 <HAL_ResumeTick>:
+  * @retval None
+  */
+__weak void HAL_ResumeTick(void)
+{
+  /* Enable SysTick Interrupt */
+  SET_BIT(SysTick->CTRL, SysTick_CTRL_TICKINT_Msk);
+ 80081e6:	f04f 22e0 	mov.w	r2, #3758153728	; 0xe000e000
+ 80081ea:	6913      	ldr	r3, [r2, #16]
+ 80081ec:	f043 0302 	orr.w	r3, r3, #2
+ 80081f0:	6113      	str	r3, [r2, #16]
+}
+ 80081f2:	4770      	bx	lr
+
+080081f4 <HAL_GetUIDw0>:
+  * @retval Device identifier
+  */
+uint32_t HAL_GetUIDw0(void)
+{
+  return (READ_REG(*((uint32_t *)UID_BASE)));
+}
+ 80081f4:	4b01      	ldr	r3, [pc, #4]	; (80081fc <HAL_GetUIDw0+0x8>)
+ 80081f6:	f8d3 0590 	ldr.w	r0, [r3, #1424]	; 0x590
+ 80081fa:	4770      	bx	lr
+ 80081fc:	1fff7000 	.word	0x1fff7000
+
+08008200 <HAL_GetUIDw1>:
+  * @retval Device identifier
+  */
+uint32_t HAL_GetUIDw1(void)
+{
+  return (READ_REG(*((uint32_t *)(UID_BASE + 4U))));
+}
+ 8008200:	4b01      	ldr	r3, [pc, #4]	; (8008208 <HAL_GetUIDw1+0x8>)
+ 8008202:	f8d3 0594 	ldr.w	r0, [r3, #1428]	; 0x594
+ 8008206:	4770      	bx	lr
+ 8008208:	1fff7000 	.word	0x1fff7000
+
+0800820c <HAL_GetUIDw2>:
+  * @retval Device identifier
+  */
+uint32_t HAL_GetUIDw2(void)
+{
+  return (READ_REG(*((uint32_t *)(UID_BASE + 8U))));
+}
+ 800820c:	4b01      	ldr	r3, [pc, #4]	; (8008214 <HAL_GetUIDw2+0x8>)
+ 800820e:	f8d3 0598 	ldr.w	r0, [r3, #1432]	; 0x598
+ 8008212:	4770      	bx	lr
+ 8008214:	1fff7000 	.word	0x1fff7000
+
+08008218 <HAL_DBGMCU_EnableDBGSleepMode>:
+  SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_SLEEP);
+ 8008218:	4a02      	ldr	r2, [pc, #8]	; (8008224 <HAL_DBGMCU_EnableDBGSleepMode+0xc>)
+ 800821a:	6853      	ldr	r3, [r2, #4]
+ 800821c:	f043 0301 	orr.w	r3, r3, #1
+ 8008220:	6053      	str	r3, [r2, #4]
+  * @retval None
+  */
+void HAL_DBGMCU_EnableDBGSleepMode(void)
+{
+  LL_DBGMCU_EnableDBGSleepMode();
+}
+ 8008222:	4770      	bx	lr
+ 8008224:	e0042000 	.word	0xe0042000
+
+08008228 <HAL_DBGMCU_EnableDBGStopMode>:
+  SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP);
+ 8008228:	4a02      	ldr	r2, [pc, #8]	; (8008234 <HAL_DBGMCU_EnableDBGStopMode+0xc>)
+ 800822a:	6853      	ldr	r3, [r2, #4]
+ 800822c:	f043 0302 	orr.w	r3, r3, #2
+ 8008230:	6053      	str	r3, [r2, #4]
+  * @retval None
+  */
+void HAL_DBGMCU_EnableDBGStopMode(void)
+{
+  LL_DBGMCU_EnableDBGStopMode();
+}
+ 8008232:	4770      	bx	lr
+ 8008234:	e0042000 	.word	0xe0042000
+
+08008238 <HAL_DBGMCU_EnableDBGStandbyMode>:
+  SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY);
+ 8008238:	4a02      	ldr	r2, [pc, #8]	; (8008244 <HAL_DBGMCU_EnableDBGStandbyMode+0xc>)
+ 800823a:	6853      	ldr	r3, [r2, #4]
+ 800823c:	f043 0304 	orr.w	r3, r3, #4
+ 8008240:	6053      	str	r3, [r2, #4]
+  * @retval None
+  */
+void HAL_DBGMCU_EnableDBGStandbyMode(void)
+{
+  LL_DBGMCU_EnableDBGStandbyMode();
+}
+ 8008242:	4770      	bx	lr
+ 8008244:	e0042000 	.word	0xe0042000
+
+08008248 <HAL_ADC_Init>:
+  *         of structure "ADC_InitTypeDef".
+  * @param hadc ADC handle
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ADC_Init(ADC_HandleTypeDef *hadc)
+{
+ 8008248:	b530      	push	{r4, r5, lr}
+ 800824a:	b083      	sub	sp, #12
+  HAL_StatusTypeDef tmp_hal_status = HAL_OK;
+  uint32_t tmpCFGR1 = 0UL;
+  uint32_t tmpCFGR2 = 0UL;
+  uint32_t tmp_adc_reg_is_conversion_on_going;
+  __IO uint32_t wait_loop_index = 0UL;
+ 800824c:	2300      	movs	r3, #0
+ 800824e:	9301      	str	r3, [sp, #4]
+
+  /* Check ADC handle */
+  if (hadc == NULL)
+ 8008250:	2800      	cmp	r0, #0
+ 8008252:	f000 8106 	beq.w	8008462 <HAL_ADC_Init+0x21a>
+ 8008256:	4604      	mov	r4, r0
+  /* continuous mode is disabled.                                             */
+  assert_param(!((hadc->Init.DiscontinuousConvMode == ENABLE) && (hadc->Init.ContinuousConvMode == ENABLE)));
+
+  /* Actions performed only if ADC is coming from state reset:                */
+  /* - Initialization of ADC MSP                                              */
+  if (hadc->State == HAL_ADC_STATE_RESET)
+ 8008258:	6d83      	ldr	r3, [r0, #88]	; 0x58
+ 800825a:	b1bb      	cbz	r3, 800828c <HAL_ADC_Init+0x44>
+
+    /* Initialize Lock */
+    hadc->Lock = HAL_UNLOCKED;
+  }
+
+  if (LL_ADC_IsInternalRegulatorEnabled(hadc->Instance) == 0UL)
+ 800825c:	6822      	ldr	r2, [r4, #0]
+  * @param  ADCx ADC instance
+  * @retval 0: internal regulator is disabled, 1: internal regulator is enabled.
+  */
+__STATIC_INLINE uint32_t LL_ADC_IsInternalRegulatorEnabled(ADC_TypeDef *ADCx)
+{
+  return ((READ_BIT(ADCx->CR, ADC_CR_ADVREGEN) == (ADC_CR_ADVREGEN)) ? 1UL : 0UL);
+ 800825e:	6893      	ldr	r3, [r2, #8]
+ 8008260:	f013 5f80 	tst.w	r3, #268435456	; 0x10000000
+ 8008264:	d11f      	bne.n	80082a6 <HAL_ADC_Init+0x5e>
+  MODIFY_REG(ADCx->CR,
+ 8008266:	6893      	ldr	r3, [r2, #8]
+ 8008268:	f023 4310 	bic.w	r3, r3, #2415919104	; 0x90000000
+ 800826c:	f023 0317 	bic.w	r3, r3, #23
+ 8008270:	f043 5380 	orr.w	r3, r3, #268435456	; 0x10000000
+ 8008274:	6093      	str	r3, [r2, #8]
+    /* Delay for ADC stabilization time */
+    /* Wait loop initialization and execution */
+    /* Note: Variable divided by 2 to compensate partially              */
+    /*       CPU processing cycles, scaling in us split to not          */
+    /*       exceed 32 bits register capacity and handle low frequency. */
+    wait_loop_index = ((LL_ADC_DELAY_INTERNAL_REGUL_STAB_US / 10UL) * ((SystemCoreClock / (100000UL * 2UL)) + 1UL));
+ 8008276:	4b7c      	ldr	r3, [pc, #496]	; (8008468 <HAL_ADC_Init+0x220>)
+ 8008278:	681b      	ldr	r3, [r3, #0]
+ 800827a:	099b      	lsrs	r3, r3, #6
+ 800827c:	4a7b      	ldr	r2, [pc, #492]	; (800846c <HAL_ADC_Init+0x224>)
+ 800827e:	fba2 2303 	umull	r2, r3, r2, r3
+ 8008282:	099b      	lsrs	r3, r3, #6
+ 8008284:	3301      	adds	r3, #1
+ 8008286:	005b      	lsls	r3, r3, #1
+ 8008288:	9301      	str	r3, [sp, #4]
+    while (wait_loop_index != 0UL)
+ 800828a:	e009      	b.n	80082a0 <HAL_ADC_Init+0x58>
+    HAL_ADC_MspInit(hadc);
+ 800828c:	f7f9 fdea 	bl	8001e64 <HAL_ADC_MspInit>
+    ADC_CLEAR_ERRORCODE(hadc);
+ 8008290:	2300      	movs	r3, #0
+ 8008292:	65e3      	str	r3, [r4, #92]	; 0x5c
+    hadc->Lock = HAL_UNLOCKED;
+ 8008294:	f884 3054 	strb.w	r3, [r4, #84]	; 0x54
+ 8008298:	e7e0      	b.n	800825c <HAL_ADC_Init+0x14>
+    {
+      wait_loop_index--;
+ 800829a:	9b01      	ldr	r3, [sp, #4]
+ 800829c:	3b01      	subs	r3, #1
+ 800829e:	9301      	str	r3, [sp, #4]
+    while (wait_loop_index != 0UL)
+ 80082a0:	9b01      	ldr	r3, [sp, #4]
+ 80082a2:	2b00      	cmp	r3, #0
+ 80082a4:	d1f9      	bne.n	800829a <HAL_ADC_Init+0x52>
+  }
+
+  /* Verification that ADC voltage regulator is correctly enabled, whether    */
+  /* or not ADC is coming from state reset (if any potential problem of       */
+  /* clocking, voltage regulator would not be enabled).                       */
+  if (LL_ADC_IsInternalRegulatorEnabled(hadc->Instance) == 0UL)
+ 80082a6:	6822      	ldr	r2, [r4, #0]
+  return ((READ_BIT(ADCx->CR, ADC_CR_ADVREGEN) == (ADC_CR_ADVREGEN)) ? 1UL : 0UL);
+ 80082a8:	6893      	ldr	r3, [r2, #8]
+ 80082aa:	f013 5f80 	tst.w	r3, #268435456	; 0x10000000
+ 80082ae:	f040 809a 	bne.w	80083e6 <HAL_ADC_Init+0x19e>
+  {
+    /* Update ADC state machine to error */
+    SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL);
+ 80082b2:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 80082b4:	f043 0310 	orr.w	r3, r3, #16
+ 80082b8:	65a3      	str	r3, [r4, #88]	; 0x58
+
+    /* Set ADC error code to ADC peripheral internal error */
+    SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL);
+ 80082ba:	6de3      	ldr	r3, [r4, #92]	; 0x5c
+ 80082bc:	f043 0301 	orr.w	r3, r3, #1
+ 80082c0:	65e3      	str	r3, [r4, #92]	; 0x5c
+
+    tmp_hal_status = HAL_ERROR;
+ 80082c2:	2001      	movs	r0, #1
+  * @param  ADCx ADC instance
+  * @retval 0: no conversion is on going on ADC group regular.
+  */
+__STATIC_INLINE uint32_t LL_ADC_REG_IsConversionOngoing(ADC_TypeDef *ADCx)
+{
+  return ((READ_BIT(ADCx->CR, ADC_CR_ADSTART) == (ADC_CR_ADSTART)) ? 1UL : 0UL);
+ 80082c4:	6893      	ldr	r3, [r2, #8]
+ 80082c6:	f013 0304 	ands.w	r3, r3, #4
+ 80082ca:	d000      	beq.n	80082ce <HAL_ADC_Init+0x86>
+ 80082cc:	2301      	movs	r3, #1
+  /* correctly completed and if there is no conversion on going on regular    */
+  /* group (ADC may already be enabled at this point if HAL_ADC_Init() is     */
+  /* called to update a parameter on the fly).                                */
+  tmp_adc_reg_is_conversion_on_going = LL_ADC_REG_IsConversionOngoing(hadc->Instance);
+
+  if (((hadc->State & HAL_ADC_STATE_ERROR_INTERNAL) == 0UL)
+ 80082ce:	6da1      	ldr	r1, [r4, #88]	; 0x58
+ 80082d0:	f011 0f10 	tst.w	r1, #16
+ 80082d4:	f040 80be 	bne.w	8008454 <HAL_ADC_Init+0x20c>
+      && (tmp_adc_reg_is_conversion_on_going == 0UL)
+ 80082d8:	2b00      	cmp	r3, #0
+ 80082da:	f040 80bb 	bne.w	8008454 <HAL_ADC_Init+0x20c>
+     )
+  {
+    /* Set ADC state */
+    ADC_STATE_CLR_SET(hadc->State,
+ 80082de:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 80082e0:	f423 7381 	bic.w	r3, r3, #258	; 0x102
+ 80082e4:	f043 0302 	orr.w	r3, r3, #2
+ 80082e8:	65a3      	str	r3, [r4, #88]	; 0x58
+  return ((READ_BIT(ADCx->CR, ADC_CR_ADEN) == (ADC_CR_ADEN)) ? 1UL : 0UL);
+ 80082ea:	6893      	ldr	r3, [r2, #8]
+ 80082ec:	f013 0f01 	tst.w	r3, #1
+ 80082f0:	d14f      	bne.n	8008392 <HAL_ADC_Init+0x14a>
+      /* without needing to reconfigure all other ADC groups/channels         */
+      /* parameters):                                                         */
+      /*   - internal measurement paths (VrefInt, ...)                        */
+      /*     (set into HAL_ADC_ConfigChannel() )                              */
+
+      tmpCFGR1 |= (hadc->Init.Resolution                                          |
+ 80082f2:	68a3      	ldr	r3, [r4, #8]
+                   ADC_CFGR1_AUTOWAIT((uint32_t)hadc->Init.LowPowerAutoWait)      |
+ 80082f4:	7e21      	ldrb	r1, [r4, #24]
+      tmpCFGR1 |= (hadc->Init.Resolution                                          |
+ 80082f6:	ea43 3381 	orr.w	r3, r3, r1, lsl #14
+                   ADC_CFGR1_AUTOOFF((uint32_t)hadc->Init.LowPowerAutoPowerOff)   |
+ 80082fa:	7e61      	ldrb	r1, [r4, #25]
+                   ADC_CFGR1_AUTOWAIT((uint32_t)hadc->Init.LowPowerAutoWait)      |
+ 80082fc:	ea43 33c1 	orr.w	r3, r3, r1, lsl #15
+                   ADC_CFGR1_CONTINUOUS((uint32_t)hadc->Init.ContinuousConvMode)  |
+ 8008300:	7ea5      	ldrb	r5, [r4, #26]
+                   ADC_CFGR1_AUTOOFF((uint32_t)hadc->Init.LowPowerAutoPowerOff)   |
+ 8008302:	ea43 3345 	orr.w	r3, r3, r5, lsl #13
+                   ADC_CFGR1_OVERRUN(hadc->Init.Overrun)                          |
+ 8008306:	6b21      	ldr	r1, [r4, #48]	; 0x30
+ 8008308:	b109      	cbz	r1, 800830e <HAL_ADC_Init+0xc6>
+ 800830a:	f44f 5180 	mov.w	r1, #4096	; 0x1000
+                   ADC_CFGR1_CONTINUOUS((uint32_t)hadc->Init.ContinuousConvMode)  |
+ 800830e:	430b      	orrs	r3, r1
+                   hadc->Init.DataAlign                                           |
+ 8008310:	68e1      	ldr	r1, [r4, #12]
+                   ADC_CFGR1_OVERRUN(hadc->Init.Overrun)                          |
+ 8008312:	430b      	orrs	r3, r1
+                   ADC_SCAN_SEQ_MODE(hadc->Init.ScanConvMode)                     |
+ 8008314:	6921      	ldr	r1, [r4, #16]
+ 8008316:	2900      	cmp	r1, #0
+ 8008318:	db67      	blt.n	80083ea <HAL_ADC_Init+0x1a2>
+ 800831a:	f44f 1100 	mov.w	r1, #2097152	; 0x200000
+                   hadc->Init.DataAlign                                           |
+ 800831e:	430b      	orrs	r3, r1
+                   ADC_CFGR1_DMACONTREQ((uint32_t)hadc->Init.DMAContinuousRequests));
+ 8008320:	f894 102c 	ldrb.w	r1, [r4, #44]	; 0x2c
+                   ADC_SCAN_SEQ_MODE(hadc->Init.ScanConvMode)                     |
+ 8008324:	ea43 0341 	orr.w	r3, r3, r1, lsl #1
+
+      /* Update setting of discontinuous mode only if continuous mode is disabled */
+      if (hadc->Init.DiscontinuousConvMode == ENABLE)
+ 8008328:	f894 1020 	ldrb.w	r1, [r4, #32]
+ 800832c:	2901      	cmp	r1, #1
+ 800832e:	d05f      	beq.n	80083f0 <HAL_ADC_Init+0x1a8>
+      /* Enable external trigger if trigger selection is different of software  */
+      /* start.                                                                 */
+      /* Note: This configuration keeps the hardware feature of parameter       */
+      /*       ExternalTrigConvEdge "trigger edge none" equivalent to           */
+      /*       software start.                                                  */
+      if (hadc->Init.ExternalTrigConv != ADC_SOFTWARE_START)
+ 8008330:	6a61      	ldr	r1, [r4, #36]	; 0x24
+ 8008332:	b121      	cbz	r1, 800833e <HAL_ADC_Init+0xf6>
+      {
+        tmpCFGR1 |= ((hadc->Init.ExternalTrigConv & ADC_CFGR1_EXTSEL) |
+ 8008334:	f401 71e0 	and.w	r1, r1, #448	; 0x1c0
+                     hadc->Init.ExternalTrigConvEdge);
+ 8008338:	6aa5      	ldr	r5, [r4, #40]	; 0x28
+        tmpCFGR1 |= ((hadc->Init.ExternalTrigConv & ADC_CFGR1_EXTSEL) |
+ 800833a:	4329      	orrs	r1, r5
+ 800833c:	430b      	orrs	r3, r1
+      }
+
+      /* Update ADC configuration register with previous settings */
+      MODIFY_REG(hadc->Instance->CFGR1,
+ 800833e:	68d1      	ldr	r1, [r2, #12]
+ 8008340:	f421 31fe 	bic.w	r1, r1, #130048	; 0x1fc00
+ 8008344:	f421 71ff 	bic.w	r1, r1, #510	; 0x1fe
+ 8008348:	4319      	orrs	r1, r3
+ 800834a:	60d1      	str	r1, [r2, #12]
+                 ADC_CFGR1_ALIGN   |
+                 ADC_CFGR1_SCANDIR |
+                 ADC_CFGR1_DMACFG,
+                 tmpCFGR1);
+
+      tmpCFGR2 |= ((hadc->Init.ClockPrescaler & ADC_CFGR2_CKMODE) |
+ 800834c:	6863      	ldr	r3, [r4, #4]
+ 800834e:	f003 4340 	and.w	r3, r3, #3221225472	; 0xc0000000
+                   hadc->Init.TriggerFrequencyMode
+ 8008352:	6ce2      	ldr	r2, [r4, #76]	; 0x4c
+      tmpCFGR2 |= ((hadc->Init.ClockPrescaler & ADC_CFGR2_CKMODE) |
+ 8008354:	431a      	orrs	r2, r3
+                  );
+
+      if (hadc->Init.OversamplingMode == ENABLE)
+ 8008356:	f894 103c 	ldrb.w	r1, [r4, #60]	; 0x3c
+ 800835a:	2901      	cmp	r1, #1
+ 800835c:	d055      	beq.n	800840a <HAL_ADC_Init+0x1c2>
+                     hadc->Init.Oversampling.RightBitShift |
+                     hadc->Init.Oversampling.TriggeredMode
+                    );
+      }
+
+      MODIFY_REG(hadc->Instance->CFGR2,
+ 800835e:	6821      	ldr	r1, [r4, #0]
+ 8008360:	690d      	ldr	r5, [r1, #16]
+ 8008362:	4b43      	ldr	r3, [pc, #268]	; (8008470 <HAL_ADC_Init+0x228>)
+ 8008364:	402b      	ands	r3, r5
+ 8008366:	4313      	orrs	r3, r2
+ 8008368:	610b      	str	r3, [r1, #16]
+                 ADC_CFGR2_TOVS,
+                 tmpCFGR2);
+
+      /* Configuration of ADC clock mode: asynchronous clock source           */
+      /* with selectable prescaler.                                           */
+      if (((hadc->Init.ClockPrescaler) != ADC_CLOCK_SYNC_PCLK_DIV1) &&
+ 800836a:	6863      	ldr	r3, [r4, #4]
+ 800836c:	f1b3 4f40 	cmp.w	r3, #3221225472	; 0xc0000000
+ 8008370:	d00f      	beq.n	8008392 <HAL_ADC_Init+0x14a>
+ 8008372:	f1b3 4f80 	cmp.w	r3, #1073741824	; 0x40000000
+ 8008376:	d00c      	beq.n	8008392 <HAL_ADC_Init+0x14a>
+          ((hadc->Init.ClockPrescaler) != ADC_CLOCK_SYNC_PCLK_DIV2) &&
+ 8008378:	f1b3 4f00 	cmp.w	r3, #2147483648	; 0x80000000
+ 800837c:	d009      	beq.n	8008392 <HAL_ADC_Init+0x14a>
+          ((hadc->Init.ClockPrescaler) != ADC_CLOCK_SYNC_PCLK_DIV4))
+      {
+        MODIFY_REG(ADC_COMMON->CCR,
+ 800837e:	493d      	ldr	r1, [pc, #244]	; (8008474 <HAL_ADC_Init+0x22c>)
+ 8008380:	f8d1 2708 	ldr.w	r2, [r1, #1800]	; 0x708
+ 8008384:	f422 1270 	bic.w	r2, r2, #3932160	; 0x3c0000
+ 8008388:	f403 1370 	and.w	r3, r3, #3932160	; 0x3c0000
+ 800838c:	4313      	orrs	r3, r2
+ 800838e:	f8c1 3708 	str.w	r3, [r1, #1800]	; 0x708
+                   hadc->Init.ClockPrescaler & ADC_CCR_PRESC);
+      }
+    }
+
+    /* Channel sampling time configuration */
+    LL_ADC_SetSamplingTimeCommonChannels(hadc->Instance, LL_ADC_SAMPLINGTIME_COMMON_1, hadc->Init.SamplingTimeCommon1);
+ 8008392:	6821      	ldr	r1, [r4, #0]
+ 8008394:	6b63      	ldr	r3, [r4, #52]	; 0x34
+  MODIFY_REG(ADCx->SMPR,
+ 8008396:	694a      	ldr	r2, [r1, #20]
+ 8008398:	f022 0207 	bic.w	r2, r2, #7
+ 800839c:	4313      	orrs	r3, r2
+ 800839e:	614b      	str	r3, [r1, #20]
+    LL_ADC_SetSamplingTimeCommonChannels(hadc->Instance, LL_ADC_SAMPLINGTIME_COMMON_2, hadc->Init.SamplingTimeCommon2);
+ 80083a0:	6822      	ldr	r2, [r4, #0]
+ 80083a2:	6ba1      	ldr	r1, [r4, #56]	; 0x38
+ 80083a4:	6953      	ldr	r3, [r2, #20]
+ 80083a6:	f023 0370 	bic.w	r3, r3, #112	; 0x70
+ 80083aa:	ea43 1301 	orr.w	r3, r3, r1, lsl #4
+ 80083ae:	6153      	str	r3, [r2, #20]
+    /*   emulated by software for alignment over all STM32 devices.           */
+    /* - if scan mode is enabled, regular channels sequence length is set to  */
+    /*   parameter "NbrOfConversion".                                         */
+    /*   Channels must be configured into each rank using function            */
+    /*   "HAL_ADC_ConfigChannel()".                                           */
+    if (hadc->Init.ScanConvMode == ADC_SCAN_DISABLE)
+ 80083b0:	6923      	ldr	r3, [r4, #16]
+ 80083b2:	2b00      	cmp	r3, #0
+ 80083b4:	d133      	bne.n	800841e <HAL_ADC_Init+0x1d6>
+    {
+      /* Set sequencer scan length by clearing ranks above rank 1             */
+      /* and do not modify rank 1 value.                                      */
+      SET_BIT(hadc->Instance->CHSELR,
+ 80083b6:	6822      	ldr	r2, [r4, #0]
+ 80083b8:	6a93      	ldr	r3, [r2, #40]	; 0x28
+ 80083ba:	f063 030f 	orn	r3, r3, #15
+ 80083be:	6293      	str	r3, [r2, #40]	; 0x28
+                );
+    }
+
+    /* Check back that ADC registers have effectively been configured to      */
+    /* ensure of no potential problem of ADC core peripheral clocking.        */
+    if(LL_ADC_GetSamplingTimeCommonChannels(hadc->Instance, LL_ADC_SAMPLINGTIME_COMMON_1)
+ 80083c0:	6823      	ldr	r3, [r4, #0]
+  return (uint32_t)((READ_BIT(ADCx->SMPR, ADC_SMPR_SMP1 << (SamplingTimeY & ADC_SAMPLING_TIME_SMP_SHIFT_MASK)))
+ 80083c2:	695b      	ldr	r3, [r3, #20]
+ 80083c4:	f003 0307 	and.w	r3, r3, #7
+      == hadc->Init.SamplingTimeCommon1)
+ 80083c8:	6b62      	ldr	r2, [r4, #52]	; 0x34
+    if(LL_ADC_GetSamplingTimeCommonChannels(hadc->Instance, LL_ADC_SAMPLINGTIME_COMMON_1)
+ 80083ca:	429a      	cmp	r2, r3
+ 80083cc:	d039      	beq.n	8008442 <HAL_ADC_Init+0x1fa>
+                        HAL_ADC_STATE_READY);
+    }
+    else
+    {
+      /* Update ADC state machine to error */
+      ADC_STATE_CLR_SET(hadc->State,
+ 80083ce:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 80083d0:	f023 0312 	bic.w	r3, r3, #18
+ 80083d4:	f043 0310 	orr.w	r3, r3, #16
+ 80083d8:	65a3      	str	r3, [r4, #88]	; 0x58
+                        HAL_ADC_STATE_BUSY_INTERNAL,
+                        HAL_ADC_STATE_ERROR_INTERNAL);
+
+      /* Set ADC error code to ADC peripheral internal error */
+      SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL);
+ 80083da:	6de3      	ldr	r3, [r4, #92]	; 0x5c
+ 80083dc:	f043 0301 	orr.w	r3, r3, #1
+ 80083e0:	65e3      	str	r3, [r4, #92]	; 0x5c
+
+      tmp_hal_status = HAL_ERROR;
+ 80083e2:	2001      	movs	r0, #1
+ 80083e4:	e03b      	b.n	800845e <HAL_ADC_Init+0x216>
+  HAL_StatusTypeDef tmp_hal_status = HAL_OK;
+ 80083e6:	2000      	movs	r0, #0
+ 80083e8:	e76c      	b.n	80082c4 <HAL_ADC_Init+0x7c>
+                   ADC_SCAN_SEQ_MODE(hadc->Init.ScanConvMode)                     |
+ 80083ea:	f021 4100 	bic.w	r1, r1, #2147483648	; 0x80000000
+ 80083ee:	e796      	b.n	800831e <HAL_ADC_Init+0xd6>
+        if (hadc->Init.ContinuousConvMode == DISABLE)
+ 80083f0:	b915      	cbnz	r5, 80083f8 <HAL_ADC_Init+0x1b0>
+          tmpCFGR1 |= ADC_CFGR1_DISCEN;
+ 80083f2:	f443 3380 	orr.w	r3, r3, #65536	; 0x10000
+ 80083f6:	e79b      	b.n	8008330 <HAL_ADC_Init+0xe8>
+          SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG);
+ 80083f8:	6da1      	ldr	r1, [r4, #88]	; 0x58
+ 80083fa:	f041 0120 	orr.w	r1, r1, #32
+ 80083fe:	65a1      	str	r1, [r4, #88]	; 0x58
+          SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL);
+ 8008400:	6de1      	ldr	r1, [r4, #92]	; 0x5c
+ 8008402:	f041 0101 	orr.w	r1, r1, #1
+ 8008406:	65e1      	str	r1, [r4, #92]	; 0x5c
+ 8008408:	e792      	b.n	8008330 <HAL_ADC_Init+0xe8>
+                     hadc->Init.Oversampling.Ratio         |
+ 800840a:	6c21      	ldr	r1, [r4, #64]	; 0x40
+                     (hadc->Init.ClockPrescaler & ADC_CFGR2_CKMODE) |
+ 800840c:	430b      	orrs	r3, r1
+                     hadc->Init.Oversampling.RightBitShift |
+ 800840e:	6c61      	ldr	r1, [r4, #68]	; 0x44
+                     hadc->Init.Oversampling.Ratio         |
+ 8008410:	430b      	orrs	r3, r1
+                     hadc->Init.Oversampling.TriggeredMode
+ 8008412:	6ca1      	ldr	r1, [r4, #72]	; 0x48
+                     hadc->Init.Oversampling.RightBitShift |
+ 8008414:	430b      	orrs	r3, r1
+        tmpCFGR2 |= (ADC_CFGR2_OVSE |
+ 8008416:	431a      	orrs	r2, r3
+ 8008418:	f042 0201 	orr.w	r2, r2, #1
+ 800841c:	e79f      	b.n	800835e <HAL_ADC_Init+0x116>
+    else if (hadc->Init.ScanConvMode == ADC_SCAN_ENABLE)
+ 800841e:	f5b3 1f00 	cmp.w	r3, #2097152	; 0x200000
+ 8008422:	d1cd      	bne.n	80083c0 <HAL_ADC_Init+0x178>
+      MODIFY_REG(hadc->Instance->CHSELR,
+ 8008424:	6821      	ldr	r1, [r4, #0]
+ 8008426:	6a8b      	ldr	r3, [r1, #40]	; 0x28
+ 8008428:	69e3      	ldr	r3, [r4, #28]
+ 800842a:	3b01      	subs	r3, #1
+ 800842c:	009b      	lsls	r3, r3, #2
+ 800842e:	f003 031c 	and.w	r3, r3, #28
+ 8008432:	f06f 020f 	mvn.w	r2, #15
+ 8008436:	fa02 f303 	lsl.w	r3, r2, r3
+ 800843a:	6e22      	ldr	r2, [r4, #96]	; 0x60
+ 800843c:	4313      	orrs	r3, r2
+ 800843e:	628b      	str	r3, [r1, #40]	; 0x28
+ 8008440:	e7be      	b.n	80083c0 <HAL_ADC_Init+0x178>
+      ADC_CLEAR_ERRORCODE(hadc);
+ 8008442:	2300      	movs	r3, #0
+ 8008444:	65e3      	str	r3, [r4, #92]	; 0x5c
+      ADC_STATE_CLR_SET(hadc->State,
+ 8008446:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8008448:	f023 0303 	bic.w	r3, r3, #3
+ 800844c:	f043 0301 	orr.w	r3, r3, #1
+ 8008450:	65a3      	str	r3, [r4, #88]	; 0x58
+ 8008452:	e004      	b.n	800845e <HAL_ADC_Init+0x216>
+
+  }
+  else
+  {
+    /* Update ADC state machine to error */
+    SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL);
+ 8008454:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8008456:	f043 0310 	orr.w	r3, r3, #16
+ 800845a:	65a3      	str	r3, [r4, #88]	; 0x58
+
+    tmp_hal_status = HAL_ERROR;
+ 800845c:	2001      	movs	r0, #1
+  }
+
+  return tmp_hal_status;
+}
+ 800845e:	b003      	add	sp, #12
+ 8008460:	bd30      	pop	{r4, r5, pc}
+    return HAL_ERROR;
+ 8008462:	2001      	movs	r0, #1
+ 8008464:	e7fb      	b.n	800845e <HAL_ADC_Init+0x216>
+ 8008466:	bf00      	nop
+ 8008468:	20000828 	.word	0x20000828
+ 800846c:	053e2d63 	.word	0x053e2d63
+ 8008470:	1ffffc02 	.word	0x1ffffc02
+ 8008474:	40012000 	.word	0x40012000
+
+08008478 <HAL_ADC_PollForConversion>:
+  * @param hadc ADC handle
+  * @param Timeout Timeout value in millisecond.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ADC_PollForConversion(ADC_HandleTypeDef *hadc, uint32_t Timeout)
+{
+ 8008478:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 800847a:	4604      	mov	r4, r0
+ 800847c:	460d      	mov	r5, r1
+
+  /* Check the parameters */
+  assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance));
+
+  /* If end of conversion selected to end of sequence conversions */
+  if (hadc->Init.EOCSelection == ADC_EOC_SEQ_CONV)
+ 800847e:	6946      	ldr	r6, [r0, #20]
+ 8008480:	2e08      	cmp	r6, #8
+ 8008482:	d005      	beq.n	8008490 <HAL_ADC_PollForConversion+0x18>
+    /* each conversion:                                                       */
+    /* Particular case is ADC configured in DMA mode and ADC sequencer with   */
+    /* several ranks and polling for end of each conversion.                  */
+    /* For code simplicity sake, this particular case is generalized to       */
+    /* ADC configured in DMA mode and and polling for end of each conversion. */
+    if ((hadc->Instance->CFGR1 & ADC_CFGR1_DMAEN) != 0UL)
+ 8008484:	6803      	ldr	r3, [r0, #0]
+ 8008486:	68db      	ldr	r3, [r3, #12]
+ 8008488:	f013 0f01 	tst.w	r3, #1
+ 800848c:	d11e      	bne.n	80084cc <HAL_ADC_PollForConversion+0x54>
+
+      return HAL_ERROR;
+    }
+    else
+    {
+      tmp_flag_end = (ADC_FLAG_EOC);
+ 800848e:	2604      	movs	r6, #4
+    }
+  }
+
+  /* Get tick count */
+  tickstart = HAL_GetTick();
+ 8008490:	f7fa fc02 	bl	8002c98 <HAL_GetTick>
+ 8008494:	4607      	mov	r7, r0
+
+  /* Wait until End of unitary conversion or sequence conversions flag is raised */
+  while ((hadc->Instance->ISR & tmp_flag_end) == 0UL)
+ 8008496:	6823      	ldr	r3, [r4, #0]
+ 8008498:	681a      	ldr	r2, [r3, #0]
+ 800849a:	4232      	tst	r2, r6
+ 800849c:	d11c      	bne.n	80084d8 <HAL_ADC_PollForConversion+0x60>
+  {
+    /* Check if timeout is disabled (set to infinite wait) */
+    if (Timeout != HAL_MAX_DELAY)
+ 800849e:	f1b5 3fff 	cmp.w	r5, #4294967295
+ 80084a2:	d0f8      	beq.n	8008496 <HAL_ADC_PollForConversion+0x1e>
+    {
+      if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0UL))
+ 80084a4:	f7fa fbf8 	bl	8002c98 <HAL_GetTick>
+ 80084a8:	1bc3      	subs	r3, r0, r7
+ 80084aa:	42ab      	cmp	r3, r5
+ 80084ac:	d801      	bhi.n	80084b2 <HAL_ADC_PollForConversion+0x3a>
+ 80084ae:	2d00      	cmp	r5, #0
+ 80084b0:	d1f1      	bne.n	8008496 <HAL_ADC_PollForConversion+0x1e>
+      {
+        /* New check to avoid false timeout detection in case of preemption */
+        if ((hadc->Instance->ISR & tmp_flag_end) == 0UL)
+ 80084b2:	6823      	ldr	r3, [r4, #0]
+ 80084b4:	681b      	ldr	r3, [r3, #0]
+ 80084b6:	4233      	tst	r3, r6
+ 80084b8:	d1ed      	bne.n	8008496 <HAL_ADC_PollForConversion+0x1e>
+        {
+          /* Update ADC state machine to timeout */
+          SET_BIT(hadc->State, HAL_ADC_STATE_TIMEOUT);
+ 80084ba:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 80084bc:	f043 0304 	orr.w	r3, r3, #4
+ 80084c0:	65a3      	str	r3, [r4, #88]	; 0x58
+
+          __HAL_UNLOCK(hadc);
+ 80084c2:	2300      	movs	r3, #0
+ 80084c4:	f884 3054 	strb.w	r3, [r4, #84]	; 0x54
+
+          return HAL_TIMEOUT;
+ 80084c8:	2003      	movs	r0, #3
+ 80084ca:	e028      	b.n	800851e <HAL_ADC_PollForConversion+0xa6>
+      SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG);
+ 80084cc:	6d83      	ldr	r3, [r0, #88]	; 0x58
+ 80084ce:	f043 0320 	orr.w	r3, r3, #32
+ 80084d2:	6583      	str	r3, [r0, #88]	; 0x58
+      return HAL_ERROR;
+ 80084d4:	2001      	movs	r0, #1
+ 80084d6:	e022      	b.n	800851e <HAL_ADC_PollForConversion+0xa6>
+      }
+    }
+  }
+
+  /* Update ADC state machine */
+  SET_BIT(hadc->State, HAL_ADC_STATE_REG_EOC);
+ 80084d8:	6da2      	ldr	r2, [r4, #88]	; 0x58
+ 80084da:	f442 7200 	orr.w	r2, r2, #512	; 0x200
+ 80084de:	65a2      	str	r2, [r4, #88]	; 0x58
+  return ((READ_BIT(ADCx->CFGR1, ADC_CFGR1_EXTEN) == (LL_ADC_REG_TRIG_SOFTWARE & ADC_CFGR1_EXTEN)) ? 1UL : 0UL);
+ 80084e0:	68da      	ldr	r2, [r3, #12]
+ 80084e2:	f412 6f40 	tst.w	r2, #3072	; 0xc00
+ 80084e6:	d115      	bne.n	8008514 <HAL_ADC_PollForConversion+0x9c>
+
+  /* Determine whether any further conversion upcoming on group regular       */
+  /* by external trigger, continuous mode or scan sequence on going.          */
+  if ((LL_ADC_REG_IsTriggerSourceSWStart(hadc->Instance) != 0UL)
+      && (hadc->Init.ContinuousConvMode == DISABLE)
+ 80084e8:	7ea2      	ldrb	r2, [r4, #26]
+ 80084ea:	b99a      	cbnz	r2, 8008514 <HAL_ADC_PollForConversion+0x9c>
+     )
+  {
+    /* Check whether end of sequence is reached */
+    if (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_EOS))
+ 80084ec:	681a      	ldr	r2, [r3, #0]
+ 80084ee:	f012 0f08 	tst.w	r2, #8
+ 80084f2:	d00f      	beq.n	8008514 <HAL_ADC_PollForConversion+0x9c>
+  return ((READ_BIT(ADCx->CR, ADC_CR_ADSTART) == (ADC_CR_ADSTART)) ? 1UL : 0UL);
+ 80084f4:	689a      	ldr	r2, [r3, #8]
+ 80084f6:	f012 0f04 	tst.w	r2, #4
+ 80084fa:	d111      	bne.n	8008520 <HAL_ADC_PollForConversion+0xa8>
+      {
+        /* Disable ADC end of single conversion interrupt on group regular */
+        /* Note: Overrun interrupt was enabled with EOC interrupt in          */
+        /* HAL_Start_IT(), but is not disabled here because can be used       */
+        /* by overrun IRQ process below.                                      */
+        __HAL_ADC_DISABLE_IT(hadc, ADC_IT_EOC | ADC_IT_EOS);
+ 80084fc:	685a      	ldr	r2, [r3, #4]
+ 80084fe:	f022 020c 	bic.w	r2, r2, #12
+ 8008502:	605a      	str	r2, [r3, #4]
+
+        /* Set ADC state */
+        ADC_STATE_CLR_SET(hadc->State,
+ 8008504:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8008506:	f423 7380 	bic.w	r3, r3, #256	; 0x100
+ 800850a:	f023 0301 	bic.w	r3, r3, #1
+ 800850e:	f043 0301 	orr.w	r3, r3, #1
+ 8008512:	65a3      	str	r3, [r4, #88]	; 0x58
+  }
+
+  /* Clear end of conversion flag of regular group if low power feature       */
+  /* "LowPowerAutoWait " is disabled, to not interfere with this feature      */
+  /* until data register is read using function HAL_ADC_GetValue().           */
+  if (hadc->Init.LowPowerAutoWait == DISABLE)
+ 8008514:	7e20      	ldrb	r0, [r4, #24]
+ 8008516:	b960      	cbnz	r0, 8008532 <HAL_ADC_PollForConversion+0xba>
+  {
+    /* Clear regular group conversion flag */
+    __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOC | ADC_FLAG_EOS));
+ 8008518:	6823      	ldr	r3, [r4, #0]
+ 800851a:	220c      	movs	r2, #12
+ 800851c:	601a      	str	r2, [r3, #0]
+  }
+
+  /* Return function status */
+  return HAL_OK;
+}
+ 800851e:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+        SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG);
+ 8008520:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8008522:	f043 0320 	orr.w	r3, r3, #32
+ 8008526:	65a3      	str	r3, [r4, #88]	; 0x58
+        SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL);
+ 8008528:	6de3      	ldr	r3, [r4, #92]	; 0x5c
+ 800852a:	f043 0301 	orr.w	r3, r3, #1
+ 800852e:	65e3      	str	r3, [r4, #92]	; 0x5c
+ 8008530:	e7f0      	b.n	8008514 <HAL_ADC_PollForConversion+0x9c>
+  return HAL_OK;
+ 8008532:	2000      	movs	r0, #0
+ 8008534:	e7f3      	b.n	800851e <HAL_ADC_PollForConversion+0xa6>
+
+08008536 <HAL_ADC_GetValue>:
+
+  /* Note: EOC flag is not cleared here by software because automatically     */
+  /*       cleared by hardware when reading register DR.                      */
+
+  /* Return ADC converted value */
+  return hadc->Instance->DR;
+ 8008536:	6803      	ldr	r3, [r0, #0]
+ 8008538:	6c18      	ldr	r0, [r3, #64]	; 0x40
+}
+ 800853a:	4770      	bx	lr
+
+0800853c <HAL_ADC_ConfigChannel>:
+  * @param hadc ADC handle
+  * @param pConfig Structure of ADC channel assigned to ADC group regular.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ADC_ConfigChannel(ADC_HandleTypeDef *hadc, ADC_ChannelConfTypeDef *pConfig)
+{
+ 800853c:	b470      	push	{r4, r5, r6}
+ 800853e:	b083      	sub	sp, #12
+  HAL_StatusTypeDef tmp_hal_status = HAL_OK;
+  uint32_t tmp_config_internal_channel;
+  __IO uint32_t wait_loop_index = 0UL;
+ 8008540:	2200      	movs	r2, #0
+ 8008542:	9201      	str	r2, [sp, #4]
+  /* Check the parameters */
+  assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance));
+  assert_param(IS_ADC_CHANNEL(pConfig->Channel));
+  assert_param(IS_ADC_SAMPLING_TIME_COMMON(pConfig->SamplingTime));
+
+  if ((hadc->Init.ScanConvMode == ADC_SCAN_SEQ_FIXED)       ||
+ 8008544:	6904      	ldr	r4, [r0, #16]
+    assert_param(IS_ADC_REGULAR_NB_CONV(hadc->Init.NbrOfConversion));
+
+    assert_param(IS_ADC_REGULAR_RANK(pConfig->Rank));
+  }
+
+  __HAL_LOCK(hadc);
+ 8008546:	f890 2054 	ldrb.w	r2, [r0, #84]	; 0x54
+ 800854a:	2a01      	cmp	r2, #1
+ 800854c:	f000 8103 	beq.w	8008756 <HAL_ADC_ConfigChannel+0x21a>
+ 8008550:	4603      	mov	r3, r0
+ 8008552:	2201      	movs	r2, #1
+ 8008554:	f880 2054 	strb.w	r2, [r0, #84]	; 0x54
+  /* Parameters that can be updated when ADC is disabled or enabled without   */
+  /* conversion on going on regular group:                                    */
+  /*  - Channel number                                                        */
+  /*  - Channel sampling time                                                 */
+  /*  - Management of internal measurement channels: VrefInt/TempSensor/Vbat  */
+  if (LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 0UL)
+ 8008558:	6802      	ldr	r2, [r0, #0]
+ 800855a:	6890      	ldr	r0, [r2, #8]
+ 800855c:	f010 0f04 	tst.w	r0, #4
+ 8008560:	d00a      	beq.n	8008578 <HAL_ADC_ConfigChannel+0x3c>
+  /* channel could be done on neither of the channel configuration structure  */
+  /* parameters.                                                              */
+  else
+  {
+    /* Update ADC state machine to error */
+    SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG);
+ 8008562:	6d9a      	ldr	r2, [r3, #88]	; 0x58
+ 8008564:	f042 0220 	orr.w	r2, r2, #32
+ 8008568:	659a      	str	r2, [r3, #88]	; 0x58
+
+    tmp_hal_status = HAL_ERROR;
+ 800856a:	2001      	movs	r0, #1
+  }
+
+  __HAL_UNLOCK(hadc);
+ 800856c:	2200      	movs	r2, #0
+ 800856e:	f883 2054 	strb.w	r2, [r3, #84]	; 0x54
+
+  return tmp_hal_status;
+}
+ 8008572:	b003      	add	sp, #12
+ 8008574:	bc70      	pop	{r4, r5, r6}
+ 8008576:	4770      	bx	lr
+    if (pConfig->Rank != ADC_RANK_NONE)
+ 8008578:	6848      	ldr	r0, [r1, #4]
+ 800857a:	2802      	cmp	r0, #2
+ 800857c:	f000 809c 	beq.w	80086b8 <HAL_ADC_ConfigChannel+0x17c>
+      if ((hadc->Init.ScanConvMode == ADC_SCAN_SEQ_FIXED)       ||
+ 8008580:	f1b4 4f00 	cmp.w	r4, #2147483648	; 0x80000000
+ 8008584:	d027      	beq.n	80085d6 <HAL_ADC_ConfigChannel+0x9a>
+ 8008586:	4d75      	ldr	r5, [pc, #468]	; (800875c <HAL_ADC_ConfigChannel+0x220>)
+ 8008588:	42ac      	cmp	r4, r5
+ 800858a:	d024      	beq.n	80085d6 <HAL_ADC_ConfigChannel+0x9a>
+        MODIFY_REG(hadc->ADCGroupRegularSequencerRanks,
+ 800858c:	6e1c      	ldr	r4, [r3, #96]	; 0x60
+ 800858e:	f000 001f 	and.w	r0, r0, #31
+ 8008592:	250f      	movs	r5, #15
+ 8008594:	4085      	lsls	r5, r0
+ 8008596:	ea24 0505 	bic.w	r5, r4, r5
+ 800859a:	680c      	ldr	r4, [r1, #0]
+ 800859c:	f3c4 0611 	ubfx	r6, r4, #0, #18
+ 80085a0:	2e00      	cmp	r6, #0
+ 80085a2:	d131      	bne.n	8008608 <HAL_ADC_ConfigChannel+0xcc>
+ 80085a4:	f3c4 6484 	ubfx	r4, r4, #26, #5
+ 80085a8:	4084      	lsls	r4, r0
+ 80085aa:	432c      	orrs	r4, r5
+ 80085ac:	661c      	str	r4, [r3, #96]	; 0x60
+        if (((pConfig->Rank >> 2UL) + 1UL) <= hadc->Init.NbrOfConversion)
+ 80085ae:	684c      	ldr	r4, [r1, #4]
+ 80085b0:	08a0      	lsrs	r0, r4, #2
+ 80085b2:	3001      	adds	r0, #1
+ 80085b4:	69dd      	ldr	r5, [r3, #28]
+ 80085b6:	42a8      	cmp	r0, r5
+ 80085b8:	d813      	bhi.n	80085e2 <HAL_ADC_ConfigChannel+0xa6>
+          LL_ADC_REG_SetSequencerRanks(hadc->Instance, pConfig->Rank, pConfig->Channel);
+ 80085ba:	680d      	ldr	r5, [r1, #0]
+  MODIFY_REG(ADCx->CHSELR,
+ 80085bc:	6a90      	ldr	r0, [r2, #40]	; 0x28
+ 80085be:	f004 041f 	and.w	r4, r4, #31
+ 80085c2:	260f      	movs	r6, #15
+ 80085c4:	40a6      	lsls	r6, r4
+ 80085c6:	ea20 0006 	bic.w	r0, r0, r6
+ 80085ca:	f3c5 6583 	ubfx	r5, r5, #26, #4
+ 80085ce:	40a5      	lsls	r5, r4
+ 80085d0:	4328      	orrs	r0, r5
+ 80085d2:	6290      	str	r0, [r2, #40]	; 0x28
+}
+ 80085d4:	e005      	b.n	80085e2 <HAL_ADC_ConfigChannel+0xa6>
+        LL_ADC_REG_SetSequencerChAdd(hadc->Instance, pConfig->Channel);
+ 80085d6:	680c      	ldr	r4, [r1, #0]
+  SET_BIT(ADCx->CHSELR, (Channel & ADC_CHANNEL_ID_BITFIELD_MASK));
+ 80085d8:	6a90      	ldr	r0, [r2, #40]	; 0x28
+ 80085da:	f3c4 0411 	ubfx	r4, r4, #0, #18
+ 80085de:	4320      	orrs	r0, r4
+ 80085e0:	6290      	str	r0, [r2, #40]	; 0x28
+      LL_ADC_SetChannelSamplingTime(hadc->Instance, pConfig->Channel, pConfig->SamplingTime);
+ 80085e2:	681c      	ldr	r4, [r3, #0]
+ 80085e4:	680d      	ldr	r5, [r1, #0]
+ 80085e6:	688a      	ldr	r2, [r1, #8]
+  MODIFY_REG(ADCx->SMPR,
+ 80085e8:	6960      	ldr	r0, [r4, #20]
+ 80085ea:	ea20 2005 	bic.w	r0, r0, r5, lsl #8
+ 80085ee:	ea02 2205 	and.w	r2, r2, r5, lsl #8
+ 80085f2:	f022 427c 	bic.w	r2, r2, #4227858432	; 0xfc000000
+ 80085f6:	f022 02ff 	bic.w	r2, r2, #255	; 0xff
+ 80085fa:	4302      	orrs	r2, r0
+ 80085fc:	6162      	str	r2, [r4, #20]
+      if (__LL_ADC_IS_CHANNEL_INTERNAL(pConfig->Channel))
+ 80085fe:	680a      	ldr	r2, [r1, #0]
+ 8008600:	2a00      	cmp	r2, #0
+ 8008602:	db09      	blt.n	8008618 <HAL_ADC_ConfigChannel+0xdc>
+  HAL_StatusTypeDef tmp_hal_status = HAL_OK;
+ 8008604:	2000      	movs	r0, #0
+ 8008606:	e7b1      	b.n	800856c <HAL_ADC_ConfigChannel+0x30>
+  uint32_t result;
+
+#if ((defined (__ARM_ARCH_7M__      ) && (__ARM_ARCH_7M__      == 1)) || \
+     (defined (__ARM_ARCH_7EM__     ) && (__ARM_ARCH_7EM__     == 1)) || \
+     (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))    )
+   __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) );
+ 8008608:	fa94 f4a4 	rbit	r4, r4
+     optimisations using the logic "value was passed to __builtin_clz, so it
+     is non-zero".
+     ARM GCC 7.3 and possibly earlier will optimise this test away, leaving a
+     single CLZ instruction.
+   */
+  if (value == 0U)
+ 800860c:	b114      	cbz	r4, 8008614 <HAL_ADC_ConfigChannel+0xd8>
+  {
+    return 32U;
+  }
+  return __builtin_clz(value);
+ 800860e:	fab4 f484 	clz	r4, r4
+ 8008612:	e7c9      	b.n	80085a8 <HAL_ADC_ConfigChannel+0x6c>
+    return 32U;
+ 8008614:	2420      	movs	r4, #32
+ 8008616:	e7c7      	b.n	80085a8 <HAL_ADC_ConfigChannel+0x6c>
+  return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_VREFEN | ADC_CCR_TSEN | ADC_CCR_VBATEN));
+ 8008618:	4951      	ldr	r1, [pc, #324]	; (8008760 <HAL_ADC_ConfigChannel+0x224>)
+ 800861a:	f8d1 0708 	ldr.w	r0, [r1, #1800]	; 0x708
+ 800861e:	f000 71e0 	and.w	r1, r0, #29360128	; 0x1c00000
+        if ((pConfig->Channel == ADC_CHANNEL_TEMPSENSOR) &&
+ 8008622:	4c50      	ldr	r4, [pc, #320]	; (8008764 <HAL_ADC_ConfigChannel+0x228>)
+ 8008624:	42a2      	cmp	r2, r4
+ 8008626:	d007      	beq.n	8008638 <HAL_ADC_ConfigChannel+0xfc>
+        else if ((pConfig->Channel == ADC_CHANNEL_VBAT)
+ 8008628:	4c4f      	ldr	r4, [pc, #316]	; (8008768 <HAL_ADC_ConfigChannel+0x22c>)
+ 800862a:	42a2      	cmp	r2, r4
+ 800862c:	d026      	beq.n	800867c <HAL_ADC_ConfigChannel+0x140>
+        else if ((pConfig->Channel == ADC_CHANNEL_VREFINT) &&
+ 800862e:	4c4f      	ldr	r4, [pc, #316]	; (800876c <HAL_ADC_ConfigChannel+0x230>)
+ 8008630:	42a2      	cmp	r2, r4
+ 8008632:	d032      	beq.n	800869a <HAL_ADC_ConfigChannel+0x15e>
+  HAL_StatusTypeDef tmp_hal_status = HAL_OK;
+ 8008634:	2000      	movs	r0, #0
+ 8008636:	e799      	b.n	800856c <HAL_ADC_ConfigChannel+0x30>
+        if ((pConfig->Channel == ADC_CHANNEL_TEMPSENSOR) &&
+ 8008638:	f410 0f00 	tst.w	r0, #8388608	; 0x800000
+ 800863c:	d1f4      	bne.n	8008628 <HAL_ADC_ConfigChannel+0xec>
+          LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(hadc->Instance),
+ 800863e:	f441 0100 	orr.w	r1, r1, #8388608	; 0x800000
+  MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_VREFEN | ADC_CCR_TSEN | ADC_CCR_VBATEN, PathInternal);
+ 8008642:	4847      	ldr	r0, [pc, #284]	; (8008760 <HAL_ADC_ConfigChannel+0x224>)
+ 8008644:	f8d0 2708 	ldr.w	r2, [r0, #1800]	; 0x708
+ 8008648:	f022 72e0 	bic.w	r2, r2, #29360128	; 0x1c00000
+ 800864c:	4311      	orrs	r1, r2
+ 800864e:	f8c0 1708 	str.w	r1, [r0, #1800]	; 0x708
+          wait_loop_index = ((LL_ADC_DELAY_TEMPSENSOR_STAB_US / 10UL) * ((SystemCoreClock / (100000UL * 2UL)) + 1UL));
+ 8008652:	4a47      	ldr	r2, [pc, #284]	; (8008770 <HAL_ADC_ConfigChannel+0x234>)
+ 8008654:	6812      	ldr	r2, [r2, #0]
+ 8008656:	0992      	lsrs	r2, r2, #6
+ 8008658:	4946      	ldr	r1, [pc, #280]	; (8008774 <HAL_ADC_ConfigChannel+0x238>)
+ 800865a:	fba1 1202 	umull	r1, r2, r1, r2
+ 800865e:	0992      	lsrs	r2, r2, #6
+ 8008660:	3201      	adds	r2, #1
+ 8008662:	eb02 0242 	add.w	r2, r2, r2, lsl #1
+ 8008666:	0092      	lsls	r2, r2, #2
+ 8008668:	9201      	str	r2, [sp, #4]
+          while (wait_loop_index != 0UL)
+ 800866a:	e002      	b.n	8008672 <HAL_ADC_ConfigChannel+0x136>
+            wait_loop_index--;
+ 800866c:	9a01      	ldr	r2, [sp, #4]
+ 800866e:	3a01      	subs	r2, #1
+ 8008670:	9201      	str	r2, [sp, #4]
+          while (wait_loop_index != 0UL)
+ 8008672:	9a01      	ldr	r2, [sp, #4]
+ 8008674:	2a00      	cmp	r2, #0
+ 8008676:	d1f9      	bne.n	800866c <HAL_ADC_ConfigChannel+0x130>
+  HAL_StatusTypeDef tmp_hal_status = HAL_OK;
+ 8008678:	2000      	movs	r0, #0
+ 800867a:	e777      	b.n	800856c <HAL_ADC_ConfigChannel+0x30>
+                 && ((tmp_config_internal_channel & LL_ADC_PATH_INTERNAL_VBAT) == 0UL))
+ 800867c:	f010 7f80 	tst.w	r0, #16777216	; 0x1000000
+ 8008680:	d1d5      	bne.n	800862e <HAL_ADC_ConfigChannel+0xf2>
+          LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(hadc->Instance),
+ 8008682:	f041 7180 	orr.w	r1, r1, #16777216	; 0x1000000
+ 8008686:	4836      	ldr	r0, [pc, #216]	; (8008760 <HAL_ADC_ConfigChannel+0x224>)
+ 8008688:	f8d0 2708 	ldr.w	r2, [r0, #1800]	; 0x708
+ 800868c:	f022 72e0 	bic.w	r2, r2, #29360128	; 0x1c00000
+ 8008690:	4311      	orrs	r1, r2
+ 8008692:	f8c0 1708 	str.w	r1, [r0, #1800]	; 0x708
+  HAL_StatusTypeDef tmp_hal_status = HAL_OK;
+ 8008696:	2000      	movs	r0, #0
+}
+ 8008698:	e768      	b.n	800856c <HAL_ADC_ConfigChannel+0x30>
+        else if ((pConfig->Channel == ADC_CHANNEL_VREFINT) &&
+ 800869a:	f410 0f80 	tst.w	r0, #4194304	; 0x400000
+ 800869e:	d158      	bne.n	8008752 <HAL_ADC_ConfigChannel+0x216>
+          LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(hadc->Instance),
+ 80086a0:	f441 0280 	orr.w	r2, r1, #4194304	; 0x400000
+  MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_VREFEN | ADC_CCR_TSEN | ADC_CCR_VBATEN, PathInternal);
+ 80086a4:	482e      	ldr	r0, [pc, #184]	; (8008760 <HAL_ADC_ConfigChannel+0x224>)
+ 80086a6:	f8d0 1708 	ldr.w	r1, [r0, #1800]	; 0x708
+ 80086aa:	f021 71e0 	bic.w	r1, r1, #29360128	; 0x1c00000
+ 80086ae:	430a      	orrs	r2, r1
+ 80086b0:	f8c0 2708 	str.w	r2, [r0, #1800]	; 0x708
+  HAL_StatusTypeDef tmp_hal_status = HAL_OK;
+ 80086b4:	2000      	movs	r0, #0
+}
+ 80086b6:	e759      	b.n	800856c <HAL_ADC_ConfigChannel+0x30>
+      if ((hadc->Init.ScanConvMode == ADC_SCAN_SEQ_FIXED)       ||
+ 80086b8:	f1b4 4f00 	cmp.w	r4, #2147483648	; 0x80000000
+ 80086bc:	d002      	beq.n	80086c4 <HAL_ADC_ConfigChannel+0x188>
+ 80086be:	4827      	ldr	r0, [pc, #156]	; (800875c <HAL_ADC_ConfigChannel+0x220>)
+ 80086c0:	4284      	cmp	r4, r0
+ 80086c2:	d106      	bne.n	80086d2 <HAL_ADC_ConfigChannel+0x196>
+        LL_ADC_REG_SetSequencerChRem(hadc->Instance, pConfig->Channel);
+ 80086c4:	680c      	ldr	r4, [r1, #0]
+  CLEAR_BIT(ADCx->CHSELR, (Channel & ADC_CHANNEL_ID_BITFIELD_MASK));
+ 80086c6:	6a90      	ldr	r0, [r2, #40]	; 0x28
+ 80086c8:	f3c4 0411 	ubfx	r4, r4, #0, #18
+ 80086cc:	ea20 0004 	bic.w	r0, r0, r4
+ 80086d0:	6290      	str	r0, [r2, #40]	; 0x28
+      if (__LL_ADC_IS_CHANNEL_INTERNAL(pConfig->Channel))
+ 80086d2:	680a      	ldr	r2, [r1, #0]
+ 80086d4:	2a00      	cmp	r2, #0
+ 80086d6:	db01      	blt.n	80086dc <HAL_ADC_ConfigChannel+0x1a0>
+  HAL_StatusTypeDef tmp_hal_status = HAL_OK;
+ 80086d8:	2000      	movs	r0, #0
+ 80086da:	e747      	b.n	800856c <HAL_ADC_ConfigChannel+0x30>
+  return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_VREFEN | ADC_CCR_TSEN | ADC_CCR_VBATEN));
+ 80086dc:	4920      	ldr	r1, [pc, #128]	; (8008760 <HAL_ADC_ConfigChannel+0x224>)
+ 80086de:	f8d1 1708 	ldr.w	r1, [r1, #1800]	; 0x708
+        if (pConfig->Channel == ADC_CHANNEL_TEMPSENSOR)
+ 80086e2:	4820      	ldr	r0, [pc, #128]	; (8008764 <HAL_ADC_ConfigChannel+0x228>)
+ 80086e4:	4282      	cmp	r2, r0
+ 80086e6:	d007      	beq.n	80086f8 <HAL_ADC_ConfigChannel+0x1bc>
+        else if (pConfig->Channel == ADC_CHANNEL_VBAT)
+ 80086e8:	481f      	ldr	r0, [pc, #124]	; (8008768 <HAL_ADC_ConfigChannel+0x22c>)
+ 80086ea:	4282      	cmp	r2, r0
+ 80086ec:	d013      	beq.n	8008716 <HAL_ADC_ConfigChannel+0x1da>
+        else if (pConfig->Channel == ADC_CHANNEL_VREFINT)
+ 80086ee:	481f      	ldr	r0, [pc, #124]	; (800876c <HAL_ADC_ConfigChannel+0x230>)
+ 80086f0:	4282      	cmp	r2, r0
+ 80086f2:	d01f      	beq.n	8008734 <HAL_ADC_ConfigChannel+0x1f8>
+  HAL_StatusTypeDef tmp_hal_status = HAL_OK;
+ 80086f4:	2000      	movs	r0, #0
+ 80086f6:	e739      	b.n	800856c <HAL_ADC_ConfigChannel+0x30>
+          LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(hadc->Instance),
+ 80086f8:	f001 71a0 	and.w	r1, r1, #20971520	; 0x1400000
+  MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_VREFEN | ADC_CCR_TSEN | ADC_CCR_VBATEN, PathInternal);
+ 80086fc:	f100 4010 	add.w	r0, r0, #2415919104	; 0x90000000
+ 8008700:	f500 3088 	add.w	r0, r0, #69632	; 0x11000
+ 8008704:	f8d0 2708 	ldr.w	r2, [r0, #1800]	; 0x708
+ 8008708:	f022 72e0 	bic.w	r2, r2, #29360128	; 0x1c00000
+ 800870c:	4311      	orrs	r1, r2
+ 800870e:	f8c0 1708 	str.w	r1, [r0, #1800]	; 0x708
+  HAL_StatusTypeDef tmp_hal_status = HAL_OK;
+ 8008712:	2000      	movs	r0, #0
+}
+ 8008714:	e72a      	b.n	800856c <HAL_ADC_ConfigChannel+0x30>
+          LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(hadc->Instance),
+ 8008716:	f401 0240 	and.w	r2, r1, #12582912	; 0xc00000
+  MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_VREFEN | ADC_CCR_TSEN | ADC_CCR_VBATEN, PathInternal);
+ 800871a:	f100 4008 	add.w	r0, r0, #2281701376	; 0x88000000
+ 800871e:	f500 4060 	add.w	r0, r0, #57344	; 0xe000
+ 8008722:	f8d0 1708 	ldr.w	r1, [r0, #1800]	; 0x708
+ 8008726:	f021 71e0 	bic.w	r1, r1, #29360128	; 0x1c00000
+ 800872a:	430a      	orrs	r2, r1
+ 800872c:	f8c0 2708 	str.w	r2, [r0, #1800]	; 0x708
+  HAL_StatusTypeDef tmp_hal_status = HAL_OK;
+ 8008730:	2000      	movs	r0, #0
+}
+ 8008732:	e71b      	b.n	800856c <HAL_ADC_ConfigChannel+0x30>
+          LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(hadc->Instance),
+ 8008734:	f001 72c0 	and.w	r2, r1, #25165824	; 0x1800000
+  MODIFY_REG(ADCxy_COMMON->CCR, ADC_CCR_VREFEN | ADC_CCR_TSEN | ADC_CCR_VBATEN, PathInternal);
+ 8008738:	f100 400c 	add.w	r0, r0, #2348810240	; 0x8c000000
+ 800873c:	f500 3080 	add.w	r0, r0, #65536	; 0x10000
+ 8008740:	f8d0 1708 	ldr.w	r1, [r0, #1800]	; 0x708
+ 8008744:	f021 71e0 	bic.w	r1, r1, #29360128	; 0x1c00000
+ 8008748:	430a      	orrs	r2, r1
+ 800874a:	f8c0 2708 	str.w	r2, [r0, #1800]	; 0x708
+  HAL_StatusTypeDef tmp_hal_status = HAL_OK;
+ 800874e:	2000      	movs	r0, #0
+}
+ 8008750:	e70c      	b.n	800856c <HAL_ADC_ConfigChannel+0x30>
+ 8008752:	2000      	movs	r0, #0
+ 8008754:	e70a      	b.n	800856c <HAL_ADC_ConfigChannel+0x30>
+  __HAL_LOCK(hadc);
+ 8008756:	2002      	movs	r0, #2
+ 8008758:	e70b      	b.n	8008572 <HAL_ADC_ConfigChannel+0x36>
+ 800875a:	bf00      	nop
+ 800875c:	80000004 	.word	0x80000004
+ 8008760:	40012000 	.word	0x40012000
+ 8008764:	b0001000 	.word	0xb0001000
+ 8008768:	b8004000 	.word	0xb8004000
+ 800876c:	b4002000 	.word	0xb4002000
+ 8008770:	20000828 	.word	0x20000828
+ 8008774:	053e2d63 	.word	0x053e2d63
+
+08008778 <ADC_ConversionStop>:
+  *         stopped to disable the ADC.
+  * @param  hadc ADC handle
+  * @retval HAL status.
+  */
+HAL_StatusTypeDef ADC_ConversionStop(ADC_HandleTypeDef *hadc)
+{
+ 8008778:	b538      	push	{r3, r4, r5, lr}
+  /* Check the parameters */
+  assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance));
+
+  /* Verification if ADC is not already stopped on regular group to bypass    */
+  /* this function if not needed.                                             */
+  if (LL_ADC_REG_IsConversionOngoing(hadc->Instance) != 0UL)
+ 800877a:	6803      	ldr	r3, [r0, #0]
+  return ((READ_BIT(ADCx->CR, ADC_CR_ADSTART) == (ADC_CR_ADSTART)) ? 1UL : 0UL);
+ 800877c:	689a      	ldr	r2, [r3, #8]
+ 800877e:	f012 0f04 	tst.w	r2, #4
+ 8008782:	d02a      	beq.n	80087da <ADC_ConversionStop+0x62>
+ 8008784:	4604      	mov	r4, r0
+  return ((READ_BIT(ADCx->CR, ADC_CR_ADDIS) == (ADC_CR_ADDIS)) ? 1UL : 0UL);
+ 8008786:	689a      	ldr	r2, [r3, #8]
+ 8008788:	f012 0f02 	tst.w	r2, #2
+ 800878c:	d107      	bne.n	800879e <ADC_ConversionStop+0x26>
+  MODIFY_REG(ADCx->CR,
+ 800878e:	689a      	ldr	r2, [r3, #8]
+ 8008790:	f022 4200 	bic.w	r2, r2, #2147483648	; 0x80000000
+ 8008794:	f022 0217 	bic.w	r2, r2, #23
+ 8008798:	f042 0210 	orr.w	r2, r2, #16
+ 800879c:	609a      	str	r2, [r3, #8]
+      LL_ADC_REG_StopConversion(hadc->Instance);
+    }
+
+    /* Wait for conversion effectively stopped */
+    /* Get tick count */
+    tickstart = HAL_GetTick();
+ 800879e:	f7fa fa7b 	bl	8002c98 <HAL_GetTick>
+ 80087a2:	4605      	mov	r5, r0
+
+    while ((hadc->Instance->CR & ADC_CR_ADSTART) != 0UL)
+ 80087a4:	6823      	ldr	r3, [r4, #0]
+ 80087a6:	689b      	ldr	r3, [r3, #8]
+ 80087a8:	f013 0f04 	tst.w	r3, #4
+ 80087ac:	d013      	beq.n	80087d6 <ADC_ConversionStop+0x5e>
+    {
+      if ((HAL_GetTick() - tickstart) > ADC_STOP_CONVERSION_TIMEOUT)
+ 80087ae:	f7fa fa73 	bl	8002c98 <HAL_GetTick>
+ 80087b2:	1b43      	subs	r3, r0, r5
+ 80087b4:	2b02      	cmp	r3, #2
+ 80087b6:	d9f5      	bls.n	80087a4 <ADC_ConversionStop+0x2c>
+      {
+        /* New check to avoid false timeout detection in case of preemption */
+        if ((hadc->Instance->CR & ADC_CR_ADSTART) != 0UL)
+ 80087b8:	6823      	ldr	r3, [r4, #0]
+ 80087ba:	689b      	ldr	r3, [r3, #8]
+ 80087bc:	f013 0f04 	tst.w	r3, #4
+ 80087c0:	d0f0      	beq.n	80087a4 <ADC_ConversionStop+0x2c>
+        {
+          /* Update ADC state machine to error */
+          SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL);
+ 80087c2:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 80087c4:	f043 0310 	orr.w	r3, r3, #16
+ 80087c8:	65a3      	str	r3, [r4, #88]	; 0x58
+
+          /* Set ADC error code to ADC peripheral internal error */
+          SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL);
+ 80087ca:	6de3      	ldr	r3, [r4, #92]	; 0x5c
+ 80087cc:	f043 0301 	orr.w	r3, r3, #1
+ 80087d0:	65e3      	str	r3, [r4, #92]	; 0x5c
+
+          return HAL_ERROR;
+ 80087d2:	2001      	movs	r0, #1
+ 80087d4:	e002      	b.n	80087dc <ADC_ConversionStop+0x64>
+    }
+
+  }
+
+  /* Return HAL status */
+  return HAL_OK;
+ 80087d6:	2000      	movs	r0, #0
+ 80087d8:	e000      	b.n	80087dc <ADC_ConversionStop+0x64>
+ 80087da:	2000      	movs	r0, #0
+}
+ 80087dc:	bd38      	pop	{r3, r4, r5, pc}
+	...
+
+080087e0 <ADC_Enable>:
+  *         and voltage regulator must be enabled (done into HAL_ADC_Init()).
+  * @param hadc ADC handle
+  * @retval HAL status.
+  */
+HAL_StatusTypeDef ADC_Enable(ADC_HandleTypeDef *hadc)
+{
+ 80087e0:	b530      	push	{r4, r5, lr}
+ 80087e2:	b083      	sub	sp, #12
+  uint32_t tickstart;
+  __IO uint32_t wait_loop_index = 0UL;
+ 80087e4:	2300      	movs	r3, #0
+ 80087e6:	9301      	str	r3, [sp, #4]
+
+  /* ADC enable and wait for ADC ready (in case of ADC is disabled or         */
+  /* enabling phase not yet completed: flag ADC ready not yet set).           */
+  /* Timeout implemented to not be stuck if ADC cannot be enabled (possible   */
+  /* causes: ADC clock not running, ...).                                     */
+  if (LL_ADC_IsEnabled(hadc->Instance) == 0UL)
+ 80087e8:	6803      	ldr	r3, [r0, #0]
+  return ((READ_BIT(ADCx->CR, ADC_CR_ADEN) == (ADC_CR_ADEN)) ? 1UL : 0UL);
+ 80087ea:	689a      	ldr	r2, [r3, #8]
+ 80087ec:	f012 0f01 	tst.w	r2, #1
+ 80087f0:	d15b      	bne.n	80088aa <ADC_Enable+0xca>
+ 80087f2:	4604      	mov	r4, r0
+  {
+    /* Check if conditions to enable the ADC are fulfilled */
+    if ((hadc->Instance->CR & (ADC_CR_ADCAL | ADC_CR_ADSTP | ADC_CR_ADSTART | ADC_CR_ADDIS | ADC_CR_ADEN)) != 0UL)
+ 80087f4:	6899      	ldr	r1, [r3, #8]
+ 80087f6:	4a2e      	ldr	r2, [pc, #184]	; (80088b0 <ADC_Enable+0xd0>)
+ 80087f8:	4211      	tst	r1, r2
+ 80087fa:	d117      	bne.n	800882c <ADC_Enable+0x4c>
+  MODIFY_REG(ADCx->CR,
+ 80087fc:	689a      	ldr	r2, [r3, #8]
+ 80087fe:	f022 4200 	bic.w	r2, r2, #2147483648	; 0x80000000
+ 8008802:	f022 0217 	bic.w	r2, r2, #23
+ 8008806:	f042 0201 	orr.w	r2, r2, #1
+ 800880a:	609a      	str	r2, [r3, #8]
+  return (uint32_t)(READ_BIT(ADCxy_COMMON->CCR, ADC_CCR_VREFEN | ADC_CCR_TSEN | ADC_CCR_VBATEN));
+ 800880c:	4b29      	ldr	r3, [pc, #164]	; (80088b4 <ADC_Enable+0xd4>)
+ 800880e:	f8d3 3708 	ldr.w	r3, [r3, #1800]	; 0x708
+    }
+
+    /* Enable the ADC peripheral */
+    LL_ADC_Enable(hadc->Instance);
+
+    if ((LL_ADC_GetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE(hadc->Instance)) & LL_ADC_PATH_INTERNAL_TEMPSENSOR) 
+ 8008812:	f413 0f00 	tst.w	r3, #8388608	; 0x800000
+ 8008816:	d019      	beq.n	800884c <ADC_Enable+0x6c>
+      /* Wait loop initialization and execution */
+      /* Note: Variable divided by 2 to compensate partially              */
+      /*       CPU processing cycles, scaling in us split to not          */
+      /*       exceed 32 bits register capacity and handle low frequency. */
+      wait_loop_index = ((LL_ADC_DELAY_TEMPSENSOR_BUFFER_STAB_US / 10UL) 
+                         * ((SystemCoreClock / (100000UL * 2UL)) + 1UL));
+ 8008818:	4b27      	ldr	r3, [pc, #156]	; (80088b8 <ADC_Enable+0xd8>)
+ 800881a:	681b      	ldr	r3, [r3, #0]
+ 800881c:	099b      	lsrs	r3, r3, #6
+ 800881e:	4a27      	ldr	r2, [pc, #156]	; (80088bc <ADC_Enable+0xdc>)
+ 8008820:	fba2 2303 	umull	r2, r3, r2, r3
+ 8008824:	099b      	lsrs	r3, r3, #6
+ 8008826:	3301      	adds	r3, #1
+      wait_loop_index = ((LL_ADC_DELAY_TEMPSENSOR_BUFFER_STAB_US / 10UL) 
+ 8008828:	9301      	str	r3, [sp, #4]
+      while (wait_loop_index != 0UL)
+ 800882a:	e00c      	b.n	8008846 <ADC_Enable+0x66>
+      SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL);
+ 800882c:	6d83      	ldr	r3, [r0, #88]	; 0x58
+ 800882e:	f043 0310 	orr.w	r3, r3, #16
+ 8008832:	6583      	str	r3, [r0, #88]	; 0x58
+      SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL);
+ 8008834:	6dc3      	ldr	r3, [r0, #92]	; 0x5c
+ 8008836:	f043 0301 	orr.w	r3, r3, #1
+ 800883a:	65c3      	str	r3, [r0, #92]	; 0x5c
+      return HAL_ERROR;
+ 800883c:	2001      	movs	r0, #1
+ 800883e:	e035      	b.n	80088ac <ADC_Enable+0xcc>
+      {
+        wait_loop_index--;
+ 8008840:	9b01      	ldr	r3, [sp, #4]
+ 8008842:	3b01      	subs	r3, #1
+ 8008844:	9301      	str	r3, [sp, #4]
+      while (wait_loop_index != 0UL)
+ 8008846:	9b01      	ldr	r3, [sp, #4]
+ 8008848:	2b00      	cmp	r3, #0
+ 800884a:	d1f9      	bne.n	8008840 <ADC_Enable+0x60>
+      }
+    }
+
+    /* If low power mode AutoPowerOff is enabled, power-on/off phases are     */
+    /* performed automatically by hardware and flag ADC ready is not set.     */
+    if (hadc->Init.LowPowerAutoPowerOff != ENABLE)
+ 800884c:	7e63      	ldrb	r3, [r4, #25]
+ 800884e:	2b01      	cmp	r3, #1
+ 8008850:	d101      	bne.n	8008856 <ADC_Enable+0x76>
+      }
+    }
+  }
+
+  /* Return HAL status */
+  return HAL_OK;
+ 8008852:	2000      	movs	r0, #0
+ 8008854:	e02a      	b.n	80088ac <ADC_Enable+0xcc>
+      tickstart = HAL_GetTick();
+ 8008856:	f7fa fa1f 	bl	8002c98 <HAL_GetTick>
+ 800885a:	4605      	mov	r5, r0
+      while (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_RDY) == 0UL)
+ 800885c:	6823      	ldr	r3, [r4, #0]
+ 800885e:	681a      	ldr	r2, [r3, #0]
+ 8008860:	f012 0f01 	tst.w	r2, #1
+ 8008864:	d11f      	bne.n	80088a6 <ADC_Enable+0xc6>
+  return ((READ_BIT(ADCx->CR, ADC_CR_ADEN) == (ADC_CR_ADEN)) ? 1UL : 0UL);
+ 8008866:	689a      	ldr	r2, [r3, #8]
+ 8008868:	f012 0f01 	tst.w	r2, #1
+ 800886c:	d107      	bne.n	800887e <ADC_Enable+0x9e>
+  MODIFY_REG(ADCx->CR,
+ 800886e:	689a      	ldr	r2, [r3, #8]
+ 8008870:	f022 4200 	bic.w	r2, r2, #2147483648	; 0x80000000
+ 8008874:	f022 0217 	bic.w	r2, r2, #23
+ 8008878:	f042 0201 	orr.w	r2, r2, #1
+ 800887c:	609a      	str	r2, [r3, #8]
+        if ((HAL_GetTick() - tickstart) > ADC_ENABLE_TIMEOUT)
+ 800887e:	f7fa fa0b 	bl	8002c98 <HAL_GetTick>
+ 8008882:	1b40      	subs	r0, r0, r5
+ 8008884:	2802      	cmp	r0, #2
+ 8008886:	d9e9      	bls.n	800885c <ADC_Enable+0x7c>
+          if (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_RDY) == 0UL)
+ 8008888:	6823      	ldr	r3, [r4, #0]
+ 800888a:	681b      	ldr	r3, [r3, #0]
+ 800888c:	f013 0f01 	tst.w	r3, #1
+ 8008890:	d1e4      	bne.n	800885c <ADC_Enable+0x7c>
+            SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL);
+ 8008892:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8008894:	f043 0310 	orr.w	r3, r3, #16
+ 8008898:	65a3      	str	r3, [r4, #88]	; 0x58
+            SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL);
+ 800889a:	6de3      	ldr	r3, [r4, #92]	; 0x5c
+ 800889c:	f043 0301 	orr.w	r3, r3, #1
+ 80088a0:	65e3      	str	r3, [r4, #92]	; 0x5c
+            return HAL_ERROR;
+ 80088a2:	2001      	movs	r0, #1
+ 80088a4:	e002      	b.n	80088ac <ADC_Enable+0xcc>
+  return HAL_OK;
+ 80088a6:	2000      	movs	r0, #0
+ 80088a8:	e000      	b.n	80088ac <ADC_Enable+0xcc>
+ 80088aa:	2000      	movs	r0, #0
+}
+ 80088ac:	b003      	add	sp, #12
+ 80088ae:	bd30      	pop	{r4, r5, pc}
+ 80088b0:	80000017 	.word	0x80000017
+ 80088b4:	40012000 	.word	0x40012000
+ 80088b8:	20000828 	.word	0x20000828
+ 80088bc:	053e2d63 	.word	0x053e2d63
+
+080088c0 <HAL_ADC_Start>:
+  if (LL_ADC_REG_IsConversionOngoing(hadc->Instance) == 0UL)
+ 80088c0:	6803      	ldr	r3, [r0, #0]
+  return ((READ_BIT(ADCx->CR, ADC_CR_ADSTART) == (ADC_CR_ADSTART)) ? 1UL : 0UL);
+ 80088c2:	689b      	ldr	r3, [r3, #8]
+ 80088c4:	f013 0f04 	tst.w	r3, #4
+ 80088c8:	d128      	bne.n	800891c <HAL_ADC_Start+0x5c>
+{
+ 80088ca:	b510      	push	{r4, lr}
+ 80088cc:	4604      	mov	r4, r0
+    __HAL_LOCK(hadc);
+ 80088ce:	f890 3054 	ldrb.w	r3, [r0, #84]	; 0x54
+ 80088d2:	2b01      	cmp	r3, #1
+ 80088d4:	d024      	beq.n	8008920 <HAL_ADC_Start+0x60>
+ 80088d6:	2301      	movs	r3, #1
+ 80088d8:	f880 3054 	strb.w	r3, [r0, #84]	; 0x54
+    tmp_hal_status = ADC_Enable(hadc);
+ 80088dc:	f7ff ff80 	bl	80087e0 <ADC_Enable>
+    if (tmp_hal_status == HAL_OK)
+ 80088e0:	b9c0      	cbnz	r0, 8008914 <HAL_ADC_Start+0x54>
+      ADC_STATE_CLR_SET(hadc->State,
+ 80088e2:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 80088e4:	f423 6370 	bic.w	r3, r3, #3840	; 0xf00
+ 80088e8:	f023 0301 	bic.w	r3, r3, #1
+ 80088ec:	f443 7380 	orr.w	r3, r3, #256	; 0x100
+ 80088f0:	65a3      	str	r3, [r4, #88]	; 0x58
+      ADC_CLEAR_ERRORCODE(hadc);
+ 80088f2:	2300      	movs	r3, #0
+ 80088f4:	65e3      	str	r3, [r4, #92]	; 0x5c
+      __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOC | ADC_FLAG_EOS | ADC_FLAG_OVR));
+ 80088f6:	6822      	ldr	r2, [r4, #0]
+ 80088f8:	211c      	movs	r1, #28
+ 80088fa:	6011      	str	r1, [r2, #0]
+      __HAL_UNLOCK(hadc);
+ 80088fc:	f884 3054 	strb.w	r3, [r4, #84]	; 0x54
+      LL_ADC_REG_StartConversion(hadc->Instance);
+ 8008900:	6822      	ldr	r2, [r4, #0]
+  MODIFY_REG(ADCx->CR,
+ 8008902:	6893      	ldr	r3, [r2, #8]
+ 8008904:	f023 4300 	bic.w	r3, r3, #2147483648	; 0x80000000
+ 8008908:	f023 0317 	bic.w	r3, r3, #23
+ 800890c:	f043 0304 	orr.w	r3, r3, #4
+ 8008910:	6093      	str	r3, [r2, #8]
+}
+ 8008912:	bd10      	pop	{r4, pc}
+      __HAL_UNLOCK(hadc);
+ 8008914:	2300      	movs	r3, #0
+ 8008916:	f884 3054 	strb.w	r3, [r4, #84]	; 0x54
+ 800891a:	e7fa      	b.n	8008912 <HAL_ADC_Start+0x52>
+    tmp_hal_status = HAL_BUSY;
+ 800891c:	2002      	movs	r0, #2
+}
+ 800891e:	4770      	bx	lr
+    __HAL_LOCK(hadc);
+ 8008920:	2002      	movs	r0, #2
+ 8008922:	e7f6      	b.n	8008912 <HAL_ADC_Start+0x52>
+
+08008924 <ADC_Disable>:
+  *         stopped.
+  * @param hadc ADC handle
+  * @retval HAL status.
+  */
+HAL_StatusTypeDef ADC_Disable(ADC_HandleTypeDef *hadc)
+{
+ 8008924:	b538      	push	{r3, r4, r5, lr}
+ 8008926:	4604      	mov	r4, r0
+  uint32_t tickstart;
+  const uint32_t tmp_adc_is_disable_on_going = LL_ADC_IsDisableOngoing(hadc->Instance);
+ 8008928:	6802      	ldr	r2, [r0, #0]
+  return ((READ_BIT(ADCx->CR, ADC_CR_ADDIS) == (ADC_CR_ADDIS)) ? 1UL : 0UL);
+ 800892a:	6893      	ldr	r3, [r2, #8]
+ 800892c:	f013 0302 	ands.w	r3, r3, #2
+ 8008930:	d000      	beq.n	8008934 <ADC_Disable+0x10>
+ 8008932:	2301      	movs	r3, #1
+  return ((READ_BIT(ADCx->CR, ADC_CR_ADEN) == (ADC_CR_ADEN)) ? 1UL : 0UL);
+ 8008934:	6891      	ldr	r1, [r2, #8]
+ 8008936:	f011 0f01 	tst.w	r1, #1
+ 800893a:	d039      	beq.n	80089b0 <ADC_Disable+0x8c>
+
+  /* Verification if ADC is not already disabled:                             */
+  /* Note: forbidden to disable ADC (set bit ADC_CR_ADDIS) if ADC is already  */
+  /*       disabled.                                                          */
+  if ((LL_ADC_IsEnabled(hadc->Instance) != 0UL)
+      && (tmp_adc_is_disable_on_going == 0UL)
+ 800893c:	2b00      	cmp	r3, #0
+ 800893e:	d139      	bne.n	80089b4 <ADC_Disable+0x90>
+     )
+  {
+    /* Check if conditions to disable the ADC are fulfilled */
+    if ((hadc->Instance->CR & (ADC_CR_ADSTART | ADC_CR_ADEN)) == ADC_CR_ADEN)
+ 8008940:	6893      	ldr	r3, [r2, #8]
+ 8008942:	f003 0305 	and.w	r3, r3, #5
+ 8008946:	2b01      	cmp	r3, #1
+ 8008948:	d009      	beq.n	800895e <ADC_Disable+0x3a>
+      __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOSMP | ADC_FLAG_RDY));
+    }
+    else
+    {
+      /* Update ADC state machine to error */
+      SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL);
+ 800894a:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 800894c:	f043 0310 	orr.w	r3, r3, #16
+ 8008950:	65a3      	str	r3, [r4, #88]	; 0x58
+
+      /* Set ADC error code to ADC peripheral internal error */
+      SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL);
+ 8008952:	6de3      	ldr	r3, [r4, #92]	; 0x5c
+ 8008954:	f043 0301 	orr.w	r3, r3, #1
+ 8008958:	65e3      	str	r3, [r4, #92]	; 0x5c
+
+      return HAL_ERROR;
+ 800895a:	2001      	movs	r0, #1
+ 800895c:	e029      	b.n	80089b2 <ADC_Disable+0x8e>
+  MODIFY_REG(ADCx->CR,
+ 800895e:	6893      	ldr	r3, [r2, #8]
+ 8008960:	f023 4300 	bic.w	r3, r3, #2147483648	; 0x80000000
+ 8008964:	f023 0317 	bic.w	r3, r3, #23
+ 8008968:	f043 0302 	orr.w	r3, r3, #2
+ 800896c:	6093      	str	r3, [r2, #8]
+      __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOSMP | ADC_FLAG_RDY));
+ 800896e:	6823      	ldr	r3, [r4, #0]
+ 8008970:	2203      	movs	r2, #3
+ 8008972:	601a      	str	r2, [r3, #0]
+    }
+
+    /* Wait for ADC effectively disabled */
+    /* Get tick count */
+    tickstart = HAL_GetTick();
+ 8008974:	f7fa f990 	bl	8002c98 <HAL_GetTick>
+ 8008978:	4605      	mov	r5, r0
+
+    while ((hadc->Instance->CR & ADC_CR_ADEN) != 0UL)
+ 800897a:	6823      	ldr	r3, [r4, #0]
+ 800897c:	689b      	ldr	r3, [r3, #8]
+ 800897e:	f013 0f01 	tst.w	r3, #1
+ 8008982:	d013      	beq.n	80089ac <ADC_Disable+0x88>
+    {
+      if ((HAL_GetTick() - tickstart) > ADC_DISABLE_TIMEOUT)
+ 8008984:	f7fa f988 	bl	8002c98 <HAL_GetTick>
+ 8008988:	1b40      	subs	r0, r0, r5
+ 800898a:	2802      	cmp	r0, #2
+ 800898c:	d9f5      	bls.n	800897a <ADC_Disable+0x56>
+      {
+        /* New check to avoid false timeout detection in case of preemption */
+        if ((hadc->Instance->CR & ADC_CR_ADEN) != 0UL)
+ 800898e:	6823      	ldr	r3, [r4, #0]
+ 8008990:	689b      	ldr	r3, [r3, #8]
+ 8008992:	f013 0f01 	tst.w	r3, #1
+ 8008996:	d0f0      	beq.n	800897a <ADC_Disable+0x56>
+        {
+          /* Update ADC state machine to error */
+          SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL);
+ 8008998:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 800899a:	f043 0310 	orr.w	r3, r3, #16
+ 800899e:	65a3      	str	r3, [r4, #88]	; 0x58
+
+          /* Set ADC error code to ADC peripheral internal error */
+          SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL);
+ 80089a0:	6de3      	ldr	r3, [r4, #92]	; 0x5c
+ 80089a2:	f043 0301 	orr.w	r3, r3, #1
+ 80089a6:	65e3      	str	r3, [r4, #92]	; 0x5c
+
+          return HAL_ERROR;
+ 80089a8:	2001      	movs	r0, #1
+ 80089aa:	e002      	b.n	80089b2 <ADC_Disable+0x8e>
+      }
+    }
+  }
+
+  /* Return HAL status */
+  return HAL_OK;
+ 80089ac:	2000      	movs	r0, #0
+ 80089ae:	e000      	b.n	80089b2 <ADC_Disable+0x8e>
+ 80089b0:	2000      	movs	r0, #0
+}
+ 80089b2:	bd38      	pop	{r3, r4, r5, pc}
+  return HAL_OK;
+ 80089b4:	2000      	movs	r0, #0
+ 80089b6:	e7fc      	b.n	80089b2 <ADC_Disable+0x8e>
+
+080089b8 <HAL_ADC_DeInit>:
+{
+ 80089b8:	b570      	push	{r4, r5, r6, lr}
+  if (hadc == NULL)
+ 80089ba:	2800      	cmp	r0, #0
+ 80089bc:	d056      	beq.n	8008a6c <HAL_ADC_DeInit+0xb4>
+ 80089be:	4604      	mov	r4, r0
+  SET_BIT(hadc->State, HAL_ADC_STATE_BUSY_INTERNAL);
+ 80089c0:	6d83      	ldr	r3, [r0, #88]	; 0x58
+ 80089c2:	f043 0302 	orr.w	r3, r3, #2
+ 80089c6:	6583      	str	r3, [r0, #88]	; 0x58
+  tmp_hal_status = ADC_ConversionStop(hadc);
+ 80089c8:	f7ff fed6 	bl	8008778 <ADC_ConversionStop>
+  if (tmp_hal_status == HAL_OK)
+ 80089cc:	4606      	mov	r6, r0
+ 80089ce:	2800      	cmp	r0, #0
+ 80089d0:	d03d      	beq.n	8008a4e <HAL_ADC_DeInit+0x96>
+  __HAL_ADC_DISABLE_IT(hadc, (ADC_IT_AWD3  | ADC_IT_AWD2 |
+ 80089d2:	6822      	ldr	r2, [r4, #0]
+ 80089d4:	6853      	ldr	r3, [r2, #4]
+ 80089d6:	f423 7367 	bic.w	r3, r3, #924	; 0x39c
+ 80089da:	f023 0303 	bic.w	r3, r3, #3
+ 80089de:	6053      	str	r3, [r2, #4]
+  __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_AWD3  | ADC_FLAG_AWD2 |
+ 80089e0:	6823      	ldr	r3, [r4, #0]
+ 80089e2:	f240 329f 	movw	r2, #927	; 0x39f
+ 80089e6:	601a      	str	r2, [r3, #0]
+  hadc->Instance->CFGR1 &= ~(ADC_CFGR1_AWD1CH   | ADC_CFGR1_AWD1EN  | ADC_CFGR1_AWD1SGL | ADC_CFGR1_DISCEN |
+ 80089e8:	6822      	ldr	r2, [r4, #0]
+ 80089ea:	68d1      	ldr	r1, [r2, #12]
+ 80089ec:	4b20      	ldr	r3, [pc, #128]	; (8008a70 <HAL_ADC_DeInit+0xb8>)
+ 80089ee:	400b      	ands	r3, r1
+ 80089f0:	60d3      	str	r3, [r2, #12]
+  hadc->Instance->CFGR2 &= ~ADC_CFGR2_CKMODE;
+ 80089f2:	6822      	ldr	r2, [r4, #0]
+ 80089f4:	6913      	ldr	r3, [r2, #16]
+ 80089f6:	f023 4340 	bic.w	r3, r3, #3221225472	; 0xc0000000
+ 80089fa:	6113      	str	r3, [r2, #16]
+  hadc->Instance->SMPR &= ~ADC_SMPR_SMP1;
+ 80089fc:	6822      	ldr	r2, [r4, #0]
+ 80089fe:	6953      	ldr	r3, [r2, #20]
+ 8008a00:	f023 0307 	bic.w	r3, r3, #7
+ 8008a04:	6153      	str	r3, [r2, #20]
+  hadc->Instance->AWD1TR &= ~(ADC_AWD1TR_HT1 | ADC_AWD1TR_LT1);
+ 8008a06:	6822      	ldr	r2, [r4, #0]
+ 8008a08:	6a13      	ldr	r3, [r2, #32]
+ 8008a0a:	f003 23f0 	and.w	r3, r3, #4026593280	; 0xf000f000
+ 8008a0e:	6213      	str	r3, [r2, #32]
+  hadc->Instance->AWD2TR &= ~(ADC_AWD2TR_HT2 | ADC_AWD2TR_LT2);
+ 8008a10:	6822      	ldr	r2, [r4, #0]
+ 8008a12:	6a53      	ldr	r3, [r2, #36]	; 0x24
+ 8008a14:	f003 23f0 	and.w	r3, r3, #4026593280	; 0xf000f000
+ 8008a18:	6253      	str	r3, [r2, #36]	; 0x24
+  hadc->Instance->AWD3TR &= ~(ADC_AWD3TR_HT3 | ADC_AWD3TR_LT3);
+ 8008a1a:	6822      	ldr	r2, [r4, #0]
+ 8008a1c:	6ad3      	ldr	r3, [r2, #44]	; 0x2c
+ 8008a1e:	f003 23f0 	and.w	r3, r3, #4026593280	; 0xf000f000
+ 8008a22:	62d3      	str	r3, [r2, #44]	; 0x2c
+  hadc->Instance->CHSELR &= ~(ADC_CHSELR_SQ_ALL);
+ 8008a24:	6823      	ldr	r3, [r4, #0]
+ 8008a26:	6a9a      	ldr	r2, [r3, #40]	; 0x28
+ 8008a28:	2500      	movs	r5, #0
+ 8008a2a:	629d      	str	r5, [r3, #40]	; 0x28
+  ADC_COMMON->CCR &= ~(ADC_CCR_VBATEN | ADC_CCR_TSEN | ADC_CCR_VREFEN | ADC_CCR_PRESC);
+ 8008a2c:	4a11      	ldr	r2, [pc, #68]	; (8008a74 <HAL_ADC_DeInit+0xbc>)
+ 8008a2e:	f8d2 3708 	ldr.w	r3, [r2, #1800]	; 0x708
+ 8008a32:	f023 73fe 	bic.w	r3, r3, #33292288	; 0x1fc0000
+ 8008a36:	f8c2 3708 	str.w	r3, [r2, #1800]	; 0x708
+  HAL_ADC_MspDeInit(hadc);
+ 8008a3a:	4620      	mov	r0, r4
+ 8008a3c:	f7f9 fa28 	bl	8001e90 <HAL_ADC_MspDeInit>
+  hadc->ADCGroupRegularSequencerRanks = 0x00000000UL;
+ 8008a40:	6625      	str	r5, [r4, #96]	; 0x60
+  ADC_CLEAR_ERRORCODE(hadc);
+ 8008a42:	65e5      	str	r5, [r4, #92]	; 0x5c
+  hadc->State = HAL_ADC_STATE_RESET;
+ 8008a44:	65a5      	str	r5, [r4, #88]	; 0x58
+  __HAL_UNLOCK(hadc);
+ 8008a46:	f884 5054 	strb.w	r5, [r4, #84]	; 0x54
+}
+ 8008a4a:	4630      	mov	r0, r6
+ 8008a4c:	bd70      	pop	{r4, r5, r6, pc}
+    tmp_hal_status = ADC_Disable(hadc);
+ 8008a4e:	4620      	mov	r0, r4
+ 8008a50:	f7ff ff68 	bl	8008924 <ADC_Disable>
+    if (tmp_hal_status == HAL_OK)
+ 8008a54:	4606      	mov	r6, r0
+ 8008a56:	b908      	cbnz	r0, 8008a5c <HAL_ADC_DeInit+0xa4>
+      hadc->State = HAL_ADC_STATE_READY;
+ 8008a58:	2301      	movs	r3, #1
+ 8008a5a:	65a3      	str	r3, [r4, #88]	; 0x58
+    LL_ADC_DisableInternalRegulator(hadc->Instance);
+ 8008a5c:	6822      	ldr	r2, [r4, #0]
+  CLEAR_BIT(ADCx->CR, (ADC_CR_ADVREGEN | ADC_CR_BITS_PROPERTY_RS));
+ 8008a5e:	6893      	ldr	r3, [r2, #8]
+ 8008a60:	f023 4310 	bic.w	r3, r3, #2415919104	; 0x90000000
+ 8008a64:	f023 0317 	bic.w	r3, r3, #23
+ 8008a68:	6093      	str	r3, [r2, #8]
+}
+ 8008a6a:	e7b2      	b.n	80089d2 <HAL_ADC_DeInit+0x1a>
+    return HAL_ERROR;
+ 8008a6c:	2601      	movs	r6, #1
+ 8008a6e:	e7ec      	b.n	8008a4a <HAL_ADC_DeInit+0x92>
+ 8008a70:	833e0200 	.word	0x833e0200
+ 8008a74:	40012000 	.word	0x40012000
+
+08008a78 <HAL_ADC_Stop>:
+  __HAL_LOCK(hadc);
+ 8008a78:	f890 3054 	ldrb.w	r3, [r0, #84]	; 0x54
+ 8008a7c:	2b01      	cmp	r3, #1
+ 8008a7e:	d019      	beq.n	8008ab4 <HAL_ADC_Stop+0x3c>
+{
+ 8008a80:	b510      	push	{r4, lr}
+ 8008a82:	4604      	mov	r4, r0
+  __HAL_LOCK(hadc);
+ 8008a84:	2301      	movs	r3, #1
+ 8008a86:	f880 3054 	strb.w	r3, [r0, #84]	; 0x54
+  tmp_hal_status = ADC_ConversionStop(hadc);
+ 8008a8a:	f7ff fe75 	bl	8008778 <ADC_ConversionStop>
+  if (tmp_hal_status == HAL_OK)
+ 8008a8e:	b118      	cbz	r0, 8008a98 <HAL_ADC_Stop+0x20>
+  __HAL_UNLOCK(hadc);
+ 8008a90:	2300      	movs	r3, #0
+ 8008a92:	f884 3054 	strb.w	r3, [r4, #84]	; 0x54
+}
+ 8008a96:	bd10      	pop	{r4, pc}
+    tmp_hal_status = ADC_Disable(hadc);
+ 8008a98:	4620      	mov	r0, r4
+ 8008a9a:	f7ff ff43 	bl	8008924 <ADC_Disable>
+    if (tmp_hal_status == HAL_OK)
+ 8008a9e:	2800      	cmp	r0, #0
+ 8008aa0:	d1f6      	bne.n	8008a90 <HAL_ADC_Stop+0x18>
+      ADC_STATE_CLR_SET(hadc->State,
+ 8008aa2:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8008aa4:	f423 7380 	bic.w	r3, r3, #256	; 0x100
+ 8008aa8:	f023 0301 	bic.w	r3, r3, #1
+ 8008aac:	f043 0301 	orr.w	r3, r3, #1
+ 8008ab0:	65a3      	str	r3, [r4, #88]	; 0x58
+ 8008ab2:	e7ed      	b.n	8008a90 <HAL_ADC_Stop+0x18>
+  __HAL_LOCK(hadc);
+ 8008ab4:	2002      	movs	r0, #2
+}
+ 8008ab6:	4770      	bx	lr
+
+08008ab8 <HAL_ADCEx_Calibration_Start>:
+  *         HAL_ADC_GetValue() (value on 7 bits: from DR[6;0]).
+  * @param  hadc       ADC handle
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_ADCEx_Calibration_Start(ADC_HandleTypeDef *hadc)
+{
+ 8008ab8:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8008aba:	b083      	sub	sp, #12
+  HAL_StatusTypeDef tmp_hal_status;
+  __IO uint32_t wait_loop_index = 0UL;
+ 8008abc:	2300      	movs	r3, #0
+ 8008abe:	9301      	str	r3, [sp, #4]
+  uint32_t tickstart;
+
+  /* Check the parameters */
+  assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance));
+
+  __HAL_LOCK(hadc);
+ 8008ac0:	f890 3054 	ldrb.w	r3, [r0, #84]	; 0x54
+ 8008ac4:	2b01      	cmp	r3, #1
+ 8008ac6:	f000 8094 	beq.w	8008bf2 <HAL_ADCEx_Calibration_Start+0x13a>
+ 8008aca:	4604      	mov	r4, r0
+ 8008acc:	2301      	movs	r3, #1
+ 8008ace:	f880 3054 	strb.w	r3, [r0, #84]	; 0x54
+
+  /* Calibration prerequisite: ADC must be disabled. */
+
+  /* Disable the ADC (if not already disabled) */
+  tmp_hal_status = ADC_Disable(hadc);
+ 8008ad2:	f7ff ff27 	bl	8008924 <ADC_Disable>
+ 8008ad6:	4605      	mov	r5, r0
+
+  /* Check if ADC is effectively disabled */
+  if (LL_ADC_IsEnabled(hadc->Instance) == 0UL)
+ 8008ad8:	6823      	ldr	r3, [r4, #0]
+  return ((READ_BIT(ADCx->CR, ADC_CR_ADEN) == (ADC_CR_ADEN)) ? 1UL : 0UL);
+ 8008ada:	689a      	ldr	r2, [r3, #8]
+ 8008adc:	f012 0201 	ands.w	r2, r2, #1
+ 8008ae0:	d009      	beq.n	8008af6 <HAL_ADCEx_Calibration_Start+0x3e>
+                      HAL_ADC_STATE_BUSY_INTERNAL,
+                      HAL_ADC_STATE_READY);
+  }
+  else
+  {
+    SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL);
+ 8008ae2:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8008ae4:	f043 0310 	orr.w	r3, r3, #16
+ 8008ae8:	65a3      	str	r3, [r4, #88]	; 0x58
+
+    /* Note: No need to update variable "tmp_hal_status" here: already set    */
+    /*       to state "HAL_ERROR" by function disabling the ADC.              */
+  }
+
+  __HAL_UNLOCK(hadc);
+ 8008aea:	2300      	movs	r3, #0
+ 8008aec:	f884 3054 	strb.w	r3, [r4, #84]	; 0x54
+
+  return tmp_hal_status;
+}
+ 8008af0:	4628      	mov	r0, r5
+ 8008af2:	b003      	add	sp, #12
+ 8008af4:	bdf0      	pop	{r4, r5, r6, r7, pc}
+    ADC_STATE_CLR_SET(hadc->State,
+ 8008af6:	6da1      	ldr	r1, [r4, #88]	; 0x58
+ 8008af8:	f421 7181 	bic.w	r1, r1, #258	; 0x102
+ 8008afc:	f041 0102 	orr.w	r1, r1, #2
+ 8008b00:	65a1      	str	r1, [r4, #88]	; 0x58
+    backup_setting_cfgr1 = READ_BIT(hadc->Instance->CFGR1, ADC_CFGR1_DMAEN | ADC_CFGR1_DMACFG | ADC_CFGR1_AUTOFF);
+ 8008b02:	68de      	ldr	r6, [r3, #12]
+ 8008b04:	f426 46ff 	bic.w	r6, r6, #32640	; 0x7f80
+ 8008b08:	f026 067c 	bic.w	r6, r6, #124	; 0x7c
+ 8008b0c:	0436      	lsls	r6, r6, #16
+ 8008b0e:	0c36      	lsrs	r6, r6, #16
+    CLEAR_BIT(hadc->Instance->CFGR1, ADC_CFGR1_DMAEN | ADC_CFGR1_DMACFG | ADC_CFGR1_AUTOFF);
+ 8008b10:	68d9      	ldr	r1, [r3, #12]
+ 8008b12:	f421 4100 	bic.w	r1, r1, #32768	; 0x8000
+ 8008b16:	f021 0103 	bic.w	r1, r1, #3
+ 8008b1a:	60d9      	str	r1, [r3, #12]
+  uint32_t calibration_factor_accumulated = 0;
+ 8008b1c:	4610      	mov	r0, r2
+    for (calibration_index = 0UL; calibration_index < 8UL; calibration_index++)
+ 8008b1e:	e005      	b.n	8008b2c <HAL_ADCEx_Calibration_Start+0x74>
+  return (uint32_t)(READ_BIT(ADCx->CALFACT, ADC_CALFACT_CALFACT));
+ 8008b20:	f8d3 30b4 	ldr.w	r3, [r3, #180]	; 0xb4
+ 8008b24:	f003 037f 	and.w	r3, r3, #127	; 0x7f
+      calibration_factor_accumulated += LL_ADC_GetCalibrationFactor(hadc->Instance);
+ 8008b28:	4418      	add	r0, r3
+    for (calibration_index = 0UL; calibration_index < 8UL; calibration_index++)
+ 8008b2a:	3201      	adds	r2, #1
+ 8008b2c:	2a07      	cmp	r2, #7
+ 8008b2e:	d81e      	bhi.n	8008b6e <HAL_ADCEx_Calibration_Start+0xb6>
+      LL_ADC_StartCalibration(hadc->Instance);
+ 8008b30:	6821      	ldr	r1, [r4, #0]
+  MODIFY_REG(ADCx->CR,
+ 8008b32:	688b      	ldr	r3, [r1, #8]
+ 8008b34:	f023 4300 	bic.w	r3, r3, #2147483648	; 0x80000000
+ 8008b38:	f023 0317 	bic.w	r3, r3, #23
+ 8008b3c:	f043 4300 	orr.w	r3, r3, #2147483648	; 0x80000000
+ 8008b40:	608b      	str	r3, [r1, #8]
+      while (LL_ADC_IsCalibrationOnGoing(hadc->Instance) != 0UL)
+ 8008b42:	6823      	ldr	r3, [r4, #0]
+  return ((READ_BIT(ADCx->CR, ADC_CR_ADCAL) == (ADC_CR_ADCAL)) ? 1UL : 0UL);
+ 8008b44:	6899      	ldr	r1, [r3, #8]
+ 8008b46:	2900      	cmp	r1, #0
+ 8008b48:	daea      	bge.n	8008b20 <HAL_ADCEx_Calibration_Start+0x68>
+        wait_loop_index++;
+ 8008b4a:	9b01      	ldr	r3, [sp, #4]
+ 8008b4c:	3301      	adds	r3, #1
+ 8008b4e:	9301      	str	r3, [sp, #4]
+        if (wait_loop_index >= ADC_CALIBRATION_TIMEOUT)
+ 8008b50:	9b01      	ldr	r3, [sp, #4]
+ 8008b52:	f5b3 3f2e 	cmp.w	r3, #178176	; 0x2b800
+ 8008b56:	d3f4      	bcc.n	8008b42 <HAL_ADCEx_Calibration_Start+0x8a>
+          ADC_STATE_CLR_SET(hadc->State,
+ 8008b58:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8008b5a:	f023 0312 	bic.w	r3, r3, #18
+ 8008b5e:	f043 0310 	orr.w	r3, r3, #16
+ 8008b62:	65a3      	str	r3, [r4, #88]	; 0x58
+          __HAL_UNLOCK(hadc);
+ 8008b64:	2300      	movs	r3, #0
+ 8008b66:	f884 3054 	strb.w	r3, [r4, #84]	; 0x54
+          return HAL_ERROR;
+ 8008b6a:	2501      	movs	r5, #1
+ 8008b6c:	e7c0      	b.n	8008af0 <HAL_ADCEx_Calibration_Start+0x38>
+    calibration_factor_accumulated /= calibration_index;
+ 8008b6e:	fbb0 f0f2 	udiv	r0, r0, r2
+    LL_ADC_Enable(hadc->Instance);
+ 8008b72:	6822      	ldr	r2, [r4, #0]
+  MODIFY_REG(ADCx->CR,
+ 8008b74:	6893      	ldr	r3, [r2, #8]
+ 8008b76:	f023 4300 	bic.w	r3, r3, #2147483648	; 0x80000000
+ 8008b7a:	f023 0317 	bic.w	r3, r3, #23
+ 8008b7e:	f043 0301 	orr.w	r3, r3, #1
+ 8008b82:	6093      	str	r3, [r2, #8]
+    LL_ADC_SetCalibrationFactor(hadc->Instance, calibration_factor_accumulated);
+ 8008b84:	6822      	ldr	r2, [r4, #0]
+  MODIFY_REG(ADCx->CALFACT,
+ 8008b86:	f8d2 30b4 	ldr.w	r3, [r2, #180]	; 0xb4
+ 8008b8a:	f023 037f 	bic.w	r3, r3, #127	; 0x7f
+ 8008b8e:	4318      	orrs	r0, r3
+ 8008b90:	f8c2 00b4 	str.w	r0, [r2, #180]	; 0xb4
+    LL_ADC_Disable(hadc->Instance);
+ 8008b94:	6822      	ldr	r2, [r4, #0]
+  MODIFY_REG(ADCx->CR,
+ 8008b96:	6893      	ldr	r3, [r2, #8]
+ 8008b98:	f023 4300 	bic.w	r3, r3, #2147483648	; 0x80000000
+ 8008b9c:	f023 0317 	bic.w	r3, r3, #23
+ 8008ba0:	f043 0302 	orr.w	r3, r3, #2
+ 8008ba4:	6093      	str	r3, [r2, #8]
+    tickstart = HAL_GetTick();
+ 8008ba6:	f7fa f877 	bl	8002c98 <HAL_GetTick>
+ 8008baa:	4607      	mov	r7, r0
+    while (LL_ADC_IsEnabled(hadc->Instance) != 0UL)
+ 8008bac:	6823      	ldr	r3, [r4, #0]
+  return ((READ_BIT(ADCx->CR, ADC_CR_ADEN) == (ADC_CR_ADEN)) ? 1UL : 0UL);
+ 8008bae:	689a      	ldr	r2, [r3, #8]
+ 8008bb0:	f012 0f01 	tst.w	r2, #1
+ 8008bb4:	d109      	bne.n	8008bca <HAL_ADCEx_Calibration_Start+0x112>
+    SET_BIT(hadc->Instance->CFGR1, backup_setting_cfgr1);
+ 8008bb6:	68da      	ldr	r2, [r3, #12]
+ 8008bb8:	4332      	orrs	r2, r6
+ 8008bba:	60da      	str	r2, [r3, #12]
+    ADC_STATE_CLR_SET(hadc->State,
+ 8008bbc:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8008bbe:	f023 0303 	bic.w	r3, r3, #3
+ 8008bc2:	f043 0301 	orr.w	r3, r3, #1
+ 8008bc6:	65a3      	str	r3, [r4, #88]	; 0x58
+ 8008bc8:	e78f      	b.n	8008aea <HAL_ADCEx_Calibration_Start+0x32>
+      if ((HAL_GetTick() - tickstart) > ADC_DISABLE_TIMEOUT)
+ 8008bca:	f7fa f865 	bl	8002c98 <HAL_GetTick>
+ 8008bce:	1bc3      	subs	r3, r0, r7
+ 8008bd0:	2b02      	cmp	r3, #2
+ 8008bd2:	d9eb      	bls.n	8008bac <HAL_ADCEx_Calibration_Start+0xf4>
+        if (LL_ADC_IsEnabled(hadc->Instance) != 0UL)
+ 8008bd4:	6823      	ldr	r3, [r4, #0]
+ 8008bd6:	689b      	ldr	r3, [r3, #8]
+ 8008bd8:	f013 0f01 	tst.w	r3, #1
+ 8008bdc:	d0e6      	beq.n	8008bac <HAL_ADCEx_Calibration_Start+0xf4>
+          SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL);
+ 8008bde:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8008be0:	f043 0310 	orr.w	r3, r3, #16
+ 8008be4:	65a3      	str	r3, [r4, #88]	; 0x58
+          SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL);
+ 8008be6:	6de3      	ldr	r3, [r4, #92]	; 0x5c
+ 8008be8:	f043 0301 	orr.w	r3, r3, #1
+ 8008bec:	65e3      	str	r3, [r4, #92]	; 0x5c
+          return HAL_ERROR;
+ 8008bee:	2501      	movs	r5, #1
+ 8008bf0:	e77e      	b.n	8008af0 <HAL_ADCEx_Calibration_Start+0x38>
+  __HAL_LOCK(hadc);
+ 8008bf2:	2502      	movs	r5, #2
+ 8008bf4:	e77c      	b.n	8008af0 <HAL_ADCEx_Calibration_Start+0x38>
+	...
+
+08008bf8 <HAL_NVIC_SetPriorityGrouping>:
+  reg_value  =  SCB->AIRCR;                                                   /* read old register configuration    */
+ 8008bf8:	4a07      	ldr	r2, [pc, #28]	; (8008c18 <HAL_NVIC_SetPriorityGrouping+0x20>)
+ 8008bfa:	68d3      	ldr	r3, [r2, #12]
+  reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change               */
+ 8008bfc:	f423 63e0 	bic.w	r3, r3, #1792	; 0x700
+ 8008c00:	041b      	lsls	r3, r3, #16
+ 8008c02:	0c1b      	lsrs	r3, r3, #16
+                (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos)  );              /* Insert write key and priority group */
+ 8008c04:	0200      	lsls	r0, r0, #8
+ 8008c06:	f400 60e0 	and.w	r0, r0, #1792	; 0x700
+                ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) |
+ 8008c0a:	4303      	orrs	r3, r0
+  reg_value  =  (reg_value                                   |
+ 8008c0c:	f043 63bf 	orr.w	r3, r3, #100139008	; 0x5f80000
+ 8008c10:	f443 3300 	orr.w	r3, r3, #131072	; 0x20000
+  SCB->AIRCR =  reg_value;
+ 8008c14:	60d3      	str	r3, [r2, #12]
+  /* Check the parameters */
+  assert_param(IS_NVIC_PRIORITY_GROUP(PriorityGroup));
+
+  /* Set the PRIGROUP[10:8] bits according to the PriorityGroup parameter value */
+  NVIC_SetPriorityGrouping(PriorityGroup);
+}
+ 8008c16:	4770      	bx	lr
+ 8008c18:	e000ed00 	.word	0xe000ed00
+
+08008c1c <HAL_NVIC_SetPriority>:
+  *         This parameter can be a value between 0 and 15
+  *         A lower priority value indicates a higher priority.
+  * @retval None
+  */
+void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority)
+{
+ 8008c1c:	b500      	push	{lr}
+  return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos));
+ 8008c1e:	4b19      	ldr	r3, [pc, #100]	; (8008c84 <HAL_NVIC_SetPriority+0x68>)
+ 8008c20:	68db      	ldr	r3, [r3, #12]
+ 8008c22:	f3c3 2302 	ubfx	r3, r3, #8, #3
+  PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp);
+ 8008c26:	f1c3 0c07 	rsb	ip, r3, #7
+ 8008c2a:	f1bc 0f04 	cmp.w	ip, #4
+ 8008c2e:	bf28      	it	cs
+ 8008c30:	f04f 0c04 	movcs.w	ip, #4
+  SubPriorityBits     = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS));
+ 8008c34:	f103 0e04 	add.w	lr, r3, #4
+ 8008c38:	f1be 0f06 	cmp.w	lr, #6
+ 8008c3c:	d918      	bls.n	8008c70 <HAL_NVIC_SetPriority+0x54>
+ 8008c3e:	3b03      	subs	r3, #3
+           ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
+ 8008c40:	f04f 3eff 	mov.w	lr, #4294967295
+ 8008c44:	fa0e fc0c 	lsl.w	ip, lr, ip
+ 8008c48:	ea21 010c 	bic.w	r1, r1, ip
+ 8008c4c:	4099      	lsls	r1, r3
+           ((SubPriority     & (uint32_t)((1UL << (SubPriorityBits    )) - 1UL)))
+ 8008c4e:	fa0e fe03 	lsl.w	lr, lr, r3
+ 8008c52:	ea22 020e 	bic.w	r2, r2, lr
+           ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
+ 8008c56:	430a      	orrs	r2, r1
+  if ((int32_t)(IRQn) >= 0)
+ 8008c58:	2800      	cmp	r0, #0
+ 8008c5a:	db0b      	blt.n	8008c74 <HAL_NVIC_SetPriority+0x58>
+    NVIC->IP[((uint32_t)IRQn)]               = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
+ 8008c5c:	0112      	lsls	r2, r2, #4
+ 8008c5e:	b2d2      	uxtb	r2, r2
+ 8008c60:	f100 4060 	add.w	r0, r0, #3758096384	; 0xe0000000
+ 8008c64:	f500 4061 	add.w	r0, r0, #57600	; 0xe100
+ 8008c68:	f880 2300 	strb.w	r2, [r0, #768]	; 0x300
+  assert_param(IS_NVIC_PREEMPTION_PRIORITY(PreemptPriority));
+
+  prioritygroup = NVIC_GetPriorityGrouping();
+
+  NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority));
+}
+ 8008c6c:	f85d fb04 	ldr.w	pc, [sp], #4
+  SubPriorityBits     = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS));
+ 8008c70:	2300      	movs	r3, #0
+ 8008c72:	e7e5      	b.n	8008c40 <HAL_NVIC_SetPriority+0x24>
+    SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
+ 8008c74:	f000 000f 	and.w	r0, r0, #15
+ 8008c78:	0112      	lsls	r2, r2, #4
+ 8008c7a:	b2d2      	uxtb	r2, r2
+ 8008c7c:	4b02      	ldr	r3, [pc, #8]	; (8008c88 <HAL_NVIC_SetPriority+0x6c>)
+ 8008c7e:	541a      	strb	r2, [r3, r0]
+ 8008c80:	e7f4      	b.n	8008c6c <HAL_NVIC_SetPriority+0x50>
+ 8008c82:	bf00      	nop
+ 8008c84:	e000ed00 	.word	0xe000ed00
+ 8008c88:	e000ed14 	.word	0xe000ed14
+
+08008c8c <HAL_NVIC_EnableIRQ>:
+  if ((int32_t)(IRQn) >= 0)
+ 8008c8c:	2800      	cmp	r0, #0
+ 8008c8e:	db07      	blt.n	8008ca0 <HAL_NVIC_EnableIRQ+0x14>
+    NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
+ 8008c90:	f000 021f 	and.w	r2, r0, #31
+ 8008c94:	0940      	lsrs	r0, r0, #5
+ 8008c96:	2301      	movs	r3, #1
+ 8008c98:	4093      	lsls	r3, r2
+ 8008c9a:	4a02      	ldr	r2, [pc, #8]	; (8008ca4 <HAL_NVIC_EnableIRQ+0x18>)
+ 8008c9c:	f842 3020 	str.w	r3, [r2, r0, lsl #2]
+  /* Check the parameters */
+  assert_param(IS_NVIC_DEVICE_IRQ(IRQn));
+
+  /* Enable interrupt */
+  NVIC_EnableIRQ(IRQn);
+}
+ 8008ca0:	4770      	bx	lr
+ 8008ca2:	bf00      	nop
+ 8008ca4:	e000e100 	.word	0xe000e100
+
+08008ca8 <HAL_NVIC_DisableIRQ>:
+  if ((int32_t)(IRQn) >= 0)
+ 8008ca8:	2800      	cmp	r0, #0
+ 8008caa:	db0c      	blt.n	8008cc6 <HAL_NVIC_DisableIRQ+0x1e>
+    NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
+ 8008cac:	f000 021f 	and.w	r2, r0, #31
+ 8008cb0:	0940      	lsrs	r0, r0, #5
+ 8008cb2:	2301      	movs	r3, #1
+ 8008cb4:	4093      	lsls	r3, r2
+ 8008cb6:	3020      	adds	r0, #32
+ 8008cb8:	4a03      	ldr	r2, [pc, #12]	; (8008cc8 <HAL_NVIC_DisableIRQ+0x20>)
+ 8008cba:	f842 3020 	str.w	r3, [r2, r0, lsl #2]
+  __ASM volatile ("dsb 0xF":::"memory");
+ 8008cbe:	f3bf 8f4f 	dsb	sy
+  __ASM volatile ("isb 0xF":::"memory");
+ 8008cc2:	f3bf 8f6f 	isb	sy
+  /* Check the parameters */
+  assert_param(IS_NVIC_DEVICE_IRQ(IRQn));
+
+  /* Disable interrupt */
+  NVIC_DisableIRQ(IRQn);
+}
+ 8008cc6:	4770      	bx	lr
+ 8008cc8:	e000e100 	.word	0xe000e100
+
+08008ccc <DMA_SetConfig>:
+  * @param DstAddress The destination memory Buffer address
+  * @param DataLength The length of data to be transferred from source to destination
+  * @retval HAL status
+  */
+static void DMA_SetConfig(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
+{
+ 8008ccc:	b410      	push	{r4}
+  /* Clear the DMAMUX synchro overrun flag */
+  hdma->DMAmuxChannelStatus->CFR = hdma->DMAmuxChannelStatusMask;
+ 8008cce:	6cc4      	ldr	r4, [r0, #76]	; 0x4c
+ 8008cd0:	f8d0 c050 	ldr.w	ip, [r0, #80]	; 0x50
+ 8008cd4:	f8c4 c004 	str.w	ip, [r4, #4]
+
+  if (hdma->DMAmuxRequestGen != NULL)
+ 8008cd8:	6d44      	ldr	r4, [r0, #84]	; 0x54
+ 8008cda:	b124      	cbz	r4, 8008ce6 <DMA_SetConfig+0x1a>
+  {
+    /* Clear the DMAMUX request generator overrun flag */
+    hdma->DMAmuxRequestGenStatus->RGCFR = hdma->DMAmuxRequestGenStatusMask;
+ 8008cdc:	6d84      	ldr	r4, [r0, #88]	; 0x58
+ 8008cde:	f8d0 c05c 	ldr.w	ip, [r0, #92]	; 0x5c
+ 8008ce2:	f8c4 c004 	str.w	ip, [r4, #4]
+  }
+
+  /* Clear all flags */
+  hdma->DmaBaseAddress->IFCR = (DMA_ISR_GIF1 << (hdma->ChannelIndex & 0x1CU));
+ 8008ce6:	6c44      	ldr	r4, [r0, #68]	; 0x44
+ 8008ce8:	f004 0c1c 	and.w	ip, r4, #28
+ 8008cec:	2401      	movs	r4, #1
+ 8008cee:	fa04 f40c 	lsl.w	r4, r4, ip
+ 8008cf2:	f8d0 c040 	ldr.w	ip, [r0, #64]	; 0x40
+ 8008cf6:	f8cc 4004 	str.w	r4, [ip, #4]
+
+  /* Configure DMA Channel data length */
+  hdma->Instance->CNDTR = DataLength;
+ 8008cfa:	6804      	ldr	r4, [r0, #0]
+ 8008cfc:	6063      	str	r3, [r4, #4]
+
+  /* Memory to Peripheral */
+  if ((hdma->Init.Direction) == DMA_MEMORY_TO_PERIPH)
+ 8008cfe:	6883      	ldr	r3, [r0, #8]
+ 8008d00:	2b10      	cmp	r3, #16
+ 8008d02:	d005      	beq.n	8008d10 <DMA_SetConfig+0x44>
+  }
+  /* Peripheral to Memory */
+  else
+  {
+    /* Configure DMA Channel source address */
+    hdma->Instance->CPAR = SrcAddress;
+ 8008d04:	6803      	ldr	r3, [r0, #0]
+ 8008d06:	6099      	str	r1, [r3, #8]
+
+    /* Configure DMA Channel destination address */
+    hdma->Instance->CMAR = DstAddress;
+ 8008d08:	6803      	ldr	r3, [r0, #0]
+ 8008d0a:	60da      	str	r2, [r3, #12]
+  }
+}
+ 8008d0c:	bc10      	pop	{r4}
+ 8008d0e:	4770      	bx	lr
+    hdma->Instance->CPAR = DstAddress;
+ 8008d10:	6803      	ldr	r3, [r0, #0]
+ 8008d12:	609a      	str	r2, [r3, #8]
+    hdma->Instance->CMAR = SrcAddress;
+ 8008d14:	6803      	ldr	r3, [r0, #0]
+ 8008d16:	60d9      	str	r1, [r3, #12]
+ 8008d18:	e7f8      	b.n	8008d0c <DMA_SetConfig+0x40>
+	...
+
+08008d1c <DMA_CalcDMAMUXChannelBaseAndMask>:
+static void DMA_CalcDMAMUXChannelBaseAndMask(DMA_HandleTypeDef *hdma)
+{
+  uint32_t channel_number;
+
+  /* check if instance is not outside the DMA channel range */
+  if ((uint32_t)hdma->Instance < (uint32_t)DMA2_Channel1)
+ 8008d1c:	6803      	ldr	r3, [r0, #0]
+ 8008d1e:	4a14      	ldr	r2, [pc, #80]	; (8008d70 <DMA_CalcDMAMUXChannelBaseAndMask+0x54>)
+ 8008d20:	4293      	cmp	r3, r2
+ 8008d22:	d816      	bhi.n	8008d52 <DMA_CalcDMAMUXChannelBaseAndMask+0x36>
+  {
+    /* DMA1 */
+    /* Associate a DMA Channel to a DMAMUX channel */
+    hdma->DMAmuxChannel = (DMAMUX1_Channel0 + (hdma->ChannelIndex >> 2U));
+ 8008d24:	6c42      	ldr	r2, [r0, #68]	; 0x44
+ 8008d26:	f022 0203 	bic.w	r2, r2, #3
+ 8008d2a:	f102 4280 	add.w	r2, r2, #1073741824	; 0x40000000
+ 8008d2e:	f502 3202 	add.w	r2, r2, #133120	; 0x20800
+ 8008d32:	6482      	str	r2, [r0, #72]	; 0x48
+
+    /* Prepare channel_number used for DMAmuxChannelStatusMask computation */
+    channel_number = (((uint32_t)hdma->Instance & 0xFFU) - 8U) / 20U;
+ 8008d34:	b2db      	uxtb	r3, r3
+ 8008d36:	3b08      	subs	r3, #8
+ 8008d38:	4a0e      	ldr	r2, [pc, #56]	; (8008d74 <DMA_CalcDMAMUXChannelBaseAndMask+0x58>)
+ 8008d3a:	fba2 2303 	umull	r2, r3, r2, r3
+ 8008d3e:	091b      	lsrs	r3, r3, #4
+    /* Prepare channel_number used for DMAmuxChannelStatusMask computation */
+    channel_number = (((((uint32_t)hdma->Instance & 0xFFU) - 8U) / 20U) + 7U);
+  }
+
+  /* Initialize the field DMAmuxChannelStatus to DMAMUX1_ChannelStatus base */
+  hdma->DMAmuxChannelStatus = DMAMUX1_ChannelStatus;
+ 8008d40:	4a0d      	ldr	r2, [pc, #52]	; (8008d78 <DMA_CalcDMAMUXChannelBaseAndMask+0x5c>)
+ 8008d42:	64c2      	str	r2, [r0, #76]	; 0x4c
+
+  /* Initialize the field DMAmuxChannelStatusMask with the corresponding index of the DMAMUX channel selected for the current ChannelIndex */
+  hdma->DMAmuxChannelStatusMask = 1UL << (channel_number & 0x1FU);
+ 8008d44:	f003 031f 	and.w	r3, r3, #31
+ 8008d48:	2201      	movs	r2, #1
+ 8008d4a:	fa02 f303 	lsl.w	r3, r2, r3
+ 8008d4e:	6503      	str	r3, [r0, #80]	; 0x50
+}
+ 8008d50:	4770      	bx	lr
+    hdma->DMAmuxChannel = (DMAMUX1_Channel7 + (hdma->ChannelIndex >> 2U));
+ 8008d52:	6c42      	ldr	r2, [r0, #68]	; 0x44
+ 8008d54:	f022 0103 	bic.w	r1, r2, #3
+ 8008d58:	4a08      	ldr	r2, [pc, #32]	; (8008d7c <DMA_CalcDMAMUXChannelBaseAndMask+0x60>)
+ 8008d5a:	440a      	add	r2, r1
+ 8008d5c:	6482      	str	r2, [r0, #72]	; 0x48
+    channel_number = (((((uint32_t)hdma->Instance & 0xFFU) - 8U) / 20U) + 7U);
+ 8008d5e:	b2db      	uxtb	r3, r3
+ 8008d60:	3b08      	subs	r3, #8
+ 8008d62:	4a04      	ldr	r2, [pc, #16]	; (8008d74 <DMA_CalcDMAMUXChannelBaseAndMask+0x58>)
+ 8008d64:	fba2 2303 	umull	r2, r3, r2, r3
+ 8008d68:	091b      	lsrs	r3, r3, #4
+ 8008d6a:	3307      	adds	r3, #7
+ 8008d6c:	e7e8      	b.n	8008d40 <DMA_CalcDMAMUXChannelBaseAndMask+0x24>
+ 8008d6e:	bf00      	nop
+ 8008d70:	40020407 	.word	0x40020407
+ 8008d74:	cccccccd 	.word	0xcccccccd
+ 8008d78:	40020880 	.word	0x40020880
+ 8008d7c:	4002081c 	.word	0x4002081c
+
+08008d80 <DMA_CalcDMAMUXRequestGenBaseAndMask>:
+  * @retval None
+  */
+
+static void DMA_CalcDMAMUXRequestGenBaseAndMask(DMA_HandleTypeDef *hdma)
+{
+  uint32_t request =  hdma->Init.Request & DMAMUX_CxCR_DMAREQ_ID;
+ 8008d80:	6843      	ldr	r3, [r0, #4]
+ 8008d82:	f003 037f 	and.w	r3, r3, #127	; 0x7f
+
+  /* DMA Channels are connected to DMAMUX1 request generator blocks*/
+  hdma->DMAmuxRequestGen = (DMAMUX_RequestGen_TypeDef *)((uint32_t)(((uint32_t)DMAMUX1_RequestGenerator0) + ((request - 1U) * 4U)));
+ 8008d86:	4a07      	ldr	r2, [pc, #28]	; (8008da4 <DMA_CalcDMAMUXRequestGenBaseAndMask+0x24>)
+ 8008d88:	441a      	add	r2, r3
+ 8008d8a:	0092      	lsls	r2, r2, #2
+ 8008d8c:	6542      	str	r2, [r0, #84]	; 0x54
+
+  hdma->DMAmuxRequestGenStatus = DMAMUX1_RequestGenStatus;
+ 8008d8e:	4a06      	ldr	r2, [pc, #24]	; (8008da8 <DMA_CalcDMAMUXRequestGenBaseAndMask+0x28>)
+ 8008d90:	6582      	str	r2, [r0, #88]	; 0x58
+
+  /* here "Request" is either DMA_REQUEST_GENERATOR0 to DMA_REQUEST_GENERATOR3, i.e. <= 4*/
+  hdma->DMAmuxRequestGenStatusMask = 1UL << ((request - 1U) & 0x3U);
+ 8008d92:	3b01      	subs	r3, #1
+ 8008d94:	f003 0303 	and.w	r3, r3, #3
+ 8008d98:	2201      	movs	r2, #1
+ 8008d9a:	fa02 f303 	lsl.w	r3, r2, r3
+ 8008d9e:	65c3      	str	r3, [r0, #92]	; 0x5c
+}
+ 8008da0:	4770      	bx	lr
+ 8008da2:	bf00      	nop
+ 8008da4:	1000823f 	.word	0x1000823f
+ 8008da8:	40020940 	.word	0x40020940
+
+08008dac <HAL_DMA_Init>:
+  if (hdma == NULL)
+ 8008dac:	2800      	cmp	r0, #0
+ 8008dae:	d060      	beq.n	8008e72 <HAL_DMA_Init+0xc6>
+{
+ 8008db0:	b510      	push	{r4, lr}
+ 8008db2:	4604      	mov	r4, r0
+  if ((uint32_t)(hdma->Instance) < (uint32_t)(DMA2_Channel1))
+ 8008db4:	6802      	ldr	r2, [r0, #0]
+ 8008db6:	4b30      	ldr	r3, [pc, #192]	; (8008e78 <HAL_DMA_Init+0xcc>)
+ 8008db8:	429a      	cmp	r2, r3
+ 8008dba:	d842      	bhi.n	8008e42 <HAL_DMA_Init+0x96>
+    hdma->ChannelIndex = (((uint32_t)hdma->Instance - (uint32_t)DMA1_Channel1) / ((uint32_t)DMA1_Channel2 - (uint32_t)DMA1_Channel1)) << 2U;
+ 8008dbc:	4b2f      	ldr	r3, [pc, #188]	; (8008e7c <HAL_DMA_Init+0xd0>)
+ 8008dbe:	4413      	add	r3, r2
+ 8008dc0:	492f      	ldr	r1, [pc, #188]	; (8008e80 <HAL_DMA_Init+0xd4>)
+ 8008dc2:	fba1 1303 	umull	r1, r3, r1, r3
+ 8008dc6:	091b      	lsrs	r3, r3, #4
+ 8008dc8:	009b      	lsls	r3, r3, #2
+ 8008dca:	6443      	str	r3, [r0, #68]	; 0x44
+    hdma->DmaBaseAddress = DMA1;
+ 8008dcc:	4b2d      	ldr	r3, [pc, #180]	; (8008e84 <HAL_DMA_Init+0xd8>)
+ 8008dce:	6403      	str	r3, [r0, #64]	; 0x40
+  hdma->State = HAL_DMA_STATE_BUSY;
+ 8008dd0:	2302      	movs	r3, #2
+ 8008dd2:	f884 3025 	strb.w	r3, [r4, #37]	; 0x25
+  CLEAR_BIT(hdma->Instance->CCR, (DMA_CCR_PL    | DMA_CCR_MSIZE  | DMA_CCR_PSIZE  | \
+ 8008dd6:	6813      	ldr	r3, [r2, #0]
+ 8008dd8:	f423 43ff 	bic.w	r3, r3, #32640	; 0x7f80
+ 8008ddc:	f023 0370 	bic.w	r3, r3, #112	; 0x70
+ 8008de0:	6013      	str	r3, [r2, #0]
+  SET_BIT(hdma->Instance->CCR, (hdma->Init.Direction           |                               \
+ 8008de2:	6821      	ldr	r1, [r4, #0]
+ 8008de4:	680a      	ldr	r2, [r1, #0]
+ 8008de6:	68a3      	ldr	r3, [r4, #8]
+ 8008de8:	68e0      	ldr	r0, [r4, #12]
+ 8008dea:	4303      	orrs	r3, r0
+ 8008dec:	6920      	ldr	r0, [r4, #16]
+ 8008dee:	4303      	orrs	r3, r0
+ 8008df0:	6960      	ldr	r0, [r4, #20]
+ 8008df2:	4303      	orrs	r3, r0
+ 8008df4:	69a0      	ldr	r0, [r4, #24]
+ 8008df6:	4303      	orrs	r3, r0
+ 8008df8:	69e0      	ldr	r0, [r4, #28]
+ 8008dfa:	4303      	orrs	r3, r0
+ 8008dfc:	6a20      	ldr	r0, [r4, #32]
+ 8008dfe:	4303      	orrs	r3, r0
+ 8008e00:	4313      	orrs	r3, r2
+ 8008e02:	600b      	str	r3, [r1, #0]
+  DMA_CalcDMAMUXChannelBaseAndMask(hdma);
+ 8008e04:	4620      	mov	r0, r4
+ 8008e06:	f7ff ff89 	bl	8008d1c <DMA_CalcDMAMUXChannelBaseAndMask>
+  if (hdma->Init.Direction == DMA_MEMORY_TO_MEMORY)
+ 8008e0a:	68a3      	ldr	r3, [r4, #8]
+ 8008e0c:	f5b3 4f80 	cmp.w	r3, #16384	; 0x4000
+ 8008e10:	d022      	beq.n	8008e58 <HAL_DMA_Init+0xac>
+  hdma->DMAmuxChannel->CCR = (hdma->Init.Request & DMAMUX_CxCR_DMAREQ_ID);
+ 8008e12:	6863      	ldr	r3, [r4, #4]
+ 8008e14:	6ca2      	ldr	r2, [r4, #72]	; 0x48
+ 8008e16:	f003 037f 	and.w	r3, r3, #127	; 0x7f
+ 8008e1a:	6013      	str	r3, [r2, #0]
+  hdma->DMAmuxChannelStatus->CFR = hdma->DMAmuxChannelStatusMask;
+ 8008e1c:	6ce3      	ldr	r3, [r4, #76]	; 0x4c
+ 8008e1e:	6d22      	ldr	r2, [r4, #80]	; 0x50
+ 8008e20:	605a      	str	r2, [r3, #4]
+  if (((hdma->Init.Request >  0UL) && (hdma->Init.Request <= DMA_REQUEST_GENERATOR3)))
+ 8008e22:	6863      	ldr	r3, [r4, #4]
+ 8008e24:	3b01      	subs	r3, #1
+ 8008e26:	2b03      	cmp	r3, #3
+ 8008e28:	d919      	bls.n	8008e5e <HAL_DMA_Init+0xb2>
+    hdma->DMAmuxRequestGen = NULL;
+ 8008e2a:	2300      	movs	r3, #0
+ 8008e2c:	6563      	str	r3, [r4, #84]	; 0x54
+    hdma->DMAmuxRequestGenStatus = NULL;
+ 8008e2e:	65a3      	str	r3, [r4, #88]	; 0x58
+    hdma->DMAmuxRequestGenStatusMask = 0U;
+ 8008e30:	65e3      	str	r3, [r4, #92]	; 0x5c
+  hdma->ErrorCode = HAL_DMA_ERROR_NONE;
+ 8008e32:	2000      	movs	r0, #0
+ 8008e34:	63e0      	str	r0, [r4, #60]	; 0x3c
+  hdma->State = HAL_DMA_STATE_READY;
+ 8008e36:	2301      	movs	r3, #1
+ 8008e38:	f884 3025 	strb.w	r3, [r4, #37]	; 0x25
+  __HAL_UNLOCK(hdma);
+ 8008e3c:	f884 0024 	strb.w	r0, [r4, #36]	; 0x24
+}
+ 8008e40:	bd10      	pop	{r4, pc}
+    hdma->ChannelIndex = (((uint32_t)hdma->Instance - (uint32_t)DMA2_Channel1) / ((uint32_t)DMA2_Channel2 - (uint32_t)DMA2_Channel1)) << 2U;
+ 8008e42:	4b11      	ldr	r3, [pc, #68]	; (8008e88 <HAL_DMA_Init+0xdc>)
+ 8008e44:	4413      	add	r3, r2
+ 8008e46:	490e      	ldr	r1, [pc, #56]	; (8008e80 <HAL_DMA_Init+0xd4>)
+ 8008e48:	fba1 1303 	umull	r1, r3, r1, r3
+ 8008e4c:	091b      	lsrs	r3, r3, #4
+ 8008e4e:	009b      	lsls	r3, r3, #2
+ 8008e50:	6443      	str	r3, [r0, #68]	; 0x44
+    hdma->DmaBaseAddress = DMA2;
+ 8008e52:	4b0e      	ldr	r3, [pc, #56]	; (8008e8c <HAL_DMA_Init+0xe0>)
+ 8008e54:	6403      	str	r3, [r0, #64]	; 0x40
+ 8008e56:	e7bb      	b.n	8008dd0 <HAL_DMA_Init+0x24>
+    hdma->Init.Request = DMA_REQUEST_MEM2MEM;
+ 8008e58:	2300      	movs	r3, #0
+ 8008e5a:	6063      	str	r3, [r4, #4]
+ 8008e5c:	e7d9      	b.n	8008e12 <HAL_DMA_Init+0x66>
+    DMA_CalcDMAMUXRequestGenBaseAndMask(hdma);
+ 8008e5e:	4620      	mov	r0, r4
+ 8008e60:	f7ff ff8e 	bl	8008d80 <DMA_CalcDMAMUXRequestGenBaseAndMask>
+    hdma->DMAmuxRequestGen->RGCR = 0U;
+ 8008e64:	6d63      	ldr	r3, [r4, #84]	; 0x54
+ 8008e66:	2200      	movs	r2, #0
+ 8008e68:	601a      	str	r2, [r3, #0]
+    hdma->DMAmuxRequestGenStatus->RGCFR = hdma->DMAmuxRequestGenStatusMask;
+ 8008e6a:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8008e6c:	6de2      	ldr	r2, [r4, #92]	; 0x5c
+ 8008e6e:	605a      	str	r2, [r3, #4]
+ 8008e70:	e7df      	b.n	8008e32 <HAL_DMA_Init+0x86>
+    return HAL_ERROR;
+ 8008e72:	2001      	movs	r0, #1
+}
+ 8008e74:	4770      	bx	lr
+ 8008e76:	bf00      	nop
+ 8008e78:	40020407 	.word	0x40020407
+ 8008e7c:	bffdfff8 	.word	0xbffdfff8
+ 8008e80:	cccccccd 	.word	0xcccccccd
+ 8008e84:	40020000 	.word	0x40020000
+ 8008e88:	bffdfbf8 	.word	0xbffdfbf8
+ 8008e8c:	40020400 	.word	0x40020400
+
+08008e90 <HAL_DMA_DeInit>:
+  if (NULL == hdma)
+ 8008e90:	2800      	cmp	r0, #0
+ 8008e92:	d04b      	beq.n	8008f2c <HAL_DMA_DeInit+0x9c>
+{
+ 8008e94:	b538      	push	{r3, r4, r5, lr}
+ 8008e96:	4604      	mov	r4, r0
+  __HAL_DMA_DISABLE(hdma);
+ 8008e98:	6802      	ldr	r2, [r0, #0]
+ 8008e9a:	6813      	ldr	r3, [r2, #0]
+ 8008e9c:	f023 0301 	bic.w	r3, r3, #1
+ 8008ea0:	6013      	str	r3, [r2, #0]
+  if ((uint32_t)(hdma->Instance) < (uint32_t)(DMA2_Channel1))
+ 8008ea2:	6802      	ldr	r2, [r0, #0]
+ 8008ea4:	4b22      	ldr	r3, [pc, #136]	; (8008f30 <HAL_DMA_DeInit+0xa0>)
+ 8008ea6:	429a      	cmp	r2, r3
+ 8008ea8:	d82c      	bhi.n	8008f04 <HAL_DMA_DeInit+0x74>
+    hdma->ChannelIndex = (((uint32_t)hdma->Instance - (uint32_t)DMA1_Channel1) / ((uint32_t)DMA1_Channel2 - (uint32_t)DMA1_Channel1)) << 2U;
+ 8008eaa:	4b22      	ldr	r3, [pc, #136]	; (8008f34 <HAL_DMA_DeInit+0xa4>)
+ 8008eac:	4413      	add	r3, r2
+ 8008eae:	4922      	ldr	r1, [pc, #136]	; (8008f38 <HAL_DMA_DeInit+0xa8>)
+ 8008eb0:	fba1 1303 	umull	r1, r3, r1, r3
+ 8008eb4:	091b      	lsrs	r3, r3, #4
+ 8008eb6:	009b      	lsls	r3, r3, #2
+ 8008eb8:	6443      	str	r3, [r0, #68]	; 0x44
+    hdma->DmaBaseAddress = DMA1;
+ 8008eba:	4b20      	ldr	r3, [pc, #128]	; (8008f3c <HAL_DMA_DeInit+0xac>)
+ 8008ebc:	6403      	str	r3, [r0, #64]	; 0x40
+  hdma->Instance->CCR = 0U;
+ 8008ebe:	2500      	movs	r5, #0
+ 8008ec0:	6015      	str	r5, [r2, #0]
+  hdma->DmaBaseAddress->IFCR = (DMA_ISR_GIF1 << (hdma->ChannelIndex & 0x1CU));
+ 8008ec2:	6c63      	ldr	r3, [r4, #68]	; 0x44
+ 8008ec4:	f003 021c 	and.w	r2, r3, #28
+ 8008ec8:	6c21      	ldr	r1, [r4, #64]	; 0x40
+ 8008eca:	2301      	movs	r3, #1
+ 8008ecc:	4093      	lsls	r3, r2
+ 8008ece:	604b      	str	r3, [r1, #4]
+  DMA_CalcDMAMUXChannelBaseAndMask(hdma);
+ 8008ed0:	4620      	mov	r0, r4
+ 8008ed2:	f7ff ff23 	bl	8008d1c <DMA_CalcDMAMUXChannelBaseAndMask>
+  hdma->DMAmuxChannel->CCR = 0U;
+ 8008ed6:	6ca3      	ldr	r3, [r4, #72]	; 0x48
+ 8008ed8:	601d      	str	r5, [r3, #0]
+  hdma->DMAmuxChannelStatus->CFR = hdma->DMAmuxChannelStatusMask;
+ 8008eda:	6ce3      	ldr	r3, [r4, #76]	; 0x4c
+ 8008edc:	6d22      	ldr	r2, [r4, #80]	; 0x50
+ 8008ede:	605a      	str	r2, [r3, #4]
+  if (((hdma->Init.Request >  0UL) && (hdma->Init.Request <= DMA_REQUEST_GENERATOR3)))
+ 8008ee0:	6863      	ldr	r3, [r4, #4]
+ 8008ee2:	3b01      	subs	r3, #1
+ 8008ee4:	2b03      	cmp	r3, #3
+ 8008ee6:	d918      	bls.n	8008f1a <HAL_DMA_DeInit+0x8a>
+  hdma->DMAmuxRequestGen = NULL;
+ 8008ee8:	2000      	movs	r0, #0
+ 8008eea:	6560      	str	r0, [r4, #84]	; 0x54
+  hdma->DMAmuxRequestGenStatus = NULL;
+ 8008eec:	65a0      	str	r0, [r4, #88]	; 0x58
+  hdma->DMAmuxRequestGenStatusMask = 0U;
+ 8008eee:	65e0      	str	r0, [r4, #92]	; 0x5c
+  hdma->XferCpltCallback = NULL;
+ 8008ef0:	62e0      	str	r0, [r4, #44]	; 0x2c
+  hdma->XferHalfCpltCallback = NULL;
+ 8008ef2:	6320      	str	r0, [r4, #48]	; 0x30
+  hdma->XferErrorCallback = NULL;
+ 8008ef4:	6360      	str	r0, [r4, #52]	; 0x34
+  hdma->XferAbortCallback = NULL;
+ 8008ef6:	63a0      	str	r0, [r4, #56]	; 0x38
+  hdma->ErrorCode = HAL_DMA_ERROR_NONE;
+ 8008ef8:	63e0      	str	r0, [r4, #60]	; 0x3c
+  hdma->State = HAL_DMA_STATE_RESET;
+ 8008efa:	f884 0025 	strb.w	r0, [r4, #37]	; 0x25
+  __HAL_UNLOCK(hdma);
+ 8008efe:	f884 0024 	strb.w	r0, [r4, #36]	; 0x24
+}
+ 8008f02:	bd38      	pop	{r3, r4, r5, pc}
+    hdma->ChannelIndex = (((uint32_t)hdma->Instance - (uint32_t)DMA2_Channel1) / ((uint32_t)DMA2_Channel2 - (uint32_t)DMA2_Channel1)) << 2U;
+ 8008f04:	4b0e      	ldr	r3, [pc, #56]	; (8008f40 <HAL_DMA_DeInit+0xb0>)
+ 8008f06:	4413      	add	r3, r2
+ 8008f08:	490b      	ldr	r1, [pc, #44]	; (8008f38 <HAL_DMA_DeInit+0xa8>)
+ 8008f0a:	fba1 1303 	umull	r1, r3, r1, r3
+ 8008f0e:	091b      	lsrs	r3, r3, #4
+ 8008f10:	009b      	lsls	r3, r3, #2
+ 8008f12:	6443      	str	r3, [r0, #68]	; 0x44
+    hdma->DmaBaseAddress = DMA2;
+ 8008f14:	4b0b      	ldr	r3, [pc, #44]	; (8008f44 <HAL_DMA_DeInit+0xb4>)
+ 8008f16:	6403      	str	r3, [r0, #64]	; 0x40
+ 8008f18:	e7d1      	b.n	8008ebe <HAL_DMA_DeInit+0x2e>
+    DMA_CalcDMAMUXRequestGenBaseAndMask(hdma);
+ 8008f1a:	4620      	mov	r0, r4
+ 8008f1c:	f7ff ff30 	bl	8008d80 <DMA_CalcDMAMUXRequestGenBaseAndMask>
+    hdma->DMAmuxRequestGen->RGCR = 0U;
+ 8008f20:	6d63      	ldr	r3, [r4, #84]	; 0x54
+ 8008f22:	601d      	str	r5, [r3, #0]
+    hdma->DMAmuxRequestGenStatus->RGCFR = hdma->DMAmuxRequestGenStatusMask;
+ 8008f24:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8008f26:	6de2      	ldr	r2, [r4, #92]	; 0x5c
+ 8008f28:	605a      	str	r2, [r3, #4]
+ 8008f2a:	e7dd      	b.n	8008ee8 <HAL_DMA_DeInit+0x58>
+    return HAL_ERROR;
+ 8008f2c:	2001      	movs	r0, #1
+}
+ 8008f2e:	4770      	bx	lr
+ 8008f30:	40020407 	.word	0x40020407
+ 8008f34:	bffdfff8 	.word	0xbffdfff8
+ 8008f38:	cccccccd 	.word	0xcccccccd
+ 8008f3c:	40020000 	.word	0x40020000
+ 8008f40:	bffdfbf8 	.word	0xbffdfbf8
+ 8008f44:	40020400 	.word	0x40020400
+
+08008f48 <HAL_DMA_Start_IT>:
+{
+ 8008f48:	b538      	push	{r3, r4, r5, lr}
+ 8008f4a:	4604      	mov	r4, r0
+  __HAL_LOCK(hdma);
+ 8008f4c:	f890 0024 	ldrb.w	r0, [r0, #36]	; 0x24
+ 8008f50:	2801      	cmp	r0, #1
+ 8008f52:	d043      	beq.n	8008fdc <HAL_DMA_Start_IT+0x94>
+ 8008f54:	2001      	movs	r0, #1
+ 8008f56:	f884 0024 	strb.w	r0, [r4, #36]	; 0x24
+  if (hdma->State == HAL_DMA_STATE_READY)
+ 8008f5a:	f894 0025 	ldrb.w	r0, [r4, #37]	; 0x25
+ 8008f5e:	b2c0      	uxtb	r0, r0
+ 8008f60:	2801      	cmp	r0, #1
+ 8008f62:	d006      	beq.n	8008f72 <HAL_DMA_Start_IT+0x2a>
+    hdma->ErrorCode = HAL_DMA_ERROR_BUSY;
+ 8008f64:	2380      	movs	r3, #128	; 0x80
+ 8008f66:	63e3      	str	r3, [r4, #60]	; 0x3c
+    __HAL_UNLOCK(hdma);
+ 8008f68:	2300      	movs	r3, #0
+ 8008f6a:	f884 3024 	strb.w	r3, [r4, #36]	; 0x24
+    status = HAL_ERROR;
+ 8008f6e:	2001      	movs	r0, #1
+}
+ 8008f70:	bd38      	pop	{r3, r4, r5, pc}
+    hdma->State = HAL_DMA_STATE_BUSY;
+ 8008f72:	2002      	movs	r0, #2
+ 8008f74:	f884 0025 	strb.w	r0, [r4, #37]	; 0x25
+    hdma->ErrorCode = HAL_DMA_ERROR_NONE;
+ 8008f78:	2000      	movs	r0, #0
+ 8008f7a:	63e0      	str	r0, [r4, #60]	; 0x3c
+    __HAL_DMA_DISABLE(hdma);
+ 8008f7c:	6825      	ldr	r5, [r4, #0]
+ 8008f7e:	6828      	ldr	r0, [r5, #0]
+ 8008f80:	f020 0001 	bic.w	r0, r0, #1
+ 8008f84:	6028      	str	r0, [r5, #0]
+    DMA_SetConfig(hdma, SrcAddress, DstAddress, DataLength);
+ 8008f86:	4620      	mov	r0, r4
+ 8008f88:	f7ff fea0 	bl	8008ccc <DMA_SetConfig>
+    if (NULL != hdma->XferHalfCpltCallback)
+ 8008f8c:	6b23      	ldr	r3, [r4, #48]	; 0x30
+ 8008f8e:	b1d3      	cbz	r3, 8008fc6 <HAL_DMA_Start_IT+0x7e>
+      __HAL_DMA_ENABLE_IT(hdma, (DMA_IT_TC | DMA_IT_HT | DMA_IT_TE));
+ 8008f90:	6822      	ldr	r2, [r4, #0]
+ 8008f92:	6813      	ldr	r3, [r2, #0]
+ 8008f94:	f043 030e 	orr.w	r3, r3, #14
+ 8008f98:	6013      	str	r3, [r2, #0]
+    if ((hdma->DMAmuxChannel->CCR & DMAMUX_CxCR_SE) != 0U)
+ 8008f9a:	6ca3      	ldr	r3, [r4, #72]	; 0x48
+ 8008f9c:	681a      	ldr	r2, [r3, #0]
+ 8008f9e:	f412 3f80 	tst.w	r2, #65536	; 0x10000
+ 8008fa2:	d003      	beq.n	8008fac <HAL_DMA_Start_IT+0x64>
+      hdma->DMAmuxChannel->CCR |= DMAMUX_CxCR_SOIE;
+ 8008fa4:	681a      	ldr	r2, [r3, #0]
+ 8008fa6:	f442 7280 	orr.w	r2, r2, #256	; 0x100
+ 8008faa:	601a      	str	r2, [r3, #0]
+    if (hdma->DMAmuxRequestGen != NULL)
+ 8008fac:	6d63      	ldr	r3, [r4, #84]	; 0x54
+ 8008fae:	b11b      	cbz	r3, 8008fb8 <HAL_DMA_Start_IT+0x70>
+      hdma->DMAmuxRequestGen->RGCR |= DMAMUX_RGxCR_OIE;
+ 8008fb0:	681a      	ldr	r2, [r3, #0]
+ 8008fb2:	f442 7280 	orr.w	r2, r2, #256	; 0x100
+ 8008fb6:	601a      	str	r2, [r3, #0]
+    __HAL_DMA_ENABLE(hdma);
+ 8008fb8:	6822      	ldr	r2, [r4, #0]
+ 8008fba:	6813      	ldr	r3, [r2, #0]
+ 8008fbc:	f043 0301 	orr.w	r3, r3, #1
+ 8008fc0:	6013      	str	r3, [r2, #0]
+  HAL_StatusTypeDef status = HAL_OK;
+ 8008fc2:	2000      	movs	r0, #0
+ 8008fc4:	e7d4      	b.n	8008f70 <HAL_DMA_Start_IT+0x28>
+      __HAL_DMA_DISABLE_IT(hdma, DMA_IT_HT);
+ 8008fc6:	6822      	ldr	r2, [r4, #0]
+ 8008fc8:	6813      	ldr	r3, [r2, #0]
+ 8008fca:	f023 0304 	bic.w	r3, r3, #4
+ 8008fce:	6013      	str	r3, [r2, #0]
+      __HAL_DMA_ENABLE_IT(hdma, (DMA_IT_TC | DMA_IT_TE));
+ 8008fd0:	6822      	ldr	r2, [r4, #0]
+ 8008fd2:	6813      	ldr	r3, [r2, #0]
+ 8008fd4:	f043 030a 	orr.w	r3, r3, #10
+ 8008fd8:	6013      	str	r3, [r2, #0]
+ 8008fda:	e7de      	b.n	8008f9a <HAL_DMA_Start_IT+0x52>
+  __HAL_LOCK(hdma);
+ 8008fdc:	2002      	movs	r0, #2
+ 8008fde:	e7c7      	b.n	8008f70 <HAL_DMA_Start_IT+0x28>
+
+08008fe0 <HAL_DMA_Abort>:
+  if (NULL == hdma)
+ 8008fe0:	4603      	mov	r3, r0
+ 8008fe2:	2800      	cmp	r0, #0
+ 8008fe4:	d034      	beq.n	8009050 <HAL_DMA_Abort+0x70>
+  if (hdma->State != HAL_DMA_STATE_BUSY)
+ 8008fe6:	f890 2025 	ldrb.w	r2, [r0, #37]	; 0x25
+ 8008fea:	b2d2      	uxtb	r2, r2
+ 8008fec:	2a02      	cmp	r2, #2
+ 8008fee:	d006      	beq.n	8008ffe <HAL_DMA_Abort+0x1e>
+    hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER;
+ 8008ff0:	2204      	movs	r2, #4
+ 8008ff2:	63c2      	str	r2, [r0, #60]	; 0x3c
+    __HAL_UNLOCK(hdma);
+ 8008ff4:	2200      	movs	r2, #0
+ 8008ff6:	f880 2024 	strb.w	r2, [r0, #36]	; 0x24
+    return HAL_ERROR;
+ 8008ffa:	2001      	movs	r0, #1
+ 8008ffc:	4770      	bx	lr
+    __HAL_DMA_DISABLE_IT(hdma, (DMA_IT_TC | DMA_IT_HT | DMA_IT_TE));
+ 8008ffe:	6801      	ldr	r1, [r0, #0]
+ 8009000:	680a      	ldr	r2, [r1, #0]
+ 8009002:	f022 020e 	bic.w	r2, r2, #14
+ 8009006:	600a      	str	r2, [r1, #0]
+    hdma->DMAmuxChannel->CCR &= ~DMAMUX_CxCR_SOIE;
+ 8009008:	6c81      	ldr	r1, [r0, #72]	; 0x48
+ 800900a:	680a      	ldr	r2, [r1, #0]
+ 800900c:	f422 7280 	bic.w	r2, r2, #256	; 0x100
+ 8009010:	600a      	str	r2, [r1, #0]
+    __HAL_DMA_DISABLE(hdma);
+ 8009012:	6801      	ldr	r1, [r0, #0]
+ 8009014:	680a      	ldr	r2, [r1, #0]
+ 8009016:	f022 0201 	bic.w	r2, r2, #1
+ 800901a:	600a      	str	r2, [r1, #0]
+    hdma->DmaBaseAddress->IFCR = (DMA_ISR_GIF1 << (hdma->ChannelIndex & 0x1CU));
+ 800901c:	6c42      	ldr	r2, [r0, #68]	; 0x44
+ 800901e:	f002 011c 	and.w	r1, r2, #28
+ 8009022:	6c00      	ldr	r0, [r0, #64]	; 0x40
+ 8009024:	2201      	movs	r2, #1
+ 8009026:	408a      	lsls	r2, r1
+ 8009028:	6042      	str	r2, [r0, #4]
+    hdma->DMAmuxChannelStatus->CFR = hdma->DMAmuxChannelStatusMask;
+ 800902a:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 800902c:	6d19      	ldr	r1, [r3, #80]	; 0x50
+ 800902e:	6051      	str	r1, [r2, #4]
+    if (hdma->DMAmuxRequestGen != NULL)
+ 8009030:	6d5a      	ldr	r2, [r3, #84]	; 0x54
+ 8009032:	b132      	cbz	r2, 8009042 <HAL_DMA_Abort+0x62>
+      hdma->DMAmuxRequestGen->RGCR &= ~DMAMUX_RGxCR_OIE;
+ 8009034:	6811      	ldr	r1, [r2, #0]
+ 8009036:	f421 7180 	bic.w	r1, r1, #256	; 0x100
+ 800903a:	6011      	str	r1, [r2, #0]
+      hdma->DMAmuxRequestGenStatus->RGCFR = hdma->DMAmuxRequestGenStatusMask;
+ 800903c:	6d9a      	ldr	r2, [r3, #88]	; 0x58
+ 800903e:	6dd9      	ldr	r1, [r3, #92]	; 0x5c
+ 8009040:	6051      	str	r1, [r2, #4]
+    hdma->State = HAL_DMA_STATE_READY;
+ 8009042:	2201      	movs	r2, #1
+ 8009044:	f883 2025 	strb.w	r2, [r3, #37]	; 0x25
+    __HAL_UNLOCK(hdma);
+ 8009048:	2000      	movs	r0, #0
+ 800904a:	f883 0024 	strb.w	r0, [r3, #36]	; 0x24
+  return HAL_OK;
+ 800904e:	4770      	bx	lr
+    return HAL_ERROR;
+ 8009050:	2001      	movs	r0, #1
+}
+ 8009052:	4770      	bx	lr
+
+08009054 <HAL_DMA_Abort_IT>:
+{
+ 8009054:	b508      	push	{r3, lr}
+  if (hdma->State != HAL_DMA_STATE_BUSY)
+ 8009056:	f890 3025 	ldrb.w	r3, [r0, #37]	; 0x25
+ 800905a:	b2db      	uxtb	r3, r3
+ 800905c:	2b02      	cmp	r3, #2
+ 800905e:	d003      	beq.n	8009068 <HAL_DMA_Abort_IT+0x14>
+    hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER;
+ 8009060:	2304      	movs	r3, #4
+ 8009062:	63c3      	str	r3, [r0, #60]	; 0x3c
+    status = HAL_ERROR;
+ 8009064:	2001      	movs	r0, #1
+}
+ 8009066:	bd08      	pop	{r3, pc}
+    __HAL_DMA_DISABLE_IT(hdma, (DMA_IT_TC | DMA_IT_HT | DMA_IT_TE));
+ 8009068:	6802      	ldr	r2, [r0, #0]
+ 800906a:	6813      	ldr	r3, [r2, #0]
+ 800906c:	f023 030e 	bic.w	r3, r3, #14
+ 8009070:	6013      	str	r3, [r2, #0]
+    __HAL_DMA_DISABLE(hdma);
+ 8009072:	6802      	ldr	r2, [r0, #0]
+ 8009074:	6813      	ldr	r3, [r2, #0]
+ 8009076:	f023 0301 	bic.w	r3, r3, #1
+ 800907a:	6013      	str	r3, [r2, #0]
+    hdma->DMAmuxChannel->CCR &= ~DMAMUX_CxCR_SOIE;
+ 800907c:	6c82      	ldr	r2, [r0, #72]	; 0x48
+ 800907e:	6813      	ldr	r3, [r2, #0]
+ 8009080:	f423 7380 	bic.w	r3, r3, #256	; 0x100
+ 8009084:	6013      	str	r3, [r2, #0]
+    hdma->DmaBaseAddress->IFCR = (DMA_ISR_GIF1 << (hdma->ChannelIndex & 0x1CU));
+ 8009086:	6c43      	ldr	r3, [r0, #68]	; 0x44
+ 8009088:	f003 021c 	and.w	r2, r3, #28
+ 800908c:	6c01      	ldr	r1, [r0, #64]	; 0x40
+ 800908e:	2301      	movs	r3, #1
+ 8009090:	4093      	lsls	r3, r2
+ 8009092:	604b      	str	r3, [r1, #4]
+    hdma->DMAmuxChannelStatus->CFR = hdma->DMAmuxChannelStatusMask;
+ 8009094:	6cc3      	ldr	r3, [r0, #76]	; 0x4c
+ 8009096:	6d02      	ldr	r2, [r0, #80]	; 0x50
+ 8009098:	605a      	str	r2, [r3, #4]
+    if (hdma->DMAmuxRequestGen != NULL)
+ 800909a:	6d43      	ldr	r3, [r0, #84]	; 0x54
+ 800909c:	b133      	cbz	r3, 80090ac <HAL_DMA_Abort_IT+0x58>
+      hdma->DMAmuxRequestGen->RGCR &= ~DMAMUX_RGxCR_OIE;
+ 800909e:	681a      	ldr	r2, [r3, #0]
+ 80090a0:	f422 7280 	bic.w	r2, r2, #256	; 0x100
+ 80090a4:	601a      	str	r2, [r3, #0]
+      hdma->DMAmuxRequestGenStatus->RGCFR = hdma->DMAmuxRequestGenStatusMask;
+ 80090a6:	6d83      	ldr	r3, [r0, #88]	; 0x58
+ 80090a8:	6dc2      	ldr	r2, [r0, #92]	; 0x5c
+ 80090aa:	605a      	str	r2, [r3, #4]
+    hdma->State = HAL_DMA_STATE_READY;
+ 80090ac:	2301      	movs	r3, #1
+ 80090ae:	f880 3025 	strb.w	r3, [r0, #37]	; 0x25
+    __HAL_UNLOCK(hdma);
+ 80090b2:	2300      	movs	r3, #0
+ 80090b4:	f880 3024 	strb.w	r3, [r0, #36]	; 0x24
+    if (hdma->XferAbortCallback != NULL)
+ 80090b8:	6b83      	ldr	r3, [r0, #56]	; 0x38
+ 80090ba:	b113      	cbz	r3, 80090c2 <HAL_DMA_Abort_IT+0x6e>
+      hdma->XferAbortCallback(hdma);
+ 80090bc:	4798      	blx	r3
+  HAL_StatusTypeDef status = HAL_OK;
+ 80090be:	2000      	movs	r0, #0
+ 80090c0:	e7d1      	b.n	8009066 <HAL_DMA_Abort_IT+0x12>
+ 80090c2:	2000      	movs	r0, #0
+ 80090c4:	e7cf      	b.n	8009066 <HAL_DMA_Abort_IT+0x12>
+	...
+
+080090c8 <HAL_DMA_IRQHandler>:
+{
+ 80090c8:	b538      	push	{r3, r4, r5, lr}
+  uint32_t flag_it = hdma->DmaBaseAddress->ISR;
+ 80090ca:	6c03      	ldr	r3, [r0, #64]	; 0x40
+ 80090cc:	6819      	ldr	r1, [r3, #0]
+  uint32_t source_it = hdma->Instance->CCR;
+ 80090ce:	6804      	ldr	r4, [r0, #0]
+ 80090d0:	6825      	ldr	r5, [r4, #0]
+  if (((flag_it & (DMA_FLAG_HT1 << (hdma->ChannelIndex & 0x1CU))) != 0U) && ((source_it & DMA_IT_HT) != 0U))
+ 80090d2:	6c43      	ldr	r3, [r0, #68]	; 0x44
+ 80090d4:	f003 031c 	and.w	r3, r3, #28
+ 80090d8:	2204      	movs	r2, #4
+ 80090da:	409a      	lsls	r2, r3
+ 80090dc:	420a      	tst	r2, r1
+ 80090de:	d015      	beq.n	800910c <HAL_DMA_IRQHandler+0x44>
+ 80090e0:	f015 0f04 	tst.w	r5, #4
+ 80090e4:	d012      	beq.n	800910c <HAL_DMA_IRQHandler+0x44>
+      if ((hdma->Instance->CCR & DMA_CCR_CIRC) == 0U)
+ 80090e6:	6823      	ldr	r3, [r4, #0]
+ 80090e8:	f013 0f20 	tst.w	r3, #32
+ 80090ec:	d103      	bne.n	80090f6 <HAL_DMA_IRQHandler+0x2e>
+        __HAL_DMA_DISABLE_IT(hdma, DMA_IT_HT);
+ 80090ee:	6823      	ldr	r3, [r4, #0]
+ 80090f0:	f023 0304 	bic.w	r3, r3, #4
+ 80090f4:	6023      	str	r3, [r4, #0]
+      hdma->DmaBaseAddress->IFCR = DMA_ISR_HTIF1 << (hdma->ChannelIndex & 0x1CU);
+ 80090f6:	6c43      	ldr	r3, [r0, #68]	; 0x44
+ 80090f8:	f003 021c 	and.w	r2, r3, #28
+ 80090fc:	6c01      	ldr	r1, [r0, #64]	; 0x40
+ 80090fe:	2304      	movs	r3, #4
+ 8009100:	4093      	lsls	r3, r2
+ 8009102:	604b      	str	r3, [r1, #4]
+      if (hdma->XferHalfCpltCallback != NULL)
+ 8009104:	6b03      	ldr	r3, [r0, #48]	; 0x30
+ 8009106:	b103      	cbz	r3, 800910a <HAL_DMA_IRQHandler+0x42>
+        hdma->XferHalfCpltCallback(hdma);
+ 8009108:	4798      	blx	r3
+}
+ 800910a:	bd38      	pop	{r3, r4, r5, pc}
+  else if ((0U != (flag_it & (DMA_FLAG_TC1 << (hdma->ChannelIndex & 0x1CU)))) && (0U != (source_it & DMA_IT_TC)))
+ 800910c:	2202      	movs	r2, #2
+ 800910e:	409a      	lsls	r2, r3
+ 8009110:	420a      	tst	r2, r1
+ 8009112:	d028      	beq.n	8009166 <HAL_DMA_IRQHandler+0x9e>
+ 8009114:	f015 0f02 	tst.w	r5, #2
+ 8009118:	d025      	beq.n	8009166 <HAL_DMA_IRQHandler+0x9e>
+      if ((hdma->Instance->CCR & DMA_CCR_CIRC) == 0U)
+ 800911a:	6823      	ldr	r3, [r4, #0]
+ 800911c:	f013 0f20 	tst.w	r3, #32
+ 8009120:	d106      	bne.n	8009130 <HAL_DMA_IRQHandler+0x68>
+        __HAL_DMA_DISABLE_IT(hdma, DMA_IT_TE | DMA_IT_TC);
+ 8009122:	6823      	ldr	r3, [r4, #0]
+ 8009124:	f023 030a 	bic.w	r3, r3, #10
+ 8009128:	6023      	str	r3, [r4, #0]
+        hdma->State = HAL_DMA_STATE_READY;
+ 800912a:	2301      	movs	r3, #1
+ 800912c:	f880 3025 	strb.w	r3, [r0, #37]	; 0x25
+      __HAL_DMA_CLEAR_FLAG(hdma, (DMA_FLAG_TC1 << (hdma->ChannelIndex & 0x1CU)));
+ 8009130:	6802      	ldr	r2, [r0, #0]
+ 8009132:	4b1c      	ldr	r3, [pc, #112]	; (80091a4 <HAL_DMA_IRQHandler+0xdc>)
+ 8009134:	429a      	cmp	r2, r3
+ 8009136:	d90e      	bls.n	8009156 <HAL_DMA_IRQHandler+0x8e>
+ 8009138:	6c43      	ldr	r3, [r0, #68]	; 0x44
+ 800913a:	f003 021c 	and.w	r2, r3, #28
+ 800913e:	2302      	movs	r3, #2
+ 8009140:	4093      	lsls	r3, r2
+ 8009142:	4a19      	ldr	r2, [pc, #100]	; (80091a8 <HAL_DMA_IRQHandler+0xe0>)
+ 8009144:	6053      	str	r3, [r2, #4]
+      __HAL_UNLOCK(hdma);
+ 8009146:	2300      	movs	r3, #0
+ 8009148:	f880 3024 	strb.w	r3, [r0, #36]	; 0x24
+      if (hdma->XferCpltCallback != NULL)
+ 800914c:	6ac3      	ldr	r3, [r0, #44]	; 0x2c
+ 800914e:	2b00      	cmp	r3, #0
+ 8009150:	d0db      	beq.n	800910a <HAL_DMA_IRQHandler+0x42>
+        hdma->XferCpltCallback(hdma);
+ 8009152:	4798      	blx	r3
+ 8009154:	e7d9      	b.n	800910a <HAL_DMA_IRQHandler+0x42>
+      __HAL_DMA_CLEAR_FLAG(hdma, (DMA_FLAG_TC1 << (hdma->ChannelIndex & 0x1CU)));
+ 8009156:	6c43      	ldr	r3, [r0, #68]	; 0x44
+ 8009158:	f003 021c 	and.w	r2, r3, #28
+ 800915c:	2302      	movs	r3, #2
+ 800915e:	4093      	lsls	r3, r2
+ 8009160:	4a12      	ldr	r2, [pc, #72]	; (80091ac <HAL_DMA_IRQHandler+0xe4>)
+ 8009162:	6053      	str	r3, [r2, #4]
+ 8009164:	e7ef      	b.n	8009146 <HAL_DMA_IRQHandler+0x7e>
+  else if (((flag_it & (DMA_FLAG_TE1 << (hdma->ChannelIndex & 0x1CU))) != 0U) && ((source_it & DMA_IT_TE) != 0U))
+ 8009166:	2208      	movs	r2, #8
+ 8009168:	fa02 f303 	lsl.w	r3, r2, r3
+ 800916c:	420b      	tst	r3, r1
+ 800916e:	d0cc      	beq.n	800910a <HAL_DMA_IRQHandler+0x42>
+ 8009170:	f015 0f08 	tst.w	r5, #8
+ 8009174:	d0c9      	beq.n	800910a <HAL_DMA_IRQHandler+0x42>
+    __HAL_DMA_DISABLE_IT(hdma, (DMA_IT_TC | DMA_IT_HT | DMA_IT_TE));
+ 8009176:	6823      	ldr	r3, [r4, #0]
+ 8009178:	f023 030e 	bic.w	r3, r3, #14
+ 800917c:	6023      	str	r3, [r4, #0]
+    hdma->DmaBaseAddress->IFCR = (DMA_ISR_GIF1 << (hdma->ChannelIndex & 0x1CU));
+ 800917e:	6c43      	ldr	r3, [r0, #68]	; 0x44
+ 8009180:	f003 031c 	and.w	r3, r3, #28
+ 8009184:	6c01      	ldr	r1, [r0, #64]	; 0x40
+ 8009186:	2201      	movs	r2, #1
+ 8009188:	fa02 f303 	lsl.w	r3, r2, r3
+ 800918c:	604b      	str	r3, [r1, #4]
+    hdma->ErrorCode = HAL_DMA_ERROR_TE;
+ 800918e:	63c2      	str	r2, [r0, #60]	; 0x3c
+    hdma->State = HAL_DMA_STATE_READY;
+ 8009190:	f880 2025 	strb.w	r2, [r0, #37]	; 0x25
+    __HAL_UNLOCK(hdma);
+ 8009194:	2300      	movs	r3, #0
+ 8009196:	f880 3024 	strb.w	r3, [r0, #36]	; 0x24
+    if (hdma->XferErrorCallback != NULL)
+ 800919a:	6b43      	ldr	r3, [r0, #52]	; 0x34
+ 800919c:	2b00      	cmp	r3, #0
+ 800919e:	d0b4      	beq.n	800910a <HAL_DMA_IRQHandler+0x42>
+      hdma->XferErrorCallback(hdma);
+ 80091a0:	4798      	blx	r3
+  return;
+ 80091a2:	e7b2      	b.n	800910a <HAL_DMA_IRQHandler+0x42>
+ 80091a4:	40020080 	.word	0x40020080
+ 80091a8:	40020400 	.word	0x40020400
+ 80091ac:	40020000 	.word	0x40020000
+
+080091b0 <FLASH_Program_DoubleWord>:
+  * @param  Address Specifies the address to be programmed.
+  * @param  Data Specifies the data to be programmed.
+  * @retval None
+  */
+static void FLASH_Program_DoubleWord(uint32_t Address, uint64_t Data)
+{
+ 80091b0:	b410      	push	{r4}
+#ifdef CORE_CM0PLUS
+  /* Set PG bit */
+  SET_BIT(FLASH->C2CR, FLASH_CR_PG);
+#else
+  /* Set PG bit */
+  SET_BIT(FLASH->CR, FLASH_CR_PG);
+ 80091b2:	4c05      	ldr	r4, [pc, #20]	; (80091c8 <FLASH_Program_DoubleWord+0x18>)
+ 80091b4:	6961      	ldr	r1, [r4, #20]
+ 80091b6:	f041 0101 	orr.w	r1, r1, #1
+ 80091ba:	6161      	str	r1, [r4, #20]
+#endif
+
+  /* Program first word */
+  *(uint32_t *)Address = (uint32_t)Data;
+ 80091bc:	6002      	str	r2, [r0, #0]
+ 80091be:	f3bf 8f6f 	isb	sy
+  /* Barrier to ensure programming is performed in 2 steps, in right order
+    (independently of compiler optimization behavior) */
+  __ISB();
+
+  /* Program second word */
+  *(uint32_t *)(Address + 4U) = (uint32_t)(Data >> 32U);
+ 80091c2:	6043      	str	r3, [r0, #4]
+}
+ 80091c4:	bc10      	pop	{r4}
+ 80091c6:	4770      	bx	lr
+ 80091c8:	58004000 	.word	0x58004000
+
+080091cc <FLASH_Program_Fast>:
+
+  /* Set FSTPG bit */
+#ifdef CORE_CM0PLUS
+  SET_BIT(FLASH->C2CR, FLASH_CR_FSTPG);
+#else
+  SET_BIT(FLASH->CR, FLASH_CR_FSTPG);
+ 80091cc:	4a0c      	ldr	r2, [pc, #48]	; (8009200 <FLASH_Program_Fast+0x34>)
+ 80091ce:	6953      	ldr	r3, [r2, #20]
+ 80091d0:	f443 2380 	orr.w	r3, r3, #262144	; 0x40000
+ 80091d4:	6153      	str	r3, [r2, #20]
+  __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
+ 80091d6:	f3ef 8c10 	mrs	ip, PRIMASK
+  __ASM volatile ("cpsid i" : : : "memory");
+ 80091da:	b672      	cpsid	i
+  uint8_t row_index = (2 * FLASH_NB_DOUBLE_WORDS_IN_ROW);
+ 80091dc:	2340      	movs	r3, #64	; 0x40
+  __disable_irq();
+
+  /* Program the double word of the row */
+  do
+  {
+    *dest_addr = *src_addr;
+ 80091de:	f851 2b04 	ldr.w	r2, [r1], #4
+ 80091e2:	f840 2b04 	str.w	r2, [r0], #4
+    dest_addr++;
+    src_addr++;
+    row_index--;
+ 80091e6:	3b01      	subs	r3, #1
+  }
+  while (row_index != 0U);
+ 80091e8:	f013 03ff 	ands.w	r3, r3, #255	; 0xff
+ 80091ec:	d1f7      	bne.n	80091de <FLASH_Program_Fast+0x12>
+
+  /* wait for BSY in order to be sure that flash operation is ended before
+     allowing prefetch in flash. Timeout does not return status, as it will
+     be anyway done later */
+  while (__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY) != 0U)
+ 80091ee:	4b04      	ldr	r3, [pc, #16]	; (8009200 <FLASH_Program_Fast+0x34>)
+ 80091f0:	691b      	ldr	r3, [r3, #16]
+ 80091f2:	f413 3f80 	tst.w	r3, #65536	; 0x10000
+ 80091f6:	d1fa      	bne.n	80091ee <FLASH_Program_Fast+0x22>
+  __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
+ 80091f8:	f38c 8810 	msr	PRIMASK, ip
+  {
+  }
+
+  /* Exit critical section: restore previous priority mask */
+  __set_PRIMASK(primask_bit);
+}
+ 80091fc:	4770      	bx	lr
+ 80091fe:	bf00      	nop
+ 8009200:	58004000 	.word	0x58004000
+
+08009204 <HAL_FLASH_Unlock>:
+  if (READ_BIT(FLASH->CR, FLASH_CR_LOCK) != 0U)
+ 8009204:	4b09      	ldr	r3, [pc, #36]	; (800922c <HAL_FLASH_Unlock+0x28>)
+ 8009206:	695b      	ldr	r3, [r3, #20]
+ 8009208:	2b00      	cmp	r3, #0
+ 800920a:	db01      	blt.n	8009210 <HAL_FLASH_Unlock+0xc>
+  HAL_StatusTypeDef status = HAL_OK;
+ 800920c:	2000      	movs	r0, #0
+ 800920e:	4770      	bx	lr
+    WRITE_REG(FLASH->KEYR, FLASH_KEY1);
+ 8009210:	4b06      	ldr	r3, [pc, #24]	; (800922c <HAL_FLASH_Unlock+0x28>)
+ 8009212:	4a07      	ldr	r2, [pc, #28]	; (8009230 <HAL_FLASH_Unlock+0x2c>)
+ 8009214:	609a      	str	r2, [r3, #8]
+    WRITE_REG(FLASH->KEYR, FLASH_KEY2);
+ 8009216:	f102 3288 	add.w	r2, r2, #2290649224	; 0x88888888
+ 800921a:	609a      	str	r2, [r3, #8]
+    if (READ_BIT(FLASH->CR, FLASH_CR_LOCK) != 0U)
+ 800921c:	695b      	ldr	r3, [r3, #20]
+ 800921e:	2b00      	cmp	r3, #0
+ 8009220:	db01      	blt.n	8009226 <HAL_FLASH_Unlock+0x22>
+  HAL_StatusTypeDef status = HAL_OK;
+ 8009222:	2000      	movs	r0, #0
+ 8009224:	4770      	bx	lr
+      status = HAL_ERROR;
+ 8009226:	2001      	movs	r0, #1
+}
+ 8009228:	4770      	bx	lr
+ 800922a:	bf00      	nop
+ 800922c:	58004000 	.word	0x58004000
+ 8009230:	45670123 	.word	0x45670123
+
+08009234 <HAL_FLASH_Lock>:
+  SET_BIT(FLASH->CR, FLASH_CR_LOCK);
+ 8009234:	4b05      	ldr	r3, [pc, #20]	; (800924c <HAL_FLASH_Lock+0x18>)
+ 8009236:	695a      	ldr	r2, [r3, #20]
+ 8009238:	f042 4200 	orr.w	r2, r2, #2147483648	; 0x80000000
+ 800923c:	615a      	str	r2, [r3, #20]
+  if (READ_BIT(FLASH->CR, FLASH_CR_LOCK) == 0U)
+ 800923e:	695b      	ldr	r3, [r3, #20]
+ 8009240:	2b00      	cmp	r3, #0
+ 8009242:	db01      	blt.n	8009248 <HAL_FLASH_Lock+0x14>
+    status = HAL_ERROR;
+ 8009244:	2001      	movs	r0, #1
+}
+ 8009246:	4770      	bx	lr
+  HAL_StatusTypeDef status = HAL_OK;
+ 8009248:	2000      	movs	r0, #0
+ 800924a:	4770      	bx	lr
+ 800924c:	58004000 	.word	0x58004000
+
+08009250 <FLASH_WaitForLastOperation>:
+{
+ 8009250:	b538      	push	{r3, r4, r5, lr}
+ 8009252:	4605      	mov	r5, r0
+  uint32_t tickstart = HAL_GetTick();
+ 8009254:	f7f9 fd20 	bl	8002c98 <HAL_GetTick>
+ 8009258:	4604      	mov	r4, r0
+  while (__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY))
+ 800925a:	4b16      	ldr	r3, [pc, #88]	; (80092b4 <FLASH_WaitForLastOperation+0x64>)
+ 800925c:	691b      	ldr	r3, [r3, #16]
+ 800925e:	f413 3f80 	tst.w	r3, #65536	; 0x10000
+ 8009262:	d006      	beq.n	8009272 <FLASH_WaitForLastOperation+0x22>
+    if ((HAL_GetTick() - tickstart) >= Timeout)
+ 8009264:	f7f9 fd18 	bl	8002c98 <HAL_GetTick>
+ 8009268:	1b00      	subs	r0, r0, r4
+ 800926a:	42a8      	cmp	r0, r5
+ 800926c:	d3f5      	bcc.n	800925a <FLASH_WaitForLastOperation+0xa>
+      return HAL_TIMEOUT;
+ 800926e:	2003      	movs	r0, #3
+}
+ 8009270:	bd38      	pop	{r3, r4, r5, pc}
+  error = FLASH->SR;
+ 8009272:	4b10      	ldr	r3, [pc, #64]	; (80092b4 <FLASH_WaitForLastOperation+0x64>)
+ 8009274:	691b      	ldr	r3, [r3, #16]
+  if ((error & FLASH_FLAG_EOP) != 0U)
+ 8009276:	f013 0f01 	tst.w	r3, #1
+ 800927a:	d002      	beq.n	8009282 <FLASH_WaitForLastOperation+0x32>
+    __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
+ 800927c:	4a0d      	ldr	r2, [pc, #52]	; (80092b4 <FLASH_WaitForLastOperation+0x64>)
+ 800927e:	2101      	movs	r1, #1
+ 8009280:	6111      	str	r1, [r2, #16]
+  error &= FLASH_FLAG_SR_ERRORS;
+ 8009282:	f24c 32fa 	movw	r2, #50170	; 0xc3fa
+  __HAL_FLASH_CLEAR_FLAG(error);
+ 8009286:	4013      	ands	r3, r2
+ 8009288:	d001      	beq.n	800928e <FLASH_WaitForLastOperation+0x3e>
+ 800928a:	4a0a      	ldr	r2, [pc, #40]	; (80092b4 <FLASH_WaitForLastOperation+0x64>)
+ 800928c:	6113      	str	r3, [r2, #16]
+  if (error != 0U)
+ 800928e:	b95b      	cbnz	r3, 80092a8 <FLASH_WaitForLastOperation+0x58>
+  while (__HAL_FLASH_GET_FLAG(FLASH_FLAG_CFGBSY))
+ 8009290:	4b08      	ldr	r3, [pc, #32]	; (80092b4 <FLASH_WaitForLastOperation+0x64>)
+ 8009292:	691b      	ldr	r3, [r3, #16]
+ 8009294:	f413 2f80 	tst.w	r3, #262144	; 0x40000
+ 8009298:	d00a      	beq.n	80092b0 <FLASH_WaitForLastOperation+0x60>
+    if ((HAL_GetTick() - tickstart) >= Timeout)
+ 800929a:	f7f9 fcfd 	bl	8002c98 <HAL_GetTick>
+ 800929e:	1b00      	subs	r0, r0, r4
+ 80092a0:	42a8      	cmp	r0, r5
+ 80092a2:	d3f5      	bcc.n	8009290 <FLASH_WaitForLastOperation+0x40>
+      return HAL_TIMEOUT;
+ 80092a4:	2003      	movs	r0, #3
+ 80092a6:	e7e3      	b.n	8009270 <FLASH_WaitForLastOperation+0x20>
+    pFlash.ErrorCode = error;
+ 80092a8:	4a03      	ldr	r2, [pc, #12]	; (80092b8 <FLASH_WaitForLastOperation+0x68>)
+ 80092aa:	6053      	str	r3, [r2, #4]
+    return HAL_ERROR;
+ 80092ac:	2001      	movs	r0, #1
+ 80092ae:	e7df      	b.n	8009270 <FLASH_WaitForLastOperation+0x20>
+  return HAL_OK;
+ 80092b0:	2000      	movs	r0, #0
+ 80092b2:	e7dd      	b.n	8009270 <FLASH_WaitForLastOperation+0x20>
+ 80092b4:	58004000 	.word	0x58004000
+ 80092b8:	20000f4c 	.word	0x20000f4c
+
+080092bc <HAL_FLASH_Program>:
+{
+ 80092bc:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 80092be:	461f      	mov	r7, r3
+  __HAL_LOCK(&pFlash);
+ 80092c0:	4b15      	ldr	r3, [pc, #84]	; (8009318 <HAL_FLASH_Program+0x5c>)
+ 80092c2:	781b      	ldrb	r3, [r3, #0]
+ 80092c4:	2b01      	cmp	r3, #1
+ 80092c6:	d025      	beq.n	8009314 <HAL_FLASH_Program+0x58>
+ 80092c8:	4604      	mov	r4, r0
+ 80092ca:	460d      	mov	r5, r1
+ 80092cc:	4616      	mov	r6, r2
+ 80092ce:	4b12      	ldr	r3, [pc, #72]	; (8009318 <HAL_FLASH_Program+0x5c>)
+ 80092d0:	2201      	movs	r2, #1
+ 80092d2:	701a      	strb	r2, [r3, #0]
+  pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
+ 80092d4:	2200      	movs	r2, #0
+ 80092d6:	605a      	str	r2, [r3, #4]
+  status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
+ 80092d8:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
+ 80092dc:	f7ff ffb8 	bl	8009250 <FLASH_WaitForLastOperation>
+  if (status == HAL_OK)
+ 80092e0:	b970      	cbnz	r0, 8009300 <HAL_FLASH_Program+0x44>
+    if (TypeProgram == FLASH_TYPEPROGRAM_DOUBLEWORD)
+ 80092e2:	2c01      	cmp	r4, #1
+ 80092e4:	d010      	beq.n	8009308 <HAL_FLASH_Program+0x4c>
+      FLASH_Program_Fast(Address, (uint32_t)Data);
+ 80092e6:	4631      	mov	r1, r6
+ 80092e8:	4628      	mov	r0, r5
+ 80092ea:	f7ff ff6f 	bl	80091cc <FLASH_Program_Fast>
+    status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
+ 80092ee:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
+ 80092f2:	f7ff ffad 	bl	8009250 <FLASH_WaitForLastOperation>
+    CLEAR_BIT(FLASH->CR, TypeProgram);
+ 80092f6:	4a09      	ldr	r2, [pc, #36]	; (800931c <HAL_FLASH_Program+0x60>)
+ 80092f8:	6953      	ldr	r3, [r2, #20]
+ 80092fa:	ea23 0304 	bic.w	r3, r3, r4
+ 80092fe:	6153      	str	r3, [r2, #20]
+  __HAL_UNLOCK(&pFlash);
+ 8009300:	4b05      	ldr	r3, [pc, #20]	; (8009318 <HAL_FLASH_Program+0x5c>)
+ 8009302:	2200      	movs	r2, #0
+ 8009304:	701a      	strb	r2, [r3, #0]
+}
+ 8009306:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+      FLASH_Program_DoubleWord(Address, Data);
+ 8009308:	4632      	mov	r2, r6
+ 800930a:	463b      	mov	r3, r7
+ 800930c:	4628      	mov	r0, r5
+ 800930e:	f7ff ff4f 	bl	80091b0 <FLASH_Program_DoubleWord>
+ 8009312:	e7ec      	b.n	80092ee <HAL_FLASH_Program+0x32>
+  __HAL_LOCK(&pFlash);
+ 8009314:	2002      	movs	r0, #2
+ 8009316:	e7f6      	b.n	8009306 <HAL_FLASH_Program+0x4a>
+ 8009318:	20000f4c 	.word	0x20000f4c
+ 800931c:	58004000 	.word	0x58004000
+
+08009320 <FLASH_MassErase>:
+{
+  /* Set the Mass Erase Bit and start bit */
+#ifdef CORE_CM0PLUS
+  SET_BIT(FLASH->C2CR, (FLASH_CR_MER | FLASH_CR_STRT));
+#else
+  SET_BIT(FLASH->CR, (FLASH_CR_MER | FLASH_CR_STRT));
+ 8009320:	4a03      	ldr	r2, [pc, #12]	; (8009330 <FLASH_MassErase+0x10>)
+ 8009322:	6953      	ldr	r3, [r2, #20]
+ 8009324:	f443 3380 	orr.w	r3, r3, #65536	; 0x10000
+ 8009328:	f043 0304 	orr.w	r3, r3, #4
+ 800932c:	6153      	str	r3, [r2, #20]
+#endif
+}
+ 800932e:	4770      	bx	lr
+ 8009330:	58004000 	.word	0x58004000
+
+08009334 <FLASH_FlushCaches>:
+  * @retval None
+  */
+void FLASH_FlushCaches(void)
+{
+  /* Flush instruction cache  */
+  if (READ_BIT(FLASH->ACR, FLASH_ACR_ICEN) == 1U)
+ 8009334:	4b18      	ldr	r3, [pc, #96]	; (8009398 <FLASH_FlushCaches+0x64>)
+ 8009336:	681b      	ldr	r3, [r3, #0]
+ 8009338:	f403 7300 	and.w	r3, r3, #512	; 0x200
+ 800933c:	2b01      	cmp	r3, #1
+ 800933e:	d006      	beq.n	800934e <FLASH_FlushCaches+0x1a>
+  }
+
+#ifdef CORE_CM0PLUS
+#else
+  /* Flush data cache */
+  if (READ_BIT(FLASH->ACR, FLASH_ACR_DCEN) == 1U)
+ 8009340:	4b15      	ldr	r3, [pc, #84]	; (8009398 <FLASH_FlushCaches+0x64>)
+ 8009342:	681b      	ldr	r3, [r3, #0]
+ 8009344:	f403 6380 	and.w	r3, r3, #1024	; 0x400
+ 8009348:	2b01      	cmp	r3, #1
+ 800934a:	d012      	beq.n	8009372 <FLASH_FlushCaches+0x3e>
+    __HAL_FLASH_DATA_CACHE_RESET();
+    /* Enable data cache */
+    __HAL_FLASH_DATA_CACHE_ENABLE();
+  }
+#endif
+}
+ 800934c:	4770      	bx	lr
+    __HAL_FLASH_INSTRUCTION_CACHE_DISABLE();
+ 800934e:	4b12      	ldr	r3, [pc, #72]	; (8009398 <FLASH_FlushCaches+0x64>)
+ 8009350:	681a      	ldr	r2, [r3, #0]
+ 8009352:	f422 7200 	bic.w	r2, r2, #512	; 0x200
+ 8009356:	601a      	str	r2, [r3, #0]
+    __HAL_FLASH_INSTRUCTION_CACHE_RESET();
+ 8009358:	681a      	ldr	r2, [r3, #0]
+ 800935a:	f442 6200 	orr.w	r2, r2, #2048	; 0x800
+ 800935e:	601a      	str	r2, [r3, #0]
+ 8009360:	681a      	ldr	r2, [r3, #0]
+ 8009362:	f422 6200 	bic.w	r2, r2, #2048	; 0x800
+ 8009366:	601a      	str	r2, [r3, #0]
+    __HAL_FLASH_INSTRUCTION_CACHE_ENABLE();
+ 8009368:	681a      	ldr	r2, [r3, #0]
+ 800936a:	f442 7200 	orr.w	r2, r2, #512	; 0x200
+ 800936e:	601a      	str	r2, [r3, #0]
+ 8009370:	e7e6      	b.n	8009340 <FLASH_FlushCaches+0xc>
+    __HAL_FLASH_DATA_CACHE_DISABLE();
+ 8009372:	4b09      	ldr	r3, [pc, #36]	; (8009398 <FLASH_FlushCaches+0x64>)
+ 8009374:	681a      	ldr	r2, [r3, #0]
+ 8009376:	f422 6280 	bic.w	r2, r2, #1024	; 0x400
+ 800937a:	601a      	str	r2, [r3, #0]
+    __HAL_FLASH_DATA_CACHE_RESET();
+ 800937c:	681a      	ldr	r2, [r3, #0]
+ 800937e:	f442 5280 	orr.w	r2, r2, #4096	; 0x1000
+ 8009382:	601a      	str	r2, [r3, #0]
+ 8009384:	681a      	ldr	r2, [r3, #0]
+ 8009386:	f422 5280 	bic.w	r2, r2, #4096	; 0x1000
+ 800938a:	601a      	str	r2, [r3, #0]
+    __HAL_FLASH_DATA_CACHE_ENABLE();
+ 800938c:	681a      	ldr	r2, [r3, #0]
+ 800938e:	f442 6280 	orr.w	r2, r2, #1024	; 0x400
+ 8009392:	601a      	str	r2, [r3, #0]
+}
+ 8009394:	e7da      	b.n	800934c <FLASH_FlushCaches+0x18>
+ 8009396:	bf00      	nop
+ 8009398:	58004000 	.word	0x58004000
+
+0800939c <FLASH_AcknowledgePageErase>:
+static void FLASH_AcknowledgePageErase(void)
+{
+#ifdef CORE_CM0PLUS
+  CLEAR_BIT(FLASH->C2CR, (FLASH_CR_PER | FLASH_CR_PNB));
+#else
+  CLEAR_BIT(FLASH->CR, (FLASH_CR_PER | FLASH_CR_PNB));
+ 800939c:	4a03      	ldr	r2, [pc, #12]	; (80093ac <FLASH_AcknowledgePageErase+0x10>)
+ 800939e:	6953      	ldr	r3, [r2, #20]
+ 80093a0:	f423 737e 	bic.w	r3, r3, #1016	; 0x3f8
+ 80093a4:	f023 0302 	bic.w	r3, r3, #2
+ 80093a8:	6153      	str	r3, [r2, #20]
+#endif
+}
+ 80093aa:	4770      	bx	lr
+ 80093ac:	58004000 	.word	0x58004000
+
+080093b0 <FLASH_PageErase>:
+  MODIFY_REG(FLASH->CR, FLASH_CR_PNB, ((Page << FLASH_CR_PNB_Pos) | FLASH_CR_PER | FLASH_CR_STRT));
+ 80093b0:	4a05      	ldr	r2, [pc, #20]	; (80093c8 <FLASH_PageErase+0x18>)
+ 80093b2:	6953      	ldr	r3, [r2, #20]
+ 80093b4:	f423 737e 	bic.w	r3, r3, #1016	; 0x3f8
+ 80093b8:	ea43 00c0 	orr.w	r0, r3, r0, lsl #3
+ 80093bc:	f440 3080 	orr.w	r0, r0, #65536	; 0x10000
+ 80093c0:	f040 0002 	orr.w	r0, r0, #2
+ 80093c4:	6150      	str	r0, [r2, #20]
+}
+ 80093c6:	4770      	bx	lr
+ 80093c8:	58004000 	.word	0x58004000
+
+080093cc <HAL_FLASHEx_Erase>:
+{
+ 80093cc:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+  __HAL_LOCK(&pFlash);
+ 80093ce:	4b1e      	ldr	r3, [pc, #120]	; (8009448 <HAL_FLASHEx_Erase+0x7c>)
+ 80093d0:	781b      	ldrb	r3, [r3, #0]
+ 80093d2:	2b01      	cmp	r3, #1
+ 80093d4:	d035      	beq.n	8009442 <HAL_FLASHEx_Erase+0x76>
+ 80093d6:	4605      	mov	r5, r0
+ 80093d8:	460f      	mov	r7, r1
+ 80093da:	4b1b      	ldr	r3, [pc, #108]	; (8009448 <HAL_FLASHEx_Erase+0x7c>)
+ 80093dc:	2201      	movs	r2, #1
+ 80093de:	701a      	strb	r2, [r3, #0]
+  pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
+ 80093e0:	2200      	movs	r2, #0
+ 80093e2:	605a      	str	r2, [r3, #4]
+  status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
+ 80093e4:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
+ 80093e8:	f7ff ff32 	bl	8009250 <FLASH_WaitForLastOperation>
+  if (status == HAL_OK)
+ 80093ec:	4606      	mov	r6, r0
+ 80093ee:	bb18      	cbnz	r0, 8009438 <HAL_FLASHEx_Erase+0x6c>
+    if (pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE)
+ 80093f0:	682b      	ldr	r3, [r5, #0]
+ 80093f2:	2b04      	cmp	r3, #4
+ 80093f4:	d013      	beq.n	800941e <HAL_FLASHEx_Erase+0x52>
+      *PageError = 0xFFFFFFFFU;
+ 80093f6:	f04f 33ff 	mov.w	r3, #4294967295
+ 80093fa:	603b      	str	r3, [r7, #0]
+      for (index = pEraseInit->Page; index < (pEraseInit->Page + pEraseInit->NbPages); index++)
+ 80093fc:	686c      	ldr	r4, [r5, #4]
+ 80093fe:	686b      	ldr	r3, [r5, #4]
+ 8009400:	68aa      	ldr	r2, [r5, #8]
+ 8009402:	4413      	add	r3, r2
+ 8009404:	42a3      	cmp	r3, r4
+ 8009406:	d913      	bls.n	8009430 <HAL_FLASHEx_Erase+0x64>
+        FLASH_PageErase(index);
+ 8009408:	4620      	mov	r0, r4
+ 800940a:	f7ff ffd1 	bl	80093b0 <FLASH_PageErase>
+        status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
+ 800940e:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
+ 8009412:	f7ff ff1d 	bl	8009250 <FLASH_WaitForLastOperation>
+        if (status != HAL_OK)
+ 8009416:	4606      	mov	r6, r0
+ 8009418:	b948      	cbnz	r0, 800942e <HAL_FLASHEx_Erase+0x62>
+      for (index = pEraseInit->Page; index < (pEraseInit->Page + pEraseInit->NbPages); index++)
+ 800941a:	3401      	adds	r4, #1
+ 800941c:	e7ef      	b.n	80093fe <HAL_FLASHEx_Erase+0x32>
+      FLASH_MassErase();
+ 800941e:	f7ff ff7f 	bl	8009320 <FLASH_MassErase>
+      status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
+ 8009422:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
+ 8009426:	f7ff ff13 	bl	8009250 <FLASH_WaitForLastOperation>
+ 800942a:	4606      	mov	r6, r0
+ 800942c:	e002      	b.n	8009434 <HAL_FLASHEx_Erase+0x68>
+          *PageError = index;
+ 800942e:	603c      	str	r4, [r7, #0]
+      FLASH_AcknowledgePageErase();
+ 8009430:	f7ff ffb4 	bl	800939c <FLASH_AcknowledgePageErase>
+    FLASH_FlushCaches();
+ 8009434:	f7ff ff7e 	bl	8009334 <FLASH_FlushCaches>
+  __HAL_UNLOCK(&pFlash);
+ 8009438:	4b03      	ldr	r3, [pc, #12]	; (8009448 <HAL_FLASHEx_Erase+0x7c>)
+ 800943a:	2200      	movs	r2, #0
+ 800943c:	701a      	strb	r2, [r3, #0]
+}
+ 800943e:	4630      	mov	r0, r6
+ 8009440:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+  __HAL_LOCK(&pFlash);
+ 8009442:	2602      	movs	r6, #2
+ 8009444:	e7fb      	b.n	800943e <HAL_FLASHEx_Erase+0x72>
+ 8009446:	bf00      	nop
+ 8009448:	20000f4c 	.word	0x20000f4c
+
+0800944c <HAL_GPIO_Init>:
+  * @param GPIO_Init pointer to a GPIO_InitTypeDef structure that contains
+  *         the configuration information for the specified GPIO peripheral.
+  * @retval None
+  */
+void HAL_GPIO_Init(GPIO_TypeDef  *GPIOx, GPIO_InitTypeDef *GPIO_Init)
+{
+ 800944c:	b570      	push	{r4, r5, r6, lr}
+  uint32_t position = 0x00u;
+ 800944e:	2300      	movs	r3, #0
+  assert_param(IS_GPIO_PIN(GPIO_Init->Pin));
+  assert_param(IS_GPIO_MODE(GPIO_Init->Mode));
+  assert_param(IS_GPIO_PULL(GPIO_Init->Pull));
+
+  /* Configure the port pins */
+  while (((GPIO_Init->Pin) >> position) != 0x00u)
+ 8009450:	e069      	b.n	8009526 <HAL_GPIO_Init+0xda>
+      if (((GPIO_Init->Mode & GPIO_MODE) == MODE_OUTPUT) || ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF))
+      {
+        /* Check the Speed parameter */
+        assert_param(IS_GPIO_SPEED(GPIO_Init->Speed));
+        /* Configure the IO Speed */
+        temp = GPIOx->OSPEEDR;
+ 8009452:	6885      	ldr	r5, [r0, #8]
+        temp &= ~(GPIO_OSPEEDR_OSPEED0 << (position * 2U));
+ 8009454:	005e      	lsls	r6, r3, #1
+ 8009456:	2403      	movs	r4, #3
+ 8009458:	40b4      	lsls	r4, r6
+ 800945a:	ea25 0504 	bic.w	r5, r5, r4
+        temp |= (GPIO_Init->Speed << (position * 2U));
+ 800945e:	68cc      	ldr	r4, [r1, #12]
+ 8009460:	40b4      	lsls	r4, r6
+ 8009462:	432c      	orrs	r4, r5
+        GPIOx->OSPEEDR = temp;
+ 8009464:	6084      	str	r4, [r0, #8]
+
+        /* Configure the IO Output Type */
+        temp = GPIOx->OTYPER;
+ 8009466:	6845      	ldr	r5, [r0, #4]
+        temp &= ~(GPIO_OTYPER_OT0 << position) ;
+ 8009468:	ea25 050c 	bic.w	r5, r5, ip
+        temp |= (((GPIO_Init->Mode & OUTPUT_TYPE) >> OUTPUT_TYPE_Pos) << position);
+ 800946c:	684c      	ldr	r4, [r1, #4]
+ 800946e:	f3c4 1400 	ubfx	r4, r4, #4, #1
+ 8009472:	409c      	lsls	r4, r3
+ 8009474:	432c      	orrs	r4, r5
+        GPIOx->OTYPER = temp;
+ 8009476:	6044      	str	r4, [r0, #4]
+ 8009478:	e066      	b.n	8009548 <HAL_GPIO_Init+0xfc>
+        /* Check the Alternate function parameters */
+        assert_param(IS_GPIO_AF_INSTANCE(GPIOx));
+        assert_param(IS_GPIO_AF(GPIO_Init->Alternate));
+
+        /* Configure Alternate function mapped with the current IO */
+        temp = GPIOx->AFR[position >> 3U];
+ 800947a:	08dd      	lsrs	r5, r3, #3
+ 800947c:	3508      	adds	r5, #8
+ 800947e:	f850 4025 	ldr.w	r4, [r0, r5, lsl #2]
+        temp &= ~(0xFU << ((position & 0x07U) * 4U));
+ 8009482:	f003 0c07 	and.w	ip, r3, #7
+ 8009486:	ea4f 0c8c 	mov.w	ip, ip, lsl #2
+ 800948a:	f04f 0e0f 	mov.w	lr, #15
+ 800948e:	fa0e fe0c 	lsl.w	lr, lr, ip
+ 8009492:	ea24 0e0e 	bic.w	lr, r4, lr
+        temp |= ((GPIO_Init->Alternate) << ((position & 0x07U) * 4U));
+ 8009496:	690c      	ldr	r4, [r1, #16]
+ 8009498:	fa04 f40c 	lsl.w	r4, r4, ip
+ 800949c:	ea44 040e 	orr.w	r4, r4, lr
+        GPIOx->AFR[position >> 3u] = temp;
+ 80094a0:	f840 4025 	str.w	r4, [r0, r5, lsl #2]
+ 80094a4:	e067      	b.n	8009576 <HAL_GPIO_Init+0x12a>
+      /* Configure the External Interrupt or event for the current IO */
+      if ((GPIO_Init->Mode & EXTI_MODE) != 0x00u)
+      {
+        temp = SYSCFG->EXTICR[position >> 2u];
+        temp &= ~(0x07uL << (4U * (position & 0x03U)));
+        temp |= (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U)));
+ 80094a6:	2402      	movs	r4, #2
+ 80094a8:	e000      	b.n	80094ac <HAL_GPIO_Init+0x60>
+ 80094aa:	2400      	movs	r4, #0
+ 80094ac:	fa04 f40e 	lsl.w	r4, r4, lr
+ 80094b0:	432c      	orrs	r4, r5
+        SYSCFG->EXTICR[position >> 2u] = temp;
+ 80094b2:	f10c 0c02 	add.w	ip, ip, #2
+ 80094b6:	4d4b      	ldr	r5, [pc, #300]	; (80095e4 <HAL_GPIO_Init+0x198>)
+ 80094b8:	f845 402c 	str.w	r4, [r5, ip, lsl #2]
+
+        /* Clear Rising Falling edge configuration */
+        temp = EXTI->RTSR1;
+ 80094bc:	4c4a      	ldr	r4, [pc, #296]	; (80095e8 <HAL_GPIO_Init+0x19c>)
+ 80094be:	6825      	ldr	r5, [r4, #0]
+        temp &= ~(iocurrent);
+ 80094c0:	43d4      	mvns	r4, r2
+ 80094c2:	ea25 0602 	bic.w	r6, r5, r2
+        if ((GPIO_Init->Mode & TRIGGER_RISING) != 0x00u)
+ 80094c6:	f8d1 c004 	ldr.w	ip, [r1, #4]
+ 80094ca:	f41c 1f80 	tst.w	ip, #1048576	; 0x100000
+ 80094ce:	d001      	beq.n	80094d4 <HAL_GPIO_Init+0x88>
+        {
+          temp |= iocurrent;
+ 80094d0:	ea42 0605 	orr.w	r6, r2, r5
+        }
+        EXTI->RTSR1 = temp;
+ 80094d4:	4d44      	ldr	r5, [pc, #272]	; (80095e8 <HAL_GPIO_Init+0x19c>)
+ 80094d6:	602e      	str	r6, [r5, #0]
+
+        temp = EXTI->FTSR1;
+ 80094d8:	686d      	ldr	r5, [r5, #4]
+        temp &= ~(iocurrent);
+ 80094da:	ea04 0605 	and.w	r6, r4, r5
+        if ((GPIO_Init->Mode & TRIGGER_FALLING) != 0x00u)
+ 80094de:	f8d1 c004 	ldr.w	ip, [r1, #4]
+ 80094e2:	f41c 1f00 	tst.w	ip, #2097152	; 0x200000
+ 80094e6:	d001      	beq.n	80094ec <HAL_GPIO_Init+0xa0>
+        {
+          temp |= iocurrent;
+ 80094e8:	ea42 0605 	orr.w	r6, r2, r5
+        }
+        EXTI->FTSR1 = temp;
+ 80094ec:	4d3e      	ldr	r5, [pc, #248]	; (80095e8 <HAL_GPIO_Init+0x19c>)
+ 80094ee:	606e      	str	r6, [r5, #4]
+
+        /* Clear EXTI line configuration */
+#ifdef CORE_CM0PLUS
+        temp = EXTI->C2IMR1;
+#else
+        temp = EXTI->IMR1;
+ 80094f0:	f8d5 5080 	ldr.w	r5, [r5, #128]	; 0x80
+#endif /* CORE_CM0PLUS */
+        temp &= ~(iocurrent);
+ 80094f4:	ea04 0605 	and.w	r6, r4, r5
+        if ((GPIO_Init->Mode & EXTI_IT) != 0x00u)
+ 80094f8:	f8d1 c004 	ldr.w	ip, [r1, #4]
+ 80094fc:	f41c 3f80 	tst.w	ip, #65536	; 0x10000
+ 8009500:	d001      	beq.n	8009506 <HAL_GPIO_Init+0xba>
+        {
+          temp |= iocurrent;
+ 8009502:	ea42 0605 	orr.w	r6, r2, r5
+        }
+#ifdef CORE_CM0PLUS
+        EXTI->C2IMR1 = temp;
+#else
+        EXTI->IMR1 = temp;
+ 8009506:	4d38      	ldr	r5, [pc, #224]	; (80095e8 <HAL_GPIO_Init+0x19c>)
+ 8009508:	f8c5 6080 	str.w	r6, [r5, #128]	; 0x80
+#endif /* CORE_CM0PLUS */
+
+#ifdef CORE_CM0PLUS
+        temp = EXTI->C2EMR1;
+#else
+        temp = EXTI->EMR1;
+ 800950c:	f8d5 5084 	ldr.w	r5, [r5, #132]	; 0x84
+#endif /* CORE_CM0PLUS */
+        temp &= ~(iocurrent);
+ 8009510:	402c      	ands	r4, r5
+        if ((GPIO_Init->Mode & EXTI_EVT) != 0x00u)
+ 8009512:	684e      	ldr	r6, [r1, #4]
+ 8009514:	f416 3f00 	tst.w	r6, #131072	; 0x20000
+ 8009518:	d001      	beq.n	800951e <HAL_GPIO_Init+0xd2>
+        {
+          temp |= iocurrent;
+ 800951a:	ea42 0405 	orr.w	r4, r2, r5
+        }
+#ifdef CORE_CM0PLUS
+        EXTI->C2EMR1 = temp;
+#else
+        EXTI->EMR1 = temp;
+ 800951e:	4a32      	ldr	r2, [pc, #200]	; (80095e8 <HAL_GPIO_Init+0x19c>)
+ 8009520:	f8c2 4084 	str.w	r4, [r2, #132]	; 0x84
+#endif /* CORE_CM0PLUS */
+      }
+    }
+
+    position++;
+ 8009524:	3301      	adds	r3, #1
+  while (((GPIO_Init->Pin) >> position) != 0x00u)
+ 8009526:	680a      	ldr	r2, [r1, #0]
+ 8009528:	fa32 f403 	lsrs.w	r4, r2, r3
+ 800952c:	d058      	beq.n	80095e0 <HAL_GPIO_Init+0x194>
+    iocurrent = (GPIO_Init->Pin) & (1uL << position);
+ 800952e:	f04f 0c01 	mov.w	ip, #1
+ 8009532:	fa0c fc03 	lsl.w	ip, ip, r3
+    if (iocurrent != 0x00u)
+ 8009536:	ea1c 0202 	ands.w	r2, ip, r2
+ 800953a:	d0f3      	beq.n	8009524 <HAL_GPIO_Init+0xd8>
+      if (((GPIO_Init->Mode & GPIO_MODE) == MODE_OUTPUT) || ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF))
+ 800953c:	684c      	ldr	r4, [r1, #4]
+ 800953e:	f004 0403 	and.w	r4, r4, #3
+ 8009542:	3c01      	subs	r4, #1
+ 8009544:	2c01      	cmp	r4, #1
+ 8009546:	d984      	bls.n	8009452 <HAL_GPIO_Init+0x6>
+      if ((GPIO_Init->Mode & GPIO_MODE) != MODE_ANALOG)
+ 8009548:	684c      	ldr	r4, [r1, #4]
+ 800954a:	f004 0403 	and.w	r4, r4, #3
+ 800954e:	2c03      	cmp	r4, #3
+ 8009550:	d00c      	beq.n	800956c <HAL_GPIO_Init+0x120>
+        temp = GPIOx->PUPDR;
+ 8009552:	68c4      	ldr	r4, [r0, #12]
+        temp &= ~(GPIO_PUPDR_PUPD0 << (position * 2U));
+ 8009554:	005d      	lsls	r5, r3, #1
+ 8009556:	f04f 0c03 	mov.w	ip, #3
+ 800955a:	fa0c fc05 	lsl.w	ip, ip, r5
+ 800955e:	ea24 0c0c 	bic.w	ip, r4, ip
+        temp |= ((GPIO_Init->Pull) << (position * 2U));
+ 8009562:	688c      	ldr	r4, [r1, #8]
+ 8009564:	40ac      	lsls	r4, r5
+ 8009566:	ea44 040c 	orr.w	r4, r4, ip
+        GPIOx->PUPDR = temp;
+ 800956a:	60c4      	str	r4, [r0, #12]
+      if ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF)
+ 800956c:	684c      	ldr	r4, [r1, #4]
+ 800956e:	f004 0403 	and.w	r4, r4, #3
+ 8009572:	2c02      	cmp	r4, #2
+ 8009574:	d081      	beq.n	800947a <HAL_GPIO_Init+0x2e>
+      temp = GPIOx->MODER;
+ 8009576:	6804      	ldr	r4, [r0, #0]
+      temp &= ~(GPIO_MODER_MODE0 << (position * 2U));
+ 8009578:	ea4f 0e43 	mov.w	lr, r3, lsl #1
+ 800957c:	f04f 0c03 	mov.w	ip, #3
+ 8009580:	fa0c fc0e 	lsl.w	ip, ip, lr
+ 8009584:	ea24 0c0c 	bic.w	ip, r4, ip
+      temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2U));
+ 8009588:	684c      	ldr	r4, [r1, #4]
+ 800958a:	f004 0403 	and.w	r4, r4, #3
+ 800958e:	fa04 f40e 	lsl.w	r4, r4, lr
+ 8009592:	ea44 040c 	orr.w	r4, r4, ip
+      GPIOx->MODER = temp;
+ 8009596:	6004      	str	r4, [r0, #0]
+      if ((GPIO_Init->Mode & EXTI_MODE) != 0x00u)
+ 8009598:	684c      	ldr	r4, [r1, #4]
+ 800959a:	f414 3f40 	tst.w	r4, #196608	; 0x30000
+ 800959e:	d0c1      	beq.n	8009524 <HAL_GPIO_Init+0xd8>
+        temp = SYSCFG->EXTICR[position >> 2u];
+ 80095a0:	ea4f 0c93 	mov.w	ip, r3, lsr #2
+ 80095a4:	f10c 0502 	add.w	r5, ip, #2
+ 80095a8:	4c0e      	ldr	r4, [pc, #56]	; (80095e4 <HAL_GPIO_Init+0x198>)
+ 80095aa:	f854 5025 	ldr.w	r5, [r4, r5, lsl #2]
+        temp &= ~(0x07uL << (4U * (position & 0x03U)));
+ 80095ae:	f003 0e03 	and.w	lr, r3, #3
+ 80095b2:	ea4f 0e8e 	mov.w	lr, lr, lsl #2
+ 80095b6:	2407      	movs	r4, #7
+ 80095b8:	fa04 f40e 	lsl.w	r4, r4, lr
+ 80095bc:	ea25 0504 	bic.w	r5, r5, r4
+        temp |= (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U)));
+ 80095c0:	f1b0 4f90 	cmp.w	r0, #1207959552	; 0x48000000
+ 80095c4:	f43f af71 	beq.w	80094aa <HAL_GPIO_Init+0x5e>
+ 80095c8:	4c08      	ldr	r4, [pc, #32]	; (80095ec <HAL_GPIO_Init+0x1a0>)
+ 80095ca:	42a0      	cmp	r0, r4
+ 80095cc:	d006      	beq.n	80095dc <HAL_GPIO_Init+0x190>
+ 80095ce:	f504 6480 	add.w	r4, r4, #1024	; 0x400
+ 80095d2:	42a0      	cmp	r0, r4
+ 80095d4:	f43f af67 	beq.w	80094a6 <HAL_GPIO_Init+0x5a>
+ 80095d8:	2407      	movs	r4, #7
+ 80095da:	e767      	b.n	80094ac <HAL_GPIO_Init+0x60>
+ 80095dc:	2401      	movs	r4, #1
+ 80095de:	e765      	b.n	80094ac <HAL_GPIO_Init+0x60>
+  }
+}
+ 80095e0:	bd70      	pop	{r4, r5, r6, pc}
+ 80095e2:	bf00      	nop
+ 80095e4:	40010000 	.word	0x40010000
+ 80095e8:	58000800 	.word	0x58000800
+ 80095ec:	48000400 	.word	0x48000400
+
+080095f0 <HAL_GPIO_DeInit>:
+  *         This parameter can be any combination of GPIO_PIN_x where x can be (0..15).
+  * @retval None
+  */
+void HAL_GPIO_DeInit(GPIO_TypeDef  *GPIOx, uint32_t GPIO_Pin)
+{
+  uint32_t position = 0x00u;
+ 80095f0:	2300      	movs	r3, #0
+  /* Check the parameters */
+  assert_param(IS_GPIO_ALL_INSTANCE(GPIOx));
+  assert_param(IS_GPIO_PIN(GPIO_Pin));
+
+  /* Configure the port pins */
+  while ((GPIO_Pin >> position) != 0x00u)
+ 80095f2:	fa31 f203 	lsrs.w	r2, r1, r3
+ 80095f6:	d071      	beq.n	80096dc <HAL_GPIO_DeInit+0xec>
+{
+ 80095f8:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 80095fa:	e02e      	b.n	800965a <HAL_GPIO_DeInit+0x6a>
+      /*------------------------- EXTI Mode Configuration --------------------*/
+      /* Clear the External Interrupt or Event for the current IO */
+
+      tmp = SYSCFG->EXTICR[position >> 2u];
+      tmp &= (0x07uL << (4U * (position & 0x03U)));
+      if (tmp == (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U))))
+ 80095fc:	2502      	movs	r5, #2
+ 80095fe:	e000      	b.n	8009602 <HAL_GPIO_DeInit+0x12>
+ 8009600:	2500      	movs	r5, #0
+ 8009602:	fa05 f50c 	lsl.w	r5, r5, ip
+ 8009606:	42a5      	cmp	r5, r4
+ 8009608:	d049      	beq.n	800969e <HAL_GPIO_DeInit+0xae>
+        SYSCFG->EXTICR[position >> 2u] &= ~tmp;
+      }
+
+      /*------------------------- GPIO Mode Configuration --------------------*/
+      /* Configure IO in Analog Mode */
+      GPIOx->MODER |= (GPIO_MODER_MODE0 << (position * 2U));
+ 800960a:	6804      	ldr	r4, [r0, #0]
+ 800960c:	005d      	lsls	r5, r3, #1
+ 800960e:	f04f 0c03 	mov.w	ip, #3
+ 8009612:	fa0c fc05 	lsl.w	ip, ip, r5
+ 8009616:	ea44 040c 	orr.w	r4, r4, ip
+ 800961a:	6004      	str	r4, [r0, #0]
+
+      /* Configure the default Alternate Function in current IO */
+      GPIOx->AFR[position >> 3U] &= ~(0xFU << ((position & 0x07U) * 4U)) ;
+ 800961c:	ea4f 0ed3 	mov.w	lr, r3, lsr #3
+ 8009620:	f10e 0e08 	add.w	lr, lr, #8
+ 8009624:	f850 402e 	ldr.w	r4, [r0, lr, lsl #2]
+ 8009628:	f003 0607 	and.w	r6, r3, #7
+ 800962c:	00b6      	lsls	r6, r6, #2
+ 800962e:	250f      	movs	r5, #15
+ 8009630:	40b5      	lsls	r5, r6
+ 8009632:	ea24 0405 	bic.w	r4, r4, r5
+ 8009636:	f840 402e 	str.w	r4, [r0, lr, lsl #2]
+
+      /* Configure the default value for IO Speed */
+      GPIOx->OSPEEDR &= ~(GPIO_OSPEEDR_OSPEED0 << (position * 2U));
+ 800963a:	6884      	ldr	r4, [r0, #8]
+ 800963c:	ea24 040c 	bic.w	r4, r4, ip
+ 8009640:	6084      	str	r4, [r0, #8]
+
+      /* Configure the default value IO Output Type */
+      GPIOx->OTYPER  &= ~(GPIO_OTYPER_OT0 << position) ;
+ 8009642:	6844      	ldr	r4, [r0, #4]
+ 8009644:	ea24 0202 	bic.w	r2, r4, r2
+ 8009648:	6042      	str	r2, [r0, #4]
+
+      /* Deactivate the Pull-up and Pull-down resistor for the current IO */
+      GPIOx->PUPDR &= ~(GPIO_PUPDR_PUPD0 << (position * 2U));
+ 800964a:	68c2      	ldr	r2, [r0, #12]
+ 800964c:	ea22 020c 	bic.w	r2, r2, ip
+ 8009650:	60c2      	str	r2, [r0, #12]
+    }
+
+    position++;
+ 8009652:	3301      	adds	r3, #1
+  while ((GPIO_Pin >> position) != 0x00u)
+ 8009654:	fa31 f203 	lsrs.w	r2, r1, r3
+ 8009658:	d03f      	beq.n	80096da <HAL_GPIO_DeInit+0xea>
+    iocurrent = (GPIO_Pin) & (1uL << position);
+ 800965a:	2201      	movs	r2, #1
+ 800965c:	409a      	lsls	r2, r3
+    if (iocurrent != 0x00u)
+ 800965e:	ea12 0701 	ands.w	r7, r2, r1
+ 8009662:	d0f6      	beq.n	8009652 <HAL_GPIO_DeInit+0x62>
+      tmp = SYSCFG->EXTICR[position >> 2u];
+ 8009664:	089e      	lsrs	r6, r3, #2
+ 8009666:	1cb5      	adds	r5, r6, #2
+ 8009668:	4c1d      	ldr	r4, [pc, #116]	; (80096e0 <HAL_GPIO_DeInit+0xf0>)
+ 800966a:	f854 4025 	ldr.w	r4, [r4, r5, lsl #2]
+      tmp &= (0x07uL << (4U * (position & 0x03U)));
+ 800966e:	f003 0c03 	and.w	ip, r3, #3
+ 8009672:	ea4f 0c8c 	mov.w	ip, ip, lsl #2
+ 8009676:	f04f 0e07 	mov.w	lr, #7
+ 800967a:	fa0e fe0c 	lsl.w	lr, lr, ip
+ 800967e:	ea0e 0404 	and.w	r4, lr, r4
+      if (tmp == (GPIO_GET_INDEX(GPIOx) << (4U * (position & 0x03U))))
+ 8009682:	f1b0 4f90 	cmp.w	r0, #1207959552	; 0x48000000
+ 8009686:	d0bb      	beq.n	8009600 <HAL_GPIO_DeInit+0x10>
+ 8009688:	4d16      	ldr	r5, [pc, #88]	; (80096e4 <HAL_GPIO_DeInit+0xf4>)
+ 800968a:	42a8      	cmp	r0, r5
+ 800968c:	d005      	beq.n	800969a <HAL_GPIO_DeInit+0xaa>
+ 800968e:	f505 6580 	add.w	r5, r5, #1024	; 0x400
+ 8009692:	42a8      	cmp	r0, r5
+ 8009694:	d0b2      	beq.n	80095fc <HAL_GPIO_DeInit+0xc>
+ 8009696:	2507      	movs	r5, #7
+ 8009698:	e7b3      	b.n	8009602 <HAL_GPIO_DeInit+0x12>
+ 800969a:	2501      	movs	r5, #1
+ 800969c:	e7b1      	b.n	8009602 <HAL_GPIO_DeInit+0x12>
+        EXTI->IMR1 &= ~(iocurrent);
+ 800969e:	4c12      	ldr	r4, [pc, #72]	; (80096e8 <HAL_GPIO_DeInit+0xf8>)
+ 80096a0:	f8d4 5080 	ldr.w	r5, [r4, #128]	; 0x80
+ 80096a4:	ea25 0507 	bic.w	r5, r5, r7
+ 80096a8:	f8c4 5080 	str.w	r5, [r4, #128]	; 0x80
+        EXTI->EMR1 &= ~(iocurrent);
+ 80096ac:	f8d4 5084 	ldr.w	r5, [r4, #132]	; 0x84
+ 80096b0:	ea25 0507 	bic.w	r5, r5, r7
+ 80096b4:	f8c4 5084 	str.w	r5, [r4, #132]	; 0x84
+        EXTI->RTSR1 &= ~(iocurrent);
+ 80096b8:	6825      	ldr	r5, [r4, #0]
+ 80096ba:	ea25 0507 	bic.w	r5, r5, r7
+ 80096be:	6025      	str	r5, [r4, #0]
+        EXTI->FTSR1 &= ~(iocurrent);
+ 80096c0:	6865      	ldr	r5, [r4, #4]
+ 80096c2:	ea25 0507 	bic.w	r5, r5, r7
+ 80096c6:	6065      	str	r5, [r4, #4]
+        SYSCFG->EXTICR[position >> 2u] &= ~tmp;
+ 80096c8:	4d05      	ldr	r5, [pc, #20]	; (80096e0 <HAL_GPIO_DeInit+0xf0>)
+ 80096ca:	3602      	adds	r6, #2
+ 80096cc:	f855 4026 	ldr.w	r4, [r5, r6, lsl #2]
+ 80096d0:	ea24 040e 	bic.w	r4, r4, lr
+ 80096d4:	f845 4026 	str.w	r4, [r5, r6, lsl #2]
+ 80096d8:	e797      	b.n	800960a <HAL_GPIO_DeInit+0x1a>
+  }
+}
+ 80096da:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 80096dc:	4770      	bx	lr
+ 80096de:	bf00      	nop
+ 80096e0:	40010000 	.word	0x40010000
+ 80096e4:	48000400 	.word	0x48000400
+ 80096e8:	58000800 	.word	0x58000800
+
+080096ec <HAL_GPIO_ReadPin>:
+  GPIO_PinState bitstatus;
+
+  /* Check the parameters */
+  assert_param(IS_GPIO_PIN(GPIO_Pin));
+
+  if ((GPIOx->IDR & GPIO_Pin) != 0x00u)
+ 80096ec:	6903      	ldr	r3, [r0, #16]
+ 80096ee:	4219      	tst	r1, r3
+ 80096f0:	d001      	beq.n	80096f6 <HAL_GPIO_ReadPin+0xa>
+  {
+    bitstatus = GPIO_PIN_SET;
+ 80096f2:	2001      	movs	r0, #1
+ 80096f4:	4770      	bx	lr
+  }
+  else
+  {
+    bitstatus = GPIO_PIN_RESET;
+ 80096f6:	2000      	movs	r0, #0
+  }
+  return bitstatus;
+}
+ 80096f8:	4770      	bx	lr
+
+080096fa <HAL_GPIO_WritePin>:
+{
+  /* Check the parameters */
+  assert_param(IS_GPIO_PIN(GPIO_Pin));
+  assert_param(IS_GPIO_PIN_ACTION(PinState));
+
+  if (PinState != GPIO_PIN_RESET)
+ 80096fa:	b10a      	cbz	r2, 8009700 <HAL_GPIO_WritePin+0x6>
+  {
+    GPIOx->BSRR = (uint32_t)GPIO_Pin;
+ 80096fc:	6181      	str	r1, [r0, #24]
+ 80096fe:	4770      	bx	lr
+  }
+  else
+  {
+    GPIOx->BRR = (uint32_t)GPIO_Pin;
+ 8009700:	6281      	str	r1, [r0, #40]	; 0x28
+  }
+}
+ 8009702:	4770      	bx	lr
+
+08009704 <HAL_GPIO_EXTI_IRQHandler>:
+  * @brief  Handle EXTI interrupt request.
+  * @param GPIO_Pin Specifies the port pin connected to corresponding EXTI line.
+  * @retval None
+  */
+void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)
+{
+ 8009704:	b508      	push	{r3, lr}
+  /* EXTI line interrupt detected */
+  if (__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != 0x00u)
+ 8009706:	4b05      	ldr	r3, [pc, #20]	; (800971c <HAL_GPIO_EXTI_IRQHandler+0x18>)
+ 8009708:	68db      	ldr	r3, [r3, #12]
+ 800970a:	4203      	tst	r3, r0
+ 800970c:	d100      	bne.n	8009710 <HAL_GPIO_EXTI_IRQHandler+0xc>
+  {
+    __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
+    HAL_GPIO_EXTI_Callback(GPIO_Pin);
+  }
+}
+ 800970e:	bd08      	pop	{r3, pc}
+    __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
+ 8009710:	4b02      	ldr	r3, [pc, #8]	; (800971c <HAL_GPIO_EXTI_IRQHandler+0x18>)
+ 8009712:	60d8      	str	r0, [r3, #12]
+    HAL_GPIO_EXTI_Callback(GPIO_Pin);
+ 8009714:	f7fa faac 	bl	8003c70 <HAL_GPIO_EXTI_Callback>
+}
+ 8009718:	e7f9      	b.n	800970e <HAL_GPIO_EXTI_IRQHandler+0xa>
+ 800971a:	bf00      	nop
+ 800971c:	58000800 	.word	0x58000800
+
+08009720 <I2C_Flush_TXDR>:
+  */
+static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c)
+{
+  /* If a pending TXIS flag is set */
+  /* Write a dummy data in TXDR to clear it */
+  if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) != RESET)
+ 8009720:	6803      	ldr	r3, [r0, #0]
+ 8009722:	699a      	ldr	r2, [r3, #24]
+ 8009724:	f012 0f02 	tst.w	r2, #2
+ 8009728:	d001      	beq.n	800972e <I2C_Flush_TXDR+0xe>
+  {
+    hi2c->Instance->TXDR = 0x00U;
+ 800972a:	2200      	movs	r2, #0
+ 800972c:	629a      	str	r2, [r3, #40]	; 0x28
+  }
+
+  /* Flush TX register if not empty */
+  if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET)
+ 800972e:	6803      	ldr	r3, [r0, #0]
+ 8009730:	699a      	ldr	r2, [r3, #24]
+ 8009732:	f012 0f01 	tst.w	r2, #1
+ 8009736:	d103      	bne.n	8009740 <I2C_Flush_TXDR+0x20>
+  {
+    __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_TXE);
+ 8009738:	699a      	ldr	r2, [r3, #24]
+ 800973a:	f042 0201 	orr.w	r2, r2, #1
+ 800973e:	619a      	str	r2, [r3, #24]
+  }
+}
+ 8009740:	4770      	bx	lr
+
+08009742 <I2C_TransferConfig>:
+  *     @arg @ref I2C_GENERATE_START_WRITE Generate Restart for write request.
+  * @retval None
+  */
+static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t Mode,
+                               uint32_t Request)
+{
+ 8009742:	b410      	push	{r4}
+ 8009744:	9c01      	ldr	r4, [sp, #4]
+  assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
+  assert_param(IS_TRANSFER_MODE(Mode));
+  assert_param(IS_TRANSFER_REQUEST(Request));
+
+  /* Declaration of tmp to prevent undefined behavior of volatile usage */
+  uint32_t tmp = ((uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | \
+ 8009746:	f3c1 0109 	ubfx	r1, r1, #0, #10
+ 800974a:	ea41 4102 	orr.w	r1, r1, r2, lsl #16
+                             (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \
+ 800974e:	4319      	orrs	r1, r3
+  uint32_t tmp = ((uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | \
+ 8009750:	4321      	orrs	r1, r4
+ 8009752:	f021 4100 	bic.w	r1, r1, #2147483648	; 0x80000000
+                             (uint32_t)Mode | (uint32_t)Request) & (~0x80000000U));
+
+  /* update CR2 register */
+  MODIFY_REG(hi2c->Instance->CR2, \
+ 8009756:	6802      	ldr	r2, [r0, #0]
+ 8009758:	6853      	ldr	r3, [r2, #4]
+ 800975a:	0d64      	lsrs	r4, r4, #21
+ 800975c:	f404 6480 	and.w	r4, r4, #1024	; 0x400
+ 8009760:	f044 747f 	orr.w	r4, r4, #66846720	; 0x3fc0000
+ 8009764:	f444 3458 	orr.w	r4, r4, #221184	; 0x36000
+ 8009768:	f444 747f 	orr.w	r4, r4, #1020	; 0x3fc
+ 800976c:	f044 0403 	orr.w	r4, r4, #3
+ 8009770:	ea23 0304 	bic.w	r3, r3, r4
+ 8009774:	430b      	orrs	r3, r1
+ 8009776:	6053      	str	r3, [r2, #4]
+             ((I2C_CR2_SADD | I2C_CR2_NBYTES | I2C_CR2_RELOAD | I2C_CR2_AUTOEND | \
+               (I2C_CR2_RD_WRN & (uint32_t)(Request >> (31U - I2C_CR2_RD_WRN_Pos))) | \
+               I2C_CR2_START | I2C_CR2_STOP)), tmp);
+}
+ 8009778:	bc10      	pop	{r4}
+ 800977a:	4770      	bx	lr
+
+0800977c <I2C_IsErrorOccurred>:
+{
+ 800977c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8009780:	4604      	mov	r4, r0
+  uint32_t itflag   = hi2c->Instance->ISR;
+ 8009782:	6803      	ldr	r3, [r0, #0]
+ 8009784:	699e      	ldr	r6, [r3, #24]
+  if (HAL_IS_BIT_SET(itflag, I2C_FLAG_AF))
+ 8009786:	f016 0610 	ands.w	r6, r6, #16
+ 800978a:	d07c      	beq.n	8009886 <I2C_IsErrorOccurred+0x10a>
+ 800978c:	460d      	mov	r5, r1
+ 800978e:	4690      	mov	r8, r2
+    __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
+ 8009790:	2210      	movs	r2, #16
+ 8009792:	61da      	str	r2, [r3, #28]
+  uint32_t error_code = 0;
+ 8009794:	2600      	movs	r6, #0
+  HAL_StatusTypeDef status = HAL_OK;
+ 8009796:	4637      	mov	r7, r6
+    while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) && (status == HAL_OK))
+ 8009798:	6823      	ldr	r3, [r4, #0]
+ 800979a:	6998      	ldr	r0, [r3, #24]
+ 800979c:	f010 0f20 	tst.w	r0, #32
+ 80097a0:	d130      	bne.n	8009804 <I2C_IsErrorOccurred+0x88>
+ 80097a2:	bb7f      	cbnz	r7, 8009804 <I2C_IsErrorOccurred+0x88>
+      if (Timeout != HAL_MAX_DELAY)
+ 80097a4:	f1b5 3fff 	cmp.w	r5, #4294967295
+ 80097a8:	d0f6      	beq.n	8009798 <I2C_IsErrorOccurred+0x1c>
+        if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
+ 80097aa:	f7f9 fa75 	bl	8002c98 <HAL_GetTick>
+ 80097ae:	eba0 0008 	sub.w	r0, r0, r8
+ 80097b2:	42a8      	cmp	r0, r5
+ 80097b4:	d801      	bhi.n	80097ba <I2C_IsErrorOccurred+0x3e>
+ 80097b6:	2d00      	cmp	r5, #0
+ 80097b8:	d1ee      	bne.n	8009798 <I2C_IsErrorOccurred+0x1c>
+          tmp1 = (uint32_t)(hi2c->Instance->CR2 & I2C_CR2_STOP);
+ 80097ba:	6821      	ldr	r1, [r4, #0]
+ 80097bc:	684b      	ldr	r3, [r1, #4]
+ 80097be:	f403 4380 	and.w	r3, r3, #16384	; 0x4000
+          tmp2 = hi2c->Mode;
+ 80097c2:	f894 2042 	ldrb.w	r2, [r4, #66]	; 0x42
+ 80097c6:	b2d2      	uxtb	r2, r2
+          if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET) && \
+ 80097c8:	6988      	ldr	r0, [r1, #24]
+ 80097ca:	f410 4f00 	tst.w	r0, #32768	; 0x8000
+ 80097ce:	d002      	beq.n	80097d6 <I2C_IsErrorOccurred+0x5a>
+ 80097d0:	b90b      	cbnz	r3, 80097d6 <I2C_IsErrorOccurred+0x5a>
+              (tmp1 != I2C_CR2_STOP) && \
+ 80097d2:	2a20      	cmp	r2, #32
+ 80097d4:	d10e      	bne.n	80097f4 <I2C_IsErrorOccurred+0x78>
+          while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
+ 80097d6:	6823      	ldr	r3, [r4, #0]
+ 80097d8:	699b      	ldr	r3, [r3, #24]
+ 80097da:	f013 0f20 	tst.w	r3, #32
+ 80097de:	d1db      	bne.n	8009798 <I2C_IsErrorOccurred+0x1c>
+            if ((HAL_GetTick() - tickstart) > I2C_TIMEOUT_STOPF)
+ 80097e0:	f7f9 fa5a 	bl	8002c98 <HAL_GetTick>
+ 80097e4:	eba0 0008 	sub.w	r0, r0, r8
+ 80097e8:	2819      	cmp	r0, #25
+ 80097ea:	d9f4      	bls.n	80097d6 <I2C_IsErrorOccurred+0x5a>
+              error_code |=HAL_I2C_ERROR_TIMEOUT;
+ 80097ec:	f046 0620 	orr.w	r6, r6, #32
+              status = HAL_ERROR;
+ 80097f0:	2701      	movs	r7, #1
+              break;
+ 80097f2:	e7d1      	b.n	8009798 <I2C_IsErrorOccurred+0x1c>
+            hi2c->Instance->CR2 |= I2C_CR2_STOP;
+ 80097f4:	684b      	ldr	r3, [r1, #4]
+ 80097f6:	f443 4380 	orr.w	r3, r3, #16384	; 0x4000
+ 80097fa:	604b      	str	r3, [r1, #4]
+            tickstart = HAL_GetTick();
+ 80097fc:	f7f9 fa4c 	bl	8002c98 <HAL_GetTick>
+ 8009800:	4680      	mov	r8, r0
+ 8009802:	e7e8      	b.n	80097d6 <I2C_IsErrorOccurred+0x5a>
+    if (status == HAL_OK)
+ 8009804:	b90f      	cbnz	r7, 800980a <I2C_IsErrorOccurred+0x8e>
+      __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
+ 8009806:	2220      	movs	r2, #32
+ 8009808:	61da      	str	r2, [r3, #28]
+    error_code |= HAL_I2C_ERROR_AF;
+ 800980a:	f046 0604 	orr.w	r6, r6, #4
+    status = HAL_ERROR;
+ 800980e:	2501      	movs	r5, #1
+  itflag = hi2c->Instance->ISR;
+ 8009810:	6822      	ldr	r2, [r4, #0]
+ 8009812:	6993      	ldr	r3, [r2, #24]
+  if (HAL_IS_BIT_SET(itflag, I2C_FLAG_BERR))
+ 8009814:	f413 7f80 	tst.w	r3, #256	; 0x100
+ 8009818:	d005      	beq.n	8009826 <I2C_IsErrorOccurred+0xaa>
+    error_code |= HAL_I2C_ERROR_BERR;
+ 800981a:	f046 0601 	orr.w	r6, r6, #1
+    __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR);
+ 800981e:	f44f 7180 	mov.w	r1, #256	; 0x100
+ 8009822:	61d1      	str	r1, [r2, #28]
+    status = HAL_ERROR;
+ 8009824:	2501      	movs	r5, #1
+  if (HAL_IS_BIT_SET(itflag, I2C_FLAG_OVR))
+ 8009826:	f413 6f80 	tst.w	r3, #1024	; 0x400
+ 800982a:	d006      	beq.n	800983a <I2C_IsErrorOccurred+0xbe>
+    error_code |= HAL_I2C_ERROR_OVR;
+ 800982c:	f046 0608 	orr.w	r6, r6, #8
+    __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR);
+ 8009830:	6822      	ldr	r2, [r4, #0]
+ 8009832:	f44f 6180 	mov.w	r1, #1024	; 0x400
+ 8009836:	61d1      	str	r1, [r2, #28]
+    status = HAL_ERROR;
+ 8009838:	2501      	movs	r5, #1
+  if (HAL_IS_BIT_SET(itflag, I2C_FLAG_ARLO))
+ 800983a:	f413 7f00 	tst.w	r3, #512	; 0x200
+ 800983e:	d024      	beq.n	800988a <I2C_IsErrorOccurred+0x10e>
+    error_code |= HAL_I2C_ERROR_ARLO;
+ 8009840:	f046 0602 	orr.w	r6, r6, #2
+    __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO);
+ 8009844:	6823      	ldr	r3, [r4, #0]
+ 8009846:	f44f 7200 	mov.w	r2, #512	; 0x200
+ 800984a:	61da      	str	r2, [r3, #28]
+    status = HAL_ERROR;
+ 800984c:	2501      	movs	r5, #1
+    I2C_Flush_TXDR(hi2c);
+ 800984e:	4620      	mov	r0, r4
+ 8009850:	f7ff ff66 	bl	8009720 <I2C_Flush_TXDR>
+    I2C_RESET_CR2(hi2c);
+ 8009854:	6822      	ldr	r2, [r4, #0]
+ 8009856:	6853      	ldr	r3, [r2, #4]
+ 8009858:	f023 73ff 	bic.w	r3, r3, #33423360	; 0x1fe0000
+ 800985c:	f423 338b 	bic.w	r3, r3, #71168	; 0x11600
+ 8009860:	f423 73ff 	bic.w	r3, r3, #510	; 0x1fe
+ 8009864:	f023 0301 	bic.w	r3, r3, #1
+ 8009868:	6053      	str	r3, [r2, #4]
+    hi2c->ErrorCode |= error_code;
+ 800986a:	6c63      	ldr	r3, [r4, #68]	; 0x44
+ 800986c:	4333      	orrs	r3, r6
+ 800986e:	6463      	str	r3, [r4, #68]	; 0x44
+    hi2c->State = HAL_I2C_STATE_READY;
+ 8009870:	2320      	movs	r3, #32
+ 8009872:	f884 3041 	strb.w	r3, [r4, #65]	; 0x41
+    hi2c->Mode = HAL_I2C_MODE_NONE;
+ 8009876:	2300      	movs	r3, #0
+ 8009878:	f884 3042 	strb.w	r3, [r4, #66]	; 0x42
+    __HAL_UNLOCK(hi2c);
+ 800987c:	f884 3040 	strb.w	r3, [r4, #64]	; 0x40
+}
+ 8009880:	4628      	mov	r0, r5
+ 8009882:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+  HAL_StatusTypeDef status = HAL_OK;
+ 8009886:	2500      	movs	r5, #0
+ 8009888:	e7c2      	b.n	8009810 <I2C_IsErrorOccurred+0x94>
+  if (status != HAL_OK)
+ 800988a:	2d00      	cmp	r5, #0
+ 800988c:	d0f8      	beq.n	8009880 <I2C_IsErrorOccurred+0x104>
+ 800988e:	e7de      	b.n	800984e <I2C_IsErrorOccurred+0xd2>
+
+08009890 <I2C_WaitOnTXISFlagUntilTimeout>:
+{
+ 8009890:	b570      	push	{r4, r5, r6, lr}
+ 8009892:	4604      	mov	r4, r0
+ 8009894:	460d      	mov	r5, r1
+ 8009896:	4616      	mov	r6, r2
+  while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)
+ 8009898:	6823      	ldr	r3, [r4, #0]
+ 800989a:	699b      	ldr	r3, [r3, #24]
+ 800989c:	f013 0f02 	tst.w	r3, #2
+ 80098a0:	d11d      	bne.n	80098de <I2C_WaitOnTXISFlagUntilTimeout+0x4e>
+    if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK)
+ 80098a2:	4632      	mov	r2, r6
+ 80098a4:	4629      	mov	r1, r5
+ 80098a6:	4620      	mov	r0, r4
+ 80098a8:	f7ff ff68 	bl	800977c <I2C_IsErrorOccurred>
+ 80098ac:	b9c8      	cbnz	r0, 80098e2 <I2C_WaitOnTXISFlagUntilTimeout+0x52>
+    if (Timeout != HAL_MAX_DELAY)
+ 80098ae:	f1b5 3fff 	cmp.w	r5, #4294967295
+ 80098b2:	d0f1      	beq.n	8009898 <I2C_WaitOnTXISFlagUntilTimeout+0x8>
+      if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
+ 80098b4:	f7f9 f9f0 	bl	8002c98 <HAL_GetTick>
+ 80098b8:	1b80      	subs	r0, r0, r6
+ 80098ba:	42a8      	cmp	r0, r5
+ 80098bc:	d801      	bhi.n	80098c2 <I2C_WaitOnTXISFlagUntilTimeout+0x32>
+ 80098be:	2d00      	cmp	r5, #0
+ 80098c0:	d1ea      	bne.n	8009898 <I2C_WaitOnTXISFlagUntilTimeout+0x8>
+        hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
+ 80098c2:	6c63      	ldr	r3, [r4, #68]	; 0x44
+ 80098c4:	f043 0320 	orr.w	r3, r3, #32
+ 80098c8:	6463      	str	r3, [r4, #68]	; 0x44
+        hi2c->State = HAL_I2C_STATE_READY;
+ 80098ca:	2320      	movs	r3, #32
+ 80098cc:	f884 3041 	strb.w	r3, [r4, #65]	; 0x41
+        hi2c->Mode = HAL_I2C_MODE_NONE;
+ 80098d0:	2300      	movs	r3, #0
+ 80098d2:	f884 3042 	strb.w	r3, [r4, #66]	; 0x42
+        __HAL_UNLOCK(hi2c);
+ 80098d6:	f884 3040 	strb.w	r3, [r4, #64]	; 0x40
+        return HAL_ERROR;
+ 80098da:	2001      	movs	r0, #1
+ 80098dc:	e000      	b.n	80098e0 <I2C_WaitOnTXISFlagUntilTimeout+0x50>
+  return HAL_OK;
+ 80098de:	2000      	movs	r0, #0
+}
+ 80098e0:	bd70      	pop	{r4, r5, r6, pc}
+      return HAL_ERROR;
+ 80098e2:	2001      	movs	r0, #1
+ 80098e4:	e7fc      	b.n	80098e0 <I2C_WaitOnTXISFlagUntilTimeout+0x50>
+
+080098e6 <I2C_WaitOnFlagUntilTimeout>:
+{
+ 80098e6:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 80098ea:	4606      	mov	r6, r0
+ 80098ec:	4688      	mov	r8, r1
+ 80098ee:	4617      	mov	r7, r2
+ 80098f0:	461d      	mov	r5, r3
+  while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)
+ 80098f2:	6834      	ldr	r4, [r6, #0]
+ 80098f4:	69a4      	ldr	r4, [r4, #24]
+ 80098f6:	ea38 0404 	bics.w	r4, r8, r4
+ 80098fa:	bf0c      	ite	eq
+ 80098fc:	2401      	moveq	r4, #1
+ 80098fe:	2400      	movne	r4, #0
+ 8009900:	42bc      	cmp	r4, r7
+ 8009902:	d118      	bne.n	8009936 <I2C_WaitOnFlagUntilTimeout+0x50>
+    if (Timeout != HAL_MAX_DELAY)
+ 8009904:	f1b5 3fff 	cmp.w	r5, #4294967295
+ 8009908:	d0f3      	beq.n	80098f2 <I2C_WaitOnFlagUntilTimeout+0xc>
+      if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
+ 800990a:	f7f9 f9c5 	bl	8002c98 <HAL_GetTick>
+ 800990e:	9b06      	ldr	r3, [sp, #24]
+ 8009910:	1ac0      	subs	r0, r0, r3
+ 8009912:	42a8      	cmp	r0, r5
+ 8009914:	d801      	bhi.n	800991a <I2C_WaitOnFlagUntilTimeout+0x34>
+ 8009916:	2d00      	cmp	r5, #0
+ 8009918:	d1eb      	bne.n	80098f2 <I2C_WaitOnFlagUntilTimeout+0xc>
+        hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
+ 800991a:	6c73      	ldr	r3, [r6, #68]	; 0x44
+ 800991c:	f043 0320 	orr.w	r3, r3, #32
+ 8009920:	6473      	str	r3, [r6, #68]	; 0x44
+        hi2c->State = HAL_I2C_STATE_READY;
+ 8009922:	2320      	movs	r3, #32
+ 8009924:	f886 3041 	strb.w	r3, [r6, #65]	; 0x41
+        hi2c->Mode = HAL_I2C_MODE_NONE;
+ 8009928:	2300      	movs	r3, #0
+ 800992a:	f886 3042 	strb.w	r3, [r6, #66]	; 0x42
+        __HAL_UNLOCK(hi2c);
+ 800992e:	f886 3040 	strb.w	r3, [r6, #64]	; 0x40
+        return HAL_ERROR;
+ 8009932:	2001      	movs	r0, #1
+ 8009934:	e000      	b.n	8009938 <I2C_WaitOnFlagUntilTimeout+0x52>
+  return HAL_OK;
+ 8009936:	2000      	movs	r0, #0
+}
+ 8009938:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+
+0800993c <I2C_WaitOnSTOPFlagUntilTimeout>:
+{
+ 800993c:	b570      	push	{r4, r5, r6, lr}
+ 800993e:	4605      	mov	r5, r0
+ 8009940:	460c      	mov	r4, r1
+ 8009942:	4616      	mov	r6, r2
+  while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
+ 8009944:	682b      	ldr	r3, [r5, #0]
+ 8009946:	699b      	ldr	r3, [r3, #24]
+ 8009948:	f013 0f20 	tst.w	r3, #32
+ 800994c:	d11a      	bne.n	8009984 <I2C_WaitOnSTOPFlagUntilTimeout+0x48>
+    if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK)
+ 800994e:	4632      	mov	r2, r6
+ 8009950:	4621      	mov	r1, r4
+ 8009952:	4628      	mov	r0, r5
+ 8009954:	f7ff ff12 	bl	800977c <I2C_IsErrorOccurred>
+ 8009958:	b9b0      	cbnz	r0, 8009988 <I2C_WaitOnSTOPFlagUntilTimeout+0x4c>
+    if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
+ 800995a:	f7f9 f99d 	bl	8002c98 <HAL_GetTick>
+ 800995e:	1b80      	subs	r0, r0, r6
+ 8009960:	42a0      	cmp	r0, r4
+ 8009962:	d801      	bhi.n	8009968 <I2C_WaitOnSTOPFlagUntilTimeout+0x2c>
+ 8009964:	2c00      	cmp	r4, #0
+ 8009966:	d1ed      	bne.n	8009944 <I2C_WaitOnSTOPFlagUntilTimeout+0x8>
+      hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
+ 8009968:	6c6b      	ldr	r3, [r5, #68]	; 0x44
+ 800996a:	f043 0320 	orr.w	r3, r3, #32
+ 800996e:	646b      	str	r3, [r5, #68]	; 0x44
+      hi2c->State = HAL_I2C_STATE_READY;
+ 8009970:	2320      	movs	r3, #32
+ 8009972:	f885 3041 	strb.w	r3, [r5, #65]	; 0x41
+      hi2c->Mode = HAL_I2C_MODE_NONE;
+ 8009976:	2300      	movs	r3, #0
+ 8009978:	f885 3042 	strb.w	r3, [r5, #66]	; 0x42
+      __HAL_UNLOCK(hi2c);
+ 800997c:	f885 3040 	strb.w	r3, [r5, #64]	; 0x40
+      return HAL_ERROR;
+ 8009980:	2001      	movs	r0, #1
+}
+ 8009982:	bd70      	pop	{r4, r5, r6, pc}
+  return HAL_OK;
+ 8009984:	2000      	movs	r0, #0
+ 8009986:	e7fc      	b.n	8009982 <I2C_WaitOnSTOPFlagUntilTimeout+0x46>
+      return HAL_ERROR;
+ 8009988:	2001      	movs	r0, #1
+ 800998a:	e7fa      	b.n	8009982 <I2C_WaitOnSTOPFlagUntilTimeout+0x46>
+
+0800998c <I2C_WaitOnRXNEFlagUntilTimeout>:
+{
+ 800998c:	b570      	push	{r4, r5, r6, lr}
+ 800998e:	4604      	mov	r4, r0
+ 8009990:	460d      	mov	r5, r1
+ 8009992:	4616      	mov	r6, r2
+  while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET)
+ 8009994:	6823      	ldr	r3, [r4, #0]
+ 8009996:	699b      	ldr	r3, [r3, #24]
+ 8009998:	f013 0f04 	tst.w	r3, #4
+ 800999c:	d149      	bne.n	8009a32 <I2C_WaitOnRXNEFlagUntilTimeout+0xa6>
+    if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK)
+ 800999e:	4632      	mov	r2, r6
+ 80099a0:	4629      	mov	r1, r5
+ 80099a2:	4620      	mov	r0, r4
+ 80099a4:	f7ff feea 	bl	800977c <I2C_IsErrorOccurred>
+ 80099a8:	4601      	mov	r1, r0
+ 80099aa:	2800      	cmp	r0, #0
+ 80099ac:	d143      	bne.n	8009a36 <I2C_WaitOnRXNEFlagUntilTimeout+0xaa>
+    if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET)
+ 80099ae:	6823      	ldr	r3, [r4, #0]
+ 80099b0:	699a      	ldr	r2, [r3, #24]
+ 80099b2:	f012 0f20 	tst.w	r2, #32
+ 80099b6:	d113      	bne.n	80099e0 <I2C_WaitOnRXNEFlagUntilTimeout+0x54>
+    if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
+ 80099b8:	f7f9 f96e 	bl	8002c98 <HAL_GetTick>
+ 80099bc:	1b80      	subs	r0, r0, r6
+ 80099be:	42a8      	cmp	r0, r5
+ 80099c0:	d801      	bhi.n	80099c6 <I2C_WaitOnRXNEFlagUntilTimeout+0x3a>
+ 80099c2:	2d00      	cmp	r5, #0
+ 80099c4:	d1e6      	bne.n	8009994 <I2C_WaitOnRXNEFlagUntilTimeout+0x8>
+      hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
+ 80099c6:	6c63      	ldr	r3, [r4, #68]	; 0x44
+ 80099c8:	f043 0320 	orr.w	r3, r3, #32
+ 80099cc:	6463      	str	r3, [r4, #68]	; 0x44
+      hi2c->State = HAL_I2C_STATE_READY;
+ 80099ce:	2320      	movs	r3, #32
+ 80099d0:	f884 3041 	strb.w	r3, [r4, #65]	; 0x41
+      __HAL_UNLOCK(hi2c);
+ 80099d4:	2300      	movs	r3, #0
+ 80099d6:	f884 3040 	strb.w	r3, [r4, #64]	; 0x40
+      return HAL_ERROR;
+ 80099da:	2101      	movs	r1, #1
+}
+ 80099dc:	4608      	mov	r0, r1
+ 80099de:	bd70      	pop	{r4, r5, r6, pc}
+      if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) && (hi2c->XferSize > 0U))
+ 80099e0:	699a      	ldr	r2, [r3, #24]
+ 80099e2:	f012 0f04 	tst.w	r2, #4
+ 80099e6:	d002      	beq.n	80099ee <I2C_WaitOnRXNEFlagUntilTimeout+0x62>
+ 80099e8:	8d22      	ldrh	r2, [r4, #40]	; 0x28
+ 80099ea:	2a00      	cmp	r2, #0
+ 80099ec:	d1f6      	bne.n	80099dc <I2C_WaitOnRXNEFlagUntilTimeout+0x50>
+        if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET)
+ 80099ee:	699a      	ldr	r2, [r3, #24]
+ 80099f0:	f012 0f10 	tst.w	r2, #16
+ 80099f4:	d01a      	beq.n	8009a2c <I2C_WaitOnRXNEFlagUntilTimeout+0xa0>
+          __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
+ 80099f6:	2210      	movs	r2, #16
+ 80099f8:	61da      	str	r2, [r3, #28]
+          hi2c->ErrorCode = HAL_I2C_ERROR_AF;
+ 80099fa:	2304      	movs	r3, #4
+ 80099fc:	6463      	str	r3, [r4, #68]	; 0x44
+        __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
+ 80099fe:	6823      	ldr	r3, [r4, #0]
+ 8009a00:	2220      	movs	r2, #32
+ 8009a02:	61da      	str	r2, [r3, #28]
+        I2C_RESET_CR2(hi2c);
+ 8009a04:	6821      	ldr	r1, [r4, #0]
+ 8009a06:	684b      	ldr	r3, [r1, #4]
+ 8009a08:	f023 73ff 	bic.w	r3, r3, #33423360	; 0x1fe0000
+ 8009a0c:	f423 338b 	bic.w	r3, r3, #71168	; 0x11600
+ 8009a10:	f423 73ff 	bic.w	r3, r3, #510	; 0x1fe
+ 8009a14:	f023 0301 	bic.w	r3, r3, #1
+ 8009a18:	604b      	str	r3, [r1, #4]
+        hi2c->State = HAL_I2C_STATE_READY;
+ 8009a1a:	f884 2041 	strb.w	r2, [r4, #65]	; 0x41
+        hi2c->Mode = HAL_I2C_MODE_NONE;
+ 8009a1e:	2300      	movs	r3, #0
+ 8009a20:	f884 3042 	strb.w	r3, [r4, #66]	; 0x42
+        __HAL_UNLOCK(hi2c);
+ 8009a24:	f884 3040 	strb.w	r3, [r4, #64]	; 0x40
+        return HAL_ERROR;
+ 8009a28:	2101      	movs	r1, #1
+ 8009a2a:	e7d7      	b.n	80099dc <I2C_WaitOnRXNEFlagUntilTimeout+0x50>
+          hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
+ 8009a2c:	2300      	movs	r3, #0
+ 8009a2e:	6463      	str	r3, [r4, #68]	; 0x44
+ 8009a30:	e7e5      	b.n	80099fe <I2C_WaitOnRXNEFlagUntilTimeout+0x72>
+  return HAL_OK;
+ 8009a32:	2100      	movs	r1, #0
+ 8009a34:	e7d2      	b.n	80099dc <I2C_WaitOnRXNEFlagUntilTimeout+0x50>
+      return HAL_ERROR;
+ 8009a36:	2101      	movs	r1, #1
+ 8009a38:	e7d0      	b.n	80099dc <I2C_WaitOnRXNEFlagUntilTimeout+0x50>
+
+08009a3a <HAL_I2C_Init>:
+  if (hi2c == NULL)
+ 8009a3a:	2800      	cmp	r0, #0
+ 8009a3c:	d059      	beq.n	8009af2 <HAL_I2C_Init+0xb8>
+{
+ 8009a3e:	b510      	push	{r4, lr}
+ 8009a40:	4604      	mov	r4, r0
+  if (hi2c->State == HAL_I2C_STATE_RESET)
+ 8009a42:	f890 3041 	ldrb.w	r3, [r0, #65]	; 0x41
+ 8009a46:	2b00      	cmp	r3, #0
+ 8009a48:	d043      	beq.n	8009ad2 <HAL_I2C_Init+0x98>
+  hi2c->State = HAL_I2C_STATE_BUSY;
+ 8009a4a:	2324      	movs	r3, #36	; 0x24
+ 8009a4c:	f884 3041 	strb.w	r3, [r4, #65]	; 0x41
+  __HAL_I2C_DISABLE(hi2c);
+ 8009a50:	6822      	ldr	r2, [r4, #0]
+ 8009a52:	6813      	ldr	r3, [r2, #0]
+ 8009a54:	f023 0301 	bic.w	r3, r3, #1
+ 8009a58:	6013      	str	r3, [r2, #0]
+  hi2c->Instance->TIMINGR = hi2c->Init.Timing & TIMING_CLEAR_MASK;
+ 8009a5a:	6863      	ldr	r3, [r4, #4]
+ 8009a5c:	6822      	ldr	r2, [r4, #0]
+ 8009a5e:	f023 6370 	bic.w	r3, r3, #251658240	; 0xf000000
+ 8009a62:	6113      	str	r3, [r2, #16]
+  hi2c->Instance->OAR1 &= ~I2C_OAR1_OA1EN;
+ 8009a64:	6822      	ldr	r2, [r4, #0]
+ 8009a66:	6893      	ldr	r3, [r2, #8]
+ 8009a68:	f423 4300 	bic.w	r3, r3, #32768	; 0x8000
+ 8009a6c:	6093      	str	r3, [r2, #8]
+  if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT)
+ 8009a6e:	68e3      	ldr	r3, [r4, #12]
+ 8009a70:	2b01      	cmp	r3, #1
+ 8009a72:	d033      	beq.n	8009adc <HAL_I2C_Init+0xa2>
+    hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | I2C_OAR1_OA1MODE | hi2c->Init.OwnAddress1);
+ 8009a74:	68a3      	ldr	r3, [r4, #8]
+ 8009a76:	6822      	ldr	r2, [r4, #0]
+ 8009a78:	f443 4304 	orr.w	r3, r3, #33792	; 0x8400
+ 8009a7c:	6093      	str	r3, [r2, #8]
+  if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
+ 8009a7e:	68e3      	ldr	r3, [r4, #12]
+ 8009a80:	2b02      	cmp	r3, #2
+ 8009a82:	d031      	beq.n	8009ae8 <HAL_I2C_Init+0xae>
+  hi2c->Instance->CR2 |= (I2C_CR2_AUTOEND | I2C_CR2_NACK);
+ 8009a84:	6822      	ldr	r2, [r4, #0]
+ 8009a86:	6853      	ldr	r3, [r2, #4]
+ 8009a88:	f043 7300 	orr.w	r3, r3, #33554432	; 0x2000000
+ 8009a8c:	f443 4300 	orr.w	r3, r3, #32768	; 0x8000
+ 8009a90:	6053      	str	r3, [r2, #4]
+  hi2c->Instance->OAR2 &= ~I2C_DUALADDRESS_ENABLE;
+ 8009a92:	6822      	ldr	r2, [r4, #0]
+ 8009a94:	68d3      	ldr	r3, [r2, #12]
+ 8009a96:	f423 4300 	bic.w	r3, r3, #32768	; 0x8000
+ 8009a9a:	60d3      	str	r3, [r2, #12]
+  hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2 | \
+ 8009a9c:	6923      	ldr	r3, [r4, #16]
+ 8009a9e:	6962      	ldr	r2, [r4, #20]
+ 8009aa0:	4313      	orrs	r3, r2
+                          (hi2c->Init.OwnAddress2Masks << 8));
+ 8009aa2:	69a1      	ldr	r1, [r4, #24]
+  hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2 | \
+ 8009aa4:	6822      	ldr	r2, [r4, #0]
+ 8009aa6:	ea43 2301 	orr.w	r3, r3, r1, lsl #8
+ 8009aaa:	60d3      	str	r3, [r2, #12]
+  hi2c->Instance->CR1 = (hi2c->Init.GeneralCallMode | hi2c->Init.NoStretchMode);
+ 8009aac:	69e3      	ldr	r3, [r4, #28]
+ 8009aae:	6a21      	ldr	r1, [r4, #32]
+ 8009ab0:	6822      	ldr	r2, [r4, #0]
+ 8009ab2:	430b      	orrs	r3, r1
+ 8009ab4:	6013      	str	r3, [r2, #0]
+  __HAL_I2C_ENABLE(hi2c);
+ 8009ab6:	6822      	ldr	r2, [r4, #0]
+ 8009ab8:	6813      	ldr	r3, [r2, #0]
+ 8009aba:	f043 0301 	orr.w	r3, r3, #1
+ 8009abe:	6013      	str	r3, [r2, #0]
+  hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
+ 8009ac0:	2000      	movs	r0, #0
+ 8009ac2:	6460      	str	r0, [r4, #68]	; 0x44
+  hi2c->State = HAL_I2C_STATE_READY;
+ 8009ac4:	2320      	movs	r3, #32
+ 8009ac6:	f884 3041 	strb.w	r3, [r4, #65]	; 0x41
+  hi2c->PreviousState = I2C_STATE_NONE;
+ 8009aca:	6320      	str	r0, [r4, #48]	; 0x30
+  hi2c->Mode = HAL_I2C_MODE_NONE;
+ 8009acc:	f884 0042 	strb.w	r0, [r4, #66]	; 0x42
+}
+ 8009ad0:	bd10      	pop	{r4, pc}
+    hi2c->Lock = HAL_UNLOCKED;
+ 8009ad2:	f880 3040 	strb.w	r3, [r0, #64]	; 0x40
+    HAL_I2C_MspInit(hi2c);
+ 8009ad6:	f7f8 fd83 	bl	80025e0 <HAL_I2C_MspInit>
+ 8009ada:	e7b6      	b.n	8009a4a <HAL_I2C_Init+0x10>
+    hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | hi2c->Init.OwnAddress1);
+ 8009adc:	68a3      	ldr	r3, [r4, #8]
+ 8009ade:	6822      	ldr	r2, [r4, #0]
+ 8009ae0:	f443 4300 	orr.w	r3, r3, #32768	; 0x8000
+ 8009ae4:	6093      	str	r3, [r2, #8]
+ 8009ae6:	e7ca      	b.n	8009a7e <HAL_I2C_Init+0x44>
+    hi2c->Instance->CR2 = (I2C_CR2_ADD10);
+ 8009ae8:	6823      	ldr	r3, [r4, #0]
+ 8009aea:	f44f 6200 	mov.w	r2, #2048	; 0x800
+ 8009aee:	605a      	str	r2, [r3, #4]
+ 8009af0:	e7c8      	b.n	8009a84 <HAL_I2C_Init+0x4a>
+    return HAL_ERROR;
+ 8009af2:	2001      	movs	r0, #1
+}
+ 8009af4:	4770      	bx	lr
+	...
+
+08009af8 <HAL_I2C_Master_Transmit>:
+{
+ 8009af8:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
+ 8009afc:	b082      	sub	sp, #8
+ 8009afe:	460f      	mov	r7, r1
+ 8009b00:	9e0a      	ldr	r6, [sp, #40]	; 0x28
+  if (hi2c->State == HAL_I2C_STATE_READY)
+ 8009b02:	f890 1041 	ldrb.w	r1, [r0, #65]	; 0x41
+ 8009b06:	b2c9      	uxtb	r1, r1
+ 8009b08:	2920      	cmp	r1, #32
+ 8009b0a:	f040 80a3 	bne.w	8009c54 <HAL_I2C_Master_Transmit+0x15c>
+ 8009b0e:	4604      	mov	r4, r0
+ 8009b10:	4690      	mov	r8, r2
+ 8009b12:	4699      	mov	r9, r3
+    __HAL_LOCK(hi2c);
+ 8009b14:	f890 3040 	ldrb.w	r3, [r0, #64]	; 0x40
+ 8009b18:	2b01      	cmp	r3, #1
+ 8009b1a:	f000 809f 	beq.w	8009c5c <HAL_I2C_Master_Transmit+0x164>
+ 8009b1e:	f04f 0a01 	mov.w	sl, #1
+ 8009b22:	f880 a040 	strb.w	sl, [r0, #64]	; 0x40
+    tickstart = HAL_GetTick();
+ 8009b26:	f7f9 f8b7 	bl	8002c98 <HAL_GetTick>
+ 8009b2a:	4605      	mov	r5, r0
+    if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK)
+ 8009b2c:	9000      	str	r0, [sp, #0]
+ 8009b2e:	2319      	movs	r3, #25
+ 8009b30:	4652      	mov	r2, sl
+ 8009b32:	f44f 4100 	mov.w	r1, #32768	; 0x8000
+ 8009b36:	4620      	mov	r0, r4
+ 8009b38:	f7ff fed5 	bl	80098e6 <I2C_WaitOnFlagUntilTimeout>
+ 8009b3c:	2800      	cmp	r0, #0
+ 8009b3e:	f040 808f 	bne.w	8009c60 <HAL_I2C_Master_Transmit+0x168>
+    hi2c->State     = HAL_I2C_STATE_BUSY_TX;
+ 8009b42:	2321      	movs	r3, #33	; 0x21
+ 8009b44:	f884 3041 	strb.w	r3, [r4, #65]	; 0x41
+    hi2c->Mode      = HAL_I2C_MODE_MASTER;
+ 8009b48:	2310      	movs	r3, #16
+ 8009b4a:	f884 3042 	strb.w	r3, [r4, #66]	; 0x42
+    hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
+ 8009b4e:	2300      	movs	r3, #0
+ 8009b50:	6463      	str	r3, [r4, #68]	; 0x44
+    hi2c->pBuffPtr  = pData;
+ 8009b52:	f8c4 8024 	str.w	r8, [r4, #36]	; 0x24
+    hi2c->XferCount = Size;
+ 8009b56:	f8a4 902a 	strh.w	r9, [r4, #42]	; 0x2a
+    hi2c->XferISR   = NULL;
+ 8009b5a:	6363      	str	r3, [r4, #52]	; 0x34
+    if (hi2c->XferCount > MAX_NBYTE_SIZE)
+ 8009b5c:	8d63      	ldrh	r3, [r4, #42]	; 0x2a
+ 8009b5e:	b29b      	uxth	r3, r3
+ 8009b60:	2bff      	cmp	r3, #255	; 0xff
+ 8009b62:	d90a      	bls.n	8009b7a <HAL_I2C_Master_Transmit+0x82>
+      hi2c->XferSize = MAX_NBYTE_SIZE;
+ 8009b64:	22ff      	movs	r2, #255	; 0xff
+ 8009b66:	8522      	strh	r2, [r4, #40]	; 0x28
+      I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
+ 8009b68:	4b41      	ldr	r3, [pc, #260]	; (8009c70 <HAL_I2C_Master_Transmit+0x178>)
+ 8009b6a:	9300      	str	r3, [sp, #0]
+ 8009b6c:	f04f 7380 	mov.w	r3, #16777216	; 0x1000000
+ 8009b70:	4639      	mov	r1, r7
+ 8009b72:	4620      	mov	r0, r4
+ 8009b74:	f7ff fde5 	bl	8009742 <I2C_TransferConfig>
+ 8009b78:	e018      	b.n	8009bac <HAL_I2C_Master_Transmit+0xb4>
+      hi2c->XferSize = hi2c->XferCount;
+ 8009b7a:	8d62      	ldrh	r2, [r4, #42]	; 0x2a
+ 8009b7c:	b292      	uxth	r2, r2
+ 8009b7e:	8522      	strh	r2, [r4, #40]	; 0x28
+      I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
+ 8009b80:	4b3b      	ldr	r3, [pc, #236]	; (8009c70 <HAL_I2C_Master_Transmit+0x178>)
+ 8009b82:	9300      	str	r3, [sp, #0]
+ 8009b84:	f04f 7300 	mov.w	r3, #33554432	; 0x2000000
+ 8009b88:	b2d2      	uxtb	r2, r2
+ 8009b8a:	4639      	mov	r1, r7
+ 8009b8c:	4620      	mov	r0, r4
+ 8009b8e:	f7ff fdd8 	bl	8009742 <I2C_TransferConfig>
+ 8009b92:	e00b      	b.n	8009bac <HAL_I2C_Master_Transmit+0xb4>
+          hi2c->XferSize = hi2c->XferCount;
+ 8009b94:	8d62      	ldrh	r2, [r4, #42]	; 0x2a
+ 8009b96:	b292      	uxth	r2, r2
+ 8009b98:	8522      	strh	r2, [r4, #40]	; 0x28
+          I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
+ 8009b9a:	2300      	movs	r3, #0
+ 8009b9c:	9300      	str	r3, [sp, #0]
+ 8009b9e:	f04f 7300 	mov.w	r3, #33554432	; 0x2000000
+ 8009ba2:	b2d2      	uxtb	r2, r2
+ 8009ba4:	4639      	mov	r1, r7
+ 8009ba6:	4620      	mov	r0, r4
+ 8009ba8:	f7ff fdcb 	bl	8009742 <I2C_TransferConfig>
+    while (hi2c->XferCount > 0U)
+ 8009bac:	8d63      	ldrh	r3, [r4, #42]	; 0x2a
+ 8009bae:	b29b      	uxth	r3, r3
+ 8009bb0:	2b00      	cmp	r3, #0
+ 8009bb2:	d033      	beq.n	8009c1c <HAL_I2C_Master_Transmit+0x124>
+      if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
+ 8009bb4:	462a      	mov	r2, r5
+ 8009bb6:	4631      	mov	r1, r6
+ 8009bb8:	4620      	mov	r0, r4
+ 8009bba:	f7ff fe69 	bl	8009890 <I2C_WaitOnTXISFlagUntilTimeout>
+ 8009bbe:	2800      	cmp	r0, #0
+ 8009bc0:	d150      	bne.n	8009c64 <HAL_I2C_Master_Transmit+0x16c>
+      hi2c->Instance->TXDR = *hi2c->pBuffPtr;
+ 8009bc2:	6a62      	ldr	r2, [r4, #36]	; 0x24
+ 8009bc4:	6823      	ldr	r3, [r4, #0]
+ 8009bc6:	7812      	ldrb	r2, [r2, #0]
+ 8009bc8:	629a      	str	r2, [r3, #40]	; 0x28
+      hi2c->pBuffPtr++;
+ 8009bca:	6a63      	ldr	r3, [r4, #36]	; 0x24
+ 8009bcc:	3301      	adds	r3, #1
+ 8009bce:	6263      	str	r3, [r4, #36]	; 0x24
+      hi2c->XferCount--;
+ 8009bd0:	8d63      	ldrh	r3, [r4, #42]	; 0x2a
+ 8009bd2:	b29b      	uxth	r3, r3
+ 8009bd4:	3b01      	subs	r3, #1
+ 8009bd6:	b29b      	uxth	r3, r3
+ 8009bd8:	8563      	strh	r3, [r4, #42]	; 0x2a
+      hi2c->XferSize--;
+ 8009bda:	8d23      	ldrh	r3, [r4, #40]	; 0x28
+ 8009bdc:	3b01      	subs	r3, #1
+ 8009bde:	b29b      	uxth	r3, r3
+ 8009be0:	8523      	strh	r3, [r4, #40]	; 0x28
+      if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
+ 8009be2:	8d62      	ldrh	r2, [r4, #42]	; 0x2a
+ 8009be4:	b292      	uxth	r2, r2
+ 8009be6:	2a00      	cmp	r2, #0
+ 8009be8:	d0e0      	beq.n	8009bac <HAL_I2C_Master_Transmit+0xb4>
+ 8009bea:	2b00      	cmp	r3, #0
+ 8009bec:	d1de      	bne.n	8009bac <HAL_I2C_Master_Transmit+0xb4>
+        if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
+ 8009bee:	9500      	str	r5, [sp, #0]
+ 8009bf0:	4633      	mov	r3, r6
+ 8009bf2:	2200      	movs	r2, #0
+ 8009bf4:	2180      	movs	r1, #128	; 0x80
+ 8009bf6:	4620      	mov	r0, r4
+ 8009bf8:	f7ff fe75 	bl	80098e6 <I2C_WaitOnFlagUntilTimeout>
+ 8009bfc:	bba0      	cbnz	r0, 8009c68 <HAL_I2C_Master_Transmit+0x170>
+        if (hi2c->XferCount > MAX_NBYTE_SIZE)
+ 8009bfe:	8d63      	ldrh	r3, [r4, #42]	; 0x2a
+ 8009c00:	b29b      	uxth	r3, r3
+ 8009c02:	2bff      	cmp	r3, #255	; 0xff
+ 8009c04:	d9c6      	bls.n	8009b94 <HAL_I2C_Master_Transmit+0x9c>
+          hi2c->XferSize = MAX_NBYTE_SIZE;
+ 8009c06:	22ff      	movs	r2, #255	; 0xff
+ 8009c08:	8522      	strh	r2, [r4, #40]	; 0x28
+          I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
+ 8009c0a:	2300      	movs	r3, #0
+ 8009c0c:	9300      	str	r3, [sp, #0]
+ 8009c0e:	f04f 7380 	mov.w	r3, #16777216	; 0x1000000
+ 8009c12:	4639      	mov	r1, r7
+ 8009c14:	4620      	mov	r0, r4
+ 8009c16:	f7ff fd94 	bl	8009742 <I2C_TransferConfig>
+ 8009c1a:	e7c7      	b.n	8009bac <HAL_I2C_Master_Transmit+0xb4>
+    if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
+ 8009c1c:	462a      	mov	r2, r5
+ 8009c1e:	4631      	mov	r1, r6
+ 8009c20:	4620      	mov	r0, r4
+ 8009c22:	f7ff fe8b 	bl	800993c <I2C_WaitOnSTOPFlagUntilTimeout>
+ 8009c26:	bb08      	cbnz	r0, 8009c6c <HAL_I2C_Master_Transmit+0x174>
+    __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
+ 8009c28:	6823      	ldr	r3, [r4, #0]
+ 8009c2a:	2220      	movs	r2, #32
+ 8009c2c:	61da      	str	r2, [r3, #28]
+    I2C_RESET_CR2(hi2c);
+ 8009c2e:	6821      	ldr	r1, [r4, #0]
+ 8009c30:	684b      	ldr	r3, [r1, #4]
+ 8009c32:	f023 73ff 	bic.w	r3, r3, #33423360	; 0x1fe0000
+ 8009c36:	f423 338b 	bic.w	r3, r3, #71168	; 0x11600
+ 8009c3a:	f423 73ff 	bic.w	r3, r3, #510	; 0x1fe
+ 8009c3e:	f023 0301 	bic.w	r3, r3, #1
+ 8009c42:	604b      	str	r3, [r1, #4]
+    hi2c->State = HAL_I2C_STATE_READY;
+ 8009c44:	f884 2041 	strb.w	r2, [r4, #65]	; 0x41
+    hi2c->Mode  = HAL_I2C_MODE_NONE;
+ 8009c48:	2300      	movs	r3, #0
+ 8009c4a:	f884 3042 	strb.w	r3, [r4, #66]	; 0x42
+    __HAL_UNLOCK(hi2c);
+ 8009c4e:	f884 3040 	strb.w	r3, [r4, #64]	; 0x40
+    return HAL_OK;
+ 8009c52:	e000      	b.n	8009c56 <HAL_I2C_Master_Transmit+0x15e>
+    return HAL_BUSY;
+ 8009c54:	2002      	movs	r0, #2
+}
+ 8009c56:	b002      	add	sp, #8
+ 8009c58:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+    __HAL_LOCK(hi2c);
+ 8009c5c:	2002      	movs	r0, #2
+ 8009c5e:	e7fa      	b.n	8009c56 <HAL_I2C_Master_Transmit+0x15e>
+      return HAL_ERROR;
+ 8009c60:	2001      	movs	r0, #1
+ 8009c62:	e7f8      	b.n	8009c56 <HAL_I2C_Master_Transmit+0x15e>
+        return HAL_ERROR;
+ 8009c64:	2001      	movs	r0, #1
+ 8009c66:	e7f6      	b.n	8009c56 <HAL_I2C_Master_Transmit+0x15e>
+          return HAL_ERROR;
+ 8009c68:	2001      	movs	r0, #1
+ 8009c6a:	e7f4      	b.n	8009c56 <HAL_I2C_Master_Transmit+0x15e>
+      return HAL_ERROR;
+ 8009c6c:	2001      	movs	r0, #1
+ 8009c6e:	e7f2      	b.n	8009c56 <HAL_I2C_Master_Transmit+0x15e>
+ 8009c70:	80002000 	.word	0x80002000
+
+08009c74 <HAL_I2C_Master_Receive>:
+{
+ 8009c74:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
+ 8009c78:	b082      	sub	sp, #8
+ 8009c7a:	460f      	mov	r7, r1
+ 8009c7c:	9e0a      	ldr	r6, [sp, #40]	; 0x28
+  if (hi2c->State == HAL_I2C_STATE_READY)
+ 8009c7e:	f890 1041 	ldrb.w	r1, [r0, #65]	; 0x41
+ 8009c82:	b2c9      	uxtb	r1, r1
+ 8009c84:	2920      	cmp	r1, #32
+ 8009c86:	f040 80a2 	bne.w	8009dce <HAL_I2C_Master_Receive+0x15a>
+ 8009c8a:	4604      	mov	r4, r0
+ 8009c8c:	4690      	mov	r8, r2
+ 8009c8e:	4699      	mov	r9, r3
+    __HAL_LOCK(hi2c);
+ 8009c90:	f890 3040 	ldrb.w	r3, [r0, #64]	; 0x40
+ 8009c94:	2b01      	cmp	r3, #1
+ 8009c96:	f000 809e 	beq.w	8009dd6 <HAL_I2C_Master_Receive+0x162>
+ 8009c9a:	f04f 0a01 	mov.w	sl, #1
+ 8009c9e:	f880 a040 	strb.w	sl, [r0, #64]	; 0x40
+    tickstart = HAL_GetTick();
+ 8009ca2:	f7f8 fff9 	bl	8002c98 <HAL_GetTick>
+ 8009ca6:	4605      	mov	r5, r0
+    if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK)
+ 8009ca8:	9000      	str	r0, [sp, #0]
+ 8009caa:	2319      	movs	r3, #25
+ 8009cac:	4652      	mov	r2, sl
+ 8009cae:	f44f 4100 	mov.w	r1, #32768	; 0x8000
+ 8009cb2:	4620      	mov	r0, r4
+ 8009cb4:	f7ff fe17 	bl	80098e6 <I2C_WaitOnFlagUntilTimeout>
+ 8009cb8:	2800      	cmp	r0, #0
+ 8009cba:	f040 808e 	bne.w	8009dda <HAL_I2C_Master_Receive+0x166>
+    hi2c->State     = HAL_I2C_STATE_BUSY_RX;
+ 8009cbe:	2322      	movs	r3, #34	; 0x22
+ 8009cc0:	f884 3041 	strb.w	r3, [r4, #65]	; 0x41
+    hi2c->Mode      = HAL_I2C_MODE_MASTER;
+ 8009cc4:	2310      	movs	r3, #16
+ 8009cc6:	f884 3042 	strb.w	r3, [r4, #66]	; 0x42
+    hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
+ 8009cca:	2300      	movs	r3, #0
+ 8009ccc:	6463      	str	r3, [r4, #68]	; 0x44
+    hi2c->pBuffPtr  = pData;
+ 8009cce:	f8c4 8024 	str.w	r8, [r4, #36]	; 0x24
+    hi2c->XferCount = Size;
+ 8009cd2:	f8a4 902a 	strh.w	r9, [r4, #42]	; 0x2a
+    hi2c->XferISR   = NULL;
+ 8009cd6:	6363      	str	r3, [r4, #52]	; 0x34
+    if (hi2c->XferCount > MAX_NBYTE_SIZE)
+ 8009cd8:	8d63      	ldrh	r3, [r4, #42]	; 0x2a
+ 8009cda:	b29b      	uxth	r3, r3
+ 8009cdc:	2bff      	cmp	r3, #255	; 0xff
+ 8009cde:	d90a      	bls.n	8009cf6 <HAL_I2C_Master_Receive+0x82>
+      hi2c->XferSize = MAX_NBYTE_SIZE;
+ 8009ce0:	22ff      	movs	r2, #255	; 0xff
+ 8009ce2:	8522      	strh	r2, [r4, #40]	; 0x28
+      I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
+ 8009ce4:	4b41      	ldr	r3, [pc, #260]	; (8009dec <HAL_I2C_Master_Receive+0x178>)
+ 8009ce6:	9300      	str	r3, [sp, #0]
+ 8009ce8:	f04f 7380 	mov.w	r3, #16777216	; 0x1000000
+ 8009cec:	4639      	mov	r1, r7
+ 8009cee:	4620      	mov	r0, r4
+ 8009cf0:	f7ff fd27 	bl	8009742 <I2C_TransferConfig>
+ 8009cf4:	e018      	b.n	8009d28 <HAL_I2C_Master_Receive+0xb4>
+      hi2c->XferSize = hi2c->XferCount;
+ 8009cf6:	8d62      	ldrh	r2, [r4, #42]	; 0x2a
+ 8009cf8:	b292      	uxth	r2, r2
+ 8009cfa:	8522      	strh	r2, [r4, #40]	; 0x28
+      I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
+ 8009cfc:	4b3b      	ldr	r3, [pc, #236]	; (8009dec <HAL_I2C_Master_Receive+0x178>)
+ 8009cfe:	9300      	str	r3, [sp, #0]
+ 8009d00:	f04f 7300 	mov.w	r3, #33554432	; 0x2000000
+ 8009d04:	b2d2      	uxtb	r2, r2
+ 8009d06:	4639      	mov	r1, r7
+ 8009d08:	4620      	mov	r0, r4
+ 8009d0a:	f7ff fd1a 	bl	8009742 <I2C_TransferConfig>
+ 8009d0e:	e00b      	b.n	8009d28 <HAL_I2C_Master_Receive+0xb4>
+          hi2c->XferSize = hi2c->XferCount;
+ 8009d10:	8d62      	ldrh	r2, [r4, #42]	; 0x2a
+ 8009d12:	b292      	uxth	r2, r2
+ 8009d14:	8522      	strh	r2, [r4, #40]	; 0x28
+          I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
+ 8009d16:	2300      	movs	r3, #0
+ 8009d18:	9300      	str	r3, [sp, #0]
+ 8009d1a:	f04f 7300 	mov.w	r3, #33554432	; 0x2000000
+ 8009d1e:	b2d2      	uxtb	r2, r2
+ 8009d20:	4639      	mov	r1, r7
+ 8009d22:	4620      	mov	r0, r4
+ 8009d24:	f7ff fd0d 	bl	8009742 <I2C_TransferConfig>
+    while (hi2c->XferCount > 0U)
+ 8009d28:	8d63      	ldrh	r3, [r4, #42]	; 0x2a
+ 8009d2a:	b29b      	uxth	r3, r3
+ 8009d2c:	2b00      	cmp	r3, #0
+ 8009d2e:	d032      	beq.n	8009d96 <HAL_I2C_Master_Receive+0x122>
+      if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
+ 8009d30:	462a      	mov	r2, r5
+ 8009d32:	4631      	mov	r1, r6
+ 8009d34:	4620      	mov	r0, r4
+ 8009d36:	f7ff fe29 	bl	800998c <I2C_WaitOnRXNEFlagUntilTimeout>
+ 8009d3a:	2800      	cmp	r0, #0
+ 8009d3c:	d14f      	bne.n	8009dde <HAL_I2C_Master_Receive+0x16a>
+      *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
+ 8009d3e:	6823      	ldr	r3, [r4, #0]
+ 8009d40:	6a5a      	ldr	r2, [r3, #36]	; 0x24
+ 8009d42:	6a63      	ldr	r3, [r4, #36]	; 0x24
+ 8009d44:	701a      	strb	r2, [r3, #0]
+      hi2c->pBuffPtr++;
+ 8009d46:	6a63      	ldr	r3, [r4, #36]	; 0x24
+ 8009d48:	3301      	adds	r3, #1
+ 8009d4a:	6263      	str	r3, [r4, #36]	; 0x24
+      hi2c->XferSize--;
+ 8009d4c:	8d22      	ldrh	r2, [r4, #40]	; 0x28
+ 8009d4e:	3a01      	subs	r2, #1
+ 8009d50:	b292      	uxth	r2, r2
+ 8009d52:	8522      	strh	r2, [r4, #40]	; 0x28
+      hi2c->XferCount--;
+ 8009d54:	8d63      	ldrh	r3, [r4, #42]	; 0x2a
+ 8009d56:	b29b      	uxth	r3, r3
+ 8009d58:	3b01      	subs	r3, #1
+ 8009d5a:	b29b      	uxth	r3, r3
+ 8009d5c:	8563      	strh	r3, [r4, #42]	; 0x2a
+      if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
+ 8009d5e:	8d63      	ldrh	r3, [r4, #42]	; 0x2a
+ 8009d60:	b29b      	uxth	r3, r3
+ 8009d62:	2b00      	cmp	r3, #0
+ 8009d64:	d0e0      	beq.n	8009d28 <HAL_I2C_Master_Receive+0xb4>
+ 8009d66:	2a00      	cmp	r2, #0
+ 8009d68:	d1de      	bne.n	8009d28 <HAL_I2C_Master_Receive+0xb4>
+        if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
+ 8009d6a:	9500      	str	r5, [sp, #0]
+ 8009d6c:	4633      	mov	r3, r6
+ 8009d6e:	2180      	movs	r1, #128	; 0x80
+ 8009d70:	4620      	mov	r0, r4
+ 8009d72:	f7ff fdb8 	bl	80098e6 <I2C_WaitOnFlagUntilTimeout>
+ 8009d76:	bba0      	cbnz	r0, 8009de2 <HAL_I2C_Master_Receive+0x16e>
+        if (hi2c->XferCount > MAX_NBYTE_SIZE)
+ 8009d78:	8d63      	ldrh	r3, [r4, #42]	; 0x2a
+ 8009d7a:	b29b      	uxth	r3, r3
+ 8009d7c:	2bff      	cmp	r3, #255	; 0xff
+ 8009d7e:	d9c7      	bls.n	8009d10 <HAL_I2C_Master_Receive+0x9c>
+          hi2c->XferSize = MAX_NBYTE_SIZE;
+ 8009d80:	22ff      	movs	r2, #255	; 0xff
+ 8009d82:	8522      	strh	r2, [r4, #40]	; 0x28
+          I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
+ 8009d84:	2300      	movs	r3, #0
+ 8009d86:	9300      	str	r3, [sp, #0]
+ 8009d88:	f04f 7380 	mov.w	r3, #16777216	; 0x1000000
+ 8009d8c:	4639      	mov	r1, r7
+ 8009d8e:	4620      	mov	r0, r4
+ 8009d90:	f7ff fcd7 	bl	8009742 <I2C_TransferConfig>
+ 8009d94:	e7c8      	b.n	8009d28 <HAL_I2C_Master_Receive+0xb4>
+    if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
+ 8009d96:	462a      	mov	r2, r5
+ 8009d98:	4631      	mov	r1, r6
+ 8009d9a:	4620      	mov	r0, r4
+ 8009d9c:	f7ff fdce 	bl	800993c <I2C_WaitOnSTOPFlagUntilTimeout>
+ 8009da0:	bb08      	cbnz	r0, 8009de6 <HAL_I2C_Master_Receive+0x172>
+    __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
+ 8009da2:	6823      	ldr	r3, [r4, #0]
+ 8009da4:	2220      	movs	r2, #32
+ 8009da6:	61da      	str	r2, [r3, #28]
+    I2C_RESET_CR2(hi2c);
+ 8009da8:	6821      	ldr	r1, [r4, #0]
+ 8009daa:	684b      	ldr	r3, [r1, #4]
+ 8009dac:	f023 73ff 	bic.w	r3, r3, #33423360	; 0x1fe0000
+ 8009db0:	f423 338b 	bic.w	r3, r3, #71168	; 0x11600
+ 8009db4:	f423 73ff 	bic.w	r3, r3, #510	; 0x1fe
+ 8009db8:	f023 0301 	bic.w	r3, r3, #1
+ 8009dbc:	604b      	str	r3, [r1, #4]
+    hi2c->State = HAL_I2C_STATE_READY;
+ 8009dbe:	f884 2041 	strb.w	r2, [r4, #65]	; 0x41
+    hi2c->Mode  = HAL_I2C_MODE_NONE;
+ 8009dc2:	2300      	movs	r3, #0
+ 8009dc4:	f884 3042 	strb.w	r3, [r4, #66]	; 0x42
+    __HAL_UNLOCK(hi2c);
+ 8009dc8:	f884 3040 	strb.w	r3, [r4, #64]	; 0x40
+    return HAL_OK;
+ 8009dcc:	e000      	b.n	8009dd0 <HAL_I2C_Master_Receive+0x15c>
+    return HAL_BUSY;
+ 8009dce:	2002      	movs	r0, #2
+}
+ 8009dd0:	b002      	add	sp, #8
+ 8009dd2:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+    __HAL_LOCK(hi2c);
+ 8009dd6:	2002      	movs	r0, #2
+ 8009dd8:	e7fa      	b.n	8009dd0 <HAL_I2C_Master_Receive+0x15c>
+      return HAL_ERROR;
+ 8009dda:	2001      	movs	r0, #1
+ 8009ddc:	e7f8      	b.n	8009dd0 <HAL_I2C_Master_Receive+0x15c>
+        return HAL_ERROR;
+ 8009dde:	2001      	movs	r0, #1
+ 8009de0:	e7f6      	b.n	8009dd0 <HAL_I2C_Master_Receive+0x15c>
+          return HAL_ERROR;
+ 8009de2:	2001      	movs	r0, #1
+ 8009de4:	e7f4      	b.n	8009dd0 <HAL_I2C_Master_Receive+0x15c>
+      return HAL_ERROR;
+ 8009de6:	2001      	movs	r0, #1
+ 8009de8:	e7f2      	b.n	8009dd0 <HAL_I2C_Master_Receive+0x15c>
+ 8009dea:	bf00      	nop
+ 8009dec:	80002400 	.word	0x80002400
+
+08009df0 <HAL_I2CEx_ConfigAnalogFilter>:
+  *                the configuration information for the specified I2Cx peripheral.
+  * @param  AnalogFilter New state of the Analog filter.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_I2CEx_ConfigAnalogFilter(I2C_HandleTypeDef *hi2c, uint32_t AnalogFilter)
+{
+ 8009df0:	4603      	mov	r3, r0
+  /* Check the parameters */
+  assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
+  assert_param(IS_I2C_ANALOG_FILTER(AnalogFilter));
+
+  if (hi2c->State == HAL_I2C_STATE_READY)
+ 8009df2:	f890 2041 	ldrb.w	r2, [r0, #65]	; 0x41
+ 8009df6:	b2d2      	uxtb	r2, r2
+ 8009df8:	2a20      	cmp	r2, #32
+ 8009dfa:	d123      	bne.n	8009e44 <HAL_I2CEx_ConfigAnalogFilter+0x54>
+  {
+    /* Process Locked */
+    __HAL_LOCK(hi2c);
+ 8009dfc:	f890 2040 	ldrb.w	r2, [r0, #64]	; 0x40
+ 8009e00:	2a01      	cmp	r2, #1
+ 8009e02:	d021      	beq.n	8009e48 <HAL_I2CEx_ConfigAnalogFilter+0x58>
+ 8009e04:	2201      	movs	r2, #1
+ 8009e06:	f880 2040 	strb.w	r2, [r0, #64]	; 0x40
+
+    hi2c->State = HAL_I2C_STATE_BUSY;
+ 8009e0a:	2224      	movs	r2, #36	; 0x24
+ 8009e0c:	f880 2041 	strb.w	r2, [r0, #65]	; 0x41
+
+    /* Disable the selected I2C peripheral */
+    __HAL_I2C_DISABLE(hi2c);
+ 8009e10:	6800      	ldr	r0, [r0, #0]
+ 8009e12:	6802      	ldr	r2, [r0, #0]
+ 8009e14:	f022 0201 	bic.w	r2, r2, #1
+ 8009e18:	6002      	str	r2, [r0, #0]
+
+    /* Reset I2Cx ANOFF bit */
+    hi2c->Instance->CR1 &= ~(I2C_CR1_ANFOFF);
+ 8009e1a:	6818      	ldr	r0, [r3, #0]
+ 8009e1c:	6802      	ldr	r2, [r0, #0]
+ 8009e1e:	f422 5280 	bic.w	r2, r2, #4096	; 0x1000
+ 8009e22:	6002      	str	r2, [r0, #0]
+
+    /* Set analog filter bit*/
+    hi2c->Instance->CR1 |= AnalogFilter;
+ 8009e24:	6818      	ldr	r0, [r3, #0]
+ 8009e26:	6802      	ldr	r2, [r0, #0]
+ 8009e28:	4311      	orrs	r1, r2
+ 8009e2a:	6001      	str	r1, [r0, #0]
+
+    __HAL_I2C_ENABLE(hi2c);
+ 8009e2c:	6819      	ldr	r1, [r3, #0]
+ 8009e2e:	680a      	ldr	r2, [r1, #0]
+ 8009e30:	f042 0201 	orr.w	r2, r2, #1
+ 8009e34:	600a      	str	r2, [r1, #0]
+
+    hi2c->State = HAL_I2C_STATE_READY;
+ 8009e36:	2220      	movs	r2, #32
+ 8009e38:	f883 2041 	strb.w	r2, [r3, #65]	; 0x41
+
+    /* Process Unlocked */
+    __HAL_UNLOCK(hi2c);
+ 8009e3c:	2000      	movs	r0, #0
+ 8009e3e:	f883 0040 	strb.w	r0, [r3, #64]	; 0x40
+
+    return HAL_OK;
+ 8009e42:	4770      	bx	lr
+  }
+  else
+  {
+    return HAL_BUSY;
+ 8009e44:	2002      	movs	r0, #2
+ 8009e46:	4770      	bx	lr
+    __HAL_LOCK(hi2c);
+ 8009e48:	2002      	movs	r0, #2
+  }
+}
+ 8009e4a:	4770      	bx	lr
+
+08009e4c <HAL_I2CEx_ConfigDigitalFilter>:
+  *                the configuration information for the specified I2Cx peripheral.
+  * @param  DigitalFilter Coefficient of digital noise filter between Min_Data=0x00 and Max_Data=0x0F.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_I2CEx_ConfigDigitalFilter(I2C_HandleTypeDef *hi2c, uint32_t DigitalFilter)
+{
+ 8009e4c:	4603      	mov	r3, r0
+
+  /* Check the parameters */
+  assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
+  assert_param(IS_I2C_DIGITAL_FILTER(DigitalFilter));
+
+  if (hi2c->State == HAL_I2C_STATE_READY)
+ 8009e4e:	f890 2041 	ldrb.w	r2, [r0, #65]	; 0x41
+ 8009e52:	b2d2      	uxtb	r2, r2
+ 8009e54:	2a20      	cmp	r2, #32
+ 8009e56:	d121      	bne.n	8009e9c <HAL_I2CEx_ConfigDigitalFilter+0x50>
+  {
+    /* Process Locked */
+    __HAL_LOCK(hi2c);
+ 8009e58:	f890 2040 	ldrb.w	r2, [r0, #64]	; 0x40
+ 8009e5c:	2a01      	cmp	r2, #1
+ 8009e5e:	d01f      	beq.n	8009ea0 <HAL_I2CEx_ConfigDigitalFilter+0x54>
+ 8009e60:	2201      	movs	r2, #1
+ 8009e62:	f880 2040 	strb.w	r2, [r0, #64]	; 0x40
+
+    hi2c->State = HAL_I2C_STATE_BUSY;
+ 8009e66:	2224      	movs	r2, #36	; 0x24
+ 8009e68:	f880 2041 	strb.w	r2, [r0, #65]	; 0x41
+
+    /* Disable the selected I2C peripheral */
+    __HAL_I2C_DISABLE(hi2c);
+ 8009e6c:	6800      	ldr	r0, [r0, #0]
+ 8009e6e:	6802      	ldr	r2, [r0, #0]
+ 8009e70:	f022 0201 	bic.w	r2, r2, #1
+ 8009e74:	6002      	str	r2, [r0, #0]
+
+    /* Get the old register value */
+    tmpreg = hi2c->Instance->CR1;
+ 8009e76:	6818      	ldr	r0, [r3, #0]
+ 8009e78:	6802      	ldr	r2, [r0, #0]
+
+    /* Reset I2Cx DNF bits [11:8] */
+    tmpreg &= ~(I2C_CR1_DNF);
+ 8009e7a:	f422 6270 	bic.w	r2, r2, #3840	; 0xf00
+
+    /* Set I2Cx DNF coefficient */
+    tmpreg |= DigitalFilter << 8U;
+ 8009e7e:	ea42 2201 	orr.w	r2, r2, r1, lsl #8
+
+    /* Store the new register value */
+    hi2c->Instance->CR1 = tmpreg;
+ 8009e82:	6002      	str	r2, [r0, #0]
+
+    __HAL_I2C_ENABLE(hi2c);
+ 8009e84:	6819      	ldr	r1, [r3, #0]
+ 8009e86:	680a      	ldr	r2, [r1, #0]
+ 8009e88:	f042 0201 	orr.w	r2, r2, #1
+ 8009e8c:	600a      	str	r2, [r1, #0]
+
+    hi2c->State = HAL_I2C_STATE_READY;
+ 8009e8e:	2220      	movs	r2, #32
+ 8009e90:	f883 2041 	strb.w	r2, [r3, #65]	; 0x41
+
+    /* Process Unlocked */
+    __HAL_UNLOCK(hi2c);
+ 8009e94:	2000      	movs	r0, #0
+ 8009e96:	f883 0040 	strb.w	r0, [r3, #64]	; 0x40
+
+    return HAL_OK;
+ 8009e9a:	4770      	bx	lr
+  }
+  else
+  {
+    return HAL_BUSY;
+ 8009e9c:	2002      	movs	r0, #2
+ 8009e9e:	4770      	bx	lr
+    __HAL_LOCK(hi2c);
+ 8009ea0:	2002      	movs	r0, #2
+  }
+}
+ 8009ea2:	4770      	bx	lr
+
+08009ea4 <HAL_PWR_EnableBkUpAccess>:
+  *         backup domain.
+  * @retval None
+  */
+void HAL_PWR_EnableBkUpAccess(void)
+{
+  SET_BIT(PWR->CR1, PWR_CR1_DBP);
+ 8009ea4:	4a02      	ldr	r2, [pc, #8]	; (8009eb0 <HAL_PWR_EnableBkUpAccess+0xc>)
+ 8009ea6:	6813      	ldr	r3, [r2, #0]
+ 8009ea8:	f443 7380 	orr.w	r3, r3, #256	; 0x100
+ 8009eac:	6013      	str	r3, [r2, #0]
+}
+ 8009eae:	4770      	bx	lr
+ 8009eb0:	58000400 	.word	0x58000400
+
+08009eb4 <HAL_PWR_EnterSLEEPMode>:
+  * @note  When WFI entry is used, tick interrupt have to be disabled if not desired as
+  *        the interrupt wake up source.
+  * @retval None
+  */
+void HAL_PWR_EnterSLEEPMode(uint32_t Regulator, uint8_t SLEEPEntry)
+{
+ 8009eb4:	b510      	push	{r4, lr}
+ 8009eb6:	460c      	mov	r4, r1
+  /* Check the parameters */
+  assert_param(IS_PWR_REGULATOR(Regulator));
+  assert_param(IS_PWR_SLEEP_ENTRY(SLEEPEntry));
+
+  /* Set Regulator parameter */
+  if (Regulator == PWR_MAINREGULATOR_ON)
+ 8009eb8:	b9a0      	cbnz	r0, 8009ee4 <HAL_PWR_EnterSLEEPMode+0x30>
+  {
+    /* If in low-power run mode at this point, exit it */
+    if (HAL_IS_BIT_SET(PWR->SR2, (PWR_SR2_REGLPF)))
+ 8009eba:	4b0f      	ldr	r3, [pc, #60]	; (8009ef8 <HAL_PWR_EnterSLEEPMode+0x44>)
+ 8009ebc:	695b      	ldr	r3, [r3, #20]
+ 8009ebe:	f413 7f00 	tst.w	r3, #512	; 0x200
+ 8009ec2:	d10a      	bne.n	8009eda <HAL_PWR_EnterSLEEPMode+0x26>
+      HAL_PWREx_EnableLowPowerRunMode();
+    }
+  }
+
+  /* Clear SLEEPDEEP bit of Cortex System Control Register */
+  CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk));
+ 8009ec4:	4a0d      	ldr	r2, [pc, #52]	; (8009efc <HAL_PWR_EnterSLEEPMode+0x48>)
+ 8009ec6:	6913      	ldr	r3, [r2, #16]
+ 8009ec8:	f023 0304 	bic.w	r3, r3, #4
+ 8009ecc:	6113      	str	r3, [r2, #16]
+
+  /* Select SLEEP mode entry -------------------------------------------------*/
+  if (SLEEPEntry == PWR_SLEEPENTRY_WFI)
+ 8009ece:	2c01      	cmp	r4, #1
+ 8009ed0:	d010      	beq.n	8009ef4 <HAL_PWR_EnterSLEEPMode+0x40>
+    __WFI();
+  }
+  else
+  {
+    /* Request Wait For Event */
+    __SEV();
+ 8009ed2:	bf40      	sev
+    __WFE();
+ 8009ed4:	bf20      	wfe
+    __WFE();
+ 8009ed6:	bf20      	wfe
+  }
+}
+ 8009ed8:	bd10      	pop	{r4, pc}
+      if (HAL_PWREx_DisableLowPowerRunMode() != HAL_OK)
+ 8009eda:	f000 f821 	bl	8009f20 <HAL_PWREx_DisableLowPowerRunMode>
+ 8009ede:	2800      	cmp	r0, #0
+ 8009ee0:	d0f0      	beq.n	8009ec4 <HAL_PWR_EnterSLEEPMode+0x10>
+ 8009ee2:	e7f9      	b.n	8009ed8 <HAL_PWR_EnterSLEEPMode+0x24>
+    if (HAL_IS_BIT_CLR(PWR->SR2, (PWR_SR2_REGLPF)))
+ 8009ee4:	4b04      	ldr	r3, [pc, #16]	; (8009ef8 <HAL_PWR_EnterSLEEPMode+0x44>)
+ 8009ee6:	695b      	ldr	r3, [r3, #20]
+ 8009ee8:	f413 7f00 	tst.w	r3, #512	; 0x200
+ 8009eec:	d1ea      	bne.n	8009ec4 <HAL_PWR_EnterSLEEPMode+0x10>
+      HAL_PWREx_EnableLowPowerRunMode();
+ 8009eee:	f000 f80f 	bl	8009f10 <HAL_PWREx_EnableLowPowerRunMode>
+ 8009ef2:	e7e7      	b.n	8009ec4 <HAL_PWR_EnterSLEEPMode+0x10>
+    __WFI();
+ 8009ef4:	bf30      	wfi
+ 8009ef6:	e7ef      	b.n	8009ed8 <HAL_PWR_EnterSLEEPMode+0x24>
+ 8009ef8:	58000400 	.word	0x58000400
+ 8009efc:	e000ed00 	.word	0xe000ed00
+
+08009f00 <HAL_PWREx_GetVoltageRange>:
+  * @brief Return Voltage Scaling Range.
+  * @retval VOS bit field (PWR_REGULATOR_VOLTAGE_SCALE1 or PWPWR_REGULATOR_VOLTAGE_SCALE2)
+  */
+uint32_t HAL_PWREx_GetVoltageRange(void)
+{
+  return (PWR->CR1 & PWR_CR1_VOS);
+ 8009f00:	4b02      	ldr	r3, [pc, #8]	; (8009f0c <HAL_PWREx_GetVoltageRange+0xc>)
+ 8009f02:	6818      	ldr	r0, [r3, #0]
+}
+ 8009f04:	f400 60c0 	and.w	r0, r0, #1536	; 0x600
+ 8009f08:	4770      	bx	lr
+ 8009f0a:	bf00      	nop
+ 8009f0c:	58000400 	.word	0x58000400
+
+08009f10 <HAL_PWREx_EnableLowPowerRunMode>:
+  * @retval None
+  */
+void HAL_PWREx_EnableLowPowerRunMode(void)
+{
+  /* Set Regulator parameter */
+  SET_BIT(PWR->CR1, PWR_CR1_LPR);
+ 8009f10:	4a02      	ldr	r2, [pc, #8]	; (8009f1c <HAL_PWREx_EnableLowPowerRunMode+0xc>)
+ 8009f12:	6813      	ldr	r3, [r2, #0]
+ 8009f14:	f443 4380 	orr.w	r3, r3, #16384	; 0x4000
+ 8009f18:	6013      	str	r3, [r2, #0]
+}
+ 8009f1a:	4770      	bx	lr
+ 8009f1c:	58000400 	.word	0x58000400
+
+08009f20 <HAL_PWREx_DisableLowPowerRunMode>:
+HAL_StatusTypeDef HAL_PWREx_DisableLowPowerRunMode(void)
+{
+  uint32_t wait_loop_index;
+
+  /* Clear LPR bit */
+  CLEAR_BIT(PWR->CR1, PWR_CR1_LPR);
+ 8009f20:	4a0f      	ldr	r2, [pc, #60]	; (8009f60 <HAL_PWREx_DisableLowPowerRunMode+0x40>)
+ 8009f22:	6813      	ldr	r3, [r2, #0]
+ 8009f24:	f423 4380 	bic.w	r3, r3, #16384	; 0x4000
+ 8009f28:	6013      	str	r3, [r2, #0]
+
+  /* Wait until REGLPF is reset */
+  wait_loop_index = ((PWR_FLAG_SETTING_DELAY_US * SystemCoreClock) / 1000000UL);
+ 8009f2a:	4b0e      	ldr	r3, [pc, #56]	; (8009f64 <HAL_PWREx_DisableLowPowerRunMode+0x44>)
+ 8009f2c:	681b      	ldr	r3, [r3, #0]
+ 8009f2e:	2232      	movs	r2, #50	; 0x32
+ 8009f30:	fb02 f303 	mul.w	r3, r2, r3
+ 8009f34:	4a0c      	ldr	r2, [pc, #48]	; (8009f68 <HAL_PWREx_DisableLowPowerRunMode+0x48>)
+ 8009f36:	fba2 2303 	umull	r2, r3, r2, r3
+ 8009f3a:	0c9b      	lsrs	r3, r3, #18
+  while ((HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_REGLPF)) && (wait_loop_index != 0U))
+ 8009f3c:	e000      	b.n	8009f40 <HAL_PWREx_DisableLowPowerRunMode+0x20>
+  {
+    wait_loop_index--;
+ 8009f3e:	3b01      	subs	r3, #1
+  while ((HAL_IS_BIT_SET(PWR->SR2, PWR_SR2_REGLPF)) && (wait_loop_index != 0U))
+ 8009f40:	4a07      	ldr	r2, [pc, #28]	; (8009f60 <HAL_PWREx_DisableLowPowerRunMode+0x40>)
+ 8009f42:	6952      	ldr	r2, [r2, #20]
+ 8009f44:	f412 7f00 	tst.w	r2, #512	; 0x200
+ 8009f48:	d001      	beq.n	8009f4e <HAL_PWREx_DisableLowPowerRunMode+0x2e>
+ 8009f4a:	2b00      	cmp	r3, #0
+ 8009f4c:	d1f7      	bne.n	8009f3e <HAL_PWREx_DisableLowPowerRunMode+0x1e>
+  }
+  if (HAL_IS_BIT_SET(PWR->SR2, (PWR_SR2_REGLPF)))
+ 8009f4e:	4b04      	ldr	r3, [pc, #16]	; (8009f60 <HAL_PWREx_DisableLowPowerRunMode+0x40>)
+ 8009f50:	695b      	ldr	r3, [r3, #20]
+ 8009f52:	f413 7f00 	tst.w	r3, #512	; 0x200
+ 8009f56:	d101      	bne.n	8009f5c <HAL_PWREx_DisableLowPowerRunMode+0x3c>
+  {
+    return HAL_TIMEOUT;
+  }
+
+  return HAL_OK;
+ 8009f58:	2000      	movs	r0, #0
+ 8009f5a:	4770      	bx	lr
+    return HAL_TIMEOUT;
+ 8009f5c:	2003      	movs	r0, #3
+}
+ 8009f5e:	4770      	bx	lr
+ 8009f60:	58000400 	.word	0x58000400
+ 8009f64:	20000828 	.word	0x20000828
+ 8009f68:	431bde83 	.word	0x431bde83
+
+08009f6c <HAL_PWREx_EnterSTOP2Mode>:
+#ifdef CORE_CM0PLUS
+  /* Set Stop mode 2 */
+  MODIFY_REG(PWR->C2CR1, PWR_C2CR1_LPMS, PWR_LOWPOWERMODE_STOP2);
+#else
+  /* Set Stop mode 2 */
+  MODIFY_REG(PWR->CR1, PWR_CR1_LPMS, PWR_LOWPOWERMODE_STOP2);
+ 8009f6c:	4a0c      	ldr	r2, [pc, #48]	; (8009fa0 <HAL_PWREx_EnterSTOP2Mode+0x34>)
+ 8009f6e:	6813      	ldr	r3, [r2, #0]
+ 8009f70:	f023 0307 	bic.w	r3, r3, #7
+ 8009f74:	f043 0302 	orr.w	r3, r3, #2
+ 8009f78:	6013      	str	r3, [r2, #0]
+#endif
+
+  /* Set SLEEPDEEP bit of Cortex System Control Register */
+  SET_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk));
+ 8009f7a:	4a0a      	ldr	r2, [pc, #40]	; (8009fa4 <HAL_PWREx_EnterSTOP2Mode+0x38>)
+ 8009f7c:	6913      	ldr	r3, [r2, #16]
+ 8009f7e:	f043 0304 	orr.w	r3, r3, #4
+ 8009f82:	6113      	str	r3, [r2, #16]
+
+  /* Select Stop mode entry --------------------------------------------------*/
+  if (STOPEntry == PWR_STOPENTRY_WFI)
+ 8009f84:	2801      	cmp	r0, #1
+ 8009f86:	d008      	beq.n	8009f9a <HAL_PWREx_EnterSTOP2Mode+0x2e>
+    __WFI();
+  }
+  else
+  {
+    /* Request Wait For Event */
+    __SEV();
+ 8009f88:	bf40      	sev
+    __WFE();
+ 8009f8a:	bf20      	wfe
+    __WFE();
+ 8009f8c:	bf20      	wfe
+  }
+
+  /* Reset SLEEPDEEP bit of Cortex System Control Register */
+  CLEAR_BIT(SCB->SCR, ((uint32_t)SCB_SCR_SLEEPDEEP_Msk));
+ 8009f8e:	4a05      	ldr	r2, [pc, #20]	; (8009fa4 <HAL_PWREx_EnterSTOP2Mode+0x38>)
+ 8009f90:	6913      	ldr	r3, [r2, #16]
+ 8009f92:	f023 0304 	bic.w	r3, r3, #4
+ 8009f96:	6113      	str	r3, [r2, #16]
+}
+ 8009f98:	4770      	bx	lr
+    __WFI();
+ 8009f9a:	bf30      	wfi
+ 8009f9c:	e7f7      	b.n	8009f8e <HAL_PWREx_EnterSTOP2Mode+0x22>
+ 8009f9e:	bf00      	nop
+ 8009fa0:	58000400 	.word	0x58000400
+ 8009fa4:	e000ed00 	.word	0xe000ed00
+
+08009fa8 <RCC_SetFlashLatency>:
+  *            @arg PWR_REGULATOR_VOLTAGE_SCALE1   Regulator voltage output range 1 mode
+  *            @arg PWR_REGULATOR_VOLTAGE_SCALE2   Regulator voltage output range 2 mode
+  * @retval HAL status
+  */
+static HAL_StatusTypeDef RCC_SetFlashLatency(uint32_t Flash_ClkSrcFreq, uint32_t VCORE_Voltage)
+{
+ 8009fa8:	b530      	push	{r4, r5, lr}
+ 8009faa:	b089      	sub	sp, #36	; 0x24
+ 8009fac:	4604      	mov	r4, r0
+ 8009fae:	468c      	mov	ip, r1
+  /* Flash Clock source (HCLK3) range in MHz for VCORE range1 */
+  const uint16_t FLASH_CLK_SRC_RANGE_VOS1[] = {18, 36, 48};
+ 8009fb0:	4b2a      	ldr	r3, [pc, #168]	; (800a05c <RCC_SetFlashLatency+0xb4>)
+ 8009fb2:	e893 0003 	ldmia.w	r3, {r0, r1}
+ 8009fb6:	9006      	str	r0, [sp, #24]
+ 8009fb8:	f8ad 101c 	strh.w	r1, [sp, #28]
+
+  /* Flash Clock source (HCLK3) range in MHz for VCORE range2 */
+  const uint16_t FLASH_CLK_SRC_RANGE_VOS2[] = {6, 12, 16};
+ 8009fbc:	f103 0208 	add.w	r2, r3, #8
+ 8009fc0:	e892 0003 	ldmia.w	r2, {r0, r1}
+ 8009fc4:	9004      	str	r0, [sp, #16]
+ 8009fc6:	f8ad 1014 	strh.w	r1, [sp, #20]
+
+  /* Flash Latency range */
+  const uint32_t FLASH_LATENCY_RANGE[] = {FLASH_LATENCY_0, FLASH_LATENCY_1, FLASH_LATENCY_2};
+ 8009fca:	ad01      	add	r5, sp, #4
+ 8009fcc:	3310      	adds	r3, #16
+ 8009fce:	e893 0007 	ldmia.w	r3, {r0, r1, r2}
+ 8009fd2:	e885 0007 	stmia.w	r5, {r0, r1, r2}
+
+  uint32_t latency   = FLASH_LATENCY_0;  /* default value 0WS */
+  uint32_t tickstart;
+
+  if (VCORE_Voltage == PWR_REGULATOR_VOLTAGE_SCALE1)
+ 8009fd6:	f5bc 7f00 	cmp.w	ip, #512	; 0x200
+ 8009fda:	d007      	beq.n	8009fec <RCC_SetFlashLatency+0x44>
+      }
+    }
+  }
+  else  /* PWR_REGULATOR_VOLTAGE_SCALE2 */
+  {
+    for (uint32_t index = 0; index < __COUNTOF(FLASH_CLK_SRC_RANGE_VOS2); index++)
+ 8009fdc:	2300      	movs	r3, #0
+ 8009fde:	e014      	b.n	800a00a <RCC_SetFlashLatency+0x62>
+        latency = FLASH_LATENCY_RANGE[index];
+ 8009fe0:	aa08      	add	r2, sp, #32
+ 8009fe2:	eb02 0383 	add.w	r3, r2, r3, lsl #2
+ 8009fe6:	f853 5c1c 	ldr.w	r5, [r3, #-28]
+        break;
+ 8009fea:	e01e      	b.n	800a02a <RCC_SetFlashLatency+0x82>
+    for (uint32_t index = 0; index < __COUNTOF(FLASH_CLK_SRC_RANGE_VOS1); index++)
+ 8009fec:	2300      	movs	r3, #0
+ 8009fee:	2b02      	cmp	r3, #2
+ 8009ff0:	d808      	bhi.n	800a004 <RCC_SetFlashLatency+0x5c>
+      if (Flash_ClkSrcFreq <= FLASH_CLK_SRC_RANGE_VOS1[index])
+ 8009ff2:	aa08      	add	r2, sp, #32
+ 8009ff4:	eb02 0243 	add.w	r2, r2, r3, lsl #1
+ 8009ff8:	f832 2c08 	ldrh.w	r2, [r2, #-8]
+ 8009ffc:	42a2      	cmp	r2, r4
+ 8009ffe:	d2ef      	bcs.n	8009fe0 <RCC_SetFlashLatency+0x38>
+    for (uint32_t index = 0; index < __COUNTOF(FLASH_CLK_SRC_RANGE_VOS1); index++)
+ 800a000:	3301      	adds	r3, #1
+ 800a002:	e7f4      	b.n	8009fee <RCC_SetFlashLatency+0x46>
+  uint32_t latency   = FLASH_LATENCY_0;  /* default value 0WS */
+ 800a004:	2500      	movs	r5, #0
+ 800a006:	e010      	b.n	800a02a <RCC_SetFlashLatency+0x82>
+    for (uint32_t index = 0; index < __COUNTOF(FLASH_CLK_SRC_RANGE_VOS2); index++)
+ 800a008:	3301      	adds	r3, #1
+ 800a00a:	2b02      	cmp	r3, #2
+ 800a00c:	d80c      	bhi.n	800a028 <RCC_SetFlashLatency+0x80>
+    {
+      if (Flash_ClkSrcFreq <= FLASH_CLK_SRC_RANGE_VOS2[index])
+ 800a00e:	aa08      	add	r2, sp, #32
+ 800a010:	eb02 0243 	add.w	r2, r2, r3, lsl #1
+ 800a014:	f832 2c10 	ldrh.w	r2, [r2, #-16]
+ 800a018:	42a2      	cmp	r2, r4
+ 800a01a:	d3f5      	bcc.n	800a008 <RCC_SetFlashLatency+0x60>
+      {
+        latency = FLASH_LATENCY_RANGE[index];
+ 800a01c:	aa08      	add	r2, sp, #32
+ 800a01e:	eb02 0383 	add.w	r3, r2, r3, lsl #2
+ 800a022:	f853 5c1c 	ldr.w	r5, [r3, #-28]
+        break;
+ 800a026:	e000      	b.n	800a02a <RCC_SetFlashLatency+0x82>
+  uint32_t latency   = FLASH_LATENCY_0;  /* default value 0WS */
+ 800a028:	2500      	movs	r5, #0
+      }
+    }
+  }
+
+  __HAL_FLASH_SET_LATENCY(latency);
+ 800a02a:	4a0d      	ldr	r2, [pc, #52]	; (800a060 <RCC_SetFlashLatency+0xb8>)
+ 800a02c:	6813      	ldr	r3, [r2, #0]
+ 800a02e:	f023 0307 	bic.w	r3, r3, #7
+ 800a032:	432b      	orrs	r3, r5
+ 800a034:	6013      	str	r3, [r2, #0]
+
+  /* Get Start Tick*/
+  tickstart = HAL_GetTick();
+ 800a036:	f7f8 fe2f 	bl	8002c98 <HAL_GetTick>
+ 800a03a:	4604      	mov	r4, r0
+
+  /* Check that the new number of wait states is taken into account to access the Flash
+     memory by reading the FLASH_ACR register */
+  while (__HAL_FLASH_GET_LATENCY() != latency)
+ 800a03c:	4b08      	ldr	r3, [pc, #32]	; (800a060 <RCC_SetFlashLatency+0xb8>)
+ 800a03e:	681b      	ldr	r3, [r3, #0]
+ 800a040:	f003 0307 	and.w	r3, r3, #7
+ 800a044:	42ab      	cmp	r3, r5
+ 800a046:	d006      	beq.n	800a056 <RCC_SetFlashLatency+0xae>
+  {
+    if ((HAL_GetTick() - tickstart) > LATENCY_TIMEOUT_VALUE)
+ 800a048:	f7f8 fe26 	bl	8002c98 <HAL_GetTick>
+ 800a04c:	1b00      	subs	r0, r0, r4
+ 800a04e:	2802      	cmp	r0, #2
+ 800a050:	d9f4      	bls.n	800a03c <RCC_SetFlashLatency+0x94>
+    {
+      return HAL_TIMEOUT;
+ 800a052:	2003      	movs	r0, #3
+ 800a054:	e000      	b.n	800a058 <RCC_SetFlashLatency+0xb0>
+    }
+  }
+  return HAL_OK;
+ 800a056:	2000      	movs	r0, #0
+}
+ 800a058:	b009      	add	sp, #36	; 0x24
+ 800a05a:	bd30      	pop	{r4, r5, pc}
+ 800a05c:	08017870 	.word	0x08017870
+ 800a060:	58004000 	.word	0x58004000
+
+0800a064 <RCC_SetFlashLatencyFromMSIRange>:
+{
+ 800a064:	b510      	push	{r4, lr}
+  msifreq           = __LL_RCC_CALC_MSI_FREQ(LL_RCC_MSIRANGESEL_RUN, MSI_Range);
+ 800a066:	f3c0 1003 	ubfx	r0, r0, #4, #4
+ 800a06a:	4b0c      	ldr	r3, [pc, #48]	; (800a09c <RCC_SetFlashLatencyFromMSIRange+0x38>)
+ 800a06c:	f853 4020 	ldr.w	r4, [r3, r0, lsl #2]
+  return (uint32_t)(READ_BIT(RCC->EXTCFGR, RCC_EXTCFGR_SHDHPRE) << 4);
+ 800a070:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a074:	f8d3 3108 	ldr.w	r3, [r3, #264]	; 0x108
+  flash_clksrcfreq  = __LL_RCC_CALC_HCLK3_FREQ(msifreq, LL_RCC_GetAHB3Prescaler());
+ 800a078:	f003 030f 	and.w	r3, r3, #15
+ 800a07c:	4a08      	ldr	r2, [pc, #32]	; (800a0a0 <RCC_SetFlashLatencyFromMSIRange+0x3c>)
+ 800a07e:	f852 3023 	ldr.w	r3, [r2, r3, lsl #2]
+ 800a082:	fbb4 f4f3 	udiv	r4, r4, r3
+  return RCC_SetFlashLatency((flash_clksrcfreq / MEGA_HZ), HAL_PWREx_GetVoltageRange());
+ 800a086:	f7ff ff3b 	bl	8009f00 <HAL_PWREx_GetVoltageRange>
+ 800a08a:	4601      	mov	r1, r0
+ 800a08c:	4b05      	ldr	r3, [pc, #20]	; (800a0a4 <RCC_SetFlashLatencyFromMSIRange+0x40>)
+ 800a08e:	fba3 3404 	umull	r3, r4, r3, r4
+ 800a092:	0ca0      	lsrs	r0, r4, #18
+ 800a094:	f7ff ff88 	bl	8009fa8 <RCC_SetFlashLatency>
+}
+ 800a098:	bd10      	pop	{r4, pc}
+ 800a09a:	bf00      	nop
+ 800a09c:	0801855c 	.word	0x0801855c
+ 800a0a0:	080184fc 	.word	0x080184fc
+ 800a0a4:	431bde83 	.word	0x431bde83
+
+0800a0a8 <HAL_RCC_GetSysClockFreq>:
+  return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_SWS));
+ 800a0a8:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a0ac:	6899      	ldr	r1, [r3, #8]
+  *         @arg @ref LL_RCC_PLLSOURCE_HSI
+  *         @arg @ref LL_RCC_PLLSOURCE_HSE
+  */
+__STATIC_INLINE uint32_t LL_RCC_PLL_GetMainSource(void)
+{
+  return (uint32_t)(READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC));
+ 800a0ae:	68db      	ldr	r3, [r3, #12]
+ 800a0b0:	f003 0303 	and.w	r3, r3, #3
+  if ((sysclk_source == RCC_SYSCLKSOURCE_STATUS_MSI) ||
+ 800a0b4:	f011 010c 	ands.w	r1, r1, #12
+ 800a0b8:	d00a      	beq.n	800a0d0 <HAL_RCC_GetSysClockFreq+0x28>
+ 800a0ba:	290c      	cmp	r1, #12
+ 800a0bc:	d006      	beq.n	800a0cc <HAL_RCC_GetSysClockFreq+0x24>
+  else if (sysclk_source == RCC_SYSCLKSOURCE_STATUS_HSI)
+ 800a0be:	2904      	cmp	r1, #4
+ 800a0c0:	d047      	beq.n	800a152 <HAL_RCC_GetSysClockFreq+0xaa>
+  else if (sysclk_source == RCC_SYSCLKSOURCE_STATUS_HSE)
+ 800a0c2:	2908      	cmp	r1, #8
+ 800a0c4:	d03b      	beq.n	800a13e <HAL_RCC_GetSysClockFreq+0x96>
+  uint32_t msifreq = 0U;
+ 800a0c6:	2200      	movs	r2, #0
+  uint32_t sysclockfreq = 0U;
+ 800a0c8:	4610      	mov	r0, r2
+ 800a0ca:	e026      	b.n	800a11a <HAL_RCC_GetSysClockFreq+0x72>
+      ((sysclk_source == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (pllsource == RCC_PLLSOURCE_MSI)))
+ 800a0cc:	2b01      	cmp	r3, #1
+ 800a0ce:	d1f6      	bne.n	800a0be <HAL_RCC_GetSysClockFreq+0x16>
+  return ((READ_BIT(RCC->CR, RCC_CR_MSIRGSEL) == (RCC_CR_MSIRGSEL)) ? 1UL : 0UL);
+ 800a0d0:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a0d4:	681b      	ldr	r3, [r3, #0]
+ 800a0d6:	f013 0308 	ands.w	r3, r3, #8
+ 800a0da:	d00d      	beq.n	800a0f8 <HAL_RCC_GetSysClockFreq+0x50>
+ 800a0dc:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a0e0:	681b      	ldr	r3, [r3, #0]
+ 800a0e2:	f013 0308 	ands.w	r3, r3, #8
+ 800a0e6:	d124      	bne.n	800a132 <HAL_RCC_GetSysClockFreq+0x8a>
+  return (uint32_t)(READ_BIT(RCC->CSR, RCC_CSR_MSISRANGE));
+ 800a0e8:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800a0ec:	f8d2 2094 	ldr.w	r2, [r2, #148]	; 0x94
+    msifreq = __LL_RCC_CALC_MSI_FREQ(LL_RCC_MSI_IsEnabledRangeSelect(),
+ 800a0f0:	4a2e      	ldr	r2, [pc, #184]	; (800a1ac <HAL_RCC_GetSysClockFreq+0x104>)
+ 800a0f2:	f852 2023 	ldr.w	r2, [r2, r3, lsl #2]
+ 800a0f6:	e00e      	b.n	800a116 <HAL_RCC_GetSysClockFreq+0x6e>
+  return ((READ_BIT(RCC->CR, RCC_CR_MSIRGSEL) == (RCC_CR_MSIRGSEL)) ? 1UL : 0UL);
+ 800a0f8:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800a0fc:	6812      	ldr	r2, [r2, #0]
+ 800a0fe:	f012 0f08 	tst.w	r2, #8
+ 800a102:	d112      	bne.n	800a12a <HAL_RCC_GetSysClockFreq+0x82>
+  return (uint32_t)(READ_BIT(RCC->CSR, RCC_CSR_MSISRANGE));
+ 800a104:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a108:	f8d3 3094 	ldr.w	r3, [r3, #148]	; 0x94
+ 800a10c:	f3c3 2303 	ubfx	r3, r3, #8, #4
+ 800a110:	4a26      	ldr	r2, [pc, #152]	; (800a1ac <HAL_RCC_GetSysClockFreq+0x104>)
+ 800a112:	f852 2023 	ldr.w	r2, [r2, r3, lsl #2]
+    if (sysclk_source == RCC_SYSCLKSOURCE_STATUS_MSI)
+ 800a116:	b1d1      	cbz	r1, 800a14e <HAL_RCC_GetSysClockFreq+0xa6>
+  uint32_t sysclockfreq = 0U;
+ 800a118:	2000      	movs	r0, #0
+  return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_SWS));
+ 800a11a:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a11e:	689b      	ldr	r3, [r3, #8]
+ 800a120:	f003 030c 	and.w	r3, r3, #12
+  if (__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK)
+ 800a124:	2b0c      	cmp	r3, #12
+ 800a126:	d01a      	beq.n	800a15e <HAL_RCC_GetSysClockFreq+0xb6>
+}
+ 800a128:	4770      	bx	lr
+  return (uint32_t)(READ_BIT(RCC->CR, RCC_CR_MSIRANGE));
+ 800a12a:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800a12e:	6812      	ldr	r2, [r2, #0]
+ 800a130:	e7ee      	b.n	800a110 <HAL_RCC_GetSysClockFreq+0x68>
+ 800a132:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a136:	681b      	ldr	r3, [r3, #0]
+    msifreq = __LL_RCC_CALC_MSI_FREQ(LL_RCC_MSI_IsEnabledRangeSelect(),
+ 800a138:	f3c3 1303 	ubfx	r3, r3, #4, #4
+ 800a13c:	e7d8      	b.n	800a0f0 <HAL_RCC_GetSysClockFreq+0x48>
+  return ((READ_BIT(RCC->CR, RCC_CR_HSEPRE) == (RCC_CR_HSEPRE)) ? 1UL : 0UL);
+ 800a13e:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a142:	681a      	ldr	r2, [r3, #0]
+ 800a144:	f412 1280 	ands.w	r2, r2, #1048576	; 0x100000
+ 800a148:	d106      	bne.n	800a158 <HAL_RCC_GetSysClockFreq+0xb0>
+      sysclockfreq = HSE_VALUE;
+ 800a14a:	4819      	ldr	r0, [pc, #100]	; (800a1b0 <HAL_RCC_GetSysClockFreq+0x108>)
+ 800a14c:	e7e5      	b.n	800a11a <HAL_RCC_GetSysClockFreq+0x72>
+      sysclockfreq = msifreq;
+ 800a14e:	4610      	mov	r0, r2
+ 800a150:	e7e3      	b.n	800a11a <HAL_RCC_GetSysClockFreq+0x72>
+  uint32_t msifreq = 0U;
+ 800a152:	2200      	movs	r2, #0
+    sysclockfreq = HSI_VALUE;
+ 800a154:	4817      	ldr	r0, [pc, #92]	; (800a1b4 <HAL_RCC_GetSysClockFreq+0x10c>)
+ 800a156:	e7e0      	b.n	800a11a <HAL_RCC_GetSysClockFreq+0x72>
+  uint32_t msifreq = 0U;
+ 800a158:	2200      	movs	r2, #0
+      sysclockfreq = HSE_VALUE / 2U;
+ 800a15a:	4816      	ldr	r0, [pc, #88]	; (800a1b4 <HAL_RCC_GetSysClockFreq+0x10c>)
+ 800a15c:	e7dd      	b.n	800a11a <HAL_RCC_GetSysClockFreq+0x72>
+  return (uint32_t)(READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC));
+ 800a15e:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a162:	68db      	ldr	r3, [r3, #12]
+ 800a164:	f003 0303 	and.w	r3, r3, #3
+    switch (pllsource)
+ 800a168:	2b02      	cmp	r3, #2
+ 800a16a:	d009      	beq.n	800a180 <HAL_RCC_GetSysClockFreq+0xd8>
+ 800a16c:	2b03      	cmp	r3, #3
+ 800a16e:	d108      	bne.n	800a182 <HAL_RCC_GetSysClockFreq+0xda>
+  return ((READ_BIT(RCC->CR, RCC_CR_HSEPRE) == (RCC_CR_HSEPRE)) ? 1UL : 0UL);
+ 800a170:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a174:	681b      	ldr	r3, [r3, #0]
+ 800a176:	f413 1f80 	tst.w	r3, #1048576	; 0x100000
+ 800a17a:	d115      	bne.n	800a1a8 <HAL_RCC_GetSysClockFreq+0x100>
+          pllinputfreq = HSE_VALUE;
+ 800a17c:	4a0c      	ldr	r2, [pc, #48]	; (800a1b0 <HAL_RCC_GetSysClockFreq+0x108>)
+ 800a17e:	e000      	b.n	800a182 <HAL_RCC_GetSysClockFreq+0xda>
+    switch (pllsource)
+ 800a180:	4a0c      	ldr	r2, [pc, #48]	; (800a1b4 <HAL_RCC_GetSysClockFreq+0x10c>)
+  return (uint32_t)(READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >>  RCC_PLLCFGR_PLLN_Pos);
+ 800a182:	f04f 41b0 	mov.w	r1, #1476395008	; 0x58000000
+ 800a186:	68cb      	ldr	r3, [r1, #12]
+ 800a188:	f3c3 2306 	ubfx	r3, r3, #8, #7
+    sysclockfreq = __LL_RCC_CALC_PLLCLK_FREQ(pllinputfreq, LL_RCC_PLL_GetDivider(),
+ 800a18c:	fb03 f202 	mul.w	r2, r3, r2
+  return (uint32_t)(READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLM));
+ 800a190:	68cb      	ldr	r3, [r1, #12]
+ 800a192:	f3c3 1302 	ubfx	r3, r3, #4, #3
+ 800a196:	3301      	adds	r3, #1
+ 800a198:	fbb2 f2f3 	udiv	r2, r2, r3
+  return (uint32_t)(READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLR));
+ 800a19c:	68c8      	ldr	r0, [r1, #12]
+ 800a19e:	0f40      	lsrs	r0, r0, #29
+ 800a1a0:	3001      	adds	r0, #1
+ 800a1a2:	fbb2 f0f0 	udiv	r0, r2, r0
+  return sysclockfreq;
+ 800a1a6:	e7bf      	b.n	800a128 <HAL_RCC_GetSysClockFreq+0x80>
+          pllinputfreq = HSE_VALUE / 2U;
+ 800a1a8:	4a02      	ldr	r2, [pc, #8]	; (800a1b4 <HAL_RCC_GetSysClockFreq+0x10c>)
+ 800a1aa:	e7ea      	b.n	800a182 <HAL_RCC_GetSysClockFreq+0xda>
+ 800a1ac:	0801855c 	.word	0x0801855c
+ 800a1b0:	01e84800 	.word	0x01e84800
+ 800a1b4:	00f42400 	.word	0x00f42400
+
+0800a1b8 <HAL_RCC_GetHCLKFreq>:
+{
+ 800a1b8:	b508      	push	{r3, lr}
+  return ((uint32_t)(__LL_RCC_CALC_HCLK1_FREQ(HAL_RCC_GetSysClockFreq(), LL_RCC_GetAHBPrescaler())));
+ 800a1ba:	f7ff ff75 	bl	800a0a8 <HAL_RCC_GetSysClockFreq>
+  return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_HPRE));
+ 800a1be:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a1c2:	689b      	ldr	r3, [r3, #8]
+ 800a1c4:	f3c3 1303 	ubfx	r3, r3, #4, #4
+ 800a1c8:	4a02      	ldr	r2, [pc, #8]	; (800a1d4 <HAL_RCC_GetHCLKFreq+0x1c>)
+ 800a1ca:	f852 3023 	ldr.w	r3, [r2, r3, lsl #2]
+}
+ 800a1ce:	fbb0 f0f3 	udiv	r0, r0, r3
+ 800a1d2:	bd08      	pop	{r3, pc}
+ 800a1d4:	080184fc 	.word	0x080184fc
+
+0800a1d8 <HAL_RCC_OscConfig>:
+  if (RCC_OscInitStruct == NULL)
+ 800a1d8:	2800      	cmp	r0, #0
+ 800a1da:	f000 8311 	beq.w	800a800 <HAL_RCC_OscConfig+0x628>
+{
+ 800a1de:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 800a1e0:	4604      	mov	r4, r0
+  return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_SWS));
+ 800a1e2:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a1e6:	689d      	ldr	r5, [r3, #8]
+ 800a1e8:	f005 050c 	and.w	r5, r5, #12
+  return (uint32_t)(READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC));
+ 800a1ec:	68de      	ldr	r6, [r3, #12]
+ 800a1ee:	f006 0603 	and.w	r6, r6, #3
+  if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_MSI) == RCC_OSCILLATORTYPE_MSI)
+ 800a1f2:	6803      	ldr	r3, [r0, #0]
+ 800a1f4:	f013 0f20 	tst.w	r3, #32
+ 800a1f8:	d02a      	beq.n	800a250 <HAL_RCC_OscConfig+0x78>
+    if ((sysclk_source == RCC_SYSCLKSOURCE_STATUS_MSI) ||
+ 800a1fa:	2d00      	cmp	r5, #0
+ 800a1fc:	d065      	beq.n	800a2ca <HAL_RCC_OscConfig+0xf2>
+ 800a1fe:	2d0c      	cmp	r5, #12
+ 800a200:	d061      	beq.n	800a2c6 <HAL_RCC_OscConfig+0xee>
+      if (RCC_OscInitStruct->MSIState != RCC_MSI_OFF)
+ 800a202:	6a23      	ldr	r3, [r4, #32]
+ 800a204:	2b00      	cmp	r3, #0
+ 800a206:	f000 80bf 	beq.w	800a388 <HAL_RCC_OscConfig+0x1b0>
+  SET_BIT(RCC->CR, RCC_CR_MSION);
+ 800a20a:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800a20e:	6813      	ldr	r3, [r2, #0]
+ 800a210:	f043 0301 	orr.w	r3, r3, #1
+ 800a214:	6013      	str	r3, [r2, #0]
+        tickstart = HAL_GetTick();
+ 800a216:	f7f8 fd3f 	bl	8002c98 <HAL_GetTick>
+ 800a21a:	4607      	mov	r7, r0
+  return ((READ_BIT(RCC->CR, RCC_CR_MSIRDY) == (RCC_CR_MSIRDY)) ? 1UL : 0UL);
+ 800a21c:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a220:	681b      	ldr	r3, [r3, #0]
+ 800a222:	f013 0f02 	tst.w	r3, #2
+ 800a226:	f000 80a7 	beq.w	800a378 <HAL_RCC_OscConfig+0x1a0>
+        __HAL_RCC_MSI_RANGE_CONFIG(RCC_OscInitStruct->MSIClockRange);
+ 800a22a:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a22e:	681a      	ldr	r2, [r3, #0]
+ 800a230:	f042 0208 	orr.w	r2, r2, #8
+ 800a234:	601a      	str	r2, [r3, #0]
+ 800a236:	681a      	ldr	r2, [r3, #0]
+ 800a238:	f022 02f0 	bic.w	r2, r2, #240	; 0xf0
+ 800a23c:	6aa1      	ldr	r1, [r4, #40]	; 0x28
+ 800a23e:	430a      	orrs	r2, r1
+ 800a240:	601a      	str	r2, [r3, #0]
+        __HAL_RCC_MSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->MSICalibrationValue);
+ 800a242:	6a61      	ldr	r1, [r4, #36]	; 0x24
+  MODIFY_REG(RCC->ICSCR, RCC_ICSCR_MSITRIM, Value << RCC_ICSCR_MSITRIM_Pos);
+ 800a244:	685a      	ldr	r2, [r3, #4]
+ 800a246:	f422 427f 	bic.w	r2, r2, #65280	; 0xff00
+ 800a24a:	ea42 2201 	orr.w	r2, r2, r1, lsl #8
+ 800a24e:	605a      	str	r2, [r3, #4]
+  if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE)
+ 800a250:	6823      	ldr	r3, [r4, #0]
+ 800a252:	f013 0f01 	tst.w	r3, #1
+ 800a256:	f000 80b5 	beq.w	800a3c4 <HAL_RCC_OscConfig+0x1ec>
+    if ((sysclk_source == RCC_SYSCLKSOURCE_STATUS_HSE) ||
+ 800a25a:	2d08      	cmp	r5, #8
+ 800a25c:	f000 80ae 	beq.w	800a3bc <HAL_RCC_OscConfig+0x1e4>
+ 800a260:	2d0c      	cmp	r5, #12
+ 800a262:	f000 80a8 	beq.w	800a3b6 <HAL_RCC_OscConfig+0x1de>
+      MODIFY_REG(RCC->CR, RCC_CR_HSEPRE, RCC_OscInitStruct->HSEDiv);
+ 800a266:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800a26a:	6813      	ldr	r3, [r2, #0]
+ 800a26c:	f423 1380 	bic.w	r3, r3, #1048576	; 0x100000
+ 800a270:	68a1      	ldr	r1, [r4, #8]
+ 800a272:	430b      	orrs	r3, r1
+ 800a274:	6013      	str	r3, [r2, #0]
+      __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState);
+ 800a276:	6863      	ldr	r3, [r4, #4]
+ 800a278:	f5b3 3f80 	cmp.w	r3, #65536	; 0x10000
+ 800a27c:	f000 80c4 	beq.w	800a408 <HAL_RCC_OscConfig+0x230>
+ 800a280:	f5b3 1f04 	cmp.w	r3, #2162688	; 0x210000
+ 800a284:	f000 80c5 	beq.w	800a412 <HAL_RCC_OscConfig+0x23a>
+  CLEAR_BIT(RCC->CR, RCC_CR_HSEON);
+ 800a288:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a28c:	681a      	ldr	r2, [r3, #0]
+ 800a28e:	f422 3280 	bic.w	r2, r2, #65536	; 0x10000
+ 800a292:	601a      	str	r2, [r3, #0]
+  CLEAR_BIT(RCC->CR, RCC_CR_HSEBYPPWR);
+ 800a294:	681a      	ldr	r2, [r3, #0]
+ 800a296:	f422 1200 	bic.w	r2, r2, #2097152	; 0x200000
+ 800a29a:	601a      	str	r2, [r3, #0]
+      if (RCC_OscInitStruct->HSEState != RCC_HSE_OFF)
+ 800a29c:	6863      	ldr	r3, [r4, #4]
+ 800a29e:	2b00      	cmp	r3, #0
+ 800a2a0:	f000 80c2 	beq.w	800a428 <HAL_RCC_OscConfig+0x250>
+        tickstart = HAL_GetTick();
+ 800a2a4:	f7f8 fcf8 	bl	8002c98 <HAL_GetTick>
+ 800a2a8:	4607      	mov	r7, r0
+  return ((READ_BIT(RCC->CR, RCC_CR_HSERDY) == (RCC_CR_HSERDY)) ? 1UL : 0UL);
+ 800a2aa:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a2ae:	681b      	ldr	r3, [r3, #0]
+ 800a2b0:	f413 3f00 	tst.w	r3, #131072	; 0x20000
+ 800a2b4:	f040 8086 	bne.w	800a3c4 <HAL_RCC_OscConfig+0x1ec>
+          if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE)
+ 800a2b8:	f7f8 fcee 	bl	8002c98 <HAL_GetTick>
+ 800a2bc:	1bc0      	subs	r0, r0, r7
+ 800a2be:	2864      	cmp	r0, #100	; 0x64
+ 800a2c0:	d9f3      	bls.n	800a2aa <HAL_RCC_OscConfig+0xd2>
+            return HAL_TIMEOUT;
+ 800a2c2:	2003      	movs	r0, #3
+ 800a2c4:	e2a9      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+        ((sysclk_source == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (pll_config == RCC_PLLSOURCE_MSI)))
+ 800a2c6:	2e01      	cmp	r6, #1
+ 800a2c8:	d19b      	bne.n	800a202 <HAL_RCC_OscConfig+0x2a>
+      if (RCC_OscInitStruct->MSIState == RCC_MSI_OFF)
+ 800a2ca:	6a23      	ldr	r3, [r4, #32]
+ 800a2cc:	2b00      	cmp	r3, #0
+ 800a2ce:	f000 8299 	beq.w	800a804 <HAL_RCC_OscConfig+0x62c>
+        if (RCC_OscInitStruct->MSIClockRange > __HAL_RCC_GET_MSI_RANGE())
+ 800a2d2:	6aa0      	ldr	r0, [r4, #40]	; 0x28
+ 800a2d4:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a2d8:	681b      	ldr	r3, [r3, #0]
+ 800a2da:	f013 0f08 	tst.w	r3, #8
+ 800a2de:	d029      	beq.n	800a334 <HAL_RCC_OscConfig+0x15c>
+ 800a2e0:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a2e4:	681b      	ldr	r3, [r3, #0]
+ 800a2e6:	f003 03f0 	and.w	r3, r3, #240	; 0xf0
+ 800a2ea:	4298      	cmp	r0, r3
+ 800a2ec:	d92a      	bls.n	800a344 <HAL_RCC_OscConfig+0x16c>
+          if (RCC_SetFlashLatencyFromMSIRange(RCC_OscInitStruct->MSIClockRange) != HAL_OK)
+ 800a2ee:	f7ff feb9 	bl	800a064 <RCC_SetFlashLatencyFromMSIRange>
+ 800a2f2:	2800      	cmp	r0, #0
+ 800a2f4:	f040 8288 	bne.w	800a808 <HAL_RCC_OscConfig+0x630>
+          __HAL_RCC_MSI_RANGE_CONFIG(RCC_OscInitStruct->MSIClockRange);
+ 800a2f8:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a2fc:	681a      	ldr	r2, [r3, #0]
+ 800a2fe:	f042 0208 	orr.w	r2, r2, #8
+ 800a302:	601a      	str	r2, [r3, #0]
+ 800a304:	681a      	ldr	r2, [r3, #0]
+ 800a306:	f022 02f0 	bic.w	r2, r2, #240	; 0xf0
+ 800a30a:	6aa1      	ldr	r1, [r4, #40]	; 0x28
+ 800a30c:	430a      	orrs	r2, r1
+ 800a30e:	601a      	str	r2, [r3, #0]
+          __HAL_RCC_MSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->MSICalibrationValue);
+ 800a310:	6a61      	ldr	r1, [r4, #36]	; 0x24
+  MODIFY_REG(RCC->ICSCR, RCC_ICSCR_MSITRIM, Value << RCC_ICSCR_MSITRIM_Pos);
+ 800a312:	685a      	ldr	r2, [r3, #4]
+ 800a314:	f422 427f 	bic.w	r2, r2, #65280	; 0xff00
+ 800a318:	ea42 2201 	orr.w	r2, r2, r1, lsl #8
+ 800a31c:	605a      	str	r2, [r3, #4]
+        SystemCoreClock = HAL_RCC_GetHCLKFreq();
+ 800a31e:	f7ff ff4b 	bl	800a1b8 <HAL_RCC_GetHCLKFreq>
+ 800a322:	4bba      	ldr	r3, [pc, #744]	; (800a60c <HAL_RCC_OscConfig+0x434>)
+ 800a324:	6018      	str	r0, [r3, #0]
+        status = HAL_InitTick(uwTickPrio);
+ 800a326:	4bba      	ldr	r3, [pc, #744]	; (800a610 <HAL_RCC_OscConfig+0x438>)
+ 800a328:	6818      	ldr	r0, [r3, #0]
+ 800a32a:	f7f8 fcb3 	bl	8002c94 <HAL_InitTick>
+        if (status != HAL_OK)
+ 800a32e:	2800      	cmp	r0, #0
+ 800a330:	d08e      	beq.n	800a250 <HAL_RCC_OscConfig+0x78>
+ 800a332:	e272      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+        if (RCC_OscInitStruct->MSIClockRange > __HAL_RCC_GET_MSI_RANGE())
+ 800a334:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a338:	f8d3 3094 	ldr.w	r3, [r3, #148]	; 0x94
+ 800a33c:	091b      	lsrs	r3, r3, #4
+ 800a33e:	f003 03f0 	and.w	r3, r3, #240	; 0xf0
+ 800a342:	e7d2      	b.n	800a2ea <HAL_RCC_OscConfig+0x112>
+          __HAL_RCC_MSI_RANGE_CONFIG(RCC_OscInitStruct->MSIClockRange);
+ 800a344:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a348:	681a      	ldr	r2, [r3, #0]
+ 800a34a:	f042 0208 	orr.w	r2, r2, #8
+ 800a34e:	601a      	str	r2, [r3, #0]
+ 800a350:	681a      	ldr	r2, [r3, #0]
+ 800a352:	f022 02f0 	bic.w	r2, r2, #240	; 0xf0
+ 800a356:	6aa1      	ldr	r1, [r4, #40]	; 0x28
+ 800a358:	430a      	orrs	r2, r1
+ 800a35a:	601a      	str	r2, [r3, #0]
+          __HAL_RCC_MSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->MSICalibrationValue);
+ 800a35c:	6a61      	ldr	r1, [r4, #36]	; 0x24
+ 800a35e:	685a      	ldr	r2, [r3, #4]
+ 800a360:	f422 427f 	bic.w	r2, r2, #65280	; 0xff00
+ 800a364:	ea42 2201 	orr.w	r2, r2, r1, lsl #8
+ 800a368:	605a      	str	r2, [r3, #4]
+          if (RCC_SetFlashLatencyFromMSIRange(RCC_OscInitStruct->MSIClockRange) != HAL_OK)
+ 800a36a:	6aa0      	ldr	r0, [r4, #40]	; 0x28
+ 800a36c:	f7ff fe7a 	bl	800a064 <RCC_SetFlashLatencyFromMSIRange>
+ 800a370:	2800      	cmp	r0, #0
+ 800a372:	d0d4      	beq.n	800a31e <HAL_RCC_OscConfig+0x146>
+            return HAL_ERROR;
+ 800a374:	2001      	movs	r0, #1
+ 800a376:	e250      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+          if ((HAL_GetTick() - tickstart) > MSI_TIMEOUT_VALUE)
+ 800a378:	f7f8 fc8e 	bl	8002c98 <HAL_GetTick>
+ 800a37c:	1bc0      	subs	r0, r0, r7
+ 800a37e:	2802      	cmp	r0, #2
+ 800a380:	f67f af4c 	bls.w	800a21c <HAL_RCC_OscConfig+0x44>
+            return HAL_TIMEOUT;
+ 800a384:	2003      	movs	r0, #3
+ 800a386:	e248      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+  CLEAR_BIT(RCC->CR, RCC_CR_MSION);
+ 800a388:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800a38c:	6813      	ldr	r3, [r2, #0]
+ 800a38e:	f023 0301 	bic.w	r3, r3, #1
+ 800a392:	6013      	str	r3, [r2, #0]
+        tickstart = HAL_GetTick();
+ 800a394:	f7f8 fc80 	bl	8002c98 <HAL_GetTick>
+ 800a398:	4607      	mov	r7, r0
+  return ((READ_BIT(RCC->CR, RCC_CR_MSIRDY) == (RCC_CR_MSIRDY)) ? 1UL : 0UL);
+ 800a39a:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a39e:	681b      	ldr	r3, [r3, #0]
+ 800a3a0:	f013 0f02 	tst.w	r3, #2
+ 800a3a4:	f43f af54 	beq.w	800a250 <HAL_RCC_OscConfig+0x78>
+          if ((HAL_GetTick() - tickstart) > MSI_TIMEOUT_VALUE)
+ 800a3a8:	f7f8 fc76 	bl	8002c98 <HAL_GetTick>
+ 800a3ac:	1bc0      	subs	r0, r0, r7
+ 800a3ae:	2802      	cmp	r0, #2
+ 800a3b0:	d9f3      	bls.n	800a39a <HAL_RCC_OscConfig+0x1c2>
+            return HAL_TIMEOUT;
+ 800a3b2:	2003      	movs	r0, #3
+ 800a3b4:	e231      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+        ((sysclk_source == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (pll_config == RCC_PLLSOURCE_HSE)))
+ 800a3b6:	2e03      	cmp	r6, #3
+ 800a3b8:	f47f af55 	bne.w	800a266 <HAL_RCC_OscConfig+0x8e>
+      if (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)
+ 800a3bc:	6863      	ldr	r3, [r4, #4]
+ 800a3be:	2b00      	cmp	r3, #0
+ 800a3c0:	f000 8224 	beq.w	800a80c <HAL_RCC_OscConfig+0x634>
+  if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI)
+ 800a3c4:	6823      	ldr	r3, [r4, #0]
+ 800a3c6:	f013 0f02 	tst.w	r3, #2
+ 800a3ca:	d056      	beq.n	800a47a <HAL_RCC_OscConfig+0x2a2>
+    if ((sysclk_source == RCC_SYSCLKSOURCE_STATUS_HSI) ||
+ 800a3cc:	2d04      	cmp	r5, #4
+ 800a3ce:	d03d      	beq.n	800a44c <HAL_RCC_OscConfig+0x274>
+ 800a3d0:	2d0c      	cmp	r5, #12
+ 800a3d2:	d039      	beq.n	800a448 <HAL_RCC_OscConfig+0x270>
+      if (RCC_OscInitStruct->HSIState != RCC_HSI_OFF)
+ 800a3d4:	6923      	ldr	r3, [r4, #16]
+ 800a3d6:	2b00      	cmp	r3, #0
+ 800a3d8:	f000 808a 	beq.w	800a4f0 <HAL_RCC_OscConfig+0x318>
+  SET_BIT(RCC->CR, RCC_CR_HSION);
+ 800a3dc:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800a3e0:	6813      	ldr	r3, [r2, #0]
+ 800a3e2:	f443 7380 	orr.w	r3, r3, #256	; 0x100
+ 800a3e6:	6013      	str	r3, [r2, #0]
+        tickstart = HAL_GetTick();
+ 800a3e8:	f7f8 fc56 	bl	8002c98 <HAL_GetTick>
+ 800a3ec:	4606      	mov	r6, r0
+  return ((READ_BIT(RCC->CR, RCC_CR_HSIRDY) == (RCC_CR_HSIRDY)) ? 1UL : 0UL);
+ 800a3ee:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a3f2:	681b      	ldr	r3, [r3, #0]
+ 800a3f4:	f413 6f80 	tst.w	r3, #1024	; 0x400
+ 800a3f8:	d136      	bne.n	800a468 <HAL_RCC_OscConfig+0x290>
+          if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE)
+ 800a3fa:	f7f8 fc4d 	bl	8002c98 <HAL_GetTick>
+ 800a3fe:	1b80      	subs	r0, r0, r6
+ 800a400:	2802      	cmp	r0, #2
+ 800a402:	d9f4      	bls.n	800a3ee <HAL_RCC_OscConfig+0x216>
+            return HAL_TIMEOUT;
+ 800a404:	2003      	movs	r0, #3
+ 800a406:	e208      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+  SET_BIT(RCC->CR, RCC_CR_HSEON);
+ 800a408:	6813      	ldr	r3, [r2, #0]
+ 800a40a:	f443 3380 	orr.w	r3, r3, #65536	; 0x10000
+ 800a40e:	6013      	str	r3, [r2, #0]
+}
+ 800a410:	e744      	b.n	800a29c <HAL_RCC_OscConfig+0xc4>
+  SET_BIT(RCC->CR, RCC_CR_HSEBYPPWR);
+ 800a412:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a416:	681a      	ldr	r2, [r3, #0]
+ 800a418:	f442 1200 	orr.w	r2, r2, #2097152	; 0x200000
+ 800a41c:	601a      	str	r2, [r3, #0]
+  SET_BIT(RCC->CR, RCC_CR_HSEON);
+ 800a41e:	681a      	ldr	r2, [r3, #0]
+ 800a420:	f442 3280 	orr.w	r2, r2, #65536	; 0x10000
+ 800a424:	601a      	str	r2, [r3, #0]
+}
+ 800a426:	e739      	b.n	800a29c <HAL_RCC_OscConfig+0xc4>
+        tickstart = HAL_GetTick();
+ 800a428:	f7f8 fc36 	bl	8002c98 <HAL_GetTick>
+ 800a42c:	4607      	mov	r7, r0
+  return ((READ_BIT(RCC->CR, RCC_CR_HSERDY) == (RCC_CR_HSERDY)) ? 1UL : 0UL);
+ 800a42e:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a432:	681b      	ldr	r3, [r3, #0]
+ 800a434:	f413 3f00 	tst.w	r3, #131072	; 0x20000
+ 800a438:	d0c4      	beq.n	800a3c4 <HAL_RCC_OscConfig+0x1ec>
+          if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE)
+ 800a43a:	f7f8 fc2d 	bl	8002c98 <HAL_GetTick>
+ 800a43e:	1bc0      	subs	r0, r0, r7
+ 800a440:	2864      	cmp	r0, #100	; 0x64
+ 800a442:	d9f4      	bls.n	800a42e <HAL_RCC_OscConfig+0x256>
+            return HAL_TIMEOUT;
+ 800a444:	2003      	movs	r0, #3
+ 800a446:	e1e8      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+        ((sysclk_source == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (pll_config == RCC_PLLSOURCE_HSI)))
+ 800a448:	2e02      	cmp	r6, #2
+ 800a44a:	d1c3      	bne.n	800a3d4 <HAL_RCC_OscConfig+0x1fc>
+      if (RCC_OscInitStruct->HSIState == RCC_HSI_OFF)
+ 800a44c:	6923      	ldr	r3, [r4, #16]
+ 800a44e:	2b00      	cmp	r3, #0
+ 800a450:	f000 81de 	beq.w	800a810 <HAL_RCC_OscConfig+0x638>
+        __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue);
+ 800a454:	6961      	ldr	r1, [r4, #20]
+  MODIFY_REG(RCC->ICSCR, RCC_ICSCR_HSITRIM, Value << RCC_ICSCR_HSITRIM_Pos);
+ 800a456:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800a45a:	6853      	ldr	r3, [r2, #4]
+ 800a45c:	f023 43fe 	bic.w	r3, r3, #2130706432	; 0x7f000000
+ 800a460:	ea43 6301 	orr.w	r3, r3, r1, lsl #24
+ 800a464:	6053      	str	r3, [r2, #4]
+}
+ 800a466:	e008      	b.n	800a47a <HAL_RCC_OscConfig+0x2a2>
+        __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue);
+ 800a468:	6961      	ldr	r1, [r4, #20]
+  MODIFY_REG(RCC->ICSCR, RCC_ICSCR_HSITRIM, Value << RCC_ICSCR_HSITRIM_Pos);
+ 800a46a:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800a46e:	6853      	ldr	r3, [r2, #4]
+ 800a470:	f023 43fe 	bic.w	r3, r3, #2130706432	; 0x7f000000
+ 800a474:	ea43 6301 	orr.w	r3, r3, r1, lsl #24
+ 800a478:	6053      	str	r3, [r2, #4]
+  if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI)
+ 800a47a:	6823      	ldr	r3, [r4, #0]
+ 800a47c:	f013 0f08 	tst.w	r3, #8
+ 800a480:	d07e      	beq.n	800a580 <HAL_RCC_OscConfig+0x3a8>
+    if (RCC_OscInitStruct->LSIState != RCC_LSI_OFF)
+ 800a482:	69a3      	ldr	r3, [r4, #24]
+ 800a484:	2b00      	cmp	r3, #0
+ 800a486:	d062      	beq.n	800a54e <HAL_RCC_OscConfig+0x376>
+      uint32_t csr_temp = RCC->CSR;
+ 800a488:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a48c:	f8d3 3094 	ldr.w	r3, [r3, #148]	; 0x94
+      if (RCC_OscInitStruct->LSIDiv != (csr_temp & RCC_CSR_LSIPRE))
+ 800a490:	69e1      	ldr	r1, [r4, #28]
+ 800a492:	f003 0210 	and.w	r2, r3, #16
+ 800a496:	4291      	cmp	r1, r2
+ 800a498:	d011      	beq.n	800a4be <HAL_RCC_OscConfig+0x2e6>
+        if (((csr_temp & RCC_CSR_LSIRDY) == RCC_CSR_LSIRDY) && \
+ 800a49a:	f003 0203 	and.w	r2, r3, #3
+ 800a49e:	2a02      	cmp	r2, #2
+ 800a4a0:	f000 81b8 	beq.w	800a814 <HAL_RCC_OscConfig+0x63c>
+        if ((csr_temp & RCC_CSR_LSION) == RCC_CSR_LSION)
+ 800a4a4:	f013 0f01 	tst.w	r3, #1
+ 800a4a8:	d138      	bne.n	800a51c <HAL_RCC_OscConfig+0x344>
+        MODIFY_REG(RCC->CSR, RCC_CSR_LSIPRE, RCC_OscInitStruct->LSIDiv);
+ 800a4aa:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800a4ae:	f8d2 3094 	ldr.w	r3, [r2, #148]	; 0x94
+ 800a4b2:	f023 0310 	bic.w	r3, r3, #16
+ 800a4b6:	69e1      	ldr	r1, [r4, #28]
+ 800a4b8:	430b      	orrs	r3, r1
+ 800a4ba:	f8c2 3094 	str.w	r3, [r2, #148]	; 0x94
+  SET_BIT(RCC->CSR, RCC_CSR_LSION);
+ 800a4be:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800a4c2:	f8d2 3094 	ldr.w	r3, [r2, #148]	; 0x94
+ 800a4c6:	f043 0301 	orr.w	r3, r3, #1
+ 800a4ca:	f8c2 3094 	str.w	r3, [r2, #148]	; 0x94
+      tickstart = HAL_GetTick();
+ 800a4ce:	f7f8 fbe3 	bl	8002c98 <HAL_GetTick>
+ 800a4d2:	4606      	mov	r6, r0
+  return ((READ_BIT(RCC->CSR, RCC_CSR_LSIRDY) == (RCC_CSR_LSIRDY)) ? 1UL : 0UL);
+ 800a4d4:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a4d8:	f8d3 3094 	ldr.w	r3, [r3, #148]	; 0x94
+ 800a4dc:	f013 0f02 	tst.w	r3, #2
+ 800a4e0:	d14e      	bne.n	800a580 <HAL_RCC_OscConfig+0x3a8>
+        if ((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE)
+ 800a4e2:	f7f8 fbd9 	bl	8002c98 <HAL_GetTick>
+ 800a4e6:	1b80      	subs	r0, r0, r6
+ 800a4e8:	2811      	cmp	r0, #17
+ 800a4ea:	d9f3      	bls.n	800a4d4 <HAL_RCC_OscConfig+0x2fc>
+          return HAL_TIMEOUT;
+ 800a4ec:	2003      	movs	r0, #3
+ 800a4ee:	e194      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+  CLEAR_BIT(RCC->CR, RCC_CR_HSION);
+ 800a4f0:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800a4f4:	6813      	ldr	r3, [r2, #0]
+ 800a4f6:	f423 7380 	bic.w	r3, r3, #256	; 0x100
+ 800a4fa:	6013      	str	r3, [r2, #0]
+        tickstart = HAL_GetTick();
+ 800a4fc:	f7f8 fbcc 	bl	8002c98 <HAL_GetTick>
+ 800a500:	4606      	mov	r6, r0
+  return ((READ_BIT(RCC->CR, RCC_CR_HSIRDY) == (RCC_CR_HSIRDY)) ? 1UL : 0UL);
+ 800a502:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a506:	681b      	ldr	r3, [r3, #0]
+ 800a508:	f413 6f80 	tst.w	r3, #1024	; 0x400
+ 800a50c:	d0b5      	beq.n	800a47a <HAL_RCC_OscConfig+0x2a2>
+          if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE)
+ 800a50e:	f7f8 fbc3 	bl	8002c98 <HAL_GetTick>
+ 800a512:	1b80      	subs	r0, r0, r6
+ 800a514:	2802      	cmp	r0, #2
+ 800a516:	d9f4      	bls.n	800a502 <HAL_RCC_OscConfig+0x32a>
+            return HAL_TIMEOUT;
+ 800a518:	2003      	movs	r0, #3
+ 800a51a:	e17e      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+  CLEAR_BIT(RCC->CSR, RCC_CSR_LSION);
+ 800a51c:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800a520:	f8d2 3094 	ldr.w	r3, [r2, #148]	; 0x94
+ 800a524:	f023 0301 	bic.w	r3, r3, #1
+ 800a528:	f8c2 3094 	str.w	r3, [r2, #148]	; 0x94
+          tickstart = HAL_GetTick();
+ 800a52c:	f7f8 fbb4 	bl	8002c98 <HAL_GetTick>
+ 800a530:	4606      	mov	r6, r0
+  return ((READ_BIT(RCC->CSR, RCC_CSR_LSIRDY) == (RCC_CSR_LSIRDY)) ? 1UL : 0UL);
+ 800a532:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a536:	f8d3 3094 	ldr.w	r3, [r3, #148]	; 0x94
+ 800a53a:	f013 0f02 	tst.w	r3, #2
+ 800a53e:	d0b4      	beq.n	800a4aa <HAL_RCC_OscConfig+0x2d2>
+            if ((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE)
+ 800a540:	f7f8 fbaa 	bl	8002c98 <HAL_GetTick>
+ 800a544:	1b80      	subs	r0, r0, r6
+ 800a546:	2811      	cmp	r0, #17
+ 800a548:	d9f3      	bls.n	800a532 <HAL_RCC_OscConfig+0x35a>
+              return HAL_TIMEOUT;
+ 800a54a:	2003      	movs	r0, #3
+ 800a54c:	e165      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+  CLEAR_BIT(RCC->CSR, RCC_CSR_LSION);
+ 800a54e:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800a552:	f8d2 3094 	ldr.w	r3, [r2, #148]	; 0x94
+ 800a556:	f023 0301 	bic.w	r3, r3, #1
+ 800a55a:	f8c2 3094 	str.w	r3, [r2, #148]	; 0x94
+      tickstart = HAL_GetTick();
+ 800a55e:	f7f8 fb9b 	bl	8002c98 <HAL_GetTick>
+ 800a562:	4606      	mov	r6, r0
+  return ((READ_BIT(RCC->CSR, RCC_CSR_LSIRDY) == (RCC_CSR_LSIRDY)) ? 1UL : 0UL);
+ 800a564:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a568:	f8d3 3094 	ldr.w	r3, [r3, #148]	; 0x94
+ 800a56c:	f013 0f02 	tst.w	r3, #2
+ 800a570:	d006      	beq.n	800a580 <HAL_RCC_OscConfig+0x3a8>
+        if ((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE)
+ 800a572:	f7f8 fb91 	bl	8002c98 <HAL_GetTick>
+ 800a576:	1b80      	subs	r0, r0, r6
+ 800a578:	2811      	cmp	r0, #17
+ 800a57a:	d9f3      	bls.n	800a564 <HAL_RCC_OscConfig+0x38c>
+          return HAL_TIMEOUT;
+ 800a57c:	2003      	movs	r0, #3
+ 800a57e:	e14c      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+  if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE)
+ 800a580:	6823      	ldr	r3, [r4, #0]
+ 800a582:	f013 0f04 	tst.w	r3, #4
+ 800a586:	f000 80b8 	beq.w	800a6fa <HAL_RCC_OscConfig+0x522>
+  return ((READ_BIT(PWR->CR1, PWR_CR1_DBP) == (PWR_CR1_DBP)) ? 1UL : 0UL);
+ 800a58a:	4b22      	ldr	r3, [pc, #136]	; (800a614 <HAL_RCC_OscConfig+0x43c>)
+ 800a58c:	681b      	ldr	r3, [r3, #0]
+ 800a58e:	f413 7f80 	tst.w	r3, #256	; 0x100
+ 800a592:	d110      	bne.n	800a5b6 <HAL_RCC_OscConfig+0x3de>
+      HAL_PWR_EnableBkUpAccess();
+ 800a594:	f7ff fc86 	bl	8009ea4 <HAL_PWR_EnableBkUpAccess>
+      tickstart = HAL_GetTick();
+ 800a598:	f7f8 fb7e 	bl	8002c98 <HAL_GetTick>
+ 800a59c:	4606      	mov	r6, r0
+ 800a59e:	4b1d      	ldr	r3, [pc, #116]	; (800a614 <HAL_RCC_OscConfig+0x43c>)
+ 800a5a0:	681b      	ldr	r3, [r3, #0]
+ 800a5a2:	f413 7f80 	tst.w	r3, #256	; 0x100
+ 800a5a6:	d106      	bne.n	800a5b6 <HAL_RCC_OscConfig+0x3de>
+        if ((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE)
+ 800a5a8:	f7f8 fb76 	bl	8002c98 <HAL_GetTick>
+ 800a5ac:	1b80      	subs	r0, r0, r6
+ 800a5ae:	2802      	cmp	r0, #2
+ 800a5b0:	d9f5      	bls.n	800a59e <HAL_RCC_OscConfig+0x3c6>
+          return HAL_TIMEOUT;
+ 800a5b2:	2003      	movs	r0, #3
+ 800a5b4:	e131      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+    if (RCC_OscInitStruct->LSEState != RCC_LSE_OFF)
+ 800a5b6:	68e3      	ldr	r3, [r4, #12]
+ 800a5b8:	2b00      	cmp	r3, #0
+ 800a5ba:	d068      	beq.n	800a68e <HAL_RCC_OscConfig+0x4b6>
+      if ((RCC_OscInitStruct->LSEState == RCC_LSE_BYPASS)
+ 800a5bc:	2b85      	cmp	r3, #133	; 0x85
+ 800a5be:	d001      	beq.n	800a5c4 <HAL_RCC_OscConfig+0x3ec>
+          || (RCC_OscInitStruct->LSEState == RCC_LSE_BYPASS_RTC_ONLY))
+ 800a5c0:	2b05      	cmp	r3, #5
+ 800a5c2:	d107      	bne.n	800a5d4 <HAL_RCC_OscConfig+0x3fc>
+        SET_BIT(RCC->BDCR, RCC_BDCR_LSEBYP);
+ 800a5c4:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800a5c8:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 800a5cc:	f043 0304 	orr.w	r3, r3, #4
+ 800a5d0:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+      tickstart = HAL_GetTick();
+ 800a5d4:	f7f8 fb60 	bl	8002c98 <HAL_GetTick>
+ 800a5d8:	4606      	mov	r6, r0
+      SET_BIT(RCC->BDCR, RCC_BDCR_LSEON);
+ 800a5da:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800a5de:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 800a5e2:	f043 0301 	orr.w	r3, r3, #1
+ 800a5e6:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+  return ((READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) == (RCC_BDCR_LSERDY)) ? 1UL : 0UL);
+ 800a5ea:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a5ee:	f8d3 3090 	ldr.w	r3, [r3, #144]	; 0x90
+ 800a5f2:	f013 0f02 	tst.w	r3, #2
+ 800a5f6:	d10f      	bne.n	800a618 <HAL_RCC_OscConfig+0x440>
+        if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE)
+ 800a5f8:	f7f8 fb4e 	bl	8002c98 <HAL_GetTick>
+ 800a5fc:	1b80      	subs	r0, r0, r6
+ 800a5fe:	f241 3388 	movw	r3, #5000	; 0x1388
+ 800a602:	4298      	cmp	r0, r3
+ 800a604:	d9f1      	bls.n	800a5ea <HAL_RCC_OscConfig+0x412>
+          return HAL_TIMEOUT;
+ 800a606:	2003      	movs	r0, #3
+ 800a608:	e107      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+ 800a60a:	bf00      	nop
+ 800a60c:	20000828 	.word	0x20000828
+ 800a610:	2000082c 	.word	0x2000082c
+ 800a614:	58000400 	.word	0x58000400
+      if ((RCC_OscInitStruct->LSEState == RCC_LSE_ON)
+ 800a618:	68e3      	ldr	r3, [r4, #12]
+ 800a61a:	2b81      	cmp	r3, #129	; 0x81
+ 800a61c:	d001      	beq.n	800a622 <HAL_RCC_OscConfig+0x44a>
+          || (RCC_OscInitStruct->LSEState == RCC_LSE_BYPASS))
+ 800a61e:	2b85      	cmp	r3, #133	; 0x85
+ 800a620:	d11a      	bne.n	800a658 <HAL_RCC_OscConfig+0x480>
+        tickstart = HAL_GetTick();
+ 800a622:	f7f8 fb39 	bl	8002c98 <HAL_GetTick>
+ 800a626:	4606      	mov	r6, r0
+        SET_BIT(RCC->BDCR, RCC_BDCR_LSESYSEN);
+ 800a628:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800a62c:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 800a630:	f043 0380 	orr.w	r3, r3, #128	; 0x80
+ 800a634:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+        while (READ_BIT(RCC->BDCR, RCC_BDCR_LSESYSRDY) == 0U)
+ 800a638:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a63c:	f8d3 3090 	ldr.w	r3, [r3, #144]	; 0x90
+ 800a640:	f413 6f00 	tst.w	r3, #2048	; 0x800
+ 800a644:	d159      	bne.n	800a6fa <HAL_RCC_OscConfig+0x522>
+          if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE)
+ 800a646:	f7f8 fb27 	bl	8002c98 <HAL_GetTick>
+ 800a64a:	1b80      	subs	r0, r0, r6
+ 800a64c:	f241 3388 	movw	r3, #5000	; 0x1388
+ 800a650:	4298      	cmp	r0, r3
+ 800a652:	d9f1      	bls.n	800a638 <HAL_RCC_OscConfig+0x460>
+            return HAL_TIMEOUT;
+ 800a654:	2003      	movs	r0, #3
+ 800a656:	e0e0      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+        tickstart = HAL_GetTick();
+ 800a658:	f7f8 fb1e 	bl	8002c98 <HAL_GetTick>
+ 800a65c:	4606      	mov	r6, r0
+        CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSESYSEN);
+ 800a65e:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800a662:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 800a666:	f023 0380 	bic.w	r3, r3, #128	; 0x80
+ 800a66a:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+        while (READ_BIT(RCC->BDCR, RCC_BDCR_LSESYSRDY) != 0U)
+ 800a66e:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a672:	f8d3 3090 	ldr.w	r3, [r3, #144]	; 0x90
+ 800a676:	f413 6f00 	tst.w	r3, #2048	; 0x800
+ 800a67a:	d03e      	beq.n	800a6fa <HAL_RCC_OscConfig+0x522>
+          if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE)
+ 800a67c:	f7f8 fb0c 	bl	8002c98 <HAL_GetTick>
+ 800a680:	1b80      	subs	r0, r0, r6
+ 800a682:	f241 3388 	movw	r3, #5000	; 0x1388
+ 800a686:	4298      	cmp	r0, r3
+ 800a688:	d9f1      	bls.n	800a66e <HAL_RCC_OscConfig+0x496>
+            return HAL_TIMEOUT;
+ 800a68a:	2003      	movs	r0, #3
+ 800a68c:	e0c5      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+      tickstart = HAL_GetTick();
+ 800a68e:	f7f8 fb03 	bl	8002c98 <HAL_GetTick>
+ 800a692:	4606      	mov	r6, r0
+      CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSESYSEN);
+ 800a694:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800a698:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 800a69c:	f023 0380 	bic.w	r3, r3, #128	; 0x80
+ 800a6a0:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+      while (READ_BIT(RCC->BDCR, RCC_BDCR_LSESYSRDY) != 0U)
+ 800a6a4:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a6a8:	f8d3 3090 	ldr.w	r3, [r3, #144]	; 0x90
+ 800a6ac:	f413 6f00 	tst.w	r3, #2048	; 0x800
+ 800a6b0:	d008      	beq.n	800a6c4 <HAL_RCC_OscConfig+0x4ec>
+        if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE)
+ 800a6b2:	f7f8 faf1 	bl	8002c98 <HAL_GetTick>
+ 800a6b6:	1b80      	subs	r0, r0, r6
+ 800a6b8:	f241 3388 	movw	r3, #5000	; 0x1388
+ 800a6bc:	4298      	cmp	r0, r3
+ 800a6be:	d9f1      	bls.n	800a6a4 <HAL_RCC_OscConfig+0x4cc>
+          return HAL_TIMEOUT;
+ 800a6c0:	2003      	movs	r0, #3
+ 800a6c2:	e0aa      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+      tickstart = HAL_GetTick();
+ 800a6c4:	f7f8 fae8 	bl	8002c98 <HAL_GetTick>
+ 800a6c8:	4606      	mov	r6, r0
+      CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSEON);
+ 800a6ca:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800a6ce:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 800a6d2:	f023 0301 	bic.w	r3, r3, #1
+ 800a6d6:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+ 800a6da:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a6de:	f8d3 3090 	ldr.w	r3, [r3, #144]	; 0x90
+ 800a6e2:	f013 0f02 	tst.w	r3, #2
+ 800a6e6:	d008      	beq.n	800a6fa <HAL_RCC_OscConfig+0x522>
+        if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE)
+ 800a6e8:	f7f8 fad6 	bl	8002c98 <HAL_GetTick>
+ 800a6ec:	1b80      	subs	r0, r0, r6
+ 800a6ee:	f241 3388 	movw	r3, #5000	; 0x1388
+ 800a6f2:	4298      	cmp	r0, r3
+ 800a6f4:	d9f1      	bls.n	800a6da <HAL_RCC_OscConfig+0x502>
+          return HAL_TIMEOUT;
+ 800a6f6:	2003      	movs	r0, #3
+ 800a6f8:	e08f      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+  if (RCC_OscInitStruct->PLL.PLLState != RCC_PLL_NONE)
+ 800a6fa:	6ae3      	ldr	r3, [r4, #44]	; 0x2c
+ 800a6fc:	2b00      	cmp	r3, #0
+ 800a6fe:	f000 808b 	beq.w	800a818 <HAL_RCC_OscConfig+0x640>
+    if (sysclk_source != RCC_SYSCLKSOURCE_STATUS_PLLCLK)
+ 800a702:	2d0c      	cmp	r5, #12
+ 800a704:	d060      	beq.n	800a7c8 <HAL_RCC_OscConfig+0x5f0>
+      if (RCC_OscInitStruct->PLL.PLLState == RCC_PLL_ON)
+ 800a706:	2b02      	cmp	r3, #2
+ 800a708:	d016      	beq.n	800a738 <HAL_RCC_OscConfig+0x560>
+  CLEAR_BIT(RCC->CR, RCC_CR_PLLON);
+ 800a70a:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800a70e:	6813      	ldr	r3, [r2, #0]
+ 800a710:	f023 7380 	bic.w	r3, r3, #16777216	; 0x1000000
+ 800a714:	6013      	str	r3, [r2, #0]
+        tickstart = HAL_GetTick();
+ 800a716:	f7f8 fabf 	bl	8002c98 <HAL_GetTick>
+ 800a71a:	4604      	mov	r4, r0
+  return ((READ_BIT(RCC->CR, RCC_CR_PLLRDY) == (RCC_CR_PLLRDY)) ? 1UL : 0UL);
+ 800a71c:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a720:	681b      	ldr	r3, [r3, #0]
+ 800a722:	f013 7f00 	tst.w	r3, #33554432	; 0x2000000
+ 800a726:	d148      	bne.n	800a7ba <HAL_RCC_OscConfig+0x5e2>
+        CLEAR_BIT(RCC->PLLCFGR, (RCC_PLLCFGR_PLLSRC | RCC_PLLCFGR_PLLPEN | RCC_PLLCFGR_PLLQEN | RCC_PLLCFGR_PLLREN));
+ 800a728:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800a72c:	68d1      	ldr	r1, [r2, #12]
+ 800a72e:	4b41      	ldr	r3, [pc, #260]	; (800a834 <HAL_RCC_OscConfig+0x65c>)
+ 800a730:	400b      	ands	r3, r1
+ 800a732:	60d3      	str	r3, [r2, #12]
+  return HAL_OK;
+ 800a734:	2000      	movs	r0, #0
+ 800a736:	e070      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+  CLEAR_BIT(RCC->CR, RCC_CR_PLLON);
+ 800a738:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800a73c:	6813      	ldr	r3, [r2, #0]
+ 800a73e:	f023 7380 	bic.w	r3, r3, #16777216	; 0x1000000
+ 800a742:	6013      	str	r3, [r2, #0]
+        tickstart = HAL_GetTick();
+ 800a744:	f7f8 faa8 	bl	8002c98 <HAL_GetTick>
+ 800a748:	4605      	mov	r5, r0
+  return ((READ_BIT(RCC->CR, RCC_CR_PLLRDY) == (RCC_CR_PLLRDY)) ? 1UL : 0UL);
+ 800a74a:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a74e:	681b      	ldr	r3, [r3, #0]
+ 800a750:	f013 7f00 	tst.w	r3, #33554432	; 0x2000000
+ 800a754:	d12a      	bne.n	800a7ac <HAL_RCC_OscConfig+0x5d4>
+        __HAL_RCC_PLL_CONFIG(RCC_OscInitStruct->PLL.PLLSource,
+ 800a756:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800a75a:	68d3      	ldr	r3, [r2, #12]
+ 800a75c:	4936      	ldr	r1, [pc, #216]	; (800a838 <HAL_RCC_OscConfig+0x660>)
+ 800a75e:	4019      	ands	r1, r3
+ 800a760:	6b23      	ldr	r3, [r4, #48]	; 0x30
+ 800a762:	6b60      	ldr	r0, [r4, #52]	; 0x34
+ 800a764:	4303      	orrs	r3, r0
+ 800a766:	6ba0      	ldr	r0, [r4, #56]	; 0x38
+ 800a768:	ea43 2300 	orr.w	r3, r3, r0, lsl #8
+ 800a76c:	6be0      	ldr	r0, [r4, #60]	; 0x3c
+ 800a76e:	4303      	orrs	r3, r0
+ 800a770:	6c20      	ldr	r0, [r4, #64]	; 0x40
+ 800a772:	4303      	orrs	r3, r0
+ 800a774:	6c60      	ldr	r0, [r4, #68]	; 0x44
+ 800a776:	4303      	orrs	r3, r0
+ 800a778:	4319      	orrs	r1, r3
+ 800a77a:	60d1      	str	r1, [r2, #12]
+  SET_BIT(RCC->CR, RCC_CR_PLLON);
+ 800a77c:	6813      	ldr	r3, [r2, #0]
+ 800a77e:	f043 7380 	orr.w	r3, r3, #16777216	; 0x1000000
+ 800a782:	6013      	str	r3, [r2, #0]
+        __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_SYSCLK);
+ 800a784:	68d3      	ldr	r3, [r2, #12]
+ 800a786:	f043 5380 	orr.w	r3, r3, #268435456	; 0x10000000
+ 800a78a:	60d3      	str	r3, [r2, #12]
+        tickstart = HAL_GetTick();
+ 800a78c:	f7f8 fa84 	bl	8002c98 <HAL_GetTick>
+ 800a790:	4604      	mov	r4, r0
+  return ((READ_BIT(RCC->CR, RCC_CR_PLLRDY) == (RCC_CR_PLLRDY)) ? 1UL : 0UL);
+ 800a792:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a796:	681b      	ldr	r3, [r3, #0]
+ 800a798:	f013 7f00 	tst.w	r3, #33554432	; 0x2000000
+ 800a79c:	d13e      	bne.n	800a81c <HAL_RCC_OscConfig+0x644>
+          if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE)
+ 800a79e:	f7f8 fa7b 	bl	8002c98 <HAL_GetTick>
+ 800a7a2:	1b00      	subs	r0, r0, r4
+ 800a7a4:	280a      	cmp	r0, #10
+ 800a7a6:	d9f4      	bls.n	800a792 <HAL_RCC_OscConfig+0x5ba>
+            return HAL_TIMEOUT;
+ 800a7a8:	2003      	movs	r0, #3
+ 800a7aa:	e036      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+          if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE)
+ 800a7ac:	f7f8 fa74 	bl	8002c98 <HAL_GetTick>
+ 800a7b0:	1b40      	subs	r0, r0, r5
+ 800a7b2:	280a      	cmp	r0, #10
+ 800a7b4:	d9c9      	bls.n	800a74a <HAL_RCC_OscConfig+0x572>
+            return HAL_TIMEOUT;
+ 800a7b6:	2003      	movs	r0, #3
+ 800a7b8:	e02f      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+          if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE)
+ 800a7ba:	f7f8 fa6d 	bl	8002c98 <HAL_GetTick>
+ 800a7be:	1b00      	subs	r0, r0, r4
+ 800a7c0:	280a      	cmp	r0, #10
+ 800a7c2:	d9ab      	bls.n	800a71c <HAL_RCC_OscConfig+0x544>
+            return HAL_TIMEOUT;
+ 800a7c4:	2003      	movs	r0, #3
+ 800a7c6:	e028      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+      if ((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_OFF)
+ 800a7c8:	2b01      	cmp	r3, #1
+ 800a7ca:	d029      	beq.n	800a820 <HAL_RCC_OscConfig+0x648>
+        pll_config = RCC->PLLCFGR;
+ 800a7cc:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a7d0:	68db      	ldr	r3, [r3, #12]
+        if ((READ_BIT(pll_config, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource)
+ 800a7d2:	f003 0103 	and.w	r1, r3, #3
+ 800a7d6:	6b22      	ldr	r2, [r4, #48]	; 0x30
+ 800a7d8:	4291      	cmp	r1, r2
+ 800a7da:	d123      	bne.n	800a824 <HAL_RCC_OscConfig+0x64c>
+            || (READ_BIT(pll_config, RCC_PLLCFGR_PLLM)   != RCC_OscInitStruct->PLL.PLLM)
+ 800a7dc:	f003 0270 	and.w	r2, r3, #112	; 0x70
+ 800a7e0:	6b61      	ldr	r1, [r4, #52]	; 0x34
+ 800a7e2:	428a      	cmp	r2, r1
+ 800a7e4:	d120      	bne.n	800a828 <HAL_RCC_OscConfig+0x650>
+            || (READ_BIT(pll_config, RCC_PLLCFGR_PLLN)   != (RCC_OscInitStruct->PLL.PLLN << RCC_PLLCFGR_PLLN_Pos))
+ 800a7e6:	f403 42fe 	and.w	r2, r3, #32512	; 0x7f00
+ 800a7ea:	6ba1      	ldr	r1, [r4, #56]	; 0x38
+ 800a7ec:	ebb2 2f01 	cmp.w	r2, r1, lsl #8
+ 800a7f0:	d11c      	bne.n	800a82c <HAL_RCC_OscConfig+0x654>
+            || (READ_BIT(pll_config, RCC_PLLCFGR_PLLR)   != RCC_OscInitStruct->PLL.PLLR))
+ 800a7f2:	f003 4360 	and.w	r3, r3, #3758096384	; 0xe0000000
+ 800a7f6:	6c62      	ldr	r2, [r4, #68]	; 0x44
+ 800a7f8:	4293      	cmp	r3, r2
+ 800a7fa:	d119      	bne.n	800a830 <HAL_RCC_OscConfig+0x658>
+  return HAL_OK;
+ 800a7fc:	2000      	movs	r0, #0
+ 800a7fe:	e00c      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+    return HAL_ERROR;
+ 800a800:	2001      	movs	r0, #1
+}
+ 800a802:	4770      	bx	lr
+        return HAL_ERROR;
+ 800a804:	2001      	movs	r0, #1
+ 800a806:	e008      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+            return HAL_ERROR;
+ 800a808:	2001      	movs	r0, #1
+ 800a80a:	e006      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+        return HAL_ERROR;
+ 800a80c:	2001      	movs	r0, #1
+ 800a80e:	e004      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+        return HAL_ERROR;
+ 800a810:	2001      	movs	r0, #1
+ 800a812:	e002      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+          return HAL_ERROR;
+ 800a814:	2001      	movs	r0, #1
+ 800a816:	e000      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+  return HAL_OK;
+ 800a818:	2000      	movs	r0, #0
+}
+ 800a81a:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+  return HAL_OK;
+ 800a81c:	2000      	movs	r0, #0
+ 800a81e:	e7fc      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+        return HAL_ERROR;
+ 800a820:	2001      	movs	r0, #1
+ 800a822:	e7fa      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+          return HAL_ERROR;
+ 800a824:	2001      	movs	r0, #1
+ 800a826:	e7f8      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+ 800a828:	2001      	movs	r0, #1
+ 800a82a:	e7f6      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+ 800a82c:	2001      	movs	r0, #1
+ 800a82e:	e7f4      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+ 800a830:	2001      	movs	r0, #1
+ 800a832:	e7f2      	b.n	800a81a <HAL_RCC_OscConfig+0x642>
+ 800a834:	eefefffc 	.word	0xeefefffc
+ 800a838:	11c1808c 	.word	0x11c1808c
+
+0800a83c <HAL_RCC_ClockConfig>:
+  if (RCC_ClkInitStruct == NULL)
+ 800a83c:	2800      	cmp	r0, #0
+ 800a83e:	f000 8104 	beq.w	800aa4a <HAL_RCC_ClockConfig+0x20e>
+{
+ 800a842:	b570      	push	{r4, r5, r6, lr}
+ 800a844:	460c      	mov	r4, r1
+ 800a846:	4605      	mov	r5, r0
+  if (FLatency > __HAL_FLASH_GET_LATENCY())
+ 800a848:	4b82      	ldr	r3, [pc, #520]	; (800aa54 <HAL_RCC_ClockConfig+0x218>)
+ 800a84a:	681b      	ldr	r3, [r3, #0]
+ 800a84c:	f003 0307 	and.w	r3, r3, #7
+ 800a850:	428b      	cmp	r3, r1
+ 800a852:	d327      	bcc.n	800a8a4 <HAL_RCC_ClockConfig+0x68>
+  if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK)
+ 800a854:	682b      	ldr	r3, [r5, #0]
+ 800a856:	f013 0f02 	tst.w	r3, #2
+ 800a85a:	d139      	bne.n	800a8d0 <HAL_RCC_ClockConfig+0x94>
+  if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK3) == RCC_CLOCKTYPE_HCLK3)
+ 800a85c:	682b      	ldr	r3, [r5, #0]
+ 800a85e:	f013 0f40 	tst.w	r3, #64	; 0x40
+ 800a862:	d14d      	bne.n	800a900 <HAL_RCC_ClockConfig+0xc4>
+  if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1)
+ 800a864:	682b      	ldr	r3, [r5, #0]
+ 800a866:	f013 0f04 	tst.w	r3, #4
+ 800a86a:	d165      	bne.n	800a938 <HAL_RCC_ClockConfig+0xfc>
+  if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2)
+ 800a86c:	682b      	ldr	r3, [r5, #0]
+ 800a86e:	f013 0f08 	tst.w	r3, #8
+ 800a872:	d179      	bne.n	800a968 <HAL_RCC_ClockConfig+0x12c>
+  if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK)
+ 800a874:	682b      	ldr	r3, [r5, #0]
+ 800a876:	f013 0f01 	tst.w	r3, #1
+ 800a87a:	f000 80c1 	beq.w	800aa00 <HAL_RCC_ClockConfig+0x1c4>
+    if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE)
+ 800a87e:	686b      	ldr	r3, [r5, #4]
+ 800a880:	2b02      	cmp	r3, #2
+ 800a882:	f000 808b 	beq.w	800a99c <HAL_RCC_ClockConfig+0x160>
+    else if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK)
+ 800a886:	2b03      	cmp	r3, #3
+ 800a888:	f000 8090 	beq.w	800a9ac <HAL_RCC_ClockConfig+0x170>
+    else if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_MSI)
+ 800a88c:	2b00      	cmp	r3, #0
+ 800a88e:	f040 8095 	bne.w	800a9bc <HAL_RCC_ClockConfig+0x180>
+  return ((READ_BIT(RCC->CR, RCC_CR_MSIRDY) == (RCC_CR_MSIRDY)) ? 1UL : 0UL);
+ 800a892:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800a896:	6812      	ldr	r2, [r2, #0]
+ 800a898:	f012 0f02 	tst.w	r2, #2
+ 800a89c:	f040 8094 	bne.w	800a9c8 <HAL_RCC_ClockConfig+0x18c>
+        return HAL_ERROR;
+ 800a8a0:	2001      	movs	r0, #1
+ 800a8a2:	e0d1      	b.n	800aa48 <HAL_RCC_ClockConfig+0x20c>
+    __HAL_FLASH_SET_LATENCY(FLatency);
+ 800a8a4:	4a6b      	ldr	r2, [pc, #428]	; (800aa54 <HAL_RCC_ClockConfig+0x218>)
+ 800a8a6:	6813      	ldr	r3, [r2, #0]
+ 800a8a8:	f023 0307 	bic.w	r3, r3, #7
+ 800a8ac:	430b      	orrs	r3, r1
+ 800a8ae:	6013      	str	r3, [r2, #0]
+    tickstart = HAL_GetTick();
+ 800a8b0:	f7f8 f9f2 	bl	8002c98 <HAL_GetTick>
+ 800a8b4:	4606      	mov	r6, r0
+    while (__HAL_FLASH_GET_LATENCY() != FLatency)
+ 800a8b6:	4b67      	ldr	r3, [pc, #412]	; (800aa54 <HAL_RCC_ClockConfig+0x218>)
+ 800a8b8:	681b      	ldr	r3, [r3, #0]
+ 800a8ba:	f003 0307 	and.w	r3, r3, #7
+ 800a8be:	42a3      	cmp	r3, r4
+ 800a8c0:	d0c8      	beq.n	800a854 <HAL_RCC_ClockConfig+0x18>
+      if ((HAL_GetTick() - tickstart) > LATENCY_TIMEOUT_VALUE)
+ 800a8c2:	f7f8 f9e9 	bl	8002c98 <HAL_GetTick>
+ 800a8c6:	1b80      	subs	r0, r0, r6
+ 800a8c8:	2802      	cmp	r0, #2
+ 800a8ca:	d9f4      	bls.n	800a8b6 <HAL_RCC_ClockConfig+0x7a>
+        return HAL_TIMEOUT;
+ 800a8cc:	2003      	movs	r0, #3
+ 800a8ce:	e0bb      	b.n	800aa48 <HAL_RCC_ClockConfig+0x20c>
+    LL_RCC_SetAHBPrescaler(RCC_ClkInitStruct->AHBCLKDivider);
+ 800a8d0:	68ab      	ldr	r3, [r5, #8]
+  MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, Prescaler);
+ 800a8d2:	f04f 41b0 	mov.w	r1, #1476395008	; 0x58000000
+ 800a8d6:	688a      	ldr	r2, [r1, #8]
+ 800a8d8:	f022 02f0 	bic.w	r2, r2, #240	; 0xf0
+ 800a8dc:	4313      	orrs	r3, r2
+ 800a8de:	608b      	str	r3, [r1, #8]
+    tickstart = HAL_GetTick();
+ 800a8e0:	f7f8 f9da 	bl	8002c98 <HAL_GetTick>
+ 800a8e4:	4606      	mov	r6, r0
+  * @rmtoll CFGR         HPREF       LL_RCC_IsActiveFlag_HPRE
+  * @retval State of bit (1 or 0).
+  */
+__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_HPRE(void)
+{
+  return ((READ_BIT(RCC->CFGR, RCC_CFGR_HPREF) == (RCC_CFGR_HPREF)) ? 1UL : 0UL);
+ 800a8e6:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a8ea:	689b      	ldr	r3, [r3, #8]
+ 800a8ec:	f413 3f80 	tst.w	r3, #65536	; 0x10000
+ 800a8f0:	d1b4      	bne.n	800a85c <HAL_RCC_ClockConfig+0x20>
+      if ((HAL_GetTick() - tickstart) > PRESCALER_TIMEOUT_VALUE)
+ 800a8f2:	f7f8 f9d1 	bl	8002c98 <HAL_GetTick>
+ 800a8f6:	1b80      	subs	r0, r0, r6
+ 800a8f8:	2802      	cmp	r0, #2
+ 800a8fa:	d9f4      	bls.n	800a8e6 <HAL_RCC_ClockConfig+0xaa>
+        return HAL_TIMEOUT;
+ 800a8fc:	2003      	movs	r0, #3
+ 800a8fe:	e0a3      	b.n	800aa48 <HAL_RCC_ClockConfig+0x20c>
+    LL_RCC_SetAHB3Prescaler(RCC_ClkInitStruct->AHBCLK3Divider);
+ 800a900:	6969      	ldr	r1, [r5, #20]
+  MODIFY_REG(RCC->EXTCFGR, RCC_EXTCFGR_SHDHPRE, Prescaler >> 4);
+ 800a902:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800a906:	f8d2 3108 	ldr.w	r3, [r2, #264]	; 0x108
+ 800a90a:	f023 030f 	bic.w	r3, r3, #15
+ 800a90e:	ea43 1311 	orr.w	r3, r3, r1, lsr #4
+ 800a912:	f8c2 3108 	str.w	r3, [r2, #264]	; 0x108
+    tickstart = HAL_GetTick();
+ 800a916:	f7f8 f9bf 	bl	8002c98 <HAL_GetTick>
+ 800a91a:	4606      	mov	r6, r0
+  * @rmtoll EXTCFGR         SHDHPREF       LL_RCC_IsActiveFlag_SHDHPRE
+  * @retval State of bit (1 or 0).
+  */
+__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_SHDHPRE(void)
+{
+  return ((READ_BIT(RCC->EXTCFGR, RCC_EXTCFGR_SHDHPREF) == (RCC_EXTCFGR_SHDHPREF)) ? 1UL : 0UL);
+ 800a91c:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a920:	f8d3 3108 	ldr.w	r3, [r3, #264]	; 0x108
+ 800a924:	f413 3f80 	tst.w	r3, #65536	; 0x10000
+ 800a928:	d19c      	bne.n	800a864 <HAL_RCC_ClockConfig+0x28>
+      if ((HAL_GetTick() - tickstart) > PRESCALER_TIMEOUT_VALUE)
+ 800a92a:	f7f8 f9b5 	bl	8002c98 <HAL_GetTick>
+ 800a92e:	1b80      	subs	r0, r0, r6
+ 800a930:	2802      	cmp	r0, #2
+ 800a932:	d9f3      	bls.n	800a91c <HAL_RCC_ClockConfig+0xe0>
+        return HAL_TIMEOUT;
+ 800a934:	2003      	movs	r0, #3
+ 800a936:	e087      	b.n	800aa48 <HAL_RCC_ClockConfig+0x20c>
+    LL_RCC_SetAPB1Prescaler(RCC_ClkInitStruct->APB1CLKDivider);
+ 800a938:	68eb      	ldr	r3, [r5, #12]
+  MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, Prescaler);
+ 800a93a:	f04f 41b0 	mov.w	r1, #1476395008	; 0x58000000
+ 800a93e:	688a      	ldr	r2, [r1, #8]
+ 800a940:	f422 62e0 	bic.w	r2, r2, #1792	; 0x700
+ 800a944:	4313      	orrs	r3, r2
+ 800a946:	608b      	str	r3, [r1, #8]
+    tickstart = HAL_GetTick();
+ 800a948:	f7f8 f9a6 	bl	8002c98 <HAL_GetTick>
+ 800a94c:	4606      	mov	r6, r0
+  * @rmtoll CFGR         PPRE1F       LL_RCC_IsActiveFlag_PPRE1
+  * @retval State of bit (1 or 0).
+  */
+__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_PPRE1(void)
+{
+  return ((READ_BIT(RCC->CFGR, RCC_CFGR_PPRE1F) == (RCC_CFGR_PPRE1F)) ? 1UL : 0UL);
+ 800a94e:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a952:	689b      	ldr	r3, [r3, #8]
+ 800a954:	f413 3f00 	tst.w	r3, #131072	; 0x20000
+ 800a958:	d188      	bne.n	800a86c <HAL_RCC_ClockConfig+0x30>
+      if ((HAL_GetTick() - tickstart) > PRESCALER_TIMEOUT_VALUE)
+ 800a95a:	f7f8 f99d 	bl	8002c98 <HAL_GetTick>
+ 800a95e:	1b80      	subs	r0, r0, r6
+ 800a960:	2802      	cmp	r0, #2
+ 800a962:	d9f4      	bls.n	800a94e <HAL_RCC_ClockConfig+0x112>
+        return HAL_TIMEOUT;
+ 800a964:	2003      	movs	r0, #3
+ 800a966:	e06f      	b.n	800aa48 <HAL_RCC_ClockConfig+0x20c>
+    LL_RCC_SetAPB2Prescaler((RCC_ClkInitStruct->APB2CLKDivider) << 3U);
+ 800a968:	6929      	ldr	r1, [r5, #16]
+  MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, Prescaler);
+ 800a96a:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800a96e:	6893      	ldr	r3, [r2, #8]
+ 800a970:	f423 5360 	bic.w	r3, r3, #14336	; 0x3800
+ 800a974:	ea43 03c1 	orr.w	r3, r3, r1, lsl #3
+ 800a978:	6093      	str	r3, [r2, #8]
+    tickstart = HAL_GetTick();
+ 800a97a:	f7f8 f98d 	bl	8002c98 <HAL_GetTick>
+ 800a97e:	4606      	mov	r6, r0
+  * @rmtoll CFGR         PPRE2F       LL_RCC_IsActiveFlag_PPRE2
+  * @retval State of bit (1 or 0).
+  */
+__STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_PPRE2(void)
+{
+  return ((READ_BIT(RCC->CFGR, RCC_CFGR_PPRE2F) == (RCC_CFGR_PPRE2F)) ? 1UL : 0UL);
+ 800a980:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a984:	689b      	ldr	r3, [r3, #8]
+ 800a986:	f413 2f80 	tst.w	r3, #262144	; 0x40000
+ 800a98a:	f47f af73 	bne.w	800a874 <HAL_RCC_ClockConfig+0x38>
+      if ((HAL_GetTick() - tickstart) > PRESCALER_TIMEOUT_VALUE)
+ 800a98e:	f7f8 f983 	bl	8002c98 <HAL_GetTick>
+ 800a992:	1b80      	subs	r0, r0, r6
+ 800a994:	2802      	cmp	r0, #2
+ 800a996:	d9f3      	bls.n	800a980 <HAL_RCC_ClockConfig+0x144>
+        return HAL_TIMEOUT;
+ 800a998:	2003      	movs	r0, #3
+ 800a99a:	e055      	b.n	800aa48 <HAL_RCC_ClockConfig+0x20c>
+  return ((READ_BIT(RCC->CR, RCC_CR_HSERDY) == (RCC_CR_HSERDY)) ? 1UL : 0UL);
+ 800a99c:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800a9a0:	6812      	ldr	r2, [r2, #0]
+ 800a9a2:	f412 3f00 	tst.w	r2, #131072	; 0x20000
+ 800a9a6:	d10f      	bne.n	800a9c8 <HAL_RCC_ClockConfig+0x18c>
+        return HAL_ERROR;
+ 800a9a8:	2001      	movs	r0, #1
+ 800a9aa:	e04d      	b.n	800aa48 <HAL_RCC_ClockConfig+0x20c>
+  return ((READ_BIT(RCC->CR, RCC_CR_PLLRDY) == (RCC_CR_PLLRDY)) ? 1UL : 0UL);
+ 800a9ac:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800a9b0:	6812      	ldr	r2, [r2, #0]
+ 800a9b2:	f012 7f00 	tst.w	r2, #33554432	; 0x2000000
+ 800a9b6:	d107      	bne.n	800a9c8 <HAL_RCC_ClockConfig+0x18c>
+        return HAL_ERROR;
+ 800a9b8:	2001      	movs	r0, #1
+ 800a9ba:	e045      	b.n	800aa48 <HAL_RCC_ClockConfig+0x20c>
+  return ((READ_BIT(RCC->CR, RCC_CR_HSIRDY) == (RCC_CR_HSIRDY)) ? 1UL : 0UL);
+ 800a9bc:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800a9c0:	6812      	ldr	r2, [r2, #0]
+ 800a9c2:	f412 6f80 	tst.w	r2, #1024	; 0x400
+ 800a9c6:	d042      	beq.n	800aa4e <HAL_RCC_ClockConfig+0x212>
+  MODIFY_REG(RCC->CFGR, RCC_CFGR_SW, Source);
+ 800a9c8:	f04f 41b0 	mov.w	r1, #1476395008	; 0x58000000
+ 800a9cc:	688a      	ldr	r2, [r1, #8]
+ 800a9ce:	f022 0203 	bic.w	r2, r2, #3
+ 800a9d2:	4313      	orrs	r3, r2
+ 800a9d4:	608b      	str	r3, [r1, #8]
+    tickstart = HAL_GetTick();
+ 800a9d6:	f7f8 f95f 	bl	8002c98 <HAL_GetTick>
+ 800a9da:	4606      	mov	r6, r0
+  return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_SWS));
+ 800a9dc:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800a9e0:	689b      	ldr	r3, [r3, #8]
+ 800a9e2:	f003 030c 	and.w	r3, r3, #12
+    while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos))
+ 800a9e6:	686a      	ldr	r2, [r5, #4]
+ 800a9e8:	ebb3 0f82 	cmp.w	r3, r2, lsl #2
+ 800a9ec:	d008      	beq.n	800aa00 <HAL_RCC_ClockConfig+0x1c4>
+      if ((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE)
+ 800a9ee:	f7f8 f953 	bl	8002c98 <HAL_GetTick>
+ 800a9f2:	1b80      	subs	r0, r0, r6
+ 800a9f4:	f241 3388 	movw	r3, #5000	; 0x1388
+ 800a9f8:	4298      	cmp	r0, r3
+ 800a9fa:	d9ef      	bls.n	800a9dc <HAL_RCC_ClockConfig+0x1a0>
+        return HAL_TIMEOUT;
+ 800a9fc:	2003      	movs	r0, #3
+ 800a9fe:	e023      	b.n	800aa48 <HAL_RCC_ClockConfig+0x20c>
+  if (FLatency < __HAL_FLASH_GET_LATENCY())
+ 800aa00:	4b14      	ldr	r3, [pc, #80]	; (800aa54 <HAL_RCC_ClockConfig+0x218>)
+ 800aa02:	681b      	ldr	r3, [r3, #0]
+ 800aa04:	f003 0307 	and.w	r3, r3, #7
+ 800aa08:	42a3      	cmp	r3, r4
+ 800aa0a:	d915      	bls.n	800aa38 <HAL_RCC_ClockConfig+0x1fc>
+    __HAL_FLASH_SET_LATENCY(FLatency);
+ 800aa0c:	4a11      	ldr	r2, [pc, #68]	; (800aa54 <HAL_RCC_ClockConfig+0x218>)
+ 800aa0e:	6813      	ldr	r3, [r2, #0]
+ 800aa10:	f023 0307 	bic.w	r3, r3, #7
+ 800aa14:	4323      	orrs	r3, r4
+ 800aa16:	6013      	str	r3, [r2, #0]
+    tickstart = HAL_GetTick();
+ 800aa18:	f7f8 f93e 	bl	8002c98 <HAL_GetTick>
+ 800aa1c:	4605      	mov	r5, r0
+    while (__HAL_FLASH_GET_LATENCY() != FLatency)
+ 800aa1e:	4b0d      	ldr	r3, [pc, #52]	; (800aa54 <HAL_RCC_ClockConfig+0x218>)
+ 800aa20:	681b      	ldr	r3, [r3, #0]
+ 800aa22:	f003 0307 	and.w	r3, r3, #7
+ 800aa26:	42a3      	cmp	r3, r4
+ 800aa28:	d006      	beq.n	800aa38 <HAL_RCC_ClockConfig+0x1fc>
+      if ((HAL_GetTick() - tickstart) > LATENCY_TIMEOUT_VALUE)
+ 800aa2a:	f7f8 f935 	bl	8002c98 <HAL_GetTick>
+ 800aa2e:	1b40      	subs	r0, r0, r5
+ 800aa30:	2802      	cmp	r0, #2
+ 800aa32:	d9f4      	bls.n	800aa1e <HAL_RCC_ClockConfig+0x1e2>
+        return HAL_TIMEOUT;
+ 800aa34:	2003      	movs	r0, #3
+ 800aa36:	e007      	b.n	800aa48 <HAL_RCC_ClockConfig+0x20c>
+  SystemCoreClock = HAL_RCC_GetHCLKFreq();
+ 800aa38:	f7ff fbbe 	bl	800a1b8 <HAL_RCC_GetHCLKFreq>
+ 800aa3c:	4b06      	ldr	r3, [pc, #24]	; (800aa58 <HAL_RCC_ClockConfig+0x21c>)
+ 800aa3e:	6018      	str	r0, [r3, #0]
+  return HAL_InitTick(uwTickPrio);
+ 800aa40:	4b06      	ldr	r3, [pc, #24]	; (800aa5c <HAL_RCC_ClockConfig+0x220>)
+ 800aa42:	6818      	ldr	r0, [r3, #0]
+ 800aa44:	f7f8 f926 	bl	8002c94 <HAL_InitTick>
+}
+ 800aa48:	bd70      	pop	{r4, r5, r6, pc}
+    return HAL_ERROR;
+ 800aa4a:	2001      	movs	r0, #1
+}
+ 800aa4c:	4770      	bx	lr
+        return HAL_ERROR;
+ 800aa4e:	2001      	movs	r0, #1
+ 800aa50:	e7fa      	b.n	800aa48 <HAL_RCC_ClockConfig+0x20c>
+ 800aa52:	bf00      	nop
+ 800aa54:	58004000 	.word	0x58004000
+ 800aa58:	20000828 	.word	0x20000828
+ 800aa5c:	2000082c 	.word	0x2000082c
+
+0800aa60 <HAL_RCC_GetPCLK1Freq>:
+{
+ 800aa60:	b508      	push	{r3, lr}
+  return ((uint32_t)(__LL_RCC_CALC_PCLK1_FREQ(HAL_RCC_GetHCLKFreq(), LL_RCC_GetAPB1Prescaler())));
+ 800aa62:	f7ff fba9 	bl	800a1b8 <HAL_RCC_GetHCLKFreq>
+  return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_PPRE1));
+ 800aa66:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800aa6a:	689b      	ldr	r3, [r3, #8]
+ 800aa6c:	f3c3 2302 	ubfx	r3, r3, #8, #3
+ 800aa70:	4a02      	ldr	r2, [pc, #8]	; (800aa7c <HAL_RCC_GetPCLK1Freq+0x1c>)
+ 800aa72:	f852 3023 	ldr.w	r3, [r2, r3, lsl #2]
+}
+ 800aa76:	40d8      	lsrs	r0, r3
+ 800aa78:	bd08      	pop	{r3, pc}
+ 800aa7a:	bf00      	nop
+ 800aa7c:	0801853c 	.word	0x0801853c
+
+0800aa80 <HAL_RCC_GetPCLK2Freq>:
+{
+ 800aa80:	b508      	push	{r3, lr}
+  return ((uint32_t)(__LL_RCC_CALC_PCLK2_FREQ(HAL_RCC_GetHCLKFreq(), LL_RCC_GetAPB2Prescaler())));
+ 800aa82:	f7ff fb99 	bl	800a1b8 <HAL_RCC_GetHCLKFreq>
+  return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_PPRE2));
+ 800aa86:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800aa8a:	689b      	ldr	r3, [r3, #8]
+ 800aa8c:	f3c3 23c2 	ubfx	r3, r3, #11, #3
+ 800aa90:	4a02      	ldr	r2, [pc, #8]	; (800aa9c <HAL_RCC_GetPCLK2Freq+0x1c>)
+ 800aa92:	f852 3023 	ldr.w	r3, [r2, r3, lsl #2]
+}
+ 800aa96:	40d8      	lsrs	r0, r3
+ 800aa98:	bd08      	pop	{r3, pc}
+ 800aa9a:	bf00      	nop
+ 800aa9c:	0801853c 	.word	0x0801853c
+
+0800aaa0 <HAL_RCCEx_PeriphCLKConfig>:
+  *         the RTC clock source: in this case the access to Backup domain is enabled.
+  *
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RCCEx_PeriphCLKConfig(RCC_PeriphCLKInitTypeDef  *PeriphClkInit)
+{
+ 800aaa0:	b570      	push	{r4, r5, r6, lr}
+ 800aaa2:	4604      	mov	r4, r0
+
+  /* Check the parameters */
+  assert_param(IS_RCC_PERIPHCLOCK(PeriphClkInit->PeriphClockSelection));
+
+  /*-------------------------- RTC clock source configuration ----------------------*/
+  if ((PeriphClkInit->PeriphClockSelection & RCC_PERIPHCLK_RTC) == RCC_PERIPHCLK_RTC)
+ 800aaa4:	6803      	ldr	r3, [r0, #0]
+ 800aaa6:	f413 3f80 	tst.w	r3, #65536	; 0x10000
+ 800aaaa:	f040 80ab 	bne.w	800ac04 <HAL_RCCEx_PeriphCLKConfig+0x164>
+  HAL_StatusTypeDef status  = HAL_OK;   /* Final status */
+ 800aaae:	2500      	movs	r5, #0
+    }
+
+  }
+
+  /*-------------------- USART1 clock source configuration -------------------*/
+  if (((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART1) == RCC_PERIPHCLK_USART1)
+ 800aab0:	6823      	ldr	r3, [r4, #0]
+ 800aab2:	f013 0f01 	tst.w	r3, #1
+ 800aab6:	d00a      	beq.n	800aace <HAL_RCCEx_PeriphCLKConfig+0x2e>
+  {
+    /* Check the parameters */
+    assert_param(IS_RCC_USART1CLKSOURCE(PeriphClkInit->Usart1ClockSelection));
+
+    /* Configure the USART1 clock source */
+    __HAL_RCC_USART1_CONFIG(PeriphClkInit->Usart1ClockSelection);
+ 800aab8:	6862      	ldr	r2, [r4, #4]
+  MODIFY_REG(RCC->CCIPR, (USARTxSource >> 16), (USARTxSource & 0x0000FFFFU));
+ 800aaba:	f04f 41b0 	mov.w	r1, #1476395008	; 0x58000000
+ 800aabe:	f8d1 3088 	ldr.w	r3, [r1, #136]	; 0x88
+ 800aac2:	ea23 4312 	bic.w	r3, r3, r2, lsr #16
+ 800aac6:	b292      	uxth	r2, r2
+ 800aac8:	4313      	orrs	r3, r2
+ 800aaca:	f8c1 3088 	str.w	r3, [r1, #136]	; 0x88
+  }
+
+  /*-------------------- USART2 clock source configuration -------------------*/
+  if (((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART2) == RCC_PERIPHCLK_USART2)
+ 800aace:	6823      	ldr	r3, [r4, #0]
+ 800aad0:	f013 0f02 	tst.w	r3, #2
+ 800aad4:	d00a      	beq.n	800aaec <HAL_RCCEx_PeriphCLKConfig+0x4c>
+  {
+    /* Check the parameters */
+    assert_param(IS_RCC_USART2CLKSOURCE(PeriphClkInit->Usart2ClockSelection));
+
+    /* Configure the USART2 clock source */
+    __HAL_RCC_USART2_CONFIG(PeriphClkInit->Usart2ClockSelection);
+ 800aad6:	68a2      	ldr	r2, [r4, #8]
+ 800aad8:	f04f 41b0 	mov.w	r1, #1476395008	; 0x58000000
+ 800aadc:	f8d1 3088 	ldr.w	r3, [r1, #136]	; 0x88
+ 800aae0:	ea23 4312 	bic.w	r3, r3, r2, lsr #16
+ 800aae4:	b292      	uxth	r2, r2
+ 800aae6:	4313      	orrs	r3, r2
+ 800aae8:	f8c1 3088 	str.w	r3, [r1, #136]	; 0x88
+  }
+
+  /*-------------------- LPUART1 clock source configuration ------------------*/
+  if (((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LPUART1) == RCC_PERIPHCLK_LPUART1)
+ 800aaec:	6823      	ldr	r3, [r4, #0]
+ 800aaee:	f013 0f20 	tst.w	r3, #32
+ 800aaf2:	d009      	beq.n	800ab08 <HAL_RCCEx_PeriphCLKConfig+0x68>
+  {
+    /* Check the parameters */
+    assert_param(IS_RCC_LPUART1CLKSOURCE(PeriphClkInit->Lpuart1ClockSelection));
+
+    /* Configure the LPUAR1 clock source */
+    __HAL_RCC_LPUART1_CONFIG(PeriphClkInit->Lpuart1ClockSelection);
+ 800aaf4:	6923      	ldr	r3, [r4, #16]
+  MODIFY_REG(RCC->CCIPR, RCC_CCIPR_LPUART1SEL, LPUARTxSource);
+ 800aaf6:	f04f 41b0 	mov.w	r1, #1476395008	; 0x58000000
+ 800aafa:	f8d1 2088 	ldr.w	r2, [r1, #136]	; 0x88
+ 800aafe:	f422 6240 	bic.w	r2, r2, #3072	; 0xc00
+ 800ab02:	4313      	orrs	r3, r2
+ 800ab04:	f8c1 3088 	str.w	r3, [r1, #136]	; 0x88
+  }
+
+  /*-------------------- LPTIM1 clock source configuration -------------------*/
+  if (((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LPTIM1) == (RCC_PERIPHCLK_LPTIM1))
+ 800ab08:	6823      	ldr	r3, [r4, #0]
+ 800ab0a:	f413 7f00 	tst.w	r3, #512	; 0x200
+ 800ab0e:	d00c      	beq.n	800ab2a <HAL_RCCEx_PeriphCLKConfig+0x8a>
+  {
+    /* Check the parameters */
+    assert_param(IS_RCC_LPTIM1CLKSOURCE(PeriphClkInit->Lptim1ClockSelection));
+
+    /* Configure the LPTIM1 clock source */
+    __HAL_RCC_LPTIM1_CONFIG(PeriphClkInit->Lptim1ClockSelection);
+ 800ab10:	6a20      	ldr	r0, [r4, #32]
+  MODIFY_REG(RCC->CCIPR, (LPTIMxSource & 0xFFFF0000U), (LPTIMxSource << 16));
+ 800ab12:	f04f 41b0 	mov.w	r1, #1476395008	; 0x58000000
+ 800ab16:	f8d1 3088 	ldr.w	r3, [r1, #136]	; 0x88
+ 800ab1a:	0c02      	lsrs	r2, r0, #16
+ 800ab1c:	0412      	lsls	r2, r2, #16
+ 800ab1e:	ea23 0302 	bic.w	r3, r3, r2
+ 800ab22:	ea43 4300 	orr.w	r3, r3, r0, lsl #16
+ 800ab26:	f8c1 3088 	str.w	r3, [r1, #136]	; 0x88
+  }
+
+  /*-------------------- LPTIM2 clock source configuration -------------------*/
+  if (((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LPTIM2) == (RCC_PERIPHCLK_LPTIM2))
+ 800ab2a:	6823      	ldr	r3, [r4, #0]
+ 800ab2c:	f413 6f80 	tst.w	r3, #1024	; 0x400
+ 800ab30:	d00c      	beq.n	800ab4c <HAL_RCCEx_PeriphCLKConfig+0xac>
+  {
+    /* Check the parameters */
+    assert_param(IS_RCC_LPTIM2CLKSOURCE(PeriphClkInit->Lptim2ClockSelection));
+
+    /* Configure the LPTIM2 clock source */
+    __HAL_RCC_LPTIM2_CONFIG(PeriphClkInit->Lptim2ClockSelection);
+ 800ab32:	6a60      	ldr	r0, [r4, #36]	; 0x24
+ 800ab34:	f04f 41b0 	mov.w	r1, #1476395008	; 0x58000000
+ 800ab38:	f8d1 3088 	ldr.w	r3, [r1, #136]	; 0x88
+ 800ab3c:	0c02      	lsrs	r2, r0, #16
+ 800ab3e:	0412      	lsls	r2, r2, #16
+ 800ab40:	ea23 0302 	bic.w	r3, r3, r2
+ 800ab44:	ea43 4300 	orr.w	r3, r3, r0, lsl #16
+ 800ab48:	f8c1 3088 	str.w	r3, [r1, #136]	; 0x88
+  }
+
+  /*-------------------- LPTIM3 clock source configuration -------------------*/
+  if (((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LPTIM3) == (RCC_PERIPHCLK_LPTIM3))
+ 800ab4c:	6823      	ldr	r3, [r4, #0]
+ 800ab4e:	f413 6f00 	tst.w	r3, #2048	; 0x800
+ 800ab52:	d00c      	beq.n	800ab6e <HAL_RCCEx_PeriphCLKConfig+0xce>
+  {
+    /* Check the parameters */
+    assert_param(IS_RCC_LPTIM3CLKSOURCE(PeriphClkInit->Lptim3ClockSelection));
+
+    /* Configure the LPTIM3 clock source */
+    __HAL_RCC_LPTIM3_CONFIG(PeriphClkInit->Lptim3ClockSelection);
+ 800ab54:	6aa0      	ldr	r0, [r4, #40]	; 0x28
+ 800ab56:	f04f 41b0 	mov.w	r1, #1476395008	; 0x58000000
+ 800ab5a:	f8d1 3088 	ldr.w	r3, [r1, #136]	; 0x88
+ 800ab5e:	0c02      	lsrs	r2, r0, #16
+ 800ab60:	0412      	lsls	r2, r2, #16
+ 800ab62:	ea23 0302 	bic.w	r3, r3, r2
+ 800ab66:	ea43 4300 	orr.w	r3, r3, r0, lsl #16
+ 800ab6a:	f8c1 3088 	str.w	r3, [r1, #136]	; 0x88
+  }
+
+  /*-------------------- I2C1 clock source configuration ---------------------*/
+  if (((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C1) == RCC_PERIPHCLK_I2C1)
+ 800ab6e:	6823      	ldr	r3, [r4, #0]
+ 800ab70:	f013 0f40 	tst.w	r3, #64	; 0x40
+ 800ab74:	f040 809e 	bne.w	800acb4 <HAL_RCCEx_PeriphCLKConfig+0x214>
+    /* Configure the I2C1 clock source */
+    __HAL_RCC_I2C1_CONFIG(PeriphClkInit->I2c1ClockSelection);
+  }
+
+  /*-------------------- I2C2 clock source configuration ---------------------*/
+  if (((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C2) == RCC_PERIPHCLK_I2C2)
+ 800ab78:	6823      	ldr	r3, [r4, #0]
+ 800ab7a:	f013 0f80 	tst.w	r3, #128	; 0x80
+ 800ab7e:	f040 80aa 	bne.w	800acd6 <HAL_RCCEx_PeriphCLKConfig+0x236>
+    /* Configure the I2C2 clock source */
+    __HAL_RCC_I2C2_CONFIG(PeriphClkInit->I2c2ClockSelection);
+  }
+
+  /*-------------------- I2C3 clock source configuration ---------------------*/
+  if (((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C3) == RCC_PERIPHCLK_I2C3)
+ 800ab82:	6823      	ldr	r3, [r4, #0]
+ 800ab84:	f413 7f80 	tst.w	r3, #256	; 0x100
+ 800ab88:	f040 80b6 	bne.w	800acf8 <HAL_RCCEx_PeriphCLKConfig+0x258>
+    /* Configure the I2C3 clock source */
+    __HAL_RCC_I2C3_CONFIG(PeriphClkInit->I2c3ClockSelection);
+  }
+
+  /*-------------------- I2S2 clock source configuration ---------------------*/
+  if (((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2S2) == (RCC_PERIPHCLK_I2S2))
+ 800ab8c:	6823      	ldr	r3, [r4, #0]
+ 800ab8e:	f013 0f10 	tst.w	r3, #16
+ 800ab92:	d00e      	beq.n	800abb2 <HAL_RCCEx_PeriphCLKConfig+0x112>
+  {
+    /* Check the parameters */
+    assert_param(IS_RCC_I2S2CLKSOURCE(PeriphClkInit->I2s2ClockSelection));
+
+    /* Configure the I2S2 clock source */
+    __HAL_RCC_I2S2_CONFIG(PeriphClkInit->I2s2ClockSelection);
+ 800ab94:	68e3      	ldr	r3, [r4, #12]
+  MODIFY_REG(RCC->CCIPR, RCC_CCIPR_I2S2SEL, I2SxSource);
+ 800ab96:	f04f 41b0 	mov.w	r1, #1476395008	; 0x58000000
+ 800ab9a:	f8d1 2088 	ldr.w	r2, [r1, #136]	; 0x88
+ 800ab9e:	f422 7240 	bic.w	r2, r2, #768	; 0x300
+ 800aba2:	4313      	orrs	r3, r2
+ 800aba4:	f8c1 3088 	str.w	r3, [r1, #136]	; 0x88
+
+    if (PeriphClkInit->I2s2ClockSelection == RCC_I2S2CLKSOURCE_PLL)
+ 800aba8:	68e3      	ldr	r3, [r4, #12]
+ 800abaa:	f5b3 7f80 	cmp.w	r3, #256	; 0x100
+ 800abae:	f000 80b4 	beq.w	800ad1a <HAL_RCCEx_PeriphCLKConfig+0x27a>
+      __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_I2S2CLK);
+    }
+  }
+
+  /*-------------------- RNG clock source configuration ----------------------*/
+  if (((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_RNG) == (RCC_PERIPHCLK_RNG))
+ 800abb2:	6823      	ldr	r3, [r4, #0]
+ 800abb4:	f413 4f00 	tst.w	r3, #32768	; 0x8000
+ 800abb8:	d00f      	beq.n	800abda <HAL_RCCEx_PeriphCLKConfig+0x13a>
+  {
+    assert_param(IS_RCC_RNGCLKSOURCE(PeriphClkInit->RngClockSelection));
+    __HAL_RCC_RNG_CONFIG(PeriphClkInit->RngClockSelection);
+ 800abba:	6b23      	ldr	r3, [r4, #48]	; 0x30
+  MODIFY_REG(RCC->CCIPR, RCC_CCIPR_RNGSEL, RNGxSource);
+ 800abbc:	f04f 41b0 	mov.w	r1, #1476395008	; 0x58000000
+ 800abc0:	f8d1 2088 	ldr.w	r2, [r1, #136]	; 0x88
+ 800abc4:	f022 4240 	bic.w	r2, r2, #3221225472	; 0xc0000000
+ 800abc8:	4313      	orrs	r3, r2
+ 800abca:	f8c1 3088 	str.w	r3, [r1, #136]	; 0x88
+
+    if (PeriphClkInit->RngClockSelection == RCC_RNGCLKSOURCE_PLL)
+ 800abce:	6b23      	ldr	r3, [r4, #48]	; 0x30
+ 800abd0:	b91b      	cbnz	r3, 800abda <HAL_RCCEx_PeriphCLKConfig+0x13a>
+    {
+      /* Enable RCC_PLL_RNGCLK output */
+      __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_RNGCLK);
+ 800abd2:	68cb      	ldr	r3, [r1, #12]
+ 800abd4:	f043 7380 	orr.w	r3, r3, #16777216	; 0x1000000
+ 800abd8:	60cb      	str	r3, [r1, #12]
+    }
+  }
+
+  /*-------------------- ADC clock source configuration ----------------------*/
+  if (((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_ADC) == RCC_PERIPHCLK_ADC)
+ 800abda:	6823      	ldr	r3, [r4, #0]
+ 800abdc:	f413 4f80 	tst.w	r3, #16384	; 0x4000
+ 800abe0:	d00e      	beq.n	800ac00 <HAL_RCCEx_PeriphCLKConfig+0x160>
+  {
+    /* Check the parameters */
+    assert_param(IS_RCC_ADCCLKSOURCE(PeriphClkInit->AdcClockSelection));
+
+    /* Configure the ADC interface clock source */
+    __HAL_RCC_ADC_CONFIG(PeriphClkInit->AdcClockSelection);
+ 800abe2:	6ae3      	ldr	r3, [r4, #44]	; 0x2c
+  MODIFY_REG(RCC->CCIPR, RCC_CCIPR_ADCSEL, ADCxSource);
+ 800abe4:	f04f 41b0 	mov.w	r1, #1476395008	; 0x58000000
+ 800abe8:	f8d1 2088 	ldr.w	r2, [r1, #136]	; 0x88
+ 800abec:	f022 5240 	bic.w	r2, r2, #805306368	; 0x30000000
+ 800abf0:	4313      	orrs	r3, r2
+ 800abf2:	f8c1 3088 	str.w	r3, [r1, #136]	; 0x88
+
+    if (PeriphClkInit->AdcClockSelection == RCC_ADCCLKSOURCE_PLL)
+ 800abf6:	6ae3      	ldr	r3, [r4, #44]	; 0x2c
+ 800abf8:	f1b3 5f00 	cmp.w	r3, #536870912	; 0x20000000
+ 800abfc:	f000 8092 	beq.w	800ad24 <HAL_RCCEx_PeriphCLKConfig+0x284>
+      __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_ADCCLK);
+    }
+  }
+
+  return status;
+}
+ 800ac00:	4628      	mov	r0, r5
+ 800ac02:	bd70      	pop	{r4, r5, r6, pc}
+    HAL_PWR_EnableBkUpAccess();
+ 800ac04:	f7ff f94e 	bl	8009ea4 <HAL_PWR_EnableBkUpAccess>
+    tickstart = HAL_GetTick();
+ 800ac08:	f7f8 f846 	bl	8002c98 <HAL_GetTick>
+ 800ac0c:	4605      	mov	r5, r0
+    while (!(READ_BIT(PWR->CR1, PWR_CR1_DBP) == (PWR_CR1_DBP)))
+ 800ac0e:	4b48      	ldr	r3, [pc, #288]	; (800ad30 <HAL_RCCEx_PeriphCLKConfig+0x290>)
+ 800ac10:	681b      	ldr	r3, [r3, #0]
+ 800ac12:	f413 7f80 	tst.w	r3, #256	; 0x100
+ 800ac16:	d106      	bne.n	800ac26 <HAL_RCCEx_PeriphCLKConfig+0x186>
+      if ((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE)
+ 800ac18:	f7f8 f83e 	bl	8002c98 <HAL_GetTick>
+ 800ac1c:	1b40      	subs	r0, r0, r5
+ 800ac1e:	2802      	cmp	r0, #2
+ 800ac20:	d9f5      	bls.n	800ac0e <HAL_RCCEx_PeriphCLKConfig+0x16e>
+        ret = HAL_TIMEOUT;
+ 800ac22:	2503      	movs	r5, #3
+ 800ac24:	e000      	b.n	800ac28 <HAL_RCCEx_PeriphCLKConfig+0x188>
+  HAL_StatusTypeDef ret = HAL_OK;   /* Intermediate status */
+ 800ac26:	2500      	movs	r5, #0
+    if (ret == HAL_OK)
+ 800ac28:	2d00      	cmp	r5, #0
+ 800ac2a:	f47f af41 	bne.w	800aab0 <HAL_RCCEx_PeriphCLKConfig+0x10>
+  return (uint32_t)(READ_BIT(RCC->BDCR, RCC_BDCR_RTCSEL));
+ 800ac2e:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800ac32:	f8d3 3090 	ldr.w	r3, [r3, #144]	; 0x90
+ 800ac36:	f403 7340 	and.w	r3, r3, #768	; 0x300
+      if (LL_RCC_GetRTCClockSource() != PeriphClkInit->RTCClockSelection)
+ 800ac3a:	6b62      	ldr	r2, [r4, #52]	; 0x34
+ 800ac3c:	429a      	cmp	r2, r3
+ 800ac3e:	d024      	beq.n	800ac8a <HAL_RCCEx_PeriphCLKConfig+0x1ea>
+        tmpregister = READ_BIT(RCC->BDCR, ~(RCC_BDCR_RTCSEL));
+ 800ac40:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800ac44:	f8d3 2090 	ldr.w	r2, [r3, #144]	; 0x90
+ 800ac48:	f422 7240 	bic.w	r2, r2, #768	; 0x300
+  SET_BIT(RCC->BDCR, RCC_BDCR_BDRST);
+ 800ac4c:	f8d3 1090 	ldr.w	r1, [r3, #144]	; 0x90
+ 800ac50:	f441 3180 	orr.w	r1, r1, #65536	; 0x10000
+ 800ac54:	f8c3 1090 	str.w	r1, [r3, #144]	; 0x90
+  CLEAR_BIT(RCC->BDCR, RCC_BDCR_BDRST);
+ 800ac58:	f8d3 1090 	ldr.w	r1, [r3, #144]	; 0x90
+ 800ac5c:	f421 3180 	bic.w	r1, r1, #65536	; 0x10000
+ 800ac60:	f8c3 1090 	str.w	r1, [r3, #144]	; 0x90
+        RCC->BDCR = tmpregister;
+ 800ac64:	f8c3 2090 	str.w	r2, [r3, #144]	; 0x90
+      if (HAL_IS_BIT_SET(tmpregister, RCC_BDCR_LSERDY))
+ 800ac68:	f012 0f02 	tst.w	r2, #2
+ 800ac6c:	d10f      	bne.n	800ac8e <HAL_RCCEx_PeriphCLKConfig+0x1ee>
+      if (ret == HAL_OK)
+ 800ac6e:	2d00      	cmp	r5, #0
+ 800ac70:	f47f af1e 	bne.w	800aab0 <HAL_RCCEx_PeriphCLKConfig+0x10>
+        __HAL_RCC_RTC_CONFIG(PeriphClkInit->RTCClockSelection);
+ 800ac74:	6b63      	ldr	r3, [r4, #52]	; 0x34
+  MODIFY_REG(RCC->BDCR, RCC_BDCR_RTCSEL, Source);
+ 800ac76:	f04f 41b0 	mov.w	r1, #1476395008	; 0x58000000
+ 800ac7a:	f8d1 2090 	ldr.w	r2, [r1, #144]	; 0x90
+ 800ac7e:	f422 7240 	bic.w	r2, r2, #768	; 0x300
+ 800ac82:	4313      	orrs	r3, r2
+ 800ac84:	f8c1 3090 	str.w	r3, [r1, #144]	; 0x90
+}
+ 800ac88:	e712      	b.n	800aab0 <HAL_RCCEx_PeriphCLKConfig+0x10>
+  uint32_t tmpregister = 0;
+ 800ac8a:	2200      	movs	r2, #0
+ 800ac8c:	e7ec      	b.n	800ac68 <HAL_RCCEx_PeriphCLKConfig+0x1c8>
+        tickstart = HAL_GetTick();
+ 800ac8e:	f7f8 f803 	bl	8002c98 <HAL_GetTick>
+ 800ac92:	4606      	mov	r6, r0
+  return ((READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) == (RCC_BDCR_LSERDY)) ? 1UL : 0UL);
+ 800ac94:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800ac98:	f8d3 3090 	ldr.w	r3, [r3, #144]	; 0x90
+ 800ac9c:	f013 0f02 	tst.w	r3, #2
+ 800aca0:	d1e5      	bne.n	800ac6e <HAL_RCCEx_PeriphCLKConfig+0x1ce>
+          if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE)
+ 800aca2:	f7f7 fff9 	bl	8002c98 <HAL_GetTick>
+ 800aca6:	1b80      	subs	r0, r0, r6
+ 800aca8:	f241 3388 	movw	r3, #5000	; 0x1388
+ 800acac:	4298      	cmp	r0, r3
+ 800acae:	d9f1      	bls.n	800ac94 <HAL_RCCEx_PeriphCLKConfig+0x1f4>
+            ret = HAL_TIMEOUT;
+ 800acb0:	2503      	movs	r5, #3
+ 800acb2:	e7dc      	b.n	800ac6e <HAL_RCCEx_PeriphCLKConfig+0x1ce>
+    __HAL_RCC_I2C1_CONFIG(PeriphClkInit->I2c1ClockSelection);
+ 800acb4:	6963      	ldr	r3, [r4, #20]
+  MODIFY_REG(RCC->CCIPR, ((I2CxSource >> 4) & 0x000FF000U), ((I2CxSource << 4) & 0x000FF000U));
+ 800acb6:	f04f 40b0 	mov.w	r0, #1476395008	; 0x58000000
+ 800acba:	f8d0 2088 	ldr.w	r2, [r0, #136]	; 0x88
+ 800acbe:	0919      	lsrs	r1, r3, #4
+ 800acc0:	f401 217f 	and.w	r1, r1, #1044480	; 0xff000
+ 800acc4:	ea22 0201 	bic.w	r2, r2, r1
+ 800acc8:	011b      	lsls	r3, r3, #4
+ 800acca:	f403 237f 	and.w	r3, r3, #1044480	; 0xff000
+ 800acce:	4313      	orrs	r3, r2
+ 800acd0:	f8c0 3088 	str.w	r3, [r0, #136]	; 0x88
+}
+ 800acd4:	e750      	b.n	800ab78 <HAL_RCCEx_PeriphCLKConfig+0xd8>
+    __HAL_RCC_I2C2_CONFIG(PeriphClkInit->I2c2ClockSelection);
+ 800acd6:	69a3      	ldr	r3, [r4, #24]
+  MODIFY_REG(RCC->CCIPR, ((I2CxSource >> 4) & 0x000FF000U), ((I2CxSource << 4) & 0x000FF000U));
+ 800acd8:	f04f 40b0 	mov.w	r0, #1476395008	; 0x58000000
+ 800acdc:	f8d0 2088 	ldr.w	r2, [r0, #136]	; 0x88
+ 800ace0:	0919      	lsrs	r1, r3, #4
+ 800ace2:	f401 217f 	and.w	r1, r1, #1044480	; 0xff000
+ 800ace6:	ea22 0201 	bic.w	r2, r2, r1
+ 800acea:	011b      	lsls	r3, r3, #4
+ 800acec:	f403 237f 	and.w	r3, r3, #1044480	; 0xff000
+ 800acf0:	4313      	orrs	r3, r2
+ 800acf2:	f8c0 3088 	str.w	r3, [r0, #136]	; 0x88
+}
+ 800acf6:	e744      	b.n	800ab82 <HAL_RCCEx_PeriphCLKConfig+0xe2>
+    __HAL_RCC_I2C3_CONFIG(PeriphClkInit->I2c3ClockSelection);
+ 800acf8:	69e3      	ldr	r3, [r4, #28]
+  MODIFY_REG(RCC->CCIPR, ((I2CxSource >> 4) & 0x000FF000U), ((I2CxSource << 4) & 0x000FF000U));
+ 800acfa:	f04f 40b0 	mov.w	r0, #1476395008	; 0x58000000
+ 800acfe:	f8d0 2088 	ldr.w	r2, [r0, #136]	; 0x88
+ 800ad02:	0919      	lsrs	r1, r3, #4
+ 800ad04:	f401 217f 	and.w	r1, r1, #1044480	; 0xff000
+ 800ad08:	ea22 0201 	bic.w	r2, r2, r1
+ 800ad0c:	011b      	lsls	r3, r3, #4
+ 800ad0e:	f403 237f 	and.w	r3, r3, #1044480	; 0xff000
+ 800ad12:	4313      	orrs	r3, r2
+ 800ad14:	f8c0 3088 	str.w	r3, [r0, #136]	; 0x88
+}
+ 800ad18:	e738      	b.n	800ab8c <HAL_RCCEx_PeriphCLKConfig+0xec>
+      __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_I2S2CLK);
+ 800ad1a:	68cb      	ldr	r3, [r1, #12]
+ 800ad1c:	f043 7380 	orr.w	r3, r3, #16777216	; 0x1000000
+ 800ad20:	60cb      	str	r3, [r1, #12]
+ 800ad22:	e746      	b.n	800abb2 <HAL_RCCEx_PeriphCLKConfig+0x112>
+      __HAL_RCC_PLLCLKOUT_ENABLE(RCC_PLL_ADCCLK);
+ 800ad24:	68cb      	ldr	r3, [r1, #12]
+ 800ad26:	f443 3380 	orr.w	r3, r3, #65536	; 0x10000
+ 800ad2a:	60cb      	str	r3, [r1, #12]
+ 800ad2c:	e768      	b.n	800ac00 <HAL_RCCEx_PeriphCLKConfig+0x160>
+ 800ad2e:	bf00      	nop
+ 800ad30:	58000400 	.word	0x58000400
+
+0800ad34 <HAL_RTC_DeactivateAlarm>:
+  *            @arg RTC_ALARM_A:  AlarmA
+  *            @arg RTC_ALARM_B:  AlarmB
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTC_DeactivateAlarm(RTC_HandleTypeDef *hrtc, uint32_t Alarm)
+{
+ 800ad34:	4603      	mov	r3, r0
+  /* Check the parameters */
+  assert_param(IS_RTC_ALARM(Alarm));
+
+  /* Process Locked */
+  __HAL_LOCK(hrtc);
+ 800ad36:	f890 202c 	ldrb.w	r2, [r0, #44]	; 0x2c
+ 800ad3a:	2a01      	cmp	r2, #1
+ 800ad3c:	d035      	beq.n	800adaa <HAL_RTC_DeactivateAlarm+0x76>
+ 800ad3e:	2201      	movs	r2, #1
+ 800ad40:	f880 202c 	strb.w	r2, [r0, #44]	; 0x2c
+
+  hrtc->State = HAL_RTC_STATE_BUSY;
+ 800ad44:	2202      	movs	r2, #2
+ 800ad46:	f880 202d 	strb.w	r2, [r0, #45]	; 0x2d
+
+  /* Disable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+ 800ad4a:	4a19      	ldr	r2, [pc, #100]	; (800adb0 <HAL_RTC_DeactivateAlarm+0x7c>)
+ 800ad4c:	20ca      	movs	r0, #202	; 0xca
+ 800ad4e:	6250      	str	r0, [r2, #36]	; 0x24
+ 800ad50:	2053      	movs	r0, #83	; 0x53
+ 800ad52:	6250      	str	r0, [r2, #36]	; 0x24
+
+  if (Alarm == RTC_ALARM_A)
+ 800ad54:	f5b1 7f80 	cmp.w	r1, #256	; 0x100
+ 800ad58:	d018      	beq.n	800ad8c <HAL_RTC_DeactivateAlarm+0x58>
+    WRITE_REG(RTC->SCR, RTC_SCR_CALRAF);
+  }
+  else
+  {
+    /* AlarmB, In case of interrupt mode is used, the interrupt source must disabled */
+    CLEAR_BIT(RTC->CR, RTC_CR_ALRBE | RTC_CR_ALRBIE);
+ 800ad5a:	4a15      	ldr	r2, [pc, #84]	; (800adb0 <HAL_RTC_DeactivateAlarm+0x7c>)
+ 800ad5c:	6991      	ldr	r1, [r2, #24]
+ 800ad5e:	f421 5108 	bic.w	r1, r1, #8704	; 0x2200
+ 800ad62:	6191      	str	r1, [r2, #24]
+
+    /* AlarmB, Clear SSCLR */
+    CLEAR_BIT(RTC->ALRMBSSR, RTC_ALRMBSSR_SSCLR);
+ 800ad64:	6cd1      	ldr	r1, [r2, #76]	; 0x4c
+ 800ad66:	f021 4100 	bic.w	r1, r1, #2147483648	; 0x80000000
+ 800ad6a:	64d1      	str	r1, [r2, #76]	; 0x4c
+
+    /* Store in the handle the Alarm B disabled */
+    CLEAR_BIT(hrtc->IsEnabled.RtcFeatures, RTC_MISR_ALRBMF);
+ 800ad6c:	6b19      	ldr	r1, [r3, #48]	; 0x30
+ 800ad6e:	f021 0102 	bic.w	r1, r1, #2
+ 800ad72:	6319      	str	r1, [r3, #48]	; 0x30
+
+    /* Clear AlarmB flag */
+    WRITE_REG(RTC->SCR, RTC_SCR_CALRBF);
+ 800ad74:	2102      	movs	r1, #2
+ 800ad76:	65d1      	str	r1, [r2, #92]	; 0x5c
+  }
+
+  /* Enable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+ 800ad78:	4a0d      	ldr	r2, [pc, #52]	; (800adb0 <HAL_RTC_DeactivateAlarm+0x7c>)
+ 800ad7a:	21ff      	movs	r1, #255	; 0xff
+ 800ad7c:	6251      	str	r1, [r2, #36]	; 0x24
+
+  hrtc->State = HAL_RTC_STATE_READY;
+ 800ad7e:	2201      	movs	r2, #1
+ 800ad80:	f883 202d 	strb.w	r2, [r3, #45]	; 0x2d
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(hrtc);
+ 800ad84:	2000      	movs	r0, #0
+ 800ad86:	f883 002c 	strb.w	r0, [r3, #44]	; 0x2c
+
+  return HAL_OK;
+ 800ad8a:	4770      	bx	lr
+    CLEAR_BIT(RTC->CR, RTC_CR_ALRAE | RTC_CR_ALRAIE);
+ 800ad8c:	6991      	ldr	r1, [r2, #24]
+ 800ad8e:	f421 5188 	bic.w	r1, r1, #4352	; 0x1100
+ 800ad92:	6191      	str	r1, [r2, #24]
+    CLEAR_BIT(RTC->ALRMASSR, RTC_ALRMASSR_SSCLR);
+ 800ad94:	6c51      	ldr	r1, [r2, #68]	; 0x44
+ 800ad96:	f021 4100 	bic.w	r1, r1, #2147483648	; 0x80000000
+ 800ad9a:	6451      	str	r1, [r2, #68]	; 0x44
+    CLEAR_BIT(hrtc->IsEnabled.RtcFeatures, RTC_MISR_ALRAMF);
+ 800ad9c:	6b19      	ldr	r1, [r3, #48]	; 0x30
+ 800ad9e:	f021 0101 	bic.w	r1, r1, #1
+ 800ada2:	6319      	str	r1, [r3, #48]	; 0x30
+    WRITE_REG(RTC->SCR, RTC_SCR_CALRAF);
+ 800ada4:	2101      	movs	r1, #1
+ 800ada6:	65d1      	str	r1, [r2, #92]	; 0x5c
+ 800ada8:	e7e6      	b.n	800ad78 <HAL_RTC_DeactivateAlarm+0x44>
+  __HAL_LOCK(hrtc);
+ 800adaa:	2002      	movs	r0, #2
+}
+ 800adac:	4770      	bx	lr
+ 800adae:	bf00      	nop
+ 800adb0:	40002800 	.word	0x40002800
+
+0800adb4 <HAL_RTC_AlarmIRQHandler>:
+  * @brief  Handle Alarm interrupt request.
+  * @param  hrtc RTC handle
+  * @retval None
+  */
+void HAL_RTC_AlarmIRQHandler(RTC_HandleTypeDef *hrtc)
+{
+ 800adb4:	b538      	push	{r3, r4, r5, lr}
+ 800adb6:	4604      	mov	r4, r0
+  uint32_t tmp = READ_REG(RTC->MISR) & READ_REG(hrtc->IsEnabled.RtcFeatures);
+ 800adb8:	4b0d      	ldr	r3, [pc, #52]	; (800adf0 <HAL_RTC_AlarmIRQHandler+0x3c>)
+ 800adba:	6d5d      	ldr	r5, [r3, #84]	; 0x54
+ 800adbc:	6b03      	ldr	r3, [r0, #48]	; 0x30
+ 800adbe:	401d      	ands	r5, r3
+
+  if ((tmp & RTC_MISR_ALRAMF) != 0U)
+ 800adc0:	f015 0f01 	tst.w	r5, #1
+ 800adc4:	d106      	bne.n	800add4 <HAL_RTC_AlarmIRQHandler+0x20>
+#else
+    HAL_RTC_AlarmAEventCallback(hrtc);
+#endif
+  }
+
+  if ((tmp & RTC_MISR_ALRBMF) != 0U)
+ 800adc6:	f015 0f02 	tst.w	r5, #2
+ 800adca:	d109      	bne.n	800ade0 <HAL_RTC_AlarmIRQHandler+0x2c>
+    HAL_RTCEx_AlarmBEventCallback(hrtc);
+#endif
+  }
+
+  /* Change RTC state */
+  hrtc->State = HAL_RTC_STATE_READY;
+ 800adcc:	2301      	movs	r3, #1
+ 800adce:	f884 302d 	strb.w	r3, [r4, #45]	; 0x2d
+}
+ 800add2:	bd38      	pop	{r3, r4, r5, pc}
+    WRITE_REG(RTC->SCR, RTC_SCR_CALRAF);
+ 800add4:	4b06      	ldr	r3, [pc, #24]	; (800adf0 <HAL_RTC_AlarmIRQHandler+0x3c>)
+ 800add6:	2201      	movs	r2, #1
+ 800add8:	65da      	str	r2, [r3, #92]	; 0x5c
+    HAL_RTC_AlarmAEventCallback(hrtc);
+ 800adda:	f7f8 f93b 	bl	8003054 <HAL_RTC_AlarmAEventCallback>
+ 800adde:	e7f2      	b.n	800adc6 <HAL_RTC_AlarmIRQHandler+0x12>
+    WRITE_REG(RTC->SCR, RTC_SCR_CALRBF);
+ 800ade0:	4b03      	ldr	r3, [pc, #12]	; (800adf0 <HAL_RTC_AlarmIRQHandler+0x3c>)
+ 800ade2:	2202      	movs	r2, #2
+ 800ade4:	65da      	str	r2, [r3, #92]	; 0x5c
+    HAL_RTCEx_AlarmBEventCallback(hrtc);
+ 800ade6:	4620      	mov	r0, r4
+ 800ade8:	f000 f9ec 	bl	800b1c4 <HAL_RTCEx_AlarmBEventCallback>
+ 800adec:	e7ee      	b.n	800adcc <HAL_RTC_AlarmIRQHandler+0x18>
+ 800adee:	bf00      	nop
+ 800adf0:	40002800 	.word	0x40002800
+
+0800adf4 <HAL_RTC_WaitForSynchro>:
+  *         correctly copied into the RTC_TR and RTC_DR shadow registers.
+  * @param  hrtc RTC handle
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTC_WaitForSynchro(RTC_HandleTypeDef *hrtc)
+{
+ 800adf4:	b510      	push	{r4, lr}
+  uint32_t tickstart;
+
+  UNUSED(hrtc);
+  /* Clear RSF flag */
+  CLEAR_BIT(RTC->ICSR, RTC_ICSR_RSF);
+ 800adf6:	4a0b      	ldr	r2, [pc, #44]	; (800ae24 <HAL_RTC_WaitForSynchro+0x30>)
+ 800adf8:	68d3      	ldr	r3, [r2, #12]
+ 800adfa:	f023 0320 	bic.w	r3, r3, #32
+ 800adfe:	60d3      	str	r3, [r2, #12]
+
+  tickstart = HAL_GetTick();
+ 800ae00:	f7f7 ff4a 	bl	8002c98 <HAL_GetTick>
+ 800ae04:	4604      	mov	r4, r0
+
+  /* Wait the registers to be synchronised */
+  while (READ_BIT(RTC->ICSR, RTC_ICSR_RSF) == 0U)
+ 800ae06:	4b07      	ldr	r3, [pc, #28]	; (800ae24 <HAL_RTC_WaitForSynchro+0x30>)
+ 800ae08:	68db      	ldr	r3, [r3, #12]
+ 800ae0a:	f013 0f20 	tst.w	r3, #32
+ 800ae0e:	d107      	bne.n	800ae20 <HAL_RTC_WaitForSynchro+0x2c>
+  {
+    if ((HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
+ 800ae10:	f7f7 ff42 	bl	8002c98 <HAL_GetTick>
+ 800ae14:	1b00      	subs	r0, r0, r4
+ 800ae16:	f5b0 7f7a 	cmp.w	r0, #1000	; 0x3e8
+ 800ae1a:	d9f4      	bls.n	800ae06 <HAL_RTC_WaitForSynchro+0x12>
+    {
+      return HAL_TIMEOUT;
+ 800ae1c:	2003      	movs	r0, #3
+ 800ae1e:	e000      	b.n	800ae22 <HAL_RTC_WaitForSynchro+0x2e>
+    }
+  }
+
+  return HAL_OK;
+ 800ae20:	2000      	movs	r0, #0
+}
+ 800ae22:	bd10      	pop	{r4, pc}
+ 800ae24:	40002800 	.word	0x40002800
+
+0800ae28 <RTC_EnterInitMode>:
+  *         __HAL_RTC_WRITEPROTECTION_DISABLE() before calling this function.
+  * @param  hrtc RTC handle
+  * @retval HAL status
+  */
+HAL_StatusTypeDef RTC_EnterInitMode(RTC_HandleTypeDef *hrtc)
+{
+ 800ae28:	b570      	push	{r4, r5, r6, lr}
+  uint32_t tickstart;
+  HAL_StatusTypeDef status = HAL_OK;
+
+  UNUSED(hrtc);
+  /* Check if the Initialization mode is set */
+  if (READ_BIT(RTC->ICSR, RTC_ICSR_INITF) == 0U)
+ 800ae2a:	4b11      	ldr	r3, [pc, #68]	; (800ae70 <RTC_EnterInitMode+0x48>)
+ 800ae2c:	68db      	ldr	r3, [r3, #12]
+ 800ae2e:	f013 0f40 	tst.w	r3, #64	; 0x40
+ 800ae32:	d002      	beq.n	800ae3a <RTC_EnterInitMode+0x12>
+  HAL_StatusTypeDef status = HAL_OK;
+ 800ae34:	2400      	movs	r4, #0
+      }
+    }
+  }
+
+  return status;
+}
+ 800ae36:	4620      	mov	r0, r4
+ 800ae38:	bd70      	pop	{r4, r5, r6, pc}
+ 800ae3a:	4606      	mov	r6, r0
+    SET_BIT(RTC->ICSR, RTC_ICSR_INIT);
+ 800ae3c:	4a0c      	ldr	r2, [pc, #48]	; (800ae70 <RTC_EnterInitMode+0x48>)
+ 800ae3e:	68d3      	ldr	r3, [r2, #12]
+ 800ae40:	f043 0380 	orr.w	r3, r3, #128	; 0x80
+ 800ae44:	60d3      	str	r3, [r2, #12]
+    tickstart = HAL_GetTick();
+ 800ae46:	f7f7 ff27 	bl	8002c98 <HAL_GetTick>
+ 800ae4a:	4605      	mov	r5, r0
+  HAL_StatusTypeDef status = HAL_OK;
+ 800ae4c:	2400      	movs	r4, #0
+    while ((READ_BIT(RTC->ICSR, RTC_ICSR_INITF) == 0U) && (status != HAL_TIMEOUT))
+ 800ae4e:	4b08      	ldr	r3, [pc, #32]	; (800ae70 <RTC_EnterInitMode+0x48>)
+ 800ae50:	68db      	ldr	r3, [r3, #12]
+ 800ae52:	f013 0f40 	tst.w	r3, #64	; 0x40
+ 800ae56:	d1ee      	bne.n	800ae36 <RTC_EnterInitMode+0xe>
+ 800ae58:	2c03      	cmp	r4, #3
+ 800ae5a:	d0ec      	beq.n	800ae36 <RTC_EnterInitMode+0xe>
+      if ((HAL_GetTick()  - tickstart) > RTC_TIMEOUT_VALUE)
+ 800ae5c:	f7f7 ff1c 	bl	8002c98 <HAL_GetTick>
+ 800ae60:	1b43      	subs	r3, r0, r5
+ 800ae62:	f5b3 7f7a 	cmp.w	r3, #1000	; 0x3e8
+ 800ae66:	d9f2      	bls.n	800ae4e <RTC_EnterInitMode+0x26>
+        hrtc->State = HAL_RTC_STATE_TIMEOUT;
+ 800ae68:	2403      	movs	r4, #3
+ 800ae6a:	f886 402d 	strb.w	r4, [r6, #45]	; 0x2d
+ 800ae6e:	e7ee      	b.n	800ae4e <RTC_EnterInitMode+0x26>
+ 800ae70:	40002800 	.word	0x40002800
+
+0800ae74 <RTC_ExitInitMode>:
+  * @brief  Exit the RTC Initialization mode.
+  * @param  hrtc RTC handle
+  * @retval HAL status
+  */
+HAL_StatusTypeDef RTC_ExitInitMode(RTC_HandleTypeDef *hrtc)
+{
+ 800ae74:	b510      	push	{r4, lr}
+ 800ae76:	4604      	mov	r4, r0
+  HAL_StatusTypeDef status = HAL_OK;
+
+  /* Exit Initialization mode */
+  CLEAR_BIT(RTC->ICSR, RTC_ICSR_INIT);
+ 800ae78:	4b10      	ldr	r3, [pc, #64]	; (800aebc <RTC_ExitInitMode+0x48>)
+ 800ae7a:	68da      	ldr	r2, [r3, #12]
+ 800ae7c:	f022 0280 	bic.w	r2, r2, #128	; 0x80
+ 800ae80:	60da      	str	r2, [r3, #12]
+
+  /* If CR_BYPSHAD bit = 0, wait for synchro */
+  if (READ_BIT(RTC->CR, RTC_CR_BYPSHAD) == 0U)
+ 800ae82:	699b      	ldr	r3, [r3, #24]
+ 800ae84:	f013 0f20 	tst.w	r3, #32
+ 800ae88:	d106      	bne.n	800ae98 <RTC_ExitInitMode+0x24>
+  {
+    if (HAL_RTC_WaitForSynchro(hrtc) != HAL_OK)
+ 800ae8a:	f7ff ffb3 	bl	800adf4 <HAL_RTC_WaitForSynchro>
+ 800ae8e:	b198      	cbz	r0, 800aeb8 <RTC_ExitInitMode+0x44>
+    {
+      hrtc->State = HAL_RTC_STATE_TIMEOUT;
+ 800ae90:	2003      	movs	r0, #3
+ 800ae92:	f884 002d 	strb.w	r0, [r4, #45]	; 0x2d
+      status = HAL_TIMEOUT;
+ 800ae96:	e00f      	b.n	800aeb8 <RTC_ExitInitMode+0x44>
+    }
+  }
+  else /* WA 2.9.6 Calendar initialization may fail in case of consecutive INIT mode entry. */
+  {
+    /* Clear BYPSHAD bit */
+    CLEAR_BIT(RTC->CR, RTC_CR_BYPSHAD);
+ 800ae98:	4a08      	ldr	r2, [pc, #32]	; (800aebc <RTC_ExitInitMode+0x48>)
+ 800ae9a:	6993      	ldr	r3, [r2, #24]
+ 800ae9c:	f023 0320 	bic.w	r3, r3, #32
+ 800aea0:	6193      	str	r3, [r2, #24]
+    if (HAL_RTC_WaitForSynchro(hrtc) != HAL_OK)
+ 800aea2:	f7ff ffa7 	bl	800adf4 <HAL_RTC_WaitForSynchro>
+ 800aea6:	b110      	cbz	r0, 800aeae <RTC_ExitInitMode+0x3a>
+    {
+      hrtc->State = HAL_RTC_STATE_TIMEOUT;
+ 800aea8:	2003      	movs	r0, #3
+ 800aeaa:	f884 002d 	strb.w	r0, [r4, #45]	; 0x2d
+      status = HAL_TIMEOUT;
+    }
+    /* Restore BYPSHAD bit */
+    SET_BIT(RTC->CR, RTC_CR_BYPSHAD);
+ 800aeae:	4a03      	ldr	r2, [pc, #12]	; (800aebc <RTC_ExitInitMode+0x48>)
+ 800aeb0:	6993      	ldr	r3, [r2, #24]
+ 800aeb2:	f043 0320 	orr.w	r3, r3, #32
+ 800aeb6:	6193      	str	r3, [r2, #24]
+  }
+
+  return status;
+}
+ 800aeb8:	bd10      	pop	{r4, pc}
+ 800aeba:	bf00      	nop
+ 800aebc:	40002800 	.word	0x40002800
+
+0800aec0 <HAL_RTC_Init>:
+  if (hrtc != NULL)
+ 800aec0:	2800      	cmp	r0, #0
+ 800aec2:	d052      	beq.n	800af6a <HAL_RTC_Init+0xaa>
+{
+ 800aec4:	b538      	push	{r3, r4, r5, lr}
+ 800aec6:	4604      	mov	r4, r0
+    if (hrtc->State == HAL_RTC_STATE_RESET)
+ 800aec8:	f890 302d 	ldrb.w	r3, [r0, #45]	; 0x2d
+ 800aecc:	b163      	cbz	r3, 800aee8 <HAL_RTC_Init+0x28>
+    hrtc->State = HAL_RTC_STATE_BUSY;
+ 800aece:	2302      	movs	r3, #2
+ 800aed0:	f884 302d 	strb.w	r3, [r4, #45]	; 0x2d
+    if (__HAL_RTC_IS_CALENDAR_INITIALIZED(hrtc) == 0U)
+ 800aed4:	4b26      	ldr	r3, [pc, #152]	; (800af70 <HAL_RTC_Init+0xb0>)
+ 800aed6:	68db      	ldr	r3, [r3, #12]
+ 800aed8:	f013 0f10 	tst.w	r3, #16
+ 800aedc:	d009      	beq.n	800aef2 <HAL_RTC_Init+0x32>
+      status = HAL_OK;
+ 800aede:	2000      	movs	r0, #0
+      hrtc->State = HAL_RTC_STATE_READY;
+ 800aee0:	2301      	movs	r3, #1
+ 800aee2:	f884 302d 	strb.w	r3, [r4, #45]	; 0x2d
+}
+ 800aee6:	bd38      	pop	{r3, r4, r5, pc}
+      hrtc->Lock = HAL_UNLOCKED;
+ 800aee8:	f880 302c 	strb.w	r3, [r0, #44]	; 0x2c
+      HAL_RTC_MspInit(hrtc);
+ 800aeec:	f7f7 fc90 	bl	8002810 <HAL_RTC_MspInit>
+ 800aef0:	e7ed      	b.n	800aece <HAL_RTC_Init+0xe>
+      __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+ 800aef2:	4b1f      	ldr	r3, [pc, #124]	; (800af70 <HAL_RTC_Init+0xb0>)
+ 800aef4:	22ca      	movs	r2, #202	; 0xca
+ 800aef6:	625a      	str	r2, [r3, #36]	; 0x24
+ 800aef8:	2253      	movs	r2, #83	; 0x53
+ 800aefa:	625a      	str	r2, [r3, #36]	; 0x24
+      status = RTC_EnterInitMode(hrtc);
+ 800aefc:	4620      	mov	r0, r4
+ 800aefe:	f7ff ff93 	bl	800ae28 <RTC_EnterInitMode>
+      if (status == HAL_OK)
+ 800af02:	b128      	cbz	r0, 800af10 <HAL_RTC_Init+0x50>
+      __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+ 800af04:	4b1a      	ldr	r3, [pc, #104]	; (800af70 <HAL_RTC_Init+0xb0>)
+ 800af06:	22ff      	movs	r2, #255	; 0xff
+ 800af08:	625a      	str	r2, [r3, #36]	; 0x24
+    if (status == HAL_OK)
+ 800af0a:	2800      	cmp	r0, #0
+ 800af0c:	d1eb      	bne.n	800aee6 <HAL_RTC_Init+0x26>
+ 800af0e:	e7e7      	b.n	800aee0 <HAL_RTC_Init+0x20>
+        CLEAR_BIT(RTC->CR, (RTC_CR_FMT | RTC_CR_POL | RTC_CR_OSEL | RTC_CR_TAMPOE));
+ 800af10:	4b17      	ldr	r3, [pc, #92]	; (800af70 <HAL_RTC_Init+0xb0>)
+ 800af12:	699a      	ldr	r2, [r3, #24]
+ 800af14:	f022 628e 	bic.w	r2, r2, #74448896	; 0x4700000
+ 800af18:	f022 0240 	bic.w	r2, r2, #64	; 0x40
+ 800af1c:	619a      	str	r2, [r3, #24]
+        SET_BIT(RTC->CR, (hrtc->Init.HourFormat | hrtc->Init.OutPut | hrtc->Init.OutPutPolarity));
+ 800af1e:	6999      	ldr	r1, [r3, #24]
+ 800af20:	6862      	ldr	r2, [r4, #4]
+ 800af22:	6920      	ldr	r0, [r4, #16]
+ 800af24:	4302      	orrs	r2, r0
+ 800af26:	69a0      	ldr	r0, [r4, #24]
+ 800af28:	4302      	orrs	r2, r0
+ 800af2a:	430a      	orrs	r2, r1
+ 800af2c:	619a      	str	r2, [r3, #24]
+        WRITE_REG(RTC->PRER, ((hrtc->Init.SynchPrediv) | (hrtc->Init.AsynchPrediv << RTC_PRER_PREDIV_A_Pos)));
+ 800af2e:	68e2      	ldr	r2, [r4, #12]
+ 800af30:	68a1      	ldr	r1, [r4, #8]
+ 800af32:	ea42 4201 	orr.w	r2, r2, r1, lsl #16
+ 800af36:	611a      	str	r2, [r3, #16]
+        MODIFY_REG(RTC->ICSR, RTC_ICSR_BIN | RTC_ICSR_BCDU, hrtc->Init.BinMode | hrtc->Init.BinMixBcdU);
+ 800af38:	68da      	ldr	r2, [r3, #12]
+ 800af3a:	f422 52f8 	bic.w	r2, r2, #7936	; 0x1f00
+ 800af3e:	6a61      	ldr	r1, [r4, #36]	; 0x24
+ 800af40:	6aa0      	ldr	r0, [r4, #40]	; 0x28
+ 800af42:	4301      	orrs	r1, r0
+ 800af44:	430a      	orrs	r2, r1
+ 800af46:	60da      	str	r2, [r3, #12]
+        status = RTC_ExitInitMode(hrtc);
+ 800af48:	4620      	mov	r0, r4
+ 800af4a:	f7ff ff93 	bl	800ae74 <RTC_ExitInitMode>
+        if (status == HAL_OK)
+ 800af4e:	2800      	cmp	r0, #0
+ 800af50:	d1d8      	bne.n	800af04 <HAL_RTC_Init+0x44>
+          MODIFY_REG(RTC->CR, \
+ 800af52:	4907      	ldr	r1, [pc, #28]	; (800af70 <HAL_RTC_Init+0xb0>)
+ 800af54:	698b      	ldr	r3, [r1, #24]
+ 800af56:	f023 4360 	bic.w	r3, r3, #3758096384	; 0xe0000000
+ 800af5a:	6a22      	ldr	r2, [r4, #32]
+ 800af5c:	69e5      	ldr	r5, [r4, #28]
+ 800af5e:	432a      	orrs	r2, r5
+ 800af60:	6965      	ldr	r5, [r4, #20]
+ 800af62:	432a      	orrs	r2, r5
+ 800af64:	4313      	orrs	r3, r2
+ 800af66:	618b      	str	r3, [r1, #24]
+ 800af68:	e7cc      	b.n	800af04 <HAL_RTC_Init+0x44>
+  HAL_StatusTypeDef status = HAL_ERROR;
+ 800af6a:	2001      	movs	r0, #1
+}
+ 800af6c:	4770      	bx	lr
+ 800af6e:	bf00      	nop
+ 800af70:	40002800 	.word	0x40002800
+
+0800af74 <RTC_ByteToBcd2>:
+  * @param  Value Byte to be converted
+  * @retval Converted byte
+  */
+uint8_t RTC_ByteToBcd2(uint8_t Value)
+{
+  uint32_t bcdhigh = 0U;
+ 800af74:	2300      	movs	r3, #0
+  uint8_t tmp_Value = Value;
+
+  while (tmp_Value >= 10U)
+ 800af76:	e002      	b.n	800af7e <RTC_ByteToBcd2+0xa>
+  {
+    bcdhigh++;
+ 800af78:	3301      	adds	r3, #1
+    tmp_Value -= 10U;
+ 800af7a:	380a      	subs	r0, #10
+ 800af7c:	b2c0      	uxtb	r0, r0
+  while (tmp_Value >= 10U)
+ 800af7e:	2809      	cmp	r0, #9
+ 800af80:	d8fa      	bhi.n	800af78 <RTC_ByteToBcd2+0x4>
+  }
+
+  return ((uint8_t)(bcdhigh << 4U) | tmp_Value);
+ 800af82:	011b      	lsls	r3, r3, #4
+ 800af84:	b2db      	uxtb	r3, r3
+}
+ 800af86:	4318      	orrs	r0, r3
+ 800af88:	4770      	bx	lr
+	...
+
+0800af8c <HAL_RTC_SetAlarm_IT>:
+  __HAL_LOCK(hrtc);
+ 800af8c:	f890 302c 	ldrb.w	r3, [r0, #44]	; 0x2c
+ 800af90:	2b01      	cmp	r3, #1
+ 800af92:	f000 80b0 	beq.w	800b0f6 <HAL_RTC_SetAlarm_IT+0x16a>
+{
+ 800af96:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800af9a:	4605      	mov	r5, r0
+ 800af9c:	460c      	mov	r4, r1
+  __HAL_LOCK(hrtc);
+ 800af9e:	2301      	movs	r3, #1
+ 800afa0:	f880 302c 	strb.w	r3, [r0, #44]	; 0x2c
+  hrtc->State = HAL_RTC_STATE_BUSY;
+ 800afa4:	2302      	movs	r3, #2
+ 800afa6:	f880 302d 	strb.w	r3, [r0, #45]	; 0x2d
+  binaryMode = READ_BIT(RTC->ICSR, RTC_ICSR_BIN);
+ 800afaa:	4b54      	ldr	r3, [pc, #336]	; (800b0fc <HAL_RTC_SetAlarm_IT+0x170>)
+ 800afac:	68de      	ldr	r6, [r3, #12]
+ 800afae:	f406 7640 	and.w	r6, r6, #768	; 0x300
+  if (binaryMode != RTC_BINARY_ONLY)
+ 800afb2:	f5b6 7f80 	cmp.w	r6, #256	; 0x100
+ 800afb6:	d043      	beq.n	800b040 <HAL_RTC_SetAlarm_IT+0xb4>
+    if (Format == RTC_FORMAT_BIN)
+ 800afb8:	bb12      	cbnz	r2, 800b000 <HAL_RTC_SetAlarm_IT+0x74>
+      if (READ_BIT(RTC->CR, RTC_CR_FMT) != 0U)
+ 800afba:	699b      	ldr	r3, [r3, #24]
+ 800afbc:	f013 0f40 	tst.w	r3, #64	; 0x40
+ 800afc0:	d101      	bne.n	800afc6 <HAL_RTC_SetAlarm_IT+0x3a>
+        sAlarm->AlarmTime.TimeFormat = 0x00U;
+ 800afc2:	2300      	movs	r3, #0
+ 800afc4:	70cb      	strb	r3, [r1, #3]
+      if( sAlarm->AlarmMask != RTC_ALARMMASK_DATEWEEKDAY )
+ 800afc6:	f8d4 8014 	ldr.w	r8, [r4, #20]
+      tmpreg = (((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmTime.Hours) << RTC_ALRMAR_HU_Pos) | \
+ 800afca:	7820      	ldrb	r0, [r4, #0]
+ 800afcc:	f7ff ffd2 	bl	800af74 <RTC_ByteToBcd2>
+ 800afd0:	0407      	lsls	r7, r0, #16
+                ((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmTime.Minutes) << RTC_ALRMAR_MNU_Pos) | \
+ 800afd2:	7860      	ldrb	r0, [r4, #1]
+ 800afd4:	f7ff ffce 	bl	800af74 <RTC_ByteToBcd2>
+      tmpreg = (((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmTime.Hours) << RTC_ALRMAR_HU_Pos) | \
+ 800afd8:	ea47 2700 	orr.w	r7, r7, r0, lsl #8
+                ((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmTime.Seconds) << RTC_ALRMAR_SU_Pos) | \
+ 800afdc:	78a0      	ldrb	r0, [r4, #2]
+ 800afde:	f7ff ffc9 	bl	800af74 <RTC_ByteToBcd2>
+                ((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmTime.Minutes) << RTC_ALRMAR_MNU_Pos) | \
+ 800afe2:	4307      	orrs	r7, r0
+                ((uint32_t)(sAlarm->AlarmTime.TimeFormat) << RTC_ALRMAR_PM_Pos) | \
+ 800afe4:	78e3      	ldrb	r3, [r4, #3]
+                ((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmTime.Seconds) << RTC_ALRMAR_SU_Pos) | \
+ 800afe6:	ea47 5783 	orr.w	r7, r7, r3, lsl #22
+                ((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmDateWeekDay) << RTC_ALRMAR_DU_Pos) | \
+ 800afea:	f894 0024 	ldrb.w	r0, [r4, #36]	; 0x24
+ 800afee:	f7ff ffc1 	bl	800af74 <RTC_ByteToBcd2>
+                ((uint32_t)(sAlarm->AlarmTime.TimeFormat) << RTC_ALRMAR_PM_Pos) | \
+ 800aff2:	ea47 6000 	orr.w	r0, r7, r0, lsl #24
+                ((uint32_t)sAlarm->AlarmDateWeekDaySel) | \
+ 800aff6:	6a23      	ldr	r3, [r4, #32]
+                ((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmDateWeekDay) << RTC_ALRMAR_DU_Pos) | \
+ 800aff8:	4318      	orrs	r0, r3
+      tmpreg = (((uint32_t)RTC_ByteToBcd2(sAlarm->AlarmTime.Hours) << RTC_ALRMAR_HU_Pos) | \
+ 800affa:	ea48 0000 	orr.w	r0, r8, r0
+ 800affe:	e020      	b.n	800b042 <HAL_RTC_SetAlarm_IT+0xb6>
+      if( sAlarm->AlarmMask != RTC_ALARMMASK_ALL )
+ 800b000:	6948      	ldr	r0, [r1, #20]
+ 800b002:	f1b0 3f80 	cmp.w	r0, #2155905152	; 0x80808080
+ 800b006:	d009      	beq.n	800b01c <HAL_RTC_SetAlarm_IT+0x90>
+        if( sAlarm->AlarmMask != RTC_ALARMMASK_HOURS )
+ 800b008:	f5b0 0f00 	cmp.w	r0, #8388608	; 0x800000
+ 800b00c:	d006      	beq.n	800b01c <HAL_RTC_SetAlarm_IT+0x90>
+          if (READ_BIT(RTC->CR, RTC_CR_FMT) != 0U)
+ 800b00e:	4b3b      	ldr	r3, [pc, #236]	; (800b0fc <HAL_RTC_SetAlarm_IT+0x170>)
+ 800b010:	699b      	ldr	r3, [r3, #24]
+ 800b012:	f013 0f40 	tst.w	r3, #64	; 0x40
+ 800b016:	d101      	bne.n	800b01c <HAL_RTC_SetAlarm_IT+0x90>
+            sAlarm->AlarmTime.TimeFormat = 0x00U;
+ 800b018:	2300      	movs	r3, #0
+ 800b01a:	70cb      	strb	r3, [r1, #3]
+      tmpreg = (((uint32_t)(sAlarm->AlarmTime.Hours) << RTC_ALRMAR_HU_Pos) | \
+ 800b01c:	7822      	ldrb	r2, [r4, #0]
+                ((uint32_t)(sAlarm->AlarmTime.Minutes) << RTC_ALRMAR_MNU_Pos) | \
+ 800b01e:	7863      	ldrb	r3, [r4, #1]
+ 800b020:	021b      	lsls	r3, r3, #8
+      tmpreg = (((uint32_t)(sAlarm->AlarmTime.Hours) << RTC_ALRMAR_HU_Pos) | \
+ 800b022:	ea43 4302 	orr.w	r3, r3, r2, lsl #16
+                ((uint32_t)(sAlarm->AlarmTime.Seconds) << RTC_ALRMAR_SU_Pos) | \
+ 800b026:	78a2      	ldrb	r2, [r4, #2]
+                ((uint32_t)(sAlarm->AlarmTime.Minutes) << RTC_ALRMAR_MNU_Pos) | \
+ 800b028:	4313      	orrs	r3, r2
+                ((uint32_t)(sAlarm->AlarmTime.TimeFormat) << RTC_ALRMAR_PM_Pos) | \
+ 800b02a:	78e2      	ldrb	r2, [r4, #3]
+                ((uint32_t)(sAlarm->AlarmTime.Seconds) << RTC_ALRMAR_SU_Pos) | \
+ 800b02c:	ea43 5382 	orr.w	r3, r3, r2, lsl #22
+                ((uint32_t)(sAlarm->AlarmDateWeekDay) << RTC_ALRMAR_DU_Pos) | \
+ 800b030:	f894 2024 	ldrb.w	r2, [r4, #36]	; 0x24
+                ((uint32_t)(sAlarm->AlarmTime.TimeFormat) << RTC_ALRMAR_PM_Pos) | \
+ 800b034:	ea43 6302 	orr.w	r3, r3, r2, lsl #24
+                ((uint32_t)sAlarm->AlarmDateWeekDaySel) | \
+ 800b038:	6a22      	ldr	r2, [r4, #32]
+                ((uint32_t)(sAlarm->AlarmDateWeekDay) << RTC_ALRMAR_DU_Pos) | \
+ 800b03a:	4313      	orrs	r3, r2
+      tmpreg = (((uint32_t)(sAlarm->AlarmTime.Hours) << RTC_ALRMAR_HU_Pos) | \
+ 800b03c:	4318      	orrs	r0, r3
+ 800b03e:	e000      	b.n	800b042 <HAL_RTC_SetAlarm_IT+0xb6>
+  uint32_t tmpreg = 0;
+ 800b040:	2000      	movs	r0, #0
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+ 800b042:	4b2e      	ldr	r3, [pc, #184]	; (800b0fc <HAL_RTC_SetAlarm_IT+0x170>)
+ 800b044:	22ca      	movs	r2, #202	; 0xca
+ 800b046:	625a      	str	r2, [r3, #36]	; 0x24
+ 800b048:	2253      	movs	r2, #83	; 0x53
+ 800b04a:	625a      	str	r2, [r3, #36]	; 0x24
+  if (sAlarm->Alarm == RTC_ALARM_A)
+ 800b04c:	6aa3      	ldr	r3, [r4, #40]	; 0x28
+ 800b04e:	f5b3 7f80 	cmp.w	r3, #256	; 0x100
+ 800b052:	d02a      	beq.n	800b0aa <HAL_RTC_SetAlarm_IT+0x11e>
+    CLEAR_BIT(RTC->CR, RTC_CR_ALRBE | RTC_CR_ALRBIE);
+ 800b054:	4b29      	ldr	r3, [pc, #164]	; (800b0fc <HAL_RTC_SetAlarm_IT+0x170>)
+ 800b056:	699a      	ldr	r2, [r3, #24]
+ 800b058:	f422 5208 	bic.w	r2, r2, #8704	; 0x2200
+ 800b05c:	619a      	str	r2, [r3, #24]
+    WRITE_REG(RTC->SCR, RTC_SCR_CALRBF);
+ 800b05e:	2202      	movs	r2, #2
+ 800b060:	65da      	str	r2, [r3, #92]	; 0x5c
+    if (binaryMode == RTC_BINARY_ONLY)
+ 800b062:	f5b6 7f80 	cmp.w	r6, #256	; 0x100
+ 800b066:	d040      	beq.n	800b0ea <HAL_RTC_SetAlarm_IT+0x15e>
+      WRITE_REG(RTC->ALRMBR, tmpreg);
+ 800b068:	4b24      	ldr	r3, [pc, #144]	; (800b0fc <HAL_RTC_SetAlarm_IT+0x170>)
+ 800b06a:	6498      	str	r0, [r3, #72]	; 0x48
+      WRITE_REG(RTC->ALRMBSSR, sAlarm->AlarmSubSecondMask);
+ 800b06c:	69a2      	ldr	r2, [r4, #24]
+ 800b06e:	64da      	str	r2, [r3, #76]	; 0x4c
+    WRITE_REG(RTC->ALRBBINR, sAlarm->AlarmTime.SubSeconds);
+ 800b070:	6862      	ldr	r2, [r4, #4]
+ 800b072:	4b22      	ldr	r3, [pc, #136]	; (800b0fc <HAL_RTC_SetAlarm_IT+0x170>)
+ 800b074:	675a      	str	r2, [r3, #116]	; 0x74
+    SET_BIT(hrtc->IsEnabled.RtcFeatures, RTC_MISR_ALRBMF);
+ 800b076:	6b2a      	ldr	r2, [r5, #48]	; 0x30
+ 800b078:	f042 0202 	orr.w	r2, r2, #2
+ 800b07c:	632a      	str	r2, [r5, #48]	; 0x30
+    SET_BIT(RTC->CR, RTC_CR_ALRBE | RTC_CR_ALRBIE);
+ 800b07e:	699a      	ldr	r2, [r3, #24]
+ 800b080:	f442 5208 	orr.w	r2, r2, #8704	; 0x2200
+ 800b084:	619a      	str	r2, [r3, #24]
+  __HAL_RTC_ALARM_EXTI_ENABLE_IT();
+ 800b086:	4a1e      	ldr	r2, [pc, #120]	; (800b100 <HAL_RTC_SetAlarm_IT+0x174>)
+ 800b088:	f8d2 3080 	ldr.w	r3, [r2, #128]	; 0x80
+ 800b08c:	f443 3300 	orr.w	r3, r3, #131072	; 0x20000
+ 800b090:	f8c2 3080 	str.w	r3, [r2, #128]	; 0x80
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+ 800b094:	4b19      	ldr	r3, [pc, #100]	; (800b0fc <HAL_RTC_SetAlarm_IT+0x170>)
+ 800b096:	22ff      	movs	r2, #255	; 0xff
+ 800b098:	625a      	str	r2, [r3, #36]	; 0x24
+  hrtc->State = HAL_RTC_STATE_READY;
+ 800b09a:	2301      	movs	r3, #1
+ 800b09c:	f885 302d 	strb.w	r3, [r5, #45]	; 0x2d
+  __HAL_UNLOCK(hrtc);
+ 800b0a0:	2000      	movs	r0, #0
+ 800b0a2:	f885 002c 	strb.w	r0, [r5, #44]	; 0x2c
+}
+ 800b0a6:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+    CLEAR_BIT(RTC->CR, RTC_CR_ALRAE | RTC_CR_ALRAIE);
+ 800b0aa:	4b14      	ldr	r3, [pc, #80]	; (800b0fc <HAL_RTC_SetAlarm_IT+0x170>)
+ 800b0ac:	699a      	ldr	r2, [r3, #24]
+ 800b0ae:	f422 5288 	bic.w	r2, r2, #4352	; 0x1100
+ 800b0b2:	619a      	str	r2, [r3, #24]
+    WRITE_REG(RTC->SCR, RTC_SCR_CALRAF);
+ 800b0b4:	2201      	movs	r2, #1
+ 800b0b6:	65da      	str	r2, [r3, #92]	; 0x5c
+    if (binaryMode == RTC_BINARY_ONLY)
+ 800b0b8:	f5b6 7f80 	cmp.w	r6, #256	; 0x100
+ 800b0bc:	d00f      	beq.n	800b0de <HAL_RTC_SetAlarm_IT+0x152>
+      WRITE_REG(RTC->ALRMAR, tmpreg);
+ 800b0be:	4b0f      	ldr	r3, [pc, #60]	; (800b0fc <HAL_RTC_SetAlarm_IT+0x170>)
+ 800b0c0:	6418      	str	r0, [r3, #64]	; 0x40
+      WRITE_REG(RTC->ALRMASSR, sAlarm->AlarmSubSecondMask);
+ 800b0c2:	69a2      	ldr	r2, [r4, #24]
+ 800b0c4:	645a      	str	r2, [r3, #68]	; 0x44
+    WRITE_REG(RTC->ALRABINR, sAlarm->AlarmTime.SubSeconds);
+ 800b0c6:	6862      	ldr	r2, [r4, #4]
+ 800b0c8:	4b0c      	ldr	r3, [pc, #48]	; (800b0fc <HAL_RTC_SetAlarm_IT+0x170>)
+ 800b0ca:	671a      	str	r2, [r3, #112]	; 0x70
+    SET_BIT(hrtc->IsEnabled.RtcFeatures, RTC_MISR_ALRAMF);
+ 800b0cc:	6b2a      	ldr	r2, [r5, #48]	; 0x30
+ 800b0ce:	f042 0201 	orr.w	r2, r2, #1
+ 800b0d2:	632a      	str	r2, [r5, #48]	; 0x30
+    SET_BIT(RTC->CR, RTC_CR_ALRAE | RTC_CR_ALRAIE);
+ 800b0d4:	699a      	ldr	r2, [r3, #24]
+ 800b0d6:	f442 5288 	orr.w	r2, r2, #4352	; 0x1100
+ 800b0da:	619a      	str	r2, [r3, #24]
+ 800b0dc:	e7d3      	b.n	800b086 <HAL_RTC_SetAlarm_IT+0xfa>
+      RTC->ALRMASSR = sAlarm->AlarmSubSecondMask | sAlarm->BinaryAutoClr;
+ 800b0de:	69a3      	ldr	r3, [r4, #24]
+ 800b0e0:	69e2      	ldr	r2, [r4, #28]
+ 800b0e2:	4313      	orrs	r3, r2
+ 800b0e4:	4a05      	ldr	r2, [pc, #20]	; (800b0fc <HAL_RTC_SetAlarm_IT+0x170>)
+ 800b0e6:	6453      	str	r3, [r2, #68]	; 0x44
+ 800b0e8:	e7ed      	b.n	800b0c6 <HAL_RTC_SetAlarm_IT+0x13a>
+      WRITE_REG(RTC->ALRMBSSR, sAlarm->AlarmSubSecondMask | sAlarm->BinaryAutoClr);
+ 800b0ea:	69a3      	ldr	r3, [r4, #24]
+ 800b0ec:	69e2      	ldr	r2, [r4, #28]
+ 800b0ee:	4313      	orrs	r3, r2
+ 800b0f0:	4a02      	ldr	r2, [pc, #8]	; (800b0fc <HAL_RTC_SetAlarm_IT+0x170>)
+ 800b0f2:	64d3      	str	r3, [r2, #76]	; 0x4c
+ 800b0f4:	e7bc      	b.n	800b070 <HAL_RTC_SetAlarm_IT+0xe4>
+  __HAL_LOCK(hrtc);
+ 800b0f6:	2002      	movs	r0, #2
+}
+ 800b0f8:	4770      	bx	lr
+ 800b0fa:	bf00      	nop
+ 800b0fc:	40002800 	.word	0x40002800
+ 800b100:	58000800 	.word	0x58000800
+
+0800b104 <HAL_RTCEx_EnableBypassShadow>:
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTCEx_EnableBypassShadow(RTC_HandleTypeDef *hrtc)
+{
+  /* Process Locked */
+  __HAL_LOCK(hrtc);
+ 800b104:	f890 302c 	ldrb.w	r3, [r0, #44]	; 0x2c
+ 800b108:	2b01      	cmp	r3, #1
+ 800b10a:	d017      	beq.n	800b13c <HAL_RTCEx_EnableBypassShadow+0x38>
+ 800b10c:	2101      	movs	r1, #1
+ 800b10e:	f880 102c 	strb.w	r1, [r0, #44]	; 0x2c
+
+  hrtc->State = HAL_RTC_STATE_BUSY;
+ 800b112:	2302      	movs	r3, #2
+ 800b114:	f880 302d 	strb.w	r3, [r0, #45]	; 0x2d
+
+  /* Disable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+ 800b118:	4b09      	ldr	r3, [pc, #36]	; (800b140 <HAL_RTCEx_EnableBypassShadow+0x3c>)
+ 800b11a:	22ca      	movs	r2, #202	; 0xca
+ 800b11c:	625a      	str	r2, [r3, #36]	; 0x24
+ 800b11e:	2253      	movs	r2, #83	; 0x53
+ 800b120:	625a      	str	r2, [r3, #36]	; 0x24
+
+  /* Set the BYPSHAD bit */
+  SET_BIT(RTC->CR, RTC_CR_BYPSHAD);
+ 800b122:	699a      	ldr	r2, [r3, #24]
+ 800b124:	f042 0220 	orr.w	r2, r2, #32
+ 800b128:	619a      	str	r2, [r3, #24]
+
+  /* Enable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+ 800b12a:	22ff      	movs	r2, #255	; 0xff
+ 800b12c:	625a      	str	r2, [r3, #36]	; 0x24
+
+  /* Change RTC state */
+  hrtc->State = HAL_RTC_STATE_READY;
+ 800b12e:	f880 102d 	strb.w	r1, [r0, #45]	; 0x2d
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(hrtc);
+ 800b132:	2300      	movs	r3, #0
+ 800b134:	f880 302c 	strb.w	r3, [r0, #44]	; 0x2c
+
+  return HAL_OK;
+ 800b138:	4618      	mov	r0, r3
+ 800b13a:	4770      	bx	lr
+  __HAL_LOCK(hrtc);
+ 800b13c:	2002      	movs	r0, #2
+}
+ 800b13e:	4770      	bx	lr
+ 800b140:	40002800 	.word	0x40002800
+
+0800b144 <HAL_RTCEx_SetSSRU_IT>:
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_RTCEx_SetSSRU_IT(RTC_HandleTypeDef *hrtc)
+{
+  /* Process Locked */
+  __HAL_LOCK(hrtc);
+ 800b144:	f890 302c 	ldrb.w	r3, [r0, #44]	; 0x2c
+ 800b148:	2b01      	cmp	r3, #1
+ 800b14a:	d020      	beq.n	800b18e <HAL_RTCEx_SetSSRU_IT+0x4a>
+{
+ 800b14c:	b410      	push	{r4}
+  __HAL_LOCK(hrtc);
+ 800b14e:	2101      	movs	r1, #1
+ 800b150:	f880 102c 	strb.w	r1, [r0, #44]	; 0x2c
+
+  hrtc->State = HAL_RTC_STATE_BUSY;
+ 800b154:	2302      	movs	r3, #2
+ 800b156:	f880 302d 	strb.w	r3, [r0, #45]	; 0x2d
+
+  /* Disable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
+ 800b15a:	4b0e      	ldr	r3, [pc, #56]	; (800b194 <HAL_RTCEx_SetSSRU_IT+0x50>)
+ 800b15c:	22ca      	movs	r2, #202	; 0xca
+ 800b15e:	625a      	str	r2, [r3, #36]	; 0x24
+ 800b160:	2253      	movs	r2, #83	; 0x53
+ 800b162:	625a      	str	r2, [r3, #36]	; 0x24
+
+  /* Enable IT SSRU */
+  __HAL_RTC_SSRU_ENABLE_IT(hrtc, RTC_IT_SSRU);
+ 800b164:	699a      	ldr	r2, [r3, #24]
+ 800b166:	f042 0280 	orr.w	r2, r2, #128	; 0x80
+ 800b16a:	619a      	str	r2, [r3, #24]
+
+  /* RTC SSRU Interrupt Configuration: EXTI configuration */
+  __HAL_RTC_SSRU_EXTI_ENABLE_IT();
+ 800b16c:	4c0a      	ldr	r4, [pc, #40]	; (800b198 <HAL_RTCEx_SetSSRU_IT+0x54>)
+ 800b16e:	f8d4 2080 	ldr.w	r2, [r4, #128]	; 0x80
+ 800b172:	f442 2280 	orr.w	r2, r2, #262144	; 0x40000
+ 800b176:	f8c4 2080 	str.w	r2, [r4, #128]	; 0x80
+
+  /* Enable the write protection for RTC registers */
+  __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
+ 800b17a:	22ff      	movs	r2, #255	; 0xff
+ 800b17c:	625a      	str	r2, [r3, #36]	; 0x24
+
+  hrtc->State = HAL_RTC_STATE_READY;
+ 800b17e:	f880 102d 	strb.w	r1, [r0, #45]	; 0x2d
+
+  /* Process Unlocked */
+  __HAL_UNLOCK(hrtc);
+ 800b182:	2300      	movs	r3, #0
+ 800b184:	f880 302c 	strb.w	r3, [r0, #44]	; 0x2c
+
+  return HAL_OK;
+ 800b188:	4618      	mov	r0, r3
+}
+ 800b18a:	bc10      	pop	{r4}
+ 800b18c:	4770      	bx	lr
+  __HAL_LOCK(hrtc);
+ 800b18e:	2002      	movs	r0, #2
+}
+ 800b190:	4770      	bx	lr
+ 800b192:	bf00      	nop
+ 800b194:	40002800 	.word	0x40002800
+ 800b198:	58000800 	.word	0x58000800
+
+0800b19c <HAL_RTCEx_SSRUIRQHandler>:
+  * @brief  Handle SSR underflow interrupt request.
+  * @param  hrtc RTC handle
+  * @retval None
+  */
+void HAL_RTCEx_SSRUIRQHandler(RTC_HandleTypeDef *hrtc)
+{
+ 800b19c:	b510      	push	{r4, lr}
+ 800b19e:	4604      	mov	r4, r0
+  if ((RTC->MISR & RTC_MISR_SSRUMF) != 0u)
+ 800b1a0:	4b07      	ldr	r3, [pc, #28]	; (800b1c0 <HAL_RTCEx_SSRUIRQHandler+0x24>)
+ 800b1a2:	6d5b      	ldr	r3, [r3, #84]	; 0x54
+ 800b1a4:	f013 0f40 	tst.w	r3, #64	; 0x40
+ 800b1a8:	d103      	bne.n	800b1b2 <HAL_RTCEx_SSRUIRQHandler+0x16>
+    HAL_RTCEx_SSRUEventCallback(hrtc);
+#endif /* USE_HAL_RTC_REGISTER_CALLBACKS */
+  }
+
+  /* Change RTC state */
+  hrtc->State = HAL_RTC_STATE_READY;
+ 800b1aa:	2301      	movs	r3, #1
+ 800b1ac:	f884 302d 	strb.w	r3, [r4, #45]	; 0x2d
+}
+ 800b1b0:	bd10      	pop	{r4, pc}
+    RTC->SCR = RTC_SCR_CSSRUF;
+ 800b1b2:	4b03      	ldr	r3, [pc, #12]	; (800b1c0 <HAL_RTCEx_SSRUIRQHandler+0x24>)
+ 800b1b4:	2240      	movs	r2, #64	; 0x40
+ 800b1b6:	65da      	str	r2, [r3, #92]	; 0x5c
+    HAL_RTCEx_SSRUEventCallback(hrtc);
+ 800b1b8:	f7f7 ff50 	bl	800305c <HAL_RTCEx_SSRUEventCallback>
+ 800b1bc:	e7f5      	b.n	800b1aa <HAL_RTCEx_SSRUIRQHandler+0xe>
+ 800b1be:	bf00      	nop
+ 800b1c0:	40002800 	.word	0x40002800
+
+0800b1c4 <HAL_RTCEx_AlarmBEventCallback>:
+  UNUSED(hrtc);
+
+  /* NOTE : This function should not be modified, when the callback is needed,
+            the HAL_RTCEx_AlarmBEventCallback could be implemented in the user file
+   */
+}
+ 800b1c4:	4770      	bx	lr
+
+0800b1c6 <HAL_RTCEx_BKUPWrite>:
+  UNUSED(hrtc);
+  /* Check the parameters */
+  assert_param(IS_RTC_BKP(BackupRegister));
+
+  tmp = (uint32_t) & (TAMP->BKP0R);
+  tmp += (BackupRegister * 4U);
+ 800b1c6:	0089      	lsls	r1, r1, #2
+ 800b1c8:	f101 4180 	add.w	r1, r1, #1073741824	; 0x40000000
+ 800b1cc:	f501 4131 	add.w	r1, r1, #45312	; 0xb100
+
+  /* Write the specified register */
+  *(__IO uint32_t *)tmp = (uint32_t)Data;
+ 800b1d0:	600a      	str	r2, [r1, #0]
+}
+ 800b1d2:	4770      	bx	lr
+
+0800b1d4 <HAL_RTCEx_BKUPRead>:
+  UNUSED(hrtc);
+  /* Check the parameters */
+  assert_param(IS_RTC_BKP(BackupRegister));
+
+  tmp = (uint32_t) & (TAMP->BKP0R);
+  tmp += (BackupRegister * 4U);
+ 800b1d4:	0089      	lsls	r1, r1, #2
+ 800b1d6:	f101 4180 	add.w	r1, r1, #1073741824	; 0x40000000
+ 800b1da:	f501 4131 	add.w	r1, r1, #45312	; 0xb100
+
+  /* Read the specified register */
+  return (*(__IO uint32_t *)tmp);
+ 800b1de:	6808      	ldr	r0, [r1, #0]
+}
+ 800b1e0:	4770      	bx	lr
+	...
+
+0800b1e4 <SUBGHZSPI_Init>:
+{
+  /* Check the parameters */
+  assert_param(IS_SUBGHZ_ALL_INSTANCE(SUBGHZSPI));
+
+  /* Disable SUBGHZSPI Peripheral */
+  CLEAR_BIT(SUBGHZSPI->CR1, SPI_CR1_SPE);
+ 800b1e4:	4b07      	ldr	r3, [pc, #28]	; (800b204 <SUBGHZSPI_Init+0x20>)
+ 800b1e6:	681a      	ldr	r2, [r3, #0]
+ 800b1e8:	f022 0240 	bic.w	r2, r2, #64	; 0x40
+ 800b1ec:	601a      	str	r2, [r3, #0]
+   *       NSS management: Internal (Done with External bit inside PWR        *
+   *  Communication speed: BaudratePrescaler                             *
+   *            First bit: MSB                                                *
+   *      CRC calculation: Disable                                            *
+   *--------------------------------------------------------------------------*/
+  WRITE_REG(SUBGHZSPI->CR1, (SPI_CR1_MSTR | SPI_CR1_SSI | BaudratePrescaler | SPI_CR1_SSM));
+ 800b1ee:	f440 7041 	orr.w	r0, r0, #772	; 0x304
+ 800b1f2:	6018      	str	r0, [r3, #0]
+   *            Data Size: 8bits                                              *
+   *              TI Mode: Disable                                            *
+   *            NSS Pulse: Disable                                            *
+   *    Rx FIFO Threshold: 8bits                                              *
+   *--------------------------------------------------------------------------*/
+  WRITE_REG(SUBGHZSPI->CR2, (SPI_CR2_FRXTH |  SPI_CR2_DS_0 | SPI_CR2_DS_1 | SPI_CR2_DS_2));
+ 800b1f4:	f44f 52b8 	mov.w	r2, #5888	; 0x1700
+ 800b1f8:	605a      	str	r2, [r3, #4]
+
+  /* Enable SUBGHZSPI Peripheral */
+  SET_BIT(SUBGHZSPI->CR1, SPI_CR1_SPE);
+ 800b1fa:	681a      	ldr	r2, [r3, #0]
+ 800b1fc:	f042 0240 	orr.w	r2, r2, #64	; 0x40
+ 800b200:	601a      	str	r2, [r3, #0]
+}
+ 800b202:	4770      	bx	lr
+ 800b204:	58010000 	.word	0x58010000
+
+0800b208 <HAL_SUBGHZ_Init>:
+{
+ 800b208:	b530      	push	{r4, r5, lr}
+ 800b20a:	b083      	sub	sp, #12
+  if (hsubghz == NULL)
+ 800b20c:	2800      	cmp	r0, #0
+ 800b20e:	d058      	beq.n	800b2c2 <HAL_SUBGHZ_Init+0xba>
+ 800b210:	4604      	mov	r4, r0
+  subghz_state = hsubghz->State;
+ 800b212:	7983      	ldrb	r3, [r0, #6]
+  if ((subghz_state == HAL_SUBGHZ_STATE_RESET) ||
+ 800b214:	f003 05ff 	and.w	r5, r3, #255	; 0xff
+ 800b218:	b10b      	cbz	r3, 800b21e <HAL_SUBGHZ_Init+0x16>
+ 800b21a:	2d03      	cmp	r5, #3
+ 800b21c:	d10b      	bne.n	800b236 <HAL_SUBGHZ_Init+0x2e>
+    hsubghz->Lock = HAL_UNLOCKED;
+ 800b21e:	2300      	movs	r3, #0
+ 800b220:	7163      	strb	r3, [r4, #5]
+    HAL_SUBGHZ_MspInit(hsubghz);
+ 800b222:	4620      	mov	r0, r4
+ 800b224:	f7f7 fc46 	bl	8002ab4 <HAL_SUBGHZ_MspInit>
+  SET_BIT(EXTI->IMR2, ExtiLine);
+ 800b228:	4a27      	ldr	r2, [pc, #156]	; (800b2c8 <HAL_SUBGHZ_Init+0xc0>)
+ 800b22a:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 800b22e:	f443 5380 	orr.w	r3, r3, #4096	; 0x1000
+ 800b232:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+  if (subghz_state == HAL_SUBGHZ_STATE_RESET)
+ 800b236:	b185      	cbz	r5, 800b25a <HAL_SUBGHZ_Init+0x52>
+  WRITE_REG(PWR->SCR, PWR_SCR_CWRFBUSYF);
+ 800b238:	4b24      	ldr	r3, [pc, #144]	; (800b2cc <HAL_SUBGHZ_Init+0xc4>)
+ 800b23a:	f44f 6200 	mov.w	r2, #2048	; 0x800
+ 800b23e:	619a      	str	r2, [r3, #24]
+    status = HAL_OK;
+ 800b240:	2500      	movs	r5, #0
+    SUBGHZSPI_Init(hsubghz->Init.BaudratePrescaler);
+ 800b242:	6820      	ldr	r0, [r4, #0]
+ 800b244:	f7ff ffce 	bl	800b1e4 <SUBGHZSPI_Init>
+    hsubghz->DeepSleep = SUBGHZ_DEEP_SLEEP_ENABLE;
+ 800b248:	2301      	movs	r3, #1
+ 800b24a:	7123      	strb	r3, [r4, #4]
+    hsubghz->ErrorCode = HAL_SUBGHZ_ERROR_NONE;
+ 800b24c:	2300      	movs	r3, #0
+ 800b24e:	60a3      	str	r3, [r4, #8]
+  hsubghz->State = HAL_SUBGHZ_STATE_READY;
+ 800b250:	2301      	movs	r3, #1
+ 800b252:	71a3      	strb	r3, [r4, #6]
+}
+ 800b254:	4628      	mov	r0, r5
+ 800b256:	b003      	add	sp, #12
+ 800b258:	bd30      	pop	{r4, r5, pc}
+    hsubghz->State = HAL_SUBGHZ_STATE_BUSY;
+ 800b25a:	2302      	movs	r3, #2
+ 800b25c:	71a3      	strb	r3, [r4, #6]
+  CLEAR_BIT(RCC->CSR, RCC_CSR_RFRST);
+ 800b25e:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800b262:	f8d2 3094 	ldr.w	r3, [r2, #148]	; 0x94
+ 800b266:	f423 4300 	bic.w	r3, r3, #32768	; 0x8000
+ 800b26a:	f8c2 3094 	str.w	r3, [r2, #148]	; 0x94
+    count  = SUBGHZ_DEFAULT_TIMEOUT * SUBGHZ_DEFAULT_LOOP_TIME;
+ 800b26e:	4b18      	ldr	r3, [pc, #96]	; (800b2d0 <HAL_SUBGHZ_Init+0xc8>)
+ 800b270:	681b      	ldr	r3, [r3, #0]
+ 800b272:	ebc3 03c3 	rsb	r3, r3, r3, lsl #3
+ 800b276:	f3c3 434c 	ubfx	r3, r3, #17, #13
+ 800b27a:	2264      	movs	r2, #100	; 0x64
+ 800b27c:	fb02 f303 	mul.w	r3, r2, r3
+ 800b280:	9301      	str	r3, [sp, #4]
+      if (count == 0U)
+ 800b282:	9b01      	ldr	r3, [sp, #4]
+ 800b284:	b1d3      	cbz	r3, 800b2bc <HAL_SUBGHZ_Init+0xb4>
+      count--;
+ 800b286:	9b01      	ldr	r3, [sp, #4]
+ 800b288:	3b01      	subs	r3, #1
+ 800b28a:	9301      	str	r3, [sp, #4]
+  return ((READ_BIT(RCC->CSR, RCC_CSR_RFRSTF) == (RCC_CSR_RFRSTF)) ? 1UL : 0UL);
+ 800b28c:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800b290:	f8d3 3094 	ldr.w	r3, [r3, #148]	; 0x94
+ 800b294:	f413 4f80 	tst.w	r3, #16384	; 0x4000
+ 800b298:	d1f3      	bne.n	800b282 <HAL_SUBGHZ_Init+0x7a>
+  SET_BIT(PWR->SUBGHZSPICR, PWR_SUBGHZSPICR_NSS);
+ 800b29a:	4b0c      	ldr	r3, [pc, #48]	; (800b2cc <HAL_SUBGHZ_Init+0xc4>)
+ 800b29c:	f8d3 2090 	ldr.w	r2, [r3, #144]	; 0x90
+ 800b2a0:	f442 4200 	orr.w	r2, r2, #32768	; 0x8000
+ 800b2a4:	f8c3 2090 	str.w	r2, [r3, #144]	; 0x90
+  MODIFY_REG(PWR->CR3, PWR_CR3_EWRFBUSY, RadioBusyTrigger);
+ 800b2a8:	689a      	ldr	r2, [r3, #8]
+ 800b2aa:	f442 6200 	orr.w	r2, r2, #2048	; 0x800
+ 800b2ae:	609a      	str	r2, [r3, #8]
+  WRITE_REG(PWR->SCR, PWR_SCR_CWRFBUSYF);
+ 800b2b0:	f44f 6200 	mov.w	r2, #2048	; 0x800
+ 800b2b4:	619a      	str	r2, [r3, #24]
+  if (status == HAL_OK)
+ 800b2b6:	2d00      	cmp	r5, #0
+ 800b2b8:	d1ca      	bne.n	800b250 <HAL_SUBGHZ_Init+0x48>
+ 800b2ba:	e7c2      	b.n	800b242 <HAL_SUBGHZ_Init+0x3a>
+        hsubghz->ErrorCode = HAL_SUBGHZ_ERROR_TIMEOUT;
+ 800b2bc:	2501      	movs	r5, #1
+ 800b2be:	60a5      	str	r5, [r4, #8]
+        break;
+ 800b2c0:	e7eb      	b.n	800b29a <HAL_SUBGHZ_Init+0x92>
+    return status;
+ 800b2c2:	2501      	movs	r5, #1
+ 800b2c4:	e7c6      	b.n	800b254 <HAL_SUBGHZ_Init+0x4c>
+ 800b2c6:	bf00      	nop
+ 800b2c8:	58000800 	.word	0x58000800
+ 800b2cc:	58000400 	.word	0x58000400
+ 800b2d0:	20000828 	.word	0x20000828
+
+0800b2d4 <SUBGHZSPI_Transmit>:
+  * @param  Data  data to transmit
+  * @retval HAL status
+  */
+HAL_StatusTypeDef SUBGHZSPI_Transmit(SUBGHZ_HandleTypeDef *hsubghz,
+                                     uint8_t Data)
+{
+ 800b2d4:	b082      	sub	sp, #8
+ 800b2d6:	4602      	mov	r2, r0
+  HAL_StatusTypeDef status = HAL_OK;
+  __IO uint32_t count;
+
+  /* Handle Tx transmission from SUBGHZSPI peripheral to Radio ****************/
+  /* Initialize Timeout */
+  count = SUBGHZ_DEFAULT_TIMEOUT * SUBGHZ_DEFAULT_LOOP_TIME;
+ 800b2d8:	4b1a      	ldr	r3, [pc, #104]	; (800b344 <SUBGHZSPI_Transmit+0x70>)
+ 800b2da:	681b      	ldr	r3, [r3, #0]
+ 800b2dc:	ebc3 03c3 	rsb	r3, r3, r3, lsl #3
+ 800b2e0:	f3c3 434c 	ubfx	r3, r3, #17, #13
+ 800b2e4:	2064      	movs	r0, #100	; 0x64
+ 800b2e6:	fb00 f303 	mul.w	r3, r0, r3
+ 800b2ea:	9301      	str	r3, [sp, #4]
+
+  /* Wait until TXE flag is set */
+  do
+  {
+    if (count == 0U)
+ 800b2ec:	9b01      	ldr	r3, [sp, #4]
+ 800b2ee:	b14b      	cbz	r3, 800b304 <SUBGHZSPI_Transmit+0x30>
+    {
+      status = HAL_ERROR;
+      hsubghz->ErrorCode = HAL_SUBGHZ_ERROR_TIMEOUT;
+      break;
+    }
+    count--;
+ 800b2f0:	9b01      	ldr	r3, [sp, #4]
+ 800b2f2:	3b01      	subs	r3, #1
+ 800b2f4:	9301      	str	r3, [sp, #4]
+  } while (READ_BIT(SUBGHZSPI->SR, SPI_SR_TXE) != (SPI_SR_TXE));
+ 800b2f6:	4b14      	ldr	r3, [pc, #80]	; (800b348 <SUBGHZSPI_Transmit+0x74>)
+ 800b2f8:	689b      	ldr	r3, [r3, #8]
+ 800b2fa:	f013 0f02 	tst.w	r3, #2
+ 800b2fe:	d0f5      	beq.n	800b2ec <SUBGHZSPI_Transmit+0x18>
+  HAL_StatusTypeDef status = HAL_OK;
+ 800b300:	2000      	movs	r0, #0
+ 800b302:	e001      	b.n	800b308 <SUBGHZSPI_Transmit+0x34>
+      hsubghz->ErrorCode = HAL_SUBGHZ_ERROR_TIMEOUT;
+ 800b304:	2001      	movs	r0, #1
+ 800b306:	6090      	str	r0, [r2, #8]
+
+  /* Transmit Data*/
+#if defined (__GNUC__)
+  __IO uint8_t *spidr = ((__IO uint8_t *)&SUBGHZSPI->DR);
+  *spidr = Data;
+ 800b308:	4b0f      	ldr	r3, [pc, #60]	; (800b348 <SUBGHZSPI_Transmit+0x74>)
+ 800b30a:	7319      	strb	r1, [r3, #12]
+  *((__IO uint8_t *)&SUBGHZSPI->DR) = Data;
+#endif /* __GNUC__ */
+
+  /* Handle Rx transmission from SUBGHZSPI peripheral to Radio ****************/
+  /* Initialize Timeout */
+  count = SUBGHZ_DEFAULT_TIMEOUT * SUBGHZ_DEFAULT_LOOP_TIME;
+ 800b30c:	4b0d      	ldr	r3, [pc, #52]	; (800b344 <SUBGHZSPI_Transmit+0x70>)
+ 800b30e:	681b      	ldr	r3, [r3, #0]
+ 800b310:	ebc3 03c3 	rsb	r3, r3, r3, lsl #3
+ 800b314:	f3c3 434c 	ubfx	r3, r3, #17, #13
+ 800b318:	2164      	movs	r1, #100	; 0x64
+ 800b31a:	fb01 f303 	mul.w	r3, r1, r3
+ 800b31e:	9301      	str	r3, [sp, #4]
+
+  /* Wait until RXNE flag is set */
+  do
+  {
+    if (count == 0U)
+ 800b320:	9b01      	ldr	r3, [sp, #4]
+ 800b322:	b143      	cbz	r3, 800b336 <SUBGHZSPI_Transmit+0x62>
+    {
+      status = HAL_ERROR;
+      hsubghz->ErrorCode = HAL_SUBGHZ_ERROR_TIMEOUT;
+      break;
+    }
+    count--;
+ 800b324:	9b01      	ldr	r3, [sp, #4]
+ 800b326:	3b01      	subs	r3, #1
+ 800b328:	9301      	str	r3, [sp, #4]
+  } while (READ_BIT(SUBGHZSPI->SR, SPI_SR_RXNE) != (SPI_SR_RXNE));
+ 800b32a:	4b07      	ldr	r3, [pc, #28]	; (800b348 <SUBGHZSPI_Transmit+0x74>)
+ 800b32c:	689b      	ldr	r3, [r3, #8]
+ 800b32e:	f013 0f01 	tst.w	r3, #1
+ 800b332:	d0f5      	beq.n	800b320 <SUBGHZSPI_Transmit+0x4c>
+ 800b334:	e001      	b.n	800b33a <SUBGHZSPI_Transmit+0x66>
+      hsubghz->ErrorCode = HAL_SUBGHZ_ERROR_TIMEOUT;
+ 800b336:	2001      	movs	r0, #1
+ 800b338:	6090      	str	r0, [r2, #8]
+
+  /* Flush Rx data */
+  READ_REG(SUBGHZSPI->DR);
+ 800b33a:	4b03      	ldr	r3, [pc, #12]	; (800b348 <SUBGHZSPI_Transmit+0x74>)
+ 800b33c:	68db      	ldr	r3, [r3, #12]
+
+  return status;
+}
+ 800b33e:	b002      	add	sp, #8
+ 800b340:	4770      	bx	lr
+ 800b342:	bf00      	nop
+ 800b344:	20000828 	.word	0x20000828
+ 800b348:	58010000 	.word	0x58010000
+
+0800b34c <SUBGHZSPI_Receive>:
+  * @param  pData  pointer on data to receive
+  * @retval HAL status
+  */
+HAL_StatusTypeDef SUBGHZSPI_Receive(SUBGHZ_HandleTypeDef *hsubghz,
+                                    uint8_t *pData)
+{
+ 800b34c:	b082      	sub	sp, #8
+ 800b34e:	4602      	mov	r2, r0
+  HAL_StatusTypeDef status = HAL_OK;
+  __IO uint32_t count;
+
+  /* Handle Tx transmission from SUBGHZSPI peripheral to Radio ****************/
+  /* Initialize Timeout */
+  count = SUBGHZ_DEFAULT_TIMEOUT * SUBGHZ_DEFAULT_LOOP_TIME;
+ 800b350:	4b1c      	ldr	r3, [pc, #112]	; (800b3c4 <SUBGHZSPI_Receive+0x78>)
+ 800b352:	681b      	ldr	r3, [r3, #0]
+ 800b354:	ebc3 03c3 	rsb	r3, r3, r3, lsl #3
+ 800b358:	f3c3 434c 	ubfx	r3, r3, #17, #13
+ 800b35c:	2064      	movs	r0, #100	; 0x64
+ 800b35e:	fb00 f303 	mul.w	r3, r0, r3
+ 800b362:	9301      	str	r3, [sp, #4]
+
+  /* Wait until TXE flag is set */
+  do
+  {
+    if (count == 0U)
+ 800b364:	9b01      	ldr	r3, [sp, #4]
+ 800b366:	b14b      	cbz	r3, 800b37c <SUBGHZSPI_Receive+0x30>
+    {
+      status = HAL_ERROR;
+      hsubghz->ErrorCode = HAL_SUBGHZ_ERROR_TIMEOUT;
+      break;
+    }
+    count--;
+ 800b368:	9b01      	ldr	r3, [sp, #4]
+ 800b36a:	3b01      	subs	r3, #1
+ 800b36c:	9301      	str	r3, [sp, #4]
+  } while (READ_BIT(SUBGHZSPI->SR, SPI_SR_TXE) != (SPI_SR_TXE));
+ 800b36e:	4b16      	ldr	r3, [pc, #88]	; (800b3c8 <SUBGHZSPI_Receive+0x7c>)
+ 800b370:	689b      	ldr	r3, [r3, #8]
+ 800b372:	f013 0f02 	tst.w	r3, #2
+ 800b376:	d0f5      	beq.n	800b364 <SUBGHZSPI_Receive+0x18>
+  HAL_StatusTypeDef status = HAL_OK;
+ 800b378:	2000      	movs	r0, #0
+ 800b37a:	e001      	b.n	800b380 <SUBGHZSPI_Receive+0x34>
+      hsubghz->ErrorCode = HAL_SUBGHZ_ERROR_TIMEOUT;
+ 800b37c:	2001      	movs	r0, #1
+ 800b37e:	6090      	str	r0, [r2, #8]
+
+  /* Transmit Data*/
+#if defined (__GNUC__)
+  __IO uint8_t *spidr = ((__IO uint8_t *)&SUBGHZSPI->DR);
+  *spidr = SUBGHZ_DUMMY_DATA;
+ 800b380:	4b11      	ldr	r3, [pc, #68]	; (800b3c8 <SUBGHZSPI_Receive+0x7c>)
+ 800b382:	f04f 0cff 	mov.w	ip, #255	; 0xff
+ 800b386:	f883 c00c 	strb.w	ip, [r3, #12]
+  *((__IO uint8_t *)&SUBGHZSPI->DR) = SUBGHZ_DUMMY_DATA;
+#endif /* __GNUC__ */
+
+  /* Handle Rx transmission from SUBGHZSPI peripheral to Radio ****************/
+  /* Initialize Timeout */
+  count = SUBGHZ_DEFAULT_TIMEOUT * SUBGHZ_DEFAULT_LOOP_TIME;
+ 800b38a:	4b0e      	ldr	r3, [pc, #56]	; (800b3c4 <SUBGHZSPI_Receive+0x78>)
+ 800b38c:	681b      	ldr	r3, [r3, #0]
+ 800b38e:	ebc3 03c3 	rsb	r3, r3, r3, lsl #3
+ 800b392:	f3c3 434c 	ubfx	r3, r3, #17, #13
+ 800b396:	f04f 0c64 	mov.w	ip, #100	; 0x64
+ 800b39a:	fb0c f303 	mul.w	r3, ip, r3
+ 800b39e:	9301      	str	r3, [sp, #4]
+
+  /* Wait until RXNE flag is set */
+  do
+  {
+    if (count == 0U)
+ 800b3a0:	9b01      	ldr	r3, [sp, #4]
+ 800b3a2:	b143      	cbz	r3, 800b3b6 <SUBGHZSPI_Receive+0x6a>
+    {
+      status = HAL_ERROR;
+      hsubghz->ErrorCode = HAL_SUBGHZ_ERROR_TIMEOUT;
+      break;
+    }
+    count--;
+ 800b3a4:	9b01      	ldr	r3, [sp, #4]
+ 800b3a6:	3b01      	subs	r3, #1
+ 800b3a8:	9301      	str	r3, [sp, #4]
+  } while (READ_BIT(SUBGHZSPI->SR, SPI_SR_RXNE) != (SPI_SR_RXNE));
+ 800b3aa:	4b07      	ldr	r3, [pc, #28]	; (800b3c8 <SUBGHZSPI_Receive+0x7c>)
+ 800b3ac:	689b      	ldr	r3, [r3, #8]
+ 800b3ae:	f013 0f01 	tst.w	r3, #1
+ 800b3b2:	d0f5      	beq.n	800b3a0 <SUBGHZSPI_Receive+0x54>
+ 800b3b4:	e001      	b.n	800b3ba <SUBGHZSPI_Receive+0x6e>
+      hsubghz->ErrorCode = HAL_SUBGHZ_ERROR_TIMEOUT;
+ 800b3b6:	2001      	movs	r0, #1
+ 800b3b8:	6090      	str	r0, [r2, #8]
+
+  /* Retrieve pData */
+  *pData = (uint8_t)(READ_REG(SUBGHZSPI->DR));
+ 800b3ba:	4b03      	ldr	r3, [pc, #12]	; (800b3c8 <SUBGHZSPI_Receive+0x7c>)
+ 800b3bc:	68db      	ldr	r3, [r3, #12]
+ 800b3be:	700b      	strb	r3, [r1, #0]
+
+  return status;
+}
+ 800b3c0:	b002      	add	sp, #8
+ 800b3c2:	4770      	bx	lr
+ 800b3c4:	20000828 	.word	0x20000828
+ 800b3c8:	58010000 	.word	0x58010000
+
+0800b3cc <SUBGHZ_WaitOnBusy>:
+  * @param  hsubghz pointer to a SUBGHZ_HandleTypeDef structure that contains
+  *         the handle information for SUBGHZ module.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef SUBGHZ_WaitOnBusy(SUBGHZ_HandleTypeDef *hsubghz)
+{
+ 800b3cc:	b082      	sub	sp, #8
+  HAL_StatusTypeDef status;
+  __IO uint32_t count;
+  uint32_t mask;
+
+  status = HAL_OK;
+  count  = SUBGHZ_DEFAULT_TIMEOUT * SUBGHZ_RFBUSY_LOOP_TIME;
+ 800b3ce:	4b13      	ldr	r3, [pc, #76]	; (800b41c <SUBGHZ_WaitOnBusy+0x50>)
+ 800b3d0:	681b      	ldr	r3, [r3, #0]
+ 800b3d2:	eb03 0343 	add.w	r3, r3, r3, lsl #1
+ 800b3d6:	f3c3 434b 	ubfx	r3, r3, #17, #12
+ 800b3da:	2264      	movs	r2, #100	; 0x64
+ 800b3dc:	fb02 f303 	mul.w	r3, r2, r3
+ 800b3e0:	9301      	str	r3, [sp, #4]
+ 800b3e2:	e006      	b.n	800b3f2 <SUBGHZ_WaitOnBusy+0x26>
+    mask = LL_PWR_IsActiveFlag_RFBUSYMS();
+
+    if (count == 0U)
+    {
+      status  = HAL_ERROR;
+      hsubghz->ErrorCode = HAL_SUBGHZ_ERROR_RF_BUSY;
+ 800b3e4:	2302      	movs	r3, #2
+ 800b3e6:	6083      	str	r3, [r0, #8]
+      status  = HAL_ERROR;
+ 800b3e8:	2001      	movs	r0, #1
+    }
+    count--;
+  } while ((LL_PWR_IsActiveFlag_RFBUSYS()& mask) == 1UL);
+
+  return status;
+}
+ 800b3ea:	b002      	add	sp, #8
+ 800b3ec:	4770      	bx	lr
+  } while ((LL_PWR_IsActiveFlag_RFBUSYS()& mask) == 1UL);
+ 800b3ee:	4213      	tst	r3, r2
+ 800b3f0:	d012      	beq.n	800b418 <SUBGHZ_WaitOnBusy+0x4c>
+  return ((READ_BIT(PWR->SR2, PWR_SR2_RFBUSYMS) == (PWR_SR2_RFBUSYMS)) ? 1UL : 0UL);
+ 800b3f2:	4b0b      	ldr	r3, [pc, #44]	; (800b420 <SUBGHZ_WaitOnBusy+0x54>)
+ 800b3f4:	695b      	ldr	r3, [r3, #20]
+ 800b3f6:	f013 0304 	ands.w	r3, r3, #4
+ 800b3fa:	d000      	beq.n	800b3fe <SUBGHZ_WaitOnBusy+0x32>
+ 800b3fc:	2301      	movs	r3, #1
+    if (count == 0U)
+ 800b3fe:	9a01      	ldr	r2, [sp, #4]
+ 800b400:	2a00      	cmp	r2, #0
+ 800b402:	d0ef      	beq.n	800b3e4 <SUBGHZ_WaitOnBusy+0x18>
+    count--;
+ 800b404:	9a01      	ldr	r2, [sp, #4]
+ 800b406:	3a01      	subs	r2, #1
+ 800b408:	9201      	str	r2, [sp, #4]
+  return ((READ_BIT(PWR->SR2, PWR_SR2_RFBUSYS) == (PWR_SR2_RFBUSYS)) ? 1UL : 0UL);
+ 800b40a:	4a05      	ldr	r2, [pc, #20]	; (800b420 <SUBGHZ_WaitOnBusy+0x54>)
+ 800b40c:	6952      	ldr	r2, [r2, #20]
+ 800b40e:	f012 0202 	ands.w	r2, r2, #2
+ 800b412:	d0ec      	beq.n	800b3ee <SUBGHZ_WaitOnBusy+0x22>
+ 800b414:	2201      	movs	r2, #1
+ 800b416:	e7ea      	b.n	800b3ee <SUBGHZ_WaitOnBusy+0x22>
+  status = HAL_OK;
+ 800b418:	2000      	movs	r0, #0
+ 800b41a:	e7e6      	b.n	800b3ea <SUBGHZ_WaitOnBusy+0x1e>
+ 800b41c:	20000828 	.word	0x20000828
+ 800b420:	58000400 	.word	0x58000400
+
+0800b424 <SUBGHZ_CheckDeviceReady>:
+{
+ 800b424:	b500      	push	{lr}
+ 800b426:	b083      	sub	sp, #12
+  if (hsubghz->DeepSleep == SUBGHZ_DEEP_SLEEP_ENABLE)
+ 800b428:	7903      	ldrb	r3, [r0, #4]
+ 800b42a:	2b01      	cmp	r3, #1
+ 800b42c:	d004      	beq.n	800b438 <SUBGHZ_CheckDeviceReady+0x14>
+  return (SUBGHZ_WaitOnBusy(hsubghz));
+ 800b42e:	f7ff ffcd 	bl	800b3cc <SUBGHZ_WaitOnBusy>
+}
+ 800b432:	b003      	add	sp, #12
+ 800b434:	f85d fb04 	ldr.w	pc, [sp], #4
+    count  = SUBGHZ_NSS_LOOP_TIME;
+ 800b438:	4b0d      	ldr	r3, [pc, #52]	; (800b470 <SUBGHZ_CheckDeviceReady+0x4c>)
+ 800b43a:	681b      	ldr	r3, [r3, #0]
+ 800b43c:	eb03 0343 	add.w	r3, r3, r3, lsl #1
+ 800b440:	f3c3 334f 	ubfx	r3, r3, #13, #16
+ 800b444:	9301      	str	r3, [sp, #4]
+  CLEAR_BIT(PWR->SUBGHZSPICR, PWR_SUBGHZSPICR_NSS);
+ 800b446:	4a0b      	ldr	r2, [pc, #44]	; (800b474 <SUBGHZ_CheckDeviceReady+0x50>)
+ 800b448:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 800b44c:	f423 4300 	bic.w	r3, r3, #32768	; 0x8000
+ 800b450:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+      count--;
+ 800b454:	9b01      	ldr	r3, [sp, #4]
+ 800b456:	3b01      	subs	r3, #1
+ 800b458:	9301      	str	r3, [sp, #4]
+    } while (count != 0UL);
+ 800b45a:	9b01      	ldr	r3, [sp, #4]
+ 800b45c:	2b00      	cmp	r3, #0
+ 800b45e:	d1f9      	bne.n	800b454 <SUBGHZ_CheckDeviceReady+0x30>
+  SET_BIT(PWR->SUBGHZSPICR, PWR_SUBGHZSPICR_NSS);
+ 800b460:	4a04      	ldr	r2, [pc, #16]	; (800b474 <SUBGHZ_CheckDeviceReady+0x50>)
+ 800b462:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 800b466:	f443 4300 	orr.w	r3, r3, #32768	; 0x8000
+ 800b46a:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+}
+ 800b46e:	e7de      	b.n	800b42e <SUBGHZ_CheckDeviceReady+0xa>
+ 800b470:	20000828 	.word	0x20000828
+ 800b474:	58000400 	.word	0x58000400
+
+0800b478 <HAL_SUBGHZ_WriteRegisters>:
+{
+ 800b478:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800b47c:	4605      	mov	r5, r0
+  if (hsubghz->State == HAL_SUBGHZ_STATE_READY)
+ 800b47e:	7980      	ldrb	r0, [r0, #6]
+ 800b480:	fa5f f880 	uxtb.w	r8, r0
+ 800b484:	f1b8 0f01 	cmp.w	r8, #1
+ 800b488:	d13e      	bne.n	800b508 <HAL_SUBGHZ_WriteRegisters+0x90>
+ 800b48a:	460c      	mov	r4, r1
+ 800b48c:	4617      	mov	r7, r2
+ 800b48e:	461e      	mov	r6, r3
+    __HAL_LOCK(hsubghz);
+ 800b490:	796b      	ldrb	r3, [r5, #5]
+ 800b492:	2b01      	cmp	r3, #1
+ 800b494:	d03b      	beq.n	800b50e <HAL_SUBGHZ_WriteRegisters+0x96>
+ 800b496:	2301      	movs	r3, #1
+ 800b498:	716b      	strb	r3, [r5, #5]
+    hsubghz->State = HAL_SUBGHZ_STATE_BUSY;
+ 800b49a:	2302      	movs	r3, #2
+ 800b49c:	71ab      	strb	r3, [r5, #6]
+    (void)SUBGHZ_CheckDeviceReady(hsubghz);
+ 800b49e:	4628      	mov	r0, r5
+ 800b4a0:	f7ff ffc0 	bl	800b424 <SUBGHZ_CheckDeviceReady>
+  CLEAR_BIT(PWR->SUBGHZSPICR, PWR_SUBGHZSPICR_NSS);
+ 800b4a4:	4a1b      	ldr	r2, [pc, #108]	; (800b514 <HAL_SUBGHZ_WriteRegisters+0x9c>)
+ 800b4a6:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 800b4aa:	f423 4300 	bic.w	r3, r3, #32768	; 0x8000
+ 800b4ae:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+    (void)SUBGHZSPI_Transmit(hsubghz, SUBGHZ_RADIO_WRITE_REGISTER);
+ 800b4b2:	210d      	movs	r1, #13
+ 800b4b4:	4628      	mov	r0, r5
+ 800b4b6:	f7ff ff0d 	bl	800b2d4 <SUBGHZSPI_Transmit>
+    (void)SUBGHZSPI_Transmit(hsubghz, (uint8_t)((Address & 0xFF00U) >> 8U));
+ 800b4ba:	0a21      	lsrs	r1, r4, #8
+ 800b4bc:	4628      	mov	r0, r5
+ 800b4be:	f7ff ff09 	bl	800b2d4 <SUBGHZSPI_Transmit>
+    (void)SUBGHZSPI_Transmit(hsubghz, (uint8_t)(Address & 0x00FFU));
+ 800b4c2:	b2e1      	uxtb	r1, r4
+ 800b4c4:	4628      	mov	r0, r5
+ 800b4c6:	f7ff ff05 	bl	800b2d4 <SUBGHZSPI_Transmit>
+    for (uint16_t i = 0U; i < Size; i++)
+ 800b4ca:	2400      	movs	r4, #0
+ 800b4cc:	e005      	b.n	800b4da <HAL_SUBGHZ_WriteRegisters+0x62>
+      (void)SUBGHZSPI_Transmit(hsubghz, pBuffer[i]);
+ 800b4ce:	5d39      	ldrb	r1, [r7, r4]
+ 800b4d0:	4628      	mov	r0, r5
+ 800b4d2:	f7ff feff 	bl	800b2d4 <SUBGHZSPI_Transmit>
+    for (uint16_t i = 0U; i < Size; i++)
+ 800b4d6:	3401      	adds	r4, #1
+ 800b4d8:	b2a4      	uxth	r4, r4
+ 800b4da:	42b4      	cmp	r4, r6
+ 800b4dc:	d3f7      	bcc.n	800b4ce <HAL_SUBGHZ_WriteRegisters+0x56>
+  SET_BIT(PWR->SUBGHZSPICR, PWR_SUBGHZSPICR_NSS);
+ 800b4de:	4a0d      	ldr	r2, [pc, #52]	; (800b514 <HAL_SUBGHZ_WriteRegisters+0x9c>)
+ 800b4e0:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 800b4e4:	f443 4300 	orr.w	r3, r3, #32768	; 0x8000
+ 800b4e8:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+    (void)SUBGHZ_WaitOnBusy(hsubghz);
+ 800b4ec:	4628      	mov	r0, r5
+ 800b4ee:	f7ff ff6d 	bl	800b3cc <SUBGHZ_WaitOnBusy>
+    if (hsubghz->ErrorCode != HAL_SUBGHZ_ERROR_NONE)
+ 800b4f2:	68ab      	ldr	r3, [r5, #8]
+ 800b4f4:	b90b      	cbnz	r3, 800b4fa <HAL_SUBGHZ_WriteRegisters+0x82>
+      status = HAL_OK;
+ 800b4f6:	f04f 0800 	mov.w	r8, #0
+    hsubghz->State = HAL_SUBGHZ_STATE_READY;
+ 800b4fa:	2301      	movs	r3, #1
+ 800b4fc:	71ab      	strb	r3, [r5, #6]
+    __HAL_UNLOCK(hsubghz);
+ 800b4fe:	2300      	movs	r3, #0
+ 800b500:	716b      	strb	r3, [r5, #5]
+}
+ 800b502:	4640      	mov	r0, r8
+ 800b504:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+    return HAL_BUSY;
+ 800b508:	f04f 0802 	mov.w	r8, #2
+ 800b50c:	e7f9      	b.n	800b502 <HAL_SUBGHZ_WriteRegisters+0x8a>
+    __HAL_LOCK(hsubghz);
+ 800b50e:	f04f 0802 	mov.w	r8, #2
+ 800b512:	e7f6      	b.n	800b502 <HAL_SUBGHZ_WriteRegisters+0x8a>
+ 800b514:	58000400 	.word	0x58000400
+
+0800b518 <HAL_SUBGHZ_ReadRegisters>:
+{
+ 800b518:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800b51c:	4606      	mov	r6, r0
+  if (hsubghz->State == HAL_SUBGHZ_STATE_READY)
+ 800b51e:	7980      	ldrb	r0, [r0, #6]
+ 800b520:	fa5f f880 	uxtb.w	r8, r0
+ 800b524:	f1b8 0f01 	cmp.w	r8, #1
+ 800b528:	d141      	bne.n	800b5ae <HAL_SUBGHZ_ReadRegisters+0x96>
+ 800b52a:	460c      	mov	r4, r1
+ 800b52c:	4615      	mov	r5, r2
+ 800b52e:	461f      	mov	r7, r3
+    __HAL_LOCK(hsubghz);
+ 800b530:	7973      	ldrb	r3, [r6, #5]
+ 800b532:	2b01      	cmp	r3, #1
+ 800b534:	d03e      	beq.n	800b5b4 <HAL_SUBGHZ_ReadRegisters+0x9c>
+ 800b536:	2301      	movs	r3, #1
+ 800b538:	7173      	strb	r3, [r6, #5]
+    (void)SUBGHZ_CheckDeviceReady(hsubghz);
+ 800b53a:	4630      	mov	r0, r6
+ 800b53c:	f7ff ff72 	bl	800b424 <SUBGHZ_CheckDeviceReady>
+  CLEAR_BIT(PWR->SUBGHZSPICR, PWR_SUBGHZSPICR_NSS);
+ 800b540:	4a1e      	ldr	r2, [pc, #120]	; (800b5bc <HAL_SUBGHZ_ReadRegisters+0xa4>)
+ 800b542:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 800b546:	f423 4300 	bic.w	r3, r3, #32768	; 0x8000
+ 800b54a:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+    (void)SUBGHZSPI_Transmit(hsubghz, SUBGHZ_RADIO_READ_REGISTER);
+ 800b54e:	211d      	movs	r1, #29
+ 800b550:	4630      	mov	r0, r6
+ 800b552:	f7ff febf 	bl	800b2d4 <SUBGHZSPI_Transmit>
+    (void)SUBGHZSPI_Transmit(hsubghz, (uint8_t)((Address & 0xFF00U) >> 8U));
+ 800b556:	0a21      	lsrs	r1, r4, #8
+ 800b558:	4630      	mov	r0, r6
+ 800b55a:	f7ff febb 	bl	800b2d4 <SUBGHZSPI_Transmit>
+    (void)SUBGHZSPI_Transmit(hsubghz, (uint8_t)(Address & 0x00FFU));
+ 800b55e:	b2e1      	uxtb	r1, r4
+ 800b560:	4630      	mov	r0, r6
+ 800b562:	f7ff feb7 	bl	800b2d4 <SUBGHZSPI_Transmit>
+    (void)SUBGHZSPI_Transmit(hsubghz, 0U);
+ 800b566:	2100      	movs	r1, #0
+ 800b568:	4630      	mov	r0, r6
+ 800b56a:	f7ff feb3 	bl	800b2d4 <SUBGHZSPI_Transmit>
+    for (uint16_t i = 0U; i < Size; i++)
+ 800b56e:	2400      	movs	r4, #0
+ 800b570:	e006      	b.n	800b580 <HAL_SUBGHZ_ReadRegisters+0x68>
+      (void)SUBGHZSPI_Receive(hsubghz, (pData));
+ 800b572:	4629      	mov	r1, r5
+ 800b574:	4630      	mov	r0, r6
+ 800b576:	f7ff fee9 	bl	800b34c <SUBGHZSPI_Receive>
+      pData++;
+ 800b57a:	3501      	adds	r5, #1
+    for (uint16_t i = 0U; i < Size; i++)
+ 800b57c:	3401      	adds	r4, #1
+ 800b57e:	b2a4      	uxth	r4, r4
+ 800b580:	42bc      	cmp	r4, r7
+ 800b582:	d3f6      	bcc.n	800b572 <HAL_SUBGHZ_ReadRegisters+0x5a>
+  SET_BIT(PWR->SUBGHZSPICR, PWR_SUBGHZSPICR_NSS);
+ 800b584:	4a0d      	ldr	r2, [pc, #52]	; (800b5bc <HAL_SUBGHZ_ReadRegisters+0xa4>)
+ 800b586:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 800b58a:	f443 4300 	orr.w	r3, r3, #32768	; 0x8000
+ 800b58e:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+    (void)SUBGHZ_WaitOnBusy(hsubghz);
+ 800b592:	4630      	mov	r0, r6
+ 800b594:	f7ff ff1a 	bl	800b3cc <SUBGHZ_WaitOnBusy>
+    if (hsubghz->ErrorCode != HAL_SUBGHZ_ERROR_NONE)
+ 800b598:	68b3      	ldr	r3, [r6, #8]
+ 800b59a:	b90b      	cbnz	r3, 800b5a0 <HAL_SUBGHZ_ReadRegisters+0x88>
+      status = HAL_OK;
+ 800b59c:	f04f 0800 	mov.w	r8, #0
+    hsubghz->State = HAL_SUBGHZ_STATE_READY;
+ 800b5a0:	2301      	movs	r3, #1
+ 800b5a2:	71b3      	strb	r3, [r6, #6]
+    __HAL_UNLOCK(hsubghz);
+ 800b5a4:	2300      	movs	r3, #0
+ 800b5a6:	7173      	strb	r3, [r6, #5]
+}
+ 800b5a8:	4640      	mov	r0, r8
+ 800b5aa:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+    return HAL_BUSY;
+ 800b5ae:	f04f 0802 	mov.w	r8, #2
+ 800b5b2:	e7f9      	b.n	800b5a8 <HAL_SUBGHZ_ReadRegisters+0x90>
+    __HAL_LOCK(hsubghz);
+ 800b5b4:	f04f 0802 	mov.w	r8, #2
+ 800b5b8:	e7f6      	b.n	800b5a8 <HAL_SUBGHZ_ReadRegisters+0x90>
+ 800b5ba:	bf00      	nop
+ 800b5bc:	58000400 	.word	0x58000400
+
+0800b5c0 <HAL_SUBGHZ_ExecSetCmd>:
+{
+ 800b5c0:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
+ 800b5c4:	4605      	mov	r5, r0
+  if (hsubghz->State == HAL_SUBGHZ_STATE_READY)
+ 800b5c6:	7980      	ldrb	r0, [r0, #6]
+ 800b5c8:	fa5f f980 	uxtb.w	r9, r0
+ 800b5cc:	f1b9 0f01 	cmp.w	r9, #1
+ 800b5d0:	d143      	bne.n	800b65a <HAL_SUBGHZ_ExecSetCmd+0x9a>
+ 800b5d2:	4688      	mov	r8, r1
+ 800b5d4:	4617      	mov	r7, r2
+ 800b5d6:	461e      	mov	r6, r3
+    __HAL_LOCK(hsubghz);
+ 800b5d8:	796b      	ldrb	r3, [r5, #5]
+ 800b5da:	2b01      	cmp	r3, #1
+ 800b5dc:	d040      	beq.n	800b660 <HAL_SUBGHZ_ExecSetCmd+0xa0>
+ 800b5de:	2301      	movs	r3, #1
+ 800b5e0:	716b      	strb	r3, [r5, #5]
+    (void)SUBGHZ_CheckDeviceReady(hsubghz);
+ 800b5e2:	4628      	mov	r0, r5
+ 800b5e4:	f7ff ff1e 	bl	800b424 <SUBGHZ_CheckDeviceReady>
+    if ((Command == RADIO_SET_SLEEP) || (Command == RADIO_SET_RXDUTYCYCLE))
+ 800b5e8:	f1b8 0f84 	cmp.w	r8, #132	; 0x84
+ 800b5ec:	d005      	beq.n	800b5fa <HAL_SUBGHZ_ExecSetCmd+0x3a>
+ 800b5ee:	f1b8 0f94 	cmp.w	r8, #148	; 0x94
+ 800b5f2:	d002      	beq.n	800b5fa <HAL_SUBGHZ_ExecSetCmd+0x3a>
+      hsubghz->DeepSleep = SUBGHZ_DEEP_SLEEP_DISABLE;
+ 800b5f4:	2300      	movs	r3, #0
+ 800b5f6:	712b      	strb	r3, [r5, #4]
+ 800b5f8:	e001      	b.n	800b5fe <HAL_SUBGHZ_ExecSetCmd+0x3e>
+      hsubghz->DeepSleep = SUBGHZ_DEEP_SLEEP_ENABLE;
+ 800b5fa:	2301      	movs	r3, #1
+ 800b5fc:	712b      	strb	r3, [r5, #4]
+  CLEAR_BIT(PWR->SUBGHZSPICR, PWR_SUBGHZSPICR_NSS);
+ 800b5fe:	4a1a      	ldr	r2, [pc, #104]	; (800b668 <HAL_SUBGHZ_ExecSetCmd+0xa8>)
+ 800b600:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 800b604:	f423 4300 	bic.w	r3, r3, #32768	; 0x8000
+ 800b608:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+    (void)SUBGHZSPI_Transmit(hsubghz, (uint8_t)Command);
+ 800b60c:	4641      	mov	r1, r8
+ 800b60e:	4628      	mov	r0, r5
+ 800b610:	f7ff fe60 	bl	800b2d4 <SUBGHZSPI_Transmit>
+    for (uint16_t i = 0U; i < Size; i++)
+ 800b614:	2400      	movs	r4, #0
+ 800b616:	e005      	b.n	800b624 <HAL_SUBGHZ_ExecSetCmd+0x64>
+      (void)SUBGHZSPI_Transmit(hsubghz, pBuffer[i]);
+ 800b618:	5d39      	ldrb	r1, [r7, r4]
+ 800b61a:	4628      	mov	r0, r5
+ 800b61c:	f7ff fe5a 	bl	800b2d4 <SUBGHZSPI_Transmit>
+    for (uint16_t i = 0U; i < Size; i++)
+ 800b620:	3401      	adds	r4, #1
+ 800b622:	b2a4      	uxth	r4, r4
+ 800b624:	42b4      	cmp	r4, r6
+ 800b626:	d3f7      	bcc.n	800b618 <HAL_SUBGHZ_ExecSetCmd+0x58>
+  SET_BIT(PWR->SUBGHZSPICR, PWR_SUBGHZSPICR_NSS);
+ 800b628:	4a0f      	ldr	r2, [pc, #60]	; (800b668 <HAL_SUBGHZ_ExecSetCmd+0xa8>)
+ 800b62a:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 800b62e:	f443 4300 	orr.w	r3, r3, #32768	; 0x8000
+ 800b632:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+    if (Command != RADIO_SET_SLEEP)
+ 800b636:	f1b8 0f84 	cmp.w	r8, #132	; 0x84
+ 800b63a:	d10a      	bne.n	800b652 <HAL_SUBGHZ_ExecSetCmd+0x92>
+    if (hsubghz->ErrorCode != HAL_SUBGHZ_ERROR_NONE)
+ 800b63c:	68ab      	ldr	r3, [r5, #8]
+ 800b63e:	b90b      	cbnz	r3, 800b644 <HAL_SUBGHZ_ExecSetCmd+0x84>
+      status = HAL_OK;
+ 800b640:	f04f 0900 	mov.w	r9, #0
+    hsubghz->State = HAL_SUBGHZ_STATE_READY;
+ 800b644:	2301      	movs	r3, #1
+ 800b646:	71ab      	strb	r3, [r5, #6]
+    __HAL_UNLOCK(hsubghz);
+ 800b648:	2300      	movs	r3, #0
+ 800b64a:	716b      	strb	r3, [r5, #5]
+}
+ 800b64c:	4648      	mov	r0, r9
+ 800b64e:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
+      (void)SUBGHZ_WaitOnBusy(hsubghz);
+ 800b652:	4628      	mov	r0, r5
+ 800b654:	f7ff feba 	bl	800b3cc <SUBGHZ_WaitOnBusy>
+ 800b658:	e7f0      	b.n	800b63c <HAL_SUBGHZ_ExecSetCmd+0x7c>
+    return HAL_BUSY;
+ 800b65a:	f04f 0902 	mov.w	r9, #2
+ 800b65e:	e7f5      	b.n	800b64c <HAL_SUBGHZ_ExecSetCmd+0x8c>
+    __HAL_LOCK(hsubghz);
+ 800b660:	f04f 0902 	mov.w	r9, #2
+ 800b664:	e7f2      	b.n	800b64c <HAL_SUBGHZ_ExecSetCmd+0x8c>
+ 800b666:	bf00      	nop
+ 800b668:	58000400 	.word	0x58000400
+
+0800b66c <HAL_SUBGHZ_ExecGetCmd>:
+{
+ 800b66c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800b670:	4606      	mov	r6, r0
+  if (hsubghz->State == HAL_SUBGHZ_STATE_READY)
+ 800b672:	7980      	ldrb	r0, [r0, #6]
+ 800b674:	fa5f f880 	uxtb.w	r8, r0
+ 800b678:	f1b8 0f01 	cmp.w	r8, #1
+ 800b67c:	d139      	bne.n	800b6f2 <HAL_SUBGHZ_ExecGetCmd+0x86>
+ 800b67e:	460c      	mov	r4, r1
+ 800b680:	4615      	mov	r5, r2
+ 800b682:	461f      	mov	r7, r3
+    __HAL_LOCK(hsubghz);
+ 800b684:	7973      	ldrb	r3, [r6, #5]
+ 800b686:	2b01      	cmp	r3, #1
+ 800b688:	d036      	beq.n	800b6f8 <HAL_SUBGHZ_ExecGetCmd+0x8c>
+ 800b68a:	2301      	movs	r3, #1
+ 800b68c:	7173      	strb	r3, [r6, #5]
+    (void)SUBGHZ_CheckDeviceReady(hsubghz);
+ 800b68e:	4630      	mov	r0, r6
+ 800b690:	f7ff fec8 	bl	800b424 <SUBGHZ_CheckDeviceReady>
+  CLEAR_BIT(PWR->SUBGHZSPICR, PWR_SUBGHZSPICR_NSS);
+ 800b694:	4a1a      	ldr	r2, [pc, #104]	; (800b700 <HAL_SUBGHZ_ExecGetCmd+0x94>)
+ 800b696:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 800b69a:	f423 4300 	bic.w	r3, r3, #32768	; 0x8000
+ 800b69e:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+    (void)SUBGHZSPI_Transmit(hsubghz, (uint8_t)Command);
+ 800b6a2:	4621      	mov	r1, r4
+ 800b6a4:	4630      	mov	r0, r6
+ 800b6a6:	f7ff fe15 	bl	800b2d4 <SUBGHZSPI_Transmit>
+    (void)SUBGHZSPI_Transmit(hsubghz, 0x00U);
+ 800b6aa:	2100      	movs	r1, #0
+ 800b6ac:	4630      	mov	r0, r6
+ 800b6ae:	f7ff fe11 	bl	800b2d4 <SUBGHZSPI_Transmit>
+    for (uint16_t i = 0U; i < Size; i++)
+ 800b6b2:	2400      	movs	r4, #0
+ 800b6b4:	e006      	b.n	800b6c4 <HAL_SUBGHZ_ExecGetCmd+0x58>
+      (void)SUBGHZSPI_Receive(hsubghz, (pData));
+ 800b6b6:	4629      	mov	r1, r5
+ 800b6b8:	4630      	mov	r0, r6
+ 800b6ba:	f7ff fe47 	bl	800b34c <SUBGHZSPI_Receive>
+      pData++;
+ 800b6be:	3501      	adds	r5, #1
+    for (uint16_t i = 0U; i < Size; i++)
+ 800b6c0:	3401      	adds	r4, #1
+ 800b6c2:	b2a4      	uxth	r4, r4
+ 800b6c4:	42bc      	cmp	r4, r7
+ 800b6c6:	d3f6      	bcc.n	800b6b6 <HAL_SUBGHZ_ExecGetCmd+0x4a>
+  SET_BIT(PWR->SUBGHZSPICR, PWR_SUBGHZSPICR_NSS);
+ 800b6c8:	4a0d      	ldr	r2, [pc, #52]	; (800b700 <HAL_SUBGHZ_ExecGetCmd+0x94>)
+ 800b6ca:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 800b6ce:	f443 4300 	orr.w	r3, r3, #32768	; 0x8000
+ 800b6d2:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+    (void)SUBGHZ_WaitOnBusy(hsubghz);
+ 800b6d6:	4630      	mov	r0, r6
+ 800b6d8:	f7ff fe78 	bl	800b3cc <SUBGHZ_WaitOnBusy>
+    if (hsubghz->ErrorCode != HAL_SUBGHZ_ERROR_NONE)
+ 800b6dc:	68b3      	ldr	r3, [r6, #8]
+ 800b6de:	b90b      	cbnz	r3, 800b6e4 <HAL_SUBGHZ_ExecGetCmd+0x78>
+      status = HAL_OK;
+ 800b6e0:	f04f 0800 	mov.w	r8, #0
+    hsubghz->State = HAL_SUBGHZ_STATE_READY;
+ 800b6e4:	2301      	movs	r3, #1
+ 800b6e6:	71b3      	strb	r3, [r6, #6]
+    __HAL_UNLOCK(hsubghz);
+ 800b6e8:	2300      	movs	r3, #0
+ 800b6ea:	7173      	strb	r3, [r6, #5]
+}
+ 800b6ec:	4640      	mov	r0, r8
+ 800b6ee:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+    return HAL_BUSY;
+ 800b6f2:	f04f 0802 	mov.w	r8, #2
+ 800b6f6:	e7f9      	b.n	800b6ec <HAL_SUBGHZ_ExecGetCmd+0x80>
+    __HAL_LOCK(hsubghz);
+ 800b6f8:	f04f 0802 	mov.w	r8, #2
+ 800b6fc:	e7f6      	b.n	800b6ec <HAL_SUBGHZ_ExecGetCmd+0x80>
+ 800b6fe:	bf00      	nop
+ 800b700:	58000400 	.word	0x58000400
+
+0800b704 <HAL_SUBGHZ_IRQHandler>:
+{
+ 800b704:	b530      	push	{r4, r5, lr}
+ 800b706:	b083      	sub	sp, #12
+ 800b708:	4605      	mov	r5, r0
+  uint8_t tmpisr[2U] = {0U};
+ 800b70a:	2300      	movs	r3, #0
+ 800b70c:	f8ad 3004 	strh.w	r3, [sp, #4]
+  (void)HAL_SUBGHZ_ExecGetCmd(hsubghz, RADIO_GET_IRQSTATUS, tmpisr, 2U);
+ 800b710:	2302      	movs	r3, #2
+ 800b712:	aa01      	add	r2, sp, #4
+ 800b714:	2112      	movs	r1, #18
+ 800b716:	f7ff ffa9 	bl	800b66c <HAL_SUBGHZ_ExecGetCmd>
+  itsource = tmpisr[0U];
+ 800b71a:	f89d 3004 	ldrb.w	r3, [sp, #4]
+  itsource = (itsource << 8U) | tmpisr[1U];
+ 800b71e:	f89d 4005 	ldrb.w	r4, [sp, #5]
+ 800b722:	ea44 2403 	orr.w	r4, r4, r3, lsl #8
+  (void)HAL_SUBGHZ_ExecSetCmd(hsubghz, RADIO_CLR_IRQSTATUS, tmpisr, 2U);
+ 800b726:	2302      	movs	r3, #2
+ 800b728:	aa01      	add	r2, sp, #4
+ 800b72a:	4619      	mov	r1, r3
+ 800b72c:	4628      	mov	r0, r5
+ 800b72e:	f7ff ff47 	bl	800b5c0 <HAL_SUBGHZ_ExecSetCmd>
+  if (SUBGHZ_CHECK_IT_SOURCE(itsource, SUBGHZ_IT_TX_CPLT) != RESET)
+ 800b732:	f014 0f01 	tst.w	r4, #1
+ 800b736:	d123      	bne.n	800b780 <HAL_SUBGHZ_IRQHandler+0x7c>
+  if (SUBGHZ_CHECK_IT_SOURCE(itsource, SUBGHZ_IT_RX_CPLT) != RESET)
+ 800b738:	f014 0f02 	tst.w	r4, #2
+ 800b73c:	d124      	bne.n	800b788 <HAL_SUBGHZ_IRQHandler+0x84>
+  if (SUBGHZ_CHECK_IT_SOURCE(itsource, SUBGHZ_IT_PREAMBLE_DETECTED) != RESET)
+ 800b73e:	f014 0f04 	tst.w	r4, #4
+ 800b742:	d125      	bne.n	800b790 <HAL_SUBGHZ_IRQHandler+0x8c>
+  if (SUBGHZ_CHECK_IT_SOURCE(itsource, SUBGHZ_IT_SYNCWORD_VALID) != RESET)
+ 800b744:	f014 0f08 	tst.w	r4, #8
+ 800b748:	d126      	bne.n	800b798 <HAL_SUBGHZ_IRQHandler+0x94>
+  if (SUBGHZ_CHECK_IT_SOURCE(itsource, SUBGHZ_IT_HEADER_VALID) != RESET)
+ 800b74a:	f014 0f10 	tst.w	r4, #16
+ 800b74e:	d127      	bne.n	800b7a0 <HAL_SUBGHZ_IRQHandler+0x9c>
+  if (SUBGHZ_CHECK_IT_SOURCE(itsource, SUBGHZ_IT_HEADER_ERROR) != RESET)
+ 800b750:	f014 0f20 	tst.w	r4, #32
+ 800b754:	d128      	bne.n	800b7a8 <HAL_SUBGHZ_IRQHandler+0xa4>
+  if (SUBGHZ_CHECK_IT_SOURCE(itsource, SUBGHZ_IT_CRC_ERROR) != RESET)
+ 800b756:	f014 0f40 	tst.w	r4, #64	; 0x40
+ 800b75a:	d129      	bne.n	800b7b0 <HAL_SUBGHZ_IRQHandler+0xac>
+  if (SUBGHZ_CHECK_IT_SOURCE(itsource, SUBGHZ_IT_CAD_DONE) != RESET)
+ 800b75c:	f014 0f80 	tst.w	r4, #128	; 0x80
+ 800b760:	d006      	beq.n	800b770 <HAL_SUBGHZ_IRQHandler+0x6c>
+    if (SUBGHZ_CHECK_IT_SOURCE(itsource, SUBGHZ_IT_CAD_ACTIVITY_DETECTED) != RESET)
+ 800b762:	f414 7f80 	tst.w	r4, #256	; 0x100
+ 800b766:	d027      	beq.n	800b7b8 <HAL_SUBGHZ_IRQHandler+0xb4>
+      HAL_SUBGHZ_CADStatusCallback(hsubghz, HAL_SUBGHZ_CAD_DETECTED);
+ 800b768:	2101      	movs	r1, #1
+ 800b76a:	4628      	mov	r0, r5
+ 800b76c:	f00b f852 	bl	8016814 <HAL_SUBGHZ_CADStatusCallback>
+  if (SUBGHZ_CHECK_IT_SOURCE(itsource, SUBGHZ_IT_RX_TX_TIMEOUT) != RESET)
+ 800b770:	f414 7f00 	tst.w	r4, #512	; 0x200
+ 800b774:	d125      	bne.n	800b7c2 <HAL_SUBGHZ_IRQHandler+0xbe>
+  if (SUBGHZ_CHECK_IT_SOURCE(itsource, SUBGHZ_IT_LR_FHSS_HOP) != RESET)
+ 800b776:	f414 4f80 	tst.w	r4, #16384	; 0x4000
+ 800b77a:	d126      	bne.n	800b7ca <HAL_SUBGHZ_IRQHandler+0xc6>
+}
+ 800b77c:	b003      	add	sp, #12
+ 800b77e:	bd30      	pop	{r4, r5, pc}
+    HAL_SUBGHZ_TxCpltCallback(hsubghz);
+ 800b780:	4628      	mov	r0, r5
+ 800b782:	f00b f82f 	bl	80167e4 <HAL_SUBGHZ_TxCpltCallback>
+ 800b786:	e7d7      	b.n	800b738 <HAL_SUBGHZ_IRQHandler+0x34>
+    HAL_SUBGHZ_RxCpltCallback(hsubghz);
+ 800b788:	4628      	mov	r0, r5
+ 800b78a:	f00b f833 	bl	80167f4 <HAL_SUBGHZ_RxCpltCallback>
+ 800b78e:	e7d6      	b.n	800b73e <HAL_SUBGHZ_IRQHandler+0x3a>
+    HAL_SUBGHZ_PreambleDetectedCallback(hsubghz);
+ 800b790:	4628      	mov	r0, r5
+ 800b792:	f00b f863 	bl	801685c <HAL_SUBGHZ_PreambleDetectedCallback>
+ 800b796:	e7d5      	b.n	800b744 <HAL_SUBGHZ_IRQHandler+0x40>
+    HAL_SUBGHZ_SyncWordValidCallback(hsubghz);
+ 800b798:	4628      	mov	r0, r5
+ 800b79a:	f00b f867 	bl	801686c <HAL_SUBGHZ_SyncWordValidCallback>
+ 800b79e:	e7d4      	b.n	800b74a <HAL_SUBGHZ_IRQHandler+0x46>
+    HAL_SUBGHZ_HeaderValidCallback(hsubghz);
+ 800b7a0:	4628      	mov	r0, r5
+ 800b7a2:	f00b f86b 	bl	801687c <HAL_SUBGHZ_HeaderValidCallback>
+ 800b7a6:	e7d3      	b.n	800b750 <HAL_SUBGHZ_IRQHandler+0x4c>
+    HAL_SUBGHZ_HeaderErrorCallback(hsubghz);
+ 800b7a8:	4628      	mov	r0, r5
+ 800b7aa:	f00b f84f 	bl	801684c <HAL_SUBGHZ_HeaderErrorCallback>
+ 800b7ae:	e7d2      	b.n	800b756 <HAL_SUBGHZ_IRQHandler+0x52>
+    HAL_SUBGHZ_CRCErrorCallback(hsubghz);
+ 800b7b0:	4628      	mov	r0, r5
+ 800b7b2:	f00b f827 	bl	8016804 <HAL_SUBGHZ_CRCErrorCallback>
+ 800b7b6:	e7d1      	b.n	800b75c <HAL_SUBGHZ_IRQHandler+0x58>
+      HAL_SUBGHZ_CADStatusCallback(hsubghz, HAL_SUBGHZ_CAD_CLEAR);
+ 800b7b8:	2100      	movs	r1, #0
+ 800b7ba:	4628      	mov	r0, r5
+ 800b7bc:	f00b f82a 	bl	8016814 <HAL_SUBGHZ_CADStatusCallback>
+ 800b7c0:	e7d6      	b.n	800b770 <HAL_SUBGHZ_IRQHandler+0x6c>
+    HAL_SUBGHZ_RxTxTimeoutCallback(hsubghz);
+ 800b7c2:	4628      	mov	r0, r5
+ 800b7c4:	f00b f838 	bl	8016838 <HAL_SUBGHZ_RxTxTimeoutCallback>
+ 800b7c8:	e7d5      	b.n	800b776 <HAL_SUBGHZ_IRQHandler+0x72>
+    HAL_SUBGHZ_LrFhssHopCallback(hsubghz);
+ 800b7ca:	4628      	mov	r0, r5
+ 800b7cc:	f00b f85e 	bl	801688c <HAL_SUBGHZ_LrFhssHopCallback>
+}
+ 800b7d0:	e7d4      	b.n	800b77c <HAL_SUBGHZ_IRQHandler+0x78>
+	...
+
+0800b7d4 <HAL_SUBGHZ_WriteBuffer>:
+{
+ 800b7d4:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800b7d8:	4605      	mov	r5, r0
+  if (hsubghz->State == HAL_SUBGHZ_STATE_READY)
+ 800b7da:	7980      	ldrb	r0, [r0, #6]
+ 800b7dc:	fa5f f880 	uxtb.w	r8, r0
+ 800b7e0:	f1b8 0f01 	cmp.w	r8, #1
+ 800b7e4:	d138      	bne.n	800b858 <HAL_SUBGHZ_WriteBuffer+0x84>
+ 800b7e6:	460c      	mov	r4, r1
+ 800b7e8:	4617      	mov	r7, r2
+ 800b7ea:	461e      	mov	r6, r3
+    __HAL_LOCK(hsubghz);
+ 800b7ec:	796b      	ldrb	r3, [r5, #5]
+ 800b7ee:	2b01      	cmp	r3, #1
+ 800b7f0:	d035      	beq.n	800b85e <HAL_SUBGHZ_WriteBuffer+0x8a>
+ 800b7f2:	2301      	movs	r3, #1
+ 800b7f4:	716b      	strb	r3, [r5, #5]
+    (void)SUBGHZ_CheckDeviceReady(hsubghz);
+ 800b7f6:	4628      	mov	r0, r5
+ 800b7f8:	f7ff fe14 	bl	800b424 <SUBGHZ_CheckDeviceReady>
+  CLEAR_BIT(PWR->SUBGHZSPICR, PWR_SUBGHZSPICR_NSS);
+ 800b7fc:	4a19      	ldr	r2, [pc, #100]	; (800b864 <HAL_SUBGHZ_WriteBuffer+0x90>)
+ 800b7fe:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 800b802:	f423 4300 	bic.w	r3, r3, #32768	; 0x8000
+ 800b806:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+    (void)SUBGHZSPI_Transmit(hsubghz, SUBGHZ_RADIO_WRITE_BUFFER);
+ 800b80a:	210e      	movs	r1, #14
+ 800b80c:	4628      	mov	r0, r5
+ 800b80e:	f7ff fd61 	bl	800b2d4 <SUBGHZSPI_Transmit>
+    (void)SUBGHZSPI_Transmit(hsubghz, Offset);
+ 800b812:	4621      	mov	r1, r4
+ 800b814:	4628      	mov	r0, r5
+ 800b816:	f7ff fd5d 	bl	800b2d4 <SUBGHZSPI_Transmit>
+    for (uint16_t i = 0U; i < Size; i++)
+ 800b81a:	2400      	movs	r4, #0
+ 800b81c:	e005      	b.n	800b82a <HAL_SUBGHZ_WriteBuffer+0x56>
+      (void)SUBGHZSPI_Transmit(hsubghz, pBuffer[i]);
+ 800b81e:	5d39      	ldrb	r1, [r7, r4]
+ 800b820:	4628      	mov	r0, r5
+ 800b822:	f7ff fd57 	bl	800b2d4 <SUBGHZSPI_Transmit>
+    for (uint16_t i = 0U; i < Size; i++)
+ 800b826:	3401      	adds	r4, #1
+ 800b828:	b2a4      	uxth	r4, r4
+ 800b82a:	42b4      	cmp	r4, r6
+ 800b82c:	d3f7      	bcc.n	800b81e <HAL_SUBGHZ_WriteBuffer+0x4a>
+  SET_BIT(PWR->SUBGHZSPICR, PWR_SUBGHZSPICR_NSS);
+ 800b82e:	4a0d      	ldr	r2, [pc, #52]	; (800b864 <HAL_SUBGHZ_WriteBuffer+0x90>)
+ 800b830:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 800b834:	f443 4300 	orr.w	r3, r3, #32768	; 0x8000
+ 800b838:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+    (void)SUBGHZ_WaitOnBusy(hsubghz);
+ 800b83c:	4628      	mov	r0, r5
+ 800b83e:	f7ff fdc5 	bl	800b3cc <SUBGHZ_WaitOnBusy>
+    if (hsubghz->ErrorCode != HAL_SUBGHZ_ERROR_NONE)
+ 800b842:	68ab      	ldr	r3, [r5, #8]
+ 800b844:	b90b      	cbnz	r3, 800b84a <HAL_SUBGHZ_WriteBuffer+0x76>
+      status = HAL_OK;
+ 800b846:	f04f 0800 	mov.w	r8, #0
+    hsubghz->State = HAL_SUBGHZ_STATE_READY;
+ 800b84a:	2301      	movs	r3, #1
+ 800b84c:	71ab      	strb	r3, [r5, #6]
+    __HAL_UNLOCK(hsubghz);
+ 800b84e:	2300      	movs	r3, #0
+ 800b850:	716b      	strb	r3, [r5, #5]
+}
+ 800b852:	4640      	mov	r0, r8
+ 800b854:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+    return HAL_BUSY;
+ 800b858:	f04f 0802 	mov.w	r8, #2
+ 800b85c:	e7f9      	b.n	800b852 <HAL_SUBGHZ_WriteBuffer+0x7e>
+    __HAL_LOCK(hsubghz);
+ 800b85e:	f04f 0802 	mov.w	r8, #2
+ 800b862:	e7f6      	b.n	800b852 <HAL_SUBGHZ_WriteBuffer+0x7e>
+ 800b864:	58000400 	.word	0x58000400
+
+0800b868 <HAL_SUBGHZ_ReadBuffer>:
+{
+ 800b868:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800b86c:	4606      	mov	r6, r0
+  if (hsubghz->State == HAL_SUBGHZ_STATE_READY)
+ 800b86e:	7980      	ldrb	r0, [r0, #6]
+ 800b870:	fa5f f880 	uxtb.w	r8, r0
+ 800b874:	f1b8 0f01 	cmp.w	r8, #1
+ 800b878:	d13d      	bne.n	800b8f6 <HAL_SUBGHZ_ReadBuffer+0x8e>
+ 800b87a:	460c      	mov	r4, r1
+ 800b87c:	4615      	mov	r5, r2
+ 800b87e:	461f      	mov	r7, r3
+    __HAL_LOCK(hsubghz);
+ 800b880:	7973      	ldrb	r3, [r6, #5]
+ 800b882:	2b01      	cmp	r3, #1
+ 800b884:	d03a      	beq.n	800b8fc <HAL_SUBGHZ_ReadBuffer+0x94>
+ 800b886:	2301      	movs	r3, #1
+ 800b888:	7173      	strb	r3, [r6, #5]
+    (void)SUBGHZ_CheckDeviceReady(hsubghz);
+ 800b88a:	4630      	mov	r0, r6
+ 800b88c:	f7ff fdca 	bl	800b424 <SUBGHZ_CheckDeviceReady>
+  CLEAR_BIT(PWR->SUBGHZSPICR, PWR_SUBGHZSPICR_NSS);
+ 800b890:	4a1c      	ldr	r2, [pc, #112]	; (800b904 <HAL_SUBGHZ_ReadBuffer+0x9c>)
+ 800b892:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 800b896:	f423 4300 	bic.w	r3, r3, #32768	; 0x8000
+ 800b89a:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+    (void)SUBGHZSPI_Transmit(hsubghz, SUBGHZ_RADIO_READ_BUFFER);
+ 800b89e:	211e      	movs	r1, #30
+ 800b8a0:	4630      	mov	r0, r6
+ 800b8a2:	f7ff fd17 	bl	800b2d4 <SUBGHZSPI_Transmit>
+    (void)SUBGHZSPI_Transmit(hsubghz, Offset);
+ 800b8a6:	4621      	mov	r1, r4
+ 800b8a8:	4630      	mov	r0, r6
+ 800b8aa:	f7ff fd13 	bl	800b2d4 <SUBGHZSPI_Transmit>
+    (void)SUBGHZSPI_Transmit(hsubghz, 0x00U);
+ 800b8ae:	2100      	movs	r1, #0
+ 800b8b0:	4630      	mov	r0, r6
+ 800b8b2:	f7ff fd0f 	bl	800b2d4 <SUBGHZSPI_Transmit>
+    for (uint16_t i = 0U; i < Size; i++)
+ 800b8b6:	2400      	movs	r4, #0
+ 800b8b8:	e006      	b.n	800b8c8 <HAL_SUBGHZ_ReadBuffer+0x60>
+      (void)SUBGHZSPI_Receive(hsubghz, (pData));
+ 800b8ba:	4629      	mov	r1, r5
+ 800b8bc:	4630      	mov	r0, r6
+ 800b8be:	f7ff fd45 	bl	800b34c <SUBGHZSPI_Receive>
+      pData++;
+ 800b8c2:	3501      	adds	r5, #1
+    for (uint16_t i = 0U; i < Size; i++)
+ 800b8c4:	3401      	adds	r4, #1
+ 800b8c6:	b2a4      	uxth	r4, r4
+ 800b8c8:	42bc      	cmp	r4, r7
+ 800b8ca:	d3f6      	bcc.n	800b8ba <HAL_SUBGHZ_ReadBuffer+0x52>
+  SET_BIT(PWR->SUBGHZSPICR, PWR_SUBGHZSPICR_NSS);
+ 800b8cc:	4a0d      	ldr	r2, [pc, #52]	; (800b904 <HAL_SUBGHZ_ReadBuffer+0x9c>)
+ 800b8ce:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 800b8d2:	f443 4300 	orr.w	r3, r3, #32768	; 0x8000
+ 800b8d6:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+    (void)SUBGHZ_WaitOnBusy(hsubghz);
+ 800b8da:	4630      	mov	r0, r6
+ 800b8dc:	f7ff fd76 	bl	800b3cc <SUBGHZ_WaitOnBusy>
+    if (hsubghz->ErrorCode != HAL_SUBGHZ_ERROR_NONE)
+ 800b8e0:	68b3      	ldr	r3, [r6, #8]
+ 800b8e2:	b90b      	cbnz	r3, 800b8e8 <HAL_SUBGHZ_ReadBuffer+0x80>
+      status = HAL_OK;
+ 800b8e4:	f04f 0800 	mov.w	r8, #0
+    hsubghz->State = HAL_SUBGHZ_STATE_READY;
+ 800b8e8:	2301      	movs	r3, #1
+ 800b8ea:	71b3      	strb	r3, [r6, #6]
+    __HAL_UNLOCK(hsubghz);
+ 800b8ec:	2300      	movs	r3, #0
+ 800b8ee:	7173      	strb	r3, [r6, #5]
+}
+ 800b8f0:	4640      	mov	r0, r8
+ 800b8f2:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+    return HAL_BUSY;
+ 800b8f6:	f04f 0802 	mov.w	r8, #2
+ 800b8fa:	e7f9      	b.n	800b8f0 <HAL_SUBGHZ_ReadBuffer+0x88>
+    __HAL_LOCK(hsubghz);
+ 800b8fc:	f04f 0802 	mov.w	r8, #2
+ 800b900:	e7f6      	b.n	800b8f0 <HAL_SUBGHZ_ReadBuffer+0x88>
+ 800b902:	bf00      	nop
+ 800b904:	58000400 	.word	0x58000400
+
+0800b908 <UART_EndTxTransfer>:
+  * @retval None
+  */
+static void UART_EndTxTransfer(UART_HandleTypeDef *huart)
+{
+  /* Disable TXEIE, TCIE, TXFT interrupts */
+  ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE_TXFNFIE | USART_CR1_TCIE));
+ 800b908:	6802      	ldr	r2, [r0, #0]
+ */
+__STATIC_FORCEINLINE uint32_t __LDREXW(volatile uint32_t *addr)
+{
+    uint32_t result;
+
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800b90a:	e852 3f00 	ldrex	r3, [r2]
+ 800b90e:	f023 03c0 	bic.w	r3, r3, #192	; 0xc0
+ */
+__STATIC_FORCEINLINE uint32_t __STREXW(uint32_t value, volatile uint32_t *addr)
+{
+   uint32_t result;
+
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800b912:	e842 3100 	strex	r1, r3, [r2]
+ 800b916:	2900      	cmp	r1, #0
+ 800b918:	d1f6      	bne.n	800b908 <UART_EndTxTransfer>
+  ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_TXFTIE));
+ 800b91a:	6802      	ldr	r2, [r0, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800b91c:	f102 0308 	add.w	r3, r2, #8
+ 800b920:	e853 3f00 	ldrex	r3, [r3]
+ 800b924:	f423 0300 	bic.w	r3, r3, #8388608	; 0x800000
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800b928:	3208      	adds	r2, #8
+ 800b92a:	e842 3100 	strex	r1, r3, [r2]
+ 800b92e:	2900      	cmp	r1, #0
+ 800b930:	d1f3      	bne.n	800b91a <UART_EndTxTransfer+0x12>
+
+  /* At end of Tx process, restore huart->gState to Ready */
+  huart->gState = HAL_UART_STATE_READY;
+ 800b932:	2320      	movs	r3, #32
+ 800b934:	f8c0 3088 	str.w	r3, [r0, #136]	; 0x88
+}
+ 800b938:	4770      	bx	lr
+
+0800b93a <UART_EndRxTransfer>:
+  * @retval None
+  */
+static void UART_EndRxTransfer(UART_HandleTypeDef *huart)
+{
+  /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */
+  ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE));
+ 800b93a:	6802      	ldr	r2, [r0, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800b93c:	e852 3f00 	ldrex	r3, [r2]
+ 800b940:	f423 7390 	bic.w	r3, r3, #288	; 0x120
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800b944:	e842 3100 	strex	r1, r3, [r2]
+ 800b948:	2900      	cmp	r1, #0
+ 800b94a:	d1f6      	bne.n	800b93a <UART_EndRxTransfer>
+  ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE));
+ 800b94c:	6802      	ldr	r2, [r0, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800b94e:	f102 0308 	add.w	r3, r2, #8
+ 800b952:	e853 3f00 	ldrex	r3, [r3]
+ 800b956:	f023 5380 	bic.w	r3, r3, #268435456	; 0x10000000
+ 800b95a:	f023 0301 	bic.w	r3, r3, #1
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800b95e:	3208      	adds	r2, #8
+ 800b960:	e842 3100 	strex	r1, r3, [r2]
+ 800b964:	2900      	cmp	r1, #0
+ 800b966:	d1f1      	bne.n	800b94c <UART_EndRxTransfer+0x12>
+
+  /* In case of reception waiting for IDLE event, disable also the IDLE IE interrupt source */
+  if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE)
+ 800b968:	6ec3      	ldr	r3, [r0, #108]	; 0x6c
+ 800b96a:	2b01      	cmp	r3, #1
+ 800b96c:	d006      	beq.n	800b97c <UART_EndRxTransfer+0x42>
+  {
+    ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE);
+  }
+
+  /* At end of Rx process, restore huart->RxState to Ready */
+  huart->RxState = HAL_UART_STATE_READY;
+ 800b96e:	2320      	movs	r3, #32
+ 800b970:	f8c0 308c 	str.w	r3, [r0, #140]	; 0x8c
+  huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
+ 800b974:	2300      	movs	r3, #0
+ 800b976:	66c3      	str	r3, [r0, #108]	; 0x6c
+
+  /* Reset RxIsr function pointer */
+  huart->RxISR = NULL;
+ 800b978:	6743      	str	r3, [r0, #116]	; 0x74
+}
+ 800b97a:	4770      	bx	lr
+    ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE);
+ 800b97c:	6802      	ldr	r2, [r0, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800b97e:	e852 3f00 	ldrex	r3, [r2]
+ 800b982:	f023 0310 	bic.w	r3, r3, #16
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800b986:	e842 3100 	strex	r1, r3, [r2]
+ 800b98a:	2900      	cmp	r1, #0
+ 800b98c:	d1f6      	bne.n	800b97c <UART_EndRxTransfer+0x42>
+ 800b98e:	e7ee      	b.n	800b96e <UART_EndRxTransfer+0x34>
+
+0800b990 <HAL_UART_Transmit_DMA>:
+{
+ 800b990:	4613      	mov	r3, r2
+  if (huart->gState == HAL_UART_STATE_READY)
+ 800b992:	f8d0 2088 	ldr.w	r2, [r0, #136]	; 0x88
+ 800b996:	2a20      	cmp	r2, #32
+ 800b998:	d13d      	bne.n	800ba16 <HAL_UART_Transmit_DMA+0x86>
+{
+ 800b99a:	b510      	push	{r4, lr}
+ 800b99c:	4604      	mov	r4, r0
+    if ((pData == NULL) || (Size == 0U))
+ 800b99e:	2900      	cmp	r1, #0
+ 800b9a0:	d03b      	beq.n	800ba1a <HAL_UART_Transmit_DMA+0x8a>
+ 800b9a2:	2b00      	cmp	r3, #0
+ 800b9a4:	d03b      	beq.n	800ba1e <HAL_UART_Transmit_DMA+0x8e>
+    huart->pTxBuffPtr  = pData;
+ 800b9a6:	6501      	str	r1, [r0, #80]	; 0x50
+    huart->TxXferSize  = Size;
+ 800b9a8:	f8a0 3054 	strh.w	r3, [r0, #84]	; 0x54
+    huart->TxXferCount = Size;
+ 800b9ac:	f8a0 3056 	strh.w	r3, [r0, #86]	; 0x56
+    huart->ErrorCode = HAL_UART_ERROR_NONE;
+ 800b9b0:	2200      	movs	r2, #0
+ 800b9b2:	f8c0 2090 	str.w	r2, [r0, #144]	; 0x90
+    huart->gState = HAL_UART_STATE_BUSY_TX;
+ 800b9b6:	2221      	movs	r2, #33	; 0x21
+ 800b9b8:	f8c0 2088 	str.w	r2, [r0, #136]	; 0x88
+    if (huart->hdmatx != NULL)
+ 800b9bc:	6fc2      	ldr	r2, [r0, #124]	; 0x7c
+ 800b9be:	b1ca      	cbz	r2, 800b9f4 <HAL_UART_Transmit_DMA+0x64>
+      huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt;
+ 800b9c0:	4918      	ldr	r1, [pc, #96]	; (800ba24 <HAL_UART_Transmit_DMA+0x94>)
+ 800b9c2:	62d1      	str	r1, [r2, #44]	; 0x2c
+      huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt;
+ 800b9c4:	6fc2      	ldr	r2, [r0, #124]	; 0x7c
+ 800b9c6:	4918      	ldr	r1, [pc, #96]	; (800ba28 <HAL_UART_Transmit_DMA+0x98>)
+ 800b9c8:	6311      	str	r1, [r2, #48]	; 0x30
+      huart->hdmatx->XferErrorCallback = UART_DMAError;
+ 800b9ca:	6fc2      	ldr	r2, [r0, #124]	; 0x7c
+ 800b9cc:	4917      	ldr	r1, [pc, #92]	; (800ba2c <HAL_UART_Transmit_DMA+0x9c>)
+ 800b9ce:	6351      	str	r1, [r2, #52]	; 0x34
+      huart->hdmatx->XferAbortCallback = NULL;
+ 800b9d0:	6fc2      	ldr	r2, [r0, #124]	; 0x7c
+ 800b9d2:	2100      	movs	r1, #0
+ 800b9d4:	6391      	str	r1, [r2, #56]	; 0x38
+      if (HAL_DMA_Start_IT(huart->hdmatx, (uint32_t)huart->pTxBuffPtr, (uint32_t)&huart->Instance->TDR, Size) != HAL_OK)
+ 800b9d6:	6802      	ldr	r2, [r0, #0]
+ 800b9d8:	3228      	adds	r2, #40	; 0x28
+ 800b9da:	6d01      	ldr	r1, [r0, #80]	; 0x50
+ 800b9dc:	6fc0      	ldr	r0, [r0, #124]	; 0x7c
+ 800b9de:	f7fd fab3 	bl	8008f48 <HAL_DMA_Start_IT>
+ 800b9e2:	b138      	cbz	r0, 800b9f4 <HAL_UART_Transmit_DMA+0x64>
+        huart->ErrorCode = HAL_UART_ERROR_DMA;
+ 800b9e4:	2310      	movs	r3, #16
+ 800b9e6:	f8c4 3090 	str.w	r3, [r4, #144]	; 0x90
+        huart->gState = HAL_UART_STATE_READY;
+ 800b9ea:	2320      	movs	r3, #32
+ 800b9ec:	f8c4 3088 	str.w	r3, [r4, #136]	; 0x88
+        return HAL_ERROR;
+ 800b9f0:	2001      	movs	r0, #1
+ 800b9f2:	e00f      	b.n	800ba14 <HAL_UART_Transmit_DMA+0x84>
+    __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_TCF);
+ 800b9f4:	6823      	ldr	r3, [r4, #0]
+ 800b9f6:	2240      	movs	r2, #64	; 0x40
+ 800b9f8:	621a      	str	r2, [r3, #32]
+    ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT);
+ 800b9fa:	6822      	ldr	r2, [r4, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800b9fc:	f102 0308 	add.w	r3, r2, #8
+ 800ba00:	e853 3f00 	ldrex	r3, [r3]
+ 800ba04:	f043 0380 	orr.w	r3, r3, #128	; 0x80
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800ba08:	3208      	adds	r2, #8
+ 800ba0a:	e842 3100 	strex	r1, r3, [r2]
+ 800ba0e:	2900      	cmp	r1, #0
+ 800ba10:	d1f3      	bne.n	800b9fa <HAL_UART_Transmit_DMA+0x6a>
+    return HAL_OK;
+ 800ba12:	2000      	movs	r0, #0
+}
+ 800ba14:	bd10      	pop	{r4, pc}
+    return HAL_BUSY;
+ 800ba16:	2002      	movs	r0, #2
+}
+ 800ba18:	4770      	bx	lr
+      return HAL_ERROR;
+ 800ba1a:	2001      	movs	r0, #1
+ 800ba1c:	e7fa      	b.n	800ba14 <HAL_UART_Transmit_DMA+0x84>
+ 800ba1e:	2001      	movs	r0, #1
+ 800ba20:	e7f8      	b.n	800ba14 <HAL_UART_Transmit_DMA+0x84>
+ 800ba22:	bf00      	nop
+ 800ba24:	0800ba31 	.word	0x0800ba31
+ 800ba28:	0800ba9f 	.word	0x0800ba9f
+ 800ba2c:	0800baab 	.word	0x0800baab
+
+0800ba30 <UART_DMATransmitCplt>:
+  * @brief DMA UART transmit process complete callback.
+  * @param hdma DMA handle.
+  * @retval None
+  */
+static void UART_DMATransmitCplt(DMA_HandleTypeDef *hdma)
+{
+ 800ba30:	b508      	push	{r3, lr}
+ 800ba32:	4603      	mov	r3, r0
+  UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent);
+ 800ba34:	6a80      	ldr	r0, [r0, #40]	; 0x28
+
+  /* DMA Normal mode */
+  if (HAL_IS_BIT_CLR(hdma->Instance->CCR, DMA_CCR_CIRC))
+ 800ba36:	681b      	ldr	r3, [r3, #0]
+ 800ba38:	681b      	ldr	r3, [r3, #0]
+ 800ba3a:	f013 0f20 	tst.w	r3, #32
+ 800ba3e:	d118      	bne.n	800ba72 <UART_DMATransmitCplt+0x42>
+  {
+    huart->TxXferCount = 0U;
+ 800ba40:	2300      	movs	r3, #0
+ 800ba42:	f8a0 3056 	strh.w	r3, [r0, #86]	; 0x56
+
+    /* Disable the DMA transfer for transmit request by resetting the DMAT bit
+       in the UART CR3 register */
+    ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT);
+ 800ba46:	6802      	ldr	r2, [r0, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800ba48:	f102 0308 	add.w	r3, r2, #8
+ 800ba4c:	e853 3f00 	ldrex	r3, [r3]
+ 800ba50:	f023 0380 	bic.w	r3, r3, #128	; 0x80
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800ba54:	3208      	adds	r2, #8
+ 800ba56:	e842 3100 	strex	r1, r3, [r2]
+ 800ba5a:	2900      	cmp	r1, #0
+ 800ba5c:	d1f3      	bne.n	800ba46 <UART_DMATransmitCplt+0x16>
+
+    /* Enable the UART Transmit Complete Interrupt */
+    ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE);
+ 800ba5e:	6802      	ldr	r2, [r0, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800ba60:	e852 3f00 	ldrex	r3, [r2]
+ 800ba64:	f043 0340 	orr.w	r3, r3, #64	; 0x40
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800ba68:	e842 3100 	strex	r1, r3, [r2]
+ 800ba6c:	2900      	cmp	r1, #0
+ 800ba6e:	d1f6      	bne.n	800ba5e <UART_DMATransmitCplt+0x2e>
+#else
+    /*Call legacy weak Tx complete callback*/
+    HAL_UART_TxCpltCallback(huart);
+#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
+  }
+}
+ 800ba70:	bd08      	pop	{r3, pc}
+    HAL_UART_TxCpltCallback(huart);
+ 800ba72:	f7f7 fc4b 	bl	800330c <HAL_UART_TxCpltCallback>
+}
+ 800ba76:	e7fb      	b.n	800ba70 <UART_DMATransmitCplt+0x40>
+
+0800ba78 <UART_EndTransmit_IT>:
+  * @param  huart pointer to a UART_HandleTypeDef structure that contains
+  *                the configuration information for the specified UART module.
+  * @retval None
+  */
+static void UART_EndTransmit_IT(UART_HandleTypeDef *huart)
+{
+ 800ba78:	b508      	push	{r3, lr}
+  /* Disable the UART Transmit Complete Interrupt */
+  ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TCIE);
+ 800ba7a:	6802      	ldr	r2, [r0, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800ba7c:	e852 3f00 	ldrex	r3, [r2]
+ 800ba80:	f023 0340 	bic.w	r3, r3, #64	; 0x40
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800ba84:	e842 3100 	strex	r1, r3, [r2]
+ 800ba88:	2900      	cmp	r1, #0
+ 800ba8a:	d1f6      	bne.n	800ba7a <UART_EndTransmit_IT+0x2>
+
+  /* Tx process is ended, restore huart->gState to Ready */
+  huart->gState = HAL_UART_STATE_READY;
+ 800ba8c:	2320      	movs	r3, #32
+ 800ba8e:	f8c0 3088 	str.w	r3, [r0, #136]	; 0x88
+
+  /* Cleat TxISR function pointer */
+  huart->TxISR = NULL;
+ 800ba92:	2300      	movs	r3, #0
+ 800ba94:	6783      	str	r3, [r0, #120]	; 0x78
+#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
+  /*Call registered Tx complete callback*/
+  huart->TxCpltCallback(huart);
+#else
+  /*Call legacy weak Tx complete callback*/
+  HAL_UART_TxCpltCallback(huart);
+ 800ba96:	f7f7 fc39 	bl	800330c <HAL_UART_TxCpltCallback>
+#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
+}
+ 800ba9a:	bd08      	pop	{r3, pc}
+
+0800ba9c <HAL_UART_TxHalfCpltCallback>:
+}
+ 800ba9c:	4770      	bx	lr
+
+0800ba9e <UART_DMATxHalfCplt>:
+{
+ 800ba9e:	b508      	push	{r3, lr}
+  HAL_UART_TxHalfCpltCallback(huart);
+ 800baa0:	6a80      	ldr	r0, [r0, #40]	; 0x28
+ 800baa2:	f7ff fffb 	bl	800ba9c <HAL_UART_TxHalfCpltCallback>
+}
+ 800baa6:	bd08      	pop	{r3, pc}
+
+0800baa8 <HAL_UART_ErrorCallback>:
+}
+ 800baa8:	4770      	bx	lr
+
+0800baaa <UART_DMAError>:
+{
+ 800baaa:	b538      	push	{r3, r4, r5, lr}
+  UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent);
+ 800baac:	6a84      	ldr	r4, [r0, #40]	; 0x28
+  const HAL_UART_StateTypeDef gstate = huart->gState;
+ 800baae:	f8d4 2088 	ldr.w	r2, [r4, #136]	; 0x88
+  const HAL_UART_StateTypeDef rxstate = huart->RxState;
+ 800bab2:	f8d4 508c 	ldr.w	r5, [r4, #140]	; 0x8c
+  if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) &&
+ 800bab6:	6823      	ldr	r3, [r4, #0]
+ 800bab8:	689b      	ldr	r3, [r3, #8]
+ 800baba:	f013 0f80 	tst.w	r3, #128	; 0x80
+ 800babe:	d001      	beq.n	800bac4 <UART_DMAError+0x1a>
+ 800bac0:	2a21      	cmp	r2, #33	; 0x21
+ 800bac2:	d010      	beq.n	800bae6 <UART_DMAError+0x3c>
+  if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) &&
+ 800bac4:	6823      	ldr	r3, [r4, #0]
+ 800bac6:	689b      	ldr	r3, [r3, #8]
+ 800bac8:	f013 0f40 	tst.w	r3, #64	; 0x40
+ 800bacc:	d001      	beq.n	800bad2 <UART_DMAError+0x28>
+ 800bace:	2d22      	cmp	r5, #34	; 0x22
+ 800bad0:	d010      	beq.n	800baf4 <UART_DMAError+0x4a>
+  huart->ErrorCode |= HAL_UART_ERROR_DMA;
+ 800bad2:	f8d4 3090 	ldr.w	r3, [r4, #144]	; 0x90
+ 800bad6:	f043 0310 	orr.w	r3, r3, #16
+ 800bada:	f8c4 3090 	str.w	r3, [r4, #144]	; 0x90
+  HAL_UART_ErrorCallback(huart);
+ 800bade:	4620      	mov	r0, r4
+ 800bae0:	f7ff ffe2 	bl	800baa8 <HAL_UART_ErrorCallback>
+}
+ 800bae4:	bd38      	pop	{r3, r4, r5, pc}
+    huart->TxXferCount = 0U;
+ 800bae6:	2300      	movs	r3, #0
+ 800bae8:	f8a4 3056 	strh.w	r3, [r4, #86]	; 0x56
+    UART_EndTxTransfer(huart);
+ 800baec:	4620      	mov	r0, r4
+ 800baee:	f7ff ff0b 	bl	800b908 <UART_EndTxTransfer>
+ 800baf2:	e7e7      	b.n	800bac4 <UART_DMAError+0x1a>
+    huart->RxXferCount = 0U;
+ 800baf4:	2300      	movs	r3, #0
+ 800baf6:	f8a4 305e 	strh.w	r3, [r4, #94]	; 0x5e
+    UART_EndRxTransfer(huart);
+ 800bafa:	4620      	mov	r0, r4
+ 800bafc:	f7ff ff1d 	bl	800b93a <UART_EndRxTransfer>
+ 800bb00:	e7e7      	b.n	800bad2 <UART_DMAError+0x28>
+
+0800bb02 <UART_DMAAbortOnError>:
+{
+ 800bb02:	b508      	push	{r3, lr}
+  UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent);
+ 800bb04:	6a80      	ldr	r0, [r0, #40]	; 0x28
+  huart->RxXferCount = 0U;
+ 800bb06:	2300      	movs	r3, #0
+ 800bb08:	f8a0 305e 	strh.w	r3, [r0, #94]	; 0x5e
+  huart->TxXferCount = 0U;
+ 800bb0c:	f8a0 3056 	strh.w	r3, [r0, #86]	; 0x56
+  HAL_UART_ErrorCallback(huart);
+ 800bb10:	f7ff ffca 	bl	800baa8 <HAL_UART_ErrorCallback>
+}
+ 800bb14:	bd08      	pop	{r3, pc}
+
+0800bb16 <HAL_UARTEx_RxEventCallback>:
+}
+ 800bb16:	4770      	bx	lr
+
+0800bb18 <HAL_UART_IRQHandler>:
+{
+ 800bb18:	b570      	push	{r4, r5, r6, lr}
+ 800bb1a:	4604      	mov	r4, r0
+  uint32_t isrflags   = READ_REG(huart->Instance->ISR);
+ 800bb1c:	6801      	ldr	r1, [r0, #0]
+ 800bb1e:	69cb      	ldr	r3, [r1, #28]
+  uint32_t cr1its     = READ_REG(huart->Instance->CR1);
+ 800bb20:	6808      	ldr	r0, [r1, #0]
+  uint32_t cr3its     = READ_REG(huart->Instance->CR3);
+ 800bb22:	688d      	ldr	r5, [r1, #8]
+  errorflags = (isrflags & (uint32_t)(USART_ISR_PE | USART_ISR_FE | USART_ISR_ORE | USART_ISR_NE | USART_ISR_RTOF));
+ 800bb24:	f640 020f 	movw	r2, #2063	; 0x80f
+  if (errorflags == 0U)
+ 800bb28:	401a      	ands	r2, r3
+ 800bb2a:	d108      	bne.n	800bb3e <HAL_UART_IRQHandler+0x26>
+    if (((isrflags & USART_ISR_RXNE_RXFNE) != 0U)
+ 800bb2c:	f013 0f20 	tst.w	r3, #32
+ 800bb30:	d005      	beq.n	800bb3e <HAL_UART_IRQHandler+0x26>
+        && (((cr1its & USART_CR1_RXNEIE_RXFNEIE) != 0U)
+ 800bb32:	f010 0f20 	tst.w	r0, #32
+ 800bb36:	d134      	bne.n	800bba2 <HAL_UART_IRQHandler+0x8a>
+            || ((cr3its & USART_CR3_RXFTIE) != 0U)))
+ 800bb38:	f015 5f80 	tst.w	r5, #268435456	; 0x10000000
+ 800bb3c:	d131      	bne.n	800bba2 <HAL_UART_IRQHandler+0x8a>
+  if ((errorflags != 0U)
+ 800bb3e:	b12a      	cbz	r2, 800bb4c <HAL_UART_IRQHandler+0x34>
+      && ((((cr3its & (USART_CR3_RXFTIE | USART_CR3_EIE)) != 0U)
+ 800bb40:	4a99      	ldr	r2, [pc, #612]	; (800bda8 <HAL_UART_IRQHandler+0x290>)
+ 800bb42:	402a      	ands	r2, r5
+ 800bb44:	d133      	bne.n	800bbae <HAL_UART_IRQHandler+0x96>
+           || ((cr1its & (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_RTOIE)) != 0U))))
+ 800bb46:	4e99      	ldr	r6, [pc, #612]	; (800bdac <HAL_UART_IRQHandler+0x294>)
+ 800bb48:	4230      	tst	r0, r6
+ 800bb4a:	d130      	bne.n	800bbae <HAL_UART_IRQHandler+0x96>
+  if ((huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE)
+ 800bb4c:	6ee2      	ldr	r2, [r4, #108]	; 0x6c
+ 800bb4e:	2a01      	cmp	r2, #1
+ 800bb50:	f000 80c6 	beq.w	800bce0 <HAL_UART_IRQHandler+0x1c8>
+  if (((isrflags & USART_ISR_WUF) != 0U) && ((cr3its & USART_CR3_WUFIE) != 0U))
+ 800bb54:	f413 1f80 	tst.w	r3, #1048576	; 0x100000
+ 800bb58:	d003      	beq.n	800bb62 <HAL_UART_IRQHandler+0x4a>
+ 800bb5a:	f415 0f80 	tst.w	r5, #4194304	; 0x400000
+ 800bb5e:	f040 8165 	bne.w	800be2c <HAL_UART_IRQHandler+0x314>
+  if (((isrflags & USART_ISR_TXE_TXFNF) != 0U)
+ 800bb62:	f013 0f80 	tst.w	r3, #128	; 0x80
+ 800bb66:	d007      	beq.n	800bb78 <HAL_UART_IRQHandler+0x60>
+      && (((cr1its & USART_CR1_TXEIE_TXFNFIE) != 0U)
+ 800bb68:	f010 0f80 	tst.w	r0, #128	; 0x80
+ 800bb6c:	f040 8165 	bne.w	800be3a <HAL_UART_IRQHandler+0x322>
+          || ((cr3its & USART_CR3_TXFTIE) != 0U)))
+ 800bb70:	f415 0f00 	tst.w	r5, #8388608	; 0x800000
+ 800bb74:	f040 8161 	bne.w	800be3a <HAL_UART_IRQHandler+0x322>
+  if (((isrflags & USART_ISR_TC) != 0U) && ((cr1its & USART_CR1_TCIE) != 0U))
+ 800bb78:	f013 0f40 	tst.w	r3, #64	; 0x40
+ 800bb7c:	d003      	beq.n	800bb86 <HAL_UART_IRQHandler+0x6e>
+ 800bb7e:	f010 0f40 	tst.w	r0, #64	; 0x40
+ 800bb82:	f040 8161 	bne.w	800be48 <HAL_UART_IRQHandler+0x330>
+  if (((isrflags & USART_ISR_TXFE) != 0U) && ((cr1its & USART_CR1_TXFEIE) != 0U))
+ 800bb86:	f413 0f00 	tst.w	r3, #8388608	; 0x800000
+ 800bb8a:	d003      	beq.n	800bb94 <HAL_UART_IRQHandler+0x7c>
+ 800bb8c:	f010 4f80 	tst.w	r0, #1073741824	; 0x40000000
+ 800bb90:	f040 815e 	bne.w	800be50 <HAL_UART_IRQHandler+0x338>
+  if (((isrflags & USART_ISR_RXFF) != 0U) && ((cr1its & USART_CR1_RXFFIE) != 0U))
+ 800bb94:	f013 7f80 	tst.w	r3, #16777216	; 0x1000000
+ 800bb98:	d002      	beq.n	800bba0 <HAL_UART_IRQHandler+0x88>
+ 800bb9a:	2800      	cmp	r0, #0
+ 800bb9c:	f2c0 815c 	blt.w	800be58 <HAL_UART_IRQHandler+0x340>
+}
+ 800bba0:	bd70      	pop	{r4, r5, r6, pc}
+      if (huart->RxISR != NULL)
+ 800bba2:	6f63      	ldr	r3, [r4, #116]	; 0x74
+ 800bba4:	2b00      	cmp	r3, #0
+ 800bba6:	d0fb      	beq.n	800bba0 <HAL_UART_IRQHandler+0x88>
+        huart->RxISR(huart);
+ 800bba8:	4620      	mov	r0, r4
+ 800bbaa:	4798      	blx	r3
+      return;
+ 800bbac:	e7f8      	b.n	800bba0 <HAL_UART_IRQHandler+0x88>
+    if (((isrflags & USART_ISR_PE) != 0U) && ((cr1its & USART_CR1_PEIE) != 0U))
+ 800bbae:	f013 0f01 	tst.w	r3, #1
+ 800bbb2:	d009      	beq.n	800bbc8 <HAL_UART_IRQHandler+0xb0>
+ 800bbb4:	f410 7f80 	tst.w	r0, #256	; 0x100
+ 800bbb8:	d006      	beq.n	800bbc8 <HAL_UART_IRQHandler+0xb0>
+      __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF);
+ 800bbba:	2601      	movs	r6, #1
+ 800bbbc:	620e      	str	r6, [r1, #32]
+      huart->ErrorCode |= HAL_UART_ERROR_PE;
+ 800bbbe:	f8d4 1090 	ldr.w	r1, [r4, #144]	; 0x90
+ 800bbc2:	4331      	orrs	r1, r6
+ 800bbc4:	f8c4 1090 	str.w	r1, [r4, #144]	; 0x90
+    if (((isrflags & USART_ISR_FE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U))
+ 800bbc8:	f013 0f02 	tst.w	r3, #2
+ 800bbcc:	d00b      	beq.n	800bbe6 <HAL_UART_IRQHandler+0xce>
+ 800bbce:	f015 0f01 	tst.w	r5, #1
+ 800bbd2:	d008      	beq.n	800bbe6 <HAL_UART_IRQHandler+0xce>
+      __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF);
+ 800bbd4:	6821      	ldr	r1, [r4, #0]
+ 800bbd6:	2602      	movs	r6, #2
+ 800bbd8:	620e      	str	r6, [r1, #32]
+      huart->ErrorCode |= HAL_UART_ERROR_FE;
+ 800bbda:	f8d4 1090 	ldr.w	r1, [r4, #144]	; 0x90
+ 800bbde:	f041 0104 	orr.w	r1, r1, #4
+ 800bbe2:	f8c4 1090 	str.w	r1, [r4, #144]	; 0x90
+    if (((isrflags & USART_ISR_NE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U))
+ 800bbe6:	f013 0f04 	tst.w	r3, #4
+ 800bbea:	d00b      	beq.n	800bc04 <HAL_UART_IRQHandler+0xec>
+ 800bbec:	f015 0f01 	tst.w	r5, #1
+ 800bbf0:	d008      	beq.n	800bc04 <HAL_UART_IRQHandler+0xec>
+      __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF);
+ 800bbf2:	6821      	ldr	r1, [r4, #0]
+ 800bbf4:	2604      	movs	r6, #4
+ 800bbf6:	620e      	str	r6, [r1, #32]
+      huart->ErrorCode |= HAL_UART_ERROR_NE;
+ 800bbf8:	f8d4 1090 	ldr.w	r1, [r4, #144]	; 0x90
+ 800bbfc:	f041 0102 	orr.w	r1, r1, #2
+ 800bc00:	f8c4 1090 	str.w	r1, [r4, #144]	; 0x90
+    if (((isrflags & USART_ISR_ORE) != 0U)
+ 800bc04:	f013 0f08 	tst.w	r3, #8
+ 800bc08:	d00b      	beq.n	800bc22 <HAL_UART_IRQHandler+0x10a>
+        && (((cr1its & USART_CR1_RXNEIE_RXFNEIE) != 0U) ||
+ 800bc0a:	f010 0f20 	tst.w	r0, #32
+ 800bc0e:	d100      	bne.n	800bc12 <HAL_UART_IRQHandler+0xfa>
+ 800bc10:	b13a      	cbz	r2, 800bc22 <HAL_UART_IRQHandler+0x10a>
+      __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF);
+ 800bc12:	6822      	ldr	r2, [r4, #0]
+ 800bc14:	2108      	movs	r1, #8
+ 800bc16:	6211      	str	r1, [r2, #32]
+      huart->ErrorCode |= HAL_UART_ERROR_ORE;
+ 800bc18:	f8d4 2090 	ldr.w	r2, [r4, #144]	; 0x90
+ 800bc1c:	430a      	orrs	r2, r1
+ 800bc1e:	f8c4 2090 	str.w	r2, [r4, #144]	; 0x90
+    if (((isrflags & USART_ISR_RTOF) != 0U) && ((cr1its & USART_CR1_RTOIE) != 0U))
+ 800bc22:	f413 6f00 	tst.w	r3, #2048	; 0x800
+ 800bc26:	d00c      	beq.n	800bc42 <HAL_UART_IRQHandler+0x12a>
+ 800bc28:	f010 6f80 	tst.w	r0, #67108864	; 0x4000000
+ 800bc2c:	d009      	beq.n	800bc42 <HAL_UART_IRQHandler+0x12a>
+      __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF);
+ 800bc2e:	6822      	ldr	r2, [r4, #0]
+ 800bc30:	f44f 6100 	mov.w	r1, #2048	; 0x800
+ 800bc34:	6211      	str	r1, [r2, #32]
+      huart->ErrorCode |= HAL_UART_ERROR_RTO;
+ 800bc36:	f8d4 2090 	ldr.w	r2, [r4, #144]	; 0x90
+ 800bc3a:	f042 0220 	orr.w	r2, r2, #32
+ 800bc3e:	f8c4 2090 	str.w	r2, [r4, #144]	; 0x90
+    if (huart->ErrorCode != HAL_UART_ERROR_NONE)
+ 800bc42:	f8d4 2090 	ldr.w	r2, [r4, #144]	; 0x90
+ 800bc46:	2a00      	cmp	r2, #0
+ 800bc48:	d0aa      	beq.n	800bba0 <HAL_UART_IRQHandler+0x88>
+      if (((isrflags & USART_ISR_RXNE_RXFNE) != 0U)
+ 800bc4a:	f013 0f20 	tst.w	r3, #32
+ 800bc4e:	d009      	beq.n	800bc64 <HAL_UART_IRQHandler+0x14c>
+          && (((cr1its & USART_CR1_RXNEIE_RXFNEIE) != 0U)
+ 800bc50:	f010 0f20 	tst.w	r0, #32
+ 800bc54:	d102      	bne.n	800bc5c <HAL_UART_IRQHandler+0x144>
+              || ((cr3its & USART_CR3_RXFTIE) != 0U)))
+ 800bc56:	f015 5f80 	tst.w	r5, #268435456	; 0x10000000
+ 800bc5a:	d003      	beq.n	800bc64 <HAL_UART_IRQHandler+0x14c>
+        if (huart->RxISR != NULL)
+ 800bc5c:	6f63      	ldr	r3, [r4, #116]	; 0x74
+ 800bc5e:	b10b      	cbz	r3, 800bc64 <HAL_UART_IRQHandler+0x14c>
+          huart->RxISR(huart);
+ 800bc60:	4620      	mov	r0, r4
+ 800bc62:	4798      	blx	r3
+      errorcode = huart->ErrorCode;
+ 800bc64:	f8d4 2090 	ldr.w	r2, [r4, #144]	; 0x90
+      if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) ||
+ 800bc68:	6823      	ldr	r3, [r4, #0]
+ 800bc6a:	689b      	ldr	r3, [r3, #8]
+ 800bc6c:	f013 0f40 	tst.w	r3, #64	; 0x40
+ 800bc70:	d102      	bne.n	800bc78 <HAL_UART_IRQHandler+0x160>
+ 800bc72:	f012 0f28 	tst.w	r2, #40	; 0x28
+ 800bc76:	d02c      	beq.n	800bcd2 <HAL_UART_IRQHandler+0x1ba>
+        UART_EndRxTransfer(huart);
+ 800bc78:	4620      	mov	r0, r4
+ 800bc7a:	f7ff fe5e 	bl	800b93a <UART_EndRxTransfer>
+        if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
+ 800bc7e:	6823      	ldr	r3, [r4, #0]
+ 800bc80:	689b      	ldr	r3, [r3, #8]
+ 800bc82:	f013 0f40 	tst.w	r3, #64	; 0x40
+ 800bc86:	d020      	beq.n	800bcca <HAL_UART_IRQHandler+0x1b2>
+          ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
+ 800bc88:	6822      	ldr	r2, [r4, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800bc8a:	f102 0308 	add.w	r3, r2, #8
+ 800bc8e:	e853 3f00 	ldrex	r3, [r3]
+ 800bc92:	f023 0340 	bic.w	r3, r3, #64	; 0x40
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800bc96:	3208      	adds	r2, #8
+ 800bc98:	e842 3100 	strex	r1, r3, [r2]
+ 800bc9c:	2900      	cmp	r1, #0
+ 800bc9e:	d1f3      	bne.n	800bc88 <HAL_UART_IRQHandler+0x170>
+          if (huart->hdmarx != NULL)
+ 800bca0:	f8d4 3080 	ldr.w	r3, [r4, #128]	; 0x80
+ 800bca4:	b16b      	cbz	r3, 800bcc2 <HAL_UART_IRQHandler+0x1aa>
+            huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError;
+ 800bca6:	4a42      	ldr	r2, [pc, #264]	; (800bdb0 <HAL_UART_IRQHandler+0x298>)
+ 800bca8:	639a      	str	r2, [r3, #56]	; 0x38
+            if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK)
+ 800bcaa:	f8d4 0080 	ldr.w	r0, [r4, #128]	; 0x80
+ 800bcae:	f7fd f9d1 	bl	8009054 <HAL_DMA_Abort_IT>
+ 800bcb2:	2800      	cmp	r0, #0
+ 800bcb4:	f43f af74 	beq.w	800bba0 <HAL_UART_IRQHandler+0x88>
+              huart->hdmarx->XferAbortCallback(huart->hdmarx);
+ 800bcb8:	f8d4 0080 	ldr.w	r0, [r4, #128]	; 0x80
+ 800bcbc:	6b83      	ldr	r3, [r0, #56]	; 0x38
+ 800bcbe:	4798      	blx	r3
+ 800bcc0:	e76e      	b.n	800bba0 <HAL_UART_IRQHandler+0x88>
+            HAL_UART_ErrorCallback(huart);
+ 800bcc2:	4620      	mov	r0, r4
+ 800bcc4:	f7ff fef0 	bl	800baa8 <HAL_UART_ErrorCallback>
+ 800bcc8:	e76a      	b.n	800bba0 <HAL_UART_IRQHandler+0x88>
+          HAL_UART_ErrorCallback(huart);
+ 800bcca:	4620      	mov	r0, r4
+ 800bccc:	f7ff feec 	bl	800baa8 <HAL_UART_ErrorCallback>
+ 800bcd0:	e766      	b.n	800bba0 <HAL_UART_IRQHandler+0x88>
+        HAL_UART_ErrorCallback(huart);
+ 800bcd2:	4620      	mov	r0, r4
+ 800bcd4:	f7ff fee8 	bl	800baa8 <HAL_UART_ErrorCallback>
+        huart->ErrorCode = HAL_UART_ERROR_NONE;
+ 800bcd8:	2300      	movs	r3, #0
+ 800bcda:	f8c4 3090 	str.w	r3, [r4, #144]	; 0x90
+    return;
+ 800bcde:	e75f      	b.n	800bba0 <HAL_UART_IRQHandler+0x88>
+      && ((isrflags & USART_ISR_IDLE) != 0U)
+ 800bce0:	f013 0f10 	tst.w	r3, #16
+ 800bce4:	f43f af36 	beq.w	800bb54 <HAL_UART_IRQHandler+0x3c>
+      && ((cr1its & USART_ISR_IDLE) != 0U))
+ 800bce8:	f010 0f10 	tst.w	r0, #16
+ 800bcec:	f43f af32 	beq.w	800bb54 <HAL_UART_IRQHandler+0x3c>
+    __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF);
+ 800bcf0:	2310      	movs	r3, #16
+ 800bcf2:	620b      	str	r3, [r1, #32]
+    if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
+ 800bcf4:	6823      	ldr	r3, [r4, #0]
+ 800bcf6:	689b      	ldr	r3, [r3, #8]
+ 800bcf8:	f013 0f40 	tst.w	r3, #64	; 0x40
+ 800bcfc:	d05a      	beq.n	800bdb4 <HAL_UART_IRQHandler+0x29c>
+      uint16_t nb_remaining_rx_data = (uint16_t) __HAL_DMA_GET_COUNTER(huart->hdmarx);
+ 800bcfe:	f8d4 2080 	ldr.w	r2, [r4, #128]	; 0x80
+ 800bd02:	6813      	ldr	r3, [r2, #0]
+ 800bd04:	685b      	ldr	r3, [r3, #4]
+ 800bd06:	b29b      	uxth	r3, r3
+      if ((nb_remaining_rx_data > 0U)
+ 800bd08:	2b00      	cmp	r3, #0
+ 800bd0a:	f43f af49 	beq.w	800bba0 <HAL_UART_IRQHandler+0x88>
+          && (nb_remaining_rx_data < huart->RxXferSize))
+ 800bd0e:	f8b4 105c 	ldrh.w	r1, [r4, #92]	; 0x5c
+ 800bd12:	4299      	cmp	r1, r3
+ 800bd14:	f67f af44 	bls.w	800bba0 <HAL_UART_IRQHandler+0x88>
+        huart->RxXferCount = nb_remaining_rx_data;
+ 800bd18:	f8a4 305e 	strh.w	r3, [r4, #94]	; 0x5e
+        if (HAL_IS_BIT_CLR(huart->hdmarx->Instance->CCR, DMA_CCR_CIRC))
+ 800bd1c:	6813      	ldr	r3, [r2, #0]
+ 800bd1e:	681b      	ldr	r3, [r3, #0]
+ 800bd20:	f013 0f20 	tst.w	r3, #32
+ 800bd24:	d132      	bne.n	800bd8c <HAL_UART_IRQHandler+0x274>
+          ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE);
+ 800bd26:	6822      	ldr	r2, [r4, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800bd28:	e852 3f00 	ldrex	r3, [r2]
+ 800bd2c:	f423 7380 	bic.w	r3, r3, #256	; 0x100
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800bd30:	e842 3100 	strex	r1, r3, [r2]
+ 800bd34:	2900      	cmp	r1, #0
+ 800bd36:	d1f6      	bne.n	800bd26 <HAL_UART_IRQHandler+0x20e>
+          ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
+ 800bd38:	6822      	ldr	r2, [r4, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800bd3a:	f102 0308 	add.w	r3, r2, #8
+ 800bd3e:	e853 3f00 	ldrex	r3, [r3]
+ 800bd42:	f023 0301 	bic.w	r3, r3, #1
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800bd46:	3208      	adds	r2, #8
+ 800bd48:	e842 3100 	strex	r1, r3, [r2]
+ 800bd4c:	2900      	cmp	r1, #0
+ 800bd4e:	d1f3      	bne.n	800bd38 <HAL_UART_IRQHandler+0x220>
+          ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
+ 800bd50:	6822      	ldr	r2, [r4, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800bd52:	f102 0308 	add.w	r3, r2, #8
+ 800bd56:	e853 3f00 	ldrex	r3, [r3]
+ 800bd5a:	f023 0340 	bic.w	r3, r3, #64	; 0x40
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800bd5e:	3208      	adds	r2, #8
+ 800bd60:	e842 3100 	strex	r1, r3, [r2]
+ 800bd64:	2900      	cmp	r1, #0
+ 800bd66:	d1f3      	bne.n	800bd50 <HAL_UART_IRQHandler+0x238>
+          huart->RxState = HAL_UART_STATE_READY;
+ 800bd68:	2320      	movs	r3, #32
+ 800bd6a:	f8c4 308c 	str.w	r3, [r4, #140]	; 0x8c
+          huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
+ 800bd6e:	2300      	movs	r3, #0
+ 800bd70:	66e3      	str	r3, [r4, #108]	; 0x6c
+          ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE);
+ 800bd72:	6822      	ldr	r2, [r4, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800bd74:	e852 3f00 	ldrex	r3, [r2]
+ 800bd78:	f023 0310 	bic.w	r3, r3, #16
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800bd7c:	e842 3100 	strex	r1, r3, [r2]
+ 800bd80:	2900      	cmp	r1, #0
+ 800bd82:	d1f6      	bne.n	800bd72 <HAL_UART_IRQHandler+0x25a>
+          (void)HAL_DMA_Abort(huart->hdmarx);
+ 800bd84:	f8d4 0080 	ldr.w	r0, [r4, #128]	; 0x80
+ 800bd88:	f7fd f92a 	bl	8008fe0 <HAL_DMA_Abort>
+        huart->RxEventType = HAL_UART_RXEVENT_IDLE;
+ 800bd8c:	2302      	movs	r3, #2
+ 800bd8e:	6723      	str	r3, [r4, #112]	; 0x70
+        HAL_UARTEx_RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount));
+ 800bd90:	f8b4 105c 	ldrh.w	r1, [r4, #92]	; 0x5c
+ 800bd94:	f8b4 305e 	ldrh.w	r3, [r4, #94]	; 0x5e
+ 800bd98:	b29b      	uxth	r3, r3
+ 800bd9a:	1ac9      	subs	r1, r1, r3
+ 800bd9c:	b289      	uxth	r1, r1
+ 800bd9e:	4620      	mov	r0, r4
+ 800bda0:	f7ff feb9 	bl	800bb16 <HAL_UARTEx_RxEventCallback>
+      return;
+ 800bda4:	e6fc      	b.n	800bba0 <HAL_UART_IRQHandler+0x88>
+ 800bda6:	bf00      	nop
+ 800bda8:	10000001 	.word	0x10000001
+ 800bdac:	04000120 	.word	0x04000120
+ 800bdb0:	0800bb03 	.word	0x0800bb03
+      uint16_t nb_rx_data = huart->RxXferSize - huart->RxXferCount;
+ 800bdb4:	f8b4 105c 	ldrh.w	r1, [r4, #92]	; 0x5c
+ 800bdb8:	f8b4 305e 	ldrh.w	r3, [r4, #94]	; 0x5e
+ 800bdbc:	b29b      	uxth	r3, r3
+ 800bdbe:	1ac9      	subs	r1, r1, r3
+ 800bdc0:	b289      	uxth	r1, r1
+      if ((huart->RxXferCount > 0U)
+ 800bdc2:	f8b4 305e 	ldrh.w	r3, [r4, #94]	; 0x5e
+ 800bdc6:	b29b      	uxth	r3, r3
+ 800bdc8:	2b00      	cmp	r3, #0
+ 800bdca:	f43f aee9 	beq.w	800bba0 <HAL_UART_IRQHandler+0x88>
+          && (nb_rx_data > 0U))
+ 800bdce:	2900      	cmp	r1, #0
+ 800bdd0:	f43f aee6 	beq.w	800bba0 <HAL_UART_IRQHandler+0x88>
+        ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE));
+ 800bdd4:	6822      	ldr	r2, [r4, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800bdd6:	e852 3f00 	ldrex	r3, [r2]
+ 800bdda:	f423 7390 	bic.w	r3, r3, #288	; 0x120
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800bdde:	e842 3000 	strex	r0, r3, [r2]
+ 800bde2:	2800      	cmp	r0, #0
+ 800bde4:	d1f6      	bne.n	800bdd4 <HAL_UART_IRQHandler+0x2bc>
+        ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE));
+ 800bde6:	6822      	ldr	r2, [r4, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800bde8:	f102 0308 	add.w	r3, r2, #8
+ 800bdec:	e853 3f00 	ldrex	r3, [r3]
+ 800bdf0:	f023 5380 	bic.w	r3, r3, #268435456	; 0x10000000
+ 800bdf4:	f023 0301 	bic.w	r3, r3, #1
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800bdf8:	3208      	adds	r2, #8
+ 800bdfa:	e842 3000 	strex	r0, r3, [r2]
+ 800bdfe:	2800      	cmp	r0, #0
+ 800be00:	d1f1      	bne.n	800bde6 <HAL_UART_IRQHandler+0x2ce>
+        huart->RxState = HAL_UART_STATE_READY;
+ 800be02:	2320      	movs	r3, #32
+ 800be04:	f8c4 308c 	str.w	r3, [r4, #140]	; 0x8c
+        huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
+ 800be08:	2300      	movs	r3, #0
+ 800be0a:	66e3      	str	r3, [r4, #108]	; 0x6c
+        huart->RxISR = NULL;
+ 800be0c:	6763      	str	r3, [r4, #116]	; 0x74
+        ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE);
+ 800be0e:	6822      	ldr	r2, [r4, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800be10:	e852 3f00 	ldrex	r3, [r2]
+ 800be14:	f023 0310 	bic.w	r3, r3, #16
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800be18:	e842 3000 	strex	r0, r3, [r2]
+ 800be1c:	2800      	cmp	r0, #0
+ 800be1e:	d1f6      	bne.n	800be0e <HAL_UART_IRQHandler+0x2f6>
+        huart->RxEventType = HAL_UART_RXEVENT_IDLE;
+ 800be20:	2302      	movs	r3, #2
+ 800be22:	6723      	str	r3, [r4, #112]	; 0x70
+        HAL_UARTEx_RxEventCallback(huart, nb_rx_data);
+ 800be24:	4620      	mov	r0, r4
+ 800be26:	f7ff fe76 	bl	800bb16 <HAL_UARTEx_RxEventCallback>
+      return;
+ 800be2a:	e6b9      	b.n	800bba0 <HAL_UART_IRQHandler+0x88>
+    __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_WUF);
+ 800be2c:	f44f 1380 	mov.w	r3, #1048576	; 0x100000
+ 800be30:	620b      	str	r3, [r1, #32]
+    HAL_UARTEx_WakeupCallback(huart);
+ 800be32:	4620      	mov	r0, r4
+ 800be34:	f000 fe60 	bl	800caf8 <HAL_UARTEx_WakeupCallback>
+    return;
+ 800be38:	e6b2      	b.n	800bba0 <HAL_UART_IRQHandler+0x88>
+    if (huart->TxISR != NULL)
+ 800be3a:	6fa3      	ldr	r3, [r4, #120]	; 0x78
+ 800be3c:	2b00      	cmp	r3, #0
+ 800be3e:	f43f aeaf 	beq.w	800bba0 <HAL_UART_IRQHandler+0x88>
+      huart->TxISR(huart);
+ 800be42:	4620      	mov	r0, r4
+ 800be44:	4798      	blx	r3
+    return;
+ 800be46:	e6ab      	b.n	800bba0 <HAL_UART_IRQHandler+0x88>
+    UART_EndTransmit_IT(huart);
+ 800be48:	4620      	mov	r0, r4
+ 800be4a:	f7ff fe15 	bl	800ba78 <UART_EndTransmit_IT>
+    return;
+ 800be4e:	e6a7      	b.n	800bba0 <HAL_UART_IRQHandler+0x88>
+    HAL_UARTEx_TxFifoEmptyCallback(huart);
+ 800be50:	4620      	mov	r0, r4
+ 800be52:	f000 fe53 	bl	800cafc <HAL_UARTEx_TxFifoEmptyCallback>
+    return;
+ 800be56:	e6a3      	b.n	800bba0 <HAL_UART_IRQHandler+0x88>
+    HAL_UARTEx_RxFifoFullCallback(huart);
+ 800be58:	4620      	mov	r0, r4
+ 800be5a:	f000 fe4e 	bl	800cafa <HAL_UARTEx_RxFifoFullCallback>
+    return;
+ 800be5e:	e69f      	b.n	800bba0 <HAL_UART_IRQHandler+0x88>
+
+0800be60 <UART_RxISR_8BIT>:
+  * @brief RX interrupt handler for 7 or 8 bits data word length .
+  * @param huart UART handle.
+  * @retval None
+  */
+static void UART_RxISR_8BIT(UART_HandleTypeDef *huart)
+{
+ 800be60:	b508      	push	{r3, lr}
+  uint16_t uhMask = huart->Mask;
+ 800be62:	f8b0 3060 	ldrh.w	r3, [r0, #96]	; 0x60
+  uint16_t  uhdata;
+
+  /* Check that a Rx process is ongoing */
+  if (huart->RxState == HAL_UART_STATE_BUSY_RX)
+ 800be66:	f8d0 208c 	ldr.w	r2, [r0, #140]	; 0x8c
+ 800be6a:	2a22      	cmp	r2, #34	; 0x22
+ 800be6c:	d005      	beq.n	800be7a <UART_RxISR_8BIT+0x1a>
+    }
+  }
+  else
+  {
+    /* Clear RXNE interrupt flag */
+    __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST);
+ 800be6e:	6802      	ldr	r2, [r0, #0]
+ 800be70:	6993      	ldr	r3, [r2, #24]
+ 800be72:	f043 0308 	orr.w	r3, r3, #8
+ 800be76:	6193      	str	r3, [r2, #24]
+  }
+}
+ 800be78:	bd08      	pop	{r3, pc}
+    uhdata = (uint16_t) READ_REG(huart->Instance->RDR);
+ 800be7a:	6802      	ldr	r2, [r0, #0]
+ 800be7c:	6a51      	ldr	r1, [r2, #36]	; 0x24
+    *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask);
+ 800be7e:	b2db      	uxtb	r3, r3
+ 800be80:	6d82      	ldr	r2, [r0, #88]	; 0x58
+ 800be82:	400b      	ands	r3, r1
+ 800be84:	7013      	strb	r3, [r2, #0]
+    huart->pRxBuffPtr++;
+ 800be86:	6d83      	ldr	r3, [r0, #88]	; 0x58
+ 800be88:	3301      	adds	r3, #1
+ 800be8a:	6583      	str	r3, [r0, #88]	; 0x58
+    huart->RxXferCount--;
+ 800be8c:	f8b0 305e 	ldrh.w	r3, [r0, #94]	; 0x5e
+ 800be90:	b29b      	uxth	r3, r3
+ 800be92:	3b01      	subs	r3, #1
+ 800be94:	b29b      	uxth	r3, r3
+ 800be96:	f8a0 305e 	strh.w	r3, [r0, #94]	; 0x5e
+    if (huart->RxXferCount == 0U)
+ 800be9a:	f8b0 305e 	ldrh.w	r3, [r0, #94]	; 0x5e
+ 800be9e:	b29b      	uxth	r3, r3
+ 800bea0:	2b00      	cmp	r3, #0
+ 800bea2:	d1e9      	bne.n	800be78 <UART_RxISR_8BIT+0x18>
+      ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE));
+ 800bea4:	6802      	ldr	r2, [r0, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800bea6:	e852 3f00 	ldrex	r3, [r2]
+ 800beaa:	f423 7390 	bic.w	r3, r3, #288	; 0x120
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800beae:	e842 3100 	strex	r1, r3, [r2]
+ 800beb2:	2900      	cmp	r1, #0
+ 800beb4:	d1f6      	bne.n	800bea4 <UART_RxISR_8BIT+0x44>
+      ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
+ 800beb6:	6802      	ldr	r2, [r0, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800beb8:	f102 0308 	add.w	r3, r2, #8
+ 800bebc:	e853 3f00 	ldrex	r3, [r3]
+ 800bec0:	f023 0301 	bic.w	r3, r3, #1
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800bec4:	3208      	adds	r2, #8
+ 800bec6:	e842 3100 	strex	r1, r3, [r2]
+ 800beca:	2900      	cmp	r1, #0
+ 800becc:	d1f3      	bne.n	800beb6 <UART_RxISR_8BIT+0x56>
+      huart->RxState = HAL_UART_STATE_READY;
+ 800bece:	2320      	movs	r3, #32
+ 800bed0:	f8c0 308c 	str.w	r3, [r0, #140]	; 0x8c
+      huart->RxISR = NULL;
+ 800bed4:	2300      	movs	r3, #0
+ 800bed6:	6743      	str	r3, [r0, #116]	; 0x74
+      huart->RxEventType = HAL_UART_RXEVENT_TC;
+ 800bed8:	6703      	str	r3, [r0, #112]	; 0x70
+      if (!(IS_LPUART_INSTANCE(huart->Instance)))
+ 800beda:	6803      	ldr	r3, [r0, #0]
+ 800bedc:	4a16      	ldr	r2, [pc, #88]	; (800bf38 <UART_RxISR_8BIT+0xd8>)
+ 800bede:	4293      	cmp	r3, r2
+ 800bee0:	d00c      	beq.n	800befc <UART_RxISR_8BIT+0x9c>
+        if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U)
+ 800bee2:	685b      	ldr	r3, [r3, #4]
+ 800bee4:	f413 0f00 	tst.w	r3, #8388608	; 0x800000
+ 800bee8:	d008      	beq.n	800befc <UART_RxISR_8BIT+0x9c>
+          ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE);
+ 800beea:	6802      	ldr	r2, [r0, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800beec:	e852 3f00 	ldrex	r3, [r2]
+ 800bef0:	f023 6380 	bic.w	r3, r3, #67108864	; 0x4000000
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800bef4:	e842 3100 	strex	r1, r3, [r2]
+ 800bef8:	2900      	cmp	r1, #0
+ 800befa:	d1f6      	bne.n	800beea <UART_RxISR_8BIT+0x8a>
+      if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE)
+ 800befc:	6ec3      	ldr	r3, [r0, #108]	; 0x6c
+ 800befe:	2b01      	cmp	r3, #1
+ 800bf00:	d116      	bne.n	800bf30 <UART_RxISR_8BIT+0xd0>
+        huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
+ 800bf02:	2300      	movs	r3, #0
+ 800bf04:	66c3      	str	r3, [r0, #108]	; 0x6c
+        ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE);
+ 800bf06:	6802      	ldr	r2, [r0, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800bf08:	e852 3f00 	ldrex	r3, [r2]
+ 800bf0c:	f023 0310 	bic.w	r3, r3, #16
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800bf10:	e842 3100 	strex	r1, r3, [r2]
+ 800bf14:	2900      	cmp	r1, #0
+ 800bf16:	d1f6      	bne.n	800bf06 <UART_RxISR_8BIT+0xa6>
+        if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET)
+ 800bf18:	6803      	ldr	r3, [r0, #0]
+ 800bf1a:	69da      	ldr	r2, [r3, #28]
+ 800bf1c:	f012 0f10 	tst.w	r2, #16
+ 800bf20:	d001      	beq.n	800bf26 <UART_RxISR_8BIT+0xc6>
+          __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF);
+ 800bf22:	2210      	movs	r2, #16
+ 800bf24:	621a      	str	r2, [r3, #32]
+        HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize);
+ 800bf26:	f8b0 105c 	ldrh.w	r1, [r0, #92]	; 0x5c
+ 800bf2a:	f7ff fdf4 	bl	800bb16 <HAL_UARTEx_RxEventCallback>
+ 800bf2e:	e7a3      	b.n	800be78 <UART_RxISR_8BIT+0x18>
+        HAL_UART_RxCpltCallback(huart);
+ 800bf30:	f7f7 f9fc 	bl	800332c <HAL_UART_RxCpltCallback>
+ 800bf34:	e7a0      	b.n	800be78 <UART_RxISR_8BIT+0x18>
+ 800bf36:	bf00      	nop
+ 800bf38:	40008000 	.word	0x40008000
+
+0800bf3c <UART_RxISR_16BIT>:
+  *         interruptions have been enabled by HAL_UART_Receive_IT()
+  * @param huart UART handle.
+  * @retval None
+  */
+static void UART_RxISR_16BIT(UART_HandleTypeDef *huart)
+{
+ 800bf3c:	b508      	push	{r3, lr}
+  uint16_t *tmp;
+  uint16_t uhMask = huart->Mask;
+ 800bf3e:	f8b0 2060 	ldrh.w	r2, [r0, #96]	; 0x60
+  uint16_t  uhdata;
+
+  /* Check that a Rx process is ongoing */
+  if (huart->RxState == HAL_UART_STATE_BUSY_RX)
+ 800bf42:	f8d0 308c 	ldr.w	r3, [r0, #140]	; 0x8c
+ 800bf46:	2b22      	cmp	r3, #34	; 0x22
+ 800bf48:	d005      	beq.n	800bf56 <UART_RxISR_16BIT+0x1a>
+    }
+  }
+  else
+  {
+    /* Clear RXNE interrupt flag */
+    __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST);
+ 800bf4a:	6802      	ldr	r2, [r0, #0]
+ 800bf4c:	6993      	ldr	r3, [r2, #24]
+ 800bf4e:	f043 0308 	orr.w	r3, r3, #8
+ 800bf52:	6193      	str	r3, [r2, #24]
+  }
+}
+ 800bf54:	bd08      	pop	{r3, pc}
+    uhdata = (uint16_t) READ_REG(huart->Instance->RDR);
+ 800bf56:	6803      	ldr	r3, [r0, #0]
+ 800bf58:	6a5b      	ldr	r3, [r3, #36]	; 0x24
+    tmp = (uint16_t *) huart->pRxBuffPtr ;
+ 800bf5a:	6d81      	ldr	r1, [r0, #88]	; 0x58
+    *tmp = (uint16_t)(uhdata & uhMask);
+ 800bf5c:	4013      	ands	r3, r2
+ 800bf5e:	800b      	strh	r3, [r1, #0]
+    huart->pRxBuffPtr += 2U;
+ 800bf60:	6d83      	ldr	r3, [r0, #88]	; 0x58
+ 800bf62:	3302      	adds	r3, #2
+ 800bf64:	6583      	str	r3, [r0, #88]	; 0x58
+    huart->RxXferCount--;
+ 800bf66:	f8b0 305e 	ldrh.w	r3, [r0, #94]	; 0x5e
+ 800bf6a:	b29b      	uxth	r3, r3
+ 800bf6c:	3b01      	subs	r3, #1
+ 800bf6e:	b29b      	uxth	r3, r3
+ 800bf70:	f8a0 305e 	strh.w	r3, [r0, #94]	; 0x5e
+    if (huart->RxXferCount == 0U)
+ 800bf74:	f8b0 305e 	ldrh.w	r3, [r0, #94]	; 0x5e
+ 800bf78:	b29b      	uxth	r3, r3
+ 800bf7a:	2b00      	cmp	r3, #0
+ 800bf7c:	d1ea      	bne.n	800bf54 <UART_RxISR_16BIT+0x18>
+      ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE));
+ 800bf7e:	6802      	ldr	r2, [r0, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800bf80:	e852 3f00 	ldrex	r3, [r2]
+ 800bf84:	f423 7390 	bic.w	r3, r3, #288	; 0x120
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800bf88:	e842 3100 	strex	r1, r3, [r2]
+ 800bf8c:	2900      	cmp	r1, #0
+ 800bf8e:	d1f6      	bne.n	800bf7e <UART_RxISR_16BIT+0x42>
+      ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
+ 800bf90:	6802      	ldr	r2, [r0, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800bf92:	f102 0308 	add.w	r3, r2, #8
+ 800bf96:	e853 3f00 	ldrex	r3, [r3]
+ 800bf9a:	f023 0301 	bic.w	r3, r3, #1
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800bf9e:	3208      	adds	r2, #8
+ 800bfa0:	e842 3100 	strex	r1, r3, [r2]
+ 800bfa4:	2900      	cmp	r1, #0
+ 800bfa6:	d1f3      	bne.n	800bf90 <UART_RxISR_16BIT+0x54>
+      huart->RxState = HAL_UART_STATE_READY;
+ 800bfa8:	2320      	movs	r3, #32
+ 800bfaa:	f8c0 308c 	str.w	r3, [r0, #140]	; 0x8c
+      huart->RxISR = NULL;
+ 800bfae:	2300      	movs	r3, #0
+ 800bfb0:	6743      	str	r3, [r0, #116]	; 0x74
+      huart->RxEventType = HAL_UART_RXEVENT_TC;
+ 800bfb2:	6703      	str	r3, [r0, #112]	; 0x70
+      if (!(IS_LPUART_INSTANCE(huart->Instance)))
+ 800bfb4:	6803      	ldr	r3, [r0, #0]
+ 800bfb6:	4a16      	ldr	r2, [pc, #88]	; (800c010 <UART_RxISR_16BIT+0xd4>)
+ 800bfb8:	4293      	cmp	r3, r2
+ 800bfba:	d00c      	beq.n	800bfd6 <UART_RxISR_16BIT+0x9a>
+        if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U)
+ 800bfbc:	685b      	ldr	r3, [r3, #4]
+ 800bfbe:	f413 0f00 	tst.w	r3, #8388608	; 0x800000
+ 800bfc2:	d008      	beq.n	800bfd6 <UART_RxISR_16BIT+0x9a>
+          ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE);
+ 800bfc4:	6802      	ldr	r2, [r0, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800bfc6:	e852 3f00 	ldrex	r3, [r2]
+ 800bfca:	f023 6380 	bic.w	r3, r3, #67108864	; 0x4000000
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800bfce:	e842 3100 	strex	r1, r3, [r2]
+ 800bfd2:	2900      	cmp	r1, #0
+ 800bfd4:	d1f6      	bne.n	800bfc4 <UART_RxISR_16BIT+0x88>
+      if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE)
+ 800bfd6:	6ec3      	ldr	r3, [r0, #108]	; 0x6c
+ 800bfd8:	2b01      	cmp	r3, #1
+ 800bfda:	d116      	bne.n	800c00a <UART_RxISR_16BIT+0xce>
+        huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
+ 800bfdc:	2300      	movs	r3, #0
+ 800bfde:	66c3      	str	r3, [r0, #108]	; 0x6c
+        ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE);
+ 800bfe0:	6802      	ldr	r2, [r0, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800bfe2:	e852 3f00 	ldrex	r3, [r2]
+ 800bfe6:	f023 0310 	bic.w	r3, r3, #16
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800bfea:	e842 3100 	strex	r1, r3, [r2]
+ 800bfee:	2900      	cmp	r1, #0
+ 800bff0:	d1f6      	bne.n	800bfe0 <UART_RxISR_16BIT+0xa4>
+        if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET)
+ 800bff2:	6803      	ldr	r3, [r0, #0]
+ 800bff4:	69da      	ldr	r2, [r3, #28]
+ 800bff6:	f012 0f10 	tst.w	r2, #16
+ 800bffa:	d001      	beq.n	800c000 <UART_RxISR_16BIT+0xc4>
+          __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF);
+ 800bffc:	2210      	movs	r2, #16
+ 800bffe:	621a      	str	r2, [r3, #32]
+        HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize);
+ 800c000:	f8b0 105c 	ldrh.w	r1, [r0, #92]	; 0x5c
+ 800c004:	f7ff fd87 	bl	800bb16 <HAL_UARTEx_RxEventCallback>
+ 800c008:	e7a4      	b.n	800bf54 <UART_RxISR_16BIT+0x18>
+        HAL_UART_RxCpltCallback(huart);
+ 800c00a:	f7f7 f98f 	bl	800332c <HAL_UART_RxCpltCallback>
+ 800c00e:	e7a1      	b.n	800bf54 <UART_RxISR_16BIT+0x18>
+ 800c010:	40008000 	.word	0x40008000
+
+0800c014 <UART_RxISR_8BIT_FIFOEN>:
+  *         interruptions have been enabled by HAL_UART_Receive_IT()
+  * @param huart UART handle.
+  * @retval None
+  */
+static void UART_RxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart)
+{
+ 800c014:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
+  uint16_t  uhMask = huart->Mask;
+ 800c018:	f8b0 6060 	ldrh.w	r6, [r0, #96]	; 0x60
+  uint16_t  uhdata;
+  uint16_t  nb_rx_data;
+  uint16_t  rxdatacount;
+  uint32_t  isrflags = READ_REG(huart->Instance->ISR);
+ 800c01c:	6803      	ldr	r3, [r0, #0]
+ 800c01e:	69dd      	ldr	r5, [r3, #28]
+  uint32_t  cr1its   = READ_REG(huart->Instance->CR1);
+ 800c020:	f8d3 9000 	ldr.w	r9, [r3]
+  uint32_t  cr3its   = READ_REG(huart->Instance->CR3);
+ 800c024:	f8d3 8008 	ldr.w	r8, [r3, #8]
+
+  /* Check that a Rx process is ongoing */
+  if (huart->RxState == HAL_UART_STATE_BUSY_RX)
+ 800c028:	f8d0 208c 	ldr.w	r2, [r0, #140]	; 0x8c
+ 800c02c:	2a22      	cmp	r2, #34	; 0x22
+ 800c02e:	d005      	beq.n	800c03c <UART_RxISR_8BIT_FIFOEN+0x28>
+    }
+  }
+  else
+  {
+    /* Clear RXNE interrupt flag */
+    __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST);
+ 800c030:	699a      	ldr	r2, [r3, #24]
+ 800c032:	f042 0208 	orr.w	r2, r2, #8
+ 800c036:	619a      	str	r2, [r3, #24]
+  }
+}
+ 800c038:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
+ 800c03c:	4604      	mov	r4, r0
+    nb_rx_data = huart->NbRxDataToProcess;
+ 800c03e:	f8b0 7068 	ldrh.w	r7, [r0, #104]	; 0x68
+    while ((nb_rx_data > 0U) && ((isrflags & USART_ISR_RXNE_RXFNE) != 0U))
+ 800c042:	e008      	b.n	800c056 <UART_RxISR_8BIT_FIFOEN+0x42>
+        if (huart->ErrorCode != HAL_UART_ERROR_NONE)
+ 800c044:	f8d4 3090 	ldr.w	r3, [r4, #144]	; 0x90
+ 800c048:	2b00      	cmp	r3, #0
+ 800c04a:	d14c      	bne.n	800c0e6 <UART_RxISR_8BIT_FIFOEN+0xd2>
+      if (huart->RxXferCount == 0U)
+ 800c04c:	f8b4 305e 	ldrh.w	r3, [r4, #94]	; 0x5e
+ 800c050:	b29b      	uxth	r3, r3
+ 800c052:	2b00      	cmp	r3, #0
+ 800c054:	d04e      	beq.n	800c0f4 <UART_RxISR_8BIT_FIFOEN+0xe0>
+    while ((nb_rx_data > 0U) && ((isrflags & USART_ISR_RXNE_RXFNE) != 0U))
+ 800c056:	2f00      	cmp	r7, #0
+ 800c058:	f000 809a 	beq.w	800c190 <UART_RxISR_8BIT_FIFOEN+0x17c>
+ 800c05c:	f015 0f20 	tst.w	r5, #32
+ 800c060:	f000 8096 	beq.w	800c190 <UART_RxISR_8BIT_FIFOEN+0x17c>
+      uhdata = (uint16_t) READ_REG(huart->Instance->RDR);
+ 800c064:	6823      	ldr	r3, [r4, #0]
+ 800c066:	6a59      	ldr	r1, [r3, #36]	; 0x24
+      *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask);
+ 800c068:	b2f3      	uxtb	r3, r6
+ 800c06a:	6da2      	ldr	r2, [r4, #88]	; 0x58
+ 800c06c:	400b      	ands	r3, r1
+ 800c06e:	7013      	strb	r3, [r2, #0]
+      huart->pRxBuffPtr++;
+ 800c070:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 800c072:	3301      	adds	r3, #1
+ 800c074:	65a3      	str	r3, [r4, #88]	; 0x58
+      huart->RxXferCount--;
+ 800c076:	f8b4 305e 	ldrh.w	r3, [r4, #94]	; 0x5e
+ 800c07a:	b29b      	uxth	r3, r3
+ 800c07c:	3b01      	subs	r3, #1
+ 800c07e:	b29b      	uxth	r3, r3
+ 800c080:	f8a4 305e 	strh.w	r3, [r4, #94]	; 0x5e
+      isrflags = READ_REG(huart->Instance->ISR);
+ 800c084:	6823      	ldr	r3, [r4, #0]
+ 800c086:	69dd      	ldr	r5, [r3, #28]
+      if ((isrflags & (USART_ISR_PE | USART_ISR_FE | USART_ISR_NE)) != 0U)
+ 800c088:	f015 0f07 	tst.w	r5, #7
+ 800c08c:	d0de      	beq.n	800c04c <UART_RxISR_8BIT_FIFOEN+0x38>
+        if (((isrflags & USART_ISR_PE) != 0U) && ((cr1its & USART_CR1_PEIE) != 0U))
+ 800c08e:	f015 0f01 	tst.w	r5, #1
+ 800c092:	d009      	beq.n	800c0a8 <UART_RxISR_8BIT_FIFOEN+0x94>
+ 800c094:	f419 7f80 	tst.w	r9, #256	; 0x100
+ 800c098:	d006      	beq.n	800c0a8 <UART_RxISR_8BIT_FIFOEN+0x94>
+          __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF);
+ 800c09a:	2201      	movs	r2, #1
+ 800c09c:	621a      	str	r2, [r3, #32]
+          huart->ErrorCode |= HAL_UART_ERROR_PE;
+ 800c09e:	f8d4 3090 	ldr.w	r3, [r4, #144]	; 0x90
+ 800c0a2:	4313      	orrs	r3, r2
+ 800c0a4:	f8c4 3090 	str.w	r3, [r4, #144]	; 0x90
+        if (((isrflags & USART_ISR_FE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U))
+ 800c0a8:	f015 0f02 	tst.w	r5, #2
+ 800c0ac:	d00b      	beq.n	800c0c6 <UART_RxISR_8BIT_FIFOEN+0xb2>
+ 800c0ae:	f018 0f01 	tst.w	r8, #1
+ 800c0b2:	d008      	beq.n	800c0c6 <UART_RxISR_8BIT_FIFOEN+0xb2>
+          __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF);
+ 800c0b4:	6823      	ldr	r3, [r4, #0]
+ 800c0b6:	2202      	movs	r2, #2
+ 800c0b8:	621a      	str	r2, [r3, #32]
+          huart->ErrorCode |= HAL_UART_ERROR_FE;
+ 800c0ba:	f8d4 3090 	ldr.w	r3, [r4, #144]	; 0x90
+ 800c0be:	f043 0304 	orr.w	r3, r3, #4
+ 800c0c2:	f8c4 3090 	str.w	r3, [r4, #144]	; 0x90
+        if (((isrflags & USART_ISR_NE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U))
+ 800c0c6:	f015 0f04 	tst.w	r5, #4
+ 800c0ca:	d0bb      	beq.n	800c044 <UART_RxISR_8BIT_FIFOEN+0x30>
+ 800c0cc:	f018 0f01 	tst.w	r8, #1
+ 800c0d0:	d0b8      	beq.n	800c044 <UART_RxISR_8BIT_FIFOEN+0x30>
+          __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF);
+ 800c0d2:	6823      	ldr	r3, [r4, #0]
+ 800c0d4:	2204      	movs	r2, #4
+ 800c0d6:	621a      	str	r2, [r3, #32]
+          huart->ErrorCode |= HAL_UART_ERROR_NE;
+ 800c0d8:	f8d4 3090 	ldr.w	r3, [r4, #144]	; 0x90
+ 800c0dc:	f043 0302 	orr.w	r3, r3, #2
+ 800c0e0:	f8c4 3090 	str.w	r3, [r4, #144]	; 0x90
+ 800c0e4:	e7ae      	b.n	800c044 <UART_RxISR_8BIT_FIFOEN+0x30>
+          HAL_UART_ErrorCallback(huart);
+ 800c0e6:	4620      	mov	r0, r4
+ 800c0e8:	f7ff fcde 	bl	800baa8 <HAL_UART_ErrorCallback>
+          huart->ErrorCode = HAL_UART_ERROR_NONE;
+ 800c0ec:	2300      	movs	r3, #0
+ 800c0ee:	f8c4 3090 	str.w	r3, [r4, #144]	; 0x90
+ 800c0f2:	e7ab      	b.n	800c04c <UART_RxISR_8BIT_FIFOEN+0x38>
+        ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE);
+ 800c0f4:	6822      	ldr	r2, [r4, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800c0f6:	e852 3f00 	ldrex	r3, [r2]
+ 800c0fa:	f423 7380 	bic.w	r3, r3, #256	; 0x100
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800c0fe:	e842 3100 	strex	r1, r3, [r2]
+ 800c102:	2900      	cmp	r1, #0
+ 800c104:	d1f6      	bne.n	800c0f4 <UART_RxISR_8BIT_FIFOEN+0xe0>
+        ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE));
+ 800c106:	6822      	ldr	r2, [r4, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800c108:	f102 0308 	add.w	r3, r2, #8
+ 800c10c:	e853 3f00 	ldrex	r3, [r3]
+ 800c110:	f023 5380 	bic.w	r3, r3, #268435456	; 0x10000000
+ 800c114:	f023 0301 	bic.w	r3, r3, #1
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800c118:	3208      	adds	r2, #8
+ 800c11a:	e842 3100 	strex	r1, r3, [r2]
+ 800c11e:	2900      	cmp	r1, #0
+ 800c120:	d1f1      	bne.n	800c106 <UART_RxISR_8BIT_FIFOEN+0xf2>
+        huart->RxState = HAL_UART_STATE_READY;
+ 800c122:	2320      	movs	r3, #32
+ 800c124:	f8c4 308c 	str.w	r3, [r4, #140]	; 0x8c
+        huart->RxISR = NULL;
+ 800c128:	2300      	movs	r3, #0
+ 800c12a:	6763      	str	r3, [r4, #116]	; 0x74
+        huart->RxEventType = HAL_UART_RXEVENT_TC;
+ 800c12c:	6723      	str	r3, [r4, #112]	; 0x70
+        if (!(IS_LPUART_INSTANCE(huart->Instance)))
+ 800c12e:	6823      	ldr	r3, [r4, #0]
+ 800c130:	4a29      	ldr	r2, [pc, #164]	; (800c1d8 <UART_RxISR_8BIT_FIFOEN+0x1c4>)
+ 800c132:	4293      	cmp	r3, r2
+ 800c134:	d003      	beq.n	800c13e <UART_RxISR_8BIT_FIFOEN+0x12a>
+          if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U)
+ 800c136:	685b      	ldr	r3, [r3, #4]
+ 800c138:	f413 0f00 	tst.w	r3, #8388608	; 0x800000
+ 800c13c:	d106      	bne.n	800c14c <UART_RxISR_8BIT_FIFOEN+0x138>
+        if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE)
+ 800c13e:	6ee3      	ldr	r3, [r4, #108]	; 0x6c
+ 800c140:	2b01      	cmp	r3, #1
+ 800c142:	d00d      	beq.n	800c160 <UART_RxISR_8BIT_FIFOEN+0x14c>
+          HAL_UART_RxCpltCallback(huart);
+ 800c144:	4620      	mov	r0, r4
+ 800c146:	f7f7 f8f1 	bl	800332c <HAL_UART_RxCpltCallback>
+ 800c14a:	e784      	b.n	800c056 <UART_RxISR_8BIT_FIFOEN+0x42>
+            ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE);
+ 800c14c:	6822      	ldr	r2, [r4, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800c14e:	e852 3f00 	ldrex	r3, [r2]
+ 800c152:	f023 6380 	bic.w	r3, r3, #67108864	; 0x4000000
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800c156:	e842 3100 	strex	r1, r3, [r2]
+ 800c15a:	2900      	cmp	r1, #0
+ 800c15c:	d1f6      	bne.n	800c14c <UART_RxISR_8BIT_FIFOEN+0x138>
+ 800c15e:	e7ee      	b.n	800c13e <UART_RxISR_8BIT_FIFOEN+0x12a>
+          huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
+ 800c160:	2300      	movs	r3, #0
+ 800c162:	66e3      	str	r3, [r4, #108]	; 0x6c
+          ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE);
+ 800c164:	6822      	ldr	r2, [r4, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800c166:	e852 3f00 	ldrex	r3, [r2]
+ 800c16a:	f023 0310 	bic.w	r3, r3, #16
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800c16e:	e842 3100 	strex	r1, r3, [r2]
+ 800c172:	2900      	cmp	r1, #0
+ 800c174:	d1f6      	bne.n	800c164 <UART_RxISR_8BIT_FIFOEN+0x150>
+          if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET)
+ 800c176:	6823      	ldr	r3, [r4, #0]
+ 800c178:	69da      	ldr	r2, [r3, #28]
+ 800c17a:	f012 0f10 	tst.w	r2, #16
+ 800c17e:	d001      	beq.n	800c184 <UART_RxISR_8BIT_FIFOEN+0x170>
+            __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF);
+ 800c180:	2210      	movs	r2, #16
+ 800c182:	621a      	str	r2, [r3, #32]
+          HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize);
+ 800c184:	f8b4 105c 	ldrh.w	r1, [r4, #92]	; 0x5c
+ 800c188:	4620      	mov	r0, r4
+ 800c18a:	f7ff fcc4 	bl	800bb16 <HAL_UARTEx_RxEventCallback>
+ 800c18e:	e762      	b.n	800c056 <UART_RxISR_8BIT_FIFOEN+0x42>
+    rxdatacount = huart->RxXferCount;
+ 800c190:	f8b4 305e 	ldrh.w	r3, [r4, #94]	; 0x5e
+ 800c194:	b29b      	uxth	r3, r3
+    if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess))
+ 800c196:	2b00      	cmp	r3, #0
+ 800c198:	f43f af4e 	beq.w	800c038 <UART_RxISR_8BIT_FIFOEN+0x24>
+ 800c19c:	f8b4 2068 	ldrh.w	r2, [r4, #104]	; 0x68
+ 800c1a0:	429a      	cmp	r2, r3
+ 800c1a2:	f67f af49 	bls.w	800c038 <UART_RxISR_8BIT_FIFOEN+0x24>
+      ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_RXFTIE);
+ 800c1a6:	6822      	ldr	r2, [r4, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800c1a8:	f102 0308 	add.w	r3, r2, #8
+ 800c1ac:	e853 3f00 	ldrex	r3, [r3]
+ 800c1b0:	f023 5380 	bic.w	r3, r3, #268435456	; 0x10000000
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800c1b4:	3208      	adds	r2, #8
+ 800c1b6:	e842 3100 	strex	r1, r3, [r2]
+ 800c1ba:	2900      	cmp	r1, #0
+ 800c1bc:	d1f3      	bne.n	800c1a6 <UART_RxISR_8BIT_FIFOEN+0x192>
+      huart->RxISR = UART_RxISR_8BIT;
+ 800c1be:	4b07      	ldr	r3, [pc, #28]	; (800c1dc <UART_RxISR_8BIT_FIFOEN+0x1c8>)
+ 800c1c0:	6763      	str	r3, [r4, #116]	; 0x74
+      ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE);
+ 800c1c2:	6822      	ldr	r2, [r4, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800c1c4:	e852 3f00 	ldrex	r3, [r2]
+ 800c1c8:	f043 0320 	orr.w	r3, r3, #32
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800c1cc:	e842 3100 	strex	r1, r3, [r2]
+ 800c1d0:	2900      	cmp	r1, #0
+ 800c1d2:	d1f6      	bne.n	800c1c2 <UART_RxISR_8BIT_FIFOEN+0x1ae>
+ 800c1d4:	e730      	b.n	800c038 <UART_RxISR_8BIT_FIFOEN+0x24>
+ 800c1d6:	bf00      	nop
+ 800c1d8:	40008000 	.word	0x40008000
+ 800c1dc:	0800be61 	.word	0x0800be61
+
+0800c1e0 <UART_RxISR_16BIT_FIFOEN>:
+  *         interruptions have been enabled by HAL_UART_Receive_IT()
+  * @param huart UART handle.
+  * @retval None
+  */
+static void UART_RxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart)
+{
+ 800c1e0:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
+  uint16_t *tmp;
+  uint16_t  uhMask = huart->Mask;
+ 800c1e4:	f8b0 6060 	ldrh.w	r6, [r0, #96]	; 0x60
+  uint16_t  uhdata;
+  uint16_t  nb_rx_data;
+  uint16_t  rxdatacount;
+  uint32_t  isrflags = READ_REG(huart->Instance->ISR);
+ 800c1e8:	6803      	ldr	r3, [r0, #0]
+ 800c1ea:	69dd      	ldr	r5, [r3, #28]
+  uint32_t  cr1its   = READ_REG(huart->Instance->CR1);
+ 800c1ec:	f8d3 9000 	ldr.w	r9, [r3]
+  uint32_t  cr3its   = READ_REG(huart->Instance->CR3);
+ 800c1f0:	f8d3 8008 	ldr.w	r8, [r3, #8]
+
+  /* Check that a Rx process is ongoing */
+  if (huart->RxState == HAL_UART_STATE_BUSY_RX)
+ 800c1f4:	f8d0 208c 	ldr.w	r2, [r0, #140]	; 0x8c
+ 800c1f8:	2a22      	cmp	r2, #34	; 0x22
+ 800c1fa:	d005      	beq.n	800c208 <UART_RxISR_16BIT_FIFOEN+0x28>
+    }
+  }
+  else
+  {
+    /* Clear RXNE interrupt flag */
+    __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST);
+ 800c1fc:	699a      	ldr	r2, [r3, #24]
+ 800c1fe:	f042 0208 	orr.w	r2, r2, #8
+ 800c202:	619a      	str	r2, [r3, #24]
+  }
+}
+ 800c204:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
+ 800c208:	4604      	mov	r4, r0
+    nb_rx_data = huart->NbRxDataToProcess;
+ 800c20a:	f8b0 7068 	ldrh.w	r7, [r0, #104]	; 0x68
+    while ((nb_rx_data > 0U) && ((isrflags & USART_ISR_RXNE_RXFNE) != 0U))
+ 800c20e:	e008      	b.n	800c222 <UART_RxISR_16BIT_FIFOEN+0x42>
+        if (huart->ErrorCode != HAL_UART_ERROR_NONE)
+ 800c210:	f8d4 3090 	ldr.w	r3, [r4, #144]	; 0x90
+ 800c214:	2b00      	cmp	r3, #0
+ 800c216:	d14b      	bne.n	800c2b0 <UART_RxISR_16BIT_FIFOEN+0xd0>
+      if (huart->RxXferCount == 0U)
+ 800c218:	f8b4 305e 	ldrh.w	r3, [r4, #94]	; 0x5e
+ 800c21c:	b29b      	uxth	r3, r3
+ 800c21e:	2b00      	cmp	r3, #0
+ 800c220:	d04d      	beq.n	800c2be <UART_RxISR_16BIT_FIFOEN+0xde>
+    while ((nb_rx_data > 0U) && ((isrflags & USART_ISR_RXNE_RXFNE) != 0U))
+ 800c222:	2f00      	cmp	r7, #0
+ 800c224:	f000 8099 	beq.w	800c35a <UART_RxISR_16BIT_FIFOEN+0x17a>
+ 800c228:	f015 0f20 	tst.w	r5, #32
+ 800c22c:	f000 8095 	beq.w	800c35a <UART_RxISR_16BIT_FIFOEN+0x17a>
+      uhdata = (uint16_t) READ_REG(huart->Instance->RDR);
+ 800c230:	6823      	ldr	r3, [r4, #0]
+ 800c232:	6a5b      	ldr	r3, [r3, #36]	; 0x24
+      tmp = (uint16_t *) huart->pRxBuffPtr ;
+ 800c234:	6da2      	ldr	r2, [r4, #88]	; 0x58
+      *tmp = (uint16_t)(uhdata & uhMask);
+ 800c236:	4033      	ands	r3, r6
+ 800c238:	8013      	strh	r3, [r2, #0]
+      huart->pRxBuffPtr += 2U;
+ 800c23a:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 800c23c:	3302      	adds	r3, #2
+ 800c23e:	65a3      	str	r3, [r4, #88]	; 0x58
+      huart->RxXferCount--;
+ 800c240:	f8b4 305e 	ldrh.w	r3, [r4, #94]	; 0x5e
+ 800c244:	b29b      	uxth	r3, r3
+ 800c246:	3b01      	subs	r3, #1
+ 800c248:	b29b      	uxth	r3, r3
+ 800c24a:	f8a4 305e 	strh.w	r3, [r4, #94]	; 0x5e
+      isrflags = READ_REG(huart->Instance->ISR);
+ 800c24e:	6823      	ldr	r3, [r4, #0]
+ 800c250:	69dd      	ldr	r5, [r3, #28]
+      if ((isrflags & (USART_ISR_PE | USART_ISR_FE | USART_ISR_NE)) != 0U)
+ 800c252:	f015 0f07 	tst.w	r5, #7
+ 800c256:	d0df      	beq.n	800c218 <UART_RxISR_16BIT_FIFOEN+0x38>
+        if (((isrflags & USART_ISR_PE) != 0U) && ((cr1its & USART_CR1_PEIE) != 0U))
+ 800c258:	f015 0f01 	tst.w	r5, #1
+ 800c25c:	d009      	beq.n	800c272 <UART_RxISR_16BIT_FIFOEN+0x92>
+ 800c25e:	f419 7f80 	tst.w	r9, #256	; 0x100
+ 800c262:	d006      	beq.n	800c272 <UART_RxISR_16BIT_FIFOEN+0x92>
+          __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF);
+ 800c264:	2201      	movs	r2, #1
+ 800c266:	621a      	str	r2, [r3, #32]
+          huart->ErrorCode |= HAL_UART_ERROR_PE;
+ 800c268:	f8d4 3090 	ldr.w	r3, [r4, #144]	; 0x90
+ 800c26c:	4313      	orrs	r3, r2
+ 800c26e:	f8c4 3090 	str.w	r3, [r4, #144]	; 0x90
+        if (((isrflags & USART_ISR_FE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U))
+ 800c272:	f015 0f02 	tst.w	r5, #2
+ 800c276:	d00b      	beq.n	800c290 <UART_RxISR_16BIT_FIFOEN+0xb0>
+ 800c278:	f018 0f01 	tst.w	r8, #1
+ 800c27c:	d008      	beq.n	800c290 <UART_RxISR_16BIT_FIFOEN+0xb0>
+          __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF);
+ 800c27e:	6823      	ldr	r3, [r4, #0]
+ 800c280:	2202      	movs	r2, #2
+ 800c282:	621a      	str	r2, [r3, #32]
+          huart->ErrorCode |= HAL_UART_ERROR_FE;
+ 800c284:	f8d4 3090 	ldr.w	r3, [r4, #144]	; 0x90
+ 800c288:	f043 0304 	orr.w	r3, r3, #4
+ 800c28c:	f8c4 3090 	str.w	r3, [r4, #144]	; 0x90
+        if (((isrflags & USART_ISR_NE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U))
+ 800c290:	f015 0f04 	tst.w	r5, #4
+ 800c294:	d0bc      	beq.n	800c210 <UART_RxISR_16BIT_FIFOEN+0x30>
+ 800c296:	f018 0f01 	tst.w	r8, #1
+ 800c29a:	d0b9      	beq.n	800c210 <UART_RxISR_16BIT_FIFOEN+0x30>
+          __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF);
+ 800c29c:	6823      	ldr	r3, [r4, #0]
+ 800c29e:	2204      	movs	r2, #4
+ 800c2a0:	621a      	str	r2, [r3, #32]
+          huart->ErrorCode |= HAL_UART_ERROR_NE;
+ 800c2a2:	f8d4 3090 	ldr.w	r3, [r4, #144]	; 0x90
+ 800c2a6:	f043 0302 	orr.w	r3, r3, #2
+ 800c2aa:	f8c4 3090 	str.w	r3, [r4, #144]	; 0x90
+ 800c2ae:	e7af      	b.n	800c210 <UART_RxISR_16BIT_FIFOEN+0x30>
+          HAL_UART_ErrorCallback(huart);
+ 800c2b0:	4620      	mov	r0, r4
+ 800c2b2:	f7ff fbf9 	bl	800baa8 <HAL_UART_ErrorCallback>
+          huart->ErrorCode = HAL_UART_ERROR_NONE;
+ 800c2b6:	2300      	movs	r3, #0
+ 800c2b8:	f8c4 3090 	str.w	r3, [r4, #144]	; 0x90
+ 800c2bc:	e7ac      	b.n	800c218 <UART_RxISR_16BIT_FIFOEN+0x38>
+        ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE);
+ 800c2be:	6822      	ldr	r2, [r4, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800c2c0:	e852 3f00 	ldrex	r3, [r2]
+ 800c2c4:	f423 7380 	bic.w	r3, r3, #256	; 0x100
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800c2c8:	e842 3100 	strex	r1, r3, [r2]
+ 800c2cc:	2900      	cmp	r1, #0
+ 800c2ce:	d1f6      	bne.n	800c2be <UART_RxISR_16BIT_FIFOEN+0xde>
+        ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE));
+ 800c2d0:	6822      	ldr	r2, [r4, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800c2d2:	f102 0308 	add.w	r3, r2, #8
+ 800c2d6:	e853 3f00 	ldrex	r3, [r3]
+ 800c2da:	f023 5380 	bic.w	r3, r3, #268435456	; 0x10000000
+ 800c2de:	f023 0301 	bic.w	r3, r3, #1
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800c2e2:	3208      	adds	r2, #8
+ 800c2e4:	e842 3100 	strex	r1, r3, [r2]
+ 800c2e8:	2900      	cmp	r1, #0
+ 800c2ea:	d1f1      	bne.n	800c2d0 <UART_RxISR_16BIT_FIFOEN+0xf0>
+        huart->RxState = HAL_UART_STATE_READY;
+ 800c2ec:	2320      	movs	r3, #32
+ 800c2ee:	f8c4 308c 	str.w	r3, [r4, #140]	; 0x8c
+        huart->RxISR = NULL;
+ 800c2f2:	2300      	movs	r3, #0
+ 800c2f4:	6763      	str	r3, [r4, #116]	; 0x74
+        huart->RxEventType = HAL_UART_RXEVENT_TC;
+ 800c2f6:	6723      	str	r3, [r4, #112]	; 0x70
+        if (!(IS_LPUART_INSTANCE(huart->Instance)))
+ 800c2f8:	6823      	ldr	r3, [r4, #0]
+ 800c2fa:	4a29      	ldr	r2, [pc, #164]	; (800c3a0 <UART_RxISR_16BIT_FIFOEN+0x1c0>)
+ 800c2fc:	4293      	cmp	r3, r2
+ 800c2fe:	d003      	beq.n	800c308 <UART_RxISR_16BIT_FIFOEN+0x128>
+          if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U)
+ 800c300:	685b      	ldr	r3, [r3, #4]
+ 800c302:	f413 0f00 	tst.w	r3, #8388608	; 0x800000
+ 800c306:	d106      	bne.n	800c316 <UART_RxISR_16BIT_FIFOEN+0x136>
+        if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE)
+ 800c308:	6ee3      	ldr	r3, [r4, #108]	; 0x6c
+ 800c30a:	2b01      	cmp	r3, #1
+ 800c30c:	d00d      	beq.n	800c32a <UART_RxISR_16BIT_FIFOEN+0x14a>
+          HAL_UART_RxCpltCallback(huart);
+ 800c30e:	4620      	mov	r0, r4
+ 800c310:	f7f7 f80c 	bl	800332c <HAL_UART_RxCpltCallback>
+ 800c314:	e785      	b.n	800c222 <UART_RxISR_16BIT_FIFOEN+0x42>
+            ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE);
+ 800c316:	6822      	ldr	r2, [r4, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800c318:	e852 3f00 	ldrex	r3, [r2]
+ 800c31c:	f023 6380 	bic.w	r3, r3, #67108864	; 0x4000000
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800c320:	e842 3100 	strex	r1, r3, [r2]
+ 800c324:	2900      	cmp	r1, #0
+ 800c326:	d1f6      	bne.n	800c316 <UART_RxISR_16BIT_FIFOEN+0x136>
+ 800c328:	e7ee      	b.n	800c308 <UART_RxISR_16BIT_FIFOEN+0x128>
+          huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
+ 800c32a:	2300      	movs	r3, #0
+ 800c32c:	66e3      	str	r3, [r4, #108]	; 0x6c
+          ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE);
+ 800c32e:	6822      	ldr	r2, [r4, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800c330:	e852 3f00 	ldrex	r3, [r2]
+ 800c334:	f023 0310 	bic.w	r3, r3, #16
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800c338:	e842 3100 	strex	r1, r3, [r2]
+ 800c33c:	2900      	cmp	r1, #0
+ 800c33e:	d1f6      	bne.n	800c32e <UART_RxISR_16BIT_FIFOEN+0x14e>
+          if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET)
+ 800c340:	6823      	ldr	r3, [r4, #0]
+ 800c342:	69da      	ldr	r2, [r3, #28]
+ 800c344:	f012 0f10 	tst.w	r2, #16
+ 800c348:	d001      	beq.n	800c34e <UART_RxISR_16BIT_FIFOEN+0x16e>
+            __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF);
+ 800c34a:	2210      	movs	r2, #16
+ 800c34c:	621a      	str	r2, [r3, #32]
+          HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize);
+ 800c34e:	f8b4 105c 	ldrh.w	r1, [r4, #92]	; 0x5c
+ 800c352:	4620      	mov	r0, r4
+ 800c354:	f7ff fbdf 	bl	800bb16 <HAL_UARTEx_RxEventCallback>
+ 800c358:	e763      	b.n	800c222 <UART_RxISR_16BIT_FIFOEN+0x42>
+    rxdatacount = huart->RxXferCount;
+ 800c35a:	f8b4 305e 	ldrh.w	r3, [r4, #94]	; 0x5e
+ 800c35e:	b29b      	uxth	r3, r3
+    if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess))
+ 800c360:	2b00      	cmp	r3, #0
+ 800c362:	f43f af4f 	beq.w	800c204 <UART_RxISR_16BIT_FIFOEN+0x24>
+ 800c366:	f8b4 2068 	ldrh.w	r2, [r4, #104]	; 0x68
+ 800c36a:	429a      	cmp	r2, r3
+ 800c36c:	f67f af4a 	bls.w	800c204 <UART_RxISR_16BIT_FIFOEN+0x24>
+      ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_RXFTIE);
+ 800c370:	6822      	ldr	r2, [r4, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800c372:	f102 0308 	add.w	r3, r2, #8
+ 800c376:	e853 3f00 	ldrex	r3, [r3]
+ 800c37a:	f023 5380 	bic.w	r3, r3, #268435456	; 0x10000000
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800c37e:	3208      	adds	r2, #8
+ 800c380:	e842 3100 	strex	r1, r3, [r2]
+ 800c384:	2900      	cmp	r1, #0
+ 800c386:	d1f3      	bne.n	800c370 <UART_RxISR_16BIT_FIFOEN+0x190>
+      huart->RxISR = UART_RxISR_16BIT;
+ 800c388:	4b06      	ldr	r3, [pc, #24]	; (800c3a4 <UART_RxISR_16BIT_FIFOEN+0x1c4>)
+ 800c38a:	6763      	str	r3, [r4, #116]	; 0x74
+      ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE);
+ 800c38c:	6822      	ldr	r2, [r4, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800c38e:	e852 3f00 	ldrex	r3, [r2]
+ 800c392:	f043 0320 	orr.w	r3, r3, #32
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800c396:	e842 3100 	strex	r1, r3, [r2]
+ 800c39a:	2900      	cmp	r1, #0
+ 800c39c:	d1f6      	bne.n	800c38c <UART_RxISR_16BIT_FIFOEN+0x1ac>
+ 800c39e:	e731      	b.n	800c204 <UART_RxISR_16BIT_FIFOEN+0x24>
+ 800c3a0:	40008000 	.word	0x40008000
+ 800c3a4:	0800bf3d 	.word	0x0800bf3d
+
+0800c3a8 <UART_SetConfig>:
+{
+ 800c3a8:	b570      	push	{r4, r5, r6, lr}
+ 800c3aa:	4604      	mov	r4, r0
+  if (UART_INSTANCE_LOWPOWER(huart))
+ 800c3ac:	6801      	ldr	r1, [r0, #0]
+  tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.OverSampling ;
+ 800c3ae:	6883      	ldr	r3, [r0, #8]
+ 800c3b0:	6902      	ldr	r2, [r0, #16]
+ 800c3b2:	4313      	orrs	r3, r2
+ 800c3b4:	6942      	ldr	r2, [r0, #20]
+ 800c3b6:	4313      	orrs	r3, r2
+ 800c3b8:	69c2      	ldr	r2, [r0, #28]
+ 800c3ba:	4313      	orrs	r3, r2
+  MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg);
+ 800c3bc:	6808      	ldr	r0, [r1, #0]
+ 800c3be:	4a9d      	ldr	r2, [pc, #628]	; (800c634 <UART_SetConfig+0x28c>)
+ 800c3c0:	4002      	ands	r2, r0
+ 800c3c2:	431a      	orrs	r2, r3
+ 800c3c4:	600a      	str	r2, [r1, #0]
+  MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits);
+ 800c3c6:	6822      	ldr	r2, [r4, #0]
+ 800c3c8:	6853      	ldr	r3, [r2, #4]
+ 800c3ca:	f423 5340 	bic.w	r3, r3, #12288	; 0x3000
+ 800c3ce:	68e1      	ldr	r1, [r4, #12]
+ 800c3d0:	430b      	orrs	r3, r1
+ 800c3d2:	6053      	str	r3, [r2, #4]
+  tmpreg = (uint32_t)huart->Init.HwFlowCtl;
+ 800c3d4:	69a1      	ldr	r1, [r4, #24]
+  if (!(UART_INSTANCE_LOWPOWER(huart)))
+ 800c3d6:	6822      	ldr	r2, [r4, #0]
+ 800c3d8:	4b97      	ldr	r3, [pc, #604]	; (800c638 <UART_SetConfig+0x290>)
+ 800c3da:	429a      	cmp	r2, r3
+ 800c3dc:	d001      	beq.n	800c3e2 <UART_SetConfig+0x3a>
+    tmpreg |= huart->Init.OneBitSampling;
+ 800c3de:	6a23      	ldr	r3, [r4, #32]
+ 800c3e0:	4319      	orrs	r1, r3
+  MODIFY_REG(huart->Instance->CR3, USART_CR3_FIELDS, tmpreg);
+ 800c3e2:	6893      	ldr	r3, [r2, #8]
+ 800c3e4:	f023 436e 	bic.w	r3, r3, #3992977408	; 0xee000000
+ 800c3e8:	f423 6330 	bic.w	r3, r3, #2816	; 0xb00
+ 800c3ec:	430b      	orrs	r3, r1
+ 800c3ee:	6093      	str	r3, [r2, #8]
+  MODIFY_REG(huart->Instance->PRESC, USART_PRESC_PRESCALER, huart->Init.ClockPrescaler);
+ 800c3f0:	6822      	ldr	r2, [r4, #0]
+ 800c3f2:	6ad3      	ldr	r3, [r2, #44]	; 0x2c
+ 800c3f4:	f023 030f 	bic.w	r3, r3, #15
+ 800c3f8:	6a61      	ldr	r1, [r4, #36]	; 0x24
+ 800c3fa:	430b      	orrs	r3, r1
+ 800c3fc:	62d3      	str	r3, [r2, #44]	; 0x2c
+  UART_GETCLOCKSOURCE(huart, clocksource);
+ 800c3fe:	6823      	ldr	r3, [r4, #0]
+ 800c400:	4a8e      	ldr	r2, [pc, #568]	; (800c63c <UART_SetConfig+0x294>)
+ 800c402:	4293      	cmp	r3, r2
+ 800c404:	d01c      	beq.n	800c440 <UART_SetConfig+0x98>
+ 800c406:	4a8e      	ldr	r2, [pc, #568]	; (800c640 <UART_SetConfig+0x298>)
+ 800c408:	4293      	cmp	r3, r2
+ 800c40a:	d031      	beq.n	800c470 <UART_SetConfig+0xc8>
+ 800c40c:	4a8a      	ldr	r2, [pc, #552]	; (800c638 <UART_SetConfig+0x290>)
+ 800c40e:	4293      	cmp	r3, r2
+ 800c410:	d04b      	beq.n	800c4aa <UART_SetConfig+0x102>
+ 800c412:	2210      	movs	r2, #16
+  if (UART_INSTANCE_LOWPOWER(huart))
+ 800c414:	4988      	ldr	r1, [pc, #544]	; (800c638 <UART_SetConfig+0x290>)
+ 800c416:	428b      	cmp	r3, r1
+ 800c418:	d068      	beq.n	800c4ec <UART_SetConfig+0x144>
+  else if (huart->Init.OverSampling == UART_OVERSAMPLING_8)
+ 800c41a:	69e0      	ldr	r0, [r4, #28]
+ 800c41c:	f5b0 4f00 	cmp.w	r0, #32768	; 0x8000
+ 800c420:	f000 80a5 	beq.w	800c56e <UART_SetConfig+0x1c6>
+    switch (clocksource)
+ 800c424:	2a08      	cmp	r2, #8
+ 800c426:	f200 811f 	bhi.w	800c668 <UART_SetConfig+0x2c0>
+ 800c42a:	e8df f012 	tbh	[pc, r2, lsl #1]
+ 800c42e:	00d3      	.short	0x00d3
+ 800c430:	00d100f5 	.word	0x00d100f5
+ 800c434:	00f8011d 	.word	0x00f8011d
+ 800c438:	011d011d 	.word	0x011d011d
+ 800c43c:	00fb011d 	.word	0x00fb011d
+  return (uint32_t)(READ_BIT(RCC->CCIPR, USARTx) | (USARTx << 16));
+ 800c440:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800c444:	f8d2 2088 	ldr.w	r2, [r2, #136]	; 0x88
+ 800c448:	f002 0203 	and.w	r2, r2, #3
+ 800c44c:	f442 3240 	orr.w	r2, r2, #196608	; 0x30000
+  UART_GETCLOCKSOURCE(huart, clocksource);
+ 800c450:	f5a2 3240 	sub.w	r2, r2, #196608	; 0x30000
+ 800c454:	2a03      	cmp	r2, #3
+ 800c456:	d809      	bhi.n	800c46c <UART_SetConfig+0xc4>
+ 800c458:	e8df f002 	tbb	[pc, r2]
+ 800c45c:	063c0402 	.word	0x063c0402
+ 800c460:	2201      	movs	r2, #1
+ 800c462:	e7d7      	b.n	800c414 <UART_SetConfig+0x6c>
+ 800c464:	2204      	movs	r2, #4
+ 800c466:	e7d5      	b.n	800c414 <UART_SetConfig+0x6c>
+ 800c468:	2208      	movs	r2, #8
+ 800c46a:	e7d3      	b.n	800c414 <UART_SetConfig+0x6c>
+ 800c46c:	2210      	movs	r2, #16
+ 800c46e:	e7d1      	b.n	800c414 <UART_SetConfig+0x6c>
+ 800c470:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800c474:	f8d2 2088 	ldr.w	r2, [r2, #136]	; 0x88
+ 800c478:	f002 020c 	and.w	r2, r2, #12
+ 800c47c:	f442 2240 	orr.w	r2, r2, #786432	; 0xc0000
+ 800c480:	f5a2 2240 	sub.w	r2, r2, #786432	; 0xc0000
+ 800c484:	2a0c      	cmp	r2, #12
+ 800c486:	d80e      	bhi.n	800c4a6 <UART_SetConfig+0xfe>
+ 800c488:	e8df f002 	tbb	[pc, r2]
+ 800c48c:	0d0d0d07 	.word	0x0d0d0d07
+ 800c490:	0d0d0d09 	.word	0x0d0d0d09
+ 800c494:	0d0d0d26 	.word	0x0d0d0d26
+ 800c498:	0b          	.byte	0x0b
+ 800c499:	00          	.byte	0x00
+ 800c49a:	2200      	movs	r2, #0
+ 800c49c:	e7ba      	b.n	800c414 <UART_SetConfig+0x6c>
+ 800c49e:	2204      	movs	r2, #4
+ 800c4a0:	e7b8      	b.n	800c414 <UART_SetConfig+0x6c>
+ 800c4a2:	2208      	movs	r2, #8
+ 800c4a4:	e7b6      	b.n	800c414 <UART_SetConfig+0x6c>
+ 800c4a6:	2210      	movs	r2, #16
+ 800c4a8:	e7b4      	b.n	800c414 <UART_SetConfig+0x6c>
+  return (uint32_t)(READ_BIT(RCC->CCIPR, LPUARTx));
+ 800c4aa:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800c4ae:	f8d2 2088 	ldr.w	r2, [r2, #136]	; 0x88
+ 800c4b2:	f402 6240 	and.w	r2, r2, #3072	; 0xc00
+ 800c4b6:	f5b2 6f00 	cmp.w	r2, #2048	; 0x800
+ 800c4ba:	d00f      	beq.n	800c4dc <UART_SetConfig+0x134>
+ 800c4bc:	d805      	bhi.n	800c4ca <UART_SetConfig+0x122>
+ 800c4be:	b17a      	cbz	r2, 800c4e0 <UART_SetConfig+0x138>
+ 800c4c0:	f5b2 6f80 	cmp.w	r2, #1024	; 0x400
+ 800c4c4:	d10e      	bne.n	800c4e4 <UART_SetConfig+0x13c>
+ 800c4c6:	2204      	movs	r2, #4
+ 800c4c8:	e7a4      	b.n	800c414 <UART_SetConfig+0x6c>
+ 800c4ca:	f5b2 6f40 	cmp.w	r2, #3072	; 0xc00
+ 800c4ce:	d10b      	bne.n	800c4e8 <UART_SetConfig+0x140>
+ 800c4d0:	2208      	movs	r2, #8
+ 800c4d2:	e79f      	b.n	800c414 <UART_SetConfig+0x6c>
+ 800c4d4:	2202      	movs	r2, #2
+ 800c4d6:	e79d      	b.n	800c414 <UART_SetConfig+0x6c>
+ 800c4d8:	2202      	movs	r2, #2
+ 800c4da:	e79b      	b.n	800c414 <UART_SetConfig+0x6c>
+ 800c4dc:	2202      	movs	r2, #2
+ 800c4de:	e799      	b.n	800c414 <UART_SetConfig+0x6c>
+ 800c4e0:	2200      	movs	r2, #0
+ 800c4e2:	e797      	b.n	800c414 <UART_SetConfig+0x6c>
+ 800c4e4:	2210      	movs	r2, #16
+ 800c4e6:	e795      	b.n	800c414 <UART_SetConfig+0x6c>
+ 800c4e8:	2210      	movs	r2, #16
+ 800c4ea:	e793      	b.n	800c414 <UART_SetConfig+0x6c>
+    switch (clocksource)
+ 800c4ec:	2a08      	cmp	r2, #8
+ 800c4ee:	f200 809c 	bhi.w	800c62a <UART_SetConfig+0x282>
+ 800c4f2:	e8df f002 	tbb	[pc, r2]
+ 800c4f6:	9a08      	.short	0x9a08
+ 800c4f8:	9a379a3a 	.word	0x9a379a3a
+ 800c4fc:	9a9a      	.short	0x9a9a
+ 800c4fe:	05          	.byte	0x05
+ 800c4ff:	00          	.byte	0x00
+ 800c500:	f44f 4000 	mov.w	r0, #32768	; 0x8000
+ 800c504:	e004      	b.n	800c510 <UART_SetConfig+0x168>
+        pclk = HAL_RCC_GetPCLK1Freq();
+ 800c506:	f7fe faab 	bl	800aa60 <HAL_RCC_GetPCLK1Freq>
+    if (pclk != 0U)
+ 800c50a:	2800      	cmp	r0, #0
+ 800c50c:	f000 808f 	beq.w	800c62e <UART_SetConfig+0x286>
+      lpuart_ker_ck_pres = (pclk / UARTPrescTable[huart->Init.ClockPrescaler]);
+ 800c510:	6a62      	ldr	r2, [r4, #36]	; 0x24
+ 800c512:	4b4c      	ldr	r3, [pc, #304]	; (800c644 <UART_SetConfig+0x29c>)
+ 800c514:	f833 2012 	ldrh.w	r2, [r3, r2, lsl #1]
+ 800c518:	fbb0 f3f2 	udiv	r3, r0, r2
+      if ((lpuart_ker_ck_pres < (3U * huart->Init.BaudRate)) ||
+ 800c51c:	6865      	ldr	r5, [r4, #4]
+ 800c51e:	eb05 0145 	add.w	r1, r5, r5, lsl #1
+ 800c522:	4299      	cmp	r1, r3
+ 800c524:	f200 8094 	bhi.w	800c650 <UART_SetConfig+0x2a8>
+ 800c528:	ebb3 3f05 	cmp.w	r3, r5, lsl #12
+ 800c52c:	f200 8092 	bhi.w	800c654 <UART_SetConfig+0x2ac>
+        usartdiv = (uint32_t)(UART_DIV_LPUART(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler));
+ 800c530:	2600      	movs	r6, #0
+ 800c532:	4633      	mov	r3, r6
+ 800c534:	4631      	mov	r1, r6
+ 800c536:	f7f5 faeb 	bl	8001b10 <__aeabi_uldivmod>
+ 800c53a:	0209      	lsls	r1, r1, #8
+ 800c53c:	ea41 6110 	orr.w	r1, r1, r0, lsr #24
+ 800c540:	0200      	lsls	r0, r0, #8
+ 800c542:	086b      	lsrs	r3, r5, #1
+ 800c544:	18c0      	adds	r0, r0, r3
+ 800c546:	462a      	mov	r2, r5
+ 800c548:	4633      	mov	r3, r6
+ 800c54a:	f141 0100 	adc.w	r1, r1, #0
+ 800c54e:	f7f5 fadf 	bl	8001b10 <__aeabi_uldivmod>
+        if ((usartdiv >= LPUART_BRR_MIN) && (usartdiv <= LPUART_BRR_MAX))
+ 800c552:	f5a0 7240 	sub.w	r2, r0, #768	; 0x300
+ 800c556:	4b3c      	ldr	r3, [pc, #240]	; (800c648 <UART_SetConfig+0x2a0>)
+ 800c558:	429a      	cmp	r2, r3
+ 800c55a:	d87d      	bhi.n	800c658 <UART_SetConfig+0x2b0>
+          huart->Instance->BRR = usartdiv;
+ 800c55c:	6823      	ldr	r3, [r4, #0]
+ 800c55e:	60d8      	str	r0, [r3, #12]
+ 800c560:	4630      	mov	r0, r6
+ 800c562:	e050      	b.n	800c606 <UART_SetConfig+0x25e>
+        pclk = HAL_RCC_GetSysClockFreq();
+ 800c564:	f7fd fda0 	bl	800a0a8 <HAL_RCC_GetSysClockFreq>
+        break;
+ 800c568:	e7cf      	b.n	800c50a <UART_SetConfig+0x162>
+        pclk = (uint32_t) HSI_VALUE;
+ 800c56a:	4838      	ldr	r0, [pc, #224]	; (800c64c <UART_SetConfig+0x2a4>)
+ 800c56c:	e7d0      	b.n	800c510 <UART_SetConfig+0x168>
+    switch (clocksource)
+ 800c56e:	2a08      	cmp	r2, #8
+ 800c570:	d874      	bhi.n	800c65c <UART_SetConfig+0x2b4>
+ 800c572:	e8df f002 	tbb	[pc, r2]
+ 800c576:	2707      	.short	0x2707
+ 800c578:	732a7305 	.word	0x732a7305
+ 800c57c:	7373      	.short	0x7373
+ 800c57e:	0b          	.byte	0x0b
+ 800c57f:	00          	.byte	0x00
+ 800c580:	4832      	ldr	r0, [pc, #200]	; (800c64c <UART_SetConfig+0x2a4>)
+ 800c582:	e003      	b.n	800c58c <UART_SetConfig+0x1e4>
+        pclk = HAL_RCC_GetPCLK1Freq();
+ 800c584:	f7fe fa6c 	bl	800aa60 <HAL_RCC_GetPCLK1Freq>
+    if (pclk != 0U)
+ 800c588:	2800      	cmp	r0, #0
+ 800c58a:	d069      	beq.n	800c660 <UART_SetConfig+0x2b8>
+      usartdiv = (uint32_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler));
+ 800c58c:	6a62      	ldr	r2, [r4, #36]	; 0x24
+ 800c58e:	4b2d      	ldr	r3, [pc, #180]	; (800c644 <UART_SetConfig+0x29c>)
+ 800c590:	f833 3012 	ldrh.w	r3, [r3, r2, lsl #1]
+ 800c594:	fbb0 f0f3 	udiv	r0, r0, r3
+ 800c598:	6862      	ldr	r2, [r4, #4]
+ 800c59a:	0853      	lsrs	r3, r2, #1
+ 800c59c:	eb03 0340 	add.w	r3, r3, r0, lsl #1
+ 800c5a0:	fbb3 f3f2 	udiv	r3, r3, r2
+      if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX))
+ 800c5a4:	f1a3 0110 	sub.w	r1, r3, #16
+ 800c5a8:	f64f 72ef 	movw	r2, #65519	; 0xffef
+ 800c5ac:	4291      	cmp	r1, r2
+ 800c5ae:	d859      	bhi.n	800c664 <UART_SetConfig+0x2bc>
+        brrtemp = (uint16_t)(usartdiv & 0xFFF0U);
+ 800c5b0:	b29a      	uxth	r2, r3
+ 800c5b2:	f022 020f 	bic.w	r2, r2, #15
+        brrtemp |= (uint16_t)((usartdiv & (uint16_t)0x000FU) >> 1U);
+ 800c5b6:	f3c3 0342 	ubfx	r3, r3, #1, #3
+ 800c5ba:	4313      	orrs	r3, r2
+        huart->Instance->BRR = brrtemp;
+ 800c5bc:	6822      	ldr	r2, [r4, #0]
+ 800c5be:	60d3      	str	r3, [r2, #12]
+ 800c5c0:	2000      	movs	r0, #0
+ 800c5c2:	e020      	b.n	800c606 <UART_SetConfig+0x25e>
+        pclk = HAL_RCC_GetPCLK2Freq();
+ 800c5c4:	f7fe fa5c 	bl	800aa80 <HAL_RCC_GetPCLK2Freq>
+        break;
+ 800c5c8:	e7de      	b.n	800c588 <UART_SetConfig+0x1e0>
+        pclk = HAL_RCC_GetSysClockFreq();
+ 800c5ca:	f7fd fd6d 	bl	800a0a8 <HAL_RCC_GetSysClockFreq>
+        break;
+ 800c5ce:	e7db      	b.n	800c588 <UART_SetConfig+0x1e0>
+    switch (clocksource)
+ 800c5d0:	481e      	ldr	r0, [pc, #120]	; (800c64c <UART_SetConfig+0x2a4>)
+ 800c5d2:	e003      	b.n	800c5dc <UART_SetConfig+0x234>
+        pclk = HAL_RCC_GetPCLK1Freq();
+ 800c5d4:	f7fe fa44 	bl	800aa60 <HAL_RCC_GetPCLK1Freq>
+    if (pclk != 0U)
+ 800c5d8:	2800      	cmp	r0, #0
+ 800c5da:	d047      	beq.n	800c66c <UART_SetConfig+0x2c4>
+      usartdiv = (uint32_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler));
+ 800c5dc:	6a62      	ldr	r2, [r4, #36]	; 0x24
+ 800c5de:	4b19      	ldr	r3, [pc, #100]	; (800c644 <UART_SetConfig+0x29c>)
+ 800c5e0:	f833 3012 	ldrh.w	r3, [r3, r2, lsl #1]
+ 800c5e4:	fbb0 f0f3 	udiv	r0, r0, r3
+ 800c5e8:	6863      	ldr	r3, [r4, #4]
+ 800c5ea:	eb00 0053 	add.w	r0, r0, r3, lsr #1
+ 800c5ee:	fbb0 f0f3 	udiv	r0, r0, r3
+      if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX))
+ 800c5f2:	f1a0 0210 	sub.w	r2, r0, #16
+ 800c5f6:	f64f 73ef 	movw	r3, #65519	; 0xffef
+ 800c5fa:	429a      	cmp	r2, r3
+ 800c5fc:	d838      	bhi.n	800c670 <UART_SetConfig+0x2c8>
+        huart->Instance->BRR = (uint16_t)usartdiv;
+ 800c5fe:	6823      	ldr	r3, [r4, #0]
+ 800c600:	b280      	uxth	r0, r0
+ 800c602:	60d8      	str	r0, [r3, #12]
+ 800c604:	2000      	movs	r0, #0
+  huart->NbTxDataToProcess = 1;
+ 800c606:	2301      	movs	r3, #1
+ 800c608:	f8a4 306a 	strh.w	r3, [r4, #106]	; 0x6a
+  huart->NbRxDataToProcess = 1;
+ 800c60c:	f8a4 3068 	strh.w	r3, [r4, #104]	; 0x68
+  huart->RxISR = NULL;
+ 800c610:	2300      	movs	r3, #0
+ 800c612:	6763      	str	r3, [r4, #116]	; 0x74
+  huart->TxISR = NULL;
+ 800c614:	67a3      	str	r3, [r4, #120]	; 0x78
+}
+ 800c616:	bd70      	pop	{r4, r5, r6, pc}
+        pclk = HAL_RCC_GetPCLK2Freq();
+ 800c618:	f7fe fa32 	bl	800aa80 <HAL_RCC_GetPCLK2Freq>
+        break;
+ 800c61c:	e7dc      	b.n	800c5d8 <UART_SetConfig+0x230>
+        pclk = HAL_RCC_GetSysClockFreq();
+ 800c61e:	f7fd fd43 	bl	800a0a8 <HAL_RCC_GetSysClockFreq>
+        break;
+ 800c622:	e7d9      	b.n	800c5d8 <UART_SetConfig+0x230>
+        pclk = (uint32_t) LSE_VALUE;
+ 800c624:	f44f 4000 	mov.w	r0, #32768	; 0x8000
+ 800c628:	e7d8      	b.n	800c5dc <UART_SetConfig+0x234>
+    switch (clocksource)
+ 800c62a:	2001      	movs	r0, #1
+ 800c62c:	e7eb      	b.n	800c606 <UART_SetConfig+0x25e>
+ 800c62e:	2000      	movs	r0, #0
+ 800c630:	e7e9      	b.n	800c606 <UART_SetConfig+0x25e>
+ 800c632:	bf00      	nop
+ 800c634:	cfff69f3 	.word	0xcfff69f3
+ 800c638:	40008000 	.word	0x40008000
+ 800c63c:	40013800 	.word	0x40013800
+ 800c640:	40004400 	.word	0x40004400
+ 800c644:	0801859c 	.word	0x0801859c
+ 800c648:	000ffcff 	.word	0x000ffcff
+ 800c64c:	00f42400 	.word	0x00f42400
+        ret = HAL_ERROR;
+ 800c650:	2001      	movs	r0, #1
+ 800c652:	e7d8      	b.n	800c606 <UART_SetConfig+0x25e>
+ 800c654:	2001      	movs	r0, #1
+ 800c656:	e7d6      	b.n	800c606 <UART_SetConfig+0x25e>
+          ret = HAL_ERROR;
+ 800c658:	2001      	movs	r0, #1
+ 800c65a:	e7d4      	b.n	800c606 <UART_SetConfig+0x25e>
+    switch (clocksource)
+ 800c65c:	2001      	movs	r0, #1
+ 800c65e:	e7d2      	b.n	800c606 <UART_SetConfig+0x25e>
+ 800c660:	2000      	movs	r0, #0
+ 800c662:	e7d0      	b.n	800c606 <UART_SetConfig+0x25e>
+        ret = HAL_ERROR;
+ 800c664:	2001      	movs	r0, #1
+ 800c666:	e7ce      	b.n	800c606 <UART_SetConfig+0x25e>
+    switch (clocksource)
+ 800c668:	2001      	movs	r0, #1
+ 800c66a:	e7cc      	b.n	800c606 <UART_SetConfig+0x25e>
+ 800c66c:	2000      	movs	r0, #0
+ 800c66e:	e7ca      	b.n	800c606 <UART_SetConfig+0x25e>
+        ret = HAL_ERROR;
+ 800c670:	2001      	movs	r0, #1
+ 800c672:	e7c8      	b.n	800c606 <UART_SetConfig+0x25e>
+
+0800c674 <UART_AdvFeatureConfig>:
+  if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_TXINVERT_INIT))
+ 800c674:	6a83      	ldr	r3, [r0, #40]	; 0x28
+ 800c676:	f013 0f01 	tst.w	r3, #1
+ 800c67a:	d006      	beq.n	800c68a <UART_AdvFeatureConfig+0x16>
+    MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert);
+ 800c67c:	6802      	ldr	r2, [r0, #0]
+ 800c67e:	6853      	ldr	r3, [r2, #4]
+ 800c680:	f423 3300 	bic.w	r3, r3, #131072	; 0x20000
+ 800c684:	6ac1      	ldr	r1, [r0, #44]	; 0x2c
+ 800c686:	430b      	orrs	r3, r1
+ 800c688:	6053      	str	r3, [r2, #4]
+  if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXINVERT_INIT))
+ 800c68a:	6a83      	ldr	r3, [r0, #40]	; 0x28
+ 800c68c:	f013 0f02 	tst.w	r3, #2
+ 800c690:	d006      	beq.n	800c6a0 <UART_AdvFeatureConfig+0x2c>
+    MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert);
+ 800c692:	6802      	ldr	r2, [r0, #0]
+ 800c694:	6853      	ldr	r3, [r2, #4]
+ 800c696:	f423 3380 	bic.w	r3, r3, #65536	; 0x10000
+ 800c69a:	6b01      	ldr	r1, [r0, #48]	; 0x30
+ 800c69c:	430b      	orrs	r3, r1
+ 800c69e:	6053      	str	r3, [r2, #4]
+  if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT))
+ 800c6a0:	6a83      	ldr	r3, [r0, #40]	; 0x28
+ 800c6a2:	f013 0f04 	tst.w	r3, #4
+ 800c6a6:	d006      	beq.n	800c6b6 <UART_AdvFeatureConfig+0x42>
+    MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert);
+ 800c6a8:	6802      	ldr	r2, [r0, #0]
+ 800c6aa:	6853      	ldr	r3, [r2, #4]
+ 800c6ac:	f423 2380 	bic.w	r3, r3, #262144	; 0x40000
+ 800c6b0:	6b41      	ldr	r1, [r0, #52]	; 0x34
+ 800c6b2:	430b      	orrs	r3, r1
+ 800c6b4:	6053      	str	r3, [r2, #4]
+  if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT))
+ 800c6b6:	6a83      	ldr	r3, [r0, #40]	; 0x28
+ 800c6b8:	f013 0f08 	tst.w	r3, #8
+ 800c6bc:	d006      	beq.n	800c6cc <UART_AdvFeatureConfig+0x58>
+    MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap);
+ 800c6be:	6802      	ldr	r2, [r0, #0]
+ 800c6c0:	6853      	ldr	r3, [r2, #4]
+ 800c6c2:	f423 4300 	bic.w	r3, r3, #32768	; 0x8000
+ 800c6c6:	6b81      	ldr	r1, [r0, #56]	; 0x38
+ 800c6c8:	430b      	orrs	r3, r1
+ 800c6ca:	6053      	str	r3, [r2, #4]
+  if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT))
+ 800c6cc:	6a83      	ldr	r3, [r0, #40]	; 0x28
+ 800c6ce:	f013 0f10 	tst.w	r3, #16
+ 800c6d2:	d006      	beq.n	800c6e2 <UART_AdvFeatureConfig+0x6e>
+    MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable);
+ 800c6d4:	6802      	ldr	r2, [r0, #0]
+ 800c6d6:	6893      	ldr	r3, [r2, #8]
+ 800c6d8:	f423 5380 	bic.w	r3, r3, #4096	; 0x1000
+ 800c6dc:	6bc1      	ldr	r1, [r0, #60]	; 0x3c
+ 800c6de:	430b      	orrs	r3, r1
+ 800c6e0:	6093      	str	r3, [r2, #8]
+  if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DMADISABLEONERROR_INIT))
+ 800c6e2:	6a83      	ldr	r3, [r0, #40]	; 0x28
+ 800c6e4:	f013 0f20 	tst.w	r3, #32
+ 800c6e8:	d006      	beq.n	800c6f8 <UART_AdvFeatureConfig+0x84>
+    MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError);
+ 800c6ea:	6802      	ldr	r2, [r0, #0]
+ 800c6ec:	6893      	ldr	r3, [r2, #8]
+ 800c6ee:	f423 5300 	bic.w	r3, r3, #8192	; 0x2000
+ 800c6f2:	6c01      	ldr	r1, [r0, #64]	; 0x40
+ 800c6f4:	430b      	orrs	r3, r1
+ 800c6f6:	6093      	str	r3, [r2, #8]
+  if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_AUTOBAUDRATE_INIT))
+ 800c6f8:	6a83      	ldr	r3, [r0, #40]	; 0x28
+ 800c6fa:	f013 0f40 	tst.w	r3, #64	; 0x40
+ 800c6fe:	d00a      	beq.n	800c716 <UART_AdvFeatureConfig+0xa2>
+    MODIFY_REG(huart->Instance->CR2, USART_CR2_ABREN, huart->AdvancedInit.AutoBaudRateEnable);
+ 800c700:	6802      	ldr	r2, [r0, #0]
+ 800c702:	6853      	ldr	r3, [r2, #4]
+ 800c704:	f423 1380 	bic.w	r3, r3, #1048576	; 0x100000
+ 800c708:	6c41      	ldr	r1, [r0, #68]	; 0x44
+ 800c70a:	430b      	orrs	r3, r1
+ 800c70c:	6053      	str	r3, [r2, #4]
+    if (huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE)
+ 800c70e:	6c43      	ldr	r3, [r0, #68]	; 0x44
+ 800c710:	f5b3 1f80 	cmp.w	r3, #1048576	; 0x100000
+ 800c714:	d00b      	beq.n	800c72e <UART_AdvFeatureConfig+0xba>
+  if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_MSBFIRST_INIT))
+ 800c716:	6a83      	ldr	r3, [r0, #40]	; 0x28
+ 800c718:	f013 0f80 	tst.w	r3, #128	; 0x80
+ 800c71c:	d006      	beq.n	800c72c <UART_AdvFeatureConfig+0xb8>
+    MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst);
+ 800c71e:	6802      	ldr	r2, [r0, #0]
+ 800c720:	6853      	ldr	r3, [r2, #4]
+ 800c722:	f423 2300 	bic.w	r3, r3, #524288	; 0x80000
+ 800c726:	6cc1      	ldr	r1, [r0, #76]	; 0x4c
+ 800c728:	430b      	orrs	r3, r1
+ 800c72a:	6053      	str	r3, [r2, #4]
+}
+ 800c72c:	4770      	bx	lr
+      MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode);
+ 800c72e:	6802      	ldr	r2, [r0, #0]
+ 800c730:	6853      	ldr	r3, [r2, #4]
+ 800c732:	f423 03c0 	bic.w	r3, r3, #6291456	; 0x600000
+ 800c736:	6c81      	ldr	r1, [r0, #72]	; 0x48
+ 800c738:	430b      	orrs	r3, r1
+ 800c73a:	6053      	str	r3, [r2, #4]
+ 800c73c:	e7eb      	b.n	800c716 <UART_AdvFeatureConfig+0xa2>
+
+0800c73e <UART_WaitOnFlagUntilTimeout>:
+{
+ 800c73e:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
+ 800c742:	4605      	mov	r5, r0
+ 800c744:	460f      	mov	r7, r1
+ 800c746:	4616      	mov	r6, r2
+ 800c748:	4699      	mov	r9, r3
+ 800c74a:	f8dd 8020 	ldr.w	r8, [sp, #32]
+  while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status)
+ 800c74e:	682b      	ldr	r3, [r5, #0]
+ 800c750:	69dc      	ldr	r4, [r3, #28]
+ 800c752:	ea37 0404 	bics.w	r4, r7, r4
+ 800c756:	bf0c      	ite	eq
+ 800c758:	2401      	moveq	r4, #1
+ 800c75a:	2400      	movne	r4, #0
+ 800c75c:	42b4      	cmp	r4, r6
+ 800c75e:	d157      	bne.n	800c810 <UART_WaitOnFlagUntilTimeout+0xd2>
+    if (Timeout != HAL_MAX_DELAY)
+ 800c760:	f1b8 3fff 	cmp.w	r8, #4294967295
+ 800c764:	d0f3      	beq.n	800c74e <UART_WaitOnFlagUntilTimeout+0x10>
+      if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
+ 800c766:	f7f6 fa97 	bl	8002c98 <HAL_GetTick>
+ 800c76a:	eba0 0009 	sub.w	r0, r0, r9
+ 800c76e:	4540      	cmp	r0, r8
+ 800c770:	d82f      	bhi.n	800c7d2 <UART_WaitOnFlagUntilTimeout+0x94>
+ 800c772:	f1b8 0f00 	cmp.w	r8, #0
+ 800c776:	d02c      	beq.n	800c7d2 <UART_WaitOnFlagUntilTimeout+0x94>
+      if (READ_BIT(huart->Instance->CR1, USART_CR1_RE) != 0U)
+ 800c778:	682b      	ldr	r3, [r5, #0]
+ 800c77a:	681a      	ldr	r2, [r3, #0]
+ 800c77c:	f012 0f04 	tst.w	r2, #4
+ 800c780:	d0e5      	beq.n	800c74e <UART_WaitOnFlagUntilTimeout+0x10>
+        if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RTOF) == SET)
+ 800c782:	69da      	ldr	r2, [r3, #28]
+ 800c784:	f412 6f00 	tst.w	r2, #2048	; 0x800
+ 800c788:	d0e1      	beq.n	800c74e <UART_WaitOnFlagUntilTimeout+0x10>
+          __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF);
+ 800c78a:	f44f 6200 	mov.w	r2, #2048	; 0x800
+ 800c78e:	621a      	str	r2, [r3, #32]
+          ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE |
+ 800c790:	682a      	ldr	r2, [r5, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800c792:	e852 3f00 	ldrex	r3, [r2]
+ 800c796:	f423 73d0 	bic.w	r3, r3, #416	; 0x1a0
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800c79a:	e842 3100 	strex	r1, r3, [r2]
+ 800c79e:	2900      	cmp	r1, #0
+ 800c7a0:	d1f6      	bne.n	800c790 <UART_WaitOnFlagUntilTimeout+0x52>
+          ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
+ 800c7a2:	682a      	ldr	r2, [r5, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800c7a4:	f102 0308 	add.w	r3, r2, #8
+ 800c7a8:	e853 3f00 	ldrex	r3, [r3]
+ 800c7ac:	f023 0301 	bic.w	r3, r3, #1
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800c7b0:	3208      	adds	r2, #8
+ 800c7b2:	e842 3100 	strex	r1, r3, [r2]
+ 800c7b6:	2900      	cmp	r1, #0
+ 800c7b8:	d1f3      	bne.n	800c7a2 <UART_WaitOnFlagUntilTimeout+0x64>
+          huart->gState = HAL_UART_STATE_READY;
+ 800c7ba:	2320      	movs	r3, #32
+ 800c7bc:	f8c5 3088 	str.w	r3, [r5, #136]	; 0x88
+          huart->RxState = HAL_UART_STATE_READY;
+ 800c7c0:	f8c5 308c 	str.w	r3, [r5, #140]	; 0x8c
+          huart->ErrorCode = HAL_UART_ERROR_RTO;
+ 800c7c4:	f8c5 3090 	str.w	r3, [r5, #144]	; 0x90
+          __HAL_UNLOCK(huart);
+ 800c7c8:	2300      	movs	r3, #0
+ 800c7ca:	f885 3084 	strb.w	r3, [r5, #132]	; 0x84
+          return HAL_TIMEOUT;
+ 800c7ce:	2003      	movs	r0, #3
+ 800c7d0:	e01f      	b.n	800c812 <UART_WaitOnFlagUntilTimeout+0xd4>
+        ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE |
+ 800c7d2:	682a      	ldr	r2, [r5, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800c7d4:	e852 3f00 	ldrex	r3, [r2]
+ 800c7d8:	f423 73d0 	bic.w	r3, r3, #416	; 0x1a0
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800c7dc:	e842 3100 	strex	r1, r3, [r2]
+ 800c7e0:	2900      	cmp	r1, #0
+ 800c7e2:	d1f6      	bne.n	800c7d2 <UART_WaitOnFlagUntilTimeout+0x94>
+        ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
+ 800c7e4:	682a      	ldr	r2, [r5, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800c7e6:	f102 0308 	add.w	r3, r2, #8
+ 800c7ea:	e853 3f00 	ldrex	r3, [r3]
+ 800c7ee:	f023 0301 	bic.w	r3, r3, #1
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800c7f2:	3208      	adds	r2, #8
+ 800c7f4:	e842 3100 	strex	r1, r3, [r2]
+ 800c7f8:	2900      	cmp	r1, #0
+ 800c7fa:	d1f3      	bne.n	800c7e4 <UART_WaitOnFlagUntilTimeout+0xa6>
+        huart->gState = HAL_UART_STATE_READY;
+ 800c7fc:	2320      	movs	r3, #32
+ 800c7fe:	f8c5 3088 	str.w	r3, [r5, #136]	; 0x88
+        huart->RxState = HAL_UART_STATE_READY;
+ 800c802:	f8c5 308c 	str.w	r3, [r5, #140]	; 0x8c
+        __HAL_UNLOCK(huart);
+ 800c806:	2300      	movs	r3, #0
+ 800c808:	f885 3084 	strb.w	r3, [r5, #132]	; 0x84
+        return HAL_TIMEOUT;
+ 800c80c:	2003      	movs	r0, #3
+ 800c80e:	e000      	b.n	800c812 <UART_WaitOnFlagUntilTimeout+0xd4>
+  return HAL_OK;
+ 800c810:	2000      	movs	r0, #0
+}
+ 800c812:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
+
+0800c816 <UART_CheckIdleState>:
+{
+ 800c816:	b530      	push	{r4, r5, lr}
+ 800c818:	b083      	sub	sp, #12
+ 800c81a:	4604      	mov	r4, r0
+  huart->ErrorCode = HAL_UART_ERROR_NONE;
+ 800c81c:	2300      	movs	r3, #0
+ 800c81e:	f8c0 3090 	str.w	r3, [r0, #144]	; 0x90
+  tickstart = HAL_GetTick();
+ 800c822:	f7f6 fa39 	bl	8002c98 <HAL_GetTick>
+ 800c826:	4605      	mov	r5, r0
+  if ((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE)
+ 800c828:	6822      	ldr	r2, [r4, #0]
+ 800c82a:	6812      	ldr	r2, [r2, #0]
+ 800c82c:	f012 0f08 	tst.w	r2, #8
+ 800c830:	d110      	bne.n	800c854 <UART_CheckIdleState+0x3e>
+  if ((huart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE)
+ 800c832:	6823      	ldr	r3, [r4, #0]
+ 800c834:	681b      	ldr	r3, [r3, #0]
+ 800c836:	f013 0f04 	tst.w	r3, #4
+ 800c83a:	d119      	bne.n	800c870 <UART_CheckIdleState+0x5a>
+  huart->gState = HAL_UART_STATE_READY;
+ 800c83c:	2320      	movs	r3, #32
+ 800c83e:	f8c4 3088 	str.w	r3, [r4, #136]	; 0x88
+  huart->RxState = HAL_UART_STATE_READY;
+ 800c842:	f8c4 308c 	str.w	r3, [r4, #140]	; 0x8c
+  huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
+ 800c846:	2000      	movs	r0, #0
+ 800c848:	66e0      	str	r0, [r4, #108]	; 0x6c
+  huart->RxEventType = HAL_UART_RXEVENT_TC;
+ 800c84a:	6720      	str	r0, [r4, #112]	; 0x70
+  __HAL_UNLOCK(huart);
+ 800c84c:	f884 0084 	strb.w	r0, [r4, #132]	; 0x84
+}
+ 800c850:	b003      	add	sp, #12
+ 800c852:	bd30      	pop	{r4, r5, pc}
+    if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) != HAL_OK)
+ 800c854:	f06f 437e 	mvn.w	r3, #4261412864	; 0xfe000000
+ 800c858:	9300      	str	r3, [sp, #0]
+ 800c85a:	4603      	mov	r3, r0
+ 800c85c:	2200      	movs	r2, #0
+ 800c85e:	f44f 1100 	mov.w	r1, #2097152	; 0x200000
+ 800c862:	4620      	mov	r0, r4
+ 800c864:	f7ff ff6b 	bl	800c73e <UART_WaitOnFlagUntilTimeout>
+ 800c868:	2800      	cmp	r0, #0
+ 800c86a:	d0e2      	beq.n	800c832 <UART_CheckIdleState+0x1c>
+      return HAL_TIMEOUT;
+ 800c86c:	2003      	movs	r0, #3
+ 800c86e:	e7ef      	b.n	800c850 <UART_CheckIdleState+0x3a>
+    if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) != HAL_OK)
+ 800c870:	f06f 437e 	mvn.w	r3, #4261412864	; 0xfe000000
+ 800c874:	9300      	str	r3, [sp, #0]
+ 800c876:	462b      	mov	r3, r5
+ 800c878:	2200      	movs	r2, #0
+ 800c87a:	f44f 0180 	mov.w	r1, #4194304	; 0x400000
+ 800c87e:	4620      	mov	r0, r4
+ 800c880:	f7ff ff5d 	bl	800c73e <UART_WaitOnFlagUntilTimeout>
+ 800c884:	2800      	cmp	r0, #0
+ 800c886:	d0d9      	beq.n	800c83c <UART_CheckIdleState+0x26>
+      return HAL_TIMEOUT;
+ 800c888:	2003      	movs	r0, #3
+ 800c88a:	e7e1      	b.n	800c850 <UART_CheckIdleState+0x3a>
+
+0800c88c <HAL_UART_Init>:
+  if (huart == NULL)
+ 800c88c:	b378      	cbz	r0, 800c8ee <HAL_UART_Init+0x62>
+{
+ 800c88e:	b510      	push	{r4, lr}
+ 800c890:	4604      	mov	r4, r0
+  if (huart->gState == HAL_UART_STATE_RESET)
+ 800c892:	f8d0 3088 	ldr.w	r3, [r0, #136]	; 0x88
+ 800c896:	b30b      	cbz	r3, 800c8dc <HAL_UART_Init+0x50>
+  huart->gState = HAL_UART_STATE_BUSY;
+ 800c898:	2324      	movs	r3, #36	; 0x24
+ 800c89a:	f8c4 3088 	str.w	r3, [r4, #136]	; 0x88
+  __HAL_UART_DISABLE(huart);
+ 800c89e:	6822      	ldr	r2, [r4, #0]
+ 800c8a0:	6813      	ldr	r3, [r2, #0]
+ 800c8a2:	f023 0301 	bic.w	r3, r3, #1
+ 800c8a6:	6013      	str	r3, [r2, #0]
+  if (UART_SetConfig(huart) == HAL_ERROR)
+ 800c8a8:	4620      	mov	r0, r4
+ 800c8aa:	f7ff fd7d 	bl	800c3a8 <UART_SetConfig>
+ 800c8ae:	2801      	cmp	r0, #1
+ 800c8b0:	d013      	beq.n	800c8da <HAL_UART_Init+0x4e>
+  if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT)
+ 800c8b2:	6aa3      	ldr	r3, [r4, #40]	; 0x28
+ 800c8b4:	b9bb      	cbnz	r3, 800c8e6 <HAL_UART_Init+0x5a>
+  CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN));
+ 800c8b6:	6822      	ldr	r2, [r4, #0]
+ 800c8b8:	6853      	ldr	r3, [r2, #4]
+ 800c8ba:	f423 4390 	bic.w	r3, r3, #18432	; 0x4800
+ 800c8be:	6053      	str	r3, [r2, #4]
+  CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN));
+ 800c8c0:	6822      	ldr	r2, [r4, #0]
+ 800c8c2:	6893      	ldr	r3, [r2, #8]
+ 800c8c4:	f023 032a 	bic.w	r3, r3, #42	; 0x2a
+ 800c8c8:	6093      	str	r3, [r2, #8]
+  __HAL_UART_ENABLE(huart);
+ 800c8ca:	6822      	ldr	r2, [r4, #0]
+ 800c8cc:	6813      	ldr	r3, [r2, #0]
+ 800c8ce:	f043 0301 	orr.w	r3, r3, #1
+ 800c8d2:	6013      	str	r3, [r2, #0]
+  return (UART_CheckIdleState(huart));
+ 800c8d4:	4620      	mov	r0, r4
+ 800c8d6:	f7ff ff9e 	bl	800c816 <UART_CheckIdleState>
+}
+ 800c8da:	bd10      	pop	{r4, pc}
+    huart->Lock = HAL_UNLOCKED;
+ 800c8dc:	f880 3084 	strb.w	r3, [r0, #132]	; 0x84
+    HAL_UART_MspInit(huart);
+ 800c8e0:	f7f6 fbf8 	bl	80030d4 <HAL_UART_MspInit>
+ 800c8e4:	e7d8      	b.n	800c898 <HAL_UART_Init+0xc>
+    UART_AdvFeatureConfig(huart);
+ 800c8e6:	4620      	mov	r0, r4
+ 800c8e8:	f7ff fec4 	bl	800c674 <UART_AdvFeatureConfig>
+ 800c8ec:	e7e3      	b.n	800c8b6 <HAL_UART_Init+0x2a>
+    return HAL_ERROR;
+ 800c8ee:	2001      	movs	r0, #1
+}
+ 800c8f0:	4770      	bx	lr
+	...
+
+0800c8f4 <UART_Start_Receive_IT>:
+{
+ 800c8f4:	b410      	push	{r4}
+  huart->pRxBuffPtr  = pData;
+ 800c8f6:	6581      	str	r1, [r0, #88]	; 0x58
+  huart->RxXferSize  = Size;
+ 800c8f8:	f8a0 205c 	strh.w	r2, [r0, #92]	; 0x5c
+  huart->RxXferCount = Size;
+ 800c8fc:	f8a0 205e 	strh.w	r2, [r0, #94]	; 0x5e
+  huart->RxISR       = NULL;
+ 800c900:	2300      	movs	r3, #0
+ 800c902:	6743      	str	r3, [r0, #116]	; 0x74
+  UART_MASK_COMPUTATION(huart);
+ 800c904:	6883      	ldr	r3, [r0, #8]
+ 800c906:	f5b3 5f80 	cmp.w	r3, #4096	; 0x1000
+ 800c90a:	d006      	beq.n	800c91a <UART_Start_Receive_IT+0x26>
+ 800c90c:	b9a3      	cbnz	r3, 800c938 <UART_Start_Receive_IT+0x44>
+ 800c90e:	6903      	ldr	r3, [r0, #16]
+ 800c910:	b973      	cbnz	r3, 800c930 <UART_Start_Receive_IT+0x3c>
+ 800c912:	23ff      	movs	r3, #255	; 0xff
+ 800c914:	f8a0 3060 	strh.w	r3, [r0, #96]	; 0x60
+ 800c918:	e014      	b.n	800c944 <UART_Start_Receive_IT+0x50>
+ 800c91a:	6903      	ldr	r3, [r0, #16]
+ 800c91c:	b923      	cbnz	r3, 800c928 <UART_Start_Receive_IT+0x34>
+ 800c91e:	f240 13ff 	movw	r3, #511	; 0x1ff
+ 800c922:	f8a0 3060 	strh.w	r3, [r0, #96]	; 0x60
+ 800c926:	e00d      	b.n	800c944 <UART_Start_Receive_IT+0x50>
+ 800c928:	23ff      	movs	r3, #255	; 0xff
+ 800c92a:	f8a0 3060 	strh.w	r3, [r0, #96]	; 0x60
+ 800c92e:	e009      	b.n	800c944 <UART_Start_Receive_IT+0x50>
+ 800c930:	237f      	movs	r3, #127	; 0x7f
+ 800c932:	f8a0 3060 	strh.w	r3, [r0, #96]	; 0x60
+ 800c936:	e005      	b.n	800c944 <UART_Start_Receive_IT+0x50>
+ 800c938:	f1b3 5f80 	cmp.w	r3, #268435456	; 0x10000000
+ 800c93c:	d02d      	beq.n	800c99a <UART_Start_Receive_IT+0xa6>
+ 800c93e:	2300      	movs	r3, #0
+ 800c940:	f8a0 3060 	strh.w	r3, [r0, #96]	; 0x60
+  huart->ErrorCode = HAL_UART_ERROR_NONE;
+ 800c944:	2300      	movs	r3, #0
+ 800c946:	f8c0 3090 	str.w	r3, [r0, #144]	; 0x90
+  huart->RxState = HAL_UART_STATE_BUSY_RX;
+ 800c94a:	2322      	movs	r3, #34	; 0x22
+ 800c94c:	f8c0 308c 	str.w	r3, [r0, #140]	; 0x8c
+  ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE);
+ 800c950:	6801      	ldr	r1, [r0, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800c952:	f101 0308 	add.w	r3, r1, #8
+ 800c956:	e853 3f00 	ldrex	r3, [r3]
+ 800c95a:	f043 0301 	orr.w	r3, r3, #1
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800c95e:	3108      	adds	r1, #8
+ 800c960:	e841 3400 	strex	r4, r3, [r1]
+ 800c964:	2c00      	cmp	r4, #0
+ 800c966:	d1f3      	bne.n	800c950 <UART_Start_Receive_IT+0x5c>
+  if ((huart->FifoMode == UART_FIFOMODE_ENABLE) && (Size >= huart->NbRxDataToProcess))
+ 800c968:	6e43      	ldr	r3, [r0, #100]	; 0x64
+ 800c96a:	f1b3 5f00 	cmp.w	r3, #536870912	; 0x20000000
+ 800c96e:	d01e      	beq.n	800c9ae <UART_Start_Receive_IT+0xba>
+    if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE))
+ 800c970:	6883      	ldr	r3, [r0, #8]
+ 800c972:	f5b3 5f80 	cmp.w	r3, #4096	; 0x1000
+ 800c976:	d042      	beq.n	800c9fe <UART_Start_Receive_IT+0x10a>
+      huart->RxISR = UART_RxISR_8BIT;
+ 800c978:	4b29      	ldr	r3, [pc, #164]	; (800ca20 <UART_Start_Receive_IT+0x12c>)
+ 800c97a:	6743      	str	r3, [r0, #116]	; 0x74
+    if (huart->Init.Parity != UART_PARITY_NONE)
+ 800c97c:	6903      	ldr	r3, [r0, #16]
+ 800c97e:	2b00      	cmp	r3, #0
+ 800c980:	d043      	beq.n	800ca0a <UART_Start_Receive_IT+0x116>
+      ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE);
+ 800c982:	6802      	ldr	r2, [r0, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800c984:	e852 3f00 	ldrex	r3, [r2]
+ 800c988:	f443 7390 	orr.w	r3, r3, #288	; 0x120
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800c98c:	e842 3100 	strex	r1, r3, [r2]
+ 800c990:	2900      	cmp	r1, #0
+ 800c992:	d1f6      	bne.n	800c982 <UART_Start_Receive_IT+0x8e>
+}
+ 800c994:	2000      	movs	r0, #0
+ 800c996:	bc10      	pop	{r4}
+ 800c998:	4770      	bx	lr
+  UART_MASK_COMPUTATION(huart);
+ 800c99a:	6903      	ldr	r3, [r0, #16]
+ 800c99c:	b91b      	cbnz	r3, 800c9a6 <UART_Start_Receive_IT+0xb2>
+ 800c99e:	237f      	movs	r3, #127	; 0x7f
+ 800c9a0:	f8a0 3060 	strh.w	r3, [r0, #96]	; 0x60
+ 800c9a4:	e7ce      	b.n	800c944 <UART_Start_Receive_IT+0x50>
+ 800c9a6:	233f      	movs	r3, #63	; 0x3f
+ 800c9a8:	f8a0 3060 	strh.w	r3, [r0, #96]	; 0x60
+ 800c9ac:	e7ca      	b.n	800c944 <UART_Start_Receive_IT+0x50>
+  if ((huart->FifoMode == UART_FIFOMODE_ENABLE) && (Size >= huart->NbRxDataToProcess))
+ 800c9ae:	f8b0 3068 	ldrh.w	r3, [r0, #104]	; 0x68
+ 800c9b2:	4293      	cmp	r3, r2
+ 800c9b4:	d8dc      	bhi.n	800c970 <UART_Start_Receive_IT+0x7c>
+    if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE))
+ 800c9b6:	6883      	ldr	r3, [r0, #8]
+ 800c9b8:	f5b3 5f80 	cmp.w	r3, #4096	; 0x1000
+ 800c9bc:	d019      	beq.n	800c9f2 <UART_Start_Receive_IT+0xfe>
+      huart->RxISR = UART_RxISR_8BIT_FIFOEN;
+ 800c9be:	4b19      	ldr	r3, [pc, #100]	; (800ca24 <UART_Start_Receive_IT+0x130>)
+ 800c9c0:	6743      	str	r3, [r0, #116]	; 0x74
+    if (huart->Init.Parity != UART_PARITY_NONE)
+ 800c9c2:	6903      	ldr	r3, [r0, #16]
+ 800c9c4:	b143      	cbz	r3, 800c9d8 <UART_Start_Receive_IT+0xe4>
+      ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE);
+ 800c9c6:	6802      	ldr	r2, [r0, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800c9c8:	e852 3f00 	ldrex	r3, [r2]
+ 800c9cc:	f443 7380 	orr.w	r3, r3, #256	; 0x100
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800c9d0:	e842 3100 	strex	r1, r3, [r2]
+ 800c9d4:	2900      	cmp	r1, #0
+ 800c9d6:	d1f6      	bne.n	800c9c6 <UART_Start_Receive_IT+0xd2>
+    ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_RXFTIE);
+ 800c9d8:	6802      	ldr	r2, [r0, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800c9da:	f102 0308 	add.w	r3, r2, #8
+ 800c9de:	e853 3f00 	ldrex	r3, [r3]
+ 800c9e2:	f043 5380 	orr.w	r3, r3, #268435456	; 0x10000000
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800c9e6:	3208      	adds	r2, #8
+ 800c9e8:	e842 3100 	strex	r1, r3, [r2]
+ 800c9ec:	2900      	cmp	r1, #0
+ 800c9ee:	d1f3      	bne.n	800c9d8 <UART_Start_Receive_IT+0xe4>
+ 800c9f0:	e7d0      	b.n	800c994 <UART_Start_Receive_IT+0xa0>
+    if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE))
+ 800c9f2:	6903      	ldr	r3, [r0, #16]
+ 800c9f4:	2b00      	cmp	r3, #0
+ 800c9f6:	d1e2      	bne.n	800c9be <UART_Start_Receive_IT+0xca>
+      huart->RxISR = UART_RxISR_16BIT_FIFOEN;
+ 800c9f8:	4b0b      	ldr	r3, [pc, #44]	; (800ca28 <UART_Start_Receive_IT+0x134>)
+ 800c9fa:	6743      	str	r3, [r0, #116]	; 0x74
+ 800c9fc:	e7e1      	b.n	800c9c2 <UART_Start_Receive_IT+0xce>
+    if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE))
+ 800c9fe:	6903      	ldr	r3, [r0, #16]
+ 800ca00:	2b00      	cmp	r3, #0
+ 800ca02:	d1b9      	bne.n	800c978 <UART_Start_Receive_IT+0x84>
+      huart->RxISR = UART_RxISR_16BIT;
+ 800ca04:	4b09      	ldr	r3, [pc, #36]	; (800ca2c <UART_Start_Receive_IT+0x138>)
+ 800ca06:	6743      	str	r3, [r0, #116]	; 0x74
+ 800ca08:	e7b8      	b.n	800c97c <UART_Start_Receive_IT+0x88>
+      ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE);
+ 800ca0a:	6802      	ldr	r2, [r0, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800ca0c:	e852 3f00 	ldrex	r3, [r2]
+ 800ca10:	f043 0320 	orr.w	r3, r3, #32
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800ca14:	e842 3100 	strex	r1, r3, [r2]
+ 800ca18:	2900      	cmp	r1, #0
+ 800ca1a:	d1f6      	bne.n	800ca0a <UART_Start_Receive_IT+0x116>
+ 800ca1c:	e7ba      	b.n	800c994 <UART_Start_Receive_IT+0xa0>
+ 800ca1e:	bf00      	nop
+ 800ca20:	0800be61 	.word	0x0800be61
+ 800ca24:	0800c015 	.word	0x0800c015
+ 800ca28:	0800c1e1 	.word	0x0800c1e1
+ 800ca2c:	0800bf3d 	.word	0x0800bf3d
+
+0800ca30 <HAL_UART_Receive_IT>:
+{
+ 800ca30:	b538      	push	{r3, r4, r5, lr}
+  if (huart->RxState == HAL_UART_STATE_READY)
+ 800ca32:	f8d0 308c 	ldr.w	r3, [r0, #140]	; 0x8c
+ 800ca36:	2b20      	cmp	r3, #32
+ 800ca38:	d117      	bne.n	800ca6a <HAL_UART_Receive_IT+0x3a>
+    if ((pData == NULL) || (Size == 0U))
+ 800ca3a:	b1c1      	cbz	r1, 800ca6e <HAL_UART_Receive_IT+0x3e>
+ 800ca3c:	b1ca      	cbz	r2, 800ca72 <HAL_UART_Receive_IT+0x42>
+    huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
+ 800ca3e:	2300      	movs	r3, #0
+ 800ca40:	66c3      	str	r3, [r0, #108]	; 0x6c
+    if (!(IS_LPUART_INSTANCE(huart->Instance)))
+ 800ca42:	6803      	ldr	r3, [r0, #0]
+ 800ca44:	4c0c      	ldr	r4, [pc, #48]	; (800ca78 <HAL_UART_Receive_IT+0x48>)
+ 800ca46:	42a3      	cmp	r3, r4
+ 800ca48:	d00c      	beq.n	800ca64 <HAL_UART_Receive_IT+0x34>
+      if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U)
+ 800ca4a:	685b      	ldr	r3, [r3, #4]
+ 800ca4c:	f413 0f00 	tst.w	r3, #8388608	; 0x800000
+ 800ca50:	d008      	beq.n	800ca64 <HAL_UART_Receive_IT+0x34>
+        ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE);
+ 800ca52:	6804      	ldr	r4, [r0, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800ca54:	e854 3f00 	ldrex	r3, [r4]
+ 800ca58:	f043 6380 	orr.w	r3, r3, #67108864	; 0x4000000
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800ca5c:	e844 3500 	strex	r5, r3, [r4]
+ 800ca60:	2d00      	cmp	r5, #0
+ 800ca62:	d1f6      	bne.n	800ca52 <HAL_UART_Receive_IT+0x22>
+    return (UART_Start_Receive_IT(huart, pData, Size));
+ 800ca64:	f7ff ff46 	bl	800c8f4 <UART_Start_Receive_IT>
+ 800ca68:	e000      	b.n	800ca6c <HAL_UART_Receive_IT+0x3c>
+    return HAL_BUSY;
+ 800ca6a:	2002      	movs	r0, #2
+}
+ 800ca6c:	bd38      	pop	{r3, r4, r5, pc}
+      return HAL_ERROR;
+ 800ca6e:	2001      	movs	r0, #1
+ 800ca70:	e7fc      	b.n	800ca6c <HAL_UART_Receive_IT+0x3c>
+ 800ca72:	2001      	movs	r0, #1
+ 800ca74:	e7fa      	b.n	800ca6c <HAL_UART_Receive_IT+0x3c>
+ 800ca76:	bf00      	nop
+ 800ca78:	40008000 	.word	0x40008000
+
+0800ca7c <UARTEx_Wakeup_AddressConfig>:
+  * @param huart           UART handle.
+  * @param WakeUpSelection UART wake up from stop mode parameters.
+  * @retval None
+  */
+static void UARTEx_Wakeup_AddressConfig(UART_HandleTypeDef *huart, UART_WakeUpTypeDef WakeUpSelection)
+{
+ 800ca7c:	b082      	sub	sp, #8
+ 800ca7e:	ab02      	add	r3, sp, #8
+ 800ca80:	e903 0006 	stmdb	r3, {r1, r2}
+  assert_param(IS_UART_ADDRESSLENGTH_DETECT(WakeUpSelection.AddressLength));
+
+  /* Set the USART address length */
+  MODIFY_REG(huart->Instance->CR2, USART_CR2_ADDM7, WakeUpSelection.AddressLength);
+ 800ca84:	6802      	ldr	r2, [r0, #0]
+ 800ca86:	6853      	ldr	r3, [r2, #4]
+ 800ca88:	f023 0310 	bic.w	r3, r3, #16
+ 800ca8c:	f8bd 1004 	ldrh.w	r1, [sp, #4]
+ 800ca90:	430b      	orrs	r3, r1
+ 800ca92:	6053      	str	r3, [r2, #4]
+
+  /* Set the USART address node */
+  MODIFY_REG(huart->Instance->CR2, USART_CR2_ADD, ((uint32_t)WakeUpSelection.Address << UART_CR2_ADDRESS_LSB_POS));
+ 800ca94:	6802      	ldr	r2, [r0, #0]
+ 800ca96:	6853      	ldr	r3, [r2, #4]
+ 800ca98:	f023 437f 	bic.w	r3, r3, #4278190080	; 0xff000000
+ 800ca9c:	f89d 1006 	ldrb.w	r1, [sp, #6]
+ 800caa0:	ea43 6301 	orr.w	r3, r3, r1, lsl #24
+ 800caa4:	6053      	str	r3, [r2, #4]
+}
+ 800caa6:	b002      	add	sp, #8
+ 800caa8:	4770      	bx	lr
+	...
+
+0800caac <UARTEx_SetNbDataToProcess>:
+  uint8_t rx_fifo_threshold;
+  uint8_t tx_fifo_threshold;
+  static const uint8_t numerator[] = {1U, 1U, 1U, 3U, 7U, 1U, 0U, 0U};
+  static const uint8_t denominator[] = {8U, 4U, 2U, 4U, 8U, 1U, 1U, 1U};
+
+  if (huart->FifoMode == UART_FIFOMODE_DISABLE)
+ 800caac:	6e43      	ldr	r3, [r0, #100]	; 0x64
+ 800caae:	b92b      	cbnz	r3, 800cabc <UARTEx_SetNbDataToProcess+0x10>
+  {
+    huart->NbTxDataToProcess = 1U;
+ 800cab0:	2301      	movs	r3, #1
+ 800cab2:	f8a0 306a 	strh.w	r3, [r0, #106]	; 0x6a
+    huart->NbRxDataToProcess = 1U;
+ 800cab6:	f8a0 3068 	strh.w	r3, [r0, #104]	; 0x68
+ 800caba:	4770      	bx	lr
+{
+ 800cabc:	b430      	push	{r4, r5}
+  }
+  else
+  {
+    rx_fifo_depth = RX_FIFO_DEPTH;
+    tx_fifo_depth = TX_FIFO_DEPTH;
+    rx_fifo_threshold = (uint8_t)(READ_BIT(huart->Instance->CR3, USART_CR3_RXFTCFG) >> USART_CR3_RXFTCFG_Pos);
+ 800cabe:	6803      	ldr	r3, [r0, #0]
+ 800cac0:	689a      	ldr	r2, [r3, #8]
+ 800cac2:	f3c2 6242 	ubfx	r2, r2, #25, #3
+    tx_fifo_threshold = (uint8_t)(READ_BIT(huart->Instance->CR3, USART_CR3_TXFTCFG) >> USART_CR3_TXFTCFG_Pos);
+ 800cac6:	6899      	ldr	r1, [r3, #8]
+ 800cac8:	0f49      	lsrs	r1, r1, #29
+    huart->NbTxDataToProcess = ((uint16_t)tx_fifo_depth * numerator[tx_fifo_threshold]) /
+ 800caca:	4d09      	ldr	r5, [pc, #36]	; (800caf0 <UARTEx_SetNbDataToProcess+0x44>)
+ 800cacc:	5c6b      	ldrb	r3, [r5, r1]
+ 800cace:	00db      	lsls	r3, r3, #3
+                               (uint16_t)denominator[tx_fifo_threshold];
+ 800cad0:	4c08      	ldr	r4, [pc, #32]	; (800caf4 <UARTEx_SetNbDataToProcess+0x48>)
+ 800cad2:	5c61      	ldrb	r1, [r4, r1]
+    huart->NbTxDataToProcess = ((uint16_t)tx_fifo_depth * numerator[tx_fifo_threshold]) /
+ 800cad4:	fb93 f3f1 	sdiv	r3, r3, r1
+ 800cad8:	f8a0 306a 	strh.w	r3, [r0, #106]	; 0x6a
+    huart->NbRxDataToProcess = ((uint16_t)rx_fifo_depth * numerator[rx_fifo_threshold]) /
+ 800cadc:	5cab      	ldrb	r3, [r5, r2]
+ 800cade:	00db      	lsls	r3, r3, #3
+                               (uint16_t)denominator[rx_fifo_threshold];
+ 800cae0:	5ca2      	ldrb	r2, [r4, r2]
+    huart->NbRxDataToProcess = ((uint16_t)rx_fifo_depth * numerator[rx_fifo_threshold]) /
+ 800cae2:	fb93 f3f2 	sdiv	r3, r3, r2
+ 800cae6:	f8a0 3068 	strh.w	r3, [r0, #104]	; 0x68
+  }
+}
+ 800caea:	bc30      	pop	{r4, r5}
+ 800caec:	4770      	bx	lr
+ 800caee:	bf00      	nop
+ 800caf0:	080185bc 	.word	0x080185bc
+ 800caf4:	080185b4 	.word	0x080185b4
+
+0800caf8 <HAL_UARTEx_WakeupCallback>:
+}
+ 800caf8:	4770      	bx	lr
+
+0800cafa <HAL_UARTEx_RxFifoFullCallback>:
+}
+ 800cafa:	4770      	bx	lr
+
+0800cafc <HAL_UARTEx_TxFifoEmptyCallback>:
+}
+ 800cafc:	4770      	bx	lr
+
+0800cafe <HAL_UARTEx_StopModeWakeUpSourceConfig>:
+{
+ 800cafe:	b510      	push	{r4, lr}
+ 800cb00:	b084      	sub	sp, #16
+ 800cb02:	ab04      	add	r3, sp, #16
+ 800cb04:	e903 0006 	stmdb	r3, {r1, r2}
+  __HAL_LOCK(huart);
+ 800cb08:	f890 3084 	ldrb.w	r3, [r0, #132]	; 0x84
+ 800cb0c:	2b01      	cmp	r3, #1
+ 800cb0e:	d035      	beq.n	800cb7c <HAL_UARTEx_StopModeWakeUpSourceConfig+0x7e>
+ 800cb10:	4604      	mov	r4, r0
+ 800cb12:	2301      	movs	r3, #1
+ 800cb14:	f880 3084 	strb.w	r3, [r0, #132]	; 0x84
+  huart->gState = HAL_UART_STATE_BUSY;
+ 800cb18:	2324      	movs	r3, #36	; 0x24
+ 800cb1a:	f8c0 3088 	str.w	r3, [r0, #136]	; 0x88
+  __HAL_UART_DISABLE(huart);
+ 800cb1e:	6802      	ldr	r2, [r0, #0]
+ 800cb20:	6813      	ldr	r3, [r2, #0]
+ 800cb22:	f023 0301 	bic.w	r3, r3, #1
+ 800cb26:	6013      	str	r3, [r2, #0]
+  MODIFY_REG(huart->Instance->CR3, USART_CR3_WUS, WakeUpSelection.WakeUpEvent);
+ 800cb28:	6801      	ldr	r1, [r0, #0]
+ 800cb2a:	688b      	ldr	r3, [r1, #8]
+ 800cb2c:	f423 1340 	bic.w	r3, r3, #3145728	; 0x300000
+ 800cb30:	9a02      	ldr	r2, [sp, #8]
+ 800cb32:	4313      	orrs	r3, r2
+ 800cb34:	608b      	str	r3, [r1, #8]
+  if (WakeUpSelection.WakeUpEvent == UART_WAKEUP_ON_ADDRESS)
+ 800cb36:	b1aa      	cbz	r2, 800cb64 <HAL_UARTEx_StopModeWakeUpSourceConfig+0x66>
+  __HAL_UART_ENABLE(huart);
+ 800cb38:	6822      	ldr	r2, [r4, #0]
+ 800cb3a:	6813      	ldr	r3, [r2, #0]
+ 800cb3c:	f043 0301 	orr.w	r3, r3, #1
+ 800cb40:	6013      	str	r3, [r2, #0]
+  tickstart = HAL_GetTick();
+ 800cb42:	f7f6 f8a9 	bl	8002c98 <HAL_GetTick>
+ 800cb46:	4603      	mov	r3, r0
+  if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) != HAL_OK)
+ 800cb48:	f06f 427e 	mvn.w	r2, #4261412864	; 0xfe000000
+ 800cb4c:	9200      	str	r2, [sp, #0]
+ 800cb4e:	2200      	movs	r2, #0
+ 800cb50:	f44f 0180 	mov.w	r1, #4194304	; 0x400000
+ 800cb54:	4620      	mov	r0, r4
+ 800cb56:	f7ff fdf2 	bl	800c73e <UART_WaitOnFlagUntilTimeout>
+ 800cb5a:	b948      	cbnz	r0, 800cb70 <HAL_UARTEx_StopModeWakeUpSourceConfig+0x72>
+    huart->gState = HAL_UART_STATE_READY;
+ 800cb5c:	2320      	movs	r3, #32
+ 800cb5e:	f8c4 3088 	str.w	r3, [r4, #136]	; 0x88
+ 800cb62:	e006      	b.n	800cb72 <HAL_UARTEx_StopModeWakeUpSourceConfig+0x74>
+    UARTEx_Wakeup_AddressConfig(huart, WakeUpSelection);
+ 800cb64:	ab04      	add	r3, sp, #16
+ 800cb66:	e913 0006 	ldmdb	r3, {r1, r2}
+ 800cb6a:	f7ff ff87 	bl	800ca7c <UARTEx_Wakeup_AddressConfig>
+ 800cb6e:	e7e3      	b.n	800cb38 <HAL_UARTEx_StopModeWakeUpSourceConfig+0x3a>
+    status = HAL_TIMEOUT;
+ 800cb70:	2003      	movs	r0, #3
+  __HAL_UNLOCK(huart);
+ 800cb72:	2300      	movs	r3, #0
+ 800cb74:	f884 3084 	strb.w	r3, [r4, #132]	; 0x84
+}
+ 800cb78:	b004      	add	sp, #16
+ 800cb7a:	bd10      	pop	{r4, pc}
+  __HAL_LOCK(huart);
+ 800cb7c:	2002      	movs	r0, #2
+ 800cb7e:	e7fb      	b.n	800cb78 <HAL_UARTEx_StopModeWakeUpSourceConfig+0x7a>
+
+0800cb80 <HAL_UARTEx_EnableStopMode>:
+  __HAL_LOCK(huart);
+ 800cb80:	f890 3084 	ldrb.w	r3, [r0, #132]	; 0x84
+ 800cb84:	2b01      	cmp	r3, #1
+ 800cb86:	d010      	beq.n	800cbaa <HAL_UARTEx_EnableStopMode+0x2a>
+ 800cb88:	2301      	movs	r3, #1
+ 800cb8a:	f880 3084 	strb.w	r3, [r0, #132]	; 0x84
+  ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_UESM);
+ 800cb8e:	6802      	ldr	r2, [r0, #0]
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+ 800cb90:	e852 3f00 	ldrex	r3, [r2]
+ 800cb94:	f043 0302 	orr.w	r3, r3, #2
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+ 800cb98:	e842 3100 	strex	r1, r3, [r2]
+ 800cb9c:	2900      	cmp	r1, #0
+ 800cb9e:	d1f6      	bne.n	800cb8e <HAL_UARTEx_EnableStopMode+0xe>
+  __HAL_UNLOCK(huart);
+ 800cba0:	2300      	movs	r3, #0
+ 800cba2:	f880 3084 	strb.w	r3, [r0, #132]	; 0x84
+  return HAL_OK;
+ 800cba6:	4618      	mov	r0, r3
+ 800cba8:	4770      	bx	lr
+  __HAL_LOCK(huart);
+ 800cbaa:	2002      	movs	r0, #2
+}
+ 800cbac:	4770      	bx	lr
+
+0800cbae <HAL_UARTEx_EnableFifoMode>:
+  __HAL_LOCK(huart);
+ 800cbae:	f890 3084 	ldrb.w	r3, [r0, #132]	; 0x84
+ 800cbb2:	2b01      	cmp	r3, #1
+ 800cbb4:	d01d      	beq.n	800cbf2 <HAL_UARTEx_EnableFifoMode+0x44>
+{
+ 800cbb6:	b510      	push	{r4, lr}
+ 800cbb8:	4604      	mov	r4, r0
+  __HAL_LOCK(huart);
+ 800cbba:	2301      	movs	r3, #1
+ 800cbbc:	f880 3084 	strb.w	r3, [r0, #132]	; 0x84
+  huart->gState = HAL_UART_STATE_BUSY;
+ 800cbc0:	2324      	movs	r3, #36	; 0x24
+ 800cbc2:	f8c0 3088 	str.w	r3, [r0, #136]	; 0x88
+  tmpcr1 = READ_REG(huart->Instance->CR1);
+ 800cbc6:	6802      	ldr	r2, [r0, #0]
+ 800cbc8:	6813      	ldr	r3, [r2, #0]
+  __HAL_UART_DISABLE(huart);
+ 800cbca:	6811      	ldr	r1, [r2, #0]
+ 800cbcc:	f021 0101 	bic.w	r1, r1, #1
+ 800cbd0:	6011      	str	r1, [r2, #0]
+  SET_BIT(tmpcr1, USART_CR1_FIFOEN);
+ 800cbd2:	f043 5300 	orr.w	r3, r3, #536870912	; 0x20000000
+  huart->FifoMode = UART_FIFOMODE_ENABLE;
+ 800cbd6:	f04f 5200 	mov.w	r2, #536870912	; 0x20000000
+ 800cbda:	6642      	str	r2, [r0, #100]	; 0x64
+  WRITE_REG(huart->Instance->CR1, tmpcr1);
+ 800cbdc:	6802      	ldr	r2, [r0, #0]
+ 800cbde:	6013      	str	r3, [r2, #0]
+  UARTEx_SetNbDataToProcess(huart);
+ 800cbe0:	f7ff ff64 	bl	800caac <UARTEx_SetNbDataToProcess>
+  huart->gState = HAL_UART_STATE_READY;
+ 800cbe4:	2320      	movs	r3, #32
+ 800cbe6:	f8c4 3088 	str.w	r3, [r4, #136]	; 0x88
+  __HAL_UNLOCK(huart);
+ 800cbea:	2000      	movs	r0, #0
+ 800cbec:	f884 0084 	strb.w	r0, [r4, #132]	; 0x84
+}
+ 800cbf0:	bd10      	pop	{r4, pc}
+  __HAL_LOCK(huart);
+ 800cbf2:	2002      	movs	r0, #2
+}
+ 800cbf4:	4770      	bx	lr
+
+0800cbf6 <HAL_UARTEx_SetTxFifoThreshold>:
+{
+ 800cbf6:	b538      	push	{r3, r4, r5, lr}
+  __HAL_LOCK(huart);
+ 800cbf8:	f890 3084 	ldrb.w	r3, [r0, #132]	; 0x84
+ 800cbfc:	2b01      	cmp	r3, #1
+ 800cbfe:	d01d      	beq.n	800cc3c <HAL_UARTEx_SetTxFifoThreshold+0x46>
+ 800cc00:	4604      	mov	r4, r0
+ 800cc02:	2301      	movs	r3, #1
+ 800cc04:	f880 3084 	strb.w	r3, [r0, #132]	; 0x84
+  huart->gState = HAL_UART_STATE_BUSY;
+ 800cc08:	2324      	movs	r3, #36	; 0x24
+ 800cc0a:	f8c0 3088 	str.w	r3, [r0, #136]	; 0x88
+  tmpcr1 = READ_REG(huart->Instance->CR1);
+ 800cc0e:	6803      	ldr	r3, [r0, #0]
+ 800cc10:	681d      	ldr	r5, [r3, #0]
+  __HAL_UART_DISABLE(huart);
+ 800cc12:	681a      	ldr	r2, [r3, #0]
+ 800cc14:	f022 0201 	bic.w	r2, r2, #1
+ 800cc18:	601a      	str	r2, [r3, #0]
+  MODIFY_REG(huart->Instance->CR3, USART_CR3_TXFTCFG, Threshold);
+ 800cc1a:	6802      	ldr	r2, [r0, #0]
+ 800cc1c:	6893      	ldr	r3, [r2, #8]
+ 800cc1e:	f023 4360 	bic.w	r3, r3, #3758096384	; 0xe0000000
+ 800cc22:	4319      	orrs	r1, r3
+ 800cc24:	6091      	str	r1, [r2, #8]
+  UARTEx_SetNbDataToProcess(huart);
+ 800cc26:	f7ff ff41 	bl	800caac <UARTEx_SetNbDataToProcess>
+  WRITE_REG(huart->Instance->CR1, tmpcr1);
+ 800cc2a:	6823      	ldr	r3, [r4, #0]
+ 800cc2c:	601d      	str	r5, [r3, #0]
+  huart->gState = HAL_UART_STATE_READY;
+ 800cc2e:	2320      	movs	r3, #32
+ 800cc30:	f8c4 3088 	str.w	r3, [r4, #136]	; 0x88
+  __HAL_UNLOCK(huart);
+ 800cc34:	2000      	movs	r0, #0
+ 800cc36:	f884 0084 	strb.w	r0, [r4, #132]	; 0x84
+}
+ 800cc3a:	bd38      	pop	{r3, r4, r5, pc}
+  __HAL_LOCK(huart);
+ 800cc3c:	2002      	movs	r0, #2
+ 800cc3e:	e7fc      	b.n	800cc3a <HAL_UARTEx_SetTxFifoThreshold+0x44>
+
+0800cc40 <HAL_UARTEx_SetRxFifoThreshold>:
+{
+ 800cc40:	b538      	push	{r3, r4, r5, lr}
+  __HAL_LOCK(huart);
+ 800cc42:	f890 3084 	ldrb.w	r3, [r0, #132]	; 0x84
+ 800cc46:	2b01      	cmp	r3, #1
+ 800cc48:	d01d      	beq.n	800cc86 <HAL_UARTEx_SetRxFifoThreshold+0x46>
+ 800cc4a:	4604      	mov	r4, r0
+ 800cc4c:	2301      	movs	r3, #1
+ 800cc4e:	f880 3084 	strb.w	r3, [r0, #132]	; 0x84
+  huart->gState = HAL_UART_STATE_BUSY;
+ 800cc52:	2324      	movs	r3, #36	; 0x24
+ 800cc54:	f8c0 3088 	str.w	r3, [r0, #136]	; 0x88
+  tmpcr1 = READ_REG(huart->Instance->CR1);
+ 800cc58:	6803      	ldr	r3, [r0, #0]
+ 800cc5a:	681d      	ldr	r5, [r3, #0]
+  __HAL_UART_DISABLE(huart);
+ 800cc5c:	681a      	ldr	r2, [r3, #0]
+ 800cc5e:	f022 0201 	bic.w	r2, r2, #1
+ 800cc62:	601a      	str	r2, [r3, #0]
+  MODIFY_REG(huart->Instance->CR3, USART_CR3_RXFTCFG, Threshold);
+ 800cc64:	6802      	ldr	r2, [r0, #0]
+ 800cc66:	6893      	ldr	r3, [r2, #8]
+ 800cc68:	f023 6360 	bic.w	r3, r3, #234881024	; 0xe000000
+ 800cc6c:	4319      	orrs	r1, r3
+ 800cc6e:	6091      	str	r1, [r2, #8]
+  UARTEx_SetNbDataToProcess(huart);
+ 800cc70:	f7ff ff1c 	bl	800caac <UARTEx_SetNbDataToProcess>
+  WRITE_REG(huart->Instance->CR1, tmpcr1);
+ 800cc74:	6823      	ldr	r3, [r4, #0]
+ 800cc76:	601d      	str	r5, [r3, #0]
+  huart->gState = HAL_UART_STATE_READY;
+ 800cc78:	2320      	movs	r3, #32
+ 800cc7a:	f8c4 3088 	str.w	r3, [r4, #136]	; 0x88
+  __HAL_UNLOCK(huart);
+ 800cc7e:	2000      	movs	r0, #0
+ 800cc80:	f884 0084 	strb.w	r0, [r4, #132]	; 0x84
+}
+ 800cc84:	bd38      	pop	{r3, r4, r5, pc}
+  __HAL_LOCK(huart);
+ 800cc86:	2002      	movs	r0, #2
+ 800cc88:	e7fc      	b.n	800cc84 <HAL_UARTEx_SetRxFifoThreshold+0x44>
+	...
+
+0800cc8c <LmHandlerPackageIsInitialized>:
+    }
+}
+
+static bool LmHandlerPackageIsInitialized( uint8_t id )
+{
+    if( ( id < PKG_MAX_NUMBER ) && ( LmHandlerPackages[id]->IsInitialized != NULL ) )
+ 800cc8c:	2804      	cmp	r0, #4
+ 800cc8e:	d807      	bhi.n	800cca0 <LmHandlerPackageIsInitialized+0x14>
+{
+ 800cc90:	b508      	push	{r3, lr}
+    if( ( id < PKG_MAX_NUMBER ) && ( LmHandlerPackages[id]->IsInitialized != NULL ) )
+ 800cc92:	4b05      	ldr	r3, [pc, #20]	; (800cca8 <LmHandlerPackageIsInitialized+0x1c>)
+ 800cc94:	f853 3020 	ldr.w	r3, [r3, r0, lsl #2]
+ 800cc98:	689b      	ldr	r3, [r3, #8]
+ 800cc9a:	b11b      	cbz	r3, 800cca4 <LmHandlerPackageIsInitialized+0x18>
+    {
+        return LmHandlerPackages[id]->IsInitialized( );
+ 800cc9c:	4798      	blx	r3
+    }
+    else
+    {
+        return false;
+    }
+}
+ 800cc9e:	bd08      	pop	{r3, pc}
+        return false;
+ 800cca0:	2000      	movs	r0, #0
+}
+ 800cca2:	4770      	bx	lr
+        return false;
+ 800cca4:	2000      	movs	r0, #0
+ 800cca6:	e7fa      	b.n	800cc9e <LmHandlerPackageIsInitialized+0x12>
+ 800cca8:	2000107c 	.word	0x2000107c
+
+0800ccac <LmHandlerPackagesNotify>:
+
+static void LmHandlerPackagesNotify( PackageNotifyTypes_t notifyType, void *params )
+{
+ 800ccac:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 800ccae:	4605      	mov	r5, r0
+ 800ccb0:	460f      	mov	r7, r1
+    for( int8_t i = 0; i < PKG_MAX_NUMBER; i++ )
+ 800ccb2:	2400      	movs	r4, #0
+ 800ccb4:	e005      	b.n	800ccc2 <LmHandlerPackagesNotify+0x16>
+        {
+            switch( notifyType )
+            {
+                case PACKAGE_MCPS_CONFIRM:
+                    {
+                        if( LmHandlerPackages[i]->OnMcpsConfirmProcess != NULL )
+ 800ccb6:	69db      	ldr	r3, [r3, #28]
+ 800ccb8:	b10b      	cbz	r3, 800ccbe <LmHandlerPackagesNotify+0x12>
+                        {
+                            LmHandlerPackages[i]->OnMcpsConfirmProcess( ( McpsConfirm_t * ) params );
+ 800ccba:	4638      	mov	r0, r7
+ 800ccbc:	4798      	blx	r3
+    for( int8_t i = 0; i < PKG_MAX_NUMBER; i++ )
+ 800ccbe:	3401      	adds	r4, #1
+ 800ccc0:	b264      	sxtb	r4, r4
+ 800ccc2:	2c04      	cmp	r4, #4
+ 800ccc4:	dc34      	bgt.n	800cd30 <LmHandlerPackagesNotify+0x84>
+        if( LmHandlerPackages[i] != NULL )
+ 800ccc6:	4626      	mov	r6, r4
+ 800ccc8:	4b1a      	ldr	r3, [pc, #104]	; (800cd34 <LmHandlerPackagesNotify+0x88>)
+ 800ccca:	f853 3024 	ldr.w	r3, [r3, r4, lsl #2]
+ 800ccce:	2b00      	cmp	r3, #0
+ 800ccd0:	d0f5      	beq.n	800ccbe <LmHandlerPackagesNotify+0x12>
+            switch( notifyType )
+ 800ccd2:	2d03      	cmp	r5, #3
+ 800ccd4:	d8f3      	bhi.n	800ccbe <LmHandlerPackagesNotify+0x12>
+ 800ccd6:	a201      	add	r2, pc, #4	; (adr r2, 800ccdc <LmHandlerPackagesNotify+0x30>)
+ 800ccd8:	f852 f025 	ldr.w	pc, [r2, r5, lsl #2]
+ 800ccdc:	0800ccb7 	.word	0x0800ccb7
+ 800cce0:	0800cced 	.word	0x0800cced
+ 800cce4:	0800cd19 	.word	0x0800cd19
+ 800cce8:	0800cd25 	.word	0x0800cd25
+                        break;
+                    }
+                case PACKAGE_MCPS_INDICATION:
+                    {
+#if (defined( LORAMAC_VERSION ) && ( LORAMAC_VERSION == 0x01000300 ))
+                        if( ( LmHandlerPackages[i]->OnMcpsIndicationProcess != NULL ) &&
+ 800ccec:	6a1a      	ldr	r2, [r3, #32]
+ 800ccee:	2a00      	cmp	r2, #0
+ 800ccf0:	d0e5      	beq.n	800ccbe <LmHandlerPackagesNotify+0x12>
+                            ( ( LmHandlerPackages[i]->Port == ( ( McpsIndication_t * )params )->Port ) ||
+ 800ccf2:	781a      	ldrb	r2, [r3, #0]
+ 800ccf4:	78fb      	ldrb	r3, [r7, #3]
+                        if( ( LmHandlerPackages[i]->OnMcpsIndicationProcess != NULL ) &&
+ 800ccf6:	429a      	cmp	r2, r3
+ 800ccf8:	d007      	beq.n	800cd0a <LmHandlerPackagesNotify+0x5e>
+                            ( ( LmHandlerPackages[i]->Port == ( ( McpsIndication_t * )params )->Port ) ||
+ 800ccfa:	2c00      	cmp	r4, #0
+ 800ccfc:	d1df      	bne.n	800ccbe <LmHandlerPackagesNotify+0x12>
+                              ( ( i == PACKAGE_ID_COMPLIANCE ) && ( LmHandlerPackages[PACKAGE_ID_COMPLIANCE]->IsRunning() ) ) ) )
+ 800ccfe:	4b0d      	ldr	r3, [pc, #52]	; (800cd34 <LmHandlerPackagesNotify+0x88>)
+ 800cd00:	681b      	ldr	r3, [r3, #0]
+ 800cd02:	68db      	ldr	r3, [r3, #12]
+ 800cd04:	4798      	blx	r3
+ 800cd06:	2800      	cmp	r0, #0
+ 800cd08:	d0d9      	beq.n	800ccbe <LmHandlerPackagesNotify+0x12>
+#elif (defined( LORAMAC_VERSION ) && (( LORAMAC_VERSION == 0x01000400 ) || ( LORAMAC_VERSION == 0x01010100 )))
+                        if( LmHandlerPackages[i]->OnMcpsIndicationProcess != NULL )
+#endif /* LORAMAC_VERSION */
+                        {
+                            LmHandlerPackages[i]->OnMcpsIndicationProcess( ( McpsIndication_t * )params );
+ 800cd0a:	4b0a      	ldr	r3, [pc, #40]	; (800cd34 <LmHandlerPackagesNotify+0x88>)
+ 800cd0c:	f853 3026 	ldr.w	r3, [r3, r6, lsl #2]
+ 800cd10:	6a1b      	ldr	r3, [r3, #32]
+ 800cd12:	4638      	mov	r0, r7
+ 800cd14:	4798      	blx	r3
+ 800cd16:	e7d2      	b.n	800ccbe <LmHandlerPackagesNotify+0x12>
+                        }
+                        break;
+                    }
+                case PACKAGE_MLME_CONFIRM:
+                    {
+                        if( LmHandlerPackages[i]->OnMlmeConfirmProcess != NULL )
+ 800cd18:	6a5b      	ldr	r3, [r3, #36]	; 0x24
+ 800cd1a:	2b00      	cmp	r3, #0
+ 800cd1c:	d0cf      	beq.n	800ccbe <LmHandlerPackagesNotify+0x12>
+                        {
+                            LmHandlerPackages[i]->OnMlmeConfirmProcess( ( MlmeConfirm_t * )params );
+ 800cd1e:	4638      	mov	r0, r7
+ 800cd20:	4798      	blx	r3
+ 800cd22:	e7cc      	b.n	800ccbe <LmHandlerPackagesNotify+0x12>
+                        }
+                        break;
+                    }
+                case PACKAGE_MLME_INDICATION:
+                    {
+                        if( LmHandlerPackages[i]->OnMlmeIndicationProcess != NULL )
+ 800cd24:	6a9b      	ldr	r3, [r3, #40]	; 0x28
+ 800cd26:	2b00      	cmp	r3, #0
+ 800cd28:	d0c9      	beq.n	800ccbe <LmHandlerPackagesNotify+0x12>
+                        {
+                            LmHandlerPackages[i]->OnMlmeIndicationProcess( params );
+ 800cd2a:	4638      	mov	r0, r7
+ 800cd2c:	4798      	blx	r3
+ 800cd2e:	e7c6      	b.n	800ccbe <LmHandlerPackagesNotify+0x12>
+                        break;
+                    }
+            }
+        }
+    }
+}
+ 800cd30:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 800cd32:	bf00      	nop
+ 800cd34:	2000107c 	.word	0x2000107c
+
+0800cd38 <MlmeIndication>:
+{
+ 800cd38:	b510      	push	{r4, lr}
+ 800cd3a:	4604      	mov	r4, r0
+    RxParams.IsMcpsIndication = 0;
+ 800cd3c:	4b11      	ldr	r3, [pc, #68]	; (800cd84 <MlmeIndication+0x4c>)
+ 800cd3e:	2200      	movs	r2, #0
+ 800cd40:	701a      	strb	r2, [r3, #0]
+    RxParams.Status = mlmeIndication->Status;
+ 800cd42:	7842      	ldrb	r2, [r0, #1]
+ 800cd44:	705a      	strb	r2, [r3, #1]
+    RxParams.Datarate = mlmeIndication->RxDatarate;
+ 800cd46:	f990 2002 	ldrsb.w	r2, [r0, #2]
+ 800cd4a:	721a      	strb	r2, [r3, #8]
+    RxParams.Rssi = rxStatus->Rssi;
+ 800cd4c:	f9b1 2000 	ldrsh.w	r2, [r1]
+ 800cd50:	725a      	strb	r2, [r3, #9]
+    RxParams.Snr = rxStatus->Snr;
+ 800cd52:	f991 2002 	ldrsb.w	r2, [r1, #2]
+ 800cd56:	729a      	strb	r2, [r3, #10]
+    RxParams.RxSlot = rxStatus->RxSlot;
+ 800cd58:	78ca      	ldrb	r2, [r1, #3]
+ 800cd5a:	741a      	strb	r2, [r3, #16]
+    RxParams.DownlinkCounter = mlmeIndication->DownLinkCounter;
+ 800cd5c:	6842      	ldr	r2, [r0, #4]
+ 800cd5e:	60da      	str	r2, [r3, #12]
+    if( ( LmHandlerCallbacks->OnRxData != NULL ) && ( mlmeIndication->MlmeIndication != MLME_BEACON ) && ( mlmeIndication->MlmeIndication != MLME_BEACON_LOST ) )
+ 800cd60:	4b09      	ldr	r3, [pc, #36]	; (800cd88 <MlmeIndication+0x50>)
+ 800cd62:	681b      	ldr	r3, [r3, #0]
+ 800cd64:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800cd66:	b13b      	cbz	r3, 800cd78 <MlmeIndication+0x40>
+ 800cd68:	7802      	ldrb	r2, [r0, #0]
+ 800cd6a:	2a0b      	cmp	r2, #11
+ 800cd6c:	d004      	beq.n	800cd78 <MlmeIndication+0x40>
+ 800cd6e:	2a0f      	cmp	r2, #15
+ 800cd70:	d002      	beq.n	800cd78 <MlmeIndication+0x40>
+        LmHandlerCallbacks->OnRxData( NULL, &RxParams );
+ 800cd72:	4904      	ldr	r1, [pc, #16]	; (800cd84 <MlmeIndication+0x4c>)
+ 800cd74:	2000      	movs	r0, #0
+ 800cd76:	4798      	blx	r3
+    LmHandlerPackagesNotify( PACKAGE_MLME_INDICATION, mlmeIndication );
+ 800cd78:	4621      	mov	r1, r4
+ 800cd7a:	2003      	movs	r0, #3
+ 800cd7c:	f7ff ff96 	bl	800ccac <LmHandlerPackagesNotify>
+}
+ 800cd80:	bd10      	pop	{r4, pc}
+ 800cd82:	bf00      	nop
+ 800cd84:	20000848 	.word	0x20000848
+ 800cd88:	20001078 	.word	0x20001078
+
+0800cd8c <McpsConfirm>:
+{
+ 800cd8c:	b510      	push	{r4, lr}
+ 800cd8e:	4604      	mov	r4, r0
+    TxParams.IsMcpsConfirm = 1;
+ 800cd90:	4b0d      	ldr	r3, [pc, #52]	; (800cdc8 <McpsConfirm+0x3c>)
+ 800cd92:	2201      	movs	r2, #1
+ 800cd94:	701a      	strb	r2, [r3, #0]
+    TxParams.Status = mcpsConfirm->Status;
+ 800cd96:	7842      	ldrb	r2, [r0, #1]
+ 800cd98:	705a      	strb	r2, [r3, #1]
+    TxParams.Datarate = mcpsConfirm->Datarate;
+ 800cd9a:	f990 2002 	ldrsb.w	r2, [r0, #2]
+ 800cd9e:	729a      	strb	r2, [r3, #10]
+    TxParams.UplinkCounter = mcpsConfirm->UpLinkCounter;
+ 800cda0:	68c2      	ldr	r2, [r0, #12]
+ 800cda2:	60da      	str	r2, [r3, #12]
+    TxParams.TxPower = mcpsConfirm->TxPower;
+ 800cda4:	f990 2003 	ldrsb.w	r2, [r0, #3]
+ 800cda8:	761a      	strb	r2, [r3, #24]
+    TxParams.Channel = mcpsConfirm->Channel;
+ 800cdaa:	6902      	ldr	r2, [r0, #16]
+ 800cdac:	765a      	strb	r2, [r3, #25]
+    TxParams.AckReceived = mcpsConfirm->AckReceived;
+ 800cdae:	7902      	ldrb	r2, [r0, #4]
+ 800cdb0:	725a      	strb	r2, [r3, #9]
+    if( LmHandlerCallbacks->OnTxData != NULL )
+ 800cdb2:	4b06      	ldr	r3, [pc, #24]	; (800cdcc <McpsConfirm+0x40>)
+ 800cdb4:	681b      	ldr	r3, [r3, #0]
+ 800cdb6:	6a9b      	ldr	r3, [r3, #40]	; 0x28
+ 800cdb8:	b10b      	cbz	r3, 800cdbe <McpsConfirm+0x32>
+        LmHandlerCallbacks->OnTxData( &TxParams );
+ 800cdba:	4803      	ldr	r0, [pc, #12]	; (800cdc8 <McpsConfirm+0x3c>)
+ 800cdbc:	4798      	blx	r3
+    LmHandlerPackagesNotify( PACKAGE_MCPS_CONFIRM, mcpsConfirm );
+ 800cdbe:	4621      	mov	r1, r4
+ 800cdc0:	2000      	movs	r0, #0
+ 800cdc2:	f7ff ff73 	bl	800ccac <LmHandlerPackagesNotify>
+}
+ 800cdc6:	bd10      	pop	{r4, pc}
+ 800cdc8:	2000085c 	.word	0x2000085c
+ 800cdcc:	20001078 	.word	0x20001078
+
+0800cdd0 <LmHandlerPackageIsTxPending>:
+
+static bool LmHandlerPackageIsTxPending( void )
+{
+ 800cdd0:	b510      	push	{r4, lr}
+    for( int8_t i = 0; i < PKG_MAX_NUMBER; i++ )
+ 800cdd2:	2400      	movs	r4, #0
+ 800cdd4:	e001      	b.n	800cdda <LmHandlerPackageIsTxPending+0xa>
+ 800cdd6:	3401      	adds	r4, #1
+ 800cdd8:	b264      	sxtb	r4, r4
+ 800cdda:	2c04      	cmp	r4, #4
+ 800cddc:	dc0c      	bgt.n	800cdf8 <LmHandlerPackageIsTxPending+0x28>
+    {
+#if (defined( LORAMAC_VERSION ) && ( LORAMAC_VERSION == 0x01000300 ))
+        if( ( LmHandlerPackages[i] != NULL ) && ( i != PACKAGE_ID_COMPLIANCE ) )
+ 800cdde:	4b08      	ldr	r3, [pc, #32]	; (800ce00 <LmHandlerPackageIsTxPending+0x30>)
+ 800cde0:	f853 3024 	ldr.w	r3, [r3, r4, lsl #2]
+ 800cde4:	2b00      	cmp	r3, #0
+ 800cde6:	d0f6      	beq.n	800cdd6 <LmHandlerPackageIsTxPending+0x6>
+ 800cde8:	2c00      	cmp	r4, #0
+ 800cdea:	d0f4      	beq.n	800cdd6 <LmHandlerPackageIsTxPending+0x6>
+#else
+        if( LmHandlerPackages[i] != NULL )
+#endif /* LORAMAC_VERSION */
+        {
+            if( LmHandlerPackages[i]->IsTxPending( ) == true )
+ 800cdec:	691b      	ldr	r3, [r3, #16]
+ 800cdee:	4798      	blx	r3
+ 800cdf0:	4603      	mov	r3, r0
+ 800cdf2:	2800      	cmp	r0, #0
+ 800cdf4:	d0ef      	beq.n	800cdd6 <LmHandlerPackageIsTxPending+0x6>
+ 800cdf6:	e000      	b.n	800cdfa <LmHandlerPackageIsTxPending+0x2a>
+            {
+                return true;
+            }
+        }
+    }
+    return false;
+ 800cdf8:	2300      	movs	r3, #0
+}
+ 800cdfa:	4618      	mov	r0, r3
+ 800cdfc:	bd10      	pop	{r4, pc}
+ 800cdfe:	bf00      	nop
+ 800ce00:	2000107c 	.word	0x2000107c
+
+0800ce04 <LmHandlerPackagesProcess>:
+
+static void LmHandlerPackagesProcess( void )
+{
+ 800ce04:	b538      	push	{r3, r4, r5, lr}
+    for( int8_t i = 0; i < PKG_MAX_NUMBER; i++ )
+ 800ce06:	2400      	movs	r4, #0
+ 800ce08:	e001      	b.n	800ce0e <LmHandlerPackagesProcess+0xa>
+ 800ce0a:	3401      	adds	r4, #1
+ 800ce0c:	b264      	sxtb	r4, r4
+ 800ce0e:	2c04      	cmp	r4, #4
+ 800ce10:	dc12      	bgt.n	800ce38 <LmHandlerPackagesProcess+0x34>
+    {
+        if( ( LmHandlerPackages[i] != NULL ) &&
+ 800ce12:	4b0a      	ldr	r3, [pc, #40]	; (800ce3c <LmHandlerPackagesProcess+0x38>)
+ 800ce14:	f853 3024 	ldr.w	r3, [r3, r4, lsl #2]
+ 800ce18:	2b00      	cmp	r3, #0
+ 800ce1a:	d0f6      	beq.n	800ce0a <LmHandlerPackagesProcess+0x6>
+            ( LmHandlerPackages[i]->Process != NULL ) &&
+ 800ce1c:	695b      	ldr	r3, [r3, #20]
+        if( ( LmHandlerPackages[i] != NULL ) &&
+ 800ce1e:	2b00      	cmp	r3, #0
+ 800ce20:	d0f3      	beq.n	800ce0a <LmHandlerPackagesProcess+0x6>
+            ( LmHandlerPackageIsInitialized( i ) != false ) )
+ 800ce22:	b2e0      	uxtb	r0, r4
+ 800ce24:	f7ff ff32 	bl	800cc8c <LmHandlerPackageIsInitialized>
+            ( LmHandlerPackages[i]->Process != NULL ) &&
+ 800ce28:	2800      	cmp	r0, #0
+ 800ce2a:	d0ee      	beq.n	800ce0a <LmHandlerPackagesProcess+0x6>
+        {
+            LmHandlerPackages[i]->Process( );
+ 800ce2c:	4b03      	ldr	r3, [pc, #12]	; (800ce3c <LmHandlerPackagesProcess+0x38>)
+ 800ce2e:	f853 3024 	ldr.w	r3, [r3, r4, lsl #2]
+ 800ce32:	695b      	ldr	r3, [r3, #20]
+ 800ce34:	4798      	blx	r3
+ 800ce36:	e7e8      	b.n	800ce0a <LmHandlerPackagesProcess+0x6>
+        }
+    }
+}
+ 800ce38:	bd38      	pop	{r3, r4, r5, pc}
+ 800ce3a:	bf00      	nop
+ 800ce3c:	2000107c 	.word	0x2000107c
+
+0800ce40 <LmHandlerDeviceTimeReq>:
+{
+ 800ce40:	b500      	push	{lr}
+ 800ce42:	b087      	sub	sp, #28
+    mlmeReq.Type = MLME_DEVICE_TIME;
+ 800ce44:	230a      	movs	r3, #10
+ 800ce46:	f88d 3004 	strb.w	r3, [sp, #4]
+    status = LoRaMacMlmeRequest( &mlmeReq );
+ 800ce4a:	a801      	add	r0, sp, #4
+ 800ce4c:	f003 ff28 	bl	8010ca0 <LoRaMacMlmeRequest>
+    DutyCycleWaitTime = mlmeReq.ReqReturn.DutyCycleWaitTime;
+ 800ce50:	9a05      	ldr	r2, [sp, #20]
+ 800ce52:	4b04      	ldr	r3, [pc, #16]	; (800ce64 <LmHandlerDeviceTimeReq+0x24>)
+ 800ce54:	601a      	str	r2, [r3, #0]
+    if( status == LORAMAC_STATUS_OK )
+ 800ce56:	b910      	cbnz	r0, 800ce5e <LmHandlerDeviceTimeReq+0x1e>
+}
+ 800ce58:	b007      	add	sp, #28
+ 800ce5a:	f85d fb04 	ldr.w	pc, [sp], #4
+        return LORAMAC_HANDLER_ERROR;
+ 800ce5e:	f04f 30ff 	mov.w	r0, #4294967295
+ 800ce62:	e7f9      	b.n	800ce58 <LmHandlerDeviceTimeReq+0x18>
+ 800ce64:	20001074 	.word	0x20001074
+
+0800ce68 <LmHandlerProcess>:
+{
+ 800ce68:	b508      	push	{r3, lr}
+    LoRaMacProcess( );
+ 800ce6a:	f002 ffe7 	bl	800fe3c <LoRaMacProcess>
+    LmHandlerPackagesProcess( );
+ 800ce6e:	f7ff ffc9 	bl	800ce04 <LmHandlerPackagesProcess>
+    if( LmHandlerPackageIsTxPending( ) == true )
+ 800ce72:	f7ff ffad 	bl	800cdd0 <LmHandlerPackageIsTxPending>
+}
+ 800ce76:	bd08      	pop	{r3, pc}
+
+0800ce78 <LmHandlerGetDutyCycleWaitTime>:
+}
+ 800ce78:	4b01      	ldr	r3, [pc, #4]	; (800ce80 <LmHandlerGetDutyCycleWaitTime+0x8>)
+ 800ce7a:	6818      	ldr	r0, [r3, #0]
+ 800ce7c:	4770      	bx	lr
+ 800ce7e:	bf00      	nop
+ 800ce80:	20001074 	.word	0x20001074
+
+0800ce84 <LmHandlerJoinStatus>:
+{
+ 800ce84:	b500      	push	{lr}
+ 800ce86:	b08b      	sub	sp, #44	; 0x2c
+    mibReq.Type = MIB_NETWORK_ACTIVATION;
+ 800ce88:	2301      	movs	r3, #1
+ 800ce8a:	f88d 3000 	strb.w	r3, [sp]
+    status = LoRaMacMibGetRequestConfirm( &mibReq );
+ 800ce8e:	4668      	mov	r0, sp
+ 800ce90:	f003 fab8 	bl	8010404 <LoRaMacMibGetRequestConfirm>
+    if( status == LORAMAC_STATUS_OK )
+ 800ce94:	b920      	cbnz	r0, 800cea0 <LmHandlerJoinStatus+0x1c>
+        if( mibReq.Param.NetworkActivation == ACTIVATION_TYPE_NONE )
+ 800ce96:	f89d 0004 	ldrb.w	r0, [sp, #4]
+ 800ce9a:	b110      	cbz	r0, 800cea2 <LmHandlerJoinStatus+0x1e>
+            return LORAMAC_HANDLER_SET;
+ 800ce9c:	2001      	movs	r0, #1
+ 800ce9e:	e000      	b.n	800cea2 <LmHandlerJoinStatus+0x1e>
+        return LORAMAC_HANDLER_RESET;
+ 800cea0:	2000      	movs	r0, #0
+}
+ 800cea2:	b00b      	add	sp, #44	; 0x2c
+ 800cea4:	f85d fb04 	ldr.w	pc, [sp], #4
+
+0800cea8 <LmHandlerRequestClass>:
+{
+ 800cea8:	b510      	push	{r4, lr}
+ 800ceaa:	b08a      	sub	sp, #40	; 0x28
+ 800ceac:	4604      	mov	r4, r0
+    if( LoRaMacIsBusy() == true )
+ 800ceae:	f002 ffa3 	bl	800fdf8 <LoRaMacIsBusy>
+ 800ceb2:	bbb0      	cbnz	r0, 800cf22 <LmHandlerRequestClass+0x7a>
+    if( LmHandlerJoinStatus() != LORAMAC_HANDLER_SET )
+ 800ceb4:	f7ff ffe6 	bl	800ce84 <LmHandlerJoinStatus>
+ 800ceb8:	2801      	cmp	r0, #1
+ 800ceba:	d135      	bne.n	800cf28 <LmHandlerRequestClass+0x80>
+    mibReq.Type = MIB_DEVICE_CLASS;
+ 800cebc:	2300      	movs	r3, #0
+ 800cebe:	f88d 3000 	strb.w	r3, [sp]
+    if( LoRaMacMibGetRequestConfirm( &mibReq ) != LORAMAC_STATUS_OK )
+ 800cec2:	4668      	mov	r0, sp
+ 800cec4:	f003 fa9e 	bl	8010404 <LoRaMacMibGetRequestConfirm>
+ 800cec8:	bb88      	cbnz	r0, 800cf2e <LmHandlerRequestClass+0x86>
+    currentClass = mibReq.Param.Class;
+ 800ceca:	f89d 3004 	ldrb.w	r3, [sp, #4]
+    if( currentClass != newClass )
+ 800cece:	42a3      	cmp	r3, r4
+ 800ced0:	d030      	beq.n	800cf34 <LmHandlerRequestClass+0x8c>
+        switch( newClass )
+ 800ced2:	2c01      	cmp	r4, #1
+ 800ced4:	d030      	beq.n	800cf38 <LmHandlerRequestClass+0x90>
+ 800ced6:	2c02      	cmp	r4, #2
+ 800ced8:	d014      	beq.n	800cf04 <LmHandlerRequestClass+0x5c>
+ 800ceda:	b114      	cbz	r4, 800cee2 <LmHandlerRequestClass+0x3a>
+ 800cedc:	2000      	movs	r0, #0
+}
+ 800cede:	b00a      	add	sp, #40	; 0x28
+ 800cee0:	bd10      	pop	{r4, pc}
+                    if( currentClass != CLASS_A )
+ 800cee2:	b90b      	cbnz	r3, 800cee8 <LmHandlerRequestClass+0x40>
+    LmHandlerErrorStatus_t errorStatus = LORAMAC_HANDLER_SUCCESS;
+ 800cee4:	2000      	movs	r0, #0
+ 800cee6:	e7fa      	b.n	800cede <LmHandlerRequestClass+0x36>
+                        mibReq.Param.Class = newClass;
+ 800cee8:	f88d 4004 	strb.w	r4, [sp, #4]
+                        if( LoRaMacMibSetRequestConfirm( &mibReq ) == LORAMAC_STATUS_OK )
+ 800ceec:	4668      	mov	r0, sp
+ 800ceee:	f003 fbfd 	bl	80106ec <LoRaMacMibSetRequestConfirm>
+ 800cef2:	bb20      	cbnz	r0, 800cf3e <LmHandlerRequestClass+0x96>
+                            if( LmHandlerCallbacks->OnClassChange != NULL )
+ 800cef4:	4b18      	ldr	r3, [pc, #96]	; (800cf58 <LmHandlerRequestClass+0xb0>)
+ 800cef6:	681b      	ldr	r3, [r3, #0]
+ 800cef8:	6b1b      	ldr	r3, [r3, #48]	; 0x30
+ 800cefa:	b31b      	cbz	r3, 800cf44 <LmHandlerRequestClass+0x9c>
+                                LmHandlerCallbacks->OnClassChange( newClass );
+ 800cefc:	4620      	mov	r0, r4
+ 800cefe:	4798      	blx	r3
+    LmHandlerErrorStatus_t errorStatus = LORAMAC_HANDLER_SUCCESS;
+ 800cf00:	2000      	movs	r0, #0
+ 800cf02:	e7ec      	b.n	800cede <LmHandlerRequestClass+0x36>
+                    if( currentClass != CLASS_A )
+ 800cf04:	bb03      	cbnz	r3, 800cf48 <LmHandlerRequestClass+0xa0>
+                        mibReq.Param.Class = newClass;
+ 800cf06:	f88d 4004 	strb.w	r4, [sp, #4]
+                        if( LoRaMacMibSetRequestConfirm( &mibReq ) == LORAMAC_STATUS_OK )
+ 800cf0a:	4668      	mov	r0, sp
+ 800cf0c:	f003 fbee 	bl	80106ec <LoRaMacMibSetRequestConfirm>
+ 800cf10:	b9e8      	cbnz	r0, 800cf4e <LmHandlerRequestClass+0xa6>
+                            if( LmHandlerCallbacks->OnClassChange != NULL )
+ 800cf12:	4b11      	ldr	r3, [pc, #68]	; (800cf58 <LmHandlerRequestClass+0xb0>)
+ 800cf14:	681b      	ldr	r3, [r3, #0]
+ 800cf16:	6b1b      	ldr	r3, [r3, #48]	; 0x30
+ 800cf18:	b1e3      	cbz	r3, 800cf54 <LmHandlerRequestClass+0xac>
+                                LmHandlerCallbacks->OnClassChange( newClass );
+ 800cf1a:	4620      	mov	r0, r4
+ 800cf1c:	4798      	blx	r3
+    LmHandlerErrorStatus_t errorStatus = LORAMAC_HANDLER_SUCCESS;
+ 800cf1e:	2000      	movs	r0, #0
+ 800cf20:	e7dd      	b.n	800cede <LmHandlerRequestClass+0x36>
+        return LORAMAC_HANDLER_BUSY_ERROR;
+ 800cf22:	f06f 0001 	mvn.w	r0, #1
+ 800cf26:	e7da      	b.n	800cede <LmHandlerRequestClass+0x36>
+        return LORAMAC_HANDLER_NO_NETWORK_JOINED;
+ 800cf28:	f06f 0002 	mvn.w	r0, #2
+ 800cf2c:	e7d7      	b.n	800cede <LmHandlerRequestClass+0x36>
+        return LORAMAC_HANDLER_ERROR;
+ 800cf2e:	f04f 30ff 	mov.w	r0, #4294967295
+ 800cf32:	e7d4      	b.n	800cede <LmHandlerRequestClass+0x36>
+    LmHandlerErrorStatus_t errorStatus = LORAMAC_HANDLER_SUCCESS;
+ 800cf34:	2000      	movs	r0, #0
+ 800cf36:	e7d2      	b.n	800cede <LmHandlerRequestClass+0x36>
+                    errorStatus = LORAMAC_HANDLER_ERROR;
+ 800cf38:	f04f 30ff 	mov.w	r0, #4294967295
+ 800cf3c:	e7cf      	b.n	800cede <LmHandlerRequestClass+0x36>
+                            errorStatus = LORAMAC_HANDLER_ERROR;
+ 800cf3e:	f04f 30ff 	mov.w	r0, #4294967295
+ 800cf42:	e7cc      	b.n	800cede <LmHandlerRequestClass+0x36>
+    LmHandlerErrorStatus_t errorStatus = LORAMAC_HANDLER_SUCCESS;
+ 800cf44:	2000      	movs	r0, #0
+ 800cf46:	e7ca      	b.n	800cede <LmHandlerRequestClass+0x36>
+                        errorStatus = LORAMAC_HANDLER_ERROR;
+ 800cf48:	f04f 30ff 	mov.w	r0, #4294967295
+ 800cf4c:	e7c7      	b.n	800cede <LmHandlerRequestClass+0x36>
+                            errorStatus = LORAMAC_HANDLER_ERROR;
+ 800cf4e:	f04f 30ff 	mov.w	r0, #4294967295
+ 800cf52:	e7c4      	b.n	800cede <LmHandlerRequestClass+0x36>
+    LmHandlerErrorStatus_t errorStatus = LORAMAC_HANDLER_SUCCESS;
+ 800cf54:	2000      	movs	r0, #0
+ 800cf56:	e7c2      	b.n	800cede <LmHandlerRequestClass+0x36>
+ 800cf58:	20001078 	.word	0x20001078
+
+0800cf5c <LmHandlerJoin>:
+{
+ 800cf5c:	b510      	push	{r4, lr}
+ 800cf5e:	b090      	sub	sp, #64	; 0x40
+    mlmeReq.Type = MLME_JOIN;
+ 800cf60:	2301      	movs	r3, #1
+ 800cf62:	f88d 302c 	strb.w	r3, [sp, #44]	; 0x2c
+    mlmeReq.Req.Join.Datarate = LmHandlerParams.TxDatarate;
+ 800cf66:	4b35      	ldr	r3, [pc, #212]	; (800d03c <LmHandlerJoin+0xe0>)
+ 800cf68:	f993 2004 	ldrsb.w	r2, [r3, #4]
+ 800cf6c:	f88d 2031 	strb.w	r2, [sp, #49]	; 0x31
+    mlmeReq.Req.Join.TxPower = LmHandlerParams.TxPower;
+ 800cf70:	f993 c005 	ldrsb.w	ip, [r3, #5]
+ 800cf74:	f88d c032 	strb.w	ip, [sp, #50]	; 0x32
+    if( mode == ACTIVATION_TYPE_OTAA )
+ 800cf78:	2802      	cmp	r0, #2
+ 800cf7a:	d023      	beq.n	800cfc4 <LmHandlerJoin+0x68>
+        mlmeReq.Req.Join.NetworkActivation = ACTIVATION_TYPE_ABP;
+ 800cf7c:	2001      	movs	r0, #1
+ 800cf7e:	f88d 0030 	strb.w	r0, [sp, #48]	; 0x30
+        JoinParams.Mode = ACTIVATION_TYPE_ABP;
+ 800cf82:	4b2f      	ldr	r3, [pc, #188]	; (800d040 <LmHandlerJoin+0xe4>)
+ 800cf84:	71d8      	strb	r0, [r3, #7]
+        JoinParams.Datarate = LmHandlerParams.TxDatarate;
+ 800cf86:	711a      	strb	r2, [r3, #4]
+        JoinParams.TxPower = LmHandlerParams.TxPower;
+ 800cf88:	f883 c005 	strb.w	ip, [r3, #5]
+        JoinParams.Status = LORAMAC_HANDLER_SUCCESS;
+ 800cf8c:	2000      	movs	r0, #0
+ 800cf8e:	7198      	strb	r0, [r3, #6]
+        JoinParams.forceRejoin = forceRejoin;
+ 800cf90:	7219      	strb	r1, [r3, #8]
+        if( CtxRestoreDone == false )
+ 800cf92:	4b2c      	ldr	r3, [pc, #176]	; (800d044 <LmHandlerJoin+0xe8>)
+ 800cf94:	781b      	ldrb	r3, [r3, #0]
+ 800cf96:	b30b      	cbz	r3, 800cfdc <LmHandlerJoin+0x80>
+        LoRaMacStart();
+ 800cf98:	f003 f972 	bl	8010280 <LoRaMacStart>
+        mibReq.Type = MIB_NETWORK_ACTIVATION;
+ 800cf9c:	2301      	movs	r3, #1
+ 800cf9e:	f88d 3004 	strb.w	r3, [sp, #4]
+        mibReq.Param.NetworkActivation = ACTIVATION_TYPE_ABP;
+ 800cfa2:	f88d 3008 	strb.w	r3, [sp, #8]
+        LoRaMacMibSetRequestConfirm( &mibReq );
+ 800cfa6:	a801      	add	r0, sp, #4
+ 800cfa8:	f003 fba0 	bl	80106ec <LoRaMacMibSetRequestConfirm>
+        if( LmHandlerCallbacks->OnJoinRequest != NULL )
+ 800cfac:	4b26      	ldr	r3, [pc, #152]	; (800d048 <LmHandlerJoin+0xec>)
+ 800cfae:	681b      	ldr	r3, [r3, #0]
+ 800cfb0:	6a5b      	ldr	r3, [r3, #36]	; 0x24
+ 800cfb2:	b10b      	cbz	r3, 800cfb8 <LmHandlerJoin+0x5c>
+            LmHandlerCallbacks->OnJoinRequest( &JoinParams );
+ 800cfb4:	4822      	ldr	r0, [pc, #136]	; (800d040 <LmHandlerJoin+0xe4>)
+ 800cfb6:	4798      	blx	r3
+        LmHandlerRequestClass( LmHandlerParams.DefaultClass );
+ 800cfb8:	4b20      	ldr	r3, [pc, #128]	; (800d03c <LmHandlerJoin+0xe0>)
+ 800cfba:	7858      	ldrb	r0, [r3, #1]
+ 800cfbc:	f7ff ff74 	bl	800cea8 <LmHandlerRequestClass>
+}
+ 800cfc0:	b010      	add	sp, #64	; 0x40
+ 800cfc2:	bd10      	pop	{r4, pc}
+        mlmeReq.Req.Join.NetworkActivation = ACTIVATION_TYPE_OTAA;
+ 800cfc4:	2202      	movs	r2, #2
+ 800cfc6:	f88d 2030 	strb.w	r2, [sp, #48]	; 0x30
+        JoinParams.Mode = ACTIVATION_TYPE_OTAA;
+ 800cfca:	4b1d      	ldr	r3, [pc, #116]	; (800d040 <LmHandlerJoin+0xe4>)
+ 800cfcc:	71da      	strb	r2, [r3, #7]
+        JoinParams.forceRejoin = forceRejoin;
+ 800cfce:	7219      	strb	r1, [r3, #8]
+        LoRaMacStart();
+ 800cfd0:	f003 f956 	bl	8010280 <LoRaMacStart>
+        LoRaMacMlmeRequest( &mlmeReq );
+ 800cfd4:	a80b      	add	r0, sp, #44	; 0x2c
+ 800cfd6:	f003 fe63 	bl	8010ca0 <LoRaMacMlmeRequest>
+ 800cfda:	e7f1      	b.n	800cfc0 <LmHandlerJoin+0x64>
+            mibReq.Type = MIB_CHANNELS_DEFAULT_DATARATE;
+ 800cfdc:	231e      	movs	r3, #30
+ 800cfde:	f88d 3004 	strb.w	r3, [sp, #4]
+            mibReq.Param.ChannelsDefaultDatarate = LmHandlerParams.TxDatarate;
+ 800cfe2:	f88d 2008 	strb.w	r2, [sp, #8]
+            LoRaMacMibSetRequestConfirm( &mibReq );
+ 800cfe6:	a801      	add	r0, sp, #4
+ 800cfe8:	f003 fb80 	bl	80106ec <LoRaMacMibSetRequestConfirm>
+            mibReq.Type = MIB_CHANNELS_DATARATE;
+ 800cfec:	231f      	movs	r3, #31
+ 800cfee:	f88d 3004 	strb.w	r3, [sp, #4]
+            mibReq.Param.ChannelsDatarate = LmHandlerParams.TxDatarate;
+ 800cff2:	4c12      	ldr	r4, [pc, #72]	; (800d03c <LmHandlerJoin+0xe0>)
+ 800cff4:	f994 3004 	ldrsb.w	r3, [r4, #4]
+ 800cff8:	f88d 3008 	strb.w	r3, [sp, #8]
+            LoRaMacMibSetRequestConfirm( &mibReq );
+ 800cffc:	a801      	add	r0, sp, #4
+ 800cffe:	f003 fb75 	bl	80106ec <LoRaMacMibSetRequestConfirm>
+            mibReq.Type = MIB_CHANNELS_DEFAULT_TX_POWER;
+ 800d002:	2321      	movs	r3, #33	; 0x21
+ 800d004:	f88d 3004 	strb.w	r3, [sp, #4]
+            mibReq.Param.ChannelsDefaultTxPower = LmHandlerParams.TxPower;
+ 800d008:	f994 3005 	ldrsb.w	r3, [r4, #5]
+ 800d00c:	f88d 3008 	strb.w	r3, [sp, #8]
+            LoRaMacMibSetRequestConfirm( &mibReq );
+ 800d010:	a801      	add	r0, sp, #4
+ 800d012:	f003 fb6b 	bl	80106ec <LoRaMacMibSetRequestConfirm>
+            mibReq.Type = MIB_CHANNELS_TX_POWER;
+ 800d016:	2320      	movs	r3, #32
+ 800d018:	f88d 3004 	strb.w	r3, [sp, #4]
+            mibReq.Param.ChannelsTxPower = LmHandlerParams.TxPower;
+ 800d01c:	f994 3005 	ldrsb.w	r3, [r4, #5]
+ 800d020:	f88d 3008 	strb.w	r3, [sp, #8]
+            LoRaMacMibSetRequestConfirm( &mibReq );
+ 800d024:	a801      	add	r0, sp, #4
+ 800d026:	f003 fb61 	bl	80106ec <LoRaMacMibSetRequestConfirm>
+            mibReq.Type = MIB_ABP_LORAWAN_VERSION;
+ 800d02a:	2328      	movs	r3, #40	; 0x28
+ 800d02c:	f88d 3004 	strb.w	r3, [sp, #4]
+            mibReq.Param.AbpLrWanVersion.Value = ABP_ACTIVATION_LRWAN_VERSION;
+ 800d030:	4b06      	ldr	r3, [pc, #24]	; (800d04c <LmHandlerJoin+0xf0>)
+ 800d032:	9302      	str	r3, [sp, #8]
+            LoRaMacMibSetRequestConfirm( &mibReq );
+ 800d034:	a801      	add	r0, sp, #4
+ 800d036:	f003 fb59 	bl	80106ec <LoRaMacMibSetRequestConfirm>
+ 800d03a:	e7ad      	b.n	800cf98 <LmHandlerJoin+0x3c>
+ 800d03c:	20001090 	.word	0x20001090
+ 800d040:	20000830 	.word	0x20000830
+ 800d044:	20001070 	.word	0x20001070
+ 800d048:	20001078 	.word	0x20001078
+ 800d04c:	01000300 	.word	0x01000300
+
+0800d050 <LmHandlerIsBusy>:
+{
+ 800d050:	b508      	push	{r3, lr}
+    if( LoRaMacIsBusy( ) == true )
+ 800d052:	f002 fed1 	bl	800fdf8 <LoRaMacIsBusy>
+ 800d056:	b100      	cbz	r0, 800d05a <LmHandlerIsBusy+0xa>
+}
+ 800d058:	bd08      	pop	{r3, pc}
+    if( LmHandlerJoinStatus( ) != LORAMAC_HANDLER_SET )
+ 800d05a:	f7ff ff13 	bl	800ce84 <LmHandlerJoinStatus>
+ 800d05e:	2801      	cmp	r0, #1
+ 800d060:	d108      	bne.n	800d074 <LmHandlerIsBusy+0x24>
+    if( LmHandlerPackages[PACKAGE_ID_COMPLIANCE]->IsRunning( ) == true )
+ 800d062:	4b08      	ldr	r3, [pc, #32]	; (800d084 <LmHandlerIsBusy+0x34>)
+ 800d064:	681b      	ldr	r3, [r3, #0]
+ 800d066:	68db      	ldr	r3, [r3, #12]
+ 800d068:	4798      	blx	r3
+ 800d06a:	2800      	cmp	r0, #0
+ 800d06c:	d1f4      	bne.n	800d058 <LmHandlerIsBusy+0x8>
+    if( LmHandlerPackageIsTxPending( ) == true )
+ 800d06e:	f7ff feaf 	bl	800cdd0 <LmHandlerPackageIsTxPending>
+ 800d072:	e7f1      	b.n	800d058 <LmHandlerIsBusy+0x8>
+        LmHandlerJoin( JoinParams.Mode, JoinParams.forceRejoin );
+ 800d074:	4b04      	ldr	r3, [pc, #16]	; (800d088 <LmHandlerIsBusy+0x38>)
+ 800d076:	7a19      	ldrb	r1, [r3, #8]
+ 800d078:	79d8      	ldrb	r0, [r3, #7]
+ 800d07a:	f7ff ff6f 	bl	800cf5c <LmHandlerJoin>
+        return true;
+ 800d07e:	2001      	movs	r0, #1
+ 800d080:	e7ea      	b.n	800d058 <LmHandlerIsBusy+0x8>
+ 800d082:	bf00      	nop
+ 800d084:	2000107c 	.word	0x2000107c
+ 800d088:	20000830 	.word	0x20000830
+
+0800d08c <LmHandlerSend>:
+{
+ 800d08c:	b570      	push	{r4, r5, r6, lr}
+ 800d08e:	b086      	sub	sp, #24
+ 800d090:	4604      	mov	r4, r0
+ 800d092:	460d      	mov	r5, r1
+ 800d094:	4616      	mov	r6, r2
+    if( LoRaMacIsBusy() == true )
+ 800d096:	f002 feaf 	bl	800fdf8 <LoRaMacIsBusy>
+ 800d09a:	2800      	cmp	r0, #0
+ 800d09c:	d172      	bne.n	800d184 <LmHandlerSend+0xf8>
+    if( LoRaMacIsStopped() == true )
+ 800d09e:	f002 fec1 	bl	800fe24 <LoRaMacIsStopped>
+ 800d0a2:	2800      	cmp	r0, #0
+ 800d0a4:	d171      	bne.n	800d18a <LmHandlerSend+0xfe>
+    if( LmHandlerJoinStatus( ) != LORAMAC_HANDLER_SET )
+ 800d0a6:	f7ff feed 	bl	800ce84 <LmHandlerJoinStatus>
+ 800d0aa:	2801      	cmp	r0, #1
+ 800d0ac:	d144      	bne.n	800d138 <LmHandlerSend+0xac>
+    if( ( LmHandlerPackages[PACKAGE_ID_COMPLIANCE]->IsRunning( ) == true )
+ 800d0ae:	4b3b      	ldr	r3, [pc, #236]	; (800d19c <LmHandlerSend+0x110>)
+ 800d0b0:	681b      	ldr	r3, [r3, #0]
+ 800d0b2:	68db      	ldr	r3, [r3, #12]
+ 800d0b4:	4798      	blx	r3
+ 800d0b6:	b138      	cbz	r0, 800d0c8 <LmHandlerSend+0x3c>
+        && ( appData->Port != LmHandlerPackages[PACKAGE_ID_COMPLIANCE]->Port ) && ( appData->Port != 0 ) )
+ 800d0b8:	7823      	ldrb	r3, [r4, #0]
+ 800d0ba:	4a38      	ldr	r2, [pc, #224]	; (800d19c <LmHandlerSend+0x110>)
+ 800d0bc:	6812      	ldr	r2, [r2, #0]
+ 800d0be:	7812      	ldrb	r2, [r2, #0]
+ 800d0c0:	4293      	cmp	r3, r2
+ 800d0c2:	d001      	beq.n	800d0c8 <LmHandlerSend+0x3c>
+ 800d0c4:	2b00      	cmp	r3, #0
+ 800d0c6:	d163      	bne.n	800d190 <LmHandlerSend+0x104>
+    TxParams.MsgType = isTxConfirmed;
+ 800d0c8:	4b35      	ldr	r3, [pc, #212]	; (800d1a0 <LmHandlerSend+0x114>)
+ 800d0ca:	721d      	strb	r5, [r3, #8]
+    mcpsReq.Type = ( isTxConfirmed == LORAMAC_HANDLER_UNCONFIRMED_MSG ) ? MCPS_UNCONFIRMED : MCPS_CONFIRMED;
+ 800d0cc:	3d00      	subs	r5, #0
+ 800d0ce:	bf18      	it	ne
+ 800d0d0:	2501      	movne	r5, #1
+ 800d0d2:	f88d 5004 	strb.w	r5, [sp, #4]
+    mcpsReq.Req.Unconfirmed.Datarate = LmHandlerParams.TxDatarate;
+ 800d0d6:	4b33      	ldr	r3, [pc, #204]	; (800d1a4 <LmHandlerSend+0x118>)
+ 800d0d8:	f993 3004 	ldrsb.w	r3, [r3, #4]
+ 800d0dc:	f88d 3012 	strb.w	r3, [sp, #18]
+    if( LoRaMacQueryTxPossible( appData->BufferSize, &txInfo ) != LORAMAC_STATUS_OK )
+ 800d0e0:	4669      	mov	r1, sp
+ 800d0e2:	7860      	ldrb	r0, [r4, #1]
+ 800d0e4:	f003 f92c 	bl	8010340 <LoRaMacQueryTxPossible>
+ 800d0e8:	b370      	cbz	r0, 800d148 <LmHandlerSend+0xbc>
+        mcpsReq.Type = MCPS_UNCONFIRMED;
+ 800d0ea:	2300      	movs	r3, #0
+ 800d0ec:	f88d 3004 	strb.w	r3, [sp, #4]
+        mcpsReq.Req.Unconfirmed.fBuffer = NULL;
+ 800d0f0:	9303      	str	r3, [sp, #12]
+        mcpsReq.Req.Unconfirmed.fBufferSize = 0;
+ 800d0f2:	f8ad 3010 	strh.w	r3, [sp, #16]
+        lmhStatus = LORAMAC_HANDLER_PAYLOAD_LENGTH_RESTRICTED;
+ 800d0f6:	f06f 0506 	mvn.w	r5, #6
+    TxParams.AppData = *appData;
+ 800d0fa:	4b29      	ldr	r3, [pc, #164]	; (800d1a0 <LmHandlerSend+0x114>)
+ 800d0fc:	f103 0c10 	add.w	ip, r3, #16
+ 800d100:	e894 0003 	ldmia.w	r4, {r0, r1}
+ 800d104:	e88c 0003 	stmia.w	ip, {r0, r1}
+    TxParams.Datarate = LmHandlerParams.TxDatarate;
+ 800d108:	4a26      	ldr	r2, [pc, #152]	; (800d1a4 <LmHandlerSend+0x118>)
+ 800d10a:	f992 2004 	ldrsb.w	r2, [r2, #4]
+ 800d10e:	729a      	strb	r2, [r3, #10]
+    status = LoRaMacMcpsRequest( &mcpsReq, allowDelayedTx );
+ 800d110:	4631      	mov	r1, r6
+ 800d112:	a801      	add	r0, sp, #4
+ 800d114:	f003 fea4 	bl	8010e60 <LoRaMacMcpsRequest>
+    DutyCycleWaitTime = mcpsReq.ReqReturn.DutyCycleWaitTime;
+ 800d118:	9a05      	ldr	r2, [sp, #20]
+ 800d11a:	4b23      	ldr	r3, [pc, #140]	; (800d1a8 <LmHandlerSend+0x11c>)
+ 800d11c:	601a      	str	r2, [r3, #0]
+    switch( status )
+ 800d11e:	2811      	cmp	r0, #17
+ 800d120:	d82d      	bhi.n	800d17e <LmHandlerSend+0xf2>
+ 800d122:	e8df f000 	tbb	[pc, r0]
+ 800d126:	1c21      	.short	0x1c21
+ 800d128:	2c2c2c2c 	.word	0x2c2c2c2c
+ 800d12c:	2c2c382c 	.word	0x2c2c382c
+ 800d130:	2c2c292c 	.word	0x2c2c292c
+ 800d134:	261c1c1c 	.word	0x261c1c1c
+        LmHandlerJoin( JoinParams.Mode, JoinParams.forceRejoin );
+ 800d138:	4b1c      	ldr	r3, [pc, #112]	; (800d1ac <LmHandlerSend+0x120>)
+ 800d13a:	7a19      	ldrb	r1, [r3, #8]
+ 800d13c:	79d8      	ldrb	r0, [r3, #7]
+ 800d13e:	f7ff ff0d 	bl	800cf5c <LmHandlerJoin>
+        return LORAMAC_HANDLER_NO_NETWORK_JOINED;
+ 800d142:	f06f 0502 	mvn.w	r5, #2
+ 800d146:	e00c      	b.n	800d162 <LmHandlerSend+0xd6>
+        mcpsReq.Req.Unconfirmed.fPort = appData->Port;
+ 800d148:	7823      	ldrb	r3, [r4, #0]
+ 800d14a:	f88d 3008 	strb.w	r3, [sp, #8]
+        mcpsReq.Req.Unconfirmed.fBufferSize = appData->BufferSize;
+ 800d14e:	7863      	ldrb	r3, [r4, #1]
+ 800d150:	f8ad 3010 	strh.w	r3, [sp, #16]
+        mcpsReq.Req.Unconfirmed.fBuffer = appData->Buffer;
+ 800d154:	6863      	ldr	r3, [r4, #4]
+ 800d156:	9303      	str	r3, [sp, #12]
+    LmHandlerErrorStatus_t lmhStatus = LORAMAC_HANDLER_ERROR;
+ 800d158:	f04f 35ff 	mov.w	r5, #4294967295
+ 800d15c:	e7cd      	b.n	800d0fa <LmHandlerSend+0x6e>
+    switch( status )
+ 800d15e:	f06f 0501 	mvn.w	r5, #1
+}
+ 800d162:	4628      	mov	r0, r5
+ 800d164:	b006      	add	sp, #24
+ 800d166:	bd70      	pop	{r4, r5, r6, pc}
+            if( lmhStatus != LORAMAC_HANDLER_PAYLOAD_LENGTH_RESTRICTED )
+ 800d168:	f115 0f07 	cmn.w	r5, #7
+ 800d16c:	d0f9      	beq.n	800d162 <LmHandlerSend+0xd6>
+                lmhStatus = LORAMAC_HANDLER_SUCCESS;
+ 800d16e:	2500      	movs	r5, #0
+ 800d170:	e7f7      	b.n	800d162 <LmHandlerSend+0xd6>
+            lmhStatus = LORAMAC_HANDLER_CRYPTO_ERROR;
+ 800d172:	f06f 0504 	mvn.w	r5, #4
+            break;
+ 800d176:	e7f4      	b.n	800d162 <LmHandlerSend+0xd6>
+            lmhStatus = LORAMAC_HANDLER_DUTYCYCLE_RESTRICTED;
+ 800d178:	f06f 0505 	mvn.w	r5, #5
+            break;
+ 800d17c:	e7f1      	b.n	800d162 <LmHandlerSend+0xd6>
+            lmhStatus = LORAMAC_HANDLER_ERROR;
+ 800d17e:	f04f 35ff 	mov.w	r5, #4294967295
+            break;
+ 800d182:	e7ee      	b.n	800d162 <LmHandlerSend+0xd6>
+        return LORAMAC_HANDLER_BUSY_ERROR;
+ 800d184:	f06f 0501 	mvn.w	r5, #1
+ 800d188:	e7eb      	b.n	800d162 <LmHandlerSend+0xd6>
+        return LORAMAC_HANDLER_NO_NETWORK_JOINED;
+ 800d18a:	f06f 0502 	mvn.w	r5, #2
+ 800d18e:	e7e8      	b.n	800d162 <LmHandlerSend+0xd6>
+        return LORAMAC_HANDLER_COMPLIANCE_RUNNING;
+ 800d190:	f06f 0503 	mvn.w	r5, #3
+ 800d194:	e7e5      	b.n	800d162 <LmHandlerSend+0xd6>
+            lmhStatus = LORAMAC_HANDLER_NO_NETWORK_JOINED;
+ 800d196:	f06f 0502 	mvn.w	r5, #2
+ 800d19a:	e7e2      	b.n	800d162 <LmHandlerSend+0xd6>
+ 800d19c:	2000107c 	.word	0x2000107c
+ 800d1a0:	2000085c 	.word	0x2000085c
+ 800d1a4:	20001090 	.word	0x20001090
+ 800d1a8:	20001074 	.word	0x20001074
+ 800d1ac:	20000830 	.word	0x20000830
+
+0800d1b0 <LmHandlerGetCurrentClass>:
+    if( deviceClass == NULL )
+ 800d1b0:	b170      	cbz	r0, 800d1d0 <LmHandlerGetCurrentClass+0x20>
+{
+ 800d1b2:	b510      	push	{r4, lr}
+ 800d1b4:	b08a      	sub	sp, #40	; 0x28
+ 800d1b6:	4604      	mov	r4, r0
+    mibReq.Type = MIB_DEVICE_CLASS;
+ 800d1b8:	2300      	movs	r3, #0
+ 800d1ba:	f88d 3000 	strb.w	r3, [sp]
+    if( LoRaMacMibGetRequestConfirm( &mibReq ) != LORAMAC_STATUS_OK )
+ 800d1be:	4668      	mov	r0, sp
+ 800d1c0:	f003 f920 	bl	8010404 <LoRaMacMibGetRequestConfirm>
+ 800d1c4:	b938      	cbnz	r0, 800d1d6 <LmHandlerGetCurrentClass+0x26>
+    *deviceClass = mibReq.Param.Class;
+ 800d1c6:	f89d 3004 	ldrb.w	r3, [sp, #4]
+ 800d1ca:	7023      	strb	r3, [r4, #0]
+}
+ 800d1cc:	b00a      	add	sp, #40	; 0x28
+ 800d1ce:	bd10      	pop	{r4, pc}
+        return LORAMAC_HANDLER_ERROR;
+ 800d1d0:	f04f 30ff 	mov.w	r0, #4294967295
+}
+ 800d1d4:	4770      	bx	lr
+        return LORAMAC_HANDLER_ERROR;
+ 800d1d6:	f04f 30ff 	mov.w	r0, #4294967295
+ 800d1da:	e7f7      	b.n	800d1cc <LmHandlerGetCurrentClass+0x1c>
+
+0800d1dc <McpsIndication>:
+{
+ 800d1dc:	b510      	push	{r4, lr}
+ 800d1de:	b086      	sub	sp, #24
+    DeviceClass_t deviceClass = CLASS_A;
+ 800d1e0:	2300      	movs	r3, #0
+ 800d1e2:	f88d 300f 	strb.w	r3, [sp, #15]
+    RxParams.IsMcpsIndication = 1;
+ 800d1e6:	4a21      	ldr	r2, [pc, #132]	; (800d26c <McpsIndication+0x90>)
+ 800d1e8:	2301      	movs	r3, #1
+ 800d1ea:	7013      	strb	r3, [r2, #0]
+    RxParams.Status = mcpsIndication->Status;
+ 800d1ec:	7843      	ldrb	r3, [r0, #1]
+ 800d1ee:	7053      	strb	r3, [r2, #1]
+    if( RxParams.Status != LORAMAC_EVENT_INFO_STATUS_OK )
+ 800d1f0:	2b00      	cmp	r3, #0
+ 800d1f2:	d12e      	bne.n	800d252 <McpsIndication+0x76>
+ 800d1f4:	4604      	mov	r4, r0
+    RxParams.Datarate = mcpsIndication->RxDatarate;
+ 800d1f6:	f990 2004 	ldrsb.w	r2, [r0, #4]
+ 800d1fa:	4b1c      	ldr	r3, [pc, #112]	; (800d26c <McpsIndication+0x90>)
+ 800d1fc:	721a      	strb	r2, [r3, #8]
+    RxParams.Rssi = rxStatus->Rssi;
+ 800d1fe:	f9b1 2000 	ldrsh.w	r2, [r1]
+ 800d202:	725a      	strb	r2, [r3, #9]
+    RxParams.Snr = rxStatus->Snr;
+ 800d204:	f991 2002 	ldrsb.w	r2, [r1, #2]
+ 800d208:	729a      	strb	r2, [r3, #10]
+    RxParams.RxSlot = rxStatus->RxSlot;
+ 800d20a:	78ca      	ldrb	r2, [r1, #3]
+ 800d20c:	741a      	strb	r2, [r3, #16]
+    RxParams.DownlinkCounter = mcpsIndication->DownLinkCounter;
+ 800d20e:	6902      	ldr	r2, [r0, #16]
+ 800d210:	60da      	str	r2, [r3, #12]
+    appData.Port = mcpsIndication->Port;
+ 800d212:	78c3      	ldrb	r3, [r0, #3]
+ 800d214:	f88d 3010 	strb.w	r3, [sp, #16]
+    appData.BufferSize = mcpsIndication->BufferSize;
+ 800d218:	7b03      	ldrb	r3, [r0, #12]
+ 800d21a:	f88d 3011 	strb.w	r3, [sp, #17]
+    appData.Buffer = mcpsIndication->Buffer;
+ 800d21e:	6883      	ldr	r3, [r0, #8]
+ 800d220:	9305      	str	r3, [sp, #20]
+    if( LmHandlerCallbacks->OnRxData != NULL )
+ 800d222:	4b13      	ldr	r3, [pc, #76]	; (800d270 <McpsIndication+0x94>)
+ 800d224:	681b      	ldr	r3, [r3, #0]
+ 800d226:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800d228:	b113      	cbz	r3, 800d230 <McpsIndication+0x54>
+        LmHandlerCallbacks->OnRxData( &appData, &RxParams );
+ 800d22a:	4910      	ldr	r1, [pc, #64]	; (800d26c <McpsIndication+0x90>)
+ 800d22c:	a804      	add	r0, sp, #16
+ 800d22e:	4798      	blx	r3
+    if( ( LmHandlerCallbacks->OnSysTimeUpdate != NULL ) && ( mcpsIndication->DeviceTimeAnsReceived == true ) )
+ 800d230:	4b0f      	ldr	r3, [pc, #60]	; (800d270 <McpsIndication+0x94>)
+ 800d232:	681b      	ldr	r3, [r3, #0]
+ 800d234:	6b9b      	ldr	r3, [r3, #56]	; 0x38
+ 800d236:	b113      	cbz	r3, 800d23e <McpsIndication+0x62>
+ 800d238:	7e22      	ldrb	r2, [r4, #24]
+ 800d23a:	b102      	cbz	r2, 800d23e <McpsIndication+0x62>
+        LmHandlerCallbacks->OnSysTimeUpdate( );
+ 800d23c:	4798      	blx	r3
+    LmHandlerPackagesNotify( PACKAGE_MCPS_INDICATION, mcpsIndication );
+ 800d23e:	4621      	mov	r1, r4
+ 800d240:	2001      	movs	r0, #1
+ 800d242:	f7ff fd33 	bl	800ccac <LmHandlerPackagesNotify>
+    LmHandlerGetCurrentClass( &deviceClass );
+ 800d246:	f10d 000f 	add.w	r0, sp, #15
+ 800d24a:	f7ff ffb1 	bl	800d1b0 <LmHandlerGetCurrentClass>
+    if( mcpsIndication->IsUplinkTxPending != 0 )
+ 800d24e:	7963      	ldrb	r3, [r4, #5]
+ 800d250:	b90b      	cbnz	r3, 800d256 <McpsIndication+0x7a>
+}
+ 800d252:	b006      	add	sp, #24
+ 800d254:	bd10      	pop	{r4, pc}
+        LmHandlerAppData_t appData =
+ 800d256:	2100      	movs	r1, #0
+ 800d258:	f88d 1004 	strb.w	r1, [sp, #4]
+ 800d25c:	f88d 1005 	strb.w	r1, [sp, #5]
+ 800d260:	9102      	str	r1, [sp, #8]
+        LmHandlerSend( &appData, LORAMAC_HANDLER_UNCONFIRMED_MSG, true );
+ 800d262:	2201      	movs	r2, #1
+ 800d264:	a801      	add	r0, sp, #4
+ 800d266:	f7ff ff11 	bl	800d08c <LmHandlerSend>
+ 800d26a:	e7f2      	b.n	800d252 <McpsIndication+0x76>
+ 800d26c:	20000848 	.word	0x20000848
+ 800d270:	20001078 	.word	0x20001078
+
+0800d274 <LmHandlerGetTxDatarate>:
+    if( txDatarate == NULL )
+ 800d274:	b180      	cbz	r0, 800d298 <LmHandlerGetTxDatarate+0x24>
+{
+ 800d276:	b510      	push	{r4, lr}
+ 800d278:	b08a      	sub	sp, #40	; 0x28
+ 800d27a:	4604      	mov	r4, r0
+    mibGet.Type = MIB_CHANNELS_DATARATE;
+ 800d27c:	231f      	movs	r3, #31
+ 800d27e:	f88d 3000 	strb.w	r3, [sp]
+    if( LoRaMacMibGetRequestConfirm( &mibGet ) != LORAMAC_STATUS_OK )
+ 800d282:	4668      	mov	r0, sp
+ 800d284:	f003 f8be 	bl	8010404 <LoRaMacMibGetRequestConfirm>
+ 800d288:	b948      	cbnz	r0, 800d29e <LmHandlerGetTxDatarate+0x2a>
+    *txDatarate = mibGet.Param.ChannelsDatarate;
+ 800d28a:	f99d 3004 	ldrsb.w	r3, [sp, #4]
+ 800d28e:	7023      	strb	r3, [r4, #0]
+    LmHandlerParams.TxDatarate = *txDatarate;
+ 800d290:	4a04      	ldr	r2, [pc, #16]	; (800d2a4 <LmHandlerGetTxDatarate+0x30>)
+ 800d292:	7113      	strb	r3, [r2, #4]
+}
+ 800d294:	b00a      	add	sp, #40	; 0x28
+ 800d296:	bd10      	pop	{r4, pc}
+        return LORAMAC_HANDLER_ERROR;
+ 800d298:	f04f 30ff 	mov.w	r0, #4294967295
+}
+ 800d29c:	4770      	bx	lr
+        return LORAMAC_HANDLER_ERROR;
+ 800d29e:	f04f 30ff 	mov.w	r0, #4294967295
+ 800d2a2:	e7f7      	b.n	800d294 <LmHandlerGetTxDatarate+0x20>
+ 800d2a4:	20001090 	.word	0x20001090
+
+0800d2a8 <LmHandlerSetSystemMaxRxError>:
+{
+ 800d2a8:	b500      	push	{lr}
+ 800d2aa:	b08b      	sub	sp, #44	; 0x2c
+    mibReq.Type = MIB_SYSTEM_MAX_RX_ERROR;
+ 800d2ac:	2322      	movs	r3, #34	; 0x22
+ 800d2ae:	f88d 3000 	strb.w	r3, [sp]
+    mibReq.Param.SystemMaxRxError = maxErrorInMs;
+ 800d2b2:	9001      	str	r0, [sp, #4]
+    if( LoRaMacMibSetRequestConfirm( &mibReq ) != LORAMAC_STATUS_OK )
+ 800d2b4:	4668      	mov	r0, sp
+ 800d2b6:	f003 fa19 	bl	80106ec <LoRaMacMibSetRequestConfirm>
+ 800d2ba:	b910      	cbnz	r0, 800d2c2 <LmHandlerSetSystemMaxRxError+0x1a>
+}
+ 800d2bc:	b00b      	add	sp, #44	; 0x2c
+ 800d2be:	f85d fb04 	ldr.w	pc, [sp], #4
+        return LORAMAC_HANDLER_ERROR;
+ 800d2c2:	f04f 30ff 	mov.w	r0, #4294967295
+ 800d2c6:	e7f9      	b.n	800d2bc <LmHandlerSetSystemMaxRxError+0x14>
+
+0800d2c8 <LmHandlerConfigure>:
+{
+ 800d2c8:	b570      	push	{r4, r5, r6, lr}
+ 800d2ca:	b08e      	sub	sp, #56	; 0x38
+ 800d2cc:	4601      	mov	r1, r0
+    memcpy1( ( void * )&LmHandlerParams, ( const void * )handlerParams, sizeof( LmHandlerParams_t ) );
+ 800d2ce:	4c6c      	ldr	r4, [pc, #432]	; (800d480 <LmHandlerConfigure+0x1b8>)
+ 800d2d0:	2218      	movs	r2, #24
+ 800d2d2:	4620      	mov	r0, r4
+ 800d2d4:	f007 f961 	bl	801459a <memcpy1>
+    loraInfo = LoraInfo_GetPtr();
+ 800d2d8:	f7f7 fc68 	bl	8004bac <LoraInfo_GetPtr>
+    if( 0U == ( ( 1 << ( LmHandlerParams.ActiveRegion ) ) & ( loraInfo->Region ) ) )
+ 800d2dc:	7822      	ldrb	r2, [r4, #0]
+ 800d2de:	2301      	movs	r3, #1
+ 800d2e0:	4093      	lsls	r3, r2
+ 800d2e2:	6841      	ldr	r1, [r0, #4]
+ 800d2e4:	420b      	tst	r3, r1
+ 800d2e6:	d106      	bne.n	800d2f6 <LmHandlerConfigure+0x2e>
+        MW_LOG( TS_ON, VLEVEL_ALWAYS, "error: Region is not defined in the MW: set lorawan_conf.h accordingly\r\n" );
+ 800d2e8:	4b66      	ldr	r3, [pc, #408]	; (800d484 <LmHandlerConfigure+0x1bc>)
+ 800d2ea:	2201      	movs	r2, #1
+ 800d2ec:	2100      	movs	r1, #0
+ 800d2ee:	4608      	mov	r0, r1
+ 800d2f0:	f009 fc22 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+        while( 1 ) {} /* error: Region is not defined in the MW */
+ 800d2f4:	e7fe      	b.n	800d2f4 <LmHandlerConfigure+0x2c>
+    if( LoRaMacInitialization( &LoRaMacPrimitives, &LoRaMacCallbacks, LmHandlerParams.ActiveRegion ) != LORAMAC_STATUS_OK )
+ 800d2f6:	4964      	ldr	r1, [pc, #400]	; (800d488 <LmHandlerConfigure+0x1c0>)
+ 800d2f8:	4864      	ldr	r0, [pc, #400]	; (800d48c <LmHandlerConfigure+0x1c4>)
+ 800d2fa:	f002 fde7 	bl	800fecc <LoRaMacInitialization>
+ 800d2fe:	2800      	cmp	r0, #0
+ 800d300:	f040 80b7 	bne.w	800d472 <LmHandlerConfigure+0x1aa>
+    mibReq.Type = MIB_NVM_CTXS;
+ 800d304:	2326      	movs	r3, #38	; 0x26
+ 800d306:	f88d 3010 	strb.w	r3, [sp, #16]
+    if( LoRaMacMibSetRequestConfirm( &mibReq ) == LORAMAC_STATUS_OK )
+ 800d30a:	a804      	add	r0, sp, #16
+ 800d30c:	f003 f9ee 	bl	80106ec <LoRaMacMibSetRequestConfirm>
+ 800d310:	2800      	cmp	r0, #0
+ 800d312:	d17c      	bne.n	800d40e <LmHandlerConfigure+0x146>
+        CtxRestoreDone = true;
+ 800d314:	4b5e      	ldr	r3, [pc, #376]	; (800d490 <LmHandlerConfigure+0x1c8>)
+ 800d316:	2201      	movs	r2, #1
+ 800d318:	701a      	strb	r2, [r3, #0]
+    if( CtxRestoreDone == true )
+ 800d31a:	4b5d      	ldr	r3, [pc, #372]	; (800d490 <LmHandlerConfigure+0x1c8>)
+ 800d31c:	781b      	ldrb	r3, [r3, #0]
+ 800d31e:	2b00      	cmp	r3, #0
+ 800d320:	f000 809e 	beq.w	800d460 <LmHandlerConfigure+0x198>
+        if( LmHandlerCallbacks->OnNvmDataChange != NULL )
+ 800d324:	4b5b      	ldr	r3, [pc, #364]	; (800d494 <LmHandlerConfigure+0x1cc>)
+ 800d326:	681b      	ldr	r3, [r3, #0]
+ 800d328:	69db      	ldr	r3, [r3, #28]
+ 800d32a:	b10b      	cbz	r3, 800d330 <LmHandlerConfigure+0x68>
+            LmHandlerCallbacks->OnNvmDataChange( LORAMAC_HANDLER_NVM_RESTORE );
+ 800d32c:	2000      	movs	r0, #0
+ 800d32e:	4798      	blx	r3
+        mibReq.Type = MIB_NVM_CTXS;
+ 800d330:	2326      	movs	r3, #38	; 0x26
+ 800d332:	f88d 3010 	strb.w	r3, [sp, #16]
+        LoRaMacMibGetRequestConfirm( &mibReq );
+ 800d336:	a804      	add	r0, sp, #16
+ 800d338:	f003 f864 	bl	8010404 <LoRaMacMibGetRequestConfirm>
+        LoRaMacNvmData_t *current_nvm = mibReq.Param.Contexts;
+ 800d33c:	9a05      	ldr	r2, [sp, #20]
+        LmHandlerParams.ActiveRegion = current_nvm->MacGroup2.Region;
+ 800d33e:	f892 1048 	ldrb.w	r1, [r2, #72]	; 0x48
+ 800d342:	4b4f      	ldr	r3, [pc, #316]	; (800d480 <LmHandlerConfigure+0x1b8>)
+ 800d344:	7019      	strb	r1, [r3, #0]
+        LmHandlerParams.DefaultClass = current_nvm->MacGroup2.DeviceClass;
+ 800d346:	f892 1118 	ldrb.w	r1, [r2, #280]	; 0x118
+ 800d34a:	7059      	strb	r1, [r3, #1]
+        LmHandlerParams.AdrEnable = current_nvm->MacGroup2.AdrCtrlOn;
+ 800d34c:	f892 211a 	ldrb.w	r2, [r2, #282]	; 0x11a
+ 800d350:	709a      	strb	r2, [r3, #2]
+    if( SecureElementInitMcuID( LoRaMacCallbacks.GetUniqueId, LoRaMacCallbacks.GetDevAddress ) != SECURE_ELEMENT_SUCCESS )
+ 800d352:	4b4d      	ldr	r3, [pc, #308]	; (800d488 <LmHandlerConfigure+0x1c0>)
+ 800d354:	68d9      	ldr	r1, [r3, #12]
+ 800d356:	6898      	ldr	r0, [r3, #8]
+ 800d358:	f007 f832 	bl	80143c0 <SecureElementInitMcuID>
+ 800d35c:	2800      	cmp	r0, #0
+ 800d35e:	f040 808b 	bne.w	800d478 <LmHandlerConfigure+0x1b0>
+    mibReq.Type = MIB_DEV_ADDR;
+ 800d362:	2306      	movs	r3, #6
+ 800d364:	f88d 3010 	strb.w	r3, [sp, #16]
+    LoRaMacMibGetRequestConfirm( &mibReq );
+ 800d368:	a804      	add	r0, sp, #16
+ 800d36a:	f003 f84b 	bl	8010404 <LoRaMacMibGetRequestConfirm>
+    CommissioningParams.DevAddr = mibReq.Param.DevAddr;
+ 800d36e:	4c4a      	ldr	r4, [pc, #296]	; (800d498 <LmHandlerConfigure+0x1d0>)
+ 800d370:	9b05      	ldr	r3, [sp, #20]
+ 800d372:	6163      	str	r3, [r4, #20]
+    LoRaMacMibSetRequestConfirm( &mibReq );
+ 800d374:	a804      	add	r0, sp, #16
+ 800d376:	f003 f9b9 	bl	80106ec <LoRaMacMibSetRequestConfirm>
+    mibReq.Type = MIB_DEV_EUI;
+ 800d37a:	2302      	movs	r3, #2
+ 800d37c:	f88d 3010 	strb.w	r3, [sp, #16]
+    mibReq.Param.DevEui = CommissioningParams.DevEui;
+ 800d380:	9405      	str	r4, [sp, #20]
+    LoRaMacMibGetRequestConfirm( &mibReq );
+ 800d382:	a804      	add	r0, sp, #16
+ 800d384:	f003 f83e 	bl	8010404 <LoRaMacMibGetRequestConfirm>
+    mibReq.Type = MIB_JOIN_EUI;
+ 800d388:	2303      	movs	r3, #3
+ 800d38a:	f88d 3010 	strb.w	r3, [sp, #16]
+    mibReq.Param.JoinEui = CommissioningParams.JoinEui;
+ 800d38e:	3408      	adds	r4, #8
+ 800d390:	9405      	str	r4, [sp, #20]
+    LoRaMacMibGetRequestConfirm( &mibReq );
+ 800d392:	a804      	add	r0, sp, #16
+ 800d394:	f003 f836 	bl	8010404 <LoRaMacMibGetRequestConfirm>
+    SecureElementPrintKeys();
+ 800d398:	f007 f8ac 	bl	80144f4 <SecureElementPrintKeys>
+    mibReq.Type = MIB_PUBLIC_NETWORK;
+ 800d39c:	260f      	movs	r6, #15
+ 800d39e:	f88d 6010 	strb.w	r6, [sp, #16]
+    mibReq.Param.EnablePublicNetwork = LORAWAN_PUBLIC_NETWORK;
+ 800d3a2:	2301      	movs	r3, #1
+ 800d3a4:	f88d 3014 	strb.w	r3, [sp, #20]
+    LoRaMacMibSetRequestConfirm( &mibReq );
+ 800d3a8:	a804      	add	r0, sp, #16
+ 800d3aa:	f003 f99f 	bl	80106ec <LoRaMacMibSetRequestConfirm>
+    mibReq.Type = MIB_REPEATER_SUPPORT;
+ 800d3ae:	2310      	movs	r3, #16
+ 800d3b0:	f88d 3010 	strb.w	r3, [sp, #16]
+    mibReq.Param.EnableRepeaterSupport = LORAWAN_REPEATER_SUPPORT;
+ 800d3b4:	2500      	movs	r5, #0
+ 800d3b6:	f88d 5014 	strb.w	r5, [sp, #20]
+    LoRaMacMibSetRequestConfirm( &mibReq );
+ 800d3ba:	eb0d 0003 	add.w	r0, sp, r3
+ 800d3be:	f003 f995 	bl	80106ec <LoRaMacMibSetRequestConfirm>
+    mibReq.Type = MIB_ADR;
+ 800d3c2:	2304      	movs	r3, #4
+ 800d3c4:	f88d 3010 	strb.w	r3, [sp, #16]
+    mibReq.Param.AdrEnable = LmHandlerParams.AdrEnable;
+ 800d3c8:	4c2d      	ldr	r4, [pc, #180]	; (800d480 <LmHandlerConfigure+0x1b8>)
+ 800d3ca:	78a3      	ldrb	r3, [r4, #2]
+ 800d3cc:	f88d 3014 	strb.w	r3, [sp, #20]
+    LoRaMacMibSetRequestConfirm( &mibReq );
+ 800d3d0:	a804      	add	r0, sp, #16
+ 800d3d2:	f003 f98b 	bl	80106ec <LoRaMacMibSetRequestConfirm>
+    mibReq.Type = MIB_RXB_C_TIMEOUT;
+ 800d3d6:	2339      	movs	r3, #57	; 0x39
+ 800d3d8:	f88d 3010 	strb.w	r3, [sp, #16]
+    mibReq.Param.RxBCTimeout = LmHandlerParams.RxBCTimeout;
+ 800d3dc:	6963      	ldr	r3, [r4, #20]
+ 800d3de:	9305      	str	r3, [sp, #20]
+    LoRaMacMibSetRequestConfirm( &mibReq );
+ 800d3e0:	a804      	add	r0, sp, #16
+ 800d3e2:	f003 f983 	bl	80106ec <LoRaMacMibSetRequestConfirm>
+    getPhy.Attribute = PHY_DUTY_CYCLE;
+ 800d3e6:	f88d 6008 	strb.w	r6, [sp, #8]
+    phyParam = RegionGetPhyParam( LmHandlerParams.ActiveRegion, &getPhy );
+ 800d3ea:	a902      	add	r1, sp, #8
+ 800d3ec:	7820      	ldrb	r0, [r4, #0]
+ 800d3ee:	f004 fec6 	bl	801217e <RegionGetPhyParam>
+ 800d3f2:	9001      	str	r0, [sp, #4]
+    LmHandlerParams.DutyCycleEnabled = ( bool ) phyParam.Value;
+ 800d3f4:	1b43      	subs	r3, r0, r5
+ 800d3f6:	bf18      	it	ne
+ 800d3f8:	2301      	movne	r3, #1
+ 800d3fa:	71e3      	strb	r3, [r4, #7]
+    LmHandlerSetSystemMaxRxError( 20 );
+ 800d3fc:	2014      	movs	r0, #20
+ 800d3fe:	f7ff ff53 	bl	800d2a8 <LmHandlerSetSystemMaxRxError>
+    LoRaMacTestSetDutyCycleOn( LmHandlerParams.DutyCycleEnabled );
+ 800d402:	79e0      	ldrb	r0, [r4, #7]
+ 800d404:	f003 fde8 	bl	8010fd8 <LoRaMacTestSetDutyCycleOn>
+    return LORAMAC_HANDLER_SUCCESS;
+ 800d408:	4628      	mov	r0, r5
+}
+ 800d40a:	b00e      	add	sp, #56	; 0x38
+ 800d40c:	bd70      	pop	{r4, r5, r6, pc}
+        mibReq.Type = MIB_NVM_BKP_CTXS;
+ 800d40e:	2327      	movs	r3, #39	; 0x27
+ 800d410:	f88d 3010 	strb.w	r3, [sp, #16]
+        if( LmHandlerCallbacks->OnRestoreContextRequest != NULL )
+ 800d414:	4b1f      	ldr	r3, [pc, #124]	; (800d494 <LmHandlerConfigure+0x1cc>)
+ 800d416:	681b      	ldr	r3, [r3, #0]
+ 800d418:	691b      	ldr	r3, [r3, #16]
+ 800d41a:	b14b      	cbz	r3, 800d430 <LmHandlerConfigure+0x168>
+            LoRaMacMibGetRequestConfirm( &mibReq );
+ 800d41c:	a804      	add	r0, sp, #16
+ 800d41e:	f002 fff1 	bl	8010404 <LoRaMacMibGetRequestConfirm>
+            LmHandlerCallbacks->OnRestoreContextRequest( mibReq.Param.BackupContexts, sizeof( LoRaMacNvmData_t ) );
+ 800d422:	4b1c      	ldr	r3, [pc, #112]	; (800d494 <LmHandlerConfigure+0x1cc>)
+ 800d424:	681b      	ldr	r3, [r3, #0]
+ 800d426:	691b      	ldr	r3, [r3, #16]
+ 800d428:	f44f 61ee 	mov.w	r1, #1904	; 0x770
+ 800d42c:	9805      	ldr	r0, [sp, #20]
+ 800d42e:	4798      	blx	r3
+        mibReq.Type = MIB_NVM_CTXS;
+ 800d430:	2326      	movs	r3, #38	; 0x26
+ 800d432:	f88d 3010 	strb.w	r3, [sp, #16]
+        if( LoRaMacMibSetRequestConfirm( &mibReq ) == LORAMAC_STATUS_OK )
+ 800d436:	a804      	add	r0, sp, #16
+ 800d438:	f003 f958 	bl	80106ec <LoRaMacMibSetRequestConfirm>
+ 800d43c:	2800      	cmp	r0, #0
+ 800d43e:	f47f af6c 	bne.w	800d31a <LmHandlerConfigure+0x52>
+            mibReq.Type = MIB_NETWORK_ACTIVATION;
+ 800d442:	2301      	movs	r3, #1
+ 800d444:	f88d 3010 	strb.w	r3, [sp, #16]
+            LoRaMacMibGetRequestConfirm( &mibReq );
+ 800d448:	a804      	add	r0, sp, #16
+ 800d44a:	f002 ffdb 	bl	8010404 <LoRaMacMibGetRequestConfirm>
+            if( mibReq.Param.NetworkActivation != ACTIVATION_TYPE_NONE )
+ 800d44e:	f89d 3014 	ldrb.w	r3, [sp, #20]
+ 800d452:	2b00      	cmp	r3, #0
+ 800d454:	f43f af61 	beq.w	800d31a <LmHandlerConfigure+0x52>
+                CtxRestoreDone = true;
+ 800d458:	4b0d      	ldr	r3, [pc, #52]	; (800d490 <LmHandlerConfigure+0x1c8>)
+ 800d45a:	2201      	movs	r2, #1
+ 800d45c:	701a      	strb	r2, [r3, #0]
+ 800d45e:	e75c      	b.n	800d31a <LmHandlerConfigure+0x52>
+        mibReq.Type = MIB_NET_ID;
+ 800d460:	2305      	movs	r3, #5
+ 800d462:	f88d 3010 	strb.w	r3, [sp, #16]
+        mibReq.Param.NetID = LORAWAN_NETWORK_ID;
+ 800d466:	2300      	movs	r3, #0
+ 800d468:	9305      	str	r3, [sp, #20]
+        LoRaMacMibSetRequestConfirm( &mibReq );
+ 800d46a:	a804      	add	r0, sp, #16
+ 800d46c:	f003 f93e 	bl	80106ec <LoRaMacMibSetRequestConfirm>
+ 800d470:	e76f      	b.n	800d352 <LmHandlerConfigure+0x8a>
+        return LORAMAC_HANDLER_ERROR;
+ 800d472:	f04f 30ff 	mov.w	r0, #4294967295
+ 800d476:	e7c8      	b.n	800d40a <LmHandlerConfigure+0x142>
+        return LORAMAC_HANDLER_ERROR;
+ 800d478:	f04f 30ff 	mov.w	r0, #4294967295
+ 800d47c:	e7c5      	b.n	800d40a <LmHandlerConfigure+0x142>
+ 800d47e:	bf00      	nop
+ 800d480:	20001090 	.word	0x20001090
+ 800d484:	080185c4 	.word	0x080185c4
+ 800d488:	200010a8 	.word	0x200010a8
+ 800d48c:	200010c0 	.word	0x200010c0
+ 800d490:	20001070 	.word	0x20001070
+ 800d494:	20001078 	.word	0x20001078
+ 800d498:	20001058 	.word	0x20001058
+
+0800d49c <LmHandlerPackageRegister>:
+{
+ 800d49c:	b530      	push	{r4, r5, lr}
+ 800d49e:	b083      	sub	sp, #12
+ 800d4a0:	460d      	mov	r5, r1
+    LmhPackage_t *package = NULL;
+ 800d4a2:	2300      	movs	r3, #0
+ 800d4a4:	9301      	str	r3, [sp, #4]
+    switch( id )
+ 800d4a6:	4604      	mov	r4, r0
+ 800d4a8:	b9c8      	cbnz	r0, 800d4de <LmHandlerPackageRegister+0x42>
+                package = LmhpCompliancePackageFactory( );
+ 800d4aa:	f000 fb21 	bl	800daf0 <LmhpCompliancePackageFactory>
+ 800d4ae:	9001      	str	r0, [sp, #4]
+    if( package != NULL )
+ 800d4b0:	9b01      	ldr	r3, [sp, #4]
+ 800d4b2:	b1e3      	cbz	r3, 800d4ee <LmHandlerPackageRegister+0x52>
+        LmHandlerPackages[id] = package;
+ 800d4b4:	4a0f      	ldr	r2, [pc, #60]	; (800d4f4 <LmHandlerPackageRegister+0x58>)
+ 800d4b6:	f842 3024 	str.w	r3, [r2, r4, lsl #2]
+        LmHandlerPackages[id]->OnJoinRequest = LmHandlerJoin;
+ 800d4ba:	4a0f      	ldr	r2, [pc, #60]	; (800d4f8 <LmHandlerPackageRegister+0x5c>)
+ 800d4bc:	62da      	str	r2, [r3, #44]	; 0x2c
+        LmHandlerPackages[id]->OnSendRequest = LmHandlerSend;
+ 800d4be:	4a0f      	ldr	r2, [pc, #60]	; (800d4fc <LmHandlerPackageRegister+0x60>)
+ 800d4c0:	631a      	str	r2, [r3, #48]	; 0x30
+        LmHandlerPackages[id]->OnDeviceTimeRequest = LmHandlerDeviceTimeReq;
+ 800d4c2:	4a0f      	ldr	r2, [pc, #60]	; (800d500 <LmHandlerPackageRegister+0x64>)
+ 800d4c4:	635a      	str	r2, [r3, #52]	; 0x34
+        LmHandlerPackages[id]->OnPackageProcessEvent = LmHandlerCallbacks->OnMacProcess;
+ 800d4c6:	4a0f      	ldr	r2, [pc, #60]	; (800d504 <LmHandlerPackageRegister+0x68>)
+ 800d4c8:	6812      	ldr	r2, [r2, #0]
+ 800d4ca:	6992      	ldr	r2, [r2, #24]
+ 800d4cc:	619a      	str	r2, [r3, #24]
+        LmHandlerPackages[id]->Init( params, AppData.Buffer, AppData.BufferSize );
+ 800d4ce:	685b      	ldr	r3, [r3, #4]
+ 800d4d0:	22f2      	movs	r2, #242	; 0xf2
+ 800d4d2:	490d      	ldr	r1, [pc, #52]	; (800d508 <LmHandlerPackageRegister+0x6c>)
+ 800d4d4:	4628      	mov	r0, r5
+ 800d4d6:	4798      	blx	r3
+        return LORAMAC_HANDLER_SUCCESS;
+ 800d4d8:	2000      	movs	r0, #0
+}
+ 800d4da:	b003      	add	sp, #12
+ 800d4dc:	bd30      	pop	{r4, r5, pc}
+                if( LORAMAC_HANDLER_SUCCESS != LmhpPackagesRegister( id, &package ) )
+ 800d4de:	a901      	add	r1, sp, #4
+ 800d4e0:	f000 fb0c 	bl	800dafc <LmhpPackagesRegister>
+ 800d4e4:	2800      	cmp	r0, #0
+ 800d4e6:	d0e3      	beq.n	800d4b0 <LmHandlerPackageRegister+0x14>
+                    return LORAMAC_HANDLER_ERROR;
+ 800d4e8:	f04f 30ff 	mov.w	r0, #4294967295
+ 800d4ec:	e7f5      	b.n	800d4da <LmHandlerPackageRegister+0x3e>
+        return LORAMAC_HANDLER_ERROR;
+ 800d4ee:	f04f 30ff 	mov.w	r0, #4294967295
+ 800d4f2:	e7f2      	b.n	800d4da <LmHandlerPackageRegister+0x3e>
+ 800d4f4:	2000107c 	.word	0x2000107c
+ 800d4f8:	0800cf5d 	.word	0x0800cf5d
+ 800d4fc:	0800d08d 	.word	0x0800d08d
+ 800d500:	0800ce41 	.word	0x0800ce41
+ 800d504:	20001078 	.word	0x20001078
+ 800d508:	20000f64 	.word	0x20000f64
+
+0800d50c <LmHandlerInit>:
+{
+ 800d50c:	b500      	push	{lr}
+ 800d50e:	b083      	sub	sp, #12
+ 800d510:	9101      	str	r1, [sp, #4]
+    LmHandlerCallbacks = handlerCallbacks;
+ 800d512:	4b15      	ldr	r3, [pc, #84]	; (800d568 <LmHandlerInit+0x5c>)
+ 800d514:	6018      	str	r0, [r3, #0]
+    LoRaMacPrimitives.MacMcpsConfirm = McpsConfirm;
+ 800d516:	4b15      	ldr	r3, [pc, #84]	; (800d56c <LmHandlerInit+0x60>)
+ 800d518:	4a15      	ldr	r2, [pc, #84]	; (800d570 <LmHandlerInit+0x64>)
+ 800d51a:	601a      	str	r2, [r3, #0]
+    LoRaMacPrimitives.MacMcpsIndication = McpsIndication;
+ 800d51c:	4a15      	ldr	r2, [pc, #84]	; (800d574 <LmHandlerInit+0x68>)
+ 800d51e:	605a      	str	r2, [r3, #4]
+    LoRaMacPrimitives.MacMlmeConfirm = MlmeConfirm;
+ 800d520:	4a15      	ldr	r2, [pc, #84]	; (800d578 <LmHandlerInit+0x6c>)
+ 800d522:	609a      	str	r2, [r3, #8]
+    LoRaMacPrimitives.MacMlmeIndication = MlmeIndication;
+ 800d524:	4a15      	ldr	r2, [pc, #84]	; (800d57c <LmHandlerInit+0x70>)
+ 800d526:	60da      	str	r2, [r3, #12]
+    LoRaMacCallbacks.GetBatteryLevel = LmHandlerCallbacks->GetBatteryLevel;
+ 800d528:	6802      	ldr	r2, [r0, #0]
+ 800d52a:	4b15      	ldr	r3, [pc, #84]	; (800d580 <LmHandlerInit+0x74>)
+ 800d52c:	601a      	str	r2, [r3, #0]
+    LoRaMacCallbacks.GetTemperatureLevel = LmHandlerCallbacks->GetTemperature;
+ 800d52e:	6842      	ldr	r2, [r0, #4]
+ 800d530:	605a      	str	r2, [r3, #4]
+    LoRaMacCallbacks.GetUniqueId = LmHandlerCallbacks->GetUniqueId;
+ 800d532:	6882      	ldr	r2, [r0, #8]
+ 800d534:	609a      	str	r2, [r3, #8]
+    LoRaMacCallbacks.GetDevAddress = LmHandlerCallbacks->GetDevAddr;
+ 800d536:	68c2      	ldr	r2, [r0, #12]
+ 800d538:	60da      	str	r2, [r3, #12]
+    LoRaMacCallbacks.NvmDataChange  = NvmDataMgmtEvent;
+ 800d53a:	4a12      	ldr	r2, [pc, #72]	; (800d584 <LmHandlerInit+0x78>)
+ 800d53c:	611a      	str	r2, [r3, #16]
+    LoRaMacCallbacks.MacProcessNotify = LmHandlerCallbacks->OnMacProcess;
+ 800d53e:	6982      	ldr	r2, [r0, #24]
+ 800d540:	615a      	str	r2, [r3, #20]
+    if( LmHandlerPackageRegister( PACKAGE_ID_COMPLIANCE, &LmhpComplianceParams ) != LORAMAC_HANDLER_SUCCESS )
+ 800d542:	4911      	ldr	r1, [pc, #68]	; (800d588 <LmHandlerInit+0x7c>)
+ 800d544:	2000      	movs	r0, #0
+ 800d546:	f7ff ffa9 	bl	800d49c <LmHandlerPackageRegister>
+ 800d54a:	b930      	cbnz	r0, 800d55a <LmHandlerInit+0x4e>
+    if( LmhpPackagesRegistrationInit( ( Version_t * )&fwVersion ) != LORAMAC_HANDLER_SUCCESS )
+ 800d54c:	a801      	add	r0, sp, #4
+ 800d54e:	f000 fad3 	bl	800daf8 <LmhpPackagesRegistrationInit>
+ 800d552:	b928      	cbnz	r0, 800d560 <LmHandlerInit+0x54>
+}
+ 800d554:	b003      	add	sp, #12
+ 800d556:	f85d fb04 	ldr.w	pc, [sp], #4
+        return LORAMAC_HANDLER_ERROR;
+ 800d55a:	f04f 30ff 	mov.w	r0, #4294967295
+ 800d55e:	e7f9      	b.n	800d554 <LmHandlerInit+0x48>
+        return LORAMAC_HANDLER_ERROR;
+ 800d560:	f04f 30ff 	mov.w	r0, #4294967295
+ 800d564:	e7f6      	b.n	800d554 <LmHandlerInit+0x48>
+ 800d566:	bf00      	nop
+ 800d568:	20001078 	.word	0x20001078
+ 800d56c:	200010c0 	.word	0x200010c0
+ 800d570:	0800cd8d 	.word	0x0800cd8d
+ 800d574:	0800d1dd 	.word	0x0800d1dd
+ 800d578:	0800d60d 	.word	0x0800d60d
+ 800d57c:	0800cd39 	.word	0x0800cd39
+ 800d580:	200010a8 	.word	0x200010a8
+ 800d584:	08012131 	.word	0x08012131
+ 800d588:	2000083c 	.word	0x2000083c
+
+0800d58c <LmHandlerGetVersion>:
+ *=============================================================================
+ */
+
+LmHandlerErrorStatus_t LmHandlerGetVersion( LmHandlerVersionType_t lmhType, uint32_t *featureVersion )
+{
+    if( featureVersion == NULL )
+ 800d58c:	b161      	cbz	r1, 800d5a8 <LmHandlerGetVersion+0x1c>
+    {
+        return LORAMAC_HANDLER_ERROR;
+    }
+
+    switch( lmhType )
+ 800d58e:	b118      	cbz	r0, 800d598 <LmHandlerGetVersion+0xc>
+ 800d590:	2801      	cmp	r0, #1
+ 800d592:	d005      	beq.n	800d5a0 <LmHandlerGetVersion+0x14>
+ 800d594:	2000      	movs	r0, #0
+ 800d596:	4770      	bx	lr
+    {
+        case LORAMAC_HANDLER_L2_VERSION:
+            *featureVersion = LORAMAC_VERSION;
+ 800d598:	4a05      	ldr	r2, [pc, #20]	; (800d5b0 <LmHandlerGetVersion+0x24>)
+ 800d59a:	600a      	str	r2, [r1, #0]
+            break;
+        default:
+            break;
+    }
+
+    return LORAMAC_HANDLER_SUCCESS;
+ 800d59c:	2000      	movs	r0, #0
+            break;
+ 800d59e:	4770      	bx	lr
+            *featureVersion = REGION_VERSION;
+ 800d5a0:	4a04      	ldr	r2, [pc, #16]	; (800d5b4 <LmHandlerGetVersion+0x28>)
+ 800d5a2:	600a      	str	r2, [r1, #0]
+    return LORAMAC_HANDLER_SUCCESS;
+ 800d5a4:	2000      	movs	r0, #0
+            break;
+ 800d5a6:	4770      	bx	lr
+        return LORAMAC_HANDLER_ERROR;
+ 800d5a8:	f04f 30ff 	mov.w	r0, #4294967295
+}
+ 800d5ac:	4770      	bx	lr
+ 800d5ae:	bf00      	nop
+ 800d5b0:	01000300 	.word	0x01000300
+ 800d5b4:	01010003 	.word	0x01010003
+
+0800d5b8 <LmHandlerStop>:
+
+LmHandlerErrorStatus_t LmHandlerStop( void )
+{
+ 800d5b8:	b508      	push	{r3, lr}
+    if( LoRaMacDeInitialization() == LORAMAC_STATUS_OK )
+ 800d5ba:	f003 fd2b 	bl	8011014 <LoRaMacDeInitialization>
+ 800d5be:	b900      	cbnz	r0, 800d5c2 <LmHandlerStop+0xa>
+    }
+    else
+    {
+        return LORAMAC_HANDLER_BUSY_ERROR;
+    }
+}
+ 800d5c0:	bd08      	pop	{r3, pc}
+        return LORAMAC_HANDLER_BUSY_ERROR;
+ 800d5c2:	f06f 0001 	mvn.w	r0, #1
+ 800d5c6:	e7fb      	b.n	800d5c0 <LmHandlerStop+0x8>
+
+0800d5c8 <LmHandlerHalt>:
+
+LmHandlerErrorStatus_t LmHandlerHalt( void )
+{
+ 800d5c8:	b508      	push	{r3, lr}
+    if( LoRaMacHalt() == LORAMAC_STATUS_OK )
+ 800d5ca:	f002 fe87 	bl	80102dc <LoRaMacHalt>
+ 800d5ce:	b900      	cbnz	r0, 800d5d2 <LmHandlerHalt+0xa>
+    }
+    else
+    {
+        return LORAMAC_HANDLER_BUSY_ERROR;
+    }
+}
+ 800d5d0:	bd08      	pop	{r3, pc}
+        return LORAMAC_HANDLER_BUSY_ERROR;
+ 800d5d2:	f06f 0001 	mvn.w	r0, #1
+ 800d5d6:	e7fb      	b.n	800d5d0 <LmHandlerHalt+0x8>
+
+0800d5d8 <LmHandlerGetTxPower>:
+}
+
+LmHandlerErrorStatus_t LmHandlerGetTxPower( int8_t *txPower )
+{
+    MibRequestConfirm_t mibReq;
+    if( txPower == NULL )
+ 800d5d8:	b180      	cbz	r0, 800d5fc <LmHandlerGetTxPower+0x24>
+{
+ 800d5da:	b510      	push	{r4, lr}
+ 800d5dc:	b08a      	sub	sp, #40	; 0x28
+ 800d5de:	4604      	mov	r4, r0
+    {
+        return LORAMAC_HANDLER_ERROR;
+    }
+
+    mibReq.Type = MIB_CHANNELS_TX_POWER;
+ 800d5e0:	2320      	movs	r3, #32
+ 800d5e2:	f88d 3000 	strb.w	r3, [sp]
+    if( LoRaMacMibGetRequestConfirm( &mibReq ) != LORAMAC_STATUS_OK )
+ 800d5e6:	4668      	mov	r0, sp
+ 800d5e8:	f002 ff0c 	bl	8010404 <LoRaMacMibGetRequestConfirm>
+ 800d5ec:	b948      	cbnz	r0, 800d602 <LmHandlerGetTxPower+0x2a>
+    {
+        return LORAMAC_HANDLER_ERROR;
+    }
+
+    *txPower = mibReq.Param.ChannelsTxPower;
+ 800d5ee:	f99d 3004 	ldrsb.w	r3, [sp, #4]
+ 800d5f2:	7023      	strb	r3, [r4, #0]
+    LmHandlerParams.TxPower = *txPower;
+ 800d5f4:	4a04      	ldr	r2, [pc, #16]	; (800d608 <LmHandlerGetTxPower+0x30>)
+ 800d5f6:	7153      	strb	r3, [r2, #5]
+    return LORAMAC_HANDLER_SUCCESS;
+}
+ 800d5f8:	b00a      	add	sp, #40	; 0x28
+ 800d5fa:	bd10      	pop	{r4, pc}
+        return LORAMAC_HANDLER_ERROR;
+ 800d5fc:	f04f 30ff 	mov.w	r0, #4294967295
+}
+ 800d600:	4770      	bx	lr
+        return LORAMAC_HANDLER_ERROR;
+ 800d602:	f04f 30ff 	mov.w	r0, #4294967295
+ 800d606:	e7f7      	b.n	800d5f8 <LmHandlerGetTxPower+0x20>
+ 800d608:	20001090 	.word	0x20001090
+
+0800d60c <MlmeConfirm>:
+{
+ 800d60c:	b510      	push	{r4, lr}
+ 800d60e:	b08a      	sub	sp, #40	; 0x28
+ 800d610:	4604      	mov	r4, r0
+    TxParams.IsMcpsConfirm = 0;
+ 800d612:	4b2c      	ldr	r3, [pc, #176]	; (800d6c4 <MlmeConfirm+0xb8>)
+ 800d614:	2200      	movs	r2, #0
+ 800d616:	701a      	strb	r2, [r3, #0]
+    TxParams.Status = mlmeConfirm->Status;
+ 800d618:	7842      	ldrb	r2, [r0, #1]
+ 800d61a:	705a      	strb	r2, [r3, #1]
+    if( LmHandlerCallbacks->OnTxData != NULL )
+ 800d61c:	4b2a      	ldr	r3, [pc, #168]	; (800d6c8 <MlmeConfirm+0xbc>)
+ 800d61e:	681b      	ldr	r3, [r3, #0]
+ 800d620:	6a9b      	ldr	r3, [r3, #40]	; 0x28
+ 800d622:	b10b      	cbz	r3, 800d628 <MlmeConfirm+0x1c>
+        LmHandlerCallbacks->OnTxData( &TxParams );
+ 800d624:	4827      	ldr	r0, [pc, #156]	; (800d6c4 <MlmeConfirm+0xb8>)
+ 800d626:	4798      	blx	r3
+    LmHandlerPackagesNotify( PACKAGE_MLME_CONFIRM, mlmeConfirm );
+ 800d628:	4621      	mov	r1, r4
+ 800d62a:	2002      	movs	r0, #2
+ 800d62c:	f7ff fb3e 	bl	800ccac <LmHandlerPackagesNotify>
+    switch( mlmeConfirm->MlmeRequest )
+ 800d630:	7823      	ldrb	r3, [r4, #0]
+ 800d632:	2b05      	cmp	r3, #5
+ 800d634:	d037      	beq.n	800d6a6 <MlmeConfirm+0x9a>
+ 800d636:	2b0c      	cmp	r3, #12
+ 800d638:	d03d      	beq.n	800d6b6 <MlmeConfirm+0xaa>
+ 800d63a:	2b01      	cmp	r3, #1
+ 800d63c:	d001      	beq.n	800d642 <MlmeConfirm+0x36>
+}
+ 800d63e:	b00a      	add	sp, #40	; 0x28
+ 800d640:	bd10      	pop	{r4, pc}
+                mibReq.Type = MIB_DEV_ADDR;
+ 800d642:	2306      	movs	r3, #6
+ 800d644:	f88d 3000 	strb.w	r3, [sp]
+                LoRaMacMibGetRequestConfirm( &mibReq );
+ 800d648:	4668      	mov	r0, sp
+ 800d64a:	f002 fedb 	bl	8010404 <LoRaMacMibGetRequestConfirm>
+                if( SecureElementSetDevAddr( JoinParams.Mode, mibReq.Param.DevAddr ) == SECURE_ELEMENT_SUCCESS )
+ 800d64e:	9901      	ldr	r1, [sp, #4]
+ 800d650:	4b1e      	ldr	r3, [pc, #120]	; (800d6cc <MlmeConfirm+0xc0>)
+ 800d652:	79d8      	ldrb	r0, [r3, #7]
+ 800d654:	f006 fe92 	bl	801437c <SecureElementSetDevAddr>
+ 800d658:	b910      	cbnz	r0, 800d660 <MlmeConfirm+0x54>
+                    CommissioningParams.DevAddr = mibReq.Param.DevAddr;
+ 800d65a:	9a01      	ldr	r2, [sp, #4]
+ 800d65c:	4b1c      	ldr	r3, [pc, #112]	; (800d6d0 <MlmeConfirm+0xc4>)
+ 800d65e:	615a      	str	r2, [r3, #20]
+                LmHandlerGetTxDatarate( &JoinParams.Datarate );
+ 800d660:	4c1a      	ldr	r4, [pc, #104]	; (800d6cc <MlmeConfirm+0xc0>)
+ 800d662:	1d20      	adds	r0, r4, #4
+ 800d664:	f7ff fe06 	bl	800d274 <LmHandlerGetTxDatarate>
+                LmHandlerGetTxPower( &JoinParams.TxPower );
+ 800d668:	1d60      	adds	r0, r4, #5
+ 800d66a:	f7ff ffb5 	bl	800d5d8 <LmHandlerGetTxPower>
+                if( TxParams.Status == LORAMAC_EVENT_INFO_STATUS_OK )
+ 800d66e:	4b15      	ldr	r3, [pc, #84]	; (800d6c4 <MlmeConfirm+0xb8>)
+ 800d670:	785b      	ldrb	r3, [r3, #1]
+ 800d672:	b18b      	cbz	r3, 800d698 <MlmeConfirm+0x8c>
+                    JoinParams.Status = LORAMAC_HANDLER_ERROR;
+ 800d674:	4b15      	ldr	r3, [pc, #84]	; (800d6cc <MlmeConfirm+0xc0>)
+ 800d676:	22ff      	movs	r2, #255	; 0xff
+ 800d678:	719a      	strb	r2, [r3, #6]
+                if( LmHandlerCallbacks->OnJoinRequest != NULL )
+ 800d67a:	4b13      	ldr	r3, [pc, #76]	; (800d6c8 <MlmeConfirm+0xbc>)
+ 800d67c:	681b      	ldr	r3, [r3, #0]
+ 800d67e:	6a5b      	ldr	r3, [r3, #36]	; 0x24
+ 800d680:	b10b      	cbz	r3, 800d686 <MlmeConfirm+0x7a>
+                    LmHandlerCallbacks->OnJoinRequest( &JoinParams );
+ 800d682:	4812      	ldr	r0, [pc, #72]	; (800d6cc <MlmeConfirm+0xc0>)
+ 800d684:	4798      	blx	r3
+                if( TxParams.Status == LORAMAC_EVENT_INFO_STATUS_OK )
+ 800d686:	4b0f      	ldr	r3, [pc, #60]	; (800d6c4 <MlmeConfirm+0xb8>)
+ 800d688:	785b      	ldrb	r3, [r3, #1]
+ 800d68a:	2b00      	cmp	r3, #0
+ 800d68c:	d1d7      	bne.n	800d63e <MlmeConfirm+0x32>
+                    SecureElementPrintSessionKeys( JoinParams.Mode );
+ 800d68e:	4b0f      	ldr	r3, [pc, #60]	; (800d6cc <MlmeConfirm+0xc0>)
+ 800d690:	79d8      	ldrb	r0, [r3, #7]
+ 800d692:	f006 ff41 	bl	8014518 <SecureElementPrintSessionKeys>
+            break;
+ 800d696:	e7d2      	b.n	800d63e <MlmeConfirm+0x32>
+                    JoinParams.Status = LORAMAC_HANDLER_SUCCESS;
+ 800d698:	2200      	movs	r2, #0
+ 800d69a:	71a2      	strb	r2, [r4, #6]
+                    LmHandlerRequestClass( LmHandlerParams.DefaultClass );
+ 800d69c:	4b0d      	ldr	r3, [pc, #52]	; (800d6d4 <MlmeConfirm+0xc8>)
+ 800d69e:	7858      	ldrb	r0, [r3, #1]
+ 800d6a0:	f7ff fc02 	bl	800cea8 <LmHandlerRequestClass>
+ 800d6a4:	e7e9      	b.n	800d67a <MlmeConfirm+0x6e>
+                RxParams.LinkCheck = true;
+ 800d6a6:	4b0c      	ldr	r3, [pc, #48]	; (800d6d8 <MlmeConfirm+0xcc>)
+ 800d6a8:	2201      	movs	r2, #1
+ 800d6aa:	745a      	strb	r2, [r3, #17]
+                RxParams.DemodMargin = mlmeConfirm->DemodMargin;
+ 800d6ac:	7a22      	ldrb	r2, [r4, #8]
+ 800d6ae:	749a      	strb	r2, [r3, #18]
+                RxParams.NbGateways = mlmeConfirm->NbGateways;
+ 800d6b0:	7a62      	ldrb	r2, [r4, #9]
+ 800d6b2:	74da      	strb	r2, [r3, #19]
+            break;
+ 800d6b4:	e7c3      	b.n	800d63e <MlmeConfirm+0x32>
+                if( mlmeConfirm->Status == LORAMAC_EVENT_INFO_STATUS_OK )
+ 800d6b6:	7863      	ldrb	r3, [r4, #1]
+ 800d6b8:	2b00      	cmp	r3, #0
+ 800d6ba:	d0c0      	beq.n	800d63e <MlmeConfirm+0x32>
+                    LmHandlerDeviceTimeReq( );
+ 800d6bc:	f7ff fbc0 	bl	800ce40 <LmHandlerDeviceTimeReq>
+}
+ 800d6c0:	e7bd      	b.n	800d63e <MlmeConfirm+0x32>
+ 800d6c2:	bf00      	nop
+ 800d6c4:	2000085c 	.word	0x2000085c
+ 800d6c8:	20001078 	.word	0x20001078
+ 800d6cc:	20000830 	.word	0x20000830
+ 800d6d0:	20001058 	.word	0x20001058
+ 800d6d4:	20001090 	.word	0x20001090
+ 800d6d8:	20000848 	.word	0x20000848
+
+0800d6dc <LmHandlerNvmDataStore>:
+
+    return LORAMAC_HANDLER_SUCCESS;
+}
+
+LmHandlerErrorStatus_t LmHandlerNvmDataStore( void )
+{
+ 800d6dc:	b510      	push	{r4, lr}
+ 800d6de:	b08a      	sub	sp, #40	; 0x28
+    LoRaMacNvmData_t *nvm;
+    uint32_t nvm_size;
+    LmHandlerErrorStatus_t lmhStatus = LORAMAC_HANDLER_SUCCESS;
+    int32_t status = NVM_DATA_OK;
+
+    lmhStatus = LmHandlerHalt();
+ 800d6e0:	f7ff ff72 	bl	800d5c8 <LmHandlerHalt>
+
+    if( lmhStatus == LORAMAC_HANDLER_SUCCESS )
+ 800d6e4:	4604      	mov	r4, r0
+ 800d6e6:	b148      	cbz	r0, 800d6fc <LmHandlerNvmDataStore+0x20>
+        {
+            lmhStatus = LORAMAC_HANDLER_ERROR;
+        }
+    }
+
+    if( ( lmhStatus == LORAMAC_HANDLER_SUCCESS ) && ( LmHandlerCallbacks->OnNvmDataChange != NULL ) )
+ 800d6e8:	b92c      	cbnz	r4, 800d6f6 <LmHandlerNvmDataStore+0x1a>
+ 800d6ea:	4b18      	ldr	r3, [pc, #96]	; (800d74c <LmHandlerNvmDataStore+0x70>)
+ 800d6ec:	681b      	ldr	r3, [r3, #0]
+ 800d6ee:	69db      	ldr	r3, [r3, #28]
+ 800d6f0:	b10b      	cbz	r3, 800d6f6 <LmHandlerNvmDataStore+0x1a>
+    {
+        LmHandlerCallbacks->OnNvmDataChange( LORAMAC_HANDLER_NVM_STORE );
+ 800d6f2:	2001      	movs	r0, #1
+ 800d6f4:	4798      	blx	r3
+
+    return lmhStatus;
+#else
+    return LORAMAC_HANDLER_ERROR;
+#endif /* CONTEXT_MANAGEMENT_ENABLED */
+}
+ 800d6f6:	4620      	mov	r0, r4
+ 800d6f8:	b00a      	add	sp, #40	; 0x28
+ 800d6fa:	bd10      	pop	{r4, pc}
+        status = NvmDataMgmtStoreBegin();
+ 800d6fc:	f004 fd20 	bl	8012140 <NvmDataMgmtStoreBegin>
+        if( status == NVM_DATA_NO_UPDATED_DATA )
+ 800d700:	f110 0f02 	cmn.w	r0, #2
+ 800d704:	d012      	beq.n	800d72c <LmHandlerNvmDataStore+0x50>
+        else if( ( status != NVM_DATA_OK ) || ( LmHandlerCallbacks->OnStoreContextRequest == NULL ) )
+ 800d706:	b9d0      	cbnz	r0, 800d73e <LmHandlerNvmDataStore+0x62>
+ 800d708:	4b10      	ldr	r3, [pc, #64]	; (800d74c <LmHandlerNvmDataStore+0x70>)
+ 800d70a:	681b      	ldr	r3, [r3, #0]
+ 800d70c:	695b      	ldr	r3, [r3, #20]
+ 800d70e:	b1cb      	cbz	r3, 800d744 <LmHandlerNvmDataStore+0x68>
+            mibReq.Type = MIB_NVM_CTXS;
+ 800d710:	2326      	movs	r3, #38	; 0x26
+ 800d712:	f88d 3000 	strb.w	r3, [sp]
+            LoRaMacMibGetRequestConfirm( &mibReq );
+ 800d716:	4668      	mov	r0, sp
+ 800d718:	f002 fe74 	bl	8010404 <LoRaMacMibGetRequestConfirm>
+            LmHandlerCallbacks->OnStoreContextRequest( nvm, nvm_size );
+ 800d71c:	4b0b      	ldr	r3, [pc, #44]	; (800d74c <LmHandlerNvmDataStore+0x70>)
+ 800d71e:	681b      	ldr	r3, [r3, #0]
+ 800d720:	695b      	ldr	r3, [r3, #20]
+ 800d722:	f44f 61ee 	mov.w	r1, #1904	; 0x770
+ 800d726:	9801      	ldr	r0, [sp, #4]
+ 800d728:	4798      	blx	r3
+ 800d72a:	e001      	b.n	800d730 <LmHandlerNvmDataStore+0x54>
+            lmhStatus = LORAMAC_HANDLER_NVM_DATA_UP_TO_DATE;
+ 800d72c:	f06f 0407 	mvn.w	r4, #7
+        if( NvmDataMgmtStoreEnd() != NVM_DATA_OK )
+ 800d730:	f004 fd16 	bl	8012160 <NvmDataMgmtStoreEnd>
+ 800d734:	2800      	cmp	r0, #0
+ 800d736:	d0d7      	beq.n	800d6e8 <LmHandlerNvmDataStore+0xc>
+            lmhStatus = LORAMAC_HANDLER_ERROR;
+ 800d738:	f04f 34ff 	mov.w	r4, #4294967295
+ 800d73c:	e7db      	b.n	800d6f6 <LmHandlerNvmDataStore+0x1a>
+            lmhStatus = LORAMAC_HANDLER_ERROR;
+ 800d73e:	f04f 34ff 	mov.w	r4, #4294967295
+ 800d742:	e7f5      	b.n	800d730 <LmHandlerNvmDataStore+0x54>
+ 800d744:	f04f 34ff 	mov.w	r4, #4294967295
+ 800d748:	e7f2      	b.n	800d730 <LmHandlerNvmDataStore+0x54>
+ 800d74a:	bf00      	nop
+ 800d74c:	20001078 	.word	0x20001078
+
+0800d750 <LmhpComplianceInit>:
+    return &LmhpCompliancePackage;
+}
+
+static void LmhpComplianceInit( void *params, uint8_t *dataBuffer, uint8_t dataBufferMaxSize )
+{
+    if( ( params != NULL ) && ( dataBuffer != NULL ) )
+ 800d750:	4603      	mov	r3, r0
+ 800d752:	b140      	cbz	r0, 800d766 <LmhpComplianceInit+0x16>
+ 800d754:	b139      	cbz	r1, 800d766 <LmhpComplianceInit+0x16>
+    {
+        LmhpComplianceParams = ( LmhpComplianceParams_t * )params;
+ 800d756:	4807      	ldr	r0, [pc, #28]	; (800d774 <LmhpComplianceInit+0x24>)
+ 800d758:	6003      	str	r3, [r0, #0]
+        ComplianceTestState.DataBuffer = dataBuffer;
+ 800d75a:	4b07      	ldr	r3, [pc, #28]	; (800d778 <LmhpComplianceInit+0x28>)
+ 800d75c:	6099      	str	r1, [r3, #8]
+        ComplianceTestState.DataBufferMaxSize = dataBufferMaxSize;
+ 800d75e:	715a      	strb	r2, [r3, #5]
+        ComplianceTestState.Initialized = true;
+ 800d760:	2201      	movs	r2, #1
+ 800d762:	701a      	strb	r2, [r3, #0]
+ 800d764:	4770      	bx	lr
+    }
+    else
+    {
+        LmhpComplianceParams = NULL;
+ 800d766:	2300      	movs	r3, #0
+ 800d768:	4a02      	ldr	r2, [pc, #8]	; (800d774 <LmhpComplianceInit+0x24>)
+ 800d76a:	6013      	str	r3, [r2, #0]
+        ComplianceTestState.Initialized = false;
+ 800d76c:	4a02      	ldr	r2, [pc, #8]	; (800d778 <LmhpComplianceInit+0x28>)
+ 800d76e:	7013      	strb	r3, [r2, #0]
+    }
+}
+ 800d770:	4770      	bx	lr
+ 800d772:	bf00      	nop
+ 800d774:	200010fc 	.word	0x200010fc
+ 800d778:	200010d0 	.word	0x200010d0
+
+0800d77c <LmhpComplianceIsInitialized>:
+
+static bool LmhpComplianceIsInitialized( void )
+{
+    return ComplianceTestState.Initialized;
+}
+ 800d77c:	4b01      	ldr	r3, [pc, #4]	; (800d784 <LmhpComplianceIsInitialized+0x8>)
+ 800d77e:	7818      	ldrb	r0, [r3, #0]
+ 800d780:	4770      	bx	lr
+ 800d782:	bf00      	nop
+ 800d784:	200010d0 	.word	0x200010d0
+
+0800d788 <LmhpComplianceIsRunning>:
+
+static bool LmhpComplianceIsRunning( void )
+{
+    if( ComplianceTestState.Initialized == false )
+ 800d788:	4b02      	ldr	r3, [pc, #8]	; (800d794 <LmhpComplianceIsRunning+0xc>)
+ 800d78a:	7818      	ldrb	r0, [r3, #0]
+ 800d78c:	b100      	cbz	r0, 800d790 <LmhpComplianceIsRunning+0x8>
+    {
+        return false;
+    }
+
+    return ComplianceTestState.IsRunning;
+ 800d78e:	7858      	ldrb	r0, [r3, #1]
+}
+ 800d790:	4770      	bx	lr
+ 800d792:	bf00      	nop
+ 800d794:	200010d0 	.word	0x200010d0
+
+0800d798 <LmhpComplianceOnMcpsConfirm>:
+
+static void LmhpComplianceOnMcpsConfirm( McpsConfirm_t *mcpsConfirm )
+{
+    if( ComplianceTestState.Initialized == false )
+ 800d798:	4b08      	ldr	r3, [pc, #32]	; (800d7bc <LmhpComplianceOnMcpsConfirm+0x24>)
+ 800d79a:	781b      	ldrb	r3, [r3, #0]
+ 800d79c:	b12b      	cbz	r3, 800d7aa <LmhpComplianceOnMcpsConfirm+0x12>
+    {
+        return;
+    }
+
+    if( ( ComplianceTestState.IsRunning == true ) &&
+ 800d79e:	4b07      	ldr	r3, [pc, #28]	; (800d7bc <LmhpComplianceOnMcpsConfirm+0x24>)
+ 800d7a0:	785b      	ldrb	r3, [r3, #1]
+ 800d7a2:	b113      	cbz	r3, 800d7aa <LmhpComplianceOnMcpsConfirm+0x12>
+        ( mcpsConfirm->McpsRequest == MCPS_CONFIRMED ) &&
+ 800d7a4:	7803      	ldrb	r3, [r0, #0]
+    if( ( ComplianceTestState.IsRunning == true ) &&
+ 800d7a6:	2b01      	cmp	r3, #1
+ 800d7a8:	d000      	beq.n	800d7ac <LmhpComplianceOnMcpsConfirm+0x14>
+        ( mcpsConfirm->AckReceived != 0 ) )
+    {
+        /* Increment the compliance certification protocol downlink counter */
+        ComplianceTestState.DownLinkCounter++;
+    }
+}
+ 800d7aa:	4770      	bx	lr
+        ( mcpsConfirm->AckReceived != 0 ) )
+ 800d7ac:	7903      	ldrb	r3, [r0, #4]
+        ( mcpsConfirm->McpsRequest == MCPS_CONFIRMED ) &&
+ 800d7ae:	2b00      	cmp	r3, #0
+ 800d7b0:	d0fb      	beq.n	800d7aa <LmhpComplianceOnMcpsConfirm+0x12>
+        ComplianceTestState.DownLinkCounter++;
+ 800d7b2:	4a02      	ldr	r2, [pc, #8]	; (800d7bc <LmhpComplianceOnMcpsConfirm+0x24>)
+ 800d7b4:	8993      	ldrh	r3, [r2, #12]
+ 800d7b6:	3301      	adds	r3, #1
+ 800d7b8:	8193      	strh	r3, [r2, #12]
+ 800d7ba:	e7f6      	b.n	800d7aa <LmhpComplianceOnMcpsConfirm+0x12>
+ 800d7bc:	200010d0 	.word	0x200010d0
+
+0800d7c0 <LmhpComplianceOnMlmeConfirm>:
+
+static void LmhpComplianceOnMlmeConfirm( MlmeConfirm_t *mlmeConfirm )
+{
+    if( ComplianceTestState.Initialized == false )
+ 800d7c0:	4b08      	ldr	r3, [pc, #32]	; (800d7e4 <LmhpComplianceOnMlmeConfirm+0x24>)
+ 800d7c2:	781b      	ldrb	r3, [r3, #0]
+ 800d7c4:	b12b      	cbz	r3, 800d7d2 <LmhpComplianceOnMlmeConfirm+0x12>
+    {
+        return;
+    }
+
+    if( ComplianceTestState.IsRunning == false )
+ 800d7c6:	4b07      	ldr	r3, [pc, #28]	; (800d7e4 <LmhpComplianceOnMlmeConfirm+0x24>)
+ 800d7c8:	785b      	ldrb	r3, [r3, #1]
+ 800d7ca:	b113      	cbz	r3, 800d7d2 <LmhpComplianceOnMlmeConfirm+0x12>
+    {
+        return;
+    }
+
+    if( mlmeConfirm->MlmeRequest == MLME_LINK_CHECK )
+ 800d7cc:	7803      	ldrb	r3, [r0, #0]
+ 800d7ce:	2b05      	cmp	r3, #5
+ 800d7d0:	d000      	beq.n	800d7d4 <LmhpComplianceOnMlmeConfirm+0x14>
+    {
+        ComplianceTestState.LinkCheck = true;
+        ComplianceTestState.DemodMargin = mlmeConfirm->DemodMargin;
+        ComplianceTestState.NbGateways = mlmeConfirm->NbGateways;
+    }
+}
+ 800d7d2:	4770      	bx	lr
+        ComplianceTestState.LinkCheck = true;
+ 800d7d4:	4b03      	ldr	r3, [pc, #12]	; (800d7e4 <LmhpComplianceOnMlmeConfirm+0x24>)
+ 800d7d6:	2201      	movs	r2, #1
+ 800d7d8:	739a      	strb	r2, [r3, #14]
+        ComplianceTestState.DemodMargin = mlmeConfirm->DemodMargin;
+ 800d7da:	7a02      	ldrb	r2, [r0, #8]
+ 800d7dc:	73da      	strb	r2, [r3, #15]
+        ComplianceTestState.NbGateways = mlmeConfirm->NbGateways;
+ 800d7de:	7a42      	ldrb	r2, [r0, #9]
+ 800d7e0:	741a      	strb	r2, [r3, #16]
+ 800d7e2:	e7f6      	b.n	800d7d2 <LmhpComplianceOnMlmeConfirm+0x12>
+ 800d7e4:	200010d0 	.word	0x200010d0
+
+0800d7e8 <LmhpComplianceProcess>:
+}
+
+static void LmhpComplianceProcess( void )
+{
+    /* Nothing to process */
+}
+ 800d7e8:	4770      	bx	lr
+	...
+
+0800d7ec <LmhpComplianceTxProcess>:
+    if( ComplianceTestState.Initialized == false )
+ 800d7ec:	4b26      	ldr	r3, [pc, #152]	; (800d888 <LmhpComplianceTxProcess+0x9c>)
+ 800d7ee:	781b      	ldrb	r3, [r3, #0]
+ 800d7f0:	2b00      	cmp	r3, #0
+ 800d7f2:	d040      	beq.n	800d876 <LmhpComplianceTxProcess+0x8a>
+    if( ComplianceTestState.IsRunning == false )
+ 800d7f4:	4b24      	ldr	r3, [pc, #144]	; (800d888 <LmhpComplianceTxProcess+0x9c>)
+ 800d7f6:	785b      	ldrb	r3, [r3, #1]
+ 800d7f8:	2b00      	cmp	r3, #0
+ 800d7fa:	d03f      	beq.n	800d87c <LmhpComplianceTxProcess+0x90>
+{
+ 800d7fc:	b500      	push	{lr}
+ 800d7fe:	b083      	sub	sp, #12
+    if( ComplianceTestState.LinkCheck == true )
+ 800d800:	4b21      	ldr	r3, [pc, #132]	; (800d888 <LmhpComplianceTxProcess+0x9c>)
+ 800d802:	7b9b      	ldrb	r3, [r3, #14]
+ 800d804:	b323      	cbz	r3, 800d850 <LmhpComplianceTxProcess+0x64>
+        ComplianceTestState.LinkCheck = false;
+ 800d806:	4b20      	ldr	r3, [pc, #128]	; (800d888 <LmhpComplianceTxProcess+0x9c>)
+ 800d808:	2200      	movs	r2, #0
+ 800d80a:	739a      	strb	r2, [r3, #14]
+        ComplianceTestState.DataBufferSize = 3;
+ 800d80c:	2203      	movs	r2, #3
+ 800d80e:	719a      	strb	r2, [r3, #6]
+        ComplianceTestState.DataBuffer[0] = 5;
+ 800d810:	689a      	ldr	r2, [r3, #8]
+ 800d812:	2105      	movs	r1, #5
+ 800d814:	7011      	strb	r1, [r2, #0]
+        ComplianceTestState.DataBuffer[1] = ComplianceTestState.DemodMargin;
+ 800d816:	7bd9      	ldrb	r1, [r3, #15]
+ 800d818:	7051      	strb	r1, [r2, #1]
+        ComplianceTestState.DataBuffer[2] = ComplianceTestState.NbGateways;
+ 800d81a:	7c19      	ldrb	r1, [r3, #16]
+ 800d81c:	7091      	strb	r1, [r2, #2]
+        ComplianceTestState.State = 1;
+ 800d81e:	2201      	movs	r2, #1
+ 800d820:	709a      	strb	r2, [r3, #2]
+    LmHandlerAppData_t appData =
+ 800d822:	23e0      	movs	r3, #224	; 0xe0
+ 800d824:	f88d 3000 	strb.w	r3, [sp]
+        .BufferSize = ComplianceTestState.DataBufferSize,
+ 800d828:	4b17      	ldr	r3, [pc, #92]	; (800d888 <LmhpComplianceTxProcess+0x9c>)
+ 800d82a:	799a      	ldrb	r2, [r3, #6]
+    LmHandlerAppData_t appData =
+ 800d82c:	f88d 2001 	strb.w	r2, [sp, #1]
+        .Buffer = ComplianceTestState.DataBuffer,
+ 800d830:	689b      	ldr	r3, [r3, #8]
+    LmHandlerAppData_t appData =
+ 800d832:	9301      	str	r3, [sp, #4]
+    TimerStart( &ComplianceTxNextPacketTimer );
+ 800d834:	4815      	ldr	r0, [pc, #84]	; (800d88c <LmhpComplianceTxProcess+0xa0>)
+ 800d836:	f009 fd2b 	bl	8017290 <UTIL_TIMER_Start>
+    if( LmhpCompliancePackage.OnSendRequest == NULL)
+ 800d83a:	4b15      	ldr	r3, [pc, #84]	; (800d890 <LmhpComplianceTxProcess+0xa4>)
+ 800d83c:	6b1b      	ldr	r3, [r3, #48]	; 0x30
+ 800d83e:	b1fb      	cbz	r3, 800d880 <LmhpComplianceTxProcess+0x94>
+    return LmhpCompliancePackage.OnSendRequest( &appData, ( LmHandlerMsgTypes_t )ComplianceTestState.IsTxConfirmed, true );
+ 800d840:	2201      	movs	r2, #1
+ 800d842:	4911      	ldr	r1, [pc, #68]	; (800d888 <LmhpComplianceTxProcess+0x9c>)
+ 800d844:	78c9      	ldrb	r1, [r1, #3]
+ 800d846:	4668      	mov	r0, sp
+ 800d848:	4798      	blx	r3
+}
+ 800d84a:	b003      	add	sp, #12
+ 800d84c:	f85d fb04 	ldr.w	pc, [sp], #4
+        switch( ComplianceTestState.State )
+ 800d850:	4b0d      	ldr	r3, [pc, #52]	; (800d888 <LmhpComplianceTxProcess+0x9c>)
+ 800d852:	789b      	ldrb	r3, [r3, #2]
+ 800d854:	2b01      	cmp	r3, #1
+ 800d856:	d005      	beq.n	800d864 <LmhpComplianceTxProcess+0x78>
+ 800d858:	2b04      	cmp	r3, #4
+ 800d85a:	d1e2      	bne.n	800d822 <LmhpComplianceTxProcess+0x36>
+                ComplianceTestState.State = 1;
+ 800d85c:	4b0a      	ldr	r3, [pc, #40]	; (800d888 <LmhpComplianceTxProcess+0x9c>)
+ 800d85e:	2201      	movs	r2, #1
+ 800d860:	709a      	strb	r2, [r3, #2]
+                break;
+ 800d862:	e7de      	b.n	800d822 <LmhpComplianceTxProcess+0x36>
+                ComplianceTestState.DataBufferSize = 2;
+ 800d864:	4b08      	ldr	r3, [pc, #32]	; (800d888 <LmhpComplianceTxProcess+0x9c>)
+ 800d866:	2202      	movs	r2, #2
+ 800d868:	719a      	strb	r2, [r3, #6]
+                ComplianceTestState.DataBuffer[0] = ComplianceTestState.DownLinkCounter >> 8;
+ 800d86a:	899a      	ldrh	r2, [r3, #12]
+ 800d86c:	689b      	ldr	r3, [r3, #8]
+ 800d86e:	0a11      	lsrs	r1, r2, #8
+ 800d870:	7019      	strb	r1, [r3, #0]
+                ComplianceTestState.DataBuffer[1] = ComplianceTestState.DownLinkCounter;
+ 800d872:	705a      	strb	r2, [r3, #1]
+                break;
+ 800d874:	e7d5      	b.n	800d822 <LmhpComplianceTxProcess+0x36>
+        return LORAMAC_HANDLER_ERROR;
+ 800d876:	f04f 30ff 	mov.w	r0, #4294967295
+ 800d87a:	4770      	bx	lr
+        return LORAMAC_HANDLER_SUCCESS;
+ 800d87c:	2000      	movs	r0, #0
+}
+ 800d87e:	4770      	bx	lr
+        return LORAMAC_HANDLER_ERROR;
+ 800d880:	f04f 30ff 	mov.w	r0, #4294967295
+ 800d884:	e7e1      	b.n	800d84a <LmhpComplianceTxProcess+0x5e>
+ 800d886:	bf00      	nop
+ 800d888:	200010d0 	.word	0x200010d0
+ 800d88c:	200010e4 	.word	0x200010e4
+ 800d890:	20000878 	.word	0x20000878
+
+0800d894 <LmhpComplianceOnMcpsIndication>:
+    if( ComplianceTestState.Initialized == false )
+ 800d894:	4b8f      	ldr	r3, [pc, #572]	; (800dad4 <LmhpComplianceOnMcpsIndication+0x240>)
+ 800d896:	781b      	ldrb	r3, [r3, #0]
+ 800d898:	2b00      	cmp	r3, #0
+ 800d89a:	f000 8119 	beq.w	800dad0 <LmhpComplianceOnMcpsIndication+0x23c>
+    if( mcpsIndication->RxData == false )
+ 800d89e:	7b43      	ldrb	r3, [r0, #13]
+ 800d8a0:	2b00      	cmp	r3, #0
+ 800d8a2:	f000 8115 	beq.w	800dad0 <LmhpComplianceOnMcpsIndication+0x23c>
+    if( ( ComplianceTestState.IsRunning == true ) &&
+ 800d8a6:	4b8b      	ldr	r3, [pc, #556]	; (800dad4 <LmhpComplianceOnMcpsIndication+0x240>)
+ 800d8a8:	785b      	ldrb	r3, [r3, #1]
+ 800d8aa:	b12b      	cbz	r3, 800d8b8 <LmhpComplianceOnMcpsIndication+0x24>
+        ( mcpsIndication->AckReceived == 0 ) )
+ 800d8ac:	7b82      	ldrb	r2, [r0, #14]
+    if( ( ComplianceTestState.IsRunning == true ) &&
+ 800d8ae:	b91a      	cbnz	r2, 800d8b8 <LmhpComplianceOnMcpsIndication+0x24>
+        ComplianceTestState.DownLinkCounter++;
+ 800d8b0:	4988      	ldr	r1, [pc, #544]	; (800dad4 <LmhpComplianceOnMcpsIndication+0x240>)
+ 800d8b2:	898a      	ldrh	r2, [r1, #12]
+ 800d8b4:	3201      	adds	r2, #1
+ 800d8b6:	818a      	strh	r2, [r1, #12]
+    if( mcpsIndication->Port != COMPLIANCE_PORT )
+ 800d8b8:	78c2      	ldrb	r2, [r0, #3]
+ 800d8ba:	2ae0      	cmp	r2, #224	; 0xe0
+ 800d8bc:	f040 8108 	bne.w	800dad0 <LmhpComplianceOnMcpsIndication+0x23c>
+{
+ 800d8c0:	b510      	push	{r4, lr}
+ 800d8c2:	b08c      	sub	sp, #48	; 0x30
+    if( ComplianceTestState.IsRunning == false )
+ 800d8c4:	2b00      	cmp	r3, #0
+ 800d8c6:	d140      	bne.n	800d94a <LmhpComplianceOnMcpsIndication+0xb6>
+        if( ( mcpsIndication->BufferSize == 4 ) &&
+ 800d8c8:	7b03      	ldrb	r3, [r0, #12]
+ 800d8ca:	2b04      	cmp	r3, #4
+ 800d8cc:	d001      	beq.n	800d8d2 <LmhpComplianceOnMcpsIndication+0x3e>
+}
+ 800d8ce:	b00c      	add	sp, #48	; 0x30
+ 800d8d0:	bd10      	pop	{r4, pc}
+            ( mcpsIndication->Buffer[0] == 0x01 ) &&
+ 800d8d2:	6883      	ldr	r3, [r0, #8]
+ 800d8d4:	781a      	ldrb	r2, [r3, #0]
+        if( ( mcpsIndication->BufferSize == 4 ) &&
+ 800d8d6:	2a01      	cmp	r2, #1
+ 800d8d8:	d1f9      	bne.n	800d8ce <LmhpComplianceOnMcpsIndication+0x3a>
+            ( mcpsIndication->Buffer[1] == 0x01 ) &&
+ 800d8da:	785a      	ldrb	r2, [r3, #1]
+            ( mcpsIndication->Buffer[0] == 0x01 ) &&
+ 800d8dc:	2a01      	cmp	r2, #1
+ 800d8de:	d1f6      	bne.n	800d8ce <LmhpComplianceOnMcpsIndication+0x3a>
+            ( mcpsIndication->Buffer[2] == 0x01 ) &&
+ 800d8e0:	789a      	ldrb	r2, [r3, #2]
+            ( mcpsIndication->Buffer[1] == 0x01 ) &&
+ 800d8e2:	2a01      	cmp	r2, #1
+ 800d8e4:	d1f3      	bne.n	800d8ce <LmhpComplianceOnMcpsIndication+0x3a>
+            ( mcpsIndication->Buffer[3] == 0x01 ) )
+ 800d8e6:	78db      	ldrb	r3, [r3, #3]
+            ( mcpsIndication->Buffer[2] == 0x01 ) &&
+ 800d8e8:	2b01      	cmp	r3, #1
+ 800d8ea:	d1f0      	bne.n	800d8ce <LmhpComplianceOnMcpsIndication+0x3a>
+            ComplianceTestState.IsTxConfirmed = false;
+ 800d8ec:	4b79      	ldr	r3, [pc, #484]	; (800dad4 <LmhpComplianceOnMcpsIndication+0x240>)
+ 800d8ee:	2400      	movs	r4, #0
+ 800d8f0:	70dc      	strb	r4, [r3, #3]
+            ComplianceTestState.Port = 224;
+ 800d8f2:	22e0      	movs	r2, #224	; 0xe0
+ 800d8f4:	711a      	strb	r2, [r3, #4]
+            ComplianceTestState.DataBufferSize = 2;
+ 800d8f6:	2202      	movs	r2, #2
+ 800d8f8:	719a      	strb	r2, [r3, #6]
+            ComplianceTestState.DownLinkCounter = 0;
+ 800d8fa:	819c      	strh	r4, [r3, #12]
+            ComplianceTestState.LinkCheck = false;
+ 800d8fc:	739c      	strb	r4, [r3, #14]
+            ComplianceTestState.DemodMargin = 0;
+ 800d8fe:	73dc      	strb	r4, [r3, #15]
+            ComplianceTestState.NbGateways = 0;
+ 800d900:	741c      	strb	r4, [r3, #16]
+            ComplianceTestState.IsRunning = true;
+ 800d902:	2201      	movs	r2, #1
+ 800d904:	705a      	strb	r2, [r3, #1]
+            ComplianceTestState.State = 1;
+ 800d906:	709a      	strb	r2, [r3, #2]
+            mibReq.Type = MIB_ADR;
+ 800d908:	2304      	movs	r3, #4
+ 800d90a:	f88d 3008 	strb.w	r3, [sp, #8]
+            mibReq.Param.AdrEnable = true;
+ 800d90e:	f88d 200c 	strb.w	r2, [sp, #12]
+            LoRaMacMibSetRequestConfirm( &mibReq );
+ 800d912:	a802      	add	r0, sp, #8
+ 800d914:	f002 feea 	bl	80106ec <LoRaMacMibSetRequestConfirm>
+            LoRaMacTestSetDutyCycleOn( false );
+ 800d918:	4620      	mov	r0, r4
+ 800d91a:	f003 fb5d 	bl	8010fd8 <LoRaMacTestSetDutyCycleOn>
+            if( LmhpComplianceParams->StopPeripherals != NULL )
+ 800d91e:	4b6e      	ldr	r3, [pc, #440]	; (800dad8 <LmhpComplianceOnMcpsIndication+0x244>)
+ 800d920:	681b      	ldr	r3, [r3, #0]
+ 800d922:	685b      	ldr	r3, [r3, #4]
+ 800d924:	b103      	cbz	r3, 800d928 <LmhpComplianceOnMcpsIndication+0x94>
+                LmhpComplianceParams->StopPeripherals( );
+ 800d926:	4798      	blx	r3
+            TimerInit( &ComplianceTxNextPacketTimer, OnComplianceTxNextPacketTimerEvent );
+ 800d928:	4c6c      	ldr	r4, [pc, #432]	; (800dadc <LmhpComplianceOnMcpsIndication+0x248>)
+ 800d92a:	2200      	movs	r2, #0
+ 800d92c:	9200      	str	r2, [sp, #0]
+ 800d92e:	4b6c      	ldr	r3, [pc, #432]	; (800dae0 <LmhpComplianceOnMcpsIndication+0x24c>)
+ 800d930:	f04f 31ff 	mov.w	r1, #4294967295
+ 800d934:	4620      	mov	r0, r4
+ 800d936:	f009 fbf3 	bl	8017120 <UTIL_TIMER_Create>
+            TimerSetValue( &ComplianceTxNextPacketTimer, COMPLIANCE_TX_DUTYCYCLE );
+ 800d93a:	f241 3188 	movw	r1, #5000	; 0x1388
+ 800d93e:	4620      	mov	r0, r4
+ 800d940:	f009 fcec 	bl	801731c <UTIL_TIMER_SetPeriod>
+            LmhpComplianceTxProcess( );
+ 800d944:	f7ff ff52 	bl	800d7ec <LmhpComplianceTxProcess>
+ 800d948:	e7c1      	b.n	800d8ce <LmhpComplianceOnMcpsIndication+0x3a>
+        ComplianceTestState.State = mcpsIndication->Buffer[0];
+ 800d94a:	6882      	ldr	r2, [r0, #8]
+ 800d94c:	7813      	ldrb	r3, [r2, #0]
+ 800d94e:	4961      	ldr	r1, [pc, #388]	; (800dad4 <LmhpComplianceOnMcpsIndication+0x240>)
+ 800d950:	708b      	strb	r3, [r1, #2]
+        switch( ComplianceTestState.State )
+ 800d952:	2b0a      	cmp	r3, #10
+ 800d954:	d8bb      	bhi.n	800d8ce <LmhpComplianceOnMcpsIndication+0x3a>
+ 800d956:	e8df f003 	tbb	[pc, r3]
+ 800d95a:	2206      	.short	0x2206
+ 800d95c:	47312b26 	.word	0x47312b26
+ 800d960:	a7a0714e 	.word	0xa7a0714e
+ 800d964:	b1          	.byte	0xb1
+ 800d965:	00          	.byte	0x00
+                    TimerStop( &ComplianceTxNextPacketTimer );
+ 800d966:	485d      	ldr	r0, [pc, #372]	; (800dadc <LmhpComplianceOnMcpsIndication+0x248>)
+ 800d968:	f009 fc38 	bl	80171dc <UTIL_TIMER_Stop>
+                    ComplianceTestState.DownLinkCounter = 0;
+ 800d96c:	4b59      	ldr	r3, [pc, #356]	; (800dad4 <LmhpComplianceOnMcpsIndication+0x240>)
+ 800d96e:	2200      	movs	r2, #0
+ 800d970:	819a      	strh	r2, [r3, #12]
+                    ComplianceTestState.IsRunning = false;
+ 800d972:	705a      	strb	r2, [r3, #1]
+                    mibReq.Type = MIB_ADR;
+ 800d974:	2304      	movs	r3, #4
+ 800d976:	f88d 3008 	strb.w	r3, [sp, #8]
+                    mibReq.Param.AdrEnable = LmhpComplianceParams->AdrEnabled;
+ 800d97a:	4c57      	ldr	r4, [pc, #348]	; (800dad8 <LmhpComplianceOnMcpsIndication+0x244>)
+ 800d97c:	6823      	ldr	r3, [r4, #0]
+ 800d97e:	781b      	ldrb	r3, [r3, #0]
+ 800d980:	f88d 300c 	strb.w	r3, [sp, #12]
+                    LoRaMacMibSetRequestConfirm( &mibReq );
+ 800d984:	a802      	add	r0, sp, #8
+ 800d986:	f002 feb1 	bl	80106ec <LoRaMacMibSetRequestConfirm>
+                    LoRaMacTestSetDutyCycleOn( LmhpComplianceParams->DutyCycleEnabled );
+ 800d98a:	6823      	ldr	r3, [r4, #0]
+ 800d98c:	7858      	ldrb	r0, [r3, #1]
+ 800d98e:	f003 fb23 	bl	8010fd8 <LoRaMacTestSetDutyCycleOn>
+                    if( LmhpComplianceParams->StartPeripherals != NULL )
+ 800d992:	6823      	ldr	r3, [r4, #0]
+ 800d994:	689b      	ldr	r3, [r3, #8]
+ 800d996:	2b00      	cmp	r3, #0
+ 800d998:	d099      	beq.n	800d8ce <LmhpComplianceOnMcpsIndication+0x3a>
+                        LmhpComplianceParams->StartPeripherals( );
+ 800d99a:	4798      	blx	r3
+                break;
+ 800d99c:	e797      	b.n	800d8ce <LmhpComplianceOnMcpsIndication+0x3a>
+                ComplianceTestState.DataBufferSize = 2;
+ 800d99e:	4b4d      	ldr	r3, [pc, #308]	; (800dad4 <LmhpComplianceOnMcpsIndication+0x240>)
+ 800d9a0:	2202      	movs	r2, #2
+ 800d9a2:	719a      	strb	r2, [r3, #6]
+                break;
+ 800d9a4:	e793      	b.n	800d8ce <LmhpComplianceOnMcpsIndication+0x3a>
+                ComplianceTestState.IsTxConfirmed = true;
+ 800d9a6:	4b4b      	ldr	r3, [pc, #300]	; (800dad4 <LmhpComplianceOnMcpsIndication+0x240>)
+ 800d9a8:	2201      	movs	r2, #1
+ 800d9aa:	70da      	strb	r2, [r3, #3]
+                ComplianceTestState.State = 1;
+ 800d9ac:	709a      	strb	r2, [r3, #2]
+                break;
+ 800d9ae:	e78e      	b.n	800d8ce <LmhpComplianceOnMcpsIndication+0x3a>
+                ComplianceTestState.IsTxConfirmed = false;
+ 800d9b0:	4b48      	ldr	r3, [pc, #288]	; (800dad4 <LmhpComplianceOnMcpsIndication+0x240>)
+ 800d9b2:	2200      	movs	r2, #0
+ 800d9b4:	70da      	strb	r2, [r3, #3]
+                ComplianceTestState.State = 1;
+ 800d9b6:	2201      	movs	r2, #1
+ 800d9b8:	709a      	strb	r2, [r3, #2]
+                break;
+ 800d9ba:	e788      	b.n	800d8ce <LmhpComplianceOnMcpsIndication+0x3a>
+                ComplianceTestState.DataBufferSize = mcpsIndication->BufferSize;
+ 800d9bc:	7b01      	ldrb	r1, [r0, #12]
+ 800d9be:	4b45      	ldr	r3, [pc, #276]	; (800dad4 <LmhpComplianceOnMcpsIndication+0x240>)
+ 800d9c0:	7199      	strb	r1, [r3, #6]
+                ComplianceTestState.DataBuffer[0] = 4;
+ 800d9c2:	689c      	ldr	r4, [r3, #8]
+ 800d9c4:	2304      	movs	r3, #4
+ 800d9c6:	7023      	strb	r3, [r4, #0]
+                for( uint8_t i = 1; i < MIN( ComplianceTestState.DataBufferSize, ComplianceTestState.DataBufferMaxSize ); i++ )
+ 800d9c8:	2301      	movs	r3, #1
+ 800d9ca:	4a42      	ldr	r2, [pc, #264]	; (800dad4 <LmhpComplianceOnMcpsIndication+0x240>)
+ 800d9cc:	7952      	ldrb	r2, [r2, #5]
+ 800d9ce:	428a      	cmp	r2, r1
+ 800d9d0:	bf28      	it	cs
+ 800d9d2:	460a      	movcs	r2, r1
+ 800d9d4:	429a      	cmp	r2, r3
+ 800d9d6:	f67f af7a 	bls.w	800d8ce <LmhpComplianceOnMcpsIndication+0x3a>
+                    ComplianceTestState.DataBuffer[i] = mcpsIndication->Buffer[i] + 1;
+ 800d9da:	6882      	ldr	r2, [r0, #8]
+ 800d9dc:	5cd2      	ldrb	r2, [r2, r3]
+ 800d9de:	3201      	adds	r2, #1
+ 800d9e0:	54e2      	strb	r2, [r4, r3]
+                for( uint8_t i = 1; i < MIN( ComplianceTestState.DataBufferSize, ComplianceTestState.DataBufferMaxSize ); i++ )
+ 800d9e2:	3301      	adds	r3, #1
+ 800d9e4:	b2db      	uxtb	r3, r3
+ 800d9e6:	e7f0      	b.n	800d9ca <LmhpComplianceOnMcpsIndication+0x136>
+                    mlmeReq.Type = MLME_LINK_CHECK;
+ 800d9e8:	2305      	movs	r3, #5
+ 800d9ea:	f88d 3008 	strb.w	r3, [sp, #8]
+                    LoRaMacMlmeRequest( &mlmeReq );
+ 800d9ee:	a802      	add	r0, sp, #8
+ 800d9f0:	f003 f956 	bl	8010ca0 <LoRaMacMlmeRequest>
+                break;
+ 800d9f4:	e76b      	b.n	800d8ce <LmhpComplianceOnMcpsIndication+0x3a>
+                    TimerStop( &ComplianceTxNextPacketTimer );
+ 800d9f6:	4839      	ldr	r0, [pc, #228]	; (800dadc <LmhpComplianceOnMcpsIndication+0x248>)
+ 800d9f8:	f009 fbf0 	bl	80171dc <UTIL_TIMER_Stop>
+                    ComplianceTestState.DownLinkCounter = 0;
+ 800d9fc:	4b35      	ldr	r3, [pc, #212]	; (800dad4 <LmhpComplianceOnMcpsIndication+0x240>)
+ 800d9fe:	2200      	movs	r2, #0
+ 800da00:	819a      	strh	r2, [r3, #12]
+                    ComplianceTestState.IsRunning = false;
+ 800da02:	705a      	strb	r2, [r3, #1]
+                    mibReq.Type = MIB_ADR;
+ 800da04:	2304      	movs	r3, #4
+ 800da06:	f88d 3008 	strb.w	r3, [sp, #8]
+                    mibReq.Param.AdrEnable = LmhpComplianceParams->AdrEnabled;
+ 800da0a:	4c33      	ldr	r4, [pc, #204]	; (800dad8 <LmhpComplianceOnMcpsIndication+0x244>)
+ 800da0c:	6823      	ldr	r3, [r4, #0]
+ 800da0e:	781b      	ldrb	r3, [r3, #0]
+ 800da10:	f88d 300c 	strb.w	r3, [sp, #12]
+                    LoRaMacMibSetRequestConfirm( &mibReq );
+ 800da14:	a802      	add	r0, sp, #8
+ 800da16:	f002 fe69 	bl	80106ec <LoRaMacMibSetRequestConfirm>
+                    LoRaMacTestSetDutyCycleOn( LmhpComplianceParams->DutyCycleEnabled );
+ 800da1a:	6823      	ldr	r3, [r4, #0]
+ 800da1c:	7858      	ldrb	r0, [r3, #1]
+ 800da1e:	f003 fadb 	bl	8010fd8 <LoRaMacTestSetDutyCycleOn>
+                    if( LmhpComplianceParams->StartPeripherals != NULL )
+ 800da22:	6823      	ldr	r3, [r4, #0]
+ 800da24:	689b      	ldr	r3, [r3, #8]
+ 800da26:	b103      	cbz	r3, 800da2a <LmhpComplianceOnMcpsIndication+0x196>
+                        LmhpComplianceParams->StartPeripherals( );
+ 800da28:	4798      	blx	r3
+                    if( LmhpCompliancePackage.OnJoinRequest != NULL )
+ 800da2a:	4b2e      	ldr	r3, [pc, #184]	; (800dae4 <LmhpComplianceOnMcpsIndication+0x250>)
+ 800da2c:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800da2e:	2b00      	cmp	r3, #0
+ 800da30:	f43f af4d 	beq.w	800d8ce <LmhpComplianceOnMcpsIndication+0x3a>
+                        LmhpCompliancePackage.OnJoinRequest( ACTIVATION_TYPE_OTAA, true );
+ 800da34:	2101      	movs	r1, #1
+ 800da36:	2002      	movs	r0, #2
+ 800da38:	4798      	blx	r3
+                break;
+ 800da3a:	e748      	b.n	800d8ce <LmhpComplianceOnMcpsIndication+0x3a>
+                    if( mcpsIndication->BufferSize == 3 )
+ 800da3c:	7b03      	ldrb	r3, [r0, #12]
+ 800da3e:	2b03      	cmp	r3, #3
+ 800da40:	d008      	beq.n	800da54 <LmhpComplianceOnMcpsIndication+0x1c0>
+                    else if( mcpsIndication->BufferSize == 7 )
+ 800da42:	2b07      	cmp	r3, #7
+ 800da44:	d010      	beq.n	800da68 <LmhpComplianceOnMcpsIndication+0x1d4>
+                    LoRaMacMlmeRequest( &mlmeReq );
+ 800da46:	a802      	add	r0, sp, #8
+ 800da48:	f003 f92a 	bl	8010ca0 <LoRaMacMlmeRequest>
+                    ComplianceTestState.State = 1;
+ 800da4c:	4b21      	ldr	r3, [pc, #132]	; (800dad4 <LmhpComplianceOnMcpsIndication+0x240>)
+ 800da4e:	2201      	movs	r2, #1
+ 800da50:	709a      	strb	r2, [r3, #2]
+                break;
+ 800da52:	e73c      	b.n	800d8ce <LmhpComplianceOnMcpsIndication+0x3a>
+                        mlmeReq.Type = MLME_TXCW;
+ 800da54:	2306      	movs	r3, #6
+ 800da56:	f88d 3008 	strb.w	r3, [sp, #8]
+                        mlmeReq.Req.TxCw.Timeout = ( uint16_t )( ( mcpsIndication->Buffer[1] << 8 ) | mcpsIndication->Buffer[2] );
+ 800da5a:	7851      	ldrb	r1, [r2, #1]
+ 800da5c:	7893      	ldrb	r3, [r2, #2]
+ 800da5e:	ea43 2301 	orr.w	r3, r3, r1, lsl #8
+ 800da62:	f8ad 300c 	strh.w	r3, [sp, #12]
+ 800da66:	e7ee      	b.n	800da46 <LmhpComplianceOnMcpsIndication+0x1b2>
+                        mlmeReq.Type = MLME_TXCW_1;
+ 800da68:	f88d 3008 	strb.w	r3, [sp, #8]
+                        mlmeReq.Req.TxCw.Timeout = ( uint16_t )( ( mcpsIndication->Buffer[1] << 8 ) | mcpsIndication->Buffer[2] );
+ 800da6c:	7851      	ldrb	r1, [r2, #1]
+ 800da6e:	7893      	ldrb	r3, [r2, #2]
+ 800da70:	ea43 2301 	orr.w	r3, r3, r1, lsl #8
+ 800da74:	f8ad 300c 	strh.w	r3, [sp, #12]
+                        mlmeReq.Req.TxCw.Frequency = ( uint32_t )( ( mcpsIndication->Buffer[3] << 16 ) | ( mcpsIndication->Buffer[4] << 8 ) | mcpsIndication->Buffer[5] ) * 100;
+ 800da78:	78d1      	ldrb	r1, [r2, #3]
+ 800da7a:	7913      	ldrb	r3, [r2, #4]
+ 800da7c:	021b      	lsls	r3, r3, #8
+ 800da7e:	ea43 4301 	orr.w	r3, r3, r1, lsl #16
+ 800da82:	7952      	ldrb	r2, [r2, #5]
+ 800da84:	4313      	orrs	r3, r2
+ 800da86:	2264      	movs	r2, #100	; 0x64
+ 800da88:	fb02 f303 	mul.w	r3, r2, r3
+ 800da8c:	9304      	str	r3, [sp, #16]
+                        mlmeReq.Req.TxCw.Power = mcpsIndication->Buffer[6];
+ 800da8e:	6883      	ldr	r3, [r0, #8]
+ 800da90:	f993 3006 	ldrsb.w	r3, [r3, #6]
+ 800da94:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800da98:	e7d5      	b.n	800da46 <LmhpComplianceOnMcpsIndication+0x1b2>
+                    mlmeReq.Type = MLME_DEVICE_TIME;
+ 800da9a:	230a      	movs	r3, #10
+ 800da9c:	f88d 3008 	strb.w	r3, [sp, #8]
+                    LoRaMacMlmeRequest( &mlmeReq );
+ 800daa0:	a802      	add	r0, sp, #8
+ 800daa2:	f003 f8fd 	bl	8010ca0 <LoRaMacMlmeRequest>
+                break;
+ 800daa6:	e712      	b.n	800d8ce <LmhpComplianceOnMcpsIndication+0x3a>
+                    mibReq.Type = MIB_DEVICE_CLASS;
+ 800daa8:	2300      	movs	r3, #0
+ 800daaa:	f88d 3008 	strb.w	r3, [sp, #8]
+                    mibReq.Param.Class = ( DeviceClass_t )mcpsIndication->Buffer[1];;
+ 800daae:	7853      	ldrb	r3, [r2, #1]
+ 800dab0:	f88d 300c 	strb.w	r3, [sp, #12]
+                    LoRaMacMibSetRequestConfirm( &mibReq );
+ 800dab4:	a802      	add	r0, sp, #8
+ 800dab6:	f002 fe19 	bl	80106ec <LoRaMacMibSetRequestConfirm>
+                break;
+ 800daba:	e708      	b.n	800d8ce <LmhpComplianceOnMcpsIndication+0x3a>
+                    mlmeReq.Type = MLME_PING_SLOT_INFO;
+ 800dabc:	230d      	movs	r3, #13
+ 800dabe:	f88d 3008 	strb.w	r3, [sp, #8]
+                    mlmeReq.Req.PingSlotInfo.PingSlot.Value = mcpsIndication->Buffer[1];
+ 800dac2:	7853      	ldrb	r3, [r2, #1]
+ 800dac4:	f88d 300c 	strb.w	r3, [sp, #12]
+                    LoRaMacMlmeRequest( &mlmeReq );
+ 800dac8:	a802      	add	r0, sp, #8
+ 800daca:	f003 f8e9 	bl	8010ca0 <LoRaMacMlmeRequest>
+                break;
+ 800dace:	e6fe      	b.n	800d8ce <LmhpComplianceOnMcpsIndication+0x3a>
+ 800dad0:	4770      	bx	lr
+ 800dad2:	bf00      	nop
+ 800dad4:	200010d0 	.word	0x200010d0
+ 800dad8:	200010fc 	.word	0x200010fc
+ 800dadc:	200010e4 	.word	0x200010e4
+ 800dae0:	0800dae9 	.word	0x0800dae9
+ 800dae4:	20000878 	.word	0x20000878
+
+0800dae8 <OnComplianceTxNextPacketTimerEvent>:
+
+static void OnComplianceTxNextPacketTimerEvent( void *context )
+{
+ 800dae8:	b508      	push	{r3, lr}
+    LmhpComplianceTxProcess( );
+ 800daea:	f7ff fe7f 	bl	800d7ec <LmhpComplianceTxProcess>
+}
+ 800daee:	bd08      	pop	{r3, pc}
+
+0800daf0 <LmhpCompliancePackageFactory>:
+}
+ 800daf0:	4800      	ldr	r0, [pc, #0]	; (800daf4 <LmhpCompliancePackageFactory+0x4>)
+ 800daf2:	4770      	bx	lr
+ 800daf4:	20000878 	.word	0x20000878
+
+0800daf8 <LmhpPackagesRegistrationInit>:
+    }
+#endif /* LORAWAN_PACKAGES_VERSION */
+#endif /* LORAWAN_DATA_DISTRIB_MGT */
+
+    return LORAMAC_HANDLER_SUCCESS;
+}
+ 800daf8:	2000      	movs	r0, #0
+ 800dafa:	4770      	bx	lr
+
+0800dafc <LmhpPackagesRegister>:
+    }
+    return LORAMAC_HANDLER_SUCCESS;
+#else
+    return LORAMAC_HANDLER_ERROR;
+#endif /* LORAWAN_DATA_DISTRIB_MGT */
+}
+ 800dafc:	f04f 30ff 	mov.w	r0, #4294967295
+ 800db00:	4770      	bx	lr
+	...
+
+0800db04 <UpdateRxSlotIdleState>:
+    MW_LOG(TS_ON, VLEVEL_M, "MAC rxTimeOut\r\n" );
+}
+
+static void UpdateRxSlotIdleState( void )
+{
+    if( Nvm.MacGroup2.DeviceClass != CLASS_C )
+ 800db04:	4b07      	ldr	r3, [pc, #28]	; (800db24 <UpdateRxSlotIdleState+0x20>)
+ 800db06:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 800db0a:	2b02      	cmp	r3, #2
+ 800db0c:	d004      	beq.n	800db18 <UpdateRxSlotIdleState+0x14>
+    {
+        MacCtx.RxSlot = RX_SLOT_NONE;
+ 800db0e:	4b06      	ldr	r3, [pc, #24]	; (800db28 <UpdateRxSlotIdleState+0x24>)
+ 800db10:	2206      	movs	r2, #6
+ 800db12:	f883 2480 	strb.w	r2, [r3, #1152]	; 0x480
+ 800db16:	4770      	bx	lr
+    }
+    else
+    {
+        MacCtx.RxSlot = RX_SLOT_WIN_CLASS_C;
+ 800db18:	4b03      	ldr	r3, [pc, #12]	; (800db28 <UpdateRxSlotIdleState+0x24>)
+ 800db1a:	2202      	movs	r2, #2
+ 800db1c:	f883 2480 	strb.w	r2, [r3, #1152]	; 0x480
+    }
+}
+ 800db20:	4770      	bx	lr
+ 800db22:	bf00      	nop
+ 800db24:	20001870 	.word	0x20001870
+ 800db28:	20001fe4 	.word	0x20001fe4
+
+0800db2c <LoRaMacEnableRequests>:
+    return false;
+}
+
+static void LoRaMacEnableRequests( LoRaMacRequestHandling_t requestState )
+{
+    MacCtx.AllowRequests = requestState;
+ 800db2c:	4b01      	ldr	r3, [pc, #4]	; (800db34 <LoRaMacEnableRequests+0x8>)
+ 800db2e:	f883 0482 	strb.w	r0, [r3, #1154]	; 0x482
+}
+ 800db32:	4770      	bx	lr
+ 800db34:	20001fe4 	.word	0x20001fe4
+
+0800db38 <LoRaMacHandleIndicationEvents>:
+        MacCtx.MacFlags.Bits.MacDone = 0;
+    }
+}
+
+static void LoRaMacHandleIndicationEvents( void )
+{
+ 800db38:	b508      	push	{r3, lr}
+    // Handle MLME indication
+    if( MacCtx.MacFlags.Bits.MlmeInd == 1 )
+ 800db3a:	4b15      	ldr	r3, [pc, #84]	; (800db90 <LoRaMacHandleIndicationEvents+0x58>)
+ 800db3c:	f893 3481 	ldrb.w	r3, [r3, #1153]	; 0x481
+ 800db40:	f013 0f08 	tst.w	r3, #8
+ 800db44:	d00e      	beq.n	800db64 <LoRaMacHandleIndicationEvents+0x2c>
+    {
+        MacCtx.MacFlags.Bits.MlmeInd = 0;
+ 800db46:	4812      	ldr	r0, [pc, #72]	; (800db90 <LoRaMacHandleIndicationEvents+0x58>)
+ 800db48:	f890 3481 	ldrb.w	r3, [r0, #1153]	; 0x481
+ 800db4c:	f36f 03c3 	bfc	r3, #3, #1
+ 800db50:	f880 3481 	strb.w	r3, [r0, #1153]	; 0x481
+        MacCtx.MacPrimitives->MacMlmeIndication( &MacCtx.MlmeIndication, &MacCtx.RxStatus );
+ 800db54:	f8d0 3344 	ldr.w	r3, [r0, #836]	; 0x344
+ 800db58:	68db      	ldr	r3, [r3, #12]
+ 800db5a:	f200 417c 	addw	r1, r0, #1148	; 0x47c
+ 800db5e:	f200 405c 	addw	r0, r0, #1116	; 0x45c
+ 800db62:	4798      	blx	r3
+    }
+
+    // Handle MCPS indication
+    if( MacCtx.MacFlags.Bits.McpsInd == 1 )
+ 800db64:	4b0a      	ldr	r3, [pc, #40]	; (800db90 <LoRaMacHandleIndicationEvents+0x58>)
+ 800db66:	f893 3481 	ldrb.w	r3, [r3, #1153]	; 0x481
+ 800db6a:	f013 0f02 	tst.w	r3, #2
+ 800db6e:	d00e      	beq.n	800db8e <LoRaMacHandleIndicationEvents+0x56>
+    {
+        MacCtx.MacFlags.Bits.McpsInd = 0;
+ 800db70:	4807      	ldr	r0, [pc, #28]	; (800db90 <LoRaMacHandleIndicationEvents+0x58>)
+ 800db72:	f890 3481 	ldrb.w	r3, [r0, #1153]	; 0x481
+ 800db76:	f36f 0341 	bfc	r3, #1, #1
+ 800db7a:	f880 3481 	strb.w	r3, [r0, #1153]	; 0x481
+        MacCtx.MacPrimitives->MacMcpsIndication( &MacCtx.McpsIndication, &MacCtx.RxStatus );
+ 800db7e:	f8d0 3344 	ldr.w	r3, [r0, #836]	; 0x344
+ 800db82:	685b      	ldr	r3, [r3, #4]
+ 800db84:	f200 417c 	addw	r1, r0, #1148	; 0x47c
+ 800db88:	f500 6083 	add.w	r0, r0, #1048	; 0x418
+ 800db8c:	4798      	blx	r3
+    }
+}
+ 800db8e:	bd08      	pop	{r3, pc}
+ 800db90:	20001fe4 	.word	0x20001fe4
+
+0800db94 <LoRaMacCheckForRxAbort>:
+#endif /* LORAMAC_VERSION */
+
+static void LoRaMacCheckForRxAbort( void )
+{
+    // A error occurs during receiving
+    if( ( MacCtx.MacState & LORAMAC_RX_ABORT ) == LORAMAC_RX_ABORT )
+ 800db94:	4b07      	ldr	r3, [pc, #28]	; (800dbb4 <LoRaMacCheckForRxAbort+0x20>)
+ 800db96:	f8d3 3340 	ldr.w	r3, [r3, #832]	; 0x340
+ 800db9a:	f013 0f80 	tst.w	r3, #128	; 0x80
+ 800db9e:	d008      	beq.n	800dbb2 <LoRaMacCheckForRxAbort+0x1e>
+    {
+        MacCtx.MacState &= ~LORAMAC_RX_ABORT;
+ 800dba0:	f023 0180 	bic.w	r1, r3, #128	; 0x80
+ 800dba4:	4a03      	ldr	r2, [pc, #12]	; (800dbb4 <LoRaMacCheckForRxAbort+0x20>)
+ 800dba6:	f8c2 1340 	str.w	r1, [r2, #832]	; 0x340
+        MacCtx.MacState &= ~LORAMAC_TX_RUNNING;
+ 800dbaa:	f023 0382 	bic.w	r3, r3, #130	; 0x82
+ 800dbae:	f8c2 3340 	str.w	r3, [r2, #832]	; 0x340
+    }
+}
+ 800dbb2:	4770      	bx	lr
+ 800dbb4:	20001fe4 	.word	0x20001fe4
+
+0800dbb8 <CalculateBackOff>:
+
+static void CalculateBackOff( void )
+{
+    // Make sure that the calculation of the backoff time for the aggregated time off will only be done in
+    // case the value is zero. It will be set to zero in the function RegionNextChannel.
+    if( Nvm.MacGroup1.AggregatedTimeOff == 0 )
+ 800dbb8:	4b06      	ldr	r3, [pc, #24]	; (800dbd4 <CalculateBackOff+0x1c>)
+ 800dbba:	6b1b      	ldr	r3, [r3, #48]	; 0x30
+ 800dbbc:	b94b      	cbnz	r3, 800dbd2 <CalculateBackOff+0x1a>
+    {
+        // Update aggregated time-off. This must be an assignment and no incremental
+        // update as we do only calculate the time-off based on the last transmission
+        Nvm.MacGroup1.AggregatedTimeOff = ( MacCtx.TxTimeOnAir * Nvm.MacGroup2.AggregatedDCycle - MacCtx.TxTimeOnAir );
+ 800dbbe:	4a05      	ldr	r2, [pc, #20]	; (800dbd4 <CalculateBackOff+0x1c>)
+ 800dbc0:	f8b2 311e 	ldrh.w	r3, [r2, #286]	; 0x11e
+ 800dbc4:	4904      	ldr	r1, [pc, #16]	; (800dbd8 <CalculateBackOff+0x20>)
+ 800dbc6:	f8d1 1414 	ldr.w	r1, [r1, #1044]	; 0x414
+ 800dbca:	3b01      	subs	r3, #1
+ 800dbcc:	fb01 f303 	mul.w	r3, r1, r3
+ 800dbd0:	6313      	str	r3, [r2, #48]	; 0x30
+    }
+}
+ 800dbd2:	4770      	bx	lr
+ 800dbd4:	20001870 	.word	0x20001870
+ 800dbd8:	20001fe4 	.word	0x20001fe4
+
+0800dbdc <SetTxContinuousWave1>:
+
+    return LORAMAC_STATUS_OK;
+}
+
+static LoRaMacStatus_t SetTxContinuousWave1( uint16_t timeout, uint32_t frequency, uint8_t power )
+{
+ 800dbdc:	b508      	push	{r3, lr}
+ 800dbde:	4684      	mov	ip, r0
+ 800dbe0:	4608      	mov	r0, r1
+ 800dbe2:	4611      	mov	r1, r2
+    Radio.SetTxContinuousWave( frequency, power, timeout );
+ 800dbe4:	4b06      	ldr	r3, [pc, #24]	; (800dc00 <SetTxContinuousWave1+0x24>)
+ 800dbe6:	6bdb      	ldr	r3, [r3, #60]	; 0x3c
+ 800dbe8:	4662      	mov	r2, ip
+ 800dbea:	b249      	sxtb	r1, r1
+ 800dbec:	4798      	blx	r3
+
+    MacCtx.MacState |= LORAMAC_TX_RUNNING;
+ 800dbee:	4a05      	ldr	r2, [pc, #20]	; (800dc04 <SetTxContinuousWave1+0x28>)
+ 800dbf0:	f8d2 3340 	ldr.w	r3, [r2, #832]	; 0x340
+ 800dbf4:	f043 0302 	orr.w	r3, r3, #2
+ 800dbf8:	f8c2 3340 	str.w	r3, [r2, #832]	; 0x340
+
+    return LORAMAC_STATUS_OK;
+}
+ 800dbfc:	2000      	movs	r0, #0
+ 800dbfe:	bd08      	pop	{r3, pc}
+ 800dc00:	08018cb4 	.word	0x08018cb4
+ 800dc04:	20001fe4 	.word	0x20001fe4
+
+0800dc08 <DetermineFrameType>:
+    return LORAMAC_STATUS_OK;
+}
+
+static LoRaMacStatus_t DetermineFrameType( LoRaMacMessageData_t* macMsg, FType_t* fType )
+{
+    if( ( macMsg == NULL ) || ( fType == NULL ) )
+ 800dc08:	4602      	mov	r2, r0
+ 800dc0a:	b1f8      	cbz	r0, 800dc4c <DetermineFrameType+0x44>
+ 800dc0c:	b301      	cbz	r1, 800dc50 <DetermineFrameType+0x48>
+     * +-------+  +----------+------+-------+--------------+
+     * |   D   |  |    = 0   |   -  |  > 0  |       X      |
+     * +-------+  +----------+------+-------+--------------+
+     */
+
+    if( ( macMsg->FHDR.FCtrl.Bits.FOptsLen > 0 ) && ( macMsg->FPort > 0 ) )
+ 800dc0e:	7b03      	ldrb	r3, [r0, #12]
+ 800dc10:	f013 030f 	ands.w	r3, r3, #15
+ 800dc14:	d005      	beq.n	800dc22 <DetermineFrameType+0x1a>
+ 800dc16:	f890 0020 	ldrb.w	r0, [r0, #32]
+ 800dc1a:	b110      	cbz	r0, 800dc22 <DetermineFrameType+0x1a>
+    {
+        *fType = FRAME_TYPE_A;
+ 800dc1c:	2000      	movs	r0, #0
+ 800dc1e:	7008      	strb	r0, [r1, #0]
+ 800dc20:	4770      	bx	lr
+    }
+    else if( macMsg->FRMPayloadSize == 0 )
+ 800dc22:	f892 0028 	ldrb.w	r0, [r2, #40]	; 0x28
+ 800dc26:	b910      	cbnz	r0, 800dc2e <DetermineFrameType+0x26>
+    {
+        *fType = FRAME_TYPE_B;
+ 800dc28:	2301      	movs	r3, #1
+ 800dc2a:	700b      	strb	r3, [r1, #0]
+ 800dc2c:	4770      	bx	lr
+    }
+    else if( ( macMsg->FHDR.FCtrl.Bits.FOptsLen == 0 ) && ( macMsg->FPort == 0 ) )
+ 800dc2e:	b92b      	cbnz	r3, 800dc3c <DetermineFrameType+0x34>
+ 800dc30:	f892 0020 	ldrb.w	r0, [r2, #32]
+ 800dc34:	b910      	cbnz	r0, 800dc3c <DetermineFrameType+0x34>
+    {
+        *fType = FRAME_TYPE_C;
+ 800dc36:	2302      	movs	r3, #2
+ 800dc38:	700b      	strb	r3, [r1, #0]
+ 800dc3a:	4770      	bx	lr
+    }
+    else if( ( macMsg->FHDR.FCtrl.Bits.FOptsLen == 0 ) && ( macMsg->FPort > 0 ) )
+ 800dc3c:	b953      	cbnz	r3, 800dc54 <DetermineFrameType+0x4c>
+ 800dc3e:	f892 2020 	ldrb.w	r2, [r2, #32]
+ 800dc42:	b14a      	cbz	r2, 800dc58 <DetermineFrameType+0x50>
+    {
+        *fType = FRAME_TYPE_D;
+ 800dc44:	2203      	movs	r2, #3
+ 800dc46:	700a      	strb	r2, [r1, #0]
+    {
+        // Should never happen.
+        return LORAMAC_STATUS_ERROR;
+    }
+
+    return LORAMAC_STATUS_OK;
+ 800dc48:	4618      	mov	r0, r3
+        *fType = FRAME_TYPE_D;
+ 800dc4a:	4770      	bx	lr
+        return LORAMAC_STATUS_PARAMETER_INVALID;
+ 800dc4c:	2003      	movs	r0, #3
+ 800dc4e:	4770      	bx	lr
+ 800dc50:	2003      	movs	r0, #3
+ 800dc52:	4770      	bx	lr
+        return LORAMAC_STATUS_ERROR;
+ 800dc54:	2018      	movs	r0, #24
+ 800dc56:	4770      	bx	lr
+ 800dc58:	2018      	movs	r0, #24
+}
+ 800dc5a:	4770      	bx	lr
+
+0800dc5c <CheckRetransUnconfirmedUplink>:
+
+#if (defined( LORAMAC_VERSION ) && ( LORAMAC_VERSION == 0x01000300 ))
+static bool CheckRetransUnconfirmedUplink( void )
+{
+    // Unconfirmed uplink, when all retransmissions are done.
+    if( MacCtx.ChannelsNbTransCounter >=
+ 800dc5c:	4b0f      	ldr	r3, [pc, #60]	; (800dc9c <CheckRetransUnconfirmedUplink+0x40>)
+ 800dc5e:	f893 240c 	ldrb.w	r2, [r3, #1036]	; 0x40c
+        Nvm.MacGroup2.MacParams.ChannelsNbTrans )
+ 800dc62:	4b0f      	ldr	r3, [pc, #60]	; (800dca0 <CheckRetransUnconfirmedUplink+0x44>)
+ 800dc64:	f893 3068 	ldrb.w	r3, [r3, #104]	; 0x68
+    if( MacCtx.ChannelsNbTransCounter >=
+ 800dc68:	429a      	cmp	r2, r3
+ 800dc6a:	d20f      	bcs.n	800dc8c <CheckRetransUnconfirmedUplink+0x30>
+    {
+        return true;
+    }
+    else if( MacCtx.MacFlags.Bits.McpsInd == 1 )
+ 800dc6c:	4b0b      	ldr	r3, [pc, #44]	; (800dc9c <CheckRetransUnconfirmedUplink+0x40>)
+ 800dc6e:	f893 3481 	ldrb.w	r3, [r3, #1153]	; 0x481
+ 800dc72:	f013 0f02 	tst.w	r3, #2
+ 800dc76:	d00b      	beq.n	800dc90 <CheckRetransUnconfirmedUplink+0x34>
+    {
+        // For Class A stop in each case
+        if( Nvm.MacGroup2.DeviceClass == CLASS_A )
+ 800dc78:	4b09      	ldr	r3, [pc, #36]	; (800dca0 <CheckRetransUnconfirmedUplink+0x44>)
+ 800dc7a:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 800dc7e:	b14b      	cbz	r3, 800dc94 <CheckRetransUnconfirmedUplink+0x38>
+        {
+            return true;
+        }
+        else
+        {// For Class B & C stop only if the frame was received in RX1 window
+            if( MacCtx.RxStatus.RxSlot == RX_SLOT_WIN_1 )
+ 800dc80:	4b06      	ldr	r3, [pc, #24]	; (800dc9c <CheckRetransUnconfirmedUplink+0x40>)
+ 800dc82:	f893 347f 	ldrb.w	r3, [r3, #1151]	; 0x47f
+ 800dc86:	b13b      	cbz	r3, 800dc98 <CheckRetransUnconfirmedUplink+0x3c>
+            {
+                return true;
+            }
+        }
+    }
+    return false;
+ 800dc88:	2000      	movs	r0, #0
+ 800dc8a:	4770      	bx	lr
+        return true;
+ 800dc8c:	2001      	movs	r0, #1
+ 800dc8e:	4770      	bx	lr
+    return false;
+ 800dc90:	2000      	movs	r0, #0
+ 800dc92:	4770      	bx	lr
+            return true;
+ 800dc94:	2001      	movs	r0, #1
+ 800dc96:	4770      	bx	lr
+                return true;
+ 800dc98:	2001      	movs	r0, #1
+}
+ 800dc9a:	4770      	bx	lr
+ 800dc9c:	20001fe4 	.word	0x20001fe4
+ 800dca0:	20001870 	.word	0x20001870
+
+0800dca4 <CheckRetransConfirmedUplink>:
+
+static bool CheckRetransConfirmedUplink( void )
+{
+    // Confirmed uplink, when all retransmissions ( tries to get a ack ) are done.
+    if( MacCtx.AckTimeoutRetriesCounter >=
+ 800dca4:	4b0a      	ldr	r3, [pc, #40]	; (800dcd0 <CheckRetransConfirmedUplink+0x2c>)
+ 800dca6:	f893 240e 	ldrb.w	r2, [r3, #1038]	; 0x40e
+        MacCtx.AckTimeoutRetries )
+ 800dcaa:	f893 340d 	ldrb.w	r3, [r3, #1037]	; 0x40d
+    if( MacCtx.AckTimeoutRetriesCounter >=
+ 800dcae:	429a      	cmp	r2, r3
+ 800dcb0:	d209      	bcs.n	800dcc6 <CheckRetransConfirmedUplink+0x22>
+    {
+        return true;
+    }
+    else if( MacCtx.MacFlags.Bits.McpsInd == 1 )
+ 800dcb2:	4b07      	ldr	r3, [pc, #28]	; (800dcd0 <CheckRetransConfirmedUplink+0x2c>)
+ 800dcb4:	f893 3481 	ldrb.w	r3, [r3, #1153]	; 0x481
+ 800dcb8:	f013 0f02 	tst.w	r3, #2
+ 800dcbc:	d005      	beq.n	800dcca <CheckRetransConfirmedUplink+0x26>
+    {
+        if( MacCtx.McpsConfirm.AckReceived == true )
+ 800dcbe:	4b04      	ldr	r3, [pc, #16]	; (800dcd0 <CheckRetransConfirmedUplink+0x2c>)
+ 800dcc0:	f893 0438 	ldrb.w	r0, [r3, #1080]	; 0x438
+ 800dcc4:	4770      	bx	lr
+        return true;
+ 800dcc6:	2001      	movs	r0, #1
+ 800dcc8:	4770      	bx	lr
+        {
+            return true;
+        }
+    }
+    return false;
+ 800dcca:	2000      	movs	r0, #0
+}
+ 800dccc:	4770      	bx	lr
+ 800dcce:	bf00      	nop
+ 800dcd0:	20001fe4 	.word	0x20001fe4
+
+0800dcd4 <StopRetransmission>:
+            }
+        }
+    }
+#endif /* LORAMAC_VERSION */
+
+    if( ( MacCtx.MacFlags.Bits.McpsInd == 0 ) ||
+ 800dcd4:	4b11      	ldr	r3, [pc, #68]	; (800dd1c <StopRetransmission+0x48>)
+ 800dcd6:	f893 3481 	ldrb.w	r3, [r3, #1153]	; 0x481
+ 800dcda:	f013 0f02 	tst.w	r3, #2
+ 800dcde:	d004      	beq.n	800dcea <StopRetransmission+0x16>
+        ( ( MacCtx.RxStatus.RxSlot != RX_SLOT_WIN_1 ) &&
+ 800dce0:	4b0e      	ldr	r3, [pc, #56]	; (800dd1c <StopRetransmission+0x48>)
+ 800dce2:	f893 347f 	ldrb.w	r3, [r3, #1151]	; 0x47f
+    if( ( MacCtx.MacFlags.Bits.McpsInd == 0 ) ||
+ 800dce6:	2b01      	cmp	r3, #1
+ 800dce8:	d907      	bls.n	800dcfa <StopRetransmission+0x26>
+          ( MacCtx.RxStatus.RxSlot != RX_SLOT_WIN_2 ) ) )
+    {   // Maximum repetitions without downlink. Increase ADR Ack counter.
+        // Only process the case when the MAC did not receive a downlink.
+        if( Nvm.MacGroup2.AdrCtrlOn == true )
+ 800dcea:	4b0d      	ldr	r3, [pc, #52]	; (800dd20 <StopRetransmission+0x4c>)
+ 800dcec:	f893 311a 	ldrb.w	r3, [r3, #282]	; 0x11a
+ 800dcf0:	b11b      	cbz	r3, 800dcfa <StopRetransmission+0x26>
+        {
+#if (defined( LORAMAC_VERSION ) && ( LORAMAC_VERSION == 0x01000300 ))
+            Nvm.MacGroup1.AdrAckCounter++;
+ 800dcf2:	4a0b      	ldr	r2, [pc, #44]	; (800dd20 <StopRetransmission+0x4c>)
+ 800dcf4:	6a93      	ldr	r3, [r2, #40]	; 0x28
+ 800dcf6:	3301      	adds	r3, #1
+ 800dcf8:	6293      	str	r3, [r2, #40]	; 0x28
+            Nvm.MacGroup1.AdrAckCounter = IncreaseAdrAckCounter( Nvm.MacGroup1.AdrAckCounter );
+#endif /* LORAMAC_VERSION */
+        }
+    }
+
+    MacCtx.ChannelsNbTransCounter = 0;
+ 800dcfa:	4b08      	ldr	r3, [pc, #32]	; (800dd1c <StopRetransmission+0x48>)
+ 800dcfc:	2200      	movs	r2, #0
+ 800dcfe:	f883 240c 	strb.w	r2, [r3, #1036]	; 0x40c
+    MacCtx.NodeAckRequested = false;
+ 800dd02:	f883 2410 	strb.w	r2, [r3, #1040]	; 0x410
+#if (defined( LORAMAC_VERSION ) && ( LORAMAC_VERSION == 0x01000300 ))
+    MacCtx.AckTimeoutRetry = false;
+ 800dd06:	f883 240f 	strb.w	r2, [r3, #1039]	; 0x40f
+#elif (defined( LORAMAC_VERSION ) && (( LORAMAC_VERSION == 0x01000400 ) || ( LORAMAC_VERSION == 0x01010100 )))
+    MacCtx.RetransmitTimeoutRetry = false;
+#endif /* LORAMAC_VERSION */
+    MacCtx.MacState &= ~LORAMAC_TX_RUNNING;
+ 800dd0a:	f8d3 2340 	ldr.w	r2, [r3, #832]	; 0x340
+ 800dd0e:	f022 0202 	bic.w	r2, r2, #2
+ 800dd12:	f8c3 2340 	str.w	r2, [r3, #832]	; 0x340
+
+    return true;
+}
+ 800dd16:	2001      	movs	r0, #1
+ 800dd18:	4770      	bx	lr
+ 800dd1a:	bf00      	nop
+ 800dd1c:	20001fe4 	.word	0x20001fe4
+ 800dd20:	20001870 	.word	0x20001870
+
+0800dd24 <OnMacProcessNotify>:
+
+static void OnMacProcessNotify( void )
+{
+ 800dd24:	b508      	push	{r3, lr}
+    if( ( MacCtx.MacCallbacks != NULL ) && ( MacCtx.MacCallbacks->MacProcessNotify != NULL ) )
+ 800dd26:	4b04      	ldr	r3, [pc, #16]	; (800dd38 <OnMacProcessNotify+0x14>)
+ 800dd28:	f8d3 3348 	ldr.w	r3, [r3, #840]	; 0x348
+ 800dd2c:	b113      	cbz	r3, 800dd34 <OnMacProcessNotify+0x10>
+ 800dd2e:	695b      	ldr	r3, [r3, #20]
+ 800dd30:	b103      	cbz	r3, 800dd34 <OnMacProcessNotify+0x10>
+    {
+        MacCtx.MacCallbacks->MacProcessNotify( );
+ 800dd32:	4798      	blx	r3
+    }
+}
+ 800dd34:	bd08      	pop	{r3, pc}
+ 800dd36:	bf00      	nop
+ 800dd38:	20001fe4 	.word	0x20001fe4
+
+0800dd3c <OnRadioRxError>:
+{
+ 800dd3c:	b508      	push	{r3, lr}
+    LoRaMacRadioEvents.Events.RxError = 1;
+ 800dd3e:	4a04      	ldr	r2, [pc, #16]	; (800dd50 <OnRadioRxError+0x14>)
+ 800dd40:	7813      	ldrb	r3, [r2, #0]
+ 800dd42:	f043 0302 	orr.w	r3, r3, #2
+ 800dd46:	7013      	strb	r3, [r2, #0]
+    OnMacProcessNotify( );
+ 800dd48:	f7ff ffec 	bl	800dd24 <OnMacProcessNotify>
+}
+ 800dd4c:	bd08      	pop	{r3, pc}
+ 800dd4e:	bf00      	nop
+ 800dd50:	20001fe0 	.word	0x20001fe0
+
+0800dd54 <CallNvmDataChangeCallback>:
+
+static void CallNvmDataChangeCallback( uint16_t notifyFlags )
+{
+ 800dd54:	b508      	push	{r3, lr}
+    if( ( MacCtx.MacCallbacks != NULL ) && ( MacCtx.MacCallbacks->NvmDataChange  != NULL ) )
+ 800dd56:	4b04      	ldr	r3, [pc, #16]	; (800dd68 <CallNvmDataChangeCallback+0x14>)
+ 800dd58:	f8d3 3348 	ldr.w	r3, [r3, #840]	; 0x348
+ 800dd5c:	b113      	cbz	r3, 800dd64 <CallNvmDataChangeCallback+0x10>
+ 800dd5e:	691b      	ldr	r3, [r3, #16]
+ 800dd60:	b103      	cbz	r3, 800dd64 <CallNvmDataChangeCallback+0x10>
+    {
+        MacCtx.MacCallbacks->NvmDataChange ( notifyFlags );
+ 800dd62:	4798      	blx	r3
+    }
+}
+ 800dd64:	bd08      	pop	{r3, pc}
+ 800dd66:	bf00      	nop
+ 800dd68:	20001fe4 	.word	0x20001fe4
+
+0800dd6c <IsRequestPending>:
+}
+#endif /* LORAMAC_VERSION */
+
+static uint8_t IsRequestPending( void )
+{
+    if( ( MacCtx.MacFlags.Bits.MlmeReq == 1 ) ||
+ 800dd6c:	4b04      	ldr	r3, [pc, #16]	; (800dd80 <IsRequestPending+0x14>)
+ 800dd6e:	f893 0481 	ldrb.w	r0, [r3, #1153]	; 0x481
+ 800dd72:	f010 0005 	ands.w	r0, r0, #5
+ 800dd76:	d100      	bne.n	800dd7a <IsRequestPending+0xe>
+        ( MacCtx.MacFlags.Bits.McpsReq == 1 ) )
+    {
+        return 1;
+    }
+    return 0;
+}
+ 800dd78:	4770      	bx	lr
+        return 1;
+ 800dd7a:	2001      	movs	r0, #1
+ 800dd7c:	e7fc      	b.n	800dd78 <IsRequestPending+0xc>
+ 800dd7e:	bf00      	nop
+ 800dd80:	20001fe4 	.word	0x20001fe4
+
+0800dd84 <AckTimeoutRetriesProcess>:
+    if( MacCtx.AckTimeoutRetriesCounter < MacCtx.AckTimeoutRetries )
+ 800dd84:	4a13      	ldr	r2, [pc, #76]	; (800ddd4 <AckTimeoutRetriesProcess+0x50>)
+ 800dd86:	f892 340e 	ldrb.w	r3, [r2, #1038]	; 0x40e
+ 800dd8a:	f892 240d 	ldrb.w	r2, [r2, #1037]	; 0x40d
+ 800dd8e:	4293      	cmp	r3, r2
+ 800dd90:	d207      	bcs.n	800dda2 <AckTimeoutRetriesProcess+0x1e>
+        MacCtx.AckTimeoutRetriesCounter++;
+ 800dd92:	3301      	adds	r3, #1
+ 800dd94:	b2db      	uxtb	r3, r3
+ 800dd96:	4a0f      	ldr	r2, [pc, #60]	; (800ddd4 <AckTimeoutRetriesProcess+0x50>)
+ 800dd98:	f882 340e 	strb.w	r3, [r2, #1038]	; 0x40e
+        if( ( MacCtx.AckTimeoutRetriesCounter % 2 ) == 1 )
+ 800dd9c:	f013 0f01 	tst.w	r3, #1
+ 800dda0:	d100      	bne.n	800dda4 <AckTimeoutRetriesProcess+0x20>
+ 800dda2:	4770      	bx	lr
+{
+ 800dda4:	b510      	push	{r4, lr}
+ 800dda6:	b084      	sub	sp, #16
+            getPhy.Attribute = PHY_NEXT_LOWER_TX_DR;
+ 800dda8:	2322      	movs	r3, #34	; 0x22
+ 800ddaa:	f88d 3008 	strb.w	r3, [sp, #8]
+            getPhy.UplinkDwellTime = Nvm.MacGroup2.MacParams.UplinkDwellTime;
+ 800ddae:	4c0a      	ldr	r4, [pc, #40]	; (800ddd8 <AckTimeoutRetriesProcess+0x54>)
+ 800ddb0:	f894 307c 	ldrb.w	r3, [r4, #124]	; 0x7c
+ 800ddb4:	f88d 300a 	strb.w	r3, [sp, #10]
+            getPhy.Datarate = Nvm.MacGroup1.ChannelsDatarate;
+ 800ddb8:	f994 3039 	ldrsb.w	r3, [r4, #57]	; 0x39
+ 800ddbc:	f88d 3009 	strb.w	r3, [sp, #9]
+            phyParam = RegionGetPhyParam( Nvm.MacGroup2.Region, &getPhy );
+ 800ddc0:	a902      	add	r1, sp, #8
+ 800ddc2:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800ddc6:	f004 f9da 	bl	801217e <RegionGetPhyParam>
+ 800ddca:	9001      	str	r0, [sp, #4]
+            Nvm.MacGroup1.ChannelsDatarate = phyParam.Value;
+ 800ddcc:	f884 0039 	strb.w	r0, [r4, #57]	; 0x39
+}
+ 800ddd0:	b004      	add	sp, #16
+ 800ddd2:	bd10      	pop	{r4, pc}
+ 800ddd4:	20001fe4 	.word	0x20001fe4
+ 800ddd8:	20001870 	.word	0x20001870
+
+0800dddc <GetMaxAppPayloadWithoutFOptsLength>:
+{
+ 800dddc:	b500      	push	{lr}
+ 800ddde:	b085      	sub	sp, #20
+    getPhy.UplinkDwellTime = Nvm.MacGroup2.MacParams.UplinkDwellTime;
+ 800dde0:	4b0d      	ldr	r3, [pc, #52]	; (800de18 <GetMaxAppPayloadWithoutFOptsLength+0x3c>)
+ 800dde2:	f893 207c 	ldrb.w	r2, [r3, #124]	; 0x7c
+ 800dde6:	f88d 200a 	strb.w	r2, [sp, #10]
+    getPhy.Datarate = datarate;
+ 800ddea:	f88d 0009 	strb.w	r0, [sp, #9]
+    getPhy.Attribute = PHY_MAX_PAYLOAD;
+ 800ddee:	220d      	movs	r2, #13
+ 800ddf0:	f88d 2008 	strb.w	r2, [sp, #8]
+    if( Nvm.MacGroup2.MacParams.RepeaterSupport == true )
+ 800ddf4:	f893 308c 	ldrb.w	r3, [r3, #140]	; 0x8c
+ 800ddf8:	b113      	cbz	r3, 800de00 <GetMaxAppPayloadWithoutFOptsLength+0x24>
+        getPhy.Attribute = PHY_MAX_PAYLOAD_REPEATER;
+ 800ddfa:	230e      	movs	r3, #14
+ 800ddfc:	f88d 3008 	strb.w	r3, [sp, #8]
+    phyParam = RegionGetPhyParam( Nvm.MacGroup2.Region, &getPhy );
+ 800de00:	a902      	add	r1, sp, #8
+ 800de02:	4b05      	ldr	r3, [pc, #20]	; (800de18 <GetMaxAppPayloadWithoutFOptsLength+0x3c>)
+ 800de04:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 800de08:	f004 f9b9 	bl	801217e <RegionGetPhyParam>
+ 800de0c:	9001      	str	r0, [sp, #4]
+}
+ 800de0e:	b2c0      	uxtb	r0, r0
+ 800de10:	b005      	add	sp, #20
+ 800de12:	f85d fb04 	ldr.w	pc, [sp], #4
+ 800de16:	bf00      	nop
+ 800de18:	20001870 	.word	0x20001870
+
+0800de1c <ValidatePayloadLength>:
+{
+ 800de1c:	b538      	push	{r3, r4, r5, lr}
+ 800de1e:	4605      	mov	r5, r0
+ 800de20:	4614      	mov	r4, r2
+    maxN = GetMaxAppPayloadWithoutFOptsLength( datarate );
+ 800de22:	4608      	mov	r0, r1
+ 800de24:	f7ff ffda 	bl	800dddc <GetMaxAppPayloadWithoutFOptsLength>
+ 800de28:	b283      	uxth	r3, r0
+    payloadSize = ( lenN + fOptsLen );
+ 800de2a:	1962      	adds	r2, r4, r5
+    if( ( payloadSize <= maxN ) && ( payloadSize <= LORAMAC_PHY_MAXPAYLOAD ) )
+ 800de2c:	4293      	cmp	r3, r2
+ 800de2e:	d303      	bcc.n	800de38 <ValidatePayloadLength+0x1c>
+ 800de30:	2aff      	cmp	r2, #255	; 0xff
+ 800de32:	d903      	bls.n	800de3c <ValidatePayloadLength+0x20>
+    return false;
+ 800de34:	2000      	movs	r0, #0
+ 800de36:	e000      	b.n	800de3a <ValidatePayloadLength+0x1e>
+ 800de38:	2000      	movs	r0, #0
+}
+ 800de3a:	bd38      	pop	{r3, r4, r5, pc}
+        return true;
+ 800de3c:	2001      	movs	r0, #1
+ 800de3e:	e7fc      	b.n	800de3a <ValidatePayloadLength+0x1e>
+
+0800de40 <ProcessRadioTxDone>:
+{
+ 800de40:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 800de42:	b08f      	sub	sp, #60	; 0x3c
+    if( Nvm.MacGroup2.DeviceClass != CLASS_C )
+ 800de44:	4b40      	ldr	r3, [pc, #256]	; (800df48 <ProcessRadioTxDone+0x108>)
+ 800de46:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 800de4a:	2b02      	cmp	r3, #2
+ 800de4c:	d002      	beq.n	800de54 <ProcessRadioTxDone+0x14>
+        Radio.Sleep( );
+ 800de4e:	4b3f      	ldr	r3, [pc, #252]	; (800df4c <ProcessRadioTxDone+0x10c>)
+ 800de50:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800de52:	4798      	blx	r3
+  __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
+ 800de54:	f3ef 8710 	mrs	r7, PRIMASK
+  __ASM volatile ("cpsid i" : : : "memory");
+ 800de58:	b672      	cpsid	i
+    uint32_t offset = TimerGetCurrentTime( ) - TxDoneParams.CurTime;
+ 800de5a:	f009 f97f 	bl	801715c <UTIL_TIMER_GetCurrentTime>
+ 800de5e:	4b3c      	ldr	r3, [pc, #240]	; (800df50 <ProcessRadioTxDone+0x110>)
+ 800de60:	681d      	ldr	r5, [r3, #0]
+    TimerSetValue( &MacCtx.RxWindowTimer1, MacCtx.RxWindow1Delay - offset );
+ 800de62:	4c3c      	ldr	r4, [pc, #240]	; (800df54 <ProcessRadioTxDone+0x114>)
+ 800de64:	f8d4 13b0 	ldr.w	r1, [r4, #944]	; 0x3b0
+ 800de68:	1a2d      	subs	r5, r5, r0
+ 800de6a:	f504 7660 	add.w	r6, r4, #896	; 0x380
+ 800de6e:	4429      	add	r1, r5
+ 800de70:	4630      	mov	r0, r6
+ 800de72:	f009 fa53 	bl	801731c <UTIL_TIMER_SetPeriod>
+    TimerStart( &MacCtx.RxWindowTimer1 );
+ 800de76:	4630      	mov	r0, r6
+ 800de78:	f009 fa0a 	bl	8017290 <UTIL_TIMER_Start>
+    TimerSetValue( &MacCtx.RxWindowTimer2, MacCtx.RxWindow2Delay - offset );
+ 800de7c:	f8d4 13b4 	ldr.w	r1, [r4, #948]	; 0x3b4
+ 800de80:	f504 7466 	add.w	r4, r4, #920	; 0x398
+ 800de84:	4429      	add	r1, r5
+ 800de86:	4620      	mov	r0, r4
+ 800de88:	f009 fa48 	bl	801731c <UTIL_TIMER_SetPeriod>
+    TimerStart( &MacCtx.RxWindowTimer2 );
+ 800de8c:	4620      	mov	r0, r4
+ 800de8e:	f009 f9ff 	bl	8017290 <UTIL_TIMER_Start>
+  __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
+ 800de92:	f387 8810 	msr	PRIMASK, r7
+    if( ( Nvm.MacGroup2.DeviceClass == CLASS_C ) || ( MacCtx.NodeAckRequested == true ) )
+ 800de96:	4b2c      	ldr	r3, [pc, #176]	; (800df48 <ProcessRadioTxDone+0x108>)
+ 800de98:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 800de9c:	2b02      	cmp	r3, #2
+ 800de9e:	d004      	beq.n	800deaa <ProcessRadioTxDone+0x6a>
+ 800dea0:	f5a4 7366 	sub.w	r3, r4, #920	; 0x398
+ 800dea4:	f893 3410 	ldrb.w	r3, [r3, #1040]	; 0x410
+ 800dea8:	b1ab      	cbz	r3, 800ded6 <ProcessRadioTxDone+0x96>
+        getPhy.Attribute = PHY_ACK_TIMEOUT;
+ 800deaa:	2316      	movs	r3, #22
+ 800deac:	f88d 3028 	strb.w	r3, [sp, #40]	; 0x28
+        phyParam = RegionGetPhyParam( Nvm.MacGroup2.Region, &getPhy );
+ 800deb0:	a90a      	add	r1, sp, #40	; 0x28
+ 800deb2:	4b25      	ldr	r3, [pc, #148]	; (800df48 <ProcessRadioTxDone+0x108>)
+ 800deb4:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 800deb8:	f004 f961 	bl	801217e <RegionGetPhyParam>
+ 800debc:	9009      	str	r0, [sp, #36]	; 0x24
+        TimerSetValue( &MacCtx.AckTimeoutTimer, MacCtx.RxWindow2Delay + phyParam.Value );
+ 800debe:	4c25      	ldr	r4, [pc, #148]	; (800df54 <ProcessRadioTxDone+0x114>)
+ 800dec0:	f8d4 13b4 	ldr.w	r1, [r4, #948]	; 0x3b4
+ 800dec4:	f504 747d 	add.w	r4, r4, #1012	; 0x3f4
+ 800dec8:	4401      	add	r1, r0
+ 800deca:	4620      	mov	r0, r4
+ 800decc:	f009 fa26 	bl	801731c <UTIL_TIMER_SetPeriod>
+        TimerStart( &MacCtx.AckTimeoutTimer );
+ 800ded0:	4620      	mov	r0, r4
+ 800ded2:	f009 f9dd 	bl	8017290 <UTIL_TIMER_Start>
+    Nvm.MacGroup1.LastTxDoneTime = TxDoneParams.CurTime;
+ 800ded6:	4b1e      	ldr	r3, [pc, #120]	; (800df50 <ProcessRadioTxDone+0x110>)
+ 800ded8:	681b      	ldr	r3, [r3, #0]
+ 800deda:	4c1b      	ldr	r4, [pc, #108]	; (800df48 <ProcessRadioTxDone+0x108>)
+ 800dedc:	62e3      	str	r3, [r4, #44]	; 0x2c
+    txDone.Channel = MacCtx.Channel;
+ 800dede:	4f1d      	ldr	r7, [pc, #116]	; (800df54 <ProcessRadioTxDone+0x114>)
+ 800dee0:	f897 2411 	ldrb.w	r2, [r7, #1041]	; 0x411
+ 800dee4:	f88d 2010 	strb.w	r2, [sp, #16]
+    txDone.LastTxDoneTime = TxDoneParams.CurTime;
+ 800dee8:	9305      	str	r3, [sp, #20]
+    txDone.ElapsedTimeSinceStartUp = SysTimeSub( SysTimeGetMcuTime( ), Nvm.MacGroup2.InitializationTime );
+ 800deea:	ae0c      	add	r6, sp, #48	; 0x30
+ 800deec:	4630      	mov	r0, r6
+ 800deee:	f009 f8a9 	bl	8017044 <SysTimeGetMcuTime>
+ 800def2:	ad02      	add	r5, sp, #8
+ 800def4:	f8d4 3124 	ldr.w	r3, [r4, #292]	; 0x124
+ 800def8:	9300      	str	r3, [sp, #0]
+ 800defa:	f8d4 3120 	ldr.w	r3, [r4, #288]	; 0x120
+ 800defe:	e896 0006 	ldmia.w	r6, {r1, r2}
+ 800df02:	4628      	mov	r0, r5
+ 800df04:	f009 f83b 	bl	8016f7e <SysTimeSub>
+ 800df08:	ab07      	add	r3, sp, #28
+ 800df0a:	e895 0003 	ldmia.w	r5, {r0, r1}
+ 800df0e:	e883 0003 	stmia.w	r3, {r0, r1}
+    txDone.LastTxAirTime = MacCtx.TxTimeOnAir;
+ 800df12:	f8d7 3414 	ldr.w	r3, [r7, #1044]	; 0x414
+ 800df16:	9306      	str	r3, [sp, #24]
+    txDone.Joined  = true;
+ 800df18:	2301      	movs	r3, #1
+ 800df1a:	f88d 3011 	strb.w	r3, [sp, #17]
+    if( Nvm.MacGroup2.NetworkActivation == ACTIVATION_TYPE_NONE )
+ 800df1e:	f894 312c 	ldrb.w	r3, [r4, #300]	; 0x12c
+ 800df22:	b90b      	cbnz	r3, 800df28 <ProcessRadioTxDone+0xe8>
+        txDone.Joined  = false;
+ 800df24:	f88d 3011 	strb.w	r3, [sp, #17]
+    RegionSetBandTxDone( Nvm.MacGroup2.Region, &txDone );
+ 800df28:	a904      	add	r1, sp, #16
+ 800df2a:	4b07      	ldr	r3, [pc, #28]	; (800df48 <ProcessRadioTxDone+0x108>)
+ 800df2c:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 800df30:	f004 f935 	bl	801219e <RegionSetBandTxDone>
+    if( MacCtx.NodeAckRequested == false )
+ 800df34:	4b07      	ldr	r3, [pc, #28]	; (800df54 <ProcessRadioTxDone+0x114>)
+ 800df36:	f893 3410 	ldrb.w	r3, [r3, #1040]	; 0x410
+ 800df3a:	b91b      	cbnz	r3, 800df44 <ProcessRadioTxDone+0x104>
+        MacCtx.McpsConfirm.Status = LORAMAC_EVENT_INFO_STATUS_OK;
+ 800df3c:	4b05      	ldr	r3, [pc, #20]	; (800df54 <ProcessRadioTxDone+0x114>)
+ 800df3e:	2200      	movs	r2, #0
+ 800df40:	f883 2435 	strb.w	r2, [r3, #1077]	; 0x435
+}
+ 800df44:	b00f      	add	sp, #60	; 0x3c
+ 800df46:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 800df48:	20001870 	.word	0x20001870
+ 800df4c:	08018cb4 	.word	0x08018cb4
+ 800df50:	200024fc 	.word	0x200024fc
+ 800df54:	20001fe4 	.word	0x20001fe4
+
+0800df58 <OnAckTimeoutTimerEvent>:
+{
+ 800df58:	b510      	push	{r4, lr}
+    TimerStop( &MacCtx.AckTimeoutTimer );
+ 800df5a:	4c0d      	ldr	r4, [pc, #52]	; (800df90 <OnAckTimeoutTimerEvent+0x38>)
+ 800df5c:	f504 707d 	add.w	r0, r4, #1012	; 0x3f4
+ 800df60:	f009 f93c 	bl	80171dc <UTIL_TIMER_Stop>
+    if( MacCtx.NodeAckRequested == true )
+ 800df64:	f894 3410 	ldrb.w	r3, [r4, #1040]	; 0x410
+ 800df68:	b113      	cbz	r3, 800df70 <OnAckTimeoutTimerEvent+0x18>
+        MacCtx.AckTimeoutRetry = true;
+ 800df6a:	2201      	movs	r2, #1
+ 800df6c:	f884 240f 	strb.w	r2, [r4, #1039]	; 0x40f
+    if( Nvm.MacGroup2.DeviceClass == CLASS_C )
+ 800df70:	4b08      	ldr	r3, [pc, #32]	; (800df94 <OnAckTimeoutTimerEvent+0x3c>)
+ 800df72:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 800df76:	2b02      	cmp	r3, #2
+ 800df78:	d002      	beq.n	800df80 <OnAckTimeoutTimerEvent+0x28>
+    OnMacProcessNotify( );
+ 800df7a:	f7ff fed3 	bl	800dd24 <OnMacProcessNotify>
+}
+ 800df7e:	bd10      	pop	{r4, pc}
+        MacCtx.MacFlags.Bits.MacDone = 1;
+ 800df80:	4a03      	ldr	r2, [pc, #12]	; (800df90 <OnAckTimeoutTimerEvent+0x38>)
+ 800df82:	f892 3481 	ldrb.w	r3, [r2, #1153]	; 0x481
+ 800df86:	f043 0310 	orr.w	r3, r3, #16
+ 800df8a:	f882 3481 	strb.w	r3, [r2, #1153]	; 0x481
+ 800df8e:	e7f4      	b.n	800df7a <OnAckTimeoutTimerEvent+0x22>
+ 800df90:	20001fe4 	.word	0x20001fe4
+ 800df94:	20001870 	.word	0x20001870
+
+0800df98 <PrepareRxDoneAbort>:
+{
+ 800df98:	b508      	push	{r3, lr}
+    MacCtx.MacState |= LORAMAC_RX_ABORT;
+ 800df9a:	4b0e      	ldr	r3, [pc, #56]	; (800dfd4 <PrepareRxDoneAbort+0x3c>)
+ 800df9c:	f8d3 2340 	ldr.w	r2, [r3, #832]	; 0x340
+ 800dfa0:	f042 0280 	orr.w	r2, r2, #128	; 0x80
+ 800dfa4:	f8c3 2340 	str.w	r2, [r3, #832]	; 0x340
+    if( MacCtx.NodeAckRequested == true )
+ 800dfa8:	f893 3410 	ldrb.w	r3, [r3, #1040]	; 0x410
+ 800dfac:	b973      	cbnz	r3, 800dfcc <PrepareRxDoneAbort+0x34>
+    MacCtx.MacFlags.Bits.McpsInd = 1;
+ 800dfae:	4b09      	ldr	r3, [pc, #36]	; (800dfd4 <PrepareRxDoneAbort+0x3c>)
+ 800dfb0:	f893 2481 	ldrb.w	r2, [r3, #1153]	; 0x481
+ 800dfb4:	f042 0202 	orr.w	r2, r2, #2
+ 800dfb8:	f883 2481 	strb.w	r2, [r3, #1153]	; 0x481
+    MacCtx.MacFlags.Bits.MacDone = 1;
+ 800dfbc:	b2d2      	uxtb	r2, r2
+ 800dfbe:	f042 0210 	orr.w	r2, r2, #16
+ 800dfc2:	f883 2481 	strb.w	r2, [r3, #1153]	; 0x481
+    UpdateRxSlotIdleState( );
+ 800dfc6:	f7ff fd9d 	bl	800db04 <UpdateRxSlotIdleState>
+}
+ 800dfca:	bd08      	pop	{r3, pc}
+        OnAckTimeoutTimerEvent( NULL );
+ 800dfcc:	2000      	movs	r0, #0
+ 800dfce:	f7ff ffc3 	bl	800df58 <OnAckTimeoutTimerEvent>
+ 800dfd2:	e7ec      	b.n	800dfae <PrepareRxDoneAbort+0x16>
+ 800dfd4:	20001fe4 	.word	0x20001fe4
+
+0800dfd8 <LoRaMacCheckForBeaconAcquisition>:
+{
+ 800dfd8:	b508      	push	{r3, lr}
+    if( ( LoRaMacConfirmQueueIsCmdActive( MLME_BEACON_ACQUISITION ) == true ) &&
+ 800dfda:	200c      	movs	r0, #12
+ 800dfdc:	f003 fb40 	bl	8011660 <LoRaMacConfirmQueueIsCmdActive>
+ 800dfe0:	b188      	cbz	r0, 800e006 <LoRaMacCheckForBeaconAcquisition+0x2e>
+        ( MacCtx.MacFlags.Bits.McpsReq == 0 ) )
+ 800dfe2:	4b0b      	ldr	r3, [pc, #44]	; (800e010 <LoRaMacCheckForBeaconAcquisition+0x38>)
+ 800dfe4:	f893 0481 	ldrb.w	r0, [r3, #1153]	; 0x481
+    if( ( LoRaMacConfirmQueueIsCmdActive( MLME_BEACON_ACQUISITION ) == true ) &&
+ 800dfe8:	f010 0f01 	tst.w	r0, #1
+ 800dfec:	d10d      	bne.n	800e00a <LoRaMacCheckForBeaconAcquisition+0x32>
+        if( MacCtx.MacFlags.Bits.MlmeReq == 1 )
+ 800dfee:	f010 0004 	ands.w	r0, r0, #4
+ 800dff2:	d009      	beq.n	800e008 <LoRaMacCheckForBeaconAcquisition+0x30>
+            MacCtx.MacState &= ~LORAMAC_TX_RUNNING;
+ 800dff4:	461a      	mov	r2, r3
+ 800dff6:	f8d3 3340 	ldr.w	r3, [r3, #832]	; 0x340
+ 800dffa:	f023 0302 	bic.w	r3, r3, #2
+ 800dffe:	f8c2 3340 	str.w	r3, [r2, #832]	; 0x340
+            return 0x01;
+ 800e002:	2001      	movs	r0, #1
+ 800e004:	e000      	b.n	800e008 <LoRaMacCheckForBeaconAcquisition+0x30>
+    return 0x00;
+ 800e006:	2000      	movs	r0, #0
+}
+ 800e008:	bd08      	pop	{r3, pc}
+    return 0x00;
+ 800e00a:	2000      	movs	r0, #0
+ 800e00c:	e7fc      	b.n	800e008 <LoRaMacCheckForBeaconAcquisition+0x30>
+ 800e00e:	bf00      	nop
+ 800e010:	20001fe4 	.word	0x20001fe4
+
+0800e014 <GetFCntDown>:
+{
+ 800e014:	b538      	push	{r3, r4, r5, lr}
+ 800e016:	9c05      	ldr	r4, [sp, #20]
+ 800e018:	9d06      	ldr	r5, [sp, #24]
+    if( ( macMsg == NULL ) || ( fCntID == NULL ) ||
+ 800e01a:	b302      	cbz	r2, 800e05e <GetFCntDown+0x4a>
+ 800e01c:	4694      	mov	ip, r2
+ 800e01e:	b304      	cbz	r4, 800e062 <GetFCntDown+0x4e>
+ 800e020:	b30d      	cbz	r5, 800e066 <GetFCntDown+0x52>
+    switch( addrID )
+ 800e022:	b188      	cbz	r0, 800e048 <GetFCntDown+0x34>
+ 800e024:	2801      	cmp	r0, #1
+ 800e026:	d120      	bne.n	800e06a <GetFCntDown+0x56>
+            if( lrWanVersion.Fields.Minor == 1 )
+ 800e028:	f3c3 4207 	ubfx	r2, r3, #16, #8
+ 800e02c:	2a01      	cmp	r2, #1
+ 800e02e:	d002      	beq.n	800e036 <GetFCntDown+0x22>
+                *fCntID = FCNT_DOWN;
+ 800e030:	2303      	movs	r3, #3
+ 800e032:	7023      	strb	r3, [r4, #0]
+ 800e034:	e00a      	b.n	800e04c <GetFCntDown+0x38>
+                if( ( fType == FRAME_TYPE_A ) || ( fType == FRAME_TYPE_D ) )
+ 800e036:	b121      	cbz	r1, 800e042 <GetFCntDown+0x2e>
+ 800e038:	2903      	cmp	r1, #3
+ 800e03a:	d002      	beq.n	800e042 <GetFCntDown+0x2e>
+                    *fCntID = N_FCNT_DOWN;
+ 800e03c:	2301      	movs	r3, #1
+ 800e03e:	7023      	strb	r3, [r4, #0]
+ 800e040:	e004      	b.n	800e04c <GetFCntDown+0x38>
+                    *fCntID = A_FCNT_DOWN;
+ 800e042:	2302      	movs	r3, #2
+ 800e044:	7023      	strb	r3, [r4, #0]
+ 800e046:	e001      	b.n	800e04c <GetFCntDown+0x38>
+            *fCntID = MC_FCNT_DOWN_0;
+ 800e048:	2304      	movs	r3, #4
+ 800e04a:	7023      	strb	r3, [r4, #0]
+    return LoRaMacCryptoGetFCntDown( *fCntID, maxFCntGap, macMsg->FHDR.FCnt, currentDown );
+ 800e04c:	462b      	mov	r3, r5
+ 800e04e:	f8bc 200e 	ldrh.w	r2, [ip, #14]
+ 800e052:	f8bd 1010 	ldrh.w	r1, [sp, #16]
+ 800e056:	7820      	ldrb	r0, [r4, #0]
+ 800e058:	f003 fd2c 	bl	8011ab4 <LoRaMacCryptoGetFCntDown>
+}
+ 800e05c:	bd38      	pop	{r3, r4, r5, pc}
+        return LORAMAC_CRYPTO_ERROR_NPE;
+ 800e05e:	200a      	movs	r0, #10
+ 800e060:	e7fc      	b.n	800e05c <GetFCntDown+0x48>
+ 800e062:	200a      	movs	r0, #10
+ 800e064:	e7fa      	b.n	800e05c <GetFCntDown+0x48>
+ 800e066:	200a      	movs	r0, #10
+ 800e068:	e7f8      	b.n	800e05c <GetFCntDown+0x48>
+    switch( addrID )
+ 800e06a:	2005      	movs	r0, #5
+ 800e06c:	e7f6      	b.n	800e05c <GetFCntDown+0x48>
+
+0800e06e <RemoveMacCommands>:
+    if( rxSlot == RX_SLOT_WIN_1 || rxSlot == RX_SLOT_WIN_2  )
+ 800e06e:	2801      	cmp	r0, #1
+ 800e070:	d900      	bls.n	800e074 <RemoveMacCommands+0x6>
+ 800e072:	4770      	bx	lr
+{
+ 800e074:	b508      	push	{r3, lr}
+        if( request == MCPS_CONFIRMED )
+ 800e076:	2a01      	cmp	r2, #1
+ 800e078:	d105      	bne.n	800e086 <RemoveMacCommands+0x18>
+            if( fCtrl.Bits.Ack == 1 )
+ 800e07a:	f011 0f20 	tst.w	r1, #32
+ 800e07e:	d004      	beq.n	800e08a <RemoveMacCommands+0x1c>
+                LoRaMacCommandsRemoveStickyAnsCmds( );
+ 800e080:	f003 f99a 	bl	80113b8 <LoRaMacCommandsRemoveStickyAnsCmds>
+ 800e084:	e001      	b.n	800e08a <RemoveMacCommands+0x1c>
+            LoRaMacCommandsRemoveStickyAnsCmds( );
+ 800e086:	f003 f997 	bl	80113b8 <LoRaMacCommandsRemoveStickyAnsCmds>
+}
+ 800e08a:	bd08      	pop	{r3, pc}
+
+0800e08c <ProcessMacCommands>:
+{
+ 800e08c:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 800e090:	b08f      	sub	sp, #60	; 0x3c
+ 800e092:	4605      	mov	r5, r0
+ 800e094:	460c      	mov	r4, r1
+ 800e096:	4616      	mov	r6, r2
+ 800e098:	4698      	mov	r8, r3
+    uint8_t status = 0;
+ 800e09a:	2700      	movs	r7, #0
+ 800e09c:	f88d 702f 	strb.w	r7, [sp, #47]	; 0x2f
+    uint8_t macCmdPayload[2] = { 0x00, 0x00 };
+ 800e0a0:	f8ad 702c 	strh.w	r7, [sp, #44]	; 0x2c
+    while( macIndex < commandsSize )
+ 800e0a4:	42b4      	cmp	r4, r6
+ 800e0a6:	f080 82c4 	bcs.w	800e632 <ProcessMacCommands+0x5a6>
+        if( ( LoRaMacCommandsGetCmdSize( payload[macIndex] ) + macIndex ) > commandsSize )
+ 800e0aa:	5d28      	ldrb	r0, [r5, r4]
+ 800e0ac:	f003 f9dc 	bl	8011468 <LoRaMacCommandsGetCmdSize>
+ 800e0b0:	4420      	add	r0, r4
+ 800e0b2:	42b0      	cmp	r0, r6
+ 800e0b4:	f300 82bd 	bgt.w	800e632 <ProcessMacCommands+0x5a6>
+        switch( payload[macIndex++] )
+ 800e0b8:	f104 0901 	add.w	r9, r4, #1
+ 800e0bc:	fa5f f989 	uxtb.w	r9, r9
+ 800e0c0:	5d29      	ldrb	r1, [r5, r4]
+ 800e0c2:	3902      	subs	r1, #2
+ 800e0c4:	2911      	cmp	r1, #17
+ 800e0c6:	f200 82b4 	bhi.w	800e632 <ProcessMacCommands+0x5a6>
+ 800e0ca:	e8df f011 	tbh	[pc, r1, lsl #1]
+ 800e0ce:	0012      	.short	0x0012
+ 800e0d0:	00910029 	.word	0x00910029
+ 800e0d4:	00ed00a5 	.word	0x00ed00a5
+ 800e0d8:	013f0105 	.word	0x013f0105
+ 800e0dc:	01ad0156 	.word	0x01ad0156
+ 800e0e0:	02b202b2 	.word	0x02b202b2
+ 800e0e4:	02b201de 	.word	0x02b201de
+ 800e0e8:	023e02b2 	.word	0x023e02b2
+ 800e0ec:	02750255 	.word	0x02750255
+ 800e0f0:	0291      	.short	0x0291
+                if( LoRaMacConfirmQueueIsCmdActive( MLME_LINK_CHECK ) == true )
+ 800e0f2:	2005      	movs	r0, #5
+ 800e0f4:	f003 fab4 	bl	8011660 <LoRaMacConfirmQueueIsCmdActive>
+ 800e0f8:	b908      	cbnz	r0, 800e0fe <ProcessMacCommands+0x72>
+        switch( payload[macIndex++] )
+ 800e0fa:	464c      	mov	r4, r9
+ 800e0fc:	e7d2      	b.n	800e0a4 <ProcessMacCommands+0x18>
+                    LoRaMacConfirmQueueSetStatus( LORAMAC_EVENT_INFO_STATUS_OK, MLME_LINK_CHECK );
+ 800e0fe:	2105      	movs	r1, #5
+ 800e100:	2000      	movs	r0, #0
+ 800e102:	f003 fa61 	bl	80115c8 <LoRaMacConfirmQueueSetStatus>
+                    MacCtx.MlmeConfirm.DemodMargin = payload[macIndex++];
+ 800e106:	1ca3      	adds	r3, r4, #2
+ 800e108:	b2db      	uxtb	r3, r3
+ 800e10a:	f815 1009 	ldrb.w	r1, [r5, r9]
+ 800e10e:	4ac2      	ldr	r2, [pc, #776]	; (800e418 <ProcessMacCommands+0x38c>)
+ 800e110:	f882 1450 	strb.w	r1, [r2, #1104]	; 0x450
+                    MacCtx.MlmeConfirm.NbGateways = payload[macIndex++];
+ 800e114:	3403      	adds	r4, #3
+ 800e116:	b2e4      	uxtb	r4, r4
+ 800e118:	5ceb      	ldrb	r3, [r5, r3]
+ 800e11a:	f882 3451 	strb.w	r3, [r2, #1105]	; 0x451
+ 800e11e:	e7c1      	b.n	800e0a4 <ProcessMacCommands+0x18>
+                int8_t linkAdrDatarate = DR_0;
+ 800e120:	2300      	movs	r3, #0
+ 800e122:	f88d 300a 	strb.w	r3, [sp, #10]
+                int8_t linkAdrTxPower = TX_POWER_0;
+ 800e126:	f88d 300b 	strb.w	r3, [sp, #11]
+                uint8_t linkAdrNbRep = 0;
+ 800e12a:	f88d 300c 	strb.w	r3, [sp, #12]
+                uint8_t linkAdrNbBytesParsed = 0;
+ 800e12e:	f88d 3014 	strb.w	r3, [sp, #20]
+                if( adrBlockFound == false )
+ 800e132:	b10f      	cbz	r7, 800e138 <ProcessMacCommands+0xac>
+                break;
+ 800e134:	464c      	mov	r4, r9
+ 800e136:	e7b5      	b.n	800e0a4 <ProcessMacCommands+0x18>
+                    linkAdrReq.Payload = &payload[macIndex - 1];
+ 800e138:	f109 33ff 	add.w	r3, r9, #4294967295
+ 800e13c:	442b      	add	r3, r5
+ 800e13e:	9308      	str	r3, [sp, #32]
+                    linkAdrReq.PayloadSize = commandsSize - ( macIndex - 1 );
+ 800e140:	eba6 0309 	sub.w	r3, r6, r9
+ 800e144:	3301      	adds	r3, #1
+ 800e146:	f88d 3024 	strb.w	r3, [sp, #36]	; 0x24
+                    linkAdrReq.AdrEnabled = Nvm.MacGroup2.AdrCtrlOn;
+ 800e14a:	48b4      	ldr	r0, [pc, #720]	; (800e41c <ProcessMacCommands+0x390>)
+ 800e14c:	f890 311a 	ldrb.w	r3, [r0, #282]	; 0x11a
+ 800e150:	f88d 3026 	strb.w	r3, [sp, #38]	; 0x26
+                    linkAdrReq.UplinkDwellTime = Nvm.MacGroup2.MacParams.UplinkDwellTime;
+ 800e154:	f890 307c 	ldrb.w	r3, [r0, #124]	; 0x7c
+ 800e158:	f88d 3025 	strb.w	r3, [sp, #37]	; 0x25
+                    linkAdrReq.CurrentDatarate = Nvm.MacGroup1.ChannelsDatarate;
+ 800e15c:	f990 3039 	ldrsb.w	r3, [r0, #57]	; 0x39
+ 800e160:	f88d 3027 	strb.w	r3, [sp, #39]	; 0x27
+                    linkAdrReq.CurrentTxPower = Nvm.MacGroup1.ChannelsTxPower;
+ 800e164:	f990 3038 	ldrsb.w	r3, [r0, #56]	; 0x38
+ 800e168:	f88d 3028 	strb.w	r3, [sp, #40]	; 0x28
+                    linkAdrReq.CurrentNbRep = Nvm.MacGroup2.MacParams.ChannelsNbTrans;
+ 800e16c:	f890 3068 	ldrb.w	r3, [r0, #104]	; 0x68
+ 800e170:	f88d 3029 	strb.w	r3, [sp, #41]	; 0x29
+                    linkAdrReq.Version = Nvm.MacGroup2.Version;
+ 800e174:	f8d0 3128 	ldr.w	r3, [r0, #296]	; 0x128
+ 800e178:	9307      	str	r3, [sp, #28]
+                    status = RegionLinkAdrReq( Nvm.MacGroup2.Region, &linkAdrReq, &linkAdrDatarate,
+ 800e17a:	ab05      	add	r3, sp, #20
+ 800e17c:	9301      	str	r3, [sp, #4]
+ 800e17e:	ab03      	add	r3, sp, #12
+ 800e180:	9300      	str	r3, [sp, #0]
+ 800e182:	f10d 030b 	add.w	r3, sp, #11
+ 800e186:	f10d 020a 	add.w	r2, sp, #10
+ 800e18a:	a907      	add	r1, sp, #28
+ 800e18c:	f890 0048 	ldrb.w	r0, [r0, #72]	; 0x48
+ 800e190:	f004 f84c 	bl	801222c <RegionLinkAdrReq>
+ 800e194:	f88d 002f 	strb.w	r0, [sp, #47]	; 0x2f
+                    if( ( status & 0x07 ) == 0x07 )
+ 800e198:	f000 0007 	and.w	r0, r0, #7
+ 800e19c:	2807      	cmp	r0, #7
+ 800e19e:	d001      	beq.n	800e1a4 <ProcessMacCommands+0x118>
+{
+ 800e1a0:	2400      	movs	r4, #0
+ 800e1a2:	e015      	b.n	800e1d0 <ProcessMacCommands+0x144>
+                        Nvm.MacGroup1.ChannelsDatarate = linkAdrDatarate;
+ 800e1a4:	4b9d      	ldr	r3, [pc, #628]	; (800e41c <ProcessMacCommands+0x390>)
+ 800e1a6:	f89d 200a 	ldrb.w	r2, [sp, #10]
+ 800e1aa:	f883 2039 	strb.w	r2, [r3, #57]	; 0x39
+                        Nvm.MacGroup1.ChannelsTxPower = linkAdrTxPower;
+ 800e1ae:	f89d 200b 	ldrb.w	r2, [sp, #11]
+ 800e1b2:	f883 2038 	strb.w	r2, [r3, #56]	; 0x38
+                        Nvm.MacGroup2.MacParams.ChannelsNbTrans = linkAdrNbRep;
+ 800e1b6:	f89d 200c 	ldrb.w	r2, [sp, #12]
+ 800e1ba:	f883 2068 	strb.w	r2, [r3, #104]	; 0x68
+ 800e1be:	e7ef      	b.n	800e1a0 <ProcessMacCommands+0x114>
+                        LoRaMacCommandsAddCmd( MOTE_MAC_LINK_ADR_ANS, &status, 1 );
+ 800e1c0:	2201      	movs	r2, #1
+ 800e1c2:	f10d 012f 	add.w	r1, sp, #47	; 0x2f
+ 800e1c6:	2003      	movs	r0, #3
+ 800e1c8:	f003 f882 	bl	80112d0 <LoRaMacCommandsAddCmd>
+                    for( uint8_t i = 0; i < ( linkAdrNbBytesParsed / 5 ); i++ )
+ 800e1cc:	3401      	adds	r4, #1
+ 800e1ce:	b2e4      	uxtb	r4, r4
+ 800e1d0:	f89d 2014 	ldrb.w	r2, [sp, #20]
+ 800e1d4:	4b92      	ldr	r3, [pc, #584]	; (800e420 <ProcessMacCommands+0x394>)
+ 800e1d6:	fba3 1302 	umull	r1, r3, r3, r2
+ 800e1da:	ebb4 0f93 	cmp.w	r4, r3, lsr #2
+ 800e1de:	d3ef      	bcc.n	800e1c0 <ProcessMacCommands+0x134>
+                    macIndex += linkAdrNbBytesParsed - 1;
+ 800e1e0:	eb02 0309 	add.w	r3, r2, r9
+ 800e1e4:	b2db      	uxtb	r3, r3
+ 800e1e6:	3b01      	subs	r3, #1
+ 800e1e8:	fa5f f983 	uxtb.w	r9, r3
+                    adrBlockFound = true;
+ 800e1ec:	2701      	movs	r7, #1
+ 800e1ee:	e7a1      	b.n	800e134 <ProcessMacCommands+0xa8>
+                Nvm.MacGroup2.MaxDCycle = payload[macIndex++] & 0x0F;
+ 800e1f0:	3402      	adds	r4, #2
+ 800e1f2:	b2e4      	uxtb	r4, r4
+ 800e1f4:	f815 3009 	ldrb.w	r3, [r5, r9]
+ 800e1f8:	f003 030f 	and.w	r3, r3, #15
+ 800e1fc:	4987      	ldr	r1, [pc, #540]	; (800e41c <ProcessMacCommands+0x390>)
+ 800e1fe:	f881 311b 	strb.w	r3, [r1, #283]	; 0x11b
+                Nvm.MacGroup2.AggregatedDCycle = 1 << Nvm.MacGroup2.MaxDCycle;
+ 800e202:	2201      	movs	r2, #1
+ 800e204:	fa02 f303 	lsl.w	r3, r2, r3
+ 800e208:	f8a1 311e 	strh.w	r3, [r1, #286]	; 0x11e
+                LoRaMacCommandsAddCmd( MOTE_MAC_DUTY_CYCLE_ANS, macCmdPayload, 0 );
+ 800e20c:	2200      	movs	r2, #0
+ 800e20e:	a90b      	add	r1, sp, #44	; 0x2c
+ 800e210:	2004      	movs	r0, #4
+ 800e212:	f003 f85d 	bl	80112d0 <LoRaMacCommandsAddCmd>
+                break;
+ 800e216:	e745      	b.n	800e0a4 <ProcessMacCommands+0x18>
+                status = 0x07;
+ 800e218:	2307      	movs	r3, #7
+ 800e21a:	f88d 302f 	strb.w	r3, [sp, #47]	; 0x2f
+                rxParamSetupReq.DrOffset = ( payload[macIndex] >> 4 ) & 0x07;
+ 800e21e:	f815 3009 	ldrb.w	r3, [r5, r9]
+ 800e222:	f3c3 1302 	ubfx	r3, r3, #4, #3
+ 800e226:	f88d 301d 	strb.w	r3, [sp, #29]
+                rxParamSetupReq.Datarate = payload[macIndex] & 0x0F;
+ 800e22a:	f915 3009 	ldrsb.w	r3, [r5, r9]
+ 800e22e:	f003 030f 	and.w	r3, r3, #15
+ 800e232:	f88d 301c 	strb.w	r3, [sp, #28]
+                macIndex++;
+ 800e236:	1ca3      	adds	r3, r4, #2
+ 800e238:	b2db      	uxtb	r3, r3
+                rxParamSetupReq.Frequency = ( uint32_t ) payload[macIndex++];
+ 800e23a:	1ce1      	adds	r1, r4, #3
+ 800e23c:	b2c9      	uxtb	r1, r1
+ 800e23e:	5ceb      	ldrb	r3, [r5, r3]
+ 800e240:	9308      	str	r3, [sp, #32]
+                rxParamSetupReq.Frequency |= ( uint32_t ) payload[macIndex++] << 8;
+ 800e242:	1d22      	adds	r2, r4, #4
+ 800e244:	b2d2      	uxtb	r2, r2
+ 800e246:	5c69      	ldrb	r1, [r5, r1]
+ 800e248:	ea43 2301 	orr.w	r3, r3, r1, lsl #8
+ 800e24c:	9308      	str	r3, [sp, #32]
+                rxParamSetupReq.Frequency |= ( uint32_t ) payload[macIndex++] << 16;
+ 800e24e:	3405      	adds	r4, #5
+ 800e250:	b2e4      	uxtb	r4, r4
+ 800e252:	5caa      	ldrb	r2, [r5, r2]
+ 800e254:	ea43 4302 	orr.w	r3, r3, r2, lsl #16
+ 800e258:	9308      	str	r3, [sp, #32]
+                rxParamSetupReq.Frequency *= 100;
+ 800e25a:	2264      	movs	r2, #100	; 0x64
+ 800e25c:	fb02 f303 	mul.w	r3, r2, r3
+ 800e260:	9308      	str	r3, [sp, #32]
+                status = RegionRxParamSetupReq( Nvm.MacGroup2.Region, &rxParamSetupReq );
+ 800e262:	a907      	add	r1, sp, #28
+ 800e264:	4b6d      	ldr	r3, [pc, #436]	; (800e41c <ProcessMacCommands+0x390>)
+ 800e266:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 800e26a:	f003 fff0 	bl	801224e <RegionRxParamSetupReq>
+ 800e26e:	f88d 002f 	strb.w	r0, [sp, #47]	; 0x2f
+                if( ( status & 0x07 ) == 0x07 )
+ 800e272:	f000 0307 	and.w	r3, r0, #7
+ 800e276:	2b07      	cmp	r3, #7
+ 800e278:	d007      	beq.n	800e28a <ProcessMacCommands+0x1fe>
+                macCmdPayload[0] = status;
+ 800e27a:	f88d 002c 	strb.w	r0, [sp, #44]	; 0x2c
+                LoRaMacCommandsAddCmd( MOTE_MAC_RX_PARAM_SETUP_ANS, macCmdPayload, 1 );
+ 800e27e:	2201      	movs	r2, #1
+ 800e280:	a90b      	add	r1, sp, #44	; 0x2c
+ 800e282:	2005      	movs	r0, #5
+ 800e284:	f003 f824 	bl	80112d0 <LoRaMacCommandsAddCmd>
+                break;
+ 800e288:	e70c      	b.n	800e0a4 <ProcessMacCommands+0x18>
+                    Nvm.MacGroup2.MacParams.Rx2Channel.Datarate = rxParamSetupReq.Datarate;
+ 800e28a:	f89d 201c 	ldrb.w	r2, [sp, #28]
+ 800e28e:	4b63      	ldr	r3, [pc, #396]	; (800e41c <ProcessMacCommands+0x390>)
+ 800e290:	f883 2070 	strb.w	r2, [r3, #112]	; 0x70
+                    Nvm.MacGroup2.MacParams.RxCChannel.Datarate = rxParamSetupReq.Datarate;
+ 800e294:	f883 2078 	strb.w	r2, [r3, #120]	; 0x78
+                    Nvm.MacGroup2.MacParams.Rx2Channel.Frequency = rxParamSetupReq.Frequency;
+ 800e298:	9a08      	ldr	r2, [sp, #32]
+ 800e29a:	66da      	str	r2, [r3, #108]	; 0x6c
+                    Nvm.MacGroup2.MacParams.RxCChannel.Frequency = rxParamSetupReq.Frequency;
+ 800e29c:	675a      	str	r2, [r3, #116]	; 0x74
+                    Nvm.MacGroup2.MacParams.Rx1DrOffset = rxParamSetupReq.DrOffset;
+ 800e29e:	f89d 201d 	ldrb.w	r2, [sp, #29]
+ 800e2a2:	f883 2069 	strb.w	r2, [r3, #105]	; 0x69
+ 800e2a6:	e7e8      	b.n	800e27a <ProcessMacCommands+0x1ee>
+                if( ( MacCtx.MacCallbacks != NULL ) && ( MacCtx.MacCallbacks->GetBatteryLevel != NULL ) )
+ 800e2a8:	4b5b      	ldr	r3, [pc, #364]	; (800e418 <ProcessMacCommands+0x38c>)
+ 800e2aa:	f8d3 3348 	ldr.w	r3, [r3, #840]	; 0x348
+ 800e2ae:	b17b      	cbz	r3, 800e2d0 <ProcessMacCommands+0x244>
+ 800e2b0:	681b      	ldr	r3, [r3, #0]
+ 800e2b2:	b17b      	cbz	r3, 800e2d4 <ProcessMacCommands+0x248>
+                    batteryLevel = MacCtx.MacCallbacks->GetBatteryLevel( );
+ 800e2b4:	4798      	blx	r3
+                macCmdPayload[0] = batteryLevel;
+ 800e2b6:	f88d 002c 	strb.w	r0, [sp, #44]	; 0x2c
+                macCmdPayload[1] = ( uint8_t )( snr & 0x3F );
+ 800e2ba:	f008 033f 	and.w	r3, r8, #63	; 0x3f
+ 800e2be:	f88d 302d 	strb.w	r3, [sp, #45]	; 0x2d
+                LoRaMacCommandsAddCmd( MOTE_MAC_DEV_STATUS_ANS, macCmdPayload, 2 );
+ 800e2c2:	2202      	movs	r2, #2
+ 800e2c4:	a90b      	add	r1, sp, #44	; 0x2c
+ 800e2c6:	2006      	movs	r0, #6
+ 800e2c8:	f003 f802 	bl	80112d0 <LoRaMacCommandsAddCmd>
+        switch( payload[macIndex++] )
+ 800e2cc:	464c      	mov	r4, r9
+                break;
+ 800e2ce:	e6e9      	b.n	800e0a4 <ProcessMacCommands+0x18>
+                uint8_t batteryLevel = BAT_LEVEL_NO_MEASURE;
+ 800e2d0:	20ff      	movs	r0, #255	; 0xff
+ 800e2d2:	e7f0      	b.n	800e2b6 <ProcessMacCommands+0x22a>
+ 800e2d4:	20ff      	movs	r0, #255	; 0xff
+ 800e2d6:	e7ee      	b.n	800e2b6 <ProcessMacCommands+0x22a>
+                status = 0x03;
+ 800e2d8:	2303      	movs	r3, #3
+ 800e2da:	f88d 302f 	strb.w	r3, [sp, #47]	; 0x2f
+                newChannelReq.ChannelId = payload[macIndex++];
+ 800e2de:	1ca3      	adds	r3, r4, #2
+ 800e2e0:	b2db      	uxtb	r3, r3
+ 800e2e2:	f915 2009 	ldrsb.w	r2, [r5, r9]
+ 800e2e6:	f88d 2018 	strb.w	r2, [sp, #24]
+                newChannelReq.NewChannel = &chParam;
+ 800e2ea:	aa07      	add	r2, sp, #28
+ 800e2ec:	9205      	str	r2, [sp, #20]
+                chParam.Frequency = ( uint32_t ) payload[macIndex++];
+ 800e2ee:	1ce2      	adds	r2, r4, #3
+ 800e2f0:	b2d2      	uxtb	r2, r2
+ 800e2f2:	5ceb      	ldrb	r3, [r5, r3]
+ 800e2f4:	9307      	str	r3, [sp, #28]
+                chParam.Frequency |= ( uint32_t ) payload[macIndex++] << 8;
+ 800e2f6:	1d21      	adds	r1, r4, #4
+ 800e2f8:	b2c9      	uxtb	r1, r1
+ 800e2fa:	5caa      	ldrb	r2, [r5, r2]
+ 800e2fc:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
+ 800e300:	9307      	str	r3, [sp, #28]
+                chParam.Frequency |= ( uint32_t ) payload[macIndex++] << 16;
+ 800e302:	1d62      	adds	r2, r4, #5
+ 800e304:	b2d2      	uxtb	r2, r2
+ 800e306:	5c69      	ldrb	r1, [r5, r1]
+ 800e308:	ea43 4301 	orr.w	r3, r3, r1, lsl #16
+ 800e30c:	9307      	str	r3, [sp, #28]
+                chParam.Frequency *= 100;
+ 800e30e:	2164      	movs	r1, #100	; 0x64
+ 800e310:	fb01 f303 	mul.w	r3, r1, r3
+ 800e314:	9307      	str	r3, [sp, #28]
+                chParam.Rx1Frequency = 0;
+ 800e316:	2300      	movs	r3, #0
+ 800e318:	9308      	str	r3, [sp, #32]
+                chParam.DrRange.Value = payload[macIndex++];
+ 800e31a:	3406      	adds	r4, #6
+ 800e31c:	b2e4      	uxtb	r4, r4
+ 800e31e:	56ab      	ldrsb	r3, [r5, r2]
+ 800e320:	f88d 3024 	strb.w	r3, [sp, #36]	; 0x24
+                status = ( uint8_t )RegionNewChannelReq( Nvm.MacGroup2.Region, &newChannelReq );
+ 800e324:	a905      	add	r1, sp, #20
+ 800e326:	4b3d      	ldr	r3, [pc, #244]	; (800e41c <ProcessMacCommands+0x390>)
+ 800e328:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 800e32c:	f003 ff97 	bl	801225e <RegionNewChannelReq>
+ 800e330:	b2c3      	uxtb	r3, r0
+ 800e332:	f88d 302f 	strb.w	r3, [sp, #47]	; 0x2f
+                if( ( int8_t )status >= 0 )
+ 800e336:	2800      	cmp	r0, #0
+ 800e338:	f6ff aeb4 	blt.w	800e0a4 <ProcessMacCommands+0x18>
+                    macCmdPayload[0] = status;
+ 800e33c:	f88d 302c 	strb.w	r3, [sp, #44]	; 0x2c
+                    LoRaMacCommandsAddCmd( MOTE_MAC_NEW_CHANNEL_ANS, macCmdPayload, 1 );
+ 800e340:	2201      	movs	r2, #1
+ 800e342:	a90b      	add	r1, sp, #44	; 0x2c
+ 800e344:	2007      	movs	r0, #7
+ 800e346:	f002 ffc3 	bl	80112d0 <LoRaMacCommandsAddCmd>
+                break;
+ 800e34a:	e6ab      	b.n	800e0a4 <ProcessMacCommands+0x18>
+                uint8_t delay = payload[macIndex++] & 0x0F;
+ 800e34c:	3402      	adds	r4, #2
+ 800e34e:	b2e4      	uxtb	r4, r4
+ 800e350:	f815 3009 	ldrb.w	r3, [r5, r9]
+                if( delay == 0 )
+ 800e354:	f013 030f 	ands.w	r3, r3, #15
+ 800e358:	d100      	bne.n	800e35c <ProcessMacCommands+0x2d0>
+                    delay++;
+ 800e35a:	3301      	adds	r3, #1
+                Nvm.MacGroup2.MacParams.ReceiveDelay1 = delay * 1000;
+ 800e35c:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
+ 800e360:	fb02 f303 	mul.w	r3, r2, r3
+ 800e364:	4a2d      	ldr	r2, [pc, #180]	; (800e41c <ProcessMacCommands+0x390>)
+ 800e366:	6593      	str	r3, [r2, #88]	; 0x58
+                Nvm.MacGroup2.MacParams.ReceiveDelay2 = Nvm.MacGroup2.MacParams.ReceiveDelay1 + 1000;
+ 800e368:	f503 737a 	add.w	r3, r3, #1000	; 0x3e8
+ 800e36c:	65d3      	str	r3, [r2, #92]	; 0x5c
+                LoRaMacCommandsAddCmd( MOTE_MAC_RX_TIMING_SETUP_ANS, macCmdPayload, 0 );
+ 800e36e:	2200      	movs	r2, #0
+ 800e370:	a90b      	add	r1, sp, #44	; 0x2c
+ 800e372:	2008      	movs	r0, #8
+ 800e374:	f002 ffac 	bl	80112d0 <LoRaMacCommandsAddCmd>
+                break;
+ 800e378:	e694      	b.n	800e0a4 <ProcessMacCommands+0x18>
+                uint8_t eirpDwellTime = payload[macIndex++];
+ 800e37a:	3402      	adds	r4, #2
+ 800e37c:	b2e4      	uxtb	r4, r4
+ 800e37e:	f815 3009 	ldrb.w	r3, [r5, r9]
+                txParamSetupReq.UplinkDwellTime = 0;
+ 800e382:	2200      	movs	r2, #0
+ 800e384:	f88d 200c 	strb.w	r2, [sp, #12]
+                txParamSetupReq.DownlinkDwellTime = 0;
+ 800e388:	f88d 200d 	strb.w	r2, [sp, #13]
+                if( ( eirpDwellTime & 0x20 ) == 0x20 )
+ 800e38c:	f013 0f20 	tst.w	r3, #32
+ 800e390:	d002      	beq.n	800e398 <ProcessMacCommands+0x30c>
+                    txParamSetupReq.DownlinkDwellTime = 1;
+ 800e392:	2201      	movs	r2, #1
+ 800e394:	f88d 200d 	strb.w	r2, [sp, #13]
+                if( ( eirpDwellTime & 0x10 ) == 0x10 )
+ 800e398:	f013 0f10 	tst.w	r3, #16
+ 800e39c:	d002      	beq.n	800e3a4 <ProcessMacCommands+0x318>
+                    txParamSetupReq.UplinkDwellTime = 1;
+ 800e39e:	2201      	movs	r2, #1
+ 800e3a0:	f88d 200c 	strb.w	r2, [sp, #12]
+                txParamSetupReq.MaxEirp = eirpDwellTime & 0x0F;
+ 800e3a4:	f003 030f 	and.w	r3, r3, #15
+ 800e3a8:	f88d 300e 	strb.w	r3, [sp, #14]
+                if( RegionTxParamSetupReq( Nvm.MacGroup2.Region, &txParamSetupReq ) != -1 )
+ 800e3ac:	a903      	add	r1, sp, #12
+ 800e3ae:	4b1b      	ldr	r3, [pc, #108]	; (800e41c <ProcessMacCommands+0x390>)
+ 800e3b0:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 800e3b4:	f003 ff5b 	bl	801226e <RegionTxParamSetupReq>
+ 800e3b8:	f1b0 3fff 	cmp.w	r0, #4294967295
+ 800e3bc:	f43f ae72 	beq.w	800e0a4 <ProcessMacCommands+0x18>
+                    Nvm.MacGroup2.MacParams.UplinkDwellTime = txParamSetupReq.UplinkDwellTime;
+ 800e3c0:	f89d a00c 	ldrb.w	sl, [sp, #12]
+ 800e3c4:	f8df 9054 	ldr.w	r9, [pc, #84]	; 800e41c <ProcessMacCommands+0x390>
+ 800e3c8:	f889 a07c 	strb.w	sl, [r9, #124]	; 0x7c
+                    Nvm.MacGroup2.MacParams.DownlinkDwellTime = txParamSetupReq.DownlinkDwellTime;
+ 800e3cc:	f89d 300d 	ldrb.w	r3, [sp, #13]
+ 800e3d0:	f889 307d 	strb.w	r3, [r9, #125]	; 0x7d
+                    Nvm.MacGroup2.MacParams.MaxEirp = LoRaMacMaxEirpTable[txParamSetupReq.MaxEirp];
+ 800e3d4:	f89d 300e 	ldrb.w	r3, [sp, #14]
+ 800e3d8:	4a12      	ldr	r2, [pc, #72]	; (800e424 <ProcessMacCommands+0x398>)
+ 800e3da:	5cd0      	ldrb	r0, [r2, r3]
+ 800e3dc:	f7f3 fb1a 	bl	8001a14 <__aeabi_ui2f>
+ 800e3e0:	f8c9 0080 	str.w	r0, [r9, #128]	; 0x80
+                    getPhy.Attribute = PHY_MIN_TX_DR;
+ 800e3e4:	2302      	movs	r3, #2
+ 800e3e6:	f88d 301c 	strb.w	r3, [sp, #28]
+                    getPhy.UplinkDwellTime = Nvm.MacGroup2.MacParams.UplinkDwellTime;
+ 800e3ea:	f88d a01e 	strb.w	sl, [sp, #30]
+                    phyParam = RegionGetPhyParam( Nvm.MacGroup2.Region, &getPhy );
+ 800e3ee:	a907      	add	r1, sp, #28
+ 800e3f0:	f899 0048 	ldrb.w	r0, [r9, #72]	; 0x48
+ 800e3f4:	f003 fec3 	bl	801217e <RegionGetPhyParam>
+ 800e3f8:	9005      	str	r0, [sp, #20]
+                    Nvm.MacGroup1.ChannelsDatarate = MAX( Nvm.MacGroup1.ChannelsDatarate, ( int8_t )phyParam.Value );
+ 800e3fa:	b240      	sxtb	r0, r0
+ 800e3fc:	f999 3039 	ldrsb.w	r3, [r9, #57]	; 0x39
+ 800e400:	4298      	cmp	r0, r3
+ 800e402:	bfb8      	it	lt
+ 800e404:	4618      	movlt	r0, r3
+ 800e406:	f889 0039 	strb.w	r0, [r9, #57]	; 0x39
+                    LoRaMacCommandsAddCmd( MOTE_MAC_TX_PARAM_SETUP_ANS, macCmdPayload, 0 );
+ 800e40a:	2200      	movs	r2, #0
+ 800e40c:	a90b      	add	r1, sp, #44	; 0x2c
+ 800e40e:	2009      	movs	r0, #9
+ 800e410:	f002 ff5e 	bl	80112d0 <LoRaMacCommandsAddCmd>
+                break;
+ 800e414:	e646      	b.n	800e0a4 <ProcessMacCommands+0x18>
+ 800e416:	bf00      	nop
+ 800e418:	20001fe4 	.word	0x20001fe4
+ 800e41c:	20001870 	.word	0x20001870
+ 800e420:	cccccccd 	.word	0xcccccccd
+ 800e424:	08018650 	.word	0x08018650
+                status = 0x03;
+ 800e428:	2303      	movs	r3, #3
+ 800e42a:	f88d 302f 	strb.w	r3, [sp, #47]	; 0x2f
+                dlChannelReq.ChannelId = payload[macIndex++];
+ 800e42e:	1ca3      	adds	r3, r4, #2
+ 800e430:	b2db      	uxtb	r3, r3
+ 800e432:	f815 2009 	ldrb.w	r2, [r5, r9]
+ 800e436:	f88d 201c 	strb.w	r2, [sp, #28]
+                dlChannelReq.Rx1Frequency = ( uint32_t ) payload[macIndex++];
+ 800e43a:	1ce1      	adds	r1, r4, #3
+ 800e43c:	b2c9      	uxtb	r1, r1
+ 800e43e:	5ceb      	ldrb	r3, [r5, r3]
+ 800e440:	9308      	str	r3, [sp, #32]
+                dlChannelReq.Rx1Frequency |= ( uint32_t ) payload[macIndex++] << 8;
+ 800e442:	1d22      	adds	r2, r4, #4
+ 800e444:	b2d2      	uxtb	r2, r2
+ 800e446:	5c69      	ldrb	r1, [r5, r1]
+ 800e448:	ea43 2301 	orr.w	r3, r3, r1, lsl #8
+ 800e44c:	9308      	str	r3, [sp, #32]
+                dlChannelReq.Rx1Frequency |= ( uint32_t ) payload[macIndex++] << 16;
+ 800e44e:	3405      	adds	r4, #5
+ 800e450:	b2e4      	uxtb	r4, r4
+ 800e452:	5caa      	ldrb	r2, [r5, r2]
+ 800e454:	ea43 4302 	orr.w	r3, r3, r2, lsl #16
+ 800e458:	9308      	str	r3, [sp, #32]
+                dlChannelReq.Rx1Frequency *= 100;
+ 800e45a:	2264      	movs	r2, #100	; 0x64
+ 800e45c:	fb02 f303 	mul.w	r3, r2, r3
+ 800e460:	9308      	str	r3, [sp, #32]
+                status = ( uint8_t )RegionDlChannelReq( Nvm.MacGroup2.Region, &dlChannelReq );
+ 800e462:	a907      	add	r1, sp, #28
+ 800e464:	4b74      	ldr	r3, [pc, #464]	; (800e638 <ProcessMacCommands+0x5ac>)
+ 800e466:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 800e46a:	f003 ff08 	bl	801227e <RegionDlChannelReq>
+ 800e46e:	b2c3      	uxtb	r3, r0
+ 800e470:	f88d 302f 	strb.w	r3, [sp, #47]	; 0x2f
+                if( ( int8_t )status >= 0 )
+ 800e474:	2800      	cmp	r0, #0
+ 800e476:	f6ff ae15 	blt.w	800e0a4 <ProcessMacCommands+0x18>
+                    macCmdPayload[0] = status;
+ 800e47a:	f88d 302c 	strb.w	r3, [sp, #44]	; 0x2c
+                    LoRaMacCommandsAddCmd( MOTE_MAC_DL_CHANNEL_ANS, macCmdPayload, 1 );
+ 800e47e:	2201      	movs	r2, #1
+ 800e480:	a90b      	add	r1, sp, #44	; 0x2c
+ 800e482:	200a      	movs	r0, #10
+ 800e484:	f002 ff24 	bl	80112d0 <LoRaMacCommandsAddCmd>
+                break;
+ 800e488:	e60c      	b.n	800e0a4 <ProcessMacCommands+0x18>
+                if( LoRaMacConfirmQueueIsCmdActive( MLME_DEVICE_TIME ) == true )
+ 800e48a:	200a      	movs	r0, #10
+ 800e48c:	f003 f8e8 	bl	8011660 <LoRaMacConfirmQueueIsCmdActive>
+ 800e490:	b908      	cbnz	r0, 800e496 <ProcessMacCommands+0x40a>
+        switch( payload[macIndex++] )
+ 800e492:	464c      	mov	r4, r9
+ 800e494:	e606      	b.n	800e0a4 <ProcessMacCommands+0x18>
+                    LoRaMacConfirmQueueSetStatus( LORAMAC_EVENT_INFO_STATUS_OK, MLME_DEVICE_TIME );
+ 800e496:	210a      	movs	r1, #10
+ 800e498:	2000      	movs	r0, #0
+ 800e49a:	f003 f895 	bl	80115c8 <LoRaMacConfirmQueueSetStatus>
+                    SysTime_t gpsEpochTime = { 0 };
+ 800e49e:	a903      	add	r1, sp, #12
+ 800e4a0:	2300      	movs	r3, #0
+ 800e4a2:	9303      	str	r3, [sp, #12]
+ 800e4a4:	9304      	str	r3, [sp, #16]
+                    SysTime_t sysTime = { 0 };
+ 800e4a6:	f10d 0a14 	add.w	sl, sp, #20
+ 800e4aa:	9305      	str	r3, [sp, #20]
+ 800e4ac:	9306      	str	r3, [sp, #24]
+                    SysTime_t sysTimeCurrent = { 0 };
+ 800e4ae:	f10d 0b1c 	add.w	fp, sp, #28
+ 800e4b2:	9307      	str	r3, [sp, #28]
+ 800e4b4:	9308      	str	r3, [sp, #32]
+                    gpsEpochTime.Seconds = ( uint32_t )payload[macIndex++];
+ 800e4b6:	1ca0      	adds	r0, r4, #2
+ 800e4b8:	b2c0      	uxtb	r0, r0
+ 800e4ba:	f815 3009 	ldrb.w	r3, [r5, r9]
+ 800e4be:	9303      	str	r3, [sp, #12]
+                    gpsEpochTime.Seconds |= ( uint32_t )payload[macIndex++] << 8;
+ 800e4c0:	1ce2      	adds	r2, r4, #3
+ 800e4c2:	b2d2      	uxtb	r2, r2
+ 800e4c4:	5c28      	ldrb	r0, [r5, r0]
+ 800e4c6:	ea43 2300 	orr.w	r3, r3, r0, lsl #8
+ 800e4ca:	9303      	str	r3, [sp, #12]
+                    gpsEpochTime.Seconds |= ( uint32_t )payload[macIndex++] << 16;
+ 800e4cc:	1d20      	adds	r0, r4, #4
+ 800e4ce:	b2c0      	uxtb	r0, r0
+ 800e4d0:	5caa      	ldrb	r2, [r5, r2]
+ 800e4d2:	ea43 4302 	orr.w	r3, r3, r2, lsl #16
+ 800e4d6:	9303      	str	r3, [sp, #12]
+                    gpsEpochTime.Seconds |= ( uint32_t )payload[macIndex++] << 24;
+ 800e4d8:	1d62      	adds	r2, r4, #5
+ 800e4da:	b2d2      	uxtb	r2, r2
+ 800e4dc:	5c28      	ldrb	r0, [r5, r0]
+ 800e4de:	ea43 6300 	orr.w	r3, r3, r0, lsl #24
+ 800e4e2:	9303      	str	r3, [sp, #12]
+                    gpsEpochTime.SubSeconds = payload[macIndex++];
+ 800e4e4:	3406      	adds	r4, #6
+ 800e4e6:	b2e4      	uxtb	r4, r4
+ 800e4e8:	5caa      	ldrb	r2, [r5, r2]
+ 800e4ea:	f8ad 2010 	strh.w	r2, [sp, #16]
+                    gpsEpochTime.SubSeconds = ( int16_t )( ( ( int32_t )gpsEpochTime.SubSeconds * 1000 ) >> 8 );
+ 800e4ee:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
+ 800e4f2:	fb00 f202 	mul.w	r2, r0, r2
+ 800e4f6:	0a12      	lsrs	r2, r2, #8
+ 800e4f8:	f8ad 2010 	strh.w	r2, [sp, #16]
+                    sysTime = gpsEpochTime;
+ 800e4fc:	c903      	ldmia	r1, {r0, r1}
+ 800e4fe:	e88a 0003 	stmia.w	sl, {r0, r1}
+                    sysTime.Seconds += UNIX_GPS_EPOCH_OFFSET;
+ 800e502:	4a4e      	ldr	r2, [pc, #312]	; (800e63c <ProcessMacCommands+0x5b0>)
+ 800e504:	441a      	add	r2, r3
+ 800e506:	9205      	str	r2, [sp, #20]
+                    sysTimeCurrent = SysTimeGet( );
+ 800e508:	4658      	mov	r0, fp
+ 800e50a:	f008 fd79 	bl	8017000 <SysTimeGet>
+                    sysTime = SysTimeAdd( sysTimeCurrent, SysTimeSub( sysTime, MacCtx.LastTxSysTime ) );
+ 800e50e:	f8df 9130 	ldr.w	r9, [pc, #304]	; 800e640 <ProcessMacCommands+0x5b4>
+ 800e512:	f8d9 333c 	ldr.w	r3, [r9, #828]	; 0x33c
+ 800e516:	9300      	str	r3, [sp, #0]
+ 800e518:	f8d9 3338 	ldr.w	r3, [r9, #824]	; 0x338
+ 800e51c:	e89a 0006 	ldmia.w	sl, {r1, r2}
+ 800e520:	a80c      	add	r0, sp, #48	; 0x30
+ 800e522:	f008 fd2c 	bl	8016f7e <SysTimeSub>
+ 800e526:	9b0d      	ldr	r3, [sp, #52]	; 0x34
+ 800e528:	9300      	str	r3, [sp, #0]
+ 800e52a:	9b0c      	ldr	r3, [sp, #48]	; 0x30
+ 800e52c:	e89b 0006 	ldmia.w	fp, {r1, r2}
+ 800e530:	4650      	mov	r0, sl
+ 800e532:	f008 fd05 	bl	8016f40 <SysTimeAdd>
+                    SysTimeSet( sysTime );
+ 800e536:	e89a 0003 	ldmia.w	sl, {r0, r1}
+ 800e53a:	f008 fd3f 	bl	8016fbc <SysTimeSet>
+                    LoRaMacClassBDeviceTimeAns( );
+ 800e53e:	f002 fe2d 	bl	801119c <LoRaMacClassBDeviceTimeAns>
+                    MacCtx.McpsIndication.DeviceTimeAnsReceived = true;
+ 800e542:	2301      	movs	r3, #1
+ 800e544:	f889 3430 	strb.w	r3, [r9, #1072]	; 0x430
+ 800e548:	e5ac      	b.n	800e0a4 <ProcessMacCommands+0x18>
+                if( LoRaMacConfirmQueueIsCmdActive( MLME_PING_SLOT_INFO ) == true )
+ 800e54a:	200d      	movs	r0, #13
+ 800e54c:	f003 f888 	bl	8011660 <LoRaMacConfirmQueueIsCmdActive>
+ 800e550:	b908      	cbnz	r0, 800e556 <ProcessMacCommands+0x4ca>
+        switch( payload[macIndex++] )
+ 800e552:	464c      	mov	r4, r9
+ 800e554:	e5a6      	b.n	800e0a4 <ProcessMacCommands+0x18>
+                    LoRaMacConfirmQueueSetStatus( LORAMAC_EVENT_INFO_STATUS_OK, MLME_PING_SLOT_INFO );
+ 800e556:	210d      	movs	r1, #13
+ 800e558:	2000      	movs	r0, #0
+ 800e55a:	f003 f835 	bl	80115c8 <LoRaMacConfirmQueueSetStatus>
+                    if( ( MacCtx.RxSlot != RX_SLOT_WIN_CLASS_B_PING_SLOT ) && ( MacCtx.RxSlot != RX_SLOT_WIN_CLASS_B_MULTICAST_SLOT ) )
+ 800e55e:	4b38      	ldr	r3, [pc, #224]	; (800e640 <ProcessMacCommands+0x5b4>)
+ 800e560:	f893 3480 	ldrb.w	r3, [r3, #1152]	; 0x480
+ 800e564:	3b04      	subs	r3, #4
+ 800e566:	b2db      	uxtb	r3, r3
+ 800e568:	2b01      	cmp	r3, #1
+ 800e56a:	d801      	bhi.n	800e570 <ProcessMacCommands+0x4e4>
+        switch( payload[macIndex++] )
+ 800e56c:	464c      	mov	r4, r9
+ 800e56e:	e599      	b.n	800e0a4 <ProcessMacCommands+0x18>
+                        LoRaMacClassBPingSlotInfoAns( );
+ 800e570:	f002 fe10 	bl	8011194 <LoRaMacClassBPingSlotInfoAns>
+        switch( payload[macIndex++] )
+ 800e574:	464c      	mov	r4, r9
+ 800e576:	e595      	b.n	800e0a4 <ProcessMacCommands+0x18>
+                frequency = ( uint32_t )payload[macIndex++];
+ 800e578:	1ca2      	adds	r2, r4, #2
+ 800e57a:	b2d2      	uxtb	r2, r2
+ 800e57c:	f815 3009 	ldrb.w	r3, [r5, r9]
+                frequency |= ( uint32_t )payload[macIndex++] << 8;
+ 800e580:	1ce1      	adds	r1, r4, #3
+ 800e582:	b2c9      	uxtb	r1, r1
+ 800e584:	5caa      	ldrb	r2, [r5, r2]
+ 800e586:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
+                frequency |= ( uint32_t )payload[macIndex++] << 16;
+ 800e58a:	1d22      	adds	r2, r4, #4
+ 800e58c:	b2d2      	uxtb	r2, r2
+ 800e58e:	5c69      	ldrb	r1, [r5, r1]
+ 800e590:	ea43 4301 	orr.w	r3, r3, r1, lsl #16
+                datarate = payload[macIndex++] & 0x0F;
+ 800e594:	3405      	adds	r4, #5
+ 800e596:	b2e4      	uxtb	r4, r4
+ 800e598:	5ca8      	ldrb	r0, [r5, r2]
+                status = LoRaMacClassBPingSlotChannelReq( datarate, frequency );
+ 800e59a:	2164      	movs	r1, #100	; 0x64
+ 800e59c:	fb03 f101 	mul.w	r1, r3, r1
+ 800e5a0:	f000 000f 	and.w	r0, r0, #15
+ 800e5a4:	f002 fdf7 	bl	8011196 <LoRaMacClassBPingSlotChannelReq>
+                macCmdPayload[0] = status;
+ 800e5a8:	f88d 002c 	strb.w	r0, [sp, #44]	; 0x2c
+                LoRaMacCommandsAddCmd( MOTE_MAC_PING_SLOT_FREQ_ANS, macCmdPayload, 1 );
+ 800e5ac:	2201      	movs	r2, #1
+ 800e5ae:	a90b      	add	r1, sp, #44	; 0x2c
+ 800e5b0:	2011      	movs	r0, #17
+ 800e5b2:	f002 fe8d 	bl	80112d0 <LoRaMacCommandsAddCmd>
+                break;
+ 800e5b6:	e575      	b.n	800e0a4 <ProcessMacCommands+0x18>
+                if( LoRaMacConfirmQueueIsCmdActive( MLME_BEACON_TIMING ) == true )
+ 800e5b8:	200e      	movs	r0, #14
+ 800e5ba:	f003 f851 	bl	8011660 <LoRaMacConfirmQueueIsCmdActive>
+ 800e5be:	b908      	cbnz	r0, 800e5c4 <ProcessMacCommands+0x538>
+        switch( payload[macIndex++] )
+ 800e5c0:	464c      	mov	r4, r9
+ 800e5c2:	e56f      	b.n	800e0a4 <ProcessMacCommands+0x18>
+                    LoRaMacConfirmQueueSetStatus( LORAMAC_EVENT_INFO_STATUS_OK, MLME_BEACON_TIMING );
+ 800e5c4:	210e      	movs	r1, #14
+ 800e5c6:	2000      	movs	r0, #0
+ 800e5c8:	f002 fffe 	bl	80115c8 <LoRaMacConfirmQueueSetStatus>
+                    beaconTimingDelay = ( uint16_t )payload[macIndex++];
+ 800e5cc:	1ca2      	adds	r2, r4, #2
+ 800e5ce:	b2d2      	uxtb	r2, r2
+ 800e5d0:	f815 0009 	ldrb.w	r0, [r5, r9]
+                    beaconTimingDelay |= ( uint16_t )payload[macIndex++] << 8;
+ 800e5d4:	1ce3      	adds	r3, r4, #3
+ 800e5d6:	b2db      	uxtb	r3, r3
+ 800e5d8:	f815 c002 	ldrb.w	ip, [r5, r2]
+                    beaconTimingChannel = payload[macIndex++];
+ 800e5dc:	3404      	adds	r4, #4
+ 800e5de:	b2e4      	uxtb	r4, r4
+                    LoRaMacClassBBeaconTimingAns( beaconTimingDelay, beaconTimingChannel, RxDoneParams.LastRxDone );
+ 800e5e0:	4a18      	ldr	r2, [pc, #96]	; (800e644 <ProcessMacCommands+0x5b8>)
+ 800e5e2:	6812      	ldr	r2, [r2, #0]
+ 800e5e4:	5ce9      	ldrb	r1, [r5, r3]
+ 800e5e6:	ea40 200c 	orr.w	r0, r0, ip, lsl #8
+ 800e5ea:	f002 fdd6 	bl	801119a <LoRaMacClassBBeaconTimingAns>
+ 800e5ee:	e559      	b.n	800e0a4 <ProcessMacCommands+0x18>
+                    frequency = ( uint32_t )payload[macIndex++];
+ 800e5f0:	1ca1      	adds	r1, r4, #2
+ 800e5f2:	b2c9      	uxtb	r1, r1
+ 800e5f4:	f815 3009 	ldrb.w	r3, [r5, r9]
+                    frequency |= ( uint32_t )payload[macIndex++] << 8;
+ 800e5f8:	1ce2      	adds	r2, r4, #3
+ 800e5fa:	b2d2      	uxtb	r2, r2
+ 800e5fc:	5c69      	ldrb	r1, [r5, r1]
+ 800e5fe:	ea43 2301 	orr.w	r3, r3, r1, lsl #8
+                    frequency |= ( uint32_t )payload[macIndex++] << 16;
+ 800e602:	3404      	adds	r4, #4
+ 800e604:	b2e4      	uxtb	r4, r4
+ 800e606:	5caa      	ldrb	r2, [r5, r2]
+ 800e608:	ea43 4302 	orr.w	r3, r3, r2, lsl #16
+                    if( LoRaMacClassBBeaconFreqReq( frequency ) == true )
+ 800e60c:	2064      	movs	r0, #100	; 0x64
+ 800e60e:	fb03 f000 	mul.w	r0, r3, r0
+ 800e612:	f002 fdc4 	bl	801119e <LoRaMacClassBBeaconFreqReq>
+ 800e616:	b140      	cbz	r0, 800e62a <ProcessMacCommands+0x59e>
+                        macCmdPayload[0] = 1;
+ 800e618:	2301      	movs	r3, #1
+ 800e61a:	f88d 302c 	strb.w	r3, [sp, #44]	; 0x2c
+                    LoRaMacCommandsAddCmd( MOTE_MAC_BEACON_FREQ_ANS, macCmdPayload, 1 );
+ 800e61e:	2201      	movs	r2, #1
+ 800e620:	a90b      	add	r1, sp, #44	; 0x2c
+ 800e622:	2013      	movs	r0, #19
+ 800e624:	f002 fe54 	bl	80112d0 <LoRaMacCommandsAddCmd>
+                break;
+ 800e628:	e53c      	b.n	800e0a4 <ProcessMacCommands+0x18>
+                        macCmdPayload[0] = 0;
+ 800e62a:	2300      	movs	r3, #0
+ 800e62c:	f88d 302c 	strb.w	r3, [sp, #44]	; 0x2c
+ 800e630:	e7f5      	b.n	800e61e <ProcessMacCommands+0x592>
+}
+ 800e632:	b00f      	add	sp, #60	; 0x3c
+ 800e634:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 800e638:	20001870 	.word	0x20001870
+ 800e63c:	12d53d80 	.word	0x12d53d80
+ 800e640:	20001fe4 	.word	0x20001fe4
+ 800e644:	200024ec 	.word	0x200024ec
+
+0800e648 <ProcessRadioRxDone>:
+{
+ 800e648:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
+ 800e64c:	b0a5      	sub	sp, #148	; 0x94
+    uint8_t *payload = RxDoneParams.Payload;
+ 800e64e:	4b9c      	ldr	r3, [pc, #624]	; (800e8c0 <ProcessRadioRxDone+0x278>)
+ 800e650:	685e      	ldr	r6, [r3, #4]
+    uint16_t size = RxDoneParams.Size;
+ 800e652:	891d      	ldrh	r5, [r3, #8]
+    int16_t rssi = RxDoneParams.Rssi;
+ 800e654:	f9b3 900a 	ldrsh.w	r9, [r3, #10]
+    int8_t snr = RxDoneParams.Snr;
+ 800e658:	f993 700c 	ldrsb.w	r7, [r3, #12]
+    uint32_t downLinkCounter = 0;
+ 800e65c:	2300      	movs	r3, #0
+ 800e65e:	9308      	str	r3, [sp, #32]
+    uint32_t address = Nvm.MacGroup2.DevAddr;
+ 800e660:	4a98      	ldr	r2, [pc, #608]	; (800e8c4 <ProcessRadioRxDone+0x27c>)
+ 800e662:	f8d2 80e4 	ldr.w	r8, [r2, #228]	; 0xe4
+    MacCtx.McpsConfirm.AckReceived = false;
+ 800e666:	4c98      	ldr	r4, [pc, #608]	; (800e8c8 <ProcessRadioRxDone+0x280>)
+ 800e668:	f884 3438 	strb.w	r3, [r4, #1080]	; 0x438
+    MacCtx.RxStatus.Rssi = rssi;
+ 800e66c:	f8a4 947c 	strh.w	r9, [r4, #1148]	; 0x47c
+    MacCtx.RxStatus.Snr = snr;
+ 800e670:	f884 747e 	strb.w	r7, [r4, #1150]	; 0x47e
+    MacCtx.RxStatus.RxSlot = MacCtx.RxSlot;
+ 800e674:	f894 2480 	ldrb.w	r2, [r4, #1152]	; 0x480
+ 800e678:	f884 247f 	strb.w	r2, [r4, #1151]	; 0x47f
+    MacCtx.McpsIndication.Port = 0;
+ 800e67c:	f884 341b 	strb.w	r3, [r4, #1051]	; 0x41b
+    MacCtx.McpsIndication.Multicast = 0;
+ 800e680:	f884 341a 	strb.w	r3, [r4, #1050]	; 0x41a
+    MacCtx.McpsIndication.IsUplinkTxPending = 0;
+ 800e684:	f884 341d 	strb.w	r3, [r4, #1053]	; 0x41d
+    MacCtx.McpsIndication.Buffer = NULL;
+ 800e688:	f8c4 3420 	str.w	r3, [r4, #1056]	; 0x420
+    MacCtx.McpsIndication.BufferSize = 0;
+ 800e68c:	f884 3424 	strb.w	r3, [r4, #1060]	; 0x424
+    MacCtx.McpsIndication.RxData = false;
+ 800e690:	f884 3425 	strb.w	r3, [r4, #1061]	; 0x425
+    MacCtx.McpsIndication.AckReceived = false;
+ 800e694:	f884 3426 	strb.w	r3, [r4, #1062]	; 0x426
+    MacCtx.McpsIndication.DownLinkCounter = 0;
+ 800e698:	f8c4 3428 	str.w	r3, [r4, #1064]	; 0x428
+    MacCtx.McpsIndication.McpsIndication = MCPS_UNCONFIRMED;
+ 800e69c:	f884 3418 	strb.w	r3, [r4, #1048]	; 0x418
+    MacCtx.McpsIndication.DevAddress = 0;
+ 800e6a0:	f8c4 342c 	str.w	r3, [r4, #1068]	; 0x42c
+    MacCtx.McpsIndication.DeviceTimeAnsReceived = false;
+ 800e6a4:	f884 3430 	strb.w	r3, [r4, #1072]	; 0x430
+    Radio.Sleep( );
+ 800e6a8:	4b88      	ldr	r3, [pc, #544]	; (800e8cc <ProcessRadioRxDone+0x284>)
+ 800e6aa:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800e6ac:	4798      	blx	r3
+    TimerStop( &MacCtx.RxWindowTimer2 );
+ 800e6ae:	f504 7066 	add.w	r0, r4, #920	; 0x398
+ 800e6b2:	f008 fd93 	bl	80171dc <UTIL_TIMER_Stop>
+    if( LoRaMacClassBRxBeacon( payload, size ) == true )
+ 800e6b6:	4629      	mov	r1, r5
+ 800e6b8:	4630      	mov	r0, r6
+ 800e6ba:	f002 fd58 	bl	801116e <LoRaMacClassBRxBeacon>
+ 800e6be:	b9a0      	cbnz	r0, 800e6ea <ProcessRadioRxDone+0xa2>
+    if( Nvm.MacGroup2.DeviceClass == CLASS_B )
+ 800e6c0:	4b80      	ldr	r3, [pc, #512]	; (800e8c4 <ProcessRadioRxDone+0x27c>)
+ 800e6c2:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 800e6c6:	2b01      	cmp	r3, #1
+ 800e6c8:	d016      	beq.n	800e6f8 <ProcessRadioRxDone+0xb0>
+    if( size == 0 )
+ 800e6ca:	b395      	cbz	r5, 800e732 <ProcessRadioRxDone+0xea>
+    macHdr.Value = payload[pktHeaderLen++];
+ 800e6cc:	7834      	ldrb	r4, [r6, #0]
+    switch( macHdr.Bits.MType )
+ 800e6ce:	0963      	lsrs	r3, r4, #5
+ 800e6d0:	3b01      	subs	r3, #1
+ 800e6d2:	2b06      	cmp	r3, #6
+ 800e6d4:	f200 82b3 	bhi.w	800ec3e <ProcessRadioRxDone+0x5f6>
+ 800e6d8:	e8df f013 	tbh	[pc, r3, lsl #1]
+ 800e6dc:	02b10032 	.word	0x02b10032
+ 800e6e0:	02b100c6 	.word	0x02b100c6
+ 800e6e4:	02b100c2 	.word	0x02b100c2
+ 800e6e8:	028b      	.short	0x028b
+        MacCtx.MlmeIndication.BeaconInfo.Rssi = rssi;
+ 800e6ea:	f8a4 9472 	strh.w	r9, [r4, #1138]	; 0x472
+        MacCtx.MlmeIndication.BeaconInfo.Snr = snr;
+ 800e6ee:	f884 7474 	strb.w	r7, [r4, #1140]	; 0x474
+}
+ 800e6f2:	b025      	add	sp, #148	; 0x94
+ 800e6f4:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
+        if( LoRaMacClassBIsPingExpected( ) == true )
+ 800e6f8:	f002 fd3d 	bl	8011176 <LoRaMacClassBIsPingExpected>
+ 800e6fc:	b150      	cbz	r0, 800e714 <ProcessRadioRxDone+0xcc>
+            LoRaMacClassBSetPingSlotState( PINGSLOT_STATE_CALC_PING_OFFSET );
+ 800e6fe:	2000      	movs	r0, #0
+ 800e700:	f002 fd2e 	bl	8011160 <LoRaMacClassBSetPingSlotState>
+            LoRaMacClassBPingSlotTimerEvent( NULL );
+ 800e704:	2000      	movs	r0, #0
+ 800e706:	f002 fd30 	bl	801116a <LoRaMacClassBPingSlotTimerEvent>
+            MacCtx.RxStatus.RxSlot = RX_SLOT_WIN_CLASS_B_PING_SLOT;
+ 800e70a:	4b6f      	ldr	r3, [pc, #444]	; (800e8c8 <ProcessRadioRxDone+0x280>)
+ 800e70c:	2204      	movs	r2, #4
+ 800e70e:	f883 247f 	strb.w	r2, [r3, #1151]	; 0x47f
+ 800e712:	e7da      	b.n	800e6ca <ProcessRadioRxDone+0x82>
+        else if( LoRaMacClassBIsMulticastExpected( ) == true )
+ 800e714:	f002 fd31 	bl	801117a <LoRaMacClassBIsMulticastExpected>
+ 800e718:	2800      	cmp	r0, #0
+ 800e71a:	d0d6      	beq.n	800e6ca <ProcessRadioRxDone+0x82>
+            LoRaMacClassBSetMulticastSlotState( PINGSLOT_STATE_CALC_PING_OFFSET );
+ 800e71c:	2000      	movs	r0, #0
+ 800e71e:	f002 fd20 	bl	8011162 <LoRaMacClassBSetMulticastSlotState>
+            LoRaMacClassBMulticastSlotTimerEvent( NULL );
+ 800e722:	2000      	movs	r0, #0
+ 800e724:	f002 fd22 	bl	801116c <LoRaMacClassBMulticastSlotTimerEvent>
+            MacCtx.RxStatus.RxSlot = RX_SLOT_WIN_CLASS_B_MULTICAST_SLOT;
+ 800e728:	4b67      	ldr	r3, [pc, #412]	; (800e8c8 <ProcessRadioRxDone+0x280>)
+ 800e72a:	2205      	movs	r2, #5
+ 800e72c:	f883 247f 	strb.w	r2, [r3, #1151]	; 0x47f
+ 800e730:	e7cb      	b.n	800e6ca <ProcessRadioRxDone+0x82>
+        MacCtx.McpsIndication.Status = LORAMAC_EVENT_INFO_STATUS_ERROR;
+ 800e732:	4b65      	ldr	r3, [pc, #404]	; (800e8c8 <ProcessRadioRxDone+0x280>)
+ 800e734:	2201      	movs	r2, #1
+ 800e736:	f883 2419 	strb.w	r2, [r3, #1049]	; 0x419
+        PrepareRxDoneAbort( );
+ 800e73a:	f7ff fc2d 	bl	800df98 <PrepareRxDoneAbort>
+        return;
+ 800e73e:	e7d8      	b.n	800e6f2 <ProcessRadioRxDone+0xaa>
+            if( size < LORAMAC_JOIN_ACCEPT_FRAME_MIN_SIZE )
+ 800e740:	2d10      	cmp	r5, #16
+ 800e742:	d92e      	bls.n	800e7a2 <ProcessRadioRxDone+0x15a>
+            macMsgJoinAccept.Buffer = payload;
+ 800e744:	9609      	str	r6, [sp, #36]	; 0x24
+            macMsgJoinAccept.BufSize = size;
+ 800e746:	b2ed      	uxtb	r5, r5
+ 800e748:	f88d 5028 	strb.w	r5, [sp, #40]	; 0x28
+            if( Nvm.MacGroup2.NetworkActivation != ACTIVATION_TYPE_NONE )
+ 800e74c:	4b5d      	ldr	r3, [pc, #372]	; (800e8c4 <ProcessRadioRxDone+0x27c>)
+ 800e74e:	f893 312c 	ldrb.w	r3, [r3, #300]	; 0x12c
+ 800e752:	bb6b      	cbnz	r3, 800e7b0 <ProcessRadioRxDone+0x168>
+            SecureElementGetJoinEui( joinEui );
+ 800e754:	a805      	add	r0, sp, #20
+ 800e756:	f005 fe03 	bl	8014360 <SecureElementGetJoinEui>
+            macCryptoStatus = LoRaMacCryptoHandleJoinAccept( JOIN_REQ, joinEui, &macMsgJoinAccept );
+ 800e75a:	aa09      	add	r2, sp, #36	; 0x24
+ 800e75c:	a905      	add	r1, sp, #20
+ 800e75e:	20ff      	movs	r0, #255	; 0xff
+ 800e760:	f003 fb14 	bl	8011d8c <LoRaMacCryptoHandleJoinAccept>
+ 800e764:	4604      	mov	r4, r0
+            verifyRxDr.DatarateParams.Datarate = macMsgJoinAccept.DLSettings.Bits.RX2DataRate;
+ 800e766:	f89d 3034 	ldrb.w	r3, [sp, #52]	; 0x34
+ 800e76a:	f3c3 0303 	ubfx	r3, r3, #0, #4
+ 800e76e:	f88d 3010 	strb.w	r3, [sp, #16]
+            verifyRxDr.DatarateParams.DownlinkDwellTime = Nvm.MacGroup2.MacParams.DownlinkDwellTime;
+ 800e772:	4b54      	ldr	r3, [pc, #336]	; (800e8c4 <ProcessRadioRxDone+0x27c>)
+ 800e774:	f893 207d 	ldrb.w	r2, [r3, #125]	; 0x7d
+ 800e778:	f88d 2011 	strb.w	r2, [sp, #17]
+            rxDrValid = RegionVerify( Nvm.MacGroup2.Region, &verifyRxDr, PHY_RX_DR );
+ 800e77c:	2207      	movs	r2, #7
+ 800e77e:	a904      	add	r1, sp, #16
+ 800e780:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 800e784:	f003 fd19 	bl	80121ba <RegionVerify>
+            if( ( LORAMAC_CRYPTO_SUCCESS == macCryptoStatus ) && ( rxDrValid == true ) )
+ 800e788:	b904      	cbnz	r4, 800e78c <ProcessRadioRxDone+0x144>
+ 800e78a:	b9c0      	cbnz	r0, 800e7be <ProcessRadioRxDone+0x176>
+                if( LoRaMacConfirmQueueIsCmdActive( MLME_JOIN ) == true )
+ 800e78c:	2001      	movs	r0, #1
+ 800e78e:	f002 ff67 	bl	8011660 <LoRaMacConfirmQueueIsCmdActive>
+ 800e792:	2800      	cmp	r0, #0
+ 800e794:	f000 8247 	beq.w	800ec26 <ProcessRadioRxDone+0x5de>
+                    LoRaMacConfirmQueueSetStatus( LORAMAC_EVENT_INFO_STATUS_JOIN_FAIL, MLME_JOIN );
+ 800e798:	2101      	movs	r1, #1
+ 800e79a:	2007      	movs	r0, #7
+ 800e79c:	f002 ff14 	bl	80115c8 <LoRaMacConfirmQueueSetStatus>
+ 800e7a0:	e241      	b.n	800ec26 <ProcessRadioRxDone+0x5de>
+                MacCtx.McpsIndication.Status = LORAMAC_EVENT_INFO_STATUS_ERROR;
+ 800e7a2:	4b49      	ldr	r3, [pc, #292]	; (800e8c8 <ProcessRadioRxDone+0x280>)
+ 800e7a4:	2201      	movs	r2, #1
+ 800e7a6:	f883 2419 	strb.w	r2, [r3, #1049]	; 0x419
+                PrepareRxDoneAbort( );
+ 800e7aa:	f7ff fbf5 	bl	800df98 <PrepareRxDoneAbort>
+                return;
+ 800e7ae:	e7a0      	b.n	800e6f2 <ProcessRadioRxDone+0xaa>
+                MacCtx.McpsIndication.Status = LORAMAC_EVENT_INFO_STATUS_ERROR;
+ 800e7b0:	4b45      	ldr	r3, [pc, #276]	; (800e8c8 <ProcessRadioRxDone+0x280>)
+ 800e7b2:	2201      	movs	r2, #1
+ 800e7b4:	f883 2419 	strb.w	r2, [r3, #1049]	; 0x419
+                PrepareRxDoneAbort( );
+ 800e7b8:	f7ff fbee 	bl	800df98 <PrepareRxDoneAbort>
+                return;
+ 800e7bc:	e799      	b.n	800e6f2 <ProcessRadioRxDone+0xaa>
+                Nvm.MacGroup2.NetID = ( uint32_t ) macMsgJoinAccept.NetID[0];
+ 800e7be:	f89d 302d 	ldrb.w	r3, [sp, #45]	; 0x2d
+ 800e7c2:	4c40      	ldr	r4, [pc, #256]	; (800e8c4 <ProcessRadioRxDone+0x27c>)
+ 800e7c4:	f8c4 30e0 	str.w	r3, [r4, #224]	; 0xe0
+                Nvm.MacGroup2.NetID |= ( ( uint32_t ) macMsgJoinAccept.NetID[1] << 8 );
+ 800e7c8:	f89d 202e 	ldrb.w	r2, [sp, #46]	; 0x2e
+ 800e7cc:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
+ 800e7d0:	f8c4 30e0 	str.w	r3, [r4, #224]	; 0xe0
+                Nvm.MacGroup2.NetID |= ( ( uint32_t ) macMsgJoinAccept.NetID[2] << 16 );
+ 800e7d4:	f89d 202f 	ldrb.w	r2, [sp, #47]	; 0x2f
+ 800e7d8:	ea43 4302 	orr.w	r3, r3, r2, lsl #16
+ 800e7dc:	f8c4 30e0 	str.w	r3, [r4, #224]	; 0xe0
+                Nvm.MacGroup2.DevAddr = macMsgJoinAccept.DevAddr;
+ 800e7e0:	990c      	ldr	r1, [sp, #48]	; 0x30
+ 800e7e2:	f8c4 10e4 	str.w	r1, [r4, #228]	; 0xe4
+                SecureElementSetDevAddr( ACTIVATION_TYPE_OTAA, Nvm.MacGroup2.DevAddr );
+ 800e7e6:	2002      	movs	r0, #2
+ 800e7e8:	f005 fdc8 	bl	801437c <SecureElementSetDevAddr>
+                Nvm.MacGroup2.MacParams.Rx1DrOffset = macMsgJoinAccept.DLSettings.Bits.RX1DRoffset;
+ 800e7ec:	f89d 3034 	ldrb.w	r3, [sp, #52]	; 0x34
+ 800e7f0:	f3c3 1202 	ubfx	r2, r3, #4, #3
+ 800e7f4:	f884 2069 	strb.w	r2, [r4, #105]	; 0x69
+                Nvm.MacGroup2.MacParams.Rx2Channel.Datarate = macMsgJoinAccept.DLSettings.Bits.RX2DataRate;
+ 800e7f8:	f3c3 0303 	ubfx	r3, r3, #0, #4
+ 800e7fc:	f884 3070 	strb.w	r3, [r4, #112]	; 0x70
+                Nvm.MacGroup2.MacParams.RxCChannel.Datarate = macMsgJoinAccept.DLSettings.Bits.RX2DataRate;
+ 800e800:	f884 3078 	strb.w	r3, [r4, #120]	; 0x78
+                Nvm.MacGroup2.MacParams.ReceiveDelay1 = macMsgJoinAccept.RxDelay;
+ 800e804:	f89d 3035 	ldrb.w	r3, [sp, #53]	; 0x35
+ 800e808:	65a3      	str	r3, [r4, #88]	; 0x58
+                if( Nvm.MacGroup2.MacParams.ReceiveDelay1 == 0 )
+ 800e80a:	b90b      	cbnz	r3, 800e810 <ProcessRadioRxDone+0x1c8>
+                    Nvm.MacGroup2.MacParams.ReceiveDelay1 = 1;
+ 800e80c:	2201      	movs	r2, #1
+ 800e80e:	65a2      	str	r2, [r4, #88]	; 0x58
+                Nvm.MacGroup2.MacParams.ReceiveDelay1 *= 1000;
+ 800e810:	4c2c      	ldr	r4, [pc, #176]	; (800e8c4 <ProcessRadioRxDone+0x27c>)
+ 800e812:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 800e814:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
+ 800e818:	fb02 f303 	mul.w	r3, r2, r3
+ 800e81c:	65a3      	str	r3, [r4, #88]	; 0x58
+                Nvm.MacGroup2.MacParams.ReceiveDelay2 = Nvm.MacGroup2.MacParams.ReceiveDelay1 + 1000;
+ 800e81e:	4413      	add	r3, r2
+ 800e820:	65e3      	str	r3, [r4, #92]	; 0x5c
+                Nvm.MacGroup2.MacParams.ChannelsNbTrans = 1;
+ 800e822:	2601      	movs	r6, #1
+ 800e824:	f884 6068 	strb.w	r6, [r4, #104]	; 0x68
+                Nvm.MacGroup2.Version.Fields.Minor = 0;
+ 800e828:	2300      	movs	r3, #0
+ 800e82a:	f884 312a 	strb.w	r3, [r4, #298]	; 0x12a
+                applyCFList.Payload = macMsgJoinAccept.CFList;
+ 800e82e:	f10d 0336 	add.w	r3, sp, #54	; 0x36
+ 800e832:	9322      	str	r3, [sp, #136]	; 0x88
+                applyCFList.Size = size - 17;
+ 800e834:	3d11      	subs	r5, #17
+ 800e836:	f88d 508c 	strb.w	r5, [sp, #140]	; 0x8c
+                RegionApplyCFList( Nvm.MacGroup2.Region, &applyCFList );
+ 800e83a:	a922      	add	r1, sp, #136	; 0x88
+ 800e83c:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800e840:	f003 fcc5 	bl	80121ce <RegionApplyCFList>
+                Nvm.MacGroup2.NetworkActivation = ACTIVATION_TYPE_OTAA;
+ 800e844:	2302      	movs	r3, #2
+ 800e846:	f884 312c 	strb.w	r3, [r4, #300]	; 0x12c
+                if( LoRaMacConfirmQueueIsCmdActive( joinType ) == true )
+ 800e84a:	4630      	mov	r0, r6
+ 800e84c:	f002 ff08 	bl	8011660 <LoRaMacConfirmQueueIsCmdActive>
+ 800e850:	2800      	cmp	r0, #0
+ 800e852:	f000 81e8 	beq.w	800ec26 <ProcessRadioRxDone+0x5de>
+                    LoRaMacConfirmQueueSetStatus( LORAMAC_EVENT_INFO_STATUS_OK, joinType );
+ 800e856:	4631      	mov	r1, r6
+ 800e858:	2000      	movs	r0, #0
+ 800e85a:	f002 feb5 	bl	80115c8 <LoRaMacConfirmQueueSetStatus>
+ 800e85e:	e1e2      	b.n	800ec26 <ProcessRadioRxDone+0x5de>
+            MacCtx.McpsIndication.McpsIndication = MCPS_CONFIRMED;
+ 800e860:	4b19      	ldr	r3, [pc, #100]	; (800e8c8 <ProcessRadioRxDone+0x280>)
+ 800e862:	2201      	movs	r2, #1
+ 800e864:	f883 2418 	strb.w	r2, [r3, #1048]	; 0x418
+            getPhy.UplinkDwellTime = Nvm.MacGroup2.MacParams.DownlinkDwellTime;
+ 800e868:	4b16      	ldr	r3, [pc, #88]	; (800e8c4 <ProcessRadioRxDone+0x27c>)
+ 800e86a:	f893 207d 	ldrb.w	r2, [r3, #125]	; 0x7d
+ 800e86e:	f88d 2082 	strb.w	r2, [sp, #130]	; 0x82
+            getPhy.Datarate = MacCtx.McpsIndication.RxDatarate;
+ 800e872:	4a15      	ldr	r2, [pc, #84]	; (800e8c8 <ProcessRadioRxDone+0x280>)
+ 800e874:	f992 241c 	ldrsb.w	r2, [r2, #1052]	; 0x41c
+ 800e878:	f88d 2081 	strb.w	r2, [sp, #129]	; 0x81
+            getPhy.Attribute = PHY_MAX_PAYLOAD;
+ 800e87c:	220d      	movs	r2, #13
+ 800e87e:	f88d 2080 	strb.w	r2, [sp, #128]	; 0x80
+            if( Nvm.MacGroup2.MacParams.RepeaterSupport == true )
+ 800e882:	f893 308c 	ldrb.w	r3, [r3, #140]	; 0x8c
+ 800e886:	b113      	cbz	r3, 800e88e <ProcessRadioRxDone+0x246>
+                getPhy.Attribute = PHY_MAX_PAYLOAD_REPEATER;
+ 800e888:	230e      	movs	r3, #14
+ 800e88a:	f88d 3080 	strb.w	r3, [sp, #128]	; 0x80
+            phyParam = RegionGetPhyParam( Nvm.MacGroup2.Region, &getPhy );
+ 800e88e:	a920      	add	r1, sp, #128	; 0x80
+ 800e890:	4b0c      	ldr	r3, [pc, #48]	; (800e8c4 <ProcessRadioRxDone+0x27c>)
+ 800e892:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 800e896:	f003 fc72 	bl	801217e <RegionGetPhyParam>
+ 800e89a:	901f      	str	r0, [sp, #124]	; 0x7c
+            if( ( MAX( 0, ( int16_t )( ( int16_t ) size - ( int16_t ) LORAMAC_FRAME_PAYLOAD_OVERHEAD_SIZE ) ) > ( int16_t )phyParam.Value ) ||
+ 800e89c:	f1a5 030d 	sub.w	r3, r5, #13
+ 800e8a0:	b21b      	sxth	r3, r3
+ 800e8a2:	ea23 73e3 	bic.w	r3, r3, r3, asr #31
+ 800e8a6:	b200      	sxth	r0, r0
+ 800e8a8:	4283      	cmp	r3, r0
+ 800e8aa:	dc01      	bgt.n	800e8b0 <ProcessRadioRxDone+0x268>
+ 800e8ac:	2d0b      	cmp	r5, #11
+ 800e8ae:	d80f      	bhi.n	800e8d0 <ProcessRadioRxDone+0x288>
+                MacCtx.McpsIndication.Status = LORAMAC_EVENT_INFO_STATUS_ERROR;
+ 800e8b0:	4b05      	ldr	r3, [pc, #20]	; (800e8c8 <ProcessRadioRxDone+0x280>)
+ 800e8b2:	2201      	movs	r2, #1
+ 800e8b4:	f883 2419 	strb.w	r2, [r3, #1049]	; 0x419
+                PrepareRxDoneAbort( );
+ 800e8b8:	f7ff fb6e 	bl	800df98 <PrepareRxDoneAbort>
+                return;
+ 800e8bc:	e719      	b.n	800e6f2 <ProcessRadioRxDone+0xaa>
+ 800e8be:	bf00      	nop
+ 800e8c0:	200024ec 	.word	0x200024ec
+ 800e8c4:	20001870 	.word	0x20001870
+ 800e8c8:	20001fe4 	.word	0x20001fe4
+ 800e8cc:	08018cb4 	.word	0x08018cb4
+            macMsgData.Buffer = payload;
+ 800e8d0:	9613      	str	r6, [sp, #76]	; 0x4c
+            macMsgData.BufSize = size;
+ 800e8d2:	f88d 5050 	strb.w	r5, [sp, #80]	; 0x50
+            macMsgData.FRMPayload = MacCtx.RxPayload;
+ 800e8d6:	4bb0      	ldr	r3, [pc, #704]	; (800eb98 <ProcessRadioRxDone+0x550>)
+ 800e8d8:	931c      	str	r3, [sp, #112]	; 0x70
+            macMsgData.FRMPayloadSize = LORAMAC_PHY_MAXPAYLOAD;
+ 800e8da:	23ff      	movs	r3, #255	; 0xff
+ 800e8dc:	f88d 3074 	strb.w	r3, [sp, #116]	; 0x74
+            if( LORAMAC_PARSER_SUCCESS != LoRaMacParserData( &macMsgData ) )
+ 800e8e0:	a813      	add	r0, sp, #76	; 0x4c
+ 800e8e2:	f003 fb21 	bl	8011f28 <LoRaMacParserData>
+ 800e8e6:	2800      	cmp	r0, #0
+ 800e8e8:	d148      	bne.n	800e97c <ProcessRadioRxDone+0x334>
+            MacCtx.McpsIndication.DevAddress = macMsgData.FHDR.DevAddr;
+ 800e8ea:	9a15      	ldr	r2, [sp, #84]	; 0x54
+ 800e8ec:	4bab      	ldr	r3, [pc, #684]	; (800eb9c <ProcessRadioRxDone+0x554>)
+ 800e8ee:	f8c3 242c 	str.w	r2, [r3, #1068]	; 0x42c
+            if( LORAMAC_STATUS_OK != DetermineFrameType( &macMsgData, &fType ) )
+ 800e8f2:	a905      	add	r1, sp, #20
+ 800e8f4:	a813      	add	r0, sp, #76	; 0x4c
+ 800e8f6:	f7ff f987 	bl	800dc08 <DetermineFrameType>
+ 800e8fa:	4605      	mov	r5, r0
+ 800e8fc:	2800      	cmp	r0, #0
+ 800e8fe:	d144      	bne.n	800e98a <ProcessRadioRxDone+0x342>
+            downLinkCounter = 0;
+ 800e900:	2300      	movs	r3, #0
+ 800e902:	9308      	str	r3, [sp, #32]
+            for( uint8_t i = 0; i < LORAMAC_MAX_MC_CTX; i++ )
+ 800e904:	4603      	mov	r3, r0
+ 800e906:	2b00      	cmp	r3, #0
+ 800e908:	d046      	beq.n	800e998 <ProcessRadioRxDone+0x350>
+    AddressIdentifier_t addrID = UNICAST_DEV_ADDR;
+ 800e90a:	f04f 0901 	mov.w	r9, #1
+            if( ( multicast == 1 ) && ( ( fType != FRAME_TYPE_D ) ||
+ 800e90e:	2d01      	cmp	r5, #1
+ 800e910:	d108      	bne.n	800e924 <ProcessRadioRxDone+0x2dc>
+ 800e912:	f89d 3014 	ldrb.w	r3, [sp, #20]
+ 800e916:	2b03      	cmp	r3, #3
+ 800e918:	d16d      	bne.n	800e9f6 <ProcessRadioRxDone+0x3ae>
+                                        ( macMsgData.FHDR.FCtrl.Bits.Ack != 0 ) ||
+ 800e91a:	f89d 3058 	ldrb.w	r3, [sp, #88]	; 0x58
+ 800e91e:	f013 0f60 	tst.w	r3, #96	; 0x60
+ 800e922:	d168      	bne.n	800e9f6 <ProcessRadioRxDone+0x3ae>
+            getPhy.Attribute = PHY_MAX_FCNT_GAP;
+ 800e924:	2315      	movs	r3, #21
+ 800e926:	f88d 3080 	strb.w	r3, [sp, #128]	; 0x80
+            phyParam = RegionGetPhyParam( Nvm.MacGroup2.Region, &getPhy );
+ 800e92a:	4e9d      	ldr	r6, [pc, #628]	; (800eba0 <ProcessRadioRxDone+0x558>)
+ 800e92c:	a920      	add	r1, sp, #128	; 0x80
+ 800e92e:	f896 0048 	ldrb.w	r0, [r6, #72]	; 0x48
+ 800e932:	f003 fc24 	bl	801217e <RegionGetPhyParam>
+ 800e936:	901f      	str	r0, [sp, #124]	; 0x7c
+            macCryptoStatus = GetFCntDown( addrID, fType, &macMsgData, Nvm.MacGroup2.Version, phyParam.Value, &fCntID, &downLinkCounter );
+ 800e938:	ab08      	add	r3, sp, #32
+ 800e93a:	9302      	str	r3, [sp, #8]
+ 800e93c:	f10d 031f 	add.w	r3, sp, #31
+ 800e940:	9301      	str	r3, [sp, #4]
+ 800e942:	b280      	uxth	r0, r0
+ 800e944:	9000      	str	r0, [sp, #0]
+ 800e946:	f8d6 3128 	ldr.w	r3, [r6, #296]	; 0x128
+ 800e94a:	aa13      	add	r2, sp, #76	; 0x4c
+ 800e94c:	f89d 1014 	ldrb.w	r1, [sp, #20]
+ 800e950:	4648      	mov	r0, r9
+ 800e952:	f7ff fb5f 	bl	800e014 <GetFCntDown>
+            if( macCryptoStatus != LORAMAC_CRYPTO_SUCCESS )
+ 800e956:	2800      	cmp	r0, #0
+ 800e958:	d06d      	beq.n	800ea36 <ProcessRadioRxDone+0x3ee>
+                if( macCryptoStatus == LORAMAC_CRYPTO_FAIL_FCNT_DUPLICATED )
+ 800e95a:	2807      	cmp	r0, #7
+ 800e95c:	d052      	beq.n	800ea04 <ProcessRadioRxDone+0x3bc>
+                else if( macCryptoStatus == LORAMAC_CRYPTO_FAIL_MAX_GAP_FCNT )
+ 800e95e:	2808      	cmp	r0, #8
+ 800e960:	d064      	beq.n	800ea2c <ProcessRadioRxDone+0x3e4>
+                    MacCtx.McpsIndication.Status = LORAMAC_EVENT_INFO_STATUS_ERROR;
+ 800e962:	4b8e      	ldr	r3, [pc, #568]	; (800eb9c <ProcessRadioRxDone+0x554>)
+ 800e964:	2201      	movs	r2, #1
+ 800e966:	f883 2419 	strb.w	r2, [r3, #1049]	; 0x419
+                MacCtx.McpsIndication.DownLinkCounter = downLinkCounter;
+ 800e96a:	9a08      	ldr	r2, [sp, #32]
+ 800e96c:	4b8b      	ldr	r3, [pc, #556]	; (800eb9c <ProcessRadioRxDone+0x554>)
+ 800e96e:	f8c3 2428 	str.w	r2, [r3, #1064]	; 0x428
+                MacCtx.MlmeIndication.DownLinkCounter = downLinkCounter;
+ 800e972:	f8c3 2460 	str.w	r2, [r3, #1120]	; 0x460
+                PrepareRxDoneAbort( );
+ 800e976:	f7ff fb0f 	bl	800df98 <PrepareRxDoneAbort>
+                return;
+ 800e97a:	e6ba      	b.n	800e6f2 <ProcessRadioRxDone+0xaa>
+                MacCtx.McpsIndication.Status = LORAMAC_EVENT_INFO_STATUS_ERROR;
+ 800e97c:	4b87      	ldr	r3, [pc, #540]	; (800eb9c <ProcessRadioRxDone+0x554>)
+ 800e97e:	2201      	movs	r2, #1
+ 800e980:	f883 2419 	strb.w	r2, [r3, #1049]	; 0x419
+                PrepareRxDoneAbort( );
+ 800e984:	f7ff fb08 	bl	800df98 <PrepareRxDoneAbort>
+                return;
+ 800e988:	e6b3      	b.n	800e6f2 <ProcessRadioRxDone+0xaa>
+                MacCtx.McpsIndication.Status = LORAMAC_EVENT_INFO_STATUS_ERROR;
+ 800e98a:	4b84      	ldr	r3, [pc, #528]	; (800eb9c <ProcessRadioRxDone+0x554>)
+ 800e98c:	2201      	movs	r2, #1
+ 800e98e:	f883 2419 	strb.w	r2, [r3, #1049]	; 0x419
+                PrepareRxDoneAbort( );
+ 800e992:	f7ff fb01 	bl	800df98 <PrepareRxDoneAbort>
+                return;
+ 800e996:	e6ac      	b.n	800e6f2 <ProcessRadioRxDone+0xaa>
+                if( ( Nvm.MacGroup2.MulticastChannelList[i].ChannelParams.Address == macMsgData.FHDR.DevAddr ) &&
+ 800e998:	4618      	mov	r0, r3
+ 800e99a:	eb03 0143 	add.w	r1, r3, r3, lsl #1
+ 800e99e:	4a80      	ldr	r2, [pc, #512]	; (800eba0 <ProcessRadioRxDone+0x558>)
+ 800e9a0:	eb02 1201 	add.w	r2, r2, r1, lsl #4
+ 800e9a4:	f8d2 20ec 	ldr.w	r2, [r2, #236]	; 0xec
+ 800e9a8:	9915      	ldr	r1, [sp, #84]	; 0x54
+ 800e9aa:	428a      	cmp	r2, r1
+ 800e9ac:	d002      	beq.n	800e9b4 <ProcessRadioRxDone+0x36c>
+            for( uint8_t i = 0; i < LORAMAC_MAX_MC_CTX; i++ )
+ 800e9ae:	3301      	adds	r3, #1
+ 800e9b0:	b2db      	uxtb	r3, r3
+ 800e9b2:	e7a8      	b.n	800e906 <ProcessRadioRxDone+0x2be>
+                    ( Nvm.MacGroup2.MulticastChannelList[i].ChannelParams.IsEnabled == true ) )
+ 800e9b4:	eb03 0643 	add.w	r6, r3, r3, lsl #1
+ 800e9b8:	4979      	ldr	r1, [pc, #484]	; (800eba0 <ProcessRadioRxDone+0x558>)
+ 800e9ba:	eb01 1106 	add.w	r1, r1, r6, lsl #4
+ 800e9be:	f891 10e9 	ldrb.w	r1, [r1, #233]	; 0xe9
+                if( ( Nvm.MacGroup2.MulticastChannelList[i].ChannelParams.Address == macMsgData.FHDR.DevAddr ) &&
+ 800e9c2:	2900      	cmp	r1, #0
+ 800e9c4:	d0f3      	beq.n	800e9ae <ProcessRadioRxDone+0x366>
+                    addrID = Nvm.MacGroup2.MulticastChannelList[i].ChannelParams.GroupID;
+ 800e9c6:	4b76      	ldr	r3, [pc, #472]	; (800eba0 <ProcessRadioRxDone+0x558>)
+ 800e9c8:	2130      	movs	r1, #48	; 0x30
+ 800e9ca:	fb01 3000 	mla	r0, r1, r0, r3
+ 800e9ce:	f890 90ea 	ldrb.w	r9, [r0, #234]	; 0xea
+                    downLinkCounter = *( Nvm.MacGroup2.MulticastChannelList[i].DownLinkCounter );
+ 800e9d2:	f8d0 110c 	ldr.w	r1, [r0, #268]	; 0x10c
+ 800e9d6:	6809      	ldr	r1, [r1, #0]
+ 800e9d8:	9108      	str	r1, [sp, #32]
+                    if( Nvm.MacGroup2.DeviceClass == CLASS_C )
+ 800e9da:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 800e9de:	2b02      	cmp	r3, #2
+ 800e9e0:	d002      	beq.n	800e9e8 <ProcessRadioRxDone+0x3a0>
+                    address = Nvm.MacGroup2.MulticastChannelList[i].ChannelParams.Address;
+ 800e9e2:	4690      	mov	r8, r2
+                    multicast = 1;
+ 800e9e4:	2501      	movs	r5, #1
+ 800e9e6:	e792      	b.n	800e90e <ProcessRadioRxDone+0x2c6>
+                        MacCtx.RxStatus.RxSlot = RX_SLOT_WIN_CLASS_C_MULTICAST;
+ 800e9e8:	4b6c      	ldr	r3, [pc, #432]	; (800eb9c <ProcessRadioRxDone+0x554>)
+ 800e9ea:	2103      	movs	r1, #3
+ 800e9ec:	f883 147f 	strb.w	r1, [r3, #1151]	; 0x47f
+                    address = Nvm.MacGroup2.MulticastChannelList[i].ChannelParams.Address;
+ 800e9f0:	4690      	mov	r8, r2
+                    multicast = 1;
+ 800e9f2:	2501      	movs	r5, #1
+ 800e9f4:	e78b      	b.n	800e90e <ProcessRadioRxDone+0x2c6>
+                MacCtx.McpsIndication.Status = LORAMAC_EVENT_INFO_STATUS_ERROR;
+ 800e9f6:	4b69      	ldr	r3, [pc, #420]	; (800eb9c <ProcessRadioRxDone+0x554>)
+ 800e9f8:	2201      	movs	r2, #1
+ 800e9fa:	f883 2419 	strb.w	r2, [r3, #1049]	; 0x419
+                PrepareRxDoneAbort( );
+ 800e9fe:	f7ff facb 	bl	800df98 <PrepareRxDoneAbort>
+                return;
+ 800ea02:	e676      	b.n	800e6f2 <ProcessRadioRxDone+0xaa>
+                    MacCtx.McpsIndication.Status = LORAMAC_EVENT_INFO_STATUS_DOWNLINK_REPEATED;
+ 800ea04:	4b65      	ldr	r3, [pc, #404]	; (800eb9c <ProcessRadioRxDone+0x554>)
+ 800ea06:	2208      	movs	r2, #8
+ 800ea08:	f883 2419 	strb.w	r2, [r3, #1049]	; 0x419
+                    if( ( Nvm.MacGroup2.Version.Fields.Minor == 0 ) && ( macHdr.Bits.MType == FRAME_TYPE_DATA_CONFIRMED_DOWN ) && ( Nvm.MacGroup1.LastRxMic == macMsgData.MIC ) )
+ 800ea0c:	f896 312a 	ldrb.w	r3, [r6, #298]	; 0x12a
+ 800ea10:	2b00      	cmp	r3, #0
+ 800ea12:	d1aa      	bne.n	800e96a <ProcessRadioRxDone+0x322>
+ 800ea14:	f004 04e0 	and.w	r4, r4, #224	; 0xe0
+ 800ea18:	2ca0      	cmp	r4, #160	; 0xa0
+ 800ea1a:	d1a6      	bne.n	800e96a <ProcessRadioRxDone+0x322>
+ 800ea1c:	6b72      	ldr	r2, [r6, #52]	; 0x34
+ 800ea1e:	9b1e      	ldr	r3, [sp, #120]	; 0x78
+ 800ea20:	429a      	cmp	r2, r3
+ 800ea22:	d1a2      	bne.n	800e96a <ProcessRadioRxDone+0x322>
+                        Nvm.MacGroup1.SrvAckRequested = true;
+ 800ea24:	2201      	movs	r2, #1
+ 800ea26:	f886 203a 	strb.w	r2, [r6, #58]	; 0x3a
+ 800ea2a:	e79e      	b.n	800e96a <ProcessRadioRxDone+0x322>
+                    MacCtx.McpsIndication.Status = LORAMAC_EVENT_INFO_STATUS_DOWNLINK_TOO_MANY_FRAMES_LOSS;
+ 800ea2c:	4b5b      	ldr	r3, [pc, #364]	; (800eb9c <ProcessRadioRxDone+0x554>)
+ 800ea2e:	220a      	movs	r2, #10
+ 800ea30:	f883 2419 	strb.w	r2, [r3, #1049]	; 0x419
+ 800ea34:	e799      	b.n	800e96a <ProcessRadioRxDone+0x322>
+            macCryptoStatus = LoRaMacCryptoUnsecureMessage( addrID, address, fCntID, downLinkCounter, &macMsgData );
+ 800ea36:	ab13      	add	r3, sp, #76	; 0x4c
+ 800ea38:	9300      	str	r3, [sp, #0]
+ 800ea3a:	9b08      	ldr	r3, [sp, #32]
+ 800ea3c:	f89d 201f 	ldrb.w	r2, [sp, #31]
+ 800ea40:	4641      	mov	r1, r8
+ 800ea42:	4648      	mov	r0, r9
+ 800ea44:	f003 f8fa 	bl	8011c3c <LoRaMacCryptoUnsecureMessage>
+            if( macCryptoStatus != LORAMAC_CRYPTO_SUCCESS )
+ 800ea48:	2800      	cmp	r0, #0
+ 800ea4a:	d14a      	bne.n	800eae2 <ProcessRadioRxDone+0x49a>
+            MacCtx.McpsIndication.Status = LORAMAC_EVENT_INFO_STATUS_OK;
+ 800ea4c:	4b53      	ldr	r3, [pc, #332]	; (800eb9c <ProcessRadioRxDone+0x554>)
+ 800ea4e:	2100      	movs	r1, #0
+ 800ea50:	f883 1419 	strb.w	r1, [r3, #1049]	; 0x419
+            MacCtx.McpsIndication.Multicast = multicast;
+ 800ea54:	f883 541a 	strb.w	r5, [r3, #1050]	; 0x41a
+            MacCtx.McpsIndication.Buffer = NULL;
+ 800ea58:	f8c3 1420 	str.w	r1, [r3, #1056]	; 0x420
+            MacCtx.McpsIndication.BufferSize = 0;
+ 800ea5c:	f883 1424 	strb.w	r1, [r3, #1060]	; 0x424
+            MacCtx.McpsIndication.DownLinkCounter = downLinkCounter;
+ 800ea60:	9a08      	ldr	r2, [sp, #32]
+ 800ea62:	f8c3 2428 	str.w	r2, [r3, #1064]	; 0x428
+            MacCtx.MlmeIndication.DownLinkCounter = downLinkCounter;
+ 800ea66:	f8c3 2460 	str.w	r2, [r3, #1120]	; 0x460
+            MacCtx.McpsIndication.AckReceived = macMsgData.FHDR.FCtrl.Bits.Ack;
+ 800ea6a:	f89d 2058 	ldrb.w	r2, [sp, #88]	; 0x58
+ 800ea6e:	f3c2 1240 	ubfx	r2, r2, #5, #1
+ 800ea72:	f883 2426 	strb.w	r2, [r3, #1062]	; 0x426
+            MacCtx.McpsConfirm.Status = LORAMAC_EVENT_INFO_STATUS_OK;
+ 800ea76:	f883 1435 	strb.w	r1, [r3, #1077]	; 0x435
+            MacCtx.McpsConfirm.AckReceived = macMsgData.FHDR.FCtrl.Bits.Ack;
+ 800ea7a:	f883 2438 	strb.w	r2, [r3, #1080]	; 0x438
+            if( ( MacCtx.RxStatus.RxSlot == RX_SLOT_WIN_1 ) ||
+ 800ea7e:	f893 047f 	ldrb.w	r0, [r3, #1151]	; 0x47f
+ 800ea82:	2801      	cmp	r0, #1
+ 800ea84:	d93b      	bls.n	800eafe <ProcessRadioRxDone+0x4b6>
+            if( multicast == 1 )
+ 800ea86:	2d01      	cmp	r5, #1
+ 800ea88:	d03c      	beq.n	800eb04 <ProcessRadioRxDone+0x4bc>
+                if( macHdr.Bits.MType == FRAME_TYPE_DATA_CONFIRMED_DOWN )
+ 800ea8a:	f004 04e0 	and.w	r4, r4, #224	; 0xe0
+ 800ea8e:	2ca0      	cmp	r4, #160	; 0xa0
+ 800ea90:	d03d      	beq.n	800eb0e <ProcessRadioRxDone+0x4c6>
+                    Nvm.MacGroup1.SrvAckRequested = false;
+ 800ea92:	2300      	movs	r3, #0
+ 800ea94:	4a42      	ldr	r2, [pc, #264]	; (800eba0 <ProcessRadioRxDone+0x558>)
+ 800ea96:	f882 303a 	strb.w	r3, [r2, #58]	; 0x3a
+                    MacCtx.McpsIndication.McpsIndication = MCPS_UNCONFIRMED;
+ 800ea9a:	4a40      	ldr	r2, [pc, #256]	; (800eb9c <ProcessRadioRxDone+0x554>)
+ 800ea9c:	f882 3418 	strb.w	r3, [r2, #1048]	; 0x418
+            if( ( ( Nvm.MacGroup1.SrvAckRequested == true ) || ( macMsgData.FHDR.FCtrl.Bits.FPending > 0 ) ) && ( Nvm.MacGroup2.DeviceClass == CLASS_A ) )
+ 800eaa0:	4b3f      	ldr	r3, [pc, #252]	; (800eba0 <ProcessRadioRxDone+0x558>)
+ 800eaa2:	f893 303a 	ldrb.w	r3, [r3, #58]	; 0x3a
+ 800eaa6:	b923      	cbnz	r3, 800eab2 <ProcessRadioRxDone+0x46a>
+ 800eaa8:	f89d 3058 	ldrb.w	r3, [sp, #88]	; 0x58
+ 800eaac:	f013 0f10 	tst.w	r3, #16
+ 800eab0:	d007      	beq.n	800eac2 <ProcessRadioRxDone+0x47a>
+ 800eab2:	4b3b      	ldr	r3, [pc, #236]	; (800eba0 <ProcessRadioRxDone+0x558>)
+ 800eab4:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 800eab8:	b91b      	cbnz	r3, 800eac2 <ProcessRadioRxDone+0x47a>
+                MacCtx.McpsIndication.IsUplinkTxPending = 1;
+ 800eaba:	4b38      	ldr	r3, [pc, #224]	; (800eb9c <ProcessRadioRxDone+0x554>)
+ 800eabc:	2201      	movs	r2, #1
+ 800eabe:	f883 241d 	strb.w	r2, [r3, #1053]	; 0x41d
+            RemoveMacCommands( MacCtx.RxStatus.RxSlot, macMsgData.FHDR.FCtrl, MacCtx.McpsConfirm.McpsRequest );
+ 800eac2:	4b36      	ldr	r3, [pc, #216]	; (800eb9c <ProcessRadioRxDone+0x554>)
+ 800eac4:	f893 2434 	ldrb.w	r2, [r3, #1076]	; 0x434
+ 800eac8:	f89d 1058 	ldrb.w	r1, [sp, #88]	; 0x58
+ 800eacc:	f7ff facf 	bl	800e06e <RemoveMacCommands>
+            switch( fType )
+ 800ead0:	f89d 3014 	ldrb.w	r3, [sp, #20]
+ 800ead4:	2b03      	cmp	r3, #3
+ 800ead6:	f200 8085 	bhi.w	800ebe4 <ProcessRadioRxDone+0x59c>
+ 800eada:	e8df f003 	tbb	[pc, r3]
+ 800eade:	4a27      	.short	0x4a27
+ 800eae0:	7363      	.short	0x7363
+                if( macCryptoStatus == LORAMAC_CRYPTO_FAIL_ADDRESS )
+ 800eae2:	2802      	cmp	r0, #2
+ 800eae4:	d006      	beq.n	800eaf4 <ProcessRadioRxDone+0x4ac>
+                    MacCtx.McpsIndication.Status = LORAMAC_EVENT_INFO_STATUS_MIC_FAIL;
+ 800eae6:	4b2d      	ldr	r3, [pc, #180]	; (800eb9c <ProcessRadioRxDone+0x554>)
+ 800eae8:	220c      	movs	r2, #12
+ 800eaea:	f883 2419 	strb.w	r2, [r3, #1049]	; 0x419
+                PrepareRxDoneAbort( );
+ 800eaee:	f7ff fa53 	bl	800df98 <PrepareRxDoneAbort>
+                return;
+ 800eaf2:	e5fe      	b.n	800e6f2 <ProcessRadioRxDone+0xaa>
+                    MacCtx.McpsIndication.Status = LORAMAC_EVENT_INFO_STATUS_ADDRESS_FAIL;
+ 800eaf4:	4b29      	ldr	r3, [pc, #164]	; (800eb9c <ProcessRadioRxDone+0x554>)
+ 800eaf6:	220b      	movs	r2, #11
+ 800eaf8:	f883 2419 	strb.w	r2, [r3, #1049]	; 0x419
+ 800eafc:	e7f7      	b.n	800eaee <ProcessRadioRxDone+0x4a6>
+                Nvm.MacGroup1.AdrAckCounter = 0;
+ 800eafe:	4b28      	ldr	r3, [pc, #160]	; (800eba0 <ProcessRadioRxDone+0x558>)
+ 800eb00:	6299      	str	r1, [r3, #40]	; 0x28
+ 800eb02:	e7c0      	b.n	800ea86 <ProcessRadioRxDone+0x43e>
+                MacCtx.McpsIndication.McpsIndication = MCPS_MULTICAST;
+ 800eb04:	4b25      	ldr	r3, [pc, #148]	; (800eb9c <ProcessRadioRxDone+0x554>)
+ 800eb06:	2202      	movs	r2, #2
+ 800eb08:	f883 2418 	strb.w	r2, [r3, #1048]	; 0x418
+ 800eb0c:	e7c8      	b.n	800eaa0 <ProcessRadioRxDone+0x458>
+                    Nvm.MacGroup1.SrvAckRequested = true;
+ 800eb0e:	4b24      	ldr	r3, [pc, #144]	; (800eba0 <ProcessRadioRxDone+0x558>)
+ 800eb10:	2201      	movs	r2, #1
+ 800eb12:	f883 203a 	strb.w	r2, [r3, #58]	; 0x3a
+                    if( Nvm.MacGroup2.Version.Fields.Minor == 0 )
+ 800eb16:	f893 312a 	ldrb.w	r3, [r3, #298]	; 0x12a
+ 800eb1a:	b913      	cbnz	r3, 800eb22 <ProcessRadioRxDone+0x4da>
+                        Nvm.MacGroup1.LastRxMic = macMsgData.MIC;
+ 800eb1c:	9a1e      	ldr	r2, [sp, #120]	; 0x78
+ 800eb1e:	4b20      	ldr	r3, [pc, #128]	; (800eba0 <ProcessRadioRxDone+0x558>)
+ 800eb20:	635a      	str	r2, [r3, #52]	; 0x34
+                    MacCtx.McpsIndication.McpsIndication = MCPS_CONFIRMED;
+ 800eb22:	4b1e      	ldr	r3, [pc, #120]	; (800eb9c <ProcessRadioRxDone+0x554>)
+ 800eb24:	2201      	movs	r2, #1
+ 800eb26:	f883 2418 	strb.w	r2, [r3, #1048]	; 0x418
+ 800eb2a:	e7b9      	b.n	800eaa0 <ProcessRadioRxDone+0x458>
+                    ProcessMacCommands( macMsgData.FHDR.FOpts, 0, macMsgData.FHDR.FCtrl.Bits.FOptsLen, snr, MacCtx.RxStatus.RxSlot );
+ 800eb2c:	f89d 2058 	ldrb.w	r2, [sp, #88]	; 0x58
+ 800eb30:	4c1a      	ldr	r4, [pc, #104]	; (800eb9c <ProcessRadioRxDone+0x554>)
+ 800eb32:	f894 347f 	ldrb.w	r3, [r4, #1151]	; 0x47f
+ 800eb36:	9300      	str	r3, [sp, #0]
+ 800eb38:	463b      	mov	r3, r7
+ 800eb3a:	f002 020f 	and.w	r2, r2, #15
+ 800eb3e:	2100      	movs	r1, #0
+ 800eb40:	a817      	add	r0, sp, #92	; 0x5c
+ 800eb42:	f7ff faa3 	bl	800e08c <ProcessMacCommands>
+                    MacCtx.McpsIndication.Port = macMsgData.FPort;
+ 800eb46:	f89d 306c 	ldrb.w	r3, [sp, #108]	; 0x6c
+ 800eb4a:	f884 341b 	strb.w	r3, [r4, #1051]	; 0x41b
+                    MacCtx.McpsIndication.Buffer = macMsgData.FRMPayload;
+ 800eb4e:	9b1c      	ldr	r3, [sp, #112]	; 0x70
+ 800eb50:	f8c4 3420 	str.w	r3, [r4, #1056]	; 0x420
+                    MacCtx.McpsIndication.BufferSize = macMsgData.FRMPayloadSize;
+ 800eb54:	f89d 3074 	ldrb.w	r3, [sp, #116]	; 0x74
+ 800eb58:	f884 3424 	strb.w	r3, [r4, #1060]	; 0x424
+                    MacCtx.McpsIndication.RxData = true;
+ 800eb5c:	2301      	movs	r3, #1
+ 800eb5e:	f884 3425 	strb.w	r3, [r4, #1061]	; 0x425
+            MacCtx.MacFlags.Bits.McpsInd = 1;
+ 800eb62:	4a0e      	ldr	r2, [pc, #56]	; (800eb9c <ProcessRadioRxDone+0x554>)
+ 800eb64:	f892 3481 	ldrb.w	r3, [r2, #1153]	; 0x481
+ 800eb68:	f043 0302 	orr.w	r3, r3, #2
+ 800eb6c:	f882 3481 	strb.w	r3, [r2, #1153]	; 0x481
+            break;
+ 800eb70:	e059      	b.n	800ec26 <ProcessRadioRxDone+0x5de>
+                    ProcessMacCommands( macMsgData.FHDR.FOpts, 0, macMsgData.FHDR.FCtrl.Bits.FOptsLen, snr, MacCtx.RxStatus.RxSlot );
+ 800eb72:	f89d 2058 	ldrb.w	r2, [sp, #88]	; 0x58
+ 800eb76:	4c09      	ldr	r4, [pc, #36]	; (800eb9c <ProcessRadioRxDone+0x554>)
+ 800eb78:	f894 347f 	ldrb.w	r3, [r4, #1151]	; 0x47f
+ 800eb7c:	9300      	str	r3, [sp, #0]
+ 800eb7e:	463b      	mov	r3, r7
+ 800eb80:	f002 020f 	and.w	r2, r2, #15
+ 800eb84:	2100      	movs	r1, #0
+ 800eb86:	a817      	add	r0, sp, #92	; 0x5c
+ 800eb88:	f7ff fa80 	bl	800e08c <ProcessMacCommands>
+                    MacCtx.McpsIndication.Port = macMsgData.FPort;
+ 800eb8c:	f89d 306c 	ldrb.w	r3, [sp, #108]	; 0x6c
+ 800eb90:	f884 341b 	strb.w	r3, [r4, #1051]	; 0x41b
+                    break;
+ 800eb94:	e7e5      	b.n	800eb62 <ProcessRadioRxDone+0x51a>
+ 800eb96:	bf00      	nop
+ 800eb98:	2000221c 	.word	0x2000221c
+ 800eb9c:	20001fe4 	.word	0x20001fe4
+ 800eba0:	20001870 	.word	0x20001870
+                    ProcessMacCommands( macMsgData.FRMPayload, 0, macMsgData.FRMPayloadSize, snr, MacCtx.RxStatus.RxSlot );
+ 800eba4:	4c33      	ldr	r4, [pc, #204]	; (800ec74 <ProcessRadioRxDone+0x62c>)
+ 800eba6:	f894 347f 	ldrb.w	r3, [r4, #1151]	; 0x47f
+ 800ebaa:	9300      	str	r3, [sp, #0]
+ 800ebac:	463b      	mov	r3, r7
+ 800ebae:	f89d 2074 	ldrb.w	r2, [sp, #116]	; 0x74
+ 800ebb2:	2100      	movs	r1, #0
+ 800ebb4:	981c      	ldr	r0, [sp, #112]	; 0x70
+ 800ebb6:	f7ff fa69 	bl	800e08c <ProcessMacCommands>
+                    MacCtx.McpsIndication.Port = macMsgData.FPort;
+ 800ebba:	f89d 306c 	ldrb.w	r3, [sp, #108]	; 0x6c
+ 800ebbe:	f884 341b 	strb.w	r3, [r4, #1051]	; 0x41b
+                    break;
+ 800ebc2:	e7ce      	b.n	800eb62 <ProcessRadioRxDone+0x51a>
+                    MacCtx.McpsIndication.Port = macMsgData.FPort;
+ 800ebc4:	f89d 206c 	ldrb.w	r2, [sp, #108]	; 0x6c
+ 800ebc8:	4b2a      	ldr	r3, [pc, #168]	; (800ec74 <ProcessRadioRxDone+0x62c>)
+ 800ebca:	f883 241b 	strb.w	r2, [r3, #1051]	; 0x41b
+                    MacCtx.McpsIndication.Buffer = macMsgData.FRMPayload;
+ 800ebce:	9a1c      	ldr	r2, [sp, #112]	; 0x70
+ 800ebd0:	f8c3 2420 	str.w	r2, [r3, #1056]	; 0x420
+                    MacCtx.McpsIndication.BufferSize = macMsgData.FRMPayloadSize;
+ 800ebd4:	f89d 2074 	ldrb.w	r2, [sp, #116]	; 0x74
+ 800ebd8:	f883 2424 	strb.w	r2, [r3, #1060]	; 0x424
+                    MacCtx.McpsIndication.RxData = true;
+ 800ebdc:	2201      	movs	r2, #1
+ 800ebde:	f883 2425 	strb.w	r2, [r3, #1061]	; 0x425
+                    break;
+ 800ebe2:	e7be      	b.n	800eb62 <ProcessRadioRxDone+0x51a>
+                    MacCtx.McpsIndication.Status = LORAMAC_EVENT_INFO_STATUS_ERROR;
+ 800ebe4:	4b23      	ldr	r3, [pc, #140]	; (800ec74 <ProcessRadioRxDone+0x62c>)
+ 800ebe6:	2201      	movs	r2, #1
+ 800ebe8:	f883 2419 	strb.w	r2, [r3, #1049]	; 0x419
+                    PrepareRxDoneAbort( );
+ 800ebec:	f7ff f9d4 	bl	800df98 <PrepareRxDoneAbort>
+                    break;
+ 800ebf0:	e7b7      	b.n	800eb62 <ProcessRadioRxDone+0x51a>
+            memcpy1( MacCtx.RxPayload, &payload[pktHeaderLen], size - pktHeaderLen );
+ 800ebf2:	1e6a      	subs	r2, r5, #1
+ 800ebf4:	4c1f      	ldr	r4, [pc, #124]	; (800ec74 <ProcessRadioRxDone+0x62c>)
+ 800ebf6:	f504 770e 	add.w	r7, r4, #568	; 0x238
+ 800ebfa:	b292      	uxth	r2, r2
+ 800ebfc:	1c71      	adds	r1, r6, #1
+ 800ebfe:	4638      	mov	r0, r7
+ 800ec00:	f005 fccb 	bl	801459a <memcpy1>
+            MacCtx.McpsIndication.McpsIndication = MCPS_PROPRIETARY;
+ 800ec04:	2303      	movs	r3, #3
+ 800ec06:	f884 3418 	strb.w	r3, [r4, #1048]	; 0x418
+            MacCtx.McpsIndication.Status = LORAMAC_EVENT_INFO_STATUS_OK;
+ 800ec0a:	2300      	movs	r3, #0
+ 800ec0c:	f884 3419 	strb.w	r3, [r4, #1049]	; 0x419
+            MacCtx.McpsIndication.Buffer = MacCtx.RxPayload;
+ 800ec10:	f8c4 7420 	str.w	r7, [r4, #1056]	; 0x420
+            MacCtx.McpsIndication.BufferSize = size - pktHeaderLen;
+ 800ec14:	3d01      	subs	r5, #1
+ 800ec16:	f884 5424 	strb.w	r5, [r4, #1060]	; 0x424
+            MacCtx.MacFlags.Bits.McpsInd = 1;
+ 800ec1a:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800ec1e:	f043 0302 	orr.w	r3, r3, #2
+ 800ec22:	f884 3481 	strb.w	r3, [r4, #1153]	; 0x481
+    if( MacCtx.NodeAckRequested == true )
+ 800ec26:	4b13      	ldr	r3, [pc, #76]	; (800ec74 <ProcessRadioRxDone+0x62c>)
+ 800ec28:	f893 3410 	ldrb.w	r3, [r3, #1040]	; 0x410
+ 800ec2c:	b173      	cbz	r3, 800ec4c <ProcessRadioRxDone+0x604>
+        if( MacCtx.McpsConfirm.AckReceived == true )
+ 800ec2e:	4b11      	ldr	r3, [pc, #68]	; (800ec74 <ProcessRadioRxDone+0x62c>)
+ 800ec30:	f893 3438 	ldrb.w	r3, [r3, #1080]	; 0x438
+ 800ec34:	b17b      	cbz	r3, 800ec56 <ProcessRadioRxDone+0x60e>
+            OnAckTimeoutTimerEvent( NULL );
+ 800ec36:	2000      	movs	r0, #0
+ 800ec38:	f7ff f98e 	bl	800df58 <OnAckTimeoutTimerEvent>
+ 800ec3c:	e00b      	b.n	800ec56 <ProcessRadioRxDone+0x60e>
+            MacCtx.McpsIndication.Status = LORAMAC_EVENT_INFO_STATUS_ERROR;
+ 800ec3e:	4b0d      	ldr	r3, [pc, #52]	; (800ec74 <ProcessRadioRxDone+0x62c>)
+ 800ec40:	2201      	movs	r2, #1
+ 800ec42:	f883 2419 	strb.w	r2, [r3, #1049]	; 0x419
+            PrepareRxDoneAbort( );
+ 800ec46:	f7ff f9a7 	bl	800df98 <PrepareRxDoneAbort>
+            break;
+ 800ec4a:	e7ec      	b.n	800ec26 <ProcessRadioRxDone+0x5de>
+        if( Nvm.MacGroup2.DeviceClass == CLASS_C )
+ 800ec4c:	4b0a      	ldr	r3, [pc, #40]	; (800ec78 <ProcessRadioRxDone+0x630>)
+ 800ec4e:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 800ec52:	2b02      	cmp	r3, #2
+ 800ec54:	d009      	beq.n	800ec6a <ProcessRadioRxDone+0x622>
+    MacCtx.MacFlags.Bits.MacDone = 1;
+ 800ec56:	4a07      	ldr	r2, [pc, #28]	; (800ec74 <ProcessRadioRxDone+0x62c>)
+ 800ec58:	f892 3481 	ldrb.w	r3, [r2, #1153]	; 0x481
+ 800ec5c:	f043 0310 	orr.w	r3, r3, #16
+ 800ec60:	f882 3481 	strb.w	r3, [r2, #1153]	; 0x481
+    UpdateRxSlotIdleState( );
+ 800ec64:	f7fe ff4e 	bl	800db04 <UpdateRxSlotIdleState>
+ 800ec68:	e543      	b.n	800e6f2 <ProcessRadioRxDone+0xaa>
+            OnAckTimeoutTimerEvent( NULL );
+ 800ec6a:	2000      	movs	r0, #0
+ 800ec6c:	f7ff f974 	bl	800df58 <OnAckTimeoutTimerEvent>
+ 800ec70:	e7f1      	b.n	800ec56 <ProcessRadioRxDone+0x60e>
+ 800ec72:	bf00      	nop
+ 800ec74:	20001fe4 	.word	0x20001fe4
+ 800ec78:	20001870 	.word	0x20001870
+
+0800ec7c <ProcessRadioTxTimeout>:
+{
+ 800ec7c:	b510      	push	{r4, lr}
+    if( Nvm.MacGroup2.DeviceClass != CLASS_C )
+ 800ec7e:	4b0f      	ldr	r3, [pc, #60]	; (800ecbc <ProcessRadioTxTimeout+0x40>)
+ 800ec80:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 800ec84:	2b02      	cmp	r3, #2
+ 800ec86:	d002      	beq.n	800ec8e <ProcessRadioTxTimeout+0x12>
+        Radio.Sleep( );
+ 800ec88:	4b0d      	ldr	r3, [pc, #52]	; (800ecc0 <ProcessRadioTxTimeout+0x44>)
+ 800ec8a:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800ec8c:	4798      	blx	r3
+    UpdateRxSlotIdleState( );
+ 800ec8e:	f7fe ff39 	bl	800db04 <UpdateRxSlotIdleState>
+    MacCtx.McpsConfirm.Status = LORAMAC_EVENT_INFO_STATUS_TX_TIMEOUT;
+ 800ec92:	4c0c      	ldr	r4, [pc, #48]	; (800ecc4 <ProcessRadioTxTimeout+0x48>)
+ 800ec94:	2002      	movs	r0, #2
+ 800ec96:	f884 0435 	strb.w	r0, [r4, #1077]	; 0x435
+    LoRaMacConfirmQueueSetStatusCmn( LORAMAC_EVENT_INFO_STATUS_TX_TIMEOUT );
+ 800ec9a:	f002 fcc3 	bl	8011624 <LoRaMacConfirmQueueSetStatusCmn>
+    if( MacCtx.NodeAckRequested == true )
+ 800ec9e:	f894 3410 	ldrb.w	r3, [r4, #1040]	; 0x410
+ 800eca2:	b113      	cbz	r3, 800ecaa <ProcessRadioTxTimeout+0x2e>
+        MacCtx.AckTimeoutRetry = true;
+ 800eca4:	2201      	movs	r2, #1
+ 800eca6:	f884 240f 	strb.w	r2, [r4, #1039]	; 0x40f
+    MacCtx.MacFlags.Bits.MacDone = 1;
+ 800ecaa:	4a06      	ldr	r2, [pc, #24]	; (800ecc4 <ProcessRadioTxTimeout+0x48>)
+ 800ecac:	f892 3481 	ldrb.w	r3, [r2, #1153]	; 0x481
+ 800ecb0:	f043 0310 	orr.w	r3, r3, #16
+ 800ecb4:	f882 3481 	strb.w	r3, [r2, #1153]	; 0x481
+}
+ 800ecb8:	bd10      	pop	{r4, pc}
+ 800ecba:	bf00      	nop
+ 800ecbc:	20001870 	.word	0x20001870
+ 800ecc0:	08018cb4 	.word	0x08018cb4
+ 800ecc4:	20001fe4 	.word	0x20001fe4
+
+0800ecc8 <CheckForClassBCollision>:
+{
+ 800ecc8:	b508      	push	{r3, lr}
+    if( LoRaMacClassBIsBeaconExpected( ) == true )
+ 800ecca:	f002 fa52 	bl	8011172 <LoRaMacClassBIsBeaconExpected>
+ 800ecce:	b978      	cbnz	r0, 800ecf0 <CheckForClassBCollision+0x28>
+    if( Nvm.MacGroup2.DeviceClass == CLASS_B )
+ 800ecd0:	4b09      	ldr	r3, [pc, #36]	; (800ecf8 <CheckForClassBCollision+0x30>)
+ 800ecd2:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 800ecd6:	2b01      	cmp	r3, #1
+ 800ecd8:	d001      	beq.n	800ecde <CheckForClassBCollision+0x16>
+    return LORAMAC_STATUS_OK;
+ 800ecda:	2000      	movs	r0, #0
+}
+ 800ecdc:	bd08      	pop	{r3, pc}
+        if( LoRaMacClassBIsPingExpected( ) == true )
+ 800ecde:	f002 fa4a 	bl	8011176 <LoRaMacClassBIsPingExpected>
+ 800ece2:	b938      	cbnz	r0, 800ecf4 <CheckForClassBCollision+0x2c>
+        else if( LoRaMacClassBIsMulticastExpected( ) == true )
+ 800ece4:	f002 fa49 	bl	801117a <LoRaMacClassBIsMulticastExpected>
+ 800ece8:	2800      	cmp	r0, #0
+ 800ecea:	d0f7      	beq.n	800ecdc <CheckForClassBCollision+0x14>
+            return LORAMAC_STATUS_BUSY_PING_SLOT_WINDOW_TIME;
+ 800ecec:	200f      	movs	r0, #15
+ 800ecee:	e7f5      	b.n	800ecdc <CheckForClassBCollision+0x14>
+        return LORAMAC_STATUS_BUSY_BEACON_RESERVED_TIME;
+ 800ecf0:	200e      	movs	r0, #14
+ 800ecf2:	e7f3      	b.n	800ecdc <CheckForClassBCollision+0x14>
+            return LORAMAC_STATUS_BUSY_PING_SLOT_WINDOW_TIME;
+ 800ecf4:	200f      	movs	r0, #15
+ 800ecf6:	e7f1      	b.n	800ecdc <CheckForClassBCollision+0x14>
+ 800ecf8:	20001870 	.word	0x20001870
+
+0800ecfc <HandleRadioRxErrorTimeout>:
+{
+ 800ecfc:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 800ecfe:	4605      	mov	r5, r0
+ 800ed00:	460c      	mov	r4, r1
+    if( Nvm.MacGroup2.DeviceClass != CLASS_C )
+ 800ed02:	4b37      	ldr	r3, [pc, #220]	; (800ede0 <HandleRadioRxErrorTimeout+0xe4>)
+ 800ed04:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 800ed08:	2b02      	cmp	r3, #2
+ 800ed0a:	d002      	beq.n	800ed12 <HandleRadioRxErrorTimeout+0x16>
+        Radio.Sleep( );
+ 800ed0c:	4b35      	ldr	r3, [pc, #212]	; (800ede4 <HandleRadioRxErrorTimeout+0xe8>)
+ 800ed0e:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800ed10:	4798      	blx	r3
+    if( LoRaMacClassBIsBeaconExpected( ) == true )
+ 800ed12:	f002 fa2e 	bl	8011172 <LoRaMacClassBIsBeaconExpected>
+ 800ed16:	4606      	mov	r6, r0
+ 800ed18:	bb00      	cbnz	r0, 800ed5c <HandleRadioRxErrorTimeout+0x60>
+    if( Nvm.MacGroup2.DeviceClass == CLASS_B )
+ 800ed1a:	4b31      	ldr	r3, [pc, #196]	; (800ede0 <HandleRadioRxErrorTimeout+0xe4>)
+ 800ed1c:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 800ed20:	2b01      	cmp	r3, #1
+ 800ed22:	d022      	beq.n	800ed6a <HandleRadioRxErrorTimeout+0x6e>
+    if( classBRx == false )
+ 800ed24:	b9be      	cbnz	r6, 800ed56 <HandleRadioRxErrorTimeout+0x5a>
+        if( MacCtx.RxSlot == RX_SLOT_WIN_1 )
+ 800ed26:	4b30      	ldr	r3, [pc, #192]	; (800ede8 <HandleRadioRxErrorTimeout+0xec>)
+ 800ed28:	f893 3480 	ldrb.w	r3, [r3, #1152]	; 0x480
+ 800ed2c:	2b00      	cmp	r3, #0
+ 800ed2e:	d13f      	bne.n	800edb0 <HandleRadioRxErrorTimeout+0xb4>
+            if( MacCtx.NodeAckRequested == true )
+ 800ed30:	4b2d      	ldr	r3, [pc, #180]	; (800ede8 <HandleRadioRxErrorTimeout+0xec>)
+ 800ed32:	f893 3410 	ldrb.w	r3, [r3, #1040]	; 0x410
+ 800ed36:	b113      	cbz	r3, 800ed3e <HandleRadioRxErrorTimeout+0x42>
+                MacCtx.McpsConfirm.Status = rx1EventInfoStatus;
+ 800ed38:	4b2b      	ldr	r3, [pc, #172]	; (800ede8 <HandleRadioRxErrorTimeout+0xec>)
+ 800ed3a:	f883 5435 	strb.w	r5, [r3, #1077]	; 0x435
+            LoRaMacConfirmQueueSetStatusCmn( rx1EventInfoStatus );
+ 800ed3e:	4628      	mov	r0, r5
+ 800ed40:	f002 fc70 	bl	8011624 <LoRaMacConfirmQueueSetStatusCmn>
+            if( TimerGetElapsedTime( Nvm.MacGroup1.LastTxDoneTime ) >= MacCtx.RxWindow2Delay )
+ 800ed44:	4b26      	ldr	r3, [pc, #152]	; (800ede0 <HandleRadioRxErrorTimeout+0xe4>)
+ 800ed46:	6ad8      	ldr	r0, [r3, #44]	; 0x2c
+ 800ed48:	f008 fa12 	bl	8017170 <UTIL_TIMER_GetElapsedTime>
+ 800ed4c:	4b26      	ldr	r3, [pc, #152]	; (800ede8 <HandleRadioRxErrorTimeout+0xec>)
+ 800ed4e:	f8d3 33b4 	ldr.w	r3, [r3, #948]	; 0x3b4
+ 800ed52:	4298      	cmp	r0, r3
+ 800ed54:	d220      	bcs.n	800ed98 <HandleRadioRxErrorTimeout+0x9c>
+    UpdateRxSlotIdleState( );
+ 800ed56:	f7fe fed5 	bl	800db04 <UpdateRxSlotIdleState>
+}
+ 800ed5a:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+        LoRaMacClassBSetBeaconState( BEACON_STATE_TIMEOUT );
+ 800ed5c:	2002      	movs	r0, #2
+ 800ed5e:	f002 f9fe 	bl	801115e <LoRaMacClassBSetBeaconState>
+        LoRaMacClassBBeaconTimerEvent( NULL );
+ 800ed62:	2000      	movs	r0, #0
+ 800ed64:	f002 fa00 	bl	8011168 <LoRaMacClassBBeaconTimerEvent>
+        classBRx = true;
+ 800ed68:	e7d7      	b.n	800ed1a <HandleRadioRxErrorTimeout+0x1e>
+        if( LoRaMacClassBIsPingExpected( ) == true )
+ 800ed6a:	f002 fa04 	bl	8011176 <LoRaMacClassBIsPingExpected>
+ 800ed6e:	4607      	mov	r7, r0
+ 800ed70:	b950      	cbnz	r0, 800ed88 <HandleRadioRxErrorTimeout+0x8c>
+        if( LoRaMacClassBIsMulticastExpected( ) == true )
+ 800ed72:	f002 fa02 	bl	801117a <LoRaMacClassBIsMulticastExpected>
+ 800ed76:	2800      	cmp	r0, #0
+ 800ed78:	d0d4      	beq.n	800ed24 <HandleRadioRxErrorTimeout+0x28>
+            LoRaMacClassBSetMulticastSlotState( PINGSLOT_STATE_CALC_PING_OFFSET );
+ 800ed7a:	2000      	movs	r0, #0
+ 800ed7c:	f002 f9f1 	bl	8011162 <LoRaMacClassBSetMulticastSlotState>
+            LoRaMacClassBMulticastSlotTimerEvent( NULL );
+ 800ed80:	2000      	movs	r0, #0
+ 800ed82:	f002 f9f3 	bl	801116c <LoRaMacClassBMulticastSlotTimerEvent>
+    if( classBRx == false )
+ 800ed86:	e7e6      	b.n	800ed56 <HandleRadioRxErrorTimeout+0x5a>
+            LoRaMacClassBSetPingSlotState( PINGSLOT_STATE_CALC_PING_OFFSET );
+ 800ed88:	2000      	movs	r0, #0
+ 800ed8a:	f002 f9e9 	bl	8011160 <LoRaMacClassBSetPingSlotState>
+            LoRaMacClassBPingSlotTimerEvent( NULL );
+ 800ed8e:	2000      	movs	r0, #0
+ 800ed90:	f002 f9eb 	bl	801116a <LoRaMacClassBPingSlotTimerEvent>
+            classBRx = true;
+ 800ed94:	463e      	mov	r6, r7
+ 800ed96:	e7ec      	b.n	800ed72 <HandleRadioRxErrorTimeout+0x76>
+                TimerStop( &MacCtx.RxWindowTimer2 );
+ 800ed98:	4c13      	ldr	r4, [pc, #76]	; (800ede8 <HandleRadioRxErrorTimeout+0xec>)
+ 800ed9a:	f504 7066 	add.w	r0, r4, #920	; 0x398
+ 800ed9e:	f008 fa1d 	bl	80171dc <UTIL_TIMER_Stop>
+                MacCtx.MacFlags.Bits.MacDone = 1;
+ 800eda2:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800eda6:	f043 0310 	orr.w	r3, r3, #16
+ 800edaa:	f884 3481 	strb.w	r3, [r4, #1153]	; 0x481
+ 800edae:	e7d2      	b.n	800ed56 <HandleRadioRxErrorTimeout+0x5a>
+            if( MacCtx.NodeAckRequested == true )
+ 800edb0:	4b0d      	ldr	r3, [pc, #52]	; (800ede8 <HandleRadioRxErrorTimeout+0xec>)
+ 800edb2:	f893 3410 	ldrb.w	r3, [r3, #1040]	; 0x410
+ 800edb6:	b113      	cbz	r3, 800edbe <HandleRadioRxErrorTimeout+0xc2>
+                MacCtx.McpsConfirm.Status = rx2EventInfoStatus;
+ 800edb8:	4b0b      	ldr	r3, [pc, #44]	; (800ede8 <HandleRadioRxErrorTimeout+0xec>)
+ 800edba:	f883 4435 	strb.w	r4, [r3, #1077]	; 0x435
+            LoRaMacConfirmQueueSetStatusCmn( rx2EventInfoStatus );
+ 800edbe:	4620      	mov	r0, r4
+ 800edc0:	f002 fc30 	bl	8011624 <LoRaMacConfirmQueueSetStatusCmn>
+            if( Nvm.MacGroup2.DeviceClass != CLASS_C )
+ 800edc4:	4b06      	ldr	r3, [pc, #24]	; (800ede0 <HandleRadioRxErrorTimeout+0xe4>)
+ 800edc6:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 800edca:	2b02      	cmp	r3, #2
+ 800edcc:	d0c3      	beq.n	800ed56 <HandleRadioRxErrorTimeout+0x5a>
+                MacCtx.MacFlags.Bits.MacDone = 1;
+ 800edce:	4a06      	ldr	r2, [pc, #24]	; (800ede8 <HandleRadioRxErrorTimeout+0xec>)
+ 800edd0:	f892 3481 	ldrb.w	r3, [r2, #1153]	; 0x481
+ 800edd4:	f043 0310 	orr.w	r3, r3, #16
+ 800edd8:	f882 3481 	strb.w	r3, [r2, #1153]	; 0x481
+ 800eddc:	e7bb      	b.n	800ed56 <HandleRadioRxErrorTimeout+0x5a>
+ 800edde:	bf00      	nop
+ 800ede0:	20001870 	.word	0x20001870
+ 800ede4:	08018cb4 	.word	0x08018cb4
+ 800ede8:	20001fe4 	.word	0x20001fe4
+
+0800edec <ProcessRadioRxError>:
+{
+ 800edec:	b508      	push	{r3, lr}
+    HandleRadioRxErrorTimeout( LORAMAC_EVENT_INFO_STATUS_RX1_ERROR, LORAMAC_EVENT_INFO_STATUS_RX2_ERROR );
+ 800edee:	2106      	movs	r1, #6
+ 800edf0:	2005      	movs	r0, #5
+ 800edf2:	f7ff ff83 	bl	800ecfc <HandleRadioRxErrorTimeout>
+}
+ 800edf6:	bd08      	pop	{r3, pc}
+
+0800edf8 <ProcessRadioRxTimeout>:
+{
+ 800edf8:	b508      	push	{r3, lr}
+    HandleRadioRxErrorTimeout( LORAMAC_EVENT_INFO_STATUS_RX1_TIMEOUT, LORAMAC_EVENT_INFO_STATUS_RX2_TIMEOUT );
+ 800edfa:	2104      	movs	r1, #4
+ 800edfc:	2003      	movs	r0, #3
+ 800edfe:	f7ff ff7d 	bl	800ecfc <HandleRadioRxErrorTimeout>
+}
+ 800ee02:	bd08      	pop	{r3, pc}
+
+0800ee04 <LoRaMacHandleIrqEvents>:
+  __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
+ 800ee04:	f3ef 8110 	mrs	r1, PRIMASK
+  __ASM volatile ("cpsid i" : : : "memory");
+ 800ee08:	b672      	cpsid	i
+    events = LoRaMacRadioEvents;
+ 800ee0a:	4a14      	ldr	r2, [pc, #80]	; (800ee5c <LoRaMacHandleIrqEvents+0x58>)
+ 800ee0c:	6813      	ldr	r3, [r2, #0]
+    LoRaMacRadioEvents.Value = 0;
+ 800ee0e:	2000      	movs	r0, #0
+ 800ee10:	6010      	str	r0, [r2, #0]
+  __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
+ 800ee12:	f381 8810 	msr	PRIMASK, r1
+    if( events.Value != 0 )
+ 800ee16:	b303      	cbz	r3, 800ee5a <LoRaMacHandleIrqEvents+0x56>
+{
+ 800ee18:	b510      	push	{r4, lr}
+        if( events.Events.TxDone == 1 )
+ 800ee1a:	b2dc      	uxtb	r4, r3
+ 800ee1c:	f013 0f10 	tst.w	r3, #16
+ 800ee20:	d10c      	bne.n	800ee3c <LoRaMacHandleIrqEvents+0x38>
+        if( events.Events.RxDone == 1 )
+ 800ee22:	f014 0f08 	tst.w	r4, #8
+ 800ee26:	d10c      	bne.n	800ee42 <LoRaMacHandleIrqEvents+0x3e>
+        if( events.Events.TxTimeout == 1 )
+ 800ee28:	f014 0f04 	tst.w	r4, #4
+ 800ee2c:	d10c      	bne.n	800ee48 <LoRaMacHandleIrqEvents+0x44>
+        if( events.Events.RxError == 1 )
+ 800ee2e:	f014 0f02 	tst.w	r4, #2
+ 800ee32:	d10c      	bne.n	800ee4e <LoRaMacHandleIrqEvents+0x4a>
+        if( events.Events.RxTimeout == 1 )
+ 800ee34:	f014 0f01 	tst.w	r4, #1
+ 800ee38:	d10c      	bne.n	800ee54 <LoRaMacHandleIrqEvents+0x50>
+}
+ 800ee3a:	bd10      	pop	{r4, pc}
+            ProcessRadioTxDone( );
+ 800ee3c:	f7ff f800 	bl	800de40 <ProcessRadioTxDone>
+ 800ee40:	e7ef      	b.n	800ee22 <LoRaMacHandleIrqEvents+0x1e>
+            ProcessRadioRxDone( );
+ 800ee42:	f7ff fc01 	bl	800e648 <ProcessRadioRxDone>
+ 800ee46:	e7ef      	b.n	800ee28 <LoRaMacHandleIrqEvents+0x24>
+            ProcessRadioTxTimeout( );
+ 800ee48:	f7ff ff18 	bl	800ec7c <ProcessRadioTxTimeout>
+ 800ee4c:	e7ef      	b.n	800ee2e <LoRaMacHandleIrqEvents+0x2a>
+            ProcessRadioRxError( );
+ 800ee4e:	f7ff ffcd 	bl	800edec <ProcessRadioRxError>
+ 800ee52:	e7ef      	b.n	800ee34 <LoRaMacHandleIrqEvents+0x30>
+            ProcessRadioRxTimeout( );
+ 800ee54:	f7ff ffd0 	bl	800edf8 <ProcessRadioRxTimeout>
+}
+ 800ee58:	e7ef      	b.n	800ee3a <LoRaMacHandleIrqEvents+0x36>
+ 800ee5a:	4770      	bx	lr
+ 800ee5c:	20001fe0 	.word	0x20001fe0
+
+0800ee60 <LoRaMacHandleMlmeRequest>:
+{
+ 800ee60:	b508      	push	{r3, lr}
+    if( MacCtx.MacFlags.Bits.MlmeReq == 1 )
+ 800ee62:	4b16      	ldr	r3, [pc, #88]	; (800eebc <LoRaMacHandleMlmeRequest+0x5c>)
+ 800ee64:	f893 3481 	ldrb.w	r3, [r3, #1153]	; 0x481
+ 800ee68:	f013 0f04 	tst.w	r3, #4
+ 800ee6c:	d100      	bne.n	800ee70 <LoRaMacHandleMlmeRequest+0x10>
+}
+ 800ee6e:	bd08      	pop	{r3, pc}
+        if( LoRaMacConfirmQueueIsCmdActive( MLME_JOIN ) == true )
+ 800ee70:	2001      	movs	r0, #1
+ 800ee72:	f002 fbf5 	bl	8011660 <LoRaMacConfirmQueueIsCmdActive>
+ 800ee76:	b178      	cbz	r0, 800ee98 <LoRaMacHandleMlmeRequest+0x38>
+            if( LoRaMacConfirmQueueGetStatus( MLME_JOIN ) == LORAMAC_EVENT_INFO_STATUS_OK )
+ 800ee78:	2001      	movs	r0, #1
+ 800ee7a:	f002 fbbb 	bl	80115f4 <LoRaMacConfirmQueueGetStatus>
+ 800ee7e:	b918      	cbnz	r0, 800ee88 <LoRaMacHandleMlmeRequest+0x28>
+                MacCtx.ChannelsNbTransCounter = 0;
+ 800ee80:	4b0e      	ldr	r3, [pc, #56]	; (800eebc <LoRaMacHandleMlmeRequest+0x5c>)
+ 800ee82:	2200      	movs	r2, #0
+ 800ee84:	f883 240c 	strb.w	r2, [r3, #1036]	; 0x40c
+            MacCtx.MacState &= ~LORAMAC_TX_RUNNING;
+ 800ee88:	4a0c      	ldr	r2, [pc, #48]	; (800eebc <LoRaMacHandleMlmeRequest+0x5c>)
+ 800ee8a:	f8d2 3340 	ldr.w	r3, [r2, #832]	; 0x340
+ 800ee8e:	f023 0302 	bic.w	r3, r3, #2
+ 800ee92:	f8c2 3340 	str.w	r3, [r2, #832]	; 0x340
+ 800ee96:	e7ea      	b.n	800ee6e <LoRaMacHandleMlmeRequest+0xe>
+        else if( ( LoRaMacConfirmQueueIsCmdActive( MLME_TXCW ) == true ) ||
+ 800ee98:	2006      	movs	r0, #6
+ 800ee9a:	f002 fbe1 	bl	8011660 <LoRaMacConfirmQueueIsCmdActive>
+ 800ee9e:	b138      	cbz	r0, 800eeb0 <LoRaMacHandleMlmeRequest+0x50>
+            MacCtx.MacState &= ~LORAMAC_TX_RUNNING;
+ 800eea0:	4a06      	ldr	r2, [pc, #24]	; (800eebc <LoRaMacHandleMlmeRequest+0x5c>)
+ 800eea2:	f8d2 3340 	ldr.w	r3, [r2, #832]	; 0x340
+ 800eea6:	f023 0302 	bic.w	r3, r3, #2
+ 800eeaa:	f8c2 3340 	str.w	r3, [r2, #832]	; 0x340
+}
+ 800eeae:	e7de      	b.n	800ee6e <LoRaMacHandleMlmeRequest+0xe>
+                 ( LoRaMacConfirmQueueIsCmdActive( MLME_TXCW_1 ) == true ) )
+ 800eeb0:	2007      	movs	r0, #7
+ 800eeb2:	f002 fbd5 	bl	8011660 <LoRaMacConfirmQueueIsCmdActive>
+        else if( ( LoRaMacConfirmQueueIsCmdActive( MLME_TXCW ) == true ) ||
+ 800eeb6:	2800      	cmp	r0, #0
+ 800eeb8:	d0d9      	beq.n	800ee6e <LoRaMacHandleMlmeRequest+0xe>
+ 800eeba:	e7f1      	b.n	800eea0 <LoRaMacHandleMlmeRequest+0x40>
+ 800eebc:	20001fe4 	.word	0x20001fe4
+
+0800eec0 <AckTimeoutRetriesFinalize>:
+    if( MacCtx.McpsConfirm.AckReceived == false )
+ 800eec0:	4b14      	ldr	r3, [pc, #80]	; (800ef14 <AckTimeoutRetriesFinalize+0x54>)
+ 800eec2:	f893 3438 	ldrb.w	r3, [r3, #1080]	; 0x438
+ 800eec6:	b12b      	cbz	r3, 800eed4 <AckTimeoutRetriesFinalize+0x14>
+    MacCtx.McpsConfirm.NbRetries = MacCtx.AckTimeoutRetriesCounter;
+ 800eec8:	4b12      	ldr	r3, [pc, #72]	; (800ef14 <AckTimeoutRetriesFinalize+0x54>)
+ 800eeca:	f893 240e 	ldrb.w	r2, [r3, #1038]	; 0x40e
+ 800eece:	f883 2439 	strb.w	r2, [r3, #1081]	; 0x439
+ 800eed2:	4770      	bx	lr
+{
+ 800eed4:	b500      	push	{lr}
+ 800eed6:	b085      	sub	sp, #20
+        params.Type = INIT_TYPE_ACTIVATE_DEFAULT_CHANNELS;
+ 800eed8:	2302      	movs	r3, #2
+ 800eeda:	f88d 300c 	strb.w	r3, [sp, #12]
+        params.NvmGroup1 = &Nvm.RegionGroup1;
+ 800eede:	4b0e      	ldr	r3, [pc, #56]	; (800ef18 <AckTimeoutRetriesFinalize+0x58>)
+ 800eee0:	f503 7208 	add.w	r2, r3, #544	; 0x220
+ 800eee4:	9201      	str	r2, [sp, #4]
+        params.NvmGroup2 = &Nvm.RegionGroup2;
+ 800eee6:	f503 722d 	add.w	r2, r3, #692	; 0x2b4
+ 800eeea:	9202      	str	r2, [sp, #8]
+        RegionInitDefaults( Nvm.MacGroup2.Region, &params );
+ 800eeec:	a901      	add	r1, sp, #4
+ 800eeee:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 800eef2:	f003 f95b 	bl	80121ac <RegionInitDefaults>
+        MacCtx.NodeAckRequested = false;
+ 800eef6:	4b07      	ldr	r3, [pc, #28]	; (800ef14 <AckTimeoutRetriesFinalize+0x54>)
+ 800eef8:	2200      	movs	r2, #0
+ 800eefa:	f883 2410 	strb.w	r2, [r3, #1040]	; 0x410
+        MacCtx.McpsConfirm.AckReceived = false;
+ 800eefe:	f883 2438 	strb.w	r2, [r3, #1080]	; 0x438
+    MacCtx.McpsConfirm.NbRetries = MacCtx.AckTimeoutRetriesCounter;
+ 800ef02:	4b04      	ldr	r3, [pc, #16]	; (800ef14 <AckTimeoutRetriesFinalize+0x54>)
+ 800ef04:	f893 240e 	ldrb.w	r2, [r3, #1038]	; 0x40e
+ 800ef08:	f883 2439 	strb.w	r2, [r3, #1081]	; 0x439
+}
+ 800ef0c:	b005      	add	sp, #20
+ 800ef0e:	f85d fb04 	ldr.w	pc, [sp], #4
+ 800ef12:	bf00      	nop
+ 800ef14:	20001fe4 	.word	0x20001fe4
+ 800ef18:	20001870 	.word	0x20001870
+
+0800ef1c <SerializeTxFrame>:
+{
+ 800ef1c:	b508      	push	{r3, lr}
+    switch( MacCtx.TxMsg.Type )
+ 800ef1e:	4b0f      	ldr	r3, [pc, #60]	; (800ef5c <SerializeTxFrame+0x40>)
+ 800ef20:	f893 3104 	ldrb.w	r3, [r3, #260]	; 0x104
+ 800ef24:	b11b      	cbz	r3, 800ef2e <SerializeTxFrame+0x12>
+ 800ef26:	2b04      	cmp	r3, #4
+ 800ef28:	d00a      	beq.n	800ef40 <SerializeTxFrame+0x24>
+ 800ef2a:	2003      	movs	r0, #3
+}
+ 800ef2c:	bd08      	pop	{r3, pc}
+            serializeStatus = LoRaMacSerializerJoinRequest( &MacCtx.TxMsg.Message.JoinReq );
+ 800ef2e:	480c      	ldr	r0, [pc, #48]	; (800ef60 <SerializeTxFrame+0x44>)
+ 800ef30:	f003 f859 	bl	8011fe6 <LoRaMacSerializerJoinRequest>
+            if( LORAMAC_SERIALIZER_SUCCESS != serializeStatus )
+ 800ef34:	b968      	cbnz	r0, 800ef52 <SerializeTxFrame+0x36>
+            MacCtx.PktBufferLen = MacCtx.TxMsg.Message.JoinReq.BufSize;
+ 800ef36:	4b09      	ldr	r3, [pc, #36]	; (800ef5c <SerializeTxFrame+0x40>)
+ 800ef38:	f893 210c 	ldrb.w	r2, [r3, #268]	; 0x10c
+ 800ef3c:	801a      	strh	r2, [r3, #0]
+            break;
+ 800ef3e:	e7f5      	b.n	800ef2c <SerializeTxFrame+0x10>
+            serializeStatus = LoRaMacSerializerData( &MacCtx.TxMsg.Message.Data );
+ 800ef40:	4807      	ldr	r0, [pc, #28]	; (800ef60 <SerializeTxFrame+0x44>)
+ 800ef42:	f003 f886 	bl	8012052 <LoRaMacSerializerData>
+            if( LORAMAC_SERIALIZER_SUCCESS != serializeStatus )
+ 800ef46:	b930      	cbnz	r0, 800ef56 <SerializeTxFrame+0x3a>
+            MacCtx.PktBufferLen = MacCtx.TxMsg.Message.Data.BufSize;
+ 800ef48:	4b04      	ldr	r3, [pc, #16]	; (800ef5c <SerializeTxFrame+0x40>)
+ 800ef4a:	f893 210c 	ldrb.w	r2, [r3, #268]	; 0x10c
+ 800ef4e:	801a      	strh	r2, [r3, #0]
+            break;
+ 800ef50:	e7ec      	b.n	800ef2c <SerializeTxFrame+0x10>
+                return LORAMAC_STATUS_CRYPTO_ERROR;
+ 800ef52:	2011      	movs	r0, #17
+ 800ef54:	e7ea      	b.n	800ef2c <SerializeTxFrame+0x10>
+                return LORAMAC_STATUS_CRYPTO_ERROR;
+ 800ef56:	2011      	movs	r0, #17
+ 800ef58:	e7e8      	b.n	800ef2c <SerializeTxFrame+0x10>
+ 800ef5a:	bf00      	nop
+ 800ef5c:	20001fe4 	.word	0x20001fe4
+ 800ef60:	200020ec 	.word	0x200020ec
+
+0800ef64 <ComputeRxWindowParameters>:
+{
+ 800ef64:	b570      	push	{r4, r5, r6, lr}
+ 800ef66:	b082      	sub	sp, #8
+    RegionComputeRxWindowParameters( Nvm.MacGroup2.Region,
+ 800ef68:	4c1e      	ldr	r4, [pc, #120]	; (800efe4 <ComputeRxWindowParameters+0x80>)
+ 800ef6a:	f894 6048 	ldrb.w	r6, [r4, #72]	; 0x48
+                                     RegionApplyDrOffset( Nvm.MacGroup2.Region,
+ 800ef6e:	f994 3069 	ldrsb.w	r3, [r4, #105]	; 0x69
+ 800ef72:	f994 2039 	ldrsb.w	r2, [r4, #57]	; 0x39
+ 800ef76:	f894 107d 	ldrb.w	r1, [r4, #125]	; 0x7d
+ 800ef7a:	4630      	mov	r0, r6
+ 800ef7c:	f003 f9a4 	bl	80122c8 <RegionApplyDrOffset>
+    RegionComputeRxWindowParameters( Nvm.MacGroup2.Region,
+ 800ef80:	4d19      	ldr	r5, [pc, #100]	; (800efe8 <ComputeRxWindowParameters+0x84>)
+ 800ef82:	f505 736e 	add.w	r3, r5, #952	; 0x3b8
+ 800ef86:	9300      	str	r3, [sp, #0]
+ 800ef88:	6ce3      	ldr	r3, [r4, #76]	; 0x4c
+ 800ef8a:	f894 2050 	ldrb.w	r2, [r4, #80]	; 0x50
+ 800ef8e:	b241      	sxtb	r1, r0
+ 800ef90:	4630      	mov	r0, r6
+ 800ef92:	f003 f92b 	bl	80121ec <RegionComputeRxWindowParameters>
+    RegionComputeRxWindowParameters( Nvm.MacGroup2.Region,
+ 800ef96:	f505 7373 	add.w	r3, r5, #972	; 0x3cc
+ 800ef9a:	9300      	str	r3, [sp, #0]
+ 800ef9c:	6ce3      	ldr	r3, [r4, #76]	; 0x4c
+ 800ef9e:	f894 2050 	ldrb.w	r2, [r4, #80]	; 0x50
+ 800efa2:	f994 1070 	ldrsb.w	r1, [r4, #112]	; 0x70
+ 800efa6:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800efaa:	f003 f91f 	bl	80121ec <RegionComputeRxWindowParameters>
+    MacCtx.RxWindow1Delay = Nvm.MacGroup2.MacParams.ReceiveDelay1 + MacCtx.RxWindow1Config.WindowOffset;
+ 800efae:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 800efb0:	f8d5 13c4 	ldr.w	r1, [r5, #964]	; 0x3c4
+ 800efb4:	440b      	add	r3, r1
+ 800efb6:	f8c5 33b0 	str.w	r3, [r5, #944]	; 0x3b0
+    MacCtx.RxWindow2Delay = Nvm.MacGroup2.MacParams.ReceiveDelay2 + MacCtx.RxWindow2Config.WindowOffset;
+ 800efba:	6de3      	ldr	r3, [r4, #92]	; 0x5c
+ 800efbc:	f8d5 23d8 	ldr.w	r2, [r5, #984]	; 0x3d8
+ 800efc0:	4413      	add	r3, r2
+ 800efc2:	f8c5 33b4 	str.w	r3, [r5, #948]	; 0x3b4
+    if( MacCtx.TxMsg.Type != LORAMAC_MSG_TYPE_DATA )
+ 800efc6:	f895 3104 	ldrb.w	r3, [r5, #260]	; 0x104
+ 800efca:	2b04      	cmp	r3, #4
+ 800efcc:	d007      	beq.n	800efde <ComputeRxWindowParameters+0x7a>
+        MacCtx.RxWindow1Delay = Nvm.MacGroup2.MacParams.JoinAcceptDelay1 + MacCtx.RxWindow1Config.WindowOffset;
+ 800efce:	6e23      	ldr	r3, [r4, #96]	; 0x60
+ 800efd0:	4419      	add	r1, r3
+ 800efd2:	f8c5 13b0 	str.w	r1, [r5, #944]	; 0x3b0
+        MacCtx.RxWindow2Delay = Nvm.MacGroup2.MacParams.JoinAcceptDelay2 + MacCtx.RxWindow2Config.WindowOffset;
+ 800efd6:	6e61      	ldr	r1, [r4, #100]	; 0x64
+ 800efd8:	440a      	add	r2, r1
+ 800efda:	f8c5 23b4 	str.w	r2, [r5, #948]	; 0x3b4
+}
+ 800efde:	b002      	add	sp, #8
+ 800efe0:	bd70      	pop	{r4, r5, r6, pc}
+ 800efe2:	bf00      	nop
+ 800efe4:	20001870 	.word	0x20001870
+ 800efe8:	20001fe4 	.word	0x20001fe4
+
+0800efec <VerifyTxFrame>:
+{
+ 800efec:	b510      	push	{r4, lr}
+ 800efee:	b082      	sub	sp, #8
+    size_t macCmdsSize = 0;
+ 800eff0:	2300      	movs	r3, #0
+ 800eff2:	9301      	str	r3, [sp, #4]
+    if( Nvm.MacGroup2.NetworkActivation != ACTIVATION_TYPE_NONE )
+ 800eff4:	4b0d      	ldr	r3, [pc, #52]	; (800f02c <VerifyTxFrame+0x40>)
+ 800eff6:	f893 412c 	ldrb.w	r4, [r3, #300]	; 0x12c
+ 800effa:	b914      	cbnz	r4, 800f002 <VerifyTxFrame+0x16>
+}
+ 800effc:	4620      	mov	r0, r4
+ 800effe:	b002      	add	sp, #8
+ 800f000:	bd10      	pop	{r4, pc}
+        if( LoRaMacCommandsGetSizeSerializedCmds( &macCmdsSize ) != LORAMAC_COMMANDS_SUCCESS )
+ 800f002:	a801      	add	r0, sp, #4
+ 800f004:	f002 f9f2 	bl	80113ec <LoRaMacCommandsGetSizeSerializedCmds>
+ 800f008:	4604      	mov	r4, r0
+ 800f00a:	b968      	cbnz	r0, 800f028 <VerifyTxFrame+0x3c>
+        if( ValidatePayloadLength( MacCtx.AppDataSize, Nvm.MacGroup1.ChannelsDatarate, macCmdsSize ) == false )
+ 800f00c:	f89d 2004 	ldrb.w	r2, [sp, #4]
+ 800f010:	4b06      	ldr	r3, [pc, #24]	; (800f02c <VerifyTxFrame+0x40>)
+ 800f012:	f993 1039 	ldrsb.w	r1, [r3, #57]	; 0x39
+ 800f016:	4b06      	ldr	r3, [pc, #24]	; (800f030 <VerifyTxFrame+0x44>)
+ 800f018:	f893 0237 	ldrb.w	r0, [r3, #567]	; 0x237
+ 800f01c:	f7fe fefe 	bl	800de1c <ValidatePayloadLength>
+ 800f020:	2800      	cmp	r0, #0
+ 800f022:	d1eb      	bne.n	800effc <VerifyTxFrame+0x10>
+            return LORAMAC_STATUS_LENGTH_ERROR;
+ 800f024:	2408      	movs	r4, #8
+ 800f026:	e7e9      	b.n	800effc <VerifyTxFrame+0x10>
+            return LORAMAC_STATUS_MAC_COMMAD_ERROR;
+ 800f028:	2413      	movs	r4, #19
+ 800f02a:	e7e7      	b.n	800effc <VerifyTxFrame+0x10>
+ 800f02c:	20001870 	.word	0x20001870
+ 800f030:	20001fe4 	.word	0x20001fe4
+
+0800f034 <SecureFrame>:
+{
+ 800f034:	b530      	push	{r4, r5, lr}
+ 800f036:	b083      	sub	sp, #12
+    uint32_t fCntUp = 0;
+ 800f038:	2300      	movs	r3, #0
+ 800f03a:	9301      	str	r3, [sp, #4]
+    switch( MacCtx.TxMsg.Type )
+ 800f03c:	4b1a      	ldr	r3, [pc, #104]	; (800f0a8 <SecureFrame+0x74>)
+ 800f03e:	f893 3104 	ldrb.w	r3, [r3, #260]	; 0x104
+ 800f042:	b133      	cbz	r3, 800f052 <SecureFrame+0x1e>
+ 800f044:	4605      	mov	r5, r0
+ 800f046:	460c      	mov	r4, r1
+ 800f048:	2b04      	cmp	r3, #4
+ 800f04a:	d00b      	beq.n	800f064 <SecureFrame+0x30>
+ 800f04c:	2003      	movs	r0, #3
+}
+ 800f04e:	b003      	add	sp, #12
+ 800f050:	bd30      	pop	{r4, r5, pc}
+            macCryptoStatus = LoRaMacCryptoPrepareJoinRequest( &MacCtx.TxMsg.Message.JoinReq );
+ 800f052:	4816      	ldr	r0, [pc, #88]	; (800f0ac <SecureFrame+0x78>)
+ 800f054:	f002 fd82 	bl	8011b5c <LoRaMacCryptoPrepareJoinRequest>
+            if( LORAMAC_CRYPTO_SUCCESS != macCryptoStatus )
+ 800f058:	bb00      	cbnz	r0, 800f09c <SecureFrame+0x68>
+            MacCtx.PktBufferLen = MacCtx.TxMsg.Message.JoinReq.BufSize;
+ 800f05a:	4b13      	ldr	r3, [pc, #76]	; (800f0a8 <SecureFrame+0x74>)
+ 800f05c:	f893 210c 	ldrb.w	r2, [r3, #268]	; 0x10c
+ 800f060:	801a      	strh	r2, [r3, #0]
+            break;
+ 800f062:	e7f4      	b.n	800f04e <SecureFrame+0x1a>
+            if( LORAMAC_CRYPTO_SUCCESS != LoRaMacCryptoGetFCntUp( &fCntUp ) )
+ 800f064:	a801      	add	r0, sp, #4
+ 800f066:	f002 fd19 	bl	8011a9c <LoRaMacCryptoGetFCntUp>
+ 800f06a:	b9c8      	cbnz	r0, 800f0a0 <SecureFrame+0x6c>
+            if( ( MacCtx.ChannelsNbTransCounter >= 1 ) || ( MacCtx.AckTimeoutRetriesCounter > 1 ) )
+ 800f06c:	4b0e      	ldr	r3, [pc, #56]	; (800f0a8 <SecureFrame+0x74>)
+ 800f06e:	f893 340c 	ldrb.w	r3, [r3, #1036]	; 0x40c
+ 800f072:	b923      	cbnz	r3, 800f07e <SecureFrame+0x4a>
+ 800f074:	4b0c      	ldr	r3, [pc, #48]	; (800f0a8 <SecureFrame+0x74>)
+ 800f076:	f893 340e 	ldrb.w	r3, [r3, #1038]	; 0x40e
+ 800f07a:	2b01      	cmp	r3, #1
+ 800f07c:	d902      	bls.n	800f084 <SecureFrame+0x50>
+                fCntUp -= 1;
+ 800f07e:	9b01      	ldr	r3, [sp, #4]
+ 800f080:	3b01      	subs	r3, #1
+ 800f082:	9301      	str	r3, [sp, #4]
+            macCryptoStatus = LoRaMacCryptoSecureMessage( fCntUp, txDr, txCh, &MacCtx.TxMsg.Message.Data );
+ 800f084:	4b09      	ldr	r3, [pc, #36]	; (800f0ac <SecureFrame+0x78>)
+ 800f086:	4622      	mov	r2, r4
+ 800f088:	4629      	mov	r1, r5
+ 800f08a:	9801      	ldr	r0, [sp, #4]
+ 800f08c:	f002 fd92 	bl	8011bb4 <LoRaMacCryptoSecureMessage>
+            if( LORAMAC_CRYPTO_SUCCESS != macCryptoStatus )
+ 800f090:	b940      	cbnz	r0, 800f0a4 <SecureFrame+0x70>
+            MacCtx.PktBufferLen = MacCtx.TxMsg.Message.Data.BufSize;
+ 800f092:	4b05      	ldr	r3, [pc, #20]	; (800f0a8 <SecureFrame+0x74>)
+ 800f094:	f893 210c 	ldrb.w	r2, [r3, #268]	; 0x10c
+ 800f098:	801a      	strh	r2, [r3, #0]
+            break;
+ 800f09a:	e7d8      	b.n	800f04e <SecureFrame+0x1a>
+                return LORAMAC_STATUS_CRYPTO_ERROR;
+ 800f09c:	2011      	movs	r0, #17
+ 800f09e:	e7d6      	b.n	800f04e <SecureFrame+0x1a>
+                return LORAMAC_STATUS_FCNT_HANDLER_ERROR;
+ 800f0a0:	2012      	movs	r0, #18
+ 800f0a2:	e7d4      	b.n	800f04e <SecureFrame+0x1a>
+                return LORAMAC_STATUS_CRYPTO_ERROR;
+ 800f0a4:	2011      	movs	r0, #17
+ 800f0a6:	e7d2      	b.n	800f04e <SecureFrame+0x1a>
+ 800f0a8:	20001fe4 	.word	0x20001fe4
+ 800f0ac:	200020ec 	.word	0x200020ec
+
+0800f0b0 <SendFrameOnChannel>:
+{
+ 800f0b0:	b570      	push	{r4, r5, r6, lr}
+ 800f0b2:	b086      	sub	sp, #24
+ 800f0b4:	4606      	mov	r6, r0
+    int8_t txPower = 0;
+ 800f0b6:	2300      	movs	r3, #0
+ 800f0b8:	f88d 3007 	strb.w	r3, [sp, #7]
+    txConfig.Channel = channel;
+ 800f0bc:	f88d 0008 	strb.w	r0, [sp, #8]
+    txConfig.Datarate = Nvm.MacGroup1.ChannelsDatarate;
+ 800f0c0:	4d34      	ldr	r5, [pc, #208]	; (800f194 <SendFrameOnChannel+0xe4>)
+ 800f0c2:	f995 3039 	ldrsb.w	r3, [r5, #57]	; 0x39
+ 800f0c6:	f88d 3009 	strb.w	r3, [sp, #9]
+    txConfig.TxPower = Nvm.MacGroup1.ChannelsTxPower;
+ 800f0ca:	f995 3038 	ldrsb.w	r3, [r5, #56]	; 0x38
+ 800f0ce:	f88d 300a 	strb.w	r3, [sp, #10]
+    txConfig.MaxEirp = Nvm.MacGroup2.MacParams.MaxEirp;
+ 800f0d2:	f8d5 3080 	ldr.w	r3, [r5, #128]	; 0x80
+ 800f0d6:	9303      	str	r3, [sp, #12]
+    txConfig.AntennaGain = Nvm.MacGroup2.MacParams.AntennaGain;
+ 800f0d8:	f8d5 3084 	ldr.w	r3, [r5, #132]	; 0x84
+ 800f0dc:	9304      	str	r3, [sp, #16]
+    txConfig.PktLen = MacCtx.PktBufferLen;
+ 800f0de:	4c2e      	ldr	r4, [pc, #184]	; (800f198 <SendFrameOnChannel+0xe8>)
+ 800f0e0:	8823      	ldrh	r3, [r4, #0]
+ 800f0e2:	f8ad 3014 	strh.w	r3, [sp, #20]
+    RegionTxConfig( Nvm.MacGroup2.Region, &txConfig, &txPower, &MacCtx.TxTimeOnAir );
+ 800f0e6:	f204 4314 	addw	r3, r4, #1044	; 0x414
+ 800f0ea:	f10d 0207 	add.w	r2, sp, #7
+ 800f0ee:	a902      	add	r1, sp, #8
+ 800f0f0:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800f0f4:	f003 f88f 	bl	8012216 <RegionTxConfig>
+    MacCtx.McpsConfirm.Status = LORAMAC_EVENT_INFO_STATUS_ERROR;
+ 800f0f8:	2301      	movs	r3, #1
+ 800f0fa:	f884 3435 	strb.w	r3, [r4, #1077]	; 0x435
+    MacCtx.McpsConfirm.Datarate = Nvm.MacGroup1.ChannelsDatarate;
+ 800f0fe:	f895 3039 	ldrb.w	r3, [r5, #57]	; 0x39
+ 800f102:	f884 3436 	strb.w	r3, [r4, #1078]	; 0x436
+    MacCtx.McpsConfirm.TxPower = txPower;
+ 800f106:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 800f10a:	f884 3437 	strb.w	r3, [r4, #1079]	; 0x437
+    MacCtx.McpsConfirm.Channel = channel;
+ 800f10e:	f8c4 6444 	str.w	r6, [r4, #1092]	; 0x444
+    MacCtx.McpsConfirm.TxTimeOnAir = MacCtx.TxTimeOnAir;
+ 800f112:	f8d4 3414 	ldr.w	r3, [r4, #1044]	; 0x414
+ 800f116:	f8c4 343c 	str.w	r3, [r4, #1084]	; 0x43c
+    MacCtx.MlmeConfirm.TxTimeOnAir = MacCtx.TxTimeOnAir;
+ 800f11a:	f8c4 344c 	str.w	r3, [r4, #1100]	; 0x44c
+    if( LoRaMacClassBIsBeaconModeActive( ) == true )
+ 800f11e:	f002 f82e 	bl	801117e <LoRaMacClassBIsBeaconModeActive>
+ 800f122:	bb58      	cbnz	r0, 800f17c <SendFrameOnChannel+0xcc>
+    if( Nvm.MacGroup2.DeviceClass == CLASS_B )
+ 800f124:	4b1b      	ldr	r3, [pc, #108]	; (800f194 <SendFrameOnChannel+0xe4>)
+ 800f126:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 800f12a:	2b01      	cmp	r3, #1
+ 800f12c:	d02e      	beq.n	800f18c <SendFrameOnChannel+0xdc>
+    LoRaMacClassBHaltBeaconing( );
+ 800f12e:	f002 f829 	bl	8011184 <LoRaMacClassBHaltBeaconing>
+    status = SecureFrame( Nvm.MacGroup1.ChannelsDatarate, MacCtx.Channel );
+ 800f132:	4b18      	ldr	r3, [pc, #96]	; (800f194 <SendFrameOnChannel+0xe4>)
+ 800f134:	f993 0039 	ldrsb.w	r0, [r3, #57]	; 0x39
+ 800f138:	4b17      	ldr	r3, [pc, #92]	; (800f198 <SendFrameOnChannel+0xe8>)
+ 800f13a:	f893 1411 	ldrb.w	r1, [r3, #1041]	; 0x411
+ 800f13e:	b2c0      	uxtb	r0, r0
+ 800f140:	f7ff ff78 	bl	800f034 <SecureFrame>
+    if( status != LORAMAC_STATUS_OK )
+ 800f144:	4604      	mov	r4, r0
+ 800f146:	b9b0      	cbnz	r0, 800f176 <SendFrameOnChannel+0xc6>
+    MacCtx.MacState |= LORAMAC_TX_RUNNING;
+ 800f148:	4b13      	ldr	r3, [pc, #76]	; (800f198 <SendFrameOnChannel+0xe8>)
+ 800f14a:	f8d3 2340 	ldr.w	r2, [r3, #832]	; 0x340
+ 800f14e:	f042 0202 	orr.w	r2, r2, #2
+ 800f152:	f8c3 2340 	str.w	r2, [r3, #832]	; 0x340
+    if( MacCtx.NodeAckRequested == false )
+ 800f156:	f893 3410 	ldrb.w	r3, [r3, #1040]	; 0x410
+ 800f15a:	b92b      	cbnz	r3, 800f168 <SendFrameOnChannel+0xb8>
+        MacCtx.ChannelsNbTransCounter++;
+ 800f15c:	4a0e      	ldr	r2, [pc, #56]	; (800f198 <SendFrameOnChannel+0xe8>)
+ 800f15e:	f892 340c 	ldrb.w	r3, [r2, #1036]	; 0x40c
+ 800f162:	3301      	adds	r3, #1
+ 800f164:	f882 340c 	strb.w	r3, [r2, #1036]	; 0x40c
+    Radio.Send( MacCtx.PktBuffer, MacCtx.PktBufferLen );
+ 800f168:	4b0c      	ldr	r3, [pc, #48]	; (800f19c <SendFrameOnChannel+0xec>)
+ 800f16a:	6a9b      	ldr	r3, [r3, #40]	; 0x28
+ 800f16c:	480a      	ldr	r0, [pc, #40]	; (800f198 <SendFrameOnChannel+0xe8>)
+ 800f16e:	f830 1b02 	ldrh.w	r1, [r0], #2
+ 800f172:	b2c9      	uxtb	r1, r1
+ 800f174:	4798      	blx	r3
+}
+ 800f176:	4620      	mov	r0, r4
+ 800f178:	b006      	add	sp, #24
+ 800f17a:	bd70      	pop	{r4, r5, r6, pc}
+        TimerTime_t collisionTime = LoRaMacClassBIsUplinkCollision( MacCtx.TxTimeOnAir );
+ 800f17c:	f8d4 0414 	ldr.w	r0, [r4, #1044]	; 0x414
+ 800f180:	f002 f80f 	bl	80111a2 <LoRaMacClassBIsUplinkCollision>
+        if( collisionTime > 0 )
+ 800f184:	2800      	cmp	r0, #0
+ 800f186:	d0cd      	beq.n	800f124 <SendFrameOnChannel+0x74>
+            return LORAMAC_STATUS_BUSY_UPLINK_COLLISION;
+ 800f188:	2410      	movs	r4, #16
+ 800f18a:	e7f4      	b.n	800f176 <SendFrameOnChannel+0xc6>
+        LoRaMacClassBStopRxSlots( );
+ 800f18c:	f002 f80b 	bl	80111a6 <LoRaMacClassBStopRxSlots>
+ 800f190:	e7cd      	b.n	800f12e <SendFrameOnChannel+0x7e>
+ 800f192:	bf00      	nop
+ 800f194:	20001870 	.word	0x20001870
+ 800f198:	20001fe4 	.word	0x20001fe4
+ 800f19c:	08018cb4 	.word	0x08018cb4
+
+0800f1a0 <ScheduleTx>:
+{
+ 800f1a0:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800f1a4:	b08c      	sub	sp, #48	; 0x30
+ 800f1a6:	4605      	mov	r5, r0
+    status = CheckForClassBCollision( );
+ 800f1a8:	f7ff fd8e 	bl	800ecc8 <CheckForClassBCollision>
+    if( status != LORAMAC_STATUS_OK )
+ 800f1ac:	4604      	mov	r4, r0
+ 800f1ae:	b118      	cbz	r0, 800f1b8 <ScheduleTx+0x18>
+}
+ 800f1b0:	4620      	mov	r0, r4
+ 800f1b2:	b00c      	add	sp, #48	; 0x30
+ 800f1b4:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+    CalculateBackOff( );
+ 800f1b8:	f7fe fcfe 	bl	800dbb8 <CalculateBackOff>
+    status = SerializeTxFrame( );
+ 800f1bc:	f7ff feae 	bl	800ef1c <SerializeTxFrame>
+    if( status != LORAMAC_STATUS_OK )
+ 800f1c0:	4604      	mov	r4, r0
+ 800f1c2:	2800      	cmp	r0, #0
+ 800f1c4:	d1f4      	bne.n	800f1b0 <ScheduleTx+0x10>
+    nextChan.AggrTimeOff = Nvm.MacGroup1.AggregatedTimeOff;
+ 800f1c6:	4e36      	ldr	r6, [pc, #216]	; (800f2a0 <ScheduleTx+0x100>)
+ 800f1c8:	6b33      	ldr	r3, [r6, #48]	; 0x30
+ 800f1ca:	9304      	str	r3, [sp, #16]
+    nextChan.Datarate = Nvm.MacGroup1.ChannelsDatarate;
+ 800f1cc:	f996 3039 	ldrsb.w	r3, [r6, #57]	; 0x39
+ 800f1d0:	f88d 3018 	strb.w	r3, [sp, #24]
+    nextChan.DutyCycleEnabled = Nvm.MacGroup2.DutyCycleOn;
+ 800f1d4:	f896 311c 	ldrb.w	r3, [r6, #284]	; 0x11c
+ 800f1d8:	f88d 301a 	strb.w	r3, [sp, #26]
+    nextChan.ElapsedTimeSinceStartUp = SysTimeSub( SysTimeGetMcuTime( ), Nvm.MacGroup2.InitializationTime );
+ 800f1dc:	f10d 0828 	add.w	r8, sp, #40	; 0x28
+ 800f1e0:	4640      	mov	r0, r8
+ 800f1e2:	f007 ff2f 	bl	8017044 <SysTimeGetMcuTime>
+ 800f1e6:	af02      	add	r7, sp, #8
+ 800f1e8:	f8d6 3124 	ldr.w	r3, [r6, #292]	; 0x124
+ 800f1ec:	9300      	str	r3, [sp, #0]
+ 800f1ee:	f8d6 3120 	ldr.w	r3, [r6, #288]	; 0x120
+ 800f1f2:	e898 0006 	ldmia.w	r8, {r1, r2}
+ 800f1f6:	4638      	mov	r0, r7
+ 800f1f8:	f007 fec1 	bl	8016f7e <SysTimeSub>
+ 800f1fc:	ab07      	add	r3, sp, #28
+ 800f1fe:	e897 0003 	ldmia.w	r7, {r0, r1}
+ 800f202:	e883 0003 	stmia.w	r3, {r0, r1}
+    nextChan.LastAggrTx = Nvm.MacGroup1.LastTxDoneTime;
+ 800f206:	6af3      	ldr	r3, [r6, #44]	; 0x2c
+ 800f208:	9305      	str	r3, [sp, #20]
+    nextChan.LastTxIsJoinRequest = false;
+ 800f20a:	2300      	movs	r3, #0
+ 800f20c:	f88d 3024 	strb.w	r3, [sp, #36]	; 0x24
+    nextChan.Joined = true;
+ 800f210:	2301      	movs	r3, #1
+ 800f212:	f88d 3019 	strb.w	r3, [sp, #25]
+    nextChan.PktLen = MacCtx.PktBufferLen;
+ 800f216:	4b23      	ldr	r3, [pc, #140]	; (800f2a4 <ScheduleTx+0x104>)
+ 800f218:	881b      	ldrh	r3, [r3, #0]
+ 800f21a:	f8ad 3026 	strh.w	r3, [sp, #38]	; 0x26
+    if( Nvm.MacGroup2.NetworkActivation == ACTIVATION_TYPE_NONE )
+ 800f21e:	f896 312c 	ldrb.w	r3, [r6, #300]	; 0x12c
+ 800f222:	b92b      	cbnz	r3, 800f230 <ScheduleTx+0x90>
+        nextChan.LastTxIsJoinRequest = true;
+ 800f224:	2301      	movs	r3, #1
+ 800f226:	f88d 3024 	strb.w	r3, [sp, #36]	; 0x24
+        nextChan.Joined = false;
+ 800f22a:	2300      	movs	r3, #0
+ 800f22c:	f88d 3019 	strb.w	r3, [sp, #25]
+    status = RegionNextChannel( Nvm.MacGroup2.Region, &nextChan, &MacCtx.Channel, &MacCtx.DutyCycleWaitTime, &Nvm.MacGroup1.AggregatedTimeOff );
+ 800f230:	4a1c      	ldr	r2, [pc, #112]	; (800f2a4 <ScheduleTx+0x104>)
+ 800f232:	481b      	ldr	r0, [pc, #108]	; (800f2a0 <ScheduleTx+0x100>)
+ 800f234:	f100 0330 	add.w	r3, r0, #48	; 0x30
+ 800f238:	9300      	str	r3, [sp, #0]
+ 800f23a:	f202 4384 	addw	r3, r2, #1156	; 0x484
+ 800f23e:	f202 4211 	addw	r2, r2, #1041	; 0x411
+ 800f242:	a904      	add	r1, sp, #16
+ 800f244:	f890 0048 	ldrb.w	r0, [r0, #72]	; 0x48
+ 800f248:	f003 f82b 	bl	80122a2 <RegionNextChannel>
+    if( status != LORAMAC_STATUS_OK )
+ 800f24c:	b1c0      	cbz	r0, 800f280 <ScheduleTx+0xe0>
+        if( status == LORAMAC_STATUS_DUTYCYCLE_RESTRICTED )
+ 800f24e:	280b      	cmp	r0, #11
+ 800f250:	d124      	bne.n	800f29c <ScheduleTx+0xfc>
+            if( MacCtx.DutyCycleWaitTime != 0 )
+ 800f252:	4a14      	ldr	r2, [pc, #80]	; (800f2a4 <ScheduleTx+0x104>)
+ 800f254:	f8d2 1484 	ldr.w	r1, [r2, #1156]	; 0x484
+ 800f258:	b191      	cbz	r1, 800f280 <ScheduleTx+0xe0>
+                if( allowDelayedTx == true )
+ 800f25a:	b90d      	cbnz	r5, 800f260 <ScheduleTx+0xc0>
+                return status;
+ 800f25c:	4604      	mov	r4, r0
+ 800f25e:	e7a7      	b.n	800f1b0 <ScheduleTx+0x10>
+                    MacCtx.MacState |= LORAMAC_TX_DELAYED;
+ 800f260:	4615      	mov	r5, r2
+ 800f262:	f8d2 2340 	ldr.w	r2, [r2, #832]	; 0x340
+ 800f266:	f042 0220 	orr.w	r2, r2, #32
+ 800f26a:	f8c5 2340 	str.w	r2, [r5, #832]	; 0x340
+                    TimerSetValue( &MacCtx.TxDelayedTimer, MacCtx.DutyCycleWaitTime );
+ 800f26e:	f505 755a 	add.w	r5, r5, #872	; 0x368
+ 800f272:	4628      	mov	r0, r5
+ 800f274:	f008 f852 	bl	801731c <UTIL_TIMER_SetPeriod>
+                    TimerStart( &MacCtx.TxDelayedTimer );
+ 800f278:	4628      	mov	r0, r5
+ 800f27a:	f008 f809 	bl	8017290 <UTIL_TIMER_Start>
+                    return LORAMAC_STATUS_OK;
+ 800f27e:	e797      	b.n	800f1b0 <ScheduleTx+0x10>
+    ComputeRxWindowParameters( );
+ 800f280:	f7ff fe70 	bl	800ef64 <ComputeRxWindowParameters>
+    status = VerifyTxFrame( );
+ 800f284:	f7ff feb2 	bl	800efec <VerifyTxFrame>
+    if( status != LORAMAC_STATUS_OK )
+ 800f288:	4604      	mov	r4, r0
+ 800f28a:	2800      	cmp	r0, #0
+ 800f28c:	d190      	bne.n	800f1b0 <ScheduleTx+0x10>
+    return SendFrameOnChannel( MacCtx.Channel );
+ 800f28e:	4b05      	ldr	r3, [pc, #20]	; (800f2a4 <ScheduleTx+0x104>)
+ 800f290:	f893 0411 	ldrb.w	r0, [r3, #1041]	; 0x411
+ 800f294:	f7ff ff0c 	bl	800f0b0 <SendFrameOnChannel>
+ 800f298:	4604      	mov	r4, r0
+ 800f29a:	e789      	b.n	800f1b0 <ScheduleTx+0x10>
+            return status;
+ 800f29c:	4604      	mov	r4, r0
+ 800f29e:	e787      	b.n	800f1b0 <ScheduleTx+0x10>
+ 800f2a0:	20001870 	.word	0x20001870
+ 800f2a4:	20001fe4 	.word	0x20001fe4
+
+0800f2a8 <OnTxDelayedTimerEvent>:
+{
+ 800f2a8:	b510      	push	{r4, lr}
+    TimerStop( &MacCtx.TxDelayedTimer );
+ 800f2aa:	4c11      	ldr	r4, [pc, #68]	; (800f2f0 <OnTxDelayedTimerEvent+0x48>)
+ 800f2ac:	f504 705a 	add.w	r0, r4, #872	; 0x368
+ 800f2b0:	f007 ff94 	bl	80171dc <UTIL_TIMER_Stop>
+    MacCtx.MacState &= ~LORAMAC_TX_DELAYED;
+ 800f2b4:	f8d4 3340 	ldr.w	r3, [r4, #832]	; 0x340
+ 800f2b8:	f023 0320 	bic.w	r3, r3, #32
+ 800f2bc:	f8c4 3340 	str.w	r3, [r4, #832]	; 0x340
+    switch( ScheduleTx( true ) )
+ 800f2c0:	2001      	movs	r0, #1
+ 800f2c2:	f7ff ff6d 	bl	800f1a0 <ScheduleTx>
+ 800f2c6:	b108      	cbz	r0, 800f2cc <OnTxDelayedTimerEvent+0x24>
+ 800f2c8:	280b      	cmp	r0, #11
+ 800f2ca:	d100      	bne.n	800f2ce <OnTxDelayedTimerEvent+0x26>
+}
+ 800f2cc:	bd10      	pop	{r4, pc}
+            MacCtx.McpsConfirm.Datarate = Nvm.MacGroup1.ChannelsDatarate;
+ 800f2ce:	4b09      	ldr	r3, [pc, #36]	; (800f2f4 <OnTxDelayedTimerEvent+0x4c>)
+ 800f2d0:	f893 2039 	ldrb.w	r2, [r3, #57]	; 0x39
+ 800f2d4:	f884 2436 	strb.w	r2, [r4, #1078]	; 0x436
+            MacCtx.McpsConfirm.NbRetries = MacCtx.AckTimeoutRetriesCounter;
+ 800f2d8:	f894 240e 	ldrb.w	r2, [r4, #1038]	; 0x40e
+ 800f2dc:	f884 2439 	strb.w	r2, [r4, #1081]	; 0x439
+            MacCtx.McpsConfirm.Status = LORAMAC_EVENT_INFO_STATUS_TX_DR_PAYLOAD_SIZE_ERROR;
+ 800f2e0:	2009      	movs	r0, #9
+ 800f2e2:	f884 0435 	strb.w	r0, [r4, #1077]	; 0x435
+            LoRaMacConfirmQueueSetStatusCmn( LORAMAC_EVENT_INFO_STATUS_TX_DR_PAYLOAD_SIZE_ERROR );
+ 800f2e6:	f002 f99d 	bl	8011624 <LoRaMacConfirmQueueSetStatusCmn>
+            StopRetransmission( );
+ 800f2ea:	f7fe fcf3 	bl	800dcd4 <StopRetransmission>
+}
+ 800f2ee:	e7ed      	b.n	800f2cc <OnTxDelayedTimerEvent+0x24>
+ 800f2f0:	20001fe4 	.word	0x20001fe4
+ 800f2f4:	20001870 	.word	0x20001870
+
+0800f2f8 <LoRaMacHandleMcpsRequest>:
+    if( MacCtx.MacFlags.Bits.McpsReq == 1 )
+ 800f2f8:	4b23      	ldr	r3, [pc, #140]	; (800f388 <LoRaMacHandleMcpsRequest+0x90>)
+ 800f2fa:	f893 3481 	ldrb.w	r3, [r3, #1153]	; 0x481
+ 800f2fe:	f013 0f01 	tst.w	r3, #1
+ 800f302:	d040      	beq.n	800f386 <LoRaMacHandleMcpsRequest+0x8e>
+{
+ 800f304:	b510      	push	{r4, lr}
+        if( ( MacCtx.McpsConfirm.McpsRequest == MCPS_UNCONFIRMED ) ||
+ 800f306:	4b20      	ldr	r3, [pc, #128]	; (800f388 <LoRaMacHandleMcpsRequest+0x90>)
+ 800f308:	f893 3434 	ldrb.w	r3, [r3, #1076]	; 0x434
+ 800f30c:	b12b      	cbz	r3, 800f31a <LoRaMacHandleMcpsRequest+0x22>
+ 800f30e:	2b03      	cmp	r3, #3
+ 800f310:	d003      	beq.n	800f31a <LoRaMacHandleMcpsRequest+0x22>
+        else if( MacCtx.McpsConfirm.McpsRequest == MCPS_CONFIRMED )
+ 800f312:	2b01      	cmp	r3, #1
+ 800f314:	d007      	beq.n	800f326 <LoRaMacHandleMcpsRequest+0x2e>
+        bool waitForRetransmission = false;
+ 800f316:	2400      	movs	r4, #0
+ 800f318:	e003      	b.n	800f322 <LoRaMacHandleMcpsRequest+0x2a>
+            stopRetransmission = CheckRetransUnconfirmedUplink( );
+ 800f31a:	f7fe fc9f 	bl	800dc5c <CheckRetransUnconfirmedUplink>
+ 800f31e:	4604      	mov	r4, r0
+        if( stopRetransmission == true )
+ 800f320:	b9a4      	cbnz	r4, 800f34c <LoRaMacHandleMcpsRequest+0x54>
+        else if( waitForRetransmission == false )
+ 800f322:	b31c      	cbz	r4, 800f36c <LoRaMacHandleMcpsRequest+0x74>
+}
+ 800f324:	bd10      	pop	{r4, pc}
+            if( MacCtx.AckTimeoutRetry == true )
+ 800f326:	4b18      	ldr	r3, [pc, #96]	; (800f388 <LoRaMacHandleMcpsRequest+0x90>)
+ 800f328:	f893 340f 	ldrb.w	r3, [r3, #1039]	; 0x40f
+ 800f32c:	b1e3      	cbz	r3, 800f368 <LoRaMacHandleMcpsRequest+0x70>
+                stopRetransmission = CheckRetransConfirmedUplink( );
+ 800f32e:	f7fe fcb9 	bl	800dca4 <CheckRetransConfirmedUplink>
+ 800f332:	4604      	mov	r4, r0
+                if( Nvm.MacGroup2.Version.Fields.Minor == 0 )
+ 800f334:	4b15      	ldr	r3, [pc, #84]	; (800f38c <LoRaMacHandleMcpsRequest+0x94>)
+ 800f336:	f893 312a 	ldrb.w	r3, [r3, #298]	; 0x12a
+ 800f33a:	2b00      	cmp	r3, #0
+ 800f33c:	d1f0      	bne.n	800f320 <LoRaMacHandleMcpsRequest+0x28>
+                    if( stopRetransmission == false )
+ 800f33e:	b910      	cbnz	r0, 800f346 <LoRaMacHandleMcpsRequest+0x4e>
+                        AckTimeoutRetriesProcess( );
+ 800f340:	f7fe fd20 	bl	800dd84 <AckTimeoutRetriesProcess>
+ 800f344:	e7ec      	b.n	800f320 <LoRaMacHandleMcpsRequest+0x28>
+                        AckTimeoutRetriesFinalize( );
+ 800f346:	f7ff fdbb 	bl	800eec0 <AckTimeoutRetriesFinalize>
+ 800f34a:	e7e9      	b.n	800f320 <LoRaMacHandleMcpsRequest+0x28>
+            TimerStop( &MacCtx.TxDelayedTimer );
+ 800f34c:	4c0e      	ldr	r4, [pc, #56]	; (800f388 <LoRaMacHandleMcpsRequest+0x90>)
+ 800f34e:	f504 705a 	add.w	r0, r4, #872	; 0x368
+ 800f352:	f007 ff43 	bl	80171dc <UTIL_TIMER_Stop>
+            MacCtx.MacState &= ~LORAMAC_TX_DELAYED;
+ 800f356:	f8d4 3340 	ldr.w	r3, [r4, #832]	; 0x340
+ 800f35a:	f023 0320 	bic.w	r3, r3, #32
+ 800f35e:	f8c4 3340 	str.w	r3, [r4, #832]	; 0x340
+            StopRetransmission( );
+ 800f362:	f7fe fcb7 	bl	800dcd4 <StopRetransmission>
+ 800f366:	e7dd      	b.n	800f324 <LoRaMacHandleMcpsRequest+0x2c>
+                waitForRetransmission = true;
+ 800f368:	2401      	movs	r4, #1
+ 800f36a:	e7da      	b.n	800f322 <LoRaMacHandleMcpsRequest+0x2a>
+            MacCtx.MacFlags.Bits.MacDone = 0;
+ 800f36c:	4b06      	ldr	r3, [pc, #24]	; (800f388 <LoRaMacHandleMcpsRequest+0x90>)
+ 800f36e:	f893 2481 	ldrb.w	r2, [r3, #1153]	; 0x481
+ 800f372:	f36f 1204 	bfc	r2, #4, #1
+ 800f376:	f883 2481 	strb.w	r2, [r3, #1153]	; 0x481
+            MacCtx.AckTimeoutRetry = false;
+ 800f37a:	2000      	movs	r0, #0
+ 800f37c:	f883 040f 	strb.w	r0, [r3, #1039]	; 0x40f
+            OnTxDelayedTimerEvent( NULL );
+ 800f380:	f7ff ff92 	bl	800f2a8 <OnTxDelayedTimerEvent>
+}
+ 800f384:	e7ce      	b.n	800f324 <LoRaMacHandleMcpsRequest+0x2c>
+ 800f386:	4770      	bx	lr
+ 800f388:	20001fe4 	.word	0x20001fe4
+ 800f38c:	20001870 	.word	0x20001870
+
+0800f390 <LoRaMacHandleRequestEvents>:
+{
+ 800f390:	b538      	push	{r3, r4, r5, lr}
+    if( MacCtx.MacState == LORAMAC_IDLE )
+ 800f392:	4b22      	ldr	r3, [pc, #136]	; (800f41c <LoRaMacHandleRequestEvents+0x8c>)
+ 800f394:	f8d3 3340 	ldr.w	r3, [r3, #832]	; 0x340
+ 800f398:	bb7b      	cbnz	r3, 800f3fa <LoRaMacHandleRequestEvents+0x6a>
+        if( MacCtx.MacFlags.Bits.McpsReq == 1 )
+ 800f39a:	4b20      	ldr	r3, [pc, #128]	; (800f41c <LoRaMacHandleRequestEvents+0x8c>)
+ 800f39c:	f893 4481 	ldrb.w	r4, [r3, #1153]	; 0x481
+ 800f3a0:	f014 0501 	ands.w	r5, r4, #1
+ 800f3a4:	d005      	beq.n	800f3b2 <LoRaMacHandleRequestEvents+0x22>
+            MacCtx.MacFlags.Bits.McpsReq = 0;
+ 800f3a6:	f893 2481 	ldrb.w	r2, [r3, #1153]	; 0x481
+ 800f3aa:	f36f 0200 	bfc	r2, #0, #1
+ 800f3ae:	f883 2481 	strb.w	r2, [r3, #1153]	; 0x481
+        if( MacCtx.MacFlags.Bits.MlmeReq == 1 )
+ 800f3b2:	4b1a      	ldr	r3, [pc, #104]	; (800f41c <LoRaMacHandleRequestEvents+0x8c>)
+ 800f3b4:	f893 3481 	ldrb.w	r3, [r3, #1153]	; 0x481
+ 800f3b8:	f013 0f04 	tst.w	r3, #4
+ 800f3bc:	d006      	beq.n	800f3cc <LoRaMacHandleRequestEvents+0x3c>
+            MacCtx.MacFlags.Bits.MlmeReq = 0;
+ 800f3be:	4b17      	ldr	r3, [pc, #92]	; (800f41c <LoRaMacHandleRequestEvents+0x8c>)
+ 800f3c0:	f893 2481 	ldrb.w	r2, [r3, #1153]	; 0x481
+ 800f3c4:	f36f 0282 	bfc	r2, #2, #1
+ 800f3c8:	f883 2481 	strb.w	r2, [r3, #1153]	; 0x481
+        LoRaMacEnableRequests( LORAMAC_REQUEST_HANDLING_ON );
+ 800f3cc:	2001      	movs	r0, #1
+ 800f3ce:	f7fe fbad 	bl	800db2c <LoRaMacEnableRequests>
+        if( reqEvents.Bits.McpsReq == 1 )
+ 800f3d2:	b135      	cbz	r5, 800f3e2 <LoRaMacHandleRequestEvents+0x52>
+            MacCtx.MacPrimitives->MacMcpsConfirm( &MacCtx.McpsConfirm );
+ 800f3d4:	4811      	ldr	r0, [pc, #68]	; (800f41c <LoRaMacHandleRequestEvents+0x8c>)
+ 800f3d6:	f8d0 3344 	ldr.w	r3, [r0, #836]	; 0x344
+ 800f3da:	681b      	ldr	r3, [r3, #0]
+ 800f3dc:	f200 4034 	addw	r0, r0, #1076	; 0x434
+ 800f3e0:	4798      	blx	r3
+        if( reqEvents.Bits.MlmeReq == 1 )
+ 800f3e2:	f014 0f04 	tst.w	r4, #4
+ 800f3e6:	d109      	bne.n	800f3fc <LoRaMacHandleRequestEvents+0x6c>
+        LoRaMacClassBResumeBeaconing( );
+ 800f3e8:	f001 fecd 	bl	8011186 <LoRaMacClassBResumeBeaconing>
+        MacCtx.MacFlags.Bits.MacDone = 0;
+ 800f3ec:	4b0b      	ldr	r3, [pc, #44]	; (800f41c <LoRaMacHandleRequestEvents+0x8c>)
+ 800f3ee:	f893 2481 	ldrb.w	r2, [r3, #1153]	; 0x481
+ 800f3f2:	f36f 1204 	bfc	r2, #4, #1
+ 800f3f6:	f883 2481 	strb.w	r2, [r3, #1153]	; 0x481
+}
+ 800f3fa:	bd38      	pop	{r3, r4, r5, pc}
+            LoRaMacConfirmQueueHandleCb( &MacCtx.MlmeConfirm );
+ 800f3fc:	4808      	ldr	r0, [pc, #32]	; (800f420 <LoRaMacHandleRequestEvents+0x90>)
+ 800f3fe:	f002 f93b 	bl	8011678 <LoRaMacConfirmQueueHandleCb>
+            if( LoRaMacConfirmQueueGetCnt( ) > 0 )
+ 800f402:	f002 f971 	bl	80116e8 <LoRaMacConfirmQueueGetCnt>
+ 800f406:	2800      	cmp	r0, #0
+ 800f408:	d0ee      	beq.n	800f3e8 <LoRaMacHandleRequestEvents+0x58>
+                MacCtx.MacFlags.Bits.MlmeReq = 1;
+ 800f40a:	4a04      	ldr	r2, [pc, #16]	; (800f41c <LoRaMacHandleRequestEvents+0x8c>)
+ 800f40c:	f892 3481 	ldrb.w	r3, [r2, #1153]	; 0x481
+ 800f410:	f043 0304 	orr.w	r3, r3, #4
+ 800f414:	f882 3481 	strb.w	r3, [r2, #1153]	; 0x481
+ 800f418:	e7e6      	b.n	800f3e8 <LoRaMacHandleRequestEvents+0x58>
+ 800f41a:	bf00      	nop
+ 800f41c:	20001fe4 	.word	0x20001fe4
+ 800f420:	2000242c 	.word	0x2000242c
+
+0800f424 <OpenContinuousRxCWindow>:
+{
+ 800f424:	b570      	push	{r4, r5, r6, lr}
+ 800f426:	b082      	sub	sp, #8
+                                     Nvm.MacGroup2.MacParams.RxCChannel.Datarate,
+ 800f428:	4c14      	ldr	r4, [pc, #80]	; (800f47c <OpenContinuousRxCWindow+0x58>)
+    RegionComputeRxWindowParameters( Nvm.MacGroup2.Region,
+ 800f42a:	4d15      	ldr	r5, [pc, #84]	; (800f480 <OpenContinuousRxCWindow+0x5c>)
+ 800f42c:	f505 7678 	add.w	r6, r5, #992	; 0x3e0
+ 800f430:	9600      	str	r6, [sp, #0]
+ 800f432:	6ce3      	ldr	r3, [r4, #76]	; 0x4c
+ 800f434:	f894 2050 	ldrb.w	r2, [r4, #80]	; 0x50
+ 800f438:	f994 1078 	ldrsb.w	r1, [r4, #120]	; 0x78
+ 800f43c:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800f440:	f002 fed4 	bl	80121ec <RegionComputeRxWindowParameters>
+    MacCtx.RxWindowCConfig.RxSlot = RX_SLOT_WIN_CLASS_C;
+ 800f444:	2302      	movs	r3, #2
+ 800f446:	f885 33f3 	strb.w	r3, [r5, #1011]	; 0x3f3
+    MacCtx.RxWindowCConfig.RxContinuous = true;
+ 800f44a:	2301      	movs	r3, #1
+ 800f44c:	f885 33f2 	strb.w	r3, [r5, #1010]	; 0x3f2
+    if( RegionRxConfig( Nvm.MacGroup2.Region, &MacCtx.RxWindowCConfig, ( int8_t* )&MacCtx.McpsIndication.RxDatarate ) == true )
+ 800f450:	f205 421c 	addw	r2, r5, #1052	; 0x41c
+ 800f454:	4631      	mov	r1, r6
+ 800f456:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800f45a:	f002 fed2 	bl	8012202 <RegionRxConfig>
+ 800f45e:	b158      	cbz	r0, 800f478 <OpenContinuousRxCWindow+0x54>
+        MacCtx.MlmeIndication.RxDatarate = MacCtx.McpsIndication.RxDatarate;
+ 800f460:	f895 341c 	ldrb.w	r3, [r5, #1052]	; 0x41c
+ 800f464:	f885 345e 	strb.w	r3, [r5, #1118]	; 0x45e
+        Radio.Rx( 0 ); // Continuous mode
+ 800f468:	4b06      	ldr	r3, [pc, #24]	; (800f484 <OpenContinuousRxCWindow+0x60>)
+ 800f46a:	6b5b      	ldr	r3, [r3, #52]	; 0x34
+ 800f46c:	2000      	movs	r0, #0
+ 800f46e:	4798      	blx	r3
+        MacCtx.RxSlot = MacCtx.RxWindowCConfig.RxSlot;
+ 800f470:	f895 33f3 	ldrb.w	r3, [r5, #1011]	; 0x3f3
+ 800f474:	f885 3480 	strb.w	r3, [r5, #1152]	; 0x480
+}
+ 800f478:	b002      	add	sp, #8
+ 800f47a:	bd70      	pop	{r4, r5, r6, pc}
+ 800f47c:	20001870 	.word	0x20001870
+ 800f480:	20001fe4 	.word	0x20001fe4
+ 800f484:	08018cb4 	.word	0x08018cb4
+
+0800f488 <RxWindowSetup>:
+{
+ 800f488:	b538      	push	{r3, r4, r5, lr}
+ 800f48a:	460c      	mov	r4, r1
+    TimerStop( rxTimer );
+ 800f48c:	f007 fea6 	bl	80171dc <UTIL_TIMER_Stop>
+    Radio.Standby( );
+ 800f490:	4b0c      	ldr	r3, [pc, #48]	; (800f4c4 <RxWindowSetup+0x3c>)
+ 800f492:	6b1b      	ldr	r3, [r3, #48]	; 0x30
+ 800f494:	4798      	blx	r3
+    if( RegionRxConfig( Nvm.MacGroup2.Region, rxConfig, ( int8_t* )&MacCtx.McpsIndication.RxDatarate ) == true )
+ 800f496:	4a0c      	ldr	r2, [pc, #48]	; (800f4c8 <RxWindowSetup+0x40>)
+ 800f498:	4621      	mov	r1, r4
+ 800f49a:	4b0c      	ldr	r3, [pc, #48]	; (800f4cc <RxWindowSetup+0x44>)
+ 800f49c:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 800f4a0:	f002 feaf 	bl	8012202 <RegionRxConfig>
+ 800f4a4:	b160      	cbz	r0, 800f4c0 <RxWindowSetup+0x38>
+        MacCtx.MlmeIndication.RxDatarate = MacCtx.McpsIndication.RxDatarate;
+ 800f4a6:	4d0a      	ldr	r5, [pc, #40]	; (800f4d0 <RxWindowSetup+0x48>)
+ 800f4a8:	f895 341c 	ldrb.w	r3, [r5, #1052]	; 0x41c
+ 800f4ac:	f885 345e 	strb.w	r3, [r5, #1118]	; 0x45e
+        Radio.Rx( Nvm.MacGroup2.MacParams.MaxRxWindow );
+ 800f4b0:	4b04      	ldr	r3, [pc, #16]	; (800f4c4 <RxWindowSetup+0x3c>)
+ 800f4b2:	6b5b      	ldr	r3, [r3, #52]	; 0x34
+ 800f4b4:	4a05      	ldr	r2, [pc, #20]	; (800f4cc <RxWindowSetup+0x44>)
+ 800f4b6:	6d50      	ldr	r0, [r2, #84]	; 0x54
+ 800f4b8:	4798      	blx	r3
+        MacCtx.RxSlot = rxConfig->RxSlot;
+ 800f4ba:	7ce3      	ldrb	r3, [r4, #19]
+ 800f4bc:	f885 3480 	strb.w	r3, [r5, #1152]	; 0x480
+}
+ 800f4c0:	bd38      	pop	{r3, r4, r5, pc}
+ 800f4c2:	bf00      	nop
+ 800f4c4:	08018cb4 	.word	0x08018cb4
+ 800f4c8:	20002400 	.word	0x20002400
+ 800f4cc:	20001870 	.word	0x20001870
+ 800f4d0:	20001fe4 	.word	0x20001fe4
+
+0800f4d4 <OnRxWindow2TimerEvent>:
+{
+ 800f4d4:	b508      	push	{r3, lr}
+    if( MacCtx.RxSlot == RX_SLOT_WIN_1 )
+ 800f4d6:	4b11      	ldr	r3, [pc, #68]	; (800f51c <OnRxWindow2TimerEvent+0x48>)
+ 800f4d8:	f893 3480 	ldrb.w	r3, [r3, #1152]	; 0x480
+ 800f4dc:	b903      	cbnz	r3, 800f4e0 <OnRxWindow2TimerEvent+0xc>
+}
+ 800f4de:	bd08      	pop	{r3, pc}
+    MacCtx.RxWindow2Config.Channel = MacCtx.Channel;
+ 800f4e0:	480e      	ldr	r0, [pc, #56]	; (800f51c <OnRxWindow2TimerEvent+0x48>)
+ 800f4e2:	f890 3411 	ldrb.w	r3, [r0, #1041]	; 0x411
+ 800f4e6:	f880 33cc 	strb.w	r3, [r0, #972]	; 0x3cc
+    MacCtx.RxWindow2Config.Frequency = Nvm.MacGroup2.MacParams.Rx2Channel.Frequency;
+ 800f4ea:	4b0d      	ldr	r3, [pc, #52]	; (800f520 <OnRxWindow2TimerEvent+0x4c>)
+ 800f4ec:	6eda      	ldr	r2, [r3, #108]	; 0x6c
+ 800f4ee:	f8c0 23d0 	str.w	r2, [r0, #976]	; 0x3d0
+    MacCtx.RxWindow2Config.DownlinkDwellTime = Nvm.MacGroup2.MacParams.DownlinkDwellTime;
+ 800f4f2:	f893 207d 	ldrb.w	r2, [r3, #125]	; 0x7d
+ 800f4f6:	f880 23dc 	strb.w	r2, [r0, #988]	; 0x3dc
+    MacCtx.RxWindow2Config.RepeaterSupport = Nvm.MacGroup2.MacParams.RepeaterSupport;
+ 800f4fa:	f893 308c 	ldrb.w	r3, [r3, #140]	; 0x8c
+ 800f4fe:	f880 33dd 	strb.w	r3, [r0, #989]	; 0x3dd
+    MacCtx.RxWindow2Config.RxContinuous = false;
+ 800f502:	2300      	movs	r3, #0
+ 800f504:	f880 33de 	strb.w	r3, [r0, #990]	; 0x3de
+    MacCtx.RxWindow2Config.RxSlot = RX_SLOT_WIN_2;
+ 800f508:	2301      	movs	r3, #1
+ 800f50a:	f880 33df 	strb.w	r3, [r0, #991]	; 0x3df
+    RxWindowSetup( &MacCtx.RxWindowTimer2, &MacCtx.RxWindow2Config );
+ 800f50e:	f500 7173 	add.w	r1, r0, #972	; 0x3cc
+ 800f512:	f500 7066 	add.w	r0, r0, #920	; 0x398
+ 800f516:	f7ff ffb7 	bl	800f488 <RxWindowSetup>
+ 800f51a:	e7e0      	b.n	800f4de <OnRxWindow2TimerEvent+0xa>
+ 800f51c:	20001fe4 	.word	0x20001fe4
+ 800f520:	20001870 	.word	0x20001870
+
+0800f524 <OnRxWindow1TimerEvent>:
+{
+ 800f524:	b508      	push	{r3, lr}
+    MacCtx.RxWindow1Config.Channel = MacCtx.Channel;
+ 800f526:	480f      	ldr	r0, [pc, #60]	; (800f564 <OnRxWindow1TimerEvent+0x40>)
+ 800f528:	f890 3411 	ldrb.w	r3, [r0, #1041]	; 0x411
+ 800f52c:	f880 33b8 	strb.w	r3, [r0, #952]	; 0x3b8
+    MacCtx.RxWindow1Config.DrOffset = Nvm.MacGroup2.MacParams.Rx1DrOffset;
+ 800f530:	4b0d      	ldr	r3, [pc, #52]	; (800f568 <OnRxWindow1TimerEvent+0x44>)
+ 800f532:	f993 2069 	ldrsb.w	r2, [r3, #105]	; 0x69
+ 800f536:	f880 23bb 	strb.w	r2, [r0, #955]	; 0x3bb
+    MacCtx.RxWindow1Config.DownlinkDwellTime = Nvm.MacGroup2.MacParams.DownlinkDwellTime;
+ 800f53a:	f893 207d 	ldrb.w	r2, [r3, #125]	; 0x7d
+ 800f53e:	f880 23c8 	strb.w	r2, [r0, #968]	; 0x3c8
+    MacCtx.RxWindow1Config.RepeaterSupport = Nvm.MacGroup2.MacParams.RepeaterSupport;
+ 800f542:	f893 308c 	ldrb.w	r3, [r3, #140]	; 0x8c
+ 800f546:	f880 33c9 	strb.w	r3, [r0, #969]	; 0x3c9
+    MacCtx.RxWindow1Config.RxContinuous = false;
+ 800f54a:	2300      	movs	r3, #0
+ 800f54c:	f880 33ca 	strb.w	r3, [r0, #970]	; 0x3ca
+    MacCtx.RxWindow1Config.RxSlot = RX_SLOT_WIN_1;
+ 800f550:	f880 33cb 	strb.w	r3, [r0, #971]	; 0x3cb
+    RxWindowSetup( &MacCtx.RxWindowTimer1, &MacCtx.RxWindow1Config );
+ 800f554:	f500 716e 	add.w	r1, r0, #952	; 0x3b8
+ 800f558:	f500 7060 	add.w	r0, r0, #896	; 0x380
+ 800f55c:	f7ff ff94 	bl	800f488 <RxWindowSetup>
+}
+ 800f560:	bd08      	pop	{r3, pc}
+ 800f562:	bf00      	nop
+ 800f564:	20001fe4 	.word	0x20001fe4
+ 800f568:	20001870 	.word	0x20001870
+
+0800f56c <LoRaMacHandleNvm>:
+{
+ 800f56c:	b538      	push	{r3, r4, r5, lr}
+    if( MacCtx.MacState != LORAMAC_IDLE )
+ 800f56e:	4b30      	ldr	r3, [pc, #192]	; (800f630 <LoRaMacHandleNvm+0xc4>)
+ 800f570:	f8d3 3340 	ldr.w	r3, [r3, #832]	; 0x340
+ 800f574:	b103      	cbz	r3, 800f578 <LoRaMacHandleNvm+0xc>
+}
+ 800f576:	bd38      	pop	{r3, r4, r5, pc}
+ 800f578:	4604      	mov	r4, r0
+    crc = Crc32( ( uint8_t* ) &nvmData->Crypto, sizeof( nvmData->Crypto ) -
+ 800f57a:	2124      	movs	r1, #36	; 0x24
+ 800f57c:	f005 f82e 	bl	80145dc <Crc32>
+    if( crc != nvmData->Crypto.Crc32 )
+ 800f580:	6a63      	ldr	r3, [r4, #36]	; 0x24
+ 800f582:	4283      	cmp	r3, r0
+ 800f584:	d052      	beq.n	800f62c <LoRaMacHandleNvm+0xc0>
+        nvmData->Crypto.Crc32 = crc;
+ 800f586:	6260      	str	r0, [r4, #36]	; 0x24
+        notifyFlags |= LORAMAC_NVM_NOTIFY_FLAG_CRYPTO;
+ 800f588:	2501      	movs	r5, #1
+    crc = Crc32( ( uint8_t* ) &nvmData->MacGroup1, sizeof( nvmData->MacGroup1 ) -
+ 800f58a:	211c      	movs	r1, #28
+ 800f58c:	f104 0028 	add.w	r0, r4, #40	; 0x28
+ 800f590:	f005 f824 	bl	80145dc <Crc32>
+    if( crc != nvmData->MacGroup1.Crc32 )
+ 800f594:	6c63      	ldr	r3, [r4, #68]	; 0x44
+ 800f596:	4283      	cmp	r3, r0
+ 800f598:	d002      	beq.n	800f5a0 <LoRaMacHandleNvm+0x34>
+        nvmData->MacGroup1.Crc32 = crc;
+ 800f59a:	6460      	str	r0, [r4, #68]	; 0x44
+        notifyFlags |= LORAMAC_NVM_NOTIFY_FLAG_MAC_GROUP1;
+ 800f59c:	f045 0502 	orr.w	r5, r5, #2
+    crc = Crc32( ( uint8_t* ) &nvmData->MacGroup2, sizeof( nvmData->MacGroup2 ) -
+ 800f5a0:	21fc      	movs	r1, #252	; 0xfc
+ 800f5a2:	f104 0048 	add.w	r0, r4, #72	; 0x48
+ 800f5a6:	f005 f819 	bl	80145dc <Crc32>
+    if( crc != nvmData->MacGroup2.Crc32 )
+ 800f5aa:	f8d4 3144 	ldr.w	r3, [r4, #324]	; 0x144
+ 800f5ae:	4283      	cmp	r3, r0
+ 800f5b0:	d003      	beq.n	800f5ba <LoRaMacHandleNvm+0x4e>
+        nvmData->MacGroup2.Crc32 = crc;
+ 800f5b2:	f8c4 0144 	str.w	r0, [r4, #324]	; 0x144
+        notifyFlags |= LORAMAC_NVM_NOTIFY_FLAG_MAC_GROUP2;
+ 800f5b6:	f045 0504 	orr.w	r5, r5, #4
+    crc = Crc32( ( uint8_t* ) &nvmData->SecureElement, sizeof( nvmData->SecureElement ) -
+ 800f5ba:	21d4      	movs	r1, #212	; 0xd4
+ 800f5bc:	f504 70a4 	add.w	r0, r4, #328	; 0x148
+ 800f5c0:	f005 f80c 	bl	80145dc <Crc32>
+    if( crc != nvmData->SecureElement.Crc32 )
+ 800f5c4:	f8d4 321c 	ldr.w	r3, [r4, #540]	; 0x21c
+ 800f5c8:	4283      	cmp	r3, r0
+ 800f5ca:	d003      	beq.n	800f5d4 <LoRaMacHandleNvm+0x68>
+        nvmData->SecureElement.Crc32 = crc;
+ 800f5cc:	f8c4 021c 	str.w	r0, [r4, #540]	; 0x21c
+        notifyFlags |= LORAMAC_NVM_NOTIFY_FLAG_SECURE_ELEMENT;
+ 800f5d0:	f045 0508 	orr.w	r5, r5, #8
+    crc = Crc32( ( uint8_t* ) &nvmData->RegionGroup1, sizeof( nvmData->RegionGroup1 ) -
+ 800f5d4:	2190      	movs	r1, #144	; 0x90
+ 800f5d6:	f504 7008 	add.w	r0, r4, #544	; 0x220
+ 800f5da:	f004 ffff 	bl	80145dc <Crc32>
+    if( crc != nvmData->RegionGroup1.Crc32 )
+ 800f5de:	f8d4 32b0 	ldr.w	r3, [r4, #688]	; 0x2b0
+ 800f5e2:	4283      	cmp	r3, r0
+ 800f5e4:	d003      	beq.n	800f5ee <LoRaMacHandleNvm+0x82>
+        nvmData->RegionGroup1.Crc32 = crc;
+ 800f5e6:	f8c4 02b0 	str.w	r0, [r4, #688]	; 0x2b0
+        notifyFlags |= LORAMAC_NVM_NOTIFY_FLAG_REGION_GROUP1;
+ 800f5ea:	f045 0510 	orr.w	r5, r5, #16
+    crc = Crc32( ( uint8_t* ) &nvmData->RegionGroup2, sizeof( nvmData->RegionGroup2 ) -
+ 800f5ee:	f44f 6194 	mov.w	r1, #1184	; 0x4a0
+ 800f5f2:	f504 702d 	add.w	r0, r4, #692	; 0x2b4
+ 800f5f6:	f004 fff1 	bl	80145dc <Crc32>
+    if( crc != nvmData->RegionGroup2.Crc32 )
+ 800f5fa:	f8d4 3754 	ldr.w	r3, [r4, #1876]	; 0x754
+ 800f5fe:	4283      	cmp	r3, r0
+ 800f600:	d003      	beq.n	800f60a <LoRaMacHandleNvm+0x9e>
+        nvmData->RegionGroup2.Crc32 = crc;
+ 800f602:	f8c4 0754 	str.w	r0, [r4, #1876]	; 0x754
+        notifyFlags |= LORAMAC_NVM_NOTIFY_FLAG_REGION_GROUP2;
+ 800f606:	f045 0520 	orr.w	r5, r5, #32
+    crc = Crc32( ( uint8_t* ) &nvmData->ClassB, sizeof( nvmData->ClassB ) -
+ 800f60a:	2114      	movs	r1, #20
+ 800f60c:	f504 60eb 	add.w	r0, r4, #1880	; 0x758
+ 800f610:	f004 ffe4 	bl	80145dc <Crc32>
+    if( crc != nvmData->ClassB.Crc32 )
+ 800f614:	f8d4 376c 	ldr.w	r3, [r4, #1900]	; 0x76c
+ 800f618:	4283      	cmp	r3, r0
+ 800f61a:	d003      	beq.n	800f624 <LoRaMacHandleNvm+0xb8>
+        nvmData->ClassB.Crc32 = crc;
+ 800f61c:	f8c4 076c 	str.w	r0, [r4, #1900]	; 0x76c
+        notifyFlags |= LORAMAC_NVM_NOTIFY_FLAG_CLASS_B;
+ 800f620:	f045 0540 	orr.w	r5, r5, #64	; 0x40
+    CallNvmDataChangeCallback( notifyFlags );
+ 800f624:	4628      	mov	r0, r5
+ 800f626:	f7fe fb95 	bl	800dd54 <CallNvmDataChangeCallback>
+ 800f62a:	e7a4      	b.n	800f576 <LoRaMacHandleNvm+0xa>
+    uint16_t notifyFlags = LORAMAC_NVM_NOTIFY_FLAG_NONE;
+ 800f62c:	2500      	movs	r5, #0
+ 800f62e:	e7ac      	b.n	800f58a <LoRaMacHandleNvm+0x1e>
+ 800f630:	20001fe4 	.word	0x20001fe4
+
+0800f634 <RestoreNvmData>:
+{
+ 800f634:	b538      	push	{r3, r4, r5, lr}
+    if( MacCtx.MacState != LORAMAC_STOPPED )
+ 800f636:	4b3d      	ldr	r3, [pc, #244]	; (800f72c <RestoreNvmData+0xf8>)
+ 800f638:	f8d3 3340 	ldr.w	r3, [r3, #832]	; 0x340
+ 800f63c:	2b01      	cmp	r3, #1
+ 800f63e:	d001      	beq.n	800f644 <RestoreNvmData+0x10>
+        return LORAMAC_STATUS_BUSY;
+ 800f640:	2001      	movs	r0, #1
+}
+ 800f642:	bd38      	pop	{r3, r4, r5, pc}
+    crc = Crc32( ( uint8_t* ) &(NvmBackup.Crypto), sizeof( NvmBackup.Crypto ) -
+ 800f644:	4c3a      	ldr	r4, [pc, #232]	; (800f730 <RestoreNvmData+0xfc>)
+ 800f646:	2124      	movs	r1, #36	; 0x24
+ 800f648:	4620      	mov	r0, r4
+ 800f64a:	f004 ffc7 	bl	80145dc <Crc32>
+    if( crc != NvmBackup.Crypto.Crc32 )
+ 800f64e:	6a63      	ldr	r3, [r4, #36]	; 0x24
+ 800f650:	4283      	cmp	r3, r0
+ 800f652:	d001      	beq.n	800f658 <RestoreNvmData+0x24>
+        return LORAMAC_STATUS_NVM_DATA_INCONSISTENT;
+ 800f654:	2017      	movs	r0, #23
+ 800f656:	e7f4      	b.n	800f642 <RestoreNvmData+0xe>
+    crc = Crc32( ( uint8_t* ) &(NvmBackup.MacGroup1), sizeof( NvmBackup.MacGroup1 ) -
+ 800f658:	211c      	movs	r1, #28
+ 800f65a:	f104 0028 	add.w	r0, r4, #40	; 0x28
+ 800f65e:	f004 ffbd 	bl	80145dc <Crc32>
+    if( crc != NvmBackup.MacGroup1.Crc32 )
+ 800f662:	6c63      	ldr	r3, [r4, #68]	; 0x44
+ 800f664:	4283      	cmp	r3, r0
+ 800f666:	d001      	beq.n	800f66c <RestoreNvmData+0x38>
+        return LORAMAC_STATUS_NVM_DATA_INCONSISTENT;
+ 800f668:	2017      	movs	r0, #23
+ 800f66a:	e7ea      	b.n	800f642 <RestoreNvmData+0xe>
+    crc = Crc32( ( uint8_t* ) &(NvmBackup.MacGroup2), sizeof( NvmBackup.MacGroup2 ) -
+ 800f66c:	21fc      	movs	r1, #252	; 0xfc
+ 800f66e:	f104 0048 	add.w	r0, r4, #72	; 0x48
+ 800f672:	f004 ffb3 	bl	80145dc <Crc32>
+    if( crc != NvmBackup.MacGroup2.Crc32 )
+ 800f676:	f8d4 3144 	ldr.w	r3, [r4, #324]	; 0x144
+ 800f67a:	4283      	cmp	r3, r0
+ 800f67c:	d001      	beq.n	800f682 <RestoreNvmData+0x4e>
+        return LORAMAC_STATUS_NVM_DATA_INCONSISTENT;
+ 800f67e:	2017      	movs	r0, #23
+ 800f680:	e7df      	b.n	800f642 <RestoreNvmData+0xe>
+    crc = Crc32( ( uint8_t* ) &(NvmBackup.SecureElement), sizeof( NvmBackup.SecureElement ) -
+ 800f682:	21d4      	movs	r1, #212	; 0xd4
+ 800f684:	f504 70a4 	add.w	r0, r4, #328	; 0x148
+ 800f688:	f004 ffa8 	bl	80145dc <Crc32>
+    if( crc != NvmBackup.SecureElement.Crc32 )
+ 800f68c:	f8d4 321c 	ldr.w	r3, [r4, #540]	; 0x21c
+ 800f690:	4283      	cmp	r3, r0
+ 800f692:	d001      	beq.n	800f698 <RestoreNvmData+0x64>
+        return LORAMAC_STATUS_NVM_DATA_INCONSISTENT;
+ 800f694:	2017      	movs	r0, #23
+ 800f696:	e7d4      	b.n	800f642 <RestoreNvmData+0xe>
+    crc = Crc32( ( uint8_t* ) &(NvmBackup.RegionGroup1), sizeof( NvmBackup.RegionGroup1 ) -
+ 800f698:	2190      	movs	r1, #144	; 0x90
+ 800f69a:	f504 7008 	add.w	r0, r4, #544	; 0x220
+ 800f69e:	f004 ff9d 	bl	80145dc <Crc32>
+    if( crc != NvmBackup.RegionGroup1.Crc32 )
+ 800f6a2:	f8d4 32b0 	ldr.w	r3, [r4, #688]	; 0x2b0
+ 800f6a6:	4283      	cmp	r3, r0
+ 800f6a8:	d001      	beq.n	800f6ae <RestoreNvmData+0x7a>
+        return LORAMAC_STATUS_NVM_DATA_INCONSISTENT;
+ 800f6aa:	2017      	movs	r0, #23
+ 800f6ac:	e7c9      	b.n	800f642 <RestoreNvmData+0xe>
+    crc = Crc32( ( uint8_t* ) &(NvmBackup.RegionGroup2), sizeof( NvmBackup.RegionGroup2 ) -
+ 800f6ae:	f44f 6194 	mov.w	r1, #1184	; 0x4a0
+ 800f6b2:	f504 702d 	add.w	r0, r4, #692	; 0x2b4
+ 800f6b6:	f004 ff91 	bl	80145dc <Crc32>
+    if( crc != NvmBackup.RegionGroup2.Crc32 )
+ 800f6ba:	f8d4 3754 	ldr.w	r3, [r4, #1876]	; 0x754
+ 800f6be:	4283      	cmp	r3, r0
+ 800f6c0:	d001      	beq.n	800f6c6 <RestoreNvmData+0x92>
+        return LORAMAC_STATUS_NVM_DATA_INCONSISTENT;
+ 800f6c2:	2017      	movs	r0, #23
+ 800f6c4:	e7bd      	b.n	800f642 <RestoreNvmData+0xe>
+    crc = Crc32( ( uint8_t* ) &(NvmBackup.ClassB), sizeof( NvmBackup.ClassB ) -
+ 800f6c6:	2114      	movs	r1, #20
+ 800f6c8:	f504 60eb 	add.w	r0, r4, #1880	; 0x758
+ 800f6cc:	f004 ff86 	bl	80145dc <Crc32>
+    if( crc != NvmBackup.ClassB.Crc32 )
+ 800f6d0:	f8d4 376c 	ldr.w	r3, [r4, #1900]	; 0x76c
+ 800f6d4:	4283      	cmp	r3, r0
+ 800f6d6:	d001      	beq.n	800f6dc <RestoreNvmData+0xa8>
+        return LORAMAC_STATUS_NVM_DATA_INCONSISTENT;
+ 800f6d8:	2017      	movs	r0, #23
+ 800f6da:	e7b2      	b.n	800f642 <RestoreNvmData+0xe>
+    memcpy1( ( uint8_t* ) &Nvm, ( uint8_t* ) &NvmBackup, sizeof( LoRaMacNvmData_t ) );
+ 800f6dc:	4625      	mov	r5, r4
+ 800f6de:	4c15      	ldr	r4, [pc, #84]	; (800f734 <RestoreNvmData+0x100>)
+ 800f6e0:	f44f 62ee 	mov.w	r2, #1904	; 0x770
+ 800f6e4:	4629      	mov	r1, r5
+ 800f6e6:	4620      	mov	r0, r4
+ 800f6e8:	f004 ff57 	bl	801459a <memcpy1>
+    memset1( ( uint8_t* ) &NvmBackup, 0, sizeof( LoRaMacNvmData_t ) );
+ 800f6ec:	f44f 62ee 	mov.w	r2, #1904	; 0x770
+ 800f6f0:	2100      	movs	r1, #0
+ 800f6f2:	4628      	mov	r0, r5
+ 800f6f4:	f004 ff69 	bl	80145ca <memset1>
+    MacCtx.RxWindowCConfig.Channel = MacCtx.Channel;
+ 800f6f8:	4b0c      	ldr	r3, [pc, #48]	; (800f72c <RestoreNvmData+0xf8>)
+ 800f6fa:	f893 2411 	ldrb.w	r2, [r3, #1041]	; 0x411
+ 800f6fe:	f883 23e0 	strb.w	r2, [r3, #992]	; 0x3e0
+    MacCtx.RxWindowCConfig.Frequency = Nvm.MacGroup2.MacParams.RxCChannel.Frequency;
+ 800f702:	6f62      	ldr	r2, [r4, #116]	; 0x74
+ 800f704:	f8c3 23e4 	str.w	r2, [r3, #996]	; 0x3e4
+    MacCtx.RxWindowCConfig.DownlinkDwellTime = Nvm.MacGroup2.MacParams.DownlinkDwellTime;
+ 800f708:	f894 207d 	ldrb.w	r2, [r4, #125]	; 0x7d
+ 800f70c:	f883 23f0 	strb.w	r2, [r3, #1008]	; 0x3f0
+    MacCtx.RxWindowCConfig.RxContinuous = true;
+ 800f710:	2201      	movs	r2, #1
+ 800f712:	f883 23f2 	strb.w	r2, [r3, #1010]	; 0x3f2
+    MacCtx.RxWindowCConfig.RxSlot = RX_SLOT_WIN_CLASS_C;
+ 800f716:	2202      	movs	r2, #2
+ 800f718:	f883 23f3 	strb.w	r2, [r3, #1011]	; 0x3f3
+    Radio.SetPublicNetwork( Nvm.MacGroup2.PublicNetwork );
+ 800f71c:	4b06      	ldr	r3, [pc, #24]	; (800f738 <RestoreNvmData+0x104>)
+ 800f71e:	6d9b      	ldr	r3, [r3, #88]	; 0x58
+ 800f720:	f894 0119 	ldrb.w	r0, [r4, #281]	; 0x119
+ 800f724:	4798      	blx	r3
+    return LORAMAC_STATUS_OK;
+ 800f726:	2000      	movs	r0, #0
+ 800f728:	e78b      	b.n	800f642 <RestoreNvmData+0xe>
+ 800f72a:	bf00      	nop
+ 800f72c:	20001fe4 	.word	0x20001fe4
+ 800f730:	20001100 	.word	0x20001100
+ 800f734:	20001870 	.word	0x20001870
+ 800f738:	08018cb4 	.word	0x08018cb4
+
+0800f73c <OnRadioRxTimeout>:
+{
+ 800f73c:	b508      	push	{r3, lr}
+    LoRaMacRadioEvents.Events.RxTimeout = 1;
+ 800f73e:	4a07      	ldr	r2, [pc, #28]	; (800f75c <OnRadioRxTimeout+0x20>)
+ 800f740:	7813      	ldrb	r3, [r2, #0]
+ 800f742:	f043 0301 	orr.w	r3, r3, #1
+ 800f746:	7013      	strb	r3, [r2, #0]
+    OnMacProcessNotify( );
+ 800f748:	f7fe faec 	bl	800dd24 <OnMacProcessNotify>
+    MW_LOG(TS_ON, VLEVEL_M, "MAC rxTimeOut\r\n" );
+ 800f74c:	4b04      	ldr	r3, [pc, #16]	; (800f760 <OnRadioRxTimeout+0x24>)
+ 800f74e:	2201      	movs	r2, #1
+ 800f750:	2100      	movs	r1, #0
+ 800f752:	2002      	movs	r0, #2
+ 800f754:	f007 f9f0 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+}
+ 800f758:	bd08      	pop	{r3, pc}
+ 800f75a:	bf00      	nop
+ 800f75c:	20001fe0 	.word	0x20001fe0
+ 800f760:	08018610 	.word	0x08018610
+
+0800f764 <OnRadioTxTimeout>:
+{
+ 800f764:	b508      	push	{r3, lr}
+    LoRaMacRadioEvents.Events.TxTimeout = 1;
+ 800f766:	4a07      	ldr	r2, [pc, #28]	; (800f784 <OnRadioTxTimeout+0x20>)
+ 800f768:	7813      	ldrb	r3, [r2, #0]
+ 800f76a:	f043 0304 	orr.w	r3, r3, #4
+ 800f76e:	7013      	strb	r3, [r2, #0]
+    OnMacProcessNotify( );
+ 800f770:	f7fe fad8 	bl	800dd24 <OnMacProcessNotify>
+    MW_LOG(TS_ON, VLEVEL_M, "MAC txTimeOut\r\n" );
+ 800f774:	4b04      	ldr	r3, [pc, #16]	; (800f788 <OnRadioTxTimeout+0x24>)
+ 800f776:	2201      	movs	r2, #1
+ 800f778:	2100      	movs	r1, #0
+ 800f77a:	2002      	movs	r0, #2
+ 800f77c:	f007 f9dc 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+}
+ 800f780:	bd08      	pop	{r3, pc}
+ 800f782:	bf00      	nop
+ 800f784:	20001fe0 	.word	0x20001fe0
+ 800f788:	08018620 	.word	0x08018620
+
+0800f78c <OnRadioRxDone>:
+{
+ 800f78c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800f790:	4680      	mov	r8, r0
+ 800f792:	460f      	mov	r7, r1
+ 800f794:	4616      	mov	r6, r2
+ 800f796:	461d      	mov	r5, r3
+    RxDoneParams.LastRxDone = TimerGetCurrentTime( );
+ 800f798:	f007 fce0 	bl	801715c <UTIL_TIMER_GetCurrentTime>
+ 800f79c:	4c0a      	ldr	r4, [pc, #40]	; (800f7c8 <OnRadioRxDone+0x3c>)
+ 800f79e:	6020      	str	r0, [r4, #0]
+    RxDoneParams.Payload = payload;
+ 800f7a0:	f8c4 8004 	str.w	r8, [r4, #4]
+    RxDoneParams.Size = size;
+ 800f7a4:	8127      	strh	r7, [r4, #8]
+    RxDoneParams.Rssi = rssi;
+ 800f7a6:	8166      	strh	r6, [r4, #10]
+    RxDoneParams.Snr = snr;
+ 800f7a8:	7325      	strb	r5, [r4, #12]
+    LoRaMacRadioEvents.Events.RxDone = 1;
+ 800f7aa:	4a08      	ldr	r2, [pc, #32]	; (800f7cc <OnRadioRxDone+0x40>)
+ 800f7ac:	7813      	ldrb	r3, [r2, #0]
+ 800f7ae:	f043 0308 	orr.w	r3, r3, #8
+ 800f7b2:	7013      	strb	r3, [r2, #0]
+    OnMacProcessNotify( );
+ 800f7b4:	f7fe fab6 	bl	800dd24 <OnMacProcessNotify>
+    MW_LOG(TS_ON, VLEVEL_M, "MAC rxDone\r\n" );
+ 800f7b8:	4b05      	ldr	r3, [pc, #20]	; (800f7d0 <OnRadioRxDone+0x44>)
+ 800f7ba:	2201      	movs	r2, #1
+ 800f7bc:	2100      	movs	r1, #0
+ 800f7be:	2002      	movs	r0, #2
+ 800f7c0:	f007 f9ba 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+}
+ 800f7c4:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800f7c8:	200024ec 	.word	0x200024ec
+ 800f7cc:	20001fe0 	.word	0x20001fe0
+ 800f7d0:	08018630 	.word	0x08018630
+
+0800f7d4 <OnRadioTxDone>:
+{
+ 800f7d4:	b510      	push	{r4, lr}
+ 800f7d6:	b082      	sub	sp, #8
+    TxDoneParams.CurTime = TimerGetCurrentTime( );
+ 800f7d8:	f007 fcc0 	bl	801715c <UTIL_TIMER_GetCurrentTime>
+ 800f7dc:	4b0c      	ldr	r3, [pc, #48]	; (800f810 <OnRadioTxDone+0x3c>)
+ 800f7de:	6018      	str	r0, [r3, #0]
+    MacCtx.LastTxSysTime = SysTimeGet( );
+ 800f7e0:	466c      	mov	r4, sp
+ 800f7e2:	4620      	mov	r0, r4
+ 800f7e4:	f007 fc0c 	bl	8017000 <SysTimeGet>
+ 800f7e8:	4b0a      	ldr	r3, [pc, #40]	; (800f814 <OnRadioTxDone+0x40>)
+ 800f7ea:	e894 0003 	ldmia.w	r4, {r0, r1}
+ 800f7ee:	e883 0003 	stmia.w	r3, {r0, r1}
+    LoRaMacRadioEvents.Events.TxDone = 1;
+ 800f7f2:	4a09      	ldr	r2, [pc, #36]	; (800f818 <OnRadioTxDone+0x44>)
+ 800f7f4:	7813      	ldrb	r3, [r2, #0]
+ 800f7f6:	f043 0310 	orr.w	r3, r3, #16
+ 800f7fa:	7013      	strb	r3, [r2, #0]
+    OnMacProcessNotify( );
+ 800f7fc:	f7fe fa92 	bl	800dd24 <OnMacProcessNotify>
+    MW_LOG(TS_ON, VLEVEL_M, "MAC txDone\r\n" );
+ 800f800:	4b06      	ldr	r3, [pc, #24]	; (800f81c <OnRadioTxDone+0x48>)
+ 800f802:	2201      	movs	r2, #1
+ 800f804:	2100      	movs	r1, #0
+ 800f806:	2002      	movs	r0, #2
+ 800f808:	f007 f996 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+}
+ 800f80c:	b002      	add	sp, #8
+ 800f80e:	bd10      	pop	{r4, pc}
+ 800f810:	200024fc 	.word	0x200024fc
+ 800f814:	2000231c 	.word	0x2000231c
+ 800f818:	20001fe0 	.word	0x20001fe0
+ 800f81c:	08018640 	.word	0x08018640
+
+0800f820 <ResetMacParameters>:
+{
+ 800f820:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 800f822:	b08f      	sub	sp, #60	; 0x3c
+    if( isRejoin == false )
+ 800f824:	b918      	cbnz	r0, 800f82e <ResetMacParameters+0xe>
+        Nvm.MacGroup2.NetworkActivation = ACTIVATION_TYPE_NONE;
+ 800f826:	4b5b      	ldr	r3, [pc, #364]	; (800f994 <ResetMacParameters+0x174>)
+ 800f828:	2200      	movs	r2, #0
+ 800f82a:	f883 212c 	strb.w	r2, [r3, #300]	; 0x12c
+    Nvm.MacGroup1.AdrAckCounter = 0;
+ 800f82e:	4c59      	ldr	r4, [pc, #356]	; (800f994 <ResetMacParameters+0x174>)
+ 800f830:	2500      	movs	r5, #0
+ 800f832:	62a5      	str	r5, [r4, #40]	; 0x28
+    MacCtx.ChannelsNbTransCounter = 0;
+ 800f834:	4e58      	ldr	r6, [pc, #352]	; (800f998 <ResetMacParameters+0x178>)
+ 800f836:	f886 540c 	strb.w	r5, [r6, #1036]	; 0x40c
+    MacCtx.AckTimeoutRetries = 1;
+ 800f83a:	2701      	movs	r7, #1
+ 800f83c:	f886 740d 	strb.w	r7, [r6, #1037]	; 0x40d
+    MacCtx.AckTimeoutRetriesCounter = 1;
+ 800f840:	f886 740e 	strb.w	r7, [r6, #1038]	; 0x40e
+    MacCtx.AckTimeoutRetry = false;
+ 800f844:	f886 540f 	strb.w	r5, [r6, #1039]	; 0x40f
+    Nvm.MacGroup2.MaxDCycle = 0;
+ 800f848:	f884 511b 	strb.w	r5, [r4, #283]	; 0x11b
+    Nvm.MacGroup2.AggregatedDCycle = 1;
+ 800f84c:	f8a4 711e 	strh.w	r7, [r4, #286]	; 0x11e
+    Nvm.MacGroup1.ChannelsTxPower = Nvm.MacGroup2.ChannelsTxPowerDefault;
+ 800f850:	f994 30dc 	ldrsb.w	r3, [r4, #220]	; 0xdc
+ 800f854:	f884 3038 	strb.w	r3, [r4, #56]	; 0x38
+    Nvm.MacGroup1.ChannelsDatarate = Nvm.MacGroup2.ChannelsDatarateDefault;
+ 800f858:	f994 30dd 	ldrsb.w	r3, [r4, #221]	; 0xdd
+ 800f85c:	f884 3039 	strb.w	r3, [r4, #57]	; 0x39
+    Nvm.MacGroup2.MacParams.Rx1DrOffset = Nvm.MacGroup2.MacParamsDefaults.Rx1DrOffset;
+ 800f860:	f894 30b1 	ldrb.w	r3, [r4, #177]	; 0xb1
+ 800f864:	f884 3069 	strb.w	r3, [r4, #105]	; 0x69
+    Nvm.MacGroup2.MacParams.Rx2Channel = Nvm.MacGroup2.MacParamsDefaults.Rx2Channel;
+ 800f868:	f104 036c 	add.w	r3, r4, #108	; 0x6c
+ 800f86c:	f104 02b4 	add.w	r2, r4, #180	; 0xb4
+ 800f870:	e892 0003 	ldmia.w	r2, {r0, r1}
+ 800f874:	e883 0003 	stmia.w	r3, {r0, r1}
+    Nvm.MacGroup2.MacParams.RxCChannel = Nvm.MacGroup2.MacParamsDefaults.RxCChannel;
+ 800f878:	f104 0374 	add.w	r3, r4, #116	; 0x74
+ 800f87c:	f104 02bc 	add.w	r2, r4, #188	; 0xbc
+ 800f880:	e892 0003 	ldmia.w	r2, {r0, r1}
+ 800f884:	e883 0003 	stmia.w	r3, {r0, r1}
+    Nvm.MacGroup2.MacParams.UplinkDwellTime = Nvm.MacGroup2.MacParamsDefaults.UplinkDwellTime;
+ 800f888:	f894 30c4 	ldrb.w	r3, [r4, #196]	; 0xc4
+ 800f88c:	f884 307c 	strb.w	r3, [r4, #124]	; 0x7c
+    Nvm.MacGroup2.MacParams.DownlinkDwellTime = Nvm.MacGroup2.MacParamsDefaults.DownlinkDwellTime;
+ 800f890:	f894 30c5 	ldrb.w	r3, [r4, #197]	; 0xc5
+ 800f894:	f884 307d 	strb.w	r3, [r4, #125]	; 0x7d
+    Nvm.MacGroup2.MacParams.MaxEirp = Nvm.MacGroup2.MacParamsDefaults.MaxEirp;
+ 800f898:	f8d4 30c8 	ldr.w	r3, [r4, #200]	; 0xc8
+ 800f89c:	f8c4 3080 	str.w	r3, [r4, #128]	; 0x80
+    Nvm.MacGroup2.MacParams.AntennaGain = Nvm.MacGroup2.MacParamsDefaults.AntennaGain;
+ 800f8a0:	f8d4 30cc 	ldr.w	r3, [r4, #204]	; 0xcc
+ 800f8a4:	f8c4 3084 	str.w	r3, [r4, #132]	; 0x84
+    Nvm.MacGroup2.MacParams.AdrAckLimit = Nvm.MacGroup2.MacParamsDefaults.AdrAckLimit;
+ 800f8a8:	f8b4 30d0 	ldrh.w	r3, [r4, #208]	; 0xd0
+ 800f8ac:	f8a4 3088 	strh.w	r3, [r4, #136]	; 0x88
+    Nvm.MacGroup2.MacParams.AdrAckDelay = Nvm.MacGroup2.MacParamsDefaults.AdrAckDelay;
+ 800f8b0:	f8b4 30d2 	ldrh.w	r3, [r4, #210]	; 0xd2
+ 800f8b4:	f8a4 308a 	strh.w	r3, [r4, #138]	; 0x8a
+    MacCtx.NodeAckRequested = false;
+ 800f8b8:	f886 5410 	strb.w	r5, [r6, #1040]	; 0x410
+    Nvm.MacGroup1.SrvAckRequested = false;
+ 800f8bc:	f884 503a 	strb.w	r5, [r4, #58]	; 0x3a
+    Nvm.MacGroup2.Rejoin0UplinksLimit = 0;
+ 800f8c0:	f8c4 5130 	str.w	r5, [r4, #304]	; 0x130
+    Nvm.MacGroup2.ForceRejoinMaxRetries = 0;
+ 800f8c4:	f884 5134 	strb.w	r5, [r4, #308]	; 0x134
+    Nvm.MacGroup2.ForceRejoinType = 0;
+ 800f8c8:	f884 5135 	strb.w	r5, [r4, #309]	; 0x135
+    Nvm.MacGroup2.Rejoin0CycleInSec = 0;
+ 800f8cc:	f8c4 5138 	str.w	r5, [r4, #312]	; 0x138
+    Nvm.MacGroup2.Rejoin1CycleInSec = 0;
+ 800f8d0:	f8c4 513c 	str.w	r5, [r4, #316]	; 0x13c
+    Nvm.MacGroup2.IsRejoin0RequestQueued = 0;
+ 800f8d4:	f884 5141 	strb.w	r5, [r4, #321]	; 0x141
+    Nvm.MacGroup2.IsRejoin1RequestQueued = 0;
+ 800f8d8:	f884 5142 	strb.w	r5, [r4, #322]	; 0x142
+    Nvm.MacGroup2.IsRejoin2RequestQueued = 0;
+ 800f8dc:	f884 5143 	strb.w	r5, [r4, #323]	; 0x143
+    params.Type = INIT_TYPE_RESET_TO_DEFAULT_CHANNELS;
+ 800f8e0:	f88d 700c 	strb.w	r7, [sp, #12]
+    params.NvmGroup1 = &Nvm.RegionGroup1;
+ 800f8e4:	f504 7308 	add.w	r3, r4, #544	; 0x220
+ 800f8e8:	9301      	str	r3, [sp, #4]
+    params.NvmGroup2 = &Nvm.RegionGroup2;
+ 800f8ea:	f504 732d 	add.w	r3, r4, #692	; 0x2b4
+ 800f8ee:	9302      	str	r3, [sp, #8]
+    RegionInitDefaults( Nvm.MacGroup2.Region, &params );
+ 800f8f0:	a901      	add	r1, sp, #4
+ 800f8f2:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800f8f6:	f002 fc59 	bl	80121ac <RegionInitDefaults>
+    MacCtx.Channel = 0;
+ 800f8fa:	f886 5411 	strb.w	r5, [r6, #1041]	; 0x411
+    MacCtx.RxWindow2Config.Channel = MacCtx.Channel;
+ 800f8fe:	f886 53cc 	strb.w	r5, [r6, #972]	; 0x3cc
+    MacCtx.RxWindow2Config.Frequency = Nvm.MacGroup2.MacParams.Rx2Channel.Frequency;
+ 800f902:	6ee3      	ldr	r3, [r4, #108]	; 0x6c
+ 800f904:	f8c6 33d0 	str.w	r3, [r6, #976]	; 0x3d0
+    MacCtx.RxWindow2Config.DownlinkDwellTime = Nvm.MacGroup2.MacParams.DownlinkDwellTime;
+ 800f908:	f894 307d 	ldrb.w	r3, [r4, #125]	; 0x7d
+ 800f90c:	f886 33dc 	strb.w	r3, [r6, #988]	; 0x3dc
+    MacCtx.RxWindow2Config.RepeaterSupport = Nvm.MacGroup2.MacParams.RepeaterSupport;
+ 800f910:	f894 308c 	ldrb.w	r3, [r4, #140]	; 0x8c
+ 800f914:	f886 33dd 	strb.w	r3, [r6, #989]	; 0x3dd
+    MacCtx.RxWindow2Config.RxContinuous = false;
+ 800f918:	f886 53de 	strb.w	r5, [r6, #990]	; 0x3de
+    MacCtx.RxWindow2Config.RxSlot = RX_SLOT_WIN_2;
+ 800f91c:	f886 73df 	strb.w	r7, [r6, #991]	; 0x3df
+    MacCtx.RxWindowCConfig = MacCtx.RxWindow2Config;
+ 800f920:	f506 7478 	add.w	r4, r6, #992	; 0x3e0
+ 800f924:	f506 7c73 	add.w	ip, r6, #972	; 0x3cc
+ 800f928:	e8bc 000f 	ldmia.w	ip!, {r0, r1, r2, r3}
+ 800f92c:	c40f      	stmia	r4!, {r0, r1, r2, r3}
+ 800f92e:	f8dc 3000 	ldr.w	r3, [ip]
+ 800f932:	6023      	str	r3, [r4, #0]
+    MacCtx.RxWindowCConfig.RxContinuous = true;
+ 800f934:	f886 73f2 	strb.w	r7, [r6, #1010]	; 0x3f2
+    MacCtx.RxWindowCConfig.RxSlot = RX_SLOT_WIN_CLASS_C;
+ 800f938:	2302      	movs	r3, #2
+ 800f93a:	f886 33f3 	strb.w	r3, [r6, #1011]	; 0x3f3
+    classBCallbacks.GetTemperatureLevel = NULL;
+ 800f93e:	950c      	str	r5, [sp, #48]	; 0x30
+    classBCallbacks.MacProcessNotify = NULL;
+ 800f940:	950d      	str	r5, [sp, #52]	; 0x34
+    if( MacCtx.MacCallbacks != NULL )
+ 800f942:	f8d6 3348 	ldr.w	r3, [r6, #840]	; 0x348
+ 800f946:	b11b      	cbz	r3, 800f950 <ResetMacParameters+0x130>
+        classBCallbacks.GetTemperatureLevel = MacCtx.MacCallbacks->GetTemperatureLevel;
+ 800f948:	685a      	ldr	r2, [r3, #4]
+ 800f94a:	920c      	str	r2, [sp, #48]	; 0x30
+        classBCallbacks.MacProcessNotify = MacCtx.MacCallbacks->MacProcessNotify;
+ 800f94c:	695b      	ldr	r3, [r3, #20]
+ 800f94e:	930d      	str	r3, [sp, #52]	; 0x34
+    classBParams.MlmeIndication = &MacCtx.MlmeIndication;
+ 800f950:	4b11      	ldr	r3, [pc, #68]	; (800f998 <ResetMacParameters+0x178>)
+ 800f952:	f203 425c 	addw	r2, r3, #1116	; 0x45c
+ 800f956:	9204      	str	r2, [sp, #16]
+    classBParams.McpsIndication = &MacCtx.McpsIndication;
+ 800f958:	f503 6283 	add.w	r2, r3, #1048	; 0x418
+ 800f95c:	9205      	str	r2, [sp, #20]
+    classBParams.MlmeConfirm = &MacCtx.MlmeConfirm;
+ 800f95e:	f503 6289 	add.w	r2, r3, #1096	; 0x448
+ 800f962:	9206      	str	r2, [sp, #24]
+    classBParams.LoRaMacFlags = &MacCtx.MacFlags;
+ 800f964:	f203 4381 	addw	r3, r3, #1153	; 0x481
+ 800f968:	9307      	str	r3, [sp, #28]
+    classBParams.LoRaMacDevAddr = &Nvm.MacGroup2.DevAddr;
+ 800f96a:	4a0a      	ldr	r2, [pc, #40]	; (800f994 <ResetMacParameters+0x174>)
+ 800f96c:	f102 03e4 	add.w	r3, r2, #228	; 0xe4
+ 800f970:	9308      	str	r3, [sp, #32]
+    classBParams.LoRaMacRegion = &Nvm.MacGroup2.Region;
+ 800f972:	f102 0348 	add.w	r3, r2, #72	; 0x48
+ 800f976:	9309      	str	r3, [sp, #36]	; 0x24
+    classBParams.LoRaMacParams = &Nvm.MacGroup2.MacParams;
+ 800f978:	f102 034c 	add.w	r3, r2, #76	; 0x4c
+ 800f97c:	930a      	str	r3, [sp, #40]	; 0x28
+    classBParams.MulticastChannels = &Nvm.MacGroup2.MulticastChannelList[0];
+ 800f97e:	f102 03e8 	add.w	r3, r2, #232	; 0xe8
+ 800f982:	930b      	str	r3, [sp, #44]	; 0x2c
+    LoRaMacClassBInit( &classBParams, &classBCallbacks, &Nvm.ClassB );
+ 800f984:	f502 62eb 	add.w	r2, r2, #1880	; 0x758
+ 800f988:	a90c      	add	r1, sp, #48	; 0x30
+ 800f98a:	a804      	add	r0, sp, #16
+ 800f98c:	f001 fbe6 	bl	801115c <LoRaMacClassBInit>
+}
+ 800f990:	b00f      	add	sp, #60	; 0x3c
+ 800f992:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 800f994:	20001870 	.word	0x20001870
+ 800f998:	20001fe4 	.word	0x20001fe4
+
+0800f99c <SwitchClass>:
+{
+ 800f99c:	b570      	push	{r4, r5, r6, lr}
+ 800f99e:	4604      	mov	r4, r0
+    switch( Nvm.MacGroup2.DeviceClass )
+ 800f9a0:	4b44      	ldr	r3, [pc, #272]	; (800fab4 <SwitchClass+0x118>)
+ 800f9a2:	f893 5118 	ldrb.w	r5, [r3, #280]	; 0x118
+ 800f9a6:	2d01      	cmp	r5, #1
+ 800f9a8:	d06d      	beq.n	800fa86 <SwitchClass+0xea>
+ 800f9aa:	2d02      	cmp	r5, #2
+ 800f9ac:	d073      	beq.n	800fa96 <SwitchClass+0xfa>
+ 800f9ae:	b10d      	cbz	r5, 800f9b4 <SwitchClass+0x18>
+ 800f9b0:	2003      	movs	r0, #3
+}
+ 800f9b2:	bd70      	pop	{r4, r5, r6, pc}
+            if( deviceClass == CLASS_A )
+ 800f9b4:	bb50      	cbnz	r0, 800fa0c <SwitchClass+0x70>
+                Nvm.MacGroup2.MacParams.RxCChannel = Nvm.MacGroup2.MacParams.Rx2Channel;
+ 800f9b6:	f103 0274 	add.w	r2, r3, #116	; 0x74
+ 800f9ba:	336c      	adds	r3, #108	; 0x6c
+ 800f9bc:	e893 0003 	ldmia.w	r3, {r0, r1}
+ 800f9c0:	e882 0003 	stmia.w	r2, {r0, r1}
+                status = LORAMAC_STATUS_OK;
+ 800f9c4:	4620      	mov	r0, r4
+            if( deviceClass == CLASS_B )
+ 800f9c6:	2c01      	cmp	r4, #1
+ 800f9c8:	d022      	beq.n	800fa10 <SwitchClass+0x74>
+            if( deviceClass == CLASS_C )
+ 800f9ca:	2c02      	cmp	r4, #2
+ 800f9cc:	d1f1      	bne.n	800f9b2 <SwitchClass+0x16>
+                Nvm.MacGroup2.DeviceClass = deviceClass;
+ 800f9ce:	4b39      	ldr	r3, [pc, #228]	; (800fab4 <SwitchClass+0x118>)
+ 800f9d0:	f883 4118 	strb.w	r4, [r3, #280]	; 0x118
+                MacCtx.RxWindowCConfig = MacCtx.RxWindow2Config;
+ 800f9d4:	4e38      	ldr	r6, [pc, #224]	; (800fab8 <SwitchClass+0x11c>)
+ 800f9d6:	f506 7478 	add.w	r4, r6, #992	; 0x3e0
+ 800f9da:	f506 7c73 	add.w	ip, r6, #972	; 0x3cc
+ 800f9de:	e8bc 000f 	ldmia.w	ip!, {r0, r1, r2, r3}
+ 800f9e2:	c40f      	stmia	r4!, {r0, r1, r2, r3}
+ 800f9e4:	f8dc 3000 	ldr.w	r3, [ip]
+ 800f9e8:	6023      	str	r3, [r4, #0]
+                MacCtx.RxWindowCConfig.RxSlot = RX_SLOT_WIN_CLASS_C;
+ 800f9ea:	2302      	movs	r3, #2
+ 800f9ec:	f886 33f3 	strb.w	r3, [r6, #1011]	; 0x3f3
+                for( int8_t i = 0; i < LORAMAC_MAX_MC_CTX; i++ )
+ 800f9f0:	2300      	movs	r3, #0
+ 800f9f2:	2b00      	cmp	r3, #0
+ 800f9f4:	dd15      	ble.n	800fa22 <SwitchClass+0x86>
+                MacCtx.NodeAckRequested = false;
+ 800f9f6:	4b30      	ldr	r3, [pc, #192]	; (800fab8 <SwitchClass+0x11c>)
+ 800f9f8:	2200      	movs	r2, #0
+ 800f9fa:	f883 2410 	strb.w	r2, [r3, #1040]	; 0x410
+                Radio.Sleep( );
+ 800f9fe:	4b2f      	ldr	r3, [pc, #188]	; (800fabc <SwitchClass+0x120>)
+ 800fa00:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800fa02:	4798      	blx	r3
+                OpenContinuousRxCWindow( );
+ 800fa04:	f7ff fd0e 	bl	800f424 <OpenContinuousRxCWindow>
+                status = LORAMAC_STATUS_OK;
+ 800fa08:	4628      	mov	r0, r5
+ 800fa0a:	e7d2      	b.n	800f9b2 <SwitchClass+0x16>
+    LoRaMacStatus_t status = LORAMAC_STATUS_PARAMETER_INVALID;
+ 800fa0c:	2003      	movs	r0, #3
+ 800fa0e:	e7da      	b.n	800f9c6 <SwitchClass+0x2a>
+                status = LoRaMacClassBSwitchClass( deviceClass );
+ 800fa10:	4620      	mov	r0, r4
+ 800fa12:	f001 fbb9 	bl	8011188 <LoRaMacClassBSwitchClass>
+                if( status == LORAMAC_STATUS_OK )
+ 800fa16:	2800      	cmp	r0, #0
+ 800fa18:	d1d7      	bne.n	800f9ca <SwitchClass+0x2e>
+                    Nvm.MacGroup2.DeviceClass = deviceClass;
+ 800fa1a:	4b26      	ldr	r3, [pc, #152]	; (800fab4 <SwitchClass+0x118>)
+ 800fa1c:	f883 4118 	strb.w	r4, [r3, #280]	; 0x118
+ 800fa20:	e7d3      	b.n	800f9ca <SwitchClass+0x2e>
+                    if( ( Nvm.MacGroup2.MulticastChannelList[i].ChannelParams.IsEnabled == true ) &&
+ 800fa22:	eb03 0143 	add.w	r1, r3, r3, lsl #1
+ 800fa26:	4a23      	ldr	r2, [pc, #140]	; (800fab4 <SwitchClass+0x118>)
+ 800fa28:	eb02 1201 	add.w	r2, r2, r1, lsl #4
+ 800fa2c:	f892 20e9 	ldrb.w	r2, [r2, #233]	; 0xe9
+ 800fa30:	b132      	cbz	r2, 800fa40 <SwitchClass+0xa4>
+                        ( Nvm.MacGroup2.MulticastChannelList[i].ChannelParams.RxParams.Class == CLASS_C ) )
+ 800fa32:	4a20      	ldr	r2, [pc, #128]	; (800fab4 <SwitchClass+0x118>)
+ 800fa34:	eb02 1201 	add.w	r2, r2, r1, lsl #4
+ 800fa38:	f892 2100 	ldrb.w	r2, [r2, #256]	; 0x100
+                    if( ( Nvm.MacGroup2.MulticastChannelList[i].ChannelParams.IsEnabled == true ) &&
+ 800fa3c:	2a02      	cmp	r2, #2
+ 800fa3e:	d002      	beq.n	800fa46 <SwitchClass+0xaa>
+                for( int8_t i = 0; i < LORAMAC_MAX_MC_CTX; i++ )
+ 800fa40:	3301      	adds	r3, #1
+ 800fa42:	b25b      	sxtb	r3, r3
+ 800fa44:	e7d5      	b.n	800f9f2 <SwitchClass+0x56>
+                        Nvm.MacGroup2.MacParams.RxCChannel.Frequency = Nvm.MacGroup2.MulticastChannelList[i].ChannelParams.RxParams.Params.ClassC.Frequency;
+ 800fa46:	4a1b      	ldr	r2, [pc, #108]	; (800fab4 <SwitchClass+0x118>)
+ 800fa48:	eb02 1301 	add.w	r3, r2, r1, lsl #4
+ 800fa4c:	f8d3 1104 	ldr.w	r1, [r3, #260]	; 0x104
+ 800fa50:	6751      	str	r1, [r2, #116]	; 0x74
+                        Nvm.MacGroup2.MacParams.RxCChannel.Datarate = Nvm.MacGroup2.MulticastChannelList[i].ChannelParams.RxParams.Params.ClassC.Datarate;
+ 800fa52:	f893 3108 	ldrb.w	r3, [r3, #264]	; 0x108
+ 800fa56:	f882 3078 	strb.w	r3, [r2, #120]	; 0x78
+                        MacCtx.RxWindowCConfig.Channel = MacCtx.Channel;
+ 800fa5a:	4b17      	ldr	r3, [pc, #92]	; (800fab8 <SwitchClass+0x11c>)
+ 800fa5c:	f893 0411 	ldrb.w	r0, [r3, #1041]	; 0x411
+ 800fa60:	f883 03e0 	strb.w	r0, [r3, #992]	; 0x3e0
+                        MacCtx.RxWindowCConfig.Frequency = Nvm.MacGroup2.MacParams.RxCChannel.Frequency;
+ 800fa64:	f8c3 13e4 	str.w	r1, [r3, #996]	; 0x3e4
+                        MacCtx.RxWindowCConfig.DownlinkDwellTime = Nvm.MacGroup2.MacParams.DownlinkDwellTime;
+ 800fa68:	f892 107d 	ldrb.w	r1, [r2, #125]	; 0x7d
+ 800fa6c:	f883 13f0 	strb.w	r1, [r3, #1008]	; 0x3f0
+                        MacCtx.RxWindowCConfig.RepeaterSupport = Nvm.MacGroup2.MacParams.RepeaterSupport;
+ 800fa70:	f892 208c 	ldrb.w	r2, [r2, #140]	; 0x8c
+ 800fa74:	f883 23f1 	strb.w	r2, [r3, #1009]	; 0x3f1
+                        MacCtx.RxWindowCConfig.RxSlot = RX_SLOT_WIN_CLASS_C_MULTICAST;
+ 800fa78:	2203      	movs	r2, #3
+ 800fa7a:	f883 23f3 	strb.w	r2, [r3, #1011]	; 0x3f3
+                        MacCtx.RxWindowCConfig.RxContinuous = true;
+ 800fa7e:	2201      	movs	r2, #1
+ 800fa80:	f883 23f2 	strb.w	r2, [r3, #1010]	; 0x3f2
+                        break;
+ 800fa84:	e7b7      	b.n	800f9f6 <SwitchClass+0x5a>
+            status = LoRaMacClassBSwitchClass( deviceClass );
+ 800fa86:	f001 fb7f 	bl	8011188 <LoRaMacClassBSwitchClass>
+            if( status == LORAMAC_STATUS_OK )
+ 800fa8a:	2800      	cmp	r0, #0
+ 800fa8c:	d191      	bne.n	800f9b2 <SwitchClass+0x16>
+                Nvm.MacGroup2.DeviceClass = deviceClass;
+ 800fa8e:	4b09      	ldr	r3, [pc, #36]	; (800fab4 <SwitchClass+0x118>)
+ 800fa90:	f883 4118 	strb.w	r4, [r3, #280]	; 0x118
+ 800fa94:	e78d      	b.n	800f9b2 <SwitchClass+0x16>
+            if( deviceClass == CLASS_A )
+ 800fa96:	b958      	cbnz	r0, 800fab0 <SwitchClass+0x114>
+                MacCtx.RxSlot = RX_SLOT_NONE;
+ 800fa98:	4b07      	ldr	r3, [pc, #28]	; (800fab8 <SwitchClass+0x11c>)
+ 800fa9a:	2206      	movs	r2, #6
+ 800fa9c:	f883 2480 	strb.w	r2, [r3, #1152]	; 0x480
+                Nvm.MacGroup2.DeviceClass = deviceClass;
+ 800faa0:	4b04      	ldr	r3, [pc, #16]	; (800fab4 <SwitchClass+0x118>)
+ 800faa2:	f883 0118 	strb.w	r0, [r3, #280]	; 0x118
+                Radio.Sleep( );
+ 800faa6:	4b05      	ldr	r3, [pc, #20]	; (800fabc <SwitchClass+0x120>)
+ 800faa8:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800faaa:	4798      	blx	r3
+                status = LORAMAC_STATUS_OK;
+ 800faac:	4620      	mov	r0, r4
+ 800faae:	e780      	b.n	800f9b2 <SwitchClass+0x16>
+    LoRaMacStatus_t status = LORAMAC_STATUS_PARAMETER_INVALID;
+ 800fab0:	2003      	movs	r0, #3
+ 800fab2:	e77e      	b.n	800f9b2 <SwitchClass+0x16>
+ 800fab4:	20001870 	.word	0x20001870
+ 800fab8:	20001fe4 	.word	0x20001fe4
+ 800fabc:	08018cb4 	.word	0x08018cb4
+
+0800fac0 <SendReJoinReq>:
+{
+ 800fac0:	b538      	push	{r3, r4, r5, lr}
+    switch( joinReqType )
+ 800fac2:	28ff      	cmp	r0, #255	; 0xff
+ 800fac4:	d003      	beq.n	800face <SendReJoinReq+0xe>
+    bool allowDelayedTx = true;
+ 800fac6:	2001      	movs	r0, #1
+    status = ScheduleTx( allowDelayedTx );
+ 800fac8:	f7ff fb6a 	bl	800f1a0 <ScheduleTx>
+}
+ 800facc:	bd38      	pop	{r3, r4, r5, pc}
+            SwitchClass( CLASS_A );
+ 800face:	2000      	movs	r0, #0
+ 800fad0:	f7ff ff64 	bl	800f99c <SwitchClass>
+            MacCtx.TxMsg.Type = LORAMAC_MSG_TYPE_JOIN_REQUEST;
+ 800fad4:	4d0a      	ldr	r5, [pc, #40]	; (800fb00 <SendReJoinReq+0x40>)
+ 800fad6:	2400      	movs	r4, #0
+ 800fad8:	f885 4104 	strb.w	r4, [r5, #260]	; 0x104
+            MacCtx.TxMsg.Message.JoinReq.Buffer = MacCtx.PktBuffer;
+ 800fadc:	1cab      	adds	r3, r5, #2
+ 800fade:	f8c5 3108 	str.w	r3, [r5, #264]	; 0x108
+            MacCtx.TxMsg.Message.JoinReq.BufSize = LORAMAC_PHY_MAXPAYLOAD;
+ 800fae2:	23ff      	movs	r3, #255	; 0xff
+ 800fae4:	f885 310c 	strb.w	r3, [r5, #268]	; 0x10c
+            MacCtx.TxMsg.Message.JoinReq.MHDR.Value = macHdr.Value;
+ 800fae8:	f885 410d 	strb.w	r4, [r5, #269]	; 0x10d
+            SecureElementGetJoinEui( MacCtx.TxMsg.Message.JoinReq.JoinEUI );
+ 800faec:	f505 7087 	add.w	r0, r5, #270	; 0x10e
+ 800faf0:	f004 fc36 	bl	8014360 <SecureElementGetJoinEui>
+            SecureElementGetDevEui( MacCtx.TxMsg.Message.JoinReq.DevEUI );
+ 800faf4:	f505 708b 	add.w	r0, r5, #278	; 0x116
+ 800faf8:	f004 fc14 	bl	8014324 <SecureElementGetDevEui>
+            allowDelayedTx = false;
+ 800fafc:	4620      	mov	r0, r4
+            break;
+ 800fafe:	e7e3      	b.n	800fac8 <SendReJoinReq+0x8>
+ 800fb00:	20001fe4 	.word	0x20001fe4
+
+0800fb04 <SetTxContinuousWave>:
+{
+ 800fb04:	b510      	push	{r4, lr}
+ 800fb06:	b084      	sub	sp, #16
+    continuousWave.Channel = MacCtx.Channel;
+ 800fb08:	4c11      	ldr	r4, [pc, #68]	; (800fb50 <SetTxContinuousWave+0x4c>)
+ 800fb0a:	f894 3411 	ldrb.w	r3, [r4, #1041]	; 0x411
+ 800fb0e:	f88d 3000 	strb.w	r3, [sp]
+    continuousWave.Datarate = Nvm.MacGroup1.ChannelsDatarate;
+ 800fb12:	4b10      	ldr	r3, [pc, #64]	; (800fb54 <SetTxContinuousWave+0x50>)
+ 800fb14:	f993 2039 	ldrsb.w	r2, [r3, #57]	; 0x39
+ 800fb18:	f88d 2001 	strb.w	r2, [sp, #1]
+    continuousWave.TxPower = Nvm.MacGroup1.ChannelsTxPower;
+ 800fb1c:	f993 2038 	ldrsb.w	r2, [r3, #56]	; 0x38
+ 800fb20:	f88d 2002 	strb.w	r2, [sp, #2]
+    continuousWave.MaxEirp = Nvm.MacGroup2.MacParams.MaxEirp;
+ 800fb24:	f8d3 2080 	ldr.w	r2, [r3, #128]	; 0x80
+ 800fb28:	9201      	str	r2, [sp, #4]
+    continuousWave.AntennaGain = Nvm.MacGroup2.MacParams.AntennaGain;
+ 800fb2a:	f8d3 2084 	ldr.w	r2, [r3, #132]	; 0x84
+ 800fb2e:	9202      	str	r2, [sp, #8]
+    continuousWave.Timeout = timeout;
+ 800fb30:	f8ad 000c 	strh.w	r0, [sp, #12]
+    RegionSetContinuousWave( Nvm.MacGroup2.Region, &continuousWave );
+ 800fb34:	4669      	mov	r1, sp
+ 800fb36:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 800fb3a:	f002 fbbe 	bl	80122ba <RegionSetContinuousWave>
+    MacCtx.MacState |= LORAMAC_TX_RUNNING;
+ 800fb3e:	f8d4 3340 	ldr.w	r3, [r4, #832]	; 0x340
+ 800fb42:	f043 0302 	orr.w	r3, r3, #2
+ 800fb46:	f8c4 3340 	str.w	r3, [r4, #832]	; 0x340
+}
+ 800fb4a:	2000      	movs	r0, #0
+ 800fb4c:	b004      	add	sp, #16
+ 800fb4e:	bd10      	pop	{r4, pc}
+ 800fb50:	20001fe4 	.word	0x20001fe4
+ 800fb54:	20001870 	.word	0x20001870
+
+0800fb58 <PrepareFrame>:
+{
+ 800fb58:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
+ 800fb5c:	b083      	sub	sp, #12
+ 800fb5e:	4605      	mov	r5, r0
+ 800fb60:	460e      	mov	r6, r1
+ 800fb62:	4617      	mov	r7, r2
+ 800fb64:	f8bd 4028 	ldrh.w	r4, [sp, #40]	; 0x28
+    MacCtx.PktBufferLen = 0;
+ 800fb68:	4959      	ldr	r1, [pc, #356]	; (800fcd0 <PrepareFrame+0x178>)
+ 800fb6a:	2200      	movs	r2, #0
+ 800fb6c:	800a      	strh	r2, [r1, #0]
+    MacCtx.NodeAckRequested = false;
+ 800fb6e:	f881 2410 	strb.w	r2, [r1, #1040]	; 0x410
+    uint32_t fCntUp = 0;
+ 800fb72:	9201      	str	r2, [sp, #4]
+    size_t macCmdsSize = 0;
+ 800fb74:	9200      	str	r2, [sp, #0]
+    if( fBuffer == NULL )
+ 800fb76:	4698      	mov	r8, r3
+ 800fb78:	b1cb      	cbz	r3, 800fbae <PrepareFrame+0x56>
+    memcpy1( MacCtx.AppData, ( uint8_t* ) fBuffer, fBufferSize );
+ 800fb7a:	f8df 9154 	ldr.w	r9, [pc, #340]	; 800fcd0 <PrepareFrame+0x178>
+ 800fb7e:	4622      	mov	r2, r4
+ 800fb80:	4641      	mov	r1, r8
+ 800fb82:	f509 709c 	add.w	r0, r9, #312	; 0x138
+ 800fb86:	f004 fd08 	bl	801459a <memcpy1>
+    MacCtx.AppDataSize = fBufferSize;
+ 800fb8a:	b2e0      	uxtb	r0, r4
+ 800fb8c:	f889 0237 	strb.w	r0, [r9, #567]	; 0x237
+    MacCtx.PktBuffer[0] = macHdr->Value;
+ 800fb90:	782b      	ldrb	r3, [r5, #0]
+ 800fb92:	f889 3002 	strb.w	r3, [r9, #2]
+    switch( macHdr->Bits.MType )
+ 800fb96:	782b      	ldrb	r3, [r5, #0]
+ 800fb98:	095b      	lsrs	r3, r3, #5
+ 800fb9a:	2b04      	cmp	r3, #4
+ 800fb9c:	d009      	beq.n	800fbb2 <PrepareFrame+0x5a>
+ 800fb9e:	2b07      	cmp	r3, #7
+ 800fba0:	d079      	beq.n	800fc96 <PrepareFrame+0x13e>
+ 800fba2:	2b02      	cmp	r3, #2
+ 800fba4:	d009      	beq.n	800fbba <PrepareFrame+0x62>
+ 800fba6:	2002      	movs	r0, #2
+}
+ 800fba8:	b003      	add	sp, #12
+ 800fbaa:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
+        fBufferSize = 0;
+ 800fbae:	4614      	mov	r4, r2
+ 800fbb0:	e7e3      	b.n	800fb7a <PrepareFrame+0x22>
+            MacCtx.NodeAckRequested = true;
+ 800fbb2:	4b47      	ldr	r3, [pc, #284]	; (800fcd0 <PrepareFrame+0x178>)
+ 800fbb4:	2201      	movs	r2, #1
+ 800fbb6:	f883 2410 	strb.w	r2, [r3, #1040]	; 0x410
+            MacCtx.TxMsg.Type = LORAMAC_MSG_TYPE_DATA;
+ 800fbba:	4b45      	ldr	r3, [pc, #276]	; (800fcd0 <PrepareFrame+0x178>)
+ 800fbbc:	2204      	movs	r2, #4
+ 800fbbe:	f883 2104 	strb.w	r2, [r3, #260]	; 0x104
+            MacCtx.TxMsg.Message.Data.Buffer = MacCtx.PktBuffer;
+ 800fbc2:	1c9a      	adds	r2, r3, #2
+ 800fbc4:	f8c3 2108 	str.w	r2, [r3, #264]	; 0x108
+            MacCtx.TxMsg.Message.Data.BufSize = LORAMAC_PHY_MAXPAYLOAD;
+ 800fbc8:	22ff      	movs	r2, #255	; 0xff
+ 800fbca:	f883 210c 	strb.w	r2, [r3, #268]	; 0x10c
+            MacCtx.TxMsg.Message.Data.MHDR.Value = macHdr->Value;
+ 800fbce:	782a      	ldrb	r2, [r5, #0]
+ 800fbd0:	f883 210d 	strb.w	r2, [r3, #269]	; 0x10d
+            MacCtx.TxMsg.Message.Data.FPort = fPort;
+ 800fbd4:	f883 7128 	strb.w	r7, [r3, #296]	; 0x128
+            MacCtx.TxMsg.Message.Data.FHDR.DevAddr = Nvm.MacGroup2.DevAddr;
+ 800fbd8:	4a3e      	ldr	r2, [pc, #248]	; (800fcd4 <PrepareFrame+0x17c>)
+ 800fbda:	f8d2 20e4 	ldr.w	r2, [r2, #228]	; 0xe4
+ 800fbde:	f8c3 2110 	str.w	r2, [r3, #272]	; 0x110
+            MacCtx.TxMsg.Message.Data.FHDR.FCtrl.Value = fCtrl->Value;
+ 800fbe2:	7832      	ldrb	r2, [r6, #0]
+ 800fbe4:	f883 2114 	strb.w	r2, [r3, #276]	; 0x114
+            MacCtx.TxMsg.Message.Data.FRMPayloadSize = MacCtx.AppDataSize;
+ 800fbe8:	f883 0130 	strb.w	r0, [r3, #304]	; 0x130
+            MacCtx.TxMsg.Message.Data.FRMPayload = MacCtx.AppData;
+ 800fbec:	f503 729c 	add.w	r2, r3, #312	; 0x138
+ 800fbf0:	f8c3 212c 	str.w	r2, [r3, #300]	; 0x12c
+            if( LORAMAC_CRYPTO_SUCCESS != LoRaMacCryptoGetFCntUp( &fCntUp ) )
+ 800fbf4:	a801      	add	r0, sp, #4
+ 800fbf6:	f001 ff51 	bl	8011a9c <LoRaMacCryptoGetFCntUp>
+ 800fbfa:	2800      	cmp	r0, #0
+ 800fbfc:	d15c      	bne.n	800fcb8 <PrepareFrame+0x160>
+            MacCtx.TxMsg.Message.Data.FHDR.FCnt = ( uint16_t )fCntUp;
+ 800fbfe:	9a01      	ldr	r2, [sp, #4]
+ 800fc00:	4b33      	ldr	r3, [pc, #204]	; (800fcd0 <PrepareFrame+0x178>)
+ 800fc02:	f8a3 2116 	strh.w	r2, [r3, #278]	; 0x116
+            MacCtx.McpsConfirm.NbRetries = 0;
+ 800fc06:	2100      	movs	r1, #0
+ 800fc08:	f883 1439 	strb.w	r1, [r3, #1081]	; 0x439
+            MacCtx.McpsConfirm.AckReceived = false;
+ 800fc0c:	f883 1438 	strb.w	r1, [r3, #1080]	; 0x438
+            MacCtx.McpsConfirm.UpLinkCounter = fCntUp;
+ 800fc10:	f8c3 2440 	str.w	r2, [r3, #1088]	; 0x440
+            if( LoRaMacCommandsGetSizeSerializedCmds( &macCmdsSize ) != LORAMAC_COMMANDS_SUCCESS )
+ 800fc14:	4668      	mov	r0, sp
+ 800fc16:	f001 fbe9 	bl	80113ec <LoRaMacCommandsGetSizeSerializedCmds>
+ 800fc1a:	2800      	cmp	r0, #0
+ 800fc1c:	d14e      	bne.n	800fcbc <PrepareFrame+0x164>
+            if( macCmdsSize > 0 )
+ 800fc1e:	9b00      	ldr	r3, [sp, #0]
+ 800fc20:	2b00      	cmp	r3, #0
+ 800fc22:	d0c1      	beq.n	800fba8 <PrepareFrame+0x50>
+                availableSize = GetMaxAppPayloadWithoutFOptsLength( Nvm.MacGroup1.ChannelsDatarate );
+ 800fc24:	4b2b      	ldr	r3, [pc, #172]	; (800fcd4 <PrepareFrame+0x17c>)
+ 800fc26:	f993 0039 	ldrsb.w	r0, [r3, #57]	; 0x39
+ 800fc2a:	f7fe f8d7 	bl	800dddc <GetMaxAppPayloadWithoutFOptsLength>
+                if( ( MacCtx.AppDataSize > 0 ) && ( macCmdsSize <= LORA_MAC_COMMAND_MAX_FOPTS_LENGTH ) )
+ 800fc2e:	4b28      	ldr	r3, [pc, #160]	; (800fcd0 <PrepareFrame+0x178>)
+ 800fc30:	f893 3237 	ldrb.w	r3, [r3, #567]	; 0x237
+ 800fc34:	b113      	cbz	r3, 800fc3c <PrepareFrame+0xe4>
+ 800fc36:	9a00      	ldr	r2, [sp, #0]
+ 800fc38:	2a0f      	cmp	r2, #15
+ 800fc3a:	d915      	bls.n	800fc68 <PrepareFrame+0x110>
+                else if( ( MacCtx.AppDataSize > 0 ) && ( macCmdsSize > LORA_MAC_COMMAND_MAX_FOPTS_LENGTH ) )
+ 800fc3c:	b113      	cbz	r3, 800fc44 <PrepareFrame+0xec>
+ 800fc3e:	9b00      	ldr	r3, [sp, #0]
+ 800fc40:	2b0f      	cmp	r3, #15
+ 800fc42:	d821      	bhi.n	800fc88 <PrepareFrame+0x130>
+                    if( LoRaMacCommandsSerializeCmds( availableSize, &macCmdsSize, MacCtx.MacCommandsBuffer ) != LORAMAC_COMMANDS_SUCCESS )
+ 800fc44:	4a24      	ldr	r2, [pc, #144]	; (800fcd8 <PrepareFrame+0x180>)
+ 800fc46:	4669      	mov	r1, sp
+ 800fc48:	f001 fbdc 	bl	8011404 <LoRaMacCommandsSerializeCmds>
+ 800fc4c:	2800      	cmp	r0, #0
+ 800fc4e:	d13b      	bne.n	800fcc8 <PrepareFrame+0x170>
+                    MacCtx.TxMsg.Message.Data.FPort = 0;
+ 800fc50:	4b1f      	ldr	r3, [pc, #124]	; (800fcd0 <PrepareFrame+0x178>)
+ 800fc52:	2200      	movs	r2, #0
+ 800fc54:	f883 2128 	strb.w	r2, [r3, #296]	; 0x128
+                    MacCtx.TxMsg.Message.Data.FRMPayload = MacCtx.MacCommandsBuffer;
+ 800fc58:	f503 6291 	add.w	r2, r3, #1160	; 0x488
+ 800fc5c:	f8c3 212c 	str.w	r2, [r3, #300]	; 0x12c
+                    MacCtx.TxMsg.Message.Data.FRMPayloadSize = macCmdsSize;
+ 800fc60:	9a00      	ldr	r2, [sp, #0]
+ 800fc62:	f883 2130 	strb.w	r2, [r3, #304]	; 0x130
+ 800fc66:	e79f      	b.n	800fba8 <PrepareFrame+0x50>
+                    if( LoRaMacCommandsSerializeCmds( LORA_MAC_COMMAND_MAX_FOPTS_LENGTH, &macCmdsSize, MacCtx.TxMsg.Message.Data.FHDR.FOpts ) != LORAMAC_COMMANDS_SUCCESS )
+ 800fc68:	4a1c      	ldr	r2, [pc, #112]	; (800fcdc <PrepareFrame+0x184>)
+ 800fc6a:	4669      	mov	r1, sp
+ 800fc6c:	200f      	movs	r0, #15
+ 800fc6e:	f001 fbc9 	bl	8011404 <LoRaMacCommandsSerializeCmds>
+ 800fc72:	bb28      	cbnz	r0, 800fcc0 <PrepareFrame+0x168>
+                    fCtrl->Bits.FOptsLen = macCmdsSize;
+ 800fc74:	7833      	ldrb	r3, [r6, #0]
+ 800fc76:	9a00      	ldr	r2, [sp, #0]
+ 800fc78:	f362 0303 	bfi	r3, r2, #0, #4
+ 800fc7c:	7033      	strb	r3, [r6, #0]
+                    MacCtx.TxMsg.Message.Data.FHDR.FCtrl.Value = fCtrl->Value;
+ 800fc7e:	b2da      	uxtb	r2, r3
+ 800fc80:	4b13      	ldr	r3, [pc, #76]	; (800fcd0 <PrepareFrame+0x178>)
+ 800fc82:	f883 2114 	strb.w	r2, [r3, #276]	; 0x114
+ 800fc86:	e78f      	b.n	800fba8 <PrepareFrame+0x50>
+                    if( LoRaMacCommandsSerializeCmds( availableSize, &macCmdsSize, MacCtx.MacCommandsBuffer ) != LORAMAC_COMMANDS_SUCCESS )
+ 800fc88:	4a13      	ldr	r2, [pc, #76]	; (800fcd8 <PrepareFrame+0x180>)
+ 800fc8a:	4669      	mov	r1, sp
+ 800fc8c:	f001 fbba 	bl	8011404 <LoRaMacCommandsSerializeCmds>
+ 800fc90:	b1c0      	cbz	r0, 800fcc4 <PrepareFrame+0x16c>
+                        return LORAMAC_STATUS_MAC_COMMAD_ERROR;
+ 800fc92:	2013      	movs	r0, #19
+ 800fc94:	e788      	b.n	800fba8 <PrepareFrame+0x50>
+            if( ( fBuffer != NULL ) && ( MacCtx.AppDataSize > 0 ) )
+ 800fc96:	f1b8 0f00 	cmp.w	r8, #0
+ 800fc9a:	d017      	beq.n	800fccc <PrepareFrame+0x174>
+ 800fc9c:	2800      	cmp	r0, #0
+ 800fc9e:	d083      	beq.n	800fba8 <PrepareFrame+0x50>
+                memcpy1( MacCtx.PktBuffer + LORAMAC_MHDR_FIELD_SIZE, ( uint8_t* ) fBuffer, MacCtx.AppDataSize );
+ 800fca0:	4c0b      	ldr	r4, [pc, #44]	; (800fcd0 <PrepareFrame+0x178>)
+ 800fca2:	b282      	uxth	r2, r0
+ 800fca4:	4641      	mov	r1, r8
+ 800fca6:	1ce0      	adds	r0, r4, #3
+ 800fca8:	f004 fc77 	bl	801459a <memcpy1>
+                MacCtx.PktBufferLen = LORAMAC_MHDR_FIELD_SIZE + MacCtx.AppDataSize;
+ 800fcac:	f894 3237 	ldrb.w	r3, [r4, #567]	; 0x237
+ 800fcb0:	3301      	adds	r3, #1
+ 800fcb2:	8023      	strh	r3, [r4, #0]
+    return LORAMAC_STATUS_OK;
+ 800fcb4:	2000      	movs	r0, #0
+ 800fcb6:	e777      	b.n	800fba8 <PrepareFrame+0x50>
+                return LORAMAC_STATUS_FCNT_HANDLER_ERROR;
+ 800fcb8:	2012      	movs	r0, #18
+ 800fcba:	e775      	b.n	800fba8 <PrepareFrame+0x50>
+                return LORAMAC_STATUS_MAC_COMMAD_ERROR;
+ 800fcbc:	2013      	movs	r0, #19
+ 800fcbe:	e773      	b.n	800fba8 <PrepareFrame+0x50>
+                        return LORAMAC_STATUS_MAC_COMMAD_ERROR;
+ 800fcc0:	2013      	movs	r0, #19
+ 800fcc2:	e771      	b.n	800fba8 <PrepareFrame+0x50>
+                    return LORAMAC_STATUS_SKIPPED_APP_DATA;
+ 800fcc4:	200a      	movs	r0, #10
+ 800fcc6:	e76f      	b.n	800fba8 <PrepareFrame+0x50>
+                        return LORAMAC_STATUS_MAC_COMMAD_ERROR;
+ 800fcc8:	2013      	movs	r0, #19
+ 800fcca:	e76d      	b.n	800fba8 <PrepareFrame+0x50>
+    return LORAMAC_STATUS_OK;
+ 800fccc:	2000      	movs	r0, #0
+ 800fcce:	e76b      	b.n	800fba8 <PrepareFrame+0x50>
+ 800fcd0:	20001fe4 	.word	0x20001fe4
+ 800fcd4:	20001870 	.word	0x20001870
+ 800fcd8:	2000246c 	.word	0x2000246c
+ 800fcdc:	200020fc 	.word	0x200020fc
+
+0800fce0 <Send>:
+{
+ 800fce0:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
+ 800fce4:	b08a      	sub	sp, #40	; 0x28
+ 800fce6:	4617      	mov	r7, r2
+ 800fce8:	4698      	mov	r8, r3
+    int8_t datarate = Nvm.MacGroup1.ChannelsDatarate;
+ 800fcea:	4c42      	ldr	r4, [pc, #264]	; (800fdf4 <Send+0x114>)
+ 800fcec:	f994 a039 	ldrsb.w	sl, [r4, #57]	; 0x39
+    int8_t txPower = Nvm.MacGroup1.ChannelsTxPower;
+ 800fcf0:	f994 9038 	ldrsb.w	r9, [r4, #56]	; 0x38
+    uint32_t adrAckCounter = Nvm.MacGroup1.AdrAckCounter;
+ 800fcf4:	6aa2      	ldr	r2, [r4, #40]	; 0x28
+ 800fcf6:	9208      	str	r2, [sp, #32]
+    if( Nvm.MacGroup2.NetworkActivation == ACTIVATION_TYPE_NONE )
+ 800fcf8:	f894 312c 	ldrb.w	r3, [r4, #300]	; 0x12c
+ 800fcfc:	2b00      	cmp	r3, #0
+ 800fcfe:	d077      	beq.n	800fdf0 <Send+0x110>
+ 800fd00:	4605      	mov	r5, r0
+ 800fd02:	460e      	mov	r6, r1
+    if( Nvm.MacGroup2.MaxDCycle == 0 )
+ 800fd04:	f894 311b 	ldrb.w	r3, [r4, #283]	; 0x11b
+ 800fd08:	b90b      	cbnz	r3, 800fd0e <Send+0x2e>
+        Nvm.MacGroup1.AggregatedTimeOff = 0;
+ 800fd0a:	2100      	movs	r1, #0
+ 800fd0c:	6321      	str	r1, [r4, #48]	; 0x30
+    fCtrl.Value = 0;
+ 800fd0e:	2300      	movs	r3, #0
+ 800fd10:	f88d 3024 	strb.w	r3, [sp, #36]	; 0x24
+    fCtrl.Bits.Adr           = Nvm.MacGroup2.AdrCtrlOn;
+ 800fd14:	4837      	ldr	r0, [pc, #220]	; (800fdf4 <Send+0x114>)
+ 800fd16:	f890 111a 	ldrb.w	r1, [r0, #282]	; 0x11a
+ 800fd1a:	f361 13c7 	bfi	r3, r1, #7, #1
+ 800fd1e:	f88d 3024 	strb.w	r3, [sp, #36]	; 0x24
+    if( Nvm.MacGroup2.DeviceClass == CLASS_B )
+ 800fd22:	f890 3118 	ldrb.w	r3, [r0, #280]	; 0x118
+ 800fd26:	2b01      	cmp	r3, #1
+ 800fd28:	d04f      	beq.n	800fdca <Send+0xea>
+    if( Nvm.MacGroup1.SrvAckRequested == true )
+ 800fd2a:	4b32      	ldr	r3, [pc, #200]	; (800fdf4 <Send+0x114>)
+ 800fd2c:	f893 303a 	ldrb.w	r3, [r3, #58]	; 0x3a
+ 800fd30:	b12b      	cbz	r3, 800fd3e <Send+0x5e>
+        fCtrl.Bits.Ack = 1;
+ 800fd32:	f89d 3024 	ldrb.w	r3, [sp, #36]	; 0x24
+ 800fd36:	f043 0320 	orr.w	r3, r3, #32
+ 800fd3a:	f88d 3024 	strb.w	r3, [sp, #36]	; 0x24
+    adrNext.UpdateChanMask = true;
+ 800fd3e:	2301      	movs	r3, #1
+ 800fd40:	f88d 3010 	strb.w	r3, [sp, #16]
+    adrNext.AdrEnabled = fCtrl.Bits.Adr;
+ 800fd44:	f88d 1011 	strb.w	r1, [sp, #17]
+    adrNext.AdrAckCounter = Nvm.MacGroup1.AdrAckCounter;
+ 800fd48:	9205      	str	r2, [sp, #20]
+    adrNext.AdrAckLimit = Nvm.MacGroup2.MacParams.AdrAckLimit;
+ 800fd4a:	492a      	ldr	r1, [pc, #168]	; (800fdf4 <Send+0x114>)
+ 800fd4c:	f8b1 3088 	ldrh.w	r3, [r1, #136]	; 0x88
+ 800fd50:	f8ad 3018 	strh.w	r3, [sp, #24]
+    adrNext.AdrAckDelay = Nvm.MacGroup2.MacParams.AdrAckDelay;
+ 800fd54:	f8b1 308a 	ldrh.w	r3, [r1, #138]	; 0x8a
+ 800fd58:	f8ad 301a 	strh.w	r3, [sp, #26]
+    adrNext.Datarate = Nvm.MacGroup1.ChannelsDatarate;
+ 800fd5c:	f88d a01c 	strb.w	sl, [sp, #28]
+    adrNext.TxPower = Nvm.MacGroup1.ChannelsTxPower;
+ 800fd60:	f88d 901d 	strb.w	r9, [sp, #29]
+    adrNext.UplinkDwellTime =  Nvm.MacGroup2.MacParams.UplinkDwellTime;
+ 800fd64:	f891 307c 	ldrb.w	r3, [r1, #124]	; 0x7c
+ 800fd68:	f88d 301e 	strb.w	r3, [sp, #30]
+    adrNext.Region = Nvm.MacGroup2.Region;
+ 800fd6c:	f891 3048 	ldrb.w	r3, [r1, #72]	; 0x48
+ 800fd70:	f88d 301f 	strb.w	r3, [sp, #31]
+    adrNext.Version = Nvm.MacGroup2.Version;
+ 800fd74:	f8d1 3128 	ldr.w	r3, [r1, #296]	; 0x128
+ 800fd78:	9303      	str	r3, [sp, #12]
+    fCtrl.Bits.AdrAckReq = LoRaMacAdrCalcNext( &adrNext, &Nvm.MacGroup1.ChannelsDatarate,
+ 800fd7a:	ab08      	add	r3, sp, #32
+ 800fd7c:	f101 0238 	add.w	r2, r1, #56	; 0x38
+ 800fd80:	3139      	adds	r1, #57	; 0x39
+ 800fd82:	a803      	add	r0, sp, #12
+ 800fd84:	f001 f9e2 	bl	801114c <LoRaMacAdrCalcNext>
+ 800fd88:	f89d 3024 	ldrb.w	r3, [sp, #36]	; 0x24
+ 800fd8c:	f360 1386 	bfi	r3, r0, #6, #1
+ 800fd90:	f88d 3024 	strb.w	r3, [sp, #36]	; 0x24
+    status = PrepareFrame( macHdr, &fCtrl, fPort, fBuffer, fBufferSize );
+ 800fd94:	f8cd 8000 	str.w	r8, [sp]
+ 800fd98:	463b      	mov	r3, r7
+ 800fd9a:	4632      	mov	r2, r6
+ 800fd9c:	a909      	add	r1, sp, #36	; 0x24
+ 800fd9e:	4628      	mov	r0, r5
+ 800fda0:	f7ff feda 	bl	800fb58 <PrepareFrame>
+    if( ( status == LORAMAC_STATUS_OK ) || ( status == LORAMAC_STATUS_SKIPPED_APP_DATA ) )
+ 800fda4:	4604      	mov	r4, r0
+ 800fda6:	b108      	cbz	r0, 800fdac <Send+0xcc>
+ 800fda8:	280a      	cmp	r0, #10
+ 800fdaa:	d104      	bne.n	800fdb6 <Send+0xd6>
+        status = ScheduleTx( allowDelayedTx );
+ 800fdac:	f89d 0048 	ldrb.w	r0, [sp, #72]	; 0x48
+ 800fdb0:	f7ff f9f6 	bl	800f1a0 <ScheduleTx>
+ 800fdb4:	4604      	mov	r4, r0
+    if( status != LORAMAC_STATUS_OK )
+ 800fdb6:	b17c      	cbz	r4, 800fdd8 <Send+0xf8>
+        Nvm.MacGroup1.ChannelsDatarate = datarate;
+ 800fdb8:	4b0e      	ldr	r3, [pc, #56]	; (800fdf4 <Send+0x114>)
+ 800fdba:	f883 a039 	strb.w	sl, [r3, #57]	; 0x39
+        Nvm.MacGroup1.ChannelsTxPower = txPower;
+ 800fdbe:	f883 9038 	strb.w	r9, [r3, #56]	; 0x38
+}
+ 800fdc2:	4620      	mov	r0, r4
+ 800fdc4:	b00a      	add	sp, #40	; 0x28
+ 800fdc6:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+        fCtrl.Bits.FPending      = 1;
+ 800fdca:	f89d 3024 	ldrb.w	r3, [sp, #36]	; 0x24
+ 800fdce:	f043 0310 	orr.w	r3, r3, #16
+ 800fdd2:	f88d 3024 	strb.w	r3, [sp, #36]	; 0x24
+ 800fdd6:	e7a8      	b.n	800fd2a <Send+0x4a>
+        Nvm.MacGroup1.SrvAckRequested = false;
+ 800fdd8:	4b06      	ldr	r3, [pc, #24]	; (800fdf4 <Send+0x114>)
+ 800fdda:	2200      	movs	r2, #0
+ 800fddc:	f883 203a 	strb.w	r2, [r3, #58]	; 0x3a
+        Nvm.MacGroup1.AdrAckCounter = adrAckCounter;
+ 800fde0:	9a08      	ldr	r2, [sp, #32]
+ 800fde2:	629a      	str	r2, [r3, #40]	; 0x28
+        if( LoRaMacCommandsRemoveNoneStickyCmds( ) != LORAMAC_COMMANDS_SUCCESS )
+ 800fde4:	f001 fad0 	bl	8011388 <LoRaMacCommandsRemoveNoneStickyCmds>
+ 800fde8:	2800      	cmp	r0, #0
+ 800fdea:	d0ea      	beq.n	800fdc2 <Send+0xe2>
+            return LORAMAC_STATUS_MAC_COMMAD_ERROR;
+ 800fdec:	2413      	movs	r4, #19
+ 800fdee:	e7e8      	b.n	800fdc2 <Send+0xe2>
+        return LORAMAC_STATUS_NO_NETWORK_JOINED;
+ 800fdf0:	2407      	movs	r4, #7
+ 800fdf2:	e7e6      	b.n	800fdc2 <Send+0xe2>
+ 800fdf4:	20001870 	.word	0x20001870
+
+0800fdf8 <LoRaMacIsBusy>:
+    if( MacCtx.MacState == LORAMAC_STOPPED )
+ 800fdf8:	4b09      	ldr	r3, [pc, #36]	; (800fe20 <LoRaMacIsBusy+0x28>)
+ 800fdfa:	f8d3 3340 	ldr.w	r3, [r3, #832]	; 0x340
+ 800fdfe:	2b01      	cmp	r3, #1
+ 800fe00:	d007      	beq.n	800fe12 <LoRaMacIsBusy+0x1a>
+    if( ( MacCtx.MacState == LORAMAC_IDLE ) &&
+ 800fe02:	b943      	cbnz	r3, 800fe16 <LoRaMacIsBusy+0x1e>
+        ( MacCtx.AllowRequests == LORAMAC_REQUEST_HANDLING_ON ) )
+ 800fe04:	4b06      	ldr	r3, [pc, #24]	; (800fe20 <LoRaMacIsBusy+0x28>)
+ 800fe06:	f893 3482 	ldrb.w	r3, [r3, #1154]	; 0x482
+    if( ( MacCtx.MacState == LORAMAC_IDLE ) &&
+ 800fe0a:	2b01      	cmp	r3, #1
+ 800fe0c:	d005      	beq.n	800fe1a <LoRaMacIsBusy+0x22>
+    return true;
+ 800fe0e:	2001      	movs	r0, #1
+ 800fe10:	4770      	bx	lr
+        return false;
+ 800fe12:	2000      	movs	r0, #0
+ 800fe14:	4770      	bx	lr
+    return true;
+ 800fe16:	2001      	movs	r0, #1
+ 800fe18:	4770      	bx	lr
+        return false;
+ 800fe1a:	2000      	movs	r0, #0
+}
+ 800fe1c:	4770      	bx	lr
+ 800fe1e:	bf00      	nop
+ 800fe20:	20001fe4 	.word	0x20001fe4
+
+0800fe24 <LoRaMacIsStopped>:
+    if( MacCtx.MacState == LORAMAC_STOPPED )
+ 800fe24:	4b04      	ldr	r3, [pc, #16]	; (800fe38 <LoRaMacIsStopped+0x14>)
+ 800fe26:	f8d3 3340 	ldr.w	r3, [r3, #832]	; 0x340
+ 800fe2a:	2b01      	cmp	r3, #1
+ 800fe2c:	d001      	beq.n	800fe32 <LoRaMacIsStopped+0xe>
+    return false;
+ 800fe2e:	2000      	movs	r0, #0
+ 800fe30:	4770      	bx	lr
+        return true;
+ 800fe32:	2001      	movs	r0, #1
+}
+ 800fe34:	4770      	bx	lr
+ 800fe36:	bf00      	nop
+ 800fe38:	20001fe4 	.word	0x20001fe4
+
+0800fe3c <LoRaMacProcess>:
+{
+ 800fe3c:	b508      	push	{r3, lr}
+    LoRaMacHandleIrqEvents( );
+ 800fe3e:	f7fe ffe1 	bl	800ee04 <LoRaMacHandleIrqEvents>
+    LoRaMacClassBProcess( );
+ 800fe42:	f001 f9b1 	bl	80111a8 <LoRaMacClassBProcess>
+    if( MacCtx.MacFlags.Bits.MacDone == 1 )
+ 800fe46:	4b1f      	ldr	r3, [pc, #124]	; (800fec4 <LoRaMacProcess+0x88>)
+ 800fe48:	f893 3481 	ldrb.w	r3, [r3, #1153]	; 0x481
+ 800fe4c:	f013 0f10 	tst.w	r3, #16
+ 800fe50:	d10d      	bne.n	800fe6e <LoRaMacProcess+0x32>
+    LoRaMacHandleIndicationEvents( );
+ 800fe52:	f7fd fe71 	bl	800db38 <LoRaMacHandleIndicationEvents>
+    if( MacCtx.RxSlot == RX_SLOT_WIN_CLASS_C )
+ 800fe56:	4b1b      	ldr	r3, [pc, #108]	; (800fec4 <LoRaMacProcess+0x88>)
+ 800fe58:	f893 3480 	ldrb.w	r3, [r3, #1152]	; 0x480
+ 800fe5c:	2b02      	cmp	r3, #2
+ 800fe5e:	d022      	beq.n	800fea6 <LoRaMacProcess+0x6a>
+    if( MacCtx.MacFlags.Bits.NvmHandle == 1 )
+ 800fe60:	4b18      	ldr	r3, [pc, #96]	; (800fec4 <LoRaMacProcess+0x88>)
+ 800fe62:	f893 3481 	ldrb.w	r3, [r3, #1153]	; 0x481
+ 800fe66:	f013 0f20 	tst.w	r3, #32
+ 800fe6a:	d11f      	bne.n	800feac <LoRaMacProcess+0x70>
+}
+ 800fe6c:	bd08      	pop	{r3, pc}
+        LoRaMacEnableRequests( LORAMAC_REQUEST_HANDLING_OFF );
+ 800fe6e:	2000      	movs	r0, #0
+ 800fe70:	f7fd fe5c 	bl	800db2c <LoRaMacEnableRequests>
+        LoRaMacCheckForRxAbort( );
+ 800fe74:	f7fd fe8e 	bl	800db94 <LoRaMacCheckForRxAbort>
+        if( IsRequestPending( ) > 0 )
+ 800fe78:	f7fd ff78 	bl	800dd6c <IsRequestPending>
+ 800fe7c:	b110      	cbz	r0, 800fe84 <LoRaMacProcess+0x48>
+            noTx |= LoRaMacCheckForBeaconAcquisition( );
+ 800fe7e:	f7fe f8ab 	bl	800dfd8 <LoRaMacCheckForBeaconAcquisition>
+        if( noTx == 0x00 )
+ 800fe82:	b918      	cbnz	r0, 800fe8c <LoRaMacProcess+0x50>
+            LoRaMacHandleMlmeRequest( );
+ 800fe84:	f7fe ffec 	bl	800ee60 <LoRaMacHandleMlmeRequest>
+            LoRaMacHandleMcpsRequest( );
+ 800fe88:	f7ff fa36 	bl	800f2f8 <LoRaMacHandleMcpsRequest>
+        LoRaMacHandleRequestEvents( );
+ 800fe8c:	f7ff fa80 	bl	800f390 <LoRaMacHandleRequestEvents>
+        LoRaMacEnableRequests( LORAMAC_REQUEST_HANDLING_ON );
+ 800fe90:	2001      	movs	r0, #1
+ 800fe92:	f7fd fe4b 	bl	800db2c <LoRaMacEnableRequests>
+        MacCtx.MacFlags.Bits.NvmHandle = 1;
+ 800fe96:	4a0b      	ldr	r2, [pc, #44]	; (800fec4 <LoRaMacProcess+0x88>)
+ 800fe98:	f892 3481 	ldrb.w	r3, [r2, #1153]	; 0x481
+ 800fe9c:	f043 0320 	orr.w	r3, r3, #32
+ 800fea0:	f882 3481 	strb.w	r3, [r2, #1153]	; 0x481
+ 800fea4:	e7d5      	b.n	800fe52 <LoRaMacProcess+0x16>
+        OpenContinuousRxCWindow( );
+ 800fea6:	f7ff fabd 	bl	800f424 <OpenContinuousRxCWindow>
+ 800feaa:	e7d9      	b.n	800fe60 <LoRaMacProcess+0x24>
+        MacCtx.MacFlags.Bits.NvmHandle = 0;
+ 800feac:	4b05      	ldr	r3, [pc, #20]	; (800fec4 <LoRaMacProcess+0x88>)
+ 800feae:	f893 2481 	ldrb.w	r2, [r3, #1153]	; 0x481
+ 800feb2:	f36f 1245 	bfc	r2, #5, #1
+ 800feb6:	f883 2481 	strb.w	r2, [r3, #1153]	; 0x481
+        LoRaMacHandleNvm( &Nvm );
+ 800feba:	4803      	ldr	r0, [pc, #12]	; (800fec8 <LoRaMacProcess+0x8c>)
+ 800febc:	f7ff fb56 	bl	800f56c <LoRaMacHandleNvm>
+}
+ 800fec0:	e7d4      	b.n	800fe6c <LoRaMacProcess+0x30>
+ 800fec2:	bf00      	nop
+ 800fec4:	20001fe4 	.word	0x20001fe4
+ 800fec8:	20001870 	.word	0x20001870
+
+0800fecc <LoRaMacInitialization>:
+
+LoRaMacStatus_t LoRaMacInitialization( LoRaMacPrimitives_t* primitives, LoRaMacCallback_t* callbacks, LoRaMacRegion_t region )
+{
+ 800fecc:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 800fed0:	b08b      	sub	sp, #44	; 0x2c
+    GetPhyParams_t getPhy;
+    PhyParam_t phyParam;
+
+    if( ( primitives == NULL ) ||
+ 800fed2:	2800      	cmp	r0, #0
+ 800fed4:	f000 81a0 	beq.w	8010218 <LoRaMacInitialization+0x34c>
+ 800fed8:	4688      	mov	r8, r1
+ 800feda:	4691      	mov	r9, r2
+ 800fedc:	4607      	mov	r7, r0
+ 800fede:	2900      	cmp	r1, #0
+ 800fee0:	f000 819c 	beq.w	801021c <LoRaMacInitialization+0x350>
+        ( callbacks == NULL ) )
+    {
+        return LORAMAC_STATUS_PARAMETER_INVALID;
+    }
+
+    if( ( primitives->MacMcpsConfirm == NULL ) ||
+ 800fee4:	6803      	ldr	r3, [r0, #0]
+ 800fee6:	2b00      	cmp	r3, #0
+ 800fee8:	f000 819a 	beq.w	8010220 <LoRaMacInitialization+0x354>
+        ( primitives->MacMcpsIndication == NULL ) ||
+ 800feec:	6843      	ldr	r3, [r0, #4]
+    if( ( primitives->MacMcpsConfirm == NULL ) ||
+ 800feee:	2b00      	cmp	r3, #0
+ 800fef0:	f000 8198 	beq.w	8010224 <LoRaMacInitialization+0x358>
+        ( primitives->MacMlmeConfirm == NULL ) ||
+ 800fef4:	6883      	ldr	r3, [r0, #8]
+        ( primitives->MacMcpsIndication == NULL ) ||
+ 800fef6:	2b00      	cmp	r3, #0
+ 800fef8:	f000 8196 	beq.w	8010228 <LoRaMacInitialization+0x35c>
+        ( primitives->MacMlmeIndication == NULL ) )
+ 800fefc:	68c3      	ldr	r3, [r0, #12]
+        ( primitives->MacMlmeConfirm == NULL ) ||
+ 800fefe:	2b00      	cmp	r3, #0
+ 800ff00:	f000 8194 	beq.w	801022c <LoRaMacInitialization+0x360>
+    {
+        return LORAMAC_STATUS_PARAMETER_INVALID;
+    }
+    // Verify if the region is supported
+    if( RegionIsActive( region ) == false )
+ 800ff04:	4610      	mov	r0, r2
+ 800ff06:	f002 f935 	bl	8012174 <RegionIsActive>
+ 800ff0a:	2800      	cmp	r0, #0
+ 800ff0c:	f000 8190 	beq.w	8010230 <LoRaMacInitialization+0x364>
+    {
+        return LORAMAC_STATUS_REGION_NOT_SUPPORTED;
+    }
+
+    // Confirm queue reset
+    LoRaMacConfirmQueueInit( primitives );
+ 800ff10:	4638      	mov	r0, r7
+ 800ff12:	f001 fb0b 	bl	801152c <LoRaMacConfirmQueueInit>
+
+    // Initialize the module context with zeros
+    memset1( ( uint8_t* ) &Nvm, 0x00, sizeof( LoRaMacNvmData_t ) );
+ 800ff16:	4ccc      	ldr	r4, [pc, #816]	; (8010248 <LoRaMacInitialization+0x37c>)
+ 800ff18:	f44f 62ee 	mov.w	r2, #1904	; 0x770
+ 800ff1c:	2100      	movs	r1, #0
+ 800ff1e:	4620      	mov	r0, r4
+ 800ff20:	f004 fb53 	bl	80145ca <memset1>
+    memset1( ( uint8_t* ) &MacCtx, 0x00, sizeof( LoRaMacCtx_t ) );
+ 800ff24:	4dc9      	ldr	r5, [pc, #804]	; (801024c <LoRaMacInitialization+0x380>)
+ 800ff26:	f44f 62a1 	mov.w	r2, #1288	; 0x508
+ 800ff2a:	2100      	movs	r1, #0
+ 800ff2c:	4628      	mov	r0, r5
+ 800ff2e:	f004 fb4c 	bl	80145ca <memset1>
+
+    // Set non zero variables to its default value
+#if (defined( LORAMAC_VERSION ) && ( LORAMAC_VERSION == 0x01000300 ))
+    MacCtx.AckTimeoutRetriesCounter = 1;
+ 800ff32:	f04f 0a01 	mov.w	sl, #1
+ 800ff36:	f885 a40e 	strb.w	sl, [r5, #1038]	; 0x40e
+    MacCtx.AckTimeoutRetries = 1;
+ 800ff3a:	f885 a40d 	strb.w	sl, [r5, #1037]	; 0x40d
+#endif /* LORAMAC_VERSION */
+    Nvm.MacGroup2.Region = region;
+ 800ff3e:	f884 9048 	strb.w	r9, [r4, #72]	; 0x48
+    Nvm.MacGroup2.DeviceClass = CLASS_A;
+ 800ff42:	2600      	movs	r6, #0
+ 800ff44:	f884 6118 	strb.w	r6, [r4, #280]	; 0x118
+    Nvm.MacGroup2.MacParams.RepeaterSupport = false;
+ 800ff48:	f884 608c 	strb.w	r6, [r4, #140]	; 0x8c
+
+    // Setup version
+    Nvm.MacGroup2.Version.Value = LORAMAC_VERSION;
+ 800ff4c:	4bc0      	ldr	r3, [pc, #768]	; (8010250 <LoRaMacInitialization+0x384>)
+ 800ff4e:	f8c4 3128 	str.w	r3, [r4, #296]	; 0x128
+    params.Bands = &RegionBands;
+    RegionInitDefaults( Nvm.MacGroup2.Region, &params );
+#endif /* LORAMAC_VERSION */
+
+    // Reset to defaults
+    getPhy.Attribute = PHY_DUTY_CYCLE;
+ 800ff52:	230f      	movs	r3, #15
+ 800ff54:	f88d 3020 	strb.w	r3, [sp, #32]
+    phyParam = RegionGetPhyParam( Nvm.MacGroup2.Region, &getPhy );
+ 800ff58:	a908      	add	r1, sp, #32
+ 800ff5a:	4648      	mov	r0, r9
+ 800ff5c:	f002 f90f 	bl	801217e <RegionGetPhyParam>
+ 800ff60:	9007      	str	r0, [sp, #28]
+    Nvm.MacGroup2.DutyCycleOn = ( bool ) phyParam.Value;
+ 800ff62:	1b80      	subs	r0, r0, r6
+ 800ff64:	bf18      	it	ne
+ 800ff66:	2001      	movne	r0, #1
+ 800ff68:	f884 011c 	strb.w	r0, [r4, #284]	; 0x11c
+
+    getPhy.Attribute = PHY_DEF_TX_POWER;
+ 800ff6c:	f04f 0b0a 	mov.w	fp, #10
+ 800ff70:	f88d b020 	strb.w	fp, [sp, #32]
+    phyParam = RegionGetPhyParam( Nvm.MacGroup2.Region, &getPhy );
+ 800ff74:	a908      	add	r1, sp, #32
+ 800ff76:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800ff7a:	f002 f900 	bl	801217e <RegionGetPhyParam>
+ 800ff7e:	9007      	str	r0, [sp, #28]
+    Nvm.MacGroup2.ChannelsTxPowerDefault = phyParam.Value;
+ 800ff80:	f884 00dc 	strb.w	r0, [r4, #220]	; 0xdc
+
+    getPhy.Attribute = PHY_DEF_TX_DR;
+ 800ff84:	f04f 0906 	mov.w	r9, #6
+ 800ff88:	f88d 9020 	strb.w	r9, [sp, #32]
+    phyParam = RegionGetPhyParam( Nvm.MacGroup2.Region, &getPhy );
+ 800ff8c:	a908      	add	r1, sp, #32
+ 800ff8e:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800ff92:	f002 f8f4 	bl	801217e <RegionGetPhyParam>
+ 800ff96:	9007      	str	r0, [sp, #28]
+    Nvm.MacGroup2.ChannelsDatarateDefault = phyParam.Value;
+ 800ff98:	f884 00dd 	strb.w	r0, [r4, #221]	; 0xdd
+
+    getPhy.Attribute = PHY_MAX_RX_WINDOW;
+ 800ff9c:	2310      	movs	r3, #16
+ 800ff9e:	f88d 3020 	strb.w	r3, [sp, #32]
+    phyParam = RegionGetPhyParam( Nvm.MacGroup2.Region, &getPhy );
+ 800ffa2:	a908      	add	r1, sp, #32
+ 800ffa4:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800ffa8:	f002 f8e9 	bl	801217e <RegionGetPhyParam>
+ 800ffac:	9007      	str	r0, [sp, #28]
+    Nvm.MacGroup2.MacParamsDefaults.MaxRxWindow = phyParam.Value;
+ 800ffae:	f8c4 009c 	str.w	r0, [r4, #156]	; 0x9c
+
+    getPhy.Attribute = PHY_RECEIVE_DELAY1;
+ 800ffb2:	2311      	movs	r3, #17
+ 800ffb4:	f88d 3020 	strb.w	r3, [sp, #32]
+    phyParam = RegionGetPhyParam( Nvm.MacGroup2.Region, &getPhy );
+ 800ffb8:	a908      	add	r1, sp, #32
+ 800ffba:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800ffbe:	f002 f8de 	bl	801217e <RegionGetPhyParam>
+ 800ffc2:	9007      	str	r0, [sp, #28]
+    Nvm.MacGroup2.MacParamsDefaults.ReceiveDelay1 = phyParam.Value;
+ 800ffc4:	f8c4 00a0 	str.w	r0, [r4, #160]	; 0xa0
+
+    getPhy.Attribute = PHY_RECEIVE_DELAY2;
+ 800ffc8:	2312      	movs	r3, #18
+ 800ffca:	f88d 3020 	strb.w	r3, [sp, #32]
+    phyParam = RegionGetPhyParam( Nvm.MacGroup2.Region, &getPhy );
+ 800ffce:	a908      	add	r1, sp, #32
+ 800ffd0:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800ffd4:	f002 f8d3 	bl	801217e <RegionGetPhyParam>
+ 800ffd8:	9007      	str	r0, [sp, #28]
+    Nvm.MacGroup2.MacParamsDefaults.ReceiveDelay2 = phyParam.Value;
+ 800ffda:	f8c4 00a4 	str.w	r0, [r4, #164]	; 0xa4
+
+    getPhy.Attribute = PHY_JOIN_ACCEPT_DELAY1;
+ 800ffde:	2313      	movs	r3, #19
+ 800ffe0:	f88d 3020 	strb.w	r3, [sp, #32]
+    phyParam = RegionGetPhyParam( Nvm.MacGroup2.Region, &getPhy );
+ 800ffe4:	a908      	add	r1, sp, #32
+ 800ffe6:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800ffea:	f002 f8c8 	bl	801217e <RegionGetPhyParam>
+ 800ffee:	9007      	str	r0, [sp, #28]
+    Nvm.MacGroup2.MacParamsDefaults.JoinAcceptDelay1 = phyParam.Value;
+ 800fff0:	f8c4 00a8 	str.w	r0, [r4, #168]	; 0xa8
+
+    getPhy.Attribute = PHY_JOIN_ACCEPT_DELAY2;
+ 800fff4:	2314      	movs	r3, #20
+ 800fff6:	f88d 3020 	strb.w	r3, [sp, #32]
+    phyParam = RegionGetPhyParam( Nvm.MacGroup2.Region, &getPhy );
+ 800fffa:	a908      	add	r1, sp, #32
+ 800fffc:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 8010000:	f002 f8bd 	bl	801217e <RegionGetPhyParam>
+ 8010004:	9007      	str	r0, [sp, #28]
+    Nvm.MacGroup2.MacParamsDefaults.JoinAcceptDelay2 = phyParam.Value;
+ 8010006:	f8c4 00ac 	str.w	r0, [r4, #172]	; 0xac
+
+    getPhy.Attribute = PHY_DEF_DR1_OFFSET;
+ 801000a:	2317      	movs	r3, #23
+ 801000c:	f88d 3020 	strb.w	r3, [sp, #32]
+    phyParam = RegionGetPhyParam( Nvm.MacGroup2.Region, &getPhy );
+ 8010010:	a908      	add	r1, sp, #32
+ 8010012:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 8010016:	f002 f8b2 	bl	801217e <RegionGetPhyParam>
+ 801001a:	9007      	str	r0, [sp, #28]
+    Nvm.MacGroup2.MacParamsDefaults.Rx1DrOffset = phyParam.Value;
+ 801001c:	f884 00b1 	strb.w	r0, [r4, #177]	; 0xb1
+
+    getPhy.Attribute = PHY_DEF_RX2_FREQUENCY;
+ 8010020:	2318      	movs	r3, #24
+ 8010022:	f88d 3020 	strb.w	r3, [sp, #32]
+    phyParam = RegionGetPhyParam( Nvm.MacGroup2.Region, &getPhy );
+ 8010026:	a908      	add	r1, sp, #32
+ 8010028:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 801002c:	f002 f8a7 	bl	801217e <RegionGetPhyParam>
+ 8010030:	9007      	str	r0, [sp, #28]
+    Nvm.MacGroup2.MacParamsDefaults.Rx2Channel.Frequency = phyParam.Value;
+ 8010032:	f8c4 00b4 	str.w	r0, [r4, #180]	; 0xb4
+    Nvm.MacGroup2.MacParamsDefaults.RxCChannel.Frequency = phyParam.Value;
+ 8010036:	f8c4 00bc 	str.w	r0, [r4, #188]	; 0xbc
+
+    getPhy.Attribute = PHY_DEF_RX2_DR;
+ 801003a:	2319      	movs	r3, #25
+ 801003c:	f88d 3020 	strb.w	r3, [sp, #32]
+    phyParam = RegionGetPhyParam( Nvm.MacGroup2.Region, &getPhy );
+ 8010040:	a908      	add	r1, sp, #32
+ 8010042:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 8010046:	f002 f89a 	bl	801217e <RegionGetPhyParam>
+ 801004a:	9007      	str	r0, [sp, #28]
+    Nvm.MacGroup2.MacParamsDefaults.Rx2Channel.Datarate = phyParam.Value;
+ 801004c:	b2c0      	uxtb	r0, r0
+ 801004e:	f884 00b8 	strb.w	r0, [r4, #184]	; 0xb8
+    Nvm.MacGroup2.MacParamsDefaults.RxCChannel.Datarate = phyParam.Value;
+ 8010052:	f884 00c0 	strb.w	r0, [r4, #192]	; 0xc0
+
+    getPhy.Attribute = PHY_DEF_UPLINK_DWELL_TIME;
+ 8010056:	231e      	movs	r3, #30
+ 8010058:	f88d 3020 	strb.w	r3, [sp, #32]
+    phyParam = RegionGetPhyParam( Nvm.MacGroup2.Region, &getPhy );
+ 801005c:	a908      	add	r1, sp, #32
+ 801005e:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 8010062:	f002 f88c 	bl	801217e <RegionGetPhyParam>
+ 8010066:	9007      	str	r0, [sp, #28]
+    Nvm.MacGroup2.MacParamsDefaults.UplinkDwellTime = phyParam.Value;
+ 8010068:	f884 00c4 	strb.w	r0, [r4, #196]	; 0xc4
+
+    getPhy.Attribute = PHY_DEF_DOWNLINK_DWELL_TIME;
+ 801006c:	231f      	movs	r3, #31
+ 801006e:	f88d 3020 	strb.w	r3, [sp, #32]
+    phyParam = RegionGetPhyParam( Nvm.MacGroup2.Region, &getPhy );
+ 8010072:	a908      	add	r1, sp, #32
+ 8010074:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 8010078:	f002 f881 	bl	801217e <RegionGetPhyParam>
+ 801007c:	9007      	str	r0, [sp, #28]
+    Nvm.MacGroup2.MacParamsDefaults.DownlinkDwellTime = phyParam.Value;
+ 801007e:	f884 00c5 	strb.w	r0, [r4, #197]	; 0xc5
+
+    getPhy.Attribute = PHY_DEF_MAX_EIRP;
+ 8010082:	2320      	movs	r3, #32
+ 8010084:	f88d 3020 	strb.w	r3, [sp, #32]
+    phyParam = RegionGetPhyParam( Nvm.MacGroup2.Region, &getPhy );
+ 8010088:	eb0d 0103 	add.w	r1, sp, r3
+ 801008c:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 8010090:	f002 f875 	bl	801217e <RegionGetPhyParam>
+ 8010094:	9007      	str	r0, [sp, #28]
+    Nvm.MacGroup2.MacParamsDefaults.MaxEirp = phyParam.fValue;
+ 8010096:	9b07      	ldr	r3, [sp, #28]
+ 8010098:	f8c4 30c8 	str.w	r3, [r4, #200]	; 0xc8
+
+    getPhy.Attribute = PHY_DEF_ANTENNA_GAIN;
+ 801009c:	2321      	movs	r3, #33	; 0x21
+ 801009e:	f88d 3020 	strb.w	r3, [sp, #32]
+    phyParam = RegionGetPhyParam( Nvm.MacGroup2.Region, &getPhy );
+ 80100a2:	a908      	add	r1, sp, #32
+ 80100a4:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 80100a8:	f002 f869 	bl	801217e <RegionGetPhyParam>
+ 80100ac:	9007      	str	r0, [sp, #28]
+    Nvm.MacGroup2.MacParamsDefaults.AntennaGain = phyParam.fValue;
+ 80100ae:	9b07      	ldr	r3, [sp, #28]
+ 80100b0:	f8c4 30cc 	str.w	r3, [r4, #204]	; 0xcc
+
+    getPhy.Attribute = PHY_DEF_ADR_ACK_LIMIT;
+ 80100b4:	230b      	movs	r3, #11
+ 80100b6:	f88d 3020 	strb.w	r3, [sp, #32]
+    phyParam = RegionGetPhyParam( Nvm.MacGroup2.Region, &getPhy );
+ 80100ba:	a908      	add	r1, sp, #32
+ 80100bc:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 80100c0:	f002 f85d 	bl	801217e <RegionGetPhyParam>
+ 80100c4:	9007      	str	r0, [sp, #28]
+    Nvm.MacGroup2.MacParamsDefaults.AdrAckLimit = phyParam.Value;
+ 80100c6:	f8a4 00d0 	strh.w	r0, [r4, #208]	; 0xd0
+
+    getPhy.Attribute = PHY_DEF_ADR_ACK_DELAY;
+ 80100ca:	230c      	movs	r3, #12
+ 80100cc:	f88d 3020 	strb.w	r3, [sp, #32]
+    phyParam = RegionGetPhyParam( Nvm.MacGroup2.Region, &getPhy );
+ 80100d0:	a908      	add	r1, sp, #32
+ 80100d2:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 80100d6:	f002 f852 	bl	801217e <RegionGetPhyParam>
+ 80100da:	9007      	str	r0, [sp, #28]
+    Nvm.MacGroup2.MacParamsDefaults.AdrAckDelay = phyParam.Value;
+ 80100dc:	f8a4 00d2 	strh.w	r0, [r4, #210]	; 0xd2
+
+    // Init parameters which are not set in function ResetMacParameters
+    Nvm.MacGroup2.MacParamsDefaults.ChannelsNbTrans = 1;
+ 80100e0:	f884 a0b0 	strb.w	sl, [r4, #176]	; 0xb0
+    Nvm.MacGroup2.MacParamsDefaults.SystemMaxRxError = 10;
+ 80100e4:	f8c4 b094 	str.w	fp, [r4, #148]	; 0x94
+    Nvm.MacGroup2.MacParamsDefaults.MinRxSymbols = 6;
+ 80100e8:	f884 9098 	strb.w	r9, [r4, #152]	; 0x98
+
+    Nvm.MacGroup2.MacParams.SystemMaxRxError = Nvm.MacGroup2.MacParamsDefaults.SystemMaxRxError;
+ 80100ec:	f8c4 b04c 	str.w	fp, [r4, #76]	; 0x4c
+    Nvm.MacGroup2.MacParams.MinRxSymbols = Nvm.MacGroup2.MacParamsDefaults.MinRxSymbols;
+ 80100f0:	f884 9050 	strb.w	r9, [r4, #80]	; 0x50
+    Nvm.MacGroup2.MacParams.MaxRxWindow = Nvm.MacGroup2.MacParamsDefaults.MaxRxWindow;
+ 80100f4:	f8d4 309c 	ldr.w	r3, [r4, #156]	; 0x9c
+ 80100f8:	6563      	str	r3, [r4, #84]	; 0x54
+    Nvm.MacGroup2.MacParams.ReceiveDelay1 = Nvm.MacGroup2.MacParamsDefaults.ReceiveDelay1;
+ 80100fa:	f8d4 30a0 	ldr.w	r3, [r4, #160]	; 0xa0
+ 80100fe:	65a3      	str	r3, [r4, #88]	; 0x58
+    Nvm.MacGroup2.MacParams.ReceiveDelay2 = Nvm.MacGroup2.MacParamsDefaults.ReceiveDelay2;
+ 8010100:	f8d4 30a4 	ldr.w	r3, [r4, #164]	; 0xa4
+ 8010104:	65e3      	str	r3, [r4, #92]	; 0x5c
+    Nvm.MacGroup2.MacParams.JoinAcceptDelay1 = Nvm.MacGroup2.MacParamsDefaults.JoinAcceptDelay1;
+ 8010106:	f8d4 30a8 	ldr.w	r3, [r4, #168]	; 0xa8
+ 801010a:	6623      	str	r3, [r4, #96]	; 0x60
+    Nvm.MacGroup2.MacParams.JoinAcceptDelay2 = Nvm.MacGroup2.MacParamsDefaults.JoinAcceptDelay2;
+ 801010c:	f8d4 30ac 	ldr.w	r3, [r4, #172]	; 0xac
+ 8010110:	6663      	str	r3, [r4, #100]	; 0x64
+    Nvm.MacGroup2.MacParams.ChannelsNbTrans = Nvm.MacGroup2.MacParamsDefaults.ChannelsNbTrans;
+ 8010112:	f884 a068 	strb.w	sl, [r4, #104]	; 0x68
+
+#if (defined( LORAMAC_VERSION ) && ( LORAMAC_VERSION == 0x01000300 ))
+    InitDefaultsParams_t params;
+    params.Type = INIT_TYPE_DEFAULTS;
+ 8010116:	f88d 6018 	strb.w	r6, [sp, #24]
+    params.NvmGroup1 = &Nvm.RegionGroup1;
+ 801011a:	f504 7308 	add.w	r3, r4, #544	; 0x220
+ 801011e:	9304      	str	r3, [sp, #16]
+    params.NvmGroup2 = &Nvm.RegionGroup2;
+ 8010120:	f504 732d 	add.w	r3, r4, #692	; 0x2b4
+ 8010124:	9305      	str	r3, [sp, #20]
+    RegionInitDefaults( Nvm.MacGroup2.Region, &params );
+ 8010126:	a904      	add	r1, sp, #16
+ 8010128:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 801012c:	f002 f83e 	bl	80121ac <RegionInitDefaults>
+#elif (defined( LORAMAC_VERSION ) && (( LORAMAC_VERSION == 0x01000400 ) || ( LORAMAC_VERSION == 0x01010100 )))
+    // FPort 224 is enabled by default.
+    Nvm.MacGroup2.IsCertPortOn = true;
+#endif /* LORAMAC_VERSION */
+
+    MacCtx.MacCallbacks = callbacks;
+ 8010130:	f8c5 8348 	str.w	r8, [r5, #840]	; 0x348
+    ResetMacParameters( false );
+ 8010134:	4630      	mov	r0, r6
+ 8010136:	f7ff fb73 	bl	800f820 <ResetMacParameters>
+
+    Nvm.MacGroup2.PublicNetwork = true;
+ 801013a:	f884 a119 	strb.w	sl, [r4, #281]	; 0x119
+
+    MacCtx.MacPrimitives = primitives;
+ 801013e:	f8c5 7344 	str.w	r7, [r5, #836]	; 0x344
+    MacCtx.MacFlags.Value = 0;
+ 8010142:	f885 6481 	strb.w	r6, [r5, #1153]	; 0x481
+    MacCtx.MacState = LORAMAC_STOPPED;
+ 8010146:	f8c5 a340 	str.w	sl, [r5, #832]	; 0x340
+
+    // Reset duty cycle times
+    Nvm.MacGroup1.LastTxDoneTime = 0;
+ 801014a:	62e6      	str	r6, [r4, #44]	; 0x2c
+    Nvm.MacGroup1.AggregatedTimeOff = 0;
+ 801014c:	6326      	str	r6, [r4, #48]	; 0x30
+
+    // Initialize timers
+    TimerInit( &MacCtx.TxDelayedTimer, OnTxDelayedTimerEvent );
+ 801014e:	9600      	str	r6, [sp, #0]
+ 8010150:	4b40      	ldr	r3, [pc, #256]	; (8010254 <LoRaMacInitialization+0x388>)
+ 8010152:	4632      	mov	r2, r6
+ 8010154:	f04f 31ff 	mov.w	r1, #4294967295
+ 8010158:	f505 705a 	add.w	r0, r5, #872	; 0x368
+ 801015c:	f006 ffe0 	bl	8017120 <UTIL_TIMER_Create>
+    TimerInit( &MacCtx.RxWindowTimer1, OnRxWindow1TimerEvent );
+ 8010160:	9600      	str	r6, [sp, #0]
+ 8010162:	4b3d      	ldr	r3, [pc, #244]	; (8010258 <LoRaMacInitialization+0x38c>)
+ 8010164:	4632      	mov	r2, r6
+ 8010166:	f04f 31ff 	mov.w	r1, #4294967295
+ 801016a:	f505 7060 	add.w	r0, r5, #896	; 0x380
+ 801016e:	f006 ffd7 	bl	8017120 <UTIL_TIMER_Create>
+    TimerInit( &MacCtx.RxWindowTimer2, OnRxWindow2TimerEvent );
+ 8010172:	9600      	str	r6, [sp, #0]
+ 8010174:	4b39      	ldr	r3, [pc, #228]	; (801025c <LoRaMacInitialization+0x390>)
+ 8010176:	4632      	mov	r2, r6
+ 8010178:	f04f 31ff 	mov.w	r1, #4294967295
+ 801017c:	f505 7066 	add.w	r0, r5, #920	; 0x398
+ 8010180:	f006 ffce 	bl	8017120 <UTIL_TIMER_Create>
+#if (defined( LORAMAC_VERSION ) && ( LORAMAC_VERSION == 0x01000300 ))
+    TimerInit( &MacCtx.AckTimeoutTimer, OnAckTimeoutTimerEvent );
+ 8010184:	9600      	str	r6, [sp, #0]
+ 8010186:	4b36      	ldr	r3, [pc, #216]	; (8010260 <LoRaMacInitialization+0x394>)
+ 8010188:	4632      	mov	r2, r6
+ 801018a:	f04f 31ff 	mov.w	r1, #4294967295
+ 801018e:	f505 707d 	add.w	r0, r5, #1012	; 0x3f4
+ 8010192:	f006 ffc5 	bl	8017120 <UTIL_TIMER_Create>
+    TimerInit( &MacCtx.Rejoin1CycleTimer, OnRejoin1CycleTimerEvent );
+    TimerInit( &MacCtx.ForceRejoinReqCycleTimer, OnForceRejoinReqCycleTimerEvent );
+#endif /* LORAMAC_VERSION */
+
+    // Store the current initialization time
+    Nvm.MacGroup2.InitializationTime = SysTimeGetMcuTime( );
+ 8010196:	ae02      	add	r6, sp, #8
+ 8010198:	4630      	mov	r0, r6
+ 801019a:	f006 ff53 	bl	8017044 <SysTimeGetMcuTime>
+ 801019e:	f504 7390 	add.w	r3, r4, #288	; 0x120
+ 80101a2:	e896 0003 	ldmia.w	r6, {r0, r1}
+ 80101a6:	e883 0003 	stmia.w	r3, {r0, r1}
+    // Initialize MAC radio events
+    LoRaMacRadioEvents.Value = 0;
+#endif /* LORAMAC_VERSION */
+
+    // Initialize Radio driver
+    MacCtx.RadioEvents.TxDone = OnRadioTxDone;
+ 80101aa:	4b2e      	ldr	r3, [pc, #184]	; (8010264 <LoRaMacInitialization+0x398>)
+ 80101ac:	f8c5 334c 	str.w	r3, [r5, #844]	; 0x34c
+    MacCtx.RadioEvents.RxDone = OnRadioRxDone;
+ 80101b0:	4b2d      	ldr	r3, [pc, #180]	; (8010268 <LoRaMacInitialization+0x39c>)
+ 80101b2:	f8c5 3354 	str.w	r3, [r5, #852]	; 0x354
+    MacCtx.RadioEvents.RxError = OnRadioRxError;
+ 80101b6:	4b2d      	ldr	r3, [pc, #180]	; (801026c <LoRaMacInitialization+0x3a0>)
+ 80101b8:	f8c5 335c 	str.w	r3, [r5, #860]	; 0x35c
+    MacCtx.RadioEvents.TxTimeout = OnRadioTxTimeout;
+ 80101bc:	4b2c      	ldr	r3, [pc, #176]	; (8010270 <LoRaMacInitialization+0x3a4>)
+ 80101be:	f8c5 3350 	str.w	r3, [r5, #848]	; 0x350
+    MacCtx.RadioEvents.RxTimeout = OnRadioRxTimeout;
+ 80101c2:	4b2c      	ldr	r3, [pc, #176]	; (8010274 <LoRaMacInitialization+0x3a8>)
+ 80101c4:	f8c5 3358 	str.w	r3, [r5, #856]	; 0x358
+    Radio.Init( &MacCtx.RadioEvents );
+ 80101c8:	4b2b      	ldr	r3, [pc, #172]	; (8010278 <LoRaMacInitialization+0x3ac>)
+ 80101ca:	681b      	ldr	r3, [r3, #0]
+ 80101cc:	f505 7053 	add.w	r0, r5, #844	; 0x34c
+ 80101d0:	4798      	blx	r3
+
+    // Initialize the Secure Element driver
+    if( SecureElementInit( &Nvm.SecureElement ) != SECURE_ELEMENT_SUCCESS )
+ 80101d2:	f504 70a4 	add.w	r0, r4, #328	; 0x148
+ 80101d6:	f003 feff 	bl	8013fd8 <SecureElementInit>
+ 80101da:	bb70      	cbnz	r0, 801023a <LoRaMacInitialization+0x36e>
+    {
+        return LORAMAC_STATUS_CRYPTO_ERROR;
+    }
+
+    // Initialize Crypto module
+    if( LoRaMacCryptoInit( &Nvm.Crypto ) != LORAMAC_CRYPTO_SUCCESS )
+ 80101dc:	4620      	mov	r0, r4
+ 80101de:	f001 fc3d 	bl	8011a5c <LoRaMacCryptoInit>
+ 80101e2:	bb60      	cbnz	r0, 801023e <LoRaMacInitialization+0x372>
+    {
+        return LORAMAC_STATUS_CRYPTO_ERROR;
+    }
+
+    // Initialize MAC commands module
+    if( LoRaMacCommandsInit( ) != LORAMAC_COMMANDS_SUCCESS )
+ 80101e4:	f001 f866 	bl	80112b4 <LoRaMacCommandsInit>
+ 80101e8:	bb58      	cbnz	r0, 8010242 <LoRaMacInitialization+0x376>
+    {
+        return LORAMAC_STATUS_MAC_COMMAD_ERROR;
+    }
+
+    // Set multicast downlink counter reference
+    if( LoRaMacCryptoSetMulticastReference( Nvm.MacGroup2.MulticastChannelList ) != LORAMAC_CRYPTO_SUCCESS )
+ 80101ea:	f104 00e8 	add.w	r0, r4, #232	; 0xe8
+ 80101ee:	f001 fc9b 	bl	8011b28 <LoRaMacCryptoSetMulticastReference>
+ 80101f2:	4604      	mov	r4, r0
+ 80101f4:	2800      	cmp	r0, #0
+ 80101f6:	d141      	bne.n	801027c <LoRaMacInitialization+0x3b0>
+    {
+        return LORAMAC_STATUS_CRYPTO_ERROR;
+    }
+
+    // Random seed initialization
+    srand1( Radio.Random( ) );
+ 80101f8:	4d1f      	ldr	r5, [pc, #124]	; (8010278 <LoRaMacInitialization+0x3ac>)
+ 80101fa:	696b      	ldr	r3, [r5, #20]
+ 80101fc:	4798      	blx	r3
+ 80101fe:	f004 f9b9 	bl	8014574 <srand1>
+
+    Radio.SetPublicNetwork( Nvm.MacGroup2.PublicNetwork );
+ 8010202:	6dab      	ldr	r3, [r5, #88]	; 0x58
+ 8010204:	4a10      	ldr	r2, [pc, #64]	; (8010248 <LoRaMacInitialization+0x37c>)
+ 8010206:	f892 0119 	ldrb.w	r0, [r2, #281]	; 0x119
+ 801020a:	4798      	blx	r3
+    Radio.Sleep( );
+ 801020c:	6aeb      	ldr	r3, [r5, #44]	; 0x2c
+ 801020e:	4798      	blx	r3
+
+    LoRaMacEnableRequests( LORAMAC_REQUEST_HANDLING_ON );
+ 8010210:	4650      	mov	r0, sl
+ 8010212:	f7fd fc8b 	bl	800db2c <LoRaMacEnableRequests>
+
+    return LORAMAC_STATUS_OK;
+ 8010216:	e00c      	b.n	8010232 <LoRaMacInitialization+0x366>
+        return LORAMAC_STATUS_PARAMETER_INVALID;
+ 8010218:	2403      	movs	r4, #3
+ 801021a:	e00a      	b.n	8010232 <LoRaMacInitialization+0x366>
+ 801021c:	2403      	movs	r4, #3
+ 801021e:	e008      	b.n	8010232 <LoRaMacInitialization+0x366>
+        return LORAMAC_STATUS_PARAMETER_INVALID;
+ 8010220:	2403      	movs	r4, #3
+ 8010222:	e006      	b.n	8010232 <LoRaMacInitialization+0x366>
+ 8010224:	2403      	movs	r4, #3
+ 8010226:	e004      	b.n	8010232 <LoRaMacInitialization+0x366>
+ 8010228:	2403      	movs	r4, #3
+ 801022a:	e002      	b.n	8010232 <LoRaMacInitialization+0x366>
+ 801022c:	2403      	movs	r4, #3
+ 801022e:	e000      	b.n	8010232 <LoRaMacInitialization+0x366>
+        return LORAMAC_STATUS_REGION_NOT_SUPPORTED;
+ 8010230:	2409      	movs	r4, #9
+}
+ 8010232:	4620      	mov	r0, r4
+ 8010234:	b00b      	add	sp, #44	; 0x2c
+ 8010236:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+        return LORAMAC_STATUS_CRYPTO_ERROR;
+ 801023a:	2411      	movs	r4, #17
+ 801023c:	e7f9      	b.n	8010232 <LoRaMacInitialization+0x366>
+        return LORAMAC_STATUS_CRYPTO_ERROR;
+ 801023e:	2411      	movs	r4, #17
+ 8010240:	e7f7      	b.n	8010232 <LoRaMacInitialization+0x366>
+        return LORAMAC_STATUS_MAC_COMMAD_ERROR;
+ 8010242:	2413      	movs	r4, #19
+ 8010244:	e7f5      	b.n	8010232 <LoRaMacInitialization+0x366>
+ 8010246:	bf00      	nop
+ 8010248:	20001870 	.word	0x20001870
+ 801024c:	20001fe4 	.word	0x20001fe4
+ 8010250:	01000300 	.word	0x01000300
+ 8010254:	0800f2a9 	.word	0x0800f2a9
+ 8010258:	0800f525 	.word	0x0800f525
+ 801025c:	0800f4d5 	.word	0x0800f4d5
+ 8010260:	0800df59 	.word	0x0800df59
+ 8010264:	0800f7d5 	.word	0x0800f7d5
+ 8010268:	0800f78d 	.word	0x0800f78d
+ 801026c:	0800dd3d 	.word	0x0800dd3d
+ 8010270:	0800f765 	.word	0x0800f765
+ 8010274:	0800f73d 	.word	0x0800f73d
+ 8010278:	08018cb4 	.word	0x08018cb4
+        return LORAMAC_STATUS_CRYPTO_ERROR;
+ 801027c:	2411      	movs	r4, #17
+ 801027e:	e7d8      	b.n	8010232 <LoRaMacInitialization+0x366>
+
+08010280 <LoRaMacStart>:
+
+LoRaMacStatus_t LoRaMacStart( void )
+{
+ 8010280:	b510      	push	{r4, lr}
+    MacCtx.MacState = LORAMAC_IDLE;
+ 8010282:	2400      	movs	r4, #0
+ 8010284:	4b03      	ldr	r3, [pc, #12]	; (8010294 <LoRaMacStart+0x14>)
+ 8010286:	f8c3 4340 	str.w	r4, [r3, #832]	; 0x340
+    UpdateRxSlotIdleState();
+ 801028a:	f7fd fc3b 	bl	800db04 <UpdateRxSlotIdleState>
+    return LORAMAC_STATUS_OK;
+}
+ 801028e:	4620      	mov	r0, r4
+ 8010290:	bd10      	pop	{r4, pc}
+ 8010292:	bf00      	nop
+ 8010294:	20001fe4 	.word	0x20001fe4
+
+08010298 <LoRaMacStop>:
+
+LoRaMacStatus_t LoRaMacStop( void )
+{
+ 8010298:	b508      	push	{r3, lr}
+    if( LoRaMacIsBusy( ) == false )
+ 801029a:	f7ff fdad 	bl	800fdf8 <LoRaMacIsBusy>
+ 801029e:	b130      	cbz	r0, 80102ae <LoRaMacStop+0x16>
+            Radio.Sleep( );
+        }
+        MacCtx.MacState = LORAMAC_STOPPED;
+        return LORAMAC_STATUS_OK;
+    }
+    else if(  MacCtx.MacState == LORAMAC_STOPPED )
+ 80102a0:	4b0b      	ldr	r3, [pc, #44]	; (80102d0 <LoRaMacStop+0x38>)
+ 80102a2:	f8d3 3340 	ldr.w	r3, [r3, #832]	; 0x340
+ 80102a6:	2b01      	cmp	r3, #1
+ 80102a8:	d010      	beq.n	80102cc <LoRaMacStop+0x34>
+    {
+        return LORAMAC_STATUS_OK;
+    }
+    return LORAMAC_STATUS_BUSY;
+ 80102aa:	2001      	movs	r0, #1
+}
+ 80102ac:	bd08      	pop	{r3, pc}
+        if( Nvm.MacGroup2.DeviceClass == CLASS_C )
+ 80102ae:	4b09      	ldr	r3, [pc, #36]	; (80102d4 <LoRaMacStop+0x3c>)
+ 80102b0:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 80102b4:	2b02      	cmp	r3, #2
+ 80102b6:	d005      	beq.n	80102c4 <LoRaMacStop+0x2c>
+        MacCtx.MacState = LORAMAC_STOPPED;
+ 80102b8:	4b05      	ldr	r3, [pc, #20]	; (80102d0 <LoRaMacStop+0x38>)
+ 80102ba:	2201      	movs	r2, #1
+ 80102bc:	f8c3 2340 	str.w	r2, [r3, #832]	; 0x340
+        return LORAMAC_STATUS_OK;
+ 80102c0:	2000      	movs	r0, #0
+ 80102c2:	e7f3      	b.n	80102ac <LoRaMacStop+0x14>
+            Radio.Sleep( );
+ 80102c4:	4b04      	ldr	r3, [pc, #16]	; (80102d8 <LoRaMacStop+0x40>)
+ 80102c6:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 80102c8:	4798      	blx	r3
+ 80102ca:	e7f5      	b.n	80102b8 <LoRaMacStop+0x20>
+        return LORAMAC_STATUS_OK;
+ 80102cc:	2000      	movs	r0, #0
+ 80102ce:	e7ed      	b.n	80102ac <LoRaMacStop+0x14>
+ 80102d0:	20001fe4 	.word	0x20001fe4
+ 80102d4:	20001870 	.word	0x20001870
+ 80102d8:	08018cb4 	.word	0x08018cb4
+
+080102dc <LoRaMacHalt>:
+
+LoRaMacStatus_t LoRaMacHalt( void )
+{
+ 80102dc:	b570      	push	{r4, r5, r6, lr}
+    // Stop Timers
+    TimerStop( &MacCtx.TxDelayedTimer );
+ 80102de:	4c14      	ldr	r4, [pc, #80]	; (8010330 <LoRaMacHalt+0x54>)
+ 80102e0:	f504 705a 	add.w	r0, r4, #872	; 0x368
+ 80102e4:	f006 ff7a 	bl	80171dc <UTIL_TIMER_Stop>
+    TimerStop( &MacCtx.RxWindowTimer1 );
+ 80102e8:	f504 7060 	add.w	r0, r4, #896	; 0x380
+ 80102ec:	f006 ff76 	bl	80171dc <UTIL_TIMER_Stop>
+    TimerStop( &MacCtx.RxWindowTimer2 );
+ 80102f0:	f504 7066 	add.w	r0, r4, #920	; 0x398
+ 80102f4:	f006 ff72 	bl	80171dc <UTIL_TIMER_Stop>
+#if (defined( LORAMAC_VERSION ) && ( LORAMAC_VERSION == 0x01000300 ))
+    TimerStop( &MacCtx.AckTimeoutTimer );
+ 80102f8:	f504 707d 	add.w	r0, r4, #1012	; 0x3f4
+ 80102fc:	f006 ff6e 	bl	80171dc <UTIL_TIMER_Stop>
+#elif (defined( LORAMAC_VERSION ) && (( LORAMAC_VERSION == 0x01000400 ) || ( LORAMAC_VERSION == 0x01010100 )))
+    TimerStop( &MacCtx.RetransmitTimeoutTimer );
+#endif /* LORAMAC_VERSION */
+
+    // Take care about class B
+    LoRaMacClassBHaltBeaconing( );
+ 8010300:	f000 ff40 	bl	8011184 <LoRaMacClassBHaltBeaconing>
+
+    // Switch off Radio
+    Radio.Sleep( );
+ 8010304:	4b0b      	ldr	r3, [pc, #44]	; (8010334 <LoRaMacHalt+0x58>)
+ 8010306:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 8010308:	4798      	blx	r3
+
+    MacCtx.MacState = LORAMAC_IDLE;
+ 801030a:	2500      	movs	r5, #0
+ 801030c:	f8c4 5340 	str.w	r5, [r4, #832]	; 0x340
+
+#if (defined( CONTEXT_MANAGEMENT_ENABLED ) && ( CONTEXT_MANAGEMENT_ENABLED == 1 ))
+    LoRaMacHandleNvm( &Nvm );
+ 8010310:	4e09      	ldr	r6, [pc, #36]	; (8010338 <LoRaMacHalt+0x5c>)
+ 8010312:	4630      	mov	r0, r6
+ 8010314:	f7ff f92a 	bl	800f56c <LoRaMacHandleNvm>
+
+    // Preserve the Nvm context if data retention
+    memcpy1( ( uint8_t* ) &NvmBackup, ( uint8_t* ) &Nvm, sizeof( LoRaMacNvmData_t ) );
+ 8010318:	f44f 62ee 	mov.w	r2, #1904	; 0x770
+ 801031c:	4631      	mov	r1, r6
+ 801031e:	4807      	ldr	r0, [pc, #28]	; (801033c <LoRaMacHalt+0x60>)
+ 8010320:	f004 f93b 	bl	801459a <memcpy1>
+#endif /* CONTEXT_MANAGEMENT_ENABLED */
+
+    MacCtx.MacState = LORAMAC_STOPPED;
+ 8010324:	2301      	movs	r3, #1
+ 8010326:	f8c4 3340 	str.w	r3, [r4, #832]	; 0x340
+
+    return LORAMAC_STATUS_OK;
+}
+ 801032a:	4628      	mov	r0, r5
+ 801032c:	bd70      	pop	{r4, r5, r6, pc}
+ 801032e:	bf00      	nop
+ 8010330:	20001fe4 	.word	0x20001fe4
+ 8010334:	08018cb4 	.word	0x08018cb4
+ 8010338:	20001870 	.word	0x20001870
+ 801033c:	20001100 	.word	0x20001100
+
+08010340 <LoRaMacQueryTxPossible>:
+
+LoRaMacStatus_t LoRaMacQueryTxPossible( uint8_t size, LoRaMacTxInfo_t* txInfo )
+{
+ 8010340:	b530      	push	{r4, r5, lr}
+ 8010342:	b089      	sub	sp, #36	; 0x24
+ 8010344:	4604      	mov	r4, r0
+    CalcNextAdrParams_t adrNext;
+    uint32_t adrAckCounter = Nvm.MacGroup1.AdrAckCounter;
+ 8010346:	4b2e      	ldr	r3, [pc, #184]	; (8010400 <LoRaMacQueryTxPossible+0xc0>)
+ 8010348:	6a9a      	ldr	r2, [r3, #40]	; 0x28
+ 801034a:	9202      	str	r2, [sp, #8]
+    int8_t datarate = Nvm.MacGroup2.ChannelsDatarateDefault;
+ 801034c:	f993 00dd 	ldrsb.w	r0, [r3, #221]	; 0xdd
+ 8010350:	f88d 0007 	strb.w	r0, [sp, #7]
+    int8_t txPower = Nvm.MacGroup2.ChannelsTxPowerDefault;
+ 8010354:	f993 30dc 	ldrsb.w	r3, [r3, #220]	; 0xdc
+ 8010358:	f88d 3006 	strb.w	r3, [sp, #6]
+#if (defined( LORAMAC_VERSION ) && (( LORAMAC_VERSION == 0x01000400 ) || ( LORAMAC_VERSION == 0x01010100 )))
+    uint8_t nbTrans = MacCtx.ChannelsNbTransCounter;
+#endif /* LORAMAC_VERSION */
+    size_t macCmdsSize = 0;
+ 801035c:	2300      	movs	r3, #0
+ 801035e:	9300      	str	r3, [sp, #0]
+
+    if( txInfo == NULL )
+ 8010360:	2900      	cmp	r1, #0
+ 8010362:	d047      	beq.n	80103f4 <LoRaMacQueryTxPossible+0xb4>
+ 8010364:	460d      	mov	r5, r1
+        return LORAMAC_STATUS_PARAMETER_INVALID;
+    }
+
+    // Setup ADR request
+#if (defined( LORAMAC_VERSION ) && ( LORAMAC_VERSION == 0x01000300 ))
+    adrNext.Version = Nvm.MacGroup2.Version;
+ 8010366:	4b26      	ldr	r3, [pc, #152]	; (8010400 <LoRaMacQueryTxPossible+0xc0>)
+ 8010368:	f8d3 1128 	ldr.w	r1, [r3, #296]	; 0x128
+ 801036c:	9103      	str	r1, [sp, #12]
+#endif /* LORAMAC_VERSION */
+    adrNext.UpdateChanMask = false;
+ 801036e:	2100      	movs	r1, #0
+ 8010370:	f88d 1010 	strb.w	r1, [sp, #16]
+    adrNext.AdrEnabled = Nvm.MacGroup2.AdrCtrlOn;
+ 8010374:	f893 111a 	ldrb.w	r1, [r3, #282]	; 0x11a
+ 8010378:	f88d 1011 	strb.w	r1, [sp, #17]
+    adrNext.AdrAckCounter = Nvm.MacGroup1.AdrAckCounter;
+ 801037c:	9205      	str	r2, [sp, #20]
+    adrNext.AdrAckLimit = Nvm.MacGroup2.MacParams.AdrAckLimit;
+ 801037e:	f8b3 2088 	ldrh.w	r2, [r3, #136]	; 0x88
+ 8010382:	f8ad 2018 	strh.w	r2, [sp, #24]
+    adrNext.AdrAckDelay = Nvm.MacGroup2.MacParams.AdrAckDelay;
+ 8010386:	f8b3 208a 	ldrh.w	r2, [r3, #138]	; 0x8a
+ 801038a:	f8ad 201a 	strh.w	r2, [sp, #26]
+    adrNext.Datarate = Nvm.MacGroup1.ChannelsDatarate;
+ 801038e:	f993 2039 	ldrsb.w	r2, [r3, #57]	; 0x39
+ 8010392:	f88d 201c 	strb.w	r2, [sp, #28]
+    adrNext.TxPower = Nvm.MacGroup1.ChannelsTxPower;
+ 8010396:	f993 2038 	ldrsb.w	r2, [r3, #56]	; 0x38
+ 801039a:	f88d 201d 	strb.w	r2, [sp, #29]
+#if (defined( LORAMAC_VERSION ) && (( LORAMAC_VERSION == 0x01000400 ) || ( LORAMAC_VERSION == 0x01010100 )))
+    adrNext.NbTrans = MacCtx.ChannelsNbTransCounter;
+#endif /* LORAMAC_VERSION */
+    adrNext.UplinkDwellTime = Nvm.MacGroup2.MacParams.UplinkDwellTime;
+ 801039e:	f893 207c 	ldrb.w	r2, [r3, #124]	; 0x7c
+ 80103a2:	f88d 201e 	strb.w	r2, [sp, #30]
+    adrNext.Region = Nvm.MacGroup2.Region;
+ 80103a6:	f893 3048 	ldrb.w	r3, [r3, #72]	; 0x48
+ 80103aa:	f88d 301f 	strb.w	r3, [sp, #31]
+
+    // We call the function for information purposes only. We don't want to
+    // apply the datarate, the tx power and the ADR ack counter.
+#if (defined( LORAMAC_VERSION ) && ( LORAMAC_VERSION == 0x01000300 ))
+    LoRaMacAdrCalcNext( &adrNext, &datarate, &txPower, &adrAckCounter );
+ 80103ae:	ab02      	add	r3, sp, #8
+ 80103b0:	f10d 0206 	add.w	r2, sp, #6
+ 80103b4:	f10d 0107 	add.w	r1, sp, #7
+ 80103b8:	a803      	add	r0, sp, #12
+ 80103ba:	f000 fec7 	bl	801114c <LoRaMacAdrCalcNext>
+#elif (defined( LORAMAC_VERSION ) && (( LORAMAC_VERSION == 0x01000400 ) || ( LORAMAC_VERSION == 0x01010100 )))
+    LoRaMacAdrCalcNext( &adrNext, &datarate, &txPower, &nbTrans, &adrAckCounter );
+#endif /* LORAMAC_VERSION */
+
+    txInfo->CurrentPossiblePayloadSize = GetMaxAppPayloadWithoutFOptsLength( datarate );
+ 80103be:	f99d 0007 	ldrsb.w	r0, [sp, #7]
+ 80103c2:	f7fd fd0b 	bl	800dddc <GetMaxAppPayloadWithoutFOptsLength>
+ 80103c6:	7068      	strb	r0, [r5, #1]
+
+    if( LoRaMacCommandsGetSizeSerializedCmds( &macCmdsSize ) != LORAMAC_COMMANDS_SUCCESS )
+ 80103c8:	4668      	mov	r0, sp
+ 80103ca:	f001 f80f 	bl	80113ec <LoRaMacCommandsGetSizeSerializedCmds>
+ 80103ce:	b998      	cbnz	r0, 80103f8 <LoRaMacQueryTxPossible+0xb8>
+    {
+        return LORAMAC_STATUS_MAC_COMMAD_ERROR;
+    }
+
+    // Verify if the MAC commands fit into the FOpts and into the maximum payload.
+    if( ( LORA_MAC_COMMAND_MAX_FOPTS_LENGTH >= macCmdsSize ) && ( txInfo->CurrentPossiblePayloadSize >= macCmdsSize ) )
+ 80103d0:	9b00      	ldr	r3, [sp, #0]
+ 80103d2:	2b0f      	cmp	r3, #15
+ 80103d4:	d80a      	bhi.n	80103ec <LoRaMacQueryTxPossible+0xac>
+ 80103d6:	786a      	ldrb	r2, [r5, #1]
+ 80103d8:	4293      	cmp	r3, r2
+ 80103da:	d807      	bhi.n	80103ec <LoRaMacQueryTxPossible+0xac>
+    {
+        txInfo->MaxPossibleApplicationDataSize = txInfo->CurrentPossiblePayloadSize - macCmdsSize;
+ 80103dc:	1ad3      	subs	r3, r2, r3
+ 80103de:	702b      	strb	r3, [r5, #0]
+
+        // Verify if the application data together with MAC command fit into the maximum payload.
+        if( txInfo->CurrentPossiblePayloadSize >= ( macCmdsSize + size ) )
+ 80103e0:	9b00      	ldr	r3, [sp, #0]
+ 80103e2:	441c      	add	r4, r3
+ 80103e4:	42a2      	cmp	r2, r4
+ 80103e6:	d309      	bcc.n	80103fc <LoRaMacQueryTxPossible+0xbc>
+    else
+    {
+        txInfo->MaxPossibleApplicationDataSize = 0;
+        return LORAMAC_STATUS_LENGTH_ERROR;
+    }
+}
+ 80103e8:	b009      	add	sp, #36	; 0x24
+ 80103ea:	bd30      	pop	{r4, r5, pc}
+        txInfo->MaxPossibleApplicationDataSize = 0;
+ 80103ec:	2300      	movs	r3, #0
+ 80103ee:	702b      	strb	r3, [r5, #0]
+        return LORAMAC_STATUS_LENGTH_ERROR;
+ 80103f0:	2008      	movs	r0, #8
+ 80103f2:	e7f9      	b.n	80103e8 <LoRaMacQueryTxPossible+0xa8>
+        return LORAMAC_STATUS_PARAMETER_INVALID;
+ 80103f4:	2003      	movs	r0, #3
+ 80103f6:	e7f7      	b.n	80103e8 <LoRaMacQueryTxPossible+0xa8>
+        return LORAMAC_STATUS_MAC_COMMAD_ERROR;
+ 80103f8:	2013      	movs	r0, #19
+ 80103fa:	e7f5      	b.n	80103e8 <LoRaMacQueryTxPossible+0xa8>
+           return LORAMAC_STATUS_LENGTH_ERROR;
+ 80103fc:	2008      	movs	r0, #8
+ 80103fe:	e7f3      	b.n	80103e8 <LoRaMacQueryTxPossible+0xa8>
+ 8010400:	20001870 	.word	0x20001870
+
+08010404 <LoRaMacMibGetRequestConfirm>:
+{
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+    GetPhyParams_t getPhy;
+    PhyParam_t phyParam;
+
+    if( mibGet == NULL )
+ 8010404:	2800      	cmp	r0, #0
+ 8010406:	f000 8163 	beq.w	80106d0 <LoRaMacMibGetRequestConfirm+0x2cc>
+{
+ 801040a:	b510      	push	{r4, lr}
+ 801040c:	b084      	sub	sp, #16
+ 801040e:	4604      	mov	r4, r0
+    {
+        return LORAMAC_STATUS_PARAMETER_INVALID;
+    }
+
+    switch( mibGet->Type )
+ 8010410:	7800      	ldrb	r0, [r0, #0]
+ 8010412:	283f      	cmp	r0, #63	; 0x3f
+ 8010414:	f200 8158 	bhi.w	80106c8 <LoRaMacMibGetRequestConfirm+0x2c4>
+ 8010418:	e8df f010 	tbh	[pc, r0, lsl #1]
+ 801041c:	00460040 	.word	0x00460040
+ 8010420:	0051004c 	.word	0x0051004c
+ 8010424:	005c0056 	.word	0x005c0056
+ 8010428:	01560062 	.word	0x01560062
+ 801042c:	01560156 	.word	0x01560156
+ 8010430:	01560156 	.word	0x01560156
+ 8010434:	01560156 	.word	0x01560156
+ 8010438:	006a0156 	.word	0x006a0156
+ 801043c:	00760070 	.word	0x00760070
+ 8010440:	008b0083 	.word	0x008b0083
+ 8010444:	009b0093 	.word	0x009b0093
+ 8010448:	00a300b0 	.word	0x00a300b0
+ 801044c:	00c300bd 	.word	0x00c300bd
+ 8010450:	00cd00c8 	.word	0x00cd00c8
+ 8010454:	00d700d2 	.word	0x00d700d2
+ 8010458:	00e200dc 	.word	0x00e200dc
+ 801045c:	00e800ee 	.word	0x00e800ee
+ 8010460:	00f900f4 	.word	0x00f900f4
+ 8010464:	010d00ff 	.word	0x010d00ff
+ 8010468:	01090105 	.word	0x01090105
+ 801046c:	01130156 	.word	0x01130156
+ 8010470:	01560156 	.word	0x01560156
+ 8010474:	01560156 	.word	0x01560156
+ 8010478:	01560156 	.word	0x01560156
+ 801047c:	01560156 	.word	0x01560156
+ 8010480:	01560156 	.word	0x01560156
+ 8010484:	01560156 	.word	0x01560156
+ 8010488:	01560156 	.word	0x01560156
+ 801048c:	011c0156 	.word	0x011c0156
+ 8010490:	01280122 	.word	0x01280122
+ 8010494:	0134012e 	.word	0x0134012e
+ 8010498:	0148013a 	.word	0x0148013a
+    {
+        case MIB_DEVICE_CLASS:
+        {
+            mibGet->Param.Class = Nvm.MacGroup2.DeviceClass;
+ 801049c:	4b8d      	ldr	r3, [pc, #564]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 801049e:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 80104a2:	7123      	strb	r3, [r4, #4]
+            status = LoRaMacClassBMibGetRequestConfirm( mibGet );
+            break;
+        }
+    }
+    return status;
+}
+ 80104a4:	b004      	add	sp, #16
+ 80104a6:	bd10      	pop	{r4, pc}
+            mibGet->Param.NetworkActivation = Nvm.MacGroup2.NetworkActivation;
+ 80104a8:	4b8a      	ldr	r3, [pc, #552]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 80104aa:	f893 312c 	ldrb.w	r3, [r3, #300]	; 0x12c
+ 80104ae:	7123      	strb	r3, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 80104b0:	2000      	movs	r0, #0
+            break;
+ 80104b2:	e7f7      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            SecureElementGetDevEui( mibGet->Param.DevEui );
+ 80104b4:	6860      	ldr	r0, [r4, #4]
+ 80104b6:	f003 ff35 	bl	8014324 <SecureElementGetDevEui>
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 80104ba:	2000      	movs	r0, #0
+            break;
+ 80104bc:	e7f2      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+             SecureElementGetJoinEui( mibGet->Param.JoinEui );
+ 80104be:	6860      	ldr	r0, [r4, #4]
+ 80104c0:	f003 ff4e 	bl	8014360 <SecureElementGetJoinEui>
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 80104c4:	2000      	movs	r0, #0
+            break;
+ 80104c6:	e7ed      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            mibGet->Param.AdrEnable = Nvm.MacGroup2.AdrCtrlOn;
+ 80104c8:	4b82      	ldr	r3, [pc, #520]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 80104ca:	f893 311a 	ldrb.w	r3, [r3, #282]	; 0x11a
+ 80104ce:	7123      	strb	r3, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 80104d0:	2000      	movs	r0, #0
+            break;
+ 80104d2:	e7e7      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            mibGet->Param.NetID = Nvm.MacGroup2.NetID;
+ 80104d4:	4b7f      	ldr	r3, [pc, #508]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 80104d6:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
+ 80104da:	6063      	str	r3, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 80104dc:	2000      	movs	r0, #0
+            break;
+ 80104de:	e7e1      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            SecureElementGetDevAddr( Nvm.MacGroup2.NetworkActivation, &mibGet->Param.DevAddr );
+ 80104e0:	1d21      	adds	r1, r4, #4
+ 80104e2:	4b7c      	ldr	r3, [pc, #496]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 80104e4:	f893 012c 	ldrb.w	r0, [r3, #300]	; 0x12c
+ 80104e8:	f003 ff56 	bl	8014398 <SecureElementGetDevAddr>
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 80104ec:	2000      	movs	r0, #0
+            break;
+ 80104ee:	e7d9      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            mibGet->Param.EnablePublicNetwork = Nvm.MacGroup2.PublicNetwork;
+ 80104f0:	4b78      	ldr	r3, [pc, #480]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 80104f2:	f893 3119 	ldrb.w	r3, [r3, #281]	; 0x119
+ 80104f6:	7123      	strb	r3, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 80104f8:	2000      	movs	r0, #0
+            break;
+ 80104fa:	e7d3      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            mibGet->Param.EnableRepeaterSupport = Nvm.MacGroup2.MacParams.RepeaterSupport;
+ 80104fc:	4b75      	ldr	r3, [pc, #468]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 80104fe:	f893 308c 	ldrb.w	r3, [r3, #140]	; 0x8c
+ 8010502:	7123      	strb	r3, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010504:	2000      	movs	r0, #0
+            break;
+ 8010506:	e7cd      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            getPhy.Attribute = PHY_CHANNELS;
+ 8010508:	231d      	movs	r3, #29
+ 801050a:	f88d 3008 	strb.w	r3, [sp, #8]
+            phyParam = RegionGetPhyParam( Nvm.MacGroup2.Region, &getPhy );
+ 801050e:	a902      	add	r1, sp, #8
+ 8010510:	4b70      	ldr	r3, [pc, #448]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 8010512:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 8010516:	f001 fe32 	bl	801217e <RegionGetPhyParam>
+ 801051a:	9001      	str	r0, [sp, #4]
+            mibGet->Param.ChannelList = phyParam.Channels;
+ 801051c:	6060      	str	r0, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 801051e:	2000      	movs	r0, #0
+            break;
+ 8010520:	e7c0      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            mibGet->Param.Rx2Channel = Nvm.MacGroup2.MacParams.Rx2Channel;
+ 8010522:	3404      	adds	r4, #4
+ 8010524:	4b6c      	ldr	r3, [pc, #432]	; (80106d8 <LoRaMacMibGetRequestConfirm+0x2d4>)
+ 8010526:	e893 0003 	ldmia.w	r3, {r0, r1}
+ 801052a:	e884 0003 	stmia.w	r4, {r0, r1}
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 801052e:	2000      	movs	r0, #0
+            break;
+ 8010530:	e7b8      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            mibGet->Param.Rx2Channel = Nvm.MacGroup2.MacParamsDefaults.Rx2Channel;
+ 8010532:	3404      	adds	r4, #4
+ 8010534:	4b69      	ldr	r3, [pc, #420]	; (80106dc <LoRaMacMibGetRequestConfirm+0x2d8>)
+ 8010536:	e893 0003 	ldmia.w	r3, {r0, r1}
+ 801053a:	e884 0003 	stmia.w	r4, {r0, r1}
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 801053e:	2000      	movs	r0, #0
+            break;
+ 8010540:	e7b0      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            mibGet->Param.RxCChannel = Nvm.MacGroup2.MacParams.RxCChannel;
+ 8010542:	3404      	adds	r4, #4
+ 8010544:	4b66      	ldr	r3, [pc, #408]	; (80106e0 <LoRaMacMibGetRequestConfirm+0x2dc>)
+ 8010546:	e893 0003 	ldmia.w	r3, {r0, r1}
+ 801054a:	e884 0003 	stmia.w	r4, {r0, r1}
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 801054e:	2000      	movs	r0, #0
+            break;
+ 8010550:	e7a8      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            mibGet->Param.RxCChannel = Nvm.MacGroup2.MacParamsDefaults.RxCChannel;
+ 8010552:	3404      	adds	r4, #4
+ 8010554:	4b63      	ldr	r3, [pc, #396]	; (80106e4 <LoRaMacMibGetRequestConfirm+0x2e0>)
+ 8010556:	e893 0003 	ldmia.w	r3, {r0, r1}
+ 801055a:	e884 0003 	stmia.w	r4, {r0, r1}
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 801055e:	2000      	movs	r0, #0
+            break;
+ 8010560:	e7a0      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            getPhy.Attribute = PHY_CHANNELS_DEFAULT_MASK;
+ 8010562:	231b      	movs	r3, #27
+ 8010564:	f88d 3008 	strb.w	r3, [sp, #8]
+            phyParam = RegionGetPhyParam( Nvm.MacGroup2.Region, &getPhy );
+ 8010568:	a902      	add	r1, sp, #8
+ 801056a:	4b5a      	ldr	r3, [pc, #360]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 801056c:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 8010570:	f001 fe05 	bl	801217e <RegionGetPhyParam>
+ 8010574:	9001      	str	r0, [sp, #4]
+            mibGet->Param.ChannelsDefaultMask = phyParam.ChannelsMask;
+ 8010576:	6060      	str	r0, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010578:	2000      	movs	r0, #0
+            break;
+ 801057a:	e793      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            getPhy.Attribute = PHY_CHANNELS_MASK;
+ 801057c:	231a      	movs	r3, #26
+ 801057e:	f88d 3008 	strb.w	r3, [sp, #8]
+            phyParam = RegionGetPhyParam( Nvm.MacGroup2.Region, &getPhy );
+ 8010582:	a902      	add	r1, sp, #8
+ 8010584:	4b53      	ldr	r3, [pc, #332]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 8010586:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 801058a:	f001 fdf8 	bl	801217e <RegionGetPhyParam>
+ 801058e:	9001      	str	r0, [sp, #4]
+            mibGet->Param.ChannelsMask = phyParam.ChannelsMask;
+ 8010590:	6060      	str	r0, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010592:	2000      	movs	r0, #0
+            break;
+ 8010594:	e786      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            mibGet->Param.ChannelsNbTrans = Nvm.MacGroup2.MacParams.ChannelsNbTrans;
+ 8010596:	4b4f      	ldr	r3, [pc, #316]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 8010598:	f893 3068 	ldrb.w	r3, [r3, #104]	; 0x68
+ 801059c:	7123      	strb	r3, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 801059e:	2000      	movs	r0, #0
+            break;
+ 80105a0:	e780      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            mibGet->Param.MaxRxWindow = Nvm.MacGroup2.MacParams.MaxRxWindow;
+ 80105a2:	4b4c      	ldr	r3, [pc, #304]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 80105a4:	6d5b      	ldr	r3, [r3, #84]	; 0x54
+ 80105a6:	6063      	str	r3, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 80105a8:	2000      	movs	r0, #0
+            break;
+ 80105aa:	e77b      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            mibGet->Param.ReceiveDelay1 = Nvm.MacGroup2.MacParams.ReceiveDelay1;
+ 80105ac:	4b49      	ldr	r3, [pc, #292]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 80105ae:	6d9b      	ldr	r3, [r3, #88]	; 0x58
+ 80105b0:	6063      	str	r3, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 80105b2:	2000      	movs	r0, #0
+            break;
+ 80105b4:	e776      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            mibGet->Param.ReceiveDelay2 = Nvm.MacGroup2.MacParams.ReceiveDelay2;
+ 80105b6:	4b47      	ldr	r3, [pc, #284]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 80105b8:	6ddb      	ldr	r3, [r3, #92]	; 0x5c
+ 80105ba:	6063      	str	r3, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 80105bc:	2000      	movs	r0, #0
+            break;
+ 80105be:	e771      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            mibGet->Param.JoinAcceptDelay1 = Nvm.MacGroup2.MacParams.JoinAcceptDelay1;
+ 80105c0:	4b44      	ldr	r3, [pc, #272]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 80105c2:	6e1b      	ldr	r3, [r3, #96]	; 0x60
+ 80105c4:	6063      	str	r3, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 80105c6:	2000      	movs	r0, #0
+            break;
+ 80105c8:	e76c      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            mibGet->Param.JoinAcceptDelay2 = Nvm.MacGroup2.MacParams.JoinAcceptDelay2;
+ 80105ca:	4b42      	ldr	r3, [pc, #264]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 80105cc:	6e5b      	ldr	r3, [r3, #100]	; 0x64
+ 80105ce:	6063      	str	r3, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 80105d0:	2000      	movs	r0, #0
+            break;
+ 80105d2:	e767      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            mibGet->Param.ChannelsDefaultDatarate = Nvm.MacGroup2.ChannelsDatarateDefault;
+ 80105d4:	4b3f      	ldr	r3, [pc, #252]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 80105d6:	f993 30dd 	ldrsb.w	r3, [r3, #221]	; 0xdd
+ 80105da:	7123      	strb	r3, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 80105dc:	2000      	movs	r0, #0
+            break;
+ 80105de:	e761      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            mibGet->Param.ChannelsDatarate = Nvm.MacGroup1.ChannelsDatarate;
+ 80105e0:	4b3c      	ldr	r3, [pc, #240]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 80105e2:	f993 3039 	ldrsb.w	r3, [r3, #57]	; 0x39
+ 80105e6:	7123      	strb	r3, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 80105e8:	2000      	movs	r0, #0
+            break;
+ 80105ea:	e75b      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            mibGet->Param.ChannelsDefaultTxPower = Nvm.MacGroup2.ChannelsTxPowerDefault;
+ 80105ec:	4b39      	ldr	r3, [pc, #228]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 80105ee:	f993 30dc 	ldrsb.w	r3, [r3, #220]	; 0xdc
+ 80105f2:	7123      	strb	r3, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 80105f4:	2000      	movs	r0, #0
+            break;
+ 80105f6:	e755      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            mibGet->Param.ChannelsTxPower = Nvm.MacGroup1.ChannelsTxPower;
+ 80105f8:	4b36      	ldr	r3, [pc, #216]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 80105fa:	f993 3038 	ldrsb.w	r3, [r3, #56]	; 0x38
+ 80105fe:	7123      	strb	r3, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010600:	2000      	movs	r0, #0
+            break;
+ 8010602:	e74f      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            mibGet->Param.SystemMaxRxError = Nvm.MacGroup2.MacParams.SystemMaxRxError;
+ 8010604:	4b33      	ldr	r3, [pc, #204]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 8010606:	6cdb      	ldr	r3, [r3, #76]	; 0x4c
+ 8010608:	6063      	str	r3, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 801060a:	2000      	movs	r0, #0
+            break;
+ 801060c:	e74a      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            mibGet->Param.MinRxSymbols = Nvm.MacGroup2.MacParams.MinRxSymbols;
+ 801060e:	4b31      	ldr	r3, [pc, #196]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 8010610:	f893 3050 	ldrb.w	r3, [r3, #80]	; 0x50
+ 8010614:	7123      	strb	r3, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010616:	2000      	movs	r0, #0
+            break;
+ 8010618:	e744      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            mibGet->Param.AntennaGain = Nvm.MacGroup2.MacParams.AntennaGain;
+ 801061a:	4b2e      	ldr	r3, [pc, #184]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 801061c:	f8d3 3084 	ldr.w	r3, [r3, #132]	; 0x84
+ 8010620:	6063      	str	r3, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010622:	2000      	movs	r0, #0
+            break;
+ 8010624:	e73e      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            mibGet->Param.Contexts = &Nvm;
+ 8010626:	4b2b      	ldr	r3, [pc, #172]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 8010628:	6063      	str	r3, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 801062a:	2000      	movs	r0, #0
+            break;
+ 801062c:	e73a      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            mibGet->Param.BackupContexts = &NvmBackup;
+ 801062e:	4b2e      	ldr	r3, [pc, #184]	; (80106e8 <LoRaMacMibGetRequestConfirm+0x2e4>)
+ 8010630:	6063      	str	r3, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010632:	2000      	movs	r0, #0
+            break;
+ 8010634:	e736      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            mibGet->Param.DefaultAntennaGain = Nvm.MacGroup2.MacParamsDefaults.AntennaGain;
+ 8010636:	4b27      	ldr	r3, [pc, #156]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 8010638:	f8d3 30cc 	ldr.w	r3, [r3, #204]	; 0xcc
+ 801063c:	6063      	str	r3, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 801063e:	2000      	movs	r0, #0
+            break;
+ 8010640:	e730      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            mibGet->Param.LrWanVersion.LoRaWan = Nvm.MacGroup2.Version;
+ 8010642:	4b24      	ldr	r3, [pc, #144]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 8010644:	f8d3 3128 	ldr.w	r3, [r3, #296]	; 0x128
+ 8010648:	6063      	str	r3, [r4, #4]
+            mibGet->Param.LrWanVersion.LoRaWanRegion = RegionGetVersion( );
+ 801064a:	f001 fe49 	bl	80122e0 <RegionGetVersion>
+ 801064e:	60a0      	str	r0, [r4, #8]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010650:	2000      	movs	r0, #0
+            break;
+ 8010652:	e727      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            mibGet->Param.RxBCTimeout = Nvm.MacGroup2.MacParams.RxBCTimeout;
+ 8010654:	4b1f      	ldr	r3, [pc, #124]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 8010656:	f8d3 3090 	ldr.w	r3, [r3, #144]	; 0x90
+ 801065a:	6063      	str	r3, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 801065c:	2000      	movs	r0, #0
+            break;
+ 801065e:	e721      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            mibGet->Param.AdrAckLimit = Nvm.MacGroup2.MacParams.AdrAckLimit;
+ 8010660:	4b1c      	ldr	r3, [pc, #112]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 8010662:	f8b3 3088 	ldrh.w	r3, [r3, #136]	; 0x88
+ 8010666:	80a3      	strh	r3, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010668:	2000      	movs	r0, #0
+            break;
+ 801066a:	e71b      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            mibGet->Param.AdrAckDelay = Nvm.MacGroup2.MacParams.AdrAckDelay;
+ 801066c:	4b19      	ldr	r3, [pc, #100]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 801066e:	f8b3 308a 	ldrh.w	r3, [r3, #138]	; 0x8a
+ 8010672:	80a3      	strh	r3, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010674:	2000      	movs	r0, #0
+            break;
+ 8010676:	e715      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            mibGet->Param.AdrAckLimit = Nvm.MacGroup2.MacParamsDefaults.AdrAckLimit;
+ 8010678:	4b16      	ldr	r3, [pc, #88]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 801067a:	f8b3 30d0 	ldrh.w	r3, [r3, #208]	; 0xd0
+ 801067e:	80a3      	strh	r3, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010680:	2000      	movs	r0, #0
+            break;
+ 8010682:	e70f      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            mibGet->Param.AdrAckDelay = Nvm.MacGroup2.MacParamsDefaults.AdrAckDelay;
+ 8010684:	4b13      	ldr	r3, [pc, #76]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 8010686:	f8b3 30d2 	ldrh.w	r3, [r3, #210]	; 0xd2
+ 801068a:	80a3      	strh	r3, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 801068c:	2000      	movs	r0, #0
+            break;
+ 801068e:	e709      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            if( Nvm.MacGroup2.Region != LORAMAC_REGION_AS923 && Nvm.MacGroup2.Region != LORAMAC_REGION_KR920 )
+ 8010690:	4b10      	ldr	r3, [pc, #64]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 8010692:	f893 3048 	ldrb.w	r3, [r3, #72]	; 0x48
+ 8010696:	b11b      	cbz	r3, 80106a0 <LoRaMacMibGetRequestConfirm+0x29c>
+ 8010698:	2b06      	cmp	r3, #6
+ 801069a:	d001      	beq.n	80106a0 <LoRaMacMibGetRequestConfirm+0x29c>
+                status = LORAMAC_STATUS_ERROR;
+ 801069c:	2018      	movs	r0, #24
+ 801069e:	e701      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+                mibGet->Param.RssiFreeThreshold = Nvm.RegionGroup2.RssiFreeThreshold;
+ 80106a0:	4b0c      	ldr	r3, [pc, #48]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 80106a2:	f9b3 374c 	ldrsh.w	r3, [r3, #1868]	; 0x74c
+ 80106a6:	80a3      	strh	r3, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 80106a8:	2000      	movs	r0, #0
+ 80106aa:	e6fb      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            if( Nvm.MacGroup2.Region != LORAMAC_REGION_AS923 && Nvm.MacGroup2.Region != LORAMAC_REGION_KR920 )
+ 80106ac:	4b09      	ldr	r3, [pc, #36]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 80106ae:	f893 3048 	ldrb.w	r3, [r3, #72]	; 0x48
+ 80106b2:	b11b      	cbz	r3, 80106bc <LoRaMacMibGetRequestConfirm+0x2b8>
+ 80106b4:	2b06      	cmp	r3, #6
+ 80106b6:	d001      	beq.n	80106bc <LoRaMacMibGetRequestConfirm+0x2b8>
+                status = LORAMAC_STATUS_ERROR;
+ 80106b8:	2018      	movs	r0, #24
+ 80106ba:	e6f3      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+                mibGet->Param.CarrierSenseTime = Nvm.RegionGroup2.CarrierSenseTime;
+ 80106bc:	4b05      	ldr	r3, [pc, #20]	; (80106d4 <LoRaMacMibGetRequestConfirm+0x2d0>)
+ 80106be:	f8d3 3750 	ldr.w	r3, [r3, #1872]	; 0x750
+ 80106c2:	6063      	str	r3, [r4, #4]
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 80106c4:	2000      	movs	r0, #0
+ 80106c6:	e6ed      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+            status = LoRaMacClassBMibGetRequestConfirm( mibGet );
+ 80106c8:	4620      	mov	r0, r4
+ 80106ca:	f000 fd5f 	bl	801118c <LoRaMacClassBMibGetRequestConfirm>
+            break;
+ 80106ce:	e6e9      	b.n	80104a4 <LoRaMacMibGetRequestConfirm+0xa0>
+        return LORAMAC_STATUS_PARAMETER_INVALID;
+ 80106d0:	2003      	movs	r0, #3
+}
+ 80106d2:	4770      	bx	lr
+ 80106d4:	20001870 	.word	0x20001870
+ 80106d8:	200018dc 	.word	0x200018dc
+ 80106dc:	20001924 	.word	0x20001924
+ 80106e0:	200018e4 	.word	0x200018e4
+ 80106e4:	2000192c 	.word	0x2000192c
+ 80106e8:	20001100 	.word	0x20001100
+
+080106ec <LoRaMacMibSetRequestConfirm>:
+
+LoRaMacStatus_t LoRaMacMibSetRequestConfirm( MibRequestConfirm_t* mibSet )
+{
+ 80106ec:	b530      	push	{r4, r5, lr}
+ 80106ee:	b085      	sub	sp, #20
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+    ChanMaskSetParams_t chanMaskSet;
+    VerifyParams_t verify;
+
+    if( mibSet == NULL )
+ 80106f0:	2800      	cmp	r0, #0
+ 80106f2:	f000 829e 	beq.w	8010c32 <LoRaMacMibSetRequestConfirm+0x546>
+ 80106f6:	4605      	mov	r5, r0
+    {
+        return LORAMAC_STATUS_PARAMETER_INVALID;
+    }
+    if( ( MacCtx.MacState & LORAMAC_TX_RUNNING ) == LORAMAC_TX_RUNNING )
+ 80106f8:	4b9f      	ldr	r3, [pc, #636]	; (8010978 <LoRaMacMibSetRequestConfirm+0x28c>)
+ 80106fa:	f8d3 3340 	ldr.w	r3, [r3, #832]	; 0x340
+ 80106fe:	f013 0f02 	tst.w	r3, #2
+ 8010702:	f040 8298 	bne.w	8010c36 <LoRaMacMibSetRequestConfirm+0x54a>
+    {
+        return LORAMAC_STATUS_BUSY;
+    }
+
+    switch( mibSet->Type )
+ 8010706:	7804      	ldrb	r4, [r0, #0]
+ 8010708:	2c3f      	cmp	r4, #63	; 0x3f
+ 801070a:	f200 828e 	bhi.w	8010c2a <LoRaMacMibSetRequestConfirm+0x53e>
+ 801070e:	e8df f014 	tbh	[pc, r4, lsl #1]
+ 8010712:	0040      	.short	0x0040
+ 8010714:	004e0045 	.word	0x004e0045
+ 8010718:	005f0057 	.word	0x005f0057
+ 801071c:	006b0065 	.word	0x006b0065
+ 8010720:	0087007a 	.word	0x0087007a
+ 8010724:	00a10094 	.word	0x00a10094
+ 8010728:	00bb00ae 	.word	0x00bb00ae
+ 801072c:	00d500c8 	.word	0x00d500c8
+ 8010730:	00ed00e2 	.word	0x00ed00e2
+ 8010734:	00f3028c 	.word	0x00f3028c
+ 8010738:	013d0119 	.word	0x013d0119
+ 801073c:	0195016b 	.word	0x0195016b
+ 8010740:	01a50185 	.word	0x01a50185
+ 8010744:	01b501b0 	.word	0x01b501b0
+ 8010748:	01bf01ba 	.word	0x01bf01ba
+ 801074c:	01c901c4 	.word	0x01c901c4
+ 8010750:	020c01de 	.word	0x020c01de
+ 8010754:	022101f7 	.word	0x022101f7
+ 8010758:	02300228 	.word	0x02300228
+ 801075c:	023c0236 	.word	0x023c0236
+ 8010760:	0240028c 	.word	0x0240028c
+ 8010764:	028c028c 	.word	0x028c028c
+ 8010768:	028c028c 	.word	0x028c028c
+ 801076c:	028c028c 	.word	0x028c028c
+ 8010770:	028c028c 	.word	0x028c028c
+ 8010774:	028c028c 	.word	0x028c028c
+ 8010778:	028c028c 	.word	0x028c028c
+ 801077c:	028c028c 	.word	0x028c028c
+ 8010780:	028c028c 	.word	0x028c028c
+ 8010784:	02570251 	.word	0x02570251
+ 8010788:	0263025d 	.word	0x0263025d
+ 801078c:	026f0269 	.word	0x026f0269
+ 8010790:	027e      	.short	0x027e
+    {
+        case MIB_DEVICE_CLASS:
+        {
+            status = SwitchClass( mibSet->Param.Class );
+ 8010792:	7900      	ldrb	r0, [r0, #4]
+ 8010794:	f7ff f902 	bl	800f99c <SwitchClass>
+ 8010798:	4604      	mov	r4, r0
+            break;
+ 801079a:	e24d      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+        }
+        case MIB_NETWORK_ACTIVATION:
+        {
+            if( mibSet->Param.NetworkActivation != ACTIVATION_TYPE_OTAA  )
+ 801079c:	7903      	ldrb	r3, [r0, #4]
+ 801079e:	2b02      	cmp	r3, #2
+ 80107a0:	f000 824d 	beq.w	8010c3e <LoRaMacMibSetRequestConfirm+0x552>
+            {
+                Nvm.MacGroup2.NetworkActivation = mibSet->Param.NetworkActivation;
+ 80107a4:	4a75      	ldr	r2, [pc, #468]	; (801097c <LoRaMacMibSetRequestConfirm+0x290>)
+ 80107a6:	f882 312c 	strb.w	r3, [r2, #300]	; 0x12c
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 80107aa:	2400      	movs	r4, #0
+ 80107ac:	e244      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+            }
+            break;
+        }
+        case MIB_DEV_EUI:
+        {
+            if( SecureElementSetDevEui( mibSet->Param.DevEui ) != SECURE_ELEMENT_SUCCESS )
+ 80107ae:	6840      	ldr	r0, [r0, #4]
+ 80107b0:	f003 fdaa 	bl	8014308 <SecureElementSetDevEui>
+ 80107b4:	4604      	mov	r4, r0
+ 80107b6:	2800      	cmp	r0, #0
+ 80107b8:	f000 823e 	beq.w	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+            {
+                status = LORAMAC_STATUS_PARAMETER_INVALID;
+ 80107bc:	2403      	movs	r4, #3
+ 80107be:	e23b      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+            }
+            break;
+        }
+        case MIB_JOIN_EUI:
+        {
+            if( SecureElementSetJoinEui( mibSet->Param.JoinEui ) != SECURE_ELEMENT_SUCCESS )
+ 80107c0:	6840      	ldr	r0, [r0, #4]
+ 80107c2:	f003 fdbd 	bl	8014340 <SecureElementSetJoinEui>
+ 80107c6:	2800      	cmp	r0, #0
+ 80107c8:	f040 8236 	bne.w	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 80107cc:	4604      	mov	r4, r0
+ 80107ce:	e233      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+            }
+            break;
+        }
+        case MIB_ADR:
+        {
+            Nvm.MacGroup2.AdrCtrlOn = mibSet->Param.AdrEnable;
+ 80107d0:	7902      	ldrb	r2, [r0, #4]
+ 80107d2:	4b6a      	ldr	r3, [pc, #424]	; (801097c <LoRaMacMibSetRequestConfirm+0x290>)
+ 80107d4:	f883 211a 	strb.w	r2, [r3, #282]	; 0x11a
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 80107d8:	2400      	movs	r4, #0
+            break;
+ 80107da:	e22d      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+        }
+        case MIB_NET_ID:
+        {
+            Nvm.MacGroup2.NetID = mibSet->Param.NetID;
+ 80107dc:	6842      	ldr	r2, [r0, #4]
+ 80107de:	4b67      	ldr	r3, [pc, #412]	; (801097c <LoRaMacMibSetRequestConfirm+0x290>)
+ 80107e0:	f8c3 20e0 	str.w	r2, [r3, #224]	; 0xe0
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 80107e4:	2400      	movs	r4, #0
+            break;
+ 80107e6:	e227      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+        }
+        case MIB_DEV_ADDR:
+        {
+            if(SecureElementSetDevAddr( Nvm.MacGroup2.NetworkActivation, mibSet->Param.DevAddr ) != SECURE_ELEMENT_SUCCESS )
+ 80107e8:	6841      	ldr	r1, [r0, #4]
+ 80107ea:	4b64      	ldr	r3, [pc, #400]	; (801097c <LoRaMacMibSetRequestConfirm+0x290>)
+ 80107ec:	f893 012c 	ldrb.w	r0, [r3, #300]	; 0x12c
+ 80107f0:	f003 fdc4 	bl	801437c <SecureElementSetDevAddr>
+ 80107f4:	4604      	mov	r4, r0
+ 80107f6:	2800      	cmp	r0, #0
+ 80107f8:	f040 8223 	bne.w	8010c42 <LoRaMacMibSetRequestConfirm+0x556>
+                status = LORAMAC_STATUS_PARAMETER_INVALID;
+            }
+            else
+            {
+                /* Update Nvm.MacGroup2.devAdr to handle set/get sequence */
+                Nvm.MacGroup2.DevAddr = mibSet->Param.DevAddr;
+ 80107fc:	686a      	ldr	r2, [r5, #4]
+ 80107fe:	4b5f      	ldr	r3, [pc, #380]	; (801097c <LoRaMacMibSetRequestConfirm+0x290>)
+ 8010800:	f8c3 20e4 	str.w	r2, [r3, #228]	; 0xe4
+ 8010804:	e218      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+            }
+            break;
+        }
+        case MIB_APP_KEY:
+        {
+            if( mibSet->Param.AppKey != NULL )
+ 8010806:	6841      	ldr	r1, [r0, #4]
+ 8010808:	2900      	cmp	r1, #0
+ 801080a:	f000 821c 	beq.w	8010c46 <LoRaMacMibSetRequestConfirm+0x55a>
+            {
+                if( LORAMAC_CRYPTO_SUCCESS != LoRaMacCryptoSetKey( APP_KEY, mibSet->Param.AppKey ) )
+ 801080e:	2000      	movs	r0, #0
+ 8010810:	f001 fa9a 	bl	8011d48 <LoRaMacCryptoSetKey>
+ 8010814:	4604      	mov	r4, r0
+ 8010816:	2800      	cmp	r0, #0
+ 8010818:	f000 820e 	beq.w	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                {
+                    return LORAMAC_STATUS_CRYPTO_ERROR;
+ 801081c:	2411      	movs	r4, #17
+ 801081e:	e20b      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+            }
+            break;
+        }
+        case MIB_NWK_KEY:
+        {
+            if( mibSet->Param.NwkKey != NULL )
+ 8010820:	6841      	ldr	r1, [r0, #4]
+ 8010822:	2900      	cmp	r1, #0
+ 8010824:	f000 8211 	beq.w	8010c4a <LoRaMacMibSetRequestConfirm+0x55e>
+            {
+                if( LORAMAC_CRYPTO_SUCCESS != LoRaMacCryptoSetKey( NWK_KEY, mibSet->Param.NwkKey ) )
+ 8010828:	2001      	movs	r0, #1
+ 801082a:	f001 fa8d 	bl	8011d48 <LoRaMacCryptoSetKey>
+ 801082e:	4604      	mov	r4, r0
+ 8010830:	2800      	cmp	r0, #0
+ 8010832:	f000 8201 	beq.w	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                {
+                    return LORAMAC_STATUS_CRYPTO_ERROR;
+ 8010836:	2411      	movs	r4, #17
+ 8010838:	e1fe      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+            break;
+        }
+#else
+        case MIB_NWK_S_KEY:
+        {
+            if( mibSet->Param.NwkSKey != NULL )
+ 801083a:	6841      	ldr	r1, [r0, #4]
+ 801083c:	2900      	cmp	r1, #0
+ 801083e:	f000 8206 	beq.w	8010c4e <LoRaMacMibSetRequestConfirm+0x562>
+            {
+                if( LORAMAC_CRYPTO_SUCCESS != LoRaMacCryptoSetKey( NWK_S_KEY, mibSet->Param.NwkSKey ) )
+ 8010842:	2008      	movs	r0, #8
+ 8010844:	f001 fa80 	bl	8011d48 <LoRaMacCryptoSetKey>
+ 8010848:	4604      	mov	r4, r0
+ 801084a:	2800      	cmp	r0, #0
+ 801084c:	f000 81f4 	beq.w	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                {
+                    return LORAMAC_STATUS_CRYPTO_ERROR;
+ 8010850:	2411      	movs	r4, #17
+ 8010852:	e1f1      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+            break;
+        }
+#endif /* LORAMAC_VERSION */
+        case MIB_APP_S_KEY:
+        {
+            if( mibSet->Param.AppSKey != NULL )
+ 8010854:	6841      	ldr	r1, [r0, #4]
+ 8010856:	2900      	cmp	r1, #0
+ 8010858:	f000 81fb 	beq.w	8010c52 <LoRaMacMibSetRequestConfirm+0x566>
+            {
+                if( LORAMAC_CRYPTO_SUCCESS != LoRaMacCryptoSetKey( APP_S_KEY, mibSet->Param.AppSKey ) )
+ 801085c:	2009      	movs	r0, #9
+ 801085e:	f001 fa73 	bl	8011d48 <LoRaMacCryptoSetKey>
+ 8010862:	4604      	mov	r4, r0
+ 8010864:	2800      	cmp	r0, #0
+ 8010866:	f000 81e7 	beq.w	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                {
+                    return LORAMAC_STATUS_CRYPTO_ERROR;
+ 801086a:	2411      	movs	r4, #17
+ 801086c:	e1e4      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+            }
+            break;
+        }
+        case MIB_MC_KE_KEY:
+        {
+            if( mibSet->Param.McKEKey != NULL )
+ 801086e:	6841      	ldr	r1, [r0, #4]
+ 8010870:	2900      	cmp	r1, #0
+ 8010872:	f000 81f0 	beq.w	8010c56 <LoRaMacMibSetRequestConfirm+0x56a>
+            {
+                if( LORAMAC_CRYPTO_SUCCESS != LoRaMacCryptoSetKey( MC_KE_KEY, mibSet->Param.McKEKey ) )
+ 8010876:	200c      	movs	r0, #12
+ 8010878:	f001 fa66 	bl	8011d48 <LoRaMacCryptoSetKey>
+ 801087c:	4604      	mov	r4, r0
+ 801087e:	2800      	cmp	r0, #0
+ 8010880:	f000 81da 	beq.w	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                {
+                    return LORAMAC_STATUS_CRYPTO_ERROR;
+ 8010884:	2411      	movs	r4, #17
+ 8010886:	e1d7      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+            break;
+        }
+#if ( LORAMAC_MAX_MC_CTX > 0 )
+        case MIB_MC_KEY_0:
+        {
+            if( mibSet->Param.McKey0 != NULL )
+ 8010888:	6841      	ldr	r1, [r0, #4]
+ 801088a:	2900      	cmp	r1, #0
+ 801088c:	f000 81e5 	beq.w	8010c5a <LoRaMacMibSetRequestConfirm+0x56e>
+            {
+                if( LORAMAC_CRYPTO_SUCCESS != LoRaMacCryptoSetKey( MC_KEY_0, mibSet->Param.McKey0 ) )
+ 8010890:	200d      	movs	r0, #13
+ 8010892:	f001 fa59 	bl	8011d48 <LoRaMacCryptoSetKey>
+ 8010896:	4604      	mov	r4, r0
+ 8010898:	2800      	cmp	r0, #0
+ 801089a:	f000 81cd 	beq.w	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                {
+                    return LORAMAC_STATUS_CRYPTO_ERROR;
+ 801089e:	2411      	movs	r4, #17
+ 80108a0:	e1ca      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+            }
+            break;
+        }
+        case MIB_MC_APP_S_KEY_0:
+        {
+            if( mibSet->Param.McAppSKey0 != NULL )
+ 80108a2:	6841      	ldr	r1, [r0, #4]
+ 80108a4:	2900      	cmp	r1, #0
+ 80108a6:	f000 81da 	beq.w	8010c5e <LoRaMacMibSetRequestConfirm+0x572>
+            {
+                if( LORAMAC_CRYPTO_SUCCESS != LoRaMacCryptoSetKey( MC_APP_S_KEY_0, mibSet->Param.McAppSKey0 ) )
+ 80108aa:	200e      	movs	r0, #14
+ 80108ac:	f001 fa4c 	bl	8011d48 <LoRaMacCryptoSetKey>
+ 80108b0:	4604      	mov	r4, r0
+ 80108b2:	2800      	cmp	r0, #0
+ 80108b4:	f000 81c0 	beq.w	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                {
+                    return LORAMAC_STATUS_CRYPTO_ERROR;
+ 80108b8:	2411      	movs	r4, #17
+ 80108ba:	e1bd      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+            }
+            break;
+        }
+        case MIB_MC_NWK_S_KEY_0:
+        {
+            if( mibSet->Param.McNwkSKey0 != NULL )
+ 80108bc:	6841      	ldr	r1, [r0, #4]
+ 80108be:	2900      	cmp	r1, #0
+ 80108c0:	f000 81cf 	beq.w	8010c62 <LoRaMacMibSetRequestConfirm+0x576>
+            {
+                if( LORAMAC_CRYPTO_SUCCESS != LoRaMacCryptoSetKey( MC_NWK_S_KEY_0, mibSet->Param.McNwkSKey0 ) )
+ 80108c4:	200f      	movs	r0, #15
+ 80108c6:	f001 fa3f 	bl	8011d48 <LoRaMacCryptoSetKey>
+ 80108ca:	4604      	mov	r4, r0
+ 80108cc:	2800      	cmp	r0, #0
+ 80108ce:	f000 81b3 	beq.w	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                {
+                    return LORAMAC_STATUS_CRYPTO_ERROR;
+ 80108d2:	2411      	movs	r4, #17
+ 80108d4:	e1b0      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+            break;
+        }
+#endif /* LORAMAC_MAX_MC_CTX > 3 */
+        case MIB_PUBLIC_NETWORK:
+        {
+            Nvm.MacGroup2.PublicNetwork = mibSet->Param.EnablePublicNetwork;
+ 80108d6:	7900      	ldrb	r0, [r0, #4]
+ 80108d8:	4b28      	ldr	r3, [pc, #160]	; (801097c <LoRaMacMibSetRequestConfirm+0x290>)
+ 80108da:	f883 0119 	strb.w	r0, [r3, #281]	; 0x119
+            Radio.SetPublicNetwork( Nvm.MacGroup2.PublicNetwork );
+ 80108de:	4c28      	ldr	r4, [pc, #160]	; (8010980 <LoRaMacMibSetRequestConfirm+0x294>)
+ 80108e0:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 80108e2:	4798      	blx	r3
+            Radio.Sleep( );
+ 80108e4:	6ae3      	ldr	r3, [r4, #44]	; 0x2c
+ 80108e6:	4798      	blx	r3
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 80108e8:	2400      	movs	r4, #0
+            break;
+ 80108ea:	e1a5      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+        }
+        case MIB_REPEATER_SUPPORT:
+        {
+            Nvm.MacGroup2.MacParams.RepeaterSupport = mibSet->Param.EnableRepeaterSupport;
+ 80108ec:	7902      	ldrb	r2, [r0, #4]
+ 80108ee:	4b23      	ldr	r3, [pc, #140]	; (801097c <LoRaMacMibSetRequestConfirm+0x290>)
+ 80108f0:	f883 208c 	strb.w	r2, [r3, #140]	; 0x8c
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 80108f4:	2400      	movs	r4, #0
+            break;
+ 80108f6:	e19f      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+        }
+        case MIB_RX2_CHANNEL:
+        {
+            verify.DatarateParams.Datarate = mibSet->Param.Rx2Channel.Datarate;
+ 80108f8:	f990 3008 	ldrsb.w	r3, [r0, #8]
+ 80108fc:	f88d 3004 	strb.w	r3, [sp, #4]
+            verify.DatarateParams.DownlinkDwellTime = Nvm.MacGroup2.MacParams.DownlinkDwellTime;
+ 8010900:	4b1e      	ldr	r3, [pc, #120]	; (801097c <LoRaMacMibSetRequestConfirm+0x290>)
+ 8010902:	f893 207d 	ldrb.w	r2, [r3, #125]	; 0x7d
+ 8010906:	f88d 2005 	strb.w	r2, [sp, #5]
+            if( RegionVerify( Nvm.MacGroup2.Region, &verify, PHY_RX_DR ) != true )
+ 801090a:	2207      	movs	r2, #7
+ 801090c:	a901      	add	r1, sp, #4
+ 801090e:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 8010912:	f001 fc52 	bl	80121ba <RegionVerify>
+ 8010916:	b908      	cbnz	r0, 801091c <LoRaMacMibSetRequestConfirm+0x230>
+            {
+                status = LORAMAC_STATUS_PARAMETER_INVALID;
+ 8010918:	2403      	movs	r4, #3
+ 801091a:	e18d      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+            }
+            else
+            {
+                verify.Frequency = mibSet->Param.Rx2Channel.Frequency;
+ 801091c:	686b      	ldr	r3, [r5, #4]
+ 801091e:	9301      	str	r3, [sp, #4]
+                if( RegionVerify( Nvm.MacGroup2.Region, &verify, PHY_FREQUENCY ) != true )
+ 8010920:	2200      	movs	r2, #0
+ 8010922:	a901      	add	r1, sp, #4
+ 8010924:	4b15      	ldr	r3, [pc, #84]	; (801097c <LoRaMacMibSetRequestConfirm+0x290>)
+ 8010926:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 801092a:	f001 fc46 	bl	80121ba <RegionVerify>
+ 801092e:	2800      	cmp	r0, #0
+ 8010930:	f000 81a0 	beq.w	8010c74 <LoRaMacMibSetRequestConfirm+0x588>
+                {
+                    status = LORAMAC_STATUS_PARAMETER_INVALID;
+                }
+                else
+                {
+                    Nvm.MacGroup2.MacParams.Rx2Channel = mibSet->Param.Rx2Channel;
+ 8010934:	4b13      	ldr	r3, [pc, #76]	; (8010984 <LoRaMacMibSetRequestConfirm+0x298>)
+ 8010936:	3504      	adds	r5, #4
+ 8010938:	e895 0003 	ldmia.w	r5, {r0, r1}
+ 801093c:	e883 0003 	stmia.w	r3, {r0, r1}
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010940:	2400      	movs	r4, #0
+ 8010942:	e179      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+            }
+            break;
+        }
+        case MIB_RX2_DEFAULT_CHANNEL:
+        {
+            verify.DatarateParams.Datarate = mibSet->Param.Rx2Channel.Datarate;
+ 8010944:	f990 3008 	ldrsb.w	r3, [r0, #8]
+ 8010948:	f88d 3004 	strb.w	r3, [sp, #4]
+            verify.DatarateParams.DownlinkDwellTime = Nvm.MacGroup2.MacParams.DownlinkDwellTime;
+ 801094c:	4b0b      	ldr	r3, [pc, #44]	; (801097c <LoRaMacMibSetRequestConfirm+0x290>)
+ 801094e:	f893 207d 	ldrb.w	r2, [r3, #125]	; 0x7d
+ 8010952:	f88d 2005 	strb.w	r2, [sp, #5]
+
+            if( RegionVerify( Nvm.MacGroup2.Region, &verify, PHY_RX_DR ) == true )
+ 8010956:	2207      	movs	r2, #7
+ 8010958:	a901      	add	r1, sp, #4
+ 801095a:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 801095e:	f001 fc2c 	bl	80121ba <RegionVerify>
+ 8010962:	2800      	cmp	r0, #0
+ 8010964:	f000 8188 	beq.w	8010c78 <LoRaMacMibSetRequestConfirm+0x58c>
+            {
+                Nvm.MacGroup2.MacParamsDefaults.Rx2Channel = mibSet->Param.Rx2DefaultChannel;
+ 8010968:	4b07      	ldr	r3, [pc, #28]	; (8010988 <LoRaMacMibSetRequestConfirm+0x29c>)
+ 801096a:	3504      	adds	r5, #4
+ 801096c:	e895 0003 	ldmia.w	r5, {r0, r1}
+ 8010970:	e883 0003 	stmia.w	r3, {r0, r1}
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010974:	2400      	movs	r4, #0
+ 8010976:	e15f      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+ 8010978:	20001fe4 	.word	0x20001fe4
+ 801097c:	20001870 	.word	0x20001870
+ 8010980:	08018cb4 	.word	0x08018cb4
+ 8010984:	200018dc 	.word	0x200018dc
+ 8010988:	20001924 	.word	0x20001924
+            }
+            break;
+        }
+        case MIB_RXC_CHANNEL:
+        {
+            verify.DatarateParams.Datarate = mibSet->Param.RxCChannel.Datarate;
+ 801098c:	f990 3008 	ldrsb.w	r3, [r0, #8]
+ 8010990:	f88d 3004 	strb.w	r3, [sp, #4]
+            verify.DatarateParams.DownlinkDwellTime = Nvm.MacGroup2.MacParams.DownlinkDwellTime;
+ 8010994:	4bb4      	ldr	r3, [pc, #720]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010996:	f893 207d 	ldrb.w	r2, [r3, #125]	; 0x7d
+ 801099a:	f88d 2005 	strb.w	r2, [sp, #5]
+
+            if( RegionVerify( Nvm.MacGroup2.Region, &verify, PHY_RX_DR ) == true )
+ 801099e:	2207      	movs	r2, #7
+ 80109a0:	a901      	add	r1, sp, #4
+ 80109a2:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 80109a6:	f001 fc08 	bl	80121ba <RegionVerify>
+ 80109aa:	2800      	cmp	r0, #0
+ 80109ac:	f000 8166 	beq.w	8010c7c <LoRaMacMibSetRequestConfirm+0x590>
+            {
+                Nvm.MacGroup2.MacParams.RxCChannel = mibSet->Param.RxCChannel;
+ 80109b0:	4bad      	ldr	r3, [pc, #692]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 80109b2:	f103 0274 	add.w	r2, r3, #116	; 0x74
+ 80109b6:	3504      	adds	r5, #4
+ 80109b8:	e895 0003 	ldmia.w	r5, {r0, r1}
+ 80109bc:	e882 0003 	stmia.w	r2, {r0, r1}
+
+                if( ( Nvm.MacGroup2.DeviceClass == CLASS_C ) && ( Nvm.MacGroup2.NetworkActivation != ACTIVATION_TYPE_NONE ) )
+ 80109c0:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 80109c4:	2b02      	cmp	r3, #2
+ 80109c6:	d001      	beq.n	80109cc <LoRaMacMibSetRequestConfirm+0x2e0>
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 80109c8:	2400      	movs	r4, #0
+ 80109ca:	e135      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                if( ( Nvm.MacGroup2.DeviceClass == CLASS_C ) && ( Nvm.MacGroup2.NetworkActivation != ACTIVATION_TYPE_NONE ) )
+ 80109cc:	f1a2 0374 	sub.w	r3, r2, #116	; 0x74
+ 80109d0:	f893 412c 	ldrb.w	r4, [r3, #300]	; 0x12c
+ 80109d4:	2c00      	cmp	r4, #0
+ 80109d6:	f000 812f 	beq.w	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                {
+                    // We can only compute the RX window parameters directly, if we are already
+                    // in class c mode and joined. We cannot setup an RX window in case of any other
+                    // class type.
+                    // Set the radio into sleep mode in case we are still in RX mode
+                    Radio.Sleep( );
+ 80109da:	4ba4      	ldr	r3, [pc, #656]	; (8010c6c <LoRaMacMibSetRequestConfirm+0x580>)
+ 80109dc:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 80109de:	4798      	blx	r3
+
+                    OpenContinuousRxCWindow( );
+ 80109e0:	f7fe fd20 	bl	800f424 <OpenContinuousRxCWindow>
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 80109e4:	2400      	movs	r4, #0
+ 80109e6:	e127      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+            }
+            break;
+        }
+        case MIB_RXC_DEFAULT_CHANNEL:
+        {
+            verify.DatarateParams.Datarate = mibSet->Param.RxCChannel.Datarate;
+ 80109e8:	f990 3008 	ldrsb.w	r3, [r0, #8]
+ 80109ec:	f88d 3004 	strb.w	r3, [sp, #4]
+            verify.DatarateParams.DownlinkDwellTime = Nvm.MacGroup2.MacParams.DownlinkDwellTime;
+ 80109f0:	4b9d      	ldr	r3, [pc, #628]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 80109f2:	f893 207d 	ldrb.w	r2, [r3, #125]	; 0x7d
+ 80109f6:	f88d 2005 	strb.w	r2, [sp, #5]
+
+            if( RegionVerify( Nvm.MacGroup2.Region, &verify, PHY_RX_DR ) == true )
+ 80109fa:	2207      	movs	r2, #7
+ 80109fc:	a901      	add	r1, sp, #4
+ 80109fe:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 8010a02:	f001 fbda 	bl	80121ba <RegionVerify>
+ 8010a06:	2800      	cmp	r0, #0
+ 8010a08:	f000 813a 	beq.w	8010c80 <LoRaMacMibSetRequestConfirm+0x594>
+            {
+                Nvm.MacGroup2.MacParamsDefaults.RxCChannel = mibSet->Param.RxCDefaultChannel;
+ 8010a0c:	4b98      	ldr	r3, [pc, #608]	; (8010c70 <LoRaMacMibSetRequestConfirm+0x584>)
+ 8010a0e:	3504      	adds	r5, #4
+ 8010a10:	e895 0003 	ldmia.w	r5, {r0, r1}
+ 8010a14:	e883 0003 	stmia.w	r3, {r0, r1}
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010a18:	2400      	movs	r4, #0
+ 8010a1a:	e10d      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+            }
+            break;
+        }
+        case MIB_CHANNELS_DEFAULT_MASK:
+        {
+            chanMaskSet.ChannelsMaskIn = mibSet->Param.ChannelsDefaultMask;
+ 8010a1c:	6843      	ldr	r3, [r0, #4]
+ 8010a1e:	9302      	str	r3, [sp, #8]
+            chanMaskSet.ChannelsMaskType = CHANNELS_DEFAULT_MASK;
+ 8010a20:	2301      	movs	r3, #1
+ 8010a22:	f88d 300c 	strb.w	r3, [sp, #12]
+
+            if( RegionChanMaskSet( Nvm.MacGroup2.Region, &chanMaskSet ) == false )
+ 8010a26:	a902      	add	r1, sp, #8
+ 8010a28:	4b8f      	ldr	r3, [pc, #572]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010a2a:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 8010a2e:	f001 fbd5 	bl	80121dc <RegionChanMaskSet>
+ 8010a32:	2800      	cmp	r0, #0
+ 8010a34:	f000 8126 	beq.w	8010c84 <LoRaMacMibSetRequestConfirm+0x598>
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010a38:	2400      	movs	r4, #0
+ 8010a3a:	e0fd      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+            }
+            break;
+        }
+        case MIB_CHANNELS_MASK:
+        {
+            chanMaskSet.ChannelsMaskIn = mibSet->Param.ChannelsMask;
+ 8010a3c:	6843      	ldr	r3, [r0, #4]
+ 8010a3e:	9302      	str	r3, [sp, #8]
+            chanMaskSet.ChannelsMaskType = CHANNELS_MASK;
+ 8010a40:	2300      	movs	r3, #0
+ 8010a42:	f88d 300c 	strb.w	r3, [sp, #12]
+
+            if( RegionChanMaskSet( Nvm.MacGroup2.Region, &chanMaskSet ) == false )
+ 8010a46:	a902      	add	r1, sp, #8
+ 8010a48:	4b87      	ldr	r3, [pc, #540]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010a4a:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 8010a4e:	f001 fbc5 	bl	80121dc <RegionChanMaskSet>
+ 8010a52:	2800      	cmp	r0, #0
+ 8010a54:	f000 8118 	beq.w	8010c88 <LoRaMacMibSetRequestConfirm+0x59c>
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010a58:	2400      	movs	r4, #0
+ 8010a5a:	e0ed      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+            }
+            break;
+        }
+        case MIB_CHANNELS_NB_TRANS:
+        {
+            if( ( mibSet->Param.ChannelsNbTrans >= 1 ) &&
+ 8010a5c:	7902      	ldrb	r2, [r0, #4]
+ 8010a5e:	1e53      	subs	r3, r2, #1
+ 8010a60:	b2db      	uxtb	r3, r3
+ 8010a62:	2b0e      	cmp	r3, #14
+ 8010a64:	f200 8112 	bhi.w	8010c8c <LoRaMacMibSetRequestConfirm+0x5a0>
+                ( mibSet->Param.ChannelsNbTrans <= 15 ) )
+            {
+                Nvm.MacGroup2.MacParams.ChannelsNbTrans = mibSet->Param.ChannelsNbTrans;
+ 8010a68:	4b7f      	ldr	r3, [pc, #508]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010a6a:	f883 2068 	strb.w	r2, [r3, #104]	; 0x68
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010a6e:	2400      	movs	r4, #0
+ 8010a70:	e0e2      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+            }
+            break;
+        }
+        case MIB_MAX_RX_WINDOW_DURATION:
+        {
+            Nvm.MacGroup2.MacParams.MaxRxWindow = mibSet->Param.MaxRxWindow;
+ 8010a72:	6842      	ldr	r2, [r0, #4]
+ 8010a74:	4b7c      	ldr	r3, [pc, #496]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010a76:	655a      	str	r2, [r3, #84]	; 0x54
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010a78:	2400      	movs	r4, #0
+            break;
+ 8010a7a:	e0dd      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+        }
+        case MIB_RECEIVE_DELAY_1:
+        {
+            Nvm.MacGroup2.MacParams.ReceiveDelay1 = mibSet->Param.ReceiveDelay1;
+ 8010a7c:	6842      	ldr	r2, [r0, #4]
+ 8010a7e:	4b7a      	ldr	r3, [pc, #488]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010a80:	659a      	str	r2, [r3, #88]	; 0x58
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010a82:	2400      	movs	r4, #0
+            break;
+ 8010a84:	e0d8      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+        }
+        case MIB_RECEIVE_DELAY_2:
+        {
+            Nvm.MacGroup2.MacParams.ReceiveDelay2 = mibSet->Param.ReceiveDelay2;
+ 8010a86:	6842      	ldr	r2, [r0, #4]
+ 8010a88:	4b77      	ldr	r3, [pc, #476]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010a8a:	65da      	str	r2, [r3, #92]	; 0x5c
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010a8c:	2400      	movs	r4, #0
+            break;
+ 8010a8e:	e0d3      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+        }
+        case MIB_JOIN_ACCEPT_DELAY_1:
+        {
+            Nvm.MacGroup2.MacParams.JoinAcceptDelay1 = mibSet->Param.JoinAcceptDelay1;
+ 8010a90:	6842      	ldr	r2, [r0, #4]
+ 8010a92:	4b75      	ldr	r3, [pc, #468]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010a94:	661a      	str	r2, [r3, #96]	; 0x60
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010a96:	2400      	movs	r4, #0
+            break;
+ 8010a98:	e0ce      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+        }
+        case MIB_JOIN_ACCEPT_DELAY_2:
+        {
+            Nvm.MacGroup2.MacParams.JoinAcceptDelay2 = mibSet->Param.JoinAcceptDelay2;
+ 8010a9a:	6842      	ldr	r2, [r0, #4]
+ 8010a9c:	4b72      	ldr	r3, [pc, #456]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010a9e:	665a      	str	r2, [r3, #100]	; 0x64
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010aa0:	2400      	movs	r4, #0
+            break;
+ 8010aa2:	e0c9      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+        }
+        case MIB_CHANNELS_DEFAULT_DATARATE:
+        {
+            verify.DatarateParams.Datarate = mibSet->Param.ChannelsDefaultDatarate;
+ 8010aa4:	f990 3004 	ldrsb.w	r3, [r0, #4]
+ 8010aa8:	f88d 3004 	strb.w	r3, [sp, #4]
+
+            if( RegionVerify( Nvm.MacGroup2.Region, &verify, PHY_DEF_TX_DR ) == true )
+ 8010aac:	2206      	movs	r2, #6
+ 8010aae:	a901      	add	r1, sp, #4
+ 8010ab0:	4b6d      	ldr	r3, [pc, #436]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010ab2:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 8010ab6:	f001 fb80 	bl	80121ba <RegionVerify>
+ 8010aba:	2800      	cmp	r0, #0
+ 8010abc:	f000 80e8 	beq.w	8010c90 <LoRaMacMibSetRequestConfirm+0x5a4>
+            {
+                Nvm.MacGroup2.ChannelsDatarateDefault = verify.DatarateParams.Datarate;
+ 8010ac0:	f99d 2004 	ldrsb.w	r2, [sp, #4]
+ 8010ac4:	4b68      	ldr	r3, [pc, #416]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010ac6:	f883 20dd 	strb.w	r2, [r3, #221]	; 0xdd
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010aca:	2400      	movs	r4, #0
+ 8010acc:	e0b4      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+            }
+            break;
+        }
+        case MIB_CHANNELS_DATARATE:
+        {
+            verify.DatarateParams.Datarate = mibSet->Param.ChannelsDatarate;
+ 8010ace:	f990 3004 	ldrsb.w	r3, [r0, #4]
+ 8010ad2:	f88d 3004 	strb.w	r3, [sp, #4]
+            verify.DatarateParams.UplinkDwellTime = Nvm.MacGroup2.MacParams.UplinkDwellTime;
+ 8010ad6:	4b64      	ldr	r3, [pc, #400]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010ad8:	f893 207c 	ldrb.w	r2, [r3, #124]	; 0x7c
+ 8010adc:	f88d 2006 	strb.w	r2, [sp, #6]
+
+            if( RegionVerify( Nvm.MacGroup2.Region, &verify, PHY_TX_DR ) == true )
+ 8010ae0:	2205      	movs	r2, #5
+ 8010ae2:	a901      	add	r1, sp, #4
+ 8010ae4:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 8010ae8:	f001 fb67 	bl	80121ba <RegionVerify>
+ 8010aec:	2800      	cmp	r0, #0
+ 8010aee:	f000 80d1 	beq.w	8010c94 <LoRaMacMibSetRequestConfirm+0x5a8>
+            {
+                Nvm.MacGroup1.ChannelsDatarate = verify.DatarateParams.Datarate;
+ 8010af2:	f99d 2004 	ldrsb.w	r2, [sp, #4]
+ 8010af6:	4b5c      	ldr	r3, [pc, #368]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010af8:	f883 2039 	strb.w	r2, [r3, #57]	; 0x39
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010afc:	2400      	movs	r4, #0
+ 8010afe:	e09b      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+            }
+            break;
+        }
+        case MIB_CHANNELS_DEFAULT_TX_POWER:
+        {
+            verify.TxPower = mibSet->Param.ChannelsDefaultTxPower;
+ 8010b00:	f990 3004 	ldrsb.w	r3, [r0, #4]
+ 8010b04:	f88d 3004 	strb.w	r3, [sp, #4]
+
+            if( RegionVerify( Nvm.MacGroup2.Region, &verify, PHY_DEF_TX_POWER ) == true )
+ 8010b08:	220a      	movs	r2, #10
+ 8010b0a:	a901      	add	r1, sp, #4
+ 8010b0c:	4b56      	ldr	r3, [pc, #344]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010b0e:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 8010b12:	f001 fb52 	bl	80121ba <RegionVerify>
+ 8010b16:	2800      	cmp	r0, #0
+ 8010b18:	f000 80be 	beq.w	8010c98 <LoRaMacMibSetRequestConfirm+0x5ac>
+            {
+                Nvm.MacGroup2.ChannelsTxPowerDefault = verify.TxPower;
+ 8010b1c:	f99d 2004 	ldrsb.w	r2, [sp, #4]
+ 8010b20:	4b51      	ldr	r3, [pc, #324]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010b22:	f883 20dc 	strb.w	r2, [r3, #220]	; 0xdc
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010b26:	2400      	movs	r4, #0
+ 8010b28:	e086      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+            }
+            break;
+        }
+        case MIB_CHANNELS_TX_POWER:
+        {
+            verify.TxPower = mibSet->Param.ChannelsTxPower;
+ 8010b2a:	f990 3004 	ldrsb.w	r3, [r0, #4]
+ 8010b2e:	f88d 3004 	strb.w	r3, [sp, #4]
+
+            if( RegionVerify( Nvm.MacGroup2.Region, &verify, PHY_TX_POWER ) == true )
+ 8010b32:	2209      	movs	r2, #9
+ 8010b34:	a901      	add	r1, sp, #4
+ 8010b36:	4b4c      	ldr	r3, [pc, #304]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010b38:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 8010b3c:	f001 fb3d 	bl	80121ba <RegionVerify>
+ 8010b40:	2800      	cmp	r0, #0
+ 8010b42:	f000 80ab 	beq.w	8010c9c <LoRaMacMibSetRequestConfirm+0x5b0>
+            {
+                Nvm.MacGroup1.ChannelsTxPower = verify.TxPower;
+ 8010b46:	f99d 2004 	ldrsb.w	r2, [sp, #4]
+ 8010b4a:	4b47      	ldr	r3, [pc, #284]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010b4c:	f883 2038 	strb.w	r2, [r3, #56]	; 0x38
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010b50:	2400      	movs	r4, #0
+ 8010b52:	e071      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+            }
+            break;
+        }
+        case MIB_SYSTEM_MAX_RX_ERROR:
+        {
+            Nvm.MacGroup2.MacParams.SystemMaxRxError = Nvm.MacGroup2.MacParamsDefaults.SystemMaxRxError = mibSet->Param.SystemMaxRxError;
+ 8010b54:	6842      	ldr	r2, [r0, #4]
+ 8010b56:	4b44      	ldr	r3, [pc, #272]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010b58:	f8c3 2094 	str.w	r2, [r3, #148]	; 0x94
+ 8010b5c:	64da      	str	r2, [r3, #76]	; 0x4c
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010b5e:	2400      	movs	r4, #0
+            break;
+ 8010b60:	e06a      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+        }
+        case MIB_MIN_RX_SYMBOLS:
+        {
+            Nvm.MacGroup2.MacParams.MinRxSymbols = Nvm.MacGroup2.MacParamsDefaults.MinRxSymbols = mibSet->Param.MinRxSymbols;
+ 8010b62:	7902      	ldrb	r2, [r0, #4]
+ 8010b64:	4b40      	ldr	r3, [pc, #256]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010b66:	f883 2098 	strb.w	r2, [r3, #152]	; 0x98
+ 8010b6a:	f883 2050 	strb.w	r2, [r3, #80]	; 0x50
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010b6e:	2400      	movs	r4, #0
+            break;
+ 8010b70:	e062      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+        }
+        case MIB_ANTENNA_GAIN:
+        {
+            Nvm.MacGroup2.MacParams.AntennaGain = mibSet->Param.AntennaGain;
+ 8010b72:	6842      	ldr	r2, [r0, #4]
+ 8010b74:	4b3c      	ldr	r3, [pc, #240]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010b76:	f8c3 2084 	str.w	r2, [r3, #132]	; 0x84
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010b7a:	2400      	movs	r4, #0
+            break;
+ 8010b7c:	e05c      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+        }
+        case MIB_DEFAULT_ANTENNA_GAIN:
+        {
+            Nvm.MacGroup2.MacParamsDefaults.AntennaGain = mibSet->Param.DefaultAntennaGain;
+ 8010b7e:	6842      	ldr	r2, [r0, #4]
+ 8010b80:	4b39      	ldr	r3, [pc, #228]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010b82:	f8c3 20cc 	str.w	r2, [r3, #204]	; 0xcc
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010b86:	2400      	movs	r4, #0
+            break;
+ 8010b88:	e056      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+        }
+        case MIB_NVM_CTXS:
+        {
+            status = RestoreNvmData( );
+ 8010b8a:	f7fe fd53 	bl	800f634 <RestoreNvmData>
+ 8010b8e:	4604      	mov	r4, r0
+            break;
+ 8010b90:	e052      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+        }
+        case MIB_ABP_LORAWAN_VERSION:
+        {
+            if( mibSet->Param.AbpLrWanVersion.Fields.Minor <= 1 )
+ 8010b92:	7983      	ldrb	r3, [r0, #6]
+ 8010b94:	2b01      	cmp	r3, #1
+ 8010b96:	d901      	bls.n	8010b9c <LoRaMacMibSetRequestConfirm+0x4b0>
+                    return LORAMAC_STATUS_CRYPTO_ERROR;
+                }
+            }
+            else
+            {
+                status = LORAMAC_STATUS_PARAMETER_INVALID;
+ 8010b98:	2403      	movs	r4, #3
+ 8010b9a:	e04d      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                Nvm.MacGroup2.Version = mibSet->Param.AbpLrWanVersion;
+ 8010b9c:	6842      	ldr	r2, [r0, #4]
+ 8010b9e:	4b32      	ldr	r3, [pc, #200]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010ba0:	f8c3 2128 	str.w	r2, [r3, #296]	; 0x128
+                if( LORAMAC_CRYPTO_SUCCESS != LoRaMacCryptoSetLrWanVersion( mibSet->Param.AbpLrWanVersion ) )
+ 8010ba4:	6840      	ldr	r0, [r0, #4]
+ 8010ba6:	f000 ff71 	bl	8011a8c <LoRaMacCryptoSetLrWanVersion>
+ 8010baa:	4604      	mov	r4, r0
+ 8010bac:	2800      	cmp	r0, #0
+ 8010bae:	d043      	beq.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                    return LORAMAC_STATUS_CRYPTO_ERROR;
+ 8010bb0:	2411      	movs	r4, #17
+ 8010bb2:	e041      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+            }
+            break;
+        }
+        case MIB_RXB_C_TIMEOUT:
+        {
+            Nvm.MacGroup2.MacParams.RxBCTimeout = mibSet->Param.RxBCTimeout;
+ 8010bb4:	6842      	ldr	r2, [r0, #4]
+ 8010bb6:	4b2c      	ldr	r3, [pc, #176]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010bb8:	f8c3 2090 	str.w	r2, [r3, #144]	; 0x90
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010bbc:	2400      	movs	r4, #0
+            break;
+ 8010bbe:	e03b      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+            break;
+        }
+#endif /* LORAMAC_VERSION */
+        case MIB_ADR_ACK_LIMIT:
+        {
+            Nvm.MacGroup2.MacParams.AdrAckLimit = mibSet->Param.AdrAckLimit;
+ 8010bc0:	8882      	ldrh	r2, [r0, #4]
+ 8010bc2:	4b29      	ldr	r3, [pc, #164]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010bc4:	f8a3 2088 	strh.w	r2, [r3, #136]	; 0x88
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010bc8:	2400      	movs	r4, #0
+            break;
+ 8010bca:	e035      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+        }
+        case MIB_ADR_ACK_DELAY:
+        {
+            Nvm.MacGroup2.MacParams.AdrAckDelay = mibSet->Param.AdrAckDelay;
+ 8010bcc:	8882      	ldrh	r2, [r0, #4]
+ 8010bce:	4b26      	ldr	r3, [pc, #152]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010bd0:	f8a3 208a 	strh.w	r2, [r3, #138]	; 0x8a
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010bd4:	2400      	movs	r4, #0
+            break;
+ 8010bd6:	e02f      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+        }
+        case MIB_ADR_ACK_DEFAULT_LIMIT:
+        {
+            Nvm.MacGroup2.MacParamsDefaults.AdrAckLimit = mibSet->Param.AdrAckLimit;
+ 8010bd8:	8882      	ldrh	r2, [r0, #4]
+ 8010bda:	4b23      	ldr	r3, [pc, #140]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010bdc:	f8a3 20d0 	strh.w	r2, [r3, #208]	; 0xd0
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010be0:	2400      	movs	r4, #0
+            break;
+ 8010be2:	e029      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+        }
+        case MIB_ADR_ACK_DEFAULT_DELAY:
+        {
+            Nvm.MacGroup2.MacParamsDefaults.AdrAckDelay = mibSet->Param.AdrAckDelay;
+ 8010be4:	8882      	ldrh	r2, [r0, #4]
+ 8010be6:	4b20      	ldr	r3, [pc, #128]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010be8:	f8a3 20d2 	strh.w	r2, [r3, #210]	; 0xd2
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010bec:	2400      	movs	r4, #0
+            break;
+ 8010bee:	e023      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+        }
+        case MIB_RSSI_FREE_THRESHOLD:
+        {
+#if defined(REGION_KR920) || defined(REGION_AS923)
+            if( Nvm.MacGroup2.Region != LORAMAC_REGION_AS923 && Nvm.MacGroup2.Region != LORAMAC_REGION_KR920 )
+ 8010bf0:	4b1d      	ldr	r3, [pc, #116]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010bf2:	f893 3048 	ldrb.w	r3, [r3, #72]	; 0x48
+ 8010bf6:	b11b      	cbz	r3, 8010c00 <LoRaMacMibSetRequestConfirm+0x514>
+ 8010bf8:	2b06      	cmp	r3, #6
+ 8010bfa:	d001      	beq.n	8010c00 <LoRaMacMibSetRequestConfirm+0x514>
+            {
+                status = LORAMAC_STATUS_ERROR;
+ 8010bfc:	2418      	movs	r4, #24
+ 8010bfe:	e01b      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+            }
+            else
+            {
+                Nvm.RegionGroup2.RssiFreeThreshold = mibSet->Param.RssiFreeThreshold;
+ 8010c00:	f9b5 2004 	ldrsh.w	r2, [r5, #4]
+ 8010c04:	4b18      	ldr	r3, [pc, #96]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010c06:	f8a3 274c 	strh.w	r2, [r3, #1868]	; 0x74c
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010c0a:	2400      	movs	r4, #0
+ 8010c0c:	e014      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+            break;
+        }
+        case MIB_CARRIER_SENSE_TIME:
+        {
+#if defined(REGION_KR920) || defined(REGION_AS923)
+            if( Nvm.MacGroup2.Region != LORAMAC_REGION_AS923 && Nvm.MacGroup2.Region != LORAMAC_REGION_KR920 )
+ 8010c0e:	4b16      	ldr	r3, [pc, #88]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010c10:	f893 3048 	ldrb.w	r3, [r3, #72]	; 0x48
+ 8010c14:	b11b      	cbz	r3, 8010c1e <LoRaMacMibSetRequestConfirm+0x532>
+ 8010c16:	2b06      	cmp	r3, #6
+ 8010c18:	d001      	beq.n	8010c1e <LoRaMacMibSetRequestConfirm+0x532>
+            {
+                status = LORAMAC_STATUS_ERROR;
+ 8010c1a:	2418      	movs	r4, #24
+ 8010c1c:	e00c      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+            }
+            else
+            {
+                Nvm.RegionGroup2.CarrierSenseTime = mibSet->Param.CarrierSenseTime;
+ 8010c1e:	686a      	ldr	r2, [r5, #4]
+ 8010c20:	4b11      	ldr	r3, [pc, #68]	; (8010c68 <LoRaMacMibSetRequestConfirm+0x57c>)
+ 8010c22:	f8c3 2750 	str.w	r2, [r3, #1872]	; 0x750
+    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
+ 8010c26:	2400      	movs	r4, #0
+ 8010c28:	e006      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+#endif
+            break;
+        }
+        default:
+        {
+            status = LoRaMacMibClassBSetRequestConfirm( mibSet );
+ 8010c2a:	f000 fab1 	bl	8011190 <LoRaMacMibClassBSetRequestConfirm>
+ 8010c2e:	4604      	mov	r4, r0
+            break;
+ 8010c30:	e002      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+        return LORAMAC_STATUS_PARAMETER_INVALID;
+ 8010c32:	2403      	movs	r4, #3
+ 8010c34:	e000      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+        return LORAMAC_STATUS_BUSY;
+ 8010c36:	2401      	movs	r4, #1
+        // Handle NVM potential changes
+        MacCtx.MacFlags.Bits.NvmHandle = 1;
+    }
+#endif /* LORAMAC_VERSION */
+    return status;
+}
+ 8010c38:	4620      	mov	r0, r4
+ 8010c3a:	b005      	add	sp, #20
+ 8010c3c:	bd30      	pop	{r4, r5, pc}
+                status = LORAMAC_STATUS_PARAMETER_INVALID;
+ 8010c3e:	2403      	movs	r4, #3
+ 8010c40:	e7fa      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                status = LORAMAC_STATUS_PARAMETER_INVALID;
+ 8010c42:	2403      	movs	r4, #3
+ 8010c44:	e7f8      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                status = LORAMAC_STATUS_PARAMETER_INVALID;
+ 8010c46:	2403      	movs	r4, #3
+ 8010c48:	e7f6      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                status = LORAMAC_STATUS_PARAMETER_INVALID;
+ 8010c4a:	2403      	movs	r4, #3
+ 8010c4c:	e7f4      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                status = LORAMAC_STATUS_PARAMETER_INVALID;
+ 8010c4e:	2403      	movs	r4, #3
+ 8010c50:	e7f2      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                status = LORAMAC_STATUS_PARAMETER_INVALID;
+ 8010c52:	2403      	movs	r4, #3
+ 8010c54:	e7f0      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                status = LORAMAC_STATUS_PARAMETER_INVALID;
+ 8010c56:	2403      	movs	r4, #3
+ 8010c58:	e7ee      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                status = LORAMAC_STATUS_PARAMETER_INVALID;
+ 8010c5a:	2403      	movs	r4, #3
+ 8010c5c:	e7ec      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                status = LORAMAC_STATUS_PARAMETER_INVALID;
+ 8010c5e:	2403      	movs	r4, #3
+ 8010c60:	e7ea      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                status = LORAMAC_STATUS_PARAMETER_INVALID;
+ 8010c62:	2403      	movs	r4, #3
+ 8010c64:	e7e8      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+ 8010c66:	bf00      	nop
+ 8010c68:	20001870 	.word	0x20001870
+ 8010c6c:	08018cb4 	.word	0x08018cb4
+ 8010c70:	2000192c 	.word	0x2000192c
+                    status = LORAMAC_STATUS_PARAMETER_INVALID;
+ 8010c74:	2403      	movs	r4, #3
+ 8010c76:	e7df      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                status = LORAMAC_STATUS_PARAMETER_INVALID;
+ 8010c78:	2403      	movs	r4, #3
+ 8010c7a:	e7dd      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                status = LORAMAC_STATUS_PARAMETER_INVALID;
+ 8010c7c:	2403      	movs	r4, #3
+ 8010c7e:	e7db      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                status = LORAMAC_STATUS_PARAMETER_INVALID;
+ 8010c80:	2403      	movs	r4, #3
+ 8010c82:	e7d9      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                status = LORAMAC_STATUS_PARAMETER_INVALID;
+ 8010c84:	2403      	movs	r4, #3
+ 8010c86:	e7d7      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                status = LORAMAC_STATUS_PARAMETER_INVALID;
+ 8010c88:	2403      	movs	r4, #3
+ 8010c8a:	e7d5      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                status = LORAMAC_STATUS_PARAMETER_INVALID;
+ 8010c8c:	2403      	movs	r4, #3
+ 8010c8e:	e7d3      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                status = LORAMAC_STATUS_PARAMETER_INVALID;
+ 8010c90:	2403      	movs	r4, #3
+ 8010c92:	e7d1      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                status = LORAMAC_STATUS_PARAMETER_INVALID;
+ 8010c94:	2403      	movs	r4, #3
+ 8010c96:	e7cf      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                status = LORAMAC_STATUS_PARAMETER_INVALID;
+ 8010c98:	2403      	movs	r4, #3
+ 8010c9a:	e7cd      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+                status = LORAMAC_STATUS_PARAMETER_INVALID;
+ 8010c9c:	2403      	movs	r4, #3
+ 8010c9e:	e7cb      	b.n	8010c38 <LoRaMacMibSetRequestConfirm+0x54c>
+
+08010ca0 <LoRaMacMlmeRequest>:
+
+    return LORAMAC_STATUS_OK;
+}
+
+LoRaMacStatus_t LoRaMacMlmeRequest( MlmeReq_t* mlmeRequest )
+{
+ 8010ca0:	b570      	push	{r4, r5, r6, lr}
+ 8010ca2:	b084      	sub	sp, #16
+    LoRaMacStatus_t status = LORAMAC_STATUS_SERVICE_UNKNOWN;
+    MlmeConfirmQueue_t queueElement;
+    uint8_t macCmdPayload[2] = { 0x00, 0x00 };
+ 8010ca4:	2300      	movs	r3, #0
+ 8010ca6:	f8ad 3008 	strh.w	r3, [sp, #8]
+
+    if( mlmeRequest == NULL )
+ 8010caa:	2800      	cmp	r0, #0
+ 8010cac:	f000 80d0 	beq.w	8010e50 <LoRaMacMlmeRequest+0x1b0>
+ 8010cb0:	4605      	mov	r5, r0
+    // Initialize mlmeRequest->ReqReturn.DutyCycleWaitTime to 0 in order to
+    // return a valid value in case the MAC is busy.
+    mlmeRequest->ReqReturn.DutyCycleWaitTime = 0;
+#endif /* LORAMAC_VERSION */
+
+    if( LoRaMacIsBusy( ) == true )
+ 8010cb2:	f7ff f8a1 	bl	800fdf8 <LoRaMacIsBusy>
+ 8010cb6:	b118      	cbz	r0, 8010cc0 <LoRaMacMlmeRequest+0x20>
+    {
+        return LORAMAC_STATUS_BUSY;
+ 8010cb8:	2401      	movs	r4, #1
+    else
+    {
+        LoRaMacConfirmQueueAdd( &queueElement );
+    }
+    return status;
+}
+ 8010cba:	4620      	mov	r0, r4
+ 8010cbc:	b004      	add	sp, #16
+ 8010cbe:	bd70      	pop	{r4, r5, r6, pc}
+    if( LoRaMacConfirmQueueIsFull( ) == true )
+ 8010cc0:	f000 fd18 	bl	80116f4 <LoRaMacConfirmQueueIsFull>
+ 8010cc4:	b108      	cbz	r0, 8010cca <LoRaMacMlmeRequest+0x2a>
+        return LORAMAC_STATUS_BUSY;
+ 8010cc6:	2401      	movs	r4, #1
+ 8010cc8:	e7f7      	b.n	8010cba <LoRaMacMlmeRequest+0x1a>
+    if( LoRaMacConfirmQueueGetCnt( ) == 0 )
+ 8010cca:	f000 fd0d 	bl	80116e8 <LoRaMacConfirmQueueGetCnt>
+ 8010cce:	b1f8      	cbz	r0, 8010d10 <LoRaMacMlmeRequest+0x70>
+    MacCtx.MlmeConfirm.Status = LORAMAC_EVENT_INFO_STATUS_ERROR;
+ 8010cd0:	4b60      	ldr	r3, [pc, #384]	; (8010e54 <LoRaMacMlmeRequest+0x1b4>)
+ 8010cd2:	2101      	movs	r1, #1
+ 8010cd4:	f883 1449 	strb.w	r1, [r3, #1097]	; 0x449
+    MacCtx.MacFlags.Bits.MlmeReq = 1;
+ 8010cd8:	f893 2481 	ldrb.w	r2, [r3, #1153]	; 0x481
+ 8010cdc:	f042 0204 	orr.w	r2, r2, #4
+ 8010ce0:	f883 2481 	strb.w	r2, [r3, #1153]	; 0x481
+    queueElement.Request = mlmeRequest->Type;
+ 8010ce4:	782b      	ldrb	r3, [r5, #0]
+ 8010ce6:	f88d 300c 	strb.w	r3, [sp, #12]
+    queueElement.Status = LORAMAC_EVENT_INFO_STATUS_ERROR;
+ 8010cea:	f88d 100d 	strb.w	r1, [sp, #13]
+    queueElement.RestrictCommonReadyToHandle = false;
+ 8010cee:	2200      	movs	r2, #0
+ 8010cf0:	f88d 200f 	strb.w	r2, [sp, #15]
+    switch( mlmeRequest->Type )
+ 8010cf4:	461c      	mov	r4, r3
+ 8010cf6:	3b01      	subs	r3, #1
+ 8010cf8:	2b0d      	cmp	r3, #13
+ 8010cfa:	f200 808f 	bhi.w	8010e1c <LoRaMacMlmeRequest+0x17c>
+ 8010cfe:	e8df f003 	tbb	[pc, r3]
+ 8010d02:	8d0d      	.short	0x8d0d
+ 8010d04:	42388d8d 	.word	0x42388d8d
+ 8010d08:	508d8d47 	.word	0x508d8d47
+ 8010d0c:	755f7e8d 	.word	0x755f7e8d
+        memset1( ( uint8_t* ) &MacCtx.MlmeConfirm, 0, sizeof( MacCtx.MlmeConfirm ) );
+ 8010d10:	2214      	movs	r2, #20
+ 8010d12:	2100      	movs	r1, #0
+ 8010d14:	4850      	ldr	r0, [pc, #320]	; (8010e58 <LoRaMacMlmeRequest+0x1b8>)
+ 8010d16:	f003 fc58 	bl	80145ca <memset1>
+ 8010d1a:	e7d9      	b.n	8010cd0 <LoRaMacMlmeRequest+0x30>
+            if( ( MacCtx.MacState & LORAMAC_TX_DELAYED ) == LORAMAC_TX_DELAYED )
+ 8010d1c:	4b4d      	ldr	r3, [pc, #308]	; (8010e54 <LoRaMacMlmeRequest+0x1b4>)
+ 8010d1e:	f8d3 3340 	ldr.w	r3, [r3, #832]	; 0x340
+ 8010d22:	f013 0f20 	tst.w	r3, #32
+ 8010d26:	d1c8      	bne.n	8010cba <LoRaMacMlmeRequest+0x1a>
+            ResetMacParameters( false );
+ 8010d28:	2000      	movs	r0, #0
+ 8010d2a:	f7fe fd79 	bl	800f820 <ResetMacParameters>
+            Nvm.MacGroup1.ChannelsDatarate = RegionAlternateDr( Nvm.MacGroup2.Region, mlmeRequest->Req.Join.Datarate, ALTERNATE_DR );
+ 8010d2e:	4c4b      	ldr	r4, [pc, #300]	; (8010e5c <LoRaMacMlmeRequest+0x1bc>)
+ 8010d30:	2200      	movs	r2, #0
+ 8010d32:	f995 1005 	ldrsb.w	r1, [r5, #5]
+ 8010d36:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 8010d3a:	f001 faa8 	bl	801228e <RegionAlternateDr>
+ 8010d3e:	f884 0039 	strb.w	r0, [r4, #57]	; 0x39
+            Nvm.MacGroup1.ChannelsTxPower = mlmeRequest->Req.Join.TxPower;
+ 8010d42:	f995 3006 	ldrsb.w	r3, [r5, #6]
+ 8010d46:	f884 3038 	strb.w	r3, [r4, #56]	; 0x38
+            queueElement.Status = LORAMAC_EVENT_INFO_STATUS_JOIN_FAIL;
+ 8010d4a:	2307      	movs	r3, #7
+ 8010d4c:	f88d 300d 	strb.w	r3, [sp, #13]
+            status = SendReJoinReq( JOIN_REQ );
+ 8010d50:	20ff      	movs	r0, #255	; 0xff
+ 8010d52:	f7fe feb5 	bl	800fac0 <SendReJoinReq>
+            if( status != LORAMAC_STATUS_OK )
+ 8010d56:	4604      	mov	r4, r0
+ 8010d58:	2800      	cmp	r0, #0
+ 8010d5a:	d060      	beq.n	8010e1e <LoRaMacMlmeRequest+0x17e>
+                Nvm.MacGroup1.ChannelsDatarate = RegionAlternateDr( Nvm.MacGroup2.Region, mlmeRequest->Req.Join.Datarate, ALTERNATE_DR_RESTORE );
+ 8010d5c:	4e3f      	ldr	r6, [pc, #252]	; (8010e5c <LoRaMacMlmeRequest+0x1bc>)
+ 8010d5e:	2201      	movs	r2, #1
+ 8010d60:	f995 1005 	ldrsb.w	r1, [r5, #5]
+ 8010d64:	f896 0048 	ldrb.w	r0, [r6, #72]	; 0x48
+ 8010d68:	f001 fa91 	bl	801228e <RegionAlternateDr>
+ 8010d6c:	f886 0039 	strb.w	r0, [r6, #57]	; 0x39
+ 8010d70:	e055      	b.n	8010e1e <LoRaMacMlmeRequest+0x17e>
+            if( LoRaMacCommandsAddCmd( MOTE_MAC_LINK_CHECK_REQ, macCmdPayload, 0 ) != LORAMAC_COMMANDS_SUCCESS )
+ 8010d72:	2200      	movs	r2, #0
+ 8010d74:	a902      	add	r1, sp, #8
+ 8010d76:	2002      	movs	r0, #2
+ 8010d78:	f000 faaa 	bl	80112d0 <LoRaMacCommandsAddCmd>
+ 8010d7c:	4604      	mov	r4, r0
+ 8010d7e:	2800      	cmp	r0, #0
+ 8010d80:	d04d      	beq.n	8010e1e <LoRaMacMlmeRequest+0x17e>
+                status = LORAMAC_STATUS_MAC_COMMAD_ERROR;
+ 8010d82:	2413      	movs	r4, #19
+ 8010d84:	e04b      	b.n	8010e1e <LoRaMacMlmeRequest+0x17e>
+            status = SetTxContinuousWave( mlmeRequest->Req.TxCw.Timeout );
+ 8010d86:	88a8      	ldrh	r0, [r5, #4]
+ 8010d88:	f7fe febc 	bl	800fb04 <SetTxContinuousWave>
+ 8010d8c:	4604      	mov	r4, r0
+            break;
+ 8010d8e:	e046      	b.n	8010e1e <LoRaMacMlmeRequest+0x17e>
+            status = SetTxContinuousWave1( mlmeRequest->Req.TxCw.Timeout, mlmeRequest->Req.TxCw.Frequency, mlmeRequest->Req.TxCw.Power );
+ 8010d90:	f995 200c 	ldrsb.w	r2, [r5, #12]
+ 8010d94:	b2d2      	uxtb	r2, r2
+ 8010d96:	68a9      	ldr	r1, [r5, #8]
+ 8010d98:	88a8      	ldrh	r0, [r5, #4]
+ 8010d9a:	f7fc ff1f 	bl	800dbdc <SetTxContinuousWave1>
+ 8010d9e:	4604      	mov	r4, r0
+            break;
+ 8010da0:	e03d      	b.n	8010e1e <LoRaMacMlmeRequest+0x17e>
+            if (LoRaMacCommandsGetCmd( MOTE_MAC_DEVICE_TIME_REQ, &newCmd ) == LORAMAC_COMMANDS_SUCCESS)
+ 8010da2:	a901      	add	r1, sp, #4
+ 8010da4:	200d      	movs	r0, #13
+ 8010da6:	f000 fadf 	bl	8011368 <LoRaMacCommandsGetCmd>
+ 8010daa:	4604      	mov	r4, r0
+ 8010dac:	b3b8      	cbz	r0, 8010e1e <LoRaMacMlmeRequest+0x17e>
+            else if( LoRaMacCommandsAddCmd( MOTE_MAC_DEVICE_TIME_REQ, macCmdPayload, 0 ) != LORAMAC_COMMANDS_SUCCESS )
+ 8010dae:	2200      	movs	r2, #0
+ 8010db0:	a902      	add	r1, sp, #8
+ 8010db2:	200d      	movs	r0, #13
+ 8010db4:	f000 fa8c 	bl	80112d0 <LoRaMacCommandsAddCmd>
+ 8010db8:	4604      	mov	r4, r0
+ 8010dba:	b380      	cbz	r0, 8010e1e <LoRaMacMlmeRequest+0x17e>
+                status = LORAMAC_STATUS_MAC_COMMAD_ERROR;
+ 8010dbc:	2413      	movs	r4, #19
+            break;
+ 8010dbe:	e02e      	b.n	8010e1e <LoRaMacMlmeRequest+0x17e>
+            if( Nvm.MacGroup2.DeviceClass == CLASS_A )
+ 8010dc0:	4b26      	ldr	r3, [pc, #152]	; (8010e5c <LoRaMacMlmeRequest+0x1bc>)
+ 8010dc2:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 8010dc6:	b10b      	cbz	r3, 8010dcc <LoRaMacMlmeRequest+0x12c>
+    LoRaMacStatus_t status = LORAMAC_STATUS_SERVICE_UNKNOWN;
+ 8010dc8:	2402      	movs	r4, #2
+ 8010dca:	e028      	b.n	8010e1e <LoRaMacMlmeRequest+0x17e>
+                uint8_t value = mlmeRequest->Req.PingSlotInfo.PingSlot.Value;
+ 8010dcc:	792c      	ldrb	r4, [r5, #4]
+                LoRaMacClassBSetPingSlotInfo( mlmeRequest->Req.PingSlotInfo.PingSlot.Fields.Periodicity );
+ 8010dce:	f004 0007 	and.w	r0, r4, #7
+ 8010dd2:	f000 f9d6 	bl	8011182 <LoRaMacClassBSetPingSlotInfo>
+                macCmdPayload[0] = value;
+ 8010dd6:	f88d 4008 	strb.w	r4, [sp, #8]
+                if( LoRaMacCommandsAddCmd( MOTE_MAC_PING_SLOT_INFO_REQ, macCmdPayload, 1 ) != LORAMAC_COMMANDS_SUCCESS )
+ 8010dda:	2201      	movs	r2, #1
+ 8010ddc:	a902      	add	r1, sp, #8
+ 8010dde:	2010      	movs	r0, #16
+ 8010de0:	f000 fa76 	bl	80112d0 <LoRaMacCommandsAddCmd>
+ 8010de4:	4604      	mov	r4, r0
+ 8010de6:	b1d0      	cbz	r0, 8010e1e <LoRaMacMlmeRequest+0x17e>
+                    status = LORAMAC_STATUS_MAC_COMMAD_ERROR;
+ 8010de8:	2413      	movs	r4, #19
+ 8010dea:	e018      	b.n	8010e1e <LoRaMacMlmeRequest+0x17e>
+            if( LoRaMacCommandsAddCmd( MOTE_MAC_BEACON_TIMING_REQ, macCmdPayload, 0 ) != LORAMAC_COMMANDS_SUCCESS )
+ 8010dec:	2200      	movs	r2, #0
+ 8010dee:	a902      	add	r1, sp, #8
+ 8010df0:	2012      	movs	r0, #18
+ 8010df2:	f000 fa6d 	bl	80112d0 <LoRaMacCommandsAddCmd>
+ 8010df6:	4604      	mov	r4, r0
+ 8010df8:	b188      	cbz	r0, 8010e1e <LoRaMacMlmeRequest+0x17e>
+                status = LORAMAC_STATUS_MAC_COMMAD_ERROR;
+ 8010dfa:	2413      	movs	r4, #19
+ 8010dfc:	e00f      	b.n	8010e1e <LoRaMacMlmeRequest+0x17e>
+            queueElement.RestrictCommonReadyToHandle = true;
+ 8010dfe:	2301      	movs	r3, #1
+ 8010e00:	f88d 300f 	strb.w	r3, [sp, #15]
+            if( LoRaMacClassBIsAcquisitionInProgress( ) == false )
+ 8010e04:	f000 f9ae 	bl	8011164 <LoRaMacClassBIsAcquisitionInProgress>
+ 8010e08:	b108      	cbz	r0, 8010e0e <LoRaMacMlmeRequest+0x16e>
+                status = LORAMAC_STATUS_BUSY;
+ 8010e0a:	2401      	movs	r4, #1
+ 8010e0c:	e007      	b.n	8010e1e <LoRaMacMlmeRequest+0x17e>
+                LoRaMacClassBSetBeaconState( BEACON_STATE_ACQUISITION );
+ 8010e0e:	f000 f9a6 	bl	801115e <LoRaMacClassBSetBeaconState>
+                LoRaMacClassBBeaconTimerEvent( NULL );
+ 8010e12:	2000      	movs	r0, #0
+ 8010e14:	f000 f9a8 	bl	8011168 <LoRaMacClassBBeaconTimerEvent>
+                status = LORAMAC_STATUS_OK;
+ 8010e18:	2400      	movs	r4, #0
+ 8010e1a:	e000      	b.n	8010e1e <LoRaMacMlmeRequest+0x17e>
+    switch( mlmeRequest->Type )
+ 8010e1c:	2402      	movs	r4, #2
+    mlmeRequest->ReqReturn.DutyCycleWaitTime = MacCtx.DutyCycleWaitTime;
+ 8010e1e:	4b0d      	ldr	r3, [pc, #52]	; (8010e54 <LoRaMacMlmeRequest+0x1b4>)
+ 8010e20:	f8d3 3484 	ldr.w	r3, [r3, #1156]	; 0x484
+ 8010e24:	612b      	str	r3, [r5, #16]
+    if( status != LORAMAC_STATUS_OK )
+ 8010e26:	b17c      	cbz	r4, 8010e48 <LoRaMacMlmeRequest+0x1a8>
+        if( LoRaMacConfirmQueueGetCnt( ) == 0 )
+ 8010e28:	f000 fc5e 	bl	80116e8 <LoRaMacConfirmQueueGetCnt>
+ 8010e2c:	2800      	cmp	r0, #0
+ 8010e2e:	f47f af44 	bne.w	8010cba <LoRaMacMlmeRequest+0x1a>
+            MacCtx.NodeAckRequested = false;
+ 8010e32:	4b08      	ldr	r3, [pc, #32]	; (8010e54 <LoRaMacMlmeRequest+0x1b4>)
+ 8010e34:	2100      	movs	r1, #0
+ 8010e36:	f883 1410 	strb.w	r1, [r3, #1040]	; 0x410
+            MacCtx.MacFlags.Bits.MlmeReq = 0;
+ 8010e3a:	f893 2481 	ldrb.w	r2, [r3, #1153]	; 0x481
+ 8010e3e:	f361 0282 	bfi	r2, r1, #2, #1
+ 8010e42:	f883 2481 	strb.w	r2, [r3, #1153]	; 0x481
+ 8010e46:	e738      	b.n	8010cba <LoRaMacMlmeRequest+0x1a>
+        LoRaMacConfirmQueueAdd( &queueElement );
+ 8010e48:	a803      	add	r0, sp, #12
+ 8010e4a:	f000 fb83 	bl	8011554 <LoRaMacConfirmQueueAdd>
+ 8010e4e:	e734      	b.n	8010cba <LoRaMacMlmeRequest+0x1a>
+        return LORAMAC_STATUS_PARAMETER_INVALID;
+ 8010e50:	2403      	movs	r4, #3
+ 8010e52:	e732      	b.n	8010cba <LoRaMacMlmeRequest+0x1a>
+ 8010e54:	20001fe4 	.word	0x20001fe4
+ 8010e58:	2000242c 	.word	0x2000242c
+ 8010e5c:	20001870 	.word	0x20001870
+
+08010e60 <LoRaMacMcpsRequest>:
+    void* fBuffer = NULL;
+    uint16_t fBufferSize;
+    int8_t datarate = DR_0;
+    bool readyToSend = false;
+
+    if( mcpsRequest == NULL )
+ 8010e60:	2800      	cmp	r0, #0
+ 8010e62:	f000 80b0 	beq.w	8010fc6 <LoRaMacMcpsRequest+0x166>
+{
+ 8010e66:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
+ 8010e6a:	b088      	sub	sp, #32
+ 8010e6c:	460d      	mov	r5, r1
+ 8010e6e:	f04f 0800 	mov.w	r8, #0
+ 8010e72:	4604      	mov	r4, r0
+    {
+        return LORAMAC_STATUS_PARAMETER_INVALID;
+    }
+#if (defined( LORAMAC_VERSION ) && ( LORAMAC_VERSION == 0x01000300 ))
+    if( LoRaMacIsBusy( ) == true )
+ 8010e74:	f7fe ffc0 	bl	800fdf8 <LoRaMacIsBusy>
+ 8010e78:	4606      	mov	r6, r0
+ 8010e7a:	b118      	cbz	r0, 8010e84 <LoRaMacMcpsRequest+0x24>
+    {
+        return LORAMAC_STATUS_BUSY;
+ 8010e7c:	2001      	movs	r0, #1
+
+    // Fill return structure
+    mcpsRequest->ReqReturn.DutyCycleWaitTime = MacCtx.DutyCycleWaitTime;
+
+    return status;
+}
+ 8010e7e:	b008      	add	sp, #32
+ 8010e80:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+    macHdr.Value = 0;
+ 8010e84:	4641      	mov	r1, r8
+ 8010e86:	f88d 8010 	strb.w	r8, [sp, #16]
+    memset1( ( uint8_t* ) &MacCtx.McpsConfirm, 0, sizeof( MacCtx.McpsConfirm ) );
+ 8010e8a:	4f51      	ldr	r7, [pc, #324]	; (8010fd0 <LoRaMacMcpsRequest+0x170>)
+ 8010e8c:	2214      	movs	r2, #20
+ 8010e8e:	f207 4034 	addw	r0, r7, #1076	; 0x434
+ 8010e92:	f003 fb9a 	bl	80145ca <memset1>
+    MacCtx.McpsConfirm.Status = LORAMAC_EVENT_INFO_STATUS_ERROR;
+ 8010e96:	2301      	movs	r3, #1
+ 8010e98:	f887 3435 	strb.w	r3, [r7, #1077]	; 0x435
+    MacCtx.AckTimeoutRetriesCounter = 1;
+ 8010e9c:	f887 340e 	strb.w	r3, [r7, #1038]	; 0x40e
+    switch( mcpsRequest->Type )
+ 8010ea0:	7823      	ldrb	r3, [r4, #0]
+ 8010ea2:	2b01      	cmp	r3, #1
+ 8010ea4:	d059      	beq.n	8010f5a <LoRaMacMcpsRequest+0xfa>
+ 8010ea6:	2b03      	cmp	r3, #3
+ 8010ea8:	d06f      	beq.n	8010f8a <LoRaMacMcpsRequest+0x12a>
+ 8010eaa:	2b00      	cmp	r3, #0
+ 8010eac:	d042      	beq.n	8010f34 <LoRaMacMcpsRequest+0xd4>
+ 8010eae:	2700      	movs	r7, #0
+ 8010eb0:	46ba      	mov	sl, r7
+ 8010eb2:	46b9      	mov	r9, r7
+    getPhy.Attribute = PHY_MIN_TX_DR;
+ 8010eb4:	2302      	movs	r3, #2
+ 8010eb6:	f88d 3018 	strb.w	r3, [sp, #24]
+    getPhy.UplinkDwellTime = Nvm.MacGroup2.MacParams.UplinkDwellTime;
+ 8010eba:	4b46      	ldr	r3, [pc, #280]	; (8010fd4 <LoRaMacMcpsRequest+0x174>)
+ 8010ebc:	f893 207c 	ldrb.w	r2, [r3, #124]	; 0x7c
+ 8010ec0:	f88d 201a 	strb.w	r2, [sp, #26]
+    phyParam = RegionGetPhyParam( Nvm.MacGroup2.Region, &getPhy );
+ 8010ec4:	a906      	add	r1, sp, #24
+ 8010ec6:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 8010eca:	f001 f958 	bl	801217e <RegionGetPhyParam>
+ 8010ece:	9005      	str	r0, [sp, #20]
+    datarate = MAX( datarate, ( int8_t )phyParam.Value );
+ 8010ed0:	b240      	sxtb	r0, r0
+ 8010ed2:	42b8      	cmp	r0, r7
+ 8010ed4:	bfb8      	it	lt
+ 8010ed6:	4638      	movlt	r0, r7
+    if( readyToSend == true )
+ 8010ed8:	2e00      	cmp	r6, #0
+ 8010eda:	d06e      	beq.n	8010fba <LoRaMacMcpsRequest+0x15a>
+        if( Nvm.MacGroup2.AdrCtrlOn == false )
+ 8010edc:	4b3d      	ldr	r3, [pc, #244]	; (8010fd4 <LoRaMacMcpsRequest+0x174>)
+ 8010ede:	f893 311a 	ldrb.w	r3, [r3, #282]	; 0x11a
+ 8010ee2:	b99b      	cbnz	r3, 8010f0c <LoRaMacMcpsRequest+0xac>
+            verify.DatarateParams.Datarate = datarate;
+ 8010ee4:	f88d 000c 	strb.w	r0, [sp, #12]
+            verify.DatarateParams.UplinkDwellTime = Nvm.MacGroup2.MacParams.UplinkDwellTime;
+ 8010ee8:	4b3a      	ldr	r3, [pc, #232]	; (8010fd4 <LoRaMacMcpsRequest+0x174>)
+ 8010eea:	f893 207c 	ldrb.w	r2, [r3, #124]	; 0x7c
+ 8010eee:	f88d 200e 	strb.w	r2, [sp, #14]
+            if( RegionVerify( Nvm.MacGroup2.Region, &verify, PHY_TX_DR ) == true )
+ 8010ef2:	2205      	movs	r2, #5
+ 8010ef4:	a903      	add	r1, sp, #12
+ 8010ef6:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 8010efa:	f001 f95e 	bl	80121ba <RegionVerify>
+ 8010efe:	2800      	cmp	r0, #0
+ 8010f00:	d063      	beq.n	8010fca <LoRaMacMcpsRequest+0x16a>
+                Nvm.MacGroup1.ChannelsDatarate = verify.DatarateParams.Datarate;
+ 8010f02:	f99d 200c 	ldrsb.w	r2, [sp, #12]
+ 8010f06:	4b33      	ldr	r3, [pc, #204]	; (8010fd4 <LoRaMacMcpsRequest+0x174>)
+ 8010f08:	f883 2039 	strb.w	r2, [r3, #57]	; 0x39
+        status = Send( &macHdr, fPort, fBuffer, fBufferSize, allowDelayedTx );
+ 8010f0c:	9500      	str	r5, [sp, #0]
+ 8010f0e:	4643      	mov	r3, r8
+ 8010f10:	4652      	mov	r2, sl
+ 8010f12:	4649      	mov	r1, r9
+ 8010f14:	a804      	add	r0, sp, #16
+ 8010f16:	f7fe fee3 	bl	800fce0 <Send>
+        if( status == LORAMAC_STATUS_OK )
+ 8010f1a:	2800      	cmp	r0, #0
+ 8010f1c:	d148      	bne.n	8010fb0 <LoRaMacMcpsRequest+0x150>
+            MacCtx.McpsConfirm.McpsRequest = mcpsRequest->Type;
+ 8010f1e:	7822      	ldrb	r2, [r4, #0]
+ 8010f20:	4b2b      	ldr	r3, [pc, #172]	; (8010fd0 <LoRaMacMcpsRequest+0x170>)
+ 8010f22:	f883 2434 	strb.w	r2, [r3, #1076]	; 0x434
+            MacCtx.MacFlags.Bits.McpsReq = 1;
+ 8010f26:	f893 2481 	ldrb.w	r2, [r3, #1153]	; 0x481
+ 8010f2a:	f042 0201 	orr.w	r2, r2, #1
+ 8010f2e:	f883 2481 	strb.w	r2, [r3, #1153]	; 0x481
+ 8010f32:	e043      	b.n	8010fbc <LoRaMacMcpsRequest+0x15c>
+            MacCtx.AckTimeoutRetries = 1;
+ 8010f34:	2601      	movs	r6, #1
+ 8010f36:	f887 640d 	strb.w	r6, [r7, #1037]	; 0x40d
+            macHdr.Bits.MType = FRAME_TYPE_DATA_UNCONFIRMED_UP;
+ 8010f3a:	f89d 3010 	ldrb.w	r3, [sp, #16]
+ 8010f3e:	2202      	movs	r2, #2
+ 8010f40:	f362 1347 	bfi	r3, r2, #5, #3
+ 8010f44:	f88d 3010 	strb.w	r3, [sp, #16]
+            fPort = mcpsRequest->Req.Unconfirmed.fPort;
+ 8010f48:	f894 9004 	ldrb.w	r9, [r4, #4]
+            fBuffer = mcpsRequest->Req.Unconfirmed.fBuffer;
+ 8010f4c:	f8d4 a008 	ldr.w	sl, [r4, #8]
+            fBufferSize = mcpsRequest->Req.Unconfirmed.fBufferSize;
+ 8010f50:	f8b4 800c 	ldrh.w	r8, [r4, #12]
+            datarate = mcpsRequest->Req.Unconfirmed.Datarate;
+ 8010f54:	f994 700e 	ldrsb.w	r7, [r4, #14]
+            break;
+ 8010f58:	e7ac      	b.n	8010eb4 <LoRaMacMcpsRequest+0x54>
+            MacCtx.AckTimeoutRetries = MIN( mcpsRequest->Req.Confirmed.NbTrials, MAX_ACK_RETRIES );
+ 8010f5a:	7be3      	ldrb	r3, [r4, #15]
+ 8010f5c:	2b08      	cmp	r3, #8
+ 8010f5e:	bf28      	it	cs
+ 8010f60:	2308      	movcs	r3, #8
+ 8010f62:	4a1b      	ldr	r2, [pc, #108]	; (8010fd0 <LoRaMacMcpsRequest+0x170>)
+ 8010f64:	f882 340d 	strb.w	r3, [r2, #1037]	; 0x40d
+            macHdr.Bits.MType = FRAME_TYPE_DATA_CONFIRMED_UP;
+ 8010f68:	f89d 3010 	ldrb.w	r3, [sp, #16]
+ 8010f6c:	2204      	movs	r2, #4
+ 8010f6e:	f362 1347 	bfi	r3, r2, #5, #3
+ 8010f72:	f88d 3010 	strb.w	r3, [sp, #16]
+            fPort = mcpsRequest->Req.Confirmed.fPort;
+ 8010f76:	f894 9004 	ldrb.w	r9, [r4, #4]
+            fBuffer = mcpsRequest->Req.Confirmed.fBuffer;
+ 8010f7a:	f8d4 a008 	ldr.w	sl, [r4, #8]
+            fBufferSize = mcpsRequest->Req.Confirmed.fBufferSize;
+ 8010f7e:	f8b4 800c 	ldrh.w	r8, [r4, #12]
+            datarate = mcpsRequest->Req.Confirmed.Datarate;
+ 8010f82:	f994 700e 	ldrsb.w	r7, [r4, #14]
+            readyToSend = true;
+ 8010f86:	2601      	movs	r6, #1
+            break;
+ 8010f88:	e794      	b.n	8010eb4 <LoRaMacMcpsRequest+0x54>
+            MacCtx.AckTimeoutRetries = 1;
+ 8010f8a:	2601      	movs	r6, #1
+ 8010f8c:	4b10      	ldr	r3, [pc, #64]	; (8010fd0 <LoRaMacMcpsRequest+0x170>)
+ 8010f8e:	f883 640d 	strb.w	r6, [r3, #1037]	; 0x40d
+            macHdr.Bits.MType = FRAME_TYPE_PROPRIETARY;
+ 8010f92:	f89d 3010 	ldrb.w	r3, [sp, #16]
+ 8010f96:	f043 03e0 	orr.w	r3, r3, #224	; 0xe0
+ 8010f9a:	f88d 3010 	strb.w	r3, [sp, #16]
+            fBuffer = mcpsRequest->Req.Proprietary.fBuffer;
+ 8010f9e:	f8d4 a004 	ldr.w	sl, [r4, #4]
+            fBufferSize = mcpsRequest->Req.Proprietary.fBufferSize;
+ 8010fa2:	f8b4 8008 	ldrh.w	r8, [r4, #8]
+            datarate = mcpsRequest->Req.Proprietary.Datarate;
+ 8010fa6:	f994 700a 	ldrsb.w	r7, [r4, #10]
+    uint8_t fPort = 0;
+ 8010faa:	f04f 0900 	mov.w	r9, #0
+            break;
+ 8010fae:	e781      	b.n	8010eb4 <LoRaMacMcpsRequest+0x54>
+            MacCtx.NodeAckRequested = false;
+ 8010fb0:	4b07      	ldr	r3, [pc, #28]	; (8010fd0 <LoRaMacMcpsRequest+0x170>)
+ 8010fb2:	2200      	movs	r2, #0
+ 8010fb4:	f883 2410 	strb.w	r2, [r3, #1040]	; 0x410
+ 8010fb8:	e000      	b.n	8010fbc <LoRaMacMcpsRequest+0x15c>
+    LoRaMacStatus_t status = LORAMAC_STATUS_SERVICE_UNKNOWN;
+ 8010fba:	2002      	movs	r0, #2
+    mcpsRequest->ReqReturn.DutyCycleWaitTime = MacCtx.DutyCycleWaitTime;
+ 8010fbc:	4b04      	ldr	r3, [pc, #16]	; (8010fd0 <LoRaMacMcpsRequest+0x170>)
+ 8010fbe:	f8d3 3484 	ldr.w	r3, [r3, #1156]	; 0x484
+ 8010fc2:	6123      	str	r3, [r4, #16]
+    return status;
+ 8010fc4:	e75b      	b.n	8010e7e <LoRaMacMcpsRequest+0x1e>
+        return LORAMAC_STATUS_PARAMETER_INVALID;
+ 8010fc6:	2003      	movs	r0, #3
+}
+ 8010fc8:	4770      	bx	lr
+                return LORAMAC_STATUS_PARAMETER_INVALID;
+ 8010fca:	2003      	movs	r0, #3
+ 8010fcc:	e757      	b.n	8010e7e <LoRaMacMcpsRequest+0x1e>
+ 8010fce:	bf00      	nop
+ 8010fd0:	20001fe4 	.word	0x20001fe4
+ 8010fd4:	20001870 	.word	0x20001870
+
+08010fd8 <LoRaMacTestSetDutyCycleOn>:
+    OnMacProcessNotify( );
+}
+#endif /* LORAMAC_VERSION */
+
+void LoRaMacTestSetDutyCycleOn( bool enable )
+{
+ 8010fd8:	b510      	push	{r4, lr}
+ 8010fda:	b082      	sub	sp, #8
+ 8010fdc:	4604      	mov	r4, r0
+    VerifyParams_t verify;
+
+    verify.DutyCycle = enable;
+ 8010fde:	f88d 0004 	strb.w	r0, [sp, #4]
+
+    if( RegionVerify( Nvm.MacGroup2.Region, &verify, PHY_DUTY_CYCLE ) == true )
+ 8010fe2:	220f      	movs	r2, #15
+ 8010fe4:	a901      	add	r1, sp, #4
+ 8010fe6:	4b09      	ldr	r3, [pc, #36]	; (801100c <LoRaMacTestSetDutyCycleOn+0x34>)
+ 8010fe8:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 8010fec:	f001 f8e5 	bl	80121ba <RegionVerify>
+ 8010ff0:	b148      	cbz	r0, 8011006 <LoRaMacTestSetDutyCycleOn+0x2e>
+    {
+        Nvm.MacGroup2.DutyCycleOn = enable;
+ 8010ff2:	4b06      	ldr	r3, [pc, #24]	; (801100c <LoRaMacTestSetDutyCycleOn+0x34>)
+ 8010ff4:	f883 411c 	strb.w	r4, [r3, #284]	; 0x11c
+        // Handle NVM potential changes
+        MacCtx.MacFlags.Bits.NvmHandle = 1;
+ 8010ff8:	4a05      	ldr	r2, [pc, #20]	; (8011010 <LoRaMacTestSetDutyCycleOn+0x38>)
+ 8010ffa:	f892 3481 	ldrb.w	r3, [r2, #1153]	; 0x481
+ 8010ffe:	f043 0320 	orr.w	r3, r3, #32
+ 8011002:	f882 3481 	strb.w	r3, [r2, #1153]	; 0x481
+    }
+}
+ 8011006:	b002      	add	sp, #8
+ 8011008:	bd10      	pop	{r4, pc}
+ 801100a:	bf00      	nop
+ 801100c:	20001870 	.word	0x20001870
+ 8011010:	20001fe4 	.word	0x20001fe4
+
+08011014 <LoRaMacDeInitialization>:
+
+LoRaMacStatus_t LoRaMacDeInitialization( void )
+{
+ 8011014:	b538      	push	{r3, r4, r5, lr}
+    // Check the current state of the LoRaMac
+    if ( LoRaMacStop( ) == LORAMAC_STATUS_OK )
+ 8011016:	f7ff f93f 	bl	8010298 <LoRaMacStop>
+ 801101a:	b110      	cbz	r0, 8011022 <LoRaMacDeInitialization+0xe>
+        // Return success
+        return LORAMAC_STATUS_OK;
+    }
+    else
+    {
+        return LORAMAC_STATUS_BUSY;
+ 801101c:	2401      	movs	r4, #1
+    }
+}
+ 801101e:	4620      	mov	r0, r4
+ 8011020:	bd38      	pop	{r3, r4, r5, pc}
+ 8011022:	4604      	mov	r4, r0
+        TimerStop( &MacCtx.TxDelayedTimer );
+ 8011024:	4d0c      	ldr	r5, [pc, #48]	; (8011058 <LoRaMacDeInitialization+0x44>)
+ 8011026:	f505 705a 	add.w	r0, r5, #872	; 0x368
+ 801102a:	f006 f8d7 	bl	80171dc <UTIL_TIMER_Stop>
+        TimerStop( &MacCtx.RxWindowTimer1 );
+ 801102e:	f505 7060 	add.w	r0, r5, #896	; 0x380
+ 8011032:	f006 f8d3 	bl	80171dc <UTIL_TIMER_Stop>
+        TimerStop( &MacCtx.RxWindowTimer2 );
+ 8011036:	f505 7066 	add.w	r0, r5, #920	; 0x398
+ 801103a:	f006 f8cf 	bl	80171dc <UTIL_TIMER_Stop>
+        TimerStop( &MacCtx.AckTimeoutTimer );
+ 801103e:	f505 707d 	add.w	r0, r5, #1012	; 0x3f4
+ 8011042:	f006 f8cb 	bl	80171dc <UTIL_TIMER_Stop>
+        LoRaMacClassBHaltBeaconing( );
+ 8011046:	f000 f89d 	bl	8011184 <LoRaMacClassBHaltBeaconing>
+        ResetMacParameters( false );
+ 801104a:	2000      	movs	r0, #0
+ 801104c:	f7fe fbe8 	bl	800f820 <ResetMacParameters>
+        Radio.Sleep( );
+ 8011050:	4b02      	ldr	r3, [pc, #8]	; (801105c <LoRaMacDeInitialization+0x48>)
+ 8011052:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 8011054:	4798      	blx	r3
+        return LORAMAC_STATUS_OK;
+ 8011056:	e7e2      	b.n	801101e <LoRaMacDeInitialization+0xa>
+ 8011058:	20001fe4 	.word	0x20001fe4
+ 801105c:	08018cb4 	.word	0x08018cb4
+
+08011060 <CalcNextV10X>:
+#include "LoRaMacAdr.h"
+#include "LoRaMacVersion.h"
+
+#if (defined( LORAMAC_VERSION ) && ( LORAMAC_VERSION == 0x01000300 ))
+static bool CalcNextV10X( CalcNextAdrParams_t* adrNext, int8_t* drOut, int8_t* txPowOut, uint32_t* adrAckCounter )
+{
+ 8011060:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8011064:	b089      	sub	sp, #36	; 0x24
+ 8011066:	460f      	mov	r7, r1
+ 8011068:	4616      	mov	r6, r2
+ 801106a:	461d      	mov	r5, r3
+    bool adrAckReq = false;
+    int8_t datarate = adrNext->Datarate;
+ 801106c:	f990 9010 	ldrsb.w	r9, [r0, #16]
+    int8_t txPower = adrNext->TxPower;
+ 8011070:	f990 b011 	ldrsb.w	fp, [r0, #17]
+    int8_t minTxDatarate;
+    GetPhyParams_t getPhy;
+    PhyParam_t phyParam;
+
+    // Report back the adr ack counter
+    *adrAckCounter = adrNext->AdrAckCounter;
+ 8011074:	6883      	ldr	r3, [r0, #8]
+ 8011076:	602b      	str	r3, [r5, #0]
+
+    if( adrNext->AdrEnabled == true )
+ 8011078:	f890 8005 	ldrb.w	r8, [r0, #5]
+ 801107c:	f1b8 0f00 	cmp.w	r8, #0
+ 8011080:	d107      	bne.n	8011092 <CalcNextV10X+0x32>
+                }
+            }
+        }
+    }
+
+    *drOut = datarate;
+ 8011082:	f887 9000 	strb.w	r9, [r7]
+    *txPowOut = txPower;
+ 8011086:	f886 b000 	strb.w	fp, [r6]
+    return adrAckReq;
+}
+ 801108a:	4640      	mov	r0, r8
+ 801108c:	b009      	add	sp, #36	; 0x24
+ 801108e:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 8011092:	4604      	mov	r4, r0
+        getPhy.Attribute = PHY_MIN_TX_DR;
+ 8011094:	2302      	movs	r3, #2
+ 8011096:	f88d 3018 	strb.w	r3, [sp, #24]
+        getPhy.UplinkDwellTime = adrNext->UplinkDwellTime;
+ 801109a:	7c83      	ldrb	r3, [r0, #18]
+ 801109c:	f88d 301a 	strb.w	r3, [sp, #26]
+        phyParam = RegionGetPhyParam( adrNext->Region, &getPhy );
+ 80110a0:	a906      	add	r1, sp, #24
+ 80110a2:	7cc0      	ldrb	r0, [r0, #19]
+ 80110a4:	f001 f86b 	bl	801217e <RegionGetPhyParam>
+ 80110a8:	9005      	str	r0, [sp, #20]
+        minTxDatarate = phyParam.Value;
+ 80110aa:	fa4f fa80 	sxtb.w	sl, r0
+        datarate = MAX( datarate, minTxDatarate );
+ 80110ae:	464a      	mov	r2, r9
+ 80110b0:	45d1      	cmp	r9, sl
+ 80110b2:	bfb8      	it	lt
+ 80110b4:	4652      	movlt	r2, sl
+ 80110b6:	9201      	str	r2, [sp, #4]
+        if( datarate == minTxDatarate )
+ 80110b8:	45d1      	cmp	r9, sl
+ 80110ba:	dc04      	bgt.n	80110c6 <CalcNextV10X+0x66>
+            *adrAckCounter = 0;
+ 80110bc:	2300      	movs	r3, #0
+ 80110be:	602b      	str	r3, [r5, #0]
+        datarate = MAX( datarate, minTxDatarate );
+ 80110c0:	4691      	mov	r9, r2
+            adrAckReq = false;
+ 80110c2:	4698      	mov	r8, r3
+ 80110c4:	e7dd      	b.n	8011082 <CalcNextV10X+0x22>
+            if( adrNext->AdrAckCounter >=  adrNext->AdrAckLimit )
+ 80110c6:	68a2      	ldr	r2, [r4, #8]
+ 80110c8:	89a3      	ldrh	r3, [r4, #12]
+ 80110ca:	429a      	cmp	r2, r3
+ 80110cc:	d201      	bcs.n	80110d2 <CalcNextV10X+0x72>
+                adrAckReq = false;
+ 80110ce:	f04f 0800 	mov.w	r8, #0
+            if( adrNext->AdrAckCounter >= ( adrNext->AdrAckLimit + adrNext->AdrAckDelay ) )
+ 80110d2:	89e1      	ldrh	r1, [r4, #14]
+ 80110d4:	440b      	add	r3, r1
+ 80110d6:	429a      	cmp	r2, r3
+ 80110d8:	d202      	bcs.n	80110e0 <CalcNextV10X+0x80>
+        datarate = MAX( datarate, minTxDatarate );
+ 80110da:	f8dd 9004 	ldr.w	r9, [sp, #4]
+ 80110de:	e7d0      	b.n	8011082 <CalcNextV10X+0x22>
+                getPhy.Attribute = PHY_MAX_TX_POWER;
+ 80110e0:	2308      	movs	r3, #8
+ 80110e2:	f88d 3018 	strb.w	r3, [sp, #24]
+                phyParam = RegionGetPhyParam( adrNext->Region, &getPhy );
+ 80110e6:	a906      	add	r1, sp, #24
+ 80110e8:	7ce0      	ldrb	r0, [r4, #19]
+ 80110ea:	f001 f848 	bl	801217e <RegionGetPhyParam>
+ 80110ee:	9005      	str	r0, [sp, #20]
+                txPower = phyParam.Value;
+ 80110f0:	fa4f fb80 	sxtb.w	fp, r0
+                if( ( adrNext->AdrAckCounter % adrNext->AdrAckDelay ) == 1 )
+ 80110f4:	68a3      	ldr	r3, [r4, #8]
+ 80110f6:	89e2      	ldrh	r2, [r4, #14]
+ 80110f8:	fbb3 f1f2 	udiv	r1, r3, r2
+ 80110fc:	fb02 3311 	mls	r3, r2, r1, r3
+ 8011100:	2b01      	cmp	r3, #1
+ 8011102:	d002      	beq.n	801110a <CalcNextV10X+0xaa>
+        datarate = MAX( datarate, minTxDatarate );
+ 8011104:	f8dd 9004 	ldr.w	r9, [sp, #4]
+ 8011108:	e7bb      	b.n	8011082 <CalcNextV10X+0x22>
+                    getPhy.Attribute = PHY_NEXT_LOWER_TX_DR;
+ 801110a:	2322      	movs	r3, #34	; 0x22
+ 801110c:	f88d 3018 	strb.w	r3, [sp, #24]
+                    getPhy.Datarate = datarate;
+ 8011110:	9b01      	ldr	r3, [sp, #4]
+ 8011112:	f88d 3019 	strb.w	r3, [sp, #25]
+                    getPhy.UplinkDwellTime = adrNext->UplinkDwellTime;
+ 8011116:	7ca3      	ldrb	r3, [r4, #18]
+ 8011118:	f88d 301a 	strb.w	r3, [sp, #26]
+                    phyParam = RegionGetPhyParam( adrNext->Region, &getPhy );
+ 801111c:	a906      	add	r1, sp, #24
+ 801111e:	7ce0      	ldrb	r0, [r4, #19]
+ 8011120:	f001 f82d 	bl	801217e <RegionGetPhyParam>
+ 8011124:	9005      	str	r0, [sp, #20]
+                    datarate = phyParam.Value;
+ 8011126:	fa4f f980 	sxtb.w	r9, r0
+                    if( datarate == minTxDatarate )
+ 801112a:	45ca      	cmp	sl, r9
+ 801112c:	d1a9      	bne.n	8011082 <CalcNextV10X+0x22>
+                        if( adrNext->UpdateChanMask == true )
+ 801112e:	f894 8004 	ldrb.w	r8, [r4, #4]
+ 8011132:	f1b8 0f00 	cmp.w	r8, #0
+ 8011136:	d0a4      	beq.n	8011082 <CalcNextV10X+0x22>
+                            params.Type = INIT_TYPE_ACTIVATE_DEFAULT_CHANNELS;
+ 8011138:	2302      	movs	r3, #2
+ 801113a:	f88d 3010 	strb.w	r3, [sp, #16]
+                            RegionInitDefaults( adrNext->Region, &params );
+ 801113e:	a902      	add	r1, sp, #8
+ 8011140:	7ce0      	ldrb	r0, [r4, #19]
+ 8011142:	f001 f833 	bl	80121ac <RegionInitDefaults>
+                        adrAckReq = false;
+ 8011146:	f04f 0800 	mov.w	r8, #0
+ 801114a:	e79a      	b.n	8011082 <CalcNextV10X+0x22>
+
+0801114c <LoRaMacAdrCalcNext>:
+ * \param [OUT] adrAckCounter The calculated ADR acknowledgement counter.
+ *
+ * \retval Returns true, if an ADR request should be performed.
+ */
+bool LoRaMacAdrCalcNext( CalcNextAdrParams_t* adrNext, int8_t* drOut, int8_t* txPowOut, uint32_t* adrAckCounter )
+{
+ 801114c:	b510      	push	{r4, lr}
+    if( adrNext->Version.Fields.Minor == 0 )
+ 801114e:	7884      	ldrb	r4, [r0, #2]
+ 8011150:	b10c      	cbz	r4, 8011156 <LoRaMacAdrCalcNext+0xa>
+    {
+        return CalcNextV10X( adrNext, drOut, txPowOut, adrAckCounter );
+    }
+    return false;
+ 8011152:	2000      	movs	r0, #0
+}
+ 8011154:	bd10      	pop	{r4, pc}
+        return CalcNextV10X( adrNext, drOut, txPowOut, adrAckCounter );
+ 8011156:	f7ff ff83 	bl	8011060 <CalcNextV10X>
+ 801115a:	e7fb      	b.n	8011154 <LoRaMacAdrCalcNext+0x8>
+
+0801115c <LoRaMacClassBInit>:
+    TimerInit( &Ctx.PingSlotTimer, LoRaMacClassBPingSlotTimerEvent );
+    TimerInit( &Ctx.MulticastSlotTimer, LoRaMacClassBMulticastSlotTimerEvent );
+
+    InitClassB( );
+#endif /* LORAMAC_CLASSB_ENABLED */
+}
+ 801115c:	4770      	bx	lr
+
+0801115e <LoRaMacClassBSetBeaconState>:
+        {
+            Ctx.BeaconState = beaconState;
+        }
+    }
+#endif /* LORAMAC_CLASSB_ENABLED */
+}
+ 801115e:	4770      	bx	lr
+
+08011160 <LoRaMacClassBSetPingSlotState>:
+void LoRaMacClassBSetPingSlotState( PingSlotState_t pingSlotState )
+{
+#if ( LORAMAC_CLASSB_ENABLED == 1 )
+    Ctx.PingSlotState = pingSlotState;
+#endif /* LORAMAC_CLASSB_ENABLED */
+}
+ 8011160:	4770      	bx	lr
+
+08011162 <LoRaMacClassBSetMulticastSlotState>:
+void LoRaMacClassBSetMulticastSlotState( PingSlotState_t multicastSlotState )
+{
+#if ( LORAMAC_CLASSB_ENABLED == 1 )
+    Ctx.MulticastSlotState = multicastSlotState;
+#endif /* LORAMAC_CLASSB_ENABLED */
+}
+ 8011162:	4770      	bx	lr
+
+08011164 <LoRaMacClassBIsAcquisitionInProgress>:
+    }
+    return false;
+#else
+    return false;
+#endif /* LORAMAC_CLASSB_ENABLED */
+}
+ 8011164:	2000      	movs	r0, #0
+ 8011166:	4770      	bx	lr
+
+08011168 <LoRaMacClassBBeaconTimerEvent>:
+    Ctx.BeaconCtx.TimeStamp = TimerGetCurrentTime( );
+    TimerStop( &Ctx.BeaconTimer );
+    LoRaMacClassBEvents.Events.Beacon = 1;
+    OnClassBMacProcessNotify( );
+#endif /* LORAMAC_CLASSB_ENABLED */
+}
+ 8011168:	4770      	bx	lr
+
+0801116a <LoRaMacClassBPingSlotTimerEvent>:
+#if ( LORAMAC_CLASSB_ENABLED == 1 )
+    LoRaMacClassBEvents.Events.PingSlot = 1;
+
+    OnClassBMacProcessNotify( );
+#endif /* LORAMAC_CLASSB_ENABLED */
+}
+ 801116a:	4770      	bx	lr
+
+0801116c <LoRaMacClassBMulticastSlotTimerEvent>:
+#if ( LORAMAC_CLASSB_ENABLED == 1 )
+    LoRaMacClassBEvents.Events.MulticastSlot = 1;
+
+    OnClassBMacProcessNotify( );
+#endif /* LORAMAC_CLASSB_ENABLED */
+}
+ 801116c:	4770      	bx	lr
+
+0801116e <LoRaMacClassBRxBeacon>:
+    }
+    return beaconProcessed;
+#else
+    return false;
+#endif /* LORAMAC_CLASSB_ENABLED */
+}
+ 801116e:	2000      	movs	r0, #0
+ 8011170:	4770      	bx	lr
+
+08011172 <LoRaMacClassBIsBeaconExpected>:
+    }
+    return false;
+#else
+    return false;
+#endif /* LORAMAC_CLASSB_ENABLED */
+}
+ 8011172:	2000      	movs	r0, #0
+ 8011174:	4770      	bx	lr
+
+08011176 <LoRaMacClassBIsPingExpected>:
+    }
+    return false;
+#else
+    return false;
+#endif /* LORAMAC_CLASSB_ENABLED */
+}
+ 8011176:	2000      	movs	r0, #0
+ 8011178:	4770      	bx	lr
+
+0801117a <LoRaMacClassBIsMulticastExpected>:
+    }
+    return false;
+#else
+    return false;
+#endif /* LORAMAC_CLASSB_ENABLED */
+}
+ 801117a:	2000      	movs	r0, #0
+ 801117c:	4770      	bx	lr
+
+0801117e <LoRaMacClassBIsBeaconModeActive>:
+    }
+    return false;
+#else
+    return false;
+#endif /* LORAMAC_CLASSB_ENABLED */
+}
+ 801117e:	2000      	movs	r0, #0
+ 8011180:	4770      	bx	lr
+
+08011182 <LoRaMacClassBSetPingSlotInfo>:
+{
+#if ( LORAMAC_CLASSB_ENABLED == 1 )
+    ClassBNvm->PingSlotCtx.PingNb = CalcPingNb( periodicity );
+    ClassBNvm->PingSlotCtx.PingPeriod = CalcPingPeriod( ClassBNvm->PingSlotCtx.PingNb );
+#endif /* LORAMAC_CLASSB_ENABLED */
+}
+ 8011182:	4770      	bx	lr
+
+08011184 <LoRaMacClassBHaltBeaconing>:
+
+        // Halt ping and multicast slot state machines
+        LoRaMacClassBStopRxSlots( );
+    }
+#endif /* LORAMAC_CLASSB_ENABLED */
+}
+ 8011184:	4770      	bx	lr
+
+08011186 <LoRaMacClassBResumeBeaconing>:
+        }
+
+        LoRaMacClassBBeaconTimerEvent( NULL );
+    }
+#endif /* LORAMAC_CLASSB_ENABLED */
+}
+ 8011186:	4770      	bx	lr
+
+08011188 <LoRaMacClassBSwitchClass>:
+    }
+    return LORAMAC_STATUS_SERVICE_UNKNOWN;
+#else
+    return LORAMAC_STATUS_SERVICE_UNKNOWN;
+#endif /* LORAMAC_CLASSB_ENABLED */
+}
+ 8011188:	2002      	movs	r0, #2
+ 801118a:	4770      	bx	lr
+
+0801118c <LoRaMacClassBMibGetRequestConfirm>:
+    }
+    return status;
+#else
+    return LORAMAC_STATUS_SERVICE_UNKNOWN;
+#endif /* LORAMAC_CLASSB_ENABLED */
+}
+ 801118c:	2002      	movs	r0, #2
+ 801118e:	4770      	bx	lr
+
+08011190 <LoRaMacMibClassBSetRequestConfirm>:
+    }
+    return status;
+#else
+    return LORAMAC_STATUS_SERVICE_UNKNOWN;
+#endif /* LORAMAC_CLASSB_ENABLED */
+}
+ 8011190:	2002      	movs	r0, #2
+ 8011192:	4770      	bx	lr
+
+08011194 <LoRaMacClassBPingSlotInfoAns>:
+    {
+        LoRaMacConfirmQueueSetStatus( LORAMAC_EVENT_INFO_STATUS_OK, MLME_PING_SLOT_INFO );
+        ClassBNvm->PingSlotCtx.Ctrl.Assigned = 1;
+    }
+#endif /* LORAMAC_CLASSB_ENABLED */
+}
+ 8011194:	4770      	bx	lr
+
+08011196 <LoRaMacClassBPingSlotChannelReq>:
+
+    return status;
+#else
+    return 0;
+#endif /* LORAMAC_CLASSB_ENABLED */
+}
+ 8011196:	2000      	movs	r0, #0
+ 8011198:	4770      	bx	lr
+
+0801119a <LoRaMacClassBBeaconTimingAns>:
+
+        Ctx.LoRaMacClassBParams.MlmeConfirm->BeaconTimingDelay = Ctx.BeaconCtx.BeaconTimingDelay;
+        Ctx.LoRaMacClassBParams.MlmeConfirm->BeaconTimingChannel = Ctx.BeaconCtx.BeaconTimingChannel;
+    }
+#endif /* LORAMAC_CLASSB_ENABLED */
+}
+ 801119a:	4770      	bx	lr
+
+0801119c <LoRaMacClassBDeviceTimeAns>:
+            Ctx.BeaconCtx.BeaconTime.SubSeconds = 0;
+            LoRaMacConfirmQueueSetStatus( LORAMAC_EVENT_INFO_STATUS_OK, MLME_DEVICE_TIME );
+        }
+    }
+#endif /* LORAMAC_CLASSB_ENABLED */
+}
+ 801119c:	4770      	bx	lr
+
+0801119e <LoRaMacClassBBeaconFreqReq>:
+    }
+    return false;
+#else
+    return false;
+#endif /* LORAMAC_CLASSB_ENABLED */
+}
+ 801119e:	2000      	movs	r0, #0
+ 80111a0:	4770      	bx	lr
+
+080111a2 <LoRaMacClassBIsUplinkCollision>:
+    }
+    return 0;
+#else
+    return 0;
+#endif /* LORAMAC_CLASSB_ENABLED */
+}
+ 80111a2:	2000      	movs	r0, #0
+ 80111a4:	4770      	bx	lr
+
+080111a6 <LoRaMacClassBStopRxSlots>:
+    CRITICAL_SECTION_BEGIN( );
+    LoRaMacClassBEvents.Events.PingSlot = 0;
+    LoRaMacClassBEvents.Events.MulticastSlot = 0;
+    CRITICAL_SECTION_END( );
+#endif /* LORAMAC_CLASSB_ENABLED */
+}
+ 80111a6:	4770      	bx	lr
+
+080111a8 <LoRaMacClassBProcess>:
+        {
+            LoRaMacClassBProcessMulticastSlot( );
+        }
+    }
+#endif /* LORAMAC_CLASSB_ENABLED */
+}
+ 80111a8:	4770      	bx	lr
+
+080111aa <IsSlotFree>:
+ */
+static bool IsSlotFree( const MacCommand_t* slot )
+{
+    uint8_t* mem = ( uint8_t* )slot;
+
+    for( uint16_t size = 0; size < sizeof( MacCommand_t ); size++ )
+ 80111aa:	2300      	movs	r3, #0
+ 80111ac:	2b0f      	cmp	r3, #15
+ 80111ae:	d804      	bhi.n	80111ba <IsSlotFree+0x10>
+    {
+        if( mem[size] != 0x00 )
+ 80111b0:	5cc2      	ldrb	r2, [r0, r3]
+ 80111b2:	b922      	cbnz	r2, 80111be <IsSlotFree+0x14>
+    for( uint16_t size = 0; size < sizeof( MacCommand_t ); size++ )
+ 80111b4:	3301      	adds	r3, #1
+ 80111b6:	b29b      	uxth	r3, r3
+ 80111b8:	e7f8      	b.n	80111ac <IsSlotFree+0x2>
+        {
+            return false;
+        }
+    }
+    return true;
+ 80111ba:	2001      	movs	r0, #1
+ 80111bc:	4770      	bx	lr
+            return false;
+ 80111be:	2000      	movs	r0, #0
+}
+ 80111c0:	4770      	bx	lr
+	...
+
+080111c4 <MallocNewMacCommandSlot>:
+ * \brief Allocates a new MAC command memory slot
+ *
+ * \retval                       - Pointer to slot
+ */
+static MacCommand_t* MallocNewMacCommandSlot( void )
+{
+ 80111c4:	b538      	push	{r3, r4, r5, lr}
+    uint8_t itr = 0;
+ 80111c6:	2400      	movs	r4, #0
+
+    while( IsSlotFree( ( const MacCommand_t* )&CommandsCtx.MacCommandSlots[itr] ) == false )
+ 80111c8:	0123      	lsls	r3, r4, #4
+ 80111ca:	3308      	adds	r3, #8
+ 80111cc:	4d06      	ldr	r5, [pc, #24]	; (80111e8 <MallocNewMacCommandSlot+0x24>)
+ 80111ce:	441d      	add	r5, r3
+ 80111d0:	4628      	mov	r0, r5
+ 80111d2:	f7ff ffea 	bl	80111aa <IsSlotFree>
+ 80111d6:	b920      	cbnz	r0, 80111e2 <MallocNewMacCommandSlot+0x1e>
+    {
+        itr++;
+ 80111d8:	3401      	adds	r4, #1
+ 80111da:	b2e4      	uxtb	r4, r4
+        if( itr == NUM_OF_MAC_COMMANDS )
+ 80111dc:	2c0f      	cmp	r4, #15
+ 80111de:	d1f3      	bne.n	80111c8 <MallocNewMacCommandSlot+0x4>
+        {
+            return NULL;
+ 80111e0:	2500      	movs	r5, #0
+        }
+    }
+
+    return &CommandsCtx.MacCommandSlots[itr];
+}
+ 80111e2:	4628      	mov	r0, r5
+ 80111e4:	bd38      	pop	{r3, r4, r5, pc}
+ 80111e6:	bf00      	nop
+ 80111e8:	20002500 	.word	0x20002500
+
+080111ec <LinkedListInit>:
+ * \param [in]    list           - List that shall be initialized
+ * \retval                       - Status of the operation
+ */
+static bool LinkedListInit( MacCommandsList_t* list )
+{
+    if( list == NULL )
+ 80111ec:	b120      	cbz	r0, 80111f8 <LinkedListInit+0xc>
+    {
+        return false;
+    }
+
+    list->First = NULL;
+ 80111ee:	2200      	movs	r2, #0
+ 80111f0:	6002      	str	r2, [r0, #0]
+    list->Last = NULL;
+ 80111f2:	6042      	str	r2, [r0, #4]
+
+    return true;
+ 80111f4:	2001      	movs	r0, #1
+ 80111f6:	4770      	bx	lr
+        return false;
+ 80111f8:	2000      	movs	r0, #0
+}
+ 80111fa:	4770      	bx	lr
+
+080111fc <LinkedListAdd>:
+ * \param [in]    element        - Element to add
+ * \retval                       - Status of the operation
+ */
+static bool LinkedListAdd( MacCommandsList_t* list, MacCommand_t* element )
+{
+    if( ( list == NULL ) || ( element == NULL ) )
+ 80111fc:	4603      	mov	r3, r0
+ 80111fe:	b160      	cbz	r0, 801121a <LinkedListAdd+0x1e>
+ 8011200:	b169      	cbz	r1, 801121e <LinkedListAdd+0x22>
+    {
+        return false;
+    }
+
+    // Check if this is the first entry to enter the list.
+    if( list->First == NULL )
+ 8011202:	6802      	ldr	r2, [r0, #0]
+ 8011204:	b13a      	cbz	r2, 8011216 <LinkedListAdd+0x1a>
+    {
+        list->First = element;
+    }
+
+    // Check if the last entry exists and update its next point.
+    if( list->Last )
+ 8011206:	685a      	ldr	r2, [r3, #4]
+ 8011208:	b102      	cbz	r2, 801120c <LinkedListAdd+0x10>
+    {
+        list->Last->Next = element;
+ 801120a:	6011      	str	r1, [r2, #0]
+    }
+
+    // Update the next point of this entry.
+    element->Next = NULL;
+ 801120c:	2200      	movs	r2, #0
+ 801120e:	600a      	str	r2, [r1, #0]
+
+    // Update the last entry of the list.
+    list->Last = element;
+ 8011210:	6059      	str	r1, [r3, #4]
+
+    return true;
+ 8011212:	2001      	movs	r0, #1
+ 8011214:	4770      	bx	lr
+        list->First = element;
+ 8011216:	6001      	str	r1, [r0, #0]
+ 8011218:	e7f5      	b.n	8011206 <LinkedListAdd+0xa>
+        return false;
+ 801121a:	2000      	movs	r0, #0
+ 801121c:	4770      	bx	lr
+ 801121e:	2000      	movs	r0, #0
+}
+ 8011220:	4770      	bx	lr
+
+08011222 <LinkedListGetPrevious>:
+ * \param [in]    element        - Element where the previous element shall be searched
+ * \retval                       - Status of the operation
+ */
+static MacCommand_t* LinkedListGetPrevious( MacCommandsList_t* list, MacCommand_t* element )
+{
+    if( ( list == NULL ) || ( element == NULL ) )
+ 8011222:	b160      	cbz	r0, 801123e <LinkedListGetPrevious+0x1c>
+ 8011224:	b161      	cbz	r1, 8011240 <LinkedListGetPrevious+0x1e>
+    }
+
+    MacCommand_t* curElement;
+
+    // Start at the head of the list
+    curElement = list->First;
+ 8011226:	6800      	ldr	r0, [r0, #0]
+
+    // When current element is the first of the list, there's no previous element so we can return NULL immediately.
+    if( element != curElement )
+ 8011228:	4281      	cmp	r1, r0
+ 801122a:	d102      	bne.n	8011232 <LinkedListGetPrevious+0x10>
+            curElement = curElement->Next;
+        }
+    }
+    else
+    {
+        curElement = NULL;
+ 801122c:	2000      	movs	r0, #0
+    }
+
+    return curElement;
+}
+ 801122e:	4770      	bx	lr
+            curElement = curElement->Next;
+ 8011230:	4618      	mov	r0, r3
+        while( ( curElement != NULL ) && ( curElement->Next != element ) )
+ 8011232:	2800      	cmp	r0, #0
+ 8011234:	d0fb      	beq.n	801122e <LinkedListGetPrevious+0xc>
+ 8011236:	6803      	ldr	r3, [r0, #0]
+ 8011238:	428b      	cmp	r3, r1
+ 801123a:	d1f9      	bne.n	8011230 <LinkedListGetPrevious+0xe>
+ 801123c:	4770      	bx	lr
+ 801123e:	4770      	bx	lr
+        return NULL;
+ 8011240:	4608      	mov	r0, r1
+ 8011242:	4770      	bx	lr
+
+08011244 <LinkedListRemove>:
+ * \param [in]    element        - Element to remove
+ * \retval                       - Status of the operation
+ */
+static bool LinkedListRemove( MacCommandsList_t* list, MacCommand_t* element )
+{
+    if( ( list == NULL ) || ( element == NULL ) )
+ 8011244:	b1b8      	cbz	r0, 8011276 <LinkedListRemove+0x32>
+{
+ 8011246:	b538      	push	{r3, r4, r5, lr}
+ 8011248:	460c      	mov	r4, r1
+ 801124a:	4605      	mov	r5, r0
+    if( ( list == NULL ) || ( element == NULL ) )
+ 801124c:	b1a9      	cbz	r1, 801127a <LinkedListRemove+0x36>
+    {
+        return false;
+    }
+
+    MacCommand_t* PrevElement = LinkedListGetPrevious( list, element );
+ 801124e:	f7ff ffe8 	bl	8011222 <LinkedListGetPrevious>
+
+    if( list->First == element )
+ 8011252:	682b      	ldr	r3, [r5, #0]
+ 8011254:	42a3      	cmp	r3, r4
+ 8011256:	d009      	beq.n	801126c <LinkedListRemove+0x28>
+    {
+        list->First = element->Next;
+    }
+
+    if( list->Last == element )
+ 8011258:	686b      	ldr	r3, [r5, #4]
+ 801125a:	42a3      	cmp	r3, r4
+ 801125c:	d009      	beq.n	8011272 <LinkedListRemove+0x2e>
+    {
+        list->Last = PrevElement;
+    }
+
+    if( PrevElement != NULL )
+ 801125e:	b108      	cbz	r0, 8011264 <LinkedListRemove+0x20>
+    {
+        PrevElement->Next = element->Next;
+ 8011260:	6823      	ldr	r3, [r4, #0]
+ 8011262:	6003      	str	r3, [r0, #0]
+    }
+
+    element->Next = NULL;
+ 8011264:	2300      	movs	r3, #0
+ 8011266:	6023      	str	r3, [r4, #0]
+
+    return true;
+ 8011268:	2001      	movs	r0, #1
+}
+ 801126a:	bd38      	pop	{r3, r4, r5, pc}
+        list->First = element->Next;
+ 801126c:	6823      	ldr	r3, [r4, #0]
+ 801126e:	602b      	str	r3, [r5, #0]
+ 8011270:	e7f2      	b.n	8011258 <LinkedListRemove+0x14>
+        list->Last = PrevElement;
+ 8011272:	6068      	str	r0, [r5, #4]
+ 8011274:	e7f3      	b.n	801125e <LinkedListRemove+0x1a>
+        return false;
+ 8011276:	2000      	movs	r0, #0
+}
+ 8011278:	4770      	bx	lr
+        return false;
+ 801127a:	2000      	movs	r0, #0
+ 801127c:	e7f5      	b.n	801126a <LinkedListRemove+0x26>
+
+0801127e <IsSticky>:
+ *
+ * \retval                     - Status of the operation
+ */
+static bool IsSticky( uint8_t cid )
+{
+    switch( cid )
+ 801127e:	2805      	cmp	r0, #5
+ 8011280:	d006      	beq.n	8011290 <IsSticky+0x12>
+ 8011282:	d307      	bcc.n	8011294 <IsSticky+0x16>
+ 8011284:	3808      	subs	r0, #8
+ 8011286:	b2c0      	uxtb	r0, r0
+ 8011288:	2802      	cmp	r0, #2
+ 801128a:	d905      	bls.n	8011298 <IsSticky+0x1a>
+#if (defined( LORAMAC_VERSION ) && (( LORAMAC_VERSION == 0x01000400 ) || ( LORAMAC_VERSION == 0x01010100 )))
+        case MOTE_MAC_PING_SLOT_CHANNEL_ANS:
+#endif /* LORAMAC_VERSION */
+            return true;
+        default:
+            return false;
+ 801128c:	2000      	movs	r0, #0
+ 801128e:	4770      	bx	lr
+    switch( cid )
+ 8011290:	2001      	movs	r0, #1
+ 8011292:	4770      	bx	lr
+            return false;
+ 8011294:	2000      	movs	r0, #0
+ 8011296:	4770      	bx	lr
+    switch( cid )
+ 8011298:	2001      	movs	r0, #1
+    }
+}
+ 801129a:	4770      	bx	lr
+
+0801129c <IsConfirmationRequired>:
+            return true;
+#endif /* LORAMAC_VERSION */
+        default:
+            return false;
+    }
+}
+ 801129c:	2000      	movs	r0, #0
+ 801129e:	4770      	bx	lr
+
+080112a0 <FreeMacCommandSlot>:
+    if( slot == NULL )
+ 80112a0:	b130      	cbz	r0, 80112b0 <FreeMacCommandSlot+0x10>
+{
+ 80112a2:	b508      	push	{r3, lr}
+    memset1( ( uint8_t* )slot, 0x00, sizeof( MacCommand_t ) );
+ 80112a4:	2210      	movs	r2, #16
+ 80112a6:	2100      	movs	r1, #0
+ 80112a8:	f003 f98f 	bl	80145ca <memset1>
+    return true;
+ 80112ac:	2001      	movs	r0, #1
+}
+ 80112ae:	bd08      	pop	{r3, pc}
+        return false;
+ 80112b0:	2000      	movs	r0, #0
+}
+ 80112b2:	4770      	bx	lr
+
+080112b4 <LoRaMacCommandsInit>:
+
+LoRaMacCommandStatus_t LoRaMacCommandsInit( void )
+{
+ 80112b4:	b510      	push	{r4, lr}
+    // Initialize with default
+    memset1( ( uint8_t* )&CommandsCtx, 0, sizeof( CommandsCtx ) );
+ 80112b6:	4c05      	ldr	r4, [pc, #20]	; (80112cc <LoRaMacCommandsInit+0x18>)
+ 80112b8:	22fc      	movs	r2, #252	; 0xfc
+ 80112ba:	2100      	movs	r1, #0
+ 80112bc:	4620      	mov	r0, r4
+ 80112be:	f003 f984 	bl	80145ca <memset1>
+
+    LinkedListInit( &CommandsCtx.MacCommandList );
+ 80112c2:	4620      	mov	r0, r4
+ 80112c4:	f7ff ff92 	bl	80111ec <LinkedListInit>
+
+    return LORAMAC_COMMANDS_SUCCESS;
+}
+ 80112c8:	2000      	movs	r0, #0
+ 80112ca:	bd10      	pop	{r4, pc}
+ 80112cc:	20002500 	.word	0x20002500
+
+080112d0 <LoRaMacCommandsAddCmd>:
+
+LoRaMacCommandStatus_t LoRaMacCommandsAddCmd( uint8_t cid, uint8_t* payload, size_t payloadSize )
+{
+    if( payload == NULL )
+ 80112d0:	b321      	cbz	r1, 801131c <LoRaMacCommandsAddCmd+0x4c>
+{
+ 80112d2:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 80112d4:	4605      	mov	r5, r0
+ 80112d6:	4614      	mov	r4, r2
+ 80112d8:	460f      	mov	r7, r1
+        return LORAMAC_COMMANDS_ERROR_NPE;
+    }
+    MacCommand_t* newCmd;
+
+    // Allocate a memory slot
+    newCmd = MallocNewMacCommandSlot( );
+ 80112da:	f7ff ff73 	bl	80111c4 <MallocNewMacCommandSlot>
+
+    if( newCmd == NULL )
+ 80112de:	4606      	mov	r6, r0
+ 80112e0:	b1f0      	cbz	r0, 8011320 <LoRaMacCommandsAddCmd+0x50>
+    {
+        return LORAMAC_COMMANDS_ERROR_MEMORY;
+    }
+
+    // Add it to the list of Mac commands
+    if( LinkedListAdd( &CommandsCtx.MacCommandList, newCmd ) == false )
+ 80112e2:	4601      	mov	r1, r0
+ 80112e4:	4810      	ldr	r0, [pc, #64]	; (8011328 <LoRaMacCommandsAddCmd+0x58>)
+ 80112e6:	f7ff ff89 	bl	80111fc <LinkedListAdd>
+ 80112ea:	b1d8      	cbz	r0, 8011324 <LoRaMacCommandsAddCmd+0x54>
+    {
+        return LORAMAC_COMMANDS_ERROR;
+    }
+
+    // Set Values
+    newCmd->CID = cid;
+ 80112ec:	7135      	strb	r5, [r6, #4]
+    newCmd->PayloadSize = payloadSize;
+ 80112ee:	60b4      	str	r4, [r6, #8]
+    memcpy1( ( uint8_t* )newCmd->Payload, payload, payloadSize );
+ 80112f0:	b2a2      	uxth	r2, r4
+ 80112f2:	4639      	mov	r1, r7
+ 80112f4:	1d70      	adds	r0, r6, #5
+ 80112f6:	f003 f950 	bl	801459a <memcpy1>
+    newCmd->IsSticky = IsSticky( cid );
+ 80112fa:	4628      	mov	r0, r5
+ 80112fc:	f7ff ffbf 	bl	801127e <IsSticky>
+ 8011300:	7330      	strb	r0, [r6, #12]
+    newCmd->IsConfirmationRequired = IsConfirmationRequired( cid );
+ 8011302:	4628      	mov	r0, r5
+ 8011304:	f7ff ffca 	bl	801129c <IsConfirmationRequired>
+ 8011308:	7370      	strb	r0, [r6, #13]
+
+    CommandsCtx.SerializedCmdsSize += ( CID_FIELD_SIZE + payloadSize );
+ 801130a:	4b07      	ldr	r3, [pc, #28]	; (8011328 <LoRaMacCommandsAddCmd+0x58>)
+ 801130c:	f8d3 20f8 	ldr.w	r2, [r3, #248]	; 0xf8
+ 8011310:	4414      	add	r4, r2
+ 8011312:	3401      	adds	r4, #1
+ 8011314:	f8c3 40f8 	str.w	r4, [r3, #248]	; 0xf8
+
+    return LORAMAC_COMMANDS_SUCCESS;
+ 8011318:	2000      	movs	r0, #0
+}
+ 801131a:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+        return LORAMAC_COMMANDS_ERROR_NPE;
+ 801131c:	2001      	movs	r0, #1
+}
+ 801131e:	4770      	bx	lr
+        return LORAMAC_COMMANDS_ERROR_MEMORY;
+ 8011320:	2002      	movs	r0, #2
+ 8011322:	e7fa      	b.n	801131a <LoRaMacCommandsAddCmd+0x4a>
+        return LORAMAC_COMMANDS_ERROR;
+ 8011324:	2005      	movs	r0, #5
+ 8011326:	e7f8      	b.n	801131a <LoRaMacCommandsAddCmd+0x4a>
+ 8011328:	20002500 	.word	0x20002500
+
+0801132c <LoRaMacCommandsRemoveCmd>:
+
+LoRaMacCommandStatus_t LoRaMacCommandsRemoveCmd( MacCommand_t* macCmd )
+{
+    if( macCmd == NULL )
+ 801132c:	b1a0      	cbz	r0, 8011358 <LoRaMacCommandsRemoveCmd+0x2c>
+{
+ 801132e:	b510      	push	{r4, lr}
+ 8011330:	4604      	mov	r4, r0
+    {
+        return LORAMAC_COMMANDS_ERROR_NPE;
+    }
+
+    // Remove the Mac command element from MacCommandList
+    if( LinkedListRemove( &CommandsCtx.MacCommandList, macCmd ) == false )
+ 8011332:	4601      	mov	r1, r0
+ 8011334:	480b      	ldr	r0, [pc, #44]	; (8011364 <LoRaMacCommandsRemoveCmd+0x38>)
+ 8011336:	f7ff ff85 	bl	8011244 <LinkedListRemove>
+ 801133a:	b178      	cbz	r0, 801135c <LoRaMacCommandsRemoveCmd+0x30>
+    {
+        return LORAMAC_COMMANDS_ERROR_CMD_NOT_FOUND;
+    }
+
+    CommandsCtx.SerializedCmdsSize -= ( CID_FIELD_SIZE + macCmd->PayloadSize );
+ 801133c:	68a1      	ldr	r1, [r4, #8]
+ 801133e:	4a09      	ldr	r2, [pc, #36]	; (8011364 <LoRaMacCommandsRemoveCmd+0x38>)
+ 8011340:	f8d2 30f8 	ldr.w	r3, [r2, #248]	; 0xf8
+ 8011344:	1a5b      	subs	r3, r3, r1
+ 8011346:	3b01      	subs	r3, #1
+ 8011348:	f8c2 30f8 	str.w	r3, [r2, #248]	; 0xf8
+
+    // Free the MacCommand Slot
+    if( FreeMacCommandSlot( macCmd ) == false )
+ 801134c:	4620      	mov	r0, r4
+ 801134e:	f7ff ffa7 	bl	80112a0 <FreeMacCommandSlot>
+ 8011352:	b128      	cbz	r0, 8011360 <LoRaMacCommandsRemoveCmd+0x34>
+    {
+        return LORAMAC_COMMANDS_ERROR;
+    }
+
+    return LORAMAC_COMMANDS_SUCCESS;
+ 8011354:	2000      	movs	r0, #0
+}
+ 8011356:	bd10      	pop	{r4, pc}
+        return LORAMAC_COMMANDS_ERROR_NPE;
+ 8011358:	2001      	movs	r0, #1
+}
+ 801135a:	4770      	bx	lr
+        return LORAMAC_COMMANDS_ERROR_CMD_NOT_FOUND;
+ 801135c:	2003      	movs	r0, #3
+ 801135e:	e7fa      	b.n	8011356 <LoRaMacCommandsRemoveCmd+0x2a>
+        return LORAMAC_COMMANDS_ERROR;
+ 8011360:	2005      	movs	r0, #5
+ 8011362:	e7f8      	b.n	8011356 <LoRaMacCommandsRemoveCmd+0x2a>
+ 8011364:	20002500 	.word	0x20002500
+
+08011368 <LoRaMacCommandsGetCmd>:
+LoRaMacCommandStatus_t LoRaMacCommandsGetCmd( uint8_t cid, MacCommand_t** macCmd )
+{
+    MacCommand_t* curElement;
+
+    // Start at the head of the list
+    curElement = CommandsCtx.MacCommandList.First;
+ 8011368:	4b06      	ldr	r3, [pc, #24]	; (8011384 <LoRaMacCommandsGetCmd+0x1c>)
+ 801136a:	681b      	ldr	r3, [r3, #0]
+
+    // Loop through all elements until we find the element with the given CID
+    while( ( curElement != NULL ) && ( curElement->CID != cid ) )
+ 801136c:	e000      	b.n	8011370 <LoRaMacCommandsGetCmd+0x8>
+    {
+        curElement = curElement->Next;
+ 801136e:	681b      	ldr	r3, [r3, #0]
+    while( ( curElement != NULL ) && ( curElement->CID != cid ) )
+ 8011370:	b113      	cbz	r3, 8011378 <LoRaMacCommandsGetCmd+0x10>
+ 8011372:	791a      	ldrb	r2, [r3, #4]
+ 8011374:	4282      	cmp	r2, r0
+ 8011376:	d1fa      	bne.n	801136e <LoRaMacCommandsGetCmd+0x6>
+    }
+
+    // Update the pointer anyway
+    *macCmd = curElement;
+ 8011378:	600b      	str	r3, [r1, #0]
+
+    // Handle error in case if we reached the end without finding it.
+    if( curElement == NULL )
+ 801137a:	b10b      	cbz	r3, 8011380 <LoRaMacCommandsGetCmd+0x18>
+    {
+        return LORAMAC_COMMANDS_ERROR_CMD_NOT_FOUND;
+    }
+    return LORAMAC_COMMANDS_SUCCESS;
+ 801137c:	2000      	movs	r0, #0
+ 801137e:	4770      	bx	lr
+        return LORAMAC_COMMANDS_ERROR_CMD_NOT_FOUND;
+ 8011380:	2003      	movs	r0, #3
+}
+ 8011382:	4770      	bx	lr
+ 8011384:	20002500 	.word	0x20002500
+
+08011388 <LoRaMacCommandsRemoveNoneStickyCmds>:
+{
+    MacCommand_t* curElement;
+    MacCommand_t* nexElement;
+
+    // Start at the head of the list
+    curElement = CommandsCtx.MacCommandList.First;
+ 8011388:	4b0a      	ldr	r3, [pc, #40]	; (80113b4 <LoRaMacCommandsRemoveNoneStickyCmds+0x2c>)
+ 801138a:	6818      	ldr	r0, [r3, #0]
+
+    // Loop through all elements
+    while( curElement != NULL )
+ 801138c:	b120      	cbz	r0, 8011398 <LoRaMacCommandsRemoveNoneStickyCmds+0x10>
+    {
+        if( curElement->IsSticky == false )
+ 801138e:	7b03      	ldrb	r3, [r0, #12]
+ 8011390:	b11b      	cbz	r3, 801139a <LoRaMacCommandsRemoveNoneStickyCmds+0x12>
+            LoRaMacCommandsRemoveCmd( curElement );
+            curElement = nexElement;
+        }
+        else
+        {
+            curElement = curElement->Next;
+ 8011392:	6800      	ldr	r0, [r0, #0]
+ 8011394:	e7fa      	b.n	801138c <LoRaMacCommandsRemoveNoneStickyCmds+0x4>
+        }
+    }
+
+    return LORAMAC_COMMANDS_SUCCESS;
+}
+ 8011396:	bd10      	pop	{r4, pc}
+ 8011398:	4770      	bx	lr
+{
+ 801139a:	b510      	push	{r4, lr}
+            nexElement = curElement->Next;
+ 801139c:	6804      	ldr	r4, [r0, #0]
+            LoRaMacCommandsRemoveCmd( curElement );
+ 801139e:	f7ff ffc5 	bl	801132c <LoRaMacCommandsRemoveCmd>
+            curElement = nexElement;
+ 80113a2:	4620      	mov	r0, r4
+    while( curElement != NULL )
+ 80113a4:	2800      	cmp	r0, #0
+ 80113a6:	d0f6      	beq.n	8011396 <LoRaMacCommandsRemoveNoneStickyCmds+0xe>
+        if( curElement->IsSticky == false )
+ 80113a8:	7b03      	ldrb	r3, [r0, #12]
+ 80113aa:	2b00      	cmp	r3, #0
+ 80113ac:	d0f6      	beq.n	801139c <LoRaMacCommandsRemoveNoneStickyCmds+0x14>
+            curElement = curElement->Next;
+ 80113ae:	6800      	ldr	r0, [r0, #0]
+ 80113b0:	e7f8      	b.n	80113a4 <LoRaMacCommandsRemoveNoneStickyCmds+0x1c>
+ 80113b2:	bf00      	nop
+ 80113b4:	20002500 	.word	0x20002500
+
+080113b8 <LoRaMacCommandsRemoveStickyAnsCmds>:
+
+LoRaMacCommandStatus_t LoRaMacCommandsRemoveStickyAnsCmds( void )
+{
+ 80113b8:	b570      	push	{r4, r5, r6, lr}
+    MacCommand_t* curElement;
+    MacCommand_t* nexElement;
+
+    // Start at the head of the list
+    curElement = CommandsCtx.MacCommandList.First;
+ 80113ba:	4b0b      	ldr	r3, [pc, #44]	; (80113e8 <LoRaMacCommandsRemoveStickyAnsCmds+0x30>)
+ 80113bc:	681c      	ldr	r4, [r3, #0]
+
+    // Loop through all elements
+    while( curElement != NULL )
+ 80113be:	e000      	b.n	80113c2 <LoRaMacCommandsRemoveStickyAnsCmds+0xa>
+{
+ 80113c0:	4634      	mov	r4, r6
+    while( curElement != NULL )
+ 80113c2:	b17c      	cbz	r4, 80113e4 <LoRaMacCommandsRemoveStickyAnsCmds+0x2c>
+    {
+        nexElement = curElement->Next;
+ 80113c4:	6826      	ldr	r6, [r4, #0]
+        if( ( IsSticky( curElement->CID ) == true ) &&
+ 80113c6:	7925      	ldrb	r5, [r4, #4]
+ 80113c8:	4628      	mov	r0, r5
+ 80113ca:	f7ff ff58 	bl	801127e <IsSticky>
+ 80113ce:	2800      	cmp	r0, #0
+ 80113d0:	d0f6      	beq.n	80113c0 <LoRaMacCommandsRemoveStickyAnsCmds+0x8>
+            ( IsConfirmationRequired( curElement->CID ) == false ) )
+ 80113d2:	4628      	mov	r0, r5
+ 80113d4:	f7ff ff62 	bl	801129c <IsConfirmationRequired>
+        if( ( IsSticky( curElement->CID ) == true ) &&
+ 80113d8:	2800      	cmp	r0, #0
+ 80113da:	d1f1      	bne.n	80113c0 <LoRaMacCommandsRemoveStickyAnsCmds+0x8>
+        {
+            LoRaMacCommandsRemoveCmd( curElement );
+ 80113dc:	4620      	mov	r0, r4
+ 80113de:	f7ff ffa5 	bl	801132c <LoRaMacCommandsRemoveCmd>
+ 80113e2:	e7ed      	b.n	80113c0 <LoRaMacCommandsRemoveStickyAnsCmds+0x8>
+        }
+        curElement = nexElement;
+    }
+
+    return LORAMAC_COMMANDS_SUCCESS;
+}
+ 80113e4:	2000      	movs	r0, #0
+ 80113e6:	bd70      	pop	{r4, r5, r6, pc}
+ 80113e8:	20002500 	.word	0x20002500
+
+080113ec <LoRaMacCommandsGetSizeSerializedCmds>:
+
+LoRaMacCommandStatus_t LoRaMacCommandsGetSizeSerializedCmds( size_t* size )
+{
+    if( size == NULL )
+ 80113ec:	b128      	cbz	r0, 80113fa <LoRaMacCommandsGetSizeSerializedCmds+0xe>
+    {
+        return LORAMAC_COMMANDS_ERROR_NPE;
+    }
+    *size = CommandsCtx.SerializedCmdsSize;
+ 80113ee:	4a04      	ldr	r2, [pc, #16]	; (8011400 <LoRaMacCommandsGetSizeSerializedCmds+0x14>)
+ 80113f0:	f8d2 20f8 	ldr.w	r2, [r2, #248]	; 0xf8
+ 80113f4:	6002      	str	r2, [r0, #0]
+    return LORAMAC_COMMANDS_SUCCESS;
+ 80113f6:	2000      	movs	r0, #0
+ 80113f8:	4770      	bx	lr
+        return LORAMAC_COMMANDS_ERROR_NPE;
+ 80113fa:	2001      	movs	r0, #1
+}
+ 80113fc:	4770      	bx	lr
+ 80113fe:	bf00      	nop
+ 8011400:	20002500 	.word	0x20002500
+
+08011404 <LoRaMacCommandsSerializeCmds>:
+
+LoRaMacCommandStatus_t LoRaMacCommandsSerializeCmds( size_t availableSize, size_t* effectiveSize, uint8_t* buffer )
+{
+ 8011404:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+    MacCommand_t* curElement = CommandsCtx.MacCommandList.First;
+ 8011408:	4b16      	ldr	r3, [pc, #88]	; (8011464 <LoRaMacCommandsSerializeCmds+0x60>)
+ 801140a:	681c      	ldr	r4, [r3, #0]
+    MacCommand_t* nextElement;
+    uint8_t itr = 0;
+
+    if( ( buffer == NULL ) || ( effectiveSize == NULL ) )
+ 801140c:	b32a      	cbz	r2, 801145a <LoRaMacCommandsSerializeCmds+0x56>
+ 801140e:	4607      	mov	r7, r0
+ 8011410:	4688      	mov	r8, r1
+ 8011412:	4616      	mov	r6, r2
+ 8011414:	b319      	cbz	r1, 801145e <LoRaMacCommandsSerializeCmds+0x5a>
+    uint8_t itr = 0;
+ 8011416:	2100      	movs	r1, #0
+    {
+        return LORAMAC_COMMANDS_ERROR_NPE;
+    }
+
+    // Loop through all elements which fits into the buffer
+    while( curElement != NULL )
+ 8011418:	b194      	cbz	r4, 8011440 <LoRaMacCommandsSerializeCmds+0x3c>
+    {
+        // If the next MAC command still fits into the buffer, add it.
+        if( ( availableSize - itr ) >= ( CID_FIELD_SIZE + curElement->PayloadSize ) )
+ 801141a:	1a7a      	subs	r2, r7, r1
+ 801141c:	68a3      	ldr	r3, [r4, #8]
+ 801141e:	3301      	adds	r3, #1
+ 8011420:	429a      	cmp	r2, r3
+ 8011422:	d30d      	bcc.n	8011440 <LoRaMacCommandsSerializeCmds+0x3c>
+        {
+            buffer[itr++] = curElement->CID;
+ 8011424:	1c4d      	adds	r5, r1, #1
+ 8011426:	b2ed      	uxtb	r5, r5
+ 8011428:	7923      	ldrb	r3, [r4, #4]
+ 801142a:	5473      	strb	r3, [r6, r1]
+            memcpy1( &buffer[itr], curElement->Payload, curElement->PayloadSize );
+ 801142c:	8922      	ldrh	r2, [r4, #8]
+ 801142e:	1d61      	adds	r1, r4, #5
+ 8011430:	1970      	adds	r0, r6, r5
+ 8011432:	f003 f8b2 	bl	801459a <memcpy1>
+            itr += curElement->PayloadSize;
+ 8011436:	68a3      	ldr	r3, [r4, #8]
+ 8011438:	441d      	add	r5, r3
+ 801143a:	b2e9      	uxtb	r1, r5
+        }
+        else
+        {
+            break;
+        }
+        curElement = curElement->Next;
+ 801143c:	6824      	ldr	r4, [r4, #0]
+ 801143e:	e7eb      	b.n	8011418 <LoRaMacCommandsSerializeCmds+0x14>
+    }
+
+    // Remove all commands which do not fit into the buffer
+    while( curElement != NULL )
+ 8011440:	b12c      	cbz	r4, 801144e <LoRaMacCommandsSerializeCmds+0x4a>
+    {
+        // Store the next element before removing the current one
+        nextElement = curElement->Next;
+ 8011442:	6825      	ldr	r5, [r4, #0]
+        LoRaMacCommandsRemoveCmd( curElement );
+ 8011444:	4620      	mov	r0, r4
+ 8011446:	f7ff ff71 	bl	801132c <LoRaMacCommandsRemoveCmd>
+        curElement = nextElement;
+ 801144a:	462c      	mov	r4, r5
+ 801144c:	e7f8      	b.n	8011440 <LoRaMacCommandsSerializeCmds+0x3c>
+    }
+
+    // Fetch the effective size of the mac commands
+    LoRaMacCommandsGetSizeSerializedCmds( effectiveSize );
+ 801144e:	4640      	mov	r0, r8
+ 8011450:	f7ff ffcc 	bl	80113ec <LoRaMacCommandsGetSizeSerializedCmds>
+
+    return LORAMAC_COMMANDS_SUCCESS;
+ 8011454:	2000      	movs	r0, #0
+}
+ 8011456:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+        return LORAMAC_COMMANDS_ERROR_NPE;
+ 801145a:	2001      	movs	r0, #1
+ 801145c:	e7fb      	b.n	8011456 <LoRaMacCommandsSerializeCmds+0x52>
+ 801145e:	2001      	movs	r0, #1
+ 8011460:	e7f9      	b.n	8011456 <LoRaMacCommandsSerializeCmds+0x52>
+ 8011462:	bf00      	nop
+ 8011464:	20002500 	.word	0x20002500
+
+08011468 <LoRaMacCommandsGetCmdSize>:
+uint8_t LoRaMacCommandsGetCmdSize( uint8_t cid )
+{
+    uint8_t cidSize = 0;
+
+    // Decode Frame MAC commands
+    switch( cid )
+ 8011468:	1e83      	subs	r3, r0, #2
+ 801146a:	2b11      	cmp	r3, #17
+ 801146c:	d80a      	bhi.n	8011484 <LoRaMacCommandsGetCmdSize+0x1c>
+ 801146e:	e8df f003 	tbb	[pc, r3]
+ 8011472:	0b23      	.short	0x0b23
+ 8011474:	110f240d 	.word	0x110f240d
+ 8011478:	09171513 	.word	0x09171513
+ 801147c:	09091909 	.word	0x09091909
+ 8011480:	211f1d1b 	.word	0x211f1d1b
+ 8011484:	2000      	movs	r0, #0
+ 8011486:	4770      	bx	lr
+            break;
+        }
+        case SRV_MAC_LINK_ADR_REQ:
+        {
+            // cid + DataRate_TXPower + ChMask (2) + Redundancy
+            cidSize = 5;
+ 8011488:	2005      	movs	r0, #5
+            break;
+ 801148a:	4770      	bx	lr
+        }
+        case SRV_MAC_DUTY_CYCLE_REQ:
+        {
+            // cid + DutyCyclePL
+            cidSize = 2;
+ 801148c:	2002      	movs	r0, #2
+            break;
+ 801148e:	4770      	bx	lr
+            break;
+        }
+        case SRV_MAC_DEV_STATUS_REQ:
+        {
+            // cid
+            cidSize = 1;
+ 8011490:	2001      	movs	r0, #1
+            break;
+ 8011492:	4770      	bx	lr
+        }
+        case SRV_MAC_NEW_CHANNEL_REQ:
+        {
+            // cid + ChIndex + Frequency (3) + DrRange
+            cidSize = 6;
+ 8011494:	2006      	movs	r0, #6
+            break;
+ 8011496:	4770      	bx	lr
+        }
+        case SRV_MAC_RX_TIMING_SETUP_REQ:
+        {
+            // cid + Settings
+            cidSize = 2;
+ 8011498:	2002      	movs	r0, #2
+            break;
+ 801149a:	4770      	bx	lr
+        }
+        case SRV_MAC_TX_PARAM_SETUP_REQ:
+        {
+            // cid + EIRP_DwellTime
+            cidSize = 2;
+ 801149c:	2002      	movs	r0, #2
+            break;
+ 801149e:	4770      	bx	lr
+        }
+        case SRV_MAC_DL_CHANNEL_REQ:
+        {
+            // cid + ChIndex + Frequency (3)
+            cidSize = 5;
+ 80114a0:	2005      	movs	r0, #5
+            break;
+ 80114a2:	4770      	bx	lr
+        }
+#endif /* LORAMAC_VERSION */
+        case SRV_MAC_DEVICE_TIME_ANS:
+        {
+            // cid + Seconds (4) + Fractional seconds (1)
+            cidSize = 6;
+ 80114a4:	2006      	movs	r0, #6
+            break;
+ 80114a6:	4770      	bx	lr
+        }
+        case SRV_MAC_PING_SLOT_INFO_ANS:
+        {
+            // cid
+            cidSize = 1;
+ 80114a8:	2001      	movs	r0, #1
+            break;
+ 80114aa:	4770      	bx	lr
+        }
+        case SRV_MAC_PING_SLOT_CHANNEL_REQ:
+        {
+            // cid + Frequency (3) + DR
+            cidSize = 5;
+ 80114ac:	2005      	movs	r0, #5
+            break;
+ 80114ae:	4770      	bx	lr
+        }
+        case SRV_MAC_BEACON_TIMING_ANS:
+        {
+            // cid + TimingDelay (2) + Channel
+            cidSize = 4;
+ 80114b0:	2004      	movs	r0, #4
+            break;
+ 80114b2:	4770      	bx	lr
+        }
+        case SRV_MAC_BEACON_FREQ_REQ:
+        {
+            // cid + Frequency (3)
+            cidSize = 4;
+ 80114b4:	2004      	movs	r0, #4
+            break;
+ 80114b6:	4770      	bx	lr
+            cidSize = 3;
+ 80114b8:	2003      	movs	r0, #3
+            // Unknown command. ABORT MAC commands processing
+            break;
+        }
+    }
+    return cidSize;
+}
+ 80114ba:	4770      	bx	lr
+
+080114bc <IncreaseBufferPointer>:
+ */
+static LoRaMacConfirmQueueCtx_t ConfirmQueueCtx;
+
+static MlmeConfirmQueue_t* IncreaseBufferPointer( MlmeConfirmQueue_t* bufferPointer )
+{
+    if( bufferPointer == &ConfirmQueueCtx.Nvm.MlmeConfirmQueue[LORA_MAC_MLME_CONFIRM_QUEUE_LEN - 1] )
+ 80114bc:	4b03      	ldr	r3, [pc, #12]	; (80114cc <IncreaseBufferPointer+0x10>)
+ 80114be:	4298      	cmp	r0, r3
+ 80114c0:	d001      	beq.n	80114c6 <IncreaseBufferPointer+0xa>
+        bufferPointer = ConfirmQueueCtx.Nvm.MlmeConfirmQueue;
+    }
+    else
+    {
+        // Increase
+        bufferPointer++;
+ 80114c2:	3004      	adds	r0, #4
+ 80114c4:	4770      	bx	lr
+        bufferPointer = ConfirmQueueCtx.Nvm.MlmeConfirmQueue;
+ 80114c6:	4802      	ldr	r0, [pc, #8]	; (80114d0 <IncreaseBufferPointer+0x14>)
+    }
+    return bufferPointer;
+}
+ 80114c8:	4770      	bx	lr
+ 80114ca:	bf00      	nop
+ 80114cc:	20002618 	.word	0x20002618
+ 80114d0:	20002608 	.word	0x20002608
+
+080114d4 <IsListEmpty>:
+    return bufferPointer;
+}
+
+static bool IsListEmpty( uint8_t count )
+{
+    if( count == 0 )
+ 80114d4:	b108      	cbz	r0, 80114da <IsListEmpty+0x6>
+    {
+        return true;
+    }
+    return false;
+ 80114d6:	2000      	movs	r0, #0
+ 80114d8:	4770      	bx	lr
+        return true;
+ 80114da:	2001      	movs	r0, #1
+}
+ 80114dc:	4770      	bx	lr
+
+080114de <IsListFull>:
+
+static bool IsListFull( uint8_t count )
+{
+    if( count >= LORA_MAC_MLME_CONFIRM_QUEUE_LEN )
+ 80114de:	2804      	cmp	r0, #4
+ 80114e0:	d801      	bhi.n	80114e6 <IsListFull+0x8>
+    {
+        return true;
+    }
+    return false;
+ 80114e2:	2000      	movs	r0, #0
+ 80114e4:	4770      	bx	lr
+        return true;
+ 80114e6:	2001      	movs	r0, #1
+}
+ 80114e8:	4770      	bx	lr
+	...
+
+080114ec <GetElement>:
+
+static MlmeConfirmQueue_t* GetElement( Mlme_t request, MlmeConfirmQueue_t* bufferStart, MlmeConfirmQueue_t* bufferEnd )
+{
+ 80114ec:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 80114ee:	4606      	mov	r6, r0
+ 80114f0:	460c      	mov	r4, r1
+    MlmeConfirmQueue_t* element = bufferStart;
+
+    if( IsListEmpty( ConfirmQueueCtx.Nvm.MlmeConfirmQueueCnt ) == true )
+ 80114f2:	4b0d      	ldr	r3, [pc, #52]	; (8011528 <GetElement+0x3c>)
+ 80114f4:	f893 7020 	ldrb.w	r7, [r3, #32]
+ 80114f8:	4638      	mov	r0, r7
+ 80114fa:	f7ff ffeb 	bl	80114d4 <IsListEmpty>
+ 80114fe:	b970      	cbnz	r0, 801151e <GetElement+0x32>
+    {
+        return NULL;
+    }
+
+    for( uint8_t elementCnt = 0; elementCnt < ConfirmQueueCtx.Nvm.MlmeConfirmQueueCnt; elementCnt++ )
+ 8011500:	2500      	movs	r5, #0
+ 8011502:	42af      	cmp	r7, r5
+ 8011504:	d909      	bls.n	801151a <GetElement+0x2e>
+    {
+        if( element->Request == request )
+ 8011506:	7823      	ldrb	r3, [r4, #0]
+ 8011508:	42b3      	cmp	r3, r6
+ 801150a:	d00a      	beq.n	8011522 <GetElement+0x36>
+        {
+            // We have found the element
+            return element;
+        }
+        element = IncreaseBufferPointer( element );
+ 801150c:	4620      	mov	r0, r4
+ 801150e:	f7ff ffd5 	bl	80114bc <IncreaseBufferPointer>
+ 8011512:	4604      	mov	r4, r0
+    for( uint8_t elementCnt = 0; elementCnt < ConfirmQueueCtx.Nvm.MlmeConfirmQueueCnt; elementCnt++ )
+ 8011514:	3501      	adds	r5, #1
+ 8011516:	b2ed      	uxtb	r5, r5
+ 8011518:	e7f3      	b.n	8011502 <GetElement+0x16>
+    }
+
+    return NULL;
+ 801151a:	2000      	movs	r0, #0
+}
+ 801151c:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+        return NULL;
+ 801151e:	2000      	movs	r0, #0
+ 8011520:	e7fc      	b.n	801151c <GetElement+0x30>
+            return element;
+ 8011522:	4620      	mov	r0, r4
+ 8011524:	e7fa      	b.n	801151c <GetElement+0x30>
+ 8011526:	bf00      	nop
+ 8011528:	200025fc 	.word	0x200025fc
+
+0801152c <LoRaMacConfirmQueueInit>:
+
+void LoRaMacConfirmQueueInit( LoRaMacPrimitives_t* primitives )
+{
+ 801152c:	b510      	push	{r4, lr}
+    ConfirmQueueCtx.Primitives = primitives;
+ 801152e:	4c08      	ldr	r4, [pc, #32]	; (8011550 <LoRaMacConfirmQueueInit+0x24>)
+ 8011530:	6020      	str	r0, [r4, #0]
+
+    // Init counter
+    ConfirmQueueCtx.Nvm.MlmeConfirmQueueCnt = 0;
+ 8011532:	2300      	movs	r3, #0
+ 8011534:	f884 3020 	strb.w	r3, [r4, #32]
+
+    // Init buffer
+    ConfirmQueueCtx.BufferStart = ConfirmQueueCtx.Nvm.MlmeConfirmQueue;
+ 8011538:	f104 000c 	add.w	r0, r4, #12
+ 801153c:	6060      	str	r0, [r4, #4]
+    ConfirmQueueCtx.BufferEnd = ConfirmQueueCtx.Nvm.MlmeConfirmQueue;
+ 801153e:	60a0      	str	r0, [r4, #8]
+
+    memset1( ( uint8_t* )ConfirmQueueCtx.Nvm.MlmeConfirmQueue, 0xFF, sizeof( ConfirmQueueCtx.Nvm.MlmeConfirmQueue ) );
+ 8011540:	2214      	movs	r2, #20
+ 8011542:	21ff      	movs	r1, #255	; 0xff
+ 8011544:	f003 f841 	bl	80145ca <memset1>
+
+    // Common status
+    ConfirmQueueCtx.Nvm.CommonStatus = LORAMAC_EVENT_INFO_STATUS_ERROR;
+ 8011548:	2301      	movs	r3, #1
+ 801154a:	f884 3021 	strb.w	r3, [r4, #33]	; 0x21
+}
+ 801154e:	bd10      	pop	{r4, pc}
+ 8011550:	200025fc 	.word	0x200025fc
+
+08011554 <LoRaMacConfirmQueueAdd>:
+
+bool LoRaMacConfirmQueueAdd( MlmeConfirmQueue_t* mlmeConfirm )
+{
+ 8011554:	b538      	push	{r3, r4, r5, lr}
+ 8011556:	4605      	mov	r5, r0
+    if( IsListFull( ConfirmQueueCtx.Nvm.MlmeConfirmQueueCnt ) == true )
+ 8011558:	4b0f      	ldr	r3, [pc, #60]	; (8011598 <LoRaMacConfirmQueueAdd+0x44>)
+ 801155a:	f893 0020 	ldrb.w	r0, [r3, #32]
+ 801155e:	f7ff ffbe 	bl	80114de <IsListFull>
+ 8011562:	b9b8      	cbnz	r0, 8011594 <LoRaMacConfirmQueueAdd+0x40>
+        // Protect the buffer against overwrites
+        return false;
+    }
+
+    // Add the element to the ring buffer
+    ConfirmQueueCtx.BufferEnd->Request = mlmeConfirm->Request;
+ 8011564:	4c0c      	ldr	r4, [pc, #48]	; (8011598 <LoRaMacConfirmQueueAdd+0x44>)
+ 8011566:	68a3      	ldr	r3, [r4, #8]
+ 8011568:	782a      	ldrb	r2, [r5, #0]
+ 801156a:	701a      	strb	r2, [r3, #0]
+    ConfirmQueueCtx.BufferEnd->Status = mlmeConfirm->Status;
+ 801156c:	68a3      	ldr	r3, [r4, #8]
+ 801156e:	786a      	ldrb	r2, [r5, #1]
+ 8011570:	705a      	strb	r2, [r3, #1]
+    ConfirmQueueCtx.BufferEnd->RestrictCommonReadyToHandle = mlmeConfirm->RestrictCommonReadyToHandle;
+ 8011572:	68a3      	ldr	r3, [r4, #8]
+ 8011574:	78ea      	ldrb	r2, [r5, #3]
+ 8011576:	70da      	strb	r2, [r3, #3]
+#if (defined( LORAMAC_VERSION ) && ( LORAMAC_VERSION == 0x01000300 ))
+    ConfirmQueueCtx.BufferEnd->ReadyToHandle = false;
+ 8011578:	68a3      	ldr	r3, [r4, #8]
+ 801157a:	2200      	movs	r2, #0
+ 801157c:	709a      	strb	r2, [r3, #2]
+#elif (defined( LORAMAC_VERSION ) && (( LORAMAC_VERSION == 0x01000400 ) || ( LORAMAC_VERSION == 0x01010100 )))
+    ConfirmQueueCtx.BufferEnd->ReadyToHandle = mlmeConfirm->ReadyToHandle;
+#endif /* LORAMAC_VERSION */
+    // Increase counter
+    ConfirmQueueCtx.Nvm.MlmeConfirmQueueCnt++;
+ 801157e:	f894 3020 	ldrb.w	r3, [r4, #32]
+ 8011582:	3301      	adds	r3, #1
+ 8011584:	f884 3020 	strb.w	r3, [r4, #32]
+    // Update end pointer
+    ConfirmQueueCtx.BufferEnd = IncreaseBufferPointer( ConfirmQueueCtx.BufferEnd );
+ 8011588:	68a0      	ldr	r0, [r4, #8]
+ 801158a:	f7ff ff97 	bl	80114bc <IncreaseBufferPointer>
+ 801158e:	60a0      	str	r0, [r4, #8]
+
+    return true;
+ 8011590:	2001      	movs	r0, #1
+}
+ 8011592:	bd38      	pop	{r3, r4, r5, pc}
+        return false;
+ 8011594:	2000      	movs	r0, #0
+ 8011596:	e7fc      	b.n	8011592 <LoRaMacConfirmQueueAdd+0x3e>
+ 8011598:	200025fc 	.word	0x200025fc
+
+0801159c <LoRaMacConfirmQueueRemoveFirst>:
+
+    return true;
+}
+
+bool LoRaMacConfirmQueueRemoveFirst( void )
+{
+ 801159c:	b538      	push	{r3, r4, r5, lr}
+    if( IsListEmpty( ConfirmQueueCtx.Nvm.MlmeConfirmQueueCnt ) == true )
+ 801159e:	4b09      	ldr	r3, [pc, #36]	; (80115c4 <LoRaMacConfirmQueueRemoveFirst+0x28>)
+ 80115a0:	f893 4020 	ldrb.w	r4, [r3, #32]
+ 80115a4:	4620      	mov	r0, r4
+ 80115a6:	f7ff ff95 	bl	80114d4 <IsListEmpty>
+ 80115aa:	b948      	cbnz	r0, 80115c0 <LoRaMacConfirmQueueRemoveFirst+0x24>
+    {
+        return false;
+    }
+
+    // Increase counter
+    ConfirmQueueCtx.Nvm.MlmeConfirmQueueCnt--;
+ 80115ac:	4d05      	ldr	r5, [pc, #20]	; (80115c4 <LoRaMacConfirmQueueRemoveFirst+0x28>)
+ 80115ae:	3c01      	subs	r4, #1
+ 80115b0:	f885 4020 	strb.w	r4, [r5, #32]
+    // Update start pointer
+    ConfirmQueueCtx.BufferStart = IncreaseBufferPointer( ConfirmQueueCtx.BufferStart );
+ 80115b4:	6868      	ldr	r0, [r5, #4]
+ 80115b6:	f7ff ff81 	bl	80114bc <IncreaseBufferPointer>
+ 80115ba:	6068      	str	r0, [r5, #4]
+
+    return true;
+ 80115bc:	2001      	movs	r0, #1
+}
+ 80115be:	bd38      	pop	{r3, r4, r5, pc}
+        return false;
+ 80115c0:	2000      	movs	r0, #0
+ 80115c2:	e7fc      	b.n	80115be <LoRaMacConfirmQueueRemoveFirst+0x22>
+ 80115c4:	200025fc 	.word	0x200025fc
+
+080115c8 <LoRaMacConfirmQueueSetStatus>:
+
+void LoRaMacConfirmQueueSetStatus( LoRaMacEventInfoStatus_t status, Mlme_t request )
+{
+ 80115c8:	b538      	push	{r3, r4, r5, lr}
+ 80115ca:	4605      	mov	r5, r0
+ 80115cc:	460c      	mov	r4, r1
+    MlmeConfirmQueue_t* element = NULL;
+
+    if( IsListEmpty( ConfirmQueueCtx.Nvm.MlmeConfirmQueueCnt ) == false )
+ 80115ce:	4b08      	ldr	r3, [pc, #32]	; (80115f0 <LoRaMacConfirmQueueSetStatus+0x28>)
+ 80115d0:	f893 0020 	ldrb.w	r0, [r3, #32]
+ 80115d4:	f7ff ff7e 	bl	80114d4 <IsListEmpty>
+ 80115d8:	b948      	cbnz	r0, 80115ee <LoRaMacConfirmQueueSetStatus+0x26>
+    {
+        element = GetElement( request, ConfirmQueueCtx.BufferStart, ConfirmQueueCtx.BufferEnd );
+ 80115da:	4b05      	ldr	r3, [pc, #20]	; (80115f0 <LoRaMacConfirmQueueSetStatus+0x28>)
+ 80115dc:	689a      	ldr	r2, [r3, #8]
+ 80115de:	6859      	ldr	r1, [r3, #4]
+ 80115e0:	4620      	mov	r0, r4
+ 80115e2:	f7ff ff83 	bl	80114ec <GetElement>
+        if( element != NULL )
+ 80115e6:	b110      	cbz	r0, 80115ee <LoRaMacConfirmQueueSetStatus+0x26>
+        {
+            element->Status = status;
+ 80115e8:	7045      	strb	r5, [r0, #1]
+            element->ReadyToHandle = true;
+ 80115ea:	2201      	movs	r2, #1
+ 80115ec:	7082      	strb	r2, [r0, #2]
+        }
+    }
+}
+ 80115ee:	bd38      	pop	{r3, r4, r5, pc}
+ 80115f0:	200025fc 	.word	0x200025fc
+
+080115f4 <LoRaMacConfirmQueueGetStatus>:
+
+LoRaMacEventInfoStatus_t LoRaMacConfirmQueueGetStatus( Mlme_t request )
+{
+ 80115f4:	b510      	push	{r4, lr}
+ 80115f6:	4604      	mov	r4, r0
+    MlmeConfirmQueue_t* element = NULL;
+
+    if( IsListEmpty( ConfirmQueueCtx.Nvm.MlmeConfirmQueueCnt ) == false )
+ 80115f8:	4b09      	ldr	r3, [pc, #36]	; (8011620 <LoRaMacConfirmQueueGetStatus+0x2c>)
+ 80115fa:	f893 0020 	ldrb.w	r0, [r3, #32]
+ 80115fe:	f7ff ff69 	bl	80114d4 <IsListEmpty>
+ 8011602:	b940      	cbnz	r0, 8011616 <LoRaMacConfirmQueueGetStatus+0x22>
+    {
+        element = GetElement( request, ConfirmQueueCtx.BufferStart, ConfirmQueueCtx.BufferEnd );
+ 8011604:	4b06      	ldr	r3, [pc, #24]	; (8011620 <LoRaMacConfirmQueueGetStatus+0x2c>)
+ 8011606:	689a      	ldr	r2, [r3, #8]
+ 8011608:	6859      	ldr	r1, [r3, #4]
+ 801160a:	4620      	mov	r0, r4
+ 801160c:	f7ff ff6e 	bl	80114ec <GetElement>
+        if( element != NULL )
+ 8011610:	b118      	cbz	r0, 801161a <LoRaMacConfirmQueueGetStatus+0x26>
+        {
+            return element->Status;
+ 8011612:	7840      	ldrb	r0, [r0, #1]
+ 8011614:	e000      	b.n	8011618 <LoRaMacConfirmQueueGetStatus+0x24>
+        }
+    }
+    return LORAMAC_EVENT_INFO_STATUS_ERROR;
+ 8011616:	2001      	movs	r0, #1
+}
+ 8011618:	bd10      	pop	{r4, pc}
+    return LORAMAC_EVENT_INFO_STATUS_ERROR;
+ 801161a:	2001      	movs	r0, #1
+ 801161c:	e7fc      	b.n	8011618 <LoRaMacConfirmQueueGetStatus+0x24>
+ 801161e:	bf00      	nop
+ 8011620:	200025fc 	.word	0x200025fc
+
+08011624 <LoRaMacConfirmQueueSetStatusCmn>:
+
+void LoRaMacConfirmQueueSetStatusCmn( LoRaMacEventInfoStatus_t status )
+{
+ 8011624:	b538      	push	{r3, r4, r5, lr}
+ 8011626:	4605      	mov	r5, r0
+    MlmeConfirmQueue_t* element = ConfirmQueueCtx.BufferStart;
+ 8011628:	4b0c      	ldr	r3, [pc, #48]	; (801165c <LoRaMacConfirmQueueSetStatusCmn+0x38>)
+ 801162a:	685c      	ldr	r4, [r3, #4]
+
+    ConfirmQueueCtx.Nvm.CommonStatus = status;
+ 801162c:	f883 0021 	strb.w	r0, [r3, #33]	; 0x21
+
+    if( IsListEmpty( ConfirmQueueCtx.Nvm.MlmeConfirmQueueCnt ) == false )
+ 8011630:	f893 0020 	ldrb.w	r0, [r3, #32]
+ 8011634:	f7ff ff4e 	bl	80114d4 <IsListEmpty>
+ 8011638:	b150      	cbz	r0, 8011650 <LoRaMacConfirmQueueSetStatusCmn+0x2c>
+                element->ReadyToHandle = true;
+            }
+            element = IncreaseBufferPointer( element );
+        }while( element != ConfirmQueueCtx.BufferEnd );
+    }
+}
+ 801163a:	bd38      	pop	{r3, r4, r5, pc}
+                element->ReadyToHandle = true;
+ 801163c:	2301      	movs	r3, #1
+ 801163e:	70a3      	strb	r3, [r4, #2]
+            element = IncreaseBufferPointer( element );
+ 8011640:	4620      	mov	r0, r4
+ 8011642:	f7ff ff3b 	bl	80114bc <IncreaseBufferPointer>
+ 8011646:	4604      	mov	r4, r0
+        }while( element != ConfirmQueueCtx.BufferEnd );
+ 8011648:	4b04      	ldr	r3, [pc, #16]	; (801165c <LoRaMacConfirmQueueSetStatusCmn+0x38>)
+ 801164a:	689b      	ldr	r3, [r3, #8]
+ 801164c:	4283      	cmp	r3, r0
+ 801164e:	d0f4      	beq.n	801163a <LoRaMacConfirmQueueSetStatusCmn+0x16>
+            element->Status = status;
+ 8011650:	7065      	strb	r5, [r4, #1]
+            if( element->RestrictCommonReadyToHandle == false )
+ 8011652:	78e3      	ldrb	r3, [r4, #3]
+ 8011654:	2b00      	cmp	r3, #0
+ 8011656:	d1f3      	bne.n	8011640 <LoRaMacConfirmQueueSetStatusCmn+0x1c>
+ 8011658:	e7f0      	b.n	801163c <LoRaMacConfirmQueueSetStatusCmn+0x18>
+ 801165a:	bf00      	nop
+ 801165c:	200025fc 	.word	0x200025fc
+
+08011660 <LoRaMacConfirmQueueIsCmdActive>:
+{
+    return ConfirmQueueCtx.Nvm.CommonStatus;
+}
+
+bool LoRaMacConfirmQueueIsCmdActive( Mlme_t request )
+{
+ 8011660:	b508      	push	{r3, lr}
+    if( GetElement( request, ConfirmQueueCtx.BufferStart, ConfirmQueueCtx.BufferEnd ) != NULL )
+ 8011662:	4b04      	ldr	r3, [pc, #16]	; (8011674 <LoRaMacConfirmQueueIsCmdActive+0x14>)
+ 8011664:	689a      	ldr	r2, [r3, #8]
+ 8011666:	6859      	ldr	r1, [r3, #4]
+ 8011668:	f7ff ff40 	bl	80114ec <GetElement>
+ 801166c:	b100      	cbz	r0, 8011670 <LoRaMacConfirmQueueIsCmdActive+0x10>
+    {
+        return true;
+ 801166e:	2001      	movs	r0, #1
+    }
+    return false;
+}
+ 8011670:	bd08      	pop	{r3, pc}
+ 8011672:	bf00      	nop
+ 8011674:	200025fc 	.word	0x200025fc
+
+08011678 <LoRaMacConfirmQueueHandleCb>:
+
+void LoRaMacConfirmQueueHandleCb( MlmeConfirm_t* mlmeConfirm )
+{
+ 8011678:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 801167a:	b083      	sub	sp, #12
+ 801167c:	4606      	mov	r6, r0
+    uint8_t nbElements = ConfirmQueueCtx.Nvm.MlmeConfirmQueueCnt;
+ 801167e:	4b19      	ldr	r3, [pc, #100]	; (80116e4 <LoRaMacConfirmQueueHandleCb+0x6c>)
+ 8011680:	f893 7020 	ldrb.w	r7, [r3, #32]
+    bool readyToHandle = false;
+    MlmeConfirmQueue_t mlmeConfirmToStore;
+
+    memset1( ( uint8_t* ) &mlmeConfirmToStore, 0, sizeof( MlmeConfirmQueue_t ) );
+ 8011684:	2204      	movs	r2, #4
+ 8011686:	2100      	movs	r1, #0
+ 8011688:	eb0d 0002 	add.w	r0, sp, r2
+ 801168c:	f002 ff9d 	bl	80145ca <memset1>
+
+    for( uint8_t i = 0; i < nbElements; i++ )
+ 8011690:	2400      	movs	r4, #0
+ 8011692:	e00d      	b.n	80116b0 <LoRaMacConfirmQueueHandleCb+0x38>
+            ConfirmQueueCtx.Primitives->MacMlmeConfirm( mlmeConfirm );
+        }
+        else
+        {
+            // The request is not processed yet. Store the state.
+            mlmeConfirmToStore.Request = ConfirmQueueCtx.BufferStart->Request;
+ 8011694:	781a      	ldrb	r2, [r3, #0]
+ 8011696:	f88d 2004 	strb.w	r2, [sp, #4]
+            mlmeConfirmToStore.Status = ConfirmQueueCtx.BufferStart->Status;
+ 801169a:	785a      	ldrb	r2, [r3, #1]
+ 801169c:	f88d 2005 	strb.w	r2, [sp, #5]
+            mlmeConfirmToStore.RestrictCommonReadyToHandle = ConfirmQueueCtx.BufferStart->RestrictCommonReadyToHandle;
+ 80116a0:	78db      	ldrb	r3, [r3, #3]
+ 80116a2:	f88d 3007 	strb.w	r3, [sp, #7]
+        }
+
+        // Increase the pointer afterwards to prevent overwrites
+        LoRaMacConfirmQueueRemoveFirst( );
+ 80116a6:	f7ff ff79 	bl	801159c <LoRaMacConfirmQueueRemoveFirst>
+
+        if( readyToHandle == false )
+ 80116aa:	b1a5      	cbz	r5, 80116d6 <LoRaMacConfirmQueueHandleCb+0x5e>
+    for( uint8_t i = 0; i < nbElements; i++ )
+ 80116ac:	3401      	adds	r4, #1
+ 80116ae:	b2e4      	uxtb	r4, r4
+ 80116b0:	42bc      	cmp	r4, r7
+ 80116b2:	d214      	bcs.n	80116de <LoRaMacConfirmQueueHandleCb+0x66>
+        mlmeConfirm->MlmeRequest = ConfirmQueueCtx.BufferStart->Request;
+ 80116b4:	4b0b      	ldr	r3, [pc, #44]	; (80116e4 <LoRaMacConfirmQueueHandleCb+0x6c>)
+ 80116b6:	685a      	ldr	r2, [r3, #4]
+ 80116b8:	7812      	ldrb	r2, [r2, #0]
+ 80116ba:	7032      	strb	r2, [r6, #0]
+        mlmeConfirm->Status = ConfirmQueueCtx.BufferStart->Status;
+ 80116bc:	685a      	ldr	r2, [r3, #4]
+ 80116be:	7852      	ldrb	r2, [r2, #1]
+ 80116c0:	7072      	strb	r2, [r6, #1]
+        readyToHandle = ConfirmQueueCtx.BufferStart->ReadyToHandle;
+ 80116c2:	685b      	ldr	r3, [r3, #4]
+ 80116c4:	789d      	ldrb	r5, [r3, #2]
+        if( readyToHandle == true )
+ 80116c6:	2d00      	cmp	r5, #0
+ 80116c8:	d0e4      	beq.n	8011694 <LoRaMacConfirmQueueHandleCb+0x1c>
+            ConfirmQueueCtx.Primitives->MacMlmeConfirm( mlmeConfirm );
+ 80116ca:	4b06      	ldr	r3, [pc, #24]	; (80116e4 <LoRaMacConfirmQueueHandleCb+0x6c>)
+ 80116cc:	681b      	ldr	r3, [r3, #0]
+ 80116ce:	689b      	ldr	r3, [r3, #8]
+ 80116d0:	4630      	mov	r0, r6
+ 80116d2:	4798      	blx	r3
+ 80116d4:	e7e7      	b.n	80116a6 <LoRaMacConfirmQueueHandleCb+0x2e>
+        {
+            // Add a request which has not been finished again to the queue
+            LoRaMacConfirmQueueAdd( &mlmeConfirmToStore );
+ 80116d6:	a801      	add	r0, sp, #4
+ 80116d8:	f7ff ff3c 	bl	8011554 <LoRaMacConfirmQueueAdd>
+ 80116dc:	e7e6      	b.n	80116ac <LoRaMacConfirmQueueHandleCb+0x34>
+        }
+    }
+}
+ 80116de:	b003      	add	sp, #12
+ 80116e0:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 80116e2:	bf00      	nop
+ 80116e4:	200025fc 	.word	0x200025fc
+
+080116e8 <LoRaMacConfirmQueueGetCnt>:
+
+uint8_t LoRaMacConfirmQueueGetCnt( void )
+{
+    return ConfirmQueueCtx.Nvm.MlmeConfirmQueueCnt;
+}
+ 80116e8:	4b01      	ldr	r3, [pc, #4]	; (80116f0 <LoRaMacConfirmQueueGetCnt+0x8>)
+ 80116ea:	f893 0020 	ldrb.w	r0, [r3, #32]
+ 80116ee:	4770      	bx	lr
+ 80116f0:	200025fc 	.word	0x200025fc
+
+080116f4 <LoRaMacConfirmQueueIsFull>:
+
+bool LoRaMacConfirmQueueIsFull( void )
+{
+ 80116f4:	b508      	push	{r3, lr}
+    if( IsListFull( ConfirmQueueCtx.Nvm.MlmeConfirmQueueCnt ) == true )
+ 80116f6:	4b03      	ldr	r3, [pc, #12]	; (8011704 <LoRaMacConfirmQueueIsFull+0x10>)
+ 80116f8:	f893 0020 	ldrb.w	r0, [r3, #32]
+ 80116fc:	f7ff feef 	bl	80114de <IsListFull>
+    }
+    else
+    {
+        return false;
+    }
+}
+ 8011700:	bd08      	pop	{r3, pc}
+ 8011702:	bf00      	nop
+ 8011704:	200025fc 	.word	0x200025fc
+
+08011708 <PrepareB0>:
+ * \param [in] fCnt           - Frame counter
+ * \param [in,out] b0         - B0 block
+ * \retval                    - Status of the operation
+ */
+static LoRaMacCryptoStatus_t PrepareB0( uint16_t msgLen, KeyIdentifier_t keyID, bool isAck, uint8_t dir, uint32_t devAddr, uint32_t fCnt, uint8_t* b0 )
+{
+ 8011708:	b410      	push	{r4}
+ 801170a:	9c01      	ldr	r4, [sp, #4]
+ 801170c:	9902      	ldr	r1, [sp, #8]
+ 801170e:	9a03      	ldr	r2, [sp, #12]
+    if( b0 == 0 )
+ 8011710:	b1da      	cbz	r2, 801174a <PrepareB0+0x42>
+ 8011712:	4684      	mov	ip, r0
+    {
+        return LORAMAC_CRYPTO_ERROR_NPE;
+    }
+
+    b0[0] = 0x49;
+ 8011714:	2049      	movs	r0, #73	; 0x49
+ 8011716:	7010      	strb	r0, [r2, #0]
+        b0[2] = ( confFCnt >> 8 ) & 0xFF;
+    }
+    else
+#endif /* LORAMAC_VERSION */
+    {
+        b0[1] = 0x00;
+ 8011718:	2000      	movs	r0, #0
+ 801171a:	7050      	strb	r0, [r2, #1]
+        b0[2] = 0x00;
+ 801171c:	7090      	strb	r0, [r2, #2]
+    }
+
+    b0[3] = 0x00;
+ 801171e:	70d0      	strb	r0, [r2, #3]
+    b0[4] = 0x00;
+ 8011720:	7110      	strb	r0, [r2, #4]
+
+    b0[5] = dir;
+ 8011722:	7153      	strb	r3, [r2, #5]
+
+    b0[6] = devAddr & 0xFF;
+ 8011724:	7194      	strb	r4, [r2, #6]
+    b0[7] = ( devAddr >> 8 ) & 0xFF;
+ 8011726:	0a23      	lsrs	r3, r4, #8
+ 8011728:	71d3      	strb	r3, [r2, #7]
+    b0[8] = ( devAddr >> 16 ) & 0xFF;
+ 801172a:	0c23      	lsrs	r3, r4, #16
+ 801172c:	7213      	strb	r3, [r2, #8]
+    b0[9] = ( devAddr >> 24 ) & 0xFF;
+ 801172e:	0e24      	lsrs	r4, r4, #24
+ 8011730:	7254      	strb	r4, [r2, #9]
+
+    b0[10] = fCnt & 0xFF;
+ 8011732:	7291      	strb	r1, [r2, #10]
+    b0[11] = ( fCnt >> 8 ) & 0xFF;
+ 8011734:	0a0b      	lsrs	r3, r1, #8
+ 8011736:	72d3      	strb	r3, [r2, #11]
+    b0[12] = ( fCnt >> 16 ) & 0xFF;
+ 8011738:	0c0b      	lsrs	r3, r1, #16
+ 801173a:	7313      	strb	r3, [r2, #12]
+    b0[13] = ( fCnt >> 24 ) & 0xFF;
+ 801173c:	0e09      	lsrs	r1, r1, #24
+ 801173e:	7351      	strb	r1, [r2, #13]
+
+    b0[14] = 0x00;
+ 8011740:	7390      	strb	r0, [r2, #14]
+
+    b0[15] = msgLen & 0xFF;
+ 8011742:	f882 c00f 	strb.w	ip, [r2, #15]
+
+    return LORAMAC_CRYPTO_SUCCESS;
+}
+ 8011746:	bc10      	pop	{r4}
+ 8011748:	4770      	bx	lr
+        return LORAMAC_CRYPTO_ERROR_NPE;
+ 801174a:	200a      	movs	r0, #10
+ 801174c:	e7fb      	b.n	8011746 <PrepareB0+0x3e>
+	...
+
+08011750 <GetKeyAddrItem>:
+ * \param [out] keyItem       - Key item reference
+ * \retval                    - Status of the operation
+ */
+static LoRaMacCryptoStatus_t GetKeyAddrItem( AddressIdentifier_t addrID, KeyAddr_t** item )
+{
+    for( uint8_t i = 0; i < NUM_OF_SEC_CTX; i++ )
+ 8011750:	2300      	movs	r3, #0
+ 8011752:	2b01      	cmp	r3, #1
+ 8011754:	d80e      	bhi.n	8011774 <GetKeyAddrItem+0x24>
+    {
+        if( KeyAddrList[i].AddrID == addrID )
+ 8011756:	469c      	mov	ip, r3
+ 8011758:	4a07      	ldr	r2, [pc, #28]	; (8011778 <GetKeyAddrItem+0x28>)
+ 801175a:	f812 2023 	ldrb.w	r2, [r2, r3, lsl #2]
+ 801175e:	4282      	cmp	r2, r0
+ 8011760:	d002      	beq.n	8011768 <GetKeyAddrItem+0x18>
+    for( uint8_t i = 0; i < NUM_OF_SEC_CTX; i++ )
+ 8011762:	3301      	adds	r3, #1
+ 8011764:	b2db      	uxtb	r3, r3
+ 8011766:	e7f4      	b.n	8011752 <GetKeyAddrItem+0x2>
+        {
+            *item = &( KeyAddrList[i] );
+ 8011768:	4b03      	ldr	r3, [pc, #12]	; (8011778 <GetKeyAddrItem+0x28>)
+ 801176a:	eb03 038c 	add.w	r3, r3, ip, lsl #2
+ 801176e:	600b      	str	r3, [r1, #0]
+            return LORAMAC_CRYPTO_SUCCESS;
+ 8011770:	2000      	movs	r0, #0
+ 8011772:	4770      	bx	lr
+        }
+    }
+    return LORAMAC_CRYPTO_ERROR_INVALID_ADDR_ID;
+ 8011774:	200c      	movs	r0, #12
+}
+ 8011776:	4770      	bx	lr
+ 8011778:	200008b4 	.word	0x200008b4
+
+0801177c <GetLastFcntDown>:
+ *
+ * \retval                     - Status of the operation
+ */
+static LoRaMacCryptoStatus_t GetLastFcntDown( FCntIdentifier_t fCntID, uint32_t* lastDown )
+{
+    if( lastDown == NULL )
+ 801177c:	b1f1      	cbz	r1, 80117bc <GetLastFcntDown+0x40>
+    {
+        return LORAMAC_CRYPTO_ERROR_NPE;
+    }
+    switch( fCntID )
+ 801177e:	3801      	subs	r0, #1
+ 8011780:	2803      	cmp	r0, #3
+ 8011782:	d81d      	bhi.n	80117c0 <GetLastFcntDown+0x44>
+ 8011784:	e8df f000 	tbb	[pc, r0]
+ 8011788:	140e0802 	.word	0x140e0802
+    {
+        case N_FCNT_DOWN:
+            *lastDown = CryptoNvm->FCntList.NFCntDown;
+ 801178c:	4a0d      	ldr	r2, [pc, #52]	; (80117c4 <GetLastFcntDown+0x48>)
+ 801178e:	6812      	ldr	r2, [r2, #0]
+ 8011790:	6912      	ldr	r2, [r2, #16]
+ 8011792:	600a      	str	r2, [r1, #0]
+            break;
+#endif /* LORAMAC_MAX_MC_CTX > 3 */
+        default:
+            return LORAMAC_CRYPTO_FAIL_FCNT_ID;
+    }
+    return LORAMAC_CRYPTO_SUCCESS;
+ 8011794:	2000      	movs	r0, #0
+            break;
+ 8011796:	4770      	bx	lr
+            *lastDown = CryptoNvm->FCntList.AFCntDown;
+ 8011798:	4a0a      	ldr	r2, [pc, #40]	; (80117c4 <GetLastFcntDown+0x48>)
+ 801179a:	6812      	ldr	r2, [r2, #0]
+ 801179c:	6952      	ldr	r2, [r2, #20]
+ 801179e:	600a      	str	r2, [r1, #0]
+    return LORAMAC_CRYPTO_SUCCESS;
+ 80117a0:	2000      	movs	r0, #0
+            break;
+ 80117a2:	4770      	bx	lr
+            *lastDown = CryptoNvm->FCntList.FCntDown;
+ 80117a4:	4a07      	ldr	r2, [pc, #28]	; (80117c4 <GetLastFcntDown+0x48>)
+ 80117a6:	6812      	ldr	r2, [r2, #0]
+ 80117a8:	6992      	ldr	r2, [r2, #24]
+ 80117aa:	600a      	str	r2, [r1, #0]
+    return LORAMAC_CRYPTO_SUCCESS;
+ 80117ac:	2000      	movs	r0, #0
+            break;
+ 80117ae:	4770      	bx	lr
+            *lastDown = CryptoNvm->FCntList.McFCntDown[0];
+ 80117b0:	4a04      	ldr	r2, [pc, #16]	; (80117c4 <GetLastFcntDown+0x48>)
+ 80117b2:	6812      	ldr	r2, [r2, #0]
+ 80117b4:	69d2      	ldr	r2, [r2, #28]
+ 80117b6:	600a      	str	r2, [r1, #0]
+    return LORAMAC_CRYPTO_SUCCESS;
+ 80117b8:	2000      	movs	r0, #0
+            break;
+ 80117ba:	4770      	bx	lr
+        return LORAMAC_CRYPTO_ERROR_NPE;
+ 80117bc:	200a      	movs	r0, #10
+ 80117be:	4770      	bx	lr
+    switch( fCntID )
+ 80117c0:	2005      	movs	r0, #5
+}
+ 80117c2:	4770      	bx	lr
+ 80117c4:	20002620 	.word	0x20002620
+
+080117c8 <CheckFCntDown>:
+ * \param [in]    currentDown  - Current downlink counter value
+ *
+ * \retval                     - Status of the operation
+ */
+static bool CheckFCntDown( FCntIdentifier_t fCntID, uint32_t currentDown )
+{
+ 80117c8:	b510      	push	{r4, lr}
+ 80117ca:	b082      	sub	sp, #8
+ 80117cc:	460c      	mov	r4, r1
+    uint32_t lastDown = 0;
+ 80117ce:	2300      	movs	r3, #0
+ 80117d0:	9301      	str	r3, [sp, #4]
+    if( GetLastFcntDown( fCntID, &lastDown ) != LORAMAC_CRYPTO_SUCCESS )
+ 80117d2:	a901      	add	r1, sp, #4
+ 80117d4:	f7ff ffd2 	bl	801177c <GetLastFcntDown>
+ 80117d8:	b948      	cbnz	r0, 80117ee <CheckFCntDown+0x26>
+    {
+        return false;
+    }
+    if( ( currentDown > lastDown ) ||
+ 80117da:	9b01      	ldr	r3, [sp, #4]
+ 80117dc:	42a3      	cmp	r3, r4
+ 80117de:	d309      	bcc.n	80117f4 <CheckFCntDown+0x2c>
+ 80117e0:	f1b3 3fff 	cmp.w	r3, #4294967295
+ 80117e4:	d001      	beq.n	80117ea <CheckFCntDown+0x22>
+    {
+        return true;
+    }
+    else
+    {
+        return false;
+ 80117e6:	2000      	movs	r0, #0
+ 80117e8:	e002      	b.n	80117f0 <CheckFCntDown+0x28>
+        return true;
+ 80117ea:	2001      	movs	r0, #1
+ 80117ec:	e000      	b.n	80117f0 <CheckFCntDown+0x28>
+        return false;
+ 80117ee:	2000      	movs	r0, #0
+    }
+}
+ 80117f0:	b002      	add	sp, #8
+ 80117f2:	bd10      	pop	{r4, pc}
+        return true;
+ 80117f4:	2001      	movs	r0, #1
+ 80117f6:	e7fb      	b.n	80117f0 <CheckFCntDown+0x28>
+
+080117f8 <UpdateFCntDown>:
+ *
+ * \retval                     - Status of the operation
+ */
+static void UpdateFCntDown( FCntIdentifier_t fCntID, uint32_t currentDown )
+{
+    switch( fCntID )
+ 80117f8:	3801      	subs	r0, #1
+ 80117fa:	2803      	cmp	r0, #3
+ 80117fc:	d815      	bhi.n	801182a <UpdateFCntDown+0x32>
+ 80117fe:	e8df f000 	tbb	[pc, r0]
+ 8011802:	0702      	.short	0x0702
+ 8011804:	110c      	.short	0x110c
+    {
+        case N_FCNT_DOWN:
+            CryptoNvm->FCntList.NFCntDown = currentDown;
+ 8011806:	4b09      	ldr	r3, [pc, #36]	; (801182c <UpdateFCntDown+0x34>)
+ 8011808:	681b      	ldr	r3, [r3, #0]
+ 801180a:	6119      	str	r1, [r3, #16]
+            CryptoNvm->LastDownFCnt = currentDown;
+ 801180c:	6219      	str	r1, [r3, #32]
+            break;
+ 801180e:	4770      	bx	lr
+        case A_FCNT_DOWN:
+            CryptoNvm->FCntList.AFCntDown = currentDown;
+ 8011810:	4b06      	ldr	r3, [pc, #24]	; (801182c <UpdateFCntDown+0x34>)
+ 8011812:	681b      	ldr	r3, [r3, #0]
+ 8011814:	6159      	str	r1, [r3, #20]
+            CryptoNvm->LastDownFCnt = currentDown;
+ 8011816:	6219      	str	r1, [r3, #32]
+            break;
+ 8011818:	4770      	bx	lr
+        case FCNT_DOWN:
+            CryptoNvm->FCntList.FCntDown = currentDown;
+ 801181a:	4b04      	ldr	r3, [pc, #16]	; (801182c <UpdateFCntDown+0x34>)
+ 801181c:	681b      	ldr	r3, [r3, #0]
+ 801181e:	6199      	str	r1, [r3, #24]
+            CryptoNvm->LastDownFCnt = currentDown;
+ 8011820:	6219      	str	r1, [r3, #32]
+            break;
+ 8011822:	4770      	bx	lr
+#if ( LORAMAC_MAX_MC_CTX > 0 )
+        case MC_FCNT_DOWN_0:
+            CryptoNvm->FCntList.McFCntDown[0] = currentDown;
+ 8011824:	4b01      	ldr	r3, [pc, #4]	; (801182c <UpdateFCntDown+0x34>)
+ 8011826:	681b      	ldr	r3, [r3, #0]
+ 8011828:	61d9      	str	r1, [r3, #28]
+            break;
+#endif /* LORAMAC_MAX_MC_CTX > 3 */
+        default:
+            break;
+    }
+}
+ 801182a:	4770      	bx	lr
+ 801182c:	20002620 	.word	0x20002620
+
+08011830 <ResetFCnts>:
+/*!
+ * Resets the frame counters
+ */
+static void ResetFCnts( void )
+{
+    CryptoNvm->FCntList.FCntUp = 0;
+ 8011830:	4b0a      	ldr	r3, [pc, #40]	; (801185c <ResetFCnts+0x2c>)
+ 8011832:	681a      	ldr	r2, [r3, #0]
+ 8011834:	2300      	movs	r3, #0
+ 8011836:	60d3      	str	r3, [r2, #12]
+    CryptoNvm->FCntList.NFCntDown = FCNT_DOWN_INITIAL_VALUE;
+ 8011838:	f04f 31ff 	mov.w	r1, #4294967295
+ 801183c:	6111      	str	r1, [r2, #16]
+    CryptoNvm->FCntList.AFCntDown = FCNT_DOWN_INITIAL_VALUE;
+ 801183e:	6151      	str	r1, [r2, #20]
+    CryptoNvm->FCntList.FCntDown = FCNT_DOWN_INITIAL_VALUE;
+ 8011840:	6191      	str	r1, [r2, #24]
+    CryptoNvm->LastDownFCnt = CryptoNvm->FCntList.FCntDown;
+ 8011842:	6211      	str	r1, [r2, #32]
+
+    for( int32_t i = 0; i < LORAMAC_MAX_MC_CTX; i++ )
+ 8011844:	2b00      	cmp	r3, #0
+ 8011846:	dd00      	ble.n	801184a <ResetFCnts+0x1a>
+    {
+        CryptoNvm->FCntList.McFCntDown[i] = FCNT_DOWN_INITIAL_VALUE;
+    }
+}
+ 8011848:	4770      	bx	lr
+        CryptoNvm->FCntList.McFCntDown[i] = FCNT_DOWN_INITIAL_VALUE;
+ 801184a:	1d99      	adds	r1, r3, #6
+ 801184c:	eb02 0181 	add.w	r1, r2, r1, lsl #2
+ 8011850:	f04f 30ff 	mov.w	r0, #4294967295
+ 8011854:	6048      	str	r0, [r1, #4]
+    for( int32_t i = 0; i < LORAMAC_MAX_MC_CTX; i++ )
+ 8011856:	3301      	adds	r3, #1
+ 8011858:	e7f4      	b.n	8011844 <ResetFCnts+0x14>
+ 801185a:	bf00      	nop
+ 801185c:	20002620 	.word	0x20002620
+
+08011860 <IsJoinNonce10xOk>:
+
+static bool IsJoinNonce10xOk( uint32_t joinNonce )
+{
+#if( USE_10X_JOIN_NONCE_COUNTER_CHECK == 1 )
+    // Check if the JoinNonce is greater as the previous one
+    return ( joinNonce > CryptoNvm->JoinNonce ) ? true : false;
+ 8011860:	4b03      	ldr	r3, [pc, #12]	; (8011870 <IsJoinNonce10xOk+0x10>)
+ 8011862:	681b      	ldr	r3, [r3, #0]
+ 8011864:	689b      	ldr	r3, [r3, #8]
+#else
+    // Check if the JoinNonce is different from the previous one
+    return( joinNonce != CryptoNvm->JoinNonce ) ? true : false;
+#endif
+}
+ 8011866:	4283      	cmp	r3, r0
+ 8011868:	bf2c      	ite	cs
+ 801186a:	2000      	movcs	r0, #0
+ 801186c:	2001      	movcc	r0, #1
+ 801186e:	4770      	bx	lr
+ 8011870:	20002620 	.word	0x20002620
+
+08011874 <ComputeCmacB0>:
+{
+ 8011874:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8011878:	b088      	sub	sp, #32
+ 801187a:	9e11      	ldr	r6, [sp, #68]	; 0x44
+    if( ( msg == 0 ) || ( cmac == 0 ) )
+ 801187c:	b1f0      	cbz	r0, 80118bc <ComputeCmacB0+0x48>
+ 801187e:	460c      	mov	r4, r1
+ 8011880:	4615      	mov	r5, r2
+ 8011882:	461a      	mov	r2, r3
+ 8011884:	4680      	mov	r8, r0
+ 8011886:	b1de      	cbz	r6, 80118c0 <ComputeCmacB0+0x4c>
+    if( len > CRYPTO_MAXMESSAGE_SIZE )
+ 8011888:	f5b1 7f80 	cmp.w	r1, #256	; 0x100
+ 801188c:	d81a      	bhi.n	80118c4 <ComputeCmacB0+0x50>
+    PrepareB0( len, keyID, isAck, dir, devAddr, fCnt, micBuff );
+ 801188e:	af04      	add	r7, sp, #16
+ 8011890:	9702      	str	r7, [sp, #8]
+ 8011892:	9b10      	ldr	r3, [sp, #64]	; 0x40
+ 8011894:	9301      	str	r3, [sp, #4]
+ 8011896:	9b0f      	ldr	r3, [sp, #60]	; 0x3c
+ 8011898:	9300      	str	r3, [sp, #0]
+ 801189a:	f89d 3038 	ldrb.w	r3, [sp, #56]	; 0x38
+ 801189e:	4629      	mov	r1, r5
+ 80118a0:	4620      	mov	r0, r4
+ 80118a2:	f7ff ff31 	bl	8011708 <PrepareB0>
+    if( SecureElementComputeAesCmac( micBuff, msg, len, keyID, cmac ) != SECURE_ELEMENT_SUCCESS )
+ 80118a6:	9600      	str	r6, [sp, #0]
+ 80118a8:	462b      	mov	r3, r5
+ 80118aa:	4622      	mov	r2, r4
+ 80118ac:	4641      	mov	r1, r8
+ 80118ae:	4638      	mov	r0, r7
+ 80118b0:	f002 fc20 	bl	80140f4 <SecureElementComputeAesCmac>
+ 80118b4:	b940      	cbnz	r0, 80118c8 <ComputeCmacB0+0x54>
+}
+ 80118b6:	b008      	add	sp, #32
+ 80118b8:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+        return LORAMAC_CRYPTO_ERROR_NPE;
+ 80118bc:	200a      	movs	r0, #10
+ 80118be:	e7fa      	b.n	80118b6 <ComputeCmacB0+0x42>
+ 80118c0:	200a      	movs	r0, #10
+ 80118c2:	e7f8      	b.n	80118b6 <ComputeCmacB0+0x42>
+        return LORAMAC_CRYPTO_ERROR_BUF_SIZE;
+ 80118c4:	200e      	movs	r0, #14
+ 80118c6:	e7f6      	b.n	80118b6 <ComputeCmacB0+0x42>
+        return LORAMAC_CRYPTO_ERROR_SECURE_ELEMENT_FUNC;
+ 80118c8:	200f      	movs	r0, #15
+ 80118ca:	e7f4      	b.n	80118b6 <ComputeCmacB0+0x42>
+
+080118cc <DeriveSessionKey10x>:
+{
+ 80118cc:	b510      	push	{r4, lr}
+ 80118ce:	b084      	sub	sp, #16
+    uint8_t compBase[16] = { 0 };
+ 80118d0:	2400      	movs	r4, #0
+ 80118d2:	9400      	str	r4, [sp, #0]
+ 80118d4:	9401      	str	r4, [sp, #4]
+ 80118d6:	9402      	str	r4, [sp, #8]
+ 80118d8:	9403      	str	r4, [sp, #12]
+    switch( keyID )
+ 80118da:	2808      	cmp	r0, #8
+ 80118dc:	d003      	beq.n	80118e6 <DeriveSessionKey10x+0x1a>
+ 80118de:	2809      	cmp	r0, #9
+ 80118e0:	d025      	beq.n	801192e <DeriveSessionKey10x+0x62>
+ 80118e2:	200b      	movs	r0, #11
+ 80118e4:	e021      	b.n	801192a <DeriveSessionKey10x+0x5e>
+            compBase[0] = 0x01;
+ 80118e6:	2401      	movs	r4, #1
+ 80118e8:	f88d 4000 	strb.w	r4, [sp]
+    compBase[1] = ( uint8_t )( ( joinNonce >> 0 ) & 0xFF );
+ 80118ec:	f88d 1001 	strb.w	r1, [sp, #1]
+    compBase[2] = ( uint8_t )( ( joinNonce >> 8 ) & 0xFF );
+ 80118f0:	f3c1 2407 	ubfx	r4, r1, #8, #8
+ 80118f4:	f88d 4002 	strb.w	r4, [sp, #2]
+    compBase[3] = ( uint8_t )( ( joinNonce >> 16 ) & 0xFF );
+ 80118f8:	f3c1 4107 	ubfx	r1, r1, #16, #8
+ 80118fc:	f88d 1003 	strb.w	r1, [sp, #3]
+    compBase[4] = ( uint8_t )( ( netID >> 0 ) & 0xFF );
+ 8011900:	f88d 2004 	strb.w	r2, [sp, #4]
+    compBase[5] = ( uint8_t )( ( netID >> 8 ) & 0xFF );
+ 8011904:	f3c2 2107 	ubfx	r1, r2, #8, #8
+ 8011908:	f88d 1005 	strb.w	r1, [sp, #5]
+    compBase[6] = ( uint8_t )( ( netID >> 16 ) & 0xFF );
+ 801190c:	f3c2 4207 	ubfx	r2, r2, #16, #8
+ 8011910:	f88d 2006 	strb.w	r2, [sp, #6]
+    compBase[7] = ( uint8_t )( ( devNonce >> 0 ) & 0xFF );
+ 8011914:	f88d 3007 	strb.w	r3, [sp, #7]
+    compBase[8] = ( uint8_t )( ( devNonce >> 8 ) & 0xFF );
+ 8011918:	0a1b      	lsrs	r3, r3, #8
+ 801191a:	f88d 3008 	strb.w	r3, [sp, #8]
+    if( SecureElementDeriveAndStoreKey( compBase, NWK_KEY, keyID ) != SECURE_ELEMENT_SUCCESS )
+ 801191e:	4602      	mov	r2, r0
+ 8011920:	2101      	movs	r1, #1
+ 8011922:	4668      	mov	r0, sp
+ 8011924:	f002 fc84 	bl	8014230 <SecureElementDeriveAndStoreKey>
+ 8011928:	b928      	cbnz	r0, 8011936 <DeriveSessionKey10x+0x6a>
+}
+ 801192a:	b004      	add	sp, #16
+ 801192c:	bd10      	pop	{r4, pc}
+            compBase[0] = 0x02;
+ 801192e:	2402      	movs	r4, #2
+ 8011930:	f88d 4000 	strb.w	r4, [sp]
+            break;
+ 8011934:	e7da      	b.n	80118ec <DeriveSessionKey10x+0x20>
+        return LORAMAC_CRYPTO_ERROR_SECURE_ELEMENT_FUNC;
+ 8011936:	200f      	movs	r0, #15
+ 8011938:	e7f7      	b.n	801192a <DeriveSessionKey10x+0x5e>
+
+0801193a <PayloadEncrypt>:
+{
+ 801193a:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 801193e:	b088      	sub	sp, #32
+ 8011940:	4690      	mov	r8, r2
+ 8011942:	9a0f      	ldr	r2, [sp, #60]	; 0x3c
+    if( buffer == 0 )
+ 8011944:	2800      	cmp	r0, #0
+ 8011946:	d052      	beq.n	80119ee <PayloadEncrypt+0xb4>
+ 8011948:	460d      	mov	r5, r1
+ 801194a:	4604      	mov	r4, r0
+    uint8_t sBlock[16] = { 0 };
+ 801194c:	2600      	movs	r6, #0
+ 801194e:	9604      	str	r6, [sp, #16]
+ 8011950:	9605      	str	r6, [sp, #20]
+ 8011952:	9606      	str	r6, [sp, #24]
+ 8011954:	9607      	str	r6, [sp, #28]
+    uint8_t aBlock[16] = { 0 };
+ 8011956:	9600      	str	r6, [sp, #0]
+ 8011958:	9601      	str	r6, [sp, #4]
+ 801195a:	9602      	str	r6, [sp, #8]
+ 801195c:	9603      	str	r6, [sp, #12]
+    aBlock[0] = 0x01;
+ 801195e:	2701      	movs	r7, #1
+ 8011960:	f88d 7000 	strb.w	r7, [sp]
+    aBlock[5] = dir;
+ 8011964:	f89d 1038 	ldrb.w	r1, [sp, #56]	; 0x38
+ 8011968:	f88d 1005 	strb.w	r1, [sp, #5]
+    aBlock[6] = address & 0xFF;
+ 801196c:	f88d 3006 	strb.w	r3, [sp, #6]
+    aBlock[7] = ( address >> 8 ) & 0xFF;
+ 8011970:	0a19      	lsrs	r1, r3, #8
+ 8011972:	f88d 1007 	strb.w	r1, [sp, #7]
+    aBlock[8] = ( address >> 16 ) & 0xFF;
+ 8011976:	0c19      	lsrs	r1, r3, #16
+ 8011978:	f88d 1008 	strb.w	r1, [sp, #8]
+    aBlock[9] = ( address >> 24 ) & 0xFF;
+ 801197c:	0e1b      	lsrs	r3, r3, #24
+ 801197e:	f88d 3009 	strb.w	r3, [sp, #9]
+    aBlock[10] = frameCounter & 0xFF;
+ 8011982:	f88d 200a 	strb.w	r2, [sp, #10]
+    aBlock[11] = ( frameCounter >> 8 ) & 0xFF;
+ 8011986:	0a13      	lsrs	r3, r2, #8
+ 8011988:	f88d 300b 	strb.w	r3, [sp, #11]
+    aBlock[12] = ( frameCounter >> 16 ) & 0xFF;
+ 801198c:	0c13      	lsrs	r3, r2, #16
+ 801198e:	f88d 300c 	strb.w	r3, [sp, #12]
+    aBlock[13] = ( frameCounter >> 24 ) & 0xFF;
+ 8011992:	0e12      	lsrs	r2, r2, #24
+ 8011994:	f88d 200d 	strb.w	r2, [sp, #13]
+    while( size > 0 )
+ 8011998:	e014      	b.n	80119c4 <PayloadEncrypt+0x8a>
+            buffer[bufferIndex + i] = buffer[bufferIndex + i] ^ sBlock[i];
+ 801199a:	18f2      	adds	r2, r6, r3
+ 801199c:	5ca0      	ldrb	r0, [r4, r2]
+ 801199e:	f103 0120 	add.w	r1, r3, #32
+ 80119a2:	4469      	add	r1, sp
+ 80119a4:	f811 1c10 	ldrb.w	r1, [r1, #-16]
+ 80119a8:	4048      	eors	r0, r1
+ 80119aa:	54a0      	strb	r0, [r4, r2]
+        for( uint8_t i = 0; i < ( ( size > 16 ) ? 16 : size ); i++ )
+ 80119ac:	3301      	adds	r3, #1
+ 80119ae:	b2db      	uxtb	r3, r3
+ 80119b0:	462a      	mov	r2, r5
+ 80119b2:	2d10      	cmp	r5, #16
+ 80119b4:	bfa8      	it	ge
+ 80119b6:	2210      	movge	r2, #16
+ 80119b8:	4293      	cmp	r3, r2
+ 80119ba:	dbee      	blt.n	801199a <PayloadEncrypt+0x60>
+        size -= 16;
+ 80119bc:	3d10      	subs	r5, #16
+ 80119be:	b22d      	sxth	r5, r5
+        bufferIndex += 16;
+ 80119c0:	3610      	adds	r6, #16
+ 80119c2:	b2f6      	uxtb	r6, r6
+    while( size > 0 )
+ 80119c4:	2d00      	cmp	r5, #0
+ 80119c6:	dd0e      	ble.n	80119e6 <PayloadEncrypt+0xac>
+        aBlock[15] = ctr & 0xFF;
+ 80119c8:	f88d 700f 	strb.w	r7, [sp, #15]
+        ctr++;
+ 80119cc:	3701      	adds	r7, #1
+ 80119ce:	b2bf      	uxth	r7, r7
+        if( SecureElementAesEncrypt( aBlock, 16, keyID, sBlock ) != SECURE_ELEMENT_SUCCESS )
+ 80119d0:	ab04      	add	r3, sp, #16
+ 80119d2:	4642      	mov	r2, r8
+ 80119d4:	2110      	movs	r1, #16
+ 80119d6:	4668      	mov	r0, sp
+ 80119d8:	f002 fbb1 	bl	801413e <SecureElementAesEncrypt>
+ 80119dc:	4603      	mov	r3, r0
+ 80119de:	2800      	cmp	r0, #0
+ 80119e0:	d0e6      	beq.n	80119b0 <PayloadEncrypt+0x76>
+            return LORAMAC_CRYPTO_ERROR_SECURE_ELEMENT_FUNC;
+ 80119e2:	200f      	movs	r0, #15
+ 80119e4:	e000      	b.n	80119e8 <PayloadEncrypt+0xae>
+    return LORAMAC_CRYPTO_SUCCESS;
+ 80119e6:	2000      	movs	r0, #0
+}
+ 80119e8:	b008      	add	sp, #32
+ 80119ea:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+        return LORAMAC_CRYPTO_ERROR_NPE;
+ 80119ee:	200a      	movs	r0, #10
+ 80119f0:	e7fa      	b.n	80119e8 <PayloadEncrypt+0xae>
+
+080119f2 <VerifyCmacB0>:
+    if( msg == 0 )
+ 80119f2:	b368      	cbz	r0, 8011a50 <VerifyCmacB0+0x5e>
+{
+ 80119f4:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 80119f8:	b0c8      	sub	sp, #288	; 0x120
+ 80119fa:	460c      	mov	r4, r1
+ 80119fc:	4615      	mov	r5, r2
+ 80119fe:	461e      	mov	r6, r3
+ 8011a00:	4680      	mov	r8, r0
+    if( len > CRYPTO_MAXMESSAGE_SIZE )
+ 8011a02:	f5b1 7f80 	cmp.w	r1, #256	; 0x100
+ 8011a06:	d825      	bhi.n	8011a54 <VerifyCmacB0+0x62>
+    memset1( micBuff, 0, CRYPTO_BUFFER_SIZE );
+ 8011a08:	af04      	add	r7, sp, #16
+ 8011a0a:	f44f 7288 	mov.w	r2, #272	; 0x110
+ 8011a0e:	2100      	movs	r1, #0
+ 8011a10:	4638      	mov	r0, r7
+ 8011a12:	f002 fdda 	bl	80145ca <memset1>
+    PrepareB0( len, keyID, isAck, dir, devAddr, fCnt, micBuff );
+ 8011a16:	9702      	str	r7, [sp, #8]
+ 8011a18:	9b50      	ldr	r3, [sp, #320]	; 0x140
+ 8011a1a:	9301      	str	r3, [sp, #4]
+ 8011a1c:	9b4f      	ldr	r3, [sp, #316]	; 0x13c
+ 8011a1e:	9300      	str	r3, [sp, #0]
+ 8011a20:	f89d 3138 	ldrb.w	r3, [sp, #312]	; 0x138
+ 8011a24:	4632      	mov	r2, r6
+ 8011a26:	4629      	mov	r1, r5
+ 8011a28:	4620      	mov	r0, r4
+ 8011a2a:	f7ff fe6d 	bl	8011708 <PrepareB0>
+    memcpy1( ( micBuff + MIC_BLOCK_BX_SIZE ), msg, len );
+ 8011a2e:	4622      	mov	r2, r4
+ 8011a30:	4641      	mov	r1, r8
+ 8011a32:	a808      	add	r0, sp, #32
+ 8011a34:	f002 fdb1 	bl	801459a <memcpy1>
+    retval = SecureElementVerifyAesCmac( micBuff, ( len + MIC_BLOCK_BX_SIZE ), expectedCmac, keyID );
+ 8011a38:	462b      	mov	r3, r5
+ 8011a3a:	9a51      	ldr	r2, [sp, #324]	; 0x144
+ 8011a3c:	f104 0110 	add.w	r1, r4, #16
+ 8011a40:	4638      	mov	r0, r7
+ 8011a42:	f002 fb66 	bl	8014112 <SecureElementVerifyAesCmac>
+    if( retval == SECURE_ELEMENT_SUCCESS )
+ 8011a46:	b130      	cbz	r0, 8011a56 <VerifyCmacB0+0x64>
+    else if( retval == SECURE_ELEMENT_FAIL_CMAC )
+ 8011a48:	2801      	cmp	r0, #1
+ 8011a4a:	d004      	beq.n	8011a56 <VerifyCmacB0+0x64>
+    return LORAMAC_CRYPTO_ERROR_SECURE_ELEMENT_FUNC;
+ 8011a4c:	200f      	movs	r0, #15
+ 8011a4e:	e002      	b.n	8011a56 <VerifyCmacB0+0x64>
+        return LORAMAC_CRYPTO_ERROR_NPE;
+ 8011a50:	200a      	movs	r0, #10
+}
+ 8011a52:	4770      	bx	lr
+        return LORAMAC_CRYPTO_ERROR_BUF_SIZE;
+ 8011a54:	200e      	movs	r0, #14
+}
+ 8011a56:	b048      	add	sp, #288	; 0x120
+ 8011a58:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+
+08011a5c <LoRaMacCryptoInit>:
+/*
+ *  API functions
+ */
+LoRaMacCryptoStatus_t LoRaMacCryptoInit( LoRaMacCryptoNvmData_t* nvm )
+{
+    if( nvm == NULL )
+ 8011a5c:	b188      	cbz	r0, 8011a82 <LoRaMacCryptoInit+0x26>
+{
+ 8011a5e:	b510      	push	{r4, lr}
+    {
+        return LORAMAC_CRYPTO_FAIL_PARAM;
+    }
+
+    // Assign non volatile context
+    CryptoNvm = nvm;
+ 8011a60:	4c09      	ldr	r4, [pc, #36]	; (8011a88 <LoRaMacCryptoInit+0x2c>)
+ 8011a62:	6020      	str	r0, [r4, #0]
+
+    // Initialize with default
+    memset1( ( uint8_t* )CryptoNvm, 0, sizeof( LoRaMacCryptoNvmData_t ) );
+ 8011a64:	2228      	movs	r2, #40	; 0x28
+ 8011a66:	2100      	movs	r1, #0
+ 8011a68:	f002 fdaf 	bl	80145ca <memset1>
+
+    // Set default LoRaWAN version
+    CryptoNvm->LrWanVersion.Fields.Major = 1;
+ 8011a6c:	6823      	ldr	r3, [r4, #0]
+ 8011a6e:	2201      	movs	r2, #1
+ 8011a70:	70da      	strb	r2, [r3, #3]
+    CryptoNvm->LrWanVersion.Fields.Minor = 1;
+ 8011a72:	709a      	strb	r2, [r3, #2]
+    CryptoNvm->LrWanVersion.Fields.Patch = 1;
+ 8011a74:	705a      	strb	r2, [r3, #1]
+    CryptoNvm->LrWanVersion.Fields.Revision = 0;
+ 8011a76:	2400      	movs	r4, #0
+ 8011a78:	701c      	strb	r4, [r3, #0]
+
+    // Reset frame counters
+    ResetFCnts( );
+ 8011a7a:	f7ff fed9 	bl	8011830 <ResetFCnts>
+
+    return LORAMAC_CRYPTO_SUCCESS;
+ 8011a7e:	4620      	mov	r0, r4
+}
+ 8011a80:	bd10      	pop	{r4, pc}
+        return LORAMAC_CRYPTO_FAIL_PARAM;
+ 8011a82:	2009      	movs	r0, #9
+}
+ 8011a84:	4770      	bx	lr
+ 8011a86:	bf00      	nop
+ 8011a88:	20002620 	.word	0x20002620
+
+08011a8c <LoRaMacCryptoSetLrWanVersion>:
+
+LoRaMacCryptoStatus_t LoRaMacCryptoSetLrWanVersion( Version_t version )
+{
+    CryptoNvm->LrWanVersion = version;
+ 8011a8c:	4b02      	ldr	r3, [pc, #8]	; (8011a98 <LoRaMacCryptoSetLrWanVersion+0xc>)
+ 8011a8e:	681b      	ldr	r3, [r3, #0]
+ 8011a90:	6018      	str	r0, [r3, #0]
+    return LORAMAC_CRYPTO_SUCCESS;
+}
+ 8011a92:	2000      	movs	r0, #0
+ 8011a94:	4770      	bx	lr
+ 8011a96:	bf00      	nop
+ 8011a98:	20002620 	.word	0x20002620
+
+08011a9c <LoRaMacCryptoGetFCntUp>:
+
+LoRaMacCryptoStatus_t LoRaMacCryptoGetFCntUp( uint32_t* currentUp )
+{
+    if( currentUp == NULL )
+ 8011a9c:	b130      	cbz	r0, 8011aac <LoRaMacCryptoGetFCntUp+0x10>
+    {
+        return LORAMAC_CRYPTO_ERROR_NPE;
+    }
+
+    *currentUp = CryptoNvm->FCntList.FCntUp + 1;
+ 8011a9e:	4b04      	ldr	r3, [pc, #16]	; (8011ab0 <LoRaMacCryptoGetFCntUp+0x14>)
+ 8011aa0:	681b      	ldr	r3, [r3, #0]
+ 8011aa2:	68db      	ldr	r3, [r3, #12]
+ 8011aa4:	3301      	adds	r3, #1
+ 8011aa6:	6003      	str	r3, [r0, #0]
+
+    return LORAMAC_CRYPTO_SUCCESS;
+ 8011aa8:	2000      	movs	r0, #0
+ 8011aaa:	4770      	bx	lr
+        return LORAMAC_CRYPTO_ERROR_NPE;
+ 8011aac:	200a      	movs	r0, #10
+}
+ 8011aae:	4770      	bx	lr
+ 8011ab0:	20002620 	.word	0x20002620
+
+08011ab4 <LoRaMacCryptoGetFCntDown>:
+#if (defined( LORAMAC_VERSION ) && ( LORAMAC_VERSION == 0x01000300 ))
+LoRaMacCryptoStatus_t LoRaMacCryptoGetFCntDown( FCntIdentifier_t fCntID, uint16_t maxFCntGap, uint32_t frameFcnt, uint32_t* currentDown )
+{
+ 8011ab4:	b570      	push	{r4, r5, r6, lr}
+ 8011ab6:	b082      	sub	sp, #8
+ 8011ab8:	4614      	mov	r4, r2
+    uint32_t lastDown = 0;
+ 8011aba:	2200      	movs	r2, #0
+ 8011abc:	9201      	str	r2, [sp, #4]
+    int32_t fCntDiff = 0;
+    LoRaMacCryptoStatus_t cryptoStatus = LORAMAC_CRYPTO_ERROR;
+
+    if( currentDown == NULL )
+ 8011abe:	b363      	cbz	r3, 8011b1a <LoRaMacCryptoGetFCntDown+0x66>
+ 8011ac0:	460d      	mov	r5, r1
+ 8011ac2:	461e      	mov	r6, r3
+    {
+        return LORAMAC_CRYPTO_ERROR_NPE;
+    }
+
+    cryptoStatus = GetLastFcntDown( fCntID, &lastDown );
+ 8011ac4:	a901      	add	r1, sp, #4
+ 8011ac6:	f7ff fe59 	bl	801177c <GetLastFcntDown>
+    if( cryptoStatus != LORAMAC_CRYPTO_SUCCESS )
+ 8011aca:	b9b8      	cbnz	r0, 8011afc <LoRaMacCryptoGetFCntDown+0x48>
+    {
+        return cryptoStatus;
+    }
+
+    // For LoRaWAN 1.0.X only, allow downlink frames of 0
+    if( lastDown == FCNT_DOWN_INITIAL_VALUE )
+ 8011acc:	9b01      	ldr	r3, [sp, #4]
+ 8011ace:	f1b3 3fff 	cmp.w	r3, #4294967295
+ 8011ad2:	d015      	beq.n	8011b00 <LoRaMacCryptoGetFCntDown+0x4c>
+        *currentDown = frameFcnt;
+    }
+    else
+    {
+        // Add difference, consider roll-over
+        fCntDiff = ( int32_t )( ( int64_t )frameFcnt - ( int64_t )( lastDown & 0x0000FFFF ) );
+ 8011ad4:	b29a      	uxth	r2, r3
+ 8011ad6:	1aa2      	subs	r2, r4, r2
+
+        if( fCntDiff > 0 )
+ 8011ad8:	2a00      	cmp	r2, #0
+ 8011ada:	dd13      	ble.n	8011b04 <LoRaMacCryptoGetFCntDown+0x50>
+        {  // Positive difference
+            *currentDown = lastDown + fCntDiff;
+ 8011adc:	4413      	add	r3, r2
+ 8011ade:	6033      	str	r3, [r6, #0]
+            *currentDown = ( lastDown & 0xFFFF0000 ) + 0x10000 + frameFcnt;
+        }
+    }
+
+    // For LoRaWAN 1.0.X only, check maxFCntGap
+    if( CryptoNvm->LrWanVersion.Fields.Minor == 0 )
+ 8011ae0:	4b10      	ldr	r3, [pc, #64]	; (8011b24 <LoRaMacCryptoGetFCntDown+0x70>)
+ 8011ae2:	681b      	ldr	r3, [r3, #0]
+ 8011ae4:	789a      	ldrb	r2, [r3, #2]
+ 8011ae6:	b94a      	cbnz	r2, 8011afc <LoRaMacCryptoGetFCntDown+0x48>
+    {
+        if( ( ( int64_t )*currentDown - ( int64_t )lastDown ) >= maxFCntGap )
+ 8011ae8:	6833      	ldr	r3, [r6, #0]
+ 8011aea:	9901      	ldr	r1, [sp, #4]
+ 8011aec:	1a5b      	subs	r3, r3, r1
+ 8011aee:	eb61 0101 	sbc.w	r1, r1, r1
+ 8011af2:	42ab      	cmp	r3, r5
+ 8011af4:	f171 0100 	sbcs.w	r1, r1, #0
+ 8011af8:	da11      	bge.n	8011b1e <LoRaMacCryptoGetFCntDown+0x6a>
+        {
+            return LORAMAC_CRYPTO_FAIL_MAX_GAP_FCNT;
+        }
+    }
+
+    return LORAMAC_CRYPTO_SUCCESS;
+ 8011afa:	4610      	mov	r0, r2
+}
+ 8011afc:	b002      	add	sp, #8
+ 8011afe:	bd70      	pop	{r4, r5, r6, pc}
+        *currentDown = frameFcnt;
+ 8011b00:	6034      	str	r4, [r6, #0]
+ 8011b02:	e7ed      	b.n	8011ae0 <LoRaMacCryptoGetFCntDown+0x2c>
+        else if( fCntDiff == 0 )
+ 8011b04:	b132      	cbz	r2, 8011b14 <LoRaMacCryptoGetFCntDown+0x60>
+            *currentDown = ( lastDown & 0xFFFF0000 ) + 0x10000 + frameFcnt;
+ 8011b06:	0c1b      	lsrs	r3, r3, #16
+ 8011b08:	041b      	lsls	r3, r3, #16
+ 8011b0a:	4423      	add	r3, r4
+ 8011b0c:	f503 3380 	add.w	r3, r3, #65536	; 0x10000
+ 8011b10:	6033      	str	r3, [r6, #0]
+ 8011b12:	e7e5      	b.n	8011ae0 <LoRaMacCryptoGetFCntDown+0x2c>
+            *currentDown = lastDown;
+ 8011b14:	6033      	str	r3, [r6, #0]
+            return LORAMAC_CRYPTO_FAIL_FCNT_DUPLICATED;
+ 8011b16:	2007      	movs	r0, #7
+ 8011b18:	e7f0      	b.n	8011afc <LoRaMacCryptoGetFCntDown+0x48>
+        return LORAMAC_CRYPTO_ERROR_NPE;
+ 8011b1a:	200a      	movs	r0, #10
+ 8011b1c:	e7ee      	b.n	8011afc <LoRaMacCryptoGetFCntDown+0x48>
+            return LORAMAC_CRYPTO_FAIL_MAX_GAP_FCNT;
+ 8011b1e:	2008      	movs	r0, #8
+ 8011b20:	e7ec      	b.n	8011afc <LoRaMacCryptoGetFCntDown+0x48>
+ 8011b22:	bf00      	nop
+ 8011b24:	20002620 	.word	0x20002620
+
+08011b28 <LoRaMacCryptoSetMulticastReference>:
+#endif /* LORAMAC_VERSION */
+}
+
+LoRaMacCryptoStatus_t LoRaMacCryptoSetMulticastReference( MulticastCtx_t* multicastList )
+{
+    if( multicastList == NULL )
+ 8011b28:	4601      	mov	r1, r0
+ 8011b2a:	b908      	cbnz	r0, 8011b30 <LoRaMacCryptoSetMulticastReference+0x8>
+    {
+        return LORAMAC_CRYPTO_ERROR_NPE;
+ 8011b2c:	200a      	movs	r0, #10
+    {
+        multicastList[i].DownLinkCounter = &CryptoNvm->FCntList.McFCntDown[i];
+    }
+
+    return LORAMAC_CRYPTO_SUCCESS;
+}
+ 8011b2e:	4770      	bx	lr
+    for( int32_t i = 0; i < LORAMAC_MAX_MC_CTX; i++ )
+ 8011b30:	2300      	movs	r3, #0
+ 8011b32:	2b00      	cmp	r3, #0
+ 8011b34:	dd01      	ble.n	8011b3a <LoRaMacCryptoSetMulticastReference+0x12>
+    return LORAMAC_CRYPTO_SUCCESS;
+ 8011b36:	2000      	movs	r0, #0
+ 8011b38:	4770      	bx	lr
+        multicastList[i].DownLinkCounter = &CryptoNvm->FCntList.McFCntDown[i];
+ 8011b3a:	4a07      	ldr	r2, [pc, #28]	; (8011b58 <LoRaMacCryptoSetMulticastReference+0x30>)
+ 8011b3c:	6812      	ldr	r2, [r2, #0]
+ 8011b3e:	eb03 0043 	add.w	r0, r3, r3, lsl #1
+ 8011b42:	eb01 1000 	add.w	r0, r1, r0, lsl #4
+ 8011b46:	f103 0c06 	add.w	ip, r3, #6
+ 8011b4a:	eb02 028c 	add.w	r2, r2, ip, lsl #2
+ 8011b4e:	3204      	adds	r2, #4
+ 8011b50:	6242      	str	r2, [r0, #36]	; 0x24
+    for( int32_t i = 0; i < LORAMAC_MAX_MC_CTX; i++ )
+ 8011b52:	3301      	adds	r3, #1
+ 8011b54:	e7ed      	b.n	8011b32 <LoRaMacCryptoSetMulticastReference+0xa>
+ 8011b56:	bf00      	nop
+ 8011b58:	20002620 	.word	0x20002620
+
+08011b5c <LoRaMacCryptoPrepareJoinRequest>:
+    return LORAMAC_CRYPTO_SUCCESS;
+}
+
+LoRaMacCryptoStatus_t LoRaMacCryptoPrepareJoinRequest( LoRaMacMessageJoinRequest_t* macMsg )
+{
+    if( macMsg == 0 )
+ 8011b5c:	b300      	cbz	r0, 8011ba0 <LoRaMacCryptoPrepareJoinRequest+0x44>
+{
+ 8011b5e:	b510      	push	{r4, lr}
+ 8011b60:	b084      	sub	sp, #16
+ 8011b62:	4604      	mov	r4, r0
+    }
+    KeyIdentifier_t micComputationKeyID = NWK_KEY;
+
+    // Add device nonce
+#if ( USE_RANDOM_DEV_NONCE == 1 )
+    uint32_t devNonce = 0;
+ 8011b64:	2300      	movs	r3, #0
+ 8011b66:	9303      	str	r3, [sp, #12]
+    SecureElementRandomNumber( &devNonce );
+ 8011b68:	a803      	add	r0, sp, #12
+ 8011b6a:	f002 fbbf 	bl	80142ec <SecureElementRandomNumber>
+    CryptoNvm->DevNonce = devNonce;
+ 8011b6e:	4b10      	ldr	r3, [pc, #64]	; (8011bb0 <LoRaMacCryptoPrepareJoinRequest+0x54>)
+ 8011b70:	681a      	ldr	r2, [r3, #0]
+ 8011b72:	f8bd 300c 	ldrh.w	r3, [sp, #12]
+ 8011b76:	8093      	strh	r3, [r2, #4]
+#else
+    CryptoNvm->DevNonce++;
+#endif /* USE_RANDOM_DEV_NONCE */
+    macMsg->DevNonce = CryptoNvm->DevNonce;
+ 8011b78:	82e3      	strh	r3, [r4, #22]
+        return LORAMAC_CRYPTO_ERROR;
+    }
+#endif /* LORAMAC_VERSION */
+
+    // Serialize message
+    if( LoRaMacSerializerJoinRequest( macMsg ) != LORAMAC_SERIALIZER_SUCCESS )
+ 8011b7a:	4620      	mov	r0, r4
+ 8011b7c:	f000 fa33 	bl	8011fe6 <LoRaMacSerializerJoinRequest>
+ 8011b80:	b980      	cbnz	r0, 8011ba4 <LoRaMacCryptoPrepareJoinRequest+0x48>
+    {
+        return LORAMAC_CRYPTO_ERROR_SERIALIZER;
+    }
+
+    // Compute mic
+    if( SecureElementComputeAesCmac( NULL, macMsg->Buffer, ( LORAMAC_JOIN_REQ_MSG_SIZE - LORAMAC_MIC_FIELD_SIZE ), micComputationKeyID, &macMsg->MIC ) != SECURE_ELEMENT_SUCCESS )
+ 8011b82:	4623      	mov	r3, r4
+ 8011b84:	f853 1b18 	ldr.w	r1, [r3], #24
+ 8011b88:	9300      	str	r3, [sp, #0]
+ 8011b8a:	2301      	movs	r3, #1
+ 8011b8c:	2213      	movs	r2, #19
+ 8011b8e:	f002 fab1 	bl	80140f4 <SecureElementComputeAesCmac>
+ 8011b92:	b950      	cbnz	r0, 8011baa <LoRaMacCryptoPrepareJoinRequest+0x4e>
+    {
+        return LORAMAC_CRYPTO_ERROR_SECURE_ELEMENT_FUNC;
+    }
+
+    // Reserialize message to add the MIC
+    if( LoRaMacSerializerJoinRequest( macMsg ) != LORAMAC_SERIALIZER_SUCCESS )
+ 8011b94:	4620      	mov	r0, r4
+ 8011b96:	f000 fa26 	bl	8011fe6 <LoRaMacSerializerJoinRequest>
+ 8011b9a:	b120      	cbz	r0, 8011ba6 <LoRaMacCryptoPrepareJoinRequest+0x4a>
+    {
+        return LORAMAC_CRYPTO_ERROR_SERIALIZER;
+ 8011b9c:	2011      	movs	r0, #17
+ 8011b9e:	e002      	b.n	8011ba6 <LoRaMacCryptoPrepareJoinRequest+0x4a>
+        return LORAMAC_CRYPTO_ERROR_NPE;
+ 8011ba0:	200a      	movs	r0, #10
+    }
+
+    return LORAMAC_CRYPTO_SUCCESS;
+}
+ 8011ba2:	4770      	bx	lr
+        return LORAMAC_CRYPTO_ERROR_SERIALIZER;
+ 8011ba4:	2011      	movs	r0, #17
+}
+ 8011ba6:	b004      	add	sp, #16
+ 8011ba8:	bd10      	pop	{r4, pc}
+        return LORAMAC_CRYPTO_ERROR_SECURE_ELEMENT_FUNC;
+ 8011baa:	200f      	movs	r0, #15
+ 8011bac:	e7fb      	b.n	8011ba6 <LoRaMacCryptoPrepareJoinRequest+0x4a>
+ 8011bae:	bf00      	nop
+ 8011bb0:	20002620 	.word	0x20002620
+
+08011bb4 <LoRaMacCryptoSecureMessage>:
+LoRaMacCryptoStatus_t LoRaMacCryptoSecureMessage( uint32_t fCntUp, uint8_t txDr, uint8_t txCh, LoRaMacMessageData_t* macMsg )
+{
+    LoRaMacCryptoStatus_t retval = LORAMAC_CRYPTO_ERROR;
+    KeyIdentifier_t payloadDecryptionKeyID = APP_S_KEY;
+
+    if( macMsg == NULL )
+ 8011bb4:	2b00      	cmp	r3, #0
+ 8011bb6:	d036      	beq.n	8011c26 <LoRaMacCryptoSecureMessage+0x72>
+{
+ 8011bb8:	b530      	push	{r4, r5, lr}
+ 8011bba:	b085      	sub	sp, #20
+ 8011bbc:	4604      	mov	r4, r0
+ 8011bbe:	461d      	mov	r5, r3
+    {
+        return LORAMAC_CRYPTO_ERROR_NPE;
+    }
+
+    if( fCntUp < CryptoNvm->FCntList.FCntUp )
+ 8011bc0:	4b1d      	ldr	r3, [pc, #116]	; (8011c38 <LoRaMacCryptoSecureMessage+0x84>)
+ 8011bc2:	681b      	ldr	r3, [r3, #0]
+ 8011bc4:	68db      	ldr	r3, [r3, #12]
+ 8011bc6:	4283      	cmp	r3, r0
+ 8011bc8:	d82f      	bhi.n	8011c2a <LoRaMacCryptoSecureMessage+0x76>
+    {
+        return LORAMAC_CRYPTO_FAIL_FCNT_SMALLER;
+    }
+
+    // Encrypt payload
+    if( macMsg->FPort == 0 )
+ 8011bca:	f895 2020 	ldrb.w	r2, [r5, #32]
+ 8011bce:	b342      	cbz	r2, 8011c22 <LoRaMacCryptoSecureMessage+0x6e>
+    KeyIdentifier_t payloadDecryptionKeyID = APP_S_KEY;
+ 8011bd0:	2209      	movs	r2, #9
+#else
+        payloadDecryptionKeyID = NWK_S_KEY;
+#endif /* LORAMAC_VERSION */
+    }
+
+    if( fCntUp > CryptoNvm->FCntList.FCntUp )
+ 8011bd2:	42a3      	cmp	r3, r4
+ 8011bd4:	d209      	bcs.n	8011bea <LoRaMacCryptoSecureMessage+0x36>
+    {
+        retval = PayloadEncrypt( macMsg->FRMPayload, macMsg->FRMPayloadSize, payloadDecryptionKeyID, macMsg->FHDR.DevAddr, UPLINK, fCntUp );
+ 8011bd6:	9401      	str	r4, [sp, #4]
+ 8011bd8:	2300      	movs	r3, #0
+ 8011bda:	9300      	str	r3, [sp, #0]
+ 8011bdc:	68ab      	ldr	r3, [r5, #8]
+ 8011bde:	f895 1028 	ldrb.w	r1, [r5, #40]	; 0x28
+ 8011be2:	6a68      	ldr	r0, [r5, #36]	; 0x24
+ 8011be4:	f7ff fea9 	bl	801193a <PayloadEncrypt>
+        if( retval != LORAMAC_CRYPTO_SUCCESS )
+ 8011be8:	bb10      	cbnz	r0, 8011c30 <LoRaMacCryptoSecureMessage+0x7c>
+        }
+#endif /* LORAMAC_VERSION */
+    }
+
+    // Serialize message
+    if( LoRaMacSerializerData( macMsg ) != LORAMAC_SERIALIZER_SUCCESS )
+ 8011bea:	4628      	mov	r0, r5
+ 8011bec:	f000 fa31 	bl	8012052 <LoRaMacSerializerData>
+ 8011bf0:	b9e8      	cbnz	r0, 8011c2e <LoRaMacCryptoSecureMessage+0x7a>
+#else
+        payloadDecryptionKeyID = NWK_S_KEY;
+#endif /* LORAMAC_VERSION */
+        // MIC = cmacF[0..3]
+        // The IsAck parameter is every time false since the ConfFCnt field is not used in legacy mode.
+        retval = ComputeCmacB0( macMsg->Buffer, ( macMsg->BufSize - LORAMAC_MIC_FIELD_SIZE ), payloadDecryptionKeyID, false, UPLINK, macMsg->FHDR.DevAddr, fCntUp, &macMsg->MIC );
+ 8011bf2:	7929      	ldrb	r1, [r5, #4]
+ 8011bf4:	3904      	subs	r1, #4
+ 8011bf6:	462b      	mov	r3, r5
+ 8011bf8:	f853 0b2c 	ldr.w	r0, [r3], #44
+ 8011bfc:	9303      	str	r3, [sp, #12]
+ 8011bfe:	9402      	str	r4, [sp, #8]
+ 8011c00:	68ab      	ldr	r3, [r5, #8]
+ 8011c02:	9301      	str	r3, [sp, #4]
+ 8011c04:	2300      	movs	r3, #0
+ 8011c06:	9300      	str	r3, [sp, #0]
+ 8011c08:	2208      	movs	r2, #8
+ 8011c0a:	b289      	uxth	r1, r1
+ 8011c0c:	f7ff fe32 	bl	8011874 <ComputeCmacB0>
+        if( retval != LORAMAC_CRYPTO_SUCCESS )
+ 8011c10:	b970      	cbnz	r0, 8011c30 <LoRaMacCryptoSecureMessage+0x7c>
+            return retval;
+        }
+    }
+
+    // Re-serialize message to add the MIC
+    if( LoRaMacSerializerData( macMsg ) != LORAMAC_SERIALIZER_SUCCESS )
+ 8011c12:	4628      	mov	r0, r5
+ 8011c14:	f000 fa1d 	bl	8012052 <LoRaMacSerializerData>
+ 8011c18:	b960      	cbnz	r0, 8011c34 <LoRaMacCryptoSecureMessage+0x80>
+    {
+        return LORAMAC_CRYPTO_ERROR_SERIALIZER;
+    }
+
+    CryptoNvm->FCntList.FCntUp = fCntUp;
+ 8011c1a:	4b07      	ldr	r3, [pc, #28]	; (8011c38 <LoRaMacCryptoSecureMessage+0x84>)
+ 8011c1c:	681b      	ldr	r3, [r3, #0]
+ 8011c1e:	60dc      	str	r4, [r3, #12]
+
+    return LORAMAC_CRYPTO_SUCCESS;
+ 8011c20:	e006      	b.n	8011c30 <LoRaMacCryptoSecureMessage+0x7c>
+        payloadDecryptionKeyID = NWK_S_KEY;
+ 8011c22:	2208      	movs	r2, #8
+ 8011c24:	e7d5      	b.n	8011bd2 <LoRaMacCryptoSecureMessage+0x1e>
+        return LORAMAC_CRYPTO_ERROR_NPE;
+ 8011c26:	200a      	movs	r0, #10
+}
+ 8011c28:	4770      	bx	lr
+        return LORAMAC_CRYPTO_FAIL_FCNT_SMALLER;
+ 8011c2a:	2006      	movs	r0, #6
+ 8011c2c:	e000      	b.n	8011c30 <LoRaMacCryptoSecureMessage+0x7c>
+        return LORAMAC_CRYPTO_ERROR_SERIALIZER;
+ 8011c2e:	2011      	movs	r0, #17
+}
+ 8011c30:	b005      	add	sp, #20
+ 8011c32:	bd30      	pop	{r4, r5, pc}
+        return LORAMAC_CRYPTO_ERROR_SERIALIZER;
+ 8011c34:	2011      	movs	r0, #17
+ 8011c36:	e7fb      	b.n	8011c30 <LoRaMacCryptoSecureMessage+0x7c>
+ 8011c38:	20002620 	.word	0x20002620
+
+08011c3c <LoRaMacCryptoUnsecureMessage>:
+
+LoRaMacCryptoStatus_t LoRaMacCryptoUnsecureMessage( AddressIdentifier_t addrID, uint32_t address, FCntIdentifier_t fCntID, uint32_t fCntDown, LoRaMacMessageData_t* macMsg )
+{
+ 8011c3c:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
+ 8011c40:	b087      	sub	sp, #28
+ 8011c42:	9e0e      	ldr	r6, [sp, #56]	; 0x38
+    if( macMsg == 0 )
+ 8011c44:	2e00      	cmp	r6, #0
+ 8011c46:	d049      	beq.n	8011cdc <LoRaMacCryptoUnsecureMessage+0xa0>
+ 8011c48:	4605      	mov	r5, r0
+ 8011c4a:	4688      	mov	r8, r1
+ 8011c4c:	4617      	mov	r7, r2
+ 8011c4e:	461c      	mov	r4, r3
+    {
+        return LORAMAC_CRYPTO_ERROR_NPE;
+    }
+
+    if( CheckFCntDown( fCntID, fCntDown ) == false )
+ 8011c50:	4619      	mov	r1, r3
+ 8011c52:	4610      	mov	r0, r2
+ 8011c54:	f7ff fdb8 	bl	80117c8 <CheckFCntDown>
+ 8011c58:	2800      	cmp	r0, #0
+ 8011c5a:	d041      	beq.n	8011ce0 <LoRaMacCryptoUnsecureMessage+0xa4>
+    KeyIdentifier_t micComputationKeyID = NWK_S_KEY;
+#endif /* LORAMAC_VERSION */
+    KeyAddr_t* curItem;
+
+    // Parse the message
+    if( LoRaMacParserData( macMsg ) != LORAMAC_PARSER_SUCCESS )
+ 8011c5c:	4630      	mov	r0, r6
+ 8011c5e:	f000 f963 	bl	8011f28 <LoRaMacParserData>
+ 8011c62:	2800      	cmp	r0, #0
+ 8011c64:	d141      	bne.n	8011cea <LoRaMacCryptoUnsecureMessage+0xae>
+    {
+        return LORAMAC_CRYPTO_ERROR_PARSER;
+    }
+
+    // Determine current security context
+    retval = GetKeyAddrItem( addrID, &curItem );
+ 8011c66:	a905      	add	r1, sp, #20
+ 8011c68:	4628      	mov	r0, r5
+ 8011c6a:	f7ff fd71 	bl	8011750 <GetKeyAddrItem>
+    if( retval != LORAMAC_CRYPTO_SUCCESS )
+ 8011c6e:	4605      	mov	r5, r0
+ 8011c70:	2800      	cmp	r0, #0
+ 8011c72:	d136      	bne.n	8011ce2 <LoRaMacCryptoUnsecureMessage+0xa6>
+    {
+        return retval;
+    }
+
+    payloadDecryptionKeyID = curItem->AppSkey;
+ 8011c74:	9b05      	ldr	r3, [sp, #20]
+ 8011c76:	f893 9001 	ldrb.w	r9, [r3, #1]
+    micComputationKeyID = curItem->NwkSkey;
+ 8011c7a:	789a      	ldrb	r2, [r3, #2]
+
+    // Check if it is our address
+    if( address != macMsg->FHDR.DevAddr )
+ 8011c7c:	68b3      	ldr	r3, [r6, #8]
+ 8011c7e:	4543      	cmp	r3, r8
+ 8011c80:	d135      	bne.n	8011cee <LoRaMacCryptoUnsecureMessage+0xb2>
+    {
+        return LORAMAC_CRYPTO_FAIL_ADDRESS;
+    }
+
+    // Compute mic
+    bool isAck = macMsg->FHDR.FCtrl.Bits.Ack;
+ 8011c82:	7b33      	ldrb	r3, [r6, #12]
+ 8011c84:	f3c3 1340 	ubfx	r3, r3, #5, #1
+    if( CryptoNvm->LrWanVersion.Fields.Minor == 0 )
+ 8011c88:	491a      	ldr	r1, [pc, #104]	; (8011cf4 <LoRaMacCryptoUnsecureMessage+0xb8>)
+ 8011c8a:	6809      	ldr	r1, [r1, #0]
+ 8011c8c:	7889      	ldrb	r1, [r1, #2]
+ 8011c8e:	b901      	cbnz	r1, 8011c92 <LoRaMacCryptoUnsecureMessage+0x56>
+    {
+        // In legacy mode the IsAck parameter is forced to be false since the ConfFCnt field is not used.
+        isAck = false;
+ 8011c90:	2300      	movs	r3, #0
+    }
+
+    // Verify mic
+    retval = VerifyCmacB0( macMsg->Buffer, ( macMsg->BufSize - LORAMAC_MIC_FIELD_SIZE ), micComputationKeyID, isAck, DOWNLINK, address, fCntDown, macMsg->MIC );
+ 8011c92:	7931      	ldrb	r1, [r6, #4]
+ 8011c94:	3904      	subs	r1, #4
+ 8011c96:	6af0      	ldr	r0, [r6, #44]	; 0x2c
+ 8011c98:	9003      	str	r0, [sp, #12]
+ 8011c9a:	9402      	str	r4, [sp, #8]
+ 8011c9c:	f8cd 8004 	str.w	r8, [sp, #4]
+ 8011ca0:	2001      	movs	r0, #1
+ 8011ca2:	9000      	str	r0, [sp, #0]
+ 8011ca4:	b289      	uxth	r1, r1
+ 8011ca6:	6830      	ldr	r0, [r6, #0]
+ 8011ca8:	f7ff fea3 	bl	80119f2 <VerifyCmacB0>
+    if( retval != LORAMAC_CRYPTO_SUCCESS )
+ 8011cac:	4605      	mov	r5, r0
+ 8011cae:	b9c0      	cbnz	r0, 8011ce2 <LoRaMacCryptoUnsecureMessage+0xa6>
+    {
+        return retval;
+    }
+
+    // Decrypt payload
+    if( macMsg->FPort == 0 )
+ 8011cb0:	f896 3020 	ldrb.w	r3, [r6, #32]
+ 8011cb4:	b90b      	cbnz	r3, 8011cba <LoRaMacCryptoUnsecureMessage+0x7e>
+    {
+        // Use network session encryption key
+#if (defined( LORAMAC_VERSION ) && ( LORAMAC_VERSION == 0x01010100 ))
+        payloadDecryptionKeyID = NWK_S_ENC_KEY;
+#else
+        payloadDecryptionKeyID = NWK_S_KEY;
+ 8011cb6:	f04f 0908 	mov.w	r9, #8
+#endif /* LORAMAC_VERSION */
+    }
+    retval = PayloadEncrypt( macMsg->FRMPayload, macMsg->FRMPayloadSize, payloadDecryptionKeyID, address, DOWNLINK, fCntDown );
+ 8011cba:	9401      	str	r4, [sp, #4]
+ 8011cbc:	2301      	movs	r3, #1
+ 8011cbe:	9300      	str	r3, [sp, #0]
+ 8011cc0:	4643      	mov	r3, r8
+ 8011cc2:	464a      	mov	r2, r9
+ 8011cc4:	f896 1028 	ldrb.w	r1, [r6, #40]	; 0x28
+ 8011cc8:	6a70      	ldr	r0, [r6, #36]	; 0x24
+ 8011cca:	f7ff fe36 	bl	801193a <PayloadEncrypt>
+    if( retval != LORAMAC_CRYPTO_SUCCESS )
+ 8011cce:	4605      	mov	r5, r0
+ 8011cd0:	b938      	cbnz	r0, 8011ce2 <LoRaMacCryptoUnsecureMessage+0xa6>
+            }
+        }
+    }
+#endif /* LORAMAC_VERSION */
+
+    UpdateFCntDown( fCntID, fCntDown );
+ 8011cd2:	4621      	mov	r1, r4
+ 8011cd4:	4638      	mov	r0, r7
+ 8011cd6:	f7ff fd8f 	bl	80117f8 <UpdateFCntDown>
+
+    return LORAMAC_CRYPTO_SUCCESS;
+ 8011cda:	e002      	b.n	8011ce2 <LoRaMacCryptoUnsecureMessage+0xa6>
+        return LORAMAC_CRYPTO_ERROR_NPE;
+ 8011cdc:	250a      	movs	r5, #10
+ 8011cde:	e000      	b.n	8011ce2 <LoRaMacCryptoUnsecureMessage+0xa6>
+        return LORAMAC_CRYPTO_FAIL_FCNT_SMALLER;
+ 8011ce0:	2506      	movs	r5, #6
+}
+ 8011ce2:	4628      	mov	r0, r5
+ 8011ce4:	b007      	add	sp, #28
+ 8011ce6:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
+        return LORAMAC_CRYPTO_ERROR_PARSER;
+ 8011cea:	2510      	movs	r5, #16
+ 8011cec:	e7f9      	b.n	8011ce2 <LoRaMacCryptoUnsecureMessage+0xa6>
+        return LORAMAC_CRYPTO_FAIL_ADDRESS;
+ 8011cee:	2502      	movs	r5, #2
+ 8011cf0:	e7f7      	b.n	8011ce2 <LoRaMacCryptoUnsecureMessage+0xa6>
+ 8011cf2:	bf00      	nop
+ 8011cf4:	20002620 	.word	0x20002620
+
+08011cf8 <LoRaMacCryptoDeriveLifeTimeKey>:
+
+    return LORAMAC_CRYPTO_SUCCESS;
+}
+
+LoRaMacCryptoStatus_t LoRaMacCryptoDeriveLifeTimeKey( uint8_t versionMinor, KeyIdentifier_t keyID )
+{
+ 8011cf8:	b500      	push	{lr}
+ 8011cfa:	b085      	sub	sp, #20
+ 8011cfc:	460a      	mov	r2, r1
+    uint8_t compBase[16] = { 0 };
+ 8011cfe:	2300      	movs	r3, #0
+ 8011d00:	9300      	str	r3, [sp, #0]
+ 8011d02:	9301      	str	r3, [sp, #4]
+ 8011d04:	9302      	str	r3, [sp, #8]
+ 8011d06:	9303      	str	r3, [sp, #12]
+    KeyIdentifier_t rootKeyId = APP_KEY;
+    switch( keyID )
+ 8011d08:	290b      	cmp	r1, #11
+ 8011d0a:	d007      	beq.n	8011d1c <LoRaMacCryptoDeriveLifeTimeKey+0x24>
+ 8011d0c:	290c      	cmp	r1, #12
+ 8011d0e:	d013      	beq.n	8011d38 <LoRaMacCryptoDeriveLifeTimeKey+0x40>
+ 8011d10:	290a      	cmp	r1, #10
+ 8011d12:	d00c      	beq.n	8011d2e <LoRaMacCryptoDeriveLifeTimeKey+0x36>
+ 8011d14:	200b      	movs	r0, #11
+    {
+        return LORAMAC_CRYPTO_ERROR_SECURE_ELEMENT_FUNC;
+    }
+
+    return LORAMAC_CRYPTO_SUCCESS;
+}
+ 8011d16:	b005      	add	sp, #20
+ 8011d18:	f85d fb04 	ldr.w	pc, [sp], #4
+            if( versionMinor == 1 )
+ 8011d1c:	2801      	cmp	r0, #1
+ 8011d1e:	d001      	beq.n	8011d24 <LoRaMacCryptoDeriveLifeTimeKey+0x2c>
+    KeyIdentifier_t rootKeyId = APP_KEY;
+ 8011d20:	2100      	movs	r1, #0
+ 8011d22:	e00a      	b.n	8011d3a <LoRaMacCryptoDeriveLifeTimeKey+0x42>
+                compBase[0] = 0x20;
+ 8011d24:	2320      	movs	r3, #32
+ 8011d26:	f88d 3000 	strb.w	r3, [sp]
+    KeyIdentifier_t rootKeyId = APP_KEY;
+ 8011d2a:	2100      	movs	r1, #0
+ 8011d2c:	e005      	b.n	8011d3a <LoRaMacCryptoDeriveLifeTimeKey+0x42>
+            compBase[0] = 0x30;
+ 8011d2e:	2330      	movs	r3, #48	; 0x30
+ 8011d30:	f88d 3000 	strb.w	r3, [sp]
+    KeyIdentifier_t rootKeyId = APP_KEY;
+ 8011d34:	2100      	movs	r1, #0
+            break;
+ 8011d36:	e000      	b.n	8011d3a <LoRaMacCryptoDeriveLifeTimeKey+0x42>
+    switch( keyID )
+ 8011d38:	210b      	movs	r1, #11
+    if( SecureElementDeriveAndStoreKey( compBase, rootKeyId, keyID ) != SECURE_ELEMENT_SUCCESS )
+ 8011d3a:	4668      	mov	r0, sp
+ 8011d3c:	f002 fa78 	bl	8014230 <SecureElementDeriveAndStoreKey>
+ 8011d40:	2800      	cmp	r0, #0
+ 8011d42:	d0e8      	beq.n	8011d16 <LoRaMacCryptoDeriveLifeTimeKey+0x1e>
+        return LORAMAC_CRYPTO_ERROR_SECURE_ELEMENT_FUNC;
+ 8011d44:	200f      	movs	r0, #15
+ 8011d46:	e7e6      	b.n	8011d16 <LoRaMacCryptoDeriveLifeTimeKey+0x1e>
+
+08011d48 <LoRaMacCryptoSetKey>:
+{
+ 8011d48:	b510      	push	{r4, lr}
+ 8011d4a:	4604      	mov	r4, r0
+    if( SecureElementSetKey( keyID, key ) != SECURE_ELEMENT_SUCCESS )
+ 8011d4c:	f002 fa2e 	bl	80141ac <SecureElementSetKey>
+ 8011d50:	b998      	cbnz	r0, 8011d7a <LoRaMacCryptoSetKey+0x32>
+    if( keyID == APP_KEY )
+ 8011d52:	b104      	cbz	r4, 8011d56 <LoRaMacCryptoSetKey+0xe>
+}
+ 8011d54:	bd10      	pop	{r4, pc}
+        if( LoRaMacCryptoDeriveLifeTimeKey( CryptoNvm->LrWanVersion.Fields.Minor, MC_ROOT_KEY ) != LORAMAC_CRYPTO_SUCCESS )
+ 8011d56:	4b0c      	ldr	r3, [pc, #48]	; (8011d88 <LoRaMacCryptoSetKey+0x40>)
+ 8011d58:	681b      	ldr	r3, [r3, #0]
+ 8011d5a:	210b      	movs	r1, #11
+ 8011d5c:	7898      	ldrb	r0, [r3, #2]
+ 8011d5e:	f7ff ffcb 	bl	8011cf8 <LoRaMacCryptoDeriveLifeTimeKey>
+ 8011d62:	b960      	cbnz	r0, 8011d7e <LoRaMacCryptoSetKey+0x36>
+        if( LoRaMacCryptoDeriveLifeTimeKey( 0, MC_KE_KEY ) != LORAMAC_CRYPTO_SUCCESS )
+ 8011d64:	210c      	movs	r1, #12
+ 8011d66:	f7ff ffc7 	bl	8011cf8 <LoRaMacCryptoDeriveLifeTimeKey>
+ 8011d6a:	b950      	cbnz	r0, 8011d82 <LoRaMacCryptoSetKey+0x3a>
+        if( LoRaMacCryptoDeriveLifeTimeKey( 0, DATABLOCK_INT_KEY ) != LORAMAC_CRYPTO_SUCCESS )
+ 8011d6c:	210a      	movs	r1, #10
+ 8011d6e:	f7ff ffc3 	bl	8011cf8 <LoRaMacCryptoDeriveLifeTimeKey>
+ 8011d72:	2800      	cmp	r0, #0
+ 8011d74:	d0ee      	beq.n	8011d54 <LoRaMacCryptoSetKey+0xc>
+            return LORAMAC_CRYPTO_ERROR_SECURE_ELEMENT_FUNC;
+ 8011d76:	200f      	movs	r0, #15
+ 8011d78:	e7ec      	b.n	8011d54 <LoRaMacCryptoSetKey+0xc>
+        return LORAMAC_CRYPTO_ERROR_SECURE_ELEMENT_FUNC;
+ 8011d7a:	200f      	movs	r0, #15
+ 8011d7c:	e7ea      	b.n	8011d54 <LoRaMacCryptoSetKey+0xc>
+            return LORAMAC_CRYPTO_ERROR_SECURE_ELEMENT_FUNC;
+ 8011d7e:	200f      	movs	r0, #15
+ 8011d80:	e7e8      	b.n	8011d54 <LoRaMacCryptoSetKey+0xc>
+            return LORAMAC_CRYPTO_ERROR_SECURE_ELEMENT_FUNC;
+ 8011d82:	200f      	movs	r0, #15
+ 8011d84:	e7e6      	b.n	8011d54 <LoRaMacCryptoSetKey+0xc>
+ 8011d86:	bf00      	nop
+ 8011d88:	20002620 	.word	0x20002620
+
+08011d8c <LoRaMacCryptoHandleJoinAccept>:
+    if( ( macMsg == 0 ) || ( joinEUI == 0 ) )
+ 8011d8c:	2a00      	cmp	r2, #0
+ 8011d8e:	d06c      	beq.n	8011e6a <LoRaMacCryptoHandleJoinAccept+0xde>
+{
+ 8011d90:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8011d92:	b08f      	sub	sp, #60	; 0x3c
+ 8011d94:	4607      	mov	r7, r0
+ 8011d96:	460d      	mov	r5, r1
+ 8011d98:	4614      	mov	r4, r2
+    if( ( macMsg == 0 ) || ( joinEUI == 0 ) )
+ 8011d9a:	2900      	cmp	r1, #0
+ 8011d9c:	d067      	beq.n	8011e6e <LoRaMacCryptoHandleJoinAccept+0xe2>
+    uint8_t decJoinAccept[LORAMAC_JOIN_ACCEPT_FRAME_MAX_SIZE] = { 0 };
+ 8011d9e:	2600      	movs	r6, #0
+ 8011da0:	9605      	str	r6, [sp, #20]
+ 8011da2:	221d      	movs	r2, #29
+ 8011da4:	4631      	mov	r1, r6
+ 8011da6:	a806      	add	r0, sp, #24
+ 8011da8:	f005 fc8a 	bl	80176c0 <memset>
+    uint8_t versionMinor         = 0;
+ 8011dac:	f88d 6013 	strb.w	r6, [sp, #19]
+    uint16_t nonce               = CryptoNvm->DevNonce;
+ 8011db0:	4b33      	ldr	r3, [pc, #204]	; (8011e80 <LoRaMacCryptoHandleJoinAccept+0xf4>)
+ 8011db2:	681b      	ldr	r3, [r3, #0]
+ 8011db4:	889e      	ldrh	r6, [r3, #4]
+    if( SecureElementProcessJoinAccept( joinReqType, joinEUI, nonce, macMsg->Buffer,
+ 8011db6:	f10d 0313 	add.w	r3, sp, #19
+ 8011dba:	9302      	str	r3, [sp, #8]
+ 8011dbc:	ab05      	add	r3, sp, #20
+ 8011dbe:	9301      	str	r3, [sp, #4]
+ 8011dc0:	7923      	ldrb	r3, [r4, #4]
+ 8011dc2:	9300      	str	r3, [sp, #0]
+ 8011dc4:	6823      	ldr	r3, [r4, #0]
+ 8011dc6:	4632      	mov	r2, r6
+ 8011dc8:	4629      	mov	r1, r5
+ 8011dca:	4638      	mov	r0, r7
+ 8011dcc:	f002 fa50 	bl	8014270 <SecureElementProcessJoinAccept>
+ 8011dd0:	2800      	cmp	r0, #0
+ 8011dd2:	d14e      	bne.n	8011e72 <LoRaMacCryptoHandleJoinAccept+0xe6>
+    memcpy1( macMsg->Buffer, decJoinAccept, macMsg->BufSize );
+ 8011dd4:	7922      	ldrb	r2, [r4, #4]
+ 8011dd6:	a905      	add	r1, sp, #20
+ 8011dd8:	6820      	ldr	r0, [r4, #0]
+ 8011dda:	f002 fbde 	bl	801459a <memcpy1>
+    if( LoRaMacParserJoinAccept( macMsg ) != LORAMAC_PARSER_SUCCESS )
+ 8011dde:	4620      	mov	r0, r4
+ 8011de0:	f000 f850 	bl	8011e84 <LoRaMacParserJoinAccept>
+ 8011de4:	2800      	cmp	r0, #0
+ 8011de6:	d147      	bne.n	8011e78 <LoRaMacCryptoHandleJoinAccept+0xec>
+    currentJoinNonce = ( uint32_t )macMsg->JoinNonce[0];
+ 8011de8:	79a5      	ldrb	r5, [r4, #6]
+    currentJoinNonce |= ( ( uint32_t )macMsg->JoinNonce[1] << 8 );
+ 8011dea:	79e3      	ldrb	r3, [r4, #7]
+ 8011dec:	ea45 2503 	orr.w	r5, r5, r3, lsl #8
+    currentJoinNonce |= ( ( uint32_t )macMsg->JoinNonce[2] << 16 );
+ 8011df0:	7a23      	ldrb	r3, [r4, #8]
+ 8011df2:	ea45 4503 	orr.w	r5, r5, r3, lsl #16
+        isJoinNonceOk = IsJoinNonce10xOk( currentJoinNonce );
+ 8011df6:	4628      	mov	r0, r5
+ 8011df8:	f7ff fd32 	bl	8011860 <IsJoinNonce10xOk>
+    if( isJoinNonceOk == true )
+ 8011dfc:	2800      	cmp	r0, #0
+ 8011dfe:	d03d      	beq.n	8011e7c <LoRaMacCryptoHandleJoinAccept+0xf0>
+        CryptoNvm->JoinNonce = currentJoinNonce;
+ 8011e00:	4b1f      	ldr	r3, [pc, #124]	; (8011e80 <LoRaMacCryptoHandleJoinAccept+0xf4>)
+ 8011e02:	681b      	ldr	r3, [r3, #0]
+ 8011e04:	609d      	str	r5, [r3, #8]
+    retval = LoRaMacCryptoDeriveLifeTimeKey( versionMinor, MC_ROOT_KEY );
+ 8011e06:	210b      	movs	r1, #11
+ 8011e08:	f89d 0013 	ldrb.w	r0, [sp, #19]
+ 8011e0c:	f7ff ff74 	bl	8011cf8 <LoRaMacCryptoDeriveLifeTimeKey>
+    if( retval != LORAMAC_CRYPTO_SUCCESS )
+ 8011e10:	bb80      	cbnz	r0, 8011e74 <LoRaMacCryptoHandleJoinAccept+0xe8>
+    retval = LoRaMacCryptoDeriveLifeTimeKey( 0, MC_KE_KEY );
+ 8011e12:	210c      	movs	r1, #12
+ 8011e14:	2000      	movs	r0, #0
+ 8011e16:	f7ff ff6f 	bl	8011cf8 <LoRaMacCryptoDeriveLifeTimeKey>
+    if( retval != LORAMAC_CRYPTO_SUCCESS )
+ 8011e1a:	bb58      	cbnz	r0, 8011e74 <LoRaMacCryptoHandleJoinAccept+0xe8>
+    retval = LoRaMacCryptoDeriveLifeTimeKey( 0, DATABLOCK_INT_KEY );
+ 8011e1c:	210a      	movs	r1, #10
+ 8011e1e:	2000      	movs	r0, #0
+ 8011e20:	f7ff ff6a 	bl	8011cf8 <LoRaMacCryptoDeriveLifeTimeKey>
+    if( retval != LORAMAC_CRYPTO_SUCCESS )
+ 8011e24:	bb30      	cbnz	r0, 8011e74 <LoRaMacCryptoHandleJoinAccept+0xe8>
+        netID = ( uint32_t )macMsg->NetID[0];
+ 8011e26:	7a63      	ldrb	r3, [r4, #9]
+        netID |= ( ( uint32_t )macMsg->NetID[1] << 8 );
+ 8011e28:	7aa2      	ldrb	r2, [r4, #10]
+ 8011e2a:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
+        netID |= ( ( uint32_t )macMsg->NetID[2] << 16 );
+ 8011e2e:	7ae2      	ldrb	r2, [r4, #11]
+ 8011e30:	ea43 4402 	orr.w	r4, r3, r2, lsl #16
+        retval = DeriveSessionKey10x( APP_S_KEY, currentJoinNonce, netID, nonce );
+ 8011e34:	4633      	mov	r3, r6
+ 8011e36:	4622      	mov	r2, r4
+ 8011e38:	4629      	mov	r1, r5
+ 8011e3a:	2009      	movs	r0, #9
+ 8011e3c:	f7ff fd46 	bl	80118cc <DeriveSessionKey10x>
+        if( retval != LORAMAC_CRYPTO_SUCCESS )
+ 8011e40:	b9c0      	cbnz	r0, 8011e74 <LoRaMacCryptoHandleJoinAccept+0xe8>
+        retval = DeriveSessionKey10x( NWK_S_KEY, currentJoinNonce, netID, nonce );
+ 8011e42:	4633      	mov	r3, r6
+ 8011e44:	4622      	mov	r2, r4
+ 8011e46:	4629      	mov	r1, r5
+ 8011e48:	2008      	movs	r0, #8
+ 8011e4a:	f7ff fd3f 	bl	80118cc <DeriveSessionKey10x>
+        if( retval != LORAMAC_CRYPTO_SUCCESS )
+ 8011e4e:	b988      	cbnz	r0, 8011e74 <LoRaMacCryptoHandleJoinAccept+0xe8>
+    CryptoNvm->LrWanVersion.Fields.Minor = versionMinor;
+ 8011e50:	4b0b      	ldr	r3, [pc, #44]	; (8011e80 <LoRaMacCryptoHandleJoinAccept+0xf4>)
+ 8011e52:	681b      	ldr	r3, [r3, #0]
+ 8011e54:	f89d 2013 	ldrb.w	r2, [sp, #19]
+ 8011e58:	709a      	strb	r2, [r3, #2]
+    CryptoNvm->FCntList.FCntUp = 0;
+ 8011e5a:	2200      	movs	r2, #0
+ 8011e5c:	60da      	str	r2, [r3, #12]
+    CryptoNvm->FCntList.FCntDown = FCNT_DOWN_INITIAL_VALUE;
+ 8011e5e:	f04f 32ff 	mov.w	r2, #4294967295
+ 8011e62:	619a      	str	r2, [r3, #24]
+    CryptoNvm->FCntList.NFCntDown = FCNT_DOWN_INITIAL_VALUE;
+ 8011e64:	611a      	str	r2, [r3, #16]
+    CryptoNvm->FCntList.AFCntDown = FCNT_DOWN_INITIAL_VALUE;
+ 8011e66:	615a      	str	r2, [r3, #20]
+    return LORAMAC_CRYPTO_SUCCESS;
+ 8011e68:	e004      	b.n	8011e74 <LoRaMacCryptoHandleJoinAccept+0xe8>
+        return LORAMAC_CRYPTO_ERROR_NPE;
+ 8011e6a:	200a      	movs	r0, #10
+}
+ 8011e6c:	4770      	bx	lr
+        return LORAMAC_CRYPTO_ERROR_NPE;
+ 8011e6e:	200a      	movs	r0, #10
+ 8011e70:	e000      	b.n	8011e74 <LoRaMacCryptoHandleJoinAccept+0xe8>
+        return LORAMAC_CRYPTO_ERROR_SECURE_ELEMENT_FUNC;
+ 8011e72:	200f      	movs	r0, #15
+}
+ 8011e74:	b00f      	add	sp, #60	; 0x3c
+ 8011e76:	bdf0      	pop	{r4, r5, r6, r7, pc}
+        return LORAMAC_CRYPTO_ERROR_PARSER;
+ 8011e78:	2010      	movs	r0, #16
+ 8011e7a:	e7fb      	b.n	8011e74 <LoRaMacCryptoHandleJoinAccept+0xe8>
+        return LORAMAC_CRYPTO_FAIL_JOIN_NONCE;
+ 8011e7c:	2003      	movs	r0, #3
+ 8011e7e:	e7f9      	b.n	8011e74 <LoRaMacCryptoHandleJoinAccept+0xe8>
+ 8011e80:	20002620 	.word	0x20002620
+
+08011e84 <LoRaMacParserJoinAccept>:
+#include "LoRaMacParser.h"
+#include "utilities.h"
+
+LoRaMacParserStatus_t LoRaMacParserJoinAccept( LoRaMacMessageJoinAccept_t* macMsg )
+{
+    if( ( macMsg == 0 ) || ( macMsg->Buffer == 0 ) )
+ 8011e84:	2800      	cmp	r0, #0
+ 8011e86:	d049      	beq.n	8011f1c <LoRaMacParserJoinAccept+0x98>
+{
+ 8011e88:	b510      	push	{r4, lr}
+ 8011e8a:	4604      	mov	r4, r0
+    if( ( macMsg == 0 ) || ( macMsg->Buffer == 0 ) )
+ 8011e8c:	6801      	ldr	r1, [r0, #0]
+ 8011e8e:	2900      	cmp	r1, #0
+ 8011e90:	d046      	beq.n	8011f20 <LoRaMacParserJoinAccept+0x9c>
+        return LORAMAC_PARSER_ERROR_NPE;
+    }
+
+    uint16_t bufItr = 0;
+
+    macMsg->MHDR.Value = macMsg->Buffer[bufItr++];
+ 8011e92:	f811 3b01 	ldrb.w	r3, [r1], #1
+ 8011e96:	7143      	strb	r3, [r0, #5]
+
+    memcpy1( macMsg->JoinNonce, &macMsg->Buffer[bufItr], 3 );
+ 8011e98:	2203      	movs	r2, #3
+ 8011e9a:	3006      	adds	r0, #6
+ 8011e9c:	f002 fb7d 	bl	801459a <memcpy1>
+    bufItr = bufItr + 3;
+
+    memcpy1( macMsg->NetID, &macMsg->Buffer[bufItr], 3 );
+ 8011ea0:	4620      	mov	r0, r4
+ 8011ea2:	f850 1b09 	ldr.w	r1, [r0], #9
+ 8011ea6:	2203      	movs	r2, #3
+ 8011ea8:	3104      	adds	r1, #4
+ 8011eaa:	f002 fb76 	bl	801459a <memcpy1>
+    bufItr = bufItr + 3;
+
+    macMsg->DevAddr = ( uint32_t ) macMsg->Buffer[bufItr++];
+ 8011eae:	6821      	ldr	r1, [r4, #0]
+ 8011eb0:	79cb      	ldrb	r3, [r1, #7]
+ 8011eb2:	60e3      	str	r3, [r4, #12]
+    macMsg->DevAddr |= ( ( uint32_t ) macMsg->Buffer[bufItr++] << 8 );
+ 8011eb4:	7a0a      	ldrb	r2, [r1, #8]
+ 8011eb6:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
+ 8011eba:	60e3      	str	r3, [r4, #12]
+    macMsg->DevAddr |= ( ( uint32_t ) macMsg->Buffer[bufItr++] << 16 );
+ 8011ebc:	7a4a      	ldrb	r2, [r1, #9]
+ 8011ebe:	ea43 4302 	orr.w	r3, r3, r2, lsl #16
+ 8011ec2:	60e3      	str	r3, [r4, #12]
+    macMsg->DevAddr |= ( ( uint32_t ) macMsg->Buffer[bufItr++] << 24 );
+ 8011ec4:	7a8a      	ldrb	r2, [r1, #10]
+ 8011ec6:	ea43 6302 	orr.w	r3, r3, r2, lsl #24
+ 8011eca:	60e3      	str	r3, [r4, #12]
+
+    macMsg->DLSettings.Value = macMsg->Buffer[bufItr++];
+ 8011ecc:	7acb      	ldrb	r3, [r1, #11]
+ 8011ece:	7423      	strb	r3, [r4, #16]
+
+    macMsg->RxDelay = macMsg->Buffer[bufItr++];
+ 8011ed0:	7b0b      	ldrb	r3, [r1, #12]
+ 8011ed2:	7463      	strb	r3, [r4, #17]
+
+    if( ( macMsg->BufSize - LORAMAC_MIC_FIELD_SIZE - bufItr ) == LORAMAC_CF_LIST_FIELD_SIZE )
+ 8011ed4:	7923      	ldrb	r3, [r4, #4]
+ 8011ed6:	2b21      	cmp	r3, #33	; 0x21
+ 8011ed8:	d018      	beq.n	8011f0c <LoRaMacParserJoinAccept+0x88>
+    {
+        memcpy1( macMsg->CFList, &macMsg->Buffer[bufItr], LORAMAC_CF_LIST_FIELD_SIZE );
+        bufItr = bufItr + LORAMAC_CF_LIST_FIELD_SIZE;
+    }
+    else if( ( macMsg->BufSize - LORAMAC_MIC_FIELD_SIZE - bufItr ) > 0 )
+ 8011eda:	2b11      	cmp	r3, #17
+ 8011edc:	dc22      	bgt.n	8011f24 <LoRaMacParserJoinAccept+0xa0>
+    macMsg->RxDelay = macMsg->Buffer[bufItr++];
+ 8011ede:	220d      	movs	r2, #13
+    {
+        return LORAMAC_PARSER_FAIL;
+    }
+
+    macMsg->MIC = ( uint32_t ) macMsg->Buffer[bufItr++];
+ 8011ee0:	6821      	ldr	r1, [r4, #0]
+ 8011ee2:	f102 0c01 	add.w	ip, r2, #1
+ 8011ee6:	5c8b      	ldrb	r3, [r1, r2]
+ 8011ee8:	6263      	str	r3, [r4, #36]	; 0x24
+    macMsg->MIC |= ( ( uint32_t ) macMsg->Buffer[bufItr++] << 8 );
+ 8011eea:	1c90      	adds	r0, r2, #2
+ 8011eec:	f811 c00c 	ldrb.w	ip, [r1, ip]
+ 8011ef0:	ea43 230c 	orr.w	r3, r3, ip, lsl #8
+ 8011ef4:	6263      	str	r3, [r4, #36]	; 0x24
+    macMsg->MIC |= ( ( uint32_t ) macMsg->Buffer[bufItr++] << 16 );
+ 8011ef6:	3203      	adds	r2, #3
+ 8011ef8:	5c08      	ldrb	r0, [r1, r0]
+ 8011efa:	ea43 4300 	orr.w	r3, r3, r0, lsl #16
+ 8011efe:	6263      	str	r3, [r4, #36]	; 0x24
+    macMsg->MIC |= ( ( uint32_t ) macMsg->Buffer[bufItr++] << 24 );
+ 8011f00:	5c8a      	ldrb	r2, [r1, r2]
+ 8011f02:	ea43 6302 	orr.w	r3, r3, r2, lsl #24
+ 8011f06:	6263      	str	r3, [r4, #36]	; 0x24
+
+    return LORAMAC_PARSER_SUCCESS;
+ 8011f08:	2000      	movs	r0, #0
+}
+ 8011f0a:	bd10      	pop	{r4, pc}
+        memcpy1( macMsg->CFList, &macMsg->Buffer[bufItr], LORAMAC_CF_LIST_FIELD_SIZE );
+ 8011f0c:	2210      	movs	r2, #16
+ 8011f0e:	310d      	adds	r1, #13
+ 8011f10:	f104 0012 	add.w	r0, r4, #18
+ 8011f14:	f002 fb41 	bl	801459a <memcpy1>
+        bufItr = bufItr + LORAMAC_CF_LIST_FIELD_SIZE;
+ 8011f18:	221d      	movs	r2, #29
+ 8011f1a:	e7e1      	b.n	8011ee0 <LoRaMacParserJoinAccept+0x5c>
+        return LORAMAC_PARSER_ERROR_NPE;
+ 8011f1c:	2002      	movs	r0, #2
+}
+ 8011f1e:	4770      	bx	lr
+        return LORAMAC_PARSER_ERROR_NPE;
+ 8011f20:	2002      	movs	r0, #2
+ 8011f22:	e7f2      	b.n	8011f0a <LoRaMacParserJoinAccept+0x86>
+        return LORAMAC_PARSER_FAIL;
+ 8011f24:	2001      	movs	r0, #1
+ 8011f26:	e7f0      	b.n	8011f0a <LoRaMacParserJoinAccept+0x86>
+
+08011f28 <LoRaMacParserData>:
+
+LoRaMacParserStatus_t LoRaMacParserData( LoRaMacMessageData_t* macMsg )
+{
+    if( ( macMsg == 0 ) || ( macMsg->Buffer == 0 ) )
+ 8011f28:	2800      	cmp	r0, #0
+ 8011f2a:	d058      	beq.n	8011fde <LoRaMacParserData+0xb6>
+{
+ 8011f2c:	b510      	push	{r4, lr}
+ 8011f2e:	4604      	mov	r4, r0
+    if( ( macMsg == 0 ) || ( macMsg->Buffer == 0 ) )
+ 8011f30:	6801      	ldr	r1, [r0, #0]
+ 8011f32:	2900      	cmp	r1, #0
+ 8011f34:	d055      	beq.n	8011fe2 <LoRaMacParserData+0xba>
+        return LORAMAC_PARSER_ERROR_NPE;
+    }
+
+    uint16_t bufItr = 0;
+
+    macMsg->MHDR.Value = macMsg->Buffer[bufItr++];
+ 8011f36:	780b      	ldrb	r3, [r1, #0]
+ 8011f38:	7143      	strb	r3, [r0, #5]
+
+    macMsg->FHDR.DevAddr = macMsg->Buffer[bufItr++];
+ 8011f3a:	784b      	ldrb	r3, [r1, #1]
+ 8011f3c:	6083      	str	r3, [r0, #8]
+    macMsg->FHDR.DevAddr |= ( ( uint32_t ) macMsg->Buffer[bufItr++] << 8 );
+ 8011f3e:	788a      	ldrb	r2, [r1, #2]
+ 8011f40:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
+ 8011f44:	6083      	str	r3, [r0, #8]
+    macMsg->FHDR.DevAddr |= ( ( uint32_t ) macMsg->Buffer[bufItr++] << 16 );
+ 8011f46:	78ca      	ldrb	r2, [r1, #3]
+ 8011f48:	ea43 4302 	orr.w	r3, r3, r2, lsl #16
+ 8011f4c:	6083      	str	r3, [r0, #8]
+    macMsg->FHDR.DevAddr |= ( ( uint32_t ) macMsg->Buffer[bufItr++] << 24 );
+ 8011f4e:	790a      	ldrb	r2, [r1, #4]
+ 8011f50:	ea43 6302 	orr.w	r3, r3, r2, lsl #24
+ 8011f54:	6083      	str	r3, [r0, #8]
+
+    macMsg->FHDR.FCtrl.Value = macMsg->Buffer[bufItr++];
+ 8011f56:	794b      	ldrb	r3, [r1, #5]
+ 8011f58:	7303      	strb	r3, [r0, #12]
+
+    macMsg->FHDR.FCnt = macMsg->Buffer[bufItr++];
+ 8011f5a:	798b      	ldrb	r3, [r1, #6]
+ 8011f5c:	81c3      	strh	r3, [r0, #14]
+    macMsg->FHDR.FCnt |= macMsg->Buffer[bufItr++] << 8;
+ 8011f5e:	79ca      	ldrb	r2, [r1, #7]
+ 8011f60:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
+ 8011f64:	81c3      	strh	r3, [r0, #14]
+
+    memcpy1( macMsg->FHDR.FOpts, &macMsg->Buffer[bufItr], macMsg->FHDR.FCtrl.Bits.FOptsLen );
+ 8011f66:	7b02      	ldrb	r2, [r0, #12]
+ 8011f68:	f002 020f 	and.w	r2, r2, #15
+ 8011f6c:	3108      	adds	r1, #8
+ 8011f6e:	3010      	adds	r0, #16
+ 8011f70:	f002 fb13 	bl	801459a <memcpy1>
+    bufItr = bufItr + macMsg->FHDR.FCtrl.Bits.FOptsLen;
+ 8011f74:	7b23      	ldrb	r3, [r4, #12]
+ 8011f76:	f003 030f 	and.w	r3, r3, #15
+ 8011f7a:	f103 0008 	add.w	r0, r3, #8
+
+    // Initialize anyway with zero.
+    macMsg->FPort = 0;
+ 8011f7e:	2200      	movs	r2, #0
+ 8011f80:	f884 2020 	strb.w	r2, [r4, #32]
+    macMsg->FRMPayloadSize = 0;
+ 8011f84:	f884 2028 	strb.w	r2, [r4, #40]	; 0x28
+
+    if( ( macMsg->BufSize - bufItr - LORAMAC_MIC_FIELD_SIZE ) > 0 )
+ 8011f88:	7922      	ldrb	r2, [r4, #4]
+ 8011f8a:	1a11      	subs	r1, r2, r0
+ 8011f8c:	2904      	cmp	r1, #4
+ 8011f8e:	dc16      	bgt.n	8011fbe <LoRaMacParserData+0x96>
+        macMsg->FRMPayloadSize = ( macMsg->BufSize - bufItr - LORAMAC_MIC_FIELD_SIZE );
+        memcpy1( macMsg->FRMPayload, &macMsg->Buffer[bufItr], macMsg->FRMPayloadSize );
+        bufItr = bufItr + macMsg->FRMPayloadSize;
+    }
+
+    macMsg->MIC = ( uint32_t ) macMsg->Buffer[( macMsg->BufSize - LORAMAC_MIC_FIELD_SIZE )];
+ 8011f90:	6822      	ldr	r2, [r4, #0]
+ 8011f92:	7923      	ldrb	r3, [r4, #4]
+ 8011f94:	441a      	add	r2, r3
+ 8011f96:	f812 3c04 	ldrb.w	r3, [r2, #-4]
+ 8011f9a:	62e3      	str	r3, [r4, #44]	; 0x2c
+    macMsg->MIC |= ( ( uint32_t ) macMsg->Buffer[( macMsg->BufSize - LORAMAC_MIC_FIELD_SIZE ) + 1] << 8 );
+ 8011f9c:	f812 1c03 	ldrb.w	r1, [r2, #-3]
+ 8011fa0:	ea43 2301 	orr.w	r3, r3, r1, lsl #8
+ 8011fa4:	62e3      	str	r3, [r4, #44]	; 0x2c
+    macMsg->MIC |= ( ( uint32_t ) macMsg->Buffer[( macMsg->BufSize - LORAMAC_MIC_FIELD_SIZE ) + 2] << 16 );
+ 8011fa6:	f812 1c02 	ldrb.w	r1, [r2, #-2]
+ 8011faa:	ea43 4301 	orr.w	r3, r3, r1, lsl #16
+ 8011fae:	62e3      	str	r3, [r4, #44]	; 0x2c
+    macMsg->MIC |= ( ( uint32_t ) macMsg->Buffer[( macMsg->BufSize - LORAMAC_MIC_FIELD_SIZE ) + 3] << 24 );
+ 8011fb0:	f812 2c01 	ldrb.w	r2, [r2, #-1]
+ 8011fb4:	ea43 6302 	orr.w	r3, r3, r2, lsl #24
+ 8011fb8:	62e3      	str	r3, [r4, #44]	; 0x2c
+
+    return LORAMAC_PARSER_SUCCESS;
+ 8011fba:	2000      	movs	r0, #0
+}
+ 8011fbc:	bd10      	pop	{r4, pc}
+        macMsg->FPort = macMsg->Buffer[bufItr++];
+ 8011fbe:	6821      	ldr	r1, [r4, #0]
+ 8011fc0:	3309      	adds	r3, #9
+ 8011fc2:	5c08      	ldrb	r0, [r1, r0]
+ 8011fc4:	f884 0020 	strb.w	r0, [r4, #32]
+        macMsg->FRMPayloadSize = ( macMsg->BufSize - bufItr - LORAMAC_MIC_FIELD_SIZE );
+ 8011fc8:	1ad2      	subs	r2, r2, r3
+ 8011fca:	b2d2      	uxtb	r2, r2
+ 8011fcc:	3a04      	subs	r2, #4
+ 8011fce:	b2d2      	uxtb	r2, r2
+ 8011fd0:	f884 2028 	strb.w	r2, [r4, #40]	; 0x28
+        memcpy1( macMsg->FRMPayload, &macMsg->Buffer[bufItr], macMsg->FRMPayloadSize );
+ 8011fd4:	4419      	add	r1, r3
+ 8011fd6:	6a60      	ldr	r0, [r4, #36]	; 0x24
+ 8011fd8:	f002 fadf 	bl	801459a <memcpy1>
+        bufItr = bufItr + macMsg->FRMPayloadSize;
+ 8011fdc:	e7d8      	b.n	8011f90 <LoRaMacParserData+0x68>
+        return LORAMAC_PARSER_ERROR_NPE;
+ 8011fde:	2002      	movs	r0, #2
+}
+ 8011fe0:	4770      	bx	lr
+        return LORAMAC_PARSER_ERROR_NPE;
+ 8011fe2:	2002      	movs	r0, #2
+ 8011fe4:	e7ea      	b.n	8011fbc <LoRaMacParserData+0x94>
+
+08011fe6 <LoRaMacSerializerJoinRequest>:
+#include "LoRaMacSerializer.h"
+#include "utilities.h"
+
+LoRaMacSerializerStatus_t LoRaMacSerializerJoinRequest( LoRaMacMessageJoinRequest_t* macMsg )
+{
+    if( ( macMsg == 0 ) || ( macMsg->Buffer == 0 ) )
+ 8011fe6:	b370      	cbz	r0, 8012046 <LoRaMacSerializerJoinRequest+0x60>
+{
+ 8011fe8:	b510      	push	{r4, lr}
+ 8011fea:	4604      	mov	r4, r0
+    if( ( macMsg == 0 ) || ( macMsg->Buffer == 0 ) )
+ 8011fec:	6803      	ldr	r3, [r0, #0]
+ 8011fee:	b363      	cbz	r3, 801204a <LoRaMacSerializerJoinRequest+0x64>
+    }
+
+    uint16_t bufItr = 0;
+
+    // Check macMsg->BufSize
+    if( macMsg->BufSize < LORAMAC_JOIN_REQ_MSG_SIZE )
+ 8011ff0:	7902      	ldrb	r2, [r0, #4]
+ 8011ff2:	2a16      	cmp	r2, #22
+ 8011ff4:	d92b      	bls.n	801204e <LoRaMacSerializerJoinRequest+0x68>
+    {
+        return LORAMAC_SERIALIZER_ERROR_BUF_SIZE;
+    }
+
+    macMsg->Buffer[bufItr++] = macMsg->MHDR.Value;
+ 8011ff6:	7942      	ldrb	r2, [r0, #5]
+ 8011ff8:	701a      	strb	r2, [r3, #0]
+
+    memcpyr( &macMsg->Buffer[bufItr], macMsg->JoinEUI, LORAMAC_JOIN_EUI_FIELD_SIZE );
+ 8011ffa:	4601      	mov	r1, r0
+ 8011ffc:	f851 0b06 	ldr.w	r0, [r1], #6
+ 8012000:	2208      	movs	r2, #8
+ 8012002:	3001      	adds	r0, #1
+ 8012004:	f002 fad4 	bl	80145b0 <memcpyr>
+    bufItr += LORAMAC_JOIN_EUI_FIELD_SIZE;
+
+    memcpyr( &macMsg->Buffer[bufItr], macMsg->DevEUI, LORAMAC_DEV_EUI_FIELD_SIZE );
+ 8012008:	4621      	mov	r1, r4
+ 801200a:	f851 0b0e 	ldr.w	r0, [r1], #14
+ 801200e:	2208      	movs	r2, #8
+ 8012010:	3009      	adds	r0, #9
+ 8012012:	f002 facd 	bl	80145b0 <memcpyr>
+    bufItr += LORAMAC_DEV_EUI_FIELD_SIZE;
+
+    macMsg->Buffer[bufItr++] = macMsg->DevNonce & 0xFF;
+ 8012016:	8ae2      	ldrh	r2, [r4, #22]
+ 8012018:	6823      	ldr	r3, [r4, #0]
+ 801201a:	745a      	strb	r2, [r3, #17]
+    macMsg->Buffer[bufItr++] = ( macMsg->DevNonce >> 8 ) & 0xFF;
+ 801201c:	8ae3      	ldrh	r3, [r4, #22]
+ 801201e:	6822      	ldr	r2, [r4, #0]
+ 8012020:	0a1b      	lsrs	r3, r3, #8
+ 8012022:	7493      	strb	r3, [r2, #18]
+
+    macMsg->Buffer[bufItr++] = macMsg->MIC & 0xFF;
+ 8012024:	69a2      	ldr	r2, [r4, #24]
+ 8012026:	6823      	ldr	r3, [r4, #0]
+ 8012028:	74da      	strb	r2, [r3, #19]
+    macMsg->Buffer[bufItr++] = ( macMsg->MIC >> 8 ) & 0xFF;
+ 801202a:	69a3      	ldr	r3, [r4, #24]
+ 801202c:	0a1b      	lsrs	r3, r3, #8
+ 801202e:	6822      	ldr	r2, [r4, #0]
+ 8012030:	7513      	strb	r3, [r2, #20]
+    macMsg->Buffer[bufItr++] = ( macMsg->MIC >> 16 ) & 0xFF;
+ 8012032:	8b62      	ldrh	r2, [r4, #26]
+ 8012034:	6823      	ldr	r3, [r4, #0]
+ 8012036:	755a      	strb	r2, [r3, #21]
+    macMsg->Buffer[bufItr++] = ( macMsg->MIC >> 24 ) & 0xFF;
+ 8012038:	7ee2      	ldrb	r2, [r4, #27]
+ 801203a:	6823      	ldr	r3, [r4, #0]
+ 801203c:	759a      	strb	r2, [r3, #22]
+
+    macMsg->BufSize = bufItr;
+ 801203e:	2317      	movs	r3, #23
+ 8012040:	7123      	strb	r3, [r4, #4]
+
+    return LORAMAC_SERIALIZER_SUCCESS;
+ 8012042:	2000      	movs	r0, #0
+}
+ 8012044:	bd10      	pop	{r4, pc}
+        return LORAMAC_SERIALIZER_ERROR_NPE;
+ 8012046:	2001      	movs	r0, #1
+}
+ 8012048:	4770      	bx	lr
+        return LORAMAC_SERIALIZER_ERROR_NPE;
+ 801204a:	2001      	movs	r0, #1
+ 801204c:	e7fa      	b.n	8012044 <LoRaMacSerializerJoinRequest+0x5e>
+        return LORAMAC_SERIALIZER_ERROR_BUF_SIZE;
+ 801204e:	2002      	movs	r0, #2
+ 8012050:	e7f8      	b.n	8012044 <LoRaMacSerializerJoinRequest+0x5e>
+
+08012052 <LoRaMacSerializerData>:
+    return LORAMAC_SERIALIZER_SUCCESS;
+}
+
+LoRaMacSerializerStatus_t LoRaMacSerializerData( LoRaMacMessageData_t* macMsg )
+{
+    if( ( macMsg == 0 ) || ( macMsg->Buffer == 0 ) )
+ 8012052:	2800      	cmp	r0, #0
+ 8012054:	d066      	beq.n	8012124 <LoRaMacSerializerData+0xd2>
+{
+ 8012056:	b538      	push	{r3, r4, r5, lr}
+ 8012058:	4604      	mov	r4, r0
+    if( ( macMsg == 0 ) || ( macMsg->Buffer == 0 ) )
+ 801205a:	6801      	ldr	r1, [r0, #0]
+ 801205c:	2900      	cmp	r1, #0
+ 801205e:	d063      	beq.n	8012128 <LoRaMacSerializerData+0xd6>
+    uint16_t computedBufSize =   LORAMAC_MHDR_FIELD_SIZE
+                               + LORAMAC_FHDR_DEV_ADDR_FIELD_SIZE
+                               + LORAMAC_FHDR_F_CTRL_FIELD_SIZE
+                               + LORAMAC_FHDR_F_CNT_FIELD_SIZE;
+
+    computedBufSize += macMsg->FHDR.FCtrl.Bits.FOptsLen;
+ 8012060:	7b02      	ldrb	r2, [r0, #12]
+ 8012062:	f002 020f 	and.w	r2, r2, #15
+ 8012066:	f102 0008 	add.w	r0, r2, #8
+
+    if( macMsg->FRMPayloadSize > 0 )
+ 801206a:	f894 3028 	ldrb.w	r3, [r4, #40]	; 0x28
+ 801206e:	b10b      	cbz	r3, 8012074 <LoRaMacSerializerData+0x22>
+    {
+        computedBufSize += LORAMAC_F_PORT_FIELD_SIZE;
+ 8012070:	f102 0009 	add.w	r0, r2, #9
+    }
+
+    computedBufSize += macMsg->FRMPayloadSize;
+ 8012074:	4403      	add	r3, r0
+    computedBufSize += LORAMAC_MIC_FIELD_SIZE;
+ 8012076:	3304      	adds	r3, #4
+ 8012078:	b29b      	uxth	r3, r3
+
+    if( macMsg->BufSize < computedBufSize )
+ 801207a:	7922      	ldrb	r2, [r4, #4]
+ 801207c:	429a      	cmp	r2, r3
+ 801207e:	d355      	bcc.n	801212c <LoRaMacSerializerData+0xda>
+    {
+        return LORAMAC_SERIALIZER_ERROR_BUF_SIZE;
+    }
+
+    macMsg->Buffer[bufItr++] = macMsg->MHDR.Value;
+ 8012080:	7963      	ldrb	r3, [r4, #5]
+ 8012082:	700b      	strb	r3, [r1, #0]
+
+    macMsg->Buffer[bufItr++] = ( macMsg->FHDR.DevAddr ) & 0xFF;
+ 8012084:	68a2      	ldr	r2, [r4, #8]
+ 8012086:	6823      	ldr	r3, [r4, #0]
+ 8012088:	705a      	strb	r2, [r3, #1]
+    macMsg->Buffer[bufItr++] = ( macMsg->FHDR.DevAddr >> 8 ) & 0xFF;
+ 801208a:	68a3      	ldr	r3, [r4, #8]
+ 801208c:	0a1b      	lsrs	r3, r3, #8
+ 801208e:	6822      	ldr	r2, [r4, #0]
+ 8012090:	7093      	strb	r3, [r2, #2]
+    macMsg->Buffer[bufItr++] = ( macMsg->FHDR.DevAddr >> 16 ) & 0xFF;
+ 8012092:	8962      	ldrh	r2, [r4, #10]
+ 8012094:	6823      	ldr	r3, [r4, #0]
+ 8012096:	70da      	strb	r2, [r3, #3]
+    macMsg->Buffer[bufItr++] = ( macMsg->FHDR.DevAddr >> 24 ) & 0xFF;
+ 8012098:	7ae2      	ldrb	r2, [r4, #11]
+ 801209a:	6823      	ldr	r3, [r4, #0]
+ 801209c:	711a      	strb	r2, [r3, #4]
+
+    macMsg->Buffer[bufItr++] = macMsg->FHDR.FCtrl.Value;
+ 801209e:	6823      	ldr	r3, [r4, #0]
+ 80120a0:	7b22      	ldrb	r2, [r4, #12]
+ 80120a2:	715a      	strb	r2, [r3, #5]
+
+    macMsg->Buffer[bufItr++] = macMsg->FHDR.FCnt & 0xFF;
+ 80120a4:	89e2      	ldrh	r2, [r4, #14]
+ 80120a6:	6823      	ldr	r3, [r4, #0]
+ 80120a8:	719a      	strb	r2, [r3, #6]
+    macMsg->Buffer[bufItr++] = ( macMsg->FHDR.FCnt >> 8 ) & 0xFF;
+ 80120aa:	89e3      	ldrh	r3, [r4, #14]
+ 80120ac:	6822      	ldr	r2, [r4, #0]
+ 80120ae:	0a1b      	lsrs	r3, r3, #8
+ 80120b0:	71d3      	strb	r3, [r2, #7]
+
+    memcpy1( &macMsg->Buffer[bufItr], macMsg->FHDR.FOpts, macMsg->FHDR.FCtrl.Bits.FOptsLen );
+ 80120b2:	4621      	mov	r1, r4
+ 80120b4:	f851 0b10 	ldr.w	r0, [r1], #16
+ 80120b8:	7b22      	ldrb	r2, [r4, #12]
+ 80120ba:	f002 020f 	and.w	r2, r2, #15
+ 80120be:	3008      	adds	r0, #8
+ 80120c0:	f002 fa6b 	bl	801459a <memcpy1>
+    bufItr = bufItr + macMsg->FHDR.FCtrl.Bits.FOptsLen;
+ 80120c4:	7b23      	ldrb	r3, [r4, #12]
+ 80120c6:	f003 030f 	and.w	r3, r3, #15
+ 80120ca:	f103 0508 	add.w	r5, r3, #8
+
+    if( macMsg->FRMPayloadSize > 0 )
+ 80120ce:	f894 2028 	ldrb.w	r2, [r4, #40]	; 0x28
+ 80120d2:	b12a      	cbz	r2, 80120e0 <LoRaMacSerializerData+0x8e>
+    {
+        macMsg->Buffer[bufItr++] = macMsg->FPort;
+ 80120d4:	6822      	ldr	r2, [r4, #0]
+ 80120d6:	f894 1020 	ldrb.w	r1, [r4, #32]
+ 80120da:	5551      	strb	r1, [r2, r5]
+ 80120dc:	f103 0509 	add.w	r5, r3, #9
+    }
+
+    memcpy1( &macMsg->Buffer[bufItr], macMsg->FRMPayload, macMsg->FRMPayloadSize );
+ 80120e0:	6820      	ldr	r0, [r4, #0]
+ 80120e2:	f894 2028 	ldrb.w	r2, [r4, #40]	; 0x28
+ 80120e6:	6a61      	ldr	r1, [r4, #36]	; 0x24
+ 80120e8:	4428      	add	r0, r5
+ 80120ea:	f002 fa56 	bl	801459a <memcpy1>
+    bufItr = bufItr + macMsg->FRMPayloadSize;
+ 80120ee:	f894 3028 	ldrb.w	r3, [r4, #40]	; 0x28
+ 80120f2:	442b      	add	r3, r5
+
+    macMsg->Buffer[bufItr++] = macMsg->MIC & 0xFF;
+ 80120f4:	6ae0      	ldr	r0, [r4, #44]	; 0x2c
+ 80120f6:	6821      	ldr	r1, [r4, #0]
+ 80120f8:	1c5a      	adds	r2, r3, #1
+ 80120fa:	b292      	uxth	r2, r2
+ 80120fc:	54c8      	strb	r0, [r1, r3]
+    macMsg->Buffer[bufItr++] = ( macMsg->MIC >> 8 ) & 0xFF;
+ 80120fe:	6ae1      	ldr	r1, [r4, #44]	; 0x2c
+ 8012100:	0a08      	lsrs	r0, r1, #8
+ 8012102:	6825      	ldr	r5, [r4, #0]
+ 8012104:	1c99      	adds	r1, r3, #2
+ 8012106:	b289      	uxth	r1, r1
+ 8012108:	54a8      	strb	r0, [r5, r2]
+    macMsg->Buffer[bufItr++] = ( macMsg->MIC >> 16 ) & 0xFF;
+ 801210a:	8de5      	ldrh	r5, [r4, #46]	; 0x2e
+ 801210c:	6820      	ldr	r0, [r4, #0]
+ 801210e:	1cda      	adds	r2, r3, #3
+ 8012110:	b292      	uxth	r2, r2
+ 8012112:	5445      	strb	r5, [r0, r1]
+    macMsg->Buffer[bufItr++] = ( macMsg->MIC >> 24 ) & 0xFF;
+ 8012114:	f894 002f 	ldrb.w	r0, [r4, #47]	; 0x2f
+ 8012118:	6821      	ldr	r1, [r4, #0]
+ 801211a:	3304      	adds	r3, #4
+ 801211c:	5488      	strb	r0, [r1, r2]
+
+    macMsg->BufSize = bufItr;
+ 801211e:	7123      	strb	r3, [r4, #4]
+
+    return LORAMAC_SERIALIZER_SUCCESS;
+ 8012120:	2000      	movs	r0, #0
+}
+ 8012122:	bd38      	pop	{r3, r4, r5, pc}
+        return LORAMAC_SERIALIZER_ERROR_NPE;
+ 8012124:	2001      	movs	r0, #1
+}
+ 8012126:	4770      	bx	lr
+        return LORAMAC_SERIALIZER_ERROR_NPE;
+ 8012128:	2001      	movs	r0, #1
+ 801212a:	e7fa      	b.n	8012122 <LoRaMacSerializerData+0xd0>
+        return LORAMAC_SERIALIZER_ERROR_BUF_SIZE;
+ 801212c:	2002      	movs	r0, #2
+ 801212e:	e7f8      	b.n	8012122 <LoRaMacSerializerData+0xd0>
+
+08012130 <NvmDataMgmtEvent>:
+#endif /* CONTEXT_MANAGEMENT_ENABLED == 1 */
+
+void NvmDataMgmtEvent( uint16_t notifyFlags )
+{
+#if ( CONTEXT_MANAGEMENT_ENABLED == 1 )
+    NvmNotifyFlags |= notifyFlags;
+ 8012130:	4b02      	ldr	r3, [pc, #8]	; (801213c <NvmDataMgmtEvent+0xc>)
+ 8012132:	881a      	ldrh	r2, [r3, #0]
+ 8012134:	4310      	orrs	r0, r2
+ 8012136:	8018      	strh	r0, [r3, #0]
+#endif /* CONTEXT_MANAGEMENT_ENABLED == 1 */
+}
+ 8012138:	4770      	bx	lr
+ 801213a:	bf00      	nop
+ 801213c:	20002624 	.word	0x20002624
+
+08012140 <NvmDataMgmtStoreBegin>:
+
+int32_t NvmDataMgmtStoreBegin( void )
+{
+ 8012140:	b508      	push	{r3, lr}
+#if ( CONTEXT_MANAGEMENT_ENABLED == 1 )
+    /* Input checks */
+    if( NvmNotifyFlags == LORAMAC_NVM_NOTIFY_FLAG_NONE )
+ 8012142:	4b06      	ldr	r3, [pc, #24]	; (801215c <NvmDataMgmtStoreBegin+0x1c>)
+ 8012144:	881b      	ldrh	r3, [r3, #0]
+ 8012146:	b11b      	cbz	r3, 8012150 <NvmDataMgmtStoreBegin+0x10>
+    {
+        /* There was no update. */
+        return NVM_DATA_NO_UPDATED_DATA;
+    }
+    if( LoRaMacStop( ) != LORAMAC_STATUS_OK )
+ 8012148:	f7fe f8a6 	bl	8010298 <LoRaMacStop>
+ 801214c:	b918      	cbnz	r0, 8012156 <NvmDataMgmtStoreBegin+0x16>
+    }
+    return NVM_DATA_OK;
+#else
+    return NVM_DATA_DISABLED;
+#endif /* CONTEXT_MANAGEMENT_ENABLED */
+}
+ 801214e:	bd08      	pop	{r3, pc}
+        return NVM_DATA_NO_UPDATED_DATA;
+ 8012150:	f06f 0001 	mvn.w	r0, #1
+ 8012154:	e7fb      	b.n	801214e <NvmDataMgmtStoreBegin+0xe>
+        return NVM_DATA_NOT_AVAILABLE;
+ 8012156:	f06f 0002 	mvn.w	r0, #2
+ 801215a:	e7f8      	b.n	801214e <NvmDataMgmtStoreBegin+0xe>
+ 801215c:	20002624 	.word	0x20002624
+
+08012160 <NvmDataMgmtStoreEnd>:
+
+int32_t NvmDataMgmtStoreEnd( void )
+{
+ 8012160:	b510      	push	{r4, lr}
+#if ( CONTEXT_MANAGEMENT_ENABLED == 1 )
+    /* Reset notification flags */
+    NvmNotifyFlags = LORAMAC_NVM_NOTIFY_FLAG_NONE;
+ 8012162:	2400      	movs	r4, #0
+ 8012164:	4b02      	ldr	r3, [pc, #8]	; (8012170 <NvmDataMgmtStoreEnd+0x10>)
+ 8012166:	801c      	strh	r4, [r3, #0]
+
+    /* Resume LoRaMac */
+    LoRaMacStart( );
+ 8012168:	f7fe f88a 	bl	8010280 <LoRaMacStart>
+    return NVM_DATA_OK;
+#else
+    return NVM_DATA_DISABLED;
+#endif /* CONTEXT_MANAGEMENT_ENABLED */
+}
+ 801216c:	4620      	mov	r0, r4
+ 801216e:	bd10      	pop	{r4, pc}
+ 8012170:	20002624 	.word	0x20002624
+
+08012174 <RegionIsActive>:
+#define RU864_RX_BEACON_SETUP( )
+#endif
+
+bool RegionIsActive( LoRaMacRegion_t region )
+{
+    switch( region )
+ 8012174:	b908      	cbnz	r0, 801217a <RegionIsActive+0x6>
+    {
+        AS923_IS_ACTIVE( );
+ 8012176:	2001      	movs	r0, #1
+ 8012178:	4770      	bx	lr
+        IN865_IS_ACTIVE( );
+        US915_IS_ACTIVE( );
+        RU864_IS_ACTIVE( );
+        default:
+        {
+            return false;
+ 801217a:	2000      	movs	r0, #0
+        }
+    }
+}
+ 801217c:	4770      	bx	lr
+
+0801217e <RegionGetPhyParam>:
+
+PhyParam_t RegionGetPhyParam( LoRaMacRegion_t region, GetPhyParams_t* getPhy )
+{
+ 801217e:	b500      	push	{lr}
+ 8012180:	b083      	sub	sp, #12
+    PhyParam_t phyParam = { 0 };
+ 8012182:	2300      	movs	r3, #0
+ 8012184:	9300      	str	r3, [sp, #0]
+    switch( region )
+ 8012186:	b128      	cbz	r0, 8012194 <RegionGetPhyParam+0x16>
+        IN865_GET_PHY_PARAM( );
+        US915_GET_PHY_PARAM( );
+        RU864_GET_PHY_PARAM( );
+        default:
+        {
+            return phyParam;
+ 8012188:	9b00      	ldr	r3, [sp, #0]
+ 801218a:	9301      	str	r3, [sp, #4]
+        }
+    }
+}
+ 801218c:	9801      	ldr	r0, [sp, #4]
+ 801218e:	b003      	add	sp, #12
+ 8012190:	f85d fb04 	ldr.w	pc, [sp], #4
+        AS923_GET_PHY_PARAM( );
+ 8012194:	4608      	mov	r0, r1
+ 8012196:	f000 f8ed 	bl	8012374 <RegionAS923GetPhyParam>
+ 801219a:	9001      	str	r0, [sp, #4]
+ 801219c:	e7f6      	b.n	801218c <RegionGetPhyParam+0xe>
+
+0801219e <RegionSetBandTxDone>:
+
+void RegionSetBandTxDone( LoRaMacRegion_t region, SetBandTxDoneParams_t* txDone )
+{
+    switch( region )
+ 801219e:	b100      	cbz	r0, 80121a2 <RegionSetBandTxDone+0x4>
+ 80121a0:	4770      	bx	lr
+{
+ 80121a2:	b508      	push	{r3, lr}
+    {
+        AS923_SET_BAND_TX_DONE( );
+ 80121a4:	4608      	mov	r0, r1
+ 80121a6:	f000 f9f1 	bl	801258c <RegionAS923SetBandTxDone>
+        default:
+        {
+            return;
+        }
+    }
+}
+ 80121aa:	bd08      	pop	{r3, pc}
+
+080121ac <RegionInitDefaults>:
+
+void RegionInitDefaults( LoRaMacRegion_t region, InitDefaultsParams_t* params )
+{
+    switch( region )
+ 80121ac:	b100      	cbz	r0, 80121b0 <RegionInitDefaults+0x4>
+ 80121ae:	4770      	bx	lr
+{
+ 80121b0:	b508      	push	{r3, lr}
+    {
+        AS923_INIT_DEFAULTS( );
+ 80121b2:	4608      	mov	r0, r1
+ 80121b4:	f000 fa08 	bl	80125c8 <RegionAS923InitDefaults>
+        default:
+        {
+            break;
+        }
+    }
+}
+ 80121b8:	bd08      	pop	{r3, pc}
+
+080121ba <RegionVerify>:
+
+bool RegionVerify( LoRaMacRegion_t region, VerifyParams_t* verify, PhyAttribute_t phyAttribute )
+{
+    switch( region )
+ 80121ba:	b108      	cbz	r0, 80121c0 <RegionVerify+0x6>
+        IN865_VERIFY( );
+        US915_VERIFY( );
+        RU864_VERIFY( );
+        default:
+        {
+            return false;
+ 80121bc:	2000      	movs	r0, #0
+        }
+    }
+}
+ 80121be:	4770      	bx	lr
+{
+ 80121c0:	b508      	push	{r3, lr}
+ 80121c2:	460b      	mov	r3, r1
+        AS923_VERIFY( );
+ 80121c4:	4611      	mov	r1, r2
+ 80121c6:	4618      	mov	r0, r3
+ 80121c8:	f000 fa58 	bl	801267c <RegionAS923Verify>
+}
+ 80121cc:	bd08      	pop	{r3, pc}
+
+080121ce <RegionApplyCFList>:
+
+void RegionApplyCFList( LoRaMacRegion_t region, ApplyCFListParams_t* applyCFList )
+{
+    switch( region )
+ 80121ce:	b100      	cbz	r0, 80121d2 <RegionApplyCFList+0x4>
+ 80121d0:	4770      	bx	lr
+{
+ 80121d2:	b508      	push	{r3, lr}
+    {
+        AS923_APPLY_CF_LIST( );
+ 80121d4:	4608      	mov	r0, r1
+ 80121d6:	f000 fe19 	bl	8012e0c <RegionAS923ApplyCFList>
+        default:
+        {
+            break;
+        }
+    }
+}
+ 80121da:	bd08      	pop	{r3, pc}
+
+080121dc <RegionChanMaskSet>:
+
+bool RegionChanMaskSet( LoRaMacRegion_t region, ChanMaskSetParams_t* chanMaskSet )
+{
+    switch( region )
+ 80121dc:	b108      	cbz	r0, 80121e2 <RegionChanMaskSet+0x6>
+        IN865_CHAN_MASK_SET( );
+        US915_CHAN_MASK_SET( );
+        RU864_CHAN_MASK_SET( );
+        default:
+        {
+            return false;
+ 80121de:	2000      	movs	r0, #0
+        }
+    }
+}
+ 80121e0:	4770      	bx	lr
+{
+ 80121e2:	b508      	push	{r3, lr}
+        AS923_CHAN_MASK_SET( );
+ 80121e4:	4608      	mov	r0, r1
+ 80121e6:	f000 fa9b 	bl	8012720 <RegionAS923ChanMaskSet>
+}
+ 80121ea:	bd08      	pop	{r3, pc}
+
+080121ec <RegionComputeRxWindowParameters>:
+
+void RegionComputeRxWindowParameters( LoRaMacRegion_t region, int8_t datarate, uint8_t minRxSymbols, uint32_t rxError, RxConfigParams_t *rxConfigParams )
+{
+    switch( region )
+ 80121ec:	b100      	cbz	r0, 80121f0 <RegionComputeRxWindowParameters+0x4>
+ 80121ee:	4770      	bx	lr
+{
+ 80121f0:	b508      	push	{r3, lr}
+ 80121f2:	468c      	mov	ip, r1
+ 80121f4:	4611      	mov	r1, r2
+ 80121f6:	461a      	mov	r2, r3
+    {
+        AS923_COMPUTE_RX_WINDOW_PARAMETERS( );
+ 80121f8:	9b02      	ldr	r3, [sp, #8]
+ 80121fa:	4660      	mov	r0, ip
+ 80121fc:	f000 faae 	bl	801275c <RegionAS923ComputeRxWindowParameters>
+        default:
+        {
+            break;
+        }
+    }
+}
+ 8012200:	bd08      	pop	{r3, pc}
+
+08012202 <RegionRxConfig>:
+
+bool RegionRxConfig( LoRaMacRegion_t region, RxConfigParams_t* rxConfig, int8_t* datarate )
+{
+    switch( region )
+ 8012202:	b108      	cbz	r0, 8012208 <RegionRxConfig+0x6>
+        IN865_RX_CONFIG( );
+        US915_RX_CONFIG( );
+        RU864_RX_CONFIG( );
+        default:
+        {
+            return false;
+ 8012204:	2000      	movs	r0, #0
+        }
+    }
+}
+ 8012206:	4770      	bx	lr
+{
+ 8012208:	b508      	push	{r3, lr}
+ 801220a:	460b      	mov	r3, r1
+        AS923_RX_CONFIG( );
+ 801220c:	4611      	mov	r1, r2
+ 801220e:	4618      	mov	r0, r3
+ 8012210:	f000 fada 	bl	80127c8 <RegionAS923RxConfig>
+}
+ 8012214:	bd08      	pop	{r3, pc}
+
+08012216 <RegionTxConfig>:
+
+bool RegionTxConfig( LoRaMacRegion_t region, TxConfigParams_t* txConfig, int8_t* txPower, TimerTime_t* txTimeOnAir )
+{
+    switch( region )
+ 8012216:	b108      	cbz	r0, 801221c <RegionTxConfig+0x6>
+        IN865_TX_CONFIG( );
+        US915_TX_CONFIG( );
+        RU864_TX_CONFIG( );
+        default:
+        {
+            return false;
+ 8012218:	2000      	movs	r0, #0
+        }
+    }
+}
+ 801221a:	4770      	bx	lr
+{
+ 801221c:	b508      	push	{r3, lr}
+ 801221e:	468c      	mov	ip, r1
+ 8012220:	4611      	mov	r1, r2
+        AS923_TX_CONFIG( );
+ 8012222:	461a      	mov	r2, r3
+ 8012224:	4660      	mov	r0, ip
+ 8012226:	f000 fb53 	bl	80128d0 <RegionAS923TxConfig>
+}
+ 801222a:	bd08      	pop	{r3, pc}
+
+0801222c <RegionLinkAdrReq>:
+
+uint8_t RegionLinkAdrReq( LoRaMacRegion_t region, LinkAdrReqParams_t* linkAdrReq, int8_t* drOut, int8_t* txPowOut, uint8_t* nbRepOut, uint8_t* nbBytesParsed )
+{
+    switch( region )
+ 801222c:	b108      	cbz	r0, 8012232 <RegionLinkAdrReq+0x6>
+        IN865_LINK_ADR_REQ( );
+        US915_LINK_ADR_REQ( );
+        RU864_LINK_ADR_REQ( );
+        default:
+        {
+            return 0;
+ 801222e:	2000      	movs	r0, #0
+        }
+    }
+}
+ 8012230:	4770      	bx	lr
+{
+ 8012232:	b500      	push	{lr}
+ 8012234:	b083      	sub	sp, #12
+ 8012236:	468c      	mov	ip, r1
+ 8012238:	4611      	mov	r1, r2
+ 801223a:	461a      	mov	r2, r3
+        AS923_LINK_ADR_REQ( );
+ 801223c:	9b05      	ldr	r3, [sp, #20]
+ 801223e:	9300      	str	r3, [sp, #0]
+ 8012240:	9b04      	ldr	r3, [sp, #16]
+ 8012242:	4660      	mov	r0, ip
+ 8012244:	f000 fbdc 	bl	8012a00 <RegionAS923LinkAdrReq>
+}
+ 8012248:	b003      	add	sp, #12
+ 801224a:	f85d fb04 	ldr.w	pc, [sp], #4
+
+0801224e <RegionRxParamSetupReq>:
+
+uint8_t RegionRxParamSetupReq( LoRaMacRegion_t region, RxParamSetupReqParams_t* rxParamSetupReq )
+{
+    switch( region )
+ 801224e:	b108      	cbz	r0, 8012254 <RegionRxParamSetupReq+0x6>
+        IN865_RX_PARAM_SETUP_REQ( );
+        US915_RX_PARAM_SETUP_REQ( );
+        RU864_RX_PARAM_SETUP_REQ( );
+        default:
+        {
+            return 0;
+ 8012250:	2000      	movs	r0, #0
+        }
+    }
+}
+ 8012252:	4770      	bx	lr
+{
+ 8012254:	b508      	push	{r3, lr}
+        AS923_RX_PARAM_SETUP_REQ( );
+ 8012256:	4608      	mov	r0, r1
+ 8012258:	f000 fc98 	bl	8012b8c <RegionAS923RxParamSetupReq>
+}
+ 801225c:	bd08      	pop	{r3, pc}
+
+0801225e <RegionNewChannelReq>:
+
+int8_t RegionNewChannelReq( LoRaMacRegion_t region, NewChannelReqParams_t* newChannelReq )
+{
+    switch( region )
+ 801225e:	b108      	cbz	r0, 8012264 <RegionNewChannelReq+0x6>
+        IN865_NEW_CHANNEL_REQ( );
+        US915_NEW_CHANNEL_REQ( );
+        RU864_NEW_CHANNEL_REQ( );
+        default:
+        {
+            return 0;
+ 8012260:	2000      	movs	r0, #0
+        }
+    }
+}
+ 8012262:	4770      	bx	lr
+{
+ 8012264:	b508      	push	{r3, lr}
+        AS923_NEW_CHANNEL_REQ( );
+ 8012266:	4608      	mov	r0, r1
+ 8012268:	f000 fe11 	bl	8012e8e <RegionAS923NewChannelReq>
+}
+ 801226c:	bd08      	pop	{r3, pc}
+
+0801226e <RegionTxParamSetupReq>:
+
+int8_t RegionTxParamSetupReq( LoRaMacRegion_t region, TxParamSetupReqParams_t* txParamSetupReq )
+{
+    switch( region )
+ 801226e:	b108      	cbz	r0, 8012274 <RegionTxParamSetupReq+0x6>
+        IN865_TX_PARAM_SETUP_REQ( );
+        US915_TX_PARAM_SETUP_REQ( );
+        RU864_TX_PARAM_SETUP_REQ( );
+        default:
+        {
+            return 0;
+ 8012270:	2000      	movs	r0, #0
+        }
+    }
+}
+ 8012272:	4770      	bx	lr
+{
+ 8012274:	b508      	push	{r3, lr}
+        AS923_TX_PARAM_SETUP_REQ( );
+ 8012276:	4608      	mov	r0, r1
+ 8012278:	f000 fca5 	bl	8012bc6 <RegionAS923TxParamSetupReq>
+}
+ 801227c:	bd08      	pop	{r3, pc}
+
+0801227e <RegionDlChannelReq>:
+
+int8_t RegionDlChannelReq( LoRaMacRegion_t region, DlChannelReqParams_t* dlChannelReq )
+{
+    switch( region )
+ 801227e:	b108      	cbz	r0, 8012284 <RegionDlChannelReq+0x6>
+        IN865_DL_CHANNEL_REQ( );
+        US915_DL_CHANNEL_REQ( );
+        RU864_DL_CHANNEL_REQ( );
+        default:
+        {
+            return 0;
+ 8012280:	2000      	movs	r0, #0
+        }
+    }
+}
+ 8012282:	4770      	bx	lr
+{
+ 8012284:	b508      	push	{r3, lr}
+        AS923_DL_CHANNEL_REQ( );
+ 8012286:	4608      	mov	r0, r1
+ 8012288:	f000 fca0 	bl	8012bcc <RegionAS923DlChannelReq>
+}
+ 801228c:	bd08      	pop	{r3, pc}
+
+0801228e <RegionAlternateDr>:
+
+int8_t RegionAlternateDr( LoRaMacRegion_t region, int8_t currentDr, AlternateDrType_t type )
+{
+    switch( region )
+ 801228e:	b108      	cbz	r0, 8012294 <RegionAlternateDr+0x6>
+        IN865_ALTERNATE_DR( );
+        US915_ALTERNATE_DR( );
+        RU864_ALTERNATE_DR( );
+        default:
+        {
+            return 0;
+ 8012290:	2000      	movs	r0, #0
+        }
+    }
+}
+ 8012292:	4770      	bx	lr
+{
+ 8012294:	b508      	push	{r3, lr}
+ 8012296:	460b      	mov	r3, r1
+        AS923_ALTERNATE_DR( );
+ 8012298:	4611      	mov	r1, r2
+ 801229a:	4618      	mov	r0, r3
+ 801229c:	f000 fcbc 	bl	8012c18 <RegionAS923AlternateDr>
+}
+ 80122a0:	bd08      	pop	{r3, pc}
+
+080122a2 <RegionNextChannel>:
+
+LoRaMacStatus_t RegionNextChannel( LoRaMacRegion_t region, NextChanParams_t* nextChanParams, uint8_t* channel, TimerTime_t* time, TimerTime_t* aggregatedTimeOff )
+{
+    switch( region )
+ 80122a2:	b108      	cbz	r0, 80122a8 <RegionNextChannel+0x6>
+        IN865_NEXT_CHANNEL( );
+        US915_NEXT_CHANNEL( );
+        RU864_NEXT_CHANNEL( );
+        default:
+        {
+            return LORAMAC_STATUS_REGION_NOT_SUPPORTED;
+ 80122a4:	2009      	movs	r0, #9
+        }
+    }
+}
+ 80122a6:	4770      	bx	lr
+{
+ 80122a8:	b508      	push	{r3, lr}
+ 80122aa:	468c      	mov	ip, r1
+ 80122ac:	4611      	mov	r1, r2
+ 80122ae:	461a      	mov	r2, r3
+        AS923_NEXT_CHANNEL( );
+ 80122b0:	9b02      	ldr	r3, [sp, #8]
+ 80122b2:	4660      	mov	r0, ip
+ 80122b4:	f000 fcb2 	bl	8012c1c <RegionAS923NextChannel>
+}
+ 80122b8:	bd08      	pop	{r3, pc}
+
+080122ba <RegionSetContinuousWave>:
+}
+
+#if (defined( REGION_VERSION ) && ( REGION_VERSION == 0x01010003 ))
+void RegionSetContinuousWave( LoRaMacRegion_t region, ContinuousWaveParams_t* continuousWave )
+{
+    switch( region )
+ 80122ba:	b100      	cbz	r0, 80122be <RegionSetContinuousWave+0x4>
+ 80122bc:	4770      	bx	lr
+{
+ 80122be:	b508      	push	{r3, lr}
+    {
+        AS923_SET_CONTINUOUS_WAVE( );
+ 80122c0:	4608      	mov	r0, r1
+ 80122c2:	f000 fe0f 	bl	8012ee4 <RegionAS923SetContinuousWave>
+        default:
+        {
+            break;
+        }
+    }
+}
+ 80122c6:	bd08      	pop	{r3, pc}
+
+080122c8 <RegionApplyDrOffset>:
+#endif /* REGION_VERSION */
+
+uint8_t RegionApplyDrOffset( LoRaMacRegion_t region, uint8_t downlinkDwellTime, int8_t dr, int8_t drOffset )
+{
+ 80122c8:	468c      	mov	ip, r1
+ 80122ca:	4611      	mov	r1, r2
+    switch( region )
+ 80122cc:	b108      	cbz	r0, 80122d2 <RegionApplyDrOffset+0xa>
+        IN865_APPLY_DR_OFFSET( );
+        US915_APPLY_DR_OFFSET( );
+        RU864_APPLY_DR_OFFSET( );
+        default:
+        {
+            return dr;
+ 80122ce:	b2d0      	uxtb	r0, r2
+        }
+    }
+}
+ 80122d0:	4770      	bx	lr
+{
+ 80122d2:	b508      	push	{r3, lr}
+        AS923_APPLY_DR_OFFSET( );
+ 80122d4:	461a      	mov	r2, r3
+ 80122d6:	4660      	mov	r0, ip
+ 80122d8:	f000 fe32 	bl	8012f40 <RegionAS923ApplyDrOffset>
+}
+ 80122dc:	bd08      	pop	{r3, pc}
+	...
+
+080122e0 <RegionGetVersion>:
+    Version_t version;
+
+    version.Value = REGION_VERSION;
+
+    return version;
+}
+ 80122e0:	4800      	ldr	r0, [pc, #0]	; (80122e4 <RegionGetVersion+0x4>)
+ 80122e2:	4770      	bx	lr
+ 80122e4:	01010003 	.word	0x01010003
+
+080122e8 <VerifyRfFreq>:
+static Band_t* RegionBands;
+#endif /* REGION_VERSION */
+
+// Static functions
+static bool VerifyRfFreq( uint32_t freq )
+{
+ 80122e8:	b510      	push	{r4, lr}
+ 80122ea:	4604      	mov	r4, r0
+    // Check radio driver support
+    if( Radio.CheckRfFrequency( freq ) == false )
+ 80122ec:	4b05      	ldr	r3, [pc, #20]	; (8012304 <VerifyRfFreq+0x1c>)
+ 80122ee:	6a1b      	ldr	r3, [r3, #32]
+ 80122f0:	4798      	blx	r3
+ 80122f2:	b120      	cbz	r0, 80122fe <VerifyRfFreq+0x16>
+    {
+        return false;
+    }
+
+    if( ( freq < AS923_MIN_RF_FREQUENCY ) || ( freq > AS923_MAX_RF_FREQUENCY ) )
+ 80122f4:	4b04      	ldr	r3, [pc, #16]	; (8012308 <VerifyRfFreq+0x20>)
+ 80122f6:	4423      	add	r3, r4
+ 80122f8:	4a04      	ldr	r2, [pc, #16]	; (801230c <VerifyRfFreq+0x24>)
+ 80122fa:	4293      	cmp	r3, r2
+ 80122fc:	d800      	bhi.n	8012300 <VerifyRfFreq+0x18>
+    {
+        return false;
+    }
+    return true;
+}
+ 80122fe:	bd10      	pop	{r4, pc}
+        return false;
+ 8012300:	2000      	movs	r0, #0
+ 8012302:	e7fc      	b.n	80122fe <VerifyRfFreq+0x16>
+ 8012304:	08018cb4 	.word	0x08018cb4
+ 8012308:	c9763540 	.word	0xc9763540
+ 801230c:	00c65d40 	.word	0x00c65d40
+
+08012310 <GetTimeOnAir>:
+
+static TimerTime_t GetTimeOnAir( int8_t datarate, uint16_t pktLen )
+{
+ 8012310:	b570      	push	{r4, r5, r6, lr}
+ 8012312:	b084      	sub	sp, #16
+ 8012314:	4605      	mov	r5, r0
+ 8012316:	460c      	mov	r4, r1
+    int8_t phyDr = DataratesAS923[datarate];
+ 8012318:	4b13      	ldr	r3, [pc, #76]	; (8012368 <GetTimeOnAir+0x58>)
+ 801231a:	561e      	ldrsb	r6, [r3, r0]
+    uint32_t bandwidth = RegionCommonGetBandwidth( datarate, BandwidthsAS923 );
+ 801231c:	4913      	ldr	r1, [pc, #76]	; (801236c <GetTimeOnAir+0x5c>)
+ 801231e:	f001 f9b9 	bl	8013694 <RegionCommonGetBandwidth>
+ 8012322:	4601      	mov	r1, r0
+    TimerTime_t timeOnAir = 0;
+
+    if( datarate == DR_7 )
+ 8012324:	2d07      	cmp	r5, #7
+ 8012326:	d00e      	beq.n	8012346 <GetTimeOnAir+0x36>
+    { // High Speed FSK channel
+        timeOnAir = Radio.TimeOnAir( MODEM_FSK, bandwidth, phyDr * 1000, 0, 5, false, pktLen, true );
+    }
+    else
+    {
+        timeOnAir = Radio.TimeOnAir( MODEM_LORA, bandwidth, phyDr, 1, 8, false, pktLen, true );
+ 8012328:	4b11      	ldr	r3, [pc, #68]	; (8012370 <GetTimeOnAir+0x60>)
+ 801232a:	6a5d      	ldr	r5, [r3, #36]	; 0x24
+ 801232c:	2001      	movs	r0, #1
+ 801232e:	9003      	str	r0, [sp, #12]
+ 8012330:	b2e4      	uxtb	r4, r4
+ 8012332:	9402      	str	r4, [sp, #8]
+ 8012334:	2300      	movs	r3, #0
+ 8012336:	9301      	str	r3, [sp, #4]
+ 8012338:	2308      	movs	r3, #8
+ 801233a:	9300      	str	r3, [sp, #0]
+ 801233c:	4603      	mov	r3, r0
+ 801233e:	4632      	mov	r2, r6
+ 8012340:	47a8      	blx	r5
+    }
+    return timeOnAir;
+}
+ 8012342:	b004      	add	sp, #16
+ 8012344:	bd70      	pop	{r4, r5, r6, pc}
+        timeOnAir = Radio.TimeOnAir( MODEM_FSK, bandwidth, phyDr * 1000, 0, 5, false, pktLen, true );
+ 8012346:	4b0a      	ldr	r3, [pc, #40]	; (8012370 <GetTimeOnAir+0x60>)
+ 8012348:	6a5d      	ldr	r5, [r3, #36]	; 0x24
+ 801234a:	2301      	movs	r3, #1
+ 801234c:	9303      	str	r3, [sp, #12]
+ 801234e:	b2e4      	uxtb	r4, r4
+ 8012350:	9402      	str	r4, [sp, #8]
+ 8012352:	2000      	movs	r0, #0
+ 8012354:	9001      	str	r0, [sp, #4]
+ 8012356:	2305      	movs	r3, #5
+ 8012358:	9300      	str	r3, [sp, #0]
+ 801235a:	4603      	mov	r3, r0
+ 801235c:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
+ 8012360:	fb06 f202 	mul.w	r2, r6, r2
+ 8012364:	47a8      	blx	r5
+ 8012366:	e7ec      	b.n	8012342 <GetTimeOnAir+0x32>
+ 8012368:	08018680 	.word	0x08018680
+ 801236c:	08018660 	.word	0x08018660
+ 8012370:	08018cb4 	.word	0x08018cb4
+
+08012374 <RegionAS923GetPhyParam>:
+#endif /* REGION_AS923 */
+
+PhyParam_t RegionAS923GetPhyParam( GetPhyParams_t* getPhy )
+{
+ 8012374:	b500      	push	{lr}
+ 8012376:	b087      	sub	sp, #28
+    PhyParam_t phyParam = { 0 };
+ 8012378:	2300      	movs	r3, #0
+ 801237a:	9304      	str	r3, [sp, #16]
+
+#if defined( REGION_AS923 )
+    switch( getPhy->Attribute )
+ 801237c:	7803      	ldrb	r3, [r0, #0]
+ 801237e:	3b01      	subs	r3, #1
+ 8012380:	2b38      	cmp	r3, #56	; 0x38
+ 8012382:	d846      	bhi.n	8012412 <RegionAS923GetPhyParam+0x9e>
+ 8012384:	e8df f013 	tbh	[pc, r3, lsl #1]
+ 8012388:	003e0039 	.word	0x003e0039
+ 801238c:	00450045 	.word	0x00450045
+ 8012390:	00430045 	.word	0x00430045
+ 8012394:	00450045 	.word	0x00450045
+ 8012398:	00450045 	.word	0x00450045
+ 801239c:	00670064 	.word	0x00670064
+ 80123a0:	0078006a 	.word	0x0078006a
+ 80123a4:	00860045 	.word	0x00860045
+ 80123a8:	008e008a 	.word	0x008e008a
+ 80123ac:	00960092 	.word	0x00960092
+ 80123b0:	009e009a 	.word	0x009e009a
+ 80123b4:	00a70045 	.word	0x00a70045
+ 80123b8:	00ad00aa 	.word	0x00ad00aa
+ 80123bc:	00b900b3 	.word	0x00b900b3
+ 80123c0:	00c000bc 	.word	0x00c000bc
+ 80123c4:	00c600c3 	.word	0x00c600c3
+ 80123c8:	004a00ca 	.word	0x004a00ca
+ 80123cc:	00450045 	.word	0x00450045
+ 80123d0:	00450045 	.word	0x00450045
+ 80123d4:	00450045 	.word	0x00450045
+ 80123d8:	00450045 	.word	0x00450045
+ 80123dc:	00450045 	.word	0x00450045
+ 80123e0:	00450045 	.word	0x00450045
+ 80123e4:	00cd0045 	.word	0x00cd0045
+ 80123e8:	00d700d0 	.word	0x00d700d0
+ 80123ec:	00450045 	.word	0x00450045
+ 80123f0:	00dd00da 	.word	0x00dd00da
+ 80123f4:	00e00045 	.word	0x00e00045
+ 80123f8:	00e6      	.short	0x00e6
+    {
+        case PHY_MIN_RX_DR:
+        {
+            if( getPhy->DownlinkDwellTime == 0 )
+ 80123fa:	78c3      	ldrb	r3, [r0, #3]
+ 80123fc:	b14b      	cbz	r3, 8012412 <RegionAS923GetPhyParam+0x9e>
+            {
+                phyParam.Value = AS923_RX_MIN_DATARATE;
+            }
+            else
+            {
+                phyParam.Value = AS923_DWELL_LIMIT_DATARATE;
+ 80123fe:	2302      	movs	r3, #2
+ 8012400:	9304      	str	r3, [sp, #16]
+ 8012402:	e006      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+            }
+            break;
+        }
+        case PHY_MIN_TX_DR:
+        {
+            if( getPhy->UplinkDwellTime == 0 )
+ 8012404:	7883      	ldrb	r3, [r0, #2]
+ 8012406:	b123      	cbz	r3, 8012412 <RegionAS923GetPhyParam+0x9e>
+            {
+                phyParam.Value = AS923_TX_MIN_DATARATE;
+            }
+            else
+            {
+                phyParam.Value = AS923_DWELL_LIMIT_DATARATE;
+ 8012408:	2302      	movs	r3, #2
+ 801240a:	9304      	str	r3, [sp, #16]
+ 801240c:	e001      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+            }
+            break;
+        }
+        case PHY_DEF_TX_DR:
+        {
+            phyParam.Value = AS923_DEFAULT_DATARATE;
+ 801240e:	2302      	movs	r3, #2
+ 8012410:	9304      	str	r3, [sp, #16]
+            break;
+        }
+    }
+
+#endif /* REGION_AS923 */
+    return phyParam;
+ 8012412:	9804      	ldr	r0, [sp, #16]
+ 8012414:	9005      	str	r0, [sp, #20]
+}
+ 8012416:	b007      	add	sp, #28
+ 8012418:	f85d fb04 	ldr.w	pc, [sp], #4
+                .CurrentDr = getPhy->Datarate,
+ 801241c:	f990 3001 	ldrsb.w	r3, [r0, #1]
+            RegionCommonGetNextLowerTxDrParams_t nextLowerTxDrParams =
+ 8012420:	f88d 3004 	strb.w	r3, [sp, #4]
+ 8012424:	2307      	movs	r3, #7
+ 8012426:	f88d 3005 	strb.w	r3, [sp, #5]
+                .MinDr = ( int8_t )( ( getPhy->UplinkDwellTime == 0 ) ? AS923_TX_MIN_DATARATE : AS923_DWELL_LIMIT_DATARATE ),
+ 801242a:	7883      	ldrb	r3, [r0, #2]
+ 801242c:	b103      	cbz	r3, 8012430 <RegionAS923GetPhyParam+0xbc>
+ 801242e:	2302      	movs	r3, #2
+            RegionCommonGetNextLowerTxDrParams_t nextLowerTxDrParams =
+ 8012430:	f88d 3006 	strb.w	r3, [sp, #6]
+ 8012434:	2310      	movs	r3, #16
+ 8012436:	f88d 3007 	strb.w	r3, [sp, #7]
+                .ChannelsMask = RegionNvmGroup2->ChannelsMask,
+ 801243a:	4b4a      	ldr	r3, [pc, #296]	; (8012564 <RegionAS923GetPhyParam+0x1f0>)
+ 801243c:	681b      	ldr	r3, [r3, #0]
+ 801243e:	f503 6290 	add.w	r2, r3, #1152	; 0x480
+            RegionCommonGetNextLowerTxDrParams_t nextLowerTxDrParams =
+ 8012442:	9202      	str	r2, [sp, #8]
+ 8012444:	9303      	str	r3, [sp, #12]
+            phyParam.Value = RegionCommonGetNextLowerTxDr( &nextLowerTxDrParams );
+ 8012446:	a801      	add	r0, sp, #4
+ 8012448:	f001 f901 	bl	801364e <RegionCommonGetNextLowerTxDr>
+ 801244c:	9004      	str	r0, [sp, #16]
+            break;
+ 801244e:	e7e0      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+            phyParam.Value = REGION_COMMON_DEFAULT_ADR_ACK_LIMIT;
+ 8012450:	2340      	movs	r3, #64	; 0x40
+ 8012452:	9304      	str	r3, [sp, #16]
+            break;
+ 8012454:	e7dd      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+            phyParam.Value = REGION_COMMON_DEFAULT_ADR_ACK_DELAY;
+ 8012456:	2320      	movs	r3, #32
+ 8012458:	9304      	str	r3, [sp, #16]
+            break;
+ 801245a:	e7da      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+            if( getPhy->UplinkDwellTime == 0 )
+ 801245c:	7883      	ldrb	r3, [r0, #2]
+ 801245e:	b92b      	cbnz	r3, 801246c <RegionAS923GetPhyParam+0xf8>
+                phyParam.Value = MaxPayloadOfDatarateDwell0AS923[getPhy->Datarate];
+ 8012460:	f990 3001 	ldrsb.w	r3, [r0, #1]
+ 8012464:	4a40      	ldr	r2, [pc, #256]	; (8012568 <RegionAS923GetPhyParam+0x1f4>)
+ 8012466:	5cd3      	ldrb	r3, [r2, r3]
+ 8012468:	9304      	str	r3, [sp, #16]
+ 801246a:	e7d2      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+                phyParam.Value = MaxPayloadOfDatarateDwell1AS923[getPhy->Datarate];
+ 801246c:	f990 3001 	ldrsb.w	r3, [r0, #1]
+ 8012470:	4a3e      	ldr	r2, [pc, #248]	; (801256c <RegionAS923GetPhyParam+0x1f8>)
+ 8012472:	5cd3      	ldrb	r3, [r2, r3]
+ 8012474:	9304      	str	r3, [sp, #16]
+ 8012476:	e7cc      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+            if( getPhy->UplinkDwellTime == 0 )
+ 8012478:	7883      	ldrb	r3, [r0, #2]
+ 801247a:	b92b      	cbnz	r3, 8012488 <RegionAS923GetPhyParam+0x114>
+                phyParam.Value = MaxPayloadOfDatarateRepeaterDwell0AS923[getPhy->Datarate];
+ 801247c:	f990 3001 	ldrsb.w	r3, [r0, #1]
+ 8012480:	4a3b      	ldr	r2, [pc, #236]	; (8012570 <RegionAS923GetPhyParam+0x1fc>)
+ 8012482:	5cd3      	ldrb	r3, [r2, r3]
+ 8012484:	9304      	str	r3, [sp, #16]
+ 8012486:	e7c4      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+                phyParam.Value = MaxPayloadOfDatarateDwell1AS923[getPhy->Datarate];
+ 8012488:	f990 3001 	ldrsb.w	r3, [r0, #1]
+ 801248c:	4a37      	ldr	r2, [pc, #220]	; (801256c <RegionAS923GetPhyParam+0x1f8>)
+ 801248e:	5cd3      	ldrb	r3, [r2, r3]
+ 8012490:	9304      	str	r3, [sp, #16]
+ 8012492:	e7be      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+            phyParam.Value = AS923_MAX_RX_WINDOW;
+ 8012494:	f640 33b8 	movw	r3, #3000	; 0xbb8
+ 8012498:	9304      	str	r3, [sp, #16]
+            break;
+ 801249a:	e7ba      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+            phyParam.Value = REGION_COMMON_DEFAULT_RECEIVE_DELAY1;
+ 801249c:	f44f 737a 	mov.w	r3, #1000	; 0x3e8
+ 80124a0:	9304      	str	r3, [sp, #16]
+            break;
+ 80124a2:	e7b6      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+            phyParam.Value = REGION_COMMON_DEFAULT_RECEIVE_DELAY2;
+ 80124a4:	f44f 63fa 	mov.w	r3, #2000	; 0x7d0
+ 80124a8:	9304      	str	r3, [sp, #16]
+            break;
+ 80124aa:	e7b2      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+            phyParam.Value = REGION_COMMON_DEFAULT_JOIN_ACCEPT_DELAY1;
+ 80124ac:	f241 3388 	movw	r3, #5000	; 0x1388
+ 80124b0:	9304      	str	r3, [sp, #16]
+            break;
+ 80124b2:	e7ae      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+            phyParam.Value = REGION_COMMON_DEFAULT_JOIN_ACCEPT_DELAY2;
+ 80124b4:	f241 7370 	movw	r3, #6000	; 0x1770
+ 80124b8:	9304      	str	r3, [sp, #16]
+            break;
+ 80124ba:	e7aa      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+            phyParam.Value = REGION_COMMON_DEFAULT_MAX_FCNT_GAP;
+ 80124bc:	f44f 4380 	mov.w	r3, #16384	; 0x4000
+ 80124c0:	9304      	str	r3, [sp, #16]
+            break;
+ 80124c2:	e7a6      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+            phyParam.Value = ( REGION_COMMON_DEFAULT_ACK_TIMEOUT + randr( -REGION_COMMON_DEFAULT_ACK_TIMEOUT_RND, REGION_COMMON_DEFAULT_ACK_TIMEOUT_RND ) );
+ 80124c4:	f44f 717a 	mov.w	r1, #1000	; 0x3e8
+ 80124c8:	482a      	ldr	r0, [pc, #168]	; (8012574 <RegionAS923GetPhyParam+0x200>)
+ 80124ca:	f002 f859 	bl	8014580 <randr>
+ 80124ce:	f500 60fa 	add.w	r0, r0, #2000	; 0x7d0
+ 80124d2:	9004      	str	r0, [sp, #16]
+            break;
+ 80124d4:	e79d      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+            phyParam.Value = AS923_RX_WND_2_FREQ - REGION_AS923_FREQ_OFFSET;
+ 80124d6:	4b28      	ldr	r3, [pc, #160]	; (8012578 <RegionAS923GetPhyParam+0x204>)
+ 80124d8:	9304      	str	r3, [sp, #16]
+            break;
+ 80124da:	e79a      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+            phyParam.Value = AS923_RX_WND_2_DR;
+ 80124dc:	2302      	movs	r3, #2
+ 80124de:	9304      	str	r3, [sp, #16]
+            break;
+ 80124e0:	e797      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+            phyParam.ChannelsMask = RegionNvmGroup2->ChannelsMask;
+ 80124e2:	4b20      	ldr	r3, [pc, #128]	; (8012564 <RegionAS923GetPhyParam+0x1f0>)
+ 80124e4:	681b      	ldr	r3, [r3, #0]
+ 80124e6:	f503 6390 	add.w	r3, r3, #1152	; 0x480
+ 80124ea:	9304      	str	r3, [sp, #16]
+            break;
+ 80124ec:	e791      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+            phyParam.ChannelsMask = RegionNvmGroup2->ChannelsDefaultMask;
+ 80124ee:	4b1d      	ldr	r3, [pc, #116]	; (8012564 <RegionAS923GetPhyParam+0x1f0>)
+ 80124f0:	681b      	ldr	r3, [r3, #0]
+ 80124f2:	f203 438c 	addw	r3, r3, #1164	; 0x48c
+ 80124f6:	9304      	str	r3, [sp, #16]
+            break;
+ 80124f8:	e78b      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+            phyParam.Value = AS923_MAX_NB_CHANNELS;
+ 80124fa:	2310      	movs	r3, #16
+ 80124fc:	9304      	str	r3, [sp, #16]
+            break;
+ 80124fe:	e788      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+            phyParam.Channels = RegionNvmGroup2->Channels;
+ 8012500:	4b18      	ldr	r3, [pc, #96]	; (8012564 <RegionAS923GetPhyParam+0x1f0>)
+ 8012502:	681b      	ldr	r3, [r3, #0]
+ 8012504:	9304      	str	r3, [sp, #16]
+            break;
+ 8012506:	e784      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+            phyParam.Value = AS923_DEFAULT_UPLINK_DWELL_TIME;
+ 8012508:	2301      	movs	r3, #1
+ 801250a:	9304      	str	r3, [sp, #16]
+            break;
+ 801250c:	e781      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+            phyParam.Value = AS923_DEFAULT_DOWNLINK_DWELL_TIME;
+ 801250e:	2301      	movs	r3, #1
+ 8012510:	9304      	str	r3, [sp, #16]
+            break;
+ 8012512:	e77e      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+            phyParam.fValue = AS923_DEFAULT_MAX_EIRP;
+ 8012514:	f04f 4383 	mov.w	r3, #1098907648	; 0x41800000
+ 8012518:	9304      	str	r3, [sp, #16]
+            break;
+ 801251a:	e77a      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+            phyParam.fValue = AS923_DEFAULT_ANTENNA_GAIN;
+ 801251c:	4b17      	ldr	r3, [pc, #92]	; (801257c <RegionAS923GetPhyParam+0x208>)
+ 801251e:	9304      	str	r3, [sp, #16]
+            break;
+ 8012520:	e777      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+            phyParam.Value = AS923_BEACON_CHANNEL_FREQ - REGION_AS923_FREQ_OFFSET;
+ 8012522:	4b17      	ldr	r3, [pc, #92]	; (8012580 <RegionAS923GetPhyParam+0x20c>)
+ 8012524:	9304      	str	r3, [sp, #16]
+            break;
+ 8012526:	e774      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+            phyParam.BeaconFormat.BeaconSize = AS923_BEACON_SIZE;
+ 8012528:	2311      	movs	r3, #17
+ 801252a:	f88d 3010 	strb.w	r3, [sp, #16]
+            phyParam.BeaconFormat.Rfu1Size = AS923_RFU1_SIZE;
+ 801252e:	2302      	movs	r3, #2
+ 8012530:	f88d 3011 	strb.w	r3, [sp, #17]
+            break;
+ 8012534:	e76d      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+            phyParam.Value = AS923_BEACON_CHANNEL_DR;
+ 8012536:	2303      	movs	r3, #3
+ 8012538:	9304      	str	r3, [sp, #16]
+            break;
+ 801253a:	e76a      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+            phyParam.Value = AS923_PING_SLOT_CHANNEL_FREQ;
+ 801253c:	4b10      	ldr	r3, [pc, #64]	; (8012580 <RegionAS923GetPhyParam+0x20c>)
+ 801253e:	9304      	str	r3, [sp, #16]
+            break;
+ 8012540:	e767      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+            phyParam.Value = AS923_PING_SLOT_CHANNEL_DR;
+ 8012542:	2303      	movs	r3, #3
+ 8012544:	9304      	str	r3, [sp, #16]
+            break;
+ 8012546:	e764      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+            phyParam.Value = DataratesAS923[getPhy->Datarate];
+ 8012548:	f990 3001 	ldrsb.w	r3, [r0, #1]
+ 801254c:	4a0d      	ldr	r2, [pc, #52]	; (8012584 <RegionAS923GetPhyParam+0x210>)
+ 801254e:	5cd3      	ldrb	r3, [r2, r3]
+ 8012550:	9304      	str	r3, [sp, #16]
+            break;
+ 8012552:	e75e      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+            phyParam.Value = RegionCommonGetBandwidth( getPhy->Datarate, BandwidthsAS923 );
+ 8012554:	490c      	ldr	r1, [pc, #48]	; (8012588 <RegionAS923GetPhyParam+0x214>)
+ 8012556:	f990 0001 	ldrsb.w	r0, [r0, #1]
+ 801255a:	f001 f89b 	bl	8013694 <RegionCommonGetBandwidth>
+ 801255e:	9004      	str	r0, [sp, #16]
+            break;
+ 8012560:	e757      	b.n	8012412 <RegionAS923GetPhyParam+0x9e>
+ 8012562:	bf00      	nop
+ 8012564:	2000262c 	.word	0x2000262c
+ 8012568:	08018690 	.word	0x08018690
+ 801256c:	08018698 	.word	0x08018698
+ 8012570:	080186a0 	.word	0x080186a0
+ 8012574:	fffffc18 	.word	0xfffffc18
+ 8012578:	3706ea00 	.word	0x3706ea00
+ 801257c:	4009999a 	.word	0x4009999a
+ 8012580:	3709f740 	.word	0x3709f740
+ 8012584:	08018680 	.word	0x08018680
+ 8012588:	08018660 	.word	0x08018660
+
+0801258c <RegionAS923SetBandTxDone>:
+
+void RegionAS923SetBandTxDone( SetBandTxDoneParams_t* txDone )
+{
+ 801258c:	b510      	push	{r4, lr}
+ 801258e:	b082      	sub	sp, #8
+#if defined( REGION_AS923 )
+#if (defined( REGION_VERSION ) && ( REGION_VERSION == 0x01010003 ))
+    RegionCommonSetBandTxDone( &RegionNvmGroup1->Bands[RegionNvmGroup2->Channels[txDone->Channel].Band],
+ 8012590:	4b0b      	ldr	r3, [pc, #44]	; (80125c0 <RegionAS923SetBandTxDone+0x34>)
+ 8012592:	681c      	ldr	r4, [r3, #0]
+ 8012594:	4b0b      	ldr	r3, [pc, #44]	; (80125c4 <RegionAS923SetBandTxDone+0x38>)
+ 8012596:	681a      	ldr	r2, [r3, #0]
+ 8012598:	7803      	ldrb	r3, [r0, #0]
+ 801259a:	eb03 0343 	add.w	r3, r3, r3, lsl #1
+ 801259e:	eb02 0383 	add.w	r3, r2, r3, lsl #2
+ 80125a2:	7a5b      	ldrb	r3, [r3, #9]
+ 80125a4:	eb03 0c43 	add.w	ip, r3, r3, lsl #1
+ 80125a8:	6903      	ldr	r3, [r0, #16]
+ 80125aa:	9300      	str	r3, [sp, #0]
+ 80125ac:	68c3      	ldr	r3, [r0, #12]
+ 80125ae:	7842      	ldrb	r2, [r0, #1]
+ 80125b0:	6881      	ldr	r1, [r0, #8]
+ 80125b2:	eb04 00cc 	add.w	r0, r4, ip, lsl #3
+ 80125b6:	f000 fe23 	bl	8013200 <RegionCommonSetBandTxDone>
+#elif (defined( REGION_VERSION ) && ( REGION_VERSION == 0x02010001 ))
+    RegionCommonSetBandTxDone( &RegionBands[RegionNvmGroup2->Channels[txDone->Channel].Band],
+                               txDone->LastTxAirTime, txDone->Joined, txDone->ElapsedTimeSinceStartUp );
+#endif /* REGION_VERSION */
+#endif /* REGION_AS923 */
+}
+ 80125ba:	b002      	add	sp, #8
+ 80125bc:	bd10      	pop	{r4, pc}
+ 80125be:	bf00      	nop
+ 80125c0:	20002628 	.word	0x20002628
+ 80125c4:	2000262c 	.word	0x2000262c
+
+080125c8 <RegionAS923InitDefaults>:
+
+void RegionAS923InitDefaults( InitDefaultsParams_t* params )
+{
+ 80125c8:	b510      	push	{r4, lr}
+ 80125ca:	b086      	sub	sp, #24
+#if defined( REGION_AS923 )
+    Band_t bands[AS923_MAX_NB_BANDS] =
+ 80125cc:	2364      	movs	r3, #100	; 0x64
+ 80125ce:	f8ad 3000 	strh.w	r3, [sp]
+ 80125d2:	2300      	movs	r3, #0
+ 80125d4:	f88d 3002 	strb.w	r3, [sp, #2]
+ 80125d8:	9301      	str	r3, [sp, #4]
+ 80125da:	9302      	str	r3, [sp, #8]
+ 80125dc:	9303      	str	r3, [sp, #12]
+ 80125de:	9304      	str	r3, [sp, #16]
+ 80125e0:	f88d 3014 	strb.w	r3, [sp, #20]
+    {
+        AS923_BAND0
+    };
+
+    switch( params->Type )
+ 80125e4:	7a03      	ldrb	r3, [r0, #8]
+ 80125e6:	2b01      	cmp	r3, #1
+ 80125e8:	d02b      	beq.n	8012642 <RegionAS923InitDefaults+0x7a>
+ 80125ea:	2b02      	cmp	r3, #2
+ 80125ec:	d036      	beq.n	801265c <RegionAS923InitDefaults+0x94>
+ 80125ee:	b10b      	cbz	r3, 80125f4 <RegionAS923InitDefaults+0x2c>
+        {
+            break;
+        }
+    }
+#endif /* REGION_AS923 */
+}
+ 80125f0:	b006      	add	sp, #24
+ 80125f2:	bd10      	pop	{r4, pc}
+            if( ( params->NvmGroup1 == NULL ) || ( params->NvmGroup2 == NULL ) )
+ 80125f4:	6803      	ldr	r3, [r0, #0]
+ 80125f6:	2b00      	cmp	r3, #0
+ 80125f8:	d0fa      	beq.n	80125f0 <RegionAS923InitDefaults+0x28>
+ 80125fa:	6842      	ldr	r2, [r0, #4]
+ 80125fc:	2a00      	cmp	r2, #0
+ 80125fe:	d0f7      	beq.n	80125f0 <RegionAS923InitDefaults+0x28>
+            RegionNvmGroup1 = (RegionNvmDataGroup1_t*) params->NvmGroup1;
+ 8012600:	491b      	ldr	r1, [pc, #108]	; (8012670 <RegionAS923InitDefaults+0xa8>)
+ 8012602:	600b      	str	r3, [r1, #0]
+            RegionNvmGroup2 = (RegionNvmDataGroup2_t*) params->NvmGroup2;
+ 8012604:	4c1b      	ldr	r4, [pc, #108]	; (8012674 <RegionAS923InitDefaults+0xac>)
+ 8012606:	6022      	str	r2, [r4, #0]
+            memcpy1( ( uint8_t* )RegionNvmGroup1->Bands, ( uint8_t* )bands, sizeof( Band_t ) * AS923_MAX_NB_BANDS );
+ 8012608:	2218      	movs	r2, #24
+ 801260a:	4669      	mov	r1, sp
+ 801260c:	4618      	mov	r0, r3
+ 801260e:	f001 ffc4 	bl	801459a <memcpy1>
+            RegionNvmGroup2->Channels[0] = ( ChannelParams_t ) AS923_LC1;
+ 8012612:	6824      	ldr	r4, [r4, #0]
+ 8012614:	4b18      	ldr	r3, [pc, #96]	; (8012678 <RegionAS923InitDefaults+0xb0>)
+ 8012616:	e893 0007 	ldmia.w	r3, {r0, r1, r2}
+ 801261a:	e884 0007 	stmia.w	r4, {r0, r1, r2}
+            RegionNvmGroup2->Channels[1] = ( ChannelParams_t ) AS923_LC2;
+ 801261e:	f104 0c0c 	add.w	ip, r4, #12
+ 8012622:	330c      	adds	r3, #12
+ 8012624:	e893 0007 	ldmia.w	r3, {r0, r1, r2}
+ 8012628:	e88c 0007 	stmia.w	ip, {r0, r1, r2}
+            RegionNvmGroup2->ChannelsDefaultMask[0] = LC( 1 ) + LC( 2 );
+ 801262c:	2303      	movs	r3, #3
+ 801262e:	f8a4 348c 	strh.w	r3, [r4, #1164]	; 0x48c
+            RegionCommonChanMaskCopy( RegionNvmGroup2->ChannelsMask, RegionNvmGroup2->ChannelsDefaultMask, CHANNELS_MASK_SIZE );
+ 8012632:	2201      	movs	r2, #1
+ 8012634:	f204 418c 	addw	r1, r4, #1164	; 0x48c
+ 8012638:	f504 6090 	add.w	r0, r4, #1152	; 0x480
+ 801263c:	f000 fdd1 	bl	80131e2 <RegionCommonChanMaskCopy>
+            break;
+ 8012640:	e7d6      	b.n	80125f0 <RegionAS923InitDefaults+0x28>
+            RegionNvmGroup2->Channels[0].Rx1Frequency = 0;
+ 8012642:	4b0c      	ldr	r3, [pc, #48]	; (8012674 <RegionAS923InitDefaults+0xac>)
+ 8012644:	6818      	ldr	r0, [r3, #0]
+ 8012646:	2300      	movs	r3, #0
+ 8012648:	6043      	str	r3, [r0, #4]
+            RegionNvmGroup2->Channels[1].Rx1Frequency = 0;
+ 801264a:	6103      	str	r3, [r0, #16]
+            RegionCommonChanMaskCopy( RegionNvmGroup2->ChannelsMask, RegionNvmGroup2->ChannelsDefaultMask, CHANNELS_MASK_SIZE );
+ 801264c:	2201      	movs	r2, #1
+ 801264e:	f200 418c 	addw	r1, r0, #1164	; 0x48c
+ 8012652:	f500 6090 	add.w	r0, r0, #1152	; 0x480
+ 8012656:	f000 fdc4 	bl	80131e2 <RegionCommonChanMaskCopy>
+            break;
+ 801265a:	e7c9      	b.n	80125f0 <RegionAS923InitDefaults+0x28>
+            RegionNvmGroup2->ChannelsMask[0] |= RegionNvmGroup2->ChannelsDefaultMask[0];
+ 801265c:	4b05      	ldr	r3, [pc, #20]	; (8012674 <RegionAS923InitDefaults+0xac>)
+ 801265e:	681b      	ldr	r3, [r3, #0]
+ 8012660:	f8b3 248c 	ldrh.w	r2, [r3, #1164]	; 0x48c
+ 8012664:	f8b3 1480 	ldrh.w	r1, [r3, #1152]	; 0x480
+ 8012668:	430a      	orrs	r2, r1
+ 801266a:	f8a3 2480 	strh.w	r2, [r3, #1152]	; 0x480
+            break;
+ 801266e:	e7bf      	b.n	80125f0 <RegionAS923InitDefaults+0x28>
+ 8012670:	20002628 	.word	0x20002628
+ 8012674:	2000262c 	.word	0x2000262c
+ 8012678:	0801788c 	.word	0x0801788c
+
+0801267c <RegionAS923Verify>:
+
+bool RegionAS923Verify( VerifyParams_t* verify, PhyAttribute_t phyAttribute )
+{
+ 801267c:	b508      	push	{r3, lr}
+#if defined( REGION_AS923 )
+    switch( phyAttribute )
+ 801267e:	290a      	cmp	r1, #10
+ 8012680:	d84b      	bhi.n	801271a <RegionAS923Verify+0x9e>
+ 8012682:	e8df f001 	tbb	[pc, r1]
+ 8012686:	4a06      	.short	0x4a06
+ 8012688:	0a4a4a4a 	.word	0x0a4a4a4a
+ 801268c:	404a2a20 	.word	0x404a2a20
+ 8012690:	40          	.byte	0x40
+ 8012691:	00          	.byte	0x00
+    {
+        case PHY_FREQUENCY:
+        {
+            return VerifyRfFreq( verify->Frequency );
+ 8012692:	6800      	ldr	r0, [r0, #0]
+ 8012694:	f7ff fe28 	bl	80122e8 <VerifyRfFreq>
+ 8012698:	e040      	b.n	801271c <RegionAS923Verify+0xa0>
+        }
+        case PHY_TX_DR:
+        {
+            if( verify->DatarateParams.UplinkDwellTime == 0 )
+ 801269a:	7883      	ldrb	r3, [r0, #2]
+ 801269c:	b94b      	cbnz	r3, 80126b2 <RegionAS923Verify+0x36>
+            {
+                return RegionCommonValueInRange( verify->DatarateParams.Datarate, AS923_TX_MIN_DATARATE, AS923_TX_MAX_DATARATE );
+ 801269e:	2207      	movs	r2, #7
+ 80126a0:	2100      	movs	r1, #0
+ 80126a2:	f990 0000 	ldrsb.w	r0, [r0]
+ 80126a6:	f000 fd28 	bl	80130fa <RegionCommonValueInRange>
+ 80126aa:	3800      	subs	r0, #0
+ 80126ac:	bf18      	it	ne
+ 80126ae:	2001      	movne	r0, #1
+ 80126b0:	e034      	b.n	801271c <RegionAS923Verify+0xa0>
+            }
+            else
+            {
+                return RegionCommonValueInRange( verify->DatarateParams.Datarate, AS923_DWELL_LIMIT_DATARATE, AS923_TX_MAX_DATARATE );
+ 80126b2:	2207      	movs	r2, #7
+ 80126b4:	2102      	movs	r1, #2
+ 80126b6:	f990 0000 	ldrsb.w	r0, [r0]
+ 80126ba:	f000 fd1e 	bl	80130fa <RegionCommonValueInRange>
+ 80126be:	3800      	subs	r0, #0
+ 80126c0:	bf18      	it	ne
+ 80126c2:	2001      	movne	r0, #1
+ 80126c4:	e02a      	b.n	801271c <RegionAS923Verify+0xa0>
+            }
+        }
+        case PHY_DEF_TX_DR:
+        {
+            return RegionCommonValueInRange( verify->DatarateParams.Datarate, DR_0, DR_5 );
+ 80126c6:	2205      	movs	r2, #5
+ 80126c8:	2100      	movs	r1, #0
+ 80126ca:	f990 0000 	ldrsb.w	r0, [r0]
+ 80126ce:	f000 fd14 	bl	80130fa <RegionCommonValueInRange>
+ 80126d2:	3800      	subs	r0, #0
+ 80126d4:	bf18      	it	ne
+ 80126d6:	2001      	movne	r0, #1
+ 80126d8:	e020      	b.n	801271c <RegionAS923Verify+0xa0>
+        }
+        case PHY_RX_DR:
+        {
+            if( verify->DatarateParams.DownlinkDwellTime == 0 )
+ 80126da:	7843      	ldrb	r3, [r0, #1]
+ 80126dc:	b94b      	cbnz	r3, 80126f2 <RegionAS923Verify+0x76>
+            {
+                return RegionCommonValueInRange( verify->DatarateParams.Datarate, AS923_RX_MIN_DATARATE, AS923_RX_MAX_DATARATE );
+ 80126de:	2207      	movs	r2, #7
+ 80126e0:	2100      	movs	r1, #0
+ 80126e2:	f990 0000 	ldrsb.w	r0, [r0]
+ 80126e6:	f000 fd08 	bl	80130fa <RegionCommonValueInRange>
+ 80126ea:	3800      	subs	r0, #0
+ 80126ec:	bf18      	it	ne
+ 80126ee:	2001      	movne	r0, #1
+ 80126f0:	e014      	b.n	801271c <RegionAS923Verify+0xa0>
+            }
+            else
+            {
+                return RegionCommonValueInRange( verify->DatarateParams.Datarate, AS923_DWELL_LIMIT_DATARATE, AS923_RX_MAX_DATARATE );
+ 80126f2:	2207      	movs	r2, #7
+ 80126f4:	2102      	movs	r1, #2
+ 80126f6:	f990 0000 	ldrsb.w	r0, [r0]
+ 80126fa:	f000 fcfe 	bl	80130fa <RegionCommonValueInRange>
+ 80126fe:	3800      	subs	r0, #0
+ 8012700:	bf18      	it	ne
+ 8012702:	2001      	movne	r0, #1
+ 8012704:	e00a      	b.n	801271c <RegionAS923Verify+0xa0>
+        }
+        case PHY_DEF_TX_POWER:
+        case PHY_TX_POWER:
+        {
+            // Remark: switched min and max!
+            return RegionCommonValueInRange( verify->TxPower, AS923_MAX_TX_POWER, AS923_MIN_TX_POWER );
+ 8012706:	2207      	movs	r2, #7
+ 8012708:	2100      	movs	r1, #0
+ 801270a:	f990 0000 	ldrsb.w	r0, [r0]
+ 801270e:	f000 fcf4 	bl	80130fa <RegionCommonValueInRange>
+ 8012712:	3800      	subs	r0, #0
+ 8012714:	bf18      	it	ne
+ 8012716:	2001      	movne	r0, #1
+ 8012718:	e000      	b.n	801271c <RegionAS923Verify+0xa0>
+    switch( phyAttribute )
+ 801271a:	2000      	movs	r0, #0
+            return false;
+    }
+#else
+    return false;
+#endif /* REGION_AS923 */
+}
+ 801271c:	bd08      	pop	{r3, pc}
+	...
+
+08012720 <RegionAS923ChanMaskSet>:
+    }
+#endif /* REGION_AS923 */
+}
+
+bool RegionAS923ChanMaskSet( ChanMaskSetParams_t* chanMaskSet )
+{
+ 8012720:	b508      	push	{r3, lr}
+#if defined( REGION_AS923 )
+    switch( chanMaskSet->ChannelsMaskType )
+ 8012722:	7903      	ldrb	r3, [r0, #4]
+ 8012724:	b11b      	cbz	r3, 801272e <RegionAS923ChanMaskSet+0xe>
+ 8012726:	2b01      	cmp	r3, #1
+ 8012728:	d00b      	beq.n	8012742 <RegionAS923ChanMaskSet+0x22>
+ 801272a:	2000      	movs	r0, #0
+    }
+    return true;
+#else
+    return false;
+#endif /* REGION_AS923 */
+}
+ 801272c:	bd08      	pop	{r3, pc}
+            RegionCommonChanMaskCopy( RegionNvmGroup2->ChannelsMask, chanMaskSet->ChannelsMaskIn, 1 );
+ 801272e:	4b0a      	ldr	r3, [pc, #40]	; (8012758 <RegionAS923ChanMaskSet+0x38>)
+ 8012730:	681b      	ldr	r3, [r3, #0]
+ 8012732:	2201      	movs	r2, #1
+ 8012734:	6801      	ldr	r1, [r0, #0]
+ 8012736:	f503 6090 	add.w	r0, r3, #1152	; 0x480
+ 801273a:	f000 fd52 	bl	80131e2 <RegionCommonChanMaskCopy>
+    return true;
+ 801273e:	2001      	movs	r0, #1
+            break;
+ 8012740:	e7f4      	b.n	801272c <RegionAS923ChanMaskSet+0xc>
+            RegionCommonChanMaskCopy( RegionNvmGroup2->ChannelsDefaultMask, chanMaskSet->ChannelsMaskIn, 1 );
+ 8012742:	4b05      	ldr	r3, [pc, #20]	; (8012758 <RegionAS923ChanMaskSet+0x38>)
+ 8012744:	681b      	ldr	r3, [r3, #0]
+ 8012746:	2201      	movs	r2, #1
+ 8012748:	6801      	ldr	r1, [r0, #0]
+ 801274a:	f203 408c 	addw	r0, r3, #1164	; 0x48c
+ 801274e:	f000 fd48 	bl	80131e2 <RegionCommonChanMaskCopy>
+    return true;
+ 8012752:	2001      	movs	r0, #1
+            break;
+ 8012754:	e7ea      	b.n	801272c <RegionAS923ChanMaskSet+0xc>
+ 8012756:	bf00      	nop
+ 8012758:	2000262c 	.word	0x2000262c
+
+0801275c <RegionAS923ComputeRxWindowParameters>:
+
+void RegionAS923ComputeRxWindowParameters( int8_t datarate, uint8_t minRxSymbols, uint32_t rxError, RxConfigParams_t *rxConfigParams )
+{
+ 801275c:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 801275e:	b083      	sub	sp, #12
+ 8012760:	460e      	mov	r6, r1
+ 8012762:	4617      	mov	r7, r2
+ 8012764:	461c      	mov	r4, r3
+#if defined( REGION_AS923 )
+    uint32_t tSymbolInUs = 0;
+
+    // Get the datarate, perform a boundary check
+    rxConfigParams->Datarate = MIN( datarate, AS923_RX_MAX_DATARATE );
+ 8012766:	2807      	cmp	r0, #7
+ 8012768:	bfa8      	it	ge
+ 801276a:	2007      	movge	r0, #7
+ 801276c:	7058      	strb	r0, [r3, #1]
+    rxConfigParams->Bandwidth = RegionCommonGetBandwidth( rxConfigParams->Datarate, BandwidthsAS923 );
+ 801276e:	4913      	ldr	r1, [pc, #76]	; (80127bc <RegionAS923ComputeRxWindowParameters+0x60>)
+ 8012770:	f000 ff90 	bl	8013694 <RegionCommonGetBandwidth>
+ 8012774:	70a0      	strb	r0, [r4, #2]
+
+    if( rxConfigParams->Datarate == DR_7 )
+ 8012776:	f994 3001 	ldrsb.w	r3, [r4, #1]
+ 801277a:	2b07      	cmp	r3, #7
+ 801277c:	d017      	beq.n	80127ae <RegionAS923ComputeRxWindowParameters+0x52>
+    { // FSK
+        tSymbolInUs = RegionCommonComputeSymbolTimeFsk( DataratesAS923[rxConfigParams->Datarate] );
+    }
+    else
+    { // LoRa
+        tSymbolInUs = RegionCommonComputeSymbolTimeLoRa( DataratesAS923[rxConfigParams->Datarate], BandwidthsAS923[rxConfigParams->Datarate] );
+ 801277e:	4a0f      	ldr	r2, [pc, #60]	; (80127bc <RegionAS923ComputeRxWindowParameters+0x60>)
+ 8012780:	f852 1023 	ldr.w	r1, [r2, r3, lsl #2]
+ 8012784:	4a0e      	ldr	r2, [pc, #56]	; (80127c0 <RegionAS923ComputeRxWindowParameters+0x64>)
+ 8012786:	5cd0      	ldrb	r0, [r2, r3]
+ 8012788:	f000 fe52 	bl	8013430 <RegionCommonComputeSymbolTimeLoRa>
+ 801278c:	4605      	mov	r5, r0
+    }
+
+    RegionCommonComputeRxWindowParameters( tSymbolInUs, minRxSymbols, rxError, Radio.GetWakeupTime( ), &rxConfigParams->WindowTimeout, &rxConfigParams->WindowOffset );
+ 801278e:	4b0d      	ldr	r3, [pc, #52]	; (80127c4 <RegionAS923ComputeRxWindowParameters+0x68>)
+ 8012790:	6ddb      	ldr	r3, [r3, #92]	; 0x5c
+ 8012792:	4798      	blx	r3
+ 8012794:	4603      	mov	r3, r0
+ 8012796:	f104 020c 	add.w	r2, r4, #12
+ 801279a:	9201      	str	r2, [sp, #4]
+ 801279c:	3408      	adds	r4, #8
+ 801279e:	9400      	str	r4, [sp, #0]
+ 80127a0:	463a      	mov	r2, r7
+ 80127a2:	4631      	mov	r1, r6
+ 80127a4:	4628      	mov	r0, r5
+ 80127a6:	f000 fe51 	bl	801344c <RegionCommonComputeRxWindowParameters>
+#endif /* REGION_AS923 */
+}
+ 80127aa:	b003      	add	sp, #12
+ 80127ac:	bdf0      	pop	{r4, r5, r6, r7, pc}
+        tSymbolInUs = RegionCommonComputeSymbolTimeFsk( DataratesAS923[rxConfigParams->Datarate] );
+ 80127ae:	4a04      	ldr	r2, [pc, #16]	; (80127c0 <RegionAS923ComputeRxWindowParameters+0x64>)
+ 80127b0:	5cd0      	ldrb	r0, [r2, r3]
+ 80127b2:	f000 fe45 	bl	8013440 <RegionCommonComputeSymbolTimeFsk>
+ 80127b6:	4605      	mov	r5, r0
+ 80127b8:	e7e9      	b.n	801278e <RegionAS923ComputeRxWindowParameters+0x32>
+ 80127ba:	bf00      	nop
+ 80127bc:	08018660 	.word	0x08018660
+ 80127c0:	08018680 	.word	0x08018680
+ 80127c4:	08018cb4 	.word	0x08018cb4
+
+080127c8 <RegionAS923RxConfig>:
+
+bool RegionAS923RxConfig( RxConfigParams_t* rxConfig, int8_t* datarate )
+{
+ 80127c8:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
+ 80127cc:	b08a      	sub	sp, #40	; 0x28
+ 80127ce:	4604      	mov	r4, r0
+ 80127d0:	460f      	mov	r7, r1
+#if defined( REGION_AS923 )
+    RadioModems_t modem;
+    int8_t dr = rxConfig->Datarate;
+ 80127d2:	f990 5001 	ldrsb.w	r5, [r0, #1]
+    uint8_t maxPayload = 0;
+    int8_t phyDr = 0;
+    uint32_t frequency = rxConfig->Frequency;
+ 80127d6:	f8d0 8004 	ldr.w	r8, [r0, #4]
+
+    if( Radio.GetStatus( ) != RF_IDLE )
+ 80127da:	4b37      	ldr	r3, [pc, #220]	; (80128b8 <RegionAS923RxConfig+0xf0>)
+ 80127dc:	685b      	ldr	r3, [r3, #4]
+ 80127de:	4798      	blx	r3
+ 80127e0:	2800      	cmp	r0, #0
+ 80127e2:	d167      	bne.n	80128b4 <RegionAS923RxConfig+0xec>
+ 80127e4:	4606      	mov	r6, r0
+    {
+        return false;
+    }
+
+    if( rxConfig->RxSlot == RX_SLOT_WIN_1 )
+ 80127e6:	7ce3      	ldrb	r3, [r4, #19]
+ 80127e8:	b983      	cbnz	r3, 801280c <RegionAS923RxConfig+0x44>
+    {
+        // Apply window 1 frequency
+        frequency = RegionNvmGroup2->Channels[rxConfig->Channel].Frequency;
+ 80127ea:	4b34      	ldr	r3, [pc, #208]	; (80128bc <RegionAS923RxConfig+0xf4>)
+ 80127ec:	681a      	ldr	r2, [r3, #0]
+ 80127ee:	7823      	ldrb	r3, [r4, #0]
+ 80127f0:	eb03 0143 	add.w	r1, r3, r3, lsl #1
+ 80127f4:	f852 1021 	ldr.w	r1, [r2, r1, lsl #2]
+        // Apply the alternative RX 1 window frequency, if it is available
+        if( RegionNvmGroup2->Channels[rxConfig->Channel].Rx1Frequency != 0 )
+ 80127f8:	eb03 0343 	add.w	r3, r3, r3, lsl #1
+ 80127fc:	eb02 0283 	add.w	r2, r2, r3, lsl #2
+ 8012800:	f8d2 8004 	ldr.w	r8, [r2, #4]
+ 8012804:	f1b8 0f00 	cmp.w	r8, #0
+ 8012808:	d100      	bne.n	801280c <RegionAS923RxConfig+0x44>
+        frequency = RegionNvmGroup2->Channels[rxConfig->Channel].Frequency;
+ 801280a:	4688      	mov	r8, r1
+            frequency = RegionNvmGroup2->Channels[rxConfig->Channel].Rx1Frequency;
+        }
+    }
+
+    // Read the physical datarate from the datarates table
+    phyDr = DataratesAS923[dr];
+ 801280c:	4b2c      	ldr	r3, [pc, #176]	; (80128c0 <RegionAS923RxConfig+0xf8>)
+ 801280e:	f913 9005 	ldrsb.w	r9, [r3, r5]
+
+    Radio.SetChannel( frequency );
+ 8012812:	4b29      	ldr	r3, [pc, #164]	; (80128b8 <RegionAS923RxConfig+0xf0>)
+ 8012814:	68db      	ldr	r3, [r3, #12]
+ 8012816:	4640      	mov	r0, r8
+ 8012818:	4798      	blx	r3
+
+    // Radio configuration
+    if( dr == DR_7 )
+ 801281a:	2d07      	cmp	r5, #7
+ 801281c:	d02b      	beq.n	8012876 <RegionAS923RxConfig+0xae>
+        Radio.SetRxConfig( modem, 50000, phyDr * 1000, 0, 83333, 5, rxConfig->WindowTimeout, false, 0, true, 0, 0, false, rxConfig->RxContinuous );
+    }
+    else
+    {
+        modem = MODEM_LORA;
+        Radio.SetRxConfig( modem, rxConfig->Bandwidth, phyDr, 1, 0, 8, rxConfig->WindowTimeout, false, 0, false, 0, 0, true, rxConfig->RxContinuous );
+ 801281e:	4b26      	ldr	r3, [pc, #152]	; (80128b8 <RegionAS923RxConfig+0xf0>)
+ 8012820:	f8d3 a018 	ldr.w	sl, [r3, #24]
+ 8012824:	7ca3      	ldrb	r3, [r4, #18]
+ 8012826:	9309      	str	r3, [sp, #36]	; 0x24
+ 8012828:	2601      	movs	r6, #1
+ 801282a:	9608      	str	r6, [sp, #32]
+ 801282c:	2300      	movs	r3, #0
+ 801282e:	9307      	str	r3, [sp, #28]
+ 8012830:	9306      	str	r3, [sp, #24]
+ 8012832:	9305      	str	r3, [sp, #20]
+ 8012834:	9304      	str	r3, [sp, #16]
+ 8012836:	9303      	str	r3, [sp, #12]
+ 8012838:	8922      	ldrh	r2, [r4, #8]
+ 801283a:	9202      	str	r2, [sp, #8]
+ 801283c:	2208      	movs	r2, #8
+ 801283e:	9201      	str	r2, [sp, #4]
+ 8012840:	9300      	str	r3, [sp, #0]
+ 8012842:	4633      	mov	r3, r6
+ 8012844:	464a      	mov	r2, r9
+ 8012846:	78a1      	ldrb	r1, [r4, #2]
+ 8012848:	4630      	mov	r0, r6
+ 801284a:	47d0      	blx	sl
+    }
+
+    if( rxConfig->RepeaterSupport == true )
+ 801284c:	7c63      	ldrb	r3, [r4, #17]
+ 801284e:	2b00      	cmp	r3, #0
+ 8012850:	d02d      	beq.n	80128ae <RegionAS923RxConfig+0xe6>
+    {
+        maxPayload = MaxPayloadOfDatarateRepeaterDwell0AS923[dr];
+ 8012852:	4b1c      	ldr	r3, [pc, #112]	; (80128c4 <RegionAS923RxConfig+0xfc>)
+ 8012854:	5d59      	ldrb	r1, [r3, r5]
+    else
+    {
+        maxPayload = MaxPayloadOfDatarateDwell0AS923[dr];
+    }
+
+    Radio.SetMaxPayloadLength( modem, maxPayload + LORAMAC_FRAME_PAYLOAD_OVERHEAD_SIZE );
+ 8012856:	4b18      	ldr	r3, [pc, #96]	; (80128b8 <RegionAS923RxConfig+0xf0>)
+ 8012858:	6d5b      	ldr	r3, [r3, #84]	; 0x54
+ 801285a:	310d      	adds	r1, #13
+ 801285c:	b2c9      	uxtb	r1, r1
+ 801285e:	4630      	mov	r0, r6
+ 8012860:	4798      	blx	r3
+
+    RegionCommonRxConfigPrint(rxConfig->RxSlot, frequency, dr);
+ 8012862:	462a      	mov	r2, r5
+ 8012864:	4641      	mov	r1, r8
+ 8012866:	7ce0      	ldrb	r0, [r4, #19]
+ 8012868:	f000 ff26 	bl	80136b8 <RegionCommonRxConfigPrint>
+
+    *datarate = (uint8_t) dr;
+ 801286c:	703d      	strb	r5, [r7, #0]
+    return true;
+ 801286e:	2001      	movs	r0, #1
+#else
+    return false;
+#endif /* REGION_AS923 */
+}
+ 8012870:	b00a      	add	sp, #40	; 0x28
+ 8012872:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+        Radio.SetRxConfig( modem, 50000, phyDr * 1000, 0, 83333, 5, rxConfig->WindowTimeout, false, 0, true, 0, 0, false, rxConfig->RxContinuous );
+ 8012876:	4b10      	ldr	r3, [pc, #64]	; (80128b8 <RegionAS923RxConfig+0xf0>)
+ 8012878:	f8d3 a018 	ldr.w	sl, [r3, #24]
+ 801287c:	7ca3      	ldrb	r3, [r4, #18]
+ 801287e:	9309      	str	r3, [sp, #36]	; 0x24
+ 8012880:	2000      	movs	r0, #0
+ 8012882:	9008      	str	r0, [sp, #32]
+ 8012884:	9007      	str	r0, [sp, #28]
+ 8012886:	9006      	str	r0, [sp, #24]
+ 8012888:	2301      	movs	r3, #1
+ 801288a:	9305      	str	r3, [sp, #20]
+ 801288c:	9004      	str	r0, [sp, #16]
+ 801288e:	9003      	str	r0, [sp, #12]
+ 8012890:	8923      	ldrh	r3, [r4, #8]
+ 8012892:	9302      	str	r3, [sp, #8]
+ 8012894:	2305      	movs	r3, #5
+ 8012896:	9301      	str	r3, [sp, #4]
+ 8012898:	4b0b      	ldr	r3, [pc, #44]	; (80128c8 <RegionAS923RxConfig+0x100>)
+ 801289a:	9300      	str	r3, [sp, #0]
+ 801289c:	4603      	mov	r3, r0
+ 801289e:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
+ 80128a2:	fb02 f209 	mul.w	r2, r2, r9
+ 80128a6:	f24c 3150 	movw	r1, #50000	; 0xc350
+ 80128aa:	47d0      	blx	sl
+ 80128ac:	e7ce      	b.n	801284c <RegionAS923RxConfig+0x84>
+        maxPayload = MaxPayloadOfDatarateDwell0AS923[dr];
+ 80128ae:	4b07      	ldr	r3, [pc, #28]	; (80128cc <RegionAS923RxConfig+0x104>)
+ 80128b0:	5d59      	ldrb	r1, [r3, r5]
+ 80128b2:	e7d0      	b.n	8012856 <RegionAS923RxConfig+0x8e>
+        return false;
+ 80128b4:	2000      	movs	r0, #0
+ 80128b6:	e7db      	b.n	8012870 <RegionAS923RxConfig+0xa8>
+ 80128b8:	08018cb4 	.word	0x08018cb4
+ 80128bc:	2000262c 	.word	0x2000262c
+ 80128c0:	08018680 	.word	0x08018680
+ 80128c4:	080186a0 	.word	0x080186a0
+ 80128c8:	00014585 	.word	0x00014585
+ 80128cc:	08018690 	.word	0x08018690
+
+080128d0 <RegionAS923TxConfig>:
+
+bool RegionAS923TxConfig( TxConfigParams_t* txConfig, int8_t* txPower, TimerTime_t* txTimeOnAir )
+{
+ 80128d0:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 80128d4:	b08d      	sub	sp, #52	; 0x34
+ 80128d6:	4604      	mov	r4, r0
+ 80128d8:	460f      	mov	r7, r1
+ 80128da:	4690      	mov	r8, r2
+#if defined( REGION_AS923 )
+    RadioModems_t modem;
+    int8_t phyDr = DataratesAS923[txConfig->Datarate];
+ 80128dc:	f990 3001 	ldrsb.w	r3, [r0, #1]
+ 80128e0:	4a42      	ldr	r2, [pc, #264]	; (80129ec <RegionAS923TxConfig+0x11c>)
+ 80128e2:	f912 a003 	ldrsb.w	sl, [r2, r3]
+#if (defined( REGION_VERSION ) && ( REGION_VERSION == 0x01010003 ))
+    int8_t txPowerLimited = RegionCommonLimitTxPower( txConfig->TxPower, RegionNvmGroup1->Bands[RegionNvmGroup2->Channels[txConfig->Channel].Band].TxMaxPower );
+ 80128e6:	4b42      	ldr	r3, [pc, #264]	; (80129f0 <RegionAS923TxConfig+0x120>)
+ 80128e8:	681a      	ldr	r2, [r3, #0]
+ 80128ea:	4d42      	ldr	r5, [pc, #264]	; (80129f4 <RegionAS923TxConfig+0x124>)
+ 80128ec:	6829      	ldr	r1, [r5, #0]
+ 80128ee:	7803      	ldrb	r3, [r0, #0]
+ 80128f0:	eb03 0343 	add.w	r3, r3, r3, lsl #1
+ 80128f4:	eb01 0183 	add.w	r1, r1, r3, lsl #2
+ 80128f8:	7a4b      	ldrb	r3, [r1, #9]
+ 80128fa:	eb03 0343 	add.w	r3, r3, r3, lsl #1
+ 80128fe:	eb02 03c3 	add.w	r3, r2, r3, lsl #3
+ 8012902:	f993 1002 	ldrsb.w	r1, [r3, #2]
+ 8012906:	f990 0002 	ldrsb.w	r0, [r0, #2]
+ 801290a:	f000 febf 	bl	801368c <RegionCommonLimitTxPower>
+ 801290e:	4606      	mov	r6, r0
+#elif (defined( REGION_VERSION ) && ( REGION_VERSION == 0x02010001 ))
+    int8_t txPowerLimited = RegionCommonLimitTxPower( txConfig->TxPower, RegionBands[RegionNvmGroup2->Channels[txConfig->Channel].Band].TxMaxPower );
+#endif /* REGION_VERSION */
+    uint32_t bandwidth = RegionCommonGetBandwidth( txConfig->Datarate, BandwidthsAS923 );
+ 8012910:	4939      	ldr	r1, [pc, #228]	; (80129f8 <RegionAS923TxConfig+0x128>)
+ 8012912:	f994 0001 	ldrsb.w	r0, [r4, #1]
+ 8012916:	f000 febd 	bl	8013694 <RegionCommonGetBandwidth>
+ 801291a:	4681      	mov	r9, r0
+    int8_t phyTxPower = 0;
+
+    // Calculate physical TX power
+    phyTxPower = RegionCommonComputeTxPower( txPowerLimited, txConfig->MaxEirp, txConfig->AntennaGain );
+ 801291c:	68a2      	ldr	r2, [r4, #8]
+ 801291e:	6861      	ldr	r1, [r4, #4]
+ 8012920:	4630      	mov	r0, r6
+ 8012922:	f000 fdcf 	bl	80134c4 <RegionCommonComputeTxPower>
+ 8012926:	900b      	str	r0, [sp, #44]	; 0x2c
+
+    // Setup the radio frequency
+    Radio.SetChannel( RegionNvmGroup2->Channels[txConfig->Channel].Frequency );
+ 8012928:	4b34      	ldr	r3, [pc, #208]	; (80129fc <RegionAS923TxConfig+0x12c>)
+ 801292a:	68da      	ldr	r2, [r3, #12]
+ 801292c:	6829      	ldr	r1, [r5, #0]
+ 801292e:	7823      	ldrb	r3, [r4, #0]
+ 8012930:	eb03 0343 	add.w	r3, r3, r3, lsl #1
+ 8012934:	f851 0023 	ldr.w	r0, [r1, r3, lsl #2]
+ 8012938:	4790      	blx	r2
+
+    if( txConfig->Datarate == DR_7 )
+ 801293a:	f994 3001 	ldrsb.w	r3, [r4, #1]
+ 801293e:	2b07      	cmp	r3, #7
+ 8012940:	d031      	beq.n	80129a6 <RegionAS923TxConfig+0xd6>
+        Radio.SetTxConfig( modem, phyTxPower, 25000, bandwidth, phyDr * 1000, 0, 5, false, true, 0, 0, false, 4000 );
+    }
+    else
+    {
+        modem = MODEM_LORA;
+        Radio.SetTxConfig( modem, phyTxPower, 0, bandwidth, phyDr, 1, 8, false, true, 0, 0, false, 4000 );
+ 8012942:	4b2e      	ldr	r3, [pc, #184]	; (80129fc <RegionAS923TxConfig+0x12c>)
+ 8012944:	f8d3 b01c 	ldr.w	fp, [r3, #28]
+ 8012948:	f44f 637a 	mov.w	r3, #4000	; 0xfa0
+ 801294c:	9308      	str	r3, [sp, #32]
+ 801294e:	2200      	movs	r2, #0
+ 8012950:	9207      	str	r2, [sp, #28]
+ 8012952:	9206      	str	r2, [sp, #24]
+ 8012954:	9205      	str	r2, [sp, #20]
+ 8012956:	2501      	movs	r5, #1
+ 8012958:	9504      	str	r5, [sp, #16]
+ 801295a:	9203      	str	r2, [sp, #12]
+ 801295c:	2308      	movs	r3, #8
+ 801295e:	9302      	str	r3, [sp, #8]
+ 8012960:	9501      	str	r5, [sp, #4]
+ 8012962:	f8cd a000 	str.w	sl, [sp]
+ 8012966:	464b      	mov	r3, r9
+ 8012968:	990b      	ldr	r1, [sp, #44]	; 0x2c
+ 801296a:	4628      	mov	r0, r5
+ 801296c:	47d8      	blx	fp
+    }
+    RegionCommonTxConfigPrint(RegionNvmGroup2->Channels[txConfig->Channel].Frequency, txConfig->Datarate);
+ 801296e:	4b21      	ldr	r3, [pc, #132]	; (80129f4 <RegionAS923TxConfig+0x124>)
+ 8012970:	681a      	ldr	r2, [r3, #0]
+ 8012972:	7823      	ldrb	r3, [r4, #0]
+ 8012974:	eb03 0343 	add.w	r3, r3, r3, lsl #1
+ 8012978:	f994 1001 	ldrsb.w	r1, [r4, #1]
+ 801297c:	f852 0023 	ldr.w	r0, [r2, r3, lsl #2]
+ 8012980:	f000 febc 	bl	80136fc <RegionCommonTxConfigPrint>
+
+    // Update time-on-air
+    *txTimeOnAir = GetTimeOnAir( txConfig->Datarate, txConfig->PktLen );
+ 8012984:	89a1      	ldrh	r1, [r4, #12]
+ 8012986:	f994 0001 	ldrsb.w	r0, [r4, #1]
+ 801298a:	f7ff fcc1 	bl	8012310 <GetTimeOnAir>
+ 801298e:	f8c8 0000 	str.w	r0, [r8]
+
+    // Setup maximum payload length of the radio driver
+    Radio.SetMaxPayloadLength( modem, txConfig->PktLen );
+ 8012992:	4b1a      	ldr	r3, [pc, #104]	; (80129fc <RegionAS923TxConfig+0x12c>)
+ 8012994:	6d5b      	ldr	r3, [r3, #84]	; 0x54
+ 8012996:	7b21      	ldrb	r1, [r4, #12]
+ 8012998:	4628      	mov	r0, r5
+ 801299a:	4798      	blx	r3
+
+    *txPower = txPowerLimited;
+ 801299c:	703e      	strb	r6, [r7, #0]
+    return true;
+#else
+    return false;
+#endif /* REGION_AS923 */
+}
+ 801299e:	2001      	movs	r0, #1
+ 80129a0:	b00d      	add	sp, #52	; 0x34
+ 80129a2:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+        Radio.SetTxConfig( modem, phyTxPower, 25000, bandwidth, phyDr * 1000, 0, 5, false, true, 0, 0, false, 4000 );
+ 80129a6:	4b15      	ldr	r3, [pc, #84]	; (80129fc <RegionAS923TxConfig+0x12c>)
+ 80129a8:	69dd      	ldr	r5, [r3, #28]
+ 80129aa:	f44f 737a 	mov.w	r3, #1000	; 0x3e8
+ 80129ae:	fb03 f30a 	mul.w	r3, r3, sl
+ 80129b2:	f44f 627a 	mov.w	r2, #4000	; 0xfa0
+ 80129b6:	9208      	str	r2, [sp, #32]
+ 80129b8:	f04f 0a00 	mov.w	sl, #0
+ 80129bc:	f8cd a01c 	str.w	sl, [sp, #28]
+ 80129c0:	f8cd a018 	str.w	sl, [sp, #24]
+ 80129c4:	f8cd a014 	str.w	sl, [sp, #20]
+ 80129c8:	2201      	movs	r2, #1
+ 80129ca:	9204      	str	r2, [sp, #16]
+ 80129cc:	f8cd a00c 	str.w	sl, [sp, #12]
+ 80129d0:	2205      	movs	r2, #5
+ 80129d2:	9202      	str	r2, [sp, #8]
+ 80129d4:	f8cd a004 	str.w	sl, [sp, #4]
+ 80129d8:	9300      	str	r3, [sp, #0]
+ 80129da:	464b      	mov	r3, r9
+ 80129dc:	f246 12a8 	movw	r2, #25000	; 0x61a8
+ 80129e0:	990b      	ldr	r1, [sp, #44]	; 0x2c
+ 80129e2:	4650      	mov	r0, sl
+ 80129e4:	47a8      	blx	r5
+        modem = MODEM_FSK;
+ 80129e6:	4655      	mov	r5, sl
+ 80129e8:	e7c1      	b.n	801296e <RegionAS923TxConfig+0x9e>
+ 80129ea:	bf00      	nop
+ 80129ec:	08018680 	.word	0x08018680
+ 80129f0:	20002628 	.word	0x20002628
+ 80129f4:	2000262c 	.word	0x2000262c
+ 80129f8:	08018660 	.word	0x08018660
+ 80129fc:	08018cb4 	.word	0x08018cb4
+
+08012a00 <RegionAS923LinkAdrReq>:
+
+uint8_t RegionAS923LinkAdrReq( LinkAdrReqParams_t* linkAdrReq, int8_t* drOut, int8_t* txPowOut, uint8_t* nbRepOut, uint8_t* nbBytesParsed )
+{
+ 8012a00:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
+ 8012a04:	b08f      	sub	sp, #60	; 0x3c
+ 8012a06:	4605      	mov	r5, r0
+ 8012a08:	4689      	mov	r9, r1
+ 8012a0a:	4690      	mov	r8, r2
+ 8012a0c:	461f      	mov	r7, r3
+    uint8_t status = 0x07;
+#if defined( REGION_AS923 )
+    RegionCommonLinkAdrParams_t linkAdrParams = { 0 };
+ 8012a0e:	2400      	movs	r4, #0
+ 8012a10:	940c      	str	r4, [sp, #48]	; 0x30
+ 8012a12:	f8ad 4034 	strh.w	r4, [sp, #52]	; 0x34
+    uint8_t nextIndex = 0;
+    uint8_t bytesProcessed = 0;
+    uint16_t chMask = 0;
+ 8012a16:	f8ad 402e 	strh.w	r4, [sp, #46]	; 0x2e
+    uint8_t status = 0x07;
+ 8012a1a:	2607      	movs	r6, #7
+    GetPhyParams_t getPhy;
+    PhyParam_t phyParam;
+    RegionCommonLinkAdrReqVerifyParams_t linkAdrVerifyParams;
+
+    while( bytesProcessed < linkAdrReq->PayloadSize )
+ 8012a1c:	e030      	b.n	8012a80 <RegionAS923LinkAdrReq+0x80>
+            // RFU
+            status &= 0xFE; // Channel mask KO
+        }
+        else
+        {
+            for( uint8_t i = 0; i < AS923_MAX_NB_CHANNELS; i++ )
+ 8012a1e:	f04f 0c00 	mov.w	ip, #0
+        status = 0x07;
+ 8012a22:	2607      	movs	r6, #7
+ 8012a24:	e012      	b.n	8012a4c <RegionAS923LinkAdrReq+0x4c>
+            {
+                if( linkAdrParams.ChMaskCtrl == 6 )
+                {
+                    if( RegionNvmGroup2->Channels[i].Frequency != 0 )
+ 8012a26:	4a58      	ldr	r2, [pc, #352]	; (8012b88 <RegionAS923LinkAdrReq+0x188>)
+ 8012a28:	6812      	ldr	r2, [r2, #0]
+ 8012a2a:	eb0c 014c 	add.w	r1, ip, ip, lsl #1
+ 8012a2e:	f852 2021 	ldr.w	r2, [r2, r1, lsl #2]
+ 8012a32:	b13a      	cbz	r2, 8012a44 <RegionAS923LinkAdrReq+0x44>
+                    {
+                        chMask |= 1 << i;
+ 8012a34:	2201      	movs	r2, #1
+ 8012a36:	fa02 f20c 	lsl.w	r2, r2, ip
+ 8012a3a:	f8bd 102e 	ldrh.w	r1, [sp, #46]	; 0x2e
+ 8012a3e:	430a      	orrs	r2, r1
+ 8012a40:	f8ad 202e 	strh.w	r2, [sp, #46]	; 0x2e
+            for( uint8_t i = 0; i < AS923_MAX_NB_CHANNELS; i++ )
+ 8012a44:	f10c 0c01 	add.w	ip, ip, #1
+ 8012a48:	fa5f fc8c 	uxtb.w	ip, ip
+ 8012a4c:	f1bc 0f0f 	cmp.w	ip, #15
+ 8012a50:	d816      	bhi.n	8012a80 <RegionAS923LinkAdrReq+0x80>
+                if( linkAdrParams.ChMaskCtrl == 6 )
+ 8012a52:	2b06      	cmp	r3, #6
+ 8012a54:	d0e7      	beq.n	8012a26 <RegionAS923LinkAdrReq+0x26>
+                    }
+                }
+                else
+                {
+                    if( ( ( chMask & ( 1 << i ) ) != 0 ) &&
+ 8012a56:	f8bd e02e 	ldrh.w	lr, [sp, #46]	; 0x2e
+ 8012a5a:	fa4e fe0c 	asr.w	lr, lr, ip
+ 8012a5e:	f01e 0f01 	tst.w	lr, #1
+ 8012a62:	d0ef      	beq.n	8012a44 <RegionAS923LinkAdrReq+0x44>
+                        ( RegionNvmGroup2->Channels[i].Frequency == 0 ) )
+ 8012a64:	4a48      	ldr	r2, [pc, #288]	; (8012b88 <RegionAS923LinkAdrReq+0x188>)
+ 8012a66:	6812      	ldr	r2, [r2, #0]
+ 8012a68:	eb0c 014c 	add.w	r1, ip, ip, lsl #1
+ 8012a6c:	f852 2021 	ldr.w	r2, [r2, r1, lsl #2]
+                    if( ( ( chMask & ( 1 << i ) ) != 0 ) &&
+ 8012a70:	2a00      	cmp	r2, #0
+ 8012a72:	d1e7      	bne.n	8012a44 <RegionAS923LinkAdrReq+0x44>
+                    {// Trying to enable an undefined channel
+                        status &= 0xFE; // Channel mask KO
+ 8012a74:	f006 06fe 	and.w	r6, r6, #254	; 0xfe
+ 8012a78:	e7e4      	b.n	8012a44 <RegionAS923LinkAdrReq+0x44>
+            status &= 0xFE; // Channel mask KO
+ 8012a7a:	2606      	movs	r6, #6
+ 8012a7c:	e000      	b.n	8012a80 <RegionAS923LinkAdrReq+0x80>
+            status &= 0xFE; // Channel mask KO
+ 8012a7e:	2606      	movs	r6, #6
+    while( bytesProcessed < linkAdrReq->PayloadSize )
+ 8012a80:	7a2b      	ldrb	r3, [r5, #8]
+ 8012a82:	42a3      	cmp	r3, r4
+ 8012a84:	d919      	bls.n	8012aba <RegionAS923LinkAdrReq+0xba>
+        nextIndex = RegionCommonParseLinkAdrReq( &( linkAdrReq->Payload[bytesProcessed] ), &linkAdrParams );
+ 8012a86:	6868      	ldr	r0, [r5, #4]
+ 8012a88:	a90c      	add	r1, sp, #48	; 0x30
+ 8012a8a:	4420      	add	r0, r4
+ 8012a8c:	f000 fc5a 	bl	8013344 <RegionCommonParseLinkAdrReq>
+        if( nextIndex == 0 )
+ 8012a90:	4603      	mov	r3, r0
+ 8012a92:	b190      	cbz	r0, 8012aba <RegionAS923LinkAdrReq+0xba>
+        bytesProcessed += nextIndex;
+ 8012a94:	4423      	add	r3, r4
+ 8012a96:	b2dc      	uxtb	r4, r3
+        chMask = linkAdrParams.ChMask;
+ 8012a98:	f8bd 2034 	ldrh.w	r2, [sp, #52]	; 0x34
+ 8012a9c:	f8ad 202e 	strh.w	r2, [sp, #46]	; 0x2e
+        if( ( linkAdrParams.ChMaskCtrl == 0 ) && ( chMask == 0 ) )
+ 8012aa0:	f89d 3033 	ldrb.w	r3, [sp, #51]	; 0x33
+ 8012aa4:	b90b      	cbnz	r3, 8012aaa <RegionAS923LinkAdrReq+0xaa>
+ 8012aa6:	2a00      	cmp	r2, #0
+ 8012aa8:	d0e7      	beq.n	8012a7a <RegionAS923LinkAdrReq+0x7a>
+        else if( ( ( linkAdrParams.ChMaskCtrl >= 1 ) && ( linkAdrParams.ChMaskCtrl <= 5 )) ||
+ 8012aaa:	1e5a      	subs	r2, r3, #1
+ 8012aac:	b2d2      	uxtb	r2, r2
+ 8012aae:	2a04      	cmp	r2, #4
+ 8012ab0:	d9e5      	bls.n	8012a7e <RegionAS923LinkAdrReq+0x7e>
+ 8012ab2:	2b06      	cmp	r3, #6
+ 8012ab4:	d9b3      	bls.n	8012a1e <RegionAS923LinkAdrReq+0x1e>
+            status &= 0xFE; // Channel mask KO
+ 8012ab6:	2606      	movs	r6, #6
+ 8012ab8:	e7e2      	b.n	8012a80 <RegionAS923LinkAdrReq+0x80>
+            }
+        }
+    }
+
+    // Get the minimum possible datarate
+    getPhy.Attribute = PHY_MIN_TX_DR;
+ 8012aba:	2302      	movs	r3, #2
+ 8012abc:	f88d 3028 	strb.w	r3, [sp, #40]	; 0x28
+    getPhy.UplinkDwellTime = linkAdrReq->UplinkDwellTime;
+ 8012ac0:	7a6b      	ldrb	r3, [r5, #9]
+ 8012ac2:	f88d 302a 	strb.w	r3, [sp, #42]	; 0x2a
+    phyParam = RegionAS923GetPhyParam( &getPhy );
+ 8012ac6:	a80a      	add	r0, sp, #40	; 0x28
+ 8012ac8:	f7ff fc54 	bl	8012374 <RegionAS923GetPhyParam>
+ 8012acc:	9009      	str	r0, [sp, #36]	; 0x24
+
+    linkAdrVerifyParams.Status = status;
+ 8012ace:	f88d 6008 	strb.w	r6, [sp, #8]
+    linkAdrVerifyParams.AdrEnabled = linkAdrReq->AdrEnabled;
+ 8012ad2:	7aab      	ldrb	r3, [r5, #10]
+ 8012ad4:	f88d 3009 	strb.w	r3, [sp, #9]
+    linkAdrVerifyParams.Datarate = linkAdrParams.Datarate;
+ 8012ad8:	f99d 3031 	ldrsb.w	r3, [sp, #49]	; 0x31
+ 8012adc:	f88d 300a 	strb.w	r3, [sp, #10]
+    linkAdrVerifyParams.TxPower = linkAdrParams.TxPower;
+ 8012ae0:	f99d 3032 	ldrsb.w	r3, [sp, #50]	; 0x32
+ 8012ae4:	f88d 300b 	strb.w	r3, [sp, #11]
+    linkAdrVerifyParams.NbRep = linkAdrParams.NbRep;
+ 8012ae8:	f89d 3030 	ldrb.w	r3, [sp, #48]	; 0x30
+ 8012aec:	f88d 300c 	strb.w	r3, [sp, #12]
+    linkAdrVerifyParams.CurrentDatarate = linkAdrReq->CurrentDatarate;
+ 8012af0:	f995 300b 	ldrsb.w	r3, [r5, #11]
+ 8012af4:	f88d 300d 	strb.w	r3, [sp, #13]
+    linkAdrVerifyParams.CurrentTxPower = linkAdrReq->CurrentTxPower;
+ 8012af8:	f995 300c 	ldrsb.w	r3, [r5, #12]
+ 8012afc:	f88d 300e 	strb.w	r3, [sp, #14]
+    linkAdrVerifyParams.CurrentNbRep = linkAdrReq->CurrentNbRep;
+ 8012b00:	f995 300d 	ldrsb.w	r3, [r5, #13]
+ 8012b04:	f88d 300f 	strb.w	r3, [sp, #15]
+    linkAdrVerifyParams.NbChannels = AS923_MAX_NB_CHANNELS;
+ 8012b08:	2310      	movs	r3, #16
+ 8012b0a:	f88d 3010 	strb.w	r3, [sp, #16]
+    linkAdrVerifyParams.ChannelsMask = &chMask;
+ 8012b0e:	f10d 032e 	add.w	r3, sp, #46	; 0x2e
+ 8012b12:	9305      	str	r3, [sp, #20]
+    linkAdrVerifyParams.MinDatarate = ( int8_t )phyParam.Value;
+ 8012b14:	f88d 0018 	strb.w	r0, [sp, #24]
+    linkAdrVerifyParams.MaxDatarate = AS923_TX_MAX_DATARATE;
+ 8012b18:	2307      	movs	r3, #7
+ 8012b1a:	f88d 3019 	strb.w	r3, [sp, #25]
+    linkAdrVerifyParams.Channels = RegionNvmGroup2->Channels;
+ 8012b1e:	4a1a      	ldr	r2, [pc, #104]	; (8012b88 <RegionAS923LinkAdrReq+0x188>)
+ 8012b20:	6812      	ldr	r2, [r2, #0]
+ 8012b22:	9207      	str	r2, [sp, #28]
+    linkAdrVerifyParams.MinTxPower = AS923_MIN_TX_POWER;
+ 8012b24:	f88d 3020 	strb.w	r3, [sp, #32]
+    linkAdrVerifyParams.MaxTxPower = AS923_MAX_TX_POWER;
+ 8012b28:	2300      	movs	r3, #0
+ 8012b2a:	f88d 3021 	strb.w	r3, [sp, #33]	; 0x21
+    linkAdrVerifyParams.Version = linkAdrReq->Version;
+ 8012b2e:	682b      	ldr	r3, [r5, #0]
+ 8012b30:	9301      	str	r3, [sp, #4]
+
+    // Verify the parameters and update, if necessary
+    status = RegionCommonLinkAdrReqVerifyParams( &linkAdrVerifyParams, &linkAdrParams.Datarate, &linkAdrParams.TxPower, &linkAdrParams.NbRep );
+ 8012b32:	ab0c      	add	r3, sp, #48	; 0x30
+ 8012b34:	f10d 0232 	add.w	r2, sp, #50	; 0x32
+ 8012b38:	f10d 0131 	add.w	r1, sp, #49	; 0x31
+ 8012b3c:	a801      	add	r0, sp, #4
+ 8012b3e:	f000 fc1f 	bl	8013380 <RegionCommonLinkAdrReqVerifyParams>
+ 8012b42:	4605      	mov	r5, r0
+
+    // Update channelsMask if everything is correct
+    if( status == 0x07 )
+ 8012b44:	2807      	cmp	r0, #7
+ 8012b46:	d010      	beq.n	8012b6a <RegionAS923LinkAdrReq+0x16a>
+        // Update the channels mask
+        RegionNvmGroup2->ChannelsMask[0] = chMask;
+    }
+
+    // Update status variables
+    *drOut = linkAdrParams.Datarate;
+ 8012b48:	f99d 3031 	ldrsb.w	r3, [sp, #49]	; 0x31
+ 8012b4c:	f889 3000 	strb.w	r3, [r9]
+    *txPowOut = linkAdrParams.TxPower;
+ 8012b50:	f99d 3032 	ldrsb.w	r3, [sp, #50]	; 0x32
+ 8012b54:	f888 3000 	strb.w	r3, [r8]
+    *nbRepOut = linkAdrParams.NbRep;
+ 8012b58:	f89d 3030 	ldrb.w	r3, [sp, #48]	; 0x30
+ 8012b5c:	703b      	strb	r3, [r7, #0]
+    *nbBytesParsed = bytesProcessed;
+ 8012b5e:	9b16      	ldr	r3, [sp, #88]	; 0x58
+ 8012b60:	701c      	strb	r4, [r3, #0]
+
+#endif /* REGION_AS923 */
+    return status;
+}
+ 8012b62:	4628      	mov	r0, r5
+ 8012b64:	b00f      	add	sp, #60	; 0x3c
+ 8012b66:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
+        memset1( ( uint8_t* ) RegionNvmGroup2->ChannelsMask, 0, sizeof( RegionNvmGroup2->ChannelsMask ) );
+ 8012b6a:	4e07      	ldr	r6, [pc, #28]	; (8012b88 <RegionAS923LinkAdrReq+0x188>)
+ 8012b6c:	6830      	ldr	r0, [r6, #0]
+ 8012b6e:	220c      	movs	r2, #12
+ 8012b70:	2100      	movs	r1, #0
+ 8012b72:	f500 6090 	add.w	r0, r0, #1152	; 0x480
+ 8012b76:	f001 fd28 	bl	80145ca <memset1>
+        RegionNvmGroup2->ChannelsMask[0] = chMask;
+ 8012b7a:	6833      	ldr	r3, [r6, #0]
+ 8012b7c:	f8bd 202e 	ldrh.w	r2, [sp, #46]	; 0x2e
+ 8012b80:	f8a3 2480 	strh.w	r2, [r3, #1152]	; 0x480
+ 8012b84:	e7e0      	b.n	8012b48 <RegionAS923LinkAdrReq+0x148>
+ 8012b86:	bf00      	nop
+ 8012b88:	2000262c 	.word	0x2000262c
+
+08012b8c <RegionAS923RxParamSetupReq>:
+
+uint8_t RegionAS923RxParamSetupReq( RxParamSetupReqParams_t* rxParamSetupReq )
+{
+ 8012b8c:	b538      	push	{r3, r4, r5, lr}
+ 8012b8e:	4604      	mov	r4, r0
+    uint8_t status = 0x07;
+#if defined( REGION_AS923 )
+
+    // Verify radio frequency
+    if( VerifyRfFreq( rxParamSetupReq->Frequency ) == false )
+ 8012b90:	6840      	ldr	r0, [r0, #4]
+ 8012b92:	f7ff fba9 	bl	80122e8 <VerifyRfFreq>
+ 8012b96:	b1a0      	cbz	r0, 8012bc2 <RegionAS923RxParamSetupReq+0x36>
+    uint8_t status = 0x07;
+ 8012b98:	2507      	movs	r5, #7
+    {
+        status &= 0xFE; // Channel frequency KO
+    }
+
+    // Verify datarate
+    if( RegionCommonValueInRange( rxParamSetupReq->Datarate, AS923_RX_MIN_DATARATE, AS923_RX_MAX_DATARATE ) == false )
+ 8012b9a:	2207      	movs	r2, #7
+ 8012b9c:	2100      	movs	r1, #0
+ 8012b9e:	f994 0000 	ldrsb.w	r0, [r4]
+ 8012ba2:	f000 faaa 	bl	80130fa <RegionCommonValueInRange>
+ 8012ba6:	b908      	cbnz	r0, 8012bac <RegionAS923RxParamSetupReq+0x20>
+    {
+        status &= 0xFD; // Datarate KO
+ 8012ba8:	f005 05fd 	and.w	r5, r5, #253	; 0xfd
+    }
+
+    // Verify datarate offset
+    if( RegionCommonValueInRange( rxParamSetupReq->DrOffset, AS923_MIN_RX1_DR_OFFSET, AS923_MAX_RX1_DR_OFFSET ) == false )
+ 8012bac:	2207      	movs	r2, #7
+ 8012bae:	2100      	movs	r1, #0
+ 8012bb0:	f994 0001 	ldrsb.w	r0, [r4, #1]
+ 8012bb4:	f000 faa1 	bl	80130fa <RegionCommonValueInRange>
+ 8012bb8:	b908      	cbnz	r0, 8012bbe <RegionAS923RxParamSetupReq+0x32>
+    {
+        status &= 0xFB; // Rx1DrOffset range KO
+ 8012bba:	f005 05fb 	and.w	r5, r5, #251	; 0xfb
+    }
+
+#endif /* REGION_AS923 */
+    return status;
+}
+ 8012bbe:	4628      	mov	r0, r5
+ 8012bc0:	bd38      	pop	{r3, r4, r5, pc}
+        status &= 0xFE; // Channel frequency KO
+ 8012bc2:	2506      	movs	r5, #6
+ 8012bc4:	e7e9      	b.n	8012b9a <RegionAS923RxParamSetupReq+0xe>
+
+08012bc6 <RegionAS923TxParamSetupReq>:
+
+int8_t RegionAS923TxParamSetupReq( TxParamSetupReqParams_t* txParamSetupReq )
+{
+    // Accept the request
+    return 0;
+}
+ 8012bc6:	2000      	movs	r0, #0
+ 8012bc8:	4770      	bx	lr
+	...
+
+08012bcc <RegionAS923DlChannelReq>:
+int8_t RegionAS923DlChannelReq( DlChannelReqParams_t* dlChannelReq )
+{
+    uint8_t status = 0x03;
+
+#if defined( REGION_AS923 )
+    if( dlChannelReq->ChannelId >= ( CHANNELS_MASK_SIZE * 16 ) )
+ 8012bcc:	7803      	ldrb	r3, [r0, #0]
+ 8012bce:	2b0f      	cmp	r3, #15
+ 8012bd0:	d901      	bls.n	8012bd6 <RegionAS923DlChannelReq+0xa>
+    {
+        return 0;
+ 8012bd2:	2000      	movs	r0, #0
+        RegionNvmGroup2->Channels[dlChannelReq->ChannelId].Rx1Frequency = dlChannelReq->Rx1Frequency;
+    }
+
+#endif /* REGION_AS923 */
+    return status;
+}
+ 8012bd4:	4770      	bx	lr
+{
+ 8012bd6:	b510      	push	{r4, lr}
+ 8012bd8:	4604      	mov	r4, r0
+    if( VerifyRfFreq( dlChannelReq->Rx1Frequency ) == false )
+ 8012bda:	6840      	ldr	r0, [r0, #4]
+ 8012bdc:	f7ff fb84 	bl	80122e8 <VerifyRfFreq>
+ 8012be0:	b170      	cbz	r0, 8012c00 <RegionAS923DlChannelReq+0x34>
+    uint8_t status = 0x03;
+ 8012be2:	2003      	movs	r0, #3
+    if( RegionNvmGroup2->Channels[dlChannelReq->ChannelId].Frequency == 0 )
+ 8012be4:	4b0b      	ldr	r3, [pc, #44]	; (8012c14 <RegionAS923DlChannelReq+0x48>)
+ 8012be6:	681a      	ldr	r2, [r3, #0]
+ 8012be8:	7823      	ldrb	r3, [r4, #0]
+ 8012bea:	eb03 0143 	add.w	r1, r3, r3, lsl #1
+ 8012bee:	f852 1021 	ldr.w	r1, [r2, r1, lsl #2]
+ 8012bf2:	b909      	cbnz	r1, 8012bf8 <RegionAS923DlChannelReq+0x2c>
+        status &= 0xFD;
+ 8012bf4:	f000 00fd 	and.w	r0, r0, #253	; 0xfd
+    if( status == 0x03 )
+ 8012bf8:	2803      	cmp	r0, #3
+ 8012bfa:	d003      	beq.n	8012c04 <RegionAS923DlChannelReq+0x38>
+    return status;
+ 8012bfc:	b240      	sxtb	r0, r0
+}
+ 8012bfe:	bd10      	pop	{r4, pc}
+        status &= 0xFE;
+ 8012c00:	2002      	movs	r0, #2
+ 8012c02:	e7ef      	b.n	8012be4 <RegionAS923DlChannelReq+0x18>
+        RegionNvmGroup2->Channels[dlChannelReq->ChannelId].Rx1Frequency = dlChannelReq->Rx1Frequency;
+ 8012c04:	6861      	ldr	r1, [r4, #4]
+ 8012c06:	eb03 0343 	add.w	r3, r3, r3, lsl #1
+ 8012c0a:	eb02 0283 	add.w	r2, r2, r3, lsl #2
+ 8012c0e:	6051      	str	r1, [r2, #4]
+ 8012c10:	e7f4      	b.n	8012bfc <RegionAS923DlChannelReq+0x30>
+ 8012c12:	bf00      	nop
+ 8012c14:	2000262c 	.word	0x2000262c
+
+08012c18 <RegionAS923AlternateDr>:
+    // Only AS923_DWELL_LIMIT_DATARATE is supported
+    return AS923_DWELL_LIMIT_DATARATE;
+#else
+    return -1;
+#endif /* REGION_AS923 */
+}
+ 8012c18:	2002      	movs	r0, #2
+ 8012c1a:	4770      	bx	lr
+
+08012c1c <RegionAS923NextChannel>:
+
+LoRaMacStatus_t RegionAS923NextChannel( NextChanParams_t* nextChanParams, uint8_t* channel, TimerTime_t* time, TimerTime_t* aggregatedTimeOff )
+{
+ 8012c1c:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8012c1e:	b097      	sub	sp, #92	; 0x5c
+ 8012c20:	4604      	mov	r4, r0
+ 8012c22:	460f      	mov	r7, r1
+ 8012c24:	4616      	mov	r6, r2
+ 8012c26:	461d      	mov	r5, r3
+#if defined( REGION_AS923 )
+    uint8_t nbEnabledChannels = 0;
+ 8012c28:	2100      	movs	r1, #0
+ 8012c2a:	f88d 1057 	strb.w	r1, [sp, #87]	; 0x57
+    uint8_t nbRestrictedChannels = 0;
+ 8012c2e:	f88d 1056 	strb.w	r1, [sp, #86]	; 0x56
+    uint8_t enabledChannels[AS923_MAX_NB_CHANNELS] = { 0 };
+ 8012c32:	9111      	str	r1, [sp, #68]	; 0x44
+ 8012c34:	9112      	str	r1, [sp, #72]	; 0x48
+ 8012c36:	9113      	str	r1, [sp, #76]	; 0x4c
+ 8012c38:	9114      	str	r1, [sp, #80]	; 0x50
+    RegionCommonIdentifyChannelsParam_t identifyChannelsParam;
+    RegionCommonCountNbOfEnabledChannelsParams_t countChannelsParams;
+    LoRaMacStatus_t status = LORAMAC_STATUS_NO_CHANNEL_FOUND;
+    uint16_t joinChannels = AS923_JOIN_CHANNELS;
+ 8012c3a:	2303      	movs	r3, #3
+ 8012c3c:	f8ad 300a 	strh.w	r3, [sp, #10]
+
+    if( RegionCommonCountChannels( RegionNvmGroup2->ChannelsMask, 0, 1 ) == 0 )
+ 8012c40:	4b34      	ldr	r3, [pc, #208]	; (8012d14 <RegionAS923NextChannel+0xf8>)
+ 8012c42:	6818      	ldr	r0, [r3, #0]
+ 8012c44:	2201      	movs	r2, #1
+ 8012c46:	f500 6090 	add.w	r0, r0, #1152	; 0x480
+ 8012c4a:	f000 fab4 	bl	80131b6 <RegionCommonCountChannels>
+ 8012c4e:	b938      	cbnz	r0, 8012c60 <RegionAS923NextChannel+0x44>
+    { // Reactivate default channels
+        RegionNvmGroup2->ChannelsMask[0] |= LC( 1 ) + LC( 2 );
+ 8012c50:	4b30      	ldr	r3, [pc, #192]	; (8012d14 <RegionAS923NextChannel+0xf8>)
+ 8012c52:	681a      	ldr	r2, [r3, #0]
+ 8012c54:	f8b2 3480 	ldrh.w	r3, [r2, #1152]	; 0x480
+ 8012c58:	f043 0303 	orr.w	r3, r3, #3
+ 8012c5c:	f8a2 3480 	strh.w	r3, [r2, #1152]	; 0x480
+    }
+
+    // Search how many channels are enabled
+    countChannelsParams.Joined = nextChanParams->Joined;
+ 8012c60:	7a63      	ldrb	r3, [r4, #9]
+ 8012c62:	f88d 300c 	strb.w	r3, [sp, #12]
+    countChannelsParams.Datarate = nextChanParams->Datarate;
+ 8012c66:	7a23      	ldrb	r3, [r4, #8]
+ 8012c68:	f88d 300d 	strb.w	r3, [sp, #13]
+    countChannelsParams.ChannelsMask = RegionNvmGroup2->ChannelsMask;
+ 8012c6c:	4b29      	ldr	r3, [pc, #164]	; (8012d14 <RegionAS923NextChannel+0xf8>)
+ 8012c6e:	681b      	ldr	r3, [r3, #0]
+ 8012c70:	f503 6290 	add.w	r2, r3, #1152	; 0x480
+ 8012c74:	9204      	str	r2, [sp, #16]
+    countChannelsParams.Channels = RegionNvmGroup2->Channels;
+ 8012c76:	9305      	str	r3, [sp, #20]
+#if (defined( REGION_VERSION ) && ( REGION_VERSION == 0x01010003 ))
+    countChannelsParams.Bands = RegionNvmGroup1->Bands;
+ 8012c78:	4b27      	ldr	r3, [pc, #156]	; (8012d18 <RegionAS923NextChannel+0xfc>)
+ 8012c7a:	681b      	ldr	r3, [r3, #0]
+ 8012c7c:	9306      	str	r3, [sp, #24]
+#elif (defined( REGION_VERSION ) && ( REGION_VERSION == 0x02010001 ))
+    countChannelsParams.Bands = RegionBands;
+#endif /* REGION_VERSION */
+    countChannelsParams.MaxNbChannels = AS923_MAX_NB_CHANNELS;
+ 8012c7e:	2310      	movs	r3, #16
+ 8012c80:	f8ad 301c 	strh.w	r3, [sp, #28]
+    countChannelsParams.JoinChannels = &joinChannels;
+ 8012c84:	f10d 030a 	add.w	r3, sp, #10
+ 8012c88:	9308      	str	r3, [sp, #32]
+
+    identifyChannelsParam.AggrTimeOff = nextChanParams->AggrTimeOff;
+ 8012c8a:	6823      	ldr	r3, [r4, #0]
+ 8012c8c:	9309      	str	r3, [sp, #36]	; 0x24
+    identifyChannelsParam.LastAggrTx = nextChanParams->LastAggrTx;
+ 8012c8e:	6863      	ldr	r3, [r4, #4]
+ 8012c90:	930a      	str	r3, [sp, #40]	; 0x28
+    identifyChannelsParam.DutyCycleEnabled = nextChanParams->DutyCycleEnabled;
+ 8012c92:	7aa3      	ldrb	r3, [r4, #10]
+ 8012c94:	f88d 302c 	strb.w	r3, [sp, #44]	; 0x2c
+    identifyChannelsParam.MaxBands = AS923_MAX_NB_BANDS;
+ 8012c98:	2301      	movs	r3, #1
+ 8012c9a:	f88d 302d 	strb.w	r3, [sp, #45]	; 0x2d
+
+    identifyChannelsParam.ElapsedTimeSinceStartUp = nextChanParams->ElapsedTimeSinceStartUp;
+ 8012c9e:	ab0c      	add	r3, sp, #48	; 0x30
+ 8012ca0:	f104 020c 	add.w	r2, r4, #12
+ 8012ca4:	e892 0003 	ldmia.w	r2, {r0, r1}
+ 8012ca8:	e883 0003 	stmia.w	r3, {r0, r1}
+    identifyChannelsParam.LastTxIsJoinRequest = nextChanParams->LastTxIsJoinRequest;
+ 8012cac:	7d23      	ldrb	r3, [r4, #20]
+ 8012cae:	f88d 3038 	strb.w	r3, [sp, #56]	; 0x38
+    identifyChannelsParam.ExpectedTimeOnAir = GetTimeOnAir( nextChanParams->Datarate, nextChanParams->PktLen );
+ 8012cb2:	8ae1      	ldrh	r1, [r4, #22]
+ 8012cb4:	f994 0008 	ldrsb.w	r0, [r4, #8]
+ 8012cb8:	f7ff fb2a 	bl	8012310 <GetTimeOnAir>
+ 8012cbc:	900f      	str	r0, [sp, #60]	; 0x3c
+
+    identifyChannelsParam.CountNbOfEnabledChannelsParam = &countChannelsParams;
+ 8012cbe:	ab03      	add	r3, sp, #12
+ 8012cc0:	9310      	str	r3, [sp, #64]	; 0x40
+
+    status = RegionCommonIdentifyChannels( &identifyChannelsParam, aggregatedTimeOff, enabledChannels,
+ 8012cc2:	9601      	str	r6, [sp, #4]
+ 8012cc4:	f10d 0356 	add.w	r3, sp, #86	; 0x56
+ 8012cc8:	9300      	str	r3, [sp, #0]
+ 8012cca:	f10d 0357 	add.w	r3, sp, #87	; 0x57
+ 8012cce:	aa11      	add	r2, sp, #68	; 0x44
+ 8012cd0:	4629      	mov	r1, r5
+ 8012cd2:	a809      	add	r0, sp, #36	; 0x24
+ 8012cd4:	f000 fc71 	bl	80135ba <RegionCommonIdentifyChannels>
+                                           &nbEnabledChannels, &nbRestrictedChannels, time );
+
+    if( status == LORAMAC_STATUS_OK )
+ 8012cd8:	4604      	mov	r4, r0
+ 8012cda:	b120      	cbz	r0, 8012ce6 <RegionAS923NextChannel+0xca>
+#else
+        // We found a valid channel
+        *channel = enabledChannels[randr( 0, nbEnabledChannels - 1 )];
+#endif
+    }
+    else if( status == LORAMAC_STATUS_NO_CHANNEL_FOUND )
+ 8012cdc:	280c      	cmp	r0, #12
+ 8012cde:	d00f      	beq.n	8012d00 <RegionAS923NextChannel+0xe4>
+    }
+    return status;
+#else
+    return LORAMAC_STATUS_NO_CHANNEL_FOUND;
+#endif /* REGION_AS923 */
+}
+ 8012ce0:	4620      	mov	r0, r4
+ 8012ce2:	b017      	add	sp, #92	; 0x5c
+ 8012ce4:	bdf0      	pop	{r4, r5, r6, r7, pc}
+        *channel = enabledChannels[randr( 0, nbEnabledChannels - 1 )];
+ 8012ce6:	f89d 1057 	ldrb.w	r1, [sp, #87]	; 0x57
+ 8012cea:	3901      	subs	r1, #1
+ 8012cec:	f001 fc48 	bl	8014580 <randr>
+ 8012cf0:	f100 0358 	add.w	r3, r0, #88	; 0x58
+ 8012cf4:	eb0d 0003 	add.w	r0, sp, r3
+ 8012cf8:	f810 3c14 	ldrb.w	r3, [r0, #-20]
+ 8012cfc:	703b      	strb	r3, [r7, #0]
+ 8012cfe:	e7ef      	b.n	8012ce0 <RegionAS923NextChannel+0xc4>
+        RegionNvmGroup2->ChannelsMask[0] |= LC( 1 ) + LC( 2 );
+ 8012d00:	4b04      	ldr	r3, [pc, #16]	; (8012d14 <RegionAS923NextChannel+0xf8>)
+ 8012d02:	681a      	ldr	r2, [r3, #0]
+ 8012d04:	f8b2 3480 	ldrh.w	r3, [r2, #1152]	; 0x480
+ 8012d08:	f043 0303 	orr.w	r3, r3, #3
+ 8012d0c:	f8a2 3480 	strh.w	r3, [r2, #1152]	; 0x480
+ 8012d10:	e7e6      	b.n	8012ce0 <RegionAS923NextChannel+0xc4>
+ 8012d12:	bf00      	nop
+ 8012d14:	2000262c 	.word	0x2000262c
+ 8012d18:	20002628 	.word	0x20002628
+
+08012d1c <RegionAS923ChannelAdd>:
+
+LoRaMacStatus_t RegionAS923ChannelAdd( ChannelAddParams_t* channelAdd )
+{
+ 8012d1c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+#if defined( REGION_AS923 )
+    bool drInvalid = false;
+    bool freqInvalid = false;
+    uint8_t id = channelAdd->ChannelId;
+ 8012d1e:	7905      	ldrb	r5, [r0, #4]
+
+    if( id < AS923_NUMB_DEFAULT_CHANNELS )
+ 8012d20:	2d01      	cmp	r5, #1
+ 8012d22:	d94a      	bls.n	8012dba <RegionAS923ChannelAdd+0x9e>
+ 8012d24:	4604      	mov	r4, r0
+    {
+        return LORAMAC_STATUS_FREQ_AND_DR_INVALID;
+    }
+
+    if( id >= AS923_MAX_NB_CHANNELS )
+ 8012d26:	2d0f      	cmp	r5, #15
+ 8012d28:	d849      	bhi.n	8012dbe <RegionAS923ChannelAdd+0xa2>
+    {
+        return LORAMAC_STATUS_PARAMETER_INVALID;
+    }
+
+    // Validate the datarate range
+    if( RegionCommonValueInRange( channelAdd->NewChannel->DrRange.Fields.Min, AS923_TX_MIN_DATARATE, AS923_TX_MAX_DATARATE ) == false )
+ 8012d2a:	6803      	ldr	r3, [r0, #0]
+ 8012d2c:	7a18      	ldrb	r0, [r3, #8]
+ 8012d2e:	f340 0003 	sbfx	r0, r0, #0, #4
+ 8012d32:	2207      	movs	r2, #7
+ 8012d34:	2100      	movs	r1, #0
+ 8012d36:	b240      	sxtb	r0, r0
+ 8012d38:	f000 f9df 	bl	80130fa <RegionCommonValueInRange>
+ 8012d3c:	2800      	cmp	r0, #0
+ 8012d3e:	d038      	beq.n	8012db2 <RegionAS923ChannelAdd+0x96>
+    bool drInvalid = false;
+ 8012d40:	2600      	movs	r6, #0
+    {
+        drInvalid = true;
+    }
+    if( RegionCommonValueInRange( channelAdd->NewChannel->DrRange.Fields.Max, AS923_TX_MIN_DATARATE, AS923_TX_MAX_DATARATE ) == false )
+ 8012d42:	6823      	ldr	r3, [r4, #0]
+ 8012d44:	7a18      	ldrb	r0, [r3, #8]
+ 8012d46:	f340 1003 	sbfx	r0, r0, #4, #4
+ 8012d4a:	2207      	movs	r2, #7
+ 8012d4c:	2100      	movs	r1, #0
+ 8012d4e:	b240      	sxtb	r0, r0
+ 8012d50:	f000 f9d3 	bl	80130fa <RegionCommonValueInRange>
+ 8012d54:	b900      	cbnz	r0, 8012d58 <RegionAS923ChannelAdd+0x3c>
+    {
+        drInvalid = true;
+ 8012d56:	2601      	movs	r6, #1
+    }
+    if( channelAdd->NewChannel->DrRange.Fields.Min > channelAdd->NewChannel->DrRange.Fields.Max )
+ 8012d58:	6821      	ldr	r1, [r4, #0]
+ 8012d5a:	7a0b      	ldrb	r3, [r1, #8]
+ 8012d5c:	f343 0203 	sbfx	r2, r3, #0, #4
+ 8012d60:	b252      	sxtb	r2, r2
+ 8012d62:	f343 1303 	sbfx	r3, r3, #4, #4
+ 8012d66:	b25b      	sxtb	r3, r3
+ 8012d68:	429a      	cmp	r2, r3
+ 8012d6a:	dd00      	ble.n	8012d6e <RegionAS923ChannelAdd+0x52>
+    {
+        drInvalid = true;
+ 8012d6c:	2601      	movs	r6, #1
+    }
+
+    // Check frequency
+    if( freqInvalid == false )
+    {
+        if( VerifyRfFreq( channelAdd->NewChannel->Frequency ) == false )
+ 8012d6e:	6808      	ldr	r0, [r1, #0]
+ 8012d70:	f7ff faba 	bl	80122e8 <VerifyRfFreq>
+ 8012d74:	b1f8      	cbz	r0, 8012db6 <RegionAS923ChannelAdd+0x9a>
+    bool freqInvalid = false;
+ 8012d76:	2300      	movs	r3, #0
+            freqInvalid = true;
+        }
+    }
+
+    // Check status
+    if( ( drInvalid == true ) && ( freqInvalid == true ) )
+ 8012d78:	b106      	cbz	r6, 8012d7c <RegionAS923ChannelAdd+0x60>
+ 8012d7a:	bb13      	cbnz	r3, 8012dc2 <RegionAS923ChannelAdd+0xa6>
+    {
+        return LORAMAC_STATUS_FREQ_AND_DR_INVALID;
+    }
+    if( drInvalid == true )
+ 8012d7c:	bb1e      	cbnz	r6, 8012dc6 <RegionAS923ChannelAdd+0xaa>
+    {
+        return LORAMAC_STATUS_DATARATE_INVALID;
+    }
+    if( freqInvalid == true )
+ 8012d7e:	bb23      	cbnz	r3, 8012dca <RegionAS923ChannelAdd+0xae>
+    {
+        return LORAMAC_STATUS_FREQUENCY_INVALID;
+    }
+
+    memcpy1( ( uint8_t* ) &(RegionNvmGroup2->Channels[id]), ( uint8_t* ) channelAdd->NewChannel, sizeof( RegionNvmGroup2->Channels[id] ) );
+ 8012d80:	4f13      	ldr	r7, [pc, #76]	; (8012dd0 <RegionAS923ChannelAdd+0xb4>)
+ 8012d82:	683b      	ldr	r3, [r7, #0]
+ 8012d84:	006e      	lsls	r6, r5, #1
+ 8012d86:	eb05 0045 	add.w	r0, r5, r5, lsl #1
+ 8012d8a:	220c      	movs	r2, #12
+ 8012d8c:	6821      	ldr	r1, [r4, #0]
+ 8012d8e:	eb03 0080 	add.w	r0, r3, r0, lsl #2
+ 8012d92:	f001 fc02 	bl	801459a <memcpy1>
+    RegionNvmGroup2->Channels[id].Band = 0;
+ 8012d96:	683a      	ldr	r2, [r7, #0]
+ 8012d98:	442e      	add	r6, r5
+ 8012d9a:	eb02 0686 	add.w	r6, r2, r6, lsl #2
+ 8012d9e:	2000      	movs	r0, #0
+ 8012da0:	7270      	strb	r0, [r6, #9]
+    RegionNvmGroup2->ChannelsMask[0] |= ( 1 << id );
+ 8012da2:	2301      	movs	r3, #1
+ 8012da4:	40ab      	lsls	r3, r5
+ 8012da6:	f8b2 1480 	ldrh.w	r1, [r2, #1152]	; 0x480
+ 8012daa:	430b      	orrs	r3, r1
+ 8012dac:	f8a2 3480 	strh.w	r3, [r2, #1152]	; 0x480
+    return LORAMAC_STATUS_OK;
+ 8012db0:	e006      	b.n	8012dc0 <RegionAS923ChannelAdd+0xa4>
+        drInvalid = true;
+ 8012db2:	2601      	movs	r6, #1
+ 8012db4:	e7c5      	b.n	8012d42 <RegionAS923ChannelAdd+0x26>
+            freqInvalid = true;
+ 8012db6:	2301      	movs	r3, #1
+ 8012db8:	e7de      	b.n	8012d78 <RegionAS923ChannelAdd+0x5c>
+        return LORAMAC_STATUS_FREQ_AND_DR_INVALID;
+ 8012dba:	2006      	movs	r0, #6
+ 8012dbc:	e000      	b.n	8012dc0 <RegionAS923ChannelAdd+0xa4>
+        return LORAMAC_STATUS_PARAMETER_INVALID;
+ 8012dbe:	2003      	movs	r0, #3
+#else
+    return LORAMAC_STATUS_NO_CHANNEL_FOUND;
+#endif /* REGION_AS923 */
+}
+ 8012dc0:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+        return LORAMAC_STATUS_FREQ_AND_DR_INVALID;
+ 8012dc2:	2006      	movs	r0, #6
+ 8012dc4:	e7fc      	b.n	8012dc0 <RegionAS923ChannelAdd+0xa4>
+        return LORAMAC_STATUS_DATARATE_INVALID;
+ 8012dc6:	2005      	movs	r0, #5
+ 8012dc8:	e7fa      	b.n	8012dc0 <RegionAS923ChannelAdd+0xa4>
+        return LORAMAC_STATUS_FREQUENCY_INVALID;
+ 8012dca:	2004      	movs	r0, #4
+ 8012dcc:	e7f8      	b.n	8012dc0 <RegionAS923ChannelAdd+0xa4>
+ 8012dce:	bf00      	nop
+ 8012dd0:	2000262c 	.word	0x2000262c
+
+08012dd4 <RegionAS923ChannelsRemove>:
+
+bool RegionAS923ChannelsRemove( ChannelRemoveParams_t* channelRemove  )
+{
+#if defined( REGION_AS923 )
+    uint8_t id = channelRemove->ChannelId;
+ 8012dd4:	7801      	ldrb	r1, [r0, #0]
+
+    if( id < AS923_NUMB_DEFAULT_CHANNELS )
+ 8012dd6:	2901      	cmp	r1, #1
+ 8012dd8:	d913      	bls.n	8012e02 <RegionAS923ChannelsRemove+0x2e>
+{
+ 8012dda:	b508      	push	{r3, lr}
+    {
+        return false;
+    }
+
+    // Remove the channel from the list of channels
+    RegionNvmGroup2->Channels[id] = ( ChannelParams_t ){ 0, 0, { 0 }, 0 };
+ 8012ddc:	4b0a      	ldr	r3, [pc, #40]	; (8012e08 <RegionAS923ChannelsRemove+0x34>)
+ 8012dde:	6818      	ldr	r0, [r3, #0]
+ 8012de0:	eb01 0341 	add.w	r3, r1, r1, lsl #1
+ 8012de4:	ea4f 0c83 	mov.w	ip, r3, lsl #2
+ 8012de8:	eb00 0383 	add.w	r3, r0, r3, lsl #2
+ 8012dec:	2200      	movs	r2, #0
+ 8012dee:	f840 200c 	str.w	r2, [r0, ip]
+ 8012df2:	605a      	str	r2, [r3, #4]
+ 8012df4:	609a      	str	r2, [r3, #8]
+
+    return RegionCommonChanDisable( RegionNvmGroup2->ChannelsMask, id, AS923_MAX_NB_CHANNELS );
+ 8012df6:	2210      	movs	r2, #16
+ 8012df8:	f500 6090 	add.w	r0, r0, #1152	; 0x480
+ 8012dfc:	f000 f9bf 	bl	801317e <RegionCommonChanDisable>
+#else
+    return false;
+#endif /* REGION_AS923 */
+}
+ 8012e00:	bd08      	pop	{r3, pc}
+        return false;
+ 8012e02:	2000      	movs	r0, #0
+}
+ 8012e04:	4770      	bx	lr
+ 8012e06:	bf00      	nop
+ 8012e08:	2000262c 	.word	0x2000262c
+
+08012e0c <RegionAS923ApplyCFList>:
+{
+ 8012e0c:	b570      	push	{r4, r5, r6, lr}
+ 8012e0e:	b086      	sub	sp, #24
+    newChannel.DrRange.Value = ( DR_5 << 4 ) | DR_0;
+ 8012e10:	2350      	movs	r3, #80	; 0x50
+ 8012e12:	f88d 3014 	strb.w	r3, [sp, #20]
+    if( applyCFList->Size != 16 )
+ 8012e16:	7903      	ldrb	r3, [r0, #4]
+ 8012e18:	2b10      	cmp	r3, #16
+ 8012e1a:	d136      	bne.n	8012e8a <RegionAS923ApplyCFList+0x7e>
+ 8012e1c:	4606      	mov	r6, r0
+    if( applyCFList->Payload[15] != 0 )
+ 8012e1e:	6803      	ldr	r3, [r0, #0]
+ 8012e20:	7bdd      	ldrb	r5, [r3, #15]
+ 8012e22:	2d00      	cmp	r5, #0
+ 8012e24:	d131      	bne.n	8012e8a <RegionAS923ApplyCFList+0x7e>
+    for( uint8_t i = 0, chanIdx = AS923_NUMB_DEFAULT_CHANNELS; chanIdx < AS923_MAX_NB_CHANNELS; i+=3, chanIdx++ )
+ 8012e26:	2402      	movs	r4, #2
+ 8012e28:	e01b      	b.n	8012e62 <RegionAS923ApplyCFList+0x56>
+            newChannel.Frequency = (uint32_t) applyCFList->Payload[i];
+ 8012e2a:	6832      	ldr	r2, [r6, #0]
+ 8012e2c:	5d53      	ldrb	r3, [r2, r5]
+ 8012e2e:	9303      	str	r3, [sp, #12]
+            newChannel.Frequency |= ( (uint32_t) applyCFList->Payload[i + 1] << 8 );
+ 8012e30:	442a      	add	r2, r5
+ 8012e32:	7851      	ldrb	r1, [r2, #1]
+ 8012e34:	ea43 2301 	orr.w	r3, r3, r1, lsl #8
+ 8012e38:	9303      	str	r3, [sp, #12]
+            newChannel.Frequency |= ( (uint32_t) applyCFList->Payload[i + 2] << 16 );
+ 8012e3a:	7892      	ldrb	r2, [r2, #2]
+ 8012e3c:	ea43 4302 	orr.w	r3, r3, r2, lsl #16
+ 8012e40:	9303      	str	r3, [sp, #12]
+            newChannel.Frequency *= 100;
+ 8012e42:	2264      	movs	r2, #100	; 0x64
+ 8012e44:	fb02 f303 	mul.w	r3, r2, r3
+ 8012e48:	9303      	str	r3, [sp, #12]
+            newChannel.Rx1Frequency = 0;
+ 8012e4a:	2300      	movs	r3, #0
+ 8012e4c:	9304      	str	r3, [sp, #16]
+ 8012e4e:	e011      	b.n	8012e74 <RegionAS923ApplyCFList+0x68>
+            channelRemove.ChannelId = chanIdx;
+ 8012e50:	f88d 4000 	strb.w	r4, [sp]
+            RegionAS923ChannelsRemove( &channelRemove );
+ 8012e54:	4668      	mov	r0, sp
+ 8012e56:	f7ff ffbd 	bl	8012dd4 <RegionAS923ChannelsRemove>
+    for( uint8_t i = 0, chanIdx = AS923_NUMB_DEFAULT_CHANNELS; chanIdx < AS923_MAX_NB_CHANNELS; i+=3, chanIdx++ )
+ 8012e5a:	3503      	adds	r5, #3
+ 8012e5c:	b2ed      	uxtb	r5, r5
+ 8012e5e:	3401      	adds	r4, #1
+ 8012e60:	b2e4      	uxtb	r4, r4
+ 8012e62:	2c0f      	cmp	r4, #15
+ 8012e64:	d811      	bhi.n	8012e8a <RegionAS923ApplyCFList+0x7e>
+        if( chanIdx < ( AS923_NUMB_CHANNELS_CF_LIST + AS923_NUMB_DEFAULT_CHANNELS ) )
+ 8012e66:	2c06      	cmp	r4, #6
+ 8012e68:	d9df      	bls.n	8012e2a <RegionAS923ApplyCFList+0x1e>
+            newChannel.Frequency = 0;
+ 8012e6a:	2300      	movs	r3, #0
+ 8012e6c:	9303      	str	r3, [sp, #12]
+            newChannel.DrRange.Value = 0;
+ 8012e6e:	f88d 3014 	strb.w	r3, [sp, #20]
+            newChannel.Rx1Frequency = 0;
+ 8012e72:	9304      	str	r3, [sp, #16]
+        if( newChannel.Frequency != 0 )
+ 8012e74:	9b03      	ldr	r3, [sp, #12]
+ 8012e76:	2b00      	cmp	r3, #0
+ 8012e78:	d0ea      	beq.n	8012e50 <RegionAS923ApplyCFList+0x44>
+            channelAdd.NewChannel = &newChannel;
+ 8012e7a:	ab03      	add	r3, sp, #12
+ 8012e7c:	9301      	str	r3, [sp, #4]
+            channelAdd.ChannelId = chanIdx;
+ 8012e7e:	f88d 4008 	strb.w	r4, [sp, #8]
+            RegionAS923ChannelAdd( &channelAdd );
+ 8012e82:	a801      	add	r0, sp, #4
+ 8012e84:	f7ff ff4a 	bl	8012d1c <RegionAS923ChannelAdd>
+ 8012e88:	e7e7      	b.n	8012e5a <RegionAS923ApplyCFList+0x4e>
+}
+ 8012e8a:	b006      	add	sp, #24
+ 8012e8c:	bd70      	pop	{r4, r5, r6, pc}
+
+08012e8e <RegionAS923NewChannelReq>:
+{
+ 8012e8e:	b500      	push	{lr}
+ 8012e90:	b085      	sub	sp, #20
+    if( newChannelReq->NewChannel->Frequency == 0 )
+ 8012e92:	6803      	ldr	r3, [r0, #0]
+ 8012e94:	681a      	ldr	r2, [r3, #0]
+ 8012e96:	b952      	cbnz	r2, 8012eae <RegionAS923NewChannelReq+0x20>
+        channelRemove.ChannelId = newChannelReq->ChannelId;
+ 8012e98:	7903      	ldrb	r3, [r0, #4]
+ 8012e9a:	f88d 3004 	strb.w	r3, [sp, #4]
+        if( RegionAS923ChannelsRemove( &channelRemove ) == false )
+ 8012e9e:	a801      	add	r0, sp, #4
+ 8012ea0:	f7ff ff98 	bl	8012dd4 <RegionAS923ChannelsRemove>
+ 8012ea4:	b1d0      	cbz	r0, 8012edc <RegionAS923NewChannelReq+0x4e>
+    uint8_t status = 0x03;
+ 8012ea6:	2003      	movs	r0, #3
+}
+ 8012ea8:	b005      	add	sp, #20
+ 8012eaa:	f85d fb04 	ldr.w	pc, [sp], #4
+        channelAdd.NewChannel = newChannelReq->NewChannel;
+ 8012eae:	9302      	str	r3, [sp, #8]
+        channelAdd.ChannelId = newChannelReq->ChannelId;
+ 8012eb0:	7903      	ldrb	r3, [r0, #4]
+ 8012eb2:	f88d 300c 	strb.w	r3, [sp, #12]
+        switch( RegionAS923ChannelAdd( &channelAdd ) )
+ 8012eb6:	a802      	add	r0, sp, #8
+ 8012eb8:	f7ff ff30 	bl	8012d1c <RegionAS923ChannelAdd>
+ 8012ebc:	2806      	cmp	r0, #6
+ 8012ebe:	d80b      	bhi.n	8012ed8 <RegionAS923NewChannelReq+0x4a>
+ 8012ec0:	e8df f000 	tbb	[pc, r0]
+ 8012ec4:	0a0a0a04 	.word	0x0a0a0a04
+ 8012ec8:	060e      	.short	0x060e
+ 8012eca:	08          	.byte	0x08
+ 8012ecb:	00          	.byte	0x00
+ 8012ecc:	2003      	movs	r0, #3
+ 8012ece:	e7eb      	b.n	8012ea8 <RegionAS923NewChannelReq+0x1a>
+                status &= 0xFD;
+ 8012ed0:	2001      	movs	r0, #1
+                break;
+ 8012ed2:	e7e9      	b.n	8012ea8 <RegionAS923NewChannelReq+0x1a>
+                status &= 0xFC;
+ 8012ed4:	2000      	movs	r0, #0
+                break;
+ 8012ed6:	e7e7      	b.n	8012ea8 <RegionAS923NewChannelReq+0x1a>
+                status &= 0xFC;
+ 8012ed8:	2000      	movs	r0, #0
+                break;
+ 8012eda:	e7e5      	b.n	8012ea8 <RegionAS923NewChannelReq+0x1a>
+            status &= 0xFC;
+ 8012edc:	2000      	movs	r0, #0
+ 8012ede:	e7e3      	b.n	8012ea8 <RegionAS923NewChannelReq+0x1a>
+                status &= 0xFE;
+ 8012ee0:	2002      	movs	r0, #2
+ 8012ee2:	e7e1      	b.n	8012ea8 <RegionAS923NewChannelReq+0x1a>
+
+08012ee4 <RegionAS923SetContinuousWave>:
+
+#if (defined( REGION_VERSION ) && ( REGION_VERSION == 0x01010003 ))
+void RegionAS923SetContinuousWave( ContinuousWaveParams_t* continuousWave )
+{
+ 8012ee4:	b538      	push	{r3, r4, r5, lr}
+ 8012ee6:	4604      	mov	r4, r0
+#if defined( REGION_AS923 )
+    int8_t txPowerLimited = RegionCommonLimitTxPower( continuousWave->TxPower, RegionNvmGroup1->Bands[RegionNvmGroup2->Channels[continuousWave->Channel].Band].TxMaxPower );
+ 8012ee8:	4b12      	ldr	r3, [pc, #72]	; (8012f34 <RegionAS923SetContinuousWave+0x50>)
+ 8012eea:	681a      	ldr	r2, [r3, #0]
+ 8012eec:	4d12      	ldr	r5, [pc, #72]	; (8012f38 <RegionAS923SetContinuousWave+0x54>)
+ 8012eee:	6829      	ldr	r1, [r5, #0]
+ 8012ef0:	7803      	ldrb	r3, [r0, #0]
+ 8012ef2:	eb03 0343 	add.w	r3, r3, r3, lsl #1
+ 8012ef6:	eb01 0183 	add.w	r1, r1, r3, lsl #2
+ 8012efa:	7a4b      	ldrb	r3, [r1, #9]
+ 8012efc:	eb03 0343 	add.w	r3, r3, r3, lsl #1
+ 8012f00:	eb02 03c3 	add.w	r3, r2, r3, lsl #3
+ 8012f04:	f993 1002 	ldrsb.w	r1, [r3, #2]
+ 8012f08:	f990 0002 	ldrsb.w	r0, [r0, #2]
+ 8012f0c:	f000 fbbe 	bl	801368c <RegionCommonLimitTxPower>
+    int8_t phyTxPower = 0;
+    uint32_t frequency = RegionNvmGroup2->Channels[continuousWave->Channel].Frequency;
+ 8012f10:	682a      	ldr	r2, [r5, #0]
+ 8012f12:	7823      	ldrb	r3, [r4, #0]
+ 8012f14:	eb03 0343 	add.w	r3, r3, r3, lsl #1
+ 8012f18:	f852 5023 	ldr.w	r5, [r2, r3, lsl #2]
+
+    // Calculate physical TX power
+    phyTxPower = RegionCommonComputeTxPower( txPowerLimited, continuousWave->MaxEirp, continuousWave->AntennaGain );
+ 8012f1c:	68a2      	ldr	r2, [r4, #8]
+ 8012f1e:	6861      	ldr	r1, [r4, #4]
+ 8012f20:	f000 fad0 	bl	80134c4 <RegionCommonComputeTxPower>
+ 8012f24:	4601      	mov	r1, r0
+
+    Radio.SetTxContinuousWave( frequency, phyTxPower, continuousWave->Timeout );
+ 8012f26:	4b05      	ldr	r3, [pc, #20]	; (8012f3c <RegionAS923SetContinuousWave+0x58>)
+ 8012f28:	6bdb      	ldr	r3, [r3, #60]	; 0x3c
+ 8012f2a:	89a2      	ldrh	r2, [r4, #12]
+ 8012f2c:	4628      	mov	r0, r5
+ 8012f2e:	4798      	blx	r3
+#endif /* REGION_AS923 */
+}
+ 8012f30:	bd38      	pop	{r3, r4, r5, pc}
+ 8012f32:	bf00      	nop
+ 8012f34:	20002628 	.word	0x20002628
+ 8012f38:	2000262c 	.word	0x2000262c
+ 8012f3c:	08018cb4 	.word	0x08018cb4
+
+08012f40 <RegionAS923ApplyDrOffset>:
+#if defined( REGION_AS923 )
+    // Initialize minDr for a downlink dwell time configuration of 0
+    int8_t minDr = DR_0;
+
+    // Update the minDR for a downlink dwell time configuration of 1
+    if( downlinkDwellTime == 1 )
+ 8012f40:	2801      	cmp	r0, #1
+ 8012f42:	d00b      	beq.n	8012f5c <RegionAS923ApplyDrOffset+0x1c>
+    int8_t minDr = DR_0;
+ 8012f44:	2000      	movs	r0, #0
+    {
+        minDr = AS923_DWELL_LIMIT_DATARATE;
+    }
+
+    // Apply offset formula
+    return MIN( DR_5, MAX( minDr, dr - EffectiveRx1DrOffsetAS923[drOffset] ) );
+ 8012f46:	4b06      	ldr	r3, [pc, #24]	; (8012f60 <RegionAS923ApplyDrOffset+0x20>)
+ 8012f48:	569b      	ldrsb	r3, [r3, r2]
+ 8012f4a:	1ac9      	subs	r1, r1, r3
+ 8012f4c:	4288      	cmp	r0, r1
+ 8012f4e:	bfb8      	it	lt
+ 8012f50:	4608      	movlt	r0, r1
+ 8012f52:	2805      	cmp	r0, #5
+ 8012f54:	bfa8      	it	ge
+ 8012f56:	2005      	movge	r0, #5
+#else
+    return 0;
+#endif /* REGION_AS923 */
+
+}
+ 8012f58:	b2c0      	uxtb	r0, r0
+ 8012f5a:	4770      	bx	lr
+        minDr = AS923_DWELL_LIMIT_DATARATE;
+ 8012f5c:	2002      	movs	r0, #2
+ 8012f5e:	e7f2      	b.n	8012f46 <RegionAS923ApplyDrOffset+0x6>
+ 8012f60:	08018688 	.word	0x08018688
+
+08012f64 <GetDutyCycle>:
+#ifdef MW_LOG_ENABLED
+static const char *EventRXSlotStrings[] = { "1", "2", "C", "Multi_C", "P", "Multi_P" };
+#endif
+
+static uint16_t GetDutyCycle( Band_t* band, bool joined, SysTime_t elapsedTimeSinceStartup )
+{
+ 8012f64:	b082      	sub	sp, #8
+ 8012f66:	f10d 0c08 	add.w	ip, sp, #8
+ 8012f6a:	e90c 000c 	stmdb	ip, {r2, r3}
+    uint16_t dutyCycle = band->DCycle;
+ 8012f6e:	8800      	ldrh	r0, [r0, #0]
+
+    if( joined == false )
+ 8012f70:	b971      	cbnz	r1, 8012f90 <GetDutyCycle+0x2c>
+    {
+        uint16_t joinDutyCycle = BACKOFF_DC_24_HOURS;
+
+        if( elapsedTimeSinceStartup.Seconds < BACKOFF_DUTY_CYCLE_1_HOUR_IN_S )
+ 8012f72:	4613      	mov	r3, r2
+ 8012f74:	f5b2 6f61 	cmp.w	r2, #3600	; 0xe10
+ 8012f78:	d306      	bcc.n	8012f88 <GetDutyCycle+0x24>
+        {
+            joinDutyCycle = BACKOFF_DC_1_HOUR;
+        }
+        else if( elapsedTimeSinceStartup.Seconds < BACKOFF_DUTY_CYCLE_10_HOURS_IN_S )
+ 8012f7a:	f649 22af 	movw	r2, #39599	; 0x9aaf
+ 8012f7e:	4293      	cmp	r3, r2
+ 8012f80:	d80a      	bhi.n	8012f98 <GetDutyCycle+0x34>
+        {
+            joinDutyCycle = BACKOFF_DC_10_HOURS;
+ 8012f82:	f44f 737a 	mov.w	r3, #1000	; 0x3e8
+ 8012f86:	e000      	b.n	8012f8a <GetDutyCycle+0x26>
+            joinDutyCycle = BACKOFF_DC_1_HOUR;
+ 8012f88:	2364      	movs	r3, #100	; 0x64
+        else
+        {
+            joinDutyCycle = BACKOFF_DC_24_HOURS;
+        }
+        // Take the most restrictive duty cycle
+        dutyCycle = MAX( dutyCycle, joinDutyCycle );
+ 8012f8a:	4298      	cmp	r0, r3
+ 8012f8c:	bf38      	it	cc
+ 8012f8e:	4618      	movcc	r0, r3
+    }
+
+    // Prevent value of 0
+    if( dutyCycle == 0 )
+ 8012f90:	b900      	cbnz	r0, 8012f94 <GetDutyCycle+0x30>
+    {
+        dutyCycle = 1;
+ 8012f92:	2001      	movs	r0, #1
+    }
+
+    return dutyCycle;
+}
+ 8012f94:	b002      	add	sp, #8
+ 8012f96:	4770      	bx	lr
+            joinDutyCycle = BACKOFF_DC_24_HOURS;
+ 8012f98:	f242 7310 	movw	r3, #10000	; 0x2710
+ 8012f9c:	e7f5      	b.n	8012f8a <GetDutyCycle+0x26>
+
+08012f9e <CountChannels>:
+
+    return dutyCycle;
+}
+
+static uint8_t CountChannels( uint16_t mask, uint8_t nbBits )
+{
+ 8012f9e:	4684      	mov	ip, r0
+    uint8_t nbActiveBits = 0;
+
+    for( uint8_t j = 0; j < nbBits; j++ )
+ 8012fa0:	2300      	movs	r3, #0
+    uint8_t nbActiveBits = 0;
+ 8012fa2:	4618      	mov	r0, r3
+    for( uint8_t j = 0; j < nbBits; j++ )
+ 8012fa4:	e001      	b.n	8012faa <CountChannels+0xc>
+ 8012fa6:	3301      	adds	r3, #1
+ 8012fa8:	b2db      	uxtb	r3, r3
+ 8012faa:	428b      	cmp	r3, r1
+ 8012fac:	d207      	bcs.n	8012fbe <CountChannels+0x20>
+    {
+        if( ( mask & ( 1 << j ) ) == ( 1 << j ) )
+ 8012fae:	2201      	movs	r2, #1
+ 8012fb0:	409a      	lsls	r2, r3
+ 8012fb2:	ea32 020c 	bics.w	r2, r2, ip
+ 8012fb6:	d1f6      	bne.n	8012fa6 <CountChannels+0x8>
+        {
+            nbActiveBits++;
+ 8012fb8:	3001      	adds	r0, #1
+ 8012fba:	b2c0      	uxtb	r0, r0
+ 8012fbc:	e7f3      	b.n	8012fa6 <CountChannels+0x8>
+        }
+    }
+    return nbActiveBits;
+}
+ 8012fbe:	4770      	bx	lr
+
+08012fc0 <SetMaxTimeCredits>:
+{
+ 8012fc0:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
+ 8012fc4:	b089      	sub	sp, #36	; 0x24
+ 8012fc6:	4604      	mov	r4, r0
+ 8012fc8:	460e      	mov	r6, r1
+ 8012fca:	ad02      	add	r5, sp, #8
+ 8012fcc:	e885 000c 	stmia.w	r5, {r2, r3}
+ 8012fd0:	f89d 8040 	ldrb.w	r8, [sp, #64]	; 0x40
+ 8012fd4:	f89d 9044 	ldrb.w	r9, [sp, #68]	; 0x44
+    TimerTime_t elapsedTime = SysTimeToMs( elapsedTimeSinceStartup );
+ 8012fd8:	e895 0003 	ldmia.w	r5, {r0, r1}
+ 8012fdc:	f004 f848 	bl	8017070 <SysTimeToMs>
+ 8012fe0:	4607      	mov	r7, r0
+    SysTime_t timeDiff = { 0 };
+ 8012fe2:	2300      	movs	r3, #0
+ 8012fe4:	9304      	str	r3, [sp, #16]
+ 8012fe6:	9305      	str	r3, [sp, #20]
+    dutyCycle = GetDutyCycle( band, joined, elapsedTimeSinceStartup );
+ 8012fe8:	e895 000c 	ldmia.w	r5, {r2, r3}
+ 8012fec:	4631      	mov	r1, r6
+ 8012fee:	4620      	mov	r0, r4
+ 8012ff0:	f7ff ffb8 	bl	8012f64 <GetDutyCycle>
+ 8012ff4:	4605      	mov	r5, r0
+    if( joined == false )
+ 8012ff6:	2e00      	cmp	r6, #0
+ 8012ff8:	d14c      	bne.n	8013094 <SetMaxTimeCredits+0xd4>
+        if( dutyCycle == BACKOFF_DC_1_HOUR )
+ 8012ffa:	2864      	cmp	r0, #100	; 0x64
+ 8012ffc:	d025      	beq.n	801304a <SetMaxTimeCredits+0x8a>
+        else if( dutyCycle == BACKOFF_DC_10_HOURS )
+ 8012ffe:	f5b0 7f7a 	cmp.w	r0, #1000	; 0x3e8
+ 8013002:	d025      	beq.n	8013050 <SetMaxTimeCredits+0x90>
+            maxCredits = DUTY_CYCLE_TIME_PERIOD * 24;
+ 8013004:	4e27      	ldr	r6, [pc, #156]	; (80130a4 <SetMaxTimeCredits+0xe4>)
+        timeDiff = SysTimeSub( elapsedTimeSinceStartup, SysTimeFromMs( band->LastMaxCreditAssignTime ) );
+ 8013006:	68a1      	ldr	r1, [r4, #8]
+ 8013008:	a806      	add	r0, sp, #24
+ 801300a:	f004 f851 	bl	80170b0 <SysTimeFromMs>
+ 801300e:	9b07      	ldr	r3, [sp, #28]
+ 8013010:	9300      	str	r3, [sp, #0]
+ 8013012:	9b06      	ldr	r3, [sp, #24]
+ 8013014:	aa02      	add	r2, sp, #8
+ 8013016:	ca06      	ldmia	r2, {r1, r2}
+ 8013018:	a804      	add	r0, sp, #16
+ 801301a:	f003 ffb0 	bl	8016f7e <SysTimeSub>
+        if( ( ( dutyCycleEnabled == false ) && ( lastTxIsJoinRequest == false ) ) ||
+ 801301e:	f1b8 0f00 	cmp.w	r8, #0
+ 8013022:	d102      	bne.n	801302a <SetMaxTimeCredits+0x6a>
+ 8013024:	f1b9 0f00 	cmp.w	r9, #0
+ 8013028:	d002      	beq.n	8013030 <SetMaxTimeCredits+0x70>
+            ( band->MaxTimeCredits != maxCredits ) ||
+ 801302a:	6923      	ldr	r3, [r4, #16]
+        if( ( ( dutyCycleEnabled == false ) && ( lastTxIsJoinRequest == false ) ) ||
+ 801302c:	42b3      	cmp	r3, r6
+ 801302e:	d012      	beq.n	8013056 <SetMaxTimeCredits+0x96>
+            band->TimeCredits = maxCredits;
+ 8013030:	60e6      	str	r6, [r4, #12]
+            if( elapsedTimeSinceStartup.Seconds >= BACKOFF_DUTY_CYCLE_24_HOURS_IN_S )
+ 8013032:	9b02      	ldr	r3, [sp, #8]
+ 8013034:	4a1c      	ldr	r2, [pc, #112]	; (80130a8 <SetMaxTimeCredits+0xe8>)
+ 8013036:	4293      	cmp	r3, r2
+ 8013038:	d812      	bhi.n	8013060 <SetMaxTimeCredits+0xa0>
+    if( band->LastBandUpdateTime == 0 )
+ 801303a:	6863      	ldr	r3, [r4, #4]
+ 801303c:	b903      	cbnz	r3, 8013040 <SetMaxTimeCredits+0x80>
+        band->TimeCredits = maxCredits;
+ 801303e:	60e6      	str	r6, [r4, #12]
+    band->MaxTimeCredits = maxCredits;
+ 8013040:	6126      	str	r6, [r4, #16]
+}
+ 8013042:	4628      	mov	r0, r5
+ 8013044:	b009      	add	sp, #36	; 0x24
+ 8013046:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
+            band->LastMaxCreditAssignTime = elapsedTime;
+ 801304a:	60a7      	str	r7, [r4, #8]
+            maxCredits = DUTY_CYCLE_TIME_PERIOD;
+ 801304c:	4e17      	ldr	r6, [pc, #92]	; (80130ac <SetMaxTimeCredits+0xec>)
+ 801304e:	e7da      	b.n	8013006 <SetMaxTimeCredits+0x46>
+            band->LastMaxCreditAssignTime = elapsedTime;
+ 8013050:	60a7      	str	r7, [r4, #8]
+            maxCredits = DUTY_CYCLE_TIME_PERIOD * 10;
+ 8013052:	4e17      	ldr	r6, [pc, #92]	; (80130b0 <SetMaxTimeCredits+0xf0>)
+ 8013054:	e7d7      	b.n	8013006 <SetMaxTimeCredits+0x46>
+            ( band->MaxTimeCredits != maxCredits ) ||
+ 8013056:	9a04      	ldr	r2, [sp, #16]
+ 8013058:	4b16      	ldr	r3, [pc, #88]	; (80130b4 <SetMaxTimeCredits+0xf4>)
+ 801305a:	429a      	cmp	r2, r3
+ 801305c:	d9ed      	bls.n	801303a <SetMaxTimeCredits+0x7a>
+ 801305e:	e7e7      	b.n	8013030 <SetMaxTimeCredits+0x70>
+                timeDiff.Seconds = ( elapsedTimeSinceStartup.Seconds - BACKOFF_DUTY_CYCLE_24_HOURS_IN_S ) / BACKOFF_24_HOURS_IN_S;
+ 8013060:	f5a3 33f6 	sub.w	r3, r3, #125952	; 0x1ec00
+ 8013064:	3b30      	subs	r3, #48	; 0x30
+ 8013066:	4a14      	ldr	r2, [pc, #80]	; (80130b8 <SetMaxTimeCredits+0xf8>)
+ 8013068:	fba2 2303 	umull	r2, r3, r2, r3
+ 801306c:	0c1b      	lsrs	r3, r3, #16
+ 801306e:	9304      	str	r3, [sp, #16]
+                timeDiff.Seconds *= BACKOFF_24_HOURS_IN_S;
+ 8013070:	4a12      	ldr	r2, [pc, #72]	; (80130bc <SetMaxTimeCredits+0xfc>)
+ 8013072:	fb02 f303 	mul.w	r3, r2, r3
+ 8013076:	9304      	str	r3, [sp, #16]
+                timeDiff.Seconds += BACKOFF_DUTY_CYCLE_24_HOURS_IN_S;
+ 8013078:	f503 33f6 	add.w	r3, r3, #125952	; 0x1ec00
+ 801307c:	3330      	adds	r3, #48	; 0x30
+ 801307e:	9304      	str	r3, [sp, #16]
+                timeDiff.SubSeconds = 0;
+ 8013080:	2300      	movs	r3, #0
+ 8013082:	f8ad 3014 	strh.w	r3, [sp, #20]
+                band->LastMaxCreditAssignTime = SysTimeToMs( timeDiff );
+ 8013086:	ab04      	add	r3, sp, #16
+ 8013088:	e893 0003 	ldmia.w	r3, {r0, r1}
+ 801308c:	f003 fff0 	bl	8017070 <SysTimeToMs>
+ 8013090:	60a0      	str	r0, [r4, #8]
+ 8013092:	e7d2      	b.n	801303a <SetMaxTimeCredits+0x7a>
+        if( dutyCycleEnabled == false )
+ 8013094:	f1b8 0f00 	cmp.w	r8, #0
+ 8013098:	d102      	bne.n	80130a0 <SetMaxTimeCredits+0xe0>
+            band->TimeCredits = maxCredits;
+ 801309a:	4e04      	ldr	r6, [pc, #16]	; (80130ac <SetMaxTimeCredits+0xec>)
+ 801309c:	60e6      	str	r6, [r4, #12]
+ 801309e:	e7cc      	b.n	801303a <SetMaxTimeCredits+0x7a>
+    TimerTime_t maxCredits = DUTY_CYCLE_TIME_PERIOD;
+ 80130a0:	4e02      	ldr	r6, [pc, #8]	; (80130ac <SetMaxTimeCredits+0xec>)
+ 80130a2:	e7ca      	b.n	801303a <SetMaxTimeCredits+0x7a>
+ 80130a4:	02932e00 	.word	0x02932e00
+ 80130a8:	0001ec2f 	.word	0x0001ec2f
+ 80130ac:	001b7740 	.word	0x001b7740
+ 80130b0:	0112a880 	.word	0x0112a880
+ 80130b4:	0001517f 	.word	0x0001517f
+ 80130b8:	c22e4507 	.word	0xc22e4507
+ 80130bc:	00015180 	.word	0x00015180
+
+080130c0 <UpdateTimeCredits>:
+{
+ 80130c0:	b570      	push	{r4, r5, r6, lr}
+ 80130c2:	b082      	sub	sp, #8
+ 80130c4:	4604      	mov	r4, r0
+ 80130c6:	460e      	mov	r6, r1
+    uint16_t dutyCycle = SetMaxTimeCredits( band, joined, elapsedTimeSinceStartup,
+ 80130c8:	9301      	str	r3, [sp, #4]
+ 80130ca:	9200      	str	r2, [sp, #0]
+ 80130cc:	ab06      	add	r3, sp, #24
+ 80130ce:	cb0c      	ldmia	r3, {r2, r3}
+ 80130d0:	f7ff ff76 	bl	8012fc0 <SetMaxTimeCredits>
+ 80130d4:	4605      	mov	r5, r0
+    if( joined == true )
+ 80130d6:	b94e      	cbnz	r6, 80130ec <UpdateTimeCredits+0x2c>
+    if( band->TimeCredits > band->MaxTimeCredits )
+ 80130d8:	68e2      	ldr	r2, [r4, #12]
+ 80130da:	6923      	ldr	r3, [r4, #16]
+ 80130dc:	429a      	cmp	r2, r3
+ 80130de:	d900      	bls.n	80130e2 <UpdateTimeCredits+0x22>
+        band->TimeCredits = band->MaxTimeCredits;
+ 80130e0:	60e3      	str	r3, [r4, #12]
+    band->LastBandUpdateTime = currentTime;
+ 80130e2:	9b08      	ldr	r3, [sp, #32]
+ 80130e4:	6063      	str	r3, [r4, #4]
+}
+ 80130e6:	4628      	mov	r0, r5
+ 80130e8:	b002      	add	sp, #8
+ 80130ea:	bd70      	pop	{r4, r5, r6, pc}
+        band->TimeCredits += TimerGetElapsedTime( band->LastBandUpdateTime );
+ 80130ec:	6860      	ldr	r0, [r4, #4]
+ 80130ee:	f004 f83f 	bl	8017170 <UTIL_TIMER_GetElapsedTime>
+ 80130f2:	68e3      	ldr	r3, [r4, #12]
+ 80130f4:	4403      	add	r3, r0
+ 80130f6:	60e3      	str	r3, [r4, #12]
+ 80130f8:	e7ee      	b.n	80130d8 <UpdateTimeCredits+0x18>
+
+080130fa <RegionCommonValueInRange>:
+    return false;
+}
+
+uint8_t RegionCommonValueInRange( int8_t value, int8_t min, int8_t max )
+{
+    if( ( value >= min ) && ( value <= max ) )
+ 80130fa:	4288      	cmp	r0, r1
+ 80130fc:	db03      	blt.n	8013106 <RegionCommonValueInRange+0xc>
+ 80130fe:	4290      	cmp	r0, r2
+ 8013100:	dd03      	ble.n	801310a <RegionCommonValueInRange+0x10>
+    {
+        return 1;
+    }
+    return 0;
+ 8013102:	2000      	movs	r0, #0
+ 8013104:	4770      	bx	lr
+ 8013106:	2000      	movs	r0, #0
+ 8013108:	4770      	bx	lr
+        return 1;
+ 801310a:	2001      	movs	r0, #1
+}
+ 801310c:	4770      	bx	lr
+
+0801310e <RegionCommonChanVerifyDr>:
+{
+ 801310e:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
+ 8013112:	4682      	mov	sl, r0
+ 8013114:	460e      	mov	r6, r1
+ 8013116:	4690      	mov	r8, r2
+ 8013118:	f8dd 9024 	ldr.w	r9, [sp, #36]	; 0x24
+    if( RegionCommonValueInRange( dr, minDr, maxDr ) == 0 )
+ 801311c:	f99d 2020 	ldrsb.w	r2, [sp, #32]
+ 8013120:	4619      	mov	r1, r3
+ 8013122:	4640      	mov	r0, r8
+ 8013124:	f7ff ffe9 	bl	80130fa <RegionCommonValueInRange>
+ 8013128:	b338      	cbz	r0, 801317a <RegionCommonChanVerifyDr+0x6c>
+    for( uint8_t i = 0, k = 0; i < nbChannels; i += 16, k++ )
+ 801312a:	2500      	movs	r5, #0
+ 801312c:	462f      	mov	r7, r5
+ 801312e:	e01e      	b.n	801316e <RegionCommonChanVerifyDr+0x60>
+        for( uint8_t j = 0; j < 16; j++ )
+ 8013130:	3401      	adds	r4, #1
+ 8013132:	b2e4      	uxtb	r4, r4
+ 8013134:	2c0f      	cmp	r4, #15
+ 8013136:	d816      	bhi.n	8013166 <RegionCommonChanVerifyDr+0x58>
+            if( ( ( channelsMask[k] & ( 1 << j ) ) != 0 ) )
+ 8013138:	f836 3015 	ldrh.w	r3, [r6, r5, lsl #1]
+ 801313c:	4123      	asrs	r3, r4
+ 801313e:	f013 0f01 	tst.w	r3, #1
+ 8013142:	d0f5      	beq.n	8013130 <RegionCommonChanVerifyDr+0x22>
+                if( RegionCommonValueInRange( dr, ( channels[i + j].DrRange.Fields.Min & 0x0F ),
+ 8013144:	193b      	adds	r3, r7, r4
+ 8013146:	eb03 0343 	add.w	r3, r3, r3, lsl #1
+ 801314a:	eb09 0383 	add.w	r3, r9, r3, lsl #2
+ 801314e:	7a19      	ldrb	r1, [r3, #8]
+ 8013150:	090a      	lsrs	r2, r1, #4
+ 8013152:	f001 010f 	and.w	r1, r1, #15
+ 8013156:	4640      	mov	r0, r8
+ 8013158:	f7ff ffcf 	bl	80130fa <RegionCommonValueInRange>
+ 801315c:	2801      	cmp	r0, #1
+ 801315e:	d1e7      	bne.n	8013130 <RegionCommonChanVerifyDr+0x22>
+                    return true;
+ 8013160:	2001      	movs	r0, #1
+}
+ 8013162:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+    for( uint8_t i = 0, k = 0; i < nbChannels; i += 16, k++ )
+ 8013166:	3710      	adds	r7, #16
+ 8013168:	b2ff      	uxtb	r7, r7
+ 801316a:	3501      	adds	r5, #1
+ 801316c:	b2ed      	uxtb	r5, r5
+ 801316e:	4557      	cmp	r7, sl
+ 8013170:	d201      	bcs.n	8013176 <RegionCommonChanVerifyDr+0x68>
+        for( uint8_t j = 0; j < 16; j++ )
+ 8013172:	2400      	movs	r4, #0
+ 8013174:	e7de      	b.n	8013134 <RegionCommonChanVerifyDr+0x26>
+    return false;
+ 8013176:	2000      	movs	r0, #0
+ 8013178:	e7f3      	b.n	8013162 <RegionCommonChanVerifyDr+0x54>
+        return false;
+ 801317a:	2000      	movs	r0, #0
+ 801317c:	e7f1      	b.n	8013162 <RegionCommonChanVerifyDr+0x54>
+
+0801317e <RegionCommonChanDisable>:
+
+bool RegionCommonChanDisable( uint16_t* channelsMask, uint8_t id, uint8_t maxChannels )
+{
+    uint8_t index = id / 16;
+
+    if( ( index > ( maxChannels / 16 ) ) || ( id >= maxChannels ) )
+ 801317e:	0913      	lsrs	r3, r2, #4
+ 8013180:	ebb3 1f11 	cmp.w	r3, r1, lsr #4
+ 8013184:	d313      	bcc.n	80131ae <RegionCommonChanDisable+0x30>
+{
+ 8013186:	b500      	push	{lr}
+ 8013188:	4684      	mov	ip, r0
+ 801318a:	ea4f 1e11 	mov.w	lr, r1, lsr #4
+    if( ( index > ( maxChannels / 16 ) ) || ( id >= maxChannels ) )
+ 801318e:	4291      	cmp	r1, r2
+ 8013190:	d20f      	bcs.n	80131b2 <RegionCommonChanDisable+0x34>
+    {
+        return false;
+    }
+
+    // Deactivate channel
+    channelsMask[index] &= ~( 1 << ( id % 16 ) );
+ 8013192:	f001 030f 	and.w	r3, r1, #15
+ 8013196:	2001      	movs	r0, #1
+ 8013198:	fa00 f303 	lsl.w	r3, r0, r3
+ 801319c:	43db      	mvns	r3, r3
+ 801319e:	b21b      	sxth	r3, r3
+ 80131a0:	f83c 201e 	ldrh.w	r2, [ip, lr, lsl #1]
+ 80131a4:	4013      	ands	r3, r2
+ 80131a6:	f82c 301e 	strh.w	r3, [ip, lr, lsl #1]
+
+    return true;
+}
+ 80131aa:	f85d fb04 	ldr.w	pc, [sp], #4
+        return false;
+ 80131ae:	2000      	movs	r0, #0
+}
+ 80131b0:	4770      	bx	lr
+        return false;
+ 80131b2:	2000      	movs	r0, #0
+ 80131b4:	e7f9      	b.n	80131aa <RegionCommonChanDisable+0x2c>
+
+080131b6 <RegionCommonCountChannels>:
+
+uint8_t RegionCommonCountChannels( uint16_t* channelsMask, uint8_t startIdx, uint8_t stopIdx )
+{
+ 80131b6:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+    uint8_t nbChannels = 0;
+
+    if( channelsMask == NULL )
+ 80131b8:	b188      	cbz	r0, 80131de <RegionCommonCountChannels+0x28>
+ 80131ba:	460c      	mov	r4, r1
+ 80131bc:	4616      	mov	r6, r2
+ 80131be:	4607      	mov	r7, r0
+    uint8_t nbChannels = 0;
+ 80131c0:	2500      	movs	r5, #0
+ 80131c2:	e008      	b.n	80131d6 <RegionCommonCountChannels+0x20>
+        return 0;
+    }
+
+    for( uint8_t i = startIdx; i < stopIdx; i++ )
+    {
+        nbChannels += CountChannels( channelsMask[i], 16 );
+ 80131c4:	2110      	movs	r1, #16
+ 80131c6:	f837 0014 	ldrh.w	r0, [r7, r4, lsl #1]
+ 80131ca:	f7ff fee8 	bl	8012f9e <CountChannels>
+ 80131ce:	4405      	add	r5, r0
+ 80131d0:	b2ed      	uxtb	r5, r5
+    for( uint8_t i = startIdx; i < stopIdx; i++ )
+ 80131d2:	3401      	adds	r4, #1
+ 80131d4:	b2e4      	uxtb	r4, r4
+ 80131d6:	42b4      	cmp	r4, r6
+ 80131d8:	d3f4      	bcc.n	80131c4 <RegionCommonCountChannels+0xe>
+    }
+
+    return nbChannels;
+}
+ 80131da:	4628      	mov	r0, r5
+ 80131dc:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+        return 0;
+ 80131de:	2500      	movs	r5, #0
+ 80131e0:	e7fb      	b.n	80131da <RegionCommonCountChannels+0x24>
+
+080131e2 <RegionCommonChanMaskCopy>:
+
+void RegionCommonChanMaskCopy( uint16_t* channelsMaskDest, uint16_t* channelsMaskSrc, uint8_t len )
+{
+    if( ( channelsMaskDest != NULL ) && ( channelsMaskSrc != NULL ) )
+ 80131e2:	4684      	mov	ip, r0
+ 80131e4:	b158      	cbz	r0, 80131fe <RegionCommonChanMaskCopy+0x1c>
+ 80131e6:	b109      	cbz	r1, 80131ec <RegionCommonChanMaskCopy+0xa>
+    {
+        for( uint8_t i = 0; i < len; i++ )
+ 80131e8:	2300      	movs	r3, #0
+ 80131ea:	e006      	b.n	80131fa <RegionCommonChanMaskCopy+0x18>
+ 80131ec:	4770      	bx	lr
+        {
+            channelsMaskDest[i] = channelsMaskSrc[i];
+ 80131ee:	f831 0013 	ldrh.w	r0, [r1, r3, lsl #1]
+ 80131f2:	f82c 0013 	strh.w	r0, [ip, r3, lsl #1]
+        for( uint8_t i = 0; i < len; i++ )
+ 80131f6:	3301      	adds	r3, #1
+ 80131f8:	b2db      	uxtb	r3, r3
+ 80131fa:	4293      	cmp	r3, r2
+ 80131fc:	d3f7      	bcc.n	80131ee <RegionCommonChanMaskCopy+0xc>
+        }
+    }
+}
+ 80131fe:	4770      	bx	lr
+
+08013200 <RegionCommonSetBandTxDone>:
+
+void RegionCommonSetBandTxDone( Band_t* band, TimerTime_t lastTxAirTime, bool joined, SysTime_t elapsedTimeSinceStartup )
+{
+ 8013200:	b082      	sub	sp, #8
+ 8013202:	b538      	push	{r3, r4, r5, lr}
+ 8013204:	4604      	mov	r4, r0
+ 8013206:	460d      	mov	r5, r1
+ 8013208:	4611      	mov	r1, r2
+ 801320a:	aa04      	add	r2, sp, #16
+ 801320c:	f842 3f04 	str.w	r3, [r2, #4]!
+    // Get the band duty cycle. If not joined, the function either returns the join duty cycle
+    // or the band duty cycle, whichever is more restrictive.
+    uint16_t dutyCycle = GetDutyCycle( band, joined, elapsedTimeSinceStartup );
+ 8013210:	ca0c      	ldmia	r2, {r2, r3}
+ 8013212:	f7ff fea7 	bl	8012f64 <GetDutyCycle>
+
+    // Reduce with transmission time
+    if( band->TimeCredits > ( lastTxAirTime * dutyCycle ) )
+ 8013216:	68e3      	ldr	r3, [r4, #12]
+ 8013218:	fb05 f100 	mul.w	r1, r5, r0
+ 801321c:	428b      	cmp	r3, r1
+ 801321e:	d905      	bls.n	801322c <RegionCommonSetBandTxDone+0x2c>
+    {
+        // Reduce time credits by the time of air
+        band->TimeCredits -= ( lastTxAirTime * dutyCycle );
+ 8013220:	1a5b      	subs	r3, r3, r1
+ 8013222:	60e3      	str	r3, [r4, #12]
+    }
+    else
+    {
+        band->TimeCredits = 0;
+    }
+}
+ 8013224:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
+ 8013228:	b002      	add	sp, #8
+ 801322a:	4770      	bx	lr
+        band->TimeCredits = 0;
+ 801322c:	2300      	movs	r3, #0
+ 801322e:	60e3      	str	r3, [r4, #12]
+}
+ 8013230:	e7f8      	b.n	8013224 <RegionCommonSetBandTxDone+0x24>
+	...
+
+08013234 <RegionCommonUpdateBandTimeOff>:
+
+TimerTime_t RegionCommonUpdateBandTimeOff( bool joined, Band_t* bands,
+                                           uint8_t nbBands, bool dutyCycleEnabled,
+                                           bool lastTxIsJoinRequest, SysTime_t elapsedTimeSinceStartup,
+                                           TimerTime_t expectedTimeOnAir )
+{
+ 8013234:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8013238:	b089      	sub	sp, #36	; 0x24
+ 801323a:	4607      	mov	r7, r0
+ 801323c:	468b      	mov	fp, r1
+ 801323e:	4691      	mov	r9, r2
+ 8013240:	4698      	mov	r8, r3
+ 8013242:	f89d a048 	ldrb.w	sl, [sp, #72]	; 0x48
+    TimerTime_t minTimeToWait = TIMERTIME_T_MAX;
+    TimerTime_t currentTime = TimerGetCurrentTime( );
+ 8013246:	f003 ff89 	bl	801715c <UTIL_TIMER_GetCurrentTime>
+ 801324a:	9004      	str	r0, [sp, #16]
+    TimerTime_t creditCosts = 0;
+    uint16_t dutyCycle = 1;
+    uint8_t validBands = 0;
+
+    for( uint8_t i = 0; i < nbBands; i++ )
+ 801324c:	2400      	movs	r4, #0
+    uint8_t validBands = 0;
+ 801324e:	4626      	mov	r6, r4
+    TimerTime_t minTimeToWait = TIMERTIME_T_MAX;
+ 8013250:	f04f 33ff 	mov.w	r3, #4294967295
+ 8013254:	9305      	str	r3, [sp, #20]
+    for( uint8_t i = 0; i < nbBands; i++ )
+ 8013256:	e005      	b.n	8013264 <RegionCommonUpdateBandTimeOff+0x30>
+        // when the duty cycle is off, or the TimeCredits of the band
+        // is higher than the credit costs for the transmission.
+        if( ( bands[i].TimeCredits >= creditCosts ) ||
+            ( ( dutyCycleEnabled == false ) && ( joined == true ) ) )
+        {
+            bands[i].ReadyForTransmission = true;
+ 8013258:	2301      	movs	r3, #1
+ 801325a:	752b      	strb	r3, [r5, #20]
+            // This band is a potential candidate for an
+            // upcoming transmission, so increase the counter.
+            validBands++;
+ 801325c:	441e      	add	r6, r3
+ 801325e:	b2f6      	uxtb	r6, r6
+    for( uint8_t i = 0; i < nbBands; i++ )
+ 8013260:	3401      	adds	r4, #1
+ 8013262:	b2e4      	uxtb	r4, r4
+ 8013264:	454c      	cmp	r4, r9
+ 8013266:	d25d      	bcs.n	8013324 <RegionCommonUpdateBandTimeOff+0xf0>
+        dutyCycle = UpdateTimeCredits( &bands[i], joined, dutyCycleEnabled,
+ 8013268:	eb04 0544 	add.w	r5, r4, r4, lsl #1
+ 801326c:	eb0b 05c5 	add.w	r5, fp, r5, lsl #3
+ 8013270:	9b04      	ldr	r3, [sp, #16]
+ 8013272:	9302      	str	r3, [sp, #8]
+ 8013274:	ab13      	add	r3, sp, #76	; 0x4c
+ 8013276:	e893 0003 	ldmia.w	r3, {r0, r1}
+ 801327a:	e88d 0003 	stmia.w	sp, {r0, r1}
+ 801327e:	4653      	mov	r3, sl
+ 8013280:	4642      	mov	r2, r8
+ 8013282:	4639      	mov	r1, r7
+ 8013284:	4628      	mov	r0, r5
+ 8013286:	f7ff ff1b 	bl	80130c0 <UpdateTimeCredits>
+        creditCosts = expectedTimeOnAir * dutyCycle;
+ 801328a:	9b15      	ldr	r3, [sp, #84]	; 0x54
+ 801328c:	fb03 f300 	mul.w	r3, r3, r0
+        if( ( bands[i].TimeCredits >= creditCosts ) ||
+ 8013290:	68ea      	ldr	r2, [r5, #12]
+ 8013292:	429a      	cmp	r2, r3
+ 8013294:	d2e0      	bcs.n	8013258 <RegionCommonUpdateBandTimeOff+0x24>
+ 8013296:	f1b8 0f00 	cmp.w	r8, #0
+ 801329a:	d101      	bne.n	80132a0 <RegionCommonUpdateBandTimeOff+0x6c>
+            ( ( dutyCycleEnabled == false ) && ( joined == true ) ) )
+ 801329c:	2f00      	cmp	r7, #0
+ 801329e:	d1db      	bne.n	8013258 <RegionCommonUpdateBandTimeOff+0x24>
+        }
+        else
+        {
+            // In this case, the band has not enough credits
+            // for the next transmission.
+            bands[i].ReadyForTransmission = false;
+ 80132a0:	2100      	movs	r1, #0
+ 80132a2:	7529      	strb	r1, [r5, #20]
+
+            if( bands[i].MaxTimeCredits >= creditCosts )
+ 80132a4:	6929      	ldr	r1, [r5, #16]
+ 80132a6:	4299      	cmp	r1, r3
+ 80132a8:	d307      	bcc.n	80132ba <RegionCommonUpdateBandTimeOff+0x86>
+                // The band can only be taken into account, if the maximum credits
+                // of the band are higher than the credit costs.
+                // We calculate the minTimeToWait among the bands which are not
+                // ready for transmission and which are potentially available
+                // for a transmission in the future.
+                minTimeToWait = MIN( minTimeToWait, ( creditCosts - bands[i].TimeCredits ) );
+ 80132aa:	1a9b      	subs	r3, r3, r2
+ 80132ac:	9a05      	ldr	r2, [sp, #20]
+ 80132ae:	429a      	cmp	r2, r3
+ 80132b0:	bf28      	it	cs
+ 80132b2:	461a      	movcs	r2, r3
+ 80132b4:	9205      	str	r2, [sp, #20]
+                // This band is a potential candidate for an
+                // upcoming transmission (even if its time credits are not enough
+                // at the moment), so increase the counter.
+                validBands++;
+ 80132b6:	3601      	adds	r6, #1
+ 80132b8:	b2f6      	uxtb	r6, r6
+            }
+
+            // Apply a special calculation if the device is not joined.
+            if( joined == false )
+ 80132ba:	2f00      	cmp	r7, #0
+ 80132bc:	d1d0      	bne.n	8013260 <RegionCommonUpdateBandTimeOff+0x2c>
+            {
+                SysTime_t backoffTimeRange = {
+ 80132be:	2300      	movs	r3, #0
+ 80132c0:	9306      	str	r3, [sp, #24]
+ 80132c2:	f8ad 301c 	strh.w	r3, [sp, #28]
+                    .Seconds    = 0,
+                    .SubSeconds = 0,
+                };
+                // Get the backoff time range based on the duty cycle definition
+                if( dutyCycle == BACKOFF_DC_1_HOUR )
+ 80132c6:	2864      	cmp	r0, #100	; 0x64
+ 80132c8:	d024      	beq.n	8013314 <RegionCommonUpdateBandTimeOff+0xe0>
+                {
+                    backoffTimeRange.Seconds = BACKOFF_DUTY_CYCLE_1_HOUR_IN_S;
+                }
+                else if( dutyCycle == BACKOFF_DC_10_HOURS )
+ 80132ca:	f5b0 7f7a 	cmp.w	r0, #1000	; 0x3e8
+ 80132ce:	d025      	beq.n	801331c <RegionCommonUpdateBandTimeOff+0xe8>
+                {
+                    backoffTimeRange.Seconds = BACKOFF_DUTY_CYCLE_10_HOURS_IN_S;
+                }
+                else
+                {
+                    backoffTimeRange.Seconds = BACKOFF_DUTY_CYCLE_24_HOURS_IN_S;
+ 80132d0:	4b19      	ldr	r3, [pc, #100]	; (8013338 <RegionCommonUpdateBandTimeOff+0x104>)
+ 80132d2:	9306      	str	r3, [sp, #24]
+                }
+                // Calculate the time to wait.
+                if( elapsedTimeSinceStartup.Seconds > BACKOFF_DUTY_CYCLE_24_HOURS_IN_S )
+ 80132d4:	9b13      	ldr	r3, [sp, #76]	; 0x4c
+ 80132d6:	4a18      	ldr	r2, [pc, #96]	; (8013338 <RegionCommonUpdateBandTimeOff+0x104>)
+ 80132d8:	4293      	cmp	r3, r2
+ 80132da:	d90c      	bls.n	80132f6 <RegionCommonUpdateBandTimeOff+0xc2>
+                {
+                    backoffTimeRange.Seconds += BACKOFF_24_HOURS_IN_S * ( ( ( elapsedTimeSinceStartup.Seconds - BACKOFF_DUTY_CYCLE_24_HOURS_IN_S ) / BACKOFF_24_HOURS_IN_S ) + 1 );
+ 80132dc:	f5a3 33f6 	sub.w	r3, r3, #125952	; 0x1ec00
+ 80132e0:	3b30      	subs	r3, #48	; 0x30
+ 80132e2:	4a16      	ldr	r2, [pc, #88]	; (801333c <RegionCommonUpdateBandTimeOff+0x108>)
+ 80132e4:	fba2 2303 	umull	r2, r3, r2, r3
+ 80132e8:	0c1b      	lsrs	r3, r3, #16
+ 80132ea:	4a15      	ldr	r2, [pc, #84]	; (8013340 <RegionCommonUpdateBandTimeOff+0x10c>)
+ 80132ec:	fb03 2202 	mla	r2, r3, r2, r2
+ 80132f0:	9b06      	ldr	r3, [sp, #24]
+ 80132f2:	4413      	add	r3, r2
+ 80132f4:	9306      	str	r3, [sp, #24]
+                }
+                // Calculate the time difference between now and the next range
+                backoffTimeRange  = SysTimeSub( backoffTimeRange, elapsedTimeSinceStartup );
+ 80132f6:	ad06      	add	r5, sp, #24
+ 80132f8:	9b14      	ldr	r3, [sp, #80]	; 0x50
+ 80132fa:	9300      	str	r3, [sp, #0]
+ 80132fc:	9b13      	ldr	r3, [sp, #76]	; 0x4c
+ 80132fe:	e895 0006 	ldmia.w	r5, {r1, r2}
+ 8013302:	4628      	mov	r0, r5
+ 8013304:	f003 fe3b 	bl	8016f7e <SysTimeSub>
+                minTimeToWait = SysTimeToMs( backoffTimeRange );
+ 8013308:	e895 0003 	ldmia.w	r5, {r0, r1}
+ 801330c:	f003 feb0 	bl	8017070 <SysTimeToMs>
+ 8013310:	9005      	str	r0, [sp, #20]
+ 8013312:	e7a5      	b.n	8013260 <RegionCommonUpdateBandTimeOff+0x2c>
+                    backoffTimeRange.Seconds = BACKOFF_DUTY_CYCLE_1_HOUR_IN_S;
+ 8013314:	f44f 6361 	mov.w	r3, #3600	; 0xe10
+ 8013318:	9306      	str	r3, [sp, #24]
+ 801331a:	e7db      	b.n	80132d4 <RegionCommonUpdateBandTimeOff+0xa0>
+                    backoffTimeRange.Seconds = BACKOFF_DUTY_CYCLE_10_HOURS_IN_S;
+ 801331c:	f649 23b0 	movw	r3, #39600	; 0x9ab0
+ 8013320:	9306      	str	r3, [sp, #24]
+ 8013322:	e7d7      	b.n	80132d4 <RegionCommonUpdateBandTimeOff+0xa0>
+            }
+        }
+    }
+
+    if( validBands == 0 )
+ 8013324:	b11e      	cbz	r6, 801332e <RegionCommonUpdateBandTimeOff+0xfa>
+        // There is no valid band available to handle a transmission
+        // in the given DUTY_CYCLE_TIME_PERIOD.
+        return TIMERTIME_T_MAX;
+    }
+    return minTimeToWait;
+}
+ 8013326:	9805      	ldr	r0, [sp, #20]
+ 8013328:	b009      	add	sp, #36	; 0x24
+ 801332a:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+        return TIMERTIME_T_MAX;
+ 801332e:	f04f 33ff 	mov.w	r3, #4294967295
+ 8013332:	9305      	str	r3, [sp, #20]
+ 8013334:	e7f7      	b.n	8013326 <RegionCommonUpdateBandTimeOff+0xf2>
+ 8013336:	bf00      	nop
+ 8013338:	0001ec30 	.word	0x0001ec30
+ 801333c:	c22e4507 	.word	0xc22e4507
+ 8013340:	00015180 	.word	0x00015180
+
+08013344 <RegionCommonParseLinkAdrReq>:
+
+uint8_t RegionCommonParseLinkAdrReq( uint8_t* payload, RegionCommonLinkAdrParams_t* linkAdrParams )
+{
+    uint8_t retIndex = 0;
+
+    if( payload[0] == SRV_MAC_LINK_ADR_REQ )
+ 8013344:	7803      	ldrb	r3, [r0, #0]
+ 8013346:	2b03      	cmp	r3, #3
+ 8013348:	d001      	beq.n	801334e <RegionCommonParseLinkAdrReq+0xa>
+    uint8_t retIndex = 0;
+ 801334a:	2000      	movs	r0, #0
+
+        // LinkAdrReq has 4 bytes length + 1 byte CMD
+        retIndex = 5;
+    }
+    return retIndex;
+}
+ 801334c:	4770      	bx	lr
+        linkAdrParams->Datarate = payload[1];
+ 801334e:	7842      	ldrb	r2, [r0, #1]
+ 8013350:	f990 3001 	ldrsb.w	r3, [r0, #1]
+ 8013354:	704b      	strb	r3, [r1, #1]
+        linkAdrParams->TxPower = linkAdrParams->Datarate & 0x0F;
+ 8013356:	f003 030f 	and.w	r3, r3, #15
+ 801335a:	708b      	strb	r3, [r1, #2]
+        linkAdrParams->Datarate = ( linkAdrParams->Datarate >> 4 ) & 0x0F;
+ 801335c:	0913      	lsrs	r3, r2, #4
+ 801335e:	704b      	strb	r3, [r1, #1]
+        linkAdrParams->ChMask = ( uint16_t )payload[2];
+ 8013360:	7883      	ldrb	r3, [r0, #2]
+ 8013362:	808b      	strh	r3, [r1, #4]
+        linkAdrParams->ChMask |= ( uint16_t )payload[3] << 8;
+ 8013364:	78c2      	ldrb	r2, [r0, #3]
+ 8013366:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
+ 801336a:	808b      	strh	r3, [r1, #4]
+        linkAdrParams->NbRep = payload[4];
+ 801336c:	7903      	ldrb	r3, [r0, #4]
+ 801336e:	700b      	strb	r3, [r1, #0]
+        linkAdrParams->ChMaskCtrl = ( linkAdrParams->NbRep >> 4 ) & 0x07;
+ 8013370:	f3c3 1202 	ubfx	r2, r3, #4, #3
+ 8013374:	70ca      	strb	r2, [r1, #3]
+        linkAdrParams->NbRep &= 0x0F;
+ 8013376:	f003 030f 	and.w	r3, r3, #15
+ 801337a:	700b      	strb	r3, [r1, #0]
+        retIndex = 5;
+ 801337c:	2005      	movs	r0, #5
+ 801337e:	4770      	bx	lr
+
+08013380 <RegionCommonLinkAdrReqVerifyParams>:
+
+uint8_t RegionCommonLinkAdrReqVerifyParams( RegionCommonLinkAdrReqVerifyParams_t* verifyParams, int8_t* dr, int8_t* txPow, uint8_t* nbRep )
+{
+ 8013380:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8013384:	b085      	sub	sp, #20
+ 8013386:	4604      	mov	r4, r0
+ 8013388:	4688      	mov	r8, r1
+ 801338a:	4617      	mov	r7, r2
+ 801338c:	461e      	mov	r6, r3
+    uint8_t status = verifyParams->Status;
+ 801338e:	7905      	ldrb	r5, [r0, #4]
+    int8_t datarate = verifyParams->Datarate;
+ 8013390:	f990 a006 	ldrsb.w	sl, [r0, #6]
+    int8_t txPower = verifyParams->TxPower;
+ 8013394:	f990 9007 	ldrsb.w	r9, [r0, #7]
+    int8_t nbRepetitions = verifyParams->NbRep;
+ 8013398:	f990 b008 	ldrsb.w	fp, [r0, #8]
+
+    // Handle the case when ADR is off.
+    if( verifyParams->AdrEnabled == false )
+ 801339c:	7943      	ldrb	r3, [r0, #5]
+ 801339e:	b92b      	cbnz	r3, 80133ac <RegionCommonLinkAdrReqVerifyParams+0x2c>
+    {
+        // When ADR is off, we are allowed to change the channels mask
+        nbRepetitions = verifyParams->CurrentNbRep;
+ 80133a0:	f990 b00b 	ldrsb.w	fp, [r0, #11]
+        datarate =  verifyParams->CurrentDatarate;
+ 80133a4:	f990 a009 	ldrsb.w	sl, [r0, #9]
+        txPower =  verifyParams->CurrentTxPower;
+ 80133a8:	f990 900a 	ldrsb.w	r9, [r0, #10]
+    }
+
+    if( status != 0 )
+ 80133ac:	b355      	cbz	r5, 8013404 <RegionCommonLinkAdrReqVerifyParams+0x84>
+    {
+        // Verify datarate. The variable phyParam. Value contains the minimum allowed datarate.
+        if( datarate == 0x0F )
+ 80133ae:	f1ba 0f0f 	cmp.w	sl, #15
+ 80133b2:	d114      	bne.n	80133de <RegionCommonLinkAdrReqVerifyParams+0x5e>
+        { // 0xF means that the device MUST ignore that field, and keep the current parameter value.
+            datarate =  verifyParams->CurrentDatarate;
+ 80133b4:	f994 a009 	ldrsb.w	sl, [r4, #9]
+        {
+            status &= 0xFD; // Datarate KO
+        }
+
+        // Verify tx power
+        if( txPower == 0x0F )
+ 80133b8:	f1b9 0f0f 	cmp.w	r9, #15
+ 80133bc:	d020      	beq.n	8013400 <RegionCommonLinkAdrReqVerifyParams+0x80>
+        { // 0xF means that the device MUST ignore that field, and keep the current parameter value.
+            txPower =  verifyParams->CurrentTxPower;
+        }
+        else if( RegionCommonValueInRange( txPower, verifyParams->MaxTxPower, verifyParams->MinTxPower ) == 0 )
+ 80133be:	f994 301d 	ldrsb.w	r3, [r4, #29]
+ 80133c2:	9303      	str	r3, [sp, #12]
+ 80133c4:	f994 201c 	ldrsb.w	r2, [r4, #28]
+ 80133c8:	461c      	mov	r4, r3
+ 80133ca:	4619      	mov	r1, r3
+ 80133cc:	4648      	mov	r0, r9
+ 80133ce:	f7ff fe94 	bl	80130fa <RegionCommonValueInRange>
+ 80133d2:	b9b8      	cbnz	r0, 8013404 <RegionCommonLinkAdrReqVerifyParams+0x84>
+        {
+            // Verify if the maximum TX power is exceeded
+            if( verifyParams->MaxTxPower > txPower )
+ 80133d4:	454c      	cmp	r4, r9
+ 80133d6:	dc21      	bgt.n	801341c <RegionCommonLinkAdrReqVerifyParams+0x9c>
+            { // Apply maximum TX power. Accept TX power.
+                txPower = verifyParams->MaxTxPower;
+            }
+            else
+            {
+                status &= 0xFB; // TxPower KO
+ 80133d8:	f005 05fb 	and.w	r5, r5, #251	; 0xfb
+ 80133dc:	e012      	b.n	8013404 <RegionCommonLinkAdrReqVerifyParams+0x84>
+        else if( RegionCommonChanVerifyDr( verifyParams->NbChannels, verifyParams->ChannelsMask, datarate,
+ 80133de:	69a3      	ldr	r3, [r4, #24]
+ 80133e0:	9301      	str	r3, [sp, #4]
+ 80133e2:	f994 3015 	ldrsb.w	r3, [r4, #21]
+ 80133e6:	9300      	str	r3, [sp, #0]
+ 80133e8:	f994 3014 	ldrsb.w	r3, [r4, #20]
+ 80133ec:	4652      	mov	r2, sl
+ 80133ee:	6921      	ldr	r1, [r4, #16]
+ 80133f0:	7b20      	ldrb	r0, [r4, #12]
+ 80133f2:	f7ff fe8c 	bl	801310e <RegionCommonChanVerifyDr>
+ 80133f6:	2800      	cmp	r0, #0
+ 80133f8:	d1de      	bne.n	80133b8 <RegionCommonLinkAdrReqVerifyParams+0x38>
+            status &= 0xFD; // Datarate KO
+ 80133fa:	f005 05fd 	and.w	r5, r5, #253	; 0xfd
+ 80133fe:	e7db      	b.n	80133b8 <RegionCommonLinkAdrReqVerifyParams+0x38>
+            txPower =  verifyParams->CurrentTxPower;
+ 8013400:	f994 900a 	ldrsb.w	r9, [r4, #10]
+            }
+        }
+    }
+
+    // If the status is ok, verify the NbRep
+    if( status == 0x07 )
+ 8013404:	2d07      	cmp	r5, #7
+ 8013406:	d00c      	beq.n	8013422 <RegionCommonLinkAdrReqVerifyParams+0xa2>
+            nbRepetitions = 1;
+        }
+    }
+
+    // Apply changes
+    *dr = datarate;
+ 8013408:	f888 a000 	strb.w	sl, [r8]
+    *txPow = txPower;
+ 801340c:	f887 9000 	strb.w	r9, [r7]
+    *nbRep = nbRepetitions;
+ 8013410:	f886 b000 	strb.w	fp, [r6]
+
+    return status;
+}
+ 8013414:	4628      	mov	r0, r5
+ 8013416:	b005      	add	sp, #20
+ 8013418:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+                txPower = verifyParams->MaxTxPower;
+ 801341c:	f8dd 900c 	ldr.w	r9, [sp, #12]
+ 8013420:	e7f0      	b.n	8013404 <RegionCommonLinkAdrReqVerifyParams+0x84>
+        if( nbRepetitions == 0 )
+ 8013422:	f1bb 0f00 	cmp.w	fp, #0
+ 8013426:	d1ef      	bne.n	8013408 <RegionCommonLinkAdrReqVerifyParams+0x88>
+            nbRepetitions = 1;
+ 8013428:	f04f 0b01 	mov.w	fp, #1
+ 801342c:	e7ec      	b.n	8013408 <RegionCommonLinkAdrReqVerifyParams+0x88>
+	...
+
+08013430 <RegionCommonComputeSymbolTimeLoRa>:
+
+uint32_t RegionCommonComputeSymbolTimeLoRa( uint8_t phyDr, uint32_t bandwidthInHz )
+{
+    return ( 1 << phyDr ) * 1000000 / bandwidthInHz;
+ 8013430:	4b02      	ldr	r3, [pc, #8]	; (801343c <RegionCommonComputeSymbolTimeLoRa+0xc>)
+ 8013432:	fa03 f000 	lsl.w	r0, r3, r0
+}
+ 8013436:	fbb0 f0f1 	udiv	r0, r0, r1
+ 801343a:	4770      	bx	lr
+ 801343c:	000f4240 	.word	0x000f4240
+
+08013440 <RegionCommonComputeSymbolTimeFsk>:
+
+uint32_t RegionCommonComputeSymbolTimeFsk( uint8_t phyDrInKbps )
+{
+    return 8000 / ( uint32_t )phyDrInKbps; // 1 symbol equals 1 byte
+}
+ 8013440:	f44f 53fa 	mov.w	r3, #8000	; 0x1f40
+ 8013444:	fbb3 f0f0 	udiv	r0, r3, r0
+ 8013448:	4770      	bx	lr
+	...
+
+0801344c <RegionCommonComputeRxWindowParameters>:
+
+void RegionCommonComputeRxWindowParameters( uint32_t tSymbolInUs, uint8_t minRxSymbols, uint32_t rxErrorInMs, uint32_t wakeUpTimeInMs, uint32_t* windowTimeoutInSymbols, int32_t* windowOffsetInMs )
+{
+ 801344c:	b500      	push	{lr}
+    *windowTimeoutInSymbols = MAX( DIV_CEIL( ( ( 2 * minRxSymbols - 8 ) * tSymbolInUs + 2 * ( rxErrorInMs * 1000 ) ),  tSymbolInUs ), minRxSymbols ); // Computed number of symbols
+ 801344e:	f1a1 0c04 	sub.w	ip, r1, #4
+ 8013452:	f44f 7e7a 	mov.w	lr, #1000	; 0x3e8
+ 8013456:	fb0e f202 	mul.w	r2, lr, r2
+ 801345a:	fb00 220c 	mla	r2, r0, ip, r2
+ 801345e:	0052      	lsls	r2, r2, #1
+ 8013460:	d021      	beq.n	80134a6 <RegionCommonComputeRxWindowParameters+0x5a>
+ 8013462:	4402      	add	r2, r0
+ 8013464:	3a01      	subs	r2, #1
+ 8013466:	fbb2 f2f0 	udiv	r2, r2, r0
+ 801346a:	4291      	cmp	r1, r2
+ 801346c:	bf38      	it	cc
+ 801346e:	4611      	movcc	r1, r2
+ 8013470:	9a01      	ldr	r2, [sp, #4]
+ 8013472:	6011      	str	r1, [r2, #0]
+    *windowOffsetInMs = ( int32_t )DIV_CEIL( ( int32_t )( 4 * tSymbolInUs ) -
+ 8013474:	0082      	lsls	r2, r0, #2
+ 8013476:	fb01 f000 	mul.w	r0, r1, r0
+ 801347a:	b1b8      	cbz	r0, 80134ac <RegionCommonComputeRxWindowParameters+0x60>
+ 801347c:	3001      	adds	r0, #1
+ 801347e:	0840      	lsrs	r0, r0, #1
+ 8013480:	1a12      	subs	r2, r2, r0
+ 8013482:	f44f 717a 	mov.w	r1, #1000	; 0x3e8
+ 8013486:	fb01 2313 	mls	r3, r1, r3, r2
+ 801348a:	2b00      	cmp	r3, #0
+ 801348c:	dd10      	ble.n	80134b0 <RegionCommonComputeRxWindowParameters+0x64>
+ 801348e:	f203 33e7 	addw	r3, r3, #999	; 0x3e7
+ 8013492:	4a0b      	ldr	r2, [pc, #44]	; (80134c0 <RegionCommonComputeRxWindowParameters+0x74>)
+ 8013494:	fb82 1203 	smull	r1, r2, r2, r3
+ 8013498:	17db      	asrs	r3, r3, #31
+ 801349a:	ebc3 13a2 	rsb	r3, r3, r2, asr #6
+ 801349e:	9a02      	ldr	r2, [sp, #8]
+ 80134a0:	6013      	str	r3, [r2, #0]
+                                               ( int32_t )DIV_CEIL( ( *windowTimeoutInSymbols * tSymbolInUs ), 2 ) -
+                                               ( int32_t )( wakeUpTimeInMs * 1000 ), 1000 );
+}
+ 80134a2:	f85d fb04 	ldr.w	pc, [sp], #4
+    *windowTimeoutInSymbols = MAX( DIV_CEIL( ( ( 2 * minRxSymbols - 8 ) * tSymbolInUs + 2 * ( rxErrorInMs * 1000 ) ),  tSymbolInUs ), minRxSymbols ); // Computed number of symbols
+ 80134a6:	fbb2 f2f0 	udiv	r2, r2, r0
+ 80134aa:	e7de      	b.n	801346a <RegionCommonComputeRxWindowParameters+0x1e>
+    *windowOffsetInMs = ( int32_t )DIV_CEIL( ( int32_t )( 4 * tSymbolInUs ) -
+ 80134ac:	0840      	lsrs	r0, r0, #1
+ 80134ae:	e7e7      	b.n	8013480 <RegionCommonComputeRxWindowParameters+0x34>
+ 80134b0:	4a03      	ldr	r2, [pc, #12]	; (80134c0 <RegionCommonComputeRxWindowParameters+0x74>)
+ 80134b2:	fb82 1203 	smull	r1, r2, r2, r3
+ 80134b6:	17db      	asrs	r3, r3, #31
+ 80134b8:	ebc3 13a2 	rsb	r3, r3, r2, asr #6
+ 80134bc:	e7ef      	b.n	801349e <RegionCommonComputeRxWindowParameters+0x52>
+ 80134be:	bf00      	nop
+ 80134c0:	10624dd3 	.word	0x10624dd3
+
+080134c4 <RegionCommonComputeTxPower>:
+
+int8_t RegionCommonComputeTxPower( int8_t txPowerIndex, float maxEirp, float antennaGain )
+{
+ 80134c4:	b538      	push	{r3, r4, r5, lr}
+ 80134c6:	460d      	mov	r5, r1
+ 80134c8:	4614      	mov	r4, r2
+    int8_t phyTxPower = 0;
+
+    phyTxPower = ( int8_t )floor( ( maxEirp - ( txPowerIndex * 2U ) ) - antennaGain );
+ 80134ca:	0040      	lsls	r0, r0, #1
+ 80134cc:	f7ee faa2 	bl	8001a14 <__aeabi_ui2f>
+ 80134d0:	4601      	mov	r1, r0
+ 80134d2:	4628      	mov	r0, r5
+ 80134d4:	f7ee f9ec 	bl	80018b0 <__aeabi_fsub>
+ 80134d8:	4621      	mov	r1, r4
+ 80134da:	f7ee f9e9 	bl	80018b0 <__aeabi_fsub>
+ 80134de:	f7ee f8db 	bl	8001698 <__aeabi_f2d>
+ 80134e2:	f004 f939 	bl	8017758 <floor>
+ 80134e6:	f7ee f9b7 	bl	8001858 <__aeabi_d2iz>
+
+    return phyTxPower;
+}
+ 80134ea:	b240      	sxtb	r0, r0
+ 80134ec:	bd38      	pop	{r3, r4, r5, pc}
+
+080134ee <RegionCommonCountNbOfEnabledChannels>:
+    MW_LOG(TS_ON, VLEVEL_M, "RX_BC on freq %d Hz at DR %d\r\n", rxBeaconSetupParams->Frequency, rxBeaconSetupParams->BeaconDatarate );
+}
+
+void RegionCommonCountNbOfEnabledChannels( RegionCommonCountNbOfEnabledChannelsParams_t* countNbOfEnabledChannelsParams,
+                                           uint8_t* enabledChannels, uint8_t* nbEnabledChannels, uint8_t* nbRestrictedChannels )
+{
+ 80134ee:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 80134f2:	b083      	sub	sp, #12
+ 80134f4:	4605      	mov	r5, r0
+ 80134f6:	468b      	mov	fp, r1
+ 80134f8:	9200      	str	r2, [sp, #0]
+ 80134fa:	9301      	str	r3, [sp, #4]
+    uint8_t nbChannelCount = 0;
+    uint8_t nbRestrictedChannelsCount = 0;
+
+    for( uint8_t i = 0, k = 0; i < countNbOfEnabledChannelsParams->MaxNbChannels; i += 16, k++ )
+ 80134fc:	2600      	movs	r6, #0
+ 80134fe:	46b0      	mov	r8, r6
+    uint8_t nbRestrictedChannelsCount = 0;
+ 8013500:	46b2      	mov	sl, r6
+    uint8_t nbChannelCount = 0;
+ 8013502:	46b1      	mov	r9, r6
+    for( uint8_t i = 0, k = 0; i < countNbOfEnabledChannelsParams->MaxNbChannels; i += 16, k++ )
+ 8013504:	e049      	b.n	801359a <RegionCommonCountNbOfEnabledChannels+0xac>
+                    {
+                        continue;
+                    }
+                }
+                if( RegionCommonValueInRange( countNbOfEnabledChannelsParams->Datarate,
+                                              countNbOfEnabledChannelsParams->Channels[i + j].DrRange.Fields.Min,
+ 8013506:	7a3a      	ldrb	r2, [r7, #8]
+ 8013508:	f342 0103 	sbfx	r1, r2, #0, #4
+                                              countNbOfEnabledChannelsParams->Channels[i + j].DrRange.Fields.Max ) == false )
+ 801350c:	f342 1203 	sbfx	r2, r2, #4, #4
+                if( RegionCommonValueInRange( countNbOfEnabledChannelsParams->Datarate,
+ 8013510:	b252      	sxtb	r2, r2
+ 8013512:	b249      	sxtb	r1, r1
+ 8013514:	f995 0001 	ldrsb.w	r0, [r5, #1]
+ 8013518:	f7ff fdef 	bl	80130fa <RegionCommonValueInRange>
+ 801351c:	b178      	cbz	r0, 801353e <RegionCommonCountNbOfEnabledChannels+0x50>
+                { // Check if the current channel selection supports the given datarate
+                    continue;
+                }
+                if( countNbOfEnabledChannelsParams->Bands[countNbOfEnabledChannelsParams->Channels[i + j].Band].ReadyForTransmission == false )
+ 801351e:	68ea      	ldr	r2, [r5, #12]
+ 8013520:	7a7b      	ldrb	r3, [r7, #9]
+ 8013522:	eb03 0343 	add.w	r3, r3, r3, lsl #1
+ 8013526:	eb02 02c3 	add.w	r2, r2, r3, lsl #3
+ 801352a:	7d13      	ldrb	r3, [r2, #20]
+ 801352c:	b353      	cbz	r3, 8013584 <RegionCommonCountNbOfEnabledChannels+0x96>
+                { // Check if the band is available for transmission
+                    nbRestrictedChannelsCount++;
+                    continue;
+                }
+                enabledChannels[nbChannelCount++] = i + j;
+ 801352e:	f109 0301 	add.w	r3, r9, #1
+ 8013532:	eb08 0204 	add.w	r2, r8, r4
+ 8013536:	f80b 2009 	strb.w	r2, [fp, r9]
+ 801353a:	fa5f f983 	uxtb.w	r9, r3
+        for( uint8_t j = 0; j < 16; j++ )
+ 801353e:	3401      	adds	r4, #1
+ 8013540:	b2e4      	uxtb	r4, r4
+ 8013542:	2c0f      	cmp	r4, #15
+ 8013544:	d823      	bhi.n	801358e <RegionCommonCountNbOfEnabledChannels+0xa0>
+            if( ( countNbOfEnabledChannelsParams->ChannelsMask[k] & ( 1 << j ) ) != 0 )
+ 8013546:	686b      	ldr	r3, [r5, #4]
+ 8013548:	0072      	lsls	r2, r6, #1
+ 801354a:	f833 3016 	ldrh.w	r3, [r3, r6, lsl #1]
+ 801354e:	4123      	asrs	r3, r4
+ 8013550:	f013 0f01 	tst.w	r3, #1
+ 8013554:	d0f3      	beq.n	801353e <RegionCommonCountNbOfEnabledChannels+0x50>
+                if( countNbOfEnabledChannelsParams->Channels[i + j].Frequency == 0 )
+ 8013556:	68a8      	ldr	r0, [r5, #8]
+ 8013558:	eb08 0304 	add.w	r3, r8, r4
+ 801355c:	eb03 0343 	add.w	r3, r3, r3, lsl #1
+ 8013560:	eb00 0783 	add.w	r7, r0, r3, lsl #2
+ 8013564:	f850 3023 	ldr.w	r3, [r0, r3, lsl #2]
+ 8013568:	2b00      	cmp	r3, #0
+ 801356a:	d0e8      	beq.n	801353e <RegionCommonCountNbOfEnabledChannels+0x50>
+                if( ( countNbOfEnabledChannelsParams->Joined == false ) &&
+ 801356c:	782b      	ldrb	r3, [r5, #0]
+ 801356e:	2b00      	cmp	r3, #0
+ 8013570:	d1c9      	bne.n	8013506 <RegionCommonCountNbOfEnabledChannels+0x18>
+                    ( countNbOfEnabledChannelsParams->JoinChannels != NULL ) )
+ 8013572:	696b      	ldr	r3, [r5, #20]
+                if( ( countNbOfEnabledChannelsParams->Joined == false ) &&
+ 8013574:	2b00      	cmp	r3, #0
+ 8013576:	d0c6      	beq.n	8013506 <RegionCommonCountNbOfEnabledChannels+0x18>
+                    if( ( countNbOfEnabledChannelsParams->JoinChannels[k] & ( 1 << j ) ) == 0 )
+ 8013578:	5a9b      	ldrh	r3, [r3, r2]
+ 801357a:	4123      	asrs	r3, r4
+ 801357c:	f013 0f01 	tst.w	r3, #1
+ 8013580:	d1c1      	bne.n	8013506 <RegionCommonCountNbOfEnabledChannels+0x18>
+ 8013582:	e7dc      	b.n	801353e <RegionCommonCountNbOfEnabledChannels+0x50>
+                    nbRestrictedChannelsCount++;
+ 8013584:	f10a 0a01 	add.w	sl, sl, #1
+ 8013588:	fa5f fa8a 	uxtb.w	sl, sl
+                    continue;
+ 801358c:	e7d7      	b.n	801353e <RegionCommonCountNbOfEnabledChannels+0x50>
+    for( uint8_t i = 0, k = 0; i < countNbOfEnabledChannelsParams->MaxNbChannels; i += 16, k++ )
+ 801358e:	f108 0810 	add.w	r8, r8, #16
+ 8013592:	fa5f f888 	uxtb.w	r8, r8
+ 8013596:	3601      	adds	r6, #1
+ 8013598:	b2f6      	uxtb	r6, r6
+ 801359a:	8a2b      	ldrh	r3, [r5, #16]
+ 801359c:	fa1f f288 	uxth.w	r2, r8
+ 80135a0:	429a      	cmp	r2, r3
+ 80135a2:	d201      	bcs.n	80135a8 <RegionCommonCountNbOfEnabledChannels+0xba>
+        for( uint8_t j = 0; j < 16; j++ )
+ 80135a4:	2400      	movs	r4, #0
+ 80135a6:	e7cc      	b.n	8013542 <RegionCommonCountNbOfEnabledChannels+0x54>
+            }
+        }
+    }
+    *nbEnabledChannels = nbChannelCount;
+ 80135a8:	9b00      	ldr	r3, [sp, #0]
+ 80135aa:	f883 9000 	strb.w	r9, [r3]
+    *nbRestrictedChannels = nbRestrictedChannelsCount;
+ 80135ae:	9b01      	ldr	r3, [sp, #4]
+ 80135b0:	f883 a000 	strb.w	sl, [r3]
+}
+ 80135b4:	b003      	add	sp, #12
+ 80135b6:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+
+080135ba <RegionCommonIdentifyChannels>:
+
+LoRaMacStatus_t RegionCommonIdentifyChannels( RegionCommonIdentifyChannelsParam_t* identifyChannelsParam,
+                                              TimerTime_t* aggregatedTimeOff, uint8_t* enabledChannels,
+                                              uint8_t* nbEnabledChannels, uint8_t* nbRestrictedChannels,
+                                              TimerTime_t* nextTxDelay )
+{
+ 80135ba:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
+ 80135be:	b085      	sub	sp, #20
+ 80135c0:	4604      	mov	r4, r0
+ 80135c2:	460f      	mov	r7, r1
+ 80135c4:	4616      	mov	r6, r2
+ 80135c6:	461d      	mov	r5, r3
+ 80135c8:	f8dd 8030 	ldr.w	r8, [sp, #48]	; 0x30
+ 80135cc:	f8dd 9034 	ldr.w	r9, [sp, #52]	; 0x34
+    TimerTime_t elapsed = TimerGetElapsedTime( identifyChannelsParam->LastAggrTx );
+ 80135d0:	6840      	ldr	r0, [r0, #4]
+ 80135d2:	f003 fdcd 	bl	8017170 <UTIL_TIMER_GetElapsedTime>
+    *nextTxDelay = identifyChannelsParam->AggrTimeOff - elapsed;
+ 80135d6:	6823      	ldr	r3, [r4, #0]
+ 80135d8:	1a1b      	subs	r3, r3, r0
+ 80135da:	f8c9 3000 	str.w	r3, [r9]
+    *nbRestrictedChannels = 1;
+ 80135de:	2301      	movs	r3, #1
+ 80135e0:	f888 3000 	strb.w	r3, [r8]
+    *nbEnabledChannels = 0;
+ 80135e4:	2300      	movs	r3, #0
+ 80135e6:	702b      	strb	r3, [r5, #0]
+
+    if( ( identifyChannelsParam->LastAggrTx == 0 ) ||
+ 80135e8:	6863      	ldr	r3, [r4, #4]
+ 80135ea:	b113      	cbz	r3, 80135f2 <RegionCommonIdentifyChannels+0x38>
+        ( identifyChannelsParam->AggrTimeOff <= elapsed ) )
+ 80135ec:	6823      	ldr	r3, [r4, #0]
+    if( ( identifyChannelsParam->LastAggrTx == 0 ) ||
+ 80135ee:	4283      	cmp	r3, r0
+ 80135f0:	d81e      	bhi.n	8013630 <RegionCommonIdentifyChannels+0x76>
+    {
+        // Reset Aggregated time off
+        *aggregatedTimeOff = 0;
+ 80135f2:	2300      	movs	r3, #0
+ 80135f4:	603b      	str	r3, [r7, #0]
+
+        // Update bands Time OFF
+        *nextTxDelay = RegionCommonUpdateBandTimeOff( identifyChannelsParam->CountNbOfEnabledChannelsParam->Joined,
+ 80135f6:	69e3      	ldr	r3, [r4, #28]
+ 80135f8:	f8d3 c00c 	ldr.w	ip, [r3, #12]
+ 80135fc:	781f      	ldrb	r7, [r3, #0]
+ 80135fe:	69a3      	ldr	r3, [r4, #24]
+ 8013600:	9303      	str	r3, [sp, #12]
+ 8013602:	ab01      	add	r3, sp, #4
+ 8013604:	f104 020c 	add.w	r2, r4, #12
+ 8013608:	e892 0003 	ldmia.w	r2, {r0, r1}
+ 801360c:	e883 0003 	stmia.w	r3, {r0, r1}
+ 8013610:	7d23      	ldrb	r3, [r4, #20]
+ 8013612:	9300      	str	r3, [sp, #0]
+ 8013614:	7a23      	ldrb	r3, [r4, #8]
+ 8013616:	7a62      	ldrb	r2, [r4, #9]
+ 8013618:	4661      	mov	r1, ip
+ 801361a:	4638      	mov	r0, r7
+ 801361c:	f7ff fe0a 	bl	8013234 <RegionCommonUpdateBandTimeOff>
+ 8013620:	f8c9 0000 	str.w	r0, [r9]
+                                                      identifyChannelsParam->DutyCycleEnabled,
+                                                      identifyChannelsParam->LastTxIsJoinRequest,
+                                                      identifyChannelsParam->ElapsedTimeSinceStartUp,
+                                                      identifyChannelsParam->ExpectedTimeOnAir );
+
+        RegionCommonCountNbOfEnabledChannels( identifyChannelsParam->CountNbOfEnabledChannelsParam, enabledChannels,
+ 8013624:	4643      	mov	r3, r8
+ 8013626:	462a      	mov	r2, r5
+ 8013628:	4631      	mov	r1, r6
+ 801362a:	69e0      	ldr	r0, [r4, #28]
+ 801362c:	f7ff ff5f 	bl	80134ee <RegionCommonCountNbOfEnabledChannels>
+                                              nbEnabledChannels, nbRestrictedChannels );
+    }
+
+    if( *nbEnabledChannels > 0 )
+ 8013630:	782b      	ldrb	r3, [r5, #0]
+ 8013632:	b923      	cbnz	r3, 801363e <RegionCommonIdentifyChannels+0x84>
+    {
+        *nextTxDelay = 0;
+        return LORAMAC_STATUS_OK;
+    }
+    else if( *nbRestrictedChannels > 0 )
+ 8013634:	f898 3000 	ldrb.w	r3, [r8]
+ 8013638:	b13b      	cbz	r3, 801364a <RegionCommonIdentifyChannels+0x90>
+    {
+        return LORAMAC_STATUS_DUTYCYCLE_RESTRICTED;
+ 801363a:	200b      	movs	r0, #11
+ 801363c:	e002      	b.n	8013644 <RegionCommonIdentifyChannels+0x8a>
+        *nextTxDelay = 0;
+ 801363e:	2000      	movs	r0, #0
+ 8013640:	f8c9 0000 	str.w	r0, [r9]
+    }
+    else
+    {
+        return LORAMAC_STATUS_NO_CHANNEL_FOUND;
+    }
+}
+ 8013644:	b005      	add	sp, #20
+ 8013646:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
+        return LORAMAC_STATUS_NO_CHANNEL_FOUND;
+ 801364a:	200c      	movs	r0, #12
+ 801364c:	e7fa      	b.n	8013644 <RegionCommonIdentifyChannels+0x8a>
+
+0801364e <RegionCommonGetNextLowerTxDr>:
+
+int8_t RegionCommonGetNextLowerTxDr( RegionCommonGetNextLowerTxDrParams_t *params )
+{
+ 801364e:	b570      	push	{r4, r5, r6, lr}
+ 8013650:	b082      	sub	sp, #8
+ 8013652:	4605      	mov	r5, r0
+    int8_t drLocal = params->CurrentDr;
+ 8013654:	f990 4000 	ldrsb.w	r4, [r0]
+
+    if( params->CurrentDr == params->MinDr )
+ 8013658:	f990 6002 	ldrsb.w	r6, [r0, #2]
+ 801365c:	42a6      	cmp	r6, r4
+ 801365e:	d011      	beq.n	8013684 <RegionCommonGetNextLowerTxDr+0x36>
+    }
+    else
+    {
+        do
+        {
+            drLocal = ( drLocal - 1 );
+ 8013660:	3c01      	subs	r4, #1
+ 8013662:	b264      	sxtb	r4, r4
+        } while( ( drLocal != params->MinDr ) &&
+ 8013664:	42a6      	cmp	r6, r4
+ 8013666:	d00e      	beq.n	8013686 <RegionCommonGetNextLowerTxDr+0x38>
+                 ( RegionCommonChanVerifyDr( params->NbChannels, params->ChannelsMask, drLocal, params->MinDr, params->MaxDr, params->Channels  ) == false ) );
+ 8013668:	68ab      	ldr	r3, [r5, #8]
+ 801366a:	9301      	str	r3, [sp, #4]
+ 801366c:	f995 3001 	ldrsb.w	r3, [r5, #1]
+ 8013670:	9300      	str	r3, [sp, #0]
+ 8013672:	4633      	mov	r3, r6
+ 8013674:	4622      	mov	r2, r4
+ 8013676:	6869      	ldr	r1, [r5, #4]
+ 8013678:	78e8      	ldrb	r0, [r5, #3]
+ 801367a:	f7ff fd48 	bl	801310e <RegionCommonChanVerifyDr>
+        } while( ( drLocal != params->MinDr ) &&
+ 801367e:	2800      	cmp	r0, #0
+ 8013680:	d0ee      	beq.n	8013660 <RegionCommonGetNextLowerTxDr+0x12>
+ 8013682:	e000      	b.n	8013686 <RegionCommonGetNextLowerTxDr+0x38>
+        return params->MinDr;
+ 8013684:	4634      	mov	r4, r6
+
+        return drLocal;
+    }
+}
+ 8013686:	4620      	mov	r0, r4
+ 8013688:	b002      	add	sp, #8
+ 801368a:	bd70      	pop	{r4, r5, r6, pc}
+
+0801368c <RegionCommonLimitTxPower>:
+
+int8_t RegionCommonLimitTxPower( int8_t txPower, int8_t maxBandTxPower )
+{
+    // Limit tx power to the band max
+    return MAX( txPower, maxBandTxPower );
+}
+ 801368c:	4288      	cmp	r0, r1
+ 801368e:	bfb8      	it	lt
+ 8013690:	4608      	movlt	r0, r1
+ 8013692:	4770      	bx	lr
+
+08013694 <RegionCommonGetBandwidth>:
+
+uint32_t RegionCommonGetBandwidth( uint32_t drIndex, const uint32_t* bandwidths )
+{
+    switch( bandwidths[drIndex] )
+ 8013694:	f851 3020 	ldr.w	r3, [r1, r0, lsl #2]
+ 8013698:	4a05      	ldr	r2, [pc, #20]	; (80136b0 <RegionCommonGetBandwidth+0x1c>)
+ 801369a:	4293      	cmp	r3, r2
+ 801369c:	d004      	beq.n	80136a8 <RegionCommonGetBandwidth+0x14>
+ 801369e:	4a05      	ldr	r2, [pc, #20]	; (80136b4 <RegionCommonGetBandwidth+0x20>)
+ 80136a0:	4293      	cmp	r3, r2
+ 80136a2:	d103      	bne.n	80136ac <RegionCommonGetBandwidth+0x18>
+        case 125000:
+            return 0;
+        case 250000:
+            return 1;
+        case 500000:
+            return 2;
+ 80136a4:	2002      	movs	r0, #2
+ 80136a6:	4770      	bx	lr
+            return 1;
+ 80136a8:	2001      	movs	r0, #1
+ 80136aa:	4770      	bx	lr
+    switch( bandwidths[drIndex] )
+ 80136ac:	2000      	movs	r0, #0
+    }
+}
+ 80136ae:	4770      	bx	lr
+ 80136b0:	0003d090 	.word	0x0003d090
+ 80136b4:	0007a120 	.word	0x0007a120
+
+080136b8 <RegionCommonRxConfigPrint>:
+
+void RegionCommonRxConfigPrint(LoRaMacRxSlot_t rxSlot, uint32_t frequency, int8_t dr)
+{
+ 80136b8:	b500      	push	{lr}
+ 80136ba:	b085      	sub	sp, #20
+    if ( rxSlot < RX_SLOT_NONE )
+ 80136bc:	2805      	cmp	r0, #5
+ 80136be:	d80e      	bhi.n	80136de <RegionCommonRxConfigPrint+0x26>
+    {
+        MW_LOG(TS_ON, VLEVEL_M,  "RX_%s on freq %d Hz at DR %d\r\n", EventRXSlotStrings[rxSlot], frequency, dr );
+ 80136c0:	9202      	str	r2, [sp, #8]
+ 80136c2:	9101      	str	r1, [sp, #4]
+ 80136c4:	4b0a      	ldr	r3, [pc, #40]	; (80136f0 <RegionCommonRxConfigPrint+0x38>)
+ 80136c6:	f853 3020 	ldr.w	r3, [r3, r0, lsl #2]
+ 80136ca:	9300      	str	r3, [sp, #0]
+ 80136cc:	4b09      	ldr	r3, [pc, #36]	; (80136f4 <RegionCommonRxConfigPrint+0x3c>)
+ 80136ce:	2201      	movs	r2, #1
+ 80136d0:	2100      	movs	r1, #0
+ 80136d2:	2002      	movs	r0, #2
+ 80136d4:	f003 fa30 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+    }
+    else
+    {
+        MW_LOG(TS_ON, VLEVEL_M,  "RX on freq %d Hz at DR %d\r\n", frequency, dr );
+    }
+}
+ 80136d8:	b005      	add	sp, #20
+ 80136da:	f85d fb04 	ldr.w	pc, [sp], #4
+        MW_LOG(TS_ON, VLEVEL_M,  "RX on freq %d Hz at DR %d\r\n", frequency, dr );
+ 80136de:	9201      	str	r2, [sp, #4]
+ 80136e0:	9100      	str	r1, [sp, #0]
+ 80136e2:	4b05      	ldr	r3, [pc, #20]	; (80136f8 <RegionCommonRxConfigPrint+0x40>)
+ 80136e4:	2201      	movs	r2, #1
+ 80136e6:	2100      	movs	r1, #0
+ 80136e8:	2002      	movs	r0, #2
+ 80136ea:	f003 fa25 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+}
+ 80136ee:	e7f3      	b.n	80136d8 <RegionCommonRxConfigPrint+0x20>
+ 80136f0:	08018710 	.word	0x08018710
+ 80136f4:	080186a8 	.word	0x080186a8
+ 80136f8:	080186c8 	.word	0x080186c8
+
+080136fc <RegionCommonTxConfigPrint>:
+
+void RegionCommonTxConfigPrint(uint32_t frequency, int8_t dr)
+{
+ 80136fc:	b500      	push	{lr}
+ 80136fe:	b083      	sub	sp, #12
+    MW_LOG(TS_ON, VLEVEL_M,  "TX on freq %d Hz at DR %d\r\n", frequency, dr );
+ 8013700:	9101      	str	r1, [sp, #4]
+ 8013702:	9000      	str	r0, [sp, #0]
+ 8013704:	4b04      	ldr	r3, [pc, #16]	; (8013718 <RegionCommonTxConfigPrint+0x1c>)
+ 8013706:	2201      	movs	r2, #1
+ 8013708:	2100      	movs	r1, #0
+ 801370a:	2002      	movs	r0, #2
+ 801370c:	f003 fa14 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+}
+ 8013710:	b003      	add	sp, #12
+ 8013712:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8013716:	bf00      	nop
+ 8013718:	080186e4 	.word	0x080186e4
+
+0801371c <AES_CMAC_Init>:
+            ( r )[i] = ( r )[i] ^ ( v )[i]; \
+        }                                   \
+    } while( 0 )
+
+void AES_CMAC_Init( AES_CMAC_CTX* ctx )
+{
+ 801371c:	b510      	push	{r4, lr}
+ 801371e:	4604      	mov	r4, r0
+    memset1( ctx->X, 0, sizeof ctx->X );
+ 8013720:	2210      	movs	r2, #16
+ 8013722:	2100      	movs	r1, #0
+ 8013724:	30f1      	adds	r0, #241	; 0xf1
+ 8013726:	f000 ff50 	bl	80145ca <memset1>
+    ctx->M_n = 0;
+ 801372a:	2100      	movs	r1, #0
+ 801372c:	f8c4 1114 	str.w	r1, [r4, #276]	; 0x114
+    memset1( ctx->rijndael.ksch, '\0', 240 );
+ 8013730:	22f0      	movs	r2, #240	; 0xf0
+ 8013732:	4620      	mov	r0, r4
+ 8013734:	f000 ff49 	bl	80145ca <memset1>
+}
+ 8013738:	bd10      	pop	{r4, pc}
+
+0801373a <AES_CMAC_SetKey>:
+
+void AES_CMAC_SetKey( AES_CMAC_CTX* ctx, const uint8_t key[AES_CMAC_KEY_LENGTH] )
+{
+ 801373a:	b508      	push	{r3, lr}
+ 801373c:	4602      	mov	r2, r0
+ 801373e:	4608      	mov	r0, r1
+    lorawan_aes_set_key( key, AES_CMAC_KEY_LENGTH, &ctx->rijndael );
+ 8013740:	2110      	movs	r1, #16
+ 8013742:	f000 fb3b 	bl	8013dbc <lorawan_aes_set_key>
+}
+ 8013746:	bd08      	pop	{r3, pc}
+
+08013748 <AES_CMAC_Update>:
+
+void AES_CMAC_Update( AES_CMAC_CTX* ctx, const uint8_t* data, uint32_t len )
+{
+ 8013748:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 801374c:	b084      	sub	sp, #16
+ 801374e:	4604      	mov	r4, r0
+ 8013750:	460d      	mov	r5, r1
+ 8013752:	4616      	mov	r6, r2
+    uint32_t mlen;
+    uint8_t  in[16];
+
+    if( ctx->M_n > 0 )
+ 8013754:	f8d0 3114 	ldr.w	r3, [r0, #276]	; 0x114
+ 8013758:	2b00      	cmp	r3, #0
+ 801375a:	d054      	beq.n	8013806 <AES_CMAC_Update+0xbe>
+    {
+        mlen = MIN( 16 - ctx->M_n, len );
+ 801375c:	f1c3 0810 	rsb	r8, r3, #16
+ 8013760:	4647      	mov	r7, r8
+ 8013762:	4590      	cmp	r8, r2
+ 8013764:	bf28      	it	cs
+ 8013766:	4617      	movcs	r7, r2
+        memcpy1( ctx->M_last + ctx->M_n, data, mlen );
+ 8013768:	f200 1001 	addw	r0, r0, #257	; 0x101
+ 801376c:	b2ba      	uxth	r2, r7
+ 801376e:	4418      	add	r0, r3
+ 8013770:	f000 ff13 	bl	801459a <memcpy1>
+        ctx->M_n += mlen;
+ 8013774:	f8d4 3114 	ldr.w	r3, [r4, #276]	; 0x114
+ 8013778:	443b      	add	r3, r7
+ 801377a:	f8c4 3114 	str.w	r3, [r4, #276]	; 0x114
+        if( ctx->M_n < 16 || len == mlen )
+ 801377e:	2b0f      	cmp	r3, #15
+ 8013780:	d94d      	bls.n	801381e <AES_CMAC_Update+0xd6>
+ 8013782:	45b0      	cmp	r8, r6
+ 8013784:	d24b      	bcs.n	801381e <AES_CMAC_Update+0xd6>
+            return;
+        XOR( ctx->M_last, ctx->X );
+ 8013786:	2300      	movs	r3, #0
+ 8013788:	e008      	b.n	801379c <AES_CMAC_Update+0x54>
+ 801378a:	18e2      	adds	r2, r4, r3
+ 801378c:	f892 10f1 	ldrb.w	r1, [r2, #241]	; 0xf1
+ 8013790:	f892 0101 	ldrb.w	r0, [r2, #257]	; 0x101
+ 8013794:	4041      	eors	r1, r0
+ 8013796:	f882 10f1 	strb.w	r1, [r2, #241]	; 0xf1
+ 801379a:	3301      	adds	r3, #1
+ 801379c:	2b0f      	cmp	r3, #15
+ 801379e:	ddf4      	ble.n	801378a <AES_CMAC_Update+0x42>
+
+        memcpy1( in, &ctx->X[0], 16 );  // Otherwise it does not look good
+ 80137a0:	f104 08f1 	add.w	r8, r4, #241	; 0xf1
+ 80137a4:	2210      	movs	r2, #16
+ 80137a6:	4641      	mov	r1, r8
+ 80137a8:	4668      	mov	r0, sp
+ 80137aa:	f000 fef6 	bl	801459a <memcpy1>
+        lorawan_aes_encrypt( in, in, &ctx->rijndael );
+ 80137ae:	4622      	mov	r2, r4
+ 80137b0:	4669      	mov	r1, sp
+ 80137b2:	4668      	mov	r0, sp
+ 80137b4:	f000 fb86 	bl	8013ec4 <lorawan_aes_encrypt>
+        memcpy1( &ctx->X[0], in, 16 );
+ 80137b8:	2210      	movs	r2, #16
+ 80137ba:	4669      	mov	r1, sp
+ 80137bc:	4640      	mov	r0, r8
+ 80137be:	f000 feec 	bl	801459a <memcpy1>
+
+        data += mlen;
+ 80137c2:	443d      	add	r5, r7
+        len -= mlen;
+ 80137c4:	1bf6      	subs	r6, r6, r7
+ 80137c6:	e01e      	b.n	8013806 <AES_CMAC_Update+0xbe>
+    }
+    while( len > 16 )
+    { /* not last block */
+
+        XOR( data, ctx->X );
+ 80137c8:	eb04 0e03 	add.w	lr, r4, r3
+ 80137cc:	f89e c0f1 	ldrb.w	ip, [lr, #241]	; 0xf1
+ 80137d0:	5cea      	ldrb	r2, [r5, r3]
+ 80137d2:	ea8c 0c02 	eor.w	ip, ip, r2
+ 80137d6:	f88e c0f1 	strb.w	ip, [lr, #241]	; 0xf1
+ 80137da:	3301      	adds	r3, #1
+ 80137dc:	2b0f      	cmp	r3, #15
+ 80137de:	ddf3      	ble.n	80137c8 <AES_CMAC_Update+0x80>
+
+        memcpy1( in, &ctx->X[0], 16 );  // Otherwise it does not look good
+ 80137e0:	f104 07f1 	add.w	r7, r4, #241	; 0xf1
+ 80137e4:	2210      	movs	r2, #16
+ 80137e6:	4639      	mov	r1, r7
+ 80137e8:	4668      	mov	r0, sp
+ 80137ea:	f000 fed6 	bl	801459a <memcpy1>
+        lorawan_aes_encrypt( in, in, &ctx->rijndael );
+ 80137ee:	4622      	mov	r2, r4
+ 80137f0:	4669      	mov	r1, sp
+ 80137f2:	4668      	mov	r0, sp
+ 80137f4:	f000 fb66 	bl	8013ec4 <lorawan_aes_encrypt>
+        memcpy1( &ctx->X[0], in, 16 );
+ 80137f8:	2210      	movs	r2, #16
+ 80137fa:	4669      	mov	r1, sp
+ 80137fc:	4638      	mov	r0, r7
+ 80137fe:	f000 fecc 	bl	801459a <memcpy1>
+
+        data += 16;
+ 8013802:	3510      	adds	r5, #16
+        len -= 16;
+ 8013804:	3e10      	subs	r6, #16
+    while( len > 16 )
+ 8013806:	2e10      	cmp	r6, #16
+ 8013808:	d901      	bls.n	801380e <AES_CMAC_Update+0xc6>
+        XOR( data, ctx->X );
+ 801380a:	2300      	movs	r3, #0
+ 801380c:	e7e6      	b.n	80137dc <AES_CMAC_Update+0x94>
+    }
+    /* potential last block, save it */
+    memcpy1( ctx->M_last, data, len );
+ 801380e:	b2b2      	uxth	r2, r6
+ 8013810:	4629      	mov	r1, r5
+ 8013812:	f204 1001 	addw	r0, r4, #257	; 0x101
+ 8013816:	f000 fec0 	bl	801459a <memcpy1>
+    ctx->M_n = len;
+ 801381a:	f8c4 6114 	str.w	r6, [r4, #276]	; 0x114
+}
+ 801381e:	b004      	add	sp, #16
+ 8013820:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+
+08013824 <AES_CMAC_Final>:
+
+void AES_CMAC_Final( uint8_t digest[AES_CMAC_DIGEST_LENGTH], AES_CMAC_CTX* ctx )
+{
+ 8013824:	b530      	push	{r4, r5, lr}
+ 8013826:	b089      	sub	sp, #36	; 0x24
+ 8013828:	4605      	mov	r5, r0
+ 801382a:	460c      	mov	r4, r1
+    uint8_t K[16];
+    uint8_t in[16];
+    /* generate subkey K1 */
+    memset1( K, '\0', 16 );
+ 801382c:	2210      	movs	r2, #16
+ 801382e:	2100      	movs	r1, #0
+ 8013830:	eb0d 0002 	add.w	r0, sp, r2
+ 8013834:	f000 fec9 	bl	80145ca <memset1>
+
+    lorawan_aes_encrypt( K, K, &ctx->rijndael );
+ 8013838:	4622      	mov	r2, r4
+ 801383a:	a904      	add	r1, sp, #16
+ 801383c:	4608      	mov	r0, r1
+ 801383e:	f000 fb41 	bl	8013ec4 <lorawan_aes_encrypt>
+
+    if( K[0] & 0x80 )
+ 8013842:	f99d 3010 	ldrsb.w	r3, [sp, #16]
+ 8013846:	2b00      	cmp	r3, #0
+ 8013848:	db01      	blt.n	801384e <AES_CMAC_Final+0x2a>
+    {
+        LSHIFT( K, K );
+        K[15] ^= 0x87;
+    }
+    else
+        LSHIFT( K, K );
+ 801384a:	2300      	movs	r3, #0
+ 801384c:	e030      	b.n	80138b0 <AES_CMAC_Final+0x8c>
+        LSHIFT( K, K );
+ 801384e:	2300      	movs	r3, #0
+ 8013850:	2b0e      	cmp	r3, #14
+ 8013852:	dc11      	bgt.n	8013878 <AES_CMAC_Final+0x54>
+ 8013854:	f103 0220 	add.w	r2, r3, #32
+ 8013858:	eb0d 0102 	add.w	r1, sp, r2
+ 801385c:	f811 0c10 	ldrb.w	r0, [r1, #-16]
+ 8013860:	3301      	adds	r3, #1
+ 8013862:	f103 0220 	add.w	r2, r3, #32
+ 8013866:	446a      	add	r2, sp
+ 8013868:	f812 2c10 	ldrb.w	r2, [r2, #-16]
+ 801386c:	09d2      	lsrs	r2, r2, #7
+ 801386e:	ea42 0240 	orr.w	r2, r2, r0, lsl #1
+ 8013872:	f801 2c10 	strb.w	r2, [r1, #-16]
+ 8013876:	e7eb      	b.n	8013850 <AES_CMAC_Final+0x2c>
+ 8013878:	f89d 301f 	ldrb.w	r3, [sp, #31]
+ 801387c:	005b      	lsls	r3, r3, #1
+ 801387e:	b2db      	uxtb	r3, r3
+ 8013880:	f88d 301f 	strb.w	r3, [sp, #31]
+        K[15] ^= 0x87;
+ 8013884:	f083 0387 	eor.w	r3, r3, #135	; 0x87
+ 8013888:	f88d 301f 	strb.w	r3, [sp, #31]
+ 801388c:	e017      	b.n	80138be <AES_CMAC_Final+0x9a>
+        LSHIFT( K, K );
+ 801388e:	f103 0220 	add.w	r2, r3, #32
+ 8013892:	eb0d 0102 	add.w	r1, sp, r2
+ 8013896:	f811 0c10 	ldrb.w	r0, [r1, #-16]
+ 801389a:	3301      	adds	r3, #1
+ 801389c:	f103 0220 	add.w	r2, r3, #32
+ 80138a0:	446a      	add	r2, sp
+ 80138a2:	f812 2c10 	ldrb.w	r2, [r2, #-16]
+ 80138a6:	09d2      	lsrs	r2, r2, #7
+ 80138a8:	ea42 0240 	orr.w	r2, r2, r0, lsl #1
+ 80138ac:	f801 2c10 	strb.w	r2, [r1, #-16]
+ 80138b0:	2b0e      	cmp	r3, #14
+ 80138b2:	ddec      	ble.n	801388e <AES_CMAC_Final+0x6a>
+ 80138b4:	f89d 301f 	ldrb.w	r3, [sp, #31]
+ 80138b8:	005b      	lsls	r3, r3, #1
+ 80138ba:	f88d 301f 	strb.w	r3, [sp, #31]
+
+    if( ctx->M_n == 16 )
+ 80138be:	f8d4 0114 	ldr.w	r0, [r4, #276]	; 0x114
+ 80138c2:	2810      	cmp	r0, #16
+ 80138c4:	d014      	beq.n	80138f0 <AES_CMAC_Final+0xcc>
+        XOR( K, ctx->M_last );
+    }
+    else
+    {
+        /* generate subkey K2 */
+        if( K[0] & 0x80 )
+ 80138c6:	f99d 3010 	ldrsb.w	r3, [sp, #16]
+ 80138ca:	2b00      	cmp	r3, #0
+ 80138cc:	db30      	blt.n	8013930 <AES_CMAC_Final+0x10c>
+        {
+            LSHIFT( K, K );
+            K[15] ^= 0x87;
+        }
+        else
+            LSHIFT( K, K );
+ 80138ce:	2300      	movs	r3, #0
+ 80138d0:	e041      	b.n	8013956 <AES_CMAC_Final+0x132>
+        XOR( K, ctx->M_last );
+ 80138d2:	18e1      	adds	r1, r4, r3
+ 80138d4:	f891 2101 	ldrb.w	r2, [r1, #257]	; 0x101
+ 80138d8:	f103 0020 	add.w	r0, r3, #32
+ 80138dc:	4468      	add	r0, sp
+ 80138de:	f810 0c10 	ldrb.w	r0, [r0, #-16]
+ 80138e2:	4042      	eors	r2, r0
+ 80138e4:	f881 2101 	strb.w	r2, [r1, #257]	; 0x101
+ 80138e8:	3301      	adds	r3, #1
+ 80138ea:	2b0f      	cmp	r3, #15
+ 80138ec:	ddf1      	ble.n	80138d2 <AES_CMAC_Final+0xae>
+ 80138ee:	e059      	b.n	80139a4 <AES_CMAC_Final+0x180>
+ 80138f0:	2300      	movs	r3, #0
+ 80138f2:	e7fa      	b.n	80138ea <AES_CMAC_Final+0xc6>
+            LSHIFT( K, K );
+ 80138f4:	f103 0220 	add.w	r2, r3, #32
+ 80138f8:	eb0d 0102 	add.w	r1, sp, r2
+ 80138fc:	f811 cc10 	ldrb.w	ip, [r1, #-16]
+ 8013900:	3301      	adds	r3, #1
+ 8013902:	f103 0220 	add.w	r2, r3, #32
+ 8013906:	446a      	add	r2, sp
+ 8013908:	f812 2c10 	ldrb.w	r2, [r2, #-16]
+ 801390c:	09d2      	lsrs	r2, r2, #7
+ 801390e:	ea42 024c 	orr.w	r2, r2, ip, lsl #1
+ 8013912:	f801 2c10 	strb.w	r2, [r1, #-16]
+ 8013916:	2b0e      	cmp	r3, #14
+ 8013918:	ddec      	ble.n	80138f4 <AES_CMAC_Final+0xd0>
+ 801391a:	f89d 301f 	ldrb.w	r3, [sp, #31]
+ 801391e:	005b      	lsls	r3, r3, #1
+ 8013920:	b2db      	uxtb	r3, r3
+ 8013922:	f88d 301f 	strb.w	r3, [sp, #31]
+            K[15] ^= 0x87;
+ 8013926:	f083 0387 	eor.w	r3, r3, #135	; 0x87
+ 801392a:	f88d 301f 	strb.w	r3, [sp, #31]
+ 801392e:	e019      	b.n	8013964 <AES_CMAC_Final+0x140>
+            LSHIFT( K, K );
+ 8013930:	2300      	movs	r3, #0
+ 8013932:	e7f0      	b.n	8013916 <AES_CMAC_Final+0xf2>
+            LSHIFT( K, K );
+ 8013934:	f103 0220 	add.w	r2, r3, #32
+ 8013938:	eb0d 0102 	add.w	r1, sp, r2
+ 801393c:	f811 cc10 	ldrb.w	ip, [r1, #-16]
+ 8013940:	3301      	adds	r3, #1
+ 8013942:	f103 0220 	add.w	r2, r3, #32
+ 8013946:	446a      	add	r2, sp
+ 8013948:	f812 2c10 	ldrb.w	r2, [r2, #-16]
+ 801394c:	09d2      	lsrs	r2, r2, #7
+ 801394e:	ea42 024c 	orr.w	r2, r2, ip, lsl #1
+ 8013952:	f801 2c10 	strb.w	r2, [r1, #-16]
+ 8013956:	2b0e      	cmp	r3, #14
+ 8013958:	ddec      	ble.n	8013934 <AES_CMAC_Final+0x110>
+ 801395a:	f89d 301f 	ldrb.w	r3, [sp, #31]
+ 801395e:	005b      	lsls	r3, r3, #1
+ 8013960:	f88d 301f 	strb.w	r3, [sp, #31]
+
+        /* padding(M_last) */
+        ctx->M_last[ctx->M_n] = 0x80;
+ 8013964:	4420      	add	r0, r4
+ 8013966:	2380      	movs	r3, #128	; 0x80
+ 8013968:	f880 3101 	strb.w	r3, [r0, #257]	; 0x101
+        while( ++ctx->M_n < 16 )
+ 801396c:	e003      	b.n	8013976 <AES_CMAC_Final+0x152>
+            ctx->M_last[ctx->M_n] = 0;
+ 801396e:	4423      	add	r3, r4
+ 8013970:	2200      	movs	r2, #0
+ 8013972:	f883 2101 	strb.w	r2, [r3, #257]	; 0x101
+        while( ++ctx->M_n < 16 )
+ 8013976:	f8d4 3114 	ldr.w	r3, [r4, #276]	; 0x114
+ 801397a:	3301      	adds	r3, #1
+ 801397c:	f8c4 3114 	str.w	r3, [r4, #276]	; 0x114
+ 8013980:	2b0f      	cmp	r3, #15
+ 8013982:	d9f4      	bls.n	801396e <AES_CMAC_Final+0x14a>
+
+        XOR( K, ctx->M_last );
+ 8013984:	2300      	movs	r3, #0
+ 8013986:	e00b      	b.n	80139a0 <AES_CMAC_Final+0x17c>
+ 8013988:	18e1      	adds	r1, r4, r3
+ 801398a:	f891 2101 	ldrb.w	r2, [r1, #257]	; 0x101
+ 801398e:	f103 0020 	add.w	r0, r3, #32
+ 8013992:	4468      	add	r0, sp
+ 8013994:	f810 0c10 	ldrb.w	r0, [r0, #-16]
+ 8013998:	4042      	eors	r2, r0
+ 801399a:	f881 2101 	strb.w	r2, [r1, #257]	; 0x101
+ 801399e:	3301      	adds	r3, #1
+ 80139a0:	2b0f      	cmp	r3, #15
+ 80139a2:	ddf1      	ble.n	8013988 <AES_CMAC_Final+0x164>
+ 80139a4:	2300      	movs	r3, #0
+ 80139a6:	e009      	b.n	80139bc <AES_CMAC_Final+0x198>
+    }
+    XOR( ctx->M_last, ctx->X );
+ 80139a8:	18e2      	adds	r2, r4, r3
+ 80139aa:	f892 c0f1 	ldrb.w	ip, [r2, #241]	; 0xf1
+ 80139ae:	f892 1101 	ldrb.w	r1, [r2, #257]	; 0x101
+ 80139b2:	ea8c 0c01 	eor.w	ip, ip, r1
+ 80139b6:	f882 c0f1 	strb.w	ip, [r2, #241]	; 0xf1
+ 80139ba:	3301      	adds	r3, #1
+ 80139bc:	2b0f      	cmp	r3, #15
+ 80139be:	ddf3      	ble.n	80139a8 <AES_CMAC_Final+0x184>
+
+    memcpy1( in, &ctx->X[0], 16 );  // Otherwise it does not look good
+ 80139c0:	2210      	movs	r2, #16
+ 80139c2:	f104 01f1 	add.w	r1, r4, #241	; 0xf1
+ 80139c6:	4668      	mov	r0, sp
+ 80139c8:	f000 fde7 	bl	801459a <memcpy1>
+    lorawan_aes_encrypt( in, digest, &ctx->rijndael );
+ 80139cc:	4622      	mov	r2, r4
+ 80139ce:	4629      	mov	r1, r5
+ 80139d0:	4668      	mov	r0, sp
+ 80139d2:	f000 fa77 	bl	8013ec4 <lorawan_aes_encrypt>
+    memset1( K, 0, sizeof K );
+ 80139d6:	2210      	movs	r2, #16
+ 80139d8:	2100      	movs	r1, #0
+ 80139da:	eb0d 0002 	add.w	r0, sp, r2
+ 80139de:	f000 fdf4 	bl	80145ca <memset1>
+}
+ 80139e2:	b009      	add	sp, #36	; 0x24
+ 80139e4:	bd30      	pop	{r4, r5, pc}
+
+080139e6 <copy_block>:
+    ((uint32_t*)d)[ 0] = ((uint32_t*)s)[ 0];
+    ((uint32_t*)d)[ 1] = ((uint32_t*)s)[ 1];
+    ((uint32_t*)d)[ 2] = ((uint32_t*)s)[ 2];
+    ((uint32_t*)d)[ 3] = ((uint32_t*)s)[ 3];
+#else
+    ((uint8_t*)d)[ 0] = ((uint8_t*)s)[ 0];
+ 80139e6:	780b      	ldrb	r3, [r1, #0]
+ 80139e8:	7003      	strb	r3, [r0, #0]
+    ((uint8_t*)d)[ 1] = ((uint8_t*)s)[ 1];
+ 80139ea:	784b      	ldrb	r3, [r1, #1]
+ 80139ec:	7043      	strb	r3, [r0, #1]
+    ((uint8_t*)d)[ 2] = ((uint8_t*)s)[ 2];
+ 80139ee:	788b      	ldrb	r3, [r1, #2]
+ 80139f0:	7083      	strb	r3, [r0, #2]
+    ((uint8_t*)d)[ 3] = ((uint8_t*)s)[ 3];
+ 80139f2:	78cb      	ldrb	r3, [r1, #3]
+ 80139f4:	70c3      	strb	r3, [r0, #3]
+    ((uint8_t*)d)[ 4] = ((uint8_t*)s)[ 4];
+ 80139f6:	790b      	ldrb	r3, [r1, #4]
+ 80139f8:	7103      	strb	r3, [r0, #4]
+    ((uint8_t*)d)[ 5] = ((uint8_t*)s)[ 5];
+ 80139fa:	794b      	ldrb	r3, [r1, #5]
+ 80139fc:	7143      	strb	r3, [r0, #5]
+    ((uint8_t*)d)[ 6] = ((uint8_t*)s)[ 6];
+ 80139fe:	798b      	ldrb	r3, [r1, #6]
+ 8013a00:	7183      	strb	r3, [r0, #6]
+    ((uint8_t*)d)[ 7] = ((uint8_t*)s)[ 7];
+ 8013a02:	79cb      	ldrb	r3, [r1, #7]
+ 8013a04:	71c3      	strb	r3, [r0, #7]
+    ((uint8_t*)d)[ 8] = ((uint8_t*)s)[ 8];
+ 8013a06:	7a0b      	ldrb	r3, [r1, #8]
+ 8013a08:	7203      	strb	r3, [r0, #8]
+    ((uint8_t*)d)[ 9] = ((uint8_t*)s)[ 9];
+ 8013a0a:	7a4b      	ldrb	r3, [r1, #9]
+ 8013a0c:	7243      	strb	r3, [r0, #9]
+    ((uint8_t*)d)[10] = ((uint8_t*)s)[10];
+ 8013a0e:	7a8b      	ldrb	r3, [r1, #10]
+ 8013a10:	7283      	strb	r3, [r0, #10]
+    ((uint8_t*)d)[11] = ((uint8_t*)s)[11];
+ 8013a12:	7acb      	ldrb	r3, [r1, #11]
+ 8013a14:	72c3      	strb	r3, [r0, #11]
+    ((uint8_t*)d)[12] = ((uint8_t*)s)[12];
+ 8013a16:	7b0b      	ldrb	r3, [r1, #12]
+ 8013a18:	7303      	strb	r3, [r0, #12]
+    ((uint8_t*)d)[13] = ((uint8_t*)s)[13];
+ 8013a1a:	7b4b      	ldrb	r3, [r1, #13]
+ 8013a1c:	7343      	strb	r3, [r0, #13]
+    ((uint8_t*)d)[14] = ((uint8_t*)s)[14];
+ 8013a1e:	7b8b      	ldrb	r3, [r1, #14]
+ 8013a20:	7383      	strb	r3, [r0, #14]
+    ((uint8_t*)d)[15] = ((uint8_t*)s)[15];
+ 8013a22:	7bcb      	ldrb	r3, [r1, #15]
+ 8013a24:	73c3      	strb	r3, [r0, #15]
+#endif
+}
+ 8013a26:	4770      	bx	lr
+
+08013a28 <copy_block_nn>:
+
+static void copy_block_nn( uint8_t * d, const uint8_t *s, uint8_t nn )
+{
+    while( nn-- )
+ 8013a28:	e004      	b.n	8013a34 <copy_block_nn+0xc>
+        //*((uint8_t*)d)++ = *((uint8_t*)s)++;
+        *d++ = *s++;
+ 8013a2a:	f811 2b01 	ldrb.w	r2, [r1], #1
+ 8013a2e:	f800 2b01 	strb.w	r2, [r0], #1
+    while( nn-- )
+ 8013a32:	461a      	mov	r2, r3
+ 8013a34:	1e53      	subs	r3, r2, #1
+ 8013a36:	b2db      	uxtb	r3, r3
+ 8013a38:	2a00      	cmp	r2, #0
+ 8013a3a:	d1f6      	bne.n	8013a2a <copy_block_nn+0x2>
+}
+ 8013a3c:	4770      	bx	lr
+
+08013a3e <xor_block>:
+    ((uint32_t*)d)[ 0] ^= ((uint32_t*)s)[ 0];
+    ((uint32_t*)d)[ 1] ^= ((uint32_t*)s)[ 1];
+    ((uint32_t*)d)[ 2] ^= ((uint32_t*)s)[ 2];
+    ((uint32_t*)d)[ 3] ^= ((uint32_t*)s)[ 3];
+#else
+    ((uint8_t*)d)[ 0] ^= ((uint8_t*)s)[ 0];
+ 8013a3e:	780b      	ldrb	r3, [r1, #0]
+ 8013a40:	7802      	ldrb	r2, [r0, #0]
+ 8013a42:	4053      	eors	r3, r2
+ 8013a44:	7003      	strb	r3, [r0, #0]
+    ((uint8_t*)d)[ 1] ^= ((uint8_t*)s)[ 1];
+ 8013a46:	784b      	ldrb	r3, [r1, #1]
+ 8013a48:	7842      	ldrb	r2, [r0, #1]
+ 8013a4a:	4053      	eors	r3, r2
+ 8013a4c:	7043      	strb	r3, [r0, #1]
+    ((uint8_t*)d)[ 2] ^= ((uint8_t*)s)[ 2];
+ 8013a4e:	788b      	ldrb	r3, [r1, #2]
+ 8013a50:	7882      	ldrb	r2, [r0, #2]
+ 8013a52:	4053      	eors	r3, r2
+ 8013a54:	7083      	strb	r3, [r0, #2]
+    ((uint8_t*)d)[ 3] ^= ((uint8_t*)s)[ 3];
+ 8013a56:	78cb      	ldrb	r3, [r1, #3]
+ 8013a58:	78c2      	ldrb	r2, [r0, #3]
+ 8013a5a:	4053      	eors	r3, r2
+ 8013a5c:	70c3      	strb	r3, [r0, #3]
+    ((uint8_t*)d)[ 4] ^= ((uint8_t*)s)[ 4];
+ 8013a5e:	790b      	ldrb	r3, [r1, #4]
+ 8013a60:	7902      	ldrb	r2, [r0, #4]
+ 8013a62:	4053      	eors	r3, r2
+ 8013a64:	7103      	strb	r3, [r0, #4]
+    ((uint8_t*)d)[ 5] ^= ((uint8_t*)s)[ 5];
+ 8013a66:	794b      	ldrb	r3, [r1, #5]
+ 8013a68:	7942      	ldrb	r2, [r0, #5]
+ 8013a6a:	4053      	eors	r3, r2
+ 8013a6c:	7143      	strb	r3, [r0, #5]
+    ((uint8_t*)d)[ 6] ^= ((uint8_t*)s)[ 6];
+ 8013a6e:	798b      	ldrb	r3, [r1, #6]
+ 8013a70:	7982      	ldrb	r2, [r0, #6]
+ 8013a72:	4053      	eors	r3, r2
+ 8013a74:	7183      	strb	r3, [r0, #6]
+    ((uint8_t*)d)[ 7] ^= ((uint8_t*)s)[ 7];
+ 8013a76:	79cb      	ldrb	r3, [r1, #7]
+ 8013a78:	79c2      	ldrb	r2, [r0, #7]
+ 8013a7a:	4053      	eors	r3, r2
+ 8013a7c:	71c3      	strb	r3, [r0, #7]
+    ((uint8_t*)d)[ 8] ^= ((uint8_t*)s)[ 8];
+ 8013a7e:	7a0b      	ldrb	r3, [r1, #8]
+ 8013a80:	7a02      	ldrb	r2, [r0, #8]
+ 8013a82:	4053      	eors	r3, r2
+ 8013a84:	7203      	strb	r3, [r0, #8]
+    ((uint8_t*)d)[ 9] ^= ((uint8_t*)s)[ 9];
+ 8013a86:	7a4b      	ldrb	r3, [r1, #9]
+ 8013a88:	7a42      	ldrb	r2, [r0, #9]
+ 8013a8a:	4053      	eors	r3, r2
+ 8013a8c:	7243      	strb	r3, [r0, #9]
+    ((uint8_t*)d)[10] ^= ((uint8_t*)s)[10];
+ 8013a8e:	7a8b      	ldrb	r3, [r1, #10]
+ 8013a90:	7a82      	ldrb	r2, [r0, #10]
+ 8013a92:	4053      	eors	r3, r2
+ 8013a94:	7283      	strb	r3, [r0, #10]
+    ((uint8_t*)d)[11] ^= ((uint8_t*)s)[11];
+ 8013a96:	7acb      	ldrb	r3, [r1, #11]
+ 8013a98:	7ac2      	ldrb	r2, [r0, #11]
+ 8013a9a:	4053      	eors	r3, r2
+ 8013a9c:	72c3      	strb	r3, [r0, #11]
+    ((uint8_t*)d)[12] ^= ((uint8_t*)s)[12];
+ 8013a9e:	7b0b      	ldrb	r3, [r1, #12]
+ 8013aa0:	7b02      	ldrb	r2, [r0, #12]
+ 8013aa2:	4053      	eors	r3, r2
+ 8013aa4:	7303      	strb	r3, [r0, #12]
+    ((uint8_t*)d)[13] ^= ((uint8_t*)s)[13];
+ 8013aa6:	7b4b      	ldrb	r3, [r1, #13]
+ 8013aa8:	7b42      	ldrb	r2, [r0, #13]
+ 8013aaa:	4053      	eors	r3, r2
+ 8013aac:	7343      	strb	r3, [r0, #13]
+    ((uint8_t*)d)[14] ^= ((uint8_t*)s)[14];
+ 8013aae:	7b8b      	ldrb	r3, [r1, #14]
+ 8013ab0:	7b82      	ldrb	r2, [r0, #14]
+ 8013ab2:	4053      	eors	r3, r2
+ 8013ab4:	7383      	strb	r3, [r0, #14]
+    ((uint8_t*)d)[15] ^= ((uint8_t*)s)[15];
+ 8013ab6:	7bcb      	ldrb	r3, [r1, #15]
+ 8013ab8:	7bc2      	ldrb	r2, [r0, #15]
+ 8013aba:	4053      	eors	r3, r2
+ 8013abc:	73c3      	strb	r3, [r0, #15]
+#endif
+}
+ 8013abe:	4770      	bx	lr
+
+08013ac0 <copy_and_key>:
+    ((uint32_t*)d)[ 0] = ((uint32_t*)s)[ 0] ^ ((uint32_t*)k)[ 0];
+    ((uint32_t*)d)[ 1] = ((uint32_t*)s)[ 1] ^ ((uint32_t*)k)[ 1];
+    ((uint32_t*)d)[ 2] = ((uint32_t*)s)[ 2] ^ ((uint32_t*)k)[ 2];
+    ((uint32_t*)d)[ 3] = ((uint32_t*)s)[ 3] ^ ((uint32_t*)k)[ 3];
+#elif 1
+    ((uint8_t*)d)[ 0] = ((uint8_t*)s)[ 0] ^ ((uint8_t*)k)[ 0];
+ 8013ac0:	780b      	ldrb	r3, [r1, #0]
+ 8013ac2:	f892 c000 	ldrb.w	ip, [r2]
+ 8013ac6:	ea83 030c 	eor.w	r3, r3, ip
+ 8013aca:	7003      	strb	r3, [r0, #0]
+    ((uint8_t*)d)[ 1] = ((uint8_t*)s)[ 1] ^ ((uint8_t*)k)[ 1];
+ 8013acc:	784b      	ldrb	r3, [r1, #1]
+ 8013ace:	f892 c001 	ldrb.w	ip, [r2, #1]
+ 8013ad2:	ea83 030c 	eor.w	r3, r3, ip
+ 8013ad6:	7043      	strb	r3, [r0, #1]
+    ((uint8_t*)d)[ 2] = ((uint8_t*)s)[ 2] ^ ((uint8_t*)k)[ 2];
+ 8013ad8:	788b      	ldrb	r3, [r1, #2]
+ 8013ada:	f892 c002 	ldrb.w	ip, [r2, #2]
+ 8013ade:	ea83 030c 	eor.w	r3, r3, ip
+ 8013ae2:	7083      	strb	r3, [r0, #2]
+    ((uint8_t*)d)[ 3] = ((uint8_t*)s)[ 3] ^ ((uint8_t*)k)[ 3];
+ 8013ae4:	78cb      	ldrb	r3, [r1, #3]
+ 8013ae6:	f892 c003 	ldrb.w	ip, [r2, #3]
+ 8013aea:	ea83 030c 	eor.w	r3, r3, ip
+ 8013aee:	70c3      	strb	r3, [r0, #3]
+    ((uint8_t*)d)[ 4] = ((uint8_t*)s)[ 4] ^ ((uint8_t*)k)[ 4];
+ 8013af0:	790b      	ldrb	r3, [r1, #4]
+ 8013af2:	f892 c004 	ldrb.w	ip, [r2, #4]
+ 8013af6:	ea83 030c 	eor.w	r3, r3, ip
+ 8013afa:	7103      	strb	r3, [r0, #4]
+    ((uint8_t*)d)[ 5] = ((uint8_t*)s)[ 5] ^ ((uint8_t*)k)[ 5];
+ 8013afc:	794b      	ldrb	r3, [r1, #5]
+ 8013afe:	f892 c005 	ldrb.w	ip, [r2, #5]
+ 8013b02:	ea83 030c 	eor.w	r3, r3, ip
+ 8013b06:	7143      	strb	r3, [r0, #5]
+    ((uint8_t*)d)[ 6] = ((uint8_t*)s)[ 6] ^ ((uint8_t*)k)[ 6];
+ 8013b08:	798b      	ldrb	r3, [r1, #6]
+ 8013b0a:	f892 c006 	ldrb.w	ip, [r2, #6]
+ 8013b0e:	ea83 030c 	eor.w	r3, r3, ip
+ 8013b12:	7183      	strb	r3, [r0, #6]
+    ((uint8_t*)d)[ 7] = ((uint8_t*)s)[ 7] ^ ((uint8_t*)k)[ 7];
+ 8013b14:	79cb      	ldrb	r3, [r1, #7]
+ 8013b16:	f892 c007 	ldrb.w	ip, [r2, #7]
+ 8013b1a:	ea83 030c 	eor.w	r3, r3, ip
+ 8013b1e:	71c3      	strb	r3, [r0, #7]
+    ((uint8_t*)d)[ 8] = ((uint8_t*)s)[ 8] ^ ((uint8_t*)k)[ 8];
+ 8013b20:	7a0b      	ldrb	r3, [r1, #8]
+ 8013b22:	f892 c008 	ldrb.w	ip, [r2, #8]
+ 8013b26:	ea83 030c 	eor.w	r3, r3, ip
+ 8013b2a:	7203      	strb	r3, [r0, #8]
+    ((uint8_t*)d)[ 9] = ((uint8_t*)s)[ 9] ^ ((uint8_t*)k)[ 9];
+ 8013b2c:	7a4b      	ldrb	r3, [r1, #9]
+ 8013b2e:	f892 c009 	ldrb.w	ip, [r2, #9]
+ 8013b32:	ea83 030c 	eor.w	r3, r3, ip
+ 8013b36:	7243      	strb	r3, [r0, #9]
+    ((uint8_t*)d)[10] = ((uint8_t*)s)[10] ^ ((uint8_t*)k)[10];
+ 8013b38:	7a8b      	ldrb	r3, [r1, #10]
+ 8013b3a:	f892 c00a 	ldrb.w	ip, [r2, #10]
+ 8013b3e:	ea83 030c 	eor.w	r3, r3, ip
+ 8013b42:	7283      	strb	r3, [r0, #10]
+    ((uint8_t*)d)[11] = ((uint8_t*)s)[11] ^ ((uint8_t*)k)[11];
+ 8013b44:	7acb      	ldrb	r3, [r1, #11]
+ 8013b46:	f892 c00b 	ldrb.w	ip, [r2, #11]
+ 8013b4a:	ea83 030c 	eor.w	r3, r3, ip
+ 8013b4e:	72c3      	strb	r3, [r0, #11]
+    ((uint8_t*)d)[12] = ((uint8_t*)s)[12] ^ ((uint8_t*)k)[12];
+ 8013b50:	7b0b      	ldrb	r3, [r1, #12]
+ 8013b52:	f892 c00c 	ldrb.w	ip, [r2, #12]
+ 8013b56:	ea83 030c 	eor.w	r3, r3, ip
+ 8013b5a:	7303      	strb	r3, [r0, #12]
+    ((uint8_t*)d)[13] = ((uint8_t*)s)[13] ^ ((uint8_t*)k)[13];
+ 8013b5c:	7b4b      	ldrb	r3, [r1, #13]
+ 8013b5e:	f892 c00d 	ldrb.w	ip, [r2, #13]
+ 8013b62:	ea83 030c 	eor.w	r3, r3, ip
+ 8013b66:	7343      	strb	r3, [r0, #13]
+    ((uint8_t*)d)[14] = ((uint8_t*)s)[14] ^ ((uint8_t*)k)[14];
+ 8013b68:	7b8b      	ldrb	r3, [r1, #14]
+ 8013b6a:	f892 c00e 	ldrb.w	ip, [r2, #14]
+ 8013b6e:	ea83 030c 	eor.w	r3, r3, ip
+ 8013b72:	7383      	strb	r3, [r0, #14]
+    ((uint8_t*)d)[15] = ((uint8_t*)s)[15] ^ ((uint8_t*)k)[15];
+ 8013b74:	7bcb      	ldrb	r3, [r1, #15]
+ 8013b76:	7bd2      	ldrb	r2, [r2, #15]
+ 8013b78:	4053      	eors	r3, r2
+ 8013b7a:	73c3      	strb	r3, [r0, #15]
+#else
+    block_copy(d, s);
+    xor_block(d, k);
+#endif
+}
+ 8013b7c:	4770      	bx	lr
+
+08013b7e <add_round_key>:
+
+static void add_round_key( uint8_t d[N_BLOCK], const uint8_t k[N_BLOCK] )
+{
+ 8013b7e:	b508      	push	{r3, lr}
+    xor_block(d, k);
+ 8013b80:	f7ff ff5d 	bl	8013a3e <xor_block>
+}
+ 8013b84:	bd08      	pop	{r3, pc}
+	...
+
+08013b88 <shift_sub_rows>:
+
+static void shift_sub_rows( uint8_t st[N_BLOCK] )
+{   uint8_t tt;
+
+    st[ 0] = s_box(st[ 0]); st[ 4] = s_box(st[ 4]);
+ 8013b88:	7802      	ldrb	r2, [r0, #0]
+ 8013b8a:	4b18      	ldr	r3, [pc, #96]	; (8013bec <shift_sub_rows+0x64>)
+ 8013b8c:	5c9a      	ldrb	r2, [r3, r2]
+ 8013b8e:	7002      	strb	r2, [r0, #0]
+ 8013b90:	7902      	ldrb	r2, [r0, #4]
+ 8013b92:	5c9a      	ldrb	r2, [r3, r2]
+ 8013b94:	7102      	strb	r2, [r0, #4]
+    st[ 8] = s_box(st[ 8]); st[12] = s_box(st[12]);
+ 8013b96:	7a02      	ldrb	r2, [r0, #8]
+ 8013b98:	5c9a      	ldrb	r2, [r3, r2]
+ 8013b9a:	7202      	strb	r2, [r0, #8]
+ 8013b9c:	7b02      	ldrb	r2, [r0, #12]
+ 8013b9e:	5c9a      	ldrb	r2, [r3, r2]
+ 8013ba0:	7302      	strb	r2, [r0, #12]
+
+    tt = st[1]; st[ 1] = s_box(st[ 5]); st[ 5] = s_box(st[ 9]);
+ 8013ba2:	7842      	ldrb	r2, [r0, #1]
+ 8013ba4:	7941      	ldrb	r1, [r0, #5]
+ 8013ba6:	5c59      	ldrb	r1, [r3, r1]
+ 8013ba8:	7041      	strb	r1, [r0, #1]
+ 8013baa:	7a41      	ldrb	r1, [r0, #9]
+ 8013bac:	5c59      	ldrb	r1, [r3, r1]
+ 8013bae:	7141      	strb	r1, [r0, #5]
+    st[ 9] = s_box(st[13]); st[13] = s_box( tt );
+ 8013bb0:	7b41      	ldrb	r1, [r0, #13]
+ 8013bb2:	5c59      	ldrb	r1, [r3, r1]
+ 8013bb4:	7241      	strb	r1, [r0, #9]
+ 8013bb6:	5c9a      	ldrb	r2, [r3, r2]
+ 8013bb8:	7342      	strb	r2, [r0, #13]
+
+    tt = st[2]; st[ 2] = s_box(st[10]); st[10] = s_box( tt );
+ 8013bba:	7882      	ldrb	r2, [r0, #2]
+ 8013bbc:	7a81      	ldrb	r1, [r0, #10]
+ 8013bbe:	5c59      	ldrb	r1, [r3, r1]
+ 8013bc0:	7081      	strb	r1, [r0, #2]
+ 8013bc2:	5c9a      	ldrb	r2, [r3, r2]
+ 8013bc4:	7282      	strb	r2, [r0, #10]
+    tt = st[6]; st[ 6] = s_box(st[14]); st[14] = s_box( tt );
+ 8013bc6:	7982      	ldrb	r2, [r0, #6]
+ 8013bc8:	7b81      	ldrb	r1, [r0, #14]
+ 8013bca:	5c59      	ldrb	r1, [r3, r1]
+ 8013bcc:	7181      	strb	r1, [r0, #6]
+ 8013bce:	5c9a      	ldrb	r2, [r3, r2]
+ 8013bd0:	7382      	strb	r2, [r0, #14]
+
+    tt = st[15]; st[15] = s_box(st[11]); st[11] = s_box(st[ 7]);
+ 8013bd2:	7bc2      	ldrb	r2, [r0, #15]
+ 8013bd4:	7ac1      	ldrb	r1, [r0, #11]
+ 8013bd6:	5c59      	ldrb	r1, [r3, r1]
+ 8013bd8:	73c1      	strb	r1, [r0, #15]
+ 8013bda:	79c1      	ldrb	r1, [r0, #7]
+ 8013bdc:	5c59      	ldrb	r1, [r3, r1]
+ 8013bde:	72c1      	strb	r1, [r0, #11]
+    st[ 7] = s_box(st[ 3]); st[ 3] = s_box( tt );
+ 8013be0:	78c1      	ldrb	r1, [r0, #3]
+ 8013be2:	5c59      	ldrb	r1, [r3, r1]
+ 8013be4:	71c1      	strb	r1, [r0, #7]
+ 8013be6:	5c9b      	ldrb	r3, [r3, r2]
+ 8013be8:	70c3      	strb	r3, [r0, #3]
+}
+ 8013bea:	4770      	bx	lr
+ 8013bec:	08018928 	.word	0x08018928
+
+08013bf0 <mix_sub_columns>:
+
+#endif
+
+#if defined( VERSION_1 )
+  static void mix_sub_columns( uint8_t dt[N_BLOCK] )
+  { uint8_t st[N_BLOCK];
+ 8013bf0:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
+ 8013bf4:	b084      	sub	sp, #16
+ 8013bf6:	4604      	mov	r4, r0
+    block_copy(st, dt);
+ 8013bf8:	4601      	mov	r1, r0
+ 8013bfa:	4668      	mov	r0, sp
+ 8013bfc:	f7ff fef3 	bl	80139e6 <copy_block>
+#else
+  static void mix_sub_columns( uint8_t dt[N_BLOCK], uint8_t st[N_BLOCK] )
+  {
+#endif
+    dt[ 0] = gfm2_sb(st[0]) ^ gfm3_sb(st[5]) ^ s_box(st[10]) ^ s_box(st[15]);
+ 8013c00:	f89d c000 	ldrb.w	ip, [sp]
+ 8013c04:	4b6a      	ldr	r3, [pc, #424]	; (8013db0 <mix_sub_columns+0x1c0>)
+ 8013c06:	f813 000c 	ldrb.w	r0, [r3, ip]
+ 8013c0a:	f89d 8005 	ldrb.w	r8, [sp, #5]
+ 8013c0e:	4a69      	ldr	r2, [pc, #420]	; (8013db4 <mix_sub_columns+0x1c4>)
+ 8013c10:	f812 9008 	ldrb.w	r9, [r2, r8]
+ 8013c14:	f89d e00a 	ldrb.w	lr, [sp, #10]
+ 8013c18:	4967      	ldr	r1, [pc, #412]	; (8013db8 <mix_sub_columns+0x1c8>)
+ 8013c1a:	f811 500e 	ldrb.w	r5, [r1, lr]
+ 8013c1e:	f89d 700f 	ldrb.w	r7, [sp, #15]
+ 8013c22:	5dce      	ldrb	r6, [r1, r7]
+ 8013c24:	ea80 0009 	eor.w	r0, r0, r9
+ 8013c28:	4068      	eors	r0, r5
+ 8013c2a:	4070      	eors	r0, r6
+ 8013c2c:	7020      	strb	r0, [r4, #0]
+    dt[ 1] = s_box(st[0]) ^ gfm2_sb(st[5]) ^ gfm3_sb(st[10]) ^ s_box(st[15]);
+ 8013c2e:	f811 000c 	ldrb.w	r0, [r1, ip]
+ 8013c32:	f813 a008 	ldrb.w	sl, [r3, r8]
+ 8013c36:	f812 900e 	ldrb.w	r9, [r2, lr]
+ 8013c3a:	ea80 0a0a 	eor.w	sl, r0, sl
+ 8013c3e:	ea89 090a 	eor.w	r9, r9, sl
+ 8013c42:	ea86 0609 	eor.w	r6, r6, r9
+ 8013c46:	7066      	strb	r6, [r4, #1]
+    dt[ 2] = s_box(st[0]) ^ s_box(st[5]) ^ gfm2_sb(st[10]) ^ gfm3_sb(st[15]);
+ 8013c48:	f811 8008 	ldrb.w	r8, [r1, r8]
+ 8013c4c:	f813 e00e 	ldrb.w	lr, [r3, lr]
+ 8013c50:	5dd6      	ldrb	r6, [r2, r7]
+ 8013c52:	ea80 0008 	eor.w	r0, r0, r8
+ 8013c56:	ea8e 0000 	eor.w	r0, lr, r0
+ 8013c5a:	4070      	eors	r0, r6
+ 8013c5c:	70a0      	strb	r0, [r4, #2]
+    dt[ 3] = gfm3_sb(st[0]) ^ s_box(st[5]) ^ s_box(st[10]) ^ gfm2_sb(st[15]);
+ 8013c5e:	f812 600c 	ldrb.w	r6, [r2, ip]
+ 8013c62:	5dd8      	ldrb	r0, [r3, r7]
+ 8013c64:	ea86 0608 	eor.w	r6, r6, r8
+ 8013c68:	4075      	eors	r5, r6
+ 8013c6a:	4068      	eors	r0, r5
+ 8013c6c:	70e0      	strb	r0, [r4, #3]
+
+    dt[ 4] = gfm2_sb(st[4]) ^ gfm3_sb(st[9]) ^ s_box(st[14]) ^ s_box(st[3]);
+ 8013c6e:	f89d c004 	ldrb.w	ip, [sp, #4]
+ 8013c72:	f813 000c 	ldrb.w	r0, [r3, ip]
+ 8013c76:	f89d 8009 	ldrb.w	r8, [sp, #9]
+ 8013c7a:	f812 9008 	ldrb.w	r9, [r2, r8]
+ 8013c7e:	f89d e00e 	ldrb.w	lr, [sp, #14]
+ 8013c82:	f811 500e 	ldrb.w	r5, [r1, lr]
+ 8013c86:	f89d 7003 	ldrb.w	r7, [sp, #3]
+ 8013c8a:	5dce      	ldrb	r6, [r1, r7]
+ 8013c8c:	ea80 0009 	eor.w	r0, r0, r9
+ 8013c90:	4068      	eors	r0, r5
+ 8013c92:	4070      	eors	r0, r6
+ 8013c94:	7120      	strb	r0, [r4, #4]
+    dt[ 5] = s_box(st[4]) ^ gfm2_sb(st[9]) ^ gfm3_sb(st[14]) ^ s_box(st[3]);
+ 8013c96:	f811 000c 	ldrb.w	r0, [r1, ip]
+ 8013c9a:	f813 a008 	ldrb.w	sl, [r3, r8]
+ 8013c9e:	f812 900e 	ldrb.w	r9, [r2, lr]
+ 8013ca2:	ea80 0a0a 	eor.w	sl, r0, sl
+ 8013ca6:	ea89 090a 	eor.w	r9, r9, sl
+ 8013caa:	ea86 0609 	eor.w	r6, r6, r9
+ 8013cae:	7166      	strb	r6, [r4, #5]
+    dt[ 6] = s_box(st[4]) ^ s_box(st[9]) ^ gfm2_sb(st[14]) ^ gfm3_sb(st[3]);
+ 8013cb0:	f811 8008 	ldrb.w	r8, [r1, r8]
+ 8013cb4:	f813 e00e 	ldrb.w	lr, [r3, lr]
+ 8013cb8:	5dd6      	ldrb	r6, [r2, r7]
+ 8013cba:	ea80 0008 	eor.w	r0, r0, r8
+ 8013cbe:	ea8e 0000 	eor.w	r0, lr, r0
+ 8013cc2:	4070      	eors	r0, r6
+ 8013cc4:	71a0      	strb	r0, [r4, #6]
+    dt[ 7] = gfm3_sb(st[4]) ^ s_box(st[9]) ^ s_box(st[14]) ^ gfm2_sb(st[3]);
+ 8013cc6:	f812 600c 	ldrb.w	r6, [r2, ip]
+ 8013cca:	5dd8      	ldrb	r0, [r3, r7]
+ 8013ccc:	ea86 0608 	eor.w	r6, r6, r8
+ 8013cd0:	4075      	eors	r5, r6
+ 8013cd2:	4068      	eors	r0, r5
+ 8013cd4:	71e0      	strb	r0, [r4, #7]
+
+    dt[ 8] = gfm2_sb(st[8]) ^ gfm3_sb(st[13]) ^ s_box(st[2]) ^ s_box(st[7]);
+ 8013cd6:	f89d c008 	ldrb.w	ip, [sp, #8]
+ 8013cda:	f813 000c 	ldrb.w	r0, [r3, ip]
+ 8013cde:	f89d 800d 	ldrb.w	r8, [sp, #13]
+ 8013ce2:	f812 9008 	ldrb.w	r9, [r2, r8]
+ 8013ce6:	f89d e002 	ldrb.w	lr, [sp, #2]
+ 8013cea:	f811 500e 	ldrb.w	r5, [r1, lr]
+ 8013cee:	f89d 7007 	ldrb.w	r7, [sp, #7]
+ 8013cf2:	5dce      	ldrb	r6, [r1, r7]
+ 8013cf4:	ea80 0009 	eor.w	r0, r0, r9
+ 8013cf8:	4068      	eors	r0, r5
+ 8013cfa:	4070      	eors	r0, r6
+ 8013cfc:	7220      	strb	r0, [r4, #8]
+    dt[ 9] = s_box(st[8]) ^ gfm2_sb(st[13]) ^ gfm3_sb(st[2]) ^ s_box(st[7]);
+ 8013cfe:	f811 000c 	ldrb.w	r0, [r1, ip]
+ 8013d02:	f813 a008 	ldrb.w	sl, [r3, r8]
+ 8013d06:	f812 900e 	ldrb.w	r9, [r2, lr]
+ 8013d0a:	ea80 0a0a 	eor.w	sl, r0, sl
+ 8013d0e:	ea89 090a 	eor.w	r9, r9, sl
+ 8013d12:	ea86 0609 	eor.w	r6, r6, r9
+ 8013d16:	7266      	strb	r6, [r4, #9]
+    dt[10] = s_box(st[8]) ^ s_box(st[13]) ^ gfm2_sb(st[2]) ^ gfm3_sb(st[7]);
+ 8013d18:	f811 8008 	ldrb.w	r8, [r1, r8]
+ 8013d1c:	f813 e00e 	ldrb.w	lr, [r3, lr]
+ 8013d20:	5dd6      	ldrb	r6, [r2, r7]
+ 8013d22:	ea80 0008 	eor.w	r0, r0, r8
+ 8013d26:	ea8e 0000 	eor.w	r0, lr, r0
+ 8013d2a:	4070      	eors	r0, r6
+ 8013d2c:	72a0      	strb	r0, [r4, #10]
+    dt[11] = gfm3_sb(st[8]) ^ s_box(st[13]) ^ s_box(st[2]) ^ gfm2_sb(st[7]);
+ 8013d2e:	f812 600c 	ldrb.w	r6, [r2, ip]
+ 8013d32:	5dd8      	ldrb	r0, [r3, r7]
+ 8013d34:	ea86 0608 	eor.w	r6, r6, r8
+ 8013d38:	4075      	eors	r5, r6
+ 8013d3a:	4068      	eors	r0, r5
+ 8013d3c:	72e0      	strb	r0, [r4, #11]
+
+    dt[12] = gfm2_sb(st[12]) ^ gfm3_sb(st[1]) ^ s_box(st[6]) ^ s_box(st[11]);
+ 8013d3e:	f89d 600c 	ldrb.w	r6, [sp, #12]
+ 8013d42:	5d98      	ldrb	r0, [r3, r6]
+ 8013d44:	f89d 8001 	ldrb.w	r8, [sp, #1]
+ 8013d48:	f812 9008 	ldrb.w	r9, [r2, r8]
+ 8013d4c:	f89d 7006 	ldrb.w	r7, [sp, #6]
+ 8013d50:	f811 c007 	ldrb.w	ip, [r1, r7]
+ 8013d54:	f89d 500b 	ldrb.w	r5, [sp, #11]
+ 8013d58:	f811 e005 	ldrb.w	lr, [r1, r5]
+ 8013d5c:	ea80 0009 	eor.w	r0, r0, r9
+ 8013d60:	ea8c 0000 	eor.w	r0, ip, r0
+ 8013d64:	ea8e 0000 	eor.w	r0, lr, r0
+ 8013d68:	7320      	strb	r0, [r4, #12]
+    dt[13] = s_box(st[12]) ^ gfm2_sb(st[1]) ^ gfm3_sb(st[6]) ^ s_box(st[11]);
+ 8013d6a:	5d88      	ldrb	r0, [r1, r6]
+ 8013d6c:	f813 a008 	ldrb.w	sl, [r3, r8]
+ 8013d70:	f812 9007 	ldrb.w	r9, [r2, r7]
+ 8013d74:	ea80 0a0a 	eor.w	sl, r0, sl
+ 8013d78:	ea89 090a 	eor.w	r9, r9, sl
+ 8013d7c:	ea8e 0e09 	eor.w	lr, lr, r9
+ 8013d80:	f884 e00d 	strb.w	lr, [r4, #13]
+    dt[14] = s_box(st[12]) ^ s_box(st[1]) ^ gfm2_sb(st[6]) ^ gfm3_sb(st[11]);
+ 8013d84:	f811 1008 	ldrb.w	r1, [r1, r8]
+ 8013d88:	f813 e007 	ldrb.w	lr, [r3, r7]
+ 8013d8c:	5d57      	ldrb	r7, [r2, r5]
+ 8013d8e:	4048      	eors	r0, r1
+ 8013d90:	ea8e 0000 	eor.w	r0, lr, r0
+ 8013d94:	4078      	eors	r0, r7
+ 8013d96:	73a0      	strb	r0, [r4, #14]
+    dt[15] = gfm3_sb(st[12]) ^ s_box(st[1]) ^ s_box(st[6]) ^ gfm2_sb(st[11]);
+ 8013d98:	5d92      	ldrb	r2, [r2, r6]
+ 8013d9a:	5d5b      	ldrb	r3, [r3, r5]
+ 8013d9c:	4051      	eors	r1, r2
+ 8013d9e:	ea8c 0c01 	eor.w	ip, ip, r1
+ 8013da2:	ea83 030c 	eor.w	r3, r3, ip
+ 8013da6:	73e3      	strb	r3, [r4, #15]
+  }
+ 8013da8:	b004      	add	sp, #16
+ 8013daa:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 8013dae:	bf00      	nop
+ 8013db0:	08018728 	.word	0x08018728
+ 8013db4:	08018828 	.word	0x08018828
+ 8013db8:	08018928 	.word	0x08018928
+
+08013dbc <lorawan_aes_set_key>:
+#if defined( AES_ENC_PREKEYED ) || defined( AES_DEC_PREKEYED )
+
+/*  Set the cipher key for the pre-keyed version */
+
+return_type lorawan_aes_set_key( const uint8_t key[], length_type keylen, lorawan_aes_context ctx[1] )
+{
+ 8013dbc:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
+ 8013dc0:	4614      	mov	r4, r2
+    uint8_t cc, rc, hi;
+
+    switch( keylen )
+ 8013dc2:	f1a1 0310 	sub.w	r3, r1, #16
+ 8013dc6:	b2db      	uxtb	r3, r3
+ 8013dc8:	2b10      	cmp	r3, #16
+ 8013dca:	d806      	bhi.n	8013dda <lorawan_aes_set_key+0x1e>
+ 8013dcc:	460d      	mov	r5, r1
+ 8013dce:	4a3b      	ldr	r2, [pc, #236]	; (8013ebc <lorawan_aes_set_key+0x100>)
+ 8013dd0:	fa22 f303 	lsr.w	r3, r2, r3
+ 8013dd4:	f013 0f01 	tst.w	r3, #1
+ 8013dd8:	d105      	bne.n	8013de6 <lorawan_aes_set_key+0x2a>
+    case 16:
+    case 24:
+    case 32:
+        break;
+    default:
+        ctx->rnd = 0;
+ 8013dda:	2300      	movs	r3, #0
+ 8013ddc:	f884 30f0 	strb.w	r3, [r4, #240]	; 0xf0
+        return ( uint8_t )-1;
+ 8013de0:	20ff      	movs	r0, #255	; 0xff
+        ctx->ksch[cc + 1] = ctx->ksch[tt + 1] ^ t1;
+        ctx->ksch[cc + 2] = ctx->ksch[tt + 2] ^ t2;
+        ctx->ksch[cc + 3] = ctx->ksch[tt + 3] ^ t3;
+    }
+    return 0;
+}
+ 8013de2:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
+    block_copy_nn(ctx->ksch, key, keylen);
+ 8013de6:	460a      	mov	r2, r1
+ 8013de8:	4601      	mov	r1, r0
+ 8013dea:	4620      	mov	r0, r4
+ 8013dec:	f7ff fe1c 	bl	8013a28 <copy_block_nn>
+    hi = (keylen + 28) << 2;
+ 8013df0:	f105 031c 	add.w	r3, r5, #28
+ 8013df4:	b2db      	uxtb	r3, r3
+ 8013df6:	009b      	lsls	r3, r3, #2
+ 8013df8:	fa5f fe83 	uxtb.w	lr, r3
+    ctx->rnd = (hi >> 4) - 1;
+ 8013dfc:	f3c3 1303 	ubfx	r3, r3, #4, #4
+ 8013e00:	3b01      	subs	r3, #1
+ 8013e02:	f884 30f0 	strb.w	r3, [r4, #240]	; 0xf0
+    for( cc = keylen, rc = 1; cc < hi; cc += 4 )
+ 8013e06:	462b      	mov	r3, r5
+ 8013e08:	f04f 0c01 	mov.w	ip, #1
+ 8013e0c:	e023      	b.n	8013e56 <lorawan_aes_set_key+0x9a>
+        else if( keylen > 24 && cc % keylen == 16 )
+ 8013e0e:	2d18      	cmp	r5, #24
+ 8013e10:	d901      	bls.n	8013e16 <lorawan_aes_set_key+0x5a>
+ 8013e12:	2a10      	cmp	r2, #16
+ 8013e14:	d048      	beq.n	8013ea8 <lorawan_aes_set_key+0xec>
+        tt = cc - keylen;
+ 8013e16:	1b5a      	subs	r2, r3, r5
+ 8013e18:	b2d2      	uxtb	r2, r2
+        ctx->ksch[cc + 0] = ctx->ksch[tt + 0] ^ t0;
+ 8013e1a:	f814 9002 	ldrb.w	r9, [r4, r2]
+ 8013e1e:	ea89 0808 	eor.w	r8, r9, r8
+ 8013e22:	f804 8000 	strb.w	r8, [r4, r0]
+        ctx->ksch[cc + 1] = ctx->ksch[tt + 1] ^ t1;
+ 8013e26:	f102 0801 	add.w	r8, r2, #1
+ 8013e2a:	f814 8008 	ldrb.w	r8, [r4, r8]
+ 8013e2e:	f100 0901 	add.w	r9, r0, #1
+ 8013e32:	ea88 0707 	eor.w	r7, r8, r7
+ 8013e36:	f804 7009 	strb.w	r7, [r4, r9]
+        ctx->ksch[cc + 2] = ctx->ksch[tt + 2] ^ t2;
+ 8013e3a:	1c97      	adds	r7, r2, #2
+ 8013e3c:	5de7      	ldrb	r7, [r4, r7]
+ 8013e3e:	f100 0802 	add.w	r8, r0, #2
+ 8013e42:	407e      	eors	r6, r7
+ 8013e44:	f804 6008 	strb.w	r6, [r4, r8]
+        ctx->ksch[cc + 3] = ctx->ksch[tt + 3] ^ t3;
+ 8013e48:	3203      	adds	r2, #3
+ 8013e4a:	5ca6      	ldrb	r6, [r4, r2]
+ 8013e4c:	1cc2      	adds	r2, r0, #3
+ 8013e4e:	4071      	eors	r1, r6
+ 8013e50:	54a1      	strb	r1, [r4, r2]
+    for( cc = keylen, rc = 1; cc < hi; cc += 4 )
+ 8013e52:	3304      	adds	r3, #4
+ 8013e54:	b2db      	uxtb	r3, r3
+ 8013e56:	4573      	cmp	r3, lr
+ 8013e58:	d22d      	bcs.n	8013eb6 <lorawan_aes_set_key+0xfa>
+        t0 = ctx->ksch[cc - 4];
+ 8013e5a:	4618      	mov	r0, r3
+ 8013e5c:	1f1a      	subs	r2, r3, #4
+ 8013e5e:	f814 8002 	ldrb.w	r8, [r4, r2]
+        t1 = ctx->ksch[cc - 3];
+ 8013e62:	1eda      	subs	r2, r3, #3
+ 8013e64:	5ca7      	ldrb	r7, [r4, r2]
+        t2 = ctx->ksch[cc - 2];
+ 8013e66:	1e9a      	subs	r2, r3, #2
+ 8013e68:	5ca6      	ldrb	r6, [r4, r2]
+        t3 = ctx->ksch[cc - 1];
+ 8013e6a:	1e5a      	subs	r2, r3, #1
+ 8013e6c:	5ca1      	ldrb	r1, [r4, r2]
+        if( cc % keylen == 0 )
+ 8013e6e:	fbb3 f2f5 	udiv	r2, r3, r5
+ 8013e72:	fb05 3212 	mls	r2, r5, r2, r3
+ 8013e76:	f012 02ff 	ands.w	r2, r2, #255	; 0xff
+ 8013e7a:	d1c8      	bne.n	8013e0e <lorawan_aes_set_key+0x52>
+            t0 = s_box(t1) ^ rc;
+ 8013e7c:	4a10      	ldr	r2, [pc, #64]	; (8013ec0 <lorawan_aes_set_key+0x104>)
+ 8013e7e:	f812 9007 	ldrb.w	r9, [r2, r7]
+ 8013e82:	ea89 090c 	eor.w	r9, r9, ip
+            t1 = s_box(t2);
+ 8013e86:	5d97      	ldrb	r7, [r2, r6]
+            t2 = s_box(t3);
+ 8013e88:	5c56      	ldrb	r6, [r2, r1]
+            t3 = s_box(tt);
+ 8013e8a:	f812 1008 	ldrb.w	r1, [r2, r8]
+            rc = f2(rc);
+ 8013e8e:	ea4f 12dc 	mov.w	r2, ip, lsr #7
+ 8013e92:	eb02 0242 	add.w	r2, r2, r2, lsl #1
+ 8013e96:	eb02 02c2 	add.w	r2, r2, r2, lsl #3
+ 8013e9a:	b2d2      	uxtb	r2, r2
+ 8013e9c:	ea82 024c 	eor.w	r2, r2, ip, lsl #1
+ 8013ea0:	fa5f fc82 	uxtb.w	ip, r2
+            t0 = s_box(t1) ^ rc;
+ 8013ea4:	46c8      	mov	r8, r9
+ 8013ea6:	e7b6      	b.n	8013e16 <lorawan_aes_set_key+0x5a>
+            t0 = s_box(t0);
+ 8013ea8:	4a05      	ldr	r2, [pc, #20]	; (8013ec0 <lorawan_aes_set_key+0x104>)
+ 8013eaa:	f812 8008 	ldrb.w	r8, [r2, r8]
+            t1 = s_box(t1);
+ 8013eae:	5dd7      	ldrb	r7, [r2, r7]
+            t2 = s_box(t2);
+ 8013eb0:	5d96      	ldrb	r6, [r2, r6]
+            t3 = s_box(t3);
+ 8013eb2:	5c51      	ldrb	r1, [r2, r1]
+ 8013eb4:	e7af      	b.n	8013e16 <lorawan_aes_set_key+0x5a>
+    return 0;
+ 8013eb6:	2000      	movs	r0, #0
+ 8013eb8:	e793      	b.n	8013de2 <lorawan_aes_set_key+0x26>
+ 8013eba:	bf00      	nop
+ 8013ebc:	00010101 	.word	0x00010101
+ 8013ec0:	08018928 	.word	0x08018928
+
+08013ec4 <lorawan_aes_encrypt>:
+
+/*  Encrypt a single block of 16 bytes */
+
+return_type lorawan_aes_encrypt( const uint8_t in[N_BLOCK], uint8_t  out[N_BLOCK], const lorawan_aes_context ctx[1] )
+{
+    if( ctx->rnd )
+ 8013ec4:	f892 30f0 	ldrb.w	r3, [r2, #240]	; 0xf0
+ 8013ec8:	b31b      	cbz	r3, 8013f12 <lorawan_aes_encrypt+0x4e>
+{
+ 8013eca:	b570      	push	{r4, r5, r6, lr}
+ 8013ecc:	b084      	sub	sp, #16
+ 8013ece:	460e      	mov	r6, r1
+ 8013ed0:	4615      	mov	r5, r2
+    {
+        uint8_t s1[N_BLOCK], r;
+        copy_and_key( s1, in, ctx->ksch );
+ 8013ed2:	4601      	mov	r1, r0
+ 8013ed4:	4668      	mov	r0, sp
+ 8013ed6:	f7ff fdf3 	bl	8013ac0 <copy_and_key>
+
+        for( r = 1 ; r < ctx->rnd ; ++r )
+ 8013eda:	2401      	movs	r4, #1
+ 8013edc:	e009      	b.n	8013ef2 <lorawan_aes_encrypt+0x2e>
+#if defined( VERSION_1 )
+        {
+            mix_sub_columns( s1 );
+ 8013ede:	4668      	mov	r0, sp
+ 8013ee0:	f7ff fe86 	bl	8013bf0 <mix_sub_columns>
+            add_round_key( s1, ctx->ksch + r * N_BLOCK);
+ 8013ee4:	eb05 1104 	add.w	r1, r5, r4, lsl #4
+ 8013ee8:	4668      	mov	r0, sp
+ 8013eea:	f7ff fe48 	bl	8013b7e <add_round_key>
+        for( r = 1 ; r < ctx->rnd ; ++r )
+ 8013eee:	3401      	adds	r4, #1
+ 8013ef0:	b2e4      	uxtb	r4, r4
+ 8013ef2:	f895 30f0 	ldrb.w	r3, [r5, #240]	; 0xf0
+ 8013ef6:	42a3      	cmp	r3, r4
+ 8013ef8:	d8f1      	bhi.n	8013ede <lorawan_aes_encrypt+0x1a>
+        {   uint8_t s2[N_BLOCK];
+            mix_sub_columns( s2, s1 );
+            copy_and_key( s1, s2, ctx->ksch + r * N_BLOCK);
+        }
+#endif
+        shift_sub_rows( s1 );
+ 8013efa:	4668      	mov	r0, sp
+ 8013efc:	f7ff fe44 	bl	8013b88 <shift_sub_rows>
+        copy_and_key( out, s1, ctx->ksch + r * N_BLOCK );
+ 8013f00:	eb05 1204 	add.w	r2, r5, r4, lsl #4
+ 8013f04:	4669      	mov	r1, sp
+ 8013f06:	4630      	mov	r0, r6
+ 8013f08:	f7ff fdda 	bl	8013ac0 <copy_and_key>
+    }
+    else
+        return ( uint8_t )-1;
+    return 0;
+ 8013f0c:	2000      	movs	r0, #0
+}
+ 8013f0e:	b004      	add	sp, #16
+ 8013f10:	bd70      	pop	{r4, r5, r6, pc}
+        return ( uint8_t )-1;
+ 8013f12:	20ff      	movs	r0, #255	; 0xff
+}
+ 8013f14:	4770      	bx	lr
+	...
+
+08013f18 <GetKeyByID>:
+}
+
+#if (LORAWAN_KMS == 0)
+static SecureElementStatus_t GetKeyByID( KeyIdentifier_t keyID, Key_t **keyItem )
+{
+    for( uint8_t i = 0; i < NUM_OF_KEYS; i++ )
+ 8013f18:	2300      	movs	r3, #0
+ 8013f1a:	2b0a      	cmp	r3, #10
+ 8013f1c:	d817      	bhi.n	8013f4e <GetKeyByID+0x36>
+{
+ 8013f1e:	b410      	push	{r4}
+    {
+        if( SeNvm->KeyList[i].KeyID == keyID )
+ 8013f20:	4a0c      	ldr	r2, [pc, #48]	; (8013f54 <GetKeyByID+0x3c>)
+ 8013f22:	6814      	ldr	r4, [r2, #0]
+ 8013f24:	eb03 1203 	add.w	r2, r3, r3, lsl #4
+ 8013f28:	4422      	add	r2, r4
+ 8013f2a:	7e12      	ldrb	r2, [r2, #24]
+ 8013f2c:	4282      	cmp	r2, r0
+ 8013f2e:	d006      	beq.n	8013f3e <GetKeyByID+0x26>
+    for( uint8_t i = 0; i < NUM_OF_KEYS; i++ )
+ 8013f30:	3301      	adds	r3, #1
+ 8013f32:	b2db      	uxtb	r3, r3
+ 8013f34:	2b0a      	cmp	r3, #10
+ 8013f36:	d9f3      	bls.n	8013f20 <GetKeyByID+0x8>
+        {
+            *keyItem = &( SeNvm->KeyList[i] );
+            return SECURE_ELEMENT_SUCCESS;
+        }
+    }
+    return SECURE_ELEMENT_ERROR_INVALID_KEY_ID;
+ 8013f38:	2003      	movs	r0, #3
+}
+ 8013f3a:	bc10      	pop	{r4}
+ 8013f3c:	4770      	bx	lr
+            *keyItem = &( SeNvm->KeyList[i] );
+ 8013f3e:	eb03 1c03 	add.w	ip, r3, r3, lsl #4
+ 8013f42:	f10c 0c18 	add.w	ip, ip, #24
+ 8013f46:	4464      	add	r4, ip
+ 8013f48:	600c      	str	r4, [r1, #0]
+            return SECURE_ELEMENT_SUCCESS;
+ 8013f4a:	2000      	movs	r0, #0
+ 8013f4c:	e7f5      	b.n	8013f3a <GetKeyByID+0x22>
+    return SECURE_ELEMENT_ERROR_INVALID_KEY_ID;
+ 8013f4e:	2003      	movs	r0, #3
+}
+ 8013f50:	4770      	bx	lr
+ 8013f52:	bf00      	nop
+ 8013f54:	20002630 	.word	0x20002630
+
+08013f58 <ComputeCmac>:
+}
+#endif /* LORAWAN_KMS */
+
+static SecureElementStatus_t ComputeCmac( uint8_t *micBxBuffer, uint8_t *buffer, uint32_t size, KeyIdentifier_t keyID,
+                                          uint32_t *cmac )
+{
+ 8013f58:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8013f5c:	b0cc      	sub	sp, #304	; 0x130
+ 8013f5e:	9d52      	ldr	r5, [sp, #328]	; 0x148
+    if( ( buffer == NULL ) || ( cmac == NULL ) )
+ 8013f60:	b3a9      	cbz	r1, 8013fce <ComputeCmac+0x76>
+ 8013f62:	4607      	mov	r7, r0
+ 8013f64:	4616      	mov	r6, r2
+ 8013f66:	461c      	mov	r4, r3
+ 8013f68:	4688      	mov	r8, r1
+ 8013f6a:	b395      	cbz	r5, 8013fd2 <ComputeCmac+0x7a>
+
+#if (LORAWAN_KMS == 0)
+    uint8_t Cmac[16];
+    AES_CMAC_CTX aesCmacCtx[1];
+
+    AES_CMAC_Init( aesCmacCtx );
+ 8013f6c:	a802      	add	r0, sp, #8
+ 8013f6e:	f7ff fbd5 	bl	801371c <AES_CMAC_Init>
+
+    Key_t                *keyItem;
+    SecureElementStatus_t retval = GetKeyByID( keyID, &keyItem );
+ 8013f72:	a901      	add	r1, sp, #4
+ 8013f74:	4620      	mov	r0, r4
+ 8013f76:	f7ff ffcf 	bl	8013f18 <GetKeyByID>
+
+    if( retval == SECURE_ELEMENT_SUCCESS )
+ 8013f7a:	4604      	mov	r4, r0
+ 8013f7c:	b118      	cbz	r0, 8013f86 <ComputeCmac+0x2e>
+    {
+        retval = SECURE_ELEMENT_ERROR;
+    }
+#endif /* LORAWAN_KMS */
+    return retval;
+}
+ 8013f7e:	4620      	mov	r0, r4
+ 8013f80:	b04c      	add	sp, #304	; 0x130
+ 8013f82:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+        AES_CMAC_SetKey( aesCmacCtx, keyItem->KeyValue );
+ 8013f86:	9901      	ldr	r1, [sp, #4]
+ 8013f88:	3101      	adds	r1, #1
+ 8013f8a:	a802      	add	r0, sp, #8
+ 8013f8c:	f7ff fbd5 	bl	801373a <AES_CMAC_SetKey>
+        if( micBxBuffer != NULL )
+ 8013f90:	b127      	cbz	r7, 8013f9c <ComputeCmac+0x44>
+            AES_CMAC_Update( aesCmacCtx, micBxBuffer, MIC_BLOCK_BX_SIZE );
+ 8013f92:	2210      	movs	r2, #16
+ 8013f94:	4639      	mov	r1, r7
+ 8013f96:	a802      	add	r0, sp, #8
+ 8013f98:	f7ff fbd6 	bl	8013748 <AES_CMAC_Update>
+        AES_CMAC_Update( aesCmacCtx, buffer, size );
+ 8013f9c:	4632      	mov	r2, r6
+ 8013f9e:	4641      	mov	r1, r8
+ 8013fa0:	a802      	add	r0, sp, #8
+ 8013fa2:	f7ff fbd1 	bl	8013748 <AES_CMAC_Update>
+        AES_CMAC_Final( Cmac, aesCmacCtx );
+ 8013fa6:	a902      	add	r1, sp, #8
+ 8013fa8:	a848      	add	r0, sp, #288	; 0x120
+ 8013faa:	f7ff fc3b 	bl	8013824 <AES_CMAC_Final>
+        *cmac = GET_UINT32_LE( Cmac, 0 );
+ 8013fae:	f89d 3120 	ldrb.w	r3, [sp, #288]	; 0x120
+ 8013fb2:	f89d 2121 	ldrb.w	r2, [sp, #289]	; 0x121
+ 8013fb6:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
+ 8013fba:	f89d 2122 	ldrb.w	r2, [sp, #290]	; 0x122
+ 8013fbe:	ea43 4302 	orr.w	r3, r3, r2, lsl #16
+ 8013fc2:	f89d 2123 	ldrb.w	r2, [sp, #291]	; 0x123
+ 8013fc6:	ea43 6302 	orr.w	r3, r3, r2, lsl #24
+ 8013fca:	602b      	str	r3, [r5, #0]
+ 8013fcc:	e7d7      	b.n	8013f7e <ComputeCmac+0x26>
+        return SECURE_ELEMENT_ERROR_NPE;
+ 8013fce:	2402      	movs	r4, #2
+ 8013fd0:	e7d5      	b.n	8013f7e <ComputeCmac+0x26>
+ 8013fd2:	2402      	movs	r4, #2
+ 8013fd4:	e7d3      	b.n	8013f7e <ComputeCmac+0x26>
+	...
+
+08013fd8 <SecureElementInit>:
+/*
+ * API functions
+ */
+SecureElementStatus_t SecureElementInit( SecureElementNvmData_t *nvm )
+{
+    if( nvm == NULL )
+ 8013fd8:	b140      	cbz	r0, 8013fec <SecureElementInit+0x14>
+{
+ 8013fda:	b508      	push	{r3, lr}
+    {
+        return SECURE_ELEMENT_ERROR_NPE;
+    }
+
+    /* Initialize nvm pointer */
+    SeNvm = nvm;
+ 8013fdc:	4a04      	ldr	r2, [pc, #16]	; (8013ff0 <SecureElementInit+0x18>)
+ 8013fde:	6010      	str	r0, [r2, #0]
+
+#if (LORAWAN_KMS == 0)
+    /* Initialize data */
+    memcpy1( ( uint8_t * )SeNvm, ( uint8_t * )&seNvmInit, sizeof( seNvmInit ) );
+ 8013fe0:	22d8      	movs	r2, #216	; 0xd8
+ 8013fe2:	4904      	ldr	r1, [pc, #16]	; (8013ff4 <SecureElementInit+0x1c>)
+ 8013fe4:	f000 fad9 	bl	801459a <memcpy1>
+        ( void )C_CloseSession( session );
+    }
+
+#endif /* LORAWAN_KMS */
+
+    return SECURE_ELEMENT_SUCCESS;
+ 8013fe8:	2000      	movs	r0, #0
+}
+ 8013fea:	bd08      	pop	{r3, pc}
+        return SECURE_ELEMENT_ERROR_NPE;
+ 8013fec:	2002      	movs	r0, #2
+}
+ 8013fee:	4770      	bx	lr
+ 8013ff0:	20002630 	.word	0x20002630
+ 8013ff4:	08018e58 	.word	0x08018e58
+
+08013ff8 <SecureElementGetKeyByID>:
+
+#if (LORAWAN_KMS == 0)
+SecureElementStatus_t SecureElementGetKeyByID( KeyIdentifier_t keyID, Key_t **keyItem )
+{
+#if (KEY_EXTRACTABLE == 1)
+    for( uint8_t i = 0; i < NUM_OF_KEYS; i++ )
+ 8013ff8:	2300      	movs	r3, #0
+ 8013ffa:	2b0a      	cmp	r3, #10
+ 8013ffc:	d817      	bhi.n	801402e <SecureElementGetKeyByID+0x36>
+{
+ 8013ffe:	b410      	push	{r4}
+    {
+        if( SeNvm->KeyList[i].KeyID == keyID )
+ 8014000:	4a0c      	ldr	r2, [pc, #48]	; (8014034 <SecureElementGetKeyByID+0x3c>)
+ 8014002:	6814      	ldr	r4, [r2, #0]
+ 8014004:	eb03 1203 	add.w	r2, r3, r3, lsl #4
+ 8014008:	4422      	add	r2, r4
+ 801400a:	7e12      	ldrb	r2, [r2, #24]
+ 801400c:	4282      	cmp	r2, r0
+ 801400e:	d006      	beq.n	801401e <SecureElementGetKeyByID+0x26>
+    for( uint8_t i = 0; i < NUM_OF_KEYS; i++ )
+ 8014010:	3301      	adds	r3, #1
+ 8014012:	b2db      	uxtb	r3, r3
+ 8014014:	2b0a      	cmp	r3, #10
+ 8014016:	d9f3      	bls.n	8014000 <SecureElementGetKeyByID+0x8>
+            *keyItem = &( SeNvm->KeyList[i] );
+            return SECURE_ELEMENT_SUCCESS;
+        }
+    }
+#endif /* KEY_EXTRACTABLE */
+    return SECURE_ELEMENT_ERROR_INVALID_KEY_ID;
+ 8014018:	2003      	movs	r0, #3
+}
+ 801401a:	bc10      	pop	{r4}
+ 801401c:	4770      	bx	lr
+            *keyItem = &( SeNvm->KeyList[i] );
+ 801401e:	eb03 1c03 	add.w	ip, r3, r3, lsl #4
+ 8014022:	f10c 0c18 	add.w	ip, ip, #24
+ 8014026:	4464      	add	r4, ip
+ 8014028:	600c      	str	r4, [r1, #0]
+            return SECURE_ELEMENT_SUCCESS;
+ 801402a:	2000      	movs	r0, #0
+ 801402c:	e7f5      	b.n	801401a <SecureElementGetKeyByID+0x22>
+    return SECURE_ELEMENT_ERROR_INVALID_KEY_ID;
+ 801402e:	2003      	movs	r0, #3
+}
+ 8014030:	4770      	bx	lr
+ 8014032:	bf00      	nop
+ 8014034:	20002630 	.word	0x20002630
+
+08014038 <PrintKey>:
+{
+ 8014038:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 801403c:	b099      	sub	sp, #100	; 0x64
+ 801403e:	4604      	mov	r4, r0
+    if( SECURE_ELEMENT_SUCCESS == SecureElementGetKeyByID( keyID, &keyItem ) )
+ 8014040:	a917      	add	r1, sp, #92	; 0x5c
+ 8014042:	f7ff ffd9 	bl	8013ff8 <SecureElementGetKeyByID>
+ 8014046:	4603      	mov	r3, r0
+ 8014048:	2800      	cmp	r0, #0
+ 801404a:	d042      	beq.n	80140d2 <PrintKey+0x9a>
+}
+ 801404c:	b019      	add	sp, #100	; 0x64
+ 801404e:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+                MW_LOG( TS_OFF, VLEVEL_M,
+ 8014052:	eb03 0043 	add.w	r0, r3, r3, lsl #1
+ 8014056:	eb01 0380 	add.w	r3, r1, r0, lsl #2
+ 801405a:	689b      	ldr	r3, [r3, #8]
+ 801405c:	9313      	str	r3, [sp, #76]	; 0x4c
+ 801405e:	9b17      	ldr	r3, [sp, #92]	; 0x5c
+ 8014060:	785a      	ldrb	r2, [r3, #1]
+ 8014062:	9214      	str	r2, [sp, #80]	; 0x50
+ 8014064:	7899      	ldrb	r1, [r3, #2]
+ 8014066:	9115      	str	r1, [sp, #84]	; 0x54
+ 8014068:	78da      	ldrb	r2, [r3, #3]
+ 801406a:	7919      	ldrb	r1, [r3, #4]
+ 801406c:	7958      	ldrb	r0, [r3, #5]
+ 801406e:	799c      	ldrb	r4, [r3, #6]
+ 8014070:	79dd      	ldrb	r5, [r3, #7]
+ 8014072:	7a1e      	ldrb	r6, [r3, #8]
+ 8014074:	7a5f      	ldrb	r7, [r3, #9]
+ 8014076:	f893 c00a 	ldrb.w	ip, [r3, #10]
+ 801407a:	f893 e00b 	ldrb.w	lr, [r3, #11]
+ 801407e:	f893 800c 	ldrb.w	r8, [r3, #12]
+ 8014082:	f893 900d 	ldrb.w	r9, [r3, #13]
+ 8014086:	f893 a00e 	ldrb.w	sl, [r3, #14]
+ 801408a:	f893 b00f 	ldrb.w	fp, [r3, #15]
+ 801408e:	7c1b      	ldrb	r3, [r3, #16]
+ 8014090:	9310      	str	r3, [sp, #64]	; 0x40
+ 8014092:	f8cd b03c 	str.w	fp, [sp, #60]	; 0x3c
+ 8014096:	f8cd a038 	str.w	sl, [sp, #56]	; 0x38
+ 801409a:	f8cd 9034 	str.w	r9, [sp, #52]	; 0x34
+ 801409e:	f8cd 8030 	str.w	r8, [sp, #48]	; 0x30
+ 80140a2:	f8cd e02c 	str.w	lr, [sp, #44]	; 0x2c
+ 80140a6:	f8cd c028 	str.w	ip, [sp, #40]	; 0x28
+ 80140aa:	9709      	str	r7, [sp, #36]	; 0x24
+ 80140ac:	9608      	str	r6, [sp, #32]
+ 80140ae:	9507      	str	r5, [sp, #28]
+ 80140b0:	9406      	str	r4, [sp, #24]
+ 80140b2:	9005      	str	r0, [sp, #20]
+ 80140b4:	9104      	str	r1, [sp, #16]
+ 80140b6:	9203      	str	r2, [sp, #12]
+ 80140b8:	9915      	ldr	r1, [sp, #84]	; 0x54
+ 80140ba:	9102      	str	r1, [sp, #8]
+ 80140bc:	9a14      	ldr	r2, [sp, #80]	; 0x50
+ 80140be:	9201      	str	r2, [sp, #4]
+ 80140c0:	9b13      	ldr	r3, [sp, #76]	; 0x4c
+ 80140c2:	9300      	str	r3, [sp, #0]
+ 80140c4:	4b09      	ldr	r3, [pc, #36]	; (80140ec <PrintKey+0xb4>)
+ 80140c6:	2200      	movs	r2, #0
+ 80140c8:	4611      	mov	r1, r2
+ 80140ca:	2002      	movs	r0, #2
+ 80140cc:	f002 fd34 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+                return;
+ 80140d0:	e7bc      	b.n	801404c <PrintKey+0x14>
+        for( uint8_t i = 0; i < NUM_OF_KEYS; i++ )
+ 80140d2:	2b0a      	cmp	r3, #10
+ 80140d4:	d8ba      	bhi.n	801404c <PrintKey+0x14>
+            if( KeyLabel[i].keyID == keyID )
+ 80140d6:	eb03 0243 	add.w	r2, r3, r3, lsl #1
+ 80140da:	4905      	ldr	r1, [pc, #20]	; (80140f0 <PrintKey+0xb8>)
+ 80140dc:	f811 2022 	ldrb.w	r2, [r1, r2, lsl #2]
+ 80140e0:	42a2      	cmp	r2, r4
+ 80140e2:	d0b6      	beq.n	8014052 <PrintKey+0x1a>
+        for( uint8_t i = 0; i < NUM_OF_KEYS; i++ )
+ 80140e4:	3301      	adds	r3, #1
+ 80140e6:	b2db      	uxtb	r3, r3
+ 80140e8:	e7f3      	b.n	80140d2 <PrintKey+0x9a>
+ 80140ea:	bf00      	nop
+ 80140ec:	08018a28 	.word	0x08018a28
+ 80140f0:	08018bc0 	.word	0x08018bc0
+
+080140f4 <SecureElementComputeAesCmac>:
+}
+
+SecureElementStatus_t SecureElementComputeAesCmac( uint8_t *micBxBuffer, uint8_t *buffer, uint32_t size,
+                                                   KeyIdentifier_t keyID, uint32_t *cmac )
+{
+    if( keyID >= MC_KE_KEY )
+ 80140f4:	2b0b      	cmp	r3, #11
+ 80140f6:	d80a      	bhi.n	801410e <SecureElementComputeAesCmac+0x1a>
+{
+ 80140f8:	b500      	push	{lr}
+ 80140fa:	b083      	sub	sp, #12
+    {
+        /* Never accept multicast key identifier for cmac computation */
+        return SECURE_ELEMENT_ERROR_INVALID_KEY_ID;
+    }
+
+    return ComputeCmac( micBxBuffer, buffer, size, keyID, cmac );
+ 80140fc:	f8dd c010 	ldr.w	ip, [sp, #16]
+ 8014100:	f8cd c000 	str.w	ip, [sp]
+ 8014104:	f7ff ff28 	bl	8013f58 <ComputeCmac>
+}
+ 8014108:	b003      	add	sp, #12
+ 801410a:	f85d fb04 	ldr.w	pc, [sp], #4
+        return SECURE_ELEMENT_ERROR_INVALID_KEY_ID;
+ 801410e:	2003      	movs	r0, #3
+}
+ 8014110:	4770      	bx	lr
+
+08014112 <SecureElementVerifyAesCmac>:
+
+SecureElementStatus_t SecureElementVerifyAesCmac( uint8_t *buffer, uint32_t size, uint32_t expectedCmac,
+                                                  KeyIdentifier_t keyID )
+{
+    if( buffer == NULL )
+ 8014112:	b190      	cbz	r0, 801413a <SecureElementVerifyAesCmac+0x28>
+{
+ 8014114:	b510      	push	{r4, lr}
+ 8014116:	b084      	sub	sp, #16
+ 8014118:	468c      	mov	ip, r1
+ 801411a:	4614      	mov	r4, r2
+ 801411c:	4601      	mov	r1, r0
+        return SECURE_ELEMENT_ERROR_NPE;
+    }
+
+    SecureElementStatus_t retval   = SECURE_ELEMENT_ERROR;
+#if (LORAWAN_KMS == 0)
+    uint32_t              compCmac = 0;
+ 801411e:	2000      	movs	r0, #0
+ 8014120:	9003      	str	r0, [sp, #12]
+    retval                         = ComputeCmac( NULL, buffer, size, keyID, &compCmac );
+ 8014122:	aa03      	add	r2, sp, #12
+ 8014124:	9200      	str	r2, [sp, #0]
+ 8014126:	4662      	mov	r2, ip
+ 8014128:	f7ff ff16 	bl	8013f58 <ComputeCmac>
+    if( retval != SECURE_ELEMENT_SUCCESS )
+ 801412c:	b918      	cbnz	r0, 8014136 <SecureElementVerifyAesCmac+0x24>
+    {
+        return retval;
+    }
+
+    if( expectedCmac != compCmac )
+ 801412e:	9b03      	ldr	r3, [sp, #12]
+ 8014130:	42a3      	cmp	r3, r4
+ 8014132:	d000      	beq.n	8014136 <SecureElementVerifyAesCmac+0x24>
+    {
+        retval = SECURE_ELEMENT_FAIL_CMAC;
+ 8014134:	2001      	movs	r0, #1
+    }
+
+#endif /* LORAWAN_KMS */
+
+    return retval;
+}
+ 8014136:	b004      	add	sp, #16
+ 8014138:	bd10      	pop	{r4, pc}
+        return SECURE_ELEMENT_ERROR_NPE;
+ 801413a:	2002      	movs	r0, #2
+}
+ 801413c:	4770      	bx	lr
+
+0801413e <SecureElementAesEncrypt>:
+
+SecureElementStatus_t SecureElementAesEncrypt( uint8_t *buffer, uint32_t size, KeyIdentifier_t keyID,
+                                               uint8_t *encBuffer )
+{
+ 801413e:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8014142:	b0be      	sub	sp, #248	; 0xf8
+    if( ( buffer == NULL ) || ( encBuffer == NULL ) )
+ 8014144:	b348      	cbz	r0, 801419a <SecureElementAesEncrypt+0x5c>
+ 8014146:	460d      	mov	r5, r1
+ 8014148:	4614      	mov	r4, r2
+ 801414a:	461e      	mov	r6, r3
+ 801414c:	4607      	mov	r7, r0
+ 801414e:	b33b      	cbz	r3, 80141a0 <SecureElementAesEncrypt+0x62>
+    {
+        return SECURE_ELEMENT_ERROR_NPE;
+    }
+
+    /* Check if the size is divisible by 16 */
+    if( ( size % 16 ) != 0 )
+ 8014150:	f011 0f0f 	tst.w	r1, #15
+ 8014154:	d127      	bne.n	80141a6 <SecureElementAesEncrypt+0x68>
+        return SECURE_ELEMENT_ERROR_BUF_SIZE;
+    }
+
+#if (LORAWAN_KMS == 0)
+    lorawan_aes_context aesContext;
+    memset1( aesContext.ksch, '\0', 240 );
+ 8014156:	22f0      	movs	r2, #240	; 0xf0
+ 8014158:	2100      	movs	r1, #0
+ 801415a:	a801      	add	r0, sp, #4
+ 801415c:	f000 fa35 	bl	80145ca <memset1>
+
+    Key_t                *pItem;
+    SecureElementStatus_t retval = GetKeyByID( keyID, &pItem );
+ 8014160:	4669      	mov	r1, sp
+ 8014162:	4620      	mov	r0, r4
+ 8014164:	f7ff fed8 	bl	8013f18 <GetKeyByID>
+
+    if( retval == SECURE_ELEMENT_SUCCESS )
+ 8014168:	4680      	mov	r8, r0
+ 801416a:	b118      	cbz	r0, 8014174 <SecureElementAesEncrypt+0x36>
+        retval = SECURE_ELEMENT_ERROR;
+    }
+#endif /* LORAWAN_KMS */
+
+    return retval;
+}
+ 801416c:	4640      	mov	r0, r8
+ 801416e:	b03e      	add	sp, #248	; 0xf8
+ 8014170:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+        lorawan_aes_set_key( pItem->KeyValue, SE_KEY_SIZE, &aesContext );
+ 8014174:	aa01      	add	r2, sp, #4
+ 8014176:	2110      	movs	r1, #16
+ 8014178:	9800      	ldr	r0, [sp, #0]
+ 801417a:	3001      	adds	r0, #1
+ 801417c:	f7ff fe1e 	bl	8013dbc <lorawan_aes_set_key>
+        uint8_t block = 0;
+ 8014180:	4644      	mov	r4, r8
+        while( size != 0 )
+ 8014182:	e007      	b.n	8014194 <SecureElementAesEncrypt+0x56>
+            lorawan_aes_encrypt( &buffer[block], &encBuffer[block], &aesContext );
+ 8014184:	aa01      	add	r2, sp, #4
+ 8014186:	1931      	adds	r1, r6, r4
+ 8014188:	1938      	adds	r0, r7, r4
+ 801418a:	f7ff fe9b 	bl	8013ec4 <lorawan_aes_encrypt>
+            block = block + 16;
+ 801418e:	3410      	adds	r4, #16
+ 8014190:	b2e4      	uxtb	r4, r4
+            size  = size - 16;
+ 8014192:	3d10      	subs	r5, #16
+        while( size != 0 )
+ 8014194:	2d00      	cmp	r5, #0
+ 8014196:	d1f5      	bne.n	8014184 <SecureElementAesEncrypt+0x46>
+ 8014198:	e7e8      	b.n	801416c <SecureElementAesEncrypt+0x2e>
+        return SECURE_ELEMENT_ERROR_NPE;
+ 801419a:	f04f 0802 	mov.w	r8, #2
+ 801419e:	e7e5      	b.n	801416c <SecureElementAesEncrypt+0x2e>
+ 80141a0:	f04f 0802 	mov.w	r8, #2
+ 80141a4:	e7e2      	b.n	801416c <SecureElementAesEncrypt+0x2e>
+        return SECURE_ELEMENT_ERROR_BUF_SIZE;
+ 80141a6:	f04f 0805 	mov.w	r8, #5
+ 80141aa:	e7df      	b.n	801416c <SecureElementAesEncrypt+0x2e>
+
+080141ac <SecureElementSetKey>:
+{
+ 80141ac:	b530      	push	{r4, r5, lr}
+ 80141ae:	b085      	sub	sp, #20
+    if( key == NULL )
+ 80141b0:	2900      	cmp	r1, #0
+ 80141b2:	d038      	beq.n	8014226 <SecureElementSetKey+0x7a>
+ 80141b4:	468c      	mov	ip, r1
+    for( uint8_t i = 0; i < NUM_OF_KEYS; i++ )
+ 80141b6:	2300      	movs	r3, #0
+ 80141b8:	2b0a      	cmp	r3, #10
+ 80141ba:	d830      	bhi.n	801421e <SecureElementSetKey+0x72>
+        if( SeNvm->KeyList[i].KeyID == keyID )
+ 80141bc:	4a1b      	ldr	r2, [pc, #108]	; (801422c <SecureElementSetKey+0x80>)
+ 80141be:	6811      	ldr	r1, [r2, #0]
+ 80141c0:	461c      	mov	r4, r3
+ 80141c2:	eb03 1203 	add.w	r2, r3, r3, lsl #4
+ 80141c6:	440a      	add	r2, r1
+ 80141c8:	7e12      	ldrb	r2, [r2, #24]
+ 80141ca:	4282      	cmp	r2, r0
+ 80141cc:	d002      	beq.n	80141d4 <SecureElementSetKey+0x28>
+    for( uint8_t i = 0; i < NUM_OF_KEYS; i++ )
+ 80141ce:	3301      	adds	r3, #1
+ 80141d0:	b2db      	uxtb	r3, r3
+ 80141d2:	e7f1      	b.n	80141b8 <SecureElementSetKey+0xc>
+            if( keyID == MC_KEY_0 )
+ 80141d4:	280d      	cmp	r0, #13
+ 80141d6:	d00a      	beq.n	80141ee <SecureElementSetKey+0x42>
+                memcpy1( SeNvm->KeyList[i].KeyValue, key, SE_KEY_SIZE );
+ 80141d8:	eb03 1403 	add.w	r4, r3, r3, lsl #4
+ 80141dc:	3418      	adds	r4, #24
+ 80141de:	1908      	adds	r0, r1, r4
+ 80141e0:	2210      	movs	r2, #16
+ 80141e2:	4661      	mov	r1, ip
+ 80141e4:	3001      	adds	r0, #1
+ 80141e6:	f000 f9d8 	bl	801459a <memcpy1>
+                return SECURE_ELEMENT_SUCCESS;
+ 80141ea:	2500      	movs	r5, #0
+ 80141ec:	e018      	b.n	8014220 <SecureElementSetKey+0x74>
+                uint8_t decryptedKey[SE_KEY_SIZE] = { 0 };
+ 80141ee:	2300      	movs	r3, #0
+ 80141f0:	9300      	str	r3, [sp, #0]
+ 80141f2:	9301      	str	r3, [sp, #4]
+ 80141f4:	9302      	str	r3, [sp, #8]
+ 80141f6:	9303      	str	r3, [sp, #12]
+                retval = SecureElementAesEncrypt( key, SE_KEY_SIZE, MC_KE_KEY, decryptedKey );
+ 80141f8:	466b      	mov	r3, sp
+ 80141fa:	220c      	movs	r2, #12
+ 80141fc:	2110      	movs	r1, #16
+ 80141fe:	4660      	mov	r0, ip
+ 8014200:	f7ff ff9d 	bl	801413e <SecureElementAesEncrypt>
+ 8014204:	4605      	mov	r5, r0
+                memcpy1( SeNvm->KeyList[i].KeyValue, decryptedKey, SE_KEY_SIZE );
+ 8014206:	4b09      	ldr	r3, [pc, #36]	; (801422c <SecureElementSetKey+0x80>)
+ 8014208:	6818      	ldr	r0, [r3, #0]
+ 801420a:	eb04 1404 	add.w	r4, r4, r4, lsl #4
+ 801420e:	3418      	adds	r4, #24
+ 8014210:	4420      	add	r0, r4
+ 8014212:	2210      	movs	r2, #16
+ 8014214:	4669      	mov	r1, sp
+ 8014216:	3001      	adds	r0, #1
+ 8014218:	f000 f9bf 	bl	801459a <memcpy1>
+                return retval;
+ 801421c:	e000      	b.n	8014220 <SecureElementSetKey+0x74>
+    return SECURE_ELEMENT_ERROR_INVALID_KEY_ID;
+ 801421e:	2503      	movs	r5, #3
+}
+ 8014220:	4628      	mov	r0, r5
+ 8014222:	b005      	add	sp, #20
+ 8014224:	bd30      	pop	{r4, r5, pc}
+        return SECURE_ELEMENT_ERROR_NPE;
+ 8014226:	2502      	movs	r5, #2
+ 8014228:	e7fa      	b.n	8014220 <SecureElementSetKey+0x74>
+ 801422a:	bf00      	nop
+ 801422c:	20002630 	.word	0x20002630
+
+08014230 <SecureElementDeriveAndStoreKey>:
+
+SecureElementStatus_t SecureElementDeriveAndStoreKey( uint8_t *input, KeyIdentifier_t rootKeyID,
+                                                      KeyIdentifier_t targetKeyID )
+{
+    if( input == NULL )
+ 8014230:	b1d0      	cbz	r0, 8014268 <SecureElementDeriveAndStoreKey+0x38>
+{
+ 8014232:	b510      	push	{r4, lr}
+ 8014234:	b084      	sub	sp, #16
+ 8014236:	4614      	mov	r4, r2
+ 8014238:	4684      	mov	ip, r0
+    }
+
+    SecureElementStatus_t retval  = SECURE_ELEMENT_ERROR;
+
+    /* In case of MC_KE_KEY, only McRootKey can be used as root key */
+    if( targetKeyID == MC_KE_KEY )
+ 801423a:	2a0c      	cmp	r2, #12
+ 801423c:	d101      	bne.n	8014242 <SecureElementDeriveAndStoreKey+0x12>
+    {
+        if( rootKeyID != MC_ROOT_KEY )
+ 801423e:	290b      	cmp	r1, #11
+ 8014240:	d114      	bne.n	801426c <SecureElementDeriveAndStoreKey+0x3c>
+            return SECURE_ELEMENT_ERROR_INVALID_KEY_ID;
+        }
+    }
+
+#if (LORAWAN_KMS == 0)
+    uint8_t key[SE_KEY_SIZE] = { 0 };
+ 8014242:	2300      	movs	r3, #0
+ 8014244:	9300      	str	r3, [sp, #0]
+ 8014246:	9301      	str	r3, [sp, #4]
+ 8014248:	9302      	str	r3, [sp, #8]
+ 801424a:	9303      	str	r3, [sp, #12]
+    /* Derive key */
+    retval = SecureElementAesEncrypt( input, SE_KEY_SIZE, rootKeyID, key );
+ 801424c:	466b      	mov	r3, sp
+ 801424e:	460a      	mov	r2, r1
+ 8014250:	2110      	movs	r1, #16
+ 8014252:	4660      	mov	r0, ip
+ 8014254:	f7ff ff73 	bl	801413e <SecureElementAesEncrypt>
+    if( retval != SECURE_ELEMENT_SUCCESS )
+ 8014258:	b108      	cbz	r0, 801425e <SecureElementDeriveAndStoreKey+0x2e>
+    {
+        retval = SECURE_ELEMENT_ERROR;
+    }
+    return retval;
+#endif /* LORAWAN_KMS */
+}
+ 801425a:	b004      	add	sp, #16
+ 801425c:	bd10      	pop	{r4, pc}
+    retval = SecureElementSetKey( targetKeyID, key );
+ 801425e:	4669      	mov	r1, sp
+ 8014260:	4620      	mov	r0, r4
+ 8014262:	f7ff ffa3 	bl	80141ac <SecureElementSetKey>
+    if( retval != SECURE_ELEMENT_SUCCESS )
+ 8014266:	e7f8      	b.n	801425a <SecureElementDeriveAndStoreKey+0x2a>
+        return SECURE_ELEMENT_ERROR_NPE;
+ 8014268:	2002      	movs	r0, #2
+}
+ 801426a:	4770      	bx	lr
+            return SECURE_ELEMENT_ERROR_INVALID_KEY_ID;
+ 801426c:	2003      	movs	r0, #3
+ 801426e:	e7f4      	b.n	801425a <SecureElementDeriveAndStoreKey+0x2a>
+
+08014270 <SecureElementProcessJoinAccept>:
+
+SecureElementStatus_t SecureElementProcessJoinAccept( JoinReqIdentifier_t joinReqType, uint8_t *joinEui,
+                                                      uint16_t devNonce, uint8_t *encJoinAccept,
+                                                      uint8_t encJoinAcceptSize, uint8_t *decJoinAccept,
+                                                      uint8_t *versionMinor )
+{
+ 8014270:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 8014272:	f89d 5018 	ldrb.w	r5, [sp, #24]
+ 8014276:	9c07      	ldr	r4, [sp, #28]
+ 8014278:	9e08      	ldr	r6, [sp, #32]
+    if( ( encJoinAccept == NULL ) || ( decJoinAccept == NULL ) || ( versionMinor == NULL ) )
+ 801427a:	b35b      	cbz	r3, 80142d4 <SecureElementProcessJoinAccept+0x64>
+ 801427c:	461f      	mov	r7, r3
+ 801427e:	b35c      	cbz	r4, 80142d8 <SecureElementProcessJoinAccept+0x68>
+ 8014280:	b366      	cbz	r6, 80142dc <SecureElementProcessJoinAccept+0x6c>
+    {
+        return SECURE_ELEMENT_ERROR_NPE;
+    }
+
+    /* Check that frame size isn't bigger than a JoinAccept with CFList size */
+    if( encJoinAcceptSize > LORAMAC_JOIN_ACCEPT_FRAME_MAX_SIZE )
+ 8014282:	2d21      	cmp	r5, #33	; 0x21
+ 8014284:	d82c      	bhi.n	80142e0 <SecureElementProcessJoinAccept+0x70>
+    {
+        encKeyID = J_S_ENC_KEY;
+    }
+#endif /* LORAMAC_VERSION */
+
+    memcpy1( decJoinAccept, encJoinAccept, encJoinAcceptSize );
+ 8014286:	462a      	mov	r2, r5
+ 8014288:	4619      	mov	r1, r3
+ 801428a:	4620      	mov	r0, r4
+ 801428c:	f000 f985 	bl	801459a <memcpy1>
+
+    /* Decrypt JoinAccept, skip MHDR */
+    if( SecureElementAesEncrypt( encJoinAccept + LORAMAC_MHDR_FIELD_SIZE, encJoinAcceptSize - LORAMAC_MHDR_FIELD_SIZE,
+ 8014290:	1c63      	adds	r3, r4, #1
+ 8014292:	2201      	movs	r2, #1
+ 8014294:	1e69      	subs	r1, r5, #1
+ 8014296:	18b8      	adds	r0, r7, r2
+ 8014298:	f7ff ff51 	bl	801413e <SecureElementAesEncrypt>
+ 801429c:	bb10      	cbnz	r0, 80142e4 <SecureElementProcessJoinAccept+0x74>
+                                 encKeyID, decJoinAccept + LORAMAC_MHDR_FIELD_SIZE ) != SECURE_ELEMENT_SUCCESS )
+    {
+        return SECURE_ELEMENT_FAIL_ENCRYPT;
+    }
+
+    *versionMinor = ( ( decJoinAccept[11] & 0x80 ) == 0x80 ) ? 1 : 0;
+ 801429e:	7ae3      	ldrb	r3, [r4, #11]
+ 80142a0:	09db      	lsrs	r3, r3, #7
+ 80142a2:	7033      	strb	r3, [r6, #0]
+
+    uint32_t mic = GET_UINT32_LE( decJoinAccept, encJoinAcceptSize - LORAMAC_MIC_FIELD_SIZE );
+ 80142a4:	1961      	adds	r1, r4, r5
+ 80142a6:	f811 2c04 	ldrb.w	r2, [r1, #-4]
+ 80142aa:	f811 0c03 	ldrb.w	r0, [r1, #-3]
+ 80142ae:	ea42 2200 	orr.w	r2, r2, r0, lsl #8
+ 80142b2:	f811 0c02 	ldrb.w	r0, [r1, #-2]
+ 80142b6:	ea42 4200 	orr.w	r2, r2, r0, lsl #16
+ 80142ba:	f811 1c01 	ldrb.w	r1, [r1, #-1]
+ 80142be:	ea42 6201 	orr.w	r2, r2, r1, lsl #24
+     *        - LoRaWAN 1.0.x : micHeader = [MHDR(1)]
+     *        - LoRaWAN 1.1.x : micHeader = [JoinReqType(1), JoinEUI(8), DevNonce(2), MHDR(1)]
+     */
+
+    /* Verify mic */
+    if( *versionMinor == 0 )
+ 80142c2:	b98b      	cbnz	r3, 80142e8 <SecureElementProcessJoinAccept+0x78>
+    {
+        /* For LoRaWAN 1.0.x
+         *   cmac = aes128_cmac(NwkKey, MHDR |  JoinNonce | NetID | DevAddr | DLSettings | RxDelay | CFList |
+         *   CFListType)
+         */
+        if( SecureElementVerifyAesCmac( decJoinAccept, ( encJoinAcceptSize - LORAMAC_MIC_FIELD_SIZE ), mic, NWK_KEY ) !=
+ 80142c4:	2301      	movs	r3, #1
+ 80142c6:	1f29      	subs	r1, r5, #4
+ 80142c8:	4620      	mov	r0, r4
+ 80142ca:	f7ff ff22 	bl	8014112 <SecureElementVerifyAesCmac>
+ 80142ce:	b140      	cbz	r0, 80142e2 <SecureElementProcessJoinAccept+0x72>
+            SECURE_ELEMENT_SUCCESS )
+        {
+            return SECURE_ELEMENT_FAIL_CMAC;
+ 80142d0:	2001      	movs	r0, #1
+ 80142d2:	e006      	b.n	80142e2 <SecureElementProcessJoinAccept+0x72>
+        return SECURE_ELEMENT_ERROR_NPE;
+ 80142d4:	2002      	movs	r0, #2
+ 80142d6:	e004      	b.n	80142e2 <SecureElementProcessJoinAccept+0x72>
+ 80142d8:	2002      	movs	r0, #2
+ 80142da:	e002      	b.n	80142e2 <SecureElementProcessJoinAccept+0x72>
+ 80142dc:	2002      	movs	r0, #2
+ 80142de:	e000      	b.n	80142e2 <SecureElementProcessJoinAccept+0x72>
+        return SECURE_ELEMENT_ERROR_BUF_SIZE;
+ 80142e0:	2005      	movs	r0, #5
+    {
+        return SECURE_ELEMENT_ERROR_INVALID_LORAWAM_SPEC_VERSION;
+    }
+
+    return SECURE_ELEMENT_SUCCESS;
+}
+ 80142e2:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+        return SECURE_ELEMENT_FAIL_ENCRYPT;
+ 80142e4:	2007      	movs	r0, #7
+ 80142e6:	e7fc      	b.n	80142e2 <SecureElementProcessJoinAccept+0x72>
+        return SECURE_ELEMENT_ERROR_INVALID_LORAWAM_SPEC_VERSION;
+ 80142e8:	2004      	movs	r0, #4
+ 80142ea:	e7fa      	b.n	80142e2 <SecureElementProcessJoinAccept+0x72>
+
+080142ec <SecureElementRandomNumber>:
+
+#if (defined( LORAMAC_VERSION ) && ( LORAMAC_VERSION == 0x01000300 ))
+SecureElementStatus_t SecureElementRandomNumber( uint32_t *randomNum )
+{
+    if( randomNum == NULL )
+ 80142ec:	b138      	cbz	r0, 80142fe <SecureElementRandomNumber+0x12>
+{
+ 80142ee:	b510      	push	{r4, lr}
+ 80142f0:	4604      	mov	r4, r0
+    {
+        return SECURE_ELEMENT_ERROR_NPE;
+    }
+    *randomNum = Radio.Random();
+ 80142f2:	4b04      	ldr	r3, [pc, #16]	; (8014304 <SecureElementRandomNumber+0x18>)
+ 80142f4:	695b      	ldr	r3, [r3, #20]
+ 80142f6:	4798      	blx	r3
+ 80142f8:	6020      	str	r0, [r4, #0]
+    return SECURE_ELEMENT_SUCCESS;
+ 80142fa:	2000      	movs	r0, #0
+}
+ 80142fc:	bd10      	pop	{r4, pc}
+        return SECURE_ELEMENT_ERROR_NPE;
+ 80142fe:	2002      	movs	r0, #2
+}
+ 8014300:	4770      	bx	lr
+ 8014302:	bf00      	nop
+ 8014304:	08018cb4 	.word	0x08018cb4
+
+08014308 <SecureElementSetDevEui>:
+#endif /* LORAMAC_VERSION */
+
+SecureElementStatus_t SecureElementSetDevEui( uint8_t *devEui )
+{
+    if( devEui == NULL )
+ 8014308:	b140      	cbz	r0, 801431c <SecureElementSetDevEui+0x14>
+{
+ 801430a:	b508      	push	{r3, lr}
+ 801430c:	4601      	mov	r1, r0
+    {
+        return SECURE_ELEMENT_ERROR_NPE;
+    }
+
+#if (LORAWAN_KMS == 0)
+    memcpy1( SeNvm->SeNvmDevJoinKey.DevEui, devEui, SE_EUI_SIZE );
+ 801430e:	2208      	movs	r2, #8
+ 8014310:	4b03      	ldr	r3, [pc, #12]	; (8014320 <SecureElementSetDevEui+0x18>)
+ 8014312:	6818      	ldr	r0, [r3, #0]
+ 8014314:	f000 f941 	bl	801459a <memcpy1>
+    return SECURE_ELEMENT_SUCCESS;
+ 8014318:	2000      	movs	r0, #0
+        memcpy1( KMSKeyBlob.DevEui, devEui, SE_EUI_SIZE );
+        status = SecureElementSetID( &KMSKeyBlob );
+    }
+    return status;
+#endif /* LORAWAN_KMS */
+}
+ 801431a:	bd08      	pop	{r3, pc}
+        return SECURE_ELEMENT_ERROR_NPE;
+ 801431c:	2002      	movs	r0, #2
+}
+ 801431e:	4770      	bx	lr
+ 8014320:	20002630 	.word	0x20002630
+
+08014324 <SecureElementGetDevEui>:
+
+SecureElementStatus_t SecureElementGetDevEui( uint8_t *devEui )
+{
+    if( devEui == NULL )
+ 8014324:	b138      	cbz	r0, 8014336 <SecureElementGetDevEui+0x12>
+{
+ 8014326:	b508      	push	{r3, lr}
+    {
+        return SECURE_ELEMENT_ERROR_NPE;
+    }
+
+#if (LORAWAN_KMS == 0)
+    memcpy1( devEui, SeNvm->SeNvmDevJoinKey.DevEui, SE_EUI_SIZE );
+ 8014328:	2208      	movs	r2, #8
+ 801432a:	4904      	ldr	r1, [pc, #16]	; (801433c <SecureElementGetDevEui+0x18>)
+ 801432c:	6809      	ldr	r1, [r1, #0]
+ 801432e:	f000 f934 	bl	801459a <memcpy1>
+    return SECURE_ELEMENT_SUCCESS;
+ 8014332:	2000      	movs	r0, #0
+        /* get DevEui field in KMSKeyBlob handle */
+        memcpy1( devEui, KMSKeyBlob.DevEui, SE_EUI_SIZE );
+    }
+    return status;
+#endif /* LORAWAN_KMS */
+}
+ 8014334:	bd08      	pop	{r3, pc}
+        return SECURE_ELEMENT_ERROR_NPE;
+ 8014336:	2002      	movs	r0, #2
+}
+ 8014338:	4770      	bx	lr
+ 801433a:	bf00      	nop
+ 801433c:	20002630 	.word	0x20002630
+
+08014340 <SecureElementSetJoinEui>:
+
+SecureElementStatus_t SecureElementSetJoinEui( uint8_t *joinEui )
+{
+    if( joinEui == NULL )
+ 8014340:	b148      	cbz	r0, 8014356 <SecureElementSetJoinEui+0x16>
+{
+ 8014342:	b508      	push	{r3, lr}
+ 8014344:	4601      	mov	r1, r0
+    {
+        return SECURE_ELEMENT_ERROR_NPE;
+    }
+
+#if (LORAWAN_KMS == 0)
+    memcpy1( SeNvm->SeNvmDevJoinKey.JoinEui, joinEui, SE_EUI_SIZE );
+ 8014346:	4b05      	ldr	r3, [pc, #20]	; (801435c <SecureElementSetJoinEui+0x1c>)
+ 8014348:	6818      	ldr	r0, [r3, #0]
+ 801434a:	2208      	movs	r2, #8
+ 801434c:	4410      	add	r0, r2
+ 801434e:	f000 f924 	bl	801459a <memcpy1>
+    return SECURE_ELEMENT_SUCCESS;
+ 8014352:	2000      	movs	r0, #0
+        memcpy1( KMSKeyBlob.JoinEui, joinEui, SE_EUI_SIZE );
+        status = SecureElementSetID( &KMSKeyBlob );
+    }
+    return status;
+#endif /* LORAWAN_KMS */
+}
+ 8014354:	bd08      	pop	{r3, pc}
+        return SECURE_ELEMENT_ERROR_NPE;
+ 8014356:	2002      	movs	r0, #2
+}
+ 8014358:	4770      	bx	lr
+ 801435a:	bf00      	nop
+ 801435c:	20002630 	.word	0x20002630
+
+08014360 <SecureElementGetJoinEui>:
+
+SecureElementStatus_t SecureElementGetJoinEui( uint8_t *joinEui )
+{
+    if( joinEui == NULL )
+ 8014360:	b140      	cbz	r0, 8014374 <SecureElementGetJoinEui+0x14>
+{
+ 8014362:	b508      	push	{r3, lr}
+    {
+        return SECURE_ELEMENT_ERROR_NPE;
+    }
+
+#if (LORAWAN_KMS == 0)
+    memcpy1( joinEui, SeNvm->SeNvmDevJoinKey.JoinEui, SE_EUI_SIZE );
+ 8014364:	4a04      	ldr	r2, [pc, #16]	; (8014378 <SecureElementGetJoinEui+0x18>)
+ 8014366:	6811      	ldr	r1, [r2, #0]
+ 8014368:	2208      	movs	r2, #8
+ 801436a:	4411      	add	r1, r2
+ 801436c:	f000 f915 	bl	801459a <memcpy1>
+    return SECURE_ELEMENT_SUCCESS;
+ 8014370:	2000      	movs	r0, #0
+        /* get JoinEui field from KMSKeyBlob handle */
+        memcpy1( joinEui, KMSKeyBlob.JoinEui, SE_EUI_SIZE );
+    }
+    return status;
+#endif /* LORAWAN_KMS */
+}
+ 8014372:	bd08      	pop	{r3, pc}
+        return SECURE_ELEMENT_ERROR_NPE;
+ 8014374:	2002      	movs	r0, #2
+}
+ 8014376:	4770      	bx	lr
+ 8014378:	20002630 	.word	0x20002630
+
+0801437c <SecureElementSetDevAddr>:
+
+SecureElementStatus_t SecureElementSetDevAddr( ActivationType_t mode, uint32_t devAddr )
+{
+#if (LORAWAN_KMS == 0)
+    if( mode == ACTIVATION_TYPE_OTAA )
+ 801437c:	2802      	cmp	r0, #2
+ 801437e:	d004      	beq.n	801438a <SecureElementSetDevAddr+0xe>
+    {
+        SeNvm->SeNvmDevJoinKey.DevAddrOTAA = devAddr;
+    }
+    else
+    {
+        SeNvm->SeNvmDevJoinKey.DevAddrABP = devAddr;
+ 8014380:	4b04      	ldr	r3, [pc, #16]	; (8014394 <SecureElementSetDevAddr+0x18>)
+ 8014382:	681b      	ldr	r3, [r3, #0]
+ 8014384:	6159      	str	r1, [r3, #20]
+        }
+    }
+
+    return status;
+#endif /* LORAWAN_KMS */
+}
+ 8014386:	2000      	movs	r0, #0
+ 8014388:	4770      	bx	lr
+        SeNvm->SeNvmDevJoinKey.DevAddrOTAA = devAddr;
+ 801438a:	4b02      	ldr	r3, [pc, #8]	; (8014394 <SecureElementSetDevAddr+0x18>)
+ 801438c:	681b      	ldr	r3, [r3, #0]
+ 801438e:	6119      	str	r1, [r3, #16]
+ 8014390:	e7f9      	b.n	8014386 <SecureElementSetDevAddr+0xa>
+ 8014392:	bf00      	nop
+ 8014394:	20002630 	.word	0x20002630
+
+08014398 <SecureElementGetDevAddr>:
+
+SecureElementStatus_t SecureElementGetDevAddr( ActivationType_t mode, uint32_t *devAddr )
+{
+    if( devAddr == NULL )
+ 8014398:	b169      	cbz	r1, 80143b6 <SecureElementGetDevAddr+0x1e>
+    {
+        return SECURE_ELEMENT_ERROR_NPE;
+    }
+#if (LORAWAN_KMS == 0)
+    /* Recover DevAddrABP or DevAddrOTAA depending on mode */
+    if( mode == ACTIVATION_TYPE_OTAA )
+ 801439a:	2802      	cmp	r0, #2
+ 801439c:	d005      	beq.n	80143aa <SecureElementGetDevAddr+0x12>
+    {
+        *devAddr = SeNvm->SeNvmDevJoinKey.DevAddrOTAA;
+    }
+    else
+    {
+        *devAddr = SeNvm->SeNvmDevJoinKey.DevAddrABP;
+ 801439e:	4a07      	ldr	r2, [pc, #28]	; (80143bc <SecureElementGetDevAddr+0x24>)
+ 80143a0:	6812      	ldr	r2, [r2, #0]
+ 80143a2:	6952      	ldr	r2, [r2, #20]
+ 80143a4:	600a      	str	r2, [r1, #0]
+    }
+    return SECURE_ELEMENT_SUCCESS;
+ 80143a6:	2000      	movs	r0, #0
+ 80143a8:	4770      	bx	lr
+        *devAddr = SeNvm->SeNvmDevJoinKey.DevAddrOTAA;
+ 80143aa:	4a04      	ldr	r2, [pc, #16]	; (80143bc <SecureElementGetDevAddr+0x24>)
+ 80143ac:	6812      	ldr	r2, [r2, #0]
+ 80143ae:	6912      	ldr	r2, [r2, #16]
+ 80143b0:	600a      	str	r2, [r1, #0]
+    return SECURE_ELEMENT_SUCCESS;
+ 80143b2:	2000      	movs	r0, #0
+ 80143b4:	4770      	bx	lr
+        return SECURE_ELEMENT_ERROR_NPE;
+ 80143b6:	2002      	movs	r0, #2
+        }
+    }
+
+    return status;
+#endif /* LORAWAN_KMS */
+}
+ 80143b8:	4770      	bx	lr
+ 80143ba:	bf00      	nop
+ 80143bc:	20002630 	.word	0x20002630
+
+080143c0 <SecureElementInitMcuID>:
+{
+ 80143c0:	b530      	push	{r4, r5, lr}
+ 80143c2:	b085      	sub	sp, #20
+ 80143c4:	4605      	mov	r5, r0
+ 80143c6:	460c      	mov	r4, r1
+    uint32_t devAddrABP = 0;
+ 80143c8:	2300      	movs	r3, #0
+ 80143ca:	9301      	str	r3, [sp, #4]
+    SecureElementGetDevEui( devEui );
+ 80143cc:	a802      	add	r0, sp, #8
+ 80143ce:	f7ff ffa9 	bl	8014324 <SecureElementGetDevEui>
+    SecureElementGetDevAddr( ACTIVATION_TYPE_ABP, &devAddrABP );
+ 80143d2:	a901      	add	r1, sp, #4
+ 80143d4:	2001      	movs	r0, #1
+ 80143d6:	f7ff ffdf 	bl	8014398 <SecureElementGetDevAddr>
+    if( seGetUniqueId != NULL )
+ 80143da:	b195      	cbz	r5, 8014402 <SecureElementInitMcuID+0x42>
+        for( uint8_t index = 0; index < SE_EUI_SIZE; index++ )
+ 80143dc:	2300      	movs	r3, #0
+ 80143de:	2b07      	cmp	r3, #7
+ 80143e0:	d808      	bhi.n	80143f4 <SecureElementInitMcuID+0x34>
+            if( devEui[index] != 0 )
+ 80143e2:	f103 0210 	add.w	r2, r3, #16
+ 80143e6:	446a      	add	r2, sp
+ 80143e8:	f812 2c08 	ldrb.w	r2, [r2, #-8]
+ 80143ec:	b9aa      	cbnz	r2, 801441a <SecureElementInitMcuID+0x5a>
+        for( uint8_t index = 0; index < SE_EUI_SIZE; index++ )
+ 80143ee:	3301      	adds	r3, #1
+ 80143f0:	b2db      	uxtb	r3, r3
+ 80143f2:	e7f4      	b.n	80143de <SecureElementInitMcuID+0x1e>
+        bool id_init = false;
+ 80143f4:	2300      	movs	r3, #0
+        if( id_init == false )
+ 80143f6:	b923      	cbnz	r3, 8014402 <SecureElementInitMcuID+0x42>
+            seGetUniqueId( devEui );
+ 80143f8:	a802      	add	r0, sp, #8
+ 80143fa:	47a8      	blx	r5
+            SecureElementSetDevEui( devEui );
+ 80143fc:	a802      	add	r0, sp, #8
+ 80143fe:	f7ff ff83 	bl	8014308 <SecureElementSetDevEui>
+    if( ( seGetDevAddr != NULL ) && ( devAddrABP == 0 ) )
+ 8014402:	b13c      	cbz	r4, 8014414 <SecureElementInitMcuID+0x54>
+ 8014404:	9b01      	ldr	r3, [sp, #4]
+ 8014406:	b92b      	cbnz	r3, 8014414 <SecureElementInitMcuID+0x54>
+        seGetDevAddr( &devAddrABP );
+ 8014408:	a801      	add	r0, sp, #4
+ 801440a:	47a0      	blx	r4
+        SecureElementSetDevAddr( ACTIVATION_TYPE_ABP, devAddrABP );
+ 801440c:	9901      	ldr	r1, [sp, #4]
+ 801440e:	2001      	movs	r0, #1
+ 8014410:	f7ff ffb4 	bl	801437c <SecureElementSetDevAddr>
+}
+ 8014414:	2000      	movs	r0, #0
+ 8014416:	b005      	add	sp, #20
+ 8014418:	bd30      	pop	{r4, r5, pc}
+                id_init = true;
+ 801441a:	2301      	movs	r3, #1
+ 801441c:	e7eb      	b.n	80143f6 <SecureElementInitMcuID+0x36>
+	...
+
+08014420 <PrintIds>:
+{
+ 8014420:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8014422:	b08f      	sub	sp, #60	; 0x3c
+ 8014424:	4605      	mov	r5, r0
+    uint32_t devAddr = 0;
+ 8014426:	2400      	movs	r4, #0
+ 8014428:	9409      	str	r4, [sp, #36]	; 0x24
+    SecureElementGetDevEui( devEui );
+ 801442a:	a80a      	add	r0, sp, #40	; 0x28
+ 801442c:	f7ff ff7a 	bl	8014324 <SecureElementGetDevEui>
+    MW_LOG( TS_OFF, VLEVEL_M, "###### DevEUI:      %02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X\r\n", HEX8( devEui ) );
+ 8014430:	f89d 3028 	ldrb.w	r3, [sp, #40]	; 0x28
+ 8014434:	f89d 2029 	ldrb.w	r2, [sp, #41]	; 0x29
+ 8014438:	f89d 102a 	ldrb.w	r1, [sp, #42]	; 0x2a
+ 801443c:	f89d 002b 	ldrb.w	r0, [sp, #43]	; 0x2b
+ 8014440:	f89d 602c 	ldrb.w	r6, [sp, #44]	; 0x2c
+ 8014444:	f89d 702d 	ldrb.w	r7, [sp, #45]	; 0x2d
+ 8014448:	f89d c02e 	ldrb.w	ip, [sp, #46]	; 0x2e
+ 801444c:	f89d e02f 	ldrb.w	lr, [sp, #47]	; 0x2f
+ 8014450:	f8cd e01c 	str.w	lr, [sp, #28]
+ 8014454:	f8cd c018 	str.w	ip, [sp, #24]
+ 8014458:	9705      	str	r7, [sp, #20]
+ 801445a:	9604      	str	r6, [sp, #16]
+ 801445c:	9003      	str	r0, [sp, #12]
+ 801445e:	9102      	str	r1, [sp, #8]
+ 8014460:	9201      	str	r2, [sp, #4]
+ 8014462:	9300      	str	r3, [sp, #0]
+ 8014464:	4b20      	ldr	r3, [pc, #128]	; (80144e8 <PrintIds+0xc8>)
+ 8014466:	4622      	mov	r2, r4
+ 8014468:	4621      	mov	r1, r4
+ 801446a:	2002      	movs	r0, #2
+ 801446c:	f002 fb64 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+    SecureElementGetJoinEui( joinEui );
+ 8014470:	a80c      	add	r0, sp, #48	; 0x30
+ 8014472:	f7ff ff75 	bl	8014360 <SecureElementGetJoinEui>
+    MW_LOG( TS_OFF, VLEVEL_M, "###### AppEUI:      %02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X\r\n", HEX8( joinEui ) );
+ 8014476:	f89d 3030 	ldrb.w	r3, [sp, #48]	; 0x30
+ 801447a:	f89d 2031 	ldrb.w	r2, [sp, #49]	; 0x31
+ 801447e:	f89d 1032 	ldrb.w	r1, [sp, #50]	; 0x32
+ 8014482:	f89d 0033 	ldrb.w	r0, [sp, #51]	; 0x33
+ 8014486:	f89d 6034 	ldrb.w	r6, [sp, #52]	; 0x34
+ 801448a:	f89d 7035 	ldrb.w	r7, [sp, #53]	; 0x35
+ 801448e:	f89d c036 	ldrb.w	ip, [sp, #54]	; 0x36
+ 8014492:	f89d e037 	ldrb.w	lr, [sp, #55]	; 0x37
+ 8014496:	f8cd e01c 	str.w	lr, [sp, #28]
+ 801449a:	f8cd c018 	str.w	ip, [sp, #24]
+ 801449e:	9705      	str	r7, [sp, #20]
+ 80144a0:	9604      	str	r6, [sp, #16]
+ 80144a2:	9003      	str	r0, [sp, #12]
+ 80144a4:	9102      	str	r1, [sp, #8]
+ 80144a6:	9201      	str	r2, [sp, #4]
+ 80144a8:	9300      	str	r3, [sp, #0]
+ 80144aa:	4b10      	ldr	r3, [pc, #64]	; (80144ec <PrintIds+0xcc>)
+ 80144ac:	4622      	mov	r2, r4
+ 80144ae:	4621      	mov	r1, r4
+ 80144b0:	2002      	movs	r0, #2
+ 80144b2:	f002 fb41 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+    SecureElementGetDevAddr( mode, &devAddr );
+ 80144b6:	a909      	add	r1, sp, #36	; 0x24
+ 80144b8:	4628      	mov	r0, r5
+ 80144ba:	f7ff ff6d 	bl	8014398 <SecureElementGetDevAddr>
+    MW_LOG( TS_OFF, VLEVEL_M, "###### DevAddr:     %02X:%02X:%02X:%02X\r\n",
+ 80144be:	f89d 3027 	ldrb.w	r3, [sp, #39]	; 0x27
+ 80144c2:	f89d 2026 	ldrb.w	r2, [sp, #38]	; 0x26
+ 80144c6:	f89d 1025 	ldrb.w	r1, [sp, #37]	; 0x25
+ 80144ca:	f89d 0024 	ldrb.w	r0, [sp, #36]	; 0x24
+ 80144ce:	9003      	str	r0, [sp, #12]
+ 80144d0:	9102      	str	r1, [sp, #8]
+ 80144d2:	9201      	str	r2, [sp, #4]
+ 80144d4:	9300      	str	r3, [sp, #0]
+ 80144d6:	4b06      	ldr	r3, [pc, #24]	; (80144f0 <PrintIds+0xd0>)
+ 80144d8:	4622      	mov	r2, r4
+ 80144da:	4621      	mov	r1, r4
+ 80144dc:	2002      	movs	r0, #2
+ 80144de:	f002 fb2b 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+}
+ 80144e2:	b00f      	add	sp, #60	; 0x3c
+ 80144e4:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 80144e6:	bf00      	nop
+ 80144e8:	08018a84 	.word	0x08018a84
+ 80144ec:	08018ac4 	.word	0x08018ac4
+ 80144f0:	08018b04 	.word	0x08018b04
+
+080144f4 <SecureElementPrintKeys>:
+{
+ 80144f4:	b508      	push	{r3, lr}
+    PrintKey( APP_KEY );
+ 80144f6:	2000      	movs	r0, #0
+ 80144f8:	f7ff fd9e 	bl	8014038 <PrintKey>
+    PrintKey( NWK_KEY );
+ 80144fc:	2001      	movs	r0, #1
+ 80144fe:	f7ff fd9b 	bl	8014038 <PrintKey>
+    PrintKey( APP_S_KEY );
+ 8014502:	2009      	movs	r0, #9
+ 8014504:	f7ff fd98 	bl	8014038 <PrintKey>
+    PrintKey( NWK_S_KEY );
+ 8014508:	2008      	movs	r0, #8
+ 801450a:	f7ff fd95 	bl	8014038 <PrintKey>
+    PrintIds( ACTIVATION_TYPE_NONE );
+ 801450e:	2000      	movs	r0, #0
+ 8014510:	f7ff ff86 	bl	8014420 <PrintIds>
+}
+ 8014514:	2000      	movs	r0, #0
+ 8014516:	bd08      	pop	{r3, pc}
+
+08014518 <SecureElementPrintSessionKeys>:
+{
+ 8014518:	b510      	push	{r4, lr}
+ 801451a:	4604      	mov	r4, r0
+    PrintKey( MC_ROOT_KEY );
+ 801451c:	200b      	movs	r0, #11
+ 801451e:	f7ff fd8b 	bl	8014038 <PrintKey>
+    PrintKey( MC_KE_KEY );
+ 8014522:	200c      	movs	r0, #12
+ 8014524:	f7ff fd88 	bl	8014038 <PrintKey>
+    PrintKey( APP_S_KEY );
+ 8014528:	2009      	movs	r0, #9
+ 801452a:	f7ff fd85 	bl	8014038 <PrintKey>
+    PrintKey( NWK_S_KEY );
+ 801452e:	2008      	movs	r0, #8
+ 8014530:	f7ff fd82 	bl	8014038 <PrintKey>
+    PrintKey( DATABLOCK_INT_KEY );
+ 8014534:	200a      	movs	r0, #10
+ 8014536:	f7ff fd7f 	bl	8014038 <PrintKey>
+    PrintIds( mode );
+ 801453a:	4620      	mov	r0, r4
+ 801453c:	f7ff ff70 	bl	8014420 <PrintIds>
+}
+ 8014540:	2000      	movs	r0, #0
+ 8014542:	bd10      	pop	{r4, pc}
+
+08014544 <rand1>:
+
+static int32_t rand1( void );
+
+static int32_t rand1( void )
+{
+    return ( ( next = next * 1103515245L + 12345L ) % RAND_LOCAL_MAX );
+ 8014544:	4b09      	ldr	r3, [pc, #36]	; (801456c <rand1+0x28>)
+ 8014546:	681a      	ldr	r2, [r3, #0]
+ 8014548:	4909      	ldr	r1, [pc, #36]	; (8014570 <rand1+0x2c>)
+ 801454a:	f243 0039 	movw	r0, #12345	; 0x3039
+ 801454e:	fb01 0002 	mla	r0, r1, r2, r0
+ 8014552:	6018      	str	r0, [r3, #0]
+ 8014554:	2303      	movs	r3, #3
+ 8014556:	fba3 2300 	umull	r2, r3, r3, r0
+ 801455a:	1ac2      	subs	r2, r0, r3
+ 801455c:	eb03 0352 	add.w	r3, r3, r2, lsr #1
+ 8014560:	0f9b      	lsrs	r3, r3, #30
+ 8014562:	ebc3 73c3 	rsb	r3, r3, r3, lsl #31
+}
+ 8014566:	1ac0      	subs	r0, r0, r3
+ 8014568:	4770      	bx	lr
+ 801456a:	bf00      	nop
+ 801456c:	200008bc 	.word	0x200008bc
+ 8014570:	41c64e6d 	.word	0x41c64e6d
+
+08014574 <srand1>:
+
+void srand1( uint32_t seed )
+{
+    next = seed;
+ 8014574:	4b01      	ldr	r3, [pc, #4]	; (801457c <srand1+0x8>)
+ 8014576:	6018      	str	r0, [r3, #0]
+}
+ 8014578:	4770      	bx	lr
+ 801457a:	bf00      	nop
+ 801457c:	200008bc 	.word	0x200008bc
+
+08014580 <randr>:
+// Standard random functions redefinition end
+
+int32_t randr( int32_t min, int32_t max )
+{
+ 8014580:	b538      	push	{r3, r4, r5, lr}
+ 8014582:	4605      	mov	r5, r0
+ 8014584:	460c      	mov	r4, r1
+    return ( int32_t )rand1( ) % ( max - min + 1 ) + min;
+ 8014586:	f7ff ffdd 	bl	8014544 <rand1>
+ 801458a:	1b61      	subs	r1, r4, r5
+ 801458c:	3101      	adds	r1, #1
+ 801458e:	fb90 f3f1 	sdiv	r3, r0, r1
+ 8014592:	fb01 0013 	mls	r0, r1, r3, r0
+}
+ 8014596:	4428      	add	r0, r5
+ 8014598:	bd38      	pop	{r3, r4, r5, pc}
+
+0801459a <memcpy1>:
+
+void memcpy1( uint8_t *dst, const uint8_t *src, uint16_t size )
+{
+    while( size-- )
+ 801459a:	e004      	b.n	80145a6 <memcpy1+0xc>
+    {
+        *dst++ = *src++;
+ 801459c:	f811 2b01 	ldrb.w	r2, [r1], #1
+ 80145a0:	f800 2b01 	strb.w	r2, [r0], #1
+    while( size-- )
+ 80145a4:	461a      	mov	r2, r3
+ 80145a6:	1e53      	subs	r3, r2, #1
+ 80145a8:	b29b      	uxth	r3, r3
+ 80145aa:	2a00      	cmp	r2, #0
+ 80145ac:	d1f6      	bne.n	801459c <memcpy1+0x2>
+    }
+}
+ 80145ae:	4770      	bx	lr
+
+080145b0 <memcpyr>:
+
+void memcpyr( uint8_t *dst, const uint8_t *src, uint16_t size )
+{
+    dst = dst + ( size - 1 );
+ 80145b0:	1e53      	subs	r3, r2, #1
+ 80145b2:	4418      	add	r0, r3
+    while( size-- )
+ 80145b4:	e004      	b.n	80145c0 <memcpyr+0x10>
+    {
+        *dst-- = *src++;
+ 80145b6:	f811 2b01 	ldrb.w	r2, [r1], #1
+ 80145ba:	f800 2901 	strb.w	r2, [r0], #-1
+    while( size-- )
+ 80145be:	461a      	mov	r2, r3
+ 80145c0:	1e53      	subs	r3, r2, #1
+ 80145c2:	b29b      	uxth	r3, r3
+ 80145c4:	2a00      	cmp	r2, #0
+ 80145c6:	d1f6      	bne.n	80145b6 <memcpyr+0x6>
+    }
+}
+ 80145c8:	4770      	bx	lr
+
+080145ca <memset1>:
+
+void memset1( uint8_t *dst, uint8_t value, uint16_t size )
+{
+    while( size-- )
+ 80145ca:	e002      	b.n	80145d2 <memset1+0x8>
+    {
+        *dst++ = value;
+ 80145cc:	f800 1b01 	strb.w	r1, [r0], #1
+    while( size-- )
+ 80145d0:	461a      	mov	r2, r3
+ 80145d2:	1e53      	subs	r3, r2, #1
+ 80145d4:	b29b      	uxth	r3, r3
+ 80145d6:	2a00      	cmp	r2, #0
+ 80145d8:	d1f8      	bne.n	80145cc <memset1+0x2>
+    }
+}
+ 80145da:	4770      	bx	lr
+
+080145dc <Crc32>:
+uint32_t Crc32( uint8_t *buffer, uint16_t length )
+{
+    // CRC initial value
+    uint32_t crc = 0xFFFFFFFF;
+
+    if( buffer == NULL )
+ 80145dc:	b1f0      	cbz	r0, 801461c <Crc32+0x40>
+{
+ 80145de:	b510      	push	{r4, lr}
+ 80145e0:	4604      	mov	r4, r0
+    {
+        return 0;
+    }
+
+    for( uint16_t i = 0; i < length; ++i )
+ 80145e2:	f04f 0e00 	mov.w	lr, #0
+    uint32_t crc = 0xFFFFFFFF;
+ 80145e6:	f04f 30ff 	mov.w	r0, #4294967295
+ 80145ea:	e00e      	b.n	801460a <Crc32+0x2e>
+    {
+        crc ^= ( uint32_t )buffer[i];
+        for( uint16_t i = 0; i < 8; i++ )
+        {
+            crc = ( crc >> 1 ) ^ ( reversedPolynom & ~( ( crc & 0x01 ) - 1 ) );
+ 80145ec:	f340 0c00 	sbfx	ip, r0, #0, #1
+ 80145f0:	4a0b      	ldr	r2, [pc, #44]	; (8014620 <Crc32+0x44>)
+ 80145f2:	ea0c 0202 	and.w	r2, ip, r2
+ 80145f6:	ea82 0050 	eor.w	r0, r2, r0, lsr #1
+        for( uint16_t i = 0; i < 8; i++ )
+ 80145fa:	3301      	adds	r3, #1
+ 80145fc:	b29b      	uxth	r3, r3
+ 80145fe:	2b07      	cmp	r3, #7
+ 8014600:	d9f4      	bls.n	80145ec <Crc32+0x10>
+    for( uint16_t i = 0; i < length; ++i )
+ 8014602:	f10e 0e01 	add.w	lr, lr, #1
+ 8014606:	fa1f fe8e 	uxth.w	lr, lr
+ 801460a:	458e      	cmp	lr, r1
+ 801460c:	d204      	bcs.n	8014618 <Crc32+0x3c>
+        crc ^= ( uint32_t )buffer[i];
+ 801460e:	f814 300e 	ldrb.w	r3, [r4, lr]
+ 8014612:	4058      	eors	r0, r3
+        for( uint16_t i = 0; i < 8; i++ )
+ 8014614:	2300      	movs	r3, #0
+ 8014616:	e7f2      	b.n	80145fe <Crc32+0x22>
+        }
+    }
+
+    return ~crc;
+ 8014618:	43c0      	mvns	r0, r0
+}
+ 801461a:	bd10      	pop	{r4, pc}
+        return 0;
+ 801461c:	2000      	movs	r0, #0
+}
+ 801461e:	4770      	bx	lr
+ 8014620:	edb88320 	.word	0xedb88320
+
+08014624 <RadioCheckRfFrequency>:
+}
+
+static bool RadioCheckRfFrequency( uint32_t frequency )
+{
+    return true;
+}
+ 8014624:	2001      	movs	r0, #1
+ 8014626:	4770      	bx	lr
+
+08014628 <RadioGetLoRaBandwidthInHz>:
+
+static uint32_t RadioGetLoRaBandwidthInHz( RadioLoRaBandwidths_t bw )
+{
+    uint32_t bandwidthInHz = 0;
+
+    switch( bw )
+ 8014628:	280a      	cmp	r0, #10
+ 801462a:	d807      	bhi.n	801463c <RadioGetLoRaBandwidthInHz+0x14>
+ 801462c:	e8df f000 	tbb	[pc, r0]
+ 8014630:	17110b20 	.word	0x17110b20
+ 8014634:	061e1c1a 	.word	0x061e1c1a
+ 8014638:	0e08      	.short	0x0e08
+ 801463a:	14          	.byte	0x14
+ 801463b:	00          	.byte	0x00
+ 801463c:	2000      	movs	r0, #0
+ 801463e:	4770      	bx	lr
+    {
+    case LORA_BW_007:
+        bandwidthInHz = 7812UL;
+        break;
+    case LORA_BW_010:
+        bandwidthInHz = 10417UL;
+ 8014640:	f642 00b1 	movw	r0, #10417	; 0x28b1
+        break;
+ 8014644:	4770      	bx	lr
+    case LORA_BW_015:
+        bandwidthInHz = 15625UL;
+ 8014646:	f643 5009 	movw	r0, #15625	; 0x3d09
+        break;
+ 801464a:	4770      	bx	lr
+    case LORA_BW_020:
+        bandwidthInHz = 20833UL;
+ 801464c:	f245 1061 	movw	r0, #20833	; 0x5161
+        break;
+ 8014650:	4770      	bx	lr
+    case LORA_BW_031:
+        bandwidthInHz = 31250UL;
+ 8014652:	f647 2012 	movw	r0, #31250	; 0x7a12
+        break;
+ 8014656:	4770      	bx	lr
+    case LORA_BW_041:
+        bandwidthInHz = 41667UL;
+ 8014658:	f24a 20c3 	movw	r0, #41667	; 0xa2c3
+        break;
+ 801465c:	4770      	bx	lr
+    case LORA_BW_062:
+        bandwidthInHz = 62500UL;
+ 801465e:	f24f 4024 	movw	r0, #62500	; 0xf424
+        break;
+ 8014662:	4770      	bx	lr
+    case LORA_BW_125:
+        bandwidthInHz = 125000UL;
+ 8014664:	4804      	ldr	r0, [pc, #16]	; (8014678 <RadioGetLoRaBandwidthInHz+0x50>)
+        break;
+ 8014666:	4770      	bx	lr
+    case LORA_BW_250:
+        bandwidthInHz = 250000UL;
+ 8014668:	4804      	ldr	r0, [pc, #16]	; (801467c <RadioGetLoRaBandwidthInHz+0x54>)
+        break;
+ 801466a:	4770      	bx	lr
+    case LORA_BW_500:
+        bandwidthInHz = 500000UL;
+ 801466c:	4804      	ldr	r0, [pc, #16]	; (8014680 <RadioGetLoRaBandwidthInHz+0x58>)
+        break;
+ 801466e:	4770      	bx	lr
+        bandwidthInHz = 7812UL;
+ 8014670:	f641 6084 	movw	r0, #7812	; 0x1e84
+    }
+
+    return bandwidthInHz;
+}
+ 8014674:	4770      	bx	lr
+ 8014676:	bf00      	nop
+ 8014678:	0001e848 	.word	0x0001e848
+ 801467c:	0003d090 	.word	0x0003d090
+ 8014680:	0007a120 	.word	0x0007a120
+
+08014684 <RadioGetGfskTimeOnAirNumerator>:
+
+static uint32_t RadioGetGfskTimeOnAirNumerator( uint32_t datarate, uint8_t coderate,
+                                                uint16_t preambleLen, bool fixLen, uint8_t payloadLen,
+                                                bool crcOn )
+{
+ 8014684:	f89d 1004 	ldrb.w	r1, [sp, #4]
+    return ( preambleLen << 3 ) +
+ 8014688:	00d2      	lsls	r2, r2, #3
+           ( ( fixLen == false ) ? 8 : 0 ) + 24 +
+ 801468a:	b953      	cbnz	r3, 80146a2 <RadioGetGfskTimeOnAirNumerator+0x1e>
+ 801468c:	2308      	movs	r3, #8
+    return ( preambleLen << 3 ) +
+ 801468e:	441a      	add	r2, r3
+           ( ( fixLen == false ) ? 8 : 0 ) + 24 +
+ 8014690:	3218      	adds	r2, #24
+           ( ( payloadLen + ( ( crcOn == true ) ? 2 : 0 ) ) << 3 );
+ 8014692:	b141      	cbz	r1, 80146a6 <RadioGetGfskTimeOnAirNumerator+0x22>
+ 8014694:	2302      	movs	r3, #2
+ 8014696:	f89d 0000 	ldrb.w	r0, [sp]
+ 801469a:	4418      	add	r0, r3
+}
+ 801469c:	eb02 00c0 	add.w	r0, r2, r0, lsl #3
+ 80146a0:	4770      	bx	lr
+           ( ( fixLen == false ) ? 8 : 0 ) + 24 +
+ 80146a2:	2300      	movs	r3, #0
+ 80146a4:	e7f3      	b.n	801468e <RadioGetGfskTimeOnAirNumerator+0xa>
+           ( ( payloadLen + ( ( crcOn == true ) ? 2 : 0 ) ) << 3 );
+ 80146a6:	2300      	movs	r3, #0
+ 80146a8:	e7f5      	b.n	8014696 <RadioGetGfskTimeOnAirNumerator+0x12>
+
+080146aa <RadioGetLoRaTimeOnAirNumerator>:
+
+static uint32_t RadioGetLoRaTimeOnAirNumerator( uint32_t bandwidth,
+                                                uint32_t datarate, uint8_t coderate,
+                                                uint16_t preambleLen, bool fixLen, uint8_t payloadLen,
+                                                bool crcOn )
+{
+ 80146aa:	b570      	push	{r4, r5, r6, lr}
+ 80146ac:	f89d 4010 	ldrb.w	r4, [sp, #16]
+ 80146b0:	f89d 5018 	ldrb.w	r5, [sp, #24]
+    int32_t crDenom           = coderate + 4;
+ 80146b4:	3204      	adds	r2, #4
+    bool    lowDatareOptimize = false;
+
+    // Ensure that the preamble length is at least 12 symbols when using SF5 or SF6
+    if( ( datarate == 5 ) || ( datarate == 6 ) )
+ 80146b6:	f1a1 0c05 	sub.w	ip, r1, #5
+ 80146ba:	f1bc 0f01 	cmp.w	ip, #1
+ 80146be:	d931      	bls.n	8014724 <RadioGetLoRaTimeOnAirNumerator+0x7a>
+        {
+            preambleLen = 12;
+        }
+    }
+
+    if( ( ( bandwidth == 0 ) && ( ( datarate == 11 ) || ( datarate == 12 ) ) ) ||
+ 80146c0:	b918      	cbnz	r0, 80146ca <RadioGetLoRaTimeOnAirNumerator+0x20>
+ 80146c2:	f1a1 060b 	sub.w	r6, r1, #11
+ 80146c6:	2e01      	cmp	r6, #1
+ 80146c8:	d934      	bls.n	8014734 <RadioGetLoRaTimeOnAirNumerator+0x8a>
+ 80146ca:	2801      	cmp	r0, #1
+ 80146cc:	d02e      	beq.n	801472c <RadioGetLoRaTimeOnAirNumerator+0x82>
+    bool    lowDatareOptimize = false;
+ 80146ce:	2600      	movs	r6, #0
+    {
+        lowDatareOptimize = true;
+    }
+
+    int32_t ceilDenominator;
+    int32_t ceilNumerator = ( payloadLen << 3 ) +
+ 80146d0:	f89d c014 	ldrb.w	ip, [sp, #20]
+ 80146d4:	ea4f 0ccc 	mov.w	ip, ip, lsl #3
+                            ( crcOn ? 16 : 0 ) -
+ 80146d8:	b385      	cbz	r5, 801473c <RadioGetLoRaTimeOnAirNumerator+0x92>
+ 80146da:	2010      	movs	r0, #16
+    int32_t ceilNumerator = ( payloadLen << 3 ) +
+ 80146dc:	4484      	add	ip, r0
+                            ( 4 * datarate ) +
+ 80146de:	0088      	lsls	r0, r1, #2
+                            ( crcOn ? 16 : 0 ) -
+ 80146e0:	ebac 0c81 	sub.w	ip, ip, r1, lsl #2
+                            ( fixLen ? 0 : 20 );
+ 80146e4:	b364      	cbz	r4, 8014740 <RadioGetLoRaTimeOnAirNumerator+0x96>
+ 80146e6:	f04f 0e00 	mov.w	lr, #0
+                            ( 4 * datarate ) +
+ 80146ea:	44f4      	add	ip, lr
+
+    if( datarate <= 6 )
+ 80146ec:	2906      	cmp	r1, #6
+ 80146ee:	d904      	bls.n	80146fa <RadioGetLoRaTimeOnAirNumerator+0x50>
+    {
+        ceilDenominator = 4 * datarate;
+    }
+    else
+    {
+        ceilNumerator += 8;
+ 80146f0:	f10c 0c08 	add.w	ip, ip, #8
+
+        if( lowDatareOptimize == true )
+ 80146f4:	b10e      	cbz	r6, 80146fa <RadioGetLoRaTimeOnAirNumerator+0x50>
+        {
+            ceilDenominator = 4 * ( datarate - 2 );
+ 80146f6:	1e88      	subs	r0, r1, #2
+ 80146f8:	0080      	lsls	r0, r0, #2
+        {
+            ceilDenominator = 4 * datarate;
+        }
+    }
+
+    if( ceilNumerator < 0 )
+ 80146fa:	f1bc 0f00 	cmp.w	ip, #0
+ 80146fe:	db22      	blt.n	8014746 <RadioGetLoRaTimeOnAirNumerator+0x9c>
+        ceilNumerator = 0;
+    }
+
+    // Perform integral ceil()
+    int32_t intermediate =
+        ( ( ceilNumerator + ceilDenominator - 1 ) / ceilDenominator ) * crDenom + preambleLen + 12;
+ 8014700:	4484      	add	ip, r0
+ 8014702:	f10c 3cff 	add.w	ip, ip, #4294967295
+ 8014706:	fb9c fcf0 	sdiv	ip, ip, r0
+ 801470a:	fb02 330c 	mla	r3, r2, ip, r3
+    int32_t intermediate =
+ 801470e:	f103 000c 	add.w	r0, r3, #12
+
+    if( datarate <= 6 )
+ 8014712:	2906      	cmp	r1, #6
+ 8014714:	d801      	bhi.n	801471a <RadioGetLoRaTimeOnAirNumerator+0x70>
+    {
+        intermediate += 2;
+ 8014716:	f103 000e 	add.w	r0, r3, #14
+    }
+
+    return ( uint32_t )( ( 4 * intermediate + 1 ) * ( 1 << ( datarate - 2 ) ) );
+ 801471a:	0080      	lsls	r0, r0, #2
+ 801471c:	3001      	adds	r0, #1
+ 801471e:	3902      	subs	r1, #2
+}
+ 8014720:	4088      	lsls	r0, r1
+ 8014722:	bd70      	pop	{r4, r5, r6, pc}
+        if( preambleLen < 12 )
+ 8014724:	2b0b      	cmp	r3, #11
+ 8014726:	d8cb      	bhi.n	80146c0 <RadioGetLoRaTimeOnAirNumerator+0x16>
+            preambleLen = 12;
+ 8014728:	230c      	movs	r3, #12
+ 801472a:	e7c9      	b.n	80146c0 <RadioGetLoRaTimeOnAirNumerator+0x16>
+        ( ( bandwidth == 1 ) && ( datarate == 12 ) ) )
+ 801472c:	290c      	cmp	r1, #12
+ 801472e:	d003      	beq.n	8014738 <RadioGetLoRaTimeOnAirNumerator+0x8e>
+    bool    lowDatareOptimize = false;
+ 8014730:	2600      	movs	r6, #0
+ 8014732:	e7cd      	b.n	80146d0 <RadioGetLoRaTimeOnAirNumerator+0x26>
+        lowDatareOptimize = true;
+ 8014734:	2601      	movs	r6, #1
+ 8014736:	e7cb      	b.n	80146d0 <RadioGetLoRaTimeOnAirNumerator+0x26>
+ 8014738:	2601      	movs	r6, #1
+ 801473a:	e7c9      	b.n	80146d0 <RadioGetLoRaTimeOnAirNumerator+0x26>
+                            ( crcOn ? 16 : 0 ) -
+ 801473c:	2000      	movs	r0, #0
+ 801473e:	e7cd      	b.n	80146dc <RadioGetLoRaTimeOnAirNumerator+0x32>
+                            ( fixLen ? 0 : 20 );
+ 8014740:	f04f 0e14 	mov.w	lr, #20
+ 8014744:	e7d1      	b.n	80146ea <RadioGetLoRaTimeOnAirNumerator+0x40>
+        ceilNumerator = 0;
+ 8014746:	f04f 0c00 	mov.w	ip, #0
+ 801474a:	e7d9      	b.n	8014700 <RadioGetLoRaTimeOnAirNumerator+0x56>
+
+0801474c <RadioTimeOnAir>:
+
+static uint32_t RadioTimeOnAir( RadioModems_t modem, uint32_t bandwidth,
+                                uint32_t datarate, uint8_t coderate,
+                                uint16_t preambleLen, bool fixLen, uint8_t payloadLen,
+                                bool crcOn )
+{
+ 801474c:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 801474e:	b085      	sub	sp, #20
+ 8014750:	460e      	mov	r6, r1
+ 8014752:	4615      	mov	r5, r2
+ 8014754:	4619      	mov	r1, r3
+ 8014756:	f8bd 2028 	ldrh.w	r2, [sp, #40]	; 0x28
+ 801475a:	f89d 302c 	ldrb.w	r3, [sp, #44]	; 0x2c
+ 801475e:	f89d 7030 	ldrb.w	r7, [sp, #48]	; 0x30
+ 8014762:	f89d c034 	ldrb.w	ip, [sp, #52]	; 0x34
+    uint32_t numerator = 0;
+    uint32_t denominator = 1;
+
+    switch( modem )
+ 8014766:	b148      	cbz	r0, 801477c <RadioTimeOnAir+0x30>
+ 8014768:	2801      	cmp	r0, #1
+ 801476a:	d012      	beq.n	8014792 <RadioTimeOnAir+0x46>
+ 801476c:	2501      	movs	r5, #1
+ 801476e:	2400      	movs	r4, #0
+        break;
+    default:
+        break;
+    }
+    // Perform integral ceil()
+    return DIVC( numerator, denominator );
+ 8014770:	442c      	add	r4, r5
+ 8014772:	1e60      	subs	r0, r4, #1
+}
+ 8014774:	fbb0 f0f5 	udiv	r0, r0, r5
+ 8014778:	b005      	add	sp, #20
+ 801477a:	bdf0      	pop	{r4, r5, r6, r7, pc}
+            numerator   = 1000U * RadioGetGfskTimeOnAirNumerator( datarate, coderate,
+ 801477c:	f8cd c004 	str.w	ip, [sp, #4]
+ 8014780:	9700      	str	r7, [sp, #0]
+ 8014782:	4628      	mov	r0, r5
+ 8014784:	f7ff ff7e 	bl	8014684 <RadioGetGfskTimeOnAirNumerator>
+ 8014788:	f44f 737a 	mov.w	r3, #1000	; 0x3e8
+ 801478c:	fb03 f400 	mul.w	r4, r3, r0
+        break;
+ 8014790:	e7ee      	b.n	8014770 <RadioTimeOnAir+0x24>
+            numerator   = 1000U * RadioGetLoRaTimeOnAirNumerator( bandwidth, datarate,
+ 8014792:	f8cd c008 	str.w	ip, [sp, #8]
+ 8014796:	9701      	str	r7, [sp, #4]
+ 8014798:	9300      	str	r3, [sp, #0]
+ 801479a:	4613      	mov	r3, r2
+ 801479c:	460a      	mov	r2, r1
+ 801479e:	4629      	mov	r1, r5
+ 80147a0:	4630      	mov	r0, r6
+ 80147a2:	f7ff ff82 	bl	80146aa <RadioGetLoRaTimeOnAirNumerator>
+ 80147a6:	f44f 737a 	mov.w	r3, #1000	; 0x3e8
+ 80147aa:	fb03 f400 	mul.w	r4, r3, r0
+            denominator = RadioGetLoRaBandwidthInHz( Bandwidths[bandwidth] );
+ 80147ae:	4b03      	ldr	r3, [pc, #12]	; (80147bc <RadioTimeOnAir+0x70>)
+ 80147b0:	5d98      	ldrb	r0, [r3, r6]
+ 80147b2:	f7ff ff39 	bl	8014628 <RadioGetLoRaBandwidthInHz>
+ 80147b6:	4605      	mov	r5, r0
+        break;
+ 80147b8:	e7da      	b.n	8014770 <RadioTimeOnAir+0x24>
+ 80147ba:	bf00      	nop
+ 80147bc:	08018cb0 	.word	0x08018cb0
+
+080147c0 <RadioOnTxTimeoutProcess>:
+{
+    RADIO_RX_TIMEOUT_PROCESS();
+}
+
+static void RadioOnTxTimeoutProcess( void )
+{
+ 80147c0:	b508      	push	{r3, lr}
+  *         @arg @ref LL_GPIO_PIN_ALL
+  * @retval None
+  */
+__STATIC_INLINE void LL_GPIO_ResetOutputPin(GPIO_TypeDef *GPIOx, uint32_t PinMask)
+{
+  WRITE_REG(GPIOx->BRR, PinMask);
+ 80147c2:	4b05      	ldr	r3, [pc, #20]	; (80147d8 <RadioOnTxTimeoutProcess+0x18>)
+ 80147c4:	f44f 5200 	mov.w	r2, #8192	; 0x2000
+ 80147c8:	629a      	str	r2, [r3, #40]	; 0x28
+    DBG_GPIO_RADIO_TX( RST );
+
+    if( ( RadioEvents != NULL ) && ( RadioEvents->TxTimeout != NULL ) )
+ 80147ca:	4b04      	ldr	r3, [pc, #16]	; (80147dc <RadioOnTxTimeoutProcess+0x1c>)
+ 80147cc:	681b      	ldr	r3, [r3, #0]
+ 80147ce:	b113      	cbz	r3, 80147d6 <RadioOnTxTimeoutProcess+0x16>
+ 80147d0:	685b      	ldr	r3, [r3, #4]
+ 80147d2:	b103      	cbz	r3, 80147d6 <RadioOnTxTimeoutProcess+0x16>
+    {
+        RadioEvents->TxTimeout( );
+ 80147d4:	4798      	blx	r3
+    }
+}
+ 80147d6:	bd08      	pop	{r3, pc}
+ 80147d8:	48000400 	.word	0x48000400
+ 80147dc:	20002734 	.word	0x20002734
+
+080147e0 <RadioOnTxTimeoutIrq>:
+{
+ 80147e0:	b508      	push	{r3, lr}
+    RADIO_TX_TIMEOUT_PROCESS();
+ 80147e2:	f7ff ffed 	bl	80147c0 <RadioOnTxTimeoutProcess>
+}
+ 80147e6:	bd08      	pop	{r3, pc}
+
+080147e8 <RadioOnRxTimeoutProcess>:
+
+static void RadioOnRxTimeoutProcess( void )
+{
+ 80147e8:	b508      	push	{r3, lr}
+ 80147ea:	4b05      	ldr	r3, [pc, #20]	; (8014800 <RadioOnRxTimeoutProcess+0x18>)
+ 80147ec:	f44f 5280 	mov.w	r2, #4096	; 0x1000
+ 80147f0:	629a      	str	r2, [r3, #40]	; 0x28
+    DBG_GPIO_RADIO_RX( RST );
+
+    if( ( RadioEvents != NULL ) && ( RadioEvents->RxTimeout != NULL ) )
+ 80147f2:	4b04      	ldr	r3, [pc, #16]	; (8014804 <RadioOnRxTimeoutProcess+0x1c>)
+ 80147f4:	681b      	ldr	r3, [r3, #0]
+ 80147f6:	b113      	cbz	r3, 80147fe <RadioOnRxTimeoutProcess+0x16>
+ 80147f8:	68db      	ldr	r3, [r3, #12]
+ 80147fa:	b103      	cbz	r3, 80147fe <RadioOnRxTimeoutProcess+0x16>
+    {
+        RadioEvents->RxTimeout( );
+ 80147fc:	4798      	blx	r3
+    }
+}
+ 80147fe:	bd08      	pop	{r3, pc}
+ 8014800:	48000400 	.word	0x48000400
+ 8014804:	20002734 	.word	0x20002734
+
+08014808 <RadioOnRxTimeoutIrq>:
+{
+ 8014808:	b508      	push	{r3, lr}
+    RADIO_RX_TIMEOUT_PROCESS();
+ 801480a:	f7ff ffed 	bl	80147e8 <RadioOnRxTimeoutProcess>
+}
+ 801480e:	bd08      	pop	{r3, pc}
+
+08014810 <payload_integration>:
+    SUBGRF_SetTxContinuousWave( );
+}
+
+#if (RADIO_SIGFOX_ENABLE == 1)
+static void payload_integration( uint8_t *outBuffer, uint8_t *inBuffer, uint8_t size )
+{
+ 8014810:	b570      	push	{r4, r5, r6, lr}
+    uint8_t index_byte;
+    uint8_t index_bit_out;
+    uint8_t index_byte_out;
+    int32_t i = 0;
+
+    for( i = 0; i < size; i++ )
+ 8014812:	2300      	movs	r3, #0
+ 8014814:	e005      	b.n	8014822 <payload_integration+0x12>
+    {
+        /* reverse all inputs */
+        inBuffer[i] = ~inBuffer[i];
+ 8014816:	5ccc      	ldrb	r4, [r1, r3]
+ 8014818:	43e4      	mvns	r4, r4
+ 801481a:	54cc      	strb	r4, [r1, r3]
+        /* init outBuffer */
+        outBuffer[i] = 0;
+ 801481c:	2400      	movs	r4, #0
+ 801481e:	54c4      	strb	r4, [r0, r3]
+    for( i = 0; i < size; i++ )
+ 8014820:	3301      	adds	r3, #1
+ 8014822:	429a      	cmp	r2, r3
+ 8014824:	dcf7      	bgt.n	8014816 <payload_integration+0x6>
+    }
+
+    for( i = 0; i < ( size * 8 ); i++ )
+ 8014826:	2300      	movs	r3, #0
+    uint8_t prevInt = 0;
+ 8014828:	461c      	mov	r4, r3
+ 801482a:	e011      	b.n	8014850 <payload_integration+0x40>
+    {
+        /* index to take bit in inBuffer */
+        index_bit = 7 - ( i % 8 );
+        index_byte = i / 8;
+ 801482c:	f103 0c07 	add.w	ip, r3, #7
+ 8014830:	e022      	b.n	8014878 <payload_integration+0x68>
+        /* index to place bit in outBuffer is shifted 1 bit right */
+        index_bit_out = 7 - ( ( i + 1 ) % 8 );
+        index_byte_out = ( i + 1 ) / 8;
+        /* extract current bit from input */
+        currBit = ( inBuffer[index_byte] >> index_bit ) & 0x01;
+ 8014832:	b2ed      	uxtb	r5, r5
+ 8014834:	5d4d      	ldrb	r5, [r1, r5]
+ 8014836:	fa45 f50e 	asr.w	r5, r5, lr
+ 801483a:	f005 0501 	and.w	r5, r5, #1
+        /* integration */
+        prevInt ^= currBit;
+ 801483e:	406c      	eors	r4, r5
+        /* write result integration in output */
+        outBuffer[index_byte_out] |= ( prevInt << index_bit_out );
+ 8014840:	f3c6 05c7 	ubfx	r5, r6, #3, #8
+ 8014844:	fa04 fc0c 	lsl.w	ip, r4, ip
+ 8014848:	5d46      	ldrb	r6, [r0, r5]
+ 801484a:	ea46 060c 	orr.w	r6, r6, ip
+ 801484e:	5546      	strb	r6, [r0, r5]
+    for( i = 0; i < ( size * 8 ); i++ )
+ 8014850:	ebb3 0fc2 	cmp.w	r3, r2, lsl #3
+ 8014854:	da26      	bge.n	80148a4 <payload_integration+0x94>
+        index_bit = 7 - ( i % 8 );
+ 8014856:	425d      	negs	r5, r3
+ 8014858:	f003 0c07 	and.w	ip, r3, #7
+ 801485c:	f005 0507 	and.w	r5, r5, #7
+ 8014860:	bf58      	it	pl
+ 8014862:	f1c5 0c00 	rsbpl	ip, r5, #0
+ 8014866:	fa5f fe8c 	uxtb.w	lr, ip
+ 801486a:	f1ce 0e07 	rsb	lr, lr, #7
+ 801486e:	fa5f fe8e 	uxtb.w	lr, lr
+        index_byte = i / 8;
+ 8014872:	469c      	mov	ip, r3
+ 8014874:	2b00      	cmp	r3, #0
+ 8014876:	dbd9      	blt.n	801482c <payload_integration+0x1c>
+ 8014878:	ea4f 05ec 	mov.w	r5, ip, asr #3
+        index_bit_out = 7 - ( ( i + 1 ) % 8 );
+ 801487c:	3301      	adds	r3, #1
+ 801487e:	425e      	negs	r6, r3
+ 8014880:	f003 0c07 	and.w	ip, r3, #7
+ 8014884:	f006 0607 	and.w	r6, r6, #7
+ 8014888:	bf58      	it	pl
+ 801488a:	f1c6 0c00 	rsbpl	ip, r6, #0
+ 801488e:	fa5f fc8c 	uxtb.w	ip, ip
+ 8014892:	f1cc 0c07 	rsb	ip, ip, #7
+ 8014896:	fa5f fc8c 	uxtb.w	ip, ip
+        index_byte_out = ( i + 1 ) / 8;
+ 801489a:	461e      	mov	r6, r3
+ 801489c:	2b00      	cmp	r3, #0
+ 801489e:	dac8      	bge.n	8014832 <payload_integration+0x22>
+ 80148a0:	1dde      	adds	r6, r3, #7
+ 80148a2:	e7c6      	b.n	8014832 <payload_integration+0x22>
+    }
+
+    outBuffer[size] = ( prevInt << 7 ) | ( prevInt << 6 ) | ( ( ( !prevInt ) & 0x01 ) << 5 ) ;
+ 80148a4:	01a3      	lsls	r3, r4, #6
+ 80148a6:	ea43 13c4 	orr.w	r3, r3, r4, lsl #7
+ 80148aa:	b25b      	sxtb	r3, r3
+ 80148ac:	b91c      	cbnz	r4, 80148b6 <payload_integration+0xa6>
+ 80148ae:	2120      	movs	r1, #32
+ 80148b0:	430b      	orrs	r3, r1
+ 80148b2:	5483      	strb	r3, [r0, r2]
+}
+ 80148b4:	bd70      	pop	{r4, r5, r6, pc}
+    outBuffer[size] = ( prevInt << 7 ) | ( prevInt << 6 ) | ( ( ( !prevInt ) & 0x01 ) << 5 ) ;
+ 80148b6:	2100      	movs	r1, #0
+ 80148b8:	e7fa      	b.n	80148b0 <payload_integration+0xa0>
+
+080148ba <RadioLrFhssSetCfg>:
+        return status;
+    }
+    SubgRf.lr_fhss.is_lr_fhss_on = true;
+#endif /* RADIO_LR_FHSS_IS_ON == 1 */
+    return  status;
+}
+ 80148ba:	2001      	movs	r0, #1
+ 80148bc:	4770      	bx	lr
+
+080148be <RadioLrFhssGetTimeOnAirInMs>:
+
+    return RADIO_STATUS_OK;
+#else
+    return RADIO_STATUS_UNSUPPORTED_FEATURE;
+#endif /* RADIO_LR_FHSS_IS_ON */
+ 80148be:	2001      	movs	r0, #1
+ 80148c0:	4770      	bx	lr
+	...
+
+080148c4 <RadioSetMaxPayloadLength>:
+{
+ 80148c4:	b508      	push	{r3, lr}
+    if( modem == MODEM_LORA )
+ 80148c6:	2801      	cmp	r0, #1
+ 80148c8:	d004      	beq.n	80148d4 <RadioSetMaxPayloadLength+0x10>
+        if( SubgRf.PacketParams.Params.Gfsk.HeaderType == RADIO_PACKET_VARIABLE_LENGTH )
+ 80148ca:	4b0a      	ldr	r3, [pc, #40]	; (80148f4 <RadioSetMaxPayloadLength+0x30>)
+ 80148cc:	7d5b      	ldrb	r3, [r3, #21]
+ 80148ce:	2b01      	cmp	r3, #1
+ 80148d0:	d008      	beq.n	80148e4 <RadioSetMaxPayloadLength+0x20>
+}
+ 80148d2:	bd08      	pop	{r3, pc}
+        SubgRf.PacketParams.Params.LoRa.PayloadLength = MaxPayloadLength = max;
+ 80148d4:	4b08      	ldr	r3, [pc, #32]	; (80148f8 <RadioSetMaxPayloadLength+0x34>)
+ 80148d6:	7019      	strb	r1, [r3, #0]
+ 80148d8:	4806      	ldr	r0, [pc, #24]	; (80148f4 <RadioSetMaxPayloadLength+0x30>)
+ 80148da:	77c1      	strb	r1, [r0, #31]
+        SUBGRF_SetPacketParams( &SubgRf.PacketParams );
+ 80148dc:	300e      	adds	r0, #14
+ 80148de:	f001 fe3d 	bl	801655c <SUBGRF_SetPacketParams>
+ 80148e2:	e7f6      	b.n	80148d2 <RadioSetMaxPayloadLength+0xe>
+            SubgRf.PacketParams.Params.Gfsk.PayloadLength = MaxPayloadLength = max;
+ 80148e4:	4b04      	ldr	r3, [pc, #16]	; (80148f8 <RadioSetMaxPayloadLength+0x34>)
+ 80148e6:	7019      	strb	r1, [r3, #0]
+ 80148e8:	4802      	ldr	r0, [pc, #8]	; (80148f4 <RadioSetMaxPayloadLength+0x30>)
+ 80148ea:	7581      	strb	r1, [r0, #22]
+            SUBGRF_SetPacketParams( &SubgRf.PacketParams );
+ 80148ec:	300e      	adds	r0, #14
+ 80148ee:	f001 fe35 	bl	801655c <SUBGRF_SetPacketParams>
+}
+ 80148f2:	e7ee      	b.n	80148d2 <RadioSetMaxPayloadLength+0xe>
+ 80148f4:	20002750 	.word	0x20002750
+ 80148f8:	200008c0 	.word	0x200008c0
+
+080148fc <RadioRead>:
+{
+ 80148fc:	b508      	push	{r3, lr}
+    return SUBGRF_ReadRegister( addr );
+ 80148fe:	f001 f9c9 	bl	8015c94 <SUBGRF_ReadRegister>
+}
+ 8014902:	bd08      	pop	{r3, pc}
+
+08014904 <RadioWrite>:
+{
+ 8014904:	b508      	push	{r3, lr}
+    SUBGRF_WriteRegister( addr, data );
+ 8014906:	f001 f9b5 	bl	8015c74 <SUBGRF_WriteRegister>
+}
+ 801490a:	bd08      	pop	{r3, pc}
+
+0801490c <RadioTxCw>:
+{
+ 801490c:	b510      	push	{r4, lr}
+    uint8_t paselect = SUBGRF_SetRfTxPower( power );
+ 801490e:	f001 ff4f 	bl	80167b0 <SUBGRF_SetRfTxPower>
+ 8014912:	4604      	mov	r4, r0
+    SUBGRF_WriteRegister(REG_DRV_CTRL, 0x7 << 1);
+ 8014914:	210e      	movs	r1, #14
+ 8014916:	f640 101f 	movw	r0, #2335	; 0x91f
+ 801491a:	f001 f9ab 	bl	8015c74 <SUBGRF_WriteRegister>
+    SUBGRF_SetSwitch( paselect, RFSWITCH_TX );
+ 801491e:	2101      	movs	r1, #1
+ 8014920:	4620      	mov	r0, r4
+ 8014922:	f001 ff31 	bl	8016788 <SUBGRF_SetSwitch>
+    SUBGRF_SetTxContinuousWave( );
+ 8014926:	f001 fb75 	bl	8016014 <SUBGRF_SetTxContinuousWave>
+}
+ 801492a:	bd10      	pop	{r4, pc}
+
+0801492c <RadioTxPrbs>:
+{
+ 801492c:	b508      	push	{r3, lr}
+    SUBGRF_SetSwitch( SubgRf.AntSwitchPaSelect, RFSWITCH_TX );
+ 801492e:	2101      	movs	r1, #1
+ 8014930:	4b07      	ldr	r3, [pc, #28]	; (8014950 <RadioTxPrbs+0x24>)
+ 8014932:	f893 0056 	ldrb.w	r0, [r3, #86]	; 0x56
+ 8014936:	f001 ff27 	bl	8016788 <SUBGRF_SetSwitch>
+    Radio.Write( SUBGHZ_GPKTCTL1AR, 0x2d );  // sel mode prbs9 instead of preamble
+ 801493a:	212d      	movs	r1, #45	; 0x2d
+ 801493c:	f44f 60d7 	mov.w	r0, #1720	; 0x6b8
+ 8014940:	f7ff ffe0 	bl	8014904 <RadioWrite>
+    SUBGRF_SetTxInfinitePreamble( );
+ 8014944:	f001 fb6d 	bl	8016022 <SUBGRF_SetTxInfinitePreamble>
+    SUBGRF_SetTx( 0x0fffff );
+ 8014948:	4802      	ldr	r0, [pc, #8]	; (8014954 <RadioTxPrbs+0x28>)
+ 801494a:	f001 faa3 	bl	8015e94 <SUBGRF_SetTx>
+}
+ 801494e:	bd08      	pop	{r3, pc}
+ 8014950:	20002750 	.word	0x20002750
+ 8014954:	000fffff 	.word	0x000fffff
+
+08014958 <RadioSetRxDutyCycle>:
+{
+ 8014958:	b570      	push	{r4, r5, r6, lr}
+ 801495a:	4604      	mov	r4, r0
+ 801495c:	460d      	mov	r5, r1
+    SubgRf.RxDcPreambleDetectTimeout = 2 * rxTime + sleepTime;
+ 801495e:	eb01 0340 	add.w	r3, r1, r0, lsl #1
+ 8014962:	4e09      	ldr	r6, [pc, #36]	; (8014988 <RadioSetRxDutyCycle+0x30>)
+ 8014964:	65b3      	str	r3, [r6, #88]	; 0x58
+    SUBGRF_SetDioIrqParams( IRQ_RADIO_ALL, IRQ_RADIO_ALL, IRQ_RADIO_NONE, IRQ_RADIO_NONE );
+ 8014966:	2300      	movs	r3, #0
+ 8014968:	461a      	mov	r2, r3
+ 801496a:	f64f 71ff 	movw	r1, #65535	; 0xffff
+ 801496e:	4608      	mov	r0, r1
+ 8014970:	f001 fc23 	bl	80161ba <SUBGRF_SetDioIrqParams>
+    SUBGRF_SetSwitch( SubgRf.AntSwitchPaSelect, RFSWITCH_RX );
+ 8014974:	2100      	movs	r1, #0
+ 8014976:	f896 0056 	ldrb.w	r0, [r6, #86]	; 0x56
+ 801497a:	f001 ff05 	bl	8016788 <SUBGRF_SetSwitch>
+    SUBGRF_SetRxDutyCycle( rxTime, sleepTime );
+ 801497e:	4629      	mov	r1, r5
+ 8014980:	4620      	mov	r0, r4
+ 8014982:	f001 fb17 	bl	8015fb4 <SUBGRF_SetRxDutyCycle>
+}
+ 8014986:	bd70      	pop	{r4, r5, r6, pc}
+ 8014988:	20002750 	.word	0x20002750
+
+0801498c <RadioRxBoosted>:
+{
+ 801498c:	b538      	push	{r3, r4, r5, lr}
+ 801498e:	4604      	mov	r4, r0
+    if( 1UL == RFW_Is_Init() )
+ 8014990:	f001 ffec 	bl	801696c <RFW_Is_Init>
+ 8014994:	2801      	cmp	r0, #1
+ 8014996:	d019      	beq.n	80149cc <RadioRxBoosted+0x40>
+        SUBGRF_SetDioIrqParams( IRQ_RX_DONE | IRQ_RX_TX_TIMEOUT | IRQ_CRC_ERROR | IRQ_HEADER_ERROR | IRQ_RX_DBG,
+ 8014998:	2300      	movs	r3, #0
+ 801499a:	461a      	mov	r2, r3
+ 801499c:	f240 2162 	movw	r1, #610	; 0x262
+ 80149a0:	4608      	mov	r0, r1
+ 80149a2:	f001 fc0a 	bl	80161ba <SUBGRF_SetDioIrqParams>
+    if( timeout != 0 )
+ 80149a6:	b9a4      	cbnz	r4, 80149d2 <RadioRxBoosted+0x46>
+    SubgRf.RxDcPreambleDetectTimeout = 0;
+ 80149a8:	4c11      	ldr	r4, [pc, #68]	; (80149f0 <RadioRxBoosted+0x64>)
+ 80149aa:	2100      	movs	r1, #0
+ 80149ac:	65a1      	str	r1, [r4, #88]	; 0x58
+  WRITE_REG(GPIOx->BSRR, PinMask);
+ 80149ae:	4b11      	ldr	r3, [pc, #68]	; (80149f4 <RadioRxBoosted+0x68>)
+ 80149b0:	f44f 5280 	mov.w	r2, #4096	; 0x1000
+ 80149b4:	619a      	str	r2, [r3, #24]
+    SUBGRF_SetSwitch( SubgRf.AntSwitchPaSelect, RFSWITCH_RX );
+ 80149b6:	f894 0056 	ldrb.w	r0, [r4, #86]	; 0x56
+ 80149ba:	f001 fee5 	bl	8016788 <SUBGRF_SetSwitch>
+    if( SubgRf.RxContinuous == true )
+ 80149be:	7863      	ldrb	r3, [r4, #1]
+ 80149c0:	b183      	cbz	r3, 80149e4 <RadioRxBoosted+0x58>
+        SUBGRF_SetRxBoosted( 0xFFFFFF ); // Rx Continuous
+ 80149c2:	f06f 407f 	mvn.w	r0, #4278190080	; 0xff000000
+ 80149c6:	f001 fad7 	bl	8015f78 <SUBGRF_SetRxBoosted>
+}
+ 80149ca:	bd38      	pop	{r3, r4, r5, pc}
+        RFW_ReceiveInit();
+ 80149cc:	f001 ffd6 	bl	801697c <RFW_ReceiveInit>
+ 80149d0:	e7e9      	b.n	80149a6 <RadioRxBoosted+0x1a>
+        TimerSetValue( &RxTimeoutTimer, timeout );
+ 80149d2:	4d09      	ldr	r5, [pc, #36]	; (80149f8 <RadioRxBoosted+0x6c>)
+ 80149d4:	4621      	mov	r1, r4
+ 80149d6:	4628      	mov	r0, r5
+ 80149d8:	f002 fca0 	bl	801731c <UTIL_TIMER_SetPeriod>
+        TimerStart( &RxTimeoutTimer );
+ 80149dc:	4628      	mov	r0, r5
+ 80149de:	f002 fc57 	bl	8017290 <UTIL_TIMER_Start>
+ 80149e2:	e7e1      	b.n	80149a8 <RadioRxBoosted+0x1c>
+        SUBGRF_SetRxBoosted( SubgRf.RxTimeout << 6 );
+ 80149e4:	4b02      	ldr	r3, [pc, #8]	; (80149f0 <RadioRxBoosted+0x64>)
+ 80149e6:	6898      	ldr	r0, [r3, #8]
+ 80149e8:	0180      	lsls	r0, r0, #6
+ 80149ea:	f001 fac5 	bl	8015f78 <SUBGRF_SetRxBoosted>
+}
+ 80149ee:	e7ec      	b.n	80149ca <RadioRxBoosted+0x3e>
+ 80149f0:	20002750 	.word	0x20002750
+ 80149f4:	48000400 	.word	0x48000400
+ 80149f8:	20002738 	.word	0x20002738
+
+080149fc <RadioStandby>:
+{
+ 80149fc:	b508      	push	{r3, lr}
+    SUBGRF_SetStandby( STDBY_RC );
+ 80149fe:	2000      	movs	r0, #0
+ 8014a00:	f001 fa2e 	bl	8015e60 <SUBGRF_SetStandby>
+}
+ 8014a04:	bd08      	pop	{r3, pc}
+
+08014a06 <RadioGetStatus>:
+{
+ 8014a06:	b508      	push	{r3, lr}
+    switch( SUBGRF_GetOperatingMode( ) )
+ 8014a08:	f001 f928 	bl	8015c5c <SUBGRF_GetOperatingMode>
+ 8014a0c:	2805      	cmp	r0, #5
+ 8014a0e:	d007      	beq.n	8014a20 <RadioGetStatus+0x1a>
+ 8014a10:	2807      	cmp	r0, #7
+ 8014a12:	d007      	beq.n	8014a24 <RadioGetStatus+0x1e>
+ 8014a14:	2804      	cmp	r0, #4
+ 8014a16:	d001      	beq.n	8014a1c <RadioGetStatus+0x16>
+            return RF_IDLE;
+ 8014a18:	2000      	movs	r0, #0
+}
+ 8014a1a:	bd08      	pop	{r3, pc}
+    switch( SUBGRF_GetOperatingMode( ) )
+ 8014a1c:	2002      	movs	r0, #2
+ 8014a1e:	e7fc      	b.n	8014a1a <RadioGetStatus+0x14>
+            return RF_RX_RUNNING;
+ 8014a20:	2001      	movs	r0, #1
+ 8014a22:	e7fa      	b.n	8014a1a <RadioGetStatus+0x14>
+            return RF_CAD;
+ 8014a24:	2003      	movs	r0, #3
+ 8014a26:	e7f8      	b.n	8014a1a <RadioGetStatus+0x14>
+
+08014a28 <RadioIrqProcess>:
+{
+ 8014a28:	b530      	push	{r4, r5, lr}
+ 8014a2a:	b083      	sub	sp, #12
+    uint8_t size = 0;
+ 8014a2c:	2300      	movs	r3, #0
+ 8014a2e:	f88d 3007 	strb.w	r3, [sp, #7]
+    int32_t cfo = 0;
+ 8014a32:	9300      	str	r3, [sp, #0]
+    switch( SubgRf.RadioIrq )
+ 8014a34:	4ba5      	ldr	r3, [pc, #660]	; (8014ccc <RadioIrqProcess+0x2a4>)
+ 8014a36:	f8b3 3054 	ldrh.w	r3, [r3, #84]	; 0x54
+ 8014a3a:	2b20      	cmp	r3, #32
+ 8014a3c:	d829      	bhi.n	8014a92 <RadioIrqProcess+0x6a>
+ 8014a3e:	b21a      	sxth	r2, r3
+ 8014a40:	2a00      	cmp	r2, #0
+ 8014a42:	f000 8140 	beq.w	8014cc6 <RadioIrqProcess+0x29e>
+ 8014a46:	3b01      	subs	r3, #1
+ 8014a48:	2b1f      	cmp	r3, #31
+ 8014a4a:	f200 813c 	bhi.w	8014cc6 <RadioIrqProcess+0x29e>
+ 8014a4e:	e8df f013 	tbh	[pc, r3, lsl #1]
+ 8014a52:	0063      	.short	0x0063
+ 8014a54:	013a007f 	.word	0x013a007f
+ 8014a58:	013a00f7 	.word	0x013a00f7
+ 8014a5c:	013a013a 	.word	0x013a013a
+ 8014a60:	013a0127 	.word	0x013a0127
+ 8014a64:	013a013a 	.word	0x013a013a
+ 8014a68:	013a013a 	.word	0x013a013a
+ 8014a6c:	013a013a 	.word	0x013a013a
+ 8014a70:	013a0134 	.word	0x013a0134
+ 8014a74:	013a013a 	.word	0x013a013a
+ 8014a78:	013a013a 	.word	0x013a013a
+ 8014a7c:	013a013a 	.word	0x013a013a
+ 8014a80:	013a013a 	.word	0x013a013a
+ 8014a84:	013a013a 	.word	0x013a013a
+ 8014a88:	013a013a 	.word	0x013a013a
+ 8014a8c:	013a013a 	.word	0x013a013a
+ 8014a90:	0155      	.short	0x0155
+ 8014a92:	f5b3 7f80 	cmp.w	r3, #256	; 0x100
+ 8014a96:	f000 80b3 	beq.w	8014c00 <RadioIrqProcess+0x1d8>
+ 8014a9a:	d928      	bls.n	8014aee <RadioIrqProcess+0xc6>
+ 8014a9c:	f5b3 7f00 	cmp.w	r3, #512	; 0x200
+ 8014aa0:	f040 8111 	bne.w	8014cc6 <RadioIrqProcess+0x29e>
+        MW_LOG( TS_ON, VLEVEL_M,  "IRQ_RX_TX_TIMEOUT\r\n" );
+ 8014aa4:	4b8a      	ldr	r3, [pc, #552]	; (8014cd0 <RadioIrqProcess+0x2a8>)
+ 8014aa6:	2201      	movs	r2, #1
+ 8014aa8:	2100      	movs	r1, #0
+ 8014aaa:	2002      	movs	r0, #2
+ 8014aac:	f002 f844 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+        if( SUBGRF_GetOperatingMode( ) == MODE_TX )
+ 8014ab0:	f001 f8d4 	bl	8015c5c <SUBGRF_GetOperatingMode>
+ 8014ab4:	2804      	cmp	r0, #4
+ 8014ab6:	f000 80b0 	beq.w	8014c1a <RadioIrqProcess+0x1f2>
+        else if( SUBGRF_GetOperatingMode( ) == MODE_RX )
+ 8014aba:	f001 f8cf 	bl	8015c5c <SUBGRF_GetOperatingMode>
+ 8014abe:	2805      	cmp	r0, #5
+ 8014ac0:	f040 8101 	bne.w	8014cc6 <RadioIrqProcess+0x29e>
+  WRITE_REG(GPIOx->BRR, PinMask);
+ 8014ac4:	4b83      	ldr	r3, [pc, #524]	; (8014cd4 <RadioIrqProcess+0x2ac>)
+ 8014ac6:	f44f 5280 	mov.w	r2, #4096	; 0x1000
+ 8014aca:	629a      	str	r2, [r3, #40]	; 0x28
+            TimerStop( &RxTimeoutTimer );
+ 8014acc:	4882      	ldr	r0, [pc, #520]	; (8014cd8 <RadioIrqProcess+0x2b0>)
+ 8014ace:	f002 fb85 	bl	80171dc <UTIL_TIMER_Stop>
+            SUBGRF_SetStandby( STDBY_RC );
+ 8014ad2:	2000      	movs	r0, #0
+ 8014ad4:	f001 f9c4 	bl	8015e60 <SUBGRF_SetStandby>
+            if( ( RadioEvents != NULL ) && ( RadioEvents->RxTimeout != NULL ) )
+ 8014ad8:	4b80      	ldr	r3, [pc, #512]	; (8014cdc <RadioIrqProcess+0x2b4>)
+ 8014ada:	681b      	ldr	r3, [r3, #0]
+ 8014adc:	2b00      	cmp	r3, #0
+ 8014ade:	f000 80f2 	beq.w	8014cc6 <RadioIrqProcess+0x29e>
+ 8014ae2:	68db      	ldr	r3, [r3, #12]
+ 8014ae4:	2b00      	cmp	r3, #0
+ 8014ae6:	f000 80ee 	beq.w	8014cc6 <RadioIrqProcess+0x29e>
+                RadioEvents->RxTimeout( );
+ 8014aea:	4798      	blx	r3
+ 8014aec:	e0eb      	b.n	8014cc6 <RadioIrqProcess+0x29e>
+    switch( SubgRf.RadioIrq )
+ 8014aee:	2b40      	cmp	r3, #64	; 0x40
+ 8014af0:	f000 811d 	beq.w	8014d2e <RadioIrqProcess+0x306>
+ 8014af4:	2b80      	cmp	r3, #128	; 0x80
+ 8014af6:	f040 80e6 	bne.w	8014cc6 <RadioIrqProcess+0x29e>
+        SUBGRF_SetStandby( STDBY_RC );
+ 8014afa:	2000      	movs	r0, #0
+ 8014afc:	f001 f9b0 	bl	8015e60 <SUBGRF_SetStandby>
+        if( ( RadioEvents != NULL ) && ( RadioEvents->CadDone != NULL ) )
+ 8014b00:	4b76      	ldr	r3, [pc, #472]	; (8014cdc <RadioIrqProcess+0x2b4>)
+ 8014b02:	681b      	ldr	r3, [r3, #0]
+ 8014b04:	2b00      	cmp	r3, #0
+ 8014b06:	f000 80de 	beq.w	8014cc6 <RadioIrqProcess+0x29e>
+ 8014b0a:	699b      	ldr	r3, [r3, #24]
+ 8014b0c:	2b00      	cmp	r3, #0
+ 8014b0e:	f000 80da 	beq.w	8014cc6 <RadioIrqProcess+0x29e>
+            RadioEvents->CadDone( false );
+ 8014b12:	2000      	movs	r0, #0
+ 8014b14:	4798      	blx	r3
+ 8014b16:	e0d6      	b.n	8014cc6 <RadioIrqProcess+0x29e>
+ 8014b18:	4b6e      	ldr	r3, [pc, #440]	; (8014cd4 <RadioIrqProcess+0x2ac>)
+ 8014b1a:	f44f 5200 	mov.w	r2, #8192	; 0x2000
+ 8014b1e:	629a      	str	r2, [r3, #40]	; 0x28
+        TimerStop( &TxTimeoutTimer );
+ 8014b20:	486f      	ldr	r0, [pc, #444]	; (8014ce0 <RadioIrqProcess+0x2b8>)
+ 8014b22:	f002 fb5b 	bl	80171dc <UTIL_TIMER_Stop>
+        SUBGRF_SetStandby( STDBY_RC );
+ 8014b26:	2000      	movs	r0, #0
+ 8014b28:	f001 f99a 	bl	8015e60 <SUBGRF_SetStandby>
+        if( RFW_Is_LongPacketModeEnabled() == 1 )
+ 8014b2c:	f001 ff20 	bl	8016970 <RFW_Is_LongPacketModeEnabled>
+ 8014b30:	2801      	cmp	r0, #1
+ 8014b32:	d00a      	beq.n	8014b4a <RadioIrqProcess+0x122>
+        if( ( RadioEvents != NULL ) && ( RadioEvents->TxDone != NULL ) )
+ 8014b34:	4b69      	ldr	r3, [pc, #420]	; (8014cdc <RadioIrqProcess+0x2b4>)
+ 8014b36:	681b      	ldr	r3, [r3, #0]
+ 8014b38:	2b00      	cmp	r3, #0
+ 8014b3a:	f000 80c4 	beq.w	8014cc6 <RadioIrqProcess+0x29e>
+ 8014b3e:	681b      	ldr	r3, [r3, #0]
+ 8014b40:	2b00      	cmp	r3, #0
+ 8014b42:	f000 80c0 	beq.w	8014cc6 <RadioIrqProcess+0x29e>
+            RadioEvents->TxDone( );
+ 8014b46:	4798      	blx	r3
+ 8014b48:	e0bd      	b.n	8014cc6 <RadioIrqProcess+0x29e>
+            RFW_DeInit_TxLongPacket( );
+ 8014b4a:	f001 ff1a 	bl	8016982 <RFW_DeInit_TxLongPacket>
+ 8014b4e:	e7f1      	b.n	8014b34 <RadioIrqProcess+0x10c>
+ 8014b50:	4b60      	ldr	r3, [pc, #384]	; (8014cd4 <RadioIrqProcess+0x2ac>)
+ 8014b52:	f44f 5280 	mov.w	r2, #4096	; 0x1000
+ 8014b56:	629a      	str	r2, [r3, #40]	; 0x28
+        TimerStop( &RxTimeoutTimer );
+ 8014b58:	485f      	ldr	r0, [pc, #380]	; (8014cd8 <RadioIrqProcess+0x2b0>)
+ 8014b5a:	f002 fb3f 	bl	80171dc <UTIL_TIMER_Stop>
+        if( SubgRf.RxContinuous == false )
+ 8014b5e:	4b5b      	ldr	r3, [pc, #364]	; (8014ccc <RadioIrqProcess+0x2a4>)
+ 8014b60:	785b      	ldrb	r3, [r3, #1]
+ 8014b62:	b303      	cbz	r3, 8014ba6 <RadioIrqProcess+0x17e>
+        SUBGRF_GetPayload( RadioBuffer, &size, 255 );
+ 8014b64:	22ff      	movs	r2, #255	; 0xff
+ 8014b66:	f10d 0107 	add.w	r1, sp, #7
+ 8014b6a:	485e      	ldr	r0, [pc, #376]	; (8014ce4 <RadioIrqProcess+0x2bc>)
+ 8014b6c:	f001 fdb6 	bl	80166dc <SUBGRF_GetPayload>
+        SUBGRF_GetPacketStatus( &( SubgRf.PacketStatus ) );
+ 8014b70:	485d      	ldr	r0, [pc, #372]	; (8014ce8 <RadioIrqProcess+0x2c0>)
+ 8014b72:	f001 fdcd 	bl	8016710 <SUBGRF_GetPacketStatus>
+        if( ( RadioEvents != NULL ) && ( RadioEvents->RxDone != NULL ) )
+ 8014b76:	4b59      	ldr	r3, [pc, #356]	; (8014cdc <RadioIrqProcess+0x2b4>)
+ 8014b78:	681b      	ldr	r3, [r3, #0]
+ 8014b7a:	2b00      	cmp	r3, #0
+ 8014b7c:	f000 80a3 	beq.w	8014cc6 <RadioIrqProcess+0x29e>
+ 8014b80:	689c      	ldr	r4, [r3, #8]
+ 8014b82:	2c00      	cmp	r4, #0
+ 8014b84:	f000 809f 	beq.w	8014cc6 <RadioIrqProcess+0x29e>
+            switch( SubgRf.PacketStatus.packetType )
+ 8014b88:	4b50      	ldr	r3, [pc, #320]	; (8014ccc <RadioIrqProcess+0x2a4>)
+ 8014b8a:	f893 3024 	ldrb.w	r3, [r3, #36]	; 0x24
+ 8014b8e:	2b01      	cmp	r3, #1
+ 8014b90:	d11d      	bne.n	8014bce <RadioIrqProcess+0x1a6>
+                RadioEvents->RxDone( RadioBuffer, size, SubgRf.PacketStatus.Params.LoRa.RssiPkt,
+ 8014b92:	4a4e      	ldr	r2, [pc, #312]	; (8014ccc <RadioIrqProcess+0x2a4>)
+ 8014b94:	f992 3031 	ldrsb.w	r3, [r2, #49]	; 0x31
+ 8014b98:	f992 2030 	ldrsb.w	r2, [r2, #48]	; 0x30
+ 8014b9c:	f89d 1007 	ldrb.w	r1, [sp, #7]
+ 8014ba0:	4850      	ldr	r0, [pc, #320]	; (8014ce4 <RadioIrqProcess+0x2bc>)
+ 8014ba2:	47a0      	blx	r4
+                break;
+ 8014ba4:	e08f      	b.n	8014cc6 <RadioIrqProcess+0x29e>
+            SUBGRF_SetStandby( STDBY_RC );
+ 8014ba6:	2000      	movs	r0, #0
+ 8014ba8:	f001 f95a 	bl	8015e60 <SUBGRF_SetStandby>
+            SUBGRF_WriteRegister( SUBGHZ_RTCCTLR, 0x00 );
+ 8014bac:	2100      	movs	r1, #0
+ 8014bae:	f640 1002 	movw	r0, #2306	; 0x902
+ 8014bb2:	f001 f85f 	bl	8015c74 <SUBGRF_WriteRegister>
+            SUBGRF_WriteRegister( SUBGHZ_EVENTMASKR, SUBGRF_ReadRegister( SUBGHZ_EVENTMASKR ) | ( 1 << 1 ) );
+ 8014bb6:	f640 1044 	movw	r0, #2372	; 0x944
+ 8014bba:	f001 f86b 	bl	8015c94 <SUBGRF_ReadRegister>
+ 8014bbe:	f040 0102 	orr.w	r1, r0, #2
+ 8014bc2:	b2c9      	uxtb	r1, r1
+ 8014bc4:	f640 1044 	movw	r0, #2372	; 0x944
+ 8014bc8:	f001 f854 	bl	8015c74 <SUBGRF_WriteRegister>
+ 8014bcc:	e7ca      	b.n	8014b64 <RadioIrqProcess+0x13c>
+                SUBGRF_GetCFO( SubgRf.ModulationParams.Params.Gfsk.BitRate, &cfo );
+ 8014bce:	4c3f      	ldr	r4, [pc, #252]	; (8014ccc <RadioIrqProcess+0x2a4>)
+ 8014bd0:	4669      	mov	r1, sp
+ 8014bd2:	6be0      	ldr	r0, [r4, #60]	; 0x3c
+ 8014bd4:	f001 fe7c 	bl	80168d0 <SUBGRF_GetCFO>
+                RadioEvents->RxDone( RadioBuffer, size, SubgRf.PacketStatus.Params.Gfsk.RssiAvg, ( int8_t ) DIVR( cfo, 1000 ) );
+ 8014bd8:	4b40      	ldr	r3, [pc, #256]	; (8014cdc <RadioIrqProcess+0x2b4>)
+ 8014bda:	681b      	ldr	r3, [r3, #0]
+ 8014bdc:	689d      	ldr	r5, [r3, #8]
+ 8014bde:	9b00      	ldr	r3, [sp, #0]
+ 8014be0:	f503 73fa 	add.w	r3, r3, #500	; 0x1f4
+ 8014be4:	4a41      	ldr	r2, [pc, #260]	; (8014cec <RadioIrqProcess+0x2c4>)
+ 8014be6:	fb82 1203 	smull	r1, r2, r2, r3
+ 8014bea:	17db      	asrs	r3, r3, #31
+ 8014bec:	ebc3 13a2 	rsb	r3, r3, r2, asr #6
+ 8014bf0:	b25b      	sxtb	r3, r3
+ 8014bf2:	f994 2029 	ldrsb.w	r2, [r4, #41]	; 0x29
+ 8014bf6:	f89d 1007 	ldrb.w	r1, [sp, #7]
+ 8014bfa:	483a      	ldr	r0, [pc, #232]	; (8014ce4 <RadioIrqProcess+0x2bc>)
+ 8014bfc:	47a8      	blx	r5
+                break;
+ 8014bfe:	e062      	b.n	8014cc6 <RadioIrqProcess+0x29e>
+        SUBGRF_SetStandby( STDBY_RC );
+ 8014c00:	2000      	movs	r0, #0
+ 8014c02:	f001 f92d 	bl	8015e60 <SUBGRF_SetStandby>
+        if( ( RadioEvents != NULL ) && ( RadioEvents->CadDone != NULL ) )
+ 8014c06:	4b35      	ldr	r3, [pc, #212]	; (8014cdc <RadioIrqProcess+0x2b4>)
+ 8014c08:	681b      	ldr	r3, [r3, #0]
+ 8014c0a:	2b00      	cmp	r3, #0
+ 8014c0c:	d05b      	beq.n	8014cc6 <RadioIrqProcess+0x29e>
+ 8014c0e:	699b      	ldr	r3, [r3, #24]
+ 8014c10:	2b00      	cmp	r3, #0
+ 8014c12:	d058      	beq.n	8014cc6 <RadioIrqProcess+0x29e>
+            RadioEvents->CadDone( true );
+ 8014c14:	2001      	movs	r0, #1
+ 8014c16:	4798      	blx	r3
+ 8014c18:	e055      	b.n	8014cc6 <RadioIrqProcess+0x29e>
+ 8014c1a:	4b2e      	ldr	r3, [pc, #184]	; (8014cd4 <RadioIrqProcess+0x2ac>)
+ 8014c1c:	f44f 5200 	mov.w	r2, #8192	; 0x2000
+ 8014c20:	629a      	str	r2, [r3, #40]	; 0x28
+            TimerStop( &TxTimeoutTimer );
+ 8014c22:	482f      	ldr	r0, [pc, #188]	; (8014ce0 <RadioIrqProcess+0x2b8>)
+ 8014c24:	f002 fada 	bl	80171dc <UTIL_TIMER_Stop>
+            SUBGRF_SetStandby( STDBY_RC );
+ 8014c28:	2000      	movs	r0, #0
+ 8014c2a:	f001 f919 	bl	8015e60 <SUBGRF_SetStandby>
+            if( ( RadioEvents != NULL ) && ( RadioEvents->TxTimeout != NULL ) )
+ 8014c2e:	4b2b      	ldr	r3, [pc, #172]	; (8014cdc <RadioIrqProcess+0x2b4>)
+ 8014c30:	681b      	ldr	r3, [r3, #0]
+ 8014c32:	2b00      	cmp	r3, #0
+ 8014c34:	d047      	beq.n	8014cc6 <RadioIrqProcess+0x29e>
+ 8014c36:	685b      	ldr	r3, [r3, #4]
+ 8014c38:	2b00      	cmp	r3, #0
+ 8014c3a:	d044      	beq.n	8014cc6 <RadioIrqProcess+0x29e>
+                RadioEvents->TxTimeout( );
+ 8014c3c:	4798      	blx	r3
+ 8014c3e:	e042      	b.n	8014cc6 <RadioIrqProcess+0x29e>
+        MW_LOG( TS_ON, VLEVEL_M,  "PRE OK\r\n" );
+ 8014c40:	4b2b      	ldr	r3, [pc, #172]	; (8014cf0 <RadioIrqProcess+0x2c8>)
+ 8014c42:	2201      	movs	r2, #1
+ 8014c44:	2100      	movs	r1, #0
+ 8014c46:	2002      	movs	r0, #2
+ 8014c48:	f001 ff76 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+        if( SubgRf.RxDcPreambleDetectTimeout != 0 )
+ 8014c4c:	4b1f      	ldr	r3, [pc, #124]	; (8014ccc <RadioIrqProcess+0x2a4>)
+ 8014c4e:	6d99      	ldr	r1, [r3, #88]	; 0x58
+ 8014c50:	b3c9      	cbz	r1, 8014cc6 <RadioIrqProcess+0x29e>
+            Radio.Write( SUBGHZ_RTCPRDR2, ( SubgRf.RxDcPreambleDetectTimeout >> 16 ) & 0xFF ); /*Update Radio RTC Period MSB*/
+ 8014c52:	f3c1 4107 	ubfx	r1, r1, #16, #8
+ 8014c56:	f640 1003 	movw	r0, #2307	; 0x903
+ 8014c5a:	f7ff fe53 	bl	8014904 <RadioWrite>
+            Radio.Write( SUBGHZ_RTCPRDR1, ( SubgRf.RxDcPreambleDetectTimeout >> 8 ) & 0xFF ); /*Update Radio RTC Period MidByte*/
+ 8014c5e:	4c1b      	ldr	r4, [pc, #108]	; (8014ccc <RadioIrqProcess+0x2a4>)
+ 8014c60:	f894 1059 	ldrb.w	r1, [r4, #89]	; 0x59
+ 8014c64:	f640 1004 	movw	r0, #2308	; 0x904
+ 8014c68:	f7ff fe4c 	bl	8014904 <RadioWrite>
+            Radio.Write( SUBGHZ_RTCPRDR0, ( SubgRf.RxDcPreambleDetectTimeout ) & 0xFF ); /*Update Radio RTC Period lsb*/
+ 8014c6c:	f894 1058 	ldrb.w	r1, [r4, #88]	; 0x58
+ 8014c70:	f640 1005 	movw	r0, #2309	; 0x905
+ 8014c74:	f7ff fe46 	bl	8014904 <RadioWrite>
+            Radio.Write( SUBGHZ_RTCCTLR, Radio.Read( SUBGHZ_RTCCTLR ) | 0x1 ); /*restart Radio RTC*/
+ 8014c78:	f640 1002 	movw	r0, #2306	; 0x902
+ 8014c7c:	f7ff fe3e 	bl	80148fc <RadioRead>
+ 8014c80:	f040 0101 	orr.w	r1, r0, #1
+ 8014c84:	b2c9      	uxtb	r1, r1
+ 8014c86:	f640 1002 	movw	r0, #2306	; 0x902
+ 8014c8a:	f7ff fe3b 	bl	8014904 <RadioWrite>
+            SubgRf.RxDcPreambleDetectTimeout = 0;
+ 8014c8e:	2200      	movs	r2, #0
+ 8014c90:	65a2      	str	r2, [r4, #88]	; 0x58
+            SUBGRF_SetDioIrqParams( IRQ_RX_DONE | IRQ_RX_TX_TIMEOUT | IRQ_CRC_ERROR | IRQ_HEADER_ERROR | IRQ_RX_DBG,
+ 8014c92:	4613      	mov	r3, r2
+ 8014c94:	f240 2162 	movw	r1, #610	; 0x262
+ 8014c98:	4608      	mov	r0, r1
+ 8014c9a:	f001 fa8e 	bl	80161ba <SUBGRF_SetDioIrqParams>
+ 8014c9e:	e012      	b.n	8014cc6 <RadioIrqProcess+0x29e>
+        MW_LOG( TS_ON, VLEVEL_M,  "SYNC OK\r\n" );
+ 8014ca0:	4b14      	ldr	r3, [pc, #80]	; (8014cf4 <RadioIrqProcess+0x2cc>)
+ 8014ca2:	2201      	movs	r2, #1
+ 8014ca4:	2100      	movs	r1, #0
+ 8014ca6:	2002      	movs	r0, #2
+ 8014ca8:	f001 ff46 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+        if( 1UL == RFW_Is_Init( ) )
+ 8014cac:	f001 fe5e 	bl	801696c <RFW_Is_Init>
+ 8014cb0:	2801      	cmp	r0, #1
+ 8014cb2:	d108      	bne.n	8014cc6 <RadioIrqProcess+0x29e>
+            RFW_ReceivePayload( );
+ 8014cb4:	f001 fe66 	bl	8016984 <RFW_ReceivePayload>
+ 8014cb8:	e005      	b.n	8014cc6 <RadioIrqProcess+0x29e>
+        MW_LOG( TS_ON, VLEVEL_M,  "HDR OK\r\n" );
+ 8014cba:	4b0f      	ldr	r3, [pc, #60]	; (8014cf8 <RadioIrqProcess+0x2d0>)
+ 8014cbc:	2201      	movs	r2, #1
+ 8014cbe:	2100      	movs	r1, #0
+ 8014cc0:	2002      	movs	r0, #2
+ 8014cc2:	f001 ff39 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+}
+ 8014cc6:	b003      	add	sp, #12
+ 8014cc8:	bd30      	pop	{r4, r5, pc}
+ 8014cca:	bf00      	nop
+ 8014ccc:	20002750 	.word	0x20002750
+ 8014cd0:	08018c44 	.word	0x08018c44
+ 8014cd4:	48000400 	.word	0x48000400
+ 8014cd8:	20002738 	.word	0x20002738
+ 8014cdc:	20002734 	.word	0x20002734
+ 8014ce0:	200027ac 	.word	0x200027ac
+ 8014ce4:	20002634 	.word	0x20002634
+ 8014ce8:	20002774 	.word	0x20002774
+ 8014cec:	10624dd3 	.word	0x10624dd3
+ 8014cf0:	08018c58 	.word	0x08018c58
+ 8014cf4:	08018c64 	.word	0x08018c64
+ 8014cf8:	08018c70 	.word	0x08018c70
+        TimerStop( &RxTimeoutTimer );
+ 8014cfc:	4817      	ldr	r0, [pc, #92]	; (8014d5c <RadioIrqProcess+0x334>)
+ 8014cfe:	f002 fa6d 	bl	80171dc <UTIL_TIMER_Stop>
+        if( SubgRf.RxContinuous == false )
+ 8014d02:	4b17      	ldr	r3, [pc, #92]	; (8014d60 <RadioIrqProcess+0x338>)
+ 8014d04:	785b      	ldrb	r3, [r3, #1]
+ 8014d06:	b173      	cbz	r3, 8014d26 <RadioIrqProcess+0x2fe>
+        if( ( RadioEvents != NULL ) && ( RadioEvents->RxTimeout != NULL ) )
+ 8014d08:	4b16      	ldr	r3, [pc, #88]	; (8014d64 <RadioIrqProcess+0x33c>)
+ 8014d0a:	681b      	ldr	r3, [r3, #0]
+ 8014d0c:	2b00      	cmp	r3, #0
+ 8014d0e:	d0da      	beq.n	8014cc6 <RadioIrqProcess+0x29e>
+ 8014d10:	68db      	ldr	r3, [r3, #12]
+ 8014d12:	2b00      	cmp	r3, #0
+ 8014d14:	d0d7      	beq.n	8014cc6 <RadioIrqProcess+0x29e>
+            RadioEvents->RxTimeout( );
+ 8014d16:	4798      	blx	r3
+            MW_LOG( TS_ON, VLEVEL_M,  "HDR KO\r\n" );
+ 8014d18:	4b13      	ldr	r3, [pc, #76]	; (8014d68 <RadioIrqProcess+0x340>)
+ 8014d1a:	2201      	movs	r2, #1
+ 8014d1c:	2100      	movs	r1, #0
+ 8014d1e:	2002      	movs	r0, #2
+ 8014d20:	f001 ff0a 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+ 8014d24:	e7cf      	b.n	8014cc6 <RadioIrqProcess+0x29e>
+            SUBGRF_SetStandby( STDBY_RC );
+ 8014d26:	2000      	movs	r0, #0
+ 8014d28:	f001 f89a 	bl	8015e60 <SUBGRF_SetStandby>
+ 8014d2c:	e7ec      	b.n	8014d08 <RadioIrqProcess+0x2e0>
+        MW_LOG( TS_ON, VLEVEL_M,  "IRQ_CRC_ERROR\r\n" );
+ 8014d2e:	4b0f      	ldr	r3, [pc, #60]	; (8014d6c <RadioIrqProcess+0x344>)
+ 8014d30:	2201      	movs	r2, #1
+ 8014d32:	2100      	movs	r1, #0
+ 8014d34:	2002      	movs	r0, #2
+ 8014d36:	f001 feff 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+        if( SubgRf.RxContinuous == false )
+ 8014d3a:	4b09      	ldr	r3, [pc, #36]	; (8014d60 <RadioIrqProcess+0x338>)
+ 8014d3c:	785b      	ldrb	r3, [r3, #1]
+ 8014d3e:	b143      	cbz	r3, 8014d52 <RadioIrqProcess+0x32a>
+        if( ( RadioEvents != NULL ) && ( RadioEvents->RxError ) )
+ 8014d40:	4b08      	ldr	r3, [pc, #32]	; (8014d64 <RadioIrqProcess+0x33c>)
+ 8014d42:	681b      	ldr	r3, [r3, #0]
+ 8014d44:	2b00      	cmp	r3, #0
+ 8014d46:	d0be      	beq.n	8014cc6 <RadioIrqProcess+0x29e>
+ 8014d48:	691b      	ldr	r3, [r3, #16]
+ 8014d4a:	2b00      	cmp	r3, #0
+ 8014d4c:	d0bb      	beq.n	8014cc6 <RadioIrqProcess+0x29e>
+            RadioEvents->RxError( );
+ 8014d4e:	4798      	blx	r3
+}
+ 8014d50:	e7b9      	b.n	8014cc6 <RadioIrqProcess+0x29e>
+            SUBGRF_SetStandby( STDBY_RC );
+ 8014d52:	2000      	movs	r0, #0
+ 8014d54:	f001 f884 	bl	8015e60 <SUBGRF_SetStandby>
+ 8014d58:	e7f2      	b.n	8014d40 <RadioIrqProcess+0x318>
+ 8014d5a:	bf00      	nop
+ 8014d5c:	20002738 	.word	0x20002738
+ 8014d60:	20002750 	.word	0x20002750
+ 8014d64:	20002734 	.word	0x20002734
+ 8014d68:	08018c7c 	.word	0x08018c7c
+ 8014d6c:	08018c88 	.word	0x08018c88
+
+08014d70 <RadioOnDioIrq>:
+{
+ 8014d70:	b508      	push	{r3, lr}
+    SubgRf.RadioIrq = radioIrq;
+ 8014d72:	4b03      	ldr	r3, [pc, #12]	; (8014d80 <RadioOnDioIrq+0x10>)
+ 8014d74:	f8a3 0054 	strh.w	r0, [r3, #84]	; 0x54
+    RADIO_IRQ_PROCESS();
+ 8014d78:	f7ff fe56 	bl	8014a28 <RadioIrqProcess>
+}
+ 8014d7c:	bd08      	pop	{r3, pc}
+ 8014d7e:	bf00      	nop
+ 8014d80:	20002750 	.word	0x20002750
+
+08014d84 <RadioGetWakeupTime>:
+{
+ 8014d84:	b508      	push	{r3, lr}
+    return SUBGRF_GetRadioWakeUpTime() + RADIO_WAKEUP_TIME;
+ 8014d86:	f001 fd2a 	bl	80167de <SUBGRF_GetRadioWakeUpTime>
+}
+ 8014d8a:	3003      	adds	r0, #3
+ 8014d8c:	bd08      	pop	{r3, pc}
+
+08014d8e <RadioReadRegisters>:
+{
+ 8014d8e:	b508      	push	{r3, lr}
+    SUBGRF_ReadRegisters( addr, buffer, size );
+ 8014d90:	f000 fffe 	bl	8015d90 <SUBGRF_ReadRegisters>
+}
+ 8014d94:	bd08      	pop	{r3, pc}
+
+08014d96 <RadioWriteRegisters>:
+{
+ 8014d96:	b508      	push	{r3, lr}
+    SUBGRF_WriteRegisters( addr, buffer, size );
+ 8014d98:	f000 ffb8 	bl	8015d0c <SUBGRF_WriteRegisters>
+}
+ 8014d9c:	bd08      	pop	{r3, pc}
+
+08014d9e <RadioRssi>:
+{
+ 8014d9e:	b508      	push	{r3, lr}
+    return SUBGRF_GetRssiInst( );
+ 8014da0:	f001 fc6c 	bl	801667c <SUBGRF_GetRssiInst>
+}
+ 8014da4:	b200      	sxth	r0, r0
+ 8014da6:	bd08      	pop	{r3, pc}
+
+08014da8 <RadioSetTxContinuousWave>:
+{
+ 8014da8:	b538      	push	{r3, r4, r5, lr}
+ 8014daa:	460d      	mov	r5, r1
+    uint32_t timeout = ( uint32_t )time * 1000;
+ 8014dac:	f44f 737a 	mov.w	r3, #1000	; 0x3e8
+ 8014db0:	fb03 f402 	mul.w	r4, r3, r2
+    SUBGRF_SetRfFrequency( freq );
+ 8014db4:	f001 fa76 	bl	80162a4 <SUBGRF_SetRfFrequency>
+    antswitchpow = SUBGRF_SetRfTxPower( power );
+ 8014db8:	4628      	mov	r0, r5
+ 8014dba:	f001 fcf9 	bl	80167b0 <SUBGRF_SetRfTxPower>
+ 8014dbe:	4605      	mov	r5, r0
+    SUBGRF_WriteRegister(REG_DRV_CTRL, 0x7 << 1);
+ 8014dc0:	210e      	movs	r1, #14
+ 8014dc2:	f640 101f 	movw	r0, #2335	; 0x91f
+ 8014dc6:	f000 ff55 	bl	8015c74 <SUBGRF_WriteRegister>
+    SUBGRF_SetSwitch( antswitchpow, RFSWITCH_TX );
+ 8014dca:	2101      	movs	r1, #1
+ 8014dcc:	4628      	mov	r0, r5
+ 8014dce:	f001 fcdb 	bl	8016788 <SUBGRF_SetSwitch>
+    SUBGRF_SetTxContinuousWave( );
+ 8014dd2:	f001 f91f 	bl	8016014 <SUBGRF_SetTxContinuousWave>
+    TimerSetValue( &TxTimeoutTimer, timeout );
+ 8014dd6:	4d04      	ldr	r5, [pc, #16]	; (8014de8 <RadioSetTxContinuousWave+0x40>)
+ 8014dd8:	4621      	mov	r1, r4
+ 8014dda:	4628      	mov	r0, r5
+ 8014ddc:	f002 fa9e 	bl	801731c <UTIL_TIMER_SetPeriod>
+    TimerStart( &TxTimeoutTimer );
+ 8014de0:	4628      	mov	r0, r5
+ 8014de2:	f002 fa55 	bl	8017290 <UTIL_TIMER_Start>
+}
+ 8014de6:	bd38      	pop	{r3, r4, r5, pc}
+ 8014de8:	200027ac 	.word	0x200027ac
+
+08014dec <RadioSetChannel>:
+{
+ 8014dec:	b508      	push	{r3, lr}
+    SUBGRF_SetRfFrequency( freq );
+ 8014dee:	f001 fa59 	bl	80162a4 <SUBGRF_SetRfFrequency>
+}
+ 8014df2:	bd08      	pop	{r3, pc}
+
+08014df4 <RadioStartCad>:
+{
+ 8014df4:	b508      	push	{r3, lr}
+    SUBGRF_SetSwitch( SubgRf.AntSwitchPaSelect, RFSWITCH_RX );
+ 8014df6:	2100      	movs	r1, #0
+ 8014df8:	4b07      	ldr	r3, [pc, #28]	; (8014e18 <RadioStartCad+0x24>)
+ 8014dfa:	f893 0056 	ldrb.w	r0, [r3, #86]	; 0x56
+ 8014dfe:	f001 fcc3 	bl	8016788 <SUBGRF_SetSwitch>
+    SUBGRF_SetDioIrqParams( IRQ_CAD_CLEAR | IRQ_CAD_DETECTED,
+ 8014e02:	2300      	movs	r3, #0
+ 8014e04:	461a      	mov	r2, r3
+ 8014e06:	f44f 71c0 	mov.w	r1, #384	; 0x180
+ 8014e0a:	4608      	mov	r0, r1
+ 8014e0c:	f001 f9d5 	bl	80161ba <SUBGRF_SetDioIrqParams>
+    SUBGRF_SetCad( );
+ 8014e10:	f001 f8f4 	bl	8015ffc <SUBGRF_SetCad>
+}
+ 8014e14:	bd08      	pop	{r3, pc}
+ 8014e16:	bf00      	nop
+ 8014e18:	20002750 	.word	0x20002750
+
+08014e1c <RadioRx>:
+{
+ 8014e1c:	b538      	push	{r3, r4, r5, lr}
+ 8014e1e:	4604      	mov	r4, r0
+    if( 1UL == RFW_Is_Init( ) )
+ 8014e20:	f001 fda4 	bl	801696c <RFW_Is_Init>
+ 8014e24:	2801      	cmp	r0, #1
+ 8014e26:	d019      	beq.n	8014e5c <RadioRx+0x40>
+        SUBGRF_SetDioIrqParams( IRQ_RX_DONE | IRQ_RX_TX_TIMEOUT | IRQ_CRC_ERROR | IRQ_HEADER_ERROR | IRQ_RX_DBG,
+ 8014e28:	2300      	movs	r3, #0
+ 8014e2a:	461a      	mov	r2, r3
+ 8014e2c:	f240 2162 	movw	r1, #610	; 0x262
+ 8014e30:	4608      	mov	r0, r1
+ 8014e32:	f001 f9c2 	bl	80161ba <SUBGRF_SetDioIrqParams>
+    if( timeout != 0 )
+ 8014e36:	b9a4      	cbnz	r4, 8014e62 <RadioRx+0x46>
+    SubgRf.RxDcPreambleDetectTimeout = 0;
+ 8014e38:	4c11      	ldr	r4, [pc, #68]	; (8014e80 <RadioRx+0x64>)
+ 8014e3a:	2100      	movs	r1, #0
+ 8014e3c:	65a1      	str	r1, [r4, #88]	; 0x58
+  WRITE_REG(GPIOx->BSRR, PinMask);
+ 8014e3e:	4b11      	ldr	r3, [pc, #68]	; (8014e84 <RadioRx+0x68>)
+ 8014e40:	f44f 5280 	mov.w	r2, #4096	; 0x1000
+ 8014e44:	619a      	str	r2, [r3, #24]
+    SUBGRF_SetSwitch( SubgRf.AntSwitchPaSelect, RFSWITCH_RX );
+ 8014e46:	f894 0056 	ldrb.w	r0, [r4, #86]	; 0x56
+ 8014e4a:	f001 fc9d 	bl	8016788 <SUBGRF_SetSwitch>
+    if( SubgRf.RxContinuous == true )
+ 8014e4e:	7863      	ldrb	r3, [r4, #1]
+ 8014e50:	b183      	cbz	r3, 8014e74 <RadioRx+0x58>
+        SUBGRF_SetRx( 0xFFFFFF ); // Rx Continuous
+ 8014e52:	f06f 407f 	mvn.w	r0, #4278190080	; 0xff000000
+ 8014e56:	f001 f83f 	bl	8015ed8 <SUBGRF_SetRx>
+}
+ 8014e5a:	bd38      	pop	{r3, r4, r5, pc}
+        RFW_ReceiveInit( );
+ 8014e5c:	f001 fd8e 	bl	801697c <RFW_ReceiveInit>
+ 8014e60:	e7e9      	b.n	8014e36 <RadioRx+0x1a>
+        TimerSetValue( &RxTimeoutTimer, timeout );
+ 8014e62:	4d09      	ldr	r5, [pc, #36]	; (8014e88 <RadioRx+0x6c>)
+ 8014e64:	4621      	mov	r1, r4
+ 8014e66:	4628      	mov	r0, r5
+ 8014e68:	f002 fa58 	bl	801731c <UTIL_TIMER_SetPeriod>
+        TimerStart( &RxTimeoutTimer );
+ 8014e6c:	4628      	mov	r0, r5
+ 8014e6e:	f002 fa0f 	bl	8017290 <UTIL_TIMER_Start>
+ 8014e72:	e7e1      	b.n	8014e38 <RadioRx+0x1c>
+        SUBGRF_SetRx( SubgRf.RxTimeout << 6 );
+ 8014e74:	4b02      	ldr	r3, [pc, #8]	; (8014e80 <RadioRx+0x64>)
+ 8014e76:	6898      	ldr	r0, [r3, #8]
+ 8014e78:	0180      	lsls	r0, r0, #6
+ 8014e7a:	f001 f82d 	bl	8015ed8 <SUBGRF_SetRx>
+}
+ 8014e7e:	e7ec      	b.n	8014e5a <RadioRx+0x3e>
+ 8014e80:	20002750 	.word	0x20002750
+ 8014e84:	48000400 	.word	0x48000400
+ 8014e88:	20002738 	.word	0x20002738
+
+08014e8c <RadioSleep>:
+{
+ 8014e8c:	b508      	push	{r3, lr}
+    SUBGRF_SetSleep( params );
+ 8014e8e:	f04f 0004 	mov.w	r0, #4
+ 8014e92:	f000 ffc5 	bl	8015e20 <SUBGRF_SetSleep>
+    RADIO_DELAY_MS( 2 );
+ 8014e96:	2002      	movs	r0, #2
+ 8014e98:	f7ed ff0a 	bl	8002cb0 <HAL_Delay>
+}
+ 8014e9c:	bd08      	pop	{r3, pc}
+	...
+
+08014ea0 <RadioSend>:
+{
+ 8014ea0:	b570      	push	{r4, r5, r6, lr}
+ 8014ea2:	b082      	sub	sp, #8
+ 8014ea4:	4605      	mov	r5, r0
+ 8014ea6:	460c      	mov	r4, r1
+    SUBGRF_SetDioIrqParams( IRQ_TX_DONE | IRQ_RX_TX_TIMEOUT | IRQ_TX_DBG,
+ 8014ea8:	2300      	movs	r3, #0
+ 8014eaa:	461a      	mov	r2, r3
+ 8014eac:	f240 2101 	movw	r1, #513	; 0x201
+ 8014eb0:	4608      	mov	r0, r1
+ 8014eb2:	f001 f982 	bl	80161ba <SUBGRF_SetDioIrqParams>
+ 8014eb6:	4b5e      	ldr	r3, [pc, #376]	; (8015030 <RadioSend+0x190>)
+ 8014eb8:	f44f 5200 	mov.w	r2, #8192	; 0x2000
+ 8014ebc:	619a      	str	r2, [r3, #24]
+    SUBGRF_SetSwitch( SubgRf.AntSwitchPaSelect, RFSWITCH_TX );
+ 8014ebe:	4e5d      	ldr	r6, [pc, #372]	; (8015034 <RadioSend+0x194>)
+ 8014ec0:	2101      	movs	r1, #1
+ 8014ec2:	f896 0056 	ldrb.w	r0, [r6, #86]	; 0x56
+ 8014ec6:	f001 fc5f 	bl	8016788 <SUBGRF_SetSwitch>
+    if( ( SubgRf.Modem == MODEM_LORA ) && ( SubgRf.ModulationParams.Params.LoRa.Bandwidth == LORA_BW_500 ) )
+ 8014eca:	7833      	ldrb	r3, [r6, #0]
+ 8014ecc:	2b01      	cmp	r3, #1
+ 8014ece:	d103      	bne.n	8014ed8 <RadioSend+0x38>
+ 8014ed0:	f896 3051 	ldrb.w	r3, [r6, #81]	; 0x51
+ 8014ed4:	2b06      	cmp	r3, #6
+ 8014ed6:	d013      	beq.n	8014f00 <RadioSend+0x60>
+        SUBGRF_WriteRegister( SUBGHZ_SDCFG0R, SUBGRF_ReadRegister( SUBGHZ_SDCFG0R ) | ( 1 << 2 ) );
+ 8014ed8:	f640 0089 	movw	r0, #2185	; 0x889
+ 8014edc:	f000 feda 	bl	8015c94 <SUBGRF_ReadRegister>
+ 8014ee0:	f040 0104 	orr.w	r1, r0, #4
+ 8014ee4:	b2c9      	uxtb	r1, r1
+ 8014ee6:	f640 0089 	movw	r0, #2185	; 0x889
+ 8014eea:	f000 fec3 	bl	8015c74 <SUBGRF_WriteRegister>
+        switch( SubgRf.Modem )
+ 8014eee:	4b51      	ldr	r3, [pc, #324]	; (8015034 <RadioSend+0x194>)
+ 8014ef0:	781b      	ldrb	r3, [r3, #0]
+ 8014ef2:	2b04      	cmp	r3, #4
+ 8014ef4:	d819      	bhi.n	8014f2a <RadioSend+0x8a>
+ 8014ef6:	e8df f003 	tbb	[pc, r3]
+ 8014efa:	0e24      	.short	0x0e24
+ 8014efc:	5024      	.short	0x5024
+ 8014efe:	5d          	.byte	0x5d
+ 8014eff:	00          	.byte	0x00
+        SUBGRF_WriteRegister( SUBGHZ_SDCFG0R, SUBGRF_ReadRegister( SUBGHZ_SDCFG0R ) & ~( 1 << 2 ) );
+ 8014f00:	f640 0089 	movw	r0, #2185	; 0x889
+ 8014f04:	f000 fec6 	bl	8015c94 <SUBGRF_ReadRegister>
+ 8014f08:	f000 01fb 	and.w	r1, r0, #251	; 0xfb
+ 8014f0c:	f640 0089 	movw	r0, #2185	; 0x889
+ 8014f10:	f000 feb0 	bl	8015c74 <SUBGRF_WriteRegister>
+ 8014f14:	e7eb      	b.n	8014eee <RadioSend+0x4e>
+            SubgRf.PacketParams.Params.LoRa.PayloadLength = size;
+ 8014f16:	4847      	ldr	r0, [pc, #284]	; (8015034 <RadioSend+0x194>)
+ 8014f18:	77c4      	strb	r4, [r0, #31]
+            SUBGRF_SetPacketParams( &SubgRf.PacketParams );
+ 8014f1a:	300e      	adds	r0, #14
+ 8014f1c:	f001 fb1e 	bl	801655c <SUBGRF_SetPacketParams>
+            SUBGRF_SendPayload( buffer, size, 0 );
+ 8014f20:	2200      	movs	r2, #0
+ 8014f22:	4621      	mov	r1, r4
+ 8014f24:	4628      	mov	r0, r5
+ 8014f26:	f000 ffcf 	bl	8015ec8 <SUBGRF_SendPayload>
+        TimerSetValue( &TxTimeoutTimer, SubgRf.TxTimeout );
+ 8014f2a:	4c43      	ldr	r4, [pc, #268]	; (8015038 <RadioSend+0x198>)
+ 8014f2c:	4b41      	ldr	r3, [pc, #260]	; (8015034 <RadioSend+0x194>)
+ 8014f2e:	6859      	ldr	r1, [r3, #4]
+ 8014f30:	4620      	mov	r0, r4
+ 8014f32:	f002 f9f3 	bl	801731c <UTIL_TIMER_SetPeriod>
+        TimerStart( &TxTimeoutTimer );
+ 8014f36:	4620      	mov	r0, r4
+ 8014f38:	f002 f9aa 	bl	8017290 <UTIL_TIMER_Start>
+    return RADIO_STATUS_OK;
+ 8014f3c:	2000      	movs	r0, #0
+}
+ 8014f3e:	b002      	add	sp, #8
+ 8014f40:	bd70      	pop	{r4, r5, r6, pc}
+            if ( 1UL == RFW_Is_Init( ) )
+ 8014f42:	f001 fd13 	bl	801696c <RFW_Is_Init>
+ 8014f46:	2801      	cmp	r0, #1
+ 8014f48:	d00a      	beq.n	8014f60 <RadioSend+0xc0>
+                SubgRf.PacketParams.Params.Gfsk.PayloadLength = size;
+ 8014f4a:	483a      	ldr	r0, [pc, #232]	; (8015034 <RadioSend+0x194>)
+ 8014f4c:	7584      	strb	r4, [r0, #22]
+                SUBGRF_SetPacketParams( &SubgRf.PacketParams );
+ 8014f4e:	300e      	adds	r0, #14
+ 8014f50:	f001 fb04 	bl	801655c <SUBGRF_SetPacketParams>
+                SUBGRF_SendPayload( buffer, size, 0 );
+ 8014f54:	2200      	movs	r2, #0
+ 8014f56:	4621      	mov	r1, r4
+ 8014f58:	4628      	mov	r0, r5
+ 8014f5a:	f000 ffb5 	bl	8015ec8 <SUBGRF_SendPayload>
+ 8014f5e:	e7e4      	b.n	8014f2a <RadioSend+0x8a>
+                if ( 0UL == RFW_TransmitInit( buffer,size, &outsize ) )
+ 8014f60:	f10d 0207 	add.w	r2, sp, #7
+ 8014f64:	4621      	mov	r1, r4
+ 8014f66:	4628      	mov	r0, r5
+ 8014f68:	f001 fd05 	bl	8016976 <RFW_TransmitInit>
+ 8014f6c:	b968      	cbnz	r0, 8014f8a <RadioSend+0xea>
+                    SubgRf.PacketParams.Params.Gfsk.PayloadLength = outsize;
+ 8014f6e:	4831      	ldr	r0, [pc, #196]	; (8015034 <RadioSend+0x194>)
+ 8014f70:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8014f74:	7583      	strb	r3, [r0, #22]
+                    SUBGRF_SetPacketParams( &SubgRf.PacketParams );
+ 8014f76:	300e      	adds	r0, #14
+ 8014f78:	f001 faf0 	bl	801655c <SUBGRF_SetPacketParams>
+                    SUBGRF_SendPayload( buffer, outsize, 0 );
+ 8014f7c:	2200      	movs	r2, #0
+ 8014f7e:	f89d 1007 	ldrb.w	r1, [sp, #7]
+ 8014f82:	4628      	mov	r0, r5
+ 8014f84:	f000 ffa0 	bl	8015ec8 <SUBGRF_SendPayload>
+ 8014f88:	e7cf      	b.n	8014f2a <RadioSend+0x8a>
+                    MW_LOG( TS_ON, VLEVEL_M, "RadioSend Oversize\r\n" );
+ 8014f8a:	4b2c      	ldr	r3, [pc, #176]	; (801503c <RadioSend+0x19c>)
+ 8014f8c:	2201      	movs	r2, #1
+ 8014f8e:	2100      	movs	r1, #0
+ 8014f90:	2002      	movs	r0, #2
+ 8014f92:	f001 fdd1 	bl	8016b38 <UTIL_ADV_TRACE_COND_FSend>
+                    return RADIO_STATUS_ERROR;
+ 8014f96:	2003      	movs	r0, #3
+ 8014f98:	e7d1      	b.n	8014f3e <RadioSend+0x9e>
+            SubgRf.PacketParams.PacketType = PACKET_TYPE_BPSK;
+ 8014f9a:	4826      	ldr	r0, [pc, #152]	; (8015034 <RadioSend+0x194>)
+ 8014f9c:	2302      	movs	r3, #2
+ 8014f9e:	7383      	strb	r3, [r0, #14]
+            SubgRf.PacketParams.Params.Bpsk.PayloadLength = size;
+ 8014fa0:	7684      	strb	r4, [r0, #26]
+            SUBGRF_SetPacketParams( &SubgRf.PacketParams );
+ 8014fa2:	300e      	adds	r0, #14
+ 8014fa4:	f001 fada 	bl	801655c <SUBGRF_SetPacketParams>
+            SUBGRF_SendPayload( buffer, size, 0 );
+ 8014fa8:	2200      	movs	r2, #0
+ 8014faa:	4621      	mov	r1, r4
+ 8014fac:	4628      	mov	r0, r5
+ 8014fae:	f000 ff8b 	bl	8015ec8 <SUBGRF_SendPayload>
+            break;
+ 8014fb2:	e7ba      	b.n	8014f2a <RadioSend+0x8a>
+            payload_integration( RadioBuffer, buffer, size );
+ 8014fb4:	4622      	mov	r2, r4
+ 8014fb6:	4629      	mov	r1, r5
+ 8014fb8:	4821      	ldr	r0, [pc, #132]	; (8015040 <RadioSend+0x1a0>)
+ 8014fba:	f7ff fc29 	bl	8014810 <payload_integration>
+            SubgRf.PacketParams.PacketType = PACKET_TYPE_BPSK;
+ 8014fbe:	4e1d      	ldr	r6, [pc, #116]	; (8015034 <RadioSend+0x194>)
+ 8014fc0:	2302      	movs	r3, #2
+ 8014fc2:	73b3      	strb	r3, [r6, #14]
+            SubgRf.PacketParams.Params.Bpsk.PayloadLength = size + 1;
+ 8014fc4:	1c65      	adds	r5, r4, #1
+ 8014fc6:	b2ed      	uxtb	r5, r5
+ 8014fc8:	76b5      	strb	r5, [r6, #26]
+            SUBGRF_SetPacketParams( &SubgRf.PacketParams );
+ 8014fca:	f106 000e 	add.w	r0, r6, #14
+ 8014fce:	f001 fac5 	bl	801655c <SUBGRF_SetPacketParams>
+            RadioWrite( SUBGHZ_RAM_RAMPUPL, 0 ); // clean start-up LSB
+ 8014fd2:	2100      	movs	r1, #0
+ 8014fd4:	20f1      	movs	r0, #241	; 0xf1
+ 8014fd6:	f7ff fc95 	bl	8014904 <RadioWrite>
+            RadioWrite( SUBGHZ_RAM_RAMPUPH, 0 ); // clean start-up MSB
+ 8014fda:	2100      	movs	r1, #0
+ 8014fdc:	20f0      	movs	r0, #240	; 0xf0
+ 8014fde:	f7ff fc91 	bl	8014904 <RadioWrite>
+            if( SubgRf.ModulationParams.Params.Bpsk.BitRate == 100 )
+ 8014fe2:	6cb3      	ldr	r3, [r6, #72]	; 0x48
+ 8014fe4:	2b64      	cmp	r3, #100	; 0x64
+ 8014fe6:	d019      	beq.n	801501c <RadioSend+0x17c>
+                RadioWrite( SUBGHZ_RAM_RAMPDNL, 0xE1 ); // clean end of frame LSB
+ 8014fe8:	21e1      	movs	r1, #225	; 0xe1
+ 8014fea:	20f3      	movs	r0, #243	; 0xf3
+ 8014fec:	f7ff fc8a 	bl	8014904 <RadioWrite>
+                RadioWrite( SUBGHZ_RAM_RAMPDNH, 0x04 ); // clean end of frame MSB
+ 8014ff0:	2104      	movs	r1, #4
+ 8014ff2:	20f2      	movs	r0, #242	; 0xf2
+ 8014ff4:	f7ff fc86 	bl	8014904 <RadioWrite>
+            uint16_t bitNum = ( size * 8 ) + 2;
+ 8014ff8:	00e1      	lsls	r1, r4, #3
+ 8014ffa:	1c8c      	adds	r4, r1, #2
+            RadioWrite( SUBGHZ_RAM_FRAMELIMH, ( bitNum >> 8 ) & 0x00FF );    // limit frame
+ 8014ffc:	0a09      	lsrs	r1, r1, #8
+ 8014ffe:	20f4      	movs	r0, #244	; 0xf4
+ 8015000:	f7ff fc80 	bl	8014904 <RadioWrite>
+            RadioWrite( SUBGHZ_RAM_FRAMELIML, bitNum & 0x00FF );             // limit frame
+ 8015004:	f004 01fe 	and.w	r1, r4, #254	; 0xfe
+ 8015008:	20f5      	movs	r0, #245	; 0xf5
+ 801500a:	f7ff fc7b 	bl	8014904 <RadioWrite>
+            SUBGRF_SendPayload( RadioBuffer, size + 1, 0xFFFFFF );
+ 801500e:	f06f 427f 	mvn.w	r2, #4278190080	; 0xff000000
+ 8015012:	4629      	mov	r1, r5
+ 8015014:	480a      	ldr	r0, [pc, #40]	; (8015040 <RadioSend+0x1a0>)
+ 8015016:	f000 ff57 	bl	8015ec8 <SUBGRF_SendPayload>
+            break;
+ 801501a:	e786      	b.n	8014f2a <RadioSend+0x8a>
+                RadioWrite( SUBGHZ_RAM_RAMPDNL, 0x70 ); // clean end of frame LSB
+ 801501c:	2170      	movs	r1, #112	; 0x70
+ 801501e:	20f3      	movs	r0, #243	; 0xf3
+ 8015020:	f7ff fc70 	bl	8014904 <RadioWrite>
+                RadioWrite( SUBGHZ_RAM_RAMPDNH, 0x1D ); // clean end of frame MSB
+ 8015024:	211d      	movs	r1, #29
+ 8015026:	20f2      	movs	r0, #242	; 0xf2
+ 8015028:	f7ff fc6c 	bl	8014904 <RadioWrite>
+ 801502c:	e7e4      	b.n	8014ff8 <RadioSend+0x158>
+ 801502e:	bf00      	nop
+ 8015030:	48000400 	.word	0x48000400
+ 8015034:	20002750 	.word	0x20002750
+ 8015038:	200027ac 	.word	0x200027ac
+ 801503c:	08018c98 	.word	0x08018c98
+ 8015040:	20002634 	.word	0x20002634
+
+08015044 <RadioRandom>:
+{
+ 8015044:	b508      	push	{r3, lr}
+    SUBGRF_SetDioIrqParams( IRQ_RADIO_NONE, IRQ_RADIO_NONE, IRQ_RADIO_NONE, IRQ_RADIO_NONE );
+ 8015046:	2300      	movs	r3, #0
+ 8015048:	461a      	mov	r2, r3
+ 801504a:	4619      	mov	r1, r3
+ 801504c:	4618      	mov	r0, r3
+ 801504e:	f001 f8b4 	bl	80161ba <SUBGRF_SetDioIrqParams>
+    rnd = SUBGRF_GetRandom();
+ 8015052:	f000 ff5b 	bl	8015f0c <SUBGRF_GetRandom>
+}
+ 8015056:	bd08      	pop	{r3, pc}
+
+08015058 <RadioSetModem>:
+{
+ 8015058:	b510      	push	{r4, lr}
+ 801505a:	4604      	mov	r4, r0
+    SubgRf.Modem = modem;
+ 801505c:	4b1c      	ldr	r3, [pc, #112]	; (80150d0 <RadioSetModem+0x78>)
+ 801505e:	7018      	strb	r0, [r3, #0]
+    RFW_SetRadioModem( modem );
+ 8015060:	f001 fc91 	bl	8016986 <RFW_SetRadioModem>
+    switch( modem )
+ 8015064:	2c05      	cmp	r4, #5
+ 8015066:	d804      	bhi.n	8015072 <RadioSetModem+0x1a>
+ 8015068:	e8df f004 	tbb	[pc, r4]
+ 801506c:	1d03110a 	.word	0x1d03110a
+ 8015070:	2b24      	.short	0x2b24
+        SUBGRF_SetPacketType( PACKET_TYPE_GMSK );
+ 8015072:	2003      	movs	r0, #3
+ 8015074:	f001 f942 	bl	80162fc <SUBGRF_SetPacketType>
+        SubgRf.PublicNetwork.Current = false;
+ 8015078:	4b15      	ldr	r3, [pc, #84]	; (80150d0 <RadioSetModem+0x78>)
+ 801507a:	2200      	movs	r2, #0
+ 801507c:	735a      	strb	r2, [r3, #13]
+}
+ 801507e:	bd10      	pop	{r4, pc}
+        SUBGRF_SetPacketType( PACKET_TYPE_GFSK );
+ 8015080:	2000      	movs	r0, #0
+ 8015082:	f001 f93b 	bl	80162fc <SUBGRF_SetPacketType>
+        SubgRf.PublicNetwork.Current = false;
+ 8015086:	4b12      	ldr	r3, [pc, #72]	; (80150d0 <RadioSetModem+0x78>)
+ 8015088:	2200      	movs	r2, #0
+ 801508a:	735a      	strb	r2, [r3, #13]
+        break;
+ 801508c:	e7f7      	b.n	801507e <RadioSetModem+0x26>
+        SUBGRF_SetPacketType( PACKET_TYPE_LORA );
+ 801508e:	2001      	movs	r0, #1
+ 8015090:	f001 f934 	bl	80162fc <SUBGRF_SetPacketType>
+        if( SubgRf.PublicNetwork.Current != SubgRf.PublicNetwork.Previous )
+ 8015094:	4b0e      	ldr	r3, [pc, #56]	; (80150d0 <RadioSetModem+0x78>)
+ 8015096:	7b5a      	ldrb	r2, [r3, #13]
+ 8015098:	7b18      	ldrb	r0, [r3, #12]
+ 801509a:	4282      	cmp	r2, r0
+ 801509c:	d0ef      	beq.n	801507e <RadioSetModem+0x26>
+            SubgRf.PublicNetwork.Current = SubgRf.PublicNetwork.Previous;
+ 801509e:	7358      	strb	r0, [r3, #13]
+            RadioSetPublicNetwork( SubgRf.PublicNetwork.Current );
+ 80150a0:	f000 fade 	bl	8015660 <RadioSetPublicNetwork>
+ 80150a4:	e7eb      	b.n	801507e <RadioSetModem+0x26>
+        SUBGRF_SetPacketType( PACKET_TYPE_BPSK );
+ 80150a6:	2002      	movs	r0, #2
+ 80150a8:	f001 f928 	bl	80162fc <SUBGRF_SetPacketType>
+        SubgRf.PublicNetwork.Current = false;
+ 80150ac:	4b08      	ldr	r3, [pc, #32]	; (80150d0 <RadioSetModem+0x78>)
+ 80150ae:	2200      	movs	r2, #0
+ 80150b0:	735a      	strb	r2, [r3, #13]
+        break;
+ 80150b2:	e7e4      	b.n	801507e <RadioSetModem+0x26>
+        SUBGRF_SetPacketType( PACKET_TYPE_BPSK );
+ 80150b4:	2002      	movs	r0, #2
+ 80150b6:	f001 f921 	bl	80162fc <SUBGRF_SetPacketType>
+        SubgRf.PublicNetwork.Current = false;
+ 80150ba:	4b05      	ldr	r3, [pc, #20]	; (80150d0 <RadioSetModem+0x78>)
+ 80150bc:	2200      	movs	r2, #0
+ 80150be:	735a      	strb	r2, [r3, #13]
+        break;
+ 80150c0:	e7dd      	b.n	801507e <RadioSetModem+0x26>
+        SUBGRF_SetPacketType( PACKET_TYPE_GFSK );
+ 80150c2:	2000      	movs	r0, #0
+ 80150c4:	f001 f91a 	bl	80162fc <SUBGRF_SetPacketType>
+        SubgRf.PublicNetwork.Current = false;
+ 80150c8:	4b01      	ldr	r3, [pc, #4]	; (80150d0 <RadioSetModem+0x78>)
+ 80150ca:	2200      	movs	r2, #0
+ 80150cc:	735a      	strb	r2, [r3, #13]
+}
+ 80150ce:	e7d6      	b.n	801507e <RadioSetModem+0x26>
+ 80150d0:	20002750 	.word	0x20002750
+
+080150d4 <RadioSetTxGenericConfig>:
+{
+ 80150d4:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 80150d8:	b086      	sub	sp, #24
+ 80150da:	4605      	mov	r5, r0
+ 80150dc:	460c      	mov	r4, r1
+ 80150de:	4617      	mov	r7, r2
+ 80150e0:	461e      	mov	r6, r3
+    uint8_t syncword[8] = {0};
+ 80150e2:	2100      	movs	r1, #0
+ 80150e4:	9104      	str	r1, [sp, #16]
+ 80150e6:	9105      	str	r1, [sp, #20]
+    RFW_DeInit( ); /* switch Off FwPacketDecoding by default */
+ 80150e8:	f001 fc3f 	bl	801696a <RFW_DeInit>
+    switch( modem )
+ 80150ec:	2d03      	cmp	r5, #3
+ 80150ee:	f200 8156 	bhi.w	801539e <RadioSetTxGenericConfig+0x2ca>
+ 80150f2:	e8df f015 	tbh	[pc, r5, lsl #1]
+ 80150f6:	007a      	.short	0x007a
+ 80150f8:	014000dd 	.word	0x014000dd
+ 80150fc:	0004      	.short	0x0004
+        if( config->msk.SyncWordLength > 8 )
+ 80150fe:	7ca2      	ldrb	r2, [r4, #18]
+ 8015100:	2a08      	cmp	r2, #8
+ 8015102:	f200 8159 	bhi.w	80153b8 <RadioSetTxGenericConfig+0x2e4>
+            RADIO_MEMCPY8( syncword, config->msk.SyncWord, config->msk.SyncWordLength );
+ 8015106:	68a1      	ldr	r1, [r4, #8]
+ 8015108:	a804      	add	r0, sp, #16
+ 801510a:	f001 fe2b 	bl	8016d64 <UTIL_MEM_cpy_8>
+        if( ( config->msk.BitRate == 0 ) )
+ 801510e:	6823      	ldr	r3, [r4, #0]
+ 8015110:	2b00      	cmp	r3, #0
+ 8015112:	f000 8154 	beq.w	80153be <RadioSetTxGenericConfig+0x2ea>
+        else if( config->msk.BitRate <= 10000 )
+ 8015116:	f242 7210 	movw	r2, #10000	; 0x2710
+ 801511a:	4293      	cmp	r3, r2
+ 801511c:	d823      	bhi.n	8015166 <RadioSetTxGenericConfig+0x92>
+            SubgRf.PacketParams.PacketType = PACKET_TYPE_GMSK;
+ 801511e:	4bae      	ldr	r3, [pc, #696]	; (80153d8 <RadioSetTxGenericConfig+0x304>)
+ 8015120:	2203      	movs	r2, #3
+ 8015122:	739a      	strb	r2, [r3, #14]
+            SubgRf.ModulationParams.PacketType = PACKET_TYPE_GMSK;
+ 8015124:	f883 2038 	strb.w	r2, [r3, #56]	; 0x38
+            SubgRf.ModulationParams.Params.Gfsk.BitRate = config->msk.BitRate;
+ 8015128:	6822      	ldr	r2, [r4, #0]
+ 801512a:	63da      	str	r2, [r3, #60]	; 0x3c
+            SubgRf.ModulationParams.Params.Gfsk.ModulationShaping = ( RadioModShapings_t ) config->msk.ModulationShaping;
+ 801512c:	7ce2      	ldrb	r2, [r4, #19]
+ 801512e:	f883 2044 	strb.w	r2, [r3, #68]	; 0x44
+            radio_modem = MODEM_MSK;
+ 8015132:	2502      	movs	r5, #2
+        SubgRf.PacketParams.Params.Gfsk.PreambleLength = ( config->msk.PreambleLen ) << 3; // convert byte into bit
+ 8015134:	6863      	ldr	r3, [r4, #4]
+ 8015136:	00da      	lsls	r2, r3, #3
+ 8015138:	4ba7      	ldr	r3, [pc, #668]	; (80153d8 <RadioSetTxGenericConfig+0x304>)
+ 801513a:	821a      	strh	r2, [r3, #16]
+        SubgRf.PacketParams.Params.Gfsk.PreambleMinDetect = RADIO_PREAMBLE_DETECTOR_08_BITS; // don't care in tx
+ 801513c:	2204      	movs	r2, #4
+ 801513e:	749a      	strb	r2, [r3, #18]
+        SubgRf.PacketParams.Params.Gfsk.SyncWordLength = ( config->msk.SyncWordLength ) << 3; // convert byte into bit
+ 8015140:	7ca2      	ldrb	r2, [r4, #18]
+ 8015142:	00d2      	lsls	r2, r2, #3
+ 8015144:	74da      	strb	r2, [r3, #19]
+        SubgRf.PacketParams.Params.Gfsk.AddrComp = RADIO_ADDRESSCOMP_FILT_OFF; // don't care in tx
+ 8015146:	2200      	movs	r2, #0
+ 8015148:	751a      	strb	r2, [r3, #20]
+        if( ( config->msk.Whitening == RADIO_FSK_DC_IBM_WHITENING )
+ 801514a:	7da3      	ldrb	r3, [r4, #22]
+ 801514c:	2b02      	cmp	r3, #2
+ 801514e:	d018      	beq.n	8015182 <RadioSetTxGenericConfig+0xae>
+            || ( config->msk.HeaderType == RADIO_FSK_PACKET_2BYTES_LENGTH ) )
+ 8015150:	7d23      	ldrb	r3, [r4, #20]
+ 8015152:	2b02      	cmp	r3, #2
+ 8015154:	d015      	beq.n	8015182 <RadioSetTxGenericConfig+0xae>
+            SubgRf.PacketParams.Params.Gfsk.CrcLength = ( RadioCrcTypes_t ) config->msk.CrcLength;
+ 8015156:	7d62      	ldrb	r2, [r4, #21]
+ 8015158:	4b9f      	ldr	r3, [pc, #636]	; (80153d8 <RadioSetTxGenericConfig+0x304>)
+ 801515a:	75da      	strb	r2, [r3, #23]
+            SubgRf.PacketParams.Params.Gfsk.DcFree = ( RadioDcFree_t ) config->msk.Whitening;
+ 801515c:	7da2      	ldrb	r2, [r4, #22]
+ 801515e:	761a      	strb	r2, [r3, #24]
+            SubgRf.PacketParams.Params.Gfsk.HeaderType = ( RadioPacketLengthModes_t ) config->msk.HeaderType;
+ 8015160:	7d22      	ldrb	r2, [r4, #20]
+ 8015162:	755a      	strb	r2, [r3, #21]
+ 8015164:	e026      	b.n	80151b4 <RadioSetTxGenericConfig+0xe0>
+            SubgRf.PacketParams.PacketType = PACKET_TYPE_GFSK;
+ 8015166:	4b9c      	ldr	r3, [pc, #624]	; (80153d8 <RadioSetTxGenericConfig+0x304>)
+ 8015168:	2500      	movs	r5, #0
+ 801516a:	739d      	strb	r5, [r3, #14]
+            SubgRf.ModulationParams.PacketType = PACKET_TYPE_GFSK;
+ 801516c:	f883 5038 	strb.w	r5, [r3, #56]	; 0x38
+            SubgRf.ModulationParams.Params.Gfsk.BitRate = config->msk.BitRate;
+ 8015170:	6822      	ldr	r2, [r4, #0]
+ 8015172:	63da      	str	r2, [r3, #60]	; 0x3c
+            SubgRf.ModulationParams.Params.Gfsk.ModulationShaping = ( RadioModShapings_t ) config->msk.ModulationShaping;
+ 8015174:	7ce2      	ldrb	r2, [r4, #19]
+ 8015176:	f883 2044 	strb.w	r2, [r3, #68]	; 0x44
+            SubgRf.ModulationParams.Params.Gfsk.Fdev = config->msk.BitRate / 4;
+ 801517a:	6822      	ldr	r2, [r4, #0]
+ 801517c:	0892      	lsrs	r2, r2, #2
+ 801517e:	641a      	str	r2, [r3, #64]	; 0x40
+ 8015180:	e7d8      	b.n	8015134 <RadioSetTxGenericConfig+0x60>
+            if( ( config->msk.CrcLength != RADIO_FSK_CRC_2_BYTES_IBM ) && ( config->msk.CrcLength != RADIO_FSK_CRC_2_BYTES_CCIT )
+ 8015182:	7d62      	ldrb	r2, [r4, #21]
+ 8015184:	f102 030f 	add.w	r3, r2, #15
+ 8015188:	b2db      	uxtb	r3, r3
+ 801518a:	2b01      	cmp	r3, #1
+ 801518c:	d901      	bls.n	8015192 <RadioSetTxGenericConfig+0xbe>
+                && ( config->msk.CrcLength != RADIO_FSK_CRC_OFF ) )
+ 801518e:	2a01      	cmp	r2, #1
+ 8015190:	d128      	bne.n	80151e4 <RadioSetTxGenericConfig+0x110>
+            ConfigGeneric.TxConfig = config;
+ 8015192:	9401      	str	r4, [sp, #4]
+            ConfigGeneric.rtx = CONFIG_TX;
+ 8015194:	2301      	movs	r3, #1
+ 8015196:	f88d 300c 	strb.w	r3, [sp, #12]
+            if( 0UL != RFW_Init( &ConfigGeneric, RadioEvents, &TxTimeoutTimer ) )
+ 801519a:	4a90      	ldr	r2, [pc, #576]	; (80153dc <RadioSetTxGenericConfig+0x308>)
+ 801519c:	4b90      	ldr	r3, [pc, #576]	; (80153e0 <RadioSetTxGenericConfig+0x30c>)
+ 801519e:	6819      	ldr	r1, [r3, #0]
+ 80151a0:	a801      	add	r0, sp, #4
+ 80151a2:	f001 fbdf 	bl	8016964 <RFW_Init>
+ 80151a6:	b9e8      	cbnz	r0, 80151e4 <RadioSetTxGenericConfig+0x110>
+            SubgRf.PacketParams.Params.Gfsk.DcFree = ( RadioDcFree_t ) RADIO_FSK_DC_FREE_OFF;
+ 80151a8:	4b8b      	ldr	r3, [pc, #556]	; (80153d8 <RadioSetTxGenericConfig+0x304>)
+ 80151aa:	2200      	movs	r2, #0
+ 80151ac:	761a      	strb	r2, [r3, #24]
+            SubgRf.PacketParams.Params.Gfsk.CrcLength = ( RadioCrcTypes_t ) RADIO_CRC_OFF;
+ 80151ae:	2101      	movs	r1, #1
+ 80151b0:	75d9      	strb	r1, [r3, #23]
+            SubgRf.PacketParams.Params.Gfsk.HeaderType = ( RadioPacketLengthModes_t ) RADIO_PACKET_FIXED_LENGTH;
+ 80151b2:	755a      	strb	r2, [r3, #21]
+        RadioStandby( );
+ 80151b4:	f7ff fc22 	bl	80149fc <RadioStandby>
+        RadioSetModem( radio_modem );
+ 80151b8:	4628      	mov	r0, r5
+ 80151ba:	f7ff ff4d 	bl	8015058 <RadioSetModem>
+        SUBGRF_SetModulationParams( &SubgRf.ModulationParams );
+ 80151be:	4d86      	ldr	r5, [pc, #536]	; (80153d8 <RadioSetTxGenericConfig+0x304>)
+ 80151c0:	f105 0038 	add.w	r0, r5, #56	; 0x38
+ 80151c4:	f001 f942 	bl	801644c <SUBGRF_SetModulationParams>
+        SUBGRF_SetPacketParams( &SubgRf.PacketParams );
+ 80151c8:	f105 000e 	add.w	r0, r5, #14
+ 80151cc:	f001 f9c6 	bl	801655c <SUBGRF_SetPacketParams>
+        SUBGRF_SetSyncWord( syncword );
+ 80151d0:	a804      	add	r0, sp, #16
+ 80151d2:	f000 fdab 	bl	8015d2c <SUBGRF_SetSyncWord>
+        SUBGRF_SetWhiteningSeed( config->msk.whiteSeed );
+ 80151d6:	8a20      	ldrh	r0, [r4, #16]
+ 80151d8:	f000 fd7f 	bl	8015cda <SUBGRF_SetWhiteningSeed>
+        SUBGRF_SetCrcPolynomial( config->msk.CrcPolynomial );
+ 80151dc:	89a0      	ldrh	r0, [r4, #12]
+ 80151de:	f000 fdc2 	bl	8015d66 <SUBGRF_SetCrcPolynomial>
+        break;
+ 80151e2:	e0dc      	b.n	801539e <RadioSetTxGenericConfig+0x2ca>
+                return -1;
+ 80151e4:	f04f 30ff 	mov.w	r0, #4294967295
+ 80151e8:	e0e3      	b.n	80153b2 <RadioSetTxGenericConfig+0x2de>
+        if( config->fsk.BitRate == 0 )
+ 80151ea:	6823      	ldr	r3, [r4, #0]
+ 80151ec:	2b00      	cmp	r3, #0
+ 80151ee:	f000 80e9 	beq.w	80153c4 <RadioSetTxGenericConfig+0x2f0>
+        if( config->fsk.SyncWordLength > 8 )
+ 80151f2:	7ca2      	ldrb	r2, [r4, #18]
+ 80151f4:	2a08      	cmp	r2, #8
+ 80151f6:	f200 80e8 	bhi.w	80153ca <RadioSetTxGenericConfig+0x2f6>
+            RADIO_MEMCPY8( syncword, config->fsk.SyncWord, config->fsk.SyncWordLength );
+ 80151fa:	68a1      	ldr	r1, [r4, #8]
+ 80151fc:	a804      	add	r0, sp, #16
+ 80151fe:	f001 fdb1 	bl	8016d64 <UTIL_MEM_cpy_8>
+        SubgRf.ModulationParams.PacketType = PACKET_TYPE_GFSK;
+ 8015202:	4b75      	ldr	r3, [pc, #468]	; (80153d8 <RadioSetTxGenericConfig+0x304>)
+ 8015204:	2200      	movs	r2, #0
+ 8015206:	f883 2038 	strb.w	r2, [r3, #56]	; 0x38
+        SubgRf.ModulationParams.Params.Gfsk.BitRate = config->fsk.BitRate;
+ 801520a:	6821      	ldr	r1, [r4, #0]
+ 801520c:	63d9      	str	r1, [r3, #60]	; 0x3c
+        SubgRf.ModulationParams.Params.Gfsk.ModulationShaping = ( RadioModShapings_t ) config->fsk.ModulationShaping;
+ 801520e:	7ce1      	ldrb	r1, [r4, #19]
+ 8015210:	f883 1044 	strb.w	r1, [r3, #68]	; 0x44
+        SubgRf.ModulationParams.Params.Gfsk.Fdev = config->fsk.FrequencyDeviation;
+ 8015214:	69a1      	ldr	r1, [r4, #24]
+ 8015216:	6419      	str	r1, [r3, #64]	; 0x40
+        SubgRf.PacketParams.PacketType = PACKET_TYPE_GFSK;
+ 8015218:	739a      	strb	r2, [r3, #14]
+        SubgRf.PacketParams.Params.Gfsk.PreambleLength = ( config->fsk.PreambleLen ) << 3; // convert byte into bit
+ 801521a:	6861      	ldr	r1, [r4, #4]
+ 801521c:	00c9      	lsls	r1, r1, #3
+ 801521e:	8219      	strh	r1, [r3, #16]
+        SubgRf.PacketParams.Params.Gfsk.PreambleMinDetect = RADIO_PREAMBLE_DETECTOR_08_BITS; // don't care in tx
+ 8015220:	2104      	movs	r1, #4
+ 8015222:	7499      	strb	r1, [r3, #18]
+        SubgRf.PacketParams.Params.Gfsk.SyncWordLength = ( config->fsk.SyncWordLength ) << 3; // convert byte into bit
+ 8015224:	7ca1      	ldrb	r1, [r4, #18]
+ 8015226:	00c9      	lsls	r1, r1, #3
+ 8015228:	74d9      	strb	r1, [r3, #19]
+        SubgRf.PacketParams.Params.Gfsk.AddrComp = RADIO_ADDRESSCOMP_FILT_OFF; // don't care in tx
+ 801522a:	751a      	strb	r2, [r3, #20]
+        if( ( config->fsk.Whitening == RADIO_FSK_DC_IBM_WHITENING )
+ 801522c:	7da3      	ldrb	r3, [r4, #22]
+ 801522e:	2b02      	cmp	r3, #2
+ 8015230:	d00a      	beq.n	8015248 <RadioSetTxGenericConfig+0x174>
+            || ( config->fsk.HeaderType == RADIO_FSK_PACKET_2BYTES_LENGTH ) )
+ 8015232:	7d23      	ldrb	r3, [r4, #20]
+ 8015234:	2b02      	cmp	r3, #2
+ 8015236:	d007      	beq.n	8015248 <RadioSetTxGenericConfig+0x174>
+            SubgRf.PacketParams.Params.Gfsk.CrcLength = ( RadioCrcTypes_t ) config->fsk.CrcLength;
+ 8015238:	7d62      	ldrb	r2, [r4, #21]
+ 801523a:	4b67      	ldr	r3, [pc, #412]	; (80153d8 <RadioSetTxGenericConfig+0x304>)
+ 801523c:	75da      	strb	r2, [r3, #23]
+            SubgRf.PacketParams.Params.Gfsk.DcFree = ( RadioDcFree_t ) config->fsk.Whitening;
+ 801523e:	7da2      	ldrb	r2, [r4, #22]
+ 8015240:	761a      	strb	r2, [r3, #24]
+            SubgRf.PacketParams.Params.Gfsk.HeaderType = ( RadioPacketLengthModes_t ) config->fsk.HeaderType;
+ 8015242:	7d22      	ldrb	r2, [r4, #20]
+ 8015244:	755a      	strb	r2, [r3, #21]
+ 8015246:	e018      	b.n	801527a <RadioSetTxGenericConfig+0x1a6>
+            if( ( config->fsk.CrcLength != RADIO_FSK_CRC_2_BYTES_IBM ) && ( config->fsk.CrcLength != RADIO_FSK_CRC_2_BYTES_CCIT )
+ 8015248:	7d62      	ldrb	r2, [r4, #21]
+ 801524a:	f102 030f 	add.w	r3, r2, #15
+ 801524e:	b2db      	uxtb	r3, r3
+ 8015250:	2b01      	cmp	r3, #1
+ 8015252:	d901      	bls.n	8015258 <RadioSetTxGenericConfig+0x184>
+                && ( config->fsk.CrcLength != RADIO_FSK_CRC_OFF ) )
+ 8015254:	2a01      	cmp	r2, #1
+ 8015256:	d128      	bne.n	80152aa <RadioSetTxGenericConfig+0x1d6>
+            ConfigGeneric.rtx = CONFIG_TX;
+ 8015258:	2301      	movs	r3, #1
+ 801525a:	f88d 300c 	strb.w	r3, [sp, #12]
+            ConfigGeneric.TxConfig = config;
+ 801525e:	9401      	str	r4, [sp, #4]
+            if( 0UL != RFW_Init( &ConfigGeneric, RadioEvents, &TxTimeoutTimer ) )
+ 8015260:	4a5e      	ldr	r2, [pc, #376]	; (80153dc <RadioSetTxGenericConfig+0x308>)
+ 8015262:	4b5f      	ldr	r3, [pc, #380]	; (80153e0 <RadioSetTxGenericConfig+0x30c>)
+ 8015264:	6819      	ldr	r1, [r3, #0]
+ 8015266:	a801      	add	r0, sp, #4
+ 8015268:	f001 fb7c 	bl	8016964 <RFW_Init>
+ 801526c:	b9e8      	cbnz	r0, 80152aa <RadioSetTxGenericConfig+0x1d6>
+            SubgRf.PacketParams.Params.Gfsk.DcFree = ( RadioDcFree_t ) RADIO_FSK_DC_FREE_OFF;
+ 801526e:	4b5a      	ldr	r3, [pc, #360]	; (80153d8 <RadioSetTxGenericConfig+0x304>)
+ 8015270:	2200      	movs	r2, #0
+ 8015272:	761a      	strb	r2, [r3, #24]
+            SubgRf.PacketParams.Params.Gfsk.CrcLength = ( RadioCrcTypes_t ) RADIO_CRC_OFF;
+ 8015274:	2101      	movs	r1, #1
+ 8015276:	75d9      	strb	r1, [r3, #23]
+            SubgRf.PacketParams.Params.Gfsk.HeaderType = ( RadioPacketLengthModes_t ) RADIO_PACKET_FIXED_LENGTH;
+ 8015278:	755a      	strb	r2, [r3, #21]
+        RadioStandby( );
+ 801527a:	f7ff fbbf 	bl	80149fc <RadioStandby>
+        RadioSetModem( MODEM_FSK );
+ 801527e:	2000      	movs	r0, #0
+ 8015280:	f7ff feea 	bl	8015058 <RadioSetModem>
+        SUBGRF_SetModulationParams( &SubgRf.ModulationParams );
+ 8015284:	4d54      	ldr	r5, [pc, #336]	; (80153d8 <RadioSetTxGenericConfig+0x304>)
+ 8015286:	f105 0038 	add.w	r0, r5, #56	; 0x38
+ 801528a:	f001 f8df 	bl	801644c <SUBGRF_SetModulationParams>
+        SUBGRF_SetPacketParams( &SubgRf.PacketParams );
+ 801528e:	f105 000e 	add.w	r0, r5, #14
+ 8015292:	f001 f963 	bl	801655c <SUBGRF_SetPacketParams>
+        SUBGRF_SetSyncWord( syncword );
+ 8015296:	a804      	add	r0, sp, #16
+ 8015298:	f000 fd48 	bl	8015d2c <SUBGRF_SetSyncWord>
+        SUBGRF_SetWhiteningSeed( config->fsk.whiteSeed );
+ 801529c:	8a20      	ldrh	r0, [r4, #16]
+ 801529e:	f000 fd1c 	bl	8015cda <SUBGRF_SetWhiteningSeed>
+        SUBGRF_SetCrcPolynomial( config->fsk.CrcPolynomial );
+ 80152a2:	89a0      	ldrh	r0, [r4, #12]
+ 80152a4:	f000 fd5f 	bl	8015d66 <SUBGRF_SetCrcPolynomial>
+        break;
+ 80152a8:	e079      	b.n	801539e <RadioSetTxGenericConfig+0x2ca>
+                return -1;
+ 80152aa:	f04f 30ff 	mov.w	r0, #4294967295
+ 80152ae:	e080      	b.n	80153b2 <RadioSetTxGenericConfig+0x2de>
+        SubgRf.ModulationParams.PacketType = PACKET_TYPE_LORA;
+ 80152b0:	4b49      	ldr	r3, [pc, #292]	; (80153d8 <RadioSetTxGenericConfig+0x304>)
+ 80152b2:	2201      	movs	r2, #1
+ 80152b4:	f883 2038 	strb.w	r2, [r3, #56]	; 0x38
+        SubgRf.ModulationParams.Params.LoRa.SpreadingFactor = ( RadioLoRaSpreadingFactors_t ) config->lora.SpreadingFactor;
+ 80152b8:	7822      	ldrb	r2, [r4, #0]
+ 80152ba:	f883 2050 	strb.w	r2, [r3, #80]	; 0x50
+        SubgRf.ModulationParams.Params.LoRa.Bandwidth = ( RadioLoRaBandwidths_t ) config->lora.Bandwidth;
+ 80152be:	7862      	ldrb	r2, [r4, #1]
+ 80152c0:	f883 2051 	strb.w	r2, [r3, #81]	; 0x51
+        SubgRf.ModulationParams.Params.LoRa.CodingRate = ( RadioLoRaCodingRates_t ) config->lora.Coderate;
+ 80152c4:	78a2      	ldrb	r2, [r4, #2]
+ 80152c6:	f883 2052 	strb.w	r2, [r3, #82]	; 0x52
+        switch( config->lora.LowDatarateOptimize )
+ 80152ca:	78e3      	ldrb	r3, [r4, #3]
+ 80152cc:	2b01      	cmp	r3, #1
+ 80152ce:	d033      	beq.n	8015338 <RadioSetTxGenericConfig+0x264>
+ 80152d0:	2b02      	cmp	r3, #2
+ 80152d2:	d036      	beq.n	8015342 <RadioSetTxGenericConfig+0x26e>
+ 80152d4:	b35b      	cbz	r3, 801532e <RadioSetTxGenericConfig+0x25a>
+        SubgRf.PacketParams.PacketType = PACKET_TYPE_LORA;
+ 80152d6:	4d40      	ldr	r5, [pc, #256]	; (80153d8 <RadioSetTxGenericConfig+0x304>)
+ 80152d8:	f04f 0801 	mov.w	r8, #1
+ 80152dc:	f885 800e 	strb.w	r8, [r5, #14]
+        SubgRf.PacketParams.Params.LoRa.PreambleLength = config->lora.PreambleLen;
+ 80152e0:	88a3      	ldrh	r3, [r4, #4]
+ 80152e2:	83ab      	strh	r3, [r5, #28]
+        SubgRf.PacketParams.Params.LoRa.HeaderType = ( RadioLoRaPacketLengthsMode_t ) config->lora.LengthMode;
+ 80152e4:	79a3      	ldrb	r3, [r4, #6]
+ 80152e6:	77ab      	strb	r3, [r5, #30]
+        SubgRf.PacketParams.Params.LoRa.CrcMode = ( RadioLoRaCrcModes_t ) config->lora.CrcMode;
+ 80152e8:	79e3      	ldrb	r3, [r4, #7]
+ 80152ea:	f885 3020 	strb.w	r3, [r5, #32]
+        SubgRf.PacketParams.Params.LoRa.InvertIQ = ( RadioLoRaIQModes_t ) config->lora.IqInverted;
+ 80152ee:	7a23      	ldrb	r3, [r4, #8]
+ 80152f0:	f885 3021 	strb.w	r3, [r5, #33]	; 0x21
+        RadioStandby( );
+ 80152f4:	f7ff fb82 	bl	80149fc <RadioStandby>
+        RadioSetModem( MODEM_LORA );
+ 80152f8:	4640      	mov	r0, r8
+ 80152fa:	f7ff fead 	bl	8015058 <RadioSetModem>
+        SUBGRF_SetModulationParams( &SubgRf.ModulationParams );
+ 80152fe:	f105 0038 	add.w	r0, r5, #56	; 0x38
+ 8015302:	f001 f8a3 	bl	801644c <SUBGRF_SetModulationParams>
+        SUBGRF_SetPacketParams( &SubgRf.PacketParams );
+ 8015306:	f105 000e 	add.w	r0, r5, #14
+ 801530a:	f001 f927 	bl	801655c <SUBGRF_SetPacketParams>
+        if( SubgRf.ModulationParams.Params.LoRa.Bandwidth == LORA_BW_500 )
+ 801530e:	f895 3051 	ldrb.w	r3, [r5, #81]	; 0x51
+ 8015312:	2b06      	cmp	r3, #6
+ 8015314:	d024      	beq.n	8015360 <RadioSetTxGenericConfig+0x28c>
+            SUBGRF_WriteRegister( SUBGHZ_SDCFG0R, SUBGRF_ReadRegister( SUBGHZ_SDCFG0R ) | ( 1 << 2 ) );
+ 8015316:	f640 0089 	movw	r0, #2185	; 0x889
+ 801531a:	f000 fcbb 	bl	8015c94 <SUBGRF_ReadRegister>
+ 801531e:	f040 0104 	orr.w	r1, r0, #4
+ 8015322:	b2c9      	uxtb	r1, r1
+ 8015324:	f640 0089 	movw	r0, #2185	; 0x889
+ 8015328:	f000 fca4 	bl	8015c74 <SUBGRF_WriteRegister>
+ 801532c:	e037      	b.n	801539e <RadioSetTxGenericConfig+0x2ca>
+            SubgRf.ModulationParams.Params.LoRa.LowDatarateOptimize = 0;
+ 801532e:	4b2a      	ldr	r3, [pc, #168]	; (80153d8 <RadioSetTxGenericConfig+0x304>)
+ 8015330:	2200      	movs	r2, #0
+ 8015332:	f883 2053 	strb.w	r2, [r3, #83]	; 0x53
+            break;
+ 8015336:	e7ce      	b.n	80152d6 <RadioSetTxGenericConfig+0x202>
+            SubgRf.ModulationParams.Params.LoRa.LowDatarateOptimize = 1;
+ 8015338:	4b27      	ldr	r3, [pc, #156]	; (80153d8 <RadioSetTxGenericConfig+0x304>)
+ 801533a:	2201      	movs	r2, #1
+ 801533c:	f883 2053 	strb.w	r2, [r3, #83]	; 0x53
+            break;
+ 8015340:	e7c9      	b.n	80152d6 <RadioSetTxGenericConfig+0x202>
+            if( ( config->lora.SpreadingFactor == RADIO_LORA_SF11 ) || ( config->lora.SpreadingFactor == RADIO_LORA_SF12 ) )
+ 8015342:	7823      	ldrb	r3, [r4, #0]
+ 8015344:	3b0b      	subs	r3, #11
+ 8015346:	b2db      	uxtb	r3, r3
+ 8015348:	2b01      	cmp	r3, #1
+ 801534a:	d904      	bls.n	8015356 <RadioSetTxGenericConfig+0x282>
+                SubgRf.ModulationParams.Params.LoRa.LowDatarateOptimize = 0;
+ 801534c:	4b22      	ldr	r3, [pc, #136]	; (80153d8 <RadioSetTxGenericConfig+0x304>)
+ 801534e:	2200      	movs	r2, #0
+ 8015350:	f883 2053 	strb.w	r2, [r3, #83]	; 0x53
+ 8015354:	e7bf      	b.n	80152d6 <RadioSetTxGenericConfig+0x202>
+                SubgRf.ModulationParams.Params.LoRa.LowDatarateOptimize = 1;
+ 8015356:	4b20      	ldr	r3, [pc, #128]	; (80153d8 <RadioSetTxGenericConfig+0x304>)
+ 8015358:	2201      	movs	r2, #1
+ 801535a:	f883 2053 	strb.w	r2, [r3, #83]	; 0x53
+ 801535e:	e7ba      	b.n	80152d6 <RadioSetTxGenericConfig+0x202>
+            SUBGRF_WriteRegister( SUBGHZ_SDCFG0R, SUBGRF_ReadRegister( SUBGHZ_SDCFG0R ) & ~( 1 << 2 ) );
+ 8015360:	f640 0089 	movw	r0, #2185	; 0x889
+ 8015364:	f000 fc96 	bl	8015c94 <SUBGRF_ReadRegister>
+ 8015368:	f000 01fb 	and.w	r1, r0, #251	; 0xfb
+ 801536c:	f640 0089 	movw	r0, #2185	; 0x889
+ 8015370:	f000 fc80 	bl	8015c74 <SUBGRF_WriteRegister>
+ 8015374:	e013      	b.n	801539e <RadioSetTxGenericConfig+0x2ca>
+        if( ( config->bpsk.BitRate == 0 ) || ( config->bpsk.BitRate > 1000 ) )
+ 8015376:	6823      	ldr	r3, [r4, #0]
+ 8015378:	3b01      	subs	r3, #1
+ 801537a:	f5b3 7f7a 	cmp.w	r3, #1000	; 0x3e8
+ 801537e:	d227      	bcs.n	80153d0 <RadioSetTxGenericConfig+0x2fc>
+        RadioSetModem( MODEM_BPSK );
+ 8015380:	2003      	movs	r0, #3
+ 8015382:	f7ff fe69 	bl	8015058 <RadioSetModem>
+        SubgRf.ModulationParams.PacketType = PACKET_TYPE_BPSK;
+ 8015386:	4814      	ldr	r0, [pc, #80]	; (80153d8 <RadioSetTxGenericConfig+0x304>)
+ 8015388:	2302      	movs	r3, #2
+ 801538a:	f880 3038 	strb.w	r3, [r0, #56]	; 0x38
+        SubgRf.ModulationParams.Params.Bpsk.BitRate = config->bpsk.BitRate;
+ 801538e:	6823      	ldr	r3, [r4, #0]
+ 8015390:	6483      	str	r3, [r0, #72]	; 0x48
+        SubgRf.ModulationParams.Params.Bpsk.ModulationShaping = MOD_SHAPING_DBPSK;
+ 8015392:	2316      	movs	r3, #22
+ 8015394:	f880 304c 	strb.w	r3, [r0, #76]	; 0x4c
+        SUBGRF_SetModulationParams( &SubgRf.ModulationParams );
+ 8015398:	3038      	adds	r0, #56	; 0x38
+ 801539a:	f001 f857 	bl	801644c <SUBGRF_SetModulationParams>
+    SubgRf.AntSwitchPaSelect = SUBGRF_SetRfTxPower( power );
+ 801539e:	4638      	mov	r0, r7
+ 80153a0:	f001 fa06 	bl	80167b0 <SUBGRF_SetRfTxPower>
+ 80153a4:	4c0c      	ldr	r4, [pc, #48]	; (80153d8 <RadioSetTxGenericConfig+0x304>)
+ 80153a6:	f884 0056 	strb.w	r0, [r4, #86]	; 0x56
+    RFW_SetAntSwitch( SubgRf.AntSwitchPaSelect );
+ 80153aa:	f001 fae3 	bl	8016974 <RFW_SetAntSwitch>
+    SubgRf.TxTimeout = timeout;
+ 80153ae:	6066      	str	r6, [r4, #4]
+    return 0;
+ 80153b0:	2000      	movs	r0, #0
+}
+ 80153b2:	b006      	add	sp, #24
+ 80153b4:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+            return -1;
+ 80153b8:	f04f 30ff 	mov.w	r0, #4294967295
+ 80153bc:	e7f9      	b.n	80153b2 <RadioSetTxGenericConfig+0x2de>
+            return -1;
+ 80153be:	f04f 30ff 	mov.w	r0, #4294967295
+ 80153c2:	e7f6      	b.n	80153b2 <RadioSetTxGenericConfig+0x2de>
+            return -1;
+ 80153c4:	f04f 30ff 	mov.w	r0, #4294967295
+ 80153c8:	e7f3      	b.n	80153b2 <RadioSetTxGenericConfig+0x2de>
+            return -1;
+ 80153ca:	f04f 30ff 	mov.w	r0, #4294967295
+ 80153ce:	e7f0      	b.n	80153b2 <RadioSetTxGenericConfig+0x2de>
+            return -1;
+ 80153d0:	f04f 30ff 	mov.w	r0, #4294967295
+ 80153d4:	e7ed      	b.n	80153b2 <RadioSetTxGenericConfig+0x2de>
+ 80153d6:	bf00      	nop
+ 80153d8:	20002750 	.word	0x20002750
+ 80153dc:	200027ac 	.word	0x200027ac
+ 80153e0:	20002734 	.word	0x20002734
+
+080153e4 <RadioSetRxGenericConfig>:
+{
+ 80153e4:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 80153e8:	b086      	sub	sp, #24
+ 80153ea:	4606      	mov	r6, r0
+ 80153ec:	460c      	mov	r4, r1
+ 80153ee:	4615      	mov	r5, r2
+ 80153f0:	461f      	mov	r7, r3
+    uint8_t syncword[8] = {0};
+ 80153f2:	2300      	movs	r3, #0
+ 80153f4:	9304      	str	r3, [sp, #16]
+ 80153f6:	9305      	str	r3, [sp, #20]
+    RFW_DeInit( ); /* switch Off FwPacketDecoding by default */
+ 80153f8:	f001 fab7 	bl	801696a <RFW_DeInit>
+    if( rxContinuous != 0 )
+ 80153fc:	b105      	cbz	r5, 8015400 <RadioSetRxGenericConfig+0x1c>
+        symbTimeout = 0;
+ 80153fe:	2700      	movs	r7, #0
+    SubgRf.RxContinuous = ( rxContinuous == 0 ) ? false : true;
+ 8015400:	3d00      	subs	r5, #0
+ 8015402:	bf18      	it	ne
+ 8015404:	2501      	movne	r5, #1
+ 8015406:	4b93      	ldr	r3, [pc, #588]	; (8015654 <RadioSetRxGenericConfig+0x270>)
+ 8015408:	705d      	strb	r5, [r3, #1]
+    switch( modem )
+ 801540a:	b136      	cbz	r6, 801541a <RadioSetRxGenericConfig+0x36>
+ 801540c:	2e01      	cmp	r6, #1
+ 801540e:	f000 808f 	beq.w	8015530 <RadioSetRxGenericConfig+0x14c>
+ 8015412:	2000      	movs	r0, #0
+}
+ 8015414:	b006      	add	sp, #24
+ 8015416:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+        if( ( config->fsk.BitRate == 0 ) || ( config->fsk.PreambleLen == 0 ) )
+ 801541a:	68a3      	ldr	r3, [r4, #8]
+ 801541c:	2b00      	cmp	r3, #0
+ 801541e:	f000 810d 	beq.w	801563c <RadioSetRxGenericConfig+0x258>
+ 8015422:	68e3      	ldr	r3, [r4, #12]
+ 8015424:	2b00      	cmp	r3, #0
+ 8015426:	f000 810c 	beq.w	8015642 <RadioSetRxGenericConfig+0x25e>
+        if( config->fsk.SyncWordLength > 8 )
+ 801542a:	7fa2      	ldrb	r2, [r4, #30]
+ 801542c:	2a08      	cmp	r2, #8
+ 801542e:	f200 810b 	bhi.w	8015648 <RadioSetRxGenericConfig+0x264>
+            RADIO_MEMCPY8( syncword, config->fsk.SyncWord, config->fsk.SyncWordLength );
+ 8015432:	6921      	ldr	r1, [r4, #16]
+ 8015434:	a804      	add	r0, sp, #16
+ 8015436:	f001 fc95 	bl	8016d64 <UTIL_MEM_cpy_8>
+        SUBGRF_SetStopRxTimerOnPreambleDetect( ( config->fsk.StopTimerOnPreambleDetect == 0 ) ? false : true );
+ 801543a:	6820      	ldr	r0, [r4, #0]
+ 801543c:	3800      	subs	r0, #0
+ 801543e:	bf18      	it	ne
+ 8015440:	2001      	movne	r0, #1
+ 8015442:	f000 fdf5 	bl	8016030 <SUBGRF_SetStopRxTimerOnPreambleDetect>
+        SubgRf.ModulationParams.PacketType = PACKET_TYPE_GFSK;
+ 8015446:	4d83      	ldr	r5, [pc, #524]	; (8015654 <RadioSetRxGenericConfig+0x270>)
+ 8015448:	2600      	movs	r6, #0
+ 801544a:	f885 6038 	strb.w	r6, [r5, #56]	; 0x38
+        SubgRf.ModulationParams.Params.Gfsk.BitRate = config->fsk.BitRate;
+ 801544e:	68a3      	ldr	r3, [r4, #8]
+ 8015450:	63eb      	str	r3, [r5, #60]	; 0x3c
+        SubgRf.ModulationParams.Params.Gfsk.ModulationShaping = ( RadioModShapings_t ) config->fsk.ModulationShaping;
+ 8015452:	f894 3020 	ldrb.w	r3, [r4, #32]
+ 8015456:	f885 3044 	strb.w	r3, [r5, #68]	; 0x44
+        SubgRf.ModulationParams.Params.Gfsk.Bandwidth = SUBGRF_GetFskBandwidthRegValue( config->fsk.Bandwidth );
+ 801545a:	6860      	ldr	r0, [r4, #4]
+ 801545c:	f001 fa20 	bl	80168a0 <SUBGRF_GetFskBandwidthRegValue>
+ 8015460:	f885 0045 	strb.w	r0, [r5, #69]	; 0x45
+        SubgRf.PacketParams.PacketType = PACKET_TYPE_GFSK;
+ 8015464:	73ae      	strb	r6, [r5, #14]
+        SubgRf.PacketParams.Params.Gfsk.PreambleLength = ( config->fsk.PreambleLen ) << 3 ; // convert byte into bit
+ 8015466:	68e3      	ldr	r3, [r4, #12]
+ 8015468:	00db      	lsls	r3, r3, #3
+ 801546a:	822b      	strh	r3, [r5, #16]
+        SubgRf.PacketParams.Params.Gfsk.PreambleMinDetect = ( RadioPreambleDetection_t ) config->fsk.PreambleMinDetect;
+ 801546c:	7fe3      	ldrb	r3, [r4, #31]
+ 801546e:	74ab      	strb	r3, [r5, #18]
+        SubgRf.PacketParams.Params.Gfsk.SyncWordLength = ( config->fsk.SyncWordLength ) << 3; // convert byte into bit
+ 8015470:	7fa3      	ldrb	r3, [r4, #30]
+ 8015472:	00db      	lsls	r3, r3, #3
+ 8015474:	74eb      	strb	r3, [r5, #19]
+        SubgRf.PacketParams.Params.Gfsk.AddrComp = ( RadioAddressComp_t ) config->fsk.AddrComp;
+ 8015476:	f894 3021 	ldrb.w	r3, [r4, #33]	; 0x21
+ 801547a:	752b      	strb	r3, [r5, #20]
+        if( config->fsk.LengthMode == RADIO_FSK_PACKET_FIXED_LENGTH )
+ 801547c:	f894 3022 	ldrb.w	r3, [r4, #34]	; 0x22
+ 8015480:	b973      	cbnz	r3, 80154a0 <RadioSetRxGenericConfig+0xbc>
+            SubgRf.PacketParams.Params.Gfsk.PayloadLength = config->fsk.MaxPayloadLength;
+ 8015482:	6961      	ldr	r1, [r4, #20]
+ 8015484:	75a9      	strb	r1, [r5, #22]
+        if( ( config->fsk.Whitening == RADIO_FSK_DC_IBM_WHITENING )
+ 8015486:	f894 2024 	ldrb.w	r2, [r4, #36]	; 0x24
+ 801548a:	2a02      	cmp	r2, #2
+ 801548c:	d012      	beq.n	80154b4 <RadioSetRxGenericConfig+0xd0>
+            || ( config->fsk.LengthMode == RADIO_FSK_PACKET_2BYTES_LENGTH ) )
+ 801548e:	2b02      	cmp	r3, #2
+ 8015490:	d010      	beq.n	80154b4 <RadioSetRxGenericConfig+0xd0>
+            SubgRf.PacketParams.Params.Gfsk.CrcLength = ( RadioCrcTypes_t ) config->fsk.CrcLength;
+ 8015492:	f894 0023 	ldrb.w	r0, [r4, #35]	; 0x23
+ 8015496:	496f      	ldr	r1, [pc, #444]	; (8015654 <RadioSetRxGenericConfig+0x270>)
+ 8015498:	75c8      	strb	r0, [r1, #23]
+            SubgRf.PacketParams.Params.Gfsk.DcFree = ( RadioDcFree_t ) config->fsk.Whitening;
+ 801549a:	760a      	strb	r2, [r1, #24]
+            SubgRf.PacketParams.Params.Gfsk.HeaderType = ( RadioPacketLengthModes_t ) config->fsk.LengthMode;
+ 801549c:	754b      	strb	r3, [r1, #21]
+ 801549e:	e023      	b.n	80154e8 <RadioSetRxGenericConfig+0x104>
+        else if( config->fsk.LengthMode == RADIO_FSK_PACKET_2BYTES_LENGTH )
+ 80154a0:	2b02      	cmp	r3, #2
+ 80154a2:	d003      	beq.n	80154ac <RadioSetRxGenericConfig+0xc8>
+            SubgRf.PacketParams.Params.Gfsk.PayloadLength = 0xFF;
+ 80154a4:	4a6b      	ldr	r2, [pc, #428]	; (8015654 <RadioSetRxGenericConfig+0x270>)
+ 80154a6:	21ff      	movs	r1, #255	; 0xff
+ 80154a8:	7591      	strb	r1, [r2, #22]
+ 80154aa:	e7ec      	b.n	8015486 <RadioSetRxGenericConfig+0xa2>
+            SubgRf.PacketParams.Params.Gfsk.PayloadLength = 0xFF;
+ 80154ac:	4a69      	ldr	r2, [pc, #420]	; (8015654 <RadioSetRxGenericConfig+0x270>)
+ 80154ae:	21ff      	movs	r1, #255	; 0xff
+ 80154b0:	7591      	strb	r1, [r2, #22]
+ 80154b2:	e7e8      	b.n	8015486 <RadioSetRxGenericConfig+0xa2>
+            if( ( config->fsk.CrcLength != RADIO_FSK_CRC_2_BYTES_IBM ) && ( config->fsk.CrcLength != RADIO_FSK_CRC_2_BYTES_CCIT )
+ 80154b4:	f894 2023 	ldrb.w	r2, [r4, #35]	; 0x23
+ 80154b8:	f102 030f 	add.w	r3, r2, #15
+ 80154bc:	b2db      	uxtb	r3, r3
+ 80154be:	2b01      	cmp	r3, #1
+ 80154c0:	d901      	bls.n	80154c6 <RadioSetRxGenericConfig+0xe2>
+                && ( config->fsk.CrcLength != RADIO_FSK_CRC_OFF ) )
+ 80154c2:	2a01      	cmp	r2, #1
+ 80154c4:	d131      	bne.n	801552a <RadioSetRxGenericConfig+0x146>
+            ConfigGeneric.rtx = CONFIG_RX;
+ 80154c6:	2300      	movs	r3, #0
+ 80154c8:	f88d 300c 	strb.w	r3, [sp, #12]
+            ConfigGeneric.RxConfig = config;
+ 80154cc:	9402      	str	r4, [sp, #8]
+            if( 0UL != RFW_Init( &ConfigGeneric, RadioEvents, &RxTimeoutTimer ) )
+ 80154ce:	4a62      	ldr	r2, [pc, #392]	; (8015658 <RadioSetRxGenericConfig+0x274>)
+ 80154d0:	4b62      	ldr	r3, [pc, #392]	; (801565c <RadioSetRxGenericConfig+0x278>)
+ 80154d2:	6819      	ldr	r1, [r3, #0]
+ 80154d4:	a801      	add	r0, sp, #4
+ 80154d6:	f001 fa45 	bl	8016964 <RFW_Init>
+ 80154da:	bb30      	cbnz	r0, 801552a <RadioSetRxGenericConfig+0x146>
+            SubgRf.PacketParams.Params.Gfsk.DcFree = ( RadioDcFree_t ) RADIO_FSK_DC_FREE_OFF;
+ 80154dc:	4b5d      	ldr	r3, [pc, #372]	; (8015654 <RadioSetRxGenericConfig+0x270>)
+ 80154de:	2200      	movs	r2, #0
+ 80154e0:	761a      	strb	r2, [r3, #24]
+            SubgRf.PacketParams.Params.Gfsk.CrcLength = ( RadioCrcTypes_t ) RADIO_CRC_OFF;
+ 80154e2:	2101      	movs	r1, #1
+ 80154e4:	75d9      	strb	r1, [r3, #23]
+            SubgRf.PacketParams.Params.Gfsk.HeaderType = ( RadioPacketLengthModes_t ) RADIO_PACKET_FIXED_LENGTH;
+ 80154e6:	755a      	strb	r2, [r3, #21]
+        RadioStandby( );
+ 80154e8:	f7ff fa88 	bl	80149fc <RadioStandby>
+        RadioSetModem( MODEM_FSK );
+ 80154ec:	2000      	movs	r0, #0
+ 80154ee:	f7ff fdb3 	bl	8015058 <RadioSetModem>
+        SUBGRF_SetModulationParams( &SubgRf.ModulationParams );
+ 80154f2:	4d58      	ldr	r5, [pc, #352]	; (8015654 <RadioSetRxGenericConfig+0x270>)
+ 80154f4:	f105 0038 	add.w	r0, r5, #56	; 0x38
+ 80154f8:	f000 ffa8 	bl	801644c <SUBGRF_SetModulationParams>
+        SUBGRF_SetPacketParams( &SubgRf.PacketParams );
+ 80154fc:	f105 000e 	add.w	r0, r5, #14
+ 8015500:	f001 f82c 	bl	801655c <SUBGRF_SetPacketParams>
+        SUBGRF_SetSyncWord( syncword );
+ 8015504:	a804      	add	r0, sp, #16
+ 8015506:	f000 fc11 	bl	8015d2c <SUBGRF_SetSyncWord>
+        SUBGRF_SetWhiteningSeed( config->fsk.whiteSeed );
+ 801550a:	8ba0      	ldrh	r0, [r4, #28]
+ 801550c:	f000 fbe5 	bl	8015cda <SUBGRF_SetWhiteningSeed>
+        SUBGRF_SetCrcPolynomial( config->fsk.CrcPolynomial );
+ 8015510:	8b20      	ldrh	r0, [r4, #24]
+ 8015512:	f000 fc28 	bl	8015d66 <SUBGRF_SetCrcPolynomial>
+        SubgRf.RxTimeout = ( uint32_t )( ( symbTimeout * 1000 * 8 ) / config->fsk.BitRate );
+ 8015516:	f44f 53fa 	mov.w	r3, #8000	; 0x1f40
+ 801551a:	fb07 f303 	mul.w	r3, r7, r3
+ 801551e:	68a2      	ldr	r2, [r4, #8]
+ 8015520:	fbb3 f3f2 	udiv	r3, r3, r2
+ 8015524:	60ab      	str	r3, [r5, #8]
+    return status;
+ 8015526:	2000      	movs	r0, #0
+        break;
+ 8015528:	e774      	b.n	8015414 <RadioSetRxGenericConfig+0x30>
+                return -1;
+ 801552a:	f04f 30ff 	mov.w	r0, #4294967295
+ 801552e:	e771      	b.n	8015414 <RadioSetRxGenericConfig+0x30>
+        if( config->lora.PreambleLen == 0 )
+ 8015530:	8e23      	ldrh	r3, [r4, #48]	; 0x30
+ 8015532:	2b00      	cmp	r3, #0
+ 8015534:	f000 808b 	beq.w	801564e <RadioSetRxGenericConfig+0x26a>
+        if( config->lora.LengthMode == RADIO_LORA_PACKET_FIXED_LENGTH )
+ 8015538:	f894 3032 	ldrb.w	r3, [r4, #50]	; 0x32
+ 801553c:	2b01      	cmp	r3, #1
+ 801553e:	d055      	beq.n	80155ec <RadioSetRxGenericConfig+0x208>
+            MaxPayloadLength = 0xFF;
+ 8015540:	f04f 08ff 	mov.w	r8, #255	; 0xff
+        SUBGRF_SetStopRxTimerOnPreambleDetect( ( config->lora.StopTimerOnPreambleDetect == 0 ) ? false : true );
+ 8015544:	6aa0      	ldr	r0, [r4, #40]	; 0x28
+ 8015546:	3800      	subs	r0, #0
+ 8015548:	bf18      	it	ne
+ 801554a:	2001      	movne	r0, #1
+ 801554c:	f000 fd70 	bl	8016030 <SUBGRF_SetStopRxTimerOnPreambleDetect>
+        SUBGRF_SetLoRaSymbNumTimeout( symbTimeout );
+ 8015550:	b2f8      	uxtb	r0, r7
+ 8015552:	f000 fd7a 	bl	801604a <SUBGRF_SetLoRaSymbNumTimeout>
+        SubgRf.ModulationParams.PacketType = PACKET_TYPE_LORA;
+ 8015556:	4b3f      	ldr	r3, [pc, #252]	; (8015654 <RadioSetRxGenericConfig+0x270>)
+ 8015558:	2201      	movs	r2, #1
+ 801555a:	f883 2038 	strb.w	r2, [r3, #56]	; 0x38
+        SubgRf.ModulationParams.Params.LoRa.SpreadingFactor = ( RadioLoRaSpreadingFactors_t ) config->lora.SpreadingFactor;
+ 801555e:	f894 202c 	ldrb.w	r2, [r4, #44]	; 0x2c
+ 8015562:	f883 2050 	strb.w	r2, [r3, #80]	; 0x50
+        SubgRf.ModulationParams.Params.LoRa.Bandwidth = ( RadioLoRaBandwidths_t ) config->lora.Bandwidth;
+ 8015566:	f894 202d 	ldrb.w	r2, [r4, #45]	; 0x2d
+ 801556a:	f883 2051 	strb.w	r2, [r3, #81]	; 0x51
+        SubgRf.ModulationParams.Params.LoRa.CodingRate = ( RadioLoRaCodingRates_t ) config->lora.Coderate;
+ 801556e:	f894 202e 	ldrb.w	r2, [r4, #46]	; 0x2e
+ 8015572:	f883 2052 	strb.w	r2, [r3, #82]	; 0x52
+        switch( config->lora.LowDatarateOptimize )
+ 8015576:	f894 302f 	ldrb.w	r3, [r4, #47]	; 0x2f
+ 801557a:	2b01      	cmp	r3, #1
+ 801557c:	d03e      	beq.n	80155fc <RadioSetRxGenericConfig+0x218>
+ 801557e:	2b02      	cmp	r3, #2
+ 8015580:	d041      	beq.n	8015606 <RadioSetRxGenericConfig+0x222>
+ 8015582:	b3b3      	cbz	r3, 80155f2 <RadioSetRxGenericConfig+0x20e>
+        SubgRf.PacketParams.PacketType = PACKET_TYPE_LORA;
+ 8015584:	4d33      	ldr	r5, [pc, #204]	; (8015654 <RadioSetRxGenericConfig+0x270>)
+ 8015586:	2601      	movs	r6, #1
+ 8015588:	73ae      	strb	r6, [r5, #14]
+        SubgRf.PacketParams.Params.LoRa.PreambleLength = config->lora.PreambleLen;
+ 801558a:	8e23      	ldrh	r3, [r4, #48]	; 0x30
+ 801558c:	83ab      	strh	r3, [r5, #28]
+        SubgRf.PacketParams.Params.LoRa.HeaderType = ( RadioLoRaPacketLengthsMode_t ) config->lora.LengthMode;
+ 801558e:	f894 3032 	ldrb.w	r3, [r4, #50]	; 0x32
+ 8015592:	77ab      	strb	r3, [r5, #30]
+        SubgRf.PacketParams.Params.LoRa.PayloadLength = MaxPayloadLength;
+ 8015594:	f885 801f 	strb.w	r8, [r5, #31]
+        SubgRf.PacketParams.Params.LoRa.CrcMode = ( RadioLoRaCrcModes_t ) config->lora.CrcMode;
+ 8015598:	f894 3034 	ldrb.w	r3, [r4, #52]	; 0x34
+ 801559c:	f885 3020 	strb.w	r3, [r5, #32]
+        SubgRf.PacketParams.Params.LoRa.InvertIQ = ( RadioLoRaIQModes_t ) config->lora.IqInverted;
+ 80155a0:	f894 3035 	ldrb.w	r3, [r4, #53]	; 0x35
+ 80155a4:	f885 3021 	strb.w	r3, [r5, #33]	; 0x21
+        RadioStandby( );
+ 80155a8:	f7ff fa28 	bl	80149fc <RadioStandby>
+        RadioSetModem( MODEM_LORA );
+ 80155ac:	4630      	mov	r0, r6
+ 80155ae:	f7ff fd53 	bl	8015058 <RadioSetModem>
+        SUBGRF_SetModulationParams( &SubgRf.ModulationParams );
+ 80155b2:	f105 0038 	add.w	r0, r5, #56	; 0x38
+ 80155b6:	f000 ff49 	bl	801644c <SUBGRF_SetModulationParams>
+        SUBGRF_SetPacketParams( &SubgRf.PacketParams );
+ 80155ba:	f105 000e 	add.w	r0, r5, #14
+ 80155be:	f000 ffcd 	bl	801655c <SUBGRF_SetPacketParams>
+        if( SubgRf.PacketParams.Params.LoRa.InvertIQ == LORA_IQ_INVERTED )
+ 80155c2:	f895 3021 	ldrb.w	r3, [r5, #33]	; 0x21
+ 80155c6:	42b3      	cmp	r3, r6
+ 80155c8:	d02d      	beq.n	8015626 <RadioSetRxGenericConfig+0x242>
+            SUBGRF_WriteRegister( SUBGHZ_LIQPOLR, SUBGRF_ReadRegister( SUBGHZ_LIQPOLR ) | ( 1 << 2 ) );
+ 80155ca:	f240 7036 	movw	r0, #1846	; 0x736
+ 80155ce:	f000 fb61 	bl	8015c94 <SUBGRF_ReadRegister>
+ 80155d2:	f040 0104 	orr.w	r1, r0, #4
+ 80155d6:	b2c9      	uxtb	r1, r1
+ 80155d8:	f240 7036 	movw	r0, #1846	; 0x736
+ 80155dc:	f000 fb4a 	bl	8015c74 <SUBGRF_WriteRegister>
+        SubgRf.RxTimeout = 0xFFFF;
+ 80155e0:	4b1c      	ldr	r3, [pc, #112]	; (8015654 <RadioSetRxGenericConfig+0x270>)
+ 80155e2:	f64f 72ff 	movw	r2, #65535	; 0xffff
+ 80155e6:	609a      	str	r2, [r3, #8]
+    return status;
+ 80155e8:	2000      	movs	r0, #0
+        break;
+ 80155ea:	e713      	b.n	8015414 <RadioSetRxGenericConfig+0x30>
+            MaxPayloadLength = config->fsk.MaxPayloadLength;
+ 80155ec:	f894 8014 	ldrb.w	r8, [r4, #20]
+ 80155f0:	e7a8      	b.n	8015544 <RadioSetRxGenericConfig+0x160>
+            SubgRf.ModulationParams.Params.LoRa.LowDatarateOptimize = 0;
+ 80155f2:	4b18      	ldr	r3, [pc, #96]	; (8015654 <RadioSetRxGenericConfig+0x270>)
+ 80155f4:	2200      	movs	r2, #0
+ 80155f6:	f883 2053 	strb.w	r2, [r3, #83]	; 0x53
+            break;
+ 80155fa:	e7c3      	b.n	8015584 <RadioSetRxGenericConfig+0x1a0>
+            SubgRf.ModulationParams.Params.LoRa.LowDatarateOptimize = 1;
+ 80155fc:	4b15      	ldr	r3, [pc, #84]	; (8015654 <RadioSetRxGenericConfig+0x270>)
+ 80155fe:	2201      	movs	r2, #1
+ 8015600:	f883 2053 	strb.w	r2, [r3, #83]	; 0x53
+            break;
+ 8015604:	e7be      	b.n	8015584 <RadioSetRxGenericConfig+0x1a0>
+            if( ( config->lora.SpreadingFactor == RADIO_LORA_SF11 ) || ( config->lora.SpreadingFactor == RADIO_LORA_SF12 ) )
+ 8015606:	f894 302c 	ldrb.w	r3, [r4, #44]	; 0x2c
+ 801560a:	3b0b      	subs	r3, #11
+ 801560c:	b2db      	uxtb	r3, r3
+ 801560e:	2b01      	cmp	r3, #1
+ 8015610:	d904      	bls.n	801561c <RadioSetRxGenericConfig+0x238>
+                SubgRf.ModulationParams.Params.LoRa.LowDatarateOptimize = 0;
+ 8015612:	4b10      	ldr	r3, [pc, #64]	; (8015654 <RadioSetRxGenericConfig+0x270>)
+ 8015614:	2200      	movs	r2, #0
+ 8015616:	f883 2053 	strb.w	r2, [r3, #83]	; 0x53
+ 801561a:	e7b3      	b.n	8015584 <RadioSetRxGenericConfig+0x1a0>
+                SubgRf.ModulationParams.Params.LoRa.LowDatarateOptimize = 1;
+ 801561c:	4b0d      	ldr	r3, [pc, #52]	; (8015654 <RadioSetRxGenericConfig+0x270>)
+ 801561e:	2201      	movs	r2, #1
+ 8015620:	f883 2053 	strb.w	r2, [r3, #83]	; 0x53
+ 8015624:	e7ae      	b.n	8015584 <RadioSetRxGenericConfig+0x1a0>
+            SUBGRF_WriteRegister( SUBGHZ_LIQPOLR, SUBGRF_ReadRegister( SUBGHZ_LIQPOLR ) & ~( 1 << 2 ) );
+ 8015626:	f240 7036 	movw	r0, #1846	; 0x736
+ 801562a:	f000 fb33 	bl	8015c94 <SUBGRF_ReadRegister>
+ 801562e:	f000 01fb 	and.w	r1, r0, #251	; 0xfb
+ 8015632:	f240 7036 	movw	r0, #1846	; 0x736
+ 8015636:	f000 fb1d 	bl	8015c74 <SUBGRF_WriteRegister>
+ 801563a:	e7d1      	b.n	80155e0 <RadioSetRxGenericConfig+0x1fc>
+            return -1;
+ 801563c:	f04f 30ff 	mov.w	r0, #4294967295
+ 8015640:	e6e8      	b.n	8015414 <RadioSetRxGenericConfig+0x30>
+ 8015642:	f04f 30ff 	mov.w	r0, #4294967295
+ 8015646:	e6e5      	b.n	8015414 <RadioSetRxGenericConfig+0x30>
+            return -1;
+ 8015648:	f04f 30ff 	mov.w	r0, #4294967295
+ 801564c:	e6e2      	b.n	8015414 <RadioSetRxGenericConfig+0x30>
+            return -1;
+ 801564e:	f04f 30ff 	mov.w	r0, #4294967295
+ 8015652:	e6df      	b.n	8015414 <RadioSetRxGenericConfig+0x30>
+ 8015654:	20002750 	.word	0x20002750
+ 8015658:	20002738 	.word	0x20002738
+ 801565c:	20002734 	.word	0x20002734
+
+08015660 <RadioSetPublicNetwork>:
+{
+ 8015660:	b510      	push	{r4, lr}
+ 8015662:	4604      	mov	r4, r0
+    SubgRf.PublicNetwork.Current = SubgRf.PublicNetwork.Previous = enable;
+ 8015664:	4b0e      	ldr	r3, [pc, #56]	; (80156a0 <RadioSetPublicNetwork+0x40>)
+ 8015666:	7318      	strb	r0, [r3, #12]
+ 8015668:	7358      	strb	r0, [r3, #13]
+    RadioSetModem( MODEM_LORA );
+ 801566a:	2001      	movs	r0, #1
+ 801566c:	f7ff fcf4 	bl	8015058 <RadioSetModem>
+    if( enable == true )
+ 8015670:	b154      	cbz	r4, 8015688 <RadioSetPublicNetwork+0x28>
+        SUBGRF_WriteRegister( REG_LR_SYNCWORD, ( LORA_MAC_PUBLIC_SYNCWORD >> 8 ) & 0xFF );
+ 8015672:	2134      	movs	r1, #52	; 0x34
+ 8015674:	f44f 60e8 	mov.w	r0, #1856	; 0x740
+ 8015678:	f000 fafc 	bl	8015c74 <SUBGRF_WriteRegister>
+        SUBGRF_WriteRegister( REG_LR_SYNCWORD + 1, LORA_MAC_PUBLIC_SYNCWORD & 0xFF );
+ 801567c:	2144      	movs	r1, #68	; 0x44
+ 801567e:	f240 7041 	movw	r0, #1857	; 0x741
+ 8015682:	f000 faf7 	bl	8015c74 <SUBGRF_WriteRegister>
+}
+ 8015686:	bd10      	pop	{r4, pc}
+        SUBGRF_WriteRegister( REG_LR_SYNCWORD, ( LORA_MAC_PRIVATE_SYNCWORD >> 8 ) & 0xFF );
+ 8015688:	2114      	movs	r1, #20
+ 801568a:	f44f 60e8 	mov.w	r0, #1856	; 0x740
+ 801568e:	f000 faf1 	bl	8015c74 <SUBGRF_WriteRegister>
+        SUBGRF_WriteRegister( REG_LR_SYNCWORD + 1, LORA_MAC_PRIVATE_SYNCWORD & 0xFF );
+ 8015692:	2124      	movs	r1, #36	; 0x24
+ 8015694:	f240 7041 	movw	r0, #1857	; 0x741
+ 8015698:	f000 faec 	bl	8015c74 <SUBGRF_WriteRegister>
+}
+ 801569c:	e7f3      	b.n	8015686 <RadioSetPublicNetwork+0x26>
+ 801569e:	bf00      	nop
+ 80156a0:	20002750 	.word	0x20002750
+
+080156a4 <RadioSetTxConfig>:
+{
+ 80156a4:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 80156a8:	b083      	sub	sp, #12
+ 80156aa:	4604      	mov	r4, r0
+ 80156ac:	460d      	mov	r5, r1
+ 80156ae:	4691      	mov	r9, r2
+ 80156b0:	461f      	mov	r7, r3
+ 80156b2:	f8bd 6038 	ldrh.w	r6, [sp, #56]	; 0x38
+ 80156b6:	f89d 803c 	ldrb.w	r8, [sp, #60]	; 0x3c
+ 80156ba:	f89d a040 	ldrb.w	sl, [sp, #64]	; 0x40
+    RFW_DeInit();
+ 80156be:	f001 f954 	bl	801696a <RFW_DeInit>
+    switch( modem )
+ 80156c2:	2c01      	cmp	r4, #1
+ 80156c4:	d05d      	beq.n	8015782 <RadioSetTxConfig+0xde>
+ 80156c6:	2c04      	cmp	r4, #4
+ 80156c8:	f000 80aa 	beq.w	8015820 <RadioSetTxConfig+0x17c>
+ 80156cc:	b19c      	cbz	r4, 80156f6 <RadioSetTxConfig+0x52>
+    SubgRf.AntSwitchPaSelect = SUBGRF_SetRfTxPower( power );
+ 80156ce:	4628      	mov	r0, r5
+ 80156d0:	f001 f86e 	bl	80167b0 <SUBGRF_SetRfTxPower>
+ 80156d4:	4c5a      	ldr	r4, [pc, #360]	; (8015840 <RadioSetTxConfig+0x19c>)
+ 80156d6:	f884 0056 	strb.w	r0, [r4, #86]	; 0x56
+    SUBGRF_WriteRegister(REG_DRV_CTRL, 0x7 << 1);
+ 80156da:	210e      	movs	r1, #14
+ 80156dc:	f640 101f 	movw	r0, #2335	; 0x91f
+ 80156e0:	f000 fac8 	bl	8015c74 <SUBGRF_WriteRegister>
+    RFW_SetAntSwitch( SubgRf.AntSwitchPaSelect );
+ 80156e4:	f894 0056 	ldrb.w	r0, [r4, #86]	; 0x56
+ 80156e8:	f001 f944 	bl	8016974 <RFW_SetAntSwitch>
+    SubgRf.TxTimeout = timeout;
+ 80156ec:	9b14      	ldr	r3, [sp, #80]	; 0x50
+ 80156ee:	6063      	str	r3, [r4, #4]
+}
+ 80156f0:	b003      	add	sp, #12
+ 80156f2:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+            SubgRf.ModulationParams.PacketType = PACKET_TYPE_GFSK;
+ 80156f6:	4c52      	ldr	r4, [pc, #328]	; (8015840 <RadioSetTxConfig+0x19c>)
+ 80156f8:	f04f 0b00 	mov.w	fp, #0
+ 80156fc:	f884 b038 	strb.w	fp, [r4, #56]	; 0x38
+            SubgRf.ModulationParams.Params.Gfsk.BitRate = datarate;
+ 8015700:	9b0c      	ldr	r3, [sp, #48]	; 0x30
+ 8015702:	63e3      	str	r3, [r4, #60]	; 0x3c
+            SubgRf.ModulationParams.Params.Gfsk.ModulationShaping = MOD_SHAPING_G_BT_1;
+ 8015704:	230b      	movs	r3, #11
+ 8015706:	f884 3044 	strb.w	r3, [r4, #68]	; 0x44
+            SubgRf.ModulationParams.Params.Gfsk.Bandwidth = SUBGRF_GetFskBandwidthRegValue( bandwidth );
+ 801570a:	4638      	mov	r0, r7
+ 801570c:	f001 f8c8 	bl	80168a0 <SUBGRF_GetFskBandwidthRegValue>
+ 8015710:	f884 0045 	strb.w	r0, [r4, #69]	; 0x45
+            SubgRf.ModulationParams.Params.Gfsk.Fdev = fdev;
+ 8015714:	f8c4 9040 	str.w	r9, [r4, #64]	; 0x40
+            SubgRf.PacketParams.PacketType = PACKET_TYPE_GFSK;
+ 8015718:	f884 b00e 	strb.w	fp, [r4, #14]
+            SubgRf.PacketParams.Params.Gfsk.PreambleLength = ( preambleLen << 3 ); // convert byte into bit
+ 801571c:	00f6      	lsls	r6, r6, #3
+ 801571e:	8226      	strh	r6, [r4, #16]
+            SubgRf.PacketParams.Params.Gfsk.PreambleMinDetect = RADIO_PREAMBLE_DETECTOR_08_BITS;
+ 8015720:	2304      	movs	r3, #4
+ 8015722:	74a3      	strb	r3, [r4, #18]
+            SubgRf.PacketParams.Params.Gfsk.SyncWordLength = 3 << 3 ; // convert byte into bit
+ 8015724:	2318      	movs	r3, #24
+ 8015726:	74e3      	strb	r3, [r4, #19]
+            SubgRf.PacketParams.Params.Gfsk.AddrComp = RADIO_ADDRESSCOMP_FILT_OFF;
+ 8015728:	f884 b014 	strb.w	fp, [r4, #20]
+            SubgRf.PacketParams.Params.Gfsk.HeaderType = ( fixLen == true ) ? RADIO_PACKET_FIXED_LENGTH : RADIO_PACKET_VARIABLE_LENGTH;
+ 801572c:	f088 0801 	eor.w	r8, r8, #1
+ 8015730:	f884 8015 	strb.w	r8, [r4, #21]
+            if( crcOn == true )
+ 8015734:	f1ba 0f00 	cmp.w	sl, #0
+ 8015738:	d01f      	beq.n	801577a <RadioSetTxConfig+0xd6>
+                SubgRf.PacketParams.Params.Gfsk.CrcLength = RADIO_CRC_2_BYTES_CCIT;
+ 801573a:	22f2      	movs	r2, #242	; 0xf2
+ 801573c:	75e2      	strb	r2, [r4, #23]
+            SubgRf.PacketParams.Params.Gfsk.DcFree = RADIO_DC_FREEWHITENING;
+ 801573e:	4c40      	ldr	r4, [pc, #256]	; (8015840 <RadioSetTxConfig+0x19c>)
+ 8015740:	2301      	movs	r3, #1
+ 8015742:	7623      	strb	r3, [r4, #24]
+            RadioStandby( );
+ 8015744:	f7ff f95a 	bl	80149fc <RadioStandby>
+            RadioSetModem(  MODEM_FSK  );
+ 8015748:	2000      	movs	r0, #0
+ 801574a:	f7ff fc85 	bl	8015058 <RadioSetModem>
+            SUBGRF_SetModulationParams( &SubgRf.ModulationParams );
+ 801574e:	f104 0038 	add.w	r0, r4, #56	; 0x38
+ 8015752:	f000 fe7b 	bl	801644c <SUBGRF_SetModulationParams>
+            SUBGRF_SetPacketParams( &SubgRf.PacketParams );
+ 8015756:	f104 000e 	add.w	r0, r4, #14
+ 801575a:	f000 feff 	bl	801655c <SUBGRF_SetPacketParams>
+            SUBGRF_SetSyncWord( ( uint8_t[] ){ 0xC1, 0x94, 0xC1, 0x00, 0x00, 0x00, 0x00, 0x00 } );
+ 801575e:	4a39      	ldr	r2, [pc, #228]	; (8015844 <RadioSetTxConfig+0x1a0>)
+ 8015760:	466b      	mov	r3, sp
+ 8015762:	e892 0003 	ldmia.w	r2, {r0, r1}
+ 8015766:	e883 0003 	stmia.w	r3, {r0, r1}
+ 801576a:	4618      	mov	r0, r3
+ 801576c:	f000 fade 	bl	8015d2c <SUBGRF_SetSyncWord>
+            SUBGRF_SetWhiteningSeed( 0x01FF );
+ 8015770:	f240 10ff 	movw	r0, #511	; 0x1ff
+ 8015774:	f000 fab1 	bl	8015cda <SUBGRF_SetWhiteningSeed>
+            break;
+ 8015778:	e7a9      	b.n	80156ce <RadioSetTxConfig+0x2a>
+                SubgRf.PacketParams.Params.Gfsk.CrcLength = RADIO_CRC_OFF;
+ 801577a:	4b31      	ldr	r3, [pc, #196]	; (8015840 <RadioSetTxConfig+0x19c>)
+ 801577c:	2201      	movs	r2, #1
+ 801577e:	75da      	strb	r2, [r3, #23]
+ 8015780:	e7dd      	b.n	801573e <RadioSetTxConfig+0x9a>
+            SubgRf.ModulationParams.PacketType = PACKET_TYPE_LORA;
+ 8015782:	4a2f      	ldr	r2, [pc, #188]	; (8015840 <RadioSetTxConfig+0x19c>)
+ 8015784:	2301      	movs	r3, #1
+ 8015786:	f882 3038 	strb.w	r3, [r2, #56]	; 0x38
+            SubgRf.ModulationParams.Params.LoRa.SpreadingFactor = ( RadioLoRaSpreadingFactors_t ) datarate;
+ 801578a:	9b0c      	ldr	r3, [sp, #48]	; 0x30
+ 801578c:	b2db      	uxtb	r3, r3
+ 801578e:	f882 3050 	strb.w	r3, [r2, #80]	; 0x50
+            SubgRf.ModulationParams.Params.LoRa.Bandwidth =  Bandwidths[bandwidth];
+ 8015792:	492d      	ldr	r1, [pc, #180]	; (8015848 <RadioSetTxConfig+0x1a4>)
+ 8015794:	5dc9      	ldrb	r1, [r1, r7]
+ 8015796:	f882 1051 	strb.w	r1, [r2, #81]	; 0x51
+            SubgRf.ModulationParams.Params.LoRa.CodingRate= ( RadioLoRaCodingRates_t )coderate;
+ 801579a:	f89d 1034 	ldrb.w	r1, [sp, #52]	; 0x34
+ 801579e:	f882 1052 	strb.w	r1, [r2, #82]	; 0x52
+            if( ( ( bandwidth == 0 ) && ( ( datarate == 11 ) || ( datarate == 12 ) ) ) ||
+ 80157a2:	b91f      	cbnz	r7, 80157ac <RadioSetTxConfig+0x108>
+ 80157a4:	9a0c      	ldr	r2, [sp, #48]	; 0x30
+ 80157a6:	3a0b      	subs	r2, #11
+ 80157a8:	2a01      	cmp	r2, #1
+ 80157aa:	d92b      	bls.n	8015804 <RadioSetTxConfig+0x160>
+ 80157ac:	2f01      	cmp	r7, #1
+ 80157ae:	d026      	beq.n	80157fe <RadioSetTxConfig+0x15a>
+                SubgRf.ModulationParams.Params.LoRa.LowDatarateOptimize = 0x00;
+ 80157b0:	4a23      	ldr	r2, [pc, #140]	; (8015840 <RadioSetTxConfig+0x19c>)
+ 80157b2:	2100      	movs	r1, #0
+ 80157b4:	f882 1053 	strb.w	r1, [r2, #83]	; 0x53
+            SubgRf.PacketParams.PacketType = PACKET_TYPE_LORA;
+ 80157b8:	4a21      	ldr	r2, [pc, #132]	; (8015840 <RadioSetTxConfig+0x19c>)
+ 80157ba:	2101      	movs	r1, #1
+ 80157bc:	7391      	strb	r1, [r2, #14]
+            if( ( SubgRf.ModulationParams.Params.LoRa.SpreadingFactor == LORA_SF5 ) ||
+ 80157be:	3b05      	subs	r3, #5
+ 80157c0:	b2db      	uxtb	r3, r3
+ 80157c2:	428b      	cmp	r3, r1
+ 80157c4:	d923      	bls.n	801580e <RadioSetTxConfig+0x16a>
+                SubgRf.PacketParams.Params.LoRa.PreambleLength = preambleLen;
+ 80157c6:	4b1e      	ldr	r3, [pc, #120]	; (8015840 <RadioSetTxConfig+0x19c>)
+ 80157c8:	839e      	strh	r6, [r3, #28]
+            SubgRf.PacketParams.Params.LoRa.HeaderType = ( RadioLoRaPacketLengthsMode_t )fixLen;
+ 80157ca:	4c1d      	ldr	r4, [pc, #116]	; (8015840 <RadioSetTxConfig+0x19c>)
+ 80157cc:	f884 801e 	strb.w	r8, [r4, #30]
+            SubgRf.PacketParams.Params.LoRa.PayloadLength = MaxPayloadLength;
+ 80157d0:	4b1e      	ldr	r3, [pc, #120]	; (801584c <RadioSetTxConfig+0x1a8>)
+ 80157d2:	781b      	ldrb	r3, [r3, #0]
+ 80157d4:	77e3      	strb	r3, [r4, #31]
+            SubgRf.PacketParams.Params.LoRa.CrcMode = ( RadioLoRaCrcModes_t )crcOn;
+ 80157d6:	f884 a020 	strb.w	sl, [r4, #32]
+            SubgRf.PacketParams.Params.LoRa.InvertIQ = ( RadioLoRaIQModes_t )iqInverted;
+ 80157da:	f89d 304c 	ldrb.w	r3, [sp, #76]	; 0x4c
+ 80157de:	f884 3021 	strb.w	r3, [r4, #33]	; 0x21
+            RadioStandby( );
+ 80157e2:	f7ff f90b 	bl	80149fc <RadioStandby>
+            RadioSetModem( MODEM_LORA );
+ 80157e6:	2001      	movs	r0, #1
+ 80157e8:	f7ff fc36 	bl	8015058 <RadioSetModem>
+            SUBGRF_SetModulationParams( &SubgRf.ModulationParams );
+ 80157ec:	f104 0038 	add.w	r0, r4, #56	; 0x38
+ 80157f0:	f000 fe2c 	bl	801644c <SUBGRF_SetModulationParams>
+            SUBGRF_SetPacketParams( &SubgRf.PacketParams );
+ 80157f4:	f104 000e 	add.w	r0, r4, #14
+ 80157f8:	f000 feb0 	bl	801655c <SUBGRF_SetPacketParams>
+            break;
+ 80157fc:	e767      	b.n	80156ce <RadioSetTxConfig+0x2a>
+                ( ( bandwidth == 1 ) && ( datarate == 12 ) ) )
+ 80157fe:	9a0c      	ldr	r2, [sp, #48]	; 0x30
+ 8015800:	2a0c      	cmp	r2, #12
+ 8015802:	d1d5      	bne.n	80157b0 <RadioSetTxConfig+0x10c>
+                SubgRf.ModulationParams.Params.LoRa.LowDatarateOptimize = 0x01;
+ 8015804:	4a0e      	ldr	r2, [pc, #56]	; (8015840 <RadioSetTxConfig+0x19c>)
+ 8015806:	2101      	movs	r1, #1
+ 8015808:	f882 1053 	strb.w	r1, [r2, #83]	; 0x53
+ 801580c:	e7d4      	b.n	80157b8 <RadioSetTxConfig+0x114>
+                if( preambleLen < 12 )
+ 801580e:	2e0b      	cmp	r6, #11
+ 8015810:	d803      	bhi.n	801581a <RadioSetTxConfig+0x176>
+                    SubgRf.PacketParams.Params.LoRa.PreambleLength = 12;
+ 8015812:	4613      	mov	r3, r2
+ 8015814:	220c      	movs	r2, #12
+ 8015816:	839a      	strh	r2, [r3, #28]
+ 8015818:	e7d7      	b.n	80157ca <RadioSetTxConfig+0x126>
+                    SubgRf.PacketParams.Params.LoRa.PreambleLength = preambleLen;
+ 801581a:	4b09      	ldr	r3, [pc, #36]	; (8015840 <RadioSetTxConfig+0x19c>)
+ 801581c:	839e      	strh	r6, [r3, #28]
+ 801581e:	e7d4      	b.n	80157ca <RadioSetTxConfig+0x126>
+            RadioSetModem(MODEM_SIGFOX_TX);
+ 8015820:	2004      	movs	r0, #4
+ 8015822:	f7ff fc19 	bl	8015058 <RadioSetModem>
+            SubgRf.ModulationParams.PacketType = PACKET_TYPE_BPSK;
+ 8015826:	4806      	ldr	r0, [pc, #24]	; (8015840 <RadioSetTxConfig+0x19c>)
+ 8015828:	2302      	movs	r3, #2
+ 801582a:	f880 3038 	strb.w	r3, [r0, #56]	; 0x38
+            SubgRf.ModulationParams.Params.Bpsk.BitRate           = datarate;
+ 801582e:	9b0c      	ldr	r3, [sp, #48]	; 0x30
+ 8015830:	6483      	str	r3, [r0, #72]	; 0x48
+            SubgRf.ModulationParams.Params.Bpsk.ModulationShaping = MOD_SHAPING_DBPSK;
+ 8015832:	2316      	movs	r3, #22
+ 8015834:	f880 304c 	strb.w	r3, [r0, #76]	; 0x4c
+            SUBGRF_SetModulationParams( &SubgRf.ModulationParams );
+ 8015838:	3038      	adds	r0, #56	; 0x38
+ 801583a:	f000 fe07 	bl	801644c <SUBGRF_SetModulationParams>
+            break;
+ 801583e:	e746      	b.n	80156ce <RadioSetTxConfig+0x2a>
+ 8015840:	20002750 	.word	0x20002750
+ 8015844:	080178a4 	.word	0x080178a4
+ 8015848:	08018cb0 	.word	0x08018cb0
+ 801584c:	200008c0 	.word	0x200008c0
+
+08015850 <RadioSetRxConfig>:
+{
+ 8015850:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8015854:	b087      	sub	sp, #28
+ 8015856:	4604      	mov	r4, r0
+ 8015858:	460e      	mov	r6, r1
+ 801585a:	4615      	mov	r5, r2
+ 801585c:	9301      	str	r3, [sp, #4]
+ 801585e:	f8bd 9044 	ldrh.w	r9, [sp, #68]	; 0x44
+ 8015862:	f8bd a048 	ldrh.w	sl, [sp, #72]	; 0x48
+ 8015866:	f89d 704c 	ldrb.w	r7, [sp, #76]	; 0x4c
+ 801586a:	f89d b054 	ldrb.w	fp, [sp, #84]	; 0x54
+ 801586e:	f89d 8064 	ldrb.w	r8, [sp, #100]	; 0x64
+    SubgRf.RxContinuous = rxContinuous;
+ 8015872:	4bb0      	ldr	r3, [pc, #704]	; (8015b34 <RadioSetRxConfig+0x2e4>)
+ 8015874:	f883 8001 	strb.w	r8, [r3, #1]
+    RFW_DeInit();
+ 8015878:	f001 f877 	bl	801696a <RFW_DeInit>
+    if( rxContinuous == true )
+ 801587c:	f1b8 0f00 	cmp.w	r8, #0
+ 8015880:	d001      	beq.n	8015886 <RadioSetRxConfig+0x36>
+        symbTimeout = 0;
+ 8015882:	f04f 0a00 	mov.w	sl, #0
+    if( fixLen == true )
+ 8015886:	b16f      	cbz	r7, 80158a4 <RadioSetRxConfig+0x54>
+        MaxPayloadLength = payloadLen;
+ 8015888:	f89d 2050 	ldrb.w	r2, [sp, #80]	; 0x50
+ 801588c:	4baa      	ldr	r3, [pc, #680]	; (8015b38 <RadioSetRxConfig+0x2e8>)
+ 801588e:	701a      	strb	r2, [r3, #0]
+    switch( modem )
+ 8015890:	2c01      	cmp	r4, #1
+ 8015892:	f000 80d2 	beq.w	8015a3a <RadioSetRxConfig+0x1ea>
+ 8015896:	2c05      	cmp	r4, #5
+ 8015898:	d008      	beq.n	80158ac <RadioSetRxConfig+0x5c>
+ 801589a:	2c00      	cmp	r4, #0
+ 801589c:	d07c      	beq.n	8015998 <RadioSetRxConfig+0x148>
+}
+ 801589e:	b007      	add	sp, #28
+ 80158a0:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+        MaxPayloadLength = 0xFF;
+ 80158a4:	4ba4      	ldr	r3, [pc, #656]	; (8015b38 <RadioSetRxConfig+0x2e8>)
+ 80158a6:	22ff      	movs	r2, #255	; 0xff
+ 80158a8:	701a      	strb	r2, [r3, #0]
+ 80158aa:	e7f1      	b.n	8015890 <RadioSetRxConfig+0x40>
+            SUBGRF_SetStopRxTimerOnPreambleDetect( true );
+ 80158ac:	2001      	movs	r0, #1
+ 80158ae:	f000 fbbf 	bl	8016030 <SUBGRF_SetStopRxTimerOnPreambleDetect>
+            SubgRf.ModulationParams.PacketType = PACKET_TYPE_GFSK;
+ 80158b2:	4ca0      	ldr	r4, [pc, #640]	; (8015b34 <RadioSetRxConfig+0x2e4>)
+ 80158b4:	2700      	movs	r7, #0
+ 80158b6:	f884 7038 	strb.w	r7, [r4, #56]	; 0x38
+            SubgRf.ModulationParams.Params.Gfsk.BitRate = datarate;
+ 80158ba:	63e5      	str	r5, [r4, #60]	; 0x3c
+            SubgRf.ModulationParams.Params.Gfsk.ModulationShaping = MOD_SHAPING_G_BT_05;
+ 80158bc:	2309      	movs	r3, #9
+ 80158be:	f884 3044 	strb.w	r3, [r4, #68]	; 0x44
+            SubgRf.ModulationParams.Params.Gfsk.Fdev = 800;
+ 80158c2:	f44f 7348 	mov.w	r3, #800	; 0x320
+ 80158c6:	6423      	str	r3, [r4, #64]	; 0x40
+            SubgRf.ModulationParams.Params.Gfsk.Bandwidth = SUBGRF_GetFskBandwidthRegValue( bandwidth );
+ 80158c8:	4630      	mov	r0, r6
+ 80158ca:	f000 ffe9 	bl	80168a0 <SUBGRF_GetFskBandwidthRegValue>
+ 80158ce:	f884 0045 	strb.w	r0, [r4, #69]	; 0x45
+            SubgRf.PacketParams.PacketType = PACKET_TYPE_GFSK;
+ 80158d2:	73a7      	strb	r7, [r4, #14]
+            SubgRf.PacketParams.Params.Gfsk.PreambleLength = ( preambleLen << 3 ); // convert byte into bit
+ 80158d4:	ea4f 09c9 	mov.w	r9, r9, lsl #3
+ 80158d8:	f8a4 9010 	strh.w	r9, [r4, #16]
+            SubgRf.PacketParams.Params.Gfsk.PreambleMinDetect = RADIO_PREAMBLE_DETECTOR_OFF;
+ 80158dc:	74a7      	strb	r7, [r4, #18]
+            SubgRf.PacketParams.Params.Gfsk.SyncWordLength = 2 << 3; // convert byte into bit
+ 80158de:	2310      	movs	r3, #16
+ 80158e0:	74e3      	strb	r3, [r4, #19]
+            SubgRf.PacketParams.Params.Gfsk.AddrComp = RADIO_ADDRESSCOMP_FILT_OFF;
+ 80158e2:	7527      	strb	r7, [r4, #20]
+            SubgRf.PacketParams.Params.Gfsk.HeaderType = RADIO_PACKET_FIXED_LENGTH;
+ 80158e4:	7567      	strb	r7, [r4, #21]
+            SubgRf.PacketParams.Params.Gfsk.PayloadLength = MaxPayloadLength;
+ 80158e6:	4b94      	ldr	r3, [pc, #592]	; (8015b38 <RadioSetRxConfig+0x2e8>)
+ 80158e8:	781b      	ldrb	r3, [r3, #0]
+ 80158ea:	75a3      	strb	r3, [r4, #22]
+            SubgRf.PacketParams.Params.Gfsk.CrcLength = RADIO_CRC_OFF;
+ 80158ec:	2301      	movs	r3, #1
+ 80158ee:	75e3      	strb	r3, [r4, #23]
+            SubgRf.PacketParams.Params.Gfsk.DcFree = RADIO_DC_FREE_OFF;
+ 80158f0:	7627      	strb	r7, [r4, #24]
+            RadioSetModem( MODEM_SIGFOX_RX );
+ 80158f2:	2005      	movs	r0, #5
+ 80158f4:	f7ff fbb0 	bl	8015058 <RadioSetModem>
+            SUBGRF_SetModulationParams( &SubgRf.ModulationParams );
+ 80158f8:	f104 0038 	add.w	r0, r4, #56	; 0x38
+ 80158fc:	f000 fda6 	bl	801644c <SUBGRF_SetModulationParams>
+            SUBGRF_SetPacketParams( &SubgRf.PacketParams );
+ 8015900:	f104 000e 	add.w	r0, r4, #14
+ 8015904:	f000 fe2a 	bl	801655c <SUBGRF_SetPacketParams>
+            SUBGRF_SetSyncWord( ( uint8_t[] ){0xB2, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } );
+ 8015908:	ab02      	add	r3, sp, #8
+ 801590a:	4a8c      	ldr	r2, [pc, #560]	; (8015b3c <RadioSetRxConfig+0x2ec>)
+ 801590c:	e892 0003 	ldmia.w	r2, {r0, r1}
+ 8015910:	e883 0003 	stmia.w	r3, {r0, r1}
+ 8015914:	4618      	mov	r0, r3
+ 8015916:	f000 fa09 	bl	8015d2c <SUBGRF_SetSyncWord>
+            SUBGRF_SetWhiteningSeed( 0x01FF );
+ 801591a:	f240 10ff 	movw	r0, #511	; 0x1ff
+ 801591e:	f000 f9dc 	bl	8015cda <SUBGRF_SetWhiteningSeed>
+            modReg= RadioRead(SUBGHZ_AGCGFORSTCFGR);
+ 8015922:	f640 00b8 	movw	r0, #2232	; 0x8b8
+ 8015926:	f7fe ffe9 	bl	80148fc <RadioRead>
+            RadioWrite(SUBGHZ_AGCGFORSTCFGR, modReg);
+ 801592a:	f000 01ef 	and.w	r1, r0, #239	; 0xef
+ 801592e:	f640 00b8 	movw	r0, #2232	; 0x8b8
+ 8015932:	f7fe ffe7 	bl	8014904 <RadioWrite>
+            RadioWrite(SUBGHZ_AGCGFORSTPOWTHR, 0x4 );
+ 8015936:	2104      	movs	r1, #4
+ 8015938:	f640 00b9 	movw	r0, #2233	; 0x8b9
+ 801593c:	f7fe ffe2 	bl	8014904 <RadioWrite>
+            modReg= RadioRead(SUBGHZ_AGCRSSICTL0R);
+ 8015940:	f640 009b 	movw	r0, #2203	; 0x89b
+ 8015944:	f7fe ffda 	bl	80148fc <RadioRead>
+            modReg&=( RADIO_BIT_MASK(2) & RADIO_BIT_MASK(3) & RADIO_BIT_MASK(4) );
+ 8015948:	f000 01e3 	and.w	r1, r0, #227	; 0xe3
+            RadioWrite(SUBGHZ_AGCRSSICTL0R, (modReg| (0x1<<3) ) );
+ 801594c:	f041 0108 	orr.w	r1, r1, #8
+ 8015950:	f640 009b 	movw	r0, #2203	; 0x89b
+ 8015954:	f7fe ffd6 	bl	8014904 <RadioWrite>
+            modReg= RadioRead(SUBGHZ_GAFCR);
+ 8015958:	f240 60d1 	movw	r0, #1745	; 0x6d1
+ 801595c:	f7fe ffce 	bl	80148fc <RadioRead>
+            modReg&=( RADIO_BIT_MASK(3) & RADIO_BIT_MASK(4) );
+ 8015960:	f000 01e7 	and.w	r1, r0, #231	; 0xe7
+            RadioWrite(SUBGHZ_GAFCR, (modReg| (0x3<<3) ));
+ 8015964:	f041 0118 	orr.w	r1, r1, #24
+ 8015968:	f240 60d1 	movw	r0, #1745	; 0x6d1
+ 801596c:	f7fe ffca 	bl	8014904 <RadioWrite>
+            modReg= RadioRead(SUBGHZ_GBSYNCR);
+ 8015970:	f240 60ac 	movw	r0, #1708	; 0x6ac
+ 8015974:	f7fe ffc2 	bl	80148fc <RadioRead>
+            modReg&=( RADIO_BIT_MASK(4) & RADIO_BIT_MASK(5) & RADIO_BIT_MASK(6) );
+ 8015978:	f000 018f 	and.w	r1, r0, #143	; 0x8f
+            RadioWrite(SUBGHZ_GBSYNCR, (modReg| (0x5<<4) ));
+ 801597c:	f041 0150 	orr.w	r1, r1, #80	; 0x50
+ 8015980:	f240 60ac 	movw	r0, #1708	; 0x6ac
+ 8015984:	f7fe ffbe 	bl	8014904 <RadioWrite>
+            SubgRf.RxTimeout = ( uint32_t )(( symbTimeout * 8 * 1000 ) /datarate);
+ 8015988:	f44f 53fa 	mov.w	r3, #8000	; 0x1f40
+ 801598c:	fb03 f30a 	mul.w	r3, r3, sl
+ 8015990:	fbb3 f3f5 	udiv	r3, r3, r5
+ 8015994:	60a3      	str	r3, [r4, #8]
+            break;
+ 8015996:	e782      	b.n	801589e <RadioSetRxConfig+0x4e>
+            SUBGRF_SetStopRxTimerOnPreambleDetect( false );
+ 8015998:	2000      	movs	r0, #0
+ 801599a:	f000 fb49 	bl	8016030 <SUBGRF_SetStopRxTimerOnPreambleDetect>
+            SubgRf.ModulationParams.PacketType = PACKET_TYPE_GFSK;
+ 801599e:	4c65      	ldr	r4, [pc, #404]	; (8015b34 <RadioSetRxConfig+0x2e4>)
+ 80159a0:	f04f 0800 	mov.w	r8, #0
+ 80159a4:	f884 8038 	strb.w	r8, [r4, #56]	; 0x38
+            SubgRf.ModulationParams.Params.Gfsk.BitRate = datarate;
+ 80159a8:	63e5      	str	r5, [r4, #60]	; 0x3c
+            SubgRf.ModulationParams.Params.Gfsk.ModulationShaping = MOD_SHAPING_G_BT_1;
+ 80159aa:	230b      	movs	r3, #11
+ 80159ac:	f884 3044 	strb.w	r3, [r4, #68]	; 0x44
+            SubgRf.ModulationParams.Params.Gfsk.Bandwidth = SUBGRF_GetFskBandwidthRegValue( bandwidth );
+ 80159b0:	4630      	mov	r0, r6
+ 80159b2:	f000 ff75 	bl	80168a0 <SUBGRF_GetFskBandwidthRegValue>
+ 80159b6:	f884 0045 	strb.w	r0, [r4, #69]	; 0x45
+            SubgRf.PacketParams.PacketType = PACKET_TYPE_GFSK;
+ 80159ba:	f884 800e 	strb.w	r8, [r4, #14]
+            SubgRf.PacketParams.Params.Gfsk.PreambleLength = ( preambleLen << 3 ); // convert byte into bit
+ 80159be:	ea4f 09c9 	mov.w	r9, r9, lsl #3
+ 80159c2:	f8a4 9010 	strh.w	r9, [r4, #16]
+            SubgRf.PacketParams.Params.Gfsk.PreambleMinDetect = RADIO_PREAMBLE_DETECTOR_08_BITS;
+ 80159c6:	2304      	movs	r3, #4
+ 80159c8:	74a3      	strb	r3, [r4, #18]
+            SubgRf.PacketParams.Params.Gfsk.SyncWordLength = 3 << 3; // convert byte into bit
+ 80159ca:	2318      	movs	r3, #24
+ 80159cc:	74e3      	strb	r3, [r4, #19]
+            SubgRf.PacketParams.Params.Gfsk.AddrComp = RADIO_ADDRESSCOMP_FILT_OFF;
+ 80159ce:	f884 8014 	strb.w	r8, [r4, #20]
+            SubgRf.PacketParams.Params.Gfsk.HeaderType = ( fixLen == true ) ? RADIO_PACKET_FIXED_LENGTH : RADIO_PACKET_VARIABLE_LENGTH;
+ 80159d2:	f087 0701 	eor.w	r7, r7, #1
+ 80159d6:	7567      	strb	r7, [r4, #21]
+            SubgRf.PacketParams.Params.Gfsk.PayloadLength = MaxPayloadLength;
+ 80159d8:	4b57      	ldr	r3, [pc, #348]	; (8015b38 <RadioSetRxConfig+0x2e8>)
+ 80159da:	781b      	ldrb	r3, [r3, #0]
+ 80159dc:	75a3      	strb	r3, [r4, #22]
+            if( crcOn == true )
+ 80159de:	f1bb 0f00 	cmp.w	fp, #0
+ 80159e2:	d026      	beq.n	8015a32 <RadioSetRxConfig+0x1e2>
+                SubgRf.PacketParams.Params.Gfsk.CrcLength = RADIO_CRC_2_BYTES_CCIT;
+ 80159e4:	22f2      	movs	r2, #242	; 0xf2
+ 80159e6:	75e2      	strb	r2, [r4, #23]
+            SubgRf.PacketParams.Params.Gfsk.DcFree = RADIO_DC_FREEWHITENING;
+ 80159e8:	4c52      	ldr	r4, [pc, #328]	; (8015b34 <RadioSetRxConfig+0x2e4>)
+ 80159ea:	2301      	movs	r3, #1
+ 80159ec:	7623      	strb	r3, [r4, #24]
+            RadioStandby( );
+ 80159ee:	f7ff f805 	bl	80149fc <RadioStandby>
+            RadioSetModem( MODEM_FSK );
+ 80159f2:	2000      	movs	r0, #0
+ 80159f4:	f7ff fb30 	bl	8015058 <RadioSetModem>
+            SUBGRF_SetModulationParams( &SubgRf.ModulationParams );
+ 80159f8:	f104 0038 	add.w	r0, r4, #56	; 0x38
+ 80159fc:	f000 fd26 	bl	801644c <SUBGRF_SetModulationParams>
+            SUBGRF_SetPacketParams( &SubgRf.PacketParams );
+ 8015a00:	f104 000e 	add.w	r0, r4, #14
+ 8015a04:	f000 fdaa 	bl	801655c <SUBGRF_SetPacketParams>
+            SUBGRF_SetSyncWord( ( uint8_t[] ){ 0xC1, 0x94, 0xC1, 0x00, 0x00, 0x00, 0x00, 0x00 } );
+ 8015a08:	4a4d      	ldr	r2, [pc, #308]	; (8015b40 <RadioSetRxConfig+0x2f0>)
+ 8015a0a:	ab04      	add	r3, sp, #16
+ 8015a0c:	e892 0003 	ldmia.w	r2, {r0, r1}
+ 8015a10:	e883 0003 	stmia.w	r3, {r0, r1}
+ 8015a14:	4618      	mov	r0, r3
+ 8015a16:	f000 f989 	bl	8015d2c <SUBGRF_SetSyncWord>
+            SUBGRF_SetWhiteningSeed( 0x01FF );
+ 8015a1a:	f240 10ff 	movw	r0, #511	; 0x1ff
+ 8015a1e:	f000 f95c 	bl	8015cda <SUBGRF_SetWhiteningSeed>
+            SubgRf.RxTimeout = ( uint32_t )(( symbTimeout * 8 * 1000 ) /datarate);
+ 8015a22:	f44f 53fa 	mov.w	r3, #8000	; 0x1f40
+ 8015a26:	fb03 f30a 	mul.w	r3, r3, sl
+ 8015a2a:	fbb3 f3f5 	udiv	r3, r3, r5
+ 8015a2e:	60a3      	str	r3, [r4, #8]
+            break;
+ 8015a30:	e735      	b.n	801589e <RadioSetRxConfig+0x4e>
+                SubgRf.PacketParams.Params.Gfsk.CrcLength = RADIO_CRC_OFF;
+ 8015a32:	4b40      	ldr	r3, [pc, #256]	; (8015b34 <RadioSetRxConfig+0x2e4>)
+ 8015a34:	2201      	movs	r2, #1
+ 8015a36:	75da      	strb	r2, [r3, #23]
+ 8015a38:	e7d6      	b.n	80159e8 <RadioSetRxConfig+0x198>
+            SUBGRF_SetStopRxTimerOnPreambleDetect( false );
+ 8015a3a:	2000      	movs	r0, #0
+ 8015a3c:	f000 faf8 	bl	8016030 <SUBGRF_SetStopRxTimerOnPreambleDetect>
+            SubgRf.ModulationParams.PacketType = PACKET_TYPE_LORA;
+ 8015a40:	4a3c      	ldr	r2, [pc, #240]	; (8015b34 <RadioSetRxConfig+0x2e4>)
+ 8015a42:	2301      	movs	r3, #1
+ 8015a44:	f882 3038 	strb.w	r3, [r2, #56]	; 0x38
+            SubgRf.ModulationParams.Params.LoRa.SpreadingFactor = ( RadioLoRaSpreadingFactors_t )datarate;
+ 8015a48:	b2eb      	uxtb	r3, r5
+ 8015a4a:	f882 3050 	strb.w	r3, [r2, #80]	; 0x50
+            SubgRf.ModulationParams.Params.LoRa.Bandwidth = Bandwidths[bandwidth];
+ 8015a4e:	493d      	ldr	r1, [pc, #244]	; (8015b44 <RadioSetRxConfig+0x2f4>)
+ 8015a50:	5d89      	ldrb	r1, [r1, r6]
+ 8015a52:	f882 1051 	strb.w	r1, [r2, #81]	; 0x51
+            SubgRf.ModulationParams.Params.LoRa.CodingRate = ( RadioLoRaCodingRates_t )coderate;
+ 8015a56:	9901      	ldr	r1, [sp, #4]
+ 8015a58:	f882 1052 	strb.w	r1, [r2, #82]	; 0x52
+            if( ( ( bandwidth == 0 ) && ( ( datarate == 11 ) || ( datarate == 12 ) ) ) ||
+ 8015a5c:	b91e      	cbnz	r6, 8015a66 <RadioSetRxConfig+0x216>
+ 8015a5e:	f1a5 020b 	sub.w	r2, r5, #11
+ 8015a62:	2a01      	cmp	r2, #1
+ 8015a64:	d94b      	bls.n	8015afe <RadioSetRxConfig+0x2ae>
+ 8015a66:	2e01      	cmp	r6, #1
+ 8015a68:	d047      	beq.n	8015afa <RadioSetRxConfig+0x2aa>
+                SubgRf.ModulationParams.Params.LoRa.LowDatarateOptimize = 0x00;
+ 8015a6a:	4a32      	ldr	r2, [pc, #200]	; (8015b34 <RadioSetRxConfig+0x2e4>)
+ 8015a6c:	2100      	movs	r1, #0
+ 8015a6e:	f882 1053 	strb.w	r1, [r2, #83]	; 0x53
+            SubgRf.PacketParams.PacketType = PACKET_TYPE_LORA;
+ 8015a72:	4a30      	ldr	r2, [pc, #192]	; (8015b34 <RadioSetRxConfig+0x2e4>)
+ 8015a74:	2101      	movs	r1, #1
+ 8015a76:	7391      	strb	r1, [r2, #14]
+            if( ( SubgRf.ModulationParams.Params.LoRa.SpreadingFactor == LORA_SF5 ) ||
+ 8015a78:	3b05      	subs	r3, #5
+ 8015a7a:	b2db      	uxtb	r3, r3
+ 8015a7c:	428b      	cmp	r3, r1
+ 8015a7e:	d943      	bls.n	8015b08 <RadioSetRxConfig+0x2b8>
+                SubgRf.PacketParams.Params.LoRa.PreambleLength = preambleLen;
+ 8015a80:	4b2c      	ldr	r3, [pc, #176]	; (8015b34 <RadioSetRxConfig+0x2e4>)
+ 8015a82:	f8a3 901c 	strh.w	r9, [r3, #28]
+            SubgRf.PacketParams.Params.LoRa.HeaderType = ( RadioLoRaPacketLengthsMode_t )fixLen;
+ 8015a86:	4c2b      	ldr	r4, [pc, #172]	; (8015b34 <RadioSetRxConfig+0x2e4>)
+ 8015a88:	77a7      	strb	r7, [r4, #30]
+            SubgRf.PacketParams.Params.LoRa.PayloadLength = MaxPayloadLength;
+ 8015a8a:	4b2b      	ldr	r3, [pc, #172]	; (8015b38 <RadioSetRxConfig+0x2e8>)
+ 8015a8c:	781b      	ldrb	r3, [r3, #0]
+ 8015a8e:	77e3      	strb	r3, [r4, #31]
+            SubgRf.PacketParams.Params.LoRa.CrcMode = ( RadioLoRaCrcModes_t )crcOn;
+ 8015a90:	f884 b020 	strb.w	fp, [r4, #32]
+            SubgRf.PacketParams.Params.LoRa.InvertIQ = ( RadioLoRaIQModes_t )iqInverted;
+ 8015a94:	f89d 3060 	ldrb.w	r3, [sp, #96]	; 0x60
+ 8015a98:	f884 3021 	strb.w	r3, [r4, #33]	; 0x21
+            RadioStandby( );
+ 8015a9c:	f7fe ffae 	bl	80149fc <RadioStandby>
+            RadioSetModem( MODEM_LORA );
+ 8015aa0:	2001      	movs	r0, #1
+ 8015aa2:	f7ff fad9 	bl	8015058 <RadioSetModem>
+            SUBGRF_SetModulationParams( &SubgRf.ModulationParams );
+ 8015aa6:	f104 0038 	add.w	r0, r4, #56	; 0x38
+ 8015aaa:	f000 fccf 	bl	801644c <SUBGRF_SetModulationParams>
+            SUBGRF_SetPacketParams( &SubgRf.PacketParams );
+ 8015aae:	f104 000e 	add.w	r0, r4, #14
+ 8015ab2:	f000 fd53 	bl	801655c <SUBGRF_SetPacketParams>
+            SUBGRF_SetLoRaSymbNumTimeout( symbTimeout );
+ 8015ab6:	fa5f f08a 	uxtb.w	r0, sl
+ 8015aba:	f000 fac6 	bl	801604a <SUBGRF_SetLoRaSymbNumTimeout>
+            SUBGRF_WriteRegister(SUBGHZ_AGCCFG,SUBGRF_ReadRegister(SUBGHZ_AGCCFG)&0x1);
+ 8015abe:	f640 00a3 	movw	r0, #2211	; 0x8a3
+ 8015ac2:	f000 f8e7 	bl	8015c94 <SUBGRF_ReadRegister>
+ 8015ac6:	f000 0101 	and.w	r1, r0, #1
+ 8015aca:	f640 00a3 	movw	r0, #2211	; 0x8a3
+ 8015ace:	f000 f8d1 	bl	8015c74 <SUBGRF_WriteRegister>
+            if( SubgRf.PacketParams.Params.LoRa.InvertIQ == LORA_IQ_INVERTED )
+ 8015ad2:	f894 3021 	ldrb.w	r3, [r4, #33]	; 0x21
+ 8015ad6:	2b01      	cmp	r3, #1
+ 8015ad8:	d021      	beq.n	8015b1e <RadioSetRxConfig+0x2ce>
+                SUBGRF_WriteRegister( SUBGHZ_LIQPOLR, SUBGRF_ReadRegister( SUBGHZ_LIQPOLR ) | ( 1 << 2 ) );
+ 8015ada:	f240 7036 	movw	r0, #1846	; 0x736
+ 8015ade:	f000 f8d9 	bl	8015c94 <SUBGRF_ReadRegister>
+ 8015ae2:	f040 0104 	orr.w	r1, r0, #4
+ 8015ae6:	b2c9      	uxtb	r1, r1
+ 8015ae8:	f240 7036 	movw	r0, #1846	; 0x736
+ 8015aec:	f000 f8c2 	bl	8015c74 <SUBGRF_WriteRegister>
+            SubgRf.RxTimeout = 0xFFFF;
+ 8015af0:	4b10      	ldr	r3, [pc, #64]	; (8015b34 <RadioSetRxConfig+0x2e4>)
+ 8015af2:	f64f 72ff 	movw	r2, #65535	; 0xffff
+ 8015af6:	609a      	str	r2, [r3, #8]
+}
+ 8015af8:	e6d1      	b.n	801589e <RadioSetRxConfig+0x4e>
+                ( ( bandwidth == 1 ) && ( datarate == 12 ) ) )
+ 8015afa:	2d0c      	cmp	r5, #12
+ 8015afc:	d1b5      	bne.n	8015a6a <RadioSetRxConfig+0x21a>
+                SubgRf.ModulationParams.Params.LoRa.LowDatarateOptimize = 0x01;
+ 8015afe:	4a0d      	ldr	r2, [pc, #52]	; (8015b34 <RadioSetRxConfig+0x2e4>)
+ 8015b00:	2101      	movs	r1, #1
+ 8015b02:	f882 1053 	strb.w	r1, [r2, #83]	; 0x53
+ 8015b06:	e7b4      	b.n	8015a72 <RadioSetRxConfig+0x222>
+                if( preambleLen < 12 )
+ 8015b08:	f1b9 0f0b 	cmp.w	r9, #11
+ 8015b0c:	d803      	bhi.n	8015b16 <RadioSetRxConfig+0x2c6>
+                    SubgRf.PacketParams.Params.LoRa.PreambleLength = 12;
+ 8015b0e:	4613      	mov	r3, r2
+ 8015b10:	220c      	movs	r2, #12
+ 8015b12:	839a      	strh	r2, [r3, #28]
+ 8015b14:	e7b7      	b.n	8015a86 <RadioSetRxConfig+0x236>
+                    SubgRf.PacketParams.Params.LoRa.PreambleLength = preambleLen;
+ 8015b16:	4b07      	ldr	r3, [pc, #28]	; (8015b34 <RadioSetRxConfig+0x2e4>)
+ 8015b18:	f8a3 901c 	strh.w	r9, [r3, #28]
+ 8015b1c:	e7b3      	b.n	8015a86 <RadioSetRxConfig+0x236>
+                SUBGRF_WriteRegister( SUBGHZ_LIQPOLR, SUBGRF_ReadRegister( SUBGHZ_LIQPOLR ) & ~( 1 << 2 ) );
+ 8015b1e:	f240 7036 	movw	r0, #1846	; 0x736
+ 8015b22:	f000 f8b7 	bl	8015c94 <SUBGRF_ReadRegister>
+ 8015b26:	f000 01fb 	and.w	r1, r0, #251	; 0xfb
+ 8015b2a:	f240 7036 	movw	r0, #1846	; 0x736
+ 8015b2e:	f000 f8a1 	bl	8015c74 <SUBGRF_WriteRegister>
+ 8015b32:	e7dd      	b.n	8015af0 <RadioSetRxConfig+0x2a0>
+ 8015b34:	20002750 	.word	0x20002750
+ 8015b38:	200008c0 	.word	0x200008c0
+ 8015b3c:	080178ac 	.word	0x080178ac
+ 8015b40:	080178a4 	.word	0x080178a4
+ 8015b44:	08018cb0 	.word	0x08018cb0
+
+08015b48 <RadioIsChannelFree>:
+{
+ 8015b48:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8015b4a:	b08b      	sub	sp, #44	; 0x2c
+ 8015b4c:	4604      	mov	r4, r0
+ 8015b4e:	460f      	mov	r7, r1
+ 8015b50:	4616      	mov	r6, r2
+ 8015b52:	461d      	mov	r5, r3
+    RadioStandby( );
+ 8015b54:	f7fe ff52 	bl	80149fc <RadioStandby>
+    RadioSetModem( MODEM_FSK );
+ 8015b58:	2000      	movs	r0, #0
+ 8015b5a:	f7ff fa7d 	bl	8015058 <RadioSetModem>
+    RadioSetChannel( freq );
+ 8015b5e:	4620      	mov	r0, r4
+ 8015b60:	f7ff f944 	bl	8014dec <RadioSetChannel>
+    RadioSetRxConfig( MODEM_FSK, rxBandwidth, 600, 0, rxBandwidth, 3, 0, false,
+ 8015b64:	2301      	movs	r3, #1
+ 8015b66:	9309      	str	r3, [sp, #36]	; 0x24
+ 8015b68:	2400      	movs	r4, #0
+ 8015b6a:	9408      	str	r4, [sp, #32]
+ 8015b6c:	9407      	str	r4, [sp, #28]
+ 8015b6e:	9406      	str	r4, [sp, #24]
+ 8015b70:	9405      	str	r4, [sp, #20]
+ 8015b72:	9404      	str	r4, [sp, #16]
+ 8015b74:	9403      	str	r4, [sp, #12]
+ 8015b76:	9402      	str	r4, [sp, #8]
+ 8015b78:	2303      	movs	r3, #3
+ 8015b7a:	9301      	str	r3, [sp, #4]
+ 8015b7c:	9700      	str	r7, [sp, #0]
+ 8015b7e:	4623      	mov	r3, r4
+ 8015b80:	f44f 7216 	mov.w	r2, #600	; 0x258
+ 8015b84:	4639      	mov	r1, r7
+ 8015b86:	4620      	mov	r0, r4
+ 8015b88:	f7ff fe62 	bl	8015850 <RadioSetRxConfig>
+    RadioRx( 0 );
+ 8015b8c:	4620      	mov	r0, r4
+ 8015b8e:	f7ff f945 	bl	8014e1c <RadioRx>
+    RADIO_DELAY_MS( RadioGetWakeupTime( ) );
+ 8015b92:	f7ff f8f7 	bl	8014d84 <RadioGetWakeupTime>
+ 8015b96:	f7ed f88b 	bl	8002cb0 <HAL_Delay>
+    carrierSenseTime = TimerGetCurrentTime( );
+ 8015b9a:	f001 fadf 	bl	801715c <UTIL_TIMER_GetCurrentTime>
+ 8015b9e:	4604      	mov	r4, r0
+    while( TimerGetElapsedTime( carrierSenseTime ) < maxCarrierSenseTime )
+ 8015ba0:	4620      	mov	r0, r4
+ 8015ba2:	f001 fae5 	bl	8017170 <UTIL_TIMER_GetElapsedTime>
+ 8015ba6:	42a8      	cmp	r0, r5
+ 8015ba8:	d206      	bcs.n	8015bb8 <RadioIsChannelFree+0x70>
+        rssi = RadioRssi( MODEM_FSK );
+ 8015baa:	2000      	movs	r0, #0
+ 8015bac:	f7ff f8f7 	bl	8014d9e <RadioRssi>
+        if( rssi > rssiThresh )
+ 8015bb0:	42b0      	cmp	r0, r6
+ 8015bb2:	ddf5      	ble.n	8015ba0 <RadioIsChannelFree+0x58>
+            status = false;
+ 8015bb4:	2400      	movs	r4, #0
+ 8015bb6:	e000      	b.n	8015bba <RadioIsChannelFree+0x72>
+    bool status = true;
+ 8015bb8:	2401      	movs	r4, #1
+    RadioStandby( );
+ 8015bba:	f7fe ff1f 	bl	80149fc <RadioStandby>
+}
+ 8015bbe:	4620      	mov	r0, r4
+ 8015bc0:	b00b      	add	sp, #44	; 0x2c
+ 8015bc2:	bdf0      	pop	{r4, r5, r6, r7, pc}
+
+08015bc4 <RadioInit>:
+{
+ 8015bc4:	b570      	push	{r4, r5, r6, lr}
+ 8015bc6:	b082      	sub	sp, #8
+    RadioEvents = events;
+ 8015bc8:	4b1d      	ldr	r3, [pc, #116]	; (8015c40 <RadioInit+0x7c>)
+ 8015bca:	6018      	str	r0, [r3, #0]
+    SubgRf.RxContinuous = false;
+ 8015bcc:	4d1d      	ldr	r5, [pc, #116]	; (8015c44 <RadioInit+0x80>)
+ 8015bce:	2400      	movs	r4, #0
+ 8015bd0:	706c      	strb	r4, [r5, #1]
+    SubgRf.TxTimeout = 0;
+ 8015bd2:	606c      	str	r4, [r5, #4]
+    SubgRf.RxTimeout = 0;
+ 8015bd4:	60ac      	str	r4, [r5, #8]
+    SubgRf.RxDcPreambleDetectTimeout = 0;
+ 8015bd6:	65ac      	str	r4, [r5, #88]	; 0x58
+    SUBGRF_Init( RadioOnDioIrq );
+ 8015bd8:	481b      	ldr	r0, [pc, #108]	; (8015c48 <RadioInit+0x84>)
+ 8015bda:	f000 fb27 	bl	801622c <SUBGRF_Init>
+    SubgRf.PublicNetwork.Current = false;
+ 8015bde:	736c      	strb	r4, [r5, #13]
+    SubgRf.PublicNetwork.Previous = false;
+ 8015be0:	732c      	strb	r4, [r5, #12]
+    SUBGRF_SetRegulatorMode( );
+ 8015be2:	f000 fa53 	bl	801608c <SUBGRF_SetRegulatorMode>
+    SUBGRF_SetBufferBaseAddress( 0x00, 0x00 );
+ 8015be6:	4621      	mov	r1, r4
+ 8015be8:	4620      	mov	r0, r4
+ 8015bea:	f000 fd29 	bl	8016640 <SUBGRF_SetBufferBaseAddress>
+    SUBGRF_SetTxParams( RFO_LP, 0, RADIO_RAMP_200_US );
+ 8015bee:	2204      	movs	r2, #4
+ 8015bf0:	4621      	mov	r1, r4
+ 8015bf2:	2001      	movs	r0, #1
+ 8015bf4:	f000 fb9c 	bl	8016330 <SUBGRF_SetTxParams>
+    SUBGRF_SetDioIrqParams( IRQ_RADIO_ALL, IRQ_RADIO_ALL, IRQ_RADIO_NONE, IRQ_RADIO_NONE );
+ 8015bf8:	4623      	mov	r3, r4
+ 8015bfa:	4622      	mov	r2, r4
+ 8015bfc:	f64f 71ff 	movw	r1, #65535	; 0xffff
+ 8015c00:	4608      	mov	r0, r1
+ 8015c02:	f000 fada 	bl	80161ba <SUBGRF_SetDioIrqParams>
+    RadioSleep();
+ 8015c06:	f7ff f941 	bl	8014e8c <RadioSleep>
+    TimerInit( &TxTimeoutTimer, RadioOnTxTimeoutIrq );
+ 8015c0a:	4e10      	ldr	r6, [pc, #64]	; (8015c4c <RadioInit+0x88>)
+ 8015c0c:	9400      	str	r4, [sp, #0]
+ 8015c0e:	4b10      	ldr	r3, [pc, #64]	; (8015c50 <RadioInit+0x8c>)
+ 8015c10:	4622      	mov	r2, r4
+ 8015c12:	f04f 31ff 	mov.w	r1, #4294967295
+ 8015c16:	4630      	mov	r0, r6
+ 8015c18:	f001 fa82 	bl	8017120 <UTIL_TIMER_Create>
+    TimerInit( &RxTimeoutTimer, RadioOnRxTimeoutIrq );
+ 8015c1c:	4d0d      	ldr	r5, [pc, #52]	; (8015c54 <RadioInit+0x90>)
+ 8015c1e:	9400      	str	r4, [sp, #0]
+ 8015c20:	4b0d      	ldr	r3, [pc, #52]	; (8015c58 <RadioInit+0x94>)
+ 8015c22:	4622      	mov	r2, r4
+ 8015c24:	f04f 31ff 	mov.w	r1, #4294967295
+ 8015c28:	4628      	mov	r0, r5
+ 8015c2a:	f001 fa79 	bl	8017120 <UTIL_TIMER_Create>
+    TimerStop( &TxTimeoutTimer );
+ 8015c2e:	4630      	mov	r0, r6
+ 8015c30:	f001 fad4 	bl	80171dc <UTIL_TIMER_Stop>
+    TimerStop( &RxTimeoutTimer );
+ 8015c34:	4628      	mov	r0, r5
+ 8015c36:	f001 fad1 	bl	80171dc <UTIL_TIMER_Stop>
+}
+ 8015c3a:	b002      	add	sp, #8
+ 8015c3c:	bd70      	pop	{r4, r5, r6, pc}
+ 8015c3e:	bf00      	nop
+ 8015c40:	20002734 	.word	0x20002734
+ 8015c44:	20002750 	.word	0x20002750
+ 8015c48:	08014d71 	.word	0x08014d71
+ 8015c4c:	200027ac 	.word	0x200027ac
+ 8015c50:	080147e1 	.word	0x080147e1
+ 8015c54:	20002738 	.word	0x20002738
+ 8015c58:	08014809 	.word	0x08014809
+
+08015c5c <SUBGRF_GetOperatingMode>:
+}
+
+RadioOperatingModes_t SUBGRF_GetOperatingMode( void )
+{
+    return OperatingMode;
+}
+ 8015c5c:	4b01      	ldr	r3, [pc, #4]	; (8015c64 <SUBGRF_GetOperatingMode+0x8>)
+ 8015c5e:	7818      	ldrb	r0, [r3, #0]
+ 8015c60:	4770      	bx	lr
+ 8015c62:	bf00      	nop
+ 8015c64:	200027ca 	.word	0x200027ca
+
+08015c68 <SUBGRF_GetPacketType>:
+}
+
+RadioPacketTypes_t SUBGRF_GetPacketType( void )
+{
+    return PacketType;
+}
+ 8015c68:	4b01      	ldr	r3, [pc, #4]	; (8015c70 <SUBGRF_GetPacketType+0x8>)
+ 8015c6a:	7818      	ldrb	r0, [r3, #0]
+ 8015c6c:	4770      	bx	lr
+ 8015c6e:	bf00      	nop
+ 8015c70:	200027cb 	.word	0x200027cb
+
+08015c74 <SUBGRF_WriteRegister>:
+    buf[1] = ( uint8_t )( ( uint16_t )irq & 0x00FF );
+    SUBGRF_WriteCommand( RADIO_CLR_IRQSTATUS, buf, 2 );
+}
+
+void SUBGRF_WriteRegister( uint16_t addr, uint8_t data )
+{
+ 8015c74:	b500      	push	{lr}
+ 8015c76:	b083      	sub	sp, #12
+ 8015c78:	f88d 1007 	strb.w	r1, [sp, #7]
+    HAL_SUBGHZ_WriteRegisters( &hsubghz, addr, (uint8_t*)&data, 1 );
+ 8015c7c:	2301      	movs	r3, #1
+ 8015c7e:	f10d 0207 	add.w	r2, sp, #7
+ 8015c82:	4601      	mov	r1, r0
+ 8015c84:	4802      	ldr	r0, [pc, #8]	; (8015c90 <SUBGRF_WriteRegister+0x1c>)
+ 8015c86:	f7f5 fbf7 	bl	800b478 <HAL_SUBGHZ_WriteRegisters>
+}
+ 8015c8a:	b003      	add	sp, #12
+ 8015c8c:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8015c90:	20000acc 	.word	0x20000acc
+
+08015c94 <SUBGRF_ReadRegister>:
+
+uint8_t SUBGRF_ReadRegister( uint16_t addr )
+{
+ 8015c94:	b500      	push	{lr}
+ 8015c96:	b083      	sub	sp, #12
+ 8015c98:	4601      	mov	r1, r0
+    uint8_t data;
+    HAL_SUBGHZ_ReadRegisters( &hsubghz, addr, &data, 1 );
+ 8015c9a:	2301      	movs	r3, #1
+ 8015c9c:	f10d 0207 	add.w	r2, sp, #7
+ 8015ca0:	4803      	ldr	r0, [pc, #12]	; (8015cb0 <SUBGRF_ReadRegister+0x1c>)
+ 8015ca2:	f7f5 fc39 	bl	800b518 <HAL_SUBGHZ_ReadRegisters>
+    return data;
+}
+ 8015ca6:	f89d 0007 	ldrb.w	r0, [sp, #7]
+ 8015caa:	b003      	add	sp, #12
+ 8015cac:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8015cb0:	20000acc 	.word	0x20000acc
+
+08015cb4 <Radio_SMPS_Set>:
+{
+    RadioOnDioIrqCb( IRQ_LR_FHSS_HOP );
+}
+
+static void Radio_SMPS_Set(uint8_t level)
+{
+ 8015cb4:	b510      	push	{r4, lr}
+ 8015cb6:	4604      	mov	r4, r0
+  if ( 1U == RBI_IsDCDC() )
+ 8015cb8:	f7ef f804 	bl	8004cc4 <RBI_IsDCDC>
+ 8015cbc:	2801      	cmp	r0, #1
+ 8015cbe:	d000      	beq.n	8015cc2 <Radio_SMPS_Set+0xe>
+    uint8_t modReg;
+    modReg= SUBGRF_ReadRegister(SUBGHZ_SMPSC2R);
+    modReg&= (~SMPS_DRV_MASK);
+    SUBGRF_WriteRegister(SUBGHZ_SMPSC2R, modReg | level);
+  }
+}
+ 8015cc0:	bd10      	pop	{r4, pc}
+    modReg= SUBGRF_ReadRegister(SUBGHZ_SMPSC2R);
+ 8015cc2:	f640 1023 	movw	r0, #2339	; 0x923
+ 8015cc6:	f7ff ffe5 	bl	8015c94 <SUBGRF_ReadRegister>
+    modReg&= (~SMPS_DRV_MASK);
+ 8015cca:	f000 01f9 	and.w	r1, r0, #249	; 0xf9
+    SUBGRF_WriteRegister(SUBGHZ_SMPSC2R, modReg | level);
+ 8015cce:	4321      	orrs	r1, r4
+ 8015cd0:	f640 1023 	movw	r0, #2339	; 0x923
+ 8015cd4:	f7ff ffce 	bl	8015c74 <SUBGRF_WriteRegister>
+}
+ 8015cd8:	e7f2      	b.n	8015cc0 <Radio_SMPS_Set+0xc>
+
+08015cda <SUBGRF_SetWhiteningSeed>:
+{
+ 8015cda:	b510      	push	{r4, lr}
+ 8015cdc:	4604      	mov	r4, r0
+    switch( SUBGRF_GetPacketType( ) )
+ 8015cde:	f7ff ffc3 	bl	8015c68 <SUBGRF_GetPacketType>
+ 8015ce2:	b100      	cbz	r0, 8015ce6 <SUBGRF_SetWhiteningSeed+0xc>
+}
+ 8015ce4:	bd10      	pop	{r4, pc}
+            regValue = SUBGRF_ReadRegister( REG_LR_WHITSEEDBASEADDR_MSB ) & 0xFE;
+ 8015ce6:	f44f 60d7 	mov.w	r0, #1720	; 0x6b8
+ 8015cea:	f7ff ffd3 	bl	8015c94 <SUBGRF_ReadRegister>
+ 8015cee:	f000 00fe 	and.w	r0, r0, #254	; 0xfe
+            regValue = ( ( seed >> 8 ) & 0x01 ) | regValue;
+ 8015cf2:	f3c4 2100 	ubfx	r1, r4, #8, #1
+            SUBGRF_WriteRegister( REG_LR_WHITSEEDBASEADDR_MSB, regValue ); // only 1 bit.
+ 8015cf6:	4301      	orrs	r1, r0
+ 8015cf8:	f44f 60d7 	mov.w	r0, #1720	; 0x6b8
+ 8015cfc:	f7ff ffba 	bl	8015c74 <SUBGRF_WriteRegister>
+            SUBGRF_WriteRegister( REG_LR_WHITSEEDBASEADDR_LSB, (uint8_t)seed );
+ 8015d00:	b2e1      	uxtb	r1, r4
+ 8015d02:	f240 60b9 	movw	r0, #1721	; 0x6b9
+ 8015d06:	f7ff ffb5 	bl	8015c74 <SUBGRF_WriteRegister>
+}
+ 8015d0a:	e7eb      	b.n	8015ce4 <SUBGRF_SetWhiteningSeed+0xa>
+
+08015d0c <SUBGRF_WriteRegisters>:
+{
+ 8015d0c:	b510      	push	{r4, lr}
+ 8015d0e:	4613      	mov	r3, r2
+  __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
+ 8015d10:	f3ef 8410 	mrs	r4, PRIMASK
+  __ASM volatile ("cpsid i" : : : "memory");
+ 8015d14:	b672      	cpsid	i
+    HAL_SUBGHZ_WriteRegisters( &hsubghz, address, buffer, size );
+ 8015d16:	460a      	mov	r2, r1
+ 8015d18:	4601      	mov	r1, r0
+ 8015d1a:	4803      	ldr	r0, [pc, #12]	; (8015d28 <SUBGRF_WriteRegisters+0x1c>)
+ 8015d1c:	f7f5 fbac 	bl	800b478 <HAL_SUBGHZ_WriteRegisters>
+  __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
+ 8015d20:	f384 8810 	msr	PRIMASK, r4
+}
+ 8015d24:	bd10      	pop	{r4, pc}
+ 8015d26:	bf00      	nop
+ 8015d28:	20000acc 	.word	0x20000acc
+
+08015d2c <SUBGRF_SetSyncWord>:
+{
+ 8015d2c:	b508      	push	{r3, lr}
+ 8015d2e:	4601      	mov	r1, r0
+    SUBGRF_WriteRegisters( REG_LR_SYNCWORDBASEADDRESS, syncWord, 8 );
+ 8015d30:	2208      	movs	r2, #8
+ 8015d32:	f44f 60d8 	mov.w	r0, #1728	; 0x6c0
+ 8015d36:	f7ff ffe9 	bl	8015d0c <SUBGRF_WriteRegisters>
+}
+ 8015d3a:	2000      	movs	r0, #0
+ 8015d3c:	bd08      	pop	{r3, pc}
+
+08015d3e <SUBGRF_SetCrcSeed>:
+{
+ 8015d3e:	b500      	push	{lr}
+ 8015d40:	b083      	sub	sp, #12
+    buf[0] = ( uint8_t )( ( seed >> 8 ) & 0xFF );
+ 8015d42:	0a03      	lsrs	r3, r0, #8
+ 8015d44:	f88d 3004 	strb.w	r3, [sp, #4]
+    buf[1] = ( uint8_t )( seed & 0xFF );
+ 8015d48:	f88d 0005 	strb.w	r0, [sp, #5]
+    switch( SUBGRF_GetPacketType( ) )
+ 8015d4c:	f7ff ff8c 	bl	8015c68 <SUBGRF_GetPacketType>
+ 8015d50:	b110      	cbz	r0, 8015d58 <SUBGRF_SetCrcSeed+0x1a>
+}
+ 8015d52:	b003      	add	sp, #12
+ 8015d54:	f85d fb04 	ldr.w	pc, [sp], #4
+            SUBGRF_WriteRegisters( REG_LR_CRCSEEDBASEADDR, buf, 2 );
+ 8015d58:	2202      	movs	r2, #2
+ 8015d5a:	a901      	add	r1, sp, #4
+ 8015d5c:	f240 60bc 	movw	r0, #1724	; 0x6bc
+ 8015d60:	f7ff ffd4 	bl	8015d0c <SUBGRF_WriteRegisters>
+}
+ 8015d64:	e7f5      	b.n	8015d52 <SUBGRF_SetCrcSeed+0x14>
+
+08015d66 <SUBGRF_SetCrcPolynomial>:
+{
+ 8015d66:	b500      	push	{lr}
+ 8015d68:	b083      	sub	sp, #12
+    buf[0] = ( uint8_t )( ( polynomial >> 8 ) & 0xFF );
+ 8015d6a:	0a03      	lsrs	r3, r0, #8
+ 8015d6c:	f88d 3004 	strb.w	r3, [sp, #4]
+    buf[1] = ( uint8_t )( polynomial & 0xFF );
+ 8015d70:	f88d 0005 	strb.w	r0, [sp, #5]
+    switch( SUBGRF_GetPacketType( ) )
+ 8015d74:	f7ff ff78 	bl	8015c68 <SUBGRF_GetPacketType>
+ 8015d78:	b110      	cbz	r0, 8015d80 <SUBGRF_SetCrcPolynomial+0x1a>
+}
+ 8015d7a:	b003      	add	sp, #12
+ 8015d7c:	f85d fb04 	ldr.w	pc, [sp], #4
+            SUBGRF_WriteRegisters( REG_LR_CRCPOLYBASEADDR, buf, 2 );
+ 8015d80:	2202      	movs	r2, #2
+ 8015d82:	a901      	add	r1, sp, #4
+ 8015d84:	f240 60be 	movw	r0, #1726	; 0x6be
+ 8015d88:	f7ff ffc0 	bl	8015d0c <SUBGRF_WriteRegisters>
+}
+ 8015d8c:	e7f5      	b.n	8015d7a <SUBGRF_SetCrcPolynomial+0x14>
+	...
+
+08015d90 <SUBGRF_ReadRegisters>:
+{
+ 8015d90:	b510      	push	{r4, lr}
+ 8015d92:	4613      	mov	r3, r2
+  __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
+ 8015d94:	f3ef 8410 	mrs	r4, PRIMASK
+  __ASM volatile ("cpsid i" : : : "memory");
+ 8015d98:	b672      	cpsid	i
+    HAL_SUBGHZ_ReadRegisters( &hsubghz, address, buffer, size );
+ 8015d9a:	460a      	mov	r2, r1
+ 8015d9c:	4601      	mov	r1, r0
+ 8015d9e:	4803      	ldr	r0, [pc, #12]	; (8015dac <SUBGRF_ReadRegisters+0x1c>)
+ 8015da0:	f7f5 fbba 	bl	800b518 <HAL_SUBGHZ_ReadRegisters>
+  __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
+ 8015da4:	f384 8810 	msr	PRIMASK, r4
+}
+ 8015da8:	bd10      	pop	{r4, pc}
+ 8015daa:	bf00      	nop
+ 8015dac:	20000acc 	.word	0x20000acc
+
+08015db0 <SUBGRF_WriteBuffer>:
+{
+ 8015db0:	b510      	push	{r4, lr}
+ 8015db2:	4613      	mov	r3, r2
+  __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
+ 8015db4:	f3ef 8410 	mrs	r4, PRIMASK
+  __ASM volatile ("cpsid i" : : : "memory");
+ 8015db8:	b672      	cpsid	i
+    HAL_SUBGHZ_WriteBuffer( &hsubghz, offset, buffer, size );
+ 8015dba:	460a      	mov	r2, r1
+ 8015dbc:	4601      	mov	r1, r0
+ 8015dbe:	4803      	ldr	r0, [pc, #12]	; (8015dcc <SUBGRF_WriteBuffer+0x1c>)
+ 8015dc0:	f7f5 fd08 	bl	800b7d4 <HAL_SUBGHZ_WriteBuffer>
+  __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
+ 8015dc4:	f384 8810 	msr	PRIMASK, r4
+}
+ 8015dc8:	bd10      	pop	{r4, pc}
+ 8015dca:	bf00      	nop
+ 8015dcc:	20000acc 	.word	0x20000acc
+
+08015dd0 <SUBGRF_SetPayload>:
+{
+ 8015dd0:	b508      	push	{r3, lr}
+ 8015dd2:	460a      	mov	r2, r1
+    SUBGRF_WriteBuffer( 0x00, payload, size );
+ 8015dd4:	4601      	mov	r1, r0
+ 8015dd6:	2000      	movs	r0, #0
+ 8015dd8:	f7ff ffea 	bl	8015db0 <SUBGRF_WriteBuffer>
+}
+ 8015ddc:	bd08      	pop	{r3, pc}
+	...
+
+08015de0 <SUBGRF_ReadBuffer>:
+{
+ 8015de0:	b510      	push	{r4, lr}
+ 8015de2:	4613      	mov	r3, r2
+  __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
+ 8015de4:	f3ef 8410 	mrs	r4, PRIMASK
+  __ASM volatile ("cpsid i" : : : "memory");
+ 8015de8:	b672      	cpsid	i
+    HAL_SUBGHZ_ReadBuffer( &hsubghz, offset, buffer, size );
+ 8015dea:	460a      	mov	r2, r1
+ 8015dec:	4601      	mov	r1, r0
+ 8015dee:	4803      	ldr	r0, [pc, #12]	; (8015dfc <SUBGRF_ReadBuffer+0x1c>)
+ 8015df0:	f7f5 fd3a 	bl	800b868 <HAL_SUBGHZ_ReadBuffer>
+  __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
+ 8015df4:	f384 8810 	msr	PRIMASK, r4
+}
+ 8015df8:	bd10      	pop	{r4, pc}
+ 8015dfa:	bf00      	nop
+ 8015dfc:	20000acc 	.word	0x20000acc
+
+08015e00 <SUBGRF_WriteCommand>:
+{
+ 8015e00:	b510      	push	{r4, lr}
+ 8015e02:	4613      	mov	r3, r2
+  __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
+ 8015e04:	f3ef 8410 	mrs	r4, PRIMASK
+  __ASM volatile ("cpsid i" : : : "memory");
+ 8015e08:	b672      	cpsid	i
+    HAL_SUBGHZ_ExecSetCmd( &hsubghz, Command, pBuffer, Size );
+ 8015e0a:	460a      	mov	r2, r1
+ 8015e0c:	4601      	mov	r1, r0
+ 8015e0e:	4803      	ldr	r0, [pc, #12]	; (8015e1c <SUBGRF_WriteCommand+0x1c>)
+ 8015e10:	f7f5 fbd6 	bl	800b5c0 <HAL_SUBGHZ_ExecSetCmd>
+  __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
+ 8015e14:	f384 8810 	msr	PRIMASK, r4
+}
+ 8015e18:	bd10      	pop	{r4, pc}
+ 8015e1a:	bf00      	nop
+ 8015e1c:	20000acc 	.word	0x20000acc
+
+08015e20 <SUBGRF_SetSleep>:
+{
+ 8015e20:	b510      	push	{r4, lr}
+ 8015e22:	b082      	sub	sp, #8
+ 8015e24:	4604      	mov	r4, r0
+    RBI_ConfigRFSwitch(RBI_SWITCH_OFF);
+ 8015e26:	2000      	movs	r0, #0
+ 8015e28:	f7ee ff08 	bl	8004c3c <RBI_ConfigRFSwitch>
+    Radio_SMPS_Set(SMPS_DRIVE_SETTING_DEFAULT);
+ 8015e2c:	2002      	movs	r0, #2
+ 8015e2e:	f7ff ff41 	bl	8015cb4 <Radio_SMPS_Set>
+    uint8_t value = ( ( ( uint8_t )sleepConfig.Fields.WarmStart << 2 ) |
+ 8015e32:	f004 0304 	and.w	r3, r4, #4
+                      ( ( uint8_t )sleepConfig.Fields.Reset << 1 ) |
+ 8015e36:	f004 0202 	and.w	r2, r4, #2
+    uint8_t value = ( ( ( uint8_t )sleepConfig.Fields.WarmStart << 2 ) |
+ 8015e3a:	4313      	orrs	r3, r2
+                      ( ( uint8_t )sleepConfig.Fields.WakeUpRTC ) );
+ 8015e3c:	f004 0401 	and.w	r4, r4, #1
+                      ( ( uint8_t )sleepConfig.Fields.Reset << 1 ) |
+ 8015e40:	4323      	orrs	r3, r4
+    uint8_t value = ( ( ( uint8_t )sleepConfig.Fields.WarmStart << 2 ) |
+ 8015e42:	f88d 3007 	strb.w	r3, [sp, #7]
+    SUBGRF_WriteCommand( RADIO_SET_SLEEP, &value, 1 );
+ 8015e46:	2201      	movs	r2, #1
+ 8015e48:	f10d 0107 	add.w	r1, sp, #7
+ 8015e4c:	2084      	movs	r0, #132	; 0x84
+ 8015e4e:	f7ff ffd7 	bl	8015e00 <SUBGRF_WriteCommand>
+    OperatingMode = MODE_SLEEP;
+ 8015e52:	4b02      	ldr	r3, [pc, #8]	; (8015e5c <SUBGRF_SetSleep+0x3c>)
+ 8015e54:	2200      	movs	r2, #0
+ 8015e56:	701a      	strb	r2, [r3, #0]
+}
+ 8015e58:	b002      	add	sp, #8
+ 8015e5a:	bd10      	pop	{r4, pc}
+ 8015e5c:	200027ca 	.word	0x200027ca
+
+08015e60 <SUBGRF_SetStandby>:
+{
+ 8015e60:	b500      	push	{lr}
+ 8015e62:	b083      	sub	sp, #12
+ 8015e64:	f88d 0007 	strb.w	r0, [sp, #7]
+    SUBGRF_WriteCommand( RADIO_SET_STANDBY, ( uint8_t* )&standbyConfig, 1 );
+ 8015e68:	2201      	movs	r2, #1
+ 8015e6a:	f10d 0107 	add.w	r1, sp, #7
+ 8015e6e:	2080      	movs	r0, #128	; 0x80
+ 8015e70:	f7ff ffc6 	bl	8015e00 <SUBGRF_WriteCommand>
+    if( standbyConfig == STDBY_RC )
+ 8015e74:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8015e78:	b92b      	cbnz	r3, 8015e86 <SUBGRF_SetStandby+0x26>
+        OperatingMode = MODE_STDBY_RC;
+ 8015e7a:	4b05      	ldr	r3, [pc, #20]	; (8015e90 <SUBGRF_SetStandby+0x30>)
+ 8015e7c:	2201      	movs	r2, #1
+ 8015e7e:	701a      	strb	r2, [r3, #0]
+}
+ 8015e80:	b003      	add	sp, #12
+ 8015e82:	f85d fb04 	ldr.w	pc, [sp], #4
+        OperatingMode = MODE_STDBY_XOSC;
+ 8015e86:	4b02      	ldr	r3, [pc, #8]	; (8015e90 <SUBGRF_SetStandby+0x30>)
+ 8015e88:	2202      	movs	r2, #2
+ 8015e8a:	701a      	strb	r2, [r3, #0]
+}
+ 8015e8c:	e7f8      	b.n	8015e80 <SUBGRF_SetStandby+0x20>
+ 8015e8e:	bf00      	nop
+ 8015e90:	200027ca 	.word	0x200027ca
+
+08015e94 <SUBGRF_SetTx>:
+{
+ 8015e94:	b500      	push	{lr}
+ 8015e96:	b083      	sub	sp, #12
+    OperatingMode = MODE_TX;
+ 8015e98:	4b0a      	ldr	r3, [pc, #40]	; (8015ec4 <SUBGRF_SetTx+0x30>)
+ 8015e9a:	2204      	movs	r2, #4
+ 8015e9c:	701a      	strb	r2, [r3, #0]
+    buf[0] = ( uint8_t )( ( timeout >> 16 ) & 0xFF );
+ 8015e9e:	f3c0 4307 	ubfx	r3, r0, #16, #8
+ 8015ea2:	f88d 3004 	strb.w	r3, [sp, #4]
+    buf[1] = ( uint8_t )( ( timeout >> 8 ) & 0xFF );
+ 8015ea6:	f3c0 2307 	ubfx	r3, r0, #8, #8
+ 8015eaa:	f88d 3005 	strb.w	r3, [sp, #5]
+    buf[2] = ( uint8_t )( timeout & 0xFF );
+ 8015eae:	f88d 0006 	strb.w	r0, [sp, #6]
+    SUBGRF_WriteCommand( RADIO_SET_TX, buf, 3 );
+ 8015eb2:	2203      	movs	r2, #3
+ 8015eb4:	a901      	add	r1, sp, #4
+ 8015eb6:	2083      	movs	r0, #131	; 0x83
+ 8015eb8:	f7ff ffa2 	bl	8015e00 <SUBGRF_WriteCommand>
+}
+ 8015ebc:	b003      	add	sp, #12
+ 8015ebe:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8015ec2:	bf00      	nop
+ 8015ec4:	200027ca 	.word	0x200027ca
+
+08015ec8 <SUBGRF_SendPayload>:
+{
+ 8015ec8:	b510      	push	{r4, lr}
+ 8015eca:	4614      	mov	r4, r2
+    SUBGRF_SetPayload( payload, size );
+ 8015ecc:	f7ff ff80 	bl	8015dd0 <SUBGRF_SetPayload>
+    SUBGRF_SetTx( timeout );
+ 8015ed0:	4620      	mov	r0, r4
+ 8015ed2:	f7ff ffdf 	bl	8015e94 <SUBGRF_SetTx>
+}
+ 8015ed6:	bd10      	pop	{r4, pc}
+
+08015ed8 <SUBGRF_SetRx>:
+{
+ 8015ed8:	b500      	push	{lr}
+ 8015eda:	b083      	sub	sp, #12
+    OperatingMode = MODE_RX;
+ 8015edc:	4b0a      	ldr	r3, [pc, #40]	; (8015f08 <SUBGRF_SetRx+0x30>)
+ 8015ede:	2205      	movs	r2, #5
+ 8015ee0:	701a      	strb	r2, [r3, #0]
+    buf[0] = ( uint8_t )( ( timeout >> 16 ) & 0xFF );
+ 8015ee2:	f3c0 4307 	ubfx	r3, r0, #16, #8
+ 8015ee6:	f88d 3004 	strb.w	r3, [sp, #4]
+    buf[1] = ( uint8_t )( ( timeout >> 8 ) & 0xFF );
+ 8015eea:	f3c0 2307 	ubfx	r3, r0, #8, #8
+ 8015eee:	f88d 3005 	strb.w	r3, [sp, #5]
+    buf[2] = ( uint8_t )( timeout & 0xFF );
+ 8015ef2:	f88d 0006 	strb.w	r0, [sp, #6]
+    SUBGRF_WriteCommand( RADIO_SET_RX, buf, 3 );
+ 8015ef6:	2203      	movs	r2, #3
+ 8015ef8:	a901      	add	r1, sp, #4
+ 8015efa:	2082      	movs	r0, #130	; 0x82
+ 8015efc:	f7ff ff80 	bl	8015e00 <SUBGRF_WriteCommand>
+}
+ 8015f00:	b003      	add	sp, #12
+ 8015f02:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8015f06:	bf00      	nop
+ 8015f08:	200027ca 	.word	0x200027ca
+
+08015f0c <SUBGRF_GetRandom>:
+{
+ 8015f0c:	b570      	push	{r4, r5, r6, lr}
+ 8015f0e:	b082      	sub	sp, #8
+    uint32_t number = 0;
+ 8015f10:	2600      	movs	r6, #0
+ 8015f12:	9601      	str	r6, [sp, #4]
+    regAnaLna = SUBGRF_ReadRegister( REG_ANA_LNA );
+ 8015f14:	f640 00e2 	movw	r0, #2274	; 0x8e2
+ 8015f18:	f7ff febc 	bl	8015c94 <SUBGRF_ReadRegister>
+ 8015f1c:	4605      	mov	r5, r0
+    SUBGRF_WriteRegister( REG_ANA_LNA, regAnaLna & ~( 1 << 0 ) );
+ 8015f1e:	f000 01fe 	and.w	r1, r0, #254	; 0xfe
+ 8015f22:	f640 00e2 	movw	r0, #2274	; 0x8e2
+ 8015f26:	f7ff fea5 	bl	8015c74 <SUBGRF_WriteRegister>
+    regAnaMixer = SUBGRF_ReadRegister( REG_ANA_MIXER );
+ 8015f2a:	f640 00e5 	movw	r0, #2277	; 0x8e5
+ 8015f2e:	f7ff feb1 	bl	8015c94 <SUBGRF_ReadRegister>
+ 8015f32:	4604      	mov	r4, r0
+    SUBGRF_WriteRegister( REG_ANA_MIXER, regAnaMixer & ~( 1 << 7 ) );
+ 8015f34:	f000 017f 	and.w	r1, r0, #127	; 0x7f
+ 8015f38:	f640 00e5 	movw	r0, #2277	; 0x8e5
+ 8015f3c:	f7ff fe9a 	bl	8015c74 <SUBGRF_WriteRegister>
+    SUBGRF_SetRx( 0xFFFFFF ); // Rx Continuous
+ 8015f40:	f06f 407f 	mvn.w	r0, #4278190080	; 0xff000000
+ 8015f44:	f7ff ffc8 	bl	8015ed8 <SUBGRF_SetRx>
+    SUBGRF_ReadRegisters( RANDOM_NUMBER_GENERATORBASEADDR, ( uint8_t* )&number, 4 );
+ 8015f48:	2204      	movs	r2, #4
+ 8015f4a:	eb0d 0102 	add.w	r1, sp, r2
+ 8015f4e:	f640 0019 	movw	r0, #2073	; 0x819
+ 8015f52:	f7ff ff1d 	bl	8015d90 <SUBGRF_ReadRegisters>
+    SUBGRF_SetStandby( STDBY_RC );
+ 8015f56:	4630      	mov	r0, r6
+ 8015f58:	f7ff ff82 	bl	8015e60 <SUBGRF_SetStandby>
+    SUBGRF_WriteRegister( REG_ANA_LNA, regAnaLna );
+ 8015f5c:	4629      	mov	r1, r5
+ 8015f5e:	f640 00e2 	movw	r0, #2274	; 0x8e2
+ 8015f62:	f7ff fe87 	bl	8015c74 <SUBGRF_WriteRegister>
+    SUBGRF_WriteRegister( REG_ANA_MIXER, regAnaMixer );
+ 8015f66:	4621      	mov	r1, r4
+ 8015f68:	f640 00e5 	movw	r0, #2277	; 0x8e5
+ 8015f6c:	f7ff fe82 	bl	8015c74 <SUBGRF_WriteRegister>
+}
+ 8015f70:	9801      	ldr	r0, [sp, #4]
+ 8015f72:	b002      	add	sp, #8
+ 8015f74:	bd70      	pop	{r4, r5, r6, pc}
+	...
+
+08015f78 <SUBGRF_SetRxBoosted>:
+{
+ 8015f78:	b510      	push	{r4, lr}
+ 8015f7a:	b082      	sub	sp, #8
+ 8015f7c:	4604      	mov	r4, r0
+    OperatingMode = MODE_RX;
+ 8015f7e:	4b0c      	ldr	r3, [pc, #48]	; (8015fb0 <SUBGRF_SetRxBoosted+0x38>)
+ 8015f80:	2205      	movs	r2, #5
+ 8015f82:	701a      	strb	r2, [r3, #0]
+    SUBGRF_WriteRegister( REG_RX_GAIN, 0x97 ); // max LNA gain, increase current by ~2mA for around ~3dB in sensitivity
+ 8015f84:	2197      	movs	r1, #151	; 0x97
+ 8015f86:	f640 00ac 	movw	r0, #2220	; 0x8ac
+ 8015f8a:	f7ff fe73 	bl	8015c74 <SUBGRF_WriteRegister>
+    buf[0] = ( uint8_t )( ( timeout >> 16 ) & 0xFF );
+ 8015f8e:	f3c4 4307 	ubfx	r3, r4, #16, #8
+ 8015f92:	f88d 3004 	strb.w	r3, [sp, #4]
+    buf[1] = ( uint8_t )( ( timeout >> 8 ) & 0xFF );
+ 8015f96:	f3c4 2307 	ubfx	r3, r4, #8, #8
+ 8015f9a:	f88d 3005 	strb.w	r3, [sp, #5]
+    buf[2] = ( uint8_t )( timeout & 0xFF );
+ 8015f9e:	f88d 4006 	strb.w	r4, [sp, #6]
+    SUBGRF_WriteCommand( RADIO_SET_RX, buf, 3 );
+ 8015fa2:	2203      	movs	r2, #3
+ 8015fa4:	a901      	add	r1, sp, #4
+ 8015fa6:	2082      	movs	r0, #130	; 0x82
+ 8015fa8:	f7ff ff2a 	bl	8015e00 <SUBGRF_WriteCommand>
+}
+ 8015fac:	b002      	add	sp, #8
+ 8015fae:	bd10      	pop	{r4, pc}
+ 8015fb0:	200027ca 	.word	0x200027ca
+
+08015fb4 <SUBGRF_SetRxDutyCycle>:
+{
+ 8015fb4:	b500      	push	{lr}
+ 8015fb6:	b083      	sub	sp, #12
+    buf[0] = ( uint8_t )( ( rxTime >> 16 ) & 0xFF );
+ 8015fb8:	f3c0 4307 	ubfx	r3, r0, #16, #8
+ 8015fbc:	f88d 3000 	strb.w	r3, [sp]
+    buf[1] = ( uint8_t )( ( rxTime >> 8 ) & 0xFF );
+ 8015fc0:	f3c0 2307 	ubfx	r3, r0, #8, #8
+ 8015fc4:	f88d 3001 	strb.w	r3, [sp, #1]
+    buf[2] = ( uint8_t )( rxTime & 0xFF );
+ 8015fc8:	f88d 0002 	strb.w	r0, [sp, #2]
+    buf[3] = ( uint8_t )( ( sleepTime >> 16 ) & 0xFF );
+ 8015fcc:	f3c1 4307 	ubfx	r3, r1, #16, #8
+ 8015fd0:	f88d 3003 	strb.w	r3, [sp, #3]
+    buf[4] = ( uint8_t )( ( sleepTime >> 8 ) & 0xFF );
+ 8015fd4:	f3c1 2307 	ubfx	r3, r1, #8, #8
+ 8015fd8:	f88d 3004 	strb.w	r3, [sp, #4]
+    buf[5] = ( uint8_t )( sleepTime & 0xFF );
+ 8015fdc:	f88d 1005 	strb.w	r1, [sp, #5]
+    SUBGRF_WriteCommand( RADIO_SET_RXDUTYCYCLE, buf, 6 );
+ 8015fe0:	2206      	movs	r2, #6
+ 8015fe2:	4669      	mov	r1, sp
+ 8015fe4:	2094      	movs	r0, #148	; 0x94
+ 8015fe6:	f7ff ff0b 	bl	8015e00 <SUBGRF_WriteCommand>
+    OperatingMode = MODE_RX_DC;
+ 8015fea:	4b03      	ldr	r3, [pc, #12]	; (8015ff8 <SUBGRF_SetRxDutyCycle+0x44>)
+ 8015fec:	2206      	movs	r2, #6
+ 8015fee:	701a      	strb	r2, [r3, #0]
+}
+ 8015ff0:	b003      	add	sp, #12
+ 8015ff2:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8015ff6:	bf00      	nop
+ 8015ff8:	200027ca 	.word	0x200027ca
+
+08015ffc <SUBGRF_SetCad>:
+{
+ 8015ffc:	b508      	push	{r3, lr}
+    SUBGRF_WriteCommand( RADIO_SET_CAD, 0, 0 );
+ 8015ffe:	2200      	movs	r2, #0
+ 8016000:	4611      	mov	r1, r2
+ 8016002:	20c5      	movs	r0, #197	; 0xc5
+ 8016004:	f7ff fefc 	bl	8015e00 <SUBGRF_WriteCommand>
+    OperatingMode = MODE_CAD;
+ 8016008:	4b01      	ldr	r3, [pc, #4]	; (8016010 <SUBGRF_SetCad+0x14>)
+ 801600a:	2207      	movs	r2, #7
+ 801600c:	701a      	strb	r2, [r3, #0]
+}
+ 801600e:	bd08      	pop	{r3, pc}
+ 8016010:	200027ca 	.word	0x200027ca
+
+08016014 <SUBGRF_SetTxContinuousWave>:
+{
+ 8016014:	b508      	push	{r3, lr}
+    SUBGRF_WriteCommand( RADIO_SET_TXCONTINUOUSWAVE, 0, 0 );
+ 8016016:	2200      	movs	r2, #0
+ 8016018:	4611      	mov	r1, r2
+ 801601a:	20d1      	movs	r0, #209	; 0xd1
+ 801601c:	f7ff fef0 	bl	8015e00 <SUBGRF_WriteCommand>
+}
+ 8016020:	bd08      	pop	{r3, pc}
+
+08016022 <SUBGRF_SetTxInfinitePreamble>:
+{
+ 8016022:	b508      	push	{r3, lr}
+    SUBGRF_WriteCommand( RADIO_SET_TXCONTINUOUSPREAMBLE, 0, 0 );
+ 8016024:	2200      	movs	r2, #0
+ 8016026:	4611      	mov	r1, r2
+ 8016028:	20d2      	movs	r0, #210	; 0xd2
+ 801602a:	f7ff fee9 	bl	8015e00 <SUBGRF_WriteCommand>
+}
+ 801602e:	bd08      	pop	{r3, pc}
+
+08016030 <SUBGRF_SetStopRxTimerOnPreambleDetect>:
+{
+ 8016030:	b500      	push	{lr}
+ 8016032:	b083      	sub	sp, #12
+ 8016034:	f88d 0007 	strb.w	r0, [sp, #7]
+    SUBGRF_WriteCommand( RADIO_SET_STOPRXTIMERONPREAMBLE, ( uint8_t* )&enable, 1 );
+ 8016038:	2201      	movs	r2, #1
+ 801603a:	f10d 0107 	add.w	r1, sp, #7
+ 801603e:	209f      	movs	r0, #159	; 0x9f
+ 8016040:	f7ff fede 	bl	8015e00 <SUBGRF_WriteCommand>
+}
+ 8016044:	b003      	add	sp, #12
+ 8016046:	f85d fb04 	ldr.w	pc, [sp], #4
+
+0801604a <SUBGRF_SetLoRaSymbNumTimeout>:
+{
+ 801604a:	b500      	push	{lr}
+ 801604c:	b083      	sub	sp, #12
+ 801604e:	f88d 0007 	strb.w	r0, [sp, #7]
+    SUBGRF_WriteCommand( RADIO_SET_LORASYMBTIMEOUT, &symbNum, 1 );
+ 8016052:	2201      	movs	r2, #1
+ 8016054:	f10d 0107 	add.w	r1, sp, #7
+ 8016058:	20a0      	movs	r0, #160	; 0xa0
+ 801605a:	f7ff fed1 	bl	8015e00 <SUBGRF_WriteCommand>
+    if( symbNum >= 64 )
+ 801605e:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8016062:	2b3f      	cmp	r3, #63	; 0x3f
+ 8016064:	d90f      	bls.n	8016086 <SUBGRF_SetLoRaSymbNumTimeout+0x3c>
+        uint8_t mant = symbNum >> 1;
+ 8016066:	085b      	lsrs	r3, r3, #1
+        uint8_t exp  = 0;
+ 8016068:	2200      	movs	r2, #0
+        while( mant > 31 )
+ 801606a:	e002      	b.n	8016072 <SUBGRF_SetLoRaSymbNumTimeout+0x28>
+            mant >>= 2;
+ 801606c:	089b      	lsrs	r3, r3, #2
+            exp++;
+ 801606e:	3201      	adds	r2, #1
+ 8016070:	b2d2      	uxtb	r2, r2
+        while( mant > 31 )
+ 8016072:	2b1f      	cmp	r3, #31
+ 8016074:	d8fa      	bhi.n	801606c <SUBGRF_SetLoRaSymbNumTimeout+0x22>
+        reg = exp + ( mant << 3 );
+ 8016076:	00d9      	lsls	r1, r3, #3
+ 8016078:	b2c9      	uxtb	r1, r1
+ 801607a:	4411      	add	r1, r2
+        SUBGRF_WriteRegister( REG_LR_SYNCH_TIMEOUT, reg );
+ 801607c:	b2c9      	uxtb	r1, r1
+ 801607e:	f240 7006 	movw	r0, #1798	; 0x706
+ 8016082:	f7ff fdf7 	bl	8015c74 <SUBGRF_WriteRegister>
+}
+ 8016086:	b003      	add	sp, #12
+ 8016088:	f85d fb04 	ldr.w	pc, [sp], #4
+
+0801608c <SUBGRF_SetRegulatorMode>:
+{
+ 801608c:	b500      	push	{lr}
+ 801608e:	b083      	sub	sp, #12
+    if ( ( 1UL == RBI_IsDCDC() ) && ( 1UL == DCDC_ENABLE ) )
+ 8016090:	f7ee fe18 	bl	8004cc4 <RBI_IsDCDC>
+ 8016094:	2801      	cmp	r0, #1
+ 8016096:	d00b      	beq.n	80160b0 <SUBGRF_SetRegulatorMode+0x24>
+        mode = USE_LDO ;
+ 8016098:	2300      	movs	r3, #0
+ 801609a:	f88d 3007 	strb.w	r3, [sp, #7]
+    SUBGRF_WriteCommand( RADIO_SET_REGULATORMODE, ( uint8_t* )&mode, 1 );
+ 801609e:	2201      	movs	r2, #1
+ 80160a0:	f10d 0107 	add.w	r1, sp, #7
+ 80160a4:	2096      	movs	r0, #150	; 0x96
+ 80160a6:	f7ff feab 	bl	8015e00 <SUBGRF_WriteCommand>
+}
+ 80160aa:	b003      	add	sp, #12
+ 80160ac:	f85d fb04 	ldr.w	pc, [sp], #4
+        mode = USE_DCDC ;
+ 80160b0:	2301      	movs	r3, #1
+ 80160b2:	f88d 3007 	strb.w	r3, [sp, #7]
+ 80160b6:	e7f2      	b.n	801609e <SUBGRF_SetRegulatorMode+0x12>
+
+080160b8 <SUBGRF_Calibrate>:
+{
+ 80160b8:	b500      	push	{lr}
+ 80160ba:	b083      	sub	sp, #12
+    uint8_t value = ( ( ( uint8_t )calibParam.Fields.ImgEnable << 6 ) |
+ 80160bc:	f000 0340 	and.w	r3, r0, #64	; 0x40
+                      ( ( uint8_t )calibParam.Fields.ADCBulkPEnable << 5 ) |
+ 80160c0:	f000 0220 	and.w	r2, r0, #32
+    uint8_t value = ( ( ( uint8_t )calibParam.Fields.ImgEnable << 6 ) |
+ 80160c4:	4313      	orrs	r3, r2
+                      ( ( uint8_t )calibParam.Fields.ADCBulkNEnable << 4 ) |
+ 80160c6:	f000 0210 	and.w	r2, r0, #16
+                      ( ( uint8_t )calibParam.Fields.ADCBulkPEnable << 5 ) |
+ 80160ca:	4313      	orrs	r3, r2
+                      ( ( uint8_t )calibParam.Fields.ADCPulseEnable << 3 ) |
+ 80160cc:	f000 0208 	and.w	r2, r0, #8
+                      ( ( uint8_t )calibParam.Fields.ADCBulkNEnable << 4 ) |
+ 80160d0:	4313      	orrs	r3, r2
+                      ( ( uint8_t )calibParam.Fields.PLLEnable << 2 ) |
+ 80160d2:	f000 0204 	and.w	r2, r0, #4
+                      ( ( uint8_t )calibParam.Fields.ADCPulseEnable << 3 ) |
+ 80160d6:	4313      	orrs	r3, r2
+                      ( ( uint8_t )calibParam.Fields.RC13MEnable << 1 ) |
+ 80160d8:	f000 0202 	and.w	r2, r0, #2
+                      ( ( uint8_t )calibParam.Fields.PLLEnable << 2 ) |
+ 80160dc:	4313      	orrs	r3, r2
+                      ( ( uint8_t )calibParam.Fields.RC64KEnable ) );
+ 80160de:	f000 0001 	and.w	r0, r0, #1
+                      ( ( uint8_t )calibParam.Fields.RC13MEnable << 1 ) |
+ 80160e2:	4303      	orrs	r3, r0
+    uint8_t value = ( ( ( uint8_t )calibParam.Fields.ImgEnable << 6 ) |
+ 80160e4:	f88d 3007 	strb.w	r3, [sp, #7]
+    SUBGRF_WriteCommand( RADIO_CALIBRATE, &value, 1 );
+ 80160e8:	2201      	movs	r2, #1
+ 80160ea:	f10d 0107 	add.w	r1, sp, #7
+ 80160ee:	2089      	movs	r0, #137	; 0x89
+ 80160f0:	f7ff fe86 	bl	8015e00 <SUBGRF_WriteCommand>
+}
+ 80160f4:	b003      	add	sp, #12
+ 80160f6:	f85d fb04 	ldr.w	pc, [sp], #4
+	...
+
+080160fc <SUBGRF_CalibrateImage>:
+{
+ 80160fc:	b500      	push	{lr}
+ 80160fe:	b083      	sub	sp, #12
+    if( freq > 900000000 )
+ 8016100:	4b1f      	ldr	r3, [pc, #124]	; (8016180 <SUBGRF_CalibrateImage+0x84>)
+ 8016102:	4298      	cmp	r0, r3
+ 8016104:	d90d      	bls.n	8016122 <SUBGRF_CalibrateImage+0x26>
+        calFreq[0] = 0xE1;
+ 8016106:	23e1      	movs	r3, #225	; 0xe1
+ 8016108:	f88d 3004 	strb.w	r3, [sp, #4]
+        calFreq[1] = 0xE9;
+ 801610c:	23e9      	movs	r3, #233	; 0xe9
+ 801610e:	f88d 3005 	strb.w	r3, [sp, #5]
+    SUBGRF_WriteCommand( RADIO_CALIBRATEIMAGE, calFreq, 2 );
+ 8016112:	2202      	movs	r2, #2
+ 8016114:	a901      	add	r1, sp, #4
+ 8016116:	2098      	movs	r0, #152	; 0x98
+ 8016118:	f7ff fe72 	bl	8015e00 <SUBGRF_WriteCommand>
+}
+ 801611c:	b003      	add	sp, #12
+ 801611e:	f85d fb04 	ldr.w	pc, [sp], #4
+    else if( freq > 850000000 )
+ 8016122:	4b18      	ldr	r3, [pc, #96]	; (8016184 <SUBGRF_CalibrateImage+0x88>)
+ 8016124:	4298      	cmp	r0, r3
+ 8016126:	d906      	bls.n	8016136 <SUBGRF_CalibrateImage+0x3a>
+        calFreq[0] = 0xD7;
+ 8016128:	23d7      	movs	r3, #215	; 0xd7
+ 801612a:	f88d 3004 	strb.w	r3, [sp, #4]
+        calFreq[1] = 0xDB;
+ 801612e:	23db      	movs	r3, #219	; 0xdb
+ 8016130:	f88d 3005 	strb.w	r3, [sp, #5]
+ 8016134:	e7ed      	b.n	8016112 <SUBGRF_CalibrateImage+0x16>
+    else if( freq > 770000000 )
+ 8016136:	4b14      	ldr	r3, [pc, #80]	; (8016188 <SUBGRF_CalibrateImage+0x8c>)
+ 8016138:	4298      	cmp	r0, r3
+ 801613a:	d906      	bls.n	801614a <SUBGRF_CalibrateImage+0x4e>
+        calFreq[0] = 0xC1;
+ 801613c:	23c1      	movs	r3, #193	; 0xc1
+ 801613e:	f88d 3004 	strb.w	r3, [sp, #4]
+        calFreq[1] = 0xC5;
+ 8016142:	23c5      	movs	r3, #197	; 0xc5
+ 8016144:	f88d 3005 	strb.w	r3, [sp, #5]
+ 8016148:	e7e3      	b.n	8016112 <SUBGRF_CalibrateImage+0x16>
+    else if( freq > 460000000 )
+ 801614a:	4b10      	ldr	r3, [pc, #64]	; (801618c <SUBGRF_CalibrateImage+0x90>)
+ 801614c:	4298      	cmp	r0, r3
+ 801614e:	d906      	bls.n	801615e <SUBGRF_CalibrateImage+0x62>
+        calFreq[0] = 0x75;
+ 8016150:	2375      	movs	r3, #117	; 0x75
+ 8016152:	f88d 3004 	strb.w	r3, [sp, #4]
+        calFreq[1] = 0x81;
+ 8016156:	2381      	movs	r3, #129	; 0x81
+ 8016158:	f88d 3005 	strb.w	r3, [sp, #5]
+ 801615c:	e7d9      	b.n	8016112 <SUBGRF_CalibrateImage+0x16>
+    else if( freq > 425000000 )
+ 801615e:	4b0c      	ldr	r3, [pc, #48]	; (8016190 <SUBGRF_CalibrateImage+0x94>)
+ 8016160:	4298      	cmp	r0, r3
+ 8016162:	d906      	bls.n	8016172 <SUBGRF_CalibrateImage+0x76>
+        calFreq[0] = 0x6B;
+ 8016164:	236b      	movs	r3, #107	; 0x6b
+ 8016166:	f88d 3004 	strb.w	r3, [sp, #4]
+        calFreq[1] = 0x6F;
+ 801616a:	236f      	movs	r3, #111	; 0x6f
+ 801616c:	f88d 3005 	strb.w	r3, [sp, #5]
+ 8016170:	e7cf      	b.n	8016112 <SUBGRF_CalibrateImage+0x16>
+        calFreq[0] = 0x29;
+ 8016172:	2329      	movs	r3, #41	; 0x29
+ 8016174:	f88d 3004 	strb.w	r3, [sp, #4]
+        calFreq[1] = 0x2B ;
+ 8016178:	232b      	movs	r3, #43	; 0x2b
+ 801617a:	f88d 3005 	strb.w	r3, [sp, #5]
+ 801617e:	e7c8      	b.n	8016112 <SUBGRF_CalibrateImage+0x16>
+ 8016180:	35a4e900 	.word	0x35a4e900
+ 8016184:	32a9f880 	.word	0x32a9f880
+ 8016188:	2de54480 	.word	0x2de54480
+ 801618c:	1b6b0b00 	.word	0x1b6b0b00
+ 8016190:	1954fc40 	.word	0x1954fc40
+
+08016194 <SUBGRF_SetPaConfig>:
+{
+ 8016194:	b500      	push	{lr}
+ 8016196:	b083      	sub	sp, #12
+    buf[0] = paDutyCycle;
+ 8016198:	f88d 0004 	strb.w	r0, [sp, #4]
+    buf[1] = hpMax;
+ 801619c:	f88d 1005 	strb.w	r1, [sp, #5]
+    buf[2] = deviceSel;
+ 80161a0:	f88d 2006 	strb.w	r2, [sp, #6]
+    buf[3] = paLut;
+ 80161a4:	f88d 3007 	strb.w	r3, [sp, #7]
+    SUBGRF_WriteCommand( RADIO_SET_PACONFIG, buf, 4 );
+ 80161a8:	2204      	movs	r2, #4
+ 80161aa:	eb0d 0102 	add.w	r1, sp, r2
+ 80161ae:	2095      	movs	r0, #149	; 0x95
+ 80161b0:	f7ff fe26 	bl	8015e00 <SUBGRF_WriteCommand>
+}
+ 80161b4:	b003      	add	sp, #12
+ 80161b6:	f85d fb04 	ldr.w	pc, [sp], #4
+
+080161ba <SUBGRF_SetDioIrqParams>:
+{
+ 80161ba:	b500      	push	{lr}
+ 80161bc:	b083      	sub	sp, #12
+    buf[0] = ( uint8_t )( ( irqMask >> 8 ) & 0x00FF );
+ 80161be:	ea4f 2c10 	mov.w	ip, r0, lsr #8
+ 80161c2:	f88d c000 	strb.w	ip, [sp]
+    buf[1] = ( uint8_t )( irqMask & 0x00FF );
+ 80161c6:	f88d 0001 	strb.w	r0, [sp, #1]
+    buf[2] = ( uint8_t )( ( dio1Mask >> 8 ) & 0x00FF );
+ 80161ca:	0a08      	lsrs	r0, r1, #8
+ 80161cc:	f88d 0002 	strb.w	r0, [sp, #2]
+    buf[3] = ( uint8_t )( dio1Mask & 0x00FF );
+ 80161d0:	f88d 1003 	strb.w	r1, [sp, #3]
+    buf[4] = ( uint8_t )( ( dio2Mask >> 8 ) & 0x00FF );
+ 80161d4:	0a11      	lsrs	r1, r2, #8
+ 80161d6:	f88d 1004 	strb.w	r1, [sp, #4]
+    buf[5] = ( uint8_t )( dio2Mask & 0x00FF );
+ 80161da:	f88d 2005 	strb.w	r2, [sp, #5]
+    buf[6] = ( uint8_t )( ( dio3Mask >> 8 ) & 0x00FF );
+ 80161de:	0a1a      	lsrs	r2, r3, #8
+ 80161e0:	f88d 2006 	strb.w	r2, [sp, #6]
+    buf[7] = ( uint8_t )( dio3Mask & 0x00FF );
+ 80161e4:	f88d 3007 	strb.w	r3, [sp, #7]
+    SUBGRF_WriteCommand( RADIO_CFG_DIOIRQ, buf, 8 );
+ 80161e8:	2208      	movs	r2, #8
+ 80161ea:	4669      	mov	r1, sp
+ 80161ec:	4610      	mov	r0, r2
+ 80161ee:	f7ff fe07 	bl	8015e00 <SUBGRF_WriteCommand>
+}
+ 80161f2:	b003      	add	sp, #12
+ 80161f4:	f85d fb04 	ldr.w	pc, [sp], #4
+
+080161f8 <SUBGRF_SetTcxoMode>:
+{
+ 80161f8:	b500      	push	{lr}
+ 80161fa:	b083      	sub	sp, #12
+    buf[0] = tcxoVoltage & 0x07;
+ 80161fc:	f000 0007 	and.w	r0, r0, #7
+ 8016200:	f88d 0004 	strb.w	r0, [sp, #4]
+    buf[1] = ( uint8_t )( ( timeout >> 16 ) & 0xFF );
+ 8016204:	f3c1 4307 	ubfx	r3, r1, #16, #8
+ 8016208:	f88d 3005 	strb.w	r3, [sp, #5]
+    buf[2] = ( uint8_t )( ( timeout >> 8 ) & 0xFF );
+ 801620c:	f3c1 2307 	ubfx	r3, r1, #8, #8
+ 8016210:	f88d 3006 	strb.w	r3, [sp, #6]
+    buf[3] = ( uint8_t )( timeout & 0xFF );
+ 8016214:	f88d 1007 	strb.w	r1, [sp, #7]
+    SUBGRF_WriteCommand( RADIO_SET_TCXOMODE, buf, 4 );
+ 8016218:	2204      	movs	r2, #4
+ 801621a:	eb0d 0102 	add.w	r1, sp, r2
+ 801621e:	2097      	movs	r0, #151	; 0x97
+ 8016220:	f7ff fdee 	bl	8015e00 <SUBGRF_WriteCommand>
+}
+ 8016224:	b003      	add	sp, #12
+ 8016226:	f85d fb04 	ldr.w	pc, [sp], #4
+	...
+
+0801622c <SUBGRF_Init>:
+{
+ 801622c:	b508      	push	{r3, lr}
+    if ( dioIrq != NULL)
+ 801622e:	b108      	cbz	r0, 8016234 <SUBGRF_Init+0x8>
+        RadioOnDioIrqCb = dioIrq;
+ 8016230:	4a19      	ldr	r2, [pc, #100]	; (8016298 <SUBGRF_Init+0x6c>)
+ 8016232:	6010      	str	r0, [r2, #0]
+    RADIO_INIT();
+ 8016234:	f7ec fc30 	bl	8002a98 <MX_SUBGHZ_Init>
+    Radio_SMPS_Set(SMPS_DRIVE_SETTING_DEFAULT);
+ 8016238:	2002      	movs	r0, #2
+ 801623a:	f7ff fd3b 	bl	8015cb4 <Radio_SMPS_Set>
+    ImageCalibrated = false;
+ 801623e:	2000      	movs	r0, #0
+ 8016240:	4b16      	ldr	r3, [pc, #88]	; (801629c <SUBGRF_Init+0x70>)
+ 8016242:	7018      	strb	r0, [r3, #0]
+    SUBGRF_SetStandby( STDBY_RC );
+ 8016244:	f7ff fe0c 	bl	8015e60 <SUBGRF_SetStandby>
+    if (1U == RBI_IsTCXO() )
+ 8016248:	f7ee fd3a 	bl	8004cc0 <RBI_IsTCXO>
+ 801624c:	2801      	cmp	r0, #1
+ 801624e:	d014      	beq.n	801627a <SUBGRF_Init+0x4e>
+        SUBGRF_WriteRegister( REG_XTA_TRIM, XTAL_DEFAULT_CAP_VALUE );
+ 8016250:	2110      	movs	r1, #16
+ 8016252:	f640 1011 	movw	r0, #2321	; 0x911
+ 8016256:	f7ff fd0d 	bl	8015c74 <SUBGRF_WriteRegister>
+        SUBGRF_WriteRegister( REG_XTB_TRIM, XTAL_DEFAULT_CAP_VALUE );
+ 801625a:	2110      	movs	r1, #16
+ 801625c:	f640 1012 	movw	r0, #2322	; 0x912
+ 8016260:	f7ff fd08 	bl	8015c74 <SUBGRF_WriteRegister>
+    SUBGRF_WriteRegister(REG_DRV_CTRL, 0x7 << 1);
+ 8016264:	210e      	movs	r1, #14
+ 8016266:	f640 101f 	movw	r0, #2335	; 0x91f
+ 801626a:	f7ff fd03 	bl	8015c74 <SUBGRF_WriteRegister>
+    RBI_Init();
+ 801626e:	f7ee fca1 	bl	8004bb4 <RBI_Init>
+    OperatingMode = MODE_STDBY_RC;
+ 8016272:	4b0b      	ldr	r3, [pc, #44]	; (80162a0 <SUBGRF_Init+0x74>)
+ 8016274:	2201      	movs	r2, #1
+ 8016276:	701a      	strb	r2, [r3, #0]
+}
+ 8016278:	bd08      	pop	{r3, pc}
+        SUBGRF_SetTcxoMode( TCXO_CTRL_VOLTAGE, RF_WAKEUP_TIME << 6 );// 100 ms
+ 801627a:	f44f 7120 	mov.w	r1, #640	; 0x280
+ 801627e:	f7ff ffbb 	bl	80161f8 <SUBGRF_SetTcxoMode>
+        SUBGRF_WriteRegister( REG_XTA_TRIM, 0x00 );
+ 8016282:	2100      	movs	r1, #0
+ 8016284:	f640 1011 	movw	r0, #2321	; 0x911
+ 8016288:	f7ff fcf4 	bl	8015c74 <SUBGRF_WriteRegister>
+        SUBGRF_Calibrate( calibParam );
+ 801628c:	f04f 007f 	mov.w	r0, #127	; 0x7f
+ 8016290:	f7ff ff12 	bl	80160b8 <SUBGRF_Calibrate>
+ 8016294:	e7e6      	b.n	8016264 <SUBGRF_Init+0x38>
+ 8016296:	bf00      	nop
+ 8016298:	200027cc 	.word	0x200027cc
+ 801629c:	200027c8 	.word	0x200027c8
+ 80162a0:	200027ca 	.word	0x200027ca
+
+080162a4 <SUBGRF_SetRfFrequency>:
+{
+ 80162a4:	b510      	push	{r4, lr}
+ 80162a6:	b082      	sub	sp, #8
+ 80162a8:	4604      	mov	r4, r0
+    if( ImageCalibrated == false )
+ 80162aa:	4b12      	ldr	r3, [pc, #72]	; (80162f4 <SUBGRF_SetRfFrequency+0x50>)
+ 80162ac:	781b      	ldrb	r3, [r3, #0]
+ 80162ae:	b1d3      	cbz	r3, 80162e6 <SUBGRF_SetRfFrequency+0x42>
+    SX_FREQ_TO_CHANNEL(chan, frequency);
+ 80162b0:	4a11      	ldr	r2, [pc, #68]	; (80162f8 <SUBGRF_SetRfFrequency+0x54>)
+ 80162b2:	2300      	movs	r3, #0
+ 80162b4:	0660      	lsls	r0, r4, #25
+ 80162b6:	09e1      	lsrs	r1, r4, #7
+ 80162b8:	f7eb fc2a 	bl	8001b10 <__aeabi_uldivmod>
+    buf[0] = ( uint8_t )( ( chan >> 24 ) & 0xFF );
+ 80162bc:	0e03      	lsrs	r3, r0, #24
+ 80162be:	f88d 3004 	strb.w	r3, [sp, #4]
+    buf[1] = ( uint8_t )( ( chan >> 16 ) & 0xFF );
+ 80162c2:	f3c0 4307 	ubfx	r3, r0, #16, #8
+ 80162c6:	f88d 3005 	strb.w	r3, [sp, #5]
+    buf[2] = ( uint8_t )( ( chan >> 8 ) & 0xFF );
+ 80162ca:	f3c0 2307 	ubfx	r3, r0, #8, #8
+ 80162ce:	f88d 3006 	strb.w	r3, [sp, #6]
+    buf[3] = ( uint8_t )( chan & 0xFF );
+ 80162d2:	f88d 0007 	strb.w	r0, [sp, #7]
+    SUBGRF_WriteCommand( RADIO_SET_RFFREQUENCY, buf, 4 );
+ 80162d6:	2204      	movs	r2, #4
+ 80162d8:	eb0d 0102 	add.w	r1, sp, r2
+ 80162dc:	2086      	movs	r0, #134	; 0x86
+ 80162de:	f7ff fd8f 	bl	8015e00 <SUBGRF_WriteCommand>
+}
+ 80162e2:	b002      	add	sp, #8
+ 80162e4:	bd10      	pop	{r4, pc}
+        SUBGRF_CalibrateImage( frequency );
+ 80162e6:	f7ff ff09 	bl	80160fc <SUBGRF_CalibrateImage>
+        ImageCalibrated = true;
+ 80162ea:	4b02      	ldr	r3, [pc, #8]	; (80162f4 <SUBGRF_SetRfFrequency+0x50>)
+ 80162ec:	2201      	movs	r2, #1
+ 80162ee:	701a      	strb	r2, [r3, #0]
+ 80162f0:	e7de      	b.n	80162b0 <SUBGRF_SetRfFrequency+0xc>
+ 80162f2:	bf00      	nop
+ 80162f4:	200027c8 	.word	0x200027c8
+ 80162f8:	01e84800 	.word	0x01e84800
+
+080162fc <SUBGRF_SetPacketType>:
+{
+ 80162fc:	b500      	push	{lr}
+ 80162fe:	b083      	sub	sp, #12
+ 8016300:	f88d 0007 	strb.w	r0, [sp, #7]
+    PacketType = packetType;
+ 8016304:	b2c3      	uxtb	r3, r0
+ 8016306:	4a09      	ldr	r2, [pc, #36]	; (801632c <SUBGRF_SetPacketType+0x30>)
+ 8016308:	7013      	strb	r3, [r2, #0]
+    if( packetType == PACKET_TYPE_GFSK )
+ 801630a:	b143      	cbz	r3, 801631e <SUBGRF_SetPacketType+0x22>
+    SUBGRF_WriteCommand( RADIO_SET_PACKETTYPE, ( uint8_t* )&packetType, 1 );
+ 801630c:	2201      	movs	r2, #1
+ 801630e:	f10d 0107 	add.w	r1, sp, #7
+ 8016312:	208a      	movs	r0, #138	; 0x8a
+ 8016314:	f7ff fd74 	bl	8015e00 <SUBGRF_WriteCommand>
+}
+ 8016318:	b003      	add	sp, #12
+ 801631a:	f85d fb04 	ldr.w	pc, [sp], #4
+        SUBGRF_WriteRegister( REG_BIT_SYNC, 0x00 );
+ 801631e:	2100      	movs	r1, #0
+ 8016320:	f240 60ac 	movw	r0, #1708	; 0x6ac
+ 8016324:	f7ff fca6 	bl	8015c74 <SUBGRF_WriteRegister>
+ 8016328:	e7f0      	b.n	801630c <SUBGRF_SetPacketType+0x10>
+ 801632a:	bf00      	nop
+ 801632c:	200027cb 	.word	0x200027cb
+
+08016330 <SUBGRF_SetTxParams>:
+{
+ 8016330:	b570      	push	{r4, r5, r6, lr}
+ 8016332:	b082      	sub	sp, #8
+ 8016334:	460c      	mov	r4, r1
+ 8016336:	4616      	mov	r6, r2
+    if (paSelect == RFO_LP)
+ 8016338:	2801      	cmp	r0, #1
+ 801633a:	d035      	beq.n	80163a8 <SUBGRF_SetTxParams+0x78>
+        SUBGRF_WriteRegister(REG_TX_CLAMP, SUBGRF_ReadRegister(REG_TX_CLAMP) | (0x0F << 1));
+ 801633c:	f640 00d8 	movw	r0, #2264	; 0x8d8
+ 8016340:	f7ff fca8 	bl	8015c94 <SUBGRF_ReadRegister>
+ 8016344:	f040 011e 	orr.w	r1, r0, #30
+ 8016348:	b2c9      	uxtb	r1, r1
+ 801634a:	f640 00d8 	movw	r0, #2264	; 0x8d8
+ 801634e:	f7ff fc91 	bl	8015c74 <SUBGRF_WriteRegister>
+        max_power = RBI_GetRFOMaxPowerConfig(RBI_RFO_HP_MAXPOWER);
+ 8016352:	2001      	movs	r0, #1
+ 8016354:	f7ee fcb8 	bl	8004cc8 <RBI_GetRFOMaxPowerConfig>
+ 8016358:	4605      	mov	r5, r0
+        if (power > max_power)
+ 801635a:	4284      	cmp	r4, r0
+ 801635c:	dd00      	ble.n	8016360 <SUBGRF_SetTxParams+0x30>
+            power = max_power;
+ 801635e:	b244      	sxtb	r4, r0
+        if (max_power == 20)
+ 8016360:	2d14      	cmp	r5, #20
+ 8016362:	d054      	beq.n	801640e <SUBGRF_SetTxParams+0xde>
+        else if (max_power == 17)
+ 8016364:	2d11      	cmp	r5, #17
+ 8016366:	d05c      	beq.n	8016422 <SUBGRF_SetTxParams+0xf2>
+        else if (max_power == 14)
+ 8016368:	2d0e      	cmp	r5, #14
+ 801636a:	d064      	beq.n	8016436 <SUBGRF_SetTxParams+0x106>
+            SUBGRF_SetPaConfig(0x04, 0x07, 0x00, 0x01);
+ 801636c:	2301      	movs	r3, #1
+ 801636e:	2200      	movs	r2, #0
+ 8016370:	2107      	movs	r1, #7
+ 8016372:	2004      	movs	r0, #4
+ 8016374:	f7ff ff0e 	bl	8016194 <SUBGRF_SetPaConfig>
+            power = 0x16 - (max_power - power);
+ 8016378:	1b64      	subs	r4, r4, r5
+ 801637a:	3416      	adds	r4, #22
+ 801637c:	b265      	sxtb	r5, r4
+        if (power < -9)
+ 801637e:	f115 0f09 	cmn.w	r5, #9
+ 8016382:	da01      	bge.n	8016388 <SUBGRF_SetTxParams+0x58>
+            power = -9;
+ 8016384:	f06f 0508 	mvn.w	r5, #8
+        SUBGRF_WriteRegister(REG_OCP, 0x38);   /*current max 160mA for the whole device*/
+ 8016388:	2138      	movs	r1, #56	; 0x38
+ 801638a:	f640 00e7 	movw	r0, #2279	; 0x8e7
+ 801638e:	f7ff fc71 	bl	8015c74 <SUBGRF_WriteRegister>
+    buf[0] = power;
+ 8016392:	f88d 5004 	strb.w	r5, [sp, #4]
+    buf[1] = (uint8_t)rampTime;
+ 8016396:	f88d 6005 	strb.w	r6, [sp, #5]
+    SUBGRF_WriteCommand(RADIO_SET_TXPARAMS, buf, 2);
+ 801639a:	2202      	movs	r2, #2
+ 801639c:	a901      	add	r1, sp, #4
+ 801639e:	208e      	movs	r0, #142	; 0x8e
+ 80163a0:	f7ff fd2e 	bl	8015e00 <SUBGRF_WriteCommand>
+}
+ 80163a4:	b002      	add	sp, #8
+ 80163a6:	bd70      	pop	{r4, r5, r6, pc}
+        max_power = RBI_GetRFOMaxPowerConfig(RBI_RFO_LP_MAXPOWER);
+ 80163a8:	2000      	movs	r0, #0
+ 80163aa:	f7ee fc8d 	bl	8004cc8 <RBI_GetRFOMaxPowerConfig>
+ 80163ae:	4605      	mov	r5, r0
+        if (power >  max_power)
+ 80163b0:	4284      	cmp	r4, r0
+ 80163b2:	dd00      	ble.n	80163b6 <SUBGRF_SetTxParams+0x86>
+          power = max_power;
+ 80163b4:	b244      	sxtb	r4, r0
+        if (max_power == 14)
+ 80163b6:	2d0e      	cmp	r5, #14
+ 80163b8:	d015      	beq.n	80163e6 <SUBGRF_SetTxParams+0xb6>
+        else if (max_power == 10)
+ 80163ba:	2d0a      	cmp	r5, #10
+ 80163bc:	d01d      	beq.n	80163fa <SUBGRF_SetTxParams+0xca>
+            SUBGRF_SetPaConfig(0x07, 0x00, 0x01, 0x01);
+ 80163be:	2301      	movs	r3, #1
+ 80163c0:	461a      	mov	r2, r3
+ 80163c2:	2100      	movs	r1, #0
+ 80163c4:	2007      	movs	r0, #7
+ 80163c6:	f7ff fee5 	bl	8016194 <SUBGRF_SetPaConfig>
+            power = 0x0E - (max_power - power);
+ 80163ca:	1b65      	subs	r5, r4, r5
+ 80163cc:	350e      	adds	r5, #14
+ 80163ce:	b26d      	sxtb	r5, r5
+        if (power < -17)
+ 80163d0:	f115 0f11 	cmn.w	r5, #17
+ 80163d4:	da01      	bge.n	80163da <SUBGRF_SetTxParams+0xaa>
+            power = -17;
+ 80163d6:	f06f 0510 	mvn.w	r5, #16
+        SUBGRF_WriteRegister(REG_OCP, 0x18);   /* current max is 80 mA for the whole device*/
+ 80163da:	2118      	movs	r1, #24
+ 80163dc:	f640 00e7 	movw	r0, #2279	; 0x8e7
+ 80163e0:	f7ff fc48 	bl	8015c74 <SUBGRF_WriteRegister>
+ 80163e4:	e7d5      	b.n	8016392 <SUBGRF_SetTxParams+0x62>
+            SUBGRF_SetPaConfig(0x04, 0x00, 0x01, 0x01);
+ 80163e6:	2301      	movs	r3, #1
+ 80163e8:	461a      	mov	r2, r3
+ 80163ea:	2100      	movs	r1, #0
+ 80163ec:	2004      	movs	r0, #4
+ 80163ee:	f7ff fed1 	bl	8016194 <SUBGRF_SetPaConfig>
+            power = 0x0E - (max_power - power);
+ 80163f2:	1b65      	subs	r5, r4, r5
+ 80163f4:	350e      	adds	r5, #14
+ 80163f6:	b26d      	sxtb	r5, r5
+ 80163f8:	e7ea      	b.n	80163d0 <SUBGRF_SetTxParams+0xa0>
+            SUBGRF_SetPaConfig(0x01, 0x00, 0x01, 0x01);
+ 80163fa:	2301      	movs	r3, #1
+ 80163fc:	461a      	mov	r2, r3
+ 80163fe:	2100      	movs	r1, #0
+ 8016400:	4618      	mov	r0, r3
+ 8016402:	f7ff fec7 	bl	8016194 <SUBGRF_SetPaConfig>
+            power = 0x0D - (max_power - power);
+ 8016406:	1b65      	subs	r5, r4, r5
+ 8016408:	350d      	adds	r5, #13
+ 801640a:	b26d      	sxtb	r5, r5
+ 801640c:	e7e0      	b.n	80163d0 <SUBGRF_SetTxParams+0xa0>
+            SUBGRF_SetPaConfig(0x03, 0x05, 0x00, 0x01);
+ 801640e:	2301      	movs	r3, #1
+ 8016410:	2200      	movs	r2, #0
+ 8016412:	2105      	movs	r1, #5
+ 8016414:	2003      	movs	r0, #3
+ 8016416:	f7ff febd 	bl	8016194 <SUBGRF_SetPaConfig>
+            power = 0x16 - (max_power - power);
+ 801641a:	1b65      	subs	r5, r4, r5
+ 801641c:	3516      	adds	r5, #22
+ 801641e:	b26d      	sxtb	r5, r5
+ 8016420:	e7ad      	b.n	801637e <SUBGRF_SetTxParams+0x4e>
+            SUBGRF_SetPaConfig(0x02, 0x03, 0x00, 0x01);
+ 8016422:	2301      	movs	r3, #1
+ 8016424:	2200      	movs	r2, #0
+ 8016426:	2103      	movs	r1, #3
+ 8016428:	2002      	movs	r0, #2
+ 801642a:	f7ff feb3 	bl	8016194 <SUBGRF_SetPaConfig>
+            power = 0x16 - (max_power - power);
+ 801642e:	1b65      	subs	r5, r4, r5
+ 8016430:	3516      	adds	r5, #22
+ 8016432:	b26d      	sxtb	r5, r5
+ 8016434:	e7a3      	b.n	801637e <SUBGRF_SetTxParams+0x4e>
+            SUBGRF_SetPaConfig(0x02, 0x02, 0x00, 0x01);
+ 8016436:	2301      	movs	r3, #1
+ 8016438:	2200      	movs	r2, #0
+ 801643a:	2102      	movs	r1, #2
+ 801643c:	4608      	mov	r0, r1
+ 801643e:	f7ff fea9 	bl	8016194 <SUBGRF_SetPaConfig>
+            power = 0x0E - (max_power - power);
+ 8016442:	1b65      	subs	r5, r4, r5
+ 8016444:	350e      	adds	r5, #14
+ 8016446:	b26d      	sxtb	r5, r5
+ 8016448:	e799      	b.n	801637e <SUBGRF_SetTxParams+0x4e>
+	...
+
+0801644c <SUBGRF_SetModulationParams>:
+{
+ 801644c:	b510      	push	{r4, lr}
+ 801644e:	b082      	sub	sp, #8
+ 8016450:	4604      	mov	r4, r0
+    uint8_t buf[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
+ 8016452:	4b3e      	ldr	r3, [pc, #248]	; (801654c <SUBGRF_SetModulationParams+0x100>)
+ 8016454:	e893 0003 	ldmia.w	r3, {r0, r1}
+ 8016458:	ab02      	add	r3, sp, #8
+ 801645a:	e903 0003 	stmdb	r3, {r0, r1}
+    if( PacketType != modulationParams->PacketType )
+ 801645e:	7820      	ldrb	r0, [r4, #0]
+ 8016460:	4b3b      	ldr	r3, [pc, #236]	; (8016550 <SUBGRF_SetModulationParams+0x104>)
+ 8016462:	781b      	ldrb	r3, [r3, #0]
+ 8016464:	4298      	cmp	r0, r3
+ 8016466:	d106      	bne.n	8016476 <SUBGRF_SetModulationParams+0x2a>
+    switch( modulationParams->PacketType )
+ 8016468:	7823      	ldrb	r3, [r4, #0]
+ 801646a:	2b03      	cmp	r3, #3
+ 801646c:	d82c      	bhi.n	80164c8 <SUBGRF_SetModulationParams+0x7c>
+ 801646e:	e8df f003 	tbb	[pc, r3]
+ 8016472:	4205      	.short	0x4205
+ 8016474:	542d      	.short	0x542d
+        SUBGRF_SetPacketType( modulationParams->PacketType );
+ 8016476:	f7ff ff41 	bl	80162fc <SUBGRF_SetPacketType>
+ 801647a:	e7f5      	b.n	8016468 <SUBGRF_SetModulationParams+0x1c>
+        tempVal = ( uint32_t )(( 32 * XTAL_FREQ ) / modulationParams->Params.Gfsk.BitRate );
+ 801647c:	6862      	ldr	r2, [r4, #4]
+ 801647e:	4b35      	ldr	r3, [pc, #212]	; (8016554 <SUBGRF_SetModulationParams+0x108>)
+ 8016480:	fbb3 f3f2 	udiv	r3, r3, r2
+        buf[0] = ( tempVal >> 16 ) & 0xFF;
+ 8016484:	0c1a      	lsrs	r2, r3, #16
+ 8016486:	f88d 2000 	strb.w	r2, [sp]
+        buf[1] = ( tempVal >> 8 ) & 0xFF;
+ 801648a:	0a1a      	lsrs	r2, r3, #8
+ 801648c:	f88d 2001 	strb.w	r2, [sp, #1]
+        buf[2] = tempVal & 0xFF;
+ 8016490:	f88d 3002 	strb.w	r3, [sp, #2]
+        buf[3] = modulationParams->Params.Gfsk.ModulationShaping;
+ 8016494:	7b23      	ldrb	r3, [r4, #12]
+ 8016496:	f88d 3003 	strb.w	r3, [sp, #3]
+        buf[4] = modulationParams->Params.Gfsk.Bandwidth;
+ 801649a:	7b63      	ldrb	r3, [r4, #13]
+ 801649c:	f88d 3004 	strb.w	r3, [sp, #4]
+        SX_FREQ_TO_CHANNEL(tempVal, modulationParams->Params.Gfsk.Fdev);
+ 80164a0:	68a1      	ldr	r1, [r4, #8]
+ 80164a2:	4a2d      	ldr	r2, [pc, #180]	; (8016558 <SUBGRF_SetModulationParams+0x10c>)
+ 80164a4:	2300      	movs	r3, #0
+ 80164a6:	0648      	lsls	r0, r1, #25
+ 80164a8:	09c9      	lsrs	r1, r1, #7
+ 80164aa:	f7eb fb31 	bl	8001b10 <__aeabi_uldivmod>
+        buf[5] = ( tempVal >> 16 ) & 0xFF;
+ 80164ae:	0c03      	lsrs	r3, r0, #16
+ 80164b0:	f88d 3005 	strb.w	r3, [sp, #5]
+        buf[6] = ( tempVal >> 8 ) & 0xFF;
+ 80164b4:	0a03      	lsrs	r3, r0, #8
+ 80164b6:	f88d 3006 	strb.w	r3, [sp, #6]
+        buf[7] = ( tempVal& 0xFF );
+ 80164ba:	f88d 0007 	strb.w	r0, [sp, #7]
+        SUBGRF_WriteCommand( RADIO_SET_MODULATIONPARAMS, buf, n );
+ 80164be:	2208      	movs	r2, #8
+ 80164c0:	4669      	mov	r1, sp
+ 80164c2:	208b      	movs	r0, #139	; 0x8b
+ 80164c4:	f7ff fc9c 	bl	8015e00 <SUBGRF_WriteCommand>
+}
+ 80164c8:	b002      	add	sp, #8
+ 80164ca:	bd10      	pop	{r4, pc}
+        tempVal = ( uint32_t ) (( 32 * XTAL_FREQ) / modulationParams->Params.Bpsk.BitRate );
+ 80164cc:	6922      	ldr	r2, [r4, #16]
+ 80164ce:	4b21      	ldr	r3, [pc, #132]	; (8016554 <SUBGRF_SetModulationParams+0x108>)
+ 80164d0:	fbb3 f3f2 	udiv	r3, r3, r2
+        buf[0] = ( tempVal >> 16 ) & 0xFF;
+ 80164d4:	0c1a      	lsrs	r2, r3, #16
+ 80164d6:	f88d 2000 	strb.w	r2, [sp]
+        buf[1] = ( tempVal >> 8 ) & 0xFF;
+ 80164da:	0a1a      	lsrs	r2, r3, #8
+ 80164dc:	f88d 2001 	strb.w	r2, [sp, #1]
+        buf[2] = tempVal & 0xFF;
+ 80164e0:	f88d 3002 	strb.w	r3, [sp, #2]
+        buf[3] = modulationParams->Params.Bpsk.ModulationShaping;
+ 80164e4:	7d23      	ldrb	r3, [r4, #20]
+ 80164e6:	f88d 3003 	strb.w	r3, [sp, #3]
+        SUBGRF_WriteCommand( RADIO_SET_MODULATIONPARAMS, buf, n );
+ 80164ea:	2204      	movs	r2, #4
+ 80164ec:	4669      	mov	r1, sp
+ 80164ee:	208b      	movs	r0, #139	; 0x8b
+ 80164f0:	f7ff fc86 	bl	8015e00 <SUBGRF_WriteCommand>
+        break;
+ 80164f4:	e7e8      	b.n	80164c8 <SUBGRF_SetModulationParams+0x7c>
+        buf[0] = modulationParams->Params.LoRa.SpreadingFactor;
+ 80164f6:	7e23      	ldrb	r3, [r4, #24]
+ 80164f8:	f88d 3000 	strb.w	r3, [sp]
+        buf[1] = modulationParams->Params.LoRa.Bandwidth;
+ 80164fc:	7e63      	ldrb	r3, [r4, #25]
+ 80164fe:	f88d 3001 	strb.w	r3, [sp, #1]
+        buf[2] = modulationParams->Params.LoRa.CodingRate;
+ 8016502:	7ea3      	ldrb	r3, [r4, #26]
+ 8016504:	f88d 3002 	strb.w	r3, [sp, #2]
+        buf[3] = modulationParams->Params.LoRa.LowDatarateOptimize;
+ 8016508:	7ee3      	ldrb	r3, [r4, #27]
+ 801650a:	f88d 3003 	strb.w	r3, [sp, #3]
+        SUBGRF_WriteCommand( RADIO_SET_MODULATIONPARAMS, buf, n );
+ 801650e:	2204      	movs	r2, #4
+ 8016510:	4669      	mov	r1, sp
+ 8016512:	208b      	movs	r0, #139	; 0x8b
+ 8016514:	f7ff fc74 	bl	8015e00 <SUBGRF_WriteCommand>
+        break;
+ 8016518:	e7d6      	b.n	80164c8 <SUBGRF_SetModulationParams+0x7c>
+        tempVal = ( uint32_t )(( 32 *XTAL_FREQ) / modulationParams->Params.Gfsk.BitRate );
+ 801651a:	6862      	ldr	r2, [r4, #4]
+ 801651c:	4b0d      	ldr	r3, [pc, #52]	; (8016554 <SUBGRF_SetModulationParams+0x108>)
+ 801651e:	fbb3 f3f2 	udiv	r3, r3, r2
+        buf[0] = ( tempVal >> 16 ) & 0xFF;
+ 8016522:	0c1a      	lsrs	r2, r3, #16
+ 8016524:	f88d 2000 	strb.w	r2, [sp]
+        buf[1] = ( tempVal >> 8 ) & 0xFF;
+ 8016528:	0a1a      	lsrs	r2, r3, #8
+ 801652a:	f88d 2001 	strb.w	r2, [sp, #1]
+        buf[2] = tempVal & 0xFF;
+ 801652e:	f88d 3002 	strb.w	r3, [sp, #2]
+        buf[3] = modulationParams->Params.Gfsk.ModulationShaping;
+ 8016532:	7b23      	ldrb	r3, [r4, #12]
+ 8016534:	f88d 3003 	strb.w	r3, [sp, #3]
+        buf[4] = modulationParams->Params.Gfsk.Bandwidth;
+ 8016538:	7b63      	ldrb	r3, [r4, #13]
+ 801653a:	f88d 3004 	strb.w	r3, [sp, #4]
+        SUBGRF_WriteCommand( RADIO_SET_MODULATIONPARAMS, buf, n );
+ 801653e:	2205      	movs	r2, #5
+ 8016540:	4669      	mov	r1, sp
+ 8016542:	208b      	movs	r0, #139	; 0x8b
+ 8016544:	f7ff fc5c 	bl	8015e00 <SUBGRF_WriteCommand>
+}
+ 8016548:	e7be      	b.n	80164c8 <SUBGRF_SetModulationParams+0x7c>
+ 801654a:	bf00      	nop
+ 801654c:	080178b4 	.word	0x080178b4
+ 8016550:	200027cb 	.word	0x200027cb
+ 8016554:	3d090000 	.word	0x3d090000
+ 8016558:	01e84800 	.word	0x01e84800
+
+0801655c <SUBGRF_SetPacketParams>:
+{
+ 801655c:	b510      	push	{r4, lr}
+ 801655e:	b084      	sub	sp, #16
+ 8016560:	4604      	mov	r4, r0
+    uint8_t buf[9] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
+ 8016562:	ab01      	add	r3, sp, #4
+ 8016564:	4a33      	ldr	r2, [pc, #204]	; (8016634 <SUBGRF_SetPacketParams+0xd8>)
+ 8016566:	ca07      	ldmia	r2, {r0, r1, r2}
+ 8016568:	c303      	stmia	r3!, {r0, r1}
+ 801656a:	701a      	strb	r2, [r3, #0]
+    if( PacketType != packetParams->PacketType )
+ 801656c:	7820      	ldrb	r0, [r4, #0]
+ 801656e:	4b32      	ldr	r3, [pc, #200]	; (8016638 <SUBGRF_SetPacketParams+0xdc>)
+ 8016570:	781b      	ldrb	r3, [r3, #0]
+ 8016572:	4298      	cmp	r0, r3
+ 8016574:	d106      	bne.n	8016584 <SUBGRF_SetPacketParams+0x28>
+    switch( packetParams->PacketType )
+ 8016576:	7823      	ldrb	r3, [r4, #0]
+ 8016578:	2b03      	cmp	r3, #3
+ 801657a:	d82a      	bhi.n	80165d2 <SUBGRF_SetPacketParams+0x76>
+ 801657c:	e8df f003 	tbb	[pc, r3]
+ 8016580:	053f4405 	.word	0x053f4405
+        SUBGRF_SetPacketType( packetParams->PacketType );
+ 8016584:	f7ff feba 	bl	80162fc <SUBGRF_SetPacketType>
+ 8016588:	e7f5      	b.n	8016576 <SUBGRF_SetPacketParams+0x1a>
+        if( packetParams->Params.Gfsk.CrcLength == RADIO_CRC_2_BYTES_IBM )
+ 801658a:	7a63      	ldrb	r3, [r4, #9]
+ 801658c:	2bf1      	cmp	r3, #241	; 0xf1
+ 801658e:	d022      	beq.n	80165d6 <SUBGRF_SetPacketParams+0x7a>
+        else if( packetParams->Params.Gfsk.CrcLength == RADIO_CRC_2_BYTES_CCIT )
+ 8016590:	2bf2      	cmp	r3, #242	; 0xf2
+ 8016592:	d02a      	beq.n	80165ea <SUBGRF_SetPacketParams+0x8e>
+        buf[0] = ( packetParams->Params.Gfsk.PreambleLength >> 8 ) & 0xFF;
+ 8016594:	8862      	ldrh	r2, [r4, #2]
+ 8016596:	0a11      	lsrs	r1, r2, #8
+ 8016598:	f88d 1004 	strb.w	r1, [sp, #4]
+        buf[1] = packetParams->Params.Gfsk.PreambleLength;
+ 801659c:	f88d 2005 	strb.w	r2, [sp, #5]
+        buf[2] = packetParams->Params.Gfsk.PreambleMinDetect;
+ 80165a0:	7922      	ldrb	r2, [r4, #4]
+ 80165a2:	f88d 2006 	strb.w	r2, [sp, #6]
+        buf[3] = ( packetParams->Params.Gfsk.SyncWordLength /*<< 3*/ ); // convert from byte to bit
+ 80165a6:	7962      	ldrb	r2, [r4, #5]
+ 80165a8:	f88d 2007 	strb.w	r2, [sp, #7]
+        buf[4] = packetParams->Params.Gfsk.AddrComp;
+ 80165ac:	79a2      	ldrb	r2, [r4, #6]
+ 80165ae:	f88d 2008 	strb.w	r2, [sp, #8]
+        buf[5] = packetParams->Params.Gfsk.HeaderType;
+ 80165b2:	79e2      	ldrb	r2, [r4, #7]
+ 80165b4:	f88d 2009 	strb.w	r2, [sp, #9]
+        buf[6] = packetParams->Params.Gfsk.PayloadLength;
+ 80165b8:	7a22      	ldrb	r2, [r4, #8]
+ 80165ba:	f88d 200a 	strb.w	r2, [sp, #10]
+        buf[7] = crcVal;
+ 80165be:	f88d 300b 	strb.w	r3, [sp, #11]
+        buf[8] = packetParams->Params.Gfsk.DcFree;
+ 80165c2:	7aa3      	ldrb	r3, [r4, #10]
+ 80165c4:	f88d 300c 	strb.w	r3, [sp, #12]
+        n = 9;
+ 80165c8:	2209      	movs	r2, #9
+    SUBGRF_WriteCommand( RADIO_SET_PACKETPARAMS, buf, n );
+ 80165ca:	a901      	add	r1, sp, #4
+ 80165cc:	208c      	movs	r0, #140	; 0x8c
+ 80165ce:	f7ff fc17 	bl	8015e00 <SUBGRF_WriteCommand>
+}
+ 80165d2:	b004      	add	sp, #16
+ 80165d4:	bd10      	pop	{r4, pc}
+            SUBGRF_SetCrcSeed( CRC_IBM_SEED );
+ 80165d6:	f64f 70ff 	movw	r0, #65535	; 0xffff
+ 80165da:	f7ff fbb0 	bl	8015d3e <SUBGRF_SetCrcSeed>
+            SUBGRF_SetCrcPolynomial( CRC_POLYNOMIAL_IBM );
+ 80165de:	f248 0005 	movw	r0, #32773	; 0x8005
+ 80165e2:	f7ff fbc0 	bl	8015d66 <SUBGRF_SetCrcPolynomial>
+            crcVal = RADIO_CRC_2_BYTES;
+ 80165e6:	2302      	movs	r3, #2
+ 80165e8:	e7d4      	b.n	8016594 <SUBGRF_SetPacketParams+0x38>
+            SUBGRF_SetCrcSeed( CRC_CCITT_SEED );
+ 80165ea:	f641 500f 	movw	r0, #7439	; 0x1d0f
+ 80165ee:	f7ff fba6 	bl	8015d3e <SUBGRF_SetCrcSeed>
+            SUBGRF_SetCrcPolynomial( CRC_POLYNOMIAL_CCITT );
+ 80165f2:	f241 0021 	movw	r0, #4129	; 0x1021
+ 80165f6:	f7ff fbb6 	bl	8015d66 <SUBGRF_SetCrcPolynomial>
+            crcVal = RADIO_CRC_2_BYTES_INV;
+ 80165fa:	2306      	movs	r3, #6
+ 80165fc:	e7ca      	b.n	8016594 <SUBGRF_SetPacketParams+0x38>
+        buf[0] = packetParams->Params.Bpsk.PayloadLength;
+ 80165fe:	7b23      	ldrb	r3, [r4, #12]
+ 8016600:	f88d 3004 	strb.w	r3, [sp, #4]
+        n = 1;
+ 8016604:	2201      	movs	r2, #1
+        break;
+ 8016606:	e7e0      	b.n	80165ca <SUBGRF_SetPacketParams+0x6e>
+        buf[0] = ( packetParams->Params.LoRa.PreambleLength >> 8 ) & 0xFF;
+ 8016608:	89e3      	ldrh	r3, [r4, #14]
+ 801660a:	0a1a      	lsrs	r2, r3, #8
+ 801660c:	f88d 2004 	strb.w	r2, [sp, #4]
+        buf[1] = packetParams->Params.LoRa.PreambleLength;
+ 8016610:	f88d 3005 	strb.w	r3, [sp, #5]
+        buf[2] = LoRaHeaderType = packetParams->Params.LoRa.HeaderType;
+ 8016614:	7c23      	ldrb	r3, [r4, #16]
+ 8016616:	4a09      	ldr	r2, [pc, #36]	; (801663c <SUBGRF_SetPacketParams+0xe0>)
+ 8016618:	7013      	strb	r3, [r2, #0]
+ 801661a:	f88d 3006 	strb.w	r3, [sp, #6]
+        buf[3] = packetParams->Params.LoRa.PayloadLength;
+ 801661e:	7c63      	ldrb	r3, [r4, #17]
+ 8016620:	f88d 3007 	strb.w	r3, [sp, #7]
+        buf[4] = packetParams->Params.LoRa.CrcMode;
+ 8016624:	7ca3      	ldrb	r3, [r4, #18]
+ 8016626:	f88d 3008 	strb.w	r3, [sp, #8]
+        buf[5] = packetParams->Params.LoRa.InvertIQ;
+ 801662a:	7ce3      	ldrb	r3, [r4, #19]
+ 801662c:	f88d 3009 	strb.w	r3, [sp, #9]
+        n = 6;
+ 8016630:	2206      	movs	r2, #6
+        break;
+ 8016632:	e7ca      	b.n	80165ca <SUBGRF_SetPacketParams+0x6e>
+ 8016634:	080178bc 	.word	0x080178bc
+ 8016638:	200027cb 	.word	0x200027cb
+ 801663c:	200027c9 	.word	0x200027c9
+
+08016640 <SUBGRF_SetBufferBaseAddress>:
+{
+ 8016640:	b500      	push	{lr}
+ 8016642:	b083      	sub	sp, #12
+    buf[0] = txBaseAddress;
+ 8016644:	f88d 0004 	strb.w	r0, [sp, #4]
+    buf[1] = rxBaseAddress;
+ 8016648:	f88d 1005 	strb.w	r1, [sp, #5]
+    SUBGRF_WriteCommand( RADIO_SET_BUFFERBASEADDRESS, buf, 2 );
+ 801664c:	2202      	movs	r2, #2
+ 801664e:	a901      	add	r1, sp, #4
+ 8016650:	208f      	movs	r0, #143	; 0x8f
+ 8016652:	f7ff fbd5 	bl	8015e00 <SUBGRF_WriteCommand>
+}
+ 8016656:	b003      	add	sp, #12
+ 8016658:	f85d fb04 	ldr.w	pc, [sp], #4
+
+0801665c <SUBGRF_ReadCommand>:
+{
+ 801665c:	b510      	push	{r4, lr}
+ 801665e:	4613      	mov	r3, r2
+  __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
+ 8016660:	f3ef 8410 	mrs	r4, PRIMASK
+  __ASM volatile ("cpsid i" : : : "memory");
+ 8016664:	b672      	cpsid	i
+    HAL_SUBGHZ_ExecGetCmd( &hsubghz, Command, pBuffer, Size );
+ 8016666:	460a      	mov	r2, r1
+ 8016668:	4601      	mov	r1, r0
+ 801666a:	4803      	ldr	r0, [pc, #12]	; (8016678 <SUBGRF_ReadCommand+0x1c>)
+ 801666c:	f7f4 fffe 	bl	800b66c <HAL_SUBGHZ_ExecGetCmd>
+  __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
+ 8016670:	f384 8810 	msr	PRIMASK, r4
+}
+ 8016674:	bd10      	pop	{r4, pc}
+ 8016676:	bf00      	nop
+ 8016678:	20000acc 	.word	0x20000acc
+
+0801667c <SUBGRF_GetRssiInst>:
+{
+ 801667c:	b500      	push	{lr}
+ 801667e:	b083      	sub	sp, #12
+    SUBGRF_ReadCommand( RADIO_GET_RSSIINST, buf, 1 );
+ 8016680:	2201      	movs	r2, #1
+ 8016682:	a901      	add	r1, sp, #4
+ 8016684:	2015      	movs	r0, #21
+ 8016686:	f7ff ffe9 	bl	801665c <SUBGRF_ReadCommand>
+    rssi = -buf[0] >> 1;
+ 801668a:	f89d 0004 	ldrb.w	r0, [sp, #4]
+ 801668e:	4240      	negs	r0, r0
+}
+ 8016690:	1040      	asrs	r0, r0, #1
+ 8016692:	b003      	add	sp, #12
+ 8016694:	f85d fb04 	ldr.w	pc, [sp], #4
+
+08016698 <SUBGRF_GetRxBufferStatus>:
+{
+ 8016698:	b530      	push	{r4, r5, lr}
+ 801669a:	b083      	sub	sp, #12
+ 801669c:	4605      	mov	r5, r0
+ 801669e:	460c      	mov	r4, r1
+    SUBGRF_ReadCommand( RADIO_GET_RXBUFFERSTATUS, status, 2 );
+ 80166a0:	2202      	movs	r2, #2
+ 80166a2:	a901      	add	r1, sp, #4
+ 80166a4:	2013      	movs	r0, #19
+ 80166a6:	f7ff ffd9 	bl	801665c <SUBGRF_ReadCommand>
+    if( ( SUBGRF_GetPacketType( ) == PACKET_TYPE_LORA ) && ( LoRaHeaderType == LORA_PACKET_FIXED_LENGTH ) )
+ 80166aa:	f7ff fadd 	bl	8015c68 <SUBGRF_GetPacketType>
+ 80166ae:	2801      	cmp	r0, #1
+ 80166b0:	d007      	beq.n	80166c2 <SUBGRF_GetRxBufferStatus+0x2a>
+        *payloadLength = status[0];
+ 80166b2:	f89d 3004 	ldrb.w	r3, [sp, #4]
+ 80166b6:	702b      	strb	r3, [r5, #0]
+    *rxStartBufferPointer = status[1];
+ 80166b8:	f89d 3005 	ldrb.w	r3, [sp, #5]
+ 80166bc:	7023      	strb	r3, [r4, #0]
+}
+ 80166be:	b003      	add	sp, #12
+ 80166c0:	bd30      	pop	{r4, r5, pc}
+    if( ( SUBGRF_GetPacketType( ) == PACKET_TYPE_LORA ) && ( LoRaHeaderType == LORA_PACKET_FIXED_LENGTH ) )
+ 80166c2:	4b05      	ldr	r3, [pc, #20]	; (80166d8 <SUBGRF_GetRxBufferStatus+0x40>)
+ 80166c4:	781b      	ldrb	r3, [r3, #0]
+ 80166c6:	b2db      	uxtb	r3, r3
+ 80166c8:	2b01      	cmp	r3, #1
+ 80166ca:	d1f2      	bne.n	80166b2 <SUBGRF_GetRxBufferStatus+0x1a>
+        *payloadLength = SUBGRF_ReadRegister( REG_LR_PAYLOADLENGTH );
+ 80166cc:	f240 7002 	movw	r0, #1794	; 0x702
+ 80166d0:	f7ff fae0 	bl	8015c94 <SUBGRF_ReadRegister>
+ 80166d4:	7028      	strb	r0, [r5, #0]
+ 80166d6:	e7ef      	b.n	80166b8 <SUBGRF_GetRxBufferStatus+0x20>
+ 80166d8:	200027c9 	.word	0x200027c9
+
+080166dc <SUBGRF_GetPayload>:
+{
+ 80166dc:	b570      	push	{r4, r5, r6, lr}
+ 80166de:	b082      	sub	sp, #8
+ 80166e0:	4606      	mov	r6, r0
+ 80166e2:	460c      	mov	r4, r1
+ 80166e4:	4615      	mov	r5, r2
+    uint8_t offset = 0;
+ 80166e6:	2300      	movs	r3, #0
+ 80166e8:	f88d 3007 	strb.w	r3, [sp, #7]
+    SUBGRF_GetRxBufferStatus( size, &offset );
+ 80166ec:	f10d 0107 	add.w	r1, sp, #7
+ 80166f0:	4620      	mov	r0, r4
+ 80166f2:	f7ff ffd1 	bl	8016698 <SUBGRF_GetRxBufferStatus>
+    if( *size > maxSize )
+ 80166f6:	7822      	ldrb	r2, [r4, #0]
+ 80166f8:	42aa      	cmp	r2, r5
+ 80166fa:	d902      	bls.n	8016702 <SUBGRF_GetPayload+0x26>
+        return 1;
+ 80166fc:	2001      	movs	r0, #1
+}
+ 80166fe:	b002      	add	sp, #8
+ 8016700:	bd70      	pop	{r4, r5, r6, pc}
+    SUBGRF_ReadBuffer( offset, buffer, *size );
+ 8016702:	4631      	mov	r1, r6
+ 8016704:	f89d 0007 	ldrb.w	r0, [sp, #7]
+ 8016708:	f7ff fb6a 	bl	8015de0 <SUBGRF_ReadBuffer>
+    return 0;
+ 801670c:	2000      	movs	r0, #0
+ 801670e:	e7f6      	b.n	80166fe <SUBGRF_GetPayload+0x22>
+
+08016710 <SUBGRF_GetPacketStatus>:
+{
+ 8016710:	b510      	push	{r4, lr}
+ 8016712:	b082      	sub	sp, #8
+ 8016714:	4604      	mov	r4, r0
+    SUBGRF_ReadCommand( RADIO_GET_PACKETSTATUS, status, 3 );
+ 8016716:	2203      	movs	r2, #3
+ 8016718:	a901      	add	r1, sp, #4
+ 801671a:	2014      	movs	r0, #20
+ 801671c:	f7ff ff9e 	bl	801665c <SUBGRF_ReadCommand>
+    pktStatus->packetType = SUBGRF_GetPacketType( );
+ 8016720:	f7ff faa2 	bl	8015c68 <SUBGRF_GetPacketType>
+ 8016724:	7020      	strb	r0, [r4, #0]
+    switch( pktStatus->packetType )
+ 8016726:	b148      	cbz	r0, 801673c <SUBGRF_GetPacketStatus+0x2c>
+ 8016728:	2801      	cmp	r0, #1
+ 801672a:	d018      	beq.n	801675e <SUBGRF_GetPacketStatus+0x4e>
+            RADIO_MEMSET8( pktStatus, 0, sizeof( PacketStatus_t ) );
+ 801672c:	2214      	movs	r2, #20
+ 801672e:	2100      	movs	r1, #0
+ 8016730:	4620      	mov	r0, r4
+ 8016732:	f000 fb22 	bl	8016d7a <UTIL_MEM_set_8>
+            pktStatus->packetType = PACKET_TYPE_NONE;
+ 8016736:	230f      	movs	r3, #15
+ 8016738:	7023      	strb	r3, [r4, #0]
+}
+ 801673a:	e00e      	b.n	801675a <SUBGRF_GetPacketStatus+0x4a>
+            pktStatus->Params.Gfsk.RxStatus = status[0];
+ 801673c:	f89d 3004 	ldrb.w	r3, [sp, #4]
+ 8016740:	7123      	strb	r3, [r4, #4]
+            pktStatus->Params.Gfsk.RssiSync = -status[1] >> 1;
+ 8016742:	f89d 3005 	ldrb.w	r3, [sp, #5]
+ 8016746:	425b      	negs	r3, r3
+ 8016748:	105b      	asrs	r3, r3, #1
+ 801674a:	71a3      	strb	r3, [r4, #6]
+            pktStatus->Params.Gfsk.RssiAvg = -status[2] >> 1;
+ 801674c:	f89d 3006 	ldrb.w	r3, [sp, #6]
+ 8016750:	425b      	negs	r3, r3
+ 8016752:	105b      	asrs	r3, r3, #1
+ 8016754:	7163      	strb	r3, [r4, #5]
+            pktStatus->Params.Gfsk.FreqError = 0;
+ 8016756:	2300      	movs	r3, #0
+ 8016758:	60a3      	str	r3, [r4, #8]
+}
+ 801675a:	b002      	add	sp, #8
+ 801675c:	bd10      	pop	{r4, pc}
+            pktStatus->Params.LoRa.RssiPkt = -status[0] >> 1;
+ 801675e:	f89d 3004 	ldrb.w	r3, [sp, #4]
+ 8016762:	425b      	negs	r3, r3
+ 8016764:	105b      	asrs	r3, r3, #1
+ 8016766:	7323      	strb	r3, [r4, #12]
+            pktStatus->Params.LoRa.SnrPkt = ( ( ( int8_t )status[1] ) + 2 ) >> 2;
+ 8016768:	f99d 3005 	ldrsb.w	r3, [sp, #5]
+ 801676c:	3302      	adds	r3, #2
+ 801676e:	109b      	asrs	r3, r3, #2
+ 8016770:	7363      	strb	r3, [r4, #13]
+            pktStatus->Params.LoRa.SignalRssiPkt = -status[2] >> 1;
+ 8016772:	f89d 3006 	ldrb.w	r3, [sp, #6]
+ 8016776:	425b      	negs	r3, r3
+ 8016778:	105b      	asrs	r3, r3, #1
+ 801677a:	73a3      	strb	r3, [r4, #14]
+            pktStatus->Params.LoRa.FreqError = FrequencyError;
+ 801677c:	4b01      	ldr	r3, [pc, #4]	; (8016784 <SUBGRF_GetPacketStatus+0x74>)
+ 801677e:	681b      	ldr	r3, [r3, #0]
+ 8016780:	6123      	str	r3, [r4, #16]
+            break;
+ 8016782:	e7ea      	b.n	801675a <SUBGRF_GetPacketStatus+0x4a>
+ 8016784:	200027c4 	.word	0x200027c4
+
+08016788 <SUBGRF_SetSwitch>:
+{
+ 8016788:	b510      	push	{r4, lr}
+    if (rxtx == RFSWITCH_TX)
+ 801678a:	2901      	cmp	r1, #1
+ 801678c:	d003      	beq.n	8016796 <SUBGRF_SetSwitch+0xe>
+    RBI_Switch_TypeDef state = RBI_SWITCH_RX;
+ 801678e:	2001      	movs	r0, #1
+    RBI_ConfigRFSwitch(state);
+ 8016790:	f7ee fa54 	bl	8004c3c <RBI_ConfigRFSwitch>
+}
+ 8016794:	bd10      	pop	{r4, pc}
+ 8016796:	4604      	mov	r4, r0
+ 8016798:	4608      	mov	r0, r1
+        if (paSelect == RFO_LP)
+ 801679a:	2c01      	cmp	r4, #1
+ 801679c:	d003      	beq.n	80167a6 <SUBGRF_SetSwitch+0x1e>
+        if (paSelect == RFO_HP)
+ 801679e:	2c02      	cmp	r4, #2
+ 80167a0:	d1f6      	bne.n	8016790 <SUBGRF_SetSwitch+0x8>
+            state = RBI_SWITCH_RFO_HP;
+ 80167a2:	2003      	movs	r0, #3
+ 80167a4:	e7f4      	b.n	8016790 <SUBGRF_SetSwitch+0x8>
+            Radio_SMPS_Set(SMPS_DRIVE_SETTING_MAX);
+ 80167a6:	2004      	movs	r0, #4
+ 80167a8:	f7ff fa84 	bl	8015cb4 <Radio_SMPS_Set>
+            state = RBI_SWITCH_RFO_LP;
+ 80167ac:	2002      	movs	r0, #2
+ 80167ae:	e7f6      	b.n	801679e <SUBGRF_SetSwitch+0x16>
+
+080167b0 <SUBGRF_SetRfTxPower>:
+{
+ 80167b0:	b538      	push	{r3, r4, r5, lr}
+ 80167b2:	4604      	mov	r4, r0
+    int32_t TxConfig = RBI_GetTxConfig();
+ 80167b4:	f7ee fa82 	bl	8004cbc <RBI_GetTxConfig>
+    switch (TxConfig)
+ 80167b8:	b148      	cbz	r0, 80167ce <SUBGRF_SetRfTxPower+0x1e>
+ 80167ba:	2802      	cmp	r0, #2
+ 80167bc:	d10d      	bne.n	80167da <SUBGRF_SetRfTxPower+0x2a>
+            paSelect = RFO_HP;
+ 80167be:	2502      	movs	r5, #2
+    SUBGRF_SetTxParams( paSelect, power, RADIO_RAMP_40_US );
+ 80167c0:	2202      	movs	r2, #2
+ 80167c2:	4621      	mov	r1, r4
+ 80167c4:	4628      	mov	r0, r5
+ 80167c6:	f7ff fdb3 	bl	8016330 <SUBGRF_SetTxParams>
+}
+ 80167ca:	4628      	mov	r0, r5
+ 80167cc:	bd38      	pop	{r3, r4, r5, pc}
+            if (power > 15)
+ 80167ce:	2c0f      	cmp	r4, #15
+ 80167d0:	dc01      	bgt.n	80167d6 <SUBGRF_SetRfTxPower+0x26>
+                paSelect = RFO_LP;
+ 80167d2:	2501      	movs	r5, #1
+ 80167d4:	e7f4      	b.n	80167c0 <SUBGRF_SetRfTxPower+0x10>
+                paSelect = RFO_HP;
+ 80167d6:	2502      	movs	r5, #2
+ 80167d8:	e7f2      	b.n	80167c0 <SUBGRF_SetRfTxPower+0x10>
+    switch (TxConfig)
+ 80167da:	2501      	movs	r5, #1
+ 80167dc:	e7f0      	b.n	80167c0 <SUBGRF_SetRfTxPower+0x10>
+
+080167de <SUBGRF_GetRadioWakeUpTime>:
+}
+ 80167de:	200a      	movs	r0, #10
+ 80167e0:	4770      	bx	lr
+	...
+
+080167e4 <HAL_SUBGHZ_TxCpltCallback>:
+{
+ 80167e4:	b508      	push	{r3, lr}
+    RadioOnDioIrqCb( IRQ_TX_DONE );
+ 80167e6:	4b02      	ldr	r3, [pc, #8]	; (80167f0 <HAL_SUBGHZ_TxCpltCallback+0xc>)
+ 80167e8:	681b      	ldr	r3, [r3, #0]
+ 80167ea:	2001      	movs	r0, #1
+ 80167ec:	4798      	blx	r3
+}
+ 80167ee:	bd08      	pop	{r3, pc}
+ 80167f0:	200027cc 	.word	0x200027cc
+
+080167f4 <HAL_SUBGHZ_RxCpltCallback>:
+{
+ 80167f4:	b508      	push	{r3, lr}
+    RadioOnDioIrqCb( IRQ_RX_DONE );
+ 80167f6:	4b02      	ldr	r3, [pc, #8]	; (8016800 <HAL_SUBGHZ_RxCpltCallback+0xc>)
+ 80167f8:	681b      	ldr	r3, [r3, #0]
+ 80167fa:	2002      	movs	r0, #2
+ 80167fc:	4798      	blx	r3
+}
+ 80167fe:	bd08      	pop	{r3, pc}
+ 8016800:	200027cc 	.word	0x200027cc
+
+08016804 <HAL_SUBGHZ_CRCErrorCallback>:
+{
+ 8016804:	b508      	push	{r3, lr}
+    RadioOnDioIrqCb( IRQ_CRC_ERROR);
+ 8016806:	4b02      	ldr	r3, [pc, #8]	; (8016810 <HAL_SUBGHZ_CRCErrorCallback+0xc>)
+ 8016808:	681b      	ldr	r3, [r3, #0]
+ 801680a:	2040      	movs	r0, #64	; 0x40
+ 801680c:	4798      	blx	r3
+}
+ 801680e:	bd08      	pop	{r3, pc}
+ 8016810:	200027cc 	.word	0x200027cc
+
+08016814 <HAL_SUBGHZ_CADStatusCallback>:
+{
+ 8016814:	b508      	push	{r3, lr}
+    switch (cadstatus)
+ 8016816:	b111      	cbz	r1, 801681e <HAL_SUBGHZ_CADStatusCallback+0xa>
+ 8016818:	2901      	cmp	r1, #1
+ 801681a:	d005      	beq.n	8016828 <HAL_SUBGHZ_CADStatusCallback+0x14>
+}
+ 801681c:	bd08      	pop	{r3, pc}
+            RadioOnDioIrqCb( IRQ_CAD_CLEAR);
+ 801681e:	4b05      	ldr	r3, [pc, #20]	; (8016834 <HAL_SUBGHZ_CADStatusCallback+0x20>)
+ 8016820:	681b      	ldr	r3, [r3, #0]
+ 8016822:	2080      	movs	r0, #128	; 0x80
+ 8016824:	4798      	blx	r3
+            break;
+ 8016826:	e7f9      	b.n	801681c <HAL_SUBGHZ_CADStatusCallback+0x8>
+            RadioOnDioIrqCb( IRQ_CAD_DETECTED);
+ 8016828:	4b02      	ldr	r3, [pc, #8]	; (8016834 <HAL_SUBGHZ_CADStatusCallback+0x20>)
+ 801682a:	681b      	ldr	r3, [r3, #0]
+ 801682c:	f44f 7080 	mov.w	r0, #256	; 0x100
+ 8016830:	4798      	blx	r3
+}
+ 8016832:	e7f3      	b.n	801681c <HAL_SUBGHZ_CADStatusCallback+0x8>
+ 8016834:	200027cc 	.word	0x200027cc
+
+08016838 <HAL_SUBGHZ_RxTxTimeoutCallback>:
+{
+ 8016838:	b508      	push	{r3, lr}
+    RadioOnDioIrqCb( IRQ_RX_TX_TIMEOUT );
+ 801683a:	4b03      	ldr	r3, [pc, #12]	; (8016848 <HAL_SUBGHZ_RxTxTimeoutCallback+0x10>)
+ 801683c:	681b      	ldr	r3, [r3, #0]
+ 801683e:	f44f 7000 	mov.w	r0, #512	; 0x200
+ 8016842:	4798      	blx	r3
+}
+ 8016844:	bd08      	pop	{r3, pc}
+ 8016846:	bf00      	nop
+ 8016848:	200027cc 	.word	0x200027cc
+
+0801684c <HAL_SUBGHZ_HeaderErrorCallback>:
+{
+ 801684c:	b508      	push	{r3, lr}
+    RadioOnDioIrqCb( IRQ_HEADER_ERROR );
+ 801684e:	4b02      	ldr	r3, [pc, #8]	; (8016858 <HAL_SUBGHZ_HeaderErrorCallback+0xc>)
+ 8016850:	681b      	ldr	r3, [r3, #0]
+ 8016852:	2020      	movs	r0, #32
+ 8016854:	4798      	blx	r3
+}
+ 8016856:	bd08      	pop	{r3, pc}
+ 8016858:	200027cc 	.word	0x200027cc
+
+0801685c <HAL_SUBGHZ_PreambleDetectedCallback>:
+{
+ 801685c:	b508      	push	{r3, lr}
+    RadioOnDioIrqCb( IRQ_PREAMBLE_DETECTED );
+ 801685e:	4b02      	ldr	r3, [pc, #8]	; (8016868 <HAL_SUBGHZ_PreambleDetectedCallback+0xc>)
+ 8016860:	681b      	ldr	r3, [r3, #0]
+ 8016862:	2004      	movs	r0, #4
+ 8016864:	4798      	blx	r3
+}
+ 8016866:	bd08      	pop	{r3, pc}
+ 8016868:	200027cc 	.word	0x200027cc
+
+0801686c <HAL_SUBGHZ_SyncWordValidCallback>:
+{
+ 801686c:	b508      	push	{r3, lr}
+    RadioOnDioIrqCb( IRQ_SYNCWORD_VALID );
+ 801686e:	4b02      	ldr	r3, [pc, #8]	; (8016878 <HAL_SUBGHZ_SyncWordValidCallback+0xc>)
+ 8016870:	681b      	ldr	r3, [r3, #0]
+ 8016872:	2008      	movs	r0, #8
+ 8016874:	4798      	blx	r3
+}
+ 8016876:	bd08      	pop	{r3, pc}
+ 8016878:	200027cc 	.word	0x200027cc
+
+0801687c <HAL_SUBGHZ_HeaderValidCallback>:
+{
+ 801687c:	b508      	push	{r3, lr}
+    RadioOnDioIrqCb( IRQ_HEADER_VALID );
+ 801687e:	4b02      	ldr	r3, [pc, #8]	; (8016888 <HAL_SUBGHZ_HeaderValidCallback+0xc>)
+ 8016880:	681b      	ldr	r3, [r3, #0]
+ 8016882:	2010      	movs	r0, #16
+ 8016884:	4798      	blx	r3
+}
+ 8016886:	bd08      	pop	{r3, pc}
+ 8016888:	200027cc 	.word	0x200027cc
+
+0801688c <HAL_SUBGHZ_LrFhssHopCallback>:
+{
+ 801688c:	b508      	push	{r3, lr}
+    RadioOnDioIrqCb( IRQ_LR_FHSS_HOP );
+ 801688e:	4b03      	ldr	r3, [pc, #12]	; (801689c <HAL_SUBGHZ_LrFhssHopCallback+0x10>)
+ 8016890:	681b      	ldr	r3, [r3, #0]
+ 8016892:	f44f 4080 	mov.w	r0, #16384	; 0x4000
+ 8016896:	4798      	blx	r3
+}
+ 8016898:	bd08      	pop	{r3, pc}
+ 801689a:	bf00      	nop
+ 801689c:	200027cc 	.word	0x200027cc
+
+080168a0 <SUBGRF_GetFskBandwidthRegValue>:
+
+uint8_t SUBGRF_GetFskBandwidthRegValue( uint32_t bandwidth )
+{
+    uint8_t i;
+
+    if( bandwidth == 0 )
+ 80168a0:	4601      	mov	r1, r0
+ 80168a2:	b188      	cbz	r0, 80168c8 <SUBGRF_GetFskBandwidthRegValue+0x28>
+    {
+        return( 0x1F );
+    }
+
+    for( i = 0; i < ( sizeof( FskBandwidths ) / sizeof( FskBandwidth_t ) ); i++ )
+ 80168a4:	2300      	movs	r3, #0
+ 80168a6:	2b15      	cmp	r3, #21
+ 80168a8:	d80d      	bhi.n	80168c6 <SUBGRF_GetFskBandwidthRegValue+0x26>
+    {
+        if ( bandwidth < FskBandwidths[i].bandwidth )
+ 80168aa:	4618      	mov	r0, r3
+ 80168ac:	4a07      	ldr	r2, [pc, #28]	; (80168cc <SUBGRF_GetFskBandwidthRegValue+0x2c>)
+ 80168ae:	f852 2033 	ldr.w	r2, [r2, r3, lsl #3]
+ 80168b2:	428a      	cmp	r2, r1
+ 80168b4:	d802      	bhi.n	80168bc <SUBGRF_GetFskBandwidthRegValue+0x1c>
+    for( i = 0; i < ( sizeof( FskBandwidths ) / sizeof( FskBandwidth_t ) ); i++ )
+ 80168b6:	3301      	adds	r3, #1
+ 80168b8:	b2db      	uxtb	r3, r3
+ 80168ba:	e7f4      	b.n	80168a6 <SUBGRF_GetFskBandwidthRegValue+0x6>
+        {
+            return FskBandwidths[i].RegValue;
+ 80168bc:	4b03      	ldr	r3, [pc, #12]	; (80168cc <SUBGRF_GetFskBandwidthRegValue+0x2c>)
+ 80168be:	eb03 03c0 	add.w	r3, r3, r0, lsl #3
+ 80168c2:	7918      	ldrb	r0, [r3, #4]
+ 80168c4:	4770      	bx	lr
+        }
+    }
+    // ERROR: Value not found
+    while( 1 );
+ 80168c6:	e7fe      	b.n	80168c6 <SUBGRF_GetFskBandwidthRegValue+0x26>
+        return( 0x1F );
+ 80168c8:	201f      	movs	r0, #31
+}
+ 80168ca:	4770      	bx	lr
+ 80168cc:	08018d40 	.word	0x08018d40
+
+080168d0 <SUBGRF_GetCFO>:
+void SUBGRF_GetCFO( uint32_t bitRate, int32_t *cfo)
+{
+ 80168d0:	b570      	push	{r4, r5, r6, lr}
+ 80168d2:	b082      	sub	sp, #8
+ 80168d4:	4605      	mov	r5, r0
+ 80168d6:	460c      	mov	r4, r1
+  uint8_t BwMant[] = {4, 8, 10, 12};
+ 80168d8:	4b1d      	ldr	r3, [pc, #116]	; (8016950 <SUBGRF_GetCFO+0x80>)
+ 80168da:	9301      	str	r3, [sp, #4]
+  /* read demod bandwidth: mant bit4:3, exp bits 2:0 */
+  uint8_t reg = (SUBGRF_ReadRegister( SUBGHZ_BWSELR ));
+ 80168dc:	f640 0007 	movw	r0, #2055	; 0x807
+ 80168e0:	f7ff f9d8 	bl	8015c94 <SUBGRF_ReadRegister>
+  uint8_t bandwidth_mant = BwMant[( reg >> 3 ) & 0x3];
+ 80168e4:	f3c0 03c1 	ubfx	r3, r0, #3, #2
+ 80168e8:	3308      	adds	r3, #8
+ 80168ea:	446b      	add	r3, sp
+ 80168ec:	f813 2c04 	ldrb.w	r2, [r3, #-4]
+  uint8_t bandwidth_exp = reg & 0x7;
+ 80168f0:	f000 0307 	and.w	r3, r0, #7
+  uint32_t cf_fs = XTAL_FREQ / ( bandwidth_mant * ( 1 << ( bandwidth_exp + 1 )));
+ 80168f4:	3301      	adds	r3, #1
+ 80168f6:	fa02 f303 	lsl.w	r3, r2, r3
+ 80168fa:	4a16      	ldr	r2, [pc, #88]	; (8016954 <SUBGRF_GetCFO+0x84>)
+ 80168fc:	fbb2 f2f3 	udiv	r2, r2, r3
+  uint32_t cf_osr = cf_fs / bitRate;
+ 8016900:	fbb2 f0f5 	udiv	r0, r2, r5
+  uint8_t interp = 1;
+  /* calculate demod interpolation factor */
+  if (cf_osr * interp < 8)
+ 8016904:	2807      	cmp	r0, #7
+ 8016906:	d921      	bls.n	801694c <SUBGRF_GetCFO+0x7c>
+  uint8_t interp = 1;
+ 8016908:	2301      	movs	r3, #1
+  {
+    interp = 2;
+  }
+  if (cf_osr * interp < 4)
+ 801690a:	fb03 f000 	mul.w	r0, r3, r0
+ 801690e:	2803      	cmp	r0, #3
+ 8016910:	d800      	bhi.n	8016914 <SUBGRF_GetCFO+0x44>
+  {
+    interp = 4;
+ 8016912:	2304      	movs	r3, #4
+  }
+  /* calculate demod sampling frequency */
+  uint32_t fs = cf_fs* interp;
+ 8016914:	fb02 f503 	mul.w	r5, r2, r3
+  /* get the cfo registers */
+  int32_t cfo_bin = ( SUBGRF_ReadRegister( SUBGHZ_GCFORH ) & 0xF ) << 8;
+ 8016918:	f44f 60d6 	mov.w	r0, #1712	; 0x6b0
+ 801691c:	f7ff f9ba 	bl	8015c94 <SUBGRF_ReadRegister>
+ 8016920:	0206      	lsls	r6, r0, #8
+ 8016922:	f406 6670 	and.w	r6, r6, #3840	; 0xf00
+  cfo_bin |= SUBGRF_ReadRegister( SUBGHZ_GCFORL );
+ 8016926:	f240 60b1 	movw	r0, #1713	; 0x6b1
+ 801692a:	f7ff f9b3 	bl	8015c94 <SUBGRF_ReadRegister>
+ 801692e:	4330      	orrs	r0, r6
+  /* negate if 12 bits sign bit is 1 */
+  if (( cfo_bin & 0x800 ) == 0x800 )
+ 8016930:	f410 6f00 	tst.w	r0, #2048	; 0x800
+ 8016934:	d003      	beq.n	801693e <SUBGRF_GetCFO+0x6e>
+  {
+    cfo_bin |= 0xFFFFF000;
+ 8016936:	ea6f 5000 	mvn.w	r0, r0, lsl #20
+ 801693a:	ea6f 5010 	mvn.w	r0, r0, lsr #20
+  }
+  /* calculate cfo in Hz */
+  /* shift by 5 first to not saturate, cfo_bin on 12bits */
+  *cfo = ((int32_t)( cfo_bin * ( fs >> 5 ))) >> ( 12 - 5 );
+ 801693e:	096b      	lsrs	r3, r5, #5
+ 8016940:	fb03 f000 	mul.w	r0, r3, r0
+ 8016944:	11c0      	asrs	r0, r0, #7
+ 8016946:	6020      	str	r0, [r4, #0]
+}
+ 8016948:	b002      	add	sp, #8
+ 801694a:	bd70      	pop	{r4, r5, r6, pc}
+    interp = 2;
+ 801694c:	2302      	movs	r3, #2
+ 801694e:	e7dc      	b.n	801690a <SUBGRF_GetCFO+0x3a>
+ 8016950:	0c0a0804 	.word	0x0c0a0804
+ 8016954:	01e84800 	.word	0x01e84800
+
+08016958 <RFW_TransmitLongPacket>:
+    }
+#else
+    status = -1;
+#endif /* RFW_LONGPACKET_ENABLE == 1 */
+    return status;
+}
+ 8016958:	f04f 30ff 	mov.w	r0, #4294967295
+ 801695c:	4770      	bx	lr
+
+0801695e <RFW_ReceiveLongPacket>:
+    }
+#else
+    status = -1;
+#endif /* RFW_LONGPACKET_ENABLE == 1 */
+    return status;
+}
+ 801695e:	f04f 30ff 	mov.w	r0, #4294967295
+ 8016962:	4770      	bx	lr
+
+08016964 <RFW_Init>:
+    TimerInit( &RFWPacket.Timer, RFW_GetPayloadTimerEvent );
+    return 0;
+#else
+    return -1;
+#endif /* RFW_ENABLE == 1 */
+}
+ 8016964:	f04f 30ff 	mov.w	r0, #4294967295
+ 8016968:	4770      	bx	lr
+
+0801696a <RFW_DeInit>:
+void RFW_DeInit( void )
+{
+#if (RFW_ENABLE == 1 )
+    RFWPacket.Init.Enable = 0; /*Disable the RFWPacket decoding*/
+#endif /* RFW_ENABLE == 1 */
+}
+ 801696a:	4770      	bx	lr
+
+0801696c <RFW_Is_Init>:
+#if (RFW_ENABLE == 1 )
+    return RFWPacket.Init.Enable;
+#else
+    return 0;
+#endif /* RFW_ENABLE == 1 */
+}
+ 801696c:	2000      	movs	r0, #0
+ 801696e:	4770      	bx	lr
+
+08016970 <RFW_Is_LongPacketModeEnabled>:
+#if (RFW_ENABLE == 1 )
+    return RFWPacket.LongPacketModeEnable;
+#else
+    return 0;
+#endif /* RFW_ENABLE == 1 */
+}
+ 8016970:	2000      	movs	r0, #0
+ 8016972:	4770      	bx	lr
+
+08016974 <RFW_SetAntSwitch>:
+void RFW_SetAntSwitch( uint8_t AntSwitch )
+{
+#if (RFW_ENABLE == 1 )
+    RFWPacket.AntSwitchPaSelect = AntSwitch;
+#endif /* RFW_ENABLE == 1 */
+}
+ 8016974:	4770      	bx	lr
+
+08016976 <RFW_TransmitInit>:
+
+        status = 0;
+    }
+#endif /* RFW_ENABLE == 1 */
+    return status;
+}
+ 8016976:	f04f 30ff 	mov.w	r0, #4294967295
+ 801697a:	4770      	bx	lr
+
+0801697c <RFW_ReceiveInit>:
+    RFWPacket.LongPacketModeEnable = 0;
+    return 0;
+#else
+    return -1;
+#endif /* RFW_ENABLE == 1 */
+}
+ 801697c:	f04f 30ff 	mov.w	r0, #4294967295
+ 8016980:	4770      	bx	lr
+
+08016982 <RFW_DeInit_TxLongPacket>:
+    /*long packet WA*/
+    uint8_t reg = SUBGRF_ReadRegister( SUBGHZ_GPKTCTL1AR );
+    SUBGRF_WriteRegister( SUBGHZ_GPKTCTL1AR, reg & ~0x02 ); /* clear infinite_sequence bit */
+    SUBGRF_WriteRegister( SUBGHZ_GRTXPLDLEN, 0xFF ); /* RxTxPldLen: reset to 0xFF */
+#endif /* RFW_LONGPACKET_ENABLE == 1 */
+}
+ 8016982:	4770      	bx	lr
+
+08016984 <RFW_ReceivePayload>:
+        /*timeout*/
+        SUBGRF_SetStandby( STDBY_RC );
+        RFWPacket.Init.RadioEvents->RxTimeout( );
+    }
+#endif /* RFW_ENABLE == 1 */
+}
+ 8016984:	4770      	bx	lr
+
+08016986 <RFW_SetRadioModem>:
+void RFW_SetRadioModem( RadioModems_t Modem )
+{
+#if (RFW_ENABLE == 1 )
+    RFWPacket.Init.Modem = Modem;
+#endif /* RFW_ENABLE == 1 */
+}
+ 8016986:	4770      	bx	lr
+
+08016988 <TRACE_AllocateBufer>:
+ * @param  Size to allocate within fifo
+ * @param  Pos position within the fifo
+ * @retval write position inside the buffer is -1 no space available.
+ */
+static int16_t TRACE_AllocateBufer(uint16_t Size, uint16_t *Pos)
+{
+ 8016988:	b510      	push	{r4, lr}
+  __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
+ 801698a:	f3ef 8c10 	mrs	ip, PRIMASK
+  __ASM volatile ("cpsid i" : : : "memory");
+ 801698e:	b672      	cpsid	i
+  uint16_t freesize;
+  int16_t ret = -1;
+
+  UTIL_ADV_TRACE_ENTER_CRITICAL_SECTION();
+
+  if(ADV_TRACE_Ctx.TraceWrPtr == ADV_TRACE_Ctx.TraceRdPtr)
+ 8016990:	4b1e      	ldr	r3, [pc, #120]	; (8016a0c <TRACE_AllocateBufer+0x84>)
+ 8016992:	f8b3 e012 	ldrh.w	lr, [r3, #18]
+ 8016996:	8a1a      	ldrh	r2, [r3, #16]
+ 8016998:	4596      	cmp	lr, r2
+ 801699a:	d011      	beq.n	80169c0 <TRACE_AllocateBufer+0x38>
+#endif
+  }
+  else
+  {
+#ifdef UTIL_ADV_TRACE_UNCHUNK_MODE
+    if (ADV_TRACE_Ctx.TraceWrPtr > ADV_TRACE_Ctx.TraceRdPtr)
+ 801699c:	4596      	cmp	lr, r2
+ 801699e:	d921      	bls.n	80169e4 <TRACE_AllocateBufer+0x5c>
+    {
+      freesize = (uint16_t)(UTIL_ADV_TRACE_FIFO_SIZE - ADV_TRACE_Ctx.TraceWrPtr);
+ 80169a0:	f5ce 6380 	rsb	r3, lr, #1024	; 0x400
+ 80169a4:	b29b      	uxth	r3, r3
+      if((Size >= freesize) && (ADV_TRACE_Ctx.TraceRdPtr > Size)) 
+ 80169a6:	4283      	cmp	r3, r0
+ 80169a8:	d81f      	bhi.n	80169ea <TRACE_AllocateBufer+0x62>
+ 80169aa:	4282      	cmp	r2, r0
+ 80169ac:	d91d      	bls.n	80169ea <TRACE_AllocateBufer+0x62>
+      {
+        ADV_TRACE_Ctx.unchunk_status = TRACE_UNCHUNK_DETECTED;
+ 80169ae:	4b17      	ldr	r3, [pc, #92]	; (8016a0c <TRACE_AllocateBufer+0x84>)
+ 80169b0:	2401      	movs	r4, #1
+ 80169b2:	709c      	strb	r4, [r3, #2]
+        ADV_TRACE_Ctx.unchunk_enabled = ADV_TRACE_Ctx.TraceWrPtr;
+ 80169b4:	f8a3 e000 	strh.w	lr, [r3]
+        freesize = ADV_TRACE_Ctx.TraceRdPtr;
+        ADV_TRACE_Ctx.TraceWrPtr = 0;
+ 80169b8:	2400      	movs	r4, #0
+ 80169ba:	825c      	strh	r4, [r3, #18]
+        freesize = ADV_TRACE_Ctx.TraceRdPtr;
+ 80169bc:	4613      	mov	r3, r2
+ 80169be:	e014      	b.n	80169ea <TRACE_AllocateBufer+0x62>
+    freesize = (uint16_t)(UTIL_ADV_TRACE_FIFO_SIZE - ADV_TRACE_Ctx.TraceWrPtr);
+ 80169c0:	f5ce 6380 	rsb	r3, lr, #1024	; 0x400
+ 80169c4:	b29b      	uxth	r3, r3
+    if((Size >= freesize) && (ADV_TRACE_Ctx.TraceRdPtr > Size))
+ 80169c6:	4298      	cmp	r0, r3
+ 80169c8:	d30f      	bcc.n	80169ea <TRACE_AllocateBufer+0x62>
+ 80169ca:	4282      	cmp	r2, r0
+ 80169cc:	d90d      	bls.n	80169ea <TRACE_AllocateBufer+0x62>
+      ADV_TRACE_Ctx.unchunk_status = TRACE_UNCHUNK_DETECTED;
+ 80169ce:	4b0f      	ldr	r3, [pc, #60]	; (8016a0c <TRACE_AllocateBufer+0x84>)
+ 80169d0:	2401      	movs	r4, #1
+ 80169d2:	709c      	strb	r4, [r3, #2]
+      ADV_TRACE_Ctx.unchunk_enabled = ADV_TRACE_Ctx.TraceWrPtr;
+ 80169d4:	f8a3 e000 	strh.w	lr, [r3]
+      ADV_TRACE_Ctx.TraceWrPtr = 0;
+ 80169d8:	f04f 0e00 	mov.w	lr, #0
+ 80169dc:	f8a3 e012 	strh.w	lr, [r3, #18]
+      freesize = ADV_TRACE_Ctx.TraceRdPtr;
+ 80169e0:	4613      	mov	r3, r2
+ 80169e2:	e002      	b.n	80169ea <TRACE_AllocateBufer+0x62>
+      }
+    }
+    else
+    {
+      freesize = (uint16_t)(ADV_TRACE_Ctx.TraceRdPtr - ADV_TRACE_Ctx.TraceWrPtr);
+ 80169e4:	eba2 020e 	sub.w	r2, r2, lr
+ 80169e8:	b293      	uxth	r3, r2
+      freesize = ADV_TRACE_Ctx.TraceRdPtr - ADV_TRACE_Ctx.TraceWrPtr;
+    }
+#endif
+  }
+
+  if(freesize > Size)
+ 80169ea:	4283      	cmp	r3, r0
+ 80169ec:	d90a      	bls.n	8016a04 <TRACE_AllocateBufer+0x7c>
+  {
+    *Pos = ADV_TRACE_Ctx.TraceWrPtr;
+ 80169ee:	4a07      	ldr	r2, [pc, #28]	; (8016a0c <TRACE_AllocateBufer+0x84>)
+ 80169f0:	8a53      	ldrh	r3, [r2, #18]
+ 80169f2:	800b      	strh	r3, [r1, #0]
+    ADV_TRACE_Ctx.TraceWrPtr = (ADV_TRACE_Ctx.TraceWrPtr + Size) % UTIL_ADV_TRACE_FIFO_SIZE;
+ 80169f4:	4403      	add	r3, r0
+ 80169f6:	f3c3 0309 	ubfx	r3, r3, #0, #10
+ 80169fa:	8253      	strh	r3, [r2, #18]
+    ret = 0;
+ 80169fc:	2000      	movs	r0, #0
+  __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
+ 80169fe:	f38c 8810 	msr	PRIMASK, ip
+  }
+#endif
+
+  UTIL_ADV_TRACE_EXIT_CRITICAL_SECTION();
+  return ret;
+}
+ 8016a02:	bd10      	pop	{r4, pc}
+  int16_t ret = -1;
+ 8016a04:	f04f 30ff 	mov.w	r0, #4294967295
+ 8016a08:	e7f9      	b.n	80169fe <TRACE_AllocateBufer+0x76>
+ 8016a0a:	bf00      	nop
+ 8016a0c:	20002bd0 	.word	0x20002bd0
+
+08016a10 <TRACE_Lock>:
+  __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
+ 8016a10:	f3ef 8110 	mrs	r1, PRIMASK
+  __ASM volatile ("cpsid i" : : : "memory");
+ 8016a14:	b672      	cpsid	i
+ * @retval None.
+ */
+static void TRACE_Lock(void)
+{
+  UTIL_ADV_TRACE_ENTER_CRITICAL_SECTION();
+  ADV_TRACE_Ctx.TraceLock++;
+ 8016a16:	4a03      	ldr	r2, [pc, #12]	; (8016a24 <TRACE_Lock+0x14>)
+ 8016a18:	8ad3      	ldrh	r3, [r2, #22]
+ 8016a1a:	3301      	adds	r3, #1
+ 8016a1c:	82d3      	strh	r3, [r2, #22]
+  __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
+ 8016a1e:	f381 8810 	msr	PRIMASK, r1
+  UTIL_ADV_TRACE_EXIT_CRITICAL_SECTION();
+}
+ 8016a22:	4770      	bx	lr
+ 8016a24:	20002bd0 	.word	0x20002bd0
+
+08016a28 <TRACE_UnLock>:
+  __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
+ 8016a28:	f3ef 8110 	mrs	r1, PRIMASK
+  __ASM volatile ("cpsid i" : : : "memory");
+ 8016a2c:	b672      	cpsid	i
+ * @retval None.
+ */
+static void TRACE_UnLock(void)
+{
+  UTIL_ADV_TRACE_ENTER_CRITICAL_SECTION();
+  ADV_TRACE_Ctx.TraceLock--;
+ 8016a2e:	4a03      	ldr	r2, [pc, #12]	; (8016a3c <TRACE_UnLock+0x14>)
+ 8016a30:	8ad3      	ldrh	r3, [r2, #22]
+ 8016a32:	3b01      	subs	r3, #1
+ 8016a34:	82d3      	strh	r3, [r2, #22]
+  __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
+ 8016a36:	f381 8810 	msr	PRIMASK, r1
+  UTIL_ADV_TRACE_EXIT_CRITICAL_SECTION();
+}
+ 8016a3a:	4770      	bx	lr
+ 8016a3c:	20002bd0 	.word	0x20002bd0
+
+08016a40 <TRACE_IsLocked>:
+ * @brief  UnLock the trace buffer.
+ * @retval None.
+ */
+static uint32_t TRACE_IsLocked(void)
+{
+  return (ADV_TRACE_Ctx.TraceLock == 0u? 0u: 1u);
+ 8016a40:	4b02      	ldr	r3, [pc, #8]	; (8016a4c <TRACE_IsLocked+0xc>)
+ 8016a42:	8ad8      	ldrh	r0, [r3, #22]
+}
+ 8016a44:	3800      	subs	r0, #0
+ 8016a46:	bf18      	it	ne
+ 8016a48:	2001      	movne	r0, #1
+ 8016a4a:	4770      	bx	lr
+ 8016a4c:	20002bd0 	.word	0x20002bd0
+
+08016a50 <UTIL_ADV_TRACE_Init>:
+{
+ 8016a50:	b508      	push	{r3, lr}
+  (void)UTIL_ADV_TRACE_MEMSET8(&ADV_TRACE_Ctx, 0x0, sizeof(ADV_TRACE_Context));
+ 8016a52:	2218      	movs	r2, #24
+ 8016a54:	2100      	movs	r1, #0
+ 8016a56:	4807      	ldr	r0, [pc, #28]	; (8016a74 <UTIL_ADV_TRACE_Init+0x24>)
+ 8016a58:	f000 f98f 	bl	8016d7a <UTIL_MEM_set_8>
+  (void)UTIL_ADV_TRACE_MEMSET8(&ADV_TRACE_Buffer, 0x0, sizeof(ADV_TRACE_Buffer));
+ 8016a5c:	f44f 6280 	mov.w	r2, #1024	; 0x400
+ 8016a60:	2100      	movs	r1, #0
+ 8016a62:	4805      	ldr	r0, [pc, #20]	; (8016a78 <UTIL_ADV_TRACE_Init+0x28>)
+ 8016a64:	f000 f989 	bl	8016d7a <UTIL_MEM_set_8>
+  return UTIL_TraceDriver.Init(TRACE_TxCpltCallback);
+ 8016a68:	4b04      	ldr	r3, [pc, #16]	; (8016a7c <UTIL_ADV_TRACE_Init+0x2c>)
+ 8016a6a:	681b      	ldr	r3, [r3, #0]
+ 8016a6c:	4804      	ldr	r0, [pc, #16]	; (8016a80 <UTIL_ADV_TRACE_Init+0x30>)
+ 8016a6e:	4798      	blx	r3
+}
+ 8016a70:	bd08      	pop	{r3, pc}
+ 8016a72:	bf00      	nop
+ 8016a74:	20002bd0 	.word	0x20002bd0
+ 8016a78:	200027d0 	.word	0x200027d0
+ 8016a7c:	08017990 	.word	0x08017990
+ 8016a80:	08016c01 	.word	0x08016c01
+
+08016a84 <UTIL_ADV_TRACE_RegisterTimeStampFunction>:
+  ADV_TRACE_Ctx.timestamp_func = *cb;
+ 8016a84:	4b01      	ldr	r3, [pc, #4]	; (8016a8c <UTIL_ADV_TRACE_RegisterTimeStampFunction+0x8>)
+ 8016a86:	6058      	str	r0, [r3, #4]
+}
+ 8016a88:	4770      	bx	lr
+ 8016a8a:	bf00      	nop
+ 8016a8c:	20002bd0 	.word	0x20002bd0
+
+08016a90 <UTIL_ADV_TRACE_SetVerboseLevel>:
+  ADV_TRACE_Ctx.CurrentVerboseLevel = Level;
+ 8016a90:	4b01      	ldr	r3, [pc, #4]	; (8016a98 <UTIL_ADV_TRACE_SetVerboseLevel+0x8>)
+ 8016a92:	7218      	strb	r0, [r3, #8]
+}
+ 8016a94:	4770      	bx	lr
+ 8016a96:	bf00      	nop
+ 8016a98:	20002bd0 	.word	0x20002bd0
+
+08016a9c <TRACE_Send>:
+{
+ 8016a9c:	b570      	push	{r4, r5, r6, lr}
+  __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
+ 8016a9e:	f3ef 8310 	mrs	r3, PRIMASK
+ 8016aa2:	461c      	mov	r4, r3
+  __ASM volatile ("cpsid i" : : : "memory");
+ 8016aa4:	b672      	cpsid	i
+  if(TRACE_IsLocked() == 0u)
+ 8016aa6:	f7ff ffcb 	bl	8016a40 <TRACE_IsLocked>
+ 8016aaa:	b118      	cbz	r0, 8016ab4 <TRACE_Send+0x18>
+  __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
+ 8016aac:	f384 8810 	msr	PRIMASK, r4
+  UTIL_ADV_TRACE_Status_t ret = UTIL_ADV_TRACE_OK;
+ 8016ab0:	2000      	movs	r0, #0
+}
+ 8016ab2:	bd70      	pop	{r4, r5, r6, pc}
+    TRACE_Lock();
+ 8016ab4:	f7ff ffac 	bl	8016a10 <TRACE_Lock>
+    if(ADV_TRACE_Ctx.TraceRdPtr != ADV_TRACE_Ctx.TraceWrPtr)
+ 8016ab8:	4b1c      	ldr	r3, [pc, #112]	; (8016b2c <TRACE_Send+0x90>)
+ 8016aba:	8a1a      	ldrh	r2, [r3, #16]
+ 8016abc:	8a5b      	ldrh	r3, [r3, #18]
+ 8016abe:	429a      	cmp	r2, r3
+ 8016ac0:	d02e      	beq.n	8016b20 <TRACE_Send+0x84>
+      if(TRACE_UNCHUNK_DETECTED == ADV_TRACE_Ctx.unchunk_status)
+ 8016ac2:	491a      	ldr	r1, [pc, #104]	; (8016b2c <TRACE_Send+0x90>)
+ 8016ac4:	7889      	ldrb	r1, [r1, #2]
+ 8016ac6:	2901      	cmp	r1, #1
+ 8016ac8:	d017      	beq.n	8016afa <TRACE_Send+0x5e>
+      if(TRACE_UNCHUNK_NONE == ADV_TRACE_Ctx.unchunk_status)
+ 8016aca:	4a18      	ldr	r2, [pc, #96]	; (8016b2c <TRACE_Send+0x90>)
+ 8016acc:	7892      	ldrb	r2, [r2, #2]
+ 8016ace:	b932      	cbnz	r2, 8016ade <TRACE_Send+0x42>
+        if(ADV_TRACE_Ctx.TraceWrPtr > ADV_TRACE_Ctx.TraceRdPtr)
+ 8016ad0:	4a16      	ldr	r2, [pc, #88]	; (8016b2c <TRACE_Send+0x90>)
+ 8016ad2:	8a12      	ldrh	r2, [r2, #16]
+ 8016ad4:	4293      	cmp	r3, r2
+ 8016ad6:	d91e      	bls.n	8016b16 <TRACE_Send+0x7a>
+          ADV_TRACE_Ctx.TraceSentSize = ADV_TRACE_Ctx.TraceWrPtr - ADV_TRACE_Ctx.TraceRdPtr;
+ 8016ad8:	1a9b      	subs	r3, r3, r2
+ 8016ada:	4a14      	ldr	r2, [pc, #80]	; (8016b2c <TRACE_Send+0x90>)
+ 8016adc:	8293      	strh	r3, [r2, #20]
+      ptr = &ADV_TRACE_Buffer[ADV_TRACE_Ctx.TraceRdPtr];
+ 8016ade:	4e13      	ldr	r6, [pc, #76]	; (8016b2c <TRACE_Send+0x90>)
+ 8016ae0:	8a33      	ldrh	r3, [r6, #16]
+ 8016ae2:	4d13      	ldr	r5, [pc, #76]	; (8016b30 <TRACE_Send+0x94>)
+ 8016ae4:	441d      	add	r5, r3
+ 8016ae6:	f384 8810 	msr	PRIMASK, r4
+      UTIL_ADV_TRACE_PreSendHook();
+ 8016aea:	f7ec f8c7 	bl	8002c7c <UTIL_ADV_TRACE_PreSendHook>
+      ret = UTIL_TraceDriver.Send(ptr, ADV_TRACE_Ctx.TraceSentSize);
+ 8016aee:	4b11      	ldr	r3, [pc, #68]	; (8016b34 <TRACE_Send+0x98>)
+ 8016af0:	68db      	ldr	r3, [r3, #12]
+ 8016af2:	8ab1      	ldrh	r1, [r6, #20]
+ 8016af4:	4628      	mov	r0, r5
+ 8016af6:	4798      	blx	r3
+ 8016af8:	e7db      	b.n	8016ab2 <TRACE_Send+0x16>
+        ADV_TRACE_Ctx.TraceSentSize = (uint16_t) (ADV_TRACE_Ctx.unchunk_enabled - ADV_TRACE_Ctx.TraceRdPtr);
+ 8016afa:	480c      	ldr	r0, [pc, #48]	; (8016b2c <TRACE_Send+0x90>)
+ 8016afc:	8801      	ldrh	r1, [r0, #0]
+ 8016afe:	1a8a      	subs	r2, r1, r2
+ 8016b00:	b292      	uxth	r2, r2
+ 8016b02:	8282      	strh	r2, [r0, #20]
+        ADV_TRACE_Ctx.unchunk_status = TRACE_UNCHUNK_TRANSFER;
+ 8016b04:	2102      	movs	r1, #2
+ 8016b06:	7081      	strb	r1, [r0, #2]
+        ADV_TRACE_Ctx.unchunk_enabled = 0;
+ 8016b08:	2100      	movs	r1, #0
+ 8016b0a:	8001      	strh	r1, [r0, #0]
+        if(0u == ADV_TRACE_Ctx.TraceSentSize)
+ 8016b0c:	2a00      	cmp	r2, #0
+ 8016b0e:	d1dc      	bne.n	8016aca <TRACE_Send+0x2e>
+          ADV_TRACE_Ctx.unchunk_status = TRACE_UNCHUNK_NONE;
+ 8016b10:	7081      	strb	r1, [r0, #2]
+          ADV_TRACE_Ctx.TraceRdPtr = 0;
+ 8016b12:	8201      	strh	r1, [r0, #16]
+ 8016b14:	e7d9      	b.n	8016aca <TRACE_Send+0x2e>
+          ADV_TRACE_Ctx.TraceSentSize = UTIL_ADV_TRACE_FIFO_SIZE - ADV_TRACE_Ctx.TraceRdPtr;
+ 8016b16:	f5c2 6280 	rsb	r2, r2, #1024	; 0x400
+ 8016b1a:	4b04      	ldr	r3, [pc, #16]	; (8016b2c <TRACE_Send+0x90>)
+ 8016b1c:	829a      	strh	r2, [r3, #20]
+ 8016b1e:	e7de      	b.n	8016ade <TRACE_Send+0x42>
+      TRACE_UnLock();
+ 8016b20:	f7ff ff82 	bl	8016a28 <TRACE_UnLock>
+ 8016b24:	f384 8810 	msr	PRIMASK, r4
+  UTIL_ADV_TRACE_Status_t ret = UTIL_ADV_TRACE_OK;
+ 8016b28:	2000      	movs	r0, #0
+}
+ 8016b2a:	e7c2      	b.n	8016ab2 <TRACE_Send+0x16>
+ 8016b2c:	20002bd0 	.word	0x20002bd0
+ 8016b30:	200027d0 	.word	0x200027d0
+ 8016b34:	08017990 	.word	0x08017990
+
+08016b38 <UTIL_ADV_TRACE_COND_FSend>:
+{
+ 8016b38:	b408      	push	{r3}
+ 8016b3a:	b530      	push	{r4, r5, lr}
+ 8016b3c:	b086      	sub	sp, #24
+ 8016b3e:	9c09      	ldr	r4, [sp, #36]	; 0x24
+  uint16_t timestamp_size = 0u;
+ 8016b40:	2300      	movs	r3, #0
+ 8016b42:	f8ad 3002 	strh.w	r3, [sp, #2]
+  if(!(ADV_TRACE_Ctx.CurrentVerboseLevel >= VerboseLevel))
+ 8016b46:	4b2b      	ldr	r3, [pc, #172]	; (8016bf4 <UTIL_ADV_TRACE_COND_FSend+0xbc>)
+ 8016b48:	7a1b      	ldrb	r3, [r3, #8]
+ 8016b4a:	4283      	cmp	r3, r0
+ 8016b4c:	d34c      	bcc.n	8016be8 <UTIL_ADV_TRACE_COND_FSend+0xb0>
+  if((Region & ADV_TRACE_Ctx.RegionMask) != Region)
+ 8016b4e:	4b29      	ldr	r3, [pc, #164]	; (8016bf4 <UTIL_ADV_TRACE_COND_FSend+0xbc>)
+ 8016b50:	68db      	ldr	r3, [r3, #12]
+ 8016b52:	4399      	bics	r1, r3
+ 8016b54:	d14b      	bne.n	8016bee <UTIL_ADV_TRACE_COND_FSend+0xb6>
+  if((ADV_TRACE_Ctx.timestamp_func != NULL) && (TimeStampState != 0u))
+ 8016b56:	4b27      	ldr	r3, [pc, #156]	; (8016bf4 <UTIL_ADV_TRACE_COND_FSend+0xbc>)
+ 8016b58:	685b      	ldr	r3, [r3, #4]
+ 8016b5a:	b123      	cbz	r3, 8016b66 <UTIL_ADV_TRACE_COND_FSend+0x2e>
+ 8016b5c:	b11a      	cbz	r2, 8016b66 <UTIL_ADV_TRACE_COND_FSend+0x2e>
+    ADV_TRACE_Ctx.timestamp_func(buf,&timestamp_size);
+ 8016b5e:	f10d 0102 	add.w	r1, sp, #2
+ 8016b62:	a801      	add	r0, sp, #4
+ 8016b64:	4798      	blx	r3
+  va_start( vaArgs, strFormat);
+ 8016b66:	ab0a      	add	r3, sp, #40	; 0x28
+ 8016b68:	9305      	str	r3, [sp, #20]
+  buff_size =(uint16_t)UTIL_ADV_TRACE_VSNPRINTF((char *)sztmp,UTIL_ADV_TRACE_TMP_BUF_SIZE, strFormat, vaArgs);
+ 8016b6a:	4622      	mov	r2, r4
+ 8016b6c:	f44f 7100 	mov.w	r1, #512	; 0x200
+ 8016b70:	4821      	ldr	r0, [pc, #132]	; (8016bf8 <UTIL_ADV_TRACE_COND_FSend+0xc0>)
+ 8016b72:	f000 fcd1 	bl	8017518 <tiny_vsnprintf_like>
+ 8016b76:	b285      	uxth	r5, r0
+  TRACE_Lock();
+ 8016b78:	f7ff ff4a 	bl	8016a10 <TRACE_Lock>
+  if (TRACE_AllocateBufer((buff_size+timestamp_size),&writepos) != -1)
+ 8016b7c:	f8bd 3002 	ldrh.w	r3, [sp, #2]
+ 8016b80:	18e8      	adds	r0, r5, r3
+ 8016b82:	4669      	mov	r1, sp
+ 8016b84:	b280      	uxth	r0, r0
+ 8016b86:	f7ff feff 	bl	8016988 <TRACE_AllocateBufer>
+ 8016b8a:	f1b0 3fff 	cmp.w	r0, #4294967295
+ 8016b8e:	d026      	beq.n	8016bde <UTIL_ADV_TRACE_COND_FSend+0xa6>
+    for (idx = 0u; idx < timestamp_size; idx++)
+ 8016b90:	2300      	movs	r3, #0
+ 8016b92:	e00d      	b.n	8016bb0 <UTIL_ADV_TRACE_COND_FSend+0x78>
+      ADV_TRACE_Buffer[writepos] = buf[idx];
+ 8016b94:	f8bd 2000 	ldrh.w	r2, [sp]
+ 8016b98:	f103 0118 	add.w	r1, r3, #24
+ 8016b9c:	4469      	add	r1, sp
+ 8016b9e:	f811 0c14 	ldrb.w	r0, [r1, #-20]
+ 8016ba2:	4916      	ldr	r1, [pc, #88]	; (8016bfc <UTIL_ADV_TRACE_COND_FSend+0xc4>)
+ 8016ba4:	5488      	strb	r0, [r1, r2]
+      writepos = writepos + 1u;
+ 8016ba6:	3201      	adds	r2, #1
+ 8016ba8:	f8ad 2000 	strh.w	r2, [sp]
+    for (idx = 0u; idx < timestamp_size; idx++)
+ 8016bac:	3301      	adds	r3, #1
+ 8016bae:	b29b      	uxth	r3, r3
+ 8016bb0:	f8bd 2002 	ldrh.w	r2, [sp, #2]
+ 8016bb4:	429a      	cmp	r2, r3
+ 8016bb6:	d8ed      	bhi.n	8016b94 <UTIL_ADV_TRACE_COND_FSend+0x5c>
+    (void)UTIL_ADV_TRACE_VSNPRINTF((char *)(&ADV_TRACE_Buffer[writepos]), UTIL_ADV_TRACE_TMP_BUF_SIZE, strFormat, vaArgs);
+ 8016bb8:	f8bd 0000 	ldrh.w	r0, [sp]
+ 8016bbc:	9b05      	ldr	r3, [sp, #20]
+ 8016bbe:	4622      	mov	r2, r4
+ 8016bc0:	f44f 7100 	mov.w	r1, #512	; 0x200
+ 8016bc4:	4c0d      	ldr	r4, [pc, #52]	; (8016bfc <UTIL_ADV_TRACE_COND_FSend+0xc4>)
+ 8016bc6:	4420      	add	r0, r4
+ 8016bc8:	f000 fca6 	bl	8017518 <tiny_vsnprintf_like>
+    TRACE_UnLock();
+ 8016bcc:	f7ff ff2c 	bl	8016a28 <TRACE_UnLock>
+    return TRACE_Send();
+ 8016bd0:	f7ff ff64 	bl	8016a9c <TRACE_Send>
+}
+ 8016bd4:	b006      	add	sp, #24
+ 8016bd6:	e8bd 4030 	ldmia.w	sp!, {r4, r5, lr}
+ 8016bda:	b001      	add	sp, #4
+ 8016bdc:	4770      	bx	lr
+  TRACE_UnLock();
+ 8016bde:	f7ff ff23 	bl	8016a28 <TRACE_UnLock>
+  return UTIL_ADV_TRACE_MEM_FULL;
+ 8016be2:	f06f 0002 	mvn.w	r0, #2
+ 8016be6:	e7f5      	b.n	8016bd4 <UTIL_ADV_TRACE_COND_FSend+0x9c>
+    return UTIL_ADV_TRACE_GIVEUP;
+ 8016be8:	f06f 0004 	mvn.w	r0, #4
+ 8016bec:	e7f2      	b.n	8016bd4 <UTIL_ADV_TRACE_COND_FSend+0x9c>
+    return UTIL_ADV_TRACE_REGIONMASKED;
+ 8016bee:	f06f 0005 	mvn.w	r0, #5
+ 8016bf2:	e7ef      	b.n	8016bd4 <UTIL_ADV_TRACE_COND_FSend+0x9c>
+ 8016bf4:	20002bd0 	.word	0x20002bd0
+ 8016bf8:	20002be8 	.word	0x20002be8
+ 8016bfc:	200027d0 	.word	0x200027d0
+
+08016c00 <TRACE_TxCpltCallback>:
+{
+ 8016c00:	b510      	push	{r4, lr}
+  __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
+ 8016c02:	f3ef 8310 	mrs	r3, PRIMASK
+ 8016c06:	4619      	mov	r1, r3
+  __ASM volatile ("cpsid i" : : : "memory");
+ 8016c08:	b672      	cpsid	i
+  if(TRACE_UNCHUNK_TRANSFER == ADV_TRACE_Ctx.unchunk_status)
+ 8016c0a:	4b26      	ldr	r3, [pc, #152]	; (8016ca4 <TRACE_TxCpltCallback+0xa4>)
+ 8016c0c:	789b      	ldrb	r3, [r3, #2]
+ 8016c0e:	2b02      	cmp	r3, #2
+ 8016c10:	d016      	beq.n	8016c40 <TRACE_TxCpltCallback+0x40>
+    ADV_TRACE_Ctx.TraceRdPtr = (ADV_TRACE_Ctx.TraceRdPtr + ADV_TRACE_Ctx.TraceSentSize) % UTIL_ADV_TRACE_FIFO_SIZE;
+ 8016c12:	4a24      	ldr	r2, [pc, #144]	; (8016ca4 <TRACE_TxCpltCallback+0xa4>)
+ 8016c14:	8a13      	ldrh	r3, [r2, #16]
+ 8016c16:	8a90      	ldrh	r0, [r2, #20]
+ 8016c18:	4403      	add	r3, r0
+ 8016c1a:	f3c3 0309 	ubfx	r3, r3, #0, #10
+ 8016c1e:	8213      	strh	r3, [r2, #16]
+  if((ADV_TRACE_Ctx.TraceRdPtr != ADV_TRACE_Ctx.TraceWrPtr) && (1u == ADV_TRACE_Ctx.TraceLock))
+ 8016c20:	4b20      	ldr	r3, [pc, #128]	; (8016ca4 <TRACE_TxCpltCallback+0xa4>)
+ 8016c22:	8a1a      	ldrh	r2, [r3, #16]
+ 8016c24:	8a5b      	ldrh	r3, [r3, #18]
+ 8016c26:	429a      	cmp	r2, r3
+ 8016c28:	d003      	beq.n	8016c32 <TRACE_TxCpltCallback+0x32>
+ 8016c2a:	481e      	ldr	r0, [pc, #120]	; (8016ca4 <TRACE_TxCpltCallback+0xa4>)
+ 8016c2c:	8ac0      	ldrh	r0, [r0, #22]
+ 8016c2e:	2801      	cmp	r0, #1
+ 8016c30:	d00b      	beq.n	8016c4a <TRACE_TxCpltCallback+0x4a>
+  __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
+ 8016c32:	f381 8810 	msr	PRIMASK, r1
+    UTIL_ADV_TRACE_PostSendHook();
+ 8016c36:	f7ec f827 	bl	8002c88 <UTIL_ADV_TRACE_PostSendHook>
+    TRACE_UnLock();
+ 8016c3a:	f7ff fef5 	bl	8016a28 <TRACE_UnLock>
+}
+ 8016c3e:	bd10      	pop	{r4, pc}
+    ADV_TRACE_Ctx.unchunk_status = TRACE_UNCHUNK_NONE;
+ 8016c40:	4b18      	ldr	r3, [pc, #96]	; (8016ca4 <TRACE_TxCpltCallback+0xa4>)
+ 8016c42:	2200      	movs	r2, #0
+ 8016c44:	709a      	strb	r2, [r3, #2]
+    ADV_TRACE_Ctx.TraceRdPtr = 0;
+ 8016c46:	821a      	strh	r2, [r3, #16]
+    UTIL_ADV_TRACE_DEBUG("\nTRACE_TxCpltCallback::unchunk complete\n");
+ 8016c48:	e7ea      	b.n	8016c20 <TRACE_TxCpltCallback+0x20>
+    if(TRACE_UNCHUNK_DETECTED == ADV_TRACE_Ctx.unchunk_status)
+ 8016c4a:	4816      	ldr	r0, [pc, #88]	; (8016ca4 <TRACE_TxCpltCallback+0xa4>)
+ 8016c4c:	7880      	ldrb	r0, [r0, #2]
+ 8016c4e:	2801      	cmp	r0, #1
+ 8016c50:	d014      	beq.n	8016c7c <TRACE_TxCpltCallback+0x7c>
+    if(TRACE_UNCHUNK_NONE == ADV_TRACE_Ctx.unchunk_status)
+ 8016c52:	4a14      	ldr	r2, [pc, #80]	; (8016ca4 <TRACE_TxCpltCallback+0xa4>)
+ 8016c54:	7892      	ldrb	r2, [r2, #2]
+ 8016c56:	b932      	cbnz	r2, 8016c66 <TRACE_TxCpltCallback+0x66>
+      if(ADV_TRACE_Ctx.TraceWrPtr > ADV_TRACE_Ctx.TraceRdPtr)
+ 8016c58:	4a12      	ldr	r2, [pc, #72]	; (8016ca4 <TRACE_TxCpltCallback+0xa4>)
+ 8016c5a:	8a12      	ldrh	r2, [r2, #16]
+ 8016c5c:	4293      	cmp	r3, r2
+ 8016c5e:	d91b      	bls.n	8016c98 <TRACE_TxCpltCallback+0x98>
+        ADV_TRACE_Ctx.TraceSentSize = ADV_TRACE_Ctx.TraceWrPtr - ADV_TRACE_Ctx.TraceRdPtr;
+ 8016c60:	1a9b      	subs	r3, r3, r2
+ 8016c62:	4a10      	ldr	r2, [pc, #64]	; (8016ca4 <TRACE_TxCpltCallback+0xa4>)
+ 8016c64:	8293      	strh	r3, [r2, #20]
+    ptr = &ADV_TRACE_Buffer[ADV_TRACE_Ctx.TraceRdPtr];
+ 8016c66:	4b0f      	ldr	r3, [pc, #60]	; (8016ca4 <TRACE_TxCpltCallback+0xa4>)
+ 8016c68:	8a1a      	ldrh	r2, [r3, #16]
+ 8016c6a:	480f      	ldr	r0, [pc, #60]	; (8016ca8 <TRACE_TxCpltCallback+0xa8>)
+ 8016c6c:	4410      	add	r0, r2
+ 8016c6e:	f381 8810 	msr	PRIMASK, r1
+    UTIL_TraceDriver.Send(ptr, ADV_TRACE_Ctx.TraceSentSize);
+ 8016c72:	4a0e      	ldr	r2, [pc, #56]	; (8016cac <TRACE_TxCpltCallback+0xac>)
+ 8016c74:	68d2      	ldr	r2, [r2, #12]
+ 8016c76:	8a99      	ldrh	r1, [r3, #20]
+ 8016c78:	4790      	blx	r2
+ 8016c7a:	e7e0      	b.n	8016c3e <TRACE_TxCpltCallback+0x3e>
+      ADV_TRACE_Ctx.TraceSentSize = ADV_TRACE_Ctx.unchunk_enabled - ADV_TRACE_Ctx.TraceRdPtr;
+ 8016c7c:	4c09      	ldr	r4, [pc, #36]	; (8016ca4 <TRACE_TxCpltCallback+0xa4>)
+ 8016c7e:	8820      	ldrh	r0, [r4, #0]
+ 8016c80:	1a82      	subs	r2, r0, r2
+ 8016c82:	b292      	uxth	r2, r2
+ 8016c84:	82a2      	strh	r2, [r4, #20]
+      ADV_TRACE_Ctx.unchunk_status = TRACE_UNCHUNK_TRANSFER;
+ 8016c86:	2002      	movs	r0, #2
+ 8016c88:	70a0      	strb	r0, [r4, #2]
+      ADV_TRACE_Ctx.unchunk_enabled = 0;
+ 8016c8a:	2000      	movs	r0, #0
+ 8016c8c:	8020      	strh	r0, [r4, #0]
+      if(0u == ADV_TRACE_Ctx.TraceSentSize)
+ 8016c8e:	2a00      	cmp	r2, #0
+ 8016c90:	d1df      	bne.n	8016c52 <TRACE_TxCpltCallback+0x52>
+        ADV_TRACE_Ctx.unchunk_status = TRACE_UNCHUNK_NONE;
+ 8016c92:	70a0      	strb	r0, [r4, #2]
+        ADV_TRACE_Ctx.TraceRdPtr = 0;
+ 8016c94:	8220      	strh	r0, [r4, #16]
+ 8016c96:	e7dc      	b.n	8016c52 <TRACE_TxCpltCallback+0x52>
+        ADV_TRACE_Ctx.TraceSentSize = UTIL_ADV_TRACE_FIFO_SIZE - ADV_TRACE_Ctx.TraceRdPtr;
+ 8016c98:	f5c2 6280 	rsb	r2, r2, #1024	; 0x400
+ 8016c9c:	4b01      	ldr	r3, [pc, #4]	; (8016ca4 <TRACE_TxCpltCallback+0xa4>)
+ 8016c9e:	829a      	strh	r2, [r3, #20]
+ 8016ca0:	e7e1      	b.n	8016c66 <TRACE_TxCpltCallback+0x66>
+ 8016ca2:	bf00      	nop
+ 8016ca4:	20002bd0 	.word	0x20002bd0
+ 8016ca8:	200027d0 	.word	0x200027d0
+ 8016cac:	08017990 	.word	0x08017990
+
+08016cb0 <UTIL_LPM_Init>:
+/** @addtogroup TINY_LPM_Exported_function
+  * @{
+  */
+void UTIL_LPM_Init( void )
+{
+  StopModeDisable = UTIL_LPM_NO_BIT_SET;
+ 8016cb0:	2300      	movs	r3, #0
+ 8016cb2:	4a02      	ldr	r2, [pc, #8]	; (8016cbc <UTIL_LPM_Init+0xc>)
+ 8016cb4:	6013      	str	r3, [r2, #0]
+  OffModeDisable = UTIL_LPM_NO_BIT_SET;
+ 8016cb6:	4a02      	ldr	r2, [pc, #8]	; (8016cc0 <UTIL_LPM_Init+0x10>)
+ 8016cb8:	6013      	str	r3, [r2, #0]
+  UTIL_LPM_INIT_CRITICAL_SECTION( );
+}
+ 8016cba:	4770      	bx	lr
+ 8016cbc:	20002dec 	.word	0x20002dec
+ 8016cc0:	20002de8 	.word	0x20002de8
+
+08016cc4 <UTIL_LPM_SetStopMode>:
+  __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
+ 8016cc4:	f3ef 8310 	mrs	r3, PRIMASK
+  __ASM volatile ("cpsid i" : : : "memory");
+ 8016cc8:	b672      	cpsid	i
+
+void UTIL_LPM_SetStopMode( UTIL_LPM_bm_t lpm_id_bm, UTIL_LPM_State_t state )
+{
+  UTIL_LPM_ENTER_CRITICAL_SECTION( );
+  
+  switch( state )
+ 8016cca:	b141      	cbz	r1, 8016cde <UTIL_LPM_SetStopMode+0x1a>
+ 8016ccc:	2901      	cmp	r1, #1
+ 8016cce:	d103      	bne.n	8016cd8 <UTIL_LPM_SetStopMode+0x14>
+  {
+  case UTIL_LPM_DISABLE:
+    {
+      StopModeDisable |= lpm_id_bm;
+ 8016cd0:	4906      	ldr	r1, [pc, #24]	; (8016cec <UTIL_LPM_SetStopMode+0x28>)
+ 8016cd2:	680a      	ldr	r2, [r1, #0]
+ 8016cd4:	4302      	orrs	r2, r0
+ 8016cd6:	600a      	str	r2, [r1, #0]
+  __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
+ 8016cd8:	f383 8810 	msr	PRIMASK, r3
+      break;
+    }
+  }
+  
+  UTIL_LPM_EXIT_CRITICAL_SECTION( );
+}
+ 8016cdc:	4770      	bx	lr
+      StopModeDisable &= ( ~lpm_id_bm );
+ 8016cde:	4903      	ldr	r1, [pc, #12]	; (8016cec <UTIL_LPM_SetStopMode+0x28>)
+ 8016ce0:	680a      	ldr	r2, [r1, #0]
+ 8016ce2:	ea22 0200 	bic.w	r2, r2, r0
+ 8016ce6:	600a      	str	r2, [r1, #0]
+      break;
+ 8016ce8:	e7f6      	b.n	8016cd8 <UTIL_LPM_SetStopMode+0x14>
+ 8016cea:	bf00      	nop
+ 8016cec:	20002dec 	.word	0x20002dec
+
+08016cf0 <UTIL_LPM_SetOffMode>:
+  __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
+ 8016cf0:	f3ef 8310 	mrs	r3, PRIMASK
+  __ASM volatile ("cpsid i" : : : "memory");
+ 8016cf4:	b672      	cpsid	i
+
+void UTIL_LPM_SetOffMode( UTIL_LPM_bm_t lpm_id_bm, UTIL_LPM_State_t state )
+{
+  UTIL_LPM_ENTER_CRITICAL_SECTION( );
+  
+  switch(state)
+ 8016cf6:	b141      	cbz	r1, 8016d0a <UTIL_LPM_SetOffMode+0x1a>
+ 8016cf8:	2901      	cmp	r1, #1
+ 8016cfa:	d103      	bne.n	8016d04 <UTIL_LPM_SetOffMode+0x14>
+  {
+  case UTIL_LPM_DISABLE:
+    {
+      OffModeDisable |= lpm_id_bm;
+ 8016cfc:	4906      	ldr	r1, [pc, #24]	; (8016d18 <UTIL_LPM_SetOffMode+0x28>)
+ 8016cfe:	680a      	ldr	r2, [r1, #0]
+ 8016d00:	4302      	orrs	r2, r0
+ 8016d02:	600a      	str	r2, [r1, #0]
+  __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
+ 8016d04:	f383 8810 	msr	PRIMASK, r3
+      break;
+    }
+  }
+  
+  UTIL_LPM_EXIT_CRITICAL_SECTION( );
+}
+ 8016d08:	4770      	bx	lr
+      OffModeDisable &= ( ~lpm_id_bm );
+ 8016d0a:	4903      	ldr	r1, [pc, #12]	; (8016d18 <UTIL_LPM_SetOffMode+0x28>)
+ 8016d0c:	680a      	ldr	r2, [r1, #0]
+ 8016d0e:	ea22 0200 	bic.w	r2, r2, r0
+ 8016d12:	600a      	str	r2, [r1, #0]
+      break;
+ 8016d14:	e7f6      	b.n	8016d04 <UTIL_LPM_SetOffMode+0x14>
+ 8016d16:	bf00      	nop
+ 8016d18:	20002de8 	.word	0x20002de8
+
+08016d1c <UTIL_LPM_EnterLowPower>:
+
+  return mode_selected;
+}
+
+void UTIL_LPM_EnterLowPower( void )
+{
+ 8016d1c:	b538      	push	{r3, r4, r5, lr}
+  __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
+ 8016d1e:	f3ef 8410 	mrs	r4, PRIMASK
+  __ASM volatile ("cpsid i" : : : "memory");
+ 8016d22:	b672      	cpsid	i
+  UTIL_LPM_ENTER_CRITICAL_SECTION_ELP( );
+
+  if( StopModeDisable != UTIL_LPM_NO_BIT_SET )
+ 8016d24:	4b0c      	ldr	r3, [pc, #48]	; (8016d58 <UTIL_LPM_EnterLowPower+0x3c>)
+ 8016d26:	681b      	ldr	r3, [r3, #0]
+ 8016d28:	b13b      	cbz	r3, 8016d3a <UTIL_LPM_EnterLowPower+0x1e>
+  {
+    /**
+     * At least one user disallows Stop Mode
+     * SLEEP mode is required
+     */
+      UTIL_PowerDriver.EnterSleepMode( );
+ 8016d2a:	4d0c      	ldr	r5, [pc, #48]	; (8016d5c <UTIL_LPM_EnterLowPower+0x40>)
+ 8016d2c:	682b      	ldr	r3, [r5, #0]
+ 8016d2e:	4798      	blx	r3
+      UTIL_PowerDriver.ExitSleepMode( );
+ 8016d30:	686b      	ldr	r3, [r5, #4]
+ 8016d32:	4798      	blx	r3
+  __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
+ 8016d34:	f384 8810 	msr	PRIMASK, r4
+      UTIL_PowerDriver.ExitOffMode( );
+    }
+  }
+  
+  UTIL_LPM_EXIT_CRITICAL_SECTION_ELP( );
+}
+ 8016d38:	bd38      	pop	{r3, r4, r5, pc}
+    if( OffModeDisable != UTIL_LPM_NO_BIT_SET )
+ 8016d3a:	4b09      	ldr	r3, [pc, #36]	; (8016d60 <UTIL_LPM_EnterLowPower+0x44>)
+ 8016d3c:	681b      	ldr	r3, [r3, #0]
+ 8016d3e:	b12b      	cbz	r3, 8016d4c <UTIL_LPM_EnterLowPower+0x30>
+        UTIL_PowerDriver.EnterStopMode( );
+ 8016d40:	4d06      	ldr	r5, [pc, #24]	; (8016d5c <UTIL_LPM_EnterLowPower+0x40>)
+ 8016d42:	68ab      	ldr	r3, [r5, #8]
+ 8016d44:	4798      	blx	r3
+        UTIL_PowerDriver.ExitStopMode( );
+ 8016d46:	68eb      	ldr	r3, [r5, #12]
+ 8016d48:	4798      	blx	r3
+ 8016d4a:	e7f3      	b.n	8016d34 <UTIL_LPM_EnterLowPower+0x18>
+      UTIL_PowerDriver.EnterOffMode( );
+ 8016d4c:	4d03      	ldr	r5, [pc, #12]	; (8016d5c <UTIL_LPM_EnterLowPower+0x40>)
+ 8016d4e:	692b      	ldr	r3, [r5, #16]
+ 8016d50:	4798      	blx	r3
+      UTIL_PowerDriver.ExitOffMode( );
+ 8016d52:	696b      	ldr	r3, [r5, #20]
+ 8016d54:	4798      	blx	r3
+ 8016d56:	e7ed      	b.n	8016d34 <UTIL_LPM_EnterLowPower+0x18>
+ 8016d58:	20002dec 	.word	0x20002dec
+ 8016d5c:	080178e0 	.word	0x080178e0
+ 8016d60:	20002de8 	.word	0x20002de8
+
+08016d64 <UTIL_MEM_cpy_8>:
+void UTIL_MEM_cpy_8( void *dst, const void *src, uint16_t size )
+{
+  uint8_t* dst8= (uint8_t *) dst;
+  uint8_t* src8= (uint8_t *) src;
+
+  while( size-- )
+ 8016d64:	e004      	b.n	8016d70 <UTIL_MEM_cpy_8+0xc>
+    {
+        *dst8++ = *src8++;
+ 8016d66:	f811 2b01 	ldrb.w	r2, [r1], #1
+ 8016d6a:	f800 2b01 	strb.w	r2, [r0], #1
+  while( size-- )
+ 8016d6e:	461a      	mov	r2, r3
+ 8016d70:	1e53      	subs	r3, r2, #1
+ 8016d72:	b29b      	uxth	r3, r3
+ 8016d74:	2a00      	cmp	r2, #0
+ 8016d76:	d1f6      	bne.n	8016d66 <UTIL_MEM_cpy_8+0x2>
+    }
+}
+ 8016d78:	4770      	bx	lr
+
+08016d7a <UTIL_MEM_set_8>:
+}
+
+void UTIL_MEM_set_8( void *dst, uint8_t value, uint16_t size )
+{
+  uint8_t* dst8= (uint8_t *) dst;
+  while( size-- )
+ 8016d7a:	e002      	b.n	8016d82 <UTIL_MEM_set_8+0x8>
+  {
+    *dst8++ = value;
+ 8016d7c:	f800 1b01 	strb.w	r1, [r0], #1
+  while( size-- )
+ 8016d80:	461a      	mov	r2, r3
+ 8016d82:	1e53      	subs	r3, r2, #1
+ 8016d84:	b29b      	uxth	r3, r3
+ 8016d86:	2a00      	cmp	r2, #0
+ 8016d88:	d1f8      	bne.n	8016d7c <UTIL_MEM_set_8+0x2>
+  }
+}
+ 8016d8a:	4770      	bx	lr
+
+08016d8c <UTIL_SEQ_SetTask>:
+  __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
+ 8016d8c:	f3ef 8c10 	mrs	ip, PRIMASK
+  __ASM volatile ("cpsid i" : : : "memory");
+ 8016d90:	b672      	cpsid	i
+
+void UTIL_SEQ_SetTask( UTIL_SEQ_bm_t TaskId_bm , uint32_t Task_Prio )
+{
+  UTIL_SEQ_ENTER_CRITICAL_SECTION( );
+
+  TaskSet |= TaskId_bm;
+ 8016d92:	4a06      	ldr	r2, [pc, #24]	; (8016dac <UTIL_SEQ_SetTask+0x20>)
+ 8016d94:	6813      	ldr	r3, [r2, #0]
+ 8016d96:	4303      	orrs	r3, r0
+ 8016d98:	6013      	str	r3, [r2, #0]
+  TaskPrio[Task_Prio].priority |= TaskId_bm;
+ 8016d9a:	4a05      	ldr	r2, [pc, #20]	; (8016db0 <UTIL_SEQ_SetTask+0x24>)
+ 8016d9c:	f852 3031 	ldr.w	r3, [r2, r1, lsl #3]
+ 8016da0:	4303      	orrs	r3, r0
+ 8016da2:	f842 3031 	str.w	r3, [r2, r1, lsl #3]
+  __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
+ 8016da6:	f38c 8810 	msr	PRIMASK, ip
+
+  UTIL_SEQ_EXIT_CRITICAL_SECTION( );
+
+  return;
+}
+ 8016daa:	4770      	bx	lr
+ 8016dac:	20002e3c 	.word	0x20002e3c
+ 8016db0:	20002e34 	.word	0x20002e34
+
+08016db4 <UTIL_SEQ_PreIdle>:
+{
+  /*
+   * Unless specified by the application, there is nothing to be done
+   */
+  return;
+}
+ 8016db4:	4770      	bx	lr
+
+08016db6 <UTIL_SEQ_PostIdle>:
+{
+  /*
+   * Unless specified by the application, there is nothing to be done
+   */
+  return;
+}
+ 8016db6:	4770      	bx	lr
+
+08016db8 <SEQ_BitPosition>:
+uint8_t SEQ_BitPosition(uint32_t Value)
+{
+uint8_t n = 0U;
+uint32_t lvalue = Value;
+
+  if ((lvalue & 0xFFFF0000U) == 0U)  { n  = 16U; lvalue <<= 16U;  }
+ 8016db8:	0c03      	lsrs	r3, r0, #16
+ 8016dba:	041b      	lsls	r3, r3, #16
+ 8016dbc:	b9b3      	cbnz	r3, 8016dec <SEQ_BitPosition+0x34>
+ 8016dbe:	0400      	lsls	r0, r0, #16
+ 8016dc0:	2310      	movs	r3, #16
+  if ((lvalue & 0xFF000000U) == 0U)  { n +=  8U; lvalue <<=  8U;  }
+ 8016dc2:	f010 4f7f 	tst.w	r0, #4278190080	; 0xff000000
+ 8016dc6:	d102      	bne.n	8016dce <SEQ_BitPosition+0x16>
+ 8016dc8:	3308      	adds	r3, #8
+ 8016dca:	b2db      	uxtb	r3, r3
+ 8016dcc:	0200      	lsls	r0, r0, #8
+  if ((lvalue & 0xF0000000U) == 0U)  { n +=  4U; lvalue <<=  4U;  }
+ 8016dce:	f010 4f70 	tst.w	r0, #4026531840	; 0xf0000000
+ 8016dd2:	d102      	bne.n	8016dda <SEQ_BitPosition+0x22>
+ 8016dd4:	3304      	adds	r3, #4
+ 8016dd6:	b2db      	uxtb	r3, r3
+ 8016dd8:	0100      	lsls	r0, r0, #4
+
+  n += SEQ_clz_table_4bit[lvalue >> (32-4)];
+ 8016dda:	0f00      	lsrs	r0, r0, #28
+ 8016ddc:	4a04      	ldr	r2, [pc, #16]	; (8016df0 <SEQ_BitPosition+0x38>)
+ 8016dde:	5c10      	ldrb	r0, [r2, r0]
+ 8016de0:	4418      	add	r0, r3
+ 8016de2:	b2c0      	uxtb	r0, r0
+
+  return (uint8_t)(31U-n);
+ 8016de4:	f1c0 001f 	rsb	r0, r0, #31
+}
+ 8016de8:	b2c0      	uxtb	r0, r0
+ 8016dea:	4770      	bx	lr
+uint8_t n = 0U;
+ 8016dec:	2300      	movs	r3, #0
+ 8016dee:	e7e8      	b.n	8016dc2 <SEQ_BitPosition+0xa>
+ 8016df0:	08018df0 	.word	0x08018df0
+
+08016df4 <UTIL_SEQ_Run>:
+{
+ 8016df4:	b570      	push	{r4, r5, r6, lr}
+  super_mask_backup = SuperMask;
+ 8016df6:	4b42      	ldr	r3, [pc, #264]	; (8016f00 <UTIL_SEQ_Run+0x10c>)
+ 8016df8:	681c      	ldr	r4, [r3, #0]
+  SuperMask &= Mask_bm;
+ 8016dfa:	4020      	ands	r0, r4
+ 8016dfc:	6018      	str	r0, [r3, #0]
+  local_taskset = TaskSet;
+ 8016dfe:	4b41      	ldr	r3, [pc, #260]	; (8016f04 <UTIL_SEQ_Run+0x110>)
+ 8016e00:	681a      	ldr	r2, [r3, #0]
+  local_evtset = EvtSet;
+ 8016e02:	4b41      	ldr	r3, [pc, #260]	; (8016f08 <UTIL_SEQ_Run+0x114>)
+ 8016e04:	681b      	ldr	r3, [r3, #0]
+  local_taskmask = TaskMask;
+ 8016e06:	4941      	ldr	r1, [pc, #260]	; (8016f0c <UTIL_SEQ_Run+0x118>)
+ 8016e08:	6808      	ldr	r0, [r1, #0]
+  local_evtwaited =  EvtWaited;
+ 8016e0a:	4941      	ldr	r1, [pc, #260]	; (8016f10 <UTIL_SEQ_Run+0x11c>)
+ 8016e0c:	6809      	ldr	r1, [r1, #0]
+  while(((local_taskset & local_taskmask & SuperMask) != 0U) && ((local_evtset & local_evtwaited)==0U))
+ 8016e0e:	e02f      	b.n	8016e70 <UTIL_SEQ_Run+0x7c>
+      counter++;
+ 8016e10:	3301      	adds	r3, #1
+ 8016e12:	e034      	b.n	8016e7e <UTIL_SEQ_Run+0x8a>
+    CurrentTaskIdx = (SEQ_BitPosition(current_task_set & TaskPrio[counter].round_robin));
+ 8016e14:	4d3f      	ldr	r5, [pc, #252]	; (8016f14 <UTIL_SEQ_Run+0x120>)
+ 8016e16:	eb05 05c3 	add.w	r5, r5, r3, lsl #3
+ 8016e1a:	6868      	ldr	r0, [r5, #4]
+ 8016e1c:	4010      	ands	r0, r2
+ 8016e1e:	f7ff ffcb 	bl	8016db8 <SEQ_BitPosition>
+ 8016e22:	4e3d      	ldr	r6, [pc, #244]	; (8016f18 <UTIL_SEQ_Run+0x124>)
+ 8016e24:	6030      	str	r0, [r6, #0]
+    TaskPrio[counter].round_robin &= ~(1U << CurrentTaskIdx);
+ 8016e26:	686a      	ldr	r2, [r5, #4]
+ 8016e28:	2301      	movs	r3, #1
+ 8016e2a:	fa03 f000 	lsl.w	r0, r3, r0
+ 8016e2e:	ea22 0200 	bic.w	r2, r2, r0
+ 8016e32:	606a      	str	r2, [r5, #4]
+  __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
+ 8016e34:	f3ef 8110 	mrs	r1, PRIMASK
+  __ASM volatile ("cpsid i" : : : "memory");
+ 8016e38:	b672      	cpsid	i
+    TaskSet &= ~(1U << CurrentTaskIdx);
+ 8016e3a:	6832      	ldr	r2, [r6, #0]
+ 8016e3c:	fa03 f202 	lsl.w	r2, r3, r2
+ 8016e40:	43d6      	mvns	r6, r2
+ 8016e42:	4d30      	ldr	r5, [pc, #192]	; (8016f04 <UTIL_SEQ_Run+0x110>)
+ 8016e44:	6828      	ldr	r0, [r5, #0]
+ 8016e46:	ea20 0202 	bic.w	r2, r0, r2
+ 8016e4a:	602a      	str	r2, [r5, #0]
+    for (counter = UTIL_SEQ_CONF_PRIO_NBR; counter != 0U; counter--)
+ 8016e4c:	2b00      	cmp	r3, #0
+ 8016e4e:	d12d      	bne.n	8016eac <UTIL_SEQ_Run+0xb8>
+  __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
+ 8016e50:	f381 8810 	msr	PRIMASK, r1
+    TaskCb[CurrentTaskIdx]( );
+ 8016e54:	4b30      	ldr	r3, [pc, #192]	; (8016f18 <UTIL_SEQ_Run+0x124>)
+ 8016e56:	681a      	ldr	r2, [r3, #0]
+ 8016e58:	4b30      	ldr	r3, [pc, #192]	; (8016f1c <UTIL_SEQ_Run+0x128>)
+ 8016e5a:	f853 3022 	ldr.w	r3, [r3, r2, lsl #2]
+ 8016e5e:	4798      	blx	r3
+    local_taskset = TaskSet;
+ 8016e60:	4b28      	ldr	r3, [pc, #160]	; (8016f04 <UTIL_SEQ_Run+0x110>)
+ 8016e62:	681a      	ldr	r2, [r3, #0]
+    local_evtset = EvtSet;
+ 8016e64:	4b28      	ldr	r3, [pc, #160]	; (8016f08 <UTIL_SEQ_Run+0x114>)
+ 8016e66:	681b      	ldr	r3, [r3, #0]
+    local_taskmask = TaskMask;
+ 8016e68:	4928      	ldr	r1, [pc, #160]	; (8016f0c <UTIL_SEQ_Run+0x118>)
+ 8016e6a:	6808      	ldr	r0, [r1, #0]
+    local_evtwaited = EvtWaited;
+ 8016e6c:	4928      	ldr	r1, [pc, #160]	; (8016f10 <UTIL_SEQ_Run+0x11c>)
+ 8016e6e:	6809      	ldr	r1, [r1, #0]
+  while(((local_taskset & local_taskmask & SuperMask) != 0U) && ((local_evtset & local_evtwaited)==0U))
+ 8016e70:	4002      	ands	r2, r0
+ 8016e72:	4d23      	ldr	r5, [pc, #140]	; (8016f00 <UTIL_SEQ_Run+0x10c>)
+ 8016e74:	682d      	ldr	r5, [r5, #0]
+ 8016e76:	422a      	tst	r2, r5
+ 8016e78:	d020      	beq.n	8016ebc <UTIL_SEQ_Run+0xc8>
+ 8016e7a:	400b      	ands	r3, r1
+ 8016e7c:	d11e      	bne.n	8016ebc <UTIL_SEQ_Run+0xc8>
+    while((TaskPrio[counter].priority & local_taskmask & SuperMask)== 0U)
+ 8016e7e:	4a25      	ldr	r2, [pc, #148]	; (8016f14 <UTIL_SEQ_Run+0x120>)
+ 8016e80:	f852 2033 	ldr.w	r2, [r2, r3, lsl #3]
+ 8016e84:	4002      	ands	r2, r0
+ 8016e86:	422a      	tst	r2, r5
+ 8016e88:	d0c2      	beq.n	8016e10 <UTIL_SEQ_Run+0x1c>
+    current_task_set = TaskPrio[counter].priority & local_taskmask & SuperMask;
+ 8016e8a:	4922      	ldr	r1, [pc, #136]	; (8016f14 <UTIL_SEQ_Run+0x120>)
+ 8016e8c:	f851 2033 	ldr.w	r2, [r1, r3, lsl #3]
+ 8016e90:	4002      	ands	r2, r0
+ 8016e92:	402a      	ands	r2, r5
+    if ((TaskPrio[counter].round_robin & current_task_set) == 0U)
+ 8016e94:	eb01 01c3 	add.w	r1, r1, r3, lsl #3
+ 8016e98:	6849      	ldr	r1, [r1, #4]
+ 8016e9a:	4211      	tst	r1, r2
+ 8016e9c:	d1ba      	bne.n	8016e14 <UTIL_SEQ_Run+0x20>
+      TaskPrio[counter].round_robin = UTIL_SEQ_ALL_BIT_SET;
+ 8016e9e:	491d      	ldr	r1, [pc, #116]	; (8016f14 <UTIL_SEQ_Run+0x120>)
+ 8016ea0:	eb01 01c3 	add.w	r1, r1, r3, lsl #3
+ 8016ea4:	f04f 30ff 	mov.w	r0, #4294967295
+ 8016ea8:	6048      	str	r0, [r1, #4]
+ 8016eaa:	e7b3      	b.n	8016e14 <UTIL_SEQ_Run+0x20>
+      TaskPrio[counter - 1U].priority &= ~(1U << CurrentTaskIdx);
+ 8016eac:	3b01      	subs	r3, #1
+ 8016eae:	4819      	ldr	r0, [pc, #100]	; (8016f14 <UTIL_SEQ_Run+0x120>)
+ 8016eb0:	f850 2033 	ldr.w	r2, [r0, r3, lsl #3]
+ 8016eb4:	4032      	ands	r2, r6
+ 8016eb6:	f840 2033 	str.w	r2, [r0, r3, lsl #3]
+    for (counter = UTIL_SEQ_CONF_PRIO_NBR; counter != 0U; counter--)
+ 8016eba:	e7c7      	b.n	8016e4c <UTIL_SEQ_Run+0x58>
+  CurrentTaskIdx = UTIL_SEQ_NOTASKRUNNING;
+ 8016ebc:	4b16      	ldr	r3, [pc, #88]	; (8016f18 <UTIL_SEQ_Run+0x124>)
+ 8016ebe:	f04f 32ff 	mov.w	r2, #4294967295
+ 8016ec2:	601a      	str	r2, [r3, #0]
+  UTIL_SEQ_PreIdle( );
+ 8016ec4:	f7ff ff76 	bl	8016db4 <UTIL_SEQ_PreIdle>
+  __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
+ 8016ec8:	f3ef 8510 	mrs	r5, PRIMASK
+  __ASM volatile ("cpsid i" : : : "memory");
+ 8016ecc:	b672      	cpsid	i
+  local_taskset = TaskSet;
+ 8016ece:	4b0d      	ldr	r3, [pc, #52]	; (8016f04 <UTIL_SEQ_Run+0x110>)
+ 8016ed0:	681b      	ldr	r3, [r3, #0]
+  local_evtset = EvtSet;
+ 8016ed2:	4a0d      	ldr	r2, [pc, #52]	; (8016f08 <UTIL_SEQ_Run+0x114>)
+ 8016ed4:	6811      	ldr	r1, [r2, #0]
+  local_taskmask = TaskMask;
+ 8016ed6:	4a0d      	ldr	r2, [pc, #52]	; (8016f0c <UTIL_SEQ_Run+0x118>)
+ 8016ed8:	6812      	ldr	r2, [r2, #0]
+  if ((local_taskset & local_taskmask & SuperMask) == 0U)
+ 8016eda:	4013      	ands	r3, r2
+ 8016edc:	4a08      	ldr	r2, [pc, #32]	; (8016f00 <UTIL_SEQ_Run+0x10c>)
+ 8016ede:	6812      	ldr	r2, [r2, #0]
+ 8016ee0:	4213      	tst	r3, r2
+ 8016ee2:	d103      	bne.n	8016eec <UTIL_SEQ_Run+0xf8>
+    if ((local_evtset & EvtWaited)== 0U)
+ 8016ee4:	4b0a      	ldr	r3, [pc, #40]	; (8016f10 <UTIL_SEQ_Run+0x11c>)
+ 8016ee6:	681b      	ldr	r3, [r3, #0]
+ 8016ee8:	420b      	tst	r3, r1
+ 8016eea:	d006      	beq.n	8016efa <UTIL_SEQ_Run+0x106>
+  __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
+ 8016eec:	f385 8810 	msr	PRIMASK, r5
+  UTIL_SEQ_PostIdle( );
+ 8016ef0:	f7ff ff61 	bl	8016db6 <UTIL_SEQ_PostIdle>
+  SuperMask = super_mask_backup;
+ 8016ef4:	4b02      	ldr	r3, [pc, #8]	; (8016f00 <UTIL_SEQ_Run+0x10c>)
+ 8016ef6:	601c      	str	r4, [r3, #0]
+}
+ 8016ef8:	bd70      	pop	{r4, r5, r6, pc}
+      UTIL_SEQ_Idle( );
+ 8016efa:	f7eb fe45 	bl	8002b88 <UTIL_SEQ_Idle>
+ 8016efe:	e7f5      	b.n	8016eec <UTIL_SEQ_Run+0xf8>
+ 8016f00:	200008c4 	.word	0x200008c4
+ 8016f04:	20002e3c 	.word	0x20002e3c
+ 8016f08:	20002df4 	.word	0x20002df4
+ 8016f0c:	200008c8 	.word	0x200008c8
+ 8016f10:	20002df8 	.word	0x20002df8
+ 8016f14:	20002e34 	.word	0x20002e34
+ 8016f18:	20002df0 	.word	0x20002df0
+ 8016f1c:	20002dfc 	.word	0x20002dfc
+
+08016f20 <UTIL_SEQ_RegTask>:
+{
+ 8016f20:	b538      	push	{r3, r4, r5, lr}
+ 8016f22:	4614      	mov	r4, r2
+  __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
+ 8016f24:	f3ef 8510 	mrs	r5, PRIMASK
+  __ASM volatile ("cpsid i" : : : "memory");
+ 8016f28:	b672      	cpsid	i
+  TaskCb[SEQ_BitPosition(TaskId_bm)] = Task;
+ 8016f2a:	f7ff ff45 	bl	8016db8 <SEQ_BitPosition>
+ 8016f2e:	4b03      	ldr	r3, [pc, #12]	; (8016f3c <UTIL_SEQ_RegTask+0x1c>)
+ 8016f30:	f843 4020 	str.w	r4, [r3, r0, lsl #2]
+  __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
+ 8016f34:	f385 8810 	msr	PRIMASK, r5
+}
+ 8016f38:	bd38      	pop	{r3, r4, r5, pc}
+ 8016f3a:	bf00      	nop
+ 8016f3c:	20002dfc 	.word	0x20002dfc
+
+08016f40 <SysTimeAdd>:
+  * @addtogroup SYSTIME_exported_function
+  *  @{
+  */
+
+SysTime_t SysTimeAdd( SysTime_t a, SysTime_t b )
+{
+ 8016f40:	b082      	sub	sp, #8
+ 8016f42:	b082      	sub	sp, #8
+ 8016f44:	f10d 0c08 	add.w	ip, sp, #8
+ 8016f48:	e90c 0006 	stmdb	ip, {r1, r2}
+ 8016f4c:	9303      	str	r3, [sp, #12]
+  SysTime_t c =  { .Seconds = 0, .SubSeconds = 0 };
+ 8016f4e:	2200      	movs	r2, #0
+ 8016f50:	6002      	str	r2, [r0, #0]
+ 8016f52:	8082      	strh	r2, [r0, #4]
+
+  c.Seconds = a.Seconds + b.Seconds;
+ 8016f54:	440b      	add	r3, r1
+ 8016f56:	6003      	str	r3, [r0, #0]
+  c.SubSeconds = a.SubSeconds + b.SubSeconds;
+ 8016f58:	f8bd 2004 	ldrh.w	r2, [sp, #4]
+ 8016f5c:	f8bd 1010 	ldrh.w	r1, [sp, #16]
+ 8016f60:	440a      	add	r2, r1
+ 8016f62:	b291      	uxth	r1, r2
+ 8016f64:	b212      	sxth	r2, r2
+ 8016f66:	8082      	strh	r2, [r0, #4]
+  if( c.SubSeconds >= 1000 )
+ 8016f68:	f5b2 7f7a 	cmp.w	r2, #1000	; 0x3e8
+ 8016f6c:	db04      	blt.n	8016f78 <SysTimeAdd+0x38>
+  {
+    c.Seconds++;
+ 8016f6e:	3301      	adds	r3, #1
+ 8016f70:	6003      	str	r3, [r0, #0]
+    c.SubSeconds -= 1000;
+ 8016f72:	f5a1 717a 	sub.w	r1, r1, #1000	; 0x3e8
+ 8016f76:	8081      	strh	r1, [r0, #4]
+  }
+  return c;
+}
+ 8016f78:	b002      	add	sp, #8
+ 8016f7a:	b002      	add	sp, #8
+ 8016f7c:	4770      	bx	lr
+
+08016f7e <SysTimeSub>:
+
+SysTime_t SysTimeSub( SysTime_t a, SysTime_t b )
+{
+ 8016f7e:	b082      	sub	sp, #8
+ 8016f80:	b082      	sub	sp, #8
+ 8016f82:	f10d 0c08 	add.w	ip, sp, #8
+ 8016f86:	e90c 0006 	stmdb	ip, {r1, r2}
+ 8016f8a:	9303      	str	r3, [sp, #12]
+  SysTime_t c = { .Seconds = 0, .SubSeconds = 0 };
+ 8016f8c:	2200      	movs	r2, #0
+ 8016f8e:	6002      	str	r2, [r0, #0]
+ 8016f90:	8082      	strh	r2, [r0, #4]
+
+  c.Seconds = a.Seconds - b.Seconds;
+ 8016f92:	1acb      	subs	r3, r1, r3
+ 8016f94:	6003      	str	r3, [r0, #0]
+  c.SubSeconds = a.SubSeconds - b.SubSeconds;
+ 8016f96:	f8bd 2004 	ldrh.w	r2, [sp, #4]
+ 8016f9a:	f8bd 1010 	ldrh.w	r1, [sp, #16]
+ 8016f9e:	1a52      	subs	r2, r2, r1
+ 8016fa0:	b291      	uxth	r1, r2
+ 8016fa2:	b212      	sxth	r2, r2
+ 8016fa4:	8082      	strh	r2, [r0, #4]
+  if( c.SubSeconds < 0 )
+ 8016fa6:	2a00      	cmp	r2, #0
+ 8016fa8:	db02      	blt.n	8016fb0 <SysTimeSub+0x32>
+  {
+    c.Seconds--;
+    c.SubSeconds += 1000;
+  }
+  return c;
+}
+ 8016faa:	b002      	add	sp, #8
+ 8016fac:	b002      	add	sp, #8
+ 8016fae:	4770      	bx	lr
+    c.Seconds--;
+ 8016fb0:	3b01      	subs	r3, #1
+ 8016fb2:	6003      	str	r3, [r0, #0]
+    c.SubSeconds += 1000;
+ 8016fb4:	f501 717a 	add.w	r1, r1, #1000	; 0x3e8
+ 8016fb8:	8081      	strh	r1, [r0, #4]
+  return c;
+ 8016fba:	e7f6      	b.n	8016faa <SysTimeSub+0x2c>
+
+08016fbc <SysTimeSet>:
+
+void SysTimeSet( SysTime_t sysTime )
+{
+ 8016fbc:	b530      	push	{r4, r5, lr}
+ 8016fbe:	b089      	sub	sp, #36	; 0x24
+ 8016fc0:	ac02      	add	r4, sp, #8
+ 8016fc2:	e884 0003 	stmia.w	r4, {r0, r1}
+  SysTime_t DeltaTime;
+
+  SysTime_t calendarTime = { .Seconds = 0, .SubSeconds = 0 };
+ 8016fc6:	2300      	movs	r3, #0
+ 8016fc8:	9304      	str	r3, [sp, #16]
+ 8016fca:	f8ad 3014 	strh.w	r3, [sp, #20]
+
+  calendarTime.Seconds = UTIL_SYSTIMDriver.GetCalendarTime( ( uint16_t* )&calendarTime.SubSeconds );
+ 8016fce:	4d0b      	ldr	r5, [pc, #44]	; (8016ffc <SysTimeSet+0x40>)
+ 8016fd0:	692b      	ldr	r3, [r5, #16]
+ 8016fd2:	a805      	add	r0, sp, #20
+ 8016fd4:	4798      	blx	r3
+ 8016fd6:	4603      	mov	r3, r0
+ 8016fd8:	9004      	str	r0, [sp, #16]
+
+  // sysTime is UNIX epoch
+  DeltaTime = SysTimeSub( sysTime, calendarTime );
+ 8016fda:	9a05      	ldr	r2, [sp, #20]
+ 8016fdc:	9200      	str	r2, [sp, #0]
+ 8016fde:	e894 0006 	ldmia.w	r4, {r1, r2}
+ 8016fe2:	a806      	add	r0, sp, #24
+ 8016fe4:	f7ff ffcb 	bl	8016f7e <SysTimeSub>
+
+  UTIL_SYSTIMDriver.BKUPWrite_Seconds( DeltaTime.Seconds );
+ 8016fe8:	682b      	ldr	r3, [r5, #0]
+ 8016fea:	9806      	ldr	r0, [sp, #24]
+ 8016fec:	4798      	blx	r3
+  UTIL_SYSTIMDriver.BKUPWrite_SubSeconds( ( uint32_t ) DeltaTime.SubSeconds );
+ 8016fee:	68ab      	ldr	r3, [r5, #8]
+ 8016ff0:	f9bd 001c 	ldrsh.w	r0, [sp, #28]
+ 8016ff4:	4798      	blx	r3
+}
+ 8016ff6:	b009      	add	sp, #36	; 0x24
+ 8016ff8:	bd30      	pop	{r4, r5, pc}
+ 8016ffa:	bf00      	nop
+ 8016ffc:	08017950 	.word	0x08017950
+
+08017000 <SysTimeGet>:
+
+SysTime_t SysTimeGet( void )
+{
+ 8017000:	b530      	push	{r4, r5, lr}
+ 8017002:	b087      	sub	sp, #28
+ 8017004:	4604      	mov	r4, r0
+  SysTime_t calendarTime = { .Seconds = 0, .SubSeconds = 0 };
+ 8017006:	2300      	movs	r3, #0
+ 8017008:	9304      	str	r3, [sp, #16]
+ 801700a:	f8ad 3014 	strh.w	r3, [sp, #20]
+  SysTime_t sysTime = { .Seconds = 0, .SubSeconds = 0 };
+ 801700e:	6003      	str	r3, [r0, #0]
+ 8017010:	8083      	strh	r3, [r0, #4]
+  SysTime_t DeltaTime;
+
+  calendarTime.Seconds = UTIL_SYSTIMDriver.GetCalendarTime( ( uint16_t* )&calendarTime.SubSeconds );
+ 8017012:	4d0b      	ldr	r5, [pc, #44]	; (8017040 <SysTimeGet+0x40>)
+ 8017014:	692b      	ldr	r3, [r5, #16]
+ 8017016:	a805      	add	r0, sp, #20
+ 8017018:	4798      	blx	r3
+ 801701a:	9004      	str	r0, [sp, #16]
+
+  DeltaTime.SubSeconds = (int16_t)UTIL_SYSTIMDriver.BKUPRead_SubSeconds();
+ 801701c:	68eb      	ldr	r3, [r5, #12]
+ 801701e:	4798      	blx	r3
+ 8017020:	f8ad 000c 	strh.w	r0, [sp, #12]
+  DeltaTime.Seconds = UTIL_SYSTIMDriver.BKUPRead_Seconds();
+ 8017024:	686b      	ldr	r3, [r5, #4]
+ 8017026:	4798      	blx	r3
+ 8017028:	9002      	str	r0, [sp, #8]
+
+  sysTime = SysTimeAdd( DeltaTime, calendarTime );
+ 801702a:	9b05      	ldr	r3, [sp, #20]
+ 801702c:	9300      	str	r3, [sp, #0]
+ 801702e:	9b04      	ldr	r3, [sp, #16]
+ 8017030:	aa02      	add	r2, sp, #8
+ 8017032:	ca06      	ldmia	r2, {r1, r2}
+ 8017034:	4620      	mov	r0, r4
+ 8017036:	f7ff ff83 	bl	8016f40 <SysTimeAdd>
+
+  return sysTime;
+}
+ 801703a:	4620      	mov	r0, r4
+ 801703c:	b007      	add	sp, #28
+ 801703e:	bd30      	pop	{r4, r5, pc}
+ 8017040:	08017950 	.word	0x08017950
+
+08017044 <SysTimeGetMcuTime>:
+
+
+SysTime_t SysTimeGetMcuTime( void )
+{
+ 8017044:	b530      	push	{r4, r5, lr}
+ 8017046:	b083      	sub	sp, #12
+ 8017048:	4604      	mov	r4, r0
+  SysTime_t calendarTime = { .Seconds = 0, .SubSeconds = 0 };
+ 801704a:	2300      	movs	r3, #0
+ 801704c:	9300      	str	r3, [sp, #0]
+ 801704e:	f8ad 3004 	strh.w	r3, [sp, #4]
+
+  calendarTime.Seconds = UTIL_SYSTIMDriver.GetCalendarTime( ( uint16_t* )&calendarTime.SubSeconds );
+ 8017052:	4b06      	ldr	r3, [pc, #24]	; (801706c <SysTimeGetMcuTime+0x28>)
+ 8017054:	691b      	ldr	r3, [r3, #16]
+ 8017056:	466d      	mov	r5, sp
+ 8017058:	a801      	add	r0, sp, #4
+ 801705a:	4798      	blx	r3
+ 801705c:	9000      	str	r0, [sp, #0]
+
+  return calendarTime;
+ 801705e:	e895 0003 	ldmia.w	r5, {r0, r1}
+ 8017062:	e884 0003 	stmia.w	r4, {r0, r1}
+}
+ 8017066:	4620      	mov	r0, r4
+ 8017068:	b003      	add	sp, #12
+ 801706a:	bd30      	pop	{r4, r5, pc}
+ 801706c:	08017950 	.word	0x08017950
+
+08017070 <SysTimeToMs>:
+
+uint32_t SysTimeToMs( SysTime_t sysTime )
+{
+ 8017070:	b530      	push	{r4, r5, lr}
+ 8017072:	b089      	sub	sp, #36	; 0x24
+ 8017074:	ac02      	add	r4, sp, #8
+ 8017076:	e884 0003 	stmia.w	r4, {r0, r1}
+  SysTime_t DeltaTime;
+  DeltaTime.SubSeconds = (int16_t)UTIL_SYSTIMDriver.BKUPRead_SubSeconds();
+ 801707a:	4d0c      	ldr	r5, [pc, #48]	; (80170ac <SysTimeToMs+0x3c>)
+ 801707c:	68eb      	ldr	r3, [r5, #12]
+ 801707e:	4798      	blx	r3
+ 8017080:	f8ad 001c 	strh.w	r0, [sp, #28]
+  DeltaTime.Seconds = UTIL_SYSTIMDriver.BKUPRead_Seconds();
+ 8017084:	686b      	ldr	r3, [r5, #4]
+ 8017086:	4798      	blx	r3
+ 8017088:	4603      	mov	r3, r0
+ 801708a:	9006      	str	r0, [sp, #24]
+
+  SysTime_t calendarTime = SysTimeSub( sysTime, DeltaTime );
+ 801708c:	9a07      	ldr	r2, [sp, #28]
+ 801708e:	9200      	str	r2, [sp, #0]
+ 8017090:	e894 0006 	ldmia.w	r4, {r1, r2}
+ 8017094:	a804      	add	r0, sp, #16
+ 8017096:	f7ff ff72 	bl	8016f7e <SysTimeSub>
+  return calendarTime.Seconds * 1000 + calendarTime.SubSeconds;
+ 801709a:	f9bd 3014 	ldrsh.w	r3, [sp, #20]
+}
+ 801709e:	9a04      	ldr	r2, [sp, #16]
+ 80170a0:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
+ 80170a4:	fb00 3002 	mla	r0, r0, r2, r3
+ 80170a8:	b009      	add	sp, #36	; 0x24
+ 80170aa:	bd30      	pop	{r4, r5, pc}
+ 80170ac:	08017950 	.word	0x08017950
+
+080170b0 <SysTimeFromMs>:
+
+SysTime_t SysTimeFromMs( uint32_t timeMs )
+{
+ 80170b0:	b530      	push	{r4, r5, lr}
+ 80170b2:	b087      	sub	sp, #28
+ 80170b4:	4604      	mov	r4, r0
+  uint32_t seconds = timeMs / 1000;
+ 80170b6:	4b12      	ldr	r3, [pc, #72]	; (8017100 <SysTimeFromMs+0x50>)
+ 80170b8:	fba3 2301 	umull	r2, r3, r3, r1
+ 80170bc:	099b      	lsrs	r3, r3, #6
+  SysTime_t sysTime = { .Seconds = seconds, .SubSeconds =  timeMs - seconds * 1000 };
+ 80170be:	9304      	str	r3, [sp, #16]
+ 80170c0:	ebc3 1243 	rsb	r2, r3, r3, lsl #5
+ 80170c4:	eb03 0382 	add.w	r3, r3, r2, lsl #2
+ 80170c8:	eba1 01c3 	sub.w	r1, r1, r3, lsl #3
+ 80170cc:	f8ad 1014 	strh.w	r1, [sp, #20]
+  SysTime_t DeltaTime = { 0 };
+ 80170d0:	2300      	movs	r3, #0
+ 80170d2:	9302      	str	r3, [sp, #8]
+ 80170d4:	9303      	str	r3, [sp, #12]
+
+  DeltaTime.SubSeconds = (int16_t)UTIL_SYSTIMDriver.BKUPRead_SubSeconds();
+ 80170d6:	4d0b      	ldr	r5, [pc, #44]	; (8017104 <SysTimeFromMs+0x54>)
+ 80170d8:	68eb      	ldr	r3, [r5, #12]
+ 80170da:	4798      	blx	r3
+ 80170dc:	f8ad 000c 	strh.w	r0, [sp, #12]
+  DeltaTime.Seconds = UTIL_SYSTIMDriver.BKUPRead_Seconds();
+ 80170e0:	686b      	ldr	r3, [r5, #4]
+ 80170e2:	4798      	blx	r3
+ 80170e4:	4603      	mov	r3, r0
+ 80170e6:	9002      	str	r0, [sp, #8]
+  return SysTimeAdd( sysTime, DeltaTime );
+ 80170e8:	9a03      	ldr	r2, [sp, #12]
+ 80170ea:	9200      	str	r2, [sp, #0]
+ 80170ec:	aa06      	add	r2, sp, #24
+ 80170ee:	e912 0006 	ldmdb	r2, {r1, r2}
+ 80170f2:	4620      	mov	r0, r4
+ 80170f4:	f7ff ff24 	bl	8016f40 <SysTimeAdd>
+}
+ 80170f8:	4620      	mov	r0, r4
+ 80170fa:	b007      	add	sp, #28
+ 80170fc:	bd30      	pop	{r4, r5, pc}
+ 80170fe:	bf00      	nop
+ 8017100:	10624dd3 	.word	0x10624dd3
+ 8017104:	08017950 	.word	0x08017950
+
+08017108 <UTIL_TIMER_Init>:
+  * @addtogroup TIMER_SERVER_exported_function
+  *  @{
+  */
+
+UTIL_TIMER_Status_t UTIL_TIMER_Init(void)
+{
+ 8017108:	b508      	push	{r3, lr}
+  UTIL_TIMER_INIT_CRITICAL_SECTION();
+  TimerListHead = NULL;
+ 801710a:	4b03      	ldr	r3, [pc, #12]	; (8017118 <UTIL_TIMER_Init+0x10>)
+ 801710c:	2200      	movs	r2, #0
+ 801710e:	601a      	str	r2, [r3, #0]
+  return UTIL_TimerDriver.InitTimer();
+ 8017110:	4b02      	ldr	r3, [pc, #8]	; (801711c <UTIL_TIMER_Init+0x14>)
+ 8017112:	681b      	ldr	r3, [r3, #0]
+ 8017114:	4798      	blx	r3
+}
+ 8017116:	bd08      	pop	{r3, pc}
+ 8017118:	20002e40 	.word	0x20002e40
+ 801711c:	08017964 	.word	0x08017964
+
+08017120 <UTIL_TIMER_Create>:
+  return UTIL_TimerDriver.DeInitTimer();
+}
+
+UTIL_TIMER_Status_t UTIL_TIMER_Create( UTIL_TIMER_Object_t *TimerObject, uint32_t PeriodValue, UTIL_TIMER_Mode_t Mode, void ( *Callback )( void *), void *Argument)
+{
+  if((TimerObject != NULL) && (Callback != NULL))
+ 8017120:	b1a8      	cbz	r0, 801714e <UTIL_TIMER_Create+0x2e>
+{
+ 8017122:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 8017124:	4617      	mov	r7, r2
+ 8017126:	461e      	mov	r6, r3
+ 8017128:	4604      	mov	r4, r0
+  if((TimerObject != NULL) && (Callback != NULL))
+ 801712a:	b193      	cbz	r3, 8017152 <UTIL_TIMER_Create+0x32>
+  {
+    TimerObject->Timestamp = 0U;
+ 801712c:	2500      	movs	r5, #0
+ 801712e:	6005      	str	r5, [r0, #0]
+    TimerObject->ReloadValue = UTIL_TimerDriver.ms2Tick(PeriodValue);
+ 8017130:	4b09      	ldr	r3, [pc, #36]	; (8017158 <UTIL_TIMER_Create+0x38>)
+ 8017132:	6a5b      	ldr	r3, [r3, #36]	; 0x24
+ 8017134:	4608      	mov	r0, r1
+ 8017136:	4798      	blx	r3
+ 8017138:	6060      	str	r0, [r4, #4]
+    TimerObject->IsPending = 0U;
+ 801713a:	7225      	strb	r5, [r4, #8]
+    TimerObject->IsRunning = 0U;
+ 801713c:	7265      	strb	r5, [r4, #9]
+    TimerObject->IsReloadStopped = 0U;
+ 801713e:	72a5      	strb	r5, [r4, #10]
+    TimerObject->Callback = Callback;
+ 8017140:	60e6      	str	r6, [r4, #12]
+    TimerObject->argument = Argument;
+ 8017142:	9b06      	ldr	r3, [sp, #24]
+ 8017144:	6123      	str	r3, [r4, #16]
+    TimerObject->Mode = Mode;
+ 8017146:	72e7      	strb	r7, [r4, #11]
+    TimerObject->Next = NULL;
+ 8017148:	6165      	str	r5, [r4, #20]
+    return UTIL_TIMER_OK;
+ 801714a:	4628      	mov	r0, r5
+  }
+  else
+  {
+    return UTIL_TIMER_INVALID_PARAM;
+  }
+}
+ 801714c:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+    return UTIL_TIMER_INVALID_PARAM;
+ 801714e:	2001      	movs	r0, #1
+}
+ 8017150:	4770      	bx	lr
+    return UTIL_TIMER_INVALID_PARAM;
+ 8017152:	2001      	movs	r0, #1
+ 8017154:	e7fa      	b.n	801714c <UTIL_TIMER_Create+0x2c>
+ 8017156:	bf00      	nop
+ 8017158:	08017964 	.word	0x08017964
+
+0801715c <UTIL_TIMER_GetCurrentTime>:
+  }
+  UTIL_TIMER_EXIT_CRITICAL_SECTION();
+}
+
+UTIL_TIMER_Time_t UTIL_TIMER_GetCurrentTime(void)
+{
+ 801715c:	b510      	push	{r4, lr}
+  uint32_t now = UTIL_TimerDriver.GetTimerValue( );
+ 801715e:	4c03      	ldr	r4, [pc, #12]	; (801716c <UTIL_TIMER_GetCurrentTime+0x10>)
+ 8017160:	69e3      	ldr	r3, [r4, #28]
+ 8017162:	4798      	blx	r3
+  return  UTIL_TimerDriver.Tick2ms(now);
+ 8017164:	6aa3      	ldr	r3, [r4, #40]	; 0x28
+ 8017166:	4798      	blx	r3
+}
+ 8017168:	bd10      	pop	{r4, pc}
+ 801716a:	bf00      	nop
+ 801716c:	08017964 	.word	0x08017964
+
+08017170 <UTIL_TIMER_GetElapsedTime>:
+
+UTIL_TIMER_Time_t UTIL_TIMER_GetElapsedTime(UTIL_TIMER_Time_t past )
+{
+ 8017170:	b570      	push	{r4, r5, r6, lr}
+ 8017172:	4606      	mov	r6, r0
+  uint32_t nowInTicks = UTIL_TimerDriver.GetTimerValue( );
+ 8017174:	4d05      	ldr	r5, [pc, #20]	; (801718c <UTIL_TIMER_GetElapsedTime+0x1c>)
+ 8017176:	69eb      	ldr	r3, [r5, #28]
+ 8017178:	4798      	blx	r3
+ 801717a:	4604      	mov	r4, r0
+  uint32_t pastInTicks = UTIL_TimerDriver.ms2Tick( past );
+ 801717c:	6a6b      	ldr	r3, [r5, #36]	; 0x24
+ 801717e:	4630      	mov	r0, r6
+ 8017180:	4798      	blx	r3
+  /* intentional wrap around. Works Ok if tick duation below 1ms */
+  return UTIL_TimerDriver.Tick2ms( nowInTicks- pastInTicks );
+ 8017182:	6aab      	ldr	r3, [r5, #40]	; 0x28
+ 8017184:	1a20      	subs	r0, r4, r0
+ 8017186:	4798      	blx	r3
+}
+ 8017188:	bd70      	pop	{r4, r5, r6, pc}
+ 801718a:	bf00      	nop
+ 801718c:	08017964 	.word	0x08017964
+
+08017190 <TimerExists>:
+ * @param TimerObject Structure containing the timer object parameters
+ * @retval 1 (the object is already in the list) or 0
+ */
+bool TimerExists( UTIL_TIMER_Object_t *TimerObject )
+{
+  UTIL_TIMER_Object_t* cur = TimerListHead;
+ 8017190:	4b05      	ldr	r3, [pc, #20]	; (80171a8 <TimerExists+0x18>)
+ 8017192:	681b      	ldr	r3, [r3, #0]
+
+  while( cur != NULL )
+ 8017194:	e000      	b.n	8017198 <TimerExists+0x8>
+  {
+    if( cur == TimerObject )
+    {
+      return true;
+    }
+    cur = cur->Next;
+ 8017196:	695b      	ldr	r3, [r3, #20]
+  while( cur != NULL )
+ 8017198:	b11b      	cbz	r3, 80171a2 <TimerExists+0x12>
+    if( cur == TimerObject )
+ 801719a:	4283      	cmp	r3, r0
+ 801719c:	d1fb      	bne.n	8017196 <TimerExists+0x6>
+      return true;
+ 801719e:	2001      	movs	r0, #1
+  }
+  return false;
+}
+ 80171a0:	4770      	bx	lr
+  return false;
+ 80171a2:	2000      	movs	r0, #0
+ 80171a4:	4770      	bx	lr
+ 80171a6:	bf00      	nop
+ 80171a8:	20002e40 	.word	0x20002e40
+
+080171ac <TimerSetTimeout>:
+ * @brief Sets a timeout with the duration "timestamp"
+ *
+ * @param TimerObject Structure containing the timer object parameters
+ */
+void TimerSetTimeout( UTIL_TIMER_Object_t *TimerObject )
+{
+ 80171ac:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 80171ae:	4604      	mov	r4, r0
+  uint32_t minTicks= UTIL_TimerDriver.GetMinimumTimeout( );
+ 80171b0:	4e09      	ldr	r6, [pc, #36]	; (80171d8 <TimerSetTimeout+0x2c>)
+ 80171b2:	6a33      	ldr	r3, [r6, #32]
+ 80171b4:	4798      	blx	r3
+ 80171b6:	4605      	mov	r5, r0
+  TimerObject->IsPending = 1;
+ 80171b8:	2301      	movs	r3, #1
+ 80171ba:	7223      	strb	r3, [r4, #8]
+
+  /* In case deadline too soon */
+  if(TimerObject->Timestamp  < (UTIL_TimerDriver.GetTimerElapsedTime(  ) + minTicks) )
+ 80171bc:	6827      	ldr	r7, [r4, #0]
+ 80171be:	69b6      	ldr	r6, [r6, #24]
+ 80171c0:	47b0      	blx	r6
+ 80171c2:	4428      	add	r0, r5
+ 80171c4:	4287      	cmp	r7, r0
+ 80171c6:	d202      	bcs.n	80171ce <TimerSetTimeout+0x22>
+  {
+	  TimerObject->Timestamp = UTIL_TimerDriver.GetTimerElapsedTime(  ) + minTicks;
+ 80171c8:	47b0      	blx	r6
+ 80171ca:	4428      	add	r0, r5
+ 80171cc:	6020      	str	r0, [r4, #0]
+  }
+  UTIL_TimerDriver.StartTimerEvt( TimerObject->Timestamp );
+ 80171ce:	4b02      	ldr	r3, [pc, #8]	; (80171d8 <TimerSetTimeout+0x2c>)
+ 80171d0:	689b      	ldr	r3, [r3, #8]
+ 80171d2:	6820      	ldr	r0, [r4, #0]
+ 80171d4:	4798      	blx	r3
+}
+ 80171d6:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 80171d8:	08017964 	.word	0x08017964
+
+080171dc <UTIL_TIMER_Stop>:
+  if (NULL != TimerObject)
+ 80171dc:	b368      	cbz	r0, 801723a <UTIL_TIMER_Stop+0x5e>
+{
+ 80171de:	b510      	push	{r4, lr}
+ 80171e0:	4602      	mov	r2, r0
+  __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
+ 80171e2:	f3ef 8410 	mrs	r4, PRIMASK
+  __ASM volatile ("cpsid i" : : : "memory");
+ 80171e6:	b672      	cpsid	i
+    UTIL_TIMER_Object_t* prev = TimerListHead;
+ 80171e8:	4b15      	ldr	r3, [pc, #84]	; (8017240 <UTIL_TIMER_Stop+0x64>)
+ 80171ea:	6819      	ldr	r1, [r3, #0]
+    TimerObject->IsReloadStopped = 1U;
+ 80171ec:	2301      	movs	r3, #1
+ 80171ee:	7283      	strb	r3, [r0, #10]
+    if(NULL != TimerListHead)
+ 80171f0:	b1e1      	cbz	r1, 801722c <UTIL_TIMER_Stop+0x50>
+      TimerObject->IsRunning = 0U;
+ 80171f2:	2300      	movs	r3, #0
+ 80171f4:	7243      	strb	r3, [r0, #9]
+      if( TimerListHead == TimerObject ) /* Stop the Head */
+ 80171f6:	4288      	cmp	r0, r1
+ 80171f8:	d006      	beq.n	8017208 <UTIL_TIMER_Stop+0x2c>
+    UTIL_TIMER_Object_t* cur = TimerListHead;
+ 80171fa:	460b      	mov	r3, r1
+        while( cur != NULL )
+ 80171fc:	b1b3      	cbz	r3, 801722c <UTIL_TIMER_Stop+0x50>
+          if( cur == TimerObject )
+ 80171fe:	4293      	cmp	r3, r2
+ 8017200:	d011      	beq.n	8017226 <UTIL_TIMER_Stop+0x4a>
+            prev = cur;
+ 8017202:	4619      	mov	r1, r3
+            cur = cur->Next;
+ 8017204:	695b      	ldr	r3, [r3, #20]
+ 8017206:	e7f9      	b.n	80171fc <UTIL_TIMER_Stop+0x20>
+          TimerListHead->IsPending = 0;
+ 8017208:	720b      	strb	r3, [r1, #8]
+          if( TimerListHead->Next != NULL )
+ 801720a:	6948      	ldr	r0, [r1, #20]
+ 801720c:	b120      	cbz	r0, 8017218 <UTIL_TIMER_Stop+0x3c>
+            TimerListHead = TimerListHead->Next;
+ 801720e:	4b0c      	ldr	r3, [pc, #48]	; (8017240 <UTIL_TIMER_Stop+0x64>)
+ 8017210:	6018      	str	r0, [r3, #0]
+            TimerSetTimeout( TimerListHead );
+ 8017212:	f7ff ffcb 	bl	80171ac <TimerSetTimeout>
+ 8017216:	e009      	b.n	801722c <UTIL_TIMER_Stop+0x50>
+            UTIL_TimerDriver.StopTimerEvt( );
+ 8017218:	4b0a      	ldr	r3, [pc, #40]	; (8017244 <UTIL_TIMER_Stop+0x68>)
+ 801721a:	68db      	ldr	r3, [r3, #12]
+ 801721c:	4798      	blx	r3
+            TimerListHead = NULL;
+ 801721e:	4b08      	ldr	r3, [pc, #32]	; (8017240 <UTIL_TIMER_Stop+0x64>)
+ 8017220:	2200      	movs	r2, #0
+ 8017222:	601a      	str	r2, [r3, #0]
+ 8017224:	e002      	b.n	801722c <UTIL_TIMER_Stop+0x50>
+            if( cur->Next != NULL )
+ 8017226:	695b      	ldr	r3, [r3, #20]
+ 8017228:	b123      	cbz	r3, 8017234 <UTIL_TIMER_Stop+0x58>
+              prev->Next = cur;
+ 801722a:	614b      	str	r3, [r1, #20]
+  __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
+ 801722c:	f384 8810 	msr	PRIMASK, r4
+}
+ 8017230:	2000      	movs	r0, #0
+}
+ 8017232:	bd10      	pop	{r4, pc}
+              prev->Next = cur;
+ 8017234:	2300      	movs	r3, #0
+ 8017236:	614b      	str	r3, [r1, #20]
+ 8017238:	e7f8      	b.n	801722c <UTIL_TIMER_Stop+0x50>
+    ret = UTIL_TIMER_INVALID_PARAM;
+ 801723a:	2001      	movs	r0, #1
+}
+ 801723c:	4770      	bx	lr
+ 801723e:	bf00      	nop
+ 8017240:	20002e40 	.word	0x20002e40
+ 8017244:	08017964 	.word	0x08017964
+
+08017248 <TimerInsertTimer>:
+ *
+ * @param TimerObject Structure containing the timer object parameters
+ */
+void TimerInsertTimer( UTIL_TIMER_Object_t *TimerObject)
+{
+  UTIL_TIMER_Object_t* cur = TimerListHead;
+ 8017248:	4b09      	ldr	r3, [pc, #36]	; (8017270 <TimerInsertTimer+0x28>)
+ 801724a:	681a      	ldr	r2, [r3, #0]
+  UTIL_TIMER_Object_t* next = TimerListHead->Next;
+ 801724c:	6953      	ldr	r3, [r2, #20]
+
+  while (cur->Next != NULL )
+ 801724e:	e001      	b.n	8017254 <TimerInsertTimer+0xc>
+  {  
+    if( TimerObject->Timestamp  > next->Timestamp )
+    {
+        cur = next;
+ 8017250:	461a      	mov	r2, r3
+        next = next->Next;
+ 8017252:	695b      	ldr	r3, [r3, #20]
+  while (cur->Next != NULL )
+ 8017254:	6951      	ldr	r1, [r2, #20]
+ 8017256:	b139      	cbz	r1, 8017268 <TimerInsertTimer+0x20>
+    if( TimerObject->Timestamp  > next->Timestamp )
+ 8017258:	6819      	ldr	r1, [r3, #0]
+ 801725a:	f8d0 c000 	ldr.w	ip, [r0]
+ 801725e:	458c      	cmp	ip, r1
+ 8017260:	d8f6      	bhi.n	8017250 <TimerInsertTimer+0x8>
+    }
+    else
+    {
+        cur->Next = TimerObject;
+ 8017262:	6150      	str	r0, [r2, #20]
+        TimerObject->Next = next;
+ 8017264:	6143      	str	r3, [r0, #20]
+        return;
+ 8017266:	4770      	bx	lr
+
+    }
+  }
+  cur->Next = TimerObject;
+ 8017268:	6150      	str	r0, [r2, #20]
+  TimerObject->Next = NULL;
+ 801726a:	2300      	movs	r3, #0
+ 801726c:	6143      	str	r3, [r0, #20]
+}
+ 801726e:	4770      	bx	lr
+ 8017270:	20002e40 	.word	0x20002e40
+
+08017274 <TimerInsertNewHeadTimer>:
+ *
+ * @remark The list is automatically sorted. The list head always contains the
+ *         next timer to expire.
+ */
+void TimerInsertNewHeadTimer( UTIL_TIMER_Object_t *TimerObject )
+{
+ 8017274:	b508      	push	{r3, lr}
+  UTIL_TIMER_Object_t* cur = TimerListHead;
+ 8017276:	4b05      	ldr	r3, [pc, #20]	; (801728c <TimerInsertNewHeadTimer+0x18>)
+ 8017278:	681b      	ldr	r3, [r3, #0]
+
+  if( cur != NULL )
+ 801727a:	b10b      	cbz	r3, 8017280 <TimerInsertNewHeadTimer+0xc>
+  {
+    cur->IsPending = 0;
+ 801727c:	2200      	movs	r2, #0
+ 801727e:	721a      	strb	r2, [r3, #8]
+  }
+
+  TimerObject->Next = cur;
+ 8017280:	6143      	str	r3, [r0, #20]
+  TimerListHead = TimerObject;
+ 8017282:	4b02      	ldr	r3, [pc, #8]	; (801728c <TimerInsertNewHeadTimer+0x18>)
+ 8017284:	6018      	str	r0, [r3, #0]
+  TimerSetTimeout( TimerListHead );
+ 8017286:	f7ff ff91 	bl	80171ac <TimerSetTimeout>
+}
+ 801728a:	bd08      	pop	{r3, pc}
+ 801728c:	20002e40 	.word	0x20002e40
+
+08017290 <UTIL_TIMER_Start>:
+{
+ 8017290:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+  if(( TimerObject != NULL ) && ( TimerExists( TimerObject ) == false ) && (TimerObject->IsRunning == 0U))
+ 8017292:	2800      	cmp	r0, #0
+ 8017294:	d036      	beq.n	8017304 <UTIL_TIMER_Start+0x74>
+ 8017296:	4604      	mov	r4, r0
+ 8017298:	f7ff ff7a 	bl	8017190 <TimerExists>
+ 801729c:	2800      	cmp	r0, #0
+ 801729e:	d134      	bne.n	801730a <UTIL_TIMER_Start+0x7a>
+ 80172a0:	7a65      	ldrb	r5, [r4, #9]
+ 80172a2:	2d00      	cmp	r5, #0
+ 80172a4:	d133      	bne.n	801730e <UTIL_TIMER_Start+0x7e>
+  __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
+ 80172a6:	f3ef 8610 	mrs	r6, PRIMASK
+  __ASM volatile ("cpsid i" : : : "memory");
+ 80172aa:	b672      	cpsid	i
+    ticks = TimerObject->ReloadValue;
+ 80172ac:	6867      	ldr	r7, [r4, #4]
+    minValue = UTIL_TimerDriver.GetMinimumTimeout( );
+ 80172ae:	4b19      	ldr	r3, [pc, #100]	; (8017314 <UTIL_TIMER_Start+0x84>)
+ 80172b0:	6a1b      	ldr	r3, [r3, #32]
+ 80172b2:	4798      	blx	r3
+    if( ticks < minValue )
+ 80172b4:	4287      	cmp	r7, r0
+ 80172b6:	d300      	bcc.n	80172ba <UTIL_TIMER_Start+0x2a>
+    ticks = TimerObject->ReloadValue;
+ 80172b8:	4638      	mov	r0, r7
+    TimerObject->Timestamp = ticks;
+ 80172ba:	6020      	str	r0, [r4, #0]
+    TimerObject->IsPending = 0U;
+ 80172bc:	2300      	movs	r3, #0
+ 80172be:	7223      	strb	r3, [r4, #8]
+    TimerObject->IsRunning = 1U;
+ 80172c0:	2201      	movs	r2, #1
+ 80172c2:	7262      	strb	r2, [r4, #9]
+    TimerObject->IsReloadStopped = 0U;
+ 80172c4:	72a3      	strb	r3, [r4, #10]
+    if( TimerListHead == NULL )
+ 80172c6:	4b14      	ldr	r3, [pc, #80]	; (8017318 <UTIL_TIMER_Start+0x88>)
+ 80172c8:	681b      	ldr	r3, [r3, #0]
+ 80172ca:	b183      	cbz	r3, 80172ee <UTIL_TIMER_Start+0x5e>
+      elapsedTime = UTIL_TimerDriver.GetTimerElapsedTime( );
+ 80172cc:	4b11      	ldr	r3, [pc, #68]	; (8017314 <UTIL_TIMER_Start+0x84>)
+ 80172ce:	699b      	ldr	r3, [r3, #24]
+ 80172d0:	4798      	blx	r3
+      TimerObject->Timestamp += elapsedTime;
+ 80172d2:	6823      	ldr	r3, [r4, #0]
+ 80172d4:	4418      	add	r0, r3
+ 80172d6:	6020      	str	r0, [r4, #0]
+      if( TimerObject->Timestamp < TimerListHead->Timestamp )
+ 80172d8:	4b0f      	ldr	r3, [pc, #60]	; (8017318 <UTIL_TIMER_Start+0x88>)
+ 80172da:	681b      	ldr	r3, [r3, #0]
+ 80172dc:	681b      	ldr	r3, [r3, #0]
+ 80172de:	4298      	cmp	r0, r3
+ 80172e0:	d20c      	bcs.n	80172fc <UTIL_TIMER_Start+0x6c>
+        TimerInsertNewHeadTimer( TimerObject);
+ 80172e2:	4620      	mov	r0, r4
+ 80172e4:	f7ff ffc6 	bl	8017274 <TimerInsertNewHeadTimer>
+  __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
+ 80172e8:	f386 8810 	msr	PRIMASK, r6
+}
+ 80172ec:	e00b      	b.n	8017306 <UTIL_TIMER_Start+0x76>
+      UTIL_TimerDriver.SetTimerContext();
+ 80172ee:	4b09      	ldr	r3, [pc, #36]	; (8017314 <UTIL_TIMER_Start+0x84>)
+ 80172f0:	691b      	ldr	r3, [r3, #16]
+ 80172f2:	4798      	blx	r3
+      TimerInsertNewHeadTimer( TimerObject ); /* insert a timeout at now+obj->Timestamp */
+ 80172f4:	4620      	mov	r0, r4
+ 80172f6:	f7ff ffbd 	bl	8017274 <TimerInsertNewHeadTimer>
+ 80172fa:	e7f5      	b.n	80172e8 <UTIL_TIMER_Start+0x58>
+        TimerInsertTimer( TimerObject);
+ 80172fc:	4620      	mov	r0, r4
+ 80172fe:	f7ff ffa3 	bl	8017248 <TimerInsertTimer>
+ 8017302:	e7f1      	b.n	80172e8 <UTIL_TIMER_Start+0x58>
+    ret =  UTIL_TIMER_INVALID_PARAM;
+ 8017304:	2501      	movs	r5, #1
+}
+ 8017306:	4628      	mov	r0, r5
+ 8017308:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+    ret =  UTIL_TIMER_INVALID_PARAM;
+ 801730a:	2501      	movs	r5, #1
+ 801730c:	e7fb      	b.n	8017306 <UTIL_TIMER_Start+0x76>
+ 801730e:	2501      	movs	r5, #1
+ 8017310:	e7f9      	b.n	8017306 <UTIL_TIMER_Start+0x76>
+ 8017312:	bf00      	nop
+ 8017314:	08017964 	.word	0x08017964
+ 8017318:	20002e40 	.word	0x20002e40
+
+0801731c <UTIL_TIMER_SetPeriod>:
+  if(NULL == TimerObject)
+ 801731c:	b198      	cbz	r0, 8017346 <UTIL_TIMER_SetPeriod+0x2a>
+{
+ 801731e:	b510      	push	{r4, lr}
+ 8017320:	4604      	mov	r4, r0
+    TimerObject->ReloadValue = UTIL_TimerDriver.ms2Tick(NewPeriodValue);
+ 8017322:	4b0a      	ldr	r3, [pc, #40]	; (801734c <UTIL_TIMER_SetPeriod+0x30>)
+ 8017324:	6a5b      	ldr	r3, [r3, #36]	; 0x24
+ 8017326:	4608      	mov	r0, r1
+ 8017328:	4798      	blx	r3
+ 801732a:	6060      	str	r0, [r4, #4]
+    if(TimerExists(TimerObject))
+ 801732c:	4620      	mov	r0, r4
+ 801732e:	f7ff ff2f 	bl	8017190 <TimerExists>
+ 8017332:	b908      	cbnz	r0, 8017338 <UTIL_TIMER_SetPeriod+0x1c>
+  UTIL_TIMER_Status_t  ret = UTIL_TIMER_OK;
+ 8017334:	2000      	movs	r0, #0
+}
+ 8017336:	bd10      	pop	{r4, pc}
+      (void)UTIL_TIMER_Stop(TimerObject);
+ 8017338:	4620      	mov	r0, r4
+ 801733a:	f7ff ff4f 	bl	80171dc <UTIL_TIMER_Stop>
+      ret = UTIL_TIMER_Start(TimerObject);
+ 801733e:	4620      	mov	r0, r4
+ 8017340:	f7ff ffa6 	bl	8017290 <UTIL_TIMER_Start>
+ 8017344:	e7f7      	b.n	8017336 <UTIL_TIMER_SetPeriod+0x1a>
+	  ret = UTIL_TIMER_INVALID_PARAM;
+ 8017346:	2001      	movs	r0, #1
+}
+ 8017348:	4770      	bx	lr
+ 801734a:	bf00      	nop
+ 801734c:	08017964 	.word	0x08017964
+
+08017350 <UTIL_TIMER_IRQ_Handler>:
+{
+ 8017350:	b570      	push	{r4, r5, r6, lr}
+  __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
+ 8017352:	f3ef 8510 	mrs	r5, PRIMASK
+  __ASM volatile ("cpsid i" : : : "memory");
+ 8017356:	b672      	cpsid	i
+  old  =  UTIL_TimerDriver.GetTimerContext( );
+ 8017358:	4c1e      	ldr	r4, [pc, #120]	; (80173d4 <UTIL_TIMER_IRQ_Handler+0x84>)
+ 801735a:	6963      	ldr	r3, [r4, #20]
+ 801735c:	4798      	blx	r3
+ 801735e:	4606      	mov	r6, r0
+  now  =  UTIL_TimerDriver.SetTimerContext( );
+ 8017360:	6923      	ldr	r3, [r4, #16]
+ 8017362:	4798      	blx	r3
+  DeltaContext = now  - old; /*intentional wrap around */
+ 8017364:	1b84      	subs	r4, r0, r6
+  if ( TimerListHead != NULL )
+ 8017366:	4b1c      	ldr	r3, [pc, #112]	; (80173d8 <UTIL_TIMER_IRQ_Handler+0x88>)
+ 8017368:	681b      	ldr	r3, [r3, #0]
+ 801736a:	b923      	cbnz	r3, 8017376 <UTIL_TIMER_IRQ_Handler+0x26>
+ 801736c:	e018      	b.n	80173a0 <UTIL_TIMER_IRQ_Handler+0x50>
+        cur->Timestamp = 0;
+ 801736e:	2200      	movs	r2, #0
+ 8017370:	601a      	str	r2, [r3, #0]
+      cur = cur->Next;
+ 8017372:	695b      	ldr	r3, [r3, #20]
+    } while(cur != NULL);
+ 8017374:	b1a3      	cbz	r3, 80173a0 <UTIL_TIMER_IRQ_Handler+0x50>
+      if (cur->Timestamp > DeltaContext)
+ 8017376:	681a      	ldr	r2, [r3, #0]
+ 8017378:	42a2      	cmp	r2, r4
+ 801737a:	d9f8      	bls.n	801736e <UTIL_TIMER_IRQ_Handler+0x1e>
+        cur->Timestamp -= DeltaContext;
+ 801737c:	1a31      	subs	r1, r6, r0
+ 801737e:	440a      	add	r2, r1
+ 8017380:	601a      	str	r2, [r3, #0]
+ 8017382:	e7f6      	b.n	8017372 <UTIL_TIMER_IRQ_Handler+0x22>
+      cur = TimerListHead;
+ 8017384:	4b14      	ldr	r3, [pc, #80]	; (80173d8 <UTIL_TIMER_IRQ_Handler+0x88>)
+ 8017386:	681c      	ldr	r4, [r3, #0]
+      TimerListHead = TimerListHead->Next;
+ 8017388:	6962      	ldr	r2, [r4, #20]
+ 801738a:	601a      	str	r2, [r3, #0]
+      cur->IsPending = 0;
+ 801738c:	2300      	movs	r3, #0
+ 801738e:	7223      	strb	r3, [r4, #8]
+      cur->IsRunning = 0;
+ 8017390:	7263      	strb	r3, [r4, #9]
+      cur->Callback(cur->argument);
+ 8017392:	68e3      	ldr	r3, [r4, #12]
+ 8017394:	6920      	ldr	r0, [r4, #16]
+ 8017396:	4798      	blx	r3
+      if(( cur->Mode == UTIL_TIMER_PERIODIC) && (cur->IsReloadStopped == 0U))
+ 8017398:	8963      	ldrh	r3, [r4, #10]
+ 801739a:	f5b3 7f80 	cmp.w	r3, #256	; 0x100
+ 801739e:	d012      	beq.n	80173c6 <UTIL_TIMER_IRQ_Handler+0x76>
+  while ((TimerListHead != NULL) && ((TimerListHead->Timestamp == 0U) || (TimerListHead->Timestamp < UTIL_TimerDriver.GetTimerElapsedTime(  ))))
+ 80173a0:	4b0d      	ldr	r3, [pc, #52]	; (80173d8 <UTIL_TIMER_IRQ_Handler+0x88>)
+ 80173a2:	681b      	ldr	r3, [r3, #0]
+ 80173a4:	b13b      	cbz	r3, 80173b6 <UTIL_TIMER_IRQ_Handler+0x66>
+ 80173a6:	681c      	ldr	r4, [r3, #0]
+ 80173a8:	2c00      	cmp	r4, #0
+ 80173aa:	d0eb      	beq.n	8017384 <UTIL_TIMER_IRQ_Handler+0x34>
+ 80173ac:	4b09      	ldr	r3, [pc, #36]	; (80173d4 <UTIL_TIMER_IRQ_Handler+0x84>)
+ 80173ae:	699b      	ldr	r3, [r3, #24]
+ 80173b0:	4798      	blx	r3
+ 80173b2:	4284      	cmp	r4, r0
+ 80173b4:	d3e6      	bcc.n	8017384 <UTIL_TIMER_IRQ_Handler+0x34>
+  if(( TimerListHead != NULL ) && (TimerListHead->IsPending == 0U))
+ 80173b6:	4b08      	ldr	r3, [pc, #32]	; (80173d8 <UTIL_TIMER_IRQ_Handler+0x88>)
+ 80173b8:	6818      	ldr	r0, [r3, #0]
+ 80173ba:	b108      	cbz	r0, 80173c0 <UTIL_TIMER_IRQ_Handler+0x70>
+ 80173bc:	7a03      	ldrb	r3, [r0, #8]
+ 80173be:	b133      	cbz	r3, 80173ce <UTIL_TIMER_IRQ_Handler+0x7e>
+  __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
+ 80173c0:	f385 8810 	msr	PRIMASK, r5
+}
+ 80173c4:	bd70      	pop	{r4, r5, r6, pc}
+        (void)UTIL_TIMER_Start(cur);
+ 80173c6:	4620      	mov	r0, r4
+ 80173c8:	f7ff ff62 	bl	8017290 <UTIL_TIMER_Start>
+ 80173cc:	e7e8      	b.n	80173a0 <UTIL_TIMER_IRQ_Handler+0x50>
+    TimerSetTimeout( TimerListHead );
+ 80173ce:	f7ff feed 	bl	80171ac <TimerSetTimeout>
+ 80173d2:	e7f5      	b.n	80173c0 <UTIL_TIMER_IRQ_Handler+0x70>
+ 80173d4:	08017964 	.word	0x08017964
+ 80173d8:	20002e40 	.word	0x20002e40
+
+080173dc <ee_skip_atoi>:
+  return sc - s;
+}
+#endif
+
+static int ee_skip_atoi(const char **s)
+{
+ 80173dc:	4601      	mov	r1, r0
+  int i = 0;
+ 80173de:	2000      	movs	r0, #0
+  while (is_digit(**s)) i = i*10 + *((*s)++) - '0';
+ 80173e0:	e008      	b.n	80173f4 <ee_skip_atoi+0x18>
+ 80173e2:	eb00 0080 	add.w	r0, r0, r0, lsl #2
+ 80173e6:	1c53      	adds	r3, r2, #1
+ 80173e8:	600b      	str	r3, [r1, #0]
+ 80173ea:	7813      	ldrb	r3, [r2, #0]
+ 80173ec:	eb03 0340 	add.w	r3, r3, r0, lsl #1
+ 80173f0:	f1a3 0030 	sub.w	r0, r3, #48	; 0x30
+ 80173f4:	680a      	ldr	r2, [r1, #0]
+ 80173f6:	7813      	ldrb	r3, [r2, #0]
+ 80173f8:	3b30      	subs	r3, #48	; 0x30
+ 80173fa:	b2db      	uxtb	r3, r3
+ 80173fc:	2b09      	cmp	r3, #9
+ 80173fe:	d9f0      	bls.n	80173e2 <ee_skip_atoi+0x6>
+  return i;
+}
+ 8017400:	4770      	bx	lr
+	...
+
+08017404 <ee_number>:
+
+#define ASSIGN_STR(_c)  do { *str++ = (_c); max_size--; if (max_size == 0) return str; } while (0)
+
+static char *ee_number(char *str, int max_size, long num, int base, int size, int precision, int type)
+{
+ 8017404:	e92d 45f0 	stmdb	sp!, {r4, r5, r6, r7, r8, sl, lr}
+ 8017408:	b093      	sub	sp, #76	; 0x4c
+ 801740a:	9d1b      	ldr	r5, [sp, #108]	; 0x6c
+ 801740c:	9e1c      	ldr	r6, [sp, #112]	; 0x70
+  char c;
+  char sign, tmp[66];
+  char *dig = lower_digits;
+  int i;
+
+  if (type & UPPERCASE)  dig = upper_digits;
+ 801740e:	f016 0f40 	tst.w	r6, #64	; 0x40
+ 8017412:	d110      	bne.n	8017436 <ee_number+0x32>
+  char *dig = lower_digits;
+ 8017414:	f8df a0f8 	ldr.w	sl, [pc, #248]	; 8017510 <ee_number+0x10c>
+#ifdef TINY_PRINTF
+#else
+  if (type & LEFT) type &= ~ZEROPAD;
+#endif
+  if (base < 2 || base > 36) return 0;
+ 8017418:	1e9f      	subs	r7, r3, #2
+ 801741a:	2f22      	cmp	r7, #34	; 0x22
+ 801741c:	d875      	bhi.n	801750a <ee_number+0x106>
+
+  c = (type & ZEROPAD) ? '0' : ' ';
+ 801741e:	f016 0401 	ands.w	r4, r6, #1
+ 8017422:	d00b      	beq.n	801743c <ee_number+0x38>
+ 8017424:	f04f 0e30 	mov.w	lr, #48	; 0x30
+  sign = 0;
+  if (type & SIGN)
+ 8017428:	f016 0f02 	tst.w	r6, #2
+ 801742c:	d00f      	beq.n	801744e <ee_number+0x4a>
+  {
+    if (num < 0)
+ 801742e:	2a00      	cmp	r2, #0
+ 8017430:	db07      	blt.n	8017442 <ee_number+0x3e>
+  sign = 0;
+ 8017432:	2700      	movs	r7, #0
+ 8017434:	e00c      	b.n	8017450 <ee_number+0x4c>
+  if (type & UPPERCASE)  dig = upper_digits;
+ 8017436:	f8df a0dc 	ldr.w	sl, [pc, #220]	; 8017514 <ee_number+0x110>
+ 801743a:	e7ed      	b.n	8017418 <ee_number+0x14>
+  c = (type & ZEROPAD) ? '0' : ' ';
+ 801743c:	f04f 0e20 	mov.w	lr, #32
+ 8017440:	e7f2      	b.n	8017428 <ee_number+0x24>
+    {
+      sign = '-';
+      num = -num;
+ 8017442:	4252      	negs	r2, r2
+      size--;
+ 8017444:	9e1a      	ldr	r6, [sp, #104]	; 0x68
+ 8017446:	3e01      	subs	r6, #1
+ 8017448:	961a      	str	r6, [sp, #104]	; 0x68
+      sign = '-';
+ 801744a:	272d      	movs	r7, #45	; 0x2d
+ 801744c:	e000      	b.n	8017450 <ee_number+0x4c>
+  sign = 0;
+ 801744e:	2700      	movs	r7, #0
+  }
+#endif
+
+  i = 0;
+
+  if (num == 0)
+ 8017450:	bb5a      	cbnz	r2, 80174aa <ee_number+0xa6>
+    tmp[i++] = '0';
+ 8017452:	2330      	movs	r3, #48	; 0x30
+ 8017454:	f88d 3004 	strb.w	r3, [sp, #4]
+ 8017458:	f04f 0c01 	mov.w	ip, #1
+      tmp[i++] = dig[((unsigned long) num) % (unsigned) base];
+      num = ((unsigned long) num) / (unsigned) base;
+    }
+  }
+
+  if (i > precision) precision = i;
+ 801745c:	45ac      	cmp	ip, r5
+ 801745e:	dd00      	ble.n	8017462 <ee_number+0x5e>
+ 8017460:	4665      	mov	r5, ip
+  size -= precision;
+ 8017462:	9b1a      	ldr	r3, [sp, #104]	; 0x68
+ 8017464:	1b5b      	subs	r3, r3, r5
+  if (!(type & (ZEROPAD /* TINY option   | LEFT */))) while (size-- > 0) ASSIGN_STR(' ');
+ 8017466:	b31c      	cbz	r4, 80174b0 <ee_number+0xac>
+  if (sign) ASSIGN_STR(sign);
+ 8017468:	b11f      	cbz	r7, 8017472 <ee_number+0x6e>
+ 801746a:	f800 7b01 	strb.w	r7, [r0], #1
+ 801746e:	3901      	subs	r1, #1
+ 8017470:	d007      	beq.n	8017482 <ee_number+0x7e>
+    }
+  }
+#endif
+
+#ifdef TINY_PRINTF
+  while (size-- > 0) ASSIGN_STR(c);
+ 8017472:	2b00      	cmp	r3, #0
+ 8017474:	f103 33ff 	add.w	r3, r3, #4294967295
+ 8017478:	dd24      	ble.n	80174c4 <ee_number+0xc0>
+ 801747a:	f800 eb01 	strb.w	lr, [r0], #1
+ 801747e:	3901      	subs	r1, #1
+ 8017480:	d1f7      	bne.n	8017472 <ee_number+0x6e>
+  while (i < precision--) ASSIGN_STR('0');
+  while (i-- > 0) ASSIGN_STR(tmp[i]);
+  while (size-- > 0) ASSIGN_STR(' ');
+
+  return str;
+}
+ 8017482:	b013      	add	sp, #76	; 0x4c
+ 8017484:	e8bd 85f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, sl, pc}
+      tmp[i++] = dig[((unsigned long) num) % (unsigned) base];
+ 8017488:	fbb2 f6f3 	udiv	r6, r2, r3
+ 801748c:	fb03 2216 	mls	r2, r3, r6, r2
+ 8017490:	f81a 8002 	ldrb.w	r8, [sl, r2]
+ 8017494:	f10c 0248 	add.w	r2, ip, #72	; 0x48
+ 8017498:	446a      	add	r2, sp
+ 801749a:	f802 8c44 	strb.w	r8, [r2, #-68]
+      num = ((unsigned long) num) / (unsigned) base;
+ 801749e:	4632      	mov	r2, r6
+      tmp[i++] = dig[((unsigned long) num) % (unsigned) base];
+ 80174a0:	f10c 0c01 	add.w	ip, ip, #1
+    while (num != 0)
+ 80174a4:	2a00      	cmp	r2, #0
+ 80174a6:	d1ef      	bne.n	8017488 <ee_number+0x84>
+ 80174a8:	e7d8      	b.n	801745c <ee_number+0x58>
+  i = 0;
+ 80174aa:	f04f 0c00 	mov.w	ip, #0
+ 80174ae:	e7f9      	b.n	80174a4 <ee_number+0xa0>
+  if (!(type & (ZEROPAD /* TINY option   | LEFT */))) while (size-- > 0) ASSIGN_STR(' ');
+ 80174b0:	2b00      	cmp	r3, #0
+ 80174b2:	f103 33ff 	add.w	r3, r3, #4294967295
+ 80174b6:	ddd7      	ble.n	8017468 <ee_number+0x64>
+ 80174b8:	2220      	movs	r2, #32
+ 80174ba:	f800 2b01 	strb.w	r2, [r0], #1
+ 80174be:	3901      	subs	r1, #1
+ 80174c0:	d1f6      	bne.n	80174b0 <ee_number+0xac>
+ 80174c2:	e7de      	b.n	8017482 <ee_number+0x7e>
+  while (i < precision--) ASSIGN_STR('0');
+ 80174c4:	4565      	cmp	r5, ip
+ 80174c6:	f105 35ff 	add.w	r5, r5, #4294967295
+ 80174ca:	dd05      	ble.n	80174d8 <ee_number+0xd4>
+ 80174cc:	2230      	movs	r2, #48	; 0x30
+ 80174ce:	f800 2b01 	strb.w	r2, [r0], #1
+ 80174d2:	3901      	subs	r1, #1
+ 80174d4:	d1f6      	bne.n	80174c4 <ee_number+0xc0>
+ 80174d6:	e7d4      	b.n	8017482 <ee_number+0x7e>
+  while (i-- > 0) ASSIGN_STR(tmp[i]);
+ 80174d8:	4662      	mov	r2, ip
+ 80174da:	2a00      	cmp	r2, #0
+ 80174dc:	f10c 3cff 	add.w	ip, ip, #4294967295
+ 80174e0:	dd09      	ble.n	80174f6 <ee_number+0xf2>
+ 80174e2:	f10c 0248 	add.w	r2, ip, #72	; 0x48
+ 80174e6:	446a      	add	r2, sp
+ 80174e8:	f812 2c44 	ldrb.w	r2, [r2, #-68]
+ 80174ec:	f800 2b01 	strb.w	r2, [r0], #1
+ 80174f0:	3901      	subs	r1, #1
+ 80174f2:	d1f1      	bne.n	80174d8 <ee_number+0xd4>
+ 80174f4:	e7c5      	b.n	8017482 <ee_number+0x7e>
+  while (size-- > 0) ASSIGN_STR(' ');
+ 80174f6:	2b00      	cmp	r3, #0
+ 80174f8:	f103 33ff 	add.w	r3, r3, #4294967295
+ 80174fc:	ddc1      	ble.n	8017482 <ee_number+0x7e>
+ 80174fe:	2220      	movs	r2, #32
+ 8017500:	f800 2b01 	strb.w	r2, [r0], #1
+ 8017504:	3901      	subs	r1, #1
+ 8017506:	d1f6      	bne.n	80174f6 <ee_number+0xf2>
+ 8017508:	e7bb      	b.n	8017482 <ee_number+0x7e>
+  if (base < 2 || base > 36) return 0;
+ 801750a:	2000      	movs	r0, #0
+ 801750c:	e7b9      	b.n	8017482 <ee_number+0x7e>
+ 801750e:	bf00      	nop
+ 8017510:	08018e00 	.word	0x08018e00
+ 8017514:	08018e28 	.word	0x08018e28
+
+08017518 <tiny_vsnprintf_like>:
+
+#define CHECK_STR_SIZE(_buf, _str, _size) \
+  if ((((_str) - (_buf)) >= ((_size)-1))) { break; }
+
+int tiny_vsnprintf_like(char *buf, const int size, const char *fmt, va_list args)
+{
+ 8017518:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
+ 801751c:	b087      	sub	sp, #28
+ 801751e:	9205      	str	r2, [sp, #20]
+ 8017520:	9304      	str	r3, [sp, #16]
+
+  int field_width;      // Width of output field
+  int precision;        // Min. # of digits for integers; max number of chars for from string
+  int qualifier;        // 'h', 'l', or 'L' for integer fields
+
+  if (size <= 0)
+ 8017522:	1e0f      	subs	r7, r1, #0
+ 8017524:	f340 80b8 	ble.w	8017698 <tiny_vsnprintf_like+0x180>
+ 8017528:	4606      	mov	r6, r0
+  {
+    return 0;
+  }
+
+  for (str = buf; *fmt || ((str - buf) >= size-1); fmt++)
+ 801752a:	4604      	mov	r4, r0
+ 801752c:	e004      	b.n	8017538 <tiny_vsnprintf_like+0x20>
+  {
+    CHECK_STR_SIZE(buf, str, size);
+
+    if (*fmt != '%')
+    {
+      *str++ = *fmt;
+ 801752e:	f804 2b01 	strb.w	r2, [r4], #1
+  for (str = buf; *fmt || ((str - buf) >= size-1); fmt++)
+ 8017532:	9b05      	ldr	r3, [sp, #20]
+ 8017534:	3301      	adds	r3, #1
+ 8017536:	9305      	str	r3, [sp, #20]
+ 8017538:	9905      	ldr	r1, [sp, #20]
+ 801753a:	780a      	ldrb	r2, [r1, #0]
+ 801753c:	b922      	cbnz	r2, 8017548 <tiny_vsnprintf_like+0x30>
+ 801753e:	1ba3      	subs	r3, r4, r6
+ 8017540:	1e78      	subs	r0, r7, #1
+ 8017542:	4283      	cmp	r3, r0
+ 8017544:	f2c0 80a2 	blt.w	801768c <tiny_vsnprintf_like+0x174>
+    CHECK_STR_SIZE(buf, str, size);
+ 8017548:	1ba3      	subs	r3, r4, r6
+ 801754a:	f107 38ff 	add.w	r8, r7, #4294967295
+ 801754e:	4543      	cmp	r3, r8
+ 8017550:	f280 809c 	bge.w	801768c <tiny_vsnprintf_like+0x174>
+    if (*fmt != '%')
+ 8017554:	2a25      	cmp	r2, #37	; 0x25
+ 8017556:	d1ea      	bne.n	801752e <tiny_vsnprintf_like+0x16>
+
+    // Process flags
+    flags = 0;
+#ifdef TINY_PRINTF
+    /* Support %0, but not %-, %+, %space and %# */
+    fmt++;
+ 8017558:	1c4b      	adds	r3, r1, #1
+ 801755a:	9305      	str	r3, [sp, #20]
+    if (*fmt == '0')
+ 801755c:	784b      	ldrb	r3, [r1, #1]
+ 801755e:	2b30      	cmp	r3, #48	; 0x30
+ 8017560:	d020      	beq.n	80175a4 <tiny_vsnprintf_like+0x8c>
+    flags = 0;
+ 8017562:	f04f 0900 	mov.w	r9, #0
+    }
+#endif
+
+    // Get field width
+    field_width = -1;
+    if (is_digit(*fmt))
+ 8017566:	3b30      	subs	r3, #48	; 0x30
+ 8017568:	b2db      	uxtb	r3, r3
+ 801756a:	2b09      	cmp	r3, #9
+ 801756c:	d91d      	bls.n	80175aa <tiny_vsnprintf_like+0x92>
+    field_width = -1;
+ 801756e:	f04f 35ff 	mov.w	r5, #4294967295
+#endif
+
+    // Default base
+    base = 10;
+
+    switch (*fmt)
+ 8017572:	9b05      	ldr	r3, [sp, #20]
+ 8017574:	781a      	ldrb	r2, [r3, #0]
+ 8017576:	f1a2 0358 	sub.w	r3, r2, #88	; 0x58
+ 801757a:	2b20      	cmp	r3, #32
+ 801757c:	d867      	bhi.n	801764e <tiny_vsnprintf_like+0x136>
+ 801757e:	e8df f003 	tbb	[pc, r3]
+ 8017582:	664a      	.short	0x664a
+ 8017584:	66666666 	.word	0x66666666
+ 8017588:	66666666 	.word	0x66666666
+ 801758c:	66621e66 	.word	0x66621e66
+ 8017590:	62666666 	.word	0x62666666
+ 8017594:	66666666 	.word	0x66666666
+ 8017598:	66666666 	.word	0x66666666
+ 801759c:	19662866 	.word	0x19662866
+ 80175a0:	6666      	.short	0x6666
+ 80175a2:	7c          	.byte	0x7c
+ 80175a3:	00          	.byte	0x00
+      flags |= ZEROPAD;
+ 80175a4:	f04f 0901 	mov.w	r9, #1
+ 80175a8:	e7dd      	b.n	8017566 <tiny_vsnprintf_like+0x4e>
+      field_width = ee_skip_atoi(&fmt);
+ 80175aa:	a805      	add	r0, sp, #20
+ 80175ac:	f7ff ff16 	bl	80173dc <ee_skip_atoi>
+ 80175b0:	4605      	mov	r5, r0
+ 80175b2:	e7de      	b.n	8017572 <tiny_vsnprintf_like+0x5a>
+    switch (*fmt)
+ 80175b4:	230a      	movs	r3, #10
+ 80175b6:	e031      	b.n	801761c <tiny_vsnprintf_like+0x104>
+      case 'c':
+#ifdef TINY_PRINTF
+#else
+        if (!(flags & LEFT))
+#endif
+          while (--field_width > 0) *str++ = ' ';
+ 80175b8:	2320      	movs	r3, #32
+ 80175ba:	f804 3b01 	strb.w	r3, [r4], #1
+ 80175be:	3d01      	subs	r5, #1
+ 80175c0:	2d00      	cmp	r5, #0
+ 80175c2:	dcf9      	bgt.n	80175b8 <tiny_vsnprintf_like+0xa0>
+        *str++ = (unsigned char) va_arg(args, int);
+ 80175c4:	9b04      	ldr	r3, [sp, #16]
+ 80175c6:	1d1a      	adds	r2, r3, #4
+ 80175c8:	9204      	str	r2, [sp, #16]
+ 80175ca:	781b      	ldrb	r3, [r3, #0]
+ 80175cc:	f804 3b01 	strb.w	r3, [r4], #1
+#ifdef TINY_PRINTF
+#else
+        while (--field_width > 0) *str++ = ' ';
+#endif
+        continue;
+ 80175d0:	e7af      	b.n	8017532 <tiny_vsnprintf_like+0x1a>
+
+      case 's':
+        s = va_arg(args, char *);
+ 80175d2:	9b04      	ldr	r3, [sp, #16]
+ 80175d4:	1d1a      	adds	r2, r3, #4
+ 80175d6:	9204      	str	r2, [sp, #16]
+ 80175d8:	f8d3 8000 	ldr.w	r8, [r3]
+        if (!s) s = "<NULL>";
+ 80175dc:	f1b8 0f00 	cmp.w	r8, #0
+ 80175e0:	d003      	beq.n	80175ea <tiny_vsnprintf_like+0xd2>
+#ifdef TINY_PRINTF
+        len = strlen(s);
+ 80175e2:	4640      	mov	r0, r8
+ 80175e4:	f7e9 feec 	bl	80013c0 <strlen>
+#else
+        len = strnlen(s, precision);
+        if (!(flags & LEFT))
+#endif
+          while (len < field_width--) *str++ = ' ';
+ 80175e8:	e006      	b.n	80175f8 <tiny_vsnprintf_like+0xe0>
+        if (!s) s = "<NULL>";
+ 80175ea:	f8df 80b0 	ldr.w	r8, [pc, #176]	; 801769c <tiny_vsnprintf_like+0x184>
+ 80175ee:	e7f8      	b.n	80175e2 <tiny_vsnprintf_like+0xca>
+          while (len < field_width--) *str++ = ' ';
+ 80175f0:	2220      	movs	r2, #32
+ 80175f2:	f804 2b01 	strb.w	r2, [r4], #1
+ 80175f6:	461d      	mov	r5, r3
+ 80175f8:	1e6b      	subs	r3, r5, #1
+ 80175fa:	4285      	cmp	r5, r0
+ 80175fc:	dcf8      	bgt.n	80175f0 <tiny_vsnprintf_like+0xd8>
+        for (i = 0; i < len; ++i) *str++ = *s++;
+ 80175fe:	2200      	movs	r2, #0
+ 8017600:	e006      	b.n	8017610 <tiny_vsnprintf_like+0xf8>
+ 8017602:	4643      	mov	r3, r8
+ 8017604:	f813 1b01 	ldrb.w	r1, [r3], #1
+ 8017608:	f804 1b01 	strb.w	r1, [r4], #1
+ 801760c:	3201      	adds	r2, #1
+ 801760e:	4698      	mov	r8, r3
+ 8017610:	4282      	cmp	r2, r0
+ 8017612:	dbf6      	blt.n	8017602 <tiny_vsnprintf_like+0xea>
+ 8017614:	e78d      	b.n	8017532 <tiny_vsnprintf_like+0x1a>
+        base = 8;
+        break;
+#endif
+
+      case 'X':
+        flags |= UPPERCASE;
+ 8017616:	f049 0940 	orr.w	r9, r9, #64	; 0x40
+
+      case 'x':
+        base = 16;
+ 801761a:	2310      	movs	r3, #16
+        continue;
+    }
+
+    if (qualifier == 'l')
+      num = va_arg(args, unsigned long);
+    else if (flags & SIGN)
+ 801761c:	f019 0f02 	tst.w	r9, #2
+ 8017620:	d02f      	beq.n	8017682 <tiny_vsnprintf_like+0x16a>
+      num = va_arg(args, int);
+ 8017622:	9a04      	ldr	r2, [sp, #16]
+ 8017624:	1d11      	adds	r1, r2, #4
+ 8017626:	9104      	str	r1, [sp, #16]
+ 8017628:	6812      	ldr	r2, [r2, #0]
+    else
+      num = va_arg(args, unsigned int);
+
+    str = ee_number(str, ((size - 1) - (str - buf)), num, base, field_width, precision, flags);
+ 801762a:	1ba1      	subs	r1, r4, r6
+ 801762c:	f8cd 9008 	str.w	r9, [sp, #8]
+ 8017630:	f04f 30ff 	mov.w	r0, #4294967295
+ 8017634:	9001      	str	r0, [sp, #4]
+ 8017636:	9500      	str	r5, [sp, #0]
+ 8017638:	eba8 0101 	sub.w	r1, r8, r1
+ 801763c:	4620      	mov	r0, r4
+ 801763e:	f7ff fee1 	bl	8017404 <ee_number>
+ 8017642:	4604      	mov	r4, r0
+ 8017644:	e775      	b.n	8017532 <tiny_vsnprintf_like+0x1a>
+        flags |= SIGN;
+ 8017646:	f049 0902 	orr.w	r9, r9, #2
+    base = 10;
+ 801764a:	230a      	movs	r3, #10
+ 801764c:	e7e6      	b.n	801761c <tiny_vsnprintf_like+0x104>
+        if (*fmt != '%') *str++ = '%';
+ 801764e:	2a25      	cmp	r2, #37	; 0x25
+ 8017650:	d002      	beq.n	8017658 <tiny_vsnprintf_like+0x140>
+ 8017652:	2325      	movs	r3, #37	; 0x25
+ 8017654:	f804 3b01 	strb.w	r3, [r4], #1
+        CHECK_STR_SIZE(buf, str, size);
+ 8017658:	1ba3      	subs	r3, r4, r6
+ 801765a:	4598      	cmp	r8, r3
+ 801765c:	dd0f      	ble.n	801767e <tiny_vsnprintf_like+0x166>
+        if (*fmt)
+ 801765e:	9b05      	ldr	r3, [sp, #20]
+ 8017660:	781a      	ldrb	r2, [r3, #0]
+ 8017662:	b13a      	cbz	r2, 8017674 <tiny_vsnprintf_like+0x15c>
+          *str++ = *fmt;
+ 8017664:	f804 2b01 	strb.w	r2, [r4], #1
+        CHECK_STR_SIZE(buf, str, size);
+ 8017668:	1ba3      	subs	r3, r4, r6
+ 801766a:	4598      	cmp	r8, r3
+ 801766c:	f73f af61 	bgt.w	8017532 <tiny_vsnprintf_like+0x1a>
+    base = 10;
+ 8017670:	230a      	movs	r3, #10
+ 8017672:	e7d3      	b.n	801761c <tiny_vsnprintf_like+0x104>
+          --fmt;
+ 8017674:	3b01      	subs	r3, #1
+ 8017676:	9305      	str	r3, [sp, #20]
+ 8017678:	e7f6      	b.n	8017668 <tiny_vsnprintf_like+0x150>
+        base = 16;
+ 801767a:	2310      	movs	r3, #16
+ 801767c:	e7ce      	b.n	801761c <tiny_vsnprintf_like+0x104>
+    base = 10;
+ 801767e:	230a      	movs	r3, #10
+ 8017680:	e7cc      	b.n	801761c <tiny_vsnprintf_like+0x104>
+      num = va_arg(args, unsigned int);
+ 8017682:	9a04      	ldr	r2, [sp, #16]
+ 8017684:	1d11      	adds	r1, r2, #4
+ 8017686:	9104      	str	r1, [sp, #16]
+ 8017688:	6812      	ldr	r2, [r2, #0]
+ 801768a:	e7ce      	b.n	801762a <tiny_vsnprintf_like+0x112>
+  }
+
+  *str = '\0';
+ 801768c:	2300      	movs	r3, #0
+ 801768e:	7023      	strb	r3, [r4, #0]
+  return str - buf;
+ 8017690:	1ba0      	subs	r0, r4, r6
+}
+ 8017692:	b007      	add	sp, #28
+ 8017694:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
+    return 0;
+ 8017698:	2000      	movs	r0, #0
+ 801769a:	e7fa      	b.n	8017692 <tiny_vsnprintf_like+0x17a>
+ 801769c:	08018e50 	.word	0x08018e50
+
+080176a0 <memcmp>:
+ 80176a0:	b510      	push	{r4, lr}
+ 80176a2:	3901      	subs	r1, #1
+ 80176a4:	4402      	add	r2, r0
+ 80176a6:	4290      	cmp	r0, r2
+ 80176a8:	d101      	bne.n	80176ae <memcmp+0xe>
+ 80176aa:	2000      	movs	r0, #0
+ 80176ac:	e005      	b.n	80176ba <memcmp+0x1a>
+ 80176ae:	7803      	ldrb	r3, [r0, #0]
+ 80176b0:	f811 4f01 	ldrb.w	r4, [r1, #1]!
+ 80176b4:	42a3      	cmp	r3, r4
+ 80176b6:	d001      	beq.n	80176bc <memcmp+0x1c>
+ 80176b8:	1b18      	subs	r0, r3, r4
+ 80176ba:	bd10      	pop	{r4, pc}
+ 80176bc:	3001      	adds	r0, #1
+ 80176be:	e7f2      	b.n	80176a6 <memcmp+0x6>
+
+080176c0 <memset>:
+ 80176c0:	4402      	add	r2, r0
+ 80176c2:	4603      	mov	r3, r0
+ 80176c4:	4293      	cmp	r3, r2
+ 80176c6:	d100      	bne.n	80176ca <memset+0xa>
+ 80176c8:	4770      	bx	lr
+ 80176ca:	f803 1b01 	strb.w	r1, [r3], #1
+ 80176ce:	e7f9      	b.n	80176c4 <memset+0x4>
+
+080176d0 <__libc_init_array>:
+ 80176d0:	b570      	push	{r4, r5, r6, lr}
+ 80176d2:	4d0d      	ldr	r5, [pc, #52]	; (8017708 <__libc_init_array+0x38>)
+ 80176d4:	4c0d      	ldr	r4, [pc, #52]	; (801770c <__libc_init_array+0x3c>)
+ 80176d6:	1b64      	subs	r4, r4, r5
+ 80176d8:	10a4      	asrs	r4, r4, #2
+ 80176da:	2600      	movs	r6, #0
+ 80176dc:	42a6      	cmp	r6, r4
+ 80176de:	d109      	bne.n	80176f4 <__libc_init_array+0x24>
+ 80176e0:	4d0b      	ldr	r5, [pc, #44]	; (8017710 <__libc_init_array+0x40>)
+ 80176e2:	4c0c      	ldr	r4, [pc, #48]	; (8017714 <__libc_init_array+0x44>)
+ 80176e4:	f000 f8b8 	bl	8017858 <_init>
+ 80176e8:	1b64      	subs	r4, r4, r5
+ 80176ea:	10a4      	asrs	r4, r4, #2
+ 80176ec:	2600      	movs	r6, #0
+ 80176ee:	42a6      	cmp	r6, r4
+ 80176f0:	d105      	bne.n	80176fe <__libc_init_array+0x2e>
+ 80176f2:	bd70      	pop	{r4, r5, r6, pc}
+ 80176f4:	f855 3b04 	ldr.w	r3, [r5], #4
+ 80176f8:	4798      	blx	r3
+ 80176fa:	3601      	adds	r6, #1
+ 80176fc:	e7ee      	b.n	80176dc <__libc_init_array+0xc>
+ 80176fe:	f855 3b04 	ldr.w	r3, [r5], #4
+ 8017702:	4798      	blx	r3
+ 8017704:	3601      	adds	r6, #1
+ 8017706:	e7f2      	b.n	80176ee <__libc_init_array+0x1e>
+ 8017708:	08018f38 	.word	0x08018f38
+ 801770c:	08018f38 	.word	0x08018f38
+ 8017710:	08018f38 	.word	0x08018f38
+ 8017714:	08018f3c 	.word	0x08018f3c
+
+08017718 <strcpy>:
+ 8017718:	4603      	mov	r3, r0
+ 801771a:	f811 2b01 	ldrb.w	r2, [r1], #1
+ 801771e:	f803 2b01 	strb.w	r2, [r3], #1
+ 8017722:	2a00      	cmp	r2, #0
+ 8017724:	d1f9      	bne.n	801771a <strcpy+0x2>
+ 8017726:	4770      	bx	lr
+
+08017728 <__aeabi_memcpy>:
+ 8017728:	f000 b803 	b.w	8017732 <memcpy>
+
+0801772c <__aeabi_memclr>:
+ 801772c:	2200      	movs	r2, #0
+ 801772e:	f000 b80e 	b.w	801774e <__aeabi_memset>
+
+08017732 <memcpy>:
+ 8017732:	440a      	add	r2, r1
+ 8017734:	4291      	cmp	r1, r2
+ 8017736:	f100 33ff 	add.w	r3, r0, #4294967295
+ 801773a:	d100      	bne.n	801773e <memcpy+0xc>
+ 801773c:	4770      	bx	lr
+ 801773e:	b510      	push	{r4, lr}
+ 8017740:	f811 4b01 	ldrb.w	r4, [r1], #1
+ 8017744:	f803 4f01 	strb.w	r4, [r3, #1]!
+ 8017748:	4291      	cmp	r1, r2
+ 801774a:	d1f9      	bne.n	8017740 <memcpy+0xe>
+ 801774c:	bd10      	pop	{r4, pc}
+
+0801774e <__aeabi_memset>:
+ 801774e:	4613      	mov	r3, r2
+ 8017750:	460a      	mov	r2, r1
+ 8017752:	4619      	mov	r1, r3
+ 8017754:	f7ff bfb4 	b.w	80176c0 <memset>
+
+08017758 <floor>:
+ 8017758:	f3c1 520a 	ubfx	r2, r1, #20, #11
+ 801775c:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
+ 8017760:	f2a2 36ff 	subw	r6, r2, #1023	; 0x3ff
+ 8017764:	2e13      	cmp	r6, #19
+ 8017766:	460b      	mov	r3, r1
+ 8017768:	4607      	mov	r7, r0
+ 801776a:	460c      	mov	r4, r1
+ 801776c:	4605      	mov	r5, r0
+ 801776e:	dc32      	bgt.n	80177d6 <floor+0x7e>
+ 8017770:	2e00      	cmp	r6, #0
+ 8017772:	da14      	bge.n	801779e <floor+0x46>
+ 8017774:	a334      	add	r3, pc, #208	; (adr r3, 8017848 <floor+0xf0>)
+ 8017776:	e9d3 2300 	ldrd	r2, r3, [r3]
+ 801777a:	f7e9 fe2f 	bl	80013dc <__adddf3>
+ 801777e:	2200      	movs	r2, #0
+ 8017780:	2300      	movs	r3, #0
+ 8017782:	f7ea f85f 	bl	8001844 <__aeabi_dcmpgt>
+ 8017786:	b138      	cbz	r0, 8017798 <floor+0x40>
+ 8017788:	2c00      	cmp	r4, #0
+ 801778a:	da56      	bge.n	801783a <floor+0xe2>
+ 801778c:	f024 4400 	bic.w	r4, r4, #2147483648	; 0x80000000
+ 8017790:	4325      	orrs	r5, r4
+ 8017792:	d055      	beq.n	8017840 <floor+0xe8>
+ 8017794:	4c2e      	ldr	r4, [pc, #184]	; (8017850 <floor+0xf8>)
+ 8017796:	2500      	movs	r5, #0
+ 8017798:	4623      	mov	r3, r4
+ 801779a:	462f      	mov	r7, r5
+ 801779c:	e025      	b.n	80177ea <floor+0x92>
+ 801779e:	4a2d      	ldr	r2, [pc, #180]	; (8017854 <floor+0xfc>)
+ 80177a0:	fa42 f806 	asr.w	r8, r2, r6
+ 80177a4:	ea01 0208 	and.w	r2, r1, r8
+ 80177a8:	4302      	orrs	r2, r0
+ 80177aa:	d01e      	beq.n	80177ea <floor+0x92>
+ 80177ac:	a326      	add	r3, pc, #152	; (adr r3, 8017848 <floor+0xf0>)
+ 80177ae:	e9d3 2300 	ldrd	r2, r3, [r3]
+ 80177b2:	f7e9 fe13 	bl	80013dc <__adddf3>
+ 80177b6:	2200      	movs	r2, #0
+ 80177b8:	2300      	movs	r3, #0
+ 80177ba:	f7ea f843 	bl	8001844 <__aeabi_dcmpgt>
+ 80177be:	2800      	cmp	r0, #0
+ 80177c0:	d0ea      	beq.n	8017798 <floor+0x40>
+ 80177c2:	2c00      	cmp	r4, #0
+ 80177c4:	bfbe      	ittt	lt
+ 80177c6:	f44f 1380 	movlt.w	r3, #1048576	; 0x100000
+ 80177ca:	4133      	asrlt	r3, r6
+ 80177cc:	18e4      	addlt	r4, r4, r3
+ 80177ce:	ea24 0408 	bic.w	r4, r4, r8
+ 80177d2:	2500      	movs	r5, #0
+ 80177d4:	e7e0      	b.n	8017798 <floor+0x40>
+ 80177d6:	2e33      	cmp	r6, #51	; 0x33
+ 80177d8:	dd0b      	ble.n	80177f2 <floor+0x9a>
+ 80177da:	f5b6 6f80 	cmp.w	r6, #1024	; 0x400
+ 80177de:	d104      	bne.n	80177ea <floor+0x92>
+ 80177e0:	4602      	mov	r2, r0
+ 80177e2:	f7e9 fdfb 	bl	80013dc <__adddf3>
+ 80177e6:	4607      	mov	r7, r0
+ 80177e8:	460b      	mov	r3, r1
+ 80177ea:	4638      	mov	r0, r7
+ 80177ec:	4619      	mov	r1, r3
+ 80177ee:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
+ 80177f2:	f2a2 4213 	subw	r2, r2, #1043	; 0x413
+ 80177f6:	f04f 38ff 	mov.w	r8, #4294967295
+ 80177fa:	fa28 f802 	lsr.w	r8, r8, r2
+ 80177fe:	ea10 0f08 	tst.w	r0, r8
+ 8017802:	d0f2      	beq.n	80177ea <floor+0x92>
+ 8017804:	a310      	add	r3, pc, #64	; (adr r3, 8017848 <floor+0xf0>)
+ 8017806:	e9d3 2300 	ldrd	r2, r3, [r3]
+ 801780a:	f7e9 fde7 	bl	80013dc <__adddf3>
+ 801780e:	2200      	movs	r2, #0
+ 8017810:	2300      	movs	r3, #0
+ 8017812:	f7ea f817 	bl	8001844 <__aeabi_dcmpgt>
+ 8017816:	2800      	cmp	r0, #0
+ 8017818:	d0be      	beq.n	8017798 <floor+0x40>
+ 801781a:	2c00      	cmp	r4, #0
+ 801781c:	da0a      	bge.n	8017834 <floor+0xdc>
+ 801781e:	2e14      	cmp	r6, #20
+ 8017820:	d101      	bne.n	8017826 <floor+0xce>
+ 8017822:	3401      	adds	r4, #1
+ 8017824:	e006      	b.n	8017834 <floor+0xdc>
+ 8017826:	f1c6 0634 	rsb	r6, r6, #52	; 0x34
+ 801782a:	2301      	movs	r3, #1
+ 801782c:	40b3      	lsls	r3, r6
+ 801782e:	441d      	add	r5, r3
+ 8017830:	42af      	cmp	r7, r5
+ 8017832:	d8f6      	bhi.n	8017822 <floor+0xca>
+ 8017834:	ea25 0508 	bic.w	r5, r5, r8
+ 8017838:	e7ae      	b.n	8017798 <floor+0x40>
+ 801783a:	2500      	movs	r5, #0
+ 801783c:	462c      	mov	r4, r5
+ 801783e:	e7ab      	b.n	8017798 <floor+0x40>
+ 8017840:	f04f 4400 	mov.w	r4, #2147483648	; 0x80000000
+ 8017844:	e7a8      	b.n	8017798 <floor+0x40>
+ 8017846:	bf00      	nop
+ 8017848:	8800759c 	.word	0x8800759c
+ 801784c:	7e37e43c 	.word	0x7e37e43c
+ 8017850:	bff00000 	.word	0xbff00000
+ 8017854:	000fffff 	.word	0x000fffff
+
+08017858 <_init>:
+ 8017858:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 801785a:	bf00      	nop
+ 801785c:	bcf8      	pop	{r3, r4, r5, r6, r7}
+ 801785e:	bc08      	pop	{r3}
+ 8017860:	469e      	mov	lr, r3
+ 8017862:	4770      	bx	lr
+
+08017864 <_fini>:
+ 8017864:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 8017866:	bf00      	nop
+ 8017868:	bcf8      	pop	{r3, r4, r5, r6, r7}
+ 801786a:	bc08      	pop	{r3}
+ 801786c:	469e      	mov	lr, r3
+ 801786e:	4770      	bx	lr
diff --git a/STM32CubeIDE/Release/STS_RR_R125-YUNHORN-MASTER.bin b/STM32CubeIDE/Release/STS_RR_R125-YUNHORN-MASTER.bin
new file mode 100644
index 0000000000000000000000000000000000000000..314cd69c719e563cad8ea7febdc1309e1497fdf7
GIT binary patch
literal 90840
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
Fe*qaD!g&Ay

literal 0
HcmV?d00001

diff --git a/STM32CubeIDE/Release/STS_RR_R125-YUNHORN-MASTER.list b/STM32CubeIDE/Release/STS_RR_R125-YUNHORN-MASTER.list
new file mode 100644
index 0000000..406c21f
--- /dev/null
+++ b/STM32CubeIDE/Release/STS_RR_R125-YUNHORN-MASTER.list
@@ -0,0 +1,32756 @@
+
+STS_RR_R125.elf:     file format elf32-littlearm
+
+Sections:
+Idx Name          Size      VMA       LMA       File off  Algn
+  0 .isr_vector   00000138  08000000  08000000  00010000  2**0
+                  CONTENTS, ALLOC, LOAD, READONLY, DATA
+  1 .text         000142c8  08000138  08000138  00010138  2**3
+                  CONTENTS, ALLOC, LOAD, READONLY, CODE
+  2 .rodata       00001524  08014400  08014400  00024400  2**2
+                  CONTENTS, ALLOC, LOAD, READONLY, DATA
+  3 .USER_embedded_Keys 000000d8  08015924  08015924  00025924  2**2
+                  CONTENTS, ALLOC, LOAD, READONLY, DATA
+  4 .ARM.extab    00000000  080159fc  080159fc  000308cc  2**0
+                  CONTENTS
+  5 .ARM          00000008  080159fc  080159fc  000259fc  2**2
+                  CONTENTS, ALLOC, LOAD, READONLY, DATA
+  6 .preinit_array 00000000  08015a04  08015a04  000308cc  2**0
+                  CONTENTS, ALLOC, LOAD, DATA
+  7 .init_array   00000004  08015a04  08015a04  00025a04  2**2
+                  CONTENTS, ALLOC, LOAD, DATA
+  8 .fini_array   00000004  08015a08  08015a08  00025a08  2**2
+                  CONTENTS, ALLOC, LOAD, DATA
+  9 .data         000008cc  20000000  08015a0c  00030000  2**2
+                  CONTENTS, ALLOC, LOAD, DATA
+ 10 .bss          0000256c  200008cc  080162d8  000308cc  2**2
+                  ALLOC
+ 11 ._user_heap_stack 00000a00  20002e38  080162d8  00032e38  2**0
+                  ALLOC
+ 12 .ARM.attributes 0000002e  00000000  00000000  000308cc  2**0
+                  CONTENTS, READONLY
+ 13 .comment      00000043  00000000  00000000  000308fa  2**0
+                  CONTENTS, READONLY
+ 14 .iar_vfe_header 00000020  00000000  00000000  00030940  2**2
+                  CONTENTS, READONLY
+ 15 .debug_frame  000003b4  00000000  00000000  00030960  2**2
+                  CONTENTS, READONLY, DEBUGGING, OCTETS
+
+Disassembly of section .text:
+
+08000138 <__do_global_dtors_aux>:
+ 8000138:	b510      	push	{r4, lr}
+ 800013a:	4c05      	ldr	r4, [pc, #20]	; (8000150 <__do_global_dtors_aux+0x18>)
+ 800013c:	7823      	ldrb	r3, [r4, #0]
+ 800013e:	b933      	cbnz	r3, 800014e <__do_global_dtors_aux+0x16>
+ 8000140:	4b04      	ldr	r3, [pc, #16]	; (8000154 <__do_global_dtors_aux+0x1c>)
+ 8000142:	b113      	cbz	r3, 800014a <__do_global_dtors_aux+0x12>
+ 8000144:	4804      	ldr	r0, [pc, #16]	; (8000158 <__do_global_dtors_aux+0x20>)
+ 8000146:	f3af 8000 	nop.w
+ 800014a:	2301      	movs	r3, #1
+ 800014c:	7023      	strb	r3, [r4, #0]
+ 800014e:	bd10      	pop	{r4, pc}
+ 8000150:	200008cc 	.word	0x200008cc
+ 8000154:	00000000 	.word	0x00000000
+ 8000158:	080143e8 	.word	0x080143e8
+
+0800015c <frame_dummy>:
+ 800015c:	b508      	push	{r3, lr}
+ 800015e:	4b03      	ldr	r3, [pc, #12]	; (800016c <frame_dummy+0x10>)
+ 8000160:	b11b      	cbz	r3, 800016a <frame_dummy+0xe>
+ 8000162:	4903      	ldr	r1, [pc, #12]	; (8000170 <frame_dummy+0x14>)
+ 8000164:	4803      	ldr	r0, [pc, #12]	; (8000174 <frame_dummy+0x18>)
+ 8000166:	f3af 8000 	nop.w
+ 800016a:	bd08      	pop	{r3, pc}
+ 800016c:	00000000 	.word	0x00000000
+ 8000170:	200008d0 	.word	0x200008d0
+ 8000174:	080143e8 	.word	0x080143e8
+
+08000178 <cmox_sha1_setDefaultMacLen>:
+ 8000178:	2114      	movs	r1, #20
+ 800017a:	6041      	str	r1, [r0, #4]
+ 800017c:	4770      	bx	lr
+
+0800017e <cmox_sha1_getDefaultMacLen>:
+ 800017e:	2014      	movs	r0, #20
+ 8000180:	4770      	bx	lr
+
+08000182 <cmox_sha1_getBlockLen>:
+ 8000182:	6a40      	ldr	r0, [r0, #36]	; 0x24
+ 8000184:	4770      	bx	lr
+	...
+
+08000188 <CMOX_HMAC_SUPPORT_SHA1>:
+ 8000188:	0179 0800 017f 0800 0183 0800               y...........
+
+08000194 <CMOX_HMAC_SHA1_TABLE>:
+ 8000194:	0199 0800                                   ....
+
+08000198 <cmox_hmac_sha1_constructor>:
+ 8000198:	b510      	push	{r4, lr}
+ 800019a:	4604      	mov	r4, r0
+ 800019c:	f104 0010 	add.w	r0, r4, #16
+ 80001a0:	f000 fc5c 	bl	8000a5c <cmox_sha1_construct>
+ 80001a4:	f8c4 00f8 	str.w	r0, [r4, #248]	; 0xf8
+ 80001a8:	4801      	ldr	r0, [pc, #4]	; (80001b0 <cmox_hmac_sha1_constructor+0x18>)
+ 80001aa:	f8c4 017c 	str.w	r0, [r4, #380]	; 0x17c
+ 80001ae:	bd10      	pop	{r4, pc}
+ 80001b0:	08000188 	.word	0x08000188
+
+080001b4 <cmox_hmac_sha1_compute>:
+ 80001b4:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 80001b6:	b0e6      	sub	sp, #408	; 0x198
+ 80001b8:	4604      	mov	r4, r0
+ 80001ba:	460d      	mov	r5, r1
+ 80001bc:	4616      	mov	r6, r2
+ 80001be:	461f      	mov	r7, r3
+ 80001c0:	490a      	ldr	r1, [pc, #40]	; (80001ec <cmox_hmac_sha1_compute+0x38>)
+ 80001c2:	a806      	add	r0, sp, #24
+ 80001c4:	f000 feca 	bl	8000f5c <cmox_hmac_construct>
+ 80001c8:	9970      	ldr	r1, [sp, #448]	; 0x1c0
+ 80001ca:	9a6f      	ldr	r2, [sp, #444]	; 0x1bc
+ 80001cc:	9105      	str	r1, [sp, #20]
+ 80001ce:	9204      	str	r2, [sp, #16]
+ 80001d0:	9700      	str	r7, [sp, #0]
+ 80001d2:	4633      	mov	r3, r6
+ 80001d4:	996e      	ldr	r1, [sp, #440]	; 0x1b8
+ 80001d6:	9a6d      	ldr	r2, [sp, #436]	; 0x1b4
+ 80001d8:	9103      	str	r1, [sp, #12]
+ 80001da:	9202      	str	r2, [sp, #8]
+ 80001dc:	462a      	mov	r2, r5
+ 80001de:	996c      	ldr	r1, [sp, #432]	; 0x1b0
+ 80001e0:	9101      	str	r1, [sp, #4]
+ 80001e2:	4621      	mov	r1, r4
+ 80001e4:	f000 f860 	bl	80002a8 <cmox_mac_innerCompute>
+ 80001e8:	b067      	add	sp, #412	; 0x19c
+ 80001ea:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 80001ec:	08000194 	.word	0x08000194
+
+080001f0 <cmox_hmac_sha1_verify>:
+ 80001f0:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 80001f2:	b0e6      	sub	sp, #408	; 0x198
+ 80001f4:	4604      	mov	r4, r0
+ 80001f6:	460d      	mov	r5, r1
+ 80001f8:	4616      	mov	r6, r2
+ 80001fa:	461f      	mov	r7, r3
+ 80001fc:	4909      	ldr	r1, [pc, #36]	; (8000224 <cmox_hmac_sha1_verify+0x34>)
+ 80001fe:	a806      	add	r0, sp, #24
+ 8000200:	f000 feac 	bl	8000f5c <cmox_hmac_construct>
+ 8000204:	996f      	ldr	r1, [sp, #444]	; 0x1bc
+ 8000206:	9a6e      	ldr	r2, [sp, #440]	; 0x1b8
+ 8000208:	9104      	str	r1, [sp, #16]
+ 800020a:	9203      	str	r2, [sp, #12]
+ 800020c:	9700      	str	r7, [sp, #0]
+ 800020e:	996d      	ldr	r1, [sp, #436]	; 0x1b4
+ 8000210:	9a6c      	ldr	r2, [sp, #432]	; 0x1b0
+ 8000212:	9102      	str	r1, [sp, #8]
+ 8000214:	9201      	str	r2, [sp, #4]
+ 8000216:	4633      	mov	r3, r6
+ 8000218:	462a      	mov	r2, r5
+ 800021a:	4621      	mov	r1, r4
+ 800021c:	f000 f887 	bl	800032e <cmox_mac_innerVerify>
+ 8000220:	b067      	add	sp, #412	; 0x19c
+ 8000222:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8000224:	08000194 	.word	0x08000194
+
+08000228 <cmox_initialize>:
+ 8000228:	b538      	push	{r3, r4, r5, lr}
+ 800022a:	2800      	cmp	r0, #0
+ 800022c:	bf1c      	itt	ne
+ 800022e:	6801      	ldrne	r1, [r0, #0]
+ 8000230:	2900      	cmpne	r1, #0
+ 8000232:	4a18      	ldr	r2, [pc, #96]	; (8000294 <cmox_initialize+0x6c>)
+ 8000234:	d123      	bne.n	800027e <cmox_initialize+0x56>
+ 8000236:	4b18      	ldr	r3, [pc, #96]	; (8000298 <cmox_initialize+0x70>)
+ 8000238:	681c      	ldr	r4, [r3, #0]
+ 800023a:	f64f 71f0 	movw	r1, #65520	; 0xfff0
+ 800023e:	400c      	ands	r4, r1
+ 8000240:	f24c 2540 	movw	r5, #49728	; 0xc240
+ 8000244:	42ac      	cmp	r4, r5
+ 8000246:	bf1f      	itttt	ne
+ 8000248:	681b      	ldrne	r3, [r3, #0]
+ 800024a:	4019      	andne	r1, r3
+ 800024c:	f24c 2470 	movwne	r4, #49776	; 0xc270
+ 8000250:	42a1      	cmpne	r1, r4
+ 8000252:	d112      	bne.n	800027a <cmox_initialize+0x52>
+ 8000254:	4d11      	ldr	r5, [pc, #68]	; (800029c <cmox_initialize+0x74>)
+ 8000256:	6829      	ldr	r1, [r5, #0]
+ 8000258:	b979      	cbnz	r1, 800027a <cmox_initialize+0x52>
+ 800025a:	4911      	ldr	r1, [pc, #68]	; (80002a0 <cmox_initialize+0x78>)
+ 800025c:	680b      	ldr	r3, [r1, #0]
+ 800025e:	f3c3 030b 	ubfx	r3, r3, #0, #12
+ 8000262:	f5b3 6f8a 	cmp.w	r3, #1104	; 0x450
+ 8000266:	bf1f      	itttt	ne
+ 8000268:	6809      	ldrne	r1, [r1, #0]
+ 800026a:	f3c1 010b 	ubfxne	r1, r1, #0, #12
+ 800026e:	f240 4383 	movwne	r3, #1155	; 0x483
+ 8000272:	4299      	cmpne	r1, r3
+ 8000274:	bf04      	itt	eq
+ 8000276:	2101      	moveq	r1, #1
+ 8000278:	7011      	strbeq	r1, [r2, #0]
+ 800027a:	b928      	cbnz	r0, 8000288 <cmox_initialize+0x60>
+ 800027c:	e005      	b.n	800028a <cmox_initialize+0x62>
+ 800027e:	4b09      	ldr	r3, [pc, #36]	; (80002a4 <cmox_initialize+0x7c>)
+ 8000280:	4299      	cmp	r1, r3
+ 8000282:	bf04      	itt	eq
+ 8000284:	2101      	moveq	r1, #1
+ 8000286:	7011      	strbeq	r1, [r2, #0]
+ 8000288:	6840      	ldr	r0, [r0, #4]
+ 800028a:	e8bd 4032 	ldmia.w	sp!, {r1, r4, r5, lr}
+ 800028e:	f001 be9f 	b.w	8001fd0 <cmox_ll_init>
+ 8000292:	bf00      	nop
+ 8000294:	200008e8 	.word	0x200008e8
+ 8000298:	e000ed00 	.word	0xe000ed00
+ 800029c:	e0042000 	.word	0xe0042000
+ 80002a0:	5c001000 	.word	0x5c001000
+ 80002a4:	48370000 	.word	0x48370000
+
+080002a8 <cmox_mac_innerCompute>:
+ 80002a8:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 80002ac:	4604      	mov	r4, r0
+ 80002ae:	460d      	mov	r5, r1
+ 80002b0:	6821      	ldr	r1, [r4, #0]
+ 80002b2:	4616      	mov	r6, r2
+ 80002b4:	684a      	ldr	r2, [r1, #4]
+ 80002b6:	461f      	mov	r7, r3
+ 80002b8:	4790      	blx	r2
+ 80002ba:	4680      	mov	r8, r0
+ 80002bc:	f5b8 3f40 	cmp.w	r8, #196608	; 0x30000
+ 80002c0:	d12e      	bne.n	8000320 <cmox_mac_innerCompute+0x78>
+ 80002c2:	6822      	ldr	r2, [r4, #0]
+ 80002c4:	990a      	ldr	r1, [sp, #40]	; 0x28
+ 80002c6:	6893      	ldr	r3, [r2, #8]
+ 80002c8:	4620      	mov	r0, r4
+ 80002ca:	4798      	blx	r3
+ 80002cc:	4680      	mov	r8, r0
+ 80002ce:	f5b8 3f40 	cmp.w	r8, #196608	; 0x30000
+ 80002d2:	d125      	bne.n	8000320 <cmox_mac_innerCompute+0x78>
+ 80002d4:	6823      	ldr	r3, [r4, #0]
+ 80002d6:	9a08      	ldr	r2, [sp, #32]
+ 80002d8:	9907      	ldr	r1, [sp, #28]
+ 80002da:	f8d3 c00c 	ldr.w	ip, [r3, #12]
+ 80002de:	4620      	mov	r0, r4
+ 80002e0:	47e0      	blx	ip
+ 80002e2:	4680      	mov	r8, r0
+ 80002e4:	f5b8 3f40 	cmp.w	r8, #196608	; 0x30000
+ 80002e8:	d11a      	bne.n	8000320 <cmox_mac_innerCompute+0x78>
+ 80002ea:	6823      	ldr	r3, [r4, #0]
+ 80002ec:	9a06      	ldr	r2, [sp, #24]
+ 80002ee:	4639      	mov	r1, r7
+ 80002f0:	691f      	ldr	r7, [r3, #16]
+ 80002f2:	4620      	mov	r0, r4
+ 80002f4:	47b8      	blx	r7
+ 80002f6:	4680      	mov	r8, r0
+ 80002f8:	f5b8 3f40 	cmp.w	r8, #196608	; 0x30000
+ 80002fc:	d110      	bne.n	8000320 <cmox_mac_innerCompute+0x78>
+ 80002fe:	6823      	ldr	r3, [r4, #0]
+ 8000300:	4629      	mov	r1, r5
+ 8000302:	695d      	ldr	r5, [r3, #20]
+ 8000304:	4632      	mov	r2, r6
+ 8000306:	4620      	mov	r0, r4
+ 8000308:	47a8      	blx	r5
+ 800030a:	4680      	mov	r8, r0
+ 800030c:	f5b8 3f40 	cmp.w	r8, #196608	; 0x30000
+ 8000310:	d106      	bne.n	8000320 <cmox_mac_innerCompute+0x78>
+ 8000312:	6823      	ldr	r3, [r4, #0]
+ 8000314:	9a0b      	ldr	r2, [sp, #44]	; 0x2c
+ 8000316:	9909      	ldr	r1, [sp, #36]	; 0x24
+ 8000318:	699d      	ldr	r5, [r3, #24]
+ 800031a:	4620      	mov	r0, r4
+ 800031c:	47a8      	blx	r5
+ 800031e:	4680      	mov	r8, r0
+ 8000320:	6821      	ldr	r1, [r4, #0]
+ 8000322:	680a      	ldr	r2, [r1, #0]
+ 8000324:	4620      	mov	r0, r4
+ 8000326:	4790      	blx	r2
+ 8000328:	4640      	mov	r0, r8
+ 800032a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+
+0800032e <cmox_mac_innerVerify>:
+ 800032e:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8000332:	4604      	mov	r4, r0
+ 8000334:	460d      	mov	r5, r1
+ 8000336:	6821      	ldr	r1, [r4, #0]
+ 8000338:	4616      	mov	r6, r2
+ 800033a:	684a      	ldr	r2, [r1, #4]
+ 800033c:	461f      	mov	r7, r3
+ 800033e:	4790      	blx	r2
+ 8000340:	4680      	mov	r8, r0
+ 8000342:	f5b8 3f40 	cmp.w	r8, #196608	; 0x30000
+ 8000346:	d12e      	bne.n	80003a6 <cmox_mac_innerVerify+0x78>
+ 8000348:	6822      	ldr	r2, [r4, #0]
+ 800034a:	990a      	ldr	r1, [sp, #40]	; 0x28
+ 800034c:	6893      	ldr	r3, [r2, #8]
+ 800034e:	4620      	mov	r0, r4
+ 8000350:	4798      	blx	r3
+ 8000352:	4680      	mov	r8, r0
+ 8000354:	f5b8 3f40 	cmp.w	r8, #196608	; 0x30000
+ 8000358:	d125      	bne.n	80003a6 <cmox_mac_innerVerify+0x78>
+ 800035a:	6823      	ldr	r3, [r4, #0]
+ 800035c:	9a08      	ldr	r2, [sp, #32]
+ 800035e:	9907      	ldr	r1, [sp, #28]
+ 8000360:	f8d3 c00c 	ldr.w	ip, [r3, #12]
+ 8000364:	4620      	mov	r0, r4
+ 8000366:	47e0      	blx	ip
+ 8000368:	4680      	mov	r8, r0
+ 800036a:	f5b8 3f40 	cmp.w	r8, #196608	; 0x30000
+ 800036e:	d11a      	bne.n	80003a6 <cmox_mac_innerVerify+0x78>
+ 8000370:	6823      	ldr	r3, [r4, #0]
+ 8000372:	9a06      	ldr	r2, [sp, #24]
+ 8000374:	4639      	mov	r1, r7
+ 8000376:	691f      	ldr	r7, [r3, #16]
+ 8000378:	4620      	mov	r0, r4
+ 800037a:	47b8      	blx	r7
+ 800037c:	4680      	mov	r8, r0
+ 800037e:	f5b8 3f40 	cmp.w	r8, #196608	; 0x30000
+ 8000382:	d110      	bne.n	80003a6 <cmox_mac_innerVerify+0x78>
+ 8000384:	6823      	ldr	r3, [r4, #0]
+ 8000386:	4629      	mov	r1, r5
+ 8000388:	695d      	ldr	r5, [r3, #20]
+ 800038a:	4632      	mov	r2, r6
+ 800038c:	4620      	mov	r0, r4
+ 800038e:	47a8      	blx	r5
+ 8000390:	4680      	mov	r8, r0
+ 8000392:	f5b8 3f40 	cmp.w	r8, #196608	; 0x30000
+ 8000396:	d106      	bne.n	80003a6 <cmox_mac_innerVerify+0x78>
+ 8000398:	6823      	ldr	r3, [r4, #0]
+ 800039a:	9909      	ldr	r1, [sp, #36]	; 0x24
+ 800039c:	69dd      	ldr	r5, [r3, #28]
+ 800039e:	2200      	movs	r2, #0
+ 80003a0:	4620      	mov	r0, r4
+ 80003a2:	47a8      	blx	r5
+ 80003a4:	4680      	mov	r8, r0
+ 80003a6:	6821      	ldr	r1, [r4, #0]
+ 80003a8:	680a      	ldr	r2, [r1, #0]
+ 80003aa:	4620      	mov	r0, r4
+ 80003ac:	4790      	blx	r2
+ 80003ae:	4640      	mov	r0, r8
+ 80003b0:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+
+080003b4 <cmox_mac_setCustomData_empty>:
+ 80003b4:	f44f 3040 	mov.w	r0, #196608	; 0x30000
+ 80003b8:	4770      	bx	lr
+	...
+
+080003bc <cmox_mac_compute>:
+ 80003bc:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 80003be:	460c      	mov	r4, r1
+ 80003c0:	b085      	sub	sp, #20
+ 80003c2:	4611      	mov	r1, r2
+ 80003c4:	2800      	cmp	r0, #0
+ 80003c6:	461a      	mov	r2, r3
+ 80003c8:	bf1c      	itt	ne
+ 80003ca:	6805      	ldrne	r5, [r0, #0]
+ 80003cc:	2d00      	cmpne	r5, #0
+ 80003ce:	4b0b      	ldr	r3, [pc, #44]	; (80003fc <cmox_mac_compute+0x40>)
+ 80003d0:	d011      	beq.n	80003f6 <cmox_mac_compute+0x3a>
+ 80003d2:	b182      	cbz	r2, 80003f6 <cmox_mac_compute+0x3a>
+ 80003d4:	b904      	cbnz	r4, 80003d8 <cmox_mac_compute+0x1c>
+ 80003d6:	b971      	cbnz	r1, 80003f6 <cmox_mac_compute+0x3a>
+ 80003d8:	980d      	ldr	r0, [sp, #52]	; 0x34
+ 80003da:	b160      	cbz	r0, 80003f6 <cmox_mac_compute+0x3a>
+ 80003dc:	9e0f      	ldr	r6, [sp, #60]	; 0x3c
+ 80003de:	9f0e      	ldr	r7, [sp, #56]	; 0x38
+ 80003e0:	9b0a      	ldr	r3, [sp, #40]	; 0x28
+ 80003e2:	9002      	str	r0, [sp, #8]
+ 80003e4:	9604      	str	r6, [sp, #16]
+ 80003e6:	9703      	str	r7, [sp, #12]
+ 80003e8:	980b      	ldr	r0, [sp, #44]	; 0x2c
+ 80003ea:	9e0c      	ldr	r6, [sp, #48]	; 0x30
+ 80003ec:	9000      	str	r0, [sp, #0]
+ 80003ee:	9601      	str	r6, [sp, #4]
+ 80003f0:	4620      	mov	r0, r4
+ 80003f2:	47a8      	blx	r5
+ 80003f4:	4603      	mov	r3, r0
+ 80003f6:	4618      	mov	r0, r3
+ 80003f8:	b005      	add	sp, #20
+ 80003fa:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 80003fc:	00030002 	.word	0x00030002
+
+08000400 <cmox_sha1_transform>:
+ 8000400:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8000404:	4606      	mov	r6, r0
+ 8000406:	b0d0      	sub	sp, #320	; 0x140
+ 8000408:	6808      	ldr	r0, [r1, #0]
+ 800040a:	6df5      	ldr	r5, [r6, #92]	; 0x5c
+ 800040c:	f8d6 e060 	ldr.w	lr, [r6, #96]	; 0x60
+ 8000410:	6e72      	ldr	r2, [r6, #100]	; 0x64
+ 8000412:	6eb7      	ldr	r7, [r6, #104]	; 0x68
+ 8000414:	6ef3      	ldr	r3, [r6, #108]	; 0x6c
+ 8000416:	ba00      	rev	r0, r0
+ 8000418:	9000      	str	r0, [sp, #0]
+ 800041a:	466c      	mov	r4, sp
+ 800041c:	6848      	ldr	r0, [r1, #4]
+ 800041e:	ba00      	rev	r0, r0
+ 8000420:	6060      	str	r0, [r4, #4]
+ 8000422:	f10d 0840 	add.w	r8, sp, #64	; 0x40
+ 8000426:	6888      	ldr	r0, [r1, #8]
+ 8000428:	ba00      	rev	r0, r0
+ 800042a:	60a0      	str	r0, [r4, #8]
+ 800042c:	68c8      	ldr	r0, [r1, #12]
+ 800042e:	ba00      	rev	r0, r0
+ 8000430:	60e0      	str	r0, [r4, #12]
+ 8000432:	6908      	ldr	r0, [r1, #16]
+ 8000434:	ba00      	rev	r0, r0
+ 8000436:	6120      	str	r0, [r4, #16]
+ 8000438:	6948      	ldr	r0, [r1, #20]
+ 800043a:	ba00      	rev	r0, r0
+ 800043c:	6160      	str	r0, [r4, #20]
+ 800043e:	6988      	ldr	r0, [r1, #24]
+ 8000440:	ba00      	rev	r0, r0
+ 8000442:	61a0      	str	r0, [r4, #24]
+ 8000444:	69c8      	ldr	r0, [r1, #28]
+ 8000446:	ba00      	rev	r0, r0
+ 8000448:	61e0      	str	r0, [r4, #28]
+ 800044a:	6a08      	ldr	r0, [r1, #32]
+ 800044c:	ba00      	rev	r0, r0
+ 800044e:	6220      	str	r0, [r4, #32]
+ 8000450:	6a48      	ldr	r0, [r1, #36]	; 0x24
+ 8000452:	ba00      	rev	r0, r0
+ 8000454:	6260      	str	r0, [r4, #36]	; 0x24
+ 8000456:	6a88      	ldr	r0, [r1, #40]	; 0x28
+ 8000458:	ba00      	rev	r0, r0
+ 800045a:	62a0      	str	r0, [r4, #40]	; 0x28
+ 800045c:	6ac8      	ldr	r0, [r1, #44]	; 0x2c
+ 800045e:	ba00      	rev	r0, r0
+ 8000460:	62e0      	str	r0, [r4, #44]	; 0x2c
+ 8000462:	6b08      	ldr	r0, [r1, #48]	; 0x30
+ 8000464:	ba00      	rev	r0, r0
+ 8000466:	6320      	str	r0, [r4, #48]	; 0x30
+ 8000468:	6b48      	ldr	r0, [r1, #52]	; 0x34
+ 800046a:	ba00      	rev	r0, r0
+ 800046c:	6360      	str	r0, [r4, #52]	; 0x34
+ 800046e:	6b88      	ldr	r0, [r1, #56]	; 0x38
+ 8000470:	ba00      	rev	r0, r0
+ 8000472:	63a0      	str	r0, [r4, #56]	; 0x38
+ 8000474:	6bc8      	ldr	r0, [r1, #60]	; 0x3c
+ 8000476:	ba00      	rev	r0, r0
+ 8000478:	63e0      	str	r0, [r4, #60]	; 0x3c
+ 800047a:	2040      	movs	r0, #64	; 0x40
+ 800047c:	f858 1c0c 	ldr.w	r1, [r8, #-12]
+ 8000480:	f858 cc20 	ldr.w	ip, [r8, #-32]
+ 8000484:	f858 ac38 	ldr.w	sl, [r8, #-56]
+ 8000488:	ea8c 0101 	eor.w	r1, ip, r1
+ 800048c:	f858 cc40 	ldr.w	ip, [r8, #-64]
+ 8000490:	ea8a 0101 	eor.w	r1, sl, r1
+ 8000494:	ea8c 0901 	eor.w	r9, ip, r1
+ 8000498:	ea4f 79f9 	mov.w	r9, r9, ror #31
+ 800049c:	1e40      	subs	r0, r0, #1
+ 800049e:	f848 9b04 	str.w	r9, [r8], #4
+ 80004a2:	d1eb      	bne.n	800047c <cmox_sha1_transform+0x7c>
+ 80004a4:	ea87 0002 	eor.w	r0, r7, r2
+ 80004a8:	ea00 000e 	and.w	r0, r0, lr
+ 80004ac:	4078      	eors	r0, r7
+ 80004ae:	eb10 61f5 	adds.w	r1, r0, r5, ror #27
+ 80004b2:	9800      	ldr	r0, [sp, #0]
+ 80004b4:	f8df c424 	ldr.w	ip, [pc, #1060]	; 80008dc <cmox_sha1_transform+0x4dc>
+ 80004b8:	1841      	adds	r1, r0, r1
+ 80004ba:	4461      	add	r1, ip
+ 80004bc:	18c8      	adds	r0, r1, r3
+ 80004be:	ea82 03be 	eor.w	r3, r2, lr, ror #2
+ 80004c2:	402b      	ands	r3, r5
+ 80004c4:	ea4f 61f0 	mov.w	r1, r0, ror #27
+ 80004c8:	4053      	eors	r3, r2
+ 80004ca:	1859      	adds	r1, r3, r1
+ 80004cc:	6863      	ldr	r3, [r4, #4]
+ 80004ce:	1859      	adds	r1, r3, r1
+ 80004d0:	4461      	add	r1, ip
+ 80004d2:	19cf      	adds	r7, r1, r7
+ 80004d4:	ea4f 03b5 	mov.w	r3, r5, ror #2
+ 80004d8:	ea83 01be 	eor.w	r1, r3, lr, ror #2
+ 80004dc:	4001      	ands	r1, r0
+ 80004de:	ea81 01be 	eor.w	r1, r1, lr, ror #2
+ 80004e2:	eb11 65f7 	adds.w	r5, r1, r7, ror #27
+ 80004e6:	68a1      	ldr	r1, [r4, #8]
+ 80004e8:	194d      	adds	r5, r1, r5
+ 80004ea:	4465      	add	r5, ip
+ 80004ec:	18a9      	adds	r1, r5, r2
+ 80004ee:	ea83 02b0 	eor.w	r2, r3, r0, ror #2
+ 80004f2:	403a      	ands	r2, r7
+ 80004f4:	ea4f 65f1 	mov.w	r5, r1, ror #27
+ 80004f8:	405a      	eors	r2, r3
+ 80004fa:	1955      	adds	r5, r2, r5
+ 80004fc:	68e2      	ldr	r2, [r4, #12]
+ 80004fe:	1955      	adds	r5, r2, r5
+ 8000500:	ea4f 02b7 	mov.w	r2, r7, ror #2
+ 8000504:	ea82 07b0 	eor.w	r7, r2, r0, ror #2
+ 8000508:	4465      	add	r5, ip
+ 800050a:	400f      	ands	r7, r1
+ 800050c:	eb05 0ebe 	add.w	lr, r5, lr, ror #2
+ 8000510:	ea97 07b0 	eors.w	r7, r7, r0, ror #2
+ 8000514:	eb17 65fe 	adds.w	r5, r7, lr, ror #27
+ 8000518:	6927      	ldr	r7, [r4, #16]
+ 800051a:	197d      	adds	r5, r7, r5
+ 800051c:	ea4f 07b1 	mov.w	r7, r1, ror #2
+ 8000520:	ea82 0107 	eor.w	r1, r2, r7
+ 8000524:	4465      	add	r5, ip
+ 8000526:	ea01 010e 	and.w	r1, r1, lr
+ 800052a:	18eb      	adds	r3, r5, r3
+ 800052c:	4051      	eors	r1, r2
+ 800052e:	eb11 65f3 	adds.w	r5, r1, r3, ror #27
+ 8000532:	6961      	ldr	r1, [r4, #20]
+ 8000534:	194d      	adds	r5, r1, r5
+ 8000536:	ea4f 01be 	mov.w	r1, lr, ror #2
+ 800053a:	ea87 0e01 	eor.w	lr, r7, r1
+ 800053e:	4465      	add	r5, ip
+ 8000540:	ea0e 0e03 	and.w	lr, lr, r3
+ 8000544:	eb15 00b0 	adds.w	r0, r5, r0, ror #2
+ 8000548:	ea8e 0e07 	eor.w	lr, lr, r7
+ 800054c:	eb0e 65f0 	add.w	r5, lr, r0, ror #27
+ 8000550:	f8d4 e018 	ldr.w	lr, [r4, #24]
+ 8000554:	4475      	add	r5, lr
+ 8000556:	4465      	add	r5, ip
+ 8000558:	18aa      	adds	r2, r5, r2
+ 800055a:	ea81 05b3 	eor.w	r5, r1, r3, ror #2
+ 800055e:	4005      	ands	r5, r0
+ 8000560:	ea4f 6ef2 	mov.w	lr, r2, ror #27
+ 8000564:	404d      	eors	r5, r1
+ 8000566:	44ae      	add	lr, r5
+ 8000568:	69e5      	ldr	r5, [r4, #28]
+ 800056a:	44ae      	add	lr, r5
+ 800056c:	44e6      	add	lr, ip
+ 800056e:	4477      	add	r7, lr
+ 8000570:	ea4f 00b0 	mov.w	r0, r0, ror #2
+ 8000574:	ea80 0eb3 	eor.w	lr, r0, r3, ror #2
+ 8000578:	ea0e 0e02 	and.w	lr, lr, r2
+ 800057c:	ea8e 0eb3 	eor.w	lr, lr, r3, ror #2
+ 8000580:	eb0e 65f7 	add.w	r5, lr, r7, ror #27
+ 8000584:	f8d4 e020 	ldr.w	lr, [r4, #32]
+ 8000588:	4475      	add	r5, lr
+ 800058a:	4465      	add	r5, ip
+ 800058c:	1869      	adds	r1, r5, r1
+ 800058e:	ea80 05b2 	eor.w	r5, r0, r2, ror #2
+ 8000592:	403d      	ands	r5, r7
+ 8000594:	ea4f 6ef1 	mov.w	lr, r1, ror #27
+ 8000598:	4045      	eors	r5, r0
+ 800059a:	44ae      	add	lr, r5
+ 800059c:	6a65      	ldr	r5, [r4, #36]	; 0x24
+ 800059e:	44ae      	add	lr, r5
+ 80005a0:	44e6      	add	lr, ip
+ 80005a2:	eb0e 03b3 	add.w	r3, lr, r3, ror #2
+ 80005a6:	ea4f 07b7 	mov.w	r7, r7, ror #2
+ 80005aa:	ea87 0eb2 	eor.w	lr, r7, r2, ror #2
+ 80005ae:	ea0e 0e01 	and.w	lr, lr, r1
+ 80005b2:	ea8e 0eb2 	eor.w	lr, lr, r2, ror #2
+ 80005b6:	eb0e 65f3 	add.w	r5, lr, r3, ror #27
+ 80005ba:	f8d4 e028 	ldr.w	lr, [r4, #40]	; 0x28
+ 80005be:	4475      	add	r5, lr
+ 80005c0:	4465      	add	r5, ip
+ 80005c2:	1828      	adds	r0, r5, r0
+ 80005c4:	ea87 05b1 	eor.w	r5, r7, r1, ror #2
+ 80005c8:	401d      	ands	r5, r3
+ 80005ca:	ea4f 6ef0 	mov.w	lr, r0, ror #27
+ 80005ce:	407d      	eors	r5, r7
+ 80005d0:	44ae      	add	lr, r5
+ 80005d2:	6ae5      	ldr	r5, [r4, #44]	; 0x2c
+ 80005d4:	44ae      	add	lr, r5
+ 80005d6:	44e6      	add	lr, ip
+ 80005d8:	eb0e 02b2 	add.w	r2, lr, r2, ror #2
+ 80005dc:	ea4f 03b3 	mov.w	r3, r3, ror #2
+ 80005e0:	ea83 0eb1 	eor.w	lr, r3, r1, ror #2
+ 80005e4:	ea0e 0e00 	and.w	lr, lr, r0
+ 80005e8:	ea8e 0eb1 	eor.w	lr, lr, r1, ror #2
+ 80005ec:	eb0e 65f2 	add.w	r5, lr, r2, ror #27
+ 80005f0:	f8d4 e030 	ldr.w	lr, [r4, #48]	; 0x30
+ 80005f4:	4475      	add	r5, lr
+ 80005f6:	4465      	add	r5, ip
+ 80005f8:	19ef      	adds	r7, r5, r7
+ 80005fa:	ea83 05b0 	eor.w	r5, r3, r0, ror #2
+ 80005fe:	4015      	ands	r5, r2
+ 8000600:	ea4f 6ef7 	mov.w	lr, r7, ror #27
+ 8000604:	405d      	eors	r5, r3
+ 8000606:	44ae      	add	lr, r5
+ 8000608:	6b65      	ldr	r5, [r4, #52]	; 0x34
+ 800060a:	44ae      	add	lr, r5
+ 800060c:	44e6      	add	lr, ip
+ 800060e:	eb0e 01b1 	add.w	r1, lr, r1, ror #2
+ 8000612:	ea4f 02b2 	mov.w	r2, r2, ror #2
+ 8000616:	ea82 0eb0 	eor.w	lr, r2, r0, ror #2
+ 800061a:	ea0e 0e07 	and.w	lr, lr, r7
+ 800061e:	ea8e 0eb0 	eor.w	lr, lr, r0, ror #2
+ 8000622:	eb0e 65f1 	add.w	r5, lr, r1, ror #27
+ 8000626:	f8d4 e038 	ldr.w	lr, [r4, #56]	; 0x38
+ 800062a:	4475      	add	r5, lr
+ 800062c:	4465      	add	r5, ip
+ 800062e:	18eb      	adds	r3, r5, r3
+ 8000630:	ea82 05b7 	eor.w	r5, r2, r7, ror #2
+ 8000634:	400d      	ands	r5, r1
+ 8000636:	ea4f 6ef3 	mov.w	lr, r3, ror #27
+ 800063a:	4055      	eors	r5, r2
+ 800063c:	44ae      	add	lr, r5
+ 800063e:	6be5      	ldr	r5, [r4, #60]	; 0x3c
+ 8000640:	44ae      	add	lr, r5
+ 8000642:	44e6      	add	lr, ip
+ 8000644:	eb0e 00b0 	add.w	r0, lr, r0, ror #2
+ 8000648:	ea4f 01b1 	mov.w	r1, r1, ror #2
+ 800064c:	ea81 0eb7 	eor.w	lr, r1, r7, ror #2
+ 8000650:	ea0e 0e03 	and.w	lr, lr, r3
+ 8000654:	ea8e 0eb7 	eor.w	lr, lr, r7, ror #2
+ 8000658:	eb0e 65f0 	add.w	r5, lr, r0, ror #27
+ 800065c:	f8d4 e040 	ldr.w	lr, [r4, #64]	; 0x40
+ 8000660:	4475      	add	r5, lr
+ 8000662:	4465      	add	r5, ip
+ 8000664:	ea81 0eb3 	eor.w	lr, r1, r3, ror #2
+ 8000668:	18aa      	adds	r2, r5, r2
+ 800066a:	ea0e 0e00 	and.w	lr, lr, r0
+ 800066e:	ea4f 65f2 	mov.w	r5, r2, ror #27
+ 8000672:	ea8e 0e01 	eor.w	lr, lr, r1
+ 8000676:	4475      	add	r5, lr
+ 8000678:	f8dd e044 	ldr.w	lr, [sp, #68]	; 0x44
+ 800067c:	ea4f 00b0 	mov.w	r0, r0, ror #2
+ 8000680:	4475      	add	r5, lr
+ 8000682:	ea80 0eb3 	eor.w	lr, r0, r3, ror #2
+ 8000686:	4465      	add	r5, ip
+ 8000688:	ea0e 0e02 	and.w	lr, lr, r2
+ 800068c:	eb15 07b7 	adds.w	r7, r5, r7, ror #2
+ 8000690:	ea8e 0eb3 	eor.w	lr, lr, r3, ror #2
+ 8000694:	eb0e 65f7 	add.w	r5, lr, r7, ror #27
+ 8000698:	f8dd e048 	ldr.w	lr, [sp, #72]	; 0x48
+ 800069c:	ea4f 02b2 	mov.w	r2, r2, ror #2
+ 80006a0:	4475      	add	r5, lr
+ 80006a2:	ea80 0e02 	eor.w	lr, r0, r2
+ 80006a6:	4465      	add	r5, ip
+ 80006a8:	ea0e 0e07 	and.w	lr, lr, r7
+ 80006ac:	1869      	adds	r1, r5, r1
+ 80006ae:	ea8e 0e00 	eor.w	lr, lr, r0
+ 80006b2:	eb0e 65f1 	add.w	r5, lr, r1, ror #27
+ 80006b6:	f8dd e04c 	ldr.w	lr, [sp, #76]	; 0x4c
+ 80006ba:	4475      	add	r5, lr
+ 80006bc:	4465      	add	r5, ip
+ 80006be:	eb05 03b3 	add.w	r3, r5, r3, ror #2
+ 80006c2:	ea4f 0eb7 	mov.w	lr, r7, ror #2
+ 80006c6:	2714      	movs	r7, #20
+ 80006c8:	f10d 0c50 	add.w	ip, sp, #80	; 0x50
+ 80006cc:	f8df 5210 	ldr.w	r5, [pc, #528]	; 80008e0 <cmox_sha1_transform+0x4e0>
+ 80006d0:	ea8e 0b01 	eor.w	fp, lr, r1
+ 80006d4:	ea82 0b0b 	eor.w	fp, r2, fp
+ 80006d8:	eb0b 6af3 	add.w	sl, fp, r3, ror #27
+ 80006dc:	f85c bb04 	ldr.w	fp, [ip], #4
+ 80006e0:	44da      	add	sl, fp
+ 80006e2:	44aa      	add	sl, r5
+ 80006e4:	4450      	add	r0, sl
+ 80006e6:	ea83 0bb1 	eor.w	fp, r3, r1, ror #2
+ 80006ea:	ea4f 6af0 	mov.w	sl, r0, ror #27
+ 80006ee:	ea8e 0b0b 	eor.w	fp, lr, fp
+ 80006f2:	44da      	add	sl, fp
+ 80006f4:	f85c bb04 	ldr.w	fp, [ip], #4
+ 80006f8:	44da      	add	sl, fp
+ 80006fa:	44aa      	add	sl, r5
+ 80006fc:	4452      	add	r2, sl
+ 80006fe:	ea80 0bb3 	eor.w	fp, r0, r3, ror #2
+ 8000702:	ea4f 6af2 	mov.w	sl, r2, ror #27
+ 8000706:	ea8b 0bb1 	eor.w	fp, fp, r1, ror #2
+ 800070a:	44da      	add	sl, fp
+ 800070c:	f85c bb04 	ldr.w	fp, [ip], #4
+ 8000710:	44da      	add	sl, fp
+ 8000712:	ea4f 00b0 	mov.w	r0, r0, ror #2
+ 8000716:	44aa      	add	sl, r5
+ 8000718:	ea80 0b02 	eor.w	fp, r0, r2
+ 800071c:	44d6      	add	lr, sl
+ 800071e:	ea8b 0bb3 	eor.w	fp, fp, r3, ror #2
+ 8000722:	eb0b 6afe 	add.w	sl, fp, lr, ror #27
+ 8000726:	f85c bb04 	ldr.w	fp, [ip], #4
+ 800072a:	44da      	add	sl, fp
+ 800072c:	ea4f 02b2 	mov.w	r2, r2, ror #2
+ 8000730:	44aa      	add	sl, r5
+ 8000732:	ea82 0b0e 	eor.w	fp, r2, lr
+ 8000736:	eb0a 01b1 	add.w	r1, sl, r1, ror #2
+ 800073a:	ea80 0b0b 	eor.w	fp, r0, fp
+ 800073e:	eb0b 6af1 	add.w	sl, fp, r1, ror #27
+ 8000742:	f85c bb04 	ldr.w	fp, [ip], #4
+ 8000746:	44da      	add	sl, fp
+ 8000748:	1d7f      	adds	r7, r7, #5
+ 800074a:	44aa      	add	sl, r5
+ 800074c:	2f28      	cmp	r7, #40	; 0x28
+ 800074e:	eb0a 03b3 	add.w	r3, sl, r3, ror #2
+ 8000752:	ea4f 0ebe 	mov.w	lr, lr, ror #2
+ 8000756:	d3bb      	bcc.n	80006d0 <cmox_sha1_transform+0x2d0>
+ 8000758:	2f3c      	cmp	r7, #60	; 0x3c
+ 800075a:	d361      	bcc.n	8000820 <cmox_sha1_transform+0x420>
+ 800075c:	2f50      	cmp	r7, #80	; 0x50
+ 800075e:	d24d      	bcs.n	80007fc <cmox_sha1_transform+0x3fc>
+ 8000760:	eb04 0c87 	add.w	ip, r4, r7, lsl #2
+ 8000764:	f1c7 0754 	rsb	r7, r7, #84	; 0x54
+ 8000768:	4c5e      	ldr	r4, [pc, #376]	; (80008e4 <cmox_sha1_transform+0x4e4>)
+ 800076a:	fba7 a504 	umull	sl, r5, r7, r4
+ 800076e:	4604      	mov	r4, r0
+ 8000770:	4f5d      	ldr	r7, [pc, #372]	; (80008e8 <cmox_sha1_transform+0x4e8>)
+ 8000772:	08a8      	lsrs	r0, r5, #2
+ 8000774:	ea8e 0a01 	eor.w	sl, lr, r1
+ 8000778:	ea82 0a0a 	eor.w	sl, r2, sl
+ 800077c:	f85c bb04 	ldr.w	fp, [ip], #4
+ 8000780:	eb0a 65f3 	add.w	r5, sl, r3, ror #27
+ 8000784:	445d      	add	r5, fp
+ 8000786:	197d      	adds	r5, r7, r5
+ 8000788:	192c      	adds	r4, r5, r4
+ 800078a:	ea83 0ab1 	eor.w	sl, r3, r1, ror #2
+ 800078e:	ea4f 65f4 	mov.w	r5, r4, ror #27
+ 8000792:	ea8e 0a0a 	eor.w	sl, lr, sl
+ 8000796:	4455      	add	r5, sl
+ 8000798:	f85c ab04 	ldr.w	sl, [ip], #4
+ 800079c:	f85c bb04 	ldr.w	fp, [ip], #4
+ 80007a0:	4455      	add	r5, sl
+ 80007a2:	197d      	adds	r5, r7, r5
+ 80007a4:	18aa      	adds	r2, r5, r2
+ 80007a6:	ea84 0ab3 	eor.w	sl, r4, r3, ror #2
+ 80007aa:	ea4f 65f2 	mov.w	r5, r2, ror #27
+ 80007ae:	ea8a 0ab1 	eor.w	sl, sl, r1, ror #2
+ 80007b2:	4455      	add	r5, sl
+ 80007b4:	445d      	add	r5, fp
+ 80007b6:	ea4f 04b4 	mov.w	r4, r4, ror #2
+ 80007ba:	197d      	adds	r5, r7, r5
+ 80007bc:	ea84 0a02 	eor.w	sl, r4, r2
+ 80007c0:	44ae      	add	lr, r5
+ 80007c2:	ea8a 0ab3 	eor.w	sl, sl, r3, ror #2
+ 80007c6:	eb0a 65fe 	add.w	r5, sl, lr, ror #27
+ 80007ca:	f85c ab04 	ldr.w	sl, [ip], #4
+ 80007ce:	4455      	add	r5, sl
+ 80007d0:	ea4f 02b2 	mov.w	r2, r2, ror #2
+ 80007d4:	197d      	adds	r5, r7, r5
+ 80007d6:	ea82 0a0e 	eor.w	sl, r2, lr
+ 80007da:	eb15 01b1 	adds.w	r1, r5, r1, ror #2
+ 80007de:	ea84 0a0a 	eor.w	sl, r4, sl
+ 80007e2:	f85c bb04 	ldr.w	fp, [ip], #4
+ 80007e6:	eb0a 65f1 	add.w	r5, sl, r1, ror #27
+ 80007ea:	445d      	add	r5, fp
+ 80007ec:	197d      	adds	r5, r7, r5
+ 80007ee:	eb15 03b3 	adds.w	r3, r5, r3, ror #2
+ 80007f2:	1e40      	subs	r0, r0, #1
+ 80007f4:	ea4f 0ebe 	mov.w	lr, lr, ror #2
+ 80007f8:	d1bc      	bne.n	8000774 <cmox_sha1_transform+0x374>
+ 80007fa:	4620      	mov	r0, r4
+ 80007fc:	6df4      	ldr	r4, [r6, #92]	; 0x5c
+ 80007fe:	191b      	adds	r3, r3, r4
+ 8000800:	65f3      	str	r3, [r6, #92]	; 0x5c
+ 8000802:	6e33      	ldr	r3, [r6, #96]	; 0x60
+ 8000804:	18c9      	adds	r1, r1, r3
+ 8000806:	6631      	str	r1, [r6, #96]	; 0x60
+ 8000808:	6e71      	ldr	r1, [r6, #100]	; 0x64
+ 800080a:	4471      	add	r1, lr
+ 800080c:	6671      	str	r1, [r6, #100]	; 0x64
+ 800080e:	6eb3      	ldr	r3, [r6, #104]	; 0x68
+ 8000810:	18d2      	adds	r2, r2, r3
+ 8000812:	66b2      	str	r2, [r6, #104]	; 0x68
+ 8000814:	6ef1      	ldr	r1, [r6, #108]	; 0x6c
+ 8000816:	1840      	adds	r0, r0, r1
+ 8000818:	66f0      	str	r0, [r6, #108]	; 0x6c
+ 800081a:	b050      	add	sp, #320	; 0x140
+ 800081c:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 8000820:	ea4e 0b01 	orr.w	fp, lr, r1
+ 8000824:	ea0e 0a01 	and.w	sl, lr, r1
+ 8000828:	ea0b 0b02 	and.w	fp, fp, r2
+ 800082c:	ea4b 0a0a 	orr.w	sl, fp, sl
+ 8000830:	eb0a 65f3 	add.w	r5, sl, r3, ror #27
+ 8000834:	f854 a027 	ldr.w	sl, [r4, r7, lsl #2]
+ 8000838:	f8df c0b0 	ldr.w	ip, [pc, #176]	; 80008ec <cmox_sha1_transform+0x4ec>
+ 800083c:	4455      	add	r5, sl
+ 800083e:	ea43 0bb1 	orr.w	fp, r3, r1, ror #2
+ 8000842:	4465      	add	r5, ip
+ 8000844:	ea03 0ab1 	and.w	sl, r3, r1, ror #2
+ 8000848:	ea0b 0b0e 	and.w	fp, fp, lr
+ 800084c:	1828      	adds	r0, r5, r0
+ 800084e:	ea4b 0a0a 	orr.w	sl, fp, sl
+ 8000852:	1c7f      	adds	r7, r7, #1
+ 8000854:	eb0a 65f0 	add.w	r5, sl, r0, ror #27
+ 8000858:	f854 a027 	ldr.w	sl, [r4, r7, lsl #2]
+ 800085c:	4455      	add	r5, sl
+ 800085e:	ea40 0bb3 	orr.w	fp, r0, r3, ror #2
+ 8000862:	4465      	add	r5, ip
+ 8000864:	ea00 0ab3 	and.w	sl, r0, r3, ror #2
+ 8000868:	ea0b 0bb1 	and.w	fp, fp, r1, ror #2
+ 800086c:	18aa      	adds	r2, r5, r2
+ 800086e:	ea4b 0a0a 	orr.w	sl, fp, sl
+ 8000872:	1c7f      	adds	r7, r7, #1
+ 8000874:	eb0a 65f2 	add.w	r5, sl, r2, ror #27
+ 8000878:	f854 a027 	ldr.w	sl, [r4, r7, lsl #2]
+ 800087c:	4455      	add	r5, sl
+ 800087e:	ea4f 00b0 	mov.w	r0, r0, ror #2
+ 8000882:	ea40 0b02 	orr.w	fp, r0, r2
+ 8000886:	4465      	add	r5, ip
+ 8000888:	ea00 0a02 	and.w	sl, r0, r2
+ 800088c:	ea0b 0bb3 	and.w	fp, fp, r3, ror #2
+ 8000890:	44ae      	add	lr, r5
+ 8000892:	ea4b 0a0a 	orr.w	sl, fp, sl
+ 8000896:	1c7f      	adds	r7, r7, #1
+ 8000898:	eb0a 65fe 	add.w	r5, sl, lr, ror #27
+ 800089c:	f854 a027 	ldr.w	sl, [r4, r7, lsl #2]
+ 80008a0:	4455      	add	r5, sl
+ 80008a2:	ea4f 02b2 	mov.w	r2, r2, ror #2
+ 80008a6:	ea42 0b0e 	orr.w	fp, r2, lr
+ 80008aa:	4465      	add	r5, ip
+ 80008ac:	ea02 0a0e 	and.w	sl, r2, lr
+ 80008b0:	ea0b 0b00 	and.w	fp, fp, r0
+ 80008b4:	eb15 01b1 	adds.w	r1, r5, r1, ror #2
+ 80008b8:	ea4b 0a0a 	orr.w	sl, fp, sl
+ 80008bc:	1c7f      	adds	r7, r7, #1
+ 80008be:	eb0a 65f1 	add.w	r5, sl, r1, ror #27
+ 80008c2:	f854 a027 	ldr.w	sl, [r4, r7, lsl #2]
+ 80008c6:	4455      	add	r5, sl
+ 80008c8:	1c7f      	adds	r7, r7, #1
+ 80008ca:	4465      	add	r5, ip
+ 80008cc:	2f3c      	cmp	r7, #60	; 0x3c
+ 80008ce:	eb05 03b3 	add.w	r3, r5, r3, ror #2
+ 80008d2:	ea4f 0ebe 	mov.w	lr, lr, ror #2
+ 80008d6:	d3a3      	bcc.n	8000820 <cmox_sha1_transform+0x420>
+ 80008d8:	e740      	b.n	800075c <cmox_sha1_transform+0x35c>
+ 80008da:	bf00      	nop
+ 80008dc:	5a827999 	.word	0x5a827999
+ 80008e0:	6ed9eba1 	.word	0x6ed9eba1
+ 80008e4:	cccccccd 	.word	0xcccccccd
+ 80008e8:	ca62c1d6 	.word	0xca62c1d6
+ 80008ec:	8f1bbcdc 	.word	0x8f1bbcdc
+
+080008f0 <cmox_sha1_cleanup>:
+ 80008f0:	b500      	push	{lr}
+ 80008f2:	b081      	sub	sp, #4
+ 80008f4:	6801      	ldr	r1, [r0, #0]
+ 80008f6:	4a07      	ldr	r2, [pc, #28]	; (8000914 <cmox_sha1_cleanup+0x24>)
+ 80008f8:	4291      	cmp	r1, r2
+ 80008fa:	d100      	bne.n	80008fe <cmox_sha1_cleanup+0xe>
+ 80008fc:	b910      	cbnz	r0, 8000904 <cmox_sha1_cleanup+0x14>
+ 80008fe:	4806      	ldr	r0, [pc, #24]	; (8000918 <cmox_sha1_cleanup+0x28>)
+ 8000900:	b001      	add	sp, #4
+ 8000902:	bd00      	pop	{pc}
+ 8000904:	217c      	movs	r1, #124	; 0x7c
+ 8000906:	f013 fcd9 	bl	80142bc <__aeabi_memclr>
+ 800090a:	f44f 3000 	mov.w	r0, #131072	; 0x20000
+ 800090e:	b001      	add	sp, #4
+ 8000910:	bd00      	pop	{pc}
+ 8000912:	bf00      	nop
+ 8000914:	080009fc 	.word	0x080009fc
+ 8000918:	00020003 	.word	0x00020003
+
+0800091c <cmox_sha1_init>:
+ 800091c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8000920:	4a0b      	ldr	r2, [pc, #44]	; (8000950 <cmox_sha1_init+0x34>)
+ 8000922:	e892 51f8 	ldmia.w	r2, {r3, r4, r5, r6, r7, r8, ip, lr}
+ 8000926:	b088      	sub	sp, #32
+ 8000928:	4669      	mov	r1, sp
+ 800092a:	e881 51f8 	stmia.w	r1, {r3, r4, r5, r6, r7, r8, ip, lr}
+ 800092e:	6802      	ldr	r2, [r0, #0]
+ 8000930:	4b08      	ldr	r3, [pc, #32]	; (8000954 <cmox_sha1_init+0x38>)
+ 8000932:	429a      	cmp	r2, r3
+ 8000934:	d100      	bne.n	8000938 <cmox_sha1_init+0x1c>
+ 8000936:	b918      	cbnz	r0, 8000940 <cmox_sha1_init+0x24>
+ 8000938:	4807      	ldr	r0, [pc, #28]	; (8000958 <cmox_sha1_init+0x3c>)
+ 800093a:	b008      	add	sp, #32
+ 800093c:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 8000940:	2214      	movs	r2, #20
+ 8000942:	3008      	adds	r0, #8
+ 8000944:	f000 fb4f 	bl	8000fe6 <cmox_md_init>
+ 8000948:	b008      	add	sp, #32
+ 800094a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800094e:	bf00      	nop
+ 8000950:	080009dc 	.word	0x080009dc
+ 8000954:	080009fc 	.word	0x080009fc
+ 8000958:	00020003 	.word	0x00020003
+
+0800095c <cmox_sha1_setTagLen>:
+ 800095c:	2915      	cmp	r1, #21
+ 800095e:	d204      	bcs.n	800096a <cmox_sha1_setTagLen+0xe>
+ 8000960:	6802      	ldr	r2, [r0, #0]
+ 8000962:	4b04      	ldr	r3, [pc, #16]	; (8000974 <cmox_sha1_setTagLen+0x18>)
+ 8000964:	429a      	cmp	r2, r3
+ 8000966:	d100      	bne.n	800096a <cmox_sha1_setTagLen+0xe>
+ 8000968:	b908      	cbnz	r0, 800096e <cmox_sha1_setTagLen+0x12>
+ 800096a:	4803      	ldr	r0, [pc, #12]	; (8000978 <cmox_sha1_setTagLen+0x1c>)
+ 800096c:	4770      	bx	lr
+ 800096e:	3008      	adds	r0, #8
+ 8000970:	f000 bb48 	b.w	8001004 <cmox_md_setTagSize>
+ 8000974:	080009fc 	.word	0x080009fc
+ 8000978:	00020003 	.word	0x00020003
+
+0800097c <cmox_sha1_append>:
+ 800097c:	b410      	push	{r4}
+ 800097e:	b081      	sub	sp, #4
+ 8000980:	4613      	mov	r3, r2
+ 8000982:	6802      	ldr	r2, [r0, #0]
+ 8000984:	4c07      	ldr	r4, [pc, #28]	; (80009a4 <cmox_sha1_append+0x28>)
+ 8000986:	42a2      	cmp	r2, r4
+ 8000988:	d100      	bne.n	800098c <cmox_sha1_append+0x10>
+ 800098a:	b918      	cbnz	r0, 8000994 <cmox_sha1_append+0x18>
+ 800098c:	b001      	add	sp, #4
+ 800098e:	bc10      	pop	{r4}
+ 8000990:	4805      	ldr	r0, [pc, #20]	; (80009a8 <cmox_sha1_append+0x2c>)
+ 8000992:	4770      	bx	lr
+ 8000994:	b001      	add	sp, #4
+ 8000996:	f100 0224 	add.w	r2, r0, #36	; 0x24
+ 800099a:	bc10      	pop	{r4}
+ 800099c:	3008      	adds	r0, #8
+ 800099e:	f000 bb35 	b.w	800100c <cmox_md_append>
+ 80009a2:	bf00      	nop
+ 80009a4:	080009fc 	.word	0x080009fc
+ 80009a8:	00020003 	.word	0x00020003
+
+080009ac <cmox_sha1_generateTag>:
+ 80009ac:	b410      	push	{r4}
+ 80009ae:	b081      	sub	sp, #4
+ 80009b0:	4613      	mov	r3, r2
+ 80009b2:	6802      	ldr	r2, [r0, #0]
+ 80009b4:	4c07      	ldr	r4, [pc, #28]	; (80009d4 <cmox_sha1_generateTag+0x28>)
+ 80009b6:	42a2      	cmp	r2, r4
+ 80009b8:	d100      	bne.n	80009bc <cmox_sha1_generateTag+0x10>
+ 80009ba:	b918      	cbnz	r0, 80009c4 <cmox_sha1_generateTag+0x18>
+ 80009bc:	b001      	add	sp, #4
+ 80009be:	bc10      	pop	{r4}
+ 80009c0:	4805      	ldr	r0, [pc, #20]	; (80009d8 <cmox_sha1_generateTag+0x2c>)
+ 80009c2:	4770      	bx	lr
+ 80009c4:	460a      	mov	r2, r1
+ 80009c6:	b001      	add	sp, #4
+ 80009c8:	f100 0124 	add.w	r1, r0, #36	; 0x24
+ 80009cc:	bc10      	pop	{r4}
+ 80009ce:	3008      	adds	r0, #8
+ 80009d0:	f000 bb70 	b.w	80010b4 <cmox_md_generateTag>
+ 80009d4:	080009fc 	.word	0x080009fc
+ 80009d8:	00020003 	.word	0x00020003
+ 80009dc:	67452301 	.word	0x67452301
+ 80009e0:	efcdab89 	.word	0xefcdab89
+ 80009e4:	98badcfe 	.word	0x98badcfe
+ 80009e8:	10325476 	.word	0x10325476
+ 80009ec:	c3d2e1f0 	.word	0xc3d2e1f0
+	...
+
+080009fc <CMOX_SHA1_VTABLE>:
+ 80009fc:	080008f1 0800091d 0800095d 0800097d     ........]...}...
+ 8000a0c:	080009ad                                ....
+
+08000a10 <CMOX_SHA1_MD_VTABLE_ST>:
+ 8000a10:	08000401 08000f79 08000fc5 08000f81     ....y...........
+
+08000a20 <cmox_sha1_compute>:
+ 8000a20:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8000a22:	b0a3      	sub	sp, #140	; 0x8c
+ 8000a24:	4604      	mov	r4, r0
+ 8000a26:	480b      	ldr	r0, [pc, #44]	; (8000a54 <cmox_sha1_compute+0x34>)
+ 8000a28:	9002      	str	r0, [sp, #8]
+ 8000a2a:	460d      	mov	r5, r1
+ 8000a2c:	4616      	mov	r6, r2
+ 8000a2e:	461f      	mov	r7, r3
+ 8000a30:	4b09      	ldr	r3, [pc, #36]	; (8000a58 <cmox_sha1_compute+0x38>)
+ 8000a32:	2208      	movs	r2, #8
+ 8000a34:	2140      	movs	r1, #64	; 0x40
+ 8000a36:	a804      	add	r0, sp, #16
+ 8000a38:	f000 fad1 	bl	8000fde <cmox_md_construct>
+ 8000a3c:	9828      	ldr	r0, [sp, #160]	; 0xa0
+ 8000a3e:	9001      	str	r0, [sp, #4]
+ 8000a40:	9700      	str	r7, [sp, #0]
+ 8000a42:	4633      	mov	r3, r6
+ 8000a44:	462a      	mov	r2, r5
+ 8000a46:	4621      	mov	r1, r4
+ 8000a48:	a802      	add	r0, sp, #8
+ 8000a4a:	f000 f81b 	bl	8000a84 <cmox_hash_common_compute>
+ 8000a4e:	b023      	add	sp, #140	; 0x8c
+ 8000a50:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8000a52:	bf00      	nop
+ 8000a54:	080009fc 	.word	0x080009fc
+ 8000a58:	08000a10 	.word	0x08000a10
+
+08000a5c <cmox_sha1_construct>:
+ 8000a5c:	b510      	push	{r4, lr}
+ 8000a5e:	0004      	movs	r4, r0
+ 8000a60:	bf08      	it	eq
+ 8000a62:	2400      	moveq	r4, #0
+ 8000a64:	d008      	beq.n	8000a78 <cmox_sha1_construct+0x1c>
+ 8000a66:	4805      	ldr	r0, [pc, #20]	; (8000a7c <cmox_sha1_construct+0x20>)
+ 8000a68:	4b05      	ldr	r3, [pc, #20]	; (8000a80 <cmox_sha1_construct+0x24>)
+ 8000a6a:	6020      	str	r0, [r4, #0]
+ 8000a6c:	2208      	movs	r2, #8
+ 8000a6e:	2140      	movs	r1, #64	; 0x40
+ 8000a70:	f104 0008 	add.w	r0, r4, #8
+ 8000a74:	f000 fab3 	bl	8000fde <cmox_md_construct>
+ 8000a78:	4620      	mov	r0, r4
+ 8000a7a:	bd10      	pop	{r4, pc}
+ 8000a7c:	080009fc 	.word	0x080009fc
+ 8000a80:	08000a10 	.word	0x08000a10
+
+08000a84 <cmox_hash_common_compute>:
+ 8000a84:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8000a88:	4604      	mov	r4, r0
+ 8000a8a:	460e      	mov	r6, r1
+ 8000a8c:	6821      	ldr	r1, [r4, #0]
+ 8000a8e:	4617      	mov	r7, r2
+ 8000a90:	684a      	ldr	r2, [r1, #4]
+ 8000a92:	461d      	mov	r5, r3
+ 8000a94:	4790      	blx	r2
+ 8000a96:	4680      	mov	r8, r0
+ 8000a98:	f5b8 3f00 	cmp.w	r8, #131072	; 0x20000
+ 8000a9c:	d119      	bne.n	8000ad2 <cmox_hash_common_compute+0x4e>
+ 8000a9e:	6822      	ldr	r2, [r4, #0]
+ 8000aa0:	9906      	ldr	r1, [sp, #24]
+ 8000aa2:	6893      	ldr	r3, [r2, #8]
+ 8000aa4:	4620      	mov	r0, r4
+ 8000aa6:	4798      	blx	r3
+ 8000aa8:	4680      	mov	r8, r0
+ 8000aaa:	f5b8 3f00 	cmp.w	r8, #131072	; 0x20000
+ 8000aae:	d110      	bne.n	8000ad2 <cmox_hash_common_compute+0x4e>
+ 8000ab0:	6823      	ldr	r3, [r4, #0]
+ 8000ab2:	4631      	mov	r1, r6
+ 8000ab4:	68de      	ldr	r6, [r3, #12]
+ 8000ab6:	463a      	mov	r2, r7
+ 8000ab8:	4620      	mov	r0, r4
+ 8000aba:	47b0      	blx	r6
+ 8000abc:	4680      	mov	r8, r0
+ 8000abe:	f5b8 3f00 	cmp.w	r8, #131072	; 0x20000
+ 8000ac2:	d106      	bne.n	8000ad2 <cmox_hash_common_compute+0x4e>
+ 8000ac4:	6823      	ldr	r3, [r4, #0]
+ 8000ac6:	9a07      	ldr	r2, [sp, #28]
+ 8000ac8:	4629      	mov	r1, r5
+ 8000aca:	691d      	ldr	r5, [r3, #16]
+ 8000acc:	4620      	mov	r0, r4
+ 8000ace:	47a8      	blx	r5
+ 8000ad0:	4680      	mov	r8, r0
+ 8000ad2:	6821      	ldr	r1, [r4, #0]
+ 8000ad4:	680a      	ldr	r2, [r1, #0]
+ 8000ad6:	4620      	mov	r0, r4
+ 8000ad8:	4790      	blx	r2
+ 8000ada:	4640      	mov	r0, r8
+ 8000adc:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+
+08000ae0 <cmox_hmac_cleanup>:
+ 8000ae0:	b510      	push	{r4, lr}
+ 8000ae2:	f000 fa33 	bl	8000f4c <cmox_hmac_getByMAC>
+ 8000ae6:	f44f 3440 	mov.w	r4, #196608	; 0x30000
+ 8000aea:	2800      	cmp	r0, #0
+ 8000aec:	bf0e      	itee	eq
+ 8000aee:	4c03      	ldreq	r4, [pc, #12]	; (8000afc <cmox_hmac_cleanup+0x1c>)
+ 8000af0:	f44f 71c0 	movne.w	r1, #384	; 0x180
+ 8000af4:	f013 fbe2 	blne	80142bc <__aeabi_memclr>
+ 8000af8:	4620      	mov	r0, r4
+ 8000afa:	bd10      	pop	{r4, pc}
+ 8000afc:	00030002 	.word	0x00030002
+
+08000b00 <cmox_hmac_init>:
+ 8000b00:	b510      	push	{r4, lr}
+ 8000b02:	4604      	mov	r4, r0
+ 8000b04:	f000 fa22 	bl	8000f4c <cmox_hmac_getByMAC>
+ 8000b08:	b908      	cbnz	r0, 8000b0e <cmox_hmac_init+0xe>
+ 8000b0a:	4805      	ldr	r0, [pc, #20]	; (8000b20 <cmox_hmac_init+0x20>)
+ 8000b0c:	bd10      	pop	{r4, pc}
+ 8000b0e:	2100      	movs	r1, #0
+ 8000b10:	60a1      	str	r1, [r4, #8]
+ 8000b12:	f8d0 217c 	ldr.w	r2, [r0, #380]	; 0x17c
+ 8000b16:	6811      	ldr	r1, [r2, #0]
+ 8000b18:	4788      	blx	r1
+ 8000b1a:	f44f 3040 	mov.w	r0, #196608	; 0x30000
+ 8000b1e:	bd10      	pop	{r4, pc}
+ 8000b20:	00030002 	.word	0x00030002
+
+08000b24 <cmox_hmac_setTagLen>:
+ 8000b24:	b570      	push	{r4, r5, r6, lr}
+ 8000b26:	4604      	mov	r4, r0
+ 8000b28:	460d      	mov	r5, r1
+ 8000b2a:	f000 fa0f 	bl	8000f4c <cmox_hmac_getByMAC>
+ 8000b2e:	4e06      	ldr	r6, [pc, #24]	; (8000b48 <cmox_hmac_setTagLen+0x24>)
+ 8000b30:	b140      	cbz	r0, 8000b44 <cmox_hmac_setTagLen+0x20>
+ 8000b32:	f8d0 017c 	ldr.w	r0, [r0, #380]	; 0x17c
+ 8000b36:	6841      	ldr	r1, [r0, #4]
+ 8000b38:	4788      	blx	r1
+ 8000b3a:	42a8      	cmp	r0, r5
+ 8000b3c:	bf24      	itt	cs
+ 8000b3e:	6065      	strcs	r5, [r4, #4]
+ 8000b40:	f44f 3640 	movcs.w	r6, #196608	; 0x30000
+ 8000b44:	4630      	mov	r0, r6
+ 8000b46:	bd70      	pop	{r4, r5, r6, pc}
+ 8000b48:	00030002 	.word	0x00030002
+
+08000b4c <cmox_hmac_setKey>:
+ 8000b4c:	e92d 47ff 	stmdb	sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr}
+ 8000b50:	0015      	movs	r5, r2
+ 8000b52:	460c      	mov	r4, r1
+ 8000b54:	d000      	beq.n	8000b58 <cmox_hmac_setKey+0xc>
+ 8000b56:	b12c      	cbz	r4, 8000b64 <cmox_hmac_setKey+0x18>
+ 8000b58:	4606      	mov	r6, r0
+ 8000b5a:	f000 f9f7 	bl	8000f4c <cmox_hmac_getByMAC>
+ 8000b5e:	ea5f 0800 	movs.w	r8, r0
+ 8000b62:	d101      	bne.n	8000b68 <cmox_hmac_setKey+0x1c>
+ 8000b64:	4864      	ldr	r0, [pc, #400]	; (8000cf8 <cmox_hmac_setKey+0x1ac>)
+ 8000b66:	e0c3      	b.n	8000cf0 <cmox_hmac_setKey+0x1a4>
+ 8000b68:	f8d8 00f8 	ldr.w	r0, [r8, #248]	; 0xf8
+ 8000b6c:	6801      	ldr	r1, [r0, #0]
+ 8000b6e:	684a      	ldr	r2, [r1, #4]
+ 8000b70:	4790      	blx	r2
+ 8000b72:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000b76:	d117      	bne.n	8000ba8 <cmox_hmac_setKey+0x5c>
+ 8000b78:	f8d8 117c 	ldr.w	r1, [r8, #380]	; 0x17c
+ 8000b7c:	688a      	ldr	r2, [r1, #8]
+ 8000b7e:	4640      	mov	r0, r8
+ 8000b80:	4790      	blx	r2
+ 8000b82:	4681      	mov	r9, r0
+ 8000b84:	f1b9 0f81 	cmp.w	r9, #129	; 0x81
+ 8000b88:	f080 809e 	bcs.w	8000cc8 <cmox_hmac_setKey+0x17c>
+ 8000b8c:	45a9      	cmp	r9, r5
+ 8000b8e:	f108 0afc 	add.w	sl, r8, #252	; 0xfc
+ 8000b92:	d217      	bcs.n	8000bc4 <cmox_hmac_setKey+0x78>
+ 8000b94:	f8d8 00f8 	ldr.w	r0, [r8, #248]	; 0xf8
+ 8000b98:	6803      	ldr	r3, [r0, #0]
+ 8000b9a:	f8d3 c00c 	ldr.w	ip, [r3, #12]
+ 8000b9e:	462a      	mov	r2, r5
+ 8000ba0:	4621      	mov	r1, r4
+ 8000ba2:	47e0      	blx	ip
+ 8000ba4:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000ba8:	f040 808e 	bne.w	8000cc8 <cmox_hmac_setKey+0x17c>
+ 8000bac:	f8d8 00f8 	ldr.w	r0, [r8, #248]	; 0xf8
+ 8000bb0:	6803      	ldr	r3, [r0, #0]
+ 8000bb2:	f8d3 c010 	ldr.w	ip, [r3, #16]
+ 8000bb6:	466a      	mov	r2, sp
+ 8000bb8:	4651      	mov	r1, sl
+ 8000bba:	47e0      	blx	ip
+ 8000bbc:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000bc0:	d176      	bne.n	8000cb0 <cmox_hmac_setKey+0x164>
+ 8000bc2:	e00a      	b.n	8000bda <cmox_hmac_setKey+0x8e>
+ 8000bc4:	2000      	movs	r0, #0
+ 8000bc6:	e004      	b.n	8000bd2 <cmox_hmac_setKey+0x86>
+ 8000bc8:	5c21      	ldrb	r1, [r4, r0]
+ 8000bca:	f80a 1000 	strb.w	r1, [sl, r0]
+ 8000bce:	9800      	ldr	r0, [sp, #0]
+ 8000bd0:	1c40      	adds	r0, r0, #1
+ 8000bd2:	9000      	str	r0, [sp, #0]
+ 8000bd4:	9800      	ldr	r0, [sp, #0]
+ 8000bd6:	42a8      	cmp	r0, r5
+ 8000bd8:	d3f6      	bcc.n	8000bc8 <cmox_hmac_setKey+0x7c>
+ 8000bda:	f04f 0c00 	mov.w	ip, #0
+ 8000bde:	4947      	ldr	r1, [pc, #284]	; (8000cfc <cmox_hmac_setKey+0x1b0>)
+ 8000be0:	4a47      	ldr	r2, [pc, #284]	; (8000d00 <cmox_hmac_setKey+0x1b4>)
+ 8000be2:	4b48      	ldr	r3, [pc, #288]	; (8000d04 <cmox_hmac_setKey+0x1b8>)
+ 8000be4:	ac01      	add	r4, sp, #4
+ 8000be6:	9800      	ldr	r0, [sp, #0]
+ 8000be8:	4584      	cmp	ip, r0
+ 8000bea:	d258      	bcs.n	8000c9e <cmox_hmac_setKey+0x152>
+ 8000bec:	e9d3 7000 	ldrd	r7, r0, [r3]
+ 8000bf0:	ad01      	add	r5, sp, #4
+ 8000bf2:	e9c5 7000 	strd	r7, r0, [r5]
+ 8000bf6:	7810      	ldrb	r0, [r2, #0]
+ 8000bf8:	2800      	cmp	r0, #0
+ 8000bfa:	bf1a      	itte	ne
+ 8000bfc:	2004      	movne	r0, #4
+ 8000bfe:	4686      	movne	lr, r0
+ 8000c00:	f04f 0e00 	moveq.w	lr, #0
+ 8000c04:	5808      	ldr	r0, [r1, r0]
+ 8000c06:	f854 500e 	ldr.w	r5, [r4, lr]
+ 8000c0a:	4428      	add	r0, r5
+ 8000c0c:	4d3e      	ldr	r5, [pc, #248]	; (8000d08 <cmox_hmac_setKey+0x1bc>)
+ 8000c0e:	6005      	str	r5, [r0, #0]
+ 8000c10:	2701      	movs	r7, #1
+ 8000c12:	f8d0 e000 	ldr.w	lr, [r0]
+ 8000c16:	6087      	str	r7, [r0, #8]
+ 8000c18:	9d01      	ldr	r5, [sp, #4]
+ 8000c1a:	684f      	ldr	r7, [r1, #4]
+ 8000c1c:	f81a 000c 	ldrb.w	r0, [sl, ip]
+ 8000c20:	407d      	eors	r5, r7
+ 8000c22:	ea8e 0505 	eor.w	r5, lr, r5
+ 8000c26:	f085 0e04 	eor.w	lr, r5, #4
+ 8000c2a:	6865      	ldr	r5, [r4, #4]
+ 8000c2c:	680f      	ldr	r7, [r1, #0]
+ 8000c2e:	407d      	eors	r5, r7
+ 8000c30:	f085 05fc 	eor.w	r5, r5, #252	; 0xfc
+ 8000c34:	4475      	add	r5, lr
+ 8000c36:	f085 05a3 	eor.w	r5, r5, #163	; 0xa3
+ 8000c3a:	4068      	eors	r0, r5
+ 8000c3c:	f80a 000c 	strb.w	r0, [sl, ip]
+ 8000c40:	f10c 0c01 	add.w	ip, ip, #1
+ 8000c44:	e7cf      	b.n	8000be6 <cmox_hmac_setKey+0x9a>
+ 8000c46:	e9d3 4500 	ldrd	r4, r5, [r3]
+ 8000c4a:	a801      	add	r0, sp, #4
+ 8000c4c:	e9c0 4500 	strd	r4, r5, [r0]
+ 8000c50:	7810      	ldrb	r0, [r2, #0]
+ 8000c52:	4d2e      	ldr	r5, [pc, #184]	; (8000d0c <cmox_hmac_setKey+0x1c0>)
+ 8000c54:	2800      	cmp	r0, #0
+ 8000c56:	bf14      	ite	ne
+ 8000c58:	f04f 0e04 	movne.w	lr, #4
+ 8000c5c:	f04f 0e00 	moveq.w	lr, #0
+ 8000c60:	a801      	add	r0, sp, #4
+ 8000c62:	4674      	mov	r4, lr
+ 8000c64:	f851 e00e 	ldr.w	lr, [r1, lr]
+ 8000c68:	5904      	ldr	r4, [r0, r4]
+ 8000c6a:	44a6      	add	lr, r4
+ 8000c6c:	2701      	movs	r7, #1
+ 8000c6e:	f8ce 5000 	str.w	r5, [lr]
+ 8000c72:	f8de 4000 	ldr.w	r4, [lr]
+ 8000c76:	f8ce 7008 	str.w	r7, [lr, #8]
+ 8000c7a:	684d      	ldr	r5, [r1, #4]
+ 8000c7c:	9f01      	ldr	r7, [sp, #4]
+ 8000c7e:	6840      	ldr	r0, [r0, #4]
+ 8000c80:	407d      	eors	r5, r7
+ 8000c82:	406c      	eors	r4, r5
+ 8000c84:	680d      	ldr	r5, [r1, #0]
+ 8000c86:	4068      	eors	r0, r5
+ 8000c88:	f084 0404 	eor.w	r4, r4, #4
+ 8000c8c:	f080 00fc 	eor.w	r0, r0, #252	; 0xfc
+ 8000c90:	1904      	adds	r4, r0, r4
+ 8000c92:	f084 0457 	eor.w	r4, r4, #87	; 0x57
+ 8000c96:	f80a 400c 	strb.w	r4, [sl, ip]
+ 8000c9a:	f10c 0c01 	add.w	ip, ip, #1
+ 8000c9e:	45cc      	cmp	ip, r9
+ 8000ca0:	d3d1      	bcc.n	8000c46 <cmox_hmac_setKey+0xfa>
+ 8000ca2:	f8d8 00f8 	ldr.w	r0, [r8, #248]	; 0xf8
+ 8000ca6:	6801      	ldr	r1, [r0, #0]
+ 8000ca8:	684a      	ldr	r2, [r1, #4]
+ 8000caa:	4790      	blx	r2
+ 8000cac:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000cb0:	d10a      	bne.n	8000cc8 <cmox_hmac_setKey+0x17c>
+ 8000cb2:	f8d8 00f8 	ldr.w	r0, [r8, #248]	; 0xf8
+ 8000cb6:	6803      	ldr	r3, [r0, #0]
+ 8000cb8:	f8d3 800c 	ldr.w	r8, [r3, #12]
+ 8000cbc:	464a      	mov	r2, r9
+ 8000cbe:	4651      	mov	r1, sl
+ 8000cc0:	47c0      	blx	r8
+ 8000cc2:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000cc6:	d001      	beq.n	8000ccc <cmox_hmac_setKey+0x180>
+ 8000cc8:	4811      	ldr	r0, [pc, #68]	; (8000d10 <cmox_hmac_setKey+0x1c4>)
+ 8000cca:	e011      	b.n	8000cf0 <cmox_hmac_setKey+0x1a4>
+ 8000ccc:	2000      	movs	r0, #0
+ 8000cce:	e006      	b.n	8000cde <cmox_hmac_setKey+0x192>
+ 8000cd0:	f85a 1020 	ldr.w	r1, [sl, r0, lsl #2]
+ 8000cd4:	f081 316a 	eor.w	r1, r1, #1785358954	; 0x6a6a6a6a
+ 8000cd8:	f84a 1020 	str.w	r1, [sl, r0, lsl #2]
+ 8000cdc:	1c40      	adds	r0, r0, #1
+ 8000cde:	ebb0 0f99 	cmp.w	r0, r9, lsr #2
+ 8000ce2:	d3f5      	bcc.n	8000cd0 <cmox_hmac_setKey+0x184>
+ 8000ce4:	68b0      	ldr	r0, [r6, #8]
+ 8000ce6:	f040 0001 	orr.w	r0, r0, #1
+ 8000cea:	60b0      	str	r0, [r6, #8]
+ 8000cec:	f44f 3040 	mov.w	r0, #196608	; 0x30000
+ 8000cf0:	b004      	add	sp, #16
+ 8000cf2:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 8000cf6:	bf00      	nop
+ 8000cf8:	00030002 	.word	0x00030002
+ 8000cfc:	08014454 	.word	0x08014454
+ 8000d00:	200008e8 	.word	0x200008e8
+ 8000d04:	08000f24 	.word	0x08000f24
+ 8000d08:	d74ebead 	.word	0xd74ebead
+ 8000d0c:	a175be0d 	.word	0xa175be0d
+ 8000d10:	00030001 	.word	0x00030001
+
+08000d14 <cmox_hmac_append>:
+ 8000d14:	b538      	push	{r3, r4, r5, lr}
+ 8000d16:	460c      	mov	r4, r1
+ 8000d18:	7a01      	ldrb	r1, [r0, #8]
+ 8000d1a:	4615      	mov	r5, r2
+ 8000d1c:	07ca      	lsls	r2, r1, #31
+ 8000d1e:	d502      	bpl.n	8000d26 <cmox_hmac_append+0x12>
+ 8000d20:	f000 f914 	bl	8000f4c <cmox_hmac_getByMAC>
+ 8000d24:	b908      	cbnz	r0, 8000d2a <cmox_hmac_append+0x16>
+ 8000d26:	4808      	ldr	r0, [pc, #32]	; (8000d48 <cmox_hmac_append+0x34>)
+ 8000d28:	bd32      	pop	{r1, r4, r5, pc}
+ 8000d2a:	f8d0 00f8 	ldr.w	r0, [r0, #248]	; 0xf8
+ 8000d2e:	6803      	ldr	r3, [r0, #0]
+ 8000d30:	4621      	mov	r1, r4
+ 8000d32:	68dc      	ldr	r4, [r3, #12]
+ 8000d34:	462a      	mov	r2, r5
+ 8000d36:	47a0      	blx	r4
+ 8000d38:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000d3c:	d001      	beq.n	8000d42 <cmox_hmac_append+0x2e>
+ 8000d3e:	4803      	ldr	r0, [pc, #12]	; (8000d4c <cmox_hmac_append+0x38>)
+ 8000d40:	bd32      	pop	{r1, r4, r5, pc}
+ 8000d42:	f44f 3040 	mov.w	r0, #196608	; 0x30000
+ 8000d46:	bd32      	pop	{r1, r4, r5, pc}
+ 8000d48:	00030002 	.word	0x00030002
+ 8000d4c:	00030001 	.word	0x00030001
+
+08000d50 <cmox_hmac_generateTag>:
+ 8000d50:	e92d 41f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, lr}
+ 8000d54:	b091      	sub	sp, #68	; 0x44
+ 8000d56:	4605      	mov	r5, r0
+ 8000d58:	460e      	mov	r6, r1
+ 8000d5a:	4617      	mov	r7, r2
+ 8000d5c:	2140      	movs	r1, #64	; 0x40
+ 8000d5e:	a801      	add	r0, sp, #4
+ 8000d60:	f013 faac 	bl	80142bc <__aeabi_memclr>
+ 8000d64:	7a29      	ldrb	r1, [r5, #8]
+ 8000d66:	07c8      	lsls	r0, r1, #31
+ 8000d68:	d504      	bpl.n	8000d74 <cmox_hmac_generateTag+0x24>
+ 8000d6a:	4628      	mov	r0, r5
+ 8000d6c:	f000 f8ee 	bl	8000f4c <cmox_hmac_getByMAC>
+ 8000d70:	0004      	movs	r4, r0
+ 8000d72:	d102      	bne.n	8000d7a <cmox_hmac_generateTag+0x2a>
+ 8000d74:	f8df 80a4 	ldr.w	r8, [pc, #164]	; 8000e1c <cmox_hmac_generateTag+0xcc>
+ 8000d78:	e04b      	b.n	8000e12 <cmox_hmac_generateTag+0xc2>
+ 8000d7a:	f8d4 00f8 	ldr.w	r0, [r4, #248]	; 0xf8
+ 8000d7e:	f8df 80a0 	ldr.w	r8, [pc, #160]	; 8000e20 <cmox_hmac_generateTag+0xd0>
+ 8000d82:	6803      	ldr	r3, [r0, #0]
+ 8000d84:	f8d3 c010 	ldr.w	ip, [r3, #16]
+ 8000d88:	466a      	mov	r2, sp
+ 8000d8a:	a901      	add	r1, sp, #4
+ 8000d8c:	47e0      	blx	ip
+ 8000d8e:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000d92:	d13e      	bne.n	8000e12 <cmox_hmac_generateTag+0xc2>
+ 8000d94:	f8d4 00f8 	ldr.w	r0, [r4, #248]	; 0xf8
+ 8000d98:	6801      	ldr	r1, [r0, #0]
+ 8000d9a:	684a      	ldr	r2, [r1, #4]
+ 8000d9c:	4790      	blx	r2
+ 8000d9e:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000da2:	d136      	bne.n	8000e12 <cmox_hmac_generateTag+0xc2>
+ 8000da4:	f8d4 117c 	ldr.w	r1, [r4, #380]	; 0x17c
+ 8000da8:	688a      	ldr	r2, [r1, #8]
+ 8000daa:	4620      	mov	r0, r4
+ 8000dac:	4790      	blx	r2
+ 8000dae:	f8d4 30f8 	ldr.w	r3, [r4, #248]	; 0xf8
+ 8000db2:	4602      	mov	r2, r0
+ 8000db4:	4618      	mov	r0, r3
+ 8000db6:	681b      	ldr	r3, [r3, #0]
+ 8000db8:	f8d3 c00c 	ldr.w	ip, [r3, #12]
+ 8000dbc:	f104 01fc 	add.w	r1, r4, #252	; 0xfc
+ 8000dc0:	47e0      	blx	ip
+ 8000dc2:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000dc6:	d124      	bne.n	8000e12 <cmox_hmac_generateTag+0xc2>
+ 8000dc8:	f8d4 017c 	ldr.w	r0, [r4, #380]	; 0x17c
+ 8000dcc:	6841      	ldr	r1, [r0, #4]
+ 8000dce:	4788      	blx	r1
+ 8000dd0:	f8d4 30f8 	ldr.w	r3, [r4, #248]	; 0xf8
+ 8000dd4:	4602      	mov	r2, r0
+ 8000dd6:	4618      	mov	r0, r3
+ 8000dd8:	681b      	ldr	r3, [r3, #0]
+ 8000dda:	f8d3 c00c 	ldr.w	ip, [r3, #12]
+ 8000dde:	a901      	add	r1, sp, #4
+ 8000de0:	47e0      	blx	ip
+ 8000de2:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000de6:	d114      	bne.n	8000e12 <cmox_hmac_generateTag+0xc2>
+ 8000de8:	f8d4 00f8 	ldr.w	r0, [r4, #248]	; 0xf8
+ 8000dec:	6802      	ldr	r2, [r0, #0]
+ 8000dee:	6869      	ldr	r1, [r5, #4]
+ 8000df0:	6893      	ldr	r3, [r2, #8]
+ 8000df2:	4798      	blx	r3
+ 8000df4:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000df8:	d10b      	bne.n	8000e12 <cmox_hmac_generateTag+0xc2>
+ 8000dfa:	f8d4 00f8 	ldr.w	r0, [r4, #248]	; 0xf8
+ 8000dfe:	6803      	ldr	r3, [r0, #0]
+ 8000e00:	691c      	ldr	r4, [r3, #16]
+ 8000e02:	463a      	mov	r2, r7
+ 8000e04:	4631      	mov	r1, r6
+ 8000e06:	47a0      	blx	r4
+ 8000e08:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000e0c:	bf08      	it	eq
+ 8000e0e:	f44f 3840 	moveq.w	r8, #196608	; 0x30000
+ 8000e12:	4640      	mov	r0, r8
+ 8000e14:	b012      	add	sp, #72	; 0x48
+ 8000e16:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 8000e1a:	bf00      	nop
+ 8000e1c:	00030002 	.word	0x00030002
+ 8000e20:	00030001 	.word	0x00030001
+
+08000e24 <cmox_hmac_verifyTag>:
+ 8000e24:	e92d 41f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, lr}
+ 8000e28:	b0a5      	sub	sp, #148	; 0x94
+ 8000e2a:	4607      	mov	r7, r0
+ 8000e2c:	4688      	mov	r8, r1
+ 8000e2e:	4616      	mov	r6, r2
+ 8000e30:	2140      	movs	r1, #64	; 0x40
+ 8000e32:	a815      	add	r0, sp, #84	; 0x54
+ 8000e34:	f013 fa42 	bl	80142bc <__aeabi_memclr>
+ 8000e38:	2200      	movs	r2, #0
+ 8000e3a:	9204      	str	r2, [sp, #16]
+ 8000e3c:	2140      	movs	r1, #64	; 0x40
+ 8000e3e:	a805      	add	r0, sp, #20
+ 8000e40:	f013 fa3c 	bl	80142bc <__aeabi_memclr>
+ 8000e44:	7a38      	ldrb	r0, [r7, #8]
+ 8000e46:	07c1      	lsls	r1, r0, #31
+ 8000e48:	d55e      	bpl.n	8000f08 <cmox_hmac_verifyTag+0xe4>
+ 8000e4a:	4638      	mov	r0, r7
+ 8000e4c:	f000 f87e 	bl	8000f4c <cmox_hmac_getByMAC>
+ 8000e50:	0005      	movs	r5, r0
+ 8000e52:	d059      	beq.n	8000f08 <cmox_hmac_verifyTag+0xe4>
+ 8000e54:	f8d5 00f8 	ldr.w	r0, [r5, #248]	; 0xf8
+ 8000e58:	4c2d      	ldr	r4, [pc, #180]	; (8000f10 <cmox_hmac_verifyTag+0xec>)
+ 8000e5a:	6803      	ldr	r3, [r0, #0]
+ 8000e5c:	f8d3 c010 	ldr.w	ip, [r3, #16]
+ 8000e60:	466a      	mov	r2, sp
+ 8000e62:	a905      	add	r1, sp, #20
+ 8000e64:	47e0      	blx	ip
+ 8000e66:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000e6a:	d13c      	bne.n	8000ee6 <cmox_hmac_verifyTag+0xc2>
+ 8000e6c:	f8d5 00f8 	ldr.w	r0, [r5, #248]	; 0xf8
+ 8000e70:	6801      	ldr	r1, [r0, #0]
+ 8000e72:	684a      	ldr	r2, [r1, #4]
+ 8000e74:	4790      	blx	r2
+ 8000e76:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000e7a:	d134      	bne.n	8000ee6 <cmox_hmac_verifyTag+0xc2>
+ 8000e7c:	f8d5 117c 	ldr.w	r1, [r5, #380]	; 0x17c
+ 8000e80:	688a      	ldr	r2, [r1, #8]
+ 8000e82:	4628      	mov	r0, r5
+ 8000e84:	4790      	blx	r2
+ 8000e86:	f8d5 30f8 	ldr.w	r3, [r5, #248]	; 0xf8
+ 8000e8a:	4602      	mov	r2, r0
+ 8000e8c:	4618      	mov	r0, r3
+ 8000e8e:	681b      	ldr	r3, [r3, #0]
+ 8000e90:	f8d3 c00c 	ldr.w	ip, [r3, #12]
+ 8000e94:	f105 01fc 	add.w	r1, r5, #252	; 0xfc
+ 8000e98:	47e0      	blx	ip
+ 8000e9a:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000e9e:	d122      	bne.n	8000ee6 <cmox_hmac_verifyTag+0xc2>
+ 8000ea0:	f8d5 017c 	ldr.w	r0, [r5, #380]	; 0x17c
+ 8000ea4:	6841      	ldr	r1, [r0, #4]
+ 8000ea6:	4788      	blx	r1
+ 8000ea8:	f8d5 30f8 	ldr.w	r3, [r5, #248]	; 0xf8
+ 8000eac:	4602      	mov	r2, r0
+ 8000eae:	4618      	mov	r0, r3
+ 8000eb0:	681b      	ldr	r3, [r3, #0]
+ 8000eb2:	f8d3 c00c 	ldr.w	ip, [r3, #12]
+ 8000eb6:	a905      	add	r1, sp, #20
+ 8000eb8:	47e0      	blx	ip
+ 8000eba:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000ebe:	d112      	bne.n	8000ee6 <cmox_hmac_verifyTag+0xc2>
+ 8000ec0:	f8d5 00f8 	ldr.w	r0, [r5, #248]	; 0xf8
+ 8000ec4:	6802      	ldr	r2, [r0, #0]
+ 8000ec6:	6879      	ldr	r1, [r7, #4]
+ 8000ec8:	6893      	ldr	r3, [r2, #8]
+ 8000eca:	4798      	blx	r3
+ 8000ecc:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000ed0:	d109      	bne.n	8000ee6 <cmox_hmac_verifyTag+0xc2>
+ 8000ed2:	f8d5 00f8 	ldr.w	r0, [r5, #248]	; 0xf8
+ 8000ed6:	6803      	ldr	r3, [r0, #0]
+ 8000ed8:	691d      	ldr	r5, [r3, #16]
+ 8000eda:	aa04      	add	r2, sp, #16
+ 8000edc:	a915      	add	r1, sp, #84	; 0x54
+ 8000ede:	47a8      	blx	r5
+ 8000ee0:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000ee4:	d001      	beq.n	8000eea <cmox_hmac_verifyTag+0xc6>
+ 8000ee6:	4620      	mov	r0, r4
+ 8000ee8:	e00f      	b.n	8000f0a <cmox_hmac_verifyTag+0xe6>
+ 8000eea:	4b0a      	ldr	r3, [pc, #40]	; (8000f14 <cmox_hmac_verifyTag+0xf0>)
+ 8000eec:	490a      	ldr	r1, [pc, #40]	; (8000f18 <cmox_hmac_verifyTag+0xf4>)
+ 8000eee:	4a0b      	ldr	r2, [pc, #44]	; (8000f1c <cmox_hmac_verifyTag+0xf8>)
+ 8000ef0:	9603      	str	r6, [sp, #12]
+ 8000ef2:	9102      	str	r1, [sp, #8]
+ 8000ef4:	9201      	str	r2, [sp, #4]
+ 8000ef6:	4640      	mov	r0, r8
+ 8000ef8:	681c      	ldr	r4, [r3, #0]
+ 8000efa:	9b04      	ldr	r3, [sp, #16]
+ 8000efc:	9400      	str	r4, [sp, #0]
+ 8000efe:	aa15      	add	r2, sp, #84	; 0x54
+ 8000f00:	6879      	ldr	r1, [r7, #4]
+ 8000f02:	f000 f9e5 	bl	80012d0 <cmox_utils_robustCmp>
+ 8000f06:	e000      	b.n	8000f0a <cmox_hmac_verifyTag+0xe6>
+ 8000f08:	4805      	ldr	r0, [pc, #20]	; (8000f20 <cmox_hmac_verifyTag+0xfc>)
+ 8000f0a:	b026      	add	sp, #152	; 0x98
+ 8000f0c:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 8000f10:	00030001 	.word	0x00030001
+ 8000f14:	0801445c 	.word	0x0801445c
+ 8000f18:	00036e93 	.word	0x00036e93
+ 8000f1c:	0003c726 	.word	0x0003c726
+ 8000f20:	00030002 	.word	0x00030002
+ 8000f24:	0101b004 	.word	0x0101b004
+ 8000f28:	45011700 	.word	0x45011700
+
+08000f2c <hmac_table>:
+ 8000f2c:	08000ae1 08000b01 08000b25 080003b5     ........%.......
+ 8000f3c:	08000b4d 08000d15 08000d51 08000e25     M.......Q...%...
+
+08000f4c <cmox_hmac_getByMAC>:
+ 8000f4c:	6801      	ldr	r1, [r0, #0]
+ 8000f4e:	4a02      	ldr	r2, [pc, #8]	; (8000f58 <cmox_hmac_getByMAC+0xc>)
+ 8000f50:	4291      	cmp	r1, r2
+ 8000f52:	bf18      	it	ne
+ 8000f54:	2000      	movne	r0, #0
+ 8000f56:	4770      	bx	lr
+ 8000f58:	08000f2c 	.word	0x08000f2c
+
+08000f5c <cmox_hmac_construct>:
+ 8000f5c:	b510      	push	{r4, lr}
+ 8000f5e:	0004      	movs	r4, r0
+ 8000f60:	bf08      	it	eq
+ 8000f62:	2400      	moveq	r4, #0
+ 8000f64:	d004      	beq.n	8000f70 <cmox_hmac_construct+0x14>
+ 8000f66:	4803      	ldr	r0, [pc, #12]	; (8000f74 <cmox_hmac_construct+0x18>)
+ 8000f68:	6020      	str	r0, [r4, #0]
+ 8000f6a:	4620      	mov	r0, r4
+ 8000f6c:	6809      	ldr	r1, [r1, #0]
+ 8000f6e:	4788      	blx	r1
+ 8000f70:	4620      	mov	r0, r4
+ 8000f72:	bd10      	pop	{r4, pc}
+ 8000f74:	08000f2c 	.word	0x08000f2c
+
+08000f78 <cmox_md_updateState_small>:
+ 8000f78:	2220      	movs	r2, #32
+ 8000f7a:	305c      	adds	r0, #92	; 0x5c
+ 8000f7c:	f013 b99c 	b.w	80142b8 <__aeabi_memcpy>
+
+08000f80 <cmox_md_copyLastState_small>:
+ 8000f80:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8000f82:	6884      	ldr	r4, [r0, #8]
+ 8000f84:	08a3      	lsrs	r3, r4, #2
+ 8000f86:	2200      	movs	r2, #0
+ 8000f88:	f004 0403 	and.w	r4, r4, #3
+ 8000f8c:	e007      	b.n	8000f9e <cmox_md_copyLastState_small+0x1e>
+ 8000f8e:	f100 055c 	add.w	r5, r0, #92	; 0x5c
+ 8000f92:	f855 6022 	ldr.w	r6, [r5, r2, lsl #2]
+ 8000f96:	ba35      	rev	r5, r6
+ 8000f98:	f841 5022 	str.w	r5, [r1, r2, lsl #2]
+ 8000f9c:	1c52      	adds	r2, r2, #1
+ 8000f9e:	429a      	cmp	r2, r3
+ 8000fa0:	d3f5      	bcc.n	8000f8e <cmox_md_copyLastState_small+0xe>
+ 8000fa2:	2200      	movs	r2, #0
+ 8000fa4:	e00b      	b.n	8000fbe <cmox_md_copyLastState_small+0x3e>
+ 8000fa6:	f100 055c 	add.w	r5, r0, #92	; 0x5c
+ 8000faa:	eb02 0783 	add.w	r7, r2, r3, lsl #2
+ 8000fae:	f855 6023 	ldr.w	r6, [r5, r3, lsl #2]
+ 8000fb2:	00d5      	lsls	r5, r2, #3
+ 8000fb4:	f1c5 0518 	rsb	r5, r5, #24
+ 8000fb8:	40ee      	lsrs	r6, r5
+ 8000fba:	55ce      	strb	r6, [r1, r7]
+ 8000fbc:	1c52      	adds	r2, r2, #1
+ 8000fbe:	42a2      	cmp	r2, r4
+ 8000fc0:	d3f1      	bcc.n	8000fa6 <cmox_md_copyLastState_small+0x26>
+ 8000fc2:	bdf0      	pop	{r4, r5, r6, r7, pc}
+
+08000fc4 <cmox_md_padMsgLen_small>:
+ 8000fc4:	b530      	push	{r4, r5, lr}
+ 8000fc6:	68c4      	ldr	r4, [r0, #12]
+ 8000fc8:	6903      	ldr	r3, [r0, #16]
+ 8000fca:	2200      	movs	r2, #0
+ 8000fcc:	1ae3      	subs	r3, r4, r3
+ 8000fce:	18d5      	adds	r5, r2, r3
+ 8000fd0:	5c8c      	ldrb	r4, [r1, r2]
+ 8000fd2:	4405      	add	r5, r0
+ 8000fd4:	1c52      	adds	r2, r2, #1
+ 8000fd6:	2a08      	cmp	r2, #8
+ 8000fd8:	772c      	strb	r4, [r5, #28]
+ 8000fda:	d3f8      	bcc.n	8000fce <cmox_md_padMsgLen_small+0xa>
+ 8000fdc:	bd30      	pop	{r4, r5, pc}
+
+08000fde <cmox_md_construct>:
+ 8000fde:	6003      	str	r3, [r0, #0]
+ 8000fe0:	60c1      	str	r1, [r0, #12]
+ 8000fe2:	6102      	str	r2, [r0, #16]
+ 8000fe4:	4770      	bx	lr
+
+08000fe6 <cmox_md_init>:
+ 8000fe6:	b538      	push	{r3, r4, r5, lr}
+ 8000fe8:	4604      	mov	r4, r0
+ 8000fea:	4615      	mov	r5, r2
+ 8000fec:	2200      	movs	r2, #0
+ 8000fee:	6062      	str	r2, [r4, #4]
+ 8000ff0:	6823      	ldr	r3, [r4, #0]
+ 8000ff2:	685a      	ldr	r2, [r3, #4]
+ 8000ff4:	4790      	blx	r2
+ 8000ff6:	2000      	movs	r0, #0
+ 8000ff8:	6160      	str	r0, [r4, #20]
+ 8000ffa:	61a0      	str	r0, [r4, #24]
+ 8000ffc:	60a5      	str	r5, [r4, #8]
+ 8000ffe:	f44f 3000 	mov.w	r0, #131072	; 0x20000
+ 8001002:	bd32      	pop	{r1, r4, r5, pc}
+
+08001004 <cmox_md_setTagSize>:
+ 8001004:	6081      	str	r1, [r0, #8]
+ 8001006:	f44f 3000 	mov.w	r0, #131072	; 0x20000
+ 800100a:	4770      	bx	lr
+
+0800100c <cmox_md_append>:
+ 800100c:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
+ 8001010:	4604      	mov	r4, r0
+ 8001012:	7920      	ldrb	r0, [r4, #4]
+ 8001014:	f8d4 800c 	ldr.w	r8, [r4, #12]
+ 8001018:	0745      	lsls	r5, r0, #29
+ 800101a:	bf48      	it	mi
+ 800101c:	4824      	ldrmi	r0, [pc, #144]	; (80010b0 <cmox_md_append+0xa4>)
+ 800101e:	d445      	bmi.n	80010ac <cmox_md_append+0xa0>
+ 8001020:	6966      	ldr	r6, [r4, #20]
+ 8001022:	461d      	mov	r5, r3
+ 8001024:	f1a8 0001 	sub.w	r0, r8, #1
+ 8001028:	ea00 03d6 	and.w	r3, r0, r6, lsr #3
+ 800102c:	eb06 06c5 	add.w	r6, r6, r5, lsl #3
+ 8001030:	ebb6 0fc5 	cmp.w	r6, r5, lsl #3
+ 8001034:	6166      	str	r6, [r4, #20]
+ 8001036:	d202      	bcs.n	800103e <cmox_md_append+0x32>
+ 8001038:	69a6      	ldr	r6, [r4, #24]
+ 800103a:	1c76      	adds	r6, r6, #1
+ 800103c:	61a6      	str	r6, [r4, #24]
+ 800103e:	4617      	mov	r7, r2
+ 8001040:	69a6      	ldr	r6, [r4, #24]
+ 8001042:	eb06 7655 	add.w	r6, r6, r5, lsr #29
+ 8001046:	61a6      	str	r6, [r4, #24]
+ 8001048:	460e      	mov	r6, r1
+ 800104a:	18e9      	adds	r1, r5, r3
+ 800104c:	4288      	cmp	r0, r1
+ 800104e:	d225      	bcs.n	800109c <cmox_md_append+0x90>
+ 8001050:	eba8 0903 	sub.w	r9, r8, r3
+ 8001054:	464a      	mov	r2, r9
+ 8001056:	4631      	mov	r1, r6
+ 8001058:	18f8      	adds	r0, r7, r3
+ 800105a:	f013 f92d 	bl	80142b8 <__aeabi_memcpy>
+ 800105e:	6822      	ldr	r2, [r4, #0]
+ 8001060:	6813      	ldr	r3, [r2, #0]
+ 8001062:	4639      	mov	r1, r7
+ 8001064:	e00f      	b.n	8001086 <cmox_md_append+0x7a>
+ 8001066:	4642      	mov	r2, r8
+ 8001068:	4638      	mov	r0, r7
+ 800106a:	f013 f925 	bl	80142b8 <__aeabi_memcpy>
+ 800106e:	6823      	ldr	r3, [r4, #0]
+ 8001070:	681a      	ldr	r2, [r3, #0]
+ 8001072:	4639      	mov	r1, r7
+ 8001074:	4620      	mov	r0, r4
+ 8001076:	4790      	blx	r2
+ 8001078:	e007      	b.n	800108a <cmox_md_append+0x7e>
+ 800107a:	1831      	adds	r1, r6, r0
+ 800107c:	f011 0003 	ands.w	r0, r1, #3
+ 8001080:	d1f1      	bne.n	8001066 <cmox_md_append+0x5a>
+ 8001082:	6822      	ldr	r2, [r4, #0]
+ 8001084:	6813      	ldr	r3, [r2, #0]
+ 8001086:	4620      	mov	r0, r4
+ 8001088:	4798      	blx	r3
+ 800108a:	4648      	mov	r0, r9
+ 800108c:	eb00 0908 	add.w	r9, r0, r8
+ 8001090:	f1a9 0101 	sub.w	r1, r9, #1
+ 8001094:	42a9      	cmp	r1, r5
+ 8001096:	d3f0      	bcc.n	800107a <cmox_md_append+0x6e>
+ 8001098:	2300      	movs	r3, #0
+ 800109a:	e000      	b.n	800109e <cmox_md_append+0x92>
+ 800109c:	2000      	movs	r0, #0
+ 800109e:	1a2a      	subs	r2, r5, r0
+ 80010a0:	1831      	adds	r1, r6, r0
+ 80010a2:	18f8      	adds	r0, r7, r3
+ 80010a4:	f013 f908 	bl	80142b8 <__aeabi_memcpy>
+ 80010a8:	f44f 3000 	mov.w	r0, #131072	; 0x20000
+ 80010ac:	e8bd 83f2 	ldmia.w	sp!, {r1, r4, r5, r6, r7, r8, r9, pc}
+ 80010b0:	00020004 	.word	0x00020004
+
+080010b4 <cmox_md_generateTag>:
+ 80010b4:	e92d 4ffc 	stmdb	sp!, {r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 80010b8:	4602      	mov	r2, r0
+ 80010ba:	b085      	sub	sp, #20
+ 80010bc:	68d0      	ldr	r0, [r2, #12]
+ 80010be:	6913      	ldr	r3, [r2, #16]
+ 80010c0:	f8df c16c 	ldr.w	ip, [pc, #364]	; 8001230 <cmox_md_generateTag+0x17c>
+ 80010c4:	f8df 816c 	ldr.w	r8, [pc, #364]	; 8001234 <cmox_md_generateTag+0x180>
+ 80010c8:	eba0 0a03 	sub.w	sl, r0, r3
+ 80010cc:	6850      	ldr	r0, [r2, #4]
+ 80010ce:	f040 0004 	orr.w	r0, r0, #4
+ 80010d2:	6050      	str	r0, [r2, #4]
+ 80010d4:	2700      	movs	r7, #0
+ 80010d6:	a803      	add	r0, sp, #12
+ 80010d8:	9002      	str	r0, [sp, #8]
+ 80010da:	f10d 0e0c 	add.w	lr, sp, #12
+ 80010de:	e9d8 3400 	ldrd	r3, r4, [r8]
+ 80010e2:	a803      	add	r0, sp, #12
+ 80010e4:	4d54      	ldr	r5, [pc, #336]	; (8001238 <cmox_md_generateTag+0x184>)
+ 80010e6:	e9c0 3400 	strd	r3, r4, [r0]
+ 80010ea:	7828      	ldrb	r0, [r5, #0]
+ 80010ec:	4d53      	ldr	r5, [pc, #332]	; (800123c <cmox_md_generateTag+0x188>)
+ 80010ee:	2800      	cmp	r0, #0
+ 80010f0:	bf0c      	ite	eq
+ 80010f2:	2300      	moveq	r3, #0
+ 80010f4:	2304      	movne	r3, #4
+ 80010f6:	4699      	mov	r9, r3
+ 80010f8:	f85c 3003 	ldr.w	r3, [ip, r3]
+ 80010fc:	f85e 4009 	ldr.w	r4, [lr, r9]
+ 8001100:	4423      	add	r3, r4
+ 8001102:	2601      	movs	r6, #1
+ 8001104:	601d      	str	r5, [r3, #0]
+ 8001106:	681c      	ldr	r4, [r3, #0]
+ 8001108:	609e      	str	r6, [r3, #8]
+ 800110a:	f8dc 3004 	ldr.w	r3, [ip, #4]
+ 800110e:	9d03      	ldr	r5, [sp, #12]
+ 8001110:	f8dc 9000 	ldr.w	r9, [ip]
+ 8001114:	f8de 6004 	ldr.w	r6, [lr, #4]
+ 8001118:	405d      	eors	r5, r3
+ 800111a:	4065      	eors	r5, r4
+ 800111c:	4c48      	ldr	r4, [pc, #288]	; (8001240 <cmox_md_generateTag+0x18c>)
+ 800111e:	4065      	eors	r5, r4
+ 8001120:	ea89 0606 	eor.w	r6, r9, r6
+ 8001124:	4c47      	ldr	r4, [pc, #284]	; (8001244 <cmox_md_generateTag+0x190>)
+ 8001126:	4066      	eors	r6, r4
+ 8001128:	1975      	adds	r5, r6, r5
+ 800112a:	4c47      	ldr	r4, [pc, #284]	; (8001248 <cmox_md_generateTag+0x194>)
+ 800112c:	4065      	eors	r5, r4
+ 800112e:	e9d8 6b00 	ldrd	r6, fp, [r8]
+ 8001132:	ac03      	add	r4, sp, #12
+ 8001134:	2800      	cmp	r0, #0
+ 8001136:	e9c4 6b00 	strd	r6, fp, [r4]
+ 800113a:	bf0e      	itee	eq
+ 800113c:	2400      	moveq	r4, #0
+ 800113e:	2004      	movne	r0, #4
+ 8001140:	2404      	movne	r4, #4
+ 8001142:	9e02      	ldr	r6, [sp, #8]
+ 8001144:	f85c 0000 	ldr.w	r0, [ip, r0]
+ 8001148:	5934      	ldr	r4, [r6, r4]
+ 800114a:	1820      	adds	r0, r4, r0
+ 800114c:	4c3f      	ldr	r4, [pc, #252]	; (800124c <cmox_md_generateTag+0x198>)
+ 800114e:	6004      	str	r4, [r0, #0]
+ 8001150:	2601      	movs	r6, #1
+ 8001152:	6804      	ldr	r4, [r0, #0]
+ 8001154:	6086      	str	r6, [r0, #8]
+ 8001156:	9803      	ldr	r0, [sp, #12]
+ 8001158:	9e02      	ldr	r6, [sp, #8]
+ 800115a:	4043      	eors	r3, r0
+ 800115c:	4063      	eors	r3, r4
+ 800115e:	4c38      	ldr	r4, [pc, #224]	; (8001240 <cmox_md_generateTag+0x18c>)
+ 8001160:	6870      	ldr	r0, [r6, #4]
+ 8001162:	4063      	eors	r3, r4
+ 8001164:	ea89 0000 	eor.w	r0, r9, r0
+ 8001168:	4c36      	ldr	r4, [pc, #216]	; (8001244 <cmox_md_generateTag+0x190>)
+ 800116a:	4060      	eors	r0, r4
+ 800116c:	4403      	add	r3, r0
+ 800116e:	4838      	ldr	r0, [pc, #224]	; (8001250 <cmox_md_generateTag+0x19c>)
+ 8001170:	4043      	eors	r3, r0
+ 8001172:	0028      	movs	r0, r5
+ 8001174:	bf18      	it	ne
+ 8001176:	2001      	movne	r0, #1
+ 8001178:	1e5b      	subs	r3, r3, #1
+ 800117a:	419b      	sbcs	r3, r3
+ 800117c:	2f04      	cmp	r7, #4
+ 800117e:	bf2c      	ite	cs
+ 8001180:	b2c0      	uxtbcs	r0, r0
+ 8001182:	0fd8      	lsrcc	r0, r3, #31
+ 8001184:	f102 0314 	add.w	r3, r2, #20
+ 8001188:	f853 0020 	ldr.w	r0, [r3, r0, lsl #2]
+ 800118c:	f007 0303 	and.w	r3, r7, #3
+ 8001190:	f1c3 0303 	rsb	r3, r3, #3
+ 8001194:	00db      	lsls	r3, r3, #3
+ 8001196:	40d8      	lsrs	r0, r3
+ 8001198:	f80d 0007 	strb.w	r0, [sp, r7]
+ 800119c:	1c7f      	adds	r7, r7, #1
+ 800119e:	2f08      	cmp	r7, #8
+ 80011a0:	d39d      	bcc.n	80010de <cmox_md_generateTag+0x2a>
+ 80011a2:	4615      	mov	r5, r2
+ 80011a4:	460c      	mov	r4, r1
+ 80011a6:	696a      	ldr	r2, [r5, #20]
+ 80011a8:	69ab      	ldr	r3, [r5, #24]
+ 80011aa:	68e8      	ldr	r0, [r5, #12]
+ 80011ac:	08d2      	lsrs	r2, r2, #3
+ 80011ae:	ea42 7243 	orr.w	r2, r2, r3, lsl #29
+ 80011b2:	1e40      	subs	r0, r0, #1
+ 80011b4:	ea00 0702 	and.w	r7, r0, r2
+ 80011b8:	2300      	movs	r3, #0
+ 80011ba:	4002      	ands	r2, r0
+ 80011bc:	429b      	cmp	r3, r3
+ 80011be:	d80a      	bhi.n	80011d6 <cmox_md_generateTag+0x122>
+ 80011c0:	4552      	cmp	r2, sl
+ 80011c2:	d208      	bcs.n	80011d6 <cmox_md_generateTag+0x122>
+ 80011c4:	2080      	movs	r0, #128	; 0x80
+ 80011c6:	55e0      	strb	r0, [r4, r7]
+ 80011c8:	1c7f      	adds	r7, r7, #1
+ 80011ca:	4557      	cmp	r7, sl
+ 80011cc:	d216      	bcs.n	80011fc <cmox_md_generateTag+0x148>
+ 80011ce:	ebaa 0107 	sub.w	r1, sl, r7
+ 80011d2:	19e0      	adds	r0, r4, r7
+ 80011d4:	e010      	b.n	80011f8 <cmox_md_generateTag+0x144>
+ 80011d6:	2080      	movs	r0, #128	; 0x80
+ 80011d8:	55e0      	strb	r0, [r4, r7]
+ 80011da:	e000      	b.n	80011de <cmox_md_generateTag+0x12a>
+ 80011dc:	55e3      	strb	r3, [r4, r7]
+ 80011de:	68e8      	ldr	r0, [r5, #12]
+ 80011e0:	1c7f      	adds	r7, r7, #1
+ 80011e2:	4287      	cmp	r7, r0
+ 80011e4:	d3fa      	bcc.n	80011dc <cmox_md_generateTag+0x128>
+ 80011e6:	682a      	ldr	r2, [r5, #0]
+ 80011e8:	6813      	ldr	r3, [r2, #0]
+ 80011ea:	4628      	mov	r0, r5
+ 80011ec:	4798      	blx	r3
+ 80011ee:	f1ba 0f00 	cmp.w	sl, #0
+ 80011f2:	d003      	beq.n	80011fc <cmox_md_generateTag+0x148>
+ 80011f4:	4651      	mov	r1, sl
+ 80011f6:	4620      	mov	r0, r4
+ 80011f8:	f013 f860 	bl	80142bc <__aeabi_memclr>
+ 80011fc:	682a      	ldr	r2, [r5, #0]
+ 80011fe:	9e06      	ldr	r6, [sp, #24]
+ 8001200:	9f05      	ldr	r7, [sp, #20]
+ 8001202:	6893      	ldr	r3, [r2, #8]
+ 8001204:	4669      	mov	r1, sp
+ 8001206:	4628      	mov	r0, r5
+ 8001208:	4798      	blx	r3
+ 800120a:	682a      	ldr	r2, [r5, #0]
+ 800120c:	f8d2 9000 	ldr.w	r9, [r2]
+ 8001210:	4621      	mov	r1, r4
+ 8001212:	4628      	mov	r0, r5
+ 8001214:	47c8      	blx	r9
+ 8001216:	682b      	ldr	r3, [r5, #0]
+ 8001218:	68da      	ldr	r2, [r3, #12]
+ 800121a:	4639      	mov	r1, r7
+ 800121c:	4628      	mov	r0, r5
+ 800121e:	4790      	blx	r2
+ 8001220:	b10e      	cbz	r6, 8001226 <cmox_md_generateTag+0x172>
+ 8001222:	68a8      	ldr	r0, [r5, #8]
+ 8001224:	6030      	str	r0, [r6, #0]
+ 8001226:	f44f 3000 	mov.w	r0, #131072	; 0x20000
+ 800122a:	b007      	add	sp, #28
+ 800122c:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 8001230:	08014454 	.word	0x08014454
+ 8001234:	08001254 	.word	0x08001254
+ 8001238:	200008e8 	.word	0x200008e8
+ 800123c:	9310c55f 	.word	0x9310c55f
+ 8001240:	12008504 	.word	0x12008504
+ 8001244:	7a0168fc 	.word	0x7a0168fc
+ 8001248:	ff24f5c0 	.word	0xff24f5c0
+ 800124c:	d433af24 	.word	0xd433af24
+ 8001250:	8b69af26 	.word	0x8b69af26
+ 8001254:	0101b004 	.word	0x0101b004
+ 8001258:	45011700 	.word	0x45011700
+
+0800125c <firstloop_bb_cmp>:
+ 800125c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 800125e:	2401      	movs	r4, #1
+ 8001260:	9400      	str	r4, [sp, #0]
+ 8001262:	2300      	movs	r3, #0
+ 8001264:	2400      	movs	r4, #0
+ 8001266:	e00d      	b.n	8001284 <firstloop_bb_cmp+0x28>
+ 8001268:	9d00      	ldr	r5, [sp, #0]
+ 800126a:	5d06      	ldrb	r6, [r0, r4]
+ 800126c:	5d0f      	ldrb	r7, [r1, r4]
+ 800126e:	407e      	eors	r6, r7
+ 8001270:	43f6      	mvns	r6, r6
+ 8001272:	1c76      	adds	r6, r6, #1
+ 8001274:	0ff6      	lsrs	r6, r6, #31
+ 8001276:	f086 0601 	eor.w	r6, r6, #1
+ 800127a:	4035      	ands	r5, r6
+ 800127c:	9500      	str	r5, [sp, #0]
+ 800127e:	1c64      	adds	r4, r4, #1
+ 8001280:	9d00      	ldr	r5, [sp, #0]
+ 8001282:	18eb      	adds	r3, r5, r3
+ 8001284:	4294      	cmp	r4, r2
+ 8001286:	d3ef      	bcc.n	8001268 <firstloop_bb_cmp+0xc>
+ 8001288:	4618      	mov	r0, r3
+ 800128a:	bdf2      	pop	{r1, r4, r5, r6, r7, pc}
+
+0800128c <secondloop_bb_cmp>:
+ 800128c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 800128e:	2300      	movs	r3, #0
+ 8001290:	2401      	movs	r4, #1
+ 8001292:	9400      	str	r4, [sp, #0]
+ 8001294:	2a00      	cmp	r2, #0
+ 8001296:	e011      	b.n	80012bc <secondloop_bb_cmp+0x30>
+ 8001298:	9c00      	ldr	r4, [sp, #0]
+ 800129a:	1885      	adds	r5, r0, r2
+ 800129c:	188f      	adds	r7, r1, r2
+ 800129e:	f815 6c01 	ldrb.w	r6, [r5, #-1]
+ 80012a2:	f817 5c01 	ldrb.w	r5, [r7, #-1]
+ 80012a6:	406e      	eors	r6, r5
+ 80012a8:	43f6      	mvns	r6, r6
+ 80012aa:	1c76      	adds	r6, r6, #1
+ 80012ac:	0ff6      	lsrs	r6, r6, #31
+ 80012ae:	f086 0601 	eor.w	r6, r6, #1
+ 80012b2:	4034      	ands	r4, r6
+ 80012b4:	9400      	str	r4, [sp, #0]
+ 80012b6:	9c00      	ldr	r4, [sp, #0]
+ 80012b8:	18e3      	adds	r3, r4, r3
+ 80012ba:	1e52      	subs	r2, r2, #1
+ 80012bc:	d1ec      	bne.n	8001298 <secondloop_bb_cmp+0xc>
+ 80012be:	4618      	mov	r0, r3
+ 80012c0:	bdf2      	pop	{r1, r4, r5, r6, r7, pc}
+	...
+
+080012c4 <bufType_bb>:
+ 80012c4:	125d 0800 128d 0800 0001 0000               ]...........
+
+080012d0 <cmox_utils_robustCmp>:
+ 80012d0:	e92d 4ff8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 80012d4:	461d      	mov	r5, r3
+ 80012d6:	f8dd 9028 	ldr.w	r9, [sp, #40]	; 0x28
+ 80012da:	9f0b      	ldr	r7, [sp, #44]	; 0x2c
+ 80012dc:	9c0d      	ldr	r4, [sp, #52]	; 0x34
+ 80012de:	f04f 33ff 	mov.w	r3, #4294967295
+ 80012e2:	9300      	str	r3, [sp, #0]
+ 80012e4:	460e      	mov	r6, r1
+ 80012e6:	4692      	mov	sl, r2
+ 80012e8:	f8d9 b000 	ldr.w	fp, [r9]
+ 80012ec:	4680      	mov	r8, r0
+ 80012ee:	4632      	mov	r2, r6
+ 80012f0:	4651      	mov	r1, sl
+ 80012f2:	47d8      	blx	fp
+ 80012f4:	4683      	mov	fp, r0
+ 80012f6:	b364      	cbz	r4, 8001352 <cmox_utils_robustCmp+0x82>
+ 80012f8:	f8d9 3004 	ldr.w	r3, [r9, #4]
+ 80012fc:	4632      	mov	r2, r6
+ 80012fe:	4651      	mov	r1, sl
+ 8001300:	4640      	mov	r0, r8
+ 8001302:	4798      	blx	r3
+ 8001304:	ea6f 020b 	mvn.w	r2, fp
+ 8001308:	1c52      	adds	r2, r2, #1
+ 800130a:	ea42 020b 	orr.w	r2, r2, fp
+ 800130e:	9900      	ldr	r1, [sp, #0]
+ 8001310:	ea6f 73d2 	mvn.w	r3, r2, lsr #31
+ 8001314:	1c5b      	adds	r3, r3, #1
+ 8001316:	4019      	ands	r1, r3
+ 8001318:	43c2      	mvns	r2, r0
+ 800131a:	9100      	str	r1, [sp, #0]
+ 800131c:	1c52      	adds	r2, r2, #1
+ 800131e:	4302      	orrs	r2, r0
+ 8001320:	9900      	ldr	r1, [sp, #0]
+ 8001322:	ea6f 73d2 	mvn.w	r3, r2, lsr #31
+ 8001326:	1c5b      	adds	r3, r3, #1
+ 8001328:	4019      	ands	r1, r3
+ 800132a:	9100      	str	r1, [sp, #0]
+ 800132c:	f086 3155 	eor.w	r1, r6, #1431655765	; 0x55555555
+ 8001330:	4048      	eors	r0, r1
+ 8001332:	ea87 0100 	eor.w	r1, r7, r0
+ 8001336:	f081 3155 	eor.w	r1, r1, #1431655765	; 0x55555555
+ 800133a:	6021      	str	r1, [r4, #0]
+ 800133c:	f080 3155 	eor.w	r1, r0, #1431655765	; 0x55555555
+ 8001340:	43c9      	mvns	r1, r1
+ 8001342:	1c49      	adds	r1, r1, #1
+ 8001344:	4308      	orrs	r0, r1
+ 8001346:	9a00      	ldr	r2, [sp, #0]
+ 8001348:	ea6f 70d0 	mvn.w	r0, r0, lsr #31
+ 800134c:	1c40      	adds	r0, r0, #1
+ 800134e:	4382      	bics	r2, r0
+ 8001350:	9200      	str	r2, [sp, #0]
+ 8001352:	f8d9 0008 	ldr.w	r0, [r9, #8]
+ 8001356:	2801      	cmp	r0, #1
+ 8001358:	d109      	bne.n	800136e <cmox_utils_robustCmp+0x9e>
+ 800135a:	4075      	eors	r5, r6
+ 800135c:	43e9      	mvns	r1, r5
+ 800135e:	1c49      	adds	r1, r1, #1
+ 8001360:	430d      	orrs	r5, r1
+ 8001362:	9800      	ldr	r0, [sp, #0]
+ 8001364:	ea6f 72d5 	mvn.w	r2, r5, lsr #31
+ 8001368:	1c52      	adds	r2, r2, #1
+ 800136a:	4390      	bics	r0, r2
+ 800136c:	e00a      	b.n	8001384 <cmox_utils_robustCmp+0xb4>
+ 800136e:	1cf1      	adds	r1, r6, #3
+ 8001370:	ea85 0291 	eor.w	r2, r5, r1, lsr #2
+ 8001374:	43d2      	mvns	r2, r2
+ 8001376:	1c52      	adds	r2, r2, #1
+ 8001378:	4315      	orrs	r5, r2
+ 800137a:	9800      	ldr	r0, [sp, #0]
+ 800137c:	ea6f 73d5 	mvn.w	r3, r5, lsr #31
+ 8001380:	1c5b      	adds	r3, r3, #1
+ 8001382:	4398      	bics	r0, r3
+ 8001384:	f086 36aa 	eor.w	r6, r6, #2863311530	; 0xaaaaaaaa
+ 8001388:	9000      	str	r0, [sp, #0]
+ 800138a:	ea86 060b 	eor.w	r6, r6, fp
+ 800138e:	f086 33aa 	eor.w	r3, r6, #2863311530	; 0xaaaaaaaa
+ 8001392:	43f2      	mvns	r2, r6
+ 8001394:	43db      	mvns	r3, r3
+ 8001396:	980c      	ldr	r0, [sp, #48]	; 0x30
+ 8001398:	f3c2 72c0 	ubfx	r2, r2, #31, #1
+ 800139c:	1c5b      	adds	r3, r3, #1
+ 800139e:	ea42 72d3 	orr.w	r2, r2, r3, lsr #31
+ 80013a2:	9900      	ldr	r1, [sp, #0]
+ 80013a4:	43d2      	mvns	r2, r2
+ 80013a6:	1c52      	adds	r2, r2, #1
+ 80013a8:	4391      	bics	r1, r2
+ 80013aa:	9100      	str	r1, [sp, #0]
+ 80013ac:	4077      	eors	r7, r6
+ 80013ae:	9900      	ldr	r1, [sp, #0]
+ 80013b0:	4388      	bics	r0, r1
+ 80013b2:	9900      	ldr	r1, [sp, #0]
+ 80013b4:	f087 37aa 	eor.w	r7, r7, #2863311530	; 0xaaaaaaaa
+ 80013b8:	400f      	ands	r7, r1
+ 80013ba:	4338      	orrs	r0, r7
+ 80013bc:	e8bd 8ff2 	ldmia.w	sp!, {r1, r4, r5, r6, r7, r8, r9, sl, fp, pc}
+
+080013c0 <strlen>:
+ 80013c0:	4603      	mov	r3, r0
+ 80013c2:	f813 2b01 	ldrb.w	r2, [r3], #1
+ 80013c6:	2a00      	cmp	r2, #0
+ 80013c8:	d1fb      	bne.n	80013c2 <strlen+0x2>
+ 80013ca:	1a18      	subs	r0, r3, r0
+ 80013cc:	3801      	subs	r0, #1
+ 80013ce:	4770      	bx	lr
+
+080013d0 <__aeabi_drsub>:
+ 80013d0:	f081 4100 	eor.w	r1, r1, #2147483648	; 0x80000000
+ 80013d4:	e002      	b.n	80013dc <__adddf3>
+ 80013d6:	bf00      	nop
+
+080013d8 <__aeabi_dsub>:
+ 80013d8:	f083 4300 	eor.w	r3, r3, #2147483648	; 0x80000000
+
+080013dc <__adddf3>:
+ 80013dc:	b530      	push	{r4, r5, lr}
+ 80013de:	ea4f 0441 	mov.w	r4, r1, lsl #1
+ 80013e2:	ea4f 0543 	mov.w	r5, r3, lsl #1
+ 80013e6:	ea94 0f05 	teq	r4, r5
+ 80013ea:	bf08      	it	eq
+ 80013ec:	ea90 0f02 	teqeq	r0, r2
+ 80013f0:	bf1f      	itttt	ne
+ 80013f2:	ea54 0c00 	orrsne.w	ip, r4, r0
+ 80013f6:	ea55 0c02 	orrsne.w	ip, r5, r2
+ 80013fa:	ea7f 5c64 	mvnsne.w	ip, r4, asr #21
+ 80013fe:	ea7f 5c65 	mvnsne.w	ip, r5, asr #21
+ 8001402:	f000 80e2 	beq.w	80015ca <__adddf3+0x1ee>
+ 8001406:	ea4f 5454 	mov.w	r4, r4, lsr #21
+ 800140a:	ebd4 5555 	rsbs	r5, r4, r5, lsr #21
+ 800140e:	bfb8      	it	lt
+ 8001410:	426d      	neglt	r5, r5
+ 8001412:	dd0c      	ble.n	800142e <__adddf3+0x52>
+ 8001414:	442c      	add	r4, r5
+ 8001416:	ea80 0202 	eor.w	r2, r0, r2
+ 800141a:	ea81 0303 	eor.w	r3, r1, r3
+ 800141e:	ea82 0000 	eor.w	r0, r2, r0
+ 8001422:	ea83 0101 	eor.w	r1, r3, r1
+ 8001426:	ea80 0202 	eor.w	r2, r0, r2
+ 800142a:	ea81 0303 	eor.w	r3, r1, r3
+ 800142e:	2d36      	cmp	r5, #54	; 0x36
+ 8001430:	bf88      	it	hi
+ 8001432:	bd30      	pophi	{r4, r5, pc}
+ 8001434:	f011 4f00 	tst.w	r1, #2147483648	; 0x80000000
+ 8001438:	ea4f 3101 	mov.w	r1, r1, lsl #12
+ 800143c:	f44f 1c80 	mov.w	ip, #1048576	; 0x100000
+ 8001440:	ea4c 3111 	orr.w	r1, ip, r1, lsr #12
+ 8001444:	d002      	beq.n	800144c <__adddf3+0x70>
+ 8001446:	4240      	negs	r0, r0
+ 8001448:	eb61 0141 	sbc.w	r1, r1, r1, lsl #1
+ 800144c:	f013 4f00 	tst.w	r3, #2147483648	; 0x80000000
+ 8001450:	ea4f 3303 	mov.w	r3, r3, lsl #12
+ 8001454:	ea4c 3313 	orr.w	r3, ip, r3, lsr #12
+ 8001458:	d002      	beq.n	8001460 <__adddf3+0x84>
+ 800145a:	4252      	negs	r2, r2
+ 800145c:	eb63 0343 	sbc.w	r3, r3, r3, lsl #1
+ 8001460:	ea94 0f05 	teq	r4, r5
+ 8001464:	f000 80a7 	beq.w	80015b6 <__adddf3+0x1da>
+ 8001468:	f1a4 0401 	sub.w	r4, r4, #1
+ 800146c:	f1d5 0e20 	rsbs	lr, r5, #32
+ 8001470:	db0d      	blt.n	800148e <__adddf3+0xb2>
+ 8001472:	fa02 fc0e 	lsl.w	ip, r2, lr
+ 8001476:	fa22 f205 	lsr.w	r2, r2, r5
+ 800147a:	1880      	adds	r0, r0, r2
+ 800147c:	f141 0100 	adc.w	r1, r1, #0
+ 8001480:	fa03 f20e 	lsl.w	r2, r3, lr
+ 8001484:	1880      	adds	r0, r0, r2
+ 8001486:	fa43 f305 	asr.w	r3, r3, r5
+ 800148a:	4159      	adcs	r1, r3
+ 800148c:	e00e      	b.n	80014ac <__adddf3+0xd0>
+ 800148e:	f1a5 0520 	sub.w	r5, r5, #32
+ 8001492:	f10e 0e20 	add.w	lr, lr, #32
+ 8001496:	2a01      	cmp	r2, #1
+ 8001498:	fa03 fc0e 	lsl.w	ip, r3, lr
+ 800149c:	bf28      	it	cs
+ 800149e:	f04c 0c02 	orrcs.w	ip, ip, #2
+ 80014a2:	fa43 f305 	asr.w	r3, r3, r5
+ 80014a6:	18c0      	adds	r0, r0, r3
+ 80014a8:	eb51 71e3 	adcs.w	r1, r1, r3, asr #31
+ 80014ac:	f001 4500 	and.w	r5, r1, #2147483648	; 0x80000000
+ 80014b0:	d507      	bpl.n	80014c2 <__adddf3+0xe6>
+ 80014b2:	f04f 0e00 	mov.w	lr, #0
+ 80014b6:	f1dc 0c00 	rsbs	ip, ip, #0
+ 80014ba:	eb7e 0000 	sbcs.w	r0, lr, r0
+ 80014be:	eb6e 0101 	sbc.w	r1, lr, r1
+ 80014c2:	f5b1 1f80 	cmp.w	r1, #1048576	; 0x100000
+ 80014c6:	d31b      	bcc.n	8001500 <__adddf3+0x124>
+ 80014c8:	f5b1 1f00 	cmp.w	r1, #2097152	; 0x200000
+ 80014cc:	d30c      	bcc.n	80014e8 <__adddf3+0x10c>
+ 80014ce:	0849      	lsrs	r1, r1, #1
+ 80014d0:	ea5f 0030 	movs.w	r0, r0, rrx
+ 80014d4:	ea4f 0c3c 	mov.w	ip, ip, rrx
+ 80014d8:	f104 0401 	add.w	r4, r4, #1
+ 80014dc:	ea4f 5244 	mov.w	r2, r4, lsl #21
+ 80014e0:	f512 0f80 	cmn.w	r2, #4194304	; 0x400000
+ 80014e4:	f080 809a 	bcs.w	800161c <__adddf3+0x240>
+ 80014e8:	f1bc 4f00 	cmp.w	ip, #2147483648	; 0x80000000
+ 80014ec:	bf08      	it	eq
+ 80014ee:	ea5f 0c50 	movseq.w	ip, r0, lsr #1
+ 80014f2:	f150 0000 	adcs.w	r0, r0, #0
+ 80014f6:	eb41 5104 	adc.w	r1, r1, r4, lsl #20
+ 80014fa:	ea41 0105 	orr.w	r1, r1, r5
+ 80014fe:	bd30      	pop	{r4, r5, pc}
+ 8001500:	ea5f 0c4c 	movs.w	ip, ip, lsl #1
+ 8001504:	4140      	adcs	r0, r0
+ 8001506:	eb41 0101 	adc.w	r1, r1, r1
+ 800150a:	3c01      	subs	r4, #1
+ 800150c:	bf28      	it	cs
+ 800150e:	f5b1 1f80 	cmpcs.w	r1, #1048576	; 0x100000
+ 8001512:	d2e9      	bcs.n	80014e8 <__adddf3+0x10c>
+ 8001514:	f091 0f00 	teq	r1, #0
+ 8001518:	bf04      	itt	eq
+ 800151a:	4601      	moveq	r1, r0
+ 800151c:	2000      	moveq	r0, #0
+ 800151e:	fab1 f381 	clz	r3, r1
+ 8001522:	bf08      	it	eq
+ 8001524:	3320      	addeq	r3, #32
+ 8001526:	f1a3 030b 	sub.w	r3, r3, #11
+ 800152a:	f1b3 0220 	subs.w	r2, r3, #32
+ 800152e:	da0c      	bge.n	800154a <__adddf3+0x16e>
+ 8001530:	320c      	adds	r2, #12
+ 8001532:	dd08      	ble.n	8001546 <__adddf3+0x16a>
+ 8001534:	f102 0c14 	add.w	ip, r2, #20
+ 8001538:	f1c2 020c 	rsb	r2, r2, #12
+ 800153c:	fa01 f00c 	lsl.w	r0, r1, ip
+ 8001540:	fa21 f102 	lsr.w	r1, r1, r2
+ 8001544:	e00c      	b.n	8001560 <__adddf3+0x184>
+ 8001546:	f102 0214 	add.w	r2, r2, #20
+ 800154a:	bfd8      	it	le
+ 800154c:	f1c2 0c20 	rsble	ip, r2, #32
+ 8001550:	fa01 f102 	lsl.w	r1, r1, r2
+ 8001554:	fa20 fc0c 	lsr.w	ip, r0, ip
+ 8001558:	bfdc      	itt	le
+ 800155a:	ea41 010c 	orrle.w	r1, r1, ip
+ 800155e:	4090      	lslle	r0, r2
+ 8001560:	1ae4      	subs	r4, r4, r3
+ 8001562:	bfa2      	ittt	ge
+ 8001564:	eb01 5104 	addge.w	r1, r1, r4, lsl #20
+ 8001568:	4329      	orrge	r1, r5
+ 800156a:	bd30      	popge	{r4, r5, pc}
+ 800156c:	ea6f 0404 	mvn.w	r4, r4
+ 8001570:	3c1f      	subs	r4, #31
+ 8001572:	da1c      	bge.n	80015ae <__adddf3+0x1d2>
+ 8001574:	340c      	adds	r4, #12
+ 8001576:	dc0e      	bgt.n	8001596 <__adddf3+0x1ba>
+ 8001578:	f104 0414 	add.w	r4, r4, #20
+ 800157c:	f1c4 0220 	rsb	r2, r4, #32
+ 8001580:	fa20 f004 	lsr.w	r0, r0, r4
+ 8001584:	fa01 f302 	lsl.w	r3, r1, r2
+ 8001588:	ea40 0003 	orr.w	r0, r0, r3
+ 800158c:	fa21 f304 	lsr.w	r3, r1, r4
+ 8001590:	ea45 0103 	orr.w	r1, r5, r3
+ 8001594:	bd30      	pop	{r4, r5, pc}
+ 8001596:	f1c4 040c 	rsb	r4, r4, #12
+ 800159a:	f1c4 0220 	rsb	r2, r4, #32
+ 800159e:	fa20 f002 	lsr.w	r0, r0, r2
+ 80015a2:	fa01 f304 	lsl.w	r3, r1, r4
+ 80015a6:	ea40 0003 	orr.w	r0, r0, r3
+ 80015aa:	4629      	mov	r1, r5
+ 80015ac:	bd30      	pop	{r4, r5, pc}
+ 80015ae:	fa21 f004 	lsr.w	r0, r1, r4
+ 80015b2:	4629      	mov	r1, r5
+ 80015b4:	bd30      	pop	{r4, r5, pc}
+ 80015b6:	f094 0f00 	teq	r4, #0
+ 80015ba:	f483 1380 	eor.w	r3, r3, #1048576	; 0x100000
+ 80015be:	bf06      	itte	eq
+ 80015c0:	f481 1180 	eoreq.w	r1, r1, #1048576	; 0x100000
+ 80015c4:	3401      	addeq	r4, #1
+ 80015c6:	3d01      	subne	r5, #1
+ 80015c8:	e74e      	b.n	8001468 <__adddf3+0x8c>
+ 80015ca:	ea7f 5c64 	mvns.w	ip, r4, asr #21
+ 80015ce:	bf18      	it	ne
+ 80015d0:	ea7f 5c65 	mvnsne.w	ip, r5, asr #21
+ 80015d4:	d029      	beq.n	800162a <__adddf3+0x24e>
+ 80015d6:	ea94 0f05 	teq	r4, r5
+ 80015da:	bf08      	it	eq
+ 80015dc:	ea90 0f02 	teqeq	r0, r2
+ 80015e0:	d005      	beq.n	80015ee <__adddf3+0x212>
+ 80015e2:	ea54 0c00 	orrs.w	ip, r4, r0
+ 80015e6:	bf04      	itt	eq
+ 80015e8:	4619      	moveq	r1, r3
+ 80015ea:	4610      	moveq	r0, r2
+ 80015ec:	bd30      	pop	{r4, r5, pc}
+ 80015ee:	ea91 0f03 	teq	r1, r3
+ 80015f2:	bf1e      	ittt	ne
+ 80015f4:	2100      	movne	r1, #0
+ 80015f6:	2000      	movne	r0, #0
+ 80015f8:	bd30      	popne	{r4, r5, pc}
+ 80015fa:	ea5f 5c54 	movs.w	ip, r4, lsr #21
+ 80015fe:	d105      	bne.n	800160c <__adddf3+0x230>
+ 8001600:	0040      	lsls	r0, r0, #1
+ 8001602:	4149      	adcs	r1, r1
+ 8001604:	bf28      	it	cs
+ 8001606:	f041 4100 	orrcs.w	r1, r1, #2147483648	; 0x80000000
+ 800160a:	bd30      	pop	{r4, r5, pc}
+ 800160c:	f514 0480 	adds.w	r4, r4, #4194304	; 0x400000
+ 8001610:	bf3c      	itt	cc
+ 8001612:	f501 1180 	addcc.w	r1, r1, #1048576	; 0x100000
+ 8001616:	bd30      	popcc	{r4, r5, pc}
+ 8001618:	f001 4500 	and.w	r5, r1, #2147483648	; 0x80000000
+ 800161c:	f045 41fe 	orr.w	r1, r5, #2130706432	; 0x7f000000
+ 8001620:	f441 0170 	orr.w	r1, r1, #15728640	; 0xf00000
+ 8001624:	f04f 0000 	mov.w	r0, #0
+ 8001628:	bd30      	pop	{r4, r5, pc}
+ 800162a:	ea7f 5c64 	mvns.w	ip, r4, asr #21
+ 800162e:	bf1a      	itte	ne
+ 8001630:	4619      	movne	r1, r3
+ 8001632:	4610      	movne	r0, r2
+ 8001634:	ea7f 5c65 	mvnseq.w	ip, r5, asr #21
+ 8001638:	bf1c      	itt	ne
+ 800163a:	460b      	movne	r3, r1
+ 800163c:	4602      	movne	r2, r0
+ 800163e:	ea50 3401 	orrs.w	r4, r0, r1, lsl #12
+ 8001642:	bf06      	itte	eq
+ 8001644:	ea52 3503 	orrseq.w	r5, r2, r3, lsl #12
+ 8001648:	ea91 0f03 	teqeq	r1, r3
+ 800164c:	f441 2100 	orrne.w	r1, r1, #524288	; 0x80000
+ 8001650:	bd30      	pop	{r4, r5, pc}
+ 8001652:	bf00      	nop
+
+08001654 <__aeabi_ui2d>:
+ 8001654:	f090 0f00 	teq	r0, #0
+ 8001658:	bf04      	itt	eq
+ 800165a:	2100      	moveq	r1, #0
+ 800165c:	4770      	bxeq	lr
+ 800165e:	b530      	push	{r4, r5, lr}
+ 8001660:	f44f 6480 	mov.w	r4, #1024	; 0x400
+ 8001664:	f104 0432 	add.w	r4, r4, #50	; 0x32
+ 8001668:	f04f 0500 	mov.w	r5, #0
+ 800166c:	f04f 0100 	mov.w	r1, #0
+ 8001670:	e750      	b.n	8001514 <__adddf3+0x138>
+ 8001672:	bf00      	nop
+
+08001674 <__aeabi_i2d>:
+ 8001674:	f090 0f00 	teq	r0, #0
+ 8001678:	bf04      	itt	eq
+ 800167a:	2100      	moveq	r1, #0
+ 800167c:	4770      	bxeq	lr
+ 800167e:	b530      	push	{r4, r5, lr}
+ 8001680:	f44f 6480 	mov.w	r4, #1024	; 0x400
+ 8001684:	f104 0432 	add.w	r4, r4, #50	; 0x32
+ 8001688:	f010 4500 	ands.w	r5, r0, #2147483648	; 0x80000000
+ 800168c:	bf48      	it	mi
+ 800168e:	4240      	negmi	r0, r0
+ 8001690:	f04f 0100 	mov.w	r1, #0
+ 8001694:	e73e      	b.n	8001514 <__adddf3+0x138>
+ 8001696:	bf00      	nop
+
+08001698 <__aeabi_f2d>:
+ 8001698:	0042      	lsls	r2, r0, #1
+ 800169a:	ea4f 01e2 	mov.w	r1, r2, asr #3
+ 800169e:	ea4f 0131 	mov.w	r1, r1, rrx
+ 80016a2:	ea4f 7002 	mov.w	r0, r2, lsl #28
+ 80016a6:	bf1f      	itttt	ne
+ 80016a8:	f012 437f 	andsne.w	r3, r2, #4278190080	; 0xff000000
+ 80016ac:	f093 4f7f 	teqne	r3, #4278190080	; 0xff000000
+ 80016b0:	f081 5160 	eorne.w	r1, r1, #939524096	; 0x38000000
+ 80016b4:	4770      	bxne	lr
+ 80016b6:	f032 427f 	bics.w	r2, r2, #4278190080	; 0xff000000
+ 80016ba:	bf08      	it	eq
+ 80016bc:	4770      	bxeq	lr
+ 80016be:	f093 4f7f 	teq	r3, #4278190080	; 0xff000000
+ 80016c2:	bf04      	itt	eq
+ 80016c4:	f441 2100 	orreq.w	r1, r1, #524288	; 0x80000
+ 80016c8:	4770      	bxeq	lr
+ 80016ca:	b530      	push	{r4, r5, lr}
+ 80016cc:	f44f 7460 	mov.w	r4, #896	; 0x380
+ 80016d0:	f001 4500 	and.w	r5, r1, #2147483648	; 0x80000000
+ 80016d4:	f021 4100 	bic.w	r1, r1, #2147483648	; 0x80000000
+ 80016d8:	e71c      	b.n	8001514 <__adddf3+0x138>
+ 80016da:	bf00      	nop
+
+080016dc <__aeabi_ul2d>:
+ 80016dc:	ea50 0201 	orrs.w	r2, r0, r1
+ 80016e0:	bf08      	it	eq
+ 80016e2:	4770      	bxeq	lr
+ 80016e4:	b530      	push	{r4, r5, lr}
+ 80016e6:	f04f 0500 	mov.w	r5, #0
+ 80016ea:	e00a      	b.n	8001702 <__aeabi_l2d+0x16>
+
+080016ec <__aeabi_l2d>:
+ 80016ec:	ea50 0201 	orrs.w	r2, r0, r1
+ 80016f0:	bf08      	it	eq
+ 80016f2:	4770      	bxeq	lr
+ 80016f4:	b530      	push	{r4, r5, lr}
+ 80016f6:	f011 4500 	ands.w	r5, r1, #2147483648	; 0x80000000
+ 80016fa:	d502      	bpl.n	8001702 <__aeabi_l2d+0x16>
+ 80016fc:	4240      	negs	r0, r0
+ 80016fe:	eb61 0141 	sbc.w	r1, r1, r1, lsl #1
+ 8001702:	f44f 6480 	mov.w	r4, #1024	; 0x400
+ 8001706:	f104 0432 	add.w	r4, r4, #50	; 0x32
+ 800170a:	ea5f 5c91 	movs.w	ip, r1, lsr #22
+ 800170e:	f43f aed8 	beq.w	80014c2 <__adddf3+0xe6>
+ 8001712:	f04f 0203 	mov.w	r2, #3
+ 8001716:	ea5f 0cdc 	movs.w	ip, ip, lsr #3
+ 800171a:	bf18      	it	ne
+ 800171c:	3203      	addne	r2, #3
+ 800171e:	ea5f 0cdc 	movs.w	ip, ip, lsr #3
+ 8001722:	bf18      	it	ne
+ 8001724:	3203      	addne	r2, #3
+ 8001726:	eb02 02dc 	add.w	r2, r2, ip, lsr #3
+ 800172a:	f1c2 0320 	rsb	r3, r2, #32
+ 800172e:	fa00 fc03 	lsl.w	ip, r0, r3
+ 8001732:	fa20 f002 	lsr.w	r0, r0, r2
+ 8001736:	fa01 fe03 	lsl.w	lr, r1, r3
+ 800173a:	ea40 000e 	orr.w	r0, r0, lr
+ 800173e:	fa21 f102 	lsr.w	r1, r1, r2
+ 8001742:	4414      	add	r4, r2
+ 8001744:	e6bd      	b.n	80014c2 <__adddf3+0xe6>
+ 8001746:	bf00      	nop
+
+08001748 <__gedf2>:
+ 8001748:	f04f 3cff 	mov.w	ip, #4294967295
+ 800174c:	e006      	b.n	800175c <__cmpdf2+0x4>
+ 800174e:	bf00      	nop
+
+08001750 <__ledf2>:
+ 8001750:	f04f 0c01 	mov.w	ip, #1
+ 8001754:	e002      	b.n	800175c <__cmpdf2+0x4>
+ 8001756:	bf00      	nop
+
+08001758 <__cmpdf2>:
+ 8001758:	f04f 0c01 	mov.w	ip, #1
+ 800175c:	f84d cd04 	str.w	ip, [sp, #-4]!
+ 8001760:	ea4f 0c41 	mov.w	ip, r1, lsl #1
+ 8001764:	ea7f 5c6c 	mvns.w	ip, ip, asr #21
+ 8001768:	ea4f 0c43 	mov.w	ip, r3, lsl #1
+ 800176c:	bf18      	it	ne
+ 800176e:	ea7f 5c6c 	mvnsne.w	ip, ip, asr #21
+ 8001772:	d01b      	beq.n	80017ac <__cmpdf2+0x54>
+ 8001774:	b001      	add	sp, #4
+ 8001776:	ea50 0c41 	orrs.w	ip, r0, r1, lsl #1
+ 800177a:	bf0c      	ite	eq
+ 800177c:	ea52 0c43 	orrseq.w	ip, r2, r3, lsl #1
+ 8001780:	ea91 0f03 	teqne	r1, r3
+ 8001784:	bf02      	ittt	eq
+ 8001786:	ea90 0f02 	teqeq	r0, r2
+ 800178a:	2000      	moveq	r0, #0
+ 800178c:	4770      	bxeq	lr
+ 800178e:	f110 0f00 	cmn.w	r0, #0
+ 8001792:	ea91 0f03 	teq	r1, r3
+ 8001796:	bf58      	it	pl
+ 8001798:	4299      	cmppl	r1, r3
+ 800179a:	bf08      	it	eq
+ 800179c:	4290      	cmpeq	r0, r2
+ 800179e:	bf2c      	ite	cs
+ 80017a0:	17d8      	asrcs	r0, r3, #31
+ 80017a2:	ea6f 70e3 	mvncc.w	r0, r3, asr #31
+ 80017a6:	f040 0001 	orr.w	r0, r0, #1
+ 80017aa:	4770      	bx	lr
+ 80017ac:	ea4f 0c41 	mov.w	ip, r1, lsl #1
+ 80017b0:	ea7f 5c6c 	mvns.w	ip, ip, asr #21
+ 80017b4:	d102      	bne.n	80017bc <__cmpdf2+0x64>
+ 80017b6:	ea50 3c01 	orrs.w	ip, r0, r1, lsl #12
+ 80017ba:	d107      	bne.n	80017cc <__cmpdf2+0x74>
+ 80017bc:	ea4f 0c43 	mov.w	ip, r3, lsl #1
+ 80017c0:	ea7f 5c6c 	mvns.w	ip, ip, asr #21
+ 80017c4:	d1d6      	bne.n	8001774 <__cmpdf2+0x1c>
+ 80017c6:	ea52 3c03 	orrs.w	ip, r2, r3, lsl #12
+ 80017ca:	d0d3      	beq.n	8001774 <__cmpdf2+0x1c>
+ 80017cc:	f85d 0b04 	ldr.w	r0, [sp], #4
+ 80017d0:	4770      	bx	lr
+ 80017d2:	bf00      	nop
+
+080017d4 <__aeabi_cdrcmple>:
+ 80017d4:	4684      	mov	ip, r0
+ 80017d6:	4610      	mov	r0, r2
+ 80017d8:	4662      	mov	r2, ip
+ 80017da:	468c      	mov	ip, r1
+ 80017dc:	4619      	mov	r1, r3
+ 80017de:	4663      	mov	r3, ip
+ 80017e0:	e000      	b.n	80017e4 <__aeabi_cdcmpeq>
+ 80017e2:	bf00      	nop
+
+080017e4 <__aeabi_cdcmpeq>:
+ 80017e4:	b501      	push	{r0, lr}
+ 80017e6:	f7ff ffb7 	bl	8001758 <__cmpdf2>
+ 80017ea:	2800      	cmp	r0, #0
+ 80017ec:	bf48      	it	mi
+ 80017ee:	f110 0f00 	cmnmi.w	r0, #0
+ 80017f2:	bd01      	pop	{r0, pc}
+
+080017f4 <__aeabi_dcmpeq>:
+ 80017f4:	f84d ed08 	str.w	lr, [sp, #-8]!
+ 80017f8:	f7ff fff4 	bl	80017e4 <__aeabi_cdcmpeq>
+ 80017fc:	bf0c      	ite	eq
+ 80017fe:	2001      	moveq	r0, #1
+ 8001800:	2000      	movne	r0, #0
+ 8001802:	f85d fb08 	ldr.w	pc, [sp], #8
+ 8001806:	bf00      	nop
+
+08001808 <__aeabi_dcmplt>:
+ 8001808:	f84d ed08 	str.w	lr, [sp, #-8]!
+ 800180c:	f7ff ffea 	bl	80017e4 <__aeabi_cdcmpeq>
+ 8001810:	bf34      	ite	cc
+ 8001812:	2001      	movcc	r0, #1
+ 8001814:	2000      	movcs	r0, #0
+ 8001816:	f85d fb08 	ldr.w	pc, [sp], #8
+ 800181a:	bf00      	nop
+
+0800181c <__aeabi_dcmple>:
+ 800181c:	f84d ed08 	str.w	lr, [sp, #-8]!
+ 8001820:	f7ff ffe0 	bl	80017e4 <__aeabi_cdcmpeq>
+ 8001824:	bf94      	ite	ls
+ 8001826:	2001      	movls	r0, #1
+ 8001828:	2000      	movhi	r0, #0
+ 800182a:	f85d fb08 	ldr.w	pc, [sp], #8
+ 800182e:	bf00      	nop
+
+08001830 <__aeabi_dcmpge>:
+ 8001830:	f84d ed08 	str.w	lr, [sp, #-8]!
+ 8001834:	f7ff ffce 	bl	80017d4 <__aeabi_cdrcmple>
+ 8001838:	bf94      	ite	ls
+ 800183a:	2001      	movls	r0, #1
+ 800183c:	2000      	movhi	r0, #0
+ 800183e:	f85d fb08 	ldr.w	pc, [sp], #8
+ 8001842:	bf00      	nop
+
+08001844 <__aeabi_dcmpgt>:
+ 8001844:	f84d ed08 	str.w	lr, [sp, #-8]!
+ 8001848:	f7ff ffc4 	bl	80017d4 <__aeabi_cdrcmple>
+ 800184c:	bf34      	ite	cc
+ 800184e:	2001      	movcc	r0, #1
+ 8001850:	2000      	movcs	r0, #0
+ 8001852:	f85d fb08 	ldr.w	pc, [sp], #8
+ 8001856:	bf00      	nop
+
+08001858 <__aeabi_d2iz>:
+ 8001858:	ea4f 0241 	mov.w	r2, r1, lsl #1
+ 800185c:	f512 1200 	adds.w	r2, r2, #2097152	; 0x200000
+ 8001860:	d215      	bcs.n	800188e <__aeabi_d2iz+0x36>
+ 8001862:	d511      	bpl.n	8001888 <__aeabi_d2iz+0x30>
+ 8001864:	f46f 7378 	mvn.w	r3, #992	; 0x3e0
+ 8001868:	ebb3 5262 	subs.w	r2, r3, r2, asr #21
+ 800186c:	d912      	bls.n	8001894 <__aeabi_d2iz+0x3c>
+ 800186e:	ea4f 23c1 	mov.w	r3, r1, lsl #11
+ 8001872:	f043 4300 	orr.w	r3, r3, #2147483648	; 0x80000000
+ 8001876:	ea43 5350 	orr.w	r3, r3, r0, lsr #21
+ 800187a:	f011 4f00 	tst.w	r1, #2147483648	; 0x80000000
+ 800187e:	fa23 f002 	lsr.w	r0, r3, r2
+ 8001882:	bf18      	it	ne
+ 8001884:	4240      	negne	r0, r0
+ 8001886:	4770      	bx	lr
+ 8001888:	f04f 0000 	mov.w	r0, #0
+ 800188c:	4770      	bx	lr
+ 800188e:	ea50 3001 	orrs.w	r0, r0, r1, lsl #12
+ 8001892:	d105      	bne.n	80018a0 <__aeabi_d2iz+0x48>
+ 8001894:	f011 4000 	ands.w	r0, r1, #2147483648	; 0x80000000
+ 8001898:	bf08      	it	eq
+ 800189a:	f06f 4000 	mvneq.w	r0, #2147483648	; 0x80000000
+ 800189e:	4770      	bx	lr
+ 80018a0:	f04f 0000 	mov.w	r0, #0
+ 80018a4:	4770      	bx	lr
+ 80018a6:	bf00      	nop
+
+080018a8 <__aeabi_frsub>:
+ 80018a8:	f080 4000 	eor.w	r0, r0, #2147483648	; 0x80000000
+ 80018ac:	e002      	b.n	80018b4 <__addsf3>
+ 80018ae:	bf00      	nop
+
+080018b0 <__aeabi_fsub>:
+ 80018b0:	f081 4100 	eor.w	r1, r1, #2147483648	; 0x80000000
+
+080018b4 <__addsf3>:
+ 80018b4:	0042      	lsls	r2, r0, #1
+ 80018b6:	bf1f      	itttt	ne
+ 80018b8:	ea5f 0341 	movsne.w	r3, r1, lsl #1
+ 80018bc:	ea92 0f03 	teqne	r2, r3
+ 80018c0:	ea7f 6c22 	mvnsne.w	ip, r2, asr #24
+ 80018c4:	ea7f 6c23 	mvnsne.w	ip, r3, asr #24
+ 80018c8:	d06a      	beq.n	80019a0 <__addsf3+0xec>
+ 80018ca:	ea4f 6212 	mov.w	r2, r2, lsr #24
+ 80018ce:	ebd2 6313 	rsbs	r3, r2, r3, lsr #24
+ 80018d2:	bfc1      	itttt	gt
+ 80018d4:	18d2      	addgt	r2, r2, r3
+ 80018d6:	4041      	eorgt	r1, r0
+ 80018d8:	4048      	eorgt	r0, r1
+ 80018da:	4041      	eorgt	r1, r0
+ 80018dc:	bfb8      	it	lt
+ 80018de:	425b      	neglt	r3, r3
+ 80018e0:	2b19      	cmp	r3, #25
+ 80018e2:	bf88      	it	hi
+ 80018e4:	4770      	bxhi	lr
+ 80018e6:	f010 4f00 	tst.w	r0, #2147483648	; 0x80000000
+ 80018ea:	f440 0000 	orr.w	r0, r0, #8388608	; 0x800000
+ 80018ee:	f020 407f 	bic.w	r0, r0, #4278190080	; 0xff000000
+ 80018f2:	bf18      	it	ne
+ 80018f4:	4240      	negne	r0, r0
+ 80018f6:	f011 4f00 	tst.w	r1, #2147483648	; 0x80000000
+ 80018fa:	f441 0100 	orr.w	r1, r1, #8388608	; 0x800000
+ 80018fe:	f021 417f 	bic.w	r1, r1, #4278190080	; 0xff000000
+ 8001902:	bf18      	it	ne
+ 8001904:	4249      	negne	r1, r1
+ 8001906:	ea92 0f03 	teq	r2, r3
+ 800190a:	d03f      	beq.n	800198c <__addsf3+0xd8>
+ 800190c:	f1a2 0201 	sub.w	r2, r2, #1
+ 8001910:	fa41 fc03 	asr.w	ip, r1, r3
+ 8001914:	eb10 000c 	adds.w	r0, r0, ip
+ 8001918:	f1c3 0320 	rsb	r3, r3, #32
+ 800191c:	fa01 f103 	lsl.w	r1, r1, r3
+ 8001920:	f000 4300 	and.w	r3, r0, #2147483648	; 0x80000000
+ 8001924:	d502      	bpl.n	800192c <__addsf3+0x78>
+ 8001926:	4249      	negs	r1, r1
+ 8001928:	eb60 0040 	sbc.w	r0, r0, r0, lsl #1
+ 800192c:	f5b0 0f00 	cmp.w	r0, #8388608	; 0x800000
+ 8001930:	d313      	bcc.n	800195a <__addsf3+0xa6>
+ 8001932:	f1b0 7f80 	cmp.w	r0, #16777216	; 0x1000000
+ 8001936:	d306      	bcc.n	8001946 <__addsf3+0x92>
+ 8001938:	0840      	lsrs	r0, r0, #1
+ 800193a:	ea4f 0131 	mov.w	r1, r1, rrx
+ 800193e:	f102 0201 	add.w	r2, r2, #1
+ 8001942:	2afe      	cmp	r2, #254	; 0xfe
+ 8001944:	d251      	bcs.n	80019ea <__addsf3+0x136>
+ 8001946:	f1b1 4f00 	cmp.w	r1, #2147483648	; 0x80000000
+ 800194a:	eb40 50c2 	adc.w	r0, r0, r2, lsl #23
+ 800194e:	bf08      	it	eq
+ 8001950:	f020 0001 	biceq.w	r0, r0, #1
+ 8001954:	ea40 0003 	orr.w	r0, r0, r3
+ 8001958:	4770      	bx	lr
+ 800195a:	0049      	lsls	r1, r1, #1
+ 800195c:	eb40 0000 	adc.w	r0, r0, r0
+ 8001960:	3a01      	subs	r2, #1
+ 8001962:	bf28      	it	cs
+ 8001964:	f5b0 0f00 	cmpcs.w	r0, #8388608	; 0x800000
+ 8001968:	d2ed      	bcs.n	8001946 <__addsf3+0x92>
+ 800196a:	fab0 fc80 	clz	ip, r0
+ 800196e:	f1ac 0c08 	sub.w	ip, ip, #8
+ 8001972:	ebb2 020c 	subs.w	r2, r2, ip
+ 8001976:	fa00 f00c 	lsl.w	r0, r0, ip
+ 800197a:	bfaa      	itet	ge
+ 800197c:	eb00 50c2 	addge.w	r0, r0, r2, lsl #23
+ 8001980:	4252      	neglt	r2, r2
+ 8001982:	4318      	orrge	r0, r3
+ 8001984:	bfbc      	itt	lt
+ 8001986:	40d0      	lsrlt	r0, r2
+ 8001988:	4318      	orrlt	r0, r3
+ 800198a:	4770      	bx	lr
+ 800198c:	f092 0f00 	teq	r2, #0
+ 8001990:	f481 0100 	eor.w	r1, r1, #8388608	; 0x800000
+ 8001994:	bf06      	itte	eq
+ 8001996:	f480 0000 	eoreq.w	r0, r0, #8388608	; 0x800000
+ 800199a:	3201      	addeq	r2, #1
+ 800199c:	3b01      	subne	r3, #1
+ 800199e:	e7b5      	b.n	800190c <__addsf3+0x58>
+ 80019a0:	ea4f 0341 	mov.w	r3, r1, lsl #1
+ 80019a4:	ea7f 6c22 	mvns.w	ip, r2, asr #24
+ 80019a8:	bf18      	it	ne
+ 80019aa:	ea7f 6c23 	mvnsne.w	ip, r3, asr #24
+ 80019ae:	d021      	beq.n	80019f4 <__addsf3+0x140>
+ 80019b0:	ea92 0f03 	teq	r2, r3
+ 80019b4:	d004      	beq.n	80019c0 <__addsf3+0x10c>
+ 80019b6:	f092 0f00 	teq	r2, #0
+ 80019ba:	bf08      	it	eq
+ 80019bc:	4608      	moveq	r0, r1
+ 80019be:	4770      	bx	lr
+ 80019c0:	ea90 0f01 	teq	r0, r1
+ 80019c4:	bf1c      	itt	ne
+ 80019c6:	2000      	movne	r0, #0
+ 80019c8:	4770      	bxne	lr
+ 80019ca:	f012 4f7f 	tst.w	r2, #4278190080	; 0xff000000
+ 80019ce:	d104      	bne.n	80019da <__addsf3+0x126>
+ 80019d0:	0040      	lsls	r0, r0, #1
+ 80019d2:	bf28      	it	cs
+ 80019d4:	f040 4000 	orrcs.w	r0, r0, #2147483648	; 0x80000000
+ 80019d8:	4770      	bx	lr
+ 80019da:	f112 7200 	adds.w	r2, r2, #33554432	; 0x2000000
+ 80019de:	bf3c      	itt	cc
+ 80019e0:	f500 0000 	addcc.w	r0, r0, #8388608	; 0x800000
+ 80019e4:	4770      	bxcc	lr
+ 80019e6:	f000 4300 	and.w	r3, r0, #2147483648	; 0x80000000
+ 80019ea:	f043 40fe 	orr.w	r0, r3, #2130706432	; 0x7f000000
+ 80019ee:	f440 0000 	orr.w	r0, r0, #8388608	; 0x800000
+ 80019f2:	4770      	bx	lr
+ 80019f4:	ea7f 6222 	mvns.w	r2, r2, asr #24
+ 80019f8:	bf16      	itet	ne
+ 80019fa:	4608      	movne	r0, r1
+ 80019fc:	ea7f 6323 	mvnseq.w	r3, r3, asr #24
+ 8001a00:	4601      	movne	r1, r0
+ 8001a02:	0242      	lsls	r2, r0, #9
+ 8001a04:	bf06      	itte	eq
+ 8001a06:	ea5f 2341 	movseq.w	r3, r1, lsl #9
+ 8001a0a:	ea90 0f01 	teqeq	r0, r1
+ 8001a0e:	f440 0080 	orrne.w	r0, r0, #4194304	; 0x400000
+ 8001a12:	4770      	bx	lr
+
+08001a14 <__aeabi_ui2f>:
+ 8001a14:	f04f 0300 	mov.w	r3, #0
+ 8001a18:	e004      	b.n	8001a24 <__aeabi_i2f+0x8>
+ 8001a1a:	bf00      	nop
+
+08001a1c <__aeabi_i2f>:
+ 8001a1c:	f010 4300 	ands.w	r3, r0, #2147483648	; 0x80000000
+ 8001a20:	bf48      	it	mi
+ 8001a22:	4240      	negmi	r0, r0
+ 8001a24:	ea5f 0c00 	movs.w	ip, r0
+ 8001a28:	bf08      	it	eq
+ 8001a2a:	4770      	bxeq	lr
+ 8001a2c:	f043 4396 	orr.w	r3, r3, #1258291200	; 0x4b000000
+ 8001a30:	4601      	mov	r1, r0
+ 8001a32:	f04f 0000 	mov.w	r0, #0
+ 8001a36:	e01c      	b.n	8001a72 <__aeabi_l2f+0x2a>
+
+08001a38 <__aeabi_ul2f>:
+ 8001a38:	ea50 0201 	orrs.w	r2, r0, r1
+ 8001a3c:	bf08      	it	eq
+ 8001a3e:	4770      	bxeq	lr
+ 8001a40:	f04f 0300 	mov.w	r3, #0
+ 8001a44:	e00a      	b.n	8001a5c <__aeabi_l2f+0x14>
+ 8001a46:	bf00      	nop
+
+08001a48 <__aeabi_l2f>:
+ 8001a48:	ea50 0201 	orrs.w	r2, r0, r1
+ 8001a4c:	bf08      	it	eq
+ 8001a4e:	4770      	bxeq	lr
+ 8001a50:	f011 4300 	ands.w	r3, r1, #2147483648	; 0x80000000
+ 8001a54:	d502      	bpl.n	8001a5c <__aeabi_l2f+0x14>
+ 8001a56:	4240      	negs	r0, r0
+ 8001a58:	eb61 0141 	sbc.w	r1, r1, r1, lsl #1
+ 8001a5c:	ea5f 0c01 	movs.w	ip, r1
+ 8001a60:	bf02      	ittt	eq
+ 8001a62:	4684      	moveq	ip, r0
+ 8001a64:	4601      	moveq	r1, r0
+ 8001a66:	2000      	moveq	r0, #0
+ 8001a68:	f043 43b6 	orr.w	r3, r3, #1526726656	; 0x5b000000
+ 8001a6c:	bf08      	it	eq
+ 8001a6e:	f1a3 5380 	subeq.w	r3, r3, #268435456	; 0x10000000
+ 8001a72:	f5a3 0300 	sub.w	r3, r3, #8388608	; 0x800000
+ 8001a76:	fabc f28c 	clz	r2, ip
+ 8001a7a:	3a08      	subs	r2, #8
+ 8001a7c:	eba3 53c2 	sub.w	r3, r3, r2, lsl #23
+ 8001a80:	db10      	blt.n	8001aa4 <__aeabi_l2f+0x5c>
+ 8001a82:	fa01 fc02 	lsl.w	ip, r1, r2
+ 8001a86:	4463      	add	r3, ip
+ 8001a88:	fa00 fc02 	lsl.w	ip, r0, r2
+ 8001a8c:	f1c2 0220 	rsb	r2, r2, #32
+ 8001a90:	f1bc 4f00 	cmp.w	ip, #2147483648	; 0x80000000
+ 8001a94:	fa20 f202 	lsr.w	r2, r0, r2
+ 8001a98:	eb43 0002 	adc.w	r0, r3, r2
+ 8001a9c:	bf08      	it	eq
+ 8001a9e:	f020 0001 	biceq.w	r0, r0, #1
+ 8001aa2:	4770      	bx	lr
+ 8001aa4:	f102 0220 	add.w	r2, r2, #32
+ 8001aa8:	fa01 fc02 	lsl.w	ip, r1, r2
+ 8001aac:	f1c2 0220 	rsb	r2, r2, #32
+ 8001ab0:	ea50 004c 	orrs.w	r0, r0, ip, lsl #1
+ 8001ab4:	fa21 f202 	lsr.w	r2, r1, r2
+ 8001ab8:	eb43 0002 	adc.w	r0, r3, r2
+ 8001abc:	bf08      	it	eq
+ 8001abe:	ea20 70dc 	biceq.w	r0, r0, ip, lsr #31
+ 8001ac2:	4770      	bx	lr
+
+08001ac4 <__aeabi_f2iz>:
+ 8001ac4:	ea4f 0240 	mov.w	r2, r0, lsl #1
+ 8001ac8:	f1b2 4ffe 	cmp.w	r2, #2130706432	; 0x7f000000
+ 8001acc:	d30f      	bcc.n	8001aee <__aeabi_f2iz+0x2a>
+ 8001ace:	f04f 039e 	mov.w	r3, #158	; 0x9e
+ 8001ad2:	ebb3 6212 	subs.w	r2, r3, r2, lsr #24
+ 8001ad6:	d90d      	bls.n	8001af4 <__aeabi_f2iz+0x30>
+ 8001ad8:	ea4f 2300 	mov.w	r3, r0, lsl #8
+ 8001adc:	f043 4300 	orr.w	r3, r3, #2147483648	; 0x80000000
+ 8001ae0:	f010 4f00 	tst.w	r0, #2147483648	; 0x80000000
+ 8001ae4:	fa23 f002 	lsr.w	r0, r3, r2
+ 8001ae8:	bf18      	it	ne
+ 8001aea:	4240      	negne	r0, r0
+ 8001aec:	4770      	bx	lr
+ 8001aee:	f04f 0000 	mov.w	r0, #0
+ 8001af2:	4770      	bx	lr
+ 8001af4:	f112 0f61 	cmn.w	r2, #97	; 0x61
+ 8001af8:	d101      	bne.n	8001afe <__aeabi_f2iz+0x3a>
+ 8001afa:	0242      	lsls	r2, r0, #9
+ 8001afc:	d105      	bne.n	8001b0a <__aeabi_f2iz+0x46>
+ 8001afe:	f010 4000 	ands.w	r0, r0, #2147483648	; 0x80000000
+ 8001b02:	bf08      	it	eq
+ 8001b04:	f06f 4000 	mvneq.w	r0, #2147483648	; 0x80000000
+ 8001b08:	4770      	bx	lr
+ 8001b0a:	f04f 0000 	mov.w	r0, #0
+ 8001b0e:	4770      	bx	lr
+
+08001b10 <__aeabi_uldivmod>:
+ 8001b10:	b953      	cbnz	r3, 8001b28 <__aeabi_uldivmod+0x18>
+ 8001b12:	b94a      	cbnz	r2, 8001b28 <__aeabi_uldivmod+0x18>
+ 8001b14:	2900      	cmp	r1, #0
+ 8001b16:	bf08      	it	eq
+ 8001b18:	2800      	cmpeq	r0, #0
+ 8001b1a:	bf1c      	itt	ne
+ 8001b1c:	f04f 31ff 	movne.w	r1, #4294967295
+ 8001b20:	f04f 30ff 	movne.w	r0, #4294967295
+ 8001b24:	f000 b970 	b.w	8001e08 <__aeabi_idiv0>
+ 8001b28:	f1ad 0c08 	sub.w	ip, sp, #8
+ 8001b2c:	e96d ce04 	strd	ip, lr, [sp, #-16]!
+ 8001b30:	f000 f806 	bl	8001b40 <__udivmoddi4>
+ 8001b34:	f8dd e004 	ldr.w	lr, [sp, #4]
+ 8001b38:	e9dd 2302 	ldrd	r2, r3, [sp, #8]
+ 8001b3c:	b004      	add	sp, #16
+ 8001b3e:	4770      	bx	lr
+
+08001b40 <__udivmoddi4>:
+ 8001b40:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
+ 8001b44:	9e08      	ldr	r6, [sp, #32]
+ 8001b46:	460d      	mov	r5, r1
+ 8001b48:	4604      	mov	r4, r0
+ 8001b4a:	460f      	mov	r7, r1
+ 8001b4c:	2b00      	cmp	r3, #0
+ 8001b4e:	d14a      	bne.n	8001be6 <__udivmoddi4+0xa6>
+ 8001b50:	428a      	cmp	r2, r1
+ 8001b52:	4694      	mov	ip, r2
+ 8001b54:	d965      	bls.n	8001c22 <__udivmoddi4+0xe2>
+ 8001b56:	fab2 f382 	clz	r3, r2
+ 8001b5a:	b143      	cbz	r3, 8001b6e <__udivmoddi4+0x2e>
+ 8001b5c:	fa02 fc03 	lsl.w	ip, r2, r3
+ 8001b60:	f1c3 0220 	rsb	r2, r3, #32
+ 8001b64:	409f      	lsls	r7, r3
+ 8001b66:	fa20 f202 	lsr.w	r2, r0, r2
+ 8001b6a:	4317      	orrs	r7, r2
+ 8001b6c:	409c      	lsls	r4, r3
+ 8001b6e:	ea4f 4e1c 	mov.w	lr, ip, lsr #16
+ 8001b72:	fa1f f58c 	uxth.w	r5, ip
+ 8001b76:	fbb7 f1fe 	udiv	r1, r7, lr
+ 8001b7a:	0c22      	lsrs	r2, r4, #16
+ 8001b7c:	fb0e 7711 	mls	r7, lr, r1, r7
+ 8001b80:	ea42 4207 	orr.w	r2, r2, r7, lsl #16
+ 8001b84:	fb01 f005 	mul.w	r0, r1, r5
+ 8001b88:	4290      	cmp	r0, r2
+ 8001b8a:	d90a      	bls.n	8001ba2 <__udivmoddi4+0x62>
+ 8001b8c:	eb1c 0202 	adds.w	r2, ip, r2
+ 8001b90:	f101 37ff 	add.w	r7, r1, #4294967295
+ 8001b94:	f080 811b 	bcs.w	8001dce <__udivmoddi4+0x28e>
+ 8001b98:	4290      	cmp	r0, r2
+ 8001b9a:	f240 8118 	bls.w	8001dce <__udivmoddi4+0x28e>
+ 8001b9e:	3902      	subs	r1, #2
+ 8001ba0:	4462      	add	r2, ip
+ 8001ba2:	1a12      	subs	r2, r2, r0
+ 8001ba4:	b2a4      	uxth	r4, r4
+ 8001ba6:	fbb2 f0fe 	udiv	r0, r2, lr
+ 8001baa:	fb0e 2210 	mls	r2, lr, r0, r2
+ 8001bae:	ea44 4402 	orr.w	r4, r4, r2, lsl #16
+ 8001bb2:	fb00 f505 	mul.w	r5, r0, r5
+ 8001bb6:	42a5      	cmp	r5, r4
+ 8001bb8:	d90a      	bls.n	8001bd0 <__udivmoddi4+0x90>
+ 8001bba:	eb1c 0404 	adds.w	r4, ip, r4
+ 8001bbe:	f100 32ff 	add.w	r2, r0, #4294967295
+ 8001bc2:	f080 8106 	bcs.w	8001dd2 <__udivmoddi4+0x292>
+ 8001bc6:	42a5      	cmp	r5, r4
+ 8001bc8:	f240 8103 	bls.w	8001dd2 <__udivmoddi4+0x292>
+ 8001bcc:	4464      	add	r4, ip
+ 8001bce:	3802      	subs	r0, #2
+ 8001bd0:	ea40 4001 	orr.w	r0, r0, r1, lsl #16
+ 8001bd4:	1b64      	subs	r4, r4, r5
+ 8001bd6:	2100      	movs	r1, #0
+ 8001bd8:	b11e      	cbz	r6, 8001be2 <__udivmoddi4+0xa2>
+ 8001bda:	40dc      	lsrs	r4, r3
+ 8001bdc:	2300      	movs	r3, #0
+ 8001bde:	e9c6 4300 	strd	r4, r3, [r6]
+ 8001be2:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 8001be6:	428b      	cmp	r3, r1
+ 8001be8:	d908      	bls.n	8001bfc <__udivmoddi4+0xbc>
+ 8001bea:	2e00      	cmp	r6, #0
+ 8001bec:	f000 80ec 	beq.w	8001dc8 <__udivmoddi4+0x288>
+ 8001bf0:	2100      	movs	r1, #0
+ 8001bf2:	e9c6 0500 	strd	r0, r5, [r6]
+ 8001bf6:	4608      	mov	r0, r1
+ 8001bf8:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 8001bfc:	fab3 f183 	clz	r1, r3
+ 8001c00:	2900      	cmp	r1, #0
+ 8001c02:	d149      	bne.n	8001c98 <__udivmoddi4+0x158>
+ 8001c04:	42ab      	cmp	r3, r5
+ 8001c06:	d302      	bcc.n	8001c0e <__udivmoddi4+0xce>
+ 8001c08:	4282      	cmp	r2, r0
+ 8001c0a:	f200 80f7 	bhi.w	8001dfc <__udivmoddi4+0x2bc>
+ 8001c0e:	1a84      	subs	r4, r0, r2
+ 8001c10:	eb65 0203 	sbc.w	r2, r5, r3
+ 8001c14:	2001      	movs	r0, #1
+ 8001c16:	4617      	mov	r7, r2
+ 8001c18:	2e00      	cmp	r6, #0
+ 8001c1a:	d0e2      	beq.n	8001be2 <__udivmoddi4+0xa2>
+ 8001c1c:	e9c6 4700 	strd	r4, r7, [r6]
+ 8001c20:	e7df      	b.n	8001be2 <__udivmoddi4+0xa2>
+ 8001c22:	b902      	cbnz	r2, 8001c26 <__udivmoddi4+0xe6>
+ 8001c24:	deff      	udf	#255	; 0xff
+ 8001c26:	fab2 f382 	clz	r3, r2
+ 8001c2a:	2b00      	cmp	r3, #0
+ 8001c2c:	f040 808f 	bne.w	8001d4e <__udivmoddi4+0x20e>
+ 8001c30:	1a8a      	subs	r2, r1, r2
+ 8001c32:	ea4f 471c 	mov.w	r7, ip, lsr #16
+ 8001c36:	fa1f fe8c 	uxth.w	lr, ip
+ 8001c3a:	2101      	movs	r1, #1
+ 8001c3c:	fbb2 f5f7 	udiv	r5, r2, r7
+ 8001c40:	fb07 2015 	mls	r0, r7, r5, r2
+ 8001c44:	0c22      	lsrs	r2, r4, #16
+ 8001c46:	ea42 4200 	orr.w	r2, r2, r0, lsl #16
+ 8001c4a:	fb0e f005 	mul.w	r0, lr, r5
+ 8001c4e:	4290      	cmp	r0, r2
+ 8001c50:	d908      	bls.n	8001c64 <__udivmoddi4+0x124>
+ 8001c52:	eb1c 0202 	adds.w	r2, ip, r2
+ 8001c56:	f105 38ff 	add.w	r8, r5, #4294967295
+ 8001c5a:	d202      	bcs.n	8001c62 <__udivmoddi4+0x122>
+ 8001c5c:	4290      	cmp	r0, r2
+ 8001c5e:	f200 80ca 	bhi.w	8001df6 <__udivmoddi4+0x2b6>
+ 8001c62:	4645      	mov	r5, r8
+ 8001c64:	1a12      	subs	r2, r2, r0
+ 8001c66:	b2a4      	uxth	r4, r4
+ 8001c68:	fbb2 f0f7 	udiv	r0, r2, r7
+ 8001c6c:	fb07 2210 	mls	r2, r7, r0, r2
+ 8001c70:	ea44 4402 	orr.w	r4, r4, r2, lsl #16
+ 8001c74:	fb0e fe00 	mul.w	lr, lr, r0
+ 8001c78:	45a6      	cmp	lr, r4
+ 8001c7a:	d908      	bls.n	8001c8e <__udivmoddi4+0x14e>
+ 8001c7c:	eb1c 0404 	adds.w	r4, ip, r4
+ 8001c80:	f100 32ff 	add.w	r2, r0, #4294967295
+ 8001c84:	d202      	bcs.n	8001c8c <__udivmoddi4+0x14c>
+ 8001c86:	45a6      	cmp	lr, r4
+ 8001c88:	f200 80ba 	bhi.w	8001e00 <__udivmoddi4+0x2c0>
+ 8001c8c:	4610      	mov	r0, r2
+ 8001c8e:	eba4 040e 	sub.w	r4, r4, lr
+ 8001c92:	ea40 4005 	orr.w	r0, r0, r5, lsl #16
+ 8001c96:	e79f      	b.n	8001bd8 <__udivmoddi4+0x98>
+ 8001c98:	f1c1 0720 	rsb	r7, r1, #32
+ 8001c9c:	408b      	lsls	r3, r1
+ 8001c9e:	fa22 fc07 	lsr.w	ip, r2, r7
+ 8001ca2:	ea4c 0c03 	orr.w	ip, ip, r3
+ 8001ca6:	fa05 f401 	lsl.w	r4, r5, r1
+ 8001caa:	fa20 f307 	lsr.w	r3, r0, r7
+ 8001cae:	40fd      	lsrs	r5, r7
+ 8001cb0:	4323      	orrs	r3, r4
+ 8001cb2:	fa00 f901 	lsl.w	r9, r0, r1
+ 8001cb6:	ea4f 401c 	mov.w	r0, ip, lsr #16
+ 8001cba:	fa1f fe8c 	uxth.w	lr, ip
+ 8001cbe:	fbb5 f8f0 	udiv	r8, r5, r0
+ 8001cc2:	0c1c      	lsrs	r4, r3, #16
+ 8001cc4:	fb00 5518 	mls	r5, r0, r8, r5
+ 8001cc8:	ea44 4405 	orr.w	r4, r4, r5, lsl #16
+ 8001ccc:	fb08 f50e 	mul.w	r5, r8, lr
+ 8001cd0:	42a5      	cmp	r5, r4
+ 8001cd2:	fa02 f201 	lsl.w	r2, r2, r1
+ 8001cd6:	d90b      	bls.n	8001cf0 <__udivmoddi4+0x1b0>
+ 8001cd8:	eb1c 0404 	adds.w	r4, ip, r4
+ 8001cdc:	f108 3aff 	add.w	sl, r8, #4294967295
+ 8001ce0:	f080 8087 	bcs.w	8001df2 <__udivmoddi4+0x2b2>
+ 8001ce4:	42a5      	cmp	r5, r4
+ 8001ce6:	f240 8084 	bls.w	8001df2 <__udivmoddi4+0x2b2>
+ 8001cea:	f1a8 0802 	sub.w	r8, r8, #2
+ 8001cee:	4464      	add	r4, ip
+ 8001cf0:	1b64      	subs	r4, r4, r5
+ 8001cf2:	b29d      	uxth	r5, r3
+ 8001cf4:	fbb4 f3f0 	udiv	r3, r4, r0
+ 8001cf8:	fb00 4413 	mls	r4, r0, r3, r4
+ 8001cfc:	ea45 4404 	orr.w	r4, r5, r4, lsl #16
+ 8001d00:	fb03 fe0e 	mul.w	lr, r3, lr
+ 8001d04:	45a6      	cmp	lr, r4
+ 8001d06:	d908      	bls.n	8001d1a <__udivmoddi4+0x1da>
+ 8001d08:	eb1c 0404 	adds.w	r4, ip, r4
+ 8001d0c:	f103 30ff 	add.w	r0, r3, #4294967295
+ 8001d10:	d26b      	bcs.n	8001dea <__udivmoddi4+0x2aa>
+ 8001d12:	45a6      	cmp	lr, r4
+ 8001d14:	d969      	bls.n	8001dea <__udivmoddi4+0x2aa>
+ 8001d16:	3b02      	subs	r3, #2
+ 8001d18:	4464      	add	r4, ip
+ 8001d1a:	ea43 4008 	orr.w	r0, r3, r8, lsl #16
+ 8001d1e:	fba0 8302 	umull	r8, r3, r0, r2
+ 8001d22:	eba4 040e 	sub.w	r4, r4, lr
+ 8001d26:	429c      	cmp	r4, r3
+ 8001d28:	46c6      	mov	lr, r8
+ 8001d2a:	461d      	mov	r5, r3
+ 8001d2c:	d355      	bcc.n	8001dda <__udivmoddi4+0x29a>
+ 8001d2e:	d052      	beq.n	8001dd6 <__udivmoddi4+0x296>
+ 8001d30:	b156      	cbz	r6, 8001d48 <__udivmoddi4+0x208>
+ 8001d32:	ebb9 030e 	subs.w	r3, r9, lr
+ 8001d36:	eb64 0405 	sbc.w	r4, r4, r5
+ 8001d3a:	fa04 f707 	lsl.w	r7, r4, r7
+ 8001d3e:	40cb      	lsrs	r3, r1
+ 8001d40:	40cc      	lsrs	r4, r1
+ 8001d42:	431f      	orrs	r7, r3
+ 8001d44:	e9c6 7400 	strd	r7, r4, [r6]
+ 8001d48:	2100      	movs	r1, #0
+ 8001d4a:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 8001d4e:	f1c3 0120 	rsb	r1, r3, #32
+ 8001d52:	fa02 fc03 	lsl.w	ip, r2, r3
+ 8001d56:	fa20 f201 	lsr.w	r2, r0, r1
+ 8001d5a:	fa25 f101 	lsr.w	r1, r5, r1
+ 8001d5e:	409d      	lsls	r5, r3
+ 8001d60:	432a      	orrs	r2, r5
+ 8001d62:	ea4f 471c 	mov.w	r7, ip, lsr #16
+ 8001d66:	fa1f fe8c 	uxth.w	lr, ip
+ 8001d6a:	fbb1 f0f7 	udiv	r0, r1, r7
+ 8001d6e:	fb07 1510 	mls	r5, r7, r0, r1
+ 8001d72:	0c11      	lsrs	r1, r2, #16
+ 8001d74:	ea41 4105 	orr.w	r1, r1, r5, lsl #16
+ 8001d78:	fb00 f50e 	mul.w	r5, r0, lr
+ 8001d7c:	428d      	cmp	r5, r1
+ 8001d7e:	fa04 f403 	lsl.w	r4, r4, r3
+ 8001d82:	d908      	bls.n	8001d96 <__udivmoddi4+0x256>
+ 8001d84:	eb1c 0101 	adds.w	r1, ip, r1
+ 8001d88:	f100 38ff 	add.w	r8, r0, #4294967295
+ 8001d8c:	d22f      	bcs.n	8001dee <__udivmoddi4+0x2ae>
+ 8001d8e:	428d      	cmp	r5, r1
+ 8001d90:	d92d      	bls.n	8001dee <__udivmoddi4+0x2ae>
+ 8001d92:	3802      	subs	r0, #2
+ 8001d94:	4461      	add	r1, ip
+ 8001d96:	1b49      	subs	r1, r1, r5
+ 8001d98:	b292      	uxth	r2, r2
+ 8001d9a:	fbb1 f5f7 	udiv	r5, r1, r7
+ 8001d9e:	fb07 1115 	mls	r1, r7, r5, r1
+ 8001da2:	ea42 4201 	orr.w	r2, r2, r1, lsl #16
+ 8001da6:	fb05 f10e 	mul.w	r1, r5, lr
+ 8001daa:	4291      	cmp	r1, r2
+ 8001dac:	d908      	bls.n	8001dc0 <__udivmoddi4+0x280>
+ 8001dae:	eb1c 0202 	adds.w	r2, ip, r2
+ 8001db2:	f105 38ff 	add.w	r8, r5, #4294967295
+ 8001db6:	d216      	bcs.n	8001de6 <__udivmoddi4+0x2a6>
+ 8001db8:	4291      	cmp	r1, r2
+ 8001dba:	d914      	bls.n	8001de6 <__udivmoddi4+0x2a6>
+ 8001dbc:	3d02      	subs	r5, #2
+ 8001dbe:	4462      	add	r2, ip
+ 8001dc0:	1a52      	subs	r2, r2, r1
+ 8001dc2:	ea45 4100 	orr.w	r1, r5, r0, lsl #16
+ 8001dc6:	e739      	b.n	8001c3c <__udivmoddi4+0xfc>
+ 8001dc8:	4631      	mov	r1, r6
+ 8001dca:	4630      	mov	r0, r6
+ 8001dcc:	e709      	b.n	8001be2 <__udivmoddi4+0xa2>
+ 8001dce:	4639      	mov	r1, r7
+ 8001dd0:	e6e7      	b.n	8001ba2 <__udivmoddi4+0x62>
+ 8001dd2:	4610      	mov	r0, r2
+ 8001dd4:	e6fc      	b.n	8001bd0 <__udivmoddi4+0x90>
+ 8001dd6:	45c1      	cmp	r9, r8
+ 8001dd8:	d2aa      	bcs.n	8001d30 <__udivmoddi4+0x1f0>
+ 8001dda:	ebb8 0e02 	subs.w	lr, r8, r2
+ 8001dde:	eb63 050c 	sbc.w	r5, r3, ip
+ 8001de2:	3801      	subs	r0, #1
+ 8001de4:	e7a4      	b.n	8001d30 <__udivmoddi4+0x1f0>
+ 8001de6:	4645      	mov	r5, r8
+ 8001de8:	e7ea      	b.n	8001dc0 <__udivmoddi4+0x280>
+ 8001dea:	4603      	mov	r3, r0
+ 8001dec:	e795      	b.n	8001d1a <__udivmoddi4+0x1da>
+ 8001dee:	4640      	mov	r0, r8
+ 8001df0:	e7d1      	b.n	8001d96 <__udivmoddi4+0x256>
+ 8001df2:	46d0      	mov	r8, sl
+ 8001df4:	e77c      	b.n	8001cf0 <__udivmoddi4+0x1b0>
+ 8001df6:	3d02      	subs	r5, #2
+ 8001df8:	4462      	add	r2, ip
+ 8001dfa:	e733      	b.n	8001c64 <__udivmoddi4+0x124>
+ 8001dfc:	4608      	mov	r0, r1
+ 8001dfe:	e70b      	b.n	8001c18 <__udivmoddi4+0xd8>
+ 8001e00:	4464      	add	r4, ip
+ 8001e02:	3802      	subs	r0, #2
+ 8001e04:	e743      	b.n	8001c8e <__udivmoddi4+0x14e>
+ 8001e06:	bf00      	nop
+
+08001e08 <__aeabi_idiv0>:
+ 8001e08:	4770      	bx	lr
+ 8001e0a:	bf00      	nop
+
+08001e0c <MX_ADC_Init>:
+ 8001e0c:	4813      	ldr	r0, [pc, #76]	; (8001e5c <MX_ADC_Init+0x50>)
+ 8001e0e:	4a14      	ldr	r2, [pc, #80]	; (8001e60 <MX_ADC_Init+0x54>)
+ 8001e10:	b508      	push	{r3, lr}
+ 8001e12:	f04f 4300 	mov.w	r3, #2147483648	; 0x80000000
+ 8001e16:	e9c0 2300 	strd	r2, r3, [r0]
+ 8001e1a:	2204      	movs	r2, #4
+ 8001e1c:	2300      	movs	r3, #0
+ 8001e1e:	6142      	str	r2, [r0, #20]
+ 8001e20:	2201      	movs	r2, #1
+ 8001e22:	61c2      	str	r2, [r0, #28]
+ 8001e24:	f44f 5180 	mov.w	r1, #4096	; 0x1000
+ 8001e28:	2207      	movs	r2, #7
+ 8001e2a:	8303      	strh	r3, [r0, #24]
+ 8001e2c:	e9c0 3302 	strd	r3, r3, [r0, #8]
+ 8001e30:	e9c0 3309 	strd	r3, r3, [r0, #36]	; 0x24
+ 8001e34:	e9c0 120c 	strd	r1, r2, [r0, #48]	; 0x30
+ 8001e38:	6103      	str	r3, [r0, #16]
+ 8001e3a:	7683      	strb	r3, [r0, #26]
+ 8001e3c:	f880 3020 	strb.w	r3, [r0, #32]
+ 8001e40:	f880 302c 	strb.w	r3, [r0, #44]	; 0x2c
+ 8001e44:	6382      	str	r2, [r0, #56]	; 0x38
+ 8001e46:	f880 303c 	strb.w	r3, [r0, #60]	; 0x3c
+ 8001e4a:	64c3      	str	r3, [r0, #76]	; 0x4c
+ 8001e4c:	f005 fb1a 	bl	8007484 <HAL_ADC_Init>
+ 8001e50:	b118      	cbz	r0, 8001e5a <MX_ADC_Init+0x4e>
+ 8001e52:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 8001e56:	f000 bc25 	b.w	80026a4 <Error_Handler>
+ 8001e5a:	bd08      	pop	{r3, pc}
+ 8001e5c:	200008ec 	.word	0x200008ec
+ 8001e60:	40012400 	.word	0x40012400
+
+08001e64 <HAL_ADC_MspInit>:
+ 8001e64:	6802      	ldr	r2, [r0, #0]
+ 8001e66:	4b08      	ldr	r3, [pc, #32]	; (8001e88 <HAL_ADC_MspInit+0x24>)
+ 8001e68:	429a      	cmp	r2, r3
+ 8001e6a:	b082      	sub	sp, #8
+ 8001e6c:	d10a      	bne.n	8001e84 <HAL_ADC_MspInit+0x20>
+ 8001e6e:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8001e72:	6e1a      	ldr	r2, [r3, #96]	; 0x60
+ 8001e74:	f442 7200 	orr.w	r2, r2, #512	; 0x200
+ 8001e78:	661a      	str	r2, [r3, #96]	; 0x60
+ 8001e7a:	6e1b      	ldr	r3, [r3, #96]	; 0x60
+ 8001e7c:	f403 7300 	and.w	r3, r3, #512	; 0x200
+ 8001e80:	9301      	str	r3, [sp, #4]
+ 8001e82:	9b01      	ldr	r3, [sp, #4]
+ 8001e84:	b002      	add	sp, #8
+ 8001e86:	4770      	bx	lr
+ 8001e88:	40012400 	.word	0x40012400
+
+08001e8c <HAL_ADC_MspDeInit>:
+ 8001e8c:	6802      	ldr	r2, [r0, #0]
+ 8001e8e:	4b05      	ldr	r3, [pc, #20]	; (8001ea4 <HAL_ADC_MspDeInit+0x18>)
+ 8001e90:	429a      	cmp	r2, r3
+ 8001e92:	bf01      	itttt	eq
+ 8001e94:	f04f 42b0 	moveq.w	r2, #1476395008	; 0x58000000
+ 8001e98:	6e13      	ldreq	r3, [r2, #96]	; 0x60
+ 8001e9a:	f423 7300 	biceq.w	r3, r3, #512	; 0x200
+ 8001e9e:	6613      	streq	r3, [r2, #96]	; 0x60
+ 8001ea0:	4770      	bx	lr
+ 8001ea2:	bf00      	nop
+ 8001ea4:	40012400 	.word	0x40012400
+
+08001ea8 <ADC_ReadChannels>:
+ 8001ea8:	b530      	push	{r4, r5, lr}
+ 8001eaa:	b085      	sub	sp, #20
+ 8001eac:	2400      	movs	r4, #0
+ 8001eae:	4605      	mov	r5, r0
+ 8001eb0:	e9cd 4401 	strd	r4, r4, [sp, #4]
+ 8001eb4:	9403      	str	r4, [sp, #12]
+ 8001eb6:	f7ff ffa9 	bl	8001e0c <MX_ADC_Init>
+ 8001eba:	4814      	ldr	r0, [pc, #80]	; (8001f0c <ADC_ReadChannels+0x64>)
+ 8001ebc:	f005 fe7a 	bl	8007bb4 <HAL_ADCEx_Calibration_Start>
+ 8001ec0:	b108      	cbz	r0, 8001ec6 <ADC_ReadChannels+0x1e>
+ 8001ec2:	f000 fbef 	bl	80026a4 <Error_Handler>
+ 8001ec6:	4811      	ldr	r0, [pc, #68]	; (8001f0c <ADC_ReadChannels+0x64>)
+ 8001ec8:	9403      	str	r4, [sp, #12]
+ 8001eca:	a901      	add	r1, sp, #4
+ 8001ecc:	e9cd 5401 	strd	r5, r4, [sp, #4]
+ 8001ed0:	f005 fc36 	bl	8007740 <HAL_ADC_ConfigChannel>
+ 8001ed4:	b108      	cbz	r0, 8001eda <ADC_ReadChannels+0x32>
+ 8001ed6:	f000 fbe5 	bl	80026a4 <Error_Handler>
+ 8001eda:	480c      	ldr	r0, [pc, #48]	; (8001f0c <ADC_ReadChannels+0x64>)
+ 8001edc:	f005 fd94 	bl	8007a08 <HAL_ADC_Start>
+ 8001ee0:	b108      	cbz	r0, 8001ee6 <ADC_ReadChannels+0x3e>
+ 8001ee2:	f000 fbdf 	bl	80026a4 <Error_Handler>
+ 8001ee6:	f04f 31ff 	mov.w	r1, #4294967295
+ 8001eea:	4808      	ldr	r0, [pc, #32]	; (8001f0c <ADC_ReadChannels+0x64>)
+ 8001eec:	f005 fbca 	bl	8007684 <HAL_ADC_PollForConversion>
+ 8001ef0:	4806      	ldr	r0, [pc, #24]	; (8001f0c <ADC_ReadChannels+0x64>)
+ 8001ef2:	f005 fe41 	bl	8007b78 <HAL_ADC_Stop>
+ 8001ef6:	4805      	ldr	r0, [pc, #20]	; (8001f0c <ADC_ReadChannels+0x64>)
+ 8001ef8:	f005 fc1e 	bl	8007738 <HAL_ADC_GetValue>
+ 8001efc:	4604      	mov	r4, r0
+ 8001efe:	4803      	ldr	r0, [pc, #12]	; (8001f0c <ADC_ReadChannels+0x64>)
+ 8001f00:	f005 fde4 	bl	8007acc <HAL_ADC_DeInit>
+ 8001f04:	4620      	mov	r0, r4
+ 8001f06:	b005      	add	sp, #20
+ 8001f08:	bd30      	pop	{r4, r5, pc}
+ 8001f0a:	bf00      	nop
+ 8001f0c:	200008ec 	.word	0x200008ec
+
+08001f10 <SYS_InitMeasurement>:
+ 8001f10:	4b01      	ldr	r3, [pc, #4]	; (8001f18 <SYS_InitMeasurement+0x8>)
+ 8001f12:	4a02      	ldr	r2, [pc, #8]	; (8001f1c <SYS_InitMeasurement+0xc>)
+ 8001f14:	601a      	str	r2, [r3, #0]
+ 8001f16:	4770      	bx	lr
+ 8001f18:	200008ec 	.word	0x200008ec
+ 8001f1c:	40012400 	.word	0x40012400
+
+08001f20 <SYS_GetBatteryLevel>:
+ 8001f20:	b508      	push	{r3, lr}
+ 8001f22:	4809      	ldr	r0, [pc, #36]	; (8001f48 <SYS_GetBatteryLevel+0x28>)
+ 8001f24:	f7ff ffc0 	bl	8001ea8 <ADC_ReadChannels>
+ 8001f28:	b168      	cbz	r0, 8001f46 <SYS_GetBatteryLevel+0x26>
+ 8001f2a:	4b08      	ldr	r3, [pc, #32]	; (8001f4c <SYS_GetBatteryLevel+0x2c>)
+ 8001f2c:	f8b3 30aa 	ldrh.w	r3, [r3, #170]	; 0xaa
+ 8001f30:	f64f 72ff 	movw	r2, #65535	; 0xffff
+ 8001f34:	4293      	cmp	r3, r2
+ 8001f36:	bf16      	itet	ne
+ 8001f38:	f640 42e4 	movwne	r2, #3300	; 0xce4
+ 8001f3c:	4b04      	ldreq	r3, [pc, #16]	; (8001f50 <SYS_GetBatteryLevel+0x30>)
+ 8001f3e:	4353      	mulne	r3, r2
+ 8001f40:	fbb3 f3f0 	udiv	r3, r3, r0
+ 8001f44:	b298      	uxth	r0, r3
+ 8001f46:	bd08      	pop	{r3, pc}
+ 8001f48:	b4002000 	.word	0xb4002000
+ 8001f4c:	1fff7500 	.word	0x1fff7500
+ 8001f50:	004c08d8 	.word	0x004c08d8
+
+08001f54 <SYS_GetTemperatureLevel>:
+ 8001f54:	b513      	push	{r0, r1, r4, lr}
+ 8001f56:	2300      	movs	r3, #0
+ 8001f58:	f8ad 3006 	strh.w	r3, [sp, #6]
+ 8001f5c:	f7ff ffe0 	bl	8001f20 <SYS_GetBatteryLevel>
+ 8001f60:	4604      	mov	r4, r0
+ 8001f62:	4819      	ldr	r0, [pc, #100]	; (8001fc8 <SYS_GetTemperatureLevel+0x74>)
+ 8001f64:	f7ff ffa0 	bl	8001ea8 <ADC_ReadChannels>
+ 8001f68:	4b18      	ldr	r3, [pc, #96]	; (8001fcc <SYS_GetTemperatureLevel+0x78>)
+ 8001f6a:	f8b3 20c8 	ldrh.w	r2, [r3, #200]	; 0xc8
+ 8001f6e:	f8b3 10a8 	ldrh.w	r1, [r3, #168]	; 0xa8
+ 8001f72:	428a      	cmp	r2, r1
+ 8001f74:	fb04 f000 	mul.w	r0, r4, r0
+ 8001f78:	d018      	beq.n	8001fac <SYS_GetTemperatureLevel+0x58>
+ 8001f7a:	f640 43e4 	movw	r3, #3300	; 0xce4
+ 8001f7e:	fbb0 f3f3 	udiv	r3, r0, r3
+ 8001f82:	2064      	movs	r0, #100	; 0x64
+ 8001f84:	1a5b      	subs	r3, r3, r1
+ 8001f86:	4343      	muls	r3, r0
+ 8001f88:	1a52      	subs	r2, r2, r1
+ 8001f8a:	fb93 f3f2 	sdiv	r3, r3, r2
+ 8001f8e:	331e      	adds	r3, #30
+ 8001f90:	b21b      	sxth	r3, r3
+ 8001f92:	f8ad 3006 	strh.w	r3, [sp, #6]
+ 8001f96:	f8bd 3006 	ldrh.w	r3, [sp, #6]
+ 8001f9a:	b25b      	sxtb	r3, r3
+ 8001f9c:	021b      	lsls	r3, r3, #8
+ 8001f9e:	f8ad 3006 	strh.w	r3, [sp, #6]
+ 8001fa2:	f8bd 0006 	ldrh.w	r0, [sp, #6]
+ 8001fa6:	b200      	sxth	r0, r0
+ 8001fa8:	b002      	add	sp, #8
+ 8001faa:	bd10      	pop	{r4, pc}
+ 8001fac:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
+ 8001fb0:	f640 73ff 	movw	r3, #4095	; 0xfff
+ 8001fb4:	fbb0 f3f3 	udiv	r3, r0, r3
+ 8001fb8:	4353      	muls	r3, r2
+ 8001fba:	f5a3 2339 	sub.w	r3, r3, #757760	; 0xb9000
+ 8001fbe:	f5a3 630c 	sub.w	r3, r3, #2240	; 0x8c0
+ 8001fc2:	f640 12c4 	movw	r2, #2500	; 0x9c4
+ 8001fc6:	e7e0      	b.n	8001f8a <SYS_GetTemperatureLevel+0x36>
+ 8001fc8:	b0001000 	.word	0xb0001000
+ 8001fcc:	1fff7500 	.word	0x1fff7500
+
+08001fd0 <cmox_ll_init>:
+ 8001fd0:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8001fd4:	b082      	sub	sp, #8
+ 8001fd6:	6a9a      	ldr	r2, [r3, #40]	; 0x28
+ 8001fd8:	f422 5280 	bic.w	r2, r2, #4096	; 0x1000
+ 8001fdc:	629a      	str	r2, [r3, #40]	; 0x28
+ 8001fde:	6c9a      	ldr	r2, [r3, #72]	; 0x48
+ 8001fe0:	f442 5280 	orr.w	r2, r2, #4096	; 0x1000
+ 8001fe4:	649a      	str	r2, [r3, #72]	; 0x48
+ 8001fe6:	6c9b      	ldr	r3, [r3, #72]	; 0x48
+ 8001fe8:	f403 5380 	and.w	r3, r3, #4096	; 0x1000
+ 8001fec:	9301      	str	r3, [sp, #4]
+ 8001fee:	9b01      	ldr	r3, [sp, #4]
+ 8001ff0:	2000      	movs	r0, #0
+ 8001ff2:	b002      	add	sp, #8
+ 8001ff4:	4770      	bx	lr
+
+08001ff6 <LL_AHB1_GRP1_EnableClock>:
+ 8001ff6:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8001ffa:	b082      	sub	sp, #8
+ 8001ffc:	6c9a      	ldr	r2, [r3, #72]	; 0x48
+ 8001ffe:	4302      	orrs	r2, r0
+ 8002000:	649a      	str	r2, [r3, #72]	; 0x48
+ 8002002:	6c9b      	ldr	r3, [r3, #72]	; 0x48
+ 8002004:	4003      	ands	r3, r0
+ 8002006:	9301      	str	r3, [sp, #4]
+ 8002008:	9b01      	ldr	r3, [sp, #4]
+ 800200a:	b002      	add	sp, #8
+ 800200c:	4770      	bx	lr
+
+0800200e <MX_DMA_Init>:
+ 800200e:	b508      	push	{r3, lr}
+ 8002010:	2004      	movs	r0, #4
+ 8002012:	f7ff fff0 	bl	8001ff6 <LL_AHB1_GRP1_EnableClock>
+ 8002016:	2001      	movs	r0, #1
+ 8002018:	f7ff ffed 	bl	8001ff6 <LL_AHB1_GRP1_EnableClock>
+ 800201c:	2002      	movs	r0, #2
+ 800201e:	f7ff ffea 	bl	8001ff6 <LL_AHB1_GRP1_EnableClock>
+ 8002022:	2200      	movs	r2, #0
+ 8002024:	4611      	mov	r1, r2
+ 8002026:	200b      	movs	r0, #11
+ 8002028:	f005 fe62 	bl	8007cf0 <HAL_NVIC_SetPriority>
+ 800202c:	200b      	movs	r0, #11
+ 800202e:	f005 fe91 	bl	8007d54 <HAL_NVIC_EnableIRQ>
+ 8002032:	2200      	movs	r2, #0
+ 8002034:	4611      	mov	r1, r2
+ 8002036:	200c      	movs	r0, #12
+ 8002038:	f005 fe5a 	bl	8007cf0 <HAL_NVIC_SetPriority>
+ 800203c:	200c      	movs	r0, #12
+ 800203e:	f005 fe89 	bl	8007d54 <HAL_NVIC_EnableIRQ>
+ 8002042:	2200      	movs	r2, #0
+ 8002044:	4611      	mov	r1, r2
+ 8002046:	200d      	movs	r0, #13
+ 8002048:	f005 fe52 	bl	8007cf0 <HAL_NVIC_SetPriority>
+ 800204c:	200d      	movs	r0, #13
+ 800204e:	f005 fe81 	bl	8007d54 <HAL_NVIC_EnableIRQ>
+ 8002052:	2200      	movs	r2, #0
+ 8002054:	4611      	mov	r1, r2
+ 8002056:	200e      	movs	r0, #14
+ 8002058:	f005 fe4a 	bl	8007cf0 <HAL_NVIC_SetPriority>
+ 800205c:	200e      	movs	r0, #14
+ 800205e:	f005 fe79 	bl	8007d54 <HAL_NVIC_EnableIRQ>
+ 8002062:	2200      	movs	r2, #0
+ 8002064:	4611      	mov	r1, r2
+ 8002066:	200f      	movs	r0, #15
+ 8002068:	f005 fe42 	bl	8007cf0 <HAL_NVIC_SetPriority>
+ 800206c:	200f      	movs	r0, #15
+ 800206e:	f005 fe71 	bl	8007d54 <HAL_NVIC_EnableIRQ>
+ 8002072:	2200      	movs	r2, #0
+ 8002074:	4611      	mov	r1, r2
+ 8002076:	2010      	movs	r0, #16
+ 8002078:	f005 fe3a 	bl	8007cf0 <HAL_NVIC_SetPriority>
+ 800207c:	2010      	movs	r0, #16
+ 800207e:	f005 fe69 	bl	8007d54 <HAL_NVIC_EnableIRQ>
+ 8002082:	2200      	movs	r2, #0
+ 8002084:	4611      	mov	r1, r2
+ 8002086:	2011      	movs	r0, #17
+ 8002088:	f005 fe32 	bl	8007cf0 <HAL_NVIC_SetPriority>
+ 800208c:	2011      	movs	r0, #17
+ 800208e:	f005 fe61 	bl	8007d54 <HAL_NVIC_EnableIRQ>
+ 8002092:	2200      	movs	r2, #0
+ 8002094:	2036      	movs	r0, #54	; 0x36
+ 8002096:	4611      	mov	r1, r2
+ 8002098:	f005 fe2a 	bl	8007cf0 <HAL_NVIC_SetPriority>
+ 800209c:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 80020a0:	2036      	movs	r0, #54	; 0x36
+ 80020a2:	f005 be57 	b.w	8007d54 <HAL_NVIC_EnableIRQ>
+	...
+
+080020a8 <FLASH_IF_INT_Clear_Error>:
+ 80020a8:	b508      	push	{r3, lr}
+ 80020aa:	f006 f89b 	bl	80081e4 <HAL_FLASH_Unlock>
+ 80020ae:	b110      	cbz	r0, 80020b6 <FLASH_IF_INT_Clear_Error+0xe>
+ 80020b0:	f06f 0004 	mvn.w	r0, #4
+ 80020b4:	bd08      	pop	{r3, pc}
+ 80020b6:	4b06      	ldr	r3, [pc, #24]	; (80020d0 <FLASH_IF_INT_Clear_Error+0x28>)
+ 80020b8:	699a      	ldr	r2, [r3, #24]
+ 80020ba:	f042 4240 	orr.w	r2, r2, #3221225472	; 0xc0000000
+ 80020be:	619a      	str	r2, [r3, #24]
+ 80020c0:	f24c 32fa 	movw	r2, #50170	; 0xc3fa
+ 80020c4:	611a      	str	r2, [r3, #16]
+ 80020c6:	f006 f89f 	bl	8008208 <HAL_FLASH_Lock>
+ 80020ca:	2800      	cmp	r0, #0
+ 80020cc:	d0f2      	beq.n	80020b4 <FLASH_IF_INT_Clear_Error+0xc>
+ 80020ce:	e7ef      	b.n	80020b0 <FLASH_IF_INT_Clear_Error+0x8>
+ 80020d0:	58004000 	.word	0x58004000
+
+080020d4 <FLASH_IF_INT_Erase>:
+ 80020d4:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 80020d6:	b085      	sub	sp, #20
+ 80020d8:	2300      	movs	r3, #0
+ 80020da:	460c      	mov	r4, r1
+ 80020dc:	9300      	str	r3, [sp, #0]
+ 80020de:	4606      	mov	r6, r0
+ 80020e0:	b3a8      	cbz	r0, 800214e <FLASH_IF_INT_Erase+0x7a>
+ 80020e2:	f7ff ffe1 	bl	80020a8 <FLASH_IF_INT_Clear_Error>
+ 80020e6:	4605      	mov	r5, r0
+ 80020e8:	bb70      	cbnz	r0, 8002148 <FLASH_IF_INT_Erase+0x74>
+ 80020ea:	f006 f87b 	bl	80081e4 <HAL_FLASH_Unlock>
+ 80020ee:	bb88      	cbnz	r0, 8002154 <FLASH_IF_INT_Erase+0x80>
+ 80020f0:	481a      	ldr	r0, [pc, #104]	; (800215c <FLASH_IF_INT_Erase+0x88>)
+ 80020f2:	4a1b      	ldr	r2, [pc, #108]	; (8002160 <FLASH_IF_INT_Erase+0x8c>)
+ 80020f4:	2302      	movs	r3, #2
+ 80020f6:	9301      	str	r3, [sp, #4]
+ 80020f8:	f8d0 15e0 	ldr.w	r1, [r0, #1504]	; 0x5e0
+ 80020fc:	f106 4378 	add.w	r3, r6, #4160749568	; 0xf8000000
+ 8002100:	ea02 2181 	and.w	r1, r2, r1, lsl #10
+ 8002104:	fbb3 f7f1 	udiv	r7, r3, r1
+ 8002108:	fb01 3317 	mls	r3, r1, r7, r3
+ 800210c:	0adb      	lsrs	r3, r3, #11
+ 800210e:	9302      	str	r3, [sp, #8]
+ 8002110:	f8d0 05e0 	ldr.w	r0, [r0, #1504]	; 0x5e0
+ 8002114:	f104 4178 	add.w	r1, r4, #4160749568	; 0xf8000000
+ 8002118:	3901      	subs	r1, #1
+ 800211a:	4431      	add	r1, r6
+ 800211c:	ea02 2280 	and.w	r2, r2, r0, lsl #10
+ 8002120:	fbb1 f0f2 	udiv	r0, r1, r2
+ 8002124:	fb02 1110 	mls	r1, r2, r0, r1
+ 8002128:	ebc3 23d1 	rsb	r3, r3, r1, lsr #11
+ 800212c:	3301      	adds	r3, #1
+ 800212e:	4669      	mov	r1, sp
+ 8002130:	a801      	add	r0, sp, #4
+ 8002132:	9303      	str	r3, [sp, #12]
+ 8002134:	f006 f8e8 	bl	8008308 <HAL_FLASHEx_Erase>
+ 8002138:	b120      	cbz	r0, 8002144 <FLASH_IF_INT_Erase+0x70>
+ 800213a:	2802      	cmp	r0, #2
+ 800213c:	bf0c      	ite	eq
+ 800213e:	2501      	moveq	r5, #1
+ 8002140:	f06f 0501 	mvnne.w	r5, #1
+ 8002144:	f006 f860 	bl	8008208 <HAL_FLASH_Lock>
+ 8002148:	4628      	mov	r0, r5
+ 800214a:	b005      	add	sp, #20
+ 800214c:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 800214e:	f06f 0505 	mvn.w	r5, #5
+ 8002152:	e7f9      	b.n	8002148 <FLASH_IF_INT_Erase+0x74>
+ 8002154:	f06f 0504 	mvn.w	r5, #4
+ 8002158:	e7f6      	b.n	8002148 <FLASH_IF_INT_Erase+0x74>
+ 800215a:	bf00      	nop
+ 800215c:	1fff7000 	.word	0x1fff7000
+ 8002160:	03fffc00 	.word	0x03fffc00
+
+08002164 <FLASH_IF_Init>:
+ 8002164:	4b01      	ldr	r3, [pc, #4]	; (800216c <FLASH_IF_Init+0x8>)
+ 8002166:	6018      	str	r0, [r3, #0]
+ 8002168:	2000      	movs	r0, #0
+ 800216a:	4770      	bx	lr
+ 800216c:	20000950 	.word	0x20000950
+
+08002170 <FLASH_IF_Write>:
+ 8002170:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8002174:	b089      	sub	sp, #36	; 0x24
+ 8002176:	f1b0 6f00 	cmp.w	r0, #134217728	; 0x8000000
+ 800217a:	4606      	mov	r6, r0
+ 800217c:	460f      	mov	r7, r1
+ 800217e:	9200      	str	r2, [sp, #0]
+ 8002180:	f0c0 80c5 	bcc.w	800230e <FLASH_IF_Write+0x19e>
+ 8002184:	f8df 8198 	ldr.w	r8, [pc, #408]	; 8002320 <FLASH_IF_Write+0x1b0>
+ 8002188:	4d66      	ldr	r5, [pc, #408]	; (8002324 <FLASH_IF_Write+0x1b4>)
+ 800218a:	f8d8 35e0 	ldr.w	r3, [r8, #1504]	; 0x5e0
+ 800218e:	ea05 2383 	and.w	r3, r5, r3, lsl #10
+ 8002192:	f103 6300 	add.w	r3, r3, #134217728	; 0x8000000
+ 8002196:	3b01      	subs	r3, #1
+ 8002198:	4298      	cmp	r0, r3
+ 800219a:	f200 80b8 	bhi.w	800230e <FLASH_IF_Write+0x19e>
+ 800219e:	2800      	cmp	r0, #0
+ 80021a0:	f000 80b8 	beq.w	8002314 <FLASH_IF_Write+0x1a4>
+ 80021a4:	2900      	cmp	r1, #0
+ 80021a6:	f000 80b5 	beq.w	8002314 <FLASH_IF_Write+0x1a4>
+ 80021aa:	ea40 0302 	orr.w	r3, r0, r2
+ 80021ae:	075b      	lsls	r3, r3, #29
+ 80021b0:	f040 80b0 	bne.w	8002314 <FLASH_IF_Write+0x1a4>
+ 80021b4:	f7ff ff78 	bl	80020a8 <FLASH_IF_INT_Clear_Error>
+ 80021b8:	4604      	mov	r4, r0
+ 80021ba:	bba0      	cbnz	r0, 8002226 <FLASH_IF_Write+0xb6>
+ 80021bc:	f006 f812 	bl	80081e4 <HAL_FLASH_Unlock>
+ 80021c0:	2800      	cmp	r0, #0
+ 80021c2:	f040 80aa 	bne.w	800231a <FLASH_IF_Write+0x1aa>
+ 80021c6:	f8d8 15e0 	ldr.w	r1, [r8, #1504]	; 0x5e0
+ 80021ca:	f106 4278 	add.w	r2, r6, #4160749568	; 0xf8000000
+ 80021ce:	ea05 2181 	and.w	r1, r5, r1, lsl #10
+ 80021d2:	fbb2 f3f1 	udiv	r3, r2, r1
+ 80021d6:	fb01 2213 	mls	r2, r1, r3, r2
+ 80021da:	9b00      	ldr	r3, [sp, #0]
+ 80021dc:	f103 4378 	add.w	r3, r3, #4160749568	; 0xf8000000
+ 80021e0:	3b01      	subs	r3, #1
+ 80021e2:	4433      	add	r3, r6
+ 80021e4:	fbb3 f0f1 	udiv	r0, r3, r1
+ 80021e8:	fb01 3310 	mls	r3, r1, r0, r3
+ 80021ec:	0adb      	lsrs	r3, r3, #11
+ 80021ee:	3301      	adds	r3, #1
+ 80021f0:	ea4f 2ad2 	mov.w	sl, r2, lsr #11
+ 80021f4:	eba3 22d2 	sub.w	r2, r3, r2, lsr #11
+ 80021f8:	2a01      	cmp	r2, #1
+ 80021fa:	9303      	str	r3, [sp, #12]
+ 80021fc:	bf88      	it	hi
+ 80021fe:	f3c6 050a 	ubfxhi	r5, r6, #0, #11
+ 8002202:	f50a 3880 	add.w	r8, sl, #65536	; 0x10000
+ 8002206:	f1c6 0308 	rsb	r3, r6, #8
+ 800220a:	bf98      	it	ls
+ 800220c:	9d00      	ldrls	r5, [sp, #0]
+ 800220e:	9306      	str	r3, [sp, #24]
+ 8002210:	bf88      	it	hi
+ 8002212:	f5c5 6500 	rsbhi	r5, r5, #2048	; 0x800
+ 8002216:	ea4f 28c8 	mov.w	r8, r8, lsl #11
+ 800221a:	46b3      	mov	fp, r6
+ 800221c:	9b03      	ldr	r3, [sp, #12]
+ 800221e:	459a      	cmp	sl, r3
+ 8002220:	d305      	bcc.n	800222e <FLASH_IF_Write+0xbe>
+ 8002222:	f005 fff1 	bl	8008208 <HAL_FLASH_Lock>
+ 8002226:	4620      	mov	r0, r4
+ 8002228:	b009      	add	sp, #36	; 0x24
+ 800222a:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 800222e:	f1a6 0308 	sub.w	r3, r6, #8
+ 8002232:	9a06      	ldr	r2, [sp, #24]
+ 8002234:	441a      	add	r2, r3
+ 8002236:	4295      	cmp	r5, r2
+ 8002238:	d819      	bhi.n	800226e <FLASH_IF_Write+0xfe>
+ 800223a:	9504      	str	r5, [sp, #16]
+ 800223c:	9701      	str	r7, [sp, #4]
+ 800223e:	f8cd b014 	str.w	fp, [sp, #20]
+ 8002242:	f04f 0900 	mov.w	r9, #0
+ 8002246:	9b05      	ldr	r3, [sp, #20]
+ 8002248:	eb09 0103 	add.w	r1, r9, r3
+ 800224c:	9b04      	ldr	r3, [sp, #16]
+ 800224e:	4599      	cmp	r9, r3
+ 8002250:	d33e      	bcc.n	80022d0 <FLASH_IF_Write+0x160>
+ 8002252:	9b00      	ldr	r3, [sp, #0]
+ 8002254:	44ab      	add	fp, r5
+ 8002256:	442f      	add	r7, r5
+ 8002258:	1b5d      	subs	r5, r3, r5
+ 800225a:	f5b5 6f00 	cmp.w	r5, #2048	; 0x800
+ 800225e:	bf28      	it	cs
+ 8002260:	f44f 6500 	movcs.w	r5, #2048	; 0x800
+ 8002264:	f10a 0a01 	add.w	sl, sl, #1
+ 8002268:	f508 6800 	add.w	r8, r8, #2048	; 0x800
+ 800226c:	e7d6      	b.n	800221c <FLASH_IF_Write+0xac>
+ 800226e:	f853 1f08 	ldr.w	r1, [r3, #8]!
+ 8002272:	685a      	ldr	r2, [r3, #4]
+ 8002274:	f1b2 3fff 	cmp.w	r2, #4294967295
+ 8002278:	bf08      	it	eq
+ 800227a:	f1b1 3fff 	cmpeq.w	r1, #4294967295
+ 800227e:	d0d8      	beq.n	8002232 <FLASH_IF_Write+0xc2>
+ 8002280:	4b29      	ldr	r3, [pc, #164]	; (8002328 <FLASH_IF_Write+0x1b8>)
+ 8002282:	6818      	ldr	r0, [r3, #0]
+ 8002284:	b910      	cbnz	r0, 800228c <FLASH_IF_Write+0x11c>
+ 8002286:	f06f 0405 	mvn.w	r4, #5
+ 800228a:	e7ca      	b.n	8002222 <FLASH_IF_Write+0xb2>
+ 800228c:	f1b8 0f00 	cmp.w	r8, #0
+ 8002290:	d004      	beq.n	800229c <FLASH_IF_Write+0x12c>
+ 8002292:	f44f 6200 	mov.w	r2, #2048	; 0x800
+ 8002296:	4641      	mov	r1, r8
+ 8002298:	f011 fba2 	bl	80139e0 <UTIL_MEM_cpy_8>
+ 800229c:	f8df 9088 	ldr.w	r9, [pc, #136]	; 8002328 <FLASH_IF_Write+0x1b8>
+ 80022a0:	f8d9 3000 	ldr.w	r3, [r9]
+ 80022a4:	f3cb 000a 	ubfx	r0, fp, #0, #11
+ 80022a8:	4639      	mov	r1, r7
+ 80022aa:	4418      	add	r0, r3
+ 80022ac:	b2aa      	uxth	r2, r5
+ 80022ae:	f011 fb97 	bl	80139e0 <UTIL_MEM_cpy_8>
+ 80022b2:	f44f 6100 	mov.w	r1, #2048	; 0x800
+ 80022b6:	4640      	mov	r0, r8
+ 80022b8:	f7ff ff0c 	bl	80020d4 <FLASH_IF_INT_Erase>
+ 80022bc:	bb08      	cbnz	r0, 8002302 <FLASH_IF_Write+0x192>
+ 80022be:	f8d9 3000 	ldr.w	r3, [r9]
+ 80022c2:	9301      	str	r3, [sp, #4]
+ 80022c4:	f44f 6300 	mov.w	r3, #2048	; 0x800
+ 80022c8:	f8cd 8014 	str.w	r8, [sp, #20]
+ 80022cc:	9304      	str	r3, [sp, #16]
+ 80022ce:	e7b8      	b.n	8002242 <FLASH_IF_Write+0xd2>
+ 80022d0:	9b01      	ldr	r3, [sp, #4]
+ 80022d2:	9107      	str	r1, [sp, #28]
+ 80022d4:	444b      	add	r3, r9
+ 80022d6:	9302      	str	r3, [sp, #8]
+ 80022d8:	2001      	movs	r0, #1
+ 80022da:	e9d3 2300 	ldrd	r2, r3, [r3]
+ 80022de:	f005 ffcd 	bl	800827c <HAL_FLASH_Program>
+ 80022e2:	b988      	cbnz	r0, 8002308 <FLASH_IF_Write+0x198>
+ 80022e4:	9907      	ldr	r1, [sp, #28]
+ 80022e6:	9b01      	ldr	r3, [sp, #4]
+ 80022e8:	e9d1 0200 	ldrd	r0, r2, [r1]
+ 80022ec:	f859 1003 	ldr.w	r1, [r9, r3]
+ 80022f0:	9b02      	ldr	r3, [sp, #8]
+ 80022f2:	685b      	ldr	r3, [r3, #4]
+ 80022f4:	429a      	cmp	r2, r3
+ 80022f6:	bf08      	it	eq
+ 80022f8:	4288      	cmpeq	r0, r1
+ 80022fa:	d105      	bne.n	8002308 <FLASH_IF_Write+0x198>
+ 80022fc:	f109 0908 	add.w	r9, r9, #8
+ 8002300:	e7a1      	b.n	8002246 <FLASH_IF_Write+0xd6>
+ 8002302:	f06f 0401 	mvn.w	r4, #1
+ 8002306:	e78c      	b.n	8002222 <FLASH_IF_Write+0xb2>
+ 8002308:	f06f 0403 	mvn.w	r4, #3
+ 800230c:	e789      	b.n	8002222 <FLASH_IF_Write+0xb2>
+ 800230e:	f04f 34ff 	mov.w	r4, #4294967295
+ 8002312:	e788      	b.n	8002226 <FLASH_IF_Write+0xb6>
+ 8002314:	f06f 0405 	mvn.w	r4, #5
+ 8002318:	e785      	b.n	8002226 <FLASH_IF_Write+0xb6>
+ 800231a:	f06f 0404 	mvn.w	r4, #4
+ 800231e:	e782      	b.n	8002226 <FLASH_IF_Write+0xb6>
+ 8002320:	1fff7000 	.word	0x1fff7000
+ 8002324:	03fffc00 	.word	0x03fffc00
+ 8002328:	20000950 	.word	0x20000950
+
+0800232c <FLASH_IF_Read>:
+ 800232c:	f1b1 6f00 	cmp.w	r1, #134217728	; 0x8000000
+ 8002330:	b570      	push	{r4, r5, r6, lr}
+ 8002332:	d311      	bcc.n	8002358 <FLASH_IF_Read+0x2c>
+ 8002334:	4b0b      	ldr	r3, [pc, #44]	; (8002364 <FLASH_IF_Read+0x38>)
+ 8002336:	f8d3 65e0 	ldr.w	r6, [r3, #1504]	; 0x5e0
+ 800233a:	4b0b      	ldr	r3, [pc, #44]	; (8002368 <FLASH_IF_Read+0x3c>)
+ 800233c:	ea03 2386 	and.w	r3, r3, r6, lsl #10
+ 8002340:	f103 6300 	add.w	r3, r3, #134217728	; 0x8000000
+ 8002344:	3b01      	subs	r3, #1
+ 8002346:	4299      	cmp	r1, r3
+ 8002348:	d806      	bhi.n	8002358 <FLASH_IF_Read+0x2c>
+ 800234a:	b140      	cbz	r0, 800235e <FLASH_IF_Read+0x32>
+ 800234c:	b139      	cbz	r1, 800235e <FLASH_IF_Read+0x32>
+ 800234e:	b292      	uxth	r2, r2
+ 8002350:	f011 fb46 	bl	80139e0 <UTIL_MEM_cpy_8>
+ 8002354:	2000      	movs	r0, #0
+ 8002356:	bd70      	pop	{r4, r5, r6, pc}
+ 8002358:	f04f 30ff 	mov.w	r0, #4294967295
+ 800235c:	e7fb      	b.n	8002356 <FLASH_IF_Read+0x2a>
+ 800235e:	f06f 0005 	mvn.w	r0, #5
+ 8002362:	e7f8      	b.n	8002356 <FLASH_IF_Read+0x2a>
+ 8002364:	1fff7000 	.word	0x1fff7000
+ 8002368:	03fffc00 	.word	0x03fffc00
+
+0800236c <FLASH_IF_Erase>:
+ 800236c:	f1b0 6f00 	cmp.w	r0, #134217728	; 0x8000000
+ 8002370:	b410      	push	{r4}
+ 8002372:	d30d      	bcc.n	8002390 <FLASH_IF_Erase+0x24>
+ 8002374:	4b08      	ldr	r3, [pc, #32]	; (8002398 <FLASH_IF_Erase+0x2c>)
+ 8002376:	f8d3 45e0 	ldr.w	r4, [r3, #1504]	; 0x5e0
+ 800237a:	4b08      	ldr	r3, [pc, #32]	; (800239c <FLASH_IF_Erase+0x30>)
+ 800237c:	ea03 2384 	and.w	r3, r3, r4, lsl #10
+ 8002380:	f103 6300 	add.w	r3, r3, #134217728	; 0x8000000
+ 8002384:	3b01      	subs	r3, #1
+ 8002386:	4298      	cmp	r0, r3
+ 8002388:	d802      	bhi.n	8002390 <FLASH_IF_Erase+0x24>
+ 800238a:	bc10      	pop	{r4}
+ 800238c:	f7ff bea2 	b.w	80020d4 <FLASH_IF_INT_Erase>
+ 8002390:	f04f 30ff 	mov.w	r0, #4294967295
+ 8002394:	bc10      	pop	{r4}
+ 8002396:	4770      	bx	lr
+ 8002398:	1fff7000 	.word	0x1fff7000
+ 800239c:	03fffc00 	.word	0x03fffc00
+
+080023a0 <LL_AHB2_GRP1_EnableClock>:
+ 80023a0:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 80023a4:	b082      	sub	sp, #8
+ 80023a6:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 80023a8:	4302      	orrs	r2, r0
+ 80023aa:	64da      	str	r2, [r3, #76]	; 0x4c
+ 80023ac:	6cdb      	ldr	r3, [r3, #76]	; 0x4c
+ 80023ae:	4003      	ands	r3, r0
+ 80023b0:	9301      	str	r3, [sp, #4]
+ 80023b2:	9b01      	ldr	r3, [sp, #4]
+ 80023b4:	b002      	add	sp, #8
+ 80023b6:	4770      	bx	lr
+
+080023b8 <MX_GPIO_Init>:
+ 80023b8:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 80023bc:	b086      	sub	sp, #24
+ 80023be:	2214      	movs	r2, #20
+ 80023c0:	2100      	movs	r1, #0
+ 80023c2:	a801      	add	r0, sp, #4
+ 80023c4:	f011 ff44 	bl	8014250 <memset>
+ 80023c8:	2001      	movs	r0, #1
+ 80023ca:	f7ff ffe9 	bl	80023a0 <LL_AHB2_GRP1_EnableClock>
+ 80023ce:	4e34      	ldr	r6, [pc, #208]	; (80024a0 <MX_GPIO_Init+0xe8>)
+ 80023d0:	2002      	movs	r0, #2
+ 80023d2:	f7ff ffe5 	bl	80023a0 <LL_AHB2_GRP1_EnableClock>
+ 80023d6:	2004      	movs	r0, #4
+ 80023d8:	f7ff ffe2 	bl	80023a0 <LL_AHB2_GRP1_EnableClock>
+ 80023dc:	2108      	movs	r1, #8
+ 80023de:	2201      	movs	r2, #1
+ 80023e0:	4630      	mov	r0, r6
+ 80023e2:	f006 f905 	bl	80085f0 <HAL_GPIO_WritePin>
+ 80023e6:	2501      	movs	r5, #1
+ 80023e8:	2302      	movs	r3, #2
+ 80023ea:	f44f 1704 	mov.w	r7, #2162688	; 0x210000
+ 80023ee:	a901      	add	r1, sp, #4
+ 80023f0:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 80023f4:	e9cd 3701 	strd	r3, r7, [sp, #4]
+ 80023f8:	9503      	str	r5, [sp, #12]
+ 80023fa:	f005 ffd3 	bl	80083a4 <HAL_GPIO_Init>
+ 80023fe:	a901      	add	r1, sp, #4
+ 8002400:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8002404:	2400      	movs	r4, #0
+ 8002406:	f04f 0820 	mov.w	r8, #32
+ 800240a:	e9cd 5701 	strd	r5, r7, [sp, #4]
+ 800240e:	9503      	str	r5, [sp, #12]
+ 8002410:	f005 ffc8 	bl	80083a4 <HAL_GPIO_Init>
+ 8002414:	a901      	add	r1, sp, #4
+ 8002416:	4630      	mov	r0, r6
+ 8002418:	e9cd 8701 	strd	r8, r7, [sp, #4]
+ 800241c:	9403      	str	r4, [sp, #12]
+ 800241e:	f005 ffc1 	bl	80083a4 <HAL_GPIO_Init>
+ 8002422:	a901      	add	r1, sp, #4
+ 8002424:	4630      	mov	r0, r6
+ 8002426:	e9cd 8701 	strd	r8, r7, [sp, #4]
+ 800242a:	9403      	str	r4, [sp, #12]
+ 800242c:	f005 ffba 	bl	80083a4 <HAL_GPIO_Init>
+ 8002430:	2308      	movs	r3, #8
+ 8002432:	a901      	add	r1, sp, #4
+ 8002434:	4630      	mov	r0, r6
+ 8002436:	e9cd 3501 	strd	r3, r5, [sp, #4]
+ 800243a:	e9cd 5403 	strd	r5, r4, [sp, #12]
+ 800243e:	f005 ffb1 	bl	80083a4 <HAL_GPIO_Init>
+ 8002442:	f44f 7300 	mov.w	r3, #512	; 0x200
+ 8002446:	a901      	add	r1, sp, #4
+ 8002448:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 800244c:	e9cd 3501 	strd	r3, r5, [sp, #4]
+ 8002450:	e9cd 5403 	strd	r5, r4, [sp, #12]
+ 8002454:	f005 ffa6 	bl	80083a4 <HAL_GPIO_Init>
+ 8002458:	4622      	mov	r2, r4
+ 800245a:	4621      	mov	r1, r4
+ 800245c:	2006      	movs	r0, #6
+ 800245e:	f005 fc47 	bl	8007cf0 <HAL_NVIC_SetPriority>
+ 8002462:	2006      	movs	r0, #6
+ 8002464:	f005 fc76 	bl	8007d54 <HAL_NVIC_EnableIRQ>
+ 8002468:	4622      	mov	r2, r4
+ 800246a:	4621      	mov	r1, r4
+ 800246c:	2007      	movs	r0, #7
+ 800246e:	f005 fc3f 	bl	8007cf0 <HAL_NVIC_SetPriority>
+ 8002472:	2007      	movs	r0, #7
+ 8002474:	f005 fc6e 	bl	8007d54 <HAL_NVIC_EnableIRQ>
+ 8002478:	4622      	mov	r2, r4
+ 800247a:	4621      	mov	r1, r4
+ 800247c:	2016      	movs	r0, #22
+ 800247e:	f005 fc37 	bl	8007cf0 <HAL_NVIC_SetPriority>
+ 8002482:	2016      	movs	r0, #22
+ 8002484:	f005 fc66 	bl	8007d54 <HAL_NVIC_EnableIRQ>
+ 8002488:	4622      	mov	r2, r4
+ 800248a:	4621      	mov	r1, r4
+ 800248c:	2016      	movs	r0, #22
+ 800248e:	f005 fc2f 	bl	8007cf0 <HAL_NVIC_SetPriority>
+ 8002492:	2016      	movs	r0, #22
+ 8002494:	f005 fc5e 	bl	8007d54 <HAL_NVIC_EnableIRQ>
+ 8002498:	b006      	add	sp, #24
+ 800249a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800249e:	bf00      	nop
+ 80024a0:	48000400 	.word	0x48000400
+
+080024a4 <MX_I2C2_Init>:
+ 80024a4:	b508      	push	{r3, lr}
+ 80024a6:	4812      	ldr	r0, [pc, #72]	; (80024f0 <MX_I2C2_Init+0x4c>)
+ 80024a8:	4a12      	ldr	r2, [pc, #72]	; (80024f4 <MX_I2C2_Init+0x50>)
+ 80024aa:	4b13      	ldr	r3, [pc, #76]	; (80024f8 <MX_I2C2_Init+0x54>)
+ 80024ac:	e9c0 2300 	strd	r2, r3, [r0]
+ 80024b0:	2300      	movs	r3, #0
+ 80024b2:	2201      	movs	r2, #1
+ 80024b4:	e9c0 3202 	strd	r3, r2, [r0, #8]
+ 80024b8:	e9c0 3304 	strd	r3, r3, [r0, #16]
+ 80024bc:	e9c0 3306 	strd	r3, r3, [r0, #24]
+ 80024c0:	6203      	str	r3, [r0, #32]
+ 80024c2:	f006 fa09 	bl	80088d8 <HAL_I2C_Init>
+ 80024c6:	b108      	cbz	r0, 80024cc <MX_I2C2_Init+0x28>
+ 80024c8:	f000 f8ec 	bl	80026a4 <Error_Handler>
+ 80024cc:	4808      	ldr	r0, [pc, #32]	; (80024f0 <MX_I2C2_Init+0x4c>)
+ 80024ce:	2100      	movs	r1, #0
+ 80024d0:	f006 fb82 	bl	8008bd8 <HAL_I2CEx_ConfigAnalogFilter>
+ 80024d4:	b108      	cbz	r0, 80024da <MX_I2C2_Init+0x36>
+ 80024d6:	f000 f8e5 	bl	80026a4 <Error_Handler>
+ 80024da:	4805      	ldr	r0, [pc, #20]	; (80024f0 <MX_I2C2_Init+0x4c>)
+ 80024dc:	2100      	movs	r1, #0
+ 80024de:	f006 fba1 	bl	8008c24 <HAL_I2CEx_ConfigDigitalFilter>
+ 80024e2:	b118      	cbz	r0, 80024ec <MX_I2C2_Init+0x48>
+ 80024e4:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 80024e8:	f000 b8dc 	b.w	80026a4 <Error_Handler>
+ 80024ec:	bd08      	pop	{r3, pc}
+ 80024ee:	bf00      	nop
+ 80024f0:	20000a14 	.word	0x20000a14
+ 80024f4:	40005800 	.word	0x40005800
+ 80024f8:	2010091a 	.word	0x2010091a
+
+080024fc <HAL_I2C_MspInit>:
+ 80024fc:	b570      	push	{r4, r5, r6, lr}
+ 80024fe:	b096      	sub	sp, #88	; 0x58
+ 8002500:	4605      	mov	r5, r0
+ 8002502:	2214      	movs	r2, #20
+ 8002504:	2100      	movs	r1, #0
+ 8002506:	a803      	add	r0, sp, #12
+ 8002508:	f011 fea2 	bl	8014250 <memset>
+ 800250c:	2238      	movs	r2, #56	; 0x38
+ 800250e:	2100      	movs	r1, #0
+ 8002510:	a808      	add	r0, sp, #32
+ 8002512:	f011 fe9d 	bl	8014250 <memset>
+ 8002516:	682a      	ldr	r2, [r5, #0]
+ 8002518:	4b30      	ldr	r3, [pc, #192]	; (80025dc <HAL_I2C_MspInit+0xe0>)
+ 800251a:	429a      	cmp	r2, r3
+ 800251c:	d15b      	bne.n	80025d6 <HAL_I2C_MspInit+0xda>
+ 800251e:	2380      	movs	r3, #128	; 0x80
+ 8002520:	9308      	str	r3, [sp, #32]
+ 8002522:	a808      	add	r0, sp, #32
+ 8002524:	f44f 2340 	mov.w	r3, #786432	; 0xc0000
+ 8002528:	930e      	str	r3, [sp, #56]	; 0x38
+ 800252a:	f007 f8d7 	bl	80096dc <HAL_RCCEx_PeriphCLKConfig>
+ 800252e:	b108      	cbz	r0, 8002534 <HAL_I2C_MspInit+0x38>
+ 8002530:	f000 f8b8 	bl	80026a4 <Error_Handler>
+ 8002534:	f04f 44b0 	mov.w	r4, #1476395008	; 0x58000000
+ 8002538:	f44f 50c0 	mov.w	r0, #6144	; 0x1800
+ 800253c:	6ce3      	ldr	r3, [r4, #76]	; 0x4c
+ 800253e:	f043 0301 	orr.w	r3, r3, #1
+ 8002542:	64e3      	str	r3, [r4, #76]	; 0x4c
+ 8002544:	6ce3      	ldr	r3, [r4, #76]	; 0x4c
+ 8002546:	f003 0301 	and.w	r3, r3, #1
+ 800254a:	9302      	str	r3, [sp, #8]
+ 800254c:	9b02      	ldr	r3, [sp, #8]
+ 800254e:	2312      	movs	r3, #18
+ 8002550:	2600      	movs	r6, #0
+ 8002552:	e9cd 0303 	strd	r0, r3, [sp, #12]
+ 8002556:	2303      	movs	r3, #3
+ 8002558:	e9cd 6305 	strd	r6, r3, [sp, #20]
+ 800255c:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8002560:	2304      	movs	r3, #4
+ 8002562:	a903      	add	r1, sp, #12
+ 8002564:	9307      	str	r3, [sp, #28]
+ 8002566:	f005 ff1d 	bl	80083a4 <HAL_GPIO_Init>
+ 800256a:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 800256c:	f8df c070 	ldr.w	ip, [pc, #112]	; 80025e0 <HAL_I2C_MspInit+0xe4>
+ 8002570:	f443 0380 	orr.w	r3, r3, #4194304	; 0x400000
+ 8002574:	65a3      	str	r3, [r4, #88]	; 0x58
+ 8002576:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8002578:	4c1a      	ldr	r4, [pc, #104]	; (80025e4 <HAL_I2C_MspInit+0xe8>)
+ 800257a:	f403 0380 	and.w	r3, r3, #4194304	; 0x400000
+ 800257e:	9301      	str	r3, [sp, #4]
+ 8002580:	9b01      	ldr	r3, [sp, #4]
+ 8002582:	6226      	str	r6, [r4, #32]
+ 8002584:	230d      	movs	r3, #13
+ 8002586:	e9c4 c300 	strd	ip, r3, [r4]
+ 800258a:	4620      	mov	r0, r4
+ 800258c:	2380      	movs	r3, #128	; 0x80
+ 800258e:	e9c4 6602 	strd	r6, r6, [r4, #8]
+ 8002592:	e9c4 3604 	strd	r3, r6, [r4, #16]
+ 8002596:	e9c4 6606 	strd	r6, r6, [r4, #24]
+ 800259a:	f005 fc3b 	bl	8007e14 <HAL_DMA_Init>
+ 800259e:	b108      	cbz	r0, 80025a4 <HAL_I2C_MspInit+0xa8>
+ 80025a0:	f000 f880 	bl	80026a4 <Error_Handler>
+ 80025a4:	4a10      	ldr	r2, [pc, #64]	; (80025e8 <HAL_I2C_MspInit+0xec>)
+ 80025a6:	63ec      	str	r4, [r5, #60]	; 0x3c
+ 80025a8:	62a5      	str	r5, [r4, #40]	; 0x28
+ 80025aa:	4c10      	ldr	r4, [pc, #64]	; (80025ec <HAL_I2C_MspInit+0xf0>)
+ 80025ac:	230e      	movs	r3, #14
+ 80025ae:	e9c4 2300 	strd	r2, r3, [r4]
+ 80025b2:	2110      	movs	r1, #16
+ 80025b4:	2300      	movs	r3, #0
+ 80025b6:	2280      	movs	r2, #128	; 0x80
+ 80025b8:	4620      	mov	r0, r4
+ 80025ba:	e9c4 1302 	strd	r1, r3, [r4, #8]
+ 80025be:	e9c4 2304 	strd	r2, r3, [r4, #16]
+ 80025c2:	e9c4 3306 	strd	r3, r3, [r4, #24]
+ 80025c6:	6223      	str	r3, [r4, #32]
+ 80025c8:	f005 fc24 	bl	8007e14 <HAL_DMA_Init>
+ 80025cc:	b108      	cbz	r0, 80025d2 <HAL_I2C_MspInit+0xd6>
+ 80025ce:	f000 f869 	bl	80026a4 <Error_Handler>
+ 80025d2:	63ac      	str	r4, [r5, #56]	; 0x38
+ 80025d4:	62a5      	str	r5, [r4, #40]	; 0x28
+ 80025d6:	b016      	add	sp, #88	; 0x58
+ 80025d8:	bd70      	pop	{r4, r5, r6, pc}
+ 80025da:	bf00      	nop
+ 80025dc:	40005800 	.word	0x40005800
+ 80025e0:	40020044 	.word	0x40020044
+ 80025e4:	20000954 	.word	0x20000954
+ 80025e8:	40020058 	.word	0x40020058
+ 80025ec:	200009b4 	.word	0x200009b4
+
+080025f0 <SystemClock_Config>:
+ 80025f0:	b500      	push	{lr}
+ 80025f2:	b09b      	sub	sp, #108	; 0x6c
+ 80025f4:	2248      	movs	r2, #72	; 0x48
+ 80025f6:	2100      	movs	r1, #0
+ 80025f8:	a808      	add	r0, sp, #32
+ 80025fa:	f011 fe29 	bl	8014250 <memset>
+ 80025fe:	2218      	movs	r2, #24
+ 8002600:	2100      	movs	r1, #0
+ 8002602:	a802      	add	r0, sp, #8
+ 8002604:	f011 fe24 	bl	8014250 <memset>
+ 8002608:	f006 fb32 	bl	8008c70 <HAL_PWR_EnableBkUpAccess>
+ 800260c:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 8002610:	2001      	movs	r0, #1
+ 8002612:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 8002616:	f023 0318 	bic.w	r3, r3, #24
+ 800261a:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+ 800261e:	f8d2 3400 	ldr.w	r3, [r2, #1024]	; 0x400
+ 8002622:	f423 63c0 	bic.w	r3, r3, #1536	; 0x600
+ 8002626:	f443 7300 	orr.w	r3, r3, #512	; 0x200
+ 800262a:	f8c2 3400 	str.w	r3, [r2, #1024]	; 0x400
+ 800262e:	f8d2 3400 	ldr.w	r3, [r2, #1024]	; 0x400
+ 8002632:	f403 63c0 	and.w	r3, r3, #1536	; 0x600
+ 8002636:	9301      	str	r3, [sp, #4]
+ 8002638:	9b01      	ldr	r3, [sp, #4]
+ 800263a:	2324      	movs	r3, #36	; 0x24
+ 800263c:	9308      	str	r3, [sp, #32]
+ 800263e:	2381      	movs	r3, #129	; 0x81
+ 8002640:	930b      	str	r3, [sp, #44]	; 0x2c
+ 8002642:	2300      	movs	r3, #0
+ 8002644:	e9cd 0310 	strd	r0, r3, [sp, #64]	; 0x40
+ 8002648:	22b0      	movs	r2, #176	; 0xb0
+ 800264a:	a808      	add	r0, sp, #32
+ 800264c:	e9cd 2312 	strd	r2, r3, [sp, #72]	; 0x48
+ 8002650:	f006 fc86 	bl	8008f60 <HAL_RCC_OscConfig>
+ 8002654:	b108      	cbz	r0, 800265a <SystemClock_Config+0x6a>
+ 8002656:	b672      	cpsid	i
+ 8002658:	e7fe      	b.n	8002658 <SystemClock_Config+0x68>
+ 800265a:	234f      	movs	r3, #79	; 0x4f
+ 800265c:	e9cd 3002 	strd	r3, r0, [sp, #8]
+ 8002660:	e9cd 0004 	strd	r0, r0, [sp, #16]
+ 8002664:	e9cd 0006 	strd	r0, r0, [sp, #24]
+ 8002668:	2102      	movs	r1, #2
+ 800266a:	a802      	add	r0, sp, #8
+ 800266c:	f006 ff12 	bl	8009494 <HAL_RCC_ClockConfig>
+ 8002670:	b108      	cbz	r0, 8002676 <SystemClock_Config+0x86>
+ 8002672:	b672      	cpsid	i
+ 8002674:	e7fe      	b.n	8002674 <SystemClock_Config+0x84>
+ 8002676:	b01b      	add	sp, #108	; 0x6c
+ 8002678:	f85d fb04 	ldr.w	pc, [sp], #4
+
+0800267c <main>:
+ 800267c:	b508      	push	{r3, lr}
+ 800267e:	f004 feaf 	bl	80073e0 <HAL_Init>
+ 8002682:	f7ff ffb5 	bl	80025f0 <SystemClock_Config>
+ 8002686:	f7ff fe97 	bl	80023b8 <MX_GPIO_Init>
+ 800268a:	f7ff fcc0 	bl	800200e <MX_DMA_Init>
+ 800268e:	f7ff ff09 	bl	80024a4 <MX_I2C2_Init>
+ 8002692:	f000 fe12 	bl	80032ba <MX_LoRaWAN_Init>
+ 8002696:	f640 30b8 	movw	r0, #3000	; 0xbb8
+ 800269a:	f000 fa5f 	bl	8002b5c <HAL_Delay>
+ 800269e:	f000 fe13 	bl	80032c8 <MX_LoRaWAN_Process>
+ 80026a2:	e7fc      	b.n	800269e <main+0x22>
+
+080026a4 <Error_Handler>:
+ 80026a4:	b672      	cpsid	i
+ 80026a6:	e7fe      	b.n	80026a6 <Error_Handler+0x2>
+
+080026a8 <MX_RTC_Init>:
+ 80026a8:	b500      	push	{lr}
+ 80026aa:	b08d      	sub	sp, #52	; 0x34
+ 80026ac:	222c      	movs	r2, #44	; 0x2c
+ 80026ae:	2100      	movs	r1, #0
+ 80026b0:	a801      	add	r0, sp, #4
+ 80026b2:	f011 fdcd 	bl	8014250 <memset>
+ 80026b6:	4817      	ldr	r0, [pc, #92]	; (8002714 <MX_RTC_Init+0x6c>)
+ 80026b8:	4b17      	ldr	r3, [pc, #92]	; (8002718 <MX_RTC_Init+0x70>)
+ 80026ba:	6003      	str	r3, [r0, #0]
+ 80026bc:	231f      	movs	r3, #31
+ 80026be:	6083      	str	r3, [r0, #8]
+ 80026c0:	f04f 4280 	mov.w	r2, #1073741824	; 0x40000000
+ 80026c4:	2300      	movs	r3, #0
+ 80026c6:	e9c0 3304 	strd	r3, r3, [r0, #16]
+ 80026ca:	e9c0 2307 	strd	r2, r3, [r0, #28]
+ 80026ce:	6183      	str	r3, [r0, #24]
+ 80026d0:	f44f 7380 	mov.w	r3, #256	; 0x100
+ 80026d4:	6243      	str	r3, [r0, #36]	; 0x24
+ 80026d6:	f007 f987 	bl	80099e8 <HAL_RTC_Init>
+ 80026da:	b108      	cbz	r0, 80026e0 <MX_RTC_Init+0x38>
+ 80026dc:	f7ff ffe2 	bl	80026a4 <Error_Handler>
+ 80026e0:	480c      	ldr	r0, [pc, #48]	; (8002714 <MX_RTC_Init+0x6c>)
+ 80026e2:	f007 faad 	bl	8009c40 <HAL_RTCEx_SetSSRU_IT>
+ 80026e6:	b108      	cbz	r0, 80026ec <MX_RTC_Init+0x44>
+ 80026e8:	f7ff ffdc 	bl	80026a4 <Error_Handler>
+ 80026ec:	f04f 5300 	mov.w	r3, #536870912	; 0x20000000
+ 80026f0:	2200      	movs	r2, #0
+ 80026f2:	9307      	str	r3, [sp, #28]
+ 80026f4:	4807      	ldr	r0, [pc, #28]	; (8002714 <MX_RTC_Init+0x6c>)
+ 80026f6:	9208      	str	r2, [sp, #32]
+ 80026f8:	f44f 7380 	mov.w	r3, #256	; 0x100
+ 80026fc:	a901      	add	r1, sp, #4
+ 80026fe:	9202      	str	r2, [sp, #8]
+ 8002700:	9206      	str	r2, [sp, #24]
+ 8002702:	930b      	str	r3, [sp, #44]	; 0x2c
+ 8002704:	f007 f9d0 	bl	8009aa8 <HAL_RTC_SetAlarm_IT>
+ 8002708:	b108      	cbz	r0, 800270e <MX_RTC_Init+0x66>
+ 800270a:	f7ff ffcb 	bl	80026a4 <Error_Handler>
+ 800270e:	b00d      	add	sp, #52	; 0x34
+ 8002710:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8002714:	20000a68 	.word	0x20000a68
+ 8002718:	40002800 	.word	0x40002800
+
+0800271c <HAL_RTC_MspInit>:
+ 800271c:	b510      	push	{r4, lr}
+ 800271e:	4604      	mov	r4, r0
+ 8002720:	b090      	sub	sp, #64	; 0x40
+ 8002722:	2238      	movs	r2, #56	; 0x38
+ 8002724:	2100      	movs	r1, #0
+ 8002726:	a802      	add	r0, sp, #8
+ 8002728:	f011 fd92 	bl	8014250 <memset>
+ 800272c:	6822      	ldr	r2, [r4, #0]
+ 800272e:	4b19      	ldr	r3, [pc, #100]	; (8002794 <HAL_RTC_MspInit+0x78>)
+ 8002730:	429a      	cmp	r2, r3
+ 8002732:	d12c      	bne.n	800278e <HAL_RTC_MspInit+0x72>
+ 8002734:	f44f 3380 	mov.w	r3, #65536	; 0x10000
+ 8002738:	9302      	str	r3, [sp, #8]
+ 800273a:	a802      	add	r0, sp, #8
+ 800273c:	f44f 7380 	mov.w	r3, #256	; 0x100
+ 8002740:	930f      	str	r3, [sp, #60]	; 0x3c
+ 8002742:	f006 ffcb 	bl	80096dc <HAL_RCCEx_PeriphCLKConfig>
+ 8002746:	b108      	cbz	r0, 800274c <HAL_RTC_MspInit+0x30>
+ 8002748:	f7ff ffac 	bl	80026a4 <Error_Handler>
+ 800274c:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8002750:	2002      	movs	r0, #2
+ 8002752:	f8d3 2090 	ldr.w	r2, [r3, #144]	; 0x90
+ 8002756:	f442 4200 	orr.w	r2, r2, #32768	; 0x8000
+ 800275a:	f8c3 2090 	str.w	r2, [r3, #144]	; 0x90
+ 800275e:	6d9a      	ldr	r2, [r3, #88]	; 0x58
+ 8002760:	f442 6280 	orr.w	r2, r2, #1024	; 0x400
+ 8002764:	659a      	str	r2, [r3, #88]	; 0x58
+ 8002766:	6d9b      	ldr	r3, [r3, #88]	; 0x58
+ 8002768:	2200      	movs	r2, #0
+ 800276a:	f403 6380 	and.w	r3, r3, #1024	; 0x400
+ 800276e:	4611      	mov	r1, r2
+ 8002770:	9301      	str	r3, [sp, #4]
+ 8002772:	9b01      	ldr	r3, [sp, #4]
+ 8002774:	f005 fabc 	bl	8007cf0 <HAL_NVIC_SetPriority>
+ 8002778:	2002      	movs	r0, #2
+ 800277a:	f005 faeb 	bl	8007d54 <HAL_NVIC_EnableIRQ>
+ 800277e:	2200      	movs	r2, #0
+ 8002780:	202a      	movs	r0, #42	; 0x2a
+ 8002782:	4611      	mov	r1, r2
+ 8002784:	f005 fab4 	bl	8007cf0 <HAL_NVIC_SetPriority>
+ 8002788:	202a      	movs	r0, #42	; 0x2a
+ 800278a:	f005 fae3 	bl	8007d54 <HAL_NVIC_EnableIRQ>
+ 800278e:	b010      	add	sp, #64	; 0x40
+ 8002790:	bd10      	pop	{r4, pc}
+ 8002792:	bf00      	nop
+ 8002794:	40002800 	.word	0x40002800
+
+08002798 <PWR_EnterOffMode>:
+ 8002798:	4770      	bx	lr
+	...
+
+0800279c <PWR_EnterStopMode>:
+ 800279c:	b508      	push	{r3, lr}
+ 800279e:	f004 fe35 	bl	800740c <HAL_SuspendTick>
+ 80027a2:	4b04      	ldr	r3, [pc, #16]	; (80027b4 <PWR_EnterStopMode+0x18>)
+ 80027a4:	2001      	movs	r0, #1
+ 80027a6:	f8c3 0088 	str.w	r0, [r3, #136]	; 0x88
+ 80027aa:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 80027ae:	f006 bab7 	b.w	8008d20 <HAL_PWREx_EnterSTOP2Mode>
+ 80027b2:	bf00      	nop
+ 80027b4:	58000400 	.word	0x58000400
+
+080027b8 <PWR_ExitSleepMode>:
+ 80027b8:	f004 be2f 	b.w	800741a <HAL_ResumeTick>
+
+080027bc <PWR_ExitStopMode>:
+ 80027bc:	b508      	push	{r3, lr}
+ 80027be:	f004 fe2c 	bl	800741a <HAL_ResumeTick>
+ 80027c2:	f000 fc83 	bl	80030cc <vcom_Resume>
+ 80027c6:	f7ff fdf7 	bl	80023b8 <MX_GPIO_Init>
+ 80027ca:	f7ff fc20 	bl	800200e <MX_DMA_Init>
+ 80027ce:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 80027d2:	f7ff be67 	b.w	80024a4 <MX_I2C2_Init>
+
+080027d6 <PWR_EnterSleepMode>:
+ 80027d6:	b508      	push	{r3, lr}
+ 80027d8:	f004 fe18 	bl	800740c <HAL_SuspendTick>
+ 80027dc:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 80027e0:	2101      	movs	r1, #1
+ 80027e2:	2000      	movs	r0, #0
+ 80027e4:	f006 ba4c 	b.w	8008c80 <HAL_PWR_EnterSLEEPMode>
+
+080027e8 <PWR_ExitOffMode>:
+ 80027e8:	4770      	bx	lr
+
+080027ea <HAL_MspInit>:
+ 80027ea:	4770      	bx	lr
+
+080027ec <NMI_Handler>:
+ 80027ec:	e7fe      	b.n	80027ec <NMI_Handler>
+
+080027ee <HardFault_Handler>:
+ 80027ee:	e7fe      	b.n	80027ee <HardFault_Handler>
+
+080027f0 <MemManage_Handler>:
+ 80027f0:	e7fe      	b.n	80027f0 <MemManage_Handler>
+
+080027f2 <BusFault_Handler>:
+ 80027f2:	e7fe      	b.n	80027f2 <BusFault_Handler>
+
+080027f4 <UsageFault_Handler>:
+ 80027f4:	e7fe      	b.n	80027f4 <UsageFault_Handler>
+
+080027f6 <SVC_Handler>:
+ 80027f6:	4770      	bx	lr
+
+080027f8 <DebugMon_Handler>:
+ 80027f8:	4770      	bx	lr
+
+080027fa <PendSV_Handler>:
+ 80027fa:	4770      	bx	lr
+
+080027fc <SysTick_Handler>:
+ 80027fc:	4770      	bx	lr
+	...
+
+08002800 <TAMP_STAMP_LSECSS_SSRU_IRQHandler>:
+ 8002800:	4801      	ldr	r0, [pc, #4]	; (8002808 <TAMP_STAMP_LSECSS_SSRU_IRQHandler+0x8>)
+ 8002802:	f007 ba43 	b.w	8009c8c <HAL_RTCEx_SSRUIRQHandler>
+ 8002806:	bf00      	nop
+ 8002808:	20000a68 	.word	0x20000a68
+
+0800280c <EXTI0_IRQHandler>:
+ 800280c:	2001      	movs	r0, #1
+ 800280e:	f005 bef5 	b.w	80085fc <HAL_GPIO_EXTI_IRQHandler>
+
+08002812 <EXTI1_IRQHandler>:
+ 8002812:	2002      	movs	r0, #2
+ 8002814:	f005 bef2 	b.w	80085fc <HAL_GPIO_EXTI_IRQHandler>
+
+08002818 <DMA1_Channel2_IRQHandler>:
+ 8002818:	4770      	bx	lr
+
+0800281a <DMA1_Channel3_IRQHandler>:
+ 800281a:	4770      	bx	lr
+
+0800281c <DMA1_Channel4_IRQHandler>:
+ 800281c:	4801      	ldr	r0, [pc, #4]	; (8002824 <DMA1_Channel4_IRQHandler+0x8>)
+ 800281e:	f005 bc73 	b.w	8008108 <HAL_DMA_IRQHandler>
+ 8002822:	bf00      	nop
+ 8002824:	20000954 	.word	0x20000954
+
+08002828 <DMA1_Channel5_IRQHandler>:
+ 8002828:	4801      	ldr	r0, [pc, #4]	; (8002830 <DMA1_Channel5_IRQHandler+0x8>)
+ 800282a:	f005 bc6d 	b.w	8008108 <HAL_DMA_IRQHandler>
+ 800282e:	bf00      	nop
+ 8002830:	20000b40 	.word	0x20000b40
+
+08002834 <DMA1_Channel6_IRQHandler>:
+ 8002834:	4801      	ldr	r0, [pc, #4]	; (800283c <DMA1_Channel6_IRQHandler+0x8>)
+ 8002836:	f005 bc67 	b.w	8008108 <HAL_DMA_IRQHandler>
+ 800283a:	bf00      	nop
+ 800283c:	20000ae0 	.word	0x20000ae0
+
+08002840 <DMA1_Channel7_IRQHandler>:
+ 8002840:	f7ff bff2 	b.w	8002828 <DMA1_Channel5_IRQHandler>
+
+08002844 <EXTI4_IRQHandler>:
+ 8002844:	4770      	bx	lr
+
+08002846 <EXTI9_5_IRQHandler>:
+ 8002846:	4770      	bx	lr
+
+08002848 <EXTI15_10_IRQHandler>:
+ 8002848:	f44f 6080 	mov.w	r0, #1024	; 0x400
+ 800284c:	f005 bed6 	b.w	80085fc <HAL_GPIO_EXTI_IRQHandler>
+
+08002850 <USART2_IRQHandler>:
+ 8002850:	4801      	ldr	r0, [pc, #4]	; (8002858 <USART2_IRQHandler+0x8>)
+ 8002852:	f007 bddf 	b.w	800a414 <HAL_UART_IRQHandler>
+ 8002856:	bf00      	nop
+ 8002858:	20000ba0 	.word	0x20000ba0
+
+0800285c <RTC_Alarm_IRQHandler>:
+ 800285c:	4801      	ldr	r0, [pc, #4]	; (8002864 <RTC_Alarm_IRQHandler+0x8>)
+ 800285e:	f007 b847 	b.w	80098f0 <HAL_RTC_AlarmIRQHandler>
+ 8002862:	bf00      	nop
+ 8002864:	20000a68 	.word	0x20000a68
+
+08002868 <SUBGHZ_Radio_IRQHandler>:
+ 8002868:	4801      	ldr	r0, [pc, #4]	; (8002870 <SUBGHZ_Radio_IRQHandler+0x8>)
+ 800286a:	f007 bc3a 	b.w	800a0e2 <HAL_SUBGHZ_IRQHandler>
+ 800286e:	bf00      	nop
+ 8002870:	20000acc 	.word	0x20000acc
+
+08002874 <sts_hmac_sha1>:
+ 8002874:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
+ 8002878:	b089      	sub	sp, #36	; 0x24
+ 800287a:	4680      	mov	r8, r0
+ 800287c:	2000      	movs	r0, #0
+ 800287e:	9e10      	ldr	r6, [sp, #64]	; 0x40
+ 8002880:	9007      	str	r0, [sp, #28]
+ 8002882:	4689      	mov	r9, r1
+ 8002884:	4615      	mov	r5, r2
+ 8002886:	461f      	mov	r7, r3
+ 8002888:	f7fd fcce 	bl	8000228 <cmox_initialize>
+ 800288c:	b9f0      	cbnz	r0, 80028cc <sts_hmac_sha1+0x58>
+ 800288e:	4c10      	ldr	r4, [pc, #64]	; (80028d0 <sts_hmac_sha1+0x5c>)
+ 8002890:	e9cd 9000 	strd	r9, r0, [sp]
+ 8002894:	e9cd 0402 	strd	r0, r4, [sp, #8]
+ 8002898:	ab07      	add	r3, sp, #28
+ 800289a:	480e      	ldr	r0, [pc, #56]	; (80028d4 <sts_hmac_sha1+0x60>)
+ 800289c:	9305      	str	r3, [sp, #20]
+ 800289e:	2314      	movs	r3, #20
+ 80028a0:	9304      	str	r3, [sp, #16]
+ 80028a2:	463a      	mov	r2, r7
+ 80028a4:	4643      	mov	r3, r8
+ 80028a6:	4629      	mov	r1, r5
+ 80028a8:	6800      	ldr	r0, [r0, #0]
+ 80028aa:	f7fd fd87 	bl	80003bc <cmox_mac_compute>
+ 80028ae:	4623      	mov	r3, r4
+ 80028b0:	4632      	mov	r2, r6
+ 80028b2:	f104 0114 	add.w	r1, r4, #20
+ 80028b6:	f853 4b04 	ldr.w	r4, [r3], #4
+ 80028ba:	f842 4b04 	str.w	r4, [r2], #4
+ 80028be:	428b      	cmp	r3, r1
+ 80028c0:	d1f9      	bne.n	80028b6 <sts_hmac_sha1+0x42>
+ 80028c2:	9b07      	ldr	r3, [sp, #28]
+ 80028c4:	7533      	strb	r3, [r6, #20]
+ 80028c6:	b009      	add	sp, #36	; 0x24
+ 80028c8:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
+ 80028cc:	2001      	movs	r0, #1
+ 80028ce:	e7fa      	b.n	80028c6 <sts_hmac_sha1+0x52>
+ 80028d0:	20000aa0 	.word	0x20000aa0
+ 80028d4:	08014450 	.word	0x08014450
+
+080028d8 <sts_hmac_verify>:
+ 80028d8:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 80028da:	4d1b      	ldr	r5, [pc, #108]	; (8002948 <sts_hmac_verify+0x70>)
+ 80028dc:	4f1b      	ldr	r7, [pc, #108]	; (800294c <sts_hmac_verify+0x74>)
+ 80028de:	b085      	sub	sp, #20
+ 80028e0:	2300      	movs	r3, #0
+ 80028e2:	223c      	movs	r2, #60	; 0x3c
+ 80028e4:	a802      	add	r0, sp, #8
+ 80028e6:	e9cd 3302 	strd	r3, r3, [sp, #8]
+ 80028ea:	756a      	strb	r2, [r5, #21]
+ 80028ec:	752b      	strb	r3, [r5, #20]
+ 80028ee:	f000 f8d7 	bl	8002aa0 <GetUniqueId>
+ 80028f2:	4817      	ldr	r0, [pc, #92]	; (8002950 <sts_hmac_verify+0x78>)
+ 80028f4:	9500      	str	r5, [sp, #0]
+ 80028f6:	2304      	movs	r3, #4
+ 80028f8:	aa03      	add	r2, sp, #12
+ 80028fa:	2112      	movs	r1, #18
+ 80028fc:	f7ff ffba 	bl	8002874 <sts_hmac_sha1>
+ 8002900:	2414      	movs	r4, #20
+ 8002902:	462e      	mov	r6, r5
+ 8002904:	f815 3b01 	ldrb.w	r3, [r5], #1
+ 8002908:	9300      	str	r3, [sp, #0]
+ 800290a:	2200      	movs	r2, #0
+ 800290c:	463b      	mov	r3, r7
+ 800290e:	4611      	mov	r1, r2
+ 8002910:	2002      	movs	r0, #2
+ 8002912:	3c01      	subs	r4, #1
+ 8002914:	f010 ff5c 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8002918:	f014 04ff 	ands.w	r4, r4, #255	; 0xff
+ 800291c:	d1f2      	bne.n	8002904 <sts_hmac_verify+0x2c>
+ 800291e:	490d      	ldr	r1, [pc, #52]	; (8002954 <sts_hmac_verify+0x7c>)
+ 8002920:	4809      	ldr	r0, [pc, #36]	; (8002948 <sts_hmac_verify+0x70>)
+ 8002922:	2214      	movs	r2, #20
+ 8002924:	f011 fc84 	bl	8014230 <memcmp>
+ 8002928:	4605      	mov	r5, r0
+ 800292a:	b148      	cbz	r0, 8002940 <sts_hmac_verify+0x68>
+ 800292c:	4b0a      	ldr	r3, [pc, #40]	; (8002958 <sts_hmac_verify+0x80>)
+ 800292e:	7574      	strb	r4, [r6, #21]
+ 8002930:	4622      	mov	r2, r4
+ 8002932:	4621      	mov	r1, r4
+ 8002934:	2002      	movs	r0, #2
+ 8002936:	f010 ff4b 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 800293a:	4628      	mov	r0, r5
+ 800293c:	b005      	add	sp, #20
+ 800293e:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8002940:	2301      	movs	r3, #1
+ 8002942:	7573      	strb	r3, [r6, #21]
+ 8002944:	4b05      	ldr	r3, [pc, #20]	; (800295c <sts_hmac_verify+0x84>)
+ 8002946:	e7f3      	b.n	8002930 <sts_hmac_verify+0x58>
+ 8002948:	20000ab4 	.word	0x20000ab4
+ 800294c:	08014478 	.word	0x08014478
+ 8002950:	080144af 	.word	0x080144af
+ 8002954:	20000e4e 	.word	0x20000e4e
+ 8002958:	08014480 	.word	0x08014480
+ 800295c:	08014497 	.word	0x08014497
+
+08002960 <MX_SUBGHZ_Init>:
+ 8002960:	4805      	ldr	r0, [pc, #20]	; (8002978 <MX_SUBGHZ_Init+0x18>)
+ 8002962:	b508      	push	{r3, lr}
+ 8002964:	2308      	movs	r3, #8
+ 8002966:	6003      	str	r3, [r0, #0]
+ 8002968:	f007 f9d6 	bl	8009d18 <HAL_SUBGHZ_Init>
+ 800296c:	b118      	cbz	r0, 8002976 <MX_SUBGHZ_Init+0x16>
+ 800296e:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 8002972:	f7ff be97 	b.w	80026a4 <Error_Handler>
+ 8002976:	bd08      	pop	{r3, pc}
+ 8002978:	20000acc 	.word	0x20000acc
+
+0800297c <HAL_SUBGHZ_MspInit>:
+ 800297c:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8002980:	b507      	push	{r0, r1, r2, lr}
+ 8002982:	6e5a      	ldr	r2, [r3, #100]	; 0x64
+ 8002984:	f042 0201 	orr.w	r2, r2, #1
+ 8002988:	665a      	str	r2, [r3, #100]	; 0x64
+ 800298a:	6e5b      	ldr	r3, [r3, #100]	; 0x64
+ 800298c:	2200      	movs	r2, #0
+ 800298e:	f003 0301 	and.w	r3, r3, #1
+ 8002992:	9301      	str	r3, [sp, #4]
+ 8002994:	4611      	mov	r1, r2
+ 8002996:	2032      	movs	r0, #50	; 0x32
+ 8002998:	9b01      	ldr	r3, [sp, #4]
+ 800299a:	f005 f9a9 	bl	8007cf0 <HAL_NVIC_SetPriority>
+ 800299e:	2032      	movs	r0, #50	; 0x32
+ 80029a0:	b003      	add	sp, #12
+ 80029a2:	f85d eb04 	ldr.w	lr, [sp], #4
+ 80029a6:	f005 b9d5 	b.w	8007d54 <HAL_NVIC_EnableIRQ>
+	...
+
+080029ac <tiny_snprintf_like.constprop.0>:
+ 80029ac:	b40c      	push	{r2, r3}
+ 80029ae:	b507      	push	{r0, r1, r2, lr}
+ 80029b0:	4a05      	ldr	r2, [pc, #20]	; (80029c8 <tiny_snprintf_like.constprop.0+0x1c>)
+ 80029b2:	ab05      	add	r3, sp, #20
+ 80029b4:	2110      	movs	r1, #16
+ 80029b6:	9301      	str	r3, [sp, #4]
+ 80029b8:	f011 fb1c 	bl	8013ff4 <tiny_vsnprintf_like>
+ 80029bc:	b003      	add	sp, #12
+ 80029be:	f85d eb04 	ldr.w	lr, [sp], #4
+ 80029c2:	b002      	add	sp, #8
+ 80029c4:	4770      	bx	lr
+ 80029c6:	bf00      	nop
+ 80029c8:	080144c1 	.word	0x080144c1
+
+080029cc <TimestampNow>:
+ 80029cc:	b530      	push	{r4, r5, lr}
+ 80029ce:	b085      	sub	sp, #20
+ 80029d0:	4604      	mov	r4, r0
+ 80029d2:	a802      	add	r0, sp, #8
+ 80029d4:	460d      	mov	r5, r1
+ 80029d6:	f011 f939 	bl	8013c4c <SysTimeGet>
+ 80029da:	f9bd 300c 	ldrsh.w	r3, [sp, #12]
+ 80029de:	4a06      	ldr	r2, [pc, #24]	; (80029f8 <TimestampNow+0x2c>)
+ 80029e0:	9300      	str	r3, [sp, #0]
+ 80029e2:	2110      	movs	r1, #16
+ 80029e4:	9b02      	ldr	r3, [sp, #8]
+ 80029e6:	4620      	mov	r0, r4
+ 80029e8:	f7ff ffe0 	bl	80029ac <tiny_snprintf_like.constprop.0>
+ 80029ec:	4620      	mov	r0, r4
+ 80029ee:	f7fe fce7 	bl	80013c0 <strlen>
+ 80029f2:	8028      	strh	r0, [r5, #0]
+ 80029f4:	b005      	add	sp, #20
+ 80029f6:	bd30      	pop	{r4, r5, pc}
+ 80029f8:	080144c1 	.word	0x080144c1
+
+080029fc <SystemApp_Init>:
+ 80029fc:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 8002a00:	b510      	push	{r4, lr}
+ 8002a02:	6893      	ldr	r3, [r2, #8]
+ 8002a04:	f423 4300 	bic.w	r3, r3, #32768	; 0x8000
+ 8002a08:	6093      	str	r3, [r2, #8]
+ 8002a0a:	f011 f9a7 	bl	8013d5c <UTIL_TIMER_Init>
+ 8002a0e:	4b0e      	ldr	r3, [pc, #56]	; (8002a48 <SystemApp_Init+0x4c>)
+ 8002a10:	2401      	movs	r4, #1
+ 8002a12:	701c      	strb	r4, [r3, #0]
+ 8002a14:	f000 f8b6 	bl	8002b84 <DBG_Init>
+ 8002a18:	f010 fe70 	bl	80136fc <UTIL_ADV_TRACE_Init>
+ 8002a1c:	480b      	ldr	r0, [pc, #44]	; (8002a4c <SystemApp_Init+0x50>)
+ 8002a1e:	f010 fe87 	bl	8013730 <UTIL_ADV_TRACE_RegisterTimeStampFunction>
+ 8002a22:	4b0b      	ldr	r3, [pc, #44]	; (8002a50 <SystemApp_Init+0x54>)
+ 8002a24:	f44f 4200 	mov.w	r2, #32768	; 0x8000
+ 8002a28:	611a      	str	r2, [r3, #16]
+ 8002a2a:	4620      	mov	r0, r4
+ 8002a2c:	f010 fe86 	bl	801373c <UTIL_ADV_TRACE_SetVerboseLevel>
+ 8002a30:	f7ff fa6e 	bl	8001f10 <SYS_InitMeasurement>
+ 8002a34:	f000 f91c 	bl	8002c70 <EnvSensors_Init>
+ 8002a38:	f010 ff7c 	bl	8013934 <UTIL_LPM_Init>
+ 8002a3c:	4621      	mov	r1, r4
+ 8002a3e:	4620      	mov	r0, r4
+ 8002a40:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8002a44:	f010 bf96 	b.w	8013974 <UTIL_LPM_SetOffMode>
+ 8002a48:	20000ad8 	.word	0x20000ad8
+ 8002a4c:	080029cd 	.word	0x080029cd
+ 8002a50:	58004000 	.word	0x58004000
+
+08002a54 <UTIL_SEQ_Idle>:
+ 8002a54:	f010 bfa4 	b.w	80139a0 <UTIL_LPM_EnterLowPower>
+
+08002a58 <GetBatteryLevel>:
+ 8002a58:	b508      	push	{r3, lr}
+ 8002a5a:	f7ff fa61 	bl	8001f20 <SYS_GetBatteryLevel>
+ 8002a5e:	f640 33b8 	movw	r3, #3000	; 0xbb8
+ 8002a62:	4298      	cmp	r0, r3
+ 8002a64:	d80c      	bhi.n	8002a80 <GetBatteryLevel+0x28>
+ 8002a66:	f5b0 6fe1 	cmp.w	r0, #1800	; 0x708
+ 8002a6a:	d30b      	bcc.n	8002a84 <GetBatteryLevel+0x2c>
+ 8002a6c:	23fe      	movs	r3, #254	; 0xfe
+ 8002a6e:	f5a0 60e1 	sub.w	r0, r0, #1800	; 0x708
+ 8002a72:	4358      	muls	r0, r3
+ 8002a74:	f44f 6396 	mov.w	r3, #1200	; 0x4b0
+ 8002a78:	fbb0 f0f3 	udiv	r0, r0, r3
+ 8002a7c:	b2c0      	uxtb	r0, r0
+ 8002a7e:	bd08      	pop	{r3, pc}
+ 8002a80:	20fe      	movs	r0, #254	; 0xfe
+ 8002a82:	e7fc      	b.n	8002a7e <GetBatteryLevel+0x26>
+ 8002a84:	2000      	movs	r0, #0
+ 8002a86:	e7fa      	b.n	8002a7e <GetBatteryLevel+0x26>
+
+08002a88 <GetTemperatureLevel>:
+ 8002a88:	b57f      	push	{r0, r1, r2, r3, r4, r5, r6, lr}
+ 8002a8a:	4668      	mov	r0, sp
+ 8002a8c:	f000 f8d4 	bl	8002c38 <EnvSensors_Read>
+ 8002a90:	9801      	ldr	r0, [sp, #4]
+ 8002a92:	f7ff f817 	bl	8001ac4 <__aeabi_f2iz>
+ 8002a96:	b200      	sxth	r0, r0
+ 8002a98:	b007      	add	sp, #28
+ 8002a9a:	f85d fb04 	ldr.w	pc, [sp], #4
+	...
+
+08002aa0 <GetUniqueId>:
+ 8002aa0:	4a19      	ldr	r2, [pc, #100]	; (8002b08 <GetUniqueId+0x68>)
+ 8002aa2:	b538      	push	{r3, r4, r5, lr}
+ 8002aa4:	f8d2 3580 	ldr.w	r3, [r2, #1408]	; 0x580
+ 8002aa8:	1c59      	adds	r1, r3, #1
+ 8002aaa:	4604      	mov	r4, r0
+ 8002aac:	d119      	bne.n	8002ae2 <GetUniqueId+0x42>
+ 8002aae:	f004 fcbb 	bl	8007428 <HAL_GetUIDw0>
+ 8002ab2:	4605      	mov	r5, r0
+ 8002ab4:	f004 fcc4 	bl	8007440 <HAL_GetUIDw2>
+ 8002ab8:	4405      	add	r5, r0
+ 8002aba:	f004 fcbb 	bl	8007434 <HAL_GetUIDw1>
+ 8002abe:	0e2b      	lsrs	r3, r5, #24
+ 8002ac0:	71e3      	strb	r3, [r4, #7]
+ 8002ac2:	0c2b      	lsrs	r3, r5, #16
+ 8002ac4:	71a3      	strb	r3, [r4, #6]
+ 8002ac6:	0a2b      	lsrs	r3, r5, #8
+ 8002ac8:	7163      	strb	r3, [r4, #5]
+ 8002aca:	0e03      	lsrs	r3, r0, #24
+ 8002acc:	70e3      	strb	r3, [r4, #3]
+ 8002ace:	f3c0 4207 	ubfx	r2, r0, #16, #8
+ 8002ad2:	f3c0 2307 	ubfx	r3, r0, #8, #8
+ 8002ad6:	7125      	strb	r5, [r4, #4]
+ 8002ad8:	b2c0      	uxtb	r0, r0
+ 8002ada:	70a2      	strb	r2, [r4, #2]
+ 8002adc:	7063      	strb	r3, [r4, #1]
+ 8002ade:	7020      	strb	r0, [r4, #0]
+ 8002ae0:	bd38      	pop	{r3, r4, r5, pc}
+ 8002ae2:	0a19      	lsrs	r1, r3, #8
+ 8002ae4:	71c3      	strb	r3, [r0, #7]
+ 8002ae6:	7181      	strb	r1, [r0, #6]
+ 8002ae8:	0c19      	lsrs	r1, r3, #16
+ 8002aea:	0e1b      	lsrs	r3, r3, #24
+ 8002aec:	7141      	strb	r1, [r0, #5]
+ 8002aee:	7103      	strb	r3, [r0, #4]
+ 8002af0:	f8d2 3584 	ldr.w	r3, [r2, #1412]	; 0x584
+ 8002af4:	70c3      	strb	r3, [r0, #3]
+ 8002af6:	f8d2 0584 	ldr.w	r0, [r2, #1412]	; 0x584
+ 8002afa:	f3c0 2207 	ubfx	r2, r0, #8, #8
+ 8002afe:	f3c0 4307 	ubfx	r3, r0, #16, #8
+ 8002b02:	0e00      	lsrs	r0, r0, #24
+ 8002b04:	e7e9      	b.n	8002ada <GetUniqueId+0x3a>
+ 8002b06:	bf00      	nop
+ 8002b08:	1fff7000 	.word	0x1fff7000
+
+08002b0c <GetDevAddr>:
+ 8002b0c:	b538      	push	{r3, r4, r5, lr}
+ 8002b0e:	4b09      	ldr	r3, [pc, #36]	; (8002b34 <GetDevAddr+0x28>)
+ 8002b10:	f8d3 3580 	ldr.w	r3, [r3, #1408]	; 0x580
+ 8002b14:	6003      	str	r3, [r0, #0]
+ 8002b16:	3301      	adds	r3, #1
+ 8002b18:	4605      	mov	r5, r0
+ 8002b1a:	d109      	bne.n	8002b30 <GetDevAddr+0x24>
+ 8002b1c:	f004 fc84 	bl	8007428 <HAL_GetUIDw0>
+ 8002b20:	4604      	mov	r4, r0
+ 8002b22:	f004 fc87 	bl	8007434 <HAL_GetUIDw1>
+ 8002b26:	4044      	eors	r4, r0
+ 8002b28:	f004 fc8a 	bl	8007440 <HAL_GetUIDw2>
+ 8002b2c:	4044      	eors	r4, r0
+ 8002b2e:	602c      	str	r4, [r5, #0]
+ 8002b30:	bd38      	pop	{r3, r4, r5, pc}
+ 8002b32:	bf00      	nop
+ 8002b34:	1fff7000 	.word	0x1fff7000
+
+08002b38 <UTIL_ADV_TRACE_PreSendHook>:
+ 8002b38:	2101      	movs	r1, #1
+ 8002b3a:	2002      	movs	r0, #2
+ 8002b3c:	f010 bf04 	b.w	8013948 <UTIL_LPM_SetStopMode>
+
+08002b40 <UTIL_ADV_TRACE_PostSendHook>:
+ 8002b40:	2100      	movs	r1, #0
+ 8002b42:	2002      	movs	r0, #2
+ 8002b44:	f010 bf00 	b.w	8013948 <UTIL_LPM_SetStopMode>
+
+08002b48 <HAL_InitTick>:
+ 8002b48:	2000      	movs	r0, #0
+ 8002b4a:	4770      	bx	lr
+
+08002b4c <HAL_GetTick>:
+ 8002b4c:	4b02      	ldr	r3, [pc, #8]	; (8002b58 <HAL_GetTick+0xc>)
+ 8002b4e:	7818      	ldrb	r0, [r3, #0]
+ 8002b50:	b108      	cbz	r0, 8002b56 <HAL_GetTick+0xa>
+ 8002b52:	f000 b8c5 	b.w	8002ce0 <TIMER_IF_GetTimerValue>
+ 8002b56:	4770      	bx	lr
+ 8002b58:	20000ad8 	.word	0x20000ad8
+
+08002b5c <HAL_Delay>:
+ 8002b5c:	b082      	sub	sp, #8
+ 8002b5e:	9001      	str	r0, [sp, #4]
+ 8002b60:	9801      	ldr	r0, [sp, #4]
+ 8002b62:	b002      	add	sp, #8
+ 8002b64:	f000 b958 	b.w	8002e18 <TIMER_IF_DelayMs>
+
+08002b68 <LL_AHB2_GRP1_EnableClock.constprop.0>:
+ 8002b68:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8002b6c:	b082      	sub	sp, #8
+ 8002b6e:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 8002b70:	f042 0202 	orr.w	r2, r2, #2
+ 8002b74:	64da      	str	r2, [r3, #76]	; 0x4c
+ 8002b76:	6cdb      	ldr	r3, [r3, #76]	; 0x4c
+ 8002b78:	f003 0302 	and.w	r3, r3, #2
+ 8002b7c:	9301      	str	r3, [sp, #4]
+ 8002b7e:	9b01      	ldr	r3, [sp, #4]
+ 8002b80:	b002      	add	sp, #8
+ 8002b82:	4770      	bx	lr
+
+08002b84 <DBG_Init>:
+ 8002b84:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
+ 8002b88:	4a29      	ldr	r2, [pc, #164]	; (8002c30 <DBG_Init+0xac>)
+ 8002b8a:	4c2a      	ldr	r4, [pc, #168]	; (8002c34 <DBG_Init+0xb0>)
+ 8002b8c:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 8002b90:	f443 4380 	orr.w	r3, r3, #16384	; 0x4000
+ 8002b94:	b087      	sub	sp, #28
+ 8002b96:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+ 8002b9a:	f004 fc57 	bl	800744c <HAL_DBGMCU_EnableDBGSleepMode>
+ 8002b9e:	f004 fc5d 	bl	800745c <HAL_DBGMCU_EnableDBGStopMode>
+ 8002ba2:	f004 fc63 	bl	800746c <HAL_DBGMCU_EnableDBGStandbyMode>
+ 8002ba6:	2301      	movs	r3, #1
+ 8002ba8:	2500      	movs	r5, #0
+ 8002baa:	9302      	str	r3, [sp, #8]
+ 8002bac:	f44f 5980 	mov.w	r9, #4096	; 0x1000
+ 8002bb0:	2303      	movs	r3, #3
+ 8002bb2:	a901      	add	r1, sp, #4
+ 8002bb4:	4620      	mov	r0, r4
+ 8002bb6:	9304      	str	r3, [sp, #16]
+ 8002bb8:	f44f 5800 	mov.w	r8, #8192	; 0x2000
+ 8002bbc:	9503      	str	r5, [sp, #12]
+ 8002bbe:	9505      	str	r5, [sp, #20]
+ 8002bc0:	f7ff ffd2 	bl	8002b68 <LL_AHB2_GRP1_EnableClock.constprop.0>
+ 8002bc4:	f7ff ffd0 	bl	8002b68 <LL_AHB2_GRP1_EnableClock.constprop.0>
+ 8002bc8:	f7ff ffce 	bl	8002b68 <LL_AHB2_GRP1_EnableClock.constprop.0>
+ 8002bcc:	f7ff ffcc 	bl	8002b68 <LL_AHB2_GRP1_EnableClock.constprop.0>
+ 8002bd0:	f8cd 9004 	str.w	r9, [sp, #4]
+ 8002bd4:	f005 fbe6 	bl	80083a4 <HAL_GPIO_Init>
+ 8002bd8:	a901      	add	r1, sp, #4
+ 8002bda:	4620      	mov	r0, r4
+ 8002bdc:	f44f 6700 	mov.w	r7, #2048	; 0x800
+ 8002be0:	f8cd 8004 	str.w	r8, [sp, #4]
+ 8002be4:	f005 fbde 	bl	80083a4 <HAL_GPIO_Init>
+ 8002be8:	a901      	add	r1, sp, #4
+ 8002bea:	4620      	mov	r0, r4
+ 8002bec:	f44f 4600 	mov.w	r6, #32768	; 0x8000
+ 8002bf0:	9701      	str	r7, [sp, #4]
+ 8002bf2:	f005 fbd7 	bl	80083a4 <HAL_GPIO_Init>
+ 8002bf6:	a901      	add	r1, sp, #4
+ 8002bf8:	4620      	mov	r0, r4
+ 8002bfa:	9601      	str	r6, [sp, #4]
+ 8002bfc:	f005 fbd2 	bl	80083a4 <HAL_GPIO_Init>
+ 8002c00:	462a      	mov	r2, r5
+ 8002c02:	4649      	mov	r1, r9
+ 8002c04:	4620      	mov	r0, r4
+ 8002c06:	f005 fcf3 	bl	80085f0 <HAL_GPIO_WritePin>
+ 8002c0a:	462a      	mov	r2, r5
+ 8002c0c:	4641      	mov	r1, r8
+ 8002c0e:	4620      	mov	r0, r4
+ 8002c10:	f005 fcee 	bl	80085f0 <HAL_GPIO_WritePin>
+ 8002c14:	462a      	mov	r2, r5
+ 8002c16:	4639      	mov	r1, r7
+ 8002c18:	4620      	mov	r0, r4
+ 8002c1a:	f005 fce9 	bl	80085f0 <HAL_GPIO_WritePin>
+ 8002c1e:	462a      	mov	r2, r5
+ 8002c20:	4631      	mov	r1, r6
+ 8002c22:	4620      	mov	r0, r4
+ 8002c24:	f005 fce4 	bl	80085f0 <HAL_GPIO_WritePin>
+ 8002c28:	b007      	add	sp, #28
+ 8002c2a:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
+ 8002c2e:	bf00      	nop
+ 8002c30:	58000800 	.word	0x58000800
+ 8002c34:	48000400 	.word	0x48000400
+
+08002c38 <EnvSensors_Read>:
+ 8002c38:	b510      	push	{r4, lr}
+ 8002c3a:	4604      	mov	r4, r0
+ 8002c3c:	f7ff f98a 	bl	8001f54 <SYS_GetTemperatureLevel>
+ 8002c40:	4b07      	ldr	r3, [pc, #28]	; (8002c60 <EnvSensors_Read+0x28>)
+ 8002c42:	60a3      	str	r3, [r4, #8]
+ 8002c44:	f340 200f 	sbfx	r0, r0, #8, #16
+ 8002c48:	f7fe fee8 	bl	8001a1c <__aeabi_i2f>
+ 8002c4c:	4b05      	ldr	r3, [pc, #20]	; (8002c64 <EnvSensors_Read+0x2c>)
+ 8002c4e:	4a06      	ldr	r2, [pc, #24]	; (8002c68 <EnvSensors_Read+0x30>)
+ 8002c50:	6023      	str	r3, [r4, #0]
+ 8002c52:	4b06      	ldr	r3, [pc, #24]	; (8002c6c <EnvSensors_Read+0x34>)
+ 8002c54:	6060      	str	r0, [r4, #4]
+ 8002c56:	e9c4 2303 	strd	r2, r3, [r4, #12]
+ 8002c5a:	2000      	movs	r0, #0
+ 8002c5c:	bd10      	pop	{r4, pc}
+ 8002c5e:	bf00      	nop
+ 8002c60:	42480000 	.word	0x42480000
+ 8002c64:	447a0000 	.word	0x447a0000
+ 8002c68:	003e090d 	.word	0x003e090d
+ 8002c6c:	000503ab 	.word	0x000503ab
+
+08002c70 <EnvSensors_Init>:
+ 8002c70:	2000      	movs	r0, #0
+ 8002c72:	4770      	bx	lr
+
+08002c74 <TIMER_IF_GetTimerContext>:
+ 8002c74:	4b01      	ldr	r3, [pc, #4]	; (8002c7c <TIMER_IF_GetTimerContext+0x8>)
+ 8002c76:	6818      	ldr	r0, [r3, #0]
+ 8002c78:	4770      	bx	lr
+ 8002c7a:	bf00      	nop
+ 8002c7c:	20000adc 	.word	0x20000adc
+
+08002c80 <TIMER_IF_GetMinimumTimeout>:
+ 8002c80:	2003      	movs	r0, #3
+ 8002c82:	4770      	bx	lr
+
+08002c84 <TIMER_IF_Convert_ms2Tick>:
+ 8002c84:	b508      	push	{r3, lr}
+ 8002c86:	4601      	mov	r1, r0
+ 8002c88:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
+ 8002c8c:	2300      	movs	r3, #0
+ 8002c8e:	0280      	lsls	r0, r0, #10
+ 8002c90:	0d89      	lsrs	r1, r1, #22
+ 8002c92:	f7fe ff3d 	bl	8001b10 <__aeabi_uldivmod>
+ 8002c96:	bd08      	pop	{r3, pc}
+
+08002c98 <TIMER_IF_Convert_Tick2ms>:
+ 8002c98:	f44f 737a 	mov.w	r3, #1000	; 0x3e8
+ 8002c9c:	fba0 0303 	umull	r0, r3, r0, r3
+ 8002ca0:	0a80      	lsrs	r0, r0, #10
+ 8002ca2:	ea40 5083 	orr.w	r0, r0, r3, lsl #22
+ 8002ca6:	4770      	bx	lr
+
+08002ca8 <GetTimerTicks>:
+ 8002ca8:	4b03      	ldr	r3, [pc, #12]	; (8002cb8 <GetTimerTicks+0x10>)
+ 8002caa:	6898      	ldr	r0, [r3, #8]
+ 8002cac:	689a      	ldr	r2, [r3, #8]
+ 8002cae:	4290      	cmp	r0, r2
+ 8002cb0:	d1fb      	bne.n	8002caa <GetTimerTicks+0x2>
+ 8002cb2:	43c0      	mvns	r0, r0
+ 8002cb4:	4770      	bx	lr
+ 8002cb6:	bf00      	nop
+ 8002cb8:	40002800 	.word	0x40002800
+
+08002cbc <TIMER_IF_SetTimerContext>:
+ 8002cbc:	b508      	push	{r3, lr}
+ 8002cbe:	f7ff fff3 	bl	8002ca8 <GetTimerTicks>
+ 8002cc2:	4b01      	ldr	r3, [pc, #4]	; (8002cc8 <TIMER_IF_SetTimerContext+0xc>)
+ 8002cc4:	6018      	str	r0, [r3, #0]
+ 8002cc6:	bd08      	pop	{r3, pc}
+ 8002cc8:	20000adc 	.word	0x20000adc
+
+08002ccc <TIMER_IF_GetTimerElapsedTime>:
+ 8002ccc:	b508      	push	{r3, lr}
+ 8002cce:	f7ff ffeb 	bl	8002ca8 <GetTimerTicks>
+ 8002cd2:	4b02      	ldr	r3, [pc, #8]	; (8002cdc <TIMER_IF_GetTimerElapsedTime+0x10>)
+ 8002cd4:	681b      	ldr	r3, [r3, #0]
+ 8002cd6:	1ac0      	subs	r0, r0, r3
+ 8002cd8:	bd08      	pop	{r3, pc}
+ 8002cda:	bf00      	nop
+ 8002cdc:	20000adc 	.word	0x20000adc
+
+08002ce0 <TIMER_IF_GetTimerValue>:
+ 8002ce0:	4b02      	ldr	r3, [pc, #8]	; (8002cec <TIMER_IF_GetTimerValue+0xc>)
+ 8002ce2:	7818      	ldrb	r0, [r3, #0]
+ 8002ce4:	b108      	cbz	r0, 8002cea <TIMER_IF_GetTimerValue+0xa>
+ 8002ce6:	f7ff bfdf 	b.w	8002ca8 <GetTimerTicks>
+ 8002cea:	4770      	bx	lr
+ 8002cec:	20000ad9 	.word	0x20000ad9
+
+08002cf0 <TIMER_IF_StopTimer>:
+ 8002cf0:	b510      	push	{r4, lr}
+ 8002cf2:	4b07      	ldr	r3, [pc, #28]	; (8002d10 <TIMER_IF_StopTimer+0x20>)
+ 8002cf4:	4c07      	ldr	r4, [pc, #28]	; (8002d14 <TIMER_IF_StopTimer+0x24>)
+ 8002cf6:	2201      	movs	r2, #1
+ 8002cf8:	65da      	str	r2, [r3, #92]	; 0x5c
+ 8002cfa:	f44f 7180 	mov.w	r1, #256	; 0x100
+ 8002cfe:	4620      	mov	r0, r4
+ 8002d00:	f006 fdbc 	bl	800987c <HAL_RTC_DeactivateAlarm>
+ 8002d04:	f04f 33ff 	mov.w	r3, #4294967295
+ 8002d08:	6323      	str	r3, [r4, #48]	; 0x30
+ 8002d0a:	2000      	movs	r0, #0
+ 8002d0c:	bd10      	pop	{r4, pc}
+ 8002d0e:	bf00      	nop
+ 8002d10:	40002800 	.word	0x40002800
+ 8002d14:	20000a68 	.word	0x20000a68
+
+08002d18 <TIMER_IF_BkUp_Write_Seconds>:
+ 8002d18:	4602      	mov	r2, r0
+ 8002d1a:	2100      	movs	r1, #0
+ 8002d1c:	4801      	ldr	r0, [pc, #4]	; (8002d24 <TIMER_IF_BkUp_Write_Seconds+0xc>)
+ 8002d1e:	f006 bfc6 	b.w	8009cae <HAL_RTCEx_BKUPWrite>
+ 8002d22:	bf00      	nop
+ 8002d24:	20000a68 	.word	0x20000a68
+
+08002d28 <TIMER_IF_BkUp_Write_SubSeconds>:
+ 8002d28:	4602      	mov	r2, r0
+ 8002d2a:	2101      	movs	r1, #1
+ 8002d2c:	4801      	ldr	r0, [pc, #4]	; (8002d34 <TIMER_IF_BkUp_Write_SubSeconds+0xc>)
+ 8002d2e:	f006 bfbe 	b.w	8009cae <HAL_RTCEx_BKUPWrite>
+ 8002d32:	bf00      	nop
+ 8002d34:	20000a68 	.word	0x20000a68
+
+08002d38 <TIMER_IF_StartTimer>:
+ 8002d38:	b510      	push	{r4, lr}
+ 8002d3a:	b08c      	sub	sp, #48	; 0x30
+ 8002d3c:	222c      	movs	r2, #44	; 0x2c
+ 8002d3e:	2100      	movs	r1, #0
+ 8002d40:	4604      	mov	r4, r0
+ 8002d42:	a801      	add	r0, sp, #4
+ 8002d44:	f011 fa84 	bl	8014250 <memset>
+ 8002d48:	f7ff ffd2 	bl	8002cf0 <TIMER_IF_StopTimer>
+ 8002d4c:	4b0c      	ldr	r3, [pc, #48]	; (8002d80 <TIMER_IF_StartTimer+0x48>)
+ 8002d4e:	480d      	ldr	r0, [pc, #52]	; (8002d84 <TIMER_IF_StartTimer+0x4c>)
+ 8002d50:	681b      	ldr	r3, [r3, #0]
+ 8002d52:	441c      	add	r4, r3
+ 8002d54:	2300      	movs	r3, #0
+ 8002d56:	9308      	str	r3, [sp, #32]
+ 8002d58:	9306      	str	r3, [sp, #24]
+ 8002d5a:	f04f 5300 	mov.w	r3, #536870912	; 0x20000000
+ 8002d5e:	43e4      	mvns	r4, r4
+ 8002d60:	9307      	str	r3, [sp, #28]
+ 8002d62:	2201      	movs	r2, #1
+ 8002d64:	f44f 7380 	mov.w	r3, #256	; 0x100
+ 8002d68:	a901      	add	r1, sp, #4
+ 8002d6a:	9402      	str	r4, [sp, #8]
+ 8002d6c:	930b      	str	r3, [sp, #44]	; 0x2c
+ 8002d6e:	f006 fe9b 	bl	8009aa8 <HAL_RTC_SetAlarm_IT>
+ 8002d72:	b108      	cbz	r0, 8002d78 <TIMER_IF_StartTimer+0x40>
+ 8002d74:	f7ff fc96 	bl	80026a4 <Error_Handler>
+ 8002d78:	2000      	movs	r0, #0
+ 8002d7a:	b00c      	add	sp, #48	; 0x30
+ 8002d7c:	bd10      	pop	{r4, pc}
+ 8002d7e:	bf00      	nop
+ 8002d80:	20000adc 	.word	0x20000adc
+ 8002d84:	20000a68 	.word	0x20000a68
+
+08002d88 <TIMER_IF_GetTime>:
+ 8002d88:	b538      	push	{r3, r4, r5, lr}
+ 8002d8a:	4605      	mov	r5, r0
+ 8002d8c:	f7ff ff8c 	bl	8002ca8 <GetTimerTicks>
+ 8002d90:	2102      	movs	r1, #2
+ 8002d92:	4604      	mov	r4, r0
+ 8002d94:	4807      	ldr	r0, [pc, #28]	; (8002db4 <TIMER_IF_GetTime+0x2c>)
+ 8002d96:	f006 ff91 	bl	8009cbc <HAL_RTCEx_BKUPRead>
+ 8002d9a:	f3c4 0209 	ubfx	r2, r4, #0, #10
+ 8002d9e:	f44f 717a 	mov.w	r1, #1000	; 0x3e8
+ 8002da2:	fba2 2101 	umull	r2, r1, r2, r1
+ 8002da6:	0a92      	lsrs	r2, r2, #10
+ 8002da8:	0aa3      	lsrs	r3, r4, #10
+ 8002daa:	802a      	strh	r2, [r5, #0]
+ 8002dac:	ea43 5080 	orr.w	r0, r3, r0, lsl #22
+ 8002db0:	bd38      	pop	{r3, r4, r5, pc}
+ 8002db2:	bf00      	nop
+ 8002db4:	20000a68 	.word	0x20000a68
+
+08002db8 <TIMER_IF_BkUp_Read_Seconds>:
+ 8002db8:	4801      	ldr	r0, [pc, #4]	; (8002dc0 <TIMER_IF_BkUp_Read_Seconds+0x8>)
+ 8002dba:	2100      	movs	r1, #0
+ 8002dbc:	f006 bf7e 	b.w	8009cbc <HAL_RTCEx_BKUPRead>
+ 8002dc0:	20000a68 	.word	0x20000a68
+
+08002dc4 <TIMER_IF_BkUp_Read_SubSeconds>:
+ 8002dc4:	4801      	ldr	r0, [pc, #4]	; (8002dcc <TIMER_IF_BkUp_Read_SubSeconds+0x8>)
+ 8002dc6:	2101      	movs	r1, #1
+ 8002dc8:	f006 bf78 	b.w	8009cbc <HAL_RTCEx_BKUPRead>
+ 8002dcc:	20000a68 	.word	0x20000a68
+
+08002dd0 <TIMER_IF_Init>:
+ 8002dd0:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 8002dd2:	4d0f      	ldr	r5, [pc, #60]	; (8002e10 <TIMER_IF_Init+0x40>)
+ 8002dd4:	782e      	ldrb	r6, [r5, #0]
+ 8002dd6:	b9ce      	cbnz	r6, 8002e0c <TIMER_IF_Init+0x3c>
+ 8002dd8:	4c0e      	ldr	r4, [pc, #56]	; (8002e14 <TIMER_IF_Init+0x44>)
+ 8002dda:	f04f 37ff 	mov.w	r7, #4294967295
+ 8002dde:	6327      	str	r7, [r4, #48]	; 0x30
+ 8002de0:	f7ff fc62 	bl	80026a8 <MX_RTC_Init>
+ 8002de4:	f7ff ff84 	bl	8002cf0 <TIMER_IF_StopTimer>
+ 8002de8:	f44f 7180 	mov.w	r1, #256	; 0x100
+ 8002dec:	4620      	mov	r0, r4
+ 8002dee:	f006 fd45 	bl	800987c <HAL_RTC_DeactivateAlarm>
+ 8002df2:	4620      	mov	r0, r4
+ 8002df4:	6327      	str	r7, [r4, #48]	; 0x30
+ 8002df6:	f006 ff05 	bl	8009c04 <HAL_RTCEx_EnableBypassShadow>
+ 8002dfa:	4632      	mov	r2, r6
+ 8002dfc:	4620      	mov	r0, r4
+ 8002dfe:	2102      	movs	r1, #2
+ 8002e00:	f006 ff55 	bl	8009cae <HAL_RTCEx_BKUPWrite>
+ 8002e04:	f7ff ff5a 	bl	8002cbc <TIMER_IF_SetTimerContext>
+ 8002e08:	2301      	movs	r3, #1
+ 8002e0a:	702b      	strb	r3, [r5, #0]
+ 8002e0c:	2000      	movs	r0, #0
+ 8002e0e:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 8002e10:	20000ad9 	.word	0x20000ad9
+ 8002e14:	20000a68 	.word	0x20000a68
+
+08002e18 <TIMER_IF_DelayMs>:
+ 8002e18:	4601      	mov	r1, r0
+ 8002e1a:	b510      	push	{r4, lr}
+ 8002e1c:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
+ 8002e20:	2300      	movs	r3, #0
+ 8002e22:	0280      	lsls	r0, r0, #10
+ 8002e24:	0d89      	lsrs	r1, r1, #22
+ 8002e26:	f7fe fe73 	bl	8001b10 <__aeabi_uldivmod>
+ 8002e2a:	4601      	mov	r1, r0
+ 8002e2c:	f7ff ff3c 	bl	8002ca8 <GetTimerTicks>
+ 8002e30:	4604      	mov	r4, r0
+ 8002e32:	f7ff ff39 	bl	8002ca8 <GetTimerTicks>
+ 8002e36:	1b03      	subs	r3, r0, r4
+ 8002e38:	428b      	cmp	r3, r1
+ 8002e3a:	d300      	bcc.n	8002e3e <TIMER_IF_DelayMs+0x26>
+ 8002e3c:	bd10      	pop	{r4, pc}
+ 8002e3e:	bf00      	nop
+ 8002e40:	e7f7      	b.n	8002e32 <TIMER_IF_DelayMs+0x1a>
+
+08002e42 <HAL_RTC_AlarmAEventCallback>:
+ 8002e42:	f011 b893 	b.w	8013f6c <UTIL_TIMER_IRQ_Handler>
+	...
+
+08002e48 <HAL_RTCEx_SSRUEventCallback>:
+ 8002e48:	b510      	push	{r4, lr}
+ 8002e4a:	4c06      	ldr	r4, [pc, #24]	; (8002e64 <HAL_RTCEx_SSRUEventCallback+0x1c>)
+ 8002e4c:	2102      	movs	r1, #2
+ 8002e4e:	4620      	mov	r0, r4
+ 8002e50:	f006 ff34 	bl	8009cbc <HAL_RTCEx_BKUPRead>
+ 8002e54:	2102      	movs	r1, #2
+ 8002e56:	1c42      	adds	r2, r0, #1
+ 8002e58:	4620      	mov	r0, r4
+ 8002e5a:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8002e5e:	f006 bf26 	b.w	8009cae <HAL_RTCEx_BKUPWrite>
+ 8002e62:	bf00      	nop
+ 8002e64:	20000a68 	.word	0x20000a68
+
+08002e68 <MX_USART2_UART_Init>:
+ 8002e68:	4816      	ldr	r0, [pc, #88]	; (8002ec4 <MX_USART2_UART_Init+0x5c>)
+ 8002e6a:	4a17      	ldr	r2, [pc, #92]	; (8002ec8 <MX_USART2_UART_Init+0x60>)
+ 8002e6c:	b508      	push	{r3, lr}
+ 8002e6e:	f44f 33e1 	mov.w	r3, #115200	; 0x1c200
+ 8002e72:	e9c0 2300 	strd	r2, r3, [r0]
+ 8002e76:	2300      	movs	r3, #0
+ 8002e78:	220c      	movs	r2, #12
+ 8002e7a:	e9c0 3302 	strd	r3, r3, [r0, #8]
+ 8002e7e:	e9c0 2305 	strd	r2, r3, [r0, #20]
+ 8002e82:	e9c0 3307 	strd	r3, r3, [r0, #28]
+ 8002e86:	e9c0 3309 	strd	r3, r3, [r0, #36]	; 0x24
+ 8002e8a:	6103      	str	r3, [r0, #16]
+ 8002e8c:	f008 f8a3 	bl	800afd6 <HAL_UART_Init>
+ 8002e90:	b108      	cbz	r0, 8002e96 <MX_USART2_UART_Init+0x2e>
+ 8002e92:	f7ff fc07 	bl	80026a4 <Error_Handler>
+ 8002e96:	480b      	ldr	r0, [pc, #44]	; (8002ec4 <MX_USART2_UART_Init+0x5c>)
+ 8002e98:	2100      	movs	r1, #0
+ 8002e9a:	f008 fa18 	bl	800b2ce <HAL_UARTEx_SetTxFifoThreshold>
+ 8002e9e:	b108      	cbz	r0, 8002ea4 <MX_USART2_UART_Init+0x3c>
+ 8002ea0:	f7ff fc00 	bl	80026a4 <Error_Handler>
+ 8002ea4:	4807      	ldr	r0, [pc, #28]	; (8002ec4 <MX_USART2_UART_Init+0x5c>)
+ 8002ea6:	2100      	movs	r1, #0
+ 8002ea8:	f008 fa31 	bl	800b30e <HAL_UARTEx_SetRxFifoThreshold>
+ 8002eac:	b108      	cbz	r0, 8002eb2 <MX_USART2_UART_Init+0x4a>
+ 8002eae:	f7ff fbf9 	bl	80026a4 <Error_Handler>
+ 8002eb2:	4804      	ldr	r0, [pc, #16]	; (8002ec4 <MX_USART2_UART_Init+0x5c>)
+ 8002eb4:	f008 f9eb 	bl	800b28e <HAL_UARTEx_EnableFifoMode>
+ 8002eb8:	b118      	cbz	r0, 8002ec2 <MX_USART2_UART_Init+0x5a>
+ 8002eba:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 8002ebe:	f7ff bbf1 	b.w	80026a4 <Error_Handler>
+ 8002ec2:	bd08      	pop	{r3, pc}
+ 8002ec4:	20000ba0 	.word	0x20000ba0
+ 8002ec8:	40004400 	.word	0x40004400
+
+08002ecc <HAL_UART_MspInit>:
+ 8002ecc:	b570      	push	{r4, r5, r6, lr}
+ 8002ece:	b096      	sub	sp, #88	; 0x58
+ 8002ed0:	4605      	mov	r5, r0
+ 8002ed2:	2214      	movs	r2, #20
+ 8002ed4:	2100      	movs	r1, #0
+ 8002ed6:	a803      	add	r0, sp, #12
+ 8002ed8:	f011 f9ba 	bl	8014250 <memset>
+ 8002edc:	2238      	movs	r2, #56	; 0x38
+ 8002ede:	2100      	movs	r1, #0
+ 8002ee0:	a808      	add	r0, sp, #32
+ 8002ee2:	f011 f9b5 	bl	8014250 <memset>
+ 8002ee6:	682a      	ldr	r2, [r5, #0]
+ 8002ee8:	4b33      	ldr	r3, [pc, #204]	; (8002fb8 <HAL_UART_MspInit+0xec>)
+ 8002eea:	429a      	cmp	r2, r3
+ 8002eec:	d161      	bne.n	8002fb2 <HAL_UART_MspInit+0xe6>
+ 8002eee:	2302      	movs	r3, #2
+ 8002ef0:	9308      	str	r3, [sp, #32]
+ 8002ef2:	a808      	add	r0, sp, #32
+ 8002ef4:	4b31      	ldr	r3, [pc, #196]	; (8002fbc <HAL_UART_MspInit+0xf0>)
+ 8002ef6:	930a      	str	r3, [sp, #40]	; 0x28
+ 8002ef8:	f006 fbf0 	bl	80096dc <HAL_RCCEx_PeriphCLKConfig>
+ 8002efc:	b108      	cbz	r0, 8002f02 <HAL_UART_MspInit+0x36>
+ 8002efe:	f7ff fbd1 	bl	80026a4 <Error_Handler>
+ 8002f02:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8002f06:	210c      	movs	r1, #12
+ 8002f08:	6d9a      	ldr	r2, [r3, #88]	; 0x58
+ 8002f0a:	4c2d      	ldr	r4, [pc, #180]	; (8002fc0 <HAL_UART_MspInit+0xf4>)
+ 8002f0c:	f442 3200 	orr.w	r2, r2, #131072	; 0x20000
+ 8002f10:	659a      	str	r2, [r3, #88]	; 0x58
+ 8002f12:	6d9a      	ldr	r2, [r3, #88]	; 0x58
+ 8002f14:	f402 3200 	and.w	r2, r2, #131072	; 0x20000
+ 8002f18:	9202      	str	r2, [sp, #8]
+ 8002f1a:	9a02      	ldr	r2, [sp, #8]
+ 8002f1c:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 8002f1e:	f042 0201 	orr.w	r2, r2, #1
+ 8002f22:	64da      	str	r2, [r3, #76]	; 0x4c
+ 8002f24:	6cdb      	ldr	r3, [r3, #76]	; 0x4c
+ 8002f26:	f003 0301 	and.w	r3, r3, #1
+ 8002f2a:	9301      	str	r3, [sp, #4]
+ 8002f2c:	9b01      	ldr	r3, [sp, #4]
+ 8002f2e:	2302      	movs	r3, #2
+ 8002f30:	2600      	movs	r6, #0
+ 8002f32:	e9cd 1303 	strd	r1, r3, [sp, #12]
+ 8002f36:	2303      	movs	r3, #3
+ 8002f38:	e9cd 6305 	strd	r6, r3, [sp, #20]
+ 8002f3c:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8002f40:	2307      	movs	r3, #7
+ 8002f42:	a903      	add	r1, sp, #12
+ 8002f44:	9307      	str	r3, [sp, #28]
+ 8002f46:	f005 fa2d 	bl	80083a4 <HAL_GPIO_Init>
+ 8002f4a:	481e      	ldr	r0, [pc, #120]	; (8002fc4 <HAL_UART_MspInit+0xf8>)
+ 8002f4c:	6226      	str	r6, [r4, #32]
+ 8002f4e:	2314      	movs	r3, #20
+ 8002f50:	e9c4 0300 	strd	r0, r3, [r4]
+ 8002f54:	2310      	movs	r3, #16
+ 8002f56:	e9c4 3602 	strd	r3, r6, [r4, #8]
+ 8002f5a:	4620      	mov	r0, r4
+ 8002f5c:	2380      	movs	r3, #128	; 0x80
+ 8002f5e:	e9c4 3604 	strd	r3, r6, [r4, #16]
+ 8002f62:	e9c4 6606 	strd	r6, r6, [r4, #24]
+ 8002f66:	f004 ff55 	bl	8007e14 <HAL_DMA_Init>
+ 8002f6a:	b108      	cbz	r0, 8002f70 <HAL_UART_MspInit+0xa4>
+ 8002f6c:	f7ff fb9a 	bl	80026a4 <Error_Handler>
+ 8002f70:	4a15      	ldr	r2, [pc, #84]	; (8002fc8 <HAL_UART_MspInit+0xfc>)
+ 8002f72:	67ec      	str	r4, [r5, #124]	; 0x7c
+ 8002f74:	62a5      	str	r5, [r4, #40]	; 0x28
+ 8002f76:	4c15      	ldr	r4, [pc, #84]	; (8002fcc <HAL_UART_MspInit+0x100>)
+ 8002f78:	2313      	movs	r3, #19
+ 8002f7a:	e9c4 2300 	strd	r2, r3, [r4]
+ 8002f7e:	4620      	mov	r0, r4
+ 8002f80:	2300      	movs	r3, #0
+ 8002f82:	2280      	movs	r2, #128	; 0x80
+ 8002f84:	e9c4 3302 	strd	r3, r3, [r4, #8]
+ 8002f88:	e9c4 2304 	strd	r2, r3, [r4, #16]
+ 8002f8c:	e9c4 3306 	strd	r3, r3, [r4, #24]
+ 8002f90:	6223      	str	r3, [r4, #32]
+ 8002f92:	f004 ff3f 	bl	8007e14 <HAL_DMA_Init>
+ 8002f96:	b108      	cbz	r0, 8002f9c <HAL_UART_MspInit+0xd0>
+ 8002f98:	f7ff fb84 	bl	80026a4 <Error_Handler>
+ 8002f9c:	2025      	movs	r0, #37	; 0x25
+ 8002f9e:	f8c5 4080 	str.w	r4, [r5, #128]	; 0x80
+ 8002fa2:	2200      	movs	r2, #0
+ 8002fa4:	2102      	movs	r1, #2
+ 8002fa6:	62a5      	str	r5, [r4, #40]	; 0x28
+ 8002fa8:	f004 fea2 	bl	8007cf0 <HAL_NVIC_SetPriority>
+ 8002fac:	2025      	movs	r0, #37	; 0x25
+ 8002fae:	f004 fed1 	bl	8007d54 <HAL_NVIC_EnableIRQ>
+ 8002fb2:	b016      	add	sp, #88	; 0x58
+ 8002fb4:	bd70      	pop	{r4, r5, r6, pc}
+ 8002fb6:	bf00      	nop
+ 8002fb8:	40004400 	.word	0x40004400
+ 8002fbc:	000c0004 	.word	0x000c0004
+ 8002fc0:	20000b40 	.word	0x20000b40
+ 8002fc4:	40020080 	.word	0x40020080
+ 8002fc8:	4002006c 	.word	0x4002006c
+ 8002fcc:	20000ae0 	.word	0x20000ae0
+
+08002fd0 <HAL_UART_MspDeInit>:
+ 8002fd0:	6802      	ldr	r2, [r0, #0]
+ 8002fd2:	4b0e      	ldr	r3, [pc, #56]	; (800300c <HAL_UART_MspDeInit+0x3c>)
+ 8002fd4:	429a      	cmp	r2, r3
+ 8002fd6:	b510      	push	{r4, lr}
+ 8002fd8:	4604      	mov	r4, r0
+ 8002fda:	d116      	bne.n	800300a <HAL_UART_MspDeInit+0x3a>
+ 8002fdc:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 8002fe0:	210c      	movs	r1, #12
+ 8002fe2:	6d93      	ldr	r3, [r2, #88]	; 0x58
+ 8002fe4:	f423 3300 	bic.w	r3, r3, #131072	; 0x20000
+ 8002fe8:	6593      	str	r3, [r2, #88]	; 0x58
+ 8002fea:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8002fee:	f005 fa85 	bl	80084fc <HAL_GPIO_DeInit>
+ 8002ff2:	6fe0      	ldr	r0, [r4, #124]	; 0x7c
+ 8002ff4:	f004 ff82 	bl	8007efc <HAL_DMA_DeInit>
+ 8002ff8:	f8d4 0080 	ldr.w	r0, [r4, #128]	; 0x80
+ 8002ffc:	f004 ff7e 	bl	8007efc <HAL_DMA_DeInit>
+ 8003000:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8003004:	2025      	movs	r0, #37	; 0x25
+ 8003006:	f004 beb3 	b.w	8007d70 <HAL_NVIC_DisableIRQ>
+ 800300a:	bd10      	pop	{r4, pc}
+ 800300c:	40004400 	.word	0x40004400
+
+08003010 <vcom_Trace_DMA>:
+ 8003010:	b508      	push	{r3, lr}
+ 8003012:	460a      	mov	r2, r1
+ 8003014:	4601      	mov	r1, r0
+ 8003016:	4802      	ldr	r0, [pc, #8]	; (8003020 <vcom_Trace_DMA+0x10>)
+ 8003018:	f007 f960 	bl	800a2dc <HAL_UART_Transmit_DMA>
+ 800301c:	2000      	movs	r0, #0
+ 800301e:	bd08      	pop	{r3, pc}
+ 8003020:	20000ba0 	.word	0x20000ba0
+
+08003024 <vcom_ReceiveInit>:
+ 8003024:	b513      	push	{r0, r1, r4, lr}
+ 8003026:	4b11      	ldr	r3, [pc, #68]	; (800306c <vcom_ReceiveInit+0x48>)
+ 8003028:	4c11      	ldr	r4, [pc, #68]	; (8003070 <vcom_ReceiveInit+0x4c>)
+ 800302a:	6018      	str	r0, [r3, #0]
+ 800302c:	f44f 1300 	mov.w	r3, #2097152	; 0x200000
+ 8003030:	9300      	str	r3, [sp, #0]
+ 8003032:	ab02      	add	r3, sp, #8
+ 8003034:	e913 0006 	ldmdb	r3, {r1, r2}
+ 8003038:	4620      	mov	r0, r4
+ 800303a:	f008 f8cc 	bl	800b1d6 <HAL_UARTEx_StopModeWakeUpSourceConfig>
+ 800303e:	6823      	ldr	r3, [r4, #0]
+ 8003040:	69da      	ldr	r2, [r3, #28]
+ 8003042:	03d1      	lsls	r1, r2, #15
+ 8003044:	d4fc      	bmi.n	8003040 <vcom_ReceiveInit+0x1c>
+ 8003046:	69da      	ldr	r2, [r3, #28]
+ 8003048:	0252      	lsls	r2, r2, #9
+ 800304a:	d5fc      	bpl.n	8003046 <vcom_ReceiveInit+0x22>
+ 800304c:	689a      	ldr	r2, [r3, #8]
+ 800304e:	4808      	ldr	r0, [pc, #32]	; (8003070 <vcom_ReceiveInit+0x4c>)
+ 8003050:	f442 0280 	orr.w	r2, r2, #4194304	; 0x400000
+ 8003054:	609a      	str	r2, [r3, #8]
+ 8003056:	f008 f904 	bl	800b262 <HAL_UARTEx_EnableStopMode>
+ 800305a:	4906      	ldr	r1, [pc, #24]	; (8003074 <vcom_ReceiveInit+0x50>)
+ 800305c:	4804      	ldr	r0, [pc, #16]	; (8003070 <vcom_ReceiveInit+0x4c>)
+ 800305e:	2201      	movs	r2, #1
+ 8003060:	f008 f872 	bl	800b148 <HAL_UART_Receive_IT>
+ 8003064:	2000      	movs	r0, #0
+ 8003066:	b002      	add	sp, #8
+ 8003068:	bd10      	pop	{r4, pc}
+ 800306a:	bf00      	nop
+ 800306c:	20000c34 	.word	0x20000c34
+ 8003070:	20000ba0 	.word	0x20000ba0
+ 8003074:	20000c3c 	.word	0x20000c3c
+
+08003078 <vcom_Init>:
+ 8003078:	b508      	push	{r3, lr}
+ 800307a:	4b07      	ldr	r3, [pc, #28]	; (8003098 <vcom_Init+0x20>)
+ 800307c:	6018      	str	r0, [r3, #0]
+ 800307e:	f7fe ffc6 	bl	800200e <MX_DMA_Init>
+ 8003082:	f7ff fef1 	bl	8002e68 <MX_USART2_UART_Init>
+ 8003086:	4a05      	ldr	r2, [pc, #20]	; (800309c <vcom_Init+0x24>)
+ 8003088:	f8d2 3080 	ldr.w	r3, [r2, #128]	; 0x80
+ 800308c:	f043 6300 	orr.w	r3, r3, #134217728	; 0x8000000
+ 8003090:	f8c2 3080 	str.w	r3, [r2, #128]	; 0x80
+ 8003094:	2000      	movs	r0, #0
+ 8003096:	bd08      	pop	{r3, pc}
+ 8003098:	20000c38 	.word	0x20000c38
+ 800309c:	58000800 	.word	0x58000800
+
+080030a0 <vcom_DeInit>:
+ 80030a0:	b508      	push	{r3, lr}
+ 80030a2:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 80030a6:	4808      	ldr	r0, [pc, #32]	; (80030c8 <vcom_DeInit+0x28>)
+ 80030a8:	6b9a      	ldr	r2, [r3, #56]	; 0x38
+ 80030aa:	f442 3200 	orr.w	r2, r2, #131072	; 0x20000
+ 80030ae:	639a      	str	r2, [r3, #56]	; 0x38
+ 80030b0:	6b9a      	ldr	r2, [r3, #56]	; 0x38
+ 80030b2:	f422 3200 	bic.w	r2, r2, #131072	; 0x20000
+ 80030b6:	639a      	str	r2, [r3, #56]	; 0x38
+ 80030b8:	f7ff ff8a 	bl	8002fd0 <HAL_UART_MspDeInit>
+ 80030bc:	200f      	movs	r0, #15
+ 80030be:	f004 fe57 	bl	8007d70 <HAL_NVIC_DisableIRQ>
+ 80030c2:	2000      	movs	r0, #0
+ 80030c4:	bd08      	pop	{r3, pc}
+ 80030c6:	bf00      	nop
+ 80030c8:	20000ba0 	.word	0x20000ba0
+
+080030cc <vcom_Resume>:
+ 80030cc:	b508      	push	{r3, lr}
+ 80030ce:	4807      	ldr	r0, [pc, #28]	; (80030ec <vcom_Resume+0x20>)
+ 80030d0:	f007 ff81 	bl	800afd6 <HAL_UART_Init>
+ 80030d4:	b108      	cbz	r0, 80030da <vcom_Resume+0xe>
+ 80030d6:	f7ff fae5 	bl	80026a4 <Error_Handler>
+ 80030da:	4805      	ldr	r0, [pc, #20]	; (80030f0 <vcom_Resume+0x24>)
+ 80030dc:	f004 fe9a 	bl	8007e14 <HAL_DMA_Init>
+ 80030e0:	b118      	cbz	r0, 80030ea <vcom_Resume+0x1e>
+ 80030e2:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 80030e6:	f7ff badd 	b.w	80026a4 <Error_Handler>
+ 80030ea:	bd08      	pop	{r3, pc}
+ 80030ec:	20000ba0 	.word	0x20000ba0
+ 80030f0:	20000b40 	.word	0x20000b40
+
+080030f4 <HAL_UART_TxCpltCallback>:
+ 80030f4:	6802      	ldr	r2, [r0, #0]
+ 80030f6:	4b04      	ldr	r3, [pc, #16]	; (8003108 <HAL_UART_TxCpltCallback+0x14>)
+ 80030f8:	429a      	cmp	r2, r3
+ 80030fa:	d103      	bne.n	8003104 <HAL_UART_TxCpltCallback+0x10>
+ 80030fc:	4b03      	ldr	r3, [pc, #12]	; (800310c <HAL_UART_TxCpltCallback+0x18>)
+ 80030fe:	2000      	movs	r0, #0
+ 8003100:	681b      	ldr	r3, [r3, #0]
+ 8003102:	4718      	bx	r3
+ 8003104:	4770      	bx	lr
+ 8003106:	bf00      	nop
+ 8003108:	40004400 	.word	0x40004400
+ 800310c:	20000c38 	.word	0x20000c38
+
+08003110 <HAL_UART_RxCpltCallback>:
+ 8003110:	6802      	ldr	r2, [r0, #0]
+ 8003112:	4b0b      	ldr	r3, [pc, #44]	; (8003140 <HAL_UART_RxCpltCallback+0x30>)
+ 8003114:	429a      	cmp	r2, r3
+ 8003116:	b510      	push	{r4, lr}
+ 8003118:	4604      	mov	r4, r0
+ 800311a:	d10f      	bne.n	800313c <HAL_UART_RxCpltCallback+0x2c>
+ 800311c:	4b09      	ldr	r3, [pc, #36]	; (8003144 <HAL_UART_RxCpltCallback+0x34>)
+ 800311e:	681b      	ldr	r3, [r3, #0]
+ 8003120:	b12b      	cbz	r3, 800312e <HAL_UART_RxCpltCallback+0x1e>
+ 8003122:	f8d0 2090 	ldr.w	r2, [r0, #144]	; 0x90
+ 8003126:	b912      	cbnz	r2, 800312e <HAL_UART_RxCpltCallback+0x1e>
+ 8003128:	4807      	ldr	r0, [pc, #28]	; (8003148 <HAL_UART_RxCpltCallback+0x38>)
+ 800312a:	2101      	movs	r1, #1
+ 800312c:	4798      	blx	r3
+ 800312e:	4620      	mov	r0, r4
+ 8003130:	4905      	ldr	r1, [pc, #20]	; (8003148 <HAL_UART_RxCpltCallback+0x38>)
+ 8003132:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8003136:	2201      	movs	r2, #1
+ 8003138:	f008 b806 	b.w	800b148 <HAL_UART_Receive_IT>
+ 800313c:	bd10      	pop	{r4, pc}
+ 800313e:	bf00      	nop
+ 8003140:	40004400 	.word	0x40004400
+ 8003144:	20000c34 	.word	0x20000c34
+ 8003148:	20000c3c 	.word	0x20000c3c
+
+0800314c <STS_SENSOR_Power_ON.part.0>:
+ 800314c:	4802      	ldr	r0, [pc, #8]	; (8003158 <STS_SENSOR_Power_ON.part.0+0xc>)
+ 800314e:	2201      	movs	r2, #1
+ 8003150:	2110      	movs	r1, #16
+ 8003152:	f005 ba4d 	b.w	80085f0 <HAL_GPIO_WritePin>
+ 8003156:	bf00      	nop
+ 8003158:	48000400 	.word	0x48000400
+
+0800315c <STS_SENSOR_Power_OFF.part.0>:
+ 800315c:	4802      	ldr	r0, [pc, #8]	; (8003168 <STS_SENSOR_Power_OFF.part.0+0xc>)
+ 800315e:	2200      	movs	r2, #0
+ 8003160:	2110      	movs	r1, #16
+ 8003162:	f005 ba45 	b.w	80085f0 <HAL_GPIO_WritePin>
+ 8003166:	bf00      	nop
+ 8003168:	48000400 	.word	0x48000400
+
+0800316c <STS_YunhornAuthenticationCode_Process>:
+ 800316c:	b513      	push	{r0, r1, r4, lr}
+ 800316e:	4c12      	ldr	r4, [pc, #72]	; (80031b8 <STS_YunhornAuthenticationCode_Process+0x4c>)
+ 8003170:	7823      	ldrb	r3, [r4, #0]
+ 8003172:	f003 02ff 	and.w	r2, r3, #255	; 0xff
+ 8003176:	b93b      	cbnz	r3, 8003188 <STS_YunhornAuthenticationCode_Process+0x1c>
+ 8003178:	4b10      	ldr	r3, [pc, #64]	; (80031bc <STS_YunhornAuthenticationCode_Process+0x50>)
+ 800317a:	4611      	mov	r1, r2
+ 800317c:	2002      	movs	r0, #2
+ 800317e:	b002      	add	sp, #8
+ 8003180:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8003184:	f010 bb24 	b.w	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8003188:	f7ff fba6 	bl	80028d8 <sts_hmac_verify>
+ 800318c:	3800      	subs	r0, #0
+ 800318e:	4b0c      	ldr	r3, [pc, #48]	; (80031c0 <STS_YunhornAuthenticationCode_Process+0x54>)
+ 8003190:	bf18      	it	ne
+ 8003192:	2001      	movne	r0, #1
+ 8003194:	0040      	lsls	r0, r0, #1
+ 8003196:	7018      	strb	r0, [r3, #0]
+ 8003198:	781a      	ldrb	r2, [r3, #0]
+ 800319a:	2a02      	cmp	r2, #2
+ 800319c:	bf04      	itt	eq
+ 800319e:	2200      	moveq	r2, #0
+ 80031a0:	7022      	strbeq	r2, [r4, #0]
+ 80031a2:	781b      	ldrb	r3, [r3, #0]
+ 80031a4:	9300      	str	r3, [sp, #0]
+ 80031a6:	2200      	movs	r2, #0
+ 80031a8:	4b06      	ldr	r3, [pc, #24]	; (80031c4 <STS_YunhornAuthenticationCode_Process+0x58>)
+ 80031aa:	4611      	mov	r1, r2
+ 80031ac:	2003      	movs	r0, #3
+ 80031ae:	f010 fb0f 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 80031b2:	b002      	add	sp, #8
+ 80031b4:	bd10      	pop	{r4, pc}
+ 80031b6:	bf00      	nop
+ 80031b8:	20000e4e 	.word	0x20000e4e
+ 80031bc:	0801451c 	.word	0x0801451c
+ 80031c0:	20000c44 	.word	0x20000c44
+ 80031c4:	08014538 	.word	0x08014538
+
+080031c8 <STS_YunhornSTSEventRFAC_Process>:
+ 80031c8:	b538      	push	{r3, r4, r5, lr}
+ 80031ca:	4d16      	ldr	r5, [pc, #88]	; (8003224 <STS_YunhornSTSEventRFAC_Process+0x5c>)
+ 80031cc:	782b      	ldrb	r3, [r5, #0]
+ 80031ce:	f003 02ff 	and.w	r2, r3, #255	; 0xff
+ 80031d2:	bb33      	cbnz	r3, 8003222 <STS_YunhornSTSEventRFAC_Process+0x5a>
+ 80031d4:	4c14      	ldr	r4, [pc, #80]	; (8003228 <STS_YunhornSTSEventRFAC_Process+0x60>)
+ 80031d6:	6823      	ldr	r3, [r4, #0]
+ 80031d8:	2b01      	cmp	r3, #1
+ 80031da:	d90c      	bls.n	80031f6 <STS_YunhornSTSEventRFAC_Process+0x2e>
+ 80031dc:	6823      	ldr	r3, [r4, #0]
+ 80031de:	2b04      	cmp	r3, #4
+ 80031e0:	d809      	bhi.n	80031f6 <STS_YunhornSTSEventRFAC_Process+0x2e>
+ 80031e2:	4611      	mov	r1, r2
+ 80031e4:	4b11      	ldr	r3, [pc, #68]	; (800322c <STS_YunhornSTSEventRFAC_Process+0x64>)
+ 80031e6:	2002      	movs	r0, #2
+ 80031e8:	f010 faf2 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 80031ec:	4a10      	ldr	r2, [pc, #64]	; (8003230 <STS_YunhornSTSEventRFAC_Process+0x68>)
+ 80031ee:	2104      	movs	r1, #4
+ 80031f0:	2001      	movs	r0, #1
+ 80031f2:	f000 fb91 	bl	8003918 <STS_SENSOR_Upload_Message>
+ 80031f6:	6823      	ldr	r3, [r4, #0]
+ 80031f8:	2b04      	cmp	r3, #4
+ 80031fa:	d912      	bls.n	8003222 <STS_YunhornSTSEventRFAC_Process+0x5a>
+ 80031fc:	2200      	movs	r2, #0
+ 80031fe:	4b0d      	ldr	r3, [pc, #52]	; (8003234 <STS_YunhornSTSEventRFAC_Process+0x6c>)
+ 8003200:	4611      	mov	r1, r2
+ 8003202:	2002      	movs	r0, #2
+ 8003204:	f010 fae4 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8003208:	f7ff fb66 	bl	80028d8 <sts_hmac_verify>
+ 800320c:	3800      	subs	r0, #0
+ 800320e:	4b0a      	ldr	r3, [pc, #40]	; (8003238 <STS_YunhornSTSEventRFAC_Process+0x70>)
+ 8003210:	bf18      	it	ne
+ 8003212:	2001      	movne	r0, #1
+ 8003214:	0040      	lsls	r0, r0, #1
+ 8003216:	7018      	strb	r0, [r3, #0]
+ 8003218:	781b      	ldrb	r3, [r3, #0]
+ 800321a:	2b02      	cmp	r3, #2
+ 800321c:	bf04      	itt	eq
+ 800321e:	2300      	moveq	r3, #0
+ 8003220:	702b      	strbeq	r3, [r5, #0]
+ 8003222:	bd38      	pop	{r3, r4, r5, pc}
+ 8003224:	20000e4e 	.word	0x20000e4e
+ 8003228:	20000c40 	.word	0x20000c40
+ 800322c:	0801454f 	.word	0x0801454f
+ 8003230:	08014574 	.word	0x08014574
+ 8003234:	08014579 	.word	0x08014579
+ 8003238:	20000c44 	.word	0x20000c44
+
+0800323c <STS_YunhornSTSEventP4_Process>:
+ 800323c:	b508      	push	{r3, lr}
+ 800323e:	f7ff ff85 	bl	800314c <STS_SENSOR_Power_ON.part.0>
+ 8003242:	2200      	movs	r2, #0
+ 8003244:	4b05      	ldr	r3, [pc, #20]	; (800325c <STS_YunhornSTSEventP4_Process+0x20>)
+ 8003246:	4611      	mov	r1, r2
+ 8003248:	2001      	movs	r0, #1
+ 800324a:	f010 fac1 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 800324e:	f001 fd19 	bl	8004c84 <STS_TOF_VL53L0X_Range_Process>
+ 8003252:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 8003256:	f7ff bf81 	b.w	800315c <STS_SENSOR_Power_OFF.part.0>
+ 800325a:	bf00      	nop
+ 800325c:	080145ac 	.word	0x080145ac
+
+08003260 <STS_SENSOR_Power_ON>:
+ 8003260:	2802      	cmp	r0, #2
+ 8003262:	d801      	bhi.n	8003268 <STS_SENSOR_Power_ON+0x8>
+ 8003264:	f7ff bf72 	b.w	800314c <STS_SENSOR_Power_ON.part.0>
+ 8003268:	4770      	bx	lr
+
+0800326a <STS_SENSOR_Power_OFF>:
+ 800326a:	2802      	cmp	r0, #2
+ 800326c:	d801      	bhi.n	8003272 <STS_SENSOR_Power_OFF+0x8>
+ 800326e:	f7ff bf75 	b.w	800315c <STS_SENSOR_Power_OFF.part.0>
+ 8003272:	4770      	bx	lr
+
+08003274 <STS_SENSOR_MEMS_Reset>:
+ 8003274:	2802      	cmp	r0, #2
+ 8003276:	b508      	push	{r3, lr}
+ 8003278:	d81b      	bhi.n	80032b2 <STS_SENSOR_MEMS_Reset+0x3e>
+ 800327a:	2201      	movs	r2, #1
+ 800327c:	2110      	movs	r1, #16
+ 800327e:	480d      	ldr	r0, [pc, #52]	; (80032b4 <STS_SENSOR_MEMS_Reset+0x40>)
+ 8003280:	f005 f9b6 	bl	80085f0 <HAL_GPIO_WritePin>
+ 8003284:	2032      	movs	r0, #50	; 0x32
+ 8003286:	f7ff fc69 	bl	8002b5c <HAL_Delay>
+ 800328a:	480a      	ldr	r0, [pc, #40]	; (80032b4 <STS_SENSOR_MEMS_Reset+0x40>)
+ 800328c:	2200      	movs	r2, #0
+ 800328e:	2110      	movs	r1, #16
+ 8003290:	f005 f9ae 	bl	80085f0 <HAL_GPIO_WritePin>
+ 8003294:	2201      	movs	r2, #1
+ 8003296:	2110      	movs	r1, #16
+ 8003298:	4806      	ldr	r0, [pc, #24]	; (80032b4 <STS_SENSOR_MEMS_Reset+0x40>)
+ 800329a:	f005 f9a9 	bl	80085f0 <HAL_GPIO_WritePin>
+ 800329e:	2032      	movs	r0, #50	; 0x32
+ 80032a0:	f7ff fc5c 	bl	8002b5c <HAL_Delay>
+ 80032a4:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 80032a8:	4802      	ldr	r0, [pc, #8]	; (80032b4 <STS_SENSOR_MEMS_Reset+0x40>)
+ 80032aa:	2200      	movs	r2, #0
+ 80032ac:	2110      	movs	r1, #16
+ 80032ae:	f005 b99f 	b.w	80085f0 <HAL_GPIO_WritePin>
+ 80032b2:	bd08      	pop	{r3, pc}
+ 80032b4:	48000400 	.word	0x48000400
+
+080032b8 <STS_SENSOR_NVM_CFG_SIMPLE>:
+ 80032b8:	4770      	bx	lr
+
+080032ba <MX_LoRaWAN_Init>:
+ 80032ba:	b508      	push	{r3, lr}
+ 80032bc:	f7ff fb9e 	bl	80029fc <SystemApp_Init>
+ 80032c0:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 80032c4:	f000 bcdc 	b.w	8003c80 <LoRaWAN_Init>
+
+080032c8 <MX_LoRaWAN_Process>:
+ 80032c8:	f04f 30ff 	mov.w	r0, #4294967295
+ 80032cc:	f010 bbcc 	b.w	8013a68 <UTIL_SEQ_Run>
+
+080032d0 <OnTxTimerLedEvent>:
+ 80032d0:	4770      	bx	lr
+
+080032d2 <OnSysTimeUpdate>:
+ 80032d2:	4770      	bx	lr
+
+080032d4 <OnTxFrameCtrlChanged>:
+ 80032d4:	4b01      	ldr	r3, [pc, #4]	; (80032dc <OnTxFrameCtrlChanged+0x8>)
+ 80032d6:	70d8      	strb	r0, [r3, #3]
+ 80032d8:	4770      	bx	lr
+ 80032da:	bf00      	nop
+ 80032dc:	2000005c 	.word	0x2000005c
+
+080032e0 <OnPingSlotPeriodicityChanged>:
+ 80032e0:	4b01      	ldr	r3, [pc, #4]	; (80032e8 <OnPingSlotPeriodicityChanged+0x8>)
+ 80032e2:	7418      	strb	r0, [r3, #16]
+ 80032e4:	4770      	bx	lr
+ 80032e6:	bf00      	nop
+ 80032e8:	2000005c 	.word	0x2000005c
+
+080032ec <OnClassChange>:
+ 80032ec:	b507      	push	{r0, r1, r2, lr}
+ 80032ee:	4b06      	ldr	r3, [pc, #24]	; (8003308 <OnClassChange+0x1c>)
+ 80032f0:	2200      	movs	r2, #0
+ 80032f2:	5c1b      	ldrb	r3, [r3, r0]
+ 80032f4:	9300      	str	r3, [sp, #0]
+ 80032f6:	4611      	mov	r1, r2
+ 80032f8:	4b04      	ldr	r3, [pc, #16]	; (800330c <OnClassChange+0x20>)
+ 80032fa:	2002      	movs	r0, #2
+ 80032fc:	f010 fa68 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8003300:	b003      	add	sp, #12
+ 8003302:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8003306:	bf00      	nop
+ 8003308:	080145de 	.word	0x080145de
+ 800330c:	080145c4 	.word	0x080145c4
+
+08003310 <OnTxTimerEvent>:
+ 8003310:	b508      	push	{r3, lr}
+ 8003312:	4b06      	ldr	r3, [pc, #24]	; (800332c <OnTxTimerEvent+0x1c>)
+ 8003314:	2201      	movs	r2, #1
+ 8003316:	2002      	movs	r0, #2
+ 8003318:	2100      	movs	r1, #0
+ 800331a:	701a      	strb	r2, [r3, #0]
+ 800331c:	f010 fb6c 	bl	80139f8 <UTIL_SEQ_SetTask>
+ 8003320:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 8003324:	4802      	ldr	r0, [pc, #8]	; (8003330 <OnTxTimerEvent+0x20>)
+ 8003326:	f010 bdcf 	b.w	8013ec8 <UTIL_TIMER_Start>
+ 800332a:	bf00      	nop
+ 800332c:	20000e63 	.word	0x20000e63
+ 8003330:	20000d9c 	.word	0x20000d9c
+
+08003334 <OnMacProcessNotify>:
+ 8003334:	2100      	movs	r1, #0
+ 8003336:	2001      	movs	r0, #1
+ 8003338:	f010 bb5e 	b.w	80139f8 <UTIL_SEQ_SetTask>
+
+0800333c <OnJoinRequest>:
+ 800333c:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 800333e:	4604      	mov	r4, r0
+ 8003340:	b360      	cbz	r0, 800339c <OnJoinRequest+0x60>
+ 8003342:	f990 5006 	ldrsb.w	r5, [r0, #6]
+ 8003346:	bb5d      	cbnz	r5, 80033a0 <OnJoinRequest+0x64>
+ 8003348:	4819      	ldr	r0, [pc, #100]	; (80033b0 <OnJoinRequest+0x74>)
+ 800334a:	f010 fd6f 	bl	8013e2c <UTIL_TIMER_Stop>
+ 800334e:	4b19      	ldr	r3, [pc, #100]	; (80033b4 <OnJoinRequest+0x78>)
+ 8003350:	462a      	mov	r2, r5
+ 8003352:	4629      	mov	r1, r5
+ 8003354:	2002      	movs	r0, #2
+ 8003356:	f010 fa3b 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 800335a:	79e3      	ldrb	r3, [r4, #7]
+ 800335c:	2b01      	cmp	r3, #1
+ 800335e:	bf0c      	ite	eq
+ 8003360:	4b15      	ldreq	r3, [pc, #84]	; (80033b8 <OnJoinRequest+0x7c>)
+ 8003362:	4b16      	ldrne	r3, [pc, #88]	; (80033bc <OnJoinRequest+0x80>)
+ 8003364:	462a      	mov	r2, r5
+ 8003366:	4629      	mov	r1, r5
+ 8003368:	2002      	movs	r0, #2
+ 800336a:	f010 fa31 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 800336e:	4b14      	ldr	r3, [pc, #80]	; (80033c0 <OnJoinRequest+0x84>)
+ 8003370:	79e2      	ldrb	r2, [r4, #7]
+ 8003372:	701a      	strb	r2, [r3, #0]
+ 8003374:	781b      	ldrb	r3, [r3, #0]
+ 8003376:	9300      	str	r3, [sp, #0]
+ 8003378:	2200      	movs	r2, #0
+ 800337a:	4b12      	ldr	r3, [pc, #72]	; (80033c4 <OnJoinRequest+0x88>)
+ 800337c:	4611      	mov	r1, r2
+ 800337e:	2001      	movs	r0, #1
+ 8003380:	f010 fa26 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8003384:	f994 3005 	ldrsb.w	r3, [r4, #5]
+ 8003388:	9301      	str	r3, [sp, #4]
+ 800338a:	f994 3004 	ldrsb.w	r3, [r4, #4]
+ 800338e:	9300      	str	r3, [sp, #0]
+ 8003390:	2200      	movs	r2, #0
+ 8003392:	4b0d      	ldr	r3, [pc, #52]	; (80033c8 <OnJoinRequest+0x8c>)
+ 8003394:	4611      	mov	r1, r2
+ 8003396:	2003      	movs	r0, #3
+ 8003398:	f010 fa1a 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 800339c:	b003      	add	sp, #12
+ 800339e:	bd30      	pop	{r4, r5, pc}
+ 80033a0:	2200      	movs	r2, #0
+ 80033a2:	4b0a      	ldr	r3, [pc, #40]	; (80033cc <OnJoinRequest+0x90>)
+ 80033a4:	4611      	mov	r1, r2
+ 80033a6:	2002      	movs	r0, #2
+ 80033a8:	f010 fa12 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 80033ac:	e7ea      	b.n	8003384 <OnJoinRequest+0x48>
+ 80033ae:	bf00      	nop
+ 80033b0:	20000d38 	.word	0x20000d38
+ 80033b4:	080145e2 	.word	0x080145e2
+ 80033b8:	080145f7 	.word	0x080145f7
+ 80033bc:	08014614 	.word	0x08014614
+ 80033c0:	20000d68 	.word	0x20000d68
+ 80033c4:	08014631 	.word	0x08014631
+ 80033c8:	08014669 	.word	0x08014669
+ 80033cc:	08014650 	.word	0x08014650
+
+080033d0 <OnTxPeriodicityChanged>:
+ 80033d0:	b513      	push	{r0, r1, r4, lr}
+ 80033d2:	4c0d      	ldr	r4, [pc, #52]	; (8003408 <OnTxPeriodicityChanged+0x38>)
+ 80033d4:	b1a0      	cbz	r0, 8003400 <OnTxPeriodicityChanged+0x30>
+ 80033d6:	6020      	str	r0, [r4, #0]
+ 80033d8:	480c      	ldr	r0, [pc, #48]	; (800340c <OnTxPeriodicityChanged+0x3c>)
+ 80033da:	f010 fd27 	bl	8013e2c <UTIL_TIMER_Stop>
+ 80033de:	6821      	ldr	r1, [r4, #0]
+ 80033e0:	480a      	ldr	r0, [pc, #40]	; (800340c <OnTxPeriodicityChanged+0x3c>)
+ 80033e2:	f010 fdab 	bl	8013f3c <UTIL_TIMER_SetPeriod>
+ 80033e6:	4809      	ldr	r0, [pc, #36]	; (800340c <OnTxPeriodicityChanged+0x3c>)
+ 80033e8:	f010 fd6e 	bl	8013ec8 <UTIL_TIMER_Start>
+ 80033ec:	6823      	ldr	r3, [r4, #0]
+ 80033ee:	9300      	str	r3, [sp, #0]
+ 80033f0:	2200      	movs	r2, #0
+ 80033f2:	4b07      	ldr	r3, [pc, #28]	; (8003410 <OnTxPeriodicityChanged+0x40>)
+ 80033f4:	4611      	mov	r1, r2
+ 80033f6:	2001      	movs	r0, #1
+ 80033f8:	f010 f9ea 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 80033fc:	b002      	add	sp, #8
+ 80033fe:	bd10      	pop	{r4, pc}
+ 8003400:	f242 7310 	movw	r3, #10000	; 0x2710
+ 8003404:	6023      	str	r3, [r4, #0]
+ 8003406:	e7e7      	b.n	80033d8 <OnTxPeriodicityChanged+0x8>
+ 8003408:	20000074 	.word	0x20000074
+ 800340c:	20000d9c 	.word	0x20000d9c
+ 8003410:	08014692 	.word	0x08014692
+
+08003414 <OnYunhornSTSHeartBeatPeriodicityChanged>:
+ 8003414:	b513      	push	{r0, r1, r4, lr}
+ 8003416:	4c0d      	ldr	r4, [pc, #52]	; (800344c <OnYunhornSTSHeartBeatPeriodicityChanged+0x38>)
+ 8003418:	6020      	str	r0, [r4, #0]
+ 800341a:	6823      	ldr	r3, [r4, #0]
+ 800341c:	b90b      	cbnz	r3, 8003422 <OnYunhornSTSHeartBeatPeriodicityChanged+0xe>
+ 800341e:	4b0c      	ldr	r3, [pc, #48]	; (8003450 <OnYunhornSTSHeartBeatPeriodicityChanged+0x3c>)
+ 8003420:	6023      	str	r3, [r4, #0]
+ 8003422:	480c      	ldr	r0, [pc, #48]	; (8003454 <OnYunhornSTSHeartBeatPeriodicityChanged+0x40>)
+ 8003424:	f010 fd02 	bl	8013e2c <UTIL_TIMER_Stop>
+ 8003428:	6821      	ldr	r1, [r4, #0]
+ 800342a:	480a      	ldr	r0, [pc, #40]	; (8003454 <OnYunhornSTSHeartBeatPeriodicityChanged+0x40>)
+ 800342c:	f010 fd86 	bl	8013f3c <UTIL_TIMER_SetPeriod>
+ 8003430:	4808      	ldr	r0, [pc, #32]	; (8003454 <OnYunhornSTSHeartBeatPeriodicityChanged+0x40>)
+ 8003432:	f010 fd49 	bl	8013ec8 <UTIL_TIMER_Start>
+ 8003436:	6823      	ldr	r3, [r4, #0]
+ 8003438:	9300      	str	r3, [sp, #0]
+ 800343a:	2200      	movs	r2, #0
+ 800343c:	4b06      	ldr	r3, [pc, #24]	; (8003458 <OnYunhornSTSHeartBeatPeriodicityChanged+0x44>)
+ 800343e:	4611      	mov	r1, r2
+ 8003440:	2001      	movs	r0, #1
+ 8003442:	f010 f9c5 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8003446:	b002      	add	sp, #8
+ 8003448:	bd10      	pop	{r4, pc}
+ 800344a:	bf00      	nop
+ 800344c:	2000000c 	.word	0x2000000c
+ 8003450:	000186a0 	.word	0x000186a0
+ 8003454:	20000db4 	.word	0x20000db4
+ 8003458:	080146bb 	.word	0x080146bb
+
+0800345c <OnStoreContextRequest>:
+ 800345c:	b538      	push	{r3, r4, r5, lr}
+ 800345e:	4604      	mov	r4, r0
+ 8003460:	460d      	mov	r5, r1
+ 8003462:	4807      	ldr	r0, [pc, #28]	; (8003480 <OnStoreContextRequest+0x24>)
+ 8003464:	f44f 6100 	mov.w	r1, #2048	; 0x800
+ 8003468:	f7fe ff80 	bl	800236c <FLASH_IF_Erase>
+ 800346c:	b930      	cbnz	r0, 800347c <OnStoreContextRequest+0x20>
+ 800346e:	462a      	mov	r2, r5
+ 8003470:	4621      	mov	r1, r4
+ 8003472:	4803      	ldr	r0, [pc, #12]	; (8003480 <OnStoreContextRequest+0x24>)
+ 8003474:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
+ 8003478:	f7fe be7a 	b.w	8002170 <FLASH_IF_Write>
+ 800347c:	bd38      	pop	{r3, r4, r5, pc}
+ 800347e:	bf00      	nop
+ 8003480:	0803f000 	.word	0x0803f000
+
+08003484 <OnRestoreContextRequest>:
+ 8003484:	460a      	mov	r2, r1
+ 8003486:	4901      	ldr	r1, [pc, #4]	; (800348c <OnRestoreContextRequest+0x8>)
+ 8003488:	f7fe bf50 	b.w	800232c <FLASH_IF_Read>
+ 800348c:	0803f000 	.word	0x0803f000
+
+08003490 <StopJoin>:
+ 8003490:	b570      	push	{r4, r5, r6, lr}
+ 8003492:	4816      	ldr	r0, [pc, #88]	; (80034ec <StopJoin+0x5c>)
+ 8003494:	f010 fcca 	bl	8013e2c <UTIL_TIMER_Stop>
+ 8003498:	f008 fb92 	bl	800bbc0 <LmHandlerStop>
+ 800349c:	4604      	mov	r4, r0
+ 800349e:	b150      	cbz	r0, 80034b6 <StopJoin+0x26>
+ 80034a0:	2200      	movs	r2, #0
+ 80034a2:	4b13      	ldr	r3, [pc, #76]	; (80034f0 <StopJoin+0x60>)
+ 80034a4:	4611      	mov	r1, r2
+ 80034a6:	2002      	movs	r0, #2
+ 80034a8:	f010 f992 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 80034ac:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
+ 80034b0:	4810      	ldr	r0, [pc, #64]	; (80034f4 <StopJoin+0x64>)
+ 80034b2:	f010 bd09 	b.w	8013ec8 <UTIL_TIMER_Start>
+ 80034b6:	4d10      	ldr	r5, [pc, #64]	; (80034f8 <StopJoin+0x68>)
+ 80034b8:	4b10      	ldr	r3, [pc, #64]	; (80034fc <StopJoin+0x6c>)
+ 80034ba:	4602      	mov	r2, r0
+ 80034bc:	4601      	mov	r1, r0
+ 80034be:	2002      	movs	r0, #2
+ 80034c0:	f010 f986 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 80034c4:	2601      	movs	r6, #1
+ 80034c6:	4b0e      	ldr	r3, [pc, #56]	; (8003500 <StopJoin+0x70>)
+ 80034c8:	702e      	strb	r6, [r5, #0]
+ 80034ca:	4622      	mov	r2, r4
+ 80034cc:	4621      	mov	r1, r4
+ 80034ce:	2002      	movs	r0, #2
+ 80034d0:	f010 f97e 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 80034d4:	480b      	ldr	r0, [pc, #44]	; (8003504 <StopJoin+0x74>)
+ 80034d6:	f008 fa17 	bl	800b908 <LmHandlerConfigure>
+ 80034da:	7828      	ldrb	r0, [r5, #0]
+ 80034dc:	4631      	mov	r1, r6
+ 80034de:	f008 f841 	bl	800b564 <LmHandlerJoin>
+ 80034e2:	4802      	ldr	r0, [pc, #8]	; (80034ec <StopJoin+0x5c>)
+ 80034e4:	f010 fcf0 	bl	8013ec8 <UTIL_TIMER_Start>
+ 80034e8:	e7e0      	b.n	80034ac <StopJoin+0x1c>
+ 80034ea:	bf00      	nop
+ 80034ec:	20000d9c 	.word	0x20000d9c
+ 80034f0:	080146f7 	.word	0x080146f7
+ 80034f4:	20000d6c 	.word	0x20000d6c
+ 80034f8:	20000000 	.word	0x20000000
+ 80034fc:	08014715 	.word	0x08014715
+ 8003500:	08014729 	.word	0x08014729
+ 8003504:	2000005c 	.word	0x2000005c
+
+08003508 <SendTxData>:
+ 8003508:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800350c:	4f64      	ldr	r7, [pc, #400]	; (80036a0 <SendTxData+0x198>)
+ 800350e:	4d65      	ldr	r5, [pc, #404]	; (80036a4 <SendTxData+0x19c>)
+ 8003510:	4e65      	ldr	r6, [pc, #404]	; (80036a8 <SendTxData+0x1a0>)
+ 8003512:	b08e      	sub	sp, #56	; 0x38
+ 8003514:	f7ff faa0 	bl	8002a58 <GetBatteryLevel>
+ 8003518:	783b      	ldrb	r3, [r7, #0]
+ 800351a:	782a      	ldrb	r2, [r5, #0]
+ 800351c:	7831      	ldrb	r1, [r6, #0]
+ 800351e:	9300      	str	r3, [sp, #0]
+ 8003520:	e9cd 2101 	strd	r2, r1, [sp, #4]
+ 8003524:	4b61      	ldr	r3, [pc, #388]	; (80036ac <SendTxData+0x1a4>)
+ 8003526:	2201      	movs	r2, #1
+ 8003528:	2100      	movs	r1, #0
+ 800352a:	4604      	mov	r4, r0
+ 800352c:	2003      	movs	r0, #3
+ 800352e:	f010 f94f 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8003532:	f008 f887 	bl	800b644 <LmHandlerIsBusy>
+ 8003536:	4680      	mov	r8, r0
+ 8003538:	b188      	cbz	r0, 800355e <SendTxData+0x56>
+ 800353a:	2400      	movs	r4, #0
+ 800353c:	485c      	ldr	r0, [pc, #368]	; (80036b0 <SendTxData+0x1a8>)
+ 800353e:	f010 fc75 	bl	8013e2c <UTIL_TIMER_Stop>
+ 8003542:	4b5c      	ldr	r3, [pc, #368]	; (80036b4 <SendTxData+0x1ac>)
+ 8003544:	485a      	ldr	r0, [pc, #360]	; (80036b0 <SendTxData+0x1a8>)
+ 8003546:	6819      	ldr	r1, [r3, #0]
+ 8003548:	42a1      	cmp	r1, r4
+ 800354a:	bf38      	it	cc
+ 800354c:	4621      	movcc	r1, r4
+ 800354e:	f010 fcf5 	bl	8013f3c <UTIL_TIMER_SetPeriod>
+ 8003552:	4857      	ldr	r0, [pc, #348]	; (80036b0 <SendTxData+0x1a8>)
+ 8003554:	f010 fcb8 	bl	8013ec8 <UTIL_TIMER_Start>
+ 8003558:	b00e      	add	sp, #56	; 0x38
+ 800355a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800355e:	f001 f9ad 	bl	80048bc <MX_TOF_Process>
+ 8003562:	a804      	add	r0, sp, #16
+ 8003564:	f001 f9bc 	bl	80048e0 <STS_R0_SENSOR_Read>
+ 8003568:	b223      	sxth	r3, r4
+ 800356a:	eb03 0343 	add.w	r3, r3, r3, lsl #1
+ 800356e:	4c52      	ldr	r4, [pc, #328]	; (80036b8 <SendTxData+0x1b0>)
+ 8003570:	a808      	add	r0, sp, #32
+ 8003572:	22fe      	movs	r2, #254	; 0xfe
+ 8003574:	eb03 1343 	add.w	r3, r3, r3, lsl #5
+ 8003578:	fbb3 f3f2 	udiv	r3, r3, r2
+ 800357c:	f88d 301c 	strb.w	r3, [sp, #28]
+ 8003580:	f7ff fb5a 	bl	8002c38 <EnvSensors_Read>
+ 8003584:	230a      	movs	r3, #10
+ 8003586:	4a4d      	ldr	r2, [pc, #308]	; (80036bc <SendTxData+0x1b4>)
+ 8003588:	7023      	strb	r3, [r4, #0]
+ 800358a:	6863      	ldr	r3, [r4, #4]
+ 800358c:	7812      	ldrb	r2, [r2, #0]
+ 800358e:	701a      	strb	r2, [r3, #0]
+ 8003590:	6863      	ldr	r3, [r4, #4]
+ 8003592:	f883 8001 	strb.w	r8, [r3, #1]
+ 8003596:	6863      	ldr	r3, [r4, #4]
+ 8003598:	2210      	movs	r2, #16
+ 800359a:	709a      	strb	r2, [r3, #2]
+ 800359c:	6863      	ldr	r3, [r4, #4]
+ 800359e:	2201      	movs	r2, #1
+ 80035a0:	70da      	strb	r2, [r3, #3]
+ 80035a2:	6861      	ldr	r1, [r4, #4]
+ 80035a4:	f89d 301c 	ldrb.w	r3, [sp, #28]
+ 80035a8:	710b      	strb	r3, [r1, #4]
+ 80035aa:	7839      	ldrb	r1, [r7, #0]
+ 80035ac:	b1a1      	cbz	r1, 80035d8 <SendTxData+0xd0>
+ 80035ae:	210b      	movs	r1, #11
+ 80035b0:	7021      	strb	r1, [r4, #0]
+ 80035b2:	9303      	str	r3, [sp, #12]
+ 80035b4:	f8bd 301a 	ldrh.w	r3, [sp, #26]
+ 80035b8:	9302      	str	r3, [sp, #8]
+ 80035ba:	f8bd 3018 	ldrh.w	r3, [sp, #24]
+ 80035be:	9301      	str	r3, [sp, #4]
+ 80035c0:	f8bd 3010 	ldrh.w	r3, [sp, #16]
+ 80035c4:	9300      	str	r3, [sp, #0]
+ 80035c6:	4641      	mov	r1, r8
+ 80035c8:	4b3d      	ldr	r3, [pc, #244]	; (80036c0 <SendTxData+0x1b8>)
+ 80035ca:	f887 8000 	strb.w	r8, [r7]
+ 80035ce:	2003      	movs	r0, #3
+ 80035d0:	f010 f8fe 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 80035d4:	2305      	movs	r3, #5
+ 80035d6:	e02e      	b.n	8003636 <SendTxData+0x12e>
+ 80035d8:	782b      	ldrb	r3, [r5, #0]
+ 80035da:	b913      	cbnz	r3, 80035e2 <SendTxData+0xda>
+ 80035dc:	7833      	ldrb	r3, [r6, #0]
+ 80035de:	2b00      	cmp	r3, #0
+ 80035e0:	d0f8      	beq.n	80035d4 <SendTxData+0xcc>
+ 80035e2:	f8bd 3010 	ldrh.w	r3, [sp, #16]
+ 80035e6:	6862      	ldr	r2, [r4, #4]
+ 80035e8:	0a18      	lsrs	r0, r3, #8
+ 80035ea:	7150      	strb	r0, [r2, #5]
+ 80035ec:	6862      	ldr	r2, [r4, #4]
+ 80035ee:	7193      	strb	r3, [r2, #6]
+ 80035f0:	f8bd 2018 	ldrh.w	r2, [sp, #24]
+ 80035f4:	6860      	ldr	r0, [r4, #4]
+ 80035f6:	0a12      	lsrs	r2, r2, #8
+ 80035f8:	71c2      	strb	r2, [r0, #7]
+ 80035fa:	6862      	ldr	r2, [r4, #4]
+ 80035fc:	f8bd 0018 	ldrh.w	r0, [sp, #24]
+ 8003600:	7210      	strb	r0, [r2, #8]
+ 8003602:	f8bd 001a 	ldrh.w	r0, [sp, #26]
+ 8003606:	0a00      	lsrs	r0, r0, #8
+ 8003608:	7250      	strb	r0, [r2, #9]
+ 800360a:	f8bd 001a 	ldrh.w	r0, [sp, #26]
+ 800360e:	7290      	strb	r0, [r2, #10]
+ 8003610:	f89d 201c 	ldrb.w	r2, [sp, #28]
+ 8003614:	9203      	str	r2, [sp, #12]
+ 8003616:	f8bd 201a 	ldrh.w	r2, [sp, #26]
+ 800361a:	9202      	str	r2, [sp, #8]
+ 800361c:	f8bd 2018 	ldrh.w	r2, [sp, #24]
+ 8003620:	2100      	movs	r1, #0
+ 8003622:	e9cd 3200 	strd	r3, r2, [sp]
+ 8003626:	2003      	movs	r0, #3
+ 8003628:	4b25      	ldr	r3, [pc, #148]	; (80036c0 <SendTxData+0x1b8>)
+ 800362a:	7031      	strb	r1, [r6, #0]
+ 800362c:	2201      	movs	r2, #1
+ 800362e:	7029      	strb	r1, [r5, #0]
+ 8003630:	f010 f8ce 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8003634:	230b      	movs	r3, #11
+ 8003636:	4a23      	ldr	r2, [pc, #140]	; (80036c4 <SendTxData+0x1bc>)
+ 8003638:	7812      	ldrb	r2, [r2, #0]
+ 800363a:	2a01      	cmp	r2, #1
+ 800363c:	bf88      	it	hi
+ 800363e:	2300      	movhi	r3, #0
+ 8003640:	7063      	strb	r3, [r4, #1]
+ 8003642:	4c21      	ldr	r4, [pc, #132]	; (80036c8 <SendTxData+0x1c0>)
+ 8003644:	7a63      	ldrb	r3, [r4, #9]
+ 8003646:	b133      	cbz	r3, 8003656 <SendTxData+0x14e>
+ 8003648:	f007 ff2e 	bl	800b4a8 <LmHandlerJoinStatus>
+ 800364c:	2801      	cmp	r0, #1
+ 800364e:	d102      	bne.n	8003656 <SendTxData+0x14e>
+ 8003650:	4620      	mov	r0, r4
+ 8003652:	f010 fbeb 	bl	8013e2c <UTIL_TIMER_Stop>
+ 8003656:	4b1d      	ldr	r3, [pc, #116]	; (80036cc <SendTxData+0x1c4>)
+ 8003658:	4817      	ldr	r0, [pc, #92]	; (80036b8 <SendTxData+0x1b0>)
+ 800365a:	78d9      	ldrb	r1, [r3, #3]
+ 800365c:	2200      	movs	r2, #0
+ 800365e:	f008 f80f 	bl	800b680 <LmHandlerSend>
+ 8003662:	4604      	mov	r4, r0
+ 8003664:	b930      	cbnz	r0, 8003674 <SendTxData+0x16c>
+ 8003666:	4601      	mov	r1, r0
+ 8003668:	4b19      	ldr	r3, [pc, #100]	; (80036d0 <SendTxData+0x1c8>)
+ 800366a:	2201      	movs	r2, #1
+ 800366c:	2002      	movs	r0, #2
+ 800366e:	f010 f8af 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8003672:	e763      	b.n	800353c <SendTxData+0x34>
+ 8003674:	3406      	adds	r4, #6
+ 8003676:	f47f af60 	bne.w	800353a <SendTxData+0x32>
+ 800367a:	f007 ff0f 	bl	800b49c <LmHandlerGetDutyCycleWaitTime>
+ 800367e:	4604      	mov	r4, r0
+ 8003680:	2800      	cmp	r0, #0
+ 8003682:	f43f af5b 	beq.w	800353c <SendTxData+0x34>
+ 8003686:	2201      	movs	r2, #1
+ 8003688:	f44f 737a 	mov.w	r3, #1000	; 0x3e8
+ 800368c:	2100      	movs	r1, #0
+ 800368e:	fbb0 f3f3 	udiv	r3, r0, r3
+ 8003692:	4610      	mov	r0, r2
+ 8003694:	9300      	str	r3, [sp, #0]
+ 8003696:	4b0f      	ldr	r3, [pc, #60]	; (80036d4 <SendTxData+0x1cc>)
+ 8003698:	f010 f89a 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 800369c:	e74e      	b.n	800353c <SendTxData+0x34>
+ 800369e:	bf00      	nop
+ 80036a0:	20000dcc 	.word	0x20000dcc
+ 80036a4:	20000e63 	.word	0x20000e63
+ 80036a8:	20000e4d 	.word	0x20000e4d
+ 80036ac:	08014748 	.word	0x08014748
+ 80036b0:	20000d9c 	.word	0x20000d9c
+ 80036b4:	20000074 	.word	0x20000074
+ 80036b8:	20000004 	.word	0x20000004
+ 80036bc:	20000d37 	.word	0x20000d37
+ 80036c0:	080147a4 	.word	0x080147a4
+ 80036c4:	20000c44 	.word	0x20000c44
+ 80036c8:	20000d38 	.word	0x20000d38
+ 80036cc:	2000005c 	.word	0x2000005c
+ 80036d0:	0801482b 	.word	0x0801482b
+ 80036d4:	0801483a 	.word	0x0801483a
+
+080036d8 <OnBeaconStatusChange>:
+ 80036d8:	b500      	push	{lr}
+ 80036da:	4603      	mov	r3, r0
+ 80036dc:	b08d      	sub	sp, #52	; 0x34
+ 80036de:	2800      	cmp	r0, #0
+ 80036e0:	d02c      	beq.n	800373c <OnBeaconStatusChange+0x64>
+ 80036e2:	7840      	ldrb	r0, [r0, #1]
+ 80036e4:	2802      	cmp	r0, #2
+ 80036e6:	d00a      	beq.n	80036fe <OnBeaconStatusChange+0x26>
+ 80036e8:	2803      	cmp	r0, #3
+ 80036ea:	d02a      	beq.n	8003742 <OnBeaconStatusChange+0x6a>
+ 80036ec:	4b16      	ldr	r3, [pc, #88]	; (8003748 <OnBeaconStatusChange+0x70>)
+ 80036ee:	2200      	movs	r2, #0
+ 80036f0:	4611      	mov	r1, r2
+ 80036f2:	2002      	movs	r0, #2
+ 80036f4:	b00d      	add	sp, #52	; 0x34
+ 80036f6:	f85d eb04 	ldr.w	lr, [sp], #4
+ 80036fa:	f010 b869 	b.w	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 80036fe:	7eda      	ldrb	r2, [r3, #27]
+ 8003700:	920b      	str	r2, [sp, #44]	; 0x2c
+ 8003702:	7e9a      	ldrb	r2, [r3, #26]
+ 8003704:	920a      	str	r2, [sp, #40]	; 0x28
+ 8003706:	7e5a      	ldrb	r2, [r3, #25]
+ 8003708:	9209      	str	r2, [sp, #36]	; 0x24
+ 800370a:	7e1a      	ldrb	r2, [r3, #24]
+ 800370c:	9208      	str	r2, [sp, #32]
+ 800370e:	7dda      	ldrb	r2, [r3, #23]
+ 8003710:	9207      	str	r2, [sp, #28]
+ 8003712:	7d9a      	ldrb	r2, [r3, #22]
+ 8003714:	9206      	str	r2, [sp, #24]
+ 8003716:	7d5a      	ldrb	r2, [r3, #21]
+ 8003718:	9205      	str	r2, [sp, #20]
+ 800371a:	685a      	ldr	r2, [r3, #4]
+ 800371c:	9204      	str	r2, [sp, #16]
+ 800371e:	68da      	ldr	r2, [r3, #12]
+ 8003720:	9203      	str	r2, [sp, #12]
+ 8003722:	f993 2014 	ldrsb.w	r2, [r3, #20]
+ 8003726:	9202      	str	r2, [sp, #8]
+ 8003728:	f9b3 2012 	ldrsh.w	r2, [r3, #18]
+ 800372c:	9201      	str	r2, [sp, #4]
+ 800372e:	7c1b      	ldrb	r3, [r3, #16]
+ 8003730:	9300      	str	r3, [sp, #0]
+ 8003732:	2200      	movs	r2, #0
+ 8003734:	4b05      	ldr	r3, [pc, #20]	; (800374c <OnBeaconStatusChange+0x74>)
+ 8003736:	4611      	mov	r1, r2
+ 8003738:	f010 f84a 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 800373c:	b00d      	add	sp, #52	; 0x34
+ 800373e:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8003742:	4b03      	ldr	r3, [pc, #12]	; (8003750 <OnBeaconStatusChange+0x78>)
+ 8003744:	e7d3      	b.n	80036ee <OnBeaconStatusChange+0x16>
+ 8003746:	bf00      	nop
+ 8003748:	08014858 	.word	0x08014858
+ 800374c:	0801486f 	.word	0x0801486f
+ 8003750:	080148e1 	.word	0x080148e1
+
+08003754 <OnNvmDataChange>:
+ 8003754:	2801      	cmp	r0, #1
+ 8003756:	f04f 0200 	mov.w	r2, #0
+ 800375a:	bf0c      	ite	eq
+ 800375c:	4b02      	ldreq	r3, [pc, #8]	; (8003768 <OnNvmDataChange+0x14>)
+ 800375e:	4b03      	ldrne	r3, [pc, #12]	; (800376c <OnNvmDataChange+0x18>)
+ 8003760:	4611      	mov	r1, r2
+ 8003762:	2002      	movs	r0, #2
+ 8003764:	f010 b834 	b.w	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8003768:	08014900 	.word	0x08014900
+ 800376c:	08014912 	.word	0x08014912
+
+08003770 <OnTxData>:
+ 8003770:	b51f      	push	{r0, r1, r2, r3, r4, lr}
+ 8003772:	4604      	mov	r4, r0
+ 8003774:	2800      	cmp	r0, #0
+ 8003776:	d031      	beq.n	80037dc <OnTxData+0x6c>
+ 8003778:	7803      	ldrb	r3, [r0, #0]
+ 800377a:	2b00      	cmp	r3, #0
+ 800377c:	d02e      	beq.n	80037dc <OnTxData+0x6c>
+ 800377e:	481d      	ldr	r0, [pc, #116]	; (80037f4 <OnTxData+0x84>)
+ 8003780:	f010 fba2 	bl	8013ec8 <UTIL_TIMER_Start>
+ 8003784:	2200      	movs	r2, #0
+ 8003786:	4611      	mov	r1, r2
+ 8003788:	4b1b      	ldr	r3, [pc, #108]	; (80037f8 <OnTxData+0x88>)
+ 800378a:	2002      	movs	r0, #2
+ 800378c:	f010 f820 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8003790:	f994 3018 	ldrsb.w	r3, [r4, #24]
+ 8003794:	9303      	str	r3, [sp, #12]
+ 8003796:	f994 300a 	ldrsb.w	r3, [r4, #10]
+ 800379a:	9302      	str	r3, [sp, #8]
+ 800379c:	7c23      	ldrb	r3, [r4, #16]
+ 800379e:	9301      	str	r3, [sp, #4]
+ 80037a0:	68e3      	ldr	r3, [r4, #12]
+ 80037a2:	9300      	str	r3, [sp, #0]
+ 80037a4:	2200      	movs	r2, #0
+ 80037a6:	4611      	mov	r1, r2
+ 80037a8:	4b14      	ldr	r3, [pc, #80]	; (80037fc <OnTxData+0x8c>)
+ 80037aa:	2003      	movs	r0, #3
+ 80037ac:	f010 f810 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 80037b0:	2200      	movs	r2, #0
+ 80037b2:	4b13      	ldr	r3, [pc, #76]	; (8003800 <OnTxData+0x90>)
+ 80037b4:	4611      	mov	r1, r2
+ 80037b6:	2003      	movs	r0, #3
+ 80037b8:	f010 f80a 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 80037bc:	7a23      	ldrb	r3, [r4, #8]
+ 80037be:	2b01      	cmp	r3, #1
+ 80037c0:	d10e      	bne.n	80037e0 <OnTxData+0x70>
+ 80037c2:	7a61      	ldrb	r1, [r4, #9]
+ 80037c4:	4a0f      	ldr	r2, [pc, #60]	; (8003804 <OnTxData+0x94>)
+ 80037c6:	4b10      	ldr	r3, [pc, #64]	; (8003808 <OnTxData+0x98>)
+ 80037c8:	2900      	cmp	r1, #0
+ 80037ca:	bf08      	it	eq
+ 80037cc:	4613      	moveq	r3, r2
+ 80037ce:	2200      	movs	r2, #0
+ 80037d0:	9300      	str	r3, [sp, #0]
+ 80037d2:	4611      	mov	r1, r2
+ 80037d4:	4b0d      	ldr	r3, [pc, #52]	; (800380c <OnTxData+0x9c>)
+ 80037d6:	2003      	movs	r0, #3
+ 80037d8:	f00f fffa 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 80037dc:	b004      	add	sp, #16
+ 80037de:	bd10      	pop	{r4, pc}
+ 80037e0:	2200      	movs	r2, #0
+ 80037e2:	4b0b      	ldr	r3, [pc, #44]	; (8003810 <OnTxData+0xa0>)
+ 80037e4:	4611      	mov	r1, r2
+ 80037e6:	2003      	movs	r0, #3
+ 80037e8:	b004      	add	sp, #16
+ 80037ea:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 80037ee:	f00f bfef 	b.w	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 80037f2:	bf00      	nop
+ 80037f4:	20000d84 	.word	0x20000d84
+ 80037f8:	0801492b 	.word	0x0801492b
+ 80037fc:	0801495c 	.word	0x0801495c
+ 8003800:	0801498d 	.word	0x0801498d
+ 8003804:	08014926 	.word	0x08014926
+ 8003808:	08014927 	.word	0x08014927
+ 800380c:	0801499a 	.word	0x0801499a
+ 8003810:	080149ab 	.word	0x080149ab
+
+08003814 <OnYunhornSTSHeartBeatTimerEvent>:
+ 8003814:	b508      	push	{r3, lr}
+ 8003816:	4b0f      	ldr	r3, [pc, #60]	; (8003854 <OnYunhornSTSHeartBeatTimerEvent+0x40>)
+ 8003818:	2201      	movs	r2, #1
+ 800381a:	2100      	movs	r1, #0
+ 800381c:	2002      	movs	r0, #2
+ 800381e:	701a      	strb	r2, [r3, #0]
+ 8003820:	f010 f8ea 	bl	80139f8 <UTIL_SEQ_SetTask>
+ 8003824:	480c      	ldr	r0, [pc, #48]	; (8003858 <OnYunhornSTSHeartBeatTimerEvent+0x44>)
+ 8003826:	f010 fb4f 	bl	8013ec8 <UTIL_TIMER_Start>
+ 800382a:	4b0c      	ldr	r3, [pc, #48]	; (800385c <OnYunhornSTSHeartBeatTimerEvent+0x48>)
+ 800382c:	781b      	ldrb	r3, [r3, #0]
+ 800382e:	b17b      	cbz	r3, 8003850 <OnYunhornSTSHeartBeatTimerEvent+0x3c>
+ 8003830:	4b0b      	ldr	r3, [pc, #44]	; (8003860 <OnYunhornSTSHeartBeatTimerEvent+0x4c>)
+ 8003832:	781b      	ldrb	r3, [r3, #0]
+ 8003834:	b963      	cbnz	r3, 8003850 <OnYunhornSTSHeartBeatTimerEvent+0x3c>
+ 8003836:	4b0b      	ldr	r3, [pc, #44]	; (8003864 <OnYunhornSTSHeartBeatTimerEvent+0x50>)
+ 8003838:	681a      	ldr	r2, [r3, #0]
+ 800383a:	2a04      	cmp	r2, #4
+ 800383c:	bf9e      	ittt	ls
+ 800383e:	681a      	ldrls	r2, [r3, #0]
+ 8003840:	3201      	addls	r2, #1
+ 8003842:	601a      	strls	r2, [r3, #0]
+ 8003844:	2100      	movs	r1, #0
+ 8003846:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 800384a:	2010      	movs	r0, #16
+ 800384c:	f010 b8d4 	b.w	80139f8 <UTIL_SEQ_SetTask>
+ 8003850:	bd08      	pop	{r3, pc}
+ 8003852:	bf00      	nop
+ 8003854:	20000dcc 	.word	0x20000dcc
+ 8003858:	20000db4 	.word	0x20000db4
+ 800385c:	20000d68 	.word	0x20000d68
+ 8003860:	20000e4e 	.word	0x20000e4e
+ 8003864:	20000c40 	.word	0x20000c40
+
+08003868 <OnStopJoinTimerEvent>:
+ 8003868:	4b04      	ldr	r3, [pc, #16]	; (800387c <OnStopJoinTimerEvent+0x14>)
+ 800386a:	781b      	ldrb	r3, [r3, #0]
+ 800386c:	2b02      	cmp	r3, #2
+ 800386e:	d103      	bne.n	8003878 <OnStopJoinTimerEvent+0x10>
+ 8003870:	2100      	movs	r1, #0
+ 8003872:	2008      	movs	r0, #8
+ 8003874:	f010 b8c0 	b.w	80139f8 <UTIL_SEQ_SetTask>
+ 8003878:	4770      	bx	lr
+ 800387a:	bf00      	nop
+ 800387c:	20000000 	.word	0x20000000
+
+08003880 <OnSystemReset>:
+ 8003880:	b508      	push	{r3, lr}
+ 8003882:	f008 f9a6 	bl	800bbd2 <LmHandlerHalt>
+ 8003886:	b980      	cbnz	r0, 80038aa <OnSystemReset+0x2a>
+ 8003888:	f007 fe0e 	bl	800b4a8 <LmHandlerJoinStatus>
+ 800388c:	2801      	cmp	r0, #1
+ 800388e:	d10c      	bne.n	80038aa <OnSystemReset+0x2a>
+ 8003890:	f3bf 8f4f 	dsb	sy
+ 8003894:	4905      	ldr	r1, [pc, #20]	; (80038ac <OnSystemReset+0x2c>)
+ 8003896:	4b06      	ldr	r3, [pc, #24]	; (80038b0 <OnSystemReset+0x30>)
+ 8003898:	68ca      	ldr	r2, [r1, #12]
+ 800389a:	f402 62e0 	and.w	r2, r2, #1792	; 0x700
+ 800389e:	4313      	orrs	r3, r2
+ 80038a0:	60cb      	str	r3, [r1, #12]
+ 80038a2:	f3bf 8f4f 	dsb	sy
+ 80038a6:	bf00      	nop
+ 80038a8:	e7fd      	b.n	80038a6 <OnSystemReset+0x26>
+ 80038aa:	bd08      	pop	{r3, pc}
+ 80038ac:	e000ed00 	.word	0xe000ed00
+ 80038b0:	05fa0004 	.word	0x05fa0004
+
+080038b4 <StoreContext>:
+ 80038b4:	b510      	push	{r4, lr}
+ 80038b6:	f008 fa21 	bl	800bcfc <LmHandlerNvmDataStore>
+ 80038ba:	f110 0f08 	cmn.w	r0, #8
+ 80038be:	d107      	bne.n	80038d0 <StoreContext+0x1c>
+ 80038c0:	4b06      	ldr	r3, [pc, #24]	; (80038dc <StoreContext+0x28>)
+ 80038c2:	2200      	movs	r2, #0
+ 80038c4:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 80038c8:	4611      	mov	r1, r2
+ 80038ca:	2002      	movs	r0, #2
+ 80038cc:	f00f bf80 	b.w	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 80038d0:	3001      	adds	r0, #1
+ 80038d2:	d101      	bne.n	80038d8 <StoreContext+0x24>
+ 80038d4:	4b02      	ldr	r3, [pc, #8]	; (80038e0 <StoreContext+0x2c>)
+ 80038d6:	e7f4      	b.n	80038c2 <StoreContext+0xe>
+ 80038d8:	bd10      	pop	{r4, pc}
+ 80038da:	bf00      	nop
+ 80038dc:	080149b9 	.word	0x080149b9
+ 80038e0:	080149cf 	.word	0x080149cf
+
+080038e4 <OnJoinTimerLedEvent>:
+ 80038e4:	4770      	bx	lr
+
+080038e6 <OnRxTimerLedEvent>:
+ 80038e6:	4770      	bx	lr
+
+080038e8 <HAL_GPIO_EXTI_Callback>:
+ 80038e8:	2802      	cmp	r0, #2
+ 80038ea:	d00a      	beq.n	8003902 <HAL_GPIO_EXTI_Callback+0x1a>
+ 80038ec:	f5b0 6f80 	cmp.w	r0, #1024	; 0x400
+ 80038f0:	d00a      	beq.n	8003908 <HAL_GPIO_EXTI_Callback+0x20>
+ 80038f2:	2801      	cmp	r0, #1
+ 80038f4:	d10b      	bne.n	800390e <HAL_GPIO_EXTI_Callback+0x26>
+ 80038f6:	4b06      	ldr	r3, [pc, #24]	; (8003910 <HAL_GPIO_EXTI_Callback+0x28>)
+ 80038f8:	2100      	movs	r1, #0
+ 80038fa:	7018      	strb	r0, [r3, #0]
+ 80038fc:	2002      	movs	r0, #2
+ 80038fe:	f010 b87b 	b.w	80139f8 <UTIL_SEQ_SetTask>
+ 8003902:	2100      	movs	r1, #0
+ 8003904:	2008      	movs	r0, #8
+ 8003906:	e7fa      	b.n	80038fe <HAL_GPIO_EXTI_Callback+0x16>
+ 8003908:	4b02      	ldr	r3, [pc, #8]	; (8003914 <HAL_GPIO_EXTI_Callback+0x2c>)
+ 800390a:	2201      	movs	r2, #1
+ 800390c:	701a      	strb	r2, [r3, #0]
+ 800390e:	4770      	bx	lr
+ 8003910:	20000e4d 	.word	0x20000e4d
+ 8003914:	20000ec8 	.word	0x20000ec8
+
+08003918 <STS_SENSOR_Upload_Message>:
+ 8003918:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 800391a:	4605      	mov	r5, r0
+ 800391c:	460c      	mov	r4, r1
+ 800391e:	4616      	mov	r6, r2
+ 8003920:	f007 fe90 	bl	800b644 <LmHandlerIsBusy>
+ 8003924:	4603      	mov	r3, r0
+ 8003926:	2800      	cmp	r0, #0
+ 8003928:	d038      	beq.n	800399c <STS_SENSOR_Upload_Message+0x84>
+ 800392a:	2400      	movs	r4, #0
+ 800392c:	4826      	ldr	r0, [pc, #152]	; (80039c8 <STS_SENSOR_Upload_Message+0xb0>)
+ 800392e:	f010 fa7d 	bl	8013e2c <UTIL_TIMER_Stop>
+ 8003932:	4b26      	ldr	r3, [pc, #152]	; (80039cc <STS_SENSOR_Upload_Message+0xb4>)
+ 8003934:	4824      	ldr	r0, [pc, #144]	; (80039c8 <STS_SENSOR_Upload_Message+0xb0>)
+ 8003936:	6819      	ldr	r1, [r3, #0]
+ 8003938:	42a1      	cmp	r1, r4
+ 800393a:	bf38      	it	cc
+ 800393c:	4621      	movcc	r1, r4
+ 800393e:	f010 fafd 	bl	8013f3c <UTIL_TIMER_SetPeriod>
+ 8003942:	4821      	ldr	r0, [pc, #132]	; (80039c8 <STS_SENSOR_Upload_Message+0xb0>)
+ 8003944:	b002      	add	sp, #8
+ 8003946:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
+ 800394a:	f010 babd 	b.w	8013ec8 <UTIL_TIMER_Start>
+ 800394e:	684a      	ldr	r2, [r1, #4]
+ 8003950:	5cf0      	ldrb	r0, [r6, r3]
+ 8003952:	54d0      	strb	r0, [r2, r3]
+ 8003954:	3301      	adds	r3, #1
+ 8003956:	b2da      	uxtb	r2, r3
+ 8003958:	42a2      	cmp	r2, r4
+ 800395a:	d3f8      	bcc.n	800394e <STS_SENSOR_Upload_Message+0x36>
+ 800395c:	4b1c      	ldr	r3, [pc, #112]	; (80039d0 <STS_SENSOR_Upload_Message+0xb8>)
+ 800395e:	700d      	strb	r5, [r1, #0]
+ 8003960:	781b      	ldrb	r3, [r3, #0]
+ 8003962:	2b01      	cmp	r3, #1
+ 8003964:	bf88      	it	hi
+ 8003966:	2400      	movhi	r4, #0
+ 8003968:	704c      	strb	r4, [r1, #1]
+ 800396a:	4c1a      	ldr	r4, [pc, #104]	; (80039d4 <STS_SENSOR_Upload_Message+0xbc>)
+ 800396c:	7a63      	ldrb	r3, [r4, #9]
+ 800396e:	b133      	cbz	r3, 800397e <STS_SENSOR_Upload_Message+0x66>
+ 8003970:	f007 fd9a 	bl	800b4a8 <LmHandlerJoinStatus>
+ 8003974:	2801      	cmp	r0, #1
+ 8003976:	d102      	bne.n	800397e <STS_SENSOR_Upload_Message+0x66>
+ 8003978:	4620      	mov	r0, r4
+ 800397a:	f010 fa57 	bl	8013e2c <UTIL_TIMER_Stop>
+ 800397e:	4b16      	ldr	r3, [pc, #88]	; (80039d8 <STS_SENSOR_Upload_Message+0xc0>)
+ 8003980:	4816      	ldr	r0, [pc, #88]	; (80039dc <STS_SENSOR_Upload_Message+0xc4>)
+ 8003982:	78d9      	ldrb	r1, [r3, #3]
+ 8003984:	2200      	movs	r2, #0
+ 8003986:	f007 fe7b 	bl	800b680 <LmHandlerSend>
+ 800398a:	4604      	mov	r4, r0
+ 800398c:	b940      	cbnz	r0, 80039a0 <STS_SENSOR_Upload_Message+0x88>
+ 800398e:	2201      	movs	r2, #1
+ 8003990:	4601      	mov	r1, r0
+ 8003992:	4b13      	ldr	r3, [pc, #76]	; (80039e0 <STS_SENSOR_Upload_Message+0xc8>)
+ 8003994:	4610      	mov	r0, r2
+ 8003996:	f00f ff1b 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 800399a:	e7c7      	b.n	800392c <STS_SENSOR_Upload_Message+0x14>
+ 800399c:	490f      	ldr	r1, [pc, #60]	; (80039dc <STS_SENSOR_Upload_Message+0xc4>)
+ 800399e:	e7da      	b.n	8003956 <STS_SENSOR_Upload_Message+0x3e>
+ 80039a0:	3406      	adds	r4, #6
+ 80039a2:	d1c2      	bne.n	800392a <STS_SENSOR_Upload_Message+0x12>
+ 80039a4:	f007 fd7a 	bl	800b49c <LmHandlerGetDutyCycleWaitTime>
+ 80039a8:	4604      	mov	r4, r0
+ 80039aa:	2800      	cmp	r0, #0
+ 80039ac:	d0be      	beq.n	800392c <STS_SENSOR_Upload_Message+0x14>
+ 80039ae:	2201      	movs	r2, #1
+ 80039b0:	f44f 737a 	mov.w	r3, #1000	; 0x3e8
+ 80039b4:	2100      	movs	r1, #0
+ 80039b6:	fbb0 f3f3 	udiv	r3, r0, r3
+ 80039ba:	4610      	mov	r0, r2
+ 80039bc:	9300      	str	r3, [sp, #0]
+ 80039be:	4b09      	ldr	r3, [pc, #36]	; (80039e4 <STS_SENSOR_Upload_Message+0xcc>)
+ 80039c0:	f00f ff06 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 80039c4:	e7b2      	b.n	800392c <STS_SENSOR_Upload_Message+0x14>
+ 80039c6:	bf00      	nop
+ 80039c8:	20000d9c 	.word	0x20000d9c
+ 80039cc:	20000074 	.word	0x20000074
+ 80039d0:	20000c44 	.word	0x20000c44
+ 80039d4:	20000d38 	.word	0x20000d38
+ 80039d8:	2000005c 	.word	0x2000005c
+ 80039dc:	20000004 	.word	0x20000004
+ 80039e0:	0801482b 	.word	0x0801482b
+ 80039e4:	0801483a 	.word	0x0801483a
+
+080039e8 <STS_SENSOR_Upload_Config_Invalid_Message>:
+ 80039e8:	4b04      	ldr	r3, [pc, #16]	; (80039fc <STS_SENSOR_Upload_Config_Invalid_Message+0x14>)
+ 80039ea:	781b      	ldrb	r3, [r3, #0]
+ 80039ec:	b923      	cbnz	r3, 80039f8 <STS_SENSOR_Upload_Config_Invalid_Message+0x10>
+ 80039ee:	4a04      	ldr	r2, [pc, #16]	; (8003a00 <STS_SENSOR_Upload_Config_Invalid_Message+0x18>)
+ 80039f0:	2105      	movs	r1, #5
+ 80039f2:	2001      	movs	r0, #1
+ 80039f4:	f7ff bf90 	b.w	8003918 <STS_SENSOR_Upload_Message>
+ 80039f8:	4770      	bx	lr
+ 80039fa:	bf00      	nop
+ 80039fc:	20000c44 	.word	0x20000c44
+ 8003a00:	080149e7 	.word	0x080149e7
+
+08003a04 <OnStoreSTSCFGContextRequest>:
+ 8003a04:	b510      	push	{r4, lr}
+ 8003a06:	2400      	movs	r4, #0
+ 8003a08:	b090      	sub	sp, #64	; 0x40
+ 8003a0a:	223c      	movs	r2, #60	; 0x3c
+ 8003a0c:	4621      	mov	r1, r4
+ 8003a0e:	a801      	add	r0, sp, #4
+ 8003a10:	9400      	str	r4, [sp, #0]
+ 8003a12:	f010 fc1d 	bl	8014250 <memset>
+ 8003a16:	4b2c      	ldr	r3, [pc, #176]	; (8003ac8 <OnStoreSTSCFGContextRequest+0xc4>)
+ 8003a18:	2220      	movs	r2, #32
+ 8003a1a:	72da      	strb	r2, [r3, #11]
+ 8003a1c:	7819      	ldrb	r1, [r3, #0]
+ 8003a1e:	f88d 1000 	strb.w	r1, [sp]
+ 8003a22:	7859      	ldrb	r1, [r3, #1]
+ 8003a24:	f88d 1001 	strb.w	r1, [sp, #1]
+ 8003a28:	7899      	ldrb	r1, [r3, #2]
+ 8003a2a:	f88d 1002 	strb.w	r1, [sp, #2]
+ 8003a2e:	78d9      	ldrb	r1, [r3, #3]
+ 8003a30:	f88d 1003 	strb.w	r1, [sp, #3]
+ 8003a34:	7919      	ldrb	r1, [r3, #4]
+ 8003a36:	f88d 1004 	strb.w	r1, [sp, #4]
+ 8003a3a:	7959      	ldrb	r1, [r3, #5]
+ 8003a3c:	f88d 1005 	strb.w	r1, [sp, #5]
+ 8003a40:	7999      	ldrb	r1, [r3, #6]
+ 8003a42:	f88d 1006 	strb.w	r1, [sp, #6]
+ 8003a46:	79d9      	ldrb	r1, [r3, #7]
+ 8003a48:	f88d 1007 	strb.w	r1, [sp, #7]
+ 8003a4c:	7a19      	ldrb	r1, [r3, #8]
+ 8003a4e:	f88d 1008 	strb.w	r1, [sp, #8]
+ 8003a52:	7a59      	ldrb	r1, [r3, #9]
+ 8003a54:	f88d 1009 	strb.w	r1, [sp, #9]
+ 8003a58:	7a99      	ldrb	r1, [r3, #10]
+ 8003a5a:	f88d 100a 	strb.w	r1, [sp, #10]
+ 8003a5e:	f88d 200b 	strb.w	r2, [sp, #11]
+ 8003a62:	4621      	mov	r1, r4
+ 8003a64:	f10d 020b 	add.w	r2, sp, #11
+ 8003a68:	1858      	adds	r0, r3, r1
+ 8003a6a:	3101      	adds	r1, #1
+ 8003a6c:	7b00      	ldrb	r0, [r0, #12]
+ 8003a6e:	f802 0f01 	strb.w	r0, [r2, #1]!
+ 8003a72:	291c      	cmp	r1, #28
+ 8003a74:	d1f8      	bne.n	8003a68 <OnStoreSTSCFGContextRequest+0x64>
+ 8003a76:	f893 2028 	ldrb.w	r2, [r3, #40]	; 0x28
+ 8003a7a:	f88d 2028 	strb.w	r2, [sp, #40]	; 0x28
+ 8003a7e:	f893 2029 	ldrb.w	r2, [r3, #41]	; 0x29
+ 8003a82:	f88d 2029 	strb.w	r2, [sp, #41]	; 0x29
+ 8003a86:	f893 202a 	ldrb.w	r2, [r3, #42]	; 0x2a
+ 8003a8a:	f88d 202a 	strb.w	r2, [sp, #42]	; 0x2a
+ 8003a8e:	f893 202b 	ldrb.w	r2, [r3, #43]	; 0x2b
+ 8003a92:	f88d 202b 	strb.w	r2, [sp, #43]	; 0x2b
+ 8003a96:	f10d 012b 	add.w	r1, sp, #43	; 0x2b
+ 8003a9a:	2200      	movs	r2, #0
+ 8003a9c:	1898      	adds	r0, r3, r2
+ 8003a9e:	3201      	adds	r2, #1
+ 8003aa0:	f890 002c 	ldrb.w	r0, [r0, #44]	; 0x2c
+ 8003aa4:	f801 0f01 	strb.w	r0, [r1, #1]!
+ 8003aa8:	2a14      	cmp	r2, #20
+ 8003aaa:	d1f7      	bne.n	8003a9c <OnStoreSTSCFGContextRequest+0x98>
+ 8003aac:	4807      	ldr	r0, [pc, #28]	; (8003acc <OnStoreSTSCFGContextRequest+0xc8>)
+ 8003aae:	f44f 6100 	mov.w	r1, #2048	; 0x800
+ 8003ab2:	f7fe fc5b 	bl	800236c <FLASH_IF_Erase>
+ 8003ab6:	b920      	cbnz	r0, 8003ac2 <OnStoreSTSCFGContextRequest+0xbe>
+ 8003ab8:	4804      	ldr	r0, [pc, #16]	; (8003acc <OnStoreSTSCFGContextRequest+0xc8>)
+ 8003aba:	2240      	movs	r2, #64	; 0x40
+ 8003abc:	4669      	mov	r1, sp
+ 8003abe:	f7fe fb57 	bl	8002170 <FLASH_IF_Write>
+ 8003ac2:	b010      	add	sp, #64	; 0x40
+ 8003ac4:	bd10      	pop	{r4, pc}
+ 8003ac6:	bf00      	nop
+ 8003ac8:	20000078 	.word	0x20000078
+ 8003acc:	0803f800 	.word	0x0803f800
+
+08003ad0 <OnRestoreSTSCFGContextRequest>:
+ 8003ad0:	4901      	ldr	r1, [pc, #4]	; (8003ad8 <OnRestoreSTSCFGContextRequest+0x8>)
+ 8003ad2:	2240      	movs	r2, #64	; 0x40
+ 8003ad4:	f00f bf84 	b.w	80139e0 <UTIL_MEM_cpy_8>
+ 8003ad8:	0803f800 	.word	0x0803f800
+
+08003adc <OnRestoreSTSCFGContextProcess>:
+ 8003adc:	b510      	push	{r4, lr}
+ 8003ade:	4c23      	ldr	r4, [pc, #140]	; (8003b6c <OnRestoreSTSCFGContextProcess+0x90>)
+ 8003ae0:	7920      	ldrb	r0, [r4, #4]
+ 8003ae2:	7963      	ldrb	r3, [r4, #5]
+ 8003ae4:	2b4d      	cmp	r3, #77	; 0x4d
+ 8003ae6:	b2c0      	uxtb	r0, r0
+ 8003ae8:	d12f      	bne.n	8003b4a <OnRestoreSTSCFGContextProcess+0x6e>
+ 8003aea:	ebc0 1000 	rsb	r0, r0, r0, lsl #4
+ 8003aee:	0080      	lsls	r0, r0, #2
+ 8003af0:	280a      	cmp	r0, #10
+ 8003af2:	bf38      	it	cc
+ 8003af4:	200a      	movcc	r0, #10
+ 8003af6:	f44f 737a 	mov.w	r3, #1000	; 0x3e8
+ 8003afa:	4358      	muls	r0, r3
+ 8003afc:	4b1c      	ldr	r3, [pc, #112]	; (8003b70 <OnRestoreSTSCFGContextProcess+0x94>)
+ 8003afe:	6018      	str	r0, [r3, #0]
+ 8003b00:	f7ff fc66 	bl	80033d0 <OnTxPeriodicityChanged>
+ 8003b04:	79a0      	ldrb	r0, [r4, #6]
+ 8003b06:	79e3      	ldrb	r3, [r4, #7]
+ 8003b08:	2b4d      	cmp	r3, #77	; 0x4d
+ 8003b0a:	b2c0      	uxtb	r0, r0
+ 8003b0c:	d125      	bne.n	8003b5a <OnRestoreSTSCFGContextProcess+0x7e>
+ 8003b0e:	ebc0 1000 	rsb	r0, r0, r0, lsl #4
+ 8003b12:	0080      	lsls	r0, r0, #2
+ 8003b14:	2801      	cmp	r0, #1
+ 8003b16:	f44f 737a 	mov.w	r3, #1000	; 0x3e8
+ 8003b1a:	bf38      	it	cc
+ 8003b1c:	2001      	movcc	r0, #1
+ 8003b1e:	4358      	muls	r0, r3
+ 8003b20:	f7ff fc78 	bl	8003414 <OnYunhornSTSHeartBeatPeriodicityChanged>
+ 8003b24:	7a23      	ldrb	r3, [r4, #8]
+ 8003b26:	4a13      	ldr	r2, [pc, #76]	; (8003b74 <OnRestoreSTSCFGContextProcess+0x98>)
+ 8003b28:	4913      	ldr	r1, [pc, #76]	; (8003b78 <OnRestoreSTSCFGContextProcess+0x9c>)
+ 8003b2a:	b2db      	uxtb	r3, r3
+ 8003b2c:	7013      	strb	r3, [r2, #0]
+ 8003b2e:	7a63      	ldrb	r3, [r4, #9]
+ 8003b30:	4a12      	ldr	r2, [pc, #72]	; (8003b7c <OnRestoreSTSCFGContextProcess+0xa0>)
+ 8003b32:	b2db      	uxtb	r3, r3
+ 8003b34:	7013      	strb	r3, [r2, #0]
+ 8003b36:	2300      	movs	r3, #0
+ 8003b38:	18e2      	adds	r2, r4, r3
+ 8003b3a:	f892 202c 	ldrb.w	r2, [r2, #44]	; 0x2c
+ 8003b3e:	b2d2      	uxtb	r2, r2
+ 8003b40:	54ca      	strb	r2, [r1, r3]
+ 8003b42:	3301      	adds	r3, #1
+ 8003b44:	2b14      	cmp	r3, #20
+ 8003b46:	d1f7      	bne.n	8003b38 <OnRestoreSTSCFGContextProcess+0x5c>
+ 8003b48:	bd10      	pop	{r4, pc}
+ 8003b4a:	7963      	ldrb	r3, [r4, #5]
+ 8003b4c:	2b48      	cmp	r3, #72	; 0x48
+ 8003b4e:	bf0a      	itet	eq
+ 8003b50:	f44f 6361 	moveq.w	r3, #3600	; 0xe10
+ 8003b54:	7963      	ldrbne	r3, [r4, #5]
+ 8003b56:	4358      	muleq	r0, r3
+ 8003b58:	e7ca      	b.n	8003af0 <OnRestoreSTSCFGContextProcess+0x14>
+ 8003b5a:	79e3      	ldrb	r3, [r4, #7]
+ 8003b5c:	2b48      	cmp	r3, #72	; 0x48
+ 8003b5e:	bf0a      	itet	eq
+ 8003b60:	f44f 6361 	moveq.w	r3, #3600	; 0xe10
+ 8003b64:	79e3      	ldrbne	r3, [r4, #7]
+ 8003b66:	4358      	muleq	r0, r3
+ 8003b68:	e7d4      	b.n	8003b14 <OnRestoreSTSCFGContextProcess+0x38>
+ 8003b6a:	bf00      	nop
+ 8003b6c:	20000078 	.word	0x20000078
+ 8003b70:	20000074 	.word	0x20000074
+ 8003b74:	20000e62 	.word	0x20000e62
+ 8003b78:	20000e4e 	.word	0x20000e4e
+ 8003b7c:	20000c44 	.word	0x20000c44
+
+08003b80 <STS_REBOOT_CONFIG_Init>:
+ 8003b80:	b510      	push	{r4, lr}
+ 8003b82:	b090      	sub	sp, #64	; 0x40
+ 8003b84:	2100      	movs	r1, #0
+ 8003b86:	223c      	movs	r2, #60	; 0x3c
+ 8003b88:	a801      	add	r0, sp, #4
+ 8003b8a:	9100      	str	r1, [sp, #0]
+ 8003b8c:	f010 fb60 	bl	8014250 <memset>
+ 8003b90:	2240      	movs	r2, #64	; 0x40
+ 8003b92:	4937      	ldr	r1, [pc, #220]	; (8003c70 <STS_REBOOT_CONFIG_Init+0xf0>)
+ 8003b94:	4668      	mov	r0, sp
+ 8003b96:	f00f ff23 	bl	80139e0 <UTIL_MEM_cpy_8>
+ 8003b9a:	f89d 2000 	ldrb.w	r2, [sp]
+ 8003b9e:	b93a      	cbnz	r2, 8003bb0 <STS_REBOOT_CONFIG_Init+0x30>
+ 8003ba0:	f89d 0001 	ldrb.w	r0, [sp, #1]
+ 8003ba4:	2810      	cmp	r0, #16
+ 8003ba6:	d103      	bne.n	8003bb0 <STS_REBOOT_CONFIG_Init+0x30>
+ 8003ba8:	f89d 1002 	ldrb.w	r1, [sp, #2]
+ 8003bac:	2901      	cmp	r1, #1
+ 8003bae:	d014      	beq.n	8003bda <STS_REBOOT_CONFIG_Init+0x5a>
+ 8003bb0:	2200      	movs	r2, #0
+ 8003bb2:	4611      	mov	r1, r2
+ 8003bb4:	4b2f      	ldr	r3, [pc, #188]	; (8003c74 <STS_REBOOT_CONFIG_Init+0xf4>)
+ 8003bb6:	2001      	movs	r0, #1
+ 8003bb8:	f00f fe0a 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8003bbc:	f7ff ff22 	bl	8003a04 <OnStoreSTSCFGContextRequest>
+ 8003bc0:	482d      	ldr	r0, [pc, #180]	; (8003c78 <STS_REBOOT_CONFIG_Init+0xf8>)
+ 8003bc2:	2214      	movs	r2, #20
+ 8003bc4:	2100      	movs	r1, #0
+ 8003bc6:	f00f ff15 	bl	80139f4 <UTIL_MEM_set_8>
+ 8003bca:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
+ 8003bce:	f7fe ffc5 	bl	8002b5c <HAL_Delay>
+ 8003bd2:	f7ff ff83 	bl	8003adc <OnRestoreSTSCFGContextProcess>
+ 8003bd6:	b010      	add	sp, #64	; 0x40
+ 8003bd8:	bd10      	pop	{r4, pc}
+ 8003bda:	4b28      	ldr	r3, [pc, #160]	; (8003c7c <STS_REBOOT_CONFIG_Init+0xfc>)
+ 8003bdc:	701a      	strb	r2, [r3, #0]
+ 8003bde:	7058      	strb	r0, [r3, #1]
+ 8003be0:	7099      	strb	r1, [r3, #2]
+ 8003be2:	f89d 1003 	ldrb.w	r1, [sp, #3]
+ 8003be6:	70d9      	strb	r1, [r3, #3]
+ 8003be8:	f89d 1004 	ldrb.w	r1, [sp, #4]
+ 8003bec:	7119      	strb	r1, [r3, #4]
+ 8003bee:	f89d 1005 	ldrb.w	r1, [sp, #5]
+ 8003bf2:	7159      	strb	r1, [r3, #5]
+ 8003bf4:	f89d 1006 	ldrb.w	r1, [sp, #6]
+ 8003bf8:	7199      	strb	r1, [r3, #6]
+ 8003bfa:	f89d 1007 	ldrb.w	r1, [sp, #7]
+ 8003bfe:	71d9      	strb	r1, [r3, #7]
+ 8003c00:	f89d 1008 	ldrb.w	r1, [sp, #8]
+ 8003c04:	7219      	strb	r1, [r3, #8]
+ 8003c06:	f89d 1009 	ldrb.w	r1, [sp, #9]
+ 8003c0a:	7259      	strb	r1, [r3, #9]
+ 8003c0c:	f89d 100a 	ldrb.w	r1, [sp, #10]
+ 8003c10:	7299      	strb	r1, [r3, #10]
+ 8003c12:	f89d 100b 	ldrb.w	r1, [sp, #11]
+ 8003c16:	f001 013f 	and.w	r1, r1, #63	; 0x3f
+ 8003c1a:	72d9      	strb	r1, [r3, #11]
+ 8003c1c:	7ad8      	ldrb	r0, [r3, #11]
+ 8003c1e:	b2d1      	uxtb	r1, r2
+ 8003c20:	4288      	cmp	r0, r1
+ 8003c22:	d81b      	bhi.n	8003c5c <STS_REBOOT_CONFIG_Init+0xdc>
+ 8003c24:	f89d 2028 	ldrb.w	r2, [sp, #40]	; 0x28
+ 8003c28:	f883 2028 	strb.w	r2, [r3, #40]	; 0x28
+ 8003c2c:	f89d 2029 	ldrb.w	r2, [sp, #41]	; 0x29
+ 8003c30:	f883 2029 	strb.w	r2, [r3, #41]	; 0x29
+ 8003c34:	f89d 202a 	ldrb.w	r2, [sp, #42]	; 0x2a
+ 8003c38:	f883 202a 	strb.w	r2, [r3, #42]	; 0x2a
+ 8003c3c:	f89d 202b 	ldrb.w	r2, [sp, #43]	; 0x2b
+ 8003c40:	f883 202b 	strb.w	r2, [r3, #43]	; 0x2b
+ 8003c44:	f10d 012b 	add.w	r1, sp, #43	; 0x2b
+ 8003c48:	2200      	movs	r2, #0
+ 8003c4a:	1898      	adds	r0, r3, r2
+ 8003c4c:	3201      	adds	r2, #1
+ 8003c4e:	f811 4f01 	ldrb.w	r4, [r1, #1]!
+ 8003c52:	f880 402c 	strb.w	r4, [r0, #44]	; 0x2c
+ 8003c56:	2a14      	cmp	r2, #20
+ 8003c58:	d1f7      	bne.n	8003c4a <STS_REBOOT_CONFIG_Init+0xca>
+ 8003c5a:	e7ba      	b.n	8003bd2 <STS_REBOOT_CONFIG_Init+0x52>
+ 8003c5c:	f101 0040 	add.w	r0, r1, #64	; 0x40
+ 8003c60:	4468      	add	r0, sp
+ 8003c62:	4419      	add	r1, r3
+ 8003c64:	f810 0c34 	ldrb.w	r0, [r0, #-52]
+ 8003c68:	7308      	strb	r0, [r1, #12]
+ 8003c6a:	3201      	adds	r2, #1
+ 8003c6c:	e7d6      	b.n	8003c1c <STS_REBOOT_CONFIG_Init+0x9c>
+ 8003c6e:	bf00      	nop
+ 8003c70:	0803f800 	.word	0x0803f800
+ 8003c74:	080149ed 	.word	0x080149ed
+ 8003c78:	20000e4e 	.word	0x20000e4e
+ 8003c7c:	20000078 	.word	0x20000078
+
+08003c80 <LoRaWAN_Init>:
+ 8003c80:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8003c82:	2306      	movs	r3, #6
+ 8003c84:	b08b      	sub	sp, #44	; 0x2c
+ 8003c86:	221c      	movs	r2, #28
+ 8003c88:	2400      	movs	r4, #0
+ 8003c8a:	2501      	movs	r5, #1
+ 8003c8c:	e9cd 3206 	strd	r3, r2, [sp, #24]
+ 8003c90:	2703      	movs	r7, #3
+ 8003c92:	2310      	movs	r3, #16
+ 8003c94:	2117      	movs	r1, #23
+ 8003c96:	e9cd 3104 	strd	r3, r1, [sp, #16]
+ 8003c9a:	4622      	mov	r2, r4
+ 8003c9c:	4b5f      	ldr	r3, [pc, #380]	; (8003e1c <LoRaWAN_Init+0x19c>)
+ 8003c9e:	9403      	str	r4, [sp, #12]
+ 8003ca0:	4621      	mov	r1, r4
+ 8003ca2:	e9cd 5501 	strd	r5, r5, [sp, #4]
+ 8003ca6:	9700      	str	r7, [sp, #0]
+ 8003ca8:	2002      	movs	r0, #2
+ 8003caa:	9409      	str	r4, [sp, #36]	; 0x24
+ 8003cac:	f00f fd90 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8003cb0:	4b5b      	ldr	r3, [pc, #364]	; (8003e20 <LoRaWAN_Init+0x1a0>)
+ 8003cb2:	9500      	str	r5, [sp, #0]
+ 8003cb4:	4622      	mov	r2, r4
+ 8003cb6:	4621      	mov	r1, r4
+ 8003cb8:	e9cd 7401 	strd	r7, r4, [sp, #4]
+ 8003cbc:	2002      	movs	r0, #2
+ 8003cbe:	f00f fd87 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8003cc2:	2602      	movs	r6, #2
+ 8003cc4:	2305      	movs	r3, #5
+ 8003cc6:	e9cd 6300 	strd	r6, r3, [sp]
+ 8003cca:	4622      	mov	r2, r4
+ 8003ccc:	4b55      	ldr	r3, [pc, #340]	; (8003e24 <LoRaWAN_Init+0x1a4>)
+ 8003cce:	9402      	str	r4, [sp, #8]
+ 8003cd0:	4621      	mov	r1, r4
+ 8003cd2:	4630      	mov	r0, r6
+ 8003cd4:	f00f fd7c 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8003cd8:	4b53      	ldr	r3, [pc, #332]	; (8003e28 <LoRaWAN_Init+0x1a8>)
+ 8003cda:	9500      	str	r5, [sp, #0]
+ 8003cdc:	4622      	mov	r2, r4
+ 8003cde:	4621      	mov	r1, r4
+ 8003ce0:	e9cd 7401 	strd	r7, r4, [sp, #4]
+ 8003ce4:	4630      	mov	r0, r6
+ 8003ce6:	f00f fd73 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8003cea:	a909      	add	r1, sp, #36	; 0x24
+ 8003cec:	4620      	mov	r0, r4
+ 8003cee:	f007 ff53 	bl	800bb98 <LmHandlerGetVersion>
+ 8003cf2:	9b09      	ldr	r3, [sp, #36]	; 0x24
+ 8003cf4:	f3c3 2207 	ubfx	r2, r3, #8, #8
+ 8003cf8:	9202      	str	r2, [sp, #8]
+ 8003cfa:	f3c3 4207 	ubfx	r2, r3, #16, #8
+ 8003cfe:	0e1b      	lsrs	r3, r3, #24
+ 8003d00:	9201      	str	r2, [sp, #4]
+ 8003d02:	9300      	str	r3, [sp, #0]
+ 8003d04:	4622      	mov	r2, r4
+ 8003d06:	4b49      	ldr	r3, [pc, #292]	; (8003e2c <LoRaWAN_Init+0x1ac>)
+ 8003d08:	4621      	mov	r1, r4
+ 8003d0a:	4630      	mov	r0, r6
+ 8003d0c:	f00f fd60 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8003d10:	a909      	add	r1, sp, #36	; 0x24
+ 8003d12:	4628      	mov	r0, r5
+ 8003d14:	f007 ff40 	bl	800bb98 <LmHandlerGetVersion>
+ 8003d18:	9b09      	ldr	r3, [sp, #36]	; 0x24
+ 8003d1a:	b2da      	uxtb	r2, r3
+ 8003d1c:	9203      	str	r2, [sp, #12]
+ 8003d1e:	f3c3 2207 	ubfx	r2, r3, #8, #8
+ 8003d22:	9202      	str	r2, [sp, #8]
+ 8003d24:	f3c3 4207 	ubfx	r2, r3, #16, #8
+ 8003d28:	0e1b      	lsrs	r3, r3, #24
+ 8003d2a:	9201      	str	r2, [sp, #4]
+ 8003d2c:	9300      	str	r3, [sp, #0]
+ 8003d2e:	4622      	mov	r2, r4
+ 8003d30:	4b3f      	ldr	r3, [pc, #252]	; (8003e30 <LoRaWAN_Init+0x1b0>)
+ 8003d32:	4621      	mov	r1, r4
+ 8003d34:	4630      	mov	r0, r6
+ 8003d36:	f00f fd4b 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8003d3a:	4b3e      	ldr	r3, [pc, #248]	; (8003e34 <LoRaWAN_Init+0x1b4>)
+ 8003d3c:	483e      	ldr	r0, [pc, #248]	; (8003e38 <LoRaWAN_Init+0x1b8>)
+ 8003d3e:	9400      	str	r4, [sp, #0]
+ 8003d40:	4622      	mov	r2, r4
+ 8003d42:	f44f 71fa 	mov.w	r1, #500	; 0x1f4
+ 8003d46:	f010 f813 	bl	8013d70 <UTIL_TIMER_Create>
+ 8003d4a:	4b3c      	ldr	r3, [pc, #240]	; (8003e3c <LoRaWAN_Init+0x1bc>)
+ 8003d4c:	483c      	ldr	r0, [pc, #240]	; (8003e40 <LoRaWAN_Init+0x1c0>)
+ 8003d4e:	9400      	str	r4, [sp, #0]
+ 8003d50:	4622      	mov	r2, r4
+ 8003d52:	f44f 71fa 	mov.w	r1, #500	; 0x1f4
+ 8003d56:	f010 f80b 	bl	8013d70 <UTIL_TIMER_Create>
+ 8003d5a:	4b3a      	ldr	r3, [pc, #232]	; (8003e44 <LoRaWAN_Init+0x1c4>)
+ 8003d5c:	483a      	ldr	r0, [pc, #232]	; (8003e48 <LoRaWAN_Init+0x1c8>)
+ 8003d5e:	9400      	str	r4, [sp, #0]
+ 8003d60:	462a      	mov	r2, r5
+ 8003d62:	f44f 71fa 	mov.w	r1, #500	; 0x1f4
+ 8003d66:	f010 f803 	bl	8013d70 <UTIL_TIMER_Create>
+ 8003d6a:	4620      	mov	r0, r4
+ 8003d6c:	f7fe f9fa 	bl	8002164 <FLASH_IF_Init>
+ 8003d70:	b108      	cbz	r0, 8003d76 <LoRaWAN_Init+0xf6>
+ 8003d72:	f7fe fc97 	bl	80026a4 <Error_Handler>
+ 8003d76:	4b35      	ldr	r3, [pc, #212]	; (8003e4c <LoRaWAN_Init+0x1cc>)
+ 8003d78:	9400      	str	r4, [sp, #0]
+ 8003d7a:	2200      	movs	r2, #0
+ 8003d7c:	f44f 61fa 	mov.w	r1, #2000	; 0x7d0
+ 8003d80:	4833      	ldr	r0, [pc, #204]	; (8003e50 <LoRaWAN_Init+0x1d0>)
+ 8003d82:	f00f fff5 	bl	8013d70 <UTIL_TIMER_Create>
+ 8003d86:	4a33      	ldr	r2, [pc, #204]	; (8003e54 <LoRaWAN_Init+0x1d4>)
+ 8003d88:	2100      	movs	r1, #0
+ 8003d8a:	2001      	movs	r0, #1
+ 8003d8c:	f00f fef0 	bl	8013b70 <UTIL_SEQ_RegTask>
+ 8003d90:	4a31      	ldr	r2, [pc, #196]	; (8003e58 <LoRaWAN_Init+0x1d8>)
+ 8003d92:	2100      	movs	r1, #0
+ 8003d94:	2002      	movs	r0, #2
+ 8003d96:	f00f feeb 	bl	8013b70 <UTIL_SEQ_RegTask>
+ 8003d9a:	4a30      	ldr	r2, [pc, #192]	; (8003e5c <LoRaWAN_Init+0x1dc>)
+ 8003d9c:	2100      	movs	r1, #0
+ 8003d9e:	2004      	movs	r0, #4
+ 8003da0:	f00f fee6 	bl	8013b70 <UTIL_SEQ_RegTask>
+ 8003da4:	4a2e      	ldr	r2, [pc, #184]	; (8003e60 <LoRaWAN_Init+0x1e0>)
+ 8003da6:	2100      	movs	r1, #0
+ 8003da8:	2008      	movs	r0, #8
+ 8003daa:	f00f fee1 	bl	8013b70 <UTIL_SEQ_RegTask>
+ 8003dae:	f000 fc07 	bl	80045c0 <LoraInfo_Init>
+ 8003db2:	492c      	ldr	r1, [pc, #176]	; (8003e64 <LoRaWAN_Init+0x1e4>)
+ 8003db4:	482c      	ldr	r0, [pc, #176]	; (8003e68 <LoRaWAN_Init+0x1e8>)
+ 8003db6:	f007 feb1 	bl	800bb1c <LmHandlerInit>
+ 8003dba:	482c      	ldr	r0, [pc, #176]	; (8003e6c <LoRaWAN_Init+0x1ec>)
+ 8003dbc:	f007 fda4 	bl	800b908 <LmHandlerConfigure>
+ 8003dc0:	4821      	ldr	r0, [pc, #132]	; (8003e48 <LoRaWAN_Init+0x1c8>)
+ 8003dc2:	f010 f881 	bl	8013ec8 <UTIL_TIMER_Start>
+ 8003dc6:	4b2a      	ldr	r3, [pc, #168]	; (8003e70 <LoRaWAN_Init+0x1f0>)
+ 8003dc8:	2100      	movs	r1, #0
+ 8003dca:	7818      	ldrb	r0, [r3, #0]
+ 8003dcc:	f007 fbca 	bl	800b564 <LmHandlerJoin>
+ 8003dd0:	4928      	ldr	r1, [pc, #160]	; (8003e74 <LoRaWAN_Init+0x1f4>)
+ 8003dd2:	9400      	str	r4, [sp, #0]
+ 8003dd4:	4b28      	ldr	r3, [pc, #160]	; (8003e78 <LoRaWAN_Init+0x1f8>)
+ 8003dd6:	6809      	ldr	r1, [r1, #0]
+ 8003dd8:	4828      	ldr	r0, [pc, #160]	; (8003e7c <LoRaWAN_Init+0x1fc>)
+ 8003dda:	2200      	movs	r2, #0
+ 8003ddc:	f00f ffc8 	bl	8013d70 <UTIL_TIMER_Create>
+ 8003de0:	4826      	ldr	r0, [pc, #152]	; (8003e7c <LoRaWAN_Init+0x1fc>)
+ 8003de2:	f010 f871 	bl	8013ec8 <UTIL_TIMER_Start>
+ 8003de6:	f7ff fecb 	bl	8003b80 <STS_REBOOT_CONFIG_Init>
+ 8003dea:	4a25      	ldr	r2, [pc, #148]	; (8003e80 <LoRaWAN_Init+0x200>)
+ 8003dec:	2100      	movs	r1, #0
+ 8003dee:	2010      	movs	r0, #16
+ 8003df0:	f00f febe 	bl	8013b70 <UTIL_SEQ_RegTask>
+ 8003df4:	4a23      	ldr	r2, [pc, #140]	; (8003e84 <LoRaWAN_Init+0x204>)
+ 8003df6:	2100      	movs	r1, #0
+ 8003df8:	f44f 7080 	mov.w	r0, #256	; 0x100
+ 8003dfc:	f00f feb8 	bl	8013b70 <UTIL_SEQ_RegTask>
+ 8003e00:	4b21      	ldr	r3, [pc, #132]	; (8003e88 <LoRaWAN_Init+0x208>)
+ 8003e02:	4822      	ldr	r0, [pc, #136]	; (8003e8c <LoRaWAN_Init+0x20c>)
+ 8003e04:	6819      	ldr	r1, [r3, #0]
+ 8003e06:	4b22      	ldr	r3, [pc, #136]	; (8003e90 <LoRaWAN_Init+0x210>)
+ 8003e08:	9400      	str	r4, [sp, #0]
+ 8003e0a:	2200      	movs	r2, #0
+ 8003e0c:	f00f ffb0 	bl	8013d70 <UTIL_TIMER_Create>
+ 8003e10:	481e      	ldr	r0, [pc, #120]	; (8003e8c <LoRaWAN_Init+0x20c>)
+ 8003e12:	f010 f859 	bl	8013ec8 <UTIL_TIMER_Start>
+ 8003e16:	b00b      	add	sp, #44	; 0x2c
+ 8003e18:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8003e1a:	bf00      	nop
+ 8003e1c:	08014a2f 	.word	0x08014a2f
+ 8003e20:	08014a76 	.word	0x08014a76
+ 8003e24:	08014a97 	.word	0x08014a97
+ 8003e28:	08014ab8 	.word	0x08014ab8
+ 8003e2c:	08014ad9 	.word	0x08014ad9
+ 8003e30:	08014afa 	.word	0x08014afa
+ 8003e34:	080032d1 	.word	0x080032d1
+ 8003e38:	20000d84 	.word	0x20000d84
+ 8003e3c:	080038e7 	.word	0x080038e7
+ 8003e40:	20000d50 	.word	0x20000d50
+ 8003e44:	080038e5 	.word	0x080038e5
+ 8003e48:	20000d38 	.word	0x20000d38
+ 8003e4c:	08003869 	.word	0x08003869
+ 8003e50:	20000d6c 	.word	0x20000d6c
+ 8003e54:	0800b461 	.word	0x0800b461
+ 8003e58:	08003509 	.word	0x08003509
+ 8003e5c:	080038b5 	.word	0x080038b5
+ 8003e60:	08003491 	.word	0x08003491
+ 8003e64:	01030000 	.word	0x01030000
+ 8003e68:	20000010 	.word	0x20000010
+ 8003e6c:	2000005c 	.word	0x2000005c
+ 8003e70:	20000000 	.word	0x20000000
+ 8003e74:	20000074 	.word	0x20000074
+ 8003e78:	08003311 	.word	0x08003311
+ 8003e7c:	20000d9c 	.word	0x20000d9c
+ 8003e80:	080031c9 	.word	0x080031c9
+ 8003e84:	0800323d 	.word	0x0800323d
+ 8003e88:	2000000c 	.word	0x2000000c
+ 8003e8c:	20000db4 	.word	0x20000db4
+ 8003e90:	08003815 	.word	0x08003815
+
+08003e94 <STS_SENSOR_Function_Test_Process>:
+ 8003e94:	b510      	push	{r4, lr}
+ 8003e96:	2400      	movs	r4, #0
+ 8003e98:	b0a2      	sub	sp, #136	; 0x88
+ 8003e9a:	227c      	movs	r2, #124	; 0x7c
+ 8003e9c:	4621      	mov	r1, r4
+ 8003e9e:	a803      	add	r0, sp, #12
+ 8003ea0:	9402      	str	r4, [sp, #8]
+ 8003ea2:	f010 f9d5 	bl	8014250 <memset>
+ 8003ea6:	2353      	movs	r3, #83	; 0x53
+ 8003ea8:	f88d 3008 	strb.w	r3, [sp, #8]
+ 8003eac:	f44f 7388 	mov.w	r3, #272	; 0x110
+ 8003eb0:	f8ad 300a 	strh.w	r3, [sp, #10]
+ 8003eb4:	2301      	movs	r3, #1
+ 8003eb6:	f88d 300c 	strb.w	r3, [sp, #12]
+ 8003eba:	f8ad 4004 	strh.w	r4, [sp, #4]
+ 8003ebe:	f7fe fdcb 	bl	8002a58 <GetBatteryLevel>
+ 8003ec2:	23fe      	movs	r3, #254	; 0xfe
+ 8003ec4:	fbb0 f0f3 	udiv	r0, r0, r3
+ 8003ec8:	eb00 0040 	add.w	r0, r0, r0, lsl #1
+ 8003ecc:	eb00 1040 	add.w	r0, r0, r0, lsl #5
+ 8003ed0:	f88d 000d 	strb.w	r0, [sp, #13]
+ 8003ed4:	a801      	add	r0, sp, #4
+ 8003ed6:	f000 fd0d 	bl	80048f4 <STS_SENSOR_MEMS_Get_ID>
+ 8003eda:	b978      	cbnz	r0, 8003efc <STS_SENSOR_Function_Test_Process+0x68>
+ 8003edc:	2358      	movs	r3, #88	; 0x58
+ 8003ede:	f88d 300e 	strb.w	r3, [sp, #14]
+ 8003ee2:	2407      	movs	r4, #7
+ 8003ee4:	2230      	movs	r2, #48	; 0x30
+ 8003ee6:	2180      	movs	r1, #128	; 0x80
+ 8003ee8:	4813      	ldr	r0, [pc, #76]	; (8003f38 <STS_SENSOR_Function_Test_Process+0xa4>)
+ 8003eea:	f010 f9b1 	bl	8014250 <memset>
+ 8003eee:	4622      	mov	r2, r4
+ 8003ef0:	a902      	add	r1, sp, #8
+ 8003ef2:	4811      	ldr	r0, [pc, #68]	; (8003f38 <STS_SENSOR_Function_Test_Process+0xa4>)
+ 8003ef4:	f010 f9e5 	bl	80142c2 <memcpy>
+ 8003ef8:	b022      	add	sp, #136	; 0x88
+ 8003efa:	bd10      	pop	{r4, pc}
+ 8003efc:	2302      	movs	r3, #2
+ 8003efe:	f88d 300e 	strb.w	r3, [sp, #14]
+ 8003f02:	f000 fcdb 	bl	80048bc <MX_TOF_Process>
+ 8003f06:	4b0d      	ldr	r3, [pc, #52]	; (8003f3c <STS_SENSOR_Function_Test_Process+0xa8>)
+ 8003f08:	681a      	ldr	r2, [r3, #0]
+ 8003f0a:	1212      	asrs	r2, r2, #8
+ 8003f0c:	f88d 200f 	strb.w	r2, [sp, #15]
+ 8003f10:	681a      	ldr	r2, [r3, #0]
+ 8003f12:	f88d 2010 	strb.w	r2, [sp, #16]
+ 8003f16:	685a      	ldr	r2, [r3, #4]
+ 8003f18:	1212      	asrs	r2, r2, #8
+ 8003f1a:	f88d 2011 	strb.w	r2, [sp, #17]
+ 8003f1e:	685a      	ldr	r2, [r3, #4]
+ 8003f20:	f88d 2012 	strb.w	r2, [sp, #18]
+ 8003f24:	689a      	ldr	r2, [r3, #8]
+ 8003f26:	689b      	ldr	r3, [r3, #8]
+ 8003f28:	f88d 3014 	strb.w	r3, [sp, #20]
+ 8003f2c:	1212      	asrs	r2, r2, #8
+ 8003f2e:	f88d 2013 	strb.w	r2, [sp, #19]
+ 8003f32:	240d      	movs	r4, #13
+ 8003f34:	e7d6      	b.n	8003ee4 <STS_SENSOR_Function_Test_Process+0x50>
+ 8003f36:	bf00      	nop
+ 8003f38:	20000dcd 	.word	0x20000dcd
+ 8003f3c:	20000ef4 	.word	0x20000ef4
+
+08003f40 <USER_APP_AUTO_RESPONDER_Parse>:
+ 8003f40:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8003f42:	7803      	ldrb	r3, [r0, #0]
+ 8003f44:	2b59      	cmp	r3, #89	; 0x59
+ 8003f46:	b095      	sub	sp, #84	; 0x54
+ 8003f48:	4604      	mov	r4, r0
+ 8003f4a:	f040 821f 	bne.w	800438c <USER_APP_AUTO_RESPONDER_Parse+0x44c>
+ 8003f4e:	2905      	cmp	r1, #5
+ 8003f50:	d85f      	bhi.n	8004012 <USER_APP_AUTO_RESPONDER_Parse+0xd2>
+ 8003f52:	7843      	ldrb	r3, [r0, #1]
+ 8003f54:	3b44      	subs	r3, #68	; 0x44
+ 8003f56:	2b16      	cmp	r3, #22
+ 8003f58:	d85b      	bhi.n	8004012 <USER_APP_AUTO_RESPONDER_Parse+0xd2>
+ 8003f5a:	e8df f013 	tbh	[pc, r3, lsl #1]
+ 8003f5e:	015b      	.short	0x015b
+ 8003f60:	013d005a 	.word	0x013d005a
+ 8003f64:	0145005a 	.word	0x0145005a
+ 8003f68:	005a005a 	.word	0x005a005a
+ 8003f6c:	005a005a 	.word	0x005a005a
+ 8003f70:	005a00a6 	.word	0x005a00a6
+ 8003f74:	005a0128 	.word	0x005a0128
+ 8003f78:	005a005a 	.word	0x005a005a
+ 8003f7c:	005a01ba 	.word	0x005a01ba
+ 8003f80:	00ca005a 	.word	0x00ca005a
+ 8003f84:	005a005a 	.word	0x005a005a
+ 8003f88:	0017005a 	.word	0x0017005a
+ 8003f8c:	7885      	ldrb	r5, [r0, #2]
+ 8003f8e:	2d48      	cmp	r5, #72	; 0x48
+ 8003f90:	d117      	bne.n	8003fc2 <USER_APP_AUTO_RESPONDER_Parse+0x82>
+ 8003f92:	4a99      	ldr	r2, [pc, #612]	; (80041f8 <USER_APP_AUTO_RESPONDER_Parse+0x2b8>)
+ 8003f94:	2114      	movs	r1, #20
+ 8003f96:	2001      	movs	r0, #1
+ 8003f98:	f7ff fcbe 	bl	8003918 <STS_SENSOR_Upload_Message>
+ 8003f9c:	f241 3088 	movw	r0, #5000	; 0x1388
+ 8003fa0:	f7fe fddc 	bl	8002b5c <HAL_Delay>
+ 8003fa4:	2200      	movs	r2, #0
+ 8003fa6:	4b95      	ldr	r3, [pc, #596]	; (80041fc <USER_APP_AUTO_RESPONDER_Parse+0x2bc>)
+ 8003fa8:	4611      	mov	r1, r2
+ 8003faa:	2003      	movs	r0, #3
+ 8003fac:	f00f fc10 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8003fb0:	f640 30b8 	movw	r0, #3000	; 0xbb8
+ 8003fb4:	f7fe fdd2 	bl	8002b5c <HAL_Delay>
+ 8003fb8:	b015      	add	sp, #84	; 0x54
+ 8003fba:	e8bd 40f0 	ldmia.w	sp!, {r4, r5, r6, r7, lr}
+ 8003fbe:	f7ff bc5f 	b.w	8003880 <OnSystemReset>
+ 8003fc2:	2d53      	cmp	r5, #83	; 0x53
+ 8003fc4:	d10e      	bne.n	8003fe4 <USER_APP_AUTO_RESPONDER_Parse+0xa4>
+ 8003fc6:	2230      	movs	r2, #48	; 0x30
+ 8003fc8:	2180      	movs	r1, #128	; 0x80
+ 8003fca:	488d      	ldr	r0, [pc, #564]	; (8004200 <USER_APP_AUTO_RESPONDER_Parse+0x2c0>)
+ 8003fcc:	f010 f940 	bl	8014250 <memset>
+ 8003fd0:	f7ff ff60 	bl	8003e94 <STS_SENSOR_Function_Test_Process>
+ 8003fd4:	f241 3088 	movw	r0, #5000	; 0x1388
+ 8003fd8:	f7fe fdc0 	bl	8002b5c <HAL_Delay>
+ 8003fdc:	4a88      	ldr	r2, [pc, #544]	; (8004200 <USER_APP_AUTO_RESPONDER_Parse+0x2c0>)
+ 8003fde:	2115      	movs	r1, #21
+ 8003fe0:	2001      	movs	r0, #1
+ 8003fe2:	e09b      	b.n	800411c <USER_APP_AUTO_RESPONDER_Parse+0x1dc>
+ 8003fe4:	2d43      	cmp	r5, #67	; 0x43
+ 8003fe6:	d116      	bne.n	8004016 <USER_APP_AUTO_RESPONDER_Parse+0xd6>
+ 8003fe8:	2400      	movs	r4, #0
+ 8003fea:	a804      	add	r0, sp, #16
+ 8003fec:	f88d 4010 	strb.w	r4, [sp, #16]
+ 8003ff0:	f007 fbee 	bl	800b7d0 <LmHandlerGetCurrentClass>
+ 8003ff4:	4a82      	ldr	r2, [pc, #520]	; (8004200 <USER_APP_AUTO_RESPONDER_Parse+0x2c0>)
+ 8003ff6:	234c      	movs	r3, #76	; 0x4c
+ 8003ff8:	7013      	strb	r3, [r2, #0]
+ 8003ffa:	2310      	movs	r3, #16
+ 8003ffc:	7093      	strb	r3, [r2, #2]
+ 8003ffe:	f89d 3010 	ldrb.w	r3, [sp, #16]
+ 8004002:	7054      	strb	r4, [r2, #1]
+ 8004004:	2001      	movs	r0, #1
+ 8004006:	3341      	adds	r3, #65	; 0x41
+ 8004008:	70d0      	strb	r0, [r2, #3]
+ 800400a:	7113      	strb	r3, [r2, #4]
+ 800400c:	2105      	movs	r1, #5
+ 800400e:	f7ff fc83 	bl	8003918 <STS_SENSOR_Upload_Message>
+ 8004012:	b015      	add	sp, #84	; 0x54
+ 8004014:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8004016:	2d44      	cmp	r5, #68	; 0x44
+ 8004018:	d1fb      	bne.n	8004012 <USER_APP_AUTO_RESPONDER_Parse+0xd2>
+ 800401a:	4c79      	ldr	r4, [pc, #484]	; (8004200 <USER_APP_AUTO_RESPONDER_Parse+0x2c0>)
+ 800401c:	2359      	movs	r3, #89	; 0x59
+ 800401e:	7023      	strb	r3, [r4, #0]
+ 8004020:	235a      	movs	r3, #90	; 0x5a
+ 8004022:	7063      	strb	r3, [r4, #1]
+ 8004024:	70a5      	strb	r5, [r4, #2]
+ 8004026:	f000 fc49 	bl	80048bc <MX_TOF_Process>
+ 800402a:	222c      	movs	r2, #44	; 0x2c
+ 800402c:	2180      	movs	r1, #128	; 0x80
+ 800402e:	1d20      	adds	r0, r4, #4
+ 8004030:	f010 f90e 	bl	8014250 <memset>
+ 8004034:	2300      	movs	r3, #0
+ 8004036:	7025      	strb	r5, [r4, #0]
+ 8004038:	7063      	strb	r3, [r4, #1]
+ 800403a:	2501      	movs	r5, #1
+ 800403c:	2310      	movs	r3, #16
+ 800403e:	70a3      	strb	r3, [r4, #2]
+ 8004040:	70e5      	strb	r5, [r4, #3]
+ 8004042:	7125      	strb	r5, [r4, #4]
+ 8004044:	f7fe fd08 	bl	8002a58 <GetBatteryLevel>
+ 8004048:	4a6e      	ldr	r2, [pc, #440]	; (8004204 <USER_APP_AUTO_RESPONDER_Parse+0x2c4>)
+ 800404a:	6811      	ldr	r1, [r2, #0]
+ 800404c:	23fe      	movs	r3, #254	; 0xfe
+ 800404e:	b289      	uxth	r1, r1
+ 8004050:	fbb0 f0f3 	udiv	r0, r0, r3
+ 8004054:	2364      	movs	r3, #100	; 0x64
+ 8004056:	fbb1 f1f3 	udiv	r1, r1, r3
+ 800405a:	71a1      	strb	r1, [r4, #6]
+ 800405c:	6811      	ldr	r1, [r2, #0]
+ 800405e:	eb00 0040 	add.w	r0, r0, r0, lsl #1
+ 8004062:	eb00 1040 	add.w	r0, r0, r0, lsl #5
+ 8004066:	b289      	uxth	r1, r1
+ 8004068:	7160      	strb	r0, [r4, #5]
+ 800406a:	fbb1 f0f3 	udiv	r0, r1, r3
+ 800406e:	fb03 1110 	mls	r1, r3, r0, r1
+ 8004072:	71e1      	strb	r1, [r4, #7]
+ 8004074:	6851      	ldr	r1, [r2, #4]
+ 8004076:	b289      	uxth	r1, r1
+ 8004078:	fbb1 f1f3 	udiv	r1, r1, r3
+ 800407c:	7221      	strb	r1, [r4, #8]
+ 800407e:	6851      	ldr	r1, [r2, #4]
+ 8004080:	b289      	uxth	r1, r1
+ 8004082:	fbb1 f0f3 	udiv	r0, r1, r3
+ 8004086:	fb03 1110 	mls	r1, r3, r0, r1
+ 800408a:	7261      	strb	r1, [r4, #9]
+ 800408c:	6891      	ldr	r1, [r2, #8]
+ 800408e:	6892      	ldr	r2, [r2, #8]
+ 8004090:	b292      	uxth	r2, r2
+ 8004092:	b289      	uxth	r1, r1
+ 8004094:	fbb1 f1f3 	udiv	r1, r1, r3
+ 8004098:	72a1      	strb	r1, [r4, #10]
+ 800409a:	fbb2 f1f3 	udiv	r1, r2, r3
+ 800409e:	fb03 2211 	mls	r2, r3, r1, r2
+ 80040a2:	72e2      	strb	r2, [r4, #11]
+ 80040a4:	210c      	movs	r1, #12
+ 80040a6:	4622      	mov	r2, r4
+ 80040a8:	e79a      	b.n	8003fe0 <USER_APP_AUTO_RESPONDER_Parse+0xa0>
+ 80040aa:	7883      	ldrb	r3, [r0, #2]
+ 80040ac:	3b30      	subs	r3, #48	; 0x30
+ 80040ae:	b2db      	uxtb	r3, r3
+ 80040b0:	2b09      	cmp	r3, #9
+ 80040b2:	d8ae      	bhi.n	8004012 <USER_APP_AUTO_RESPONDER_Parse+0xd2>
+ 80040b4:	4c54      	ldr	r4, [pc, #336]	; (8004208 <USER_APP_AUTO_RESPONDER_Parse+0x2c8>)
+ 80040b6:	4a55      	ldr	r2, [pc, #340]	; (800420c <USER_APP_AUTO_RESPONDER_Parse+0x2cc>)
+ 80040b8:	7023      	strb	r3, [r4, #0]
+ 80040ba:	7823      	ldrb	r3, [r4, #0]
+ 80040bc:	b2db      	uxtb	r3, r3
+ 80040be:	7253      	strb	r3, [r2, #9]
+ 80040c0:	4a4f      	ldr	r2, [pc, #316]	; (8004200 <USER_APP_AUTO_RESPONDER_Parse+0x2c0>)
+ 80040c2:	2359      	movs	r3, #89	; 0x59
+ 80040c4:	7013      	strb	r3, [r2, #0]
+ 80040c6:	234d      	movs	r3, #77	; 0x4d
+ 80040c8:	7053      	strb	r3, [r2, #1]
+ 80040ca:	7823      	ldrb	r3, [r4, #0]
+ 80040cc:	3330      	adds	r3, #48	; 0x30
+ 80040ce:	7093      	strb	r3, [r2, #2]
+ 80040d0:	2103      	movs	r1, #3
+ 80040d2:	2001      	movs	r0, #1
+ 80040d4:	f7ff fc20 	bl	8003918 <STS_SENSOR_Upload_Message>
+ 80040d8:	7823      	ldrb	r3, [r4, #0]
+ 80040da:	9300      	str	r3, [sp, #0]
+ 80040dc:	2200      	movs	r2, #0
+ 80040de:	4b4c      	ldr	r3, [pc, #304]	; (8004210 <USER_APP_AUTO_RESPONDER_Parse+0x2d0>)
+ 80040e0:	4611      	mov	r1, r2
+ 80040e2:	2001      	movs	r0, #1
+ 80040e4:	f00f fb74 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 80040e8:	b015      	add	sp, #84	; 0x54
+ 80040ea:	e8bd 40f0 	ldmia.w	sp!, {r4, r5, r6, r7, lr}
+ 80040ee:	f7ff bc89 	b.w	8003a04 <OnStoreSTSCFGContextRequest>
+ 80040f2:	7885      	ldrb	r5, [r0, #2]
+ 80040f4:	2d48      	cmp	r5, #72	; 0x48
+ 80040f6:	d116      	bne.n	8004126 <USER_APP_AUTO_RESPONDER_Parse+0x1e6>
+ 80040f8:	4a41      	ldr	r2, [pc, #260]	; (8004200 <USER_APP_AUTO_RESPONDER_Parse+0x2c0>)
+ 80040fa:	2356      	movs	r3, #86	; 0x56
+ 80040fc:	7013      	strb	r3, [r2, #0]
+ 80040fe:	2300      	movs	r3, #0
+ 8004100:	7053      	strb	r3, [r2, #1]
+ 8004102:	2310      	movs	r3, #16
+ 8004104:	7093      	strb	r3, [r2, #2]
+ 8004106:	2303      	movs	r3, #3
+ 8004108:	7113      	strb	r3, [r2, #4]
+ 800410a:	2317      	movs	r3, #23
+ 800410c:	7153      	strb	r3, [r2, #5]
+ 800410e:	2306      	movs	r3, #6
+ 8004110:	2001      	movs	r0, #1
+ 8004112:	7193      	strb	r3, [r2, #6]
+ 8004114:	231c      	movs	r3, #28
+ 8004116:	70d0      	strb	r0, [r2, #3]
+ 8004118:	71d3      	strb	r3, [r2, #7]
+ 800411a:	2108      	movs	r1, #8
+ 800411c:	b015      	add	sp, #84	; 0x54
+ 800411e:	e8bd 40f0 	ldmia.w	sp!, {r4, r5, r6, r7, lr}
+ 8004122:	f7ff bbf9 	b.w	8003918 <STS_SENSOR_Upload_Message>
+ 8004126:	2d43      	cmp	r5, #67	; 0x43
+ 8004128:	f47f af73 	bne.w	8004012 <USER_APP_AUTO_RESPONDER_Parse+0xd2>
+ 800412c:	4c34      	ldr	r4, [pc, #208]	; (8004200 <USER_APP_AUTO_RESPONDER_Parse+0x2c0>)
+ 800412e:	2100      	movs	r1, #0
+ 8004130:	223c      	movs	r2, #60	; 0x3c
+ 8004132:	a805      	add	r0, sp, #20
+ 8004134:	9104      	str	r1, [sp, #16]
+ 8004136:	f010 f88b 	bl	8014250 <memset>
+ 800413a:	a804      	add	r0, sp, #16
+ 800413c:	f7ff fcc8 	bl	8003ad0 <OnRestoreSTSCFGContextRequest>
+ 8004140:	2224      	movs	r2, #36	; 0x24
+ 8004142:	2180      	movs	r1, #128	; 0x80
+ 8004144:	f104 000c 	add.w	r0, r4, #12
+ 8004148:	f010 f882 	bl	8014250 <memset>
+ 800414c:	f89d 3010 	ldrb.w	r3, [sp, #16]
+ 8004150:	7063      	strb	r3, [r4, #1]
+ 8004152:	f89d 3011 	ldrb.w	r3, [sp, #17]
+ 8004156:	70a3      	strb	r3, [r4, #2]
+ 8004158:	f89d 3012 	ldrb.w	r3, [sp, #18]
+ 800415c:	70e3      	strb	r3, [r4, #3]
+ 800415e:	f89d 3013 	ldrb.w	r3, [sp, #19]
+ 8004162:	7123      	strb	r3, [r4, #4]
+ 8004164:	f89d 3014 	ldrb.w	r3, [sp, #20]
+ 8004168:	7163      	strb	r3, [r4, #5]
+ 800416a:	f89d 3015 	ldrb.w	r3, [sp, #21]
+ 800416e:	71a3      	strb	r3, [r4, #6]
+ 8004170:	f89d 3016 	ldrb.w	r3, [sp, #22]
+ 8004174:	71e3      	strb	r3, [r4, #7]
+ 8004176:	f89d 3017 	ldrb.w	r3, [sp, #23]
+ 800417a:	7223      	strb	r3, [r4, #8]
+ 800417c:	f89d 3018 	ldrb.w	r3, [sp, #24]
+ 8004180:	7025      	strb	r5, [r4, #0]
+ 8004182:	7263      	strb	r3, [r4, #9]
+ 8004184:	f89d 501b 	ldrb.w	r5, [sp, #27]
+ 8004188:	f89d 3019 	ldrb.w	r3, [sp, #25]
+ 800418c:	72a3      	strb	r3, [r4, #10]
+ 800418e:	f89d 301a 	ldrb.w	r3, [sp, #26]
+ 8004192:	72e3      	strb	r3, [r4, #11]
+ 8004194:	462a      	mov	r2, r5
+ 8004196:	a907      	add	r1, sp, #28
+ 8004198:	7325      	strb	r5, [r4, #12]
+ 800419a:	f104 000d 	add.w	r0, r4, #13
+ 800419e:	f010 f890 	bl	80142c2 <memcpy>
+ 80041a2:	f105 010d 	add.w	r1, r5, #13
+ 80041a6:	4622      	mov	r2, r4
+ 80041a8:	b2c9      	uxtb	r1, r1
+ 80041aa:	2001      	movs	r0, #1
+ 80041ac:	e72f      	b.n	800400e <USER_APP_AUTO_RESPONDER_Parse+0xce>
+ 80041ae:	7880      	ldrb	r0, [r0, #2]
+ 80041b0:	2839      	cmp	r0, #57	; 0x39
+ 80041b2:	d80c      	bhi.n	80041ce <USER_APP_AUTO_RESPONDER_Parse+0x28e>
+ 80041b4:	3830      	subs	r0, #48	; 0x30
+ 80041b6:	b2c0      	uxtb	r0, r0
+ 80041b8:	f7ff f852 	bl	8003260 <STS_SENSOR_Power_ON>
+ 80041bc:	4a10      	ldr	r2, [pc, #64]	; (8004200 <USER_APP_AUTO_RESPONDER_Parse+0x2c0>)
+ 80041be:	7823      	ldrb	r3, [r4, #0]
+ 80041c0:	7013      	strb	r3, [r2, #0]
+ 80041c2:	7863      	ldrb	r3, [r4, #1]
+ 80041c4:	7053      	strb	r3, [r2, #1]
+ 80041c6:	78a3      	ldrb	r3, [r4, #2]
+ 80041c8:	7093      	strb	r3, [r2, #2]
+ 80041ca:	2103      	movs	r1, #3
+ 80041cc:	e708      	b.n	8003fe0 <USER_APP_AUTO_RESPONDER_Parse+0xa0>
+ 80041ce:	b015      	add	sp, #84	; 0x54
+ 80041d0:	e8bd 40f0 	ldmia.w	sp!, {r4, r5, r6, r7, lr}
+ 80041d4:	f7ff bc08 	b.w	80039e8 <STS_SENSOR_Upload_Config_Invalid_Message>
+ 80041d8:	7880      	ldrb	r0, [r0, #2]
+ 80041da:	2839      	cmp	r0, #57	; 0x39
+ 80041dc:	d8f7      	bhi.n	80041ce <USER_APP_AUTO_RESPONDER_Parse+0x28e>
+ 80041de:	3830      	subs	r0, #48	; 0x30
+ 80041e0:	b2c0      	uxtb	r0, r0
+ 80041e2:	f7ff f842 	bl	800326a <STS_SENSOR_Power_OFF>
+ 80041e6:	e7e9      	b.n	80041bc <USER_APP_AUTO_RESPONDER_Parse+0x27c>
+ 80041e8:	7880      	ldrb	r0, [r0, #2]
+ 80041ea:	2839      	cmp	r0, #57	; 0x39
+ 80041ec:	d8ef      	bhi.n	80041ce <USER_APP_AUTO_RESPONDER_Parse+0x28e>
+ 80041ee:	3830      	subs	r0, #48	; 0x30
+ 80041f0:	b2c0      	uxtb	r0, r0
+ 80041f2:	f7ff f83f 	bl	8003274 <STS_SENSOR_MEMS_Reset>
+ 80041f6:	e7e1      	b.n	80041bc <USER_APP_AUTO_RESPONDER_Parse+0x27c>
+ 80041f8:	08014b1e 	.word	0x08014b1e
+ 80041fc:	08014b33 	.word	0x08014b33
+ 8004200:	20000dcd 	.word	0x20000dcd
+ 8004204:	20000ef4 	.word	0x20000ef4
+ 8004208:	20000c44 	.word	0x20000c44
+ 800420c:	20000078 	.word	0x20000078
+ 8004210:	08014b55 	.word	0x08014b55
+ 8004214:	7883      	ldrb	r3, [r0, #2]
+ 8004216:	3b30      	subs	r3, #48	; 0x30
+ 8004218:	b2da      	uxtb	r2, r3
+ 800421a:	2a09      	cmp	r2, #9
+ 800421c:	d8d7      	bhi.n	80041ce <USER_APP_AUTO_RESPONDER_Parse+0x28e>
+ 800421e:	78c5      	ldrb	r5, [r0, #3]
+ 8004220:	3d30      	subs	r5, #48	; 0x30
+ 8004222:	b2ea      	uxtb	r2, r5
+ 8004224:	2a09      	cmp	r2, #9
+ 8004226:	d8d2      	bhi.n	80041ce <USER_APP_AUTO_RESPONDER_Parse+0x28e>
+ 8004228:	7901      	ldrb	r1, [r0, #4]
+ 800422a:	f1a1 0248 	sub.w	r2, r1, #72	; 0x48
+ 800422e:	b2d2      	uxtb	r2, r2
+ 8004230:	2a0b      	cmp	r2, #11
+ 8004232:	d8cc      	bhi.n	80041ce <USER_APP_AUTO_RESPONDER_Parse+0x28e>
+ 8004234:	48a3      	ldr	r0, [pc, #652]	; (80044c4 <USER_APP_AUTO_RESPONDER_Parse+0x584>)
+ 8004236:	fa40 f202 	asr.w	r2, r0, r2
+ 800423a:	07d0      	lsls	r0, r2, #31
+ 800423c:	d4c7      	bmi.n	80041ce <USER_APP_AUTO_RESPONDER_Parse+0x28e>
+ 800423e:	220a      	movs	r2, #10
+ 8004240:	294d      	cmp	r1, #77	; 0x4d
+ 8004242:	fb02 5503 	mla	r5, r2, r3, r5
+ 8004246:	d13f      	bne.n	80042c8 <USER_APP_AUTO_RESPONDER_Parse+0x388>
+ 8004248:	233c      	movs	r3, #60	; 0x3c
+ 800424a:	435d      	muls	r5, r3
+ 800424c:	4b9e      	ldr	r3, [pc, #632]	; (80044c8 <USER_APP_AUTO_RESPONDER_Parse+0x588>)
+ 800424e:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
+ 8004252:	4368      	muls	r0, r5
+ 8004254:	6018      	str	r0, [r3, #0]
+ 8004256:	4b9d      	ldr	r3, [pc, #628]	; (80044cc <USER_APP_AUTO_RESPONDER_Parse+0x58c>)
+ 8004258:	6018      	str	r0, [r3, #0]
+ 800425a:	f7ff f8b9 	bl	80033d0 <OnTxPeriodicityChanged>
+ 800425e:	4a9c      	ldr	r2, [pc, #624]	; (80044d0 <USER_APP_AUTO_RESPONDER_Parse+0x590>)
+ 8004260:	7823      	ldrb	r3, [r4, #0]
+ 8004262:	7013      	strb	r3, [r2, #0]
+ 8004264:	7863      	ldrb	r3, [r4, #1]
+ 8004266:	7053      	strb	r3, [r2, #1]
+ 8004268:	78a3      	ldrb	r3, [r4, #2]
+ 800426a:	7093      	strb	r3, [r2, #2]
+ 800426c:	78e3      	ldrb	r3, [r4, #3]
+ 800426e:	70d3      	strb	r3, [r2, #3]
+ 8004270:	7923      	ldrb	r3, [r4, #4]
+ 8004272:	7113      	strb	r3, [r2, #4]
+ 8004274:	2105      	movs	r1, #5
+ 8004276:	2001      	movs	r0, #1
+ 8004278:	f7ff fb4e 	bl	8003918 <STS_SENSOR_Upload_Message>
+ 800427c:	4b95      	ldr	r3, [pc, #596]	; (80044d4 <USER_APP_AUTO_RESPONDER_Parse+0x594>)
+ 800427e:	2210      	movs	r2, #16
+ 8004280:	2600      	movs	r6, #0
+ 8004282:	701e      	strb	r6, [r3, #0]
+ 8004284:	705a      	strb	r2, [r3, #1]
+ 8004286:	2201      	movs	r2, #1
+ 8004288:	709a      	strb	r2, [r3, #2]
+ 800428a:	70da      	strb	r2, [r3, #3]
+ 800428c:	78a1      	ldrb	r1, [r4, #2]
+ 800428e:	3930      	subs	r1, #48	; 0x30
+ 8004290:	eb01 0081 	add.w	r0, r1, r1, lsl #2
+ 8004294:	78e1      	ldrb	r1, [r4, #3]
+ 8004296:	3930      	subs	r1, #48	; 0x30
+ 8004298:	eb01 0140 	add.w	r1, r1, r0, lsl #1
+ 800429c:	b2c9      	uxtb	r1, r1
+ 800429e:	7119      	strb	r1, [r3, #4]
+ 80042a0:	7922      	ldrb	r2, [r4, #4]
+ 80042a2:	715a      	strb	r2, [r3, #5]
+ 80042a4:	4a8c      	ldr	r2, [pc, #560]	; (80044d8 <USER_APP_AUTO_RESPONDER_Parse+0x598>)
+ 80042a6:	7812      	ldrb	r2, [r2, #0]
+ 80042a8:	b2d2      	uxtb	r2, r2
+ 80042aa:	721a      	strb	r2, [r3, #8]
+ 80042ac:	4a8b      	ldr	r2, [pc, #556]	; (80044dc <USER_APP_AUTO_RESPONDER_Parse+0x59c>)
+ 80042ae:	7812      	ldrb	r2, [r2, #0]
+ 80042b0:	b2d2      	uxtb	r2, r2
+ 80042b2:	725a      	strb	r2, [r3, #9]
+ 80042b4:	f7ff fba6 	bl	8003a04 <OnStoreSTSCFGContextRequest>
+ 80042b8:	4b89      	ldr	r3, [pc, #548]	; (80044e0 <USER_APP_AUTO_RESPONDER_Parse+0x5a0>)
+ 80042ba:	9500      	str	r5, [sp, #0]
+ 80042bc:	4632      	mov	r2, r6
+ 80042be:	4631      	mov	r1, r6
+ 80042c0:	2002      	movs	r0, #2
+ 80042c2:	f00f fa85 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 80042c6:	e6a4      	b.n	8004012 <USER_APP_AUTO_RESPONDER_Parse+0xd2>
+ 80042c8:	2948      	cmp	r1, #72	; 0x48
+ 80042ca:	d1bf      	bne.n	800424c <USER_APP_AUTO_RESPONDER_Parse+0x30c>
+ 80042cc:	f44f 6361 	mov.w	r3, #3600	; 0xe10
+ 80042d0:	e7bb      	b.n	800424a <USER_APP_AUTO_RESPONDER_Parse+0x30a>
+ 80042d2:	7883      	ldrb	r3, [r0, #2]
+ 80042d4:	3b30      	subs	r3, #48	; 0x30
+ 80042d6:	b2da      	uxtb	r2, r3
+ 80042d8:	2a09      	cmp	r2, #9
+ 80042da:	f63f af78 	bhi.w	80041ce <USER_APP_AUTO_RESPONDER_Parse+0x28e>
+ 80042de:	78c5      	ldrb	r5, [r0, #3]
+ 80042e0:	3d30      	subs	r5, #48	; 0x30
+ 80042e2:	b2ea      	uxtb	r2, r5
+ 80042e4:	2a09      	cmp	r2, #9
+ 80042e6:	f63f af72 	bhi.w	80041ce <USER_APP_AUTO_RESPONDER_Parse+0x28e>
+ 80042ea:	7901      	ldrb	r1, [r0, #4]
+ 80042ec:	f1a1 0248 	sub.w	r2, r1, #72	; 0x48
+ 80042f0:	b2d2      	uxtb	r2, r2
+ 80042f2:	2a0b      	cmp	r2, #11
+ 80042f4:	f63f af6b 	bhi.w	80041ce <USER_APP_AUTO_RESPONDER_Parse+0x28e>
+ 80042f8:	4872      	ldr	r0, [pc, #456]	; (80044c4 <USER_APP_AUTO_RESPONDER_Parse+0x584>)
+ 80042fa:	fa40 f202 	asr.w	r2, r0, r2
+ 80042fe:	07d2      	lsls	r2, r2, #31
+ 8004300:	f53f af65 	bmi.w	80041ce <USER_APP_AUTO_RESPONDER_Parse+0x28e>
+ 8004304:	220a      	movs	r2, #10
+ 8004306:	294d      	cmp	r1, #77	; 0x4d
+ 8004308:	fb02 5503 	mla	r5, r2, r3, r5
+ 800430c:	d139      	bne.n	8004382 <USER_APP_AUTO_RESPONDER_Parse+0x442>
+ 800430e:	233c      	movs	r3, #60	; 0x3c
+ 8004310:	435d      	muls	r5, r3
+ 8004312:	4a6e      	ldr	r2, [pc, #440]	; (80044cc <USER_APP_AUTO_RESPONDER_Parse+0x58c>)
+ 8004314:	f44f 737a 	mov.w	r3, #1000	; 0x3e8
+ 8004318:	436b      	muls	r3, r5
+ 800431a:	6013      	str	r3, [r2, #0]
+ 800431c:	6810      	ldr	r0, [r2, #0]
+ 800431e:	f7ff f879 	bl	8003414 <OnYunhornSTSHeartBeatPeriodicityChanged>
+ 8004322:	4a6b      	ldr	r2, [pc, #428]	; (80044d0 <USER_APP_AUTO_RESPONDER_Parse+0x590>)
+ 8004324:	7823      	ldrb	r3, [r4, #0]
+ 8004326:	7013      	strb	r3, [r2, #0]
+ 8004328:	7863      	ldrb	r3, [r4, #1]
+ 800432a:	7053      	strb	r3, [r2, #1]
+ 800432c:	78a3      	ldrb	r3, [r4, #2]
+ 800432e:	7093      	strb	r3, [r2, #2]
+ 8004330:	78e3      	ldrb	r3, [r4, #3]
+ 8004332:	70d3      	strb	r3, [r2, #3]
+ 8004334:	7923      	ldrb	r3, [r4, #4]
+ 8004336:	7113      	strb	r3, [r2, #4]
+ 8004338:	2105      	movs	r1, #5
+ 800433a:	2001      	movs	r0, #1
+ 800433c:	f7ff faec 	bl	8003918 <STS_SENSOR_Upload_Message>
+ 8004340:	4b64      	ldr	r3, [pc, #400]	; (80044d4 <USER_APP_AUTO_RESPONDER_Parse+0x594>)
+ 8004342:	2210      	movs	r2, #16
+ 8004344:	2600      	movs	r6, #0
+ 8004346:	701e      	strb	r6, [r3, #0]
+ 8004348:	705a      	strb	r2, [r3, #1]
+ 800434a:	2201      	movs	r2, #1
+ 800434c:	709a      	strb	r2, [r3, #2]
+ 800434e:	70da      	strb	r2, [r3, #3]
+ 8004350:	78a1      	ldrb	r1, [r4, #2]
+ 8004352:	3930      	subs	r1, #48	; 0x30
+ 8004354:	eb01 0081 	add.w	r0, r1, r1, lsl #2
+ 8004358:	78e1      	ldrb	r1, [r4, #3]
+ 800435a:	3930      	subs	r1, #48	; 0x30
+ 800435c:	eb01 0140 	add.w	r1, r1, r0, lsl #1
+ 8004360:	b2c9      	uxtb	r1, r1
+ 8004362:	7199      	strb	r1, [r3, #6]
+ 8004364:	7922      	ldrb	r2, [r4, #4]
+ 8004366:	71da      	strb	r2, [r3, #7]
+ 8004368:	4a5b      	ldr	r2, [pc, #364]	; (80044d8 <USER_APP_AUTO_RESPONDER_Parse+0x598>)
+ 800436a:	7812      	ldrb	r2, [r2, #0]
+ 800436c:	b2d2      	uxtb	r2, r2
+ 800436e:	721a      	strb	r2, [r3, #8]
+ 8004370:	4a5a      	ldr	r2, [pc, #360]	; (80044dc <USER_APP_AUTO_RESPONDER_Parse+0x59c>)
+ 8004372:	7812      	ldrb	r2, [r2, #0]
+ 8004374:	b2d2      	uxtb	r2, r2
+ 8004376:	725a      	strb	r2, [r3, #9]
+ 8004378:	f7ff fb44 	bl	8003a04 <OnStoreSTSCFGContextRequest>
+ 800437c:	4b59      	ldr	r3, [pc, #356]	; (80044e4 <USER_APP_AUTO_RESPONDER_Parse+0x5a4>)
+ 800437e:	9500      	str	r5, [sp, #0]
+ 8004380:	e79c      	b.n	80042bc <USER_APP_AUTO_RESPONDER_Parse+0x37c>
+ 8004382:	2948      	cmp	r1, #72	; 0x48
+ 8004384:	d1c5      	bne.n	8004312 <USER_APP_AUTO_RESPONDER_Parse+0x3d2>
+ 8004386:	f44f 6361 	mov.w	r3, #3600	; 0xe10
+ 800438a:	e7c1      	b.n	8004310 <USER_APP_AUTO_RESPONDER_Parse+0x3d0>
+ 800438c:	2b50      	cmp	r3, #80	; 0x50
+ 800438e:	d15d      	bne.n	800444c <USER_APP_AUTO_RESPONDER_Parse+0x50c>
+ 8004390:	2902      	cmp	r1, #2
+ 8004392:	f67f ae3e 	bls.w	8004012 <USER_APP_AUTO_RESPONDER_Parse+0xd2>
+ 8004396:	7843      	ldrb	r3, [r0, #1]
+ 8004398:	3b30      	subs	r3, #48	; 0x30
+ 800439a:	2b01      	cmp	r3, #1
+ 800439c:	f63f ae39 	bhi.w	8004012 <USER_APP_AUTO_RESPONDER_Parse+0xd2>
+ 80043a0:	7883      	ldrb	r3, [r0, #2]
+ 80043a2:	2b31      	cmp	r3, #49	; 0x31
+ 80043a4:	f47f ae35 	bne.w	8004012 <USER_APP_AUTO_RESPONDER_Parse+0xd2>
+ 80043a8:	290b      	cmp	r1, #11
+ 80043aa:	d804      	bhi.n	80043b6 <USER_APP_AUTO_RESPONDER_Parse+0x476>
+ 80043ac:	f7ff fb1c 	bl	80039e8 <STS_SENSOR_Upload_Config_Invalid_Message>
+ 80043b0:	2100      	movs	r1, #0
+ 80043b2:	4a47      	ldr	r2, [pc, #284]	; (80044d0 <USER_APP_AUTO_RESPONDER_Parse+0x590>)
+ 80043b4:	e614      	b.n	8003fe0 <USER_APP_AUTO_RESPONDER_Parse+0xa0>
+ 80043b6:	4d47      	ldr	r5, [pc, #284]	; (80044d4 <USER_APP_AUTO_RESPONDER_Parse+0x594>)
+ 80043b8:	4f4b      	ldr	r7, [pc, #300]	; (80044e8 <USER_APP_AUTO_RESPONDER_Parse+0x5a8>)
+ 80043ba:	3402      	adds	r4, #2
+ 80043bc:	2600      	movs	r6, #0
+ 80043be:	f814 2f01 	ldrb.w	r2, [r4, #1]!
+ 80043c2:	19a9      	adds	r1, r5, r6
+ 80043c4:	3a30      	subs	r2, #48	; 0x30
+ 80043c6:	b2d2      	uxtb	r2, r2
+ 80043c8:	730a      	strb	r2, [r1, #12]
+ 80043ca:	7b0b      	ldrb	r3, [r1, #12]
+ 80043cc:	e9cd 6302 	strd	r6, r3, [sp, #8]
+ 80043d0:	7823      	ldrb	r3, [r4, #0]
+ 80043d2:	2200      	movs	r2, #0
+ 80043d4:	e9cd 6300 	strd	r6, r3, [sp]
+ 80043d8:	4611      	mov	r1, r2
+ 80043da:	463b      	mov	r3, r7
+ 80043dc:	2001      	movs	r0, #1
+ 80043de:	3601      	adds	r6, #1
+ 80043e0:	f00f f9f6 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 80043e4:	2e0c      	cmp	r6, #12
+ 80043e6:	d1ea      	bne.n	80043be <USER_APP_AUTO_RESPONDER_Parse+0x47e>
+ 80043e8:	f7fe ff66 	bl	80032b8 <STS_SENSOR_NVM_CFG_SIMPLE>
+ 80043ec:	4b38      	ldr	r3, [pc, #224]	; (80044d0 <USER_APP_AUTO_RESPONDER_Parse+0x590>)
+ 80043ee:	2250      	movs	r2, #80	; 0x50
+ 80043f0:	701a      	strb	r2, [r3, #0]
+ 80043f2:	2210      	movs	r2, #16
+ 80043f4:	709a      	strb	r2, [r3, #2]
+ 80043f6:	2400      	movs	r4, #0
+ 80043f8:	2201      	movs	r2, #1
+ 80043fa:	705c      	strb	r4, [r3, #1]
+ 80043fc:	70da      	strb	r2, [r3, #3]
+ 80043fe:	f803 2f04 	strb.w	r2, [r3, #4]!
+ 8004402:	192a      	adds	r2, r5, r4
+ 8004404:	3401      	adds	r4, #1
+ 8004406:	7b12      	ldrb	r2, [r2, #12]
+ 8004408:	2c0c      	cmp	r4, #12
+ 800440a:	f102 0230 	add.w	r2, r2, #48	; 0x30
+ 800440e:	f803 2f01 	strb.w	r2, [r3, #1]!
+ 8004412:	d1f6      	bne.n	8004402 <USER_APP_AUTO_RESPONDER_Parse+0x4c2>
+ 8004414:	2200      	movs	r2, #0
+ 8004416:	2350      	movs	r3, #80	; 0x50
+ 8004418:	4611      	mov	r1, r2
+ 800441a:	9300      	str	r3, [sp, #0]
+ 800441c:	2001      	movs	r0, #1
+ 800441e:	4b33      	ldr	r3, [pc, #204]	; (80044ec <USER_APP_AUTO_RESPONDER_Parse+0x5ac>)
+ 8004420:	f00f f9d6 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8004424:	2300      	movs	r3, #0
+ 8004426:	702b      	strb	r3, [r5, #0]
+ 8004428:	2310      	movs	r3, #16
+ 800442a:	706b      	strb	r3, [r5, #1]
+ 800442c:	2301      	movs	r3, #1
+ 800442e:	70ab      	strb	r3, [r5, #2]
+ 8004430:	70eb      	strb	r3, [r5, #3]
+ 8004432:	4b29      	ldr	r3, [pc, #164]	; (80044d8 <USER_APP_AUTO_RESPONDER_Parse+0x598>)
+ 8004434:	781b      	ldrb	r3, [r3, #0]
+ 8004436:	b2db      	uxtb	r3, r3
+ 8004438:	722b      	strb	r3, [r5, #8]
+ 800443a:	4b28      	ldr	r3, [pc, #160]	; (80044dc <USER_APP_AUTO_RESPONDER_Parse+0x59c>)
+ 800443c:	781b      	ldrb	r3, [r3, #0]
+ 800443e:	b2db      	uxtb	r3, r3
+ 8004440:	726b      	strb	r3, [r5, #9]
+ 8004442:	72ec      	strb	r4, [r5, #11]
+ 8004444:	f7ff fade 	bl	8003a04 <OnStoreSTSCFGContextRequest>
+ 8004448:	2111      	movs	r1, #17
+ 800444a:	e7b2      	b.n	80043b2 <USER_APP_AUTO_RESPONDER_Parse+0x472>
+ 800444c:	2b41      	cmp	r3, #65	; 0x41
+ 800444e:	f47f ade0 	bne.w	8004012 <USER_APP_AUTO_RESPONDER_Parse+0xd2>
+ 8004452:	7843      	ldrb	r3, [r0, #1]
+ 8004454:	2b43      	cmp	r3, #67	; 0x43
+ 8004456:	f47f addc 	bne.w	8004012 <USER_APP_AUTO_RESPONDER_Parse+0xd2>
+ 800445a:	2916      	cmp	r1, #22
+ 800445c:	f47f add9 	bne.w	8004012 <USER_APP_AUTO_RESPONDER_Parse+0xd2>
+ 8004460:	4d23      	ldr	r5, [pc, #140]	; (80044f0 <USER_APP_AUTO_RESPONDER_Parse+0x5b0>)
+ 8004462:	1c42      	adds	r2, r0, #1
+ 8004464:	2300      	movs	r3, #0
+ 8004466:	f812 1f01 	ldrb.w	r1, [r2, #1]!
+ 800446a:	54e9      	strb	r1, [r5, r3]
+ 800446c:	3301      	adds	r3, #1
+ 800446e:	2b14      	cmp	r3, #20
+ 8004470:	d1f9      	bne.n	8004466 <USER_APP_AUTO_RESPONDER_Parse+0x526>
+ 8004472:	f7fe fe7b 	bl	800316c <STS_YunhornAuthenticationCode_Process>
+ 8004476:	4b1f      	ldr	r3, [pc, #124]	; (80044f4 <USER_APP_AUTO_RESPONDER_Parse+0x5b4>)
+ 8004478:	7d5b      	ldrb	r3, [r3, #21]
+ 800447a:	2b01      	cmp	r3, #1
+ 800447c:	d119      	bne.n	80044b2 <USER_APP_AUTO_RESPONDER_Parse+0x572>
+ 800447e:	4915      	ldr	r1, [pc, #84]	; (80044d4 <USER_APP_AUTO_RESPONDER_Parse+0x594>)
+ 8004480:	2300      	movs	r3, #0
+ 8004482:	5cea      	ldrb	r2, [r5, r3]
+ 8004484:	18c8      	adds	r0, r1, r3
+ 8004486:	3301      	adds	r3, #1
+ 8004488:	b2d2      	uxtb	r2, r2
+ 800448a:	2b14      	cmp	r3, #20
+ 800448c:	f880 202c 	strb.w	r2, [r0, #44]	; 0x2c
+ 8004490:	d1f7      	bne.n	8004482 <USER_APP_AUTO_RESPONDER_Parse+0x542>
+ 8004492:	4b12      	ldr	r3, [pc, #72]	; (80044dc <USER_APP_AUTO_RESPONDER_Parse+0x59c>)
+ 8004494:	2200      	movs	r2, #0
+ 8004496:	701a      	strb	r2, [r3, #0]
+ 8004498:	781b      	ldrb	r3, [r3, #0]
+ 800449a:	b2db      	uxtb	r3, r3
+ 800449c:	724b      	strb	r3, [r1, #9]
+ 800449e:	f7ff fab1 	bl	8003a04 <OnStoreSTSCFGContextRequest>
+ 80044a2:	4a0b      	ldr	r2, [pc, #44]	; (80044d0 <USER_APP_AUTO_RESPONDER_Parse+0x590>)
+ 80044a4:	1e63      	subs	r3, r4, #1
+ 80044a6:	3415      	adds	r4, #21
+ 80044a8:	429c      	cmp	r4, r3
+ 80044aa:	d106      	bne.n	80044ba <USER_APP_AUTO_RESPONDER_Parse+0x57a>
+ 80044ac:	4a08      	ldr	r2, [pc, #32]	; (80044d0 <USER_APP_AUTO_RESPONDER_Parse+0x590>)
+ 80044ae:	2116      	movs	r1, #22
+ 80044b0:	e596      	b.n	8003fe0 <USER_APP_AUTO_RESPONDER_Parse+0xa0>
+ 80044b2:	4b0a      	ldr	r3, [pc, #40]	; (80044dc <USER_APP_AUTO_RESPONDER_Parse+0x59c>)
+ 80044b4:	2202      	movs	r2, #2
+ 80044b6:	701a      	strb	r2, [r3, #0]
+ 80044b8:	e7f3      	b.n	80044a2 <USER_APP_AUTO_RESPONDER_Parse+0x562>
+ 80044ba:	f813 1f01 	ldrb.w	r1, [r3, #1]!
+ 80044be:	f802 1b01 	strb.w	r1, [r2], #1
+ 80044c2:	e7f1      	b.n	80044a8 <USER_APP_AUTO_RESPONDER_Parse+0x568>
+ 80044c4:	fffff7de 	.word	0xfffff7de
+ 80044c8:	20000074 	.word	0x20000074
+ 80044cc:	2000000c 	.word	0x2000000c
+ 80044d0:	20000dcd 	.word	0x20000dcd
+ 80044d4:	20000078 	.word	0x20000078
+ 80044d8:	20000e62 	.word	0x20000e62
+ 80044dc:	20000c44 	.word	0x20000c44
+ 80044e0:	08014b7e 	.word	0x08014b7e
+ 80044e4:	08014bb5 	.word	0x08014bb5
+ 80044e8:	08014c00 	.word	0x08014c00
+ 80044ec:	08014c28 	.word	0x08014c28
+ 80044f0:	20000e4e 	.word	0x20000e4e
+ 80044f4:	20000ab4 	.word	0x20000ab4
+
+080044f8 <OnRxData>:
+ 80044f8:	b570      	push	{r4, r5, r6, lr}
+ 80044fa:	4605      	mov	r5, r0
+ 80044fc:	b086      	sub	sp, #24
+ 80044fe:	460c      	mov	r4, r1
+ 8004500:	2900      	cmp	r1, #0
+ 8004502:	d03b      	beq.n	800457c <OnRxData+0x84>
+ 8004504:	4828      	ldr	r0, [pc, #160]	; (80045a8 <OnRxData+0xb0>)
+ 8004506:	f00f fcdf 	bl	8013ec8 <UTIL_TIMER_Start>
+ 800450a:	7826      	ldrb	r6, [r4, #0]
+ 800450c:	b1ee      	cbz	r6, 800454a <OnRxData+0x52>
+ 800450e:	2d00      	cmp	r5, #0
+ 8004510:	d048      	beq.n	80045a4 <OnRxData+0xac>
+ 8004512:	6868      	ldr	r0, [r5, #4]
+ 8004514:	782e      	ldrb	r6, [r5, #0]
+ 8004516:	b1c0      	cbz	r0, 800454a <OnRxData+0x52>
+ 8004518:	2e03      	cmp	r6, #3
+ 800451a:	d00b      	beq.n	8004534 <OnRxData+0x3c>
+ 800451c:	2e0a      	cmp	r6, #10
+ 800451e:	d02f      	beq.n	8004580 <OnRxData+0x88>
+ 8004520:	2e02      	cmp	r6, #2
+ 8004522:	d112      	bne.n	800454a <OnRxData+0x52>
+ 8004524:	7869      	ldrb	r1, [r5, #1]
+ 8004526:	2901      	cmp	r1, #1
+ 8004528:	d00f      	beq.n	800454a <OnRxData+0x52>
+ 800452a:	060b      	lsls	r3, r1, #24
+ 800452c:	d40d      	bmi.n	800454a <OnRxData+0x52>
+ 800452e:	f7ff fd07 	bl	8003f40 <USER_APP_AUTO_RESPONDER_Parse>
+ 8004532:	e00a      	b.n	800454a <OnRxData+0x52>
+ 8004534:	786b      	ldrb	r3, [r5, #1]
+ 8004536:	2b01      	cmp	r3, #1
+ 8004538:	d107      	bne.n	800454a <OnRxData+0x52>
+ 800453a:	7800      	ldrb	r0, [r0, #0]
+ 800453c:	2801      	cmp	r0, #1
+ 800453e:	d002      	beq.n	8004546 <OnRxData+0x4e>
+ 8004540:	2802      	cmp	r0, #2
+ 8004542:	d000      	beq.n	8004546 <OnRxData+0x4e>
+ 8004544:	b908      	cbnz	r0, 800454a <OnRxData+0x52>
+ 8004546:	f006 ffc3 	bl	800b4d0 <LmHandlerRequestClass>
+ 800454a:	7c23      	ldrb	r3, [r4, #16]
+ 800454c:	2b05      	cmp	r3, #5
+ 800454e:	d815      	bhi.n	800457c <OnRxData+0x84>
+ 8004550:	f994 200a 	ldrsb.w	r2, [r4, #10]
+ 8004554:	9205      	str	r2, [sp, #20]
+ 8004556:	f994 2009 	ldrsb.w	r2, [r4, #9]
+ 800455a:	9204      	str	r2, [sp, #16]
+ 800455c:	4a13      	ldr	r2, [pc, #76]	; (80045ac <OnRxData+0xb4>)
+ 800455e:	f852 3023 	ldr.w	r3, [r2, r3, lsl #2]
+ 8004562:	9303      	str	r3, [sp, #12]
+ 8004564:	f994 3008 	ldrsb.w	r3, [r4, #8]
+ 8004568:	e9cd 6301 	strd	r6, r3, [sp, #4]
+ 800456c:	2200      	movs	r2, #0
+ 800456e:	68e3      	ldr	r3, [r4, #12]
+ 8004570:	9300      	str	r3, [sp, #0]
+ 8004572:	4611      	mov	r1, r2
+ 8004574:	4b0e      	ldr	r3, [pc, #56]	; (80045b0 <OnRxData+0xb8>)
+ 8004576:	2003      	movs	r0, #3
+ 8004578:	f00f f92a 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 800457c:	b006      	add	sp, #24
+ 800457e:	bd70      	pop	{r4, r5, r6, pc}
+ 8004580:	786b      	ldrb	r3, [r5, #1]
+ 8004582:	2b01      	cmp	r3, #1
+ 8004584:	d1e1      	bne.n	800454a <OnRxData+0x52>
+ 8004586:	7802      	ldrb	r2, [r0, #0]
+ 8004588:	4b0a      	ldr	r3, [pc, #40]	; (80045b4 <OnRxData+0xbc>)
+ 800458a:	f002 0201 	and.w	r2, r2, #1
+ 800458e:	701a      	strb	r2, [r3, #0]
+ 8004590:	b92a      	cbnz	r2, 800459e <OnRxData+0xa6>
+ 8004592:	4b09      	ldr	r3, [pc, #36]	; (80045b8 <OnRxData+0xc0>)
+ 8004594:	4611      	mov	r1, r2
+ 8004596:	2003      	movs	r0, #3
+ 8004598:	f00f f91a 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 800459c:	e7d5      	b.n	800454a <OnRxData+0x52>
+ 800459e:	4b07      	ldr	r3, [pc, #28]	; (80045bc <OnRxData+0xc4>)
+ 80045a0:	2200      	movs	r2, #0
+ 80045a2:	e7f7      	b.n	8004594 <OnRxData+0x9c>
+ 80045a4:	462e      	mov	r6, r5
+ 80045a6:	e7d0      	b.n	800454a <OnRxData+0x52>
+ 80045a8:	20000d50 	.word	0x20000d50
+ 80045ac:	08014cac 	.word	0x08014cac
+ 80045b0:	08014c56 	.word	0x08014c56
+ 80045b4:	20000d37 	.word	0x20000d37
+ 80045b8:	08014c43 	.word	0x08014c43
+ 80045bc:	08014c4d 	.word	0x08014c4d
+
+080045c0 <LoraInfo_Init>:
+ 80045c0:	4b03      	ldr	r3, [pc, #12]	; (80045d0 <LoraInfo_Init+0x10>)
+ 80045c2:	2200      	movs	r2, #0
+ 80045c4:	e9c3 2202 	strd	r2, r2, [r3, #8]
+ 80045c8:	2201      	movs	r2, #1
+ 80045ca:	e9c3 2200 	strd	r2, r2, [r3]
+ 80045ce:	4770      	bx	lr
+ 80045d0:	20000e64 	.word	0x20000e64
+
+080045d4 <LoraInfo_GetPtr>:
+ 80045d4:	4800      	ldr	r0, [pc, #0]	; (80045d8 <LoraInfo_GetPtr+0x4>)
+ 80045d6:	4770      	bx	lr
+ 80045d8:	20000e64 	.word	0x20000e64
+
+080045dc <LL_AHB2_GRP1_EnableClock>:
+ 80045dc:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 80045e0:	b082      	sub	sp, #8
+ 80045e2:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 80045e4:	4302      	orrs	r2, r0
+ 80045e6:	64da      	str	r2, [r3, #76]	; 0x4c
+ 80045e8:	6cdb      	ldr	r3, [r3, #76]	; 0x4c
+ 80045ea:	4003      	ands	r3, r0
+ 80045ec:	9301      	str	r3, [sp, #4]
+ 80045ee:	9b01      	ldr	r3, [sp, #4]
+ 80045f0:	b002      	add	sp, #8
+ 80045f2:	4770      	bx	lr
+
+080045f4 <RBI_Init>:
+ 80045f4:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 80045f8:	b086      	sub	sp, #24
+ 80045fa:	2400      	movs	r4, #0
+ 80045fc:	2002      	movs	r0, #2
+ 80045fe:	4d15      	ldr	r5, [pc, #84]	; (8004654 <RBI_Init+0x60>)
+ 8004600:	9405      	str	r4, [sp, #20]
+ 8004602:	f7ff ffeb 	bl	80045dc <LL_AHB2_GRP1_EnableClock>
+ 8004606:	2004      	movs	r0, #4
+ 8004608:	f7ff ffe8 	bl	80045dc <LL_AHB2_GRP1_EnableClock>
+ 800460c:	4f12      	ldr	r7, [pc, #72]	; (8004658 <RBI_Init+0x64>)
+ 800460e:	9403      	str	r4, [sp, #12]
+ 8004610:	f44f 7680 	mov.w	r6, #256	; 0x100
+ 8004614:	2301      	movs	r3, #1
+ 8004616:	eb0d 0100 	add.w	r1, sp, r0
+ 800461a:	e9cd 6301 	strd	r6, r3, [sp, #4]
+ 800461e:	4628      	mov	r0, r5
+ 8004620:	2303      	movs	r3, #3
+ 8004622:	9304      	str	r3, [sp, #16]
+ 8004624:	f44f 5800 	mov.w	r8, #8192	; 0x2000
+ 8004628:	f003 febc 	bl	80083a4 <HAL_GPIO_Init>
+ 800462c:	a901      	add	r1, sp, #4
+ 800462e:	4638      	mov	r0, r7
+ 8004630:	f8cd 8004 	str.w	r8, [sp, #4]
+ 8004634:	f003 feb6 	bl	80083a4 <HAL_GPIO_Init>
+ 8004638:	4622      	mov	r2, r4
+ 800463a:	4641      	mov	r1, r8
+ 800463c:	4638      	mov	r0, r7
+ 800463e:	f003 ffd7 	bl	80085f0 <HAL_GPIO_WritePin>
+ 8004642:	4628      	mov	r0, r5
+ 8004644:	4622      	mov	r2, r4
+ 8004646:	4631      	mov	r1, r6
+ 8004648:	f003 ffd2 	bl	80085f0 <HAL_GPIO_WritePin>
+ 800464c:	4620      	mov	r0, r4
+ 800464e:	b006      	add	sp, #24
+ 8004650:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 8004654:	48000400 	.word	0x48000400
+ 8004658:	48000800 	.word	0x48000800
+
+0800465c <RBI_ConfigRFSwitch>:
+ 800465c:	2803      	cmp	r0, #3
+ 800465e:	b510      	push	{r4, lr}
+ 8004660:	d80e      	bhi.n	8004680 <RBI_ConfigRFSwitch+0x24>
+ 8004662:	2801      	cmp	r0, #1
+ 8004664:	d810      	bhi.n	8004688 <RBI_ConfigRFSwitch+0x2c>
+ 8004666:	b968      	cbnz	r0, 8004684 <RBI_ConfigRFSwitch+0x28>
+ 8004668:	4602      	mov	r2, r0
+ 800466a:	480b      	ldr	r0, [pc, #44]	; (8004698 <RBI_ConfigRFSwitch+0x3c>)
+ 800466c:	f44f 7180 	mov.w	r1, #256	; 0x100
+ 8004670:	f003 ffbe 	bl	80085f0 <HAL_GPIO_WritePin>
+ 8004674:	2200      	movs	r2, #0
+ 8004676:	4809      	ldr	r0, [pc, #36]	; (800469c <RBI_ConfigRFSwitch+0x40>)
+ 8004678:	f44f 5100 	mov.w	r1, #8192	; 0x2000
+ 800467c:	f003 ffb8 	bl	80085f0 <HAL_GPIO_WritePin>
+ 8004680:	2000      	movs	r0, #0
+ 8004682:	bd10      	pop	{r4, pc}
+ 8004684:	2201      	movs	r2, #1
+ 8004686:	e7f0      	b.n	800466a <RBI_ConfigRFSwitch+0xe>
+ 8004688:	2200      	movs	r2, #0
+ 800468a:	4803      	ldr	r0, [pc, #12]	; (8004698 <RBI_ConfigRFSwitch+0x3c>)
+ 800468c:	f44f 7180 	mov.w	r1, #256	; 0x100
+ 8004690:	f003 ffae 	bl	80085f0 <HAL_GPIO_WritePin>
+ 8004694:	2201      	movs	r2, #1
+ 8004696:	e7ee      	b.n	8004676 <RBI_ConfigRFSwitch+0x1a>
+ 8004698:	48000400 	.word	0x48000400
+ 800469c:	48000800 	.word	0x48000800
+
+080046a0 <RBI_GetTxConfig>:
+ 80046a0:	2002      	movs	r0, #2
+ 80046a2:	4770      	bx	lr
+
+080046a4 <RBI_IsTCXO>:
+ 80046a4:	2000      	movs	r0, #0
+ 80046a6:	4770      	bx	lr
+
+080046a8 <RBI_IsDCDC>:
+ 80046a8:	2001      	movs	r0, #1
+ 80046aa:	4770      	bx	lr
+
+080046ac <RBI_GetRFOMaxPowerConfig>:
+ 80046ac:	2800      	cmp	r0, #0
+ 80046ae:	bf0c      	ite	eq
+ 80046b0:	200f      	moveq	r0, #15
+ 80046b2:	2016      	movne	r0, #22
+ 80046b4:	4770      	bx	lr
+	...
+
+080046b8 <Reset_Handler>:
+ 80046b8:	480d      	ldr	r0, [pc, #52]	; (80046f0 <LoopForever+0x2>)
+ 80046ba:	4685      	mov	sp, r0
+ 80046bc:	f002 fe8e 	bl	80073dc <SystemInit>
+ 80046c0:	480c      	ldr	r0, [pc, #48]	; (80046f4 <LoopForever+0x6>)
+ 80046c2:	490d      	ldr	r1, [pc, #52]	; (80046f8 <LoopForever+0xa>)
+ 80046c4:	4a0d      	ldr	r2, [pc, #52]	; (80046fc <LoopForever+0xe>)
+ 80046c6:	2300      	movs	r3, #0
+ 80046c8:	e002      	b.n	80046d0 <LoopCopyDataInit>
+
+080046ca <CopyDataInit>:
+ 80046ca:	58d4      	ldr	r4, [r2, r3]
+ 80046cc:	50c4      	str	r4, [r0, r3]
+ 80046ce:	3304      	adds	r3, #4
+
+080046d0 <LoopCopyDataInit>:
+ 80046d0:	18c4      	adds	r4, r0, r3
+ 80046d2:	428c      	cmp	r4, r1
+ 80046d4:	d3f9      	bcc.n	80046ca <CopyDataInit>
+ 80046d6:	4a0a      	ldr	r2, [pc, #40]	; (8004700 <LoopForever+0x12>)
+ 80046d8:	4c0a      	ldr	r4, [pc, #40]	; (8004704 <LoopForever+0x16>)
+ 80046da:	2300      	movs	r3, #0
+ 80046dc:	e001      	b.n	80046e2 <LoopFillZerobss>
+
+080046de <FillZerobss>:
+ 80046de:	6013      	str	r3, [r2, #0]
+ 80046e0:	3204      	adds	r2, #4
+
+080046e2 <LoopFillZerobss>:
+ 80046e2:	42a2      	cmp	r2, r4
+ 80046e4:	d3fb      	bcc.n	80046de <FillZerobss>
+ 80046e6:	f00f fdbb 	bl	8014260 <__libc_init_array>
+ 80046ea:	f7fd ffc7 	bl	800267c <main>
+
+080046ee <LoopForever>:
+ 80046ee:	e7fe      	b.n	80046ee <LoopForever>
+ 80046f0:	20010000 	.word	0x20010000
+ 80046f4:	20000000 	.word	0x20000000
+ 80046f8:	200008cc 	.word	0x200008cc
+ 80046fc:	08015a0c 	.word	0x08015a0c
+ 8004700:	200008cc 	.word	0x200008cc
+ 8004704:	20002e38 	.word	0x20002e38
+
+08004708 <ADC_IRQHandler>:
+ 8004708:	e7fe      	b.n	8004708 <ADC_IRQHandler>
+
+0800470a <LL_AHB2_GRP1_EnableClock.constprop.0>:
+ 800470a:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800470e:	b082      	sub	sp, #8
+ 8004710:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 8004712:	f042 0201 	orr.w	r2, r2, #1
+ 8004716:	64da      	str	r2, [r3, #76]	; 0x4c
+ 8004718:	6cdb      	ldr	r3, [r3, #76]	; 0x4c
+ 800471a:	f003 0301 	and.w	r3, r3, #1
+ 800471e:	9301      	str	r3, [sp, #4]
+ 8004720:	9b01      	ldr	r3, [sp, #4]
+ 8004722:	b002      	add	sp, #8
+ 8004724:	4770      	bx	lr
+	...
+
+08004728 <XWL55_WLE5_53L0X_I2C2Configure>:
+ 8004728:	b530      	push	{r4, r5, lr}
+ 800472a:	b087      	sub	sp, #28
+ 800472c:	f7ff ffed 	bl	800470a <LL_AHB2_GRP1_EnableClock.constprop.0>
+ 8004730:	f44f 5180 	mov.w	r1, #4096	; 0x1000
+ 8004734:	2201      	movs	r2, #1
+ 8004736:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 800473a:	f003 ff59 	bl	80085f0 <HAL_GPIO_WritePin>
+ 800473e:	2201      	movs	r2, #1
+ 8004740:	f44f 6100 	mov.w	r1, #2048	; 0x800
+ 8004744:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8004748:	f003 ff52 	bl	80085f0 <HAL_GPIO_WritePin>
+ 800474c:	f44f 55c0 	mov.w	r5, #6144	; 0x1800
+ 8004750:	2311      	movs	r3, #17
+ 8004752:	e9cd 5301 	strd	r5, r3, [sp, #4]
+ 8004756:	a901      	add	r1, sp, #4
+ 8004758:	2301      	movs	r3, #1
+ 800475a:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 800475e:	9303      	str	r3, [sp, #12]
+ 8004760:	f003 fe20 	bl	80083a4 <HAL_GPIO_Init>
+ 8004764:	2408      	movs	r4, #8
+ 8004766:	250a      	movs	r5, #10
+ 8004768:	2200      	movs	r2, #0
+ 800476a:	f44f 5180 	mov.w	r1, #4096	; 0x1000
+ 800476e:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8004772:	f003 ff3d 	bl	80085f0 <HAL_GPIO_WritePin>
+ 8004776:	2001      	movs	r0, #1
+ 8004778:	f7fe f9f0 	bl	8002b5c <HAL_Delay>
+ 800477c:	2201      	movs	r2, #1
+ 800477e:	f44f 5180 	mov.w	r1, #4096	; 0x1000
+ 8004782:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8004786:	f003 ff33 	bl	80085f0 <HAL_GPIO_WritePin>
+ 800478a:	2001      	movs	r0, #1
+ 800478c:	f7fe f9e6 	bl	8002b5c <HAL_Delay>
+ 8004790:	3d01      	subs	r5, #1
+ 8004792:	d1e9      	bne.n	8004768 <XWL55_WLE5_53L0X_I2C2Configure+0x40>
+ 8004794:	f44f 6100 	mov.w	r1, #2048	; 0x800
+ 8004798:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 800479c:	f003 ff22 	bl	80085e4 <HAL_GPIO_ReadPin>
+ 80047a0:	b908      	cbnz	r0, 80047a6 <XWL55_WLE5_53L0X_I2C2Configure+0x7e>
+ 80047a2:	3c01      	subs	r4, #1
+ 80047a4:	d1df      	bne.n	8004766 <XWL55_WLE5_53L0X_I2C2Configure+0x3e>
+ 80047a6:	f44f 6100 	mov.w	r1, #2048	; 0x800
+ 80047aa:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 80047ae:	f003 ff19 	bl	80085e4 <HAL_GPIO_ReadPin>
+ 80047b2:	bbb0      	cbnz	r0, 8004822 <XWL55_WLE5_53L0X_I2C2Configure+0xfa>
+ 80047b4:	f7ff ffa9 	bl	800470a <LL_AHB2_GRP1_EnableClock.constprop.0>
+ 80047b8:	f44f 7480 	mov.w	r4, #256	; 0x100
+ 80047bc:	2301      	movs	r3, #1
+ 80047be:	9003      	str	r0, [sp, #12]
+ 80047c0:	a901      	add	r1, sp, #4
+ 80047c2:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 80047c6:	e9cd 4301 	strd	r4, r3, [sp, #4]
+ 80047ca:	f003 fdeb 	bl	80083a4 <HAL_GPIO_Init>
+ 80047ce:	2201      	movs	r2, #1
+ 80047d0:	f44f 7180 	mov.w	r1, #256	; 0x100
+ 80047d4:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 80047d8:	f003 ff0a 	bl	80085f0 <HAL_GPIO_WritePin>
+ 80047dc:	2021      	movs	r0, #33	; 0x21
+ 80047de:	f7fe f9bd 	bl	8002b5c <HAL_Delay>
+ 80047e2:	2200      	movs	r2, #0
+ 80047e4:	f44f 7180 	mov.w	r1, #256	; 0x100
+ 80047e8:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 80047ec:	f003 ff00 	bl	80085f0 <HAL_GPIO_WritePin>
+ 80047f0:	2021      	movs	r0, #33	; 0x21
+ 80047f2:	f7fe f9b3 	bl	8002b5c <HAL_Delay>
+ 80047f6:	2201      	movs	r2, #1
+ 80047f8:	f44f 7180 	mov.w	r1, #256	; 0x100
+ 80047fc:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8004800:	f003 fef6 	bl	80085f0 <HAL_GPIO_WritePin>
+ 8004804:	2021      	movs	r0, #33	; 0x21
+ 8004806:	f7fe f9a9 	bl	8002b5c <HAL_Delay>
+ 800480a:	2200      	movs	r2, #0
+ 800480c:	f44f 7180 	mov.w	r1, #256	; 0x100
+ 8004810:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8004814:	f003 feec 	bl	80085f0 <HAL_GPIO_WritePin>
+ 8004818:	f44f 7025 	mov.w	r0, #660	; 0x294
+ 800481c:	f7fe f99e 	bl	8002b5c <HAL_Delay>
+ 8004820:	e7d5      	b.n	80047ce <XWL55_WLE5_53L0X_I2C2Configure+0xa6>
+ 8004822:	f7ff ff72 	bl	800470a <LL_AHB2_GRP1_EnableClock.constprop.0>
+ 8004826:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800482a:	2400      	movs	r4, #0
+ 800482c:	6d9a      	ldr	r2, [r3, #88]	; 0x58
+ 800482e:	f442 0280 	orr.w	r2, r2, #4194304	; 0x400000
+ 8004832:	659a      	str	r2, [r3, #88]	; 0x58
+ 8004834:	6d9b      	ldr	r3, [r3, #88]	; 0x58
+ 8004836:	f403 0380 	and.w	r3, r3, #4194304	; 0x400000
+ 800483a:	9300      	str	r3, [sp, #0]
+ 800483c:	f44f 52c0 	mov.w	r2, #6144	; 0x1800
+ 8004840:	9b00      	ldr	r3, [sp, #0]
+ 8004842:	2312      	movs	r3, #18
+ 8004844:	e9cd 2301 	strd	r2, r3, [sp, #4]
+ 8004848:	2303      	movs	r3, #3
+ 800484a:	e9cd 4303 	strd	r4, r3, [sp, #12]
+ 800484e:	2304      	movs	r3, #4
+ 8004850:	eb0d 0103 	add.w	r1, sp, r3
+ 8004854:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8004858:	9305      	str	r3, [sp, #20]
+ 800485a:	f003 fda3 	bl	80083a4 <HAL_GPIO_Init>
+ 800485e:	4808      	ldr	r0, [pc, #32]	; (8004880 <XWL55_WLE5_53L0X_I2C2Configure+0x158>)
+ 8004860:	4908      	ldr	r1, [pc, #32]	; (8004884 <XWL55_WLE5_53L0X_I2C2Configure+0x15c>)
+ 8004862:	4b09      	ldr	r3, [pc, #36]	; (8004888 <XWL55_WLE5_53L0X_I2C2Configure+0x160>)
+ 8004864:	6084      	str	r4, [r0, #8]
+ 8004866:	e9c0 1300 	strd	r1, r3, [r0]
+ 800486a:	2301      	movs	r3, #1
+ 800486c:	e9c0 3403 	strd	r3, r4, [r0, #12]
+ 8004870:	e9c0 4407 	strd	r4, r4, [r0, #28]
+ 8004874:	6144      	str	r4, [r0, #20]
+ 8004876:	f004 f82f 	bl	80088d8 <HAL_I2C_Init>
+ 800487a:	b007      	add	sp, #28
+ 800487c:	bd30      	pop	{r4, r5, pc}
+ 800487e:	bf00      	nop
+ 8004880:	20000e74 	.word	0x20000e74
+ 8004884:	40005800 	.word	0x40005800
+ 8004888:	2010091a 	.word	0x2010091a
+
+0800488c <XWL55_WLE5_53L0X_Init>:
+ 800488c:	f7ff bf4c 	b.w	8004728 <XWL55_WLE5_53L0X_I2C2Configure>
+
+08004890 <XWL55_WLE5_53L0X_ResetId>:
+ 8004890:	b110      	cbz	r0, 8004898 <XWL55_WLE5_53L0X_ResetId+0x8>
+ 8004892:	2801      	cmp	r0, #1
+ 8004894:	d009      	beq.n	80048aa <XWL55_WLE5_53L0X_ResetId+0x1a>
+ 8004896:	4770      	bx	lr
+ 8004898:	3901      	subs	r1, #1
+ 800489a:	424a      	negs	r2, r1
+ 800489c:	414a      	adcs	r2, r1
+ 800489e:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 80048a2:	f44f 7100 	mov.w	r1, #512	; 0x200
+ 80048a6:	f003 bea3 	b.w	80085f0 <HAL_GPIO_WritePin>
+ 80048aa:	1e4b      	subs	r3, r1, #1
+ 80048ac:	425a      	negs	r2, r3
+ 80048ae:	4802      	ldr	r0, [pc, #8]	; (80048b8 <XWL55_WLE5_53L0X_ResetId+0x28>)
+ 80048b0:	415a      	adcs	r2, r3
+ 80048b2:	2108      	movs	r1, #8
+ 80048b4:	e7f7      	b.n	80048a6 <XWL55_WLE5_53L0X_ResetId+0x16>
+ 80048b6:	bf00      	nop
+ 80048b8:	48000400 	.word	0x48000400
+
+080048bc <MX_TOF_Process>:
+ 80048bc:	b508      	push	{r3, lr}
+ 80048be:	2001      	movs	r0, #1
+ 80048c0:	f7fe fcce 	bl	8003260 <STS_SENSOR_Power_ON>
+ 80048c4:	2064      	movs	r0, #100	; 0x64
+ 80048c6:	f7fe f949 	bl	8002b5c <HAL_Delay>
+ 80048ca:	f000 f9db 	bl	8004c84 <STS_TOF_VL53L0X_Range_Process>
+ 80048ce:	2064      	movs	r0, #100	; 0x64
+ 80048d0:	f7fe f944 	bl	8002b5c <HAL_Delay>
+ 80048d4:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 80048d8:	2001      	movs	r0, #1
+ 80048da:	f7fe bcc6 	b.w	800326a <STS_SENSOR_Power_OFF>
+	...
+
+080048e0 <STS_R0_SENSOR_Read>:
+ 80048e0:	4b03      	ldr	r3, [pc, #12]	; (80048f0 <STS_R0_SENSOR_Read+0x10>)
+ 80048e2:	681a      	ldr	r2, [r3, #0]
+ 80048e4:	8002      	strh	r2, [r0, #0]
+ 80048e6:	685a      	ldr	r2, [r3, #4]
+ 80048e8:	689b      	ldr	r3, [r3, #8]
+ 80048ea:	8102      	strh	r2, [r0, #8]
+ 80048ec:	8143      	strh	r3, [r0, #10]
+ 80048ee:	4770      	bx	lr
+ 80048f0:	20000ef4 	.word	0x20000ef4
+
+080048f4 <STS_SENSOR_MEMS_Get_ID>:
+ 80048f4:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 80048f6:	4604      	mov	r4, r0
+ 80048f8:	f000 f816 	bl	8004928 <sts_tof_vl53l0x_DetectSensors>
+ 80048fc:	f010 05ff 	ands.w	r5, r0, #255	; 0xff
+ 8004900:	bf1c      	itt	ne
+ 8004902:	23ee      	movne	r3, #238	; 0xee
+ 8004904:	7023      	strbne	r3, [r4, #0]
+ 8004906:	23aa      	movs	r3, #170	; 0xaa
+ 8004908:	7063      	strb	r3, [r4, #1]
+ 800490a:	9301      	str	r3, [sp, #4]
+ 800490c:	2200      	movs	r2, #0
+ 800490e:	7823      	ldrb	r3, [r4, #0]
+ 8004910:	9300      	str	r3, [sp, #0]
+ 8004912:	4611      	mov	r1, r2
+ 8004914:	4b03      	ldr	r3, [pc, #12]	; (8004924 <STS_SENSOR_MEMS_Get_ID+0x30>)
+ 8004916:	2001      	movs	r0, #1
+ 8004918:	f00e ff5a 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 800491c:	4628      	mov	r0, r5
+ 800491e:	b003      	add	sp, #12
+ 8004920:	bd30      	pop	{r4, r5, pc}
+ 8004922:	bf00      	nop
+ 8004924:	08014cc4 	.word	0x08014cc4
+
+08004928 <sts_tof_vl53l0x_DetectSensors>:
+ 8004928:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 800492c:	2400      	movs	r4, #0
+ 800492e:	4f41      	ldr	r7, [pc, #260]	; (8004a34 <sts_tof_vl53l0x_DetectSensors+0x10c>)
+ 8004930:	4d41      	ldr	r5, [pc, #260]	; (8004a38 <sts_tof_vl53l0x_DetectSensors+0x110>)
+ 8004932:	603c      	str	r4, [r7, #0]
+ 8004934:	b089      	sub	sp, #36	; 0x24
+ 8004936:	4621      	mov	r1, r4
+ 8004938:	4620      	mov	r0, r4
+ 800493a:	f7ff ffa9 	bl	8004890 <XWL55_WLE5_53L0X_ResetId>
+ 800493e:	4621      	mov	r1, r4
+ 8004940:	2001      	movs	r0, #1
+ 8004942:	f7ff ffa5 	bl	8004890 <XWL55_WLE5_53L0X_ResetId>
+ 8004946:	4621      	mov	r1, r4
+ 8004948:	2002      	movs	r0, #2
+ 800494a:	f7ff ffa1 	bl	8004890 <XWL55_WLE5_53L0X_ResetId>
+ 800494e:	f8df a0ec 	ldr.w	sl, [pc, #236]	; 8004a3c <sts_tof_vl53l0x_DetectSensors+0x114>
+ 8004952:	f8df b0ec 	ldr.w	fp, [pc, #236]	; 8004a40 <sts_tof_vl53l0x_DetectSensors+0x118>
+ 8004956:	f8df 90ec 	ldr.w	r9, [pc, #236]	; 8004a44 <sts_tof_vl53l0x_DetectSensors+0x11c>
+ 800495a:	f895 0164 	ldrb.w	r0, [r5, #356]	; 0x164
+ 800495e:	2352      	movs	r3, #82	; 0x52
+ 8004960:	2101      	movs	r1, #1
+ 8004962:	2600      	movs	r6, #0
+ 8004964:	f885 3160 	strb.w	r3, [r5, #352]	; 0x160
+ 8004968:	f8c5 6168 	str.w	r6, [r5, #360]	; 0x168
+ 800496c:	f7ff ff90 	bl	8004890 <XWL55_WLE5_53L0X_ResetId>
+ 8004970:	2003      	movs	r0, #3
+ 8004972:	f7fe f8f3 	bl	8002b5c <HAL_Delay>
+ 8004976:	f10d 021e 	add.w	r2, sp, #30
+ 800497a:	21c0      	movs	r1, #192	; 0xc0
+ 800497c:	4628      	mov	r0, r5
+ 800497e:	f002 fce1 	bl	8007344 <VL53L0X_RdWord>
+ 8004982:	4602      	mov	r2, r0
+ 8004984:	b150      	cbz	r0, 800499c <sts_tof_vl53l0x_DetectSensors+0x74>
+ 8004986:	4b30      	ldr	r3, [pc, #192]	; (8004a48 <sts_tof_vl53l0x_DetectSensors+0x120>)
+ 8004988:	4632      	mov	r2, r6
+ 800498a:	4611      	mov	r1, r2
+ 800498c:	2001      	movs	r0, #1
+ 800498e:	f00e ff1f 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8004992:	2100      	movs	r1, #0
+ 8004994:	b2e0      	uxtb	r0, r4
+ 8004996:	f7ff ff7b 	bl	8004890 <XWL55_WLE5_53L0X_ResetId>
+ 800499a:	e037      	b.n	8004a0c <sts_tof_vl53l0x_DetectSensors+0xe4>
+ 800499c:	f8bd 301e 	ldrh.w	r3, [sp, #30]
+ 80049a0:	f64e 61aa 	movw	r1, #61098	; 0xeeaa
+ 80049a4:	428b      	cmp	r3, r1
+ 80049a6:	d13d      	bne.n	8004a24 <sts_tof_vl53l0x_DetectSensors+0xfc>
+ 80049a8:	0066      	lsls	r6, r4, #1
+ 80049aa:	3654      	adds	r6, #84	; 0x54
+ 80049ac:	b2f6      	uxtb	r6, r6
+ 80049ae:	9005      	str	r0, [sp, #20]
+ 80049b0:	4631      	mov	r1, r6
+ 80049b2:	4628      	mov	r0, r5
+ 80049b4:	f000 f9de 	bl	8004d74 <VL53L0X_SetDeviceAddress>
+ 80049b8:	4680      	mov	r8, r0
+ 80049ba:	b110      	cbz	r0, 80049c2 <sts_tof_vl53l0x_DetectSensors+0x9a>
+ 80049bc:	4b23      	ldr	r3, [pc, #140]	; (8004a4c <sts_tof_vl53l0x_DetectSensors+0x124>)
+ 80049be:	9a05      	ldr	r2, [sp, #20]
+ 80049c0:	e7e3      	b.n	800498a <sts_tof_vl53l0x_DetectSensors+0x62>
+ 80049c2:	f10d 021e 	add.w	r2, sp, #30
+ 80049c6:	21c0      	movs	r1, #192	; 0xc0
+ 80049c8:	4628      	mov	r0, r5
+ 80049ca:	f885 6160 	strb.w	r6, [r5, #352]	; 0x160
+ 80049ce:	f002 fcb9 	bl	8007344 <VL53L0X_RdWord>
+ 80049d2:	4628      	mov	r0, r5
+ 80049d4:	f000 fb92 	bl	80050fc <VL53L0X_DataInit>
+ 80049d8:	4602      	mov	r2, r0
+ 80049da:	bb00      	cbnz	r0, 8004a1e <sts_tof_vl53l0x_DetectSensors+0xf6>
+ 80049dc:	683b      	ldr	r3, [r7, #0]
+ 80049de:	f8d9 1000 	ldr.w	r1, [r9]
+ 80049e2:	2001      	movs	r0, #1
+ 80049e4:	4403      	add	r3, r0
+ 80049e6:	603b      	str	r3, [r7, #0]
+ 80049e8:	fa00 f304 	lsl.w	r3, r0, r4
+ 80049ec:	430b      	orrs	r3, r1
+ 80049ee:	f8c9 3000 	str.w	r3, [r9]
+ 80049f2:	9302      	str	r3, [sp, #8]
+ 80049f4:	f895 3160 	ldrb.w	r3, [r5, #352]	; 0x160
+ 80049f8:	9301      	str	r3, [sp, #4]
+ 80049fa:	f8d5 3164 	ldr.w	r3, [r5, #356]	; 0x164
+ 80049fe:	9300      	str	r3, [sp, #0]
+ 8004a00:	4611      	mov	r1, r2
+ 8004a02:	4b13      	ldr	r3, [pc, #76]	; (8004a50 <sts_tof_vl53l0x_DetectSensors+0x128>)
+ 8004a04:	f8c5 0168 	str.w	r0, [r5, #360]	; 0x168
+ 8004a08:	f00e fee2 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8004a0c:	3401      	adds	r4, #1
+ 8004a0e:	2c03      	cmp	r4, #3
+ 8004a10:	f505 75c8 	add.w	r5, r5, #400	; 0x190
+ 8004a14:	d1a1      	bne.n	800495a <sts_tof_vl53l0x_DetectSensors+0x32>
+ 8004a16:	6838      	ldr	r0, [r7, #0]
+ 8004a18:	b009      	add	sp, #36	; 0x24
+ 8004a1a:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 8004a1e:	465b      	mov	r3, fp
+ 8004a20:	4642      	mov	r2, r8
+ 8004a22:	e7b2      	b.n	800498a <sts_tof_vl53l0x_DetectSensors+0x62>
+ 8004a24:	9300      	str	r3, [sp, #0]
+ 8004a26:	4601      	mov	r1, r0
+ 8004a28:	4653      	mov	r3, sl
+ 8004a2a:	2001      	movs	r0, #1
+ 8004a2c:	f00e fed0 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8004a30:	e7af      	b.n	8004992 <sts_tof_vl53l0x_DetectSensors+0x6a>
+ 8004a32:	bf00      	nop
+ 8004a34:	20000eec 	.word	0x20000eec
+ 8004a38:	200000bc 	.word	0x200000bc
+ 8004a3c:	08014d6e 	.word	0x08014d6e
+ 8004a40:	08014d54 	.word	0x08014d54
+ 8004a44:	20000ee8 	.word	0x20000ee8
+ 8004a48:	08014cd9 	.word	0x08014cd9
+ 8004a4c:	08014ce9 	.word	0x08014ce9
+ 8004a50:	08014d0b 	.word	0x08014d0b
+
+08004a54 <sts_tof_vl53l0x_SetupSingleShot>:
+ 8004a54:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8004a58:	f44f 4380 	mov.w	r3, #16384	; 0x4000
+ 8004a5c:	b087      	sub	sp, #28
+ 8004a5e:	f44f 1290 	mov.w	r2, #1179648	; 0x120000
+ 8004a62:	e9cd 3202 	strd	r3, r2, [sp, #8]
+ 8004a66:	4c68      	ldr	r4, [pc, #416]	; (8004c08 <sts_tof_vl53l0x_SetupSingleShot+0x1b4>)
+ 8004a68:	f8df a1a0 	ldr.w	sl, [pc, #416]	; 8004c0c <sts_tof_vl53l0x_SetupSingleShot+0x1b8>
+ 8004a6c:	f8df b1a0 	ldr.w	fp, [pc, #416]	; 8004c10 <sts_tof_vl53l0x_SetupSingleShot+0x1bc>
+ 8004a70:	4605      	mov	r5, r0
+ 8004a72:	f04f 090a 	mov.w	r9, #10
+ 8004a76:	f04f 080e 	mov.w	r8, #14
+ 8004a7a:	f248 07e8 	movw	r7, #33000	; 0x80e8
+ 8004a7e:	2600      	movs	r6, #0
+ 8004a80:	f8d4 3168 	ldr.w	r3, [r4, #360]	; 0x168
+ 8004a84:	2b00      	cmp	r3, #0
+ 8004a86:	f000 80ae 	beq.w	8004be6 <sts_tof_vl53l0x_SetupSingleShot+0x192>
+ 8004a8a:	2200      	movs	r2, #0
+ 8004a8c:	4b61      	ldr	r3, [pc, #388]	; (8004c14 <sts_tof_vl53l0x_SetupSingleShot+0x1c0>)
+ 8004a8e:	9600      	str	r6, [sp, #0]
+ 8004a90:	4611      	mov	r1, r2
+ 8004a92:	2001      	movs	r0, #1
+ 8004a94:	f00e fe9c 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8004a98:	4620      	mov	r0, r4
+ 8004a9a:	f000 fe23 	bl	80056e4 <VL53L0X_StaticInit>
+ 8004a9e:	b128      	cbz	r0, 8004aac <sts_tof_vl53l0x_SetupSingleShot+0x58>
+ 8004aa0:	2200      	movs	r2, #0
+ 8004aa2:	4b5d      	ldr	r3, [pc, #372]	; (8004c18 <sts_tof_vl53l0x_SetupSingleShot+0x1c4>)
+ 8004aa4:	4611      	mov	r1, r2
+ 8004aa6:	2001      	movs	r0, #1
+ 8004aa8:	f00e fe92 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8004aac:	f10d 0212 	add.w	r2, sp, #18
+ 8004ab0:	f10d 0111 	add.w	r1, sp, #17
+ 8004ab4:	4620      	mov	r0, r4
+ 8004ab6:	f000 fbcf 	bl	8005258 <VL53L0X_PerformRefCalibration>
+ 8004aba:	b128      	cbz	r0, 8004ac8 <sts_tof_vl53l0x_SetupSingleShot+0x74>
+ 8004abc:	2200      	movs	r2, #0
+ 8004abe:	4653      	mov	r3, sl
+ 8004ac0:	4611      	mov	r1, r2
+ 8004ac2:	2001      	movs	r0, #1
+ 8004ac4:	f00e fe84 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8004ac8:	f10d 0213 	add.w	r2, sp, #19
+ 8004acc:	a905      	add	r1, sp, #20
+ 8004ace:	4620      	mov	r0, r4
+ 8004ad0:	f000 ff0d 	bl	80058ee <VL53L0X_PerformRefSpadManagement>
+ 8004ad4:	b128      	cbz	r0, 8004ae2 <sts_tof_vl53l0x_SetupSingleShot+0x8e>
+ 8004ad6:	2200      	movs	r2, #0
+ 8004ad8:	4b50      	ldr	r3, [pc, #320]	; (8004c1c <sts_tof_vl53l0x_SetupSingleShot+0x1c8>)
+ 8004ada:	4611      	mov	r1, r2
+ 8004adc:	2001      	movs	r0, #1
+ 8004ade:	f00e fe77 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8004ae2:	2100      	movs	r1, #0
+ 8004ae4:	4620      	mov	r0, r4
+ 8004ae6:	f000 f949 	bl	8004d7c <VL53L0X_SetDeviceMode>
+ 8004aea:	b128      	cbz	r0, 8004af8 <sts_tof_vl53l0x_SetupSingleShot+0xa4>
+ 8004aec:	2200      	movs	r2, #0
+ 8004aee:	4b4c      	ldr	r3, [pc, #304]	; (8004c20 <sts_tof_vl53l0x_SetupSingleShot+0x1cc>)
+ 8004af0:	4611      	mov	r1, r2
+ 8004af2:	2001      	movs	r0, #1
+ 8004af4:	f00e fe6c 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8004af8:	2201      	movs	r2, #1
+ 8004afa:	2100      	movs	r1, #0
+ 8004afc:	4620      	mov	r0, r4
+ 8004afe:	f000 fa01 	bl	8004f04 <VL53L0X_SetLimitCheckEnable>
+ 8004b02:	b128      	cbz	r0, 8004b10 <sts_tof_vl53l0x_SetupSingleShot+0xbc>
+ 8004b04:	2200      	movs	r2, #0
+ 8004b06:	4b47      	ldr	r3, [pc, #284]	; (8004c24 <sts_tof_vl53l0x_SetupSingleShot+0x1d0>)
+ 8004b08:	4611      	mov	r1, r2
+ 8004b0a:	2001      	movs	r0, #1
+ 8004b0c:	f00e fe60 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8004b10:	2201      	movs	r2, #1
+ 8004b12:	4611      	mov	r1, r2
+ 8004b14:	4620      	mov	r0, r4
+ 8004b16:	f000 f9f5 	bl	8004f04 <VL53L0X_SetLimitCheckEnable>
+ 8004b1a:	b128      	cbz	r0, 8004b28 <sts_tof_vl53l0x_SetupSingleShot+0xd4>
+ 8004b1c:	2200      	movs	r2, #0
+ 8004b1e:	4b41      	ldr	r3, [pc, #260]	; (8004c24 <sts_tof_vl53l0x_SetupSingleShot+0x1d0>)
+ 8004b20:	4611      	mov	r1, r2
+ 8004b22:	2001      	movs	r0, #1
+ 8004b24:	f00e fe54 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8004b28:	2d02      	cmp	r5, #2
+ 8004b2a:	d865      	bhi.n	8004bf8 <sts_tof_vl53l0x_SetupSingleShot+0x1a4>
+ 8004b2c:	4b3e      	ldr	r3, [pc, #248]	; (8004c28 <sts_tof_vl53l0x_SetupSingleShot+0x1d4>)
+ 8004b2e:	f833 3015 	ldrh.w	r3, [r3, r5, lsl #1]
+ 8004b32:	9302      	str	r3, [sp, #8]
+ 8004b34:	4b3d      	ldr	r3, [pc, #244]	; (8004c2c <sts_tof_vl53l0x_SetupSingleShot+0x1d8>)
+ 8004b36:	f853 3025 	ldr.w	r3, [r3, r5, lsl #2]
+ 8004b3a:	9303      	str	r3, [sp, #12]
+ 8004b3c:	4b3c      	ldr	r3, [pc, #240]	; (8004c30 <sts_tof_vl53l0x_SetupSingleShot+0x1dc>)
+ 8004b3e:	f853 7025 	ldr.w	r7, [r3, r5, lsl #2]
+ 8004b42:	4b3c      	ldr	r3, [pc, #240]	; (8004c34 <sts_tof_vl53l0x_SetupSingleShot+0x1e0>)
+ 8004b44:	f813 8005 	ldrb.w	r8, [r3, r5]
+ 8004b48:	4b3b      	ldr	r3, [pc, #236]	; (8004c38 <sts_tof_vl53l0x_SetupSingleShot+0x1e4>)
+ 8004b4a:	f813 9005 	ldrb.w	r9, [r3, r5]
+ 8004b4e:	9a02      	ldr	r2, [sp, #8]
+ 8004b50:	2101      	movs	r1, #1
+ 8004b52:	4620      	mov	r0, r4
+ 8004b54:	f000 fa21 	bl	8004f9a <VL53L0X_SetLimitCheckValue>
+ 8004b58:	b128      	cbz	r0, 8004b66 <sts_tof_vl53l0x_SetupSingleShot+0x112>
+ 8004b5a:	2200      	movs	r2, #0
+ 8004b5c:	4b37      	ldr	r3, [pc, #220]	; (8004c3c <sts_tof_vl53l0x_SetupSingleShot+0x1e8>)
+ 8004b5e:	4611      	mov	r1, r2
+ 8004b60:	2001      	movs	r0, #1
+ 8004b62:	f00e fe35 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8004b66:	9a03      	ldr	r2, [sp, #12]
+ 8004b68:	2100      	movs	r1, #0
+ 8004b6a:	4620      	mov	r0, r4
+ 8004b6c:	f000 fa15 	bl	8004f9a <VL53L0X_SetLimitCheckValue>
+ 8004b70:	b128      	cbz	r0, 8004b7e <sts_tof_vl53l0x_SetupSingleShot+0x12a>
+ 8004b72:	2200      	movs	r2, #0
+ 8004b74:	4b31      	ldr	r3, [pc, #196]	; (8004c3c <sts_tof_vl53l0x_SetupSingleShot+0x1e8>)
+ 8004b76:	4611      	mov	r1, r2
+ 8004b78:	2001      	movs	r0, #1
+ 8004b7a:	f00e fe29 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8004b7e:	4639      	mov	r1, r7
+ 8004b80:	4620      	mov	r0, r4
+ 8004b82:	f000 f915 	bl	8004db0 <VL53L0X_SetMeasurementTimingBudgetMicroSeconds>
+ 8004b86:	b128      	cbz	r0, 8004b94 <sts_tof_vl53l0x_SetupSingleShot+0x140>
+ 8004b88:	2200      	movs	r2, #0
+ 8004b8a:	4b2d      	ldr	r3, [pc, #180]	; (8004c40 <sts_tof_vl53l0x_SetupSingleShot+0x1ec>)
+ 8004b8c:	4611      	mov	r1, r2
+ 8004b8e:	2001      	movs	r0, #1
+ 8004b90:	f00e fe1e 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8004b94:	4642      	mov	r2, r8
+ 8004b96:	2100      	movs	r1, #0
+ 8004b98:	4620      	mov	r0, r4
+ 8004b9a:	f000 f90b 	bl	8004db4 <VL53L0X_SetVcselPulsePeriod>
+ 8004b9e:	b128      	cbz	r0, 8004bac <sts_tof_vl53l0x_SetupSingleShot+0x158>
+ 8004ba0:	2200      	movs	r2, #0
+ 8004ba2:	465b      	mov	r3, fp
+ 8004ba4:	4611      	mov	r1, r2
+ 8004ba6:	2001      	movs	r0, #1
+ 8004ba8:	f00e fe12 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8004bac:	464a      	mov	r2, r9
+ 8004bae:	2101      	movs	r1, #1
+ 8004bb0:	4620      	mov	r0, r4
+ 8004bb2:	f000 f8ff 	bl	8004db4 <VL53L0X_SetVcselPulsePeriod>
+ 8004bb6:	b128      	cbz	r0, 8004bc4 <sts_tof_vl53l0x_SetupSingleShot+0x170>
+ 8004bb8:	2200      	movs	r2, #0
+ 8004bba:	465b      	mov	r3, fp
+ 8004bbc:	4611      	mov	r1, r2
+ 8004bbe:	2001      	movs	r0, #1
+ 8004bc0:	f00e fe06 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8004bc4:	f10d 0212 	add.w	r2, sp, #18
+ 8004bc8:	f10d 0111 	add.w	r1, sp, #17
+ 8004bcc:	4620      	mov	r0, r4
+ 8004bce:	f000 fb43 	bl	8005258 <VL53L0X_PerformRefCalibration>
+ 8004bd2:	b128      	cbz	r0, 8004be0 <sts_tof_vl53l0x_SetupSingleShot+0x18c>
+ 8004bd4:	2200      	movs	r2, #0
+ 8004bd6:	4653      	mov	r3, sl
+ 8004bd8:	4611      	mov	r1, r2
+ 8004bda:	2001      	movs	r0, #1
+ 8004bdc:	f00e fdf8 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8004be0:	2301      	movs	r3, #1
+ 8004be2:	f8c4 317c 	str.w	r3, [r4, #380]	; 0x17c
+ 8004be6:	3601      	adds	r6, #1
+ 8004be8:	2e03      	cmp	r6, #3
+ 8004bea:	f504 74c8 	add.w	r4, r4, #400	; 0x190
+ 8004bee:	f47f af47 	bne.w	8004a80 <sts_tof_vl53l0x_SetupSingleShot+0x2c>
+ 8004bf2:	b007      	add	sp, #28
+ 8004bf4:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 8004bf8:	2200      	movs	r2, #0
+ 8004bfa:	4b12      	ldr	r3, [pc, #72]	; (8004c44 <sts_tof_vl53l0x_SetupSingleShot+0x1f0>)
+ 8004bfc:	4611      	mov	r1, r2
+ 8004bfe:	2001      	movs	r0, #1
+ 8004c00:	f00e fde6 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8004c04:	e7a3      	b.n	8004b4e <sts_tof_vl53l0x_SetupSingleShot+0xfa>
+ 8004c06:	bf00      	nop
+ 8004c08:	200000bc 	.word	0x200000bc
+ 8004c0c:	08014dc4 	.word	0x08014dc4
+ 8004c10:	08014ebd 	.word	0x08014ebd
+ 8004c14:	08014d7f 	.word	0x08014d7f
+ 8004c18:	08014da9 	.word	0x08014da9
+ 8004c1c:	08014dea 	.word	0x08014dea
+ 8004c20:	08014e13 	.word	0x08014e13
+ 8004c24:	08014e31 	.word	0x08014e31
+ 8004c28:	08014f70 	.word	0x08014f70
+ 8004c2c:	08014f78 	.word	0x08014f78
+ 8004c30:	08014f84 	.word	0x08014f84
+ 8004c34:	08014f90 	.word	0x08014f90
+ 8004c38:	08014f93 	.word	0x08014f93
+ 8004c3c:	08014e63 	.word	0x08014e63
+ 8004c40:	08014e86 	.word	0x08014e86
+ 8004c44:	08014e55 	.word	0x08014e55
+
+08004c48 <sts_tof_vl53l0x_Sensor_SetNewRange>:
+ 8004c48:	b510      	push	{r4, lr}
+ 8004c4a:	7e0b      	ldrb	r3, [r1, #24]
+ 8004c4c:	b99b      	cbnz	r3, 8004c76 <sts_tof_vl53l0x_Sensor_SetNewRange+0x2e>
+ 8004c4e:	f8d0 217c 	ldr.w	r2, [r0, #380]	; 0x17c
+ 8004c52:	8909      	ldrh	r1, [r1, #8]
+ 8004c54:	b112      	cbz	r2, 8004c5c <sts_tof_vl53l0x_Sensor_SetNewRange+0x14>
+ 8004c56:	e9c0 135e 	strd	r1, r3, [r0, #376]	; 0x178
+ 8004c5a:	bd10      	pop	{r4, pc}
+ 8004c5c:	4b08      	ldr	r3, [pc, #32]	; (8004c80 <sts_tof_vl53l0x_Sensor_SetNewRange+0x38>)
+ 8004c5e:	f8d0 4178 	ldr.w	r4, [r0, #376]	; 0x178
+ 8004c62:	681a      	ldr	r2, [r3, #0]
+ 8004c64:	f5c2 7380 	rsb	r3, r2, #256	; 0x100
+ 8004c68:	434b      	muls	r3, r1
+ 8004c6a:	fb04 3302 	mla	r3, r4, r2, r3
+ 8004c6e:	121b      	asrs	r3, r3, #8
+ 8004c70:	f8c0 3178 	str.w	r3, [r0, #376]	; 0x178
+ 8004c74:	e7f1      	b.n	8004c5a <sts_tof_vl53l0x_Sensor_SetNewRange+0x12>
+ 8004c76:	2301      	movs	r3, #1
+ 8004c78:	f8c0 317c 	str.w	r3, [r0, #380]	; 0x17c
+ 8004c7c:	e7ed      	b.n	8004c5a <sts_tof_vl53l0x_Sensor_SetNewRange+0x12>
+ 8004c7e:	bf00      	nop
+ 8004c80:	200000b8 	.word	0x200000b8
+
+08004c84 <STS_TOF_VL53L0X_Range_Process>:
+ 8004c84:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8004c88:	f8df 80c4 	ldr.w	r8, [pc, #196]	; 8004d50 <STS_TOF_VL53L0X_Range_Process+0xcc>
+ 8004c8c:	4c31      	ldr	r4, [pc, #196]	; (8004d54 <STS_TOF_VL53L0X_Range_Process+0xd0>)
+ 8004c8e:	b085      	sub	sp, #20
+ 8004c90:	f7ff fdfc 	bl	800488c <XWL55_WLE5_53L0X_Init>
+ 8004c94:	f8d8 3000 	ldr.w	r3, [r8]
+ 8004c98:	b10b      	cbz	r3, 8004c9e <STS_TOF_VL53L0X_Range_Process+0x1a>
+ 8004c9a:	6823      	ldr	r3, [r4, #0]
+ 8004c9c:	b94b      	cbnz	r3, 8004cb2 <STS_TOF_VL53L0X_Range_Process+0x2e>
+ 8004c9e:	f7ff fe43 	bl	8004928 <sts_tof_vl53l0x_DetectSensors>
+ 8004ca2:	2200      	movs	r2, #0
+ 8004ca4:	6020      	str	r0, [r4, #0]
+ 8004ca6:	4b2c      	ldr	r3, [pc, #176]	; (8004d58 <STS_TOF_VL53L0X_Range_Process+0xd4>)
+ 8004ca8:	9000      	str	r0, [sp, #0]
+ 8004caa:	4611      	mov	r1, r2
+ 8004cac:	2001      	movs	r0, #1
+ 8004cae:	f00e fd8f 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8004cb2:	6823      	ldr	r3, [r4, #0]
+ 8004cb4:	2b00      	cmp	r3, #0
+ 8004cb6:	dd3f      	ble.n	8004d38 <STS_TOF_VL53L0X_Range_Process+0xb4>
+ 8004cb8:	2002      	movs	r0, #2
+ 8004cba:	f7ff fecb 	bl	8004a54 <sts_tof_vl53l0x_SetupSingleShot>
+ 8004cbe:	4e27      	ldr	r6, [pc, #156]	; (8004d5c <STS_TOF_VL53L0X_Range_Process+0xd8>)
+ 8004cc0:	f8df 909c 	ldr.w	r9, [pc, #156]	; 8004d60 <STS_TOF_VL53L0X_Range_Process+0xdc>
+ 8004cc4:	f8df a09c 	ldr.w	sl, [pc, #156]	; 8004d64 <STS_TOF_VL53L0X_Range_Process+0xe0>
+ 8004cc8:	f8df b09c 	ldr.w	fp, [pc, #156]	; 8004d68 <STS_TOF_VL53L0X_Range_Process+0xe4>
+ 8004ccc:	2500      	movs	r5, #0
+ 8004cce:	f8d6 4168 	ldr.w	r4, [r6, #360]	; 0x168
+ 8004cd2:	2c01      	cmp	r4, #1
+ 8004cd4:	d11b      	bne.n	8004d0e <STS_TOF_VL53L0X_Range_Process+0x8a>
+ 8004cd6:	4922      	ldr	r1, [pc, #136]	; (8004d60 <STS_TOF_VL53L0X_Range_Process+0xdc>)
+ 8004cd8:	4630      	mov	r0, r6
+ 8004cda:	f000 fc63 	bl	80055a4 <VL53L0X_PerformSingleRangingMeasurement>
+ 8004cde:	4607      	mov	r7, r0
+ 8004ce0:	b9a8      	cbnz	r0, 8004d0e <STS_TOF_VL53L0X_Range_Process+0x8a>
+ 8004ce2:	4649      	mov	r1, r9
+ 8004ce4:	4630      	mov	r0, r6
+ 8004ce6:	f7ff ffaf 	bl	8004c48 <sts_tof_vl53l0x_Sensor_SetNewRange>
+ 8004cea:	f899 3018 	ldrb.w	r3, [r9, #24]
+ 8004cee:	bb33      	cbnz	r3, 8004d3e <STS_TOF_VL53L0X_Range_Process+0xba>
+ 8004cf0:	f8d6 3178 	ldr.w	r3, [r6, #376]	; 0x178
+ 8004cf4:	f84b 3025 	str.w	r3, [fp, r5, lsl #2]
+ 8004cf8:	4a1c      	ldr	r2, [pc, #112]	; (8004d6c <STS_TOF_VL53L0X_Range_Process+0xe8>)
+ 8004cfa:	f8d8 3000 	ldr.w	r3, [r8]
+ 8004cfe:	40ac      	lsls	r4, r5
+ 8004d00:	431c      	orrs	r4, r3
+ 8004d02:	7813      	ldrb	r3, [r2, #0]
+ 8004d04:	f8c8 4000 	str.w	r4, [r8]
+ 8004d08:	f043 0301 	orr.w	r3, r3, #1
+ 8004d0c:	7013      	strb	r3, [r2, #0]
+ 8004d0e:	201e      	movs	r0, #30
+ 8004d10:	3501      	adds	r5, #1
+ 8004d12:	f7fd ff23 	bl	8002b5c <HAL_Delay>
+ 8004d16:	2d03      	cmp	r5, #3
+ 8004d18:	f506 76c8 	add.w	r6, r6, #400	; 0x190
+ 8004d1c:	d1d7      	bne.n	8004cce <STS_TOF_VL53L0X_Range_Process+0x4a>
+ 8004d1e:	4b12      	ldr	r3, [pc, #72]	; (8004d68 <STS_TOF_VL53L0X_Range_Process+0xe4>)
+ 8004d20:	681a      	ldr	r2, [r3, #0]
+ 8004d22:	6859      	ldr	r1, [r3, #4]
+ 8004d24:	689b      	ldr	r3, [r3, #8]
+ 8004d26:	9200      	str	r2, [sp, #0]
+ 8004d28:	2200      	movs	r2, #0
+ 8004d2a:	e9cd 1301 	strd	r1, r3, [sp, #4]
+ 8004d2e:	2001      	movs	r0, #1
+ 8004d30:	4b0f      	ldr	r3, [pc, #60]	; (8004d70 <STS_TOF_VL53L0X_Range_Process+0xec>)
+ 8004d32:	4611      	mov	r1, r2
+ 8004d34:	f00e fd4c 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8004d38:	b005      	add	sp, #20
+ 8004d3a:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 8004d3e:	e9cd 5400 	strd	r5, r4, [sp]
+ 8004d42:	4653      	mov	r3, sl
+ 8004d44:	463a      	mov	r2, r7
+ 8004d46:	4639      	mov	r1, r7
+ 8004d48:	4620      	mov	r0, r4
+ 8004d4a:	f00e fd41 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8004d4e:	e7de      	b.n	8004d0e <STS_TOF_VL53L0X_Range_Process+0x8a>
+ 8004d50:	20000ee8 	.word	0x20000ee8
+ 8004d54:	20000ef0 	.word	0x20000ef0
+ 8004d58:	08014ee1 	.word	0x08014ee1
+ 8004d5c:	200000bc 	.word	0x200000bc
+ 8004d60:	20000ecc 	.word	0x20000ecc
+ 8004d64:	08014eff 	.word	0x08014eff
+ 8004d68:	20000ef4 	.word	0x20000ef4
+ 8004d6c:	20000e4d 	.word	0x20000e4d
+ 8004d70:	08014f20 	.word	0x08014f20
+
+08004d74 <VL53L0X_SetDeviceAddress>:
+ 8004d74:	084a      	lsrs	r2, r1, #1
+ 8004d76:	218a      	movs	r1, #138	; 0x8a
+ 8004d78:	f002 ba96 	b.w	80072a8 <VL53L0X_WrByte>
+
+08004d7c <VL53L0X_SetDeviceMode>:
+ 8004d7c:	2915      	cmp	r1, #21
+ 8004d7e:	d806      	bhi.n	8004d8e <VL53L0X_SetDeviceMode+0x12>
+ 8004d80:	4b04      	ldr	r3, [pc, #16]	; (8004d94 <VL53L0X_SetDeviceMode+0x18>)
+ 8004d82:	40cb      	lsrs	r3, r1
+ 8004d84:	07db      	lsls	r3, r3, #31
+ 8004d86:	d502      	bpl.n	8004d8e <VL53L0X_SetDeviceMode+0x12>
+ 8004d88:	7401      	strb	r1, [r0, #16]
+ 8004d8a:	2000      	movs	r0, #0
+ 8004d8c:	4770      	bx	lr
+ 8004d8e:	f06f 0007 	mvn.w	r0, #7
+ 8004d92:	4770      	bx	lr
+ 8004d94:	0030000b 	.word	0x0030000b
+
+08004d98 <VL53L0X_GetFractionEnable>:
+ 8004d98:	b510      	push	{r4, lr}
+ 8004d9a:	460a      	mov	r2, r1
+ 8004d9c:	460c      	mov	r4, r1
+ 8004d9e:	2109      	movs	r1, #9
+ 8004da0:	f002 faa4 	bl	80072ec <VL53L0X_RdByte>
+ 8004da4:	b918      	cbnz	r0, 8004dae <VL53L0X_GetFractionEnable+0x16>
+ 8004da6:	7823      	ldrb	r3, [r4, #0]
+ 8004da8:	f003 0301 	and.w	r3, r3, #1
+ 8004dac:	7023      	strb	r3, [r4, #0]
+ 8004dae:	bd10      	pop	{r4, pc}
+
+08004db0 <VL53L0X_SetMeasurementTimingBudgetMicroSeconds>:
+ 8004db0:	f001 be6b 	b.w	8006a8a <VL53L0X_set_measurement_timing_budget_micro_seconds>
+
+08004db4 <VL53L0X_SetVcselPulsePeriod>:
+ 8004db4:	f001 bd53 	b.w	800685e <VL53L0X_set_vcsel_pulse_period>
+
+08004db8 <VL53L0X_GetVcselPulsePeriod>:
+ 8004db8:	f001 be4d 	b.w	8006a56 <VL53L0X_get_vcsel_pulse_period>
+
+08004dbc <VL53L0X_SetSequenceStepEnable>:
+ 8004dbc:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
+ 8004dbe:	2300      	movs	r3, #0
+ 8004dc0:	460c      	mov	r4, r1
+ 8004dc2:	4617      	mov	r7, r2
+ 8004dc4:	2101      	movs	r1, #1
+ 8004dc6:	f10d 0207 	add.w	r2, sp, #7
+ 8004dca:	4606      	mov	r6, r0
+ 8004dcc:	f88d 3007 	strb.w	r3, [sp, #7]
+ 8004dd0:	f002 fa8c 	bl	80072ec <VL53L0X_RdByte>
+ 8004dd4:	4605      	mov	r5, r0
+ 8004dd6:	b9d8      	cbnz	r0, 8004e10 <VL53L0X_SetSequenceStepEnable+0x54>
+ 8004dd8:	2f01      	cmp	r7, #1
+ 8004dda:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8004dde:	d126      	bne.n	8004e2e <VL53L0X_SetSequenceStepEnable+0x72>
+ 8004de0:	2c04      	cmp	r4, #4
+ 8004de2:	d83a      	bhi.n	8004e5a <VL53L0X_SetSequenceStepEnable+0x9e>
+ 8004de4:	e8df f004 	tbb	[pc, r4]
+ 8004de8:	1d1a1703 	.word	0x1d1a1703
+ 8004dec:	20          	.byte	0x20
+ 8004ded:	00          	.byte	0x00
+ 8004dee:	f043 0410 	orr.w	r4, r3, #16
+ 8004df2:	42a3      	cmp	r3, r4
+ 8004df4:	d00c      	beq.n	8004e10 <VL53L0X_SetSequenceStepEnable+0x54>
+ 8004df6:	4622      	mov	r2, r4
+ 8004df8:	2101      	movs	r1, #1
+ 8004dfa:	4630      	mov	r0, r6
+ 8004dfc:	f002 fa54 	bl	80072a8 <VL53L0X_WrByte>
+ 8004e00:	4605      	mov	r5, r0
+ 8004e02:	b928      	cbnz	r0, 8004e10 <VL53L0X_SetSequenceStepEnable+0x54>
+ 8004e04:	6971      	ldr	r1, [r6, #20]
+ 8004e06:	f886 4130 	strb.w	r4, [r6, #304]	; 0x130
+ 8004e0a:	4630      	mov	r0, r6
+ 8004e0c:	f7ff ffd0 	bl	8004db0 <VL53L0X_SetMeasurementTimingBudgetMicroSeconds>
+ 8004e10:	4628      	mov	r0, r5
+ 8004e12:	b003      	add	sp, #12
+ 8004e14:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8004e16:	f043 0428 	orr.w	r4, r3, #40	; 0x28
+ 8004e1a:	e7ea      	b.n	8004df2 <VL53L0X_SetSequenceStepEnable+0x36>
+ 8004e1c:	f043 0404 	orr.w	r4, r3, #4
+ 8004e20:	e7e7      	b.n	8004df2 <VL53L0X_SetSequenceStepEnable+0x36>
+ 8004e22:	f043 0440 	orr.w	r4, r3, #64	; 0x40
+ 8004e26:	e7e4      	b.n	8004df2 <VL53L0X_SetSequenceStepEnable+0x36>
+ 8004e28:	f043 0480 	orr.w	r4, r3, #128	; 0x80
+ 8004e2c:	e7e1      	b.n	8004df2 <VL53L0X_SetSequenceStepEnable+0x36>
+ 8004e2e:	2c04      	cmp	r4, #4
+ 8004e30:	d813      	bhi.n	8004e5a <VL53L0X_SetSequenceStepEnable+0x9e>
+ 8004e32:	e8df f004 	tbb	[pc, r4]
+ 8004e36:	0603      	.short	0x0603
+ 8004e38:	0c09      	.short	0x0c09
+ 8004e3a:	0f          	.byte	0x0f
+ 8004e3b:	00          	.byte	0x00
+ 8004e3c:	f003 04ef 	and.w	r4, r3, #239	; 0xef
+ 8004e40:	e7d7      	b.n	8004df2 <VL53L0X_SetSequenceStepEnable+0x36>
+ 8004e42:	f003 04d7 	and.w	r4, r3, #215	; 0xd7
+ 8004e46:	e7d4      	b.n	8004df2 <VL53L0X_SetSequenceStepEnable+0x36>
+ 8004e48:	f003 04fb 	and.w	r4, r3, #251	; 0xfb
+ 8004e4c:	e7d1      	b.n	8004df2 <VL53L0X_SetSequenceStepEnable+0x36>
+ 8004e4e:	f003 04bf 	and.w	r4, r3, #191	; 0xbf
+ 8004e52:	e7ce      	b.n	8004df2 <VL53L0X_SetSequenceStepEnable+0x36>
+ 8004e54:	f003 047f 	and.w	r4, r3, #127	; 0x7f
+ 8004e58:	e7cb      	b.n	8004df2 <VL53L0X_SetSequenceStepEnable+0x36>
+ 8004e5a:	f06f 0503 	mvn.w	r5, #3
+ 8004e5e:	e7d7      	b.n	8004e10 <VL53L0X_SetSequenceStepEnable+0x54>
+
+08004e60 <VL53L0X_GetSequenceStepEnables>:
+ 8004e60:	b513      	push	{r0, r1, r4, lr}
+ 8004e62:	2300      	movs	r3, #0
+ 8004e64:	460c      	mov	r4, r1
+ 8004e66:	f10d 0207 	add.w	r2, sp, #7
+ 8004e6a:	2101      	movs	r1, #1
+ 8004e6c:	f88d 3007 	strb.w	r3, [sp, #7]
+ 8004e70:	f002 fa3c 	bl	80072ec <VL53L0X_RdByte>
+ 8004e74:	b978      	cbnz	r0, 8004e96 <VL53L0X_GetSequenceStepEnables+0x36>
+ 8004e76:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8004e7a:	f3c3 1200 	ubfx	r2, r3, #4, #1
+ 8004e7e:	7022      	strb	r2, [r4, #0]
+ 8004e80:	f3c3 02c0 	ubfx	r2, r3, #3, #1
+ 8004e84:	70a2      	strb	r2, [r4, #2]
+ 8004e86:	f3c3 0280 	ubfx	r2, r3, #2, #1
+ 8004e8a:	7062      	strb	r2, [r4, #1]
+ 8004e8c:	f3c3 1280 	ubfx	r2, r3, #6, #1
+ 8004e90:	09db      	lsrs	r3, r3, #7
+ 8004e92:	70e2      	strb	r2, [r4, #3]
+ 8004e94:	7123      	strb	r3, [r4, #4]
+ 8004e96:	b002      	add	sp, #8
+ 8004e98:	bd10      	pop	{r4, pc}
+
+08004e9a <VL53L0X_GetInterMeasurementPeriodMilliSeconds>:
+ 8004e9a:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 8004e9c:	460d      	mov	r5, r1
+ 8004e9e:	f10d 0202 	add.w	r2, sp, #2
+ 8004ea2:	21f8      	movs	r1, #248	; 0xf8
+ 8004ea4:	4604      	mov	r4, r0
+ 8004ea6:	f002 fa4d 	bl	8007344 <VL53L0X_RdWord>
+ 8004eaa:	b970      	cbnz	r0, 8004eca <VL53L0X_GetInterMeasurementPeriodMilliSeconds+0x30>
+ 8004eac:	aa01      	add	r2, sp, #4
+ 8004eae:	2104      	movs	r1, #4
+ 8004eb0:	4620      	mov	r0, r4
+ 8004eb2:	f002 fa67 	bl	8007384 <VL53L0X_RdDWord>
+ 8004eb6:	b940      	cbnz	r0, 8004eca <VL53L0X_GetInterMeasurementPeriodMilliSeconds+0x30>
+ 8004eb8:	f8bd 2002 	ldrh.w	r2, [sp, #2]
+ 8004ebc:	b11a      	cbz	r2, 8004ec6 <VL53L0X_GetInterMeasurementPeriodMilliSeconds+0x2c>
+ 8004ebe:	9b01      	ldr	r3, [sp, #4]
+ 8004ec0:	fbb3 f3f2 	udiv	r3, r3, r2
+ 8004ec4:	602b      	str	r3, [r5, #0]
+ 8004ec6:	682b      	ldr	r3, [r5, #0]
+ 8004ec8:	61a3      	str	r3, [r4, #24]
+ 8004eca:	b003      	add	sp, #12
+ 8004ecc:	bd30      	pop	{r4, r5, pc}
+
+08004ece <VL53L0X_GetXTalkCompensationEnable>:
+ 8004ece:	7f03      	ldrb	r3, [r0, #28]
+ 8004ed0:	700b      	strb	r3, [r1, #0]
+ 8004ed2:	2000      	movs	r0, #0
+ 8004ed4:	4770      	bx	lr
+
+08004ed6 <VL53L0X_GetXTalkCompensationRateMegaCps>:
+ 8004ed6:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 8004ed8:	460d      	mov	r5, r1
+ 8004eda:	f10d 0206 	add.w	r2, sp, #6
+ 8004ede:	2120      	movs	r1, #32
+ 8004ee0:	4604      	mov	r4, r0
+ 8004ee2:	f002 fa2f 	bl	8007344 <VL53L0X_RdWord>
+ 8004ee6:	b928      	cbnz	r0, 8004ef4 <VL53L0X_GetXTalkCompensationRateMegaCps+0x1e>
+ 8004ee8:	f8bd 3006 	ldrh.w	r3, [sp, #6]
+ 8004eec:	b923      	cbnz	r3, 8004ef8 <VL53L0X_GetXTalkCompensationRateMegaCps+0x22>
+ 8004eee:	6a23      	ldr	r3, [r4, #32]
+ 8004ef0:	602b      	str	r3, [r5, #0]
+ 8004ef2:	7720      	strb	r0, [r4, #28]
+ 8004ef4:	b003      	add	sp, #12
+ 8004ef6:	bd30      	pop	{r4, r5, pc}
+ 8004ef8:	00db      	lsls	r3, r3, #3
+ 8004efa:	602b      	str	r3, [r5, #0]
+ 8004efc:	6223      	str	r3, [r4, #32]
+ 8004efe:	2301      	movs	r3, #1
+ 8004f00:	7723      	strb	r3, [r4, #28]
+ 8004f02:	e7f7      	b.n	8004ef4 <VL53L0X_GetXTalkCompensationRateMegaCps+0x1e>
+
+08004f04 <VL53L0X_SetLimitCheckEnable>:
+ 8004f04:	2905      	cmp	r1, #5
+ 8004f06:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 8004f08:	4604      	mov	r4, r0
+ 8004f0a:	460e      	mov	r6, r1
+ 8004f0c:	4615      	mov	r5, r2
+ 8004f0e:	d835      	bhi.n	8004f7c <VL53L0X_SetLimitCheckEnable+0x78>
+ 8004f10:	b162      	cbz	r2, 8004f2c <VL53L0X_SetLimitCheckEnable+0x28>
+ 8004f12:	eb00 0381 	add.w	r3, r0, r1, lsl #2
+ 8004f16:	2101      	movs	r1, #1
+ 8004f18:	6b5a      	ldr	r2, [r3, #52]	; 0x34
+ 8004f1a:	2300      	movs	r3, #0
+ 8004f1c:	1e70      	subs	r0, r6, #1
+ 8004f1e:	2804      	cmp	r0, #4
+ 8004f20:	d807      	bhi.n	8004f32 <VL53L0X_SetLimitCheckEnable+0x2e>
+ 8004f22:	e8df f000 	tbb	[pc, r0]
+ 8004f26:	170e      	.short	0x170e
+ 8004f28:	1d1a      	.short	0x1d1a
+ 8004f2a:	24          	.byte	0x24
+ 8004f2b:	00          	.byte	0x00
+ 8004f2c:	4611      	mov	r1, r2
+ 8004f2e:	2301      	movs	r3, #1
+ 8004f30:	e7f4      	b.n	8004f1c <VL53L0X_SetLimitCheckEnable+0x18>
+ 8004f32:	f884 1028 	strb.w	r1, [r4, #40]	; 0x28
+ 8004f36:	4434      	add	r4, r6
+ 8004f38:	b9e5      	cbnz	r5, 8004f74 <VL53L0X_SetLimitCheckEnable+0x70>
+ 8004f3a:	f884 5028 	strb.w	r5, [r4, #40]	; 0x28
+ 8004f3e:	2000      	movs	r0, #0
+ 8004f40:	e007      	b.n	8004f52 <VL53L0X_SetLimitCheckEnable+0x4e>
+ 8004f42:	f3c2 224f 	ubfx	r2, r2, #9, #16
+ 8004f46:	2144      	movs	r1, #68	; 0x44
+ 8004f48:	4620      	mov	r0, r4
+ 8004f4a:	f002 f9bd 	bl	80072c8 <VL53L0X_WrWord>
+ 8004f4e:	2800      	cmp	r0, #0
+ 8004f50:	d0f1      	beq.n	8004f36 <VL53L0X_SetLimitCheckEnable+0x32>
+ 8004f52:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 8004f54:	f884 102a 	strb.w	r1, [r4, #42]	; 0x2a
+ 8004f58:	e7ed      	b.n	8004f36 <VL53L0X_SetLimitCheckEnable+0x32>
+ 8004f5a:	f884 102b 	strb.w	r1, [r4, #43]	; 0x2b
+ 8004f5e:	e7ea      	b.n	8004f36 <VL53L0X_SetLimitCheckEnable+0x32>
+ 8004f60:	005b      	lsls	r3, r3, #1
+ 8004f62:	22fe      	movs	r2, #254	; 0xfe
+ 8004f64:	2160      	movs	r1, #96	; 0x60
+ 8004f66:	4620      	mov	r0, r4
+ 8004f68:	f002 f9d5 	bl	8007316 <VL53L0X_UpdateByte>
+ 8004f6c:	e7ef      	b.n	8004f4e <VL53L0X_SetLimitCheckEnable+0x4a>
+ 8004f6e:	011b      	lsls	r3, r3, #4
+ 8004f70:	22ef      	movs	r2, #239	; 0xef
+ 8004f72:	e7f7      	b.n	8004f64 <VL53L0X_SetLimitCheckEnable+0x60>
+ 8004f74:	2301      	movs	r3, #1
+ 8004f76:	f884 3028 	strb.w	r3, [r4, #40]	; 0x28
+ 8004f7a:	e7e0      	b.n	8004f3e <VL53L0X_SetLimitCheckEnable+0x3a>
+ 8004f7c:	f06f 0003 	mvn.w	r0, #3
+ 8004f80:	e7e7      	b.n	8004f52 <VL53L0X_SetLimitCheckEnable+0x4e>
+
+08004f82 <VL53L0X_GetLimitCheckEnable>:
+ 8004f82:	2905      	cmp	r1, #5
+ 8004f84:	bf96      	itet	ls
+ 8004f86:	1840      	addls	r0, r0, r1
+ 8004f88:	2300      	movhi	r3, #0
+ 8004f8a:	f890 3028 	ldrbls.w	r3, [r0, #40]	; 0x28
+ 8004f8e:	7013      	strb	r3, [r2, #0]
+ 8004f90:	bf94      	ite	ls
+ 8004f92:	2000      	movls	r0, #0
+ 8004f94:	f06f 0003 	mvnhi.w	r0, #3
+ 8004f98:	4770      	bx	lr
+
+08004f9a <VL53L0X_SetLimitCheckValue>:
+ 8004f9a:	b570      	push	{r4, r5, r6, lr}
+ 8004f9c:	1843      	adds	r3, r0, r1
+ 8004f9e:	4604      	mov	r4, r0
+ 8004fa0:	f893 0028 	ldrb.w	r0, [r3, #40]	; 0x28
+ 8004fa4:	460e      	mov	r6, r1
+ 8004fa6:	4615      	mov	r5, r2
+ 8004fa8:	b918      	cbnz	r0, 8004fb2 <VL53L0X_SetLimitCheckValue+0x18>
+ 8004faa:	eb04 0681 	add.w	r6, r4, r1, lsl #2
+ 8004fae:	6372      	str	r2, [r6, #52]	; 0x34
+ 8004fb0:	bd70      	pop	{r4, r5, r6, pc}
+ 8004fb2:	2905      	cmp	r1, #5
+ 8004fb4:	d81b      	bhi.n	8004fee <VL53L0X_SetLimitCheckValue+0x54>
+ 8004fb6:	e8df f001 	tbb	[pc, r1]
+ 8004fba:	0903      	.short	0x0903
+ 8004fbc:	16161412 	.word	0x16161412
+ 8004fc0:	6362      	str	r2, [r4, #52]	; 0x34
+ 8004fc2:	eb04 0486 	add.w	r4, r4, r6, lsl #2
+ 8004fc6:	2000      	movs	r0, #0
+ 8004fc8:	6365      	str	r5, [r4, #52]	; 0x34
+ 8004fca:	e7f1      	b.n	8004fb0 <VL53L0X_SetLimitCheckValue+0x16>
+ 8004fcc:	f3c2 224f 	ubfx	r2, r2, #9, #16
+ 8004fd0:	2144      	movs	r1, #68	; 0x44
+ 8004fd2:	4620      	mov	r0, r4
+ 8004fd4:	f002 f978 	bl	80072c8 <VL53L0X_WrWord>
+ 8004fd8:	2800      	cmp	r0, #0
+ 8004fda:	d1e9      	bne.n	8004fb0 <VL53L0X_SetLimitCheckValue+0x16>
+ 8004fdc:	e7f1      	b.n	8004fc2 <VL53L0X_SetLimitCheckValue+0x28>
+ 8004fde:	63e2      	str	r2, [r4, #60]	; 0x3c
+ 8004fe0:	e7ef      	b.n	8004fc2 <VL53L0X_SetLimitCheckValue+0x28>
+ 8004fe2:	6422      	str	r2, [r4, #64]	; 0x40
+ 8004fe4:	e7ed      	b.n	8004fc2 <VL53L0X_SetLimitCheckValue+0x28>
+ 8004fe6:	f3c2 224f 	ubfx	r2, r2, #9, #16
+ 8004fea:	2164      	movs	r1, #100	; 0x64
+ 8004fec:	e7f1      	b.n	8004fd2 <VL53L0X_SetLimitCheckValue+0x38>
+ 8004fee:	f06f 0003 	mvn.w	r0, #3
+ 8004ff2:	e7dd      	b.n	8004fb0 <VL53L0X_SetLimitCheckValue+0x16>
+
+08004ff4 <VL53L0X_GetLimitCheckValue>:
+ 8004ff4:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 8004ff6:	4604      	mov	r4, r0
+ 8004ff8:	4615      	mov	r5, r2
+ 8004ffa:	2905      	cmp	r1, #5
+ 8004ffc:	d82c      	bhi.n	8005058 <VL53L0X_GetLimitCheckValue+0x64>
+ 8004ffe:	e8df f001 	tbb	[pc, r1]
+ 8005002:	0703      	.short	0x0703
+ 8005004:	1b1b1917 	.word	0x1b1b1917
+ 8005008:	6b43      	ldr	r3, [r0, #52]	; 0x34
+ 800500a:	602b      	str	r3, [r5, #0]
+ 800500c:	2000      	movs	r0, #0
+ 800500e:	e021      	b.n	8005054 <VL53L0X_GetLimitCheckValue+0x60>
+ 8005010:	f10d 0206 	add.w	r2, sp, #6
+ 8005014:	2144      	movs	r1, #68	; 0x44
+ 8005016:	f002 f995 	bl	8007344 <VL53L0X_RdWord>
+ 800501a:	b9d8      	cbnz	r0, 8005054 <VL53L0X_GetLimitCheckValue+0x60>
+ 800501c:	f8bd 2006 	ldrh.w	r2, [sp, #6]
+ 8005020:	0253      	lsls	r3, r2, #9
+ 8005022:	b19a      	cbz	r2, 800504c <VL53L0X_GetLimitCheckValue+0x58>
+ 8005024:	602b      	str	r3, [r5, #0]
+ 8005026:	63a3      	str	r3, [r4, #56]	; 0x38
+ 8005028:	2301      	movs	r3, #1
+ 800502a:	f884 3029 	strb.w	r3, [r4, #41]	; 0x29
+ 800502e:	e011      	b.n	8005054 <VL53L0X_GetLimitCheckValue+0x60>
+ 8005030:	6bc3      	ldr	r3, [r0, #60]	; 0x3c
+ 8005032:	e7ea      	b.n	800500a <VL53L0X_GetLimitCheckValue+0x16>
+ 8005034:	6c03      	ldr	r3, [r0, #64]	; 0x40
+ 8005036:	e7e8      	b.n	800500a <VL53L0X_GetLimitCheckValue+0x16>
+ 8005038:	f10d 0206 	add.w	r2, sp, #6
+ 800503c:	2164      	movs	r1, #100	; 0x64
+ 800503e:	f002 f981 	bl	8007344 <VL53L0X_RdWord>
+ 8005042:	b938      	cbnz	r0, 8005054 <VL53L0X_GetLimitCheckValue+0x60>
+ 8005044:	f8bd 3006 	ldrh.w	r3, [sp, #6]
+ 8005048:	025b      	lsls	r3, r3, #9
+ 800504a:	e7de      	b.n	800500a <VL53L0X_GetLimitCheckValue+0x16>
+ 800504c:	6ba3      	ldr	r3, [r4, #56]	; 0x38
+ 800504e:	602b      	str	r3, [r5, #0]
+ 8005050:	f884 0029 	strb.w	r0, [r4, #41]	; 0x29
+ 8005054:	b003      	add	sp, #12
+ 8005056:	bd30      	pop	{r4, r5, pc}
+ 8005058:	f06f 0003 	mvn.w	r0, #3
+ 800505c:	e7fa      	b.n	8005054 <VL53L0X_GetLimitCheckValue+0x60>
+
+0800505e <VL53L0X_GetWrapAroundCheckEnable>:
+ 800505e:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 8005060:	460d      	mov	r5, r1
+ 8005062:	f10d 0207 	add.w	r2, sp, #7
+ 8005066:	2101      	movs	r1, #1
+ 8005068:	4604      	mov	r4, r0
+ 800506a:	f002 f93f 	bl	80072ec <VL53L0X_RdByte>
+ 800506e:	b938      	cbnz	r0, 8005080 <VL53L0X_GetWrapAroundCheckEnable+0x22>
+ 8005070:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8005074:	f884 3130 	strb.w	r3, [r4, #304]	; 0x130
+ 8005078:	09db      	lsrs	r3, r3, #7
+ 800507a:	702b      	strb	r3, [r5, #0]
+ 800507c:	f884 304c 	strb.w	r3, [r4, #76]	; 0x4c
+ 8005080:	b003      	add	sp, #12
+ 8005082:	bd30      	pop	{r4, r5, pc}
+
+08005084 <VL53L0X_GetDeviceParameters>:
+ 8005084:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
+ 8005088:	7c03      	ldrb	r3, [r0, #16]
+ 800508a:	460c      	mov	r4, r1
+ 800508c:	f801 3b08 	strb.w	r3, [r1], #8
+ 8005090:	4605      	mov	r5, r0
+ 8005092:	f7ff ff02 	bl	8004e9a <VL53L0X_GetInterMeasurementPeriodMilliSeconds>
+ 8005096:	bb40      	cbnz	r0, 80050ea <VL53L0X_GetDeviceParameters+0x66>
+ 8005098:	7320      	strb	r0, [r4, #12]
+ 800509a:	f104 0110 	add.w	r1, r4, #16
+ 800509e:	4628      	mov	r0, r5
+ 80050a0:	f7ff ff19 	bl	8004ed6 <VL53L0X_GetXTalkCompensationRateMegaCps>
+ 80050a4:	bb08      	cbnz	r0, 80050ea <VL53L0X_GetDeviceParameters+0x66>
+ 80050a6:	f104 0114 	add.w	r1, r4, #20
+ 80050aa:	4628      	mov	r0, r5
+ 80050ac:	f000 fc21 	bl	80058f2 <VL53L0X_get_offset_calibration_data_micro_meter>
+ 80050b0:	b9d8      	cbnz	r0, 80050ea <VL53L0X_GetDeviceParameters+0x66>
+ 80050b2:	f104 0724 	add.w	r7, r4, #36	; 0x24
+ 80050b6:	f105 0927 	add.w	r9, r5, #39	; 0x27
+ 80050ba:	f104 0817 	add.w	r8, r4, #23
+ 80050be:	4606      	mov	r6, r0
+ 80050c0:	463a      	mov	r2, r7
+ 80050c2:	b2b1      	uxth	r1, r6
+ 80050c4:	4628      	mov	r0, r5
+ 80050c6:	f7ff ff95 	bl	8004ff4 <VL53L0X_GetLimitCheckValue>
+ 80050ca:	b970      	cbnz	r0, 80050ea <VL53L0X_GetDeviceParameters+0x66>
+ 80050cc:	3601      	adds	r6, #1
+ 80050ce:	f819 3f01 	ldrb.w	r3, [r9, #1]!
+ 80050d2:	f808 3f01 	strb.w	r3, [r8, #1]!
+ 80050d6:	2e06      	cmp	r6, #6
+ 80050d8:	f107 0704 	add.w	r7, r7, #4
+ 80050dc:	d1f0      	bne.n	80050c0 <VL53L0X_GetDeviceParameters+0x3c>
+ 80050de:	f104 013c 	add.w	r1, r4, #60	; 0x3c
+ 80050e2:	4628      	mov	r0, r5
+ 80050e4:	f7ff ffbb 	bl	800505e <VL53L0X_GetWrapAroundCheckEnable>
+ 80050e8:	b108      	cbz	r0, 80050ee <VL53L0X_GetDeviceParameters+0x6a>
+ 80050ea:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
+ 80050ee:	1d21      	adds	r1, r4, #4
+ 80050f0:	4628      	mov	r0, r5
+ 80050f2:	e8bd 43f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
+ 80050f6:	f001 bd30 	b.w	8006b5a <VL53L0X_get_measurement_timing_budget_micro_seconds>
+	...
+
+080050fc <VL53L0X_DataInit>:
+ 80050fc:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 80050fe:	2200      	movs	r2, #0
+ 8005100:	4605      	mov	r5, r0
+ 8005102:	b093      	sub	sp, #76	; 0x4c
+ 8005104:	2188      	movs	r1, #136	; 0x88
+ 8005106:	f002 f8cf 	bl	80072a8 <VL53L0X_WrByte>
+ 800510a:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
+ 800510e:	f8a5 2152 	strh.w	r2, [r5, #338]	; 0x152
+ 8005112:	f44f 72c8 	mov.w	r2, #400	; 0x190
+ 8005116:	f8a5 2154 	strh.w	r2, [r5, #340]	; 0x154
+ 800511a:	4a4c      	ldr	r2, [pc, #304]	; (800524c <VL53L0X_DataInit+0x150>)
+ 800511c:	f8c5 2158 	str.w	r2, [r5, #344]	; 0x158
+ 8005120:	2300      	movs	r3, #0
+ 8005122:	4a4b      	ldr	r2, [pc, #300]	; (8005250 <VL53L0X_DataInit+0x154>)
+ 8005124:	f885 30f0 	strb.w	r3, [r5, #240]	; 0xf0
+ 8005128:	f8c5 20d4 	str.w	r2, [r5, #212]	; 0xd4
+ 800512c:	622b      	str	r3, [r5, #32]
+ 800512e:	a902      	add	r1, sp, #8
+ 8005130:	4628      	mov	r0, r5
+ 8005132:	f7ff ffa7 	bl	8005084 <VL53L0X_GetDeviceParameters>
+ 8005136:	4604      	mov	r4, r0
+ 8005138:	b970      	cbnz	r0, 8005158 <VL53L0X_DataInit+0x5c>
+ 800513a:	f8ad 0008 	strh.w	r0, [sp, #8]
+ 800513e:	ae02      	add	r6, sp, #8
+ 8005140:	ce0f      	ldmia	r6!, {r0, r1, r2, r3}
+ 8005142:	f105 0710 	add.w	r7, r5, #16
+ 8005146:	c70f      	stmia	r7!, {r0, r1, r2, r3}
+ 8005148:	ce0f      	ldmia	r6!, {r0, r1, r2, r3}
+ 800514a:	c70f      	stmia	r7!, {r0, r1, r2, r3}
+ 800514c:	ce0f      	ldmia	r6!, {r0, r1, r2, r3}
+ 800514e:	c70f      	stmia	r7!, {r0, r1, r2, r3}
+ 8005150:	e896 000f 	ldmia.w	r6, {r0, r1, r2, r3}
+ 8005154:	e887 000f 	stmia.w	r7, {r0, r1, r2, r3}
+ 8005158:	4b3e      	ldr	r3, [pc, #248]	; (8005254 <VL53L0X_DataInit+0x158>)
+ 800515a:	f8c5 3134 	str.w	r3, [r5, #308]	; 0x134
+ 800515e:	f44f 73fa 	mov.w	r3, #500	; 0x1f4
+ 8005162:	2601      	movs	r6, #1
+ 8005164:	f8a5 3138 	strh.w	r3, [r5, #312]	; 0x138
+ 8005168:	f44f 6320 	mov.w	r3, #2560	; 0xa00
+ 800516c:	f8a5 313c 	strh.w	r3, [r5, #316]	; 0x13c
+ 8005170:	4632      	mov	r2, r6
+ 8005172:	2180      	movs	r1, #128	; 0x80
+ 8005174:	f885 6150 	strb.w	r6, [r5, #336]	; 0x150
+ 8005178:	4628      	mov	r0, r5
+ 800517a:	f002 f895 	bl	80072a8 <VL53L0X_WrByte>
+ 800517e:	4632      	mov	r2, r6
+ 8005180:	4607      	mov	r7, r0
+ 8005182:	21ff      	movs	r1, #255	; 0xff
+ 8005184:	4628      	mov	r0, r5
+ 8005186:	f002 f88f 	bl	80072a8 <VL53L0X_WrByte>
+ 800518a:	2200      	movs	r2, #0
+ 800518c:	4611      	mov	r1, r2
+ 800518e:	4307      	orrs	r7, r0
+ 8005190:	4628      	mov	r0, r5
+ 8005192:	f002 f889 	bl	80072a8 <VL53L0X_WrByte>
+ 8005196:	433c      	orrs	r4, r7
+ 8005198:	b264      	sxtb	r4, r4
+ 800519a:	4304      	orrs	r4, r0
+ 800519c:	f10d 0207 	add.w	r2, sp, #7
+ 80051a0:	2191      	movs	r1, #145	; 0x91
+ 80051a2:	4628      	mov	r0, r5
+ 80051a4:	f002 f8a2 	bl	80072ec <VL53L0X_RdByte>
+ 80051a8:	b264      	sxtb	r4, r4
+ 80051aa:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 80051ae:	f885 313a 	strb.w	r3, [r5, #314]	; 0x13a
+ 80051b2:	4304      	orrs	r4, r0
+ 80051b4:	4632      	mov	r2, r6
+ 80051b6:	2100      	movs	r1, #0
+ 80051b8:	4628      	mov	r0, r5
+ 80051ba:	f002 f875 	bl	80072a8 <VL53L0X_WrByte>
+ 80051be:	b264      	sxtb	r4, r4
+ 80051c0:	4304      	orrs	r4, r0
+ 80051c2:	2200      	movs	r2, #0
+ 80051c4:	21ff      	movs	r1, #255	; 0xff
+ 80051c6:	4628      	mov	r0, r5
+ 80051c8:	f002 f86e 	bl	80072a8 <VL53L0X_WrByte>
+ 80051cc:	b264      	sxtb	r4, r4
+ 80051ce:	4304      	orrs	r4, r0
+ 80051d0:	2200      	movs	r2, #0
+ 80051d2:	2180      	movs	r1, #128	; 0x80
+ 80051d4:	4628      	mov	r0, r5
+ 80051d6:	f002 f867 	bl	80072a8 <VL53L0X_WrByte>
+ 80051da:	b264      	sxtb	r4, r4
+ 80051dc:	4320      	orrs	r0, r4
+ 80051de:	b240      	sxtb	r0, r0
+ 80051e0:	2400      	movs	r4, #0
+ 80051e2:	bb88      	cbnz	r0, 8005248 <VL53L0X_DataInit+0x14c>
+ 80051e4:	b2a1      	uxth	r1, r4
+ 80051e6:	2201      	movs	r2, #1
+ 80051e8:	4628      	mov	r0, r5
+ 80051ea:	3401      	adds	r4, #1
+ 80051ec:	f7ff fe8a 	bl	8004f04 <VL53L0X_SetLimitCheckEnable>
+ 80051f0:	2c06      	cmp	r4, #6
+ 80051f2:	d1f6      	bne.n	80051e2 <VL53L0X_DataInit+0xe6>
+ 80051f4:	bb40      	cbnz	r0, 8005248 <VL53L0X_DataInit+0x14c>
+ 80051f6:	4604      	mov	r4, r0
+ 80051f8:	8568      	strh	r0, [r5, #42]	; 0x2a
+ 80051fa:	4602      	mov	r2, r0
+ 80051fc:	2104      	movs	r1, #4
+ 80051fe:	4628      	mov	r0, r5
+ 8005200:	f7ff fe80 	bl	8004f04 <VL53L0X_SetLimitCheckEnable>
+ 8005204:	bb00      	cbnz	r0, 8005248 <VL53L0X_DataInit+0x14c>
+ 8005206:	4602      	mov	r2, r0
+ 8005208:	2105      	movs	r1, #5
+ 800520a:	4628      	mov	r0, r5
+ 800520c:	f7ff fe7a 	bl	8004f04 <VL53L0X_SetLimitCheckEnable>
+ 8005210:	b9d0      	cbnz	r0, 8005248 <VL53L0X_DataInit+0x14c>
+ 8005212:	f44f 1390 	mov.w	r3, #1179648	; 0x120000
+ 8005216:	636b      	str	r3, [r5, #52]	; 0x34
+ 8005218:	f44f 4280 	mov.w	r2, #16384	; 0x4000
+ 800521c:	2101      	movs	r1, #1
+ 800521e:	4628      	mov	r0, r5
+ 8005220:	f7ff febb 	bl	8004f9a <VL53L0X_SetLimitCheckValue>
+ 8005224:	b980      	cbnz	r0, 8005248 <VL53L0X_DataInit+0x14c>
+ 8005226:	f44f 130c 	mov.w	r3, #2293760	; 0x230000
+ 800522a:	22ff      	movs	r2, #255	; 0xff
+ 800522c:	e9c5 300f 	strd	r3, r0, [r5, #60]	; 0x3c
+ 8005230:	f885 2130 	strb.w	r2, [r5, #304]	; 0x130
+ 8005234:	2101      	movs	r1, #1
+ 8005236:	4628      	mov	r0, r5
+ 8005238:	f002 f836 	bl	80072a8 <VL53L0X_WrByte>
+ 800523c:	2301      	movs	r3, #1
+ 800523e:	f885 3132 	strb.w	r3, [r5, #306]	; 0x132
+ 8005242:	b908      	cbnz	r0, 8005248 <VL53L0X_DataInit+0x14c>
+ 8005244:	f885 4115 	strb.w	r4, [r5, #277]	; 0x115
+ 8005248:	b013      	add	sp, #76	; 0x4c
+ 800524a:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 800524c:	00016b85 	.word	0x00016b85
+ 8005250:	000970a4 	.word	0x000970a4
+ 8005254:	03840064 	.word	0x03840064
+
+08005258 <VL53L0X_PerformRefCalibration>:
+ 8005258:	2301      	movs	r3, #1
+ 800525a:	f000 bd79 	b.w	8005d50 <VL53L0X_perform_ref_calibration>
+
+0800525e <VL53L0X_GetRangingMeasurementData>:
+ 800525e:	e92d 42f0 	stmdb	sp!, {r4, r5, r6, r7, r9, lr}
+ 8005262:	b08e      	sub	sp, #56	; 0x38
+ 8005264:	460c      	mov	r4, r1
+ 8005266:	230c      	movs	r3, #12
+ 8005268:	aa04      	add	r2, sp, #16
+ 800526a:	2114      	movs	r1, #20
+ 800526c:	4605      	mov	r5, r0
+ 800526e:	f002 f805 	bl	800727c <VL53L0X_ReadMulti>
+ 8005272:	4684      	mov	ip, r0
+ 8005274:	2800      	cmp	r0, #0
+ 8005276:	d16c      	bne.n	8005352 <VL53L0X_GetRangingMeasurementData+0xf4>
+ 8005278:	f89d 301a 	ldrb.w	r3, [sp, #26]
+ 800527c:	f89d 601b 	ldrb.w	r6, [sp, #27]
+ 8005280:	f89d 2017 	ldrb.w	r2, [sp, #23]
+ 8005284:	f89d 1018 	ldrb.w	r1, [sp, #24]
+ 8005288:	75a0      	strb	r0, [r4, #22]
+ 800528a:	eb06 2603 	add.w	r6, r6, r3, lsl #8
+ 800528e:	f89d 3016 	ldrb.w	r3, [sp, #22]
+ 8005292:	6020      	str	r0, [r4, #0]
+ 8005294:	eb02 2203 	add.w	r2, r2, r3, lsl #8
+ 8005298:	f89d 3019 	ldrb.w	r3, [sp, #25]
+ 800529c:	6060      	str	r0, [r4, #4]
+ 800529e:	eb03 2301 	add.w	r3, r3, r1, lsl #8
+ 80052a2:	b29b      	uxth	r3, r3
+ 80052a4:	025b      	lsls	r3, r3, #9
+ 80052a6:	f89d 1012 	ldrb.w	r1, [sp, #18]
+ 80052aa:	6123      	str	r3, [r4, #16]
+ 80052ac:	f89d 3013 	ldrb.w	r3, [sp, #19]
+ 80052b0:	f8b5 0152 	ldrh.w	r0, [r5, #338]	; 0x152
+ 80052b4:	eb03 2301 	add.w	r3, r3, r1, lsl #8
+ 80052b8:	b292      	uxth	r2, r2
+ 80052ba:	0252      	lsls	r2, r2, #9
+ 80052bc:	b29b      	uxth	r3, r3
+ 80052be:	60e2      	str	r2, [r4, #12]
+ 80052c0:	82a3      	strh	r3, [r4, #20]
+ 80052c2:	f5b0 7f7a 	cmp.w	r0, #1000	; 0x3e8
+ 80052c6:	f89d 1010 	ldrb.w	r1, [sp, #16]
+ 80052ca:	f895 7131 	ldrb.w	r7, [r5, #305]	; 0x131
+ 80052ce:	b2b6      	uxth	r6, r6
+ 80052d0:	d00a      	beq.n	80052e8 <VL53L0X_GetRangingMeasurementData+0x8a>
+ 80052d2:	4370      	muls	r0, r6
+ 80052d4:	f500 70fa 	add.w	r0, r0, #500	; 0x1f4
+ 80052d8:	f44f 767a 	mov.w	r6, #1000	; 0x3e8
+ 80052dc:	fbb0 f0f6 	udiv	r0, r0, r6
+ 80052e0:	7f2e      	ldrb	r6, [r5, #28]
+ 80052e2:	2e00      	cmp	r6, #0
+ 80052e4:	d139      	bne.n	800535a <VL53L0X_GetRangingMeasurementData+0xfc>
+ 80052e6:	b286      	uxth	r6, r0
+ 80052e8:	2f00      	cmp	r7, #0
+ 80052ea:	d040      	beq.n	800536e <VL53L0X_GetRangingMeasurementData+0x110>
+ 80052ec:	01b0      	lsls	r0, r6, #6
+ 80052ee:	b2c0      	uxtb	r0, r0
+ 80052f0:	08b6      	lsrs	r6, r6, #2
+ 80052f2:	75e0      	strb	r0, [r4, #23]
+ 80052f4:	f10d 000f 	add.w	r0, sp, #15
+ 80052f8:	8126      	strh	r6, [r4, #8]
+ 80052fa:	e9cd 4000 	strd	r4, r0, [sp]
+ 80052fe:	4628      	mov	r0, r5
+ 8005300:	f001 fe86 	bl	8007010 <VL53L0X_get_pal_range_status>
+ 8005304:	4684      	mov	ip, r0
+ 8005306:	bb20      	cbnz	r0, 8005352 <VL53L0X_GetRangingMeasurementData+0xf4>
+ 8005308:	f89d e00f 	ldrb.w	lr, [sp, #15]
+ 800530c:	f884 e018 	strb.w	lr, [r4, #24]
+ 8005310:	f105 0650 	add.w	r6, r5, #80	; 0x50
+ 8005314:	ce0f      	ldmia	r6!, {r0, r1, r2, r3}
+ 8005316:	af07      	add	r7, sp, #28
+ 8005318:	c70f      	stmia	r7!, {r0, r1, r2, r3}
+ 800531a:	e896 0007 	ldmia.w	r6, {r0, r1, r2}
+ 800531e:	7de3      	ldrb	r3, [r4, #23]
+ 8005320:	e887 0007 	stmia.w	r7, {r0, r1, r2}
+ 8005324:	e9d4 0103 	ldrd	r0, r1, [r4, #12]
+ 8005328:	8aa2      	ldrh	r2, [r4, #20]
+ 800532a:	f8ad 2030 	strh.w	r2, [sp, #48]	; 0x30
+ 800532e:	e9d4 4901 	ldrd	r4, r9, [r4, #4]
+ 8005332:	e9cd 010a 	strd	r0, r1, [sp, #40]	; 0x28
+ 8005336:	e9cd 4908 	strd	r4, r9, [sp, #32]
+ 800533a:	ac07      	add	r4, sp, #28
+ 800533c:	f88d 3033 	strb.w	r3, [sp, #51]	; 0x33
+ 8005340:	f88d e034 	strb.w	lr, [sp, #52]	; 0x34
+ 8005344:	cc0f      	ldmia	r4!, {r0, r1, r2, r3}
+ 8005346:	3550      	adds	r5, #80	; 0x50
+ 8005348:	c50f      	stmia	r5!, {r0, r1, r2, r3}
+ 800534a:	e897 0007 	ldmia.w	r7, {r0, r1, r2}
+ 800534e:	e886 0007 	stmia.w	r6, {r0, r1, r2}
+ 8005352:	4660      	mov	r0, ip
+ 8005354:	b00e      	add	sp, #56	; 0x38
+ 8005356:	e8bd 82f0 	ldmia.w	sp!, {r4, r5, r6, r7, r9, pc}
+ 800535a:	8c2e      	ldrh	r6, [r5, #32]
+ 800535c:	435e      	muls	r6, r3
+ 800535e:	ebb2 2f26 	cmp.w	r2, r6, asr #8
+ 8005362:	ea4f 2c26 	mov.w	ip, r6, asr #8
+ 8005366:	d104      	bne.n	8005372 <VL53L0X_GetRangingMeasurementData+0x114>
+ 8005368:	b957      	cbnz	r7, 8005380 <VL53L0X_GetRangingMeasurementData+0x122>
+ 800536a:	f648 26e0 	movw	r6, #35552	; 0x8ae0
+ 800536e:	2000      	movs	r0, #0
+ 8005370:	e7bf      	b.n	80052f2 <VL53L0X_GetRangingMeasurementData+0x94>
+ 8005372:	b280      	uxth	r0, r0
+ 8005374:	4350      	muls	r0, r2
+ 8005376:	eba2 060c 	sub.w	r6, r2, ip
+ 800537a:	fbb0 f0f6 	udiv	r0, r0, r6
+ 800537e:	e7b2      	b.n	80052e6 <VL53L0X_GetRangingMeasurementData+0x88>
+ 8005380:	f242 26b8 	movw	r6, #8888	; 0x22b8
+ 8005384:	e7b2      	b.n	80052ec <VL53L0X_GetRangingMeasurementData+0x8e>
+	...
+
+08005388 <VL53L0X_GetInterruptThresholds>:
+ 8005388:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
+ 800538a:	4617      	mov	r7, r2
+ 800538c:	210e      	movs	r1, #14
+ 800538e:	f10d 0206 	add.w	r2, sp, #6
+ 8005392:	461d      	mov	r5, r3
+ 8005394:	4c0b      	ldr	r4, [pc, #44]	; (80053c4 <VL53L0X_GetInterruptThresholds+0x3c>)
+ 8005396:	4606      	mov	r6, r0
+ 8005398:	f001 ffd4 	bl	8007344 <VL53L0X_RdWord>
+ 800539c:	f8bd 3006 	ldrh.w	r3, [sp, #6]
+ 80053a0:	ea04 4343 	and.w	r3, r4, r3, lsl #17
+ 80053a4:	603b      	str	r3, [r7, #0]
+ 80053a6:	b950      	cbnz	r0, 80053be <VL53L0X_GetInterruptThresholds+0x36>
+ 80053a8:	f10d 0206 	add.w	r2, sp, #6
+ 80053ac:	210c      	movs	r1, #12
+ 80053ae:	4630      	mov	r0, r6
+ 80053b0:	f001 ffc8 	bl	8007344 <VL53L0X_RdWord>
+ 80053b4:	f8bd 3006 	ldrh.w	r3, [sp, #6]
+ 80053b8:	ea04 4443 	and.w	r4, r4, r3, lsl #17
+ 80053bc:	602c      	str	r4, [r5, #0]
+ 80053be:	b003      	add	sp, #12
+ 80053c0:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 80053c2:	bf00      	nop
+ 80053c4:	1ffe0000 	.word	0x1ffe0000
+
+080053c8 <VL53L0X_CheckAndLoadInterruptSettings>:
+ 80053c8:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 80053ca:	f890 30da 	ldrb.w	r3, [r0, #218]	; 0xda
+ 80053ce:	3b01      	subs	r3, #1
+ 80053d0:	2b02      	cmp	r3, #2
+ 80053d2:	4606      	mov	r6, r0
+ 80053d4:	460c      	mov	r4, r1
+ 80053d6:	d834      	bhi.n	8005442 <VL53L0X_CheckAndLoadInterruptSettings+0x7a>
+ 80053d8:	ab01      	add	r3, sp, #4
+ 80053da:	466a      	mov	r2, sp
+ 80053dc:	2101      	movs	r1, #1
+ 80053de:	f7ff ffd3 	bl	8005388 <VL53L0X_GetInterruptThresholds>
+ 80053e2:	9b00      	ldr	r3, [sp, #0]
+ 80053e4:	f5b3 0f7f 	cmp.w	r3, #16711680	; 0xff0000
+ 80053e8:	4605      	mov	r5, r0
+ 80053ea:	d803      	bhi.n	80053f4 <VL53L0X_CheckAndLoadInterruptSettings+0x2c>
+ 80053ec:	9b01      	ldr	r3, [sp, #4]
+ 80053ee:	f5b3 0f7f 	cmp.w	r3, #16711680	; 0xff0000
+ 80053f2:	d923      	bls.n	800543c <VL53L0X_CheckAndLoadInterruptSettings+0x74>
+ 80053f4:	bb15      	cbnz	r5, 800543c <VL53L0X_CheckAndLoadInterruptSettings+0x74>
+ 80053f6:	b134      	cbz	r4, 8005406 <VL53L0X_CheckAndLoadInterruptSettings+0x3e>
+ 80053f8:	4913      	ldr	r1, [pc, #76]	; (8005448 <VL53L0X_CheckAndLoadInterruptSettings+0x80>)
+ 80053fa:	4630      	mov	r0, r6
+ 80053fc:	b002      	add	sp, #8
+ 80053fe:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
+ 8005402:	f001 bc0f 	b.w	8006c24 <VL53L0X_load_tuning_settings>
+ 8005406:	2204      	movs	r2, #4
+ 8005408:	21ff      	movs	r1, #255	; 0xff
+ 800540a:	4630      	mov	r0, r6
+ 800540c:	f001 ff4c 	bl	80072a8 <VL53L0X_WrByte>
+ 8005410:	462a      	mov	r2, r5
+ 8005412:	4604      	mov	r4, r0
+ 8005414:	2170      	movs	r1, #112	; 0x70
+ 8005416:	4630      	mov	r0, r6
+ 8005418:	f001 ff46 	bl	80072a8 <VL53L0X_WrByte>
+ 800541c:	462a      	mov	r2, r5
+ 800541e:	4304      	orrs	r4, r0
+ 8005420:	21ff      	movs	r1, #255	; 0xff
+ 8005422:	4630      	mov	r0, r6
+ 8005424:	f001 ff40 	bl	80072a8 <VL53L0X_WrByte>
+ 8005428:	b264      	sxtb	r4, r4
+ 800542a:	4304      	orrs	r4, r0
+ 800542c:	462a      	mov	r2, r5
+ 800542e:	2180      	movs	r1, #128	; 0x80
+ 8005430:	4630      	mov	r0, r6
+ 8005432:	f001 ff39 	bl	80072a8 <VL53L0X_WrByte>
+ 8005436:	b264      	sxtb	r4, r4
+ 8005438:	4304      	orrs	r4, r0
+ 800543a:	b265      	sxtb	r5, r4
+ 800543c:	4628      	mov	r0, r5
+ 800543e:	b002      	add	sp, #8
+ 8005440:	bd70      	pop	{r4, r5, r6, pc}
+ 8005442:	2500      	movs	r5, #0
+ 8005444:	e7fa      	b.n	800543c <VL53L0X_CheckAndLoadInterruptSettings+0x74>
+ 8005446:	bf00      	nop
+ 8005448:	2000065f 	.word	0x2000065f
+
+0800544c <VL53L0X_StartMeasurement>:
+ 800544c:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 800544e:	4604      	mov	r4, r0
+ 8005450:	2201      	movs	r2, #1
+ 8005452:	2180      	movs	r1, #128	; 0x80
+ 8005454:	7c05      	ldrb	r5, [r0, #16]
+ 8005456:	f001 ff27 	bl	80072a8 <VL53L0X_WrByte>
+ 800545a:	2201      	movs	r2, #1
+ 800545c:	21ff      	movs	r1, #255	; 0xff
+ 800545e:	4620      	mov	r0, r4
+ 8005460:	f001 ff22 	bl	80072a8 <VL53L0X_WrByte>
+ 8005464:	2200      	movs	r2, #0
+ 8005466:	4611      	mov	r1, r2
+ 8005468:	4620      	mov	r0, r4
+ 800546a:	f001 ff1d 	bl	80072a8 <VL53L0X_WrByte>
+ 800546e:	f894 213a 	ldrb.w	r2, [r4, #314]	; 0x13a
+ 8005472:	2191      	movs	r1, #145	; 0x91
+ 8005474:	4620      	mov	r0, r4
+ 8005476:	f001 ff17 	bl	80072a8 <VL53L0X_WrByte>
+ 800547a:	2201      	movs	r2, #1
+ 800547c:	2100      	movs	r1, #0
+ 800547e:	4620      	mov	r0, r4
+ 8005480:	f001 ff12 	bl	80072a8 <VL53L0X_WrByte>
+ 8005484:	2200      	movs	r2, #0
+ 8005486:	21ff      	movs	r1, #255	; 0xff
+ 8005488:	4620      	mov	r0, r4
+ 800548a:	f001 ff0d 	bl	80072a8 <VL53L0X_WrByte>
+ 800548e:	2200      	movs	r2, #0
+ 8005490:	2180      	movs	r1, #128	; 0x80
+ 8005492:	4620      	mov	r0, r4
+ 8005494:	f001 ff08 	bl	80072a8 <VL53L0X_WrByte>
+ 8005498:	2d01      	cmp	r5, #1
+ 800549a:	d029      	beq.n	80054f0 <VL53L0X_StartMeasurement+0xa4>
+ 800549c:	2d03      	cmp	r5, #3
+ 800549e:	d037      	beq.n	8005510 <VL53L0X_StartMeasurement+0xc4>
+ 80054a0:	2d00      	cmp	r5, #0
+ 80054a2:	d13c      	bne.n	800551e <VL53L0X_StartMeasurement+0xd2>
+ 80054a4:	2201      	movs	r2, #1
+ 80054a6:	4629      	mov	r1, r5
+ 80054a8:	4620      	mov	r0, r4
+ 80054aa:	f001 fefd 	bl	80072a8 <VL53L0X_WrByte>
+ 80054ae:	2301      	movs	r3, #1
+ 80054b0:	f88d 3007 	strb.w	r3, [sp, #7]
+ 80054b4:	b1a0      	cbz	r0, 80054e0 <VL53L0X_StartMeasurement+0x94>
+ 80054b6:	b003      	add	sp, #12
+ 80054b8:	bd30      	pop	{r4, r5, pc}
+ 80054ba:	4601      	mov	r1, r0
+ 80054bc:	f10d 0207 	add.w	r2, sp, #7
+ 80054c0:	4620      	mov	r0, r4
+ 80054c2:	f001 ff13 	bl	80072ec <VL53L0X_RdByte>
+ 80054c6:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 80054ca:	07db      	lsls	r3, r3, #31
+ 80054cc:	f105 0501 	add.w	r5, r5, #1
+ 80054d0:	d508      	bpl.n	80054e4 <VL53L0X_StartMeasurement+0x98>
+ 80054d2:	b938      	cbnz	r0, 80054e4 <VL53L0X_StartMeasurement+0x98>
+ 80054d4:	f5b5 6ffa 	cmp.w	r5, #2000	; 0x7d0
+ 80054d8:	d1ef      	bne.n	80054ba <VL53L0X_StartMeasurement+0x6e>
+ 80054da:	f06f 0006 	mvn.w	r0, #6
+ 80054de:	e7ea      	b.n	80054b6 <VL53L0X_StartMeasurement+0x6a>
+ 80054e0:	4605      	mov	r5, r0
+ 80054e2:	e7f0      	b.n	80054c6 <VL53L0X_StartMeasurement+0x7a>
+ 80054e4:	f5b5 6ffa 	cmp.w	r5, #2000	; 0x7d0
+ 80054e8:	bf08      	it	eq
+ 80054ea:	f06f 0006 	mvneq.w	r0, #6
+ 80054ee:	e7e2      	b.n	80054b6 <VL53L0X_StartMeasurement+0x6a>
+ 80054f0:	b918      	cbnz	r0, 80054fa <VL53L0X_StartMeasurement+0xae>
+ 80054f2:	4629      	mov	r1, r5
+ 80054f4:	4620      	mov	r0, r4
+ 80054f6:	f7ff ff67 	bl	80053c8 <VL53L0X_CheckAndLoadInterruptSettings>
+ 80054fa:	2202      	movs	r2, #2
+ 80054fc:	2100      	movs	r1, #0
+ 80054fe:	4620      	mov	r0, r4
+ 8005500:	f001 fed2 	bl	80072a8 <VL53L0X_WrByte>
+ 8005504:	2800      	cmp	r0, #0
+ 8005506:	d1d6      	bne.n	80054b6 <VL53L0X_StartMeasurement+0x6a>
+ 8005508:	2304      	movs	r3, #4
+ 800550a:	f884 3132 	strb.w	r3, [r4, #306]	; 0x132
+ 800550e:	e7d2      	b.n	80054b6 <VL53L0X_StartMeasurement+0x6a>
+ 8005510:	b918      	cbnz	r0, 800551a <VL53L0X_StartMeasurement+0xce>
+ 8005512:	2101      	movs	r1, #1
+ 8005514:	4620      	mov	r0, r4
+ 8005516:	f7ff ff57 	bl	80053c8 <VL53L0X_CheckAndLoadInterruptSettings>
+ 800551a:	2204      	movs	r2, #4
+ 800551c:	e7ee      	b.n	80054fc <VL53L0X_StartMeasurement+0xb0>
+ 800551e:	f06f 0007 	mvn.w	r0, #7
+ 8005522:	e7c8      	b.n	80054b6 <VL53L0X_StartMeasurement+0x6a>
+
+08005524 <VL53L0X_PerformSingleMeasurement>:
+ 8005524:	b538      	push	{r3, r4, r5, lr}
+ 8005526:	7c05      	ldrb	r5, [r0, #16]
+ 8005528:	4604      	mov	r4, r0
+ 800552a:	b125      	cbz	r5, 8005536 <VL53L0X_PerformSingleMeasurement+0x12>
+ 800552c:	4620      	mov	r0, r4
+ 800552e:	f000 fd54 	bl	8005fda <VL53L0X_measurement_poll_for_completion>
+ 8005532:	b128      	cbz	r0, 8005540 <VL53L0X_PerformSingleMeasurement+0x1c>
+ 8005534:	bd38      	pop	{r3, r4, r5, pc}
+ 8005536:	f7ff ff89 	bl	800544c <VL53L0X_StartMeasurement>
+ 800553a:	2800      	cmp	r0, #0
+ 800553c:	d0f6      	beq.n	800552c <VL53L0X_PerformSingleMeasurement+0x8>
+ 800553e:	e7f9      	b.n	8005534 <VL53L0X_PerformSingleMeasurement+0x10>
+ 8005540:	2d00      	cmp	r5, #0
+ 8005542:	d1f7      	bne.n	8005534 <VL53L0X_PerformSingleMeasurement+0x10>
+ 8005544:	2303      	movs	r3, #3
+ 8005546:	f884 3132 	strb.w	r3, [r4, #306]	; 0x132
+ 800554a:	e7f3      	b.n	8005534 <VL53L0X_PerformSingleMeasurement+0x10>
+
+0800554c <VL53L0X_ClearInterruptMask>:
+ 800554c:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 800554e:	4606      	mov	r6, r0
+ 8005550:	2500      	movs	r5, #0
+ 8005552:	2201      	movs	r2, #1
+ 8005554:	210b      	movs	r1, #11
+ 8005556:	4630      	mov	r0, r6
+ 8005558:	f001 fea6 	bl	80072a8 <VL53L0X_WrByte>
+ 800555c:	2200      	movs	r2, #0
+ 800555e:	4604      	mov	r4, r0
+ 8005560:	210b      	movs	r1, #11
+ 8005562:	4630      	mov	r0, r6
+ 8005564:	f001 fea0 	bl	80072a8 <VL53L0X_WrByte>
+ 8005568:	f10d 0207 	add.w	r2, sp, #7
+ 800556c:	4304      	orrs	r4, r0
+ 800556e:	2113      	movs	r1, #19
+ 8005570:	4630      	mov	r0, r6
+ 8005572:	f001 febb 	bl	80072ec <VL53L0X_RdByte>
+ 8005576:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 800557a:	b264      	sxtb	r4, r4
+ 800557c:	4304      	orrs	r4, r0
+ 800557e:	3501      	adds	r5, #1
+ 8005580:	075b      	lsls	r3, r3, #29
+ 8005582:	b260      	sxtb	r0, r4
+ 8005584:	b2ed      	uxtb	r5, r5
+ 8005586:	d005      	beq.n	8005594 <VL53L0X_ClearInterruptMask+0x48>
+ 8005588:	2d03      	cmp	r5, #3
+ 800558a:	d008      	beq.n	800559e <VL53L0X_ClearInterruptMask+0x52>
+ 800558c:	2800      	cmp	r0, #0
+ 800558e:	d0e0      	beq.n	8005552 <VL53L0X_ClearInterruptMask+0x6>
+ 8005590:	b002      	add	sp, #8
+ 8005592:	bd70      	pop	{r4, r5, r6, pc}
+ 8005594:	2d03      	cmp	r5, #3
+ 8005596:	bf08      	it	eq
+ 8005598:	f06f 000b 	mvneq.w	r0, #11
+ 800559c:	e7f8      	b.n	8005590 <VL53L0X_ClearInterruptMask+0x44>
+ 800559e:	f06f 000b 	mvn.w	r0, #11
+ 80055a2:	e7f5      	b.n	8005590 <VL53L0X_ClearInterruptMask+0x44>
+
+080055a4 <VL53L0X_PerformSingleRangingMeasurement>:
+ 80055a4:	b538      	push	{r3, r4, r5, lr}
+ 80055a6:	2300      	movs	r3, #0
+ 80055a8:	7403      	strb	r3, [r0, #16]
+ 80055aa:	4604      	mov	r4, r0
+ 80055ac:	460d      	mov	r5, r1
+ 80055ae:	f7ff ffb9 	bl	8005524 <VL53L0X_PerformSingleMeasurement>
+ 80055b2:	b950      	cbnz	r0, 80055ca <VL53L0X_PerformSingleRangingMeasurement+0x26>
+ 80055b4:	4629      	mov	r1, r5
+ 80055b6:	4620      	mov	r0, r4
+ 80055b8:	f7ff fe51 	bl	800525e <VL53L0X_GetRangingMeasurementData>
+ 80055bc:	b928      	cbnz	r0, 80055ca <VL53L0X_PerformSingleRangingMeasurement+0x26>
+ 80055be:	4601      	mov	r1, r0
+ 80055c0:	4620      	mov	r0, r4
+ 80055c2:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
+ 80055c6:	f7ff bfc1 	b.w	800554c <VL53L0X_ClearInterruptMask>
+ 80055ca:	bd38      	pop	{r3, r4, r5, pc}
+
+080055cc <VL53L0X_SetGpioConfig.part.0>:
+ 80055cc:	2915      	cmp	r1, #21
+ 80055ce:	b570      	push	{r4, r5, r6, lr}
+ 80055d0:	4605      	mov	r5, r0
+ 80055d2:	4616      	mov	r6, r2
+ 80055d4:	461c      	mov	r4, r3
+ 80055d6:	d167      	bne.n	80056a8 <VL53L0X_SetGpioConfig.part.0+0xdc>
+ 80055d8:	2201      	movs	r2, #1
+ 80055da:	21ff      	movs	r1, #255	; 0xff
+ 80055dc:	f001 fe64 	bl	80072a8 <VL53L0X_WrByte>
+ 80055e0:	2200      	movs	r2, #0
+ 80055e2:	4611      	mov	r1, r2
+ 80055e4:	4604      	mov	r4, r0
+ 80055e6:	4628      	mov	r0, r5
+ 80055e8:	f001 fe5e 	bl	80072a8 <VL53L0X_WrByte>
+ 80055ec:	2200      	movs	r2, #0
+ 80055ee:	4304      	orrs	r4, r0
+ 80055f0:	21ff      	movs	r1, #255	; 0xff
+ 80055f2:	4628      	mov	r0, r5
+ 80055f4:	f001 fe58 	bl	80072a8 <VL53L0X_WrByte>
+ 80055f8:	b264      	sxtb	r4, r4
+ 80055fa:	4304      	orrs	r4, r0
+ 80055fc:	2201      	movs	r2, #1
+ 80055fe:	2180      	movs	r1, #128	; 0x80
+ 8005600:	4628      	mov	r0, r5
+ 8005602:	f001 fe51 	bl	80072a8 <VL53L0X_WrByte>
+ 8005606:	b264      	sxtb	r4, r4
+ 8005608:	4304      	orrs	r4, r0
+ 800560a:	2202      	movs	r2, #2
+ 800560c:	2185      	movs	r1, #133	; 0x85
+ 800560e:	4628      	mov	r0, r5
+ 8005610:	f001 fe4a 	bl	80072a8 <VL53L0X_WrByte>
+ 8005614:	b264      	sxtb	r4, r4
+ 8005616:	4304      	orrs	r4, r0
+ 8005618:	2204      	movs	r2, #4
+ 800561a:	21ff      	movs	r1, #255	; 0xff
+ 800561c:	4628      	mov	r0, r5
+ 800561e:	f001 fe43 	bl	80072a8 <VL53L0X_WrByte>
+ 8005622:	b264      	sxtb	r4, r4
+ 8005624:	4304      	orrs	r4, r0
+ 8005626:	2200      	movs	r2, #0
+ 8005628:	21cd      	movs	r1, #205	; 0xcd
+ 800562a:	4628      	mov	r0, r5
+ 800562c:	f001 fe3c 	bl	80072a8 <VL53L0X_WrByte>
+ 8005630:	b264      	sxtb	r4, r4
+ 8005632:	4304      	orrs	r4, r0
+ 8005634:	2211      	movs	r2, #17
+ 8005636:	21cc      	movs	r1, #204	; 0xcc
+ 8005638:	4628      	mov	r0, r5
+ 800563a:	f001 fe35 	bl	80072a8 <VL53L0X_WrByte>
+ 800563e:	b264      	sxtb	r4, r4
+ 8005640:	4304      	orrs	r4, r0
+ 8005642:	2207      	movs	r2, #7
+ 8005644:	21ff      	movs	r1, #255	; 0xff
+ 8005646:	4628      	mov	r0, r5
+ 8005648:	f001 fe2e 	bl	80072a8 <VL53L0X_WrByte>
+ 800564c:	b264      	sxtb	r4, r4
+ 800564e:	4304      	orrs	r4, r0
+ 8005650:	2200      	movs	r2, #0
+ 8005652:	21be      	movs	r1, #190	; 0xbe
+ 8005654:	4628      	mov	r0, r5
+ 8005656:	f001 fe27 	bl	80072a8 <VL53L0X_WrByte>
+ 800565a:	b264      	sxtb	r4, r4
+ 800565c:	4304      	orrs	r4, r0
+ 800565e:	2206      	movs	r2, #6
+ 8005660:	21ff      	movs	r1, #255	; 0xff
+ 8005662:	4628      	mov	r0, r5
+ 8005664:	f001 fe20 	bl	80072a8 <VL53L0X_WrByte>
+ 8005668:	b264      	sxtb	r4, r4
+ 800566a:	4304      	orrs	r4, r0
+ 800566c:	2209      	movs	r2, #9
+ 800566e:	21cc      	movs	r1, #204	; 0xcc
+ 8005670:	4628      	mov	r0, r5
+ 8005672:	f001 fe19 	bl	80072a8 <VL53L0X_WrByte>
+ 8005676:	b264      	sxtb	r4, r4
+ 8005678:	4304      	orrs	r4, r0
+ 800567a:	2200      	movs	r2, #0
+ 800567c:	21ff      	movs	r1, #255	; 0xff
+ 800567e:	4628      	mov	r0, r5
+ 8005680:	f001 fe12 	bl	80072a8 <VL53L0X_WrByte>
+ 8005684:	b264      	sxtb	r4, r4
+ 8005686:	4304      	orrs	r4, r0
+ 8005688:	2201      	movs	r2, #1
+ 800568a:	21ff      	movs	r1, #255	; 0xff
+ 800568c:	4628      	mov	r0, r5
+ 800568e:	f001 fe0b 	bl	80072a8 <VL53L0X_WrByte>
+ 8005692:	b264      	sxtb	r4, r4
+ 8005694:	2200      	movs	r2, #0
+ 8005696:	4304      	orrs	r4, r0
+ 8005698:	4611      	mov	r1, r2
+ 800569a:	4628      	mov	r0, r5
+ 800569c:	f001 fe04 	bl	80072a8 <VL53L0X_WrByte>
+ 80056a0:	b264      	sxtb	r4, r4
+ 80056a2:	4320      	orrs	r0, r4
+ 80056a4:	b240      	sxtb	r0, r0
+ 80056a6:	bd70      	pop	{r4, r5, r6, pc}
+ 80056a8:	2a04      	cmp	r2, #4
+ 80056aa:	d817      	bhi.n	80056dc <VL53L0X_SetGpioConfig.part.0+0x110>
+ 80056ac:	210a      	movs	r1, #10
+ 80056ae:	f001 fdfb 	bl	80072a8 <VL53L0X_WrByte>
+ 80056b2:	2800      	cmp	r0, #0
+ 80056b4:	d1f7      	bne.n	80056a6 <VL53L0X_SetGpioConfig.part.0+0xda>
+ 80056b6:	1e23      	subs	r3, r4, #0
+ 80056b8:	bf18      	it	ne
+ 80056ba:	2301      	movne	r3, #1
+ 80056bc:	011b      	lsls	r3, r3, #4
+ 80056be:	22ef      	movs	r2, #239	; 0xef
+ 80056c0:	2184      	movs	r1, #132	; 0x84
+ 80056c2:	4628      	mov	r0, r5
+ 80056c4:	f001 fe27 	bl	8007316 <VL53L0X_UpdateByte>
+ 80056c8:	2800      	cmp	r0, #0
+ 80056ca:	d1ec      	bne.n	80056a6 <VL53L0X_SetGpioConfig.part.0+0xda>
+ 80056cc:	f885 60da 	strb.w	r6, [r5, #218]	; 0xda
+ 80056d0:	4601      	mov	r1, r0
+ 80056d2:	4628      	mov	r0, r5
+ 80056d4:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
+ 80056d8:	f7ff bf38 	b.w	800554c <VL53L0X_ClearInterruptMask>
+ 80056dc:	f06f 000a 	mvn.w	r0, #10
+ 80056e0:	e7e1      	b.n	80056a6 <VL53L0X_SetGpioConfig.part.0+0xda>
+	...
+
+080056e4 <VL53L0X_StaticInit>:
+ 80056e4:	b570      	push	{r4, r5, r6, lr}
+ 80056e6:	b094      	sub	sp, #80	; 0x50
+ 80056e8:	4605      	mov	r5, r0
+ 80056ea:	2240      	movs	r2, #64	; 0x40
+ 80056ec:	2100      	movs	r1, #0
+ 80056ee:	a804      	add	r0, sp, #16
+ 80056f0:	f00e fdae 	bl	8014250 <memset>
+ 80056f4:	2300      	movs	r3, #0
+ 80056f6:	2101      	movs	r1, #1
+ 80056f8:	4628      	mov	r0, r5
+ 80056fa:	f8ad 3006 	strh.w	r3, [sp, #6]
+ 80056fe:	f88d 3003 	strb.w	r3, [sp, #3]
+ 8005702:	f88d 3004 	strb.w	r3, [sp, #4]
+ 8005706:	9302      	str	r3, [sp, #8]
+ 8005708:	f000 fcb8 	bl	800607c <VL53L0X_get_info_from_device>
+ 800570c:	f895 2114 	ldrb.w	r2, [r5, #276]	; 0x114
+ 8005710:	f895 1113 	ldrb.w	r1, [r5, #275]	; 0x113
+ 8005714:	2a01      	cmp	r2, #1
+ 8005716:	d804      	bhi.n	8005722 <VL53L0X_StaticInit+0x3e>
+ 8005718:	f040 80ad 	bne.w	8005876 <VL53L0X_StaticInit+0x192>
+ 800571c:	2920      	cmp	r1, #32
+ 800571e:	f240 80ac 	bls.w	800587a <VL53L0X_StaticInit+0x196>
+ 8005722:	aa01      	add	r2, sp, #4
+ 8005724:	a902      	add	r1, sp, #8
+ 8005726:	4628      	mov	r0, r5
+ 8005728:	f000 fb2d 	bl	8005d86 <VL53L0X_perform_ref_spad_management>
+ 800572c:	4604      	mov	r4, r0
+ 800572e:	2800      	cmp	r0, #0
+ 8005730:	f040 809e 	bne.w	8005870 <VL53L0X_StaticInit+0x18c>
+ 8005734:	f895 3150 	ldrb.w	r3, [r5, #336]	; 0x150
+ 8005738:	2b00      	cmp	r3, #0
+ 800573a:	f040 80a2 	bne.w	8005882 <VL53L0X_StaticInit+0x19e>
+ 800573e:	f8d5 114c 	ldr.w	r1, [r5, #332]	; 0x14c
+ 8005742:	4628      	mov	r0, r5
+ 8005744:	f001 fa6e 	bl	8006c24 <VL53L0X_load_tuning_settings>
+ 8005748:	4604      	mov	r4, r0
+ 800574a:	2800      	cmp	r0, #0
+ 800574c:	f040 8090 	bne.w	8005870 <VL53L0X_StaticInit+0x18c>
+ 8005750:	4623      	mov	r3, r4
+ 8005752:	4621      	mov	r1, r4
+ 8005754:	2204      	movs	r2, #4
+ 8005756:	4628      	mov	r0, r5
+ 8005758:	f7ff ff38 	bl	80055cc <VL53L0X_SetGpioConfig.part.0>
+ 800575c:	4604      	mov	r4, r0
+ 800575e:	2800      	cmp	r0, #0
+ 8005760:	f040 8086 	bne.w	8005870 <VL53L0X_StaticInit+0x18c>
+ 8005764:	2201      	movs	r2, #1
+ 8005766:	21ff      	movs	r1, #255	; 0xff
+ 8005768:	4628      	mov	r0, r5
+ 800576a:	f001 fd9d 	bl	80072a8 <VL53L0X_WrByte>
+ 800576e:	f10d 0206 	add.w	r2, sp, #6
+ 8005772:	4606      	mov	r6, r0
+ 8005774:	2184      	movs	r1, #132	; 0x84
+ 8005776:	4628      	mov	r0, r5
+ 8005778:	f001 fde4 	bl	8007344 <VL53L0X_RdWord>
+ 800577c:	4622      	mov	r2, r4
+ 800577e:	4306      	orrs	r6, r0
+ 8005780:	21ff      	movs	r1, #255	; 0xff
+ 8005782:	4628      	mov	r0, r5
+ 8005784:	f001 fd90 	bl	80072a8 <VL53L0X_WrByte>
+ 8005788:	b276      	sxtb	r6, r6
+ 800578a:	4306      	orrs	r6, r0
+ 800578c:	b274      	sxtb	r4, r6
+ 800578e:	2c00      	cmp	r4, #0
+ 8005790:	d16e      	bne.n	8005870 <VL53L0X_StaticInit+0x18c>
+ 8005792:	f8bd 3006 	ldrh.w	r3, [sp, #6]
+ 8005796:	011b      	lsls	r3, r3, #4
+ 8005798:	f8c5 30d4 	str.w	r3, [r5, #212]	; 0xd4
+ 800579c:	a904      	add	r1, sp, #16
+ 800579e:	4628      	mov	r0, r5
+ 80057a0:	f7ff fc70 	bl	8005084 <VL53L0X_GetDeviceParameters>
+ 80057a4:	4604      	mov	r4, r0
+ 80057a6:	2800      	cmp	r0, #0
+ 80057a8:	d162      	bne.n	8005870 <VL53L0X_StaticInit+0x18c>
+ 80057aa:	f10d 0103 	add.w	r1, sp, #3
+ 80057ae:	4628      	mov	r0, r5
+ 80057b0:	f7ff faf2 	bl	8004d98 <VL53L0X_GetFractionEnable>
+ 80057b4:	4604      	mov	r4, r0
+ 80057b6:	2800      	cmp	r0, #0
+ 80057b8:	d15a      	bne.n	8005870 <VL53L0X_StaticInit+0x18c>
+ 80057ba:	f89d 3003 	ldrb.w	r3, [sp, #3]
+ 80057be:	f885 3131 	strb.w	r3, [r5, #305]	; 0x131
+ 80057c2:	ae04      	add	r6, sp, #16
+ 80057c4:	ce0f      	ldmia	r6!, {r0, r1, r2, r3}
+ 80057c6:	f105 0410 	add.w	r4, r5, #16
+ 80057ca:	c40f      	stmia	r4!, {r0, r1, r2, r3}
+ 80057cc:	ce0f      	ldmia	r6!, {r0, r1, r2, r3}
+ 80057ce:	c40f      	stmia	r4!, {r0, r1, r2, r3}
+ 80057d0:	ce0f      	ldmia	r6!, {r0, r1, r2, r3}
+ 80057d2:	c40f      	stmia	r4!, {r0, r1, r2, r3}
+ 80057d4:	e896 000f 	ldmia.w	r6, {r0, r1, r2, r3}
+ 80057d8:	e884 000f 	stmia.w	r4, {r0, r1, r2, r3}
+ 80057dc:	f10d 0203 	add.w	r2, sp, #3
+ 80057e0:	2101      	movs	r1, #1
+ 80057e2:	4628      	mov	r0, r5
+ 80057e4:	f001 fd82 	bl	80072ec <VL53L0X_RdByte>
+ 80057e8:	4604      	mov	r4, r0
+ 80057ea:	2800      	cmp	r0, #0
+ 80057ec:	d140      	bne.n	8005870 <VL53L0X_StaticInit+0x18c>
+ 80057ee:	f89d 3003 	ldrb.w	r3, [sp, #3]
+ 80057f2:	f885 3130 	strb.w	r3, [r5, #304]	; 0x130
+ 80057f6:	4602      	mov	r2, r0
+ 80057f8:	4601      	mov	r1, r0
+ 80057fa:	4628      	mov	r0, r5
+ 80057fc:	f7ff fade 	bl	8004dbc <VL53L0X_SetSequenceStepEnable>
+ 8005800:	4604      	mov	r4, r0
+ 8005802:	bba8      	cbnz	r0, 8005870 <VL53L0X_StaticInit+0x18c>
+ 8005804:	4602      	mov	r2, r0
+ 8005806:	2102      	movs	r1, #2
+ 8005808:	4628      	mov	r0, r5
+ 800580a:	f7ff fad7 	bl	8004dbc <VL53L0X_SetSequenceStepEnable>
+ 800580e:	4604      	mov	r4, r0
+ 8005810:	bb70      	cbnz	r0, 8005870 <VL53L0X_StaticInit+0x18c>
+ 8005812:	2303      	movs	r3, #3
+ 8005814:	4601      	mov	r1, r0
+ 8005816:	f885 3132 	strb.w	r3, [r5, #306]	; 0x132
+ 800581a:	f10d 0205 	add.w	r2, sp, #5
+ 800581e:	4628      	mov	r0, r5
+ 8005820:	f001 f919 	bl	8006a56 <VL53L0X_get_vcsel_pulse_period>
+ 8005824:	4604      	mov	r4, r0
+ 8005826:	bb18      	cbnz	r0, 8005870 <VL53L0X_StaticInit+0x18c>
+ 8005828:	f89d 3005 	ldrb.w	r3, [sp, #5]
+ 800582c:	f885 30e8 	strb.w	r3, [r5, #232]	; 0xe8
+ 8005830:	f10d 0205 	add.w	r2, sp, #5
+ 8005834:	2101      	movs	r1, #1
+ 8005836:	4628      	mov	r0, r5
+ 8005838:	f001 f90d 	bl	8006a56 <VL53L0X_get_vcsel_pulse_period>
+ 800583c:	4604      	mov	r4, r0
+ 800583e:	b9b8      	cbnz	r0, 8005870 <VL53L0X_StaticInit+0x18c>
+ 8005840:	f89d 3005 	ldrb.w	r3, [sp, #5]
+ 8005844:	f885 30e0 	strb.w	r3, [r5, #224]	; 0xe0
+ 8005848:	aa03      	add	r2, sp, #12
+ 800584a:	2103      	movs	r1, #3
+ 800584c:	4628      	mov	r0, r5
+ 800584e:	f000 ff01 	bl	8006654 <get_sequence_step_timeout>
+ 8005852:	4604      	mov	r4, r0
+ 8005854:	b960      	cbnz	r0, 8005870 <VL53L0X_StaticInit+0x18c>
+ 8005856:	9b03      	ldr	r3, [sp, #12]
+ 8005858:	f8c5 30e4 	str.w	r3, [r5, #228]	; 0xe4
+ 800585c:	aa03      	add	r2, sp, #12
+ 800585e:	2104      	movs	r1, #4
+ 8005860:	4628      	mov	r0, r5
+ 8005862:	f000 fef7 	bl	8006654 <get_sequence_step_timeout>
+ 8005866:	4604      	mov	r4, r0
+ 8005868:	b910      	cbnz	r0, 8005870 <VL53L0X_StaticInit+0x18c>
+ 800586a:	9b03      	ldr	r3, [sp, #12]
+ 800586c:	f8c5 30dc 	str.w	r3, [r5, #220]	; 0xdc
+ 8005870:	4620      	mov	r0, r4
+ 8005872:	b014      	add	sp, #80	; 0x50
+ 8005874:	bd70      	pop	{r4, r5, r6, pc}
+ 8005876:	290c      	cmp	r1, #12
+ 8005878:	e751      	b.n	800571e <VL53L0X_StaticInit+0x3a>
+ 800587a:	4628      	mov	r0, r5
+ 800587c:	f000 f910 	bl	8005aa0 <VL53L0X_set_reference_spads>
+ 8005880:	e754      	b.n	800572c <VL53L0X_StaticInit+0x48>
+ 8005882:	4901      	ldr	r1, [pc, #4]	; (8005888 <VL53L0X_StaticInit+0x1a4>)
+ 8005884:	e75d      	b.n	8005742 <VL53L0X_StaticInit+0x5e>
+ 8005886:	bf00      	nop
+ 8005888:	2000056c 	.word	0x2000056c
+
+0800588c <VL53L0X_GetInterruptMaskStatus>:
+ 800588c:	b513      	push	{r0, r1, r4, lr}
+ 800588e:	460c      	mov	r4, r1
+ 8005890:	f10d 0207 	add.w	r2, sp, #7
+ 8005894:	2113      	movs	r1, #19
+ 8005896:	f001 fd29 	bl	80072ec <VL53L0X_RdByte>
+ 800589a:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 800589e:	f013 0f18 	tst.w	r3, #24
+ 80058a2:	f003 0207 	and.w	r2, r3, #7
+ 80058a6:	bf18      	it	ne
+ 80058a8:	f06f 0005 	mvnne.w	r0, #5
+ 80058ac:	6022      	str	r2, [r4, #0]
+ 80058ae:	b002      	add	sp, #8
+ 80058b0:	bd10      	pop	{r4, pc}
+
+080058b2 <VL53L0X_GetMeasurementDataReady>:
+ 80058b2:	b513      	push	{r0, r1, r4, lr}
+ 80058b4:	f890 30da 	ldrb.w	r3, [r0, #218]	; 0xda
+ 80058b8:	2b04      	cmp	r3, #4
+ 80058ba:	460c      	mov	r4, r1
+ 80058bc:	d10b      	bne.n	80058d6 <VL53L0X_GetMeasurementDataReady+0x24>
+ 80058be:	a901      	add	r1, sp, #4
+ 80058c0:	f7ff ffe4 	bl	800588c <VL53L0X_GetInterruptMaskStatus>
+ 80058c4:	9b01      	ldr	r3, [sp, #4]
+ 80058c6:	2b04      	cmp	r3, #4
+ 80058c8:	d101      	bne.n	80058ce <VL53L0X_GetMeasurementDataReady+0x1c>
+ 80058ca:	2301      	movs	r3, #1
+ 80058cc:	e000      	b.n	80058d0 <VL53L0X_GetMeasurementDataReady+0x1e>
+ 80058ce:	2300      	movs	r3, #0
+ 80058d0:	7023      	strb	r3, [r4, #0]
+ 80058d2:	b002      	add	sp, #8
+ 80058d4:	bd10      	pop	{r4, pc}
+ 80058d6:	aa01      	add	r2, sp, #4
+ 80058d8:	2114      	movs	r1, #20
+ 80058da:	f001 fd07 	bl	80072ec <VL53L0X_RdByte>
+ 80058de:	2800      	cmp	r0, #0
+ 80058e0:	d1f7      	bne.n	80058d2 <VL53L0X_GetMeasurementDataReady+0x20>
+ 80058e2:	f89d 3004 	ldrb.w	r3, [sp, #4]
+ 80058e6:	07db      	lsls	r3, r3, #31
+ 80058e8:	d4ef      	bmi.n	80058ca <VL53L0X_GetMeasurementDataReady+0x18>
+ 80058ea:	7020      	strb	r0, [r4, #0]
+ 80058ec:	e7f1      	b.n	80058d2 <VL53L0X_GetMeasurementDataReady+0x20>
+
+080058ee <VL53L0X_PerformRefSpadManagement>:
+ 80058ee:	f000 ba4a 	b.w	8005d86 <VL53L0X_perform_ref_spad_management>
+
+080058f2 <VL53L0X_get_offset_calibration_data_micro_meter>:
+ 80058f2:	b513      	push	{r0, r1, r4, lr}
+ 80058f4:	460c      	mov	r4, r1
+ 80058f6:	f10d 0206 	add.w	r2, sp, #6
+ 80058fa:	2128      	movs	r1, #40	; 0x28
+ 80058fc:	f001 fd22 	bl	8007344 <VL53L0X_RdWord>
+ 8005900:	b978      	cbnz	r0, 8005922 <VL53L0X_get_offset_calibration_data_micro_meter+0x30>
+ 8005902:	f8bd 2006 	ldrh.w	r2, [sp, #6]
+ 8005906:	f3c2 030b 	ubfx	r3, r2, #0, #12
+ 800590a:	f412 6f00 	tst.w	r2, #2048	; 0x800
+ 800590e:	bf18      	it	ne
+ 8005910:	f5a3 5380 	subne.w	r3, r3, #4096	; 0x1000
+ 8005914:	f04f 02fa 	mov.w	r2, #250	; 0xfa
+ 8005918:	bf14      	ite	ne
+ 800591a:	fb13 f302 	smulbbne	r3, r3, r2
+ 800591e:	4353      	muleq	r3, r2
+ 8005920:	6023      	str	r3, [r4, #0]
+ 8005922:	b002      	add	sp, #8
+ 8005924:	bd10      	pop	{r4, pc}
+
+08005926 <get_next_good_spad>:
+ 8005926:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8005928:	ea4f 0cd2 	mov.w	ip, r2, lsr #3
+ 800592c:	f04f 34ff 	mov.w	r4, #4294967295
+ 8005930:	601c      	str	r4, [r3, #0]
+ 8005932:	f002 0207 	and.w	r2, r2, #7
+ 8005936:	4666      	mov	r6, ip
+ 8005938:	2700      	movs	r7, #0
+ 800593a:	428e      	cmp	r6, r1
+ 800593c:	d200      	bcs.n	8005940 <get_next_good_spad+0x1a>
+ 800593e:	b107      	cbz	r7, 8005942 <get_next_good_spad+0x1c>
+ 8005940:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8005942:	5d84      	ldrb	r4, [r0, r6]
+ 8005944:	4566      	cmp	r6, ip
+ 8005946:	bf03      	ittte	eq
+ 8005948:	4114      	asreq	r4, r2
+ 800594a:	b2e4      	uxtbeq	r4, r4
+ 800594c:	4615      	moveq	r5, r2
+ 800594e:	463d      	movne	r5, r7
+ 8005950:	f014 0701 	ands.w	r7, r4, #1
+ 8005954:	d004      	beq.n	8005960 <get_next_good_spad+0x3a>
+ 8005956:	eb05 05c6 	add.w	r5, r5, r6, lsl #3
+ 800595a:	601d      	str	r5, [r3, #0]
+ 800595c:	3601      	adds	r6, #1
+ 800595e:	e7ec      	b.n	800593a <get_next_good_spad+0x14>
+ 8005960:	3501      	adds	r5, #1
+ 8005962:	2d08      	cmp	r5, #8
+ 8005964:	ea4f 0454 	mov.w	r4, r4, lsr #1
+ 8005968:	d1f2      	bne.n	8005950 <get_next_good_spad+0x2a>
+ 800596a:	e7f7      	b.n	800595c <get_next_good_spad+0x36>
+
+0800596c <is_aperture>:
+ 800596c:	4b03      	ldr	r3, [pc, #12]	; (800597c <is_aperture+0x10>)
+ 800596e:	0980      	lsrs	r0, r0, #6
+ 8005970:	f853 0020 	ldr.w	r0, [r3, r0, lsl #2]
+ 8005974:	3800      	subs	r0, #0
+ 8005976:	bf18      	it	ne
+ 8005978:	2001      	movne	r0, #1
+ 800597a:	4770      	bx	lr
+ 800597c:	20000818 	.word	0x20000818
+
+08005980 <enable_spad_bit>:
+ 8005980:	b510      	push	{r4, lr}
+ 8005982:	ebb1 0fd2 	cmp.w	r1, r2, lsr #3
+ 8005986:	ea4f 04d2 	mov.w	r4, r2, lsr #3
+ 800598a:	f002 0307 	and.w	r3, r2, #7
+ 800598e:	bf81      	itttt	hi
+ 8005990:	2201      	movhi	r2, #1
+ 8005992:	409a      	lslhi	r2, r3
+ 8005994:	5d03      	ldrbhi	r3, [r0, r4]
+ 8005996:	4313      	orrhi	r3, r2
+ 8005998:	bf8a      	itet	hi
+ 800599a:	5503      	strbhi	r3, [r0, r4]
+ 800599c:	f06f 0031 	mvnls.w	r0, #49	; 0x31
+ 80059a0:	2000      	movhi	r0, #0
+ 80059a2:	bd10      	pop	{r4, pc}
+
+080059a4 <set_ref_spad_map>:
+ 80059a4:	460a      	mov	r2, r1
+ 80059a6:	2306      	movs	r3, #6
+ 80059a8:	21b0      	movs	r1, #176	; 0xb0
+ 80059aa:	f001 bc49 	b.w	8007240 <VL53L0X_WriteMulti>
+
+080059ae <get_ref_spad_map>:
+ 80059ae:	460a      	mov	r2, r1
+ 80059b0:	2306      	movs	r3, #6
+ 80059b2:	21b0      	movs	r1, #176	; 0xb0
+ 80059b4:	f001 bc62 	b.w	800727c <VL53L0X_ReadMulti>
+
+080059b8 <enable_ref_spads>:
+ 80059b8:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 80059bc:	b085      	sub	sp, #20
+ 80059be:	4680      	mov	r8, r0
+ 80059c0:	9e10      	ldr	r6, [sp, #64]	; 0x40
+ 80059c2:	9d0e      	ldr	r5, [sp, #56]	; 0x38
+ 80059c4:	9601      	str	r6, [sp, #4]
+ 80059c6:	468a      	mov	sl, r1
+ 80059c8:	4693      	mov	fp, r2
+ 80059ca:	461c      	mov	r4, r3
+ 80059cc:	f04f 0900 	mov.w	r9, #0
+ 80059d0:	9b11      	ldr	r3, [sp, #68]	; 0x44
+ 80059d2:	4599      	cmp	r9, r3
+ 80059d4:	d108      	bne.n	80059e8 <enable_ref_spads+0x30>
+ 80059d6:	2300      	movs	r3, #0
+ 80059d8:	9a12      	ldr	r2, [sp, #72]	; 0x48
+ 80059da:	6016      	str	r6, [r2, #0]
+ 80059dc:	b1f3      	cbz	r3, 8005a1c <enable_ref_spads+0x64>
+ 80059de:	f06f 0031 	mvn.w	r0, #49	; 0x31
+ 80059e2:	b005      	add	sp, #20
+ 80059e4:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 80059e8:	ab01      	add	r3, sp, #4
+ 80059ea:	4632      	mov	r2, r6
+ 80059ec:	4629      	mov	r1, r5
+ 80059ee:	4658      	mov	r0, fp
+ 80059f0:	f7ff ff99 	bl	8005926 <get_next_good_spad>
+ 80059f4:	9f01      	ldr	r7, [sp, #4]
+ 80059f6:	1c7b      	adds	r3, r7, #1
+ 80059f8:	d00d      	beq.n	8005a16 <enable_ref_spads+0x5e>
+ 80059fa:	9b0f      	ldr	r3, [sp, #60]	; 0x3c
+ 80059fc:	18f8      	adds	r0, r7, r3
+ 80059fe:	f7ff ffb5 	bl	800596c <is_aperture>
+ 8005a02:	4550      	cmp	r0, sl
+ 8005a04:	d107      	bne.n	8005a16 <enable_ref_spads+0x5e>
+ 8005a06:	463a      	mov	r2, r7
+ 8005a08:	4620      	mov	r0, r4
+ 8005a0a:	f7ff ffb9 	bl	8005980 <enable_spad_bit>
+ 8005a0e:	1c7e      	adds	r6, r7, #1
+ 8005a10:	f109 0901 	add.w	r9, r9, #1
+ 8005a14:	e7dc      	b.n	80059d0 <enable_ref_spads+0x18>
+ 8005a16:	f06f 0331 	mvn.w	r3, #49	; 0x31
+ 8005a1a:	e7dd      	b.n	80059d8 <enable_ref_spads+0x20>
+ 8005a1c:	4621      	mov	r1, r4
+ 8005a1e:	4640      	mov	r0, r8
+ 8005a20:	f7ff ffc0 	bl	80059a4 <set_ref_spad_map>
+ 8005a24:	2800      	cmp	r0, #0
+ 8005a26:	d1dc      	bne.n	80059e2 <enable_ref_spads+0x2a>
+ 8005a28:	a902      	add	r1, sp, #8
+ 8005a2a:	4640      	mov	r0, r8
+ 8005a2c:	f7ff ffbf 	bl	80059ae <get_ref_spad_map>
+ 8005a30:	4425      	add	r5, r4
+ 8005a32:	4623      	mov	r3, r4
+ 8005a34:	aa02      	add	r2, sp, #8
+ 8005a36:	42ab      	cmp	r3, r5
+ 8005a38:	d0d3      	beq.n	80059e2 <enable_ref_spads+0x2a>
+ 8005a3a:	f813 4b01 	ldrb.w	r4, [r3], #1
+ 8005a3e:	f812 1b01 	ldrb.w	r1, [r2], #1
+ 8005a42:	428c      	cmp	r4, r1
+ 8005a44:	d0f7      	beq.n	8005a36 <enable_ref_spads+0x7e>
+ 8005a46:	e7ca      	b.n	80059de <enable_ref_spads+0x26>
+
+08005a48 <perform_ref_signal_measurement>:
+ 8005a48:	b570      	push	{r4, r5, r6, lr}
+ 8005a4a:	22c0      	movs	r2, #192	; 0xc0
+ 8005a4c:	b088      	sub	sp, #32
+ 8005a4e:	460e      	mov	r6, r1
+ 8005a50:	2101      	movs	r1, #1
+ 8005a52:	f890 4130 	ldrb.w	r4, [r0, #304]	; 0x130
+ 8005a56:	4605      	mov	r5, r0
+ 8005a58:	f001 fc26 	bl	80072a8 <VL53L0X_WrByte>
+ 8005a5c:	b9f0      	cbnz	r0, 8005a9c <perform_ref_signal_measurement+0x54>
+ 8005a5e:	a901      	add	r1, sp, #4
+ 8005a60:	4628      	mov	r0, r5
+ 8005a62:	f7ff fd9f 	bl	80055a4 <VL53L0X_PerformSingleRangingMeasurement>
+ 8005a66:	b9c8      	cbnz	r0, 8005a9c <perform_ref_signal_measurement+0x54>
+ 8005a68:	2201      	movs	r2, #1
+ 8005a6a:	21ff      	movs	r1, #255	; 0xff
+ 8005a6c:	4628      	mov	r0, r5
+ 8005a6e:	f001 fc1b 	bl	80072a8 <VL53L0X_WrByte>
+ 8005a72:	b998      	cbnz	r0, 8005a9c <perform_ref_signal_measurement+0x54>
+ 8005a74:	4632      	mov	r2, r6
+ 8005a76:	21b6      	movs	r1, #182	; 0xb6
+ 8005a78:	4628      	mov	r0, r5
+ 8005a7a:	f001 fc63 	bl	8007344 <VL53L0X_RdWord>
+ 8005a7e:	b968      	cbnz	r0, 8005a9c <perform_ref_signal_measurement+0x54>
+ 8005a80:	4602      	mov	r2, r0
+ 8005a82:	21ff      	movs	r1, #255	; 0xff
+ 8005a84:	4628      	mov	r0, r5
+ 8005a86:	f001 fc0f 	bl	80072a8 <VL53L0X_WrByte>
+ 8005a8a:	b938      	cbnz	r0, 8005a9c <perform_ref_signal_measurement+0x54>
+ 8005a8c:	4622      	mov	r2, r4
+ 8005a8e:	2101      	movs	r1, #1
+ 8005a90:	4628      	mov	r0, r5
+ 8005a92:	f001 fc09 	bl	80072a8 <VL53L0X_WrByte>
+ 8005a96:	b908      	cbnz	r0, 8005a9c <perform_ref_signal_measurement+0x54>
+ 8005a98:	f885 4130 	strb.w	r4, [r5, #304]	; 0x130
+ 8005a9c:	b008      	add	sp, #32
+ 8005a9e:	bd70      	pop	{r4, r5, r6, pc}
+
+08005aa0 <VL53L0X_set_reference_spads>:
+ 8005aa0:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8005aa2:	460f      	mov	r7, r1
+ 8005aa4:	b089      	sub	sp, #36	; 0x24
+ 8005aa6:	4616      	mov	r6, r2
+ 8005aa8:	21ff      	movs	r1, #255	; 0xff
+ 8005aaa:	2201      	movs	r2, #1
+ 8005aac:	4604      	mov	r4, r0
+ 8005aae:	f001 fbfb 	bl	80072a8 <VL53L0X_WrByte>
+ 8005ab2:	4602      	mov	r2, r0
+ 8005ab4:	b9a8      	cbnz	r0, 8005ae2 <VL53L0X_set_reference_spads+0x42>
+ 8005ab6:	214f      	movs	r1, #79	; 0x4f
+ 8005ab8:	4620      	mov	r0, r4
+ 8005aba:	f001 fbf5 	bl	80072a8 <VL53L0X_WrByte>
+ 8005abe:	b980      	cbnz	r0, 8005ae2 <VL53L0X_set_reference_spads+0x42>
+ 8005ac0:	222c      	movs	r2, #44	; 0x2c
+ 8005ac2:	214e      	movs	r1, #78	; 0x4e
+ 8005ac4:	4620      	mov	r0, r4
+ 8005ac6:	f001 fbef 	bl	80072a8 <VL53L0X_WrByte>
+ 8005aca:	4602      	mov	r2, r0
+ 8005acc:	b948      	cbnz	r0, 8005ae2 <VL53L0X_set_reference_spads+0x42>
+ 8005ace:	21ff      	movs	r1, #255	; 0xff
+ 8005ad0:	4620      	mov	r0, r4
+ 8005ad2:	f001 fbe9 	bl	80072a8 <VL53L0X_WrByte>
+ 8005ad6:	b920      	cbnz	r0, 8005ae2 <VL53L0X_set_reference_spads+0x42>
+ 8005ad8:	22b4      	movs	r2, #180	; 0xb4
+ 8005ada:	21b6      	movs	r1, #182	; 0xb6
+ 8005adc:	4620      	mov	r0, r4
+ 8005ade:	f001 fbe3 	bl	80072a8 <VL53L0X_WrByte>
+ 8005ae2:	2500      	movs	r5, #0
+ 8005ae4:	f8c4 5124 	str.w	r5, [r4, #292]	; 0x124
+ 8005ae8:	f8a4 5128 	strh.w	r5, [r4, #296]	; 0x128
+ 8005aec:	b9de      	cbnz	r6, 8005b26 <VL53L0X_set_reference_spads+0x86>
+ 8005aee:	4635      	mov	r5, r6
+ 8005af0:	ab07      	add	r3, sp, #28
+ 8005af2:	22b4      	movs	r2, #180	; 0xb4
+ 8005af4:	e9cd 7303 	strd	r7, r3, [sp, #12]
+ 8005af8:	2306      	movs	r3, #6
+ 8005afa:	e9cd 3200 	strd	r3, r2, [sp]
+ 8005afe:	9502      	str	r5, [sp, #8]
+ 8005b00:	f504 7392 	add.w	r3, r4, #292	; 0x124
+ 8005b04:	f504 7295 	add.w	r2, r4, #298	; 0x12a
+ 8005b08:	4631      	mov	r1, r6
+ 8005b0a:	4620      	mov	r0, r4
+ 8005b0c:	f7ff ff54 	bl	80059b8 <enable_ref_spads>
+ 8005b10:	b930      	cbnz	r0, 8005b20 <VL53L0X_set_reference_spads+0x80>
+ 8005b12:	2301      	movs	r3, #1
+ 8005b14:	f884 3115 	strb.w	r3, [r4, #277]	; 0x115
+ 8005b18:	f884 7113 	strb.w	r7, [r4, #275]	; 0x113
+ 8005b1c:	f884 6114 	strb.w	r6, [r4, #276]	; 0x114
+ 8005b20:	b009      	add	sp, #36	; 0x24
+ 8005b22:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8005b24:	3501      	adds	r5, #1
+ 8005b26:	f105 00b4 	add.w	r0, r5, #180	; 0xb4
+ 8005b2a:	f7ff ff1f 	bl	800596c <is_aperture>
+ 8005b2e:	2800      	cmp	r0, #0
+ 8005b30:	d1de      	bne.n	8005af0 <VL53L0X_set_reference_spads+0x50>
+ 8005b32:	2d2c      	cmp	r5, #44	; 0x2c
+ 8005b34:	d1f6      	bne.n	8005b24 <VL53L0X_set_reference_spads+0x84>
+ 8005b36:	e7db      	b.n	8005af0 <VL53L0X_set_reference_spads+0x50>
+
+08005b38 <VL53L0X_perform_single_ref_calibration>:
+ 8005b38:	b510      	push	{r4, lr}
+ 8005b3a:	f041 0201 	orr.w	r2, r1, #1
+ 8005b3e:	2100      	movs	r1, #0
+ 8005b40:	4604      	mov	r4, r0
+ 8005b42:	f001 fbb1 	bl	80072a8 <VL53L0X_WrByte>
+ 8005b46:	b978      	cbnz	r0, 8005b68 <VL53L0X_perform_single_ref_calibration+0x30>
+ 8005b48:	4620      	mov	r0, r4
+ 8005b4a:	f000 fa46 	bl	8005fda <VL53L0X_measurement_poll_for_completion>
+ 8005b4e:	b958      	cbnz	r0, 8005b68 <VL53L0X_perform_single_ref_calibration+0x30>
+ 8005b50:	4601      	mov	r1, r0
+ 8005b52:	4620      	mov	r0, r4
+ 8005b54:	f7ff fcfa 	bl	800554c <VL53L0X_ClearInterruptMask>
+ 8005b58:	b930      	cbnz	r0, 8005b68 <VL53L0X_perform_single_ref_calibration+0x30>
+ 8005b5a:	4602      	mov	r2, r0
+ 8005b5c:	4601      	mov	r1, r0
+ 8005b5e:	4620      	mov	r0, r4
+ 8005b60:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8005b64:	f001 bba0 	b.w	80072a8 <VL53L0X_WrByte>
+ 8005b68:	bd10      	pop	{r4, pc}
+
+08005b6a <VL53L0X_ref_calibration_io>:
+ 8005b6a:	e92d 4ff7 	stmdb	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8005b6e:	f04f 0b00 	mov.w	fp, #0
+ 8005b72:	4688      	mov	r8, r1
+ 8005b74:	4617      	mov	r7, r2
+ 8005b76:	21ff      	movs	r1, #255	; 0xff
+ 8005b78:	2201      	movs	r2, #1
+ 8005b7a:	4605      	mov	r5, r0
+ 8005b7c:	461e      	mov	r6, r3
+ 8005b7e:	f89d a038 	ldrb.w	sl, [sp, #56]	; 0x38
+ 8005b82:	f89d 903c 	ldrb.w	r9, [sp, #60]	; 0x3c
+ 8005b86:	f88d b007 	strb.w	fp, [sp, #7]
+ 8005b8a:	f001 fb8d 	bl	80072a8 <VL53L0X_WrByte>
+ 8005b8e:	465a      	mov	r2, fp
+ 8005b90:	4604      	mov	r4, r0
+ 8005b92:	4659      	mov	r1, fp
+ 8005b94:	4628      	mov	r0, r5
+ 8005b96:	f001 fb87 	bl	80072a8 <VL53L0X_WrByte>
+ 8005b9a:	465a      	mov	r2, fp
+ 8005b9c:	4304      	orrs	r4, r0
+ 8005b9e:	21ff      	movs	r1, #255	; 0xff
+ 8005ba0:	4628      	mov	r0, r5
+ 8005ba2:	f001 fb81 	bl	80072a8 <VL53L0X_WrByte>
+ 8005ba6:	b264      	sxtb	r4, r4
+ 8005ba8:	4304      	orrs	r4, r0
+ 8005baa:	b264      	sxtb	r4, r4
+ 8005bac:	f1b8 0f00 	cmp.w	r8, #0
+ 8005bb0:	d032      	beq.n	8005c18 <VL53L0X_ref_calibration_io+0xae>
+ 8005bb2:	f1ba 0f00 	cmp.w	sl, #0
+ 8005bb6:	d006      	beq.n	8005bc6 <VL53L0X_ref_calibration_io+0x5c>
+ 8005bb8:	9a0c      	ldr	r2, [sp, #48]	; 0x30
+ 8005bba:	21cb      	movs	r1, #203	; 0xcb
+ 8005bbc:	4628      	mov	r0, r5
+ 8005bbe:	f001 fb95 	bl	80072ec <VL53L0X_RdByte>
+ 8005bc2:	4320      	orrs	r0, r4
+ 8005bc4:	b244      	sxtb	r4, r0
+ 8005bc6:	f1b9 0f00 	cmp.w	r9, #0
+ 8005bca:	d007      	beq.n	8005bdc <VL53L0X_ref_calibration_io+0x72>
+ 8005bcc:	f10d 0207 	add.w	r2, sp, #7
+ 8005bd0:	21ee      	movs	r1, #238	; 0xee
+ 8005bd2:	4628      	mov	r0, r5
+ 8005bd4:	f001 fb8a 	bl	80072ec <VL53L0X_RdByte>
+ 8005bd8:	4320      	orrs	r0, r4
+ 8005bda:	b244      	sxtb	r4, r0
+ 8005bdc:	2201      	movs	r2, #1
+ 8005bde:	21ff      	movs	r1, #255	; 0xff
+ 8005be0:	4628      	mov	r0, r5
+ 8005be2:	f001 fb61 	bl	80072a8 <VL53L0X_WrByte>
+ 8005be6:	2201      	movs	r2, #1
+ 8005be8:	4304      	orrs	r4, r0
+ 8005bea:	2100      	movs	r1, #0
+ 8005bec:	4628      	mov	r0, r5
+ 8005bee:	f001 fb5b 	bl	80072a8 <VL53L0X_WrByte>
+ 8005bf2:	b264      	sxtb	r4, r4
+ 8005bf4:	4304      	orrs	r4, r0
+ 8005bf6:	2200      	movs	r2, #0
+ 8005bf8:	21ff      	movs	r1, #255	; 0xff
+ 8005bfa:	4628      	mov	r0, r5
+ 8005bfc:	f001 fb54 	bl	80072a8 <VL53L0X_WrByte>
+ 8005c00:	b264      	sxtb	r4, r4
+ 8005c02:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8005c06:	9a0d      	ldr	r2, [sp, #52]	; 0x34
+ 8005c08:	4320      	orrs	r0, r4
+ 8005c0a:	f023 0310 	bic.w	r3, r3, #16
+ 8005c0e:	b240      	sxtb	r0, r0
+ 8005c10:	7013      	strb	r3, [r2, #0]
+ 8005c12:	b003      	add	sp, #12
+ 8005c14:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 8005c18:	f1ba 0f00 	cmp.w	sl, #0
+ 8005c1c:	d006      	beq.n	8005c2c <VL53L0X_ref_calibration_io+0xc2>
+ 8005c1e:	463a      	mov	r2, r7
+ 8005c20:	21cb      	movs	r1, #203	; 0xcb
+ 8005c22:	4628      	mov	r0, r5
+ 8005c24:	f001 fb40 	bl	80072a8 <VL53L0X_WrByte>
+ 8005c28:	4320      	orrs	r0, r4
+ 8005c2a:	b244      	sxtb	r4, r0
+ 8005c2c:	f1b9 0f00 	cmp.w	r9, #0
+ 8005c30:	d0d4      	beq.n	8005bdc <VL53L0X_ref_calibration_io+0x72>
+ 8005c32:	4633      	mov	r3, r6
+ 8005c34:	2280      	movs	r2, #128	; 0x80
+ 8005c36:	21ee      	movs	r1, #238	; 0xee
+ 8005c38:	4628      	mov	r0, r5
+ 8005c3a:	f001 fb6c 	bl	8007316 <VL53L0X_UpdateByte>
+ 8005c3e:	e7cb      	b.n	8005bd8 <VL53L0X_ref_calibration_io+0x6e>
+
+08005c40 <VL53L0X_perform_vhv_calibration>:
+ 8005c40:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
+ 8005c44:	b087      	sub	sp, #28
+ 8005c46:	4691      	mov	r9, r2
+ 8005c48:	2200      	movs	r2, #0
+ 8005c4a:	4605      	mov	r5, r0
+ 8005c4c:	4688      	mov	r8, r1
+ 8005c4e:	f88d 2017 	strb.w	r2, [sp, #23]
+ 8005c52:	461e      	mov	r6, r3
+ 8005c54:	b31b      	cbz	r3, 8005c9e <VL53L0X_perform_vhv_calibration+0x5e>
+ 8005c56:	f890 7130 	ldrb.w	r7, [r0, #304]	; 0x130
+ 8005c5a:	2201      	movs	r2, #1
+ 8005c5c:	4611      	mov	r1, r2
+ 8005c5e:	4628      	mov	r0, r5
+ 8005c60:	f001 fb22 	bl	80072a8 <VL53L0X_WrByte>
+ 8005c64:	4604      	mov	r4, r0
+ 8005c66:	bb58      	cbnz	r0, 8005cc0 <VL53L0X_perform_vhv_calibration+0x80>
+ 8005c68:	2140      	movs	r1, #64	; 0x40
+ 8005c6a:	4628      	mov	r0, r5
+ 8005c6c:	f7ff ff64 	bl	8005b38 <VL53L0X_perform_single_ref_calibration>
+ 8005c70:	4604      	mov	r4, r0
+ 8005c72:	bb28      	cbnz	r0, 8005cc0 <VL53L0X_perform_vhv_calibration+0x80>
+ 8005c74:	f1b9 0f01 	cmp.w	r9, #1
+ 8005c78:	d113      	bne.n	8005ca2 <VL53L0X_perform_vhv_calibration+0x62>
+ 8005c7a:	f10d 0317 	add.w	r3, sp, #23
+ 8005c7e:	e9cd 9002 	strd	r9, r0, [sp, #8]
+ 8005c82:	e9cd 8300 	strd	r8, r3, [sp]
+ 8005c86:	4602      	mov	r2, r0
+ 8005c88:	4603      	mov	r3, r0
+ 8005c8a:	4649      	mov	r1, r9
+ 8005c8c:	4628      	mov	r0, r5
+ 8005c8e:	f7ff ff6c 	bl	8005b6a <VL53L0X_ref_calibration_io>
+ 8005c92:	b140      	cbz	r0, 8005ca6 <VL53L0X_perform_vhv_calibration+0x66>
+ 8005c94:	4604      	mov	r4, r0
+ 8005c96:	4620      	mov	r0, r4
+ 8005c98:	b007      	add	sp, #28
+ 8005c9a:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
+ 8005c9e:	461f      	mov	r7, r3
+ 8005ca0:	e7db      	b.n	8005c5a <VL53L0X_perform_vhv_calibration+0x1a>
+ 8005ca2:	f888 0000 	strb.w	r0, [r8]
+ 8005ca6:	2e00      	cmp	r6, #0
+ 8005ca8:	d0f5      	beq.n	8005c96 <VL53L0X_perform_vhv_calibration+0x56>
+ 8005caa:	463a      	mov	r2, r7
+ 8005cac:	2101      	movs	r1, #1
+ 8005cae:	4628      	mov	r0, r5
+ 8005cb0:	f001 fafa 	bl	80072a8 <VL53L0X_WrByte>
+ 8005cb4:	4604      	mov	r4, r0
+ 8005cb6:	2800      	cmp	r0, #0
+ 8005cb8:	d1ed      	bne.n	8005c96 <VL53L0X_perform_vhv_calibration+0x56>
+ 8005cba:	f885 7130 	strb.w	r7, [r5, #304]	; 0x130
+ 8005cbe:	e7ea      	b.n	8005c96 <VL53L0X_perform_vhv_calibration+0x56>
+ 8005cc0:	2300      	movs	r3, #0
+ 8005cc2:	f888 3000 	strb.w	r3, [r8]
+ 8005cc6:	4620      	mov	r0, r4
+ 8005cc8:	e7e4      	b.n	8005c94 <VL53L0X_perform_vhv_calibration+0x54>
+
+08005cca <VL53L0X_perform_phase_calibration>:
+ 8005cca:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
+ 8005cce:	4605      	mov	r5, r0
+ 8005cd0:	b087      	sub	sp, #28
+ 8005cd2:	4688      	mov	r8, r1
+ 8005cd4:	4691      	mov	r9, r2
+ 8005cd6:	461e      	mov	r6, r3
+ 8005cd8:	b323      	cbz	r3, 8005d24 <VL53L0X_perform_phase_calibration+0x5a>
+ 8005cda:	f890 7130 	ldrb.w	r7, [r0, #304]	; 0x130
+ 8005cde:	2202      	movs	r2, #2
+ 8005ce0:	2101      	movs	r1, #1
+ 8005ce2:	4628      	mov	r0, r5
+ 8005ce4:	f001 fae0 	bl	80072a8 <VL53L0X_WrByte>
+ 8005ce8:	4604      	mov	r4, r0
+ 8005cea:	bb60      	cbnz	r0, 8005d46 <VL53L0X_perform_phase_calibration+0x7c>
+ 8005cec:	4601      	mov	r1, r0
+ 8005cee:	4628      	mov	r0, r5
+ 8005cf0:	f7ff ff22 	bl	8005b38 <VL53L0X_perform_single_ref_calibration>
+ 8005cf4:	4604      	mov	r4, r0
+ 8005cf6:	bb30      	cbnz	r0, 8005d46 <VL53L0X_perform_phase_calibration+0x7c>
+ 8005cf8:	f1b9 0f01 	cmp.w	r9, #1
+ 8005cfc:	d114      	bne.n	8005d28 <VL53L0X_perform_phase_calibration+0x5e>
+ 8005cfe:	f10d 0317 	add.w	r3, sp, #23
+ 8005d02:	e9cd 0902 	strd	r0, r9, [sp, #8]
+ 8005d06:	9300      	str	r3, [sp, #0]
+ 8005d08:	4602      	mov	r2, r0
+ 8005d0a:	4603      	mov	r3, r0
+ 8005d0c:	f8cd 8004 	str.w	r8, [sp, #4]
+ 8005d10:	4649      	mov	r1, r9
+ 8005d12:	4628      	mov	r0, r5
+ 8005d14:	f7ff ff29 	bl	8005b6a <VL53L0X_ref_calibration_io>
+ 8005d18:	b140      	cbz	r0, 8005d2c <VL53L0X_perform_phase_calibration+0x62>
+ 8005d1a:	4604      	mov	r4, r0
+ 8005d1c:	4620      	mov	r0, r4
+ 8005d1e:	b007      	add	sp, #28
+ 8005d20:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
+ 8005d24:	461f      	mov	r7, r3
+ 8005d26:	e7da      	b.n	8005cde <VL53L0X_perform_phase_calibration+0x14>
+ 8005d28:	f888 0000 	strb.w	r0, [r8]
+ 8005d2c:	2e00      	cmp	r6, #0
+ 8005d2e:	d0f5      	beq.n	8005d1c <VL53L0X_perform_phase_calibration+0x52>
+ 8005d30:	463a      	mov	r2, r7
+ 8005d32:	2101      	movs	r1, #1
+ 8005d34:	4628      	mov	r0, r5
+ 8005d36:	f001 fab7 	bl	80072a8 <VL53L0X_WrByte>
+ 8005d3a:	4604      	mov	r4, r0
+ 8005d3c:	2800      	cmp	r0, #0
+ 8005d3e:	d1ed      	bne.n	8005d1c <VL53L0X_perform_phase_calibration+0x52>
+ 8005d40:	f885 7130 	strb.w	r7, [r5, #304]	; 0x130
+ 8005d44:	e7ea      	b.n	8005d1c <VL53L0X_perform_phase_calibration+0x52>
+ 8005d46:	2300      	movs	r3, #0
+ 8005d48:	f888 3000 	strb.w	r3, [r8]
+ 8005d4c:	4620      	mov	r0, r4
+ 8005d4e:	e7e4      	b.n	8005d1a <VL53L0X_perform_phase_calibration+0x50>
+
+08005d50 <VL53L0X_perform_ref_calibration>:
+ 8005d50:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 8005d52:	461d      	mov	r5, r3
+ 8005d54:	4616      	mov	r6, r2
+ 8005d56:	2300      	movs	r3, #0
+ 8005d58:	462a      	mov	r2, r5
+ 8005d5a:	f890 7130 	ldrb.w	r7, [r0, #304]	; 0x130
+ 8005d5e:	4604      	mov	r4, r0
+ 8005d60:	f7ff ff6e 	bl	8005c40 <VL53L0X_perform_vhv_calibration>
+ 8005d64:	b970      	cbnz	r0, 8005d84 <VL53L0X_perform_ref_calibration+0x34>
+ 8005d66:	4603      	mov	r3, r0
+ 8005d68:	462a      	mov	r2, r5
+ 8005d6a:	4631      	mov	r1, r6
+ 8005d6c:	4620      	mov	r0, r4
+ 8005d6e:	f7ff ffac 	bl	8005cca <VL53L0X_perform_phase_calibration>
+ 8005d72:	b938      	cbnz	r0, 8005d84 <VL53L0X_perform_ref_calibration+0x34>
+ 8005d74:	463a      	mov	r2, r7
+ 8005d76:	2101      	movs	r1, #1
+ 8005d78:	4620      	mov	r0, r4
+ 8005d7a:	f001 fa95 	bl	80072a8 <VL53L0X_WrByte>
+ 8005d7e:	b908      	cbnz	r0, 8005d84 <VL53L0X_perform_ref_calibration+0x34>
+ 8005d80:	f884 7130 	strb.w	r7, [r4, #304]	; 0x130
+ 8005d84:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+
+08005d86 <VL53L0X_perform_ref_spad_management>:
+ 8005d86:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8005d8a:	2300      	movs	r3, #0
+ 8005d8c:	b093      	sub	sp, #76	; 0x4c
+ 8005d8e:	e9cd 120a 	strd	r1, r2, [sp, #40]	; 0x28
+ 8005d92:	f8c0 3124 	str.w	r3, [r0, #292]	; 0x124
+ 8005d96:	f8a0 3128 	strh.w	r3, [r0, #296]	; 0x128
+ 8005d9a:	2201      	movs	r2, #1
+ 8005d9c:	21ff      	movs	r1, #255	; 0xff
+ 8005d9e:	e9cd 330e 	strd	r3, r3, [sp, #56]	; 0x38
+ 8005da2:	f8b0 813c 	ldrh.w	r8, [r0, #316]	; 0x13c
+ 8005da6:	f88d 3034 	strb.w	r3, [sp, #52]	; 0x34
+ 8005daa:	4605      	mov	r5, r0
+ 8005dac:	f88d 3035 	strb.w	r3, [sp, #53]	; 0x35
+ 8005db0:	f001 fa7a 	bl	80072a8 <VL53L0X_WrByte>
+ 8005db4:	4604      	mov	r4, r0
+ 8005db6:	2800      	cmp	r0, #0
+ 8005db8:	f040 80e3 	bne.w	8005f82 <VL53L0X_perform_ref_spad_management+0x1fc>
+ 8005dbc:	4602      	mov	r2, r0
+ 8005dbe:	214f      	movs	r1, #79	; 0x4f
+ 8005dc0:	4628      	mov	r0, r5
+ 8005dc2:	f001 fa71 	bl	80072a8 <VL53L0X_WrByte>
+ 8005dc6:	4604      	mov	r4, r0
+ 8005dc8:	2800      	cmp	r0, #0
+ 8005dca:	f040 80da 	bne.w	8005f82 <VL53L0X_perform_ref_spad_management+0x1fc>
+ 8005dce:	222c      	movs	r2, #44	; 0x2c
+ 8005dd0:	214e      	movs	r1, #78	; 0x4e
+ 8005dd2:	4628      	mov	r0, r5
+ 8005dd4:	f001 fa68 	bl	80072a8 <VL53L0X_WrByte>
+ 8005dd8:	4604      	mov	r4, r0
+ 8005dda:	2800      	cmp	r0, #0
+ 8005ddc:	f040 80d1 	bne.w	8005f82 <VL53L0X_perform_ref_spad_management+0x1fc>
+ 8005de0:	4602      	mov	r2, r0
+ 8005de2:	21ff      	movs	r1, #255	; 0xff
+ 8005de4:	4628      	mov	r0, r5
+ 8005de6:	f001 fa5f 	bl	80072a8 <VL53L0X_WrByte>
+ 8005dea:	4604      	mov	r4, r0
+ 8005dec:	2800      	cmp	r0, #0
+ 8005dee:	f040 80c8 	bne.w	8005f82 <VL53L0X_perform_ref_spad_management+0x1fc>
+ 8005df2:	22b4      	movs	r2, #180	; 0xb4
+ 8005df4:	21b6      	movs	r1, #182	; 0xb6
+ 8005df6:	4628      	mov	r0, r5
+ 8005df8:	f001 fa56 	bl	80072a8 <VL53L0X_WrByte>
+ 8005dfc:	4604      	mov	r4, r0
+ 8005dfe:	2800      	cmp	r0, #0
+ 8005e00:	f040 80bf 	bne.w	8005f82 <VL53L0X_perform_ref_spad_management+0x1fc>
+ 8005e04:	4602      	mov	r2, r0
+ 8005e06:	2180      	movs	r1, #128	; 0x80
+ 8005e08:	4628      	mov	r0, r5
+ 8005e0a:	f001 fa4d 	bl	80072a8 <VL53L0X_WrByte>
+ 8005e0e:	4604      	mov	r4, r0
+ 8005e10:	2800      	cmp	r0, #0
+ 8005e12:	f040 80b6 	bne.w	8005f82 <VL53L0X_perform_ref_spad_management+0x1fc>
+ 8005e16:	4603      	mov	r3, r0
+ 8005e18:	f10d 0235 	add.w	r2, sp, #53	; 0x35
+ 8005e1c:	a90d      	add	r1, sp, #52	; 0x34
+ 8005e1e:	4628      	mov	r0, r5
+ 8005e20:	f7ff ff96 	bl	8005d50 <VL53L0X_perform_ref_calibration>
+ 8005e24:	4604      	mov	r4, r0
+ 8005e26:	2800      	cmp	r0, #0
+ 8005e28:	f040 80ab 	bne.w	8005f82 <VL53L0X_perform_ref_spad_management+0x1fc>
+ 8005e2c:	2303      	movs	r3, #3
+ 8005e2e:	e9cd 0302 	strd	r0, r3, [sp, #8]
+ 8005e32:	21b4      	movs	r1, #180	; 0xb4
+ 8005e34:	2306      	movs	r3, #6
+ 8005e36:	f505 7a95 	add.w	sl, r5, #298	; 0x12a
+ 8005e3a:	f505 7992 	add.w	r9, r5, #292	; 0x124
+ 8005e3e:	ae0e      	add	r6, sp, #56	; 0x38
+ 8005e40:	e9cd 3100 	strd	r3, r1, [sp]
+ 8005e44:	9604      	str	r6, [sp, #16]
+ 8005e46:	4601      	mov	r1, r0
+ 8005e48:	464b      	mov	r3, r9
+ 8005e4a:	4652      	mov	r2, sl
+ 8005e4c:	4628      	mov	r0, r5
+ 8005e4e:	f7ff fdb3 	bl	80059b8 <enable_ref_spads>
+ 8005e52:	4604      	mov	r4, r0
+ 8005e54:	2800      	cmp	r0, #0
+ 8005e56:	f040 8094 	bne.w	8005f82 <VL53L0X_perform_ref_spad_management+0x1fc>
+ 8005e5a:	f10d 0136 	add.w	r1, sp, #54	; 0x36
+ 8005e5e:	4628      	mov	r0, r5
+ 8005e60:	9f0e      	ldr	r7, [sp, #56]	; 0x38
+ 8005e62:	f7ff fdf1 	bl	8005a48 <perform_ref_signal_measurement>
+ 8005e66:	4604      	mov	r4, r0
+ 8005e68:	2800      	cmp	r0, #0
+ 8005e6a:	f040 808a 	bne.w	8005f82 <VL53L0X_perform_ref_spad_management+0x1fc>
+ 8005e6e:	f8bd 3036 	ldrh.w	r3, [sp, #54]	; 0x36
+ 8005e72:	4543      	cmp	r3, r8
+ 8005e74:	f240 80aa 	bls.w	8005fcc <VL53L0X_perform_ref_spad_management+0x246>
+ 8005e78:	f8c5 0124 	str.w	r0, [r5, #292]	; 0x124
+ 8005e7c:	f8a5 0128 	strh.w	r0, [r5, #296]	; 0x128
+ 8005e80:	f107 00b4 	add.w	r0, r7, #180	; 0xb4
+ 8005e84:	f7ff fd72 	bl	800596c <is_aperture>
+ 8005e88:	b908      	cbnz	r0, 8005e8e <VL53L0X_perform_ref_spad_management+0x108>
+ 8005e8a:	2f2b      	cmp	r7, #43	; 0x2b
+ 8005e8c:	d97d      	bls.n	8005f8a <VL53L0X_perform_ref_spad_management+0x204>
+ 8005e8e:	2306      	movs	r3, #6
+ 8005e90:	22b4      	movs	r2, #180	; 0xb4
+ 8005e92:	f04f 0b03 	mov.w	fp, #3
+ 8005e96:	e9cd 3200 	strd	r3, r2, [sp]
+ 8005e9a:	e9cd 7b02 	strd	r7, fp, [sp, #8]
+ 8005e9e:	9604      	str	r6, [sp, #16]
+ 8005ea0:	464b      	mov	r3, r9
+ 8005ea2:	4652      	mov	r2, sl
+ 8005ea4:	2101      	movs	r1, #1
+ 8005ea6:	4628      	mov	r0, r5
+ 8005ea8:	f7ff fd86 	bl	80059b8 <enable_ref_spads>
+ 8005eac:	2800      	cmp	r0, #0
+ 8005eae:	f040 808b 	bne.w	8005fc8 <VL53L0X_perform_ref_spad_management+0x242>
+ 8005eb2:	f10d 0136 	add.w	r1, sp, #54	; 0x36
+ 8005eb6:	4628      	mov	r0, r5
+ 8005eb8:	9f0e      	ldr	r7, [sp, #56]	; 0x38
+ 8005eba:	f7ff fdc5 	bl	8005a48 <perform_ref_signal_measurement>
+ 8005ebe:	4606      	mov	r6, r0
+ 8005ec0:	2800      	cmp	r0, #0
+ 8005ec2:	d17c      	bne.n	8005fbe <VL53L0X_perform_ref_spad_management+0x238>
+ 8005ec4:	f8bd 3036 	ldrh.w	r3, [sp, #54]	; 0x36
+ 8005ec8:	4543      	cmp	r3, r8
+ 8005eca:	f240 8082 	bls.w	8005fd2 <VL53L0X_perform_ref_spad_management+0x24c>
+ 8005ece:	2601      	movs	r6, #1
+ 8005ed0:	9606      	str	r6, [sp, #24]
+ 8005ed2:	f8bd 3036 	ldrh.w	r3, [sp, #54]	; 0x36
+ 8005ed6:	4543      	cmp	r3, r8
+ 8005ed8:	d260      	bcs.n	8005f9c <VL53L0X_perform_ref_spad_management+0x216>
+ 8005eda:	eba3 0308 	sub.w	r3, r3, r8
+ 8005ede:	ea83 72e3 	eor.w	r2, r3, r3, asr #31
+ 8005ee2:	eba2 72e3 	sub.w	r2, r2, r3, asr #31
+ 8005ee6:	f89d 6018 	ldrb.w	r6, [sp, #24]
+ 8005eea:	9209      	str	r2, [sp, #36]	; 0x24
+ 8005eec:	f505 7392 	add.w	r3, r5, #292	; 0x124
+ 8005ef0:	f04f 0b03 	mov.w	fp, #3
+ 8005ef4:	9307      	str	r3, [sp, #28]
+ 8005ef6:	9b07      	ldr	r3, [sp, #28]
+ 8005ef8:	6818      	ldr	r0, [r3, #0]
+ 8005efa:	889b      	ldrh	r3, [r3, #4]
+ 8005efc:	9010      	str	r0, [sp, #64]	; 0x40
+ 8005efe:	f8ad 3044 	strh.w	r3, [sp, #68]	; 0x44
+ 8005f02:	463a      	mov	r2, r7
+ 8005f04:	ab0f      	add	r3, sp, #60	; 0x3c
+ 8005f06:	2106      	movs	r1, #6
+ 8005f08:	4650      	mov	r0, sl
+ 8005f0a:	f7ff fd0c 	bl	8005926 <get_next_good_spad>
+ 8005f0e:	9f0f      	ldr	r7, [sp, #60]	; 0x3c
+ 8005f10:	1c7b      	adds	r3, r7, #1
+ 8005f12:	d056      	beq.n	8005fc2 <VL53L0X_perform_ref_spad_management+0x23c>
+ 8005f14:	f107 00b4 	add.w	r0, r7, #180	; 0xb4
+ 8005f18:	f7ff fd28 	bl	800596c <is_aperture>
+ 8005f1c:	9b06      	ldr	r3, [sp, #24]
+ 8005f1e:	4298      	cmp	r0, r3
+ 8005f20:	d13c      	bne.n	8005f9c <VL53L0X_perform_ref_spad_management+0x216>
+ 8005f22:	f10b 0301 	add.w	r3, fp, #1
+ 8005f26:	463a      	mov	r2, r7
+ 8005f28:	4648      	mov	r0, r9
+ 8005f2a:	9308      	str	r3, [sp, #32]
+ 8005f2c:	f7ff fd28 	bl	8005980 <enable_spad_bit>
+ 8005f30:	2800      	cmp	r0, #0
+ 8005f32:	d149      	bne.n	8005fc8 <VL53L0X_perform_ref_spad_management+0x242>
+ 8005f34:	4649      	mov	r1, r9
+ 8005f36:	4628      	mov	r0, r5
+ 8005f38:	f7ff fd34 	bl	80059a4 <set_ref_spad_map>
+ 8005f3c:	2800      	cmp	r0, #0
+ 8005f3e:	d143      	bne.n	8005fc8 <VL53L0X_perform_ref_spad_management+0x242>
+ 8005f40:	f10d 0136 	add.w	r1, sp, #54	; 0x36
+ 8005f44:	4628      	mov	r0, r5
+ 8005f46:	f7ff fd7f 	bl	8005a48 <perform_ref_signal_measurement>
+ 8005f4a:	2800      	cmp	r0, #0
+ 8005f4c:	d13c      	bne.n	8005fc8 <VL53L0X_perform_ref_spad_management+0x242>
+ 8005f4e:	f8bd 2036 	ldrh.w	r2, [sp, #54]	; 0x36
+ 8005f52:	eba2 0308 	sub.w	r3, r2, r8
+ 8005f56:	2b00      	cmp	r3, #0
+ 8005f58:	bfb8      	it	lt
+ 8005f5a:	425b      	neglt	r3, r3
+ 8005f5c:	4542      	cmp	r2, r8
+ 8005f5e:	d916      	bls.n	8005f8e <VL53L0X_perform_ref_spad_management+0x208>
+ 8005f60:	9a09      	ldr	r2, [sp, #36]	; 0x24
+ 8005f62:	4293      	cmp	r3, r2
+ 8005f64:	d918      	bls.n	8005f98 <VL53L0X_perform_ref_spad_management+0x212>
+ 8005f66:	a910      	add	r1, sp, #64	; 0x40
+ 8005f68:	4628      	mov	r0, r5
+ 8005f6a:	f7ff fd1b 	bl	80059a4 <set_ref_spad_map>
+ 8005f6e:	9a07      	ldr	r2, [sp, #28]
+ 8005f70:	9907      	ldr	r1, [sp, #28]
+ 8005f72:	4603      	mov	r3, r0
+ 8005f74:	9810      	ldr	r0, [sp, #64]	; 0x40
+ 8005f76:	6010      	str	r0, [r2, #0]
+ 8005f78:	f8bd 2044 	ldrh.w	r2, [sp, #68]	; 0x44
+ 8005f7c:	808a      	strh	r2, [r1, #4]
+ 8005f7e:	b16b      	cbz	r3, 8005f9c <VL53L0X_perform_ref_spad_management+0x216>
+ 8005f80:	461c      	mov	r4, r3
+ 8005f82:	4620      	mov	r0, r4
+ 8005f84:	b013      	add	sp, #76	; 0x4c
+ 8005f86:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 8005f8a:	3701      	adds	r7, #1
+ 8005f8c:	e778      	b.n	8005e80 <VL53L0X_perform_ref_spad_management+0xfa>
+ 8005f8e:	f8dd b020 	ldr.w	fp, [sp, #32]
+ 8005f92:	9309      	str	r3, [sp, #36]	; 0x24
+ 8005f94:	3701      	adds	r7, #1
+ 8005f96:	e7ae      	b.n	8005ef6 <VL53L0X_perform_ref_spad_management+0x170>
+ 8005f98:	f8dd b020 	ldr.w	fp, [sp, #32]
+ 8005f9c:	9b0a      	ldr	r3, [sp, #40]	; 0x28
+ 8005f9e:	f8c3 b000 	str.w	fp, [r3]
+ 8005fa2:	9b0b      	ldr	r3, [sp, #44]	; 0x2c
+ 8005fa4:	701e      	strb	r6, [r3, #0]
+ 8005fa6:	2301      	movs	r3, #1
+ 8005fa8:	f885 3115 	strb.w	r3, [r5, #277]	; 0x115
+ 8005fac:	9b0a      	ldr	r3, [sp, #40]	; 0x28
+ 8005fae:	681b      	ldr	r3, [r3, #0]
+ 8005fb0:	f885 3113 	strb.w	r3, [r5, #275]	; 0x113
+ 8005fb4:	9b0b      	ldr	r3, [sp, #44]	; 0x2c
+ 8005fb6:	781b      	ldrb	r3, [r3, #0]
+ 8005fb8:	f885 3114 	strb.w	r3, [r5, #276]	; 0x114
+ 8005fbc:	e7e1      	b.n	8005f82 <VL53L0X_perform_ref_spad_management+0x1fc>
+ 8005fbe:	4604      	mov	r4, r0
+ 8005fc0:	e7df      	b.n	8005f82 <VL53L0X_perform_ref_spad_management+0x1fc>
+ 8005fc2:	f06f 0431 	mvn.w	r4, #49	; 0x31
+ 8005fc6:	e7dc      	b.n	8005f82 <VL53L0X_perform_ref_spad_management+0x1fc>
+ 8005fc8:	4604      	mov	r4, r0
+ 8005fca:	e7da      	b.n	8005f82 <VL53L0X_perform_ref_spad_management+0x1fc>
+ 8005fcc:	2600      	movs	r6, #0
+ 8005fce:	46b3      	mov	fp, r6
+ 8005fd0:	e77e      	b.n	8005ed0 <VL53L0X_perform_ref_spad_management+0x14a>
+ 8005fd2:	2301      	movs	r3, #1
+ 8005fd4:	4683      	mov	fp, r0
+ 8005fd6:	9306      	str	r3, [sp, #24]
+ 8005fd8:	e77b      	b.n	8005ed2 <VL53L0X_perform_ref_spad_management+0x14c>
+
+08005fda <VL53L0X_measurement_poll_for_completion>:
+ 8005fda:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 8005fdc:	2300      	movs	r3, #0
+ 8005fde:	4604      	mov	r4, r0
+ 8005fe0:	f88d 3007 	strb.w	r3, [sp, #7]
+ 8005fe4:	f44f 65fa 	mov.w	r5, #2000	; 0x7d0
+ 8005fe8:	f10d 0107 	add.w	r1, sp, #7
+ 8005fec:	4620      	mov	r0, r4
+ 8005fee:	f7ff fc60 	bl	80058b2 <VL53L0X_GetMeasurementDataReady>
+ 8005ff2:	b958      	cbnz	r0, 800600c <VL53L0X_measurement_poll_for_completion+0x32>
+ 8005ff4:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8005ff8:	2b01      	cmp	r3, #1
+ 8005ffa:	d007      	beq.n	800600c <VL53L0X_measurement_poll_for_completion+0x32>
+ 8005ffc:	3d01      	subs	r5, #1
+ 8005ffe:	d003      	beq.n	8006008 <VL53L0X_measurement_poll_for_completion+0x2e>
+ 8006000:	4620      	mov	r0, r4
+ 8006002:	f001 f9e5 	bl	80073d0 <VL53L0X_PollingDelay>
+ 8006006:	e7ef      	b.n	8005fe8 <VL53L0X_measurement_poll_for_completion+0xe>
+ 8006008:	f06f 0006 	mvn.w	r0, #6
+ 800600c:	b003      	add	sp, #12
+ 800600e:	bd30      	pop	{r4, r5, pc}
+
+08006010 <VL53L0X_isqrt>:
+ 8006010:	4602      	mov	r2, r0
+ 8006012:	f04f 4380 	mov.w	r3, #1073741824	; 0x40000000
+ 8006016:	4293      	cmp	r3, r2
+ 8006018:	d802      	bhi.n	8006020 <VL53L0X_isqrt+0x10>
+ 800601a:	2000      	movs	r0, #0
+ 800601c:	b913      	cbnz	r3, 8006024 <VL53L0X_isqrt+0x14>
+ 800601e:	4770      	bx	lr
+ 8006020:	089b      	lsrs	r3, r3, #2
+ 8006022:	e7f8      	b.n	8006016 <VL53L0X_isqrt+0x6>
+ 8006024:	18c1      	adds	r1, r0, r3
+ 8006026:	4291      	cmp	r1, r2
+ 8006028:	ea4f 0050 	mov.w	r0, r0, lsr #1
+ 800602c:	bf9c      	itt	ls
+ 800602e:	18c0      	addls	r0, r0, r3
+ 8006030:	1a52      	subls	r2, r2, r1
+ 8006032:	089b      	lsrs	r3, r3, #2
+ 8006034:	e7f2      	b.n	800601c <VL53L0X_isqrt+0xc>
+
+08006036 <VL53L0X_device_read_strobe>:
+ 8006036:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 8006038:	2200      	movs	r2, #0
+ 800603a:	2183      	movs	r1, #131	; 0x83
+ 800603c:	4605      	mov	r5, r0
+ 800603e:	f001 f933 	bl	80072a8 <VL53L0X_WrByte>
+ 8006042:	4604      	mov	r4, r0
+ 8006044:	b988      	cbnz	r0, 800606a <VL53L0X_device_read_strobe+0x34>
+ 8006046:	f44f 66fa 	mov.w	r6, #2000	; 0x7d0
+ 800604a:	f10d 0207 	add.w	r2, sp, #7
+ 800604e:	2183      	movs	r1, #131	; 0x83
+ 8006050:	4628      	mov	r0, r5
+ 8006052:	f001 f94b 	bl	80072ec <VL53L0X_RdByte>
+ 8006056:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 800605a:	4303      	orrs	r3, r0
+ 800605c:	b2db      	uxtb	r3, r3
+ 800605e:	4604      	mov	r4, r0
+ 8006060:	b91b      	cbnz	r3, 800606a <VL53L0X_device_read_strobe+0x34>
+ 8006062:	3e01      	subs	r6, #1
+ 8006064:	d1f1      	bne.n	800604a <VL53L0X_device_read_strobe+0x14>
+ 8006066:	f06f 0406 	mvn.w	r4, #6
+ 800606a:	2201      	movs	r2, #1
+ 800606c:	2183      	movs	r1, #131	; 0x83
+ 800606e:	4628      	mov	r0, r5
+ 8006070:	f001 f91a 	bl	80072a8 <VL53L0X_WrByte>
+ 8006074:	4320      	orrs	r0, r4
+ 8006076:	b240      	sxtb	r0, r0
+ 8006078:	b002      	add	sp, #8
+ 800607a:	bd70      	pop	{r4, r5, r6, pc}
+
+0800607c <VL53L0X_get_info_from_device>:
+ 800607c:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8006080:	f890 60f0 	ldrb.w	r6, [r0, #240]	; 0xf0
+ 8006084:	b091      	sub	sp, #68	; 0x44
+ 8006086:	f04f 0900 	mov.w	r9, #0
+ 800608a:	2e07      	cmp	r6, #7
+ 800608c:	e9cd 9907 	strd	r9, r9, [sp, #28]
+ 8006090:	4604      	mov	r4, r0
+ 8006092:	460f      	mov	r7, r1
+ 8006094:	f000 82a2 	beq.w	80065dc <VL53L0X_get_info_from_device+0x560>
+ 8006098:	2201      	movs	r2, #1
+ 800609a:	2180      	movs	r1, #128	; 0x80
+ 800609c:	f001 f904 	bl	80072a8 <VL53L0X_WrByte>
+ 80060a0:	2201      	movs	r2, #1
+ 80060a2:	4680      	mov	r8, r0
+ 80060a4:	21ff      	movs	r1, #255	; 0xff
+ 80060a6:	4620      	mov	r0, r4
+ 80060a8:	f001 f8fe 	bl	80072a8 <VL53L0X_WrByte>
+ 80060ac:	464a      	mov	r2, r9
+ 80060ae:	ea48 0800 	orr.w	r8, r8, r0
+ 80060b2:	4649      	mov	r1, r9
+ 80060b4:	4620      	mov	r0, r4
+ 80060b6:	f001 f8f7 	bl	80072a8 <VL53L0X_WrByte>
+ 80060ba:	fa4f f888 	sxtb.w	r8, r8
+ 80060be:	ea48 0800 	orr.w	r8, r8, r0
+ 80060c2:	2206      	movs	r2, #6
+ 80060c4:	21ff      	movs	r1, #255	; 0xff
+ 80060c6:	4620      	mov	r0, r4
+ 80060c8:	f001 f8ee 	bl	80072a8 <VL53L0X_WrByte>
+ 80060cc:	fa4f f888 	sxtb.w	r8, r8
+ 80060d0:	ea48 0800 	orr.w	r8, r8, r0
+ 80060d4:	f10d 0215 	add.w	r2, sp, #21
+ 80060d8:	2183      	movs	r1, #131	; 0x83
+ 80060da:	4620      	mov	r0, r4
+ 80060dc:	f001 f906 	bl	80072ec <VL53L0X_RdByte>
+ 80060e0:	f89d 2015 	ldrb.w	r2, [sp, #21]
+ 80060e4:	fa4f f888 	sxtb.w	r8, r8
+ 80060e8:	ea48 0800 	orr.w	r8, r8, r0
+ 80060ec:	f042 0204 	orr.w	r2, r2, #4
+ 80060f0:	2183      	movs	r1, #131	; 0x83
+ 80060f2:	4620      	mov	r0, r4
+ 80060f4:	f001 f8d8 	bl	80072a8 <VL53L0X_WrByte>
+ 80060f8:	fa4f f888 	sxtb.w	r8, r8
+ 80060fc:	ea48 0800 	orr.w	r8, r8, r0
+ 8006100:	2207      	movs	r2, #7
+ 8006102:	21ff      	movs	r1, #255	; 0xff
+ 8006104:	4620      	mov	r0, r4
+ 8006106:	f001 f8cf 	bl	80072a8 <VL53L0X_WrByte>
+ 800610a:	fa4f f888 	sxtb.w	r8, r8
+ 800610e:	2201      	movs	r2, #1
+ 8006110:	2181      	movs	r1, #129	; 0x81
+ 8006112:	ea48 0800 	orr.w	r8, r8, r0
+ 8006116:	4620      	mov	r0, r4
+ 8006118:	f001 f8c6 	bl	80072a8 <VL53L0X_WrByte>
+ 800611c:	fa4f f888 	sxtb.w	r8, r8
+ 8006120:	ea48 0800 	orr.w	r8, r8, r0
+ 8006124:	4620      	mov	r0, r4
+ 8006126:	f001 f953 	bl	80073d0 <VL53L0X_PollingDelay>
+ 800612a:	fa4f f888 	sxtb.w	r8, r8
+ 800612e:	ea48 0800 	orr.w	r8, r8, r0
+ 8006132:	2201      	movs	r2, #1
+ 8006134:	2180      	movs	r1, #128	; 0x80
+ 8006136:	4620      	mov	r0, r4
+ 8006138:	f001 f8b6 	bl	80072a8 <VL53L0X_WrByte>
+ 800613c:	fa4f f888 	sxtb.w	r8, r8
+ 8006140:	ea48 0500 	orr.w	r5, r8, r0
+ 8006144:	f017 0b01 	ands.w	fp, r7, #1
+ 8006148:	b26d      	sxtb	r5, r5
+ 800614a:	f000 821e 	beq.w	800658a <VL53L0X_get_info_from_device+0x50e>
+ 800614e:	07f2      	lsls	r2, r6, #31
+ 8006150:	f100 821e 	bmi.w	8006590 <VL53L0X_get_info_from_device+0x514>
+ 8006154:	226b      	movs	r2, #107	; 0x6b
+ 8006156:	2194      	movs	r1, #148	; 0x94
+ 8006158:	4620      	mov	r0, r4
+ 800615a:	f001 f8a5 	bl	80072a8 <VL53L0X_WrByte>
+ 800615e:	4680      	mov	r8, r0
+ 8006160:	4620      	mov	r0, r4
+ 8006162:	f7ff ff68 	bl	8006036 <VL53L0X_device_read_strobe>
+ 8006166:	aa06      	add	r2, sp, #24
+ 8006168:	ea48 0800 	orr.w	r8, r8, r0
+ 800616c:	2190      	movs	r1, #144	; 0x90
+ 800616e:	4620      	mov	r0, r4
+ 8006170:	f001 f908 	bl	8007384 <VL53L0X_RdDWord>
+ 8006174:	ea45 0508 	orr.w	r5, r5, r8
+ 8006178:	9b06      	ldr	r3, [sp, #24]
+ 800617a:	b26d      	sxtb	r5, r5
+ 800617c:	2224      	movs	r2, #36	; 0x24
+ 800617e:	2194      	movs	r1, #148	; 0x94
+ 8006180:	4305      	orrs	r5, r0
+ 8006182:	4620      	mov	r0, r4
+ 8006184:	f3c3 2a06 	ubfx	sl, r3, #8, #7
+ 8006188:	f3c3 39c0 	ubfx	r9, r3, #15, #1
+ 800618c:	f001 f88c 	bl	80072a8 <VL53L0X_WrByte>
+ 8006190:	b26d      	sxtb	r5, r5
+ 8006192:	4305      	orrs	r5, r0
+ 8006194:	4620      	mov	r0, r4
+ 8006196:	f7ff ff4e 	bl	8006036 <VL53L0X_device_read_strobe>
+ 800619a:	b26d      	sxtb	r5, r5
+ 800619c:	4305      	orrs	r5, r0
+ 800619e:	aa06      	add	r2, sp, #24
+ 80061a0:	2190      	movs	r1, #144	; 0x90
+ 80061a2:	4620      	mov	r0, r4
+ 80061a4:	f001 f8ee 	bl	8007384 <VL53L0X_RdDWord>
+ 80061a8:	9b06      	ldr	r3, [sp, #24]
+ 80061aa:	b26d      	sxtb	r5, r5
+ 80061ac:	ba1b      	rev	r3, r3
+ 80061ae:	2225      	movs	r2, #37	; 0x25
+ 80061b0:	2194      	movs	r1, #148	; 0x94
+ 80061b2:	4305      	orrs	r5, r0
+ 80061b4:	4620      	mov	r0, r4
+ 80061b6:	9309      	str	r3, [sp, #36]	; 0x24
+ 80061b8:	f001 f876 	bl	80072a8 <VL53L0X_WrByte>
+ 80061bc:	b26d      	sxtb	r5, r5
+ 80061be:	4305      	orrs	r5, r0
+ 80061c0:	4620      	mov	r0, r4
+ 80061c2:	f7ff ff38 	bl	8006036 <VL53L0X_device_read_strobe>
+ 80061c6:	b26d      	sxtb	r5, r5
+ 80061c8:	4305      	orrs	r5, r0
+ 80061ca:	aa06      	add	r2, sp, #24
+ 80061cc:	2190      	movs	r1, #144	; 0x90
+ 80061ce:	4620      	mov	r0, r4
+ 80061d0:	f001 f8d8 	bl	8007384 <VL53L0X_RdDWord>
+ 80061d4:	9b06      	ldr	r3, [sp, #24]
+ 80061d6:	b26d      	sxtb	r5, r5
+ 80061d8:	0e1a      	lsrs	r2, r3, #24
+ 80061da:	4305      	orrs	r5, r0
+ 80061dc:	0c1b      	lsrs	r3, r3, #16
+ 80061de:	b26d      	sxtb	r5, r5
+ 80061e0:	f88d 2028 	strb.w	r2, [sp, #40]	; 0x28
+ 80061e4:	f88d 3029 	strb.w	r3, [sp, #41]	; 0x29
+ 80061e8:	f017 0302 	ands.w	r3, r7, #2
+ 80061ec:	9302      	str	r3, [sp, #8]
+ 80061ee:	f000 80db 	beq.w	80063a8 <VL53L0X_get_info_from_device+0x32c>
+ 80061f2:	f016 0802 	ands.w	r8, r6, #2
+ 80061f6:	f040 80d7 	bne.w	80063a8 <VL53L0X_get_info_from_device+0x32c>
+ 80061fa:	2202      	movs	r2, #2
+ 80061fc:	2194      	movs	r1, #148	; 0x94
+ 80061fe:	4620      	mov	r0, r4
+ 8006200:	f001 f852 	bl	80072a8 <VL53L0X_WrByte>
+ 8006204:	9001      	str	r0, [sp, #4]
+ 8006206:	4620      	mov	r0, r4
+ 8006208:	f7ff ff15 	bl	8006036 <VL53L0X_device_read_strobe>
+ 800620c:	9b01      	ldr	r3, [sp, #4]
+ 800620e:	f10d 0216 	add.w	r2, sp, #22
+ 8006212:	4303      	orrs	r3, r0
+ 8006214:	2190      	movs	r1, #144	; 0x90
+ 8006216:	4620      	mov	r0, r4
+ 8006218:	431d      	orrs	r5, r3
+ 800621a:	f001 f867 	bl	80072ec <VL53L0X_RdByte>
+ 800621e:	b26d      	sxtb	r5, r5
+ 8006220:	227b      	movs	r2, #123	; 0x7b
+ 8006222:	2194      	movs	r1, #148	; 0x94
+ 8006224:	4305      	orrs	r5, r0
+ 8006226:	4620      	mov	r0, r4
+ 8006228:	f001 f83e 	bl	80072a8 <VL53L0X_WrByte>
+ 800622c:	b26d      	sxtb	r5, r5
+ 800622e:	4305      	orrs	r5, r0
+ 8006230:	4620      	mov	r0, r4
+ 8006232:	f7ff ff00 	bl	8006036 <VL53L0X_device_read_strobe>
+ 8006236:	b26d      	sxtb	r5, r5
+ 8006238:	4305      	orrs	r5, r0
+ 800623a:	f10d 0217 	add.w	r2, sp, #23
+ 800623e:	2190      	movs	r1, #144	; 0x90
+ 8006240:	4620      	mov	r0, r4
+ 8006242:	f001 f853 	bl	80072ec <VL53L0X_RdByte>
+ 8006246:	b26d      	sxtb	r5, r5
+ 8006248:	2277      	movs	r2, #119	; 0x77
+ 800624a:	2194      	movs	r1, #148	; 0x94
+ 800624c:	4305      	orrs	r5, r0
+ 800624e:	4620      	mov	r0, r4
+ 8006250:	f001 f82a 	bl	80072a8 <VL53L0X_WrByte>
+ 8006254:	b26d      	sxtb	r5, r5
+ 8006256:	4305      	orrs	r5, r0
+ 8006258:	4620      	mov	r0, r4
+ 800625a:	f7ff feec 	bl	8006036 <VL53L0X_device_read_strobe>
+ 800625e:	b26d      	sxtb	r5, r5
+ 8006260:	4305      	orrs	r5, r0
+ 8006262:	aa06      	add	r2, sp, #24
+ 8006264:	2190      	movs	r1, #144	; 0x90
+ 8006266:	4620      	mov	r0, r4
+ 8006268:	f001 f88c 	bl	8007384 <VL53L0X_RdDWord>
+ 800626c:	9b06      	ldr	r3, [sp, #24]
+ 800626e:	0e5a      	lsrs	r2, r3, #25
+ 8006270:	f88d 202c 	strb.w	r2, [sp, #44]	; 0x2c
+ 8006274:	f3c3 4286 	ubfx	r2, r3, #18, #7
+ 8006278:	f88d 202d 	strb.w	r2, [sp, #45]	; 0x2d
+ 800627c:	f3c3 22c6 	ubfx	r2, r3, #11, #7
+ 8006280:	f88d 202e 	strb.w	r2, [sp, #46]	; 0x2e
+ 8006284:	b26d      	sxtb	r5, r5
+ 8006286:	f3c3 1206 	ubfx	r2, r3, #4, #7
+ 800628a:	00db      	lsls	r3, r3, #3
+ 800628c:	f003 0378 	and.w	r3, r3, #120	; 0x78
+ 8006290:	2194      	movs	r1, #148	; 0x94
+ 8006292:	4305      	orrs	r5, r0
+ 8006294:	f88d 202f 	strb.w	r2, [sp, #47]	; 0x2f
+ 8006298:	4620      	mov	r0, r4
+ 800629a:	2278      	movs	r2, #120	; 0x78
+ 800629c:	f88d 3015 	strb.w	r3, [sp, #21]
+ 80062a0:	f001 f802 	bl	80072a8 <VL53L0X_WrByte>
+ 80062a4:	b26d      	sxtb	r5, r5
+ 80062a6:	4305      	orrs	r5, r0
+ 80062a8:	4620      	mov	r0, r4
+ 80062aa:	f7ff fec4 	bl	8006036 <VL53L0X_device_read_strobe>
+ 80062ae:	b26d      	sxtb	r5, r5
+ 80062b0:	4305      	orrs	r5, r0
+ 80062b2:	aa06      	add	r2, sp, #24
+ 80062b4:	2190      	movs	r1, #144	; 0x90
+ 80062b6:	4620      	mov	r0, r4
+ 80062b8:	f001 f864 	bl	8007384 <VL53L0X_RdDWord>
+ 80062bc:	9b06      	ldr	r3, [sp, #24]
+ 80062be:	f89d 2015 	ldrb.w	r2, [sp, #21]
+ 80062c2:	eb02 7253 	add.w	r2, r2, r3, lsr #29
+ 80062c6:	f88d 2030 	strb.w	r2, [sp, #48]	; 0x30
+ 80062ca:	f3c3 5286 	ubfx	r2, r3, #22, #7
+ 80062ce:	f88d 2031 	strb.w	r2, [sp, #49]	; 0x31
+ 80062d2:	f3c3 32c6 	ubfx	r2, r3, #15, #7
+ 80062d6:	f88d 2032 	strb.w	r2, [sp, #50]	; 0x32
+ 80062da:	f3c3 2206 	ubfx	r2, r3, #8, #7
+ 80062de:	f88d 2033 	strb.w	r2, [sp, #51]	; 0x33
+ 80062e2:	b26d      	sxtb	r5, r5
+ 80062e4:	f3c3 0246 	ubfx	r2, r3, #1, #7
+ 80062e8:	019b      	lsls	r3, r3, #6
+ 80062ea:	f003 0340 	and.w	r3, r3, #64	; 0x40
+ 80062ee:	2194      	movs	r1, #148	; 0x94
+ 80062f0:	4305      	orrs	r5, r0
+ 80062f2:	f88d 2034 	strb.w	r2, [sp, #52]	; 0x34
+ 80062f6:	4620      	mov	r0, r4
+ 80062f8:	2279      	movs	r2, #121	; 0x79
+ 80062fa:	f88d 3015 	strb.w	r3, [sp, #21]
+ 80062fe:	f000 ffd3 	bl	80072a8 <VL53L0X_WrByte>
+ 8006302:	b26d      	sxtb	r5, r5
+ 8006304:	4305      	orrs	r5, r0
+ 8006306:	4620      	mov	r0, r4
+ 8006308:	f7ff fe95 	bl	8006036 <VL53L0X_device_read_strobe>
+ 800630c:	b26d      	sxtb	r5, r5
+ 800630e:	4305      	orrs	r5, r0
+ 8006310:	aa06      	add	r2, sp, #24
+ 8006312:	2190      	movs	r1, #144	; 0x90
+ 8006314:	4620      	mov	r0, r4
+ 8006316:	f001 f835 	bl	8007384 <VL53L0X_RdDWord>
+ 800631a:	9b06      	ldr	r3, [sp, #24]
+ 800631c:	f89d 2015 	ldrb.w	r2, [sp, #21]
+ 8006320:	eb02 6293 	add.w	r2, r2, r3, lsr #26
+ 8006324:	f88d 2035 	strb.w	r2, [sp, #53]	; 0x35
+ 8006328:	f3c3 42c6 	ubfx	r2, r3, #19, #7
+ 800632c:	f88d 2036 	strb.w	r2, [sp, #54]	; 0x36
+ 8006330:	f3c3 3206 	ubfx	r2, r3, #12, #7
+ 8006334:	f88d 2037 	strb.w	r2, [sp, #55]	; 0x37
+ 8006338:	b26d      	sxtb	r5, r5
+ 800633a:	f3c3 1246 	ubfx	r2, r3, #5, #7
+ 800633e:	009b      	lsls	r3, r3, #2
+ 8006340:	f003 037c 	and.w	r3, r3, #124	; 0x7c
+ 8006344:	2194      	movs	r1, #148	; 0x94
+ 8006346:	4305      	orrs	r5, r0
+ 8006348:	f88d 2038 	strb.w	r2, [sp, #56]	; 0x38
+ 800634c:	4620      	mov	r0, r4
+ 800634e:	227a      	movs	r2, #122	; 0x7a
+ 8006350:	f88d 3015 	strb.w	r3, [sp, #21]
+ 8006354:	f000 ffa8 	bl	80072a8 <VL53L0X_WrByte>
+ 8006358:	b26d      	sxtb	r5, r5
+ 800635a:	4305      	orrs	r5, r0
+ 800635c:	4620      	mov	r0, r4
+ 800635e:	f7ff fe6a 	bl	8006036 <VL53L0X_device_read_strobe>
+ 8006362:	b26d      	sxtb	r5, r5
+ 8006364:	4305      	orrs	r5, r0
+ 8006366:	aa06      	add	r2, sp, #24
+ 8006368:	2190      	movs	r1, #144	; 0x90
+ 800636a:	4620      	mov	r0, r4
+ 800636c:	f001 f80a 	bl	8007384 <VL53L0X_RdDWord>
+ 8006370:	9b06      	ldr	r3, [sp, #24]
+ 8006372:	f89d 2015 	ldrb.w	r2, [sp, #21]
+ 8006376:	f88d 803e 	strb.w	r8, [sp, #62]	; 0x3e
+ 800637a:	eb02 7293 	add.w	r2, r2, r3, lsr #30
+ 800637e:	f88d 2039 	strb.w	r2, [sp, #57]	; 0x39
+ 8006382:	f3c3 52c6 	ubfx	r2, r3, #23, #7
+ 8006386:	b26d      	sxtb	r5, r5
+ 8006388:	f88d 203a 	strb.w	r2, [sp, #58]	; 0x3a
+ 800638c:	f3c3 4206 	ubfx	r2, r3, #16, #7
+ 8006390:	4305      	orrs	r5, r0
+ 8006392:	f88d 203b 	strb.w	r2, [sp, #59]	; 0x3b
+ 8006396:	f3c3 2246 	ubfx	r2, r3, #9, #7
+ 800639a:	f3c3 0386 	ubfx	r3, r3, #2, #7
+ 800639e:	b26d      	sxtb	r5, r5
+ 80063a0:	f88d 203c 	strb.w	r2, [sp, #60]	; 0x3c
+ 80063a4:	f88d 303d 	strb.w	r3, [sp, #61]	; 0x3d
+ 80063a8:	f017 0304 	ands.w	r3, r7, #4
+ 80063ac:	9301      	str	r3, [sp, #4]
+ 80063ae:	f000 80f1 	beq.w	8006594 <VL53L0X_get_info_from_device+0x518>
+ 80063b2:	0773      	lsls	r3, r6, #29
+ 80063b4:	f100 80ee 	bmi.w	8006594 <VL53L0X_get_info_from_device+0x518>
+ 80063b8:	227b      	movs	r2, #123	; 0x7b
+ 80063ba:	2194      	movs	r1, #148	; 0x94
+ 80063bc:	4620      	mov	r0, r4
+ 80063be:	f000 ff73 	bl	80072a8 <VL53L0X_WrByte>
+ 80063c2:	4680      	mov	r8, r0
+ 80063c4:	4620      	mov	r0, r4
+ 80063c6:	f7ff fe36 	bl	8006036 <VL53L0X_device_read_strobe>
+ 80063ca:	aa07      	add	r2, sp, #28
+ 80063cc:	ea48 0800 	orr.w	r8, r8, r0
+ 80063d0:	2190      	movs	r1, #144	; 0x90
+ 80063d2:	4620      	mov	r0, r4
+ 80063d4:	f000 ffd6 	bl	8007384 <VL53L0X_RdDWord>
+ 80063d8:	ea45 0808 	orr.w	r8, r5, r8
+ 80063dc:	fa4f f888 	sxtb.w	r8, r8
+ 80063e0:	ea48 0500 	orr.w	r5, r8, r0
+ 80063e4:	227c      	movs	r2, #124	; 0x7c
+ 80063e6:	2194      	movs	r1, #148	; 0x94
+ 80063e8:	4620      	mov	r0, r4
+ 80063ea:	f000 ff5d 	bl	80072a8 <VL53L0X_WrByte>
+ 80063ee:	b26d      	sxtb	r5, r5
+ 80063f0:	4305      	orrs	r5, r0
+ 80063f2:	4620      	mov	r0, r4
+ 80063f4:	f7ff fe1f 	bl	8006036 <VL53L0X_device_read_strobe>
+ 80063f8:	b26d      	sxtb	r5, r5
+ 80063fa:	4305      	orrs	r5, r0
+ 80063fc:	aa08      	add	r2, sp, #32
+ 80063fe:	2190      	movs	r1, #144	; 0x90
+ 8006400:	4620      	mov	r0, r4
+ 8006402:	f000 ffbf 	bl	8007384 <VL53L0X_RdDWord>
+ 8006406:	b26d      	sxtb	r5, r5
+ 8006408:	2273      	movs	r2, #115	; 0x73
+ 800640a:	2194      	movs	r1, #148	; 0x94
+ 800640c:	4305      	orrs	r5, r0
+ 800640e:	4620      	mov	r0, r4
+ 8006410:	f000 ff4a 	bl	80072a8 <VL53L0X_WrByte>
+ 8006414:	b26d      	sxtb	r5, r5
+ 8006416:	4305      	orrs	r5, r0
+ 8006418:	4620      	mov	r0, r4
+ 800641a:	f7ff fe0c 	bl	8006036 <VL53L0X_device_read_strobe>
+ 800641e:	b26d      	sxtb	r5, r5
+ 8006420:	4305      	orrs	r5, r0
+ 8006422:	aa06      	add	r2, sp, #24
+ 8006424:	2190      	movs	r1, #144	; 0x90
+ 8006426:	4620      	mov	r0, r4
+ 8006428:	f000 ffac 	bl	8007384 <VL53L0X_RdDWord>
+ 800642c:	9b06      	ldr	r3, [sp, #24]
+ 800642e:	b26d      	sxtb	r5, r5
+ 8006430:	021b      	lsls	r3, r3, #8
+ 8006432:	2274      	movs	r2, #116	; 0x74
+ 8006434:	2194      	movs	r1, #148	; 0x94
+ 8006436:	4305      	orrs	r5, r0
+ 8006438:	4620      	mov	r0, r4
+ 800643a:	fa1f f883 	uxth.w	r8, r3
+ 800643e:	f000 ff33 	bl	80072a8 <VL53L0X_WrByte>
+ 8006442:	b26d      	sxtb	r5, r5
+ 8006444:	4305      	orrs	r5, r0
+ 8006446:	4620      	mov	r0, r4
+ 8006448:	f7ff fdf5 	bl	8006036 <VL53L0X_device_read_strobe>
+ 800644c:	b26d      	sxtb	r5, r5
+ 800644e:	4305      	orrs	r5, r0
+ 8006450:	aa06      	add	r2, sp, #24
+ 8006452:	2190      	movs	r1, #144	; 0x90
+ 8006454:	4620      	mov	r0, r4
+ 8006456:	f000 ff95 	bl	8007384 <VL53L0X_RdDWord>
+ 800645a:	b26d      	sxtb	r5, r5
+ 800645c:	f89d 301b 	ldrb.w	r3, [sp, #27]
+ 8006460:	2275      	movs	r2, #117	; 0x75
+ 8006462:	2194      	movs	r1, #148	; 0x94
+ 8006464:	4305      	orrs	r5, r0
+ 8006466:	4620      	mov	r0, r4
+ 8006468:	ea43 0808 	orr.w	r8, r3, r8
+ 800646c:	f000 ff1c 	bl	80072a8 <VL53L0X_WrByte>
+ 8006470:	b26d      	sxtb	r5, r5
+ 8006472:	4305      	orrs	r5, r0
+ 8006474:	4620      	mov	r0, r4
+ 8006476:	f7ff fdde 	bl	8006036 <VL53L0X_device_read_strobe>
+ 800647a:	b26d      	sxtb	r5, r5
+ 800647c:	4305      	orrs	r5, r0
+ 800647e:	aa06      	add	r2, sp, #24
+ 8006480:	2190      	movs	r1, #144	; 0x90
+ 8006482:	4620      	mov	r0, r4
+ 8006484:	f000 ff7e 	bl	8007384 <VL53L0X_RdDWord>
+ 8006488:	9b06      	ldr	r3, [sp, #24]
+ 800648a:	b26d      	sxtb	r5, r5
+ 800648c:	021b      	lsls	r3, r3, #8
+ 800648e:	b29b      	uxth	r3, r3
+ 8006490:	2276      	movs	r2, #118	; 0x76
+ 8006492:	2194      	movs	r1, #148	; 0x94
+ 8006494:	4305      	orrs	r5, r0
+ 8006496:	4620      	mov	r0, r4
+ 8006498:	9303      	str	r3, [sp, #12]
+ 800649a:	f000 ff05 	bl	80072a8 <VL53L0X_WrByte>
+ 800649e:	b26d      	sxtb	r5, r5
+ 80064a0:	4305      	orrs	r5, r0
+ 80064a2:	4620      	mov	r0, r4
+ 80064a4:	f7ff fdc7 	bl	8006036 <VL53L0X_device_read_strobe>
+ 80064a8:	b26d      	sxtb	r5, r5
+ 80064aa:	4305      	orrs	r5, r0
+ 80064ac:	aa06      	add	r2, sp, #24
+ 80064ae:	2190      	movs	r1, #144	; 0x90
+ 80064b0:	4620      	mov	r0, r4
+ 80064b2:	f000 ff67 	bl	8007384 <VL53L0X_RdDWord>
+ 80064b6:	b26d      	sxtb	r5, r5
+ 80064b8:	f89d 201b 	ldrb.w	r2, [sp, #27]
+ 80064bc:	9b03      	ldr	r3, [sp, #12]
+ 80064be:	4305      	orrs	r5, r0
+ 80064c0:	b26d      	sxtb	r5, r5
+ 80064c2:	4313      	orrs	r3, r2
+ 80064c4:	2200      	movs	r2, #0
+ 80064c6:	2181      	movs	r1, #129	; 0x81
+ 80064c8:	4620      	mov	r0, r4
+ 80064ca:	9303      	str	r3, [sp, #12]
+ 80064cc:	f000 feec 	bl	80072a8 <VL53L0X_WrByte>
+ 80064d0:	2206      	movs	r2, #6
+ 80064d2:	4305      	orrs	r5, r0
+ 80064d4:	21ff      	movs	r1, #255	; 0xff
+ 80064d6:	4620      	mov	r0, r4
+ 80064d8:	f000 fee6 	bl	80072a8 <VL53L0X_WrByte>
+ 80064dc:	b26d      	sxtb	r5, r5
+ 80064de:	4305      	orrs	r5, r0
+ 80064e0:	f10d 0215 	add.w	r2, sp, #21
+ 80064e4:	2183      	movs	r1, #131	; 0x83
+ 80064e6:	4620      	mov	r0, r4
+ 80064e8:	f000 ff00 	bl	80072ec <VL53L0X_RdByte>
+ 80064ec:	f89d 2015 	ldrb.w	r2, [sp, #21]
+ 80064f0:	b26d      	sxtb	r5, r5
+ 80064f2:	4305      	orrs	r5, r0
+ 80064f4:	f002 02fb 	and.w	r2, r2, #251	; 0xfb
+ 80064f8:	2183      	movs	r1, #131	; 0x83
+ 80064fa:	4620      	mov	r0, r4
+ 80064fc:	f000 fed4 	bl	80072a8 <VL53L0X_WrByte>
+ 8006500:	b26d      	sxtb	r5, r5
+ 8006502:	4305      	orrs	r5, r0
+ 8006504:	2201      	movs	r2, #1
+ 8006506:	21ff      	movs	r1, #255	; 0xff
+ 8006508:	4620      	mov	r0, r4
+ 800650a:	f000 fecd 	bl	80072a8 <VL53L0X_WrByte>
+ 800650e:	b26d      	sxtb	r5, r5
+ 8006510:	4305      	orrs	r5, r0
+ 8006512:	2201      	movs	r2, #1
+ 8006514:	2100      	movs	r1, #0
+ 8006516:	4620      	mov	r0, r4
+ 8006518:	f000 fec6 	bl	80072a8 <VL53L0X_WrByte>
+ 800651c:	b26d      	sxtb	r5, r5
+ 800651e:	4305      	orrs	r5, r0
+ 8006520:	2200      	movs	r2, #0
+ 8006522:	21ff      	movs	r1, #255	; 0xff
+ 8006524:	4620      	mov	r0, r4
+ 8006526:	f000 febf 	bl	80072a8 <VL53L0X_WrByte>
+ 800652a:	b26d      	sxtb	r5, r5
+ 800652c:	4305      	orrs	r5, r0
+ 800652e:	2200      	movs	r2, #0
+ 8006530:	2180      	movs	r1, #128	; 0x80
+ 8006532:	4620      	mov	r0, r4
+ 8006534:	f000 feb8 	bl	80072a8 <VL53L0X_WrByte>
+ 8006538:	b26d      	sxtb	r5, r5
+ 800653a:	4305      	orrs	r5, r0
+ 800653c:	b26d      	sxtb	r5, r5
+ 800653e:	9b03      	ldr	r3, [sp, #12]
+ 8006540:	b9fd      	cbnz	r5, 8006582 <VL53L0X_get_info_from_device+0x506>
+ 8006542:	f1bb 0f00 	cmp.w	fp, #0
+ 8006546:	d129      	bne.n	800659c <VL53L0X_get_info_from_device+0x520>
+ 8006548:	9a02      	ldr	r2, [sp, #8]
+ 800654a:	bbaa      	cbnz	r2, 80065b8 <VL53L0X_get_info_from_device+0x53c>
+ 800654c:	9a01      	ldr	r2, [sp, #4]
+ 800654e:	b1aa      	cbz	r2, 800657c <VL53L0X_get_info_from_device+0x500>
+ 8006550:	0772      	lsls	r2, r6, #29
+ 8006552:	d413      	bmi.n	800657c <VL53L0X_get_info_from_device+0x500>
+ 8006554:	9a07      	ldr	r2, [sp, #28]
+ 8006556:	f8c4 2118 	str.w	r2, [r4, #280]	; 0x118
+ 800655a:	9a08      	ldr	r2, [sp, #32]
+ 800655c:	f8c4 211c 	str.w	r2, [r4, #284]	; 0x11c
+ 8006560:	ea4f 2248 	mov.w	r2, r8, lsl #9
+ 8006564:	f8c4 2120 	str.w	r2, [r4, #288]	; 0x120
+ 8006568:	b13b      	cbz	r3, 800657a <VL53L0X_get_info_from_device+0x4fe>
+ 800656a:	f5a3 53c8 	sub.w	r3, r3, #6400	; 0x1900
+ 800656e:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
+ 8006572:	4353      	muls	r3, r2
+ 8006574:	091b      	lsrs	r3, r3, #4
+ 8006576:	425b      	negs	r3, r3
+ 8006578:	b21b      	sxth	r3, r3
+ 800657a:	60e3      	str	r3, [r4, #12]
+ 800657c:	433e      	orrs	r6, r7
+ 800657e:	f884 60f0 	strb.w	r6, [r4, #240]	; 0xf0
+ 8006582:	4628      	mov	r0, r5
+ 8006584:	b011      	add	sp, #68	; 0x44
+ 8006586:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 800658a:	46d9      	mov	r9, fp
+ 800658c:	46da      	mov	sl, fp
+ 800658e:	e62b      	b.n	80061e8 <VL53L0X_get_info_from_device+0x16c>
+ 8006590:	46ca      	mov	sl, r9
+ 8006592:	e629      	b.n	80061e8 <VL53L0X_get_info_from_device+0x16c>
+ 8006594:	f04f 0800 	mov.w	r8, #0
+ 8006598:	4643      	mov	r3, r8
+ 800659a:	e793      	b.n	80064c4 <VL53L0X_get_info_from_device+0x448>
+ 800659c:	07f0      	lsls	r0, r6, #31
+ 800659e:	d4d3      	bmi.n	8006548 <VL53L0X_get_info_from_device+0x4cc>
+ 80065a0:	9809      	ldr	r0, [sp, #36]	; 0x24
+ 80065a2:	f8bd 2028 	ldrh.w	r2, [sp, #40]	; 0x28
+ 80065a6:	f884 a113 	strb.w	sl, [r4, #275]	; 0x113
+ 80065aa:	f884 9114 	strb.w	r9, [r4, #276]	; 0x114
+ 80065ae:	f8c4 012a 	str.w	r0, [r4, #298]	; 0x12a
+ 80065b2:	f8a4 212e 	strh.w	r2, [r4, #302]	; 0x12e
+ 80065b6:	e7c7      	b.n	8006548 <VL53L0X_get_info_from_device+0x4cc>
+ 80065b8:	07b1      	lsls	r1, r6, #30
+ 80065ba:	d4c7      	bmi.n	800654c <VL53L0X_get_info_from_device+0x4d0>
+ 80065bc:	f89d 2016 	ldrb.w	r2, [sp, #22]
+ 80065c0:	f884 20f1 	strb.w	r2, [r4, #241]	; 0xf1
+ 80065c4:	f89d 2017 	ldrb.w	r2, [sp, #23]
+ 80065c8:	f884 20f2 	strb.w	r2, [r4, #242]	; 0xf2
+ 80065cc:	a90b      	add	r1, sp, #44	; 0x2c
+ 80065ce:	f104 00f3 	add.w	r0, r4, #243	; 0xf3
+ 80065d2:	9302      	str	r3, [sp, #8]
+ 80065d4:	f00d fe68 	bl	80142a8 <strcpy>
+ 80065d8:	9b02      	ldr	r3, [sp, #8]
+ 80065da:	e7b7      	b.n	800654c <VL53L0X_get_info_from_device+0x4d0>
+ 80065dc:	464d      	mov	r5, r9
+ 80065de:	e7d0      	b.n	8006582 <VL53L0X_get_info_from_device+0x506>
+
+080065e0 <VL53L0X_encode_timeout>:
+ 80065e0:	b150      	cbz	r0, 80065f8 <VL53L0X_encode_timeout+0x18>
+ 80065e2:	3801      	subs	r0, #1
+ 80065e4:	2300      	movs	r3, #0
+ 80065e6:	f030 01ff 	bics.w	r1, r0, #255	; 0xff
+ 80065ea:	b29a      	uxth	r2, r3
+ 80065ec:	f103 0301 	add.w	r3, r3, #1
+ 80065f0:	d103      	bne.n	80065fa <VL53L0X_encode_timeout+0x1a>
+ 80065f2:	eb00 2002 	add.w	r0, r0, r2, lsl #8
+ 80065f6:	b280      	uxth	r0, r0
+ 80065f8:	4770      	bx	lr
+ 80065fa:	0840      	lsrs	r0, r0, #1
+ 80065fc:	e7f3      	b.n	80065e6 <VL53L0X_encode_timeout+0x6>
+
+080065fe <VL53L0X_decode_timeout>:
+ 80065fe:	b2c3      	uxtb	r3, r0
+ 8006600:	0a00      	lsrs	r0, r0, #8
+ 8006602:	fa03 f000 	lsl.w	r0, r3, r0
+ 8006606:	3001      	adds	r0, #1
+ 8006608:	4770      	bx	lr
+	...
+
+0800660c <VL53L0X_calc_timeout_mclks>:
+ 800660c:	4b08      	ldr	r3, [pc, #32]	; (8006630 <VL53L0X_calc_timeout_mclks+0x24>)
+ 800660e:	435a      	muls	r2, r3
+ 8006610:	f44f 737a 	mov.w	r3, #1000	; 0x3e8
+ 8006614:	f502 72fa 	add.w	r2, r2, #500	; 0x1f4
+ 8006618:	f44f 60fa 	mov.w	r0, #2000	; 0x7d0
+ 800661c:	fbb2 f0f0 	udiv	r0, r2, r0
+ 8006620:	fbb2 f2f3 	udiv	r2, r2, r3
+ 8006624:	fb03 0001 	mla	r0, r3, r1, r0
+ 8006628:	fbb0 f0f2 	udiv	r0, r0, r2
+ 800662c:	4770      	bx	lr
+ 800662e:	bf00      	nop
+ 8006630:	003a2f00 	.word	0x003a2f00
+
+08006634 <VL53L0X_calc_timeout_us>:
+ 8006634:	4b06      	ldr	r3, [pc, #24]	; (8006650 <VL53L0X_calc_timeout_us+0x1c>)
+ 8006636:	435a      	muls	r2, r3
+ 8006638:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
+ 800663c:	f502 72fa 	add.w	r2, r2, #500	; 0x1f4
+ 8006640:	fbb2 f2f0 	udiv	r2, r2, r0
+ 8006644:	434a      	muls	r2, r1
+ 8006646:	f502 72fa 	add.w	r2, r2, #500	; 0x1f4
+ 800664a:	fbb2 f0f0 	udiv	r0, r2, r0
+ 800664e:	4770      	bx	lr
+ 8006650:	003a2f00 	.word	0x003a2f00
+
+08006654 <get_sequence_step_timeout>:
+ 8006654:	e92d 41ff 	stmdb	sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
+ 8006658:	2902      	cmp	r1, #2
+ 800665a:	f04f 0500 	mov.w	r5, #0
+ 800665e:	4607      	mov	r7, r0
+ 8006660:	4616      	mov	r6, r2
+ 8006662:	f88d 5003 	strb.w	r5, [sp, #3]
+ 8006666:	f8ad 5004 	strh.w	r5, [sp, #4]
+ 800666a:	d81c      	bhi.n	80066a6 <get_sequence_step_timeout+0x52>
+ 800666c:	f10d 0202 	add.w	r2, sp, #2
+ 8006670:	4629      	mov	r1, r5
+ 8006672:	f7fe fba1 	bl	8004db8 <VL53L0X_GetVcselPulsePeriod>
+ 8006676:	4604      	mov	r4, r0
+ 8006678:	b930      	cbnz	r0, 8006688 <get_sequence_step_timeout+0x34>
+ 800667a:	f10d 0203 	add.w	r2, sp, #3
+ 800667e:	2146      	movs	r1, #70	; 0x46
+ 8006680:	4638      	mov	r0, r7
+ 8006682:	f000 fe33 	bl	80072ec <VL53L0X_RdByte>
+ 8006686:	4604      	mov	r4, r0
+ 8006688:	f89d 0003 	ldrb.w	r0, [sp, #3]
+ 800668c:	f7ff ffb7 	bl	80065fe <VL53L0X_decode_timeout>
+ 8006690:	b281      	uxth	r1, r0
+ 8006692:	f89d 2002 	ldrb.w	r2, [sp, #2]
+ 8006696:	4638      	mov	r0, r7
+ 8006698:	f7ff ffcc 	bl	8006634 <VL53L0X_calc_timeout_us>
+ 800669c:	6030      	str	r0, [r6, #0]
+ 800669e:	4620      	mov	r0, r4
+ 80066a0:	b004      	add	sp, #16
+ 80066a2:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 80066a6:	2903      	cmp	r1, #3
+ 80066a8:	d118      	bne.n	80066dc <get_sequence_step_timeout+0x88>
+ 80066aa:	f10d 0202 	add.w	r2, sp, #2
+ 80066ae:	4629      	mov	r1, r5
+ 80066b0:	f7fe fb82 	bl	8004db8 <VL53L0X_GetVcselPulsePeriod>
+ 80066b4:	4604      	mov	r4, r0
+ 80066b6:	2800      	cmp	r0, #0
+ 80066b8:	d146      	bne.n	8006748 <get_sequence_step_timeout+0xf4>
+ 80066ba:	4601      	mov	r1, r0
+ 80066bc:	f10d 0202 	add.w	r2, sp, #2
+ 80066c0:	4638      	mov	r0, r7
+ 80066c2:	f7fe fb79 	bl	8004db8 <VL53L0X_GetVcselPulsePeriod>
+ 80066c6:	4604      	mov	r4, r0
+ 80066c8:	b928      	cbnz	r0, 80066d6 <get_sequence_step_timeout+0x82>
+ 80066ca:	aa01      	add	r2, sp, #4
+ 80066cc:	2151      	movs	r1, #81	; 0x51
+ 80066ce:	4638      	mov	r0, r7
+ 80066d0:	f000 fe38 	bl	8007344 <VL53L0X_RdWord>
+ 80066d4:	4604      	mov	r4, r0
+ 80066d6:	f8bd 0004 	ldrh.w	r0, [sp, #4]
+ 80066da:	e7d7      	b.n	800668c <get_sequence_step_timeout+0x38>
+ 80066dc:	2904      	cmp	r1, #4
+ 80066de:	d135      	bne.n	800674c <get_sequence_step_timeout+0xf8>
+ 80066e0:	a902      	add	r1, sp, #8
+ 80066e2:	f7fe fbbd 	bl	8004e60 <VL53L0X_GetSequenceStepEnables>
+ 80066e6:	f89d 300b 	ldrb.w	r3, [sp, #11]
+ 80066ea:	b1ab      	cbz	r3, 8006718 <get_sequence_step_timeout+0xc4>
+ 80066ec:	f10d 0202 	add.w	r2, sp, #2
+ 80066f0:	4629      	mov	r1, r5
+ 80066f2:	4638      	mov	r0, r7
+ 80066f4:	f7fe fb60 	bl	8004db8 <VL53L0X_GetVcselPulsePeriod>
+ 80066f8:	4604      	mov	r4, r0
+ 80066fa:	b958      	cbnz	r0, 8006714 <get_sequence_step_timeout+0xc0>
+ 80066fc:	aa01      	add	r2, sp, #4
+ 80066fe:	2151      	movs	r1, #81	; 0x51
+ 8006700:	4638      	mov	r0, r7
+ 8006702:	f000 fe1f 	bl	8007344 <VL53L0X_RdWord>
+ 8006706:	4604      	mov	r4, r0
+ 8006708:	f8bd 0004 	ldrh.w	r0, [sp, #4]
+ 800670c:	f7ff ff77 	bl	80065fe <VL53L0X_decode_timeout>
+ 8006710:	b285      	uxth	r5, r0
+ 8006712:	b114      	cbz	r4, 800671a <get_sequence_step_timeout+0xc6>
+ 8006714:	2000      	movs	r0, #0
+ 8006716:	e015      	b.n	8006744 <get_sequence_step_timeout+0xf0>
+ 8006718:	461d      	mov	r5, r3
+ 800671a:	f10d 0202 	add.w	r2, sp, #2
+ 800671e:	2101      	movs	r1, #1
+ 8006720:	4638      	mov	r0, r7
+ 8006722:	f7fe fb49 	bl	8004db8 <VL53L0X_GetVcselPulsePeriod>
+ 8006726:	4604      	mov	r4, r0
+ 8006728:	2800      	cmp	r0, #0
+ 800672a:	d1f3      	bne.n	8006714 <get_sequence_step_timeout+0xc0>
+ 800672c:	f10d 0206 	add.w	r2, sp, #6
+ 8006730:	2171      	movs	r1, #113	; 0x71
+ 8006732:	4638      	mov	r0, r7
+ 8006734:	f000 fe06 	bl	8007344 <VL53L0X_RdWord>
+ 8006738:	4604      	mov	r4, r0
+ 800673a:	f8bd 0006 	ldrh.w	r0, [sp, #6]
+ 800673e:	f7ff ff5e 	bl	80065fe <VL53L0X_decode_timeout>
+ 8006742:	b280      	uxth	r0, r0
+ 8006744:	1b40      	subs	r0, r0, r5
+ 8006746:	e7a3      	b.n	8006690 <get_sequence_step_timeout+0x3c>
+ 8006748:	4628      	mov	r0, r5
+ 800674a:	e7a7      	b.n	800669c <get_sequence_step_timeout+0x48>
+ 800674c:	4628      	mov	r0, r5
+ 800674e:	462c      	mov	r4, r5
+ 8006750:	e7a4      	b.n	800669c <get_sequence_step_timeout+0x48>
+
+08006752 <set_sequence_step_timeout>:
+ 8006752:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8006754:	2902      	cmp	r1, #2
+ 8006756:	b085      	sub	sp, #20
+ 8006758:	4605      	mov	r5, r0
+ 800675a:	4616      	mov	r6, r2
+ 800675c:	d81e      	bhi.n	800679c <set_sequence_step_timeout+0x4a>
+ 800675e:	f10d 0205 	add.w	r2, sp, #5
+ 8006762:	2100      	movs	r1, #0
+ 8006764:	f7fe fb28 	bl	8004db8 <VL53L0X_GetVcselPulsePeriod>
+ 8006768:	4604      	mov	r4, r0
+ 800676a:	b9a0      	cbnz	r0, 8006796 <set_sequence_step_timeout+0x44>
+ 800676c:	f89d 2005 	ldrb.w	r2, [sp, #5]
+ 8006770:	4631      	mov	r1, r6
+ 8006772:	4628      	mov	r0, r5
+ 8006774:	f7ff ff4a 	bl	800660c <VL53L0X_calc_timeout_mclks>
+ 8006778:	b283      	uxth	r3, r0
+ 800677a:	f5b3 7f80 	cmp.w	r3, #256	; 0x100
+ 800677e:	bf9a      	itte	ls
+ 8006780:	f100 32ff 	addls.w	r2, r0, #4294967295
+ 8006784:	b2d2      	uxtbls	r2, r2
+ 8006786:	22ff      	movhi	r2, #255	; 0xff
+ 8006788:	f8a5 20d8 	strh.w	r2, [r5, #216]	; 0xd8
+ 800678c:	2146      	movs	r1, #70	; 0x46
+ 800678e:	4628      	mov	r0, r5
+ 8006790:	f000 fd8a 	bl	80072a8 <VL53L0X_WrByte>
+ 8006794:	4604      	mov	r4, r0
+ 8006796:	4620      	mov	r0, r4
+ 8006798:	b005      	add	sp, #20
+ 800679a:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 800679c:	2903      	cmp	r1, #3
+ 800679e:	d11f      	bne.n	80067e0 <set_sequence_step_timeout+0x8e>
+ 80067a0:	f10d 0205 	add.w	r2, sp, #5
+ 80067a4:	2100      	movs	r1, #0
+ 80067a6:	f7fe fb07 	bl	8004db8 <VL53L0X_GetVcselPulsePeriod>
+ 80067aa:	f89d 2005 	ldrb.w	r2, [sp, #5]
+ 80067ae:	4631      	mov	r1, r6
+ 80067b0:	4604      	mov	r4, r0
+ 80067b2:	4628      	mov	r0, r5
+ 80067b4:	f7ff ff2a 	bl	800660c <VL53L0X_calc_timeout_mclks>
+ 80067b8:	b280      	uxth	r0, r0
+ 80067ba:	f7ff ff11 	bl	80065e0 <VL53L0X_encode_timeout>
+ 80067be:	4602      	mov	r2, r0
+ 80067c0:	f8ad 0006 	strh.w	r0, [sp, #6]
+ 80067c4:	f8a5 00d8 	strh.w	r0, [r5, #216]	; 0xd8
+ 80067c8:	2c00      	cmp	r4, #0
+ 80067ca:	d1e4      	bne.n	8006796 <set_sequence_step_timeout+0x44>
+ 80067cc:	2151      	movs	r1, #81	; 0x51
+ 80067ce:	4628      	mov	r0, r5
+ 80067d0:	f000 fd7a 	bl	80072c8 <VL53L0X_WrWord>
+ 80067d4:	4604      	mov	r4, r0
+ 80067d6:	2800      	cmp	r0, #0
+ 80067d8:	d1dd      	bne.n	8006796 <set_sequence_step_timeout+0x44>
+ 80067da:	f8c5 60e4 	str.w	r6, [r5, #228]	; 0xe4
+ 80067de:	e7da      	b.n	8006796 <set_sequence_step_timeout+0x44>
+ 80067e0:	2904      	cmp	r1, #4
+ 80067e2:	d139      	bne.n	8006858 <set_sequence_step_timeout+0x106>
+ 80067e4:	a902      	add	r1, sp, #8
+ 80067e6:	f7fe fb3b 	bl	8004e60 <VL53L0X_GetSequenceStepEnables>
+ 80067ea:	f89d 700b 	ldrb.w	r7, [sp, #11]
+ 80067ee:	b1b7      	cbz	r7, 800681e <set_sequence_step_timeout+0xcc>
+ 80067f0:	f10d 0205 	add.w	r2, sp, #5
+ 80067f4:	2100      	movs	r1, #0
+ 80067f6:	4628      	mov	r0, r5
+ 80067f8:	f7fe fade 	bl	8004db8 <VL53L0X_GetVcselPulsePeriod>
+ 80067fc:	4604      	mov	r4, r0
+ 80067fe:	2800      	cmp	r0, #0
+ 8006800:	d1c9      	bne.n	8006796 <set_sequence_step_timeout+0x44>
+ 8006802:	f10d 0206 	add.w	r2, sp, #6
+ 8006806:	2151      	movs	r1, #81	; 0x51
+ 8006808:	4628      	mov	r0, r5
+ 800680a:	f000 fd9b 	bl	8007344 <VL53L0X_RdWord>
+ 800680e:	4604      	mov	r4, r0
+ 8006810:	f8bd 0006 	ldrh.w	r0, [sp, #6]
+ 8006814:	f7ff fef3 	bl	80065fe <VL53L0X_decode_timeout>
+ 8006818:	b287      	uxth	r7, r0
+ 800681a:	2c00      	cmp	r4, #0
+ 800681c:	d1bb      	bne.n	8006796 <set_sequence_step_timeout+0x44>
+ 800681e:	f10d 0205 	add.w	r2, sp, #5
+ 8006822:	2101      	movs	r1, #1
+ 8006824:	4628      	mov	r0, r5
+ 8006826:	f7fe fac7 	bl	8004db8 <VL53L0X_GetVcselPulsePeriod>
+ 800682a:	4604      	mov	r4, r0
+ 800682c:	2800      	cmp	r0, #0
+ 800682e:	d1b2      	bne.n	8006796 <set_sequence_step_timeout+0x44>
+ 8006830:	f89d 2005 	ldrb.w	r2, [sp, #5]
+ 8006834:	4631      	mov	r1, r6
+ 8006836:	4628      	mov	r0, r5
+ 8006838:	f7ff fee8 	bl	800660c <VL53L0X_calc_timeout_mclks>
+ 800683c:	4438      	add	r0, r7
+ 800683e:	f7ff fecf 	bl	80065e0 <VL53L0X_encode_timeout>
+ 8006842:	2171      	movs	r1, #113	; 0x71
+ 8006844:	4602      	mov	r2, r0
+ 8006846:	4628      	mov	r0, r5
+ 8006848:	f000 fd3e 	bl	80072c8 <VL53L0X_WrWord>
+ 800684c:	4604      	mov	r4, r0
+ 800684e:	2800      	cmp	r0, #0
+ 8006850:	d1a1      	bne.n	8006796 <set_sequence_step_timeout+0x44>
+ 8006852:	f8c5 60dc 	str.w	r6, [r5, #220]	; 0xdc
+ 8006856:	e79e      	b.n	8006796 <set_sequence_step_timeout+0x44>
+ 8006858:	f06f 0403 	mvn.w	r4, #3
+ 800685c:	e79b      	b.n	8006796 <set_sequence_step_timeout+0x44>
+
+0800685e <VL53L0X_set_vcsel_pulse_period>:
+ 800685e:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8006860:	b085      	sub	sp, #20
+ 8006862:	2300      	movs	r3, #0
+ 8006864:	f88d 3003 	strb.w	r3, [sp, #3]
+ 8006868:	07d3      	lsls	r3, r2, #31
+ 800686a:	4605      	mov	r5, r0
+ 800686c:	460f      	mov	r7, r1
+ 800686e:	4616      	mov	r6, r2
+ 8006870:	d405      	bmi.n	800687e <VL53L0X_set_vcsel_pulse_period+0x20>
+ 8006872:	b939      	cbnz	r1, 8006884 <VL53L0X_set_vcsel_pulse_period+0x26>
+ 8006874:	f1a2 030c 	sub.w	r3, r2, #12
+ 8006878:	b2da      	uxtb	r2, r3
+ 800687a:	2a06      	cmp	r2, #6
+ 800687c:	d911      	bls.n	80068a2 <VL53L0X_set_vcsel_pulse_period+0x44>
+ 800687e:	f06f 0003 	mvn.w	r0, #3
+ 8006882:	e0e6      	b.n	8006a52 <VL53L0X_set_vcsel_pulse_period+0x1f4>
+ 8006884:	2901      	cmp	r1, #1
+ 8006886:	d121      	bne.n	80068cc <VL53L0X_set_vcsel_pulse_period+0x6e>
+ 8006888:	f1a2 0308 	sub.w	r3, r2, #8
+ 800688c:	b2da      	uxtb	r2, r3
+ 800688e:	2a06      	cmp	r2, #6
+ 8006890:	d8f5      	bhi.n	800687e <VL53L0X_set_vcsel_pulse_period+0x20>
+ 8006892:	2b06      	cmp	r3, #6
+ 8006894:	d81a      	bhi.n	80068cc <VL53L0X_set_vcsel_pulse_period+0x6e>
+ 8006896:	e8df f003 	tbb	[pc, r3]
+ 800689a:	193b      	.short	0x193b
+ 800689c:	198a1969 	.word	0x198a1969
+ 80068a0:	9d          	.byte	0x9d
+ 80068a1:	00          	.byte	0x00
+ 80068a2:	2b06      	cmp	r3, #6
+ 80068a4:	d812      	bhi.n	80068cc <VL53L0X_set_vcsel_pulse_period+0x6e>
+ 80068a6:	e8df f003 	tbb	[pc, r3]
+ 80068aa:	1104      	.short	0x1104
+ 80068ac:	112f112d 	.word	0x112f112d
+ 80068b0:	31          	.byte	0x31
+ 80068b1:	00          	.byte	0x00
+ 80068b2:	2218      	movs	r2, #24
+ 80068b4:	2157      	movs	r1, #87	; 0x57
+ 80068b6:	4628      	mov	r0, r5
+ 80068b8:	f000 fcf6 	bl	80072a8 <VL53L0X_WrByte>
+ 80068bc:	2208      	movs	r2, #8
+ 80068be:	2156      	movs	r1, #86	; 0x56
+ 80068c0:	4628      	mov	r0, r5
+ 80068c2:	f000 fcf1 	bl	80072a8 <VL53L0X_WrByte>
+ 80068c6:	2800      	cmp	r0, #0
+ 80068c8:	f040 80c3 	bne.w	8006a52 <VL53L0X_set_vcsel_pulse_period+0x1f4>
+ 80068cc:	0874      	lsrs	r4, r6, #1
+ 80068ce:	3c01      	subs	r4, #1
+ 80068d0:	b2e4      	uxtb	r4, r4
+ 80068d2:	2f00      	cmp	r7, #0
+ 80068d4:	f000 8091 	beq.w	80069fa <VL53L0X_set_vcsel_pulse_period+0x19c>
+ 80068d8:	2f01      	cmp	r7, #1
+ 80068da:	d1d0      	bne.n	800687e <VL53L0X_set_vcsel_pulse_period+0x20>
+ 80068dc:	aa01      	add	r2, sp, #4
+ 80068de:	2104      	movs	r1, #4
+ 80068e0:	4628      	mov	r0, r5
+ 80068e2:	f7ff feb7 	bl	8006654 <get_sequence_step_timeout>
+ 80068e6:	b950      	cbnz	r0, 80068fe <VL53L0X_set_vcsel_pulse_period+0xa0>
+ 80068e8:	4622      	mov	r2, r4
+ 80068ea:	2170      	movs	r1, #112	; 0x70
+ 80068ec:	4628      	mov	r0, r5
+ 80068ee:	f000 fcdb 	bl	80072a8 <VL53L0X_WrByte>
+ 80068f2:	b920      	cbnz	r0, 80068fe <VL53L0X_set_vcsel_pulse_period+0xa0>
+ 80068f4:	9a01      	ldr	r2, [sp, #4]
+ 80068f6:	2104      	movs	r1, #4
+ 80068f8:	4628      	mov	r0, r5
+ 80068fa:	f7ff ff2a 	bl	8006752 <set_sequence_step_timeout>
+ 80068fe:	f885 60e0 	strb.w	r6, [r5, #224]	; 0xe0
+ 8006902:	e099      	b.n	8006a38 <VL53L0X_set_vcsel_pulse_period+0x1da>
+ 8006904:	2230      	movs	r2, #48	; 0x30
+ 8006906:	e7d5      	b.n	80068b4 <VL53L0X_set_vcsel_pulse_period+0x56>
+ 8006908:	2240      	movs	r2, #64	; 0x40
+ 800690a:	e7d3      	b.n	80068b4 <VL53L0X_set_vcsel_pulse_period+0x56>
+ 800690c:	2250      	movs	r2, #80	; 0x50
+ 800690e:	e7d1      	b.n	80068b4 <VL53L0X_set_vcsel_pulse_period+0x56>
+ 8006910:	2210      	movs	r2, #16
+ 8006912:	2148      	movs	r1, #72	; 0x48
+ 8006914:	f000 fcc8 	bl	80072a8 <VL53L0X_WrByte>
+ 8006918:	2208      	movs	r2, #8
+ 800691a:	2147      	movs	r1, #71	; 0x47
+ 800691c:	4628      	mov	r0, r5
+ 800691e:	f000 fcc3 	bl	80072a8 <VL53L0X_WrByte>
+ 8006922:	2202      	movs	r2, #2
+ 8006924:	4604      	mov	r4, r0
+ 8006926:	2132      	movs	r1, #50	; 0x32
+ 8006928:	4628      	mov	r0, r5
+ 800692a:	f000 fcbd 	bl	80072a8 <VL53L0X_WrByte>
+ 800692e:	220c      	movs	r2, #12
+ 8006930:	4304      	orrs	r4, r0
+ 8006932:	2130      	movs	r1, #48	; 0x30
+ 8006934:	4628      	mov	r0, r5
+ 8006936:	f000 fcb7 	bl	80072a8 <VL53L0X_WrByte>
+ 800693a:	b264      	sxtb	r4, r4
+ 800693c:	4304      	orrs	r4, r0
+ 800693e:	2201      	movs	r2, #1
+ 8006940:	21ff      	movs	r1, #255	; 0xff
+ 8006942:	4628      	mov	r0, r5
+ 8006944:	f000 fcb0 	bl	80072a8 <VL53L0X_WrByte>
+ 8006948:	b264      	sxtb	r4, r4
+ 800694a:	4304      	orrs	r4, r0
+ 800694c:	b264      	sxtb	r4, r4
+ 800694e:	2230      	movs	r2, #48	; 0x30
+ 8006950:	2130      	movs	r1, #48	; 0x30
+ 8006952:	4628      	mov	r0, r5
+ 8006954:	f000 fca8 	bl	80072a8 <VL53L0X_WrByte>
+ 8006958:	2200      	movs	r2, #0
+ 800695a:	4304      	orrs	r4, r0
+ 800695c:	21ff      	movs	r1, #255	; 0xff
+ 800695e:	4628      	mov	r0, r5
+ 8006960:	f000 fca2 	bl	80072a8 <VL53L0X_WrByte>
+ 8006964:	b264      	sxtb	r4, r4
+ 8006966:	4320      	orrs	r0, r4
+ 8006968:	b240      	sxtb	r0, r0
+ 800696a:	e7ac      	b.n	80068c6 <VL53L0X_set_vcsel_pulse_period+0x68>
+ 800696c:	2228      	movs	r2, #40	; 0x28
+ 800696e:	2148      	movs	r1, #72	; 0x48
+ 8006970:	f000 fc9a 	bl	80072a8 <VL53L0X_WrByte>
+ 8006974:	2208      	movs	r2, #8
+ 8006976:	2147      	movs	r1, #71	; 0x47
+ 8006978:	4628      	mov	r0, r5
+ 800697a:	f000 fc95 	bl	80072a8 <VL53L0X_WrByte>
+ 800697e:	2203      	movs	r2, #3
+ 8006980:	4604      	mov	r4, r0
+ 8006982:	2132      	movs	r1, #50	; 0x32
+ 8006984:	4628      	mov	r0, r5
+ 8006986:	f000 fc8f 	bl	80072a8 <VL53L0X_WrByte>
+ 800698a:	4304      	orrs	r4, r0
+ 800698c:	b264      	sxtb	r4, r4
+ 800698e:	2209      	movs	r2, #9
+ 8006990:	2130      	movs	r1, #48	; 0x30
+ 8006992:	4628      	mov	r0, r5
+ 8006994:	f000 fc88 	bl	80072a8 <VL53L0X_WrByte>
+ 8006998:	2201      	movs	r2, #1
+ 800699a:	4304      	orrs	r4, r0
+ 800699c:	21ff      	movs	r1, #255	; 0xff
+ 800699e:	4628      	mov	r0, r5
+ 80069a0:	f000 fc82 	bl	80072a8 <VL53L0X_WrByte>
+ 80069a4:	b264      	sxtb	r4, r4
+ 80069a6:	4304      	orrs	r4, r0
+ 80069a8:	b264      	sxtb	r4, r4
+ 80069aa:	2220      	movs	r2, #32
+ 80069ac:	e7d0      	b.n	8006950 <VL53L0X_set_vcsel_pulse_period+0xf2>
+ 80069ae:	2238      	movs	r2, #56	; 0x38
+ 80069b0:	2148      	movs	r1, #72	; 0x48
+ 80069b2:	f000 fc79 	bl	80072a8 <VL53L0X_WrByte>
+ 80069b6:	2208      	movs	r2, #8
+ 80069b8:	2147      	movs	r1, #71	; 0x47
+ 80069ba:	4628      	mov	r0, r5
+ 80069bc:	f000 fc74 	bl	80072a8 <VL53L0X_WrByte>
+ 80069c0:	2203      	movs	r2, #3
+ 80069c2:	4604      	mov	r4, r0
+ 80069c4:	2132      	movs	r1, #50	; 0x32
+ 80069c6:	4628      	mov	r0, r5
+ 80069c8:	f000 fc6e 	bl	80072a8 <VL53L0X_WrByte>
+ 80069cc:	4304      	orrs	r4, r0
+ 80069ce:	b264      	sxtb	r4, r4
+ 80069d0:	2208      	movs	r2, #8
+ 80069d2:	e7dd      	b.n	8006990 <VL53L0X_set_vcsel_pulse_period+0x132>
+ 80069d4:	2248      	movs	r2, #72	; 0x48
+ 80069d6:	4611      	mov	r1, r2
+ 80069d8:	f000 fc66 	bl	80072a8 <VL53L0X_WrByte>
+ 80069dc:	2208      	movs	r2, #8
+ 80069de:	2147      	movs	r1, #71	; 0x47
+ 80069e0:	4628      	mov	r0, r5
+ 80069e2:	f000 fc61 	bl	80072a8 <VL53L0X_WrByte>
+ 80069e6:	2203      	movs	r2, #3
+ 80069e8:	4604      	mov	r4, r0
+ 80069ea:	2132      	movs	r1, #50	; 0x32
+ 80069ec:	4628      	mov	r0, r5
+ 80069ee:	f000 fc5b 	bl	80072a8 <VL53L0X_WrByte>
+ 80069f2:	4304      	orrs	r4, r0
+ 80069f4:	b264      	sxtb	r4, r4
+ 80069f6:	2207      	movs	r2, #7
+ 80069f8:	e7ca      	b.n	8006990 <VL53L0X_set_vcsel_pulse_period+0x132>
+ 80069fa:	aa02      	add	r2, sp, #8
+ 80069fc:	2103      	movs	r1, #3
+ 80069fe:	4628      	mov	r0, r5
+ 8006a00:	f7ff fe28 	bl	8006654 <get_sequence_step_timeout>
+ 8006a04:	b9b0      	cbnz	r0, 8006a34 <VL53L0X_set_vcsel_pulse_period+0x1d6>
+ 8006a06:	aa03      	add	r2, sp, #12
+ 8006a08:	2102      	movs	r1, #2
+ 8006a0a:	4628      	mov	r0, r5
+ 8006a0c:	f7ff fe22 	bl	8006654 <get_sequence_step_timeout>
+ 8006a10:	b980      	cbnz	r0, 8006a34 <VL53L0X_set_vcsel_pulse_period+0x1d6>
+ 8006a12:	4622      	mov	r2, r4
+ 8006a14:	2150      	movs	r1, #80	; 0x50
+ 8006a16:	4628      	mov	r0, r5
+ 8006a18:	f000 fc46 	bl	80072a8 <VL53L0X_WrByte>
+ 8006a1c:	b950      	cbnz	r0, 8006a34 <VL53L0X_set_vcsel_pulse_period+0x1d6>
+ 8006a1e:	9a02      	ldr	r2, [sp, #8]
+ 8006a20:	2103      	movs	r1, #3
+ 8006a22:	4628      	mov	r0, r5
+ 8006a24:	f7ff fe95 	bl	8006752 <set_sequence_step_timeout>
+ 8006a28:	b920      	cbnz	r0, 8006a34 <VL53L0X_set_vcsel_pulse_period+0x1d6>
+ 8006a2a:	9a03      	ldr	r2, [sp, #12]
+ 8006a2c:	2102      	movs	r1, #2
+ 8006a2e:	4628      	mov	r0, r5
+ 8006a30:	f7ff fe8f 	bl	8006752 <set_sequence_step_timeout>
+ 8006a34:	f885 60e8 	strb.w	r6, [r5, #232]	; 0xe8
+ 8006a38:	b958      	cbnz	r0, 8006a52 <VL53L0X_set_vcsel_pulse_period+0x1f4>
+ 8006a3a:	6969      	ldr	r1, [r5, #20]
+ 8006a3c:	4628      	mov	r0, r5
+ 8006a3e:	f7fe f9b7 	bl	8004db0 <VL53L0X_SetMeasurementTimingBudgetMicroSeconds>
+ 8006a42:	b930      	cbnz	r0, 8006a52 <VL53L0X_set_vcsel_pulse_period+0x1f4>
+ 8006a44:	4602      	mov	r2, r0
+ 8006a46:	2301      	movs	r3, #1
+ 8006a48:	f10d 0103 	add.w	r1, sp, #3
+ 8006a4c:	4628      	mov	r0, r5
+ 8006a4e:	f7ff f93c 	bl	8005cca <VL53L0X_perform_phase_calibration>
+ 8006a52:	b005      	add	sp, #20
+ 8006a54:	bdf0      	pop	{r4, r5, r6, r7, pc}
+
+08006a56 <VL53L0X_get_vcsel_pulse_period>:
+ 8006a56:	b513      	push	{r0, r1, r4, lr}
+ 8006a58:	4614      	mov	r4, r2
+ 8006a5a:	b129      	cbz	r1, 8006a68 <VL53L0X_get_vcsel_pulse_period+0x12>
+ 8006a5c:	2901      	cmp	r1, #1
+ 8006a5e:	d010      	beq.n	8006a82 <VL53L0X_get_vcsel_pulse_period+0x2c>
+ 8006a60:	f06f 0003 	mvn.w	r0, #3
+ 8006a64:	b002      	add	sp, #8
+ 8006a66:	bd10      	pop	{r4, pc}
+ 8006a68:	f10d 0207 	add.w	r2, sp, #7
+ 8006a6c:	2150      	movs	r1, #80	; 0x50
+ 8006a6e:	f000 fc3d 	bl	80072ec <VL53L0X_RdByte>
+ 8006a72:	2800      	cmp	r0, #0
+ 8006a74:	d1f6      	bne.n	8006a64 <VL53L0X_get_vcsel_pulse_period+0xe>
+ 8006a76:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8006a7a:	3301      	adds	r3, #1
+ 8006a7c:	005b      	lsls	r3, r3, #1
+ 8006a7e:	7023      	strb	r3, [r4, #0]
+ 8006a80:	e7f0      	b.n	8006a64 <VL53L0X_get_vcsel_pulse_period+0xe>
+ 8006a82:	f10d 0207 	add.w	r2, sp, #7
+ 8006a86:	2170      	movs	r1, #112	; 0x70
+ 8006a88:	e7f1      	b.n	8006a6e <VL53L0X_get_vcsel_pulse_period+0x18>
+
+08006a8a <VL53L0X_set_measurement_timing_budget_micro_seconds>:
+ 8006a8a:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8006a8c:	2300      	movs	r3, #0
+ 8006a8e:	b085      	sub	sp, #20
+ 8006a90:	f44f 62fa 	mov.w	r2, #2000	; 0x7d0
+ 8006a94:	e9cd 2300 	strd	r2, r3, [sp]
+ 8006a98:	f644 631f 	movw	r3, #19999	; 0x4e1f
+ 8006a9c:	4299      	cmp	r1, r3
+ 8006a9e:	4606      	mov	r6, r0
+ 8006aa0:	460f      	mov	r7, r1
+ 8006aa2:	d804      	bhi.n	8006aae <VL53L0X_set_measurement_timing_budget_micro_seconds+0x24>
+ 8006aa4:	f06f 0503 	mvn.w	r5, #3
+ 8006aa8:	4628      	mov	r0, r5
+ 8006aaa:	b005      	add	sp, #20
+ 8006aac:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8006aae:	a902      	add	r1, sp, #8
+ 8006ab0:	f7fe f9d6 	bl	8004e60 <VL53L0X_GetSequenceStepEnables>
+ 8006ab4:	4605      	mov	r5, r0
+ 8006ab6:	2800      	cmp	r0, #0
+ 8006ab8:	d1f6      	bne.n	8006aa8 <VL53L0X_set_measurement_timing_budget_micro_seconds+0x1e>
+ 8006aba:	f89d 2009 	ldrb.w	r2, [sp, #9]
+ 8006abe:	f89d 3008 	ldrb.w	r3, [sp, #8]
+ 8006ac2:	4313      	orrs	r3, r2
+ 8006ac4:	f89d 200a 	ldrb.w	r2, [sp, #10]
+ 8006ac8:	4313      	orrs	r3, r2
+ 8006aca:	f6a7 3436 	subw	r4, r7, #2870	; 0xb36
+ 8006ace:	d01b      	beq.n	8006b08 <VL53L0X_set_measurement_timing_budget_micro_seconds+0x7e>
+ 8006ad0:	466a      	mov	r2, sp
+ 8006ad2:	2102      	movs	r1, #2
+ 8006ad4:	4630      	mov	r0, r6
+ 8006ad6:	f7ff fdbd 	bl	8006654 <get_sequence_step_timeout>
+ 8006ada:	2800      	cmp	r0, #0
+ 8006adc:	d13b      	bne.n	8006b56 <VL53L0X_set_measurement_timing_budget_micro_seconds+0xcc>
+ 8006ade:	f89d 3008 	ldrb.w	r3, [sp, #8]
+ 8006ae2:	b12b      	cbz	r3, 8006af0 <VL53L0X_set_measurement_timing_budget_micro_seconds+0x66>
+ 8006ae4:	9b00      	ldr	r3, [sp, #0]
+ 8006ae6:	f203 234e 	addw	r3, r3, #590	; 0x24e
+ 8006aea:	429c      	cmp	r4, r3
+ 8006aec:	d9da      	bls.n	8006aa4 <VL53L0X_set_measurement_timing_budget_micro_seconds+0x1a>
+ 8006aee:	1ae4      	subs	r4, r4, r3
+ 8006af0:	f89d 300a 	ldrb.w	r3, [sp, #10]
+ 8006af4:	b323      	cbz	r3, 8006b40 <VL53L0X_set_measurement_timing_budget_micro_seconds+0xb6>
+ 8006af6:	9b00      	ldr	r3, [sp, #0]
+ 8006af8:	f203 23b2 	addw	r3, r3, #690	; 0x2b2
+ 8006afc:	ebb4 0f43 	cmp.w	r4, r3, lsl #1
+ 8006b00:	ea4f 0243 	mov.w	r2, r3, lsl #1
+ 8006b04:	d9ce      	bls.n	8006aa4 <VL53L0X_set_measurement_timing_budget_micro_seconds+0x1a>
+ 8006b06:	1aa4      	subs	r4, r4, r2
+ 8006b08:	f89d 300b 	ldrb.w	r3, [sp, #11]
+ 8006b0c:	b15b      	cbz	r3, 8006b26 <VL53L0X_set_measurement_timing_budget_micro_seconds+0x9c>
+ 8006b0e:	aa01      	add	r2, sp, #4
+ 8006b10:	2103      	movs	r1, #3
+ 8006b12:	4630      	mov	r0, r6
+ 8006b14:	f7ff fd9e 	bl	8006654 <get_sequence_step_timeout>
+ 8006b18:	9b01      	ldr	r3, [sp, #4]
+ 8006b1a:	f503 7325 	add.w	r3, r3, #660	; 0x294
+ 8006b1e:	42a3      	cmp	r3, r4
+ 8006b20:	d2c0      	bcs.n	8006aa4 <VL53L0X_set_measurement_timing_budget_micro_seconds+0x1a>
+ 8006b22:	b9c0      	cbnz	r0, 8006b56 <VL53L0X_set_measurement_timing_budget_micro_seconds+0xcc>
+ 8006b24:	1ae4      	subs	r4, r4, r3
+ 8006b26:	f89d 300c 	ldrb.w	r3, [sp, #12]
+ 8006b2a:	2b00      	cmp	r3, #0
+ 8006b2c:	d0bc      	beq.n	8006aa8 <VL53L0X_set_measurement_timing_budget_micro_seconds+0x1e>
+ 8006b2e:	f2a4 2226 	subw	r2, r4, #550	; 0x226
+ 8006b32:	2104      	movs	r1, #4
+ 8006b34:	4630      	mov	r0, r6
+ 8006b36:	f7ff fe0c 	bl	8006752 <set_sequence_step_timeout>
+ 8006b3a:	6177      	str	r7, [r6, #20]
+ 8006b3c:	4605      	mov	r5, r0
+ 8006b3e:	e7b3      	b.n	8006aa8 <VL53L0X_set_measurement_timing_budget_micro_seconds+0x1e>
+ 8006b40:	f89d 3009 	ldrb.w	r3, [sp, #9]
+ 8006b44:	2b00      	cmp	r3, #0
+ 8006b46:	d0df      	beq.n	8006b08 <VL53L0X_set_measurement_timing_budget_micro_seconds+0x7e>
+ 8006b48:	9b00      	ldr	r3, [sp, #0]
+ 8006b4a:	f503 7325 	add.w	r3, r3, #660	; 0x294
+ 8006b4e:	429c      	cmp	r4, r3
+ 8006b50:	d9a8      	bls.n	8006aa4 <VL53L0X_set_measurement_timing_budget_micro_seconds+0x1a>
+ 8006b52:	1ae4      	subs	r4, r4, r3
+ 8006b54:	e7d8      	b.n	8006b08 <VL53L0X_set_measurement_timing_budget_micro_seconds+0x7e>
+ 8006b56:	4605      	mov	r5, r0
+ 8006b58:	e7a6      	b.n	8006aa8 <VL53L0X_set_measurement_timing_budget_micro_seconds+0x1e>
+
+08006b5a <VL53L0X_get_measurement_timing_budget_micro_seconds>:
+ 8006b5a:	b570      	push	{r4, r5, r6, lr}
+ 8006b5c:	f44f 62fa 	mov.w	r2, #2000	; 0x7d0
+ 8006b60:	b086      	sub	sp, #24
+ 8006b62:	2300      	movs	r3, #0
+ 8006b64:	e9cd 2302 	strd	r2, r3, [sp, #8]
+ 8006b68:	f640 3336 	movw	r3, #2870	; 0xb36
+ 8006b6c:	600b      	str	r3, [r1, #0]
+ 8006b6e:	460c      	mov	r4, r1
+ 8006b70:	a904      	add	r1, sp, #16
+ 8006b72:	4606      	mov	r6, r0
+ 8006b74:	f7fe f974 	bl	8004e60 <VL53L0X_GetSequenceStepEnables>
+ 8006b78:	4605      	mov	r5, r0
+ 8006b7a:	2800      	cmp	r0, #0
+ 8006b7c:	d136      	bne.n	8006bec <VL53L0X_get_measurement_timing_budget_micro_seconds+0x92>
+ 8006b7e:	f89d 2011 	ldrb.w	r2, [sp, #17]
+ 8006b82:	f89d 3010 	ldrb.w	r3, [sp, #16]
+ 8006b86:	4313      	orrs	r3, r2
+ 8006b88:	f89d 2012 	ldrb.w	r2, [sp, #18]
+ 8006b8c:	4313      	orrs	r3, r2
+ 8006b8e:	d019      	beq.n	8006bc4 <VL53L0X_get_measurement_timing_budget_micro_seconds+0x6a>
+ 8006b90:	aa02      	add	r2, sp, #8
+ 8006b92:	2102      	movs	r1, #2
+ 8006b94:	4630      	mov	r0, r6
+ 8006b96:	f7ff fd5d 	bl	8006654 <get_sequence_step_timeout>
+ 8006b9a:	2800      	cmp	r0, #0
+ 8006b9c:	d140      	bne.n	8006c20 <VL53L0X_get_measurement_timing_budget_micro_seconds+0xc6>
+ 8006b9e:	f89d 3010 	ldrb.w	r3, [sp, #16]
+ 8006ba2:	b12b      	cbz	r3, 8006bb0 <VL53L0X_get_measurement_timing_budget_micro_seconds+0x56>
+ 8006ba4:	9b02      	ldr	r3, [sp, #8]
+ 8006ba6:	f203 224e 	addw	r2, r3, #590	; 0x24e
+ 8006baa:	6823      	ldr	r3, [r4, #0]
+ 8006bac:	4413      	add	r3, r2
+ 8006bae:	6023      	str	r3, [r4, #0]
+ 8006bb0:	f89d 3012 	ldrb.w	r3, [sp, #18]
+ 8006bb4:	b1eb      	cbz	r3, 8006bf2 <VL53L0X_get_measurement_timing_budget_micro_seconds+0x98>
+ 8006bb6:	9b02      	ldr	r3, [sp, #8]
+ 8006bb8:	f203 22b2 	addw	r2, r3, #690	; 0x2b2
+ 8006bbc:	6823      	ldr	r3, [r4, #0]
+ 8006bbe:	eb03 0342 	add.w	r3, r3, r2, lsl #1
+ 8006bc2:	6023      	str	r3, [r4, #0]
+ 8006bc4:	f89d 3013 	ldrb.w	r3, [sp, #19]
+ 8006bc8:	b9eb      	cbnz	r3, 8006c06 <VL53L0X_get_measurement_timing_budget_micro_seconds+0xac>
+ 8006bca:	f89d 3014 	ldrb.w	r3, [sp, #20]
+ 8006bce:	b15b      	cbz	r3, 8006be8 <VL53L0X_get_measurement_timing_budget_micro_seconds+0x8e>
+ 8006bd0:	aa01      	add	r2, sp, #4
+ 8006bd2:	2104      	movs	r1, #4
+ 8006bd4:	4630      	mov	r0, r6
+ 8006bd6:	f7ff fd3d 	bl	8006654 <get_sequence_step_timeout>
+ 8006bda:	9b01      	ldr	r3, [sp, #4]
+ 8006bdc:	f203 2226 	addw	r2, r3, #550	; 0x226
+ 8006be0:	6823      	ldr	r3, [r4, #0]
+ 8006be2:	4413      	add	r3, r2
+ 8006be4:	6023      	str	r3, [r4, #0]
+ 8006be6:	b9d8      	cbnz	r0, 8006c20 <VL53L0X_get_measurement_timing_budget_micro_seconds+0xc6>
+ 8006be8:	6823      	ldr	r3, [r4, #0]
+ 8006bea:	6173      	str	r3, [r6, #20]
+ 8006bec:	4628      	mov	r0, r5
+ 8006bee:	b006      	add	sp, #24
+ 8006bf0:	bd70      	pop	{r4, r5, r6, pc}
+ 8006bf2:	f89d 3011 	ldrb.w	r3, [sp, #17]
+ 8006bf6:	2b00      	cmp	r3, #0
+ 8006bf8:	d0e4      	beq.n	8006bc4 <VL53L0X_get_measurement_timing_budget_micro_seconds+0x6a>
+ 8006bfa:	9b02      	ldr	r3, [sp, #8]
+ 8006bfc:	f503 7225 	add.w	r2, r3, #660	; 0x294
+ 8006c00:	6823      	ldr	r3, [r4, #0]
+ 8006c02:	4413      	add	r3, r2
+ 8006c04:	e7dd      	b.n	8006bc2 <VL53L0X_get_measurement_timing_budget_micro_seconds+0x68>
+ 8006c06:	aa03      	add	r2, sp, #12
+ 8006c08:	2103      	movs	r1, #3
+ 8006c0a:	4630      	mov	r0, r6
+ 8006c0c:	f7ff fd22 	bl	8006654 <get_sequence_step_timeout>
+ 8006c10:	9b03      	ldr	r3, [sp, #12]
+ 8006c12:	f503 7225 	add.w	r2, r3, #660	; 0x294
+ 8006c16:	6823      	ldr	r3, [r4, #0]
+ 8006c18:	4413      	add	r3, r2
+ 8006c1a:	6023      	str	r3, [r4, #0]
+ 8006c1c:	2800      	cmp	r0, #0
+ 8006c1e:	d0d4      	beq.n	8006bca <VL53L0X_get_measurement_timing_budget_micro_seconds+0x70>
+ 8006c20:	4605      	mov	r5, r0
+ 8006c22:	e7e3      	b.n	8006bec <VL53L0X_get_measurement_timing_budget_micro_seconds+0x92>
+
+08006c24 <VL53L0X_load_tuning_settings>:
+ 8006c24:	e92d 43f7 	stmdb	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
+ 8006c28:	2400      	movs	r4, #0
+ 8006c2a:	4606      	mov	r6, r0
+ 8006c2c:	460d      	mov	r5, r1
+ 8006c2e:	4620      	mov	r0, r4
+ 8006c30:	f815 8004 	ldrb.w	r8, [r5, r4]
+ 8006c34:	f1b8 0f00 	cmp.w	r8, #0
+ 8006c38:	d000      	beq.n	8006c3c <VL53L0X_load_tuning_settings+0x18>
+ 8006c3a:	b110      	cbz	r0, 8006c42 <VL53L0X_load_tuning_settings+0x1e>
+ 8006c3c:	b003      	add	sp, #12
+ 8006c3e:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
+ 8006c42:	1c67      	adds	r7, r4, #1
+ 8006c44:	f1b8 0fff 	cmp.w	r8, #255	; 0xff
+ 8006c48:	f815 9007 	ldrb.w	r9, [r5, r7]
+ 8006c4c:	d129      	bne.n	8006ca2 <VL53L0X_load_tuning_settings+0x7e>
+ 8006c4e:	1ca7      	adds	r7, r4, #2
+ 8006c50:	5deb      	ldrb	r3, [r5, r7]
+ 8006c52:	f1b9 0f03 	cmp.w	r9, #3
+ 8006c56:	d836      	bhi.n	8006cc6 <VL53L0X_load_tuning_settings+0xa2>
+ 8006c58:	e8df f009 	tbb	[pc, r9]
+ 8006c5c:	1b130b02 	.word	0x1b130b02
+ 8006c60:	1d27      	adds	r7, r4, #4
+ 8006c62:	442c      	add	r4, r5
+ 8006c64:	78e2      	ldrb	r2, [r4, #3]
+ 8006c66:	eb02 2303 	add.w	r3, r2, r3, lsl #8
+ 8006c6a:	f8a6 3134 	strh.w	r3, [r6, #308]	; 0x134
+ 8006c6e:	463c      	mov	r4, r7
+ 8006c70:	e7de      	b.n	8006c30 <VL53L0X_load_tuning_settings+0xc>
+ 8006c72:	1d27      	adds	r7, r4, #4
+ 8006c74:	442c      	add	r4, r5
+ 8006c76:	78e2      	ldrb	r2, [r4, #3]
+ 8006c78:	eb02 2303 	add.w	r3, r2, r3, lsl #8
+ 8006c7c:	f8a6 3136 	strh.w	r3, [r6, #310]	; 0x136
+ 8006c80:	e7f5      	b.n	8006c6e <VL53L0X_load_tuning_settings+0x4a>
+ 8006c82:	1d27      	adds	r7, r4, #4
+ 8006c84:	442c      	add	r4, r5
+ 8006c86:	78e2      	ldrb	r2, [r4, #3]
+ 8006c88:	eb02 2303 	add.w	r3, r2, r3, lsl #8
+ 8006c8c:	f8a6 3138 	strh.w	r3, [r6, #312]	; 0x138
+ 8006c90:	e7ed      	b.n	8006c6e <VL53L0X_load_tuning_settings+0x4a>
+ 8006c92:	1d27      	adds	r7, r4, #4
+ 8006c94:	442c      	add	r4, r5
+ 8006c96:	78e2      	ldrb	r2, [r4, #3]
+ 8006c98:	eb02 2303 	add.w	r3, r2, r3, lsl #8
+ 8006c9c:	f8a6 313c 	strh.w	r3, [r6, #316]	; 0x13c
+ 8006ca0:	e7e5      	b.n	8006c6e <VL53L0X_load_tuning_settings+0x4a>
+ 8006ca2:	f1b8 0f04 	cmp.w	r8, #4
+ 8006ca6:	d80e      	bhi.n	8006cc6 <VL53L0X_load_tuning_settings+0xa2>
+ 8006ca8:	3402      	adds	r4, #2
+ 8006caa:	4642      	mov	r2, r8
+ 8006cac:	1929      	adds	r1, r5, r4
+ 8006cae:	a801      	add	r0, sp, #4
+ 8006cb0:	f00d fb07 	bl	80142c2 <memcpy>
+ 8006cb4:	4643      	mov	r3, r8
+ 8006cb6:	aa01      	add	r2, sp, #4
+ 8006cb8:	4649      	mov	r1, r9
+ 8006cba:	4630      	mov	r0, r6
+ 8006cbc:	eb04 0708 	add.w	r7, r4, r8
+ 8006cc0:	f000 fabe 	bl	8007240 <VL53L0X_WriteMulti>
+ 8006cc4:	e7d3      	b.n	8006c6e <VL53L0X_load_tuning_settings+0x4a>
+ 8006cc6:	f06f 0003 	mvn.w	r0, #3
+ 8006cca:	e7d0      	b.n	8006c6e <VL53L0X_load_tuning_settings+0x4a>
+
+08006ccc <VL53L0X_get_total_xtalk_rate>:
+ 8006ccc:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 8006cce:	2300      	movs	r3, #0
+ 8006cd0:	460e      	mov	r6, r1
+ 8006cd2:	6013      	str	r3, [r2, #0]
+ 8006cd4:	f10d 0107 	add.w	r1, sp, #7
+ 8006cd8:	4605      	mov	r5, r0
+ 8006cda:	4614      	mov	r4, r2
+ 8006cdc:	f7fe f8f7 	bl	8004ece <VL53L0X_GetXTalkCompensationEnable>
+ 8006ce0:	b940      	cbnz	r0, 8006cf4 <VL53L0X_get_total_xtalk_rate+0x28>
+ 8006ce2:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8006ce6:	b12b      	cbz	r3, 8006cf4 <VL53L0X_get_total_xtalk_rate+0x28>
+ 8006ce8:	8ab3      	ldrh	r3, [r6, #20]
+ 8006cea:	6a2a      	ldr	r2, [r5, #32]
+ 8006cec:	4353      	muls	r3, r2
+ 8006cee:	3380      	adds	r3, #128	; 0x80
+ 8006cf0:	0a1b      	lsrs	r3, r3, #8
+ 8006cf2:	6023      	str	r3, [r4, #0]
+ 8006cf4:	b002      	add	sp, #8
+ 8006cf6:	bd70      	pop	{r4, r5, r6, pc}
+
+08006cf8 <VL53L0X_get_total_signal_rate>:
+ 8006cf8:	b513      	push	{r0, r1, r4, lr}
+ 8006cfa:	68cb      	ldr	r3, [r1, #12]
+ 8006cfc:	6013      	str	r3, [r2, #0]
+ 8006cfe:	4614      	mov	r4, r2
+ 8006d00:	aa01      	add	r2, sp, #4
+ 8006d02:	f7ff ffe3 	bl	8006ccc <VL53L0X_get_total_xtalk_rate>
+ 8006d06:	b918      	cbnz	r0, 8006d10 <VL53L0X_get_total_signal_rate+0x18>
+ 8006d08:	6823      	ldr	r3, [r4, #0]
+ 8006d0a:	9a01      	ldr	r2, [sp, #4]
+ 8006d0c:	4413      	add	r3, r2
+ 8006d0e:	6023      	str	r3, [r4, #0]
+ 8006d10:	b002      	add	sp, #8
+ 8006d12:	bd10      	pop	{r4, pc}
+
+08006d14 <VL53L0X_calc_dmax>:
+ 8006d14:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 8006d16:	f8b0 5154 	ldrh.w	r5, [r0, #340]	; 0x154
+ 8006d1a:	f8d0 0158 	ldr.w	r0, [r0, #344]	; 0x158
+ 8006d1e:	4368      	muls	r0, r5
+ 8006d20:	3080      	adds	r0, #128	; 0x80
+ 8006d22:	0a00      	lsrs	r0, r0, #8
+ 8006d24:	460e      	mov	r6, r1
+ 8006d26:	4345      	muls	r5, r0
+ 8006d28:	e9dd 1707 	ldrd	r1, r7, [sp, #28]
+ 8006d2c:	4614      	mov	r4, r2
+ 8006d2e:	b152      	cbz	r2, 8006d46 <VL53L0X_calc_dmax+0x32>
+ 8006d30:	02b6      	lsls	r6, r6, #10
+ 8006d32:	eb06 0252 	add.w	r2, r6, r2, lsr #1
+ 8006d36:	fbb2 f2f4 	udiv	r2, r2, r4
+ 8006d3a:	eb02 0242 	add.w	r2, r2, r2, lsl #1
+ 8006d3e:	4352      	muls	r2, r2
+ 8006d40:	f502 4200 	add.w	r2, r2, #32768	; 0x8000
+ 8006d44:	0c14      	lsrs	r4, r2, #16
+ 8006d46:	9a06      	ldr	r2, [sp, #24]
+ 8006d48:	4353      	muls	r3, r2
+ 8006d4a:	f501 4200 	add.w	r2, r1, #32768	; 0x8000
+ 8006d4e:	0c12      	lsrs	r2, r2, #16
+ 8006d50:	2006      	movs	r0, #6
+ 8006d52:	3203      	adds	r2, #3
+ 8006d54:	fbb2 f2f0 	udiv	r2, r2, r0
+ 8006d58:	ebc2 02c2 	rsb	r2, r2, r2, lsl #3
+ 8006d5c:	f5b2 3f80 	cmp.w	r2, #65536	; 0x10000
+ 8006d60:	bf38      	it	cc
+ 8006d62:	3103      	addcc	r1, #3
+ 8006d64:	f503 4300 	add.w	r3, r3, #32768	; 0x8000
+ 8006d68:	bf3e      	ittt	cc
+ 8006d6a:	fbb1 f1f0 	udivcc	r1, r1, r0
+ 8006d6e:	ebc1 01c1 	rsbcc	r1, r1, r1, lsl #3
+ 8006d72:	f501 4100 	addcc.w	r1, r1, #32768	; 0x8000
+ 8006d76:	ea4f 4313 	mov.w	r3, r3, lsr #16
+ 8006d7a:	bf34      	ite	cc
+ 8006d7c:	0c09      	lsrcc	r1, r1, #16
+ 8006d7e:	491b      	ldrcs	r1, [pc, #108]	; (8006dec <VL53L0X_calc_dmax+0xd8>)
+ 8006d80:	fb03 f303 	mul.w	r3, r3, r3
+ 8006d84:	bf38      	it	cc
+ 8006d86:	4349      	mulcc	r1, r1
+ 8006d88:	eb03 0357 	add.w	r3, r3, r7, lsr #1
+ 8006d8c:	440b      	add	r3, r1
+ 8006d8e:	fbb3 f3f7 	udiv	r3, r3, r7
+ 8006d92:	039b      	lsls	r3, r3, #14
+ 8006d94:	22fe      	movs	r2, #254	; 0xfe
+ 8006d96:	f105 0020 	add.w	r0, r5, #32
+ 8006d9a:	337f      	adds	r3, #127	; 0x7f
+ 8006d9c:	fbb3 f3f2 	udiv	r3, r3, r2
+ 8006da0:	435c      	muls	r4, r3
+ 8006da2:	f44f 777a 	mov.w	r7, #1000	; 0x3e8
+ 8006da6:	f504 74fa 	add.w	r4, r4, #500	; 0x1f4
+ 8006daa:	0980      	lsrs	r0, r0, #6
+ 8006dac:	fbb4 f4f7 	udiv	r4, r4, r7
+ 8006db0:	0124      	lsls	r4, r4, #4
+ 8006db2:	f7ff f92d 	bl	8006010 <VL53L0X_isqrt>
+ 8006db6:	f504 74fa 	add.w	r4, r4, #500	; 0x1f4
+ 8006dba:	42bc      	cmp	r4, r7
+ 8006dbc:	bf28      	it	cs
+ 8006dbe:	f44f 63fa 	movcs.w	r3, #2000	; 0x7d0
+ 8006dc2:	4606      	mov	r6, r0
+ 8006dc4:	bf29      	itett	cs
+ 8006dc6:	fbb4 f3f3 	udivcs	r3, r4, r3
+ 8006dca:	2000      	movcc	r0, #0
+ 8006dcc:	195b      	addcs	r3, r3, r5
+ 8006dce:	fbb4 f4f7 	udivcs	r4, r4, r7
+ 8006dd2:	bf28      	it	cs
+ 8006dd4:	fbb3 f0f4 	udivcs	r0, r3, r4
+ 8006dd8:	f7ff f91a 	bl	8006010 <VL53L0X_isqrt>
+ 8006ddc:	9b09      	ldr	r3, [sp, #36]	; 0x24
+ 8006dde:	4286      	cmp	r6, r0
+ 8006de0:	bf94      	ite	ls
+ 8006de2:	601e      	strls	r6, [r3, #0]
+ 8006de4:	6018      	strhi	r0, [r3, #0]
+ 8006de6:	2000      	movs	r0, #0
+ 8006de8:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 8006dea:	bf00      	nop
+ 8006dec:	fff00000 	.word	0xfff00000
+
+08006df0 <VL53L0X_calc_sigma_estimate>:
+ 8006df0:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8006df4:	b091      	sub	sp, #68	; 0x44
+ 8006df6:	e9cd 2307 	strd	r2, r3, [sp, #28]
+ 8006dfa:	6a03      	ldr	r3, [r0, #32]
+ 8006dfc:	930e      	str	r3, [sp, #56]	; 0x38
+ 8006dfe:	690b      	ldr	r3, [r1, #16]
+ 8006e00:	9309      	str	r3, [sp, #36]	; 0x24
+ 8006e02:	4605      	mov	r5, r0
+ 8006e04:	68cb      	ldr	r3, [r1, #12]
+ 8006e06:	930b      	str	r3, [sp, #44]	; 0x2c
+ 8006e08:	460f      	mov	r7, r1
+ 8006e0a:	aa0f      	add	r2, sp, #60	; 0x3c
+ 8006e0c:	f7ff ff74 	bl	8006cf8 <VL53L0X_get_total_signal_rate>
+ 8006e10:	aa0e      	add	r2, sp, #56	; 0x38
+ 8006e12:	4639      	mov	r1, r7
+ 8006e14:	4628      	mov	r0, r5
+ 8006e16:	f7ff ff59 	bl	8006ccc <VL53L0X_get_total_xtalk_rate>
+ 8006e1a:	bb58      	cbnz	r0, 8006e74 <VL53L0X_calc_sigma_estimate+0x84>
+ 8006e1c:	9c0f      	ldr	r4, [sp, #60]	; 0x3c
+ 8006e1e:	f895 b0e0 	ldrb.w	fp, [r5, #224]	; 0xe0
+ 8006e22:	f8d5 30dc 	ldr.w	r3, [r5, #220]	; 0xdc
+ 8006e26:	9305      	str	r3, [sp, #20]
+ 8006e28:	f44f 767a 	mov.w	r6, #1000	; 0x3e8
+ 8006e2c:	fb06 f104 	mul.w	r1, r6, r4
+ 8006e30:	f501 4100 	add.w	r1, r1, #32768	; 0x8000
+ 8006e34:	9104      	str	r1, [sp, #16]
+ 8006e36:	990e      	ldr	r1, [sp, #56]	; 0x38
+ 8006e38:	910a      	str	r1, [sp, #40]	; 0x28
+ 8006e3a:	9904      	ldr	r1, [sp, #16]
+ 8006e3c:	f8d5 30e4 	ldr.w	r3, [r5, #228]	; 0xe4
+ 8006e40:	9306      	str	r3, [sp, #24]
+ 8006e42:	f1bb 0f08 	cmp.w	fp, #8
+ 8006e46:	f104 0480 	add.w	r4, r4, #128	; 0x80
+ 8006e4a:	bf0c      	ite	eq
+ 8006e4c:	2302      	moveq	r3, #2
+ 8006e4e:	2303      	movne	r3, #3
+ 8006e50:	f024 0aff 	bic.w	sl, r4, #255	; 0xff
+ 8006e54:	0c09      	lsrs	r1, r1, #16
+ 8006e56:	f895 20e8 	ldrb.w	r2, [r5, #232]	; 0xe8
+ 8006e5a:	f8df 81a0 	ldr.w	r8, [pc, #416]	; 8006ffc <VL53L0X_calc_sigma_estimate+0x20c>
+ 8006e5e:	f8cd a03c 	str.w	sl, [sp, #60]	; 0x3c
+ 8006e62:	910c      	str	r1, [sp, #48]	; 0x30
+ 8006e64:	d109      	bne.n	8006e7a <VL53L0X_calc_sigma_estimate+0x8a>
+ 8006e66:	9b07      	ldr	r3, [sp, #28]
+ 8006e68:	f8c3 8000 	str.w	r8, [r3]
+ 8006e6c:	9b08      	ldr	r3, [sp, #32]
+ 8006e6e:	f8c5 8140 	str.w	r8, [r5, #320]	; 0x140
+ 8006e72:	6018      	str	r0, [r3, #0]
+ 8006e74:	b011      	add	sp, #68	; 0x44
+ 8006e76:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 8006e7a:	9906      	ldr	r1, [sp, #24]
+ 8006e7c:	930d      	str	r3, [sp, #52]	; 0x34
+ 8006e7e:	4628      	mov	r0, r5
+ 8006e80:	f7ff fbc4 	bl	800660c <VL53L0X_calc_timeout_mclks>
+ 8006e84:	465a      	mov	r2, fp
+ 8006e86:	9905      	ldr	r1, [sp, #20]
+ 8006e88:	4681      	mov	r9, r0
+ 8006e8a:	4628      	mov	r0, r5
+ 8006e8c:	f7ff fbbe 	bl	800660c <VL53L0X_calc_timeout_mclks>
+ 8006e90:	9b0d      	ldr	r3, [sp, #52]	; 0x34
+ 8006e92:	495b      	ldr	r1, [pc, #364]	; (8007000 <VL53L0X_calc_sigma_estimate+0x210>)
+ 8006e94:	9a0c      	ldr	r2, [sp, #48]	; 0x30
+ 8006e96:	4481      	add	r9, r0
+ 8006e98:	fb03 f909 	mul.w	r9, r3, r9
+ 8006e9c:	ea4f 29c9 	mov.w	r9, r9, lsl #11
+ 8006ea0:	f240 6377 	movw	r3, #1655	; 0x677
+ 8006ea4:	f509 79fa 	add.w	r9, r9, #500	; 0x1f4
+ 8006ea8:	0a24      	lsrs	r4, r4, #8
+ 8006eaa:	fbb9 f9f6 	udiv	r9, r9, r6
+ 8006eae:	fb03 f909 	mul.w	r9, r3, r9
+ 8006eb2:	f509 79fa 	add.w	r9, r9, #500	; 0x1f4
+ 8006eb6:	fbb9 f9f6 	udiv	r9, r9, r6
+ 8006eba:	fb09 f404 	mul.w	r4, r9, r4
+ 8006ebe:	f104 0380 	add.w	r3, r4, #128	; 0x80
+ 8006ec2:	9c09      	ldr	r4, [sp, #36]	; 0x24
+ 8006ec4:	4374      	muls	r4, r6
+ 8006ec6:	400c      	ands	r4, r1
+ 8006ec8:	fbb4 f4f2 	udiv	r4, r4, r2
+ 8006ecc:	4a4d      	ldr	r2, [pc, #308]	; (8007004 <VL53L0X_calc_sigma_estimate+0x214>)
+ 8006ece:	0a1b      	lsrs	r3, r3, #8
+ 8006ed0:	4294      	cmp	r4, r2
+ 8006ed2:	bf28      	it	cs
+ 8006ed4:	4614      	movcs	r4, r2
+ 8006ed6:	2b01      	cmp	r3, #1
+ 8006ed8:	bf38      	it	cc
+ 8006eda:	2301      	movcc	r3, #1
+ 8006edc:	200c      	movs	r0, #12
+ 8006ede:	f44f 7216 	mov.w	r2, #600	; 0x258
+ 8006ee2:	4358      	muls	r0, r3
+ 8006ee4:	4354      	muls	r4, r2
+ 8006ee6:	f7ff f893 	bl	8006010 <VL53L0X_isqrt>
+ 8006eea:	7e3b      	ldrb	r3, [r7, #24]
+ 8006eec:	893a      	ldrh	r2, [r7, #8]
+ 8006eee:	ea4f 0b40 	mov.w	fp, r0, lsl #1
+ 8006ef2:	2b00      	cmp	r3, #0
+ 8006ef4:	d17f      	bne.n	8006ff6 <VL53L0X_calc_sigma_estimate+0x206>
+ 8006ef6:	4942      	ldr	r1, [pc, #264]	; (8007000 <VL53L0X_calc_sigma_estimate+0x210>)
+ 8006ef8:	9b04      	ldr	r3, [sp, #16]
+ 8006efa:	400b      	ands	r3, r1
+ 8006efc:	f503 71fa 	add.w	r1, r3, #500	; 0x1f4
+ 8006f00:	4b41      	ldr	r3, [pc, #260]	; (8007008 <VL53L0X_calc_sigma_estimate+0x218>)
+ 8006f02:	435a      	muls	r2, r3
+ 8006f04:	f241 235c 	movw	r3, #4700	; 0x125c
+ 8006f08:	fbb2 f2f3 	udiv	r2, r2, r3
+ 8006f0c:	9b0a      	ldr	r3, [sp, #40]	; 0x28
+ 8006f0e:	4373      	muls	r3, r6
+ 8006f10:	f5b3 1f48 	cmp.w	r3, #3276800	; 0x320000
+ 8006f14:	bf28      	it	cs
+ 8006f16:	f44f 1348 	movcs.w	r3, #3276800	; 0x320000
+ 8006f1a:	eba1 0343 	sub.w	r3, r1, r3, lsl #1
+ 8006f1e:	fbb1 f1f6 	udiv	r1, r1, r6
+ 8006f22:	fbb3 f3f6 	udiv	r3, r3, r6
+ 8006f26:	021b      	lsls	r3, r3, #8
+ 8006f28:	fbb3 f6f1 	udiv	r6, r3, r1
+ 8006f2c:	0236      	lsls	r6, r6, #8
+ 8006f2e:	f5c6 3680 	rsb	r6, r6, #65536	; 0x10000
+ 8006f32:	4356      	muls	r6, r2
+ 8006f34:	f506 4600 	add.w	r6, r6, #32768	; 0x8000
+ 8006f38:	0c36      	lsrs	r6, r6, #16
+ 8006f3a:	f506 3680 	add.w	r6, r6, #65536	; 0x10000
+ 8006f3e:	0876      	lsrs	r6, r6, #1
+ 8006f40:	4376      	muls	r6, r6
+ 8006f42:	0bb6      	lsrs	r6, r6, #14
+ 8006f44:	f44f 7048 	mov.w	r0, #800	; 0x320
+ 8006f48:	4370      	muls	r0, r6
+ 8006f4a:	f504 4300 	add.w	r3, r4, #32768	; 0x8000
+ 8006f4e:	f500 4000 	add.w	r0, r0, #32768	; 0x8000
+ 8006f52:	0c1b      	lsrs	r3, r3, #16
+ 8006f54:	435b      	muls	r3, r3
+ 8006f56:	0c00      	lsrs	r0, r0, #16
+ 8006f58:	fb00 3000 	mla	r0, r0, r0, r3
+ 8006f5c:	f7ff f858 	bl	8006010 <VL53L0X_isqrt>
+ 8006f60:	0403      	lsls	r3, r0, #16
+ 8006f62:	2264      	movs	r2, #100	; 0x64
+ 8006f64:	3332      	adds	r3, #50	; 0x32
+ 8006f66:	f241 3788 	movw	r7, #5000	; 0x1388
+ 8006f6a:	fbb3 f3f2 	udiv	r3, r3, r2
+ 8006f6e:	f640 32b5 	movw	r2, #2997	; 0xbb5
+ 8006f72:	fbb3 f3fb 	udiv	r3, r3, fp
+ 8006f76:	fb02 7703 	mla	r7, r2, r3, r7
+ 8006f7a:	4b24      	ldr	r3, [pc, #144]	; (800700c <VL53L0X_calc_sigma_estimate+0x21c>)
+ 8006f7c:	429f      	cmp	r7, r3
+ 8006f7e:	bf9c      	itt	ls
+ 8006f80:	f242 7310 	movwls	r3, #10000	; 0x2710
+ 8006f84:	fbb7 f7f3 	udivls	r7, r7, r3
+ 8006f88:	e9dd 3205 	ldrd	r3, r2, [sp, #20]
+ 8006f8c:	4413      	add	r3, r2
+ 8006f8e:	f503 73fa 	add.w	r3, r3, #500	; 0x1f4
+ 8006f92:	f44f 7b7a 	mov.w	fp, #1000	; 0x3e8
+ 8006f96:	f44f 62fa 	mov.w	r2, #2000	; 0x7d0
+ 8006f9a:	fbb3 f0fb 	udiv	r0, r3, fp
+ 8006f9e:	fbb3 f2f2 	udiv	r2, r3, r2
+ 8006fa2:	f502 12c8 	add.w	r2, r2, #1638400	; 0x190000
+ 8006fa6:	fbb2 f0f0 	udiv	r0, r2, r0
+ 8006faa:	bf88      	it	hi
+ 8006fac:	f44f 4770 	movhi.w	r7, #61440	; 0xf000
+ 8006fb0:	f7ff f82e 	bl	8006010 <VL53L0X_isqrt>
+ 8006fb4:	0200      	lsls	r0, r0, #8
+ 8006fb6:	f500 70fa 	add.w	r0, r0, #500	; 0x1f4
+ 8006fba:	fbb0 f0fb 	udiv	r0, r0, fp
+ 8006fbe:	4340      	muls	r0, r0
+ 8006fc0:	fb07 0007 	mla	r0, r7, r7, r0
+ 8006fc4:	f7ff f824 	bl	8006010 <VL53L0X_isqrt>
+ 8006fc8:	fb0b f000 	mul.w	r0, fp, r0
+ 8006fcc:	9b07      	ldr	r3, [sp, #28]
+ 8006fce:	9a0b      	ldr	r2, [sp, #44]	; 0x2c
+ 8006fd0:	4540      	cmp	r0, r8
+ 8006fd2:	bf28      	it	cs
+ 8006fd4:	4640      	movcs	r0, r8
+ 8006fd6:	6018      	str	r0, [r3, #0]
+ 8006fd8:	9b08      	ldr	r3, [sp, #32]
+ 8006fda:	f8c5 0140 	str.w	r0, [r5, #320]	; 0x140
+ 8006fde:	e9cd 9302 	strd	r9, r3, [sp, #8]
+ 8006fe2:	f44f 7348 	mov.w	r3, #800	; 0x320
+ 8006fe6:	9300      	str	r3, [sp, #0]
+ 8006fe8:	9401      	str	r4, [sp, #4]
+ 8006fea:	4633      	mov	r3, r6
+ 8006fec:	4651      	mov	r1, sl
+ 8006fee:	4628      	mov	r0, r5
+ 8006ff0:	f7ff fe90 	bl	8006d14 <VL53L0X_calc_dmax>
+ 8006ff4:	e73e      	b.n	8006e74 <VL53L0X_calc_sigma_estimate+0x84>
+ 8006ff6:	f44f 3680 	mov.w	r6, #65536	; 0x10000
+ 8006ffa:	e7a3      	b.n	8006f44 <VL53L0X_calc_sigma_estimate+0x154>
+ 8006ffc:	028f87ae 	.word	0x028f87ae
+ 8007000:	ffff0000 	.word	0xffff0000
+ 8007004:	00666666 	.word	0x00666666
+ 8007008:	0006999a 	.word	0x0006999a
+ 800700c:	249f270f 	.word	0x249f270f
+
+08007010 <VL53L0X_get_pal_range_status>:
+ 8007010:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8007014:	b08b      	sub	sp, #44	; 0x2c
+ 8007016:	2700      	movs	r7, #0
+ 8007018:	f011 0f78 	tst.w	r1, #120	; 0x78
+ 800701c:	e9dd b814 	ldrd	fp, r8, [sp, #80]	; 0x50
+ 8007020:	4604      	mov	r4, r0
+ 8007022:	9201      	str	r2, [sp, #4]
+ 8007024:	4699      	mov	r9, r3
+ 8007026:	f88d 700e 	strb.w	r7, [sp, #14]
+ 800702a:	f88d 700f 	strb.w	r7, [sp, #15]
+ 800702e:	f88d 7010 	strb.w	r7, [sp, #16]
+ 8007032:	f88d 7011 	strb.w	r7, [sp, #17]
+ 8007036:	f8ad 7012 	strh.w	r7, [sp, #18]
+ 800703a:	9709      	str	r7, [sp, #36]	; 0x24
+ 800703c:	f3c1 0ac3 	ubfx	sl, r1, #3, #4
+ 8007040:	f000 80af 	beq.w	80071a2 <VL53L0X_get_pal_range_status+0x192>
+ 8007044:	f1aa 0305 	sub.w	r3, sl, #5
+ 8007048:	b2db      	uxtb	r3, r3
+ 800704a:	2b0a      	cmp	r3, #10
+ 800704c:	d801      	bhi.n	8007052 <VL53L0X_get_pal_range_status+0x42>
+ 800704e:	4a6b      	ldr	r2, [pc, #428]	; (80071fc <VL53L0X_get_pal_range_status+0x1ec>)
+ 8007050:	5cd7      	ldrb	r7, [r2, r3]
+ 8007052:	f10d 020e 	add.w	r2, sp, #14
+ 8007056:	2100      	movs	r1, #0
+ 8007058:	4620      	mov	r0, r4
+ 800705a:	f7fd ff92 	bl	8004f82 <VL53L0X_GetLimitCheckEnable>
+ 800705e:	f89d 500e 	ldrb.w	r5, [sp, #14]
+ 8007062:	4606      	mov	r6, r0
+ 8007064:	b1d5      	cbz	r5, 800709c <VL53L0X_get_pal_range_status+0x8c>
+ 8007066:	2800      	cmp	r0, #0
+ 8007068:	f040 809d 	bne.w	80071a6 <VL53L0X_get_pal_range_status+0x196>
+ 800706c:	ab09      	add	r3, sp, #36	; 0x24
+ 800706e:	aa05      	add	r2, sp, #20
+ 8007070:	4659      	mov	r1, fp
+ 8007072:	4620      	mov	r0, r4
+ 8007074:	f7ff febc 	bl	8006df0 <VL53L0X_calc_sigma_estimate>
+ 8007078:	2800      	cmp	r0, #0
+ 800707a:	f040 8096 	bne.w	80071aa <VL53L0X_get_pal_range_status+0x19a>
+ 800707e:	9b09      	ldr	r3, [sp, #36]	; 0x24
+ 8007080:	f8ab 300a 	strh.w	r3, [fp, #10]
+ 8007084:	4601      	mov	r1, r0
+ 8007086:	aa06      	add	r2, sp, #24
+ 8007088:	4620      	mov	r0, r4
+ 800708a:	f7fd ffb3 	bl	8004ff4 <VL53L0X_GetLimitCheckValue>
+ 800708e:	9d06      	ldr	r5, [sp, #24]
+ 8007090:	b125      	cbz	r5, 800709c <VL53L0X_get_pal_range_status+0x8c>
+ 8007092:	9b05      	ldr	r3, [sp, #20]
+ 8007094:	429d      	cmp	r5, r3
+ 8007096:	bf2c      	ite	cs
+ 8007098:	2500      	movcs	r5, #0
+ 800709a:	2501      	movcc	r5, #1
+ 800709c:	b920      	cbnz	r0, 80070a8 <VL53L0X_get_pal_range_status+0x98>
+ 800709e:	aa04      	add	r2, sp, #16
+ 80070a0:	2102      	movs	r1, #2
+ 80070a2:	4620      	mov	r0, r4
+ 80070a4:	f7fd ff6d 	bl	8004f82 <VL53L0X_GetLimitCheckEnable>
+ 80070a8:	f89d 6010 	ldrb.w	r6, [sp, #16]
+ 80070ac:	b326      	cbz	r6, 80070f8 <VL53L0X_get_pal_range_status+0xe8>
+ 80070ae:	2800      	cmp	r0, #0
+ 80070b0:	d17d      	bne.n	80071ae <VL53L0X_get_pal_range_status+0x19e>
+ 80070b2:	aa07      	add	r2, sp, #28
+ 80070b4:	2102      	movs	r1, #2
+ 80070b6:	4620      	mov	r0, r4
+ 80070b8:	f7fd ff9c 	bl	8004ff4 <VL53L0X_GetLimitCheckValue>
+ 80070bc:	b988      	cbnz	r0, 80070e2 <VL53L0X_get_pal_range_status+0xd2>
+ 80070be:	2201      	movs	r2, #1
+ 80070c0:	21ff      	movs	r1, #255	; 0xff
+ 80070c2:	4620      	mov	r0, r4
+ 80070c4:	f000 f8f0 	bl	80072a8 <VL53L0X_WrByte>
+ 80070c8:	b958      	cbnz	r0, 80070e2 <VL53L0X_get_pal_range_status+0xd2>
+ 80070ca:	f10d 0212 	add.w	r2, sp, #18
+ 80070ce:	21b6      	movs	r1, #182	; 0xb6
+ 80070d0:	4620      	mov	r0, r4
+ 80070d2:	f000 f937 	bl	8007344 <VL53L0X_RdWord>
+ 80070d6:	b920      	cbnz	r0, 80070e2 <VL53L0X_get_pal_range_status+0xd2>
+ 80070d8:	4602      	mov	r2, r0
+ 80070da:	21ff      	movs	r1, #255	; 0xff
+ 80070dc:	4620      	mov	r0, r4
+ 80070de:	f000 f8e3 	bl	80072a8 <VL53L0X_WrByte>
+ 80070e2:	f8bd 3012 	ldrh.w	r3, [sp, #18]
+ 80070e6:	9e07      	ldr	r6, [sp, #28]
+ 80070e8:	025b      	lsls	r3, r3, #9
+ 80070ea:	f8c4 3148 	str.w	r3, [r4, #328]	; 0x148
+ 80070ee:	b11e      	cbz	r6, 80070f8 <VL53L0X_get_pal_range_status+0xe8>
+ 80070f0:	429e      	cmp	r6, r3
+ 80070f2:	bf2c      	ite	cs
+ 80070f4:	2600      	movcs	r6, #0
+ 80070f6:	2601      	movcc	r6, #1
+ 80070f8:	b928      	cbnz	r0, 8007106 <VL53L0X_get_pal_range_status+0xf6>
+ 80070fa:	f10d 0211 	add.w	r2, sp, #17
+ 80070fe:	2103      	movs	r1, #3
+ 8007100:	4620      	mov	r0, r4
+ 8007102:	f7fd ff3e 	bl	8004f82 <VL53L0X_GetLimitCheckEnable>
+ 8007106:	f89d 3011 	ldrb.w	r3, [sp, #17]
+ 800710a:	b193      	cbz	r3, 8007132 <VL53L0X_get_pal_range_status+0x122>
+ 800710c:	2800      	cmp	r0, #0
+ 800710e:	d173      	bne.n	80071f8 <VL53L0X_get_pal_range_status+0x1e8>
+ 8007110:	f1b9 0f00 	cmp.w	r9, #0
+ 8007114:	d003      	beq.n	800711e <VL53L0X_get_pal_range_status+0x10e>
+ 8007116:	9b01      	ldr	r3, [sp, #4]
+ 8007118:	021b      	lsls	r3, r3, #8
+ 800711a:	fbb3 f9f9 	udiv	r9, r3, r9
+ 800711e:	aa08      	add	r2, sp, #32
+ 8007120:	2103      	movs	r1, #3
+ 8007122:	4620      	mov	r0, r4
+ 8007124:	f7fd ff66 	bl	8004ff4 <VL53L0X_GetLimitCheckValue>
+ 8007128:	9b08      	ldr	r3, [sp, #32]
+ 800712a:	454b      	cmp	r3, r9
+ 800712c:	bf94      	ite	ls
+ 800712e:	2300      	movls	r3, #0
+ 8007130:	2301      	movhi	r3, #1
+ 8007132:	b920      	cbnz	r0, 800713e <VL53L0X_get_pal_range_status+0x12e>
+ 8007134:	2f01      	cmp	r7, #1
+ 8007136:	d13c      	bne.n	80071b2 <VL53L0X_get_pal_range_status+0x1a2>
+ 8007138:	22ff      	movs	r2, #255	; 0xff
+ 800713a:	f888 2000 	strb.w	r2, [r8]
+ 800713e:	f898 2000 	ldrb.w	r2, [r8]
+ 8007142:	b90a      	cbnz	r2, 8007148 <VL53L0X_get_pal_range_status+0x138>
+ 8007144:	f8ab 200a 	strh.w	r2, [fp, #10]
+ 8007148:	f10d 020f 	add.w	r2, sp, #15
+ 800714c:	2101      	movs	r1, #1
+ 800714e:	4620      	mov	r0, r4
+ 8007150:	9301      	str	r3, [sp, #4]
+ 8007152:	f7fd ff16 	bl	8004f82 <VL53L0X_GetLimitCheckEnable>
+ 8007156:	bb08      	cbnz	r0, 800719c <VL53L0X_get_pal_range_status+0x18c>
+ 8007158:	f89d 200e 	ldrb.w	r2, [sp, #14]
+ 800715c:	9b01      	ldr	r3, [sp, #4]
+ 800715e:	2a00      	cmp	r2, #0
+ 8007160:	bf08      	it	eq
+ 8007162:	2501      	moveq	r5, #1
+ 8007164:	f1ba 0f04 	cmp.w	sl, #4
+ 8007168:	bf18      	it	ne
+ 800716a:	f89d 200f 	ldrbne.w	r2, [sp, #15]
+ 800716e:	f884 502e 	strb.w	r5, [r4, #46]	; 0x2e
+ 8007172:	bf1a      	itte	ne
+ 8007174:	fab2 f282 	clzne	r2, r2
+ 8007178:	0952      	lsrne	r2, r2, #5
+ 800717a:	2201      	moveq	r2, #1
+ 800717c:	f884 202f 	strb.w	r2, [r4, #47]	; 0x2f
+ 8007180:	f89d 2010 	ldrb.w	r2, [sp, #16]
+ 8007184:	2a00      	cmp	r2, #0
+ 8007186:	f89d 2011 	ldrb.w	r2, [sp, #17]
+ 800718a:	bf08      	it	eq
+ 800718c:	2601      	moveq	r6, #1
+ 800718e:	2a00      	cmp	r2, #0
+ 8007190:	bf08      	it	eq
+ 8007192:	2301      	moveq	r3, #1
+ 8007194:	f884 6030 	strb.w	r6, [r4, #48]	; 0x30
+ 8007198:	f884 3031 	strb.w	r3, [r4, #49]	; 0x31
+ 800719c:	b00b      	add	sp, #44	; 0x2c
+ 800719e:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 80071a2:	2701      	movs	r7, #1
+ 80071a4:	e755      	b.n	8007052 <VL53L0X_get_pal_range_status+0x42>
+ 80071a6:	2500      	movs	r5, #0
+ 80071a8:	e77e      	b.n	80070a8 <VL53L0X_get_pal_range_status+0x98>
+ 80071aa:	4635      	mov	r5, r6
+ 80071ac:	e77c      	b.n	80070a8 <VL53L0X_get_pal_range_status+0x98>
+ 80071ae:	2600      	movs	r6, #0
+ 80071b0:	e7a9      	b.n	8007106 <VL53L0X_get_pal_range_status+0xf6>
+ 80071b2:	f10a 32ff 	add.w	r2, sl, #4294967295
+ 80071b6:	2a09      	cmp	r2, #9
+ 80071b8:	d80a      	bhi.n	80071d0 <VL53L0X_get_pal_range_status+0x1c0>
+ 80071ba:	e8df f002 	tbb	[pc, r2]
+ 80071be:	0505      	.short	0x0505
+ 80071c0:	07090905 	.word	0x07090905
+ 80071c4:	0b070b09 	.word	0x0b070b09
+ 80071c8:	2205      	movs	r2, #5
+ 80071ca:	e7b6      	b.n	800713a <VL53L0X_get_pal_range_status+0x12a>
+ 80071cc:	2204      	movs	r2, #4
+ 80071ce:	e7b4      	b.n	800713a <VL53L0X_get_pal_range_status+0x12a>
+ 80071d0:	2e01      	cmp	r6, #1
+ 80071d2:	d101      	bne.n	80071d8 <VL53L0X_get_pal_range_status+0x1c8>
+ 80071d4:	2203      	movs	r2, #3
+ 80071d6:	e7b0      	b.n	800713a <VL53L0X_get_pal_range_status+0x12a>
+ 80071d8:	f1ba 0f04 	cmp.w	sl, #4
+ 80071dc:	d001      	beq.n	80071e2 <VL53L0X_get_pal_range_status+0x1d2>
+ 80071de:	2b01      	cmp	r3, #1
+ 80071e0:	d101      	bne.n	80071e6 <VL53L0X_get_pal_range_status+0x1d6>
+ 80071e2:	2202      	movs	r2, #2
+ 80071e4:	e7a9      	b.n	800713a <VL53L0X_get_pal_range_status+0x12a>
+ 80071e6:	2d01      	cmp	r5, #1
+ 80071e8:	bf1b      	ittet	ne
+ 80071ea:	2300      	movne	r3, #0
+ 80071ec:	f888 3000 	strbne.w	r3, [r8]
+ 80071f0:	f888 5000 	strbeq.w	r5, [r8]
+ 80071f4:	462b      	movne	r3, r5
+ 80071f6:	e7a2      	b.n	800713e <VL53L0X_get_pal_range_status+0x12e>
+ 80071f8:	2300      	movs	r3, #0
+ 80071fa:	e7a0      	b.n	800713e <VL53L0X_get_pal_range_status+0x12e>
+ 80071fc:	08014f96 	.word	0x08014f96
+
+08007200 <_I2CWrite>:
+ 8007200:	b507      	push	{r0, r1, r2, lr}
+ 8007202:	f102 030a 	add.w	r3, r2, #10
+ 8007206:	9300      	str	r3, [sp, #0]
+ 8007208:	b293      	uxth	r3, r2
+ 800720a:	460a      	mov	r2, r1
+ 800720c:	f890 1160 	ldrb.w	r1, [r0, #352]	; 0x160
+ 8007210:	f8d0 015c 	ldr.w	r0, [r0, #348]	; 0x15c
+ 8007214:	f001 fbb2 	bl	800897c <HAL_I2C_Master_Transmit>
+ 8007218:	b003      	add	sp, #12
+ 800721a:	f85d fb04 	ldr.w	pc, [sp], #4
+
+0800721e <_I2CRead>:
+ 800721e:	b513      	push	{r0, r1, r4, lr}
+ 8007220:	f102 030a 	add.w	r3, r2, #10
+ 8007224:	f890 4160 	ldrb.w	r4, [r0, #352]	; 0x160
+ 8007228:	9300      	str	r3, [sp, #0]
+ 800722a:	f8d0 015c 	ldr.w	r0, [r0, #348]	; 0x15c
+ 800722e:	b293      	uxth	r3, r2
+ 8007230:	460a      	mov	r2, r1
+ 8007232:	f044 0101 	orr.w	r1, r4, #1
+ 8007236:	f001 fc37 	bl	8008aa8 <HAL_I2C_Master_Receive>
+ 800723a:	b002      	add	sp, #8
+ 800723c:	bd10      	pop	{r4, pc}
+	...
+
+08007240 <VL53L0X_WriteMulti>:
+ 8007240:	2b3f      	cmp	r3, #63	; 0x3f
+ 8007242:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 8007244:	460e      	mov	r6, r1
+ 8007246:	4605      	mov	r5, r0
+ 8007248:	4611      	mov	r1, r2
+ 800724a:	461c      	mov	r4, r3
+ 800724c:	d811      	bhi.n	8007272 <VL53L0X_WriteMulti+0x32>
+ 800724e:	4f0a      	ldr	r7, [pc, #40]	; (8007278 <VL53L0X_WriteMulti+0x38>)
+ 8007250:	4638      	mov	r0, r7
+ 8007252:	461a      	mov	r2, r3
+ 8007254:	f800 6b01 	strb.w	r6, [r0], #1
+ 8007258:	f00d f833 	bl	80142c2 <memcpy>
+ 800725c:	1c62      	adds	r2, r4, #1
+ 800725e:	4639      	mov	r1, r7
+ 8007260:	4628      	mov	r0, r5
+ 8007262:	f7ff ffcd 	bl	8007200 <_I2CWrite>
+ 8007266:	2800      	cmp	r0, #0
+ 8007268:	bf0c      	ite	eq
+ 800726a:	2000      	moveq	r0, #0
+ 800726c:	f06f 0013 	mvnne.w	r0, #19
+ 8007270:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 8007272:	f06f 0003 	mvn.w	r0, #3
+ 8007276:	e7fb      	b.n	8007270 <VL53L0X_WriteMulti+0x30>
+ 8007278:	20000f00 	.word	0x20000f00
+
+0800727c <VL53L0X_ReadMulti>:
+ 800727c:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 800727e:	4615      	mov	r5, r2
+ 8007280:	f88d 1007 	strb.w	r1, [sp, #7]
+ 8007284:	2201      	movs	r2, #1
+ 8007286:	f10d 0107 	add.w	r1, sp, #7
+ 800728a:	4604      	mov	r4, r0
+ 800728c:	461e      	mov	r6, r3
+ 800728e:	f7ff ffb7 	bl	8007200 <_I2CWrite>
+ 8007292:	b928      	cbnz	r0, 80072a0 <VL53L0X_ReadMulti+0x24>
+ 8007294:	4632      	mov	r2, r6
+ 8007296:	4629      	mov	r1, r5
+ 8007298:	4620      	mov	r0, r4
+ 800729a:	f7ff ffc0 	bl	800721e <_I2CRead>
+ 800729e:	b108      	cbz	r0, 80072a4 <VL53L0X_ReadMulti+0x28>
+ 80072a0:	f06f 0013 	mvn.w	r0, #19
+ 80072a4:	b002      	add	sp, #8
+ 80072a6:	bd70      	pop	{r4, r5, r6, pc}
+
+080072a8 <VL53L0X_WrByte>:
+ 80072a8:	b508      	push	{r3, lr}
+ 80072aa:	4b06      	ldr	r3, [pc, #24]	; (80072c4 <VL53L0X_WrByte+0x1c>)
+ 80072ac:	7019      	strb	r1, [r3, #0]
+ 80072ae:	705a      	strb	r2, [r3, #1]
+ 80072b0:	4619      	mov	r1, r3
+ 80072b2:	2202      	movs	r2, #2
+ 80072b4:	f7ff ffa4 	bl	8007200 <_I2CWrite>
+ 80072b8:	2800      	cmp	r0, #0
+ 80072ba:	bf14      	ite	ne
+ 80072bc:	f06f 0013 	mvnne.w	r0, #19
+ 80072c0:	2000      	moveq	r0, #0
+ 80072c2:	bd08      	pop	{r3, pc}
+ 80072c4:	20000f00 	.word	0x20000f00
+
+080072c8 <VL53L0X_WrWord>:
+ 80072c8:	b508      	push	{r3, lr}
+ 80072ca:	4b07      	ldr	r3, [pc, #28]	; (80072e8 <VL53L0X_WrWord+0x20>)
+ 80072cc:	7019      	strb	r1, [r3, #0]
+ 80072ce:	0a11      	lsrs	r1, r2, #8
+ 80072d0:	7059      	strb	r1, [r3, #1]
+ 80072d2:	709a      	strb	r2, [r3, #2]
+ 80072d4:	4619      	mov	r1, r3
+ 80072d6:	2203      	movs	r2, #3
+ 80072d8:	f7ff ff92 	bl	8007200 <_I2CWrite>
+ 80072dc:	2800      	cmp	r0, #0
+ 80072de:	bf14      	ite	ne
+ 80072e0:	f06f 0013 	mvnne.w	r0, #19
+ 80072e4:	2000      	moveq	r0, #0
+ 80072e6:	bd08      	pop	{r3, pc}
+ 80072e8:	20000f00 	.word	0x20000f00
+
+080072ec <VL53L0X_RdByte>:
+ 80072ec:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 80072ee:	4615      	mov	r5, r2
+ 80072f0:	f88d 1007 	strb.w	r1, [sp, #7]
+ 80072f4:	2201      	movs	r2, #1
+ 80072f6:	f10d 0107 	add.w	r1, sp, #7
+ 80072fa:	4604      	mov	r4, r0
+ 80072fc:	f7ff ff80 	bl	8007200 <_I2CWrite>
+ 8007300:	b928      	cbnz	r0, 800730e <VL53L0X_RdByte+0x22>
+ 8007302:	2201      	movs	r2, #1
+ 8007304:	4629      	mov	r1, r5
+ 8007306:	4620      	mov	r0, r4
+ 8007308:	f7ff ff89 	bl	800721e <_I2CRead>
+ 800730c:	b108      	cbz	r0, 8007312 <VL53L0X_RdByte+0x26>
+ 800730e:	f06f 0013 	mvn.w	r0, #19
+ 8007312:	b003      	add	sp, #12
+ 8007314:	bd30      	pop	{r4, r5, pc}
+
+08007316 <VL53L0X_UpdateByte>:
+ 8007316:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
+ 8007318:	4615      	mov	r5, r2
+ 800731a:	f10d 0207 	add.w	r2, sp, #7
+ 800731e:	4606      	mov	r6, r0
+ 8007320:	460f      	mov	r7, r1
+ 8007322:	461c      	mov	r4, r3
+ 8007324:	f7ff ffe2 	bl	80072ec <VL53L0X_RdByte>
+ 8007328:	b950      	cbnz	r0, 8007340 <VL53L0X_UpdateByte+0x2a>
+ 800732a:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 800732e:	401d      	ands	r5, r3
+ 8007330:	ea44 0205 	orr.w	r2, r4, r5
+ 8007334:	4639      	mov	r1, r7
+ 8007336:	4630      	mov	r0, r6
+ 8007338:	f88d 2007 	strb.w	r2, [sp, #7]
+ 800733c:	f7ff ffb4 	bl	80072a8 <VL53L0X_WrByte>
+ 8007340:	b003      	add	sp, #12
+ 8007342:	bdf0      	pop	{r4, r5, r6, r7, pc}
+
+08007344 <VL53L0X_RdWord>:
+ 8007344:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 8007346:	4614      	mov	r4, r2
+ 8007348:	f88d 1007 	strb.w	r1, [sp, #7]
+ 800734c:	2201      	movs	r2, #1
+ 800734e:	f10d 0107 	add.w	r1, sp, #7
+ 8007352:	4606      	mov	r6, r0
+ 8007354:	f7ff ff54 	bl	8007200 <_I2CWrite>
+ 8007358:	b118      	cbz	r0, 8007362 <VL53L0X_RdWord+0x1e>
+ 800735a:	f06f 0013 	mvn.w	r0, #19
+ 800735e:	b002      	add	sp, #8
+ 8007360:	bd70      	pop	{r4, r5, r6, pc}
+ 8007362:	4d07      	ldr	r5, [pc, #28]	; (8007380 <VL53L0X_RdWord+0x3c>)
+ 8007364:	2202      	movs	r2, #2
+ 8007366:	4629      	mov	r1, r5
+ 8007368:	4630      	mov	r0, r6
+ 800736a:	f7ff ff58 	bl	800721e <_I2CRead>
+ 800736e:	2800      	cmp	r0, #0
+ 8007370:	d1f3      	bne.n	800735a <VL53L0X_RdWord+0x16>
+ 8007372:	782a      	ldrb	r2, [r5, #0]
+ 8007374:	786b      	ldrb	r3, [r5, #1]
+ 8007376:	eb03 2302 	add.w	r3, r3, r2, lsl #8
+ 800737a:	8023      	strh	r3, [r4, #0]
+ 800737c:	e7ef      	b.n	800735e <VL53L0X_RdWord+0x1a>
+ 800737e:	bf00      	nop
+ 8007380:	20000f00 	.word	0x20000f00
+
+08007384 <VL53L0X_RdDWord>:
+ 8007384:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 8007386:	4614      	mov	r4, r2
+ 8007388:	f88d 1007 	strb.w	r1, [sp, #7]
+ 800738c:	2201      	movs	r2, #1
+ 800738e:	f10d 0107 	add.w	r1, sp, #7
+ 8007392:	4606      	mov	r6, r0
+ 8007394:	f7ff ff34 	bl	8007200 <_I2CWrite>
+ 8007398:	b118      	cbz	r0, 80073a2 <VL53L0X_RdDWord+0x1e>
+ 800739a:	f06f 0013 	mvn.w	r0, #19
+ 800739e:	b002      	add	sp, #8
+ 80073a0:	bd70      	pop	{r4, r5, r6, pc}
+ 80073a2:	4d0a      	ldr	r5, [pc, #40]	; (80073cc <VL53L0X_RdDWord+0x48>)
+ 80073a4:	2204      	movs	r2, #4
+ 80073a6:	4629      	mov	r1, r5
+ 80073a8:	4630      	mov	r0, r6
+ 80073aa:	f7ff ff38 	bl	800721e <_I2CRead>
+ 80073ae:	2800      	cmp	r0, #0
+ 80073b0:	d1f3      	bne.n	800739a <VL53L0X_RdDWord+0x16>
+ 80073b2:	786b      	ldrb	r3, [r5, #1]
+ 80073b4:	782a      	ldrb	r2, [r5, #0]
+ 80073b6:	041b      	lsls	r3, r3, #16
+ 80073b8:	eb03 6302 	add.w	r3, r3, r2, lsl #24
+ 80073bc:	78ea      	ldrb	r2, [r5, #3]
+ 80073be:	4413      	add	r3, r2
+ 80073c0:	78aa      	ldrb	r2, [r5, #2]
+ 80073c2:	eb03 2302 	add.w	r3, r3, r2, lsl #8
+ 80073c6:	6023      	str	r3, [r4, #0]
+ 80073c8:	e7e9      	b.n	800739e <VL53L0X_RdDWord+0x1a>
+ 80073ca:	bf00      	nop
+ 80073cc:	20000f00 	.word	0x20000f00
+
+080073d0 <VL53L0X_PollingDelay>:
+ 80073d0:	b508      	push	{r3, lr}
+ 80073d2:	2002      	movs	r0, #2
+ 80073d4:	f7fb fbc2 	bl	8002b5c <HAL_Delay>
+ 80073d8:	2000      	movs	r0, #0
+ 80073da:	bd08      	pop	{r3, pc}
+
+080073dc <SystemInit>:
+ 80073dc:	4770      	bx	lr
+	...
+
+080073e0 <HAL_Init>:
+ 80073e0:	b510      	push	{r4, lr}
+ 80073e2:	2003      	movs	r0, #3
+ 80073e4:	f000 fc72 	bl	8007ccc <HAL_NVIC_SetPriorityGrouping>
+ 80073e8:	f001 fdaa 	bl	8008f40 <HAL_RCC_GetHCLKFreq>
+ 80073ec:	4b06      	ldr	r3, [pc, #24]	; (8007408 <HAL_Init+0x28>)
+ 80073ee:	6018      	str	r0, [r3, #0]
+ 80073f0:	200f      	movs	r0, #15
+ 80073f2:	f7fb fba9 	bl	8002b48 <HAL_InitTick>
+ 80073f6:	4604      	mov	r4, r0
+ 80073f8:	b918      	cbnz	r0, 8007402 <HAL_Init+0x22>
+ 80073fa:	f7fb f9f6 	bl	80027ea <HAL_MspInit>
+ 80073fe:	4620      	mov	r0, r4
+ 8007400:	bd10      	pop	{r4, pc}
+ 8007402:	2401      	movs	r4, #1
+ 8007404:	e7fb      	b.n	80073fe <HAL_Init+0x1e>
+ 8007406:	bf00      	nop
+ 8007408:	20000828 	.word	0x20000828
+
+0800740c <HAL_SuspendTick>:
+ 800740c:	f04f 22e0 	mov.w	r2, #3758153728	; 0xe000e000
+ 8007410:	6913      	ldr	r3, [r2, #16]
+ 8007412:	f023 0302 	bic.w	r3, r3, #2
+ 8007416:	6113      	str	r3, [r2, #16]
+ 8007418:	4770      	bx	lr
+
+0800741a <HAL_ResumeTick>:
+ 800741a:	f04f 22e0 	mov.w	r2, #3758153728	; 0xe000e000
+ 800741e:	6913      	ldr	r3, [r2, #16]
+ 8007420:	f043 0302 	orr.w	r3, r3, #2
+ 8007424:	6113      	str	r3, [r2, #16]
+ 8007426:	4770      	bx	lr
+
+08007428 <HAL_GetUIDw0>:
+ 8007428:	4b01      	ldr	r3, [pc, #4]	; (8007430 <HAL_GetUIDw0+0x8>)
+ 800742a:	f8d3 0590 	ldr.w	r0, [r3, #1424]	; 0x590
+ 800742e:	4770      	bx	lr
+ 8007430:	1fff7000 	.word	0x1fff7000
+
+08007434 <HAL_GetUIDw1>:
+ 8007434:	4b01      	ldr	r3, [pc, #4]	; (800743c <HAL_GetUIDw1+0x8>)
+ 8007436:	f8d3 0594 	ldr.w	r0, [r3, #1428]	; 0x594
+ 800743a:	4770      	bx	lr
+ 800743c:	1fff7000 	.word	0x1fff7000
+
+08007440 <HAL_GetUIDw2>:
+ 8007440:	4b01      	ldr	r3, [pc, #4]	; (8007448 <HAL_GetUIDw2+0x8>)
+ 8007442:	f8d3 0598 	ldr.w	r0, [r3, #1432]	; 0x598
+ 8007446:	4770      	bx	lr
+ 8007448:	1fff7000 	.word	0x1fff7000
+
+0800744c <HAL_DBGMCU_EnableDBGSleepMode>:
+ 800744c:	4a02      	ldr	r2, [pc, #8]	; (8007458 <HAL_DBGMCU_EnableDBGSleepMode+0xc>)
+ 800744e:	6853      	ldr	r3, [r2, #4]
+ 8007450:	f043 0301 	orr.w	r3, r3, #1
+ 8007454:	6053      	str	r3, [r2, #4]
+ 8007456:	4770      	bx	lr
+ 8007458:	e0042000 	.word	0xe0042000
+
+0800745c <HAL_DBGMCU_EnableDBGStopMode>:
+ 800745c:	4a02      	ldr	r2, [pc, #8]	; (8007468 <HAL_DBGMCU_EnableDBGStopMode+0xc>)
+ 800745e:	6853      	ldr	r3, [r2, #4]
+ 8007460:	f043 0302 	orr.w	r3, r3, #2
+ 8007464:	6053      	str	r3, [r2, #4]
+ 8007466:	4770      	bx	lr
+ 8007468:	e0042000 	.word	0xe0042000
+
+0800746c <HAL_DBGMCU_EnableDBGStandbyMode>:
+ 800746c:	4a02      	ldr	r2, [pc, #8]	; (8007478 <HAL_DBGMCU_EnableDBGStandbyMode+0xc>)
+ 800746e:	6853      	ldr	r3, [r2, #4]
+ 8007470:	f043 0304 	orr.w	r3, r3, #4
+ 8007474:	6053      	str	r3, [r2, #4]
+ 8007476:	4770      	bx	lr
+ 8007478:	e0042000 	.word	0xe0042000
+
+0800747c <LL_ADC_REG_IsConversionOngoing>:
+ 800747c:	6880      	ldr	r0, [r0, #8]
+ 800747e:	f3c0 0080 	ubfx	r0, r0, #2, #1
+ 8007482:	4770      	bx	lr
+
+08007484 <HAL_ADC_Init>:
+ 8007484:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
+ 8007486:	2300      	movs	r3, #0
+ 8007488:	9301      	str	r3, [sp, #4]
+ 800748a:	4604      	mov	r4, r0
+ 800748c:	2800      	cmp	r0, #0
+ 800748e:	f000 80e9 	beq.w	8007664 <HAL_ADC_Init+0x1e0>
+ 8007492:	6d85      	ldr	r5, [r0, #88]	; 0x58
+ 8007494:	b925      	cbnz	r5, 80074a0 <HAL_ADC_Init+0x1c>
+ 8007496:	f7fa fce5 	bl	8001e64 <HAL_ADC_MspInit>
+ 800749a:	65e5      	str	r5, [r4, #92]	; 0x5c
+ 800749c:	f884 5054 	strb.w	r5, [r4, #84]	; 0x54
+ 80074a0:	6823      	ldr	r3, [r4, #0]
+ 80074a2:	689a      	ldr	r2, [r3, #8]
+ 80074a4:	00d0      	lsls	r0, r2, #3
+ 80074a6:	f140 80a1 	bpl.w	80075ec <HAL_ADC_Init+0x168>
+ 80074aa:	689a      	ldr	r2, [r3, #8]
+ 80074ac:	00d1      	lsls	r1, r2, #3
+ 80074ae:	f100 80b4 	bmi.w	800761a <HAL_ADC_Init+0x196>
+ 80074b2:	6da2      	ldr	r2, [r4, #88]	; 0x58
+ 80074b4:	f042 0210 	orr.w	r2, r2, #16
+ 80074b8:	65a2      	str	r2, [r4, #88]	; 0x58
+ 80074ba:	6de2      	ldr	r2, [r4, #92]	; 0x5c
+ 80074bc:	f042 0201 	orr.w	r2, r2, #1
+ 80074c0:	65e2      	str	r2, [r4, #92]	; 0x5c
+ 80074c2:	2501      	movs	r5, #1
+ 80074c4:	4618      	mov	r0, r3
+ 80074c6:	f7ff ffd9 	bl	800747c <LL_ADC_REG_IsConversionOngoing>
+ 80074ca:	6da2      	ldr	r2, [r4, #88]	; 0x58
+ 80074cc:	f002 0210 	and.w	r2, r2, #16
+ 80074d0:	4302      	orrs	r2, r0
+ 80074d2:	f040 80c9 	bne.w	8007668 <HAL_ADC_Init+0x1e4>
+ 80074d6:	6da2      	ldr	r2, [r4, #88]	; 0x58
+ 80074d8:	6920      	ldr	r0, [r4, #16]
+ 80074da:	f422 7281 	bic.w	r2, r2, #258	; 0x102
+ 80074de:	f042 0202 	orr.w	r2, r2, #2
+ 80074e2:	65a2      	str	r2, [r4, #88]	; 0x58
+ 80074e4:	689a      	ldr	r2, [r3, #8]
+ 80074e6:	07d2      	lsls	r2, r2, #31
+ 80074e8:	d45d      	bmi.n	80075a6 <HAL_ADC_Init+0x122>
+ 80074ea:	6b22      	ldr	r2, [r4, #48]	; 0x30
+ 80074ec:	7ea6      	ldrb	r6, [r4, #26]
+ 80074ee:	f894 c02c 	ldrb.w	ip, [r4, #44]	; 0x2c
+ 80074f2:	3a00      	subs	r2, #0
+ 80074f4:	bf18      	it	ne
+ 80074f6:	2201      	movne	r2, #1
+ 80074f8:	0317      	lsls	r7, r2, #12
+ 80074fa:	e9d4 1202 	ldrd	r1, r2, [r4, #8]
+ 80074fe:	430a      	orrs	r2, r1
+ 8007500:	7e21      	ldrb	r1, [r4, #24]
+ 8007502:	ea42 3281 	orr.w	r2, r2, r1, lsl #14
+ 8007506:	7e61      	ldrb	r1, [r4, #25]
+ 8007508:	ea42 32c1 	orr.w	r2, r2, r1, lsl #15
+ 800750c:	ea42 3246 	orr.w	r2, r2, r6, lsl #13
+ 8007510:	2800      	cmp	r0, #0
+ 8007512:	ea42 024c 	orr.w	r2, r2, ip, lsl #1
+ 8007516:	bfb4      	ite	lt
+ 8007518:	f020 4100 	biclt.w	r1, r0, #2147483648	; 0x80000000
+ 800751c:	f44f 1100 	movge.w	r1, #2097152	; 0x200000
+ 8007520:	433a      	orrs	r2, r7
+ 8007522:	430a      	orrs	r2, r1
+ 8007524:	f894 1020 	ldrb.w	r1, [r4, #32]
+ 8007528:	2901      	cmp	r1, #1
+ 800752a:	d103      	bne.n	8007534 <HAL_ADC_Init+0xb0>
+ 800752c:	2e00      	cmp	r6, #0
+ 800752e:	d176      	bne.n	800761e <HAL_ADC_Init+0x19a>
+ 8007530:	f442 3280 	orr.w	r2, r2, #65536	; 0x10000
+ 8007534:	6a61      	ldr	r1, [r4, #36]	; 0x24
+ 8007536:	b121      	cbz	r1, 8007542 <HAL_ADC_Init+0xbe>
+ 8007538:	6aa6      	ldr	r6, [r4, #40]	; 0x28
+ 800753a:	f401 71e0 	and.w	r1, r1, #448	; 0x1c0
+ 800753e:	4331      	orrs	r1, r6
+ 8007540:	430a      	orrs	r2, r1
+ 8007542:	68d9      	ldr	r1, [r3, #12]
+ 8007544:	6ce6      	ldr	r6, [r4, #76]	; 0x4c
+ 8007546:	f421 31fe 	bic.w	r1, r1, #130048	; 0x1fc00
+ 800754a:	f421 71ff 	bic.w	r1, r1, #510	; 0x1fe
+ 800754e:	4311      	orrs	r1, r2
+ 8007550:	60d9      	str	r1, [r3, #12]
+ 8007552:	f894 203c 	ldrb.w	r2, [r4, #60]	; 0x3c
+ 8007556:	6861      	ldr	r1, [r4, #4]
+ 8007558:	2a01      	cmp	r2, #1
+ 800755a:	f001 4c40 	and.w	ip, r1, #3221225472	; 0xc0000000
+ 800755e:	ea4c 0606 	orr.w	r6, ip, r6
+ 8007562:	d109      	bne.n	8007578 <HAL_ADC_Init+0xf4>
+ 8007564:	e9d4 2710 	ldrd	r2, r7, [r4, #64]	; 0x40
+ 8007568:	433a      	orrs	r2, r7
+ 800756a:	4332      	orrs	r2, r6
+ 800756c:	6ca6      	ldr	r6, [r4, #72]	; 0x48
+ 800756e:	4332      	orrs	r2, r6
+ 8007570:	ea42 020c 	orr.w	r2, r2, ip
+ 8007574:	f042 0601 	orr.w	r6, r2, #1
+ 8007578:	691f      	ldr	r7, [r3, #16]
+ 800757a:	4a3e      	ldr	r2, [pc, #248]	; (8007674 <HAL_ADC_Init+0x1f0>)
+ 800757c:	403a      	ands	r2, r7
+ 800757e:	4332      	orrs	r2, r6
+ 8007580:	611a      	str	r2, [r3, #16]
+ 8007582:	f021 4200 	bic.w	r2, r1, #2147483648	; 0x80000000
+ 8007586:	f1b2 4f80 	cmp.w	r2, #1073741824	; 0x40000000
+ 800758a:	d00c      	beq.n	80075a6 <HAL_ADC_Init+0x122>
+ 800758c:	f1b1 4f00 	cmp.w	r1, #2147483648	; 0x80000000
+ 8007590:	d009      	beq.n	80075a6 <HAL_ADC_Init+0x122>
+ 8007592:	4e39      	ldr	r6, [pc, #228]	; (8007678 <HAL_ADC_Init+0x1f4>)
+ 8007594:	f8d6 2708 	ldr.w	r2, [r6, #1800]	; 0x708
+ 8007598:	f401 1170 	and.w	r1, r1, #3932160	; 0x3c0000
+ 800759c:	f422 1270 	bic.w	r2, r2, #3932160	; 0x3c0000
+ 80075a0:	430a      	orrs	r2, r1
+ 80075a2:	f8c6 2708 	str.w	r2, [r6, #1800]	; 0x708
+ 80075a6:	695a      	ldr	r2, [r3, #20]
+ 80075a8:	6b66      	ldr	r6, [r4, #52]	; 0x34
+ 80075aa:	6ba1      	ldr	r1, [r4, #56]	; 0x38
+ 80075ac:	f022 0207 	bic.w	r2, r2, #7
+ 80075b0:	4332      	orrs	r2, r6
+ 80075b2:	615a      	str	r2, [r3, #20]
+ 80075b4:	695a      	ldr	r2, [r3, #20]
+ 80075b6:	f022 0270 	bic.w	r2, r2, #112	; 0x70
+ 80075ba:	ea42 1201 	orr.w	r2, r2, r1, lsl #4
+ 80075be:	615a      	str	r2, [r3, #20]
+ 80075c0:	2800      	cmp	r0, #0
+ 80075c2:	d135      	bne.n	8007630 <HAL_ADC_Init+0x1ac>
+ 80075c4:	6a9a      	ldr	r2, [r3, #40]	; 0x28
+ 80075c6:	f062 020f 	orn	r2, r2, #15
+ 80075ca:	629a      	str	r2, [r3, #40]	; 0x28
+ 80075cc:	695b      	ldr	r3, [r3, #20]
+ 80075ce:	f003 0307 	and.w	r3, r3, #7
+ 80075d2:	429e      	cmp	r6, r3
+ 80075d4:	d13c      	bne.n	8007650 <HAL_ADC_Init+0x1cc>
+ 80075d6:	2300      	movs	r3, #0
+ 80075d8:	65e3      	str	r3, [r4, #92]	; 0x5c
+ 80075da:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 80075dc:	f023 0303 	bic.w	r3, r3, #3
+ 80075e0:	f043 0301 	orr.w	r3, r3, #1
+ 80075e4:	65a3      	str	r3, [r4, #88]	; 0x58
+ 80075e6:	4628      	mov	r0, r5
+ 80075e8:	b003      	add	sp, #12
+ 80075ea:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 80075ec:	689a      	ldr	r2, [r3, #8]
+ 80075ee:	4923      	ldr	r1, [pc, #140]	; (800767c <HAL_ADC_Init+0x1f8>)
+ 80075f0:	f022 4210 	bic.w	r2, r2, #2415919104	; 0x90000000
+ 80075f4:	f022 0217 	bic.w	r2, r2, #23
+ 80075f8:	f042 5280 	orr.w	r2, r2, #268435456	; 0x10000000
+ 80075fc:	609a      	str	r2, [r3, #8]
+ 80075fe:	4a20      	ldr	r2, [pc, #128]	; (8007680 <HAL_ADC_Init+0x1fc>)
+ 8007600:	6812      	ldr	r2, [r2, #0]
+ 8007602:	fbb2 f2f1 	udiv	r2, r2, r1
+ 8007606:	3201      	adds	r2, #1
+ 8007608:	0052      	lsls	r2, r2, #1
+ 800760a:	9201      	str	r2, [sp, #4]
+ 800760c:	9a01      	ldr	r2, [sp, #4]
+ 800760e:	2a00      	cmp	r2, #0
+ 8007610:	f43f af4b 	beq.w	80074aa <HAL_ADC_Init+0x26>
+ 8007614:	9a01      	ldr	r2, [sp, #4]
+ 8007616:	3a01      	subs	r2, #1
+ 8007618:	e7f7      	b.n	800760a <HAL_ADC_Init+0x186>
+ 800761a:	2500      	movs	r5, #0
+ 800761c:	e752      	b.n	80074c4 <HAL_ADC_Init+0x40>
+ 800761e:	6da1      	ldr	r1, [r4, #88]	; 0x58
+ 8007620:	f041 0120 	orr.w	r1, r1, #32
+ 8007624:	65a1      	str	r1, [r4, #88]	; 0x58
+ 8007626:	6de1      	ldr	r1, [r4, #92]	; 0x5c
+ 8007628:	f041 0101 	orr.w	r1, r1, #1
+ 800762c:	65e1      	str	r1, [r4, #92]	; 0x5c
+ 800762e:	e781      	b.n	8007534 <HAL_ADC_Init+0xb0>
+ 8007630:	f5b0 1f00 	cmp.w	r0, #2097152	; 0x200000
+ 8007634:	d1ca      	bne.n	80075cc <HAL_ADC_Init+0x148>
+ 8007636:	6a9a      	ldr	r2, [r3, #40]	; 0x28
+ 8007638:	69e2      	ldr	r2, [r4, #28]
+ 800763a:	3a01      	subs	r2, #1
+ 800763c:	0092      	lsls	r2, r2, #2
+ 800763e:	f06f 010f 	mvn.w	r1, #15
+ 8007642:	f002 021c 	and.w	r2, r2, #28
+ 8007646:	fa01 f202 	lsl.w	r2, r1, r2
+ 800764a:	6e21      	ldr	r1, [r4, #96]	; 0x60
+ 800764c:	430a      	orrs	r2, r1
+ 800764e:	e7bc      	b.n	80075ca <HAL_ADC_Init+0x146>
+ 8007650:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8007652:	f023 0312 	bic.w	r3, r3, #18
+ 8007656:	f043 0310 	orr.w	r3, r3, #16
+ 800765a:	65a3      	str	r3, [r4, #88]	; 0x58
+ 800765c:	6de3      	ldr	r3, [r4, #92]	; 0x5c
+ 800765e:	f043 0301 	orr.w	r3, r3, #1
+ 8007662:	65e3      	str	r3, [r4, #92]	; 0x5c
+ 8007664:	2501      	movs	r5, #1
+ 8007666:	e7be      	b.n	80075e6 <HAL_ADC_Init+0x162>
+ 8007668:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 800766a:	f043 0310 	orr.w	r3, r3, #16
+ 800766e:	65a3      	str	r3, [r4, #88]	; 0x58
+ 8007670:	e7f8      	b.n	8007664 <HAL_ADC_Init+0x1e0>
+ 8007672:	bf00      	nop
+ 8007674:	1ffffc02 	.word	0x1ffffc02
+ 8007678:	40012000 	.word	0x40012000
+ 800767c:	00030d40 	.word	0x00030d40
+ 8007680:	20000828 	.word	0x20000828
+
+08007684 <HAL_ADC_PollForConversion>:
+ 8007684:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 8007686:	6945      	ldr	r5, [r0, #20]
+ 8007688:	2d08      	cmp	r5, #8
+ 800768a:	4604      	mov	r4, r0
+ 800768c:	460e      	mov	r6, r1
+ 800768e:	d00a      	beq.n	80076a6 <HAL_ADC_PollForConversion+0x22>
+ 8007690:	6803      	ldr	r3, [r0, #0]
+ 8007692:	68db      	ldr	r3, [r3, #12]
+ 8007694:	07d8      	lsls	r0, r3, #31
+ 8007696:	d505      	bpl.n	80076a4 <HAL_ADC_PollForConversion+0x20>
+ 8007698:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 800769a:	f043 0320 	orr.w	r3, r3, #32
+ 800769e:	65a3      	str	r3, [r4, #88]	; 0x58
+ 80076a0:	2001      	movs	r0, #1
+ 80076a2:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 80076a4:	2504      	movs	r5, #4
+ 80076a6:	f7fb fa51 	bl	8002b4c <HAL_GetTick>
+ 80076aa:	4607      	mov	r7, r0
+ 80076ac:	6823      	ldr	r3, [r4, #0]
+ 80076ae:	681a      	ldr	r2, [r3, #0]
+ 80076b0:	422a      	tst	r2, r5
+ 80076b2:	d021      	beq.n	80076f8 <HAL_ADC_PollForConversion+0x74>
+ 80076b4:	6da2      	ldr	r2, [r4, #88]	; 0x58
+ 80076b6:	f442 7200 	orr.w	r2, r2, #512	; 0x200
+ 80076ba:	65a2      	str	r2, [r4, #88]	; 0x58
+ 80076bc:	68da      	ldr	r2, [r3, #12]
+ 80076be:	f412 6f40 	tst.w	r2, #3072	; 0xc00
+ 80076c2:	d114      	bne.n	80076ee <HAL_ADC_PollForConversion+0x6a>
+ 80076c4:	7ea2      	ldrb	r2, [r4, #26]
+ 80076c6:	b992      	cbnz	r2, 80076ee <HAL_ADC_PollForConversion+0x6a>
+ 80076c8:	681a      	ldr	r2, [r3, #0]
+ 80076ca:	0712      	lsls	r2, r2, #28
+ 80076cc:	d50f      	bpl.n	80076ee <HAL_ADC_PollForConversion+0x6a>
+ 80076ce:	4618      	mov	r0, r3
+ 80076d0:	f7ff fed4 	bl	800747c <LL_ADC_REG_IsConversionOngoing>
+ 80076d4:	bb28      	cbnz	r0, 8007722 <HAL_ADC_PollForConversion+0x9e>
+ 80076d6:	685a      	ldr	r2, [r3, #4]
+ 80076d8:	f022 020c 	bic.w	r2, r2, #12
+ 80076dc:	605a      	str	r2, [r3, #4]
+ 80076de:	6da2      	ldr	r2, [r4, #88]	; 0x58
+ 80076e0:	f422 7280 	bic.w	r2, r2, #256	; 0x100
+ 80076e4:	f022 0201 	bic.w	r2, r2, #1
+ 80076e8:	f042 0201 	orr.w	r2, r2, #1
+ 80076ec:	65a2      	str	r2, [r4, #88]	; 0x58
+ 80076ee:	7e20      	ldrb	r0, [r4, #24]
+ 80076f0:	bb00      	cbnz	r0, 8007734 <HAL_ADC_PollForConversion+0xb0>
+ 80076f2:	220c      	movs	r2, #12
+ 80076f4:	601a      	str	r2, [r3, #0]
+ 80076f6:	e7d4      	b.n	80076a2 <HAL_ADC_PollForConversion+0x1e>
+ 80076f8:	1c71      	adds	r1, r6, #1
+ 80076fa:	d0d8      	beq.n	80076ae <HAL_ADC_PollForConversion+0x2a>
+ 80076fc:	f7fb fa26 	bl	8002b4c <HAL_GetTick>
+ 8007700:	1bc0      	subs	r0, r0, r7
+ 8007702:	42b0      	cmp	r0, r6
+ 8007704:	d801      	bhi.n	800770a <HAL_ADC_PollForConversion+0x86>
+ 8007706:	2e00      	cmp	r6, #0
+ 8007708:	d1d0      	bne.n	80076ac <HAL_ADC_PollForConversion+0x28>
+ 800770a:	6823      	ldr	r3, [r4, #0]
+ 800770c:	681b      	ldr	r3, [r3, #0]
+ 800770e:	402b      	ands	r3, r5
+ 8007710:	d1cc      	bne.n	80076ac <HAL_ADC_PollForConversion+0x28>
+ 8007712:	6da2      	ldr	r2, [r4, #88]	; 0x58
+ 8007714:	f884 3054 	strb.w	r3, [r4, #84]	; 0x54
+ 8007718:	f042 0204 	orr.w	r2, r2, #4
+ 800771c:	65a2      	str	r2, [r4, #88]	; 0x58
+ 800771e:	2003      	movs	r0, #3
+ 8007720:	e7bf      	b.n	80076a2 <HAL_ADC_PollForConversion+0x1e>
+ 8007722:	6da2      	ldr	r2, [r4, #88]	; 0x58
+ 8007724:	f042 0220 	orr.w	r2, r2, #32
+ 8007728:	65a2      	str	r2, [r4, #88]	; 0x58
+ 800772a:	6de2      	ldr	r2, [r4, #92]	; 0x5c
+ 800772c:	f042 0201 	orr.w	r2, r2, #1
+ 8007730:	65e2      	str	r2, [r4, #92]	; 0x5c
+ 8007732:	e7dc      	b.n	80076ee <HAL_ADC_PollForConversion+0x6a>
+ 8007734:	2000      	movs	r0, #0
+ 8007736:	e7b4      	b.n	80076a2 <HAL_ADC_PollForConversion+0x1e>
+
+08007738 <HAL_ADC_GetValue>:
+ 8007738:	6803      	ldr	r3, [r0, #0]
+ 800773a:	6c18      	ldr	r0, [r3, #64]	; 0x40
+ 800773c:	4770      	bx	lr
+	...
+
+08007740 <HAL_ADC_ConfigChannel>:
+ 8007740:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
+ 8007742:	2300      	movs	r3, #0
+ 8007744:	9301      	str	r3, [sp, #4]
+ 8007746:	f890 3054 	ldrb.w	r3, [r0, #84]	; 0x54
+ 800774a:	2b01      	cmp	r3, #1
+ 800774c:	4604      	mov	r4, r0
+ 800774e:	f000 80c5 	beq.w	80078dc <HAL_ADC_ConfigChannel+0x19c>
+ 8007752:	6805      	ldr	r5, [r0, #0]
+ 8007754:	6906      	ldr	r6, [r0, #16]
+ 8007756:	2301      	movs	r3, #1
+ 8007758:	f880 3054 	strb.w	r3, [r0, #84]	; 0x54
+ 800775c:	4628      	mov	r0, r5
+ 800775e:	f7ff fe8d 	bl	800747c <LL_ADC_REG_IsConversionOngoing>
+ 8007762:	2800      	cmp	r0, #0
+ 8007764:	f040 80b4 	bne.w	80078d0 <HAL_ADC_ConfigChannel+0x190>
+ 8007768:	e9d1 2000 	ldrd	r2, r0, [r1]
+ 800776c:	2802      	cmp	r0, #2
+ 800776e:	f026 0304 	bic.w	r3, r6, #4
+ 8007772:	f000 8082 	beq.w	800787a <HAL_ADC_ConfigChannel+0x13a>
+ 8007776:	f1b3 4f00 	cmp.w	r3, #2147483648	; 0x80000000
+ 800777a:	f3c2 0e11 	ubfx	lr, r2, #0, #18
+ 800777e:	d113      	bne.n	80077a8 <HAL_ADC_ConfigChannel+0x68>
+ 8007780:	6aab      	ldr	r3, [r5, #40]	; 0x28
+ 8007782:	ea43 030e 	orr.w	r3, r3, lr
+ 8007786:	62ab      	str	r3, [r5, #40]	; 0x28
+ 8007788:	688b      	ldr	r3, [r1, #8]
+ 800778a:	6968      	ldr	r0, [r5, #20]
+ 800778c:	ea03 2302 	and.w	r3, r3, r2, lsl #8
+ 8007790:	f023 437c 	bic.w	r3, r3, #4227858432	; 0xfc000000
+ 8007794:	f023 03ff 	bic.w	r3, r3, #255	; 0xff
+ 8007798:	ea20 2102 	bic.w	r1, r0, r2, lsl #8
+ 800779c:	430b      	orrs	r3, r1
+ 800779e:	2a00      	cmp	r2, #0
+ 80077a0:	616b      	str	r3, [r5, #20]
+ 80077a2:	db26      	blt.n	80077f2 <HAL_ADC_ConfigChannel+0xb2>
+ 80077a4:	2000      	movs	r0, #0
+ 80077a6:	e055      	b.n	8007854 <HAL_ADC_ConfigChannel+0x114>
+ 80077a8:	6e23      	ldr	r3, [r4, #96]	; 0x60
+ 80077aa:	f000 071f 	and.w	r7, r0, #31
+ 80077ae:	f04f 0c0f 	mov.w	ip, #15
+ 80077b2:	fa0c fc07 	lsl.w	ip, ip, r7
+ 80077b6:	ea6f 060c 	mvn.w	r6, ip
+ 80077ba:	ea23 0c0c 	bic.w	ip, r3, ip
+ 80077be:	f1be 0f00 	cmp.w	lr, #0
+ 80077c2:	d111      	bne.n	80077e8 <HAL_ADC_ConfigChannel+0xa8>
+ 80077c4:	f3c2 6384 	ubfx	r3, r2, #26, #5
+ 80077c8:	40bb      	lsls	r3, r7
+ 80077ca:	ea43 030c 	orr.w	r3, r3, ip
+ 80077ce:	6623      	str	r3, [r4, #96]	; 0x60
+ 80077d0:	0880      	lsrs	r0, r0, #2
+ 80077d2:	69e3      	ldr	r3, [r4, #28]
+ 80077d4:	3001      	adds	r0, #1
+ 80077d6:	4298      	cmp	r0, r3
+ 80077d8:	d8d6      	bhi.n	8007788 <HAL_ADC_ConfigChannel+0x48>
+ 80077da:	6aa8      	ldr	r0, [r5, #40]	; 0x28
+ 80077dc:	f3c2 6383 	ubfx	r3, r2, #26, #4
+ 80077e0:	40bb      	lsls	r3, r7
+ 80077e2:	4006      	ands	r6, r0
+ 80077e4:	4333      	orrs	r3, r6
+ 80077e6:	e7ce      	b.n	8007786 <HAL_ADC_ConfigChannel+0x46>
+ 80077e8:	fa92 f3a2 	rbit	r3, r2
+ 80077ec:	fab3 f383 	clz	r3, r3
+ 80077f0:	e7ea      	b.n	80077c8 <HAL_ADC_ConfigChannel+0x88>
+ 80077f2:	493b      	ldr	r1, [pc, #236]	; (80078e0 <HAL_ADC_ConfigChannel+0x1a0>)
+ 80077f4:	483b      	ldr	r0, [pc, #236]	; (80078e4 <HAL_ADC_ConfigChannel+0x1a4>)
+ 80077f6:	f8d1 3708 	ldr.w	r3, [r1, #1800]	; 0x708
+ 80077fa:	4282      	cmp	r2, r0
+ 80077fc:	f003 75e0 	and.w	r5, r3, #29360128	; 0x1c00000
+ 8007800:	d119      	bne.n	8007836 <HAL_ADC_ConfigChannel+0xf6>
+ 8007802:	021b      	lsls	r3, r3, #8
+ 8007804:	d4ce      	bmi.n	80077a4 <HAL_ADC_ConfigChannel+0x64>
+ 8007806:	f8d1 3708 	ldr.w	r3, [r1, #1800]	; 0x708
+ 800780a:	f023 73e0 	bic.w	r3, r3, #29360128	; 0x1c00000
+ 800780e:	432b      	orrs	r3, r5
+ 8007810:	f443 0300 	orr.w	r3, r3, #8388608	; 0x800000
+ 8007814:	f8c1 3708 	str.w	r3, [r1, #1800]	; 0x708
+ 8007818:	4b33      	ldr	r3, [pc, #204]	; (80078e8 <HAL_ADC_ConfigChannel+0x1a8>)
+ 800781a:	681a      	ldr	r2, [r3, #0]
+ 800781c:	4b33      	ldr	r3, [pc, #204]	; (80078ec <HAL_ADC_ConfigChannel+0x1ac>)
+ 800781e:	fbb2 f2f3 	udiv	r2, r2, r3
+ 8007822:	230c      	movs	r3, #12
+ 8007824:	fb02 3303 	mla	r3, r2, r3, r3
+ 8007828:	9301      	str	r3, [sp, #4]
+ 800782a:	9b01      	ldr	r3, [sp, #4]
+ 800782c:	2b00      	cmp	r3, #0
+ 800782e:	d0b9      	beq.n	80077a4 <HAL_ADC_ConfigChannel+0x64>
+ 8007830:	9b01      	ldr	r3, [sp, #4]
+ 8007832:	3b01      	subs	r3, #1
+ 8007834:	e7f8      	b.n	8007828 <HAL_ADC_ConfigChannel+0xe8>
+ 8007836:	482e      	ldr	r0, [pc, #184]	; (80078f0 <HAL_ADC_ConfigChannel+0x1b0>)
+ 8007838:	4282      	cmp	r2, r0
+ 800783a:	d110      	bne.n	800785e <HAL_ADC_ConfigChannel+0x11e>
+ 800783c:	f013 7080 	ands.w	r0, r3, #16777216	; 0x1000000
+ 8007840:	d1b0      	bne.n	80077a4 <HAL_ADC_ConfigChannel+0x64>
+ 8007842:	f8d1 3708 	ldr.w	r3, [r1, #1800]	; 0x708
+ 8007846:	f023 73e0 	bic.w	r3, r3, #29360128	; 0x1c00000
+ 800784a:	432b      	orrs	r3, r5
+ 800784c:	f043 7380 	orr.w	r3, r3, #16777216	; 0x1000000
+ 8007850:	f8c1 3708 	str.w	r3, [r1, #1800]	; 0x708
+ 8007854:	2300      	movs	r3, #0
+ 8007856:	f884 3054 	strb.w	r3, [r4, #84]	; 0x54
+ 800785a:	b003      	add	sp, #12
+ 800785c:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 800785e:	4825      	ldr	r0, [pc, #148]	; (80078f4 <HAL_ADC_ConfigChannel+0x1b4>)
+ 8007860:	4282      	cmp	r2, r0
+ 8007862:	d19f      	bne.n	80077a4 <HAL_ADC_ConfigChannel+0x64>
+ 8007864:	f413 0080 	ands.w	r0, r3, #4194304	; 0x400000
+ 8007868:	d19c      	bne.n	80077a4 <HAL_ADC_ConfigChannel+0x64>
+ 800786a:	f8d1 3708 	ldr.w	r3, [r1, #1800]	; 0x708
+ 800786e:	f023 73e0 	bic.w	r3, r3, #29360128	; 0x1c00000
+ 8007872:	432b      	orrs	r3, r5
+ 8007874:	f443 0380 	orr.w	r3, r3, #4194304	; 0x400000
+ 8007878:	e7ea      	b.n	8007850 <HAL_ADC_ConfigChannel+0x110>
+ 800787a:	f1b3 4f00 	cmp.w	r3, #2147483648	; 0x80000000
+ 800787e:	bf01      	itttt	eq
+ 8007880:	6aab      	ldreq	r3, [r5, #40]	; 0x28
+ 8007882:	f3c2 0111 	ubfxeq	r1, r2, #0, #18
+ 8007886:	438b      	biceq	r3, r1
+ 8007888:	62ab      	streq	r3, [r5, #40]	; 0x28
+ 800788a:	2a00      	cmp	r2, #0
+ 800788c:	da8a      	bge.n	80077a4 <HAL_ADC_ConfigChannel+0x64>
+ 800788e:	4815      	ldr	r0, [pc, #84]	; (80078e4 <HAL_ADC_ConfigChannel+0x1a4>)
+ 8007890:	4913      	ldr	r1, [pc, #76]	; (80078e0 <HAL_ADC_ConfigChannel+0x1a0>)
+ 8007892:	4282      	cmp	r2, r0
+ 8007894:	f8d1 3708 	ldr.w	r3, [r1, #1800]	; 0x708
+ 8007898:	d109      	bne.n	80078ae <HAL_ADC_ConfigChannel+0x16e>
+ 800789a:	f8d1 2708 	ldr.w	r2, [r1, #1800]	; 0x708
+ 800789e:	f003 73a0 	and.w	r3, r3, #20971520	; 0x1400000
+ 80078a2:	f022 72e0 	bic.w	r2, r2, #29360128	; 0x1c00000
+ 80078a6:	4313      	orrs	r3, r2
+ 80078a8:	f8c1 3708 	str.w	r3, [r1, #1800]	; 0x708
+ 80078ac:	e77a      	b.n	80077a4 <HAL_ADC_ConfigChannel+0x64>
+ 80078ae:	4810      	ldr	r0, [pc, #64]	; (80078f0 <HAL_ADC_ConfigChannel+0x1b0>)
+ 80078b0:	4282      	cmp	r2, r0
+ 80078b2:	d104      	bne.n	80078be <HAL_ADC_ConfigChannel+0x17e>
+ 80078b4:	f8d1 2708 	ldr.w	r2, [r1, #1800]	; 0x708
+ 80078b8:	f403 0340 	and.w	r3, r3, #12582912	; 0xc00000
+ 80078bc:	e7f1      	b.n	80078a2 <HAL_ADC_ConfigChannel+0x162>
+ 80078be:	480d      	ldr	r0, [pc, #52]	; (80078f4 <HAL_ADC_ConfigChannel+0x1b4>)
+ 80078c0:	4282      	cmp	r2, r0
+ 80078c2:	f47f af6f 	bne.w	80077a4 <HAL_ADC_ConfigChannel+0x64>
+ 80078c6:	f8d1 2708 	ldr.w	r2, [r1, #1800]	; 0x708
+ 80078ca:	f003 73c0 	and.w	r3, r3, #25165824	; 0x1800000
+ 80078ce:	e7e8      	b.n	80078a2 <HAL_ADC_ConfigChannel+0x162>
+ 80078d0:	6da2      	ldr	r2, [r4, #88]	; 0x58
+ 80078d2:	f042 0220 	orr.w	r2, r2, #32
+ 80078d6:	65a2      	str	r2, [r4, #88]	; 0x58
+ 80078d8:	4618      	mov	r0, r3
+ 80078da:	e7bb      	b.n	8007854 <HAL_ADC_ConfigChannel+0x114>
+ 80078dc:	2002      	movs	r0, #2
+ 80078de:	e7bc      	b.n	800785a <HAL_ADC_ConfigChannel+0x11a>
+ 80078e0:	40012000 	.word	0x40012000
+ 80078e4:	b0001000 	.word	0xb0001000
+ 80078e8:	20000828 	.word	0x20000828
+ 80078ec:	00030d40 	.word	0x00030d40
+ 80078f0:	b8004000 	.word	0xb8004000
+ 80078f4:	b4002000 	.word	0xb4002000
+
+080078f8 <ADC_ConversionStop>:
+ 80078f8:	6802      	ldr	r2, [r0, #0]
+ 80078fa:	b538      	push	{r3, r4, r5, lr}
+ 80078fc:	4604      	mov	r4, r0
+ 80078fe:	4610      	mov	r0, r2
+ 8007900:	f7ff fdbc 	bl	800747c <LL_ADC_REG_IsConversionOngoing>
+ 8007904:	b908      	cbnz	r0, 800790a <ADC_ConversionStop+0x12>
+ 8007906:	2000      	movs	r0, #0
+ 8007908:	bd38      	pop	{r3, r4, r5, pc}
+ 800790a:	6893      	ldr	r3, [r2, #8]
+ 800790c:	0799      	lsls	r1, r3, #30
+ 800790e:	d407      	bmi.n	8007920 <ADC_ConversionStop+0x28>
+ 8007910:	6893      	ldr	r3, [r2, #8]
+ 8007912:	f023 4300 	bic.w	r3, r3, #2147483648	; 0x80000000
+ 8007916:	f023 0317 	bic.w	r3, r3, #23
+ 800791a:	f043 0310 	orr.w	r3, r3, #16
+ 800791e:	6093      	str	r3, [r2, #8]
+ 8007920:	f7fb f914 	bl	8002b4c <HAL_GetTick>
+ 8007924:	4605      	mov	r5, r0
+ 8007926:	6823      	ldr	r3, [r4, #0]
+ 8007928:	689b      	ldr	r3, [r3, #8]
+ 800792a:	075b      	lsls	r3, r3, #29
+ 800792c:	d5eb      	bpl.n	8007906 <ADC_ConversionStop+0xe>
+ 800792e:	f7fb f90d 	bl	8002b4c <HAL_GetTick>
+ 8007932:	1b40      	subs	r0, r0, r5
+ 8007934:	2802      	cmp	r0, #2
+ 8007936:	d9f6      	bls.n	8007926 <ADC_ConversionStop+0x2e>
+ 8007938:	6823      	ldr	r3, [r4, #0]
+ 800793a:	689b      	ldr	r3, [r3, #8]
+ 800793c:	075a      	lsls	r2, r3, #29
+ 800793e:	d5f2      	bpl.n	8007926 <ADC_ConversionStop+0x2e>
+ 8007940:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8007942:	f043 0310 	orr.w	r3, r3, #16
+ 8007946:	65a3      	str	r3, [r4, #88]	; 0x58
+ 8007948:	6de3      	ldr	r3, [r4, #92]	; 0x5c
+ 800794a:	f043 0301 	orr.w	r3, r3, #1
+ 800794e:	65e3      	str	r3, [r4, #92]	; 0x5c
+ 8007950:	2001      	movs	r0, #1
+ 8007952:	e7d9      	b.n	8007908 <ADC_ConversionStop+0x10>
+
+08007954 <ADC_Enable>:
+ 8007954:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 8007956:	2300      	movs	r3, #0
+ 8007958:	6802      	ldr	r2, [r0, #0]
+ 800795a:	9301      	str	r3, [sp, #4]
+ 800795c:	6893      	ldr	r3, [r2, #8]
+ 800795e:	07dd      	lsls	r5, r3, #31
+ 8007960:	4604      	mov	r4, r0
+ 8007962:	d502      	bpl.n	800796a <ADC_Enable+0x16>
+ 8007964:	2000      	movs	r0, #0
+ 8007966:	b002      	add	sp, #8
+ 8007968:	bd70      	pop	{r4, r5, r6, pc}
+ 800796a:	6891      	ldr	r1, [r2, #8]
+ 800796c:	4b21      	ldr	r3, [pc, #132]	; (80079f4 <ADC_Enable+0xa0>)
+ 800796e:	4219      	tst	r1, r3
+ 8007970:	d009      	beq.n	8007986 <ADC_Enable+0x32>
+ 8007972:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8007974:	f043 0310 	orr.w	r3, r3, #16
+ 8007978:	65a3      	str	r3, [r4, #88]	; 0x58
+ 800797a:	6de3      	ldr	r3, [r4, #92]	; 0x5c
+ 800797c:	f043 0301 	orr.w	r3, r3, #1
+ 8007980:	65e3      	str	r3, [r4, #92]	; 0x5c
+ 8007982:	2001      	movs	r0, #1
+ 8007984:	e7ef      	b.n	8007966 <ADC_Enable+0x12>
+ 8007986:	6893      	ldr	r3, [r2, #8]
+ 8007988:	f023 4300 	bic.w	r3, r3, #2147483648	; 0x80000000
+ 800798c:	f023 0317 	bic.w	r3, r3, #23
+ 8007990:	f043 0301 	orr.w	r3, r3, #1
+ 8007994:	6093      	str	r3, [r2, #8]
+ 8007996:	4b18      	ldr	r3, [pc, #96]	; (80079f8 <ADC_Enable+0xa4>)
+ 8007998:	f8d3 3708 	ldr.w	r3, [r3, #1800]	; 0x708
+ 800799c:	0218      	lsls	r0, r3, #8
+ 800799e:	d41c      	bmi.n	80079da <ADC_Enable+0x86>
+ 80079a0:	7e63      	ldrb	r3, [r4, #25]
+ 80079a2:	2b01      	cmp	r3, #1
+ 80079a4:	d0de      	beq.n	8007964 <ADC_Enable+0x10>
+ 80079a6:	f7fb f8d1 	bl	8002b4c <HAL_GetTick>
+ 80079aa:	4e14      	ldr	r6, [pc, #80]	; (80079fc <ADC_Enable+0xa8>)
+ 80079ac:	4605      	mov	r5, r0
+ 80079ae:	6822      	ldr	r2, [r4, #0]
+ 80079b0:	6813      	ldr	r3, [r2, #0]
+ 80079b2:	07db      	lsls	r3, r3, #31
+ 80079b4:	d4d6      	bmi.n	8007964 <ADC_Enable+0x10>
+ 80079b6:	6893      	ldr	r3, [r2, #8]
+ 80079b8:	07d9      	lsls	r1, r3, #31
+ 80079ba:	bf5f      	itttt	pl
+ 80079bc:	6893      	ldrpl	r3, [r2, #8]
+ 80079be:	4033      	andpl	r3, r6
+ 80079c0:	f043 0301 	orrpl.w	r3, r3, #1
+ 80079c4:	6093      	strpl	r3, [r2, #8]
+ 80079c6:	f7fb f8c1 	bl	8002b4c <HAL_GetTick>
+ 80079ca:	1b40      	subs	r0, r0, r5
+ 80079cc:	2802      	cmp	r0, #2
+ 80079ce:	d9ee      	bls.n	80079ae <ADC_Enable+0x5a>
+ 80079d0:	6823      	ldr	r3, [r4, #0]
+ 80079d2:	681b      	ldr	r3, [r3, #0]
+ 80079d4:	07da      	lsls	r2, r3, #31
+ 80079d6:	d4ea      	bmi.n	80079ae <ADC_Enable+0x5a>
+ 80079d8:	e7cb      	b.n	8007972 <ADC_Enable+0x1e>
+ 80079da:	4b09      	ldr	r3, [pc, #36]	; (8007a00 <ADC_Enable+0xac>)
+ 80079dc:	4a09      	ldr	r2, [pc, #36]	; (8007a04 <ADC_Enable+0xb0>)
+ 80079de:	681b      	ldr	r3, [r3, #0]
+ 80079e0:	fbb3 f3f2 	udiv	r3, r3, r2
+ 80079e4:	3301      	adds	r3, #1
+ 80079e6:	9301      	str	r3, [sp, #4]
+ 80079e8:	9b01      	ldr	r3, [sp, #4]
+ 80079ea:	2b00      	cmp	r3, #0
+ 80079ec:	d0d8      	beq.n	80079a0 <ADC_Enable+0x4c>
+ 80079ee:	9b01      	ldr	r3, [sp, #4]
+ 80079f0:	3b01      	subs	r3, #1
+ 80079f2:	e7f8      	b.n	80079e6 <ADC_Enable+0x92>
+ 80079f4:	80000017 	.word	0x80000017
+ 80079f8:	40012000 	.word	0x40012000
+ 80079fc:	7fffffe8 	.word	0x7fffffe8
+ 8007a00:	20000828 	.word	0x20000828
+ 8007a04:	00030d40 	.word	0x00030d40
+
+08007a08 <HAL_ADC_Start>:
+ 8007a08:	b538      	push	{r3, r4, r5, lr}
+ 8007a0a:	4604      	mov	r4, r0
+ 8007a0c:	6800      	ldr	r0, [r0, #0]
+ 8007a0e:	f7ff fd35 	bl	800747c <LL_ADC_REG_IsConversionOngoing>
+ 8007a12:	4605      	mov	r5, r0
+ 8007a14:	bb20      	cbnz	r0, 8007a60 <HAL_ADC_Start+0x58>
+ 8007a16:	f894 3054 	ldrb.w	r3, [r4, #84]	; 0x54
+ 8007a1a:	2b01      	cmp	r3, #1
+ 8007a1c:	d020      	beq.n	8007a60 <HAL_ADC_Start+0x58>
+ 8007a1e:	2301      	movs	r3, #1
+ 8007a20:	f884 3054 	strb.w	r3, [r4, #84]	; 0x54
+ 8007a24:	4620      	mov	r0, r4
+ 8007a26:	f7ff ff95 	bl	8007954 <ADC_Enable>
+ 8007a2a:	b9b0      	cbnz	r0, 8007a5a <HAL_ADC_Start+0x52>
+ 8007a2c:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8007a2e:	6822      	ldr	r2, [r4, #0]
+ 8007a30:	f423 6370 	bic.w	r3, r3, #3840	; 0xf00
+ 8007a34:	f023 0301 	bic.w	r3, r3, #1
+ 8007a38:	f443 7380 	orr.w	r3, r3, #256	; 0x100
+ 8007a3c:	65a3      	str	r3, [r4, #88]	; 0x58
+ 8007a3e:	231c      	movs	r3, #28
+ 8007a40:	65e0      	str	r0, [r4, #92]	; 0x5c
+ 8007a42:	6013      	str	r3, [r2, #0]
+ 8007a44:	f884 0054 	strb.w	r0, [r4, #84]	; 0x54
+ 8007a48:	6893      	ldr	r3, [r2, #8]
+ 8007a4a:	f023 4300 	bic.w	r3, r3, #2147483648	; 0x80000000
+ 8007a4e:	f023 0317 	bic.w	r3, r3, #23
+ 8007a52:	f043 0304 	orr.w	r3, r3, #4
+ 8007a56:	6093      	str	r3, [r2, #8]
+ 8007a58:	bd38      	pop	{r3, r4, r5, pc}
+ 8007a5a:	f884 5054 	strb.w	r5, [r4, #84]	; 0x54
+ 8007a5e:	e7fb      	b.n	8007a58 <HAL_ADC_Start+0x50>
+ 8007a60:	2002      	movs	r0, #2
+ 8007a62:	e7f9      	b.n	8007a58 <HAL_ADC_Start+0x50>
+
+08007a64 <ADC_Disable>:
+ 8007a64:	6802      	ldr	r2, [r0, #0]
+ 8007a66:	b538      	push	{r3, r4, r5, lr}
+ 8007a68:	6893      	ldr	r3, [r2, #8]
+ 8007a6a:	6891      	ldr	r1, [r2, #8]
+ 8007a6c:	4604      	mov	r4, r0
+ 8007a6e:	07c8      	lsls	r0, r1, #31
+ 8007a70:	d401      	bmi.n	8007a76 <ADC_Disable+0x12>
+ 8007a72:	2000      	movs	r0, #0
+ 8007a74:	bd38      	pop	{r3, r4, r5, pc}
+ 8007a76:	0799      	lsls	r1, r3, #30
+ 8007a78:	d4fb      	bmi.n	8007a72 <ADC_Disable+0xe>
+ 8007a7a:	6893      	ldr	r3, [r2, #8]
+ 8007a7c:	f003 0305 	and.w	r3, r3, #5
+ 8007a80:	2b01      	cmp	r3, #1
+ 8007a82:	d119      	bne.n	8007ab8 <ADC_Disable+0x54>
+ 8007a84:	6893      	ldr	r3, [r2, #8]
+ 8007a86:	f023 4300 	bic.w	r3, r3, #2147483648	; 0x80000000
+ 8007a8a:	f023 0317 	bic.w	r3, r3, #23
+ 8007a8e:	f043 0302 	orr.w	r3, r3, #2
+ 8007a92:	6093      	str	r3, [r2, #8]
+ 8007a94:	2303      	movs	r3, #3
+ 8007a96:	6013      	str	r3, [r2, #0]
+ 8007a98:	f7fb f858 	bl	8002b4c <HAL_GetTick>
+ 8007a9c:	4605      	mov	r5, r0
+ 8007a9e:	6823      	ldr	r3, [r4, #0]
+ 8007aa0:	689b      	ldr	r3, [r3, #8]
+ 8007aa2:	07db      	lsls	r3, r3, #31
+ 8007aa4:	d5e5      	bpl.n	8007a72 <ADC_Disable+0xe>
+ 8007aa6:	f7fb f851 	bl	8002b4c <HAL_GetTick>
+ 8007aaa:	1b40      	subs	r0, r0, r5
+ 8007aac:	2802      	cmp	r0, #2
+ 8007aae:	d9f6      	bls.n	8007a9e <ADC_Disable+0x3a>
+ 8007ab0:	6823      	ldr	r3, [r4, #0]
+ 8007ab2:	689b      	ldr	r3, [r3, #8]
+ 8007ab4:	07da      	lsls	r2, r3, #31
+ 8007ab6:	d5f2      	bpl.n	8007a9e <ADC_Disable+0x3a>
+ 8007ab8:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8007aba:	f043 0310 	orr.w	r3, r3, #16
+ 8007abe:	65a3      	str	r3, [r4, #88]	; 0x58
+ 8007ac0:	6de3      	ldr	r3, [r4, #92]	; 0x5c
+ 8007ac2:	f043 0301 	orr.w	r3, r3, #1
+ 8007ac6:	65e3      	str	r3, [r4, #92]	; 0x5c
+ 8007ac8:	2001      	movs	r0, #1
+ 8007aca:	e7d3      	b.n	8007a74 <ADC_Disable+0x10>
+
+08007acc <HAL_ADC_DeInit>:
+ 8007acc:	b570      	push	{r4, r5, r6, lr}
+ 8007ace:	4604      	mov	r4, r0
+ 8007ad0:	2800      	cmp	r0, #0
+ 8007ad2:	d04b      	beq.n	8007b6c <HAL_ADC_DeInit+0xa0>
+ 8007ad4:	6d83      	ldr	r3, [r0, #88]	; 0x58
+ 8007ad6:	f043 0302 	orr.w	r3, r3, #2
+ 8007ada:	6583      	str	r3, [r0, #88]	; 0x58
+ 8007adc:	f7ff ff0c 	bl	80078f8 <ADC_ConversionStop>
+ 8007ae0:	4605      	mov	r5, r0
+ 8007ae2:	b968      	cbnz	r0, 8007b00 <HAL_ADC_DeInit+0x34>
+ 8007ae4:	4620      	mov	r0, r4
+ 8007ae6:	f7ff ffbd 	bl	8007a64 <ADC_Disable>
+ 8007aea:	4605      	mov	r5, r0
+ 8007aec:	b908      	cbnz	r0, 8007af2 <HAL_ADC_DeInit+0x26>
+ 8007aee:	2301      	movs	r3, #1
+ 8007af0:	65a3      	str	r3, [r4, #88]	; 0x58
+ 8007af2:	6822      	ldr	r2, [r4, #0]
+ 8007af4:	6893      	ldr	r3, [r2, #8]
+ 8007af6:	f023 4310 	bic.w	r3, r3, #2415919104	; 0x90000000
+ 8007afa:	f023 0317 	bic.w	r3, r3, #23
+ 8007afe:	6093      	str	r3, [r2, #8]
+ 8007b00:	6823      	ldr	r3, [r4, #0]
+ 8007b02:	685a      	ldr	r2, [r3, #4]
+ 8007b04:	f422 7267 	bic.w	r2, r2, #924	; 0x39c
+ 8007b08:	f022 0203 	bic.w	r2, r2, #3
+ 8007b0c:	605a      	str	r2, [r3, #4]
+ 8007b0e:	f240 329f 	movw	r2, #927	; 0x39f
+ 8007b12:	601a      	str	r2, [r3, #0]
+ 8007b14:	68d9      	ldr	r1, [r3, #12]
+ 8007b16:	4a16      	ldr	r2, [pc, #88]	; (8007b70 <HAL_ADC_DeInit+0xa4>)
+ 8007b18:	400a      	ands	r2, r1
+ 8007b1a:	60da      	str	r2, [r3, #12]
+ 8007b1c:	691a      	ldr	r2, [r3, #16]
+ 8007b1e:	f022 4240 	bic.w	r2, r2, #3221225472	; 0xc0000000
+ 8007b22:	611a      	str	r2, [r3, #16]
+ 8007b24:	695a      	ldr	r2, [r3, #20]
+ 8007b26:	f022 0207 	bic.w	r2, r2, #7
+ 8007b2a:	615a      	str	r2, [r3, #20]
+ 8007b2c:	6a1a      	ldr	r2, [r3, #32]
+ 8007b2e:	f002 22f0 	and.w	r2, r2, #4026593280	; 0xf000f000
+ 8007b32:	621a      	str	r2, [r3, #32]
+ 8007b34:	6a5a      	ldr	r2, [r3, #36]	; 0x24
+ 8007b36:	f002 22f0 	and.w	r2, r2, #4026593280	; 0xf000f000
+ 8007b3a:	625a      	str	r2, [r3, #36]	; 0x24
+ 8007b3c:	6ada      	ldr	r2, [r3, #44]	; 0x2c
+ 8007b3e:	f002 22f0 	and.w	r2, r2, #4026593280	; 0xf000f000
+ 8007b42:	62da      	str	r2, [r3, #44]	; 0x2c
+ 8007b44:	6a9a      	ldr	r2, [r3, #40]	; 0x28
+ 8007b46:	4a0b      	ldr	r2, [pc, #44]	; (8007b74 <HAL_ADC_DeInit+0xa8>)
+ 8007b48:	2600      	movs	r6, #0
+ 8007b4a:	629e      	str	r6, [r3, #40]	; 0x28
+ 8007b4c:	f8d2 3708 	ldr.w	r3, [r2, #1800]	; 0x708
+ 8007b50:	f023 73fe 	bic.w	r3, r3, #33292288	; 0x1fc0000
+ 8007b54:	f8c2 3708 	str.w	r3, [r2, #1800]	; 0x708
+ 8007b58:	4620      	mov	r0, r4
+ 8007b5a:	f7fa f997 	bl	8001e8c <HAL_ADC_MspDeInit>
+ 8007b5e:	65e6      	str	r6, [r4, #92]	; 0x5c
+ 8007b60:	6626      	str	r6, [r4, #96]	; 0x60
+ 8007b62:	65a6      	str	r6, [r4, #88]	; 0x58
+ 8007b64:	f884 6054 	strb.w	r6, [r4, #84]	; 0x54
+ 8007b68:	4628      	mov	r0, r5
+ 8007b6a:	bd70      	pop	{r4, r5, r6, pc}
+ 8007b6c:	2501      	movs	r5, #1
+ 8007b6e:	e7fb      	b.n	8007b68 <HAL_ADC_DeInit+0x9c>
+ 8007b70:	833e0200 	.word	0x833e0200
+ 8007b74:	40012000 	.word	0x40012000
+
+08007b78 <HAL_ADC_Stop>:
+ 8007b78:	b510      	push	{r4, lr}
+ 8007b7a:	f890 3054 	ldrb.w	r3, [r0, #84]	; 0x54
+ 8007b7e:	2b01      	cmp	r3, #1
+ 8007b80:	4604      	mov	r4, r0
+ 8007b82:	d015      	beq.n	8007bb0 <HAL_ADC_Stop+0x38>
+ 8007b84:	2301      	movs	r3, #1
+ 8007b86:	f880 3054 	strb.w	r3, [r0, #84]	; 0x54
+ 8007b8a:	f7ff feb5 	bl	80078f8 <ADC_ConversionStop>
+ 8007b8e:	b958      	cbnz	r0, 8007ba8 <HAL_ADC_Stop+0x30>
+ 8007b90:	4620      	mov	r0, r4
+ 8007b92:	f7ff ff67 	bl	8007a64 <ADC_Disable>
+ 8007b96:	b938      	cbnz	r0, 8007ba8 <HAL_ADC_Stop+0x30>
+ 8007b98:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8007b9a:	f423 7380 	bic.w	r3, r3, #256	; 0x100
+ 8007b9e:	f023 0301 	bic.w	r3, r3, #1
+ 8007ba2:	f043 0301 	orr.w	r3, r3, #1
+ 8007ba6:	65a3      	str	r3, [r4, #88]	; 0x58
+ 8007ba8:	2300      	movs	r3, #0
+ 8007baa:	f884 3054 	strb.w	r3, [r4, #84]	; 0x54
+ 8007bae:	bd10      	pop	{r4, pc}
+ 8007bb0:	2002      	movs	r0, #2
+ 8007bb2:	e7fc      	b.n	8007bae <HAL_ADC_Stop+0x36>
+
+08007bb4 <HAL_ADCEx_Calibration_Start>:
+ 8007bb4:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
+ 8007bb6:	2300      	movs	r3, #0
+ 8007bb8:	9301      	str	r3, [sp, #4]
+ 8007bba:	f890 3054 	ldrb.w	r3, [r0, #84]	; 0x54
+ 8007bbe:	2b01      	cmp	r3, #1
+ 8007bc0:	4604      	mov	r4, r0
+ 8007bc2:	d07f      	beq.n	8007cc4 <HAL_ADCEx_Calibration_Start+0x110>
+ 8007bc4:	2301      	movs	r3, #1
+ 8007bc6:	f880 3054 	strb.w	r3, [r0, #84]	; 0x54
+ 8007bca:	f7ff ff4b 	bl	8007a64 <ADC_Disable>
+ 8007bce:	6823      	ldr	r3, [r4, #0]
+ 8007bd0:	689a      	ldr	r2, [r3, #8]
+ 8007bd2:	f012 0201 	ands.w	r2, r2, #1
+ 8007bd6:	4605      	mov	r5, r0
+ 8007bd8:	d007      	beq.n	8007bea <HAL_ADCEx_Calibration_Start+0x36>
+ 8007bda:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8007bdc:	f043 0310 	orr.w	r3, r3, #16
+ 8007be0:	65a3      	str	r3, [r4, #88]	; 0x58
+ 8007be2:	2300      	movs	r3, #0
+ 8007be4:	f884 3054 	strb.w	r3, [r4, #84]	; 0x54
+ 8007be8:	e02d      	b.n	8007c46 <HAL_ADCEx_Calibration_Start+0x92>
+ 8007bea:	6da1      	ldr	r1, [r4, #88]	; 0x58
+ 8007bec:	4f36      	ldr	r7, [pc, #216]	; (8007cc8 <HAL_ADCEx_Calibration_Start+0x114>)
+ 8007bee:	f421 7181 	bic.w	r1, r1, #258	; 0x102
+ 8007bf2:	f041 0102 	orr.w	r1, r1, #2
+ 8007bf6:	65a1      	str	r1, [r4, #88]	; 0x58
+ 8007bf8:	68de      	ldr	r6, [r3, #12]
+ 8007bfa:	68d9      	ldr	r1, [r3, #12]
+ 8007bfc:	f426 46ff 	bic.w	r6, r6, #32640	; 0x7f80
+ 8007c00:	f026 067c 	bic.w	r6, r6, #124	; 0x7c
+ 8007c04:	f421 4100 	bic.w	r1, r1, #32768	; 0x8000
+ 8007c08:	0436      	lsls	r6, r6, #16
+ 8007c0a:	f021 0103 	bic.w	r1, r1, #3
+ 8007c0e:	0c36      	lsrs	r6, r6, #16
+ 8007c10:	60d9      	str	r1, [r3, #12]
+ 8007c12:	2008      	movs	r0, #8
+ 8007c14:	6899      	ldr	r1, [r3, #8]
+ 8007c16:	4039      	ands	r1, r7
+ 8007c18:	f041 4100 	orr.w	r1, r1, #2147483648	; 0x80000000
+ 8007c1c:	6099      	str	r1, [r3, #8]
+ 8007c1e:	6899      	ldr	r1, [r3, #8]
+ 8007c20:	2900      	cmp	r1, #0
+ 8007c22:	da13      	bge.n	8007c4c <HAL_ADCEx_Calibration_Start+0x98>
+ 8007c24:	9901      	ldr	r1, [sp, #4]
+ 8007c26:	3101      	adds	r1, #1
+ 8007c28:	9101      	str	r1, [sp, #4]
+ 8007c2a:	9901      	ldr	r1, [sp, #4]
+ 8007c2c:	f5b1 3f2e 	cmp.w	r1, #178176	; 0x2b800
+ 8007c30:	d3f5      	bcc.n	8007c1e <HAL_ADCEx_Calibration_Start+0x6a>
+ 8007c32:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8007c34:	f023 0312 	bic.w	r3, r3, #18
+ 8007c38:	f043 0310 	orr.w	r3, r3, #16
+ 8007c3c:	65a3      	str	r3, [r4, #88]	; 0x58
+ 8007c3e:	2300      	movs	r3, #0
+ 8007c40:	f884 3054 	strb.w	r3, [r4, #84]	; 0x54
+ 8007c44:	2501      	movs	r5, #1
+ 8007c46:	4628      	mov	r0, r5
+ 8007c48:	b003      	add	sp, #12
+ 8007c4a:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8007c4c:	f8d3 10b4 	ldr.w	r1, [r3, #180]	; 0xb4
+ 8007c50:	3801      	subs	r0, #1
+ 8007c52:	f001 017f 	and.w	r1, r1, #127	; 0x7f
+ 8007c56:	440a      	add	r2, r1
+ 8007c58:	d1dc      	bne.n	8007c14 <HAL_ADCEx_Calibration_Start+0x60>
+ 8007c5a:	6899      	ldr	r1, [r3, #8]
+ 8007c5c:	481a      	ldr	r0, [pc, #104]	; (8007cc8 <HAL_ADCEx_Calibration_Start+0x114>)
+ 8007c5e:	4001      	ands	r1, r0
+ 8007c60:	f041 0101 	orr.w	r1, r1, #1
+ 8007c64:	6099      	str	r1, [r3, #8]
+ 8007c66:	f8d3 10b4 	ldr.w	r1, [r3, #180]	; 0xb4
+ 8007c6a:	f021 017f 	bic.w	r1, r1, #127	; 0x7f
+ 8007c6e:	ea41 02d2 	orr.w	r2, r1, r2, lsr #3
+ 8007c72:	f8c3 20b4 	str.w	r2, [r3, #180]	; 0xb4
+ 8007c76:	689a      	ldr	r2, [r3, #8]
+ 8007c78:	4002      	ands	r2, r0
+ 8007c7a:	f042 0202 	orr.w	r2, r2, #2
+ 8007c7e:	609a      	str	r2, [r3, #8]
+ 8007c80:	f7fa ff64 	bl	8002b4c <HAL_GetTick>
+ 8007c84:	4607      	mov	r7, r0
+ 8007c86:	6823      	ldr	r3, [r4, #0]
+ 8007c88:	689a      	ldr	r2, [r3, #8]
+ 8007c8a:	07d2      	lsls	r2, r2, #31
+ 8007c8c:	d408      	bmi.n	8007ca0 <HAL_ADCEx_Calibration_Start+0xec>
+ 8007c8e:	68da      	ldr	r2, [r3, #12]
+ 8007c90:	4332      	orrs	r2, r6
+ 8007c92:	60da      	str	r2, [r3, #12]
+ 8007c94:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8007c96:	f023 0303 	bic.w	r3, r3, #3
+ 8007c9a:	f043 0301 	orr.w	r3, r3, #1
+ 8007c9e:	e79f      	b.n	8007be0 <HAL_ADCEx_Calibration_Start+0x2c>
+ 8007ca0:	f7fa ff54 	bl	8002b4c <HAL_GetTick>
+ 8007ca4:	1bc0      	subs	r0, r0, r7
+ 8007ca6:	2802      	cmp	r0, #2
+ 8007ca8:	d9ed      	bls.n	8007c86 <HAL_ADCEx_Calibration_Start+0xd2>
+ 8007caa:	6823      	ldr	r3, [r4, #0]
+ 8007cac:	689b      	ldr	r3, [r3, #8]
+ 8007cae:	07d9      	lsls	r1, r3, #31
+ 8007cb0:	d5e9      	bpl.n	8007c86 <HAL_ADCEx_Calibration_Start+0xd2>
+ 8007cb2:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8007cb4:	f043 0310 	orr.w	r3, r3, #16
+ 8007cb8:	65a3      	str	r3, [r4, #88]	; 0x58
+ 8007cba:	6de3      	ldr	r3, [r4, #92]	; 0x5c
+ 8007cbc:	f043 0301 	orr.w	r3, r3, #1
+ 8007cc0:	65e3      	str	r3, [r4, #92]	; 0x5c
+ 8007cc2:	e7bf      	b.n	8007c44 <HAL_ADCEx_Calibration_Start+0x90>
+ 8007cc4:	2502      	movs	r5, #2
+ 8007cc6:	e7be      	b.n	8007c46 <HAL_ADCEx_Calibration_Start+0x92>
+ 8007cc8:	7fffffe8 	.word	0x7fffffe8
+
+08007ccc <HAL_NVIC_SetPriorityGrouping>:
+ 8007ccc:	4907      	ldr	r1, [pc, #28]	; (8007cec <HAL_NVIC_SetPriorityGrouping+0x20>)
+ 8007cce:	68ca      	ldr	r2, [r1, #12]
+ 8007cd0:	f422 62e0 	bic.w	r2, r2, #1792	; 0x700
+ 8007cd4:	0203      	lsls	r3, r0, #8
+ 8007cd6:	0412      	lsls	r2, r2, #16
+ 8007cd8:	f403 63e0 	and.w	r3, r3, #1792	; 0x700
+ 8007cdc:	0c12      	lsrs	r2, r2, #16
+ 8007cde:	4313      	orrs	r3, r2
+ 8007ce0:	f043 63bf 	orr.w	r3, r3, #100139008	; 0x5f80000
+ 8007ce4:	f443 3300 	orr.w	r3, r3, #131072	; 0x20000
+ 8007ce8:	60cb      	str	r3, [r1, #12]
+ 8007cea:	4770      	bx	lr
+ 8007cec:	e000ed00 	.word	0xe000ed00
+
+08007cf0 <HAL_NVIC_SetPriority>:
+ 8007cf0:	4b16      	ldr	r3, [pc, #88]	; (8007d4c <HAL_NVIC_SetPriority+0x5c>)
+ 8007cf2:	b530      	push	{r4, r5, lr}
+ 8007cf4:	68dc      	ldr	r4, [r3, #12]
+ 8007cf6:	f3c4 2402 	ubfx	r4, r4, #8, #3
+ 8007cfa:	f1c4 0307 	rsb	r3, r4, #7
+ 8007cfe:	1d25      	adds	r5, r4, #4
+ 8007d00:	2b04      	cmp	r3, #4
+ 8007d02:	bf28      	it	cs
+ 8007d04:	2304      	movcs	r3, #4
+ 8007d06:	2d06      	cmp	r5, #6
+ 8007d08:	f04f 35ff 	mov.w	r5, #4294967295
+ 8007d0c:	bf8c      	ite	hi
+ 8007d0e:	3c03      	subhi	r4, #3
+ 8007d10:	2400      	movls	r4, #0
+ 8007d12:	fa05 f303 	lsl.w	r3, r5, r3
+ 8007d16:	ea21 0303 	bic.w	r3, r1, r3
+ 8007d1a:	40a5      	lsls	r5, r4
+ 8007d1c:	ea22 0205 	bic.w	r2, r2, r5
+ 8007d20:	40a3      	lsls	r3, r4
+ 8007d22:	2800      	cmp	r0, #0
+ 8007d24:	ea43 0302 	orr.w	r3, r3, r2
+ 8007d28:	bfac      	ite	ge
+ 8007d2a:	f100 4060 	addge.w	r0, r0, #3758096384	; 0xe0000000
+ 8007d2e:	4a08      	ldrlt	r2, [pc, #32]	; (8007d50 <HAL_NVIC_SetPriority+0x60>)
+ 8007d30:	ea4f 1303 	mov.w	r3, r3, lsl #4
+ 8007d34:	bfb8      	it	lt
+ 8007d36:	f000 000f 	andlt.w	r0, r0, #15
+ 8007d3a:	b2db      	uxtb	r3, r3
+ 8007d3c:	bfaa      	itet	ge
+ 8007d3e:	f500 4061 	addge.w	r0, r0, #57600	; 0xe100
+ 8007d42:	5413      	strblt	r3, [r2, r0]
+ 8007d44:	f880 3300 	strbge.w	r3, [r0, #768]	; 0x300
+ 8007d48:	bd30      	pop	{r4, r5, pc}
+ 8007d4a:	bf00      	nop
+ 8007d4c:	e000ed00 	.word	0xe000ed00
+ 8007d50:	e000ed14 	.word	0xe000ed14
+
+08007d54 <HAL_NVIC_EnableIRQ>:
+ 8007d54:	2800      	cmp	r0, #0
+ 8007d56:	db07      	blt.n	8007d68 <HAL_NVIC_EnableIRQ+0x14>
+ 8007d58:	4a04      	ldr	r2, [pc, #16]	; (8007d6c <HAL_NVIC_EnableIRQ+0x18>)
+ 8007d5a:	0941      	lsrs	r1, r0, #5
+ 8007d5c:	2301      	movs	r3, #1
+ 8007d5e:	f000 001f 	and.w	r0, r0, #31
+ 8007d62:	4083      	lsls	r3, r0
+ 8007d64:	f842 3021 	str.w	r3, [r2, r1, lsl #2]
+ 8007d68:	4770      	bx	lr
+ 8007d6a:	bf00      	nop
+ 8007d6c:	e000e100 	.word	0xe000e100
+
+08007d70 <HAL_NVIC_DisableIRQ>:
+ 8007d70:	2800      	cmp	r0, #0
+ 8007d72:	db0c      	blt.n	8007d8e <HAL_NVIC_DisableIRQ+0x1e>
+ 8007d74:	0943      	lsrs	r3, r0, #5
+ 8007d76:	4906      	ldr	r1, [pc, #24]	; (8007d90 <HAL_NVIC_DisableIRQ+0x20>)
+ 8007d78:	f000 001f 	and.w	r0, r0, #31
+ 8007d7c:	3320      	adds	r3, #32
+ 8007d7e:	2201      	movs	r2, #1
+ 8007d80:	4082      	lsls	r2, r0
+ 8007d82:	f841 2023 	str.w	r2, [r1, r3, lsl #2]
+ 8007d86:	f3bf 8f4f 	dsb	sy
+ 8007d8a:	f3bf 8f6f 	isb	sy
+ 8007d8e:	4770      	bx	lr
+ 8007d90:	e000e100 	.word	0xe000e100
+
+08007d94 <DMA_SetConfig>:
+ 8007d94:	b570      	push	{r4, r5, r6, lr}
+ 8007d96:	e9d0 4513 	ldrd	r4, r5, [r0, #76]	; 0x4c
+ 8007d9a:	6065      	str	r5, [r4, #4]
+ 8007d9c:	6d44      	ldr	r4, [r0, #84]	; 0x54
+ 8007d9e:	b114      	cbz	r4, 8007da6 <DMA_SetConfig+0x12>
+ 8007da0:	e9d0 4516 	ldrd	r4, r5, [r0, #88]	; 0x58
+ 8007da4:	6065      	str	r5, [r4, #4]
+ 8007da6:	e9d0 5410 	ldrd	r5, r4, [r0, #64]	; 0x40
+ 8007daa:	f004 061c 	and.w	r6, r4, #28
+ 8007dae:	2401      	movs	r4, #1
+ 8007db0:	40b4      	lsls	r4, r6
+ 8007db2:	606c      	str	r4, [r5, #4]
+ 8007db4:	6804      	ldr	r4, [r0, #0]
+ 8007db6:	6063      	str	r3, [r4, #4]
+ 8007db8:	6883      	ldr	r3, [r0, #8]
+ 8007dba:	2b10      	cmp	r3, #16
+ 8007dbc:	bf0b      	itete	eq
+ 8007dbe:	60a2      	streq	r2, [r4, #8]
+ 8007dc0:	60a1      	strne	r1, [r4, #8]
+ 8007dc2:	60e1      	streq	r1, [r4, #12]
+ 8007dc4:	60e2      	strne	r2, [r4, #12]
+ 8007dc6:	bd70      	pop	{r4, r5, r6, pc}
+
+08007dc8 <DMA_CalcDMAMUXChannelBaseAndMask>:
+ 8007dc8:	6802      	ldr	r2, [r0, #0]
+ 8007dca:	6c41      	ldr	r1, [r0, #68]	; 0x44
+ 8007dcc:	b2d3      	uxtb	r3, r2
+ 8007dce:	b510      	push	{r4, lr}
+ 8007dd0:	3b08      	subs	r3, #8
+ 8007dd2:	2414      	movs	r4, #20
+ 8007dd4:	fbb3 f3f4 	udiv	r3, r3, r4
+ 8007dd8:	4c0b      	ldr	r4, [pc, #44]	; (8007e08 <DMA_CalcDMAMUXChannelBaseAndMask+0x40>)
+ 8007dda:	42a2      	cmp	r2, r4
+ 8007ddc:	bf88      	it	hi
+ 8007dde:	4a0b      	ldrhi	r2, [pc, #44]	; (8007e0c <DMA_CalcDMAMUXChannelBaseAndMask+0x44>)
+ 8007de0:	f021 0103 	bic.w	r1, r1, #3
+ 8007de4:	bf99      	ittee	ls
+ 8007de6:	f101 4280 	addls.w	r2, r1, #1073741824	; 0x40000000
+ 8007dea:	f502 3202 	addls.w	r2, r2, #133120	; 0x20800
+ 8007dee:	1852      	addhi	r2, r2, r1
+ 8007df0:	3307      	addhi	r3, #7
+ 8007df2:	6482      	str	r2, [r0, #72]	; 0x48
+ 8007df4:	4a06      	ldr	r2, [pc, #24]	; (8007e10 <DMA_CalcDMAMUXChannelBaseAndMask+0x48>)
+ 8007df6:	64c2      	str	r2, [r0, #76]	; 0x4c
+ 8007df8:	f003 031f 	and.w	r3, r3, #31
+ 8007dfc:	2201      	movs	r2, #1
+ 8007dfe:	fa02 f303 	lsl.w	r3, r2, r3
+ 8007e02:	6503      	str	r3, [r0, #80]	; 0x50
+ 8007e04:	bd10      	pop	{r4, pc}
+ 8007e06:	bf00      	nop
+ 8007e08:	40020407 	.word	0x40020407
+ 8007e0c:	4002081c 	.word	0x4002081c
+ 8007e10:	40020880 	.word	0x40020880
+
+08007e14 <HAL_DMA_Init>:
+ 8007e14:	b538      	push	{r3, r4, r5, lr}
+ 8007e16:	2800      	cmp	r0, #0
+ 8007e18:	d05e      	beq.n	8007ed8 <HAL_DMA_Init+0xc4>
+ 8007e1a:	6802      	ldr	r2, [r0, #0]
+ 8007e1c:	4b2f      	ldr	r3, [pc, #188]	; (8007edc <HAL_DMA_Init+0xc8>)
+ 8007e1e:	429a      	cmp	r2, r3
+ 8007e20:	f04f 0114 	mov.w	r1, #20
+ 8007e24:	d84c      	bhi.n	8007ec0 <HAL_DMA_Init+0xac>
+ 8007e26:	4b2e      	ldr	r3, [pc, #184]	; (8007ee0 <HAL_DMA_Init+0xcc>)
+ 8007e28:	4413      	add	r3, r2
+ 8007e2a:	fbb3 f3f1 	udiv	r3, r3, r1
+ 8007e2e:	492d      	ldr	r1, [pc, #180]	; (8007ee4 <HAL_DMA_Init+0xd0>)
+ 8007e30:	009b      	lsls	r3, r3, #2
+ 8007e32:	e9c0 1310 	strd	r1, r3, [r0, #64]	; 0x40
+ 8007e36:	2302      	movs	r3, #2
+ 8007e38:	f880 3025 	strb.w	r3, [r0, #37]	; 0x25
+ 8007e3c:	6813      	ldr	r3, [r2, #0]
+ 8007e3e:	6905      	ldr	r5, [r0, #16]
+ 8007e40:	f423 43ff 	bic.w	r3, r3, #32640	; 0x7f80
+ 8007e44:	f023 0370 	bic.w	r3, r3, #112	; 0x70
+ 8007e48:	6013      	str	r3, [r2, #0]
+ 8007e4a:	e9d0 4302 	ldrd	r4, r3, [r0, #8]
+ 8007e4e:	4323      	orrs	r3, r4
+ 8007e50:	432b      	orrs	r3, r5
+ 8007e52:	6945      	ldr	r5, [r0, #20]
+ 8007e54:	6811      	ldr	r1, [r2, #0]
+ 8007e56:	432b      	orrs	r3, r5
+ 8007e58:	6985      	ldr	r5, [r0, #24]
+ 8007e5a:	432b      	orrs	r3, r5
+ 8007e5c:	69c5      	ldr	r5, [r0, #28]
+ 8007e5e:	432b      	orrs	r3, r5
+ 8007e60:	6a05      	ldr	r5, [r0, #32]
+ 8007e62:	432b      	orrs	r3, r5
+ 8007e64:	430b      	orrs	r3, r1
+ 8007e66:	6013      	str	r3, [r2, #0]
+ 8007e68:	f7ff ffae 	bl	8007dc8 <DMA_CalcDMAMUXChannelBaseAndMask>
+ 8007e6c:	f5b4 4f80 	cmp.w	r4, #16384	; 0x4000
+ 8007e70:	bf04      	itt	eq
+ 8007e72:	2300      	moveq	r3, #0
+ 8007e74:	6043      	streq	r3, [r0, #4]
+ 8007e76:	6842      	ldr	r2, [r0, #4]
+ 8007e78:	6c81      	ldr	r1, [r0, #72]	; 0x48
+ 8007e7a:	f002 037f 	and.w	r3, r2, #127	; 0x7f
+ 8007e7e:	600b      	str	r3, [r1, #0]
+ 8007e80:	e9d0 1413 	ldrd	r1, r4, [r0, #76]	; 0x4c
+ 8007e84:	3a01      	subs	r2, #1
+ 8007e86:	2a03      	cmp	r2, #3
+ 8007e88:	604c      	str	r4, [r1, #4]
+ 8007e8a:	d820      	bhi.n	8007ece <HAL_DMA_Init+0xba>
+ 8007e8c:	4a16      	ldr	r2, [pc, #88]	; (8007ee8 <HAL_DMA_Init+0xd4>)
+ 8007e8e:	4917      	ldr	r1, [pc, #92]	; (8007eec <HAL_DMA_Init+0xd8>)
+ 8007e90:	6581      	str	r1, [r0, #88]	; 0x58
+ 8007e92:	441a      	add	r2, r3
+ 8007e94:	3b01      	subs	r3, #1
+ 8007e96:	0092      	lsls	r2, r2, #2
+ 8007e98:	2101      	movs	r1, #1
+ 8007e9a:	f003 0303 	and.w	r3, r3, #3
+ 8007e9e:	fa01 f303 	lsl.w	r3, r1, r3
+ 8007ea2:	2100      	movs	r1, #0
+ 8007ea4:	6542      	str	r2, [r0, #84]	; 0x54
+ 8007ea6:	65c3      	str	r3, [r0, #92]	; 0x5c
+ 8007ea8:	6011      	str	r1, [r2, #0]
+ 8007eaa:	4a11      	ldr	r2, [pc, #68]	; (8007ef0 <HAL_DMA_Init+0xdc>)
+ 8007eac:	6453      	str	r3, [r2, #68]	; 0x44
+ 8007eae:	2300      	movs	r3, #0
+ 8007eb0:	2201      	movs	r2, #1
+ 8007eb2:	63c3      	str	r3, [r0, #60]	; 0x3c
+ 8007eb4:	f880 3024 	strb.w	r3, [r0, #36]	; 0x24
+ 8007eb8:	f880 2025 	strb.w	r2, [r0, #37]	; 0x25
+ 8007ebc:	4618      	mov	r0, r3
+ 8007ebe:	bd38      	pop	{r3, r4, r5, pc}
+ 8007ec0:	4b0c      	ldr	r3, [pc, #48]	; (8007ef4 <HAL_DMA_Init+0xe0>)
+ 8007ec2:	4413      	add	r3, r2
+ 8007ec4:	fbb3 f3f1 	udiv	r3, r3, r1
+ 8007ec8:	490b      	ldr	r1, [pc, #44]	; (8007ef8 <HAL_DMA_Init+0xe4>)
+ 8007eca:	009b      	lsls	r3, r3, #2
+ 8007ecc:	e7b1      	b.n	8007e32 <HAL_DMA_Init+0x1e>
+ 8007ece:	2300      	movs	r3, #0
+ 8007ed0:	e9c0 3315 	strd	r3, r3, [r0, #84]	; 0x54
+ 8007ed4:	65c3      	str	r3, [r0, #92]	; 0x5c
+ 8007ed6:	e7ea      	b.n	8007eae <HAL_DMA_Init+0x9a>
+ 8007ed8:	2001      	movs	r0, #1
+ 8007eda:	e7f0      	b.n	8007ebe <HAL_DMA_Init+0xaa>
+ 8007edc:	40020407 	.word	0x40020407
+ 8007ee0:	bffdfff8 	.word	0xbffdfff8
+ 8007ee4:	40020000 	.word	0x40020000
+ 8007ee8:	1000823f 	.word	0x1000823f
+ 8007eec:	40020940 	.word	0x40020940
+ 8007ef0:	40020900 	.word	0x40020900
+ 8007ef4:	bffdfbf8 	.word	0xbffdfbf8
+ 8007ef8:	40020400 	.word	0x40020400
+
+08007efc <HAL_DMA_DeInit>:
+ 8007efc:	b538      	push	{r3, r4, r5, lr}
+ 8007efe:	2800      	cmp	r0, #0
+ 8007f00:	d041      	beq.n	8007f86 <HAL_DMA_DeInit+0x8a>
+ 8007f02:	6802      	ldr	r2, [r0, #0]
+ 8007f04:	6813      	ldr	r3, [r2, #0]
+ 8007f06:	f023 0301 	bic.w	r3, r3, #1
+ 8007f0a:	6013      	str	r3, [r2, #0]
+ 8007f0c:	4b1f      	ldr	r3, [pc, #124]	; (8007f8c <HAL_DMA_DeInit+0x90>)
+ 8007f0e:	429a      	cmp	r2, r3
+ 8007f10:	f04f 0114 	mov.w	r1, #20
+ 8007f14:	d830      	bhi.n	8007f78 <HAL_DMA_DeInit+0x7c>
+ 8007f16:	4b1e      	ldr	r3, [pc, #120]	; (8007f90 <HAL_DMA_DeInit+0x94>)
+ 8007f18:	4413      	add	r3, r2
+ 8007f1a:	fbb3 f3f1 	udiv	r3, r3, r1
+ 8007f1e:	491d      	ldr	r1, [pc, #116]	; (8007f94 <HAL_DMA_DeInit+0x98>)
+ 8007f20:	009b      	lsls	r3, r3, #2
+ 8007f22:	e9c0 1310 	strd	r1, r3, [r0, #64]	; 0x40
+ 8007f26:	2401      	movs	r4, #1
+ 8007f28:	f003 031c 	and.w	r3, r3, #28
+ 8007f2c:	fa04 f303 	lsl.w	r3, r4, r3
+ 8007f30:	2500      	movs	r5, #0
+ 8007f32:	6015      	str	r5, [r2, #0]
+ 8007f34:	604b      	str	r3, [r1, #4]
+ 8007f36:	f7ff ff47 	bl	8007dc8 <DMA_CalcDMAMUXChannelBaseAndMask>
+ 8007f3a:	6c83      	ldr	r3, [r0, #72]	; 0x48
+ 8007f3c:	6841      	ldr	r1, [r0, #4]
+ 8007f3e:	601d      	str	r5, [r3, #0]
+ 8007f40:	e9d0 3213 	ldrd	r3, r2, [r0, #76]	; 0x4c
+ 8007f44:	605a      	str	r2, [r3, #4]
+ 8007f46:	1e4a      	subs	r2, r1, #1
+ 8007f48:	2a03      	cmp	r2, #3
+ 8007f4a:	d806      	bhi.n	8007f5a <HAL_DMA_DeInit+0x5e>
+ 8007f4c:	4b12      	ldr	r3, [pc, #72]	; (8007f98 <HAL_DMA_DeInit+0x9c>)
+ 8007f4e:	440b      	add	r3, r1
+ 8007f50:	009b      	lsls	r3, r3, #2
+ 8007f52:	4094      	lsls	r4, r2
+ 8007f54:	601d      	str	r5, [r3, #0]
+ 8007f56:	4b11      	ldr	r3, [pc, #68]	; (8007f9c <HAL_DMA_DeInit+0xa0>)
+ 8007f58:	645c      	str	r4, [r3, #68]	; 0x44
+ 8007f5a:	2300      	movs	r3, #0
+ 8007f5c:	63c3      	str	r3, [r0, #60]	; 0x3c
+ 8007f5e:	e9c0 3315 	strd	r3, r3, [r0, #84]	; 0x54
+ 8007f62:	e9c0 330b 	strd	r3, r3, [r0, #44]	; 0x2c
+ 8007f66:	e9c0 330d 	strd	r3, r3, [r0, #52]	; 0x34
+ 8007f6a:	65c3      	str	r3, [r0, #92]	; 0x5c
+ 8007f6c:	f880 3025 	strb.w	r3, [r0, #37]	; 0x25
+ 8007f70:	f880 3024 	strb.w	r3, [r0, #36]	; 0x24
+ 8007f74:	4618      	mov	r0, r3
+ 8007f76:	bd38      	pop	{r3, r4, r5, pc}
+ 8007f78:	4b09      	ldr	r3, [pc, #36]	; (8007fa0 <HAL_DMA_DeInit+0xa4>)
+ 8007f7a:	4413      	add	r3, r2
+ 8007f7c:	fbb3 f3f1 	udiv	r3, r3, r1
+ 8007f80:	4908      	ldr	r1, [pc, #32]	; (8007fa4 <HAL_DMA_DeInit+0xa8>)
+ 8007f82:	009b      	lsls	r3, r3, #2
+ 8007f84:	e7cd      	b.n	8007f22 <HAL_DMA_DeInit+0x26>
+ 8007f86:	2001      	movs	r0, #1
+ 8007f88:	e7f5      	b.n	8007f76 <HAL_DMA_DeInit+0x7a>
+ 8007f8a:	bf00      	nop
+ 8007f8c:	40020407 	.word	0x40020407
+ 8007f90:	bffdfff8 	.word	0xbffdfff8
+ 8007f94:	40020000 	.word	0x40020000
+ 8007f98:	1000823f 	.word	0x1000823f
+ 8007f9c:	40020900 	.word	0x40020900
+ 8007fa0:	bffdfbf8 	.word	0xbffdfbf8
+ 8007fa4:	40020400 	.word	0x40020400
+
+08007fa8 <HAL_DMA_Start_IT>:
+ 8007fa8:	b570      	push	{r4, r5, r6, lr}
+ 8007faa:	f890 5024 	ldrb.w	r5, [r0, #36]	; 0x24
+ 8007fae:	2d01      	cmp	r5, #1
+ 8007fb0:	4604      	mov	r4, r0
+ 8007fb2:	d03b      	beq.n	800802c <HAL_DMA_Start_IT+0x84>
+ 8007fb4:	f890 6025 	ldrb.w	r6, [r0, #37]	; 0x25
+ 8007fb8:	2501      	movs	r5, #1
+ 8007fba:	42ae      	cmp	r6, r5
+ 8007fbc:	f880 5024 	strb.w	r5, [r0, #36]	; 0x24
+ 8007fc0:	f04f 0600 	mov.w	r6, #0
+ 8007fc4:	d12c      	bne.n	8008020 <HAL_DMA_Start_IT+0x78>
+ 8007fc6:	2502      	movs	r5, #2
+ 8007fc8:	f880 5025 	strb.w	r5, [r0, #37]	; 0x25
+ 8007fcc:	6805      	ldr	r5, [r0, #0]
+ 8007fce:	63c6      	str	r6, [r0, #60]	; 0x3c
+ 8007fd0:	682e      	ldr	r6, [r5, #0]
+ 8007fd2:	f026 0601 	bic.w	r6, r6, #1
+ 8007fd6:	602e      	str	r6, [r5, #0]
+ 8007fd8:	f7ff fedc 	bl	8007d94 <DMA_SetConfig>
+ 8007fdc:	6b03      	ldr	r3, [r0, #48]	; 0x30
+ 8007fde:	b1bb      	cbz	r3, 8008010 <HAL_DMA_Start_IT+0x68>
+ 8007fe0:	682b      	ldr	r3, [r5, #0]
+ 8007fe2:	f043 030e 	orr.w	r3, r3, #14
+ 8007fe6:	602b      	str	r3, [r5, #0]
+ 8007fe8:	6ca3      	ldr	r3, [r4, #72]	; 0x48
+ 8007fea:	681a      	ldr	r2, [r3, #0]
+ 8007fec:	03d2      	lsls	r2, r2, #15
+ 8007fee:	bf42      	ittt	mi
+ 8007ff0:	681a      	ldrmi	r2, [r3, #0]
+ 8007ff2:	f442 7280 	orrmi.w	r2, r2, #256	; 0x100
+ 8007ff6:	601a      	strmi	r2, [r3, #0]
+ 8007ff8:	6d63      	ldr	r3, [r4, #84]	; 0x54
+ 8007ffa:	b11b      	cbz	r3, 8008004 <HAL_DMA_Start_IT+0x5c>
+ 8007ffc:	681a      	ldr	r2, [r3, #0]
+ 8007ffe:	f442 7280 	orr.w	r2, r2, #256	; 0x100
+ 8008002:	601a      	str	r2, [r3, #0]
+ 8008004:	682b      	ldr	r3, [r5, #0]
+ 8008006:	f043 0301 	orr.w	r3, r3, #1
+ 800800a:	602b      	str	r3, [r5, #0]
+ 800800c:	2000      	movs	r0, #0
+ 800800e:	bd70      	pop	{r4, r5, r6, pc}
+ 8008010:	682b      	ldr	r3, [r5, #0]
+ 8008012:	f023 0304 	bic.w	r3, r3, #4
+ 8008016:	602b      	str	r3, [r5, #0]
+ 8008018:	682b      	ldr	r3, [r5, #0]
+ 800801a:	f043 030a 	orr.w	r3, r3, #10
+ 800801e:	e7e2      	b.n	8007fe6 <HAL_DMA_Start_IT+0x3e>
+ 8008020:	2380      	movs	r3, #128	; 0x80
+ 8008022:	63c3      	str	r3, [r0, #60]	; 0x3c
+ 8008024:	f880 6024 	strb.w	r6, [r0, #36]	; 0x24
+ 8008028:	4628      	mov	r0, r5
+ 800802a:	e7f0      	b.n	800800e <HAL_DMA_Start_IT+0x66>
+ 800802c:	2002      	movs	r0, #2
+ 800802e:	e7ee      	b.n	800800e <HAL_DMA_Start_IT+0x66>
+
+08008030 <HAL_DMA_Abort>:
+ 8008030:	4603      	mov	r3, r0
+ 8008032:	b140      	cbz	r0, 8008046 <HAL_DMA_Abort+0x16>
+ 8008034:	f890 2025 	ldrb.w	r2, [r0, #37]	; 0x25
+ 8008038:	2a02      	cmp	r2, #2
+ 800803a:	d006      	beq.n	800804a <HAL_DMA_Abort+0x1a>
+ 800803c:	2204      	movs	r2, #4
+ 800803e:	63c2      	str	r2, [r0, #60]	; 0x3c
+ 8008040:	2200      	movs	r2, #0
+ 8008042:	f880 2024 	strb.w	r2, [r0, #36]	; 0x24
+ 8008046:	2001      	movs	r0, #1
+ 8008048:	4770      	bx	lr
+ 800804a:	6802      	ldr	r2, [r0, #0]
+ 800804c:	6c80      	ldr	r0, [r0, #72]	; 0x48
+ 800804e:	6811      	ldr	r1, [r2, #0]
+ 8008050:	f021 010e 	bic.w	r1, r1, #14
+ 8008054:	6011      	str	r1, [r2, #0]
+ 8008056:	6801      	ldr	r1, [r0, #0]
+ 8008058:	f421 7180 	bic.w	r1, r1, #256	; 0x100
+ 800805c:	6001      	str	r1, [r0, #0]
+ 800805e:	6811      	ldr	r1, [r2, #0]
+ 8008060:	f021 0101 	bic.w	r1, r1, #1
+ 8008064:	6011      	str	r1, [r2, #0]
+ 8008066:	e9d3 0210 	ldrd	r0, r2, [r3, #64]	; 0x40
+ 800806a:	f002 011c 	and.w	r1, r2, #28
+ 800806e:	2201      	movs	r2, #1
+ 8008070:	408a      	lsls	r2, r1
+ 8008072:	6042      	str	r2, [r0, #4]
+ 8008074:	e9d3 2113 	ldrd	r2, r1, [r3, #76]	; 0x4c
+ 8008078:	6051      	str	r1, [r2, #4]
+ 800807a:	6d5a      	ldr	r2, [r3, #84]	; 0x54
+ 800807c:	b132      	cbz	r2, 800808c <HAL_DMA_Abort+0x5c>
+ 800807e:	6811      	ldr	r1, [r2, #0]
+ 8008080:	f421 7180 	bic.w	r1, r1, #256	; 0x100
+ 8008084:	6011      	str	r1, [r2, #0]
+ 8008086:	e9d3 2116 	ldrd	r2, r1, [r3, #88]	; 0x58
+ 800808a:	6051      	str	r1, [r2, #4]
+ 800808c:	2201      	movs	r2, #1
+ 800808e:	2000      	movs	r0, #0
+ 8008090:	f883 2025 	strb.w	r2, [r3, #37]	; 0x25
+ 8008094:	f883 0024 	strb.w	r0, [r3, #36]	; 0x24
+ 8008098:	4770      	bx	lr
+
+0800809a <HAL_DMA_Abort_IT>:
+ 800809a:	b510      	push	{r4, lr}
+ 800809c:	f890 3025 	ldrb.w	r3, [r0, #37]	; 0x25
+ 80080a0:	2b02      	cmp	r3, #2
+ 80080a2:	d003      	beq.n	80080ac <HAL_DMA_Abort_IT+0x12>
+ 80080a4:	2304      	movs	r3, #4
+ 80080a6:	63c3      	str	r3, [r0, #60]	; 0x3c
+ 80080a8:	2001      	movs	r0, #1
+ 80080aa:	bd10      	pop	{r4, pc}
+ 80080ac:	6803      	ldr	r3, [r0, #0]
+ 80080ae:	681a      	ldr	r2, [r3, #0]
+ 80080b0:	f022 020e 	bic.w	r2, r2, #14
+ 80080b4:	601a      	str	r2, [r3, #0]
+ 80080b6:	681a      	ldr	r2, [r3, #0]
+ 80080b8:	f022 0201 	bic.w	r2, r2, #1
+ 80080bc:	601a      	str	r2, [r3, #0]
+ 80080be:	6c82      	ldr	r2, [r0, #72]	; 0x48
+ 80080c0:	6813      	ldr	r3, [r2, #0]
+ 80080c2:	f423 7380 	bic.w	r3, r3, #256	; 0x100
+ 80080c6:	6013      	str	r3, [r2, #0]
+ 80080c8:	e9d0 1310 	ldrd	r1, r3, [r0, #64]	; 0x40
+ 80080cc:	f003 021c 	and.w	r2, r3, #28
+ 80080d0:	2301      	movs	r3, #1
+ 80080d2:	4093      	lsls	r3, r2
+ 80080d4:	604b      	str	r3, [r1, #4]
+ 80080d6:	e9d0 3213 	ldrd	r3, r2, [r0, #76]	; 0x4c
+ 80080da:	605a      	str	r2, [r3, #4]
+ 80080dc:	6d43      	ldr	r3, [r0, #84]	; 0x54
+ 80080de:	b133      	cbz	r3, 80080ee <HAL_DMA_Abort_IT+0x54>
+ 80080e0:	681a      	ldr	r2, [r3, #0]
+ 80080e2:	f422 7280 	bic.w	r2, r2, #256	; 0x100
+ 80080e6:	601a      	str	r2, [r3, #0]
+ 80080e8:	e9d0 3216 	ldrd	r3, r2, [r0, #88]	; 0x58
+ 80080ec:	605a      	str	r2, [r3, #4]
+ 80080ee:	2301      	movs	r3, #1
+ 80080f0:	f880 3025 	strb.w	r3, [r0, #37]	; 0x25
+ 80080f4:	6b83      	ldr	r3, [r0, #56]	; 0x38
+ 80080f6:	2400      	movs	r4, #0
+ 80080f8:	f880 4024 	strb.w	r4, [r0, #36]	; 0x24
+ 80080fc:	b113      	cbz	r3, 8008104 <HAL_DMA_Abort_IT+0x6a>
+ 80080fe:	4798      	blx	r3
+ 8008100:	4620      	mov	r0, r4
+ 8008102:	e7d2      	b.n	80080aa <HAL_DMA_Abort_IT+0x10>
+ 8008104:	4618      	mov	r0, r3
+ 8008106:	e7d0      	b.n	80080aa <HAL_DMA_Abort_IT+0x10>
+
+08008108 <HAL_DMA_IRQHandler>:
+ 8008108:	b470      	push	{r4, r5, r6}
+ 800810a:	6c42      	ldr	r2, [r0, #68]	; 0x44
+ 800810c:	6c04      	ldr	r4, [r0, #64]	; 0x40
+ 800810e:	6803      	ldr	r3, [r0, #0]
+ 8008110:	6826      	ldr	r6, [r4, #0]
+ 8008112:	681d      	ldr	r5, [r3, #0]
+ 8008114:	f002 021c 	and.w	r2, r2, #28
+ 8008118:	2104      	movs	r1, #4
+ 800811a:	4091      	lsls	r1, r2
+ 800811c:	4231      	tst	r1, r6
+ 800811e:	d00f      	beq.n	8008140 <HAL_DMA_IRQHandler+0x38>
+ 8008120:	f015 0f04 	tst.w	r5, #4
+ 8008124:	d00c      	beq.n	8008140 <HAL_DMA_IRQHandler+0x38>
+ 8008126:	681a      	ldr	r2, [r3, #0]
+ 8008128:	0692      	lsls	r2, r2, #26
+ 800812a:	bf5e      	ittt	pl
+ 800812c:	681a      	ldrpl	r2, [r3, #0]
+ 800812e:	f022 0204 	bicpl.w	r2, r2, #4
+ 8008132:	601a      	strpl	r2, [r3, #0]
+ 8008134:	6b03      	ldr	r3, [r0, #48]	; 0x30
+ 8008136:	6061      	str	r1, [r4, #4]
+ 8008138:	2b00      	cmp	r3, #0
+ 800813a:	d033      	beq.n	80081a4 <HAL_DMA_IRQHandler+0x9c>
+ 800813c:	bc70      	pop	{r4, r5, r6}
+ 800813e:	4718      	bx	r3
+ 8008140:	2102      	movs	r1, #2
+ 8008142:	4091      	lsls	r1, r2
+ 8008144:	4231      	tst	r1, r6
+ 8008146:	d017      	beq.n	8008178 <HAL_DMA_IRQHandler+0x70>
+ 8008148:	f015 0f02 	tst.w	r5, #2
+ 800814c:	d014      	beq.n	8008178 <HAL_DMA_IRQHandler+0x70>
+ 800814e:	681a      	ldr	r2, [r3, #0]
+ 8008150:	0694      	lsls	r4, r2, #26
+ 8008152:	d406      	bmi.n	8008162 <HAL_DMA_IRQHandler+0x5a>
+ 8008154:	681a      	ldr	r2, [r3, #0]
+ 8008156:	f022 020a 	bic.w	r2, r2, #10
+ 800815a:	601a      	str	r2, [r3, #0]
+ 800815c:	2201      	movs	r2, #1
+ 800815e:	f880 2025 	strb.w	r2, [r0, #37]	; 0x25
+ 8008162:	4a11      	ldr	r2, [pc, #68]	; (80081a8 <HAL_DMA_IRQHandler+0xa0>)
+ 8008164:	4293      	cmp	r3, r2
+ 8008166:	bf8c      	ite	hi
+ 8008168:	4b10      	ldrhi	r3, [pc, #64]	; (80081ac <HAL_DMA_IRQHandler+0xa4>)
+ 800816a:	4b11      	ldrls	r3, [pc, #68]	; (80081b0 <HAL_DMA_IRQHandler+0xa8>)
+ 800816c:	6059      	str	r1, [r3, #4]
+ 800816e:	2300      	movs	r3, #0
+ 8008170:	f880 3024 	strb.w	r3, [r0, #36]	; 0x24
+ 8008174:	6ac3      	ldr	r3, [r0, #44]	; 0x2c
+ 8008176:	e7df      	b.n	8008138 <HAL_DMA_IRQHandler+0x30>
+ 8008178:	2108      	movs	r1, #8
+ 800817a:	4091      	lsls	r1, r2
+ 800817c:	4231      	tst	r1, r6
+ 800817e:	d011      	beq.n	80081a4 <HAL_DMA_IRQHandler+0x9c>
+ 8008180:	0729      	lsls	r1, r5, #28
+ 8008182:	d50f      	bpl.n	80081a4 <HAL_DMA_IRQHandler+0x9c>
+ 8008184:	6819      	ldr	r1, [r3, #0]
+ 8008186:	f021 010e 	bic.w	r1, r1, #14
+ 800818a:	6019      	str	r1, [r3, #0]
+ 800818c:	2301      	movs	r3, #1
+ 800818e:	fa03 f202 	lsl.w	r2, r3, r2
+ 8008192:	6062      	str	r2, [r4, #4]
+ 8008194:	63c3      	str	r3, [r0, #60]	; 0x3c
+ 8008196:	f880 3025 	strb.w	r3, [r0, #37]	; 0x25
+ 800819a:	2300      	movs	r3, #0
+ 800819c:	f880 3024 	strb.w	r3, [r0, #36]	; 0x24
+ 80081a0:	6b43      	ldr	r3, [r0, #52]	; 0x34
+ 80081a2:	e7c9      	b.n	8008138 <HAL_DMA_IRQHandler+0x30>
+ 80081a4:	bc70      	pop	{r4, r5, r6}
+ 80081a6:	4770      	bx	lr
+ 80081a8:	40020080 	.word	0x40020080
+ 80081ac:	40020400 	.word	0x40020400
+ 80081b0:	40020000 	.word	0x40020000
+
+080081b4 <FLASH_Program_Fast>:
+ 80081b4:	4a0a      	ldr	r2, [pc, #40]	; (80081e0 <FLASH_Program_Fast+0x2c>)
+ 80081b6:	6953      	ldr	r3, [r2, #20]
+ 80081b8:	f443 2380 	orr.w	r3, r3, #262144	; 0x40000
+ 80081bc:	b530      	push	{r4, r5, lr}
+ 80081be:	6153      	str	r3, [r2, #20]
+ 80081c0:	f3ef 8410 	mrs	r4, PRIMASK
+ 80081c4:	b672      	cpsid	i
+ 80081c6:	2300      	movs	r3, #0
+ 80081c8:	58cd      	ldr	r5, [r1, r3]
+ 80081ca:	50c5      	str	r5, [r0, r3]
+ 80081cc:	3304      	adds	r3, #4
+ 80081ce:	f5b3 7f80 	cmp.w	r3, #256	; 0x100
+ 80081d2:	d1f9      	bne.n	80081c8 <FLASH_Program_Fast+0x14>
+ 80081d4:	6913      	ldr	r3, [r2, #16]
+ 80081d6:	03db      	lsls	r3, r3, #15
+ 80081d8:	d4fc      	bmi.n	80081d4 <FLASH_Program_Fast+0x20>
+ 80081da:	f384 8810 	msr	PRIMASK, r4
+ 80081de:	bd30      	pop	{r4, r5, pc}
+ 80081e0:	58004000 	.word	0x58004000
+
+080081e4 <HAL_FLASH_Unlock>:
+ 80081e4:	4b06      	ldr	r3, [pc, #24]	; (8008200 <HAL_FLASH_Unlock+0x1c>)
+ 80081e6:	695a      	ldr	r2, [r3, #20]
+ 80081e8:	2a00      	cmp	r2, #0
+ 80081ea:	bfbf      	itttt	lt
+ 80081ec:	4a05      	ldrlt	r2, [pc, #20]	; (8008204 <HAL_FLASH_Unlock+0x20>)
+ 80081ee:	609a      	strlt	r2, [r3, #8]
+ 80081f0:	f102 3288 	addlt.w	r2, r2, #2290649224	; 0x88888888
+ 80081f4:	609a      	strlt	r2, [r3, #8]
+ 80081f6:	bfba      	itte	lt
+ 80081f8:	6958      	ldrlt	r0, [r3, #20]
+ 80081fa:	0fc0      	lsrlt	r0, r0, #31
+ 80081fc:	2000      	movge	r0, #0
+ 80081fe:	4770      	bx	lr
+ 8008200:	58004000 	.word	0x58004000
+ 8008204:	45670123 	.word	0x45670123
+
+08008208 <HAL_FLASH_Lock>:
+ 8008208:	4b04      	ldr	r3, [pc, #16]	; (800821c <HAL_FLASH_Lock+0x14>)
+ 800820a:	695a      	ldr	r2, [r3, #20]
+ 800820c:	f042 4200 	orr.w	r2, r2, #2147483648	; 0x80000000
+ 8008210:	615a      	str	r2, [r3, #20]
+ 8008212:	6958      	ldr	r0, [r3, #20]
+ 8008214:	43c0      	mvns	r0, r0
+ 8008216:	0fc0      	lsrs	r0, r0, #31
+ 8008218:	4770      	bx	lr
+ 800821a:	bf00      	nop
+ 800821c:	58004000 	.word	0x58004000
+
+08008220 <FLASH_WaitForLastOperation>:
+ 8008220:	b570      	push	{r4, r5, r6, lr}
+ 8008222:	4605      	mov	r5, r0
+ 8008224:	f7fa fc92 	bl	8002b4c <HAL_GetTick>
+ 8008228:	4e12      	ldr	r6, [pc, #72]	; (8008274 <FLASH_WaitForLastOperation+0x54>)
+ 800822a:	4604      	mov	r4, r0
+ 800822c:	6933      	ldr	r3, [r6, #16]
+ 800822e:	03d9      	lsls	r1, r3, #15
+ 8008230:	d413      	bmi.n	800825a <FLASH_WaitForLastOperation+0x3a>
+ 8008232:	6933      	ldr	r3, [r6, #16]
+ 8008234:	07da      	lsls	r2, r3, #31
+ 8008236:	bf44      	itt	mi
+ 8008238:	2201      	movmi	r2, #1
+ 800823a:	6132      	strmi	r2, [r6, #16]
+ 800823c:	f24c 32fa 	movw	r2, #50170	; 0xc3fa
+ 8008240:	4013      	ands	r3, r2
+ 8008242:	d111      	bne.n	8008268 <FLASH_WaitForLastOperation+0x48>
+ 8008244:	4e0b      	ldr	r6, [pc, #44]	; (8008274 <FLASH_WaitForLastOperation+0x54>)
+ 8008246:	6930      	ldr	r0, [r6, #16]
+ 8008248:	f410 2080 	ands.w	r0, r0, #262144	; 0x40000
+ 800824c:	d00b      	beq.n	8008266 <FLASH_WaitForLastOperation+0x46>
+ 800824e:	f7fa fc7d 	bl	8002b4c <HAL_GetTick>
+ 8008252:	1b00      	subs	r0, r0, r4
+ 8008254:	42a8      	cmp	r0, r5
+ 8008256:	d3f6      	bcc.n	8008246 <FLASH_WaitForLastOperation+0x26>
+ 8008258:	e004      	b.n	8008264 <FLASH_WaitForLastOperation+0x44>
+ 800825a:	f7fa fc77 	bl	8002b4c <HAL_GetTick>
+ 800825e:	1b00      	subs	r0, r0, r4
+ 8008260:	42a8      	cmp	r0, r5
+ 8008262:	d3e3      	bcc.n	800822c <FLASH_WaitForLastOperation+0xc>
+ 8008264:	2003      	movs	r0, #3
+ 8008266:	bd70      	pop	{r4, r5, r6, pc}
+ 8008268:	4a02      	ldr	r2, [pc, #8]	; (8008274 <FLASH_WaitForLastOperation+0x54>)
+ 800826a:	6113      	str	r3, [r2, #16]
+ 800826c:	4a02      	ldr	r2, [pc, #8]	; (8008278 <FLASH_WaitForLastOperation+0x58>)
+ 800826e:	2001      	movs	r0, #1
+ 8008270:	6053      	str	r3, [r2, #4]
+ 8008272:	e7f8      	b.n	8008266 <FLASH_WaitForLastOperation+0x46>
+ 8008274:	58004000 	.word	0x58004000
+ 8008278:	20000f40 	.word	0x20000f40
+
+0800827c <HAL_FLASH_Program>:
+ 800827c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8008280:	4d18      	ldr	r5, [pc, #96]	; (80082e4 <HAL_FLASH_Program+0x68>)
+ 8008282:	4698      	mov	r8, r3
+ 8008284:	782b      	ldrb	r3, [r5, #0]
+ 8008286:	2b01      	cmp	r3, #1
+ 8008288:	4606      	mov	r6, r0
+ 800828a:	460c      	mov	r4, r1
+ 800828c:	4617      	mov	r7, r2
+ 800828e:	d026      	beq.n	80082de <HAL_FLASH_Program+0x62>
+ 8008290:	2301      	movs	r3, #1
+ 8008292:	702b      	strb	r3, [r5, #0]
+ 8008294:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
+ 8008298:	2300      	movs	r3, #0
+ 800829a:	606b      	str	r3, [r5, #4]
+ 800829c:	f7ff ffc0 	bl	8008220 <FLASH_WaitForLastOperation>
+ 80082a0:	b9a0      	cbnz	r0, 80082cc <HAL_FLASH_Program+0x50>
+ 80082a2:	2e01      	cmp	r6, #1
+ 80082a4:	d116      	bne.n	80082d4 <HAL_FLASH_Program+0x58>
+ 80082a6:	4a10      	ldr	r2, [pc, #64]	; (80082e8 <HAL_FLASH_Program+0x6c>)
+ 80082a8:	6953      	ldr	r3, [r2, #20]
+ 80082aa:	f043 0301 	orr.w	r3, r3, #1
+ 80082ae:	6153      	str	r3, [r2, #20]
+ 80082b0:	6027      	str	r7, [r4, #0]
+ 80082b2:	f3bf 8f6f 	isb	sy
+ 80082b6:	f8c4 8004 	str.w	r8, [r4, #4]
+ 80082ba:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
+ 80082be:	f7ff ffaf 	bl	8008220 <FLASH_WaitForLastOperation>
+ 80082c2:	4a09      	ldr	r2, [pc, #36]	; (80082e8 <HAL_FLASH_Program+0x6c>)
+ 80082c4:	6953      	ldr	r3, [r2, #20]
+ 80082c6:	ea23 0306 	bic.w	r3, r3, r6
+ 80082ca:	6153      	str	r3, [r2, #20]
+ 80082cc:	2300      	movs	r3, #0
+ 80082ce:	702b      	strb	r3, [r5, #0]
+ 80082d0:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 80082d4:	4639      	mov	r1, r7
+ 80082d6:	4620      	mov	r0, r4
+ 80082d8:	f7ff ff6c 	bl	80081b4 <FLASH_Program_Fast>
+ 80082dc:	e7ed      	b.n	80082ba <HAL_FLASH_Program+0x3e>
+ 80082de:	2002      	movs	r0, #2
+ 80082e0:	e7f6      	b.n	80082d0 <HAL_FLASH_Program+0x54>
+ 80082e2:	bf00      	nop
+ 80082e4:	20000f40 	.word	0x20000f40
+ 80082e8:	58004000 	.word	0x58004000
+
+080082ec <FLASH_PageErase>:
+ 80082ec:	4a05      	ldr	r2, [pc, #20]	; (8008304 <FLASH_PageErase+0x18>)
+ 80082ee:	6953      	ldr	r3, [r2, #20]
+ 80082f0:	f423 737e 	bic.w	r3, r3, #1016	; 0x3f8
+ 80082f4:	ea43 00c0 	orr.w	r0, r3, r0, lsl #3
+ 80082f8:	f440 3080 	orr.w	r0, r0, #65536	; 0x10000
+ 80082fc:	f040 0002 	orr.w	r0, r0, #2
+ 8008300:	6150      	str	r0, [r2, #20]
+ 8008302:	4770      	bx	lr
+ 8008304:	58004000 	.word	0x58004000
+
+08008308 <HAL_FLASHEx_Erase>:
+ 8008308:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800830c:	4f23      	ldr	r7, [pc, #140]	; (800839c <HAL_FLASHEx_Erase+0x94>)
+ 800830e:	783b      	ldrb	r3, [r7, #0]
+ 8008310:	2b01      	cmp	r3, #1
+ 8008312:	4605      	mov	r5, r0
+ 8008314:	4688      	mov	r8, r1
+ 8008316:	d03f      	beq.n	8008398 <HAL_FLASHEx_Erase+0x90>
+ 8008318:	2301      	movs	r3, #1
+ 800831a:	703b      	strb	r3, [r7, #0]
+ 800831c:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
+ 8008320:	2300      	movs	r3, #0
+ 8008322:	607b      	str	r3, [r7, #4]
+ 8008324:	f7ff ff7c 	bl	8008220 <FLASH_WaitForLastOperation>
+ 8008328:	4604      	mov	r4, r0
+ 800832a:	b988      	cbnz	r0, 8008350 <HAL_FLASHEx_Erase+0x48>
+ 800832c:	682b      	ldr	r3, [r5, #0]
+ 800832e:	2b04      	cmp	r3, #4
+ 8008330:	d113      	bne.n	800835a <HAL_FLASHEx_Erase+0x52>
+ 8008332:	4a1b      	ldr	r2, [pc, #108]	; (80083a0 <HAL_FLASHEx_Erase+0x98>)
+ 8008334:	6953      	ldr	r3, [r2, #20]
+ 8008336:	f443 3380 	orr.w	r3, r3, #65536	; 0x10000
+ 800833a:	f043 0304 	orr.w	r3, r3, #4
+ 800833e:	6153      	str	r3, [r2, #20]
+ 8008340:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
+ 8008344:	f7ff ff6c 	bl	8008220 <FLASH_WaitForLastOperation>
+ 8008348:	4604      	mov	r4, r0
+ 800834a:	4b15      	ldr	r3, [pc, #84]	; (80083a0 <HAL_FLASHEx_Erase+0x98>)
+ 800834c:	681a      	ldr	r2, [r3, #0]
+ 800834e:	681b      	ldr	r3, [r3, #0]
+ 8008350:	2300      	movs	r3, #0
+ 8008352:	703b      	strb	r3, [r7, #0]
+ 8008354:	4620      	mov	r0, r4
+ 8008356:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800835a:	f04f 33ff 	mov.w	r3, #4294967295
+ 800835e:	f8c8 3000 	str.w	r3, [r8]
+ 8008362:	686e      	ldr	r6, [r5, #4]
+ 8008364:	e9d5 3201 	ldrd	r3, r2, [r5, #4]
+ 8008368:	4413      	add	r3, r2
+ 800836a:	42b3      	cmp	r3, r6
+ 800836c:	d90a      	bls.n	8008384 <HAL_FLASHEx_Erase+0x7c>
+ 800836e:	4630      	mov	r0, r6
+ 8008370:	f7ff ffbc 	bl	80082ec <FLASH_PageErase>
+ 8008374:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
+ 8008378:	f7ff ff52 	bl	8008220 <FLASH_WaitForLastOperation>
+ 800837c:	b150      	cbz	r0, 8008394 <HAL_FLASHEx_Erase+0x8c>
+ 800837e:	f8c8 6000 	str.w	r6, [r8]
+ 8008382:	4604      	mov	r4, r0
+ 8008384:	4a06      	ldr	r2, [pc, #24]	; (80083a0 <HAL_FLASHEx_Erase+0x98>)
+ 8008386:	6953      	ldr	r3, [r2, #20]
+ 8008388:	f423 737e 	bic.w	r3, r3, #1016	; 0x3f8
+ 800838c:	f023 0302 	bic.w	r3, r3, #2
+ 8008390:	6153      	str	r3, [r2, #20]
+ 8008392:	e7da      	b.n	800834a <HAL_FLASHEx_Erase+0x42>
+ 8008394:	3601      	adds	r6, #1
+ 8008396:	e7e5      	b.n	8008364 <HAL_FLASHEx_Erase+0x5c>
+ 8008398:	2402      	movs	r4, #2
+ 800839a:	e7db      	b.n	8008354 <HAL_FLASHEx_Erase+0x4c>
+ 800839c:	20000f40 	.word	0x20000f40
+ 80083a0:	58004000 	.word	0x58004000
+
+080083a4 <HAL_GPIO_Init>:
+ 80083a4:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 80083a8:	4c52      	ldr	r4, [pc, #328]	; (80084f4 <HAL_GPIO_Init+0x150>)
+ 80083aa:	2300      	movs	r3, #0
+ 80083ac:	f04f 090f 	mov.w	r9, #15
+ 80083b0:	680a      	ldr	r2, [r1, #0]
+ 80083b2:	fa32 f503 	lsrs.w	r5, r2, r3
+ 80083b6:	d101      	bne.n	80083bc <HAL_GPIO_Init+0x18>
+ 80083b8:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 80083bc:	2501      	movs	r5, #1
+ 80083be:	fa05 f803 	lsl.w	r8, r5, r3
+ 80083c2:	ea18 0202 	ands.w	r2, r8, r2
+ 80083c6:	f000 808e 	beq.w	80084e6 <HAL_GPIO_Init+0x142>
+ 80083ca:	684e      	ldr	r6, [r1, #4]
+ 80083cc:	2703      	movs	r7, #3
+ 80083ce:	f006 0503 	and.w	r5, r6, #3
+ 80083d2:	ea4f 0e43 	mov.w	lr, r3, lsl #1
+ 80083d6:	fa07 fc0e 	lsl.w	ip, r7, lr
+ 80083da:	1e6f      	subs	r7, r5, #1
+ 80083dc:	2f01      	cmp	r7, #1
+ 80083de:	ea6f 0c0c 	mvn.w	ip, ip
+ 80083e2:	d832      	bhi.n	800844a <HAL_GPIO_Init+0xa6>
+ 80083e4:	6887      	ldr	r7, [r0, #8]
+ 80083e6:	ea07 0a0c 	and.w	sl, r7, ip
+ 80083ea:	68cf      	ldr	r7, [r1, #12]
+ 80083ec:	fa07 f70e 	lsl.w	r7, r7, lr
+ 80083f0:	ea47 070a 	orr.w	r7, r7, sl
+ 80083f4:	6087      	str	r7, [r0, #8]
+ 80083f6:	6847      	ldr	r7, [r0, #4]
+ 80083f8:	ea27 0808 	bic.w	r8, r7, r8
+ 80083fc:	f3c6 1700 	ubfx	r7, r6, #4, #1
+ 8008400:	409f      	lsls	r7, r3
+ 8008402:	ea47 0708 	orr.w	r7, r7, r8
+ 8008406:	6047      	str	r7, [r0, #4]
+ 8008408:	68c7      	ldr	r7, [r0, #12]
+ 800840a:	ea07 080c 	and.w	r8, r7, ip
+ 800840e:	688f      	ldr	r7, [r1, #8]
+ 8008410:	fa07 f70e 	lsl.w	r7, r7, lr
+ 8008414:	ea47 0708 	orr.w	r7, r7, r8
+ 8008418:	2d02      	cmp	r5, #2
+ 800841a:	60c7      	str	r7, [r0, #12]
+ 800841c:	d117      	bne.n	800844e <HAL_GPIO_Init+0xaa>
+ 800841e:	ea4f 08d3 	mov.w	r8, r3, lsr #3
+ 8008422:	eb00 0888 	add.w	r8, r0, r8, lsl #2
+ 8008426:	f003 0a07 	and.w	sl, r3, #7
+ 800842a:	f8d8 7020 	ldr.w	r7, [r8, #32]
+ 800842e:	ea4f 0a8a 	mov.w	sl, sl, lsl #2
+ 8008432:	fa09 fb0a 	lsl.w	fp, r9, sl
+ 8008436:	ea27 0b0b 	bic.w	fp, r7, fp
+ 800843a:	690f      	ldr	r7, [r1, #16]
+ 800843c:	fa07 f70a 	lsl.w	r7, r7, sl
+ 8008440:	ea47 070b 	orr.w	r7, r7, fp
+ 8008444:	f8c8 7020 	str.w	r7, [r8, #32]
+ 8008448:	e001      	b.n	800844e <HAL_GPIO_Init+0xaa>
+ 800844a:	2d03      	cmp	r5, #3
+ 800844c:	d1dc      	bne.n	8008408 <HAL_GPIO_Init+0x64>
+ 800844e:	6807      	ldr	r7, [r0, #0]
+ 8008450:	fa05 f50e 	lsl.w	r5, r5, lr
+ 8008454:	ea07 070c 	and.w	r7, r7, ip
+ 8008458:	433d      	orrs	r5, r7
+ 800845a:	f416 3f40 	tst.w	r6, #196608	; 0x30000
+ 800845e:	6005      	str	r5, [r0, #0]
+ 8008460:	d041      	beq.n	80084e6 <HAL_GPIO_Init+0x142>
+ 8008462:	f023 0703 	bic.w	r7, r3, #3
+ 8008466:	f107 4780 	add.w	r7, r7, #1073741824	; 0x40000000
+ 800846a:	f507 3780 	add.w	r7, r7, #65536	; 0x10000
+ 800846e:	f003 0c03 	and.w	ip, r3, #3
+ 8008472:	68bd      	ldr	r5, [r7, #8]
+ 8008474:	ea4f 0c8c 	mov.w	ip, ip, lsl #2
+ 8008478:	f04f 0e07 	mov.w	lr, #7
+ 800847c:	fa0e fe0c 	lsl.w	lr, lr, ip
+ 8008480:	f1b0 4f90 	cmp.w	r0, #1207959552	; 0x48000000
+ 8008484:	ea25 0e0e 	bic.w	lr, r5, lr
+ 8008488:	d02f      	beq.n	80084ea <HAL_GPIO_Init+0x146>
+ 800848a:	4d1b      	ldr	r5, [pc, #108]	; (80084f8 <HAL_GPIO_Init+0x154>)
+ 800848c:	42a8      	cmp	r0, r5
+ 800848e:	d02e      	beq.n	80084ee <HAL_GPIO_Init+0x14a>
+ 8008490:	f505 6580 	add.w	r5, r5, #1024	; 0x400
+ 8008494:	42a8      	cmp	r0, r5
+ 8008496:	bf0c      	ite	eq
+ 8008498:	2502      	moveq	r5, #2
+ 800849a:	2507      	movne	r5, #7
+ 800849c:	fa05 f50c 	lsl.w	r5, r5, ip
+ 80084a0:	ea45 050e 	orr.w	r5, r5, lr
+ 80084a4:	60bd      	str	r5, [r7, #8]
+ 80084a6:	6825      	ldr	r5, [r4, #0]
+ 80084a8:	43d7      	mvns	r7, r2
+ 80084aa:	f416 1f80 	tst.w	r6, #1048576	; 0x100000
+ 80084ae:	bf0c      	ite	eq
+ 80084b0:	403d      	andeq	r5, r7
+ 80084b2:	4315      	orrne	r5, r2
+ 80084b4:	6025      	str	r5, [r4, #0]
+ 80084b6:	6865      	ldr	r5, [r4, #4]
+ 80084b8:	f416 1f00 	tst.w	r6, #2097152	; 0x200000
+ 80084bc:	bf0c      	ite	eq
+ 80084be:	403d      	andeq	r5, r7
+ 80084c0:	4315      	orrne	r5, r2
+ 80084c2:	6065      	str	r5, [r4, #4]
+ 80084c4:	f8d4 5080 	ldr.w	r5, [r4, #128]	; 0x80
+ 80084c8:	f416 3f80 	tst.w	r6, #65536	; 0x10000
+ 80084cc:	bf0c      	ite	eq
+ 80084ce:	403d      	andeq	r5, r7
+ 80084d0:	4315      	orrne	r5, r2
+ 80084d2:	f8c4 5080 	str.w	r5, [r4, #128]	; 0x80
+ 80084d6:	f8d4 5084 	ldr.w	r5, [r4, #132]	; 0x84
+ 80084da:	03b6      	lsls	r6, r6, #14
+ 80084dc:	bf54      	ite	pl
+ 80084de:	403d      	andpl	r5, r7
+ 80084e0:	4315      	orrmi	r5, r2
+ 80084e2:	f8c4 5084 	str.w	r5, [r4, #132]	; 0x84
+ 80084e6:	3301      	adds	r3, #1
+ 80084e8:	e762      	b.n	80083b0 <HAL_GPIO_Init+0xc>
+ 80084ea:	2500      	movs	r5, #0
+ 80084ec:	e7d6      	b.n	800849c <HAL_GPIO_Init+0xf8>
+ 80084ee:	2501      	movs	r5, #1
+ 80084f0:	e7d4      	b.n	800849c <HAL_GPIO_Init+0xf8>
+ 80084f2:	bf00      	nop
+ 80084f4:	58000800 	.word	0x58000800
+ 80084f8:	48000400 	.word	0x48000400
+
+080084fc <HAL_GPIO_DeInit>:
+ 80084fc:	4a37      	ldr	r2, [pc, #220]	; (80085dc <HAL_GPIO_DeInit+0xe0>)
+ 80084fe:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8008502:	2300      	movs	r3, #0
+ 8008504:	f04f 0a01 	mov.w	sl, #1
+ 8008508:	f04f 0b07 	mov.w	fp, #7
+ 800850c:	f04f 090f 	mov.w	r9, #15
+ 8008510:	fa31 f403 	lsrs.w	r4, r1, r3
+ 8008514:	d101      	bne.n	800851a <HAL_GPIO_DeInit+0x1e>
+ 8008516:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 800851a:	fa0a fc03 	lsl.w	ip, sl, r3
+ 800851e:	ea1c 0601 	ands.w	r6, ip, r1
+ 8008522:	d054      	beq.n	80085ce <HAL_GPIO_DeInit+0xd2>
+ 8008524:	f023 0403 	bic.w	r4, r3, #3
+ 8008528:	f104 4480 	add.w	r4, r4, #1073741824	; 0x40000000
+ 800852c:	f504 3480 	add.w	r4, r4, #65536	; 0x10000
+ 8008530:	f003 0703 	and.w	r7, r3, #3
+ 8008534:	68a5      	ldr	r5, [r4, #8]
+ 8008536:	00bf      	lsls	r7, r7, #2
+ 8008538:	fa0b f807 	lsl.w	r8, fp, r7
+ 800853c:	f1b0 4f90 	cmp.w	r0, #1207959552	; 0x48000000
+ 8008540:	ea08 0e05 	and.w	lr, r8, r5
+ 8008544:	d045      	beq.n	80085d2 <HAL_GPIO_DeInit+0xd6>
+ 8008546:	4d26      	ldr	r5, [pc, #152]	; (80085e0 <HAL_GPIO_DeInit+0xe4>)
+ 8008548:	42a8      	cmp	r0, r5
+ 800854a:	d044      	beq.n	80085d6 <HAL_GPIO_DeInit+0xda>
+ 800854c:	f505 6580 	add.w	r5, r5, #1024	; 0x400
+ 8008550:	42a8      	cmp	r0, r5
+ 8008552:	bf0c      	ite	eq
+ 8008554:	2502      	moveq	r5, #2
+ 8008556:	2507      	movne	r5, #7
+ 8008558:	40bd      	lsls	r5, r7
+ 800855a:	4575      	cmp	r5, lr
+ 800855c:	d117      	bne.n	800858e <HAL_GPIO_DeInit+0x92>
+ 800855e:	f8d2 5080 	ldr.w	r5, [r2, #128]	; 0x80
+ 8008562:	ea25 0506 	bic.w	r5, r5, r6
+ 8008566:	f8c2 5080 	str.w	r5, [r2, #128]	; 0x80
+ 800856a:	f8d2 5084 	ldr.w	r5, [r2, #132]	; 0x84
+ 800856e:	ea25 0506 	bic.w	r5, r5, r6
+ 8008572:	f8c2 5084 	str.w	r5, [r2, #132]	; 0x84
+ 8008576:	6815      	ldr	r5, [r2, #0]
+ 8008578:	ea25 0506 	bic.w	r5, r5, r6
+ 800857c:	6015      	str	r5, [r2, #0]
+ 800857e:	6855      	ldr	r5, [r2, #4]
+ 8008580:	ea25 0506 	bic.w	r5, r5, r6
+ 8008584:	6055      	str	r5, [r2, #4]
+ 8008586:	68a5      	ldr	r5, [r4, #8]
+ 8008588:	ea25 0508 	bic.w	r5, r5, r8
+ 800858c:	60a5      	str	r5, [r4, #8]
+ 800858e:	6805      	ldr	r5, [r0, #0]
+ 8008590:	2603      	movs	r6, #3
+ 8008592:	005c      	lsls	r4, r3, #1
+ 8008594:	fa06 f404 	lsl.w	r4, r6, r4
+ 8008598:	fa23 f606 	lsr.w	r6, r3, r6
+ 800859c:	4325      	orrs	r5, r4
+ 800859e:	eb00 0686 	add.w	r6, r0, r6, lsl #2
+ 80085a2:	6005      	str	r5, [r0, #0]
+ 80085a4:	f003 0507 	and.w	r5, r3, #7
+ 80085a8:	6a37      	ldr	r7, [r6, #32]
+ 80085aa:	00ad      	lsls	r5, r5, #2
+ 80085ac:	fa09 f505 	lsl.w	r5, r9, r5
+ 80085b0:	ea27 0705 	bic.w	r7, r7, r5
+ 80085b4:	6237      	str	r7, [r6, #32]
+ 80085b6:	6885      	ldr	r5, [r0, #8]
+ 80085b8:	ea25 0504 	bic.w	r5, r5, r4
+ 80085bc:	6085      	str	r5, [r0, #8]
+ 80085be:	6845      	ldr	r5, [r0, #4]
+ 80085c0:	ea25 050c 	bic.w	r5, r5, ip
+ 80085c4:	6045      	str	r5, [r0, #4]
+ 80085c6:	68c5      	ldr	r5, [r0, #12]
+ 80085c8:	ea25 0404 	bic.w	r4, r5, r4
+ 80085cc:	60c4      	str	r4, [r0, #12]
+ 80085ce:	3301      	adds	r3, #1
+ 80085d0:	e79e      	b.n	8008510 <HAL_GPIO_DeInit+0x14>
+ 80085d2:	2500      	movs	r5, #0
+ 80085d4:	e7c0      	b.n	8008558 <HAL_GPIO_DeInit+0x5c>
+ 80085d6:	2501      	movs	r5, #1
+ 80085d8:	e7be      	b.n	8008558 <HAL_GPIO_DeInit+0x5c>
+ 80085da:	bf00      	nop
+ 80085dc:	58000800 	.word	0x58000800
+ 80085e0:	48000400 	.word	0x48000400
+
+080085e4 <HAL_GPIO_ReadPin>:
+ 80085e4:	6903      	ldr	r3, [r0, #16]
+ 80085e6:	4219      	tst	r1, r3
+ 80085e8:	bf14      	ite	ne
+ 80085ea:	2001      	movne	r0, #1
+ 80085ec:	2000      	moveq	r0, #0
+ 80085ee:	4770      	bx	lr
+
+080085f0 <HAL_GPIO_WritePin>:
+ 80085f0:	b10a      	cbz	r2, 80085f6 <HAL_GPIO_WritePin+0x6>
+ 80085f2:	6181      	str	r1, [r0, #24]
+ 80085f4:	4770      	bx	lr
+ 80085f6:	6281      	str	r1, [r0, #40]	; 0x28
+ 80085f8:	4770      	bx	lr
+	...
+
+080085fc <HAL_GPIO_EXTI_IRQHandler>:
+ 80085fc:	4a04      	ldr	r2, [pc, #16]	; (8008610 <HAL_GPIO_EXTI_IRQHandler+0x14>)
+ 80085fe:	68d1      	ldr	r1, [r2, #12]
+ 8008600:	4201      	tst	r1, r0
+ 8008602:	b508      	push	{r3, lr}
+ 8008604:	d002      	beq.n	800860c <HAL_GPIO_EXTI_IRQHandler+0x10>
+ 8008606:	60d0      	str	r0, [r2, #12]
+ 8008608:	f7fb f96e 	bl	80038e8 <HAL_GPIO_EXTI_Callback>
+ 800860c:	bd08      	pop	{r3, pc}
+ 800860e:	bf00      	nop
+ 8008610:	58000800 	.word	0x58000800
+
+08008614 <I2C_Flush_TXDR>:
+ 8008614:	6803      	ldr	r3, [r0, #0]
+ 8008616:	699a      	ldr	r2, [r3, #24]
+ 8008618:	0791      	lsls	r1, r2, #30
+ 800861a:	bf44      	itt	mi
+ 800861c:	2200      	movmi	r2, #0
+ 800861e:	629a      	strmi	r2, [r3, #40]	; 0x28
+ 8008620:	699a      	ldr	r2, [r3, #24]
+ 8008622:	07d2      	lsls	r2, r2, #31
+ 8008624:	bf5e      	ittt	pl
+ 8008626:	699a      	ldrpl	r2, [r3, #24]
+ 8008628:	f042 0201 	orrpl.w	r2, r2, #1
+ 800862c:	619a      	strpl	r2, [r3, #24]
+ 800862e:	4770      	bx	lr
+
+08008630 <I2C_TransferConfig>:
+ 8008630:	b530      	push	{r4, r5, lr}
+ 8008632:	9d03      	ldr	r5, [sp, #12]
+ 8008634:	6804      	ldr	r4, [r0, #0]
+ 8008636:	432b      	orrs	r3, r5
+ 8008638:	ea43 4302 	orr.w	r3, r3, r2, lsl #16
+ 800863c:	4a06      	ldr	r2, [pc, #24]	; (8008658 <I2C_TransferConfig+0x28>)
+ 800863e:	6860      	ldr	r0, [r4, #4]
+ 8008640:	f3c1 0109 	ubfx	r1, r1, #0, #10
+ 8008644:	430b      	orrs	r3, r1
+ 8008646:	ea42 5255 	orr.w	r2, r2, r5, lsr #21
+ 800864a:	f023 4300 	bic.w	r3, r3, #2147483648	; 0x80000000
+ 800864e:	ea20 0002 	bic.w	r0, r0, r2
+ 8008652:	4303      	orrs	r3, r0
+ 8008654:	6063      	str	r3, [r4, #4]
+ 8008656:	bd30      	pop	{r4, r5, pc}
+ 8008658:	03ff63ff 	.word	0x03ff63ff
+
+0800865c <I2C_IsErrorOccurred>:
+ 800865c:	6803      	ldr	r3, [r0, #0]
+ 800865e:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8008662:	699c      	ldr	r4, [r3, #24]
+ 8008664:	f014 0410 	ands.w	r4, r4, #16
+ 8008668:	4605      	mov	r5, r0
+ 800866a:	460f      	mov	r7, r1
+ 800866c:	4616      	mov	r6, r2
+ 800866e:	d06f      	beq.n	8008750 <I2C_IsErrorOccurred+0xf4>
+ 8008670:	2210      	movs	r2, #16
+ 8008672:	2400      	movs	r4, #0
+ 8008674:	61da      	str	r2, [r3, #28]
+ 8008676:	46a0      	mov	r8, r4
+ 8008678:	682b      	ldr	r3, [r5, #0]
+ 800867a:	699a      	ldr	r2, [r3, #24]
+ 800867c:	0690      	lsls	r0, r2, #26
+ 800867e:	d461      	bmi.n	8008744 <I2C_IsErrorOccurred+0xe8>
+ 8008680:	f1b8 0f00 	cmp.w	r8, #0
+ 8008684:	d035      	beq.n	80086f2 <I2C_IsErrorOccurred+0x96>
+ 8008686:	f044 0404 	orr.w	r4, r4, #4
+ 800868a:	2001      	movs	r0, #1
+ 800868c:	682e      	ldr	r6, [r5, #0]
+ 800868e:	69b3      	ldr	r3, [r6, #24]
+ 8008690:	05d9      	lsls	r1, r3, #23
+ 8008692:	bf41      	itttt	mi
+ 8008694:	f44f 7280 	movmi.w	r2, #256	; 0x100
+ 8008698:	61f2      	strmi	r2, [r6, #28]
+ 800869a:	f044 0401 	orrmi.w	r4, r4, #1
+ 800869e:	2001      	movmi	r0, #1
+ 80086a0:	055a      	lsls	r2, r3, #21
+ 80086a2:	bf41      	itttt	mi
+ 80086a4:	f44f 6280 	movmi.w	r2, #1024	; 0x400
+ 80086a8:	f044 0408 	orrmi.w	r4, r4, #8
+ 80086ac:	61f2      	strmi	r2, [r6, #28]
+ 80086ae:	2001      	movmi	r0, #1
+ 80086b0:	059b      	lsls	r3, r3, #22
+ 80086b2:	d54f      	bpl.n	8008754 <I2C_IsErrorOccurred+0xf8>
+ 80086b4:	f44f 7300 	mov.w	r3, #512	; 0x200
+ 80086b8:	f044 0402 	orr.w	r4, r4, #2
+ 80086bc:	61f3      	str	r3, [r6, #28]
+ 80086be:	4628      	mov	r0, r5
+ 80086c0:	f7ff ffa8 	bl	8008614 <I2C_Flush_TXDR>
+ 80086c4:	6873      	ldr	r3, [r6, #4]
+ 80086c6:	f023 73ff 	bic.w	r3, r3, #33423360	; 0x1fe0000
+ 80086ca:	f423 338b 	bic.w	r3, r3, #71168	; 0x11600
+ 80086ce:	f423 73ff 	bic.w	r3, r3, #510	; 0x1fe
+ 80086d2:	f023 0301 	bic.w	r3, r3, #1
+ 80086d6:	6073      	str	r3, [r6, #4]
+ 80086d8:	6c6b      	ldr	r3, [r5, #68]	; 0x44
+ 80086da:	4323      	orrs	r3, r4
+ 80086dc:	646b      	str	r3, [r5, #68]	; 0x44
+ 80086de:	2320      	movs	r3, #32
+ 80086e0:	f885 3041 	strb.w	r3, [r5, #65]	; 0x41
+ 80086e4:	2300      	movs	r3, #0
+ 80086e6:	f885 3042 	strb.w	r3, [r5, #66]	; 0x42
+ 80086ea:	f885 3040 	strb.w	r3, [r5, #64]	; 0x40
+ 80086ee:	2001      	movs	r0, #1
+ 80086f0:	e032      	b.n	8008758 <I2C_IsErrorOccurred+0xfc>
+ 80086f2:	1c7a      	adds	r2, r7, #1
+ 80086f4:	d0c1      	beq.n	800867a <I2C_IsErrorOccurred+0x1e>
+ 80086f6:	f7fa fa29 	bl	8002b4c <HAL_GetTick>
+ 80086fa:	1b80      	subs	r0, r0, r6
+ 80086fc:	42b8      	cmp	r0, r7
+ 80086fe:	d801      	bhi.n	8008704 <I2C_IsErrorOccurred+0xa8>
+ 8008700:	2f00      	cmp	r7, #0
+ 8008702:	d1b9      	bne.n	8008678 <I2C_IsErrorOccurred+0x1c>
+ 8008704:	682b      	ldr	r3, [r5, #0]
+ 8008706:	6859      	ldr	r1, [r3, #4]
+ 8008708:	f895 2042 	ldrb.w	r2, [r5, #66]	; 0x42
+ 800870c:	6998      	ldr	r0, [r3, #24]
+ 800870e:	0400      	lsls	r0, r0, #16
+ 8008710:	b2d2      	uxtb	r2, r2
+ 8008712:	d50a      	bpl.n	800872a <I2C_IsErrorOccurred+0xce>
+ 8008714:	0449      	lsls	r1, r1, #17
+ 8008716:	d408      	bmi.n	800872a <I2C_IsErrorOccurred+0xce>
+ 8008718:	2a20      	cmp	r2, #32
+ 800871a:	d006      	beq.n	800872a <I2C_IsErrorOccurred+0xce>
+ 800871c:	685a      	ldr	r2, [r3, #4]
+ 800871e:	f442 4280 	orr.w	r2, r2, #16384	; 0x4000
+ 8008722:	605a      	str	r2, [r3, #4]
+ 8008724:	f7fa fa12 	bl	8002b4c <HAL_GetTick>
+ 8008728:	4606      	mov	r6, r0
+ 800872a:	682b      	ldr	r3, [r5, #0]
+ 800872c:	699b      	ldr	r3, [r3, #24]
+ 800872e:	069b      	lsls	r3, r3, #26
+ 8008730:	d4a2      	bmi.n	8008678 <I2C_IsErrorOccurred+0x1c>
+ 8008732:	f7fa fa0b 	bl	8002b4c <HAL_GetTick>
+ 8008736:	1b80      	subs	r0, r0, r6
+ 8008738:	2819      	cmp	r0, #25
+ 800873a:	d9f6      	bls.n	800872a <I2C_IsErrorOccurred+0xce>
+ 800873c:	2420      	movs	r4, #32
+ 800873e:	f04f 0801 	mov.w	r8, #1
+ 8008742:	e799      	b.n	8008678 <I2C_IsErrorOccurred+0x1c>
+ 8008744:	f1b8 0f00 	cmp.w	r8, #0
+ 8008748:	d19d      	bne.n	8008686 <I2C_IsErrorOccurred+0x2a>
+ 800874a:	2220      	movs	r2, #32
+ 800874c:	61da      	str	r2, [r3, #28]
+ 800874e:	e79a      	b.n	8008686 <I2C_IsErrorOccurred+0x2a>
+ 8008750:	4620      	mov	r0, r4
+ 8008752:	e79b      	b.n	800868c <I2C_IsErrorOccurred+0x30>
+ 8008754:	2800      	cmp	r0, #0
+ 8008756:	d1b2      	bne.n	80086be <I2C_IsErrorOccurred+0x62>
+ 8008758:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+
+0800875c <I2C_WaitOnTXISFlagUntilTimeout>:
+ 800875c:	b570      	push	{r4, r5, r6, lr}
+ 800875e:	4604      	mov	r4, r0
+ 8008760:	460d      	mov	r5, r1
+ 8008762:	4616      	mov	r6, r2
+ 8008764:	6823      	ldr	r3, [r4, #0]
+ 8008766:	699b      	ldr	r3, [r3, #24]
+ 8008768:	079b      	lsls	r3, r3, #30
+ 800876a:	d501      	bpl.n	8008770 <I2C_WaitOnTXISFlagUntilTimeout+0x14>
+ 800876c:	2000      	movs	r0, #0
+ 800876e:	bd70      	pop	{r4, r5, r6, pc}
+ 8008770:	4632      	mov	r2, r6
+ 8008772:	4629      	mov	r1, r5
+ 8008774:	4620      	mov	r0, r4
+ 8008776:	f7ff ff71 	bl	800865c <I2C_IsErrorOccurred>
+ 800877a:	b9a0      	cbnz	r0, 80087a6 <I2C_WaitOnTXISFlagUntilTimeout+0x4a>
+ 800877c:	1c6a      	adds	r2, r5, #1
+ 800877e:	d0f1      	beq.n	8008764 <I2C_WaitOnTXISFlagUntilTimeout+0x8>
+ 8008780:	f7fa f9e4 	bl	8002b4c <HAL_GetTick>
+ 8008784:	1b80      	subs	r0, r0, r6
+ 8008786:	42a8      	cmp	r0, r5
+ 8008788:	d801      	bhi.n	800878e <I2C_WaitOnTXISFlagUntilTimeout+0x32>
+ 800878a:	2d00      	cmp	r5, #0
+ 800878c:	d1ea      	bne.n	8008764 <I2C_WaitOnTXISFlagUntilTimeout+0x8>
+ 800878e:	6c63      	ldr	r3, [r4, #68]	; 0x44
+ 8008790:	f043 0320 	orr.w	r3, r3, #32
+ 8008794:	6463      	str	r3, [r4, #68]	; 0x44
+ 8008796:	2320      	movs	r3, #32
+ 8008798:	f884 3041 	strb.w	r3, [r4, #65]	; 0x41
+ 800879c:	2300      	movs	r3, #0
+ 800879e:	f884 3042 	strb.w	r3, [r4, #66]	; 0x42
+ 80087a2:	f884 3040 	strb.w	r3, [r4, #64]	; 0x40
+ 80087a6:	2001      	movs	r0, #1
+ 80087a8:	e7e1      	b.n	800876e <I2C_WaitOnTXISFlagUntilTimeout+0x12>
+
+080087aa <I2C_WaitOnRXNEFlagUntilTimeout>:
+ 80087aa:	b570      	push	{r4, r5, r6, lr}
+ 80087ac:	4604      	mov	r4, r0
+ 80087ae:	460d      	mov	r5, r1
+ 80087b0:	4616      	mov	r6, r2
+ 80087b2:	6823      	ldr	r3, [r4, #0]
+ 80087b4:	699b      	ldr	r3, [r3, #24]
+ 80087b6:	075b      	lsls	r3, r3, #29
+ 80087b8:	d40e      	bmi.n	80087d8 <I2C_WaitOnRXNEFlagUntilTimeout+0x2e>
+ 80087ba:	4632      	mov	r2, r6
+ 80087bc:	4629      	mov	r1, r5
+ 80087be:	4620      	mov	r0, r4
+ 80087c0:	f7ff ff4c 	bl	800865c <I2C_IsErrorOccurred>
+ 80087c4:	bb38      	cbnz	r0, 8008816 <I2C_WaitOnRXNEFlagUntilTimeout+0x6c>
+ 80087c6:	6823      	ldr	r3, [r4, #0]
+ 80087c8:	699a      	ldr	r2, [r3, #24]
+ 80087ca:	0691      	lsls	r1, r2, #26
+ 80087cc:	d525      	bpl.n	800881a <I2C_WaitOnRXNEFlagUntilTimeout+0x70>
+ 80087ce:	699a      	ldr	r2, [r3, #24]
+ 80087d0:	0752      	lsls	r2, r2, #29
+ 80087d2:	d503      	bpl.n	80087dc <I2C_WaitOnRXNEFlagUntilTimeout+0x32>
+ 80087d4:	8d22      	ldrh	r2, [r4, #40]	; 0x28
+ 80087d6:	b10a      	cbz	r2, 80087dc <I2C_WaitOnRXNEFlagUntilTimeout+0x32>
+ 80087d8:	2000      	movs	r0, #0
+ 80087da:	bd70      	pop	{r4, r5, r6, pc}
+ 80087dc:	699a      	ldr	r2, [r3, #24]
+ 80087de:	f012 0210 	ands.w	r2, r2, #16
+ 80087e2:	bf1c      	itt	ne
+ 80087e4:	2210      	movne	r2, #16
+ 80087e6:	61da      	strne	r2, [r3, #28]
+ 80087e8:	f04f 0120 	mov.w	r1, #32
+ 80087ec:	bf18      	it	ne
+ 80087ee:	2204      	movne	r2, #4
+ 80087f0:	6462      	str	r2, [r4, #68]	; 0x44
+ 80087f2:	61d9      	str	r1, [r3, #28]
+ 80087f4:	685a      	ldr	r2, [r3, #4]
+ 80087f6:	f022 72ff 	bic.w	r2, r2, #33423360	; 0x1fe0000
+ 80087fa:	f422 328b 	bic.w	r2, r2, #71168	; 0x11600
+ 80087fe:	f422 72ff 	bic.w	r2, r2, #510	; 0x1fe
+ 8008802:	f022 0201 	bic.w	r2, r2, #1
+ 8008806:	605a      	str	r2, [r3, #4]
+ 8008808:	2300      	movs	r3, #0
+ 800880a:	f884 1041 	strb.w	r1, [r4, #65]	; 0x41
+ 800880e:	f884 3042 	strb.w	r3, [r4, #66]	; 0x42
+ 8008812:	f884 3040 	strb.w	r3, [r4, #64]	; 0x40
+ 8008816:	2001      	movs	r0, #1
+ 8008818:	e7df      	b.n	80087da <I2C_WaitOnRXNEFlagUntilTimeout+0x30>
+ 800881a:	f7fa f997 	bl	8002b4c <HAL_GetTick>
+ 800881e:	1b80      	subs	r0, r0, r6
+ 8008820:	42a8      	cmp	r0, r5
+ 8008822:	d801      	bhi.n	8008828 <I2C_WaitOnRXNEFlagUntilTimeout+0x7e>
+ 8008824:	2d00      	cmp	r5, #0
+ 8008826:	d1c4      	bne.n	80087b2 <I2C_WaitOnRXNEFlagUntilTimeout+0x8>
+ 8008828:	6c63      	ldr	r3, [r4, #68]	; 0x44
+ 800882a:	f043 0320 	orr.w	r3, r3, #32
+ 800882e:	6463      	str	r3, [r4, #68]	; 0x44
+ 8008830:	2320      	movs	r3, #32
+ 8008832:	f884 3041 	strb.w	r3, [r4, #65]	; 0x41
+ 8008836:	2300      	movs	r3, #0
+ 8008838:	e7eb      	b.n	8008812 <I2C_WaitOnRXNEFlagUntilTimeout+0x68>
+
+0800883a <I2C_WaitOnFlagUntilTimeout>:
+ 800883a:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800883e:	9f06      	ldr	r7, [sp, #24]
+ 8008840:	4604      	mov	r4, r0
+ 8008842:	4688      	mov	r8, r1
+ 8008844:	4616      	mov	r6, r2
+ 8008846:	461d      	mov	r5, r3
+ 8008848:	6822      	ldr	r2, [r4, #0]
+ 800884a:	6993      	ldr	r3, [r2, #24]
+ 800884c:	ea38 0303 	bics.w	r3, r8, r3
+ 8008850:	bf0c      	ite	eq
+ 8008852:	2301      	moveq	r3, #1
+ 8008854:	2300      	movne	r3, #0
+ 8008856:	42b3      	cmp	r3, r6
+ 8008858:	d001      	beq.n	800885e <I2C_WaitOnFlagUntilTimeout+0x24>
+ 800885a:	2000      	movs	r0, #0
+ 800885c:	e015      	b.n	800888a <I2C_WaitOnFlagUntilTimeout+0x50>
+ 800885e:	1c6b      	adds	r3, r5, #1
+ 8008860:	d0f3      	beq.n	800884a <I2C_WaitOnFlagUntilTimeout+0x10>
+ 8008862:	f7fa f973 	bl	8002b4c <HAL_GetTick>
+ 8008866:	1bc0      	subs	r0, r0, r7
+ 8008868:	42a8      	cmp	r0, r5
+ 800886a:	d801      	bhi.n	8008870 <I2C_WaitOnFlagUntilTimeout+0x36>
+ 800886c:	2d00      	cmp	r5, #0
+ 800886e:	d1eb      	bne.n	8008848 <I2C_WaitOnFlagUntilTimeout+0xe>
+ 8008870:	6c63      	ldr	r3, [r4, #68]	; 0x44
+ 8008872:	f043 0320 	orr.w	r3, r3, #32
+ 8008876:	6463      	str	r3, [r4, #68]	; 0x44
+ 8008878:	2320      	movs	r3, #32
+ 800887a:	f884 3041 	strb.w	r3, [r4, #65]	; 0x41
+ 800887e:	2300      	movs	r3, #0
+ 8008880:	f884 3042 	strb.w	r3, [r4, #66]	; 0x42
+ 8008884:	f884 3040 	strb.w	r3, [r4, #64]	; 0x40
+ 8008888:	2001      	movs	r0, #1
+ 800888a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+
+0800888e <I2C_WaitOnSTOPFlagUntilTimeout>:
+ 800888e:	b570      	push	{r4, r5, r6, lr}
+ 8008890:	4604      	mov	r4, r0
+ 8008892:	460d      	mov	r5, r1
+ 8008894:	4616      	mov	r6, r2
+ 8008896:	6823      	ldr	r3, [r4, #0]
+ 8008898:	699b      	ldr	r3, [r3, #24]
+ 800889a:	069b      	lsls	r3, r3, #26
+ 800889c:	d501      	bpl.n	80088a2 <I2C_WaitOnSTOPFlagUntilTimeout+0x14>
+ 800889e:	2000      	movs	r0, #0
+ 80088a0:	bd70      	pop	{r4, r5, r6, pc}
+ 80088a2:	4632      	mov	r2, r6
+ 80088a4:	4629      	mov	r1, r5
+ 80088a6:	4620      	mov	r0, r4
+ 80088a8:	f7ff fed8 	bl	800865c <I2C_IsErrorOccurred>
+ 80088ac:	b990      	cbnz	r0, 80088d4 <I2C_WaitOnSTOPFlagUntilTimeout+0x46>
+ 80088ae:	f7fa f94d 	bl	8002b4c <HAL_GetTick>
+ 80088b2:	1b80      	subs	r0, r0, r6
+ 80088b4:	42a8      	cmp	r0, r5
+ 80088b6:	d801      	bhi.n	80088bc <I2C_WaitOnSTOPFlagUntilTimeout+0x2e>
+ 80088b8:	2d00      	cmp	r5, #0
+ 80088ba:	d1ec      	bne.n	8008896 <I2C_WaitOnSTOPFlagUntilTimeout+0x8>
+ 80088bc:	6c63      	ldr	r3, [r4, #68]	; 0x44
+ 80088be:	f043 0320 	orr.w	r3, r3, #32
+ 80088c2:	6463      	str	r3, [r4, #68]	; 0x44
+ 80088c4:	2320      	movs	r3, #32
+ 80088c6:	f884 3041 	strb.w	r3, [r4, #65]	; 0x41
+ 80088ca:	2300      	movs	r3, #0
+ 80088cc:	f884 3042 	strb.w	r3, [r4, #66]	; 0x42
+ 80088d0:	f884 3040 	strb.w	r3, [r4, #64]	; 0x40
+ 80088d4:	2001      	movs	r0, #1
+ 80088d6:	e7e3      	b.n	80088a0 <I2C_WaitOnSTOPFlagUntilTimeout+0x12>
+
+080088d8 <HAL_I2C_Init>:
+ 80088d8:	b510      	push	{r4, lr}
+ 80088da:	4604      	mov	r4, r0
+ 80088dc:	2800      	cmp	r0, #0
+ 80088de:	d04a      	beq.n	8008976 <HAL_I2C_Init+0x9e>
+ 80088e0:	f890 3041 	ldrb.w	r3, [r0, #65]	; 0x41
+ 80088e4:	f003 02ff 	and.w	r2, r3, #255	; 0xff
+ 80088e8:	b91b      	cbnz	r3, 80088f2 <HAL_I2C_Init+0x1a>
+ 80088ea:	f880 2040 	strb.w	r2, [r0, #64]	; 0x40
+ 80088ee:	f7f9 fe05 	bl	80024fc <HAL_I2C_MspInit>
+ 80088f2:	2324      	movs	r3, #36	; 0x24
+ 80088f4:	f884 3041 	strb.w	r3, [r4, #65]	; 0x41
+ 80088f8:	6823      	ldr	r3, [r4, #0]
+ 80088fa:	681a      	ldr	r2, [r3, #0]
+ 80088fc:	f022 0201 	bic.w	r2, r2, #1
+ 8008900:	601a      	str	r2, [r3, #0]
+ 8008902:	6862      	ldr	r2, [r4, #4]
+ 8008904:	f022 6270 	bic.w	r2, r2, #251658240	; 0xf000000
+ 8008908:	611a      	str	r2, [r3, #16]
+ 800890a:	689a      	ldr	r2, [r3, #8]
+ 800890c:	f422 4200 	bic.w	r2, r2, #32768	; 0x8000
+ 8008910:	609a      	str	r2, [r3, #8]
+ 8008912:	e9d4 2102 	ldrd	r2, r1, [r4, #8]
+ 8008916:	2901      	cmp	r1, #1
+ 8008918:	d124      	bne.n	8008964 <HAL_I2C_Init+0x8c>
+ 800891a:	f442 4200 	orr.w	r2, r2, #32768	; 0x8000
+ 800891e:	609a      	str	r2, [r3, #8]
+ 8008920:	685a      	ldr	r2, [r3, #4]
+ 8008922:	f042 7200 	orr.w	r2, r2, #33554432	; 0x2000000
+ 8008926:	f442 4200 	orr.w	r2, r2, #32768	; 0x8000
+ 800892a:	605a      	str	r2, [r3, #4]
+ 800892c:	68da      	ldr	r2, [r3, #12]
+ 800892e:	f422 4200 	bic.w	r2, r2, #32768	; 0x8000
+ 8008932:	60da      	str	r2, [r3, #12]
+ 8008934:	e9d4 2104 	ldrd	r2, r1, [r4, #16]
+ 8008938:	430a      	orrs	r2, r1
+ 800893a:	69a1      	ldr	r1, [r4, #24]
+ 800893c:	ea42 2201 	orr.w	r2, r2, r1, lsl #8
+ 8008940:	60da      	str	r2, [r3, #12]
+ 8008942:	e9d4 2107 	ldrd	r2, r1, [r4, #28]
+ 8008946:	430a      	orrs	r2, r1
+ 8008948:	601a      	str	r2, [r3, #0]
+ 800894a:	681a      	ldr	r2, [r3, #0]
+ 800894c:	f042 0201 	orr.w	r2, r2, #1
+ 8008950:	601a      	str	r2, [r3, #0]
+ 8008952:	2000      	movs	r0, #0
+ 8008954:	2320      	movs	r3, #32
+ 8008956:	6460      	str	r0, [r4, #68]	; 0x44
+ 8008958:	f884 3041 	strb.w	r3, [r4, #65]	; 0x41
+ 800895c:	6320      	str	r0, [r4, #48]	; 0x30
+ 800895e:	f884 0042 	strb.w	r0, [r4, #66]	; 0x42
+ 8008962:	bd10      	pop	{r4, pc}
+ 8008964:	f442 4204 	orr.w	r2, r2, #33792	; 0x8400
+ 8008968:	2902      	cmp	r1, #2
+ 800896a:	609a      	str	r2, [r3, #8]
+ 800896c:	bf04      	itt	eq
+ 800896e:	f44f 6200 	moveq.w	r2, #2048	; 0x800
+ 8008972:	605a      	streq	r2, [r3, #4]
+ 8008974:	e7d4      	b.n	8008920 <HAL_I2C_Init+0x48>
+ 8008976:	2001      	movs	r0, #1
+ 8008978:	e7f3      	b.n	8008962 <HAL_I2C_Init+0x8a>
+	...
+
+0800897c <HAL_I2C_Master_Transmit>:
+ 800897c:	e92d 47f3 	stmdb	sp!, {r0, r1, r4, r5, r6, r7, r8, r9, sl, lr}
+ 8008980:	4698      	mov	r8, r3
+ 8008982:	f890 3041 	ldrb.w	r3, [r0, #65]	; 0x41
+ 8008986:	9f0a      	ldr	r7, [sp, #40]	; 0x28
+ 8008988:	2b20      	cmp	r3, #32
+ 800898a:	4604      	mov	r4, r0
+ 800898c:	460e      	mov	r6, r1
+ 800898e:	4691      	mov	r9, r2
+ 8008990:	f040 8086 	bne.w	8008aa0 <HAL_I2C_Master_Transmit+0x124>
+ 8008994:	f890 3040 	ldrb.w	r3, [r0, #64]	; 0x40
+ 8008998:	2b01      	cmp	r3, #1
+ 800899a:	f000 8081 	beq.w	8008aa0 <HAL_I2C_Master_Transmit+0x124>
+ 800899e:	f04f 0a01 	mov.w	sl, #1
+ 80089a2:	f880 a040 	strb.w	sl, [r0, #64]	; 0x40
+ 80089a6:	f7fa f8d1 	bl	8002b4c <HAL_GetTick>
+ 80089aa:	2319      	movs	r3, #25
+ 80089ac:	4605      	mov	r5, r0
+ 80089ae:	9000      	str	r0, [sp, #0]
+ 80089b0:	4652      	mov	r2, sl
+ 80089b2:	f44f 4100 	mov.w	r1, #32768	; 0x8000
+ 80089b6:	4620      	mov	r0, r4
+ 80089b8:	f7ff ff3f 	bl	800883a <I2C_WaitOnFlagUntilTimeout>
+ 80089bc:	b118      	cbz	r0, 80089c6 <HAL_I2C_Master_Transmit+0x4a>
+ 80089be:	2001      	movs	r0, #1
+ 80089c0:	b002      	add	sp, #8
+ 80089c2:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 80089c6:	2321      	movs	r3, #33	; 0x21
+ 80089c8:	f884 3041 	strb.w	r3, [r4, #65]	; 0x41
+ 80089cc:	2310      	movs	r3, #16
+ 80089ce:	f884 3042 	strb.w	r3, [r4, #66]	; 0x42
+ 80089d2:	6460      	str	r0, [r4, #68]	; 0x44
+ 80089d4:	f8a4 802a 	strh.w	r8, [r4, #42]	; 0x2a
+ 80089d8:	8d63      	ldrh	r3, [r4, #42]	; 0x2a
+ 80089da:	f8c4 9024 	str.w	r9, [r4, #36]	; 0x24
+ 80089de:	b29b      	uxth	r3, r3
+ 80089e0:	2bff      	cmp	r3, #255	; 0xff
+ 80089e2:	6360      	str	r0, [r4, #52]	; 0x34
+ 80089e4:	4b2f      	ldr	r3, [pc, #188]	; (8008aa4 <HAL_I2C_Master_Transmit+0x128>)
+ 80089e6:	d926      	bls.n	8008a36 <HAL_I2C_Master_Transmit+0xba>
+ 80089e8:	22ff      	movs	r2, #255	; 0xff
+ 80089ea:	8522      	strh	r2, [r4, #40]	; 0x28
+ 80089ec:	9300      	str	r3, [sp, #0]
+ 80089ee:	f04f 7380 	mov.w	r3, #16777216	; 0x1000000
+ 80089f2:	4631      	mov	r1, r6
+ 80089f4:	4620      	mov	r0, r4
+ 80089f6:	f7ff fe1b 	bl	8008630 <I2C_TransferConfig>
+ 80089fa:	8d63      	ldrh	r3, [r4, #42]	; 0x2a
+ 80089fc:	b29b      	uxth	r3, r3
+ 80089fe:	462a      	mov	r2, r5
+ 8008a00:	4639      	mov	r1, r7
+ 8008a02:	4620      	mov	r0, r4
+ 8008a04:	b9fb      	cbnz	r3, 8008a46 <HAL_I2C_Master_Transmit+0xca>
+ 8008a06:	f7ff ff42 	bl	800888e <I2C_WaitOnSTOPFlagUntilTimeout>
+ 8008a0a:	2800      	cmp	r0, #0
+ 8008a0c:	d1d7      	bne.n	80089be <HAL_I2C_Master_Transmit+0x42>
+ 8008a0e:	6823      	ldr	r3, [r4, #0]
+ 8008a10:	2120      	movs	r1, #32
+ 8008a12:	61d9      	str	r1, [r3, #28]
+ 8008a14:	685a      	ldr	r2, [r3, #4]
+ 8008a16:	f022 72ff 	bic.w	r2, r2, #33423360	; 0x1fe0000
+ 8008a1a:	f422 328b 	bic.w	r2, r2, #71168	; 0x11600
+ 8008a1e:	f422 72ff 	bic.w	r2, r2, #510	; 0x1fe
+ 8008a22:	f022 0201 	bic.w	r2, r2, #1
+ 8008a26:	605a      	str	r2, [r3, #4]
+ 8008a28:	f884 1041 	strb.w	r1, [r4, #65]	; 0x41
+ 8008a2c:	f884 0040 	strb.w	r0, [r4, #64]	; 0x40
+ 8008a30:	f884 0042 	strb.w	r0, [r4, #66]	; 0x42
+ 8008a34:	e7c4      	b.n	80089c0 <HAL_I2C_Master_Transmit+0x44>
+ 8008a36:	8d62      	ldrh	r2, [r4, #42]	; 0x2a
+ 8008a38:	9300      	str	r3, [sp, #0]
+ 8008a3a:	b292      	uxth	r2, r2
+ 8008a3c:	8522      	strh	r2, [r4, #40]	; 0x28
+ 8008a3e:	f04f 7300 	mov.w	r3, #33554432	; 0x2000000
+ 8008a42:	b2d2      	uxtb	r2, r2
+ 8008a44:	e7d5      	b.n	80089f2 <HAL_I2C_Master_Transmit+0x76>
+ 8008a46:	f7ff fe89 	bl	800875c <I2C_WaitOnTXISFlagUntilTimeout>
+ 8008a4a:	2800      	cmp	r0, #0
+ 8008a4c:	d1b7      	bne.n	80089be <HAL_I2C_Master_Transmit+0x42>
+ 8008a4e:	6a63      	ldr	r3, [r4, #36]	; 0x24
+ 8008a50:	6822      	ldr	r2, [r4, #0]
+ 8008a52:	f813 1b01 	ldrb.w	r1, [r3], #1
+ 8008a56:	6291      	str	r1, [r2, #40]	; 0x28
+ 8008a58:	6263      	str	r3, [r4, #36]	; 0x24
+ 8008a5a:	8d63      	ldrh	r3, [r4, #42]	; 0x2a
+ 8008a5c:	8d22      	ldrh	r2, [r4, #40]	; 0x28
+ 8008a5e:	3b01      	subs	r3, #1
+ 8008a60:	b29b      	uxth	r3, r3
+ 8008a62:	8563      	strh	r3, [r4, #42]	; 0x2a
+ 8008a64:	8d63      	ldrh	r3, [r4, #42]	; 0x2a
+ 8008a66:	3a01      	subs	r2, #1
+ 8008a68:	b292      	uxth	r2, r2
+ 8008a6a:	b29b      	uxth	r3, r3
+ 8008a6c:	8522      	strh	r2, [r4, #40]	; 0x28
+ 8008a6e:	2b00      	cmp	r3, #0
+ 8008a70:	d0c3      	beq.n	80089fa <HAL_I2C_Master_Transmit+0x7e>
+ 8008a72:	2a00      	cmp	r2, #0
+ 8008a74:	d1c1      	bne.n	80089fa <HAL_I2C_Master_Transmit+0x7e>
+ 8008a76:	9500      	str	r5, [sp, #0]
+ 8008a78:	463b      	mov	r3, r7
+ 8008a7a:	2180      	movs	r1, #128	; 0x80
+ 8008a7c:	4620      	mov	r0, r4
+ 8008a7e:	f7ff fedc 	bl	800883a <I2C_WaitOnFlagUntilTimeout>
+ 8008a82:	2800      	cmp	r0, #0
+ 8008a84:	d19b      	bne.n	80089be <HAL_I2C_Master_Transmit+0x42>
+ 8008a86:	8d63      	ldrh	r3, [r4, #42]	; 0x2a
+ 8008a88:	b29b      	uxth	r3, r3
+ 8008a8a:	2bff      	cmp	r3, #255	; 0xff
+ 8008a8c:	d903      	bls.n	8008a96 <HAL_I2C_Master_Transmit+0x11a>
+ 8008a8e:	22ff      	movs	r2, #255	; 0xff
+ 8008a90:	8522      	strh	r2, [r4, #40]	; 0x28
+ 8008a92:	9000      	str	r0, [sp, #0]
+ 8008a94:	e7ab      	b.n	80089ee <HAL_I2C_Master_Transmit+0x72>
+ 8008a96:	8d62      	ldrh	r2, [r4, #42]	; 0x2a
+ 8008a98:	9000      	str	r0, [sp, #0]
+ 8008a9a:	b292      	uxth	r2, r2
+ 8008a9c:	8522      	strh	r2, [r4, #40]	; 0x28
+ 8008a9e:	e7ce      	b.n	8008a3e <HAL_I2C_Master_Transmit+0xc2>
+ 8008aa0:	2002      	movs	r0, #2
+ 8008aa2:	e78d      	b.n	80089c0 <HAL_I2C_Master_Transmit+0x44>
+ 8008aa4:	80002000 	.word	0x80002000
+
+08008aa8 <HAL_I2C_Master_Receive>:
+ 8008aa8:	e92d 47f3 	stmdb	sp!, {r0, r1, r4, r5, r6, r7, r8, r9, sl, lr}
+ 8008aac:	4698      	mov	r8, r3
+ 8008aae:	f890 3041 	ldrb.w	r3, [r0, #65]	; 0x41
+ 8008ab2:	9f0a      	ldr	r7, [sp, #40]	; 0x28
+ 8008ab4:	2b20      	cmp	r3, #32
+ 8008ab6:	4604      	mov	r4, r0
+ 8008ab8:	460e      	mov	r6, r1
+ 8008aba:	4691      	mov	r9, r2
+ 8008abc:	f040 8087 	bne.w	8008bce <HAL_I2C_Master_Receive+0x126>
+ 8008ac0:	f890 3040 	ldrb.w	r3, [r0, #64]	; 0x40
+ 8008ac4:	2b01      	cmp	r3, #1
+ 8008ac6:	f000 8082 	beq.w	8008bce <HAL_I2C_Master_Receive+0x126>
+ 8008aca:	f04f 0a01 	mov.w	sl, #1
+ 8008ace:	f880 a040 	strb.w	sl, [r0, #64]	; 0x40
+ 8008ad2:	f7fa f83b 	bl	8002b4c <HAL_GetTick>
+ 8008ad6:	2319      	movs	r3, #25
+ 8008ad8:	4605      	mov	r5, r0
+ 8008ada:	9000      	str	r0, [sp, #0]
+ 8008adc:	4652      	mov	r2, sl
+ 8008ade:	f44f 4100 	mov.w	r1, #32768	; 0x8000
+ 8008ae2:	4620      	mov	r0, r4
+ 8008ae4:	f7ff fea9 	bl	800883a <I2C_WaitOnFlagUntilTimeout>
+ 8008ae8:	b118      	cbz	r0, 8008af2 <HAL_I2C_Master_Receive+0x4a>
+ 8008aea:	2001      	movs	r0, #1
+ 8008aec:	b002      	add	sp, #8
+ 8008aee:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 8008af2:	2322      	movs	r3, #34	; 0x22
+ 8008af4:	f884 3041 	strb.w	r3, [r4, #65]	; 0x41
+ 8008af8:	2310      	movs	r3, #16
+ 8008afa:	f884 3042 	strb.w	r3, [r4, #66]	; 0x42
+ 8008afe:	6460      	str	r0, [r4, #68]	; 0x44
+ 8008b00:	f8a4 802a 	strh.w	r8, [r4, #42]	; 0x2a
+ 8008b04:	8d63      	ldrh	r3, [r4, #42]	; 0x2a
+ 8008b06:	f8c4 9024 	str.w	r9, [r4, #36]	; 0x24
+ 8008b0a:	b29b      	uxth	r3, r3
+ 8008b0c:	2bff      	cmp	r3, #255	; 0xff
+ 8008b0e:	6360      	str	r0, [r4, #52]	; 0x34
+ 8008b10:	4b30      	ldr	r3, [pc, #192]	; (8008bd4 <HAL_I2C_Master_Receive+0x12c>)
+ 8008b12:	d926      	bls.n	8008b62 <HAL_I2C_Master_Receive+0xba>
+ 8008b14:	22ff      	movs	r2, #255	; 0xff
+ 8008b16:	8522      	strh	r2, [r4, #40]	; 0x28
+ 8008b18:	9300      	str	r3, [sp, #0]
+ 8008b1a:	f04f 7380 	mov.w	r3, #16777216	; 0x1000000
+ 8008b1e:	4631      	mov	r1, r6
+ 8008b20:	4620      	mov	r0, r4
+ 8008b22:	f7ff fd85 	bl	8008630 <I2C_TransferConfig>
+ 8008b26:	8d63      	ldrh	r3, [r4, #42]	; 0x2a
+ 8008b28:	b29b      	uxth	r3, r3
+ 8008b2a:	462a      	mov	r2, r5
+ 8008b2c:	4639      	mov	r1, r7
+ 8008b2e:	4620      	mov	r0, r4
+ 8008b30:	b9fb      	cbnz	r3, 8008b72 <HAL_I2C_Master_Receive+0xca>
+ 8008b32:	f7ff feac 	bl	800888e <I2C_WaitOnSTOPFlagUntilTimeout>
+ 8008b36:	2800      	cmp	r0, #0
+ 8008b38:	d1d7      	bne.n	8008aea <HAL_I2C_Master_Receive+0x42>
+ 8008b3a:	6823      	ldr	r3, [r4, #0]
+ 8008b3c:	2120      	movs	r1, #32
+ 8008b3e:	61d9      	str	r1, [r3, #28]
+ 8008b40:	685a      	ldr	r2, [r3, #4]
+ 8008b42:	f022 72ff 	bic.w	r2, r2, #33423360	; 0x1fe0000
+ 8008b46:	f422 328b 	bic.w	r2, r2, #71168	; 0x11600
+ 8008b4a:	f422 72ff 	bic.w	r2, r2, #510	; 0x1fe
+ 8008b4e:	f022 0201 	bic.w	r2, r2, #1
+ 8008b52:	605a      	str	r2, [r3, #4]
+ 8008b54:	f884 1041 	strb.w	r1, [r4, #65]	; 0x41
+ 8008b58:	f884 0040 	strb.w	r0, [r4, #64]	; 0x40
+ 8008b5c:	f884 0042 	strb.w	r0, [r4, #66]	; 0x42
+ 8008b60:	e7c4      	b.n	8008aec <HAL_I2C_Master_Receive+0x44>
+ 8008b62:	8d62      	ldrh	r2, [r4, #42]	; 0x2a
+ 8008b64:	9300      	str	r3, [sp, #0]
+ 8008b66:	b292      	uxth	r2, r2
+ 8008b68:	8522      	strh	r2, [r4, #40]	; 0x28
+ 8008b6a:	f04f 7300 	mov.w	r3, #33554432	; 0x2000000
+ 8008b6e:	b2d2      	uxtb	r2, r2
+ 8008b70:	e7d5      	b.n	8008b1e <HAL_I2C_Master_Receive+0x76>
+ 8008b72:	f7ff fe1a 	bl	80087aa <I2C_WaitOnRXNEFlagUntilTimeout>
+ 8008b76:	2800      	cmp	r0, #0
+ 8008b78:	d1b7      	bne.n	8008aea <HAL_I2C_Master_Receive+0x42>
+ 8008b7a:	6823      	ldr	r3, [r4, #0]
+ 8008b7c:	6a5a      	ldr	r2, [r3, #36]	; 0x24
+ 8008b7e:	6a63      	ldr	r3, [r4, #36]	; 0x24
+ 8008b80:	701a      	strb	r2, [r3, #0]
+ 8008b82:	6a63      	ldr	r3, [r4, #36]	; 0x24
+ 8008b84:	8d22      	ldrh	r2, [r4, #40]	; 0x28
+ 8008b86:	3301      	adds	r3, #1
+ 8008b88:	6263      	str	r3, [r4, #36]	; 0x24
+ 8008b8a:	8d63      	ldrh	r3, [r4, #42]	; 0x2a
+ 8008b8c:	3b01      	subs	r3, #1
+ 8008b8e:	b29b      	uxth	r3, r3
+ 8008b90:	8563      	strh	r3, [r4, #42]	; 0x2a
+ 8008b92:	8d63      	ldrh	r3, [r4, #42]	; 0x2a
+ 8008b94:	3a01      	subs	r2, #1
+ 8008b96:	b292      	uxth	r2, r2
+ 8008b98:	b29b      	uxth	r3, r3
+ 8008b9a:	8522      	strh	r2, [r4, #40]	; 0x28
+ 8008b9c:	2b00      	cmp	r3, #0
+ 8008b9e:	d0c2      	beq.n	8008b26 <HAL_I2C_Master_Receive+0x7e>
+ 8008ba0:	2a00      	cmp	r2, #0
+ 8008ba2:	d1c0      	bne.n	8008b26 <HAL_I2C_Master_Receive+0x7e>
+ 8008ba4:	9500      	str	r5, [sp, #0]
+ 8008ba6:	463b      	mov	r3, r7
+ 8008ba8:	2180      	movs	r1, #128	; 0x80
+ 8008baa:	4620      	mov	r0, r4
+ 8008bac:	f7ff fe45 	bl	800883a <I2C_WaitOnFlagUntilTimeout>
+ 8008bb0:	2800      	cmp	r0, #0
+ 8008bb2:	d19a      	bne.n	8008aea <HAL_I2C_Master_Receive+0x42>
+ 8008bb4:	8d63      	ldrh	r3, [r4, #42]	; 0x2a
+ 8008bb6:	b29b      	uxth	r3, r3
+ 8008bb8:	2bff      	cmp	r3, #255	; 0xff
+ 8008bba:	d903      	bls.n	8008bc4 <HAL_I2C_Master_Receive+0x11c>
+ 8008bbc:	22ff      	movs	r2, #255	; 0xff
+ 8008bbe:	8522      	strh	r2, [r4, #40]	; 0x28
+ 8008bc0:	9000      	str	r0, [sp, #0]
+ 8008bc2:	e7aa      	b.n	8008b1a <HAL_I2C_Master_Receive+0x72>
+ 8008bc4:	8d62      	ldrh	r2, [r4, #42]	; 0x2a
+ 8008bc6:	9000      	str	r0, [sp, #0]
+ 8008bc8:	b292      	uxth	r2, r2
+ 8008bca:	8522      	strh	r2, [r4, #40]	; 0x28
+ 8008bcc:	e7cd      	b.n	8008b6a <HAL_I2C_Master_Receive+0xc2>
+ 8008bce:	2002      	movs	r0, #2
+ 8008bd0:	e78c      	b.n	8008aec <HAL_I2C_Master_Receive+0x44>
+ 8008bd2:	bf00      	nop
+ 8008bd4:	80002400 	.word	0x80002400
+
+08008bd8 <HAL_I2CEx_ConfigAnalogFilter>:
+ 8008bd8:	b510      	push	{r4, lr}
+ 8008bda:	f890 2041 	ldrb.w	r2, [r0, #65]	; 0x41
+ 8008bde:	2a20      	cmp	r2, #32
+ 8008be0:	4603      	mov	r3, r0
+ 8008be2:	b2d4      	uxtb	r4, r2
+ 8008be4:	d11c      	bne.n	8008c20 <HAL_I2CEx_ConfigAnalogFilter+0x48>
+ 8008be6:	f890 2040 	ldrb.w	r2, [r0, #64]	; 0x40
+ 8008bea:	2a01      	cmp	r2, #1
+ 8008bec:	d018      	beq.n	8008c20 <HAL_I2CEx_ConfigAnalogFilter+0x48>
+ 8008bee:	2224      	movs	r2, #36	; 0x24
+ 8008bf0:	f880 2041 	strb.w	r2, [r0, #65]	; 0x41
+ 8008bf4:	6802      	ldr	r2, [r0, #0]
+ 8008bf6:	6810      	ldr	r0, [r2, #0]
+ 8008bf8:	f020 0001 	bic.w	r0, r0, #1
+ 8008bfc:	6010      	str	r0, [r2, #0]
+ 8008bfe:	6810      	ldr	r0, [r2, #0]
+ 8008c00:	f420 5080 	bic.w	r0, r0, #4096	; 0x1000
+ 8008c04:	6010      	str	r0, [r2, #0]
+ 8008c06:	6810      	ldr	r0, [r2, #0]
+ 8008c08:	4301      	orrs	r1, r0
+ 8008c0a:	6011      	str	r1, [r2, #0]
+ 8008c0c:	6811      	ldr	r1, [r2, #0]
+ 8008c0e:	2000      	movs	r0, #0
+ 8008c10:	f041 0101 	orr.w	r1, r1, #1
+ 8008c14:	6011      	str	r1, [r2, #0]
+ 8008c16:	f883 4041 	strb.w	r4, [r3, #65]	; 0x41
+ 8008c1a:	f883 0040 	strb.w	r0, [r3, #64]	; 0x40
+ 8008c1e:	bd10      	pop	{r4, pc}
+ 8008c20:	2002      	movs	r0, #2
+ 8008c22:	e7fc      	b.n	8008c1e <HAL_I2CEx_ConfigAnalogFilter+0x46>
+
+08008c24 <HAL_I2CEx_ConfigDigitalFilter>:
+ 8008c24:	b510      	push	{r4, lr}
+ 8008c26:	f890 2041 	ldrb.w	r2, [r0, #65]	; 0x41
+ 8008c2a:	2a20      	cmp	r2, #32
+ 8008c2c:	4603      	mov	r3, r0
+ 8008c2e:	b2d4      	uxtb	r4, r2
+ 8008c30:	d11b      	bne.n	8008c6a <HAL_I2CEx_ConfigDigitalFilter+0x46>
+ 8008c32:	f890 2040 	ldrb.w	r2, [r0, #64]	; 0x40
+ 8008c36:	2a01      	cmp	r2, #1
+ 8008c38:	d017      	beq.n	8008c6a <HAL_I2CEx_ConfigDigitalFilter+0x46>
+ 8008c3a:	2224      	movs	r2, #36	; 0x24
+ 8008c3c:	f880 2041 	strb.w	r2, [r0, #65]	; 0x41
+ 8008c40:	6802      	ldr	r2, [r0, #0]
+ 8008c42:	6810      	ldr	r0, [r2, #0]
+ 8008c44:	f020 0001 	bic.w	r0, r0, #1
+ 8008c48:	6010      	str	r0, [r2, #0]
+ 8008c4a:	6810      	ldr	r0, [r2, #0]
+ 8008c4c:	f420 6070 	bic.w	r0, r0, #3840	; 0xf00
+ 8008c50:	ea40 2101 	orr.w	r1, r0, r1, lsl #8
+ 8008c54:	6011      	str	r1, [r2, #0]
+ 8008c56:	6811      	ldr	r1, [r2, #0]
+ 8008c58:	2000      	movs	r0, #0
+ 8008c5a:	f041 0101 	orr.w	r1, r1, #1
+ 8008c5e:	6011      	str	r1, [r2, #0]
+ 8008c60:	f883 4041 	strb.w	r4, [r3, #65]	; 0x41
+ 8008c64:	f883 0040 	strb.w	r0, [r3, #64]	; 0x40
+ 8008c68:	bd10      	pop	{r4, pc}
+ 8008c6a:	2002      	movs	r0, #2
+ 8008c6c:	e7fc      	b.n	8008c68 <HAL_I2CEx_ConfigDigitalFilter+0x44>
+	...
+
+08008c70 <HAL_PWR_EnableBkUpAccess>:
+ 8008c70:	4a02      	ldr	r2, [pc, #8]	; (8008c7c <HAL_PWR_EnableBkUpAccess+0xc>)
+ 8008c72:	6813      	ldr	r3, [r2, #0]
+ 8008c74:	f443 7380 	orr.w	r3, r3, #256	; 0x100
+ 8008c78:	6013      	str	r3, [r2, #0]
+ 8008c7a:	4770      	bx	lr
+ 8008c7c:	58000400 	.word	0x58000400
+
+08008c80 <HAL_PWR_EnterSLEEPMode>:
+ 8008c80:	4b0d      	ldr	r3, [pc, #52]	; (8008cb8 <HAL_PWR_EnterSLEEPMode+0x38>)
+ 8008c82:	b510      	push	{r4, lr}
+ 8008c84:	695b      	ldr	r3, [r3, #20]
+ 8008c86:	460c      	mov	r4, r1
+ 8008c88:	b928      	cbnz	r0, 8008c96 <HAL_PWR_EnterSLEEPMode+0x16>
+ 8008c8a:	059a      	lsls	r2, r3, #22
+ 8008c8c:	d507      	bpl.n	8008c9e <HAL_PWR_EnterSLEEPMode+0x1e>
+ 8008c8e:	f000 f827 	bl	8008ce0 <HAL_PWREx_DisableLowPowerRunMode>
+ 8008c92:	b120      	cbz	r0, 8008c9e <HAL_PWR_EnterSLEEPMode+0x1e>
+ 8008c94:	bd10      	pop	{r4, pc}
+ 8008c96:	059b      	lsls	r3, r3, #22
+ 8008c98:	d401      	bmi.n	8008c9e <HAL_PWR_EnterSLEEPMode+0x1e>
+ 8008c9a:	f000 f819 	bl	8008cd0 <HAL_PWREx_EnableLowPowerRunMode>
+ 8008c9e:	4a07      	ldr	r2, [pc, #28]	; (8008cbc <HAL_PWR_EnterSLEEPMode+0x3c>)
+ 8008ca0:	6913      	ldr	r3, [r2, #16]
+ 8008ca2:	2c01      	cmp	r4, #1
+ 8008ca4:	f023 0304 	bic.w	r3, r3, #4
+ 8008ca8:	6113      	str	r3, [r2, #16]
+ 8008caa:	d101      	bne.n	8008cb0 <HAL_PWR_EnterSLEEPMode+0x30>
+ 8008cac:	bf30      	wfi
+ 8008cae:	e7f1      	b.n	8008c94 <HAL_PWR_EnterSLEEPMode+0x14>
+ 8008cb0:	bf40      	sev
+ 8008cb2:	bf20      	wfe
+ 8008cb4:	bf20      	wfe
+ 8008cb6:	e7ed      	b.n	8008c94 <HAL_PWR_EnterSLEEPMode+0x14>
+ 8008cb8:	58000400 	.word	0x58000400
+ 8008cbc:	e000ed00 	.word	0xe000ed00
+
+08008cc0 <HAL_PWREx_GetVoltageRange>:
+ 8008cc0:	4b02      	ldr	r3, [pc, #8]	; (8008ccc <HAL_PWREx_GetVoltageRange+0xc>)
+ 8008cc2:	6818      	ldr	r0, [r3, #0]
+ 8008cc4:	f400 60c0 	and.w	r0, r0, #1536	; 0x600
+ 8008cc8:	4770      	bx	lr
+ 8008cca:	bf00      	nop
+ 8008ccc:	58000400 	.word	0x58000400
+
+08008cd0 <HAL_PWREx_EnableLowPowerRunMode>:
+ 8008cd0:	4a02      	ldr	r2, [pc, #8]	; (8008cdc <HAL_PWREx_EnableLowPowerRunMode+0xc>)
+ 8008cd2:	6813      	ldr	r3, [r2, #0]
+ 8008cd4:	f443 4380 	orr.w	r3, r3, #16384	; 0x4000
+ 8008cd8:	6013      	str	r3, [r2, #0]
+ 8008cda:	4770      	bx	lr
+ 8008cdc:	58000400 	.word	0x58000400
+
+08008ce0 <HAL_PWREx_DisableLowPowerRunMode>:
+ 8008ce0:	4a0c      	ldr	r2, [pc, #48]	; (8008d14 <HAL_PWREx_DisableLowPowerRunMode+0x34>)
+ 8008ce2:	6813      	ldr	r3, [r2, #0]
+ 8008ce4:	f423 4380 	bic.w	r3, r3, #16384	; 0x4000
+ 8008ce8:	6013      	str	r3, [r2, #0]
+ 8008cea:	4b0b      	ldr	r3, [pc, #44]	; (8008d18 <HAL_PWREx_DisableLowPowerRunMode+0x38>)
+ 8008cec:	681b      	ldr	r3, [r3, #0]
+ 8008cee:	2132      	movs	r1, #50	; 0x32
+ 8008cf0:	434b      	muls	r3, r1
+ 8008cf2:	490a      	ldr	r1, [pc, #40]	; (8008d1c <HAL_PWREx_DisableLowPowerRunMode+0x3c>)
+ 8008cf4:	fbb3 f3f1 	udiv	r3, r3, r1
+ 8008cf8:	6951      	ldr	r1, [r2, #20]
+ 8008cfa:	0589      	lsls	r1, r1, #22
+ 8008cfc:	d500      	bpl.n	8008d00 <HAL_PWREx_DisableLowPowerRunMode+0x20>
+ 8008cfe:	b933      	cbnz	r3, 8008d0e <HAL_PWREx_DisableLowPowerRunMode+0x2e>
+ 8008d00:	6953      	ldr	r3, [r2, #20]
+ 8008d02:	f413 7f00 	tst.w	r3, #512	; 0x200
+ 8008d06:	bf14      	ite	ne
+ 8008d08:	2003      	movne	r0, #3
+ 8008d0a:	2000      	moveq	r0, #0
+ 8008d0c:	4770      	bx	lr
+ 8008d0e:	3b01      	subs	r3, #1
+ 8008d10:	e7f2      	b.n	8008cf8 <HAL_PWREx_DisableLowPowerRunMode+0x18>
+ 8008d12:	bf00      	nop
+ 8008d14:	58000400 	.word	0x58000400
+ 8008d18:	20000828 	.word	0x20000828
+ 8008d1c:	000f4240 	.word	0x000f4240
+
+08008d20 <HAL_PWREx_EnterSTOP2Mode>:
+ 8008d20:	4a0b      	ldr	r2, [pc, #44]	; (8008d50 <HAL_PWREx_EnterSTOP2Mode+0x30>)
+ 8008d22:	6813      	ldr	r3, [r2, #0]
+ 8008d24:	f023 0307 	bic.w	r3, r3, #7
+ 8008d28:	f043 0302 	orr.w	r3, r3, #2
+ 8008d2c:	6013      	str	r3, [r2, #0]
+ 8008d2e:	4b09      	ldr	r3, [pc, #36]	; (8008d54 <HAL_PWREx_EnterSTOP2Mode+0x34>)
+ 8008d30:	691a      	ldr	r2, [r3, #16]
+ 8008d32:	2801      	cmp	r0, #1
+ 8008d34:	f042 0204 	orr.w	r2, r2, #4
+ 8008d38:	611a      	str	r2, [r3, #16]
+ 8008d3a:	d105      	bne.n	8008d48 <HAL_PWREx_EnterSTOP2Mode+0x28>
+ 8008d3c:	bf30      	wfi
+ 8008d3e:	691a      	ldr	r2, [r3, #16]
+ 8008d40:	f022 0204 	bic.w	r2, r2, #4
+ 8008d44:	611a      	str	r2, [r3, #16]
+ 8008d46:	4770      	bx	lr
+ 8008d48:	bf40      	sev
+ 8008d4a:	bf20      	wfe
+ 8008d4c:	bf20      	wfe
+ 8008d4e:	e7f6      	b.n	8008d3e <HAL_PWREx_EnterSTOP2Mode+0x1e>
+ 8008d50:	58000400 	.word	0x58000400
+ 8008d54:	e000ed00 	.word	0xe000ed00
+
+08008d58 <LL_RCC_HSE_IsReady>:
+ 8008d58:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8008d5c:	6818      	ldr	r0, [r3, #0]
+ 8008d5e:	f3c0 4040 	ubfx	r0, r0, #17, #1
+ 8008d62:	4770      	bx	lr
+
+08008d64 <LL_RCC_MSI_IsReady>:
+ 8008d64:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8008d68:	6818      	ldr	r0, [r3, #0]
+ 8008d6a:	f3c0 0040 	ubfx	r0, r0, #1, #1
+ 8008d6e:	4770      	bx	lr
+
+08008d70 <LL_RCC_MSI_SetCalibTrimming>:
+ 8008d70:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 8008d74:	6853      	ldr	r3, [r2, #4]
+ 8008d76:	f423 437f 	bic.w	r3, r3, #65280	; 0xff00
+ 8008d7a:	ea43 2300 	orr.w	r3, r3, r0, lsl #8
+ 8008d7e:	6053      	str	r3, [r2, #4]
+ 8008d80:	4770      	bx	lr
+
+08008d82 <LL_RCC_PLL_IsReady>:
+ 8008d82:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8008d86:	6818      	ldr	r0, [r3, #0]
+ 8008d88:	f3c0 6040 	ubfx	r0, r0, #25, #1
+ 8008d8c:	4770      	bx	lr
+	...
+
+08008d90 <RCC_SetFlashLatencyFromMSIRange>:
+ 8008d90:	b57f      	push	{r0, r1, r2, r3, r4, r5, r6, lr}
+ 8008d92:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8008d96:	4a2c      	ldr	r2, [pc, #176]	; (8008e48 <RCC_SetFlashLatencyFromMSIRange+0xb8>)
+ 8008d98:	f8d3 3108 	ldr.w	r3, [r3, #264]	; 0x108
+ 8008d9c:	f3c0 1003 	ubfx	r0, r0, #4, #4
+ 8008da0:	f003 030f 	and.w	r3, r3, #15
+ 8008da4:	f852 4020 	ldr.w	r4, [r2, r0, lsl #2]
+ 8008da8:	4a28      	ldr	r2, [pc, #160]	; (8008e4c <RCC_SetFlashLatencyFromMSIRange+0xbc>)
+ 8008daa:	f852 3023 	ldr.w	r3, [r2, r3, lsl #2]
+ 8008dae:	fbb4 f4f3 	udiv	r4, r4, r3
+ 8008db2:	f7ff ff85 	bl	8008cc0 <HAL_PWREx_GetVoltageRange>
+ 8008db6:	4b26      	ldr	r3, [pc, #152]	; (8008e50 <RCC_SetFlashLatencyFromMSIRange+0xc0>)
+ 8008db8:	4605      	mov	r5, r0
+ 8008dba:	e893 0007 	ldmia.w	r3, {r0, r1, r2}
+ 8008dbe:	f5b5 7f00 	cmp.w	r5, #512	; 0x200
+ 8008dc2:	ab04      	add	r3, sp, #16
+ 8008dc4:	e903 0007 	stmdb	r3, {r0, r1, r2}
+ 8008dc8:	d010      	beq.n	8008dec <RCC_SetFlashLatencyFromMSIRange+0x5c>
+ 8008dca:	4b22      	ldr	r3, [pc, #136]	; (8008e54 <RCC_SetFlashLatencyFromMSIRange+0xc4>)
+ 8008dcc:	429c      	cmp	r4, r3
+ 8008dce:	d318      	bcc.n	8008e02 <RCC_SetFlashLatencyFromMSIRange+0x72>
+ 8008dd0:	f503 03b7 	add.w	r3, r3, #5996544	; 0x5b8000
+ 8008dd4:	f603 537f 	addw	r3, r3, #3455	; 0xd7f
+ 8008dd8:	429c      	cmp	r4, r3
+ 8008dda:	d929      	bls.n	8008e30 <RCC_SetFlashLatencyFromMSIRange+0xa0>
+ 8008ddc:	f503 1374 	add.w	r3, r3, #3997696	; 0x3d0000
+ 8008de0:	f503 6310 	add.w	r3, r3, #2304	; 0x900
+ 8008de4:	429c      	cmp	r4, r3
+ 8008de6:	d825      	bhi.n	8008e34 <RCC_SetFlashLatencyFromMSIRange+0xa4>
+ 8008de8:	2302      	movs	r3, #2
+ 8008dea:	e00b      	b.n	8008e04 <RCC_SetFlashLatencyFromMSIRange+0x74>
+ 8008dec:	4b1a      	ldr	r3, [pc, #104]	; (8008e58 <RCC_SetFlashLatencyFromMSIRange+0xc8>)
+ 8008dee:	429c      	cmp	r4, r3
+ 8008df0:	d907      	bls.n	8008e02 <RCC_SetFlashLatencyFromMSIRange+0x72>
+ 8008df2:	4b1a      	ldr	r3, [pc, #104]	; (8008e5c <RCC_SetFlashLatencyFromMSIRange+0xcc>)
+ 8008df4:	429c      	cmp	r4, r3
+ 8008df6:	d91b      	bls.n	8008e30 <RCC_SetFlashLatencyFromMSIRange+0xa0>
+ 8008df8:	f503 0337 	add.w	r3, r3, #11993088	; 0xb70000
+ 8008dfc:	f503 53d8 	add.w	r3, r3, #6912	; 0x1b00
+ 8008e00:	e7f0      	b.n	8008de4 <RCC_SetFlashLatencyFromMSIRange+0x54>
+ 8008e02:	2300      	movs	r3, #0
+ 8008e04:	aa04      	add	r2, sp, #16
+ 8008e06:	eb02 0383 	add.w	r3, r2, r3, lsl #2
+ 8008e0a:	f853 4c0c 	ldr.w	r4, [r3, #-12]
+ 8008e0e:	4d14      	ldr	r5, [pc, #80]	; (8008e60 <RCC_SetFlashLatencyFromMSIRange+0xd0>)
+ 8008e10:	682b      	ldr	r3, [r5, #0]
+ 8008e12:	f023 0307 	bic.w	r3, r3, #7
+ 8008e16:	4323      	orrs	r3, r4
+ 8008e18:	602b      	str	r3, [r5, #0]
+ 8008e1a:	f7f9 fe97 	bl	8002b4c <HAL_GetTick>
+ 8008e1e:	4606      	mov	r6, r0
+ 8008e20:	682b      	ldr	r3, [r5, #0]
+ 8008e22:	f003 0307 	and.w	r3, r3, #7
+ 8008e26:	429c      	cmp	r4, r3
+ 8008e28:	d106      	bne.n	8008e38 <RCC_SetFlashLatencyFromMSIRange+0xa8>
+ 8008e2a:	2000      	movs	r0, #0
+ 8008e2c:	b004      	add	sp, #16
+ 8008e2e:	bd70      	pop	{r4, r5, r6, pc}
+ 8008e30:	2301      	movs	r3, #1
+ 8008e32:	e7e7      	b.n	8008e04 <RCC_SetFlashLatencyFromMSIRange+0x74>
+ 8008e34:	2400      	movs	r4, #0
+ 8008e36:	e7ea      	b.n	8008e0e <RCC_SetFlashLatencyFromMSIRange+0x7e>
+ 8008e38:	f7f9 fe88 	bl	8002b4c <HAL_GetTick>
+ 8008e3c:	1b80      	subs	r0, r0, r6
+ 8008e3e:	2802      	cmp	r0, #2
+ 8008e40:	d9ee      	bls.n	8008e20 <RCC_SetFlashLatencyFromMSIRange+0x90>
+ 8008e42:	2003      	movs	r0, #3
+ 8008e44:	e7f2      	b.n	8008e2c <RCC_SetFlashLatencyFromMSIRange+0x9c>
+ 8008e46:	bf00      	nop
+ 8008e48:	08015004 	.word	0x08015004
+ 8008e4c:	08014fa4 	.word	0x08014fa4
+ 8008e50:	08014400 	.word	0x08014400
+ 8008e54:	006acfc0 	.word	0x006acfc0
+ 8008e58:	0121eabf 	.word	0x0121eabf
+ 8008e5c:	0234933f 	.word	0x0234933f
+ 8008e60:	58004000 	.word	0x58004000
+
+08008e64 <HAL_RCC_GetSysClockFreq>:
+ 8008e64:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8008e68:	b510      	push	{r4, lr}
+ 8008e6a:	689a      	ldr	r2, [r3, #8]
+ 8008e6c:	68d9      	ldr	r1, [r3, #12]
+ 8008e6e:	f012 020c 	ands.w	r2, r2, #12
+ 8008e72:	d005      	beq.n	8008e80 <HAL_RCC_GetSysClockFreq+0x1c>
+ 8008e74:	2a0c      	cmp	r2, #12
+ 8008e76:	d14a      	bne.n	8008f0e <HAL_RCC_GetSysClockFreq+0xaa>
+ 8008e78:	f001 0303 	and.w	r3, r1, #3
+ 8008e7c:	2b01      	cmp	r3, #1
+ 8008e7e:	d150      	bne.n	8008f22 <HAL_RCC_GetSysClockFreq+0xbe>
+ 8008e80:	f04f 41b0 	mov.w	r1, #1476395008	; 0x58000000
+ 8008e84:	482b      	ldr	r0, [pc, #172]	; (8008f34 <HAL_RCC_GetSysClockFreq+0xd0>)
+ 8008e86:	680b      	ldr	r3, [r1, #0]
+ 8008e88:	f013 0308 	ands.w	r3, r3, #8
+ 8008e8c:	d006      	beq.n	8008e9c <HAL_RCC_GetSysClockFreq+0x38>
+ 8008e8e:	680b      	ldr	r3, [r1, #0]
+ 8008e90:	f013 0308 	ands.w	r3, r3, #8
+ 8008e94:	d137      	bne.n	8008f06 <HAL_RCC_GetSysClockFreq+0xa2>
+ 8008e96:	f8d1 1094 	ldr.w	r1, [r1, #148]	; 0x94
+ 8008e9a:	e007      	b.n	8008eac <HAL_RCC_GetSysClockFreq+0x48>
+ 8008e9c:	680c      	ldr	r4, [r1, #0]
+ 8008e9e:	0724      	lsls	r4, r4, #28
+ 8008ea0:	bf56      	itet	pl
+ 8008ea2:	f8d1 3094 	ldrpl.w	r3, [r1, #148]	; 0x94
+ 8008ea6:	6809      	ldrmi	r1, [r1, #0]
+ 8008ea8:	f3c3 2303 	ubfxpl	r3, r3, #8, #4
+ 8008eac:	f850 3023 	ldr.w	r3, [r0, r3, lsl #2]
+ 8008eb0:	2a00      	cmp	r2, #0
+ 8008eb2:	bf0c      	ite	eq
+ 8008eb4:	4618      	moveq	r0, r3
+ 8008eb6:	2000      	movne	r0, #0
+ 8008eb8:	f04f 41b0 	mov.w	r1, #1476395008	; 0x58000000
+ 8008ebc:	688a      	ldr	r2, [r1, #8]
+ 8008ebe:	f002 020c 	and.w	r2, r2, #12
+ 8008ec2:	2a0c      	cmp	r2, #12
+ 8008ec4:	d11e      	bne.n	8008f04 <HAL_RCC_GetSysClockFreq+0xa0>
+ 8008ec6:	68ca      	ldr	r2, [r1, #12]
+ 8008ec8:	f002 0203 	and.w	r2, r2, #3
+ 8008ecc:	2a02      	cmp	r2, #2
+ 8008ece:	d02e      	beq.n	8008f2e <HAL_RCC_GetSysClockFreq+0xca>
+ 8008ed0:	2a03      	cmp	r2, #3
+ 8008ed2:	d106      	bne.n	8008ee2 <HAL_RCC_GetSysClockFreq+0x7e>
+ 8008ed4:	680b      	ldr	r3, [r1, #0]
+ 8008ed6:	4a18      	ldr	r2, [pc, #96]	; (8008f38 <HAL_RCC_GetSysClockFreq+0xd4>)
+ 8008ed8:	f413 1f80 	tst.w	r3, #1048576	; 0x100000
+ 8008edc:	4b17      	ldr	r3, [pc, #92]	; (8008f3c <HAL_RCC_GetSysClockFreq+0xd8>)
+ 8008ede:	bf18      	it	ne
+ 8008ee0:	4613      	movne	r3, r2
+ 8008ee2:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 8008ee6:	68d0      	ldr	r0, [r2, #12]
+ 8008ee8:	68d1      	ldr	r1, [r2, #12]
+ 8008eea:	68d2      	ldr	r2, [r2, #12]
+ 8008eec:	f3c0 2006 	ubfx	r0, r0, #8, #7
+ 8008ef0:	4358      	muls	r0, r3
+ 8008ef2:	f3c1 1302 	ubfx	r3, r1, #4, #3
+ 8008ef6:	3301      	adds	r3, #1
+ 8008ef8:	fbb0 f0f3 	udiv	r0, r0, r3
+ 8008efc:	0f53      	lsrs	r3, r2, #29
+ 8008efe:	3301      	adds	r3, #1
+ 8008f00:	fbb0 f0f3 	udiv	r0, r0, r3
+ 8008f04:	bd10      	pop	{r4, pc}
+ 8008f06:	680b      	ldr	r3, [r1, #0]
+ 8008f08:	f3c3 1303 	ubfx	r3, r3, #4, #4
+ 8008f0c:	e7ce      	b.n	8008eac <HAL_RCC_GetSysClockFreq+0x48>
+ 8008f0e:	2a04      	cmp	r2, #4
+ 8008f10:	d00a      	beq.n	8008f28 <HAL_RCC_GetSysClockFreq+0xc4>
+ 8008f12:	2a08      	cmp	r2, #8
+ 8008f14:	d105      	bne.n	8008f22 <HAL_RCC_GetSysClockFreq+0xbe>
+ 8008f16:	681b      	ldr	r3, [r3, #0]
+ 8008f18:	f413 1380 	ands.w	r3, r3, #1048576	; 0x100000
+ 8008f1c:	d104      	bne.n	8008f28 <HAL_RCC_GetSysClockFreq+0xc4>
+ 8008f1e:	4807      	ldr	r0, [pc, #28]	; (8008f3c <HAL_RCC_GetSysClockFreq+0xd8>)
+ 8008f20:	e7ca      	b.n	8008eb8 <HAL_RCC_GetSysClockFreq+0x54>
+ 8008f22:	2300      	movs	r3, #0
+ 8008f24:	4618      	mov	r0, r3
+ 8008f26:	e7c7      	b.n	8008eb8 <HAL_RCC_GetSysClockFreq+0x54>
+ 8008f28:	4803      	ldr	r0, [pc, #12]	; (8008f38 <HAL_RCC_GetSysClockFreq+0xd4>)
+ 8008f2a:	2300      	movs	r3, #0
+ 8008f2c:	e7c4      	b.n	8008eb8 <HAL_RCC_GetSysClockFreq+0x54>
+ 8008f2e:	4b02      	ldr	r3, [pc, #8]	; (8008f38 <HAL_RCC_GetSysClockFreq+0xd4>)
+ 8008f30:	e7d7      	b.n	8008ee2 <HAL_RCC_GetSysClockFreq+0x7e>
+ 8008f32:	bf00      	nop
+ 8008f34:	08015004 	.word	0x08015004
+ 8008f38:	00f42400 	.word	0x00f42400
+ 8008f3c:	01e84800 	.word	0x01e84800
+
+08008f40 <HAL_RCC_GetHCLKFreq>:
+ 8008f40:	b508      	push	{r3, lr}
+ 8008f42:	f7ff ff8f 	bl	8008e64 <HAL_RCC_GetSysClockFreq>
+ 8008f46:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8008f4a:	4a04      	ldr	r2, [pc, #16]	; (8008f5c <HAL_RCC_GetHCLKFreq+0x1c>)
+ 8008f4c:	689b      	ldr	r3, [r3, #8]
+ 8008f4e:	f3c3 1303 	ubfx	r3, r3, #4, #4
+ 8008f52:	f852 3023 	ldr.w	r3, [r2, r3, lsl #2]
+ 8008f56:	fbb0 f0f3 	udiv	r0, r0, r3
+ 8008f5a:	bd08      	pop	{r3, pc}
+ 8008f5c:	08014fa4 	.word	0x08014fa4
+
+08008f60 <HAL_RCC_OscConfig>:
+ 8008f60:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8008f64:	4604      	mov	r4, r0
+ 8008f66:	2800      	cmp	r0, #0
+ 8008f68:	d053      	beq.n	8009012 <HAL_RCC_OscConfig+0xb2>
+ 8008f6a:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8008f6e:	689d      	ldr	r5, [r3, #8]
+ 8008f70:	68de      	ldr	r6, [r3, #12]
+ 8008f72:	6803      	ldr	r3, [r0, #0]
+ 8008f74:	069b      	lsls	r3, r3, #26
+ 8008f76:	f005 050c 	and.w	r5, r5, #12
+ 8008f7a:	f006 0603 	and.w	r6, r6, #3
+ 8008f7e:	d568      	bpl.n	8009052 <HAL_RCC_OscConfig+0xf2>
+ 8008f80:	6a02      	ldr	r2, [r0, #32]
+ 8008f82:	b11d      	cbz	r5, 8008f8c <HAL_RCC_OscConfig+0x2c>
+ 8008f84:	2d0c      	cmp	r5, #12
+ 8008f86:	d146      	bne.n	8009016 <HAL_RCC_OscConfig+0xb6>
+ 8008f88:	2e01      	cmp	r6, #1
+ 8008f8a:	d144      	bne.n	8009016 <HAL_RCC_OscConfig+0xb6>
+ 8008f8c:	2a00      	cmp	r2, #0
+ 8008f8e:	d040      	beq.n	8009012 <HAL_RCC_OscConfig+0xb2>
+ 8008f90:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8008f94:	6aa1      	ldr	r1, [r4, #40]	; 0x28
+ 8008f96:	681a      	ldr	r2, [r3, #0]
+ 8008f98:	0717      	lsls	r7, r2, #28
+ 8008f9a:	bf56      	itet	pl
+ 8008f9c:	f8d3 3094 	ldrpl.w	r3, [r3, #148]	; 0x94
+ 8008fa0:	681b      	ldrmi	r3, [r3, #0]
+ 8008fa2:	091b      	lsrpl	r3, r3, #4
+ 8008fa4:	f003 03f0 	and.w	r3, r3, #240	; 0xf0
+ 8008fa8:	4299      	cmp	r1, r3
+ 8008faa:	d91f      	bls.n	8008fec <HAL_RCC_OscConfig+0x8c>
+ 8008fac:	4608      	mov	r0, r1
+ 8008fae:	f7ff feef 	bl	8008d90 <RCC_SetFlashLatencyFromMSIRange>
+ 8008fb2:	2800      	cmp	r0, #0
+ 8008fb4:	d12d      	bne.n	8009012 <HAL_RCC_OscConfig+0xb2>
+ 8008fb6:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 8008fba:	6813      	ldr	r3, [r2, #0]
+ 8008fbc:	f043 0308 	orr.w	r3, r3, #8
+ 8008fc0:	6013      	str	r3, [r2, #0]
+ 8008fc2:	6813      	ldr	r3, [r2, #0]
+ 8008fc4:	6aa1      	ldr	r1, [r4, #40]	; 0x28
+ 8008fc6:	f023 03f0 	bic.w	r3, r3, #240	; 0xf0
+ 8008fca:	430b      	orrs	r3, r1
+ 8008fcc:	6013      	str	r3, [r2, #0]
+ 8008fce:	6a60      	ldr	r0, [r4, #36]	; 0x24
+ 8008fd0:	f7ff fece 	bl	8008d70 <LL_RCC_MSI_SetCalibTrimming>
+ 8008fd4:	f7ff ffb4 	bl	8008f40 <HAL_RCC_GetHCLKFreq>
+ 8008fd8:	4bab      	ldr	r3, [pc, #684]	; (8009288 <HAL_RCC_OscConfig+0x328>)
+ 8008fda:	6018      	str	r0, [r3, #0]
+ 8008fdc:	4bab      	ldr	r3, [pc, #684]	; (800928c <HAL_RCC_OscConfig+0x32c>)
+ 8008fde:	6818      	ldr	r0, [r3, #0]
+ 8008fe0:	f7f9 fdb2 	bl	8002b48 <HAL_InitTick>
+ 8008fe4:	2800      	cmp	r0, #0
+ 8008fe6:	d034      	beq.n	8009052 <HAL_RCC_OscConfig+0xf2>
+ 8008fe8:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 8008fec:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 8008ff0:	6813      	ldr	r3, [r2, #0]
+ 8008ff2:	f043 0308 	orr.w	r3, r3, #8
+ 8008ff6:	6013      	str	r3, [r2, #0]
+ 8008ff8:	6813      	ldr	r3, [r2, #0]
+ 8008ffa:	f023 03f0 	bic.w	r3, r3, #240	; 0xf0
+ 8008ffe:	430b      	orrs	r3, r1
+ 8009000:	6013      	str	r3, [r2, #0]
+ 8009002:	6a60      	ldr	r0, [r4, #36]	; 0x24
+ 8009004:	f7ff feb4 	bl	8008d70 <LL_RCC_MSI_SetCalibTrimming>
+ 8009008:	4608      	mov	r0, r1
+ 800900a:	f7ff fec1 	bl	8008d90 <RCC_SetFlashLatencyFromMSIRange>
+ 800900e:	2800      	cmp	r0, #0
+ 8009010:	d0e0      	beq.n	8008fd4 <HAL_RCC_OscConfig+0x74>
+ 8009012:	2001      	movs	r0, #1
+ 8009014:	e7e8      	b.n	8008fe8 <HAL_RCC_OscConfig+0x88>
+ 8009016:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800901a:	2a00      	cmp	r2, #0
+ 800901c:	d054      	beq.n	80090c8 <HAL_RCC_OscConfig+0x168>
+ 800901e:	681a      	ldr	r2, [r3, #0]
+ 8009020:	f042 0201 	orr.w	r2, r2, #1
+ 8009024:	601a      	str	r2, [r3, #0]
+ 8009026:	f7f9 fd91 	bl	8002b4c <HAL_GetTick>
+ 800902a:	4607      	mov	r7, r0
+ 800902c:	f7ff fe9a 	bl	8008d64 <LL_RCC_MSI_IsReady>
+ 8009030:	2800      	cmp	r0, #0
+ 8009032:	d042      	beq.n	80090ba <HAL_RCC_OscConfig+0x15a>
+ 8009034:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 8009038:	6813      	ldr	r3, [r2, #0]
+ 800903a:	f043 0308 	orr.w	r3, r3, #8
+ 800903e:	6013      	str	r3, [r2, #0]
+ 8009040:	6813      	ldr	r3, [r2, #0]
+ 8009042:	6aa1      	ldr	r1, [r4, #40]	; 0x28
+ 8009044:	f023 03f0 	bic.w	r3, r3, #240	; 0xf0
+ 8009048:	430b      	orrs	r3, r1
+ 800904a:	6013      	str	r3, [r2, #0]
+ 800904c:	6a60      	ldr	r0, [r4, #36]	; 0x24
+ 800904e:	f7ff fe8f 	bl	8008d70 <LL_RCC_MSI_SetCalibTrimming>
+ 8009052:	6823      	ldr	r3, [r4, #0]
+ 8009054:	07d8      	lsls	r0, r3, #31
+ 8009056:	d448      	bmi.n	80090ea <HAL_RCC_OscConfig+0x18a>
+ 8009058:	6823      	ldr	r3, [r4, #0]
+ 800905a:	0799      	lsls	r1, r3, #30
+ 800905c:	f100 808c 	bmi.w	8009178 <HAL_RCC_OscConfig+0x218>
+ 8009060:	6823      	ldr	r3, [r4, #0]
+ 8009062:	071e      	lsls	r6, r3, #28
+ 8009064:	f140 80fa 	bpl.w	800925c <HAL_RCC_OscConfig+0x2fc>
+ 8009068:	69a3      	ldr	r3, [r4, #24]
+ 800906a:	f04f 46b0 	mov.w	r6, #1476395008	; 0x58000000
+ 800906e:	2b00      	cmp	r3, #0
+ 8009070:	f000 80e1 	beq.w	8009236 <HAL_RCC_OscConfig+0x2d6>
+ 8009074:	f8d6 3094 	ldr.w	r3, [r6, #148]	; 0x94
+ 8009078:	69e1      	ldr	r1, [r4, #28]
+ 800907a:	f003 0210 	and.w	r2, r3, #16
+ 800907e:	4291      	cmp	r1, r2
+ 8009080:	f000 80c4 	beq.w	800920c <HAL_RCC_OscConfig+0x2ac>
+ 8009084:	f003 0203 	and.w	r2, r3, #3
+ 8009088:	2a02      	cmp	r2, #2
+ 800908a:	d0c2      	beq.n	8009012 <HAL_RCC_OscConfig+0xb2>
+ 800908c:	07d8      	lsls	r0, r3, #31
+ 800908e:	f140 80b3 	bpl.w	80091f8 <HAL_RCC_OscConfig+0x298>
+ 8009092:	f8d6 3094 	ldr.w	r3, [r6, #148]	; 0x94
+ 8009096:	f023 0301 	bic.w	r3, r3, #1
+ 800909a:	f8c6 3094 	str.w	r3, [r6, #148]	; 0x94
+ 800909e:	f7f9 fd55 	bl	8002b4c <HAL_GetTick>
+ 80090a2:	4607      	mov	r7, r0
+ 80090a4:	f8d6 3094 	ldr.w	r3, [r6, #148]	; 0x94
+ 80090a8:	0799      	lsls	r1, r3, #30
+ 80090aa:	f140 80a5 	bpl.w	80091f8 <HAL_RCC_OscConfig+0x298>
+ 80090ae:	f7f9 fd4d 	bl	8002b4c <HAL_GetTick>
+ 80090b2:	1bc3      	subs	r3, r0, r7
+ 80090b4:	2b11      	cmp	r3, #17
+ 80090b6:	d9f5      	bls.n	80090a4 <HAL_RCC_OscConfig+0x144>
+ 80090b8:	e004      	b.n	80090c4 <HAL_RCC_OscConfig+0x164>
+ 80090ba:	f7f9 fd47 	bl	8002b4c <HAL_GetTick>
+ 80090be:	1bc0      	subs	r0, r0, r7
+ 80090c0:	2802      	cmp	r0, #2
+ 80090c2:	d9b3      	bls.n	800902c <HAL_RCC_OscConfig+0xcc>
+ 80090c4:	2003      	movs	r0, #3
+ 80090c6:	e78f      	b.n	8008fe8 <HAL_RCC_OscConfig+0x88>
+ 80090c8:	681a      	ldr	r2, [r3, #0]
+ 80090ca:	f022 0201 	bic.w	r2, r2, #1
+ 80090ce:	601a      	str	r2, [r3, #0]
+ 80090d0:	f7f9 fd3c 	bl	8002b4c <HAL_GetTick>
+ 80090d4:	4607      	mov	r7, r0
+ 80090d6:	f7ff fe45 	bl	8008d64 <LL_RCC_MSI_IsReady>
+ 80090da:	2800      	cmp	r0, #0
+ 80090dc:	d0b9      	beq.n	8009052 <HAL_RCC_OscConfig+0xf2>
+ 80090de:	f7f9 fd35 	bl	8002b4c <HAL_GetTick>
+ 80090e2:	1bc0      	subs	r0, r0, r7
+ 80090e4:	2802      	cmp	r0, #2
+ 80090e6:	d9f6      	bls.n	80090d6 <HAL_RCC_OscConfig+0x176>
+ 80090e8:	e7ec      	b.n	80090c4 <HAL_RCC_OscConfig+0x164>
+ 80090ea:	2d08      	cmp	r5, #8
+ 80090ec:	d003      	beq.n	80090f6 <HAL_RCC_OscConfig+0x196>
+ 80090ee:	2d0c      	cmp	r5, #12
+ 80090f0:	d105      	bne.n	80090fe <HAL_RCC_OscConfig+0x19e>
+ 80090f2:	2e03      	cmp	r6, #3
+ 80090f4:	d103      	bne.n	80090fe <HAL_RCC_OscConfig+0x19e>
+ 80090f6:	6863      	ldr	r3, [r4, #4]
+ 80090f8:	2b00      	cmp	r3, #0
+ 80090fa:	d1ad      	bne.n	8009058 <HAL_RCC_OscConfig+0xf8>
+ 80090fc:	e789      	b.n	8009012 <HAL_RCC_OscConfig+0xb2>
+ 80090fe:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8009102:	68a1      	ldr	r1, [r4, #8]
+ 8009104:	681a      	ldr	r2, [r3, #0]
+ 8009106:	f422 1280 	bic.w	r2, r2, #1048576	; 0x100000
+ 800910a:	430a      	orrs	r2, r1
+ 800910c:	601a      	str	r2, [r3, #0]
+ 800910e:	6862      	ldr	r2, [r4, #4]
+ 8009110:	f5b2 3f80 	cmp.w	r2, #65536	; 0x10000
+ 8009114:	d110      	bne.n	8009138 <HAL_RCC_OscConfig+0x1d8>
+ 8009116:	681a      	ldr	r2, [r3, #0]
+ 8009118:	f442 3280 	orr.w	r2, r2, #65536	; 0x10000
+ 800911c:	601a      	str	r2, [r3, #0]
+ 800911e:	f7f9 fd15 	bl	8002b4c <HAL_GetTick>
+ 8009122:	4607      	mov	r7, r0
+ 8009124:	f7ff fe18 	bl	8008d58 <LL_RCC_HSE_IsReady>
+ 8009128:	2800      	cmp	r0, #0
+ 800912a:	d195      	bne.n	8009058 <HAL_RCC_OscConfig+0xf8>
+ 800912c:	f7f9 fd0e 	bl	8002b4c <HAL_GetTick>
+ 8009130:	1bc0      	subs	r0, r0, r7
+ 8009132:	2864      	cmp	r0, #100	; 0x64
+ 8009134:	d9f6      	bls.n	8009124 <HAL_RCC_OscConfig+0x1c4>
+ 8009136:	e7c5      	b.n	80090c4 <HAL_RCC_OscConfig+0x164>
+ 8009138:	f5b2 1f04 	cmp.w	r2, #2162688	; 0x210000
+ 800913c:	d104      	bne.n	8009148 <HAL_RCC_OscConfig+0x1e8>
+ 800913e:	681a      	ldr	r2, [r3, #0]
+ 8009140:	f442 1200 	orr.w	r2, r2, #2097152	; 0x200000
+ 8009144:	601a      	str	r2, [r3, #0]
+ 8009146:	e7e6      	b.n	8009116 <HAL_RCC_OscConfig+0x1b6>
+ 8009148:	6819      	ldr	r1, [r3, #0]
+ 800914a:	f421 3180 	bic.w	r1, r1, #65536	; 0x10000
+ 800914e:	6019      	str	r1, [r3, #0]
+ 8009150:	6819      	ldr	r1, [r3, #0]
+ 8009152:	f421 1100 	bic.w	r1, r1, #2097152	; 0x200000
+ 8009156:	6019      	str	r1, [r3, #0]
+ 8009158:	2a00      	cmp	r2, #0
+ 800915a:	d1e0      	bne.n	800911e <HAL_RCC_OscConfig+0x1be>
+ 800915c:	f7f9 fcf6 	bl	8002b4c <HAL_GetTick>
+ 8009160:	4607      	mov	r7, r0
+ 8009162:	f7ff fdf9 	bl	8008d58 <LL_RCC_HSE_IsReady>
+ 8009166:	2800      	cmp	r0, #0
+ 8009168:	f43f af76 	beq.w	8009058 <HAL_RCC_OscConfig+0xf8>
+ 800916c:	f7f9 fcee 	bl	8002b4c <HAL_GetTick>
+ 8009170:	1bc0      	subs	r0, r0, r7
+ 8009172:	2864      	cmp	r0, #100	; 0x64
+ 8009174:	d9f5      	bls.n	8009162 <HAL_RCC_OscConfig+0x202>
+ 8009176:	e7a5      	b.n	80090c4 <HAL_RCC_OscConfig+0x164>
+ 8009178:	2d04      	cmp	r5, #4
+ 800917a:	6923      	ldr	r3, [r4, #16]
+ 800917c:	d003      	beq.n	8009186 <HAL_RCC_OscConfig+0x226>
+ 800917e:	2d0c      	cmp	r5, #12
+ 8009180:	d10e      	bne.n	80091a0 <HAL_RCC_OscConfig+0x240>
+ 8009182:	2e02      	cmp	r6, #2
+ 8009184:	d10c      	bne.n	80091a0 <HAL_RCC_OscConfig+0x240>
+ 8009186:	2b00      	cmp	r3, #0
+ 8009188:	f43f af43 	beq.w	8009012 <HAL_RCC_OscConfig+0xb2>
+ 800918c:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 8009190:	6961      	ldr	r1, [r4, #20]
+ 8009192:	6853      	ldr	r3, [r2, #4]
+ 8009194:	f023 43fe 	bic.w	r3, r3, #2130706432	; 0x7f000000
+ 8009198:	ea43 6301 	orr.w	r3, r3, r1, lsl #24
+ 800919c:	6053      	str	r3, [r2, #4]
+ 800919e:	e75f      	b.n	8009060 <HAL_RCC_OscConfig+0x100>
+ 80091a0:	f04f 46b0 	mov.w	r6, #1476395008	; 0x58000000
+ 80091a4:	b1bb      	cbz	r3, 80091d6 <HAL_RCC_OscConfig+0x276>
+ 80091a6:	6833      	ldr	r3, [r6, #0]
+ 80091a8:	f443 7380 	orr.w	r3, r3, #256	; 0x100
+ 80091ac:	6033      	str	r3, [r6, #0]
+ 80091ae:	f7f9 fccd 	bl	8002b4c <HAL_GetTick>
+ 80091b2:	4607      	mov	r7, r0
+ 80091b4:	6833      	ldr	r3, [r6, #0]
+ 80091b6:	055a      	lsls	r2, r3, #21
+ 80091b8:	d507      	bpl.n	80091ca <HAL_RCC_OscConfig+0x26a>
+ 80091ba:	6873      	ldr	r3, [r6, #4]
+ 80091bc:	6962      	ldr	r2, [r4, #20]
+ 80091be:	f023 43fe 	bic.w	r3, r3, #2130706432	; 0x7f000000
+ 80091c2:	ea43 6302 	orr.w	r3, r3, r2, lsl #24
+ 80091c6:	6073      	str	r3, [r6, #4]
+ 80091c8:	e74a      	b.n	8009060 <HAL_RCC_OscConfig+0x100>
+ 80091ca:	f7f9 fcbf 	bl	8002b4c <HAL_GetTick>
+ 80091ce:	1bc3      	subs	r3, r0, r7
+ 80091d0:	2b02      	cmp	r3, #2
+ 80091d2:	d9ef      	bls.n	80091b4 <HAL_RCC_OscConfig+0x254>
+ 80091d4:	e776      	b.n	80090c4 <HAL_RCC_OscConfig+0x164>
+ 80091d6:	6833      	ldr	r3, [r6, #0]
+ 80091d8:	f423 7380 	bic.w	r3, r3, #256	; 0x100
+ 80091dc:	6033      	str	r3, [r6, #0]
+ 80091de:	f7f9 fcb5 	bl	8002b4c <HAL_GetTick>
+ 80091e2:	4607      	mov	r7, r0
+ 80091e4:	6833      	ldr	r3, [r6, #0]
+ 80091e6:	055b      	lsls	r3, r3, #21
+ 80091e8:	f57f af3a 	bpl.w	8009060 <HAL_RCC_OscConfig+0x100>
+ 80091ec:	f7f9 fcae 	bl	8002b4c <HAL_GetTick>
+ 80091f0:	1bc3      	subs	r3, r0, r7
+ 80091f2:	2b02      	cmp	r3, #2
+ 80091f4:	d9f6      	bls.n	80091e4 <HAL_RCC_OscConfig+0x284>
+ 80091f6:	e765      	b.n	80090c4 <HAL_RCC_OscConfig+0x164>
+ 80091f8:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 80091fc:	69e1      	ldr	r1, [r4, #28]
+ 80091fe:	f8d2 3094 	ldr.w	r3, [r2, #148]	; 0x94
+ 8009202:	f023 0310 	bic.w	r3, r3, #16
+ 8009206:	430b      	orrs	r3, r1
+ 8009208:	f8c2 3094 	str.w	r3, [r2, #148]	; 0x94
+ 800920c:	f04f 47b0 	mov.w	r7, #1476395008	; 0x58000000
+ 8009210:	f8d7 3094 	ldr.w	r3, [r7, #148]	; 0x94
+ 8009214:	f043 0301 	orr.w	r3, r3, #1
+ 8009218:	f8c7 3094 	str.w	r3, [r7, #148]	; 0x94
+ 800921c:	f7f9 fc96 	bl	8002b4c <HAL_GetTick>
+ 8009220:	4606      	mov	r6, r0
+ 8009222:	f8d7 3094 	ldr.w	r3, [r7, #148]	; 0x94
+ 8009226:	079a      	lsls	r2, r3, #30
+ 8009228:	d418      	bmi.n	800925c <HAL_RCC_OscConfig+0x2fc>
+ 800922a:	f7f9 fc8f 	bl	8002b4c <HAL_GetTick>
+ 800922e:	1b83      	subs	r3, r0, r6
+ 8009230:	2b11      	cmp	r3, #17
+ 8009232:	d9f6      	bls.n	8009222 <HAL_RCC_OscConfig+0x2c2>
+ 8009234:	e746      	b.n	80090c4 <HAL_RCC_OscConfig+0x164>
+ 8009236:	f8d6 3094 	ldr.w	r3, [r6, #148]	; 0x94
+ 800923a:	f023 0301 	bic.w	r3, r3, #1
+ 800923e:	f8c6 3094 	str.w	r3, [r6, #148]	; 0x94
+ 8009242:	f7f9 fc83 	bl	8002b4c <HAL_GetTick>
+ 8009246:	4607      	mov	r7, r0
+ 8009248:	f8d6 3094 	ldr.w	r3, [r6, #148]	; 0x94
+ 800924c:	079b      	lsls	r3, r3, #30
+ 800924e:	d505      	bpl.n	800925c <HAL_RCC_OscConfig+0x2fc>
+ 8009250:	f7f9 fc7c 	bl	8002b4c <HAL_GetTick>
+ 8009254:	1bc3      	subs	r3, r0, r7
+ 8009256:	2b11      	cmp	r3, #17
+ 8009258:	d9f6      	bls.n	8009248 <HAL_RCC_OscConfig+0x2e8>
+ 800925a:	e733      	b.n	80090c4 <HAL_RCC_OscConfig+0x164>
+ 800925c:	6823      	ldr	r3, [r4, #0]
+ 800925e:	0758      	lsls	r0, r3, #29
+ 8009260:	d554      	bpl.n	800930c <HAL_RCC_OscConfig+0x3ac>
+ 8009262:	4f0b      	ldr	r7, [pc, #44]	; (8009290 <HAL_RCC_OscConfig+0x330>)
+ 8009264:	683b      	ldr	r3, [r7, #0]
+ 8009266:	05d9      	lsls	r1, r3, #23
+ 8009268:	d414      	bmi.n	8009294 <HAL_RCC_OscConfig+0x334>
+ 800926a:	f7ff fd01 	bl	8008c70 <HAL_PWR_EnableBkUpAccess>
+ 800926e:	f7f9 fc6d 	bl	8002b4c <HAL_GetTick>
+ 8009272:	4606      	mov	r6, r0
+ 8009274:	683b      	ldr	r3, [r7, #0]
+ 8009276:	05da      	lsls	r2, r3, #23
+ 8009278:	d40c      	bmi.n	8009294 <HAL_RCC_OscConfig+0x334>
+ 800927a:	f7f9 fc67 	bl	8002b4c <HAL_GetTick>
+ 800927e:	1b83      	subs	r3, r0, r6
+ 8009280:	2b02      	cmp	r3, #2
+ 8009282:	d9f7      	bls.n	8009274 <HAL_RCC_OscConfig+0x314>
+ 8009284:	e71e      	b.n	80090c4 <HAL_RCC_OscConfig+0x164>
+ 8009286:	bf00      	nop
+ 8009288:	20000828 	.word	0x20000828
+ 800928c:	2000082c 	.word	0x2000082c
+ 8009290:	58000400 	.word	0x58000400
+ 8009294:	68e3      	ldr	r3, [r4, #12]
+ 8009296:	f04f 46b0 	mov.w	r6, #1476395008	; 0x58000000
+ 800929a:	2b00      	cmp	r3, #0
+ 800929c:	d058      	beq.n	8009350 <HAL_RCC_OscConfig+0x3f0>
+ 800929e:	f023 0380 	bic.w	r3, r3, #128	; 0x80
+ 80092a2:	2b05      	cmp	r3, #5
+ 80092a4:	bf02      	ittt	eq
+ 80092a6:	f8d6 3090 	ldreq.w	r3, [r6, #144]	; 0x90
+ 80092aa:	f043 0304 	orreq.w	r3, r3, #4
+ 80092ae:	f8c6 3090 	streq.w	r3, [r6, #144]	; 0x90
+ 80092b2:	f04f 46b0 	mov.w	r6, #1476395008	; 0x58000000
+ 80092b6:	f7f9 fc49 	bl	8002b4c <HAL_GetTick>
+ 80092ba:	f8d6 3090 	ldr.w	r3, [r6, #144]	; 0x90
+ 80092be:	f043 0301 	orr.w	r3, r3, #1
+ 80092c2:	4607      	mov	r7, r0
+ 80092c4:	f8c6 3090 	str.w	r3, [r6, #144]	; 0x90
+ 80092c8:	f241 3888 	movw	r8, #5000	; 0x1388
+ 80092cc:	f8d6 3090 	ldr.w	r3, [r6, #144]	; 0x90
+ 80092d0:	079b      	lsls	r3, r3, #30
+ 80092d2:	d405      	bmi.n	80092e0 <HAL_RCC_OscConfig+0x380>
+ 80092d4:	f7f9 fc3a 	bl	8002b4c <HAL_GetTick>
+ 80092d8:	1bc3      	subs	r3, r0, r7
+ 80092da:	4543      	cmp	r3, r8
+ 80092dc:	d9f6      	bls.n	80092cc <HAL_RCC_OscConfig+0x36c>
+ 80092de:	e6f1      	b.n	80090c4 <HAL_RCC_OscConfig+0x164>
+ 80092e0:	68e3      	ldr	r3, [r4, #12]
+ 80092e2:	f023 0304 	bic.w	r3, r3, #4
+ 80092e6:	2b81      	cmp	r3, #129	; 0x81
+ 80092e8:	d11b      	bne.n	8009322 <HAL_RCC_OscConfig+0x3c2>
+ 80092ea:	f7f9 fc2f 	bl	8002b4c <HAL_GetTick>
+ 80092ee:	f8d6 3090 	ldr.w	r3, [r6, #144]	; 0x90
+ 80092f2:	f043 0380 	orr.w	r3, r3, #128	; 0x80
+ 80092f6:	f8c6 3090 	str.w	r3, [r6, #144]	; 0x90
+ 80092fa:	4607      	mov	r7, r0
+ 80092fc:	f04f 46b0 	mov.w	r6, #1476395008	; 0x58000000
+ 8009300:	f241 3888 	movw	r8, #5000	; 0x1388
+ 8009304:	f8d6 3090 	ldr.w	r3, [r6, #144]	; 0x90
+ 8009308:	0518      	lsls	r0, r3, #20
+ 800930a:	d504      	bpl.n	8009316 <HAL_RCC_OscConfig+0x3b6>
+ 800930c:	6ae0      	ldr	r0, [r4, #44]	; 0x2c
+ 800930e:	2800      	cmp	r0, #0
+ 8009310:	d14a      	bne.n	80093a8 <HAL_RCC_OscConfig+0x448>
+ 8009312:	2000      	movs	r0, #0
+ 8009314:	e668      	b.n	8008fe8 <HAL_RCC_OscConfig+0x88>
+ 8009316:	f7f9 fc19 	bl	8002b4c <HAL_GetTick>
+ 800931a:	1bc0      	subs	r0, r0, r7
+ 800931c:	4540      	cmp	r0, r8
+ 800931e:	d9f1      	bls.n	8009304 <HAL_RCC_OscConfig+0x3a4>
+ 8009320:	e6d0      	b.n	80090c4 <HAL_RCC_OscConfig+0x164>
+ 8009322:	f7f9 fc13 	bl	8002b4c <HAL_GetTick>
+ 8009326:	f8d6 3090 	ldr.w	r3, [r6, #144]	; 0x90
+ 800932a:	f023 0380 	bic.w	r3, r3, #128	; 0x80
+ 800932e:	f8c6 3090 	str.w	r3, [r6, #144]	; 0x90
+ 8009332:	4607      	mov	r7, r0
+ 8009334:	f04f 46b0 	mov.w	r6, #1476395008	; 0x58000000
+ 8009338:	f241 3888 	movw	r8, #5000	; 0x1388
+ 800933c:	f8d6 3090 	ldr.w	r3, [r6, #144]	; 0x90
+ 8009340:	0519      	lsls	r1, r3, #20
+ 8009342:	d5e3      	bpl.n	800930c <HAL_RCC_OscConfig+0x3ac>
+ 8009344:	f7f9 fc02 	bl	8002b4c <HAL_GetTick>
+ 8009348:	1bc0      	subs	r0, r0, r7
+ 800934a:	4540      	cmp	r0, r8
+ 800934c:	d9f6      	bls.n	800933c <HAL_RCC_OscConfig+0x3dc>
+ 800934e:	e6b9      	b.n	80090c4 <HAL_RCC_OscConfig+0x164>
+ 8009350:	f7f9 fbfc 	bl	8002b4c <HAL_GetTick>
+ 8009354:	f8d6 3090 	ldr.w	r3, [r6, #144]	; 0x90
+ 8009358:	f023 0380 	bic.w	r3, r3, #128	; 0x80
+ 800935c:	4607      	mov	r7, r0
+ 800935e:	f8c6 3090 	str.w	r3, [r6, #144]	; 0x90
+ 8009362:	f241 3888 	movw	r8, #5000	; 0x1388
+ 8009366:	f8d6 3090 	ldr.w	r3, [r6, #144]	; 0x90
+ 800936a:	051a      	lsls	r2, r3, #20
+ 800936c:	d416      	bmi.n	800939c <HAL_RCC_OscConfig+0x43c>
+ 800936e:	f7f9 fbed 	bl	8002b4c <HAL_GetTick>
+ 8009372:	f8d6 3090 	ldr.w	r3, [r6, #144]	; 0x90
+ 8009376:	f023 0301 	bic.w	r3, r3, #1
+ 800937a:	f8c6 3090 	str.w	r3, [r6, #144]	; 0x90
+ 800937e:	4607      	mov	r7, r0
+ 8009380:	f04f 48b0 	mov.w	r8, #1476395008	; 0x58000000
+ 8009384:	f241 3688 	movw	r6, #5000	; 0x1388
+ 8009388:	f8d8 3090 	ldr.w	r3, [r8, #144]	; 0x90
+ 800938c:	079b      	lsls	r3, r3, #30
+ 800938e:	d5bd      	bpl.n	800930c <HAL_RCC_OscConfig+0x3ac>
+ 8009390:	f7f9 fbdc 	bl	8002b4c <HAL_GetTick>
+ 8009394:	1bc3      	subs	r3, r0, r7
+ 8009396:	42b3      	cmp	r3, r6
+ 8009398:	d9f6      	bls.n	8009388 <HAL_RCC_OscConfig+0x428>
+ 800939a:	e693      	b.n	80090c4 <HAL_RCC_OscConfig+0x164>
+ 800939c:	f7f9 fbd6 	bl	8002b4c <HAL_GetTick>
+ 80093a0:	1bc0      	subs	r0, r0, r7
+ 80093a2:	4540      	cmp	r0, r8
+ 80093a4:	d9df      	bls.n	8009366 <HAL_RCC_OscConfig+0x406>
+ 80093a6:	e68d      	b.n	80090c4 <HAL_RCC_OscConfig+0x164>
+ 80093a8:	2d0c      	cmp	r5, #12
+ 80093aa:	d04e      	beq.n	800944a <HAL_RCC_OscConfig+0x4ea>
+ 80093ac:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 80093b0:	2802      	cmp	r0, #2
+ 80093b2:	681a      	ldr	r2, [r3, #0]
+ 80093b4:	f022 7280 	bic.w	r2, r2, #16777216	; 0x1000000
+ 80093b8:	601a      	str	r2, [r3, #0]
+ 80093ba:	d133      	bne.n	8009424 <HAL_RCC_OscConfig+0x4c4>
+ 80093bc:	f7f9 fbc6 	bl	8002b4c <HAL_GetTick>
+ 80093c0:	4605      	mov	r5, r0
+ 80093c2:	f7ff fcde 	bl	8008d82 <LL_RCC_PLL_IsReady>
+ 80093c6:	bb38      	cbnz	r0, 8009418 <HAL_RCC_OscConfig+0x4b8>
+ 80093c8:	e9d4 310c 	ldrd	r3, r1, [r4, #48]	; 0x30
+ 80093cc:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 80093d0:	430b      	orrs	r3, r1
+ 80093d2:	68d0      	ldr	r0, [r2, #12]
+ 80093d4:	492d      	ldr	r1, [pc, #180]	; (800948c <HAL_RCC_OscConfig+0x52c>)
+ 80093d6:	4001      	ands	r1, r0
+ 80093d8:	430b      	orrs	r3, r1
+ 80093da:	6be1      	ldr	r1, [r4, #60]	; 0x3c
+ 80093dc:	430b      	orrs	r3, r1
+ 80093de:	6c21      	ldr	r1, [r4, #64]	; 0x40
+ 80093e0:	430b      	orrs	r3, r1
+ 80093e2:	6c61      	ldr	r1, [r4, #68]	; 0x44
+ 80093e4:	430b      	orrs	r3, r1
+ 80093e6:	6ba1      	ldr	r1, [r4, #56]	; 0x38
+ 80093e8:	ea43 2301 	orr.w	r3, r3, r1, lsl #8
+ 80093ec:	60d3      	str	r3, [r2, #12]
+ 80093ee:	6813      	ldr	r3, [r2, #0]
+ 80093f0:	f043 7380 	orr.w	r3, r3, #16777216	; 0x1000000
+ 80093f4:	6013      	str	r3, [r2, #0]
+ 80093f6:	68d3      	ldr	r3, [r2, #12]
+ 80093f8:	f043 5380 	orr.w	r3, r3, #268435456	; 0x10000000
+ 80093fc:	60d3      	str	r3, [r2, #12]
+ 80093fe:	f7f9 fba5 	bl	8002b4c <HAL_GetTick>
+ 8009402:	4604      	mov	r4, r0
+ 8009404:	f7ff fcbd 	bl	8008d82 <LL_RCC_PLL_IsReady>
+ 8009408:	2800      	cmp	r0, #0
+ 800940a:	d182      	bne.n	8009312 <HAL_RCC_OscConfig+0x3b2>
+ 800940c:	f7f9 fb9e 	bl	8002b4c <HAL_GetTick>
+ 8009410:	1b00      	subs	r0, r0, r4
+ 8009412:	280a      	cmp	r0, #10
+ 8009414:	d9f6      	bls.n	8009404 <HAL_RCC_OscConfig+0x4a4>
+ 8009416:	e655      	b.n	80090c4 <HAL_RCC_OscConfig+0x164>
+ 8009418:	f7f9 fb98 	bl	8002b4c <HAL_GetTick>
+ 800941c:	1b40      	subs	r0, r0, r5
+ 800941e:	280a      	cmp	r0, #10
+ 8009420:	d9cf      	bls.n	80093c2 <HAL_RCC_OscConfig+0x462>
+ 8009422:	e64f      	b.n	80090c4 <HAL_RCC_OscConfig+0x164>
+ 8009424:	f7f9 fb92 	bl	8002b4c <HAL_GetTick>
+ 8009428:	4604      	mov	r4, r0
+ 800942a:	f7ff fcaa 	bl	8008d82 <LL_RCC_PLL_IsReady>
+ 800942e:	b930      	cbnz	r0, 800943e <HAL_RCC_OscConfig+0x4de>
+ 8009430:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 8009434:	4b16      	ldr	r3, [pc, #88]	; (8009490 <HAL_RCC_OscConfig+0x530>)
+ 8009436:	68d1      	ldr	r1, [r2, #12]
+ 8009438:	400b      	ands	r3, r1
+ 800943a:	60d3      	str	r3, [r2, #12]
+ 800943c:	e5d4      	b.n	8008fe8 <HAL_RCC_OscConfig+0x88>
+ 800943e:	f7f9 fb85 	bl	8002b4c <HAL_GetTick>
+ 8009442:	1b00      	subs	r0, r0, r4
+ 8009444:	280a      	cmp	r0, #10
+ 8009446:	d9f0      	bls.n	800942a <HAL_RCC_OscConfig+0x4ca>
+ 8009448:	e63c      	b.n	80090c4 <HAL_RCC_OscConfig+0x164>
+ 800944a:	2801      	cmp	r0, #1
+ 800944c:	f43f adcc 	beq.w	8008fe8 <HAL_RCC_OscConfig+0x88>
+ 8009450:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8009454:	6b22      	ldr	r2, [r4, #48]	; 0x30
+ 8009456:	68db      	ldr	r3, [r3, #12]
+ 8009458:	f003 0103 	and.w	r1, r3, #3
+ 800945c:	4291      	cmp	r1, r2
+ 800945e:	f47f add8 	bne.w	8009012 <HAL_RCC_OscConfig+0xb2>
+ 8009462:	6b61      	ldr	r1, [r4, #52]	; 0x34
+ 8009464:	f003 0270 	and.w	r2, r3, #112	; 0x70
+ 8009468:	428a      	cmp	r2, r1
+ 800946a:	f47f add2 	bne.w	8009012 <HAL_RCC_OscConfig+0xb2>
+ 800946e:	6ba1      	ldr	r1, [r4, #56]	; 0x38
+ 8009470:	f403 42fe 	and.w	r2, r3, #32512	; 0x7f00
+ 8009474:	ebb2 2f01 	cmp.w	r2, r1, lsl #8
+ 8009478:	f47f adcb 	bne.w	8009012 <HAL_RCC_OscConfig+0xb2>
+ 800947c:	6c62      	ldr	r2, [r4, #68]	; 0x44
+ 800947e:	f003 4360 	and.w	r3, r3, #3758096384	; 0xe0000000
+ 8009482:	4293      	cmp	r3, r2
+ 8009484:	f43f af45 	beq.w	8009312 <HAL_RCC_OscConfig+0x3b2>
+ 8009488:	e5c3      	b.n	8009012 <HAL_RCC_OscConfig+0xb2>
+ 800948a:	bf00      	nop
+ 800948c:	11c1808c 	.word	0x11c1808c
+ 8009490:	eefefffc 	.word	0xeefefffc
+
+08009494 <HAL_RCC_ClockConfig>:
+ 8009494:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8009498:	460d      	mov	r5, r1
+ 800949a:	4604      	mov	r4, r0
+ 800949c:	b910      	cbnz	r0, 80094a4 <HAL_RCC_ClockConfig+0x10>
+ 800949e:	2001      	movs	r0, #1
+ 80094a0:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 80094a4:	4e68      	ldr	r6, [pc, #416]	; (8009648 <HAL_RCC_ClockConfig+0x1b4>)
+ 80094a6:	6833      	ldr	r3, [r6, #0]
+ 80094a8:	f003 0307 	and.w	r3, r3, #7
+ 80094ac:	428b      	cmp	r3, r1
+ 80094ae:	d316      	bcc.n	80094de <HAL_RCC_ClockConfig+0x4a>
+ 80094b0:	6823      	ldr	r3, [r4, #0]
+ 80094b2:	079a      	lsls	r2, r3, #30
+ 80094b4:	d527      	bpl.n	8009506 <HAL_RCC_ClockConfig+0x72>
+ 80094b6:	f04f 47b0 	mov.w	r7, #1476395008	; 0x58000000
+ 80094ba:	68a2      	ldr	r2, [r4, #8]
+ 80094bc:	68bb      	ldr	r3, [r7, #8]
+ 80094be:	f023 03f0 	bic.w	r3, r3, #240	; 0xf0
+ 80094c2:	4313      	orrs	r3, r2
+ 80094c4:	60bb      	str	r3, [r7, #8]
+ 80094c6:	f7f9 fb41 	bl	8002b4c <HAL_GetTick>
+ 80094ca:	4606      	mov	r6, r0
+ 80094cc:	68bb      	ldr	r3, [r7, #8]
+ 80094ce:	03db      	lsls	r3, r3, #15
+ 80094d0:	d419      	bmi.n	8009506 <HAL_RCC_ClockConfig+0x72>
+ 80094d2:	f7f9 fb3b 	bl	8002b4c <HAL_GetTick>
+ 80094d6:	1b83      	subs	r3, r0, r6
+ 80094d8:	2b02      	cmp	r3, #2
+ 80094da:	d9f7      	bls.n	80094cc <HAL_RCC_ClockConfig+0x38>
+ 80094dc:	e011      	b.n	8009502 <HAL_RCC_ClockConfig+0x6e>
+ 80094de:	6833      	ldr	r3, [r6, #0]
+ 80094e0:	f023 0307 	bic.w	r3, r3, #7
+ 80094e4:	430b      	orrs	r3, r1
+ 80094e6:	6033      	str	r3, [r6, #0]
+ 80094e8:	f7f9 fb30 	bl	8002b4c <HAL_GetTick>
+ 80094ec:	4607      	mov	r7, r0
+ 80094ee:	6833      	ldr	r3, [r6, #0]
+ 80094f0:	f003 0307 	and.w	r3, r3, #7
+ 80094f4:	42ab      	cmp	r3, r5
+ 80094f6:	d0db      	beq.n	80094b0 <HAL_RCC_ClockConfig+0x1c>
+ 80094f8:	f7f9 fb28 	bl	8002b4c <HAL_GetTick>
+ 80094fc:	1bc0      	subs	r0, r0, r7
+ 80094fe:	2802      	cmp	r0, #2
+ 8009500:	d9f5      	bls.n	80094ee <HAL_RCC_ClockConfig+0x5a>
+ 8009502:	2003      	movs	r0, #3
+ 8009504:	e7cc      	b.n	80094a0 <HAL_RCC_ClockConfig+0xc>
+ 8009506:	6823      	ldr	r3, [r4, #0]
+ 8009508:	0658      	lsls	r0, r3, #25
+ 800950a:	d517      	bpl.n	800953c <HAL_RCC_ClockConfig+0xa8>
+ 800950c:	f04f 47b0 	mov.w	r7, #1476395008	; 0x58000000
+ 8009510:	6962      	ldr	r2, [r4, #20]
+ 8009512:	f8d7 3108 	ldr.w	r3, [r7, #264]	; 0x108
+ 8009516:	f023 030f 	bic.w	r3, r3, #15
+ 800951a:	ea43 1312 	orr.w	r3, r3, r2, lsr #4
+ 800951e:	f8c7 3108 	str.w	r3, [r7, #264]	; 0x108
+ 8009522:	f7f9 fb13 	bl	8002b4c <HAL_GetTick>
+ 8009526:	4606      	mov	r6, r0
+ 8009528:	f8d7 3108 	ldr.w	r3, [r7, #264]	; 0x108
+ 800952c:	03d9      	lsls	r1, r3, #15
+ 800952e:	d405      	bmi.n	800953c <HAL_RCC_ClockConfig+0xa8>
+ 8009530:	f7f9 fb0c 	bl	8002b4c <HAL_GetTick>
+ 8009534:	1b83      	subs	r3, r0, r6
+ 8009536:	2b02      	cmp	r3, #2
+ 8009538:	d9f6      	bls.n	8009528 <HAL_RCC_ClockConfig+0x94>
+ 800953a:	e7e2      	b.n	8009502 <HAL_RCC_ClockConfig+0x6e>
+ 800953c:	6823      	ldr	r3, [r4, #0]
+ 800953e:	075a      	lsls	r2, r3, #29
+ 8009540:	d513      	bpl.n	800956a <HAL_RCC_ClockConfig+0xd6>
+ 8009542:	f04f 47b0 	mov.w	r7, #1476395008	; 0x58000000
+ 8009546:	68e2      	ldr	r2, [r4, #12]
+ 8009548:	68bb      	ldr	r3, [r7, #8]
+ 800954a:	f423 63e0 	bic.w	r3, r3, #1792	; 0x700
+ 800954e:	4313      	orrs	r3, r2
+ 8009550:	60bb      	str	r3, [r7, #8]
+ 8009552:	f7f9 fafb 	bl	8002b4c <HAL_GetTick>
+ 8009556:	4606      	mov	r6, r0
+ 8009558:	68bb      	ldr	r3, [r7, #8]
+ 800955a:	039b      	lsls	r3, r3, #14
+ 800955c:	d405      	bmi.n	800956a <HAL_RCC_ClockConfig+0xd6>
+ 800955e:	f7f9 faf5 	bl	8002b4c <HAL_GetTick>
+ 8009562:	1b83      	subs	r3, r0, r6
+ 8009564:	2b02      	cmp	r3, #2
+ 8009566:	d9f7      	bls.n	8009558 <HAL_RCC_ClockConfig+0xc4>
+ 8009568:	e7cb      	b.n	8009502 <HAL_RCC_ClockConfig+0x6e>
+ 800956a:	6823      	ldr	r3, [r4, #0]
+ 800956c:	0718      	lsls	r0, r3, #28
+ 800956e:	d514      	bpl.n	800959a <HAL_RCC_ClockConfig+0x106>
+ 8009570:	f04f 47b0 	mov.w	r7, #1476395008	; 0x58000000
+ 8009574:	6922      	ldr	r2, [r4, #16]
+ 8009576:	68bb      	ldr	r3, [r7, #8]
+ 8009578:	f423 5360 	bic.w	r3, r3, #14336	; 0x3800
+ 800957c:	ea43 03c2 	orr.w	r3, r3, r2, lsl #3
+ 8009580:	60bb      	str	r3, [r7, #8]
+ 8009582:	f7f9 fae3 	bl	8002b4c <HAL_GetTick>
+ 8009586:	4606      	mov	r6, r0
+ 8009588:	68bb      	ldr	r3, [r7, #8]
+ 800958a:	0359      	lsls	r1, r3, #13
+ 800958c:	d405      	bmi.n	800959a <HAL_RCC_ClockConfig+0x106>
+ 800958e:	f7f9 fadd 	bl	8002b4c <HAL_GetTick>
+ 8009592:	1b83      	subs	r3, r0, r6
+ 8009594:	2b02      	cmp	r3, #2
+ 8009596:	d9f7      	bls.n	8009588 <HAL_RCC_ClockConfig+0xf4>
+ 8009598:	e7b3      	b.n	8009502 <HAL_RCC_ClockConfig+0x6e>
+ 800959a:	6823      	ldr	r3, [r4, #0]
+ 800959c:	07da      	lsls	r2, r3, #31
+ 800959e:	d40f      	bmi.n	80095c0 <HAL_RCC_ClockConfig+0x12c>
+ 80095a0:	4c29      	ldr	r4, [pc, #164]	; (8009648 <HAL_RCC_ClockConfig+0x1b4>)
+ 80095a2:	6823      	ldr	r3, [r4, #0]
+ 80095a4:	f003 0307 	and.w	r3, r3, #7
+ 80095a8:	42ab      	cmp	r3, r5
+ 80095aa:	d839      	bhi.n	8009620 <HAL_RCC_ClockConfig+0x18c>
+ 80095ac:	f7ff fcc8 	bl	8008f40 <HAL_RCC_GetHCLKFreq>
+ 80095b0:	4b26      	ldr	r3, [pc, #152]	; (800964c <HAL_RCC_ClockConfig+0x1b8>)
+ 80095b2:	6018      	str	r0, [r3, #0]
+ 80095b4:	4b26      	ldr	r3, [pc, #152]	; (8009650 <HAL_RCC_ClockConfig+0x1bc>)
+ 80095b6:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
+ 80095ba:	6818      	ldr	r0, [r3, #0]
+ 80095bc:	f7f9 bac4 	b.w	8002b48 <HAL_InitTick>
+ 80095c0:	6862      	ldr	r2, [r4, #4]
+ 80095c2:	2a02      	cmp	r2, #2
+ 80095c4:	d11d      	bne.n	8009602 <HAL_RCC_ClockConfig+0x16e>
+ 80095c6:	f7ff fbc7 	bl	8008d58 <LL_RCC_HSE_IsReady>
+ 80095ca:	2800      	cmp	r0, #0
+ 80095cc:	f43f af67 	beq.w	800949e <HAL_RCC_ClockConfig+0xa>
+ 80095d0:	f04f 46b0 	mov.w	r6, #1476395008	; 0x58000000
+ 80095d4:	f241 3888 	movw	r8, #5000	; 0x1388
+ 80095d8:	68b3      	ldr	r3, [r6, #8]
+ 80095da:	f023 0303 	bic.w	r3, r3, #3
+ 80095de:	4313      	orrs	r3, r2
+ 80095e0:	60b3      	str	r3, [r6, #8]
+ 80095e2:	f7f9 fab3 	bl	8002b4c <HAL_GetTick>
+ 80095e6:	4607      	mov	r7, r0
+ 80095e8:	68b3      	ldr	r3, [r6, #8]
+ 80095ea:	6862      	ldr	r2, [r4, #4]
+ 80095ec:	f003 030c 	and.w	r3, r3, #12
+ 80095f0:	ebb3 0f82 	cmp.w	r3, r2, lsl #2
+ 80095f4:	d0d4      	beq.n	80095a0 <HAL_RCC_ClockConfig+0x10c>
+ 80095f6:	f7f9 faa9 	bl	8002b4c <HAL_GetTick>
+ 80095fa:	1bc0      	subs	r0, r0, r7
+ 80095fc:	4540      	cmp	r0, r8
+ 80095fe:	d9f3      	bls.n	80095e8 <HAL_RCC_ClockConfig+0x154>
+ 8009600:	e77f      	b.n	8009502 <HAL_RCC_ClockConfig+0x6e>
+ 8009602:	2a03      	cmp	r2, #3
+ 8009604:	d102      	bne.n	800960c <HAL_RCC_ClockConfig+0x178>
+ 8009606:	f7ff fbbc 	bl	8008d82 <LL_RCC_PLL_IsReady>
+ 800960a:	e7de      	b.n	80095ca <HAL_RCC_ClockConfig+0x136>
+ 800960c:	b912      	cbnz	r2, 8009614 <HAL_RCC_ClockConfig+0x180>
+ 800960e:	f7ff fba9 	bl	8008d64 <LL_RCC_MSI_IsReady>
+ 8009612:	e7da      	b.n	80095ca <HAL_RCC_ClockConfig+0x136>
+ 8009614:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8009618:	681b      	ldr	r3, [r3, #0]
+ 800961a:	055b      	lsls	r3, r3, #21
+ 800961c:	d4d8      	bmi.n	80095d0 <HAL_RCC_ClockConfig+0x13c>
+ 800961e:	e73e      	b.n	800949e <HAL_RCC_ClockConfig+0xa>
+ 8009620:	6823      	ldr	r3, [r4, #0]
+ 8009622:	f023 0307 	bic.w	r3, r3, #7
+ 8009626:	432b      	orrs	r3, r5
+ 8009628:	6023      	str	r3, [r4, #0]
+ 800962a:	f7f9 fa8f 	bl	8002b4c <HAL_GetTick>
+ 800962e:	4606      	mov	r6, r0
+ 8009630:	6823      	ldr	r3, [r4, #0]
+ 8009632:	f003 0307 	and.w	r3, r3, #7
+ 8009636:	42ab      	cmp	r3, r5
+ 8009638:	d0b8      	beq.n	80095ac <HAL_RCC_ClockConfig+0x118>
+ 800963a:	f7f9 fa87 	bl	8002b4c <HAL_GetTick>
+ 800963e:	1b80      	subs	r0, r0, r6
+ 8009640:	2802      	cmp	r0, #2
+ 8009642:	d9f5      	bls.n	8009630 <HAL_RCC_ClockConfig+0x19c>
+ 8009644:	e75d      	b.n	8009502 <HAL_RCC_ClockConfig+0x6e>
+ 8009646:	bf00      	nop
+ 8009648:	58004000 	.word	0x58004000
+ 800964c:	20000828 	.word	0x20000828
+ 8009650:	2000082c 	.word	0x2000082c
+
+08009654 <HAL_RCC_GetPCLK1Freq>:
+ 8009654:	b508      	push	{r3, lr}
+ 8009656:	f7ff fc73 	bl	8008f40 <HAL_RCC_GetHCLKFreq>
+ 800965a:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800965e:	4a04      	ldr	r2, [pc, #16]	; (8009670 <HAL_RCC_GetPCLK1Freq+0x1c>)
+ 8009660:	689b      	ldr	r3, [r3, #8]
+ 8009662:	f3c3 2302 	ubfx	r3, r3, #8, #3
+ 8009666:	f852 3023 	ldr.w	r3, [r2, r3, lsl #2]
+ 800966a:	40d8      	lsrs	r0, r3
+ 800966c:	bd08      	pop	{r3, pc}
+ 800966e:	bf00      	nop
+ 8009670:	08014fe4 	.word	0x08014fe4
+
+08009674 <HAL_RCC_GetPCLK2Freq>:
+ 8009674:	b508      	push	{r3, lr}
+ 8009676:	f7ff fc63 	bl	8008f40 <HAL_RCC_GetHCLKFreq>
+ 800967a:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800967e:	4a04      	ldr	r2, [pc, #16]	; (8009690 <HAL_RCC_GetPCLK2Freq+0x1c>)
+ 8009680:	689b      	ldr	r3, [r3, #8]
+ 8009682:	f3c3 23c2 	ubfx	r3, r3, #11, #3
+ 8009686:	f852 3023 	ldr.w	r3, [r2, r3, lsl #2]
+ 800968a:	40d8      	lsrs	r0, r3
+ 800968c:	bd08      	pop	{r3, pc}
+ 800968e:	bf00      	nop
+ 8009690:	08014fe4 	.word	0x08014fe4
+
+08009694 <LL_RCC_LSE_IsReady>:
+ 8009694:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8009698:	f8d3 0090 	ldr.w	r0, [r3, #144]	; 0x90
+ 800969c:	f3c0 0040 	ubfx	r0, r0, #1, #1
+ 80096a0:	4770      	bx	lr
+
+080096a2 <LL_RCC_SetI2CClockSource>:
+ 80096a2:	f04f 41b0 	mov.w	r1, #1476395008	; 0x58000000
+ 80096a6:	0902      	lsrs	r2, r0, #4
+ 80096a8:	f8d1 3088 	ldr.w	r3, [r1, #136]	; 0x88
+ 80096ac:	f402 227f 	and.w	r2, r2, #1044480	; 0xff000
+ 80096b0:	0100      	lsls	r0, r0, #4
+ 80096b2:	ea23 0302 	bic.w	r3, r3, r2
+ 80096b6:	f400 207f 	and.w	r0, r0, #1044480	; 0xff000
+ 80096ba:	4303      	orrs	r3, r0
+ 80096bc:	f8c1 3088 	str.w	r3, [r1, #136]	; 0x88
+ 80096c0:	4770      	bx	lr
+
+080096c2 <LL_RCC_SetLPTIMClockSource>:
+ 80096c2:	f04f 41b0 	mov.w	r1, #1476395008	; 0x58000000
+ 80096c6:	0c02      	lsrs	r2, r0, #16
+ 80096c8:	f8d1 3088 	ldr.w	r3, [r1, #136]	; 0x88
+ 80096cc:	0412      	lsls	r2, r2, #16
+ 80096ce:	ea23 0302 	bic.w	r3, r3, r2
+ 80096d2:	ea43 4000 	orr.w	r0, r3, r0, lsl #16
+ 80096d6:	f8c1 0088 	str.w	r0, [r1, #136]	; 0x88
+ 80096da:	4770      	bx	lr
+
+080096dc <HAL_RCCEx_PeriphCLKConfig>:
+ 80096dc:	b570      	push	{r4, r5, r6, lr}
+ 80096de:	6806      	ldr	r6, [r0, #0]
+ 80096e0:	f416 3680 	ands.w	r6, r6, #65536	; 0x10000
+ 80096e4:	4604      	mov	r4, r0
+ 80096e6:	d038      	beq.n	800975a <HAL_RCCEx_PeriphCLKConfig+0x7e>
+ 80096e8:	f7ff fac2 	bl	8008c70 <HAL_PWR_EnableBkUpAccess>
+ 80096ec:	f7f9 fa2e 	bl	8002b4c <HAL_GetTick>
+ 80096f0:	4e61      	ldr	r6, [pc, #388]	; (8009878 <HAL_RCCEx_PeriphCLKConfig+0x19c>)
+ 80096f2:	4605      	mov	r5, r0
+ 80096f4:	6833      	ldr	r3, [r6, #0]
+ 80096f6:	05db      	lsls	r3, r3, #23
+ 80096f8:	d529      	bpl.n	800974e <HAL_RCCEx_PeriphCLKConfig+0x72>
+ 80096fa:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 80096fe:	6b61      	ldr	r1, [r4, #52]	; 0x34
+ 8009700:	f8d3 2090 	ldr.w	r2, [r3, #144]	; 0x90
+ 8009704:	f402 7240 	and.w	r2, r2, #768	; 0x300
+ 8009708:	4291      	cmp	r1, r2
+ 800970a:	d014      	beq.n	8009736 <HAL_RCCEx_PeriphCLKConfig+0x5a>
+ 800970c:	f8d3 1090 	ldr.w	r1, [r3, #144]	; 0x90
+ 8009710:	f8d3 2090 	ldr.w	r2, [r3, #144]	; 0x90
+ 8009714:	f442 3280 	orr.w	r2, r2, #65536	; 0x10000
+ 8009718:	f8c3 2090 	str.w	r2, [r3, #144]	; 0x90
+ 800971c:	f8d3 2090 	ldr.w	r2, [r3, #144]	; 0x90
+ 8009720:	f421 7040 	bic.w	r0, r1, #768	; 0x300
+ 8009724:	f422 3280 	bic.w	r2, r2, #65536	; 0x10000
+ 8009728:	078d      	lsls	r5, r1, #30
+ 800972a:	f8c3 2090 	str.w	r2, [r3, #144]	; 0x90
+ 800972e:	f8c3 0090 	str.w	r0, [r3, #144]	; 0x90
+ 8009732:	f100 8090 	bmi.w	8009856 <HAL_RCCEx_PeriphCLKConfig+0x17a>
+ 8009736:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800973a:	6b61      	ldr	r1, [r4, #52]	; 0x34
+ 800973c:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 8009740:	f423 7340 	bic.w	r3, r3, #768	; 0x300
+ 8009744:	430b      	orrs	r3, r1
+ 8009746:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+ 800974a:	2600      	movs	r6, #0
+ 800974c:	e005      	b.n	800975a <HAL_RCCEx_PeriphCLKConfig+0x7e>
+ 800974e:	f7f9 f9fd 	bl	8002b4c <HAL_GetTick>
+ 8009752:	1b40      	subs	r0, r0, r5
+ 8009754:	2802      	cmp	r0, #2
+ 8009756:	d9cd      	bls.n	80096f4 <HAL_RCCEx_PeriphCLKConfig+0x18>
+ 8009758:	2603      	movs	r6, #3
+ 800975a:	6825      	ldr	r5, [r4, #0]
+ 800975c:	07e8      	lsls	r0, r5, #31
+ 800975e:	d50a      	bpl.n	8009776 <HAL_RCCEx_PeriphCLKConfig+0x9a>
+ 8009760:	f04f 41b0 	mov.w	r1, #1476395008	; 0x58000000
+ 8009764:	6862      	ldr	r2, [r4, #4]
+ 8009766:	f8d1 3088 	ldr.w	r3, [r1, #136]	; 0x88
+ 800976a:	ea23 4312 	bic.w	r3, r3, r2, lsr #16
+ 800976e:	b292      	uxth	r2, r2
+ 8009770:	4313      	orrs	r3, r2
+ 8009772:	f8c1 3088 	str.w	r3, [r1, #136]	; 0x88
+ 8009776:	07a9      	lsls	r1, r5, #30
+ 8009778:	d50a      	bpl.n	8009790 <HAL_RCCEx_PeriphCLKConfig+0xb4>
+ 800977a:	f04f 41b0 	mov.w	r1, #1476395008	; 0x58000000
+ 800977e:	68a2      	ldr	r2, [r4, #8]
+ 8009780:	f8d1 3088 	ldr.w	r3, [r1, #136]	; 0x88
+ 8009784:	ea23 4312 	bic.w	r3, r3, r2, lsr #16
+ 8009788:	b292      	uxth	r2, r2
+ 800978a:	4313      	orrs	r3, r2
+ 800978c:	f8c1 3088 	str.w	r3, [r1, #136]	; 0x88
+ 8009790:	06aa      	lsls	r2, r5, #26
+ 8009792:	d509      	bpl.n	80097a8 <HAL_RCCEx_PeriphCLKConfig+0xcc>
+ 8009794:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 8009798:	6921      	ldr	r1, [r4, #16]
+ 800979a:	f8d2 3088 	ldr.w	r3, [r2, #136]	; 0x88
+ 800979e:	f423 6340 	bic.w	r3, r3, #3072	; 0xc00
+ 80097a2:	430b      	orrs	r3, r1
+ 80097a4:	f8c2 3088 	str.w	r3, [r2, #136]	; 0x88
+ 80097a8:	05ab      	lsls	r3, r5, #22
+ 80097aa:	d502      	bpl.n	80097b2 <HAL_RCCEx_PeriphCLKConfig+0xd6>
+ 80097ac:	6a20      	ldr	r0, [r4, #32]
+ 80097ae:	f7ff ff88 	bl	80096c2 <LL_RCC_SetLPTIMClockSource>
+ 80097b2:	0568      	lsls	r0, r5, #21
+ 80097b4:	d502      	bpl.n	80097bc <HAL_RCCEx_PeriphCLKConfig+0xe0>
+ 80097b6:	6a60      	ldr	r0, [r4, #36]	; 0x24
+ 80097b8:	f7ff ff83 	bl	80096c2 <LL_RCC_SetLPTIMClockSource>
+ 80097bc:	0529      	lsls	r1, r5, #20
+ 80097be:	d502      	bpl.n	80097c6 <HAL_RCCEx_PeriphCLKConfig+0xea>
+ 80097c0:	6aa0      	ldr	r0, [r4, #40]	; 0x28
+ 80097c2:	f7ff ff7e 	bl	80096c2 <LL_RCC_SetLPTIMClockSource>
+ 80097c6:	066a      	lsls	r2, r5, #25
+ 80097c8:	d502      	bpl.n	80097d0 <HAL_RCCEx_PeriphCLKConfig+0xf4>
+ 80097ca:	6960      	ldr	r0, [r4, #20]
+ 80097cc:	f7ff ff69 	bl	80096a2 <LL_RCC_SetI2CClockSource>
+ 80097d0:	062b      	lsls	r3, r5, #24
+ 80097d2:	d502      	bpl.n	80097da <HAL_RCCEx_PeriphCLKConfig+0xfe>
+ 80097d4:	69a0      	ldr	r0, [r4, #24]
+ 80097d6:	f7ff ff64 	bl	80096a2 <LL_RCC_SetI2CClockSource>
+ 80097da:	05e8      	lsls	r0, r5, #23
+ 80097dc:	d502      	bpl.n	80097e4 <HAL_RCCEx_PeriphCLKConfig+0x108>
+ 80097de:	69e0      	ldr	r0, [r4, #28]
+ 80097e0:	f7ff ff5f 	bl	80096a2 <LL_RCC_SetI2CClockSource>
+ 80097e4:	06e9      	lsls	r1, r5, #27
+ 80097e6:	d510      	bpl.n	800980a <HAL_RCCEx_PeriphCLKConfig+0x12e>
+ 80097e8:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 80097ec:	68e1      	ldr	r1, [r4, #12]
+ 80097ee:	f8d2 3088 	ldr.w	r3, [r2, #136]	; 0x88
+ 80097f2:	f423 7340 	bic.w	r3, r3, #768	; 0x300
+ 80097f6:	430b      	orrs	r3, r1
+ 80097f8:	f8c2 3088 	str.w	r3, [r2, #136]	; 0x88
+ 80097fc:	f5b1 7f80 	cmp.w	r1, #256	; 0x100
+ 8009800:	bf02      	ittt	eq
+ 8009802:	68d3      	ldreq	r3, [r2, #12]
+ 8009804:	f043 7380 	orreq.w	r3, r3, #16777216	; 0x1000000
+ 8009808:	60d3      	streq	r3, [r2, #12]
+ 800980a:	042a      	lsls	r2, r5, #16
+ 800980c:	d50e      	bpl.n	800982c <HAL_RCCEx_PeriphCLKConfig+0x150>
+ 800980e:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 8009812:	6b21      	ldr	r1, [r4, #48]	; 0x30
+ 8009814:	f8d2 3088 	ldr.w	r3, [r2, #136]	; 0x88
+ 8009818:	f023 4340 	bic.w	r3, r3, #3221225472	; 0xc0000000
+ 800981c:	430b      	orrs	r3, r1
+ 800981e:	f8c2 3088 	str.w	r3, [r2, #136]	; 0x88
+ 8009822:	b919      	cbnz	r1, 800982c <HAL_RCCEx_PeriphCLKConfig+0x150>
+ 8009824:	68d3      	ldr	r3, [r2, #12]
+ 8009826:	f043 7380 	orr.w	r3, r3, #16777216	; 0x1000000
+ 800982a:	60d3      	str	r3, [r2, #12]
+ 800982c:	046b      	lsls	r3, r5, #17
+ 800982e:	d510      	bpl.n	8009852 <HAL_RCCEx_PeriphCLKConfig+0x176>
+ 8009830:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 8009834:	6ae1      	ldr	r1, [r4, #44]	; 0x2c
+ 8009836:	f8d2 3088 	ldr.w	r3, [r2, #136]	; 0x88
+ 800983a:	f023 5340 	bic.w	r3, r3, #805306368	; 0x30000000
+ 800983e:	430b      	orrs	r3, r1
+ 8009840:	f1b1 5f00 	cmp.w	r1, #536870912	; 0x20000000
+ 8009844:	f8c2 3088 	str.w	r3, [r2, #136]	; 0x88
+ 8009848:	d103      	bne.n	8009852 <HAL_RCCEx_PeriphCLKConfig+0x176>
+ 800984a:	68d3      	ldr	r3, [r2, #12]
+ 800984c:	f443 3380 	orr.w	r3, r3, #65536	; 0x10000
+ 8009850:	60d3      	str	r3, [r2, #12]
+ 8009852:	4630      	mov	r0, r6
+ 8009854:	bd70      	pop	{r4, r5, r6, pc}
+ 8009856:	f7f9 f979 	bl	8002b4c <HAL_GetTick>
+ 800985a:	f241 3688 	movw	r6, #5000	; 0x1388
+ 800985e:	4605      	mov	r5, r0
+ 8009860:	f7ff ff18 	bl	8009694 <LL_RCC_LSE_IsReady>
+ 8009864:	2801      	cmp	r0, #1
+ 8009866:	f43f af66 	beq.w	8009736 <HAL_RCCEx_PeriphCLKConfig+0x5a>
+ 800986a:	f7f9 f96f 	bl	8002b4c <HAL_GetTick>
+ 800986e:	1b40      	subs	r0, r0, r5
+ 8009870:	42b0      	cmp	r0, r6
+ 8009872:	d9f5      	bls.n	8009860 <HAL_RCCEx_PeriphCLKConfig+0x184>
+ 8009874:	e770      	b.n	8009758 <HAL_RCCEx_PeriphCLKConfig+0x7c>
+ 8009876:	bf00      	nop
+ 8009878:	58000400 	.word	0x58000400
+
+0800987c <HAL_RTC_DeactivateAlarm>:
+ 800987c:	b530      	push	{r4, r5, lr}
+ 800987e:	f890 302c 	ldrb.w	r3, [r0, #44]	; 0x2c
+ 8009882:	2b01      	cmp	r3, #1
+ 8009884:	4602      	mov	r2, r0
+ 8009886:	f04f 0002 	mov.w	r0, #2
+ 800988a:	d022      	beq.n	80098d2 <HAL_RTC_DeactivateAlarm+0x56>
+ 800988c:	4b17      	ldr	r3, [pc, #92]	; (80098ec <HAL_RTC_DeactivateAlarm+0x70>)
+ 800988e:	f882 002d 	strb.w	r0, [r2, #45]	; 0x2d
+ 8009892:	24ca      	movs	r4, #202	; 0xca
+ 8009894:	2501      	movs	r5, #1
+ 8009896:	f882 502c 	strb.w	r5, [r2, #44]	; 0x2c
+ 800989a:	625c      	str	r4, [r3, #36]	; 0x24
+ 800989c:	2453      	movs	r4, #83	; 0x53
+ 800989e:	625c      	str	r4, [r3, #36]	; 0x24
+ 80098a0:	f5b1 7f80 	cmp.w	r1, #256	; 0x100
+ 80098a4:	6b14      	ldr	r4, [r2, #48]	; 0x30
+ 80098a6:	6999      	ldr	r1, [r3, #24]
+ 80098a8:	d114      	bne.n	80098d4 <HAL_RTC_DeactivateAlarm+0x58>
+ 80098aa:	f421 5188 	bic.w	r1, r1, #4352	; 0x1100
+ 80098ae:	6199      	str	r1, [r3, #24]
+ 80098b0:	6c59      	ldr	r1, [r3, #68]	; 0x44
+ 80098b2:	f024 0401 	bic.w	r4, r4, #1
+ 80098b6:	f021 4100 	bic.w	r1, r1, #2147483648	; 0x80000000
+ 80098ba:	6459      	str	r1, [r3, #68]	; 0x44
+ 80098bc:	6314      	str	r4, [r2, #48]	; 0x30
+ 80098be:	65dd      	str	r5, [r3, #92]	; 0x5c
+ 80098c0:	4b0a      	ldr	r3, [pc, #40]	; (80098ec <HAL_RTC_DeactivateAlarm+0x70>)
+ 80098c2:	21ff      	movs	r1, #255	; 0xff
+ 80098c4:	6259      	str	r1, [r3, #36]	; 0x24
+ 80098c6:	2000      	movs	r0, #0
+ 80098c8:	2301      	movs	r3, #1
+ 80098ca:	f882 302d 	strb.w	r3, [r2, #45]	; 0x2d
+ 80098ce:	f882 002c 	strb.w	r0, [r2, #44]	; 0x2c
+ 80098d2:	bd30      	pop	{r4, r5, pc}
+ 80098d4:	f421 5108 	bic.w	r1, r1, #8704	; 0x2200
+ 80098d8:	6199      	str	r1, [r3, #24]
+ 80098da:	6cd9      	ldr	r1, [r3, #76]	; 0x4c
+ 80098dc:	f024 0402 	bic.w	r4, r4, #2
+ 80098e0:	f021 4100 	bic.w	r1, r1, #2147483648	; 0x80000000
+ 80098e4:	64d9      	str	r1, [r3, #76]	; 0x4c
+ 80098e6:	6314      	str	r4, [r2, #48]	; 0x30
+ 80098e8:	65d8      	str	r0, [r3, #92]	; 0x5c
+ 80098ea:	e7e9      	b.n	80098c0 <HAL_RTC_DeactivateAlarm+0x44>
+ 80098ec:	40002800 	.word	0x40002800
+
+080098f0 <HAL_RTC_AlarmIRQHandler>:
+ 80098f0:	b570      	push	{r4, r5, r6, lr}
+ 80098f2:	4e0b      	ldr	r6, [pc, #44]	; (8009920 <HAL_RTC_AlarmIRQHandler+0x30>)
+ 80098f4:	6b03      	ldr	r3, [r0, #48]	; 0x30
+ 80098f6:	6d75      	ldr	r5, [r6, #84]	; 0x54
+ 80098f8:	401d      	ands	r5, r3
+ 80098fa:	07ea      	lsls	r2, r5, #31
+ 80098fc:	4604      	mov	r4, r0
+ 80098fe:	d503      	bpl.n	8009908 <HAL_RTC_AlarmIRQHandler+0x18>
+ 8009900:	2301      	movs	r3, #1
+ 8009902:	65f3      	str	r3, [r6, #92]	; 0x5c
+ 8009904:	f7f9 fa9d 	bl	8002e42 <HAL_RTC_AlarmAEventCallback>
+ 8009908:	07ab      	lsls	r3, r5, #30
+ 800990a:	d504      	bpl.n	8009916 <HAL_RTC_AlarmIRQHandler+0x26>
+ 800990c:	2302      	movs	r3, #2
+ 800990e:	65f3      	str	r3, [r6, #92]	; 0x5c
+ 8009910:	4620      	mov	r0, r4
+ 8009912:	f000 f9cb 	bl	8009cac <HAL_RTCEx_AlarmBEventCallback>
+ 8009916:	2301      	movs	r3, #1
+ 8009918:	f884 302d 	strb.w	r3, [r4, #45]	; 0x2d
+ 800991c:	bd70      	pop	{r4, r5, r6, pc}
+ 800991e:	bf00      	nop
+ 8009920:	40002800 	.word	0x40002800
+
+08009924 <HAL_RTC_WaitForSynchro>:
+ 8009924:	b538      	push	{r3, r4, r5, lr}
+ 8009926:	4c0a      	ldr	r4, [pc, #40]	; (8009950 <HAL_RTC_WaitForSynchro+0x2c>)
+ 8009928:	68e3      	ldr	r3, [r4, #12]
+ 800992a:	f023 0320 	bic.w	r3, r3, #32
+ 800992e:	60e3      	str	r3, [r4, #12]
+ 8009930:	f7f9 f90c 	bl	8002b4c <HAL_GetTick>
+ 8009934:	4605      	mov	r5, r0
+ 8009936:	68e3      	ldr	r3, [r4, #12]
+ 8009938:	069b      	lsls	r3, r3, #26
+ 800993a:	d501      	bpl.n	8009940 <HAL_RTC_WaitForSynchro+0x1c>
+ 800993c:	2000      	movs	r0, #0
+ 800993e:	bd38      	pop	{r3, r4, r5, pc}
+ 8009940:	f7f9 f904 	bl	8002b4c <HAL_GetTick>
+ 8009944:	1b40      	subs	r0, r0, r5
+ 8009946:	f5b0 7f7a 	cmp.w	r0, #1000	; 0x3e8
+ 800994a:	d9f4      	bls.n	8009936 <HAL_RTC_WaitForSynchro+0x12>
+ 800994c:	2003      	movs	r0, #3
+ 800994e:	e7f6      	b.n	800993e <HAL_RTC_WaitForSynchro+0x1a>
+ 8009950:	40002800 	.word	0x40002800
+
+08009954 <RTC_EnterInitMode>:
+ 8009954:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8009958:	4d11      	ldr	r5, [pc, #68]	; (80099a0 <RTC_EnterInitMode+0x4c>)
+ 800995a:	68ec      	ldr	r4, [r5, #12]
+ 800995c:	f014 0440 	ands.w	r4, r4, #64	; 0x40
+ 8009960:	4607      	mov	r7, r0
+ 8009962:	d11a      	bne.n	800999a <RTC_EnterInitMode+0x46>
+ 8009964:	68eb      	ldr	r3, [r5, #12]
+ 8009966:	f043 0380 	orr.w	r3, r3, #128	; 0x80
+ 800996a:	60eb      	str	r3, [r5, #12]
+ 800996c:	f7f9 f8ee 	bl	8002b4c <HAL_GetTick>
+ 8009970:	f04f 0803 	mov.w	r8, #3
+ 8009974:	4606      	mov	r6, r0
+ 8009976:	68eb      	ldr	r3, [r5, #12]
+ 8009978:	065b      	lsls	r3, r3, #25
+ 800997a:	d401      	bmi.n	8009980 <RTC_EnterInitMode+0x2c>
+ 800997c:	2c03      	cmp	r4, #3
+ 800997e:	d102      	bne.n	8009986 <RTC_EnterInitMode+0x32>
+ 8009980:	4620      	mov	r0, r4
+ 8009982:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 8009986:	f7f9 f8e1 	bl	8002b4c <HAL_GetTick>
+ 800998a:	1b80      	subs	r0, r0, r6
+ 800998c:	f5b0 7f7a 	cmp.w	r0, #1000	; 0x3e8
+ 8009990:	bf84      	itt	hi
+ 8009992:	f887 802d 	strbhi.w	r8, [r7, #45]	; 0x2d
+ 8009996:	2403      	movhi	r4, #3
+ 8009998:	e7ed      	b.n	8009976 <RTC_EnterInitMode+0x22>
+ 800999a:	2400      	movs	r4, #0
+ 800999c:	e7f0      	b.n	8009980 <RTC_EnterInitMode+0x2c>
+ 800999e:	bf00      	nop
+ 80099a0:	40002800 	.word	0x40002800
+
+080099a4 <RTC_ExitInitMode>:
+ 80099a4:	b538      	push	{r3, r4, r5, lr}
+ 80099a6:	4c0f      	ldr	r4, [pc, #60]	; (80099e4 <RTC_ExitInitMode+0x40>)
+ 80099a8:	68e3      	ldr	r3, [r4, #12]
+ 80099aa:	f023 0380 	bic.w	r3, r3, #128	; 0x80
+ 80099ae:	60e3      	str	r3, [r4, #12]
+ 80099b0:	69a3      	ldr	r3, [r4, #24]
+ 80099b2:	069b      	lsls	r3, r3, #26
+ 80099b4:	4605      	mov	r5, r0
+ 80099b6:	d406      	bmi.n	80099c6 <RTC_ExitInitMode+0x22>
+ 80099b8:	f7ff ffb4 	bl	8009924 <HAL_RTC_WaitForSynchro>
+ 80099bc:	b110      	cbz	r0, 80099c4 <RTC_ExitInitMode+0x20>
+ 80099be:	2003      	movs	r0, #3
+ 80099c0:	f885 002d 	strb.w	r0, [r5, #45]	; 0x2d
+ 80099c4:	bd38      	pop	{r3, r4, r5, pc}
+ 80099c6:	69a3      	ldr	r3, [r4, #24]
+ 80099c8:	f023 0320 	bic.w	r3, r3, #32
+ 80099cc:	61a3      	str	r3, [r4, #24]
+ 80099ce:	f7ff ffa9 	bl	8009924 <HAL_RTC_WaitForSynchro>
+ 80099d2:	b110      	cbz	r0, 80099da <RTC_ExitInitMode+0x36>
+ 80099d4:	2003      	movs	r0, #3
+ 80099d6:	f885 002d 	strb.w	r0, [r5, #45]	; 0x2d
+ 80099da:	69a3      	ldr	r3, [r4, #24]
+ 80099dc:	f043 0320 	orr.w	r3, r3, #32
+ 80099e0:	61a3      	str	r3, [r4, #24]
+ 80099e2:	e7ef      	b.n	80099c4 <RTC_ExitInitMode+0x20>
+ 80099e4:	40002800 	.word	0x40002800
+
+080099e8 <HAL_RTC_Init>:
+ 80099e8:	b538      	push	{r3, r4, r5, lr}
+ 80099ea:	4604      	mov	r4, r0
+ 80099ec:	2800      	cmp	r0, #0
+ 80099ee:	d04b      	beq.n	8009a88 <HAL_RTC_Init+0xa0>
+ 80099f0:	f890 302d 	ldrb.w	r3, [r0, #45]	; 0x2d
+ 80099f4:	f003 02ff 	and.w	r2, r3, #255	; 0xff
+ 80099f8:	b91b      	cbnz	r3, 8009a02 <HAL_RTC_Init+0x1a>
+ 80099fa:	f880 202c 	strb.w	r2, [r0, #44]	; 0x2c
+ 80099fe:	f7f8 fe8d 	bl	800271c <HAL_RTC_MspInit>
+ 8009a02:	2302      	movs	r3, #2
+ 8009a04:	4d21      	ldr	r5, [pc, #132]	; (8009a8c <HAL_RTC_Init+0xa4>)
+ 8009a06:	f884 302d 	strb.w	r3, [r4, #45]	; 0x2d
+ 8009a0a:	68eb      	ldr	r3, [r5, #12]
+ 8009a0c:	06db      	lsls	r3, r3, #27
+ 8009a0e:	d432      	bmi.n	8009a76 <HAL_RTC_Init+0x8e>
+ 8009a10:	23ca      	movs	r3, #202	; 0xca
+ 8009a12:	626b      	str	r3, [r5, #36]	; 0x24
+ 8009a14:	2353      	movs	r3, #83	; 0x53
+ 8009a16:	626b      	str	r3, [r5, #36]	; 0x24
+ 8009a18:	4620      	mov	r0, r4
+ 8009a1a:	f7ff ff9b 	bl	8009954 <RTC_EnterInitMode>
+ 8009a1e:	bb78      	cbnz	r0, 8009a80 <HAL_RTC_Init+0x98>
+ 8009a20:	69ab      	ldr	r3, [r5, #24]
+ 8009a22:	f023 638e 	bic.w	r3, r3, #74448896	; 0x4700000
+ 8009a26:	f023 0340 	bic.w	r3, r3, #64	; 0x40
+ 8009a2a:	61ab      	str	r3, [r5, #24]
+ 8009a2c:	6921      	ldr	r1, [r4, #16]
+ 8009a2e:	6863      	ldr	r3, [r4, #4]
+ 8009a30:	69aa      	ldr	r2, [r5, #24]
+ 8009a32:	430b      	orrs	r3, r1
+ 8009a34:	4313      	orrs	r3, r2
+ 8009a36:	69a2      	ldr	r2, [r4, #24]
+ 8009a38:	4313      	orrs	r3, r2
+ 8009a3a:	61ab      	str	r3, [r5, #24]
+ 8009a3c:	e9d4 2302 	ldrd	r2, r3, [r4, #8]
+ 8009a40:	ea43 4302 	orr.w	r3, r3, r2, lsl #16
+ 8009a44:	612b      	str	r3, [r5, #16]
+ 8009a46:	e9d4 3109 	ldrd	r3, r1, [r4, #36]	; 0x24
+ 8009a4a:	68ea      	ldr	r2, [r5, #12]
+ 8009a4c:	430b      	orrs	r3, r1
+ 8009a4e:	f422 52f8 	bic.w	r2, r2, #7936	; 0x1f00
+ 8009a52:	4313      	orrs	r3, r2
+ 8009a54:	60eb      	str	r3, [r5, #12]
+ 8009a56:	4620      	mov	r0, r4
+ 8009a58:	f7ff ffa4 	bl	80099a4 <RTC_ExitInitMode>
+ 8009a5c:	b980      	cbnz	r0, 8009a80 <HAL_RTC_Init+0x98>
+ 8009a5e:	e9d4 1307 	ldrd	r1, r3, [r4, #28]
+ 8009a62:	69aa      	ldr	r2, [r5, #24]
+ 8009a64:	430b      	orrs	r3, r1
+ 8009a66:	f022 4260 	bic.w	r2, r2, #3758096384	; 0xe0000000
+ 8009a6a:	4313      	orrs	r3, r2
+ 8009a6c:	6962      	ldr	r2, [r4, #20]
+ 8009a6e:	4313      	orrs	r3, r2
+ 8009a70:	61ab      	str	r3, [r5, #24]
+ 8009a72:	23ff      	movs	r3, #255	; 0xff
+ 8009a74:	626b      	str	r3, [r5, #36]	; 0x24
+ 8009a76:	2301      	movs	r3, #1
+ 8009a78:	f884 302d 	strb.w	r3, [r4, #45]	; 0x2d
+ 8009a7c:	2000      	movs	r0, #0
+ 8009a7e:	e002      	b.n	8009a86 <HAL_RTC_Init+0x9e>
+ 8009a80:	4b02      	ldr	r3, [pc, #8]	; (8009a8c <HAL_RTC_Init+0xa4>)
+ 8009a82:	22ff      	movs	r2, #255	; 0xff
+ 8009a84:	625a      	str	r2, [r3, #36]	; 0x24
+ 8009a86:	bd38      	pop	{r3, r4, r5, pc}
+ 8009a88:	2001      	movs	r0, #1
+ 8009a8a:	e7fc      	b.n	8009a86 <HAL_RTC_Init+0x9e>
+ 8009a8c:	40002800 	.word	0x40002800
+
+08009a90 <RTC_ByteToBcd2>:
+ 8009a90:	2300      	movs	r3, #0
+ 8009a92:	2809      	cmp	r0, #9
+ 8009a94:	d803      	bhi.n	8009a9e <RTC_ByteToBcd2+0xe>
+ 8009a96:	ea40 1003 	orr.w	r0, r0, r3, lsl #4
+ 8009a9a:	b2c0      	uxtb	r0, r0
+ 8009a9c:	4770      	bx	lr
+ 8009a9e:	380a      	subs	r0, #10
+ 8009aa0:	3301      	adds	r3, #1
+ 8009aa2:	b2c0      	uxtb	r0, r0
+ 8009aa4:	e7f5      	b.n	8009a92 <RTC_ByteToBcd2+0x2>
+	...
+
+08009aa8 <HAL_RTC_SetAlarm_IT>:
+ 8009aa8:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
+ 8009aac:	f890 302c 	ldrb.w	r3, [r0, #44]	; 0x2c
+ 8009ab0:	2b01      	cmp	r3, #1
+ 8009ab2:	4605      	mov	r5, r0
+ 8009ab4:	f04f 0002 	mov.w	r0, #2
+ 8009ab8:	d069      	beq.n	8009b8e <HAL_RTC_SetAlarm_IT+0xe6>
+ 8009aba:	2301      	movs	r3, #1
+ 8009abc:	f885 302c 	strb.w	r3, [r5, #44]	; 0x2c
+ 8009ac0:	4b4e      	ldr	r3, [pc, #312]	; (8009bfc <HAL_RTC_SetAlarm_IT+0x154>)
+ 8009ac2:	f885 002d 	strb.w	r0, [r5, #45]	; 0x2d
+ 8009ac6:	68de      	ldr	r6, [r3, #12]
+ 8009ac8:	f406 7640 	and.w	r6, r6, #768	; 0x300
+ 8009acc:	f5b6 7f80 	cmp.w	r6, #256	; 0x100
+ 8009ad0:	d078      	beq.n	8009bc4 <HAL_RTC_SetAlarm_IT+0x11c>
+ 8009ad2:	694c      	ldr	r4, [r1, #20]
+ 8009ad4:	7808      	ldrb	r0, [r1, #0]
+ 8009ad6:	f891 9001 	ldrb.w	r9, [r1, #1]
+ 8009ada:	f891 a002 	ldrb.w	sl, [r1, #2]
+ 8009ade:	f891 7024 	ldrb.w	r7, [r1, #36]	; 0x24
+ 8009ae2:	2a00      	cmp	r2, #0
+ 8009ae4:	d155      	bne.n	8009b92 <HAL_RTC_SetAlarm_IT+0xea>
+ 8009ae6:	699b      	ldr	r3, [r3, #24]
+ 8009ae8:	f013 0340 	ands.w	r3, r3, #64	; 0x40
+ 8009aec:	bf08      	it	eq
+ 8009aee:	70cb      	strbeq	r3, [r1, #3]
+ 8009af0:	f7ff ffce 	bl	8009a90 <RTC_ByteToBcd2>
+ 8009af4:	4680      	mov	r8, r0
+ 8009af6:	4648      	mov	r0, r9
+ 8009af8:	f7ff ffca 	bl	8009a90 <RTC_ByteToBcd2>
+ 8009afc:	4602      	mov	r2, r0
+ 8009afe:	4650      	mov	r0, sl
+ 8009b00:	f7ff ffc6 	bl	8009a90 <RTC_ByteToBcd2>
+ 8009b04:	4681      	mov	r9, r0
+ 8009b06:	4638      	mov	r0, r7
+ 8009b08:	f7ff ffc2 	bl	8009a90 <RTC_ByteToBcd2>
+ 8009b0c:	6a0b      	ldr	r3, [r1, #32]
+ 8009b0e:	78cf      	ldrb	r7, [r1, #3]
+ 8009b10:	4323      	orrs	r3, r4
+ 8009b12:	ea43 5387 	orr.w	r3, r3, r7, lsl #22
+ 8009b16:	ea43 0309 	orr.w	r3, r3, r9
+ 8009b1a:	ea43 4308 	orr.w	r3, r3, r8, lsl #16
+ 8009b1e:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
+ 8009b22:	ea43 6300 	orr.w	r3, r3, r0, lsl #24
+ 8009b26:	4a35      	ldr	r2, [pc, #212]	; (8009bfc <HAL_RTC_SetAlarm_IT+0x154>)
+ 8009b28:	20ca      	movs	r0, #202	; 0xca
+ 8009b2a:	6250      	str	r0, [r2, #36]	; 0x24
+ 8009b2c:	2053      	movs	r0, #83	; 0x53
+ 8009b2e:	6250      	str	r0, [r2, #36]	; 0x24
+ 8009b30:	6a8c      	ldr	r4, [r1, #40]	; 0x28
+ 8009b32:	6988      	ldr	r0, [r1, #24]
+ 8009b34:	f5b4 7f80 	cmp.w	r4, #256	; 0x100
+ 8009b38:	6994      	ldr	r4, [r2, #24]
+ 8009b3a:	d145      	bne.n	8009bc8 <HAL_RTC_SetAlarm_IT+0x120>
+ 8009b3c:	f424 5488 	bic.w	r4, r4, #4352	; 0x1100
+ 8009b40:	6194      	str	r4, [r2, #24]
+ 8009b42:	2401      	movs	r4, #1
+ 8009b44:	65d4      	str	r4, [r2, #92]	; 0x5c
+ 8009b46:	f5b6 7f80 	cmp.w	r6, #256	; 0x100
+ 8009b4a:	bf09      	itett	eq
+ 8009b4c:	69cb      	ldreq	r3, [r1, #28]
+ 8009b4e:	6413      	strne	r3, [r2, #64]	; 0x40
+ 8009b50:	4303      	orreq	r3, r0
+ 8009b52:	6453      	streq	r3, [r2, #68]	; 0x44
+ 8009b54:	bf18      	it	ne
+ 8009b56:	6450      	strne	r0, [r2, #68]	; 0x44
+ 8009b58:	4b28      	ldr	r3, [pc, #160]	; (8009bfc <HAL_RTC_SetAlarm_IT+0x154>)
+ 8009b5a:	684a      	ldr	r2, [r1, #4]
+ 8009b5c:	671a      	str	r2, [r3, #112]	; 0x70
+ 8009b5e:	6b2a      	ldr	r2, [r5, #48]	; 0x30
+ 8009b60:	f042 0201 	orr.w	r2, r2, #1
+ 8009b64:	632a      	str	r2, [r5, #48]	; 0x30
+ 8009b66:	699a      	ldr	r2, [r3, #24]
+ 8009b68:	f442 5288 	orr.w	r2, r2, #4352	; 0x1100
+ 8009b6c:	619a      	str	r2, [r3, #24]
+ 8009b6e:	4a24      	ldr	r2, [pc, #144]	; (8009c00 <HAL_RTC_SetAlarm_IT+0x158>)
+ 8009b70:	f8d2 3080 	ldr.w	r3, [r2, #128]	; 0x80
+ 8009b74:	f443 3300 	orr.w	r3, r3, #131072	; 0x20000
+ 8009b78:	f8c2 3080 	str.w	r3, [r2, #128]	; 0x80
+ 8009b7c:	4b1f      	ldr	r3, [pc, #124]	; (8009bfc <HAL_RTC_SetAlarm_IT+0x154>)
+ 8009b7e:	22ff      	movs	r2, #255	; 0xff
+ 8009b80:	625a      	str	r2, [r3, #36]	; 0x24
+ 8009b82:	2000      	movs	r0, #0
+ 8009b84:	2301      	movs	r3, #1
+ 8009b86:	f885 302d 	strb.w	r3, [r5, #45]	; 0x2d
+ 8009b8a:	f885 002c 	strb.w	r0, [r5, #44]	; 0x2c
+ 8009b8e:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 8009b92:	f1b4 3f80 	cmp.w	r4, #2155905152	; 0x80808080
+ 8009b96:	d007      	beq.n	8009ba8 <HAL_RTC_SetAlarm_IT+0x100>
+ 8009b98:	f5b4 0f00 	cmp.w	r4, #8388608	; 0x800000
+ 8009b9c:	d004      	beq.n	8009ba8 <HAL_RTC_SetAlarm_IT+0x100>
+ 8009b9e:	699b      	ldr	r3, [r3, #24]
+ 8009ba0:	f013 0340 	ands.w	r3, r3, #64	; 0x40
+ 8009ba4:	bf08      	it	eq
+ 8009ba6:	70cb      	strbeq	r3, [r1, #3]
+ 8009ba8:	6a0b      	ldr	r3, [r1, #32]
+ 8009baa:	78ca      	ldrb	r2, [r1, #3]
+ 8009bac:	431c      	orrs	r4, r3
+ 8009bae:	ea44 040a 	orr.w	r4, r4, sl
+ 8009bb2:	ea44 4300 	orr.w	r3, r4, r0, lsl #16
+ 8009bb6:	ea43 2309 	orr.w	r3, r3, r9, lsl #8
+ 8009bba:	ea43 5382 	orr.w	r3, r3, r2, lsl #22
+ 8009bbe:	ea43 6307 	orr.w	r3, r3, r7, lsl #24
+ 8009bc2:	e7b0      	b.n	8009b26 <HAL_RTC_SetAlarm_IT+0x7e>
+ 8009bc4:	2300      	movs	r3, #0
+ 8009bc6:	e7ae      	b.n	8009b26 <HAL_RTC_SetAlarm_IT+0x7e>
+ 8009bc8:	f424 5408 	bic.w	r4, r4, #8704	; 0x2200
+ 8009bcc:	6194      	str	r4, [r2, #24]
+ 8009bce:	2402      	movs	r4, #2
+ 8009bd0:	65d4      	str	r4, [r2, #92]	; 0x5c
+ 8009bd2:	f5b6 7f80 	cmp.w	r6, #256	; 0x100
+ 8009bd6:	bf09      	itett	eq
+ 8009bd8:	69cb      	ldreq	r3, [r1, #28]
+ 8009bda:	6493      	strne	r3, [r2, #72]	; 0x48
+ 8009bdc:	4303      	orreq	r3, r0
+ 8009bde:	64d3      	streq	r3, [r2, #76]	; 0x4c
+ 8009be0:	bf18      	it	ne
+ 8009be2:	64d0      	strne	r0, [r2, #76]	; 0x4c
+ 8009be4:	4b05      	ldr	r3, [pc, #20]	; (8009bfc <HAL_RTC_SetAlarm_IT+0x154>)
+ 8009be6:	684a      	ldr	r2, [r1, #4]
+ 8009be8:	675a      	str	r2, [r3, #116]	; 0x74
+ 8009bea:	6b2a      	ldr	r2, [r5, #48]	; 0x30
+ 8009bec:	f042 0202 	orr.w	r2, r2, #2
+ 8009bf0:	632a      	str	r2, [r5, #48]	; 0x30
+ 8009bf2:	699a      	ldr	r2, [r3, #24]
+ 8009bf4:	f442 5208 	orr.w	r2, r2, #8704	; 0x2200
+ 8009bf8:	e7b8      	b.n	8009b6c <HAL_RTC_SetAlarm_IT+0xc4>
+ 8009bfa:	bf00      	nop
+ 8009bfc:	40002800 	.word	0x40002800
+ 8009c00:	58000800 	.word	0x58000800
+
+08009c04 <HAL_RTCEx_EnableBypassShadow>:
+ 8009c04:	f890 202c 	ldrb.w	r2, [r0, #44]	; 0x2c
+ 8009c08:	2a01      	cmp	r2, #1
+ 8009c0a:	4603      	mov	r3, r0
+ 8009c0c:	f04f 0002 	mov.w	r0, #2
+ 8009c10:	d012      	beq.n	8009c38 <HAL_RTCEx_EnableBypassShadow+0x34>
+ 8009c12:	4a0a      	ldr	r2, [pc, #40]	; (8009c3c <HAL_RTCEx_EnableBypassShadow+0x38>)
+ 8009c14:	f883 002d 	strb.w	r0, [r3, #45]	; 0x2d
+ 8009c18:	21ca      	movs	r1, #202	; 0xca
+ 8009c1a:	6251      	str	r1, [r2, #36]	; 0x24
+ 8009c1c:	2153      	movs	r1, #83	; 0x53
+ 8009c1e:	6251      	str	r1, [r2, #36]	; 0x24
+ 8009c20:	6991      	ldr	r1, [r2, #24]
+ 8009c22:	f041 0120 	orr.w	r1, r1, #32
+ 8009c26:	6191      	str	r1, [r2, #24]
+ 8009c28:	21ff      	movs	r1, #255	; 0xff
+ 8009c2a:	6251      	str	r1, [r2, #36]	; 0x24
+ 8009c2c:	2000      	movs	r0, #0
+ 8009c2e:	2201      	movs	r2, #1
+ 8009c30:	f883 202d 	strb.w	r2, [r3, #45]	; 0x2d
+ 8009c34:	f883 002c 	strb.w	r0, [r3, #44]	; 0x2c
+ 8009c38:	4770      	bx	lr
+ 8009c3a:	bf00      	nop
+ 8009c3c:	40002800 	.word	0x40002800
+
+08009c40 <HAL_RTCEx_SetSSRU_IT>:
+ 8009c40:	f890 202c 	ldrb.w	r2, [r0, #44]	; 0x2c
+ 8009c44:	2a01      	cmp	r2, #1
+ 8009c46:	4603      	mov	r3, r0
+ 8009c48:	f04f 0002 	mov.w	r0, #2
+ 8009c4c:	d019      	beq.n	8009c82 <HAL_RTCEx_SetSSRU_IT+0x42>
+ 8009c4e:	4a0d      	ldr	r2, [pc, #52]	; (8009c84 <HAL_RTCEx_SetSSRU_IT+0x44>)
+ 8009c50:	f883 002d 	strb.w	r0, [r3, #45]	; 0x2d
+ 8009c54:	21ca      	movs	r1, #202	; 0xca
+ 8009c56:	6251      	str	r1, [r2, #36]	; 0x24
+ 8009c58:	2153      	movs	r1, #83	; 0x53
+ 8009c5a:	6251      	str	r1, [r2, #36]	; 0x24
+ 8009c5c:	6991      	ldr	r1, [r2, #24]
+ 8009c5e:	480a      	ldr	r0, [pc, #40]	; (8009c88 <HAL_RTCEx_SetSSRU_IT+0x48>)
+ 8009c60:	f041 0180 	orr.w	r1, r1, #128	; 0x80
+ 8009c64:	6191      	str	r1, [r2, #24]
+ 8009c66:	f8d0 1080 	ldr.w	r1, [r0, #128]	; 0x80
+ 8009c6a:	f441 2180 	orr.w	r1, r1, #262144	; 0x40000
+ 8009c6e:	f8c0 1080 	str.w	r1, [r0, #128]	; 0x80
+ 8009c72:	21ff      	movs	r1, #255	; 0xff
+ 8009c74:	6251      	str	r1, [r2, #36]	; 0x24
+ 8009c76:	2000      	movs	r0, #0
+ 8009c78:	2201      	movs	r2, #1
+ 8009c7a:	f883 202d 	strb.w	r2, [r3, #45]	; 0x2d
+ 8009c7e:	f883 002c 	strb.w	r0, [r3, #44]	; 0x2c
+ 8009c82:	4770      	bx	lr
+ 8009c84:	40002800 	.word	0x40002800
+ 8009c88:	58000800 	.word	0x58000800
+
+08009c8c <HAL_RTCEx_SSRUIRQHandler>:
+ 8009c8c:	4b06      	ldr	r3, [pc, #24]	; (8009ca8 <HAL_RTCEx_SSRUIRQHandler+0x1c>)
+ 8009c8e:	6d5a      	ldr	r2, [r3, #84]	; 0x54
+ 8009c90:	0652      	lsls	r2, r2, #25
+ 8009c92:	b510      	push	{r4, lr}
+ 8009c94:	4604      	mov	r4, r0
+ 8009c96:	d503      	bpl.n	8009ca0 <HAL_RTCEx_SSRUIRQHandler+0x14>
+ 8009c98:	2240      	movs	r2, #64	; 0x40
+ 8009c9a:	65da      	str	r2, [r3, #92]	; 0x5c
+ 8009c9c:	f7f9 f8d4 	bl	8002e48 <HAL_RTCEx_SSRUEventCallback>
+ 8009ca0:	2301      	movs	r3, #1
+ 8009ca2:	f884 302d 	strb.w	r3, [r4, #45]	; 0x2d
+ 8009ca6:	bd10      	pop	{r4, pc}
+ 8009ca8:	40002800 	.word	0x40002800
+
+08009cac <HAL_RTCEx_AlarmBEventCallback>:
+ 8009cac:	4770      	bx	lr
+
+08009cae <HAL_RTCEx_BKUPWrite>:
+ 8009cae:	0089      	lsls	r1, r1, #2
+ 8009cb0:	f101 4180 	add.w	r1, r1, #1073741824	; 0x40000000
+ 8009cb4:	f501 4131 	add.w	r1, r1, #45312	; 0xb100
+ 8009cb8:	600a      	str	r2, [r1, #0]
+ 8009cba:	4770      	bx	lr
+
+08009cbc <HAL_RTCEx_BKUPRead>:
+ 8009cbc:	0089      	lsls	r1, r1, #2
+ 8009cbe:	f101 4180 	add.w	r1, r1, #1073741824	; 0x40000000
+ 8009cc2:	f501 4131 	add.w	r1, r1, #45312	; 0xb100
+ 8009cc6:	6808      	ldr	r0, [r1, #0]
+ 8009cc8:	4770      	bx	lr
+	...
+
+08009ccc <LL_PWR_UnselectSUBGHZSPI_NSS>:
+ 8009ccc:	4a03      	ldr	r2, [pc, #12]	; (8009cdc <LL_PWR_UnselectSUBGHZSPI_NSS+0x10>)
+ 8009cce:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 8009cd2:	f443 4300 	orr.w	r3, r3, #32768	; 0x8000
+ 8009cd6:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+ 8009cda:	4770      	bx	lr
+ 8009cdc:	58000400 	.word	0x58000400
+
+08009ce0 <LL_PWR_SelectSUBGHZSPI_NSS>:
+ 8009ce0:	4a03      	ldr	r2, [pc, #12]	; (8009cf0 <LL_PWR_SelectSUBGHZSPI_NSS+0x10>)
+ 8009ce2:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 8009ce6:	f423 4300 	bic.w	r3, r3, #32768	; 0x8000
+ 8009cea:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+ 8009cee:	4770      	bx	lr
+ 8009cf0:	58000400 	.word	0x58000400
+
+08009cf4 <SUBGHZSPI_Init>:
+ 8009cf4:	4b07      	ldr	r3, [pc, #28]	; (8009d14 <SUBGHZSPI_Init+0x20>)
+ 8009cf6:	681a      	ldr	r2, [r3, #0]
+ 8009cf8:	f022 0240 	bic.w	r2, r2, #64	; 0x40
+ 8009cfc:	601a      	str	r2, [r3, #0]
+ 8009cfe:	f440 7041 	orr.w	r0, r0, #772	; 0x304
+ 8009d02:	f44f 52b8 	mov.w	r2, #5888	; 0x1700
+ 8009d06:	6018      	str	r0, [r3, #0]
+ 8009d08:	605a      	str	r2, [r3, #4]
+ 8009d0a:	681a      	ldr	r2, [r3, #0]
+ 8009d0c:	f042 0240 	orr.w	r2, r2, #64	; 0x40
+ 8009d10:	601a      	str	r2, [r3, #0]
+ 8009d12:	4770      	bx	lr
+ 8009d14:	58010000 	.word	0x58010000
+
+08009d18 <HAL_SUBGHZ_Init>:
+ 8009d18:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 8009d1a:	4605      	mov	r5, r0
+ 8009d1c:	2800      	cmp	r0, #0
+ 8009d1e:	d04e      	beq.n	8009dbe <HAL_SUBGHZ_Init+0xa6>
+ 8009d20:	7983      	ldrb	r3, [r0, #6]
+ 8009d22:	f003 04ff 	and.w	r4, r3, #255	; 0xff
+ 8009d26:	b16b      	cbz	r3, 8009d44 <HAL_SUBGHZ_Init+0x2c>
+ 8009d28:	2c03      	cmp	r4, #3
+ 8009d2a:	d00b      	beq.n	8009d44 <HAL_SUBGHZ_Init+0x2c>
+ 8009d2c:	4b25      	ldr	r3, [pc, #148]	; (8009dc4 <HAL_SUBGHZ_Init+0xac>)
+ 8009d2e:	f44f 6200 	mov.w	r2, #2048	; 0x800
+ 8009d32:	619a      	str	r2, [r3, #24]
+ 8009d34:	6828      	ldr	r0, [r5, #0]
+ 8009d36:	f7ff ffdd 	bl	8009cf4 <SUBGHZSPI_Init>
+ 8009d3a:	2400      	movs	r4, #0
+ 8009d3c:	2301      	movs	r3, #1
+ 8009d3e:	712b      	strb	r3, [r5, #4]
+ 8009d40:	60ac      	str	r4, [r5, #8]
+ 8009d42:	e02f      	b.n	8009da4 <HAL_SUBGHZ_Init+0x8c>
+ 8009d44:	2300      	movs	r3, #0
+ 8009d46:	716b      	strb	r3, [r5, #5]
+ 8009d48:	4628      	mov	r0, r5
+ 8009d4a:	f7f8 fe17 	bl	800297c <HAL_SUBGHZ_MspInit>
+ 8009d4e:	4a1e      	ldr	r2, [pc, #120]	; (8009dc8 <HAL_SUBGHZ_Init+0xb0>)
+ 8009d50:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 8009d54:	f443 5380 	orr.w	r3, r3, #4096	; 0x1000
+ 8009d58:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+ 8009d5c:	2c00      	cmp	r4, #0
+ 8009d5e:	d1e5      	bne.n	8009d2c <HAL_SUBGHZ_Init+0x14>
+ 8009d60:	2302      	movs	r3, #2
+ 8009d62:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 8009d66:	71ab      	strb	r3, [r5, #6]
+ 8009d68:	f8d2 3094 	ldr.w	r3, [r2, #148]	; 0x94
+ 8009d6c:	f423 4300 	bic.w	r3, r3, #32768	; 0x8000
+ 8009d70:	f8c2 3094 	str.w	r3, [r2, #148]	; 0x94
+ 8009d74:	4b15      	ldr	r3, [pc, #84]	; (8009dcc <HAL_SUBGHZ_Init+0xb4>)
+ 8009d76:	681b      	ldr	r3, [r3, #0]
+ 8009d78:	211c      	movs	r1, #28
+ 8009d7a:	434b      	muls	r3, r1
+ 8009d7c:	0cdb      	lsrs	r3, r3, #19
+ 8009d7e:	2164      	movs	r1, #100	; 0x64
+ 8009d80:	434b      	muls	r3, r1
+ 8009d82:	9301      	str	r3, [sp, #4]
+ 8009d84:	9b01      	ldr	r3, [sp, #4]
+ 8009d86:	b993      	cbnz	r3, 8009dae <HAL_SUBGHZ_Init+0x96>
+ 8009d88:	2401      	movs	r4, #1
+ 8009d8a:	60ac      	str	r4, [r5, #8]
+ 8009d8c:	f7ff ff9e 	bl	8009ccc <LL_PWR_UnselectSUBGHZSPI_NSS>
+ 8009d90:	4b0c      	ldr	r3, [pc, #48]	; (8009dc4 <HAL_SUBGHZ_Init+0xac>)
+ 8009d92:	689a      	ldr	r2, [r3, #8]
+ 8009d94:	f442 6200 	orr.w	r2, r2, #2048	; 0x800
+ 8009d98:	609a      	str	r2, [r3, #8]
+ 8009d9a:	f44f 6200 	mov.w	r2, #2048	; 0x800
+ 8009d9e:	619a      	str	r2, [r3, #24]
+ 8009da0:	2c00      	cmp	r4, #0
+ 8009da2:	d0c7      	beq.n	8009d34 <HAL_SUBGHZ_Init+0x1c>
+ 8009da4:	2301      	movs	r3, #1
+ 8009da6:	71ab      	strb	r3, [r5, #6]
+ 8009da8:	4620      	mov	r0, r4
+ 8009daa:	b003      	add	sp, #12
+ 8009dac:	bd30      	pop	{r4, r5, pc}
+ 8009dae:	9b01      	ldr	r3, [sp, #4]
+ 8009db0:	3b01      	subs	r3, #1
+ 8009db2:	9301      	str	r3, [sp, #4]
+ 8009db4:	f8d2 3094 	ldr.w	r3, [r2, #148]	; 0x94
+ 8009db8:	045b      	lsls	r3, r3, #17
+ 8009dba:	d4e3      	bmi.n	8009d84 <HAL_SUBGHZ_Init+0x6c>
+ 8009dbc:	e7e6      	b.n	8009d8c <HAL_SUBGHZ_Init+0x74>
+ 8009dbe:	2401      	movs	r4, #1
+ 8009dc0:	e7f2      	b.n	8009da8 <HAL_SUBGHZ_Init+0x90>
+ 8009dc2:	bf00      	nop
+ 8009dc4:	58000400 	.word	0x58000400
+ 8009dc8:	58000800 	.word	0x58000800
+ 8009dcc:	20000828 	.word	0x20000828
+
+08009dd0 <SUBGHZSPI_Transmit>:
+ 8009dd0:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 8009dd2:	4d17      	ldr	r5, [pc, #92]	; (8009e30 <SUBGHZSPI_Transmit+0x60>)
+ 8009dd4:	682b      	ldr	r3, [r5, #0]
+ 8009dd6:	4602      	mov	r2, r0
+ 8009dd8:	201c      	movs	r0, #28
+ 8009dda:	4343      	muls	r3, r0
+ 8009ddc:	0cdb      	lsrs	r3, r3, #19
+ 8009dde:	2064      	movs	r0, #100	; 0x64
+ 8009de0:	4343      	muls	r3, r0
+ 8009de2:	4814      	ldr	r0, [pc, #80]	; (8009e34 <SUBGHZSPI_Transmit+0x64>)
+ 8009de4:	9301      	str	r3, [sp, #4]
+ 8009de6:	9b01      	ldr	r3, [sp, #4]
+ 8009de8:	b993      	cbnz	r3, 8009e10 <SUBGHZSPI_Transmit+0x40>
+ 8009dea:	2001      	movs	r0, #1
+ 8009dec:	6090      	str	r0, [r2, #8]
+ 8009dee:	4c11      	ldr	r4, [pc, #68]	; (8009e34 <SUBGHZSPI_Transmit+0x64>)
+ 8009df0:	7321      	strb	r1, [r4, #12]
+ 8009df2:	682b      	ldr	r3, [r5, #0]
+ 8009df4:	211c      	movs	r1, #28
+ 8009df6:	434b      	muls	r3, r1
+ 8009df8:	0cdb      	lsrs	r3, r3, #19
+ 8009dfa:	2164      	movs	r1, #100	; 0x64
+ 8009dfc:	434b      	muls	r3, r1
+ 8009dfe:	9301      	str	r3, [sp, #4]
+ 8009e00:	9b01      	ldr	r3, [sp, #4]
+ 8009e02:	b96b      	cbnz	r3, 8009e20 <SUBGHZSPI_Transmit+0x50>
+ 8009e04:	2001      	movs	r0, #1
+ 8009e06:	6090      	str	r0, [r2, #8]
+ 8009e08:	4b0a      	ldr	r3, [pc, #40]	; (8009e34 <SUBGHZSPI_Transmit+0x64>)
+ 8009e0a:	68db      	ldr	r3, [r3, #12]
+ 8009e0c:	b003      	add	sp, #12
+ 8009e0e:	bd30      	pop	{r4, r5, pc}
+ 8009e10:	9b01      	ldr	r3, [sp, #4]
+ 8009e12:	3b01      	subs	r3, #1
+ 8009e14:	9301      	str	r3, [sp, #4]
+ 8009e16:	6883      	ldr	r3, [r0, #8]
+ 8009e18:	079c      	lsls	r4, r3, #30
+ 8009e1a:	d5e4      	bpl.n	8009de6 <SUBGHZSPI_Transmit+0x16>
+ 8009e1c:	2000      	movs	r0, #0
+ 8009e1e:	e7e6      	b.n	8009dee <SUBGHZSPI_Transmit+0x1e>
+ 8009e20:	9b01      	ldr	r3, [sp, #4]
+ 8009e22:	3b01      	subs	r3, #1
+ 8009e24:	9301      	str	r3, [sp, #4]
+ 8009e26:	68a3      	ldr	r3, [r4, #8]
+ 8009e28:	07db      	lsls	r3, r3, #31
+ 8009e2a:	d5e9      	bpl.n	8009e00 <SUBGHZSPI_Transmit+0x30>
+ 8009e2c:	e7ec      	b.n	8009e08 <SUBGHZSPI_Transmit+0x38>
+ 8009e2e:	bf00      	nop
+ 8009e30:	20000828 	.word	0x20000828
+ 8009e34:	58010000 	.word	0x58010000
+
+08009e38 <SUBGHZSPI_Receive>:
+ 8009e38:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 8009e3a:	4d18      	ldr	r5, [pc, #96]	; (8009e9c <SUBGHZSPI_Receive+0x64>)
+ 8009e3c:	682b      	ldr	r3, [r5, #0]
+ 8009e3e:	4602      	mov	r2, r0
+ 8009e40:	201c      	movs	r0, #28
+ 8009e42:	4343      	muls	r3, r0
+ 8009e44:	0cdb      	lsrs	r3, r3, #19
+ 8009e46:	2064      	movs	r0, #100	; 0x64
+ 8009e48:	4343      	muls	r3, r0
+ 8009e4a:	4815      	ldr	r0, [pc, #84]	; (8009ea0 <SUBGHZSPI_Receive+0x68>)
+ 8009e4c:	9301      	str	r3, [sp, #4]
+ 8009e4e:	9b01      	ldr	r3, [sp, #4]
+ 8009e50:	b9a3      	cbnz	r3, 8009e7c <SUBGHZSPI_Receive+0x44>
+ 8009e52:	2001      	movs	r0, #1
+ 8009e54:	6090      	str	r0, [r2, #8]
+ 8009e56:	4c12      	ldr	r4, [pc, #72]	; (8009ea0 <SUBGHZSPI_Receive+0x68>)
+ 8009e58:	23ff      	movs	r3, #255	; 0xff
+ 8009e5a:	7323      	strb	r3, [r4, #12]
+ 8009e5c:	682b      	ldr	r3, [r5, #0]
+ 8009e5e:	251c      	movs	r5, #28
+ 8009e60:	436b      	muls	r3, r5
+ 8009e62:	0cdb      	lsrs	r3, r3, #19
+ 8009e64:	2564      	movs	r5, #100	; 0x64
+ 8009e66:	436b      	muls	r3, r5
+ 8009e68:	9301      	str	r3, [sp, #4]
+ 8009e6a:	9b01      	ldr	r3, [sp, #4]
+ 8009e6c:	b973      	cbnz	r3, 8009e8c <SUBGHZSPI_Receive+0x54>
+ 8009e6e:	2001      	movs	r0, #1
+ 8009e70:	6090      	str	r0, [r2, #8]
+ 8009e72:	4b0b      	ldr	r3, [pc, #44]	; (8009ea0 <SUBGHZSPI_Receive+0x68>)
+ 8009e74:	68db      	ldr	r3, [r3, #12]
+ 8009e76:	700b      	strb	r3, [r1, #0]
+ 8009e78:	b003      	add	sp, #12
+ 8009e7a:	bd30      	pop	{r4, r5, pc}
+ 8009e7c:	9b01      	ldr	r3, [sp, #4]
+ 8009e7e:	3b01      	subs	r3, #1
+ 8009e80:	9301      	str	r3, [sp, #4]
+ 8009e82:	6883      	ldr	r3, [r0, #8]
+ 8009e84:	079c      	lsls	r4, r3, #30
+ 8009e86:	d5e2      	bpl.n	8009e4e <SUBGHZSPI_Receive+0x16>
+ 8009e88:	2000      	movs	r0, #0
+ 8009e8a:	e7e4      	b.n	8009e56 <SUBGHZSPI_Receive+0x1e>
+ 8009e8c:	9b01      	ldr	r3, [sp, #4]
+ 8009e8e:	3b01      	subs	r3, #1
+ 8009e90:	9301      	str	r3, [sp, #4]
+ 8009e92:	68a3      	ldr	r3, [r4, #8]
+ 8009e94:	07db      	lsls	r3, r3, #31
+ 8009e96:	d5e8      	bpl.n	8009e6a <SUBGHZSPI_Receive+0x32>
+ 8009e98:	e7eb      	b.n	8009e72 <SUBGHZSPI_Receive+0x3a>
+ 8009e9a:	bf00      	nop
+ 8009e9c:	20000828 	.word	0x20000828
+ 8009ea0:	58010000 	.word	0x58010000
+
+08009ea4 <SUBGHZ_WaitOnBusy>:
+ 8009ea4:	4b0f      	ldr	r3, [pc, #60]	; (8009ee4 <SUBGHZ_WaitOnBusy+0x40>)
+ 8009ea6:	b513      	push	{r0, r1, r4, lr}
+ 8009ea8:	681b      	ldr	r3, [r3, #0]
+ 8009eaa:	4c0f      	ldr	r4, [pc, #60]	; (8009ee8 <SUBGHZ_WaitOnBusy+0x44>)
+ 8009eac:	2218      	movs	r2, #24
+ 8009eae:	4353      	muls	r3, r2
+ 8009eb0:	0d1b      	lsrs	r3, r3, #20
+ 8009eb2:	2264      	movs	r2, #100	; 0x64
+ 8009eb4:	4353      	muls	r3, r2
+ 8009eb6:	4601      	mov	r1, r0
+ 8009eb8:	9301      	str	r3, [sp, #4]
+ 8009eba:	6962      	ldr	r2, [r4, #20]
+ 8009ebc:	9b01      	ldr	r3, [sp, #4]
+ 8009ebe:	f002 0204 	and.w	r2, r2, #4
+ 8009ec2:	b923      	cbnz	r3, 8009ece <SUBGHZ_WaitOnBusy+0x2a>
+ 8009ec4:	2302      	movs	r3, #2
+ 8009ec6:	608b      	str	r3, [r1, #8]
+ 8009ec8:	2001      	movs	r0, #1
+ 8009eca:	b002      	add	sp, #8
+ 8009ecc:	bd10      	pop	{r4, pc}
+ 8009ece:	9b01      	ldr	r3, [sp, #4]
+ 8009ed0:	3b01      	subs	r3, #1
+ 8009ed2:	9301      	str	r3, [sp, #4]
+ 8009ed4:	6960      	ldr	r0, [r4, #20]
+ 8009ed6:	f010 0002 	ands.w	r0, r0, #2
+ 8009eda:	d0f6      	beq.n	8009eca <SUBGHZ_WaitOnBusy+0x26>
+ 8009edc:	2a00      	cmp	r2, #0
+ 8009ede:	d1ec      	bne.n	8009eba <SUBGHZ_WaitOnBusy+0x16>
+ 8009ee0:	4610      	mov	r0, r2
+ 8009ee2:	e7f2      	b.n	8009eca <SUBGHZ_WaitOnBusy+0x26>
+ 8009ee4:	20000828 	.word	0x20000828
+ 8009ee8:	58000400 	.word	0x58000400
+
+08009eec <SUBGHZ_CheckDeviceReady>:
+ 8009eec:	b507      	push	{r0, r1, r2, lr}
+ 8009eee:	7903      	ldrb	r3, [r0, #4]
+ 8009ef0:	2b01      	cmp	r3, #1
+ 8009ef2:	d10f      	bne.n	8009f14 <SUBGHZ_CheckDeviceReady+0x28>
+ 8009ef4:	4b0a      	ldr	r3, [pc, #40]	; (8009f20 <SUBGHZ_CheckDeviceReady+0x34>)
+ 8009ef6:	681b      	ldr	r3, [r3, #0]
+ 8009ef8:	2218      	movs	r2, #24
+ 8009efa:	4353      	muls	r3, r2
+ 8009efc:	0c1b      	lsrs	r3, r3, #16
+ 8009efe:	9301      	str	r3, [sp, #4]
+ 8009f00:	f7ff feee 	bl	8009ce0 <LL_PWR_SelectSUBGHZSPI_NSS>
+ 8009f04:	9b01      	ldr	r3, [sp, #4]
+ 8009f06:	3b01      	subs	r3, #1
+ 8009f08:	9301      	str	r3, [sp, #4]
+ 8009f0a:	9b01      	ldr	r3, [sp, #4]
+ 8009f0c:	2b00      	cmp	r3, #0
+ 8009f0e:	d1f9      	bne.n	8009f04 <SUBGHZ_CheckDeviceReady+0x18>
+ 8009f10:	f7ff fedc 	bl	8009ccc <LL_PWR_UnselectSUBGHZSPI_NSS>
+ 8009f14:	b003      	add	sp, #12
+ 8009f16:	f85d eb04 	ldr.w	lr, [sp], #4
+ 8009f1a:	f7ff bfc3 	b.w	8009ea4 <SUBGHZ_WaitOnBusy>
+ 8009f1e:	bf00      	nop
+ 8009f20:	20000828 	.word	0x20000828
+
+08009f24 <HAL_SUBGHZ_WriteRegisters>:
+ 8009f24:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 8009f26:	461e      	mov	r6, r3
+ 8009f28:	7983      	ldrb	r3, [r0, #6]
+ 8009f2a:	2b01      	cmp	r3, #1
+ 8009f2c:	4615      	mov	r5, r2
+ 8009f2e:	4604      	mov	r4, r0
+ 8009f30:	460f      	mov	r7, r1
+ 8009f32:	b2da      	uxtb	r2, r3
+ 8009f34:	d12d      	bne.n	8009f92 <HAL_SUBGHZ_WriteRegisters+0x6e>
+ 8009f36:	7943      	ldrb	r3, [r0, #5]
+ 8009f38:	2b01      	cmp	r3, #1
+ 8009f3a:	d02a      	beq.n	8009f92 <HAL_SUBGHZ_WriteRegisters+0x6e>
+ 8009f3c:	2302      	movs	r3, #2
+ 8009f3e:	7142      	strb	r2, [r0, #5]
+ 8009f40:	7183      	strb	r3, [r0, #6]
+ 8009f42:	f7ff ffd3 	bl	8009eec <SUBGHZ_CheckDeviceReady>
+ 8009f46:	210d      	movs	r1, #13
+ 8009f48:	4620      	mov	r0, r4
+ 8009f4a:	f7ff fec9 	bl	8009ce0 <LL_PWR_SelectSUBGHZSPI_NSS>
+ 8009f4e:	f7ff ff3f 	bl	8009dd0 <SUBGHZSPI_Transmit>
+ 8009f52:	0a39      	lsrs	r1, r7, #8
+ 8009f54:	4620      	mov	r0, r4
+ 8009f56:	f7ff ff3b 	bl	8009dd0 <SUBGHZSPI_Transmit>
+ 8009f5a:	b2f9      	uxtb	r1, r7
+ 8009f5c:	4620      	mov	r0, r4
+ 8009f5e:	f7ff ff37 	bl	8009dd0 <SUBGHZSPI_Transmit>
+ 8009f62:	442e      	add	r6, r5
+ 8009f64:	42b5      	cmp	r5, r6
+ 8009f66:	d10e      	bne.n	8009f86 <HAL_SUBGHZ_WriteRegisters+0x62>
+ 8009f68:	4620      	mov	r0, r4
+ 8009f6a:	f7ff feaf 	bl	8009ccc <LL_PWR_UnselectSUBGHZSPI_NSS>
+ 8009f6e:	f7ff ff99 	bl	8009ea4 <SUBGHZ_WaitOnBusy>
+ 8009f72:	68a0      	ldr	r0, [r4, #8]
+ 8009f74:	2301      	movs	r3, #1
+ 8009f76:	3800      	subs	r0, #0
+ 8009f78:	71a3      	strb	r3, [r4, #6]
+ 8009f7a:	f04f 0300 	mov.w	r3, #0
+ 8009f7e:	bf18      	it	ne
+ 8009f80:	2001      	movne	r0, #1
+ 8009f82:	7163      	strb	r3, [r4, #5]
+ 8009f84:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 8009f86:	f815 1b01 	ldrb.w	r1, [r5], #1
+ 8009f8a:	4620      	mov	r0, r4
+ 8009f8c:	f7ff ff20 	bl	8009dd0 <SUBGHZSPI_Transmit>
+ 8009f90:	e7e8      	b.n	8009f64 <HAL_SUBGHZ_WriteRegisters+0x40>
+ 8009f92:	2002      	movs	r0, #2
+ 8009f94:	e7f6      	b.n	8009f84 <HAL_SUBGHZ_WriteRegisters+0x60>
+
+08009f96 <HAL_SUBGHZ_ReadRegisters>:
+ 8009f96:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 8009f98:	461e      	mov	r6, r3
+ 8009f9a:	7983      	ldrb	r3, [r0, #6]
+ 8009f9c:	2b01      	cmp	r3, #1
+ 8009f9e:	4615      	mov	r5, r2
+ 8009fa0:	4604      	mov	r4, r0
+ 8009fa2:	460f      	mov	r7, r1
+ 8009fa4:	b2da      	uxtb	r2, r3
+ 8009fa6:	d12f      	bne.n	800a008 <HAL_SUBGHZ_ReadRegisters+0x72>
+ 8009fa8:	7943      	ldrb	r3, [r0, #5]
+ 8009faa:	2b01      	cmp	r3, #1
+ 8009fac:	d02c      	beq.n	800a008 <HAL_SUBGHZ_ReadRegisters+0x72>
+ 8009fae:	7142      	strb	r2, [r0, #5]
+ 8009fb0:	f7ff ff9c 	bl	8009eec <SUBGHZ_CheckDeviceReady>
+ 8009fb4:	211d      	movs	r1, #29
+ 8009fb6:	4620      	mov	r0, r4
+ 8009fb8:	f7ff fe92 	bl	8009ce0 <LL_PWR_SelectSUBGHZSPI_NSS>
+ 8009fbc:	f7ff ff08 	bl	8009dd0 <SUBGHZSPI_Transmit>
+ 8009fc0:	0a39      	lsrs	r1, r7, #8
+ 8009fc2:	4620      	mov	r0, r4
+ 8009fc4:	f7ff ff04 	bl	8009dd0 <SUBGHZSPI_Transmit>
+ 8009fc8:	b2f9      	uxtb	r1, r7
+ 8009fca:	4620      	mov	r0, r4
+ 8009fcc:	f7ff ff00 	bl	8009dd0 <SUBGHZSPI_Transmit>
+ 8009fd0:	2100      	movs	r1, #0
+ 8009fd2:	4620      	mov	r0, r4
+ 8009fd4:	f7ff fefc 	bl	8009dd0 <SUBGHZSPI_Transmit>
+ 8009fd8:	442e      	add	r6, r5
+ 8009fda:	42b5      	cmp	r5, r6
+ 8009fdc:	d10e      	bne.n	8009ffc <HAL_SUBGHZ_ReadRegisters+0x66>
+ 8009fde:	4620      	mov	r0, r4
+ 8009fe0:	f7ff fe74 	bl	8009ccc <LL_PWR_UnselectSUBGHZSPI_NSS>
+ 8009fe4:	f7ff ff5e 	bl	8009ea4 <SUBGHZ_WaitOnBusy>
+ 8009fe8:	68a0      	ldr	r0, [r4, #8]
+ 8009fea:	2301      	movs	r3, #1
+ 8009fec:	3800      	subs	r0, #0
+ 8009fee:	71a3      	strb	r3, [r4, #6]
+ 8009ff0:	f04f 0300 	mov.w	r3, #0
+ 8009ff4:	bf18      	it	ne
+ 8009ff6:	2001      	movne	r0, #1
+ 8009ff8:	7163      	strb	r3, [r4, #5]
+ 8009ffa:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 8009ffc:	4629      	mov	r1, r5
+ 8009ffe:	4620      	mov	r0, r4
+ 800a000:	f7ff ff1a 	bl	8009e38 <SUBGHZSPI_Receive>
+ 800a004:	3501      	adds	r5, #1
+ 800a006:	e7e8      	b.n	8009fda <HAL_SUBGHZ_ReadRegisters+0x44>
+ 800a008:	2002      	movs	r0, #2
+ 800a00a:	e7f6      	b.n	8009ffa <HAL_SUBGHZ_ReadRegisters+0x64>
+
+0800a00c <HAL_SUBGHZ_ExecSetCmd>:
+ 800a00c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 800a00e:	461f      	mov	r7, r3
+ 800a010:	7983      	ldrb	r3, [r0, #6]
+ 800a012:	2b01      	cmp	r3, #1
+ 800a014:	4615      	mov	r5, r2
+ 800a016:	4604      	mov	r4, r0
+ 800a018:	460e      	mov	r6, r1
+ 800a01a:	b2da      	uxtb	r2, r3
+ 800a01c:	d12c      	bne.n	800a078 <HAL_SUBGHZ_ExecSetCmd+0x6c>
+ 800a01e:	7943      	ldrb	r3, [r0, #5]
+ 800a020:	2b01      	cmp	r3, #1
+ 800a022:	d029      	beq.n	800a078 <HAL_SUBGHZ_ExecSetCmd+0x6c>
+ 800a024:	7142      	strb	r2, [r0, #5]
+ 800a026:	f7ff ff61 	bl	8009eec <SUBGHZ_CheckDeviceReady>
+ 800a02a:	f006 03ef 	and.w	r3, r6, #239	; 0xef
+ 800a02e:	f1a3 0284 	sub.w	r2, r3, #132	; 0x84
+ 800a032:	4253      	negs	r3, r2
+ 800a034:	4153      	adcs	r3, r2
+ 800a036:	7123      	strb	r3, [r4, #4]
+ 800a038:	4631      	mov	r1, r6
+ 800a03a:	4620      	mov	r0, r4
+ 800a03c:	f7ff fe50 	bl	8009ce0 <LL_PWR_SelectSUBGHZSPI_NSS>
+ 800a040:	f7ff fec6 	bl	8009dd0 <SUBGHZSPI_Transmit>
+ 800a044:	442f      	add	r7, r5
+ 800a046:	42af      	cmp	r7, r5
+ 800a048:	d110      	bne.n	800a06c <HAL_SUBGHZ_ExecSetCmd+0x60>
+ 800a04a:	f7ff fe3f 	bl	8009ccc <LL_PWR_UnselectSUBGHZSPI_NSS>
+ 800a04e:	2e84      	cmp	r6, #132	; 0x84
+ 800a050:	d002      	beq.n	800a058 <HAL_SUBGHZ_ExecSetCmd+0x4c>
+ 800a052:	4620      	mov	r0, r4
+ 800a054:	f7ff ff26 	bl	8009ea4 <SUBGHZ_WaitOnBusy>
+ 800a058:	68a0      	ldr	r0, [r4, #8]
+ 800a05a:	2301      	movs	r3, #1
+ 800a05c:	3800      	subs	r0, #0
+ 800a05e:	71a3      	strb	r3, [r4, #6]
+ 800a060:	f04f 0300 	mov.w	r3, #0
+ 800a064:	bf18      	it	ne
+ 800a066:	2001      	movne	r0, #1
+ 800a068:	7163      	strb	r3, [r4, #5]
+ 800a06a:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 800a06c:	f815 1b01 	ldrb.w	r1, [r5], #1
+ 800a070:	4620      	mov	r0, r4
+ 800a072:	f7ff fead 	bl	8009dd0 <SUBGHZSPI_Transmit>
+ 800a076:	e7e6      	b.n	800a046 <HAL_SUBGHZ_ExecSetCmd+0x3a>
+ 800a078:	2002      	movs	r0, #2
+ 800a07a:	e7f6      	b.n	800a06a <HAL_SUBGHZ_ExecSetCmd+0x5e>
+
+0800a07c <HAL_SUBGHZ_ExecGetCmd>:
+ 800a07c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 800a07e:	461e      	mov	r6, r3
+ 800a080:	7983      	ldrb	r3, [r0, #6]
+ 800a082:	2b01      	cmp	r3, #1
+ 800a084:	4615      	mov	r5, r2
+ 800a086:	4604      	mov	r4, r0
+ 800a088:	460f      	mov	r7, r1
+ 800a08a:	b2da      	uxtb	r2, r3
+ 800a08c:	d127      	bne.n	800a0de <HAL_SUBGHZ_ExecGetCmd+0x62>
+ 800a08e:	7943      	ldrb	r3, [r0, #5]
+ 800a090:	2b01      	cmp	r3, #1
+ 800a092:	d024      	beq.n	800a0de <HAL_SUBGHZ_ExecGetCmd+0x62>
+ 800a094:	7142      	strb	r2, [r0, #5]
+ 800a096:	f7ff ff29 	bl	8009eec <SUBGHZ_CheckDeviceReady>
+ 800a09a:	4639      	mov	r1, r7
+ 800a09c:	4620      	mov	r0, r4
+ 800a09e:	f7ff fe1f 	bl	8009ce0 <LL_PWR_SelectSUBGHZSPI_NSS>
+ 800a0a2:	f7ff fe95 	bl	8009dd0 <SUBGHZSPI_Transmit>
+ 800a0a6:	2100      	movs	r1, #0
+ 800a0a8:	4620      	mov	r0, r4
+ 800a0aa:	f7ff fe91 	bl	8009dd0 <SUBGHZSPI_Transmit>
+ 800a0ae:	442e      	add	r6, r5
+ 800a0b0:	42b5      	cmp	r5, r6
+ 800a0b2:	d10e      	bne.n	800a0d2 <HAL_SUBGHZ_ExecGetCmd+0x56>
+ 800a0b4:	4620      	mov	r0, r4
+ 800a0b6:	f7ff fe09 	bl	8009ccc <LL_PWR_UnselectSUBGHZSPI_NSS>
+ 800a0ba:	f7ff fef3 	bl	8009ea4 <SUBGHZ_WaitOnBusy>
+ 800a0be:	68a0      	ldr	r0, [r4, #8]
+ 800a0c0:	2301      	movs	r3, #1
+ 800a0c2:	3800      	subs	r0, #0
+ 800a0c4:	71a3      	strb	r3, [r4, #6]
+ 800a0c6:	f04f 0300 	mov.w	r3, #0
+ 800a0ca:	bf18      	it	ne
+ 800a0cc:	2001      	movne	r0, #1
+ 800a0ce:	7163      	strb	r3, [r4, #5]
+ 800a0d0:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 800a0d2:	4629      	mov	r1, r5
+ 800a0d4:	4620      	mov	r0, r4
+ 800a0d6:	f7ff feaf 	bl	8009e38 <SUBGHZSPI_Receive>
+ 800a0da:	3501      	adds	r5, #1
+ 800a0dc:	e7e8      	b.n	800a0b0 <HAL_SUBGHZ_ExecGetCmd+0x34>
+ 800a0de:	2002      	movs	r0, #2
+ 800a0e0:	e7f6      	b.n	800a0d0 <HAL_SUBGHZ_ExecGetCmd+0x54>
+
+0800a0e2 <HAL_SUBGHZ_IRQHandler>:
+ 800a0e2:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 800a0e4:	2300      	movs	r3, #0
+ 800a0e6:	f8ad 3004 	strh.w	r3, [sp, #4]
+ 800a0ea:	aa01      	add	r2, sp, #4
+ 800a0ec:	2302      	movs	r3, #2
+ 800a0ee:	2112      	movs	r1, #18
+ 800a0f0:	4605      	mov	r5, r0
+ 800a0f2:	f7ff ffc3 	bl	800a07c <HAL_SUBGHZ_ExecGetCmd>
+ 800a0f6:	f8bd 4004 	ldrh.w	r4, [sp, #4]
+ 800a0fa:	2302      	movs	r3, #2
+ 800a0fc:	ba64      	rev16	r4, r4
+ 800a0fe:	aa01      	add	r2, sp, #4
+ 800a100:	b2a4      	uxth	r4, r4
+ 800a102:	4619      	mov	r1, r3
+ 800a104:	4628      	mov	r0, r5
+ 800a106:	f7ff ff81 	bl	800a00c <HAL_SUBGHZ_ExecSetCmd>
+ 800a10a:	07e2      	lsls	r2, r4, #31
+ 800a10c:	d502      	bpl.n	800a114 <HAL_SUBGHZ_IRQHandler+0x32>
+ 800a10e:	4628      	mov	r0, r5
+ 800a110:	f009 f9f6 	bl	8013500 <HAL_SUBGHZ_TxCpltCallback>
+ 800a114:	07a3      	lsls	r3, r4, #30
+ 800a116:	d502      	bpl.n	800a11e <HAL_SUBGHZ_IRQHandler+0x3c>
+ 800a118:	4628      	mov	r0, r5
+ 800a11a:	f009 f9f7 	bl	801350c <HAL_SUBGHZ_RxCpltCallback>
+ 800a11e:	0760      	lsls	r0, r4, #29
+ 800a120:	d502      	bpl.n	800a128 <HAL_SUBGHZ_IRQHandler+0x46>
+ 800a122:	4628      	mov	r0, r5
+ 800a124:	f009 fa1c 	bl	8013560 <HAL_SUBGHZ_PreambleDetectedCallback>
+ 800a128:	0721      	lsls	r1, r4, #28
+ 800a12a:	d502      	bpl.n	800a132 <HAL_SUBGHZ_IRQHandler+0x50>
+ 800a12c:	4628      	mov	r0, r5
+ 800a12e:	f009 fa1d 	bl	801356c <HAL_SUBGHZ_SyncWordValidCallback>
+ 800a132:	06e2      	lsls	r2, r4, #27
+ 800a134:	d502      	bpl.n	800a13c <HAL_SUBGHZ_IRQHandler+0x5a>
+ 800a136:	4628      	mov	r0, r5
+ 800a138:	f009 fa1e 	bl	8013578 <HAL_SUBGHZ_HeaderValidCallback>
+ 800a13c:	06a3      	lsls	r3, r4, #26
+ 800a13e:	d502      	bpl.n	800a146 <HAL_SUBGHZ_IRQHandler+0x64>
+ 800a140:	4628      	mov	r0, r5
+ 800a142:	f009 fa07 	bl	8013554 <HAL_SUBGHZ_HeaderErrorCallback>
+ 800a146:	0660      	lsls	r0, r4, #25
+ 800a148:	d502      	bpl.n	800a150 <HAL_SUBGHZ_IRQHandler+0x6e>
+ 800a14a:	4628      	mov	r0, r5
+ 800a14c:	f009 f9e4 	bl	8013518 <HAL_SUBGHZ_CRCErrorCallback>
+ 800a150:	0621      	lsls	r1, r4, #24
+ 800a152:	d506      	bpl.n	800a162 <HAL_SUBGHZ_IRQHandler+0x80>
+ 800a154:	f414 7180 	ands.w	r1, r4, #256	; 0x100
+ 800a158:	bf18      	it	ne
+ 800a15a:	2101      	movne	r1, #1
+ 800a15c:	4628      	mov	r0, r5
+ 800a15e:	f009 f9e1 	bl	8013524 <HAL_SUBGHZ_CADStatusCallback>
+ 800a162:	05a2      	lsls	r2, r4, #22
+ 800a164:	d502      	bpl.n	800a16c <HAL_SUBGHZ_IRQHandler+0x8a>
+ 800a166:	4628      	mov	r0, r5
+ 800a168:	f009 f9ec 	bl	8013544 <HAL_SUBGHZ_RxTxTimeoutCallback>
+ 800a16c:	0463      	lsls	r3, r4, #17
+ 800a16e:	d502      	bpl.n	800a176 <HAL_SUBGHZ_IRQHandler+0x94>
+ 800a170:	4628      	mov	r0, r5
+ 800a172:	f009 fa07 	bl	8013584 <HAL_SUBGHZ_LrFhssHopCallback>
+ 800a176:	b003      	add	sp, #12
+ 800a178:	bd30      	pop	{r4, r5, pc}
+
+0800a17a <HAL_SUBGHZ_WriteBuffer>:
+ 800a17a:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 800a17c:	461e      	mov	r6, r3
+ 800a17e:	7983      	ldrb	r3, [r0, #6]
+ 800a180:	2b01      	cmp	r3, #1
+ 800a182:	4615      	mov	r5, r2
+ 800a184:	4604      	mov	r4, r0
+ 800a186:	460f      	mov	r7, r1
+ 800a188:	b2da      	uxtb	r2, r3
+ 800a18a:	d127      	bne.n	800a1dc <HAL_SUBGHZ_WriteBuffer+0x62>
+ 800a18c:	7943      	ldrb	r3, [r0, #5]
+ 800a18e:	2b01      	cmp	r3, #1
+ 800a190:	d024      	beq.n	800a1dc <HAL_SUBGHZ_WriteBuffer+0x62>
+ 800a192:	7142      	strb	r2, [r0, #5]
+ 800a194:	f7ff feaa 	bl	8009eec <SUBGHZ_CheckDeviceReady>
+ 800a198:	210e      	movs	r1, #14
+ 800a19a:	4620      	mov	r0, r4
+ 800a19c:	f7ff fda0 	bl	8009ce0 <LL_PWR_SelectSUBGHZSPI_NSS>
+ 800a1a0:	f7ff fe16 	bl	8009dd0 <SUBGHZSPI_Transmit>
+ 800a1a4:	4639      	mov	r1, r7
+ 800a1a6:	4620      	mov	r0, r4
+ 800a1a8:	f7ff fe12 	bl	8009dd0 <SUBGHZSPI_Transmit>
+ 800a1ac:	442e      	add	r6, r5
+ 800a1ae:	42b5      	cmp	r5, r6
+ 800a1b0:	d10e      	bne.n	800a1d0 <HAL_SUBGHZ_WriteBuffer+0x56>
+ 800a1b2:	4620      	mov	r0, r4
+ 800a1b4:	f7ff fd8a 	bl	8009ccc <LL_PWR_UnselectSUBGHZSPI_NSS>
+ 800a1b8:	f7ff fe74 	bl	8009ea4 <SUBGHZ_WaitOnBusy>
+ 800a1bc:	68a0      	ldr	r0, [r4, #8]
+ 800a1be:	2301      	movs	r3, #1
+ 800a1c0:	3800      	subs	r0, #0
+ 800a1c2:	71a3      	strb	r3, [r4, #6]
+ 800a1c4:	f04f 0300 	mov.w	r3, #0
+ 800a1c8:	bf18      	it	ne
+ 800a1ca:	2001      	movne	r0, #1
+ 800a1cc:	7163      	strb	r3, [r4, #5]
+ 800a1ce:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 800a1d0:	f815 1b01 	ldrb.w	r1, [r5], #1
+ 800a1d4:	4620      	mov	r0, r4
+ 800a1d6:	f7ff fdfb 	bl	8009dd0 <SUBGHZSPI_Transmit>
+ 800a1da:	e7e8      	b.n	800a1ae <HAL_SUBGHZ_WriteBuffer+0x34>
+ 800a1dc:	2002      	movs	r0, #2
+ 800a1de:	e7f6      	b.n	800a1ce <HAL_SUBGHZ_WriteBuffer+0x54>
+
+0800a1e0 <HAL_SUBGHZ_ReadBuffer>:
+ 800a1e0:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 800a1e2:	461e      	mov	r6, r3
+ 800a1e4:	7983      	ldrb	r3, [r0, #6]
+ 800a1e6:	2b01      	cmp	r3, #1
+ 800a1e8:	4615      	mov	r5, r2
+ 800a1ea:	4604      	mov	r4, r0
+ 800a1ec:	460f      	mov	r7, r1
+ 800a1ee:	b2da      	uxtb	r2, r3
+ 800a1f0:	d12b      	bne.n	800a24a <HAL_SUBGHZ_ReadBuffer+0x6a>
+ 800a1f2:	7943      	ldrb	r3, [r0, #5]
+ 800a1f4:	2b01      	cmp	r3, #1
+ 800a1f6:	d028      	beq.n	800a24a <HAL_SUBGHZ_ReadBuffer+0x6a>
+ 800a1f8:	7142      	strb	r2, [r0, #5]
+ 800a1fa:	f7ff fe77 	bl	8009eec <SUBGHZ_CheckDeviceReady>
+ 800a1fe:	211e      	movs	r1, #30
+ 800a200:	4620      	mov	r0, r4
+ 800a202:	f7ff fd6d 	bl	8009ce0 <LL_PWR_SelectSUBGHZSPI_NSS>
+ 800a206:	f7ff fde3 	bl	8009dd0 <SUBGHZSPI_Transmit>
+ 800a20a:	4639      	mov	r1, r7
+ 800a20c:	4620      	mov	r0, r4
+ 800a20e:	f7ff fddf 	bl	8009dd0 <SUBGHZSPI_Transmit>
+ 800a212:	2100      	movs	r1, #0
+ 800a214:	4620      	mov	r0, r4
+ 800a216:	f7ff fddb 	bl	8009dd0 <SUBGHZSPI_Transmit>
+ 800a21a:	442e      	add	r6, r5
+ 800a21c:	42b5      	cmp	r5, r6
+ 800a21e:	d10e      	bne.n	800a23e <HAL_SUBGHZ_ReadBuffer+0x5e>
+ 800a220:	4620      	mov	r0, r4
+ 800a222:	f7ff fd53 	bl	8009ccc <LL_PWR_UnselectSUBGHZSPI_NSS>
+ 800a226:	f7ff fe3d 	bl	8009ea4 <SUBGHZ_WaitOnBusy>
+ 800a22a:	68a0      	ldr	r0, [r4, #8]
+ 800a22c:	2301      	movs	r3, #1
+ 800a22e:	3800      	subs	r0, #0
+ 800a230:	71a3      	strb	r3, [r4, #6]
+ 800a232:	f04f 0300 	mov.w	r3, #0
+ 800a236:	bf18      	it	ne
+ 800a238:	2001      	movne	r0, #1
+ 800a23a:	7163      	strb	r3, [r4, #5]
+ 800a23c:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 800a23e:	4629      	mov	r1, r5
+ 800a240:	4620      	mov	r0, r4
+ 800a242:	f7ff fdf9 	bl	8009e38 <SUBGHZSPI_Receive>
+ 800a246:	3501      	adds	r5, #1
+ 800a248:	e7e8      	b.n	800a21c <HAL_SUBGHZ_ReadBuffer+0x3c>
+ 800a24a:	2002      	movs	r0, #2
+ 800a24c:	e7f6      	b.n	800a23c <HAL_SUBGHZ_ReadBuffer+0x5c>
+
+0800a24e <UART_EndTxTransfer>:
+ 800a24e:	6802      	ldr	r2, [r0, #0]
+ 800a250:	e852 3f00 	ldrex	r3, [r2]
+ 800a254:	f023 03c0 	bic.w	r3, r3, #192	; 0xc0
+ 800a258:	e842 3100 	strex	r1, r3, [r2]
+ 800a25c:	6802      	ldr	r2, [r0, #0]
+ 800a25e:	2900      	cmp	r1, #0
+ 800a260:	d1f5      	bne.n	800a24e <UART_EndTxTransfer>
+ 800a262:	f102 0308 	add.w	r3, r2, #8
+ 800a266:	e853 3f00 	ldrex	r3, [r3]
+ 800a26a:	f423 0300 	bic.w	r3, r3, #8388608	; 0x800000
+ 800a26e:	f102 0c08 	add.w	ip, r2, #8
+ 800a272:	e84c 3100 	strex	r1, r3, [ip]
+ 800a276:	2900      	cmp	r1, #0
+ 800a278:	d1f3      	bne.n	800a262 <UART_EndTxTransfer+0x14>
+ 800a27a:	2320      	movs	r3, #32
+ 800a27c:	f8c0 3088 	str.w	r3, [r0, #136]	; 0x88
+ 800a280:	4770      	bx	lr
+	...
+
+0800a284 <UART_EndRxTransfer>:
+ 800a284:	b510      	push	{r4, lr}
+ 800a286:	6802      	ldr	r2, [r0, #0]
+ 800a288:	e852 3f00 	ldrex	r3, [r2]
+ 800a28c:	f423 7390 	bic.w	r3, r3, #288	; 0x120
+ 800a290:	e842 3100 	strex	r1, r3, [r2]
+ 800a294:	6802      	ldr	r2, [r0, #0]
+ 800a296:	2900      	cmp	r1, #0
+ 800a298:	d1f5      	bne.n	800a286 <UART_EndRxTransfer+0x2>
+ 800a29a:	4c0f      	ldr	r4, [pc, #60]	; (800a2d8 <UART_EndRxTransfer+0x54>)
+ 800a29c:	f102 0308 	add.w	r3, r2, #8
+ 800a2a0:	e853 3f00 	ldrex	r3, [r3]
+ 800a2a4:	4023      	ands	r3, r4
+ 800a2a6:	f102 0c08 	add.w	ip, r2, #8
+ 800a2aa:	e84c 3100 	strex	r1, r3, [ip]
+ 800a2ae:	2900      	cmp	r1, #0
+ 800a2b0:	d1f4      	bne.n	800a29c <UART_EndRxTransfer+0x18>
+ 800a2b2:	6ec3      	ldr	r3, [r0, #108]	; 0x6c
+ 800a2b4:	2b01      	cmp	r3, #1
+ 800a2b6:	d107      	bne.n	800a2c8 <UART_EndRxTransfer+0x44>
+ 800a2b8:	e852 3f00 	ldrex	r3, [r2]
+ 800a2bc:	f023 0310 	bic.w	r3, r3, #16
+ 800a2c0:	e842 3100 	strex	r1, r3, [r2]
+ 800a2c4:	2900      	cmp	r1, #0
+ 800a2c6:	d1f7      	bne.n	800a2b8 <UART_EndRxTransfer+0x34>
+ 800a2c8:	2320      	movs	r3, #32
+ 800a2ca:	f8c0 308c 	str.w	r3, [r0, #140]	; 0x8c
+ 800a2ce:	2300      	movs	r3, #0
+ 800a2d0:	66c3      	str	r3, [r0, #108]	; 0x6c
+ 800a2d2:	6743      	str	r3, [r0, #116]	; 0x74
+ 800a2d4:	bd10      	pop	{r4, pc}
+ 800a2d6:	bf00      	nop
+ 800a2d8:	effffffe 	.word	0xeffffffe
+
+0800a2dc <HAL_UART_Transmit_DMA>:
+ 800a2dc:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 800a2de:	4604      	mov	r4, r0
+ 800a2e0:	4613      	mov	r3, r2
+ 800a2e2:	f8d4 5088 	ldr.w	r5, [r4, #136]	; 0x88
+ 800a2e6:	2d20      	cmp	r5, #32
+ 800a2e8:	d132      	bne.n	800a350 <HAL_UART_Transmit_DMA+0x74>
+ 800a2ea:	b1f1      	cbz	r1, 800a32a <HAL_UART_Transmit_DMA+0x4e>
+ 800a2ec:	b1ea      	cbz	r2, 800a32a <HAL_UART_Transmit_DMA+0x4e>
+ 800a2ee:	6fe0      	ldr	r0, [r4, #124]	; 0x7c
+ 800a2f0:	f8a4 2056 	strh.w	r2, [r4, #86]	; 0x56
+ 800a2f4:	f8a4 2054 	strh.w	r2, [r4, #84]	; 0x54
+ 800a2f8:	2600      	movs	r6, #0
+ 800a2fa:	2221      	movs	r2, #33	; 0x21
+ 800a2fc:	f8c4 6090 	str.w	r6, [r4, #144]	; 0x90
+ 800a300:	6521      	str	r1, [r4, #80]	; 0x50
+ 800a302:	f8c4 2088 	str.w	r2, [r4, #136]	; 0x88
+ 800a306:	6822      	ldr	r2, [r4, #0]
+ 800a308:	b188      	cbz	r0, 800a32e <HAL_UART_Transmit_DMA+0x52>
+ 800a30a:	4f12      	ldr	r7, [pc, #72]	; (800a354 <HAL_UART_Transmit_DMA+0x78>)
+ 800a30c:	62c7      	str	r7, [r0, #44]	; 0x2c
+ 800a30e:	4f12      	ldr	r7, [pc, #72]	; (800a358 <HAL_UART_Transmit_DMA+0x7c>)
+ 800a310:	6307      	str	r7, [r0, #48]	; 0x30
+ 800a312:	4f12      	ldr	r7, [pc, #72]	; (800a35c <HAL_UART_Transmit_DMA+0x80>)
+ 800a314:	3228      	adds	r2, #40	; 0x28
+ 800a316:	e9c0 760d 	strd	r7, r6, [r0, #52]	; 0x34
+ 800a31a:	f7fd fe45 	bl	8007fa8 <HAL_DMA_Start_IT>
+ 800a31e:	b130      	cbz	r0, 800a32e <HAL_UART_Transmit_DMA+0x52>
+ 800a320:	2310      	movs	r3, #16
+ 800a322:	f8c4 3090 	str.w	r3, [r4, #144]	; 0x90
+ 800a326:	f8c4 5088 	str.w	r5, [r4, #136]	; 0x88
+ 800a32a:	2001      	movs	r0, #1
+ 800a32c:	e00f      	b.n	800a34e <HAL_UART_Transmit_DMA+0x72>
+ 800a32e:	6823      	ldr	r3, [r4, #0]
+ 800a330:	2240      	movs	r2, #64	; 0x40
+ 800a332:	621a      	str	r2, [r3, #32]
+ 800a334:	6822      	ldr	r2, [r4, #0]
+ 800a336:	f102 0308 	add.w	r3, r2, #8
+ 800a33a:	e853 3f00 	ldrex	r3, [r3]
+ 800a33e:	f043 0380 	orr.w	r3, r3, #128	; 0x80
+ 800a342:	f102 0108 	add.w	r1, r2, #8
+ 800a346:	e841 3000 	strex	r0, r3, [r1]
+ 800a34a:	2800      	cmp	r0, #0
+ 800a34c:	d1f3      	bne.n	800a336 <HAL_UART_Transmit_DMA+0x5a>
+ 800a34e:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 800a350:	2002      	movs	r0, #2
+ 800a352:	e7fc      	b.n	800a34e <HAL_UART_Transmit_DMA+0x72>
+ 800a354:	0800a361 	.word	0x0800a361
+ 800a358:	0800a3a9 	.word	0x0800a3a9
+ 800a35c:	0800a3b5 	.word	0x0800a3b5
+
+0800a360 <UART_DMATransmitCplt>:
+ 800a360:	b508      	push	{r3, lr}
+ 800a362:	4603      	mov	r3, r0
+ 800a364:	6a80      	ldr	r0, [r0, #40]	; 0x28
+ 800a366:	681b      	ldr	r3, [r3, #0]
+ 800a368:	681b      	ldr	r3, [r3, #0]
+ 800a36a:	f013 0320 	ands.w	r3, r3, #32
+ 800a36e:	d117      	bne.n	800a3a0 <UART_DMATransmitCplt+0x40>
+ 800a370:	f8a0 3056 	strh.w	r3, [r0, #86]	; 0x56
+ 800a374:	6802      	ldr	r2, [r0, #0]
+ 800a376:	f102 0308 	add.w	r3, r2, #8
+ 800a37a:	e853 3f00 	ldrex	r3, [r3]
+ 800a37e:	f023 0380 	bic.w	r3, r3, #128	; 0x80
+ 800a382:	3208      	adds	r2, #8
+ 800a384:	e842 3100 	strex	r1, r3, [r2]
+ 800a388:	6802      	ldr	r2, [r0, #0]
+ 800a38a:	2900      	cmp	r1, #0
+ 800a38c:	d1f2      	bne.n	800a374 <UART_DMATransmitCplt+0x14>
+ 800a38e:	e852 3f00 	ldrex	r3, [r2]
+ 800a392:	f043 0340 	orr.w	r3, r3, #64	; 0x40
+ 800a396:	e842 3100 	strex	r1, r3, [r2]
+ 800a39a:	2900      	cmp	r1, #0
+ 800a39c:	d1f7      	bne.n	800a38e <UART_DMATransmitCplt+0x2e>
+ 800a39e:	bd08      	pop	{r3, pc}
+ 800a3a0:	f7f8 fea8 	bl	80030f4 <HAL_UART_TxCpltCallback>
+ 800a3a4:	e7fb      	b.n	800a39e <UART_DMATransmitCplt+0x3e>
+
+0800a3a6 <HAL_UART_TxHalfCpltCallback>:
+ 800a3a6:	4770      	bx	lr
+
+0800a3a8 <UART_DMATxHalfCplt>:
+ 800a3a8:	b508      	push	{r3, lr}
+ 800a3aa:	6a80      	ldr	r0, [r0, #40]	; 0x28
+ 800a3ac:	f7ff fffb 	bl	800a3a6 <HAL_UART_TxHalfCpltCallback>
+ 800a3b0:	bd08      	pop	{r3, pc}
+
+0800a3b2 <HAL_UART_ErrorCallback>:
+ 800a3b2:	4770      	bx	lr
+
+0800a3b4 <UART_DMAError>:
+ 800a3b4:	6a80      	ldr	r0, [r0, #40]	; 0x28
+ 800a3b6:	b538      	push	{r3, r4, r5, lr}
+ 800a3b8:	6804      	ldr	r4, [r0, #0]
+ 800a3ba:	f8d0 3088 	ldr.w	r3, [r0, #136]	; 0x88
+ 800a3be:	f8d0 508c 	ldr.w	r5, [r0, #140]	; 0x8c
+ 800a3c2:	68a2      	ldr	r2, [r4, #8]
+ 800a3c4:	0612      	lsls	r2, r2, #24
+ 800a3c6:	d506      	bpl.n	800a3d6 <UART_DMAError+0x22>
+ 800a3c8:	2b21      	cmp	r3, #33	; 0x21
+ 800a3ca:	d104      	bne.n	800a3d6 <UART_DMAError+0x22>
+ 800a3cc:	2300      	movs	r3, #0
+ 800a3ce:	f8a0 3056 	strh.w	r3, [r0, #86]	; 0x56
+ 800a3d2:	f7ff ff3c 	bl	800a24e <UART_EndTxTransfer>
+ 800a3d6:	68a3      	ldr	r3, [r4, #8]
+ 800a3d8:	065b      	lsls	r3, r3, #25
+ 800a3da:	d506      	bpl.n	800a3ea <UART_DMAError+0x36>
+ 800a3dc:	2d22      	cmp	r5, #34	; 0x22
+ 800a3de:	d104      	bne.n	800a3ea <UART_DMAError+0x36>
+ 800a3e0:	2300      	movs	r3, #0
+ 800a3e2:	f8a0 305e 	strh.w	r3, [r0, #94]	; 0x5e
+ 800a3e6:	f7ff ff4d 	bl	800a284 <UART_EndRxTransfer>
+ 800a3ea:	f8d0 3090 	ldr.w	r3, [r0, #144]	; 0x90
+ 800a3ee:	f043 0310 	orr.w	r3, r3, #16
+ 800a3f2:	f8c0 3090 	str.w	r3, [r0, #144]	; 0x90
+ 800a3f6:	f7ff ffdc 	bl	800a3b2 <HAL_UART_ErrorCallback>
+ 800a3fa:	bd38      	pop	{r3, r4, r5, pc}
+
+0800a3fc <UART_DMAAbortOnError>:
+ 800a3fc:	b508      	push	{r3, lr}
+ 800a3fe:	6a80      	ldr	r0, [r0, #40]	; 0x28
+ 800a400:	2300      	movs	r3, #0
+ 800a402:	f8a0 305e 	strh.w	r3, [r0, #94]	; 0x5e
+ 800a406:	f8a0 3056 	strh.w	r3, [r0, #86]	; 0x56
+ 800a40a:	f7ff ffd2 	bl	800a3b2 <HAL_UART_ErrorCallback>
+ 800a40e:	bd08      	pop	{r3, pc}
+
+0800a410 <HAL_UARTEx_RxEventCallback>:
+ 800a410:	4770      	bx	lr
+	...
+
+0800a414 <HAL_UART_IRQHandler>:
+ 800a414:	6803      	ldr	r3, [r0, #0]
+ 800a416:	69d9      	ldr	r1, [r3, #28]
+ 800a418:	681a      	ldr	r2, [r3, #0]
+ 800a41a:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800a41e:	f640 060f 	movw	r6, #2063	; 0x80f
+ 800a422:	4231      	tst	r1, r6
+ 800a424:	689d      	ldr	r5, [r3, #8]
+ 800a426:	4604      	mov	r4, r0
+ 800a428:	d110      	bne.n	800a44c <HAL_UART_IRQHandler+0x38>
+ 800a42a:	068e      	lsls	r6, r1, #26
+ 800a42c:	f140 8097 	bpl.w	800a55e <HAL_UART_IRQHandler+0x14a>
+ 800a430:	f002 0620 	and.w	r6, r2, #32
+ 800a434:	f005 5780 	and.w	r7, r5, #268435456	; 0x10000000
+ 800a438:	433e      	orrs	r6, r7
+ 800a43a:	f000 8090 	beq.w	800a55e <HAL_UART_IRQHandler+0x14a>
+ 800a43e:	6f43      	ldr	r3, [r0, #116]	; 0x74
+ 800a440:	2b00      	cmp	r3, #0
+ 800a442:	f000 8085 	beq.w	800a550 <HAL_UART_IRQHandler+0x13c>
+ 800a446:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
+ 800a44a:	4718      	bx	r3
+ 800a44c:	4eab      	ldr	r6, [pc, #684]	; (800a6fc <HAL_UART_IRQHandler+0x2e8>)
+ 800a44e:	48ac      	ldr	r0, [pc, #688]	; (800a700 <HAL_UART_IRQHandler+0x2ec>)
+ 800a450:	402e      	ands	r6, r5
+ 800a452:	4010      	ands	r0, r2
+ 800a454:	4330      	orrs	r0, r6
+ 800a456:	f000 8082 	beq.w	800a55e <HAL_UART_IRQHandler+0x14a>
+ 800a45a:	07cf      	lsls	r7, r1, #31
+ 800a45c:	d509      	bpl.n	800a472 <HAL_UART_IRQHandler+0x5e>
+ 800a45e:	05d0      	lsls	r0, r2, #23
+ 800a460:	d507      	bpl.n	800a472 <HAL_UART_IRQHandler+0x5e>
+ 800a462:	2001      	movs	r0, #1
+ 800a464:	6218      	str	r0, [r3, #32]
+ 800a466:	f8d4 0090 	ldr.w	r0, [r4, #144]	; 0x90
+ 800a46a:	f040 0001 	orr.w	r0, r0, #1
+ 800a46e:	f8c4 0090 	str.w	r0, [r4, #144]	; 0x90
+ 800a472:	078f      	lsls	r7, r1, #30
+ 800a474:	d509      	bpl.n	800a48a <HAL_UART_IRQHandler+0x76>
+ 800a476:	07e8      	lsls	r0, r5, #31
+ 800a478:	d507      	bpl.n	800a48a <HAL_UART_IRQHandler+0x76>
+ 800a47a:	2002      	movs	r0, #2
+ 800a47c:	6218      	str	r0, [r3, #32]
+ 800a47e:	f8d4 0090 	ldr.w	r0, [r4, #144]	; 0x90
+ 800a482:	f040 0004 	orr.w	r0, r0, #4
+ 800a486:	f8c4 0090 	str.w	r0, [r4, #144]	; 0x90
+ 800a48a:	074f      	lsls	r7, r1, #29
+ 800a48c:	d509      	bpl.n	800a4a2 <HAL_UART_IRQHandler+0x8e>
+ 800a48e:	07e8      	lsls	r0, r5, #31
+ 800a490:	d507      	bpl.n	800a4a2 <HAL_UART_IRQHandler+0x8e>
+ 800a492:	2004      	movs	r0, #4
+ 800a494:	6218      	str	r0, [r3, #32]
+ 800a496:	f8d4 0090 	ldr.w	r0, [r4, #144]	; 0x90
+ 800a49a:	f040 0002 	orr.w	r0, r0, #2
+ 800a49e:	f8c4 0090 	str.w	r0, [r4, #144]	; 0x90
+ 800a4a2:	070f      	lsls	r7, r1, #28
+ 800a4a4:	d50b      	bpl.n	800a4be <HAL_UART_IRQHandler+0xaa>
+ 800a4a6:	f002 0020 	and.w	r0, r2, #32
+ 800a4aa:	4330      	orrs	r0, r6
+ 800a4ac:	d007      	beq.n	800a4be <HAL_UART_IRQHandler+0xaa>
+ 800a4ae:	2008      	movs	r0, #8
+ 800a4b0:	6218      	str	r0, [r3, #32]
+ 800a4b2:	f8d4 0090 	ldr.w	r0, [r4, #144]	; 0x90
+ 800a4b6:	f040 0008 	orr.w	r0, r0, #8
+ 800a4ba:	f8c4 0090 	str.w	r0, [r4, #144]	; 0x90
+ 800a4be:	050e      	lsls	r6, r1, #20
+ 800a4c0:	d50a      	bpl.n	800a4d8 <HAL_UART_IRQHandler+0xc4>
+ 800a4c2:	0150      	lsls	r0, r2, #5
+ 800a4c4:	d508      	bpl.n	800a4d8 <HAL_UART_IRQHandler+0xc4>
+ 800a4c6:	f44f 6000 	mov.w	r0, #2048	; 0x800
+ 800a4ca:	6218      	str	r0, [r3, #32]
+ 800a4cc:	f8d4 3090 	ldr.w	r3, [r4, #144]	; 0x90
+ 800a4d0:	f043 0320 	orr.w	r3, r3, #32
+ 800a4d4:	f8c4 3090 	str.w	r3, [r4, #144]	; 0x90
+ 800a4d8:	f8d4 3090 	ldr.w	r3, [r4, #144]	; 0x90
+ 800a4dc:	2b00      	cmp	r3, #0
+ 800a4de:	d037      	beq.n	800a550 <HAL_UART_IRQHandler+0x13c>
+ 800a4e0:	068b      	lsls	r3, r1, #26
+ 800a4e2:	d509      	bpl.n	800a4f8 <HAL_UART_IRQHandler+0xe4>
+ 800a4e4:	f002 0220 	and.w	r2, r2, #32
+ 800a4e8:	f005 5580 	and.w	r5, r5, #268435456	; 0x10000000
+ 800a4ec:	432a      	orrs	r2, r5
+ 800a4ee:	d003      	beq.n	800a4f8 <HAL_UART_IRQHandler+0xe4>
+ 800a4f0:	6f63      	ldr	r3, [r4, #116]	; 0x74
+ 800a4f2:	b10b      	cbz	r3, 800a4f8 <HAL_UART_IRQHandler+0xe4>
+ 800a4f4:	4620      	mov	r0, r4
+ 800a4f6:	4798      	blx	r3
+ 800a4f8:	6826      	ldr	r6, [r4, #0]
+ 800a4fa:	f8d4 2090 	ldr.w	r2, [r4, #144]	; 0x90
+ 800a4fe:	68b3      	ldr	r3, [r6, #8]
+ 800a500:	f002 0228 	and.w	r2, r2, #40	; 0x28
+ 800a504:	f003 0340 	and.w	r3, r3, #64	; 0x40
+ 800a508:	ea53 0502 	orrs.w	r5, r3, r2
+ 800a50c:	4620      	mov	r0, r4
+ 800a50e:	d021      	beq.n	800a554 <HAL_UART_IRQHandler+0x140>
+ 800a510:	f7ff feb8 	bl	800a284 <UART_EndRxTransfer>
+ 800a514:	68b3      	ldr	r3, [r6, #8]
+ 800a516:	065f      	lsls	r7, r3, #25
+ 800a518:	d517      	bpl.n	800a54a <HAL_UART_IRQHandler+0x136>
+ 800a51a:	6822      	ldr	r2, [r4, #0]
+ 800a51c:	f102 0308 	add.w	r3, r2, #8
+ 800a520:	e853 3f00 	ldrex	r3, [r3]
+ 800a524:	f023 0340 	bic.w	r3, r3, #64	; 0x40
+ 800a528:	3208      	adds	r2, #8
+ 800a52a:	e842 3100 	strex	r1, r3, [r2]
+ 800a52e:	2900      	cmp	r1, #0
+ 800a530:	d1f3      	bne.n	800a51a <HAL_UART_IRQHandler+0x106>
+ 800a532:	f8d4 0080 	ldr.w	r0, [r4, #128]	; 0x80
+ 800a536:	b140      	cbz	r0, 800a54a <HAL_UART_IRQHandler+0x136>
+ 800a538:	4b72      	ldr	r3, [pc, #456]	; (800a704 <HAL_UART_IRQHandler+0x2f0>)
+ 800a53a:	6383      	str	r3, [r0, #56]	; 0x38
+ 800a53c:	f7fd fdad 	bl	800809a <HAL_DMA_Abort_IT>
+ 800a540:	b130      	cbz	r0, 800a550 <HAL_UART_IRQHandler+0x13c>
+ 800a542:	f8d4 0080 	ldr.w	r0, [r4, #128]	; 0x80
+ 800a546:	6b83      	ldr	r3, [r0, #56]	; 0x38
+ 800a548:	e77d      	b.n	800a446 <HAL_UART_IRQHandler+0x32>
+ 800a54a:	4620      	mov	r0, r4
+ 800a54c:	f7ff ff31 	bl	800a3b2 <HAL_UART_ErrorCallback>
+ 800a550:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800a554:	f7ff ff2d 	bl	800a3b2 <HAL_UART_ErrorCallback>
+ 800a558:	f8c4 5090 	str.w	r5, [r4, #144]	; 0x90
+ 800a55c:	e7f8      	b.n	800a550 <HAL_UART_IRQHandler+0x13c>
+ 800a55e:	6ee0      	ldr	r0, [r4, #108]	; 0x6c
+ 800a560:	2801      	cmp	r0, #1
+ 800a562:	f040 8089 	bne.w	800a678 <HAL_UART_IRQHandler+0x264>
+ 800a566:	06ce      	lsls	r6, r1, #27
+ 800a568:	f140 8086 	bpl.w	800a678 <HAL_UART_IRQHandler+0x264>
+ 800a56c:	06d0      	lsls	r0, r2, #27
+ 800a56e:	f140 8083 	bpl.w	800a678 <HAL_UART_IRQHandler+0x264>
+ 800a572:	2210      	movs	r2, #16
+ 800a574:	621a      	str	r2, [r3, #32]
+ 800a576:	689a      	ldr	r2, [r3, #8]
+ 800a578:	0651      	lsls	r1, r2, #25
+ 800a57a:	d54b      	bpl.n	800a614 <HAL_UART_IRQHandler+0x200>
+ 800a57c:	f8d4 2080 	ldr.w	r2, [r4, #128]	; 0x80
+ 800a580:	6811      	ldr	r1, [r2, #0]
+ 800a582:	684a      	ldr	r2, [r1, #4]
+ 800a584:	b292      	uxth	r2, r2
+ 800a586:	2a00      	cmp	r2, #0
+ 800a588:	d0e2      	beq.n	800a550 <HAL_UART_IRQHandler+0x13c>
+ 800a58a:	f8b4 005c 	ldrh.w	r0, [r4, #92]	; 0x5c
+ 800a58e:	4290      	cmp	r0, r2
+ 800a590:	d9de      	bls.n	800a550 <HAL_UART_IRQHandler+0x13c>
+ 800a592:	f8a4 205e 	strh.w	r2, [r4, #94]	; 0x5e
+ 800a596:	680a      	ldr	r2, [r1, #0]
+ 800a598:	0692      	lsls	r2, r2, #26
+ 800a59a:	d42f      	bmi.n	800a5fc <HAL_UART_IRQHandler+0x1e8>
+ 800a59c:	e853 2f00 	ldrex	r2, [r3]
+ 800a5a0:	f422 7280 	bic.w	r2, r2, #256	; 0x100
+ 800a5a4:	e843 2100 	strex	r1, r2, [r3]
+ 800a5a8:	2900      	cmp	r1, #0
+ 800a5aa:	d1f7      	bne.n	800a59c <HAL_UART_IRQHandler+0x188>
+ 800a5ac:	f103 0208 	add.w	r2, r3, #8
+ 800a5b0:	e852 2f00 	ldrex	r2, [r2]
+ 800a5b4:	f022 0201 	bic.w	r2, r2, #1
+ 800a5b8:	f103 0008 	add.w	r0, r3, #8
+ 800a5bc:	e840 2100 	strex	r1, r2, [r0]
+ 800a5c0:	2900      	cmp	r1, #0
+ 800a5c2:	d1f3      	bne.n	800a5ac <HAL_UART_IRQHandler+0x198>
+ 800a5c4:	f103 0208 	add.w	r2, r3, #8
+ 800a5c8:	e852 2f00 	ldrex	r2, [r2]
+ 800a5cc:	f022 0240 	bic.w	r2, r2, #64	; 0x40
+ 800a5d0:	f103 0008 	add.w	r0, r3, #8
+ 800a5d4:	e840 2100 	strex	r1, r2, [r0]
+ 800a5d8:	2900      	cmp	r1, #0
+ 800a5da:	d1f3      	bne.n	800a5c4 <HAL_UART_IRQHandler+0x1b0>
+ 800a5dc:	2220      	movs	r2, #32
+ 800a5de:	f8c4 208c 	str.w	r2, [r4, #140]	; 0x8c
+ 800a5e2:	66e1      	str	r1, [r4, #108]	; 0x6c
+ 800a5e4:	e853 2f00 	ldrex	r2, [r3]
+ 800a5e8:	f022 0210 	bic.w	r2, r2, #16
+ 800a5ec:	e843 2100 	strex	r1, r2, [r3]
+ 800a5f0:	2900      	cmp	r1, #0
+ 800a5f2:	d1f7      	bne.n	800a5e4 <HAL_UART_IRQHandler+0x1d0>
+ 800a5f4:	f8d4 0080 	ldr.w	r0, [r4, #128]	; 0x80
+ 800a5f8:	f7fd fd1a 	bl	8008030 <HAL_DMA_Abort>
+ 800a5fc:	2302      	movs	r3, #2
+ 800a5fe:	6723      	str	r3, [r4, #112]	; 0x70
+ 800a600:	f8b4 305e 	ldrh.w	r3, [r4, #94]	; 0x5e
+ 800a604:	f8b4 105c 	ldrh.w	r1, [r4, #92]	; 0x5c
+ 800a608:	1ac9      	subs	r1, r1, r3
+ 800a60a:	b289      	uxth	r1, r1
+ 800a60c:	4620      	mov	r0, r4
+ 800a60e:	f7ff feff 	bl	800a410 <HAL_UARTEx_RxEventCallback>
+ 800a612:	e79d      	b.n	800a550 <HAL_UART_IRQHandler+0x13c>
+ 800a614:	f8b4 205e 	ldrh.w	r2, [r4, #94]	; 0x5e
+ 800a618:	f8b4 005e 	ldrh.w	r0, [r4, #94]	; 0x5e
+ 800a61c:	f8b4 105c 	ldrh.w	r1, [r4, #92]	; 0x5c
+ 800a620:	b280      	uxth	r0, r0
+ 800a622:	b292      	uxth	r2, r2
+ 800a624:	2800      	cmp	r0, #0
+ 800a626:	d093      	beq.n	800a550 <HAL_UART_IRQHandler+0x13c>
+ 800a628:	1a89      	subs	r1, r1, r2
+ 800a62a:	b289      	uxth	r1, r1
+ 800a62c:	2900      	cmp	r1, #0
+ 800a62e:	d08f      	beq.n	800a550 <HAL_UART_IRQHandler+0x13c>
+ 800a630:	e853 2f00 	ldrex	r2, [r3]
+ 800a634:	f422 7290 	bic.w	r2, r2, #288	; 0x120
+ 800a638:	e843 2000 	strex	r0, r2, [r3]
+ 800a63c:	2800      	cmp	r0, #0
+ 800a63e:	d1f7      	bne.n	800a630 <HAL_UART_IRQHandler+0x21c>
+ 800a640:	4d31      	ldr	r5, [pc, #196]	; (800a708 <HAL_UART_IRQHandler+0x2f4>)
+ 800a642:	f103 0208 	add.w	r2, r3, #8
+ 800a646:	e852 2f00 	ldrex	r2, [r2]
+ 800a64a:	402a      	ands	r2, r5
+ 800a64c:	f103 0608 	add.w	r6, r3, #8
+ 800a650:	e846 2000 	strex	r0, r2, [r6]
+ 800a654:	2800      	cmp	r0, #0
+ 800a656:	d1f4      	bne.n	800a642 <HAL_UART_IRQHandler+0x22e>
+ 800a658:	2220      	movs	r2, #32
+ 800a65a:	f8c4 208c 	str.w	r2, [r4, #140]	; 0x8c
+ 800a65e:	6760      	str	r0, [r4, #116]	; 0x74
+ 800a660:	66e0      	str	r0, [r4, #108]	; 0x6c
+ 800a662:	e853 2f00 	ldrex	r2, [r3]
+ 800a666:	f022 0210 	bic.w	r2, r2, #16
+ 800a66a:	e843 2000 	strex	r0, r2, [r3]
+ 800a66e:	2800      	cmp	r0, #0
+ 800a670:	d1f7      	bne.n	800a662 <HAL_UART_IRQHandler+0x24e>
+ 800a672:	2302      	movs	r3, #2
+ 800a674:	6723      	str	r3, [r4, #112]	; 0x70
+ 800a676:	e7c9      	b.n	800a60c <HAL_UART_IRQHandler+0x1f8>
+ 800a678:	02cf      	lsls	r7, r1, #11
+ 800a67a:	d509      	bpl.n	800a690 <HAL_UART_IRQHandler+0x27c>
+ 800a67c:	026e      	lsls	r6, r5, #9
+ 800a67e:	d507      	bpl.n	800a690 <HAL_UART_IRQHandler+0x27c>
+ 800a680:	f44f 1280 	mov.w	r2, #1048576	; 0x100000
+ 800a684:	4620      	mov	r0, r4
+ 800a686:	621a      	str	r2, [r3, #32]
+ 800a688:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
+ 800a68c:	f000 bda0 	b.w	800b1d0 <HAL_UARTEx_WakeupCallback>
+ 800a690:	0608      	lsls	r0, r1, #24
+ 800a692:	d50b      	bpl.n	800a6ac <HAL_UART_IRQHandler+0x298>
+ 800a694:	f002 0080 	and.w	r0, r2, #128	; 0x80
+ 800a698:	f405 0500 	and.w	r5, r5, #8388608	; 0x800000
+ 800a69c:	4328      	orrs	r0, r5
+ 800a69e:	d005      	beq.n	800a6ac <HAL_UART_IRQHandler+0x298>
+ 800a6a0:	6fa3      	ldr	r3, [r4, #120]	; 0x78
+ 800a6a2:	2b00      	cmp	r3, #0
+ 800a6a4:	f43f af54 	beq.w	800a550 <HAL_UART_IRQHandler+0x13c>
+ 800a6a8:	4620      	mov	r0, r4
+ 800a6aa:	e6cc      	b.n	800a446 <HAL_UART_IRQHandler+0x32>
+ 800a6ac:	064f      	lsls	r7, r1, #25
+ 800a6ae:	d511      	bpl.n	800a6d4 <HAL_UART_IRQHandler+0x2c0>
+ 800a6b0:	0656      	lsls	r6, r2, #25
+ 800a6b2:	d50f      	bpl.n	800a6d4 <HAL_UART_IRQHandler+0x2c0>
+ 800a6b4:	e853 2f00 	ldrex	r2, [r3]
+ 800a6b8:	f022 0240 	bic.w	r2, r2, #64	; 0x40
+ 800a6bc:	e843 2100 	strex	r1, r2, [r3]
+ 800a6c0:	2900      	cmp	r1, #0
+ 800a6c2:	d1f7      	bne.n	800a6b4 <HAL_UART_IRQHandler+0x2a0>
+ 800a6c4:	2320      	movs	r3, #32
+ 800a6c6:	f8c4 3088 	str.w	r3, [r4, #136]	; 0x88
+ 800a6ca:	67a1      	str	r1, [r4, #120]	; 0x78
+ 800a6cc:	4620      	mov	r0, r4
+ 800a6ce:	f7f8 fd11 	bl	80030f4 <HAL_UART_TxCpltCallback>
+ 800a6d2:	e73d      	b.n	800a550 <HAL_UART_IRQHandler+0x13c>
+ 800a6d4:	020d      	lsls	r5, r1, #8
+ 800a6d6:	d506      	bpl.n	800a6e6 <HAL_UART_IRQHandler+0x2d2>
+ 800a6d8:	0050      	lsls	r0, r2, #1
+ 800a6da:	d504      	bpl.n	800a6e6 <HAL_UART_IRQHandler+0x2d2>
+ 800a6dc:	4620      	mov	r0, r4
+ 800a6de:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
+ 800a6e2:	f000 bd77 	b.w	800b1d4 <HAL_UARTEx_TxFifoEmptyCallback>
+ 800a6e6:	01cb      	lsls	r3, r1, #7
+ 800a6e8:	f57f af32 	bpl.w	800a550 <HAL_UART_IRQHandler+0x13c>
+ 800a6ec:	2a00      	cmp	r2, #0
+ 800a6ee:	f6bf af2f 	bge.w	800a550 <HAL_UART_IRQHandler+0x13c>
+ 800a6f2:	4620      	mov	r0, r4
+ 800a6f4:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
+ 800a6f8:	f000 bd6b 	b.w	800b1d2 <HAL_UARTEx_RxFifoFullCallback>
+ 800a6fc:	10000001 	.word	0x10000001
+ 800a700:	04000120 	.word	0x04000120
+ 800a704:	0800a3fd 	.word	0x0800a3fd
+ 800a708:	effffffe 	.word	0xeffffffe
+
+0800a70c <UART_RxISR_8BIT>:
+ 800a70c:	f8d0 208c 	ldr.w	r2, [r0, #140]	; 0x8c
+ 800a710:	f8b0 1060 	ldrh.w	r1, [r0, #96]	; 0x60
+ 800a714:	2a22      	cmp	r2, #34	; 0x22
+ 800a716:	b508      	push	{r3, lr}
+ 800a718:	6803      	ldr	r3, [r0, #0]
+ 800a71a:	d155      	bne.n	800a7c8 <UART_RxISR_8BIT+0xbc>
+ 800a71c:	6a5b      	ldr	r3, [r3, #36]	; 0x24
+ 800a71e:	6d82      	ldr	r2, [r0, #88]	; 0x58
+ 800a720:	400b      	ands	r3, r1
+ 800a722:	7013      	strb	r3, [r2, #0]
+ 800a724:	6d83      	ldr	r3, [r0, #88]	; 0x58
+ 800a726:	3301      	adds	r3, #1
+ 800a728:	6583      	str	r3, [r0, #88]	; 0x58
+ 800a72a:	f8b0 305e 	ldrh.w	r3, [r0, #94]	; 0x5e
+ 800a72e:	3b01      	subs	r3, #1
+ 800a730:	b29b      	uxth	r3, r3
+ 800a732:	f8a0 305e 	strh.w	r3, [r0, #94]	; 0x5e
+ 800a736:	f8b0 305e 	ldrh.w	r3, [r0, #94]	; 0x5e
+ 800a73a:	b29b      	uxth	r3, r3
+ 800a73c:	2b00      	cmp	r3, #0
+ 800a73e:	d142      	bne.n	800a7c6 <UART_RxISR_8BIT+0xba>
+ 800a740:	6802      	ldr	r2, [r0, #0]
+ 800a742:	e852 3f00 	ldrex	r3, [r2]
+ 800a746:	f423 7390 	bic.w	r3, r3, #288	; 0x120
+ 800a74a:	e842 3100 	strex	r1, r3, [r2]
+ 800a74e:	6803      	ldr	r3, [r0, #0]
+ 800a750:	2900      	cmp	r1, #0
+ 800a752:	d1f5      	bne.n	800a740 <UART_RxISR_8BIT+0x34>
+ 800a754:	f103 0208 	add.w	r2, r3, #8
+ 800a758:	e852 2f00 	ldrex	r2, [r2]
+ 800a75c:	f022 0201 	bic.w	r2, r2, #1
+ 800a760:	f103 0c08 	add.w	ip, r3, #8
+ 800a764:	e84c 2100 	strex	r1, r2, [ip]
+ 800a768:	2900      	cmp	r1, #0
+ 800a76a:	d1f3      	bne.n	800a754 <UART_RxISR_8BIT+0x48>
+ 800a76c:	2220      	movs	r2, #32
+ 800a76e:	f8c0 208c 	str.w	r2, [r0, #140]	; 0x8c
+ 800a772:	4a18      	ldr	r2, [pc, #96]	; (800a7d4 <UART_RxISR_8BIT+0xc8>)
+ 800a774:	6741      	str	r1, [r0, #116]	; 0x74
+ 800a776:	4293      	cmp	r3, r2
+ 800a778:	6701      	str	r1, [r0, #112]	; 0x70
+ 800a77a:	d105      	bne.n	800a788 <UART_RxISR_8BIT+0x7c>
+ 800a77c:	6ec2      	ldr	r2, [r0, #108]	; 0x6c
+ 800a77e:	2a01      	cmp	r2, #1
+ 800a780:	d00e      	beq.n	800a7a0 <UART_RxISR_8BIT+0x94>
+ 800a782:	f7f8 fcc5 	bl	8003110 <HAL_UART_RxCpltCallback>
+ 800a786:	e01e      	b.n	800a7c6 <UART_RxISR_8BIT+0xba>
+ 800a788:	685a      	ldr	r2, [r3, #4]
+ 800a78a:	0211      	lsls	r1, r2, #8
+ 800a78c:	d5f6      	bpl.n	800a77c <UART_RxISR_8BIT+0x70>
+ 800a78e:	e853 2f00 	ldrex	r2, [r3]
+ 800a792:	f022 6280 	bic.w	r2, r2, #67108864	; 0x4000000
+ 800a796:	e843 2100 	strex	r1, r2, [r3]
+ 800a79a:	2900      	cmp	r1, #0
+ 800a79c:	d1f7      	bne.n	800a78e <UART_RxISR_8BIT+0x82>
+ 800a79e:	e7ed      	b.n	800a77c <UART_RxISR_8BIT+0x70>
+ 800a7a0:	2200      	movs	r2, #0
+ 800a7a2:	66c2      	str	r2, [r0, #108]	; 0x6c
+ 800a7a4:	e853 2f00 	ldrex	r2, [r3]
+ 800a7a8:	f022 0210 	bic.w	r2, r2, #16
+ 800a7ac:	e843 2100 	strex	r1, r2, [r3]
+ 800a7b0:	2900      	cmp	r1, #0
+ 800a7b2:	d1f7      	bne.n	800a7a4 <UART_RxISR_8BIT+0x98>
+ 800a7b4:	69da      	ldr	r2, [r3, #28]
+ 800a7b6:	f8b0 105c 	ldrh.w	r1, [r0, #92]	; 0x5c
+ 800a7ba:	06d2      	lsls	r2, r2, #27
+ 800a7bc:	bf44      	itt	mi
+ 800a7be:	2210      	movmi	r2, #16
+ 800a7c0:	621a      	strmi	r2, [r3, #32]
+ 800a7c2:	f7ff fe25 	bl	800a410 <HAL_UARTEx_RxEventCallback>
+ 800a7c6:	bd08      	pop	{r3, pc}
+ 800a7c8:	699a      	ldr	r2, [r3, #24]
+ 800a7ca:	f042 0208 	orr.w	r2, r2, #8
+ 800a7ce:	619a      	str	r2, [r3, #24]
+ 800a7d0:	e7f9      	b.n	800a7c6 <UART_RxISR_8BIT+0xba>
+ 800a7d2:	bf00      	nop
+ 800a7d4:	40008000 	.word	0x40008000
+
+0800a7d8 <UART_RxISR_16BIT>:
+ 800a7d8:	f8d0 208c 	ldr.w	r2, [r0, #140]	; 0x8c
+ 800a7dc:	f8b0 1060 	ldrh.w	r1, [r0, #96]	; 0x60
+ 800a7e0:	2a22      	cmp	r2, #34	; 0x22
+ 800a7e2:	b508      	push	{r3, lr}
+ 800a7e4:	6803      	ldr	r3, [r0, #0]
+ 800a7e6:	d152      	bne.n	800a88e <UART_RxISR_16BIT+0xb6>
+ 800a7e8:	6a5a      	ldr	r2, [r3, #36]	; 0x24
+ 800a7ea:	4011      	ands	r1, r2
+ 800a7ec:	6d82      	ldr	r2, [r0, #88]	; 0x58
+ 800a7ee:	f822 1b02 	strh.w	r1, [r2], #2
+ 800a7f2:	6582      	str	r2, [r0, #88]	; 0x58
+ 800a7f4:	f8b0 205e 	ldrh.w	r2, [r0, #94]	; 0x5e
+ 800a7f8:	3a01      	subs	r2, #1
+ 800a7fa:	b292      	uxth	r2, r2
+ 800a7fc:	f8a0 205e 	strh.w	r2, [r0, #94]	; 0x5e
+ 800a800:	f8b0 205e 	ldrh.w	r2, [r0, #94]	; 0x5e
+ 800a804:	b292      	uxth	r2, r2
+ 800a806:	2a00      	cmp	r2, #0
+ 800a808:	d140      	bne.n	800a88c <UART_RxISR_16BIT+0xb4>
+ 800a80a:	e853 2f00 	ldrex	r2, [r3]
+ 800a80e:	f422 7290 	bic.w	r2, r2, #288	; 0x120
+ 800a812:	e843 2100 	strex	r1, r2, [r3]
+ 800a816:	2900      	cmp	r1, #0
+ 800a818:	d1f7      	bne.n	800a80a <UART_RxISR_16BIT+0x32>
+ 800a81a:	f103 0208 	add.w	r2, r3, #8
+ 800a81e:	e852 2f00 	ldrex	r2, [r2]
+ 800a822:	f022 0201 	bic.w	r2, r2, #1
+ 800a826:	f103 0c08 	add.w	ip, r3, #8
+ 800a82a:	e84c 2100 	strex	r1, r2, [ip]
+ 800a82e:	2900      	cmp	r1, #0
+ 800a830:	d1f3      	bne.n	800a81a <UART_RxISR_16BIT+0x42>
+ 800a832:	2220      	movs	r2, #32
+ 800a834:	f8c0 208c 	str.w	r2, [r0, #140]	; 0x8c
+ 800a838:	4a17      	ldr	r2, [pc, #92]	; (800a898 <UART_RxISR_16BIT+0xc0>)
+ 800a83a:	6741      	str	r1, [r0, #116]	; 0x74
+ 800a83c:	4293      	cmp	r3, r2
+ 800a83e:	6701      	str	r1, [r0, #112]	; 0x70
+ 800a840:	d105      	bne.n	800a84e <UART_RxISR_16BIT+0x76>
+ 800a842:	6ec2      	ldr	r2, [r0, #108]	; 0x6c
+ 800a844:	2a01      	cmp	r2, #1
+ 800a846:	d00e      	beq.n	800a866 <UART_RxISR_16BIT+0x8e>
+ 800a848:	f7f8 fc62 	bl	8003110 <HAL_UART_RxCpltCallback>
+ 800a84c:	e01e      	b.n	800a88c <UART_RxISR_16BIT+0xb4>
+ 800a84e:	685a      	ldr	r2, [r3, #4]
+ 800a850:	0211      	lsls	r1, r2, #8
+ 800a852:	d5f6      	bpl.n	800a842 <UART_RxISR_16BIT+0x6a>
+ 800a854:	e853 2f00 	ldrex	r2, [r3]
+ 800a858:	f022 6280 	bic.w	r2, r2, #67108864	; 0x4000000
+ 800a85c:	e843 2100 	strex	r1, r2, [r3]
+ 800a860:	2900      	cmp	r1, #0
+ 800a862:	d1f7      	bne.n	800a854 <UART_RxISR_16BIT+0x7c>
+ 800a864:	e7ed      	b.n	800a842 <UART_RxISR_16BIT+0x6a>
+ 800a866:	2200      	movs	r2, #0
+ 800a868:	66c2      	str	r2, [r0, #108]	; 0x6c
+ 800a86a:	e853 2f00 	ldrex	r2, [r3]
+ 800a86e:	f022 0210 	bic.w	r2, r2, #16
+ 800a872:	e843 2100 	strex	r1, r2, [r3]
+ 800a876:	2900      	cmp	r1, #0
+ 800a878:	d1f7      	bne.n	800a86a <UART_RxISR_16BIT+0x92>
+ 800a87a:	69da      	ldr	r2, [r3, #28]
+ 800a87c:	f8b0 105c 	ldrh.w	r1, [r0, #92]	; 0x5c
+ 800a880:	06d2      	lsls	r2, r2, #27
+ 800a882:	bf44      	itt	mi
+ 800a884:	2210      	movmi	r2, #16
+ 800a886:	621a      	strmi	r2, [r3, #32]
+ 800a888:	f7ff fdc2 	bl	800a410 <HAL_UARTEx_RxEventCallback>
+ 800a88c:	bd08      	pop	{r3, pc}
+ 800a88e:	699a      	ldr	r2, [r3, #24]
+ 800a890:	f042 0208 	orr.w	r2, r2, #8
+ 800a894:	619a      	str	r2, [r3, #24]
+ 800a896:	e7f9      	b.n	800a88c <UART_RxISR_16BIT+0xb4>
+ 800a898:	40008000 	.word	0x40008000
+
+0800a89c <UART_RxISR_8BIT_FIFOEN>:
+ 800a89c:	e92d 4ff7 	stmdb	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 800a8a0:	6803      	ldr	r3, [r0, #0]
+ 800a8a2:	f8b0 8060 	ldrh.w	r8, [r0, #96]	; 0x60
+ 800a8a6:	69df      	ldr	r7, [r3, #28]
+ 800a8a8:	681a      	ldr	r2, [r3, #0]
+ 800a8aa:	689d      	ldr	r5, [r3, #8]
+ 800a8ac:	f8d0 108c 	ldr.w	r1, [r0, #140]	; 0x8c
+ 800a8b0:	9201      	str	r2, [sp, #4]
+ 800a8b2:	2922      	cmp	r1, #34	; 0x22
+ 800a8b4:	4604      	mov	r4, r0
+ 800a8b6:	f040 80b4 	bne.w	800aa22 <UART_RxISR_8BIT_FIFOEN+0x186>
+ 800a8ba:	f8b0 9068 	ldrh.w	r9, [r0, #104]	; 0x68
+ 800a8be:	f8df a16c 	ldr.w	sl, [pc, #364]	; 800aa2c <UART_RxISR_8BIT_FIFOEN+0x190>
+ 800a8c2:	f8df b16c 	ldr.w	fp, [pc, #364]	; 800aa30 <UART_RxISR_8BIT_FIFOEN+0x194>
+ 800a8c6:	2600      	movs	r6, #0
+ 800a8c8:	f1b9 0f00 	cmp.w	r9, #0
+ 800a8cc:	d001      	beq.n	800a8d2 <UART_RxISR_8BIT_FIFOEN+0x36>
+ 800a8ce:	06bb      	lsls	r3, r7, #26
+ 800a8d0:	d421      	bmi.n	800a916 <UART_RxISR_8BIT_FIFOEN+0x7a>
+ 800a8d2:	f8b4 305e 	ldrh.w	r3, [r4, #94]	; 0x5e
+ 800a8d6:	b29b      	uxth	r3, r3
+ 800a8d8:	b1d3      	cbz	r3, 800a910 <UART_RxISR_8BIT_FIFOEN+0x74>
+ 800a8da:	f8b4 2068 	ldrh.w	r2, [r4, #104]	; 0x68
+ 800a8de:	429a      	cmp	r2, r3
+ 800a8e0:	d916      	bls.n	800a910 <UART_RxISR_8BIT_FIFOEN+0x74>
+ 800a8e2:	6822      	ldr	r2, [r4, #0]
+ 800a8e4:	f102 0308 	add.w	r3, r2, #8
+ 800a8e8:	e853 3f00 	ldrex	r3, [r3]
+ 800a8ec:	f023 5380 	bic.w	r3, r3, #268435456	; 0x10000000
+ 800a8f0:	3208      	adds	r2, #8
+ 800a8f2:	e842 3100 	strex	r1, r3, [r2]
+ 800a8f6:	6822      	ldr	r2, [r4, #0]
+ 800a8f8:	2900      	cmp	r1, #0
+ 800a8fa:	d1f2      	bne.n	800a8e2 <UART_RxISR_8BIT_FIFOEN+0x46>
+ 800a8fc:	4b4d      	ldr	r3, [pc, #308]	; (800aa34 <UART_RxISR_8BIT_FIFOEN+0x198>)
+ 800a8fe:	6763      	str	r3, [r4, #116]	; 0x74
+ 800a900:	e852 3f00 	ldrex	r3, [r2]
+ 800a904:	f043 0320 	orr.w	r3, r3, #32
+ 800a908:	e842 3100 	strex	r1, r3, [r2]
+ 800a90c:	2900      	cmp	r1, #0
+ 800a90e:	d1f7      	bne.n	800a900 <UART_RxISR_8BIT_FIFOEN+0x64>
+ 800a910:	b003      	add	sp, #12
+ 800a912:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 800a916:	6823      	ldr	r3, [r4, #0]
+ 800a918:	6da2      	ldr	r2, [r4, #88]	; 0x58
+ 800a91a:	6a5b      	ldr	r3, [r3, #36]	; 0x24
+ 800a91c:	ea03 0308 	and.w	r3, r3, r8
+ 800a920:	7013      	strb	r3, [r2, #0]
+ 800a922:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 800a924:	3301      	adds	r3, #1
+ 800a926:	65a3      	str	r3, [r4, #88]	; 0x58
+ 800a928:	f8b4 305e 	ldrh.w	r3, [r4, #94]	; 0x5e
+ 800a92c:	3b01      	subs	r3, #1
+ 800a92e:	b29b      	uxth	r3, r3
+ 800a930:	f8a4 305e 	strh.w	r3, [r4, #94]	; 0x5e
+ 800a934:	6823      	ldr	r3, [r4, #0]
+ 800a936:	69df      	ldr	r7, [r3, #28]
+ 800a938:	0778      	lsls	r0, r7, #29
+ 800a93a:	d02c      	beq.n	800a996 <UART_RxISR_8BIT_FIFOEN+0xfa>
+ 800a93c:	07f9      	lsls	r1, r7, #31
+ 800a93e:	d50a      	bpl.n	800a956 <UART_RxISR_8BIT_FIFOEN+0xba>
+ 800a940:	9a01      	ldr	r2, [sp, #4]
+ 800a942:	05d2      	lsls	r2, r2, #23
+ 800a944:	d507      	bpl.n	800a956 <UART_RxISR_8BIT_FIFOEN+0xba>
+ 800a946:	2101      	movs	r1, #1
+ 800a948:	6219      	str	r1, [r3, #32]
+ 800a94a:	f8d4 1090 	ldr.w	r1, [r4, #144]	; 0x90
+ 800a94e:	f041 0101 	orr.w	r1, r1, #1
+ 800a952:	f8c4 1090 	str.w	r1, [r4, #144]	; 0x90
+ 800a956:	07b8      	lsls	r0, r7, #30
+ 800a958:	d509      	bpl.n	800a96e <UART_RxISR_8BIT_FIFOEN+0xd2>
+ 800a95a:	07e9      	lsls	r1, r5, #31
+ 800a95c:	d507      	bpl.n	800a96e <UART_RxISR_8BIT_FIFOEN+0xd2>
+ 800a95e:	2102      	movs	r1, #2
+ 800a960:	6219      	str	r1, [r3, #32]
+ 800a962:	f8d4 1090 	ldr.w	r1, [r4, #144]	; 0x90
+ 800a966:	f041 0104 	orr.w	r1, r1, #4
+ 800a96a:	f8c4 1090 	str.w	r1, [r4, #144]	; 0x90
+ 800a96e:	077a      	lsls	r2, r7, #29
+ 800a970:	d509      	bpl.n	800a986 <UART_RxISR_8BIT_FIFOEN+0xea>
+ 800a972:	07e8      	lsls	r0, r5, #31
+ 800a974:	d507      	bpl.n	800a986 <UART_RxISR_8BIT_FIFOEN+0xea>
+ 800a976:	2104      	movs	r1, #4
+ 800a978:	6219      	str	r1, [r3, #32]
+ 800a97a:	f8d4 3090 	ldr.w	r3, [r4, #144]	; 0x90
+ 800a97e:	f043 0302 	orr.w	r3, r3, #2
+ 800a982:	f8c4 3090 	str.w	r3, [r4, #144]	; 0x90
+ 800a986:	f8d4 3090 	ldr.w	r3, [r4, #144]	; 0x90
+ 800a98a:	b123      	cbz	r3, 800a996 <UART_RxISR_8BIT_FIFOEN+0xfa>
+ 800a98c:	4620      	mov	r0, r4
+ 800a98e:	f7ff fd10 	bl	800a3b2 <HAL_UART_ErrorCallback>
+ 800a992:	f8c4 6090 	str.w	r6, [r4, #144]	; 0x90
+ 800a996:	f8b4 305e 	ldrh.w	r3, [r4, #94]	; 0x5e
+ 800a99a:	b29b      	uxth	r3, r3
+ 800a99c:	2b00      	cmp	r3, #0
+ 800a99e:	d193      	bne.n	800a8c8 <UART_RxISR_8BIT_FIFOEN+0x2c>
+ 800a9a0:	6821      	ldr	r1, [r4, #0]
+ 800a9a2:	e851 3f00 	ldrex	r3, [r1]
+ 800a9a6:	f423 7380 	bic.w	r3, r3, #256	; 0x100
+ 800a9aa:	e841 3000 	strex	r0, r3, [r1]
+ 800a9ae:	6823      	ldr	r3, [r4, #0]
+ 800a9b0:	2800      	cmp	r0, #0
+ 800a9b2:	d1f5      	bne.n	800a9a0 <UART_RxISR_8BIT_FIFOEN+0x104>
+ 800a9b4:	f103 0208 	add.w	r2, r3, #8
+ 800a9b8:	e852 1f00 	ldrex	r1, [r2]
+ 800a9bc:	ea01 010a 	and.w	r1, r1, sl
+ 800a9c0:	e842 1000 	strex	r0, r1, [r2]
+ 800a9c4:	2800      	cmp	r0, #0
+ 800a9c6:	d1f5      	bne.n	800a9b4 <UART_RxISR_8BIT_FIFOEN+0x118>
+ 800a9c8:	2120      	movs	r1, #32
+ 800a9ca:	455b      	cmp	r3, fp
+ 800a9cc:	f8c4 108c 	str.w	r1, [r4, #140]	; 0x8c
+ 800a9d0:	6760      	str	r0, [r4, #116]	; 0x74
+ 800a9d2:	6720      	str	r0, [r4, #112]	; 0x70
+ 800a9d4:	d00a      	beq.n	800a9ec <UART_RxISR_8BIT_FIFOEN+0x150>
+ 800a9d6:	6859      	ldr	r1, [r3, #4]
+ 800a9d8:	0209      	lsls	r1, r1, #8
+ 800a9da:	d507      	bpl.n	800a9ec <UART_RxISR_8BIT_FIFOEN+0x150>
+ 800a9dc:	e853 1f00 	ldrex	r1, [r3]
+ 800a9e0:	f021 6180 	bic.w	r1, r1, #67108864	; 0x4000000
+ 800a9e4:	e843 1000 	strex	r0, r1, [r3]
+ 800a9e8:	2800      	cmp	r0, #0
+ 800a9ea:	d1f7      	bne.n	800a9dc <UART_RxISR_8BIT_FIFOEN+0x140>
+ 800a9ec:	6ee1      	ldr	r1, [r4, #108]	; 0x6c
+ 800a9ee:	2901      	cmp	r1, #1
+ 800a9f0:	d113      	bne.n	800aa1a <UART_RxISR_8BIT_FIFOEN+0x17e>
+ 800a9f2:	66e6      	str	r6, [r4, #108]	; 0x6c
+ 800a9f4:	e853 1f00 	ldrex	r1, [r3]
+ 800a9f8:	f021 0110 	bic.w	r1, r1, #16
+ 800a9fc:	e843 1000 	strex	r0, r1, [r3]
+ 800aa00:	2800      	cmp	r0, #0
+ 800aa02:	d1f7      	bne.n	800a9f4 <UART_RxISR_8BIT_FIFOEN+0x158>
+ 800aa04:	69d9      	ldr	r1, [r3, #28]
+ 800aa06:	06ca      	lsls	r2, r1, #27
+ 800aa08:	bf44      	itt	mi
+ 800aa0a:	2110      	movmi	r1, #16
+ 800aa0c:	6219      	strmi	r1, [r3, #32]
+ 800aa0e:	4620      	mov	r0, r4
+ 800aa10:	f8b4 105c 	ldrh.w	r1, [r4, #92]	; 0x5c
+ 800aa14:	f7ff fcfc 	bl	800a410 <HAL_UARTEx_RxEventCallback>
+ 800aa18:	e756      	b.n	800a8c8 <UART_RxISR_8BIT_FIFOEN+0x2c>
+ 800aa1a:	4620      	mov	r0, r4
+ 800aa1c:	f7f8 fb78 	bl	8003110 <HAL_UART_RxCpltCallback>
+ 800aa20:	e752      	b.n	800a8c8 <UART_RxISR_8BIT_FIFOEN+0x2c>
+ 800aa22:	699a      	ldr	r2, [r3, #24]
+ 800aa24:	f042 0208 	orr.w	r2, r2, #8
+ 800aa28:	619a      	str	r2, [r3, #24]
+ 800aa2a:	e771      	b.n	800a910 <UART_RxISR_8BIT_FIFOEN+0x74>
+ 800aa2c:	effffffe 	.word	0xeffffffe
+ 800aa30:	40008000 	.word	0x40008000
+ 800aa34:	0800a70d 	.word	0x0800a70d
+
+0800aa38 <UART_RxISR_16BIT_FIFOEN>:
+ 800aa38:	e92d 4ff7 	stmdb	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 800aa3c:	6803      	ldr	r3, [r0, #0]
+ 800aa3e:	f8b0 8060 	ldrh.w	r8, [r0, #96]	; 0x60
+ 800aa42:	69df      	ldr	r7, [r3, #28]
+ 800aa44:	681a      	ldr	r2, [r3, #0]
+ 800aa46:	689d      	ldr	r5, [r3, #8]
+ 800aa48:	f8d0 108c 	ldr.w	r1, [r0, #140]	; 0x8c
+ 800aa4c:	9201      	str	r2, [sp, #4]
+ 800aa4e:	2922      	cmp	r1, #34	; 0x22
+ 800aa50:	4604      	mov	r4, r0
+ 800aa52:	f040 80b2 	bne.w	800abba <UART_RxISR_16BIT_FIFOEN+0x182>
+ 800aa56:	f8b0 9068 	ldrh.w	r9, [r0, #104]	; 0x68
+ 800aa5a:	f8df a168 	ldr.w	sl, [pc, #360]	; 800abc4 <UART_RxISR_16BIT_FIFOEN+0x18c>
+ 800aa5e:	f8df b168 	ldr.w	fp, [pc, #360]	; 800abc8 <UART_RxISR_16BIT_FIFOEN+0x190>
+ 800aa62:	2600      	movs	r6, #0
+ 800aa64:	f1b9 0f00 	cmp.w	r9, #0
+ 800aa68:	d001      	beq.n	800aa6e <UART_RxISR_16BIT_FIFOEN+0x36>
+ 800aa6a:	06bb      	lsls	r3, r7, #26
+ 800aa6c:	d421      	bmi.n	800aab2 <UART_RxISR_16BIT_FIFOEN+0x7a>
+ 800aa6e:	f8b4 305e 	ldrh.w	r3, [r4, #94]	; 0x5e
+ 800aa72:	b29b      	uxth	r3, r3
+ 800aa74:	b1d3      	cbz	r3, 800aaac <UART_RxISR_16BIT_FIFOEN+0x74>
+ 800aa76:	f8b4 2068 	ldrh.w	r2, [r4, #104]	; 0x68
+ 800aa7a:	429a      	cmp	r2, r3
+ 800aa7c:	d916      	bls.n	800aaac <UART_RxISR_16BIT_FIFOEN+0x74>
+ 800aa7e:	6822      	ldr	r2, [r4, #0]
+ 800aa80:	f102 0308 	add.w	r3, r2, #8
+ 800aa84:	e853 3f00 	ldrex	r3, [r3]
+ 800aa88:	f023 5380 	bic.w	r3, r3, #268435456	; 0x10000000
+ 800aa8c:	3208      	adds	r2, #8
+ 800aa8e:	e842 3100 	strex	r1, r3, [r2]
+ 800aa92:	6822      	ldr	r2, [r4, #0]
+ 800aa94:	2900      	cmp	r1, #0
+ 800aa96:	d1f2      	bne.n	800aa7e <UART_RxISR_16BIT_FIFOEN+0x46>
+ 800aa98:	4b4c      	ldr	r3, [pc, #304]	; (800abcc <UART_RxISR_16BIT_FIFOEN+0x194>)
+ 800aa9a:	6763      	str	r3, [r4, #116]	; 0x74
+ 800aa9c:	e852 3f00 	ldrex	r3, [r2]
+ 800aaa0:	f043 0320 	orr.w	r3, r3, #32
+ 800aaa4:	e842 3100 	strex	r1, r3, [r2]
+ 800aaa8:	2900      	cmp	r1, #0
+ 800aaaa:	d1f7      	bne.n	800aa9c <UART_RxISR_16BIT_FIFOEN+0x64>
+ 800aaac:	b003      	add	sp, #12
+ 800aaae:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 800aab2:	6823      	ldr	r3, [r4, #0]
+ 800aab4:	6da2      	ldr	r2, [r4, #88]	; 0x58
+ 800aab6:	6a59      	ldr	r1, [r3, #36]	; 0x24
+ 800aab8:	ea08 0101 	and.w	r1, r8, r1
+ 800aabc:	f822 1b02 	strh.w	r1, [r2], #2
+ 800aac0:	65a2      	str	r2, [r4, #88]	; 0x58
+ 800aac2:	f8b4 205e 	ldrh.w	r2, [r4, #94]	; 0x5e
+ 800aac6:	3a01      	subs	r2, #1
+ 800aac8:	b292      	uxth	r2, r2
+ 800aaca:	f8a4 205e 	strh.w	r2, [r4, #94]	; 0x5e
+ 800aace:	69df      	ldr	r7, [r3, #28]
+ 800aad0:	0778      	lsls	r0, r7, #29
+ 800aad2:	d02c      	beq.n	800ab2e <UART_RxISR_16BIT_FIFOEN+0xf6>
+ 800aad4:	07f9      	lsls	r1, r7, #31
+ 800aad6:	d50a      	bpl.n	800aaee <UART_RxISR_16BIT_FIFOEN+0xb6>
+ 800aad8:	9a01      	ldr	r2, [sp, #4]
+ 800aada:	05d2      	lsls	r2, r2, #23
+ 800aadc:	d507      	bpl.n	800aaee <UART_RxISR_16BIT_FIFOEN+0xb6>
+ 800aade:	2101      	movs	r1, #1
+ 800aae0:	6219      	str	r1, [r3, #32]
+ 800aae2:	f8d4 1090 	ldr.w	r1, [r4, #144]	; 0x90
+ 800aae6:	f041 0101 	orr.w	r1, r1, #1
+ 800aaea:	f8c4 1090 	str.w	r1, [r4, #144]	; 0x90
+ 800aaee:	07b8      	lsls	r0, r7, #30
+ 800aaf0:	d509      	bpl.n	800ab06 <UART_RxISR_16BIT_FIFOEN+0xce>
+ 800aaf2:	07e9      	lsls	r1, r5, #31
+ 800aaf4:	d507      	bpl.n	800ab06 <UART_RxISR_16BIT_FIFOEN+0xce>
+ 800aaf6:	2102      	movs	r1, #2
+ 800aaf8:	6219      	str	r1, [r3, #32]
+ 800aafa:	f8d4 1090 	ldr.w	r1, [r4, #144]	; 0x90
+ 800aafe:	f041 0104 	orr.w	r1, r1, #4
+ 800ab02:	f8c4 1090 	str.w	r1, [r4, #144]	; 0x90
+ 800ab06:	077a      	lsls	r2, r7, #29
+ 800ab08:	d509      	bpl.n	800ab1e <UART_RxISR_16BIT_FIFOEN+0xe6>
+ 800ab0a:	07e8      	lsls	r0, r5, #31
+ 800ab0c:	d507      	bpl.n	800ab1e <UART_RxISR_16BIT_FIFOEN+0xe6>
+ 800ab0e:	2104      	movs	r1, #4
+ 800ab10:	6219      	str	r1, [r3, #32]
+ 800ab12:	f8d4 3090 	ldr.w	r3, [r4, #144]	; 0x90
+ 800ab16:	f043 0302 	orr.w	r3, r3, #2
+ 800ab1a:	f8c4 3090 	str.w	r3, [r4, #144]	; 0x90
+ 800ab1e:	f8d4 3090 	ldr.w	r3, [r4, #144]	; 0x90
+ 800ab22:	b123      	cbz	r3, 800ab2e <UART_RxISR_16BIT_FIFOEN+0xf6>
+ 800ab24:	4620      	mov	r0, r4
+ 800ab26:	f7ff fc44 	bl	800a3b2 <HAL_UART_ErrorCallback>
+ 800ab2a:	f8c4 6090 	str.w	r6, [r4, #144]	; 0x90
+ 800ab2e:	f8b4 305e 	ldrh.w	r3, [r4, #94]	; 0x5e
+ 800ab32:	b29b      	uxth	r3, r3
+ 800ab34:	2b00      	cmp	r3, #0
+ 800ab36:	d195      	bne.n	800aa64 <UART_RxISR_16BIT_FIFOEN+0x2c>
+ 800ab38:	6821      	ldr	r1, [r4, #0]
+ 800ab3a:	e851 3f00 	ldrex	r3, [r1]
+ 800ab3e:	f423 7380 	bic.w	r3, r3, #256	; 0x100
+ 800ab42:	e841 3000 	strex	r0, r3, [r1]
+ 800ab46:	6823      	ldr	r3, [r4, #0]
+ 800ab48:	2800      	cmp	r0, #0
+ 800ab4a:	d1f5      	bne.n	800ab38 <UART_RxISR_16BIT_FIFOEN+0x100>
+ 800ab4c:	f103 0208 	add.w	r2, r3, #8
+ 800ab50:	e852 1f00 	ldrex	r1, [r2]
+ 800ab54:	ea01 010a 	and.w	r1, r1, sl
+ 800ab58:	e842 1000 	strex	r0, r1, [r2]
+ 800ab5c:	2800      	cmp	r0, #0
+ 800ab5e:	d1f5      	bne.n	800ab4c <UART_RxISR_16BIT_FIFOEN+0x114>
+ 800ab60:	2120      	movs	r1, #32
+ 800ab62:	455b      	cmp	r3, fp
+ 800ab64:	f8c4 108c 	str.w	r1, [r4, #140]	; 0x8c
+ 800ab68:	6760      	str	r0, [r4, #116]	; 0x74
+ 800ab6a:	6720      	str	r0, [r4, #112]	; 0x70
+ 800ab6c:	d00a      	beq.n	800ab84 <UART_RxISR_16BIT_FIFOEN+0x14c>
+ 800ab6e:	6859      	ldr	r1, [r3, #4]
+ 800ab70:	0209      	lsls	r1, r1, #8
+ 800ab72:	d507      	bpl.n	800ab84 <UART_RxISR_16BIT_FIFOEN+0x14c>
+ 800ab74:	e853 1f00 	ldrex	r1, [r3]
+ 800ab78:	f021 6180 	bic.w	r1, r1, #67108864	; 0x4000000
+ 800ab7c:	e843 1000 	strex	r0, r1, [r3]
+ 800ab80:	2800      	cmp	r0, #0
+ 800ab82:	d1f7      	bne.n	800ab74 <UART_RxISR_16BIT_FIFOEN+0x13c>
+ 800ab84:	6ee1      	ldr	r1, [r4, #108]	; 0x6c
+ 800ab86:	2901      	cmp	r1, #1
+ 800ab88:	d113      	bne.n	800abb2 <UART_RxISR_16BIT_FIFOEN+0x17a>
+ 800ab8a:	66e6      	str	r6, [r4, #108]	; 0x6c
+ 800ab8c:	e853 1f00 	ldrex	r1, [r3]
+ 800ab90:	f021 0110 	bic.w	r1, r1, #16
+ 800ab94:	e843 1000 	strex	r0, r1, [r3]
+ 800ab98:	2800      	cmp	r0, #0
+ 800ab9a:	d1f7      	bne.n	800ab8c <UART_RxISR_16BIT_FIFOEN+0x154>
+ 800ab9c:	69d9      	ldr	r1, [r3, #28]
+ 800ab9e:	06ca      	lsls	r2, r1, #27
+ 800aba0:	bf44      	itt	mi
+ 800aba2:	2110      	movmi	r1, #16
+ 800aba4:	6219      	strmi	r1, [r3, #32]
+ 800aba6:	4620      	mov	r0, r4
+ 800aba8:	f8b4 105c 	ldrh.w	r1, [r4, #92]	; 0x5c
+ 800abac:	f7ff fc30 	bl	800a410 <HAL_UARTEx_RxEventCallback>
+ 800abb0:	e758      	b.n	800aa64 <UART_RxISR_16BIT_FIFOEN+0x2c>
+ 800abb2:	4620      	mov	r0, r4
+ 800abb4:	f7f8 faac 	bl	8003110 <HAL_UART_RxCpltCallback>
+ 800abb8:	e754      	b.n	800aa64 <UART_RxISR_16BIT_FIFOEN+0x2c>
+ 800abba:	699a      	ldr	r2, [r3, #24]
+ 800abbc:	f042 0208 	orr.w	r2, r2, #8
+ 800abc0:	619a      	str	r2, [r3, #24]
+ 800abc2:	e773      	b.n	800aaac <UART_RxISR_16BIT_FIFOEN+0x74>
+ 800abc4:	effffffe 	.word	0xeffffffe
+ 800abc8:	40008000 	.word	0x40008000
+ 800abcc:	0800a7d9 	.word	0x0800a7d9
+
+0800abd0 <UART_SetConfig>:
+ 800abd0:	b538      	push	{r3, r4, r5, lr}
+ 800abd2:	4604      	mov	r4, r0
+ 800abd4:	6803      	ldr	r3, [r0, #0]
+ 800abd6:	6921      	ldr	r1, [r4, #16]
+ 800abd8:	68a2      	ldr	r2, [r4, #8]
+ 800abda:	681d      	ldr	r5, [r3, #0]
+ 800abdc:	69c0      	ldr	r0, [r0, #28]
+ 800abde:	430a      	orrs	r2, r1
+ 800abe0:	6961      	ldr	r1, [r4, #20]
+ 800abe2:	430a      	orrs	r2, r1
+ 800abe4:	497d      	ldr	r1, [pc, #500]	; (800addc <UART_SetConfig+0x20c>)
+ 800abe6:	4302      	orrs	r2, r0
+ 800abe8:	4029      	ands	r1, r5
+ 800abea:	430a      	orrs	r2, r1
+ 800abec:	601a      	str	r2, [r3, #0]
+ 800abee:	685a      	ldr	r2, [r3, #4]
+ 800abf0:	68e1      	ldr	r1, [r4, #12]
+ 800abf2:	f422 5240 	bic.w	r2, r2, #12288	; 0x3000
+ 800abf6:	430a      	orrs	r2, r1
+ 800abf8:	605a      	str	r2, [r3, #4]
+ 800abfa:	4a79      	ldr	r2, [pc, #484]	; (800ade0 <UART_SetConfig+0x210>)
+ 800abfc:	69a1      	ldr	r1, [r4, #24]
+ 800abfe:	4293      	cmp	r3, r2
+ 800ac00:	bf1c      	itt	ne
+ 800ac02:	6a22      	ldrne	r2, [r4, #32]
+ 800ac04:	4311      	orrne	r1, r2
+ 800ac06:	689a      	ldr	r2, [r3, #8]
+ 800ac08:	f022 426e 	bic.w	r2, r2, #3992977408	; 0xee000000
+ 800ac0c:	f422 6230 	bic.w	r2, r2, #2816	; 0xb00
+ 800ac10:	430a      	orrs	r2, r1
+ 800ac12:	609a      	str	r2, [r3, #8]
+ 800ac14:	6ada      	ldr	r2, [r3, #44]	; 0x2c
+ 800ac16:	6a61      	ldr	r1, [r4, #36]	; 0x24
+ 800ac18:	f022 020f 	bic.w	r2, r2, #15
+ 800ac1c:	430a      	orrs	r2, r1
+ 800ac1e:	62da      	str	r2, [r3, #44]	; 0x2c
+ 800ac20:	4a70      	ldr	r2, [pc, #448]	; (800ade4 <UART_SetConfig+0x214>)
+ 800ac22:	4293      	cmp	r3, r2
+ 800ac24:	d11c      	bne.n	800ac60 <UART_SetConfig+0x90>
+ 800ac26:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800ac2a:	f8d3 3088 	ldr.w	r3, [r3, #136]	; 0x88
+ 800ac2e:	f003 0303 	and.w	r3, r3, #3
+ 800ac32:	f443 3340 	orr.w	r3, r3, #196608	; 0x30000
+ 800ac36:	f5a3 3340 	sub.w	r3, r3, #196608	; 0x30000
+ 800ac3a:	3b01      	subs	r3, #1
+ 800ac3c:	2b02      	cmp	r3, #2
+ 800ac3e:	f200 80c7 	bhi.w	800add0 <UART_SetConfig+0x200>
+ 800ac42:	4a69      	ldr	r2, [pc, #420]	; (800ade8 <UART_SetConfig+0x218>)
+ 800ac44:	5c9b      	ldrb	r3, [r3, r2]
+ 800ac46:	f5b0 4f00 	cmp.w	r0, #32768	; 0x8000
+ 800ac4a:	f040 8089 	bne.w	800ad60 <UART_SetConfig+0x190>
+ 800ac4e:	2b08      	cmp	r3, #8
+ 800ac50:	d824      	bhi.n	800ac9c <UART_SetConfig+0xcc>
+ 800ac52:	e8df f003 	tbb	[pc, r3]
+ 800ac56:	c061      	.short	0xc061
+ 800ac58:	23802383 	.word	0x23802383
+ 800ac5c:	2323      	.short	0x2323
+ 800ac5e:	65          	.byte	0x65
+ 800ac5f:	00          	.byte	0x00
+ 800ac60:	4a62      	ldr	r2, [pc, #392]	; (800adec <UART_SetConfig+0x21c>)
+ 800ac62:	4293      	cmp	r3, r2
+ 800ac64:	d109      	bne.n	800ac7a <UART_SetConfig+0xaa>
+ 800ac66:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800ac6a:	4a61      	ldr	r2, [pc, #388]	; (800adf0 <UART_SetConfig+0x220>)
+ 800ac6c:	f8d3 3088 	ldr.w	r3, [r3, #136]	; 0x88
+ 800ac70:	f003 030c 	and.w	r3, r3, #12
+ 800ac74:	f443 2340 	orr.w	r3, r3, #786432	; 0xc0000
+ 800ac78:	e7e4      	b.n	800ac44 <UART_SetConfig+0x74>
+ 800ac7a:	4a59      	ldr	r2, [pc, #356]	; (800ade0 <UART_SetConfig+0x210>)
+ 800ac7c:	4293      	cmp	r3, r2
+ 800ac7e:	d10d      	bne.n	800ac9c <UART_SetConfig+0xcc>
+ 800ac80:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800ac84:	f8d3 3088 	ldr.w	r3, [r3, #136]	; 0x88
+ 800ac88:	f403 6340 	and.w	r3, r3, #3072	; 0xc00
+ 800ac8c:	f5b3 6f00 	cmp.w	r3, #2048	; 0x800
+ 800ac90:	d01a      	beq.n	800acc8 <UART_SetConfig+0xf8>
+ 800ac92:	d805      	bhi.n	800aca0 <UART_SetConfig+0xd0>
+ 800ac94:	b153      	cbz	r3, 800acac <UART_SetConfig+0xdc>
+ 800ac96:	f5b3 6f80 	cmp.w	r3, #1024	; 0x400
+ 800ac9a:	d012      	beq.n	800acc2 <UART_SetConfig+0xf2>
+ 800ac9c:	2001      	movs	r0, #1
+ 800ac9e:	e009      	b.n	800acb4 <UART_SetConfig+0xe4>
+ 800aca0:	f5b3 6f40 	cmp.w	r3, #3072	; 0xc00
+ 800aca4:	d1fa      	bne.n	800ac9c <UART_SetConfig+0xcc>
+ 800aca6:	f44f 4000 	mov.w	r0, #32768	; 0x8000
+ 800acaa:	e00e      	b.n	800acca <UART_SetConfig+0xfa>
+ 800acac:	f7fe fcd2 	bl	8009654 <HAL_RCC_GetPCLK1Freq>
+ 800acb0:	b958      	cbnz	r0, 800acca <UART_SetConfig+0xfa>
+ 800acb2:	2000      	movs	r0, #0
+ 800acb4:	f04f 1301 	mov.w	r3, #65537	; 0x10001
+ 800acb8:	66a3      	str	r3, [r4, #104]	; 0x68
+ 800acba:	2300      	movs	r3, #0
+ 800acbc:	e9c4 331d 	strd	r3, r3, [r4, #116]	; 0x74
+ 800acc0:	bd38      	pop	{r3, r4, r5, pc}
+ 800acc2:	f7fe f8cf 	bl	8008e64 <HAL_RCC_GetSysClockFreq>
+ 800acc6:	e7f3      	b.n	800acb0 <UART_SetConfig+0xe0>
+ 800acc8:	484a      	ldr	r0, [pc, #296]	; (800adf4 <UART_SetConfig+0x224>)
+ 800acca:	6865      	ldr	r5, [r4, #4]
+ 800accc:	4b4a      	ldr	r3, [pc, #296]	; (800adf8 <UART_SetConfig+0x228>)
+ 800acce:	6a62      	ldr	r2, [r4, #36]	; 0x24
+ 800acd0:	eb05 0145 	add.w	r1, r5, r5, lsl #1
+ 800acd4:	f833 2012 	ldrh.w	r2, [r3, r2, lsl #1]
+ 800acd8:	fbb0 f3f2 	udiv	r3, r0, r2
+ 800acdc:	4299      	cmp	r1, r3
+ 800acde:	d8dd      	bhi.n	800ac9c <UART_SetConfig+0xcc>
+ 800ace0:	ebb3 3f05 	cmp.w	r3, r5, lsl #12
+ 800ace4:	d8da      	bhi.n	800ac9c <UART_SetConfig+0xcc>
+ 800ace6:	2300      	movs	r3, #0
+ 800ace8:	4619      	mov	r1, r3
+ 800acea:	f7f6 ff11 	bl	8001b10 <__aeabi_uldivmod>
+ 800acee:	0209      	lsls	r1, r1, #8
+ 800acf0:	ea41 6110 	orr.w	r1, r1, r0, lsr #24
+ 800acf4:	086b      	lsrs	r3, r5, #1
+ 800acf6:	0200      	lsls	r0, r0, #8
+ 800acf8:	18c0      	adds	r0, r0, r3
+ 800acfa:	462a      	mov	r2, r5
+ 800acfc:	f04f 0300 	mov.w	r3, #0
+ 800ad00:	f141 0100 	adc.w	r1, r1, #0
+ 800ad04:	f7f6 ff04 	bl	8001b10 <__aeabi_uldivmod>
+ 800ad08:	4b3c      	ldr	r3, [pc, #240]	; (800adfc <UART_SetConfig+0x22c>)
+ 800ad0a:	f5a0 7240 	sub.w	r2, r0, #768	; 0x300
+ 800ad0e:	429a      	cmp	r2, r3
+ 800ad10:	d8c4      	bhi.n	800ac9c <UART_SetConfig+0xcc>
+ 800ad12:	6823      	ldr	r3, [r4, #0]
+ 800ad14:	60d8      	str	r0, [r3, #12]
+ 800ad16:	e7cc      	b.n	800acb2 <UART_SetConfig+0xe2>
+ 800ad18:	f7fe fc9c 	bl	8009654 <HAL_RCC_GetPCLK1Freq>
+ 800ad1c:	2800      	cmp	r0, #0
+ 800ad1e:	d0c8      	beq.n	800acb2 <UART_SetConfig+0xe2>
+ 800ad20:	6861      	ldr	r1, [r4, #4]
+ 800ad22:	4b35      	ldr	r3, [pc, #212]	; (800adf8 <UART_SetConfig+0x228>)
+ 800ad24:	6a62      	ldr	r2, [r4, #36]	; 0x24
+ 800ad26:	f833 2012 	ldrh.w	r2, [r3, r2, lsl #1]
+ 800ad2a:	fbb0 f2f2 	udiv	r2, r0, r2
+ 800ad2e:	084b      	lsrs	r3, r1, #1
+ 800ad30:	eb03 0342 	add.w	r3, r3, r2, lsl #1
+ 800ad34:	f64f 72ef 	movw	r2, #65519	; 0xffef
+ 800ad38:	fbb3 f3f1 	udiv	r3, r3, r1
+ 800ad3c:	f1a3 0110 	sub.w	r1, r3, #16
+ 800ad40:	4291      	cmp	r1, r2
+ 800ad42:	d8ab      	bhi.n	800ac9c <UART_SetConfig+0xcc>
+ 800ad44:	f023 020f 	bic.w	r2, r3, #15
+ 800ad48:	6821      	ldr	r1, [r4, #0]
+ 800ad4a:	b292      	uxth	r2, r2
+ 800ad4c:	f3c3 0342 	ubfx	r3, r3, #1, #3
+ 800ad50:	4313      	orrs	r3, r2
+ 800ad52:	60cb      	str	r3, [r1, #12]
+ 800ad54:	e7ad      	b.n	800acb2 <UART_SetConfig+0xe2>
+ 800ad56:	f7fe f885 	bl	8008e64 <HAL_RCC_GetSysClockFreq>
+ 800ad5a:	e7df      	b.n	800ad1c <UART_SetConfig+0x14c>
+ 800ad5c:	4825      	ldr	r0, [pc, #148]	; (800adf4 <UART_SetConfig+0x224>)
+ 800ad5e:	e7df      	b.n	800ad20 <UART_SetConfig+0x150>
+ 800ad60:	2b08      	cmp	r3, #8
+ 800ad62:	d89b      	bhi.n	800ac9c <UART_SetConfig+0xcc>
+ 800ad64:	a201      	add	r2, pc, #4	; (adr r2, 800ad6c <UART_SetConfig+0x19c>)
+ 800ad66:	f852 f023 	ldr.w	pc, [r2, r3, lsl #2]
+ 800ad6a:	bf00      	nop
+ 800ad6c:	0800adb5 	.word	0x0800adb5
+ 800ad70:	0800adc1 	.word	0x0800adc1
+ 800ad74:	0800adcd 	.word	0x0800adcd
+ 800ad78:	0800ac9d 	.word	0x0800ac9d
+ 800ad7c:	0800adc7 	.word	0x0800adc7
+ 800ad80:	0800ac9d 	.word	0x0800ac9d
+ 800ad84:	0800ac9d 	.word	0x0800ac9d
+ 800ad88:	0800ac9d 	.word	0x0800ac9d
+ 800ad8c:	0800ad91 	.word	0x0800ad91
+ 800ad90:	f44f 4000 	mov.w	r0, #32768	; 0x8000
+ 800ad94:	6863      	ldr	r3, [r4, #4]
+ 800ad96:	6a61      	ldr	r1, [r4, #36]	; 0x24
+ 800ad98:	4a17      	ldr	r2, [pc, #92]	; (800adf8 <UART_SetConfig+0x228>)
+ 800ad9a:	f832 2011 	ldrh.w	r2, [r2, r1, lsl #1]
+ 800ad9e:	fbb0 f0f2 	udiv	r0, r0, r2
+ 800ada2:	eb00 0053 	add.w	r0, r0, r3, lsr #1
+ 800ada6:	fbb0 f0f3 	udiv	r0, r0, r3
+ 800adaa:	f64f 73ef 	movw	r3, #65519	; 0xffef
+ 800adae:	f1a0 0210 	sub.w	r2, r0, #16
+ 800adb2:	e7ac      	b.n	800ad0e <UART_SetConfig+0x13e>
+ 800adb4:	f7fe fc4e 	bl	8009654 <HAL_RCC_GetPCLK1Freq>
+ 800adb8:	2800      	cmp	r0, #0
+ 800adba:	f43f af7a 	beq.w	800acb2 <UART_SetConfig+0xe2>
+ 800adbe:	e7e9      	b.n	800ad94 <UART_SetConfig+0x1c4>
+ 800adc0:	f7fe fc58 	bl	8009674 <HAL_RCC_GetPCLK2Freq>
+ 800adc4:	e7f8      	b.n	800adb8 <UART_SetConfig+0x1e8>
+ 800adc6:	f7fe f84d 	bl	8008e64 <HAL_RCC_GetSysClockFreq>
+ 800adca:	e7f5      	b.n	800adb8 <UART_SetConfig+0x1e8>
+ 800adcc:	4809      	ldr	r0, [pc, #36]	; (800adf4 <UART_SetConfig+0x224>)
+ 800adce:	e7e1      	b.n	800ad94 <UART_SetConfig+0x1c4>
+ 800add0:	f5b0 4f00 	cmp.w	r0, #32768	; 0x8000
+ 800add4:	d1f4      	bne.n	800adc0 <UART_SetConfig+0x1f0>
+ 800add6:	f7fe fc4d 	bl	8009674 <HAL_RCC_GetPCLK2Freq>
+ 800adda:	e79f      	b.n	800ad1c <UART_SetConfig+0x14c>
+ 800addc:	cfff69f3 	.word	0xcfff69f3
+ 800ade0:	40008000 	.word	0x40008000
+ 800ade4:	40013800 	.word	0x40013800
+ 800ade8:	08015044 	.word	0x08015044
+ 800adec:	40004400 	.word	0x40004400
+ 800adf0:	07f55047 	.word	0x07f55047
+ 800adf4:	00f42400 	.word	0x00f42400
+ 800adf8:	08015054 	.word	0x08015054
+ 800adfc:	000ffcff 	.word	0x000ffcff
+
+0800ae00 <UART_AdvFeatureConfig>:
+ 800ae00:	6a83      	ldr	r3, [r0, #40]	; 0x28
+ 800ae02:	07da      	lsls	r2, r3, #31
+ 800ae04:	b510      	push	{r4, lr}
+ 800ae06:	d506      	bpl.n	800ae16 <UART_AdvFeatureConfig+0x16>
+ 800ae08:	6801      	ldr	r1, [r0, #0]
+ 800ae0a:	6ac4      	ldr	r4, [r0, #44]	; 0x2c
+ 800ae0c:	684a      	ldr	r2, [r1, #4]
+ 800ae0e:	f422 3200 	bic.w	r2, r2, #131072	; 0x20000
+ 800ae12:	4322      	orrs	r2, r4
+ 800ae14:	604a      	str	r2, [r1, #4]
+ 800ae16:	079c      	lsls	r4, r3, #30
+ 800ae18:	d506      	bpl.n	800ae28 <UART_AdvFeatureConfig+0x28>
+ 800ae1a:	6801      	ldr	r1, [r0, #0]
+ 800ae1c:	6b04      	ldr	r4, [r0, #48]	; 0x30
+ 800ae1e:	684a      	ldr	r2, [r1, #4]
+ 800ae20:	f422 3280 	bic.w	r2, r2, #65536	; 0x10000
+ 800ae24:	4322      	orrs	r2, r4
+ 800ae26:	604a      	str	r2, [r1, #4]
+ 800ae28:	0759      	lsls	r1, r3, #29
+ 800ae2a:	d506      	bpl.n	800ae3a <UART_AdvFeatureConfig+0x3a>
+ 800ae2c:	6801      	ldr	r1, [r0, #0]
+ 800ae2e:	6b44      	ldr	r4, [r0, #52]	; 0x34
+ 800ae30:	684a      	ldr	r2, [r1, #4]
+ 800ae32:	f422 2280 	bic.w	r2, r2, #262144	; 0x40000
+ 800ae36:	4322      	orrs	r2, r4
+ 800ae38:	604a      	str	r2, [r1, #4]
+ 800ae3a:	071a      	lsls	r2, r3, #28
+ 800ae3c:	d506      	bpl.n	800ae4c <UART_AdvFeatureConfig+0x4c>
+ 800ae3e:	6801      	ldr	r1, [r0, #0]
+ 800ae40:	6b84      	ldr	r4, [r0, #56]	; 0x38
+ 800ae42:	684a      	ldr	r2, [r1, #4]
+ 800ae44:	f422 4200 	bic.w	r2, r2, #32768	; 0x8000
+ 800ae48:	4322      	orrs	r2, r4
+ 800ae4a:	604a      	str	r2, [r1, #4]
+ 800ae4c:	06dc      	lsls	r4, r3, #27
+ 800ae4e:	d506      	bpl.n	800ae5e <UART_AdvFeatureConfig+0x5e>
+ 800ae50:	6801      	ldr	r1, [r0, #0]
+ 800ae52:	6bc4      	ldr	r4, [r0, #60]	; 0x3c
+ 800ae54:	688a      	ldr	r2, [r1, #8]
+ 800ae56:	f422 5280 	bic.w	r2, r2, #4096	; 0x1000
+ 800ae5a:	4322      	orrs	r2, r4
+ 800ae5c:	608a      	str	r2, [r1, #8]
+ 800ae5e:	0699      	lsls	r1, r3, #26
+ 800ae60:	d506      	bpl.n	800ae70 <UART_AdvFeatureConfig+0x70>
+ 800ae62:	6801      	ldr	r1, [r0, #0]
+ 800ae64:	6c04      	ldr	r4, [r0, #64]	; 0x40
+ 800ae66:	688a      	ldr	r2, [r1, #8]
+ 800ae68:	f422 5200 	bic.w	r2, r2, #8192	; 0x2000
+ 800ae6c:	4322      	orrs	r2, r4
+ 800ae6e:	608a      	str	r2, [r1, #8]
+ 800ae70:	065a      	lsls	r2, r3, #25
+ 800ae72:	d50f      	bpl.n	800ae94 <UART_AdvFeatureConfig+0x94>
+ 800ae74:	6801      	ldr	r1, [r0, #0]
+ 800ae76:	6c44      	ldr	r4, [r0, #68]	; 0x44
+ 800ae78:	684a      	ldr	r2, [r1, #4]
+ 800ae7a:	f422 1280 	bic.w	r2, r2, #1048576	; 0x100000
+ 800ae7e:	4322      	orrs	r2, r4
+ 800ae80:	f5b4 1f80 	cmp.w	r4, #1048576	; 0x100000
+ 800ae84:	604a      	str	r2, [r1, #4]
+ 800ae86:	d105      	bne.n	800ae94 <UART_AdvFeatureConfig+0x94>
+ 800ae88:	684a      	ldr	r2, [r1, #4]
+ 800ae8a:	6c84      	ldr	r4, [r0, #72]	; 0x48
+ 800ae8c:	f422 02c0 	bic.w	r2, r2, #6291456	; 0x600000
+ 800ae90:	4322      	orrs	r2, r4
+ 800ae92:	604a      	str	r2, [r1, #4]
+ 800ae94:	061b      	lsls	r3, r3, #24
+ 800ae96:	d506      	bpl.n	800aea6 <UART_AdvFeatureConfig+0xa6>
+ 800ae98:	6802      	ldr	r2, [r0, #0]
+ 800ae9a:	6cc1      	ldr	r1, [r0, #76]	; 0x4c
+ 800ae9c:	6853      	ldr	r3, [r2, #4]
+ 800ae9e:	f423 2300 	bic.w	r3, r3, #524288	; 0x80000
+ 800aea2:	430b      	orrs	r3, r1
+ 800aea4:	6053      	str	r3, [r2, #4]
+ 800aea6:	bd10      	pop	{r4, pc}
+
+0800aea8 <UART_WaitOnFlagUntilTimeout>:
+ 800aea8:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800aeac:	f8dd 8018 	ldr.w	r8, [sp, #24]
+ 800aeb0:	4604      	mov	r4, r0
+ 800aeb2:	460e      	mov	r6, r1
+ 800aeb4:	4615      	mov	r5, r2
+ 800aeb6:	461f      	mov	r7, r3
+ 800aeb8:	6822      	ldr	r2, [r4, #0]
+ 800aeba:	69d3      	ldr	r3, [r2, #28]
+ 800aebc:	ea36 0303 	bics.w	r3, r6, r3
+ 800aec0:	bf0c      	ite	eq
+ 800aec2:	2301      	moveq	r3, #1
+ 800aec4:	2300      	movne	r3, #0
+ 800aec6:	42ab      	cmp	r3, r5
+ 800aec8:	d001      	beq.n	800aece <UART_WaitOnFlagUntilTimeout+0x26>
+ 800aeca:	2000      	movs	r0, #0
+ 800aecc:	e027      	b.n	800af1e <UART_WaitOnFlagUntilTimeout+0x76>
+ 800aece:	f1b8 3fff 	cmp.w	r8, #4294967295
+ 800aed2:	d0f2      	beq.n	800aeba <UART_WaitOnFlagUntilTimeout+0x12>
+ 800aed4:	f7f7 fe3a 	bl	8002b4c <HAL_GetTick>
+ 800aed8:	1bc0      	subs	r0, r0, r7
+ 800aeda:	4540      	cmp	r0, r8
+ 800aedc:	6820      	ldr	r0, [r4, #0]
+ 800aede:	d802      	bhi.n	800aee6 <UART_WaitOnFlagUntilTimeout+0x3e>
+ 800aee0:	f1b8 0f00 	cmp.w	r8, #0
+ 800aee4:	d11d      	bne.n	800af22 <UART_WaitOnFlagUntilTimeout+0x7a>
+ 800aee6:	e850 3f00 	ldrex	r3, [r0]
+ 800aeea:	f423 73d0 	bic.w	r3, r3, #416	; 0x1a0
+ 800aeee:	e840 3200 	strex	r2, r3, [r0]
+ 800aef2:	2a00      	cmp	r2, #0
+ 800aef4:	d1f7      	bne.n	800aee6 <UART_WaitOnFlagUntilTimeout+0x3e>
+ 800aef6:	f100 0308 	add.w	r3, r0, #8
+ 800aefa:	e853 3f00 	ldrex	r3, [r3]
+ 800aefe:	f023 0301 	bic.w	r3, r3, #1
+ 800af02:	f100 0108 	add.w	r1, r0, #8
+ 800af06:	e841 3200 	strex	r2, r3, [r1]
+ 800af0a:	2a00      	cmp	r2, #0
+ 800af0c:	d1f3      	bne.n	800aef6 <UART_WaitOnFlagUntilTimeout+0x4e>
+ 800af0e:	2320      	movs	r3, #32
+ 800af10:	f8c4 3088 	str.w	r3, [r4, #136]	; 0x88
+ 800af14:	f8c4 308c 	str.w	r3, [r4, #140]	; 0x8c
+ 800af18:	f884 2084 	strb.w	r2, [r4, #132]	; 0x84
+ 800af1c:	2003      	movs	r0, #3
+ 800af1e:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800af22:	6803      	ldr	r3, [r0, #0]
+ 800af24:	075a      	lsls	r2, r3, #29
+ 800af26:	d5c7      	bpl.n	800aeb8 <UART_WaitOnFlagUntilTimeout+0x10>
+ 800af28:	69c3      	ldr	r3, [r0, #28]
+ 800af2a:	051b      	lsls	r3, r3, #20
+ 800af2c:	d5c4      	bpl.n	800aeb8 <UART_WaitOnFlagUntilTimeout+0x10>
+ 800af2e:	f44f 6300 	mov.w	r3, #2048	; 0x800
+ 800af32:	6203      	str	r3, [r0, #32]
+ 800af34:	e850 3f00 	ldrex	r3, [r0]
+ 800af38:	f423 73d0 	bic.w	r3, r3, #416	; 0x1a0
+ 800af3c:	e840 3200 	strex	r2, r3, [r0]
+ 800af40:	2a00      	cmp	r2, #0
+ 800af42:	d1f7      	bne.n	800af34 <UART_WaitOnFlagUntilTimeout+0x8c>
+ 800af44:	f100 0308 	add.w	r3, r0, #8
+ 800af48:	e853 3f00 	ldrex	r3, [r3]
+ 800af4c:	f023 0301 	bic.w	r3, r3, #1
+ 800af50:	f100 0108 	add.w	r1, r0, #8
+ 800af54:	e841 3200 	strex	r2, r3, [r1]
+ 800af58:	2a00      	cmp	r2, #0
+ 800af5a:	d1f3      	bne.n	800af44 <UART_WaitOnFlagUntilTimeout+0x9c>
+ 800af5c:	2320      	movs	r3, #32
+ 800af5e:	f8c4 3088 	str.w	r3, [r4, #136]	; 0x88
+ 800af62:	f8c4 308c 	str.w	r3, [r4, #140]	; 0x8c
+ 800af66:	f8c4 3090 	str.w	r3, [r4, #144]	; 0x90
+ 800af6a:	e7d5      	b.n	800af18 <UART_WaitOnFlagUntilTimeout+0x70>
+
+0800af6c <UART_CheckIdleState>:
+ 800af6c:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 800af6e:	4604      	mov	r4, r0
+ 800af70:	2600      	movs	r6, #0
+ 800af72:	f8c0 6090 	str.w	r6, [r0, #144]	; 0x90
+ 800af76:	f7f7 fde9 	bl	8002b4c <HAL_GetTick>
+ 800af7a:	6823      	ldr	r3, [r4, #0]
+ 800af7c:	681b      	ldr	r3, [r3, #0]
+ 800af7e:	071a      	lsls	r2, r3, #28
+ 800af80:	4605      	mov	r5, r0
+ 800af82:	d419      	bmi.n	800afb8 <UART_CheckIdleState+0x4c>
+ 800af84:	6823      	ldr	r3, [r4, #0]
+ 800af86:	681b      	ldr	r3, [r3, #0]
+ 800af88:	075b      	lsls	r3, r3, #29
+ 800af8a:	d50a      	bpl.n	800afa2 <UART_CheckIdleState+0x36>
+ 800af8c:	f06f 437e 	mvn.w	r3, #4261412864	; 0xfe000000
+ 800af90:	9300      	str	r3, [sp, #0]
+ 800af92:	2200      	movs	r2, #0
+ 800af94:	462b      	mov	r3, r5
+ 800af96:	f44f 0180 	mov.w	r1, #4194304	; 0x400000
+ 800af9a:	4620      	mov	r0, r4
+ 800af9c:	f7ff ff84 	bl	800aea8 <UART_WaitOnFlagUntilTimeout>
+ 800afa0:	b9b0      	cbnz	r0, 800afd0 <UART_CheckIdleState+0x64>
+ 800afa2:	2000      	movs	r0, #0
+ 800afa4:	2320      	movs	r3, #32
+ 800afa6:	f8c4 3088 	str.w	r3, [r4, #136]	; 0x88
+ 800afaa:	f884 0084 	strb.w	r0, [r4, #132]	; 0x84
+ 800afae:	f8c4 308c 	str.w	r3, [r4, #140]	; 0x8c
+ 800afb2:	66e0      	str	r0, [r4, #108]	; 0x6c
+ 800afb4:	6720      	str	r0, [r4, #112]	; 0x70
+ 800afb6:	e00c      	b.n	800afd2 <UART_CheckIdleState+0x66>
+ 800afb8:	f06f 437e 	mvn.w	r3, #4261412864	; 0xfe000000
+ 800afbc:	9300      	str	r3, [sp, #0]
+ 800afbe:	4632      	mov	r2, r6
+ 800afc0:	4603      	mov	r3, r0
+ 800afc2:	f44f 1100 	mov.w	r1, #2097152	; 0x200000
+ 800afc6:	4620      	mov	r0, r4
+ 800afc8:	f7ff ff6e 	bl	800aea8 <UART_WaitOnFlagUntilTimeout>
+ 800afcc:	2800      	cmp	r0, #0
+ 800afce:	d0d9      	beq.n	800af84 <UART_CheckIdleState+0x18>
+ 800afd0:	2003      	movs	r0, #3
+ 800afd2:	b002      	add	sp, #8
+ 800afd4:	bd70      	pop	{r4, r5, r6, pc}
+
+0800afd6 <HAL_UART_Init>:
+ 800afd6:	b510      	push	{r4, lr}
+ 800afd8:	4604      	mov	r4, r0
+ 800afda:	b350      	cbz	r0, 800b032 <HAL_UART_Init+0x5c>
+ 800afdc:	f8d0 3088 	ldr.w	r3, [r0, #136]	; 0x88
+ 800afe0:	b91b      	cbnz	r3, 800afea <HAL_UART_Init+0x14>
+ 800afe2:	f880 3084 	strb.w	r3, [r0, #132]	; 0x84
+ 800afe6:	f7f7 ff71 	bl	8002ecc <HAL_UART_MspInit>
+ 800afea:	6822      	ldr	r2, [r4, #0]
+ 800afec:	2324      	movs	r3, #36	; 0x24
+ 800afee:	f8c4 3088 	str.w	r3, [r4, #136]	; 0x88
+ 800aff2:	6813      	ldr	r3, [r2, #0]
+ 800aff4:	f023 0301 	bic.w	r3, r3, #1
+ 800aff8:	6013      	str	r3, [r2, #0]
+ 800affa:	4620      	mov	r0, r4
+ 800affc:	f7ff fde8 	bl	800abd0 <UART_SetConfig>
+ 800b000:	2801      	cmp	r0, #1
+ 800b002:	d016      	beq.n	800b032 <HAL_UART_Init+0x5c>
+ 800b004:	6aa3      	ldr	r3, [r4, #40]	; 0x28
+ 800b006:	b113      	cbz	r3, 800b00e <HAL_UART_Init+0x38>
+ 800b008:	4620      	mov	r0, r4
+ 800b00a:	f7ff fef9 	bl	800ae00 <UART_AdvFeatureConfig>
+ 800b00e:	6823      	ldr	r3, [r4, #0]
+ 800b010:	685a      	ldr	r2, [r3, #4]
+ 800b012:	f422 4290 	bic.w	r2, r2, #18432	; 0x4800
+ 800b016:	605a      	str	r2, [r3, #4]
+ 800b018:	689a      	ldr	r2, [r3, #8]
+ 800b01a:	f022 022a 	bic.w	r2, r2, #42	; 0x2a
+ 800b01e:	609a      	str	r2, [r3, #8]
+ 800b020:	681a      	ldr	r2, [r3, #0]
+ 800b022:	f042 0201 	orr.w	r2, r2, #1
+ 800b026:	4620      	mov	r0, r4
+ 800b028:	601a      	str	r2, [r3, #0]
+ 800b02a:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 800b02e:	f7ff bf9d 	b.w	800af6c <UART_CheckIdleState>
+ 800b032:	2001      	movs	r0, #1
+ 800b034:	bd10      	pop	{r4, pc}
+	...
+
+0800b038 <UART_Start_Receive_IT>:
+ 800b038:	b530      	push	{r4, r5, lr}
+ 800b03a:	6581      	str	r1, [r0, #88]	; 0x58
+ 800b03c:	6881      	ldr	r1, [r0, #8]
+ 800b03e:	f8a0 205c 	strh.w	r2, [r0, #92]	; 0x5c
+ 800b042:	2300      	movs	r3, #0
+ 800b044:	f5b1 5f80 	cmp.w	r1, #4096	; 0x1000
+ 800b048:	f8a0 205e 	strh.w	r2, [r0, #94]	; 0x5e
+ 800b04c:	6743      	str	r3, [r0, #116]	; 0x74
+ 800b04e:	d135      	bne.n	800b0bc <UART_Start_Receive_IT+0x84>
+ 800b050:	6903      	ldr	r3, [r0, #16]
+ 800b052:	2b00      	cmp	r3, #0
+ 800b054:	f240 13ff 	movw	r3, #511	; 0x1ff
+ 800b058:	bf18      	it	ne
+ 800b05a:	23ff      	movne	r3, #255	; 0xff
+ 800b05c:	f8a0 3060 	strh.w	r3, [r0, #96]	; 0x60
+ 800b060:	2300      	movs	r3, #0
+ 800b062:	f8c0 3090 	str.w	r3, [r0, #144]	; 0x90
+ 800b066:	2322      	movs	r3, #34	; 0x22
+ 800b068:	f8c0 308c 	str.w	r3, [r0, #140]	; 0x8c
+ 800b06c:	6801      	ldr	r1, [r0, #0]
+ 800b06e:	f101 0308 	add.w	r3, r1, #8
+ 800b072:	e853 3f00 	ldrex	r3, [r3]
+ 800b076:	f043 0301 	orr.w	r3, r3, #1
+ 800b07a:	3108      	adds	r1, #8
+ 800b07c:	e841 3400 	strex	r4, r3, [r1]
+ 800b080:	6803      	ldr	r3, [r0, #0]
+ 800b082:	2c00      	cmp	r4, #0
+ 800b084:	d1f2      	bne.n	800b06c <UART_Start_Receive_IT+0x34>
+ 800b086:	6e45      	ldr	r5, [r0, #100]	; 0x64
+ 800b088:	6884      	ldr	r4, [r0, #8]
+ 800b08a:	6901      	ldr	r1, [r0, #16]
+ 800b08c:	f1b5 5f00 	cmp.w	r5, #536870912	; 0x20000000
+ 800b090:	d134      	bne.n	800b0fc <UART_Start_Receive_IT+0xc4>
+ 800b092:	f8b0 5068 	ldrh.w	r5, [r0, #104]	; 0x68
+ 800b096:	4295      	cmp	r5, r2
+ 800b098:	d830      	bhi.n	800b0fc <UART_Start_Receive_IT+0xc4>
+ 800b09a:	f5b4 5f80 	cmp.w	r4, #4096	; 0x1000
+ 800b09e:	d11d      	bne.n	800b0dc <UART_Start_Receive_IT+0xa4>
+ 800b0a0:	4a25      	ldr	r2, [pc, #148]	; (800b138 <UART_Start_Receive_IT+0x100>)
+ 800b0a2:	4c26      	ldr	r4, [pc, #152]	; (800b13c <UART_Start_Receive_IT+0x104>)
+ 800b0a4:	2900      	cmp	r1, #0
+ 800b0a6:	bf18      	it	ne
+ 800b0a8:	4622      	movne	r2, r4
+ 800b0aa:	6742      	str	r2, [r0, #116]	; 0x74
+ 800b0ac:	b1c1      	cbz	r1, 800b0e0 <UART_Start_Receive_IT+0xa8>
+ 800b0ae:	e853 2f00 	ldrex	r2, [r3]
+ 800b0b2:	f442 7280 	orr.w	r2, r2, #256	; 0x100
+ 800b0b6:	e843 2100 	strex	r1, r2, [r3]
+ 800b0ba:	e7f7      	b.n	800b0ac <UART_Start_Receive_IT+0x74>
+ 800b0bc:	b929      	cbnz	r1, 800b0ca <UART_Start_Receive_IT+0x92>
+ 800b0be:	6903      	ldr	r3, [r0, #16]
+ 800b0c0:	2b00      	cmp	r3, #0
+ 800b0c2:	bf14      	ite	ne
+ 800b0c4:	237f      	movne	r3, #127	; 0x7f
+ 800b0c6:	23ff      	moveq	r3, #255	; 0xff
+ 800b0c8:	e7c8      	b.n	800b05c <UART_Start_Receive_IT+0x24>
+ 800b0ca:	f1b1 5f80 	cmp.w	r1, #268435456	; 0x10000000
+ 800b0ce:	d1c5      	bne.n	800b05c <UART_Start_Receive_IT+0x24>
+ 800b0d0:	6903      	ldr	r3, [r0, #16]
+ 800b0d2:	2b00      	cmp	r3, #0
+ 800b0d4:	bf0c      	ite	eq
+ 800b0d6:	237f      	moveq	r3, #127	; 0x7f
+ 800b0d8:	233f      	movne	r3, #63	; 0x3f
+ 800b0da:	e7bf      	b.n	800b05c <UART_Start_Receive_IT+0x24>
+ 800b0dc:	4a17      	ldr	r2, [pc, #92]	; (800b13c <UART_Start_Receive_IT+0x104>)
+ 800b0de:	e7e4      	b.n	800b0aa <UART_Start_Receive_IT+0x72>
+ 800b0e0:	f103 0208 	add.w	r2, r3, #8
+ 800b0e4:	e852 2f00 	ldrex	r2, [r2]
+ 800b0e8:	f042 5280 	orr.w	r2, r2, #268435456	; 0x10000000
+ 800b0ec:	f103 0008 	add.w	r0, r3, #8
+ 800b0f0:	e840 2100 	strex	r1, r2, [r0]
+ 800b0f4:	2900      	cmp	r1, #0
+ 800b0f6:	d1f3      	bne.n	800b0e0 <UART_Start_Receive_IT+0xa8>
+ 800b0f8:	2000      	movs	r0, #0
+ 800b0fa:	bd30      	pop	{r4, r5, pc}
+ 800b0fc:	f5b4 5f80 	cmp.w	r4, #4096	; 0x1000
+ 800b100:	d10f      	bne.n	800b122 <UART_Start_Receive_IT+0xea>
+ 800b102:	4a0f      	ldr	r2, [pc, #60]	; (800b140 <UART_Start_Receive_IT+0x108>)
+ 800b104:	4c0f      	ldr	r4, [pc, #60]	; (800b144 <UART_Start_Receive_IT+0x10c>)
+ 800b106:	2900      	cmp	r1, #0
+ 800b108:	bf18      	it	ne
+ 800b10a:	4622      	movne	r2, r4
+ 800b10c:	6742      	str	r2, [r0, #116]	; 0x74
+ 800b10e:	b151      	cbz	r1, 800b126 <UART_Start_Receive_IT+0xee>
+ 800b110:	e853 2f00 	ldrex	r2, [r3]
+ 800b114:	f442 7290 	orr.w	r2, r2, #288	; 0x120
+ 800b118:	e843 2100 	strex	r1, r2, [r3]
+ 800b11c:	2900      	cmp	r1, #0
+ 800b11e:	d1f7      	bne.n	800b110 <UART_Start_Receive_IT+0xd8>
+ 800b120:	e7ea      	b.n	800b0f8 <UART_Start_Receive_IT+0xc0>
+ 800b122:	4a08      	ldr	r2, [pc, #32]	; (800b144 <UART_Start_Receive_IT+0x10c>)
+ 800b124:	e7f2      	b.n	800b10c <UART_Start_Receive_IT+0xd4>
+ 800b126:	e853 2f00 	ldrex	r2, [r3]
+ 800b12a:	f042 0220 	orr.w	r2, r2, #32
+ 800b12e:	e843 2100 	strex	r1, r2, [r3]
+ 800b132:	2900      	cmp	r1, #0
+ 800b134:	d1f7      	bne.n	800b126 <UART_Start_Receive_IT+0xee>
+ 800b136:	e7df      	b.n	800b0f8 <UART_Start_Receive_IT+0xc0>
+ 800b138:	0800aa39 	.word	0x0800aa39
+ 800b13c:	0800a89d 	.word	0x0800a89d
+ 800b140:	0800a7d9 	.word	0x0800a7d9
+ 800b144:	0800a70d 	.word	0x0800a70d
+
+0800b148 <HAL_UART_Receive_IT>:
+ 800b148:	f8d0 308c 	ldr.w	r3, [r0, #140]	; 0x8c
+ 800b14c:	2b20      	cmp	r3, #32
+ 800b14e:	b430      	push	{r4, r5}
+ 800b150:	d115      	bne.n	800b17e <HAL_UART_Receive_IT+0x36>
+ 800b152:	b1b9      	cbz	r1, 800b184 <HAL_UART_Receive_IT+0x3c>
+ 800b154:	b1b2      	cbz	r2, 800b184 <HAL_UART_Receive_IT+0x3c>
+ 800b156:	2300      	movs	r3, #0
+ 800b158:	6804      	ldr	r4, [r0, #0]
+ 800b15a:	66c3      	str	r3, [r0, #108]	; 0x6c
+ 800b15c:	4b0a      	ldr	r3, [pc, #40]	; (800b188 <HAL_UART_Receive_IT+0x40>)
+ 800b15e:	429c      	cmp	r4, r3
+ 800b160:	d00a      	beq.n	800b178 <HAL_UART_Receive_IT+0x30>
+ 800b162:	6863      	ldr	r3, [r4, #4]
+ 800b164:	021b      	lsls	r3, r3, #8
+ 800b166:	d507      	bpl.n	800b178 <HAL_UART_Receive_IT+0x30>
+ 800b168:	e854 3f00 	ldrex	r3, [r4]
+ 800b16c:	f043 6380 	orr.w	r3, r3, #67108864	; 0x4000000
+ 800b170:	e844 3500 	strex	r5, r3, [r4]
+ 800b174:	2d00      	cmp	r5, #0
+ 800b176:	d1f7      	bne.n	800b168 <HAL_UART_Receive_IT+0x20>
+ 800b178:	bc30      	pop	{r4, r5}
+ 800b17a:	f7ff bf5d 	b.w	800b038 <UART_Start_Receive_IT>
+ 800b17e:	2002      	movs	r0, #2
+ 800b180:	bc30      	pop	{r4, r5}
+ 800b182:	4770      	bx	lr
+ 800b184:	2001      	movs	r0, #1
+ 800b186:	e7fb      	b.n	800b180 <HAL_UART_Receive_IT+0x38>
+ 800b188:	40008000 	.word	0x40008000
+
+0800b18c <UARTEx_SetNbDataToProcess>:
+ 800b18c:	6e43      	ldr	r3, [r0, #100]	; 0x64
+ 800b18e:	b530      	push	{r4, r5, lr}
+ 800b190:	b92b      	cbnz	r3, 800b19e <UARTEx_SetNbDataToProcess+0x12>
+ 800b192:	2301      	movs	r3, #1
+ 800b194:	f8a0 306a 	strh.w	r3, [r0, #106]	; 0x6a
+ 800b198:	f8a0 3068 	strh.w	r3, [r0, #104]	; 0x68
+ 800b19c:	bd30      	pop	{r4, r5, pc}
+ 800b19e:	6803      	ldr	r3, [r0, #0]
+ 800b1a0:	4d09      	ldr	r5, [pc, #36]	; (800b1c8 <UARTEx_SetNbDataToProcess+0x3c>)
+ 800b1a2:	689a      	ldr	r2, [r3, #8]
+ 800b1a4:	6899      	ldr	r1, [r3, #8]
+ 800b1a6:	4c09      	ldr	r4, [pc, #36]	; (800b1cc <UARTEx_SetNbDataToProcess+0x40>)
+ 800b1a8:	0f49      	lsrs	r1, r1, #29
+ 800b1aa:	f3c2 6242 	ubfx	r2, r2, #25, #3
+ 800b1ae:	5c6b      	ldrb	r3, [r5, r1]
+ 800b1b0:	5c61      	ldrb	r1, [r4, r1]
+ 800b1b2:	00db      	lsls	r3, r3, #3
+ 800b1b4:	fbb3 f3f1 	udiv	r3, r3, r1
+ 800b1b8:	f8a0 306a 	strh.w	r3, [r0, #106]	; 0x6a
+ 800b1bc:	5cab      	ldrb	r3, [r5, r2]
+ 800b1be:	5ca2      	ldrb	r2, [r4, r2]
+ 800b1c0:	00db      	lsls	r3, r3, #3
+ 800b1c2:	fbb3 f3f2 	udiv	r3, r3, r2
+ 800b1c6:	e7e7      	b.n	800b198 <UARTEx_SetNbDataToProcess+0xc>
+ 800b1c8:	08015074 	.word	0x08015074
+ 800b1cc:	0801506c 	.word	0x0801506c
+
+0800b1d0 <HAL_UARTEx_WakeupCallback>:
+ 800b1d0:	4770      	bx	lr
+
+0800b1d2 <HAL_UARTEx_RxFifoFullCallback>:
+ 800b1d2:	4770      	bx	lr
+
+0800b1d4 <HAL_UARTEx_TxFifoEmptyCallback>:
+ 800b1d4:	4770      	bx	lr
+
+0800b1d6 <HAL_UARTEx_StopModeWakeUpSourceConfig>:
+ 800b1d6:	b51f      	push	{r0, r1, r2, r3, r4, lr}
+ 800b1d8:	ab04      	add	r3, sp, #16
+ 800b1da:	e903 0006 	stmdb	r3, {r1, r2}
+ 800b1de:	f890 3084 	ldrb.w	r3, [r0, #132]	; 0x84
+ 800b1e2:	2b01      	cmp	r3, #1
+ 800b1e4:	4604      	mov	r4, r0
+ 800b1e6:	d03a      	beq.n	800b25e <HAL_UARTEx_StopModeWakeUpSourceConfig+0x88>
+ 800b1e8:	2301      	movs	r3, #1
+ 800b1ea:	f880 3084 	strb.w	r3, [r0, #132]	; 0x84
+ 800b1ee:	2324      	movs	r3, #36	; 0x24
+ 800b1f0:	f8c0 3088 	str.w	r3, [r0, #136]	; 0x88
+ 800b1f4:	6803      	ldr	r3, [r0, #0]
+ 800b1f6:	681a      	ldr	r2, [r3, #0]
+ 800b1f8:	f022 0201 	bic.w	r2, r2, #1
+ 800b1fc:	601a      	str	r2, [r3, #0]
+ 800b1fe:	689a      	ldr	r2, [r3, #8]
+ 800b200:	f422 1240 	bic.w	r2, r2, #3145728	; 0x300000
+ 800b204:	430a      	orrs	r2, r1
+ 800b206:	609a      	str	r2, [r3, #8]
+ 800b208:	b971      	cbnz	r1, 800b228 <HAL_UARTEx_StopModeWakeUpSourceConfig+0x52>
+ 800b20a:	685a      	ldr	r2, [r3, #4]
+ 800b20c:	f8bd 000c 	ldrh.w	r0, [sp, #12]
+ 800b210:	f89d 100e 	ldrb.w	r1, [sp, #14]
+ 800b214:	f022 0210 	bic.w	r2, r2, #16
+ 800b218:	4302      	orrs	r2, r0
+ 800b21a:	605a      	str	r2, [r3, #4]
+ 800b21c:	685a      	ldr	r2, [r3, #4]
+ 800b21e:	f022 427f 	bic.w	r2, r2, #4278190080	; 0xff000000
+ 800b222:	ea42 6201 	orr.w	r2, r2, r1, lsl #24
+ 800b226:	605a      	str	r2, [r3, #4]
+ 800b228:	681a      	ldr	r2, [r3, #0]
+ 800b22a:	f042 0201 	orr.w	r2, r2, #1
+ 800b22e:	601a      	str	r2, [r3, #0]
+ 800b230:	f7f7 fc8c 	bl	8002b4c <HAL_GetTick>
+ 800b234:	f06f 427e 	mvn.w	r2, #4261412864	; 0xfe000000
+ 800b238:	4603      	mov	r3, r0
+ 800b23a:	9200      	str	r2, [sp, #0]
+ 800b23c:	f44f 0180 	mov.w	r1, #4194304	; 0x400000
+ 800b240:	2200      	movs	r2, #0
+ 800b242:	4620      	mov	r0, r4
+ 800b244:	f7ff fe30 	bl	800aea8 <UART_WaitOnFlagUntilTimeout>
+ 800b248:	b938      	cbnz	r0, 800b25a <HAL_UARTEx_StopModeWakeUpSourceConfig+0x84>
+ 800b24a:	2320      	movs	r3, #32
+ 800b24c:	f8c4 3088 	str.w	r3, [r4, #136]	; 0x88
+ 800b250:	2300      	movs	r3, #0
+ 800b252:	f884 3084 	strb.w	r3, [r4, #132]	; 0x84
+ 800b256:	b004      	add	sp, #16
+ 800b258:	bd10      	pop	{r4, pc}
+ 800b25a:	2003      	movs	r0, #3
+ 800b25c:	e7f8      	b.n	800b250 <HAL_UARTEx_StopModeWakeUpSourceConfig+0x7a>
+ 800b25e:	2002      	movs	r0, #2
+ 800b260:	e7f9      	b.n	800b256 <HAL_UARTEx_StopModeWakeUpSourceConfig+0x80>
+
+0800b262 <HAL_UARTEx_EnableStopMode>:
+ 800b262:	f890 3084 	ldrb.w	r3, [r0, #132]	; 0x84
+ 800b266:	2b01      	cmp	r3, #1
+ 800b268:	d00f      	beq.n	800b28a <HAL_UARTEx_EnableStopMode+0x28>
+ 800b26a:	2301      	movs	r3, #1
+ 800b26c:	f880 3084 	strb.w	r3, [r0, #132]	; 0x84
+ 800b270:	6801      	ldr	r1, [r0, #0]
+ 800b272:	e851 2f00 	ldrex	r2, [r1]
+ 800b276:	f042 0202 	orr.w	r2, r2, #2
+ 800b27a:	e841 2300 	strex	r3, r2, [r1]
+ 800b27e:	2b00      	cmp	r3, #0
+ 800b280:	d1f6      	bne.n	800b270 <HAL_UARTEx_EnableStopMode+0xe>
+ 800b282:	f880 3084 	strb.w	r3, [r0, #132]	; 0x84
+ 800b286:	4618      	mov	r0, r3
+ 800b288:	4770      	bx	lr
+ 800b28a:	2002      	movs	r0, #2
+ 800b28c:	4770      	bx	lr
+
+0800b28e <HAL_UARTEx_EnableFifoMode>:
+ 800b28e:	b510      	push	{r4, lr}
+ 800b290:	f890 3084 	ldrb.w	r3, [r0, #132]	; 0x84
+ 800b294:	2b01      	cmp	r3, #1
+ 800b296:	4604      	mov	r4, r0
+ 800b298:	d017      	beq.n	800b2ca <HAL_UARTEx_EnableFifoMode+0x3c>
+ 800b29a:	2324      	movs	r3, #36	; 0x24
+ 800b29c:	f8c0 3088 	str.w	r3, [r0, #136]	; 0x88
+ 800b2a0:	6803      	ldr	r3, [r0, #0]
+ 800b2a2:	681a      	ldr	r2, [r3, #0]
+ 800b2a4:	6819      	ldr	r1, [r3, #0]
+ 800b2a6:	f021 0101 	bic.w	r1, r1, #1
+ 800b2aa:	6019      	str	r1, [r3, #0]
+ 800b2ac:	f042 5200 	orr.w	r2, r2, #536870912	; 0x20000000
+ 800b2b0:	f04f 5100 	mov.w	r1, #536870912	; 0x20000000
+ 800b2b4:	6641      	str	r1, [r0, #100]	; 0x64
+ 800b2b6:	601a      	str	r2, [r3, #0]
+ 800b2b8:	f7ff ff68 	bl	800b18c <UARTEx_SetNbDataToProcess>
+ 800b2bc:	2320      	movs	r3, #32
+ 800b2be:	f8c0 3088 	str.w	r3, [r0, #136]	; 0x88
+ 800b2c2:	2000      	movs	r0, #0
+ 800b2c4:	f884 0084 	strb.w	r0, [r4, #132]	; 0x84
+ 800b2c8:	bd10      	pop	{r4, pc}
+ 800b2ca:	2002      	movs	r0, #2
+ 800b2cc:	e7fc      	b.n	800b2c8 <HAL_UARTEx_EnableFifoMode+0x3a>
+
+0800b2ce <HAL_UARTEx_SetTxFifoThreshold>:
+ 800b2ce:	b570      	push	{r4, r5, r6, lr}
+ 800b2d0:	f890 3084 	ldrb.w	r3, [r0, #132]	; 0x84
+ 800b2d4:	2b01      	cmp	r3, #1
+ 800b2d6:	4604      	mov	r4, r0
+ 800b2d8:	d017      	beq.n	800b30a <HAL_UARTEx_SetTxFifoThreshold+0x3c>
+ 800b2da:	6805      	ldr	r5, [r0, #0]
+ 800b2dc:	2324      	movs	r3, #36	; 0x24
+ 800b2de:	f8c0 3088 	str.w	r3, [r0, #136]	; 0x88
+ 800b2e2:	682e      	ldr	r6, [r5, #0]
+ 800b2e4:	682b      	ldr	r3, [r5, #0]
+ 800b2e6:	f023 0301 	bic.w	r3, r3, #1
+ 800b2ea:	602b      	str	r3, [r5, #0]
+ 800b2ec:	68ab      	ldr	r3, [r5, #8]
+ 800b2ee:	f023 4360 	bic.w	r3, r3, #3758096384	; 0xe0000000
+ 800b2f2:	4319      	orrs	r1, r3
+ 800b2f4:	60a9      	str	r1, [r5, #8]
+ 800b2f6:	f7ff ff49 	bl	800b18c <UARTEx_SetNbDataToProcess>
+ 800b2fa:	2320      	movs	r3, #32
+ 800b2fc:	602e      	str	r6, [r5, #0]
+ 800b2fe:	f8c0 3088 	str.w	r3, [r0, #136]	; 0x88
+ 800b302:	2000      	movs	r0, #0
+ 800b304:	f884 0084 	strb.w	r0, [r4, #132]	; 0x84
+ 800b308:	bd70      	pop	{r4, r5, r6, pc}
+ 800b30a:	2002      	movs	r0, #2
+ 800b30c:	e7fc      	b.n	800b308 <HAL_UARTEx_SetTxFifoThreshold+0x3a>
+
+0800b30e <HAL_UARTEx_SetRxFifoThreshold>:
+ 800b30e:	b570      	push	{r4, r5, r6, lr}
+ 800b310:	f890 3084 	ldrb.w	r3, [r0, #132]	; 0x84
+ 800b314:	2b01      	cmp	r3, #1
+ 800b316:	4604      	mov	r4, r0
+ 800b318:	d017      	beq.n	800b34a <HAL_UARTEx_SetRxFifoThreshold+0x3c>
+ 800b31a:	6805      	ldr	r5, [r0, #0]
+ 800b31c:	2324      	movs	r3, #36	; 0x24
+ 800b31e:	f8c0 3088 	str.w	r3, [r0, #136]	; 0x88
+ 800b322:	682e      	ldr	r6, [r5, #0]
+ 800b324:	682b      	ldr	r3, [r5, #0]
+ 800b326:	f023 0301 	bic.w	r3, r3, #1
+ 800b32a:	602b      	str	r3, [r5, #0]
+ 800b32c:	68ab      	ldr	r3, [r5, #8]
+ 800b32e:	f023 6360 	bic.w	r3, r3, #234881024	; 0xe000000
+ 800b332:	4319      	orrs	r1, r3
+ 800b334:	60a9      	str	r1, [r5, #8]
+ 800b336:	f7ff ff29 	bl	800b18c <UARTEx_SetNbDataToProcess>
+ 800b33a:	2320      	movs	r3, #32
+ 800b33c:	602e      	str	r6, [r5, #0]
+ 800b33e:	f8c0 3088 	str.w	r3, [r0, #136]	; 0x88
+ 800b342:	2000      	movs	r0, #0
+ 800b344:	f884 0084 	strb.w	r0, [r4, #132]	; 0x84
+ 800b348:	bd70      	pop	{r4, r5, r6, pc}
+ 800b34a:	2002      	movs	r0, #2
+ 800b34c:	e7fc      	b.n	800b348 <HAL_UARTEx_SetRxFifoThreshold+0x3a>
+	...
+
+0800b350 <LmHandlerPackageIsTxPending>:
+ 800b350:	b538      	push	{r3, r4, r5, lr}
+ 800b352:	4d09      	ldr	r5, [pc, #36]	; (800b378 <LmHandlerPackageIsTxPending+0x28>)
+ 800b354:	2400      	movs	r4, #0
+ 800b356:	f855 3b04 	ldr.w	r3, [r5], #4
+ 800b35a:	b933      	cbnz	r3, 800b36a <LmHandlerPackageIsTxPending+0x1a>
+ 800b35c:	3401      	adds	r4, #1
+ 800b35e:	b2e3      	uxtb	r3, r4
+ 800b360:	2b05      	cmp	r3, #5
+ 800b362:	b264      	sxtb	r4, r4
+ 800b364:	d1f7      	bne.n	800b356 <LmHandlerPackageIsTxPending+0x6>
+ 800b366:	2000      	movs	r0, #0
+ 800b368:	bd38      	pop	{r3, r4, r5, pc}
+ 800b36a:	2c00      	cmp	r4, #0
+ 800b36c:	d0f6      	beq.n	800b35c <LmHandlerPackageIsTxPending+0xc>
+ 800b36e:	691b      	ldr	r3, [r3, #16]
+ 800b370:	4798      	blx	r3
+ 800b372:	2800      	cmp	r0, #0
+ 800b374:	d0f2      	beq.n	800b35c <LmHandlerPackageIsTxPending+0xc>
+ 800b376:	e7f7      	b.n	800b368 <LmHandlerPackageIsTxPending+0x18>
+ 800b378:	20001070 	.word	0x20001070
+
+0800b37c <LmHandlerDeviceTimeReq>:
+ 800b37c:	b57f      	push	{r0, r1, r2, r3, r4, r5, r6, lr}
+ 800b37e:	230a      	movs	r3, #10
+ 800b380:	a801      	add	r0, sp, #4
+ 800b382:	f88d 3004 	strb.w	r3, [sp, #4]
+ 800b386:	f003 f8d9 	bl	800e53c <LoRaMacMlmeRequest>
+ 800b38a:	3800      	subs	r0, #0
+ 800b38c:	4b04      	ldr	r3, [pc, #16]	; (800b3a0 <LmHandlerDeviceTimeReq+0x24>)
+ 800b38e:	9a05      	ldr	r2, [sp, #20]
+ 800b390:	601a      	str	r2, [r3, #0]
+ 800b392:	bf18      	it	ne
+ 800b394:	2001      	movne	r0, #1
+ 800b396:	4240      	negs	r0, r0
+ 800b398:	b007      	add	sp, #28
+ 800b39a:	f85d fb04 	ldr.w	pc, [sp], #4
+ 800b39e:	bf00      	nop
+ 800b3a0:	20001068 	.word	0x20001068
+
+0800b3a4 <MlmeIndication>:
+ 800b3a4:	b570      	push	{r4, r5, r6, lr}
+ 800b3a6:	4604      	mov	r4, r0
+ 800b3a8:	460b      	mov	r3, r1
+ 800b3aa:	4914      	ldr	r1, [pc, #80]	; (800b3fc <MlmeIndication+0x58>)
+ 800b3ac:	7862      	ldrb	r2, [r4, #1]
+ 800b3ae:	704a      	strb	r2, [r1, #1]
+ 800b3b0:	2000      	movs	r0, #0
+ 800b3b2:	78a2      	ldrb	r2, [r4, #2]
+ 800b3b4:	720a      	strb	r2, [r1, #8]
+ 800b3b6:	7008      	strb	r0, [r1, #0]
+ 800b3b8:	881a      	ldrh	r2, [r3, #0]
+ 800b3ba:	724a      	strb	r2, [r1, #9]
+ 800b3bc:	789a      	ldrb	r2, [r3, #2]
+ 800b3be:	728a      	strb	r2, [r1, #10]
+ 800b3c0:	78db      	ldrb	r3, [r3, #3]
+ 800b3c2:	740b      	strb	r3, [r1, #16]
+ 800b3c4:	6863      	ldr	r3, [r4, #4]
+ 800b3c6:	60cb      	str	r3, [r1, #12]
+ 800b3c8:	4b0d      	ldr	r3, [pc, #52]	; (800b400 <MlmeIndication+0x5c>)
+ 800b3ca:	681b      	ldr	r3, [r3, #0]
+ 800b3cc:	6ada      	ldr	r2, [r3, #44]	; 0x2c
+ 800b3ce:	b12a      	cbz	r2, 800b3dc <MlmeIndication+0x38>
+ 800b3d0:	7823      	ldrb	r3, [r4, #0]
+ 800b3d2:	f003 03fb 	and.w	r3, r3, #251	; 0xfb
+ 800b3d6:	2b0b      	cmp	r3, #11
+ 800b3d8:	d000      	beq.n	800b3dc <MlmeIndication+0x38>
+ 800b3da:	4790      	blx	r2
+ 800b3dc:	4e09      	ldr	r6, [pc, #36]	; (800b404 <MlmeIndication+0x60>)
+ 800b3de:	2500      	movs	r5, #0
+ 800b3e0:	f856 3b04 	ldr.w	r3, [r6], #4
+ 800b3e4:	b11b      	cbz	r3, 800b3ee <MlmeIndication+0x4a>
+ 800b3e6:	6a9b      	ldr	r3, [r3, #40]	; 0x28
+ 800b3e8:	b10b      	cbz	r3, 800b3ee <MlmeIndication+0x4a>
+ 800b3ea:	4620      	mov	r0, r4
+ 800b3ec:	4798      	blx	r3
+ 800b3ee:	3501      	adds	r5, #1
+ 800b3f0:	b2eb      	uxtb	r3, r5
+ 800b3f2:	2b05      	cmp	r3, #5
+ 800b3f4:	b26d      	sxtb	r5, r5
+ 800b3f6:	d1f3      	bne.n	800b3e0 <MlmeIndication+0x3c>
+ 800b3f8:	bd70      	pop	{r4, r5, r6, pc}
+ 800b3fa:	bf00      	nop
+ 800b3fc:	20000848 	.word	0x20000848
+ 800b400:	2000106c 	.word	0x2000106c
+ 800b404:	20001070 	.word	0x20001070
+
+0800b408 <McpsConfirm>:
+ 800b408:	b570      	push	{r4, r5, r6, lr}
+ 800b40a:	4604      	mov	r4, r0
+ 800b40c:	4811      	ldr	r0, [pc, #68]	; (800b454 <McpsConfirm+0x4c>)
+ 800b40e:	2301      	movs	r3, #1
+ 800b410:	7003      	strb	r3, [r0, #0]
+ 800b412:	7863      	ldrb	r3, [r4, #1]
+ 800b414:	7043      	strb	r3, [r0, #1]
+ 800b416:	78a3      	ldrb	r3, [r4, #2]
+ 800b418:	7283      	strb	r3, [r0, #10]
+ 800b41a:	68e3      	ldr	r3, [r4, #12]
+ 800b41c:	60c3      	str	r3, [r0, #12]
+ 800b41e:	78e3      	ldrb	r3, [r4, #3]
+ 800b420:	7603      	strb	r3, [r0, #24]
+ 800b422:	6923      	ldr	r3, [r4, #16]
+ 800b424:	7643      	strb	r3, [r0, #25]
+ 800b426:	7923      	ldrb	r3, [r4, #4]
+ 800b428:	7243      	strb	r3, [r0, #9]
+ 800b42a:	4b0b      	ldr	r3, [pc, #44]	; (800b458 <McpsConfirm+0x50>)
+ 800b42c:	681b      	ldr	r3, [r3, #0]
+ 800b42e:	6a9b      	ldr	r3, [r3, #40]	; 0x28
+ 800b430:	b103      	cbz	r3, 800b434 <McpsConfirm+0x2c>
+ 800b432:	4798      	blx	r3
+ 800b434:	4e09      	ldr	r6, [pc, #36]	; (800b45c <McpsConfirm+0x54>)
+ 800b436:	2500      	movs	r5, #0
+ 800b438:	f856 3b04 	ldr.w	r3, [r6], #4
+ 800b43c:	b11b      	cbz	r3, 800b446 <McpsConfirm+0x3e>
+ 800b43e:	69db      	ldr	r3, [r3, #28]
+ 800b440:	b10b      	cbz	r3, 800b446 <McpsConfirm+0x3e>
+ 800b442:	4620      	mov	r0, r4
+ 800b444:	4798      	blx	r3
+ 800b446:	3501      	adds	r5, #1
+ 800b448:	b2eb      	uxtb	r3, r5
+ 800b44a:	2b05      	cmp	r3, #5
+ 800b44c:	b26d      	sxtb	r5, r5
+ 800b44e:	d1f3      	bne.n	800b438 <McpsConfirm+0x30>
+ 800b450:	bd70      	pop	{r4, r5, r6, pc}
+ 800b452:	bf00      	nop
+ 800b454:	2000085c 	.word	0x2000085c
+ 800b458:	2000106c 	.word	0x2000106c
+ 800b45c:	20001070 	.word	0x20001070
+
+0800b460 <LmHandlerProcess>:
+ 800b460:	b538      	push	{r3, r4, r5, lr}
+ 800b462:	f001 fe11 	bl	800d088 <LoRaMacProcess>
+ 800b466:	4d0c      	ldr	r5, [pc, #48]	; (800b498 <LmHandlerProcess+0x38>)
+ 800b468:	2405      	movs	r4, #5
+ 800b46a:	f855 3b04 	ldr.w	r3, [r5], #4
+ 800b46e:	b15b      	cbz	r3, 800b488 <LmHandlerProcess+0x28>
+ 800b470:	695b      	ldr	r3, [r3, #20]
+ 800b472:	b14b      	cbz	r3, 800b488 <LmHandlerProcess+0x28>
+ 800b474:	f855 3c04 	ldr.w	r3, [r5, #-4]
+ 800b478:	689b      	ldr	r3, [r3, #8]
+ 800b47a:	b12b      	cbz	r3, 800b488 <LmHandlerProcess+0x28>
+ 800b47c:	4798      	blx	r3
+ 800b47e:	b118      	cbz	r0, 800b488 <LmHandlerProcess+0x28>
+ 800b480:	f855 3c04 	ldr.w	r3, [r5, #-4]
+ 800b484:	695b      	ldr	r3, [r3, #20]
+ 800b486:	4798      	blx	r3
+ 800b488:	3c01      	subs	r4, #1
+ 800b48a:	f014 04ff 	ands.w	r4, r4, #255	; 0xff
+ 800b48e:	d1ec      	bne.n	800b46a <LmHandlerProcess+0xa>
+ 800b490:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
+ 800b494:	f7ff bf5c 	b.w	800b350 <LmHandlerPackageIsTxPending>
+ 800b498:	20001070 	.word	0x20001070
+
+0800b49c <LmHandlerGetDutyCycleWaitTime>:
+ 800b49c:	4b01      	ldr	r3, [pc, #4]	; (800b4a4 <LmHandlerGetDutyCycleWaitTime+0x8>)
+ 800b49e:	6818      	ldr	r0, [r3, #0]
+ 800b4a0:	4770      	bx	lr
+ 800b4a2:	bf00      	nop
+ 800b4a4:	20001068 	.word	0x20001068
+
+0800b4a8 <LmHandlerJoinStatus>:
+ 800b4a8:	b500      	push	{lr}
+ 800b4aa:	b08b      	sub	sp, #44	; 0x2c
+ 800b4ac:	2301      	movs	r3, #1
+ 800b4ae:	4668      	mov	r0, sp
+ 800b4b0:	f88d 3000 	strb.w	r3, [sp]
+ 800b4b4:	f002 fcbc 	bl	800de30 <LoRaMacMibGetRequestConfirm>
+ 800b4b8:	b938      	cbnz	r0, 800b4ca <LmHandlerJoinStatus+0x22>
+ 800b4ba:	f89d 0004 	ldrb.w	r0, [sp, #4]
+ 800b4be:	3800      	subs	r0, #0
+ 800b4c0:	bf18      	it	ne
+ 800b4c2:	2001      	movne	r0, #1
+ 800b4c4:	b00b      	add	sp, #44	; 0x2c
+ 800b4c6:	f85d fb04 	ldr.w	pc, [sp], #4
+ 800b4ca:	2000      	movs	r0, #0
+ 800b4cc:	e7fa      	b.n	800b4c4 <LmHandlerJoinStatus+0x1c>
+	...
+
+0800b4d0 <LmHandlerRequestClass>:
+ 800b4d0:	b530      	push	{r4, r5, lr}
+ 800b4d2:	b08b      	sub	sp, #44	; 0x2c
+ 800b4d4:	4605      	mov	r5, r0
+ 800b4d6:	f001 fdbb 	bl	800d050 <LoRaMacIsBusy>
+ 800b4da:	4604      	mov	r4, r0
+ 800b4dc:	2800      	cmp	r0, #0
+ 800b4de:	d139      	bne.n	800b554 <LmHandlerRequestClass+0x84>
+ 800b4e0:	f7ff ffe2 	bl	800b4a8 <LmHandlerJoinStatus>
+ 800b4e4:	2801      	cmp	r0, #1
+ 800b4e6:	d138      	bne.n	800b55a <LmHandlerRequestClass+0x8a>
+ 800b4e8:	4668      	mov	r0, sp
+ 800b4ea:	f88d 4000 	strb.w	r4, [sp]
+ 800b4ee:	f002 fc9f 	bl	800de30 <LoRaMacMibGetRequestConfirm>
+ 800b4f2:	b110      	cbz	r0, 800b4fa <LmHandlerRequestClass+0x2a>
+ 800b4f4:	f04f 30ff 	mov.w	r0, #4294967295
+ 800b4f8:	e004      	b.n	800b504 <LmHandlerRequestClass+0x34>
+ 800b4fa:	f89d 3004 	ldrb.w	r3, [sp, #4]
+ 800b4fe:	42ab      	cmp	r3, r5
+ 800b500:	d102      	bne.n	800b508 <LmHandlerRequestClass+0x38>
+ 800b502:	2000      	movs	r0, #0
+ 800b504:	b00b      	add	sp, #44	; 0x2c
+ 800b506:	bd30      	pop	{r4, r5, pc}
+ 800b508:	2d01      	cmp	r5, #1
+ 800b50a:	d0f3      	beq.n	800b4f4 <LmHandlerRequestClass+0x24>
+ 800b50c:	2d02      	cmp	r5, #2
+ 800b50e:	d011      	beq.n	800b534 <LmHandlerRequestClass+0x64>
+ 800b510:	2d00      	cmp	r5, #0
+ 800b512:	d1f7      	bne.n	800b504 <LmHandlerRequestClass+0x34>
+ 800b514:	2b00      	cmp	r3, #0
+ 800b516:	d0f4      	beq.n	800b502 <LmHandlerRequestClass+0x32>
+ 800b518:	4668      	mov	r0, sp
+ 800b51a:	f88d 5004 	strb.w	r5, [sp, #4]
+ 800b51e:	f002 fd99 	bl	800e054 <LoRaMacMibSetRequestConfirm>
+ 800b522:	2800      	cmp	r0, #0
+ 800b524:	d1e6      	bne.n	800b4f4 <LmHandlerRequestClass+0x24>
+ 800b526:	4b0e      	ldr	r3, [pc, #56]	; (800b560 <LmHandlerRequestClass+0x90>)
+ 800b528:	681b      	ldr	r3, [r3, #0]
+ 800b52a:	6b1b      	ldr	r3, [r3, #48]	; 0x30
+ 800b52c:	2b00      	cmp	r3, #0
+ 800b52e:	d0e8      	beq.n	800b502 <LmHandlerRequestClass+0x32>
+ 800b530:	4798      	blx	r3
+ 800b532:	e7e6      	b.n	800b502 <LmHandlerRequestClass+0x32>
+ 800b534:	2b00      	cmp	r3, #0
+ 800b536:	d1dd      	bne.n	800b4f4 <LmHandlerRequestClass+0x24>
+ 800b538:	4668      	mov	r0, sp
+ 800b53a:	f88d 5004 	strb.w	r5, [sp, #4]
+ 800b53e:	f002 fd89 	bl	800e054 <LoRaMacMibSetRequestConfirm>
+ 800b542:	2800      	cmp	r0, #0
+ 800b544:	d1d6      	bne.n	800b4f4 <LmHandlerRequestClass+0x24>
+ 800b546:	4b06      	ldr	r3, [pc, #24]	; (800b560 <LmHandlerRequestClass+0x90>)
+ 800b548:	681b      	ldr	r3, [r3, #0]
+ 800b54a:	6b1b      	ldr	r3, [r3, #48]	; 0x30
+ 800b54c:	2b00      	cmp	r3, #0
+ 800b54e:	d0d8      	beq.n	800b502 <LmHandlerRequestClass+0x32>
+ 800b550:	4628      	mov	r0, r5
+ 800b552:	e7ed      	b.n	800b530 <LmHandlerRequestClass+0x60>
+ 800b554:	f06f 0001 	mvn.w	r0, #1
+ 800b558:	e7d4      	b.n	800b504 <LmHandlerRequestClass+0x34>
+ 800b55a:	f06f 0002 	mvn.w	r0, #2
+ 800b55e:	e7d1      	b.n	800b504 <LmHandlerRequestClass+0x34>
+ 800b560:	2000106c 	.word	0x2000106c
+
+0800b564 <LmHandlerJoin>:
+ 800b564:	b570      	push	{r4, r5, r6, lr}
+ 800b566:	4c32      	ldr	r4, [pc, #200]	; (800b630 <LmHandlerJoin+0xcc>)
+ 800b568:	4b32      	ldr	r3, [pc, #200]	; (800b634 <LmHandlerJoin+0xd0>)
+ 800b56a:	f994 2004 	ldrsb.w	r2, [r4, #4]
+ 800b56e:	f994 5005 	ldrsb.w	r5, [r4, #5]
+ 800b572:	b090      	sub	sp, #64	; 0x40
+ 800b574:	2601      	movs	r6, #1
+ 800b576:	2802      	cmp	r0, #2
+ 800b578:	f88d 6004 	strb.w	r6, [sp, #4]
+ 800b57c:	f88d 2009 	strb.w	r2, [sp, #9]
+ 800b580:	f88d 500a 	strb.w	r5, [sp, #10]
+ 800b584:	d10a      	bne.n	800b59c <LmHandlerJoin+0x38>
+ 800b586:	f88d 0008 	strb.w	r0, [sp, #8]
+ 800b58a:	71d8      	strb	r0, [r3, #7]
+ 800b58c:	7219      	strb	r1, [r3, #8]
+ 800b58e:	f002 fb9f 	bl	800dcd0 <LoRaMacStart>
+ 800b592:	a801      	add	r0, sp, #4
+ 800b594:	f002 ffd2 	bl	800e53c <LoRaMacMlmeRequest>
+ 800b598:	b010      	add	sp, #64	; 0x40
+ 800b59a:	bd70      	pop	{r4, r5, r6, pc}
+ 800b59c:	f44f 7080 	mov.w	r0, #256	; 0x100
+ 800b5a0:	711a      	strb	r2, [r3, #4]
+ 800b5a2:	715d      	strb	r5, [r3, #5]
+ 800b5a4:	80d8      	strh	r0, [r3, #6]
+ 800b5a6:	7219      	strb	r1, [r3, #8]
+ 800b5a8:	4b23      	ldr	r3, [pc, #140]	; (800b638 <LmHandlerJoin+0xd4>)
+ 800b5aa:	f88d 6008 	strb.w	r6, [sp, #8]
+ 800b5ae:	781b      	ldrb	r3, [r3, #0]
+ 800b5b0:	bb53      	cbnz	r3, 800b608 <LmHandlerJoin+0xa4>
+ 800b5b2:	231e      	movs	r3, #30
+ 800b5b4:	a806      	add	r0, sp, #24
+ 800b5b6:	f88d 201c 	strb.w	r2, [sp, #28]
+ 800b5ba:	f88d 3018 	strb.w	r3, [sp, #24]
+ 800b5be:	f002 fd49 	bl	800e054 <LoRaMacMibSetRequestConfirm>
+ 800b5c2:	231f      	movs	r3, #31
+ 800b5c4:	f88d 3018 	strb.w	r3, [sp, #24]
+ 800b5c8:	a806      	add	r0, sp, #24
+ 800b5ca:	7923      	ldrb	r3, [r4, #4]
+ 800b5cc:	f88d 301c 	strb.w	r3, [sp, #28]
+ 800b5d0:	f002 fd40 	bl	800e054 <LoRaMacMibSetRequestConfirm>
+ 800b5d4:	2321      	movs	r3, #33	; 0x21
+ 800b5d6:	f88d 3018 	strb.w	r3, [sp, #24]
+ 800b5da:	a806      	add	r0, sp, #24
+ 800b5dc:	7963      	ldrb	r3, [r4, #5]
+ 800b5de:	f88d 301c 	strb.w	r3, [sp, #28]
+ 800b5e2:	f002 fd37 	bl	800e054 <LoRaMacMibSetRequestConfirm>
+ 800b5e6:	2320      	movs	r3, #32
+ 800b5e8:	f88d 3018 	strb.w	r3, [sp, #24]
+ 800b5ec:	a806      	add	r0, sp, #24
+ 800b5ee:	7963      	ldrb	r3, [r4, #5]
+ 800b5f0:	f88d 301c 	strb.w	r3, [sp, #28]
+ 800b5f4:	f002 fd2e 	bl	800e054 <LoRaMacMibSetRequestConfirm>
+ 800b5f8:	2328      	movs	r3, #40	; 0x28
+ 800b5fa:	f88d 3018 	strb.w	r3, [sp, #24]
+ 800b5fe:	a806      	add	r0, sp, #24
+ 800b600:	4b0e      	ldr	r3, [pc, #56]	; (800b63c <LmHandlerJoin+0xd8>)
+ 800b602:	9307      	str	r3, [sp, #28]
+ 800b604:	f002 fd26 	bl	800e054 <LoRaMacMibSetRequestConfirm>
+ 800b608:	f002 fb62 	bl	800dcd0 <LoRaMacStart>
+ 800b60c:	2301      	movs	r3, #1
+ 800b60e:	a806      	add	r0, sp, #24
+ 800b610:	f88d 3018 	strb.w	r3, [sp, #24]
+ 800b614:	f88d 301c 	strb.w	r3, [sp, #28]
+ 800b618:	f002 fd1c 	bl	800e054 <LoRaMacMibSetRequestConfirm>
+ 800b61c:	4b08      	ldr	r3, [pc, #32]	; (800b640 <LmHandlerJoin+0xdc>)
+ 800b61e:	681b      	ldr	r3, [r3, #0]
+ 800b620:	6a5b      	ldr	r3, [r3, #36]	; 0x24
+ 800b622:	b10b      	cbz	r3, 800b628 <LmHandlerJoin+0xc4>
+ 800b624:	4803      	ldr	r0, [pc, #12]	; (800b634 <LmHandlerJoin+0xd0>)
+ 800b626:	4798      	blx	r3
+ 800b628:	7860      	ldrb	r0, [r4, #1]
+ 800b62a:	f7ff ff51 	bl	800b4d0 <LmHandlerRequestClass>
+ 800b62e:	e7b3      	b.n	800b598 <LmHandlerJoin+0x34>
+ 800b630:	20001084 	.word	0x20001084
+ 800b634:	20000830 	.word	0x20000830
+ 800b638:	20001064 	.word	0x20001064
+ 800b63c:	01000300 	.word	0x01000300
+ 800b640:	2000106c 	.word	0x2000106c
+
+0800b644 <LmHandlerIsBusy>:
+ 800b644:	b508      	push	{r3, lr}
+ 800b646:	f001 fd03 	bl	800d050 <LoRaMacIsBusy>
+ 800b64a:	b940      	cbnz	r0, 800b65e <LmHandlerIsBusy+0x1a>
+ 800b64c:	f7ff ff2c 	bl	800b4a8 <LmHandlerJoinStatus>
+ 800b650:	2801      	cmp	r0, #1
+ 800b652:	d006      	beq.n	800b662 <LmHandlerIsBusy+0x1e>
+ 800b654:	4b08      	ldr	r3, [pc, #32]	; (800b678 <LmHandlerIsBusy+0x34>)
+ 800b656:	7a19      	ldrb	r1, [r3, #8]
+ 800b658:	79d8      	ldrb	r0, [r3, #7]
+ 800b65a:	f7ff ff83 	bl	800b564 <LmHandlerJoin>
+ 800b65e:	2001      	movs	r0, #1
+ 800b660:	bd08      	pop	{r3, pc}
+ 800b662:	4b06      	ldr	r3, [pc, #24]	; (800b67c <LmHandlerIsBusy+0x38>)
+ 800b664:	681b      	ldr	r3, [r3, #0]
+ 800b666:	68db      	ldr	r3, [r3, #12]
+ 800b668:	4798      	blx	r3
+ 800b66a:	2800      	cmp	r0, #0
+ 800b66c:	d1f7      	bne.n	800b65e <LmHandlerIsBusy+0x1a>
+ 800b66e:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 800b672:	f7ff be6d 	b.w	800b350 <LmHandlerPackageIsTxPending>
+ 800b676:	bf00      	nop
+ 800b678:	20000830 	.word	0x20000830
+ 800b67c:	20001070 	.word	0x20001070
+
+0800b680 <LmHandlerSend>:
+ 800b680:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800b684:	b086      	sub	sp, #24
+ 800b686:	4605      	mov	r5, r0
+ 800b688:	460c      	mov	r4, r1
+ 800b68a:	4616      	mov	r6, r2
+ 800b68c:	f001 fce0 	bl	800d050 <LoRaMacIsBusy>
+ 800b690:	2800      	cmp	r0, #0
+ 800b692:	f040 808d 	bne.w	800b7b0 <LmHandlerSend+0x130>
+ 800b696:	f001 fced 	bl	800d074 <LoRaMacIsStopped>
+ 800b69a:	b940      	cbnz	r0, 800b6ae <LmHandlerSend+0x2e>
+ 800b69c:	f7ff ff04 	bl	800b4a8 <LmHandlerJoinStatus>
+ 800b6a0:	2801      	cmp	r0, #1
+ 800b6a2:	d007      	beq.n	800b6b4 <LmHandlerSend+0x34>
+ 800b6a4:	4b44      	ldr	r3, [pc, #272]	; (800b7b8 <LmHandlerSend+0x138>)
+ 800b6a6:	7a19      	ldrb	r1, [r3, #8]
+ 800b6a8:	79d8      	ldrb	r0, [r3, #7]
+ 800b6aa:	f7ff ff5b 	bl	800b564 <LmHandlerJoin>
+ 800b6ae:	f06f 0402 	mvn.w	r4, #2
+ 800b6b2:	e06d      	b.n	800b790 <LmHandlerSend+0x110>
+ 800b6b4:	4f41      	ldr	r7, [pc, #260]	; (800b7bc <LmHandlerSend+0x13c>)
+ 800b6b6:	683b      	ldr	r3, [r7, #0]
+ 800b6b8:	68db      	ldr	r3, [r3, #12]
+ 800b6ba:	4798      	blx	r3
+ 800b6bc:	b130      	cbz	r0, 800b6cc <LmHandlerSend+0x4c>
+ 800b6be:	683a      	ldr	r2, [r7, #0]
+ 800b6c0:	782b      	ldrb	r3, [r5, #0]
+ 800b6c2:	7812      	ldrb	r2, [r2, #0]
+ 800b6c4:	429a      	cmp	r2, r3
+ 800b6c6:	d001      	beq.n	800b6cc <LmHandlerSend+0x4c>
+ 800b6c8:	2b00      	cmp	r3, #0
+ 800b6ca:	d16e      	bne.n	800b7aa <LmHandlerSend+0x12a>
+ 800b6cc:	4f3c      	ldr	r7, [pc, #240]	; (800b7c0 <LmHandlerSend+0x140>)
+ 800b6ce:	f8df 80f4 	ldr.w	r8, [pc, #244]	; 800b7c4 <LmHandlerSend+0x144>
+ 800b6d2:	723c      	strb	r4, [r7, #8]
+ 800b6d4:	3c00      	subs	r4, #0
+ 800b6d6:	bf18      	it	ne
+ 800b6d8:	2401      	movne	r4, #1
+ 800b6da:	f898 3004 	ldrb.w	r3, [r8, #4]
+ 800b6de:	7868      	ldrb	r0, [r5, #1]
+ 800b6e0:	f88d 4004 	strb.w	r4, [sp, #4]
+ 800b6e4:	4669      	mov	r1, sp
+ 800b6e6:	f88d 3012 	strb.w	r3, [sp, #18]
+ 800b6ea:	f002 fb49 	bl	800dd80 <LoRaMacQueryTxPossible>
+ 800b6ee:	2800      	cmp	r0, #0
+ 800b6f0:	d040      	beq.n	800b774 <LmHandlerSend+0xf4>
+ 800b6f2:	2300      	movs	r3, #0
+ 800b6f4:	f88d 3004 	strb.w	r3, [sp, #4]
+ 800b6f8:	9303      	str	r3, [sp, #12]
+ 800b6fa:	f8ad 3010 	strh.w	r3, [sp, #16]
+ 800b6fe:	f06f 0406 	mvn.w	r4, #6
+ 800b702:	e895 0003 	ldmia.w	r5, {r0, r1}
+ 800b706:	4b30      	ldr	r3, [pc, #192]	; (800b7c8 <LmHandlerSend+0x148>)
+ 800b708:	e883 0003 	stmia.w	r3, {r0, r1}
+ 800b70c:	f898 3004 	ldrb.w	r3, [r8, #4]
+ 800b710:	72bb      	strb	r3, [r7, #10]
+ 800b712:	4631      	mov	r1, r6
+ 800b714:	a801      	add	r0, sp, #4
+ 800b716:	f003 f809 	bl	800e72c <LoRaMacMcpsRequest>
+ 800b71a:	4b2c      	ldr	r3, [pc, #176]	; (800b7cc <LmHandlerSend+0x14c>)
+ 800b71c:	9a05      	ldr	r2, [sp, #20]
+ 800b71e:	601a      	str	r2, [r3, #0]
+ 800b720:	2811      	cmp	r0, #17
+ 800b722:	d83f      	bhi.n	800b7a4 <LmHandlerSend+0x124>
+ 800b724:	a301      	add	r3, pc, #4	; (adr r3, 800b72c <LmHandlerSend+0xac>)
+ 800b726:	f853 f020 	ldr.w	pc, [r3, r0, lsl #2]
+ 800b72a:	bf00      	nop
+ 800b72c:	0800b78b 	.word	0x0800b78b
+ 800b730:	0800b7b1 	.word	0x0800b7b1
+ 800b734:	0800b7a5 	.word	0x0800b7a5
+ 800b738:	0800b7a5 	.word	0x0800b7a5
+ 800b73c:	0800b7a5 	.word	0x0800b7a5
+ 800b740:	0800b7a5 	.word	0x0800b7a5
+ 800b744:	0800b7a5 	.word	0x0800b7a5
+ 800b748:	0800b6af 	.word	0x0800b6af
+ 800b74c:	0800b7a5 	.word	0x0800b7a5
+ 800b750:	0800b7a5 	.word	0x0800b7a5
+ 800b754:	0800b7a5 	.word	0x0800b7a5
+ 800b758:	0800b79f 	.word	0x0800b79f
+ 800b75c:	0800b7a5 	.word	0x0800b7a5
+ 800b760:	0800b7a5 	.word	0x0800b7a5
+ 800b764:	0800b7b1 	.word	0x0800b7b1
+ 800b768:	0800b7b1 	.word	0x0800b7b1
+ 800b76c:	0800b7b1 	.word	0x0800b7b1
+ 800b770:	0800b799 	.word	0x0800b799
+ 800b774:	782b      	ldrb	r3, [r5, #0]
+ 800b776:	f88d 3008 	strb.w	r3, [sp, #8]
+ 800b77a:	786b      	ldrb	r3, [r5, #1]
+ 800b77c:	f8ad 3010 	strh.w	r3, [sp, #16]
+ 800b780:	686b      	ldr	r3, [r5, #4]
+ 800b782:	9303      	str	r3, [sp, #12]
+ 800b784:	f04f 34ff 	mov.w	r4, #4294967295
+ 800b788:	e7bb      	b.n	800b702 <LmHandlerSend+0x82>
+ 800b78a:	1de3      	adds	r3, r4, #7
+ 800b78c:	bf18      	it	ne
+ 800b78e:	2400      	movne	r4, #0
+ 800b790:	4620      	mov	r0, r4
+ 800b792:	b006      	add	sp, #24
+ 800b794:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800b798:	f06f 0404 	mvn.w	r4, #4
+ 800b79c:	e7f8      	b.n	800b790 <LmHandlerSend+0x110>
+ 800b79e:	f06f 0405 	mvn.w	r4, #5
+ 800b7a2:	e7f5      	b.n	800b790 <LmHandlerSend+0x110>
+ 800b7a4:	f04f 34ff 	mov.w	r4, #4294967295
+ 800b7a8:	e7f2      	b.n	800b790 <LmHandlerSend+0x110>
+ 800b7aa:	f06f 0403 	mvn.w	r4, #3
+ 800b7ae:	e7ef      	b.n	800b790 <LmHandlerSend+0x110>
+ 800b7b0:	f06f 0401 	mvn.w	r4, #1
+ 800b7b4:	e7ec      	b.n	800b790 <LmHandlerSend+0x110>
+ 800b7b6:	bf00      	nop
+ 800b7b8:	20000830 	.word	0x20000830
+ 800b7bc:	20001070 	.word	0x20001070
+ 800b7c0:	2000085c 	.word	0x2000085c
+ 800b7c4:	20001084 	.word	0x20001084
+ 800b7c8:	2000086c 	.word	0x2000086c
+ 800b7cc:	20001068 	.word	0x20001068
+
+0800b7d0 <LmHandlerGetCurrentClass>:
+ 800b7d0:	b510      	push	{r4, lr}
+ 800b7d2:	4604      	mov	r4, r0
+ 800b7d4:	b08a      	sub	sp, #40	; 0x28
+ 800b7d6:	b918      	cbnz	r0, 800b7e0 <LmHandlerGetCurrentClass+0x10>
+ 800b7d8:	f04f 30ff 	mov.w	r0, #4294967295
+ 800b7dc:	b00a      	add	sp, #40	; 0x28
+ 800b7de:	bd10      	pop	{r4, pc}
+ 800b7e0:	2300      	movs	r3, #0
+ 800b7e2:	4668      	mov	r0, sp
+ 800b7e4:	f88d 3000 	strb.w	r3, [sp]
+ 800b7e8:	f002 fb22 	bl	800de30 <LoRaMacMibGetRequestConfirm>
+ 800b7ec:	2800      	cmp	r0, #0
+ 800b7ee:	d1f3      	bne.n	800b7d8 <LmHandlerGetCurrentClass+0x8>
+ 800b7f0:	f89d 3004 	ldrb.w	r3, [sp, #4]
+ 800b7f4:	7023      	strb	r3, [r4, #0]
+ 800b7f6:	e7f1      	b.n	800b7dc <LmHandlerGetCurrentClass+0xc>
+
+0800b7f8 <McpsIndication>:
+ 800b7f8:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 800b7fa:	b087      	sub	sp, #28
+ 800b7fc:	2200      	movs	r2, #0
+ 800b7fe:	460b      	mov	r3, r1
+ 800b800:	492a      	ldr	r1, [pc, #168]	; (800b8ac <McpsIndication+0xb4>)
+ 800b802:	f88d 2007 	strb.w	r2, [sp, #7]
+ 800b806:	2201      	movs	r2, #1
+ 800b808:	700a      	strb	r2, [r1, #0]
+ 800b80a:	7842      	ldrb	r2, [r0, #1]
+ 800b80c:	704a      	strb	r2, [r1, #1]
+ 800b80e:	4604      	mov	r4, r0
+ 800b810:	2a00      	cmp	r2, #0
+ 800b812:	d141      	bne.n	800b898 <McpsIndication+0xa0>
+ 800b814:	7902      	ldrb	r2, [r0, #4]
+ 800b816:	720a      	strb	r2, [r1, #8]
+ 800b818:	881a      	ldrh	r2, [r3, #0]
+ 800b81a:	724a      	strb	r2, [r1, #9]
+ 800b81c:	789a      	ldrb	r2, [r3, #2]
+ 800b81e:	728a      	strb	r2, [r1, #10]
+ 800b820:	78db      	ldrb	r3, [r3, #3]
+ 800b822:	740b      	strb	r3, [r1, #16]
+ 800b824:	6903      	ldr	r3, [r0, #16]
+ 800b826:	60cb      	str	r3, [r1, #12]
+ 800b828:	78c3      	ldrb	r3, [r0, #3]
+ 800b82a:	4d21      	ldr	r5, [pc, #132]	; (800b8b0 <McpsIndication+0xb8>)
+ 800b82c:	f88d 3008 	strb.w	r3, [sp, #8]
+ 800b830:	7b03      	ldrb	r3, [r0, #12]
+ 800b832:	f88d 3009 	strb.w	r3, [sp, #9]
+ 800b836:	6883      	ldr	r3, [r0, #8]
+ 800b838:	9303      	str	r3, [sp, #12]
+ 800b83a:	682b      	ldr	r3, [r5, #0]
+ 800b83c:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800b83e:	b10b      	cbz	r3, 800b844 <McpsIndication+0x4c>
+ 800b840:	a802      	add	r0, sp, #8
+ 800b842:	4798      	blx	r3
+ 800b844:	682b      	ldr	r3, [r5, #0]
+ 800b846:	6b9b      	ldr	r3, [r3, #56]	; 0x38
+ 800b848:	b113      	cbz	r3, 800b850 <McpsIndication+0x58>
+ 800b84a:	7e22      	ldrb	r2, [r4, #24]
+ 800b84c:	b102      	cbz	r2, 800b850 <McpsIndication+0x58>
+ 800b84e:	4798      	blx	r3
+ 800b850:	4e18      	ldr	r6, [pc, #96]	; (800b8b4 <McpsIndication+0xbc>)
+ 800b852:	2500      	movs	r5, #0
+ 800b854:	4637      	mov	r7, r6
+ 800b856:	f856 3b04 	ldr.w	r3, [r6], #4
+ 800b85a:	b153      	cbz	r3, 800b872 <McpsIndication+0x7a>
+ 800b85c:	6a1a      	ldr	r2, [r3, #32]
+ 800b85e:	b142      	cbz	r2, 800b872 <McpsIndication+0x7a>
+ 800b860:	781a      	ldrb	r2, [r3, #0]
+ 800b862:	78e3      	ldrb	r3, [r4, #3]
+ 800b864:	429a      	cmp	r2, r3
+ 800b866:	d119      	bne.n	800b89c <McpsIndication+0xa4>
+ 800b868:	f856 3c04 	ldr.w	r3, [r6, #-4]
+ 800b86c:	4620      	mov	r0, r4
+ 800b86e:	6a1b      	ldr	r3, [r3, #32]
+ 800b870:	4798      	blx	r3
+ 800b872:	3501      	adds	r5, #1
+ 800b874:	b2eb      	uxtb	r3, r5
+ 800b876:	2b05      	cmp	r3, #5
+ 800b878:	b26d      	sxtb	r5, r5
+ 800b87a:	d1ec      	bne.n	800b856 <McpsIndication+0x5e>
+ 800b87c:	f10d 0007 	add.w	r0, sp, #7
+ 800b880:	f7ff ffa6 	bl	800b7d0 <LmHandlerGetCurrentClass>
+ 800b884:	7963      	ldrb	r3, [r4, #5]
+ 800b886:	b13b      	cbz	r3, 800b898 <McpsIndication+0xa0>
+ 800b888:	2100      	movs	r1, #0
+ 800b88a:	2201      	movs	r2, #1
+ 800b88c:	a804      	add	r0, sp, #16
+ 800b88e:	f8ad 1010 	strh.w	r1, [sp, #16]
+ 800b892:	9105      	str	r1, [sp, #20]
+ 800b894:	f7ff fef4 	bl	800b680 <LmHandlerSend>
+ 800b898:	b007      	add	sp, #28
+ 800b89a:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 800b89c:	2d00      	cmp	r5, #0
+ 800b89e:	d1e8      	bne.n	800b872 <McpsIndication+0x7a>
+ 800b8a0:	683b      	ldr	r3, [r7, #0]
+ 800b8a2:	68db      	ldr	r3, [r3, #12]
+ 800b8a4:	4798      	blx	r3
+ 800b8a6:	2800      	cmp	r0, #0
+ 800b8a8:	d1de      	bne.n	800b868 <McpsIndication+0x70>
+ 800b8aa:	e7e2      	b.n	800b872 <McpsIndication+0x7a>
+ 800b8ac:	20000848 	.word	0x20000848
+ 800b8b0:	2000106c 	.word	0x2000106c
+ 800b8b4:	20001070 	.word	0x20001070
+
+0800b8b8 <LmHandlerGetTxDatarate>:
+ 800b8b8:	b510      	push	{r4, lr}
+ 800b8ba:	4604      	mov	r4, r0
+ 800b8bc:	b08a      	sub	sp, #40	; 0x28
+ 800b8be:	b918      	cbnz	r0, 800b8c8 <LmHandlerGetTxDatarate+0x10>
+ 800b8c0:	f04f 30ff 	mov.w	r0, #4294967295
+ 800b8c4:	b00a      	add	sp, #40	; 0x28
+ 800b8c6:	bd10      	pop	{r4, pc}
+ 800b8c8:	231f      	movs	r3, #31
+ 800b8ca:	4668      	mov	r0, sp
+ 800b8cc:	f88d 3000 	strb.w	r3, [sp]
+ 800b8d0:	f002 faae 	bl	800de30 <LoRaMacMibGetRequestConfirm>
+ 800b8d4:	2800      	cmp	r0, #0
+ 800b8d6:	d1f3      	bne.n	800b8c0 <LmHandlerGetTxDatarate+0x8>
+ 800b8d8:	4a02      	ldr	r2, [pc, #8]	; (800b8e4 <LmHandlerGetTxDatarate+0x2c>)
+ 800b8da:	f99d 3004 	ldrsb.w	r3, [sp, #4]
+ 800b8de:	7023      	strb	r3, [r4, #0]
+ 800b8e0:	7113      	strb	r3, [r2, #4]
+ 800b8e2:	e7ef      	b.n	800b8c4 <LmHandlerGetTxDatarate+0xc>
+ 800b8e4:	20001084 	.word	0x20001084
+
+0800b8e8 <LmHandlerSetSystemMaxRxError>:
+ 800b8e8:	b500      	push	{lr}
+ 800b8ea:	b08b      	sub	sp, #44	; 0x2c
+ 800b8ec:	2322      	movs	r3, #34	; 0x22
+ 800b8ee:	9001      	str	r0, [sp, #4]
+ 800b8f0:	4668      	mov	r0, sp
+ 800b8f2:	f88d 3000 	strb.w	r3, [sp]
+ 800b8f6:	f002 fbad 	bl	800e054 <LoRaMacMibSetRequestConfirm>
+ 800b8fa:	3800      	subs	r0, #0
+ 800b8fc:	bf18      	it	ne
+ 800b8fe:	2001      	movne	r0, #1
+ 800b900:	4240      	negs	r0, r0
+ 800b902:	b00b      	add	sp, #44	; 0x2c
+ 800b904:	f85d fb04 	ldr.w	pc, [sp], #4
+
+0800b908 <LmHandlerConfigure>:
+ 800b908:	b570      	push	{r4, r5, r6, lr}
+ 800b90a:	4c63      	ldr	r4, [pc, #396]	; (800ba98 <LmHandlerConfigure+0x190>)
+ 800b90c:	4601      	mov	r1, r0
+ 800b90e:	2218      	movs	r2, #24
+ 800b910:	b08e      	sub	sp, #56	; 0x38
+ 800b912:	4620      	mov	r0, r4
+ 800b914:	f005 ff66 	bl	80117e4 <memcpy1>
+ 800b918:	f7f8 fe5c 	bl	80045d4 <LoraInfo_GetPtr>
+ 800b91c:	7823      	ldrb	r3, [r4, #0]
+ 800b91e:	6840      	ldr	r0, [r0, #4]
+ 800b920:	2201      	movs	r2, #1
+ 800b922:	fa02 f103 	lsl.w	r1, r2, r3
+ 800b926:	4001      	ands	r1, r0
+ 800b928:	d104      	bne.n	800b934 <LmHandlerConfigure+0x2c>
+ 800b92a:	4b5c      	ldr	r3, [pc, #368]	; (800ba9c <LmHandlerConfigure+0x194>)
+ 800b92c:	4608      	mov	r0, r1
+ 800b92e:	f007 ff4f 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 800b932:	e7fe      	b.n	800b932 <LmHandlerConfigure+0x2a>
+ 800b934:	495a      	ldr	r1, [pc, #360]	; (800baa0 <LmHandlerConfigure+0x198>)
+ 800b936:	485b      	ldr	r0, [pc, #364]	; (800baa4 <LmHandlerConfigure+0x19c>)
+ 800b938:	461a      	mov	r2, r3
+ 800b93a:	f002 f811 	bl	800d960 <LoRaMacInitialization>
+ 800b93e:	b118      	cbz	r0, 800b948 <LmHandlerConfigure+0x40>
+ 800b940:	f04f 30ff 	mov.w	r0, #4294967295
+ 800b944:	b00e      	add	sp, #56	; 0x38
+ 800b946:	bd70      	pop	{r4, r5, r6, pc}
+ 800b948:	2326      	movs	r3, #38	; 0x26
+ 800b94a:	a804      	add	r0, sp, #16
+ 800b94c:	f88d 3010 	strb.w	r3, [sp, #16]
+ 800b950:	f002 fb80 	bl	800e054 <LoRaMacMibSetRequestConfirm>
+ 800b954:	4e54      	ldr	r6, [pc, #336]	; (800baa8 <LmHandlerConfigure+0x1a0>)
+ 800b956:	4d55      	ldr	r5, [pc, #340]	; (800baac <LmHandlerConfigure+0x1a4>)
+ 800b958:	2800      	cmp	r0, #0
+ 800b95a:	d170      	bne.n	800ba3e <LmHandlerConfigure+0x136>
+ 800b95c:	2301      	movs	r3, #1
+ 800b95e:	7033      	strb	r3, [r6, #0]
+ 800b960:	682b      	ldr	r3, [r5, #0]
+ 800b962:	69db      	ldr	r3, [r3, #28]
+ 800b964:	b10b      	cbz	r3, 800b96a <LmHandlerConfigure+0x62>
+ 800b966:	2000      	movs	r0, #0
+ 800b968:	4798      	blx	r3
+ 800b96a:	2326      	movs	r3, #38	; 0x26
+ 800b96c:	a804      	add	r0, sp, #16
+ 800b96e:	f88d 3010 	strb.w	r3, [sp, #16]
+ 800b972:	f002 fa5d 	bl	800de30 <LoRaMacMibGetRequestConfirm>
+ 800b976:	9b05      	ldr	r3, [sp, #20]
+ 800b978:	f893 2048 	ldrb.w	r2, [r3, #72]	; 0x48
+ 800b97c:	7022      	strb	r2, [r4, #0]
+ 800b97e:	f893 2118 	ldrb.w	r2, [r3, #280]	; 0x118
+ 800b982:	f893 311a 	ldrb.w	r3, [r3, #282]	; 0x11a
+ 800b986:	7062      	strb	r2, [r4, #1]
+ 800b988:	70a3      	strb	r3, [r4, #2]
+ 800b98a:	4b45      	ldr	r3, [pc, #276]	; (800baa0 <LmHandlerConfigure+0x198>)
+ 800b98c:	e9d3 0102 	ldrd	r0, r1, [r3, #8]
+ 800b990:	f005 fe1a 	bl	80115c8 <SecureElementInitMcuID>
+ 800b994:	4605      	mov	r5, r0
+ 800b996:	2800      	cmp	r0, #0
+ 800b998:	d1d2      	bne.n	800b940 <LmHandlerConfigure+0x38>
+ 800b99a:	4e45      	ldr	r6, [pc, #276]	; (800bab0 <LmHandlerConfigure+0x1a8>)
+ 800b99c:	2306      	movs	r3, #6
+ 800b99e:	a804      	add	r0, sp, #16
+ 800b9a0:	f88d 3010 	strb.w	r3, [sp, #16]
+ 800b9a4:	f002 fa44 	bl	800de30 <LoRaMacMibGetRequestConfirm>
+ 800b9a8:	9b05      	ldr	r3, [sp, #20]
+ 800b9aa:	6173      	str	r3, [r6, #20]
+ 800b9ac:	a804      	add	r0, sp, #16
+ 800b9ae:	f002 fb51 	bl	800e054 <LoRaMacMibSetRequestConfirm>
+ 800b9b2:	2302      	movs	r3, #2
+ 800b9b4:	a804      	add	r0, sp, #16
+ 800b9b6:	f88d 3010 	strb.w	r3, [sp, #16]
+ 800b9ba:	9605      	str	r6, [sp, #20]
+ 800b9bc:	f002 fa38 	bl	800de30 <LoRaMacMibGetRequestConfirm>
+ 800b9c0:	3608      	adds	r6, #8
+ 800b9c2:	2303      	movs	r3, #3
+ 800b9c4:	a804      	add	r0, sp, #16
+ 800b9c6:	f88d 3010 	strb.w	r3, [sp, #16]
+ 800b9ca:	9605      	str	r6, [sp, #20]
+ 800b9cc:	f002 fa30 	bl	800de30 <LoRaMacMibGetRequestConfirm>
+ 800b9d0:	260f      	movs	r6, #15
+ 800b9d2:	f005 febd 	bl	8011750 <SecureElementPrintKeys>
+ 800b9d6:	2301      	movs	r3, #1
+ 800b9d8:	a804      	add	r0, sp, #16
+ 800b9da:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800b9de:	f88d 6010 	strb.w	r6, [sp, #16]
+ 800b9e2:	f002 fb37 	bl	800e054 <LoRaMacMibSetRequestConfirm>
+ 800b9e6:	2310      	movs	r3, #16
+ 800b9e8:	eb0d 0003 	add.w	r0, sp, r3
+ 800b9ec:	f88d 3010 	strb.w	r3, [sp, #16]
+ 800b9f0:	f88d 5014 	strb.w	r5, [sp, #20]
+ 800b9f4:	f002 fb2e 	bl	800e054 <LoRaMacMibSetRequestConfirm>
+ 800b9f8:	2304      	movs	r3, #4
+ 800b9fa:	f88d 3010 	strb.w	r3, [sp, #16]
+ 800b9fe:	a804      	add	r0, sp, #16
+ 800ba00:	78a3      	ldrb	r3, [r4, #2]
+ 800ba02:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800ba06:	f002 fb25 	bl	800e054 <LoRaMacMibSetRequestConfirm>
+ 800ba0a:	2339      	movs	r3, #57	; 0x39
+ 800ba0c:	f88d 3010 	strb.w	r3, [sp, #16]
+ 800ba10:	a804      	add	r0, sp, #16
+ 800ba12:	6963      	ldr	r3, [r4, #20]
+ 800ba14:	9305      	str	r3, [sp, #20]
+ 800ba16:	f002 fb1d 	bl	800e054 <LoRaMacMibSetRequestConfirm>
+ 800ba1a:	a902      	add	r1, sp, #8
+ 800ba1c:	7820      	ldrb	r0, [r4, #0]
+ 800ba1e:	f88d 6008 	strb.w	r6, [sp, #8]
+ 800ba22:	f003 ff51 	bl	800f8c8 <RegionGetPhyParam>
+ 800ba26:	3800      	subs	r0, #0
+ 800ba28:	bf18      	it	ne
+ 800ba2a:	2001      	movne	r0, #1
+ 800ba2c:	71e0      	strb	r0, [r4, #7]
+ 800ba2e:	2014      	movs	r0, #20
+ 800ba30:	f7ff ff5a 	bl	800b8e8 <LmHandlerSetSystemMaxRxError>
+ 800ba34:	79e0      	ldrb	r0, [r4, #7]
+ 800ba36:	f003 f803 	bl	800ea40 <LoRaMacTestSetDutyCycleOn>
+ 800ba3a:	4628      	mov	r0, r5
+ 800ba3c:	e782      	b.n	800b944 <LmHandlerConfigure+0x3c>
+ 800ba3e:	2327      	movs	r3, #39	; 0x27
+ 800ba40:	f88d 3010 	strb.w	r3, [sp, #16]
+ 800ba44:	682b      	ldr	r3, [r5, #0]
+ 800ba46:	691b      	ldr	r3, [r3, #16]
+ 800ba48:	b143      	cbz	r3, 800ba5c <LmHandlerConfigure+0x154>
+ 800ba4a:	a804      	add	r0, sp, #16
+ 800ba4c:	f002 f9f0 	bl	800de30 <LoRaMacMibGetRequestConfirm>
+ 800ba50:	682b      	ldr	r3, [r5, #0]
+ 800ba52:	9805      	ldr	r0, [sp, #20]
+ 800ba54:	691b      	ldr	r3, [r3, #16]
+ 800ba56:	f44f 61ee 	mov.w	r1, #1904	; 0x770
+ 800ba5a:	4798      	blx	r3
+ 800ba5c:	2326      	movs	r3, #38	; 0x26
+ 800ba5e:	a804      	add	r0, sp, #16
+ 800ba60:	f88d 3010 	strb.w	r3, [sp, #16]
+ 800ba64:	f002 faf6 	bl	800e054 <LoRaMacMibSetRequestConfirm>
+ 800ba68:	b950      	cbnz	r0, 800ba80 <LmHandlerConfigure+0x178>
+ 800ba6a:	2301      	movs	r3, #1
+ 800ba6c:	a804      	add	r0, sp, #16
+ 800ba6e:	f88d 3010 	strb.w	r3, [sp, #16]
+ 800ba72:	f002 f9dd 	bl	800de30 <LoRaMacMibGetRequestConfirm>
+ 800ba76:	f89d 3014 	ldrb.w	r3, [sp, #20]
+ 800ba7a:	2b00      	cmp	r3, #0
+ 800ba7c:	f47f af6e 	bne.w	800b95c <LmHandlerConfigure+0x54>
+ 800ba80:	7833      	ldrb	r3, [r6, #0]
+ 800ba82:	2b00      	cmp	r3, #0
+ 800ba84:	f47f af6c 	bne.w	800b960 <LmHandlerConfigure+0x58>
+ 800ba88:	2205      	movs	r2, #5
+ 800ba8a:	a804      	add	r0, sp, #16
+ 800ba8c:	f88d 2010 	strb.w	r2, [sp, #16]
+ 800ba90:	9305      	str	r3, [sp, #20]
+ 800ba92:	f002 fadf 	bl	800e054 <LoRaMacMibSetRequestConfirm>
+ 800ba96:	e778      	b.n	800b98a <LmHandlerConfigure+0x82>
+ 800ba98:	20001084 	.word	0x20001084
+ 800ba9c:	0801507c 	.word	0x0801507c
+ 800baa0:	2000109c 	.word	0x2000109c
+ 800baa4:	200010b4 	.word	0x200010b4
+ 800baa8:	20001064 	.word	0x20001064
+ 800baac:	2000106c 	.word	0x2000106c
+ 800bab0:	2000104c 	.word	0x2000104c
+
+0800bab4 <LmHandlerPackageRegister>:
+ 800bab4:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 800bab6:	2300      	movs	r3, #0
+ 800bab8:	460d      	mov	r5, r1
+ 800baba:	9301      	str	r3, [sp, #4]
+ 800babc:	4604      	mov	r4, r0
+ 800babe:	b9c0      	cbnz	r0, 800baf2 <LmHandlerPackageRegister+0x3e>
+ 800bac0:	f000 fad0 	bl	800c064 <LmhpCompliancePackageFactory>
+ 800bac4:	9001      	str	r0, [sp, #4]
+ 800bac6:	9b01      	ldr	r3, [sp, #4]
+ 800bac8:	b1c3      	cbz	r3, 800bafc <LmHandlerPackageRegister+0x48>
+ 800baca:	4a0e      	ldr	r2, [pc, #56]	; (800bb04 <LmHandlerPackageRegister+0x50>)
+ 800bacc:	490e      	ldr	r1, [pc, #56]	; (800bb08 <LmHandlerPackageRegister+0x54>)
+ 800bace:	f842 3024 	str.w	r3, [r2, r4, lsl #2]
+ 800bad2:	4a0e      	ldr	r2, [pc, #56]	; (800bb0c <LmHandlerPackageRegister+0x58>)
+ 800bad4:	62da      	str	r2, [r3, #44]	; 0x2c
+ 800bad6:	4a0e      	ldr	r2, [pc, #56]	; (800bb10 <LmHandlerPackageRegister+0x5c>)
+ 800bad8:	631a      	str	r2, [r3, #48]	; 0x30
+ 800bada:	4a0e      	ldr	r2, [pc, #56]	; (800bb14 <LmHandlerPackageRegister+0x60>)
+ 800badc:	635a      	str	r2, [r3, #52]	; 0x34
+ 800bade:	4a0e      	ldr	r2, [pc, #56]	; (800bb18 <LmHandlerPackageRegister+0x64>)
+ 800bae0:	6812      	ldr	r2, [r2, #0]
+ 800bae2:	6992      	ldr	r2, [r2, #24]
+ 800bae4:	619a      	str	r2, [r3, #24]
+ 800bae6:	4628      	mov	r0, r5
+ 800bae8:	685b      	ldr	r3, [r3, #4]
+ 800baea:	22f2      	movs	r2, #242	; 0xf2
+ 800baec:	4798      	blx	r3
+ 800baee:	2000      	movs	r0, #0
+ 800baf0:	e006      	b.n	800bb00 <LmHandlerPackageRegister+0x4c>
+ 800baf2:	a901      	add	r1, sp, #4
+ 800baf4:	f000 fabc 	bl	800c070 <LmhpPackagesRegister>
+ 800baf8:	2800      	cmp	r0, #0
+ 800bafa:	d0e4      	beq.n	800bac6 <LmHandlerPackageRegister+0x12>
+ 800bafc:	f04f 30ff 	mov.w	r0, #4294967295
+ 800bb00:	b003      	add	sp, #12
+ 800bb02:	bd30      	pop	{r4, r5, pc}
+ 800bb04:	20001070 	.word	0x20001070
+ 800bb08:	20000f58 	.word	0x20000f58
+ 800bb0c:	0800b565 	.word	0x0800b565
+ 800bb10:	0800b681 	.word	0x0800b681
+ 800bb14:	0800b37d 	.word	0x0800b37d
+ 800bb18:	2000106c 	.word	0x2000106c
+
+0800bb1c <LmHandlerInit>:
+ 800bb1c:	4b15      	ldr	r3, [pc, #84]	; (800bb74 <LmHandlerInit+0x58>)
+ 800bb1e:	b507      	push	{r0, r1, r2, lr}
+ 800bb20:	6018      	str	r0, [r3, #0]
+ 800bb22:	4b15      	ldr	r3, [pc, #84]	; (800bb78 <LmHandlerInit+0x5c>)
+ 800bb24:	4a15      	ldr	r2, [pc, #84]	; (800bb7c <LmHandlerInit+0x60>)
+ 800bb26:	601a      	str	r2, [r3, #0]
+ 800bb28:	4a15      	ldr	r2, [pc, #84]	; (800bb80 <LmHandlerInit+0x64>)
+ 800bb2a:	605a      	str	r2, [r3, #4]
+ 800bb2c:	4a15      	ldr	r2, [pc, #84]	; (800bb84 <LmHandlerInit+0x68>)
+ 800bb2e:	609a      	str	r2, [r3, #8]
+ 800bb30:	4a15      	ldr	r2, [pc, #84]	; (800bb88 <LmHandlerInit+0x6c>)
+ 800bb32:	60da      	str	r2, [r3, #12]
+ 800bb34:	4b15      	ldr	r3, [pc, #84]	; (800bb8c <LmHandlerInit+0x70>)
+ 800bb36:	6802      	ldr	r2, [r0, #0]
+ 800bb38:	601a      	str	r2, [r3, #0]
+ 800bb3a:	6842      	ldr	r2, [r0, #4]
+ 800bb3c:	605a      	str	r2, [r3, #4]
+ 800bb3e:	6882      	ldr	r2, [r0, #8]
+ 800bb40:	609a      	str	r2, [r3, #8]
+ 800bb42:	68c2      	ldr	r2, [r0, #12]
+ 800bb44:	60da      	str	r2, [r3, #12]
+ 800bb46:	4a12      	ldr	r2, [pc, #72]	; (800bb90 <LmHandlerInit+0x74>)
+ 800bb48:	9101      	str	r1, [sp, #4]
+ 800bb4a:	611a      	str	r2, [r3, #16]
+ 800bb4c:	4911      	ldr	r1, [pc, #68]	; (800bb94 <LmHandlerInit+0x78>)
+ 800bb4e:	6982      	ldr	r2, [r0, #24]
+ 800bb50:	615a      	str	r2, [r3, #20]
+ 800bb52:	2000      	movs	r0, #0
+ 800bb54:	f7ff ffae 	bl	800bab4 <LmHandlerPackageRegister>
+ 800bb58:	b948      	cbnz	r0, 800bb6e <LmHandlerInit+0x52>
+ 800bb5a:	a801      	add	r0, sp, #4
+ 800bb5c:	f000 fa86 	bl	800c06c <LmhpPackagesRegistrationInit>
+ 800bb60:	3800      	subs	r0, #0
+ 800bb62:	bf18      	it	ne
+ 800bb64:	2001      	movne	r0, #1
+ 800bb66:	4240      	negs	r0, r0
+ 800bb68:	b003      	add	sp, #12
+ 800bb6a:	f85d fb04 	ldr.w	pc, [sp], #4
+ 800bb6e:	f04f 30ff 	mov.w	r0, #4294967295
+ 800bb72:	e7f9      	b.n	800bb68 <LmHandlerInit+0x4c>
+ 800bb74:	2000106c 	.word	0x2000106c
+ 800bb78:	200010b4 	.word	0x200010b4
+ 800bb7c:	0800b409 	.word	0x0800b409
+ 800bb80:	0800b7f9 	.word	0x0800b7f9
+ 800bb84:	0800bc15 	.word	0x0800bc15
+ 800bb88:	0800b3a5 	.word	0x0800b3a5
+ 800bb8c:	2000109c 	.word	0x2000109c
+ 800bb90:	0800f879 	.word	0x0800f879
+ 800bb94:	2000083c 	.word	0x2000083c
+
+0800bb98 <LmHandlerGetVersion>:
+ 800bb98:	b151      	cbz	r1, 800bbb0 <LmHandlerGetVersion+0x18>
+ 800bb9a:	b118      	cbz	r0, 800bba4 <LmHandlerGetVersion+0xc>
+ 800bb9c:	2801      	cmp	r0, #1
+ 800bb9e:	d004      	beq.n	800bbaa <LmHandlerGetVersion+0x12>
+ 800bba0:	2000      	movs	r0, #0
+ 800bba2:	4770      	bx	lr
+ 800bba4:	4b04      	ldr	r3, [pc, #16]	; (800bbb8 <LmHandlerGetVersion+0x20>)
+ 800bba6:	600b      	str	r3, [r1, #0]
+ 800bba8:	4770      	bx	lr
+ 800bbaa:	4b04      	ldr	r3, [pc, #16]	; (800bbbc <LmHandlerGetVersion+0x24>)
+ 800bbac:	600b      	str	r3, [r1, #0]
+ 800bbae:	e7f7      	b.n	800bba0 <LmHandlerGetVersion+0x8>
+ 800bbb0:	f04f 30ff 	mov.w	r0, #4294967295
+ 800bbb4:	4770      	bx	lr
+ 800bbb6:	bf00      	nop
+ 800bbb8:	01000300 	.word	0x01000300
+ 800bbbc:	01010003 	.word	0x01010003
+
+0800bbc0 <LmHandlerStop>:
+ 800bbc0:	b508      	push	{r3, lr}
+ 800bbc2:	f002 ff59 	bl	800ea78 <LoRaMacDeInitialization>
+ 800bbc6:	2800      	cmp	r0, #0
+ 800bbc8:	bf14      	ite	ne
+ 800bbca:	f06f 0001 	mvnne.w	r0, #1
+ 800bbce:	2000      	moveq	r0, #0
+ 800bbd0:	bd08      	pop	{r3, pc}
+
+0800bbd2 <LmHandlerHalt>:
+ 800bbd2:	b508      	push	{r3, lr}
+ 800bbd4:	f002 f8a4 	bl	800dd20 <LoRaMacHalt>
+ 800bbd8:	2800      	cmp	r0, #0
+ 800bbda:	bf14      	ite	ne
+ 800bbdc:	f06f 0001 	mvnne.w	r0, #1
+ 800bbe0:	2000      	moveq	r0, #0
+ 800bbe2:	bd08      	pop	{r3, pc}
+
+0800bbe4 <LmHandlerGetTxPower>:
+ 800bbe4:	b510      	push	{r4, lr}
+ 800bbe6:	4604      	mov	r4, r0
+ 800bbe8:	b08a      	sub	sp, #40	; 0x28
+ 800bbea:	b918      	cbnz	r0, 800bbf4 <LmHandlerGetTxPower+0x10>
+ 800bbec:	f04f 30ff 	mov.w	r0, #4294967295
+ 800bbf0:	b00a      	add	sp, #40	; 0x28
+ 800bbf2:	bd10      	pop	{r4, pc}
+ 800bbf4:	2320      	movs	r3, #32
+ 800bbf6:	4668      	mov	r0, sp
+ 800bbf8:	f88d 3000 	strb.w	r3, [sp]
+ 800bbfc:	f002 f918 	bl	800de30 <LoRaMacMibGetRequestConfirm>
+ 800bc00:	2800      	cmp	r0, #0
+ 800bc02:	d1f3      	bne.n	800bbec <LmHandlerGetTxPower+0x8>
+ 800bc04:	4a02      	ldr	r2, [pc, #8]	; (800bc10 <LmHandlerGetTxPower+0x2c>)
+ 800bc06:	f99d 3004 	ldrsb.w	r3, [sp, #4]
+ 800bc0a:	7023      	strb	r3, [r4, #0]
+ 800bc0c:	7153      	strb	r3, [r2, #5]
+ 800bc0e:	e7ef      	b.n	800bbf0 <LmHandlerGetTxPower+0xc>
+ 800bc10:	20001084 	.word	0x20001084
+
+0800bc14 <MlmeConfirm>:
+ 800bc14:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800bc18:	4d2f      	ldr	r5, [pc, #188]	; (800bcd8 <MlmeConfirm+0xc4>)
+ 800bc1a:	4f30      	ldr	r7, [pc, #192]	; (800bcdc <MlmeConfirm+0xc8>)
+ 800bc1c:	2300      	movs	r3, #0
+ 800bc1e:	702b      	strb	r3, [r5, #0]
+ 800bc20:	7843      	ldrb	r3, [r0, #1]
+ 800bc22:	706b      	strb	r3, [r5, #1]
+ 800bc24:	683b      	ldr	r3, [r7, #0]
+ 800bc26:	6a9b      	ldr	r3, [r3, #40]	; 0x28
+ 800bc28:	b08a      	sub	sp, #40	; 0x28
+ 800bc2a:	4604      	mov	r4, r0
+ 800bc2c:	b10b      	cbz	r3, 800bc32 <MlmeConfirm+0x1e>
+ 800bc2e:	4628      	mov	r0, r5
+ 800bc30:	4798      	blx	r3
+ 800bc32:	f8df 80ac 	ldr.w	r8, [pc, #172]	; 800bce0 <MlmeConfirm+0xcc>
+ 800bc36:	2600      	movs	r6, #0
+ 800bc38:	f858 3b04 	ldr.w	r3, [r8], #4
+ 800bc3c:	b11b      	cbz	r3, 800bc46 <MlmeConfirm+0x32>
+ 800bc3e:	6a5b      	ldr	r3, [r3, #36]	; 0x24
+ 800bc40:	b10b      	cbz	r3, 800bc46 <MlmeConfirm+0x32>
+ 800bc42:	4620      	mov	r0, r4
+ 800bc44:	4798      	blx	r3
+ 800bc46:	3601      	adds	r6, #1
+ 800bc48:	b2f3      	uxtb	r3, r6
+ 800bc4a:	2b05      	cmp	r3, #5
+ 800bc4c:	b276      	sxtb	r6, r6
+ 800bc4e:	d1f3      	bne.n	800bc38 <MlmeConfirm+0x24>
+ 800bc50:	7823      	ldrb	r3, [r4, #0]
+ 800bc52:	2b05      	cmp	r3, #5
+ 800bc54:	d02f      	beq.n	800bcb6 <MlmeConfirm+0xa2>
+ 800bc56:	2b0c      	cmp	r3, #12
+ 800bc58:	d035      	beq.n	800bcc6 <MlmeConfirm+0xb2>
+ 800bc5a:	2b01      	cmp	r3, #1
+ 800bc5c:	d125      	bne.n	800bcaa <MlmeConfirm+0x96>
+ 800bc5e:	4c21      	ldr	r4, [pc, #132]	; (800bce4 <MlmeConfirm+0xd0>)
+ 800bc60:	2306      	movs	r3, #6
+ 800bc62:	4668      	mov	r0, sp
+ 800bc64:	f88d 3000 	strb.w	r3, [sp]
+ 800bc68:	f002 f8e2 	bl	800de30 <LoRaMacMibGetRequestConfirm>
+ 800bc6c:	9901      	ldr	r1, [sp, #4]
+ 800bc6e:	79e0      	ldrb	r0, [r4, #7]
+ 800bc70:	f005 fcf0 	bl	8011654 <SecureElementSetDevAddr>
+ 800bc74:	b910      	cbnz	r0, 800bc7c <MlmeConfirm+0x68>
+ 800bc76:	4b1c      	ldr	r3, [pc, #112]	; (800bce8 <MlmeConfirm+0xd4>)
+ 800bc78:	9a01      	ldr	r2, [sp, #4]
+ 800bc7a:	615a      	str	r2, [r3, #20]
+ 800bc7c:	481b      	ldr	r0, [pc, #108]	; (800bcec <MlmeConfirm+0xd8>)
+ 800bc7e:	f7ff fe1b 	bl	800b8b8 <LmHandlerGetTxDatarate>
+ 800bc82:	481b      	ldr	r0, [pc, #108]	; (800bcf0 <MlmeConfirm+0xdc>)
+ 800bc84:	f7ff ffae 	bl	800bbe4 <LmHandlerGetTxPower>
+ 800bc88:	786b      	ldrb	r3, [r5, #1]
+ 800bc8a:	b98b      	cbnz	r3, 800bcb0 <MlmeConfirm+0x9c>
+ 800bc8c:	71a3      	strb	r3, [r4, #6]
+ 800bc8e:	4b19      	ldr	r3, [pc, #100]	; (800bcf4 <MlmeConfirm+0xe0>)
+ 800bc90:	7858      	ldrb	r0, [r3, #1]
+ 800bc92:	f7ff fc1d 	bl	800b4d0 <LmHandlerRequestClass>
+ 800bc96:	683b      	ldr	r3, [r7, #0]
+ 800bc98:	6a5b      	ldr	r3, [r3, #36]	; 0x24
+ 800bc9a:	b10b      	cbz	r3, 800bca0 <MlmeConfirm+0x8c>
+ 800bc9c:	4811      	ldr	r0, [pc, #68]	; (800bce4 <MlmeConfirm+0xd0>)
+ 800bc9e:	4798      	blx	r3
+ 800bca0:	786b      	ldrb	r3, [r5, #1]
+ 800bca2:	b913      	cbnz	r3, 800bcaa <MlmeConfirm+0x96>
+ 800bca4:	79e0      	ldrb	r0, [r4, #7]
+ 800bca6:	f005 fd65 	bl	8011774 <SecureElementPrintSessionKeys>
+ 800bcaa:	b00a      	add	sp, #40	; 0x28
+ 800bcac:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800bcb0:	23ff      	movs	r3, #255	; 0xff
+ 800bcb2:	71a3      	strb	r3, [r4, #6]
+ 800bcb4:	e7ef      	b.n	800bc96 <MlmeConfirm+0x82>
+ 800bcb6:	4b10      	ldr	r3, [pc, #64]	; (800bcf8 <MlmeConfirm+0xe4>)
+ 800bcb8:	2201      	movs	r2, #1
+ 800bcba:	745a      	strb	r2, [r3, #17]
+ 800bcbc:	7a22      	ldrb	r2, [r4, #8]
+ 800bcbe:	749a      	strb	r2, [r3, #18]
+ 800bcc0:	7a62      	ldrb	r2, [r4, #9]
+ 800bcc2:	74da      	strb	r2, [r3, #19]
+ 800bcc4:	e7f1      	b.n	800bcaa <MlmeConfirm+0x96>
+ 800bcc6:	7863      	ldrb	r3, [r4, #1]
+ 800bcc8:	2b00      	cmp	r3, #0
+ 800bcca:	d0ee      	beq.n	800bcaa <MlmeConfirm+0x96>
+ 800bccc:	b00a      	add	sp, #40	; 0x28
+ 800bcce:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
+ 800bcd2:	f7ff bb53 	b.w	800b37c <LmHandlerDeviceTimeReq>
+ 800bcd6:	bf00      	nop
+ 800bcd8:	2000085c 	.word	0x2000085c
+ 800bcdc:	2000106c 	.word	0x2000106c
+ 800bce0:	20001070 	.word	0x20001070
+ 800bce4:	20000830 	.word	0x20000830
+ 800bce8:	2000104c 	.word	0x2000104c
+ 800bcec:	20000834 	.word	0x20000834
+ 800bcf0:	20000835 	.word	0x20000835
+ 800bcf4:	20001084 	.word	0x20001084
+ 800bcf8:	20000848 	.word	0x20000848
+
+0800bcfc <LmHandlerNvmDataStore>:
+ 800bcfc:	b530      	push	{r4, r5, lr}
+ 800bcfe:	b08b      	sub	sp, #44	; 0x2c
+ 800bd00:	f7ff ff67 	bl	800bbd2 <LmHandlerHalt>
+ 800bd04:	4604      	mov	r4, r0
+ 800bd06:	b9f0      	cbnz	r0, 800bd46 <LmHandlerNvmDataStore+0x4a>
+ 800bd08:	f003 fdbe 	bl	800f888 <NvmDataMgmtStoreBegin>
+ 800bd0c:	1c83      	adds	r3, r0, #2
+ 800bd0e:	d01d      	beq.n	800bd4c <LmHandlerNvmDataStore+0x50>
+ 800bd10:	b9f8      	cbnz	r0, 800bd52 <LmHandlerNvmDataStore+0x56>
+ 800bd12:	4d13      	ldr	r5, [pc, #76]	; (800bd60 <LmHandlerNvmDataStore+0x64>)
+ 800bd14:	682b      	ldr	r3, [r5, #0]
+ 800bd16:	695b      	ldr	r3, [r3, #20]
+ 800bd18:	b1db      	cbz	r3, 800bd52 <LmHandlerNvmDataStore+0x56>
+ 800bd1a:	2326      	movs	r3, #38	; 0x26
+ 800bd1c:	4668      	mov	r0, sp
+ 800bd1e:	f88d 3000 	strb.w	r3, [sp]
+ 800bd22:	f002 f885 	bl	800de30 <LoRaMacMibGetRequestConfirm>
+ 800bd26:	682b      	ldr	r3, [r5, #0]
+ 800bd28:	9801      	ldr	r0, [sp, #4]
+ 800bd2a:	695b      	ldr	r3, [r3, #20]
+ 800bd2c:	f44f 61ee 	mov.w	r1, #1904	; 0x770
+ 800bd30:	4798      	blx	r3
+ 800bd32:	f003 fdbb 	bl	800f8ac <NvmDataMgmtStoreEnd>
+ 800bd36:	b978      	cbnz	r0, 800bd58 <LmHandlerNvmDataStore+0x5c>
+ 800bd38:	b92c      	cbnz	r4, 800bd46 <LmHandlerNvmDataStore+0x4a>
+ 800bd3a:	4b09      	ldr	r3, [pc, #36]	; (800bd60 <LmHandlerNvmDataStore+0x64>)
+ 800bd3c:	681b      	ldr	r3, [r3, #0]
+ 800bd3e:	69db      	ldr	r3, [r3, #28]
+ 800bd40:	b10b      	cbz	r3, 800bd46 <LmHandlerNvmDataStore+0x4a>
+ 800bd42:	2001      	movs	r0, #1
+ 800bd44:	4798      	blx	r3
+ 800bd46:	4620      	mov	r0, r4
+ 800bd48:	b00b      	add	sp, #44	; 0x2c
+ 800bd4a:	bd30      	pop	{r4, r5, pc}
+ 800bd4c:	f06f 0407 	mvn.w	r4, #7
+ 800bd50:	e7ef      	b.n	800bd32 <LmHandlerNvmDataStore+0x36>
+ 800bd52:	f04f 34ff 	mov.w	r4, #4294967295
+ 800bd56:	e7ec      	b.n	800bd32 <LmHandlerNvmDataStore+0x36>
+ 800bd58:	f04f 34ff 	mov.w	r4, #4294967295
+ 800bd5c:	e7f3      	b.n	800bd46 <LmHandlerNvmDataStore+0x4a>
+ 800bd5e:	bf00      	nop
+ 800bd60:	2000106c 	.word	0x2000106c
+
+0800bd64 <LmhpComplianceInit>:
+ 800bd64:	b530      	push	{r4, r5, lr}
+ 800bd66:	4d06      	ldr	r5, [pc, #24]	; (800bd80 <LmhpComplianceInit+0x1c>)
+ 800bd68:	4c06      	ldr	r4, [pc, #24]	; (800bd84 <LmhpComplianceInit+0x20>)
+ 800bd6a:	b130      	cbz	r0, 800bd7a <LmhpComplianceInit+0x16>
+ 800bd6c:	b129      	cbz	r1, 800bd7a <LmhpComplianceInit+0x16>
+ 800bd6e:	6028      	str	r0, [r5, #0]
+ 800bd70:	60a1      	str	r1, [r4, #8]
+ 800bd72:	7162      	strb	r2, [r4, #5]
+ 800bd74:	2301      	movs	r3, #1
+ 800bd76:	7023      	strb	r3, [r4, #0]
+ 800bd78:	bd30      	pop	{r4, r5, pc}
+ 800bd7a:	2300      	movs	r3, #0
+ 800bd7c:	602b      	str	r3, [r5, #0]
+ 800bd7e:	e7fa      	b.n	800bd76 <LmhpComplianceInit+0x12>
+ 800bd80:	200010f0 	.word	0x200010f0
+ 800bd84:	200010c4 	.word	0x200010c4
+
+0800bd88 <LmhpComplianceIsInitialized>:
+ 800bd88:	4b01      	ldr	r3, [pc, #4]	; (800bd90 <LmhpComplianceIsInitialized+0x8>)
+ 800bd8a:	7818      	ldrb	r0, [r3, #0]
+ 800bd8c:	4770      	bx	lr
+ 800bd8e:	bf00      	nop
+ 800bd90:	200010c4 	.word	0x200010c4
+
+0800bd94 <LmhpComplianceIsRunning>:
+ 800bd94:	4b02      	ldr	r3, [pc, #8]	; (800bda0 <LmhpComplianceIsRunning+0xc>)
+ 800bd96:	7818      	ldrb	r0, [r3, #0]
+ 800bd98:	b100      	cbz	r0, 800bd9c <LmhpComplianceIsRunning+0x8>
+ 800bd9a:	7858      	ldrb	r0, [r3, #1]
+ 800bd9c:	4770      	bx	lr
+ 800bd9e:	bf00      	nop
+ 800bda0:	200010c4 	.word	0x200010c4
+
+0800bda4 <LmhpComplianceProcess>:
+ 800bda4:	4770      	bx	lr
+	...
+
+0800bda8 <LmhpComplianceOnMcpsConfirm>:
+ 800bda8:	4b06      	ldr	r3, [pc, #24]	; (800bdc4 <LmhpComplianceOnMcpsConfirm+0x1c>)
+ 800bdaa:	781a      	ldrb	r2, [r3, #0]
+ 800bdac:	b14a      	cbz	r2, 800bdc2 <LmhpComplianceOnMcpsConfirm+0x1a>
+ 800bdae:	785a      	ldrb	r2, [r3, #1]
+ 800bdb0:	b13a      	cbz	r2, 800bdc2 <LmhpComplianceOnMcpsConfirm+0x1a>
+ 800bdb2:	7802      	ldrb	r2, [r0, #0]
+ 800bdb4:	2a01      	cmp	r2, #1
+ 800bdb6:	d104      	bne.n	800bdc2 <LmhpComplianceOnMcpsConfirm+0x1a>
+ 800bdb8:	7902      	ldrb	r2, [r0, #4]
+ 800bdba:	b112      	cbz	r2, 800bdc2 <LmhpComplianceOnMcpsConfirm+0x1a>
+ 800bdbc:	899a      	ldrh	r2, [r3, #12]
+ 800bdbe:	3201      	adds	r2, #1
+ 800bdc0:	819a      	strh	r2, [r3, #12]
+ 800bdc2:	4770      	bx	lr
+ 800bdc4:	200010c4 	.word	0x200010c4
+
+0800bdc8 <LmhpComplianceOnMlmeConfirm>:
+ 800bdc8:	4b07      	ldr	r3, [pc, #28]	; (800bde8 <LmhpComplianceOnMlmeConfirm+0x20>)
+ 800bdca:	781a      	ldrb	r2, [r3, #0]
+ 800bdcc:	b152      	cbz	r2, 800bde4 <LmhpComplianceOnMlmeConfirm+0x1c>
+ 800bdce:	785a      	ldrb	r2, [r3, #1]
+ 800bdd0:	b142      	cbz	r2, 800bde4 <LmhpComplianceOnMlmeConfirm+0x1c>
+ 800bdd2:	7802      	ldrb	r2, [r0, #0]
+ 800bdd4:	2a05      	cmp	r2, #5
+ 800bdd6:	d105      	bne.n	800bde4 <LmhpComplianceOnMlmeConfirm+0x1c>
+ 800bdd8:	7a01      	ldrb	r1, [r0, #8]
+ 800bdda:	7a42      	ldrb	r2, [r0, #9]
+ 800bddc:	73d9      	strb	r1, [r3, #15]
+ 800bdde:	2001      	movs	r0, #1
+ 800bde0:	7398      	strb	r0, [r3, #14]
+ 800bde2:	741a      	strb	r2, [r3, #16]
+ 800bde4:	4770      	bx	lr
+ 800bde6:	bf00      	nop
+ 800bde8:	200010c4 	.word	0x200010c4
+
+0800bdec <LmhpComplianceTxProcess.isra.0>:
+ 800bdec:	b513      	push	{r0, r1, r4, lr}
+ 800bdee:	4c1a      	ldr	r4, [pc, #104]	; (800be58 <LmhpComplianceTxProcess.isra.0+0x6c>)
+ 800bdf0:	7823      	ldrb	r3, [r4, #0]
+ 800bdf2:	b33b      	cbz	r3, 800be44 <LmhpComplianceTxProcess.isra.0+0x58>
+ 800bdf4:	7863      	ldrb	r3, [r4, #1]
+ 800bdf6:	b32b      	cbz	r3, 800be44 <LmhpComplianceTxProcess.isra.0+0x58>
+ 800bdf8:	7ba2      	ldrb	r2, [r4, #14]
+ 800bdfa:	68a3      	ldr	r3, [r4, #8]
+ 800bdfc:	b162      	cbz	r2, 800be18 <LmhpComplianceTxProcess.isra.0+0x2c>
+ 800bdfe:	2200      	movs	r2, #0
+ 800be00:	73a2      	strb	r2, [r4, #14]
+ 800be02:	2203      	movs	r2, #3
+ 800be04:	71a2      	strb	r2, [r4, #6]
+ 800be06:	2205      	movs	r2, #5
+ 800be08:	701a      	strb	r2, [r3, #0]
+ 800be0a:	7be2      	ldrb	r2, [r4, #15]
+ 800be0c:	705a      	strb	r2, [r3, #1]
+ 800be0e:	7c22      	ldrb	r2, [r4, #16]
+ 800be10:	709a      	strb	r2, [r3, #2]
+ 800be12:	2201      	movs	r2, #1
+ 800be14:	70a2      	strb	r2, [r4, #2]
+ 800be16:	e004      	b.n	800be22 <LmhpComplianceTxProcess.isra.0+0x36>
+ 800be18:	78a2      	ldrb	r2, [r4, #2]
+ 800be1a:	2a01      	cmp	r2, #1
+ 800be1c:	d014      	beq.n	800be48 <LmhpComplianceTxProcess.isra.0+0x5c>
+ 800be1e:	2a04      	cmp	r2, #4
+ 800be20:	d0f7      	beq.n	800be12 <LmhpComplianceTxProcess.isra.0+0x26>
+ 800be22:	22e0      	movs	r2, #224	; 0xe0
+ 800be24:	f88d 2000 	strb.w	r2, [sp]
+ 800be28:	480c      	ldr	r0, [pc, #48]	; (800be5c <LmhpComplianceTxProcess.isra.0+0x70>)
+ 800be2a:	79a2      	ldrb	r2, [r4, #6]
+ 800be2c:	9301      	str	r3, [sp, #4]
+ 800be2e:	f88d 2001 	strb.w	r2, [sp, #1]
+ 800be32:	f008 f849 	bl	8013ec8 <UTIL_TIMER_Start>
+ 800be36:	4b0a      	ldr	r3, [pc, #40]	; (800be60 <LmhpComplianceTxProcess.isra.0+0x74>)
+ 800be38:	6b1b      	ldr	r3, [r3, #48]	; 0x30
+ 800be3a:	b11b      	cbz	r3, 800be44 <LmhpComplianceTxProcess.isra.0+0x58>
+ 800be3c:	78e1      	ldrb	r1, [r4, #3]
+ 800be3e:	2201      	movs	r2, #1
+ 800be40:	4668      	mov	r0, sp
+ 800be42:	4798      	blx	r3
+ 800be44:	b002      	add	sp, #8
+ 800be46:	bd10      	pop	{r4, pc}
+ 800be48:	2202      	movs	r2, #2
+ 800be4a:	71a2      	strb	r2, [r4, #6]
+ 800be4c:	89a2      	ldrh	r2, [r4, #12]
+ 800be4e:	705a      	strb	r2, [r3, #1]
+ 800be50:	0a11      	lsrs	r1, r2, #8
+ 800be52:	7019      	strb	r1, [r3, #0]
+ 800be54:	e7e5      	b.n	800be22 <LmhpComplianceTxProcess.isra.0+0x36>
+ 800be56:	bf00      	nop
+ 800be58:	200010c4 	.word	0x200010c4
+ 800be5c:	200010d8 	.word	0x200010d8
+ 800be60:	20000878 	.word	0x20000878
+
+0800be64 <OnComplianceTxNextPacketTimerEvent>:
+ 800be64:	f7ff bfc2 	b.w	800bdec <LmhpComplianceTxProcess.isra.0>
+
+0800be68 <LmhpComplianceOnMcpsIndication>:
+ 800be68:	b530      	push	{r4, r5, lr}
+ 800be6a:	4c79      	ldr	r4, [pc, #484]	; (800c050 <LmhpComplianceOnMcpsIndication+0x1e8>)
+ 800be6c:	7823      	ldrb	r3, [r4, #0]
+ 800be6e:	b08d      	sub	sp, #52	; 0x34
+ 800be70:	2b00      	cmp	r3, #0
+ 800be72:	d043      	beq.n	800befc <LmhpComplianceOnMcpsIndication+0x94>
+ 800be74:	7b43      	ldrb	r3, [r0, #13]
+ 800be76:	2b00      	cmp	r3, #0
+ 800be78:	d040      	beq.n	800befc <LmhpComplianceOnMcpsIndication+0x94>
+ 800be7a:	7865      	ldrb	r5, [r4, #1]
+ 800be7c:	b125      	cbz	r5, 800be88 <LmhpComplianceOnMcpsIndication+0x20>
+ 800be7e:	7b83      	ldrb	r3, [r0, #14]
+ 800be80:	b913      	cbnz	r3, 800be88 <LmhpComplianceOnMcpsIndication+0x20>
+ 800be82:	89a3      	ldrh	r3, [r4, #12]
+ 800be84:	3301      	adds	r3, #1
+ 800be86:	81a3      	strh	r3, [r4, #12]
+ 800be88:	78c1      	ldrb	r1, [r0, #3]
+ 800be8a:	29e0      	cmp	r1, #224	; 0xe0
+ 800be8c:	d136      	bne.n	800befc <LmhpComplianceOnMcpsIndication+0x94>
+ 800be8e:	2d00      	cmp	r5, #0
+ 800be90:	d136      	bne.n	800bf00 <LmhpComplianceOnMcpsIndication+0x98>
+ 800be92:	7b02      	ldrb	r2, [r0, #12]
+ 800be94:	2a04      	cmp	r2, #4
+ 800be96:	d131      	bne.n	800befc <LmhpComplianceOnMcpsIndication+0x94>
+ 800be98:	6883      	ldr	r3, [r0, #8]
+ 800be9a:	7818      	ldrb	r0, [r3, #0]
+ 800be9c:	2801      	cmp	r0, #1
+ 800be9e:	d12d      	bne.n	800befc <LmhpComplianceOnMcpsIndication+0x94>
+ 800bea0:	7858      	ldrb	r0, [r3, #1]
+ 800bea2:	2801      	cmp	r0, #1
+ 800bea4:	d12a      	bne.n	800befc <LmhpComplianceOnMcpsIndication+0x94>
+ 800bea6:	7898      	ldrb	r0, [r3, #2]
+ 800bea8:	2801      	cmp	r0, #1
+ 800beaa:	d127      	bne.n	800befc <LmhpComplianceOnMcpsIndication+0x94>
+ 800beac:	78db      	ldrb	r3, [r3, #3]
+ 800beae:	2b01      	cmp	r3, #1
+ 800beb0:	d124      	bne.n	800befc <LmhpComplianceOnMcpsIndication+0x94>
+ 800beb2:	2002      	movs	r0, #2
+ 800beb4:	8063      	strh	r3, [r4, #2]
+ 800beb6:	71a0      	strb	r0, [r4, #6]
+ 800beb8:	60e5      	str	r5, [r4, #12]
+ 800beba:	a802      	add	r0, sp, #8
+ 800bebc:	7063      	strb	r3, [r4, #1]
+ 800bebe:	f88d 300c 	strb.w	r3, [sp, #12]
+ 800bec2:	7121      	strb	r1, [r4, #4]
+ 800bec4:	f88d 2008 	strb.w	r2, [sp, #8]
+ 800bec8:	7425      	strb	r5, [r4, #16]
+ 800beca:	f002 f8c3 	bl	800e054 <LoRaMacMibSetRequestConfirm>
+ 800bece:	4628      	mov	r0, r5
+ 800bed0:	f002 fdb6 	bl	800ea40 <LoRaMacTestSetDutyCycleOn>
+ 800bed4:	4b5f      	ldr	r3, [pc, #380]	; (800c054 <LmhpComplianceOnMcpsIndication+0x1ec>)
+ 800bed6:	681b      	ldr	r3, [r3, #0]
+ 800bed8:	685b      	ldr	r3, [r3, #4]
+ 800beda:	b103      	cbz	r3, 800bede <LmhpComplianceOnMcpsIndication+0x76>
+ 800bedc:	4798      	blx	r3
+ 800bede:	2200      	movs	r2, #0
+ 800bee0:	4b5d      	ldr	r3, [pc, #372]	; (800c058 <LmhpComplianceOnMcpsIndication+0x1f0>)
+ 800bee2:	9200      	str	r2, [sp, #0]
+ 800bee4:	f04f 31ff 	mov.w	r1, #4294967295
+ 800bee8:	485c      	ldr	r0, [pc, #368]	; (800c05c <LmhpComplianceOnMcpsIndication+0x1f4>)
+ 800beea:	f007 ff41 	bl	8013d70 <UTIL_TIMER_Create>
+ 800beee:	f241 3188 	movw	r1, #5000	; 0x1388
+ 800bef2:	485a      	ldr	r0, [pc, #360]	; (800c05c <LmhpComplianceOnMcpsIndication+0x1f4>)
+ 800bef4:	f008 f822 	bl	8013f3c <UTIL_TIMER_SetPeriod>
+ 800bef8:	f7ff ff78 	bl	800bdec <LmhpComplianceTxProcess.isra.0>
+ 800befc:	b00d      	add	sp, #52	; 0x34
+ 800befe:	bd30      	pop	{r4, r5, pc}
+ 800bf00:	6883      	ldr	r3, [r0, #8]
+ 800bf02:	781a      	ldrb	r2, [r3, #0]
+ 800bf04:	70a2      	strb	r2, [r4, #2]
+ 800bf06:	2a0a      	cmp	r2, #10
+ 800bf08:	d8f8      	bhi.n	800befc <LmhpComplianceOnMcpsIndication+0x94>
+ 800bf0a:	e8df f002 	tbb	[pc, r2]
+ 800bf0e:	2106      	.short	0x2106
+ 800bf10:	3d2a2824 	.word	0x3d2a2824
+ 800bf14:	8f8d6544 	.word	0x8f8d6544
+ 800bf18:	99          	.byte	0x99
+ 800bf19:	00          	.byte	0x00
+ 800bf1a:	4850      	ldr	r0, [pc, #320]	; (800c05c <LmhpComplianceOnMcpsIndication+0x1f4>)
+ 800bf1c:	f007 ff86 	bl	8013e2c <UTIL_TIMER_Stop>
+ 800bf20:	2300      	movs	r3, #0
+ 800bf22:	7063      	strb	r3, [r4, #1]
+ 800bf24:	81a3      	strh	r3, [r4, #12]
+ 800bf26:	4c4b      	ldr	r4, [pc, #300]	; (800c054 <LmhpComplianceOnMcpsIndication+0x1ec>)
+ 800bf28:	2304      	movs	r3, #4
+ 800bf2a:	f88d 3008 	strb.w	r3, [sp, #8]
+ 800bf2e:	6823      	ldr	r3, [r4, #0]
+ 800bf30:	a802      	add	r0, sp, #8
+ 800bf32:	781b      	ldrb	r3, [r3, #0]
+ 800bf34:	f88d 300c 	strb.w	r3, [sp, #12]
+ 800bf38:	f002 f88c 	bl	800e054 <LoRaMacMibSetRequestConfirm>
+ 800bf3c:	6823      	ldr	r3, [r4, #0]
+ 800bf3e:	7858      	ldrb	r0, [r3, #1]
+ 800bf40:	f002 fd7e 	bl	800ea40 <LoRaMacTestSetDutyCycleOn>
+ 800bf44:	6823      	ldr	r3, [r4, #0]
+ 800bf46:	689b      	ldr	r3, [r3, #8]
+ 800bf48:	2b00      	cmp	r3, #0
+ 800bf4a:	d0d7      	beq.n	800befc <LmhpComplianceOnMcpsIndication+0x94>
+ 800bf4c:	4798      	blx	r3
+ 800bf4e:	e7d5      	b.n	800befc <LmhpComplianceOnMcpsIndication+0x94>
+ 800bf50:	2302      	movs	r3, #2
+ 800bf52:	71a3      	strb	r3, [r4, #6]
+ 800bf54:	e7d2      	b.n	800befc <LmhpComplianceOnMcpsIndication+0x94>
+ 800bf56:	f240 1301 	movw	r3, #257	; 0x101
+ 800bf5a:	8063      	strh	r3, [r4, #2]
+ 800bf5c:	e7ce      	b.n	800befc <LmhpComplianceOnMcpsIndication+0x94>
+ 800bf5e:	2301      	movs	r3, #1
+ 800bf60:	e7fb      	b.n	800bf5a <LmhpComplianceOnMcpsIndication+0xf2>
+ 800bf62:	68a5      	ldr	r5, [r4, #8]
+ 800bf64:	7b03      	ldrb	r3, [r0, #12]
+ 800bf66:	71a3      	strb	r3, [r4, #6]
+ 800bf68:	2204      	movs	r2, #4
+ 800bf6a:	702a      	strb	r2, [r5, #0]
+ 800bf6c:	7962      	ldrb	r2, [r4, #5]
+ 800bf6e:	429a      	cmp	r2, r3
+ 800bf70:	bf28      	it	cs
+ 800bf72:	461a      	movcs	r2, r3
+ 800bf74:	2300      	movs	r3, #0
+ 800bf76:	3301      	adds	r3, #1
+ 800bf78:	b2d9      	uxtb	r1, r3
+ 800bf7a:	428a      	cmp	r2, r1
+ 800bf7c:	d9be      	bls.n	800befc <LmhpComplianceOnMcpsIndication+0x94>
+ 800bf7e:	6881      	ldr	r1, [r0, #8]
+ 800bf80:	5cc9      	ldrb	r1, [r1, r3]
+ 800bf82:	3101      	adds	r1, #1
+ 800bf84:	54e9      	strb	r1, [r5, r3]
+ 800bf86:	e7f6      	b.n	800bf76 <LmhpComplianceOnMcpsIndication+0x10e>
+ 800bf88:	2305      	movs	r3, #5
+ 800bf8a:	f88d 3008 	strb.w	r3, [sp, #8]
+ 800bf8e:	a802      	add	r0, sp, #8
+ 800bf90:	f002 fad4 	bl	800e53c <LoRaMacMlmeRequest>
+ 800bf94:	e7b2      	b.n	800befc <LmhpComplianceOnMcpsIndication+0x94>
+ 800bf96:	4831      	ldr	r0, [pc, #196]	; (800c05c <LmhpComplianceOnMcpsIndication+0x1f4>)
+ 800bf98:	f007 ff48 	bl	8013e2c <UTIL_TIMER_Stop>
+ 800bf9c:	2300      	movs	r3, #0
+ 800bf9e:	7063      	strb	r3, [r4, #1]
+ 800bfa0:	81a3      	strh	r3, [r4, #12]
+ 800bfa2:	4c2c      	ldr	r4, [pc, #176]	; (800c054 <LmhpComplianceOnMcpsIndication+0x1ec>)
+ 800bfa4:	2304      	movs	r3, #4
+ 800bfa6:	f88d 3008 	strb.w	r3, [sp, #8]
+ 800bfaa:	6823      	ldr	r3, [r4, #0]
+ 800bfac:	a802      	add	r0, sp, #8
+ 800bfae:	781b      	ldrb	r3, [r3, #0]
+ 800bfb0:	f88d 300c 	strb.w	r3, [sp, #12]
+ 800bfb4:	f002 f84e 	bl	800e054 <LoRaMacMibSetRequestConfirm>
+ 800bfb8:	6823      	ldr	r3, [r4, #0]
+ 800bfba:	7858      	ldrb	r0, [r3, #1]
+ 800bfbc:	f002 fd40 	bl	800ea40 <LoRaMacTestSetDutyCycleOn>
+ 800bfc0:	6823      	ldr	r3, [r4, #0]
+ 800bfc2:	689b      	ldr	r3, [r3, #8]
+ 800bfc4:	b103      	cbz	r3, 800bfc8 <LmhpComplianceOnMcpsIndication+0x160>
+ 800bfc6:	4798      	blx	r3
+ 800bfc8:	4b25      	ldr	r3, [pc, #148]	; (800c060 <LmhpComplianceOnMcpsIndication+0x1f8>)
+ 800bfca:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800bfcc:	2b00      	cmp	r3, #0
+ 800bfce:	d095      	beq.n	800befc <LmhpComplianceOnMcpsIndication+0x94>
+ 800bfd0:	2101      	movs	r1, #1
+ 800bfd2:	2002      	movs	r0, #2
+ 800bfd4:	4798      	blx	r3
+ 800bfd6:	e791      	b.n	800befc <LmhpComplianceOnMcpsIndication+0x94>
+ 800bfd8:	7b02      	ldrb	r2, [r0, #12]
+ 800bfda:	2a03      	cmp	r2, #3
+ 800bfdc:	d10d      	bne.n	800bffa <LmhpComplianceOnMcpsIndication+0x192>
+ 800bfde:	2206      	movs	r2, #6
+ 800bfe0:	f88d 2008 	strb.w	r2, [sp, #8]
+ 800bfe4:	f8b3 3001 	ldrh.w	r3, [r3, #1]
+ 800bfe8:	ba5b      	rev16	r3, r3
+ 800bfea:	f8ad 300c 	strh.w	r3, [sp, #12]
+ 800bfee:	a802      	add	r0, sp, #8
+ 800bff0:	f002 faa4 	bl	800e53c <LoRaMacMlmeRequest>
+ 800bff4:	2301      	movs	r3, #1
+ 800bff6:	70a3      	strb	r3, [r4, #2]
+ 800bff8:	e780      	b.n	800befc <LmhpComplianceOnMcpsIndication+0x94>
+ 800bffa:	2a07      	cmp	r2, #7
+ 800bffc:	d1f7      	bne.n	800bfee <LmhpComplianceOnMcpsIndication+0x186>
+ 800bffe:	f88d 2008 	strb.w	r2, [sp, #8]
+ 800c002:	f8b3 2001 	ldrh.w	r2, [r3, #1]
+ 800c006:	ba52      	rev16	r2, r2
+ 800c008:	f8ad 200c 	strh.w	r2, [sp, #12]
+ 800c00c:	791a      	ldrb	r2, [r3, #4]
+ 800c00e:	78d9      	ldrb	r1, [r3, #3]
+ 800c010:	0212      	lsls	r2, r2, #8
+ 800c012:	ea42 4201 	orr.w	r2, r2, r1, lsl #16
+ 800c016:	7959      	ldrb	r1, [r3, #5]
+ 800c018:	430a      	orrs	r2, r1
+ 800c01a:	2164      	movs	r1, #100	; 0x64
+ 800c01c:	434a      	muls	r2, r1
+ 800c01e:	9204      	str	r2, [sp, #16]
+ 800c020:	799b      	ldrb	r3, [r3, #6]
+ 800c022:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800c026:	e7e2      	b.n	800bfee <LmhpComplianceOnMcpsIndication+0x186>
+ 800c028:	230a      	movs	r3, #10
+ 800c02a:	e7ae      	b.n	800bf8a <LmhpComplianceOnMcpsIndication+0x122>
+ 800c02c:	2200      	movs	r2, #0
+ 800c02e:	f88d 2008 	strb.w	r2, [sp, #8]
+ 800c032:	785b      	ldrb	r3, [r3, #1]
+ 800c034:	f88d 300c 	strb.w	r3, [sp, #12]
+ 800c038:	a802      	add	r0, sp, #8
+ 800c03a:	f002 f80b 	bl	800e054 <LoRaMacMibSetRequestConfirm>
+ 800c03e:	e75d      	b.n	800befc <LmhpComplianceOnMcpsIndication+0x94>
+ 800c040:	220d      	movs	r2, #13
+ 800c042:	f88d 2008 	strb.w	r2, [sp, #8]
+ 800c046:	785b      	ldrb	r3, [r3, #1]
+ 800c048:	f88d 300c 	strb.w	r3, [sp, #12]
+ 800c04c:	e79f      	b.n	800bf8e <LmhpComplianceOnMcpsIndication+0x126>
+ 800c04e:	bf00      	nop
+ 800c050:	200010c4 	.word	0x200010c4
+ 800c054:	200010f0 	.word	0x200010f0
+ 800c058:	0800be65 	.word	0x0800be65
+ 800c05c:	200010d8 	.word	0x200010d8
+ 800c060:	20000878 	.word	0x20000878
+
+0800c064 <LmhpCompliancePackageFactory>:
+ 800c064:	4800      	ldr	r0, [pc, #0]	; (800c068 <LmhpCompliancePackageFactory+0x4>)
+ 800c066:	4770      	bx	lr
+ 800c068:	20000878 	.word	0x20000878
+
+0800c06c <LmhpPackagesRegistrationInit>:
+ 800c06c:	2000      	movs	r0, #0
+ 800c06e:	4770      	bx	lr
+
+0800c070 <LmhpPackagesRegister>:
+ 800c070:	f04f 30ff 	mov.w	r0, #4294967295
+ 800c074:	4770      	bx	lr
+	...
+
+0800c078 <UpdateRxSlotIdleState>:
+ 800c078:	4b04      	ldr	r3, [pc, #16]	; (800c08c <UpdateRxSlotIdleState+0x14>)
+ 800c07a:	4a05      	ldr	r2, [pc, #20]	; (800c090 <UpdateRxSlotIdleState+0x18>)
+ 800c07c:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 800c080:	2b02      	cmp	r3, #2
+ 800c082:	bf18      	it	ne
+ 800c084:	2306      	movne	r3, #6
+ 800c086:	f882 3480 	strb.w	r3, [r2, #1152]	; 0x480
+ 800c08a:	4770      	bx	lr
+ 800c08c:	20001864 	.word	0x20001864
+ 800c090:	20001fd8 	.word	0x20001fd8
+
+0800c094 <OnMacProcessNotify>:
+ 800c094:	4b03      	ldr	r3, [pc, #12]	; (800c0a4 <OnMacProcessNotify+0x10>)
+ 800c096:	f8d3 3348 	ldr.w	r3, [r3, #840]	; 0x348
+ 800c09a:	b113      	cbz	r3, 800c0a2 <OnMacProcessNotify+0xe>
+ 800c09c:	695b      	ldr	r3, [r3, #20]
+ 800c09e:	b103      	cbz	r3, 800c0a2 <OnMacProcessNotify+0xe>
+ 800c0a0:	4718      	bx	r3
+ 800c0a2:	4770      	bx	lr
+ 800c0a4:	20001fd8 	.word	0x20001fd8
+
+0800c0a8 <OnRadioRxError>:
+ 800c0a8:	4a03      	ldr	r2, [pc, #12]	; (800c0b8 <OnRadioRxError+0x10>)
+ 800c0aa:	7813      	ldrb	r3, [r2, #0]
+ 800c0ac:	f043 0302 	orr.w	r3, r3, #2
+ 800c0b0:	7013      	strb	r3, [r2, #0]
+ 800c0b2:	f7ff bfef 	b.w	800c094 <OnMacProcessNotify>
+ 800c0b6:	bf00      	nop
+ 800c0b8:	20001fd4 	.word	0x20001fd4
+
+0800c0bc <GetMaxAppPayloadWithoutFOptsLength>:
+ 800c0bc:	b51f      	push	{r0, r1, r2, r3, r4, lr}
+ 800c0be:	4b0a      	ldr	r3, [pc, #40]	; (800c0e8 <GetMaxAppPayloadWithoutFOptsLength+0x2c>)
+ 800c0c0:	f88d 0009 	strb.w	r0, [sp, #9]
+ 800c0c4:	f893 207c 	ldrb.w	r2, [r3, #124]	; 0x7c
+ 800c0c8:	f88d 200a 	strb.w	r2, [sp, #10]
+ 800c0cc:	f893 208c 	ldrb.w	r2, [r3, #140]	; 0x8c
+ 800c0d0:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 800c0d4:	320d      	adds	r2, #13
+ 800c0d6:	a902      	add	r1, sp, #8
+ 800c0d8:	f88d 2008 	strb.w	r2, [sp, #8]
+ 800c0dc:	f003 fbf4 	bl	800f8c8 <RegionGetPhyParam>
+ 800c0e0:	b2c0      	uxtb	r0, r0
+ 800c0e2:	b005      	add	sp, #20
+ 800c0e4:	f85d fb04 	ldr.w	pc, [sp], #4
+ 800c0e8:	20001864 	.word	0x20001864
+
+0800c0ec <OnAckTimeoutTimerEvent>:
+ 800c0ec:	b510      	push	{r4, lr}
+ 800c0ee:	4c0d      	ldr	r4, [pc, #52]	; (800c124 <OnAckTimeoutTimerEvent+0x38>)
+ 800c0f0:	f504 707d 	add.w	r0, r4, #1012	; 0x3f4
+ 800c0f4:	f007 fe9a 	bl	8013e2c <UTIL_TIMER_Stop>
+ 800c0f8:	f894 3410 	ldrb.w	r3, [r4, #1040]	; 0x410
+ 800c0fc:	b113      	cbz	r3, 800c104 <OnAckTimeoutTimerEvent+0x18>
+ 800c0fe:	2301      	movs	r3, #1
+ 800c100:	f884 340f 	strb.w	r3, [r4, #1039]	; 0x40f
+ 800c104:	4b08      	ldr	r3, [pc, #32]	; (800c128 <OnAckTimeoutTimerEvent+0x3c>)
+ 800c106:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 800c10a:	2b02      	cmp	r3, #2
+ 800c10c:	bf02      	ittt	eq
+ 800c10e:	f894 3481 	ldrbeq.w	r3, [r4, #1153]	; 0x481
+ 800c112:	f043 0310 	orreq.w	r3, r3, #16
+ 800c116:	f884 3481 	strbeq.w	r3, [r4, #1153]	; 0x481
+ 800c11a:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 800c11e:	f7ff bfb9 	b.w	800c094 <OnMacProcessNotify>
+ 800c122:	bf00      	nop
+ 800c124:	20001fd8 	.word	0x20001fd8
+ 800c128:	20001864 	.word	0x20001864
+
+0800c12c <PrepareRxDoneAbort>:
+ 800c12c:	b510      	push	{r4, lr}
+ 800c12e:	4c0c      	ldr	r4, [pc, #48]	; (800c160 <PrepareRxDoneAbort+0x34>)
+ 800c130:	f8d4 3340 	ldr.w	r3, [r4, #832]	; 0x340
+ 800c134:	f043 0380 	orr.w	r3, r3, #128	; 0x80
+ 800c138:	f8c4 3340 	str.w	r3, [r4, #832]	; 0x340
+ 800c13c:	f894 3410 	ldrb.w	r3, [r4, #1040]	; 0x410
+ 800c140:	b113      	cbz	r3, 800c148 <PrepareRxDoneAbort+0x1c>
+ 800c142:	2000      	movs	r0, #0
+ 800c144:	f7ff ffd2 	bl	800c0ec <OnAckTimeoutTimerEvent>
+ 800c148:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800c14c:	f023 0312 	bic.w	r3, r3, #18
+ 800c150:	f043 0312 	orr.w	r3, r3, #18
+ 800c154:	f884 3481 	strb.w	r3, [r4, #1153]	; 0x481
+ 800c158:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 800c15c:	f7ff bf8c 	b.w	800c078 <UpdateRxSlotIdleState>
+ 800c160:	20001fd8 	.word	0x20001fd8
+
+0800c164 <HandleRadioRxErrorTimeout>:
+ 800c164:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800c168:	4d2c      	ldr	r5, [pc, #176]	; (800c21c <HandleRadioRxErrorTimeout+0xb8>)
+ 800c16a:	f895 3118 	ldrb.w	r3, [r5, #280]	; 0x118
+ 800c16e:	2b02      	cmp	r3, #2
+ 800c170:	4607      	mov	r7, r0
+ 800c172:	460e      	mov	r6, r1
+ 800c174:	d002      	beq.n	800c17c <HandleRadioRxErrorTimeout+0x18>
+ 800c176:	4b2a      	ldr	r3, [pc, #168]	; (800c220 <HandleRadioRxErrorTimeout+0xbc>)
+ 800c178:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800c17a:	4798      	blx	r3
+ 800c17c:	f002 fd1b 	bl	800ebb6 <LoRaMacClassBIsBeaconExpected>
+ 800c180:	4604      	mov	r4, r0
+ 800c182:	b128      	cbz	r0, 800c190 <HandleRadioRxErrorTimeout+0x2c>
+ 800c184:	2002      	movs	r0, #2
+ 800c186:	f002 fd0c 	bl	800eba2 <LoRaMacClassBSetBeaconState>
+ 800c18a:	2000      	movs	r0, #0
+ 800c18c:	f002 fd0e 	bl	800ebac <LoRaMacClassBBeaconTimerEvent>
+ 800c190:	f895 3118 	ldrb.w	r3, [r5, #280]	; 0x118
+ 800c194:	2b01      	cmp	r3, #1
+ 800c196:	d117      	bne.n	800c1c8 <HandleRadioRxErrorTimeout+0x64>
+ 800c198:	f002 fd0f 	bl	800ebba <LoRaMacClassBIsPingExpected>
+ 800c19c:	4680      	mov	r8, r0
+ 800c19e:	b130      	cbz	r0, 800c1ae <HandleRadioRxErrorTimeout+0x4a>
+ 800c1a0:	2000      	movs	r0, #0
+ 800c1a2:	f002 fcff 	bl	800eba4 <LoRaMacClassBSetPingSlotState>
+ 800c1a6:	2000      	movs	r0, #0
+ 800c1a8:	f002 fd01 	bl	800ebae <LoRaMacClassBPingSlotTimerEvent>
+ 800c1ac:	4644      	mov	r4, r8
+ 800c1ae:	f002 fd06 	bl	800ebbe <LoRaMacClassBIsMulticastExpected>
+ 800c1b2:	b148      	cbz	r0, 800c1c8 <HandleRadioRxErrorTimeout+0x64>
+ 800c1b4:	2000      	movs	r0, #0
+ 800c1b6:	f002 fcf6 	bl	800eba6 <LoRaMacClassBSetMulticastSlotState>
+ 800c1ba:	2000      	movs	r0, #0
+ 800c1bc:	f002 fcf8 	bl	800ebb0 <LoRaMacClassBMulticastSlotTimerEvent>
+ 800c1c0:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
+ 800c1c4:	f7ff bf58 	b.w	800c078 <UpdateRxSlotIdleState>
+ 800c1c8:	2c00      	cmp	r4, #0
+ 800c1ca:	d1f9      	bne.n	800c1c0 <HandleRadioRxErrorTimeout+0x5c>
+ 800c1cc:	4c15      	ldr	r4, [pc, #84]	; (800c224 <HandleRadioRxErrorTimeout+0xc0>)
+ 800c1ce:	f894 2480 	ldrb.w	r2, [r4, #1152]	; 0x480
+ 800c1d2:	f894 3410 	ldrb.w	r3, [r4, #1040]	; 0x410
+ 800c1d6:	b9b2      	cbnz	r2, 800c206 <HandleRadioRxErrorTimeout+0xa2>
+ 800c1d8:	b10b      	cbz	r3, 800c1de <HandleRadioRxErrorTimeout+0x7a>
+ 800c1da:	f884 7435 	strb.w	r7, [r4, #1077]	; 0x435
+ 800c1de:	4638      	mov	r0, r7
+ 800c1e0:	f002 fe90 	bl	800ef04 <LoRaMacConfirmQueueSetStatusCmn>
+ 800c1e4:	6ae8      	ldr	r0, [r5, #44]	; 0x2c
+ 800c1e6:	f007 fde7 	bl	8013db8 <UTIL_TIMER_GetElapsedTime>
+ 800c1ea:	f8d4 33b4 	ldr.w	r3, [r4, #948]	; 0x3b4
+ 800c1ee:	4298      	cmp	r0, r3
+ 800c1f0:	d3e6      	bcc.n	800c1c0 <HandleRadioRxErrorTimeout+0x5c>
+ 800c1f2:	480d      	ldr	r0, [pc, #52]	; (800c228 <HandleRadioRxErrorTimeout+0xc4>)
+ 800c1f4:	f007 fe1a 	bl	8013e2c <UTIL_TIMER_Stop>
+ 800c1f8:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800c1fc:	f043 0310 	orr.w	r3, r3, #16
+ 800c200:	f884 3481 	strb.w	r3, [r4, #1153]	; 0x481
+ 800c204:	e7dc      	b.n	800c1c0 <HandleRadioRxErrorTimeout+0x5c>
+ 800c206:	b10b      	cbz	r3, 800c20c <HandleRadioRxErrorTimeout+0xa8>
+ 800c208:	f884 6435 	strb.w	r6, [r4, #1077]	; 0x435
+ 800c20c:	4630      	mov	r0, r6
+ 800c20e:	f002 fe79 	bl	800ef04 <LoRaMacConfirmQueueSetStatusCmn>
+ 800c212:	f895 3118 	ldrb.w	r3, [r5, #280]	; 0x118
+ 800c216:	2b02      	cmp	r3, #2
+ 800c218:	d1ee      	bne.n	800c1f8 <HandleRadioRxErrorTimeout+0x94>
+ 800c21a:	e7d1      	b.n	800c1c0 <HandleRadioRxErrorTimeout+0x5c>
+ 800c21c:	20001864 	.word	0x20001864
+ 800c220:	08015784 	.word	0x08015784
+ 800c224:	20001fd8 	.word	0x20001fd8
+ 800c228:	20002370 	.word	0x20002370
+
+0800c22c <OnRadioRxTimeout>:
+ 800c22c:	4a07      	ldr	r2, [pc, #28]	; (800c24c <OnRadioRxTimeout+0x20>)
+ 800c22e:	b510      	push	{r4, lr}
+ 800c230:	7813      	ldrb	r3, [r2, #0]
+ 800c232:	f043 0301 	orr.w	r3, r3, #1
+ 800c236:	7013      	strb	r3, [r2, #0]
+ 800c238:	f7ff ff2c 	bl	800c094 <OnMacProcessNotify>
+ 800c23c:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 800c240:	4b03      	ldr	r3, [pc, #12]	; (800c250 <OnRadioRxTimeout+0x24>)
+ 800c242:	2201      	movs	r2, #1
+ 800c244:	2100      	movs	r1, #0
+ 800c246:	2002      	movs	r0, #2
+ 800c248:	f007 bac2 	b.w	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 800c24c:	20001fd4 	.word	0x20001fd4
+ 800c250:	080150c5 	.word	0x080150c5
+
+0800c254 <OnRadioTxTimeout>:
+ 800c254:	4a07      	ldr	r2, [pc, #28]	; (800c274 <OnRadioTxTimeout+0x20>)
+ 800c256:	b510      	push	{r4, lr}
+ 800c258:	7813      	ldrb	r3, [r2, #0]
+ 800c25a:	f043 0304 	orr.w	r3, r3, #4
+ 800c25e:	7013      	strb	r3, [r2, #0]
+ 800c260:	f7ff ff18 	bl	800c094 <OnMacProcessNotify>
+ 800c264:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 800c268:	4b03      	ldr	r3, [pc, #12]	; (800c278 <OnRadioTxTimeout+0x24>)
+ 800c26a:	2201      	movs	r2, #1
+ 800c26c:	2100      	movs	r1, #0
+ 800c26e:	2002      	movs	r0, #2
+ 800c270:	f007 baae 	b.w	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 800c274:	20001fd4 	.word	0x20001fd4
+ 800c278:	080150d5 	.word	0x080150d5
+
+0800c27c <OnRadioRxDone>:
+ 800c27c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800c280:	460f      	mov	r7, r1
+ 800c282:	4616      	mov	r6, r2
+ 800c284:	461d      	mov	r5, r3
+ 800c286:	4680      	mov	r8, r0
+ 800c288:	f007 fd8c 	bl	8013da4 <UTIL_TIMER_GetCurrentTime>
+ 800c28c:	4a0a      	ldr	r2, [pc, #40]	; (800c2b8 <OnRadioRxDone+0x3c>)
+ 800c28e:	4c0b      	ldr	r4, [pc, #44]	; (800c2bc <OnRadioRxDone+0x40>)
+ 800c290:	7813      	ldrb	r3, [r2, #0]
+ 800c292:	8127      	strh	r7, [r4, #8]
+ 800c294:	f043 0308 	orr.w	r3, r3, #8
+ 800c298:	e9c4 0800 	strd	r0, r8, [r4]
+ 800c29c:	7013      	strb	r3, [r2, #0]
+ 800c29e:	8166      	strh	r6, [r4, #10]
+ 800c2a0:	7325      	strb	r5, [r4, #12]
+ 800c2a2:	f7ff fef7 	bl	800c094 <OnMacProcessNotify>
+ 800c2a6:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
+ 800c2aa:	4b05      	ldr	r3, [pc, #20]	; (800c2c0 <OnRadioRxDone+0x44>)
+ 800c2ac:	2201      	movs	r2, #1
+ 800c2ae:	2100      	movs	r1, #0
+ 800c2b0:	2002      	movs	r0, #2
+ 800c2b2:	f007 ba8d 	b.w	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 800c2b6:	bf00      	nop
+ 800c2b8:	20001fd4 	.word	0x20001fd4
+ 800c2bc:	200024e0 	.word	0x200024e0
+ 800c2c0:	080150e5 	.word	0x080150e5
+
+0800c2c4 <OnRadioTxDone>:
+ 800c2c4:	b513      	push	{r0, r1, r4, lr}
+ 800c2c6:	f007 fd6d 	bl	8013da4 <UTIL_TIMER_GetCurrentTime>
+ 800c2ca:	4b0d      	ldr	r3, [pc, #52]	; (800c300 <OnRadioTxDone+0x3c>)
+ 800c2cc:	466c      	mov	r4, sp
+ 800c2ce:	6018      	str	r0, [r3, #0]
+ 800c2d0:	4620      	mov	r0, r4
+ 800c2d2:	f007 fcbb 	bl	8013c4c <SysTimeGet>
+ 800c2d6:	e894 0003 	ldmia.w	r4, {r0, r1}
+ 800c2da:	4a0a      	ldr	r2, [pc, #40]	; (800c304 <OnRadioTxDone+0x40>)
+ 800c2dc:	4b0a      	ldr	r3, [pc, #40]	; (800c308 <OnRadioTxDone+0x44>)
+ 800c2de:	e883 0003 	stmia.w	r3, {r0, r1}
+ 800c2e2:	7813      	ldrb	r3, [r2, #0]
+ 800c2e4:	f043 0310 	orr.w	r3, r3, #16
+ 800c2e8:	7013      	strb	r3, [r2, #0]
+ 800c2ea:	f7ff fed3 	bl	800c094 <OnMacProcessNotify>
+ 800c2ee:	4b07      	ldr	r3, [pc, #28]	; (800c30c <OnRadioTxDone+0x48>)
+ 800c2f0:	2201      	movs	r2, #1
+ 800c2f2:	2100      	movs	r1, #0
+ 800c2f4:	2002      	movs	r0, #2
+ 800c2f6:	b002      	add	sp, #8
+ 800c2f8:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 800c2fc:	f007 ba68 	b.w	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 800c300:	200024f0 	.word	0x200024f0
+ 800c304:	20001fd4 	.word	0x20001fd4
+ 800c308:	20002310 	.word	0x20002310
+ 800c30c:	080150f2 	.word	0x080150f2
+
+0800c310 <ScheduleTx>:
+ 800c310:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800c314:	b092      	sub	sp, #72	; 0x48
+ 800c316:	4606      	mov	r6, r0
+ 800c318:	f002 fc4d 	bl	800ebb6 <LoRaMacClassBIsBeaconExpected>
+ 800c31c:	2800      	cmp	r0, #0
+ 800c31e:	f040 8156 	bne.w	800c5ce <ScheduleTx+0x2be>
+ 800c322:	4dac      	ldr	r5, [pc, #688]	; (800c5d4 <ScheduleTx+0x2c4>)
+ 800c324:	f895 3118 	ldrb.w	r3, [r5, #280]	; 0x118
+ 800c328:	2b01      	cmp	r3, #1
+ 800c32a:	d009      	beq.n	800c340 <ScheduleTx+0x30>
+ 800c32c:	6b2b      	ldr	r3, [r5, #48]	; 0x30
+ 800c32e:	4caa      	ldr	r4, [pc, #680]	; (800c5d8 <ScheduleTx+0x2c8>)
+ 800c330:	b193      	cbz	r3, 800c358 <ScheduleTx+0x48>
+ 800c332:	f894 3104 	ldrb.w	r3, [r4, #260]	; 0x104
+ 800c336:	b1bb      	cbz	r3, 800c368 <ScheduleTx+0x58>
+ 800c338:	2b04      	cmp	r3, #4
+ 800c33a:	d06f      	beq.n	800c41c <ScheduleTx+0x10c>
+ 800c33c:	2003      	movs	r0, #3
+ 800c33e:	e003      	b.n	800c348 <ScheduleTx+0x38>
+ 800c340:	f002 fc3b 	bl	800ebba <LoRaMacClassBIsPingExpected>
+ 800c344:	b118      	cbz	r0, 800c34e <ScheduleTx+0x3e>
+ 800c346:	200f      	movs	r0, #15
+ 800c348:	b012      	add	sp, #72	; 0x48
+ 800c34a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800c34e:	f002 fc36 	bl	800ebbe <LoRaMacClassBIsMulticastExpected>
+ 800c352:	2800      	cmp	r0, #0
+ 800c354:	d0ea      	beq.n	800c32c <ScheduleTx+0x1c>
+ 800c356:	e7f6      	b.n	800c346 <ScheduleTx+0x36>
+ 800c358:	f8b5 311e 	ldrh.w	r3, [r5, #286]	; 0x11e
+ 800c35c:	f8d4 2414 	ldr.w	r2, [r4, #1044]	; 0x414
+ 800c360:	3b01      	subs	r3, #1
+ 800c362:	4353      	muls	r3, r2
+ 800c364:	632b      	str	r3, [r5, #48]	; 0x30
+ 800c366:	e7e4      	b.n	800c332 <ScheduleTx+0x22>
+ 800c368:	489c      	ldr	r0, [pc, #624]	; (800c5dc <ScheduleTx+0x2cc>)
+ 800c36a:	f003 f9e4 	bl	800f736 <LoRaMacSerializerJoinRequest>
+ 800c36e:	2800      	cmp	r0, #0
+ 800c370:	f040 8129 	bne.w	800c5c6 <ScheduleTx+0x2b6>
+ 800c374:	f894 310c 	ldrb.w	r3, [r4, #268]	; 0x10c
+ 800c378:	8023      	strh	r3, [r4, #0]
+ 800c37a:	6b2b      	ldr	r3, [r5, #48]	; 0x30
+ 800c37c:	930c      	str	r3, [sp, #48]	; 0x30
+ 800c37e:	f10d 0818 	add.w	r8, sp, #24
+ 800c382:	f895 3039 	ldrb.w	r3, [r5, #57]	; 0x39
+ 800c386:	f88d 3038 	strb.w	r3, [sp, #56]	; 0x38
+ 800c38a:	4640      	mov	r0, r8
+ 800c38c:	f895 311c 	ldrb.w	r3, [r5, #284]	; 0x11c
+ 800c390:	f88d 303a 	strb.w	r3, [sp, #58]	; 0x3a
+ 800c394:	f007 fc80 	bl	8013c98 <SysTimeGetMcuTime>
+ 800c398:	f8d5 3124 	ldr.w	r3, [r5, #292]	; 0x124
+ 800c39c:	9300      	str	r3, [sp, #0]
+ 800c39e:	af02      	add	r7, sp, #8
+ 800c3a0:	e898 0006 	ldmia.w	r8, {r1, r2}
+ 800c3a4:	f8d5 3120 	ldr.w	r3, [r5, #288]	; 0x120
+ 800c3a8:	4638      	mov	r0, r7
+ 800c3aa:	f007 fc0c 	bl	8013bc6 <SysTimeSub>
+ 800c3ae:	e897 0003 	ldmia.w	r7, {r0, r1}
+ 800c3b2:	ab0f      	add	r3, sp, #60	; 0x3c
+ 800c3b4:	e883 0003 	stmia.w	r3, {r0, r1}
+ 800c3b8:	6aeb      	ldr	r3, [r5, #44]	; 0x2c
+ 800c3ba:	930d      	str	r3, [sp, #52]	; 0x34
+ 800c3bc:	2300      	movs	r3, #0
+ 800c3be:	f88d 3044 	strb.w	r3, [sp, #68]	; 0x44
+ 800c3c2:	8823      	ldrh	r3, [r4, #0]
+ 800c3c4:	f8ad 3046 	strh.w	r3, [sp, #70]	; 0x46
+ 800c3c8:	f895 312c 	ldrb.w	r3, [r5, #300]	; 0x12c
+ 800c3cc:	2201      	movs	r2, #1
+ 800c3ce:	f88d 2039 	strb.w	r2, [sp, #57]	; 0x39
+ 800c3d2:	b91b      	cbnz	r3, 800c3dc <ScheduleTx+0xcc>
+ 800c3d4:	f88d 2044 	strb.w	r2, [sp, #68]	; 0x44
+ 800c3d8:	f88d 3039 	strb.w	r3, [sp, #57]	; 0x39
+ 800c3dc:	4b80      	ldr	r3, [pc, #512]	; (800c5e0 <ScheduleTx+0x2d0>)
+ 800c3de:	9300      	str	r3, [sp, #0]
+ 800c3e0:	4b80      	ldr	r3, [pc, #512]	; (800c5e4 <ScheduleTx+0x2d4>)
+ 800c3e2:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800c3e6:	f1a3 0273 	sub.w	r2, r3, #115	; 0x73
+ 800c3ea:	a90c      	add	r1, sp, #48	; 0x30
+ 800c3ec:	f003 fae1 	bl	800f9b2 <RegionNextChannel>
+ 800c3f0:	b1c0      	cbz	r0, 800c424 <ScheduleTx+0x114>
+ 800c3f2:	280b      	cmp	r0, #11
+ 800c3f4:	d1a8      	bne.n	800c348 <ScheduleTx+0x38>
+ 800c3f6:	f8d4 1484 	ldr.w	r1, [r4, #1156]	; 0x484
+ 800c3fa:	b199      	cbz	r1, 800c424 <ScheduleTx+0x114>
+ 800c3fc:	2e00      	cmp	r6, #0
+ 800c3fe:	d0a3      	beq.n	800c348 <ScheduleTx+0x38>
+ 800c400:	f8d4 3340 	ldr.w	r3, [r4, #832]	; 0x340
+ 800c404:	4878      	ldr	r0, [pc, #480]	; (800c5e8 <ScheduleTx+0x2d8>)
+ 800c406:	f043 0320 	orr.w	r3, r3, #32
+ 800c40a:	f8c4 3340 	str.w	r3, [r4, #832]	; 0x340
+ 800c40e:	f007 fd95 	bl	8013f3c <UTIL_TIMER_SetPeriod>
+ 800c412:	4875      	ldr	r0, [pc, #468]	; (800c5e8 <ScheduleTx+0x2d8>)
+ 800c414:	f007 fd58 	bl	8013ec8 <UTIL_TIMER_Start>
+ 800c418:	2000      	movs	r0, #0
+ 800c41a:	e795      	b.n	800c348 <ScheduleTx+0x38>
+ 800c41c:	486f      	ldr	r0, [pc, #444]	; (800c5dc <ScheduleTx+0x2cc>)
+ 800c41e:	f003 f9be 	bl	800f79e <LoRaMacSerializerData>
+ 800c422:	e7a4      	b.n	800c36e <ScheduleTx+0x5e>
+ 800c424:	f895 7048 	ldrb.w	r7, [r5, #72]	; 0x48
+ 800c428:	f995 3069 	ldrsb.w	r3, [r5, #105]	; 0x69
+ 800c42c:	f995 2039 	ldrsb.w	r2, [r5, #57]	; 0x39
+ 800c430:	f895 107d 	ldrb.w	r1, [r5, #125]	; 0x7d
+ 800c434:	4e6d      	ldr	r6, [pc, #436]	; (800c5ec <ScheduleTx+0x2dc>)
+ 800c436:	4638      	mov	r0, r7
+ 800c438:	f003 facd 	bl	800f9d6 <RegionApplyDrOffset>
+ 800c43c:	9600      	str	r6, [sp, #0]
+ 800c43e:	b241      	sxtb	r1, r0
+ 800c440:	6ceb      	ldr	r3, [r5, #76]	; 0x4c
+ 800c442:	f895 2050 	ldrb.w	r2, [r5, #80]	; 0x50
+ 800c446:	4638      	mov	r0, r7
+ 800c448:	3614      	adds	r6, #20
+ 800c44a:	f003 fa63 	bl	800f914 <RegionComputeRxWindowParameters>
+ 800c44e:	9600      	str	r6, [sp, #0]
+ 800c450:	6ceb      	ldr	r3, [r5, #76]	; 0x4c
+ 800c452:	f895 2050 	ldrb.w	r2, [r5, #80]	; 0x50
+ 800c456:	f995 1070 	ldrsb.w	r1, [r5, #112]	; 0x70
+ 800c45a:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800c45e:	f003 fa59 	bl	800f914 <RegionComputeRxWindowParameters>
+ 800c462:	f8d4 13c4 	ldr.w	r1, [r4, #964]	; 0x3c4
+ 800c466:	6dab      	ldr	r3, [r5, #88]	; 0x58
+ 800c468:	f8d4 23d8 	ldr.w	r2, [r4, #984]	; 0x3d8
+ 800c46c:	440b      	add	r3, r1
+ 800c46e:	f8c4 33b0 	str.w	r3, [r4, #944]	; 0x3b0
+ 800c472:	6deb      	ldr	r3, [r5, #92]	; 0x5c
+ 800c474:	4413      	add	r3, r2
+ 800c476:	f8c4 33b4 	str.w	r3, [r4, #948]	; 0x3b4
+ 800c47a:	f894 3104 	ldrb.w	r3, [r4, #260]	; 0x104
+ 800c47e:	2b04      	cmp	r3, #4
+ 800c480:	d007      	beq.n	800c492 <ScheduleTx+0x182>
+ 800c482:	6e2b      	ldr	r3, [r5, #96]	; 0x60
+ 800c484:	440b      	add	r3, r1
+ 800c486:	f8c4 33b0 	str.w	r3, [r4, #944]	; 0x3b0
+ 800c48a:	6e6b      	ldr	r3, [r5, #100]	; 0x64
+ 800c48c:	4413      	add	r3, r2
+ 800c48e:	f8c4 33b4 	str.w	r3, [r4, #948]	; 0x3b4
+ 800c492:	2300      	movs	r3, #0
+ 800c494:	9308      	str	r3, [sp, #32]
+ 800c496:	f895 312c 	ldrb.w	r3, [r5, #300]	; 0x12c
+ 800c49a:	b183      	cbz	r3, 800c4be <ScheduleTx+0x1ae>
+ 800c49c:	a808      	add	r0, sp, #32
+ 800c49e:	f002 fc61 	bl	800ed64 <LoRaMacCommandsGetSizeSerializedCmds>
+ 800c4a2:	2800      	cmp	r0, #0
+ 800c4a4:	d14a      	bne.n	800c53c <ScheduleTx+0x22c>
+ 800c4a6:	f995 0039 	ldrsb.w	r0, [r5, #57]	; 0x39
+ 800c4aa:	f894 6237 	ldrb.w	r6, [r4, #567]	; 0x237
+ 800c4ae:	f89d 7020 	ldrb.w	r7, [sp, #32]
+ 800c4b2:	f7ff fe03 	bl	800c0bc <GetMaxAppPayloadWithoutFOptsLength>
+ 800c4b6:	443e      	add	r6, r7
+ 800c4b8:	b280      	uxth	r0, r0
+ 800c4ba:	42b0      	cmp	r0, r6
+ 800c4bc:	d33c      	bcc.n	800c538 <ScheduleTx+0x228>
+ 800c4be:	2300      	movs	r3, #0
+ 800c4c0:	f88d 3013 	strb.w	r3, [sp, #19]
+ 800c4c4:	f895 3039 	ldrb.w	r3, [r5, #57]	; 0x39
+ 800c4c8:	f88d 3021 	strb.w	r3, [sp, #33]	; 0x21
+ 800c4cc:	f895 3038 	ldrb.w	r3, [r5, #56]	; 0x38
+ 800c4d0:	f88d 3022 	strb.w	r3, [sp, #34]	; 0x22
+ 800c4d4:	f8d5 3080 	ldr.w	r3, [r5, #128]	; 0x80
+ 800c4d8:	9309      	str	r3, [sp, #36]	; 0x24
+ 800c4da:	f8d5 3084 	ldr.w	r3, [r5, #132]	; 0x84
+ 800c4de:	930a      	str	r3, [sp, #40]	; 0x28
+ 800c4e0:	8823      	ldrh	r3, [r4, #0]
+ 800c4e2:	f894 6411 	ldrb.w	r6, [r4, #1041]	; 0x411
+ 800c4e6:	f8ad 302c 	strh.w	r3, [sp, #44]	; 0x2c
+ 800c4ea:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800c4ee:	4b40      	ldr	r3, [pc, #256]	; (800c5f0 <ScheduleTx+0x2e0>)
+ 800c4f0:	f88d 6020 	strb.w	r6, [sp, #32]
+ 800c4f4:	f10d 0213 	add.w	r2, sp, #19
+ 800c4f8:	a908      	add	r1, sp, #32
+ 800c4fa:	f003 fa1f 	bl	800f93c <RegionTxConfig>
+ 800c4fe:	2301      	movs	r3, #1
+ 800c500:	f884 3435 	strb.w	r3, [r4, #1077]	; 0x435
+ 800c504:	f895 3039 	ldrb.w	r3, [r5, #57]	; 0x39
+ 800c508:	f884 3436 	strb.w	r3, [r4, #1078]	; 0x436
+ 800c50c:	f89d 3013 	ldrb.w	r3, [sp, #19]
+ 800c510:	f884 3437 	strb.w	r3, [r4, #1079]	; 0x437
+ 800c514:	f8d4 3414 	ldr.w	r3, [r4, #1044]	; 0x414
+ 800c518:	f8c4 6444 	str.w	r6, [r4, #1092]	; 0x444
+ 800c51c:	f8c4 343c 	str.w	r3, [r4, #1084]	; 0x43c
+ 800c520:	f8c4 344c 	str.w	r3, [r4, #1100]	; 0x44c
+ 800c524:	f002 fb4d 	bl	800ebc2 <LoRaMacClassBIsBeaconModeActive>
+ 800c528:	b150      	cbz	r0, 800c540 <ScheduleTx+0x230>
+ 800c52a:	f8d4 0414 	ldr.w	r0, [r4, #1044]	; 0x414
+ 800c52e:	f002 fb5a 	bl	800ebe6 <LoRaMacClassBIsUplinkCollision>
+ 800c532:	b128      	cbz	r0, 800c540 <ScheduleTx+0x230>
+ 800c534:	2010      	movs	r0, #16
+ 800c536:	e707      	b.n	800c348 <ScheduleTx+0x38>
+ 800c538:	2008      	movs	r0, #8
+ 800c53a:	e705      	b.n	800c348 <ScheduleTx+0x38>
+ 800c53c:	2013      	movs	r0, #19
+ 800c53e:	e703      	b.n	800c348 <ScheduleTx+0x38>
+ 800c540:	f895 3118 	ldrb.w	r3, [r5, #280]	; 0x118
+ 800c544:	2b01      	cmp	r3, #1
+ 800c546:	d101      	bne.n	800c54c <ScheduleTx+0x23c>
+ 800c548:	f002 fb4f 	bl	800ebea <LoRaMacClassBStopRxSlots>
+ 800c54c:	f002 fb3c 	bl	800ebc8 <LoRaMacClassBHaltBeaconing>
+ 800c550:	2300      	movs	r3, #0
+ 800c552:	9305      	str	r3, [sp, #20]
+ 800c554:	f894 3104 	ldrb.w	r3, [r4, #260]	; 0x104
+ 800c558:	f995 5039 	ldrsb.w	r5, [r5, #57]	; 0x39
+ 800c55c:	f894 6411 	ldrb.w	r6, [r4, #1041]	; 0x411
+ 800c560:	b1bb      	cbz	r3, 800c592 <ScheduleTx+0x282>
+ 800c562:	2b04      	cmp	r3, #4
+ 800c564:	f47f aeea 	bne.w	800c33c <ScheduleTx+0x2c>
+ 800c568:	a805      	add	r0, sp, #20
+ 800c56a:	f002 fe37 	bl	800f1dc <LoRaMacCryptoGetFCntUp>
+ 800c56e:	bb60      	cbnz	r0, 800c5ca <ScheduleTx+0x2ba>
+ 800c570:	f894 340c 	ldrb.w	r3, [r4, #1036]	; 0x40c
+ 800c574:	b91b      	cbnz	r3, 800c57e <ScheduleTx+0x26e>
+ 800c576:	f894 340e 	ldrb.w	r3, [r4, #1038]	; 0x40e
+ 800c57a:	2b01      	cmp	r3, #1
+ 800c57c:	d902      	bls.n	800c584 <ScheduleTx+0x274>
+ 800c57e:	9b05      	ldr	r3, [sp, #20]
+ 800c580:	3b01      	subs	r3, #1
+ 800c582:	9305      	str	r3, [sp, #20]
+ 800c584:	4b15      	ldr	r3, [pc, #84]	; (800c5dc <ScheduleTx+0x2cc>)
+ 800c586:	9805      	ldr	r0, [sp, #20]
+ 800c588:	4632      	mov	r2, r6
+ 800c58a:	b2e9      	uxtb	r1, r5
+ 800c58c:	f002 fe98 	bl	800f2c0 <LoRaMacCryptoSecureMessage>
+ 800c590:	e002      	b.n	800c598 <ScheduleTx+0x288>
+ 800c592:	4812      	ldr	r0, [pc, #72]	; (800c5dc <ScheduleTx+0x2cc>)
+ 800c594:	f002 fe6c 	bl	800f270 <LoRaMacCryptoPrepareJoinRequest>
+ 800c598:	b9a8      	cbnz	r0, 800c5c6 <ScheduleTx+0x2b6>
+ 800c59a:	f8d4 3340 	ldr.w	r3, [r4, #832]	; 0x340
+ 800c59e:	f894 110c 	ldrb.w	r1, [r4, #268]	; 0x10c
+ 800c5a2:	8021      	strh	r1, [r4, #0]
+ 800c5a4:	f043 0302 	orr.w	r3, r3, #2
+ 800c5a8:	f8c4 3340 	str.w	r3, [r4, #832]	; 0x340
+ 800c5ac:	f894 3410 	ldrb.w	r3, [r4, #1040]	; 0x410
+ 800c5b0:	b923      	cbnz	r3, 800c5bc <ScheduleTx+0x2ac>
+ 800c5b2:	f894 340c 	ldrb.w	r3, [r4, #1036]	; 0x40c
+ 800c5b6:	3301      	adds	r3, #1
+ 800c5b8:	f884 340c 	strb.w	r3, [r4, #1036]	; 0x40c
+ 800c5bc:	4b0d      	ldr	r3, [pc, #52]	; (800c5f4 <ScheduleTx+0x2e4>)
+ 800c5be:	480e      	ldr	r0, [pc, #56]	; (800c5f8 <ScheduleTx+0x2e8>)
+ 800c5c0:	6a9b      	ldr	r3, [r3, #40]	; 0x28
+ 800c5c2:	4798      	blx	r3
+ 800c5c4:	e728      	b.n	800c418 <ScheduleTx+0x108>
+ 800c5c6:	2011      	movs	r0, #17
+ 800c5c8:	e6be      	b.n	800c348 <ScheduleTx+0x38>
+ 800c5ca:	2012      	movs	r0, #18
+ 800c5cc:	e6bc      	b.n	800c348 <ScheduleTx+0x38>
+ 800c5ce:	200e      	movs	r0, #14
+ 800c5d0:	e6ba      	b.n	800c348 <ScheduleTx+0x38>
+ 800c5d2:	bf00      	nop
+ 800c5d4:	20001864 	.word	0x20001864
+ 800c5d8:	20001fd8 	.word	0x20001fd8
+ 800c5dc:	200020e0 	.word	0x200020e0
+ 800c5e0:	20001894 	.word	0x20001894
+ 800c5e4:	2000245c 	.word	0x2000245c
+ 800c5e8:	20002340 	.word	0x20002340
+ 800c5ec:	20002390 	.word	0x20002390
+ 800c5f0:	200023ec 	.word	0x200023ec
+ 800c5f4:	08015784 	.word	0x08015784
+ 800c5f8:	20001fda 	.word	0x20001fda
+
+0800c5fc <OpenContinuousRxCWindow>:
+ 800c5fc:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 800c5fe:	4c14      	ldr	r4, [pc, #80]	; (800c650 <OpenContinuousRxCWindow+0x54>)
+ 800c600:	4d14      	ldr	r5, [pc, #80]	; (800c654 <OpenContinuousRxCWindow+0x58>)
+ 800c602:	f504 7678 	add.w	r6, r4, #992	; 0x3e0
+ 800c606:	6ceb      	ldr	r3, [r5, #76]	; 0x4c
+ 800c608:	f895 2050 	ldrb.w	r2, [r5, #80]	; 0x50
+ 800c60c:	f995 1078 	ldrsb.w	r1, [r5, #120]	; 0x78
+ 800c610:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800c614:	9600      	str	r6, [sp, #0]
+ 800c616:	f003 f97d 	bl	800f914 <RegionComputeRxWindowParameters>
+ 800c61a:	f240 2301 	movw	r3, #513	; 0x201
+ 800c61e:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800c622:	f8a4 33f2 	strh.w	r3, [r4, #1010]	; 0x3f2
+ 800c626:	f204 421c 	addw	r2, r4, #1052	; 0x41c
+ 800c62a:	4631      	mov	r1, r6
+ 800c62c:	f003 f97e 	bl	800f92c <RegionRxConfig>
+ 800c630:	b158      	cbz	r0, 800c64a <OpenContinuousRxCWindow+0x4e>
+ 800c632:	f894 341c 	ldrb.w	r3, [r4, #1052]	; 0x41c
+ 800c636:	f884 345e 	strb.w	r3, [r4, #1118]	; 0x45e
+ 800c63a:	4b07      	ldr	r3, [pc, #28]	; (800c658 <OpenContinuousRxCWindow+0x5c>)
+ 800c63c:	2000      	movs	r0, #0
+ 800c63e:	6b5b      	ldr	r3, [r3, #52]	; 0x34
+ 800c640:	4798      	blx	r3
+ 800c642:	f894 33f3 	ldrb.w	r3, [r4, #1011]	; 0x3f3
+ 800c646:	f884 3480 	strb.w	r3, [r4, #1152]	; 0x480
+ 800c64a:	b002      	add	sp, #8
+ 800c64c:	bd70      	pop	{r4, r5, r6, pc}
+ 800c64e:	bf00      	nop
+ 800c650:	20001fd8 	.word	0x20001fd8
+ 800c654:	20001864 	.word	0x20001864
+ 800c658:	08015784 	.word	0x08015784
+
+0800c65c <SwitchClass>:
+ 800c65c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 800c65e:	4d33      	ldr	r5, [pc, #204]	; (800c72c <SwitchClass+0xd0>)
+ 800c660:	f895 4118 	ldrb.w	r4, [r5, #280]	; 0x118
+ 800c664:	2c01      	cmp	r4, #1
+ 800c666:	4606      	mov	r6, r0
+ 800c668:	d04b      	beq.n	800c702 <SwitchClass+0xa6>
+ 800c66a:	2c02      	cmp	r4, #2
+ 800c66c:	d051      	beq.n	800c712 <SwitchClass+0xb6>
+ 800c66e:	b964      	cbnz	r4, 800c68a <SwitchClass+0x2e>
+ 800c670:	b938      	cbnz	r0, 800c682 <SwitchClass+0x26>
+ 800c672:	e9d5 011b 	ldrd	r0, r1, [r5, #108]	; 0x6c
+ 800c676:	f105 0374 	add.w	r3, r5, #116	; 0x74
+ 800c67a:	e883 0003 	stmia.w	r3, {r0, r1}
+ 800c67e:	4620      	mov	r0, r4
+ 800c680:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 800c682:	2801      	cmp	r0, #1
+ 800c684:	d03d      	beq.n	800c702 <SwitchClass+0xa6>
+ 800c686:	2802      	cmp	r0, #2
+ 800c688:	d001      	beq.n	800c68e <SwitchClass+0x32>
+ 800c68a:	2403      	movs	r4, #3
+ 800c68c:	e7f7      	b.n	800c67e <SwitchClass+0x22>
+ 800c68e:	4f28      	ldr	r7, [pc, #160]	; (800c730 <SwitchClass+0xd4>)
+ 800c690:	f885 0118 	strb.w	r0, [r5, #280]	; 0x118
+ 800c694:	f507 7e73 	add.w	lr, r7, #972	; 0x3cc
+ 800c698:	e8be 000f 	ldmia.w	lr!, {r0, r1, r2, r3}
+ 800c69c:	f507 7c78 	add.w	ip, r7, #992	; 0x3e0
+ 800c6a0:	e8ac 000f 	stmia.w	ip!, {r0, r1, r2, r3}
+ 800c6a4:	f8de 3000 	ldr.w	r3, [lr]
+ 800c6a8:	f8cc 3000 	str.w	r3, [ip]
+ 800c6ac:	f895 30e9 	ldrb.w	r3, [r5, #233]	; 0xe9
+ 800c6b0:	f887 63f3 	strb.w	r6, [r7, #1011]	; 0x3f3
+ 800c6b4:	b1e3      	cbz	r3, 800c6f0 <SwitchClass+0x94>
+ 800c6b6:	f895 3100 	ldrb.w	r3, [r5, #256]	; 0x100
+ 800c6ba:	2b02      	cmp	r3, #2
+ 800c6bc:	d118      	bne.n	800c6f0 <SwitchClass+0x94>
+ 800c6be:	f8d5 3104 	ldr.w	r3, [r5, #260]	; 0x104
+ 800c6c2:	676b      	str	r3, [r5, #116]	; 0x74
+ 800c6c4:	f8c7 33e4 	str.w	r3, [r7, #996]	; 0x3e4
+ 800c6c8:	f895 307d 	ldrb.w	r3, [r5, #125]	; 0x7d
+ 800c6cc:	f895 2108 	ldrb.w	r2, [r5, #264]	; 0x108
+ 800c6d0:	f887 33f0 	strb.w	r3, [r7, #1008]	; 0x3f0
+ 800c6d4:	f895 308c 	ldrb.w	r3, [r5, #140]	; 0x8c
+ 800c6d8:	f885 2078 	strb.w	r2, [r5, #120]	; 0x78
+ 800c6dc:	f887 33f1 	strb.w	r3, [r7, #1009]	; 0x3f1
+ 800c6e0:	f897 2411 	ldrb.w	r2, [r7, #1041]	; 0x411
+ 800c6e4:	f887 23e0 	strb.w	r2, [r7, #992]	; 0x3e0
+ 800c6e8:	f240 3301 	movw	r3, #769	; 0x301
+ 800c6ec:	f8a7 33f2 	strh.w	r3, [r7, #1010]	; 0x3f2
+ 800c6f0:	2300      	movs	r3, #0
+ 800c6f2:	f887 3410 	strb.w	r3, [r7, #1040]	; 0x410
+ 800c6f6:	4b0f      	ldr	r3, [pc, #60]	; (800c734 <SwitchClass+0xd8>)
+ 800c6f8:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800c6fa:	4798      	blx	r3
+ 800c6fc:	f7ff ff7e 	bl	800c5fc <OpenContinuousRxCWindow>
+ 800c700:	e7bd      	b.n	800c67e <SwitchClass+0x22>
+ 800c702:	f002 fa63 	bl	800ebcc <LoRaMacClassBSwitchClass>
+ 800c706:	4604      	mov	r4, r0
+ 800c708:	2800      	cmp	r0, #0
+ 800c70a:	d1b8      	bne.n	800c67e <SwitchClass+0x22>
+ 800c70c:	f885 6118 	strb.w	r6, [r5, #280]	; 0x118
+ 800c710:	e7b5      	b.n	800c67e <SwitchClass+0x22>
+ 800c712:	2800      	cmp	r0, #0
+ 800c714:	d1b9      	bne.n	800c68a <SwitchClass+0x2e>
+ 800c716:	4b06      	ldr	r3, [pc, #24]	; (800c730 <SwitchClass+0xd4>)
+ 800c718:	f885 0118 	strb.w	r0, [r5, #280]	; 0x118
+ 800c71c:	2206      	movs	r2, #6
+ 800c71e:	f883 2480 	strb.w	r2, [r3, #1152]	; 0x480
+ 800c722:	4b04      	ldr	r3, [pc, #16]	; (800c734 <SwitchClass+0xd8>)
+ 800c724:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800c726:	4798      	blx	r3
+ 800c728:	4634      	mov	r4, r6
+ 800c72a:	e7a8      	b.n	800c67e <SwitchClass+0x22>
+ 800c72c:	20001864 	.word	0x20001864
+ 800c730:	20001fd8 	.word	0x20001fd8
+ 800c734:	08015784 	.word	0x08015784
+
+0800c738 <ResetMacParameters.constprop.0>:
+ 800c738:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 800c73a:	4c48      	ldr	r4, [pc, #288]	; (800c85c <ResetMacParameters.constprop.0+0x124>)
+ 800c73c:	4e48      	ldr	r6, [pc, #288]	; (800c860 <ResetMacParameters.constprop.0+0x128>)
+ 800c73e:	f8b4 20dc 	ldrh.w	r2, [r4, #220]	; 0xdc
+ 800c742:	8722      	strh	r2, [r4, #56]	; 0x38
+ 800c744:	e9d4 012d 	ldrd	r0, r1, [r4, #180]	; 0xb4
+ 800c748:	f894 20b1 	ldrb.w	r2, [r4, #177]	; 0xb1
+ 800c74c:	f884 2069 	strb.w	r2, [r4, #105]	; 0x69
+ 800c750:	f104 026c 	add.w	r2, r4, #108	; 0x6c
+ 800c754:	e882 0003 	stmia.w	r2, {r0, r1}
+ 800c758:	e9d4 012f 	ldrd	r0, r1, [r4, #188]	; 0xbc
+ 800c75c:	f104 0274 	add.w	r2, r4, #116	; 0x74
+ 800c760:	e882 0003 	stmia.w	r2, {r0, r1}
+ 800c764:	f8b4 20c4 	ldrh.w	r2, [r4, #196]	; 0xc4
+ 800c768:	f8a4 207c 	strh.w	r2, [r4, #124]	; 0x7c
+ 800c76c:	f8d4 20cc 	ldr.w	r2, [r4, #204]	; 0xcc
+ 800c770:	f8c4 2084 	str.w	r2, [r4, #132]	; 0x84
+ 800c774:	b08f      	sub	sp, #60	; 0x3c
+ 800c776:	f8d4 20d0 	ldr.w	r2, [r4, #208]	; 0xd0
+ 800c77a:	f8d4 10c8 	ldr.w	r1, [r4, #200]	; 0xc8
+ 800c77e:	f8c4 2088 	str.w	r2, [r4, #136]	; 0x88
+ 800c782:	2500      	movs	r5, #0
+ 800c784:	4a37      	ldr	r2, [pc, #220]	; (800c864 <ResetMacParameters.constprop.0+0x12c>)
+ 800c786:	f8c4 1080 	str.w	r1, [r4, #128]	; 0x80
+ 800c78a:	2301      	movs	r3, #1
+ 800c78c:	f8a4 311e 	strh.w	r3, [r4, #286]	; 0x11e
+ 800c790:	f8c6 240c 	str.w	r2, [r6, #1036]	; 0x40c
+ 800c794:	e9c4 554e 	strd	r5, r5, [r4, #312]	; 0x138
+ 800c798:	f884 512c 	strb.w	r5, [r4, #300]	; 0x12c
+ 800c79c:	62a5      	str	r5, [r4, #40]	; 0x28
+ 800c79e:	f884 511b 	strb.w	r5, [r4, #283]	; 0x11b
+ 800c7a2:	f884 503a 	strb.w	r5, [r4, #58]	; 0x3a
+ 800c7a6:	f8c4 5130 	str.w	r5, [r4, #304]	; 0x130
+ 800c7aa:	f8a4 5134 	strh.w	r5, [r4, #308]	; 0x134
+ 800c7ae:	f886 5410 	strb.w	r5, [r6, #1040]	; 0x410
+ 800c7b2:	f884 5141 	strb.w	r5, [r4, #321]	; 0x141
+ 800c7b6:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800c7ba:	f504 7308 	add.w	r3, r4, #544	; 0x220
+ 800c7be:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800c7c2:	f8a4 5142 	strh.w	r5, [r4, #322]	; 0x142
+ 800c7c6:	9303      	str	r3, [sp, #12]
+ 800c7c8:	a903      	add	r1, sp, #12
+ 800c7ca:	f504 732d 	add.w	r3, r4, #692	; 0x2b4
+ 800c7ce:	9304      	str	r3, [sp, #16]
+ 800c7d0:	f003 f888 	bl	800f8e4 <RegionInitDefaults>
+ 800c7d4:	6ee3      	ldr	r3, [r4, #108]	; 0x6c
+ 800c7d6:	f8c6 33d0 	str.w	r3, [r6, #976]	; 0x3d0
+ 800c7da:	f894 307d 	ldrb.w	r3, [r4, #125]	; 0x7d
+ 800c7de:	f886 33dc 	strb.w	r3, [r6, #988]	; 0x3dc
+ 800c7e2:	f894 308c 	ldrb.w	r3, [r4, #140]	; 0x8c
+ 800c7e6:	f886 33dd 	strb.w	r3, [r6, #989]	; 0x3dd
+ 800c7ea:	f44f 7380 	mov.w	r3, #256	; 0x100
+ 800c7ee:	f8a6 33de 	strh.w	r3, [r6, #990]	; 0x3de
+ 800c7f2:	f886 53cc 	strb.w	r5, [r6, #972]	; 0x3cc
+ 800c7f6:	f506 7773 	add.w	r7, r6, #972	; 0x3cc
+ 800c7fa:	cf0f      	ldmia	r7!, {r0, r1, r2, r3}
+ 800c7fc:	f506 7478 	add.w	r4, r6, #992	; 0x3e0
+ 800c800:	c40f      	stmia	r4!, {r0, r1, r2, r3}
+ 800c802:	683b      	ldr	r3, [r7, #0]
+ 800c804:	6023      	str	r3, [r4, #0]
+ 800c806:	f240 2301 	movw	r3, #513	; 0x201
+ 800c80a:	f8a6 33f2 	strh.w	r3, [r6, #1010]	; 0x3f2
+ 800c80e:	f8d6 3348 	ldr.w	r3, [r6, #840]	; 0x348
+ 800c812:	f886 5411 	strb.w	r5, [r6, #1041]	; 0x411
+ 800c816:	e9cd 5501 	strd	r5, r5, [sp, #4]
+ 800c81a:	b11b      	cbz	r3, 800c824 <ResetMacParameters.constprop.0+0xec>
+ 800c81c:	685a      	ldr	r2, [r3, #4]
+ 800c81e:	695b      	ldr	r3, [r3, #20]
+ 800c820:	9201      	str	r2, [sp, #4]
+ 800c822:	9302      	str	r3, [sp, #8]
+ 800c824:	4b10      	ldr	r3, [pc, #64]	; (800c868 <ResetMacParameters.constprop.0+0x130>)
+ 800c826:	9306      	str	r3, [sp, #24]
+ 800c828:	f1a3 0244 	sub.w	r2, r3, #68	; 0x44
+ 800c82c:	9207      	str	r2, [sp, #28]
+ 800c82e:	f1a3 0214 	sub.w	r2, r3, #20
+ 800c832:	9208      	str	r2, [sp, #32]
+ 800c834:	4a0d      	ldr	r2, [pc, #52]	; (800c86c <ResetMacParameters.constprop.0+0x134>)
+ 800c836:	920a      	str	r2, [sp, #40]	; 0x28
+ 800c838:	3325      	adds	r3, #37	; 0x25
+ 800c83a:	9309      	str	r3, [sp, #36]	; 0x24
+ 800c83c:	f1a2 039c 	sub.w	r3, r2, #156	; 0x9c
+ 800c840:	930b      	str	r3, [sp, #44]	; 0x2c
+ 800c842:	f1a2 0398 	sub.w	r3, r2, #152	; 0x98
+ 800c846:	930c      	str	r3, [sp, #48]	; 0x30
+ 800c848:	a901      	add	r1, sp, #4
+ 800c84a:	1d13      	adds	r3, r2, #4
+ 800c84c:	a806      	add	r0, sp, #24
+ 800c84e:	f202 6274 	addw	r2, r2, #1652	; 0x674
+ 800c852:	930d      	str	r3, [sp, #52]	; 0x34
+ 800c854:	f002 f9a4 	bl	800eba0 <LoRaMacClassBInit>
+ 800c858:	b00f      	add	sp, #60	; 0x3c
+ 800c85a:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 800c85c:	20001864 	.word	0x20001864
+ 800c860:	20001fd8 	.word	0x20001fd8
+ 800c864:	00010100 	.word	0x00010100
+ 800c868:	20002434 	.word	0x20002434
+ 800c86c:	20001948 	.word	0x20001948
+
+0800c870 <RxWindowSetup.constprop.0>:
+ 800c870:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 800c872:	4f0d      	ldr	r7, [pc, #52]	; (800c8a8 <RxWindowSetup.constprop.0+0x38>)
+ 800c874:	4c0d      	ldr	r4, [pc, #52]	; (800c8ac <RxWindowSetup.constprop.0+0x3c>)
+ 800c876:	4e0e      	ldr	r6, [pc, #56]	; (800c8b0 <RxWindowSetup.constprop.0+0x40>)
+ 800c878:	460d      	mov	r5, r1
+ 800c87a:	f007 fad7 	bl	8013e2c <UTIL_TIMER_Stop>
+ 800c87e:	6b3b      	ldr	r3, [r7, #48]	; 0x30
+ 800c880:	4798      	blx	r3
+ 800c882:	f896 0048 	ldrb.w	r0, [r6, #72]	; 0x48
+ 800c886:	f204 421c 	addw	r2, r4, #1052	; 0x41c
+ 800c88a:	4629      	mov	r1, r5
+ 800c88c:	f003 f84e 	bl	800f92c <RegionRxConfig>
+ 800c890:	b148      	cbz	r0, 800c8a6 <RxWindowSetup.constprop.0+0x36>
+ 800c892:	f894 341c 	ldrb.w	r3, [r4, #1052]	; 0x41c
+ 800c896:	f884 345e 	strb.w	r3, [r4, #1118]	; 0x45e
+ 800c89a:	6d70      	ldr	r0, [r6, #84]	; 0x54
+ 800c89c:	6b7b      	ldr	r3, [r7, #52]	; 0x34
+ 800c89e:	4798      	blx	r3
+ 800c8a0:	7ceb      	ldrb	r3, [r5, #19]
+ 800c8a2:	f884 3480 	strb.w	r3, [r4, #1152]	; 0x480
+ 800c8a6:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 800c8a8:	08015784 	.word	0x08015784
+ 800c8ac:	20001fd8 	.word	0x20001fd8
+ 800c8b0:	20001864 	.word	0x20001864
+
+0800c8b4 <OnRxWindow1TimerEvent>:
+ 800c8b4:	480d      	ldr	r0, [pc, #52]	; (800c8ec <OnRxWindow1TimerEvent+0x38>)
+ 800c8b6:	f890 3411 	ldrb.w	r3, [r0, #1041]	; 0x411
+ 800c8ba:	f880 33b8 	strb.w	r3, [r0, #952]	; 0x3b8
+ 800c8be:	4b0c      	ldr	r3, [pc, #48]	; (800c8f0 <OnRxWindow1TimerEvent+0x3c>)
+ 800c8c0:	f893 2069 	ldrb.w	r2, [r3, #105]	; 0x69
+ 800c8c4:	f880 23bb 	strb.w	r2, [r0, #955]	; 0x3bb
+ 800c8c8:	f893 207d 	ldrb.w	r2, [r3, #125]	; 0x7d
+ 800c8cc:	f893 308c 	ldrb.w	r3, [r3, #140]	; 0x8c
+ 800c8d0:	f880 33c9 	strb.w	r3, [r0, #969]	; 0x3c9
+ 800c8d4:	2300      	movs	r3, #0
+ 800c8d6:	f880 23c8 	strb.w	r2, [r0, #968]	; 0x3c8
+ 800c8da:	f8a0 33ca 	strh.w	r3, [r0, #970]	; 0x3ca
+ 800c8de:	f500 716e 	add.w	r1, r0, #952	; 0x3b8
+ 800c8e2:	f500 7060 	add.w	r0, r0, #896	; 0x380
+ 800c8e6:	f7ff bfc3 	b.w	800c870 <RxWindowSetup.constprop.0>
+ 800c8ea:	bf00      	nop
+ 800c8ec:	20001fd8 	.word	0x20001fd8
+ 800c8f0:	20001864 	.word	0x20001864
+
+0800c8f4 <OnRxWindow2TimerEvent>:
+ 800c8f4:	480f      	ldr	r0, [pc, #60]	; (800c934 <OnRxWindow2TimerEvent+0x40>)
+ 800c8f6:	f890 3480 	ldrb.w	r3, [r0, #1152]	; 0x480
+ 800c8fa:	b1cb      	cbz	r3, 800c930 <OnRxWindow2TimerEvent+0x3c>
+ 800c8fc:	f890 3411 	ldrb.w	r3, [r0, #1041]	; 0x411
+ 800c900:	f880 33cc 	strb.w	r3, [r0, #972]	; 0x3cc
+ 800c904:	4b0c      	ldr	r3, [pc, #48]	; (800c938 <OnRxWindow2TimerEvent+0x44>)
+ 800c906:	6eda      	ldr	r2, [r3, #108]	; 0x6c
+ 800c908:	f8c0 23d0 	str.w	r2, [r0, #976]	; 0x3d0
+ 800c90c:	f893 207d 	ldrb.w	r2, [r3, #125]	; 0x7d
+ 800c910:	f893 308c 	ldrb.w	r3, [r3, #140]	; 0x8c
+ 800c914:	f880 33dd 	strb.w	r3, [r0, #989]	; 0x3dd
+ 800c918:	f44f 7380 	mov.w	r3, #256	; 0x100
+ 800c91c:	f880 23dc 	strb.w	r2, [r0, #988]	; 0x3dc
+ 800c920:	f8a0 33de 	strh.w	r3, [r0, #990]	; 0x3de
+ 800c924:	f500 7173 	add.w	r1, r0, #972	; 0x3cc
+ 800c928:	f500 7066 	add.w	r0, r0, #920	; 0x398
+ 800c92c:	f7ff bfa0 	b.w	800c870 <RxWindowSetup.constprop.0>
+ 800c930:	4770      	bx	lr
+ 800c932:	bf00      	nop
+ 800c934:	20001fd8 	.word	0x20001fd8
+ 800c938:	20001864 	.word	0x20001864
+
+0800c93c <LoRaMacHandleNvm.part.0.constprop.0>:
+ 800c93c:	b570      	push	{r4, r5, r6, lr}
+ 800c93e:	4c34      	ldr	r4, [pc, #208]	; (800ca10 <LoRaMacHandleNvm.part.0.constprop.0+0xd4>)
+ 800c940:	2124      	movs	r1, #36	; 0x24
+ 800c942:	4620      	mov	r0, r4
+ 800c944:	f004 ff64 	bl	8011810 <Crc32>
+ 800c948:	6a63      	ldr	r3, [r4, #36]	; 0x24
+ 800c94a:	4298      	cmp	r0, r3
+ 800c94c:	bf18      	it	ne
+ 800c94e:	6260      	strne	r0, [r4, #36]	; 0x24
+ 800c950:	f04f 011c 	mov.w	r1, #28
+ 800c954:	482f      	ldr	r0, [pc, #188]	; (800ca14 <LoRaMacHandleNvm.part.0.constprop.0+0xd8>)
+ 800c956:	bf14      	ite	ne
+ 800c958:	2501      	movne	r5, #1
+ 800c95a:	2500      	moveq	r5, #0
+ 800c95c:	f004 ff58 	bl	8011810 <Crc32>
+ 800c960:	6c63      	ldr	r3, [r4, #68]	; 0x44
+ 800c962:	4298      	cmp	r0, r3
+ 800c964:	bf18      	it	ne
+ 800c966:	6460      	strne	r0, [r4, #68]	; 0x44
+ 800c968:	f04f 01fc 	mov.w	r1, #252	; 0xfc
+ 800c96c:	482a      	ldr	r0, [pc, #168]	; (800ca18 <LoRaMacHandleNvm.part.0.constprop.0+0xdc>)
+ 800c96e:	bf18      	it	ne
+ 800c970:	f045 0502 	orrne.w	r5, r5, #2
+ 800c974:	f004 ff4c 	bl	8011810 <Crc32>
+ 800c978:	f8d4 3144 	ldr.w	r3, [r4, #324]	; 0x144
+ 800c97c:	4298      	cmp	r0, r3
+ 800c97e:	bf18      	it	ne
+ 800c980:	f8c4 0144 	strne.w	r0, [r4, #324]	; 0x144
+ 800c984:	f04f 01d4 	mov.w	r1, #212	; 0xd4
+ 800c988:	4824      	ldr	r0, [pc, #144]	; (800ca1c <LoRaMacHandleNvm.part.0.constprop.0+0xe0>)
+ 800c98a:	bf18      	it	ne
+ 800c98c:	f045 0504 	orrne.w	r5, r5, #4
+ 800c990:	f004 ff3e 	bl	8011810 <Crc32>
+ 800c994:	f8d4 321c 	ldr.w	r3, [r4, #540]	; 0x21c
+ 800c998:	4298      	cmp	r0, r3
+ 800c99a:	bf18      	it	ne
+ 800c99c:	f8c4 021c 	strne.w	r0, [r4, #540]	; 0x21c
+ 800c9a0:	f04f 0190 	mov.w	r1, #144	; 0x90
+ 800c9a4:	481e      	ldr	r0, [pc, #120]	; (800ca20 <LoRaMacHandleNvm.part.0.constprop.0+0xe4>)
+ 800c9a6:	bf18      	it	ne
+ 800c9a8:	f045 0508 	orrne.w	r5, r5, #8
+ 800c9ac:	f004 ff30 	bl	8011810 <Crc32>
+ 800c9b0:	f8d4 32b0 	ldr.w	r3, [r4, #688]	; 0x2b0
+ 800c9b4:	4298      	cmp	r0, r3
+ 800c9b6:	bf18      	it	ne
+ 800c9b8:	f8c4 02b0 	strne.w	r0, [r4, #688]	; 0x2b0
+ 800c9bc:	f44f 6194 	mov.w	r1, #1184	; 0x4a0
+ 800c9c0:	4818      	ldr	r0, [pc, #96]	; (800ca24 <LoRaMacHandleNvm.part.0.constprop.0+0xe8>)
+ 800c9c2:	bf18      	it	ne
+ 800c9c4:	f045 0510 	orrne.w	r5, r5, #16
+ 800c9c8:	f004 ff22 	bl	8011810 <Crc32>
+ 800c9cc:	f8d4 3754 	ldr.w	r3, [r4, #1876]	; 0x754
+ 800c9d0:	4298      	cmp	r0, r3
+ 800c9d2:	bf18      	it	ne
+ 800c9d4:	f8c4 0754 	strne.w	r0, [r4, #1876]	; 0x754
+ 800c9d8:	f04f 0114 	mov.w	r1, #20
+ 800c9dc:	4812      	ldr	r0, [pc, #72]	; (800ca28 <LoRaMacHandleNvm.part.0.constprop.0+0xec>)
+ 800c9de:	bf18      	it	ne
+ 800c9e0:	f045 0520 	orrne.w	r5, r5, #32
+ 800c9e4:	f004 ff14 	bl	8011810 <Crc32>
+ 800c9e8:	f8d4 376c 	ldr.w	r3, [r4, #1900]	; 0x76c
+ 800c9ec:	4298      	cmp	r0, r3
+ 800c9ee:	4b0f      	ldr	r3, [pc, #60]	; (800ca2c <LoRaMacHandleNvm.part.0.constprop.0+0xf0>)
+ 800c9f0:	bf18      	it	ne
+ 800c9f2:	f8c4 076c 	strne.w	r0, [r4, #1900]	; 0x76c
+ 800c9f6:	f8d3 3348 	ldr.w	r3, [r3, #840]	; 0x348
+ 800c9fa:	bf18      	it	ne
+ 800c9fc:	f045 0540 	orrne.w	r5, r5, #64	; 0x40
+ 800ca00:	b12b      	cbz	r3, 800ca0e <LoRaMacHandleNvm.part.0.constprop.0+0xd2>
+ 800ca02:	691b      	ldr	r3, [r3, #16]
+ 800ca04:	b11b      	cbz	r3, 800ca0e <LoRaMacHandleNvm.part.0.constprop.0+0xd2>
+ 800ca06:	4628      	mov	r0, r5
+ 800ca08:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
+ 800ca0c:	4718      	bx	r3
+ 800ca0e:	bd70      	pop	{r4, r5, r6, pc}
+ 800ca10:	20001864 	.word	0x20001864
+ 800ca14:	2000188c 	.word	0x2000188c
+ 800ca18:	200018ac 	.word	0x200018ac
+ 800ca1c:	200019ac 	.word	0x200019ac
+ 800ca20:	20001a84 	.word	0x20001a84
+ 800ca24:	20001b18 	.word	0x20001b18
+ 800ca28:	20001fbc 	.word	0x20001fbc
+ 800ca2c:	20001fd8 	.word	0x20001fd8
+
+0800ca30 <ProcessMacCommands.constprop.0>:
+ 800ca30:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 800ca34:	b091      	sub	sp, #68	; 0x44
+ 800ca36:	2600      	movs	r6, #0
+ 800ca38:	4fbd      	ldr	r7, [pc, #756]	; (800cd30 <ProcessMacCommands.constprop.0+0x300>)
+ 800ca3a:	f88d 6015 	strb.w	r6, [sp, #21]
+ 800ca3e:	4605      	mov	r5, r0
+ 800ca40:	4688      	mov	r8, r1
+ 800ca42:	4693      	mov	fp, r2
+ 800ca44:	f8ad 6018 	strh.w	r6, [sp, #24]
+ 800ca48:	46b1      	mov	r9, r6
+ 800ca4a:	45c1      	cmp	r9, r8
+ 800ca4c:	d302      	bcc.n	800ca54 <ProcessMacCommands.constprop.0+0x24>
+ 800ca4e:	b011      	add	sp, #68	; 0x44
+ 800ca50:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 800ca54:	f815 0009 	ldrb.w	r0, [r5, r9]
+ 800ca58:	f002 f9c2 	bl	800ede0 <LoRaMacCommandsGetCmdSize>
+ 800ca5c:	4448      	add	r0, r9
+ 800ca5e:	4540      	cmp	r0, r8
+ 800ca60:	dcf5      	bgt.n	800ca4e <ProcessMacCommands.constprop.0+0x1e>
+ 800ca62:	f815 3009 	ldrb.w	r3, [r5, r9]
+ 800ca66:	f109 0401 	add.w	r4, r9, #1
+ 800ca6a:	3b02      	subs	r3, #2
+ 800ca6c:	b2e4      	uxtb	r4, r4
+ 800ca6e:	2b11      	cmp	r3, #17
+ 800ca70:	d8ed      	bhi.n	800ca4e <ProcessMacCommands.constprop.0+0x1e>
+ 800ca72:	a201      	add	r2, pc, #4	; (adr r2, 800ca78 <ProcessMacCommands.constprop.0+0x48>)
+ 800ca74:	f852 f023 	ldr.w	pc, [r2, r3, lsl #2]
+ 800ca78:	0800cac1 	.word	0x0800cac1
+ 800ca7c:	0800caf1 	.word	0x0800caf1
+ 800ca80:	0800cbb1 	.word	0x0800cbb1
+ 800ca84:	0800cbdd 	.word	0x0800cbdd
+ 800ca88:	0800cc6d 	.word	0x0800cc6d
+ 800ca8c:	0800cc91 	.word	0x0800cc91
+ 800ca90:	0800cd05 	.word	0x0800cd05
+ 800ca94:	0800cd39 	.word	0x0800cd39
+ 800ca98:	0800cdb7 	.word	0x0800cdb7
+ 800ca9c:	0800ca4f 	.word	0x0800ca4f
+ 800caa0:	0800ca4f 	.word	0x0800ca4f
+ 800caa4:	0800ce17 	.word	0x0800ce17
+ 800caa8:	0800ca4f 	.word	0x0800ca4f
+ 800caac:	0800ca4f 	.word	0x0800ca4f
+ 800cab0:	0800cecd 	.word	0x0800cecd
+ 800cab4:	0800cef3 	.word	0x0800cef3
+ 800cab8:	0800cf37 	.word	0x0800cf37
+ 800cabc:	0800cf75 	.word	0x0800cf75
+ 800cac0:	2005      	movs	r0, #5
+ 800cac2:	f002 fa39 	bl	800ef38 <LoRaMacConfirmQueueIsCmdActive>
+ 800cac6:	b188      	cbz	r0, 800caec <ProcessMacCommands.constprop.0+0xbc>
+ 800cac8:	2105      	movs	r1, #5
+ 800caca:	2000      	movs	r0, #0
+ 800cacc:	f002 f9f8 	bl	800eec0 <LoRaMacConfirmQueueSetStatus>
+ 800cad0:	5d2b      	ldrb	r3, [r5, r4]
+ 800cad2:	f887 3450 	strb.w	r3, [r7, #1104]	; 0x450
+ 800cad6:	f109 0403 	add.w	r4, r9, #3
+ 800cada:	f109 0902 	add.w	r9, r9, #2
+ 800cade:	fa5f f989 	uxtb.w	r9, r9
+ 800cae2:	b2e4      	uxtb	r4, r4
+ 800cae4:	f815 3009 	ldrb.w	r3, [r5, r9]
+ 800cae8:	f887 3451 	strb.w	r3, [r7, #1105]	; 0x451
+ 800caec:	46a1      	mov	r9, r4
+ 800caee:	e7ac      	b.n	800ca4a <ProcessMacCommands.constprop.0+0x1a>
+ 800caf0:	2300      	movs	r3, #0
+ 800caf2:	f88d 3016 	strb.w	r3, [sp, #22]
+ 800caf6:	f88d 3017 	strb.w	r3, [sp, #23]
+ 800cafa:	f88d 301c 	strb.w	r3, [sp, #28]
+ 800cafe:	f88d 3020 	strb.w	r3, [sp, #32]
+ 800cb02:	2e00      	cmp	r6, #0
+ 800cb04:	d152      	bne.n	800cbac <ProcessMacCommands.constprop.0+0x17c>
+ 800cb06:	4e8b      	ldr	r6, [pc, #556]	; (800cd34 <ProcessMacCommands.constprop.0+0x304>)
+ 800cb08:	1e63      	subs	r3, r4, #1
+ 800cb0a:	442b      	add	r3, r5
+ 800cb0c:	930d      	str	r3, [sp, #52]	; 0x34
+ 800cb0e:	f896 311a 	ldrb.w	r3, [r6, #282]	; 0x11a
+ 800cb12:	f88d 303a 	strb.w	r3, [sp, #58]	; 0x3a
+ 800cb16:	f896 307c 	ldrb.w	r3, [r6, #124]	; 0x7c
+ 800cb1a:	f88d 3039 	strb.w	r3, [sp, #57]	; 0x39
+ 800cb1e:	f896 3039 	ldrb.w	r3, [r6, #57]	; 0x39
+ 800cb22:	f88d 303b 	strb.w	r3, [sp, #59]	; 0x3b
+ 800cb26:	f896 3038 	ldrb.w	r3, [r6, #56]	; 0x38
+ 800cb2a:	f88d 303c 	strb.w	r3, [sp, #60]	; 0x3c
+ 800cb2e:	f896 3068 	ldrb.w	r3, [r6, #104]	; 0x68
+ 800cb32:	f88d 303d 	strb.w	r3, [sp, #61]	; 0x3d
+ 800cb36:	f8d6 3128 	ldr.w	r3, [r6, #296]	; 0x128
+ 800cb3a:	930c      	str	r3, [sp, #48]	; 0x30
+ 800cb3c:	ab08      	add	r3, sp, #32
+ 800cb3e:	9301      	str	r3, [sp, #4]
+ 800cb40:	ab07      	add	r3, sp, #28
+ 800cb42:	9300      	str	r3, [sp, #0]
+ 800cb44:	f896 0048 	ldrb.w	r0, [r6, #72]	; 0x48
+ 800cb48:	eba8 0909 	sub.w	r9, r8, r9
+ 800cb4c:	f10d 0317 	add.w	r3, sp, #23
+ 800cb50:	f10d 0216 	add.w	r2, sp, #22
+ 800cb54:	a90c      	add	r1, sp, #48	; 0x30
+ 800cb56:	f88d 9038 	strb.w	r9, [sp, #56]	; 0x38
+ 800cb5a:	f002 fefb 	bl	800f954 <RegionLinkAdrReq>
+ 800cb5e:	f88d 0015 	strb.w	r0, [sp, #21]
+ 800cb62:	f000 0007 	and.w	r0, r0, #7
+ 800cb66:	2807      	cmp	r0, #7
+ 800cb68:	d10b      	bne.n	800cb82 <ProcessMacCommands.constprop.0+0x152>
+ 800cb6a:	f89d 3016 	ldrb.w	r3, [sp, #22]
+ 800cb6e:	f886 3039 	strb.w	r3, [r6, #57]	; 0x39
+ 800cb72:	f89d 3017 	ldrb.w	r3, [sp, #23]
+ 800cb76:	f886 3038 	strb.w	r3, [r6, #56]	; 0x38
+ 800cb7a:	f89d 301c 	ldrb.w	r3, [sp, #28]
+ 800cb7e:	f886 3068 	strb.w	r3, [r6, #104]	; 0x68
+ 800cb82:	2600      	movs	r6, #0
+ 800cb84:	f04f 0905 	mov.w	r9, #5
+ 800cb88:	e006      	b.n	800cb98 <ProcessMacCommands.constprop.0+0x168>
+ 800cb8a:	2201      	movs	r2, #1
+ 800cb8c:	f10d 0115 	add.w	r1, sp, #21
+ 800cb90:	2003      	movs	r0, #3
+ 800cb92:	f002 f83b 	bl	800ec0c <LoRaMacCommandsAddCmd>
+ 800cb96:	3601      	adds	r6, #1
+ 800cb98:	b2f2      	uxtb	r2, r6
+ 800cb9a:	f89d 3020 	ldrb.w	r3, [sp, #32]
+ 800cb9e:	fbb3 f1f9 	udiv	r1, r3, r9
+ 800cba2:	4291      	cmp	r1, r2
+ 800cba4:	d8f1      	bhi.n	800cb8a <ProcessMacCommands.constprop.0+0x15a>
+ 800cba6:	3b01      	subs	r3, #1
+ 800cba8:	4423      	add	r3, r4
+ 800cbaa:	b2dc      	uxtb	r4, r3
+ 800cbac:	2601      	movs	r6, #1
+ 800cbae:	e79d      	b.n	800caec <ProcessMacCommands.constprop.0+0xbc>
+ 800cbb0:	5d2b      	ldrb	r3, [r5, r4]
+ 800cbb2:	4960      	ldr	r1, [pc, #384]	; (800cd34 <ProcessMacCommands.constprop.0+0x304>)
+ 800cbb4:	f003 030f 	and.w	r3, r3, #15
+ 800cbb8:	2201      	movs	r2, #1
+ 800cbba:	f881 311b 	strb.w	r3, [r1, #283]	; 0x11b
+ 800cbbe:	f109 0902 	add.w	r9, r9, #2
+ 800cbc2:	fa02 f303 	lsl.w	r3, r2, r3
+ 800cbc6:	f8a1 311e 	strh.w	r3, [r1, #286]	; 0x11e
+ 800cbca:	fa5f f989 	uxtb.w	r9, r9
+ 800cbce:	2200      	movs	r2, #0
+ 800cbd0:	a906      	add	r1, sp, #24
+ 800cbd2:	2004      	movs	r0, #4
+ 800cbd4:	f002 f81a 	bl	800ec0c <LoRaMacCommandsAddCmd>
+ 800cbd8:	464c      	mov	r4, r9
+ 800cbda:	e787      	b.n	800caec <ProcessMacCommands.constprop.0+0xbc>
+ 800cbdc:	2307      	movs	r3, #7
+ 800cbde:	f88d 3015 	strb.w	r3, [sp, #21]
+ 800cbe2:	5d2b      	ldrb	r3, [r5, r4]
+ 800cbe4:	f3c3 1202 	ubfx	r2, r3, #4, #3
+ 800cbe8:	f003 030f 	and.w	r3, r3, #15
+ 800cbec:	f88d 3030 	strb.w	r3, [sp, #48]	; 0x30
+ 800cbf0:	f109 0303 	add.w	r3, r9, #3
+ 800cbf4:	b2db      	uxtb	r3, r3
+ 800cbf6:	f88d 2031 	strb.w	r2, [sp, #49]	; 0x31
+ 800cbfa:	5cea      	ldrb	r2, [r5, r3]
+ 800cbfc:	f109 0304 	add.w	r3, r9, #4
+ 800cc00:	b2db      	uxtb	r3, r3
+ 800cc02:	f109 0405 	add.w	r4, r9, #5
+ 800cc06:	5ceb      	ldrb	r3, [r5, r3]
+ 800cc08:	f109 0902 	add.w	r9, r9, #2
+ 800cc0c:	fa5f f989 	uxtb.w	r9, r9
+ 800cc10:	041b      	lsls	r3, r3, #16
+ 800cc12:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
+ 800cc16:	f815 2009 	ldrb.w	r2, [r5, r9]
+ 800cc1a:	f8df 9118 	ldr.w	r9, [pc, #280]	; 800cd34 <ProcessMacCommands.constprop.0+0x304>
+ 800cc1e:	4313      	orrs	r3, r2
+ 800cc20:	2264      	movs	r2, #100	; 0x64
+ 800cc22:	4353      	muls	r3, r2
+ 800cc24:	f899 0048 	ldrb.w	r0, [r9, #72]	; 0x48
+ 800cc28:	930d      	str	r3, [sp, #52]	; 0x34
+ 800cc2a:	a90c      	add	r1, sp, #48	; 0x30
+ 800cc2c:	f002 fea1 	bl	800f972 <RegionRxParamSetupReq>
+ 800cc30:	f000 0307 	and.w	r3, r0, #7
+ 800cc34:	2b07      	cmp	r3, #7
+ 800cc36:	b2e4      	uxtb	r4, r4
+ 800cc38:	f88d 0015 	strb.w	r0, [sp, #21]
+ 800cc3c:	d10e      	bne.n	800cc5c <ProcessMacCommands.constprop.0+0x22c>
+ 800cc3e:	f89d 3030 	ldrb.w	r3, [sp, #48]	; 0x30
+ 800cc42:	f889 3070 	strb.w	r3, [r9, #112]	; 0x70
+ 800cc46:	f889 3078 	strb.w	r3, [r9, #120]	; 0x78
+ 800cc4a:	9b0d      	ldr	r3, [sp, #52]	; 0x34
+ 800cc4c:	f8c9 306c 	str.w	r3, [r9, #108]	; 0x6c
+ 800cc50:	f8c9 3074 	str.w	r3, [r9, #116]	; 0x74
+ 800cc54:	f89d 3031 	ldrb.w	r3, [sp, #49]	; 0x31
+ 800cc58:	f889 3069 	strb.w	r3, [r9, #105]	; 0x69
+ 800cc5c:	f88d 0018 	strb.w	r0, [sp, #24]
+ 800cc60:	2201      	movs	r2, #1
+ 800cc62:	a906      	add	r1, sp, #24
+ 800cc64:	2005      	movs	r0, #5
+ 800cc66:	f001 ffd1 	bl	800ec0c <LoRaMacCommandsAddCmd>
+ 800cc6a:	e73f      	b.n	800caec <ProcessMacCommands.constprop.0+0xbc>
+ 800cc6c:	f8d7 3348 	ldr.w	r3, [r7, #840]	; 0x348
+ 800cc70:	b163      	cbz	r3, 800cc8c <ProcessMacCommands.constprop.0+0x25c>
+ 800cc72:	681b      	ldr	r3, [r3, #0]
+ 800cc74:	b153      	cbz	r3, 800cc8c <ProcessMacCommands.constprop.0+0x25c>
+ 800cc76:	4798      	blx	r3
+ 800cc78:	f00b 033f 	and.w	r3, fp, #63	; 0x3f
+ 800cc7c:	f88d 0018 	strb.w	r0, [sp, #24]
+ 800cc80:	f88d 3019 	strb.w	r3, [sp, #25]
+ 800cc84:	2202      	movs	r2, #2
+ 800cc86:	a906      	add	r1, sp, #24
+ 800cc88:	2006      	movs	r0, #6
+ 800cc8a:	e7ec      	b.n	800cc66 <ProcessMacCommands.constprop.0+0x236>
+ 800cc8c:	20ff      	movs	r0, #255	; 0xff
+ 800cc8e:	e7f3      	b.n	800cc78 <ProcessMacCommands.constprop.0+0x248>
+ 800cc90:	2303      	movs	r3, #3
+ 800cc92:	f88d 3015 	strb.w	r3, [sp, #21]
+ 800cc96:	5d2b      	ldrb	r3, [r5, r4]
+ 800cc98:	f88d 3024 	strb.w	r3, [sp, #36]	; 0x24
+ 800cc9c:	ab0c      	add	r3, sp, #48	; 0x30
+ 800cc9e:	9308      	str	r3, [sp, #32]
+ 800cca0:	f109 0303 	add.w	r3, r9, #3
+ 800cca4:	b2db      	uxtb	r3, r3
+ 800cca6:	f109 0406 	add.w	r4, r9, #6
+ 800ccaa:	5cea      	ldrb	r2, [r5, r3]
+ 800ccac:	f109 0304 	add.w	r3, r9, #4
+ 800ccb0:	b2db      	uxtb	r3, r3
+ 800ccb2:	a908      	add	r1, sp, #32
+ 800ccb4:	5ceb      	ldrb	r3, [r5, r3]
+ 800ccb6:	041b      	lsls	r3, r3, #16
+ 800ccb8:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
+ 800ccbc:	f109 0202 	add.w	r2, r9, #2
+ 800ccc0:	b2d2      	uxtb	r2, r2
+ 800ccc2:	f109 0905 	add.w	r9, r9, #5
+ 800ccc6:	5caa      	ldrb	r2, [r5, r2]
+ 800ccc8:	4313      	orrs	r3, r2
+ 800ccca:	2264      	movs	r2, #100	; 0x64
+ 800cccc:	4353      	muls	r3, r2
+ 800ccce:	fa5f f989 	uxtb.w	r9, r9
+ 800ccd2:	930c      	str	r3, [sp, #48]	; 0x30
+ 800ccd4:	2300      	movs	r3, #0
+ 800ccd6:	930d      	str	r3, [sp, #52]	; 0x34
+ 800ccd8:	f815 3009 	ldrb.w	r3, [r5, r9]
+ 800ccdc:	f88d 3038 	strb.w	r3, [sp, #56]	; 0x38
+ 800cce0:	4b14      	ldr	r3, [pc, #80]	; (800cd34 <ProcessMacCommands.constprop.0+0x304>)
+ 800cce2:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 800cce6:	f002 fe4a 	bl	800f97e <RegionNewChannelReq>
+ 800ccea:	b2c3      	uxtb	r3, r0
+ 800ccec:	2800      	cmp	r0, #0
+ 800ccee:	b2e4      	uxtb	r4, r4
+ 800ccf0:	f88d 3015 	strb.w	r3, [sp, #21]
+ 800ccf4:	f6ff aefa 	blt.w	800caec <ProcessMacCommands.constprop.0+0xbc>
+ 800ccf8:	f88d 3018 	strb.w	r3, [sp, #24]
+ 800ccfc:	2201      	movs	r2, #1
+ 800ccfe:	a906      	add	r1, sp, #24
+ 800cd00:	2007      	movs	r0, #7
+ 800cd02:	e7b0      	b.n	800cc66 <ProcessMacCommands.constprop.0+0x236>
+ 800cd04:	5d2b      	ldrb	r3, [r5, r4]
+ 800cd06:	f003 030f 	and.w	r3, r3, #15
+ 800cd0a:	2b01      	cmp	r3, #1
+ 800cd0c:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
+ 800cd10:	bf38      	it	cc
+ 800cd12:	2301      	movcc	r3, #1
+ 800cd14:	4353      	muls	r3, r2
+ 800cd16:	4a07      	ldr	r2, [pc, #28]	; (800cd34 <ProcessMacCommands.constprop.0+0x304>)
+ 800cd18:	f109 0902 	add.w	r9, r9, #2
+ 800cd1c:	6593      	str	r3, [r2, #88]	; 0x58
+ 800cd1e:	f503 737a 	add.w	r3, r3, #1000	; 0x3e8
+ 800cd22:	65d3      	str	r3, [r2, #92]	; 0x5c
+ 800cd24:	fa5f f989 	uxtb.w	r9, r9
+ 800cd28:	2200      	movs	r2, #0
+ 800cd2a:	a906      	add	r1, sp, #24
+ 800cd2c:	2008      	movs	r0, #8
+ 800cd2e:	e751      	b.n	800cbd4 <ProcessMacCommands.constprop.0+0x1a4>
+ 800cd30:	20001fd8 	.word	0x20001fd8
+ 800cd34:	20001864 	.word	0x20001864
+ 800cd38:	5d2b      	ldrb	r3, [r5, r4]
+ 800cd3a:	4c9c      	ldr	r4, [pc, #624]	; (800cfac <ProcessMacCommands.constprop.0+0x57c>)
+ 800cd3c:	f3c3 1240 	ubfx	r2, r3, #5, #1
+ 800cd40:	f88d 201d 	strb.w	r2, [sp, #29]
+ 800cd44:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800cd48:	f3c3 1200 	ubfx	r2, r3, #4, #1
+ 800cd4c:	a907      	add	r1, sp, #28
+ 800cd4e:	f003 030f 	and.w	r3, r3, #15
+ 800cd52:	f88d 201c 	strb.w	r2, [sp, #28]
+ 800cd56:	f88d 301e 	strb.w	r3, [sp, #30]
+ 800cd5a:	f002 fe16 	bl	800f98a <RegionTxParamSetupReq>
+ 800cd5e:	f109 0902 	add.w	r9, r9, #2
+ 800cd62:	3001      	adds	r0, #1
+ 800cd64:	fa5f f989 	uxtb.w	r9, r9
+ 800cd68:	f43f af36 	beq.w	800cbd8 <ProcessMacCommands.constprop.0+0x1a8>
+ 800cd6c:	f8bd 301c 	ldrh.w	r3, [sp, #28]
+ 800cd70:	4a8f      	ldr	r2, [pc, #572]	; (800cfb0 <ProcessMacCommands.constprop.0+0x580>)
+ 800cd72:	f8a4 307c 	strh.w	r3, [r4, #124]	; 0x7c
+ 800cd76:	f89d 301e 	ldrb.w	r3, [sp, #30]
+ 800cd7a:	f89d a01c 	ldrb.w	sl, [sp, #28]
+ 800cd7e:	5cd0      	ldrb	r0, [r2, r3]
+ 800cd80:	f7f4 fe48 	bl	8001a14 <__aeabi_ui2f>
+ 800cd84:	2302      	movs	r3, #2
+ 800cd86:	f8c4 0080 	str.w	r0, [r4, #128]	; 0x80
+ 800cd8a:	a90c      	add	r1, sp, #48	; 0x30
+ 800cd8c:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800cd90:	f88d 3030 	strb.w	r3, [sp, #48]	; 0x30
+ 800cd94:	f88d a032 	strb.w	sl, [sp, #50]	; 0x32
+ 800cd98:	f002 fd96 	bl	800f8c8 <RegionGetPhyParam>
+ 800cd9c:	f994 3039 	ldrsb.w	r3, [r4, #57]	; 0x39
+ 800cda0:	9008      	str	r0, [sp, #32]
+ 800cda2:	b240      	sxtb	r0, r0
+ 800cda4:	4298      	cmp	r0, r3
+ 800cda6:	bfb8      	it	lt
+ 800cda8:	4618      	movlt	r0, r3
+ 800cdaa:	f884 0039 	strb.w	r0, [r4, #57]	; 0x39
+ 800cdae:	2200      	movs	r2, #0
+ 800cdb0:	a906      	add	r1, sp, #24
+ 800cdb2:	2009      	movs	r0, #9
+ 800cdb4:	e70e      	b.n	800cbd4 <ProcessMacCommands.constprop.0+0x1a4>
+ 800cdb6:	2303      	movs	r3, #3
+ 800cdb8:	f88d 3015 	strb.w	r3, [sp, #21]
+ 800cdbc:	5d2b      	ldrb	r3, [r5, r4]
+ 800cdbe:	f88d 3030 	strb.w	r3, [sp, #48]	; 0x30
+ 800cdc2:	f109 0303 	add.w	r3, r9, #3
+ 800cdc6:	b2db      	uxtb	r3, r3
+ 800cdc8:	f109 0405 	add.w	r4, r9, #5
+ 800cdcc:	5cea      	ldrb	r2, [r5, r3]
+ 800cdce:	f109 0304 	add.w	r3, r9, #4
+ 800cdd2:	b2db      	uxtb	r3, r3
+ 800cdd4:	f109 0902 	add.w	r9, r9, #2
+ 800cdd8:	5ceb      	ldrb	r3, [r5, r3]
+ 800cdda:	fa5f f989 	uxtb.w	r9, r9
+ 800cdde:	041b      	lsls	r3, r3, #16
+ 800cde0:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
+ 800cde4:	f815 2009 	ldrb.w	r2, [r5, r9]
+ 800cde8:	4313      	orrs	r3, r2
+ 800cdea:	2264      	movs	r2, #100	; 0x64
+ 800cdec:	4353      	muls	r3, r2
+ 800cdee:	930d      	str	r3, [sp, #52]	; 0x34
+ 800cdf0:	4b6e      	ldr	r3, [pc, #440]	; (800cfac <ProcessMacCommands.constprop.0+0x57c>)
+ 800cdf2:	a90c      	add	r1, sp, #48	; 0x30
+ 800cdf4:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 800cdf8:	f002 fdcd 	bl	800f996 <RegionDlChannelReq>
+ 800cdfc:	b2c3      	uxtb	r3, r0
+ 800cdfe:	2800      	cmp	r0, #0
+ 800ce00:	b2e4      	uxtb	r4, r4
+ 800ce02:	f88d 3015 	strb.w	r3, [sp, #21]
+ 800ce06:	f6ff ae71 	blt.w	800caec <ProcessMacCommands.constprop.0+0xbc>
+ 800ce0a:	f88d 3018 	strb.w	r3, [sp, #24]
+ 800ce0e:	2201      	movs	r2, #1
+ 800ce10:	a906      	add	r1, sp, #24
+ 800ce12:	200a      	movs	r0, #10
+ 800ce14:	e727      	b.n	800cc66 <ProcessMacCommands.constprop.0+0x236>
+ 800ce16:	200a      	movs	r0, #10
+ 800ce18:	f002 f88e 	bl	800ef38 <LoRaMacConfirmQueueIsCmdActive>
+ 800ce1c:	2800      	cmp	r0, #0
+ 800ce1e:	f43f ae65 	beq.w	800caec <ProcessMacCommands.constprop.0+0xbc>
+ 800ce22:	210a      	movs	r1, #10
+ 800ce24:	2000      	movs	r0, #0
+ 800ce26:	f002 f84b 	bl	800eec0 <LoRaMacConfirmQueueSetStatus>
+ 800ce2a:	2300      	movs	r3, #0
+ 800ce2c:	f8ad 3026 	strh.w	r3, [sp, #38]	; 0x26
+ 800ce30:	f109 0302 	add.w	r3, r9, #2
+ 800ce34:	b2db      	uxtb	r3, r3
+ 800ce36:	f44f 717a 	mov.w	r1, #1000	; 0x3e8
+ 800ce3a:	5cea      	ldrb	r2, [r5, r3]
+ 800ce3c:	f109 0303 	add.w	r3, r9, #3
+ 800ce40:	b2db      	uxtb	r3, r3
+ 800ce42:	f10d 0a30 	add.w	sl, sp, #48	; 0x30
+ 800ce46:	5ceb      	ldrb	r3, [r5, r3]
+ 800ce48:	041b      	lsls	r3, r3, #16
+ 800ce4a:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
+ 800ce4e:	5d2a      	ldrb	r2, [r5, r4]
+ 800ce50:	4313      	orrs	r3, r2
+ 800ce52:	f109 0204 	add.w	r2, r9, #4
+ 800ce56:	b2d2      	uxtb	r2, r2
+ 800ce58:	f109 0406 	add.w	r4, r9, #6
+ 800ce5c:	f109 0905 	add.w	r9, r9, #5
+ 800ce60:	5caa      	ldrb	r2, [r5, r2]
+ 800ce62:	fa5f f989 	uxtb.w	r9, r9
+ 800ce66:	ea43 6302 	orr.w	r3, r3, r2, lsl #24
+ 800ce6a:	f815 2009 	ldrb.w	r2, [r5, r9]
+ 800ce6e:	9303      	str	r3, [sp, #12]
+ 800ce70:	434a      	muls	r2, r1
+ 800ce72:	1212      	asrs	r2, r2, #8
+ 800ce74:	4650      	mov	r0, sl
+ 800ce76:	f8ad 2024 	strh.w	r2, [sp, #36]	; 0x24
+ 800ce7a:	f006 fee7 	bl	8013c4c <SysTimeGet>
+ 800ce7e:	9b03      	ldr	r3, [sp, #12]
+ 800ce80:	f103 5396 	add.w	r3, r3, #314572800	; 0x12c00000
+ 800ce84:	f503 13a9 	add.w	r3, r3, #1384448	; 0x152000
+ 800ce88:	f503 53ec 	add.w	r3, r3, #7552	; 0x1d80
+ 800ce8c:	9308      	str	r3, [sp, #32]
+ 800ce8e:	f8d7 333c 	ldr.w	r3, [r7, #828]	; 0x33c
+ 800ce92:	9300      	str	r3, [sp, #0]
+ 800ce94:	f10d 0920 	add.w	r9, sp, #32
+ 800ce98:	e899 0006 	ldmia.w	r9, {r1, r2}
+ 800ce9c:	f8d7 3338 	ldr.w	r3, [r7, #824]	; 0x338
+ 800cea0:	a80a      	add	r0, sp, #40	; 0x28
+ 800cea2:	f006 fe90 	bl	8013bc6 <SysTimeSub>
+ 800cea6:	9b0b      	ldr	r3, [sp, #44]	; 0x2c
+ 800cea8:	9300      	str	r3, [sp, #0]
+ 800ceaa:	e89a 0006 	ldmia.w	sl, {r1, r2}
+ 800ceae:	9b0a      	ldr	r3, [sp, #40]	; 0x28
+ 800ceb0:	4648      	mov	r0, r9
+ 800ceb2:	f006 fe6d 	bl	8013b90 <SysTimeAdd>
+ 800ceb6:	e899 0003 	ldmia.w	r9, {r0, r1}
+ 800ceba:	f006 fe9f 	bl	8013bfc <SysTimeSet>
+ 800cebe:	f001 fe8f 	bl	800ebe0 <LoRaMacClassBDeviceTimeAns>
+ 800cec2:	2301      	movs	r3, #1
+ 800cec4:	b2e4      	uxtb	r4, r4
+ 800cec6:	f887 3430 	strb.w	r3, [r7, #1072]	; 0x430
+ 800ceca:	e60f      	b.n	800caec <ProcessMacCommands.constprop.0+0xbc>
+ 800cecc:	200d      	movs	r0, #13
+ 800cece:	f002 f833 	bl	800ef38 <LoRaMacConfirmQueueIsCmdActive>
+ 800ced2:	2800      	cmp	r0, #0
+ 800ced4:	f43f ae0a 	beq.w	800caec <ProcessMacCommands.constprop.0+0xbc>
+ 800ced8:	210d      	movs	r1, #13
+ 800ceda:	2000      	movs	r0, #0
+ 800cedc:	f001 fff0 	bl	800eec0 <LoRaMacConfirmQueueSetStatus>
+ 800cee0:	f897 3480 	ldrb.w	r3, [r7, #1152]	; 0x480
+ 800cee4:	3b04      	subs	r3, #4
+ 800cee6:	2b01      	cmp	r3, #1
+ 800cee8:	f67f ae00 	bls.w	800caec <ProcessMacCommands.constprop.0+0xbc>
+ 800ceec:	f001 fe74 	bl	800ebd8 <LoRaMacClassBPingSlotInfoAns>
+ 800cef0:	e5fc      	b.n	800caec <ProcessMacCommands.constprop.0+0xbc>
+ 800cef2:	f109 0302 	add.w	r3, r9, #2
+ 800cef6:	b2db      	uxtb	r3, r3
+ 800cef8:	5d2a      	ldrb	r2, [r5, r4]
+ 800cefa:	5ce9      	ldrb	r1, [r5, r3]
+ 800cefc:	f109 0303 	add.w	r3, r9, #3
+ 800cf00:	b2db      	uxtb	r3, r3
+ 800cf02:	f109 0405 	add.w	r4, r9, #5
+ 800cf06:	5ceb      	ldrb	r3, [r5, r3]
+ 800cf08:	f109 0904 	add.w	r9, r9, #4
+ 800cf0c:	fa5f f989 	uxtb.w	r9, r9
+ 800cf10:	041b      	lsls	r3, r3, #16
+ 800cf12:	f815 0009 	ldrb.w	r0, [r5, r9]
+ 800cf16:	ea43 2301 	orr.w	r3, r3, r1, lsl #8
+ 800cf1a:	4313      	orrs	r3, r2
+ 800cf1c:	2164      	movs	r1, #100	; 0x64
+ 800cf1e:	4359      	muls	r1, r3
+ 800cf20:	f000 000f 	and.w	r0, r0, #15
+ 800cf24:	f001 fe59 	bl	800ebda <LoRaMacClassBPingSlotChannelReq>
+ 800cf28:	b2e4      	uxtb	r4, r4
+ 800cf2a:	f88d 0018 	strb.w	r0, [sp, #24]
+ 800cf2e:	2201      	movs	r2, #1
+ 800cf30:	a906      	add	r1, sp, #24
+ 800cf32:	2011      	movs	r0, #17
+ 800cf34:	e697      	b.n	800cc66 <ProcessMacCommands.constprop.0+0x236>
+ 800cf36:	200e      	movs	r0, #14
+ 800cf38:	f001 fffe 	bl	800ef38 <LoRaMacConfirmQueueIsCmdActive>
+ 800cf3c:	2800      	cmp	r0, #0
+ 800cf3e:	f43f add5 	beq.w	800caec <ProcessMacCommands.constprop.0+0xbc>
+ 800cf42:	210e      	movs	r1, #14
+ 800cf44:	2000      	movs	r0, #0
+ 800cf46:	f001 ffbb 	bl	800eec0 <LoRaMacConfirmQueueSetStatus>
+ 800cf4a:	f109 0302 	add.w	r3, r9, #2
+ 800cf4e:	b2db      	uxtb	r3, r3
+ 800cf50:	4a18      	ldr	r2, [pc, #96]	; (800cfb4 <ProcessMacCommands.constprop.0+0x584>)
+ 800cf52:	5ce8      	ldrb	r0, [r5, r3]
+ 800cf54:	5d2b      	ldrb	r3, [r5, r4]
+ 800cf56:	6812      	ldr	r2, [r2, #0]
+ 800cf58:	f109 0404 	add.w	r4, r9, #4
+ 800cf5c:	f109 0903 	add.w	r9, r9, #3
+ 800cf60:	fa5f f989 	uxtb.w	r9, r9
+ 800cf64:	ea43 2000 	orr.w	r0, r3, r0, lsl #8
+ 800cf68:	f815 1009 	ldrb.w	r1, [r5, r9]
+ 800cf6c:	b2e4      	uxtb	r4, r4
+ 800cf6e:	f001 fe36 	bl	800ebde <LoRaMacClassBBeaconTimingAns>
+ 800cf72:	e5bb      	b.n	800caec <ProcessMacCommands.constprop.0+0xbc>
+ 800cf74:	5d2a      	ldrb	r2, [r5, r4]
+ 800cf76:	f109 0302 	add.w	r3, r9, #2
+ 800cf7a:	f109 0404 	add.w	r4, r9, #4
+ 800cf7e:	f109 0903 	add.w	r9, r9, #3
+ 800cf82:	b2db      	uxtb	r3, r3
+ 800cf84:	fa5f f989 	uxtb.w	r9, r9
+ 800cf88:	5ce9      	ldrb	r1, [r5, r3]
+ 800cf8a:	f815 3009 	ldrb.w	r3, [r5, r9]
+ 800cf8e:	041b      	lsls	r3, r3, #16
+ 800cf90:	ea43 2301 	orr.w	r3, r3, r1, lsl #8
+ 800cf94:	4313      	orrs	r3, r2
+ 800cf96:	2064      	movs	r0, #100	; 0x64
+ 800cf98:	4358      	muls	r0, r3
+ 800cf9a:	f001 fe22 	bl	800ebe2 <LoRaMacClassBBeaconFreqReq>
+ 800cf9e:	b2e4      	uxtb	r4, r4
+ 800cfa0:	f88d 0018 	strb.w	r0, [sp, #24]
+ 800cfa4:	2201      	movs	r2, #1
+ 800cfa6:	a906      	add	r1, sp, #24
+ 800cfa8:	2013      	movs	r0, #19
+ 800cfaa:	e65c      	b.n	800cc66 <ProcessMacCommands.constprop.0+0x236>
+ 800cfac:	20001864 	.word	0x20001864
+ 800cfb0:	080150ff 	.word	0x080150ff
+ 800cfb4:	200024e0 	.word	0x200024e0
+
+0800cfb8 <StopRetransmission.isra.0>:
+ 800cfb8:	4b0e      	ldr	r3, [pc, #56]	; (800cff4 <StopRetransmission.isra.0+0x3c>)
+ 800cfba:	f893 2481 	ldrb.w	r2, [r3, #1153]	; 0x481
+ 800cfbe:	0792      	lsls	r2, r2, #30
+ 800cfc0:	d503      	bpl.n	800cfca <StopRetransmission.isra.0+0x12>
+ 800cfc2:	f893 247f 	ldrb.w	r2, [r3, #1151]	; 0x47f
+ 800cfc6:	2a01      	cmp	r2, #1
+ 800cfc8:	d906      	bls.n	800cfd8 <StopRetransmission.isra.0+0x20>
+ 800cfca:	4a0b      	ldr	r2, [pc, #44]	; (800cff8 <StopRetransmission.isra.0+0x40>)
+ 800cfcc:	f892 111a 	ldrb.w	r1, [r2, #282]	; 0x11a
+ 800cfd0:	b111      	cbz	r1, 800cfd8 <StopRetransmission.isra.0+0x20>
+ 800cfd2:	6a91      	ldr	r1, [r2, #40]	; 0x28
+ 800cfd4:	3101      	adds	r1, #1
+ 800cfd6:	6291      	str	r1, [r2, #40]	; 0x28
+ 800cfd8:	2200      	movs	r2, #0
+ 800cfda:	f883 240c 	strb.w	r2, [r3, #1036]	; 0x40c
+ 800cfde:	f883 2410 	strb.w	r2, [r3, #1040]	; 0x410
+ 800cfe2:	f883 240f 	strb.w	r2, [r3, #1039]	; 0x40f
+ 800cfe6:	f8d3 2340 	ldr.w	r2, [r3, #832]	; 0x340
+ 800cfea:	f022 0202 	bic.w	r2, r2, #2
+ 800cfee:	f8c3 2340 	str.w	r2, [r3, #832]	; 0x340
+ 800cff2:	4770      	bx	lr
+ 800cff4:	20001fd8 	.word	0x20001fd8
+ 800cff8:	20001864 	.word	0x20001864
+
+0800cffc <OnTxDelayedTimerEvent>:
+ 800cffc:	b510      	push	{r4, lr}
+ 800cffe:	4c12      	ldr	r4, [pc, #72]	; (800d048 <OnTxDelayedTimerEvent+0x4c>)
+ 800d000:	f504 705a 	add.w	r0, r4, #872	; 0x368
+ 800d004:	f006 ff12 	bl	8013e2c <UTIL_TIMER_Stop>
+ 800d008:	f8d4 3340 	ldr.w	r3, [r4, #832]	; 0x340
+ 800d00c:	2001      	movs	r0, #1
+ 800d00e:	f023 0320 	bic.w	r3, r3, #32
+ 800d012:	f8c4 3340 	str.w	r3, [r4, #832]	; 0x340
+ 800d016:	f7ff f97b 	bl	800c310 <ScheduleTx>
+ 800d01a:	b198      	cbz	r0, 800d044 <OnTxDelayedTimerEvent+0x48>
+ 800d01c:	280b      	cmp	r0, #11
+ 800d01e:	d011      	beq.n	800d044 <OnTxDelayedTimerEvent+0x48>
+ 800d020:	4b0a      	ldr	r3, [pc, #40]	; (800d04c <OnTxDelayedTimerEvent+0x50>)
+ 800d022:	f893 3039 	ldrb.w	r3, [r3, #57]	; 0x39
+ 800d026:	f884 3436 	strb.w	r3, [r4, #1078]	; 0x436
+ 800d02a:	2009      	movs	r0, #9
+ 800d02c:	f894 340e 	ldrb.w	r3, [r4, #1038]	; 0x40e
+ 800d030:	f884 3439 	strb.w	r3, [r4, #1081]	; 0x439
+ 800d034:	f884 0435 	strb.w	r0, [r4, #1077]	; 0x435
+ 800d038:	f001 ff64 	bl	800ef04 <LoRaMacConfirmQueueSetStatusCmn>
+ 800d03c:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 800d040:	f7ff bfba 	b.w	800cfb8 <StopRetransmission.isra.0>
+ 800d044:	bd10      	pop	{r4, pc}
+ 800d046:	bf00      	nop
+ 800d048:	20001fd8 	.word	0x20001fd8
+ 800d04c:	20001864 	.word	0x20001864
+
+0800d050 <LoRaMacIsBusy>:
+ 800d050:	4b07      	ldr	r3, [pc, #28]	; (800d070 <LoRaMacIsBusy+0x20>)
+ 800d052:	f8d3 2340 	ldr.w	r2, [r3, #832]	; 0x340
+ 800d056:	2a01      	cmp	r2, #1
+ 800d058:	d006      	beq.n	800d068 <LoRaMacIsBusy+0x18>
+ 800d05a:	b93a      	cbnz	r2, 800d06c <LoRaMacIsBusy+0x1c>
+ 800d05c:	f893 0482 	ldrb.w	r0, [r3, #1154]	; 0x482
+ 800d060:	3801      	subs	r0, #1
+ 800d062:	bf18      	it	ne
+ 800d064:	2001      	movne	r0, #1
+ 800d066:	4770      	bx	lr
+ 800d068:	2000      	movs	r0, #0
+ 800d06a:	4770      	bx	lr
+ 800d06c:	2001      	movs	r0, #1
+ 800d06e:	4770      	bx	lr
+ 800d070:	20001fd8 	.word	0x20001fd8
+
+0800d074 <LoRaMacIsStopped>:
+ 800d074:	4b03      	ldr	r3, [pc, #12]	; (800d084 <LoRaMacIsStopped+0x10>)
+ 800d076:	f8d3 0340 	ldr.w	r0, [r3, #832]	; 0x340
+ 800d07a:	1e43      	subs	r3, r0, #1
+ 800d07c:	4258      	negs	r0, r3
+ 800d07e:	4158      	adcs	r0, r3
+ 800d080:	4770      	bx	lr
+ 800d082:	bf00      	nop
+ 800d084:	20001fd8 	.word	0x20001fd8
+
+0800d088 <LoRaMacProcess>:
+ 800d088:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 800d08c:	b0a5      	sub	sp, #148	; 0x94
+ 800d08e:	f3ef 8110 	mrs	r1, PRIMASK
+ 800d092:	b672      	cpsid	i
+ 800d094:	4ac0      	ldr	r2, [pc, #768]	; (800d398 <LoRaMacProcess+0x310>)
+ 800d096:	2000      	movs	r0, #0
+ 800d098:	6813      	ldr	r3, [r2, #0]
+ 800d09a:	6010      	str	r0, [r2, #0]
+ 800d09c:	f381 8810 	msr	PRIMASK, r1
+ 800d0a0:	4cbe      	ldr	r4, [pc, #760]	; (800d39c <LoRaMacProcess+0x314>)
+ 800d0a2:	2b00      	cmp	r3, #0
+ 800d0a4:	f000 80da 	beq.w	800d25c <LoRaMacProcess+0x1d4>
+ 800d0a8:	06d9      	lsls	r1, r3, #27
+ 800d0aa:	fa5f fb83 	uxtb.w	fp, r3
+ 800d0ae:	d56b      	bpl.n	800d188 <LoRaMacProcess+0x100>
+ 800d0b0:	4dbb      	ldr	r5, [pc, #748]	; (800d3a0 <LoRaMacProcess+0x318>)
+ 800d0b2:	f895 3118 	ldrb.w	r3, [r5, #280]	; 0x118
+ 800d0b6:	2b02      	cmp	r3, #2
+ 800d0b8:	d002      	beq.n	800d0c0 <LoRaMacProcess+0x38>
+ 800d0ba:	4bba      	ldr	r3, [pc, #744]	; (800d3a4 <LoRaMacProcess+0x31c>)
+ 800d0bc:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800d0be:	4798      	blx	r3
+ 800d0c0:	f3ef 8810 	mrs	r8, PRIMASK
+ 800d0c4:	b672      	cpsid	i
+ 800d0c6:	4fb8      	ldr	r7, [pc, #736]	; (800d3a8 <LoRaMacProcess+0x320>)
+ 800d0c8:	f006 fe6c 	bl	8013da4 <UTIL_TIMER_GetCurrentTime>
+ 800d0cc:	683e      	ldr	r6, [r7, #0]
+ 800d0ce:	f8d4 13b0 	ldr.w	r1, [r4, #944]	; 0x3b0
+ 800d0d2:	1a36      	subs	r6, r6, r0
+ 800d0d4:	4431      	add	r1, r6
+ 800d0d6:	48b5      	ldr	r0, [pc, #724]	; (800d3ac <LoRaMacProcess+0x324>)
+ 800d0d8:	f006 ff30 	bl	8013f3c <UTIL_TIMER_SetPeriod>
+ 800d0dc:	48b3      	ldr	r0, [pc, #716]	; (800d3ac <LoRaMacProcess+0x324>)
+ 800d0de:	f006 fef3 	bl	8013ec8 <UTIL_TIMER_Start>
+ 800d0e2:	f8d4 13b4 	ldr.w	r1, [r4, #948]	; 0x3b4
+ 800d0e6:	48b2      	ldr	r0, [pc, #712]	; (800d3b0 <LoRaMacProcess+0x328>)
+ 800d0e8:	4431      	add	r1, r6
+ 800d0ea:	f006 ff27 	bl	8013f3c <UTIL_TIMER_SetPeriod>
+ 800d0ee:	48b0      	ldr	r0, [pc, #704]	; (800d3b0 <LoRaMacProcess+0x328>)
+ 800d0f0:	f006 feea 	bl	8013ec8 <UTIL_TIMER_Start>
+ 800d0f4:	f388 8810 	msr	PRIMASK, r8
+ 800d0f8:	f895 3118 	ldrb.w	r3, [r5, #280]	; 0x118
+ 800d0fc:	2b02      	cmp	r3, #2
+ 800d0fe:	d002      	beq.n	800d106 <LoRaMacProcess+0x7e>
+ 800d100:	f894 3410 	ldrb.w	r3, [r4, #1040]	; 0x410
+ 800d104:	b18b      	cbz	r3, 800d12a <LoRaMacProcess+0xa2>
+ 800d106:	2316      	movs	r3, #22
+ 800d108:	a90e      	add	r1, sp, #56	; 0x38
+ 800d10a:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800d10e:	f88d 3038 	strb.w	r3, [sp, #56]	; 0x38
+ 800d112:	f002 fbd9 	bl	800f8c8 <RegionGetPhyParam>
+ 800d116:	f8d4 13b4 	ldr.w	r1, [r4, #948]	; 0x3b4
+ 800d11a:	900c      	str	r0, [sp, #48]	; 0x30
+ 800d11c:	4401      	add	r1, r0
+ 800d11e:	48a5      	ldr	r0, [pc, #660]	; (800d3b4 <LoRaMacProcess+0x32c>)
+ 800d120:	f006 ff0c 	bl	8013f3c <UTIL_TIMER_SetPeriod>
+ 800d124:	48a3      	ldr	r0, [pc, #652]	; (800d3b4 <LoRaMacProcess+0x32c>)
+ 800d126:	f006 fecf 	bl	8013ec8 <UTIL_TIMER_Start>
+ 800d12a:	683b      	ldr	r3, [r7, #0]
+ 800d12c:	f894 2411 	ldrb.w	r2, [r4, #1041]	; 0x411
+ 800d130:	62eb      	str	r3, [r5, #44]	; 0x2c
+ 800d132:	af0a      	add	r7, sp, #40	; 0x28
+ 800d134:	4638      	mov	r0, r7
+ 800d136:	f88d 2060 	strb.w	r2, [sp, #96]	; 0x60
+ 800d13a:	9319      	str	r3, [sp, #100]	; 0x64
+ 800d13c:	f006 fdac 	bl	8013c98 <SysTimeGetMcuTime>
+ 800d140:	f8d5 3124 	ldr.w	r3, [r5, #292]	; 0x124
+ 800d144:	9300      	str	r3, [sp, #0]
+ 800d146:	ae04      	add	r6, sp, #16
+ 800d148:	e897 0006 	ldmia.w	r7, {r1, r2}
+ 800d14c:	f8d5 3120 	ldr.w	r3, [r5, #288]	; 0x120
+ 800d150:	4630      	mov	r0, r6
+ 800d152:	f006 fd38 	bl	8013bc6 <SysTimeSub>
+ 800d156:	e896 0003 	ldmia.w	r6, {r0, r1}
+ 800d15a:	ab1b      	add	r3, sp, #108	; 0x6c
+ 800d15c:	e883 0003 	stmia.w	r3, {r0, r1}
+ 800d160:	f8d4 3414 	ldr.w	r3, [r4, #1044]	; 0x414
+ 800d164:	931a      	str	r3, [sp, #104]	; 0x68
+ 800d166:	f895 312c 	ldrb.w	r3, [r5, #300]	; 0x12c
+ 800d16a:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800d16e:	3b00      	subs	r3, #0
+ 800d170:	bf18      	it	ne
+ 800d172:	2301      	movne	r3, #1
+ 800d174:	a918      	add	r1, sp, #96	; 0x60
+ 800d176:	f88d 3061 	strb.w	r3, [sp, #97]	; 0x61
+ 800d17a:	f002 fbae 	bl	800f8da <RegionSetBandTxDone>
+ 800d17e:	f894 3410 	ldrb.w	r3, [r4, #1040]	; 0x410
+ 800d182:	b90b      	cbnz	r3, 800d188 <LoRaMacProcess+0x100>
+ 800d184:	f884 3435 	strb.w	r3, [r4, #1077]	; 0x435
+ 800d188:	f01b 0f08 	tst.w	fp, #8
+ 800d18c:	d03a      	beq.n	800d204 <LoRaMacProcess+0x17c>
+ 800d18e:	4b8a      	ldr	r3, [pc, #552]	; (800d3b8 <LoRaMacProcess+0x330>)
+ 800d190:	4d83      	ldr	r5, [pc, #524]	; (800d3a0 <LoRaMacProcess+0x318>)
+ 800d192:	685f      	ldr	r7, [r3, #4]
+ 800d194:	891e      	ldrh	r6, [r3, #8]
+ 800d196:	f9b3 800a 	ldrsh.w	r8, [r3, #10]
+ 800d19a:	f993 900c 	ldrsb.w	r9, [r3, #12]
+ 800d19e:	f8d5 20e4 	ldr.w	r2, [r5, #228]	; 0xe4
+ 800d1a2:	9203      	str	r2, [sp, #12]
+ 800d1a4:	2300      	movs	r3, #0
+ 800d1a6:	9307      	str	r3, [sp, #28]
+ 800d1a8:	f884 3438 	strb.w	r3, [r4, #1080]	; 0x438
+ 800d1ac:	f8a4 341a 	strh.w	r3, [r4, #1050]	; 0x41a
+ 800d1b0:	f884 341d 	strb.w	r3, [r4, #1053]	; 0x41d
+ 800d1b4:	f8c4 3420 	str.w	r3, [r4, #1056]	; 0x420
+ 800d1b8:	f8a4 3424 	strh.w	r3, [r4, #1060]	; 0x424
+ 800d1bc:	f884 3426 	strb.w	r3, [r4, #1062]	; 0x426
+ 800d1c0:	f8c4 3428 	str.w	r3, [r4, #1064]	; 0x428
+ 800d1c4:	f884 3418 	strb.w	r3, [r4, #1048]	; 0x418
+ 800d1c8:	f8c4 342c 	str.w	r3, [r4, #1068]	; 0x42c
+ 800d1cc:	f884 3430 	strb.w	r3, [r4, #1072]	; 0x430
+ 800d1d0:	4b74      	ldr	r3, [pc, #464]	; (800d3a4 <LoRaMacProcess+0x31c>)
+ 800d1d2:	f894 2480 	ldrb.w	r2, [r4, #1152]	; 0x480
+ 800d1d6:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800d1d8:	f884 247f 	strb.w	r2, [r4, #1151]	; 0x47f
+ 800d1dc:	f8a4 847c 	strh.w	r8, [r4, #1148]	; 0x47c
+ 800d1e0:	f884 947e 	strb.w	r9, [r4, #1150]	; 0x47e
+ 800d1e4:	4798      	blx	r3
+ 800d1e6:	4872      	ldr	r0, [pc, #456]	; (800d3b0 <LoRaMacProcess+0x328>)
+ 800d1e8:	f006 fe20 	bl	8013e2c <UTIL_TIMER_Stop>
+ 800d1ec:	4631      	mov	r1, r6
+ 800d1ee:	4638      	mov	r0, r7
+ 800d1f0:	f001 fcdf 	bl	800ebb2 <LoRaMacClassBRxBeacon>
+ 800d1f4:	4682      	mov	sl, r0
+ 800d1f6:	2800      	cmp	r0, #0
+ 800d1f8:	f000 80e6 	beq.w	800d3c8 <LoRaMacProcess+0x340>
+ 800d1fc:	f8a4 8472 	strh.w	r8, [r4, #1138]	; 0x472
+ 800d200:	f884 9474 	strb.w	r9, [r4, #1140]	; 0x474
+ 800d204:	f01b 0f04 	tst.w	fp, #4
+ 800d208:	d01a      	beq.n	800d240 <LoRaMacProcess+0x1b8>
+ 800d20a:	4b65      	ldr	r3, [pc, #404]	; (800d3a0 <LoRaMacProcess+0x318>)
+ 800d20c:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 800d210:	2b02      	cmp	r3, #2
+ 800d212:	d002      	beq.n	800d21a <LoRaMacProcess+0x192>
+ 800d214:	4b63      	ldr	r3, [pc, #396]	; (800d3a4 <LoRaMacProcess+0x31c>)
+ 800d216:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800d218:	4798      	blx	r3
+ 800d21a:	2002      	movs	r0, #2
+ 800d21c:	f7fe ff2c 	bl	800c078 <UpdateRxSlotIdleState>
+ 800d220:	f884 0435 	strb.w	r0, [r4, #1077]	; 0x435
+ 800d224:	f001 fe6e 	bl	800ef04 <LoRaMacConfirmQueueSetStatusCmn>
+ 800d228:	f894 3410 	ldrb.w	r3, [r4, #1040]	; 0x410
+ 800d22c:	b113      	cbz	r3, 800d234 <LoRaMacProcess+0x1ac>
+ 800d22e:	2301      	movs	r3, #1
+ 800d230:	f884 340f 	strb.w	r3, [r4, #1039]	; 0x40f
+ 800d234:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800d238:	f043 0310 	orr.w	r3, r3, #16
+ 800d23c:	f884 3481 	strb.w	r3, [r4, #1153]	; 0x481
+ 800d240:	f01b 0f02 	tst.w	fp, #2
+ 800d244:	d003      	beq.n	800d24e <LoRaMacProcess+0x1c6>
+ 800d246:	2106      	movs	r1, #6
+ 800d248:	2005      	movs	r0, #5
+ 800d24a:	f7fe ff8b 	bl	800c164 <HandleRadioRxErrorTimeout>
+ 800d24e:	f01b 0f01 	tst.w	fp, #1
+ 800d252:	d003      	beq.n	800d25c <LoRaMacProcess+0x1d4>
+ 800d254:	2104      	movs	r1, #4
+ 800d256:	2003      	movs	r0, #3
+ 800d258:	f7fe ff84 	bl	800c164 <HandleRadioRxErrorTimeout>
+ 800d25c:	f001 fcc6 	bl	800ebec <LoRaMacClassBProcess>
+ 800d260:	f894 2481 	ldrb.w	r2, [r4, #1153]	; 0x481
+ 800d264:	06d0      	lsls	r0, r2, #27
+ 800d266:	d55f      	bpl.n	800d328 <LoRaMacProcess+0x2a0>
+ 800d268:	2300      	movs	r3, #0
+ 800d26a:	f884 3482 	strb.w	r3, [r4, #1154]	; 0x482
+ 800d26e:	f8d4 3340 	ldr.w	r3, [r4, #832]	; 0x340
+ 800d272:	0619      	lsls	r1, r3, #24
+ 800d274:	bf44      	itt	mi
+ 800d276:	f023 0382 	bicmi.w	r3, r3, #130	; 0x82
+ 800d27a:	f8c4 3340 	strmi.w	r3, [r4, #832]	; 0x340
+ 800d27e:	f012 0f05 	tst.w	r2, #5
+ 800d282:	f000 82c5 	beq.w	800d810 <LoRaMacProcess+0x788>
+ 800d286:	200c      	movs	r0, #12
+ 800d288:	f001 fe56 	bl	800ef38 <LoRaMacConfirmQueueIsCmdActive>
+ 800d28c:	2800      	cmp	r0, #0
+ 800d28e:	f000 82bf 	beq.w	800d810 <LoRaMacProcess+0x788>
+ 800d292:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800d296:	07df      	lsls	r7, r3, #31
+ 800d298:	f100 82ba 	bmi.w	800d810 <LoRaMacProcess+0x788>
+ 800d29c:	075e      	lsls	r6, r3, #29
+ 800d29e:	f140 82cb 	bpl.w	800d838 <LoRaMacProcess+0x7b0>
+ 800d2a2:	f8d4 3340 	ldr.w	r3, [r4, #832]	; 0x340
+ 800d2a6:	f023 0302 	bic.w	r3, r3, #2
+ 800d2aa:	f8c4 3340 	str.w	r3, [r4, #832]	; 0x340
+ 800d2ae:	f8d4 2340 	ldr.w	r2, [r4, #832]	; 0x340
+ 800d2b2:	bb82      	cbnz	r2, 800d316 <LoRaMacProcess+0x28e>
+ 800d2b4:	f894 5481 	ldrb.w	r5, [r4, #1153]	; 0x481
+ 800d2b8:	f015 0101 	ands.w	r1, r5, #1
+ 800d2bc:	bf1e      	ittt	ne
+ 800d2be:	462b      	movne	r3, r5
+ 800d2c0:	f362 0300 	bfine	r3, r2, #0, #1
+ 800d2c4:	f884 3481 	strbne.w	r3, [r4, #1153]	; 0x481
+ 800d2c8:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800d2cc:	075e      	lsls	r6, r3, #29
+ 800d2ce:	bf44      	itt	mi
+ 800d2d0:	f36f 0382 	bfcmi	r3, #2, #1
+ 800d2d4:	f884 3481 	strbmi.w	r3, [r4, #1153]	; 0x481
+ 800d2d8:	2301      	movs	r3, #1
+ 800d2da:	f884 3482 	strb.w	r3, [r4, #1154]	; 0x482
+ 800d2de:	b121      	cbz	r1, 800d2ea <LoRaMacProcess+0x262>
+ 800d2e0:	f8d4 3344 	ldr.w	r3, [r4, #836]	; 0x344
+ 800d2e4:	4835      	ldr	r0, [pc, #212]	; (800d3bc <LoRaMacProcess+0x334>)
+ 800d2e6:	681b      	ldr	r3, [r3, #0]
+ 800d2e8:	4798      	blx	r3
+ 800d2ea:	076d      	lsls	r5, r5, #29
+ 800d2ec:	d50b      	bpl.n	800d306 <LoRaMacProcess+0x27e>
+ 800d2ee:	4834      	ldr	r0, [pc, #208]	; (800d3c0 <LoRaMacProcess+0x338>)
+ 800d2f0:	f001 fe2e 	bl	800ef50 <LoRaMacConfirmQueueHandleCb>
+ 800d2f4:	f001 fe5c 	bl	800efb0 <LoRaMacConfirmQueueGetCnt>
+ 800d2f8:	b128      	cbz	r0, 800d306 <LoRaMacProcess+0x27e>
+ 800d2fa:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800d2fe:	f043 0304 	orr.w	r3, r3, #4
+ 800d302:	f884 3481 	strb.w	r3, [r4, #1153]	; 0x481
+ 800d306:	f001 fc60 	bl	800ebca <LoRaMacClassBResumeBeaconing>
+ 800d30a:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800d30e:	f36f 1304 	bfc	r3, #4, #1
+ 800d312:	f884 3481 	strb.w	r3, [r4, #1153]	; 0x481
+ 800d316:	2301      	movs	r3, #1
+ 800d318:	f884 3482 	strb.w	r3, [r4, #1154]	; 0x482
+ 800d31c:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800d320:	f043 0320 	orr.w	r3, r3, #32
+ 800d324:	f884 3481 	strb.w	r3, [r4, #1153]	; 0x481
+ 800d328:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800d32c:	0718      	lsls	r0, r3, #28
+ 800d32e:	d50a      	bpl.n	800d346 <LoRaMacProcess+0x2be>
+ 800d330:	f36f 03c3 	bfc	r3, #3, #1
+ 800d334:	4923      	ldr	r1, [pc, #140]	; (800d3c4 <LoRaMacProcess+0x33c>)
+ 800d336:	f884 3481 	strb.w	r3, [r4, #1153]	; 0x481
+ 800d33a:	f8d4 3344 	ldr.w	r3, [r4, #836]	; 0x344
+ 800d33e:	f1a1 0020 	sub.w	r0, r1, #32
+ 800d342:	68db      	ldr	r3, [r3, #12]
+ 800d344:	4798      	blx	r3
+ 800d346:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800d34a:	0799      	lsls	r1, r3, #30
+ 800d34c:	d50a      	bpl.n	800d364 <LoRaMacProcess+0x2dc>
+ 800d34e:	f36f 0341 	bfc	r3, #1, #1
+ 800d352:	491c      	ldr	r1, [pc, #112]	; (800d3c4 <LoRaMacProcess+0x33c>)
+ 800d354:	f884 3481 	strb.w	r3, [r4, #1153]	; 0x481
+ 800d358:	f8d4 3344 	ldr.w	r3, [r4, #836]	; 0x344
+ 800d35c:	f1a1 0064 	sub.w	r0, r1, #100	; 0x64
+ 800d360:	685b      	ldr	r3, [r3, #4]
+ 800d362:	4798      	blx	r3
+ 800d364:	f894 3480 	ldrb.w	r3, [r4, #1152]	; 0x480
+ 800d368:	2b02      	cmp	r3, #2
+ 800d36a:	d101      	bne.n	800d370 <LoRaMacProcess+0x2e8>
+ 800d36c:	f7ff f946 	bl	800c5fc <OpenContinuousRxCWindow>
+ 800d370:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800d374:	069a      	lsls	r2, r3, #26
+ 800d376:	f140 82ec 	bpl.w	800d952 <LoRaMacProcess+0x8ca>
+ 800d37a:	f36f 1345 	bfc	r3, #5, #1
+ 800d37e:	f884 3481 	strb.w	r3, [r4, #1153]	; 0x481
+ 800d382:	f8d4 3340 	ldr.w	r3, [r4, #832]	; 0x340
+ 800d386:	2b00      	cmp	r3, #0
+ 800d388:	f040 82e3 	bne.w	800d952 <LoRaMacProcess+0x8ca>
+ 800d38c:	b025      	add	sp, #148	; 0x94
+ 800d38e:	e8bd 4ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 800d392:	f7ff bad3 	b.w	800c93c <LoRaMacHandleNvm.part.0.constprop.0>
+ 800d396:	bf00      	nop
+ 800d398:	20001fd4 	.word	0x20001fd4
+ 800d39c:	20001fd8 	.word	0x20001fd8
+ 800d3a0:	20001864 	.word	0x20001864
+ 800d3a4:	08015784 	.word	0x08015784
+ 800d3a8:	200024f0 	.word	0x200024f0
+ 800d3ac:	20002358 	.word	0x20002358
+ 800d3b0:	20002370 	.word	0x20002370
+ 800d3b4:	200023cc 	.word	0x200023cc
+ 800d3b8:	200024e0 	.word	0x200024e0
+ 800d3bc:	2000240c 	.word	0x2000240c
+ 800d3c0:	20002420 	.word	0x20002420
+ 800d3c4:	20002454 	.word	0x20002454
+ 800d3c8:	f895 3118 	ldrb.w	r3, [r5, #280]	; 0x118
+ 800d3cc:	2b01      	cmp	r3, #1
+ 800d3ce:	d10c      	bne.n	800d3ea <LoRaMacProcess+0x362>
+ 800d3d0:	f001 fbf3 	bl	800ebba <LoRaMacClassBIsPingExpected>
+ 800d3d4:	4680      	mov	r8, r0
+ 800d3d6:	b168      	cbz	r0, 800d3f4 <LoRaMacProcess+0x36c>
+ 800d3d8:	4650      	mov	r0, sl
+ 800d3da:	f001 fbe3 	bl	800eba4 <LoRaMacClassBSetPingSlotState>
+ 800d3de:	4650      	mov	r0, sl
+ 800d3e0:	f001 fbe5 	bl	800ebae <LoRaMacClassBPingSlotTimerEvent>
+ 800d3e4:	2304      	movs	r3, #4
+ 800d3e6:	f884 347f 	strb.w	r3, [r4, #1151]	; 0x47f
+ 800d3ea:	b97e      	cbnz	r6, 800d40c <LoRaMacProcess+0x384>
+ 800d3ec:	2301      	movs	r3, #1
+ 800d3ee:	f884 3419 	strb.w	r3, [r4, #1049]	; 0x419
+ 800d3f2:	e14a      	b.n	800d68a <LoRaMacProcess+0x602>
+ 800d3f4:	f001 fbe3 	bl	800ebbe <LoRaMacClassBIsMulticastExpected>
+ 800d3f8:	2800      	cmp	r0, #0
+ 800d3fa:	d0f6      	beq.n	800d3ea <LoRaMacProcess+0x362>
+ 800d3fc:	4640      	mov	r0, r8
+ 800d3fe:	f001 fbd2 	bl	800eba6 <LoRaMacClassBSetMulticastSlotState>
+ 800d402:	4640      	mov	r0, r8
+ 800d404:	f001 fbd4 	bl	800ebb0 <LoRaMacClassBMulticastSlotTimerEvent>
+ 800d408:	2305      	movs	r3, #5
+ 800d40a:	e7ec      	b.n	800d3e6 <LoRaMacProcess+0x35e>
+ 800d40c:	783b      	ldrb	r3, [r7, #0]
+ 800d40e:	9302      	str	r3, [sp, #8]
+ 800d410:	095b      	lsrs	r3, r3, #5
+ 800d412:	3b01      	subs	r3, #1
+ 800d414:	2b06      	cmp	r3, #6
+ 800d416:	f200 81ed 	bhi.w	800d7f4 <LoRaMacProcess+0x76c>
+ 800d41a:	e8df f013 	tbh	[pc, r3, lsl #1]
+ 800d41e:	0007      	.short	0x0007
+ 800d420:	009201eb 	.word	0x009201eb
+ 800d424:	008f01eb 	.word	0x008f01eb
+ 800d428:	01db01eb 	.word	0x01db01eb
+ 800d42c:	2e10      	cmp	r6, #16
+ 800d42e:	d9dd      	bls.n	800d3ec <LoRaMacProcess+0x364>
+ 800d430:	f895 312c 	ldrb.w	r3, [r5, #300]	; 0x12c
+ 800d434:	970e      	str	r7, [sp, #56]	; 0x38
+ 800d436:	b2f6      	uxtb	r6, r6
+ 800d438:	f88d 603c 	strb.w	r6, [sp, #60]	; 0x3c
+ 800d43c:	2b00      	cmp	r3, #0
+ 800d43e:	d1d5      	bne.n	800d3ec <LoRaMacProcess+0x364>
+ 800d440:	a818      	add	r0, sp, #96	; 0x60
+ 800d442:	f004 f8f9 	bl	8011638 <SecureElementGetJoinEui>
+ 800d446:	aa0e      	add	r2, sp, #56	; 0x38
+ 800d448:	a918      	add	r1, sp, #96	; 0x60
+ 800d44a:	20ff      	movs	r0, #255	; 0xff
+ 800d44c:	f002 f84c 	bl	800f4e8 <LoRaMacCryptoHandleJoinAccept>
+ 800d450:	f89d 3048 	ldrb.w	r3, [sp, #72]	; 0x48
+ 800d454:	f3c3 0303 	ubfx	r3, r3, #0, #4
+ 800d458:	4607      	mov	r7, r0
+ 800d45a:	f88d 3020 	strb.w	r3, [sp, #32]
+ 800d45e:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800d462:	f895 307d 	ldrb.w	r3, [r5, #125]	; 0x7d
+ 800d466:	f88d 3021 	strb.w	r3, [sp, #33]	; 0x21
+ 800d46a:	2207      	movs	r2, #7
+ 800d46c:	a908      	add	r1, sp, #32
+ 800d46e:	f002 fa3e 	bl	800f8ee <RegionVerify>
+ 800d472:	2f00      	cmp	r7, #0
+ 800d474:	d15a      	bne.n	800d52c <LoRaMacProcess+0x4a4>
+ 800d476:	2800      	cmp	r0, #0
+ 800d478:	d058      	beq.n	800d52c <LoRaMacProcess+0x4a4>
+ 800d47a:	f89d 3043 	ldrb.w	r3, [sp, #67]	; 0x43
+ 800d47e:	f89d 2042 	ldrb.w	r2, [sp, #66]	; 0x42
+ 800d482:	9911      	ldr	r1, [sp, #68]	; 0x44
+ 800d484:	f8c5 10e4 	str.w	r1, [r5, #228]	; 0xe4
+ 800d488:	041b      	lsls	r3, r3, #16
+ 800d48a:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
+ 800d48e:	f89d 2041 	ldrb.w	r2, [sp, #65]	; 0x41
+ 800d492:	2002      	movs	r0, #2
+ 800d494:	4313      	orrs	r3, r2
+ 800d496:	f8c5 30e0 	str.w	r3, [r5, #224]	; 0xe0
+ 800d49a:	f004 f8db 	bl	8011654 <SecureElementSetDevAddr>
+ 800d49e:	f89d 3048 	ldrb.w	r3, [sp, #72]	; 0x48
+ 800d4a2:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800d4a6:	f885 712a 	strb.w	r7, [r5, #298]	; 0x12a
+ 800d4aa:	f3c3 1202 	ubfx	r2, r3, #4, #3
+ 800d4ae:	f3c3 0303 	ubfx	r3, r3, #0, #4
+ 800d4b2:	f885 3070 	strb.w	r3, [r5, #112]	; 0x70
+ 800d4b6:	f885 3078 	strb.w	r3, [r5, #120]	; 0x78
+ 800d4ba:	f89d 3049 	ldrb.w	r3, [sp, #73]	; 0x49
+ 800d4be:	f885 2069 	strb.w	r2, [r5, #105]	; 0x69
+ 800d4c2:	2b01      	cmp	r3, #1
+ 800d4c4:	bf38      	it	cc
+ 800d4c6:	2301      	movcc	r3, #1
+ 800d4c8:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
+ 800d4cc:	4353      	muls	r3, r2
+ 800d4ce:	65ab      	str	r3, [r5, #88]	; 0x58
+ 800d4d0:	4413      	add	r3, r2
+ 800d4d2:	65eb      	str	r3, [r5, #92]	; 0x5c
+ 800d4d4:	f04f 0801 	mov.w	r8, #1
+ 800d4d8:	f10d 034a 	add.w	r3, sp, #74	; 0x4a
+ 800d4dc:	3e11      	subs	r6, #17
+ 800d4de:	a90c      	add	r1, sp, #48	; 0x30
+ 800d4e0:	930c      	str	r3, [sp, #48]	; 0x30
+ 800d4e2:	f885 8068 	strb.w	r8, [r5, #104]	; 0x68
+ 800d4e6:	f88d 6034 	strb.w	r6, [sp, #52]	; 0x34
+ 800d4ea:	f002 fa08 	bl	800f8fe <RegionApplyCFList>
+ 800d4ee:	2302      	movs	r3, #2
+ 800d4f0:	4640      	mov	r0, r8
+ 800d4f2:	f885 312c 	strb.w	r3, [r5, #300]	; 0x12c
+ 800d4f6:	f001 fd1f 	bl	800ef38 <LoRaMacConfirmQueueIsCmdActive>
+ 800d4fa:	b118      	cbz	r0, 800d504 <LoRaMacProcess+0x47c>
+ 800d4fc:	4641      	mov	r1, r8
+ 800d4fe:	4638      	mov	r0, r7
+ 800d500:	f001 fcde 	bl	800eec0 <LoRaMacConfirmQueueSetStatus>
+ 800d504:	f894 3410 	ldrb.w	r3, [r4, #1040]	; 0x410
+ 800d508:	2b00      	cmp	r3, #0
+ 800d50a:	f000 8179 	beq.w	800d800 <LoRaMacProcess+0x778>
+ 800d50e:	f894 3438 	ldrb.w	r3, [r4, #1080]	; 0x438
+ 800d512:	b113      	cbz	r3, 800d51a <LoRaMacProcess+0x492>
+ 800d514:	2000      	movs	r0, #0
+ 800d516:	f7fe fde9 	bl	800c0ec <OnAckTimeoutTimerEvent>
+ 800d51a:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800d51e:	f043 0310 	orr.w	r3, r3, #16
+ 800d522:	f884 3481 	strb.w	r3, [r4, #1153]	; 0x481
+ 800d526:	f7fe fda7 	bl	800c078 <UpdateRxSlotIdleState>
+ 800d52a:	e66b      	b.n	800d204 <LoRaMacProcess+0x17c>
+ 800d52c:	2001      	movs	r0, #1
+ 800d52e:	f001 fd03 	bl	800ef38 <LoRaMacConfirmQueueIsCmdActive>
+ 800d532:	2800      	cmp	r0, #0
+ 800d534:	d0e6      	beq.n	800d504 <LoRaMacProcess+0x47c>
+ 800d536:	2101      	movs	r1, #1
+ 800d538:	2007      	movs	r0, #7
+ 800d53a:	e7e1      	b.n	800d500 <LoRaMacProcess+0x478>
+ 800d53c:	2301      	movs	r3, #1
+ 800d53e:	f884 3418 	strb.w	r3, [r4, #1048]	; 0x418
+ 800d542:	f895 307d 	ldrb.w	r3, [r5, #125]	; 0x7d
+ 800d546:	f88d 3022 	strb.w	r3, [sp, #34]	; 0x22
+ 800d54a:	f894 341c 	ldrb.w	r3, [r4, #1052]	; 0x41c
+ 800d54e:	f88d 3021 	strb.w	r3, [sp, #33]	; 0x21
+ 800d552:	f895 308c 	ldrb.w	r3, [r5, #140]	; 0x8c
+ 800d556:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800d55a:	330d      	adds	r3, #13
+ 800d55c:	a908      	add	r1, sp, #32
+ 800d55e:	f88d 3020 	strb.w	r3, [sp, #32]
+ 800d562:	f002 f9b1 	bl	800f8c8 <RegionGetPhyParam>
+ 800d566:	f1a6 030d 	sub.w	r3, r6, #13
+ 800d56a:	b21b      	sxth	r3, r3
+ 800d56c:	9006      	str	r0, [sp, #24]
+ 800d56e:	ea23 73e3 	bic.w	r3, r3, r3, asr #31
+ 800d572:	b200      	sxth	r0, r0
+ 800d574:	4283      	cmp	r3, r0
+ 800d576:	f73f af39 	bgt.w	800d3ec <LoRaMacProcess+0x364>
+ 800d57a:	2e0b      	cmp	r6, #11
+ 800d57c:	f67f af36 	bls.w	800d3ec <LoRaMacProcess+0x364>
+ 800d580:	4ba2      	ldr	r3, [pc, #648]	; (800d80c <LoRaMacProcess+0x784>)
+ 800d582:	9321      	str	r3, [sp, #132]	; 0x84
+ 800d584:	a818      	add	r0, sp, #96	; 0x60
+ 800d586:	23ff      	movs	r3, #255	; 0xff
+ 800d588:	9718      	str	r7, [sp, #96]	; 0x60
+ 800d58a:	f88d 6064 	strb.w	r6, [sp, #100]	; 0x64
+ 800d58e:	f88d 3088 	strb.w	r3, [sp, #136]	; 0x88
+ 800d592:	f002 f875 	bl	800f680 <LoRaMacParserData>
+ 800d596:	4680      	mov	r8, r0
+ 800d598:	2800      	cmp	r0, #0
+ 800d59a:	f47f af27 	bne.w	800d3ec <LoRaMacProcess+0x364>
+ 800d59e:	f89d 306c 	ldrb.w	r3, [sp, #108]	; 0x6c
+ 800d5a2:	991a      	ldr	r1, [sp, #104]	; 0x68
+ 800d5a4:	f8c4 142c 	str.w	r1, [r4, #1068]	; 0x42c
+ 800d5a8:	f013 020f 	ands.w	r2, r3, #15
+ 800d5ac:	d003      	beq.n	800d5b6 <LoRaMacProcess+0x52e>
+ 800d5ae:	f89d 0080 	ldrb.w	r0, [sp, #128]	; 0x80
+ 800d5b2:	2800      	cmp	r0, #0
+ 800d5b4:	d16c      	bne.n	800d690 <LoRaMacProcess+0x608>
+ 800d5b6:	f89d 0088 	ldrb.w	r0, [sp, #136]	; 0x88
+ 800d5ba:	2800      	cmp	r0, #0
+ 800d5bc:	d06a      	beq.n	800d694 <LoRaMacProcess+0x60c>
+ 800d5be:	2a00      	cmp	r2, #0
+ 800d5c0:	f47f af14 	bne.w	800d3ec <LoRaMacProcess+0x364>
+ 800d5c4:	f89d 2080 	ldrb.w	r2, [sp, #128]	; 0x80
+ 800d5c8:	2a00      	cmp	r2, #0
+ 800d5ca:	bf0c      	ite	eq
+ 800d5cc:	2702      	moveq	r7, #2
+ 800d5ce:	2703      	movne	r7, #3
+ 800d5d0:	2200      	movs	r2, #0
+ 800d5d2:	9207      	str	r2, [sp, #28]
+ 800d5d4:	f8d5 20ec 	ldr.w	r2, [r5, #236]	; 0xec
+ 800d5d8:	4291      	cmp	r1, r2
+ 800d5da:	d15d      	bne.n	800d698 <LoRaMacProcess+0x610>
+ 800d5dc:	f895 10e9 	ldrb.w	r1, [r5, #233]	; 0xe9
+ 800d5e0:	2900      	cmp	r1, #0
+ 800d5e2:	d059      	beq.n	800d698 <LoRaMacProcess+0x610>
+ 800d5e4:	f8d5 110c 	ldr.w	r1, [r5, #268]	; 0x10c
+ 800d5e8:	f895 a0ea 	ldrb.w	sl, [r5, #234]	; 0xea
+ 800d5ec:	6809      	ldr	r1, [r1, #0]
+ 800d5ee:	9107      	str	r1, [sp, #28]
+ 800d5f0:	f895 1118 	ldrb.w	r1, [r5, #280]	; 0x118
+ 800d5f4:	2902      	cmp	r1, #2
+ 800d5f6:	d102      	bne.n	800d5fe <LoRaMacProcess+0x576>
+ 800d5f8:	2103      	movs	r1, #3
+ 800d5fa:	f884 147f 	strb.w	r1, [r4, #1151]	; 0x47f
+ 800d5fe:	2f03      	cmp	r7, #3
+ 800d600:	f47f aef4 	bne.w	800d3ec <LoRaMacProcess+0x364>
+ 800d604:	f013 0f60 	tst.w	r3, #96	; 0x60
+ 800d608:	f47f aef0 	bne.w	800d3ec <LoRaMacProcess+0x364>
+ 800d60c:	9203      	str	r2, [sp, #12]
+ 800d60e:	f04f 0801 	mov.w	r8, #1
+ 800d612:	2315      	movs	r3, #21
+ 800d614:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800d618:	f88d 3020 	strb.w	r3, [sp, #32]
+ 800d61c:	a908      	add	r1, sp, #32
+ 800d61e:	f002 f953 	bl	800f8c8 <RegionGetPhyParam>
+ 800d622:	f895 312a 	ldrb.w	r3, [r5, #298]	; 0x12a
+ 800d626:	9006      	str	r0, [sp, #24]
+ 800d628:	f1ba 0f00 	cmp.w	sl, #0
+ 800d62c:	d037      	beq.n	800d69e <LoRaMacProcess+0x616>
+ 800d62e:	f1ba 0f01 	cmp.w	sl, #1
+ 800d632:	d13e      	bne.n	800d6b2 <LoRaMacProcess+0x62a>
+ 800d634:	2b01      	cmp	r3, #1
+ 800d636:	d134      	bne.n	800d6a2 <LoRaMacProcess+0x61a>
+ 800d638:	f06f 0609 	mvn.w	r6, #9
+ 800d63c:	413e      	asrs	r6, r7
+ 800d63e:	f006 0601 	and.w	r6, r6, #1
+ 800d642:	f1c6 0602 	rsb	r6, r6, #2
+ 800d646:	b2f6      	uxtb	r6, r6
+ 800d648:	b281      	uxth	r1, r0
+ 800d64a:	f8bd 206e 	ldrh.w	r2, [sp, #110]	; 0x6e
+ 800d64e:	ab07      	add	r3, sp, #28
+ 800d650:	4630      	mov	r0, r6
+ 800d652:	f001 fdcf 	bl	800f1f4 <LoRaMacCryptoGetFCntDown>
+ 800d656:	b370      	cbz	r0, 800d6b6 <LoRaMacProcess+0x62e>
+ 800d658:	2807      	cmp	r0, #7
+ 800d65a:	d124      	bne.n	800d6a6 <LoRaMacProcess+0x61e>
+ 800d65c:	2308      	movs	r3, #8
+ 800d65e:	f884 3419 	strb.w	r3, [r4, #1049]	; 0x419
+ 800d662:	f895 312a 	ldrb.w	r3, [r5, #298]	; 0x12a
+ 800d666:	b95b      	cbnz	r3, 800d680 <LoRaMacProcess+0x5f8>
+ 800d668:	9b02      	ldr	r3, [sp, #8]
+ 800d66a:	f003 03e0 	and.w	r3, r3, #224	; 0xe0
+ 800d66e:	2ba0      	cmp	r3, #160	; 0xa0
+ 800d670:	d106      	bne.n	800d680 <LoRaMacProcess+0x5f8>
+ 800d672:	6b6a      	ldr	r2, [r5, #52]	; 0x34
+ 800d674:	9b23      	ldr	r3, [sp, #140]	; 0x8c
+ 800d676:	429a      	cmp	r2, r3
+ 800d678:	d102      	bne.n	800d680 <LoRaMacProcess+0x5f8>
+ 800d67a:	2301      	movs	r3, #1
+ 800d67c:	f885 303a 	strb.w	r3, [r5, #58]	; 0x3a
+ 800d680:	9b07      	ldr	r3, [sp, #28]
+ 800d682:	f8c4 3428 	str.w	r3, [r4, #1064]	; 0x428
+ 800d686:	f8c4 3460 	str.w	r3, [r4, #1120]	; 0x460
+ 800d68a:	f7fe fd4f 	bl	800c12c <PrepareRxDoneAbort>
+ 800d68e:	e5b9      	b.n	800d204 <LoRaMacProcess+0x17c>
+ 800d690:	4647      	mov	r7, r8
+ 800d692:	e79d      	b.n	800d5d0 <LoRaMacProcess+0x548>
+ 800d694:	2701      	movs	r7, #1
+ 800d696:	e79b      	b.n	800d5d0 <LoRaMacProcess+0x548>
+ 800d698:	f04f 0a01 	mov.w	sl, #1
+ 800d69c:	e7b9      	b.n	800d612 <LoRaMacProcess+0x58a>
+ 800d69e:	2604      	movs	r6, #4
+ 800d6a0:	e7d2      	b.n	800d648 <LoRaMacProcess+0x5c0>
+ 800d6a2:	2603      	movs	r6, #3
+ 800d6a4:	e7d0      	b.n	800d648 <LoRaMacProcess+0x5c0>
+ 800d6a6:	2808      	cmp	r0, #8
+ 800d6a8:	d103      	bne.n	800d6b2 <LoRaMacProcess+0x62a>
+ 800d6aa:	230a      	movs	r3, #10
+ 800d6ac:	f884 3419 	strb.w	r3, [r4, #1049]	; 0x419
+ 800d6b0:	e7e6      	b.n	800d680 <LoRaMacProcess+0x5f8>
+ 800d6b2:	2301      	movs	r3, #1
+ 800d6b4:	e7fa      	b.n	800d6ac <LoRaMacProcess+0x624>
+ 800d6b6:	ab18      	add	r3, sp, #96	; 0x60
+ 800d6b8:	9300      	str	r3, [sp, #0]
+ 800d6ba:	9903      	ldr	r1, [sp, #12]
+ 800d6bc:	9b07      	ldr	r3, [sp, #28]
+ 800d6be:	4632      	mov	r2, r6
+ 800d6c0:	4650      	mov	r0, sl
+ 800d6c2:	f001 fe63 	bl	800f38c <LoRaMacCryptoUnsecureMessage>
+ 800d6c6:	b120      	cbz	r0, 800d6d2 <LoRaMacProcess+0x64a>
+ 800d6c8:	2802      	cmp	r0, #2
+ 800d6ca:	bf0c      	ite	eq
+ 800d6cc:	230b      	moveq	r3, #11
+ 800d6ce:	230c      	movne	r3, #12
+ 800d6d0:	e68d      	b.n	800d3ee <LoRaMacProcess+0x366>
+ 800d6d2:	9b07      	ldr	r3, [sp, #28]
+ 800d6d4:	f8c4 3428 	str.w	r3, [r4, #1064]	; 0x428
+ 800d6d8:	f8c4 3460 	str.w	r3, [r4, #1120]	; 0x460
+ 800d6dc:	f89d 306c 	ldrb.w	r3, [sp, #108]	; 0x6c
+ 800d6e0:	f884 0419 	strb.w	r0, [r4, #1049]	; 0x419
+ 800d6e4:	f3c3 1340 	ubfx	r3, r3, #5, #1
+ 800d6e8:	f884 3426 	strb.w	r3, [r4, #1062]	; 0x426
+ 800d6ec:	f884 3438 	strb.w	r3, [r4, #1080]	; 0x438
+ 800d6f0:	f894 347f 	ldrb.w	r3, [r4, #1151]	; 0x47f
+ 800d6f4:	f884 841a 	strb.w	r8, [r4, #1050]	; 0x41a
+ 800d6f8:	2b01      	cmp	r3, #1
+ 800d6fa:	bf98      	it	ls
+ 800d6fc:	62a8      	strls	r0, [r5, #40]	; 0x28
+ 800d6fe:	f1b8 0f01 	cmp.w	r8, #1
+ 800d702:	f8c4 0420 	str.w	r0, [r4, #1056]	; 0x420
+ 800d706:	f884 0424 	strb.w	r0, [r4, #1060]	; 0x424
+ 800d70a:	f884 0435 	strb.w	r0, [r4, #1077]	; 0x435
+ 800d70e:	d133      	bne.n	800d778 <LoRaMacProcess+0x6f0>
+ 800d710:	2202      	movs	r2, #2
+ 800d712:	f884 2418 	strb.w	r2, [r4, #1048]	; 0x418
+ 800d716:	f895 203a 	ldrb.w	r2, [r5, #58]	; 0x3a
+ 800d71a:	2a00      	cmp	r2, #0
+ 800d71c:	d13b      	bne.n	800d796 <LoRaMacProcess+0x70e>
+ 800d71e:	f89d 206c 	ldrb.w	r2, [sp, #108]	; 0x6c
+ 800d722:	06d2      	lsls	r2, r2, #27
+ 800d724:	d437      	bmi.n	800d796 <LoRaMacProcess+0x70e>
+ 800d726:	2b01      	cmp	r3, #1
+ 800d728:	f894 1434 	ldrb.w	r1, [r4, #1076]	; 0x434
+ 800d72c:	f89d 206c 	ldrb.w	r2, [sp, #108]	; 0x6c
+ 800d730:	d805      	bhi.n	800d73e <LoRaMacProcess+0x6b6>
+ 800d732:	2901      	cmp	r1, #1
+ 800d734:	d101      	bne.n	800d73a <LoRaMacProcess+0x6b2>
+ 800d736:	0696      	lsls	r6, r2, #26
+ 800d738:	d501      	bpl.n	800d73e <LoRaMacProcess+0x6b6>
+ 800d73a:	f001 fb01 	bl	800ed40 <LoRaMacCommandsRemoveStickyAnsCmds>
+ 800d73e:	2f02      	cmp	r7, #2
+ 800d740:	d037      	beq.n	800d7b2 <LoRaMacProcess+0x72a>
+ 800d742:	2f03      	cmp	r7, #3
+ 800d744:	d009      	beq.n	800d75a <LoRaMacProcess+0x6d2>
+ 800d746:	f89d 106c 	ldrb.w	r1, [sp, #108]	; 0x6c
+ 800d74a:	2f01      	cmp	r7, #1
+ 800d74c:	464a      	mov	r2, r9
+ 800d74e:	f001 010f 	and.w	r1, r1, #15
+ 800d752:	a81c      	add	r0, sp, #112	; 0x70
+ 800d754:	d031      	beq.n	800d7ba <LoRaMacProcess+0x732>
+ 800d756:	f7ff f96b 	bl	800ca30 <ProcessMacCommands.constprop.0>
+ 800d75a:	f89d 3080 	ldrb.w	r3, [sp, #128]	; 0x80
+ 800d75e:	f884 341b 	strb.w	r3, [r4, #1051]	; 0x41b
+ 800d762:	9b21      	ldr	r3, [sp, #132]	; 0x84
+ 800d764:	f8c4 3420 	str.w	r3, [r4, #1056]	; 0x420
+ 800d768:	f89d 3088 	ldrb.w	r3, [sp, #136]	; 0x88
+ 800d76c:	f884 3424 	strb.w	r3, [r4, #1060]	; 0x424
+ 800d770:	2301      	movs	r3, #1
+ 800d772:	f884 3425 	strb.w	r3, [r4, #1061]	; 0x425
+ 800d776:	e026      	b.n	800d7c6 <LoRaMacProcess+0x73e>
+ 800d778:	9a02      	ldr	r2, [sp, #8]
+ 800d77a:	f002 02e0 	and.w	r2, r2, #224	; 0xe0
+ 800d77e:	2aa0      	cmp	r2, #160	; 0xa0
+ 800d780:	d111      	bne.n	800d7a6 <LoRaMacProcess+0x71e>
+ 800d782:	f895 112a 	ldrb.w	r1, [r5, #298]	; 0x12a
+ 800d786:	2201      	movs	r2, #1
+ 800d788:	f885 203a 	strb.w	r2, [r5, #58]	; 0x3a
+ 800d78c:	b909      	cbnz	r1, 800d792 <LoRaMacProcess+0x70a>
+ 800d78e:	9923      	ldr	r1, [sp, #140]	; 0x8c
+ 800d790:	6369      	str	r1, [r5, #52]	; 0x34
+ 800d792:	f884 2418 	strb.w	r2, [r4, #1048]	; 0x418
+ 800d796:	f895 2118 	ldrb.w	r2, [r5, #280]	; 0x118
+ 800d79a:	2a00      	cmp	r2, #0
+ 800d79c:	d1c3      	bne.n	800d726 <LoRaMacProcess+0x69e>
+ 800d79e:	2201      	movs	r2, #1
+ 800d7a0:	f884 241d 	strb.w	r2, [r4, #1053]	; 0x41d
+ 800d7a4:	e7bf      	b.n	800d726 <LoRaMacProcess+0x69e>
+ 800d7a6:	2200      	movs	r2, #0
+ 800d7a8:	f885 203a 	strb.w	r2, [r5, #58]	; 0x3a
+ 800d7ac:	f884 2418 	strb.w	r2, [r4, #1048]	; 0x418
+ 800d7b0:	e7b5      	b.n	800d71e <LoRaMacProcess+0x696>
+ 800d7b2:	f89d 1088 	ldrb.w	r1, [sp, #136]	; 0x88
+ 800d7b6:	9821      	ldr	r0, [sp, #132]	; 0x84
+ 800d7b8:	464a      	mov	r2, r9
+ 800d7ba:	f7ff f939 	bl	800ca30 <ProcessMacCommands.constprop.0>
+ 800d7be:	f89d 3080 	ldrb.w	r3, [sp, #128]	; 0x80
+ 800d7c2:	f884 341b 	strb.w	r3, [r4, #1051]	; 0x41b
+ 800d7c6:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800d7ca:	f043 0302 	orr.w	r3, r3, #2
+ 800d7ce:	f884 3481 	strb.w	r3, [r4, #1153]	; 0x481
+ 800d7d2:	e697      	b.n	800d504 <LoRaMacProcess+0x47c>
+ 800d7d4:	f8df 8034 	ldr.w	r8, [pc, #52]	; 800d80c <LoRaMacProcess+0x784>
+ 800d7d8:	3e01      	subs	r6, #1
+ 800d7da:	b2b2      	uxth	r2, r6
+ 800d7dc:	1c79      	adds	r1, r7, #1
+ 800d7de:	4640      	mov	r0, r8
+ 800d7e0:	f004 f800 	bl	80117e4 <memcpy1>
+ 800d7e4:	2303      	movs	r3, #3
+ 800d7e6:	f8a4 3418 	strh.w	r3, [r4, #1048]	; 0x418
+ 800d7ea:	f8c4 8420 	str.w	r8, [r4, #1056]	; 0x420
+ 800d7ee:	f884 6424 	strb.w	r6, [r4, #1060]	; 0x424
+ 800d7f2:	e7e8      	b.n	800d7c6 <LoRaMacProcess+0x73e>
+ 800d7f4:	2301      	movs	r3, #1
+ 800d7f6:	f884 3419 	strb.w	r3, [r4, #1049]	; 0x419
+ 800d7fa:	f7fe fc97 	bl	800c12c <PrepareRxDoneAbort>
+ 800d7fe:	e681      	b.n	800d504 <LoRaMacProcess+0x47c>
+ 800d800:	f895 3118 	ldrb.w	r3, [r5, #280]	; 0x118
+ 800d804:	2b02      	cmp	r3, #2
+ 800d806:	f47f ae88 	bne.w	800d51a <LoRaMacProcess+0x492>
+ 800d80a:	e683      	b.n	800d514 <LoRaMacProcess+0x48c>
+ 800d80c:	20002210 	.word	0x20002210
+ 800d810:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800d814:	075d      	lsls	r5, r3, #29
+ 800d816:	d50f      	bpl.n	800d838 <LoRaMacProcess+0x7b0>
+ 800d818:	2001      	movs	r0, #1
+ 800d81a:	f001 fb8d 	bl	800ef38 <LoRaMacConfirmQueueIsCmdActive>
+ 800d81e:	b388      	cbz	r0, 800d884 <LoRaMacProcess+0x7fc>
+ 800d820:	2001      	movs	r0, #1
+ 800d822:	f001 fb5f 	bl	800eee4 <LoRaMacConfirmQueueGetStatus>
+ 800d826:	b908      	cbnz	r0, 800d82c <LoRaMacProcess+0x7a4>
+ 800d828:	f884 040c 	strb.w	r0, [r4, #1036]	; 0x40c
+ 800d82c:	f8d4 3340 	ldr.w	r3, [r4, #832]	; 0x340
+ 800d830:	f023 0302 	bic.w	r3, r3, #2
+ 800d834:	f8c4 3340 	str.w	r3, [r4, #832]	; 0x340
+ 800d838:	f894 1481 	ldrb.w	r1, [r4, #1153]	; 0x481
+ 800d83c:	07c8      	lsls	r0, r1, #31
+ 800d83e:	f57f ad36 	bpl.w	800d2ae <LoRaMacProcess+0x226>
+ 800d842:	f894 3434 	ldrb.w	r3, [r4, #1076]	; 0x434
+ 800d846:	b10b      	cbz	r3, 800d84c <LoRaMacProcess+0x7c4>
+ 800d848:	2b03      	cmp	r3, #3
+ 800d84a:	d126      	bne.n	800d89a <LoRaMacProcess+0x812>
+ 800d84c:	4b42      	ldr	r3, [pc, #264]	; (800d958 <LoRaMacProcess+0x8d0>)
+ 800d84e:	f894 040c 	ldrb.w	r0, [r4, #1036]	; 0x40c
+ 800d852:	f893 2068 	ldrb.w	r2, [r3, #104]	; 0x68
+ 800d856:	4290      	cmp	r0, r2
+ 800d858:	d208      	bcs.n	800d86c <LoRaMacProcess+0x7e4>
+ 800d85a:	078a      	lsls	r2, r1, #30
+ 800d85c:	d550      	bpl.n	800d900 <LoRaMacProcess+0x878>
+ 800d85e:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 800d862:	b11b      	cbz	r3, 800d86c <LoRaMacProcess+0x7e4>
+ 800d864:	f894 347f 	ldrb.w	r3, [r4, #1151]	; 0x47f
+ 800d868:	2b00      	cmp	r3, #0
+ 800d86a:	d149      	bne.n	800d900 <LoRaMacProcess+0x878>
+ 800d86c:	483b      	ldr	r0, [pc, #236]	; (800d95c <LoRaMacProcess+0x8d4>)
+ 800d86e:	f006 fadd 	bl	8013e2c <UTIL_TIMER_Stop>
+ 800d872:	f8d4 3340 	ldr.w	r3, [r4, #832]	; 0x340
+ 800d876:	f023 0320 	bic.w	r3, r3, #32
+ 800d87a:	f8c4 3340 	str.w	r3, [r4, #832]	; 0x340
+ 800d87e:	f7ff fb9b 	bl	800cfb8 <StopRetransmission.isra.0>
+ 800d882:	e514      	b.n	800d2ae <LoRaMacProcess+0x226>
+ 800d884:	2006      	movs	r0, #6
+ 800d886:	f001 fb57 	bl	800ef38 <LoRaMacConfirmQueueIsCmdActive>
+ 800d88a:	2800      	cmp	r0, #0
+ 800d88c:	d1ce      	bne.n	800d82c <LoRaMacProcess+0x7a4>
+ 800d88e:	2007      	movs	r0, #7
+ 800d890:	f001 fb52 	bl	800ef38 <LoRaMacConfirmQueueIsCmdActive>
+ 800d894:	2800      	cmp	r0, #0
+ 800d896:	d1c9      	bne.n	800d82c <LoRaMacProcess+0x7a4>
+ 800d898:	e7ce      	b.n	800d838 <LoRaMacProcess+0x7b0>
+ 800d89a:	2b01      	cmp	r3, #1
+ 800d89c:	d130      	bne.n	800d900 <LoRaMacProcess+0x878>
+ 800d89e:	f894 240f 	ldrb.w	r2, [r4, #1039]	; 0x40f
+ 800d8a2:	2a00      	cmp	r2, #0
+ 800d8a4:	f43f ad03 	beq.w	800d2ae <LoRaMacProcess+0x226>
+ 800d8a8:	f894 340e 	ldrb.w	r3, [r4, #1038]	; 0x40e
+ 800d8ac:	f894 040d 	ldrb.w	r0, [r4, #1037]	; 0x40d
+ 800d8b0:	4283      	cmp	r3, r0
+ 800d8b2:	d204      	bcs.n	800d8be <LoRaMacProcess+0x836>
+ 800d8b4:	f011 0202 	ands.w	r2, r1, #2
+ 800d8b8:	bf18      	it	ne
+ 800d8ba:	f894 2438 	ldrbne.w	r2, [r4, #1080]	; 0x438
+ 800d8be:	4d26      	ldr	r5, [pc, #152]	; (800d958 <LoRaMacProcess+0x8d0>)
+ 800d8c0:	f895 112a 	ldrb.w	r1, [r5, #298]	; 0x12a
+ 800d8c4:	2900      	cmp	r1, #0
+ 800d8c6:	d141      	bne.n	800d94c <LoRaMacProcess+0x8c4>
+ 800d8c8:	bb32      	cbnz	r2, 800d918 <LoRaMacProcess+0x890>
+ 800d8ca:	4283      	cmp	r3, r0
+ 800d8cc:	d218      	bcs.n	800d900 <LoRaMacProcess+0x878>
+ 800d8ce:	3301      	adds	r3, #1
+ 800d8d0:	b2db      	uxtb	r3, r3
+ 800d8d2:	07df      	lsls	r7, r3, #31
+ 800d8d4:	f884 340e 	strb.w	r3, [r4, #1038]	; 0x40e
+ 800d8d8:	d512      	bpl.n	800d900 <LoRaMacProcess+0x878>
+ 800d8da:	2322      	movs	r3, #34	; 0x22
+ 800d8dc:	f88d 3060 	strb.w	r3, [sp, #96]	; 0x60
+ 800d8e0:	f895 307c 	ldrb.w	r3, [r5, #124]	; 0x7c
+ 800d8e4:	f88d 3062 	strb.w	r3, [sp, #98]	; 0x62
+ 800d8e8:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800d8ec:	f895 3039 	ldrb.w	r3, [r5, #57]	; 0x39
+ 800d8f0:	f88d 3061 	strb.w	r3, [sp, #97]	; 0x61
+ 800d8f4:	a918      	add	r1, sp, #96	; 0x60
+ 800d8f6:	f001 ffe7 	bl	800f8c8 <RegionGetPhyParam>
+ 800d8fa:	900e      	str	r0, [sp, #56]	; 0x38
+ 800d8fc:	f885 0039 	strb.w	r0, [r5, #57]	; 0x39
+ 800d900:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800d904:	2000      	movs	r0, #0
+ 800d906:	f36f 1304 	bfc	r3, #4, #1
+ 800d90a:	f884 3481 	strb.w	r3, [r4, #1153]	; 0x481
+ 800d90e:	f884 040f 	strb.w	r0, [r4, #1039]	; 0x40f
+ 800d912:	f7ff fb73 	bl	800cffc <OnTxDelayedTimerEvent>
+ 800d916:	e4ca      	b.n	800d2ae <LoRaMacProcess+0x226>
+ 800d918:	f894 6438 	ldrb.w	r6, [r4, #1080]	; 0x438
+ 800d91c:	b98e      	cbnz	r6, 800d942 <LoRaMacProcess+0x8ba>
+ 800d91e:	2302      	movs	r3, #2
+ 800d920:	f88d 3068 	strb.w	r3, [sp, #104]	; 0x68
+ 800d924:	f505 7308 	add.w	r3, r5, #544	; 0x220
+ 800d928:	9318      	str	r3, [sp, #96]	; 0x60
+ 800d92a:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800d92e:	f505 732d 	add.w	r3, r5, #692	; 0x2b4
+ 800d932:	a918      	add	r1, sp, #96	; 0x60
+ 800d934:	9319      	str	r3, [sp, #100]	; 0x64
+ 800d936:	f001 ffd5 	bl	800f8e4 <RegionInitDefaults>
+ 800d93a:	f884 6410 	strb.w	r6, [r4, #1040]	; 0x410
+ 800d93e:	f884 6438 	strb.w	r6, [r4, #1080]	; 0x438
+ 800d942:	f894 340e 	ldrb.w	r3, [r4, #1038]	; 0x40e
+ 800d946:	f884 3439 	strb.w	r3, [r4, #1081]	; 0x439
+ 800d94a:	e78f      	b.n	800d86c <LoRaMacProcess+0x7e4>
+ 800d94c:	2a00      	cmp	r2, #0
+ 800d94e:	d0d7      	beq.n	800d900 <LoRaMacProcess+0x878>
+ 800d950:	e78c      	b.n	800d86c <LoRaMacProcess+0x7e4>
+ 800d952:	b025      	add	sp, #148	; 0x94
+ 800d954:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 800d958:	20001864 	.word	0x20001864
+ 800d95c:	20002340 	.word	0x20002340
+
+0800d960 <LoRaMacInitialization>:
+ 800d960:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 800d964:	468a      	mov	sl, r1
+ 800d966:	b08b      	sub	sp, #44	; 0x2c
+ 800d968:	4691      	mov	r9, r2
+ 800d96a:	4607      	mov	r7, r0
+ 800d96c:	2800      	cmp	r0, #0
+ 800d96e:	f000 818d 	beq.w	800dc8c <LoRaMacInitialization+0x32c>
+ 800d972:	2900      	cmp	r1, #0
+ 800d974:	f000 818a 	beq.w	800dc8c <LoRaMacInitialization+0x32c>
+ 800d978:	6803      	ldr	r3, [r0, #0]
+ 800d97a:	2b00      	cmp	r3, #0
+ 800d97c:	f000 8186 	beq.w	800dc8c <LoRaMacInitialization+0x32c>
+ 800d980:	6843      	ldr	r3, [r0, #4]
+ 800d982:	2b00      	cmp	r3, #0
+ 800d984:	f000 8182 	beq.w	800dc8c <LoRaMacInitialization+0x32c>
+ 800d988:	6883      	ldr	r3, [r0, #8]
+ 800d98a:	2b00      	cmp	r3, #0
+ 800d98c:	f000 817e 	beq.w	800dc8c <LoRaMacInitialization+0x32c>
+ 800d990:	68c3      	ldr	r3, [r0, #12]
+ 800d992:	2b00      	cmp	r3, #0
+ 800d994:	f000 817a 	beq.w	800dc8c <LoRaMacInitialization+0x32c>
+ 800d998:	4610      	mov	r0, r2
+ 800d99a:	f001 ff91 	bl	800f8c0 <RegionIsActive>
+ 800d99e:	2800      	cmp	r0, #0
+ 800d9a0:	f000 8176 	beq.w	800dc90 <LoRaMacInitialization+0x330>
+ 800d9a4:	4cbc      	ldr	r4, [pc, #752]	; (800dc98 <LoRaMacInitialization+0x338>)
+ 800d9a6:	4dbd      	ldr	r5, [pc, #756]	; (800dc9c <LoRaMacInitialization+0x33c>)
+ 800d9a8:	4638      	mov	r0, r7
+ 800d9aa:	f001 fa3f 	bl	800ee2c <LoRaMacConfirmQueueInit>
+ 800d9ae:	f44f 62ee 	mov.w	r2, #1904	; 0x770
+ 800d9b2:	2100      	movs	r1, #0
+ 800d9b4:	4620      	mov	r0, r4
+ 800d9b6:	f003 ff29 	bl	801180c <memset1>
+ 800d9ba:	f44f 62a1 	mov.w	r2, #1288	; 0x508
+ 800d9be:	2100      	movs	r1, #0
+ 800d9c0:	4628      	mov	r0, r5
+ 800d9c2:	f003 ff23 	bl	801180c <memset1>
+ 800d9c6:	4bb6      	ldr	r3, [pc, #728]	; (800dca0 <LoRaMacInitialization+0x340>)
+ 800d9c8:	f8c4 3128 	str.w	r3, [r4, #296]	; 0x128
+ 800d9cc:	2600      	movs	r6, #0
+ 800d9ce:	f04f 0801 	mov.w	r8, #1
+ 800d9d2:	230f      	movs	r3, #15
+ 800d9d4:	a905      	add	r1, sp, #20
+ 800d9d6:	4648      	mov	r0, r9
+ 800d9d8:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800d9dc:	f884 9048 	strb.w	r9, [r4, #72]	; 0x48
+ 800d9e0:	f884 6118 	strb.w	r6, [r4, #280]	; 0x118
+ 800d9e4:	f884 608c 	strb.w	r6, [r4, #140]	; 0x8c
+ 800d9e8:	f885 840e 	strb.w	r8, [r5, #1038]	; 0x40e
+ 800d9ec:	f885 840d 	strb.w	r8, [r5, #1037]	; 0x40d
+ 800d9f0:	f001 ff6a 	bl	800f8c8 <RegionGetPhyParam>
+ 800d9f4:	1b80      	subs	r0, r0, r6
+ 800d9f6:	bf18      	it	ne
+ 800d9f8:	2001      	movne	r0, #1
+ 800d9fa:	f04f 0b0a 	mov.w	fp, #10
+ 800d9fe:	f884 011c 	strb.w	r0, [r4, #284]	; 0x11c
+ 800da02:	a905      	add	r1, sp, #20
+ 800da04:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800da08:	f88d b014 	strb.w	fp, [sp, #20]
+ 800da0c:	f001 ff5c 	bl	800f8c8 <RegionGetPhyParam>
+ 800da10:	f04f 0906 	mov.w	r9, #6
+ 800da14:	f884 00dc 	strb.w	r0, [r4, #220]	; 0xdc
+ 800da18:	a905      	add	r1, sp, #20
+ 800da1a:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800da1e:	f88d 9014 	strb.w	r9, [sp, #20]
+ 800da22:	f001 ff51 	bl	800f8c8 <RegionGetPhyParam>
+ 800da26:	2310      	movs	r3, #16
+ 800da28:	f884 00dd 	strb.w	r0, [r4, #221]	; 0xdd
+ 800da2c:	a905      	add	r1, sp, #20
+ 800da2e:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800da32:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800da36:	f001 ff47 	bl	800f8c8 <RegionGetPhyParam>
+ 800da3a:	2311      	movs	r3, #17
+ 800da3c:	f8c4 009c 	str.w	r0, [r4, #156]	; 0x9c
+ 800da40:	a905      	add	r1, sp, #20
+ 800da42:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800da46:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800da4a:	f001 ff3d 	bl	800f8c8 <RegionGetPhyParam>
+ 800da4e:	2312      	movs	r3, #18
+ 800da50:	f8c4 00a0 	str.w	r0, [r4, #160]	; 0xa0
+ 800da54:	a905      	add	r1, sp, #20
+ 800da56:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800da5a:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800da5e:	f001 ff33 	bl	800f8c8 <RegionGetPhyParam>
+ 800da62:	2313      	movs	r3, #19
+ 800da64:	f8c4 00a4 	str.w	r0, [r4, #164]	; 0xa4
+ 800da68:	a905      	add	r1, sp, #20
+ 800da6a:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800da6e:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800da72:	f001 ff29 	bl	800f8c8 <RegionGetPhyParam>
+ 800da76:	2314      	movs	r3, #20
+ 800da78:	eb0d 0103 	add.w	r1, sp, r3
+ 800da7c:	f8c4 00a8 	str.w	r0, [r4, #168]	; 0xa8
+ 800da80:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800da84:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800da88:	f001 ff1e 	bl	800f8c8 <RegionGetPhyParam>
+ 800da8c:	2317      	movs	r3, #23
+ 800da8e:	f8c4 00ac 	str.w	r0, [r4, #172]	; 0xac
+ 800da92:	a905      	add	r1, sp, #20
+ 800da94:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800da98:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800da9c:	f001 ff14 	bl	800f8c8 <RegionGetPhyParam>
+ 800daa0:	2318      	movs	r3, #24
+ 800daa2:	f884 00b1 	strb.w	r0, [r4, #177]	; 0xb1
+ 800daa6:	a905      	add	r1, sp, #20
+ 800daa8:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800daac:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800dab0:	f001 ff0a 	bl	800f8c8 <RegionGetPhyParam>
+ 800dab4:	2319      	movs	r3, #25
+ 800dab6:	f8c4 00b4 	str.w	r0, [r4, #180]	; 0xb4
+ 800daba:	f8c4 00bc 	str.w	r0, [r4, #188]	; 0xbc
+ 800dabe:	a905      	add	r1, sp, #20
+ 800dac0:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800dac4:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800dac8:	f001 fefe 	bl	800f8c8 <RegionGetPhyParam>
+ 800dacc:	b2c0      	uxtb	r0, r0
+ 800dace:	231e      	movs	r3, #30
+ 800dad0:	f884 00b8 	strb.w	r0, [r4, #184]	; 0xb8
+ 800dad4:	f884 00c0 	strb.w	r0, [r4, #192]	; 0xc0
+ 800dad8:	a905      	add	r1, sp, #20
+ 800dada:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800dade:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800dae2:	f001 fef1 	bl	800f8c8 <RegionGetPhyParam>
+ 800dae6:	231f      	movs	r3, #31
+ 800dae8:	f884 00c4 	strb.w	r0, [r4, #196]	; 0xc4
+ 800daec:	a905      	add	r1, sp, #20
+ 800daee:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800daf2:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800daf6:	f001 fee7 	bl	800f8c8 <RegionGetPhyParam>
+ 800dafa:	2320      	movs	r3, #32
+ 800dafc:	f884 00c5 	strb.w	r0, [r4, #197]	; 0xc5
+ 800db00:	a905      	add	r1, sp, #20
+ 800db02:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800db06:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800db0a:	f001 fedd 	bl	800f8c8 <RegionGetPhyParam>
+ 800db0e:	2321      	movs	r3, #33	; 0x21
+ 800db10:	f8c4 00c8 	str.w	r0, [r4, #200]	; 0xc8
+ 800db14:	a905      	add	r1, sp, #20
+ 800db16:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800db1a:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800db1e:	f001 fed3 	bl	800f8c8 <RegionGetPhyParam>
+ 800db22:	230b      	movs	r3, #11
+ 800db24:	f8c4 00cc 	str.w	r0, [r4, #204]	; 0xcc
+ 800db28:	a905      	add	r1, sp, #20
+ 800db2a:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800db2e:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800db32:	f001 fec9 	bl	800f8c8 <RegionGetPhyParam>
+ 800db36:	230c      	movs	r3, #12
+ 800db38:	f8a4 00d0 	strh.w	r0, [r4, #208]	; 0xd0
+ 800db3c:	a905      	add	r1, sp, #20
+ 800db3e:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800db42:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800db46:	f001 febf 	bl	800f8c8 <RegionGetPhyParam>
+ 800db4a:	f8d4 309c 	ldr.w	r3, [r4, #156]	; 0x9c
+ 800db4e:	6563      	str	r3, [r4, #84]	; 0x54
+ 800db50:	f8d4 30a0 	ldr.w	r3, [r4, #160]	; 0xa0
+ 800db54:	65a3      	str	r3, [r4, #88]	; 0x58
+ 800db56:	f8d4 30a4 	ldr.w	r3, [r4, #164]	; 0xa4
+ 800db5a:	65e3      	str	r3, [r4, #92]	; 0x5c
+ 800db5c:	f8d4 30a8 	ldr.w	r3, [r4, #168]	; 0xa8
+ 800db60:	6623      	str	r3, [r4, #96]	; 0x60
+ 800db62:	f8d4 30ac 	ldr.w	r3, [r4, #172]	; 0xac
+ 800db66:	6663      	str	r3, [r4, #100]	; 0x64
+ 800db68:	f504 7308 	add.w	r3, r4, #544	; 0x220
+ 800db6c:	a907      	add	r1, sp, #28
+ 800db6e:	9004      	str	r0, [sp, #16]
+ 800db70:	f8a4 00d2 	strh.w	r0, [r4, #210]	; 0xd2
+ 800db74:	9307      	str	r3, [sp, #28]
+ 800db76:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800db7a:	f88d 6024 	strb.w	r6, [sp, #36]	; 0x24
+ 800db7e:	f504 732d 	add.w	r3, r4, #692	; 0x2b4
+ 800db82:	9308      	str	r3, [sp, #32]
+ 800db84:	f884 80b0 	strb.w	r8, [r4, #176]	; 0xb0
+ 800db88:	f8c4 b094 	str.w	fp, [r4, #148]	; 0x94
+ 800db8c:	f884 9098 	strb.w	r9, [r4, #152]	; 0x98
+ 800db90:	f8c4 b04c 	str.w	fp, [r4, #76]	; 0x4c
+ 800db94:	f884 9050 	strb.w	r9, [r4, #80]	; 0x50
+ 800db98:	f884 8068 	strb.w	r8, [r4, #104]	; 0x68
+ 800db9c:	f001 fea2 	bl	800f8e4 <RegionInitDefaults>
+ 800dba0:	f8c5 a348 	str.w	sl, [r5, #840]	; 0x348
+ 800dba4:	f7fe fdc8 	bl	800c738 <ResetMacParameters.constprop.0>
+ 800dba8:	4632      	mov	r2, r6
+ 800dbaa:	4b3e      	ldr	r3, [pc, #248]	; (800dca4 <LoRaMacInitialization+0x344>)
+ 800dbac:	9600      	str	r6, [sp, #0]
+ 800dbae:	f04f 31ff 	mov.w	r1, #4294967295
+ 800dbb2:	f505 705a 	add.w	r0, r5, #872	; 0x368
+ 800dbb6:	e9c4 660b 	strd	r6, r6, [r4, #44]	; 0x2c
+ 800dbba:	f8c5 7344 	str.w	r7, [r5, #836]	; 0x344
+ 800dbbe:	f885 6481 	strb.w	r6, [r5, #1153]	; 0x481
+ 800dbc2:	f884 8119 	strb.w	r8, [r4, #281]	; 0x119
+ 800dbc6:	f8c5 8340 	str.w	r8, [r5, #832]	; 0x340
+ 800dbca:	f006 f8d1 	bl	8013d70 <UTIL_TIMER_Create>
+ 800dbce:	4632      	mov	r2, r6
+ 800dbd0:	4b35      	ldr	r3, [pc, #212]	; (800dca8 <LoRaMacInitialization+0x348>)
+ 800dbd2:	9600      	str	r6, [sp, #0]
+ 800dbd4:	f04f 31ff 	mov.w	r1, #4294967295
+ 800dbd8:	f505 7060 	add.w	r0, r5, #896	; 0x380
+ 800dbdc:	f006 f8c8 	bl	8013d70 <UTIL_TIMER_Create>
+ 800dbe0:	4632      	mov	r2, r6
+ 800dbe2:	4b32      	ldr	r3, [pc, #200]	; (800dcac <LoRaMacInitialization+0x34c>)
+ 800dbe4:	9600      	str	r6, [sp, #0]
+ 800dbe6:	f04f 31ff 	mov.w	r1, #4294967295
+ 800dbea:	f505 7066 	add.w	r0, r5, #920	; 0x398
+ 800dbee:	f006 f8bf 	bl	8013d70 <UTIL_TIMER_Create>
+ 800dbf2:	4632      	mov	r2, r6
+ 800dbf4:	4b2e      	ldr	r3, [pc, #184]	; (800dcb0 <LoRaMacInitialization+0x350>)
+ 800dbf6:	9600      	str	r6, [sp, #0]
+ 800dbf8:	f04f 31ff 	mov.w	r1, #4294967295
+ 800dbfc:	ae02      	add	r6, sp, #8
+ 800dbfe:	f505 707d 	add.w	r0, r5, #1012	; 0x3f4
+ 800dc02:	f006 f8b5 	bl	8013d70 <UTIL_TIMER_Create>
+ 800dc06:	4630      	mov	r0, r6
+ 800dc08:	f006 f846 	bl	8013c98 <SysTimeGetMcuTime>
+ 800dc0c:	e896 0003 	ldmia.w	r6, {r0, r1}
+ 800dc10:	f504 7390 	add.w	r3, r4, #288	; 0x120
+ 800dc14:	e883 0003 	stmia.w	r3, {r0, r1}
+ 800dc18:	4b26      	ldr	r3, [pc, #152]	; (800dcb4 <LoRaMacInitialization+0x354>)
+ 800dc1a:	f8c5 334c 	str.w	r3, [r5, #844]	; 0x34c
+ 800dc1e:	4b26      	ldr	r3, [pc, #152]	; (800dcb8 <LoRaMacInitialization+0x358>)
+ 800dc20:	f8c5 3354 	str.w	r3, [r5, #852]	; 0x354
+ 800dc24:	4b25      	ldr	r3, [pc, #148]	; (800dcbc <LoRaMacInitialization+0x35c>)
+ 800dc26:	f8c5 335c 	str.w	r3, [r5, #860]	; 0x35c
+ 800dc2a:	4f25      	ldr	r7, [pc, #148]	; (800dcc0 <LoRaMacInitialization+0x360>)
+ 800dc2c:	4b25      	ldr	r3, [pc, #148]	; (800dcc4 <LoRaMacInitialization+0x364>)
+ 800dc2e:	f8c5 3350 	str.w	r3, [r5, #848]	; 0x350
+ 800dc32:	4b25      	ldr	r3, [pc, #148]	; (800dcc8 <LoRaMacInitialization+0x368>)
+ 800dc34:	f8c5 3358 	str.w	r3, [r5, #856]	; 0x358
+ 800dc38:	f505 7053 	add.w	r0, r5, #844	; 0x34c
+ 800dc3c:	683b      	ldr	r3, [r7, #0]
+ 800dc3e:	4798      	blx	r3
+ 800dc40:	f504 70a4 	add.w	r0, r4, #328	; 0x148
+ 800dc44:	f003 fb16 	bl	8011274 <SecureElementInit>
+ 800dc48:	b120      	cbz	r0, 800dc54 <LoRaMacInitialization+0x2f4>
+ 800dc4a:	2611      	movs	r6, #17
+ 800dc4c:	4630      	mov	r0, r6
+ 800dc4e:	b00b      	add	sp, #44	; 0x2c
+ 800dc50:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 800dc54:	4620      	mov	r0, r4
+ 800dc56:	f001 fa9d 	bl	800f194 <LoRaMacCryptoInit>
+ 800dc5a:	2800      	cmp	r0, #0
+ 800dc5c:	d1f5      	bne.n	800dc4a <LoRaMacInitialization+0x2ea>
+ 800dc5e:	f000 ffc7 	bl	800ebf0 <LoRaMacCommandsInit>
+ 800dc62:	b9b8      	cbnz	r0, 800dc94 <LoRaMacInitialization+0x334>
+ 800dc64:	4819      	ldr	r0, [pc, #100]	; (800dccc <LoRaMacInitialization+0x36c>)
+ 800dc66:	f001 faf7 	bl	800f258 <LoRaMacCryptoSetMulticastReference>
+ 800dc6a:	4606      	mov	r6, r0
+ 800dc6c:	2800      	cmp	r0, #0
+ 800dc6e:	d1ec      	bne.n	800dc4a <LoRaMacInitialization+0x2ea>
+ 800dc70:	697b      	ldr	r3, [r7, #20]
+ 800dc72:	4798      	blx	r3
+ 800dc74:	f003 fd94 	bl	80117a0 <srand1>
+ 800dc78:	6dbb      	ldr	r3, [r7, #88]	; 0x58
+ 800dc7a:	f894 0119 	ldrb.w	r0, [r4, #281]	; 0x119
+ 800dc7e:	4798      	blx	r3
+ 800dc80:	6afb      	ldr	r3, [r7, #44]	; 0x2c
+ 800dc82:	4798      	blx	r3
+ 800dc84:	2301      	movs	r3, #1
+ 800dc86:	f885 3482 	strb.w	r3, [r5, #1154]	; 0x482
+ 800dc8a:	e7df      	b.n	800dc4c <LoRaMacInitialization+0x2ec>
+ 800dc8c:	2603      	movs	r6, #3
+ 800dc8e:	e7dd      	b.n	800dc4c <LoRaMacInitialization+0x2ec>
+ 800dc90:	2609      	movs	r6, #9
+ 800dc92:	e7db      	b.n	800dc4c <LoRaMacInitialization+0x2ec>
+ 800dc94:	2613      	movs	r6, #19
+ 800dc96:	e7d9      	b.n	800dc4c <LoRaMacInitialization+0x2ec>
+ 800dc98:	20001864 	.word	0x20001864
+ 800dc9c:	20001fd8 	.word	0x20001fd8
+ 800dca0:	01000300 	.word	0x01000300
+ 800dca4:	0800cffd 	.word	0x0800cffd
+ 800dca8:	0800c8b5 	.word	0x0800c8b5
+ 800dcac:	0800c8f5 	.word	0x0800c8f5
+ 800dcb0:	0800c0ed 	.word	0x0800c0ed
+ 800dcb4:	0800c2c5 	.word	0x0800c2c5
+ 800dcb8:	0800c27d 	.word	0x0800c27d
+ 800dcbc:	0800c0a9 	.word	0x0800c0a9
+ 800dcc0:	08015784 	.word	0x08015784
+ 800dcc4:	0800c255 	.word	0x0800c255
+ 800dcc8:	0800c22d 	.word	0x0800c22d
+ 800dccc:	2000194c 	.word	0x2000194c
+
+0800dcd0 <LoRaMacStart>:
+ 800dcd0:	b508      	push	{r3, lr}
+ 800dcd2:	4b03      	ldr	r3, [pc, #12]	; (800dce0 <LoRaMacStart+0x10>)
+ 800dcd4:	2000      	movs	r0, #0
+ 800dcd6:	f8c3 0340 	str.w	r0, [r3, #832]	; 0x340
+ 800dcda:	f7fe f9cd 	bl	800c078 <UpdateRxSlotIdleState>
+ 800dcde:	bd08      	pop	{r3, pc}
+ 800dce0:	20001fd8 	.word	0x20001fd8
+
+0800dce4 <LoRaMacStop>:
+ 800dce4:	b510      	push	{r4, lr}
+ 800dce6:	f7ff f9b3 	bl	800d050 <LoRaMacIsBusy>
+ 800dcea:	4c0a      	ldr	r4, [pc, #40]	; (800dd14 <LoRaMacStop+0x30>)
+ 800dcec:	b960      	cbnz	r0, 800dd08 <LoRaMacStop+0x24>
+ 800dcee:	4b0a      	ldr	r3, [pc, #40]	; (800dd18 <LoRaMacStop+0x34>)
+ 800dcf0:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 800dcf4:	2b02      	cmp	r3, #2
+ 800dcf6:	d102      	bne.n	800dcfe <LoRaMacStop+0x1a>
+ 800dcf8:	4b08      	ldr	r3, [pc, #32]	; (800dd1c <LoRaMacStop+0x38>)
+ 800dcfa:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800dcfc:	4798      	blx	r3
+ 800dcfe:	2301      	movs	r3, #1
+ 800dd00:	f8c4 3340 	str.w	r3, [r4, #832]	; 0x340
+ 800dd04:	2000      	movs	r0, #0
+ 800dd06:	bd10      	pop	{r4, pc}
+ 800dd08:	f8d4 0340 	ldr.w	r0, [r4, #832]	; 0x340
+ 800dd0c:	3801      	subs	r0, #1
+ 800dd0e:	bf18      	it	ne
+ 800dd10:	2001      	movne	r0, #1
+ 800dd12:	e7f8      	b.n	800dd06 <LoRaMacStop+0x22>
+ 800dd14:	20001fd8 	.word	0x20001fd8
+ 800dd18:	20001864 	.word	0x20001864
+ 800dd1c:	08015784 	.word	0x08015784
+
+0800dd20 <LoRaMacHalt>:
+ 800dd20:	b538      	push	{r3, r4, r5, lr}
+ 800dd22:	4c13      	ldr	r4, [pc, #76]	; (800dd70 <LoRaMacHalt+0x50>)
+ 800dd24:	f504 705a 	add.w	r0, r4, #872	; 0x368
+ 800dd28:	f006 f880 	bl	8013e2c <UTIL_TIMER_Stop>
+ 800dd2c:	f504 7060 	add.w	r0, r4, #896	; 0x380
+ 800dd30:	f006 f87c 	bl	8013e2c <UTIL_TIMER_Stop>
+ 800dd34:	f504 7066 	add.w	r0, r4, #920	; 0x398
+ 800dd38:	f006 f878 	bl	8013e2c <UTIL_TIMER_Stop>
+ 800dd3c:	f504 707d 	add.w	r0, r4, #1012	; 0x3f4
+ 800dd40:	f006 f874 	bl	8013e2c <UTIL_TIMER_Stop>
+ 800dd44:	f000 ff40 	bl	800ebc8 <LoRaMacClassBHaltBeaconing>
+ 800dd48:	4b0a      	ldr	r3, [pc, #40]	; (800dd74 <LoRaMacHalt+0x54>)
+ 800dd4a:	2500      	movs	r5, #0
+ 800dd4c:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800dd4e:	4798      	blx	r3
+ 800dd50:	f8c4 5340 	str.w	r5, [r4, #832]	; 0x340
+ 800dd54:	f7fe fdf2 	bl	800c93c <LoRaMacHandleNvm.part.0.constprop.0>
+ 800dd58:	4907      	ldr	r1, [pc, #28]	; (800dd78 <LoRaMacHalt+0x58>)
+ 800dd5a:	4808      	ldr	r0, [pc, #32]	; (800dd7c <LoRaMacHalt+0x5c>)
+ 800dd5c:	f44f 62ee 	mov.w	r2, #1904	; 0x770
+ 800dd60:	f003 fd40 	bl	80117e4 <memcpy1>
+ 800dd64:	2301      	movs	r3, #1
+ 800dd66:	f8c4 3340 	str.w	r3, [r4, #832]	; 0x340
+ 800dd6a:	4628      	mov	r0, r5
+ 800dd6c:	bd38      	pop	{r3, r4, r5, pc}
+ 800dd6e:	bf00      	nop
+ 800dd70:	20001fd8 	.word	0x20001fd8
+ 800dd74:	08015784 	.word	0x08015784
+ 800dd78:	20001864 	.word	0x20001864
+ 800dd7c:	200010f4 	.word	0x200010f4
+
+0800dd80 <LoRaMacQueryTxPossible>:
+ 800dd80:	b530      	push	{r4, r5, lr}
+ 800dd82:	4b2a      	ldr	r3, [pc, #168]	; (800de2c <LoRaMacQueryTxPossible+0xac>)
+ 800dd84:	b089      	sub	sp, #36	; 0x24
+ 800dd86:	4605      	mov	r5, r0
+ 800dd88:	f893 00dd 	ldrb.w	r0, [r3, #221]	; 0xdd
+ 800dd8c:	f88d 0002 	strb.w	r0, [sp, #2]
+ 800dd90:	f893 00dc 	ldrb.w	r0, [r3, #220]	; 0xdc
+ 800dd94:	6a9a      	ldr	r2, [r3, #40]	; 0x28
+ 800dd96:	f88d 0003 	strb.w	r0, [sp, #3]
+ 800dd9a:	2000      	movs	r0, #0
+ 800dd9c:	9201      	str	r2, [sp, #4]
+ 800dd9e:	9002      	str	r0, [sp, #8]
+ 800dda0:	460c      	mov	r4, r1
+ 800dda2:	2900      	cmp	r1, #0
+ 800dda4:	d03e      	beq.n	800de24 <LoRaMacQueryTxPossible+0xa4>
+ 800dda6:	9205      	str	r2, [sp, #20]
+ 800dda8:	f8d3 2088 	ldr.w	r2, [r3, #136]	; 0x88
+ 800ddac:	9206      	str	r2, [sp, #24]
+ 800ddae:	8f1a      	ldrh	r2, [r3, #56]	; 0x38
+ 800ddb0:	f8d3 1128 	ldr.w	r1, [r3, #296]	; 0x128
+ 800ddb4:	9103      	str	r1, [sp, #12]
+ 800ddb6:	ba52      	rev16	r2, r2
+ 800ddb8:	f893 111a 	ldrb.w	r1, [r3, #282]	; 0x11a
+ 800ddbc:	f8ad 201c 	strh.w	r2, [sp, #28]
+ 800ddc0:	f893 207c 	ldrb.w	r2, [r3, #124]	; 0x7c
+ 800ddc4:	f893 3048 	ldrb.w	r3, [r3, #72]	; 0x48
+ 800ddc8:	f88d 0010 	strb.w	r0, [sp, #16]
+ 800ddcc:	f88d 1011 	strb.w	r1, [sp, #17]
+ 800ddd0:	f88d 201e 	strb.w	r2, [sp, #30]
+ 800ddd4:	f88d 301f 	strb.w	r3, [sp, #31]
+ 800ddd8:	f10d 0203 	add.w	r2, sp, #3
+ 800dddc:	ab01      	add	r3, sp, #4
+ 800ddde:	f10d 0102 	add.w	r1, sp, #2
+ 800dde2:	a803      	add	r0, sp, #12
+ 800dde4:	f000 fe6e 	bl	800eac4 <LoRaMacAdrCalcNext>
+ 800dde8:	f99d 0002 	ldrsb.w	r0, [sp, #2]
+ 800ddec:	f7fe f966 	bl	800c0bc <GetMaxAppPayloadWithoutFOptsLength>
+ 800ddf0:	7060      	strb	r0, [r4, #1]
+ 800ddf2:	a802      	add	r0, sp, #8
+ 800ddf4:	f000 ffb6 	bl	800ed64 <LoRaMacCommandsGetSizeSerializedCmds>
+ 800ddf8:	b9b0      	cbnz	r0, 800de28 <LoRaMacQueryTxPossible+0xa8>
+ 800ddfa:	9a02      	ldr	r2, [sp, #8]
+ 800ddfc:	2a0f      	cmp	r2, #15
+ 800ddfe:	d80d      	bhi.n	800de1c <LoRaMacQueryTxPossible+0x9c>
+ 800de00:	7863      	ldrb	r3, [r4, #1]
+ 800de02:	429a      	cmp	r2, r3
+ 800de04:	d80a      	bhi.n	800de1c <LoRaMacQueryTxPossible+0x9c>
+ 800de06:	4415      	add	r5, r2
+ 800de08:	42ab      	cmp	r3, r5
+ 800de0a:	eba3 0102 	sub.w	r1, r3, r2
+ 800de0e:	bf2c      	ite	cs
+ 800de10:	2000      	movcs	r0, #0
+ 800de12:	2001      	movcc	r0, #1
+ 800de14:	7021      	strb	r1, [r4, #0]
+ 800de16:	00c0      	lsls	r0, r0, #3
+ 800de18:	b009      	add	sp, #36	; 0x24
+ 800de1a:	bd30      	pop	{r4, r5, pc}
+ 800de1c:	2300      	movs	r3, #0
+ 800de1e:	7023      	strb	r3, [r4, #0]
+ 800de20:	2008      	movs	r0, #8
+ 800de22:	e7f9      	b.n	800de18 <LoRaMacQueryTxPossible+0x98>
+ 800de24:	2003      	movs	r0, #3
+ 800de26:	e7f7      	b.n	800de18 <LoRaMacQueryTxPossible+0x98>
+ 800de28:	2013      	movs	r0, #19
+ 800de2a:	e7f5      	b.n	800de18 <LoRaMacQueryTxPossible+0x98>
+ 800de2c:	20001864 	.word	0x20001864
+
+0800de30 <LoRaMacMibGetRequestConfirm>:
+ 800de30:	b51f      	push	{r0, r1, r2, r3, r4, lr}
+ 800de32:	4604      	mov	r4, r0
+ 800de34:	2800      	cmp	r0, #0
+ 800de36:	f000 80fd 	beq.w	800e034 <LoRaMacMibGetRequestConfirm+0x204>
+ 800de3a:	7800      	ldrb	r0, [r0, #0]
+ 800de3c:	283f      	cmp	r0, #63	; 0x3f
+ 800de3e:	f200 80f3 	bhi.w	800e028 <LoRaMacMibGetRequestConfirm+0x1f8>
+ 800de42:	e8df f010 	tbh	[pc, r0, lsl #1]
+ 800de46:	0040      	.short	0x0040
+ 800de48:	004b0046 	.word	0x004b0046
+ 800de4c:	00540050 	.word	0x00540050
+ 800de50:	005d0058 	.word	0x005d0058
+ 800de54:	00f100f1 	.word	0x00f100f1
+ 800de58:	00f100f1 	.word	0x00f100f1
+ 800de5c:	00f100f1 	.word	0x00f100f1
+ 800de60:	00f100f1 	.word	0x00f100f1
+ 800de64:	00680064 	.word	0x00680064
+ 800de68:	0077006c 	.word	0x0077006c
+ 800de6c:	0081007e 	.word	0x0081007e
+ 800de70:	00890084 	.word	0x00890084
+ 800de74:	008b0087 	.word	0x008b0087
+ 800de78:	0092008f 	.word	0x0092008f
+ 800de7c:	00980095 	.word	0x00980095
+ 800de80:	009e009b 	.word	0x009e009b
+ 800de84:	00aa00a2 	.word	0x00aa00a2
+ 800de88:	00ae00a6 	.word	0x00ae00a6
+ 800de8c:	00b500b1 	.word	0x00b500b1
+ 800de90:	00ba00be 	.word	0x00ba00be
+ 800de94:	00f100bc 	.word	0x00f100bc
+ 800de98:	00f100c2 	.word	0x00f100c2
+ 800de9c:	00f100f1 	.word	0x00f100f1
+ 800dea0:	00f100f1 	.word	0x00f100f1
+ 800dea4:	00f100f1 	.word	0x00f100f1
+ 800dea8:	00f100f1 	.word	0x00f100f1
+ 800deac:	00f100f1 	.word	0x00f100f1
+ 800deb0:	00f100f1 	.word	0x00f100f1
+ 800deb4:	00f100f1 	.word	0x00f100f1
+ 800deb8:	00ce00ca 	.word	0x00ce00ca
+ 800debc:	00d700d3 	.word	0x00d700d3
+ 800dec0:	00df00db 	.word	0x00df00db
+ 800dec4:	00e8      	.short	0x00e8
+ 800dec6:	4b5d      	ldr	r3, [pc, #372]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800dec8:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 800decc:	7123      	strb	r3, [r4, #4]
+ 800dece:	b004      	add	sp, #16
+ 800ded0:	bd10      	pop	{r4, pc}
+ 800ded2:	4b5a      	ldr	r3, [pc, #360]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800ded4:	f893 312c 	ldrb.w	r3, [r3, #300]	; 0x12c
+ 800ded8:	7123      	strb	r3, [r4, #4]
+ 800deda:	e002      	b.n	800dee2 <LoRaMacMibGetRequestConfirm+0xb2>
+ 800dedc:	6860      	ldr	r0, [r4, #4]
+ 800dede:	f003 fb65 	bl	80115ac <SecureElementGetDevEui>
+ 800dee2:	2000      	movs	r0, #0
+ 800dee4:	e7f3      	b.n	800dece <LoRaMacMibGetRequestConfirm+0x9e>
+ 800dee6:	6860      	ldr	r0, [r4, #4]
+ 800dee8:	f003 fba6 	bl	8011638 <SecureElementGetJoinEui>
+ 800deec:	e7f9      	b.n	800dee2 <LoRaMacMibGetRequestConfirm+0xb2>
+ 800deee:	4b53      	ldr	r3, [pc, #332]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800def0:	f893 311a 	ldrb.w	r3, [r3, #282]	; 0x11a
+ 800def4:	e7f0      	b.n	800ded8 <LoRaMacMibGetRequestConfirm+0xa8>
+ 800def6:	4b51      	ldr	r3, [pc, #324]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800def8:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
+ 800defc:	6063      	str	r3, [r4, #4]
+ 800defe:	e7f0      	b.n	800dee2 <LoRaMacMibGetRequestConfirm+0xb2>
+ 800df00:	4b4e      	ldr	r3, [pc, #312]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800df02:	1d21      	adds	r1, r4, #4
+ 800df04:	f893 012c 	ldrb.w	r0, [r3, #300]	; 0x12c
+ 800df08:	f003 fbae 	bl	8011668 <SecureElementGetDevAddr>
+ 800df0c:	e7e9      	b.n	800dee2 <LoRaMacMibGetRequestConfirm+0xb2>
+ 800df0e:	4b4b      	ldr	r3, [pc, #300]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800df10:	f893 3119 	ldrb.w	r3, [r3, #281]	; 0x119
+ 800df14:	e7e0      	b.n	800ded8 <LoRaMacMibGetRequestConfirm+0xa8>
+ 800df16:	4b49      	ldr	r3, [pc, #292]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800df18:	f893 308c 	ldrb.w	r3, [r3, #140]	; 0x8c
+ 800df1c:	e7dc      	b.n	800ded8 <LoRaMacMibGetRequestConfirm+0xa8>
+ 800df1e:	231d      	movs	r3, #29
+ 800df20:	f88d 3008 	strb.w	r3, [sp, #8]
+ 800df24:	4b45      	ldr	r3, [pc, #276]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800df26:	a902      	add	r1, sp, #8
+ 800df28:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 800df2c:	f001 fccc 	bl	800f8c8 <RegionGetPhyParam>
+ 800df30:	6060      	str	r0, [r4, #4]
+ 800df32:	e7d6      	b.n	800dee2 <LoRaMacMibGetRequestConfirm+0xb2>
+ 800df34:	4b42      	ldr	r3, [pc, #264]	; (800e040 <LoRaMacMibGetRequestConfirm+0x210>)
+ 800df36:	3404      	adds	r4, #4
+ 800df38:	e893 0003 	ldmia.w	r3, {r0, r1}
+ 800df3c:	e884 0003 	stmia.w	r4, {r0, r1}
+ 800df40:	e7cf      	b.n	800dee2 <LoRaMacMibGetRequestConfirm+0xb2>
+ 800df42:	4b40      	ldr	r3, [pc, #256]	; (800e044 <LoRaMacMibGetRequestConfirm+0x214>)
+ 800df44:	3404      	adds	r4, #4
+ 800df46:	e7f7      	b.n	800df38 <LoRaMacMibGetRequestConfirm+0x108>
+ 800df48:	4b3f      	ldr	r3, [pc, #252]	; (800e048 <LoRaMacMibGetRequestConfirm+0x218>)
+ 800df4a:	3404      	adds	r4, #4
+ 800df4c:	e7f4      	b.n	800df38 <LoRaMacMibGetRequestConfirm+0x108>
+ 800df4e:	4b3f      	ldr	r3, [pc, #252]	; (800e04c <LoRaMacMibGetRequestConfirm+0x21c>)
+ 800df50:	3404      	adds	r4, #4
+ 800df52:	e7f1      	b.n	800df38 <LoRaMacMibGetRequestConfirm+0x108>
+ 800df54:	231b      	movs	r3, #27
+ 800df56:	e7e3      	b.n	800df20 <LoRaMacMibGetRequestConfirm+0xf0>
+ 800df58:	231a      	movs	r3, #26
+ 800df5a:	e7e1      	b.n	800df20 <LoRaMacMibGetRequestConfirm+0xf0>
+ 800df5c:	4b37      	ldr	r3, [pc, #220]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800df5e:	f893 3068 	ldrb.w	r3, [r3, #104]	; 0x68
+ 800df62:	e7b9      	b.n	800ded8 <LoRaMacMibGetRequestConfirm+0xa8>
+ 800df64:	4b35      	ldr	r3, [pc, #212]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800df66:	6d5b      	ldr	r3, [r3, #84]	; 0x54
+ 800df68:	e7c8      	b.n	800defc <LoRaMacMibGetRequestConfirm+0xcc>
+ 800df6a:	4b34      	ldr	r3, [pc, #208]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800df6c:	6d9b      	ldr	r3, [r3, #88]	; 0x58
+ 800df6e:	e7c5      	b.n	800defc <LoRaMacMibGetRequestConfirm+0xcc>
+ 800df70:	4b32      	ldr	r3, [pc, #200]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800df72:	6ddb      	ldr	r3, [r3, #92]	; 0x5c
+ 800df74:	e7c2      	b.n	800defc <LoRaMacMibGetRequestConfirm+0xcc>
+ 800df76:	4b31      	ldr	r3, [pc, #196]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800df78:	6e1b      	ldr	r3, [r3, #96]	; 0x60
+ 800df7a:	e7bf      	b.n	800defc <LoRaMacMibGetRequestConfirm+0xcc>
+ 800df7c:	4b2f      	ldr	r3, [pc, #188]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800df7e:	6e5b      	ldr	r3, [r3, #100]	; 0x64
+ 800df80:	e7bc      	b.n	800defc <LoRaMacMibGetRequestConfirm+0xcc>
+ 800df82:	4b2e      	ldr	r3, [pc, #184]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800df84:	f893 30dd 	ldrb.w	r3, [r3, #221]	; 0xdd
+ 800df88:	e7a6      	b.n	800ded8 <LoRaMacMibGetRequestConfirm+0xa8>
+ 800df8a:	4b2c      	ldr	r3, [pc, #176]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800df8c:	f893 3039 	ldrb.w	r3, [r3, #57]	; 0x39
+ 800df90:	e7a2      	b.n	800ded8 <LoRaMacMibGetRequestConfirm+0xa8>
+ 800df92:	4b2a      	ldr	r3, [pc, #168]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800df94:	f893 30dc 	ldrb.w	r3, [r3, #220]	; 0xdc
+ 800df98:	e79e      	b.n	800ded8 <LoRaMacMibGetRequestConfirm+0xa8>
+ 800df9a:	4b28      	ldr	r3, [pc, #160]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800df9c:	f893 3038 	ldrb.w	r3, [r3, #56]	; 0x38
+ 800dfa0:	e79a      	b.n	800ded8 <LoRaMacMibGetRequestConfirm+0xa8>
+ 800dfa2:	4b26      	ldr	r3, [pc, #152]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800dfa4:	6cdb      	ldr	r3, [r3, #76]	; 0x4c
+ 800dfa6:	e7a9      	b.n	800defc <LoRaMacMibGetRequestConfirm+0xcc>
+ 800dfa8:	4b24      	ldr	r3, [pc, #144]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800dfaa:	f893 3050 	ldrb.w	r3, [r3, #80]	; 0x50
+ 800dfae:	e793      	b.n	800ded8 <LoRaMacMibGetRequestConfirm+0xa8>
+ 800dfb0:	4b22      	ldr	r3, [pc, #136]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800dfb2:	f8d3 3084 	ldr.w	r3, [r3, #132]	; 0x84
+ 800dfb6:	6063      	str	r3, [r4, #4]
+ 800dfb8:	e793      	b.n	800dee2 <LoRaMacMibGetRequestConfirm+0xb2>
+ 800dfba:	4b20      	ldr	r3, [pc, #128]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800dfbc:	e79e      	b.n	800defc <LoRaMacMibGetRequestConfirm+0xcc>
+ 800dfbe:	4b24      	ldr	r3, [pc, #144]	; (800e050 <LoRaMacMibGetRequestConfirm+0x220>)
+ 800dfc0:	e79c      	b.n	800defc <LoRaMacMibGetRequestConfirm+0xcc>
+ 800dfc2:	4b1e      	ldr	r3, [pc, #120]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800dfc4:	f8d3 30cc 	ldr.w	r3, [r3, #204]	; 0xcc
+ 800dfc8:	e7f5      	b.n	800dfb6 <LoRaMacMibGetRequestConfirm+0x186>
+ 800dfca:	4b1c      	ldr	r3, [pc, #112]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800dfcc:	f8d3 3128 	ldr.w	r3, [r3, #296]	; 0x128
+ 800dfd0:	6063      	str	r3, [r4, #4]
+ 800dfd2:	f001 fd0d 	bl	800f9f0 <RegionGetVersion>
+ 800dfd6:	60a0      	str	r0, [r4, #8]
+ 800dfd8:	e783      	b.n	800dee2 <LoRaMacMibGetRequestConfirm+0xb2>
+ 800dfda:	4b18      	ldr	r3, [pc, #96]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800dfdc:	f8d3 3090 	ldr.w	r3, [r3, #144]	; 0x90
+ 800dfe0:	e78c      	b.n	800defc <LoRaMacMibGetRequestConfirm+0xcc>
+ 800dfe2:	4b16      	ldr	r3, [pc, #88]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800dfe4:	f8b3 3088 	ldrh.w	r3, [r3, #136]	; 0x88
+ 800dfe8:	80a3      	strh	r3, [r4, #4]
+ 800dfea:	e77a      	b.n	800dee2 <LoRaMacMibGetRequestConfirm+0xb2>
+ 800dfec:	4b13      	ldr	r3, [pc, #76]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800dfee:	f8b3 308a 	ldrh.w	r3, [r3, #138]	; 0x8a
+ 800dff2:	e7f9      	b.n	800dfe8 <LoRaMacMibGetRequestConfirm+0x1b8>
+ 800dff4:	4b11      	ldr	r3, [pc, #68]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800dff6:	f8b3 30d0 	ldrh.w	r3, [r3, #208]	; 0xd0
+ 800dffa:	e7f5      	b.n	800dfe8 <LoRaMacMibGetRequestConfirm+0x1b8>
+ 800dffc:	4b0f      	ldr	r3, [pc, #60]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800dffe:	f8b3 30d2 	ldrh.w	r3, [r3, #210]	; 0xd2
+ 800e002:	e7f1      	b.n	800dfe8 <LoRaMacMibGetRequestConfirm+0x1b8>
+ 800e004:	4b0d      	ldr	r3, [pc, #52]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e006:	f893 2048 	ldrb.w	r2, [r3, #72]	; 0x48
+ 800e00a:	b10a      	cbz	r2, 800e010 <LoRaMacMibGetRequestConfirm+0x1e0>
+ 800e00c:	2a06      	cmp	r2, #6
+ 800e00e:	d113      	bne.n	800e038 <LoRaMacMibGetRequestConfirm+0x208>
+ 800e010:	f8b3 374c 	ldrh.w	r3, [r3, #1868]	; 0x74c
+ 800e014:	e7e8      	b.n	800dfe8 <LoRaMacMibGetRequestConfirm+0x1b8>
+ 800e016:	4b09      	ldr	r3, [pc, #36]	; (800e03c <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e018:	f893 2048 	ldrb.w	r2, [r3, #72]	; 0x48
+ 800e01c:	b10a      	cbz	r2, 800e022 <LoRaMacMibGetRequestConfirm+0x1f2>
+ 800e01e:	2a06      	cmp	r2, #6
+ 800e020:	d10a      	bne.n	800e038 <LoRaMacMibGetRequestConfirm+0x208>
+ 800e022:	f8d3 3750 	ldr.w	r3, [r3, #1872]	; 0x750
+ 800e026:	e769      	b.n	800defc <LoRaMacMibGetRequestConfirm+0xcc>
+ 800e028:	4620      	mov	r0, r4
+ 800e02a:	b004      	add	sp, #16
+ 800e02c:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 800e030:	f000 bdce 	b.w	800ebd0 <LoRaMacClassBMibGetRequestConfirm>
+ 800e034:	2003      	movs	r0, #3
+ 800e036:	e74a      	b.n	800dece <LoRaMacMibGetRequestConfirm+0x9e>
+ 800e038:	2018      	movs	r0, #24
+ 800e03a:	e748      	b.n	800dece <LoRaMacMibGetRequestConfirm+0x9e>
+ 800e03c:	20001864 	.word	0x20001864
+ 800e040:	200018d0 	.word	0x200018d0
+ 800e044:	20001918 	.word	0x20001918
+ 800e048:	200018d8 	.word	0x200018d8
+ 800e04c:	20001920 	.word	0x20001920
+ 800e050:	200010f4 	.word	0x200010f4
+
+0800e054 <LoRaMacMibSetRequestConfirm>:
+ 800e054:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 800e056:	4604      	mov	r4, r0
+ 800e058:	2800      	cmp	r0, #0
+ 800e05a:	d05e      	beq.n	800e11a <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e05c:	4da0      	ldr	r5, [pc, #640]	; (800e2e0 <LoRaMacMibSetRequestConfirm+0x28c>)
+ 800e05e:	f8d5 3340 	ldr.w	r3, [r5, #832]	; 0x340
+ 800e062:	079a      	lsls	r2, r3, #30
+ 800e064:	f100 825f 	bmi.w	800e526 <LoRaMacMibSetRequestConfirm+0x4d2>
+ 800e068:	7802      	ldrb	r2, [r0, #0]
+ 800e06a:	2a3f      	cmp	r2, #63	; 0x3f
+ 800e06c:	f200 8256 	bhi.w	800e51c <LoRaMacMibSetRequestConfirm+0x4c8>
+ 800e070:	e8df f012 	tbh	[pc, r2, lsl #1]
+ 800e074:	00460040 	.word	0x00460040
+ 800e078:	0056004e 	.word	0x0056004e
+ 800e07c:	005f005a 	.word	0x005f005a
+ 800e080:	00700064 	.word	0x00700064
+ 800e084:	007f007a 	.word	0x007f007a
+ 800e088:	00890084 	.word	0x00890084
+ 800e08c:	0093008e 	.word	0x0093008e
+ 800e090:	009d0098 	.word	0x009d0098
+ 800e094:	025400a7 	.word	0x025400a7
+ 800e098:	00cc00ac 	.word	0x00cc00ac
+ 800e09c:	010600df 	.word	0x010600df
+ 800e0a0:	01190128 	.word	0x01190128
+ 800e0a4:	013c012c 	.word	0x013c012c
+ 800e0a8:	01440140 	.word	0x01440140
+ 800e0ac:	014c0148 	.word	0x014c0148
+ 800e0b0:	01620150 	.word	0x01620150
+ 800e0b4:	0178018a 	.word	0x0178018a
+ 800e0b8:	01a2019c 	.word	0x01a2019c
+ 800e0bc:	01ae01a9 	.word	0x01ae01a9
+ 800e0c0:	025401b3 	.word	0x025401b3
+ 800e0c4:	02540218 	.word	0x02540218
+ 800e0c8:	02540254 	.word	0x02540254
+ 800e0cc:	02540254 	.word	0x02540254
+ 800e0d0:	02540254 	.word	0x02540254
+ 800e0d4:	02540254 	.word	0x02540254
+ 800e0d8:	02540254 	.word	0x02540254
+ 800e0dc:	02540254 	.word	0x02540254
+ 800e0e0:	02540254 	.word	0x02540254
+ 800e0e4:	02270254 	.word	0x02270254
+ 800e0e8:	0231022c 	.word	0x0231022c
+ 800e0ec:	023b0236 	.word	0x023b0236
+ 800e0f0:	024a0240 	.word	0x024a0240
+ 800e0f4:	7900      	ldrb	r0, [r0, #4]
+ 800e0f6:	b002      	add	sp, #8
+ 800e0f8:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
+ 800e0fc:	f7fe baae 	b.w	800c65c <SwitchClass>
+ 800e100:	7903      	ldrb	r3, [r0, #4]
+ 800e102:	2b02      	cmp	r3, #2
+ 800e104:	d009      	beq.n	800e11a <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e106:	4a77      	ldr	r2, [pc, #476]	; (800e2e4 <LoRaMacMibSetRequestConfirm+0x290>)
+ 800e108:	f882 312c 	strb.w	r3, [r2, #300]	; 0x12c
+ 800e10c:	2000      	movs	r0, #0
+ 800e10e:	e005      	b.n	800e11c <LoRaMacMibSetRequestConfirm+0xc8>
+ 800e110:	6840      	ldr	r0, [r0, #4]
+ 800e112:	f003 fa3d 	bl	8011590 <SecureElementSetDevEui>
+ 800e116:	2800      	cmp	r0, #0
+ 800e118:	d0f8      	beq.n	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e11a:	2003      	movs	r0, #3
+ 800e11c:	b002      	add	sp, #8
+ 800e11e:	bd70      	pop	{r4, r5, r6, pc}
+ 800e120:	6840      	ldr	r0, [r0, #4]
+ 800e122:	f003 fa79 	bl	8011618 <SecureElementSetJoinEui>
+ 800e126:	e7f6      	b.n	800e116 <LoRaMacMibSetRequestConfirm+0xc2>
+ 800e128:	4b6e      	ldr	r3, [pc, #440]	; (800e2e4 <LoRaMacMibSetRequestConfirm+0x290>)
+ 800e12a:	7902      	ldrb	r2, [r0, #4]
+ 800e12c:	f883 211a 	strb.w	r2, [r3, #282]	; 0x11a
+ 800e130:	e7ec      	b.n	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e132:	4b6c      	ldr	r3, [pc, #432]	; (800e2e4 <LoRaMacMibSetRequestConfirm+0x290>)
+ 800e134:	6842      	ldr	r2, [r0, #4]
+ 800e136:	f8c3 20e0 	str.w	r2, [r3, #224]	; 0xe0
+ 800e13a:	e7e7      	b.n	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e13c:	4d69      	ldr	r5, [pc, #420]	; (800e2e4 <LoRaMacMibSetRequestConfirm+0x290>)
+ 800e13e:	6841      	ldr	r1, [r0, #4]
+ 800e140:	f895 012c 	ldrb.w	r0, [r5, #300]	; 0x12c
+ 800e144:	f003 fa86 	bl	8011654 <SecureElementSetDevAddr>
+ 800e148:	2800      	cmp	r0, #0
+ 800e14a:	d1e6      	bne.n	800e11a <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e14c:	6863      	ldr	r3, [r4, #4]
+ 800e14e:	f8c5 30e4 	str.w	r3, [r5, #228]	; 0xe4
+ 800e152:	e7e3      	b.n	800e11c <LoRaMacMibSetRequestConfirm+0xc8>
+ 800e154:	6841      	ldr	r1, [r0, #4]
+ 800e156:	2900      	cmp	r1, #0
+ 800e158:	d0df      	beq.n	800e11a <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e15a:	2000      	movs	r0, #0
+ 800e15c:	f001 f9a8 	bl	800f4b0 <LoRaMacCryptoSetKey>
+ 800e160:	2800      	cmp	r0, #0
+ 800e162:	d0d3      	beq.n	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e164:	2011      	movs	r0, #17
+ 800e166:	e7d9      	b.n	800e11c <LoRaMacMibSetRequestConfirm+0xc8>
+ 800e168:	6841      	ldr	r1, [r0, #4]
+ 800e16a:	2900      	cmp	r1, #0
+ 800e16c:	d0d5      	beq.n	800e11a <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e16e:	2001      	movs	r0, #1
+ 800e170:	e7f4      	b.n	800e15c <LoRaMacMibSetRequestConfirm+0x108>
+ 800e172:	6841      	ldr	r1, [r0, #4]
+ 800e174:	2900      	cmp	r1, #0
+ 800e176:	d0d0      	beq.n	800e11a <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e178:	2008      	movs	r0, #8
+ 800e17a:	e7ef      	b.n	800e15c <LoRaMacMibSetRequestConfirm+0x108>
+ 800e17c:	6841      	ldr	r1, [r0, #4]
+ 800e17e:	2900      	cmp	r1, #0
+ 800e180:	d0cb      	beq.n	800e11a <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e182:	2009      	movs	r0, #9
+ 800e184:	e7ea      	b.n	800e15c <LoRaMacMibSetRequestConfirm+0x108>
+ 800e186:	6841      	ldr	r1, [r0, #4]
+ 800e188:	2900      	cmp	r1, #0
+ 800e18a:	d0c6      	beq.n	800e11a <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e18c:	200c      	movs	r0, #12
+ 800e18e:	e7e5      	b.n	800e15c <LoRaMacMibSetRequestConfirm+0x108>
+ 800e190:	6841      	ldr	r1, [r0, #4]
+ 800e192:	2900      	cmp	r1, #0
+ 800e194:	d0c1      	beq.n	800e11a <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e196:	200d      	movs	r0, #13
+ 800e198:	e7e0      	b.n	800e15c <LoRaMacMibSetRequestConfirm+0x108>
+ 800e19a:	6841      	ldr	r1, [r0, #4]
+ 800e19c:	2900      	cmp	r1, #0
+ 800e19e:	d0bc      	beq.n	800e11a <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e1a0:	200e      	movs	r0, #14
+ 800e1a2:	e7db      	b.n	800e15c <LoRaMacMibSetRequestConfirm+0x108>
+ 800e1a4:	6841      	ldr	r1, [r0, #4]
+ 800e1a6:	2900      	cmp	r1, #0
+ 800e1a8:	d0b7      	beq.n	800e11a <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e1aa:	200f      	movs	r0, #15
+ 800e1ac:	e7d6      	b.n	800e15c <LoRaMacMibSetRequestConfirm+0x108>
+ 800e1ae:	4c4e      	ldr	r4, [pc, #312]	; (800e2e8 <LoRaMacMibSetRequestConfirm+0x294>)
+ 800e1b0:	4b4c      	ldr	r3, [pc, #304]	; (800e2e4 <LoRaMacMibSetRequestConfirm+0x290>)
+ 800e1b2:	7900      	ldrb	r0, [r0, #4]
+ 800e1b4:	f883 0119 	strb.w	r0, [r3, #281]	; 0x119
+ 800e1b8:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 800e1ba:	4798      	blx	r3
+ 800e1bc:	6ae3      	ldr	r3, [r4, #44]	; 0x2c
+ 800e1be:	4798      	blx	r3
+ 800e1c0:	e7a4      	b.n	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e1c2:	4b48      	ldr	r3, [pc, #288]	; (800e2e4 <LoRaMacMibSetRequestConfirm+0x290>)
+ 800e1c4:	7902      	ldrb	r2, [r0, #4]
+ 800e1c6:	f883 208c 	strb.w	r2, [r3, #140]	; 0x8c
+ 800e1ca:	e79f      	b.n	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e1cc:	4d45      	ldr	r5, [pc, #276]	; (800e2e4 <LoRaMacMibSetRequestConfirm+0x290>)
+ 800e1ce:	7a03      	ldrb	r3, [r0, #8]
+ 800e1d0:	f88d 3000 	strb.w	r3, [sp]
+ 800e1d4:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800e1d8:	f895 307d 	ldrb.w	r3, [r5, #125]	; 0x7d
+ 800e1dc:	f88d 3001 	strb.w	r3, [sp, #1]
+ 800e1e0:	2207      	movs	r2, #7
+ 800e1e2:	4669      	mov	r1, sp
+ 800e1e4:	f001 fb83 	bl	800f8ee <RegionVerify>
+ 800e1e8:	2800      	cmp	r0, #0
+ 800e1ea:	d096      	beq.n	800e11a <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e1ec:	6863      	ldr	r3, [r4, #4]
+ 800e1ee:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800e1f2:	9300      	str	r3, [sp, #0]
+ 800e1f4:	2200      	movs	r2, #0
+ 800e1f6:	4669      	mov	r1, sp
+ 800e1f8:	f001 fb79 	bl	800f8ee <RegionVerify>
+ 800e1fc:	2800      	cmp	r0, #0
+ 800e1fe:	d08c      	beq.n	800e11a <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e200:	356c      	adds	r5, #108	; 0x6c
+ 800e202:	e9d4 0101 	ldrd	r0, r1, [r4, #4]
+ 800e206:	e885 0003 	stmia.w	r5, {r0, r1}
+ 800e20a:	e77f      	b.n	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e20c:	4d35      	ldr	r5, [pc, #212]	; (800e2e4 <LoRaMacMibSetRequestConfirm+0x290>)
+ 800e20e:	7a03      	ldrb	r3, [r0, #8]
+ 800e210:	f88d 3000 	strb.w	r3, [sp]
+ 800e214:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800e218:	f895 307d 	ldrb.w	r3, [r5, #125]	; 0x7d
+ 800e21c:	f88d 3001 	strb.w	r3, [sp, #1]
+ 800e220:	2207      	movs	r2, #7
+ 800e222:	4669      	mov	r1, sp
+ 800e224:	f001 fb63 	bl	800f8ee <RegionVerify>
+ 800e228:	2800      	cmp	r0, #0
+ 800e22a:	f43f af76 	beq.w	800e11a <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e22e:	35b4      	adds	r5, #180	; 0xb4
+ 800e230:	e7e7      	b.n	800e202 <LoRaMacMibSetRequestConfirm+0x1ae>
+ 800e232:	4d2c      	ldr	r5, [pc, #176]	; (800e2e4 <LoRaMacMibSetRequestConfirm+0x290>)
+ 800e234:	7a03      	ldrb	r3, [r0, #8]
+ 800e236:	f88d 3000 	strb.w	r3, [sp]
+ 800e23a:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800e23e:	f895 307d 	ldrb.w	r3, [r5, #125]	; 0x7d
+ 800e242:	f88d 3001 	strb.w	r3, [sp, #1]
+ 800e246:	2207      	movs	r2, #7
+ 800e248:	4669      	mov	r1, sp
+ 800e24a:	f001 fb50 	bl	800f8ee <RegionVerify>
+ 800e24e:	2800      	cmp	r0, #0
+ 800e250:	f43f af63 	beq.w	800e11a <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e254:	e9d4 0101 	ldrd	r0, r1, [r4, #4]
+ 800e258:	f105 0374 	add.w	r3, r5, #116	; 0x74
+ 800e25c:	e883 0003 	stmia.w	r3, {r0, r1}
+ 800e260:	f895 3118 	ldrb.w	r3, [r5, #280]	; 0x118
+ 800e264:	2b02      	cmp	r3, #2
+ 800e266:	f47f af51 	bne.w	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e26a:	f895 312c 	ldrb.w	r3, [r5, #300]	; 0x12c
+ 800e26e:	2b00      	cmp	r3, #0
+ 800e270:	f43f af4c 	beq.w	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e274:	4b1c      	ldr	r3, [pc, #112]	; (800e2e8 <LoRaMacMibSetRequestConfirm+0x294>)
+ 800e276:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800e278:	4798      	blx	r3
+ 800e27a:	f7fe f9bf 	bl	800c5fc <OpenContinuousRxCWindow>
+ 800e27e:	e745      	b.n	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e280:	4d18      	ldr	r5, [pc, #96]	; (800e2e4 <LoRaMacMibSetRequestConfirm+0x290>)
+ 800e282:	7a03      	ldrb	r3, [r0, #8]
+ 800e284:	f88d 3000 	strb.w	r3, [sp]
+ 800e288:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800e28c:	f895 307d 	ldrb.w	r3, [r5, #125]	; 0x7d
+ 800e290:	f88d 3001 	strb.w	r3, [sp, #1]
+ 800e294:	2207      	movs	r2, #7
+ 800e296:	4669      	mov	r1, sp
+ 800e298:	f001 fb29 	bl	800f8ee <RegionVerify>
+ 800e29c:	2800      	cmp	r0, #0
+ 800e29e:	f43f af3c 	beq.w	800e11a <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e2a2:	35bc      	adds	r5, #188	; 0xbc
+ 800e2a4:	e7ad      	b.n	800e202 <LoRaMacMibSetRequestConfirm+0x1ae>
+ 800e2a6:	6843      	ldr	r3, [r0, #4]
+ 800e2a8:	9300      	str	r3, [sp, #0]
+ 800e2aa:	2301      	movs	r3, #1
+ 800e2ac:	f88d 3004 	strb.w	r3, [sp, #4]
+ 800e2b0:	4b0c      	ldr	r3, [pc, #48]	; (800e2e4 <LoRaMacMibSetRequestConfirm+0x290>)
+ 800e2b2:	4669      	mov	r1, sp
+ 800e2b4:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 800e2b8:	f001 fb26 	bl	800f908 <RegionChanMaskSet>
+ 800e2bc:	2800      	cmp	r0, #0
+ 800e2be:	f47f af25 	bne.w	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e2c2:	e72a      	b.n	800e11a <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e2c4:	6843      	ldr	r3, [r0, #4]
+ 800e2c6:	9300      	str	r3, [sp, #0]
+ 800e2c8:	2300      	movs	r3, #0
+ 800e2ca:	e7ef      	b.n	800e2ac <LoRaMacMibSetRequestConfirm+0x258>
+ 800e2cc:	7903      	ldrb	r3, [r0, #4]
+ 800e2ce:	1e5a      	subs	r2, r3, #1
+ 800e2d0:	2a0e      	cmp	r2, #14
+ 800e2d2:	f63f af22 	bhi.w	800e11a <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e2d6:	4a03      	ldr	r2, [pc, #12]	; (800e2e4 <LoRaMacMibSetRequestConfirm+0x290>)
+ 800e2d8:	f882 3068 	strb.w	r3, [r2, #104]	; 0x68
+ 800e2dc:	e716      	b.n	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e2de:	bf00      	nop
+ 800e2e0:	20001fd8 	.word	0x20001fd8
+ 800e2e4:	20001864 	.word	0x20001864
+ 800e2e8:	08015784 	.word	0x08015784
+ 800e2ec:	4b90      	ldr	r3, [pc, #576]	; (800e530 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e2ee:	6842      	ldr	r2, [r0, #4]
+ 800e2f0:	655a      	str	r2, [r3, #84]	; 0x54
+ 800e2f2:	e70b      	b.n	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e2f4:	4b8e      	ldr	r3, [pc, #568]	; (800e530 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e2f6:	6842      	ldr	r2, [r0, #4]
+ 800e2f8:	659a      	str	r2, [r3, #88]	; 0x58
+ 800e2fa:	e707      	b.n	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e2fc:	4b8c      	ldr	r3, [pc, #560]	; (800e530 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e2fe:	6842      	ldr	r2, [r0, #4]
+ 800e300:	65da      	str	r2, [r3, #92]	; 0x5c
+ 800e302:	e703      	b.n	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e304:	4b8a      	ldr	r3, [pc, #552]	; (800e530 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e306:	6842      	ldr	r2, [r0, #4]
+ 800e308:	661a      	str	r2, [r3, #96]	; 0x60
+ 800e30a:	e6ff      	b.n	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e30c:	4b88      	ldr	r3, [pc, #544]	; (800e530 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e30e:	6842      	ldr	r2, [r0, #4]
+ 800e310:	665a      	str	r2, [r3, #100]	; 0x64
+ 800e312:	e6fb      	b.n	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e314:	4c86      	ldr	r4, [pc, #536]	; (800e530 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e316:	7903      	ldrb	r3, [r0, #4]
+ 800e318:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800e31c:	f88d 3000 	strb.w	r3, [sp]
+ 800e320:	2206      	movs	r2, #6
+ 800e322:	4669      	mov	r1, sp
+ 800e324:	f001 fae3 	bl	800f8ee <RegionVerify>
+ 800e328:	2800      	cmp	r0, #0
+ 800e32a:	f43f aef6 	beq.w	800e11a <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e32e:	f89d 3000 	ldrb.w	r3, [sp]
+ 800e332:	f884 30dd 	strb.w	r3, [r4, #221]	; 0xdd
+ 800e336:	e6e9      	b.n	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e338:	4c7d      	ldr	r4, [pc, #500]	; (800e530 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e33a:	7903      	ldrb	r3, [r0, #4]
+ 800e33c:	f88d 3000 	strb.w	r3, [sp]
+ 800e340:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800e344:	f894 307c 	ldrb.w	r3, [r4, #124]	; 0x7c
+ 800e348:	f88d 3002 	strb.w	r3, [sp, #2]
+ 800e34c:	2205      	movs	r2, #5
+ 800e34e:	4669      	mov	r1, sp
+ 800e350:	f001 facd 	bl	800f8ee <RegionVerify>
+ 800e354:	2800      	cmp	r0, #0
+ 800e356:	f43f aee0 	beq.w	800e11a <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e35a:	f89d 3000 	ldrb.w	r3, [sp]
+ 800e35e:	f884 3039 	strb.w	r3, [r4, #57]	; 0x39
+ 800e362:	e6d3      	b.n	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e364:	4c72      	ldr	r4, [pc, #456]	; (800e530 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e366:	7903      	ldrb	r3, [r0, #4]
+ 800e368:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800e36c:	f88d 3000 	strb.w	r3, [sp]
+ 800e370:	220a      	movs	r2, #10
+ 800e372:	4669      	mov	r1, sp
+ 800e374:	f001 fabb 	bl	800f8ee <RegionVerify>
+ 800e378:	2800      	cmp	r0, #0
+ 800e37a:	f43f aece 	beq.w	800e11a <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e37e:	f89d 3000 	ldrb.w	r3, [sp]
+ 800e382:	f884 30dc 	strb.w	r3, [r4, #220]	; 0xdc
+ 800e386:	e6c1      	b.n	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e388:	4c69      	ldr	r4, [pc, #420]	; (800e530 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e38a:	7903      	ldrb	r3, [r0, #4]
+ 800e38c:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800e390:	f88d 3000 	strb.w	r3, [sp]
+ 800e394:	2209      	movs	r2, #9
+ 800e396:	4669      	mov	r1, sp
+ 800e398:	f001 faa9 	bl	800f8ee <RegionVerify>
+ 800e39c:	2800      	cmp	r0, #0
+ 800e39e:	f43f aebc 	beq.w	800e11a <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e3a2:	f89d 3000 	ldrb.w	r3, [sp]
+ 800e3a6:	f884 3038 	strb.w	r3, [r4, #56]	; 0x38
+ 800e3aa:	e6af      	b.n	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e3ac:	4b60      	ldr	r3, [pc, #384]	; (800e530 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e3ae:	6842      	ldr	r2, [r0, #4]
+ 800e3b0:	f8c3 2094 	str.w	r2, [r3, #148]	; 0x94
+ 800e3b4:	64da      	str	r2, [r3, #76]	; 0x4c
+ 800e3b6:	e6a9      	b.n	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e3b8:	4b5d      	ldr	r3, [pc, #372]	; (800e530 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e3ba:	7902      	ldrb	r2, [r0, #4]
+ 800e3bc:	f883 2098 	strb.w	r2, [r3, #152]	; 0x98
+ 800e3c0:	f883 2050 	strb.w	r2, [r3, #80]	; 0x50
+ 800e3c4:	e6a2      	b.n	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e3c6:	4b5a      	ldr	r3, [pc, #360]	; (800e530 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e3c8:	6842      	ldr	r2, [r0, #4]
+ 800e3ca:	f8c3 2084 	str.w	r2, [r3, #132]	; 0x84
+ 800e3ce:	e69d      	b.n	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e3d0:	4b57      	ldr	r3, [pc, #348]	; (800e530 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e3d2:	6842      	ldr	r2, [r0, #4]
+ 800e3d4:	f8c3 20cc 	str.w	r2, [r3, #204]	; 0xcc
+ 800e3d8:	e698      	b.n	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e3da:	2b01      	cmp	r3, #1
+ 800e3dc:	f040 80a3 	bne.w	800e526 <LoRaMacMibSetRequestConfirm+0x4d2>
+ 800e3e0:	4c54      	ldr	r4, [pc, #336]	; (800e534 <LoRaMacMibSetRequestConfirm+0x4e0>)
+ 800e3e2:	2124      	movs	r1, #36	; 0x24
+ 800e3e4:	4620      	mov	r0, r4
+ 800e3e6:	f003 fa13 	bl	8011810 <Crc32>
+ 800e3ea:	6a63      	ldr	r3, [r4, #36]	; 0x24
+ 800e3ec:	4298      	cmp	r0, r3
+ 800e3ee:	d001      	beq.n	800e3f4 <LoRaMacMibSetRequestConfirm+0x3a0>
+ 800e3f0:	2017      	movs	r0, #23
+ 800e3f2:	e693      	b.n	800e11c <LoRaMacMibSetRequestConfirm+0xc8>
+ 800e3f4:	211c      	movs	r1, #28
+ 800e3f6:	f104 0028 	add.w	r0, r4, #40	; 0x28
+ 800e3fa:	f003 fa09 	bl	8011810 <Crc32>
+ 800e3fe:	6c63      	ldr	r3, [r4, #68]	; 0x44
+ 800e400:	4298      	cmp	r0, r3
+ 800e402:	d1f5      	bne.n	800e3f0 <LoRaMacMibSetRequestConfirm+0x39c>
+ 800e404:	21fc      	movs	r1, #252	; 0xfc
+ 800e406:	f104 0048 	add.w	r0, r4, #72	; 0x48
+ 800e40a:	f003 fa01 	bl	8011810 <Crc32>
+ 800e40e:	f8d4 3144 	ldr.w	r3, [r4, #324]	; 0x144
+ 800e412:	4298      	cmp	r0, r3
+ 800e414:	d1ec      	bne.n	800e3f0 <LoRaMacMibSetRequestConfirm+0x39c>
+ 800e416:	21d4      	movs	r1, #212	; 0xd4
+ 800e418:	f504 70a4 	add.w	r0, r4, #328	; 0x148
+ 800e41c:	f003 f9f8 	bl	8011810 <Crc32>
+ 800e420:	f8d4 321c 	ldr.w	r3, [r4, #540]	; 0x21c
+ 800e424:	4298      	cmp	r0, r3
+ 800e426:	d1e3      	bne.n	800e3f0 <LoRaMacMibSetRequestConfirm+0x39c>
+ 800e428:	2190      	movs	r1, #144	; 0x90
+ 800e42a:	f504 7008 	add.w	r0, r4, #544	; 0x220
+ 800e42e:	f003 f9ef 	bl	8011810 <Crc32>
+ 800e432:	f8d4 32b0 	ldr.w	r3, [r4, #688]	; 0x2b0
+ 800e436:	4298      	cmp	r0, r3
+ 800e438:	d1da      	bne.n	800e3f0 <LoRaMacMibSetRequestConfirm+0x39c>
+ 800e43a:	f44f 6194 	mov.w	r1, #1184	; 0x4a0
+ 800e43e:	f504 702d 	add.w	r0, r4, #692	; 0x2b4
+ 800e442:	f003 f9e5 	bl	8011810 <Crc32>
+ 800e446:	f8d4 3754 	ldr.w	r3, [r4, #1876]	; 0x754
+ 800e44a:	4298      	cmp	r0, r3
+ 800e44c:	d1d0      	bne.n	800e3f0 <LoRaMacMibSetRequestConfirm+0x39c>
+ 800e44e:	2114      	movs	r1, #20
+ 800e450:	f504 60eb 	add.w	r0, r4, #1880	; 0x758
+ 800e454:	f003 f9dc 	bl	8011810 <Crc32>
+ 800e458:	f8d4 376c 	ldr.w	r3, [r4, #1900]	; 0x76c
+ 800e45c:	4298      	cmp	r0, r3
+ 800e45e:	d1c7      	bne.n	800e3f0 <LoRaMacMibSetRequestConfirm+0x39c>
+ 800e460:	4e33      	ldr	r6, [pc, #204]	; (800e530 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e462:	4621      	mov	r1, r4
+ 800e464:	4630      	mov	r0, r6
+ 800e466:	f44f 62ee 	mov.w	r2, #1904	; 0x770
+ 800e46a:	f003 f9bb 	bl	80117e4 <memcpy1>
+ 800e46e:	4620      	mov	r0, r4
+ 800e470:	f44f 62ee 	mov.w	r2, #1904	; 0x770
+ 800e474:	2100      	movs	r1, #0
+ 800e476:	f003 f9c9 	bl	801180c <memset1>
+ 800e47a:	f895 3411 	ldrb.w	r3, [r5, #1041]	; 0x411
+ 800e47e:	f885 33e0 	strb.w	r3, [r5, #992]	; 0x3e0
+ 800e482:	6f73      	ldr	r3, [r6, #116]	; 0x74
+ 800e484:	f8c5 33e4 	str.w	r3, [r5, #996]	; 0x3e4
+ 800e488:	f896 307d 	ldrb.w	r3, [r6, #125]	; 0x7d
+ 800e48c:	f885 33f0 	strb.w	r3, [r5, #1008]	; 0x3f0
+ 800e490:	f240 2301 	movw	r3, #513	; 0x201
+ 800e494:	f8a5 33f2 	strh.w	r3, [r5, #1010]	; 0x3f2
+ 800e498:	4b27      	ldr	r3, [pc, #156]	; (800e538 <LoRaMacMibSetRequestConfirm+0x4e4>)
+ 800e49a:	f896 0119 	ldrb.w	r0, [r6, #281]	; 0x119
+ 800e49e:	6d9b      	ldr	r3, [r3, #88]	; 0x58
+ 800e4a0:	4798      	blx	r3
+ 800e4a2:	e633      	b.n	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e4a4:	7983      	ldrb	r3, [r0, #6]
+ 800e4a6:	2b01      	cmp	r3, #1
+ 800e4a8:	f63f ae37 	bhi.w	800e11a <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e4ac:	4b20      	ldr	r3, [pc, #128]	; (800e530 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e4ae:	6842      	ldr	r2, [r0, #4]
+ 800e4b0:	6840      	ldr	r0, [r0, #4]
+ 800e4b2:	f8c3 2128 	str.w	r2, [r3, #296]	; 0x128
+ 800e4b6:	f000 fe89 	bl	800f1cc <LoRaMacCryptoSetLrWanVersion>
+ 800e4ba:	2800      	cmp	r0, #0
+ 800e4bc:	f43f ae2e 	beq.w	800e11c <LoRaMacMibSetRequestConfirm+0xc8>
+ 800e4c0:	e650      	b.n	800e164 <LoRaMacMibSetRequestConfirm+0x110>
+ 800e4c2:	4b1b      	ldr	r3, [pc, #108]	; (800e530 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e4c4:	6842      	ldr	r2, [r0, #4]
+ 800e4c6:	f8c3 2090 	str.w	r2, [r3, #144]	; 0x90
+ 800e4ca:	e61f      	b.n	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e4cc:	4b18      	ldr	r3, [pc, #96]	; (800e530 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e4ce:	8882      	ldrh	r2, [r0, #4]
+ 800e4d0:	f8a3 2088 	strh.w	r2, [r3, #136]	; 0x88
+ 800e4d4:	e61a      	b.n	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e4d6:	4b16      	ldr	r3, [pc, #88]	; (800e530 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e4d8:	8882      	ldrh	r2, [r0, #4]
+ 800e4da:	f8a3 208a 	strh.w	r2, [r3, #138]	; 0x8a
+ 800e4de:	e615      	b.n	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e4e0:	4b13      	ldr	r3, [pc, #76]	; (800e530 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e4e2:	8882      	ldrh	r2, [r0, #4]
+ 800e4e4:	f8a3 20d0 	strh.w	r2, [r3, #208]	; 0xd0
+ 800e4e8:	e610      	b.n	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e4ea:	4b11      	ldr	r3, [pc, #68]	; (800e530 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e4ec:	8882      	ldrh	r2, [r0, #4]
+ 800e4ee:	f8a3 20d2 	strh.w	r2, [r3, #210]	; 0xd2
+ 800e4f2:	e60b      	b.n	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e4f4:	4b0e      	ldr	r3, [pc, #56]	; (800e530 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e4f6:	f893 2048 	ldrb.w	r2, [r3, #72]	; 0x48
+ 800e4fa:	b10a      	cbz	r2, 800e500 <LoRaMacMibSetRequestConfirm+0x4ac>
+ 800e4fc:	2a06      	cmp	r2, #6
+ 800e4fe:	d114      	bne.n	800e52a <LoRaMacMibSetRequestConfirm+0x4d6>
+ 800e500:	88a2      	ldrh	r2, [r4, #4]
+ 800e502:	f8a3 274c 	strh.w	r2, [r3, #1868]	; 0x74c
+ 800e506:	e601      	b.n	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e508:	4b09      	ldr	r3, [pc, #36]	; (800e530 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e50a:	f893 2048 	ldrb.w	r2, [r3, #72]	; 0x48
+ 800e50e:	b10a      	cbz	r2, 800e514 <LoRaMacMibSetRequestConfirm+0x4c0>
+ 800e510:	2a06      	cmp	r2, #6
+ 800e512:	d10a      	bne.n	800e52a <LoRaMacMibSetRequestConfirm+0x4d6>
+ 800e514:	6862      	ldr	r2, [r4, #4]
+ 800e516:	f8c3 2750 	str.w	r2, [r3, #1872]	; 0x750
+ 800e51a:	e5f7      	b.n	800e10c <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e51c:	b002      	add	sp, #8
+ 800e51e:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
+ 800e522:	f000 bb57 	b.w	800ebd4 <LoRaMacMibClassBSetRequestConfirm>
+ 800e526:	2001      	movs	r0, #1
+ 800e528:	e5f8      	b.n	800e11c <LoRaMacMibSetRequestConfirm+0xc8>
+ 800e52a:	2018      	movs	r0, #24
+ 800e52c:	e5f6      	b.n	800e11c <LoRaMacMibSetRequestConfirm+0xc8>
+ 800e52e:	bf00      	nop
+ 800e530:	20001864 	.word	0x20001864
+ 800e534:	200010f4 	.word	0x200010f4
+ 800e538:	08015784 	.word	0x08015784
+
+0800e53c <LoRaMacMlmeRequest>:
+ 800e53c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800e540:	b086      	sub	sp, #24
+ 800e542:	2300      	movs	r3, #0
+ 800e544:	f8ad 3000 	strh.w	r3, [sp]
+ 800e548:	4606      	mov	r6, r0
+ 800e54a:	2800      	cmp	r0, #0
+ 800e54c:	f000 80e2 	beq.w	800e714 <LoRaMacMlmeRequest+0x1d8>
+ 800e550:	f7fe fd7e 	bl	800d050 <LoRaMacIsBusy>
+ 800e554:	b120      	cbz	r0, 800e560 <LoRaMacMlmeRequest+0x24>
+ 800e556:	2401      	movs	r4, #1
+ 800e558:	4620      	mov	r0, r4
+ 800e55a:	b006      	add	sp, #24
+ 800e55c:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800e560:	f000 fd2c 	bl	800efbc <LoRaMacConfirmQueueIsFull>
+ 800e564:	2800      	cmp	r0, #0
+ 800e566:	d1f6      	bne.n	800e556 <LoRaMacMlmeRequest+0x1a>
+ 800e568:	f000 fd22 	bl	800efb0 <LoRaMacConfirmQueueGetCnt>
+ 800e56c:	4601      	mov	r1, r0
+ 800e56e:	b918      	cbnz	r0, 800e578 <LoRaMacMlmeRequest+0x3c>
+ 800e570:	4869      	ldr	r0, [pc, #420]	; (800e718 <LoRaMacMlmeRequest+0x1dc>)
+ 800e572:	2214      	movs	r2, #20
+ 800e574:	f003 f94a 	bl	801180c <memset1>
+ 800e578:	4d68      	ldr	r5, [pc, #416]	; (800e71c <LoRaMacMlmeRequest+0x1e0>)
+ 800e57a:	f895 3481 	ldrb.w	r3, [r5, #1153]	; 0x481
+ 800e57e:	2201      	movs	r2, #1
+ 800e580:	f043 0304 	orr.w	r3, r3, #4
+ 800e584:	f885 2449 	strb.w	r2, [r5, #1097]	; 0x449
+ 800e588:	f885 3481 	strb.w	r3, [r5, #1153]	; 0x481
+ 800e58c:	7833      	ldrb	r3, [r6, #0]
+ 800e58e:	f88d 3004 	strb.w	r3, [sp, #4]
+ 800e592:	2100      	movs	r1, #0
+ 800e594:	3b01      	subs	r3, #1
+ 800e596:	f88d 2005 	strb.w	r2, [sp, #5]
+ 800e59a:	f88d 1007 	strb.w	r1, [sp, #7]
+ 800e59e:	2b0d      	cmp	r3, #13
+ 800e5a0:	f200 80b0 	bhi.w	800e704 <LoRaMacMlmeRequest+0x1c8>
+ 800e5a4:	e8df f003 	tbb	[pc, r3]
+ 800e5a8:	aeaeae07 	.word	0xaeaeae07
+ 800e5ac:	ae7d5a52 	.word	0xae7d5a52
+ 800e5b0:	a2ae85ae 	.word	0xa2ae85ae
+ 800e5b4:	9e8f      	.short	0x9e8f
+ 800e5b6:	f8d5 4340 	ldr.w	r4, [r5, #832]	; 0x340
+ 800e5ba:	f014 0420 	ands.w	r4, r4, #32
+ 800e5be:	d1ca      	bne.n	800e556 <LoRaMacMlmeRequest+0x1a>
+ 800e5c0:	f8df 815c 	ldr.w	r8, [pc, #348]	; 800e720 <LoRaMacMlmeRequest+0x1e4>
+ 800e5c4:	4f57      	ldr	r7, [pc, #348]	; (800e724 <LoRaMacMlmeRequest+0x1e8>)
+ 800e5c6:	f7fe f8b7 	bl	800c738 <ResetMacParameters.constprop.0>
+ 800e5ca:	4622      	mov	r2, r4
+ 800e5cc:	f996 1005 	ldrsb.w	r1, [r6, #5]
+ 800e5d0:	f898 0048 	ldrb.w	r0, [r8, #72]	; 0x48
+ 800e5d4:	f001 f9e5 	bl	800f9a2 <RegionAlternateDr>
+ 800e5d8:	f888 0039 	strb.w	r0, [r8, #57]	; 0x39
+ 800e5dc:	79b3      	ldrb	r3, [r6, #6]
+ 800e5de:	f888 3038 	strb.w	r3, [r8, #56]	; 0x38
+ 800e5e2:	4620      	mov	r0, r4
+ 800e5e4:	2307      	movs	r3, #7
+ 800e5e6:	f88d 3005 	strb.w	r3, [sp, #5]
+ 800e5ea:	f7fe f837 	bl	800c65c <SwitchClass>
+ 800e5ee:	23ff      	movs	r3, #255	; 0xff
+ 800e5f0:	f507 7086 	add.w	r0, r7, #268	; 0x10c
+ 800e5f4:	f8a5 310c 	strh.w	r3, [r5, #268]	; 0x10c
+ 800e5f8:	f885 4104 	strb.w	r4, [r5, #260]	; 0x104
+ 800e5fc:	f8c5 7108 	str.w	r7, [r5, #264]	; 0x108
+ 800e600:	f003 f81a 	bl	8011638 <SecureElementGetJoinEui>
+ 800e604:	f507 708a 	add.w	r0, r7, #276	; 0x114
+ 800e608:	f002 ffd0 	bl	80115ac <SecureElementGetDevEui>
+ 800e60c:	4620      	mov	r0, r4
+ 800e60e:	f7fd fe7f 	bl	800c310 <ScheduleTx>
+ 800e612:	4604      	mov	r4, r0
+ 800e614:	b140      	cbz	r0, 800e628 <LoRaMacMlmeRequest+0xec>
+ 800e616:	f996 1005 	ldrsb.w	r1, [r6, #5]
+ 800e61a:	f898 0048 	ldrb.w	r0, [r8, #72]	; 0x48
+ 800e61e:	2201      	movs	r2, #1
+ 800e620:	f001 f9bf 	bl	800f9a2 <RegionAlternateDr>
+ 800e624:	f888 0039 	strb.w	r0, [r8, #57]	; 0x39
+ 800e628:	f8d5 3484 	ldr.w	r3, [r5, #1156]	; 0x484
+ 800e62c:	6133      	str	r3, [r6, #16]
+ 800e62e:	2c00      	cmp	r4, #0
+ 800e630:	d06c      	beq.n	800e70c <LoRaMacMlmeRequest+0x1d0>
+ 800e632:	f000 fcbd 	bl	800efb0 <LoRaMacConfirmQueueGetCnt>
+ 800e636:	2800      	cmp	r0, #0
+ 800e638:	d18e      	bne.n	800e558 <LoRaMacMlmeRequest+0x1c>
+ 800e63a:	f895 3481 	ldrb.w	r3, [r5, #1153]	; 0x481
+ 800e63e:	f885 0410 	strb.w	r0, [r5, #1040]	; 0x410
+ 800e642:	f360 0382 	bfi	r3, r0, #2, #1
+ 800e646:	f885 3481 	strb.w	r3, [r5, #1153]	; 0x481
+ 800e64a:	e785      	b.n	800e558 <LoRaMacMlmeRequest+0x1c>
+ 800e64c:	2200      	movs	r2, #0
+ 800e64e:	4669      	mov	r1, sp
+ 800e650:	2002      	movs	r0, #2
+ 800e652:	f000 fadb 	bl	800ec0c <LoRaMacCommandsAddCmd>
+ 800e656:	b310      	cbz	r0, 800e69e <LoRaMacMlmeRequest+0x162>
+ 800e658:	2413      	movs	r4, #19
+ 800e65a:	e7e5      	b.n	800e628 <LoRaMacMlmeRequest+0xec>
+ 800e65c:	f895 3411 	ldrb.w	r3, [r5, #1041]	; 0x411
+ 800e660:	f88d 3008 	strb.w	r3, [sp, #8]
+ 800e664:	4b2e      	ldr	r3, [pc, #184]	; (800e720 <LoRaMacMlmeRequest+0x1e4>)
+ 800e666:	88b2      	ldrh	r2, [r6, #4]
+ 800e668:	f893 1039 	ldrb.w	r1, [r3, #57]	; 0x39
+ 800e66c:	f88d 1009 	strb.w	r1, [sp, #9]
+ 800e670:	f893 1038 	ldrb.w	r1, [r3, #56]	; 0x38
+ 800e674:	f88d 100a 	strb.w	r1, [sp, #10]
+ 800e678:	f8d3 1080 	ldr.w	r1, [r3, #128]	; 0x80
+ 800e67c:	9103      	str	r1, [sp, #12]
+ 800e67e:	f8d3 1084 	ldr.w	r1, [r3, #132]	; 0x84
+ 800e682:	9104      	str	r1, [sp, #16]
+ 800e684:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 800e688:	f8ad 2014 	strh.w	r2, [sp, #20]
+ 800e68c:	a902      	add	r1, sp, #8
+ 800e68e:	f001 f99d 	bl	800f9cc <RegionSetContinuousWave>
+ 800e692:	f8d5 3340 	ldr.w	r3, [r5, #832]	; 0x340
+ 800e696:	f043 0302 	orr.w	r3, r3, #2
+ 800e69a:	f8c5 3340 	str.w	r3, [r5, #832]	; 0x340
+ 800e69e:	2400      	movs	r4, #0
+ 800e6a0:	e7c2      	b.n	800e628 <LoRaMacMlmeRequest+0xec>
+ 800e6a2:	4b21      	ldr	r3, [pc, #132]	; (800e728 <LoRaMacMlmeRequest+0x1ec>)
+ 800e6a4:	88b2      	ldrh	r2, [r6, #4]
+ 800e6a6:	f996 100c 	ldrsb.w	r1, [r6, #12]
+ 800e6aa:	68b0      	ldr	r0, [r6, #8]
+ 800e6ac:	6bdb      	ldr	r3, [r3, #60]	; 0x3c
+ 800e6ae:	4798      	blx	r3
+ 800e6b0:	e7ef      	b.n	800e692 <LoRaMacMlmeRequest+0x156>
+ 800e6b2:	a902      	add	r1, sp, #8
+ 800e6b4:	200d      	movs	r0, #13
+ 800e6b6:	f000 fb27 	bl	800ed08 <LoRaMacCommandsGetCmd>
+ 800e6ba:	2800      	cmp	r0, #0
+ 800e6bc:	d0ef      	beq.n	800e69e <LoRaMacMlmeRequest+0x162>
+ 800e6be:	2200      	movs	r2, #0
+ 800e6c0:	4669      	mov	r1, sp
+ 800e6c2:	200d      	movs	r0, #13
+ 800e6c4:	e7c5      	b.n	800e652 <LoRaMacMlmeRequest+0x116>
+ 800e6c6:	4b16      	ldr	r3, [pc, #88]	; (800e720 <LoRaMacMlmeRequest+0x1e4>)
+ 800e6c8:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 800e6cc:	b9d3      	cbnz	r3, 800e704 <LoRaMacMlmeRequest+0x1c8>
+ 800e6ce:	7934      	ldrb	r4, [r6, #4]
+ 800e6d0:	f004 0007 	and.w	r0, r4, #7
+ 800e6d4:	f000 fa77 	bl	800ebc6 <LoRaMacClassBSetPingSlotInfo>
+ 800e6d8:	f88d 4000 	strb.w	r4, [sp]
+ 800e6dc:	2201      	movs	r2, #1
+ 800e6de:	4669      	mov	r1, sp
+ 800e6e0:	2010      	movs	r0, #16
+ 800e6e2:	e7b6      	b.n	800e652 <LoRaMacMlmeRequest+0x116>
+ 800e6e4:	2200      	movs	r2, #0
+ 800e6e6:	4669      	mov	r1, sp
+ 800e6e8:	2012      	movs	r0, #18
+ 800e6ea:	e7b2      	b.n	800e652 <LoRaMacMlmeRequest+0x116>
+ 800e6ec:	f88d 2007 	strb.w	r2, [sp, #7]
+ 800e6f0:	f000 fa5a 	bl	800eba8 <LoRaMacClassBIsAcquisitionInProgress>
+ 800e6f4:	4604      	mov	r4, r0
+ 800e6f6:	b938      	cbnz	r0, 800e708 <LoRaMacMlmeRequest+0x1cc>
+ 800e6f8:	f000 fa53 	bl	800eba2 <LoRaMacClassBSetBeaconState>
+ 800e6fc:	4620      	mov	r0, r4
+ 800e6fe:	f000 fa55 	bl	800ebac <LoRaMacClassBBeaconTimerEvent>
+ 800e702:	e791      	b.n	800e628 <LoRaMacMlmeRequest+0xec>
+ 800e704:	2402      	movs	r4, #2
+ 800e706:	e78f      	b.n	800e628 <LoRaMacMlmeRequest+0xec>
+ 800e708:	2401      	movs	r4, #1
+ 800e70a:	e78d      	b.n	800e628 <LoRaMacMlmeRequest+0xec>
+ 800e70c:	a801      	add	r0, sp, #4
+ 800e70e:	f000 fba1 	bl	800ee54 <LoRaMacConfirmQueueAdd>
+ 800e712:	e721      	b.n	800e558 <LoRaMacMlmeRequest+0x1c>
+ 800e714:	2403      	movs	r4, #3
+ 800e716:	e71f      	b.n	800e558 <LoRaMacMlmeRequest+0x1c>
+ 800e718:	20002420 	.word	0x20002420
+ 800e71c:	20001fd8 	.word	0x20001fd8
+ 800e720:	20001864 	.word	0x20001864
+ 800e724:	20001fda 	.word	0x20001fda
+ 800e728:	08015784 	.word	0x08015784
+
+0800e72c <LoRaMacMcpsRequest>:
+ 800e72c:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 800e730:	b091      	sub	sp, #68	; 0x44
+ 800e732:	2600      	movs	r6, #0
+ 800e734:	9103      	str	r1, [sp, #12]
+ 800e736:	4605      	mov	r5, r0
+ 800e738:	b918      	cbnz	r0, 800e742 <LoRaMacMcpsRequest+0x16>
+ 800e73a:	2003      	movs	r0, #3
+ 800e73c:	b011      	add	sp, #68	; 0x44
+ 800e73e:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 800e742:	f7fe fc85 	bl	800d050 <LoRaMacIsBusy>
+ 800e746:	4682      	mov	sl, r0
+ 800e748:	2800      	cmp	r0, #0
+ 800e74a:	f040 8164 	bne.w	800ea16 <LoRaMacMcpsRequest+0x2ea>
+ 800e74e:	4cb8      	ldr	r4, [pc, #736]	; (800ea30 <LoRaMacMcpsRequest+0x304>)
+ 800e750:	2214      	movs	r2, #20
+ 800e752:	4601      	mov	r1, r0
+ 800e754:	4607      	mov	r7, r0
+ 800e756:	f204 4034 	addw	r0, r4, #1076	; 0x434
+ 800e75a:	f003 f857 	bl	801180c <memset1>
+ 800e75e:	2301      	movs	r3, #1
+ 800e760:	f884 3435 	strb.w	r3, [r4, #1077]	; 0x435
+ 800e764:	f884 340e 	strb.w	r3, [r4, #1038]	; 0x40e
+ 800e768:	782a      	ldrb	r2, [r5, #0]
+ 800e76a:	429a      	cmp	r2, r3
+ 800e76c:	f000 80b0 	beq.w	800e8d0 <LoRaMacMcpsRequest+0x1a4>
+ 800e770:	2a03      	cmp	r2, #3
+ 800e772:	f000 80bf 	beq.w	800e8f4 <LoRaMacMcpsRequest+0x1c8>
+ 800e776:	2a00      	cmp	r2, #0
+ 800e778:	f040 80c9 	bne.w	800e90e <LoRaMacMcpsRequest+0x1e2>
+ 800e77c:	f884 340d 	strb.w	r3, [r4, #1037]	; 0x40d
+ 800e780:	2202      	movs	r2, #2
+ 800e782:	f895 9004 	ldrb.w	r9, [r5, #4]
+ 800e786:	f8d5 8008 	ldr.w	r8, [r5, #8]
+ 800e78a:	89ae      	ldrh	r6, [r5, #12]
+ 800e78c:	f995 b00e 	ldrsb.w	fp, [r5, #14]
+ 800e790:	f362 1747 	bfi	r7, r2, #5, #3
+ 800e794:	469a      	mov	sl, r3
+ 800e796:	4ba7      	ldr	r3, [pc, #668]	; (800ea34 <LoRaMacMcpsRequest+0x308>)
+ 800e798:	2402      	movs	r4, #2
+ 800e79a:	f893 207c 	ldrb.w	r2, [r3, #124]	; 0x7c
+ 800e79e:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 800e7a2:	f88d 4024 	strb.w	r4, [sp, #36]	; 0x24
+ 800e7a6:	a909      	add	r1, sp, #36	; 0x24
+ 800e7a8:	f88d 2026 	strb.w	r2, [sp, #38]	; 0x26
+ 800e7ac:	f001 f88c 	bl	800f8c8 <RegionGetPhyParam>
+ 800e7b0:	f1ba 0f00 	cmp.w	sl, #0
+ 800e7b4:	f000 812d 	beq.w	800ea12 <LoRaMacMcpsRequest+0x2e6>
+ 800e7b8:	4b9e      	ldr	r3, [pc, #632]	; (800ea34 <LoRaMacMcpsRequest+0x308>)
+ 800e7ba:	f893 211a 	ldrb.w	r2, [r3, #282]	; 0x11a
+ 800e7be:	b9b2      	cbnz	r2, 800e7ee <LoRaMacMcpsRequest+0xc2>
+ 800e7c0:	b240      	sxtb	r0, r0
+ 800e7c2:	4558      	cmp	r0, fp
+ 800e7c4:	bfb8      	it	lt
+ 800e7c6:	4658      	movlt	r0, fp
+ 800e7c8:	f893 207c 	ldrb.w	r2, [r3, #124]	; 0x7c
+ 800e7cc:	f88d 0014 	strb.w	r0, [sp, #20]
+ 800e7d0:	f88d 2016 	strb.w	r2, [sp, #22]
+ 800e7d4:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 800e7d8:	2205      	movs	r2, #5
+ 800e7da:	a905      	add	r1, sp, #20
+ 800e7dc:	f001 f887 	bl	800f8ee <RegionVerify>
+ 800e7e0:	2800      	cmp	r0, #0
+ 800e7e2:	d0aa      	beq.n	800e73a <LoRaMacMcpsRequest+0xe>
+ 800e7e4:	4b93      	ldr	r3, [pc, #588]	; (800ea34 <LoRaMacMcpsRequest+0x308>)
+ 800e7e6:	f89d 2014 	ldrb.w	r2, [sp, #20]
+ 800e7ea:	f883 2039 	strb.w	r2, [r3, #57]	; 0x39
+ 800e7ee:	8f19      	ldrh	r1, [r3, #56]	; 0x38
+ 800e7f0:	8f1a      	ldrh	r2, [r3, #56]	; 0x38
+ 800e7f2:	f893 012c 	ldrb.w	r0, [r3, #300]	; 0x12c
+ 800e7f6:	9102      	str	r1, [sp, #8]
+ 800e7f8:	6a99      	ldr	r1, [r3, #40]	; 0x28
+ 800e7fa:	9106      	str	r1, [sp, #24]
+ 800e7fc:	ba52      	rev16	r2, r2
+ 800e7fe:	2800      	cmp	r0, #0
+ 800e800:	f000 8105 	beq.w	800ea0e <LoRaMacMcpsRequest+0x2e2>
+ 800e804:	f893 011b 	ldrb.w	r0, [r3, #283]	; 0x11b
+ 800e808:	b900      	cbnz	r0, 800e80c <LoRaMacMcpsRequest+0xe0>
+ 800e80a:	6318      	str	r0, [r3, #48]	; 0x30
+ 800e80c:	f893 0118 	ldrb.w	r0, [r3, #280]	; 0x118
+ 800e810:	f8ad 203c 	strh.w	r2, [sp, #60]	; 0x3c
+ 800e814:	3801      	subs	r0, #1
+ 800e816:	f893 207c 	ldrb.w	r2, [r3, #124]	; 0x7c
+ 800e81a:	f88d 203e 	strb.w	r2, [sp, #62]	; 0x3e
+ 800e81e:	f1d0 0b00 	rsbs	fp, r0, #0
+ 800e822:	f893 2048 	ldrb.w	r2, [r3, #72]	; 0x48
+ 800e826:	f88d 203f 	strb.w	r2, [sp, #63]	; 0x3f
+ 800e82a:	eb4b 0b00 	adc.w	fp, fp, r0
+ 800e82e:	4a82      	ldr	r2, [pc, #520]	; (800ea38 <LoRaMacMcpsRequest+0x30c>)
+ 800e830:	f893 003a 	ldrb.w	r0, [r3, #58]	; 0x3a
+ 800e834:	f893 411a 	ldrb.w	r4, [r3, #282]	; 0x11a
+ 800e838:	9001      	str	r0, [sp, #4]
+ 800e83a:	910d      	str	r1, [sp, #52]	; 0x34
+ 800e83c:	f04f 0001 	mov.w	r0, #1
+ 800e840:	f8d3 1088 	ldr.w	r1, [r3, #136]	; 0x88
+ 800e844:	f8d3 3128 	ldr.w	r3, [r3, #296]	; 0x128
+ 800e848:	f88d 0030 	strb.w	r0, [sp, #48]	; 0x30
+ 800e84c:	910e      	str	r1, [sp, #56]	; 0x38
+ 800e84e:	930b      	str	r3, [sp, #44]	; 0x2c
+ 800e850:	1c51      	adds	r1, r2, #1
+ 800e852:	ab06      	add	r3, sp, #24
+ 800e854:	a80b      	add	r0, sp, #44	; 0x2c
+ 800e856:	f88d 4031 	strb.w	r4, [sp, #49]	; 0x31
+ 800e85a:	f000 f933 	bl	800eac4 <LoRaMacAdrCalcNext>
+ 800e85e:	9b01      	ldr	r3, [sp, #4]
+ 800e860:	ea4f 1b0b 	mov.w	fp, fp, lsl #4
+ 800e864:	ea4b 1b43 	orr.w	fp, fp, r3, lsl #5
+ 800e868:	f04f 0a00 	mov.w	sl, #0
+ 800e86c:	ea4b 1b80 	orr.w	fp, fp, r0, lsl #6
+ 800e870:	ea4b 13c4 	orr.w	r3, fp, r4, lsl #7
+ 800e874:	45d0      	cmp	r8, sl
+ 800e876:	4c6e      	ldr	r4, [pc, #440]	; (800ea30 <LoRaMacMcpsRequest+0x304>)
+ 800e878:	9301      	str	r3, [sp, #4]
+ 800e87a:	bf08      	it	eq
+ 800e87c:	4656      	moveq	r6, sl
+ 800e87e:	4632      	mov	r2, r6
+ 800e880:	4641      	mov	r1, r8
+ 800e882:	f504 709c 	add.w	r0, r4, #312	; 0x138
+ 800e886:	469b      	mov	fp, r3
+ 800e888:	e9cd aa07 	strd	sl, sl, [sp, #28]
+ 800e88c:	f8a4 a000 	strh.w	sl, [r4]
+ 800e890:	f884 a410 	strb.w	sl, [r4, #1040]	; 0x410
+ 800e894:	f002 ffa6 	bl	80117e4 <memcpy1>
+ 800e898:	b2f9      	uxtb	r1, r7
+ 800e89a:	70a7      	strb	r7, [r4, #2]
+ 800e89c:	f3c7 1742 	ubfx	r7, r7, #5, #3
+ 800e8a0:	b2f2      	uxtb	r2, r6
+ 800e8a2:	2f04      	cmp	r7, #4
+ 800e8a4:	4e63      	ldr	r6, [pc, #396]	; (800ea34 <LoRaMacMcpsRequest+0x308>)
+ 800e8a6:	9b01      	ldr	r3, [sp, #4]
+ 800e8a8:	f884 2237 	strb.w	r2, [r4, #567]	; 0x237
+ 800e8ac:	d033      	beq.n	800e916 <LoRaMacMcpsRequest+0x1ea>
+ 800e8ae:	2f07      	cmp	r7, #7
+ 800e8b0:	f000 809d 	beq.w	800e9ee <LoRaMacMcpsRequest+0x2c2>
+ 800e8b4:	2f02      	cmp	r7, #2
+ 800e8b6:	d032      	beq.n	800e91e <LoRaMacMcpsRequest+0x1f2>
+ 800e8b8:	2002      	movs	r0, #2
+ 800e8ba:	9b02      	ldr	r3, [sp, #8]
+ 800e8bc:	8733      	strh	r3, [r6, #56]	; 0x38
+ 800e8be:	4b5c      	ldr	r3, [pc, #368]	; (800ea30 <LoRaMacMcpsRequest+0x304>)
+ 800e8c0:	2200      	movs	r2, #0
+ 800e8c2:	f883 2410 	strb.w	r2, [r3, #1040]	; 0x410
+ 800e8c6:	4b5a      	ldr	r3, [pc, #360]	; (800ea30 <LoRaMacMcpsRequest+0x304>)
+ 800e8c8:	f8d3 3484 	ldr.w	r3, [r3, #1156]	; 0x484
+ 800e8cc:	612b      	str	r3, [r5, #16]
+ 800e8ce:	e735      	b.n	800e73c <LoRaMacMcpsRequest+0x10>
+ 800e8d0:	7beb      	ldrb	r3, [r5, #15]
+ 800e8d2:	2b08      	cmp	r3, #8
+ 800e8d4:	bf28      	it	cs
+ 800e8d6:	2308      	movcs	r3, #8
+ 800e8d8:	f884 340d 	strb.w	r3, [r4, #1037]	; 0x40d
+ 800e8dc:	2304      	movs	r3, #4
+ 800e8de:	f895 9004 	ldrb.w	r9, [r5, #4]
+ 800e8e2:	f8d5 8008 	ldr.w	r8, [r5, #8]
+ 800e8e6:	89ae      	ldrh	r6, [r5, #12]
+ 800e8e8:	f995 b00e 	ldrsb.w	fp, [r5, #14]
+ 800e8ec:	f363 1747 	bfi	r7, r3, #5, #3
+ 800e8f0:	4692      	mov	sl, r2
+ 800e8f2:	e750      	b.n	800e796 <LoRaMacMcpsRequest+0x6a>
+ 800e8f4:	f884 340d 	strb.w	r3, [r4, #1037]	; 0x40d
+ 800e8f8:	f8d5 8004 	ldr.w	r8, [r5, #4]
+ 800e8fc:	892e      	ldrh	r6, [r5, #8]
+ 800e8fe:	f995 b00a 	ldrsb.w	fp, [r5, #10]
+ 800e902:	f067 071f 	orn	r7, r7, #31
+ 800e906:	469a      	mov	sl, r3
+ 800e908:	f04f 0900 	mov.w	r9, #0
+ 800e90c:	e743      	b.n	800e796 <LoRaMacMcpsRequest+0x6a>
+ 800e90e:	46d3      	mov	fp, sl
+ 800e910:	46d0      	mov	r8, sl
+ 800e912:	46d1      	mov	r9, sl
+ 800e914:	e73f      	b.n	800e796 <LoRaMacMcpsRequest+0x6a>
+ 800e916:	f04f 0001 	mov.w	r0, #1
+ 800e91a:	f884 0410 	strb.w	r0, [r4, #1040]	; 0x410
+ 800e91e:	4f47      	ldr	r7, [pc, #284]	; (800ea3c <LoRaMacMcpsRequest+0x310>)
+ 800e920:	f884 110d 	strb.w	r1, [r4, #269]	; 0x10d
+ 800e924:	2004      	movs	r0, #4
+ 800e926:	f884 0104 	strb.w	r0, [r4, #260]	; 0x104
+ 800e92a:	20ff      	movs	r0, #255	; 0xff
+ 800e92c:	f8d6 10e4 	ldr.w	r1, [r6, #228]	; 0xe4
+ 800e930:	f884 010c 	strb.w	r0, [r4, #268]	; 0x10c
+ 800e934:	f884 3114 	strb.w	r3, [r4, #276]	; 0x114
+ 800e938:	a807      	add	r0, sp, #28
+ 800e93a:	f507 739b 	add.w	r3, r7, #310	; 0x136
+ 800e93e:	f8c4 7108 	str.w	r7, [r4, #264]	; 0x108
+ 800e942:	f884 9128 	strb.w	r9, [r4, #296]	; 0x128
+ 800e946:	f8c4 1110 	str.w	r1, [r4, #272]	; 0x110
+ 800e94a:	f884 2130 	strb.w	r2, [r4, #304]	; 0x130
+ 800e94e:	f8c4 312c 	str.w	r3, [r4, #300]	; 0x12c
+ 800e952:	f000 fc43 	bl	800f1dc <LoRaMacCryptoGetFCntUp>
+ 800e956:	2800      	cmp	r0, #0
+ 800e958:	d157      	bne.n	800ea0a <LoRaMacMcpsRequest+0x2de>
+ 800e95a:	9b07      	ldr	r3, [sp, #28]
+ 800e95c:	f8a4 0438 	strh.w	r0, [r4, #1080]	; 0x438
+ 800e960:	a808      	add	r0, sp, #32
+ 800e962:	f8a4 3116 	strh.w	r3, [r4, #278]	; 0x116
+ 800e966:	f8c4 3440 	str.w	r3, [r4, #1088]	; 0x440
+ 800e96a:	f000 f9fb 	bl	800ed64 <LoRaMacCommandsGetSizeSerializedCmds>
+ 800e96e:	bb60      	cbnz	r0, 800e9ca <LoRaMacMcpsRequest+0x29e>
+ 800e970:	9b08      	ldr	r3, [sp, #32]
+ 800e972:	b1ab      	cbz	r3, 800e9a0 <LoRaMacMcpsRequest+0x274>
+ 800e974:	f996 0039 	ldrsb.w	r0, [r6, #57]	; 0x39
+ 800e978:	f7fd fba0 	bl	800c0bc <GetMaxAppPayloadWithoutFOptsLength>
+ 800e97c:	f894 3237 	ldrb.w	r3, [r4, #567]	; 0x237
+ 800e980:	b32b      	cbz	r3, 800e9ce <LoRaMacMcpsRequest+0x2a2>
+ 800e982:	9b08      	ldr	r3, [sp, #32]
+ 800e984:	2b0f      	cmp	r3, #15
+ 800e986:	d819      	bhi.n	800e9bc <LoRaMacMcpsRequest+0x290>
+ 800e988:	f507 728b 	add.w	r2, r7, #278	; 0x116
+ 800e98c:	a908      	add	r1, sp, #32
+ 800e98e:	200f      	movs	r0, #15
+ 800e990:	f000 f9f4 	bl	800ed7c <LoRaMacCommandsSerializeCmds>
+ 800e994:	b9c8      	cbnz	r0, 800e9ca <LoRaMacMcpsRequest+0x29e>
+ 800e996:	9b08      	ldr	r3, [sp, #32]
+ 800e998:	f363 0b03 	bfi	fp, r3, #0, #4
+ 800e99c:	f884 b114 	strb.w	fp, [r4, #276]	; 0x114
+ 800e9a0:	9803      	ldr	r0, [sp, #12]
+ 800e9a2:	f7fd fcb5 	bl	800c310 <ScheduleTx>
+ 800e9a6:	2800      	cmp	r0, #0
+ 800e9a8:	d187      	bne.n	800e8ba <LoRaMacMcpsRequest+0x18e>
+ 800e9aa:	9b06      	ldr	r3, [sp, #24]
+ 800e9ac:	f886 003a 	strb.w	r0, [r6, #58]	; 0x3a
+ 800e9b0:	62b3      	str	r3, [r6, #40]	; 0x28
+ 800e9b2:	f000 f9b7 	bl	800ed24 <LoRaMacCommandsRemoveNoneStickyCmds>
+ 800e9b6:	b380      	cbz	r0, 800ea1a <LoRaMacMcpsRequest+0x2ee>
+ 800e9b8:	2013      	movs	r0, #19
+ 800e9ba:	e780      	b.n	800e8be <LoRaMacMcpsRequest+0x192>
+ 800e9bc:	f207 4286 	addw	r2, r7, #1158	; 0x486
+ 800e9c0:	a908      	add	r1, sp, #32
+ 800e9c2:	f000 f9db 	bl	800ed7c <LoRaMacCommandsSerializeCmds>
+ 800e9c6:	2800      	cmp	r0, #0
+ 800e9c8:	d0ea      	beq.n	800e9a0 <LoRaMacMcpsRequest+0x274>
+ 800e9ca:	2013      	movs	r0, #19
+ 800e9cc:	e775      	b.n	800e8ba <LoRaMacMcpsRequest+0x18e>
+ 800e9ce:	f207 4786 	addw	r7, r7, #1158	; 0x486
+ 800e9d2:	463a      	mov	r2, r7
+ 800e9d4:	a908      	add	r1, sp, #32
+ 800e9d6:	f000 f9d1 	bl	800ed7c <LoRaMacCommandsSerializeCmds>
+ 800e9da:	2800      	cmp	r0, #0
+ 800e9dc:	d1f5      	bne.n	800e9ca <LoRaMacMcpsRequest+0x29e>
+ 800e9de:	9b08      	ldr	r3, [sp, #32]
+ 800e9e0:	f884 0128 	strb.w	r0, [r4, #296]	; 0x128
+ 800e9e4:	f8c4 712c 	str.w	r7, [r4, #300]	; 0x12c
+ 800e9e8:	f884 3130 	strb.w	r3, [r4, #304]	; 0x130
+ 800e9ec:	e7d8      	b.n	800e9a0 <LoRaMacMcpsRequest+0x274>
+ 800e9ee:	f1b8 0f00 	cmp.w	r8, #0
+ 800e9f2:	d0d5      	beq.n	800e9a0 <LoRaMacMcpsRequest+0x274>
+ 800e9f4:	2a00      	cmp	r2, #0
+ 800e9f6:	d0d3      	beq.n	800e9a0 <LoRaMacMcpsRequest+0x274>
+ 800e9f8:	4641      	mov	r1, r8
+ 800e9fa:	1ce0      	adds	r0, r4, #3
+ 800e9fc:	f002 fef2 	bl	80117e4 <memcpy1>
+ 800ea00:	f894 3237 	ldrb.w	r3, [r4, #567]	; 0x237
+ 800ea04:	3301      	adds	r3, #1
+ 800ea06:	8023      	strh	r3, [r4, #0]
+ 800ea08:	e7ca      	b.n	800e9a0 <LoRaMacMcpsRequest+0x274>
+ 800ea0a:	2012      	movs	r0, #18
+ 800ea0c:	e755      	b.n	800e8ba <LoRaMacMcpsRequest+0x18e>
+ 800ea0e:	2007      	movs	r0, #7
+ 800ea10:	e755      	b.n	800e8be <LoRaMacMcpsRequest+0x192>
+ 800ea12:	4620      	mov	r0, r4
+ 800ea14:	e757      	b.n	800e8c6 <LoRaMacMcpsRequest+0x19a>
+ 800ea16:	2001      	movs	r0, #1
+ 800ea18:	e690      	b.n	800e73c <LoRaMacMcpsRequest+0x10>
+ 800ea1a:	782b      	ldrb	r3, [r5, #0]
+ 800ea1c:	f884 3434 	strb.w	r3, [r4, #1076]	; 0x434
+ 800ea20:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800ea24:	f043 0301 	orr.w	r3, r3, #1
+ 800ea28:	f884 3481 	strb.w	r3, [r4, #1153]	; 0x481
+ 800ea2c:	e74b      	b.n	800e8c6 <LoRaMacMcpsRequest+0x19a>
+ 800ea2e:	bf00      	nop
+ 800ea30:	20001fd8 	.word	0x20001fd8
+ 800ea34:	20001864 	.word	0x20001864
+ 800ea38:	2000189c 	.word	0x2000189c
+ 800ea3c:	20001fda 	.word	0x20001fda
+
+0800ea40 <LoRaMacTestSetDutyCycleOn>:
+ 800ea40:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 800ea42:	4d0b      	ldr	r5, [pc, #44]	; (800ea70 <LoRaMacTestSetDutyCycleOn+0x30>)
+ 800ea44:	f88d 0004 	strb.w	r0, [sp, #4]
+ 800ea48:	4604      	mov	r4, r0
+ 800ea4a:	220f      	movs	r2, #15
+ 800ea4c:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800ea50:	a901      	add	r1, sp, #4
+ 800ea52:	f000 ff4c 	bl	800f8ee <RegionVerify>
+ 800ea56:	b140      	cbz	r0, 800ea6a <LoRaMacTestSetDutyCycleOn+0x2a>
+ 800ea58:	4a06      	ldr	r2, [pc, #24]	; (800ea74 <LoRaMacTestSetDutyCycleOn+0x34>)
+ 800ea5a:	f885 411c 	strb.w	r4, [r5, #284]	; 0x11c
+ 800ea5e:	f892 3481 	ldrb.w	r3, [r2, #1153]	; 0x481
+ 800ea62:	f043 0320 	orr.w	r3, r3, #32
+ 800ea66:	f882 3481 	strb.w	r3, [r2, #1153]	; 0x481
+ 800ea6a:	b003      	add	sp, #12
+ 800ea6c:	bd30      	pop	{r4, r5, pc}
+ 800ea6e:	bf00      	nop
+ 800ea70:	20001864 	.word	0x20001864
+ 800ea74:	20001fd8 	.word	0x20001fd8
+
+0800ea78 <LoRaMacDeInitialization>:
+ 800ea78:	b510      	push	{r4, lr}
+ 800ea7a:	f7ff f933 	bl	800dce4 <LoRaMacStop>
+ 800ea7e:	4604      	mov	r4, r0
+ 800ea80:	b9a0      	cbnz	r0, 800eaac <LoRaMacDeInitialization+0x34>
+ 800ea82:	480b      	ldr	r0, [pc, #44]	; (800eab0 <LoRaMacDeInitialization+0x38>)
+ 800ea84:	f005 f9d2 	bl	8013e2c <UTIL_TIMER_Stop>
+ 800ea88:	480a      	ldr	r0, [pc, #40]	; (800eab4 <LoRaMacDeInitialization+0x3c>)
+ 800ea8a:	f005 f9cf 	bl	8013e2c <UTIL_TIMER_Stop>
+ 800ea8e:	480a      	ldr	r0, [pc, #40]	; (800eab8 <LoRaMacDeInitialization+0x40>)
+ 800ea90:	f005 f9cc 	bl	8013e2c <UTIL_TIMER_Stop>
+ 800ea94:	4809      	ldr	r0, [pc, #36]	; (800eabc <LoRaMacDeInitialization+0x44>)
+ 800ea96:	f005 f9c9 	bl	8013e2c <UTIL_TIMER_Stop>
+ 800ea9a:	f000 f895 	bl	800ebc8 <LoRaMacClassBHaltBeaconing>
+ 800ea9e:	f7fd fe4b 	bl	800c738 <ResetMacParameters.constprop.0>
+ 800eaa2:	4b07      	ldr	r3, [pc, #28]	; (800eac0 <LoRaMacDeInitialization+0x48>)
+ 800eaa4:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800eaa6:	4798      	blx	r3
+ 800eaa8:	4620      	mov	r0, r4
+ 800eaaa:	bd10      	pop	{r4, pc}
+ 800eaac:	2401      	movs	r4, #1
+ 800eaae:	e7fb      	b.n	800eaa8 <LoRaMacDeInitialization+0x30>
+ 800eab0:	20002340 	.word	0x20002340
+ 800eab4:	20002358 	.word	0x20002358
+ 800eab8:	20002370 	.word	0x20002370
+ 800eabc:	200023cc 	.word	0x200023cc
+ 800eac0:	08015784 	.word	0x08015784
+
+0800eac4 <LoRaMacAdrCalcNext>:
+ 800eac4:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 800eac8:	f890 9002 	ldrb.w	r9, [r0, #2]
+ 800eacc:	b08b      	sub	sp, #44	; 0x2c
+ 800eace:	4604      	mov	r4, r0
+ 800ead0:	468a      	mov	sl, r1
+ 800ead2:	9201      	str	r2, [sp, #4]
+ 800ead4:	f1b9 0f00 	cmp.w	r9, #0
+ 800ead8:	d160      	bne.n	800eb9c <LoRaMacAdrCalcNext+0xd8>
+ 800eada:	7945      	ldrb	r5, [r0, #5]
+ 800eadc:	6881      	ldr	r1, [r0, #8]
+ 800eade:	f990 2010 	ldrsb.w	r2, [r0, #16]
+ 800eae2:	f990 8011 	ldrsb.w	r8, [r0, #17]
+ 800eae6:	6019      	str	r1, [r3, #0]
+ 800eae8:	2d00      	cmp	r5, #0
+ 800eaea:	d055      	beq.n	800eb98 <LoRaMacAdrCalcNext+0xd4>
+ 800eaec:	7c81      	ldrb	r1, [r0, #18]
+ 800eaee:	f88d 1016 	strb.w	r1, [sp, #22]
+ 800eaf2:	7cc0      	ldrb	r0, [r0, #19]
+ 800eaf4:	f04f 0b02 	mov.w	fp, #2
+ 800eaf8:	a905      	add	r1, sp, #20
+ 800eafa:	e9cd 2302 	strd	r2, r3, [sp, #8]
+ 800eafe:	f88d b014 	strb.w	fp, [sp, #20]
+ 800eb02:	f000 fee1 	bl	800f8c8 <RegionGetPhyParam>
+ 800eb06:	9a02      	ldr	r2, [sp, #8]
+ 800eb08:	b247      	sxtb	r7, r0
+ 800eb0a:	42ba      	cmp	r2, r7
+ 800eb0c:	4616      	mov	r6, r2
+ 800eb0e:	bfb8      	it	lt
+ 800eb10:	463e      	movlt	r6, r7
+ 800eb12:	42ba      	cmp	r2, r7
+ 800eb14:	dc0c      	bgt.n	800eb30 <LoRaMacAdrCalcNext+0x6c>
+ 800eb16:	9b03      	ldr	r3, [sp, #12]
+ 800eb18:	f8c3 9000 	str.w	r9, [r3]
+ 800eb1c:	464d      	mov	r5, r9
+ 800eb1e:	9b01      	ldr	r3, [sp, #4]
+ 800eb20:	f88a 6000 	strb.w	r6, [sl]
+ 800eb24:	f883 8000 	strb.w	r8, [r3]
+ 800eb28:	4628      	mov	r0, r5
+ 800eb2a:	b00b      	add	sp, #44	; 0x2c
+ 800eb2c:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 800eb30:	68a2      	ldr	r2, [r4, #8]
+ 800eb32:	89a1      	ldrh	r1, [r4, #12]
+ 800eb34:	89e3      	ldrh	r3, [r4, #14]
+ 800eb36:	428a      	cmp	r2, r1
+ 800eb38:	440b      	add	r3, r1
+ 800eb3a:	bf34      	ite	cc
+ 800eb3c:	2500      	movcc	r5, #0
+ 800eb3e:	2501      	movcs	r5, #1
+ 800eb40:	429a      	cmp	r2, r3
+ 800eb42:	d3ec      	bcc.n	800eb1e <LoRaMacAdrCalcNext+0x5a>
+ 800eb44:	2308      	movs	r3, #8
+ 800eb46:	a905      	add	r1, sp, #20
+ 800eb48:	7ce0      	ldrb	r0, [r4, #19]
+ 800eb4a:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800eb4e:	f000 febb 	bl	800f8c8 <RegionGetPhyParam>
+ 800eb52:	89e2      	ldrh	r2, [r4, #14]
+ 800eb54:	68a3      	ldr	r3, [r4, #8]
+ 800eb56:	fbb3 f1f2 	udiv	r1, r3, r2
+ 800eb5a:	fb02 3311 	mls	r3, r2, r1, r3
+ 800eb5e:	2b01      	cmp	r3, #1
+ 800eb60:	fa4f f880 	sxtb.w	r8, r0
+ 800eb64:	d1db      	bne.n	800eb1e <LoRaMacAdrCalcNext+0x5a>
+ 800eb66:	2322      	movs	r3, #34	; 0x22
+ 800eb68:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800eb6c:	7ce0      	ldrb	r0, [r4, #19]
+ 800eb6e:	7ca3      	ldrb	r3, [r4, #18]
+ 800eb70:	f88d 6015 	strb.w	r6, [sp, #21]
+ 800eb74:	a905      	add	r1, sp, #20
+ 800eb76:	f88d 3016 	strb.w	r3, [sp, #22]
+ 800eb7a:	f000 fea5 	bl	800f8c8 <RegionGetPhyParam>
+ 800eb7e:	b246      	sxtb	r6, r0
+ 800eb80:	42b7      	cmp	r7, r6
+ 800eb82:	d1cc      	bne.n	800eb1e <LoRaMacAdrCalcNext+0x5a>
+ 800eb84:	7925      	ldrb	r5, [r4, #4]
+ 800eb86:	2d00      	cmp	r5, #0
+ 800eb88:	d0c9      	beq.n	800eb1e <LoRaMacAdrCalcNext+0x5a>
+ 800eb8a:	7ce0      	ldrb	r0, [r4, #19]
+ 800eb8c:	f88d b024 	strb.w	fp, [sp, #36]	; 0x24
+ 800eb90:	a907      	add	r1, sp, #28
+ 800eb92:	f000 fea7 	bl	800f8e4 <RegionInitDefaults>
+ 800eb96:	e7c1      	b.n	800eb1c <LoRaMacAdrCalcNext+0x58>
+ 800eb98:	4616      	mov	r6, r2
+ 800eb9a:	e7c0      	b.n	800eb1e <LoRaMacAdrCalcNext+0x5a>
+ 800eb9c:	2500      	movs	r5, #0
+ 800eb9e:	e7c3      	b.n	800eb28 <LoRaMacAdrCalcNext+0x64>
+
+0800eba0 <LoRaMacClassBInit>:
+ 800eba0:	4770      	bx	lr
+
+0800eba2 <LoRaMacClassBSetBeaconState>:
+ 800eba2:	4770      	bx	lr
+
+0800eba4 <LoRaMacClassBSetPingSlotState>:
+ 800eba4:	4770      	bx	lr
+
+0800eba6 <LoRaMacClassBSetMulticastSlotState>:
+ 800eba6:	4770      	bx	lr
+
+0800eba8 <LoRaMacClassBIsAcquisitionInProgress>:
+ 800eba8:	2000      	movs	r0, #0
+ 800ebaa:	4770      	bx	lr
+
+0800ebac <LoRaMacClassBBeaconTimerEvent>:
+ 800ebac:	4770      	bx	lr
+
+0800ebae <LoRaMacClassBPingSlotTimerEvent>:
+ 800ebae:	4770      	bx	lr
+
+0800ebb0 <LoRaMacClassBMulticastSlotTimerEvent>:
+ 800ebb0:	4770      	bx	lr
+
+0800ebb2 <LoRaMacClassBRxBeacon>:
+ 800ebb2:	2000      	movs	r0, #0
+ 800ebb4:	4770      	bx	lr
+
+0800ebb6 <LoRaMacClassBIsBeaconExpected>:
+ 800ebb6:	2000      	movs	r0, #0
+ 800ebb8:	4770      	bx	lr
+
+0800ebba <LoRaMacClassBIsPingExpected>:
+ 800ebba:	2000      	movs	r0, #0
+ 800ebbc:	4770      	bx	lr
+
+0800ebbe <LoRaMacClassBIsMulticastExpected>:
+ 800ebbe:	2000      	movs	r0, #0
+ 800ebc0:	4770      	bx	lr
+
+0800ebc2 <LoRaMacClassBIsBeaconModeActive>:
+ 800ebc2:	2000      	movs	r0, #0
+ 800ebc4:	4770      	bx	lr
+
+0800ebc6 <LoRaMacClassBSetPingSlotInfo>:
+ 800ebc6:	4770      	bx	lr
+
+0800ebc8 <LoRaMacClassBHaltBeaconing>:
+ 800ebc8:	4770      	bx	lr
+
+0800ebca <LoRaMacClassBResumeBeaconing>:
+ 800ebca:	4770      	bx	lr
+
+0800ebcc <LoRaMacClassBSwitchClass>:
+ 800ebcc:	2002      	movs	r0, #2
+ 800ebce:	4770      	bx	lr
+
+0800ebd0 <LoRaMacClassBMibGetRequestConfirm>:
+ 800ebd0:	2002      	movs	r0, #2
+ 800ebd2:	4770      	bx	lr
+
+0800ebd4 <LoRaMacMibClassBSetRequestConfirm>:
+ 800ebd4:	2002      	movs	r0, #2
+ 800ebd6:	4770      	bx	lr
+
+0800ebd8 <LoRaMacClassBPingSlotInfoAns>:
+ 800ebd8:	4770      	bx	lr
+
+0800ebda <LoRaMacClassBPingSlotChannelReq>:
+ 800ebda:	2000      	movs	r0, #0
+ 800ebdc:	4770      	bx	lr
+
+0800ebde <LoRaMacClassBBeaconTimingAns>:
+ 800ebde:	4770      	bx	lr
+
+0800ebe0 <LoRaMacClassBDeviceTimeAns>:
+ 800ebe0:	4770      	bx	lr
+
+0800ebe2 <LoRaMacClassBBeaconFreqReq>:
+ 800ebe2:	2000      	movs	r0, #0
+ 800ebe4:	4770      	bx	lr
+
+0800ebe6 <LoRaMacClassBIsUplinkCollision>:
+ 800ebe6:	2000      	movs	r0, #0
+ 800ebe8:	4770      	bx	lr
+
+0800ebea <LoRaMacClassBStopRxSlots>:
+ 800ebea:	4770      	bx	lr
+
+0800ebec <LoRaMacClassBProcess>:
+ 800ebec:	4770      	bx	lr
+	...
+
+0800ebf0 <LoRaMacCommandsInit>:
+ 800ebf0:	b510      	push	{r4, lr}
+ 800ebf2:	4c05      	ldr	r4, [pc, #20]	; (800ec08 <LoRaMacCommandsInit+0x18>)
+ 800ebf4:	22fc      	movs	r2, #252	; 0xfc
+ 800ebf6:	4620      	mov	r0, r4
+ 800ebf8:	2100      	movs	r1, #0
+ 800ebfa:	f002 fe07 	bl	801180c <memset1>
+ 800ebfe:	2000      	movs	r0, #0
+ 800ec00:	e9c4 0000 	strd	r0, r0, [r4]
+ 800ec04:	bd10      	pop	{r4, pc}
+ 800ec06:	bf00      	nop
+ 800ec08:	200024f4 	.word	0x200024f4
+
+0800ec0c <LoRaMacCommandsAddCmd>:
+ 800ec0c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800ec10:	4680      	mov	r8, r0
+ 800ec12:	4615      	mov	r5, r2
+ 800ec14:	2900      	cmp	r1, #0
+ 800ec16:	d042      	beq.n	800ec9e <LoRaMacCommandsAddCmd+0x92>
+ 800ec18:	4b24      	ldr	r3, [pc, #144]	; (800ecac <LoRaMacCommandsAddCmd+0xa0>)
+ 800ec1a:	2400      	movs	r4, #0
+ 800ec1c:	f103 0c01 	add.w	ip, r3, #1
+ 800ec20:	461a      	mov	r2, r3
+ 800ec22:	0120      	lsls	r0, r4, #4
+ 800ec24:	3310      	adds	r3, #16
+ 800ec26:	f812 6f01 	ldrb.w	r6, [r2, #1]!
+ 800ec2a:	2e00      	cmp	r6, #0
+ 800ec2c:	d139      	bne.n	800eca2 <LoRaMacCommandsAddCmd+0x96>
+ 800ec2e:	429a      	cmp	r2, r3
+ 800ec30:	d1f9      	bne.n	800ec26 <LoRaMacCommandsAddCmd+0x1a>
+ 800ec32:	4f1f      	ldr	r7, [pc, #124]	; (800ecb0 <LoRaMacCommandsAddCmd+0xa4>)
+ 800ec34:	683b      	ldr	r3, [r7, #0]
+ 800ec36:	b90b      	cbnz	r3, 800ec3c <LoRaMacCommandsAddCmd+0x30>
+ 800ec38:	f8c7 c000 	str.w	ip, [r7]
+ 800ec3c:	687b      	ldr	r3, [r7, #4]
+ 800ec3e:	b10b      	cbz	r3, 800ec44 <LoRaMacCommandsAddCmd+0x38>
+ 800ec40:	f8c3 c000 	str.w	ip, [r3]
+ 800ec44:	183b      	adds	r3, r7, r0
+ 800ec46:	2200      	movs	r2, #0
+ 800ec48:	3401      	adds	r4, #1
+ 800ec4a:	609a      	str	r2, [r3, #8]
+ 800ec4c:	f883 800c 	strb.w	r8, [r3, #12]
+ 800ec50:	300d      	adds	r0, #13
+ 800ec52:	0123      	lsls	r3, r4, #4
+ 800ec54:	b2aa      	uxth	r2, r5
+ 800ec56:	4438      	add	r0, r7
+ 800ec58:	50fd      	str	r5, [r7, r3]
+ 800ec5a:	f8c7 c004 	str.w	ip, [r7, #4]
+ 800ec5e:	f002 fdc1 	bl	80117e4 <memcpy1>
+ 800ec62:	f1b8 0f05 	cmp.w	r8, #5
+ 800ec66:	d017      	beq.n	800ec98 <LoRaMacCommandsAddCmd+0x8c>
+ 800ec68:	f1a8 0808 	sub.w	r8, r8, #8
+ 800ec6c:	f1b8 0f02 	cmp.w	r8, #2
+ 800ec70:	bf8c      	ite	hi
+ 800ec72:	f04f 0800 	movhi.w	r8, #0
+ 800ec76:	f04f 0801 	movls.w	r8, #1
+ 800ec7a:	eb07 1404 	add.w	r4, r7, r4, lsl #4
+ 800ec7e:	2300      	movs	r3, #0
+ 800ec80:	7163      	strb	r3, [r4, #5]
+ 800ec82:	f8d7 30f8 	ldr.w	r3, [r7, #248]	; 0xf8
+ 800ec86:	f884 8004 	strb.w	r8, [r4, #4]
+ 800ec8a:	3301      	adds	r3, #1
+ 800ec8c:	442b      	add	r3, r5
+ 800ec8e:	f8c7 30f8 	str.w	r3, [r7, #248]	; 0xf8
+ 800ec92:	4630      	mov	r0, r6
+ 800ec94:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800ec98:	f04f 0801 	mov.w	r8, #1
+ 800ec9c:	e7ed      	b.n	800ec7a <LoRaMacCommandsAddCmd+0x6e>
+ 800ec9e:	2601      	movs	r6, #1
+ 800eca0:	e7f7      	b.n	800ec92 <LoRaMacCommandsAddCmd+0x86>
+ 800eca2:	3401      	adds	r4, #1
+ 800eca4:	2c0f      	cmp	r4, #15
+ 800eca6:	d1b9      	bne.n	800ec1c <LoRaMacCommandsAddCmd+0x10>
+ 800eca8:	2602      	movs	r6, #2
+ 800ecaa:	e7f2      	b.n	800ec92 <LoRaMacCommandsAddCmd+0x86>
+ 800ecac:	200024fb 	.word	0x200024fb
+ 800ecb0:	200024f4 	.word	0x200024f4
+
+0800ecb4 <LoRaMacCommandsRemoveCmd>:
+ 800ecb4:	b510      	push	{r4, lr}
+ 800ecb6:	b310      	cbz	r0, 800ecfe <LoRaMacCommandsRemoveCmd+0x4a>
+ 800ecb8:	4a12      	ldr	r2, [pc, #72]	; (800ed04 <LoRaMacCommandsRemoveCmd+0x50>)
+ 800ecba:	6813      	ldr	r3, [r2, #0]
+ 800ecbc:	4298      	cmp	r0, r3
+ 800ecbe:	d104      	bne.n	800ecca <LoRaMacCommandsRemoveCmd+0x16>
+ 800ecc0:	6803      	ldr	r3, [r0, #0]
+ 800ecc2:	6013      	str	r3, [r2, #0]
+ 800ecc4:	2300      	movs	r3, #0
+ 800ecc6:	e004      	b.n	800ecd2 <LoRaMacCommandsRemoveCmd+0x1e>
+ 800ecc8:	460b      	mov	r3, r1
+ 800ecca:	b113      	cbz	r3, 800ecd2 <LoRaMacCommandsRemoveCmd+0x1e>
+ 800eccc:	6819      	ldr	r1, [r3, #0]
+ 800ecce:	4288      	cmp	r0, r1
+ 800ecd0:	d1fa      	bne.n	800ecc8 <LoRaMacCommandsRemoveCmd+0x14>
+ 800ecd2:	6851      	ldr	r1, [r2, #4]
+ 800ecd4:	4288      	cmp	r0, r1
+ 800ecd6:	bf08      	it	eq
+ 800ecd8:	6053      	streq	r3, [r2, #4]
+ 800ecda:	b10b      	cbz	r3, 800ece0 <LoRaMacCommandsRemoveCmd+0x2c>
+ 800ecdc:	6801      	ldr	r1, [r0, #0]
+ 800ecde:	6019      	str	r1, [r3, #0]
+ 800ece0:	f8d2 30f8 	ldr.w	r3, [r2, #248]	; 0xf8
+ 800ece4:	6881      	ldr	r1, [r0, #8]
+ 800ece6:	3b01      	subs	r3, #1
+ 800ece8:	2400      	movs	r4, #0
+ 800ecea:	1a5b      	subs	r3, r3, r1
+ 800ecec:	6004      	str	r4, [r0, #0]
+ 800ecee:	4621      	mov	r1, r4
+ 800ecf0:	f8c2 30f8 	str.w	r3, [r2, #248]	; 0xf8
+ 800ecf4:	2210      	movs	r2, #16
+ 800ecf6:	f002 fd89 	bl	801180c <memset1>
+ 800ecfa:	4620      	mov	r0, r4
+ 800ecfc:	bd10      	pop	{r4, pc}
+ 800ecfe:	2001      	movs	r0, #1
+ 800ed00:	e7fc      	b.n	800ecfc <LoRaMacCommandsRemoveCmd+0x48>
+ 800ed02:	bf00      	nop
+ 800ed04:	200024f4 	.word	0x200024f4
+
+0800ed08 <LoRaMacCommandsGetCmd>:
+ 800ed08:	4b05      	ldr	r3, [pc, #20]	; (800ed20 <LoRaMacCommandsGetCmd+0x18>)
+ 800ed0a:	681b      	ldr	r3, [r3, #0]
+ 800ed0c:	b113      	cbz	r3, 800ed14 <LoRaMacCommandsGetCmd+0xc>
+ 800ed0e:	791a      	ldrb	r2, [r3, #4]
+ 800ed10:	4282      	cmp	r2, r0
+ 800ed12:	d1fa      	bne.n	800ed0a <LoRaMacCommandsGetCmd+0x2>
+ 800ed14:	2b00      	cmp	r3, #0
+ 800ed16:	600b      	str	r3, [r1, #0]
+ 800ed18:	bf0c      	ite	eq
+ 800ed1a:	2003      	moveq	r0, #3
+ 800ed1c:	2000      	movne	r0, #0
+ 800ed1e:	4770      	bx	lr
+ 800ed20:	200024f4 	.word	0x200024f4
+
+0800ed24 <LoRaMacCommandsRemoveNoneStickyCmds>:
+ 800ed24:	b510      	push	{r4, lr}
+ 800ed26:	4b05      	ldr	r3, [pc, #20]	; (800ed3c <LoRaMacCommandsRemoveNoneStickyCmds+0x18>)
+ 800ed28:	6818      	ldr	r0, [r3, #0]
+ 800ed2a:	b900      	cbnz	r0, 800ed2e <LoRaMacCommandsRemoveNoneStickyCmds+0xa>
+ 800ed2c:	bd10      	pop	{r4, pc}
+ 800ed2e:	7b03      	ldrb	r3, [r0, #12]
+ 800ed30:	6804      	ldr	r4, [r0, #0]
+ 800ed32:	b90b      	cbnz	r3, 800ed38 <LoRaMacCommandsRemoveNoneStickyCmds+0x14>
+ 800ed34:	f7ff ffbe 	bl	800ecb4 <LoRaMacCommandsRemoveCmd>
+ 800ed38:	4620      	mov	r0, r4
+ 800ed3a:	e7f6      	b.n	800ed2a <LoRaMacCommandsRemoveNoneStickyCmds+0x6>
+ 800ed3c:	200024f4 	.word	0x200024f4
+
+0800ed40 <LoRaMacCommandsRemoveStickyAnsCmds>:
+ 800ed40:	b510      	push	{r4, lr}
+ 800ed42:	4b07      	ldr	r3, [pc, #28]	; (800ed60 <LoRaMacCommandsRemoveStickyAnsCmds+0x20>)
+ 800ed44:	6818      	ldr	r0, [r3, #0]
+ 800ed46:	b900      	cbnz	r0, 800ed4a <LoRaMacCommandsRemoveStickyAnsCmds+0xa>
+ 800ed48:	bd10      	pop	{r4, pc}
+ 800ed4a:	7903      	ldrb	r3, [r0, #4]
+ 800ed4c:	6804      	ldr	r4, [r0, #0]
+ 800ed4e:	2b05      	cmp	r3, #5
+ 800ed50:	d002      	beq.n	800ed58 <LoRaMacCommandsRemoveStickyAnsCmds+0x18>
+ 800ed52:	3b08      	subs	r3, #8
+ 800ed54:	2b02      	cmp	r3, #2
+ 800ed56:	d801      	bhi.n	800ed5c <LoRaMacCommandsRemoveStickyAnsCmds+0x1c>
+ 800ed58:	f7ff ffac 	bl	800ecb4 <LoRaMacCommandsRemoveCmd>
+ 800ed5c:	4620      	mov	r0, r4
+ 800ed5e:	e7f2      	b.n	800ed46 <LoRaMacCommandsRemoveStickyAnsCmds+0x6>
+ 800ed60:	200024f4 	.word	0x200024f4
+
+0800ed64 <LoRaMacCommandsGetSizeSerializedCmds>:
+ 800ed64:	b128      	cbz	r0, 800ed72 <LoRaMacCommandsGetSizeSerializedCmds+0xe>
+ 800ed66:	4b04      	ldr	r3, [pc, #16]	; (800ed78 <LoRaMacCommandsGetSizeSerializedCmds+0x14>)
+ 800ed68:	f8d3 30f8 	ldr.w	r3, [r3, #248]	; 0xf8
+ 800ed6c:	6003      	str	r3, [r0, #0]
+ 800ed6e:	2000      	movs	r0, #0
+ 800ed70:	4770      	bx	lr
+ 800ed72:	2001      	movs	r0, #1
+ 800ed74:	4770      	bx	lr
+ 800ed76:	bf00      	nop
+ 800ed78:	200024f4 	.word	0x200024f4
+
+0800ed7c <LoRaMacCommandsSerializeCmds>:
+ 800ed7c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800ed80:	4607      	mov	r7, r0
+ 800ed82:	460e      	mov	r6, r1
+ 800ed84:	4615      	mov	r5, r2
+ 800ed86:	b33a      	cbz	r2, 800edd8 <LoRaMacCommandsSerializeCmds+0x5c>
+ 800ed88:	b331      	cbz	r1, 800edd8 <LoRaMacCommandsSerializeCmds+0x5c>
+ 800ed8a:	4b14      	ldr	r3, [pc, #80]	; (800eddc <LoRaMacCommandsSerializeCmds+0x60>)
+ 800ed8c:	681c      	ldr	r4, [r3, #0]
+ 800ed8e:	2300      	movs	r3, #0
+ 800ed90:	b92c      	cbnz	r4, 800ed9e <LoRaMacCommandsSerializeCmds+0x22>
+ 800ed92:	4630      	mov	r0, r6
+ 800ed94:	f7ff ffe6 	bl	800ed64 <LoRaMacCommandsGetSizeSerializedCmds>
+ 800ed98:	2000      	movs	r0, #0
+ 800ed9a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800ed9e:	68a2      	ldr	r2, [r4, #8]
+ 800eda0:	1af9      	subs	r1, r7, r3
+ 800eda2:	3201      	adds	r2, #1
+ 800eda4:	4291      	cmp	r1, r2
+ 800eda6:	d310      	bcc.n	800edca <LoRaMacCommandsSerializeCmds+0x4e>
+ 800eda8:	7922      	ldrb	r2, [r4, #4]
+ 800edaa:	54ea      	strb	r2, [r5, r3]
+ 800edac:	1c58      	adds	r0, r3, #1
+ 800edae:	8922      	ldrh	r2, [r4, #8]
+ 800edb0:	fa5f f880 	uxtb.w	r8, r0
+ 800edb4:	1d61      	adds	r1, r4, #5
+ 800edb6:	fa55 f080 	uxtab	r0, r5, r0
+ 800edba:	f002 fd13 	bl	80117e4 <memcpy1>
+ 800edbe:	68a3      	ldr	r3, [r4, #8]
+ 800edc0:	6824      	ldr	r4, [r4, #0]
+ 800edc2:	4498      	add	r8, r3
+ 800edc4:	fa5f f388 	uxtb.w	r3, r8
+ 800edc8:	e7e2      	b.n	800ed90 <LoRaMacCommandsSerializeCmds+0x14>
+ 800edca:	4620      	mov	r0, r4
+ 800edcc:	6824      	ldr	r4, [r4, #0]
+ 800edce:	f7ff ff71 	bl	800ecb4 <LoRaMacCommandsRemoveCmd>
+ 800edd2:	2c00      	cmp	r4, #0
+ 800edd4:	d1f9      	bne.n	800edca <LoRaMacCommandsSerializeCmds+0x4e>
+ 800edd6:	e7dc      	b.n	800ed92 <LoRaMacCommandsSerializeCmds+0x16>
+ 800edd8:	2001      	movs	r0, #1
+ 800edda:	e7de      	b.n	800ed9a <LoRaMacCommandsSerializeCmds+0x1e>
+ 800eddc:	200024f4 	.word	0x200024f4
+
+0800ede0 <LoRaMacCommandsGetCmdSize>:
+ 800ede0:	3802      	subs	r0, #2
+ 800ede2:	b2c0      	uxtb	r0, r0
+ 800ede4:	2811      	cmp	r0, #17
+ 800ede6:	bf9a      	itte	ls
+ 800ede8:	4b01      	ldrls	r3, [pc, #4]	; (800edf0 <LoRaMacCommandsGetCmdSize+0x10>)
+ 800edea:	5c18      	ldrbls	r0, [r3, r0]
+ 800edec:	2000      	movhi	r0, #0
+ 800edee:	4770      	bx	lr
+ 800edf0:	0801510f 	.word	0x0801510f
+
+0800edf4 <GetElement.constprop.0>:
+ 800edf4:	b530      	push	{r4, r5, lr}
+ 800edf6:	4b0b      	ldr	r3, [pc, #44]	; (800ee24 <GetElement.constprop.0+0x30>)
+ 800edf8:	f893 2020 	ldrb.w	r2, [r3, #32]
+ 800edfc:	4604      	mov	r4, r0
+ 800edfe:	4608      	mov	r0, r1
+ 800ee00:	b172      	cbz	r2, 800ee20 <GetElement.constprop.0+0x2c>
+ 800ee02:	2100      	movs	r1, #0
+ 800ee04:	331c      	adds	r3, #28
+ 800ee06:	7805      	ldrb	r5, [r0, #0]
+ 800ee08:	42a5      	cmp	r5, r4
+ 800ee0a:	d008      	beq.n	800ee1e <GetElement.constprop.0+0x2a>
+ 800ee0c:	3101      	adds	r1, #1
+ 800ee0e:	4298      	cmp	r0, r3
+ 800ee10:	b2cd      	uxtb	r5, r1
+ 800ee12:	bf0c      	ite	eq
+ 800ee14:	4804      	ldreq	r0, [pc, #16]	; (800ee28 <GetElement.constprop.0+0x34>)
+ 800ee16:	3004      	addne	r0, #4
+ 800ee18:	42aa      	cmp	r2, r5
+ 800ee1a:	d8f4      	bhi.n	800ee06 <GetElement.constprop.0+0x12>
+ 800ee1c:	2000      	movs	r0, #0
+ 800ee1e:	bd30      	pop	{r4, r5, pc}
+ 800ee20:	4610      	mov	r0, r2
+ 800ee22:	e7fc      	b.n	800ee1e <GetElement.constprop.0+0x2a>
+ 800ee24:	200025f0 	.word	0x200025f0
+ 800ee28:	200025fc 	.word	0x200025fc
+
+0800ee2c <LoRaMacConfirmQueueInit>:
+ 800ee2c:	b510      	push	{r4, lr}
+ 800ee2e:	4c08      	ldr	r4, [pc, #32]	; (800ee50 <LoRaMacConfirmQueueInit+0x24>)
+ 800ee30:	2300      	movs	r3, #0
+ 800ee32:	6020      	str	r0, [r4, #0]
+ 800ee34:	2214      	movs	r2, #20
+ 800ee36:	f104 000c 	add.w	r0, r4, #12
+ 800ee3a:	21ff      	movs	r1, #255	; 0xff
+ 800ee3c:	f884 3020 	strb.w	r3, [r4, #32]
+ 800ee40:	e9c4 0001 	strd	r0, r0, [r4, #4]
+ 800ee44:	f002 fce2 	bl	801180c <memset1>
+ 800ee48:	2301      	movs	r3, #1
+ 800ee4a:	f884 3021 	strb.w	r3, [r4, #33]	; 0x21
+ 800ee4e:	bd10      	pop	{r4, pc}
+ 800ee50:	200025f0 	.word	0x200025f0
+
+0800ee54 <LoRaMacConfirmQueueAdd>:
+ 800ee54:	b510      	push	{r4, lr}
+ 800ee56:	4a0e      	ldr	r2, [pc, #56]	; (800ee90 <LoRaMacConfirmQueueAdd+0x3c>)
+ 800ee58:	f892 1020 	ldrb.w	r1, [r2, #32]
+ 800ee5c:	2904      	cmp	r1, #4
+ 800ee5e:	d815      	bhi.n	800ee8c <LoRaMacConfirmQueueAdd+0x38>
+ 800ee60:	6893      	ldr	r3, [r2, #8]
+ 800ee62:	7804      	ldrb	r4, [r0, #0]
+ 800ee64:	701c      	strb	r4, [r3, #0]
+ 800ee66:	7844      	ldrb	r4, [r0, #1]
+ 800ee68:	705c      	strb	r4, [r3, #1]
+ 800ee6a:	78c0      	ldrb	r0, [r0, #3]
+ 800ee6c:	70d8      	strb	r0, [r3, #3]
+ 800ee6e:	3101      	adds	r1, #1
+ 800ee70:	2000      	movs	r0, #0
+ 800ee72:	7098      	strb	r0, [r3, #2]
+ 800ee74:	f882 1020 	strb.w	r1, [r2, #32]
+ 800ee78:	f102 011c 	add.w	r1, r2, #28
+ 800ee7c:	428b      	cmp	r3, r1
+ 800ee7e:	bf14      	ite	ne
+ 800ee80:	3304      	addne	r3, #4
+ 800ee82:	f102 030c 	addeq.w	r3, r2, #12
+ 800ee86:	6093      	str	r3, [r2, #8]
+ 800ee88:	2001      	movs	r0, #1
+ 800ee8a:	bd10      	pop	{r4, pc}
+ 800ee8c:	2000      	movs	r0, #0
+ 800ee8e:	e7fc      	b.n	800ee8a <LoRaMacConfirmQueueAdd+0x36>
+ 800ee90:	200025f0 	.word	0x200025f0
+
+0800ee94 <LoRaMacConfirmQueueRemoveFirst>:
+ 800ee94:	4b09      	ldr	r3, [pc, #36]	; (800eebc <LoRaMacConfirmQueueRemoveFirst+0x28>)
+ 800ee96:	f893 0020 	ldrb.w	r0, [r3, #32]
+ 800ee9a:	b168      	cbz	r0, 800eeb8 <LoRaMacConfirmQueueRemoveFirst+0x24>
+ 800ee9c:	685a      	ldr	r2, [r3, #4]
+ 800ee9e:	f103 011c 	add.w	r1, r3, #28
+ 800eea2:	428a      	cmp	r2, r1
+ 800eea4:	f100 30ff 	add.w	r0, r0, #4294967295
+ 800eea8:	bf14      	ite	ne
+ 800eeaa:	3204      	addne	r2, #4
+ 800eeac:	f103 020c 	addeq.w	r2, r3, #12
+ 800eeb0:	f883 0020 	strb.w	r0, [r3, #32]
+ 800eeb4:	605a      	str	r2, [r3, #4]
+ 800eeb6:	2001      	movs	r0, #1
+ 800eeb8:	4770      	bx	lr
+ 800eeba:	bf00      	nop
+ 800eebc:	200025f0 	.word	0x200025f0
+
+0800eec0 <LoRaMacConfirmQueueSetStatus>:
+ 800eec0:	b510      	push	{r4, lr}
+ 800eec2:	4b07      	ldr	r3, [pc, #28]	; (800eee0 <LoRaMacConfirmQueueSetStatus+0x20>)
+ 800eec4:	f893 2020 	ldrb.w	r2, [r3, #32]
+ 800eec8:	4604      	mov	r4, r0
+ 800eeca:	4608      	mov	r0, r1
+ 800eecc:	b132      	cbz	r2, 800eedc <LoRaMacConfirmQueueSetStatus+0x1c>
+ 800eece:	6859      	ldr	r1, [r3, #4]
+ 800eed0:	f7ff ff90 	bl	800edf4 <GetElement.constprop.0>
+ 800eed4:	b110      	cbz	r0, 800eedc <LoRaMacConfirmQueueSetStatus+0x1c>
+ 800eed6:	2301      	movs	r3, #1
+ 800eed8:	7044      	strb	r4, [r0, #1]
+ 800eeda:	7083      	strb	r3, [r0, #2]
+ 800eedc:	bd10      	pop	{r4, pc}
+ 800eede:	bf00      	nop
+ 800eee0:	200025f0 	.word	0x200025f0
+
+0800eee4 <LoRaMacConfirmQueueGetStatus>:
+ 800eee4:	b508      	push	{r3, lr}
+ 800eee6:	4b06      	ldr	r3, [pc, #24]	; (800ef00 <LoRaMacConfirmQueueGetStatus+0x1c>)
+ 800eee8:	f893 2020 	ldrb.w	r2, [r3, #32]
+ 800eeec:	b12a      	cbz	r2, 800eefa <LoRaMacConfirmQueueGetStatus+0x16>
+ 800eeee:	6859      	ldr	r1, [r3, #4]
+ 800eef0:	f7ff ff80 	bl	800edf4 <GetElement.constprop.0>
+ 800eef4:	b108      	cbz	r0, 800eefa <LoRaMacConfirmQueueGetStatus+0x16>
+ 800eef6:	7840      	ldrb	r0, [r0, #1]
+ 800eef8:	bd08      	pop	{r3, pc}
+ 800eefa:	2001      	movs	r0, #1
+ 800eefc:	e7fc      	b.n	800eef8 <LoRaMacConfirmQueueGetStatus+0x14>
+ 800eefe:	bf00      	nop
+ 800ef00:	200025f0 	.word	0x200025f0
+
+0800ef04 <LoRaMacConfirmQueueSetStatusCmn>:
+ 800ef04:	b530      	push	{r4, r5, lr}
+ 800ef06:	4a0a      	ldr	r2, [pc, #40]	; (800ef30 <LoRaMacConfirmQueueSetStatusCmn+0x2c>)
+ 800ef08:	f892 1020 	ldrb.w	r1, [r2, #32]
+ 800ef0c:	6853      	ldr	r3, [r2, #4]
+ 800ef0e:	f882 0021 	strb.w	r0, [r2, #33]	; 0x21
+ 800ef12:	b161      	cbz	r1, 800ef2e <LoRaMacConfirmQueueSetStatusCmn+0x2a>
+ 800ef14:	6891      	ldr	r1, [r2, #8]
+ 800ef16:	2401      	movs	r4, #1
+ 800ef18:	321c      	adds	r2, #28
+ 800ef1a:	78dd      	ldrb	r5, [r3, #3]
+ 800ef1c:	7058      	strb	r0, [r3, #1]
+ 800ef1e:	b905      	cbnz	r5, 800ef22 <LoRaMacConfirmQueueSetStatusCmn+0x1e>
+ 800ef20:	709c      	strb	r4, [r3, #2]
+ 800ef22:	4293      	cmp	r3, r2
+ 800ef24:	bf0c      	ite	eq
+ 800ef26:	4b03      	ldreq	r3, [pc, #12]	; (800ef34 <LoRaMacConfirmQueueSetStatusCmn+0x30>)
+ 800ef28:	3304      	addne	r3, #4
+ 800ef2a:	4299      	cmp	r1, r3
+ 800ef2c:	d1f5      	bne.n	800ef1a <LoRaMacConfirmQueueSetStatusCmn+0x16>
+ 800ef2e:	bd30      	pop	{r4, r5, pc}
+ 800ef30:	200025f0 	.word	0x200025f0
+ 800ef34:	200025fc 	.word	0x200025fc
+
+0800ef38 <LoRaMacConfirmQueueIsCmdActive>:
+ 800ef38:	b508      	push	{r3, lr}
+ 800ef3a:	4b04      	ldr	r3, [pc, #16]	; (800ef4c <LoRaMacConfirmQueueIsCmdActive+0x14>)
+ 800ef3c:	6859      	ldr	r1, [r3, #4]
+ 800ef3e:	f7ff ff59 	bl	800edf4 <GetElement.constprop.0>
+ 800ef42:	3800      	subs	r0, #0
+ 800ef44:	bf18      	it	ne
+ 800ef46:	2001      	movne	r0, #1
+ 800ef48:	bd08      	pop	{r3, pc}
+ 800ef4a:	bf00      	nop
+ 800ef4c:	200025f0 	.word	0x200025f0
+
+0800ef50 <LoRaMacConfirmQueueHandleCb>:
+ 800ef50:	e92d 41f3 	stmdb	sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
+ 800ef54:	2204      	movs	r2, #4
+ 800ef56:	4e15      	ldr	r6, [pc, #84]	; (800efac <LoRaMacConfirmQueueHandleCb+0x5c>)
+ 800ef58:	4604      	mov	r4, r0
+ 800ef5a:	2100      	movs	r1, #0
+ 800ef5c:	eb0d 0002 	add.w	r0, sp, r2
+ 800ef60:	f896 8020 	ldrb.w	r8, [r6, #32]
+ 800ef64:	f002 fc52 	bl	801180c <memset1>
+ 800ef68:	2500      	movs	r5, #0
+ 800ef6a:	b2eb      	uxtb	r3, r5
+ 800ef6c:	4598      	cmp	r8, r3
+ 800ef6e:	d802      	bhi.n	800ef76 <LoRaMacConfirmQueueHandleCb+0x26>
+ 800ef70:	b002      	add	sp, #8
+ 800ef72:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800ef76:	6873      	ldr	r3, [r6, #4]
+ 800ef78:	7819      	ldrb	r1, [r3, #0]
+ 800ef7a:	7021      	strb	r1, [r4, #0]
+ 800ef7c:	785a      	ldrb	r2, [r3, #1]
+ 800ef7e:	7062      	strb	r2, [r4, #1]
+ 800ef80:	789f      	ldrb	r7, [r3, #2]
+ 800ef82:	b15f      	cbz	r7, 800ef9c <LoRaMacConfirmQueueHandleCb+0x4c>
+ 800ef84:	6833      	ldr	r3, [r6, #0]
+ 800ef86:	4620      	mov	r0, r4
+ 800ef88:	689b      	ldr	r3, [r3, #8]
+ 800ef8a:	4798      	blx	r3
+ 800ef8c:	f7ff ff82 	bl	800ee94 <LoRaMacConfirmQueueRemoveFirst>
+ 800ef90:	b917      	cbnz	r7, 800ef98 <LoRaMacConfirmQueueHandleCb+0x48>
+ 800ef92:	a801      	add	r0, sp, #4
+ 800ef94:	f7ff ff5e 	bl	800ee54 <LoRaMacConfirmQueueAdd>
+ 800ef98:	3501      	adds	r5, #1
+ 800ef9a:	e7e6      	b.n	800ef6a <LoRaMacConfirmQueueHandleCb+0x1a>
+ 800ef9c:	78db      	ldrb	r3, [r3, #3]
+ 800ef9e:	f88d 1004 	strb.w	r1, [sp, #4]
+ 800efa2:	f88d 2005 	strb.w	r2, [sp, #5]
+ 800efa6:	f88d 3007 	strb.w	r3, [sp, #7]
+ 800efaa:	e7ef      	b.n	800ef8c <LoRaMacConfirmQueueHandleCb+0x3c>
+ 800efac:	200025f0 	.word	0x200025f0
+
+0800efb0 <LoRaMacConfirmQueueGetCnt>:
+ 800efb0:	4b01      	ldr	r3, [pc, #4]	; (800efb8 <LoRaMacConfirmQueueGetCnt+0x8>)
+ 800efb2:	f893 0020 	ldrb.w	r0, [r3, #32]
+ 800efb6:	4770      	bx	lr
+ 800efb8:	200025f0 	.word	0x200025f0
+
+0800efbc <LoRaMacConfirmQueueIsFull>:
+ 800efbc:	4b03      	ldr	r3, [pc, #12]	; (800efcc <LoRaMacConfirmQueueIsFull+0x10>)
+ 800efbe:	f893 0020 	ldrb.w	r0, [r3, #32]
+ 800efc2:	2804      	cmp	r0, #4
+ 800efc4:	bf94      	ite	ls
+ 800efc6:	2000      	movls	r0, #0
+ 800efc8:	2001      	movhi	r0, #1
+ 800efca:	4770      	bx	lr
+ 800efcc:	200025f0 	.word	0x200025f0
+
+0800efd0 <DeriveSessionKey10x>:
+ 800efd0:	b51f      	push	{r0, r1, r2, r3, r4, lr}
+ 800efd2:	2400      	movs	r4, #0
+ 800efd4:	e9cd 4402 	strd	r4, r4, [sp, #8]
+ 800efd8:	1fc4      	subs	r4, r0, #7
+ 800efda:	f88d 4000 	strb.w	r4, [sp]
+ 800efde:	f88d 1001 	strb.w	r1, [sp, #1]
+ 800efe2:	0a0c      	lsrs	r4, r1, #8
+ 800efe4:	f8ad 2004 	strh.w	r2, [sp, #4]
+ 800efe8:	0c09      	lsrs	r1, r1, #16
+ 800efea:	0c12      	lsrs	r2, r2, #16
+ 800efec:	f88d 1003 	strb.w	r1, [sp, #3]
+ 800eff0:	f88d 2006 	strb.w	r2, [sp, #6]
+ 800eff4:	f88d 3007 	strb.w	r3, [sp, #7]
+ 800eff8:	4602      	mov	r2, r0
+ 800effa:	0a1b      	lsrs	r3, r3, #8
+ 800effc:	2101      	movs	r1, #1
+ 800effe:	4668      	mov	r0, sp
+ 800f000:	f88d 4002 	strb.w	r4, [sp, #2]
+ 800f004:	f88d 3008 	strb.w	r3, [sp, #8]
+ 800f008:	f002 fa5d 	bl	80114c6 <SecureElementDeriveAndStoreKey>
+ 800f00c:	2800      	cmp	r0, #0
+ 800f00e:	bf18      	it	ne
+ 800f010:	200f      	movne	r0, #15
+ 800f012:	b004      	add	sp, #16
+ 800f014:	bd10      	pop	{r4, pc}
+
+0800f016 <PayloadEncrypt>:
+ 800f016:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800f01a:	b088      	sub	sp, #32
+ 800f01c:	4617      	mov	r7, r2
+ 800f01e:	460d      	mov	r5, r1
+ 800f020:	9a0f      	ldr	r2, [sp, #60]	; 0x3c
+ 800f022:	4606      	mov	r6, r0
+ 800f024:	2800      	cmp	r0, #0
+ 800f026:	d04d      	beq.n	800f0c4 <PayloadEncrypt+0xae>
+ 800f028:	2400      	movs	r4, #0
+ 800f02a:	2101      	movs	r1, #1
+ 800f02c:	e9cd 4404 	strd	r4, r4, [sp, #16]
+ 800f030:	f88d 1010 	strb.w	r1, [sp, #16]
+ 800f034:	f89d 1038 	ldrb.w	r1, [sp, #56]	; 0x38
+ 800f038:	f88d 1015 	strb.w	r1, [sp, #21]
+ 800f03c:	f8ad 3016 	strh.w	r3, [sp, #22]
+ 800f040:	0c19      	lsrs	r1, r3, #16
+ 800f042:	e9cd 4400 	strd	r4, r4, [sp]
+ 800f046:	0e1b      	lsrs	r3, r3, #24
+ 800f048:	e9cd 4402 	strd	r4, r4, [sp, #8]
+ 800f04c:	f88d 3019 	strb.w	r3, [sp, #25]
+ 800f050:	f8ad 201a 	strh.w	r2, [sp, #26]
+ 800f054:	0c13      	lsrs	r3, r2, #16
+ 800f056:	0e12      	lsrs	r2, r2, #24
+ 800f058:	9407      	str	r4, [sp, #28]
+ 800f05a:	f88d 1018 	strb.w	r1, [sp, #24]
+ 800f05e:	f88d 301c 	strb.w	r3, [sp, #28]
+ 800f062:	f88d 201d 	strb.w	r2, [sp, #29]
+ 800f066:	b2e3      	uxtb	r3, r4
+ 800f068:	ea4f 1803 	mov.w	r8, r3, lsl #4
+ 800f06c:	2d00      	cmp	r5, #0
+ 800f06e:	fa5f f888 	uxtb.w	r8, r8
+ 800f072:	dc03      	bgt.n	800f07c <PayloadEncrypt+0x66>
+ 800f074:	2000      	movs	r0, #0
+ 800f076:	b008      	add	sp, #32
+ 800f078:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800f07c:	3301      	adds	r3, #1
+ 800f07e:	2110      	movs	r1, #16
+ 800f080:	f88d 301f 	strb.w	r3, [sp, #31]
+ 800f084:	463a      	mov	r2, r7
+ 800f086:	466b      	mov	r3, sp
+ 800f088:	eb0d 0001 	add.w	r0, sp, r1
+ 800f08c:	f002 f9b1 	bl	80113f2 <SecureElementAesEncrypt>
+ 800f090:	4603      	mov	r3, r0
+ 800f092:	b9c8      	cbnz	r0, 800f0c8 <PayloadEncrypt+0xb2>
+ 800f094:	2d10      	cmp	r5, #16
+ 800f096:	46ac      	mov	ip, r5
+ 800f098:	bfa8      	it	ge
+ 800f09a:	f04f 0c10 	movge.w	ip, #16
+ 800f09e:	b2da      	uxtb	r2, r3
+ 800f0a0:	4562      	cmp	r2, ip
+ 800f0a2:	f103 0301 	add.w	r3, r3, #1
+ 800f0a6:	db03      	blt.n	800f0b0 <PayloadEncrypt+0x9a>
+ 800f0a8:	3d10      	subs	r5, #16
+ 800f0aa:	b22d      	sxth	r5, r5
+ 800f0ac:	3401      	adds	r4, #1
+ 800f0ae:	e7da      	b.n	800f066 <PayloadEncrypt+0x50>
+ 800f0b0:	eb08 0002 	add.w	r0, r8, r2
+ 800f0b4:	3220      	adds	r2, #32
+ 800f0b6:	446a      	add	r2, sp
+ 800f0b8:	5c31      	ldrb	r1, [r6, r0]
+ 800f0ba:	f812 2c20 	ldrb.w	r2, [r2, #-32]
+ 800f0be:	404a      	eors	r2, r1
+ 800f0c0:	5432      	strb	r2, [r6, r0]
+ 800f0c2:	e7ec      	b.n	800f09e <PayloadEncrypt+0x88>
+ 800f0c4:	200a      	movs	r0, #10
+ 800f0c6:	e7d6      	b.n	800f076 <PayloadEncrypt+0x60>
+ 800f0c8:	200f      	movs	r0, #15
+ 800f0ca:	e7d4      	b.n	800f076 <PayloadEncrypt+0x60>
+
+0800f0cc <GetLastFcntDown.constprop.0>:
+ 800f0cc:	3801      	subs	r0, #1
+ 800f0ce:	2803      	cmp	r0, #3
+ 800f0d0:	d815      	bhi.n	800f0fe <GetLastFcntDown.constprop.0+0x32>
+ 800f0d2:	e8df f000 	tbb	[pc, r0]
+ 800f0d6:	0802      	.short	0x0802
+ 800f0d8:	100c      	.short	0x100c
+ 800f0da:	4b0a      	ldr	r3, [pc, #40]	; (800f104 <GetLastFcntDown.constprop.0+0x38>)
+ 800f0dc:	681b      	ldr	r3, [r3, #0]
+ 800f0de:	691b      	ldr	r3, [r3, #16]
+ 800f0e0:	600b      	str	r3, [r1, #0]
+ 800f0e2:	2000      	movs	r0, #0
+ 800f0e4:	4770      	bx	lr
+ 800f0e6:	4b07      	ldr	r3, [pc, #28]	; (800f104 <GetLastFcntDown.constprop.0+0x38>)
+ 800f0e8:	681b      	ldr	r3, [r3, #0]
+ 800f0ea:	695b      	ldr	r3, [r3, #20]
+ 800f0ec:	e7f8      	b.n	800f0e0 <GetLastFcntDown.constprop.0+0x14>
+ 800f0ee:	4b05      	ldr	r3, [pc, #20]	; (800f104 <GetLastFcntDown.constprop.0+0x38>)
+ 800f0f0:	681b      	ldr	r3, [r3, #0]
+ 800f0f2:	699b      	ldr	r3, [r3, #24]
+ 800f0f4:	e7f4      	b.n	800f0e0 <GetLastFcntDown.constprop.0+0x14>
+ 800f0f6:	4b03      	ldr	r3, [pc, #12]	; (800f104 <GetLastFcntDown.constprop.0+0x38>)
+ 800f0f8:	681b      	ldr	r3, [r3, #0]
+ 800f0fa:	69db      	ldr	r3, [r3, #28]
+ 800f0fc:	e7f0      	b.n	800f0e0 <GetLastFcntDown.constprop.0+0x14>
+ 800f0fe:	2005      	movs	r0, #5
+ 800f100:	4770      	bx	lr
+ 800f102:	bf00      	nop
+ 800f104:	20002614 	.word	0x20002614
+
+0800f108 <VerifyCmacB0.constprop.0.isra.0>:
+ 800f108:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800f10c:	b0c4      	sub	sp, #272	; 0x110
+ 800f10e:	460c      	mov	r4, r1
+ 800f110:	9e4a      	ldr	r6, [sp, #296]	; 0x128
+ 800f112:	4617      	mov	r7, r2
+ 800f114:	461d      	mov	r5, r3
+ 800f116:	4680      	mov	r8, r0
+ 800f118:	b3b8      	cbz	r0, 800f18a <VerifyCmacB0.constprop.0.isra.0+0x82>
+ 800f11a:	f5b1 7f80 	cmp.w	r1, #256	; 0x100
+ 800f11e:	d836      	bhi.n	800f18e <VerifyCmacB0.constprop.0.isra.0+0x86>
+ 800f120:	f44f 7288 	mov.w	r2, #272	; 0x110
+ 800f124:	2100      	movs	r1, #0
+ 800f126:	4668      	mov	r0, sp
+ 800f128:	f002 fb70 	bl	801180c <memset1>
+ 800f12c:	2349      	movs	r3, #73	; 0x49
+ 800f12e:	9300      	str	r3, [sp, #0]
+ 800f130:	f44f 7380 	mov.w	r3, #256	; 0x100
+ 800f134:	f8ad 3004 	strh.w	r3, [sp, #4]
+ 800f138:	0c2b      	lsrs	r3, r5, #16
+ 800f13a:	f88d 3008 	strb.w	r3, [sp, #8]
+ 800f13e:	0c33      	lsrs	r3, r6, #16
+ 800f140:	f8ad 5006 	strh.w	r5, [sp, #6]
+ 800f144:	f8ad 600a 	strh.w	r6, [sp, #10]
+ 800f148:	f88d 300c 	strb.w	r3, [sp, #12]
+ 800f14c:	4622      	mov	r2, r4
+ 800f14e:	2300      	movs	r3, #0
+ 800f150:	4641      	mov	r1, r8
+ 800f152:	a804      	add	r0, sp, #16
+ 800f154:	0e2d      	lsrs	r5, r5, #24
+ 800f156:	0e36      	lsrs	r6, r6, #24
+ 800f158:	f88d 300e 	strb.w	r3, [sp, #14]
+ 800f15c:	f88d 5009 	strb.w	r5, [sp, #9]
+ 800f160:	f88d 600d 	strb.w	r6, [sp, #13]
+ 800f164:	f88d 400f 	strb.w	r4, [sp, #15]
+ 800f168:	f002 fb3c 	bl	80117e4 <memcpy1>
+ 800f16c:	f104 0110 	add.w	r1, r4, #16
+ 800f170:	9a4b      	ldr	r2, [sp, #300]	; 0x12c
+ 800f172:	463b      	mov	r3, r7
+ 800f174:	b289      	uxth	r1, r1
+ 800f176:	4668      	mov	r0, sp
+ 800f178:	f002 f925 	bl	80113c6 <SecureElementVerifyAesCmac>
+ 800f17c:	b110      	cbz	r0, 800f184 <VerifyCmacB0.constprop.0.isra.0+0x7c>
+ 800f17e:	2801      	cmp	r0, #1
+ 800f180:	bf18      	it	ne
+ 800f182:	200f      	movne	r0, #15
+ 800f184:	b044      	add	sp, #272	; 0x110
+ 800f186:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800f18a:	200a      	movs	r0, #10
+ 800f18c:	e7fa      	b.n	800f184 <VerifyCmacB0.constprop.0.isra.0+0x7c>
+ 800f18e:	200e      	movs	r0, #14
+ 800f190:	e7f8      	b.n	800f184 <VerifyCmacB0.constprop.0.isra.0+0x7c>
+	...
+
+0800f194 <LoRaMacCryptoInit>:
+ 800f194:	b510      	push	{r4, lr}
+ 800f196:	b190      	cbz	r0, 800f1be <LoRaMacCryptoInit+0x2a>
+ 800f198:	4c0a      	ldr	r4, [pc, #40]	; (800f1c4 <LoRaMacCryptoInit+0x30>)
+ 800f19a:	2228      	movs	r2, #40	; 0x28
+ 800f19c:	2100      	movs	r1, #0
+ 800f19e:	6020      	str	r0, [r4, #0]
+ 800f1a0:	f002 fb34 	bl	801180c <memset1>
+ 800f1a4:	6823      	ldr	r3, [r4, #0]
+ 800f1a6:	4a08      	ldr	r2, [pc, #32]	; (800f1c8 <LoRaMacCryptoInit+0x34>)
+ 800f1a8:	601a      	str	r2, [r3, #0]
+ 800f1aa:	2000      	movs	r0, #0
+ 800f1ac:	f04f 32ff 	mov.w	r2, #4294967295
+ 800f1b0:	e9c3 0203 	strd	r0, r2, [r3, #12]
+ 800f1b4:	e9c3 2205 	strd	r2, r2, [r3, #20]
+ 800f1b8:	e9c3 2207 	strd	r2, r2, [r3, #28]
+ 800f1bc:	bd10      	pop	{r4, pc}
+ 800f1be:	2009      	movs	r0, #9
+ 800f1c0:	e7fc      	b.n	800f1bc <LoRaMacCryptoInit+0x28>
+ 800f1c2:	bf00      	nop
+ 800f1c4:	20002614 	.word	0x20002614
+ 800f1c8:	01010100 	.word	0x01010100
+
+0800f1cc <LoRaMacCryptoSetLrWanVersion>:
+ 800f1cc:	4b02      	ldr	r3, [pc, #8]	; (800f1d8 <LoRaMacCryptoSetLrWanVersion+0xc>)
+ 800f1ce:	681b      	ldr	r3, [r3, #0]
+ 800f1d0:	6018      	str	r0, [r3, #0]
+ 800f1d2:	2000      	movs	r0, #0
+ 800f1d4:	4770      	bx	lr
+ 800f1d6:	bf00      	nop
+ 800f1d8:	20002614 	.word	0x20002614
+
+0800f1dc <LoRaMacCryptoGetFCntUp>:
+ 800f1dc:	b130      	cbz	r0, 800f1ec <LoRaMacCryptoGetFCntUp+0x10>
+ 800f1de:	4b04      	ldr	r3, [pc, #16]	; (800f1f0 <LoRaMacCryptoGetFCntUp+0x14>)
+ 800f1e0:	681b      	ldr	r3, [r3, #0]
+ 800f1e2:	68db      	ldr	r3, [r3, #12]
+ 800f1e4:	3301      	adds	r3, #1
+ 800f1e6:	6003      	str	r3, [r0, #0]
+ 800f1e8:	2000      	movs	r0, #0
+ 800f1ea:	4770      	bx	lr
+ 800f1ec:	200a      	movs	r0, #10
+ 800f1ee:	4770      	bx	lr
+ 800f1f0:	20002614 	.word	0x20002614
+
+0800f1f4 <LoRaMacCryptoGetFCntDown>:
+ 800f1f4:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 800f1f6:	460e      	mov	r6, r1
+ 800f1f8:	2100      	movs	r1, #0
+ 800f1fa:	9101      	str	r1, [sp, #4]
+ 800f1fc:	461d      	mov	r5, r3
+ 800f1fe:	b333      	cbz	r3, 800f24e <LoRaMacCryptoGetFCntDown+0x5a>
+ 800f200:	a901      	add	r1, sp, #4
+ 800f202:	f7ff ff63 	bl	800f0cc <GetLastFcntDown.constprop.0>
+ 800f206:	b9d0      	cbnz	r0, 800f23e <LoRaMacCryptoGetFCntDown+0x4a>
+ 800f208:	9c01      	ldr	r4, [sp, #4]
+ 800f20a:	1c63      	adds	r3, r4, #1
+ 800f20c:	d004      	beq.n	800f218 <LoRaMacCryptoGetFCntDown+0x24>
+ 800f20e:	b2a3      	uxth	r3, r4
+ 800f210:	1ad3      	subs	r3, r2, r3
+ 800f212:	2b00      	cmp	r3, #0
+ 800f214:	dd10      	ble.n	800f238 <LoRaMacCryptoGetFCntDown+0x44>
+ 800f216:	18e2      	adds	r2, r4, r3
+ 800f218:	4b0e      	ldr	r3, [pc, #56]	; (800f254 <LoRaMacCryptoGetFCntDown+0x60>)
+ 800f21a:	602a      	str	r2, [r5, #0]
+ 800f21c:	681b      	ldr	r3, [r3, #0]
+ 800f21e:	789b      	ldrb	r3, [r3, #2]
+ 800f220:	b96b      	cbnz	r3, 800f23e <LoRaMacCryptoGetFCntDown+0x4a>
+ 800f222:	1b12      	subs	r2, r2, r4
+ 800f224:	eb63 0303 	sbc.w	r3, r3, r3
+ 800f228:	42b2      	cmp	r2, r6
+ 800f22a:	f173 0300 	sbcs.w	r3, r3, #0
+ 800f22e:	bfac      	ite	ge
+ 800f230:	2001      	movge	r0, #1
+ 800f232:	2000      	movlt	r0, #0
+ 800f234:	00c0      	lsls	r0, r0, #3
+ 800f236:	e002      	b.n	800f23e <LoRaMacCryptoGetFCntDown+0x4a>
+ 800f238:	d103      	bne.n	800f242 <LoRaMacCryptoGetFCntDown+0x4e>
+ 800f23a:	602c      	str	r4, [r5, #0]
+ 800f23c:	2007      	movs	r0, #7
+ 800f23e:	b002      	add	sp, #8
+ 800f240:	bd70      	pop	{r4, r5, r6, pc}
+ 800f242:	0c23      	lsrs	r3, r4, #16
+ 800f244:	041b      	lsls	r3, r3, #16
+ 800f246:	f503 3380 	add.w	r3, r3, #65536	; 0x10000
+ 800f24a:	441a      	add	r2, r3
+ 800f24c:	e7e4      	b.n	800f218 <LoRaMacCryptoGetFCntDown+0x24>
+ 800f24e:	200a      	movs	r0, #10
+ 800f250:	e7f5      	b.n	800f23e <LoRaMacCryptoGetFCntDown+0x4a>
+ 800f252:	bf00      	nop
+ 800f254:	20002614 	.word	0x20002614
+
+0800f258 <LoRaMacCryptoSetMulticastReference>:
+ 800f258:	b128      	cbz	r0, 800f266 <LoRaMacCryptoSetMulticastReference+0xe>
+ 800f25a:	4b04      	ldr	r3, [pc, #16]	; (800f26c <LoRaMacCryptoSetMulticastReference+0x14>)
+ 800f25c:	681b      	ldr	r3, [r3, #0]
+ 800f25e:	331c      	adds	r3, #28
+ 800f260:	6243      	str	r3, [r0, #36]	; 0x24
+ 800f262:	2000      	movs	r0, #0
+ 800f264:	4770      	bx	lr
+ 800f266:	200a      	movs	r0, #10
+ 800f268:	4770      	bx	lr
+ 800f26a:	bf00      	nop
+ 800f26c:	20002614 	.word	0x20002614
+
+0800f270 <LoRaMacCryptoPrepareJoinRequest>:
+ 800f270:	b51f      	push	{r0, r1, r2, r3, r4, lr}
+ 800f272:	4604      	mov	r4, r0
+ 800f274:	b1f0      	cbz	r0, 800f2b4 <LoRaMacCryptoPrepareJoinRequest+0x44>
+ 800f276:	2300      	movs	r3, #0
+ 800f278:	a803      	add	r0, sp, #12
+ 800f27a:	9303      	str	r3, [sp, #12]
+ 800f27c:	f002 f97a 	bl	8011574 <SecureElementRandomNumber>
+ 800f280:	4a0e      	ldr	r2, [pc, #56]	; (800f2bc <LoRaMacCryptoPrepareJoinRequest+0x4c>)
+ 800f282:	f8bd 300c 	ldrh.w	r3, [sp, #12]
+ 800f286:	6812      	ldr	r2, [r2, #0]
+ 800f288:	4620      	mov	r0, r4
+ 800f28a:	8093      	strh	r3, [r2, #4]
+ 800f28c:	82e3      	strh	r3, [r4, #22]
+ 800f28e:	f000 fa52 	bl	800f736 <LoRaMacSerializerJoinRequest>
+ 800f292:	b960      	cbnz	r0, 800f2ae <LoRaMacCryptoPrepareJoinRequest+0x3e>
+ 800f294:	f104 0318 	add.w	r3, r4, #24
+ 800f298:	9300      	str	r3, [sp, #0]
+ 800f29a:	6821      	ldr	r1, [r4, #0]
+ 800f29c:	2301      	movs	r3, #1
+ 800f29e:	2213      	movs	r2, #19
+ 800f2a0:	f002 f888 	bl	80113b4 <SecureElementComputeAesCmac>
+ 800f2a4:	b940      	cbnz	r0, 800f2b8 <LoRaMacCryptoPrepareJoinRequest+0x48>
+ 800f2a6:	4620      	mov	r0, r4
+ 800f2a8:	f000 fa45 	bl	800f736 <LoRaMacSerializerJoinRequest>
+ 800f2ac:	b100      	cbz	r0, 800f2b0 <LoRaMacCryptoPrepareJoinRequest+0x40>
+ 800f2ae:	2011      	movs	r0, #17
+ 800f2b0:	b004      	add	sp, #16
+ 800f2b2:	bd10      	pop	{r4, pc}
+ 800f2b4:	200a      	movs	r0, #10
+ 800f2b6:	e7fb      	b.n	800f2b0 <LoRaMacCryptoPrepareJoinRequest+0x40>
+ 800f2b8:	200f      	movs	r0, #15
+ 800f2ba:	e7f9      	b.n	800f2b0 <LoRaMacCryptoPrepareJoinRequest+0x40>
+ 800f2bc:	20002614 	.word	0x20002614
+
+0800f2c0 <LoRaMacCryptoSecureMessage>:
+ 800f2c0:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 800f2c2:	4605      	mov	r5, r0
+ 800f2c4:	b087      	sub	sp, #28
+ 800f2c6:	461c      	mov	r4, r3
+ 800f2c8:	b33b      	cbz	r3, 800f31a <LoRaMacCryptoSecureMessage+0x5a>
+ 800f2ca:	4e2f      	ldr	r6, [pc, #188]	; (800f388 <LoRaMacCryptoSecureMessage+0xc8>)
+ 800f2cc:	6833      	ldr	r3, [r6, #0]
+ 800f2ce:	68db      	ldr	r3, [r3, #12]
+ 800f2d0:	4283      	cmp	r3, r0
+ 800f2d2:	d857      	bhi.n	800f384 <LoRaMacCryptoSecureMessage+0xc4>
+ 800f2d4:	f894 2020 	ldrb.w	r2, [r4, #32]
+ 800f2d8:	2a00      	cmp	r2, #0
+ 800f2da:	bf14      	ite	ne
+ 800f2dc:	2209      	movne	r2, #9
+ 800f2de:	2208      	moveq	r2, #8
+ 800f2e0:	4283      	cmp	r3, r0
+ 800f2e2:	d305      	bcc.n	800f2f0 <LoRaMacCryptoSecureMessage+0x30>
+ 800f2e4:	4620      	mov	r0, r4
+ 800f2e6:	f000 fa5a 	bl	800f79e <LoRaMacSerializerData>
+ 800f2ea:	b170      	cbz	r0, 800f30a <LoRaMacCryptoSecureMessage+0x4a>
+ 800f2ec:	2011      	movs	r0, #17
+ 800f2ee:	e00a      	b.n	800f306 <LoRaMacCryptoSecureMessage+0x46>
+ 800f2f0:	2300      	movs	r3, #0
+ 800f2f2:	9001      	str	r0, [sp, #4]
+ 800f2f4:	9300      	str	r3, [sp, #0]
+ 800f2f6:	68a3      	ldr	r3, [r4, #8]
+ 800f2f8:	f894 1028 	ldrb.w	r1, [r4, #40]	; 0x28
+ 800f2fc:	6a60      	ldr	r0, [r4, #36]	; 0x24
+ 800f2fe:	f7ff fe8a 	bl	800f016 <PayloadEncrypt>
+ 800f302:	2800      	cmp	r0, #0
+ 800f304:	d0ee      	beq.n	800f2e4 <LoRaMacCryptoSecureMessage+0x24>
+ 800f306:	b007      	add	sp, #28
+ 800f308:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 800f30a:	7923      	ldrb	r3, [r4, #4]
+ 800f30c:	6821      	ldr	r1, [r4, #0]
+ 800f30e:	f8b4 c008 	ldrh.w	ip, [r4, #8]
+ 800f312:	68a7      	ldr	r7, [r4, #8]
+ 800f314:	3b04      	subs	r3, #4
+ 800f316:	b29a      	uxth	r2, r3
+ 800f318:	b909      	cbnz	r1, 800f31e <LoRaMacCryptoSecureMessage+0x5e>
+ 800f31a:	200a      	movs	r0, #10
+ 800f31c:	e7f3      	b.n	800f306 <LoRaMacCryptoSecureMessage+0x46>
+ 800f31e:	f5b2 7f80 	cmp.w	r2, #256	; 0x100
+ 800f322:	d82d      	bhi.n	800f380 <LoRaMacCryptoSecureMessage+0xc0>
+ 800f324:	f8ad c00e 	strh.w	ip, [sp, #14]
+ 800f328:	f88d 3017 	strb.w	r3, [sp, #23]
+ 800f32c:	ea4f 4c17 	mov.w	ip, r7, lsr #16
+ 800f330:	f104 032c 	add.w	r3, r4, #44	; 0x2c
+ 800f334:	0e3f      	lsrs	r7, r7, #24
+ 800f336:	f88d 7011 	strb.w	r7, [sp, #17]
+ 800f33a:	9300      	str	r3, [sp, #0]
+ 800f33c:	0c2f      	lsrs	r7, r5, #16
+ 800f33e:	2308      	movs	r3, #8
+ 800f340:	f04f 0e49 	mov.w	lr, #73	; 0x49
+ 800f344:	f8ad 000c 	strh.w	r0, [sp, #12]
+ 800f348:	f88d 7014 	strb.w	r7, [sp, #20]
+ 800f34c:	f88d 0016 	strb.w	r0, [sp, #22]
+ 800f350:	0e2f      	lsrs	r7, r5, #24
+ 800f352:	eb0d 0003 	add.w	r0, sp, r3
+ 800f356:	f8cd e008 	str.w	lr, [sp, #8]
+ 800f35a:	f88d c010 	strb.w	ip, [sp, #16]
+ 800f35e:	f8ad 5012 	strh.w	r5, [sp, #18]
+ 800f362:	f88d 7015 	strb.w	r7, [sp, #21]
+ 800f366:	f002 f825 	bl	80113b4 <SecureElementComputeAesCmac>
+ 800f36a:	b108      	cbz	r0, 800f370 <LoRaMacCryptoSecureMessage+0xb0>
+ 800f36c:	200f      	movs	r0, #15
+ 800f36e:	e7ca      	b.n	800f306 <LoRaMacCryptoSecureMessage+0x46>
+ 800f370:	4620      	mov	r0, r4
+ 800f372:	f000 fa14 	bl	800f79e <LoRaMacSerializerData>
+ 800f376:	2800      	cmp	r0, #0
+ 800f378:	d1b8      	bne.n	800f2ec <LoRaMacCryptoSecureMessage+0x2c>
+ 800f37a:	6833      	ldr	r3, [r6, #0]
+ 800f37c:	60dd      	str	r5, [r3, #12]
+ 800f37e:	e7c2      	b.n	800f306 <LoRaMacCryptoSecureMessage+0x46>
+ 800f380:	200e      	movs	r0, #14
+ 800f382:	e7c0      	b.n	800f306 <LoRaMacCryptoSecureMessage+0x46>
+ 800f384:	2006      	movs	r0, #6
+ 800f386:	e7be      	b.n	800f306 <LoRaMacCryptoSecureMessage+0x46>
+ 800f388:	20002614 	.word	0x20002614
+
+0800f38c <LoRaMacCryptoUnsecureMessage>:
+ 800f38c:	e92d 41ff 	stmdb	sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
+ 800f390:	9d0a      	ldr	r5, [sp, #40]	; 0x28
+ 800f392:	4680      	mov	r8, r0
+ 800f394:	460f      	mov	r7, r1
+ 800f396:	4616      	mov	r6, r2
+ 800f398:	461c      	mov	r4, r3
+ 800f39a:	2d00      	cmp	r5, #0
+ 800f39c:	d05a      	beq.n	800f454 <LoRaMacCryptoUnsecureMessage+0xc8>
+ 800f39e:	2300      	movs	r3, #0
+ 800f3a0:	a903      	add	r1, sp, #12
+ 800f3a2:	4610      	mov	r0, r2
+ 800f3a4:	9303      	str	r3, [sp, #12]
+ 800f3a6:	f7ff fe91 	bl	800f0cc <GetLastFcntDown.constprop.0>
+ 800f3aa:	b118      	cbz	r0, 800f3b4 <LoRaMacCryptoUnsecureMessage+0x28>
+ 800f3ac:	2006      	movs	r0, #6
+ 800f3ae:	b004      	add	sp, #16
+ 800f3b0:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800f3b4:	9b03      	ldr	r3, [sp, #12]
+ 800f3b6:	429c      	cmp	r4, r3
+ 800f3b8:	d801      	bhi.n	800f3be <LoRaMacCryptoUnsecureMessage+0x32>
+ 800f3ba:	3301      	adds	r3, #1
+ 800f3bc:	d1f6      	bne.n	800f3ac <LoRaMacCryptoUnsecureMessage+0x20>
+ 800f3be:	4628      	mov	r0, r5
+ 800f3c0:	f000 f95e 	bl	800f680 <LoRaMacParserData>
+ 800f3c4:	2800      	cmp	r0, #0
+ 800f3c6:	d147      	bne.n	800f458 <LoRaMacCryptoUnsecureMessage+0xcc>
+ 800f3c8:	4b26      	ldr	r3, [pc, #152]	; (800f464 <LoRaMacCryptoUnsecureMessage+0xd8>)
+ 800f3ca:	781a      	ldrb	r2, [r3, #0]
+ 800f3cc:	4542      	cmp	r2, r8
+ 800f3ce:	d003      	beq.n	800f3d8 <LoRaMacCryptoUnsecureMessage+0x4c>
+ 800f3d0:	791a      	ldrb	r2, [r3, #4]
+ 800f3d2:	4542      	cmp	r2, r8
+ 800f3d4:	d142      	bne.n	800f45c <LoRaMacCryptoUnsecureMessage+0xd0>
+ 800f3d6:	2001      	movs	r0, #1
+ 800f3d8:	68aa      	ldr	r2, [r5, #8]
+ 800f3da:	42ba      	cmp	r2, r7
+ 800f3dc:	d140      	bne.n	800f460 <LoRaMacCryptoUnsecureMessage+0xd4>
+ 800f3de:	eb03 0280 	add.w	r2, r3, r0, lsl #2
+ 800f3e2:	6aeb      	ldr	r3, [r5, #44]	; 0x2c
+ 800f3e4:	f892 8001 	ldrb.w	r8, [r2, #1]
+ 800f3e8:	7929      	ldrb	r1, [r5, #4]
+ 800f3ea:	e9cd 4300 	strd	r4, r3, [sp]
+ 800f3ee:	3904      	subs	r1, #4
+ 800f3f0:	7892      	ldrb	r2, [r2, #2]
+ 800f3f2:	6828      	ldr	r0, [r5, #0]
+ 800f3f4:	463b      	mov	r3, r7
+ 800f3f6:	b289      	uxth	r1, r1
+ 800f3f8:	f7ff fe86 	bl	800f108 <VerifyCmacB0.constprop.0.isra.0>
+ 800f3fc:	2800      	cmp	r0, #0
+ 800f3fe:	d1d6      	bne.n	800f3ae <LoRaMacCryptoUnsecureMessage+0x22>
+ 800f400:	f895 3020 	ldrb.w	r3, [r5, #32]
+ 800f404:	9401      	str	r4, [sp, #4]
+ 800f406:	2b00      	cmp	r3, #0
+ 800f408:	f04f 0301 	mov.w	r3, #1
+ 800f40c:	9300      	str	r3, [sp, #0]
+ 800f40e:	bf14      	ite	ne
+ 800f410:	4642      	movne	r2, r8
+ 800f412:	2208      	moveq	r2, #8
+ 800f414:	f895 1028 	ldrb.w	r1, [r5, #40]	; 0x28
+ 800f418:	6a68      	ldr	r0, [r5, #36]	; 0x24
+ 800f41a:	463b      	mov	r3, r7
+ 800f41c:	f7ff fdfb 	bl	800f016 <PayloadEncrypt>
+ 800f420:	2800      	cmp	r0, #0
+ 800f422:	d1c4      	bne.n	800f3ae <LoRaMacCryptoUnsecureMessage+0x22>
+ 800f424:	3e01      	subs	r6, #1
+ 800f426:	2e03      	cmp	r6, #3
+ 800f428:	d8c1      	bhi.n	800f3ae <LoRaMacCryptoUnsecureMessage+0x22>
+ 800f42a:	e8df f006 	tbb	[pc, r6]
+ 800f42e:	0702      	.short	0x0702
+ 800f430:	0f0b      	.short	0x0f0b
+ 800f432:	4b0d      	ldr	r3, [pc, #52]	; (800f468 <LoRaMacCryptoUnsecureMessage+0xdc>)
+ 800f434:	681b      	ldr	r3, [r3, #0]
+ 800f436:	611c      	str	r4, [r3, #16]
+ 800f438:	621c      	str	r4, [r3, #32]
+ 800f43a:	e7b8      	b.n	800f3ae <LoRaMacCryptoUnsecureMessage+0x22>
+ 800f43c:	4b0a      	ldr	r3, [pc, #40]	; (800f468 <LoRaMacCryptoUnsecureMessage+0xdc>)
+ 800f43e:	681b      	ldr	r3, [r3, #0]
+ 800f440:	615c      	str	r4, [r3, #20]
+ 800f442:	e7f9      	b.n	800f438 <LoRaMacCryptoUnsecureMessage+0xac>
+ 800f444:	4b08      	ldr	r3, [pc, #32]	; (800f468 <LoRaMacCryptoUnsecureMessage+0xdc>)
+ 800f446:	681b      	ldr	r3, [r3, #0]
+ 800f448:	619c      	str	r4, [r3, #24]
+ 800f44a:	e7f5      	b.n	800f438 <LoRaMacCryptoUnsecureMessage+0xac>
+ 800f44c:	4b06      	ldr	r3, [pc, #24]	; (800f468 <LoRaMacCryptoUnsecureMessage+0xdc>)
+ 800f44e:	681b      	ldr	r3, [r3, #0]
+ 800f450:	61dc      	str	r4, [r3, #28]
+ 800f452:	e7ac      	b.n	800f3ae <LoRaMacCryptoUnsecureMessage+0x22>
+ 800f454:	200a      	movs	r0, #10
+ 800f456:	e7aa      	b.n	800f3ae <LoRaMacCryptoUnsecureMessage+0x22>
+ 800f458:	2010      	movs	r0, #16
+ 800f45a:	e7a8      	b.n	800f3ae <LoRaMacCryptoUnsecureMessage+0x22>
+ 800f45c:	200c      	movs	r0, #12
+ 800f45e:	e7a6      	b.n	800f3ae <LoRaMacCryptoUnsecureMessage+0x22>
+ 800f460:	2002      	movs	r0, #2
+ 800f462:	e7a4      	b.n	800f3ae <LoRaMacCryptoUnsecureMessage+0x22>
+ 800f464:	200008b4 	.word	0x200008b4
+ 800f468:	20002614 	.word	0x20002614
+
+0800f46c <LoRaMacCryptoDeriveLifeTimeKey>:
+ 800f46c:	b51f      	push	{r0, r1, r2, r3, r4, lr}
+ 800f46e:	460a      	mov	r2, r1
+ 800f470:	2a0b      	cmp	r2, #11
+ 800f472:	f04f 0100 	mov.w	r1, #0
+ 800f476:	e9cd 1100 	strd	r1, r1, [sp]
+ 800f47a:	e9cd 1102 	strd	r1, r1, [sp, #8]
+ 800f47e:	d007      	beq.n	800f490 <LoRaMacCryptoDeriveLifeTimeKey+0x24>
+ 800f480:	2a0c      	cmp	r2, #12
+ 800f482:	d013      	beq.n	800f4ac <LoRaMacCryptoDeriveLifeTimeKey+0x40>
+ 800f484:	2a0a      	cmp	r2, #10
+ 800f486:	d00f      	beq.n	800f4a8 <LoRaMacCryptoDeriveLifeTimeKey+0x3c>
+ 800f488:	200b      	movs	r0, #11
+ 800f48a:	b005      	add	sp, #20
+ 800f48c:	f85d fb04 	ldr.w	pc, [sp], #4
+ 800f490:	2801      	cmp	r0, #1
+ 800f492:	d102      	bne.n	800f49a <LoRaMacCryptoDeriveLifeTimeKey+0x2e>
+ 800f494:	2320      	movs	r3, #32
+ 800f496:	f88d 3000 	strb.w	r3, [sp]
+ 800f49a:	4668      	mov	r0, sp
+ 800f49c:	f002 f813 	bl	80114c6 <SecureElementDeriveAndStoreKey>
+ 800f4a0:	2800      	cmp	r0, #0
+ 800f4a2:	bf18      	it	ne
+ 800f4a4:	200f      	movne	r0, #15
+ 800f4a6:	e7f0      	b.n	800f48a <LoRaMacCryptoDeriveLifeTimeKey+0x1e>
+ 800f4a8:	2330      	movs	r3, #48	; 0x30
+ 800f4aa:	e7f4      	b.n	800f496 <LoRaMacCryptoDeriveLifeTimeKey+0x2a>
+ 800f4ac:	210b      	movs	r1, #11
+ 800f4ae:	e7f4      	b.n	800f49a <LoRaMacCryptoDeriveLifeTimeKey+0x2e>
+
+0800f4b0 <LoRaMacCryptoSetKey>:
+ 800f4b0:	b538      	push	{r3, r4, r5, lr}
+ 800f4b2:	4605      	mov	r5, r0
+ 800f4b4:	f002 f802 	bl	80114bc <SecureElementSetKey>
+ 800f4b8:	4604      	mov	r4, r0
+ 800f4ba:	b978      	cbnz	r0, 800f4dc <LoRaMacCryptoSetKey+0x2c>
+ 800f4bc:	b97d      	cbnz	r5, 800f4de <LoRaMacCryptoSetKey+0x2e>
+ 800f4be:	4b09      	ldr	r3, [pc, #36]	; (800f4e4 <LoRaMacCryptoSetKey+0x34>)
+ 800f4c0:	681b      	ldr	r3, [r3, #0]
+ 800f4c2:	210b      	movs	r1, #11
+ 800f4c4:	7898      	ldrb	r0, [r3, #2]
+ 800f4c6:	f7ff ffd1 	bl	800f46c <LoRaMacCryptoDeriveLifeTimeKey>
+ 800f4ca:	b938      	cbnz	r0, 800f4dc <LoRaMacCryptoSetKey+0x2c>
+ 800f4cc:	210c      	movs	r1, #12
+ 800f4ce:	f7ff ffcd 	bl	800f46c <LoRaMacCryptoDeriveLifeTimeKey>
+ 800f4d2:	b918      	cbnz	r0, 800f4dc <LoRaMacCryptoSetKey+0x2c>
+ 800f4d4:	210a      	movs	r1, #10
+ 800f4d6:	f7ff ffc9 	bl	800f46c <LoRaMacCryptoDeriveLifeTimeKey>
+ 800f4da:	b100      	cbz	r0, 800f4de <LoRaMacCryptoSetKey+0x2e>
+ 800f4dc:	240f      	movs	r4, #15
+ 800f4de:	4620      	mov	r0, r4
+ 800f4e0:	bd38      	pop	{r3, r4, r5, pc}
+ 800f4e2:	bf00      	nop
+ 800f4e4:	20002614 	.word	0x20002614
+
+0800f4e8 <LoRaMacCryptoHandleJoinAccept>:
+ 800f4e8:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
+ 800f4ec:	4680      	mov	r8, r0
+ 800f4ee:	b08f      	sub	sp, #60	; 0x3c
+ 800f4f0:	460c      	mov	r4, r1
+ 800f4f2:	4617      	mov	r7, r2
+ 800f4f4:	2a00      	cmp	r2, #0
+ 800f4f6:	d06b      	beq.n	800f5d0 <LoRaMacCryptoHandleJoinAccept+0xe8>
+ 800f4f8:	2900      	cmp	r1, #0
+ 800f4fa:	d069      	beq.n	800f5d0 <LoRaMacCryptoHandleJoinAccept+0xe8>
+ 800f4fc:	2500      	movs	r5, #0
+ 800f4fe:	4629      	mov	r1, r5
+ 800f500:	221d      	movs	r2, #29
+ 800f502:	a806      	add	r0, sp, #24
+ 800f504:	9505      	str	r5, [sp, #20]
+ 800f506:	f004 fea3 	bl	8014250 <memset>
+ 800f50a:	f88d 5013 	strb.w	r5, [sp, #19]
+ 800f50e:	4d34      	ldr	r5, [pc, #208]	; (800f5e0 <LoRaMacCryptoHandleJoinAccept+0xf8>)
+ 800f510:	682b      	ldr	r3, [r5, #0]
+ 800f512:	f10d 0914 	add.w	r9, sp, #20
+ 800f516:	889e      	ldrh	r6, [r3, #4]
+ 800f518:	f8cd 9004 	str.w	r9, [sp, #4]
+ 800f51c:	f10d 0313 	add.w	r3, sp, #19
+ 800f520:	9302      	str	r3, [sp, #8]
+ 800f522:	793b      	ldrb	r3, [r7, #4]
+ 800f524:	9300      	str	r3, [sp, #0]
+ 800f526:	683b      	ldr	r3, [r7, #0]
+ 800f528:	4632      	mov	r2, r6
+ 800f52a:	4621      	mov	r1, r4
+ 800f52c:	4640      	mov	r0, r8
+ 800f52e:	f001 ffe6 	bl	80114fe <SecureElementProcessJoinAccept>
+ 800f532:	2800      	cmp	r0, #0
+ 800f534:	d14e      	bne.n	800f5d4 <LoRaMacCryptoHandleJoinAccept+0xec>
+ 800f536:	6838      	ldr	r0, [r7, #0]
+ 800f538:	793a      	ldrb	r2, [r7, #4]
+ 800f53a:	4649      	mov	r1, r9
+ 800f53c:	f002 f952 	bl	80117e4 <memcpy1>
+ 800f540:	4638      	mov	r0, r7
+ 800f542:	f000 f84f 	bl	800f5e4 <LoRaMacParserJoinAccept>
+ 800f546:	2800      	cmp	r0, #0
+ 800f548:	d146      	bne.n	800f5d8 <LoRaMacCryptoHandleJoinAccept+0xf0>
+ 800f54a:	7a3c      	ldrb	r4, [r7, #8]
+ 800f54c:	79fa      	ldrb	r2, [r7, #7]
+ 800f54e:	79bb      	ldrb	r3, [r7, #6]
+ 800f550:	0424      	lsls	r4, r4, #16
+ 800f552:	ea44 2402 	orr.w	r4, r4, r2, lsl #8
+ 800f556:	431c      	orrs	r4, r3
+ 800f558:	682b      	ldr	r3, [r5, #0]
+ 800f55a:	689a      	ldr	r2, [r3, #8]
+ 800f55c:	4294      	cmp	r4, r2
+ 800f55e:	d93d      	bls.n	800f5dc <LoRaMacCryptoHandleJoinAccept+0xf4>
+ 800f560:	609c      	str	r4, [r3, #8]
+ 800f562:	f89d 0013 	ldrb.w	r0, [sp, #19]
+ 800f566:	210b      	movs	r1, #11
+ 800f568:	f7ff ff80 	bl	800f46c <LoRaMacCryptoDeriveLifeTimeKey>
+ 800f56c:	4603      	mov	r3, r0
+ 800f56e:	bb58      	cbnz	r0, 800f5c8 <LoRaMacCryptoHandleJoinAccept+0xe0>
+ 800f570:	210c      	movs	r1, #12
+ 800f572:	f7ff ff7b 	bl	800f46c <LoRaMacCryptoDeriveLifeTimeKey>
+ 800f576:	4603      	mov	r3, r0
+ 800f578:	bb30      	cbnz	r0, 800f5c8 <LoRaMacCryptoHandleJoinAccept+0xe0>
+ 800f57a:	210a      	movs	r1, #10
+ 800f57c:	f7ff ff76 	bl	800f46c <LoRaMacCryptoDeriveLifeTimeKey>
+ 800f580:	4603      	mov	r3, r0
+ 800f582:	bb08      	cbnz	r0, 800f5c8 <LoRaMacCryptoHandleJoinAccept+0xe0>
+ 800f584:	7a7b      	ldrb	r3, [r7, #9]
+ 800f586:	7aba      	ldrb	r2, [r7, #10]
+ 800f588:	7aff      	ldrb	r7, [r7, #11]
+ 800f58a:	043f      	lsls	r7, r7, #16
+ 800f58c:	ea47 2702 	orr.w	r7, r7, r2, lsl #8
+ 800f590:	431f      	orrs	r7, r3
+ 800f592:	463a      	mov	r2, r7
+ 800f594:	4633      	mov	r3, r6
+ 800f596:	4621      	mov	r1, r4
+ 800f598:	2009      	movs	r0, #9
+ 800f59a:	f7ff fd19 	bl	800efd0 <DeriveSessionKey10x>
+ 800f59e:	4603      	mov	r3, r0
+ 800f5a0:	b990      	cbnz	r0, 800f5c8 <LoRaMacCryptoHandleJoinAccept+0xe0>
+ 800f5a2:	4633      	mov	r3, r6
+ 800f5a4:	463a      	mov	r2, r7
+ 800f5a6:	4621      	mov	r1, r4
+ 800f5a8:	2008      	movs	r0, #8
+ 800f5aa:	f7ff fd11 	bl	800efd0 <DeriveSessionKey10x>
+ 800f5ae:	4603      	mov	r3, r0
+ 800f5b0:	b950      	cbnz	r0, 800f5c8 <LoRaMacCryptoHandleJoinAccept+0xe0>
+ 800f5b2:	682a      	ldr	r2, [r5, #0]
+ 800f5b4:	f89d 1013 	ldrb.w	r1, [sp, #19]
+ 800f5b8:	7091      	strb	r1, [r2, #2]
+ 800f5ba:	2100      	movs	r1, #0
+ 800f5bc:	60d1      	str	r1, [r2, #12]
+ 800f5be:	f04f 31ff 	mov.w	r1, #4294967295
+ 800f5c2:	e9c2 1104 	strd	r1, r1, [r2, #16]
+ 800f5c6:	6191      	str	r1, [r2, #24]
+ 800f5c8:	4618      	mov	r0, r3
+ 800f5ca:	b00f      	add	sp, #60	; 0x3c
+ 800f5cc:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
+ 800f5d0:	230a      	movs	r3, #10
+ 800f5d2:	e7f9      	b.n	800f5c8 <LoRaMacCryptoHandleJoinAccept+0xe0>
+ 800f5d4:	230f      	movs	r3, #15
+ 800f5d6:	e7f7      	b.n	800f5c8 <LoRaMacCryptoHandleJoinAccept+0xe0>
+ 800f5d8:	2310      	movs	r3, #16
+ 800f5da:	e7f5      	b.n	800f5c8 <LoRaMacCryptoHandleJoinAccept+0xe0>
+ 800f5dc:	2303      	movs	r3, #3
+ 800f5de:	e7f3      	b.n	800f5c8 <LoRaMacCryptoHandleJoinAccept+0xe0>
+ 800f5e0:	20002614 	.word	0x20002614
+
+0800f5e4 <LoRaMacParserJoinAccept>:
+ 800f5e4:	b510      	push	{r4, lr}
+ 800f5e6:	4604      	mov	r4, r0
+ 800f5e8:	2800      	cmp	r0, #0
+ 800f5ea:	d045      	beq.n	800f678 <LoRaMacParserJoinAccept+0x94>
+ 800f5ec:	6801      	ldr	r1, [r0, #0]
+ 800f5ee:	2900      	cmp	r1, #0
+ 800f5f0:	d042      	beq.n	800f678 <LoRaMacParserJoinAccept+0x94>
+ 800f5f2:	f811 3b01 	ldrb.w	r3, [r1], #1
+ 800f5f6:	7143      	strb	r3, [r0, #5]
+ 800f5f8:	2203      	movs	r2, #3
+ 800f5fa:	3006      	adds	r0, #6
+ 800f5fc:	f002 f8f2 	bl	80117e4 <memcpy1>
+ 800f600:	4620      	mov	r0, r4
+ 800f602:	2203      	movs	r2, #3
+ 800f604:	f850 1b09 	ldr.w	r1, [r0], #9
+ 800f608:	3104      	adds	r1, #4
+ 800f60a:	f002 f8eb 	bl	80117e4 <memcpy1>
+ 800f60e:	6821      	ldr	r1, [r4, #0]
+ 800f610:	79cb      	ldrb	r3, [r1, #7]
+ 800f612:	60e3      	str	r3, [r4, #12]
+ 800f614:	7a0a      	ldrb	r2, [r1, #8]
+ 800f616:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
+ 800f61a:	60e3      	str	r3, [r4, #12]
+ 800f61c:	7a4a      	ldrb	r2, [r1, #9]
+ 800f61e:	ea43 4302 	orr.w	r3, r3, r2, lsl #16
+ 800f622:	60e3      	str	r3, [r4, #12]
+ 800f624:	7a8a      	ldrb	r2, [r1, #10]
+ 800f626:	ea43 6302 	orr.w	r3, r3, r2, lsl #24
+ 800f62a:	60e3      	str	r3, [r4, #12]
+ 800f62c:	7acb      	ldrb	r3, [r1, #11]
+ 800f62e:	7423      	strb	r3, [r4, #16]
+ 800f630:	7b0b      	ldrb	r3, [r1, #12]
+ 800f632:	7463      	strb	r3, [r4, #17]
+ 800f634:	7923      	ldrb	r3, [r4, #4]
+ 800f636:	2b21      	cmp	r3, #33	; 0x21
+ 800f638:	d11a      	bne.n	800f670 <LoRaMacParserJoinAccept+0x8c>
+ 800f63a:	2210      	movs	r2, #16
+ 800f63c:	310d      	adds	r1, #13
+ 800f63e:	f104 0012 	add.w	r0, r4, #18
+ 800f642:	f002 f8cf 	bl	80117e4 <memcpy1>
+ 800f646:	221d      	movs	r2, #29
+ 800f648:	6821      	ldr	r1, [r4, #0]
+ 800f64a:	1c50      	adds	r0, r2, #1
+ 800f64c:	5c8b      	ldrb	r3, [r1, r2]
+ 800f64e:	6263      	str	r3, [r4, #36]	; 0x24
+ 800f650:	5c08      	ldrb	r0, [r1, r0]
+ 800f652:	ea43 2300 	orr.w	r3, r3, r0, lsl #8
+ 800f656:	1c90      	adds	r0, r2, #2
+ 800f658:	6263      	str	r3, [r4, #36]	; 0x24
+ 800f65a:	5c08      	ldrb	r0, [r1, r0]
+ 800f65c:	3203      	adds	r2, #3
+ 800f65e:	ea43 4300 	orr.w	r3, r3, r0, lsl #16
+ 800f662:	6263      	str	r3, [r4, #36]	; 0x24
+ 800f664:	5c8a      	ldrb	r2, [r1, r2]
+ 800f666:	ea43 6302 	orr.w	r3, r3, r2, lsl #24
+ 800f66a:	6263      	str	r3, [r4, #36]	; 0x24
+ 800f66c:	2000      	movs	r0, #0
+ 800f66e:	bd10      	pop	{r4, pc}
+ 800f670:	2b11      	cmp	r3, #17
+ 800f672:	dc03      	bgt.n	800f67c <LoRaMacParserJoinAccept+0x98>
+ 800f674:	220d      	movs	r2, #13
+ 800f676:	e7e7      	b.n	800f648 <LoRaMacParserJoinAccept+0x64>
+ 800f678:	2002      	movs	r0, #2
+ 800f67a:	e7f8      	b.n	800f66e <LoRaMacParserJoinAccept+0x8a>
+ 800f67c:	2001      	movs	r0, #1
+ 800f67e:	e7f6      	b.n	800f66e <LoRaMacParserJoinAccept+0x8a>
+
+0800f680 <LoRaMacParserData>:
+ 800f680:	b510      	push	{r4, lr}
+ 800f682:	4604      	mov	r4, r0
+ 800f684:	2800      	cmp	r0, #0
+ 800f686:	d054      	beq.n	800f732 <LoRaMacParserData+0xb2>
+ 800f688:	6801      	ldr	r1, [r0, #0]
+ 800f68a:	2900      	cmp	r1, #0
+ 800f68c:	d051      	beq.n	800f732 <LoRaMacParserData+0xb2>
+ 800f68e:	780b      	ldrb	r3, [r1, #0]
+ 800f690:	7143      	strb	r3, [r0, #5]
+ 800f692:	784b      	ldrb	r3, [r1, #1]
+ 800f694:	6083      	str	r3, [r0, #8]
+ 800f696:	788a      	ldrb	r2, [r1, #2]
+ 800f698:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
+ 800f69c:	6083      	str	r3, [r0, #8]
+ 800f69e:	78ca      	ldrb	r2, [r1, #3]
+ 800f6a0:	ea43 4302 	orr.w	r3, r3, r2, lsl #16
+ 800f6a4:	6083      	str	r3, [r0, #8]
+ 800f6a6:	790a      	ldrb	r2, [r1, #4]
+ 800f6a8:	ea43 6302 	orr.w	r3, r3, r2, lsl #24
+ 800f6ac:	6083      	str	r3, [r0, #8]
+ 800f6ae:	794b      	ldrb	r3, [r1, #5]
+ 800f6b0:	7303      	strb	r3, [r0, #12]
+ 800f6b2:	798b      	ldrb	r3, [r1, #6]
+ 800f6b4:	81c3      	strh	r3, [r0, #14]
+ 800f6b6:	79ca      	ldrb	r2, [r1, #7]
+ 800f6b8:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
+ 800f6bc:	7b02      	ldrb	r2, [r0, #12]
+ 800f6be:	81c3      	strh	r3, [r0, #14]
+ 800f6c0:	f002 020f 	and.w	r2, r2, #15
+ 800f6c4:	3108      	adds	r1, #8
+ 800f6c6:	3010      	adds	r0, #16
+ 800f6c8:	f002 f88c 	bl	80117e4 <memcpy1>
+ 800f6cc:	7b23      	ldrb	r3, [r4, #12]
+ 800f6ce:	2200      	movs	r2, #0
+ 800f6d0:	f003 030f 	and.w	r3, r3, #15
+ 800f6d4:	f884 2020 	strb.w	r2, [r4, #32]
+ 800f6d8:	f884 2028 	strb.w	r2, [r4, #40]	; 0x28
+ 800f6dc:	7922      	ldrb	r2, [r4, #4]
+ 800f6de:	f103 0008 	add.w	r0, r3, #8
+ 800f6e2:	1a11      	subs	r1, r2, r0
+ 800f6e4:	2904      	cmp	r1, #4
+ 800f6e6:	dd0d      	ble.n	800f704 <LoRaMacParserData+0x84>
+ 800f6e8:	6821      	ldr	r1, [r4, #0]
+ 800f6ea:	3309      	adds	r3, #9
+ 800f6ec:	3a04      	subs	r2, #4
+ 800f6ee:	1ad2      	subs	r2, r2, r3
+ 800f6f0:	5c08      	ldrb	r0, [r1, r0]
+ 800f6f2:	f884 0020 	strb.w	r0, [r4, #32]
+ 800f6f6:	b2d2      	uxtb	r2, r2
+ 800f6f8:	6a60      	ldr	r0, [r4, #36]	; 0x24
+ 800f6fa:	f884 2028 	strb.w	r2, [r4, #40]	; 0x28
+ 800f6fe:	4419      	add	r1, r3
+ 800f700:	f002 f870 	bl	80117e4 <memcpy1>
+ 800f704:	7923      	ldrb	r3, [r4, #4]
+ 800f706:	6822      	ldr	r2, [r4, #0]
+ 800f708:	441a      	add	r2, r3
+ 800f70a:	2000      	movs	r0, #0
+ 800f70c:	f812 3c04 	ldrb.w	r3, [r2, #-4]
+ 800f710:	62e3      	str	r3, [r4, #44]	; 0x2c
+ 800f712:	f812 1c03 	ldrb.w	r1, [r2, #-3]
+ 800f716:	ea43 2301 	orr.w	r3, r3, r1, lsl #8
+ 800f71a:	62e3      	str	r3, [r4, #44]	; 0x2c
+ 800f71c:	f812 1c02 	ldrb.w	r1, [r2, #-2]
+ 800f720:	ea43 4301 	orr.w	r3, r3, r1, lsl #16
+ 800f724:	62e3      	str	r3, [r4, #44]	; 0x2c
+ 800f726:	f812 2c01 	ldrb.w	r2, [r2, #-1]
+ 800f72a:	ea43 6302 	orr.w	r3, r3, r2, lsl #24
+ 800f72e:	62e3      	str	r3, [r4, #44]	; 0x2c
+ 800f730:	bd10      	pop	{r4, pc}
+ 800f732:	2002      	movs	r0, #2
+ 800f734:	e7fc      	b.n	800f730 <LoRaMacParserData+0xb0>
+
+0800f736 <LoRaMacSerializerJoinRequest>:
+ 800f736:	b510      	push	{r4, lr}
+ 800f738:	4604      	mov	r4, r0
+ 800f73a:	b360      	cbz	r0, 800f796 <LoRaMacSerializerJoinRequest+0x60>
+ 800f73c:	6803      	ldr	r3, [r0, #0]
+ 800f73e:	b353      	cbz	r3, 800f796 <LoRaMacSerializerJoinRequest+0x60>
+ 800f740:	7902      	ldrb	r2, [r0, #4]
+ 800f742:	2a16      	cmp	r2, #22
+ 800f744:	d929      	bls.n	800f79a <LoRaMacSerializerJoinRequest+0x64>
+ 800f746:	7942      	ldrb	r2, [r0, #5]
+ 800f748:	701a      	strb	r2, [r3, #0]
+ 800f74a:	4601      	mov	r1, r0
+ 800f74c:	2208      	movs	r2, #8
+ 800f74e:	f851 0b06 	ldr.w	r0, [r1], #6
+ 800f752:	3001      	adds	r0, #1
+ 800f754:	f002 f850 	bl	80117f8 <memcpyr>
+ 800f758:	4621      	mov	r1, r4
+ 800f75a:	2208      	movs	r2, #8
+ 800f75c:	f851 0b0e 	ldr.w	r0, [r1], #14
+ 800f760:	3009      	adds	r0, #9
+ 800f762:	f002 f849 	bl	80117f8 <memcpyr>
+ 800f766:	6823      	ldr	r3, [r4, #0]
+ 800f768:	8ae2      	ldrh	r2, [r4, #22]
+ 800f76a:	745a      	strb	r2, [r3, #17]
+ 800f76c:	8ae3      	ldrh	r3, [r4, #22]
+ 800f76e:	6822      	ldr	r2, [r4, #0]
+ 800f770:	0a1b      	lsrs	r3, r3, #8
+ 800f772:	7493      	strb	r3, [r2, #18]
+ 800f774:	6823      	ldr	r3, [r4, #0]
+ 800f776:	69a2      	ldr	r2, [r4, #24]
+ 800f778:	74da      	strb	r2, [r3, #19]
+ 800f77a:	69a3      	ldr	r3, [r4, #24]
+ 800f77c:	6822      	ldr	r2, [r4, #0]
+ 800f77e:	0a1b      	lsrs	r3, r3, #8
+ 800f780:	7513      	strb	r3, [r2, #20]
+ 800f782:	6823      	ldr	r3, [r4, #0]
+ 800f784:	8b62      	ldrh	r2, [r4, #26]
+ 800f786:	755a      	strb	r2, [r3, #21]
+ 800f788:	6823      	ldr	r3, [r4, #0]
+ 800f78a:	7ee2      	ldrb	r2, [r4, #27]
+ 800f78c:	759a      	strb	r2, [r3, #22]
+ 800f78e:	2317      	movs	r3, #23
+ 800f790:	7123      	strb	r3, [r4, #4]
+ 800f792:	2000      	movs	r0, #0
+ 800f794:	bd10      	pop	{r4, pc}
+ 800f796:	2001      	movs	r0, #1
+ 800f798:	e7fc      	b.n	800f794 <LoRaMacSerializerJoinRequest+0x5e>
+ 800f79a:	2002      	movs	r0, #2
+ 800f79c:	e7fa      	b.n	800f794 <LoRaMacSerializerJoinRequest+0x5e>
+
+0800f79e <LoRaMacSerializerData>:
+ 800f79e:	b538      	push	{r3, r4, r5, lr}
+ 800f7a0:	4604      	mov	r4, r0
+ 800f7a2:	2800      	cmp	r0, #0
+ 800f7a4:	d063      	beq.n	800f86e <LoRaMacSerializerData+0xd0>
+ 800f7a6:	6801      	ldr	r1, [r0, #0]
+ 800f7a8:	2900      	cmp	r1, #0
+ 800f7aa:	d060      	beq.n	800f86e <LoRaMacSerializerData+0xd0>
+ 800f7ac:	7b03      	ldrb	r3, [r0, #12]
+ 800f7ae:	f890 2028 	ldrb.w	r2, [r0, #40]	; 0x28
+ 800f7b2:	f003 030f 	and.w	r3, r3, #15
+ 800f7b6:	2a00      	cmp	r2, #0
+ 800f7b8:	d157      	bne.n	800f86a <LoRaMacSerializerData+0xcc>
+ 800f7ba:	3308      	adds	r3, #8
+ 800f7bc:	7920      	ldrb	r0, [r4, #4]
+ 800f7be:	3204      	adds	r2, #4
+ 800f7c0:	4413      	add	r3, r2
+ 800f7c2:	4298      	cmp	r0, r3
+ 800f7c4:	d355      	bcc.n	800f872 <LoRaMacSerializerData+0xd4>
+ 800f7c6:	7963      	ldrb	r3, [r4, #5]
+ 800f7c8:	700b      	strb	r3, [r1, #0]
+ 800f7ca:	6823      	ldr	r3, [r4, #0]
+ 800f7cc:	68a2      	ldr	r2, [r4, #8]
+ 800f7ce:	705a      	strb	r2, [r3, #1]
+ 800f7d0:	68a3      	ldr	r3, [r4, #8]
+ 800f7d2:	6822      	ldr	r2, [r4, #0]
+ 800f7d4:	0a1b      	lsrs	r3, r3, #8
+ 800f7d6:	7093      	strb	r3, [r2, #2]
+ 800f7d8:	6823      	ldr	r3, [r4, #0]
+ 800f7da:	8962      	ldrh	r2, [r4, #10]
+ 800f7dc:	70da      	strb	r2, [r3, #3]
+ 800f7de:	6823      	ldr	r3, [r4, #0]
+ 800f7e0:	7ae2      	ldrb	r2, [r4, #11]
+ 800f7e2:	711a      	strb	r2, [r3, #4]
+ 800f7e4:	6823      	ldr	r3, [r4, #0]
+ 800f7e6:	7b22      	ldrb	r2, [r4, #12]
+ 800f7e8:	715a      	strb	r2, [r3, #5]
+ 800f7ea:	6823      	ldr	r3, [r4, #0]
+ 800f7ec:	89e2      	ldrh	r2, [r4, #14]
+ 800f7ee:	719a      	strb	r2, [r3, #6]
+ 800f7f0:	89e3      	ldrh	r3, [r4, #14]
+ 800f7f2:	6822      	ldr	r2, [r4, #0]
+ 800f7f4:	0a1b      	lsrs	r3, r3, #8
+ 800f7f6:	4621      	mov	r1, r4
+ 800f7f8:	71d3      	strb	r3, [r2, #7]
+ 800f7fa:	7b22      	ldrb	r2, [r4, #12]
+ 800f7fc:	f851 0b10 	ldr.w	r0, [r1], #16
+ 800f800:	f002 020f 	and.w	r2, r2, #15
+ 800f804:	3008      	adds	r0, #8
+ 800f806:	f001 ffed 	bl	80117e4 <memcpy1>
+ 800f80a:	7b23      	ldrb	r3, [r4, #12]
+ 800f80c:	f894 2028 	ldrb.w	r2, [r4, #40]	; 0x28
+ 800f810:	f003 030f 	and.w	r3, r3, #15
+ 800f814:	f103 0508 	add.w	r5, r3, #8
+ 800f818:	b12a      	cbz	r2, 800f826 <LoRaMacSerializerData+0x88>
+ 800f81a:	6822      	ldr	r2, [r4, #0]
+ 800f81c:	f894 1020 	ldrb.w	r1, [r4, #32]
+ 800f820:	5551      	strb	r1, [r2, r5]
+ 800f822:	f103 0509 	add.w	r5, r3, #9
+ 800f826:	6820      	ldr	r0, [r4, #0]
+ 800f828:	f894 2028 	ldrb.w	r2, [r4, #40]	; 0x28
+ 800f82c:	6a61      	ldr	r1, [r4, #36]	; 0x24
+ 800f82e:	4428      	add	r0, r5
+ 800f830:	f001 ffd8 	bl	80117e4 <memcpy1>
+ 800f834:	f894 3028 	ldrb.w	r3, [r4, #40]	; 0x28
+ 800f838:	6822      	ldr	r2, [r4, #0]
+ 800f83a:	6ae1      	ldr	r1, [r4, #44]	; 0x2c
+ 800f83c:	442b      	add	r3, r5
+ 800f83e:	54d1      	strb	r1, [r2, r3]
+ 800f840:	1c5a      	adds	r2, r3, #1
+ 800f842:	6ae1      	ldr	r1, [r4, #44]	; 0x2c
+ 800f844:	6820      	ldr	r0, [r4, #0]
+ 800f846:	b292      	uxth	r2, r2
+ 800f848:	0a09      	lsrs	r1, r1, #8
+ 800f84a:	5481      	strb	r1, [r0, r2]
+ 800f84c:	1c9a      	adds	r2, r3, #2
+ 800f84e:	6821      	ldr	r1, [r4, #0]
+ 800f850:	8de0      	ldrh	r0, [r4, #46]	; 0x2e
+ 800f852:	b292      	uxth	r2, r2
+ 800f854:	5488      	strb	r0, [r1, r2]
+ 800f856:	1cda      	adds	r2, r3, #3
+ 800f858:	6821      	ldr	r1, [r4, #0]
+ 800f85a:	f894 002f 	ldrb.w	r0, [r4, #47]	; 0x2f
+ 800f85e:	b292      	uxth	r2, r2
+ 800f860:	3304      	adds	r3, #4
+ 800f862:	5488      	strb	r0, [r1, r2]
+ 800f864:	7123      	strb	r3, [r4, #4]
+ 800f866:	2000      	movs	r0, #0
+ 800f868:	bd38      	pop	{r3, r4, r5, pc}
+ 800f86a:	3309      	adds	r3, #9
+ 800f86c:	e7a6      	b.n	800f7bc <LoRaMacSerializerData+0x1e>
+ 800f86e:	2001      	movs	r0, #1
+ 800f870:	e7fa      	b.n	800f868 <LoRaMacSerializerData+0xca>
+ 800f872:	2002      	movs	r0, #2
+ 800f874:	e7f8      	b.n	800f868 <LoRaMacSerializerData+0xca>
+	...
+
+0800f878 <NvmDataMgmtEvent>:
+ 800f878:	4b02      	ldr	r3, [pc, #8]	; (800f884 <NvmDataMgmtEvent+0xc>)
+ 800f87a:	881a      	ldrh	r2, [r3, #0]
+ 800f87c:	4310      	orrs	r0, r2
+ 800f87e:	8018      	strh	r0, [r3, #0]
+ 800f880:	4770      	bx	lr
+ 800f882:	bf00      	nop
+ 800f884:	20002618 	.word	0x20002618
+
+0800f888 <NvmDataMgmtStoreBegin>:
+ 800f888:	b508      	push	{r3, lr}
+ 800f88a:	4b07      	ldr	r3, [pc, #28]	; (800f8a8 <NvmDataMgmtStoreBegin+0x20>)
+ 800f88c:	881b      	ldrh	r3, [r3, #0]
+ 800f88e:	b13b      	cbz	r3, 800f8a0 <NvmDataMgmtStoreBegin+0x18>
+ 800f890:	f7fe fa28 	bl	800dce4 <LoRaMacStop>
+ 800f894:	2800      	cmp	r0, #0
+ 800f896:	bf0c      	ite	eq
+ 800f898:	2000      	moveq	r0, #0
+ 800f89a:	f06f 0002 	mvnne.w	r0, #2
+ 800f89e:	bd08      	pop	{r3, pc}
+ 800f8a0:	f06f 0001 	mvn.w	r0, #1
+ 800f8a4:	e7fb      	b.n	800f89e <NvmDataMgmtStoreBegin+0x16>
+ 800f8a6:	bf00      	nop
+ 800f8a8:	20002618 	.word	0x20002618
+
+0800f8ac <NvmDataMgmtStoreEnd>:
+ 800f8ac:	b510      	push	{r4, lr}
+ 800f8ae:	4b03      	ldr	r3, [pc, #12]	; (800f8bc <NvmDataMgmtStoreEnd+0x10>)
+ 800f8b0:	2400      	movs	r4, #0
+ 800f8b2:	801c      	strh	r4, [r3, #0]
+ 800f8b4:	f7fe fa0c 	bl	800dcd0 <LoRaMacStart>
+ 800f8b8:	4620      	mov	r0, r4
+ 800f8ba:	bd10      	pop	{r4, pc}
+ 800f8bc:	20002618 	.word	0x20002618
+
+0800f8c0 <RegionIsActive>:
+ 800f8c0:	fab0 f080 	clz	r0, r0
+ 800f8c4:	0940      	lsrs	r0, r0, #5
+ 800f8c6:	4770      	bx	lr
+
+0800f8c8 <RegionGetPhyParam>:
+ 800f8c8:	b082      	sub	sp, #8
+ 800f8ca:	b918      	cbnz	r0, 800f8d4 <RegionGetPhyParam+0xc>
+ 800f8cc:	4608      	mov	r0, r1
+ 800f8ce:	b002      	add	sp, #8
+ 800f8d0:	f000 b8d0 	b.w	800fa74 <RegionAS923GetPhyParam>
+ 800f8d4:	2000      	movs	r0, #0
+ 800f8d6:	b002      	add	sp, #8
+ 800f8d8:	4770      	bx	lr
+
+0800f8da <RegionSetBandTxDone>:
+ 800f8da:	b910      	cbnz	r0, 800f8e2 <RegionSetBandTxDone+0x8>
+ 800f8dc:	4608      	mov	r0, r1
+ 800f8de:	f000 b983 	b.w	800fbe8 <RegionAS923SetBandTxDone>
+ 800f8e2:	4770      	bx	lr
+
+0800f8e4 <RegionInitDefaults>:
+ 800f8e4:	b910      	cbnz	r0, 800f8ec <RegionInitDefaults+0x8>
+ 800f8e6:	4608      	mov	r0, r1
+ 800f8e8:	f000 b99a 	b.w	800fc20 <RegionAS923InitDefaults>
+ 800f8ec:	4770      	bx	lr
+
+0800f8ee <RegionVerify>:
+ 800f8ee:	4603      	mov	r3, r0
+ 800f8f0:	4608      	mov	r0, r1
+ 800f8f2:	4611      	mov	r1, r2
+ 800f8f4:	b90b      	cbnz	r3, 800f8fa <RegionVerify+0xc>
+ 800f8f6:	f000 b9e7 	b.w	800fcc8 <RegionAS923Verify>
+ 800f8fa:	2000      	movs	r0, #0
+ 800f8fc:	4770      	bx	lr
+
+0800f8fe <RegionApplyCFList>:
+ 800f8fe:	b910      	cbnz	r0, 800f906 <RegionApplyCFList+0x8>
+ 800f900:	4608      	mov	r0, r1
+ 800f902:	f000 bd45 	b.w	8010390 <RegionAS923ApplyCFList>
+ 800f906:	4770      	bx	lr
+
+0800f908 <RegionChanMaskSet>:
+ 800f908:	b910      	cbnz	r0, 800f910 <RegionChanMaskSet+0x8>
+ 800f90a:	4608      	mov	r0, r1
+ 800f90c:	f000 ba08 	b.w	800fd20 <RegionAS923ChanMaskSet>
+ 800f910:	2000      	movs	r0, #0
+ 800f912:	4770      	bx	lr
+
+0800f914 <RegionComputeRxWindowParameters>:
+ 800f914:	b410      	push	{r4}
+ 800f916:	4604      	mov	r4, r0
+ 800f918:	4608      	mov	r0, r1
+ 800f91a:	4611      	mov	r1, r2
+ 800f91c:	461a      	mov	r2, r3
+ 800f91e:	9b01      	ldr	r3, [sp, #4]
+ 800f920:	b914      	cbnz	r4, 800f928 <RegionComputeRxWindowParameters+0x14>
+ 800f922:	bc10      	pop	{r4}
+ 800f924:	f000 ba1a 	b.w	800fd5c <RegionAS923ComputeRxWindowParameters>
+ 800f928:	bc10      	pop	{r4}
+ 800f92a:	4770      	bx	lr
+
+0800f92c <RegionRxConfig>:
+ 800f92c:	4603      	mov	r3, r0
+ 800f92e:	4608      	mov	r0, r1
+ 800f930:	4611      	mov	r1, r2
+ 800f932:	b90b      	cbnz	r3, 800f938 <RegionRxConfig+0xc>
+ 800f934:	f000 ba44 	b.w	800fdc0 <RegionAS923RxConfig>
+ 800f938:	2000      	movs	r0, #0
+ 800f93a:	4770      	bx	lr
+
+0800f93c <RegionTxConfig>:
+ 800f93c:	b410      	push	{r4}
+ 800f93e:	4604      	mov	r4, r0
+ 800f940:	4608      	mov	r0, r1
+ 800f942:	4611      	mov	r1, r2
+ 800f944:	461a      	mov	r2, r3
+ 800f946:	b914      	cbnz	r4, 800f94e <RegionTxConfig+0x12>
+ 800f948:	bc10      	pop	{r4}
+ 800f94a:	f000 bab1 	b.w	800feb0 <RegionAS923TxConfig>
+ 800f94e:	2000      	movs	r0, #0
+ 800f950:	bc10      	pop	{r4}
+ 800f952:	4770      	bx	lr
+
+0800f954 <RegionLinkAdrReq>:
+ 800f954:	b430      	push	{r4, r5}
+ 800f956:	4605      	mov	r5, r0
+ 800f958:	4608      	mov	r0, r1
+ 800f95a:	4611      	mov	r1, r2
+ 800f95c:	461a      	mov	r2, r3
+ 800f95e:	e9dd 3402 	ldrd	r3, r4, [sp, #8]
+ 800f962:	b91d      	cbnz	r5, 800f96c <RegionLinkAdrReq+0x18>
+ 800f964:	9402      	str	r4, [sp, #8]
+ 800f966:	bc30      	pop	{r4, r5}
+ 800f968:	f000 bb2e 	b.w	800ffc8 <RegionAS923LinkAdrReq>
+ 800f96c:	2000      	movs	r0, #0
+ 800f96e:	bc30      	pop	{r4, r5}
+ 800f970:	4770      	bx	lr
+
+0800f972 <RegionRxParamSetupReq>:
+ 800f972:	b910      	cbnz	r0, 800f97a <RegionRxParamSetupReq+0x8>
+ 800f974:	4608      	mov	r0, r1
+ 800f976:	f000 bbdf 	b.w	8010138 <RegionAS923RxParamSetupReq>
+ 800f97a:	2000      	movs	r0, #0
+ 800f97c:	4770      	bx	lr
+
+0800f97e <RegionNewChannelReq>:
+ 800f97e:	b910      	cbnz	r0, 800f986 <RegionNewChannelReq+0x8>
+ 800f980:	4608      	mov	r0, r1
+ 800f982:	f000 bd43 	b.w	801040c <RegionAS923NewChannelReq>
+ 800f986:	2000      	movs	r0, #0
+ 800f988:	4770      	bx	lr
+
+0800f98a <RegionTxParamSetupReq>:
+ 800f98a:	b910      	cbnz	r0, 800f992 <RegionTxParamSetupReq+0x8>
+ 800f98c:	4608      	mov	r0, r1
+ 800f98e:	f000 bbee 	b.w	801016e <RegionAS923TxParamSetupReq>
+ 800f992:	2000      	movs	r0, #0
+ 800f994:	4770      	bx	lr
+
+0800f996 <RegionDlChannelReq>:
+ 800f996:	b910      	cbnz	r0, 800f99e <RegionDlChannelReq+0x8>
+ 800f998:	4608      	mov	r0, r1
+ 800f99a:	f000 bbeb 	b.w	8010174 <RegionAS923DlChannelReq>
+ 800f99e:	2000      	movs	r0, #0
+ 800f9a0:	4770      	bx	lr
+
+0800f9a2 <RegionAlternateDr>:
+ 800f9a2:	4603      	mov	r3, r0
+ 800f9a4:	4608      	mov	r0, r1
+ 800f9a6:	4611      	mov	r1, r2
+ 800f9a8:	b90b      	cbnz	r3, 800f9ae <RegionAlternateDr+0xc>
+ 800f9aa:	f000 bc05 	b.w	80101b8 <RegionAS923AlternateDr>
+ 800f9ae:	2000      	movs	r0, #0
+ 800f9b0:	4770      	bx	lr
+
+0800f9b2 <RegionNextChannel>:
+ 800f9b2:	b410      	push	{r4}
+ 800f9b4:	4604      	mov	r4, r0
+ 800f9b6:	4608      	mov	r0, r1
+ 800f9b8:	4611      	mov	r1, r2
+ 800f9ba:	461a      	mov	r2, r3
+ 800f9bc:	9b01      	ldr	r3, [sp, #4]
+ 800f9be:	b914      	cbnz	r4, 800f9c6 <RegionNextChannel+0x14>
+ 800f9c0:	bc10      	pop	{r4}
+ 800f9c2:	f000 bbfb 	b.w	80101bc <RegionAS923NextChannel>
+ 800f9c6:	2009      	movs	r0, #9
+ 800f9c8:	bc10      	pop	{r4}
+ 800f9ca:	4770      	bx	lr
+
+0800f9cc <RegionSetContinuousWave>:
+ 800f9cc:	b910      	cbnz	r0, 800f9d4 <RegionSetContinuousWave+0x8>
+ 800f9ce:	4608      	mov	r0, r1
+ 800f9d0:	f000 bd3c 	b.w	801044c <RegionAS923SetContinuousWave>
+ 800f9d4:	4770      	bx	lr
+
+0800f9d6 <RegionApplyDrOffset>:
+ 800f9d6:	b410      	push	{r4}
+ 800f9d8:	4604      	mov	r4, r0
+ 800f9da:	4608      	mov	r0, r1
+ 800f9dc:	4611      	mov	r1, r2
+ 800f9de:	461a      	mov	r2, r3
+ 800f9e0:	b914      	cbnz	r4, 800f9e8 <RegionApplyDrOffset+0x12>
+ 800f9e2:	bc10      	pop	{r4}
+ 800f9e4:	f000 bd5c 	b.w	80104a0 <RegionAS923ApplyDrOffset>
+ 800f9e8:	b2c8      	uxtb	r0, r1
+ 800f9ea:	bc10      	pop	{r4}
+ 800f9ec:	4770      	bx	lr
+	...
+
+0800f9f0 <RegionGetVersion>:
+ 800f9f0:	4800      	ldr	r0, [pc, #0]	; (800f9f4 <RegionGetVersion+0x4>)
+ 800f9f2:	4770      	bx	lr
+ 800f9f4:	01010003 	.word	0x01010003
+
+0800f9f8 <VerifyRfFreq>:
+ 800f9f8:	4b06      	ldr	r3, [pc, #24]	; (800fa14 <VerifyRfFreq+0x1c>)
+ 800f9fa:	b510      	push	{r4, lr}
+ 800f9fc:	6a1b      	ldr	r3, [r3, #32]
+ 800f9fe:	4604      	mov	r4, r0
+ 800fa00:	4798      	blx	r3
+ 800fa02:	b130      	cbz	r0, 800fa12 <VerifyRfFreq+0x1a>
+ 800fa04:	4804      	ldr	r0, [pc, #16]	; (800fa18 <VerifyRfFreq+0x20>)
+ 800fa06:	4b05      	ldr	r3, [pc, #20]	; (800fa1c <VerifyRfFreq+0x24>)
+ 800fa08:	4420      	add	r0, r4
+ 800fa0a:	4298      	cmp	r0, r3
+ 800fa0c:	bf8c      	ite	hi
+ 800fa0e:	2000      	movhi	r0, #0
+ 800fa10:	2001      	movls	r0, #1
+ 800fa12:	bd10      	pop	{r4, pc}
+ 800fa14:	08015784 	.word	0x08015784
+ 800fa18:	c9763540 	.word	0xc9763540
+ 800fa1c:	00c65d40 	.word	0x00c65d40
+
+0800fa20 <GetTimeOnAir>:
+ 800fa20:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 800fa22:	4b11      	ldr	r3, [pc, #68]	; (800fa68 <GetTimeOnAir+0x48>)
+ 800fa24:	b085      	sub	sp, #20
+ 800fa26:	460c      	mov	r4, r1
+ 800fa28:	4910      	ldr	r1, [pc, #64]	; (800fa6c <GetTimeOnAir+0x4c>)
+ 800fa2a:	561f      	ldrsb	r7, [r3, r0]
+ 800fa2c:	4605      	mov	r5, r0
+ 800fa2e:	f001 f845 	bl	8010abc <RegionCommonGetBandwidth>
+ 800fa32:	4b0f      	ldr	r3, [pc, #60]	; (800fa70 <GetTimeOnAir+0x50>)
+ 800fa34:	b2e4      	uxtb	r4, r4
+ 800fa36:	6a5e      	ldr	r6, [r3, #36]	; 0x24
+ 800fa38:	2d07      	cmp	r5, #7
+ 800fa3a:	f04f 0301 	mov.w	r3, #1
+ 800fa3e:	e9cd 4302 	strd	r4, r3, [sp, #8]
+ 800fa42:	4601      	mov	r1, r0
+ 800fa44:	d10a      	bne.n	800fa5c <GetTimeOnAir+0x3c>
+ 800fa46:	2205      	movs	r2, #5
+ 800fa48:	2300      	movs	r3, #0
+ 800fa4a:	e9cd 2300 	strd	r2, r3, [sp]
+ 800fa4e:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
+ 800fa52:	437a      	muls	r2, r7
+ 800fa54:	4618      	mov	r0, r3
+ 800fa56:	47b0      	blx	r6
+ 800fa58:	b005      	add	sp, #20
+ 800fa5a:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 800fa5c:	2208      	movs	r2, #8
+ 800fa5e:	2000      	movs	r0, #0
+ 800fa60:	e9cd 2000 	strd	r2, r0, [sp]
+ 800fa64:	463a      	mov	r2, r7
+ 800fa66:	e7f5      	b.n	800fa54 <GetTimeOnAir+0x34>
+ 800fa68:	0801514b 	.word	0x0801514b
+ 800fa6c:	08015124 	.word	0x08015124
+ 800fa70:	08015784 	.word	0x08015784
+
+0800fa74 <RegionAS923GetPhyParam>:
+ 800fa74:	b51f      	push	{r0, r1, r2, r3, r4, lr}
+ 800fa76:	2300      	movs	r3, #0
+ 800fa78:	9300      	str	r3, [sp, #0]
+ 800fa7a:	7803      	ldrb	r3, [r0, #0]
+ 800fa7c:	3b01      	subs	r3, #1
+ 800fa7e:	2b38      	cmp	r3, #56	; 0x38
+ 800fa80:	f200 8085 	bhi.w	800fb8e <RegionAS923GetPhyParam+0x11a>
+ 800fa84:	e8df f003 	tbb	[pc, r3]
+ 800fa88:	8383231d 	.word	0x8383231d
+ 800fa8c:	83832083 	.word	0x83832083
+ 800fa90:	42408383 	.word	0x42408383
+ 800fa94:	53834b44 	.word	0x53834b44
+ 800fa98:	5f5c5956 	.word	0x5f5c5956
+ 800fa9c:	6d836562 	.word	0x6d836562
+ 800faa0:	79746f20 	.word	0x79746f20
+ 800faa4:	807e7e7b 	.word	0x807e7e7b
+ 800faa8:	83832587 	.word	0x83832587
+ 800faac:	83838383 	.word	0x83838383
+ 800fab0:	83838383 	.word	0x83838383
+ 800fab4:	89838383 	.word	0x89838383
+ 800fab8:	8383908b 	.word	0x8383908b
+ 800fabc:	92839089 	.word	0x92839089
+ 800fac0:	96          	.byte	0x96
+ 800fac1:	00          	.byte	0x00
+ 800fac2:	78c3      	ldrb	r3, [r0, #3]
+ 800fac4:	2b00      	cmp	r3, #0
+ 800fac6:	d062      	beq.n	800fb8e <RegionAS923GetPhyParam+0x11a>
+ 800fac8:	2302      	movs	r3, #2
+ 800faca:	9300      	str	r3, [sp, #0]
+ 800facc:	e05f      	b.n	800fb8e <RegionAS923GetPhyParam+0x11a>
+ 800face:	7883      	ldrb	r3, [r0, #2]
+ 800fad0:	e7f8      	b.n	800fac4 <RegionAS923GetPhyParam+0x50>
+ 800fad2:	7843      	ldrb	r3, [r0, #1]
+ 800fad4:	f88d 3004 	strb.w	r3, [sp, #4]
+ 800fad8:	2307      	movs	r3, #7
+ 800fada:	f88d 3005 	strb.w	r3, [sp, #5]
+ 800fade:	7883      	ldrb	r3, [r0, #2]
+ 800fae0:	3b00      	subs	r3, #0
+ 800fae2:	bf18      	it	ne
+ 800fae4:	2301      	movne	r3, #1
+ 800fae6:	005b      	lsls	r3, r3, #1
+ 800fae8:	f88d 3006 	strb.w	r3, [sp, #6]
+ 800faec:	2310      	movs	r3, #16
+ 800faee:	f88d 3007 	strb.w	r3, [sp, #7]
+ 800faf2:	4b33      	ldr	r3, [pc, #204]	; (800fbc0 <RegionAS923GetPhyParam+0x14c>)
+ 800faf4:	681b      	ldr	r3, [r3, #0]
+ 800faf6:	a801      	add	r0, sp, #4
+ 800faf8:	f503 6290 	add.w	r2, r3, #1152	; 0x480
+ 800fafc:	e9cd 2302 	strd	r2, r3, [sp, #8]
+ 800fb00:	f000 ffbc 	bl	8010a7c <RegionCommonGetNextLowerTxDr>
+ 800fb04:	9000      	str	r0, [sp, #0]
+ 800fb06:	e042      	b.n	800fb8e <RegionAS923GetPhyParam+0x11a>
+ 800fb08:	2340      	movs	r3, #64	; 0x40
+ 800fb0a:	e7de      	b.n	800faca <RegionAS923GetPhyParam+0x56>
+ 800fb0c:	2320      	movs	r3, #32
+ 800fb0e:	e7dc      	b.n	800faca <RegionAS923GetPhyParam+0x56>
+ 800fb10:	7882      	ldrb	r2, [r0, #2]
+ 800fb12:	f990 3001 	ldrsb.w	r3, [r0, #1]
+ 800fb16:	b942      	cbnz	r2, 800fb2a <RegionAS923GetPhyParam+0xb6>
+ 800fb18:	4a2a      	ldr	r2, [pc, #168]	; (800fbc4 <RegionAS923GetPhyParam+0x150>)
+ 800fb1a:	5cd3      	ldrb	r3, [r2, r3]
+ 800fb1c:	e7d5      	b.n	800faca <RegionAS923GetPhyParam+0x56>
+ 800fb1e:	7882      	ldrb	r2, [r0, #2]
+ 800fb20:	f990 3001 	ldrsb.w	r3, [r0, #1]
+ 800fb24:	b90a      	cbnz	r2, 800fb2a <RegionAS923GetPhyParam+0xb6>
+ 800fb26:	4a28      	ldr	r2, [pc, #160]	; (800fbc8 <RegionAS923GetPhyParam+0x154>)
+ 800fb28:	e7f7      	b.n	800fb1a <RegionAS923GetPhyParam+0xa6>
+ 800fb2a:	4a28      	ldr	r2, [pc, #160]	; (800fbcc <RegionAS923GetPhyParam+0x158>)
+ 800fb2c:	e7f5      	b.n	800fb1a <RegionAS923GetPhyParam+0xa6>
+ 800fb2e:	f640 33b8 	movw	r3, #3000	; 0xbb8
+ 800fb32:	e7ca      	b.n	800faca <RegionAS923GetPhyParam+0x56>
+ 800fb34:	f44f 737a 	mov.w	r3, #1000	; 0x3e8
+ 800fb38:	e7c7      	b.n	800faca <RegionAS923GetPhyParam+0x56>
+ 800fb3a:	f44f 63fa 	mov.w	r3, #2000	; 0x7d0
+ 800fb3e:	e7c4      	b.n	800faca <RegionAS923GetPhyParam+0x56>
+ 800fb40:	f241 3388 	movw	r3, #5000	; 0x1388
+ 800fb44:	e7c1      	b.n	800faca <RegionAS923GetPhyParam+0x56>
+ 800fb46:	f241 7370 	movw	r3, #6000	; 0x1770
+ 800fb4a:	e7be      	b.n	800faca <RegionAS923GetPhyParam+0x56>
+ 800fb4c:	f44f 4380 	mov.w	r3, #16384	; 0x4000
+ 800fb50:	e7bb      	b.n	800faca <RegionAS923GetPhyParam+0x56>
+ 800fb52:	481f      	ldr	r0, [pc, #124]	; (800fbd0 <RegionAS923GetPhyParam+0x15c>)
+ 800fb54:	f44f 717a 	mov.w	r1, #1000	; 0x3e8
+ 800fb58:	f001 fe28 	bl	80117ac <randr>
+ 800fb5c:	f500 60fa 	add.w	r0, r0, #2000	; 0x7d0
+ 800fb60:	e7d0      	b.n	800fb04 <RegionAS923GetPhyParam+0x90>
+ 800fb62:	4b1c      	ldr	r3, [pc, #112]	; (800fbd4 <RegionAS923GetPhyParam+0x160>)
+ 800fb64:	e7b1      	b.n	800faca <RegionAS923GetPhyParam+0x56>
+ 800fb66:	4b16      	ldr	r3, [pc, #88]	; (800fbc0 <RegionAS923GetPhyParam+0x14c>)
+ 800fb68:	681b      	ldr	r3, [r3, #0]
+ 800fb6a:	f503 6390 	add.w	r3, r3, #1152	; 0x480
+ 800fb6e:	e7ac      	b.n	800faca <RegionAS923GetPhyParam+0x56>
+ 800fb70:	4b13      	ldr	r3, [pc, #76]	; (800fbc0 <RegionAS923GetPhyParam+0x14c>)
+ 800fb72:	681b      	ldr	r3, [r3, #0]
+ 800fb74:	f203 438c 	addw	r3, r3, #1164	; 0x48c
+ 800fb78:	e7a7      	b.n	800faca <RegionAS923GetPhyParam+0x56>
+ 800fb7a:	2310      	movs	r3, #16
+ 800fb7c:	e7a5      	b.n	800faca <RegionAS923GetPhyParam+0x56>
+ 800fb7e:	4b10      	ldr	r3, [pc, #64]	; (800fbc0 <RegionAS923GetPhyParam+0x14c>)
+ 800fb80:	681b      	ldr	r3, [r3, #0]
+ 800fb82:	e7a2      	b.n	800faca <RegionAS923GetPhyParam+0x56>
+ 800fb84:	2301      	movs	r3, #1
+ 800fb86:	e7a0      	b.n	800faca <RegionAS923GetPhyParam+0x56>
+ 800fb88:	f04f 4383 	mov.w	r3, #1098907648	; 0x41800000
+ 800fb8c:	9300      	str	r3, [sp, #0]
+ 800fb8e:	9800      	ldr	r0, [sp, #0]
+ 800fb90:	b005      	add	sp, #20
+ 800fb92:	f85d fb04 	ldr.w	pc, [sp], #4
+ 800fb96:	4b10      	ldr	r3, [pc, #64]	; (800fbd8 <RegionAS923GetPhyParam+0x164>)
+ 800fb98:	e7f8      	b.n	800fb8c <RegionAS923GetPhyParam+0x118>
+ 800fb9a:	4b10      	ldr	r3, [pc, #64]	; (800fbdc <RegionAS923GetPhyParam+0x168>)
+ 800fb9c:	e795      	b.n	800faca <RegionAS923GetPhyParam+0x56>
+ 800fb9e:	f240 2311 	movw	r3, #529	; 0x211
+ 800fba2:	f8ad 3000 	strh.w	r3, [sp]
+ 800fba6:	e7f2      	b.n	800fb8e <RegionAS923GetPhyParam+0x11a>
+ 800fba8:	2303      	movs	r3, #3
+ 800fbaa:	e78e      	b.n	800faca <RegionAS923GetPhyParam+0x56>
+ 800fbac:	f990 3001 	ldrsb.w	r3, [r0, #1]
+ 800fbb0:	4a0b      	ldr	r2, [pc, #44]	; (800fbe0 <RegionAS923GetPhyParam+0x16c>)
+ 800fbb2:	e7b2      	b.n	800fb1a <RegionAS923GetPhyParam+0xa6>
+ 800fbb4:	490b      	ldr	r1, [pc, #44]	; (800fbe4 <RegionAS923GetPhyParam+0x170>)
+ 800fbb6:	f990 0001 	ldrsb.w	r0, [r0, #1]
+ 800fbba:	f000 ff7f 	bl	8010abc <RegionCommonGetBandwidth>
+ 800fbbe:	e7a1      	b.n	800fb04 <RegionAS923GetPhyParam+0x90>
+ 800fbc0:	20002620 	.word	0x20002620
+ 800fbc4:	0801515b 	.word	0x0801515b
+ 800fbc8:	0801516b 	.word	0x0801516b
+ 800fbcc:	08015163 	.word	0x08015163
+ 800fbd0:	fffffc18 	.word	0xfffffc18
+ 800fbd4:	3706ea00 	.word	0x3706ea00
+ 800fbd8:	4009999a 	.word	0x4009999a
+ 800fbdc:	3709f740 	.word	0x3709f740
+ 800fbe0:	0801514b 	.word	0x0801514b
+ 800fbe4:	08015124 	.word	0x08015124
+
+0800fbe8 <RegionAS923SetBandTxDone>:
+ 800fbe8:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 800fbea:	4b0b      	ldr	r3, [pc, #44]	; (800fc18 <RegionAS923SetBandTxDone+0x30>)
+ 800fbec:	7802      	ldrb	r2, [r0, #0]
+ 800fbee:	681b      	ldr	r3, [r3, #0]
+ 800fbf0:	210c      	movs	r1, #12
+ 800fbf2:	fb01 3302 	mla	r3, r1, r2, r3
+ 800fbf6:	7a5b      	ldrb	r3, [r3, #9]
+ 800fbf8:	eb03 0443 	add.w	r4, r3, r3, lsl #1
+ 800fbfc:	4b07      	ldr	r3, [pc, #28]	; (800fc1c <RegionAS923SetBandTxDone+0x34>)
+ 800fbfe:	681d      	ldr	r5, [r3, #0]
+ 800fc00:	6903      	ldr	r3, [r0, #16]
+ 800fc02:	9300      	str	r3, [sp, #0]
+ 800fc04:	68c3      	ldr	r3, [r0, #12]
+ 800fc06:	7842      	ldrb	r2, [r0, #1]
+ 800fc08:	6881      	ldr	r1, [r0, #8]
+ 800fc0a:	eb05 00c4 	add.w	r0, r5, r4, lsl #3
+ 800fc0e:	f000 fcd5 	bl	80105bc <RegionCommonSetBandTxDone>
+ 800fc12:	b003      	add	sp, #12
+ 800fc14:	bd30      	pop	{r4, r5, pc}
+ 800fc16:	bf00      	nop
+ 800fc18:	20002620 	.word	0x20002620
+ 800fc1c:	2000261c 	.word	0x2000261c
+
+0800fc20 <RegionAS923InitDefaults>:
+ 800fc20:	b530      	push	{r4, r5, lr}
+ 800fc22:	b087      	sub	sp, #28
+ 800fc24:	7a02      	ldrb	r2, [r0, #8]
+ 800fc26:	2364      	movs	r3, #100	; 0x64
+ 800fc28:	f8ad 3000 	strh.w	r3, [sp]
+ 800fc2c:	2a01      	cmp	r2, #1
+ 800fc2e:	f04f 0300 	mov.w	r3, #0
+ 800fc32:	e9cd 3301 	strd	r3, r3, [sp, #4]
+ 800fc36:	e9cd 3303 	strd	r3, r3, [sp, #12]
+ 800fc3a:	4601      	mov	r1, r0
+ 800fc3c:	f88d 3002 	strb.w	r3, [sp, #2]
+ 800fc40:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800fc44:	d027      	beq.n	800fc96 <RegionAS923InitDefaults+0x76>
+ 800fc46:	2a02      	cmp	r2, #2
+ 800fc48:	d02e      	beq.n	800fca8 <RegionAS923InitDefaults+0x88>
+ 800fc4a:	bb12      	cbnz	r2, 800fc92 <RegionAS923InitDefaults+0x72>
+ 800fc4c:	6800      	ldr	r0, [r0, #0]
+ 800fc4e:	b300      	cbz	r0, 800fc92 <RegionAS923InitDefaults+0x72>
+ 800fc50:	684b      	ldr	r3, [r1, #4]
+ 800fc52:	b1f3      	cbz	r3, 800fc92 <RegionAS923InitDefaults+0x72>
+ 800fc54:	4a19      	ldr	r2, [pc, #100]	; (800fcbc <RegionAS923InitDefaults+0x9c>)
+ 800fc56:	4c1a      	ldr	r4, [pc, #104]	; (800fcc0 <RegionAS923InitDefaults+0xa0>)
+ 800fc58:	6010      	str	r0, [r2, #0]
+ 800fc5a:	4669      	mov	r1, sp
+ 800fc5c:	2218      	movs	r2, #24
+ 800fc5e:	6023      	str	r3, [r4, #0]
+ 800fc60:	f001 fdc0 	bl	80117e4 <memcpy1>
+ 800fc64:	4b17      	ldr	r3, [pc, #92]	; (800fcc4 <RegionAS923InitDefaults+0xa4>)
+ 800fc66:	6824      	ldr	r4, [r4, #0]
+ 800fc68:	e893 0007 	ldmia.w	r3, {r0, r1, r2}
+ 800fc6c:	330c      	adds	r3, #12
+ 800fc6e:	e884 0007 	stmia.w	r4, {r0, r1, r2}
+ 800fc72:	e893 0007 	ldmia.w	r3, {r0, r1, r2}
+ 800fc76:	f104 050c 	add.w	r5, r4, #12
+ 800fc7a:	2303      	movs	r3, #3
+ 800fc7c:	e885 0007 	stmia.w	r5, {r0, r1, r2}
+ 800fc80:	f8a4 348c 	strh.w	r3, [r4, #1164]	; 0x48c
+ 800fc84:	2201      	movs	r2, #1
+ 800fc86:	f204 418c 	addw	r1, r4, #1164	; 0x48c
+ 800fc8a:	f504 6090 	add.w	r0, r4, #1152	; 0x480
+ 800fc8e:	f000 fc86 	bl	801059e <RegionCommonChanMaskCopy>
+ 800fc92:	b007      	add	sp, #28
+ 800fc94:	bd30      	pop	{r4, r5, pc}
+ 800fc96:	490a      	ldr	r1, [pc, #40]	; (800fcc0 <RegionAS923InitDefaults+0xa0>)
+ 800fc98:	6808      	ldr	r0, [r1, #0]
+ 800fc9a:	6043      	str	r3, [r0, #4]
+ 800fc9c:	6103      	str	r3, [r0, #16]
+ 800fc9e:	f200 418c 	addw	r1, r0, #1164	; 0x48c
+ 800fca2:	f500 6090 	add.w	r0, r0, #1152	; 0x480
+ 800fca6:	e7f2      	b.n	800fc8e <RegionAS923InitDefaults+0x6e>
+ 800fca8:	4b05      	ldr	r3, [pc, #20]	; (800fcc0 <RegionAS923InitDefaults+0xa0>)
+ 800fcaa:	681b      	ldr	r3, [r3, #0]
+ 800fcac:	f8b3 2480 	ldrh.w	r2, [r3, #1152]	; 0x480
+ 800fcb0:	f8b3 148c 	ldrh.w	r1, [r3, #1164]	; 0x48c
+ 800fcb4:	430a      	orrs	r2, r1
+ 800fcb6:	f8a3 2480 	strh.w	r2, [r3, #1152]	; 0x480
+ 800fcba:	e7ea      	b.n	800fc92 <RegionAS923InitDefaults+0x72>
+ 800fcbc:	2000261c 	.word	0x2000261c
+ 800fcc0:	20002620 	.word	0x20002620
+ 800fcc4:	0801440c 	.word	0x0801440c
+
+0800fcc8 <RegionAS923Verify>:
+ 800fcc8:	b508      	push	{r3, lr}
+ 800fcca:	4603      	mov	r3, r0
+ 800fccc:	290a      	cmp	r1, #10
+ 800fcce:	d824      	bhi.n	800fd1a <RegionAS923Verify+0x52>
+ 800fcd0:	e8df f001 	tbb	[pc, r1]
+ 800fcd4:	23232306 	.word	0x23232306
+ 800fcd8:	1b160b23 	.word	0x1b160b23
+ 800fcdc:	2123      	.short	0x2123
+ 800fcde:	21          	.byte	0x21
+ 800fcdf:	00          	.byte	0x00
+ 800fce0:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 800fce4:	6800      	ldr	r0, [r0, #0]
+ 800fce6:	f7ff be87 	b.w	800f9f8 <VerifyRfFreq>
+ 800fcea:	f990 0000 	ldrsb.w	r0, [r0]
+ 800fcee:	7899      	ldrb	r1, [r3, #2]
+ 800fcf0:	2207      	movs	r2, #7
+ 800fcf2:	b971      	cbnz	r1, 800fd12 <RegionAS923Verify+0x4a>
+ 800fcf4:	f000 fc13 	bl	801051e <RegionCommonValueInRange>
+ 800fcf8:	3800      	subs	r0, #0
+ 800fcfa:	bf18      	it	ne
+ 800fcfc:	2001      	movne	r0, #1
+ 800fcfe:	bd08      	pop	{r3, pc}
+ 800fd00:	2205      	movs	r2, #5
+ 800fd02:	f993 0000 	ldrsb.w	r0, [r3]
+ 800fd06:	2100      	movs	r1, #0
+ 800fd08:	e7f4      	b.n	800fcf4 <RegionAS923Verify+0x2c>
+ 800fd0a:	f990 0000 	ldrsb.w	r0, [r0]
+ 800fd0e:	7859      	ldrb	r1, [r3, #1]
+ 800fd10:	e7ee      	b.n	800fcf0 <RegionAS923Verify+0x28>
+ 800fd12:	2102      	movs	r1, #2
+ 800fd14:	e7ee      	b.n	800fcf4 <RegionAS923Verify+0x2c>
+ 800fd16:	2207      	movs	r2, #7
+ 800fd18:	e7f3      	b.n	800fd02 <RegionAS923Verify+0x3a>
+ 800fd1a:	2000      	movs	r0, #0
+ 800fd1c:	e7ef      	b.n	800fcfe <RegionAS923Verify+0x36>
+	...
+
+0800fd20 <RegionAS923ChanMaskSet>:
+ 800fd20:	b510      	push	{r4, lr}
+ 800fd22:	7904      	ldrb	r4, [r0, #4]
+ 800fd24:	b11c      	cbz	r4, 800fd2e <RegionAS923ChanMaskSet+0xe>
+ 800fd26:	2c01      	cmp	r4, #1
+ 800fd28:	d00b      	beq.n	800fd42 <RegionAS923ChanMaskSet+0x22>
+ 800fd2a:	2000      	movs	r0, #0
+ 800fd2c:	bd10      	pop	{r4, pc}
+ 800fd2e:	4b0a      	ldr	r3, [pc, #40]	; (800fd58 <RegionAS923ChanMaskSet+0x38>)
+ 800fd30:	6801      	ldr	r1, [r0, #0]
+ 800fd32:	681b      	ldr	r3, [r3, #0]
+ 800fd34:	2201      	movs	r2, #1
+ 800fd36:	f503 6090 	add.w	r0, r3, #1152	; 0x480
+ 800fd3a:	f000 fc30 	bl	801059e <RegionCommonChanMaskCopy>
+ 800fd3e:	2001      	movs	r0, #1
+ 800fd40:	e7f4      	b.n	800fd2c <RegionAS923ChanMaskSet+0xc>
+ 800fd42:	4b05      	ldr	r3, [pc, #20]	; (800fd58 <RegionAS923ChanMaskSet+0x38>)
+ 800fd44:	6801      	ldr	r1, [r0, #0]
+ 800fd46:	681b      	ldr	r3, [r3, #0]
+ 800fd48:	4622      	mov	r2, r4
+ 800fd4a:	f203 408c 	addw	r0, r3, #1164	; 0x48c
+ 800fd4e:	f000 fc26 	bl	801059e <RegionCommonChanMaskCopy>
+ 800fd52:	4620      	mov	r0, r4
+ 800fd54:	e7ea      	b.n	800fd2c <RegionAS923ChanMaskSet+0xc>
+ 800fd56:	bf00      	nop
+ 800fd58:	20002620 	.word	0x20002620
+
+0800fd5c <RegionAS923ComputeRxWindowParameters>:
+ 800fd5c:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
+ 800fd5e:	2807      	cmp	r0, #7
+ 800fd60:	4d14      	ldr	r5, [pc, #80]	; (800fdb4 <RegionAS923ComputeRxWindowParameters+0x58>)
+ 800fd62:	461c      	mov	r4, r3
+ 800fd64:	bfa8      	it	ge
+ 800fd66:	2007      	movge	r0, #7
+ 800fd68:	7058      	strb	r0, [r3, #1]
+ 800fd6a:	460e      	mov	r6, r1
+ 800fd6c:	4629      	mov	r1, r5
+ 800fd6e:	4617      	mov	r7, r2
+ 800fd70:	f000 fea4 	bl	8010abc <RegionCommonGetBandwidth>
+ 800fd74:	f994 3001 	ldrsb.w	r3, [r4, #1]
+ 800fd78:	70a0      	strb	r0, [r4, #2]
+ 800fd7a:	2b07      	cmp	r3, #7
+ 800fd7c:	d113      	bne.n	800fda6 <RegionAS923ComputeRxWindowParameters+0x4a>
+ 800fd7e:	2032      	movs	r0, #50	; 0x32
+ 800fd80:	f000 fd9c 	bl	80108bc <RegionCommonComputeSymbolTimeFsk>
+ 800fd84:	4b0c      	ldr	r3, [pc, #48]	; (800fdb8 <RegionAS923ComputeRxWindowParameters+0x5c>)
+ 800fd86:	6ddb      	ldr	r3, [r3, #92]	; 0x5c
+ 800fd88:	4605      	mov	r5, r0
+ 800fd8a:	4798      	blx	r3
+ 800fd8c:	f104 020c 	add.w	r2, r4, #12
+ 800fd90:	3408      	adds	r4, #8
+ 800fd92:	4603      	mov	r3, r0
+ 800fd94:	9201      	str	r2, [sp, #4]
+ 800fd96:	9400      	str	r4, [sp, #0]
+ 800fd98:	463a      	mov	r2, r7
+ 800fd9a:	4631      	mov	r1, r6
+ 800fd9c:	4628      	mov	r0, r5
+ 800fd9e:	f000 fd92 	bl	80108c6 <RegionCommonComputeRxWindowParameters>
+ 800fda2:	b003      	add	sp, #12
+ 800fda4:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 800fda6:	4a05      	ldr	r2, [pc, #20]	; (800fdbc <RegionAS923ComputeRxWindowParameters+0x60>)
+ 800fda8:	f855 1023 	ldr.w	r1, [r5, r3, lsl #2]
+ 800fdac:	5cd0      	ldrb	r0, [r2, r3]
+ 800fdae:	f000 fd7d 	bl	80108ac <RegionCommonComputeSymbolTimeLoRa>
+ 800fdb2:	e7e7      	b.n	800fd84 <RegionAS923ComputeRxWindowParameters+0x28>
+ 800fdb4:	08015124 	.word	0x08015124
+ 800fdb8:	08015784 	.word	0x08015784
+ 800fdbc:	0801514b 	.word	0x0801514b
+
+0800fdc0 <RegionAS923RxConfig>:
+ 800fdc0:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 800fdc4:	4f34      	ldr	r7, [pc, #208]	; (800fe98 <RegionAS923RxConfig+0xd8>)
+ 800fdc6:	f990 6001 	ldrsb.w	r6, [r0, #1]
+ 800fdca:	687b      	ldr	r3, [r7, #4]
+ 800fdcc:	f8d0 9004 	ldr.w	r9, [r0, #4]
+ 800fdd0:	b08b      	sub	sp, #44	; 0x2c
+ 800fdd2:	4604      	mov	r4, r0
+ 800fdd4:	4688      	mov	r8, r1
+ 800fdd6:	4798      	blx	r3
+ 800fdd8:	4605      	mov	r5, r0
+ 800fdda:	2800      	cmp	r0, #0
+ 800fddc:	d159      	bne.n	800fe92 <RegionAS923RxConfig+0xd2>
+ 800fdde:	7ce3      	ldrb	r3, [r4, #19]
+ 800fde0:	b973      	cbnz	r3, 800fe00 <RegionAS923RxConfig+0x40>
+ 800fde2:	4a2e      	ldr	r2, [pc, #184]	; (800fe9c <RegionAS923RxConfig+0xdc>)
+ 800fde4:	7823      	ldrb	r3, [r4, #0]
+ 800fde6:	6812      	ldr	r2, [r2, #0]
+ 800fde8:	eb03 0343 	add.w	r3, r3, r3, lsl #1
+ 800fdec:	0099      	lsls	r1, r3, #2
+ 800fdee:	eb02 0383 	add.w	r3, r2, r3, lsl #2
+ 800fdf2:	f8d3 9004 	ldr.w	r9, [r3, #4]
+ 800fdf6:	f1b9 0f00 	cmp.w	r9, #0
+ 800fdfa:	d101      	bne.n	800fe00 <RegionAS923RxConfig+0x40>
+ 800fdfc:	f852 9001 	ldr.w	r9, [r2, r1]
+ 800fe00:	4b27      	ldr	r3, [pc, #156]	; (800fea0 <RegionAS923RxConfig+0xe0>)
+ 800fe02:	4648      	mov	r0, r9
+ 800fe04:	f913 b006 	ldrsb.w	fp, [r3, r6]
+ 800fe08:	68fb      	ldr	r3, [r7, #12]
+ 800fe0a:	4798      	blx	r3
+ 800fe0c:	7ca3      	ldrb	r3, [r4, #18]
+ 800fe0e:	f8d7 a018 	ldr.w	sl, [r7, #24]
+ 800fe12:	8922      	ldrh	r2, [r4, #8]
+ 800fe14:	9309      	str	r3, [sp, #36]	; 0x24
+ 800fe16:	2e07      	cmp	r6, #7
+ 800fe18:	d128      	bne.n	800fe6c <RegionAS923RxConfig+0xac>
+ 800fe1a:	2300      	movs	r3, #0
+ 800fe1c:	2101      	movs	r1, #1
+ 800fe1e:	e9cd 2302 	strd	r2, r3, [sp, #8]
+ 800fe22:	4a20      	ldr	r2, [pc, #128]	; (800fea4 <RegionAS923RxConfig+0xe4>)
+ 800fe24:	9306      	str	r3, [sp, #24]
+ 800fe26:	e9cd 3104 	strd	r3, r1, [sp, #16]
+ 800fe2a:	e9cd 3307 	strd	r3, r3, [sp, #28]
+ 800fe2e:	2105      	movs	r1, #5
+ 800fe30:	e9cd 2100 	strd	r2, r1, [sp]
+ 800fe34:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
+ 800fe38:	fb02 f20b 	mul.w	r2, r2, fp
+ 800fe3c:	f24c 3150 	movw	r1, #50000	; 0xc350
+ 800fe40:	4618      	mov	r0, r3
+ 800fe42:	47d0      	blx	sl
+ 800fe44:	7c63      	ldrb	r3, [r4, #17]
+ 800fe46:	b313      	cbz	r3, 800fe8e <RegionAS923RxConfig+0xce>
+ 800fe48:	4b17      	ldr	r3, [pc, #92]	; (800fea8 <RegionAS923RxConfig+0xe8>)
+ 800fe4a:	5d99      	ldrb	r1, [r3, r6]
+ 800fe4c:	6d7b      	ldr	r3, [r7, #84]	; 0x54
+ 800fe4e:	310d      	adds	r1, #13
+ 800fe50:	b2c9      	uxtb	r1, r1
+ 800fe52:	4628      	mov	r0, r5
+ 800fe54:	4798      	blx	r3
+ 800fe56:	7ce0      	ldrb	r0, [r4, #19]
+ 800fe58:	4632      	mov	r2, r6
+ 800fe5a:	4649      	mov	r1, r9
+ 800fe5c:	f000 fe40 	bl	8010ae0 <RegionCommonRxConfigPrint>
+ 800fe60:	f888 6000 	strb.w	r6, [r8]
+ 800fe64:	2001      	movs	r0, #1
+ 800fe66:	b00b      	add	sp, #44	; 0x2c
+ 800fe68:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 800fe6c:	2100      	movs	r1, #0
+ 800fe6e:	2501      	movs	r5, #1
+ 800fe70:	2308      	movs	r3, #8
+ 800fe72:	e9cd 1300 	strd	r1, r3, [sp]
+ 800fe76:	e9cd 1507 	strd	r1, r5, [sp, #28]
+ 800fe7a:	e9cd 1105 	strd	r1, r1, [sp, #20]
+ 800fe7e:	e9cd 1103 	strd	r1, r1, [sp, #12]
+ 800fe82:	9202      	str	r2, [sp, #8]
+ 800fe84:	78a1      	ldrb	r1, [r4, #2]
+ 800fe86:	462b      	mov	r3, r5
+ 800fe88:	465a      	mov	r2, fp
+ 800fe8a:	4628      	mov	r0, r5
+ 800fe8c:	e7d9      	b.n	800fe42 <RegionAS923RxConfig+0x82>
+ 800fe8e:	4b07      	ldr	r3, [pc, #28]	; (800feac <RegionAS923RxConfig+0xec>)
+ 800fe90:	e7db      	b.n	800fe4a <RegionAS923RxConfig+0x8a>
+ 800fe92:	2000      	movs	r0, #0
+ 800fe94:	e7e7      	b.n	800fe66 <RegionAS923RxConfig+0xa6>
+ 800fe96:	bf00      	nop
+ 800fe98:	08015784 	.word	0x08015784
+ 800fe9c:	20002620 	.word	0x20002620
+ 800fea0:	0801514b 	.word	0x0801514b
+ 800fea4:	00014585 	.word	0x00014585
+ 800fea8:	0801516b 	.word	0x0801516b
+ 800feac:	0801515b 	.word	0x0801515b
+
+0800feb0 <RegionAS923TxConfig>:
+ 800feb0:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 800feb4:	b08d      	sub	sp, #52	; 0x34
+ 800feb6:	f990 3001 	ldrsb.w	r3, [r0, #1]
+ 800feba:	f8df a0f8 	ldr.w	sl, [pc, #248]	; 800ffb4 <RegionAS923TxConfig+0x104>
+ 800febe:	f8df 90f8 	ldr.w	r9, [pc, #248]	; 800ffb8 <RegionAS923TxConfig+0x108>
+ 800fec2:	e9cd 120a 	strd	r1, r2, [sp, #40]	; 0x28
+ 800fec6:	4a3d      	ldr	r2, [pc, #244]	; (800ffbc <RegionAS923TxConfig+0x10c>)
+ 800fec8:	7801      	ldrb	r1, [r0, #0]
+ 800feca:	f912 b003 	ldrsb.w	fp, [r2, r3]
+ 800fece:	f8da 2000 	ldr.w	r2, [sl]
+ 800fed2:	4b3b      	ldr	r3, [pc, #236]	; (800ffc0 <RegionAS923TxConfig+0x110>)
+ 800fed4:	250c      	movs	r5, #12
+ 800fed6:	fb05 2201 	mla	r2, r5, r1, r2
+ 800feda:	681b      	ldr	r3, [r3, #0]
+ 800fedc:	7a52      	ldrb	r2, [r2, #9]
+ 800fede:	2118      	movs	r1, #24
+ 800fee0:	fb01 3302 	mla	r3, r1, r2, r3
+ 800fee4:	4604      	mov	r4, r0
+ 800fee6:	f993 1002 	ldrsb.w	r1, [r3, #2]
+ 800feea:	f990 0002 	ldrsb.w	r0, [r0, #2]
+ 800feee:	f000 fde0 	bl	8010ab2 <RegionCommonLimitTxPower>
+ 800fef2:	4934      	ldr	r1, [pc, #208]	; (800ffc4 <RegionAS923TxConfig+0x114>)
+ 800fef4:	4606      	mov	r6, r0
+ 800fef6:	f994 0001 	ldrsb.w	r0, [r4, #1]
+ 800fefa:	f000 fddf 	bl	8010abc <RegionCommonGetBandwidth>
+ 800fefe:	68a2      	ldr	r2, [r4, #8]
+ 800ff00:	6861      	ldr	r1, [r4, #4]
+ 800ff02:	4680      	mov	r8, r0
+ 800ff04:	4630      	mov	r0, r6
+ 800ff06:	f000 fd06 	bl	8010916 <RegionCommonComputeTxPower>
+ 800ff0a:	7821      	ldrb	r1, [r4, #0]
+ 800ff0c:	f8da 2000 	ldr.w	r2, [sl]
+ 800ff10:	f8d9 300c 	ldr.w	r3, [r9, #12]
+ 800ff14:	4369      	muls	r1, r5
+ 800ff16:	4607      	mov	r7, r0
+ 800ff18:	5850      	ldr	r0, [r2, r1]
+ 800ff1a:	4798      	blx	r3
+ 800ff1c:	f8d9 301c 	ldr.w	r3, [r9, #28]
+ 800ff20:	469c      	mov	ip, r3
+ 800ff22:	f994 3001 	ldrsb.w	r3, [r4, #1]
+ 800ff26:	2500      	movs	r5, #0
+ 800ff28:	2b07      	cmp	r3, #7
+ 800ff2a:	f44f 637a 	mov.w	r3, #4000	; 0xfa0
+ 800ff2e:	e9cd 5307 	strd	r5, r3, [sp, #28]
+ 800ff32:	e9cd 5505 	strd	r5, r5, [sp, #20]
+ 800ff36:	d12d      	bne.n	800ff94 <RegionAS923TxConfig+0xe4>
+ 800ff38:	2301      	movs	r3, #1
+ 800ff3a:	e9cd 5303 	strd	r5, r3, [sp, #12]
+ 800ff3e:	2305      	movs	r3, #5
+ 800ff40:	e9cd 5301 	strd	r5, r3, [sp, #4]
+ 800ff44:	f44f 737a 	mov.w	r3, #1000	; 0x3e8
+ 800ff48:	fb03 f30b 	mul.w	r3, r3, fp
+ 800ff4c:	9300      	str	r3, [sp, #0]
+ 800ff4e:	4639      	mov	r1, r7
+ 800ff50:	4643      	mov	r3, r8
+ 800ff52:	f246 12a8 	movw	r2, #25000	; 0x61a8
+ 800ff56:	4628      	mov	r0, r5
+ 800ff58:	4667      	mov	r7, ip
+ 800ff5a:	47b8      	blx	r7
+ 800ff5c:	7823      	ldrb	r3, [r4, #0]
+ 800ff5e:	f8da 2000 	ldr.w	r2, [sl]
+ 800ff62:	210c      	movs	r1, #12
+ 800ff64:	434b      	muls	r3, r1
+ 800ff66:	f994 1001 	ldrsb.w	r1, [r4, #1]
+ 800ff6a:	58d0      	ldr	r0, [r2, r3]
+ 800ff6c:	f000 fdda 	bl	8010b24 <RegionCommonTxConfigPrint>
+ 800ff70:	89a1      	ldrh	r1, [r4, #12]
+ 800ff72:	f994 0001 	ldrsb.w	r0, [r4, #1]
+ 800ff76:	f7ff fd53 	bl	800fa20 <GetTimeOnAir>
+ 800ff7a:	9b0b      	ldr	r3, [sp, #44]	; 0x2c
+ 800ff7c:	7b21      	ldrb	r1, [r4, #12]
+ 800ff7e:	6018      	str	r0, [r3, #0]
+ 800ff80:	f8d9 3054 	ldr.w	r3, [r9, #84]	; 0x54
+ 800ff84:	4628      	mov	r0, r5
+ 800ff86:	4798      	blx	r3
+ 800ff88:	9b0a      	ldr	r3, [sp, #40]	; 0x28
+ 800ff8a:	2001      	movs	r0, #1
+ 800ff8c:	701e      	strb	r6, [r3, #0]
+ 800ff8e:	b00d      	add	sp, #52	; 0x34
+ 800ff90:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 800ff94:	2001      	movs	r0, #1
+ 800ff96:	2308      	movs	r3, #8
+ 800ff98:	e9cd 5003 	strd	r5, r0, [sp, #12]
+ 800ff9c:	e9cd 0301 	strd	r0, r3, [sp, #4]
+ 800ffa0:	462a      	mov	r2, r5
+ 800ffa2:	f8cd b000 	str.w	fp, [sp]
+ 800ffa6:	4665      	mov	r5, ip
+ 800ffa8:	4643      	mov	r3, r8
+ 800ffaa:	4639      	mov	r1, r7
+ 800ffac:	47a8      	blx	r5
+ 800ffae:	2001      	movs	r0, #1
+ 800ffb0:	4605      	mov	r5, r0
+ 800ffb2:	e7d3      	b.n	800ff5c <RegionAS923TxConfig+0xac>
+ 800ffb4:	20002620 	.word	0x20002620
+ 800ffb8:	08015784 	.word	0x08015784
+ 800ffbc:	0801514b 	.word	0x0801514b
+ 800ffc0:	2000261c 	.word	0x2000261c
+ 800ffc4:	08015124 	.word	0x08015124
+
+0800ffc8 <RegionAS923LinkAdrReq>:
+ 800ffc8:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 800ffcc:	b08f      	sub	sp, #60	; 0x3c
+ 800ffce:	2400      	movs	r4, #0
+ 800ffd0:	4605      	mov	r5, r0
+ 800ffd2:	468a      	mov	sl, r1
+ 800ffd4:	4691      	mov	r9, r2
+ 800ffd6:	4698      	mov	r8, r3
+ 800ffd8:	9404      	str	r4, [sp, #16]
+ 800ffda:	f8ad 4014 	strh.w	r4, [sp, #20]
+ 800ffde:	f8ad 4002 	strh.w	r4, [sp, #2]
+ 800ffe2:	2607      	movs	r6, #7
+ 800ffe4:	f04f 0b01 	mov.w	fp, #1
+ 800ffe8:	7a2b      	ldrb	r3, [r5, #8]
+ 800ffea:	42a3      	cmp	r3, r4
+ 800ffec:	d906      	bls.n	800fffc <RegionAS923LinkAdrReq+0x34>
+ 800ffee:	6868      	ldr	r0, [r5, #4]
+ 800fff0:	a904      	add	r1, sp, #16
+ 800fff2:	4420      	add	r0, r4
+ 800fff4:	f000 fbf4 	bl	80107e0 <RegionCommonParseLinkAdrReq>
+ 800fff8:	2800      	cmp	r0, #0
+ 800fffa:	d15d      	bne.n	80100b8 <RegionAS923LinkAdrReq+0xf0>
+ 800fffc:	2302      	movs	r3, #2
+ 800fffe:	f88d 3008 	strb.w	r3, [sp, #8]
+ 8010002:	a802      	add	r0, sp, #8
+ 8010004:	7a6b      	ldrb	r3, [r5, #9]
+ 8010006:	f88d 300a 	strb.w	r3, [sp, #10]
+ 801000a:	f7ff fd33 	bl	800fa74 <RegionAS923GetPhyParam>
+ 801000e:	7aab      	ldrb	r3, [r5, #10]
+ 8010010:	f88d 301d 	strb.w	r3, [sp, #29]
+ 8010014:	f89d 3011 	ldrb.w	r3, [sp, #17]
+ 8010018:	f88d 301e 	strb.w	r3, [sp, #30]
+ 801001c:	f89d 3012 	ldrb.w	r3, [sp, #18]
+ 8010020:	f88d 301f 	strb.w	r3, [sp, #31]
+ 8010024:	f89d 3010 	ldrb.w	r3, [sp, #16]
+ 8010028:	f88d 3020 	strb.w	r3, [sp, #32]
+ 801002c:	7aeb      	ldrb	r3, [r5, #11]
+ 801002e:	f88d 3021 	strb.w	r3, [sp, #33]	; 0x21
+ 8010032:	7b2b      	ldrb	r3, [r5, #12]
+ 8010034:	f88d 3022 	strb.w	r3, [sp, #34]	; 0x22
+ 8010038:	7b6b      	ldrb	r3, [r5, #13]
+ 801003a:	f88d 3023 	strb.w	r3, [sp, #35]	; 0x23
+ 801003e:	2310      	movs	r3, #16
+ 8010040:	f88d 601c 	strb.w	r6, [sp, #28]
+ 8010044:	f88d 3024 	strb.w	r3, [sp, #36]	; 0x24
+ 8010048:	4e3a      	ldr	r6, [pc, #232]	; (8010134 <RegionAS923LinkAdrReq+0x16c>)
+ 801004a:	f88d 002c 	strb.w	r0, [sp, #44]	; 0x2c
+ 801004e:	f10d 0302 	add.w	r3, sp, #2
+ 8010052:	930a      	str	r3, [sp, #40]	; 0x28
+ 8010054:	2307      	movs	r3, #7
+ 8010056:	6832      	ldr	r2, [r6, #0]
+ 8010058:	f88d 302d 	strb.w	r3, [sp, #45]	; 0x2d
+ 801005c:	f8ad 3034 	strh.w	r3, [sp, #52]	; 0x34
+ 8010060:	682b      	ldr	r3, [r5, #0]
+ 8010062:	920c      	str	r2, [sp, #48]	; 0x30
+ 8010064:	9306      	str	r3, [sp, #24]
+ 8010066:	f10d 0212 	add.w	r2, sp, #18
+ 801006a:	ab04      	add	r3, sp, #16
+ 801006c:	f10d 0111 	add.w	r1, sp, #17
+ 8010070:	a806      	add	r0, sp, #24
+ 8010072:	f000 fbcf 	bl	8010814 <RegionCommonLinkAdrReqVerifyParams>
+ 8010076:	2807      	cmp	r0, #7
+ 8010078:	4605      	mov	r5, r0
+ 801007a:	d10b      	bne.n	8010094 <RegionAS923LinkAdrReq+0xcc>
+ 801007c:	6830      	ldr	r0, [r6, #0]
+ 801007e:	220c      	movs	r2, #12
+ 8010080:	2100      	movs	r1, #0
+ 8010082:	f500 6090 	add.w	r0, r0, #1152	; 0x480
+ 8010086:	f001 fbc1 	bl	801180c <memset1>
+ 801008a:	6833      	ldr	r3, [r6, #0]
+ 801008c:	f8bd 2002 	ldrh.w	r2, [sp, #2]
+ 8010090:	f8a3 2480 	strh.w	r2, [r3, #1152]	; 0x480
+ 8010094:	f89d 3011 	ldrb.w	r3, [sp, #17]
+ 8010098:	f88a 3000 	strb.w	r3, [sl]
+ 801009c:	f89d 3012 	ldrb.w	r3, [sp, #18]
+ 80100a0:	f889 3000 	strb.w	r3, [r9]
+ 80100a4:	f89d 3010 	ldrb.w	r3, [sp, #16]
+ 80100a8:	f888 3000 	strb.w	r3, [r8]
+ 80100ac:	9b18      	ldr	r3, [sp, #96]	; 0x60
+ 80100ae:	4628      	mov	r0, r5
+ 80100b0:	701c      	strb	r4, [r3, #0]
+ 80100b2:	b00f      	add	sp, #60	; 0x3c
+ 80100b4:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 80100b8:	f89d 3013 	ldrb.w	r3, [sp, #19]
+ 80100bc:	f8bd 7014 	ldrh.w	r7, [sp, #20]
+ 80100c0:	f8ad 7002 	strh.w	r7, [sp, #2]
+ 80100c4:	4420      	add	r0, r4
+ 80100c6:	b2c4      	uxtb	r4, r0
+ 80100c8:	b9f3      	cbnz	r3, 8010108 <RegionAS923LinkAdrReq+0x140>
+ 80100ca:	b317      	cbz	r7, 8010112 <RegionAS923LinkAdrReq+0x14a>
+ 80100cc:	4a19      	ldr	r2, [pc, #100]	; (8010134 <RegionAS923LinkAdrReq+0x16c>)
+ 80100ce:	2000      	movs	r0, #0
+ 80100d0:	6811      	ldr	r1, [r2, #0]
+ 80100d2:	2607      	movs	r6, #7
+ 80100d4:	4602      	mov	r2, r0
+ 80100d6:	f04f 0c0c 	mov.w	ip, #12
+ 80100da:	2b06      	cmp	r3, #6
+ 80100dc:	d11b      	bne.n	8010116 <RegionAS923LinkAdrReq+0x14e>
+ 80100de:	fb0c fe00 	mul.w	lr, ip, r0
+ 80100e2:	f851 e00e 	ldr.w	lr, [r1, lr]
+ 80100e6:	f1be 0f00 	cmp.w	lr, #0
+ 80100ea:	d004      	beq.n	80100f6 <RegionAS923LinkAdrReq+0x12e>
+ 80100ec:	fa0b f200 	lsl.w	r2, fp, r0
+ 80100f0:	433a      	orrs	r2, r7
+ 80100f2:	b297      	uxth	r7, r2
+ 80100f4:	2201      	movs	r2, #1
+ 80100f6:	3001      	adds	r0, #1
+ 80100f8:	2810      	cmp	r0, #16
+ 80100fa:	d1ee      	bne.n	80100da <RegionAS923LinkAdrReq+0x112>
+ 80100fc:	2a00      	cmp	r2, #0
+ 80100fe:	f43f af73 	beq.w	800ffe8 <RegionAS923LinkAdrReq+0x20>
+ 8010102:	f8ad 7002 	strh.w	r7, [sp, #2]
+ 8010106:	e76f      	b.n	800ffe8 <RegionAS923LinkAdrReq+0x20>
+ 8010108:	1e5a      	subs	r2, r3, #1
+ 801010a:	2a04      	cmp	r2, #4
+ 801010c:	d901      	bls.n	8010112 <RegionAS923LinkAdrReq+0x14a>
+ 801010e:	2b06      	cmp	r3, #6
+ 8010110:	d0dc      	beq.n	80100cc <RegionAS923LinkAdrReq+0x104>
+ 8010112:	2606      	movs	r6, #6
+ 8010114:	e768      	b.n	800ffe8 <RegionAS923LinkAdrReq+0x20>
+ 8010116:	fa47 fe00 	asr.w	lr, r7, r0
+ 801011a:	f01e 0f01 	tst.w	lr, #1
+ 801011e:	d0ea      	beq.n	80100f6 <RegionAS923LinkAdrReq+0x12e>
+ 8010120:	fb0c fe00 	mul.w	lr, ip, r0
+ 8010124:	f851 e00e 	ldr.w	lr, [r1, lr]
+ 8010128:	f1be 0f00 	cmp.w	lr, #0
+ 801012c:	bf08      	it	eq
+ 801012e:	2606      	moveq	r6, #6
+ 8010130:	e7e1      	b.n	80100f6 <RegionAS923LinkAdrReq+0x12e>
+ 8010132:	bf00      	nop
+ 8010134:	20002620 	.word	0x20002620
+
+08010138 <RegionAS923RxParamSetupReq>:
+ 8010138:	b538      	push	{r3, r4, r5, lr}
+ 801013a:	4605      	mov	r5, r0
+ 801013c:	6840      	ldr	r0, [r0, #4]
+ 801013e:	f7ff fc5b 	bl	800f9f8 <VerifyRfFreq>
+ 8010142:	2207      	movs	r2, #7
+ 8010144:	1d84      	adds	r4, r0, #6
+ 8010146:	2100      	movs	r1, #0
+ 8010148:	f995 0000 	ldrsb.w	r0, [r5]
+ 801014c:	b2e4      	uxtb	r4, r4
+ 801014e:	f000 f9e6 	bl	801051e <RegionCommonValueInRange>
+ 8010152:	b908      	cbnz	r0, 8010158 <RegionAS923RxParamSetupReq+0x20>
+ 8010154:	f004 04fd 	and.w	r4, r4, #253	; 0xfd
+ 8010158:	f995 0001 	ldrsb.w	r0, [r5, #1]
+ 801015c:	2207      	movs	r2, #7
+ 801015e:	2100      	movs	r1, #0
+ 8010160:	f000 f9dd 	bl	801051e <RegionCommonValueInRange>
+ 8010164:	b908      	cbnz	r0, 801016a <RegionAS923RxParamSetupReq+0x32>
+ 8010166:	f004 04fb 	and.w	r4, r4, #251	; 0xfb
+ 801016a:	4620      	mov	r0, r4
+ 801016c:	bd38      	pop	{r3, r4, r5, pc}
+
+0801016e <RegionAS923TxParamSetupReq>:
+ 801016e:	2000      	movs	r0, #0
+ 8010170:	4770      	bx	lr
+	...
+
+08010174 <RegionAS923DlChannelReq>:
+ 8010174:	b510      	push	{r4, lr}
+ 8010176:	7803      	ldrb	r3, [r0, #0]
+ 8010178:	2b0f      	cmp	r3, #15
+ 801017a:	4604      	mov	r4, r0
+ 801017c:	d818      	bhi.n	80101b0 <RegionAS923DlChannelReq+0x3c>
+ 801017e:	6840      	ldr	r0, [r0, #4]
+ 8010180:	f7ff fc3a 	bl	800f9f8 <VerifyRfFreq>
+ 8010184:	7822      	ldrb	r2, [r4, #0]
+ 8010186:	490b      	ldr	r1, [pc, #44]	; (80101b4 <RegionAS923DlChannelReq+0x40>)
+ 8010188:	eb02 0242 	add.w	r2, r2, r2, lsl #1
+ 801018c:	6809      	ldr	r1, [r1, #0]
+ 801018e:	1c83      	adds	r3, r0, #2
+ 8010190:	eb01 0082 	add.w	r0, r1, r2, lsl #2
+ 8010194:	f851 2022 	ldr.w	r2, [r1, r2, lsl #2]
+ 8010198:	b2db      	uxtb	r3, r3
+ 801019a:	b91a      	cbnz	r2, 80101a4 <RegionAS923DlChannelReq+0x30>
+ 801019c:	f003 03fd 	and.w	r3, r3, #253	; 0xfd
+ 80101a0:	b258      	sxtb	r0, r3
+ 80101a2:	bd10      	pop	{r4, pc}
+ 80101a4:	2b03      	cmp	r3, #3
+ 80101a6:	bf06      	itte	eq
+ 80101a8:	6862      	ldreq	r2, [r4, #4]
+ 80101aa:	6042      	streq	r2, [r0, #4]
+ 80101ac:	2302      	movne	r3, #2
+ 80101ae:	e7f7      	b.n	80101a0 <RegionAS923DlChannelReq+0x2c>
+ 80101b0:	2000      	movs	r0, #0
+ 80101b2:	e7f6      	b.n	80101a2 <RegionAS923DlChannelReq+0x2e>
+ 80101b4:	20002620 	.word	0x20002620
+
+080101b8 <RegionAS923AlternateDr>:
+ 80101b8:	2002      	movs	r0, #2
+ 80101ba:	4770      	bx	lr
+
+080101bc <RegionAS923NextChannel>:
+ 80101bc:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 80101c0:	4d3a      	ldr	r5, [pc, #232]	; (80102ac <RegionAS923NextChannel+0xf0>)
+ 80101c2:	4604      	mov	r4, r0
+ 80101c4:	6828      	ldr	r0, [r5, #0]
+ 80101c6:	b096      	sub	sp, #88	; 0x58
+ 80101c8:	460e      	mov	r6, r1
+ 80101ca:	4690      	mov	r8, r2
+ 80101cc:	2100      	movs	r1, #0
+ 80101ce:	461f      	mov	r7, r3
+ 80101d0:	2201      	movs	r2, #1
+ 80101d2:	2303      	movs	r3, #3
+ 80101d4:	f500 6090 	add.w	r0, r0, #1152	; 0x480
+ 80101d8:	e9cd 1104 	strd	r1, r1, [sp, #16]
+ 80101dc:	e9cd 1106 	strd	r1, r1, [sp, #24]
+ 80101e0:	f88d 100c 	strb.w	r1, [sp, #12]
+ 80101e4:	f88d 100d 	strb.w	r1, [sp, #13]
+ 80101e8:	f8ad 300e 	strh.w	r3, [sp, #14]
+ 80101ec:	f000 f9b9 	bl	8010562 <RegionCommonCountChannels>
+ 80101f0:	b930      	cbnz	r0, 8010200 <RegionAS923NextChannel+0x44>
+ 80101f2:	682a      	ldr	r2, [r5, #0]
+ 80101f4:	f8b2 3480 	ldrh.w	r3, [r2, #1152]	; 0x480
+ 80101f8:	f043 0303 	orr.w	r3, r3, #3
+ 80101fc:	f8a2 3480 	strh.w	r3, [r2, #1152]	; 0x480
+ 8010200:	682a      	ldr	r2, [r5, #0]
+ 8010202:	7a63      	ldrb	r3, [r4, #9]
+ 8010204:	f88d 3020 	strb.w	r3, [sp, #32]
+ 8010208:	f502 6190 	add.w	r1, r2, #1152	; 0x480
+ 801020c:	e9cd 1209 	strd	r1, r2, [sp, #36]	; 0x24
+ 8010210:	4a27      	ldr	r2, [pc, #156]	; (80102b0 <RegionAS923NextChannel+0xf4>)
+ 8010212:	f994 3008 	ldrsb.w	r3, [r4, #8]
+ 8010216:	6812      	ldr	r2, [r2, #0]
+ 8010218:	920b      	str	r2, [sp, #44]	; 0x2c
+ 801021a:	2210      	movs	r2, #16
+ 801021c:	f8ad 2030 	strh.w	r2, [sp, #48]	; 0x30
+ 8010220:	f10d 020e 	add.w	r2, sp, #14
+ 8010224:	920d      	str	r2, [sp, #52]	; 0x34
+ 8010226:	6822      	ldr	r2, [r4, #0]
+ 8010228:	920e      	str	r2, [sp, #56]	; 0x38
+ 801022a:	6862      	ldr	r2, [r4, #4]
+ 801022c:	920f      	str	r2, [sp, #60]	; 0x3c
+ 801022e:	e9d4 0103 	ldrd	r0, r1, [r4, #12]
+ 8010232:	7aa2      	ldrb	r2, [r4, #10]
+ 8010234:	f88d 2040 	strb.w	r2, [sp, #64]	; 0x40
+ 8010238:	2201      	movs	r2, #1
+ 801023a:	f88d 2041 	strb.w	r2, [sp, #65]	; 0x41
+ 801023e:	aa11      	add	r2, sp, #68	; 0x44
+ 8010240:	e882 0003 	stmia.w	r2, {r0, r1}
+ 8010244:	7d22      	ldrb	r2, [r4, #20]
+ 8010246:	8ae1      	ldrh	r1, [r4, #22]
+ 8010248:	f88d 3021 	strb.w	r3, [sp, #33]	; 0x21
+ 801024c:	4618      	mov	r0, r3
+ 801024e:	f88d 204c 	strb.w	r2, [sp, #76]	; 0x4c
+ 8010252:	f7ff fbe5 	bl	800fa20 <GetTimeOnAir>
+ 8010256:	ab08      	add	r3, sp, #32
+ 8010258:	9315      	str	r3, [sp, #84]	; 0x54
+ 801025a:	f10d 030d 	add.w	r3, sp, #13
+ 801025e:	9014      	str	r0, [sp, #80]	; 0x50
+ 8010260:	9300      	str	r3, [sp, #0]
+ 8010262:	f8cd 8004 	str.w	r8, [sp, #4]
+ 8010266:	ab03      	add	r3, sp, #12
+ 8010268:	aa04      	add	r2, sp, #16
+ 801026a:	4639      	mov	r1, r7
+ 801026c:	a80e      	add	r0, sp, #56	; 0x38
+ 801026e:	f000 fbc1 	bl	80109f4 <RegionCommonIdentifyChannels>
+ 8010272:	4604      	mov	r4, r0
+ 8010274:	b978      	cbnz	r0, 8010296 <RegionAS923NextChannel+0xda>
+ 8010276:	f89d 100c 	ldrb.w	r1, [sp, #12]
+ 801027a:	3901      	subs	r1, #1
+ 801027c:	f001 fa96 	bl	80117ac <randr>
+ 8010280:	f100 0358 	add.w	r3, r0, #88	; 0x58
+ 8010284:	eb0d 0003 	add.w	r0, sp, r3
+ 8010288:	f810 3c48 	ldrb.w	r3, [r0, #-72]
+ 801028c:	7033      	strb	r3, [r6, #0]
+ 801028e:	4620      	mov	r0, r4
+ 8010290:	b016      	add	sp, #88	; 0x58
+ 8010292:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 8010296:	280c      	cmp	r0, #12
+ 8010298:	bf01      	itttt	eq
+ 801029a:	682a      	ldreq	r2, [r5, #0]
+ 801029c:	f8b2 3480 	ldrheq.w	r3, [r2, #1152]	; 0x480
+ 80102a0:	f043 0303 	orreq.w	r3, r3, #3
+ 80102a4:	f8a2 3480 	strheq.w	r3, [r2, #1152]	; 0x480
+ 80102a8:	e7f1      	b.n	801028e <RegionAS923NextChannel+0xd2>
+ 80102aa:	bf00      	nop
+ 80102ac:	20002620 	.word	0x20002620
+ 80102b0:	2000261c 	.word	0x2000261c
+
+080102b4 <RegionAS923ChannelAdd>:
+ 80102b4:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 80102b6:	7906      	ldrb	r6, [r0, #4]
+ 80102b8:	2e01      	cmp	r6, #1
+ 80102ba:	4605      	mov	r5, r0
+ 80102bc:	d801      	bhi.n	80102c2 <RegionAS923ChannelAdd+0xe>
+ 80102be:	2006      	movs	r0, #6
+ 80102c0:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 80102c2:	2e0f      	cmp	r6, #15
+ 80102c4:	d82b      	bhi.n	801031e <RegionAS923ChannelAdd+0x6a>
+ 80102c6:	6803      	ldr	r3, [r0, #0]
+ 80102c8:	7a18      	ldrb	r0, [r3, #8]
+ 80102ca:	f340 0003 	sbfx	r0, r0, #0, #4
+ 80102ce:	2207      	movs	r2, #7
+ 80102d0:	2100      	movs	r1, #0
+ 80102d2:	b240      	sxtb	r0, r0
+ 80102d4:	f000 f923 	bl	801051e <RegionCommonValueInRange>
+ 80102d8:	682b      	ldr	r3, [r5, #0]
+ 80102da:	4604      	mov	r4, r0
+ 80102dc:	7a18      	ldrb	r0, [r3, #8]
+ 80102de:	f340 1003 	sbfx	r0, r0, #4, #4
+ 80102e2:	2207      	movs	r2, #7
+ 80102e4:	2100      	movs	r1, #0
+ 80102e6:	b240      	sxtb	r0, r0
+ 80102e8:	f000 f919 	bl	801051e <RegionCommonValueInRange>
+ 80102ec:	b1a8      	cbz	r0, 801031a <RegionAS923ChannelAdd+0x66>
+ 80102ee:	fab4 f484 	clz	r4, r4
+ 80102f2:	0964      	lsrs	r4, r4, #5
+ 80102f4:	6829      	ldr	r1, [r5, #0]
+ 80102f6:	7a0b      	ldrb	r3, [r1, #8]
+ 80102f8:	6808      	ldr	r0, [r1, #0]
+ 80102fa:	f343 0203 	sbfx	r2, r3, #0, #4
+ 80102fe:	f343 1303 	sbfx	r3, r3, #4, #4
+ 8010302:	b252      	sxtb	r2, r2
+ 8010304:	b25b      	sxtb	r3, r3
+ 8010306:	429a      	cmp	r2, r3
+ 8010308:	bfc8      	it	gt
+ 801030a:	2401      	movgt	r4, #1
+ 801030c:	f7ff fb74 	bl	800f9f8 <VerifyRfFreq>
+ 8010310:	b948      	cbnz	r0, 8010326 <RegionAS923ChannelAdd+0x72>
+ 8010312:	2c00      	cmp	r4, #0
+ 8010314:	d1d3      	bne.n	80102be <RegionAS923ChannelAdd+0xa>
+ 8010316:	2004      	movs	r0, #4
+ 8010318:	e7d2      	b.n	80102c0 <RegionAS923ChannelAdd+0xc>
+ 801031a:	2401      	movs	r4, #1
+ 801031c:	e7ea      	b.n	80102f4 <RegionAS923ChannelAdd+0x40>
+ 801031e:	2003      	movs	r0, #3
+ 8010320:	e7ce      	b.n	80102c0 <RegionAS923ChannelAdd+0xc>
+ 8010322:	2005      	movs	r0, #5
+ 8010324:	e7cc      	b.n	80102c0 <RegionAS923ChannelAdd+0xc>
+ 8010326:	2c00      	cmp	r4, #0
+ 8010328:	d1fb      	bne.n	8010322 <RegionAS923ChannelAdd+0x6e>
+ 801032a:	4f0c      	ldr	r7, [pc, #48]	; (801035c <RegionAS923ChannelAdd+0xa8>)
+ 801032c:	6829      	ldr	r1, [r5, #0]
+ 801032e:	683b      	ldr	r3, [r7, #0]
+ 8010330:	eb06 0046 	add.w	r0, r6, r6, lsl #1
+ 8010334:	eb03 0080 	add.w	r0, r3, r0, lsl #2
+ 8010338:	220c      	movs	r2, #12
+ 801033a:	f001 fa53 	bl	80117e4 <memcpy1>
+ 801033e:	683a      	ldr	r2, [r7, #0]
+ 8010340:	230c      	movs	r3, #12
+ 8010342:	fb03 2306 	mla	r3, r3, r6, r2
+ 8010346:	4620      	mov	r0, r4
+ 8010348:	725c      	strb	r4, [r3, #9]
+ 801034a:	f8b2 1480 	ldrh.w	r1, [r2, #1152]	; 0x480
+ 801034e:	2301      	movs	r3, #1
+ 8010350:	40b3      	lsls	r3, r6
+ 8010352:	430b      	orrs	r3, r1
+ 8010354:	f8a2 3480 	strh.w	r3, [r2, #1152]	; 0x480
+ 8010358:	e7b2      	b.n	80102c0 <RegionAS923ChannelAdd+0xc>
+ 801035a:	bf00      	nop
+ 801035c:	20002620 	.word	0x20002620
+
+08010360 <RegionAS923ChannelsRemove>:
+ 8010360:	b410      	push	{r4}
+ 8010362:	7801      	ldrb	r1, [r0, #0]
+ 8010364:	2901      	cmp	r1, #1
+ 8010366:	d90e      	bls.n	8010386 <RegionAS923ChannelsRemove+0x26>
+ 8010368:	4b08      	ldr	r3, [pc, #32]	; (801038c <RegionAS923ChannelsRemove+0x2c>)
+ 801036a:	6818      	ldr	r0, [r3, #0]
+ 801036c:	230c      	movs	r3, #12
+ 801036e:	434b      	muls	r3, r1
+ 8010370:	18c4      	adds	r4, r0, r3
+ 8010372:	2200      	movs	r2, #0
+ 8010374:	50c2      	str	r2, [r0, r3]
+ 8010376:	e9c4 2201 	strd	r2, r2, [r4, #4]
+ 801037a:	f500 6090 	add.w	r0, r0, #1152	; 0x480
+ 801037e:	bc10      	pop	{r4}
+ 8010380:	2210      	movs	r2, #16
+ 8010382:	f000 b8d5 	b.w	8010530 <RegionCommonChanDisable>
+ 8010386:	2000      	movs	r0, #0
+ 8010388:	bc10      	pop	{r4}
+ 801038a:	4770      	bx	lr
+ 801038c:	20002620 	.word	0x20002620
+
+08010390 <RegionAS923ApplyCFList>:
+ 8010390:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8010394:	b086      	sub	sp, #24
+ 8010396:	2350      	movs	r3, #80	; 0x50
+ 8010398:	f88d 3014 	strb.w	r3, [sp, #20]
+ 801039c:	7903      	ldrb	r3, [r0, #4]
+ 801039e:	2b10      	cmp	r3, #16
+ 80103a0:	4607      	mov	r7, r0
+ 80103a2:	d130      	bne.n	8010406 <RegionAS923ApplyCFList+0x76>
+ 80103a4:	6803      	ldr	r3, [r0, #0]
+ 80103a6:	7bdd      	ldrb	r5, [r3, #15]
+ 80103a8:	bb6d      	cbnz	r5, 8010406 <RegionAS923ApplyCFList+0x76>
+ 80103aa:	2402      	movs	r4, #2
+ 80103ac:	46a8      	mov	r8, r5
+ 80103ae:	2664      	movs	r6, #100	; 0x64
+ 80103b0:	2c06      	cmp	r4, #6
+ 80103b2:	d814      	bhi.n	80103de <RegionAS923ApplyCFList+0x4e>
+ 80103b4:	683a      	ldr	r2, [r7, #0]
+ 80103b6:	5d53      	ldrb	r3, [r2, r5]
+ 80103b8:	9303      	str	r3, [sp, #12]
+ 80103ba:	442a      	add	r2, r5
+ 80103bc:	7851      	ldrb	r1, [r2, #1]
+ 80103be:	ea43 2301 	orr.w	r3, r3, r1, lsl #8
+ 80103c2:	9303      	str	r3, [sp, #12]
+ 80103c4:	7892      	ldrb	r2, [r2, #2]
+ 80103c6:	ea43 4302 	orr.w	r3, r3, r2, lsl #16
+ 80103ca:	4373      	muls	r3, r6
+ 80103cc:	e9cd 3803 	strd	r3, r8, [sp, #12]
+ 80103d0:	b963      	cbnz	r3, 80103ec <RegionAS923ApplyCFList+0x5c>
+ 80103d2:	4668      	mov	r0, sp
+ 80103d4:	f88d 4000 	strb.w	r4, [sp]
+ 80103d8:	f7ff ffc2 	bl	8010360 <RegionAS923ChannelsRemove>
+ 80103dc:	e00d      	b.n	80103fa <RegionAS923ApplyCFList+0x6a>
+ 80103de:	f8cd 800c 	str.w	r8, [sp, #12]
+ 80103e2:	f88d 8014 	strb.w	r8, [sp, #20]
+ 80103e6:	f8cd 8010 	str.w	r8, [sp, #16]
+ 80103ea:	e7f2      	b.n	80103d2 <RegionAS923ApplyCFList+0x42>
+ 80103ec:	ab03      	add	r3, sp, #12
+ 80103ee:	a801      	add	r0, sp, #4
+ 80103f0:	9301      	str	r3, [sp, #4]
+ 80103f2:	f88d 4008 	strb.w	r4, [sp, #8]
+ 80103f6:	f7ff ff5d 	bl	80102b4 <RegionAS923ChannelAdd>
+ 80103fa:	3401      	adds	r4, #1
+ 80103fc:	b2e4      	uxtb	r4, r4
+ 80103fe:	2c10      	cmp	r4, #16
+ 8010400:	f105 0503 	add.w	r5, r5, #3
+ 8010404:	d1d4      	bne.n	80103b0 <RegionAS923ApplyCFList+0x20>
+ 8010406:	b006      	add	sp, #24
+ 8010408:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+
+0801040c <RegionAS923NewChannelReq>:
+ 801040c:	b51f      	push	{r0, r1, r2, r3, r4, lr}
+ 801040e:	6802      	ldr	r2, [r0, #0]
+ 8010410:	7903      	ldrb	r3, [r0, #4]
+ 8010412:	6811      	ldr	r1, [r2, #0]
+ 8010414:	b951      	cbnz	r1, 801042c <RegionAS923NewChannelReq+0x20>
+ 8010416:	a801      	add	r0, sp, #4
+ 8010418:	f88d 3004 	strb.w	r3, [sp, #4]
+ 801041c:	f7ff ffa0 	bl	8010360 <RegionAS923ChannelsRemove>
+ 8010420:	b978      	cbnz	r0, 8010442 <RegionAS923NewChannelReq+0x36>
+ 8010422:	2000      	movs	r0, #0
+ 8010424:	b240      	sxtb	r0, r0
+ 8010426:	b005      	add	sp, #20
+ 8010428:	f85d fb04 	ldr.w	pc, [sp], #4
+ 801042c:	a802      	add	r0, sp, #8
+ 801042e:	9202      	str	r2, [sp, #8]
+ 8010430:	f88d 300c 	strb.w	r3, [sp, #12]
+ 8010434:	f7ff ff3e 	bl	80102b4 <RegionAS923ChannelAdd>
+ 8010438:	2806      	cmp	r0, #6
+ 801043a:	d8f2      	bhi.n	8010422 <RegionAS923NewChannelReq+0x16>
+ 801043c:	4b02      	ldr	r3, [pc, #8]	; (8010448 <RegionAS923NewChannelReq+0x3c>)
+ 801043e:	5c18      	ldrb	r0, [r3, r0]
+ 8010440:	e7f0      	b.n	8010424 <RegionAS923NewChannelReq+0x18>
+ 8010442:	2003      	movs	r0, #3
+ 8010444:	e7ee      	b.n	8010424 <RegionAS923NewChannelReq+0x18>
+ 8010446:	bf00      	nop
+ 8010448:	08015144 	.word	0x08015144
+
+0801044c <RegionAS923SetContinuousWave>:
+ 801044c:	b570      	push	{r4, r5, r6, lr}
+ 801044e:	4e11      	ldr	r6, [pc, #68]	; (8010494 <RegionAS923SetContinuousWave+0x48>)
+ 8010450:	7801      	ldrb	r1, [r0, #0]
+ 8010452:	6832      	ldr	r2, [r6, #0]
+ 8010454:	4b10      	ldr	r3, [pc, #64]	; (8010498 <RegionAS923SetContinuousWave+0x4c>)
+ 8010456:	250c      	movs	r5, #12
+ 8010458:	fb05 2201 	mla	r2, r5, r1, r2
+ 801045c:	681b      	ldr	r3, [r3, #0]
+ 801045e:	7a52      	ldrb	r2, [r2, #9]
+ 8010460:	2118      	movs	r1, #24
+ 8010462:	fb01 3302 	mla	r3, r1, r2, r3
+ 8010466:	4604      	mov	r4, r0
+ 8010468:	f993 1002 	ldrsb.w	r1, [r3, #2]
+ 801046c:	f990 0002 	ldrsb.w	r0, [r0, #2]
+ 8010470:	f000 fb1f 	bl	8010ab2 <RegionCommonLimitTxPower>
+ 8010474:	7823      	ldrb	r3, [r4, #0]
+ 8010476:	6832      	ldr	r2, [r6, #0]
+ 8010478:	6861      	ldr	r1, [r4, #4]
+ 801047a:	436b      	muls	r3, r5
+ 801047c:	58d5      	ldr	r5, [r2, r3]
+ 801047e:	68a2      	ldr	r2, [r4, #8]
+ 8010480:	f000 fa49 	bl	8010916 <RegionCommonComputeTxPower>
+ 8010484:	4b05      	ldr	r3, [pc, #20]	; (801049c <RegionAS923SetContinuousWave+0x50>)
+ 8010486:	89a2      	ldrh	r2, [r4, #12]
+ 8010488:	6bdb      	ldr	r3, [r3, #60]	; 0x3c
+ 801048a:	4601      	mov	r1, r0
+ 801048c:	4628      	mov	r0, r5
+ 801048e:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
+ 8010492:	4718      	bx	r3
+ 8010494:	20002620 	.word	0x20002620
+ 8010498:	2000261c 	.word	0x2000261c
+ 801049c:	08015784 	.word	0x08015784
+
+080104a0 <RegionAS923ApplyDrOffset>:
+ 80104a0:	4b07      	ldr	r3, [pc, #28]	; (80104c0 <RegionAS923ApplyDrOffset+0x20>)
+ 80104a2:	569b      	ldrsb	r3, [r3, r2]
+ 80104a4:	1ac9      	subs	r1, r1, r3
+ 80104a6:	1e43      	subs	r3, r0, #1
+ 80104a8:	4258      	negs	r0, r3
+ 80104aa:	4158      	adcs	r0, r3
+ 80104ac:	0040      	lsls	r0, r0, #1
+ 80104ae:	4288      	cmp	r0, r1
+ 80104b0:	bfb8      	it	lt
+ 80104b2:	4608      	movlt	r0, r1
+ 80104b4:	2805      	cmp	r0, #5
+ 80104b6:	bfa8      	it	ge
+ 80104b8:	2005      	movge	r0, #5
+ 80104ba:	b2c0      	uxtb	r0, r0
+ 80104bc:	4770      	bx	lr
+ 80104be:	bf00      	nop
+ 80104c0:	08015153 	.word	0x08015153
+
+080104c4 <RegionCommonChanVerifyDr>:
+ 80104c4:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 80104c6:	429a      	cmp	r2, r3
+ 80104c8:	9d06      	ldr	r5, [sp, #24]
+ 80104ca:	db03      	blt.n	80104d4 <RegionCommonChanVerifyDr+0x10>
+ 80104cc:	f99d 3014 	ldrsb.w	r3, [sp, #20]
+ 80104d0:	429a      	cmp	r2, r3
+ 80104d2:	dd20      	ble.n	8010516 <RegionCommonChanVerifyDr+0x52>
+ 80104d4:	2000      	movs	r0, #0
+ 80104d6:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 80104d8:	eb03 0343 	add.w	r3, r3, r3, lsl #1
+ 80104dc:	f831 c014 	ldrh.w	ip, [r1, r4, lsl #1]
+ 80104e0:	eb05 0383 	add.w	r3, r5, r3, lsl #2
+ 80104e4:	2600      	movs	r6, #0
+ 80104e6:	fa4c f706 	asr.w	r7, ip, r6
+ 80104ea:	07ff      	lsls	r7, r7, #31
+ 80104ec:	d507      	bpl.n	80104fe <RegionCommonChanVerifyDr+0x3a>
+ 80104ee:	7a1f      	ldrb	r7, [r3, #8]
+ 80104f0:	f007 0e0f 	and.w	lr, r7, #15
+ 80104f4:	4572      	cmp	r2, lr
+ 80104f6:	db02      	blt.n	80104fe <RegionCommonChanVerifyDr+0x3a>
+ 80104f8:	ebb2 1f17 	cmp.w	r2, r7, lsr #4
+ 80104fc:	dd0d      	ble.n	801051a <RegionCommonChanVerifyDr+0x56>
+ 80104fe:	3601      	adds	r6, #1
+ 8010500:	2e10      	cmp	r6, #16
+ 8010502:	f103 030c 	add.w	r3, r3, #12
+ 8010506:	d1ee      	bne.n	80104e6 <RegionCommonChanVerifyDr+0x22>
+ 8010508:	3401      	adds	r4, #1
+ 801050a:	b2e4      	uxtb	r4, r4
+ 801050c:	0123      	lsls	r3, r4, #4
+ 801050e:	b2db      	uxtb	r3, r3
+ 8010510:	4298      	cmp	r0, r3
+ 8010512:	d8e1      	bhi.n	80104d8 <RegionCommonChanVerifyDr+0x14>
+ 8010514:	e7de      	b.n	80104d4 <RegionCommonChanVerifyDr+0x10>
+ 8010516:	2400      	movs	r4, #0
+ 8010518:	e7f8      	b.n	801050c <RegionCommonChanVerifyDr+0x48>
+ 801051a:	2001      	movs	r0, #1
+ 801051c:	e7db      	b.n	80104d6 <RegionCommonChanVerifyDr+0x12>
+
+0801051e <RegionCommonValueInRange>:
+ 801051e:	4288      	cmp	r0, r1
+ 8010520:	db04      	blt.n	801052c <RegionCommonValueInRange+0xe>
+ 8010522:	4290      	cmp	r0, r2
+ 8010524:	bfcc      	ite	gt
+ 8010526:	2000      	movgt	r0, #0
+ 8010528:	2001      	movle	r0, #1
+ 801052a:	4770      	bx	lr
+ 801052c:	2000      	movs	r0, #0
+ 801052e:	4770      	bx	lr
+
+08010530 <RegionCommonChanDisable>:
+ 8010530:	b510      	push	{r4, lr}
+ 8010532:	0914      	lsrs	r4, r2, #4
+ 8010534:	ebb4 1f11 	cmp.w	r4, r1, lsr #4
+ 8010538:	4603      	mov	r3, r0
+ 801053a:	ea4f 1011 	mov.w	r0, r1, lsr #4
+ 801053e:	d30e      	bcc.n	801055e <RegionCommonChanDisable+0x2e>
+ 8010540:	4291      	cmp	r1, r2
+ 8010542:	d20c      	bcs.n	801055e <RegionCommonChanDisable+0x2e>
+ 8010544:	b202      	sxth	r2, r0
+ 8010546:	f001 010f 	and.w	r1, r1, #15
+ 801054a:	f833 4012 	ldrh.w	r4, [r3, r2, lsl #1]
+ 801054e:	2001      	movs	r0, #1
+ 8010550:	fa00 f101 	lsl.w	r1, r0, r1
+ 8010554:	ea24 0101 	bic.w	r1, r4, r1
+ 8010558:	f823 1012 	strh.w	r1, [r3, r2, lsl #1]
+ 801055c:	bd10      	pop	{r4, pc}
+ 801055e:	2000      	movs	r0, #0
+ 8010560:	e7fc      	b.n	801055c <RegionCommonChanDisable+0x2c>
+
+08010562 <RegionCommonCountChannels>:
+ 8010562:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8010564:	b128      	cbz	r0, 8010572 <RegionCommonCountChannels+0x10>
+ 8010566:	eb00 0541 	add.w	r5, r0, r1, lsl #1
+ 801056a:	2701      	movs	r7, #1
+ 801056c:	2000      	movs	r0, #0
+ 801056e:	4291      	cmp	r1, r2
+ 8010570:	d300      	bcc.n	8010574 <RegionCommonCountChannels+0x12>
+ 8010572:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8010574:	2400      	movs	r4, #0
+ 8010576:	f835 cb02 	ldrh.w	ip, [r5], #2
+ 801057a:	4623      	mov	r3, r4
+ 801057c:	fa07 f604 	lsl.w	r6, r7, r4
+ 8010580:	ea36 060c 	bics.w	r6, r6, ip
+ 8010584:	bf08      	it	eq
+ 8010586:	3301      	addeq	r3, #1
+ 8010588:	f104 0401 	add.w	r4, r4, #1
+ 801058c:	bf08      	it	eq
+ 801058e:	b2db      	uxtbeq	r3, r3
+ 8010590:	2c10      	cmp	r4, #16
+ 8010592:	d1f3      	bne.n	801057c <RegionCommonCountChannels+0x1a>
+ 8010594:	4418      	add	r0, r3
+ 8010596:	3101      	adds	r1, #1
+ 8010598:	b2c0      	uxtb	r0, r0
+ 801059a:	b2c9      	uxtb	r1, r1
+ 801059c:	e7e7      	b.n	801056e <RegionCommonCountChannels+0xc>
+
+0801059e <RegionCommonChanMaskCopy>:
+ 801059e:	b510      	push	{r4, lr}
+ 80105a0:	b100      	cbz	r0, 80105a4 <RegionCommonChanMaskCopy+0x6>
+ 80105a2:	b949      	cbnz	r1, 80105b8 <RegionCommonChanMaskCopy+0x1a>
+ 80105a4:	bd10      	pop	{r4, pc}
+ 80105a6:	f831 4013 	ldrh.w	r4, [r1, r3, lsl #1]
+ 80105aa:	f820 4013 	strh.w	r4, [r0, r3, lsl #1]
+ 80105ae:	3301      	adds	r3, #1
+ 80105b0:	b2dc      	uxtb	r4, r3
+ 80105b2:	42a2      	cmp	r2, r4
+ 80105b4:	d8f7      	bhi.n	80105a6 <RegionCommonChanMaskCopy+0x8>
+ 80105b6:	e7f5      	b.n	80105a4 <RegionCommonChanMaskCopy+0x6>
+ 80105b8:	2300      	movs	r3, #0
+ 80105ba:	e7f9      	b.n	80105b0 <RegionCommonChanMaskCopy+0x12>
+
+080105bc <RegionCommonSetBandTxDone>:
+ 80105bc:	b082      	sub	sp, #8
+ 80105be:	b530      	push	{r4, r5, lr}
+ 80105c0:	8804      	ldrh	r4, [r0, #0]
+ 80105c2:	9304      	str	r3, [sp, #16]
+ 80105c4:	b96a      	cbnz	r2, 80105e2 <RegionCommonSetBandTxDone+0x26>
+ 80105c6:	f5b3 6f61 	cmp.w	r3, #3600	; 0xe10
+ 80105ca:	d318      	bcc.n	80105fe <RegionCommonSetBandTxDone+0x42>
+ 80105cc:	f649 25af 	movw	r5, #39599	; 0x9aaf
+ 80105d0:	f242 7210 	movw	r2, #10000	; 0x2710
+ 80105d4:	42ab      	cmp	r3, r5
+ 80105d6:	bf98      	it	ls
+ 80105d8:	f44f 727a 	movls.w	r2, #1000	; 0x3e8
+ 80105dc:	4294      	cmp	r4, r2
+ 80105de:	bf38      	it	cc
+ 80105e0:	4614      	movcc	r4, r2
+ 80105e2:	2c01      	cmp	r4, #1
+ 80105e4:	bf38      	it	cc
+ 80105e6:	2401      	movcc	r4, #1
+ 80105e8:	4361      	muls	r1, r4
+ 80105ea:	e8bd 4030 	ldmia.w	sp!, {r4, r5, lr}
+ 80105ee:	68c3      	ldr	r3, [r0, #12]
+ 80105f0:	428b      	cmp	r3, r1
+ 80105f2:	bf8c      	ite	hi
+ 80105f4:	1a5b      	subhi	r3, r3, r1
+ 80105f6:	2300      	movls	r3, #0
+ 80105f8:	60c3      	str	r3, [r0, #12]
+ 80105fa:	b002      	add	sp, #8
+ 80105fc:	4770      	bx	lr
+ 80105fe:	2264      	movs	r2, #100	; 0x64
+ 8010600:	e7ec      	b.n	80105dc <RegionCommonSetBandTxDone+0x20>
+	...
+
+08010604 <RegionCommonUpdateBandTimeOff>:
+ 8010604:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8010608:	b091      	sub	sp, #68	; 0x44
+ 801060a:	4615      	mov	r5, r2
+ 801060c:	f8dd 806c 	ldr.w	r8, [sp, #108]	; 0x6c
+ 8010610:	9304      	str	r3, [sp, #16]
+ 8010612:	f89d 3068 	ldrb.w	r3, [sp, #104]	; 0x68
+ 8010616:	9309      	str	r3, [sp, #36]	; 0x24
+ 8010618:	460c      	mov	r4, r1
+ 801061a:	4606      	mov	r6, r0
+ 801061c:	f003 fbc2 	bl	8013da4 <UTIL_TIMER_GetCurrentTime>
+ 8010620:	4a68      	ldr	r2, [pc, #416]	; (80107c4 <RegionCommonUpdateBandTimeOff+0x1c0>)
+ 8010622:	f8df b1a4 	ldr.w	fp, [pc, #420]	; 80107c8 <RegionCommonUpdateBandTimeOff+0x1c4>
+ 8010626:	9005      	str	r0, [sp, #20]
+ 8010628:	f5a8 33f6 	sub.w	r3, r8, #125952	; 0x1ec00
+ 801062c:	3b30      	subs	r3, #48	; 0x30
+ 801062e:	fbb3 f3f2 	udiv	r3, r3, r2
+ 8010632:	4353      	muls	r3, r2
+ 8010634:	f503 32f6 	add.w	r2, r3, #125952	; 0x1ec00
+ 8010638:	f503 33a8 	add.w	r3, r3, #86016	; 0x15000
+ 801063c:	f503 73c0 	add.w	r3, r3, #384	; 0x180
+ 8010640:	9303      	str	r3, [sp, #12]
+ 8010642:	2318      	movs	r3, #24
+ 8010644:	fb13 4305 	smlabb	r3, r3, r5, r4
+ 8010648:	3230      	adds	r2, #48	; 0x30
+ 801064a:	9206      	str	r2, [sp, #24]
+ 801064c:	9308      	str	r3, [sp, #32]
+ 801064e:	2500      	movs	r5, #0
+ 8010650:	f04f 3aff 	mov.w	sl, #4294967295
+ 8010654:	9b08      	ldr	r3, [sp, #32]
+ 8010656:	42a3      	cmp	r3, r4
+ 8010658:	d107      	bne.n	801066a <RegionCommonUpdateBandTimeOff+0x66>
+ 801065a:	2d00      	cmp	r5, #0
+ 801065c:	bf14      	ite	ne
+ 801065e:	4650      	movne	r0, sl
+ 8010660:	f04f 30ff 	moveq.w	r0, #4294967295
+ 8010664:	b011      	add	sp, #68	; 0x44
+ 8010666:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 801066a:	f9bd 3070 	ldrsh.w	r3, [sp, #112]	; 0x70
+ 801066e:	f8ad 302c 	strh.w	r3, [sp, #44]	; 0x2c
+ 8010672:	990b      	ldr	r1, [sp, #44]	; 0x2c
+ 8010674:	f8cd 806c 	str.w	r8, [sp, #108]	; 0x6c
+ 8010678:	4640      	mov	r0, r8
+ 801067a:	f8cd 8028 	str.w	r8, [sp, #40]	; 0x28
+ 801067e:	f003 fb21 	bl	8013cc4 <SysTimeToMs>
+ 8010682:	f8b4 9000 	ldrh.w	r9, [r4]
+ 8010686:	b96e      	cbnz	r6, 80106a4 <RegionCommonUpdateBandTimeOff+0xa0>
+ 8010688:	f5b8 6f61 	cmp.w	r8, #3600	; 0xe10
+ 801068c:	d35b      	bcc.n	8010746 <RegionCommonUpdateBandTimeOff+0x142>
+ 801068e:	f649 22af 	movw	r2, #39599	; 0x9aaf
+ 8010692:	f242 7310 	movw	r3, #10000	; 0x2710
+ 8010696:	4590      	cmp	r8, r2
+ 8010698:	bf98      	it	ls
+ 801069a:	f44f 737a 	movls.w	r3, #1000	; 0x3e8
+ 801069e:	4599      	cmp	r9, r3
+ 80106a0:	bf38      	it	cc
+ 80106a2:	4699      	movcc	r9, r3
+ 80106a4:	464b      	mov	r3, r9
+ 80106a6:	2b01      	cmp	r3, #1
+ 80106a8:	bf38      	it	cc
+ 80106aa:	2301      	movcc	r3, #1
+ 80106ac:	9307      	str	r3, [sp, #28]
+ 80106ae:	2e00      	cmp	r6, #0
+ 80106b0:	d152      	bne.n	8010758 <RegionCommonUpdateBandTimeOff+0x154>
+ 80106b2:	f1b9 0f64 	cmp.w	r9, #100	; 0x64
+ 80106b6:	d148      	bne.n	801074a <RegionCommonUpdateBandTimeOff+0x146>
+ 80106b8:	60a0      	str	r0, [r4, #8]
+ 80106ba:	465f      	mov	r7, fp
+ 80106bc:	68a1      	ldr	r1, [r4, #8]
+ 80106be:	a80e      	add	r0, sp, #56	; 0x38
+ 80106c0:	f003 fb22 	bl	8013d08 <SysTimeFromMs>
+ 80106c4:	9b0f      	ldr	r3, [sp, #60]	; 0x3c
+ 80106c6:	9300      	str	r3, [sp, #0]
+ 80106c8:	e9dd 120a 	ldrd	r1, r2, [sp, #40]	; 0x28
+ 80106cc:	9b0e      	ldr	r3, [sp, #56]	; 0x38
+ 80106ce:	a80c      	add	r0, sp, #48	; 0x30
+ 80106d0:	f003 fa79 	bl	8013bc6 <SysTimeSub>
+ 80106d4:	9b04      	ldr	r3, [sp, #16]
+ 80106d6:	9a0c      	ldr	r2, [sp, #48]	; 0x30
+ 80106d8:	b90b      	cbnz	r3, 80106de <RegionCommonUpdateBandTimeOff+0xda>
+ 80106da:	9b09      	ldr	r3, [sp, #36]	; 0x24
+ 80106dc:	b12b      	cbz	r3, 80106ea <RegionCommonUpdateBandTimeOff+0xe6>
+ 80106de:	6923      	ldr	r3, [r4, #16]
+ 80106e0:	42bb      	cmp	r3, r7
+ 80106e2:	d102      	bne.n	80106ea <RegionCommonUpdateBandTimeOff+0xe6>
+ 80106e4:	4b39      	ldr	r3, [pc, #228]	; (80107cc <RegionCommonUpdateBandTimeOff+0x1c8>)
+ 80106e6:	429a      	cmp	r2, r3
+ 80106e8:	d90d      	bls.n	8010706 <RegionCommonUpdateBandTimeOff+0x102>
+ 80106ea:	4b39      	ldr	r3, [pc, #228]	; (80107d0 <RegionCommonUpdateBandTimeOff+0x1cc>)
+ 80106ec:	60e7      	str	r7, [r4, #12]
+ 80106ee:	4598      	cmp	r8, r3
+ 80106f0:	d909      	bls.n	8010706 <RegionCommonUpdateBandTimeOff+0x102>
+ 80106f2:	2300      	movs	r3, #0
+ 80106f4:	f8ad 3034 	strh.w	r3, [sp, #52]	; 0x34
+ 80106f8:	9b06      	ldr	r3, [sp, #24]
+ 80106fa:	990d      	ldr	r1, [sp, #52]	; 0x34
+ 80106fc:	930c      	str	r3, [sp, #48]	; 0x30
+ 80106fe:	4618      	mov	r0, r3
+ 8010700:	f003 fae0 	bl	8013cc4 <SysTimeToMs>
+ 8010704:	60a0      	str	r0, [r4, #8]
+ 8010706:	6860      	ldr	r0, [r4, #4]
+ 8010708:	b900      	cbnz	r0, 801070c <RegionCommonUpdateBandTimeOff+0x108>
+ 801070a:	60e7      	str	r7, [r4, #12]
+ 801070c:	6127      	str	r7, [r4, #16]
+ 801070e:	b126      	cbz	r6, 801071a <RegionCommonUpdateBandTimeOff+0x116>
+ 8010710:	f003 fb52 	bl	8013db8 <UTIL_TIMER_GetElapsedTime>
+ 8010714:	68e3      	ldr	r3, [r4, #12]
+ 8010716:	4403      	add	r3, r0
+ 8010718:	60e3      	str	r3, [r4, #12]
+ 801071a:	e9d4 3203 	ldrd	r3, r2, [r4, #12]
+ 801071e:	4293      	cmp	r3, r2
+ 8010720:	9b05      	ldr	r3, [sp, #20]
+ 8010722:	991d      	ldr	r1, [sp, #116]	; 0x74
+ 8010724:	6063      	str	r3, [r4, #4]
+ 8010726:	9b07      	ldr	r3, [sp, #28]
+ 8010728:	bf88      	it	hi
+ 801072a:	60e2      	strhi	r2, [r4, #12]
+ 801072c:	434b      	muls	r3, r1
+ 801072e:	68e1      	ldr	r1, [r4, #12]
+ 8010730:	4299      	cmp	r1, r3
+ 8010732:	d202      	bcs.n	801073a <RegionCommonUpdateBandTimeOff+0x136>
+ 8010734:	9804      	ldr	r0, [sp, #16]
+ 8010736:	b9a8      	cbnz	r0, 8010764 <RegionCommonUpdateBandTimeOff+0x160>
+ 8010738:	b1a6      	cbz	r6, 8010764 <RegionCommonUpdateBandTimeOff+0x160>
+ 801073a:	2301      	movs	r3, #1
+ 801073c:	441d      	add	r5, r3
+ 801073e:	7523      	strb	r3, [r4, #20]
+ 8010740:	b2ed      	uxtb	r5, r5
+ 8010742:	3418      	adds	r4, #24
+ 8010744:	e786      	b.n	8010654 <RegionCommonUpdateBandTimeOff+0x50>
+ 8010746:	2364      	movs	r3, #100	; 0x64
+ 8010748:	e7a9      	b.n	801069e <RegionCommonUpdateBandTimeOff+0x9a>
+ 801074a:	f5b9 7f7a 	cmp.w	r9, #1000	; 0x3e8
+ 801074e:	bf0a      	itet	eq
+ 8010750:	4f20      	ldreq	r7, [pc, #128]	; (80107d4 <RegionCommonUpdateBandTimeOff+0x1d0>)
+ 8010752:	4f21      	ldrne	r7, [pc, #132]	; (80107d8 <RegionCommonUpdateBandTimeOff+0x1d4>)
+ 8010754:	60a0      	streq	r0, [r4, #8]
+ 8010756:	e7b1      	b.n	80106bc <RegionCommonUpdateBandTimeOff+0xb8>
+ 8010758:	9b04      	ldr	r3, [sp, #16]
+ 801075a:	b90b      	cbnz	r3, 8010760 <RegionCommonUpdateBandTimeOff+0x15c>
+ 801075c:	f8c4 b00c 	str.w	fp, [r4, #12]
+ 8010760:	465f      	mov	r7, fp
+ 8010762:	e7d0      	b.n	8010706 <RegionCommonUpdateBandTimeOff+0x102>
+ 8010764:	2000      	movs	r0, #0
+ 8010766:	4293      	cmp	r3, r2
+ 8010768:	7520      	strb	r0, [r4, #20]
+ 801076a:	d806      	bhi.n	801077a <RegionCommonUpdateBandTimeOff+0x176>
+ 801076c:	1a5b      	subs	r3, r3, r1
+ 801076e:	459a      	cmp	sl, r3
+ 8010770:	f105 0501 	add.w	r5, r5, #1
+ 8010774:	bf28      	it	cs
+ 8010776:	469a      	movcs	sl, r3
+ 8010778:	b2ed      	uxtb	r5, r5
+ 801077a:	2e00      	cmp	r6, #0
+ 801077c:	d1e1      	bne.n	8010742 <RegionCommonUpdateBandTimeOff+0x13e>
+ 801077e:	f1b9 0f64 	cmp.w	r9, #100	; 0x64
+ 8010782:	4a16      	ldr	r2, [pc, #88]	; (80107dc <RegionCommonUpdateBandTimeOff+0x1d8>)
+ 8010784:	f8ad 6034 	strh.w	r6, [sp, #52]	; 0x34
+ 8010788:	d019      	beq.n	80107be <RegionCommonUpdateBandTimeOff+0x1ba>
+ 801078a:	f649 23b0 	movw	r3, #39600	; 0x9ab0
+ 801078e:	f5b9 7f7a 	cmp.w	r9, #1000	; 0x3e8
+ 8010792:	bf18      	it	ne
+ 8010794:	4613      	movne	r3, r2
+ 8010796:	4590      	cmp	r8, r2
+ 8010798:	bf84      	itt	hi
+ 801079a:	9a03      	ldrhi	r2, [sp, #12]
+ 801079c:	189b      	addhi	r3, r3, r2
+ 801079e:	930c      	str	r3, [sp, #48]	; 0x30
+ 80107a0:	9b1c      	ldr	r3, [sp, #112]	; 0x70
+ 80107a2:	9300      	str	r3, [sp, #0]
+ 80107a4:	af0c      	add	r7, sp, #48	; 0x30
+ 80107a6:	e897 0006 	ldmia.w	r7, {r1, r2}
+ 80107aa:	9b1b      	ldr	r3, [sp, #108]	; 0x6c
+ 80107ac:	4638      	mov	r0, r7
+ 80107ae:	f003 fa0a 	bl	8013bc6 <SysTimeSub>
+ 80107b2:	e897 0003 	ldmia.w	r7, {r0, r1}
+ 80107b6:	f003 fa85 	bl	8013cc4 <SysTimeToMs>
+ 80107ba:	4682      	mov	sl, r0
+ 80107bc:	e7c1      	b.n	8010742 <RegionCommonUpdateBandTimeOff+0x13e>
+ 80107be:	f44f 6361 	mov.w	r3, #3600	; 0xe10
+ 80107c2:	e7e8      	b.n	8010796 <RegionCommonUpdateBandTimeOff+0x192>
+ 80107c4:	00015180 	.word	0x00015180
+ 80107c8:	001b7740 	.word	0x001b7740
+ 80107cc:	0001517f 	.word	0x0001517f
+ 80107d0:	0001ec2f 	.word	0x0001ec2f
+ 80107d4:	0112a880 	.word	0x0112a880
+ 80107d8:	02932e00 	.word	0x02932e00
+ 80107dc:	0001ec30 	.word	0x0001ec30
+
+080107e0 <RegionCommonParseLinkAdrReq>:
+ 80107e0:	7803      	ldrb	r3, [r0, #0]
+ 80107e2:	2b03      	cmp	r3, #3
+ 80107e4:	d114      	bne.n	8010810 <RegionCommonParseLinkAdrReq+0x30>
+ 80107e6:	7843      	ldrb	r3, [r0, #1]
+ 80107e8:	f003 020f 	and.w	r2, r3, #15
+ 80107ec:	091b      	lsrs	r3, r3, #4
+ 80107ee:	708a      	strb	r2, [r1, #2]
+ 80107f0:	704b      	strb	r3, [r1, #1]
+ 80107f2:	7883      	ldrb	r3, [r0, #2]
+ 80107f4:	808b      	strh	r3, [r1, #4]
+ 80107f6:	78c2      	ldrb	r2, [r0, #3]
+ 80107f8:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
+ 80107fc:	808b      	strh	r3, [r1, #4]
+ 80107fe:	7903      	ldrb	r3, [r0, #4]
+ 8010800:	f3c3 1202 	ubfx	r2, r3, #4, #3
+ 8010804:	f003 030f 	and.w	r3, r3, #15
+ 8010808:	70ca      	strb	r2, [r1, #3]
+ 801080a:	700b      	strb	r3, [r1, #0]
+ 801080c:	2005      	movs	r0, #5
+ 801080e:	4770      	bx	lr
+ 8010810:	2000      	movs	r0, #0
+ 8010812:	4770      	bx	lr
+
+08010814 <RegionCommonLinkAdrReqVerifyParams>:
+ 8010814:	e92d 47f3 	stmdb	sp!, {r0, r1, r4, r5, r6, r7, r8, r9, sl, lr}
+ 8010818:	4698      	mov	r8, r3
+ 801081a:	7943      	ldrb	r3, [r0, #5]
+ 801081c:	7905      	ldrb	r5, [r0, #4]
+ 801081e:	f990 6007 	ldrsb.w	r6, [r0, #7]
+ 8010822:	4691      	mov	r9, r2
+ 8010824:	4604      	mov	r4, r0
+ 8010826:	f990 2006 	ldrsb.w	r2, [r0, #6]
+ 801082a:	468a      	mov	sl, r1
+ 801082c:	b183      	cbz	r3, 8010850 <RegionCommonLinkAdrReqVerifyParams+0x3c>
+ 801082e:	f990 7008 	ldrsb.w	r7, [r0, #8]
+ 8010832:	b375      	cbz	r5, 8010892 <RegionCommonLinkAdrReqVerifyParams+0x7e>
+ 8010834:	2a0f      	cmp	r2, #15
+ 8010836:	d112      	bne.n	801085e <RegionCommonLinkAdrReqVerifyParams+0x4a>
+ 8010838:	f994 2009 	ldrsb.w	r2, [r4, #9]
+ 801083c:	2e0f      	cmp	r6, #15
+ 801083e:	d11e      	bne.n	801087e <RegionCommonLinkAdrReqVerifyParams+0x6a>
+ 8010840:	f994 600a 	ldrsb.w	r6, [r4, #10]
+ 8010844:	2d07      	cmp	r5, #7
+ 8010846:	d124      	bne.n	8010892 <RegionCommonLinkAdrReqVerifyParams+0x7e>
+ 8010848:	2f00      	cmp	r7, #0
+ 801084a:	bf08      	it	eq
+ 801084c:	2701      	moveq	r7, #1
+ 801084e:	e020      	b.n	8010892 <RegionCommonLinkAdrReqVerifyParams+0x7e>
+ 8010850:	f990 700b 	ldrsb.w	r7, [r0, #11]
+ 8010854:	f990 2009 	ldrsb.w	r2, [r0, #9]
+ 8010858:	f990 600a 	ldrsb.w	r6, [r0, #10]
+ 801085c:	e7e9      	b.n	8010832 <RegionCommonLinkAdrReqVerifyParams+0x1e>
+ 801085e:	69a3      	ldr	r3, [r4, #24]
+ 8010860:	9301      	str	r3, [sp, #4]
+ 8010862:	f994 3015 	ldrsb.w	r3, [r4, #21]
+ 8010866:	9300      	str	r3, [sp, #0]
+ 8010868:	6921      	ldr	r1, [r4, #16]
+ 801086a:	f994 3014 	ldrsb.w	r3, [r4, #20]
+ 801086e:	7b20      	ldrb	r0, [r4, #12]
+ 8010870:	f7ff fe28 	bl	80104c4 <RegionCommonChanVerifyDr>
+ 8010874:	2800      	cmp	r0, #0
+ 8010876:	d1e1      	bne.n	801083c <RegionCommonLinkAdrReqVerifyParams+0x28>
+ 8010878:	f005 05fd 	and.w	r5, r5, #253	; 0xfd
+ 801087c:	e7de      	b.n	801083c <RegionCommonLinkAdrReqVerifyParams+0x28>
+ 801087e:	f994 301d 	ldrsb.w	r3, [r4, #29]
+ 8010882:	42b3      	cmp	r3, r6
+ 8010884:	dc0f      	bgt.n	80108a6 <RegionCommonLinkAdrReqVerifyParams+0x92>
+ 8010886:	f994 301c 	ldrsb.w	r3, [r4, #28]
+ 801088a:	42b3      	cmp	r3, r6
+ 801088c:	dada      	bge.n	8010844 <RegionCommonLinkAdrReqVerifyParams+0x30>
+ 801088e:	f005 05fb 	and.w	r5, r5, #251	; 0xfb
+ 8010892:	4628      	mov	r0, r5
+ 8010894:	f88a 2000 	strb.w	r2, [sl]
+ 8010898:	f889 6000 	strb.w	r6, [r9]
+ 801089c:	f888 7000 	strb.w	r7, [r8]
+ 80108a0:	b002      	add	sp, #8
+ 80108a2:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 80108a6:	461e      	mov	r6, r3
+ 80108a8:	e7cc      	b.n	8010844 <RegionCommonLinkAdrReqVerifyParams+0x30>
+	...
+
+080108ac <RegionCommonComputeSymbolTimeLoRa>:
+ 80108ac:	4b02      	ldr	r3, [pc, #8]	; (80108b8 <RegionCommonComputeSymbolTimeLoRa+0xc>)
+ 80108ae:	fa03 f000 	lsl.w	r0, r3, r0
+ 80108b2:	fbb0 f0f1 	udiv	r0, r0, r1
+ 80108b6:	4770      	bx	lr
+ 80108b8:	000f4240 	.word	0x000f4240
+
+080108bc <RegionCommonComputeSymbolTimeFsk>:
+ 80108bc:	f44f 53fa 	mov.w	r3, #8000	; 0x1f40
+ 80108c0:	fbb3 f0f0 	udiv	r0, r3, r0
+ 80108c4:	4770      	bx	lr
+
+080108c6 <RegionCommonComputeRxWindowParameters>:
+ 80108c6:	b530      	push	{r4, r5, lr}
+ 80108c8:	f44f 757a 	mov.w	r5, #1000	; 0x3e8
+ 80108cc:	1f0c      	subs	r4, r1, #4
+ 80108ce:	436a      	muls	r2, r5
+ 80108d0:	fb00 2204 	mla	r2, r0, r4, r2
+ 80108d4:	0052      	lsls	r2, r2, #1
+ 80108d6:	bf1e      	ittt	ne
+ 80108d8:	f100 34ff 	addne.w	r4, r0, #4294967295
+ 80108dc:	1912      	addne	r2, r2, r4
+ 80108de:	fbb2 f2f0 	udivne	r2, r2, r0
+ 80108e2:	4291      	cmp	r1, r2
+ 80108e4:	bf38      	it	cc
+ 80108e6:	4611      	movcc	r1, r2
+ 80108e8:	9a03      	ldr	r2, [sp, #12]
+ 80108ea:	6011      	str	r1, [r2, #0]
+ 80108ec:	0082      	lsls	r2, r0, #2
+ 80108ee:	4348      	muls	r0, r1
+ 80108f0:	bf1c      	itt	ne
+ 80108f2:	3001      	addne	r0, #1
+ 80108f4:	0840      	lsrne	r0, r0, #1
+ 80108f6:	f44f 717a 	mov.w	r1, #1000	; 0x3e8
+ 80108fa:	1a12      	subs	r2, r2, r0
+ 80108fc:	fb01 2313 	mls	r3, r1, r3, r2
+ 8010900:	2b00      	cmp	r3, #0
+ 8010902:	bfca      	itet	gt
+ 8010904:	f203 33e7 	addwgt	r3, r3, #999	; 0x3e7
+ 8010908:	fb93 f1f1 	sdivle	r1, r3, r1
+ 801090c:	fbb3 f1f1 	udivgt	r1, r3, r1
+ 8010910:	9b04      	ldr	r3, [sp, #16]
+ 8010912:	6019      	str	r1, [r3, #0]
+ 8010914:	bd30      	pop	{r4, r5, pc}
+
+08010916 <RegionCommonComputeTxPower>:
+ 8010916:	b538      	push	{r3, r4, r5, lr}
+ 8010918:	0040      	lsls	r0, r0, #1
+ 801091a:	4614      	mov	r4, r2
+ 801091c:	460d      	mov	r5, r1
+ 801091e:	f7f1 f879 	bl	8001a14 <__aeabi_ui2f>
+ 8010922:	4601      	mov	r1, r0
+ 8010924:	4628      	mov	r0, r5
+ 8010926:	f7f0 ffc3 	bl	80018b0 <__aeabi_fsub>
+ 801092a:	4621      	mov	r1, r4
+ 801092c:	f7f0 ffc0 	bl	80018b0 <__aeabi_fsub>
+ 8010930:	f7f0 feb2 	bl	8001698 <__aeabi_f2d>
+ 8010934:	f003 fcd8 	bl	80142e8 <floor>
+ 8010938:	f7f0 ff8e 	bl	8001858 <__aeabi_d2iz>
+ 801093c:	b240      	sxtb	r0, r0
+ 801093e:	bd38      	pop	{r3, r4, r5, pc}
+
+08010940 <RegionCommonCountNbOfEnabledChannels>:
+ 8010940:	e92d 4ff7 	stmdb	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8010944:	9301      	str	r3, [sp, #4]
+ 8010946:	2300      	movs	r3, #0
+ 8010948:	461f      	mov	r7, r3
+ 801094a:	469c      	mov	ip, r3
+ 801094c:	011c      	lsls	r4, r3, #4
+ 801094e:	8a05      	ldrh	r5, [r0, #16]
+ 8010950:	fa5f fe84 	uxtb.w	lr, r4
+ 8010954:	f004 04f0 	and.w	r4, r4, #240	; 0xf0
+ 8010958:	42a5      	cmp	r5, r4
+ 801095a:	d806      	bhi.n	801096a <RegionCommonCountNbOfEnabledChannels+0x2a>
+ 801095c:	9b01      	ldr	r3, [sp, #4]
+ 801095e:	f882 c000 	strb.w	ip, [r2]
+ 8010962:	701f      	strb	r7, [r3, #0]
+ 8010964:	b003      	add	sp, #12
+ 8010966:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 801096a:	eb0e 054e 	add.w	r5, lr, lr, lsl #1
+ 801096e:	ea4f 0943 	mov.w	r9, r3, lsl #1
+ 8010972:	00ad      	lsls	r5, r5, #2
+ 8010974:	2400      	movs	r4, #0
+ 8010976:	6846      	ldr	r6, [r0, #4]
+ 8010978:	f836 6009 	ldrh.w	r6, [r6, r9]
+ 801097c:	4126      	asrs	r6, r4
+ 801097e:	07f6      	lsls	r6, r6, #31
+ 8010980:	d527      	bpl.n	80109d2 <RegionCommonCountNbOfEnabledChannels+0x92>
+ 8010982:	6886      	ldr	r6, [r0, #8]
+ 8010984:	eb06 0a05 	add.w	sl, r6, r5
+ 8010988:	5976      	ldr	r6, [r6, r5]
+ 801098a:	b316      	cbz	r6, 80109d2 <RegionCommonCountNbOfEnabledChannels+0x92>
+ 801098c:	7806      	ldrb	r6, [r0, #0]
+ 801098e:	b936      	cbnz	r6, 801099e <RegionCommonCountNbOfEnabledChannels+0x5e>
+ 8010990:	6946      	ldr	r6, [r0, #20]
+ 8010992:	b126      	cbz	r6, 801099e <RegionCommonCountNbOfEnabledChannels+0x5e>
+ 8010994:	f836 6009 	ldrh.w	r6, [r6, r9]
+ 8010998:	4126      	asrs	r6, r4
+ 801099a:	07f6      	lsls	r6, r6, #31
+ 801099c:	d519      	bpl.n	80109d2 <RegionCommonCountNbOfEnabledChannels+0x92>
+ 801099e:	f89a 6008 	ldrb.w	r6, [sl, #8]
+ 80109a2:	f990 b001 	ldrsb.w	fp, [r0, #1]
+ 80109a6:	f346 0803 	sbfx	r8, r6, #0, #4
+ 80109aa:	fa4f f888 	sxtb.w	r8, r8
+ 80109ae:	45d8      	cmp	r8, fp
+ 80109b0:	dc0f      	bgt.n	80109d2 <RegionCommonCountNbOfEnabledChannels+0x92>
+ 80109b2:	f346 1603 	sbfx	r6, r6, #4, #4
+ 80109b6:	b276      	sxtb	r6, r6
+ 80109b8:	455e      	cmp	r6, fp
+ 80109ba:	db0a      	blt.n	80109d2 <RegionCommonCountNbOfEnabledChannels+0x92>
+ 80109bc:	f89a 6009 	ldrb.w	r6, [sl, #9]
+ 80109c0:	eb06 0846 	add.w	r8, r6, r6, lsl #1
+ 80109c4:	68c6      	ldr	r6, [r0, #12]
+ 80109c6:	eb06 06c8 	add.w	r6, r6, r8, lsl #3
+ 80109ca:	7d36      	ldrb	r6, [r6, #20]
+ 80109cc:	b94e      	cbnz	r6, 80109e2 <RegionCommonCountNbOfEnabledChannels+0xa2>
+ 80109ce:	3701      	adds	r7, #1
+ 80109d0:	b2ff      	uxtb	r7, r7
+ 80109d2:	3401      	adds	r4, #1
+ 80109d4:	2c10      	cmp	r4, #16
+ 80109d6:	f105 050c 	add.w	r5, r5, #12
+ 80109da:	d1cc      	bne.n	8010976 <RegionCommonCountNbOfEnabledChannels+0x36>
+ 80109dc:	3301      	adds	r3, #1
+ 80109de:	b2db      	uxtb	r3, r3
+ 80109e0:	e7b4      	b.n	801094c <RegionCommonCountNbOfEnabledChannels+0xc>
+ 80109e2:	f10c 0601 	add.w	r6, ip, #1
+ 80109e6:	eb0e 0804 	add.w	r8, lr, r4
+ 80109ea:	f801 800c 	strb.w	r8, [r1, ip]
+ 80109ee:	fa5f fc86 	uxtb.w	ip, r6
+ 80109f2:	e7ee      	b.n	80109d2 <RegionCommonCountNbOfEnabledChannels+0x92>
+
+080109f4 <RegionCommonIdentifyChannels>:
+ 80109f4:	e92d 47ff 	stmdb	sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr}
+ 80109f8:	4604      	mov	r4, r0
+ 80109fa:	6840      	ldr	r0, [r0, #4]
+ 80109fc:	e9dd 670c 	ldrd	r6, r7, [sp, #48]	; 0x30
+ 8010a00:	461d      	mov	r5, r3
+ 8010a02:	468a      	mov	sl, r1
+ 8010a04:	4691      	mov	r9, r2
+ 8010a06:	f003 f9d7 	bl	8013db8 <UTIL_TIMER_GetElapsedTime>
+ 8010a0a:	6823      	ldr	r3, [r4, #0]
+ 8010a0c:	1a1b      	subs	r3, r3, r0
+ 8010a0e:	603b      	str	r3, [r7, #0]
+ 8010a10:	f04f 0800 	mov.w	r8, #0
+ 8010a14:	2301      	movs	r3, #1
+ 8010a16:	7033      	strb	r3, [r6, #0]
+ 8010a18:	f885 8000 	strb.w	r8, [r5]
+ 8010a1c:	6863      	ldr	r3, [r4, #4]
+ 8010a1e:	b113      	cbz	r3, 8010a26 <RegionCommonIdentifyChannels+0x32>
+ 8010a20:	6823      	ldr	r3, [r4, #0]
+ 8010a22:	4283      	cmp	r3, r0
+ 8010a24:	d824      	bhi.n	8010a70 <RegionCommonIdentifyChannels+0x7c>
+ 8010a26:	f8ca 8000 	str.w	r8, [sl]
+ 8010a2a:	f8d4 c01c 	ldr.w	ip, [r4, #28]
+ 8010a2e:	69a3      	ldr	r3, [r4, #24]
+ 8010a30:	f89c e000 	ldrb.w	lr, [ip]
+ 8010a34:	9303      	str	r3, [sp, #12]
+ 8010a36:	e9d4 0103 	ldrd	r0, r1, [r4, #12]
+ 8010a3a:	ab01      	add	r3, sp, #4
+ 8010a3c:	e883 0003 	stmia.w	r3, {r0, r1}
+ 8010a40:	7d23      	ldrb	r3, [r4, #20]
+ 8010a42:	9300      	str	r3, [sp, #0]
+ 8010a44:	f8dc 100c 	ldr.w	r1, [ip, #12]
+ 8010a48:	7a23      	ldrb	r3, [r4, #8]
+ 8010a4a:	7a62      	ldrb	r2, [r4, #9]
+ 8010a4c:	4670      	mov	r0, lr
+ 8010a4e:	f7ff fdd9 	bl	8010604 <RegionCommonUpdateBandTimeOff>
+ 8010a52:	4633      	mov	r3, r6
+ 8010a54:	6038      	str	r0, [r7, #0]
+ 8010a56:	462a      	mov	r2, r5
+ 8010a58:	69e0      	ldr	r0, [r4, #28]
+ 8010a5a:	4649      	mov	r1, r9
+ 8010a5c:	f7ff ff70 	bl	8010940 <RegionCommonCountNbOfEnabledChannels>
+ 8010a60:	782b      	ldrb	r3, [r5, #0]
+ 8010a62:	b12b      	cbz	r3, 8010a70 <RegionCommonIdentifyChannels+0x7c>
+ 8010a64:	f8c7 8000 	str.w	r8, [r7]
+ 8010a68:	2000      	movs	r0, #0
+ 8010a6a:	b004      	add	sp, #16
+ 8010a6c:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 8010a70:	7833      	ldrb	r3, [r6, #0]
+ 8010a72:	2b00      	cmp	r3, #0
+ 8010a74:	bf14      	ite	ne
+ 8010a76:	200b      	movne	r0, #11
+ 8010a78:	200c      	moveq	r0, #12
+ 8010a7a:	e7f6      	b.n	8010a6a <RegionCommonIdentifyChannels+0x76>
+
+08010a7c <RegionCommonGetNextLowerTxDr>:
+ 8010a7c:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 8010a7e:	f990 2000 	ldrsb.w	r2, [r0]
+ 8010a82:	f990 5002 	ldrsb.w	r5, [r0, #2]
+ 8010a86:	4295      	cmp	r5, r2
+ 8010a88:	4604      	mov	r4, r0
+ 8010a8a:	d00f      	beq.n	8010aac <RegionCommonGetNextLowerTxDr+0x30>
+ 8010a8c:	3a01      	subs	r2, #1
+ 8010a8e:	b252      	sxtb	r2, r2
+ 8010a90:	4295      	cmp	r5, r2
+ 8010a92:	d00b      	beq.n	8010aac <RegionCommonGetNextLowerTxDr+0x30>
+ 8010a94:	68a3      	ldr	r3, [r4, #8]
+ 8010a96:	9301      	str	r3, [sp, #4]
+ 8010a98:	f994 3001 	ldrsb.w	r3, [r4, #1]
+ 8010a9c:	9300      	str	r3, [sp, #0]
+ 8010a9e:	6861      	ldr	r1, [r4, #4]
+ 8010aa0:	78e0      	ldrb	r0, [r4, #3]
+ 8010aa2:	462b      	mov	r3, r5
+ 8010aa4:	f7ff fd0e 	bl	80104c4 <RegionCommonChanVerifyDr>
+ 8010aa8:	2800      	cmp	r0, #0
+ 8010aaa:	d0ef      	beq.n	8010a8c <RegionCommonGetNextLowerTxDr+0x10>
+ 8010aac:	4610      	mov	r0, r2
+ 8010aae:	b003      	add	sp, #12
+ 8010ab0:	bd30      	pop	{r4, r5, pc}
+
+08010ab2 <RegionCommonLimitTxPower>:
+ 8010ab2:	4288      	cmp	r0, r1
+ 8010ab4:	bfb8      	it	lt
+ 8010ab6:	4608      	movlt	r0, r1
+ 8010ab8:	4770      	bx	lr
+	...
+
+08010abc <RegionCommonGetBandwidth>:
+ 8010abc:	f851 0020 	ldr.w	r0, [r1, r0, lsl #2]
+ 8010ac0:	4b05      	ldr	r3, [pc, #20]	; (8010ad8 <RegionCommonGetBandwidth+0x1c>)
+ 8010ac2:	4298      	cmp	r0, r3
+ 8010ac4:	d005      	beq.n	8010ad2 <RegionCommonGetBandwidth+0x16>
+ 8010ac6:	4b05      	ldr	r3, [pc, #20]	; (8010adc <RegionCommonGetBandwidth+0x20>)
+ 8010ac8:	1ac3      	subs	r3, r0, r3
+ 8010aca:	4258      	negs	r0, r3
+ 8010acc:	4158      	adcs	r0, r3
+ 8010ace:	0040      	lsls	r0, r0, #1
+ 8010ad0:	4770      	bx	lr
+ 8010ad2:	2001      	movs	r0, #1
+ 8010ad4:	4770      	bx	lr
+ 8010ad6:	bf00      	nop
+ 8010ad8:	0003d090 	.word	0x0003d090
+ 8010adc:	0007a120 	.word	0x0007a120
+
+08010ae0 <RegionCommonRxConfigPrint>:
+ 8010ae0:	2805      	cmp	r0, #5
+ 8010ae2:	b51f      	push	{r0, r1, r2, r3, r4, lr}
+ 8010ae4:	d80e      	bhi.n	8010b04 <RegionCommonRxConfigPrint+0x24>
+ 8010ae6:	4b0c      	ldr	r3, [pc, #48]	; (8010b18 <RegionCommonRxConfigPrint+0x38>)
+ 8010ae8:	f853 3020 	ldr.w	r3, [r3, r0, lsl #2]
+ 8010aec:	9300      	str	r3, [sp, #0]
+ 8010aee:	e9cd 1201 	strd	r1, r2, [sp, #4]
+ 8010af2:	4b0a      	ldr	r3, [pc, #40]	; (8010b1c <RegionCommonRxConfigPrint+0x3c>)
+ 8010af4:	2201      	movs	r2, #1
+ 8010af6:	2100      	movs	r1, #0
+ 8010af8:	2002      	movs	r0, #2
+ 8010afa:	f002 fe69 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8010afe:	b005      	add	sp, #20
+ 8010b00:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8010b04:	e9cd 1200 	strd	r1, r2, [sp]
+ 8010b08:	4b05      	ldr	r3, [pc, #20]	; (8010b20 <RegionCommonRxConfigPrint+0x40>)
+ 8010b0a:	2201      	movs	r2, #1
+ 8010b0c:	2100      	movs	r1, #0
+ 8010b0e:	2002      	movs	r0, #2
+ 8010b10:	f002 fe5e 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8010b14:	e7f3      	b.n	8010afe <RegionCommonRxConfigPrint+0x1e>
+ 8010b16:	bf00      	nop
+ 8010b18:	080151dc 	.word	0x080151dc
+ 8010b1c:	08015173 	.word	0x08015173
+ 8010b20:	08015192 	.word	0x08015192
+
+08010b24 <RegionCommonTxConfigPrint>:
+ 8010b24:	b507      	push	{r0, r1, r2, lr}
+ 8010b26:	4b05      	ldr	r3, [pc, #20]	; (8010b3c <RegionCommonTxConfigPrint+0x18>)
+ 8010b28:	e9cd 0100 	strd	r0, r1, [sp]
+ 8010b2c:	2201      	movs	r2, #1
+ 8010b2e:	2100      	movs	r1, #0
+ 8010b30:	2002      	movs	r0, #2
+ 8010b32:	f002 fe4d 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8010b36:	b003      	add	sp, #12
+ 8010b38:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8010b3c:	080151ae 	.word	0x080151ae
+
+08010b40 <AES_CMAC_Init>:
+ 8010b40:	b510      	push	{r4, lr}
+ 8010b42:	2210      	movs	r2, #16
+ 8010b44:	4604      	mov	r4, r0
+ 8010b46:	2100      	movs	r1, #0
+ 8010b48:	30f1      	adds	r0, #241	; 0xf1
+ 8010b4a:	f000 fe5f 	bl	801180c <memset1>
+ 8010b4e:	2100      	movs	r1, #0
+ 8010b50:	f8c4 1114 	str.w	r1, [r4, #276]	; 0x114
+ 8010b54:	4620      	mov	r0, r4
+ 8010b56:	22f0      	movs	r2, #240	; 0xf0
+ 8010b58:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8010b5c:	f000 be56 	b.w	801180c <memset1>
+
+08010b60 <AES_CMAC_SetKey>:
+ 8010b60:	4602      	mov	r2, r0
+ 8010b62:	4608      	mov	r0, r1
+ 8010b64:	2110      	movs	r1, #16
+ 8010b66:	f000 b9a5 	b.w	8010eb4 <lorawan_aes_set_key>
+
+08010b6a <AES_CMAC_Update>:
+ 8010b6a:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
+ 8010b6e:	4604      	mov	r4, r0
+ 8010b70:	f8d0 0114 	ldr.w	r0, [r0, #276]	; 0x114
+ 8010b74:	b085      	sub	sp, #20
+ 8010b76:	460e      	mov	r6, r1
+ 8010b78:	4615      	mov	r5, r2
+ 8010b7a:	f204 1901 	addw	r9, r4, #257	; 0x101
+ 8010b7e:	b388      	cbz	r0, 8010be4 <AES_CMAC_Update+0x7a>
+ 8010b80:	f1c0 0810 	rsb	r8, r0, #16
+ 8010b84:	4590      	cmp	r8, r2
+ 8010b86:	4647      	mov	r7, r8
+ 8010b88:	bf28      	it	cs
+ 8010b8a:	4617      	movcs	r7, r2
+ 8010b8c:	b2ba      	uxth	r2, r7
+ 8010b8e:	4448      	add	r0, r9
+ 8010b90:	f000 fe28 	bl	80117e4 <memcpy1>
+ 8010b94:	f8d4 3114 	ldr.w	r3, [r4, #276]	; 0x114
+ 8010b98:	443b      	add	r3, r7
+ 8010b9a:	2b0f      	cmp	r3, #15
+ 8010b9c:	f8c4 3114 	str.w	r3, [r4, #276]	; 0x114
+ 8010ba0:	d92d      	bls.n	8010bfe <AES_CMAC_Update+0x94>
+ 8010ba2:	45a8      	cmp	r8, r5
+ 8010ba4:	d22b      	bcs.n	8010bfe <AES_CMAC_Update+0x94>
+ 8010ba6:	f104 03f0 	add.w	r3, r4, #240	; 0xf0
+ 8010baa:	f504 7180 	add.w	r1, r4, #256	; 0x100
+ 8010bae:	f813 2f01 	ldrb.w	r2, [r3, #1]!
+ 8010bb2:	7c18      	ldrb	r0, [r3, #16]
+ 8010bb4:	428b      	cmp	r3, r1
+ 8010bb6:	ea82 0200 	eor.w	r2, r2, r0
+ 8010bba:	701a      	strb	r2, [r3, #0]
+ 8010bbc:	d1f7      	bne.n	8010bae <AES_CMAC_Update+0x44>
+ 8010bbe:	f104 08f1 	add.w	r8, r4, #241	; 0xf1
+ 8010bc2:	2210      	movs	r2, #16
+ 8010bc4:	4641      	mov	r1, r8
+ 8010bc6:	4668      	mov	r0, sp
+ 8010bc8:	f000 fe0c 	bl	80117e4 <memcpy1>
+ 8010bcc:	4622      	mov	r2, r4
+ 8010bce:	4669      	mov	r1, sp
+ 8010bd0:	4668      	mov	r0, sp
+ 8010bd2:	f000 f9e9 	bl	8010fa8 <lorawan_aes_encrypt>
+ 8010bd6:	2210      	movs	r2, #16
+ 8010bd8:	4669      	mov	r1, sp
+ 8010bda:	4640      	mov	r0, r8
+ 8010bdc:	f000 fe02 	bl	80117e4 <memcpy1>
+ 8010be0:	443e      	add	r6, r7
+ 8010be2:	1bed      	subs	r5, r5, r7
+ 8010be4:	f504 7880 	add.w	r8, r4, #256	; 0x100
+ 8010be8:	f104 07f1 	add.w	r7, r4, #241	; 0xf1
+ 8010bec:	2d10      	cmp	r5, #16
+ 8010bee:	d809      	bhi.n	8010c04 <AES_CMAC_Update+0x9a>
+ 8010bf0:	b2aa      	uxth	r2, r5
+ 8010bf2:	4631      	mov	r1, r6
+ 8010bf4:	4648      	mov	r0, r9
+ 8010bf6:	f000 fdf5 	bl	80117e4 <memcpy1>
+ 8010bfa:	f8c4 5114 	str.w	r5, [r4, #276]	; 0x114
+ 8010bfe:	b005      	add	sp, #20
+ 8010c00:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
+ 8010c04:	f104 03f0 	add.w	r3, r4, #240	; 0xf0
+ 8010c08:	1e71      	subs	r1, r6, #1
+ 8010c0a:	f813 2f01 	ldrb.w	r2, [r3, #1]!
+ 8010c0e:	f811 0f01 	ldrb.w	r0, [r1, #1]!
+ 8010c12:	4543      	cmp	r3, r8
+ 8010c14:	ea82 0200 	eor.w	r2, r2, r0
+ 8010c18:	701a      	strb	r2, [r3, #0]
+ 8010c1a:	d1f6      	bne.n	8010c0a <AES_CMAC_Update+0xa0>
+ 8010c1c:	2210      	movs	r2, #16
+ 8010c1e:	4639      	mov	r1, r7
+ 8010c20:	4668      	mov	r0, sp
+ 8010c22:	f000 fddf 	bl	80117e4 <memcpy1>
+ 8010c26:	4622      	mov	r2, r4
+ 8010c28:	4669      	mov	r1, sp
+ 8010c2a:	4668      	mov	r0, sp
+ 8010c2c:	f000 f9bc 	bl	8010fa8 <lorawan_aes_encrypt>
+ 8010c30:	2210      	movs	r2, #16
+ 8010c32:	4669      	mov	r1, sp
+ 8010c34:	4638      	mov	r0, r7
+ 8010c36:	f000 fdd5 	bl	80117e4 <memcpy1>
+ 8010c3a:	3610      	adds	r6, #16
+ 8010c3c:	3d10      	subs	r5, #16
+ 8010c3e:	e7d5      	b.n	8010bec <AES_CMAC_Update+0x82>
+
+08010c40 <AES_CMAC_Final>:
+ 8010c40:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8010c42:	b089      	sub	sp, #36	; 0x24
+ 8010c44:	460c      	mov	r4, r1
+ 8010c46:	2210      	movs	r2, #16
+ 8010c48:	2100      	movs	r1, #0
+ 8010c4a:	4605      	mov	r5, r0
+ 8010c4c:	4668      	mov	r0, sp
+ 8010c4e:	f000 fddd 	bl	801180c <memset1>
+ 8010c52:	4622      	mov	r2, r4
+ 8010c54:	4669      	mov	r1, sp
+ 8010c56:	4668      	mov	r0, sp
+ 8010c58:	f000 f9a6 	bl	8010fa8 <lorawan_aes_encrypt>
+ 8010c5c:	f99d 3000 	ldrsb.w	r3, [sp]
+ 8010c60:	2b00      	cmp	r3, #0
+ 8010c62:	466a      	mov	r2, sp
+ 8010c64:	f04f 0100 	mov.w	r1, #0
+ 8010c68:	da43      	bge.n	8010cf2 <AES_CMAC_Final+0xb2>
+ 8010c6a:	7813      	ldrb	r3, [r2, #0]
+ 8010c6c:	f812 0f01 	ldrb.w	r0, [r2, #1]!
+ 8010c70:	3101      	adds	r1, #1
+ 8010c72:	005b      	lsls	r3, r3, #1
+ 8010c74:	ea43 13d0 	orr.w	r3, r3, r0, lsr #7
+ 8010c78:	290f      	cmp	r1, #15
+ 8010c7a:	f802 3c01 	strb.w	r3, [r2, #-1]
+ 8010c7e:	d1f4      	bne.n	8010c6a <AES_CMAC_Final+0x2a>
+ 8010c80:	f89d 300f 	ldrb.w	r3, [sp, #15]
+ 8010c84:	005b      	lsls	r3, r3, #1
+ 8010c86:	f083 0387 	eor.w	r3, r3, #135	; 0x87
+ 8010c8a:	f8d4 0114 	ldr.w	r0, [r4, #276]	; 0x114
+ 8010c8e:	b2db      	uxtb	r3, r3
+ 8010c90:	2810      	cmp	r0, #16
+ 8010c92:	f88d 300f 	strb.w	r3, [sp, #15]
+ 8010c96:	d13b      	bne.n	8010d10 <AES_CMAC_Final+0xd0>
+ 8010c98:	f504 7380 	add.w	r3, r4, #256	; 0x100
+ 8010c9c:	4669      	mov	r1, sp
+ 8010c9e:	f504 7088 	add.w	r0, r4, #272	; 0x110
+ 8010ca2:	f813 6f01 	ldrb.w	r6, [r3, #1]!
+ 8010ca6:	f811 2b01 	ldrb.w	r2, [r1], #1
+ 8010caa:	4298      	cmp	r0, r3
+ 8010cac:	ea82 0206 	eor.w	r2, r2, r6
+ 8010cb0:	701a      	strb	r2, [r3, #0]
+ 8010cb2:	d1f6      	bne.n	8010ca2 <AES_CMAC_Final+0x62>
+ 8010cb4:	f104 03f0 	add.w	r3, r4, #240	; 0xf0
+ 8010cb8:	f504 7180 	add.w	r1, r4, #256	; 0x100
+ 8010cbc:	f813 2f01 	ldrb.w	r2, [r3, #1]!
+ 8010cc0:	7c18      	ldrb	r0, [r3, #16]
+ 8010cc2:	428b      	cmp	r3, r1
+ 8010cc4:	ea82 0200 	eor.w	r2, r2, r0
+ 8010cc8:	701a      	strb	r2, [r3, #0]
+ 8010cca:	d1f7      	bne.n	8010cbc <AES_CMAC_Final+0x7c>
+ 8010ccc:	2210      	movs	r2, #16
+ 8010cce:	eb0d 0002 	add.w	r0, sp, r2
+ 8010cd2:	f104 01f1 	add.w	r1, r4, #241	; 0xf1
+ 8010cd6:	f000 fd85 	bl	80117e4 <memcpy1>
+ 8010cda:	4622      	mov	r2, r4
+ 8010cdc:	4629      	mov	r1, r5
+ 8010cde:	a804      	add	r0, sp, #16
+ 8010ce0:	f000 f962 	bl	8010fa8 <lorawan_aes_encrypt>
+ 8010ce4:	2210      	movs	r2, #16
+ 8010ce6:	2100      	movs	r1, #0
+ 8010ce8:	4668      	mov	r0, sp
+ 8010cea:	f000 fd8f 	bl	801180c <memset1>
+ 8010cee:	b009      	add	sp, #36	; 0x24
+ 8010cf0:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8010cf2:	7813      	ldrb	r3, [r2, #0]
+ 8010cf4:	f812 0f01 	ldrb.w	r0, [r2, #1]!
+ 8010cf8:	3101      	adds	r1, #1
+ 8010cfa:	005b      	lsls	r3, r3, #1
+ 8010cfc:	ea43 13d0 	orr.w	r3, r3, r0, lsr #7
+ 8010d00:	290f      	cmp	r1, #15
+ 8010d02:	f802 3c01 	strb.w	r3, [r2, #-1]
+ 8010d06:	d1f4      	bne.n	8010cf2 <AES_CMAC_Final+0xb2>
+ 8010d08:	f89d 300f 	ldrb.w	r3, [sp, #15]
+ 8010d0c:	005b      	lsls	r3, r3, #1
+ 8010d0e:	e7bc      	b.n	8010c8a <AES_CMAC_Final+0x4a>
+ 8010d10:	f99d 3000 	ldrsb.w	r3, [sp]
+ 8010d14:	2b00      	cmp	r3, #0
+ 8010d16:	466a      	mov	r2, sp
+ 8010d18:	f04f 0100 	mov.w	r1, #0
+ 8010d1c:	da37      	bge.n	8010d8e <AES_CMAC_Final+0x14e>
+ 8010d1e:	7813      	ldrb	r3, [r2, #0]
+ 8010d20:	f812 6f01 	ldrb.w	r6, [r2, #1]!
+ 8010d24:	3101      	adds	r1, #1
+ 8010d26:	005b      	lsls	r3, r3, #1
+ 8010d28:	ea43 13d6 	orr.w	r3, r3, r6, lsr #7
+ 8010d2c:	290f      	cmp	r1, #15
+ 8010d2e:	f802 3c01 	strb.w	r3, [r2, #-1]
+ 8010d32:	d1f4      	bne.n	8010d1e <AES_CMAC_Final+0xde>
+ 8010d34:	f89d 300f 	ldrb.w	r3, [sp, #15]
+ 8010d38:	005b      	lsls	r3, r3, #1
+ 8010d3a:	f083 0387 	eor.w	r3, r3, #135	; 0x87
+ 8010d3e:	1c47      	adds	r7, r0, #1
+ 8010d40:	b2db      	uxtb	r3, r3
+ 8010d42:	f88d 300f 	strb.w	r3, [sp, #15]
+ 8010d46:	2f10      	cmp	r7, #16
+ 8010d48:	eb04 0300 	add.w	r3, r4, r0
+ 8010d4c:	f1c0 060f 	rsb	r6, r0, #15
+ 8010d50:	f04f 0280 	mov.w	r2, #128	; 0x80
+ 8010d54:	bf88      	it	hi
+ 8010d56:	2600      	movhi	r6, #0
+ 8010d58:	f500 7081 	add.w	r0, r0, #258	; 0x102
+ 8010d5c:	f883 2101 	strb.w	r2, [r3, #257]	; 0x101
+ 8010d60:	2100      	movs	r1, #0
+ 8010d62:	4632      	mov	r2, r6
+ 8010d64:	4420      	add	r0, r4
+ 8010d66:	443e      	add	r6, r7
+ 8010d68:	f003 fa72 	bl	8014250 <memset>
+ 8010d6c:	f8c4 6114 	str.w	r6, [r4, #276]	; 0x114
+ 8010d70:	f504 7380 	add.w	r3, r4, #256	; 0x100
+ 8010d74:	4669      	mov	r1, sp
+ 8010d76:	f504 7088 	add.w	r0, r4, #272	; 0x110
+ 8010d7a:	f813 6f01 	ldrb.w	r6, [r3, #1]!
+ 8010d7e:	f811 2b01 	ldrb.w	r2, [r1], #1
+ 8010d82:	4298      	cmp	r0, r3
+ 8010d84:	ea82 0206 	eor.w	r2, r2, r6
+ 8010d88:	701a      	strb	r2, [r3, #0]
+ 8010d8a:	d1f6      	bne.n	8010d7a <AES_CMAC_Final+0x13a>
+ 8010d8c:	e792      	b.n	8010cb4 <AES_CMAC_Final+0x74>
+ 8010d8e:	7813      	ldrb	r3, [r2, #0]
+ 8010d90:	f812 6f01 	ldrb.w	r6, [r2, #1]!
+ 8010d94:	3101      	adds	r1, #1
+ 8010d96:	005b      	lsls	r3, r3, #1
+ 8010d98:	ea43 13d6 	orr.w	r3, r3, r6, lsr #7
+ 8010d9c:	290f      	cmp	r1, #15
+ 8010d9e:	f802 3c01 	strb.w	r3, [r2, #-1]
+ 8010da2:	d1f4      	bne.n	8010d8e <AES_CMAC_Final+0x14e>
+ 8010da4:	f89d 300f 	ldrb.w	r3, [sp, #15]
+ 8010da8:	005b      	lsls	r3, r3, #1
+ 8010daa:	e7c8      	b.n	8010d3e <AES_CMAC_Final+0xfe>
+
+08010dac <xor_block>:
+ 8010dac:	780a      	ldrb	r2, [r1, #0]
+ 8010dae:	7803      	ldrb	r3, [r0, #0]
+ 8010db0:	4053      	eors	r3, r2
+ 8010db2:	7003      	strb	r3, [r0, #0]
+ 8010db4:	784a      	ldrb	r2, [r1, #1]
+ 8010db6:	7843      	ldrb	r3, [r0, #1]
+ 8010db8:	4053      	eors	r3, r2
+ 8010dba:	7043      	strb	r3, [r0, #1]
+ 8010dbc:	788a      	ldrb	r2, [r1, #2]
+ 8010dbe:	7883      	ldrb	r3, [r0, #2]
+ 8010dc0:	4053      	eors	r3, r2
+ 8010dc2:	7083      	strb	r3, [r0, #2]
+ 8010dc4:	78ca      	ldrb	r2, [r1, #3]
+ 8010dc6:	78c3      	ldrb	r3, [r0, #3]
+ 8010dc8:	4053      	eors	r3, r2
+ 8010dca:	70c3      	strb	r3, [r0, #3]
+ 8010dcc:	790a      	ldrb	r2, [r1, #4]
+ 8010dce:	7903      	ldrb	r3, [r0, #4]
+ 8010dd0:	4053      	eors	r3, r2
+ 8010dd2:	7103      	strb	r3, [r0, #4]
+ 8010dd4:	794a      	ldrb	r2, [r1, #5]
+ 8010dd6:	7943      	ldrb	r3, [r0, #5]
+ 8010dd8:	4053      	eors	r3, r2
+ 8010dda:	7143      	strb	r3, [r0, #5]
+ 8010ddc:	798a      	ldrb	r2, [r1, #6]
+ 8010dde:	7983      	ldrb	r3, [r0, #6]
+ 8010de0:	4053      	eors	r3, r2
+ 8010de2:	7183      	strb	r3, [r0, #6]
+ 8010de4:	79ca      	ldrb	r2, [r1, #7]
+ 8010de6:	79c3      	ldrb	r3, [r0, #7]
+ 8010de8:	4053      	eors	r3, r2
+ 8010dea:	71c3      	strb	r3, [r0, #7]
+ 8010dec:	7a0a      	ldrb	r2, [r1, #8]
+ 8010dee:	7a03      	ldrb	r3, [r0, #8]
+ 8010df0:	4053      	eors	r3, r2
+ 8010df2:	7203      	strb	r3, [r0, #8]
+ 8010df4:	7a4a      	ldrb	r2, [r1, #9]
+ 8010df6:	7a43      	ldrb	r3, [r0, #9]
+ 8010df8:	4053      	eors	r3, r2
+ 8010dfa:	7243      	strb	r3, [r0, #9]
+ 8010dfc:	7a8a      	ldrb	r2, [r1, #10]
+ 8010dfe:	7a83      	ldrb	r3, [r0, #10]
+ 8010e00:	4053      	eors	r3, r2
+ 8010e02:	7283      	strb	r3, [r0, #10]
+ 8010e04:	7aca      	ldrb	r2, [r1, #11]
+ 8010e06:	7ac3      	ldrb	r3, [r0, #11]
+ 8010e08:	4053      	eors	r3, r2
+ 8010e0a:	72c3      	strb	r3, [r0, #11]
+ 8010e0c:	7b0a      	ldrb	r2, [r1, #12]
+ 8010e0e:	7b03      	ldrb	r3, [r0, #12]
+ 8010e10:	4053      	eors	r3, r2
+ 8010e12:	7303      	strb	r3, [r0, #12]
+ 8010e14:	7b4a      	ldrb	r2, [r1, #13]
+ 8010e16:	7b43      	ldrb	r3, [r0, #13]
+ 8010e18:	4053      	eors	r3, r2
+ 8010e1a:	7343      	strb	r3, [r0, #13]
+ 8010e1c:	7b8a      	ldrb	r2, [r1, #14]
+ 8010e1e:	7b83      	ldrb	r3, [r0, #14]
+ 8010e20:	4053      	eors	r3, r2
+ 8010e22:	7383      	strb	r3, [r0, #14]
+ 8010e24:	7bca      	ldrb	r2, [r1, #15]
+ 8010e26:	7bc3      	ldrb	r3, [r0, #15]
+ 8010e28:	4053      	eors	r3, r2
+ 8010e2a:	73c3      	strb	r3, [r0, #15]
+ 8010e2c:	4770      	bx	lr
+
+08010e2e <copy_and_key>:
+ 8010e2e:	b510      	push	{r4, lr}
+ 8010e30:	780b      	ldrb	r3, [r1, #0]
+ 8010e32:	7814      	ldrb	r4, [r2, #0]
+ 8010e34:	4063      	eors	r3, r4
+ 8010e36:	7003      	strb	r3, [r0, #0]
+ 8010e38:	7854      	ldrb	r4, [r2, #1]
+ 8010e3a:	784b      	ldrb	r3, [r1, #1]
+ 8010e3c:	4063      	eors	r3, r4
+ 8010e3e:	7043      	strb	r3, [r0, #1]
+ 8010e40:	7894      	ldrb	r4, [r2, #2]
+ 8010e42:	788b      	ldrb	r3, [r1, #2]
+ 8010e44:	4063      	eors	r3, r4
+ 8010e46:	7083      	strb	r3, [r0, #2]
+ 8010e48:	78d4      	ldrb	r4, [r2, #3]
+ 8010e4a:	78cb      	ldrb	r3, [r1, #3]
+ 8010e4c:	4063      	eors	r3, r4
+ 8010e4e:	70c3      	strb	r3, [r0, #3]
+ 8010e50:	7914      	ldrb	r4, [r2, #4]
+ 8010e52:	790b      	ldrb	r3, [r1, #4]
+ 8010e54:	4063      	eors	r3, r4
+ 8010e56:	7103      	strb	r3, [r0, #4]
+ 8010e58:	7954      	ldrb	r4, [r2, #5]
+ 8010e5a:	794b      	ldrb	r3, [r1, #5]
+ 8010e5c:	4063      	eors	r3, r4
+ 8010e5e:	7143      	strb	r3, [r0, #5]
+ 8010e60:	7994      	ldrb	r4, [r2, #6]
+ 8010e62:	798b      	ldrb	r3, [r1, #6]
+ 8010e64:	4063      	eors	r3, r4
+ 8010e66:	7183      	strb	r3, [r0, #6]
+ 8010e68:	79d4      	ldrb	r4, [r2, #7]
+ 8010e6a:	79cb      	ldrb	r3, [r1, #7]
+ 8010e6c:	4063      	eors	r3, r4
+ 8010e6e:	71c3      	strb	r3, [r0, #7]
+ 8010e70:	7a14      	ldrb	r4, [r2, #8]
+ 8010e72:	7a0b      	ldrb	r3, [r1, #8]
+ 8010e74:	4063      	eors	r3, r4
+ 8010e76:	7203      	strb	r3, [r0, #8]
+ 8010e78:	7a54      	ldrb	r4, [r2, #9]
+ 8010e7a:	7a4b      	ldrb	r3, [r1, #9]
+ 8010e7c:	4063      	eors	r3, r4
+ 8010e7e:	7243      	strb	r3, [r0, #9]
+ 8010e80:	7a8b      	ldrb	r3, [r1, #10]
+ 8010e82:	7a94      	ldrb	r4, [r2, #10]
+ 8010e84:	4063      	eors	r3, r4
+ 8010e86:	7283      	strb	r3, [r0, #10]
+ 8010e88:	7ad4      	ldrb	r4, [r2, #11]
+ 8010e8a:	7acb      	ldrb	r3, [r1, #11]
+ 8010e8c:	4063      	eors	r3, r4
+ 8010e8e:	72c3      	strb	r3, [r0, #11]
+ 8010e90:	7b14      	ldrb	r4, [r2, #12]
+ 8010e92:	7b0b      	ldrb	r3, [r1, #12]
+ 8010e94:	4063      	eors	r3, r4
+ 8010e96:	7303      	strb	r3, [r0, #12]
+ 8010e98:	7b54      	ldrb	r4, [r2, #13]
+ 8010e9a:	7b4b      	ldrb	r3, [r1, #13]
+ 8010e9c:	4063      	eors	r3, r4
+ 8010e9e:	7343      	strb	r3, [r0, #13]
+ 8010ea0:	7b94      	ldrb	r4, [r2, #14]
+ 8010ea2:	7b8b      	ldrb	r3, [r1, #14]
+ 8010ea4:	4063      	eors	r3, r4
+ 8010ea6:	7383      	strb	r3, [r0, #14]
+ 8010ea8:	7bcb      	ldrb	r3, [r1, #15]
+ 8010eaa:	7bd2      	ldrb	r2, [r2, #15]
+ 8010eac:	4053      	eors	r3, r2
+ 8010eae:	73c3      	strb	r3, [r0, #15]
+ 8010eb0:	bd10      	pop	{r4, pc}
+	...
+
+08010eb4 <lorawan_aes_set_key>:
+ 8010eb4:	f1a1 0310 	sub.w	r3, r1, #16
+ 8010eb8:	b2db      	uxtb	r3, r3
+ 8010eba:	2b10      	cmp	r3, #16
+ 8010ebc:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
+ 8010ec0:	d804      	bhi.n	8010ecc <lorawan_aes_set_key+0x18>
+ 8010ec2:	4c37      	ldr	r4, [pc, #220]	; (8010fa0 <lorawan_aes_set_key+0xec>)
+ 8010ec4:	fa24 f303 	lsr.w	r3, r4, r3
+ 8010ec8:	07db      	lsls	r3, r3, #31
+ 8010eca:	d405      	bmi.n	8010ed8 <lorawan_aes_set_key+0x24>
+ 8010ecc:	2300      	movs	r3, #0
+ 8010ece:	f882 30f0 	strb.w	r3, [r2, #240]	; 0xf0
+ 8010ed2:	20ff      	movs	r0, #255	; 0xff
+ 8010ed4:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 8010ed8:	1e53      	subs	r3, r2, #1
+ 8010eda:	1844      	adds	r4, r0, r1
+ 8010edc:	42a0      	cmp	r0, r4
+ 8010ede:	d14e      	bne.n	8010f7e <lorawan_aes_set_key+0xca>
+ 8010ee0:	f101 031c 	add.w	r3, r1, #28
+ 8010ee4:	009b      	lsls	r3, r3, #2
+ 8010ee6:	fa5f f983 	uxtb.w	r9, r3
+ 8010eea:	f3c3 1303 	ubfx	r3, r3, #4, #4
+ 8010eee:	3b01      	subs	r3, #1
+ 8010ef0:	4d2c      	ldr	r5, [pc, #176]	; (8010fa4 <lorawan_aes_set_key+0xf0>)
+ 8010ef2:	f882 30f0 	strb.w	r3, [r2, #240]	; 0xf0
+ 8010ef6:	2401      	movs	r4, #1
+ 8010ef8:	460b      	mov	r3, r1
+ 8010efa:	18d6      	adds	r6, r2, r3
+ 8010efc:	fbb3 f0f1 	udiv	r0, r3, r1
+ 8010f00:	fb01 3010 	mls	r0, r1, r0, r3
+ 8010f04:	f010 00ff 	ands.w	r0, r0, #255	; 0xff
+ 8010f08:	f816 ac04 	ldrb.w	sl, [r6, #-4]
+ 8010f0c:	f816 ec03 	ldrb.w	lr, [r6, #-3]
+ 8010f10:	f816 cc02 	ldrb.w	ip, [r6, #-2]
+ 8010f14:	f816 7c01 	ldrb.w	r7, [r6, #-1]
+ 8010f18:	d136      	bne.n	8010f88 <lorawan_aes_set_key+0xd4>
+ 8010f1a:	f815 800e 	ldrb.w	r8, [r5, lr]
+ 8010f1e:	f815 e00c 	ldrb.w	lr, [r5, ip]
+ 8010f22:	f815 c007 	ldrb.w	ip, [r5, r7]
+ 8010f26:	f815 700a 	ldrb.w	r7, [r5, sl]
+ 8010f2a:	09e0      	lsrs	r0, r4, #7
+ 8010f2c:	eb00 0040 	add.w	r0, r0, r0, lsl #1
+ 8010f30:	ea84 0808 	eor.w	r8, r4, r8
+ 8010f34:	eb00 00c0 	add.w	r0, r0, r0, lsl #3
+ 8010f38:	0064      	lsls	r4, r4, #1
+ 8010f3a:	b2c0      	uxtb	r0, r0
+ 8010f3c:	b2e4      	uxtb	r4, r4
+ 8010f3e:	4044      	eors	r4, r0
+ 8010f40:	46c2      	mov	sl, r8
+ 8010f42:	1a58      	subs	r0, r3, r1
+ 8010f44:	b2c0      	uxtb	r0, r0
+ 8010f46:	f812 8000 	ldrb.w	r8, [r2, r0]
+ 8010f4a:	ea8a 0a08 	eor.w	sl, sl, r8
+ 8010f4e:	f802 a003 	strb.w	sl, [r2, r3]
+ 8010f52:	4410      	add	r0, r2
+ 8010f54:	3304      	adds	r3, #4
+ 8010f56:	f890 8001 	ldrb.w	r8, [r0, #1]
+ 8010f5a:	ea8e 0e08 	eor.w	lr, lr, r8
+ 8010f5e:	f886 e001 	strb.w	lr, [r6, #1]
+ 8010f62:	f890 e002 	ldrb.w	lr, [r0, #2]
+ 8010f66:	ea8c 0c0e 	eor.w	ip, ip, lr
+ 8010f6a:	f886 c002 	strb.w	ip, [r6, #2]
+ 8010f6e:	78c0      	ldrb	r0, [r0, #3]
+ 8010f70:	b2db      	uxtb	r3, r3
+ 8010f72:	4047      	eors	r7, r0
+ 8010f74:	4599      	cmp	r9, r3
+ 8010f76:	70f7      	strb	r7, [r6, #3]
+ 8010f78:	d8bf      	bhi.n	8010efa <lorawan_aes_set_key+0x46>
+ 8010f7a:	2000      	movs	r0, #0
+ 8010f7c:	e7aa      	b.n	8010ed4 <lorawan_aes_set_key+0x20>
+ 8010f7e:	f810 5b01 	ldrb.w	r5, [r0], #1
+ 8010f82:	f803 5f01 	strb.w	r5, [r3, #1]!
+ 8010f86:	e7a9      	b.n	8010edc <lorawan_aes_set_key+0x28>
+ 8010f88:	2918      	cmp	r1, #24
+ 8010f8a:	d9da      	bls.n	8010f42 <lorawan_aes_set_key+0x8e>
+ 8010f8c:	2810      	cmp	r0, #16
+ 8010f8e:	bf01      	itttt	eq
+ 8010f90:	f815 a00a 	ldrbeq.w	sl, [r5, sl]
+ 8010f94:	f815 e00e 	ldrbeq.w	lr, [r5, lr]
+ 8010f98:	f815 c00c 	ldrbeq.w	ip, [r5, ip]
+ 8010f9c:	5def      	ldrbeq	r7, [r5, r7]
+ 8010f9e:	e7d0      	b.n	8010f42 <lorawan_aes_set_key+0x8e>
+ 8010fa0:	00010101 	.word	0x00010101
+ 8010fa4:	080153f4 	.word	0x080153f4
+
+08010fa8 <lorawan_aes_encrypt>:
+ 8010fa8:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8010fac:	b0a3      	sub	sp, #140	; 0x8c
+ 8010fae:	f892 30f0 	ldrb.w	r3, [r2, #240]	; 0xf0
+ 8010fb2:	911d      	str	r1, [sp, #116]	; 0x74
+ 8010fb4:	921b      	str	r2, [sp, #108]	; 0x6c
+ 8010fb6:	9301      	str	r3, [sp, #4]
+ 8010fb8:	2b00      	cmp	r3, #0
+ 8010fba:	f000 8153 	beq.w	8011264 <lorawan_aes_encrypt+0x2bc>
+ 8010fbe:	4601      	mov	r1, r0
+ 8010fc0:	a81e      	add	r0, sp, #120	; 0x78
+ 8010fc2:	f7ff ff34 	bl	8010e2e <copy_and_key>
+ 8010fc6:	9b1b      	ldr	r3, [sp, #108]	; 0x6c
+ 8010fc8:	4ca7      	ldr	r4, [pc, #668]	; (8011268 <lorawan_aes_encrypt+0x2c0>)
+ 8010fca:	4da8      	ldr	r5, [pc, #672]	; (801126c <lorawan_aes_encrypt+0x2c4>)
+ 8010fcc:	4ea8      	ldr	r6, [pc, #672]	; (8011270 <lorawan_aes_encrypt+0x2c8>)
+ 8010fce:	3310      	adds	r3, #16
+ 8010fd0:	9302      	str	r3, [sp, #8]
+ 8010fd2:	2300      	movs	r3, #0
+ 8010fd4:	9303      	str	r3, [sp, #12]
+ 8010fd6:	f89d 007c 	ldrb.w	r0, [sp, #124]	; 0x7c
+ 8010fda:	9004      	str	r0, [sp, #16]
+ 8010fdc:	f89d 0086 	ldrb.w	r0, [sp, #134]	; 0x86
+ 8010fe0:	9005      	str	r0, [sp, #20]
+ 8010fe2:	5c20      	ldrb	r0, [r4, r0]
+ 8010fe4:	9006      	str	r0, [sp, #24]
+ 8010fe6:	f89d 007b 	ldrb.w	r0, [sp, #123]	; 0x7b
+ 8010fea:	9007      	str	r0, [sp, #28]
+ 8010fec:	5c20      	ldrb	r0, [r4, r0]
+ 8010fee:	9008      	str	r0, [sp, #32]
+ 8010ff0:	9804      	ldr	r0, [sp, #16]
+ 8010ff2:	f89d c081 	ldrb.w	ip, [sp, #129]	; 0x81
+ 8010ff6:	5c20      	ldrb	r0, [r4, r0]
+ 8010ff8:	9009      	str	r0, [sp, #36]	; 0x24
+ 8010ffa:	f814 000c 	ldrb.w	r0, [r4, ip]
+ 8010ffe:	900a      	str	r0, [sp, #40]	; 0x28
+ 8011000:	f89d 0080 	ldrb.w	r0, [sp, #128]	; 0x80
+ 8011004:	900b      	str	r0, [sp, #44]	; 0x2c
+ 8011006:	f89d 0085 	ldrb.w	r0, [sp, #133]	; 0x85
+ 801100a:	f89d 8078 	ldrb.w	r8, [sp, #120]	; 0x78
+ 801100e:	f89d e07d 	ldrb.w	lr, [sp, #125]	; 0x7d
+ 8011012:	f89d a082 	ldrb.w	sl, [sp, #130]	; 0x82
+ 8011016:	f89d 9087 	ldrb.w	r9, [sp, #135]	; 0x87
+ 801101a:	900c      	str	r0, [sp, #48]	; 0x30
+ 801101c:	f89d 007a 	ldrb.w	r0, [sp, #122]	; 0x7a
+ 8011020:	9b02      	ldr	r3, [sp, #8]
+ 8011022:	931c      	str	r3, [sp, #112]	; 0x70
+ 8011024:	f814 200a 	ldrb.w	r2, [r4, sl]
+ 8011028:	f814 3009 	ldrb.w	r3, [r4, r9]
+ 801102c:	f814 1008 	ldrb.w	r1, [r4, r8]
+ 8011030:	f814 700e 	ldrb.w	r7, [r4, lr]
+ 8011034:	900d      	str	r0, [sp, #52]	; 0x34
+ 8011036:	5c20      	ldrb	r0, [r4, r0]
+ 8011038:	900e      	str	r0, [sp, #56]	; 0x38
+ 801103a:	f89d 007f 	ldrb.w	r0, [sp, #127]	; 0x7f
+ 801103e:	900f      	str	r0, [sp, #60]	; 0x3c
+ 8011040:	5c20      	ldrb	r0, [r4, r0]
+ 8011042:	9010      	str	r0, [sp, #64]	; 0x40
+ 8011044:	980b      	ldr	r0, [sp, #44]	; 0x2c
+ 8011046:	5c20      	ldrb	r0, [r4, r0]
+ 8011048:	9011      	str	r0, [sp, #68]	; 0x44
+ 801104a:	980c      	ldr	r0, [sp, #48]	; 0x30
+ 801104c:	5c20      	ldrb	r0, [r4, r0]
+ 801104e:	9012      	str	r0, [sp, #72]	; 0x48
+ 8011050:	f89d 0084 	ldrb.w	r0, [sp, #132]	; 0x84
+ 8011054:	9013      	str	r0, [sp, #76]	; 0x4c
+ 8011056:	f89d 0079 	ldrb.w	r0, [sp, #121]	; 0x79
+ 801105a:	9014      	str	r0, [sp, #80]	; 0x50
+ 801105c:	f89d 007e 	ldrb.w	r0, [sp, #126]	; 0x7e
+ 8011060:	9015      	str	r0, [sp, #84]	; 0x54
+ 8011062:	5c20      	ldrb	r0, [r4, r0]
+ 8011064:	9016      	str	r0, [sp, #88]	; 0x58
+ 8011066:	f89d 0083 	ldrb.w	r0, [sp, #131]	; 0x83
+ 801106a:	9017      	str	r0, [sp, #92]	; 0x5c
+ 801106c:	5c20      	ldrb	r0, [r4, r0]
+ 801106e:	9018      	str	r0, [sp, #96]	; 0x60
+ 8011070:	9813      	ldr	r0, [sp, #76]	; 0x4c
+ 8011072:	5c20      	ldrb	r0, [r4, r0]
+ 8011074:	9019      	str	r0, [sp, #100]	; 0x64
+ 8011076:	9814      	ldr	r0, [sp, #80]	; 0x50
+ 8011078:	5c20      	ldrb	r0, [r4, r0]
+ 801107a:	901a      	str	r0, [sp, #104]	; 0x68
+ 801107c:	9803      	ldr	r0, [sp, #12]
+ 801107e:	3001      	adds	r0, #1
+ 8011080:	9003      	str	r0, [sp, #12]
+ 8011082:	9802      	ldr	r0, [sp, #8]
+ 8011084:	f8dd b004 	ldr.w	fp, [sp, #4]
+ 8011088:	3010      	adds	r0, #16
+ 801108a:	9002      	str	r0, [sp, #8]
+ 801108c:	f89d 000c 	ldrb.w	r0, [sp, #12]
+ 8011090:	4583      	cmp	fp, r0
+ 8011092:	d836      	bhi.n	8011102 <lorawan_aes_encrypt+0x15a>
+ 8011094:	f88d 1078 	strb.w	r1, [sp, #120]	; 0x78
+ 8011098:	f88d 207a 	strb.w	r2, [sp, #122]	; 0x7a
+ 801109c:	9909      	ldr	r1, [sp, #36]	; 0x24
+ 801109e:	9a0e      	ldr	r2, [sp, #56]	; 0x38
+ 80110a0:	f88d 107c 	strb.w	r1, [sp, #124]	; 0x7c
+ 80110a4:	f88d 2082 	strb.w	r2, [sp, #130]	; 0x82
+ 80110a8:	9911      	ldr	r1, [sp, #68]	; 0x44
+ 80110aa:	9a06      	ldr	r2, [sp, #24]
+ 80110ac:	f88d 1080 	strb.w	r1, [sp, #128]	; 0x80
+ 80110b0:	f88d 207e 	strb.w	r2, [sp, #126]	; 0x7e
+ 80110b4:	9919      	ldr	r1, [sp, #100]	; 0x64
+ 80110b6:	9a16      	ldr	r2, [sp, #88]	; 0x58
+ 80110b8:	f88d 1084 	strb.w	r1, [sp, #132]	; 0x84
+ 80110bc:	f88d 2086 	strb.w	r2, [sp, #134]	; 0x86
+ 80110c0:	990a      	ldr	r1, [sp, #40]	; 0x28
+ 80110c2:	9a18      	ldr	r2, [sp, #96]	; 0x60
+ 80110c4:	f88d 107d 	strb.w	r1, [sp, #125]	; 0x7d
+ 80110c8:	f88d 2087 	strb.w	r2, [sp, #135]	; 0x87
+ 80110cc:	9912      	ldr	r1, [sp, #72]	; 0x48
+ 80110ce:	9a10      	ldr	r2, [sp, #64]	; 0x40
+ 80110d0:	f88d 307b 	strb.w	r3, [sp, #123]	; 0x7b
+ 80110d4:	9b1b      	ldr	r3, [sp, #108]	; 0x6c
+ 80110d6:	f88d 1081 	strb.w	r1, [sp, #129]	; 0x81
+ 80110da:	f88d 2083 	strb.w	r2, [sp, #131]	; 0x83
+ 80110de:	991a      	ldr	r1, [sp, #104]	; 0x68
+ 80110e0:	9a08      	ldr	r2, [sp, #32]
+ 80110e2:	981d      	ldr	r0, [sp, #116]	; 0x74
+ 80110e4:	f88d 1085 	strb.w	r1, [sp, #133]	; 0x85
+ 80110e8:	f88d 207f 	strb.w	r2, [sp, #127]	; 0x7f
+ 80110ec:	a91e      	add	r1, sp, #120	; 0x78
+ 80110ee:	eb03 120b 	add.w	r2, r3, fp, lsl #4
+ 80110f2:	f88d 7079 	strb.w	r7, [sp, #121]	; 0x79
+ 80110f6:	f7ff fe9a 	bl	8010e2e <copy_and_key>
+ 80110fa:	2000      	movs	r0, #0
+ 80110fc:	b023      	add	sp, #140	; 0x8c
+ 80110fe:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 8011102:	f815 b008 	ldrb.w	fp, [r5, r8]
+ 8011106:	ea82 0003 	eor.w	r0, r2, r3
+ 801110a:	ea8b 0000 	eor.w	r0, fp, r0
+ 801110e:	f816 b00e 	ldrb.w	fp, [r6, lr]
+ 8011112:	ea80 000b 	eor.w	r0, r0, fp
+ 8011116:	f88d 0078 	strb.w	r0, [sp, #120]	; 0x78
+ 801111a:	f815 000e 	ldrb.w	r0, [r5, lr]
+ 801111e:	404b      	eors	r3, r1
+ 8011120:	4043      	eors	r3, r0
+ 8011122:	f816 000a 	ldrb.w	r0, [r6, sl]
+ 8011126:	4043      	eors	r3, r0
+ 8011128:	f88d 3079 	strb.w	r3, [sp, #121]	; 0x79
+ 801112c:	ea81 0307 	eor.w	r3, r1, r7
+ 8011130:	f815 100a 	ldrb.w	r1, [r5, sl]
+ 8011134:	4059      	eors	r1, r3
+ 8011136:	f816 3009 	ldrb.w	r3, [r6, r9]
+ 801113a:	4059      	eors	r1, r3
+ 801113c:	f816 3008 	ldrb.w	r3, [r6, r8]
+ 8011140:	f88d 107a 	strb.w	r1, [sp, #122]	; 0x7a
+ 8011144:	407a      	eors	r2, r7
+ 8011146:	4053      	eors	r3, r2
+ 8011148:	f815 2009 	ldrb.w	r2, [r5, r9]
+ 801114c:	4053      	eors	r3, r2
+ 801114e:	f88d 307b 	strb.w	r3, [sp, #123]	; 0x7b
+ 8011152:	9a08      	ldr	r2, [sp, #32]
+ 8011154:	9b06      	ldr	r3, [sp, #24]
+ 8011156:	4053      	eors	r3, r2
+ 8011158:	9a04      	ldr	r2, [sp, #16]
+ 801115a:	5caa      	ldrb	r2, [r5, r2]
+ 801115c:	4053      	eors	r3, r2
+ 801115e:	f816 200c 	ldrb.w	r2, [r6, ip]
+ 8011162:	4053      	eors	r3, r2
+ 8011164:	f88d 307c 	strb.w	r3, [sp, #124]	; 0x7c
+ 8011168:	e9dd 3208 	ldrd	r3, r2, [sp, #32]
+ 801116c:	405a      	eors	r2, r3
+ 801116e:	f815 300c 	ldrb.w	r3, [r5, ip]
+ 8011172:	4053      	eors	r3, r2
+ 8011174:	9a05      	ldr	r2, [sp, #20]
+ 8011176:	5cb2      	ldrb	r2, [r6, r2]
+ 8011178:	4053      	eors	r3, r2
+ 801117a:	f88d 307d 	strb.w	r3, [sp, #125]	; 0x7d
+ 801117e:	e9dd 3209 	ldrd	r3, r2, [sp, #36]	; 0x24
+ 8011182:	405a      	eors	r2, r3
+ 8011184:	9b05      	ldr	r3, [sp, #20]
+ 8011186:	5ceb      	ldrb	r3, [r5, r3]
+ 8011188:	4053      	eors	r3, r2
+ 801118a:	9a07      	ldr	r2, [sp, #28]
+ 801118c:	5cb2      	ldrb	r2, [r6, r2]
+ 801118e:	4053      	eors	r3, r2
+ 8011190:	f88d 307e 	strb.w	r3, [sp, #126]	; 0x7e
+ 8011194:	9b06      	ldr	r3, [sp, #24]
+ 8011196:	9a0a      	ldr	r2, [sp, #40]	; 0x28
+ 8011198:	4053      	eors	r3, r2
+ 801119a:	9a04      	ldr	r2, [sp, #16]
+ 801119c:	5cb2      	ldrb	r2, [r6, r2]
+ 801119e:	405a      	eors	r2, r3
+ 80111a0:	9b07      	ldr	r3, [sp, #28]
+ 80111a2:	5ceb      	ldrb	r3, [r5, r3]
+ 80111a4:	405a      	eors	r2, r3
+ 80111a6:	f88d 207f 	strb.w	r2, [sp, #127]	; 0x7f
+ 80111aa:	9b0e      	ldr	r3, [sp, #56]	; 0x38
+ 80111ac:	9a10      	ldr	r2, [sp, #64]	; 0x40
+ 80111ae:	4053      	eors	r3, r2
+ 80111b0:	9a0b      	ldr	r2, [sp, #44]	; 0x2c
+ 80111b2:	5caa      	ldrb	r2, [r5, r2]
+ 80111b4:	4053      	eors	r3, r2
+ 80111b6:	9a0c      	ldr	r2, [sp, #48]	; 0x30
+ 80111b8:	5cb2      	ldrb	r2, [r6, r2]
+ 80111ba:	4053      	eors	r3, r2
+ 80111bc:	f88d 3080 	strb.w	r3, [sp, #128]	; 0x80
+ 80111c0:	e9dd 3210 	ldrd	r3, r2, [sp, #64]	; 0x40
+ 80111c4:	405a      	eors	r2, r3
+ 80111c6:	9b0c      	ldr	r3, [sp, #48]	; 0x30
+ 80111c8:	5ceb      	ldrb	r3, [r5, r3]
+ 80111ca:	4053      	eors	r3, r2
+ 80111cc:	9a0d      	ldr	r2, [sp, #52]	; 0x34
+ 80111ce:	5cb2      	ldrb	r2, [r6, r2]
+ 80111d0:	4053      	eors	r3, r2
+ 80111d2:	f88d 3081 	strb.w	r3, [sp, #129]	; 0x81
+ 80111d6:	e9dd 3211 	ldrd	r3, r2, [sp, #68]	; 0x44
+ 80111da:	405a      	eors	r2, r3
+ 80111dc:	9b0d      	ldr	r3, [sp, #52]	; 0x34
+ 80111de:	5ceb      	ldrb	r3, [r5, r3]
+ 80111e0:	4053      	eors	r3, r2
+ 80111e2:	9a0f      	ldr	r2, [sp, #60]	; 0x3c
+ 80111e4:	5cb2      	ldrb	r2, [r6, r2]
+ 80111e6:	4053      	eors	r3, r2
+ 80111e8:	f88d 3082 	strb.w	r3, [sp, #130]	; 0x82
+ 80111ec:	9a12      	ldr	r2, [sp, #72]	; 0x48
+ 80111ee:	9b0e      	ldr	r3, [sp, #56]	; 0x38
+ 80111f0:	4053      	eors	r3, r2
+ 80111f2:	9a0b      	ldr	r2, [sp, #44]	; 0x2c
+ 80111f4:	5cb2      	ldrb	r2, [r6, r2]
+ 80111f6:	405a      	eors	r2, r3
+ 80111f8:	9b0f      	ldr	r3, [sp, #60]	; 0x3c
+ 80111fa:	5ceb      	ldrb	r3, [r5, r3]
+ 80111fc:	991c      	ldr	r1, [sp, #112]	; 0x70
+ 80111fe:	405a      	eors	r2, r3
+ 8011200:	f88d 2083 	strb.w	r2, [sp, #131]	; 0x83
+ 8011204:	9b16      	ldr	r3, [sp, #88]	; 0x58
+ 8011206:	9a18      	ldr	r2, [sp, #96]	; 0x60
+ 8011208:	4053      	eors	r3, r2
+ 801120a:	9a13      	ldr	r2, [sp, #76]	; 0x4c
+ 801120c:	5caa      	ldrb	r2, [r5, r2]
+ 801120e:	4053      	eors	r3, r2
+ 8011210:	9a14      	ldr	r2, [sp, #80]	; 0x50
+ 8011212:	5cb2      	ldrb	r2, [r6, r2]
+ 8011214:	4053      	eors	r3, r2
+ 8011216:	f88d 3084 	strb.w	r3, [sp, #132]	; 0x84
+ 801121a:	e9dd 3218 	ldrd	r3, r2, [sp, #96]	; 0x60
+ 801121e:	405a      	eors	r2, r3
+ 8011220:	9b14      	ldr	r3, [sp, #80]	; 0x50
+ 8011222:	5ceb      	ldrb	r3, [r5, r3]
+ 8011224:	4053      	eors	r3, r2
+ 8011226:	9a15      	ldr	r2, [sp, #84]	; 0x54
+ 8011228:	5cb2      	ldrb	r2, [r6, r2]
+ 801122a:	4053      	eors	r3, r2
+ 801122c:	f88d 3085 	strb.w	r3, [sp, #133]	; 0x85
+ 8011230:	e9dd 3219 	ldrd	r3, r2, [sp, #100]	; 0x64
+ 8011234:	405a      	eors	r2, r3
+ 8011236:	9b15      	ldr	r3, [sp, #84]	; 0x54
+ 8011238:	5ceb      	ldrb	r3, [r5, r3]
+ 801123a:	4053      	eors	r3, r2
+ 801123c:	9a17      	ldr	r2, [sp, #92]	; 0x5c
+ 801123e:	5cb2      	ldrb	r2, [r6, r2]
+ 8011240:	4053      	eors	r3, r2
+ 8011242:	f88d 3086 	strb.w	r3, [sp, #134]	; 0x86
+ 8011246:	9a1a      	ldr	r2, [sp, #104]	; 0x68
+ 8011248:	9b16      	ldr	r3, [sp, #88]	; 0x58
+ 801124a:	4053      	eors	r3, r2
+ 801124c:	9a13      	ldr	r2, [sp, #76]	; 0x4c
+ 801124e:	5cb2      	ldrb	r2, [r6, r2]
+ 8011250:	4053      	eors	r3, r2
+ 8011252:	9a17      	ldr	r2, [sp, #92]	; 0x5c
+ 8011254:	5caa      	ldrb	r2, [r5, r2]
+ 8011256:	a81e      	add	r0, sp, #120	; 0x78
+ 8011258:	4053      	eors	r3, r2
+ 801125a:	f88d 3087 	strb.w	r3, [sp, #135]	; 0x87
+ 801125e:	f7ff fda5 	bl	8010dac <xor_block>
+ 8011262:	e6b8      	b.n	8010fd6 <lorawan_aes_encrypt+0x2e>
+ 8011264:	20ff      	movs	r0, #255	; 0xff
+ 8011266:	e749      	b.n	80110fc <lorawan_aes_encrypt+0x154>
+ 8011268:	080153f4 	.word	0x080153f4
+ 801126c:	080151f4 	.word	0x080151f4
+ 8011270:	080152f4 	.word	0x080152f4
+
+08011274 <SecureElementInit>:
+ 8011274:	b508      	push	{r3, lr}
+ 8011276:	b138      	cbz	r0, 8011288 <SecureElementInit+0x14>
+ 8011278:	4a04      	ldr	r2, [pc, #16]	; (801128c <SecureElementInit+0x18>)
+ 801127a:	4905      	ldr	r1, [pc, #20]	; (8011290 <SecureElementInit+0x1c>)
+ 801127c:	6010      	str	r0, [r2, #0]
+ 801127e:	22d8      	movs	r2, #216	; 0xd8
+ 8011280:	f000 fab0 	bl	80117e4 <memcpy1>
+ 8011284:	2000      	movs	r0, #0
+ 8011286:	bd08      	pop	{r3, pc}
+ 8011288:	2002      	movs	r0, #2
+ 801128a:	e7fc      	b.n	8011286 <SecureElementInit+0x12>
+ 801128c:	20002624 	.word	0x20002624
+ 8011290:	08015924 	.word	0x08015924
+
+08011294 <SecureElementGetKeyByID>:
+ 8011294:	4b0a      	ldr	r3, [pc, #40]	; (80112c0 <SecureElementGetKeyByID+0x2c>)
+ 8011296:	681a      	ldr	r2, [r3, #0]
+ 8011298:	b570      	push	{r4, r5, r6, lr}
+ 801129a:	2300      	movs	r3, #0
+ 801129c:	f102 0518 	add.w	r5, r2, #24
+ 80112a0:	eb03 1403 	add.w	r4, r3, r3, lsl #4
+ 80112a4:	5d2e      	ldrb	r6, [r5, r4]
+ 80112a6:	4286      	cmp	r6, r0
+ 80112a8:	d104      	bne.n	80112b4 <SecureElementGetKeyByID+0x20>
+ 80112aa:	3418      	adds	r4, #24
+ 80112ac:	4422      	add	r2, r4
+ 80112ae:	600a      	str	r2, [r1, #0]
+ 80112b0:	2000      	movs	r0, #0
+ 80112b2:	bd70      	pop	{r4, r5, r6, pc}
+ 80112b4:	3301      	adds	r3, #1
+ 80112b6:	2b0b      	cmp	r3, #11
+ 80112b8:	d1f2      	bne.n	80112a0 <SecureElementGetKeyByID+0xc>
+ 80112ba:	2003      	movs	r0, #3
+ 80112bc:	e7f9      	b.n	80112b2 <SecureElementGetKeyByID+0x1e>
+ 80112be:	bf00      	nop
+ 80112c0:	20002624 	.word	0x20002624
+
+080112c4 <ComputeCmac>:
+ 80112c4:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 80112c8:	b0cc      	sub	sp, #304	; 0x130
+ 80112ca:	4606      	mov	r6, r0
+ 80112cc:	f8dd 8148 	ldr.w	r8, [sp, #328]	; 0x148
+ 80112d0:	4617      	mov	r7, r2
+ 80112d2:	461c      	mov	r4, r3
+ 80112d4:	460d      	mov	r5, r1
+ 80112d6:	b331      	cbz	r1, 8011326 <ComputeCmac+0x62>
+ 80112d8:	f1b8 0f00 	cmp.w	r8, #0
+ 80112dc:	d023      	beq.n	8011326 <ComputeCmac+0x62>
+ 80112de:	a806      	add	r0, sp, #24
+ 80112e0:	f7ff fc2e 	bl	8010b40 <AES_CMAC_Init>
+ 80112e4:	4620      	mov	r0, r4
+ 80112e6:	a901      	add	r1, sp, #4
+ 80112e8:	f7ff ffd4 	bl	8011294 <SecureElementGetKeyByID>
+ 80112ec:	4604      	mov	r4, r0
+ 80112ee:	b9b0      	cbnz	r0, 801131e <ComputeCmac+0x5a>
+ 80112f0:	9901      	ldr	r1, [sp, #4]
+ 80112f2:	a806      	add	r0, sp, #24
+ 80112f4:	3101      	adds	r1, #1
+ 80112f6:	f7ff fc33 	bl	8010b60 <AES_CMAC_SetKey>
+ 80112fa:	b126      	cbz	r6, 8011306 <ComputeCmac+0x42>
+ 80112fc:	2210      	movs	r2, #16
+ 80112fe:	4631      	mov	r1, r6
+ 8011300:	a806      	add	r0, sp, #24
+ 8011302:	f7ff fc32 	bl	8010b6a <AES_CMAC_Update>
+ 8011306:	463a      	mov	r2, r7
+ 8011308:	4629      	mov	r1, r5
+ 801130a:	a806      	add	r0, sp, #24
+ 801130c:	f7ff fc2d 	bl	8010b6a <AES_CMAC_Update>
+ 8011310:	a906      	add	r1, sp, #24
+ 8011312:	a802      	add	r0, sp, #8
+ 8011314:	f7ff fc94 	bl	8010c40 <AES_CMAC_Final>
+ 8011318:	9b02      	ldr	r3, [sp, #8]
+ 801131a:	f8c8 3000 	str.w	r3, [r8]
+ 801131e:	4620      	mov	r0, r4
+ 8011320:	b04c      	add	sp, #304	; 0x130
+ 8011322:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 8011326:	2402      	movs	r4, #2
+ 8011328:	e7f9      	b.n	801131e <ComputeCmac+0x5a>
+	...
+
+0801132c <PrintKey>:
+ 801132c:	b530      	push	{r4, r5, lr}
+ 801132e:	b095      	sub	sp, #84	; 0x54
+ 8011330:	a913      	add	r1, sp, #76	; 0x4c
+ 8011332:	4604      	mov	r4, r0
+ 8011334:	f7ff ffae 	bl	8011294 <SecureElementGetKeyByID>
+ 8011338:	2800      	cmp	r0, #0
+ 801133a:	d130      	bne.n	801139e <PrintKey+0x72>
+ 801133c:	491b      	ldr	r1, [pc, #108]	; (80113ac <PrintKey+0x80>)
+ 801133e:	230c      	movs	r3, #12
+ 8011340:	fb03 f200 	mul.w	r2, r3, r0
+ 8011344:	5c55      	ldrb	r5, [r2, r1]
+ 8011346:	42a5      	cmp	r5, r4
+ 8011348:	d12b      	bne.n	80113a2 <PrintKey+0x76>
+ 801134a:	9b13      	ldr	r3, [sp, #76]	; 0x4c
+ 801134c:	7c18      	ldrb	r0, [r3, #16]
+ 801134e:	9010      	str	r0, [sp, #64]	; 0x40
+ 8011350:	7bd8      	ldrb	r0, [r3, #15]
+ 8011352:	900f      	str	r0, [sp, #60]	; 0x3c
+ 8011354:	7b98      	ldrb	r0, [r3, #14]
+ 8011356:	900e      	str	r0, [sp, #56]	; 0x38
+ 8011358:	7b58      	ldrb	r0, [r3, #13]
+ 801135a:	900d      	str	r0, [sp, #52]	; 0x34
+ 801135c:	7b18      	ldrb	r0, [r3, #12]
+ 801135e:	900c      	str	r0, [sp, #48]	; 0x30
+ 8011360:	7ad8      	ldrb	r0, [r3, #11]
+ 8011362:	900b      	str	r0, [sp, #44]	; 0x2c
+ 8011364:	7a98      	ldrb	r0, [r3, #10]
+ 8011366:	900a      	str	r0, [sp, #40]	; 0x28
+ 8011368:	7a58      	ldrb	r0, [r3, #9]
+ 801136a:	9009      	str	r0, [sp, #36]	; 0x24
+ 801136c:	7a18      	ldrb	r0, [r3, #8]
+ 801136e:	9008      	str	r0, [sp, #32]
+ 8011370:	79d8      	ldrb	r0, [r3, #7]
+ 8011372:	9007      	str	r0, [sp, #28]
+ 8011374:	7998      	ldrb	r0, [r3, #6]
+ 8011376:	9006      	str	r0, [sp, #24]
+ 8011378:	7958      	ldrb	r0, [r3, #5]
+ 801137a:	9005      	str	r0, [sp, #20]
+ 801137c:	7918      	ldrb	r0, [r3, #4]
+ 801137e:	9004      	str	r0, [sp, #16]
+ 8011380:	78d8      	ldrb	r0, [r3, #3]
+ 8011382:	9003      	str	r0, [sp, #12]
+ 8011384:	7898      	ldrb	r0, [r3, #2]
+ 8011386:	9002      	str	r0, [sp, #8]
+ 8011388:	440a      	add	r2, r1
+ 801138a:	785b      	ldrb	r3, [r3, #1]
+ 801138c:	9301      	str	r3, [sp, #4]
+ 801138e:	6893      	ldr	r3, [r2, #8]
+ 8011390:	9300      	str	r3, [sp, #0]
+ 8011392:	2200      	movs	r2, #0
+ 8011394:	4b06      	ldr	r3, [pc, #24]	; (80113b0 <PrintKey+0x84>)
+ 8011396:	4611      	mov	r1, r2
+ 8011398:	2002      	movs	r0, #2
+ 801139a:	f002 fa19 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 801139e:	b015      	add	sp, #84	; 0x54
+ 80113a0:	bd30      	pop	{r4, r5, pc}
+ 80113a2:	3001      	adds	r0, #1
+ 80113a4:	280b      	cmp	r0, #11
+ 80113a6:	d1cb      	bne.n	8011340 <PrintKey+0x14>
+ 80113a8:	e7f9      	b.n	801139e <PrintKey+0x72>
+ 80113aa:	bf00      	nop
+ 80113ac:	0801566c 	.word	0x0801566c
+ 80113b0:	080154f4 	.word	0x080154f4
+
+080113b4 <SecureElementComputeAesCmac>:
+ 80113b4:	2b0b      	cmp	r3, #11
+ 80113b6:	b410      	push	{r4}
+ 80113b8:	d802      	bhi.n	80113c0 <SecureElementComputeAesCmac+0xc>
+ 80113ba:	bc10      	pop	{r4}
+ 80113bc:	f7ff bf82 	b.w	80112c4 <ComputeCmac>
+ 80113c0:	2003      	movs	r0, #3
+ 80113c2:	bc10      	pop	{r4}
+ 80113c4:	4770      	bx	lr
+
+080113c6 <SecureElementVerifyAesCmac>:
+ 80113c6:	b530      	push	{r4, r5, lr}
+ 80113c8:	460d      	mov	r5, r1
+ 80113ca:	b085      	sub	sp, #20
+ 80113cc:	4614      	mov	r4, r2
+ 80113ce:	4601      	mov	r1, r0
+ 80113d0:	b168      	cbz	r0, 80113ee <SecureElementVerifyAesCmac+0x28>
+ 80113d2:	aa03      	add	r2, sp, #12
+ 80113d4:	2000      	movs	r0, #0
+ 80113d6:	9200      	str	r2, [sp, #0]
+ 80113d8:	462a      	mov	r2, r5
+ 80113da:	9003      	str	r0, [sp, #12]
+ 80113dc:	f7ff ff72 	bl	80112c4 <ComputeCmac>
+ 80113e0:	b918      	cbnz	r0, 80113ea <SecureElementVerifyAesCmac+0x24>
+ 80113e2:	9803      	ldr	r0, [sp, #12]
+ 80113e4:	1b00      	subs	r0, r0, r4
+ 80113e6:	bf18      	it	ne
+ 80113e8:	2001      	movne	r0, #1
+ 80113ea:	b005      	add	sp, #20
+ 80113ec:	bd30      	pop	{r4, r5, pc}
+ 80113ee:	2002      	movs	r0, #2
+ 80113f0:	e7fb      	b.n	80113ea <SecureElementVerifyAesCmac+0x24>
+
+080113f2 <SecureElementAesEncrypt>:
+ 80113f2:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
+ 80113f6:	460d      	mov	r5, r1
+ 80113f8:	b0bf      	sub	sp, #252	; 0xfc
+ 80113fa:	4614      	mov	r4, r2
+ 80113fc:	4699      	mov	r9, r3
+ 80113fe:	4680      	mov	r8, r0
+ 8011400:	b320      	cbz	r0, 801144c <SecureElementAesEncrypt+0x5a>
+ 8011402:	b31b      	cbz	r3, 801144c <SecureElementAesEncrypt+0x5a>
+ 8011404:	f011 010f 	ands.w	r1, r1, #15
+ 8011408:	d122      	bne.n	8011450 <SecureElementAesEncrypt+0x5e>
+ 801140a:	22f0      	movs	r2, #240	; 0xf0
+ 801140c:	a801      	add	r0, sp, #4
+ 801140e:	f000 f9fd 	bl	801180c <memset1>
+ 8011412:	4620      	mov	r0, r4
+ 8011414:	4669      	mov	r1, sp
+ 8011416:	f7ff ff3d 	bl	8011294 <SecureElementGetKeyByID>
+ 801141a:	4604      	mov	r4, r0
+ 801141c:	b948      	cbnz	r0, 8011432 <SecureElementAesEncrypt+0x40>
+ 801141e:	9800      	ldr	r0, [sp, #0]
+ 8011420:	aa01      	add	r2, sp, #4
+ 8011422:	2110      	movs	r1, #16
+ 8011424:	3001      	adds	r0, #1
+ 8011426:	f7ff fd45 	bl	8010eb4 <lorawan_aes_set_key>
+ 801142a:	462e      	mov	r6, r5
+ 801142c:	1baf      	subs	r7, r5, r6
+ 801142e:	b2ff      	uxtb	r7, r7
+ 8011430:	b91e      	cbnz	r6, 801143a <SecureElementAesEncrypt+0x48>
+ 8011432:	4620      	mov	r0, r4
+ 8011434:	b03f      	add	sp, #252	; 0xfc
+ 8011436:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
+ 801143a:	aa01      	add	r2, sp, #4
+ 801143c:	eb09 0107 	add.w	r1, r9, r7
+ 8011440:	eb08 0007 	add.w	r0, r8, r7
+ 8011444:	f7ff fdb0 	bl	8010fa8 <lorawan_aes_encrypt>
+ 8011448:	3e10      	subs	r6, #16
+ 801144a:	e7ef      	b.n	801142c <SecureElementAesEncrypt+0x3a>
+ 801144c:	2402      	movs	r4, #2
+ 801144e:	e7f0      	b.n	8011432 <SecureElementAesEncrypt+0x40>
+ 8011450:	2405      	movs	r4, #5
+ 8011452:	e7ee      	b.n	8011432 <SecureElementAesEncrypt+0x40>
+
+08011454 <SecureElementSetKey.part.0>:
+ 8011454:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8011456:	4e18      	ldr	r6, [pc, #96]	; (80114b8 <SecureElementSetKey.part.0+0x64>)
+ 8011458:	6834      	ldr	r4, [r6, #0]
+ 801145a:	4602      	mov	r2, r0
+ 801145c:	b085      	sub	sp, #20
+ 801145e:	4608      	mov	r0, r1
+ 8011460:	2300      	movs	r3, #0
+ 8011462:	f104 0118 	add.w	r1, r4, #24
+ 8011466:	eb03 1503 	add.w	r5, r3, r3, lsl #4
+ 801146a:	5d4f      	ldrb	r7, [r1, r5]
+ 801146c:	4297      	cmp	r7, r2
+ 801146e:	d11e      	bne.n	80114ae <SecureElementSetKey.part.0+0x5a>
+ 8011470:	2a0d      	cmp	r2, #13
+ 8011472:	f105 0519 	add.w	r5, r5, #25
+ 8011476:	d113      	bne.n	80114a0 <SecureElementSetKey.part.0+0x4c>
+ 8011478:	2300      	movs	r3, #0
+ 801147a:	e9cd 3300 	strd	r3, r3, [sp]
+ 801147e:	e9cd 3302 	strd	r3, r3, [sp, #8]
+ 8011482:	220c      	movs	r2, #12
+ 8011484:	2110      	movs	r1, #16
+ 8011486:	466b      	mov	r3, sp
+ 8011488:	f7ff ffb3 	bl	80113f2 <SecureElementAesEncrypt>
+ 801148c:	4604      	mov	r4, r0
+ 801148e:	6830      	ldr	r0, [r6, #0]
+ 8011490:	2210      	movs	r2, #16
+ 8011492:	4669      	mov	r1, sp
+ 8011494:	4428      	add	r0, r5
+ 8011496:	f000 f9a5 	bl	80117e4 <memcpy1>
+ 801149a:	4620      	mov	r0, r4
+ 801149c:	b005      	add	sp, #20
+ 801149e:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 80114a0:	4601      	mov	r1, r0
+ 80114a2:	2210      	movs	r2, #16
+ 80114a4:	1960      	adds	r0, r4, r5
+ 80114a6:	f000 f99d 	bl	80117e4 <memcpy1>
+ 80114aa:	2400      	movs	r4, #0
+ 80114ac:	e7f5      	b.n	801149a <SecureElementSetKey.part.0+0x46>
+ 80114ae:	3301      	adds	r3, #1
+ 80114b0:	2b0b      	cmp	r3, #11
+ 80114b2:	d1d8      	bne.n	8011466 <SecureElementSetKey.part.0+0x12>
+ 80114b4:	2403      	movs	r4, #3
+ 80114b6:	e7f0      	b.n	801149a <SecureElementSetKey.part.0+0x46>
+ 80114b8:	20002624 	.word	0x20002624
+
+080114bc <SecureElementSetKey>:
+ 80114bc:	b109      	cbz	r1, 80114c2 <SecureElementSetKey+0x6>
+ 80114be:	f7ff bfc9 	b.w	8011454 <SecureElementSetKey.part.0>
+ 80114c2:	2002      	movs	r0, #2
+ 80114c4:	4770      	bx	lr
+
+080114c6 <SecureElementDeriveAndStoreKey>:
+ 80114c6:	b51f      	push	{r0, r1, r2, r3, r4, lr}
+ 80114c8:	4614      	mov	r4, r2
+ 80114ca:	b1a0      	cbz	r0, 80114f6 <SecureElementDeriveAndStoreKey+0x30>
+ 80114cc:	2a0c      	cmp	r2, #12
+ 80114ce:	d101      	bne.n	80114d4 <SecureElementDeriveAndStoreKey+0xe>
+ 80114d0:	290b      	cmp	r1, #11
+ 80114d2:	d112      	bne.n	80114fa <SecureElementDeriveAndStoreKey+0x34>
+ 80114d4:	2300      	movs	r3, #0
+ 80114d6:	e9cd 3300 	strd	r3, r3, [sp]
+ 80114da:	e9cd 3302 	strd	r3, r3, [sp, #8]
+ 80114de:	460a      	mov	r2, r1
+ 80114e0:	466b      	mov	r3, sp
+ 80114e2:	2110      	movs	r1, #16
+ 80114e4:	f7ff ff85 	bl	80113f2 <SecureElementAesEncrypt>
+ 80114e8:	b918      	cbnz	r0, 80114f2 <SecureElementDeriveAndStoreKey+0x2c>
+ 80114ea:	4669      	mov	r1, sp
+ 80114ec:	4620      	mov	r0, r4
+ 80114ee:	f7ff ffb1 	bl	8011454 <SecureElementSetKey.part.0>
+ 80114f2:	b004      	add	sp, #16
+ 80114f4:	bd10      	pop	{r4, pc}
+ 80114f6:	2002      	movs	r0, #2
+ 80114f8:	e7fb      	b.n	80114f2 <SecureElementDeriveAndStoreKey+0x2c>
+ 80114fa:	2003      	movs	r0, #3
+ 80114fc:	e7f9      	b.n	80114f2 <SecureElementDeriveAndStoreKey+0x2c>
+
+080114fe <SecureElementProcessJoinAccept>:
+ 80114fe:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 8011500:	461e      	mov	r6, r3
+ 8011502:	e9dd 4707 	ldrd	r4, r7, [sp, #28]
+ 8011506:	f89d 5018 	ldrb.w	r5, [sp, #24]
+ 801150a:	b35b      	cbz	r3, 8011564 <SecureElementProcessJoinAccept+0x66>
+ 801150c:	b354      	cbz	r4, 8011564 <SecureElementProcessJoinAccept+0x66>
+ 801150e:	b34f      	cbz	r7, 8011564 <SecureElementProcessJoinAccept+0x66>
+ 8011510:	2d21      	cmp	r5, #33	; 0x21
+ 8011512:	d829      	bhi.n	8011568 <SecureElementProcessJoinAccept+0x6a>
+ 8011514:	4619      	mov	r1, r3
+ 8011516:	462a      	mov	r2, r5
+ 8011518:	4620      	mov	r0, r4
+ 801151a:	f000 f963 	bl	80117e4 <memcpy1>
+ 801151e:	2201      	movs	r2, #1
+ 8011520:	1c63      	adds	r3, r4, #1
+ 8011522:	1e69      	subs	r1, r5, #1
+ 8011524:	18b0      	adds	r0, r6, r2
+ 8011526:	f7ff ff64 	bl	80113f2 <SecureElementAesEncrypt>
+ 801152a:	b9f8      	cbnz	r0, 801156c <SecureElementProcessJoinAccept+0x6e>
+ 801152c:	7ae3      	ldrb	r3, [r4, #11]
+ 801152e:	09db      	lsrs	r3, r3, #7
+ 8011530:	703b      	strb	r3, [r7, #0]
+ 8011532:	b9eb      	cbnz	r3, 8011570 <SecureElementProcessJoinAccept+0x72>
+ 8011534:	1963      	adds	r3, r4, r5
+ 8011536:	4620      	mov	r0, r4
+ 8011538:	f813 2c01 	ldrb.w	r2, [r3, #-1]
+ 801153c:	f813 1c02 	ldrb.w	r1, [r3, #-2]
+ 8011540:	0612      	lsls	r2, r2, #24
+ 8011542:	ea42 4201 	orr.w	r2, r2, r1, lsl #16
+ 8011546:	f813 1c04 	ldrb.w	r1, [r3, #-4]
+ 801154a:	430a      	orrs	r2, r1
+ 801154c:	f813 1c03 	ldrb.w	r1, [r3, #-3]
+ 8011550:	2301      	movs	r3, #1
+ 8011552:	ea42 2201 	orr.w	r2, r2, r1, lsl #8
+ 8011556:	1f29      	subs	r1, r5, #4
+ 8011558:	f7ff ff35 	bl	80113c6 <SecureElementVerifyAesCmac>
+ 801155c:	3800      	subs	r0, #0
+ 801155e:	bf18      	it	ne
+ 8011560:	2001      	movne	r0, #1
+ 8011562:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 8011564:	2002      	movs	r0, #2
+ 8011566:	e7fc      	b.n	8011562 <SecureElementProcessJoinAccept+0x64>
+ 8011568:	2005      	movs	r0, #5
+ 801156a:	e7fa      	b.n	8011562 <SecureElementProcessJoinAccept+0x64>
+ 801156c:	2007      	movs	r0, #7
+ 801156e:	e7f8      	b.n	8011562 <SecureElementProcessJoinAccept+0x64>
+ 8011570:	2004      	movs	r0, #4
+ 8011572:	e7f6      	b.n	8011562 <SecureElementProcessJoinAccept+0x64>
+
+08011574 <SecureElementRandomNumber>:
+ 8011574:	b510      	push	{r4, lr}
+ 8011576:	4604      	mov	r4, r0
+ 8011578:	b128      	cbz	r0, 8011586 <SecureElementRandomNumber+0x12>
+ 801157a:	4b04      	ldr	r3, [pc, #16]	; (801158c <SecureElementRandomNumber+0x18>)
+ 801157c:	695b      	ldr	r3, [r3, #20]
+ 801157e:	4798      	blx	r3
+ 8011580:	6020      	str	r0, [r4, #0]
+ 8011582:	2000      	movs	r0, #0
+ 8011584:	bd10      	pop	{r4, pc}
+ 8011586:	2002      	movs	r0, #2
+ 8011588:	e7fc      	b.n	8011584 <SecureElementRandomNumber+0x10>
+ 801158a:	bf00      	nop
+ 801158c:	08015784 	.word	0x08015784
+
+08011590 <SecureElementSetDevEui>:
+ 8011590:	b508      	push	{r3, lr}
+ 8011592:	4601      	mov	r1, r0
+ 8011594:	b130      	cbz	r0, 80115a4 <SecureElementSetDevEui+0x14>
+ 8011596:	4b04      	ldr	r3, [pc, #16]	; (80115a8 <SecureElementSetDevEui+0x18>)
+ 8011598:	2208      	movs	r2, #8
+ 801159a:	6818      	ldr	r0, [r3, #0]
+ 801159c:	f000 f922 	bl	80117e4 <memcpy1>
+ 80115a0:	2000      	movs	r0, #0
+ 80115a2:	bd08      	pop	{r3, pc}
+ 80115a4:	2002      	movs	r0, #2
+ 80115a6:	e7fc      	b.n	80115a2 <SecureElementSetDevEui+0x12>
+ 80115a8:	20002624 	.word	0x20002624
+
+080115ac <SecureElementGetDevEui>:
+ 80115ac:	b508      	push	{r3, lr}
+ 80115ae:	b130      	cbz	r0, 80115be <SecureElementGetDevEui+0x12>
+ 80115b0:	4b04      	ldr	r3, [pc, #16]	; (80115c4 <SecureElementGetDevEui+0x18>)
+ 80115b2:	2208      	movs	r2, #8
+ 80115b4:	6819      	ldr	r1, [r3, #0]
+ 80115b6:	f000 f915 	bl	80117e4 <memcpy1>
+ 80115ba:	2000      	movs	r0, #0
+ 80115bc:	bd08      	pop	{r3, pc}
+ 80115be:	2002      	movs	r0, #2
+ 80115c0:	e7fc      	b.n	80115bc <SecureElementGetDevEui+0x10>
+ 80115c2:	bf00      	nop
+ 80115c4:	20002624 	.word	0x20002624
+
+080115c8 <SecureElementInitMcuID>:
+ 80115c8:	b57f      	push	{r0, r1, r2, r3, r4, r5, r6, lr}
+ 80115ca:	4e12      	ldr	r6, [pc, #72]	; (8011614 <SecureElementInitMcuID+0x4c>)
+ 80115cc:	2300      	movs	r3, #0
+ 80115ce:	4604      	mov	r4, r0
+ 80115d0:	a802      	add	r0, sp, #8
+ 80115d2:	9301      	str	r3, [sp, #4]
+ 80115d4:	460d      	mov	r5, r1
+ 80115d6:	f7ff ffe9 	bl	80115ac <SecureElementGetDevEui>
+ 80115da:	6833      	ldr	r3, [r6, #0]
+ 80115dc:	695b      	ldr	r3, [r3, #20]
+ 80115de:	9301      	str	r3, [sp, #4]
+ 80115e0:	b16c      	cbz	r4, 80115fe <SecureElementInitMcuID+0x36>
+ 80115e2:	aa02      	add	r2, sp, #8
+ 80115e4:	2308      	movs	r3, #8
+ 80115e6:	f812 1b01 	ldrb.w	r1, [r2], #1
+ 80115ea:	b941      	cbnz	r1, 80115fe <SecureElementInitMcuID+0x36>
+ 80115ec:	3b01      	subs	r3, #1
+ 80115ee:	f013 03ff 	ands.w	r3, r3, #255	; 0xff
+ 80115f2:	d1f8      	bne.n	80115e6 <SecureElementInitMcuID+0x1e>
+ 80115f4:	a802      	add	r0, sp, #8
+ 80115f6:	47a0      	blx	r4
+ 80115f8:	a802      	add	r0, sp, #8
+ 80115fa:	f7ff ffc9 	bl	8011590 <SecureElementSetDevEui>
+ 80115fe:	b135      	cbz	r5, 801160e <SecureElementInitMcuID+0x46>
+ 8011600:	9b01      	ldr	r3, [sp, #4]
+ 8011602:	b923      	cbnz	r3, 801160e <SecureElementInitMcuID+0x46>
+ 8011604:	a801      	add	r0, sp, #4
+ 8011606:	47a8      	blx	r5
+ 8011608:	6833      	ldr	r3, [r6, #0]
+ 801160a:	9a01      	ldr	r2, [sp, #4]
+ 801160c:	615a      	str	r2, [r3, #20]
+ 801160e:	2000      	movs	r0, #0
+ 8011610:	b004      	add	sp, #16
+ 8011612:	bd70      	pop	{r4, r5, r6, pc}
+ 8011614:	20002624 	.word	0x20002624
+
+08011618 <SecureElementSetJoinEui>:
+ 8011618:	b508      	push	{r3, lr}
+ 801161a:	4601      	mov	r1, r0
+ 801161c:	b138      	cbz	r0, 801162e <SecureElementSetJoinEui+0x16>
+ 801161e:	4b05      	ldr	r3, [pc, #20]	; (8011634 <SecureElementSetJoinEui+0x1c>)
+ 8011620:	6818      	ldr	r0, [r3, #0]
+ 8011622:	2208      	movs	r2, #8
+ 8011624:	4410      	add	r0, r2
+ 8011626:	f000 f8dd 	bl	80117e4 <memcpy1>
+ 801162a:	2000      	movs	r0, #0
+ 801162c:	bd08      	pop	{r3, pc}
+ 801162e:	2002      	movs	r0, #2
+ 8011630:	e7fc      	b.n	801162c <SecureElementSetJoinEui+0x14>
+ 8011632:	bf00      	nop
+ 8011634:	20002624 	.word	0x20002624
+
+08011638 <SecureElementGetJoinEui>:
+ 8011638:	b508      	push	{r3, lr}
+ 801163a:	b138      	cbz	r0, 801164c <SecureElementGetJoinEui+0x14>
+ 801163c:	4b04      	ldr	r3, [pc, #16]	; (8011650 <SecureElementGetJoinEui+0x18>)
+ 801163e:	6819      	ldr	r1, [r3, #0]
+ 8011640:	2208      	movs	r2, #8
+ 8011642:	4411      	add	r1, r2
+ 8011644:	f000 f8ce 	bl	80117e4 <memcpy1>
+ 8011648:	2000      	movs	r0, #0
+ 801164a:	bd08      	pop	{r3, pc}
+ 801164c:	2002      	movs	r0, #2
+ 801164e:	e7fc      	b.n	801164a <SecureElementGetJoinEui+0x12>
+ 8011650:	20002624 	.word	0x20002624
+
+08011654 <SecureElementSetDevAddr>:
+ 8011654:	4b03      	ldr	r3, [pc, #12]	; (8011664 <SecureElementSetDevAddr+0x10>)
+ 8011656:	681b      	ldr	r3, [r3, #0]
+ 8011658:	2802      	cmp	r0, #2
+ 801165a:	bf0c      	ite	eq
+ 801165c:	6119      	streq	r1, [r3, #16]
+ 801165e:	6159      	strne	r1, [r3, #20]
+ 8011660:	2000      	movs	r0, #0
+ 8011662:	4770      	bx	lr
+ 8011664:	20002624 	.word	0x20002624
+
+08011668 <SecureElementGetDevAddr>:
+ 8011668:	b141      	cbz	r1, 801167c <SecureElementGetDevAddr+0x14>
+ 801166a:	4b05      	ldr	r3, [pc, #20]	; (8011680 <SecureElementGetDevAddr+0x18>)
+ 801166c:	681b      	ldr	r3, [r3, #0]
+ 801166e:	2802      	cmp	r0, #2
+ 8011670:	bf0c      	ite	eq
+ 8011672:	691b      	ldreq	r3, [r3, #16]
+ 8011674:	695b      	ldrne	r3, [r3, #20]
+ 8011676:	600b      	str	r3, [r1, #0]
+ 8011678:	2000      	movs	r0, #0
+ 801167a:	4770      	bx	lr
+ 801167c:	2002      	movs	r0, #2
+ 801167e:	4770      	bx	lr
+ 8011680:	20002624 	.word	0x20002624
+
+08011684 <PrintIds>:
+ 8011684:	b530      	push	{r4, r5, lr}
+ 8011686:	b08f      	sub	sp, #60	; 0x3c
+ 8011688:	2400      	movs	r4, #0
+ 801168a:	4605      	mov	r5, r0
+ 801168c:	a80c      	add	r0, sp, #48	; 0x30
+ 801168e:	9409      	str	r4, [sp, #36]	; 0x24
+ 8011690:	f7ff ff8c 	bl	80115ac <SecureElementGetDevEui>
+ 8011694:	f89d 3037 	ldrb.w	r3, [sp, #55]	; 0x37
+ 8011698:	9307      	str	r3, [sp, #28]
+ 801169a:	f89d 3036 	ldrb.w	r3, [sp, #54]	; 0x36
+ 801169e:	9306      	str	r3, [sp, #24]
+ 80116a0:	f89d 3035 	ldrb.w	r3, [sp, #53]	; 0x35
+ 80116a4:	9305      	str	r3, [sp, #20]
+ 80116a6:	f89d 3034 	ldrb.w	r3, [sp, #52]	; 0x34
+ 80116aa:	9304      	str	r3, [sp, #16]
+ 80116ac:	f89d 3033 	ldrb.w	r3, [sp, #51]	; 0x33
+ 80116b0:	9303      	str	r3, [sp, #12]
+ 80116b2:	f89d 3032 	ldrb.w	r3, [sp, #50]	; 0x32
+ 80116b6:	9302      	str	r3, [sp, #8]
+ 80116b8:	f89d 3031 	ldrb.w	r3, [sp, #49]	; 0x31
+ 80116bc:	9301      	str	r3, [sp, #4]
+ 80116be:	f89d 3030 	ldrb.w	r3, [sp, #48]	; 0x30
+ 80116c2:	9300      	str	r3, [sp, #0]
+ 80116c4:	4622      	mov	r2, r4
+ 80116c6:	4621      	mov	r1, r4
+ 80116c8:	4b1e      	ldr	r3, [pc, #120]	; (8011744 <PrintIds+0xc0>)
+ 80116ca:	2002      	movs	r0, #2
+ 80116cc:	f002 f880 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 80116d0:	a80a      	add	r0, sp, #40	; 0x28
+ 80116d2:	f7ff ffb1 	bl	8011638 <SecureElementGetJoinEui>
+ 80116d6:	f89d 302f 	ldrb.w	r3, [sp, #47]	; 0x2f
+ 80116da:	9307      	str	r3, [sp, #28]
+ 80116dc:	f89d 302e 	ldrb.w	r3, [sp, #46]	; 0x2e
+ 80116e0:	9306      	str	r3, [sp, #24]
+ 80116e2:	f89d 302d 	ldrb.w	r3, [sp, #45]	; 0x2d
+ 80116e6:	9305      	str	r3, [sp, #20]
+ 80116e8:	f89d 302c 	ldrb.w	r3, [sp, #44]	; 0x2c
+ 80116ec:	9304      	str	r3, [sp, #16]
+ 80116ee:	f89d 302b 	ldrb.w	r3, [sp, #43]	; 0x2b
+ 80116f2:	9303      	str	r3, [sp, #12]
+ 80116f4:	f89d 302a 	ldrb.w	r3, [sp, #42]	; 0x2a
+ 80116f8:	9302      	str	r3, [sp, #8]
+ 80116fa:	f89d 3029 	ldrb.w	r3, [sp, #41]	; 0x29
+ 80116fe:	9301      	str	r3, [sp, #4]
+ 8011700:	f89d 3028 	ldrb.w	r3, [sp, #40]	; 0x28
+ 8011704:	9300      	str	r3, [sp, #0]
+ 8011706:	4622      	mov	r2, r4
+ 8011708:	4b0f      	ldr	r3, [pc, #60]	; (8011748 <PrintIds+0xc4>)
+ 801170a:	4621      	mov	r1, r4
+ 801170c:	2002      	movs	r0, #2
+ 801170e:	f002 f85f 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8011712:	a909      	add	r1, sp, #36	; 0x24
+ 8011714:	4628      	mov	r0, r5
+ 8011716:	f7ff ffa7 	bl	8011668 <SecureElementGetDevAddr>
+ 801171a:	f89d 3024 	ldrb.w	r3, [sp, #36]	; 0x24
+ 801171e:	9303      	str	r3, [sp, #12]
+ 8011720:	f89d 3025 	ldrb.w	r3, [sp, #37]	; 0x25
+ 8011724:	9302      	str	r3, [sp, #8]
+ 8011726:	f89d 3026 	ldrb.w	r3, [sp, #38]	; 0x26
+ 801172a:	9301      	str	r3, [sp, #4]
+ 801172c:	f89d 3027 	ldrb.w	r3, [sp, #39]	; 0x27
+ 8011730:	9300      	str	r3, [sp, #0]
+ 8011732:	4622      	mov	r2, r4
+ 8011734:	4b05      	ldr	r3, [pc, #20]	; (801174c <PrintIds+0xc8>)
+ 8011736:	4621      	mov	r1, r4
+ 8011738:	2002      	movs	r0, #2
+ 801173a:	f002 f849 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 801173e:	b00f      	add	sp, #60	; 0x3c
+ 8011740:	bd30      	pop	{r4, r5, pc}
+ 8011742:	bf00      	nop
+ 8011744:	08015550 	.word	0x08015550
+ 8011748:	0801558e 	.word	0x0801558e
+ 801174c:	080155cc 	.word	0x080155cc
+
+08011750 <SecureElementPrintKeys>:
+ 8011750:	b508      	push	{r3, lr}
+ 8011752:	2000      	movs	r0, #0
+ 8011754:	f7ff fdea 	bl	801132c <PrintKey>
+ 8011758:	2001      	movs	r0, #1
+ 801175a:	f7ff fde7 	bl	801132c <PrintKey>
+ 801175e:	2009      	movs	r0, #9
+ 8011760:	f7ff fde4 	bl	801132c <PrintKey>
+ 8011764:	2008      	movs	r0, #8
+ 8011766:	f7ff fde1 	bl	801132c <PrintKey>
+ 801176a:	2000      	movs	r0, #0
+ 801176c:	f7ff ff8a 	bl	8011684 <PrintIds>
+ 8011770:	2000      	movs	r0, #0
+ 8011772:	bd08      	pop	{r3, pc}
+
+08011774 <SecureElementPrintSessionKeys>:
+ 8011774:	b510      	push	{r4, lr}
+ 8011776:	4604      	mov	r4, r0
+ 8011778:	200b      	movs	r0, #11
+ 801177a:	f7ff fdd7 	bl	801132c <PrintKey>
+ 801177e:	200c      	movs	r0, #12
+ 8011780:	f7ff fdd4 	bl	801132c <PrintKey>
+ 8011784:	2009      	movs	r0, #9
+ 8011786:	f7ff fdd1 	bl	801132c <PrintKey>
+ 801178a:	2008      	movs	r0, #8
+ 801178c:	f7ff fdce 	bl	801132c <PrintKey>
+ 8011790:	200a      	movs	r0, #10
+ 8011792:	f7ff fdcb 	bl	801132c <PrintKey>
+ 8011796:	4620      	mov	r0, r4
+ 8011798:	f7ff ff74 	bl	8011684 <PrintIds>
+ 801179c:	2000      	movs	r0, #0
+ 801179e:	bd10      	pop	{r4, pc}
+
+080117a0 <srand1>:
+ 80117a0:	4b01      	ldr	r3, [pc, #4]	; (80117a8 <srand1+0x8>)
+ 80117a2:	6018      	str	r0, [r3, #0]
+ 80117a4:	4770      	bx	lr
+ 80117a6:	bf00      	nop
+ 80117a8:	200008bc 	.word	0x200008bc
+
+080117ac <randr>:
+ 80117ac:	4a0b      	ldr	r2, [pc, #44]	; (80117dc <randr+0x30>)
+ 80117ae:	b530      	push	{r4, r5, lr}
+ 80117b0:	6814      	ldr	r4, [r2, #0]
+ 80117b2:	4d0b      	ldr	r5, [pc, #44]	; (80117e0 <randr+0x34>)
+ 80117b4:	f243 0339 	movw	r3, #12345	; 0x3039
+ 80117b8:	fb05 3304 	mla	r3, r5, r4, r3
+ 80117bc:	6013      	str	r3, [r2, #0]
+ 80117be:	1a09      	subs	r1, r1, r0
+ 80117c0:	f06f 4200 	mvn.w	r2, #2147483648	; 0x80000000
+ 80117c4:	fbb3 f2f2 	udiv	r2, r3, r2
+ 80117c8:	ebc2 72c2 	rsb	r2, r2, r2, lsl #31
+ 80117cc:	3101      	adds	r1, #1
+ 80117ce:	1a9b      	subs	r3, r3, r2
+ 80117d0:	fb93 f2f1 	sdiv	r2, r3, r1
+ 80117d4:	fb01 3312 	mls	r3, r1, r2, r3
+ 80117d8:	4418      	add	r0, r3
+ 80117da:	bd30      	pop	{r4, r5, pc}
+ 80117dc:	200008bc 	.word	0x200008bc
+ 80117e0:	41c64e6d 	.word	0x41c64e6d
+
+080117e4 <memcpy1>:
+ 80117e4:	3801      	subs	r0, #1
+ 80117e6:	440a      	add	r2, r1
+ 80117e8:	4291      	cmp	r1, r2
+ 80117ea:	d100      	bne.n	80117ee <memcpy1+0xa>
+ 80117ec:	4770      	bx	lr
+ 80117ee:	f811 3b01 	ldrb.w	r3, [r1], #1
+ 80117f2:	f800 3f01 	strb.w	r3, [r0, #1]!
+ 80117f6:	e7f7      	b.n	80117e8 <memcpy1+0x4>
+
+080117f8 <memcpyr>:
+ 80117f8:	4410      	add	r0, r2
+ 80117fa:	440a      	add	r2, r1
+ 80117fc:	4291      	cmp	r1, r2
+ 80117fe:	d100      	bne.n	8011802 <memcpyr+0xa>
+ 8011800:	4770      	bx	lr
+ 8011802:	f811 3b01 	ldrb.w	r3, [r1], #1
+ 8011806:	f800 3d01 	strb.w	r3, [r0, #-1]!
+ 801180a:	e7f7      	b.n	80117fc <memcpyr+0x4>
+
+0801180c <memset1>:
+ 801180c:	f002 bd20 	b.w	8014250 <memset>
+
+08011810 <Crc32>:
+ 8011810:	b530      	push	{r4, r5, lr}
+ 8011812:	b130      	cbz	r0, 8011822 <Crc32+0x12>
+ 8011814:	4d0a      	ldr	r5, [pc, #40]	; (8011840 <Crc32+0x30>)
+ 8011816:	4401      	add	r1, r0
+ 8011818:	f04f 33ff 	mov.w	r3, #4294967295
+ 801181c:	4281      	cmp	r1, r0
+ 801181e:	d101      	bne.n	8011824 <Crc32+0x14>
+ 8011820:	43d8      	mvns	r0, r3
+ 8011822:	bd30      	pop	{r4, r5, pc}
+ 8011824:	f810 2b01 	ldrb.w	r2, [r0], #1
+ 8011828:	4053      	eors	r3, r2
+ 801182a:	2208      	movs	r2, #8
+ 801182c:	f343 0400 	sbfx	r4, r3, #0, #1
+ 8011830:	3a01      	subs	r2, #1
+ 8011832:	402c      	ands	r4, r5
+ 8011834:	b292      	uxth	r2, r2
+ 8011836:	ea84 0353 	eor.w	r3, r4, r3, lsr #1
+ 801183a:	2a00      	cmp	r2, #0
+ 801183c:	d1f6      	bne.n	801182c <Crc32+0x1c>
+ 801183e:	e7ed      	b.n	801181c <Crc32+0xc>
+ 8011840:	edb88320 	.word	0xedb88320
+
+08011844 <RadioCheckRfFrequency>:
+ 8011844:	2001      	movs	r0, #1
+ 8011846:	4770      	bx	lr
+
+08011848 <RadioOnTxTimeoutIrq>:
+ 8011848:	4b05      	ldr	r3, [pc, #20]	; (8011860 <RadioOnTxTimeoutIrq+0x18>)
+ 801184a:	f44f 5200 	mov.w	r2, #8192	; 0x2000
+ 801184e:	629a      	str	r2, [r3, #40]	; 0x28
+ 8011850:	4b04      	ldr	r3, [pc, #16]	; (8011864 <RadioOnTxTimeoutIrq+0x1c>)
+ 8011852:	681b      	ldr	r3, [r3, #0]
+ 8011854:	b113      	cbz	r3, 801185c <RadioOnTxTimeoutIrq+0x14>
+ 8011856:	685b      	ldr	r3, [r3, #4]
+ 8011858:	b103      	cbz	r3, 801185c <RadioOnTxTimeoutIrq+0x14>
+ 801185a:	4718      	bx	r3
+ 801185c:	4770      	bx	lr
+ 801185e:	bf00      	nop
+ 8011860:	48000400 	.word	0x48000400
+ 8011864:	20002728 	.word	0x20002728
+
+08011868 <RadioOnRxTimeoutIrq>:
+ 8011868:	4b05      	ldr	r3, [pc, #20]	; (8011880 <RadioOnRxTimeoutIrq+0x18>)
+ 801186a:	f44f 5280 	mov.w	r2, #4096	; 0x1000
+ 801186e:	629a      	str	r2, [r3, #40]	; 0x28
+ 8011870:	4b04      	ldr	r3, [pc, #16]	; (8011884 <RadioOnRxTimeoutIrq+0x1c>)
+ 8011872:	681b      	ldr	r3, [r3, #0]
+ 8011874:	b113      	cbz	r3, 801187c <RadioOnRxTimeoutIrq+0x14>
+ 8011876:	68db      	ldr	r3, [r3, #12]
+ 8011878:	b103      	cbz	r3, 801187c <RadioOnRxTimeoutIrq+0x14>
+ 801187a:	4718      	bx	r3
+ 801187c:	4770      	bx	lr
+ 801187e:	bf00      	nop
+ 8011880:	48000400 	.word	0x48000400
+ 8011884:	20002728 	.word	0x20002728
+
+08011888 <RadioLrFhssSetCfg>:
+ 8011888:	2001      	movs	r0, #1
+ 801188a:	4770      	bx	lr
+
+0801188c <RadioLrFhssGetTimeOnAirInMs>:
+ 801188c:	2001      	movs	r0, #1
+ 801188e:	4770      	bx	lr
+
+08011890 <RadioRead>:
+ 8011890:	f001 b948 	b.w	8012b24 <SUBGRF_ReadRegister>
+
+08011894 <RadioWrite>:
+ 8011894:	f001 b936 	b.w	8012b04 <SUBGRF_WriteRegister>
+
+08011898 <RadioTxCw>:
+ 8011898:	b510      	push	{r4, lr}
+ 801189a:	f001 fe19 	bl	80134d0 <SUBGRF_SetRfTxPower>
+ 801189e:	210e      	movs	r1, #14
+ 80118a0:	4604      	mov	r4, r0
+ 80118a2:	f640 101f 	movw	r0, #2335	; 0x91f
+ 80118a6:	f001 f92d 	bl	8012b04 <SUBGRF_WriteRegister>
+ 80118aa:	4620      	mov	r0, r4
+ 80118ac:	2101      	movs	r1, #1
+ 80118ae:	f001 fdf9 	bl	80134a4 <SUBGRF_SetSwitch>
+ 80118b2:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 80118b6:	f001 bad7 	b.w	8012e68 <SUBGRF_SetTxContinuousWave>
+	...
+
+080118bc <RadioSetRxDutyCycle>:
+ 80118bc:	b570      	push	{r4, r5, r6, lr}
+ 80118be:	4e0c      	ldr	r6, [pc, #48]	; (80118f0 <RadioSetRxDutyCycle+0x34>)
+ 80118c0:	eb01 0340 	add.w	r3, r1, r0, lsl #1
+ 80118c4:	460d      	mov	r5, r1
+ 80118c6:	65b3      	str	r3, [r6, #88]	; 0x58
+ 80118c8:	f64f 71ff 	movw	r1, #65535	; 0xffff
+ 80118cc:	2300      	movs	r3, #0
+ 80118ce:	4604      	mov	r4, r0
+ 80118d0:	461a      	mov	r2, r3
+ 80118d2:	4608      	mov	r0, r1
+ 80118d4:	f001 fb5e 	bl	8012f94 <SUBGRF_SetDioIrqParams>
+ 80118d8:	f896 0056 	ldrb.w	r0, [r6, #86]	; 0x56
+ 80118dc:	2100      	movs	r1, #0
+ 80118de:	f001 fde1 	bl	80134a4 <SUBGRF_SetSwitch>
+ 80118e2:	4629      	mov	r1, r5
+ 80118e4:	4620      	mov	r0, r4
+ 80118e6:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
+ 80118ea:	f001 ba95 	b.w	8012e18 <SUBGRF_SetRxDutyCycle>
+ 80118ee:	bf00      	nop
+ 80118f0:	20002744 	.word	0x20002744
+
+080118f4 <RadioRxBoosted>:
+ 80118f4:	b510      	push	{r4, lr}
+ 80118f6:	4604      	mov	r4, r0
+ 80118f8:	f001 feaa 	bl	8013650 <RFW_Is_Init>
+ 80118fc:	2801      	cmp	r0, #1
+ 80118fe:	d11c      	bne.n	801193a <RadioRxBoosted+0x46>
+ 8011900:	f001 feae 	bl	8013660 <RFW_ReceiveInit>
+ 8011904:	b134      	cbz	r4, 8011914 <RadioRxBoosted+0x20>
+ 8011906:	4812      	ldr	r0, [pc, #72]	; (8011950 <RadioRxBoosted+0x5c>)
+ 8011908:	4621      	mov	r1, r4
+ 801190a:	f002 fb17 	bl	8013f3c <UTIL_TIMER_SetPeriod>
+ 801190e:	4810      	ldr	r0, [pc, #64]	; (8011950 <RadioRxBoosted+0x5c>)
+ 8011910:	f002 fada 	bl	8013ec8 <UTIL_TIMER_Start>
+ 8011914:	4c0f      	ldr	r4, [pc, #60]	; (8011954 <RadioRxBoosted+0x60>)
+ 8011916:	4b10      	ldr	r3, [pc, #64]	; (8011958 <RadioRxBoosted+0x64>)
+ 8011918:	2100      	movs	r1, #0
+ 801191a:	f44f 5280 	mov.w	r2, #4096	; 0x1000
+ 801191e:	65a1      	str	r1, [r4, #88]	; 0x58
+ 8011920:	619a      	str	r2, [r3, #24]
+ 8011922:	f894 0056 	ldrb.w	r0, [r4, #86]	; 0x56
+ 8011926:	f001 fdbd 	bl	80134a4 <SUBGRF_SetSwitch>
+ 801192a:	7863      	ldrb	r3, [r4, #1]
+ 801192c:	b16b      	cbz	r3, 801194a <RadioRxBoosted+0x56>
+ 801192e:	f06f 407f 	mvn.w	r0, #4278190080	; 0xff000000
+ 8011932:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8011936:	f001 ba53 	b.w	8012de0 <SUBGRF_SetRxBoosted>
+ 801193a:	2300      	movs	r3, #0
+ 801193c:	f240 2162 	movw	r1, #610	; 0x262
+ 8011940:	461a      	mov	r2, r3
+ 8011942:	4608      	mov	r0, r1
+ 8011944:	f001 fb26 	bl	8012f94 <SUBGRF_SetDioIrqParams>
+ 8011948:	e7dc      	b.n	8011904 <RadioRxBoosted+0x10>
+ 801194a:	68a0      	ldr	r0, [r4, #8]
+ 801194c:	0180      	lsls	r0, r0, #6
+ 801194e:	e7f0      	b.n	8011932 <RadioRxBoosted+0x3e>
+ 8011950:	2000272c 	.word	0x2000272c
+ 8011954:	20002744 	.word	0x20002744
+ 8011958:	48000400 	.word	0x48000400
+
+0801195c <RadioStandby>:
+ 801195c:	2000      	movs	r0, #0
+ 801195e:	f001 b9bf 	b.w	8012ce0 <SUBGRF_SetStandby>
+	...
+
+08011964 <RadioGetStatus>:
+ 8011964:	b508      	push	{r3, lr}
+ 8011966:	f001 f8c7 	bl	8012af8 <SUBGRF_GetOperatingMode>
+ 801196a:	3804      	subs	r0, #4
+ 801196c:	b2c0      	uxtb	r0, r0
+ 801196e:	2803      	cmp	r0, #3
+ 8011970:	bf96      	itet	ls
+ 8011972:	4b02      	ldrls	r3, [pc, #8]	; (801197c <RadioGetStatus+0x18>)
+ 8011974:	2000      	movhi	r0, #0
+ 8011976:	5c18      	ldrbls	r0, [r3, r0]
+ 8011978:	bd08      	pop	{r3, pc}
+ 801197a:	bf00      	nop
+ 801197c:	08015780 	.word	0x08015780
+
+08011980 <RadioGetWakeupTime>:
+ 8011980:	b508      	push	{r3, lr}
+ 8011982:	f001 fdba 	bl	80134fa <SUBGRF_GetRadioWakeUpTime>
+ 8011986:	3003      	adds	r0, #3
+ 8011988:	bd08      	pop	{r3, pc}
+
+0801198a <RadioReadRegisters>:
+ 801198a:	f001 b949 	b.w	8012c20 <SUBGRF_ReadRegisters>
+
+0801198e <RadioWriteRegisters>:
+ 801198e:	f001 b909 	b.w	8012ba4 <SUBGRF_WriteRegisters>
+
+08011992 <RadioRssi>:
+ 8011992:	b508      	push	{r3, lr}
+ 8011994:	f001 fd00 	bl	8013398 <SUBGRF_GetRssiInst>
+ 8011998:	b200      	sxth	r0, r0
+ 801199a:	bd08      	pop	{r3, pc}
+
+0801199c <RadioSetTxContinuousWave>:
+ 801199c:	b538      	push	{r3, r4, r5, lr}
+ 801199e:	460d      	mov	r5, r1
+ 80119a0:	4614      	mov	r4, r2
+ 80119a2:	f001 fb5d 	bl	8013060 <SUBGRF_SetRfFrequency>
+ 80119a6:	4628      	mov	r0, r5
+ 80119a8:	f001 fd92 	bl	80134d0 <SUBGRF_SetRfTxPower>
+ 80119ac:	210e      	movs	r1, #14
+ 80119ae:	4605      	mov	r5, r0
+ 80119b0:	f640 101f 	movw	r0, #2335	; 0x91f
+ 80119b4:	f001 f8a6 	bl	8012b04 <SUBGRF_WriteRegister>
+ 80119b8:	4628      	mov	r0, r5
+ 80119ba:	2101      	movs	r1, #1
+ 80119bc:	4d07      	ldr	r5, [pc, #28]	; (80119dc <RadioSetTxContinuousWave+0x40>)
+ 80119be:	f001 fd71 	bl	80134a4 <SUBGRF_SetSwitch>
+ 80119c2:	f001 fa51 	bl	8012e68 <SUBGRF_SetTxContinuousWave>
+ 80119c6:	f44f 717a 	mov.w	r1, #1000	; 0x3e8
+ 80119ca:	4361      	muls	r1, r4
+ 80119cc:	4628      	mov	r0, r5
+ 80119ce:	f002 fab5 	bl	8013f3c <UTIL_TIMER_SetPeriod>
+ 80119d2:	4628      	mov	r0, r5
+ 80119d4:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
+ 80119d8:	f002 ba76 	b.w	8013ec8 <UTIL_TIMER_Start>
+ 80119dc:	200027a0 	.word	0x200027a0
+
+080119e0 <RadioSetChannel>:
+ 80119e0:	f001 bb3e 	b.w	8013060 <SUBGRF_SetRfFrequency>
+
+080119e4 <RadioStartCad>:
+ 80119e4:	b508      	push	{r3, lr}
+ 80119e6:	4b08      	ldr	r3, [pc, #32]	; (8011a08 <RadioStartCad+0x24>)
+ 80119e8:	2100      	movs	r1, #0
+ 80119ea:	f893 0056 	ldrb.w	r0, [r3, #86]	; 0x56
+ 80119ee:	f001 fd59 	bl	80134a4 <SUBGRF_SetSwitch>
+ 80119f2:	2300      	movs	r3, #0
+ 80119f4:	f44f 71c0 	mov.w	r1, #384	; 0x180
+ 80119f8:	461a      	mov	r2, r3
+ 80119fa:	4608      	mov	r0, r1
+ 80119fc:	f001 faca 	bl	8012f94 <SUBGRF_SetDioIrqParams>
+ 8011a00:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 8011a04:	f001 ba24 	b.w	8012e50 <SUBGRF_SetCad>
+ 8011a08:	20002744 	.word	0x20002744
+
+08011a0c <RadioRx>:
+ 8011a0c:	b510      	push	{r4, lr}
+ 8011a0e:	4604      	mov	r4, r0
+ 8011a10:	f001 fe1e 	bl	8013650 <RFW_Is_Init>
+ 8011a14:	2801      	cmp	r0, #1
+ 8011a16:	d11c      	bne.n	8011a52 <RadioRx+0x46>
+ 8011a18:	f001 fe22 	bl	8013660 <RFW_ReceiveInit>
+ 8011a1c:	b134      	cbz	r4, 8011a2c <RadioRx+0x20>
+ 8011a1e:	4812      	ldr	r0, [pc, #72]	; (8011a68 <RadioRx+0x5c>)
+ 8011a20:	4621      	mov	r1, r4
+ 8011a22:	f002 fa8b 	bl	8013f3c <UTIL_TIMER_SetPeriod>
+ 8011a26:	4810      	ldr	r0, [pc, #64]	; (8011a68 <RadioRx+0x5c>)
+ 8011a28:	f002 fa4e 	bl	8013ec8 <UTIL_TIMER_Start>
+ 8011a2c:	4c0f      	ldr	r4, [pc, #60]	; (8011a6c <RadioRx+0x60>)
+ 8011a2e:	4b10      	ldr	r3, [pc, #64]	; (8011a70 <RadioRx+0x64>)
+ 8011a30:	2100      	movs	r1, #0
+ 8011a32:	f44f 5280 	mov.w	r2, #4096	; 0x1000
+ 8011a36:	65a1      	str	r1, [r4, #88]	; 0x58
+ 8011a38:	619a      	str	r2, [r3, #24]
+ 8011a3a:	f894 0056 	ldrb.w	r0, [r4, #86]	; 0x56
+ 8011a3e:	f001 fd31 	bl	80134a4 <SUBGRF_SetSwitch>
+ 8011a42:	7863      	ldrb	r3, [r4, #1]
+ 8011a44:	b16b      	cbz	r3, 8011a62 <RadioRx+0x56>
+ 8011a46:	f06f 407f 	mvn.w	r0, #4278190080	; 0xff000000
+ 8011a4a:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8011a4e:	f001 b97d 	b.w	8012d4c <SUBGRF_SetRx>
+ 8011a52:	2300      	movs	r3, #0
+ 8011a54:	f240 2162 	movw	r1, #610	; 0x262
+ 8011a58:	461a      	mov	r2, r3
+ 8011a5a:	4608      	mov	r0, r1
+ 8011a5c:	f001 fa9a 	bl	8012f94 <SUBGRF_SetDioIrqParams>
+ 8011a60:	e7dc      	b.n	8011a1c <RadioRx+0x10>
+ 8011a62:	68a0      	ldr	r0, [r4, #8]
+ 8011a64:	0180      	lsls	r0, r0, #6
+ 8011a66:	e7f0      	b.n	8011a4a <RadioRx+0x3e>
+ 8011a68:	2000272c 	.word	0x2000272c
+ 8011a6c:	20002744 	.word	0x20002744
+ 8011a70:	48000400 	.word	0x48000400
+
+08011a74 <RadioSleep>:
+ 8011a74:	b508      	push	{r3, lr}
+ 8011a76:	f04f 0004 	mov.w	r0, #4
+ 8011a7a:	f001 f917 	bl	8012cac <SUBGRF_SetSleep>
+ 8011a7e:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 8011a82:	2002      	movs	r0, #2
+ 8011a84:	f7f1 b86a 	b.w	8002b5c <HAL_Delay>
+
+08011a88 <RadioRandom>:
+ 8011a88:	b508      	push	{r3, lr}
+ 8011a8a:	2300      	movs	r3, #0
+ 8011a8c:	461a      	mov	r2, r3
+ 8011a8e:	4619      	mov	r1, r3
+ 8011a90:	4618      	mov	r0, r3
+ 8011a92:	f001 fa7f 	bl	8012f94 <SUBGRF_SetDioIrqParams>
+ 8011a96:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 8011a9a:	f001 b96d 	b.w	8012d78 <SUBGRF_GetRandom>
+	...
+
+08011aa0 <RadioInit>:
+ 8011aa0:	4b1d      	ldr	r3, [pc, #116]	; (8011b18 <RadioInit+0x78>)
+ 8011aa2:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 8011aa4:	4d1d      	ldr	r5, [pc, #116]	; (8011b1c <RadioInit+0x7c>)
+ 8011aa6:	6018      	str	r0, [r3, #0]
+ 8011aa8:	2400      	movs	r4, #0
+ 8011aaa:	481d      	ldr	r0, [pc, #116]	; (8011b20 <RadioInit+0x80>)
+ 8011aac:	706c      	strb	r4, [r5, #1]
+ 8011aae:	e9c5 4401 	strd	r4, r4, [r5, #4]
+ 8011ab2:	65ac      	str	r4, [r5, #88]	; 0x58
+ 8011ab4:	f001 fa98 	bl	8012fe8 <SUBGRF_Init>
+ 8011ab8:	81ac      	strh	r4, [r5, #12]
+ 8011aba:	f001 fa03 	bl	8012ec4 <SUBGRF_SetRegulatorMode>
+ 8011abe:	4621      	mov	r1, r4
+ 8011ac0:	4620      	mov	r0, r4
+ 8011ac2:	f001 fc4b 	bl	801335c <SUBGRF_SetBufferBaseAddress>
+ 8011ac6:	4621      	mov	r1, r4
+ 8011ac8:	2204      	movs	r2, #4
+ 8011aca:	2001      	movs	r0, #1
+ 8011acc:	f001 fafc 	bl	80130c8 <SUBGRF_SetTxParams>
+ 8011ad0:	4e14      	ldr	r6, [pc, #80]	; (8011b24 <RadioInit+0x84>)
+ 8011ad2:	4d15      	ldr	r5, [pc, #84]	; (8011b28 <RadioInit+0x88>)
+ 8011ad4:	f64f 71ff 	movw	r1, #65535	; 0xffff
+ 8011ad8:	4623      	mov	r3, r4
+ 8011ada:	4622      	mov	r2, r4
+ 8011adc:	4608      	mov	r0, r1
+ 8011ade:	f001 fa59 	bl	8012f94 <SUBGRF_SetDioIrqParams>
+ 8011ae2:	f7ff ffc7 	bl	8011a74 <RadioSleep>
+ 8011ae6:	4622      	mov	r2, r4
+ 8011ae8:	4b10      	ldr	r3, [pc, #64]	; (8011b2c <RadioInit+0x8c>)
+ 8011aea:	9400      	str	r4, [sp, #0]
+ 8011aec:	f04f 31ff 	mov.w	r1, #4294967295
+ 8011af0:	4630      	mov	r0, r6
+ 8011af2:	f002 f93d 	bl	8013d70 <UTIL_TIMER_Create>
+ 8011af6:	4b0e      	ldr	r3, [pc, #56]	; (8011b30 <RadioInit+0x90>)
+ 8011af8:	9400      	str	r4, [sp, #0]
+ 8011afa:	4622      	mov	r2, r4
+ 8011afc:	f04f 31ff 	mov.w	r1, #4294967295
+ 8011b00:	4628      	mov	r0, r5
+ 8011b02:	f002 f935 	bl	8013d70 <UTIL_TIMER_Create>
+ 8011b06:	4630      	mov	r0, r6
+ 8011b08:	f002 f990 	bl	8013e2c <UTIL_TIMER_Stop>
+ 8011b0c:	4628      	mov	r0, r5
+ 8011b0e:	b002      	add	sp, #8
+ 8011b10:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
+ 8011b14:	f002 b98a 	b.w	8013e2c <UTIL_TIMER_Stop>
+ 8011b18:	20002728 	.word	0x20002728
+ 8011b1c:	20002744 	.word	0x20002744
+ 8011b20:	08012ae9 	.word	0x08012ae9
+ 8011b24:	200027a0 	.word	0x200027a0
+ 8011b28:	2000272c 	.word	0x2000272c
+ 8011b2c:	08011849 	.word	0x08011849
+ 8011b30:	08011869 	.word	0x08011869
+
+08011b34 <RadioSetMaxPayloadLength>:
+ 8011b34:	2801      	cmp	r0, #1
+ 8011b36:	4808      	ldr	r0, [pc, #32]	; (8011b58 <RadioSetMaxPayloadLength+0x24>)
+ 8011b38:	d105      	bne.n	8011b46 <RadioSetMaxPayloadLength+0x12>
+ 8011b3a:	4b08      	ldr	r3, [pc, #32]	; (8011b5c <RadioSetMaxPayloadLength+0x28>)
+ 8011b3c:	77c1      	strb	r1, [r0, #31]
+ 8011b3e:	7019      	strb	r1, [r3, #0]
+ 8011b40:	300e      	adds	r0, #14
+ 8011b42:	f001 bba7 	b.w	8013294 <SUBGRF_SetPacketParams>
+ 8011b46:	7d43      	ldrb	r3, [r0, #21]
+ 8011b48:	2b01      	cmp	r3, #1
+ 8011b4a:	d103      	bne.n	8011b54 <RadioSetMaxPayloadLength+0x20>
+ 8011b4c:	4b03      	ldr	r3, [pc, #12]	; (8011b5c <RadioSetMaxPayloadLength+0x28>)
+ 8011b4e:	7581      	strb	r1, [r0, #22]
+ 8011b50:	7019      	strb	r1, [r3, #0]
+ 8011b52:	e7f5      	b.n	8011b40 <RadioSetMaxPayloadLength+0xc>
+ 8011b54:	4770      	bx	lr
+ 8011b56:	bf00      	nop
+ 8011b58:	20002744 	.word	0x20002744
+ 8011b5c:	200008c0 	.word	0x200008c0
+
+08011b60 <RadioSetPublicNetwork>:
+ 8011b60:	4b0d      	ldr	r3, [pc, #52]	; (8011b98 <RadioSetPublicNetwork+0x38>)
+ 8011b62:	b510      	push	{r4, lr}
+ 8011b64:	4604      	mov	r4, r0
+ 8011b66:	7318      	strb	r0, [r3, #12]
+ 8011b68:	7358      	strb	r0, [r3, #13]
+ 8011b6a:	2001      	movs	r0, #1
+ 8011b6c:	f000 f816 	bl	8011b9c <RadioSetModem>
+ 8011b70:	b15c      	cbz	r4, 8011b8a <RadioSetPublicNetwork+0x2a>
+ 8011b72:	2134      	movs	r1, #52	; 0x34
+ 8011b74:	f44f 60e8 	mov.w	r0, #1856	; 0x740
+ 8011b78:	f000 ffc4 	bl	8012b04 <SUBGRF_WriteRegister>
+ 8011b7c:	2144      	movs	r1, #68	; 0x44
+ 8011b7e:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8011b82:	f240 7041 	movw	r0, #1857	; 0x741
+ 8011b86:	f000 bfbd 	b.w	8012b04 <SUBGRF_WriteRegister>
+ 8011b8a:	2114      	movs	r1, #20
+ 8011b8c:	f44f 60e8 	mov.w	r0, #1856	; 0x740
+ 8011b90:	f000 ffb8 	bl	8012b04 <SUBGRF_WriteRegister>
+ 8011b94:	2124      	movs	r1, #36	; 0x24
+ 8011b96:	e7f2      	b.n	8011b7e <RadioSetPublicNetwork+0x1e>
+ 8011b98:	20002744 	.word	0x20002744
+
+08011b9c <RadioSetModem>:
+ 8011b9c:	b538      	push	{r3, r4, r5, lr}
+ 8011b9e:	4c11      	ldr	r4, [pc, #68]	; (8011be4 <RadioSetModem+0x48>)
+ 8011ba0:	4605      	mov	r5, r0
+ 8011ba2:	7020      	strb	r0, [r4, #0]
+ 8011ba4:	f001 fd61 	bl	801366a <RFW_SetRadioModem>
+ 8011ba8:	2d05      	cmp	r5, #5
+ 8011baa:	d804      	bhi.n	8011bb6 <RadioSetModem+0x1a>
+ 8011bac:	e8df f005 	tbb	[pc, r5]
+ 8011bb0:	17030b09 	.word	0x17030b09
+ 8011bb4:	0917      	.short	0x0917
+ 8011bb6:	2003      	movs	r0, #3
+ 8011bb8:	f001 fa70 	bl	801309c <SUBGRF_SetPacketType>
+ 8011bbc:	2300      	movs	r3, #0
+ 8011bbe:	7363      	strb	r3, [r4, #13]
+ 8011bc0:	bd38      	pop	{r3, r4, r5, pc}
+ 8011bc2:	2000      	movs	r0, #0
+ 8011bc4:	e7f8      	b.n	8011bb8 <RadioSetModem+0x1c>
+ 8011bc6:	2001      	movs	r0, #1
+ 8011bc8:	f001 fa68 	bl	801309c <SUBGRF_SetPacketType>
+ 8011bcc:	7b20      	ldrb	r0, [r4, #12]
+ 8011bce:	7b63      	ldrb	r3, [r4, #13]
+ 8011bd0:	4283      	cmp	r3, r0
+ 8011bd2:	d0f5      	beq.n	8011bc0 <RadioSetModem+0x24>
+ 8011bd4:	7360      	strb	r0, [r4, #13]
+ 8011bd6:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
+ 8011bda:	f7ff bfc1 	b.w	8011b60 <RadioSetPublicNetwork>
+ 8011bde:	2002      	movs	r0, #2
+ 8011be0:	e7ea      	b.n	8011bb8 <RadioSetModem+0x1c>
+ 8011be2:	bf00      	nop
+ 8011be4:	20002744 	.word	0x20002744
+
+08011be8 <RadioSetTxGenericConfig>:
+ 8011be8:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
+ 8011bec:	461e      	mov	r6, r3
+ 8011bee:	b087      	sub	sp, #28
+ 8011bf0:	2300      	movs	r3, #0
+ 8011bf2:	4605      	mov	r5, r0
+ 8011bf4:	e9cd 3301 	strd	r3, r3, [sp, #4]
+ 8011bf8:	460c      	mov	r4, r1
+ 8011bfa:	4617      	mov	r7, r2
+ 8011bfc:	f001 fd27 	bl	801364e <RFW_DeInit>
+ 8011c00:	2d03      	cmp	r5, #3
+ 8011c02:	d861      	bhi.n	8011cc8 <RadioSetTxGenericConfig+0xe0>
+ 8011c04:	e8df f015 	tbh	[pc, r5, lsl #1]
+ 8011c08:	00c3007b 	.word	0x00c3007b
+ 8011c0c:	0004010e 	.word	0x0004010e
+ 8011c10:	7ca2      	ldrb	r2, [r4, #18]
+ 8011c12:	2a08      	cmp	r2, #8
+ 8011c14:	d904      	bls.n	8011c20 <RadioSetTxGenericConfig+0x38>
+ 8011c16:	f04f 30ff 	mov.w	r0, #4294967295
+ 8011c1a:	b007      	add	sp, #28
+ 8011c1c:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
+ 8011c20:	68a1      	ldr	r1, [r4, #8]
+ 8011c22:	a801      	add	r0, sp, #4
+ 8011c24:	f001 fedc 	bl	80139e0 <UTIL_MEM_cpy_8>
+ 8011c28:	6821      	ldr	r1, [r4, #0]
+ 8011c2a:	2900      	cmp	r1, #0
+ 8011c2c:	d0f3      	beq.n	8011c16 <RadioSetTxGenericConfig+0x2e>
+ 8011c2e:	f242 7210 	movw	r2, #10000	; 0x2710
+ 8011c32:	4291      	cmp	r1, r2
+ 8011c34:	7ce3      	ldrb	r3, [r4, #19]
+ 8011c36:	4d86      	ldr	r5, [pc, #536]	; (8011e50 <RadioSetTxGenericConfig+0x268>)
+ 8011c38:	d851      	bhi.n	8011cde <RadioSetTxGenericConfig+0xf6>
+ 8011c3a:	2203      	movs	r2, #3
+ 8011c3c:	73aa      	strb	r2, [r5, #14]
+ 8011c3e:	f885 2038 	strb.w	r2, [r5, #56]	; 0x38
+ 8011c42:	63e9      	str	r1, [r5, #60]	; 0x3c
+ 8011c44:	f885 3044 	strb.w	r3, [r5, #68]	; 0x44
+ 8011c48:	f04f 0802 	mov.w	r8, #2
+ 8011c4c:	6863      	ldr	r3, [r4, #4]
+ 8011c4e:	7da1      	ldrb	r1, [r4, #22]
+ 8011c50:	00db      	lsls	r3, r3, #3
+ 8011c52:	822b      	strh	r3, [r5, #16]
+ 8011c54:	2304      	movs	r3, #4
+ 8011c56:	74ab      	strb	r3, [r5, #18]
+ 8011c58:	7ca3      	ldrb	r3, [r4, #18]
+ 8011c5a:	00db      	lsls	r3, r3, #3
+ 8011c5c:	74eb      	strb	r3, [r5, #19]
+ 8011c5e:	2902      	cmp	r1, #2
+ 8011c60:	f04f 0300 	mov.w	r3, #0
+ 8011c64:	752b      	strb	r3, [r5, #20]
+ 8011c66:	7d63      	ldrb	r3, [r4, #21]
+ 8011c68:	d002      	beq.n	8011c70 <RadioSetTxGenericConfig+0x88>
+ 8011c6a:	7d22      	ldrb	r2, [r4, #20]
+ 8011c6c:	2a02      	cmp	r2, #2
+ 8011c6e:	d142      	bne.n	8011cf6 <RadioSetTxGenericConfig+0x10e>
+ 8011c70:	f103 020f 	add.w	r2, r3, #15
+ 8011c74:	b2d2      	uxtb	r2, r2
+ 8011c76:	2a01      	cmp	r2, #1
+ 8011c78:	d901      	bls.n	8011c7e <RadioSetTxGenericConfig+0x96>
+ 8011c7a:	2b01      	cmp	r3, #1
+ 8011c7c:	d1cb      	bne.n	8011c16 <RadioSetTxGenericConfig+0x2e>
+ 8011c7e:	4b75      	ldr	r3, [pc, #468]	; (8011e54 <RadioSetTxGenericConfig+0x26c>)
+ 8011c80:	4a75      	ldr	r2, [pc, #468]	; (8011e58 <RadioSetTxGenericConfig+0x270>)
+ 8011c82:	6819      	ldr	r1, [r3, #0]
+ 8011c84:	9403      	str	r4, [sp, #12]
+ 8011c86:	f04f 0901 	mov.w	r9, #1
+ 8011c8a:	a803      	add	r0, sp, #12
+ 8011c8c:	f88d 9014 	strb.w	r9, [sp, #20]
+ 8011c90:	f001 fcda 	bl	8013648 <RFW_Init>
+ 8011c94:	2800      	cmp	r0, #0
+ 8011c96:	d1be      	bne.n	8011c16 <RadioSetTxGenericConfig+0x2e>
+ 8011c98:	7628      	strb	r0, [r5, #24]
+ 8011c9a:	f885 9017 	strb.w	r9, [r5, #23]
+ 8011c9e:	7568      	strb	r0, [r5, #21]
+ 8011ca0:	f7ff fe5c 	bl	801195c <RadioStandby>
+ 8011ca4:	4640      	mov	r0, r8
+ 8011ca6:	f7ff ff79 	bl	8011b9c <RadioSetModem>
+ 8011caa:	486c      	ldr	r0, [pc, #432]	; (8011e5c <RadioSetTxGenericConfig+0x274>)
+ 8011cac:	f001 fa86 	bl	80131bc <SUBGRF_SetModulationParams>
+ 8011cb0:	486b      	ldr	r0, [pc, #428]	; (8011e60 <RadioSetTxGenericConfig+0x278>)
+ 8011cb2:	f001 faef 	bl	8013294 <SUBGRF_SetPacketParams>
+ 8011cb6:	a801      	add	r0, sp, #4
+ 8011cb8:	f000 ff84 	bl	8012bc4 <SUBGRF_SetSyncWord>
+ 8011cbc:	8a20      	ldrh	r0, [r4, #16]
+ 8011cbe:	f000 ff55 	bl	8012b6c <SUBGRF_SetWhiteningSeed>
+ 8011cc2:	89a0      	ldrh	r0, [r4, #12]
+ 8011cc4:	f000 ff9a 	bl	8012bfc <SUBGRF_SetCrcPolynomial>
+ 8011cc8:	4638      	mov	r0, r7
+ 8011cca:	f001 fc01 	bl	80134d0 <SUBGRF_SetRfTxPower>
+ 8011cce:	4c60      	ldr	r4, [pc, #384]	; (8011e50 <RadioSetTxGenericConfig+0x268>)
+ 8011cd0:	f884 0056 	strb.w	r0, [r4, #86]	; 0x56
+ 8011cd4:	f001 fcc0 	bl	8013658 <RFW_SetAntSwitch>
+ 8011cd8:	6066      	str	r6, [r4, #4]
+ 8011cda:	2000      	movs	r0, #0
+ 8011cdc:	e79d      	b.n	8011c1a <RadioSetTxGenericConfig+0x32>
+ 8011cde:	f04f 0800 	mov.w	r8, #0
+ 8011ce2:	63e9      	str	r1, [r5, #60]	; 0x3c
+ 8011ce4:	0889      	lsrs	r1, r1, #2
+ 8011ce6:	f885 800e 	strb.w	r8, [r5, #14]
+ 8011cea:	f885 8038 	strb.w	r8, [r5, #56]	; 0x38
+ 8011cee:	f885 3044 	strb.w	r3, [r5, #68]	; 0x44
+ 8011cf2:	6429      	str	r1, [r5, #64]	; 0x40
+ 8011cf4:	e7aa      	b.n	8011c4c <RadioSetTxGenericConfig+0x64>
+ 8011cf6:	75eb      	strb	r3, [r5, #23]
+ 8011cf8:	7629      	strb	r1, [r5, #24]
+ 8011cfa:	756a      	strb	r2, [r5, #21]
+ 8011cfc:	e7d0      	b.n	8011ca0 <RadioSetTxGenericConfig+0xb8>
+ 8011cfe:	6823      	ldr	r3, [r4, #0]
+ 8011d00:	2b00      	cmp	r3, #0
+ 8011d02:	d088      	beq.n	8011c16 <RadioSetTxGenericConfig+0x2e>
+ 8011d04:	7ca2      	ldrb	r2, [r4, #18]
+ 8011d06:	2a08      	cmp	r2, #8
+ 8011d08:	d885      	bhi.n	8011c16 <RadioSetTxGenericConfig+0x2e>
+ 8011d0a:	4d51      	ldr	r5, [pc, #324]	; (8011e50 <RadioSetTxGenericConfig+0x268>)
+ 8011d0c:	68a1      	ldr	r1, [r4, #8]
+ 8011d0e:	a801      	add	r0, sp, #4
+ 8011d10:	f001 fe66 	bl	80139e0 <UTIL_MEM_cpy_8>
+ 8011d14:	2300      	movs	r3, #0
+ 8011d16:	f885 3038 	strb.w	r3, [r5, #56]	; 0x38
+ 8011d1a:	6822      	ldr	r2, [r4, #0]
+ 8011d1c:	63ea      	str	r2, [r5, #60]	; 0x3c
+ 8011d1e:	7ce2      	ldrb	r2, [r4, #19]
+ 8011d20:	f885 2044 	strb.w	r2, [r5, #68]	; 0x44
+ 8011d24:	69a2      	ldr	r2, [r4, #24]
+ 8011d26:	73ab      	strb	r3, [r5, #14]
+ 8011d28:	642a      	str	r2, [r5, #64]	; 0x40
+ 8011d2a:	6862      	ldr	r2, [r4, #4]
+ 8011d2c:	7da1      	ldrb	r1, [r4, #22]
+ 8011d2e:	00d2      	lsls	r2, r2, #3
+ 8011d30:	822a      	strh	r2, [r5, #16]
+ 8011d32:	2204      	movs	r2, #4
+ 8011d34:	74aa      	strb	r2, [r5, #18]
+ 8011d36:	7ca2      	ldrb	r2, [r4, #18]
+ 8011d38:	752b      	strb	r3, [r5, #20]
+ 8011d3a:	00d2      	lsls	r2, r2, #3
+ 8011d3c:	2902      	cmp	r1, #2
+ 8011d3e:	7d63      	ldrb	r3, [r4, #21]
+ 8011d40:	74ea      	strb	r2, [r5, #19]
+ 8011d42:	d002      	beq.n	8011d4a <RadioSetTxGenericConfig+0x162>
+ 8011d44:	7d22      	ldrb	r2, [r4, #20]
+ 8011d46:	2a02      	cmp	r2, #2
+ 8011d48:	d11d      	bne.n	8011d86 <RadioSetTxGenericConfig+0x19e>
+ 8011d4a:	f103 020f 	add.w	r2, r3, #15
+ 8011d4e:	b2d2      	uxtb	r2, r2
+ 8011d50:	2a01      	cmp	r2, #1
+ 8011d52:	d902      	bls.n	8011d5a <RadioSetTxGenericConfig+0x172>
+ 8011d54:	2b01      	cmp	r3, #1
+ 8011d56:	f47f af5e 	bne.w	8011c16 <RadioSetTxGenericConfig+0x2e>
+ 8011d5a:	4b3e      	ldr	r3, [pc, #248]	; (8011e54 <RadioSetTxGenericConfig+0x26c>)
+ 8011d5c:	4a3e      	ldr	r2, [pc, #248]	; (8011e58 <RadioSetTxGenericConfig+0x270>)
+ 8011d5e:	6819      	ldr	r1, [r3, #0]
+ 8011d60:	9403      	str	r4, [sp, #12]
+ 8011d62:	f04f 0801 	mov.w	r8, #1
+ 8011d66:	a803      	add	r0, sp, #12
+ 8011d68:	f88d 8014 	strb.w	r8, [sp, #20]
+ 8011d6c:	f001 fc6c 	bl	8013648 <RFW_Init>
+ 8011d70:	2800      	cmp	r0, #0
+ 8011d72:	f47f af50 	bne.w	8011c16 <RadioSetTxGenericConfig+0x2e>
+ 8011d76:	7628      	strb	r0, [r5, #24]
+ 8011d78:	f885 8017 	strb.w	r8, [r5, #23]
+ 8011d7c:	7568      	strb	r0, [r5, #21]
+ 8011d7e:	f7ff fded 	bl	801195c <RadioStandby>
+ 8011d82:	2000      	movs	r0, #0
+ 8011d84:	e78f      	b.n	8011ca6 <RadioSetTxGenericConfig+0xbe>
+ 8011d86:	75eb      	strb	r3, [r5, #23]
+ 8011d88:	7629      	strb	r1, [r5, #24]
+ 8011d8a:	756a      	strb	r2, [r5, #21]
+ 8011d8c:	e7f7      	b.n	8011d7e <RadioSetTxGenericConfig+0x196>
+ 8011d8e:	4d30      	ldr	r5, [pc, #192]	; (8011e50 <RadioSetTxGenericConfig+0x268>)
+ 8011d90:	2101      	movs	r1, #1
+ 8011d92:	f885 1038 	strb.w	r1, [r5, #56]	; 0x38
+ 8011d96:	7822      	ldrb	r2, [r4, #0]
+ 8011d98:	f885 2050 	strb.w	r2, [r5, #80]	; 0x50
+ 8011d9c:	7863      	ldrb	r3, [r4, #1]
+ 8011d9e:	f885 3051 	strb.w	r3, [r5, #81]	; 0x51
+ 8011da2:	78a3      	ldrb	r3, [r4, #2]
+ 8011da4:	f885 3052 	strb.w	r3, [r5, #82]	; 0x52
+ 8011da8:	78e3      	ldrb	r3, [r4, #3]
+ 8011daa:	428b      	cmp	r3, r1
+ 8011dac:	d002      	beq.n	8011db4 <RadioSetTxGenericConfig+0x1cc>
+ 8011dae:	2b02      	cmp	r3, #2
+ 8011db0:	d003      	beq.n	8011dba <RadioSetTxGenericConfig+0x1d2>
+ 8011db2:	b93b      	cbnz	r3, 8011dc4 <RadioSetTxGenericConfig+0x1dc>
+ 8011db4:	f885 3053 	strb.w	r3, [r5, #83]	; 0x53
+ 8011db8:	e004      	b.n	8011dc4 <RadioSetTxGenericConfig+0x1dc>
+ 8011dba:	3a0b      	subs	r2, #11
+ 8011dbc:	2a01      	cmp	r2, #1
+ 8011dbe:	d829      	bhi.n	8011e14 <RadioSetTxGenericConfig+0x22c>
+ 8011dc0:	f885 1053 	strb.w	r1, [r5, #83]	; 0x53
+ 8011dc4:	f04f 0801 	mov.w	r8, #1
+ 8011dc8:	f885 800e 	strb.w	r8, [r5, #14]
+ 8011dcc:	88a3      	ldrh	r3, [r4, #4]
+ 8011dce:	83ab      	strh	r3, [r5, #28]
+ 8011dd0:	79a3      	ldrb	r3, [r4, #6]
+ 8011dd2:	77ab      	strb	r3, [r5, #30]
+ 8011dd4:	79e3      	ldrb	r3, [r4, #7]
+ 8011dd6:	f885 3020 	strb.w	r3, [r5, #32]
+ 8011dda:	7a23      	ldrb	r3, [r4, #8]
+ 8011ddc:	f885 3021 	strb.w	r3, [r5, #33]	; 0x21
+ 8011de0:	f7ff fdbc 	bl	801195c <RadioStandby>
+ 8011de4:	4640      	mov	r0, r8
+ 8011de6:	f7ff fed9 	bl	8011b9c <RadioSetModem>
+ 8011dea:	481c      	ldr	r0, [pc, #112]	; (8011e5c <RadioSetTxGenericConfig+0x274>)
+ 8011dec:	f001 f9e6 	bl	80131bc <SUBGRF_SetModulationParams>
+ 8011df0:	481b      	ldr	r0, [pc, #108]	; (8011e60 <RadioSetTxGenericConfig+0x278>)
+ 8011df2:	f001 fa4f 	bl	8013294 <SUBGRF_SetPacketParams>
+ 8011df6:	f895 3051 	ldrb.w	r3, [r5, #81]	; 0x51
+ 8011dfa:	2b06      	cmp	r3, #6
+ 8011dfc:	f640 0089 	movw	r0, #2185	; 0x889
+ 8011e00:	d10a      	bne.n	8011e18 <RadioSetTxGenericConfig+0x230>
+ 8011e02:	f000 fe8f 	bl	8012b24 <SUBGRF_ReadRegister>
+ 8011e06:	f000 01fb 	and.w	r1, r0, #251	; 0xfb
+ 8011e0a:	f640 0089 	movw	r0, #2185	; 0x889
+ 8011e0e:	f000 fe79 	bl	8012b04 <SUBGRF_WriteRegister>
+ 8011e12:	e759      	b.n	8011cc8 <RadioSetTxGenericConfig+0xe0>
+ 8011e14:	2300      	movs	r3, #0
+ 8011e16:	e7cd      	b.n	8011db4 <RadioSetTxGenericConfig+0x1cc>
+ 8011e18:	f000 fe84 	bl	8012b24 <SUBGRF_ReadRegister>
+ 8011e1c:	f040 0104 	orr.w	r1, r0, #4
+ 8011e20:	b2c9      	uxtb	r1, r1
+ 8011e22:	e7f2      	b.n	8011e0a <RadioSetTxGenericConfig+0x222>
+ 8011e24:	6823      	ldr	r3, [r4, #0]
+ 8011e26:	3b01      	subs	r3, #1
+ 8011e28:	f5b3 7f7a 	cmp.w	r3, #1000	; 0x3e8
+ 8011e2c:	f4bf aef3 	bcs.w	8011c16 <RadioSetTxGenericConfig+0x2e>
+ 8011e30:	2003      	movs	r0, #3
+ 8011e32:	f7ff feb3 	bl	8011b9c <RadioSetModem>
+ 8011e36:	4806      	ldr	r0, [pc, #24]	; (8011e50 <RadioSetTxGenericConfig+0x268>)
+ 8011e38:	2302      	movs	r3, #2
+ 8011e3a:	f880 3038 	strb.w	r3, [r0, #56]	; 0x38
+ 8011e3e:	6823      	ldr	r3, [r4, #0]
+ 8011e40:	6483      	str	r3, [r0, #72]	; 0x48
+ 8011e42:	2316      	movs	r3, #22
+ 8011e44:	f880 304c 	strb.w	r3, [r0, #76]	; 0x4c
+ 8011e48:	3038      	adds	r0, #56	; 0x38
+ 8011e4a:	f001 f9b7 	bl	80131bc <SUBGRF_SetModulationParams>
+ 8011e4e:	e73b      	b.n	8011cc8 <RadioSetTxGenericConfig+0xe0>
+ 8011e50:	20002744 	.word	0x20002744
+ 8011e54:	20002728 	.word	0x20002728
+ 8011e58:	200027a0 	.word	0x200027a0
+ 8011e5c:	2000277c 	.word	0x2000277c
+ 8011e60:	20002752 	.word	0x20002752
+
+08011e64 <RadioSetRxGenericConfig>:
+ 8011e64:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8011e68:	2600      	movs	r6, #0
+ 8011e6a:	b086      	sub	sp, #24
+ 8011e6c:	461f      	mov	r7, r3
+ 8011e6e:	4614      	mov	r4, r2
+ 8011e70:	e9cd 6601 	strd	r6, r6, [sp, #4]
+ 8011e74:	4680      	mov	r8, r0
+ 8011e76:	460d      	mov	r5, r1
+ 8011e78:	f001 fbe9 	bl	801364e <RFW_DeInit>
+ 8011e7c:	42b4      	cmp	r4, r6
+ 8011e7e:	4c76      	ldr	r4, [pc, #472]	; (8012058 <RadioSetRxGenericConfig+0x1f4>)
+ 8011e80:	bf16      	itet	ne
+ 8011e82:	2301      	movne	r3, #1
+ 8011e84:	4633      	moveq	r3, r6
+ 8011e86:	4637      	movne	r7, r6
+ 8011e88:	7063      	strb	r3, [r4, #1]
+ 8011e8a:	f1b8 0f00 	cmp.w	r8, #0
+ 8011e8e:	d006      	beq.n	8011e9e <RadioSetRxGenericConfig+0x3a>
+ 8011e90:	f1b8 0f01 	cmp.w	r8, #1
+ 8011e94:	d07c      	beq.n	8011f90 <RadioSetRxGenericConfig+0x12c>
+ 8011e96:	2000      	movs	r0, #0
+ 8011e98:	b006      	add	sp, #24
+ 8011e9a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 8011e9e:	68ab      	ldr	r3, [r5, #8]
+ 8011ea0:	2b00      	cmp	r3, #0
+ 8011ea2:	f000 80d6 	beq.w	8012052 <RadioSetRxGenericConfig+0x1ee>
+ 8011ea6:	68eb      	ldr	r3, [r5, #12]
+ 8011ea8:	2b00      	cmp	r3, #0
+ 8011eaa:	f000 80d2 	beq.w	8012052 <RadioSetRxGenericConfig+0x1ee>
+ 8011eae:	7faa      	ldrb	r2, [r5, #30]
+ 8011eb0:	2a08      	cmp	r2, #8
+ 8011eb2:	f200 80ce 	bhi.w	8012052 <RadioSetRxGenericConfig+0x1ee>
+ 8011eb6:	6929      	ldr	r1, [r5, #16]
+ 8011eb8:	a801      	add	r0, sp, #4
+ 8011eba:	f001 fd91 	bl	80139e0 <UTIL_MEM_cpy_8>
+ 8011ebe:	6828      	ldr	r0, [r5, #0]
+ 8011ec0:	3800      	subs	r0, #0
+ 8011ec2:	bf18      	it	ne
+ 8011ec4:	2001      	movne	r0, #1
+ 8011ec6:	f000 ffd9 	bl	8012e7c <SUBGRF_SetStopRxTimerOnPreambleDetect>
+ 8011eca:	f884 8038 	strb.w	r8, [r4, #56]	; 0x38
+ 8011ece:	68ab      	ldr	r3, [r5, #8]
+ 8011ed0:	63e3      	str	r3, [r4, #60]	; 0x3c
+ 8011ed2:	f895 3020 	ldrb.w	r3, [r5, #32]
+ 8011ed6:	f884 3044 	strb.w	r3, [r4, #68]	; 0x44
+ 8011eda:	6868      	ldr	r0, [r5, #4]
+ 8011edc:	f001 fb5a 	bl	8013594 <SUBGRF_GetFskBandwidthRegValue>
+ 8011ee0:	f884 800e 	strb.w	r8, [r4, #14]
+ 8011ee4:	f884 0045 	strb.w	r0, [r4, #69]	; 0x45
+ 8011ee8:	68eb      	ldr	r3, [r5, #12]
+ 8011eea:	00db      	lsls	r3, r3, #3
+ 8011eec:	8223      	strh	r3, [r4, #16]
+ 8011eee:	7feb      	ldrb	r3, [r5, #31]
+ 8011ef0:	74a3      	strb	r3, [r4, #18]
+ 8011ef2:	7fab      	ldrb	r3, [r5, #30]
+ 8011ef4:	00db      	lsls	r3, r3, #3
+ 8011ef6:	74e3      	strb	r3, [r4, #19]
+ 8011ef8:	f895 3021 	ldrb.w	r3, [r5, #33]	; 0x21
+ 8011efc:	7523      	strb	r3, [r4, #20]
+ 8011efe:	f895 3022 	ldrb.w	r3, [r5, #34]	; 0x22
+ 8011f02:	2b00      	cmp	r3, #0
+ 8011f04:	d13e      	bne.n	8011f84 <RadioSetRxGenericConfig+0x120>
+ 8011f06:	7d2a      	ldrb	r2, [r5, #20]
+ 8011f08:	f895 1024 	ldrb.w	r1, [r5, #36]	; 0x24
+ 8011f0c:	75a2      	strb	r2, [r4, #22]
+ 8011f0e:	2902      	cmp	r1, #2
+ 8011f10:	f895 2023 	ldrb.w	r2, [r5, #35]	; 0x23
+ 8011f14:	d001      	beq.n	8011f1a <RadioSetRxGenericConfig+0xb6>
+ 8011f16:	2b02      	cmp	r3, #2
+ 8011f18:	d136      	bne.n	8011f88 <RadioSetRxGenericConfig+0x124>
+ 8011f1a:	f102 030f 	add.w	r3, r2, #15
+ 8011f1e:	b2db      	uxtb	r3, r3
+ 8011f20:	2b01      	cmp	r3, #1
+ 8011f22:	d902      	bls.n	8011f2a <RadioSetRxGenericConfig+0xc6>
+ 8011f24:	2a01      	cmp	r2, #1
+ 8011f26:	f040 8094 	bne.w	8012052 <RadioSetRxGenericConfig+0x1ee>
+ 8011f2a:	2300      	movs	r3, #0
+ 8011f2c:	f88d 3014 	strb.w	r3, [sp, #20]
+ 8011f30:	4b4a      	ldr	r3, [pc, #296]	; (801205c <RadioSetRxGenericConfig+0x1f8>)
+ 8011f32:	4a4b      	ldr	r2, [pc, #300]	; (8012060 <RadioSetRxGenericConfig+0x1fc>)
+ 8011f34:	6819      	ldr	r1, [r3, #0]
+ 8011f36:	9504      	str	r5, [sp, #16]
+ 8011f38:	a803      	add	r0, sp, #12
+ 8011f3a:	f001 fb85 	bl	8013648 <RFW_Init>
+ 8011f3e:	2800      	cmp	r0, #0
+ 8011f40:	f040 8087 	bne.w	8012052 <RadioSetRxGenericConfig+0x1ee>
+ 8011f44:	2301      	movs	r3, #1
+ 8011f46:	7620      	strb	r0, [r4, #24]
+ 8011f48:	75e3      	strb	r3, [r4, #23]
+ 8011f4a:	7560      	strb	r0, [r4, #21]
+ 8011f4c:	f7ff fd06 	bl	801195c <RadioStandby>
+ 8011f50:	2000      	movs	r0, #0
+ 8011f52:	f7ff fe23 	bl	8011b9c <RadioSetModem>
+ 8011f56:	4843      	ldr	r0, [pc, #268]	; (8012064 <RadioSetRxGenericConfig+0x200>)
+ 8011f58:	f001 f930 	bl	80131bc <SUBGRF_SetModulationParams>
+ 8011f5c:	4842      	ldr	r0, [pc, #264]	; (8012068 <RadioSetRxGenericConfig+0x204>)
+ 8011f5e:	f001 f999 	bl	8013294 <SUBGRF_SetPacketParams>
+ 8011f62:	a801      	add	r0, sp, #4
+ 8011f64:	f000 fe2e 	bl	8012bc4 <SUBGRF_SetSyncWord>
+ 8011f68:	8ba8      	ldrh	r0, [r5, #28]
+ 8011f6a:	f000 fdff 	bl	8012b6c <SUBGRF_SetWhiteningSeed>
+ 8011f6e:	8b28      	ldrh	r0, [r5, #24]
+ 8011f70:	f000 fe44 	bl	8012bfc <SUBGRF_SetCrcPolynomial>
+ 8011f74:	f44f 53fa 	mov.w	r3, #8000	; 0x1f40
+ 8011f78:	68aa      	ldr	r2, [r5, #8]
+ 8011f7a:	437b      	muls	r3, r7
+ 8011f7c:	fbb3 f3f2 	udiv	r3, r3, r2
+ 8011f80:	60a3      	str	r3, [r4, #8]
+ 8011f82:	e788      	b.n	8011e96 <RadioSetRxGenericConfig+0x32>
+ 8011f84:	22ff      	movs	r2, #255	; 0xff
+ 8011f86:	e7bf      	b.n	8011f08 <RadioSetRxGenericConfig+0xa4>
+ 8011f88:	75e2      	strb	r2, [r4, #23]
+ 8011f8a:	7621      	strb	r1, [r4, #24]
+ 8011f8c:	7563      	strb	r3, [r4, #21]
+ 8011f8e:	e7dd      	b.n	8011f4c <RadioSetRxGenericConfig+0xe8>
+ 8011f90:	8e2b      	ldrh	r3, [r5, #48]	; 0x30
+ 8011f92:	2b00      	cmp	r3, #0
+ 8011f94:	d05d      	beq.n	8012052 <RadioSetRxGenericConfig+0x1ee>
+ 8011f96:	f895 3032 	ldrb.w	r3, [r5, #50]	; 0x32
+ 8011f9a:	6aa8      	ldr	r0, [r5, #40]	; 0x28
+ 8011f9c:	2b01      	cmp	r3, #1
+ 8011f9e:	bf0c      	ite	eq
+ 8011fa0:	f895 8014 	ldrbeq.w	r8, [r5, #20]
+ 8011fa4:	f04f 08ff 	movne.w	r8, #255	; 0xff
+ 8011fa8:	3800      	subs	r0, #0
+ 8011faa:	bf18      	it	ne
+ 8011fac:	2001      	movne	r0, #1
+ 8011fae:	f000 ff65 	bl	8012e7c <SUBGRF_SetStopRxTimerOnPreambleDetect>
+ 8011fb2:	b2f8      	uxtb	r0, r7
+ 8011fb4:	f000 ff6e 	bl	8012e94 <SUBGRF_SetLoRaSymbNumTimeout>
+ 8011fb8:	2101      	movs	r1, #1
+ 8011fba:	f884 1038 	strb.w	r1, [r4, #56]	; 0x38
+ 8011fbe:	f895 202c 	ldrb.w	r2, [r5, #44]	; 0x2c
+ 8011fc2:	f884 2050 	strb.w	r2, [r4, #80]	; 0x50
+ 8011fc6:	f895 302d 	ldrb.w	r3, [r5, #45]	; 0x2d
+ 8011fca:	f884 3051 	strb.w	r3, [r4, #81]	; 0x51
+ 8011fce:	f895 302e 	ldrb.w	r3, [r5, #46]	; 0x2e
+ 8011fd2:	f884 3052 	strb.w	r3, [r4, #82]	; 0x52
+ 8011fd6:	f895 302f 	ldrb.w	r3, [r5, #47]	; 0x2f
+ 8011fda:	428b      	cmp	r3, r1
+ 8011fdc:	d002      	beq.n	8011fe4 <RadioSetRxGenericConfig+0x180>
+ 8011fde:	2b02      	cmp	r3, #2
+ 8011fe0:	d003      	beq.n	8011fea <RadioSetRxGenericConfig+0x186>
+ 8011fe2:	b93b      	cbnz	r3, 8011ff4 <RadioSetRxGenericConfig+0x190>
+ 8011fe4:	f884 3053 	strb.w	r3, [r4, #83]	; 0x53
+ 8011fe8:	e004      	b.n	8011ff4 <RadioSetRxGenericConfig+0x190>
+ 8011fea:	3a0b      	subs	r2, #11
+ 8011fec:	2a01      	cmp	r2, #1
+ 8011fee:	d828      	bhi.n	8012042 <RadioSetRxGenericConfig+0x1de>
+ 8011ff0:	f884 1053 	strb.w	r1, [r4, #83]	; 0x53
+ 8011ff4:	8e2b      	ldrh	r3, [r5, #48]	; 0x30
+ 8011ff6:	83a3      	strh	r3, [r4, #28]
+ 8011ff8:	f895 3032 	ldrb.w	r3, [r5, #50]	; 0x32
+ 8011ffc:	77a3      	strb	r3, [r4, #30]
+ 8011ffe:	8eab      	ldrh	r3, [r5, #52]	; 0x34
+ 8012000:	8423      	strh	r3, [r4, #32]
+ 8012002:	2601      	movs	r6, #1
+ 8012004:	73a6      	strb	r6, [r4, #14]
+ 8012006:	f884 801f 	strb.w	r8, [r4, #31]
+ 801200a:	f7ff fca7 	bl	801195c <RadioStandby>
+ 801200e:	4630      	mov	r0, r6
+ 8012010:	f7ff fdc4 	bl	8011b9c <RadioSetModem>
+ 8012014:	4813      	ldr	r0, [pc, #76]	; (8012064 <RadioSetRxGenericConfig+0x200>)
+ 8012016:	f001 f8d1 	bl	80131bc <SUBGRF_SetModulationParams>
+ 801201a:	4813      	ldr	r0, [pc, #76]	; (8012068 <RadioSetRxGenericConfig+0x204>)
+ 801201c:	f001 f93a 	bl	8013294 <SUBGRF_SetPacketParams>
+ 8012020:	f894 3021 	ldrb.w	r3, [r4, #33]	; 0x21
+ 8012024:	42b3      	cmp	r3, r6
+ 8012026:	f240 7036 	movw	r0, #1846	; 0x736
+ 801202a:	d10c      	bne.n	8012046 <RadioSetRxGenericConfig+0x1e2>
+ 801202c:	f000 fd7a 	bl	8012b24 <SUBGRF_ReadRegister>
+ 8012030:	f000 01fb 	and.w	r1, r0, #251	; 0xfb
+ 8012034:	f240 7036 	movw	r0, #1846	; 0x736
+ 8012038:	f000 fd64 	bl	8012b04 <SUBGRF_WriteRegister>
+ 801203c:	f64f 73ff 	movw	r3, #65535	; 0xffff
+ 8012040:	e79e      	b.n	8011f80 <RadioSetRxGenericConfig+0x11c>
+ 8012042:	2300      	movs	r3, #0
+ 8012044:	e7ce      	b.n	8011fe4 <RadioSetRxGenericConfig+0x180>
+ 8012046:	f000 fd6d 	bl	8012b24 <SUBGRF_ReadRegister>
+ 801204a:	f040 0104 	orr.w	r1, r0, #4
+ 801204e:	b2c9      	uxtb	r1, r1
+ 8012050:	e7f0      	b.n	8012034 <RadioSetRxGenericConfig+0x1d0>
+ 8012052:	f04f 30ff 	mov.w	r0, #4294967295
+ 8012056:	e71f      	b.n	8011e98 <RadioSetRxGenericConfig+0x34>
+ 8012058:	20002744 	.word	0x20002744
+ 801205c:	20002728 	.word	0x20002728
+ 8012060:	2000272c 	.word	0x2000272c
+ 8012064:	2000277c 	.word	0x2000277c
+ 8012068:	20002752 	.word	0x20002752
+
+0801206c <RadioSetTxConfig>:
+ 801206c:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8012070:	b085      	sub	sp, #20
+ 8012072:	4682      	mov	sl, r0
+ 8012074:	9d0e      	ldr	r5, [sp, #56]	; 0x38
+ 8012076:	f8bd b040 	ldrh.w	fp, [sp, #64]	; 0x40
+ 801207a:	f89d 7044 	ldrb.w	r7, [sp, #68]	; 0x44
+ 801207e:	f89d 9048 	ldrb.w	r9, [sp, #72]	; 0x48
+ 8012082:	9201      	str	r2, [sp, #4]
+ 8012084:	4688      	mov	r8, r1
+ 8012086:	461e      	mov	r6, r3
+ 8012088:	f001 fae1 	bl	801364e <RFW_DeInit>
+ 801208c:	f1ba 0f01 	cmp.w	sl, #1
+ 8012090:	4c52      	ldr	r4, [pc, #328]	; (80121dc <RadioSetTxConfig+0x170>)
+ 8012092:	d054      	beq.n	801213e <RadioSetTxConfig+0xd2>
+ 8012094:	f1ba 0f04 	cmp.w	sl, #4
+ 8012098:	f000 8091 	beq.w	80121be <RadioSetTxConfig+0x152>
+ 801209c:	f1ba 0f00 	cmp.w	sl, #0
+ 80120a0:	d13a      	bne.n	8012118 <RadioSetTxConfig+0xac>
+ 80120a2:	220b      	movs	r2, #11
+ 80120a4:	4630      	mov	r0, r6
+ 80120a6:	f884 2044 	strb.w	r2, [r4, #68]	; 0x44
+ 80120aa:	f884 a038 	strb.w	sl, [r4, #56]	; 0x38
+ 80120ae:	63e5      	str	r5, [r4, #60]	; 0x3c
+ 80120b0:	f001 fa70 	bl	8013594 <SUBGRF_GetFskBandwidthRegValue>
+ 80120b4:	9b01      	ldr	r3, [sp, #4]
+ 80120b6:	6423      	str	r3, [r4, #64]	; 0x40
+ 80120b8:	ea4f 03cb 	mov.w	r3, fp, lsl #3
+ 80120bc:	f1b9 0f00 	cmp.w	r9, #0
+ 80120c0:	8223      	strh	r3, [r4, #16]
+ 80120c2:	f641 0304 	movw	r3, #6148	; 0x1804
+ 80120c6:	8263      	strh	r3, [r4, #18]
+ 80120c8:	bf14      	ite	ne
+ 80120ca:	23f2      	movne	r3, #242	; 0xf2
+ 80120cc:	2301      	moveq	r3, #1
+ 80120ce:	75e3      	strb	r3, [r4, #23]
+ 80120d0:	f087 0701 	eor.w	r7, r7, #1
+ 80120d4:	2301      	movs	r3, #1
+ 80120d6:	7623      	strb	r3, [r4, #24]
+ 80120d8:	f884 0045 	strb.w	r0, [r4, #69]	; 0x45
+ 80120dc:	f884 a00e 	strb.w	sl, [r4, #14]
+ 80120e0:	f884 a014 	strb.w	sl, [r4, #20]
+ 80120e4:	7567      	strb	r7, [r4, #21]
+ 80120e6:	f7ff fc39 	bl	801195c <RadioStandby>
+ 80120ea:	4650      	mov	r0, sl
+ 80120ec:	f7ff fd56 	bl	8011b9c <RadioSetModem>
+ 80120f0:	f104 0038 	add.w	r0, r4, #56	; 0x38
+ 80120f4:	f001 f862 	bl	80131bc <SUBGRF_SetModulationParams>
+ 80120f8:	f104 000e 	add.w	r0, r4, #14
+ 80120fc:	f001 f8ca 	bl	8013294 <SUBGRF_SetPacketParams>
+ 8012100:	4a37      	ldr	r2, [pc, #220]	; (80121e0 <RadioSetTxConfig+0x174>)
+ 8012102:	6810      	ldr	r0, [r2, #0]
+ 8012104:	6851      	ldr	r1, [r2, #4]
+ 8012106:	ab02      	add	r3, sp, #8
+ 8012108:	c303      	stmia	r3!, {r0, r1}
+ 801210a:	a802      	add	r0, sp, #8
+ 801210c:	f000 fd5a 	bl	8012bc4 <SUBGRF_SetSyncWord>
+ 8012110:	f240 10ff 	movw	r0, #511	; 0x1ff
+ 8012114:	f000 fd2a 	bl	8012b6c <SUBGRF_SetWhiteningSeed>
+ 8012118:	4640      	mov	r0, r8
+ 801211a:	f001 f9d9 	bl	80134d0 <SUBGRF_SetRfTxPower>
+ 801211e:	210e      	movs	r1, #14
+ 8012120:	f884 0056 	strb.w	r0, [r4, #86]	; 0x56
+ 8012124:	f640 101f 	movw	r0, #2335	; 0x91f
+ 8012128:	f000 fcec 	bl	8012b04 <SUBGRF_WriteRegister>
+ 801212c:	f894 0056 	ldrb.w	r0, [r4, #86]	; 0x56
+ 8012130:	f001 fa92 	bl	8013658 <RFW_SetAntSwitch>
+ 8012134:	9b16      	ldr	r3, [sp, #88]	; 0x58
+ 8012136:	6063      	str	r3, [r4, #4]
+ 8012138:	b005      	add	sp, #20
+ 801213a:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 801213e:	4929      	ldr	r1, [pc, #164]	; (80121e4 <RadioSetTxConfig+0x178>)
+ 8012140:	f884 a038 	strb.w	sl, [r4, #56]	; 0x38
+ 8012144:	b2ea      	uxtb	r2, r5
+ 8012146:	5d89      	ldrb	r1, [r1, r6]
+ 8012148:	f884 2050 	strb.w	r2, [r4, #80]	; 0x50
+ 801214c:	bb76      	cbnz	r6, 80121ac <RadioSetTxConfig+0x140>
+ 801214e:	3d0b      	subs	r5, #11
+ 8012150:	2d01      	cmp	r5, #1
+ 8012152:	bf8c      	ite	hi
+ 8012154:	2500      	movhi	r5, #0
+ 8012156:	2501      	movls	r5, #1
+ 8012158:	3a05      	subs	r2, #5
+ 801215a:	2a01      	cmp	r2, #1
+ 801215c:	d804      	bhi.n	8012168 <RadioSetTxConfig+0xfc>
+ 801215e:	f1bb 0f0c 	cmp.w	fp, #12
+ 8012162:	bf38      	it	cc
+ 8012164:	f04f 0b0c 	movcc.w	fp, #12
+ 8012168:	4b1f      	ldr	r3, [pc, #124]	; (80121e8 <RadioSetTxConfig+0x17c>)
+ 801216a:	f89d 203c 	ldrb.w	r2, [sp, #60]	; 0x3c
+ 801216e:	781b      	ldrb	r3, [r3, #0]
+ 8012170:	f884 5053 	strb.w	r5, [r4, #83]	; 0x53
+ 8012174:	77e3      	strb	r3, [r4, #31]
+ 8012176:	2501      	movs	r5, #1
+ 8012178:	f89d 3054 	ldrb.w	r3, [sp, #84]	; 0x54
+ 801217c:	f884 1051 	strb.w	r1, [r4, #81]	; 0x51
+ 8012180:	f884 2052 	strb.w	r2, [r4, #82]	; 0x52
+ 8012184:	f884 3021 	strb.w	r3, [r4, #33]	; 0x21
+ 8012188:	73a5      	strb	r5, [r4, #14]
+ 801218a:	f8a4 b01c 	strh.w	fp, [r4, #28]
+ 801218e:	77a7      	strb	r7, [r4, #30]
+ 8012190:	f884 9020 	strb.w	r9, [r4, #32]
+ 8012194:	f7ff fbe2 	bl	801195c <RadioStandby>
+ 8012198:	4628      	mov	r0, r5
+ 801219a:	f7ff fcff 	bl	8011b9c <RadioSetModem>
+ 801219e:	4813      	ldr	r0, [pc, #76]	; (80121ec <RadioSetTxConfig+0x180>)
+ 80121a0:	f001 f80c 	bl	80131bc <SUBGRF_SetModulationParams>
+ 80121a4:	4812      	ldr	r0, [pc, #72]	; (80121f0 <RadioSetTxConfig+0x184>)
+ 80121a6:	f001 f875 	bl	8013294 <SUBGRF_SetPacketParams>
+ 80121aa:	e7b5      	b.n	8012118 <RadioSetTxConfig+0xac>
+ 80121ac:	2e01      	cmp	r6, #1
+ 80121ae:	d104      	bne.n	80121ba <RadioSetTxConfig+0x14e>
+ 80121b0:	f1a5 030c 	sub.w	r3, r5, #12
+ 80121b4:	425d      	negs	r5, r3
+ 80121b6:	415d      	adcs	r5, r3
+ 80121b8:	e7ce      	b.n	8012158 <RadioSetTxConfig+0xec>
+ 80121ba:	2500      	movs	r5, #0
+ 80121bc:	e7cc      	b.n	8012158 <RadioSetTxConfig+0xec>
+ 80121be:	4650      	mov	r0, sl
+ 80121c0:	f7ff fcec 	bl	8011b9c <RadioSetModem>
+ 80121c4:	2302      	movs	r3, #2
+ 80121c6:	f884 3038 	strb.w	r3, [r4, #56]	; 0x38
+ 80121ca:	f104 0038 	add.w	r0, r4, #56	; 0x38
+ 80121ce:	2316      	movs	r3, #22
+ 80121d0:	64a5      	str	r5, [r4, #72]	; 0x48
+ 80121d2:	f884 304c 	strb.w	r3, [r4, #76]	; 0x4c
+ 80121d6:	f000 fff1 	bl	80131bc <SUBGRF_SetModulationParams>
+ 80121da:	e79d      	b.n	8012118 <RadioSetTxConfig+0xac>
+ 80121dc:	20002744 	.word	0x20002744
+ 80121e0:	08014424 	.word	0x08014424
+ 80121e4:	0801574e 	.word	0x0801574e
+ 80121e8:	200008c0 	.word	0x200008c0
+ 80121ec:	2000277c 	.word	0x2000277c
+ 80121f0:	20002752 	.word	0x20002752
+
+080121f4 <RadioSetRxConfig>:
+ 80121f4:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 80121f8:	b087      	sub	sp, #28
+ 80121fa:	f8df b2b4 	ldr.w	fp, [pc, #692]	; 80124b0 <RadioSetRxConfig+0x2bc>
+ 80121fe:	f89d a064 	ldrb.w	sl, [sp, #100]	; 0x64
+ 8012202:	f89d 904c 	ldrb.w	r9, [sp, #76]	; 0x4c
+ 8012206:	9302      	str	r3, [sp, #8]
+ 8012208:	4614      	mov	r4, r2
+ 801220a:	f89d 3054 	ldrb.w	r3, [sp, #84]	; 0x54
+ 801220e:	f89d 2050 	ldrb.w	r2, [sp, #80]	; 0x50
+ 8012212:	f8bd 8048 	ldrh.w	r8, [sp, #72]	; 0x48
+ 8012216:	9203      	str	r2, [sp, #12]
+ 8012218:	4605      	mov	r5, r0
+ 801221a:	f88b a001 	strb.w	sl, [fp, #1]
+ 801221e:	f8bd 6044 	ldrh.w	r6, [sp, #68]	; 0x44
+ 8012222:	9301      	str	r3, [sp, #4]
+ 8012224:	460f      	mov	r7, r1
+ 8012226:	f001 fa12 	bl	801364e <RFW_DeInit>
+ 801222a:	f1ba 0f00 	cmp.w	sl, #0
+ 801222e:	bf18      	it	ne
+ 8012230:	f04f 0800 	movne.w	r8, #0
+ 8012234:	f8df a27c 	ldr.w	sl, [pc, #636]	; 80124b4 <RadioSetRxConfig+0x2c0>
+ 8012238:	9a03      	ldr	r2, [sp, #12]
+ 801223a:	f1b9 0f00 	cmp.w	r9, #0
+ 801223e:	bf08      	it	eq
+ 8012240:	22ff      	moveq	r2, #255	; 0xff
+ 8012242:	2d01      	cmp	r5, #1
+ 8012244:	f88a 2000 	strb.w	r2, [sl]
+ 8012248:	f000 80c8 	beq.w	80123dc <RadioSetRxConfig+0x1e8>
+ 801224c:	2d05      	cmp	r5, #5
+ 801224e:	d048      	beq.n	80122e2 <RadioSetRxConfig+0xee>
+ 8012250:	2d00      	cmp	r5, #0
+ 8012252:	f040 80c0 	bne.w	80123d6 <RadioSetRxConfig+0x1e2>
+ 8012256:	4628      	mov	r0, r5
+ 8012258:	f000 fe10 	bl	8012e7c <SUBGRF_SetStopRxTimerOnPreambleDetect>
+ 801225c:	220b      	movs	r2, #11
+ 801225e:	4638      	mov	r0, r7
+ 8012260:	f88b 2044 	strb.w	r2, [fp, #68]	; 0x44
+ 8012264:	f88b 5038 	strb.w	r5, [fp, #56]	; 0x38
+ 8012268:	f8cb 403c 	str.w	r4, [fp, #60]	; 0x3c
+ 801226c:	f001 f992 	bl	8013594 <SUBGRF_GetFskBandwidthRegValue>
+ 8012270:	9b01      	ldr	r3, [sp, #4]
+ 8012272:	f88b 0045 	strb.w	r0, [fp, #69]	; 0x45
+ 8012276:	f641 0204 	movw	r2, #6148	; 0x1804
+ 801227a:	2b00      	cmp	r3, #0
+ 801227c:	f8ab 2012 	strh.w	r2, [fp, #18]
+ 8012280:	f89a 2000 	ldrb.w	r2, [sl]
+ 8012284:	f88b 2016 	strb.w	r2, [fp, #22]
+ 8012288:	bf14      	ite	ne
+ 801228a:	22f2      	movne	r2, #242	; 0xf2
+ 801228c:	2201      	moveq	r2, #1
+ 801228e:	f88b 2017 	strb.w	r2, [fp, #23]
+ 8012292:	00f6      	lsls	r6, r6, #3
+ 8012294:	2201      	movs	r2, #1
+ 8012296:	f089 0901 	eor.w	r9, r9, #1
+ 801229a:	f88b 2018 	strb.w	r2, [fp, #24]
+ 801229e:	f88b 500e 	strb.w	r5, [fp, #14]
+ 80122a2:	f8ab 6010 	strh.w	r6, [fp, #16]
+ 80122a6:	f88b 5014 	strb.w	r5, [fp, #20]
+ 80122aa:	f88b 9015 	strb.w	r9, [fp, #21]
+ 80122ae:	f7ff fb55 	bl	801195c <RadioStandby>
+ 80122b2:	4628      	mov	r0, r5
+ 80122b4:	f7ff fc72 	bl	8011b9c <RadioSetModem>
+ 80122b8:	f10b 0038 	add.w	r0, fp, #56	; 0x38
+ 80122bc:	f000 ff7e 	bl	80131bc <SUBGRF_SetModulationParams>
+ 80122c0:	f10b 000e 	add.w	r0, fp, #14
+ 80122c4:	f000 ffe6 	bl	8013294 <SUBGRF_SetPacketParams>
+ 80122c8:	497b      	ldr	r1, [pc, #492]	; (80124b8 <RadioSetRxConfig+0x2c4>)
+ 80122ca:	6808      	ldr	r0, [r1, #0]
+ 80122cc:	6849      	ldr	r1, [r1, #4]
+ 80122ce:	aa04      	add	r2, sp, #16
+ 80122d0:	c203      	stmia	r2!, {r0, r1}
+ 80122d2:	a804      	add	r0, sp, #16
+ 80122d4:	f000 fc76 	bl	8012bc4 <SUBGRF_SetSyncWord>
+ 80122d8:	f240 10ff 	movw	r0, #511	; 0x1ff
+ 80122dc:	f000 fc46 	bl	8012b6c <SUBGRF_SetWhiteningSeed>
+ 80122e0:	e071      	b.n	80123c6 <RadioSetRxConfig+0x1d2>
+ 80122e2:	2001      	movs	r0, #1
+ 80122e4:	f000 fdca 	bl	8012e7c <SUBGRF_SetStopRxTimerOnPreambleDetect>
+ 80122e8:	2209      	movs	r2, #9
+ 80122ea:	f04f 0900 	mov.w	r9, #0
+ 80122ee:	f88b 2044 	strb.w	r2, [fp, #68]	; 0x44
+ 80122f2:	4638      	mov	r0, r7
+ 80122f4:	f44f 7248 	mov.w	r2, #800	; 0x320
+ 80122f8:	f8cb 2040 	str.w	r2, [fp, #64]	; 0x40
+ 80122fc:	f88b 9038 	strb.w	r9, [fp, #56]	; 0x38
+ 8012300:	f8cb 403c 	str.w	r4, [fp, #60]	; 0x3c
+ 8012304:	f001 f946 	bl	8013594 <SUBGRF_GetFskBandwidthRegValue>
+ 8012308:	f44f 5280 	mov.w	r2, #4096	; 0x1000
+ 801230c:	f8ab 2012 	strh.w	r2, [fp, #18]
+ 8012310:	f89a 2000 	ldrb.w	r2, [sl]
+ 8012314:	f88b 0045 	strb.w	r0, [fp, #69]	; 0x45
+ 8012318:	f88b 2016 	strb.w	r2, [fp, #22]
+ 801231c:	4628      	mov	r0, r5
+ 801231e:	2201      	movs	r2, #1
+ 8012320:	00f6      	lsls	r6, r6, #3
+ 8012322:	f88b 2017 	strb.w	r2, [fp, #23]
+ 8012326:	f88b 900e 	strb.w	r9, [fp, #14]
+ 801232a:	f8ab 6010 	strh.w	r6, [fp, #16]
+ 801232e:	f8ab 9014 	strh.w	r9, [fp, #20]
+ 8012332:	f88b 9018 	strb.w	r9, [fp, #24]
+ 8012336:	f7ff fc31 	bl	8011b9c <RadioSetModem>
+ 801233a:	f10b 0038 	add.w	r0, fp, #56	; 0x38
+ 801233e:	f000 ff3d 	bl	80131bc <SUBGRF_SetModulationParams>
+ 8012342:	f10b 000e 	add.w	r0, fp, #14
+ 8012346:	f000 ffa5 	bl	8013294 <SUBGRF_SetPacketParams>
+ 801234a:	495b      	ldr	r1, [pc, #364]	; (80124b8 <RadioSetRxConfig+0x2c4>)
+ 801234c:	6888      	ldr	r0, [r1, #8]
+ 801234e:	68c9      	ldr	r1, [r1, #12]
+ 8012350:	aa04      	add	r2, sp, #16
+ 8012352:	c203      	stmia	r2!, {r0, r1}
+ 8012354:	a804      	add	r0, sp, #16
+ 8012356:	f000 fc35 	bl	8012bc4 <SUBGRF_SetSyncWord>
+ 801235a:	f240 10ff 	movw	r0, #511	; 0x1ff
+ 801235e:	f000 fc05 	bl	8012b6c <SUBGRF_SetWhiteningSeed>
+ 8012362:	f640 00b8 	movw	r0, #2232	; 0x8b8
+ 8012366:	f000 fbdd 	bl	8012b24 <SUBGRF_ReadRegister>
+ 801236a:	f000 01ef 	and.w	r1, r0, #239	; 0xef
+ 801236e:	f640 00b8 	movw	r0, #2232	; 0x8b8
+ 8012372:	f000 fbc7 	bl	8012b04 <SUBGRF_WriteRegister>
+ 8012376:	2104      	movs	r1, #4
+ 8012378:	f640 00b9 	movw	r0, #2233	; 0x8b9
+ 801237c:	f000 fbc2 	bl	8012b04 <SUBGRF_WriteRegister>
+ 8012380:	f640 009b 	movw	r0, #2203	; 0x89b
+ 8012384:	f000 fbce 	bl	8012b24 <SUBGRF_ReadRegister>
+ 8012388:	f000 01e3 	and.w	r1, r0, #227	; 0xe3
+ 801238c:	f041 0108 	orr.w	r1, r1, #8
+ 8012390:	f640 009b 	movw	r0, #2203	; 0x89b
+ 8012394:	f000 fbb6 	bl	8012b04 <SUBGRF_WriteRegister>
+ 8012398:	f240 60d1 	movw	r0, #1745	; 0x6d1
+ 801239c:	f000 fbc2 	bl	8012b24 <SUBGRF_ReadRegister>
+ 80123a0:	f040 0118 	orr.w	r1, r0, #24
+ 80123a4:	b2c9      	uxtb	r1, r1
+ 80123a6:	f240 60d1 	movw	r0, #1745	; 0x6d1
+ 80123aa:	f000 fbab 	bl	8012b04 <SUBGRF_WriteRegister>
+ 80123ae:	f240 60ac 	movw	r0, #1708	; 0x6ac
+ 80123b2:	f000 fbb7 	bl	8012b24 <SUBGRF_ReadRegister>
+ 80123b6:	f000 018f 	and.w	r1, r0, #143	; 0x8f
+ 80123ba:	f041 0150 	orr.w	r1, r1, #80	; 0x50
+ 80123be:	f240 60ac 	movw	r0, #1708	; 0x6ac
+ 80123c2:	f000 fb9f 	bl	8012b04 <SUBGRF_WriteRegister>
+ 80123c6:	f44f 52fa 	mov.w	r2, #8000	; 0x1f40
+ 80123ca:	fb02 f208 	mul.w	r2, r2, r8
+ 80123ce:	fbb2 f2f4 	udiv	r2, r2, r4
+ 80123d2:	f8cb 2008 	str.w	r2, [fp, #8]
+ 80123d6:	b007      	add	sp, #28
+ 80123d8:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 80123dc:	2000      	movs	r0, #0
+ 80123de:	f000 fd4d 	bl	8012e7c <SUBGRF_SetStopRxTimerOnPreambleDetect>
+ 80123e2:	4936      	ldr	r1, [pc, #216]	; (80124bc <RadioSetRxConfig+0x2c8>)
+ 80123e4:	f88b 5038 	strb.w	r5, [fp, #56]	; 0x38
+ 80123e8:	b2e2      	uxtb	r2, r4
+ 80123ea:	5dc9      	ldrb	r1, [r1, r7]
+ 80123ec:	f88b 2050 	strb.w	r2, [fp, #80]	; 0x50
+ 80123f0:	2f00      	cmp	r7, #0
+ 80123f2:	d14d      	bne.n	8012490 <RadioSetRxConfig+0x29c>
+ 80123f4:	3c0b      	subs	r4, #11
+ 80123f6:	2c01      	cmp	r4, #1
+ 80123f8:	bf8c      	ite	hi
+ 80123fa:	2400      	movhi	r4, #0
+ 80123fc:	2401      	movls	r4, #1
+ 80123fe:	3a05      	subs	r2, #5
+ 8012400:	2a01      	cmp	r2, #1
+ 8012402:	d802      	bhi.n	801240a <RadioSetRxConfig+0x216>
+ 8012404:	2e0c      	cmp	r6, #12
+ 8012406:	bf38      	it	cc
+ 8012408:	260c      	movcc	r6, #12
+ 801240a:	9b02      	ldr	r3, [sp, #8]
+ 801240c:	f89a 2000 	ldrb.w	r2, [sl]
+ 8012410:	f88b 3052 	strb.w	r3, [fp, #82]	; 0x52
+ 8012414:	f88b 4053 	strb.w	r4, [fp, #83]	; 0x53
+ 8012418:	9b01      	ldr	r3, [sp, #4]
+ 801241a:	f88b 201f 	strb.w	r2, [fp, #31]
+ 801241e:	2401      	movs	r4, #1
+ 8012420:	f89d 2060 	ldrb.w	r2, [sp, #96]	; 0x60
+ 8012424:	f88b 2021 	strb.w	r2, [fp, #33]	; 0x21
+ 8012428:	f88b 1051 	strb.w	r1, [fp, #81]	; 0x51
+ 801242c:	f88b 3020 	strb.w	r3, [fp, #32]
+ 8012430:	f88b 400e 	strb.w	r4, [fp, #14]
+ 8012434:	f8ab 601c 	strh.w	r6, [fp, #28]
+ 8012438:	f88b 901e 	strb.w	r9, [fp, #30]
+ 801243c:	f7ff fa8e 	bl	801195c <RadioStandby>
+ 8012440:	4620      	mov	r0, r4
+ 8012442:	f7ff fbab 	bl	8011b9c <RadioSetModem>
+ 8012446:	481e      	ldr	r0, [pc, #120]	; (80124c0 <RadioSetRxConfig+0x2cc>)
+ 8012448:	f000 feb8 	bl	80131bc <SUBGRF_SetModulationParams>
+ 801244c:	481d      	ldr	r0, [pc, #116]	; (80124c4 <RadioSetRxConfig+0x2d0>)
+ 801244e:	f000 ff21 	bl	8013294 <SUBGRF_SetPacketParams>
+ 8012452:	fa5f f088 	uxtb.w	r0, r8
+ 8012456:	f000 fd1d 	bl	8012e94 <SUBGRF_SetLoRaSymbNumTimeout>
+ 801245a:	f640 00a3 	movw	r0, #2211	; 0x8a3
+ 801245e:	f000 fb61 	bl	8012b24 <SUBGRF_ReadRegister>
+ 8012462:	ea00 0104 	and.w	r1, r0, r4
+ 8012466:	f640 00a3 	movw	r0, #2211	; 0x8a3
+ 801246a:	f000 fb4b 	bl	8012b04 <SUBGRF_WriteRegister>
+ 801246e:	f89b 2021 	ldrb.w	r2, [fp, #33]	; 0x21
+ 8012472:	42a2      	cmp	r2, r4
+ 8012474:	f240 7036 	movw	r0, #1846	; 0x736
+ 8012478:	d113      	bne.n	80124a2 <RadioSetRxConfig+0x2ae>
+ 801247a:	f000 fb53 	bl	8012b24 <SUBGRF_ReadRegister>
+ 801247e:	f000 01fb 	and.w	r1, r0, #251	; 0xfb
+ 8012482:	f240 7036 	movw	r0, #1846	; 0x736
+ 8012486:	f000 fb3d 	bl	8012b04 <SUBGRF_WriteRegister>
+ 801248a:	f64f 72ff 	movw	r2, #65535	; 0xffff
+ 801248e:	e7a0      	b.n	80123d2 <RadioSetRxConfig+0x1de>
+ 8012490:	2f01      	cmp	r7, #1
+ 8012492:	d104      	bne.n	801249e <RadioSetRxConfig+0x2aa>
+ 8012494:	f1a4 030c 	sub.w	r3, r4, #12
+ 8012498:	425c      	negs	r4, r3
+ 801249a:	415c      	adcs	r4, r3
+ 801249c:	e7af      	b.n	80123fe <RadioSetRxConfig+0x20a>
+ 801249e:	2400      	movs	r4, #0
+ 80124a0:	e7ad      	b.n	80123fe <RadioSetRxConfig+0x20a>
+ 80124a2:	f000 fb3f 	bl	8012b24 <SUBGRF_ReadRegister>
+ 80124a6:	f040 0104 	orr.w	r1, r0, #4
+ 80124aa:	b2c9      	uxtb	r1, r1
+ 80124ac:	e7e9      	b.n	8012482 <RadioSetRxConfig+0x28e>
+ 80124ae:	bf00      	nop
+ 80124b0:	20002744 	.word	0x20002744
+ 80124b4:	200008c0 	.word	0x200008c0
+ 80124b8:	08014424 	.word	0x08014424
+ 80124bc:	0801574e 	.word	0x0801574e
+ 80124c0:	2000277c 	.word	0x2000277c
+ 80124c4:	20002752 	.word	0x20002752
+
+080124c8 <RadioIsChannelFree>:
+ 80124c8:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 80124ca:	b08b      	sub	sp, #44	; 0x2c
+ 80124cc:	460d      	mov	r5, r1
+ 80124ce:	4604      	mov	r4, r0
+ 80124d0:	4617      	mov	r7, r2
+ 80124d2:	461e      	mov	r6, r3
+ 80124d4:	f7ff fa42 	bl	801195c <RadioStandby>
+ 80124d8:	2000      	movs	r0, #0
+ 80124da:	f7ff fb5f 	bl	8011b9c <RadioSetModem>
+ 80124de:	4620      	mov	r0, r4
+ 80124e0:	f000 fdbe 	bl	8013060 <SUBGRF_SetRfFrequency>
+ 80124e4:	2400      	movs	r4, #0
+ 80124e6:	2301      	movs	r3, #1
+ 80124e8:	e9cd 4308 	strd	r4, r3, [sp, #32]
+ 80124ec:	2303      	movs	r3, #3
+ 80124ee:	f44f 7216 	mov.w	r2, #600	; 0x258
+ 80124f2:	4629      	mov	r1, r5
+ 80124f4:	4620      	mov	r0, r4
+ 80124f6:	e9cd 4406 	strd	r4, r4, [sp, #24]
+ 80124fa:	e9cd 4404 	strd	r4, r4, [sp, #16]
+ 80124fe:	e9cd 4402 	strd	r4, r4, [sp, #8]
+ 8012502:	e9cd 5300 	strd	r5, r3, [sp]
+ 8012506:	4623      	mov	r3, r4
+ 8012508:	f7ff fe74 	bl	80121f4 <RadioSetRxConfig>
+ 801250c:	4620      	mov	r0, r4
+ 801250e:	f7ff fa7d 	bl	8011a0c <RadioRx>
+ 8012512:	f7ff fa35 	bl	8011980 <RadioGetWakeupTime>
+ 8012516:	f7f0 fb21 	bl	8002b5c <HAL_Delay>
+ 801251a:	f001 fc43 	bl	8013da4 <UTIL_TIMER_GetCurrentTime>
+ 801251e:	4604      	mov	r4, r0
+ 8012520:	4620      	mov	r0, r4
+ 8012522:	f001 fc49 	bl	8013db8 <UTIL_TIMER_GetElapsedTime>
+ 8012526:	42b0      	cmp	r0, r6
+ 8012528:	d305      	bcc.n	8012536 <RadioIsChannelFree+0x6e>
+ 801252a:	2401      	movs	r4, #1
+ 801252c:	f7ff fa16 	bl	801195c <RadioStandby>
+ 8012530:	4620      	mov	r0, r4
+ 8012532:	b00b      	add	sp, #44	; 0x2c
+ 8012534:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8012536:	f000 ff2f 	bl	8013398 <SUBGRF_GetRssiInst>
+ 801253a:	b200      	sxth	r0, r0
+ 801253c:	4287      	cmp	r7, r0
+ 801253e:	daef      	bge.n	8012520 <RadioIsChannelFree+0x58>
+ 8012540:	2400      	movs	r4, #0
+ 8012542:	e7f3      	b.n	801252c <RadioIsChannelFree+0x64>
+
+08012544 <RadioSend>:
+ 8012544:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
+ 8012546:	2300      	movs	r3, #0
+ 8012548:	460c      	mov	r4, r1
+ 801254a:	f240 2101 	movw	r1, #513	; 0x201
+ 801254e:	461a      	mov	r2, r3
+ 8012550:	4606      	mov	r6, r0
+ 8012552:	4608      	mov	r0, r1
+ 8012554:	f000 fd1e 	bl	8012f94 <SUBGRF_SetDioIrqParams>
+ 8012558:	4b64      	ldr	r3, [pc, #400]	; (80126ec <RadioSend+0x1a8>)
+ 801255a:	4d65      	ldr	r5, [pc, #404]	; (80126f0 <RadioSend+0x1ac>)
+ 801255c:	f44f 5200 	mov.w	r2, #8192	; 0x2000
+ 8012560:	619a      	str	r2, [r3, #24]
+ 8012562:	f895 0056 	ldrb.w	r0, [r5, #86]	; 0x56
+ 8012566:	2101      	movs	r1, #1
+ 8012568:	f000 ff9c 	bl	80134a4 <SUBGRF_SetSwitch>
+ 801256c:	782b      	ldrb	r3, [r5, #0]
+ 801256e:	2b01      	cmp	r3, #1
+ 8012570:	f640 0089 	movw	r0, #2185	; 0x889
+ 8012574:	d113      	bne.n	801259e <RadioSend+0x5a>
+ 8012576:	f895 3051 	ldrb.w	r3, [r5, #81]	; 0x51
+ 801257a:	2b06      	cmp	r3, #6
+ 801257c:	d10f      	bne.n	801259e <RadioSend+0x5a>
+ 801257e:	f000 fad1 	bl	8012b24 <SUBGRF_ReadRegister>
+ 8012582:	f000 01fb 	and.w	r1, r0, #251	; 0xfb
+ 8012586:	f640 0089 	movw	r0, #2185	; 0x889
+ 801258a:	f000 fabb 	bl	8012b04 <SUBGRF_WriteRegister>
+ 801258e:	782b      	ldrb	r3, [r5, #0]
+ 8012590:	2b04      	cmp	r3, #4
+ 8012592:	d86c      	bhi.n	801266e <RadioSend+0x12a>
+ 8012594:	e8df f003 	tbb	[pc, r3]
+ 8012598:	7f524b52 	.word	0x7f524b52
+ 801259c:	09          	.byte	0x09
+ 801259d:	00          	.byte	0x00
+ 801259e:	f000 fac1 	bl	8012b24 <SUBGRF_ReadRegister>
+ 80125a2:	f040 0104 	orr.w	r1, r0, #4
+ 80125a6:	b2c9      	uxtb	r1, r1
+ 80125a8:	e7ed      	b.n	8012586 <RadioSend+0x42>
+ 80125aa:	4a52      	ldr	r2, [pc, #328]	; (80126f4 <RadioSend+0x1b0>)
+ 80125ac:	1e73      	subs	r3, r6, #1
+ 80125ae:	4610      	mov	r0, r2
+ 80125b0:	f1c6 0701 	rsb	r7, r6, #1
+ 80125b4:	f04f 0c00 	mov.w	ip, #0
+ 80125b8:	18f9      	adds	r1, r7, r3
+ 80125ba:	428c      	cmp	r4, r1
+ 80125bc:	dc6f      	bgt.n	801269e <RadioSend+0x15a>
+ 80125be:	2200      	movs	r2, #0
+ 80125c0:	00e7      	lsls	r7, r4, #3
+ 80125c2:	4613      	mov	r3, r2
+ 80125c4:	42ba      	cmp	r2, r7
+ 80125c6:	d171      	bne.n	80126ac <RadioSend+0x168>
+ 80125c8:	019a      	lsls	r2, r3, #6
+ 80125ca:	ea42 12c3 	orr.w	r2, r2, r3, lsl #7
+ 80125ce:	015b      	lsls	r3, r3, #5
+ 80125d0:	f083 0320 	eor.w	r3, r3, #32
+ 80125d4:	4313      	orrs	r3, r2
+ 80125d6:	1c66      	adds	r6, r4, #1
+ 80125d8:	5503      	strb	r3, [r0, r4]
+ 80125da:	b2f6      	uxtb	r6, r6
+ 80125dc:	2302      	movs	r3, #2
+ 80125de:	4846      	ldr	r0, [pc, #280]	; (80126f8 <RadioSend+0x1b4>)
+ 80125e0:	73ab      	strb	r3, [r5, #14]
+ 80125e2:	76ae      	strb	r6, [r5, #26]
+ 80125e4:	f000 fe56 	bl	8013294 <SUBGRF_SetPacketParams>
+ 80125e8:	2100      	movs	r1, #0
+ 80125ea:	20f1      	movs	r0, #241	; 0xf1
+ 80125ec:	f000 fa8a 	bl	8012b04 <SUBGRF_WriteRegister>
+ 80125f0:	2100      	movs	r1, #0
+ 80125f2:	20f0      	movs	r0, #240	; 0xf0
+ 80125f4:	f000 fa86 	bl	8012b04 <SUBGRF_WriteRegister>
+ 80125f8:	6cab      	ldr	r3, [r5, #72]	; 0x48
+ 80125fa:	2b64      	cmp	r3, #100	; 0x64
+ 80125fc:	d170      	bne.n	80126e0 <RadioSend+0x19c>
+ 80125fe:	2170      	movs	r1, #112	; 0x70
+ 8012600:	20f3      	movs	r0, #243	; 0xf3
+ 8012602:	f000 fa7f 	bl	8012b04 <SUBGRF_WriteRegister>
+ 8012606:	211d      	movs	r1, #29
+ 8012608:	20f2      	movs	r0, #242	; 0xf2
+ 801260a:	f000 fa7b 	bl	8012b04 <SUBGRF_WriteRegister>
+ 801260e:	00e1      	lsls	r1, r4, #3
+ 8012610:	1c8c      	adds	r4, r1, #2
+ 8012612:	20f4      	movs	r0, #244	; 0xf4
+ 8012614:	0a09      	lsrs	r1, r1, #8
+ 8012616:	f000 fa75 	bl	8012b04 <SUBGRF_WriteRegister>
+ 801261a:	f004 01fe 	and.w	r1, r4, #254	; 0xfe
+ 801261e:	20f5      	movs	r0, #245	; 0xf5
+ 8012620:	f000 fa70 	bl	8012b04 <SUBGRF_WriteRegister>
+ 8012624:	4833      	ldr	r0, [pc, #204]	; (80126f4 <RadioSend+0x1b0>)
+ 8012626:	f06f 427f 	mvn.w	r2, #4278190080	; 0xff000000
+ 801262a:	4631      	mov	r1, r6
+ 801262c:	e01d      	b.n	801266a <RadioSend+0x126>
+ 801262e:	77ec      	strb	r4, [r5, #31]
+ 8012630:	4831      	ldr	r0, [pc, #196]	; (80126f8 <RadioSend+0x1b4>)
+ 8012632:	f000 fe2f 	bl	8013294 <SUBGRF_SetPacketParams>
+ 8012636:	2200      	movs	r2, #0
+ 8012638:	4621      	mov	r1, r4
+ 801263a:	e015      	b.n	8012668 <RadioSend+0x124>
+ 801263c:	f001 f808 	bl	8013650 <RFW_Is_Init>
+ 8012640:	2801      	cmp	r0, #1
+ 8012642:	4607      	mov	r7, r0
+ 8012644:	d125      	bne.n	8012692 <RadioSend+0x14e>
+ 8012646:	4621      	mov	r1, r4
+ 8012648:	f10d 0207 	add.w	r2, sp, #7
+ 801264c:	4630      	mov	r0, r6
+ 801264e:	f001 f804 	bl	801365a <RFW_TransmitInit>
+ 8012652:	4604      	mov	r4, r0
+ 8012654:	b9a0      	cbnz	r0, 8012680 <RadioSend+0x13c>
+ 8012656:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 801265a:	4827      	ldr	r0, [pc, #156]	; (80126f8 <RadioSend+0x1b4>)
+ 801265c:	75ab      	strb	r3, [r5, #22]
+ 801265e:	f000 fe19 	bl	8013294 <SUBGRF_SetPacketParams>
+ 8012662:	f89d 1007 	ldrb.w	r1, [sp, #7]
+ 8012666:	4622      	mov	r2, r4
+ 8012668:	4630      	mov	r0, r6
+ 801266a:	f000 fb65 	bl	8012d38 <SUBGRF_SendPayload>
+ 801266e:	6869      	ldr	r1, [r5, #4]
+ 8012670:	4822      	ldr	r0, [pc, #136]	; (80126fc <RadioSend+0x1b8>)
+ 8012672:	f001 fc63 	bl	8013f3c <UTIL_TIMER_SetPeriod>
+ 8012676:	4821      	ldr	r0, [pc, #132]	; (80126fc <RadioSend+0x1b8>)
+ 8012678:	f001 fc26 	bl	8013ec8 <UTIL_TIMER_Start>
+ 801267c:	2000      	movs	r0, #0
+ 801267e:	e006      	b.n	801268e <RadioSend+0x14a>
+ 8012680:	4b1f      	ldr	r3, [pc, #124]	; (8012700 <RadioSend+0x1bc>)
+ 8012682:	463a      	mov	r2, r7
+ 8012684:	2100      	movs	r1, #0
+ 8012686:	2002      	movs	r0, #2
+ 8012688:	f001 f8a2 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 801268c:	2003      	movs	r0, #3
+ 801268e:	b003      	add	sp, #12
+ 8012690:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8012692:	75ac      	strb	r4, [r5, #22]
+ 8012694:	e7cc      	b.n	8012630 <RadioSend+0xec>
+ 8012696:	2302      	movs	r3, #2
+ 8012698:	73ab      	strb	r3, [r5, #14]
+ 801269a:	76ac      	strb	r4, [r5, #26]
+ 801269c:	e7c8      	b.n	8012630 <RadioSend+0xec>
+ 801269e:	f813 1f01 	ldrb.w	r1, [r3, #1]!
+ 80126a2:	43c9      	mvns	r1, r1
+ 80126a4:	7019      	strb	r1, [r3, #0]
+ 80126a6:	f802 cb01 	strb.w	ip, [r2], #1
+ 80126aa:	e785      	b.n	80125b8 <RadioSend+0x74>
+ 80126ac:	10d1      	asrs	r1, r2, #3
+ 80126ae:	ea6f 0c02 	mvn.w	ip, r2
+ 80126b2:	5c71      	ldrb	r1, [r6, r1]
+ 80126b4:	f00c 0c07 	and.w	ip, ip, #7
+ 80126b8:	3201      	adds	r2, #1
+ 80126ba:	fa41 f10c 	asr.w	r1, r1, ip
+ 80126be:	f001 0101 	and.w	r1, r1, #1
+ 80126c2:	ea4f 0ce2 	mov.w	ip, r2, asr #3
+ 80126c6:	404b      	eors	r3, r1
+ 80126c8:	43d1      	mvns	r1, r2
+ 80126ca:	f810 e00c 	ldrb.w	lr, [r0, ip]
+ 80126ce:	f001 0107 	and.w	r1, r1, #7
+ 80126d2:	fa03 f101 	lsl.w	r1, r3, r1
+ 80126d6:	ea41 010e 	orr.w	r1, r1, lr
+ 80126da:	f800 100c 	strb.w	r1, [r0, ip]
+ 80126de:	e771      	b.n	80125c4 <RadioSend+0x80>
+ 80126e0:	21e1      	movs	r1, #225	; 0xe1
+ 80126e2:	20f3      	movs	r0, #243	; 0xf3
+ 80126e4:	f000 fa0e 	bl	8012b04 <SUBGRF_WriteRegister>
+ 80126e8:	2104      	movs	r1, #4
+ 80126ea:	e78d      	b.n	8012608 <RadioSend+0xc4>
+ 80126ec:	48000400 	.word	0x48000400
+ 80126f0:	20002744 	.word	0x20002744
+ 80126f4:	20002628 	.word	0x20002628
+ 80126f8:	20002752 	.word	0x20002752
+ 80126fc:	200027a0 	.word	0x200027a0
+ 8012700:	080156f0 	.word	0x080156f0
+
+08012704 <RadioTimeOnAir>:
+ 8012704:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8012706:	f8bd 4014 	ldrh.w	r4, [sp, #20]
+ 801270a:	f89d 7018 	ldrb.w	r7, [sp, #24]
+ 801270e:	f89d e01c 	ldrb.w	lr, [sp, #28]
+ 8012712:	f89d 5020 	ldrb.w	r5, [sp, #32]
+ 8012716:	b140      	cbz	r0, 801272a <RadioTimeOnAir+0x26>
+ 8012718:	2801      	cmp	r0, #1
+ 801271a:	d014      	beq.n	8012746 <RadioTimeOnAir+0x42>
+ 801271c:	2201      	movs	r2, #1
+ 801271e:	2300      	movs	r3, #0
+ 8012720:	1898      	adds	r0, r3, r2
+ 8012722:	3801      	subs	r0, #1
+ 8012724:	fbb0 f0f2 	udiv	r0, r0, r2
+ 8012728:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 801272a:	f087 0701 	eor.w	r7, r7, #1
+ 801272e:	00e3      	lsls	r3, r4, #3
+ 8012730:	eb03 03c7 	add.w	r3, r3, r7, lsl #3
+ 8012734:	3318      	adds	r3, #24
+ 8012736:	eb0e 0545 	add.w	r5, lr, r5, lsl #1
+ 801273a:	eb03 03c5 	add.w	r3, r3, r5, lsl #3
+ 801273e:	f44f 717a 	mov.w	r1, #1000	; 0x3e8
+ 8012742:	434b      	muls	r3, r1
+ 8012744:	e7ec      	b.n	8012720 <RadioTimeOnAir+0x1c>
+ 8012746:	1f50      	subs	r0, r2, #5
+ 8012748:	2801      	cmp	r0, #1
+ 801274a:	f103 0304 	add.w	r3, r3, #4
+ 801274e:	d802      	bhi.n	8012756 <RadioTimeOnAir+0x52>
+ 8012750:	2c0c      	cmp	r4, #12
+ 8012752:	bf38      	it	cc
+ 8012754:	240c      	movcc	r4, #12
+ 8012756:	b9d1      	cbnz	r1, 801278e <RadioTimeOnAir+0x8a>
+ 8012758:	f1a2 0c0b 	sub.w	ip, r2, #11
+ 801275c:	f1bc 0f01 	cmp.w	ip, #1
+ 8012760:	bf8c      	ite	hi
+ 8012762:	f04f 0c00 	movhi.w	ip, #0
+ 8012766:	f04f 0c01 	movls.w	ip, #1
+ 801276a:	0128      	lsls	r0, r5, #4
+ 801276c:	2f00      	cmp	r7, #0
+ 801276e:	eb00 00ce 	add.w	r0, r0, lr, lsl #3
+ 8012772:	bf14      	ite	ne
+ 8012774:	2500      	movne	r5, #0
+ 8012776:	2514      	moveq	r5, #20
+ 8012778:	eba0 0082 	sub.w	r0, r0, r2, lsl #2
+ 801277c:	2a06      	cmp	r2, #6
+ 801277e:	ea4f 0682 	mov.w	r6, r2, lsl #2
+ 8012782:	4428      	add	r0, r5
+ 8012784:	f1a2 0702 	sub.w	r7, r2, #2
+ 8012788:	d80d      	bhi.n	80127a6 <RadioTimeOnAir+0xa2>
+ 801278a:	4635      	mov	r5, r6
+ 801278c:	e010      	b.n	80127b0 <RadioTimeOnAir+0xac>
+ 801278e:	2901      	cmp	r1, #1
+ 8012790:	d106      	bne.n	80127a0 <RadioTimeOnAir+0x9c>
+ 8012792:	f1a2 000c 	sub.w	r0, r2, #12
+ 8012796:	f1d0 0c00 	rsbs	ip, r0, #0
+ 801279a:	eb4c 0c00 	adc.w	ip, ip, r0
+ 801279e:	e7e4      	b.n	801276a <RadioTimeOnAir+0x66>
+ 80127a0:	f04f 0c00 	mov.w	ip, #0
+ 80127a4:	e7e1      	b.n	801276a <RadioTimeOnAir+0x66>
+ 80127a6:	3008      	adds	r0, #8
+ 80127a8:	f1bc 0f00 	cmp.w	ip, #0
+ 80127ac:	d0ed      	beq.n	801278a <RadioTimeOnAir+0x86>
+ 80127ae:	00bd      	lsls	r5, r7, #2
+ 80127b0:	2800      	cmp	r0, #0
+ 80127b2:	bfac      	ite	ge
+ 80127b4:	182e      	addge	r6, r5, r0
+ 80127b6:	1c2e      	addlt	r6, r5, #0
+ 80127b8:	1e70      	subs	r0, r6, #1
+ 80127ba:	fb90 f0f5 	sdiv	r0, r0, r5
+ 80127be:	fb03 4400 	mla	r4, r3, r0, r4
+ 80127c2:	4b09      	ldr	r3, [pc, #36]	; (80127e8 <RadioTimeOnAir+0xe4>)
+ 80127c4:	2a06      	cmp	r2, #6
+ 80127c6:	5c5a      	ldrb	r2, [r3, r1]
+ 80127c8:	bf8c      	ite	hi
+ 80127ca:	340c      	addhi	r4, #12
+ 80127cc:	340e      	addls	r4, #14
+ 80127ce:	2a0a      	cmp	r2, #10
+ 80127d0:	d809      	bhi.n	80127e6 <RadioTimeOnAir+0xe2>
+ 80127d2:	00a3      	lsls	r3, r4, #2
+ 80127d4:	3301      	adds	r3, #1
+ 80127d6:	f44f 717a 	mov.w	r1, #1000	; 0x3e8
+ 80127da:	40bb      	lsls	r3, r7
+ 80127dc:	434b      	muls	r3, r1
+ 80127de:	4903      	ldr	r1, [pc, #12]	; (80127ec <RadioTimeOnAir+0xe8>)
+ 80127e0:	f851 2022 	ldr.w	r2, [r1, r2, lsl #2]
+ 80127e4:	e79c      	b.n	8012720 <RadioTimeOnAir+0x1c>
+ 80127e6:	deff      	udf	#255	; 0xff
+ 80127e8:	0801574e 	.word	0x0801574e
+ 80127ec:	08015754 	.word	0x08015754
+
+080127f0 <RadioTxPrbs>:
+ 80127f0:	b508      	push	{r3, lr}
+ 80127f2:	4b09      	ldr	r3, [pc, #36]	; (8012818 <RadioTxPrbs+0x28>)
+ 80127f4:	2101      	movs	r1, #1
+ 80127f6:	f893 0056 	ldrb.w	r0, [r3, #86]	; 0x56
+ 80127fa:	f000 fe53 	bl	80134a4 <SUBGRF_SetSwitch>
+ 80127fe:	f44f 60d7 	mov.w	r0, #1720	; 0x6b8
+ 8012802:	212d      	movs	r1, #45	; 0x2d
+ 8012804:	f000 f97e 	bl	8012b04 <SUBGRF_WriteRegister>
+ 8012808:	f000 fb33 	bl	8012e72 <SUBGRF_SetTxInfinitePreamble>
+ 801280c:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 8012810:	4802      	ldr	r0, [pc, #8]	; (801281c <RadioTxPrbs+0x2c>)
+ 8012812:	f000 ba7b 	b.w	8012d0c <SUBGRF_SetTx>
+ 8012816:	bf00      	nop
+ 8012818:	20002744 	.word	0x20002744
+ 801281c:	000fffff 	.word	0x000fffff
+
+08012820 <RadioIrqProcess>:
+ 8012820:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 8012822:	4ca4      	ldr	r4, [pc, #656]	; (8012ab4 <RadioIrqProcess+0x294>)
+ 8012824:	f8b4 3054 	ldrh.w	r3, [r4, #84]	; 0x54
+ 8012828:	2500      	movs	r5, #0
+ 801282a:	2b20      	cmp	r3, #32
+ 801282c:	f88d 5003 	strb.w	r5, [sp, #3]
+ 8012830:	9501      	str	r5, [sp, #4]
+ 8012832:	f000 811b 	beq.w	8012a6c <RadioIrqProcess+0x24c>
+ 8012836:	d814      	bhi.n	8012862 <RadioIrqProcess+0x42>
+ 8012838:	2b08      	cmp	r3, #8
+ 801283a:	d80d      	bhi.n	8012858 <RadioIrqProcess+0x38>
+ 801283c:	b17b      	cbz	r3, 801285e <RadioIrqProcess+0x3e>
+ 801283e:	3b01      	subs	r3, #1
+ 8012840:	2b07      	cmp	r3, #7
+ 8012842:	d80c      	bhi.n	801285e <RadioIrqProcess+0x3e>
+ 8012844:	e8df f013 	tbh	[pc, r3, lsl #1]
+ 8012848:	005b0042 	.word	0x005b0042
+ 801284c:	00cd000b 	.word	0x00cd000b
+ 8012850:	000b000b 	.word	0x000b000b
+ 8012854:	00fd000b 	.word	0x00fd000b
+ 8012858:	2b10      	cmp	r3, #16
+ 801285a:	f000 8100 	beq.w	8012a5e <RadioIrqProcess+0x23e>
+ 801285e:	b002      	add	sp, #8
+ 8012860:	bd70      	pop	{r4, r5, r6, pc}
+ 8012862:	f5b3 7f80 	cmp.w	r3, #256	; 0x100
+ 8012866:	f000 8098 	beq.w	801299a <RadioIrqProcess+0x17a>
+ 801286a:	d811      	bhi.n	8012890 <RadioIrqProcess+0x70>
+ 801286c:	2b40      	cmp	r3, #64	; 0x40
+ 801286e:	f000 8110 	beq.w	8012a92 <RadioIrqProcess+0x272>
+ 8012872:	2b80      	cmp	r3, #128	; 0x80
+ 8012874:	d1f3      	bne.n	801285e <RadioIrqProcess+0x3e>
+ 8012876:	4628      	mov	r0, r5
+ 8012878:	f000 fa32 	bl	8012ce0 <SUBGRF_SetStandby>
+ 801287c:	4b8e      	ldr	r3, [pc, #568]	; (8012ab8 <RadioIrqProcess+0x298>)
+ 801287e:	681b      	ldr	r3, [r3, #0]
+ 8012880:	2b00      	cmp	r3, #0
+ 8012882:	d0ec      	beq.n	801285e <RadioIrqProcess+0x3e>
+ 8012884:	699b      	ldr	r3, [r3, #24]
+ 8012886:	2b00      	cmp	r3, #0
+ 8012888:	d0e9      	beq.n	801285e <RadioIrqProcess+0x3e>
+ 801288a:	4628      	mov	r0, r5
+ 801288c:	4798      	blx	r3
+ 801288e:	e7e6      	b.n	801285e <RadioIrqProcess+0x3e>
+ 8012890:	f5b3 7f00 	cmp.w	r3, #512	; 0x200
+ 8012894:	d1e3      	bne.n	801285e <RadioIrqProcess+0x3e>
+ 8012896:	4b89      	ldr	r3, [pc, #548]	; (8012abc <RadioIrqProcess+0x29c>)
+ 8012898:	2201      	movs	r2, #1
+ 801289a:	4629      	mov	r1, r5
+ 801289c:	2002      	movs	r0, #2
+ 801289e:	f000 ff97 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 80128a2:	f000 f929 	bl	8012af8 <SUBGRF_GetOperatingMode>
+ 80128a6:	2804      	cmp	r0, #4
+ 80128a8:	f040 8085 	bne.w	80129b6 <RadioIrqProcess+0x196>
+ 80128ac:	4b84      	ldr	r3, [pc, #528]	; (8012ac0 <RadioIrqProcess+0x2a0>)
+ 80128ae:	4885      	ldr	r0, [pc, #532]	; (8012ac4 <RadioIrqProcess+0x2a4>)
+ 80128b0:	f44f 5200 	mov.w	r2, #8192	; 0x2000
+ 80128b4:	629a      	str	r2, [r3, #40]	; 0x28
+ 80128b6:	f001 fab9 	bl	8013e2c <UTIL_TIMER_Stop>
+ 80128ba:	4628      	mov	r0, r5
+ 80128bc:	f000 fa10 	bl	8012ce0 <SUBGRF_SetStandby>
+ 80128c0:	4b7d      	ldr	r3, [pc, #500]	; (8012ab8 <RadioIrqProcess+0x298>)
+ 80128c2:	681b      	ldr	r3, [r3, #0]
+ 80128c4:	2b00      	cmp	r3, #0
+ 80128c6:	d0ca      	beq.n	801285e <RadioIrqProcess+0x3e>
+ 80128c8:	685b      	ldr	r3, [r3, #4]
+ 80128ca:	e014      	b.n	80128f6 <RadioIrqProcess+0xd6>
+ 80128cc:	4b7c      	ldr	r3, [pc, #496]	; (8012ac0 <RadioIrqProcess+0x2a0>)
+ 80128ce:	487d      	ldr	r0, [pc, #500]	; (8012ac4 <RadioIrqProcess+0x2a4>)
+ 80128d0:	f44f 5200 	mov.w	r2, #8192	; 0x2000
+ 80128d4:	629a      	str	r2, [r3, #40]	; 0x28
+ 80128d6:	f001 faa9 	bl	8013e2c <UTIL_TIMER_Stop>
+ 80128da:	2000      	movs	r0, #0
+ 80128dc:	f000 fa00 	bl	8012ce0 <SUBGRF_SetStandby>
+ 80128e0:	f000 feb8 	bl	8013654 <RFW_Is_LongPacketModeEnabled>
+ 80128e4:	2801      	cmp	r0, #1
+ 80128e6:	d101      	bne.n	80128ec <RadioIrqProcess+0xcc>
+ 80128e8:	f000 febd 	bl	8013666 <RFW_DeInit_TxLongPacket>
+ 80128ec:	4b72      	ldr	r3, [pc, #456]	; (8012ab8 <RadioIrqProcess+0x298>)
+ 80128ee:	681b      	ldr	r3, [r3, #0]
+ 80128f0:	2b00      	cmp	r3, #0
+ 80128f2:	d0b4      	beq.n	801285e <RadioIrqProcess+0x3e>
+ 80128f4:	681b      	ldr	r3, [r3, #0]
+ 80128f6:	2b00      	cmp	r3, #0
+ 80128f8:	d0b1      	beq.n	801285e <RadioIrqProcess+0x3e>
+ 80128fa:	4798      	blx	r3
+ 80128fc:	e7af      	b.n	801285e <RadioIrqProcess+0x3e>
+ 80128fe:	4b70      	ldr	r3, [pc, #448]	; (8012ac0 <RadioIrqProcess+0x2a0>)
+ 8012900:	4871      	ldr	r0, [pc, #452]	; (8012ac8 <RadioIrqProcess+0x2a8>)
+ 8012902:	f44f 5280 	mov.w	r2, #4096	; 0x1000
+ 8012906:	629a      	str	r2, [r3, #40]	; 0x28
+ 8012908:	f001 fa90 	bl	8013e2c <UTIL_TIMER_Stop>
+ 801290c:	7865      	ldrb	r5, [r4, #1]
+ 801290e:	b995      	cbnz	r5, 8012936 <RadioIrqProcess+0x116>
+ 8012910:	4628      	mov	r0, r5
+ 8012912:	f000 f9e5 	bl	8012ce0 <SUBGRF_SetStandby>
+ 8012916:	4629      	mov	r1, r5
+ 8012918:	f640 1002 	movw	r0, #2306	; 0x902
+ 801291c:	f000 f8f2 	bl	8012b04 <SUBGRF_WriteRegister>
+ 8012920:	f640 1044 	movw	r0, #2372	; 0x944
+ 8012924:	f000 f8fe 	bl	8012b24 <SUBGRF_ReadRegister>
+ 8012928:	f040 0102 	orr.w	r1, r0, #2
+ 801292c:	b2c9      	uxtb	r1, r1
+ 801292e:	f640 1044 	movw	r0, #2372	; 0x944
+ 8012932:	f000 f8e7 	bl	8012b04 <SUBGRF_WriteRegister>
+ 8012936:	22ff      	movs	r2, #255	; 0xff
+ 8012938:	f10d 0103 	add.w	r1, sp, #3
+ 801293c:	4863      	ldr	r0, [pc, #396]	; (8012acc <RadioIrqProcess+0x2ac>)
+ 801293e:	4d5e      	ldr	r5, [pc, #376]	; (8012ab8 <RadioIrqProcess+0x298>)
+ 8012940:	f000 fd5a 	bl	80133f8 <SUBGRF_GetPayload>
+ 8012944:	4862      	ldr	r0, [pc, #392]	; (8012ad0 <RadioIrqProcess+0x2b0>)
+ 8012946:	f000 fd71 	bl	801342c <SUBGRF_GetPacketStatus>
+ 801294a:	682b      	ldr	r3, [r5, #0]
+ 801294c:	2b00      	cmp	r3, #0
+ 801294e:	d086      	beq.n	801285e <RadioIrqProcess+0x3e>
+ 8012950:	689e      	ldr	r6, [r3, #8]
+ 8012952:	2e00      	cmp	r6, #0
+ 8012954:	d083      	beq.n	801285e <RadioIrqProcess+0x3e>
+ 8012956:	f894 3024 	ldrb.w	r3, [r4, #36]	; 0x24
+ 801295a:	2b01      	cmp	r3, #1
+ 801295c:	d108      	bne.n	8012970 <RadioIrqProcess+0x150>
+ 801295e:	f994 3031 	ldrsb.w	r3, [r4, #49]	; 0x31
+ 8012962:	f994 2030 	ldrsb.w	r2, [r4, #48]	; 0x30
+ 8012966:	f89d 1003 	ldrb.w	r1, [sp, #3]
+ 801296a:	4858      	ldr	r0, [pc, #352]	; (8012acc <RadioIrqProcess+0x2ac>)
+ 801296c:	47b0      	blx	r6
+ 801296e:	e776      	b.n	801285e <RadioIrqProcess+0x3e>
+ 8012970:	6be0      	ldr	r0, [r4, #60]	; 0x3c
+ 8012972:	a901      	add	r1, sp, #4
+ 8012974:	f000 fe22 	bl	80135bc <SUBGRF_GetCFO>
+ 8012978:	9b01      	ldr	r3, [sp, #4]
+ 801297a:	f89d 1003 	ldrb.w	r1, [sp, #3]
+ 801297e:	4853      	ldr	r0, [pc, #332]	; (8012acc <RadioIrqProcess+0x2ac>)
+ 8012980:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
+ 8012984:	f503 73fa 	add.w	r3, r3, #500	; 0x1f4
+ 8012988:	fb93 f3f2 	sdiv	r3, r3, r2
+ 801298c:	682a      	ldr	r2, [r5, #0]
+ 801298e:	b25b      	sxtb	r3, r3
+ 8012990:	6895      	ldr	r5, [r2, #8]
+ 8012992:	f994 2029 	ldrsb.w	r2, [r4, #41]	; 0x29
+ 8012996:	47a8      	blx	r5
+ 8012998:	e761      	b.n	801285e <RadioIrqProcess+0x3e>
+ 801299a:	4628      	mov	r0, r5
+ 801299c:	f000 f9a0 	bl	8012ce0 <SUBGRF_SetStandby>
+ 80129a0:	4b45      	ldr	r3, [pc, #276]	; (8012ab8 <RadioIrqProcess+0x298>)
+ 80129a2:	681b      	ldr	r3, [r3, #0]
+ 80129a4:	2b00      	cmp	r3, #0
+ 80129a6:	f43f af5a 	beq.w	801285e <RadioIrqProcess+0x3e>
+ 80129aa:	699b      	ldr	r3, [r3, #24]
+ 80129ac:	2b00      	cmp	r3, #0
+ 80129ae:	f43f af56 	beq.w	801285e <RadioIrqProcess+0x3e>
+ 80129b2:	2001      	movs	r0, #1
+ 80129b4:	e76a      	b.n	801288c <RadioIrqProcess+0x6c>
+ 80129b6:	f000 f89f 	bl	8012af8 <SUBGRF_GetOperatingMode>
+ 80129ba:	2805      	cmp	r0, #5
+ 80129bc:	f47f af4f 	bne.w	801285e <RadioIrqProcess+0x3e>
+ 80129c0:	4b3f      	ldr	r3, [pc, #252]	; (8012ac0 <RadioIrqProcess+0x2a0>)
+ 80129c2:	4841      	ldr	r0, [pc, #260]	; (8012ac8 <RadioIrqProcess+0x2a8>)
+ 80129c4:	f44f 5280 	mov.w	r2, #4096	; 0x1000
+ 80129c8:	629a      	str	r2, [r3, #40]	; 0x28
+ 80129ca:	f001 fa2f 	bl	8013e2c <UTIL_TIMER_Stop>
+ 80129ce:	4628      	mov	r0, r5
+ 80129d0:	f000 f986 	bl	8012ce0 <SUBGRF_SetStandby>
+ 80129d4:	4b38      	ldr	r3, [pc, #224]	; (8012ab8 <RadioIrqProcess+0x298>)
+ 80129d6:	681b      	ldr	r3, [r3, #0]
+ 80129d8:	2b00      	cmp	r3, #0
+ 80129da:	f43f af40 	beq.w	801285e <RadioIrqProcess+0x3e>
+ 80129de:	68db      	ldr	r3, [r3, #12]
+ 80129e0:	e789      	b.n	80128f6 <RadioIrqProcess+0xd6>
+ 80129e2:	2100      	movs	r1, #0
+ 80129e4:	4b3b      	ldr	r3, [pc, #236]	; (8012ad4 <RadioIrqProcess+0x2b4>)
+ 80129e6:	2201      	movs	r2, #1
+ 80129e8:	2002      	movs	r0, #2
+ 80129ea:	f000 fef1 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 80129ee:	6da1      	ldr	r1, [r4, #88]	; 0x58
+ 80129f0:	2900      	cmp	r1, #0
+ 80129f2:	f43f af34 	beq.w	801285e <RadioIrqProcess+0x3e>
+ 80129f6:	f3c1 4107 	ubfx	r1, r1, #16, #8
+ 80129fa:	f640 1003 	movw	r0, #2307	; 0x903
+ 80129fe:	f000 f881 	bl	8012b04 <SUBGRF_WriteRegister>
+ 8012a02:	f894 1059 	ldrb.w	r1, [r4, #89]	; 0x59
+ 8012a06:	f640 1004 	movw	r0, #2308	; 0x904
+ 8012a0a:	f000 f87b 	bl	8012b04 <SUBGRF_WriteRegister>
+ 8012a0e:	f894 1058 	ldrb.w	r1, [r4, #88]	; 0x58
+ 8012a12:	f640 1005 	movw	r0, #2309	; 0x905
+ 8012a16:	f000 f875 	bl	8012b04 <SUBGRF_WriteRegister>
+ 8012a1a:	f640 1002 	movw	r0, #2306	; 0x902
+ 8012a1e:	f000 f881 	bl	8012b24 <SUBGRF_ReadRegister>
+ 8012a22:	f040 0101 	orr.w	r1, r0, #1
+ 8012a26:	b2c9      	uxtb	r1, r1
+ 8012a28:	f640 1002 	movw	r0, #2306	; 0x902
+ 8012a2c:	f000 f86a 	bl	8012b04 <SUBGRF_WriteRegister>
+ 8012a30:	2300      	movs	r3, #0
+ 8012a32:	f240 2162 	movw	r1, #610	; 0x262
+ 8012a36:	461a      	mov	r2, r3
+ 8012a38:	4608      	mov	r0, r1
+ 8012a3a:	65a3      	str	r3, [r4, #88]	; 0x58
+ 8012a3c:	f000 faaa 	bl	8012f94 <SUBGRF_SetDioIrqParams>
+ 8012a40:	e70d      	b.n	801285e <RadioIrqProcess+0x3e>
+ 8012a42:	4b25      	ldr	r3, [pc, #148]	; (8012ad8 <RadioIrqProcess+0x2b8>)
+ 8012a44:	2201      	movs	r2, #1
+ 8012a46:	2100      	movs	r1, #0
+ 8012a48:	2002      	movs	r0, #2
+ 8012a4a:	f000 fec1 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8012a4e:	f000 fdff 	bl	8013650 <RFW_Is_Init>
+ 8012a52:	2801      	cmp	r0, #1
+ 8012a54:	f47f af03 	bne.w	801285e <RadioIrqProcess+0x3e>
+ 8012a58:	f000 fe06 	bl	8013668 <RFW_ReceivePayload>
+ 8012a5c:	e6ff      	b.n	801285e <RadioIrqProcess+0x3e>
+ 8012a5e:	4b1f      	ldr	r3, [pc, #124]	; (8012adc <RadioIrqProcess+0x2bc>)
+ 8012a60:	2201      	movs	r2, #1
+ 8012a62:	2100      	movs	r1, #0
+ 8012a64:	2002      	movs	r0, #2
+ 8012a66:	f000 feb3 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8012a6a:	e6f8      	b.n	801285e <RadioIrqProcess+0x3e>
+ 8012a6c:	4816      	ldr	r0, [pc, #88]	; (8012ac8 <RadioIrqProcess+0x2a8>)
+ 8012a6e:	f001 f9dd 	bl	8013e2c <UTIL_TIMER_Stop>
+ 8012a72:	7860      	ldrb	r0, [r4, #1]
+ 8012a74:	b908      	cbnz	r0, 8012a7a <RadioIrqProcess+0x25a>
+ 8012a76:	f000 f933 	bl	8012ce0 <SUBGRF_SetStandby>
+ 8012a7a:	4b0f      	ldr	r3, [pc, #60]	; (8012ab8 <RadioIrqProcess+0x298>)
+ 8012a7c:	681b      	ldr	r3, [r3, #0]
+ 8012a7e:	2b00      	cmp	r3, #0
+ 8012a80:	f43f aeed 	beq.w	801285e <RadioIrqProcess+0x3e>
+ 8012a84:	68db      	ldr	r3, [r3, #12]
+ 8012a86:	2b00      	cmp	r3, #0
+ 8012a88:	f43f aee9 	beq.w	801285e <RadioIrqProcess+0x3e>
+ 8012a8c:	4798      	blx	r3
+ 8012a8e:	4b14      	ldr	r3, [pc, #80]	; (8012ae0 <RadioIrqProcess+0x2c0>)
+ 8012a90:	e7e6      	b.n	8012a60 <RadioIrqProcess+0x240>
+ 8012a92:	4b14      	ldr	r3, [pc, #80]	; (8012ae4 <RadioIrqProcess+0x2c4>)
+ 8012a94:	2201      	movs	r2, #1
+ 8012a96:	4629      	mov	r1, r5
+ 8012a98:	2002      	movs	r0, #2
+ 8012a9a:	f000 fe99 	bl	80137d0 <UTIL_ADV_TRACE_COND_FSend>
+ 8012a9e:	7860      	ldrb	r0, [r4, #1]
+ 8012aa0:	b908      	cbnz	r0, 8012aa6 <RadioIrqProcess+0x286>
+ 8012aa2:	f000 f91d 	bl	8012ce0 <SUBGRF_SetStandby>
+ 8012aa6:	4b04      	ldr	r3, [pc, #16]	; (8012ab8 <RadioIrqProcess+0x298>)
+ 8012aa8:	681b      	ldr	r3, [r3, #0]
+ 8012aaa:	2b00      	cmp	r3, #0
+ 8012aac:	f43f aed7 	beq.w	801285e <RadioIrqProcess+0x3e>
+ 8012ab0:	691b      	ldr	r3, [r3, #16]
+ 8012ab2:	e720      	b.n	80128f6 <RadioIrqProcess+0xd6>
+ 8012ab4:	20002744 	.word	0x20002744
+ 8012ab8:	20002728 	.word	0x20002728
+ 8012abc:	08015705 	.word	0x08015705
+ 8012ac0:	48000400 	.word	0x48000400
+ 8012ac4:	200027a0 	.word	0x200027a0
+ 8012ac8:	2000272c 	.word	0x2000272c
+ 8012acc:	20002628 	.word	0x20002628
+ 8012ad0:	20002768 	.word	0x20002768
+ 8012ad4:	08015719 	.word	0x08015719
+ 8012ad8:	08015722 	.word	0x08015722
+ 8012adc:	0801572c 	.word	0x0801572c
+ 8012ae0:	08015735 	.word	0x08015735
+ 8012ae4:	0801573e 	.word	0x0801573e
+
+08012ae8 <RadioOnDioIrq>:
+ 8012ae8:	4b02      	ldr	r3, [pc, #8]	; (8012af4 <RadioOnDioIrq+0xc>)
+ 8012aea:	f8a3 0054 	strh.w	r0, [r3, #84]	; 0x54
+ 8012aee:	f7ff be97 	b.w	8012820 <RadioIrqProcess>
+ 8012af2:	bf00      	nop
+ 8012af4:	20002744 	.word	0x20002744
+
+08012af8 <SUBGRF_GetOperatingMode>:
+ 8012af8:	4b01      	ldr	r3, [pc, #4]	; (8012b00 <SUBGRF_GetOperatingMode+0x8>)
+ 8012afa:	7818      	ldrb	r0, [r3, #0]
+ 8012afc:	4770      	bx	lr
+ 8012afe:	bf00      	nop
+ 8012b00:	200027be 	.word	0x200027be
+
+08012b04 <SUBGRF_WriteRegister>:
+ 8012b04:	b507      	push	{r0, r1, r2, lr}
+ 8012b06:	2301      	movs	r3, #1
+ 8012b08:	f88d 1007 	strb.w	r1, [sp, #7]
+ 8012b0c:	f10d 0207 	add.w	r2, sp, #7
+ 8012b10:	4601      	mov	r1, r0
+ 8012b12:	4803      	ldr	r0, [pc, #12]	; (8012b20 <SUBGRF_WriteRegister+0x1c>)
+ 8012b14:	f7f7 fa06 	bl	8009f24 <HAL_SUBGHZ_WriteRegisters>
+ 8012b18:	b003      	add	sp, #12
+ 8012b1a:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8012b1e:	bf00      	nop
+ 8012b20:	20000acc 	.word	0x20000acc
+
+08012b24 <SUBGRF_ReadRegister>:
+ 8012b24:	b507      	push	{r0, r1, r2, lr}
+ 8012b26:	2301      	movs	r3, #1
+ 8012b28:	4601      	mov	r1, r0
+ 8012b2a:	f10d 0207 	add.w	r2, sp, #7
+ 8012b2e:	4804      	ldr	r0, [pc, #16]	; (8012b40 <SUBGRF_ReadRegister+0x1c>)
+ 8012b30:	f7f7 fa31 	bl	8009f96 <HAL_SUBGHZ_ReadRegisters>
+ 8012b34:	f89d 0007 	ldrb.w	r0, [sp, #7]
+ 8012b38:	b003      	add	sp, #12
+ 8012b3a:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8012b3e:	bf00      	nop
+ 8012b40:	20000acc 	.word	0x20000acc
+
+08012b44 <Radio_SMPS_Set>:
+ 8012b44:	b510      	push	{r4, lr}
+ 8012b46:	4604      	mov	r4, r0
+ 8012b48:	f7f1 fdae 	bl	80046a8 <RBI_IsDCDC>
+ 8012b4c:	2801      	cmp	r0, #1
+ 8012b4e:	d10c      	bne.n	8012b6a <Radio_SMPS_Set+0x26>
+ 8012b50:	f640 1023 	movw	r0, #2339	; 0x923
+ 8012b54:	f7ff ffe6 	bl	8012b24 <SUBGRF_ReadRegister>
+ 8012b58:	f000 01f9 	and.w	r1, r0, #249	; 0xf9
+ 8012b5c:	4321      	orrs	r1, r4
+ 8012b5e:	f640 1023 	movw	r0, #2339	; 0x923
+ 8012b62:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8012b66:	f7ff bfcd 	b.w	8012b04 <SUBGRF_WriteRegister>
+ 8012b6a:	bd10      	pop	{r4, pc}
+
+08012b6c <SUBGRF_SetWhiteningSeed>:
+ 8012b6c:	b510      	push	{r4, lr}
+ 8012b6e:	4b0c      	ldr	r3, [pc, #48]	; (8012ba0 <SUBGRF_SetWhiteningSeed+0x34>)
+ 8012b70:	781b      	ldrb	r3, [r3, #0]
+ 8012b72:	4604      	mov	r4, r0
+ 8012b74:	b99b      	cbnz	r3, 8012b9e <SUBGRF_SetWhiteningSeed+0x32>
+ 8012b76:	f44f 60d7 	mov.w	r0, #1720	; 0x6b8
+ 8012b7a:	f7ff ffd3 	bl	8012b24 <SUBGRF_ReadRegister>
+ 8012b7e:	f3c4 2100 	ubfx	r1, r4, #8, #1
+ 8012b82:	f000 00fe 	and.w	r0, r0, #254	; 0xfe
+ 8012b86:	4301      	orrs	r1, r0
+ 8012b88:	f44f 60d7 	mov.w	r0, #1720	; 0x6b8
+ 8012b8c:	f7ff ffba 	bl	8012b04 <SUBGRF_WriteRegister>
+ 8012b90:	b2e1      	uxtb	r1, r4
+ 8012b92:	f240 60b9 	movw	r0, #1721	; 0x6b9
+ 8012b96:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8012b9a:	f7ff bfb3 	b.w	8012b04 <SUBGRF_WriteRegister>
+ 8012b9e:	bd10      	pop	{r4, pc}
+ 8012ba0:	200027bf 	.word	0x200027bf
+
+08012ba4 <SUBGRF_WriteRegisters>:
+ 8012ba4:	b510      	push	{r4, lr}
+ 8012ba6:	4613      	mov	r3, r2
+ 8012ba8:	f3ef 8410 	mrs	r4, PRIMASK
+ 8012bac:	b672      	cpsid	i
+ 8012bae:	460a      	mov	r2, r1
+ 8012bb0:	4601      	mov	r1, r0
+ 8012bb2:	4803      	ldr	r0, [pc, #12]	; (8012bc0 <SUBGRF_WriteRegisters+0x1c>)
+ 8012bb4:	f7f7 f9b6 	bl	8009f24 <HAL_SUBGHZ_WriteRegisters>
+ 8012bb8:	f384 8810 	msr	PRIMASK, r4
+ 8012bbc:	bd10      	pop	{r4, pc}
+ 8012bbe:	bf00      	nop
+ 8012bc0:	20000acc 	.word	0x20000acc
+
+08012bc4 <SUBGRF_SetSyncWord>:
+ 8012bc4:	b508      	push	{r3, lr}
+ 8012bc6:	4601      	mov	r1, r0
+ 8012bc8:	2208      	movs	r2, #8
+ 8012bca:	f44f 60d8 	mov.w	r0, #1728	; 0x6c0
+ 8012bce:	f7ff ffe9 	bl	8012ba4 <SUBGRF_WriteRegisters>
+ 8012bd2:	2000      	movs	r0, #0
+ 8012bd4:	bd08      	pop	{r3, pc}
+	...
+
+08012bd8 <SUBGRF_SetCrcSeed>:
+ 8012bd8:	b507      	push	{r0, r1, r2, lr}
+ 8012bda:	4b07      	ldr	r3, [pc, #28]	; (8012bf8 <SUBGRF_SetCrcSeed+0x20>)
+ 8012bdc:	781b      	ldrb	r3, [r3, #0]
+ 8012bde:	ba40      	rev16	r0, r0
+ 8012be0:	f8ad 0004 	strh.w	r0, [sp, #4]
+ 8012be4:	b92b      	cbnz	r3, 8012bf2 <SUBGRF_SetCrcSeed+0x1a>
+ 8012be6:	2202      	movs	r2, #2
+ 8012be8:	a901      	add	r1, sp, #4
+ 8012bea:	f240 60bc 	movw	r0, #1724	; 0x6bc
+ 8012bee:	f7ff ffd9 	bl	8012ba4 <SUBGRF_WriteRegisters>
+ 8012bf2:	b003      	add	sp, #12
+ 8012bf4:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8012bf8:	200027bf 	.word	0x200027bf
+
+08012bfc <SUBGRF_SetCrcPolynomial>:
+ 8012bfc:	b507      	push	{r0, r1, r2, lr}
+ 8012bfe:	4b07      	ldr	r3, [pc, #28]	; (8012c1c <SUBGRF_SetCrcPolynomial+0x20>)
+ 8012c00:	781b      	ldrb	r3, [r3, #0]
+ 8012c02:	ba40      	rev16	r0, r0
+ 8012c04:	f8ad 0004 	strh.w	r0, [sp, #4]
+ 8012c08:	b92b      	cbnz	r3, 8012c16 <SUBGRF_SetCrcPolynomial+0x1a>
+ 8012c0a:	2202      	movs	r2, #2
+ 8012c0c:	a901      	add	r1, sp, #4
+ 8012c0e:	f240 60be 	movw	r0, #1726	; 0x6be
+ 8012c12:	f7ff ffc7 	bl	8012ba4 <SUBGRF_WriteRegisters>
+ 8012c16:	b003      	add	sp, #12
+ 8012c18:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8012c1c:	200027bf 	.word	0x200027bf
+
+08012c20 <SUBGRF_ReadRegisters>:
+ 8012c20:	b510      	push	{r4, lr}
+ 8012c22:	4613      	mov	r3, r2
+ 8012c24:	f3ef 8410 	mrs	r4, PRIMASK
+ 8012c28:	b672      	cpsid	i
+ 8012c2a:	460a      	mov	r2, r1
+ 8012c2c:	4601      	mov	r1, r0
+ 8012c2e:	4803      	ldr	r0, [pc, #12]	; (8012c3c <SUBGRF_ReadRegisters+0x1c>)
+ 8012c30:	f7f7 f9b1 	bl	8009f96 <HAL_SUBGHZ_ReadRegisters>
+ 8012c34:	f384 8810 	msr	PRIMASK, r4
+ 8012c38:	bd10      	pop	{r4, pc}
+ 8012c3a:	bf00      	nop
+ 8012c3c:	20000acc 	.word	0x20000acc
+
+08012c40 <SUBGRF_WriteBuffer>:
+ 8012c40:	b510      	push	{r4, lr}
+ 8012c42:	4613      	mov	r3, r2
+ 8012c44:	f3ef 8410 	mrs	r4, PRIMASK
+ 8012c48:	b672      	cpsid	i
+ 8012c4a:	460a      	mov	r2, r1
+ 8012c4c:	4601      	mov	r1, r0
+ 8012c4e:	4803      	ldr	r0, [pc, #12]	; (8012c5c <SUBGRF_WriteBuffer+0x1c>)
+ 8012c50:	f7f7 fa93 	bl	800a17a <HAL_SUBGHZ_WriteBuffer>
+ 8012c54:	f384 8810 	msr	PRIMASK, r4
+ 8012c58:	bd10      	pop	{r4, pc}
+ 8012c5a:	bf00      	nop
+ 8012c5c:	20000acc 	.word	0x20000acc
+
+08012c60 <SUBGRF_SetPayload>:
+ 8012c60:	460a      	mov	r2, r1
+ 8012c62:	4601      	mov	r1, r0
+ 8012c64:	2000      	movs	r0, #0
+ 8012c66:	f7ff bfeb 	b.w	8012c40 <SUBGRF_WriteBuffer>
+	...
+
+08012c6c <SUBGRF_ReadBuffer>:
+ 8012c6c:	b510      	push	{r4, lr}
+ 8012c6e:	4613      	mov	r3, r2
+ 8012c70:	f3ef 8410 	mrs	r4, PRIMASK
+ 8012c74:	b672      	cpsid	i
+ 8012c76:	460a      	mov	r2, r1
+ 8012c78:	4601      	mov	r1, r0
+ 8012c7a:	4803      	ldr	r0, [pc, #12]	; (8012c88 <SUBGRF_ReadBuffer+0x1c>)
+ 8012c7c:	f7f7 fab0 	bl	800a1e0 <HAL_SUBGHZ_ReadBuffer>
+ 8012c80:	f384 8810 	msr	PRIMASK, r4
+ 8012c84:	bd10      	pop	{r4, pc}
+ 8012c86:	bf00      	nop
+ 8012c88:	20000acc 	.word	0x20000acc
+
+08012c8c <SUBGRF_WriteCommand>:
+ 8012c8c:	b510      	push	{r4, lr}
+ 8012c8e:	4613      	mov	r3, r2
+ 8012c90:	f3ef 8410 	mrs	r4, PRIMASK
+ 8012c94:	b672      	cpsid	i
+ 8012c96:	460a      	mov	r2, r1
+ 8012c98:	4601      	mov	r1, r0
+ 8012c9a:	4803      	ldr	r0, [pc, #12]	; (8012ca8 <SUBGRF_WriteCommand+0x1c>)
+ 8012c9c:	f7f7 f9b6 	bl	800a00c <HAL_SUBGHZ_ExecSetCmd>
+ 8012ca0:	f384 8810 	msr	PRIMASK, r4
+ 8012ca4:	bd10      	pop	{r4, pc}
+ 8012ca6:	bf00      	nop
+ 8012ca8:	20000acc 	.word	0x20000acc
+
+08012cac <SUBGRF_SetSleep>:
+ 8012cac:	b513      	push	{r0, r1, r4, lr}
+ 8012cae:	4604      	mov	r4, r0
+ 8012cb0:	2000      	movs	r0, #0
+ 8012cb2:	f7f1 fcd3 	bl	800465c <RBI_ConfigRFSwitch>
+ 8012cb6:	2002      	movs	r0, #2
+ 8012cb8:	f7ff ff44 	bl	8012b44 <Radio_SMPS_Set>
+ 8012cbc:	f004 0407 	and.w	r4, r4, #7
+ 8012cc0:	2201      	movs	r2, #1
+ 8012cc2:	f10d 0107 	add.w	r1, sp, #7
+ 8012cc6:	2084      	movs	r0, #132	; 0x84
+ 8012cc8:	f88d 4007 	strb.w	r4, [sp, #7]
+ 8012ccc:	f7ff ffde 	bl	8012c8c <SUBGRF_WriteCommand>
+ 8012cd0:	4b02      	ldr	r3, [pc, #8]	; (8012cdc <SUBGRF_SetSleep+0x30>)
+ 8012cd2:	2200      	movs	r2, #0
+ 8012cd4:	701a      	strb	r2, [r3, #0]
+ 8012cd6:	b002      	add	sp, #8
+ 8012cd8:	bd10      	pop	{r4, pc}
+ 8012cda:	bf00      	nop
+ 8012cdc:	200027be 	.word	0x200027be
+
+08012ce0 <SUBGRF_SetStandby>:
+ 8012ce0:	b507      	push	{r0, r1, r2, lr}
+ 8012ce2:	2201      	movs	r2, #1
+ 8012ce4:	f88d 0007 	strb.w	r0, [sp, #7]
+ 8012ce8:	f10d 0107 	add.w	r1, sp, #7
+ 8012cec:	2080      	movs	r0, #128	; 0x80
+ 8012cee:	f7ff ffcd 	bl	8012c8c <SUBGRF_WriteCommand>
+ 8012cf2:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8012cf6:	2b00      	cmp	r3, #0
+ 8012cf8:	4b03      	ldr	r3, [pc, #12]	; (8012d08 <SUBGRF_SetStandby+0x28>)
+ 8012cfa:	bf0c      	ite	eq
+ 8012cfc:	2201      	moveq	r2, #1
+ 8012cfe:	2202      	movne	r2, #2
+ 8012d00:	701a      	strb	r2, [r3, #0]
+ 8012d02:	b003      	add	sp, #12
+ 8012d04:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8012d08:	200027be 	.word	0x200027be
+
+08012d0c <SUBGRF_SetTx>:
+ 8012d0c:	b507      	push	{r0, r1, r2, lr}
+ 8012d0e:	4b09      	ldr	r3, [pc, #36]	; (8012d34 <SUBGRF_SetTx+0x28>)
+ 8012d10:	f88d 0006 	strb.w	r0, [sp, #6]
+ 8012d14:	2204      	movs	r2, #4
+ 8012d16:	701a      	strb	r2, [r3, #0]
+ 8012d18:	0c03      	lsrs	r3, r0, #16
+ 8012d1a:	f88d 3004 	strb.w	r3, [sp, #4]
+ 8012d1e:	2203      	movs	r2, #3
+ 8012d20:	0a03      	lsrs	r3, r0, #8
+ 8012d22:	a901      	add	r1, sp, #4
+ 8012d24:	2083      	movs	r0, #131	; 0x83
+ 8012d26:	f88d 3005 	strb.w	r3, [sp, #5]
+ 8012d2a:	f7ff ffaf 	bl	8012c8c <SUBGRF_WriteCommand>
+ 8012d2e:	b003      	add	sp, #12
+ 8012d30:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8012d34:	200027be 	.word	0x200027be
+
+08012d38 <SUBGRF_SendPayload>:
+ 8012d38:	b510      	push	{r4, lr}
+ 8012d3a:	4614      	mov	r4, r2
+ 8012d3c:	f7ff ff90 	bl	8012c60 <SUBGRF_SetPayload>
+ 8012d40:	4620      	mov	r0, r4
+ 8012d42:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8012d46:	f7ff bfe1 	b.w	8012d0c <SUBGRF_SetTx>
+	...
+
+08012d4c <SUBGRF_SetRx>:
+ 8012d4c:	b507      	push	{r0, r1, r2, lr}
+ 8012d4e:	4b09      	ldr	r3, [pc, #36]	; (8012d74 <SUBGRF_SetRx+0x28>)
+ 8012d50:	f88d 0006 	strb.w	r0, [sp, #6]
+ 8012d54:	2205      	movs	r2, #5
+ 8012d56:	701a      	strb	r2, [r3, #0]
+ 8012d58:	0c03      	lsrs	r3, r0, #16
+ 8012d5a:	f88d 3004 	strb.w	r3, [sp, #4]
+ 8012d5e:	2203      	movs	r2, #3
+ 8012d60:	0a03      	lsrs	r3, r0, #8
+ 8012d62:	a901      	add	r1, sp, #4
+ 8012d64:	2082      	movs	r0, #130	; 0x82
+ 8012d66:	f88d 3005 	strb.w	r3, [sp, #5]
+ 8012d6a:	f7ff ff8f 	bl	8012c8c <SUBGRF_WriteCommand>
+ 8012d6e:	b003      	add	sp, #12
+ 8012d70:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8012d74:	200027be 	.word	0x200027be
+
+08012d78 <SUBGRF_GetRandom>:
+ 8012d78:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 8012d7a:	2600      	movs	r6, #0
+ 8012d7c:	f640 00e2 	movw	r0, #2274	; 0x8e2
+ 8012d80:	9601      	str	r6, [sp, #4]
+ 8012d82:	f7ff fecf 	bl	8012b24 <SUBGRF_ReadRegister>
+ 8012d86:	f000 01fe 	and.w	r1, r0, #254	; 0xfe
+ 8012d8a:	4605      	mov	r5, r0
+ 8012d8c:	f640 00e2 	movw	r0, #2274	; 0x8e2
+ 8012d90:	f7ff feb8 	bl	8012b04 <SUBGRF_WriteRegister>
+ 8012d94:	f640 00e5 	movw	r0, #2277	; 0x8e5
+ 8012d98:	f7ff fec4 	bl	8012b24 <SUBGRF_ReadRegister>
+ 8012d9c:	f000 017f 	and.w	r1, r0, #127	; 0x7f
+ 8012da0:	4604      	mov	r4, r0
+ 8012da2:	f640 00e5 	movw	r0, #2277	; 0x8e5
+ 8012da6:	f7ff fead 	bl	8012b04 <SUBGRF_WriteRegister>
+ 8012daa:	f06f 407f 	mvn.w	r0, #4278190080	; 0xff000000
+ 8012dae:	f7ff ffcd 	bl	8012d4c <SUBGRF_SetRx>
+ 8012db2:	2204      	movs	r2, #4
+ 8012db4:	eb0d 0102 	add.w	r1, sp, r2
+ 8012db8:	f640 0019 	movw	r0, #2073	; 0x819
+ 8012dbc:	f7ff ff30 	bl	8012c20 <SUBGRF_ReadRegisters>
+ 8012dc0:	4630      	mov	r0, r6
+ 8012dc2:	f7ff ff8d 	bl	8012ce0 <SUBGRF_SetStandby>
+ 8012dc6:	4629      	mov	r1, r5
+ 8012dc8:	f640 00e2 	movw	r0, #2274	; 0x8e2
+ 8012dcc:	f7ff fe9a 	bl	8012b04 <SUBGRF_WriteRegister>
+ 8012dd0:	4621      	mov	r1, r4
+ 8012dd2:	f640 00e5 	movw	r0, #2277	; 0x8e5
+ 8012dd6:	f7ff fe95 	bl	8012b04 <SUBGRF_WriteRegister>
+ 8012dda:	9801      	ldr	r0, [sp, #4]
+ 8012ddc:	b002      	add	sp, #8
+ 8012dde:	bd70      	pop	{r4, r5, r6, pc}
+
+08012de0 <SUBGRF_SetRxBoosted>:
+ 8012de0:	b513      	push	{r0, r1, r4, lr}
+ 8012de2:	4b0c      	ldr	r3, [pc, #48]	; (8012e14 <SUBGRF_SetRxBoosted+0x34>)
+ 8012de4:	4604      	mov	r4, r0
+ 8012de6:	2205      	movs	r2, #5
+ 8012de8:	2197      	movs	r1, #151	; 0x97
+ 8012dea:	f640 00ac 	movw	r0, #2220	; 0x8ac
+ 8012dee:	701a      	strb	r2, [r3, #0]
+ 8012df0:	f7ff fe88 	bl	8012b04 <SUBGRF_WriteRegister>
+ 8012df4:	0c23      	lsrs	r3, r4, #16
+ 8012df6:	f88d 3004 	strb.w	r3, [sp, #4]
+ 8012dfa:	2203      	movs	r2, #3
+ 8012dfc:	0a23      	lsrs	r3, r4, #8
+ 8012dfe:	a901      	add	r1, sp, #4
+ 8012e00:	2082      	movs	r0, #130	; 0x82
+ 8012e02:	f88d 3005 	strb.w	r3, [sp, #5]
+ 8012e06:	f88d 4006 	strb.w	r4, [sp, #6]
+ 8012e0a:	f7ff ff3f 	bl	8012c8c <SUBGRF_WriteCommand>
+ 8012e0e:	b002      	add	sp, #8
+ 8012e10:	bd10      	pop	{r4, pc}
+ 8012e12:	bf00      	nop
+ 8012e14:	200027be 	.word	0x200027be
+
+08012e18 <SUBGRF_SetRxDutyCycle>:
+ 8012e18:	b507      	push	{r0, r1, r2, lr}
+ 8012e1a:	0c03      	lsrs	r3, r0, #16
+ 8012e1c:	f88d 3000 	strb.w	r3, [sp]
+ 8012e20:	0a03      	lsrs	r3, r0, #8
+ 8012e22:	f88d 3001 	strb.w	r3, [sp, #1]
+ 8012e26:	0c0b      	lsrs	r3, r1, #16
+ 8012e28:	ba49      	rev16	r1, r1
+ 8012e2a:	f88d 0002 	strb.w	r0, [sp, #2]
+ 8012e2e:	f8ad 1004 	strh.w	r1, [sp, #4]
+ 8012e32:	2206      	movs	r2, #6
+ 8012e34:	4669      	mov	r1, sp
+ 8012e36:	2094      	movs	r0, #148	; 0x94
+ 8012e38:	f88d 3003 	strb.w	r3, [sp, #3]
+ 8012e3c:	f7ff ff26 	bl	8012c8c <SUBGRF_WriteCommand>
+ 8012e40:	4b02      	ldr	r3, [pc, #8]	; (8012e4c <SUBGRF_SetRxDutyCycle+0x34>)
+ 8012e42:	2206      	movs	r2, #6
+ 8012e44:	701a      	strb	r2, [r3, #0]
+ 8012e46:	b003      	add	sp, #12
+ 8012e48:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8012e4c:	200027be 	.word	0x200027be
+
+08012e50 <SUBGRF_SetCad>:
+ 8012e50:	2200      	movs	r2, #0
+ 8012e52:	b508      	push	{r3, lr}
+ 8012e54:	4611      	mov	r1, r2
+ 8012e56:	20c5      	movs	r0, #197	; 0xc5
+ 8012e58:	f7ff ff18 	bl	8012c8c <SUBGRF_WriteCommand>
+ 8012e5c:	4b01      	ldr	r3, [pc, #4]	; (8012e64 <SUBGRF_SetCad+0x14>)
+ 8012e5e:	2207      	movs	r2, #7
+ 8012e60:	701a      	strb	r2, [r3, #0]
+ 8012e62:	bd08      	pop	{r3, pc}
+ 8012e64:	200027be 	.word	0x200027be
+
+08012e68 <SUBGRF_SetTxContinuousWave>:
+ 8012e68:	2200      	movs	r2, #0
+ 8012e6a:	4611      	mov	r1, r2
+ 8012e6c:	20d1      	movs	r0, #209	; 0xd1
+ 8012e6e:	f7ff bf0d 	b.w	8012c8c <SUBGRF_WriteCommand>
+
+08012e72 <SUBGRF_SetTxInfinitePreamble>:
+ 8012e72:	2200      	movs	r2, #0
+ 8012e74:	4611      	mov	r1, r2
+ 8012e76:	20d2      	movs	r0, #210	; 0xd2
+ 8012e78:	f7ff bf08 	b.w	8012c8c <SUBGRF_WriteCommand>
+
+08012e7c <SUBGRF_SetStopRxTimerOnPreambleDetect>:
+ 8012e7c:	b507      	push	{r0, r1, r2, lr}
+ 8012e7e:	2201      	movs	r2, #1
+ 8012e80:	f88d 0007 	strb.w	r0, [sp, #7]
+ 8012e84:	f10d 0107 	add.w	r1, sp, #7
+ 8012e88:	209f      	movs	r0, #159	; 0x9f
+ 8012e8a:	f7ff feff 	bl	8012c8c <SUBGRF_WriteCommand>
+ 8012e8e:	b003      	add	sp, #12
+ 8012e90:	f85d fb04 	ldr.w	pc, [sp], #4
+
+08012e94 <SUBGRF_SetLoRaSymbNumTimeout>:
+ 8012e94:	b507      	push	{r0, r1, r2, lr}
+ 8012e96:	2201      	movs	r2, #1
+ 8012e98:	f88d 0007 	strb.w	r0, [sp, #7]
+ 8012e9c:	f10d 0107 	add.w	r1, sp, #7
+ 8012ea0:	20a0      	movs	r0, #160	; 0xa0
+ 8012ea2:	f7ff fef3 	bl	8012c8c <SUBGRF_WriteCommand>
+ 8012ea6:	f89d 1007 	ldrb.w	r1, [sp, #7]
+ 8012eaa:	293f      	cmp	r1, #63	; 0x3f
+ 8012eac:	d907      	bls.n	8012ebe <SUBGRF_SetLoRaSymbNumTimeout+0x2a>
+ 8012eae:	f001 01f8 	and.w	r1, r1, #248	; 0xf8
+ 8012eb2:	3101      	adds	r1, #1
+ 8012eb4:	b2c9      	uxtb	r1, r1
+ 8012eb6:	f240 7006 	movw	r0, #1798	; 0x706
+ 8012eba:	f7ff fe23 	bl	8012b04 <SUBGRF_WriteRegister>
+ 8012ebe:	b003      	add	sp, #12
+ 8012ec0:	f85d fb04 	ldr.w	pc, [sp], #4
+
+08012ec4 <SUBGRF_SetRegulatorMode>:
+ 8012ec4:	b507      	push	{r0, r1, r2, lr}
+ 8012ec6:	f7f1 fbef 	bl	80046a8 <RBI_IsDCDC>
+ 8012eca:	1e43      	subs	r3, r0, #1
+ 8012ecc:	4258      	negs	r0, r3
+ 8012ece:	4158      	adcs	r0, r3
+ 8012ed0:	f88d 0007 	strb.w	r0, [sp, #7]
+ 8012ed4:	2201      	movs	r2, #1
+ 8012ed6:	f10d 0107 	add.w	r1, sp, #7
+ 8012eda:	2096      	movs	r0, #150	; 0x96
+ 8012edc:	f7ff fed6 	bl	8012c8c <SUBGRF_WriteCommand>
+ 8012ee0:	b003      	add	sp, #12
+ 8012ee2:	f85d fb04 	ldr.w	pc, [sp], #4
+
+08012ee6 <SUBGRF_Calibrate>:
+ 8012ee6:	b507      	push	{r0, r1, r2, lr}
+ 8012ee8:	f000 007f 	and.w	r0, r0, #127	; 0x7f
+ 8012eec:	f88d 0007 	strb.w	r0, [sp, #7]
+ 8012ef0:	2201      	movs	r2, #1
+ 8012ef2:	f10d 0107 	add.w	r1, sp, #7
+ 8012ef6:	2089      	movs	r0, #137	; 0x89
+ 8012ef8:	f7ff fec8 	bl	8012c8c <SUBGRF_WriteCommand>
+ 8012efc:	b003      	add	sp, #12
+ 8012efe:	f85d fb04 	ldr.w	pc, [sp], #4
+	...
+
+08012f04 <SUBGRF_CalibrateImage>:
+ 8012f04:	4b15      	ldr	r3, [pc, #84]	; (8012f5c <SUBGRF_CalibrateImage+0x58>)
+ 8012f06:	4298      	cmp	r0, r3
+ 8012f08:	b507      	push	{r0, r1, r2, lr}
+ 8012f0a:	d81b      	bhi.n	8012f44 <SUBGRF_CalibrateImage+0x40>
+ 8012f0c:	4b14      	ldr	r3, [pc, #80]	; (8012f60 <SUBGRF_CalibrateImage+0x5c>)
+ 8012f0e:	4298      	cmp	r0, r3
+ 8012f10:	d81b      	bhi.n	8012f4a <SUBGRF_CalibrateImage+0x46>
+ 8012f12:	4b14      	ldr	r3, [pc, #80]	; (8012f64 <SUBGRF_CalibrateImage+0x60>)
+ 8012f14:	4298      	cmp	r0, r3
+ 8012f16:	d81b      	bhi.n	8012f50 <SUBGRF_CalibrateImage+0x4c>
+ 8012f18:	4b13      	ldr	r3, [pc, #76]	; (8012f68 <SUBGRF_CalibrateImage+0x64>)
+ 8012f1a:	4298      	cmp	r0, r3
+ 8012f1c:	d81b      	bhi.n	8012f56 <SUBGRF_CalibrateImage+0x52>
+ 8012f1e:	4b13      	ldr	r3, [pc, #76]	; (8012f6c <SUBGRF_CalibrateImage+0x68>)
+ 8012f20:	4298      	cmp	r0, r3
+ 8012f22:	bf95      	itete	ls
+ 8012f24:	2229      	movls	r2, #41	; 0x29
+ 8012f26:	226b      	movhi	r2, #107	; 0x6b
+ 8012f28:	232b      	movls	r3, #43	; 0x2b
+ 8012f2a:	236f      	movhi	r3, #111	; 0x6f
+ 8012f2c:	f88d 2004 	strb.w	r2, [sp, #4]
+ 8012f30:	a901      	add	r1, sp, #4
+ 8012f32:	2202      	movs	r2, #2
+ 8012f34:	2098      	movs	r0, #152	; 0x98
+ 8012f36:	f88d 3005 	strb.w	r3, [sp, #5]
+ 8012f3a:	f7ff fea7 	bl	8012c8c <SUBGRF_WriteCommand>
+ 8012f3e:	b003      	add	sp, #12
+ 8012f40:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8012f44:	22e1      	movs	r2, #225	; 0xe1
+ 8012f46:	23e9      	movs	r3, #233	; 0xe9
+ 8012f48:	e7f0      	b.n	8012f2c <SUBGRF_CalibrateImage+0x28>
+ 8012f4a:	22d7      	movs	r2, #215	; 0xd7
+ 8012f4c:	23db      	movs	r3, #219	; 0xdb
+ 8012f4e:	e7ed      	b.n	8012f2c <SUBGRF_CalibrateImage+0x28>
+ 8012f50:	22c1      	movs	r2, #193	; 0xc1
+ 8012f52:	23c5      	movs	r3, #197	; 0xc5
+ 8012f54:	e7ea      	b.n	8012f2c <SUBGRF_CalibrateImage+0x28>
+ 8012f56:	2275      	movs	r2, #117	; 0x75
+ 8012f58:	2381      	movs	r3, #129	; 0x81
+ 8012f5a:	e7e7      	b.n	8012f2c <SUBGRF_CalibrateImage+0x28>
+ 8012f5c:	35a4e900 	.word	0x35a4e900
+ 8012f60:	32a9f880 	.word	0x32a9f880
+ 8012f64:	2de54480 	.word	0x2de54480
+ 8012f68:	1b6b0b00 	.word	0x1b6b0b00
+ 8012f6c:	1954fc40 	.word	0x1954fc40
+
+08012f70 <SUBGRF_SetPaConfig>:
+ 8012f70:	b507      	push	{r0, r1, r2, lr}
+ 8012f72:	f88d 2006 	strb.w	r2, [sp, #6]
+ 8012f76:	2204      	movs	r2, #4
+ 8012f78:	f88d 0004 	strb.w	r0, [sp, #4]
+ 8012f7c:	f88d 1005 	strb.w	r1, [sp, #5]
+ 8012f80:	2095      	movs	r0, #149	; 0x95
+ 8012f82:	eb0d 0102 	add.w	r1, sp, r2
+ 8012f86:	f88d 3007 	strb.w	r3, [sp, #7]
+ 8012f8a:	f7ff fe7f 	bl	8012c8c <SUBGRF_WriteCommand>
+ 8012f8e:	b003      	add	sp, #12
+ 8012f90:	f85d fb04 	ldr.w	pc, [sp], #4
+
+08012f94 <SUBGRF_SetDioIrqParams>:
+ 8012f94:	b507      	push	{r0, r1, r2, lr}
+ 8012f96:	ba52      	rev16	r2, r2
+ 8012f98:	f8ad 2004 	strh.w	r2, [sp, #4]
+ 8012f9c:	ba40      	rev16	r0, r0
+ 8012f9e:	2208      	movs	r2, #8
+ 8012fa0:	ba49      	rev16	r1, r1
+ 8012fa2:	f8ad 0000 	strh.w	r0, [sp]
+ 8012fa6:	f8ad 1002 	strh.w	r1, [sp, #2]
+ 8012faa:	ba5b      	rev16	r3, r3
+ 8012fac:	4669      	mov	r1, sp
+ 8012fae:	4610      	mov	r0, r2
+ 8012fb0:	f8ad 3006 	strh.w	r3, [sp, #6]
+ 8012fb4:	f7ff fe6a 	bl	8012c8c <SUBGRF_WriteCommand>
+ 8012fb8:	b003      	add	sp, #12
+ 8012fba:	f85d fb04 	ldr.w	pc, [sp], #4
+
+08012fbe <SUBGRF_SetTcxoMode>:
+ 8012fbe:	b507      	push	{r0, r1, r2, lr}
+ 8012fc0:	0c0b      	lsrs	r3, r1, #16
+ 8012fc2:	2204      	movs	r2, #4
+ 8012fc4:	f000 0007 	and.w	r0, r0, #7
+ 8012fc8:	ba49      	rev16	r1, r1
+ 8012fca:	f88d 0004 	strb.w	r0, [sp, #4]
+ 8012fce:	f8ad 1006 	strh.w	r1, [sp, #6]
+ 8012fd2:	2097      	movs	r0, #151	; 0x97
+ 8012fd4:	eb0d 0102 	add.w	r1, sp, r2
+ 8012fd8:	f88d 3005 	strb.w	r3, [sp, #5]
+ 8012fdc:	f7ff fe56 	bl	8012c8c <SUBGRF_WriteCommand>
+ 8012fe0:	b003      	add	sp, #12
+ 8012fe2:	f85d fb04 	ldr.w	pc, [sp], #4
+	...
+
+08012fe8 <SUBGRF_Init>:
+ 8012fe8:	b510      	push	{r4, lr}
+ 8012fea:	b108      	cbz	r0, 8012ff0 <SUBGRF_Init+0x8>
+ 8012fec:	4b19      	ldr	r3, [pc, #100]	; (8013054 <SUBGRF_Init+0x6c>)
+ 8012fee:	6018      	str	r0, [r3, #0]
+ 8012ff0:	f7ef fcb6 	bl	8002960 <MX_SUBGHZ_Init>
+ 8012ff4:	2002      	movs	r0, #2
+ 8012ff6:	f7ff fda5 	bl	8012b44 <Radio_SMPS_Set>
+ 8012ffa:	2400      	movs	r4, #0
+ 8012ffc:	4b16      	ldr	r3, [pc, #88]	; (8013058 <SUBGRF_Init+0x70>)
+ 8012ffe:	4620      	mov	r0, r4
+ 8013000:	701c      	strb	r4, [r3, #0]
+ 8013002:	f7ff fe6d 	bl	8012ce0 <SUBGRF_SetStandby>
+ 8013006:	f7f1 fb4d 	bl	80046a4 <RBI_IsTCXO>
+ 801300a:	2801      	cmp	r0, #1
+ 801300c:	d117      	bne.n	801303e <SUBGRF_Init+0x56>
+ 801300e:	f44f 7120 	mov.w	r1, #640	; 0x280
+ 8013012:	f7ff ffd4 	bl	8012fbe <SUBGRF_SetTcxoMode>
+ 8013016:	f640 1011 	movw	r0, #2321	; 0x911
+ 801301a:	4621      	mov	r1, r4
+ 801301c:	f7ff fd72 	bl	8012b04 <SUBGRF_WriteRegister>
+ 8013020:	f04f 007f 	mov.w	r0, #127	; 0x7f
+ 8013024:	f7ff ff5f 	bl	8012ee6 <SUBGRF_Calibrate>
+ 8013028:	210e      	movs	r1, #14
+ 801302a:	f640 101f 	movw	r0, #2335	; 0x91f
+ 801302e:	f7ff fd69 	bl	8012b04 <SUBGRF_WriteRegister>
+ 8013032:	f7f1 fadf 	bl	80045f4 <RBI_Init>
+ 8013036:	4b09      	ldr	r3, [pc, #36]	; (801305c <SUBGRF_Init+0x74>)
+ 8013038:	2201      	movs	r2, #1
+ 801303a:	701a      	strb	r2, [r3, #0]
+ 801303c:	bd10      	pop	{r4, pc}
+ 801303e:	2110      	movs	r1, #16
+ 8013040:	f640 1011 	movw	r0, #2321	; 0x911
+ 8013044:	f7ff fd5e 	bl	8012b04 <SUBGRF_WriteRegister>
+ 8013048:	2110      	movs	r1, #16
+ 801304a:	f640 1012 	movw	r0, #2322	; 0x912
+ 801304e:	f7ff fd59 	bl	8012b04 <SUBGRF_WriteRegister>
+ 8013052:	e7e9      	b.n	8013028 <SUBGRF_Init+0x40>
+ 8013054:	200027c0 	.word	0x200027c0
+ 8013058:	200027bc 	.word	0x200027bc
+ 801305c:	200027be 	.word	0x200027be
+
+08013060 <SUBGRF_SetRfFrequency>:
+ 8013060:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 8013062:	4d0c      	ldr	r5, [pc, #48]	; (8013094 <SUBGRF_SetRfFrequency+0x34>)
+ 8013064:	782b      	ldrb	r3, [r5, #0]
+ 8013066:	4604      	mov	r4, r0
+ 8013068:	b91b      	cbnz	r3, 8013072 <SUBGRF_SetRfFrequency+0x12>
+ 801306a:	f7ff ff4b 	bl	8012f04 <SUBGRF_CalibrateImage>
+ 801306e:	2301      	movs	r3, #1
+ 8013070:	702b      	strb	r3, [r5, #0]
+ 8013072:	2300      	movs	r3, #0
+ 8013074:	4a08      	ldr	r2, [pc, #32]	; (8013098 <SUBGRF_SetRfFrequency+0x38>)
+ 8013076:	0660      	lsls	r0, r4, #25
+ 8013078:	09e1      	lsrs	r1, r4, #7
+ 801307a:	f7ee fd49 	bl	8001b10 <__aeabi_uldivmod>
+ 801307e:	2204      	movs	r2, #4
+ 8013080:	ba00      	rev	r0, r0
+ 8013082:	9001      	str	r0, [sp, #4]
+ 8013084:	eb0d 0102 	add.w	r1, sp, r2
+ 8013088:	2086      	movs	r0, #134	; 0x86
+ 801308a:	f7ff fdff 	bl	8012c8c <SUBGRF_WriteCommand>
+ 801308e:	b003      	add	sp, #12
+ 8013090:	bd30      	pop	{r4, r5, pc}
+ 8013092:	bf00      	nop
+ 8013094:	200027bc 	.word	0x200027bc
+ 8013098:	01e84800 	.word	0x01e84800
+
+0801309c <SUBGRF_SetPacketType>:
+ 801309c:	b507      	push	{r0, r1, r2, lr}
+ 801309e:	4b09      	ldr	r3, [pc, #36]	; (80130c4 <SUBGRF_SetPacketType+0x28>)
+ 80130a0:	f88d 0007 	strb.w	r0, [sp, #7]
+ 80130a4:	4601      	mov	r1, r0
+ 80130a6:	7018      	strb	r0, [r3, #0]
+ 80130a8:	b918      	cbnz	r0, 80130b2 <SUBGRF_SetPacketType+0x16>
+ 80130aa:	f240 60ac 	movw	r0, #1708	; 0x6ac
+ 80130ae:	f7ff fd29 	bl	8012b04 <SUBGRF_WriteRegister>
+ 80130b2:	2201      	movs	r2, #1
+ 80130b4:	f10d 0107 	add.w	r1, sp, #7
+ 80130b8:	208a      	movs	r0, #138	; 0x8a
+ 80130ba:	f7ff fde7 	bl	8012c8c <SUBGRF_WriteCommand>
+ 80130be:	b003      	add	sp, #12
+ 80130c0:	f85d fb04 	ldr.w	pc, [sp], #4
+ 80130c4:	200027bf 	.word	0x200027bf
+
+080130c8 <SUBGRF_SetTxParams>:
+ 80130c8:	2801      	cmp	r0, #1
+ 80130ca:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 80130cc:	460c      	mov	r4, r1
+ 80130ce:	4616      	mov	r6, r2
+ 80130d0:	d137      	bne.n	8013142 <SUBGRF_SetTxParams+0x7a>
+ 80130d2:	2000      	movs	r0, #0
+ 80130d4:	f7f1 faea 	bl	80046ac <RBI_GetRFOMaxPowerConfig>
+ 80130d8:	42a0      	cmp	r0, r4
+ 80130da:	bfb8      	it	lt
+ 80130dc:	b244      	sxtblt	r4, r0
+ 80130de:	280e      	cmp	r0, #14
+ 80130e0:	4605      	mov	r5, r0
+ 80130e2:	d11a      	bne.n	801311a <SUBGRF_SetTxParams+0x52>
+ 80130e4:	2301      	movs	r3, #1
+ 80130e6:	461a      	mov	r2, r3
+ 80130e8:	2100      	movs	r1, #0
+ 80130ea:	2004      	movs	r0, #4
+ 80130ec:	f7ff ff40 	bl	8012f70 <SUBGRF_SetPaConfig>
+ 80130f0:	f06f 0310 	mvn.w	r3, #16
+ 80130f4:	429c      	cmp	r4, r3
+ 80130f6:	bfb8      	it	lt
+ 80130f8:	461c      	movlt	r4, r3
+ 80130fa:	2118      	movs	r1, #24
+ 80130fc:	f640 00e7 	movw	r0, #2279	; 0x8e7
+ 8013100:	f7ff fd00 	bl	8012b04 <SUBGRF_WriteRegister>
+ 8013104:	2202      	movs	r2, #2
+ 8013106:	a901      	add	r1, sp, #4
+ 8013108:	208e      	movs	r0, #142	; 0x8e
+ 801310a:	f88d 4004 	strb.w	r4, [sp, #4]
+ 801310e:	f88d 6005 	strb.w	r6, [sp, #5]
+ 8013112:	f7ff fdbb 	bl	8012c8c <SUBGRF_WriteCommand>
+ 8013116:	b002      	add	sp, #8
+ 8013118:	bd70      	pop	{r4, r5, r6, pc}
+ 801311a:	2301      	movs	r3, #1
+ 801311c:	280a      	cmp	r0, #10
+ 801311e:	b2e4      	uxtb	r4, r4
+ 8013120:	461a      	mov	r2, r3
+ 8013122:	f04f 0100 	mov.w	r1, #0
+ 8013126:	d105      	bne.n	8013134 <SUBGRF_SetTxParams+0x6c>
+ 8013128:	4618      	mov	r0, r3
+ 801312a:	f7ff ff21 	bl	8012f70 <SUBGRF_SetPaConfig>
+ 801312e:	3403      	adds	r4, #3
+ 8013130:	b264      	sxtb	r4, r4
+ 8013132:	e7dd      	b.n	80130f0 <SUBGRF_SetTxParams+0x28>
+ 8013134:	2007      	movs	r0, #7
+ 8013136:	f1c5 050e 	rsb	r5, r5, #14
+ 801313a:	f7ff ff19 	bl	8012f70 <SUBGRF_SetPaConfig>
+ 801313e:	442c      	add	r4, r5
+ 8013140:	e7f6      	b.n	8013130 <SUBGRF_SetTxParams+0x68>
+ 8013142:	f640 00d8 	movw	r0, #2264	; 0x8d8
+ 8013146:	f7ff fced 	bl	8012b24 <SUBGRF_ReadRegister>
+ 801314a:	f040 011e 	orr.w	r1, r0, #30
+ 801314e:	b2c9      	uxtb	r1, r1
+ 8013150:	f640 00d8 	movw	r0, #2264	; 0x8d8
+ 8013154:	f7ff fcd6 	bl	8012b04 <SUBGRF_WriteRegister>
+ 8013158:	2001      	movs	r0, #1
+ 801315a:	f7f1 faa7 	bl	80046ac <RBI_GetRFOMaxPowerConfig>
+ 801315e:	42a0      	cmp	r0, r4
+ 8013160:	bfb8      	it	lt
+ 8013162:	b244      	sxtblt	r4, r0
+ 8013164:	2814      	cmp	r0, #20
+ 8013166:	4605      	mov	r5, r0
+ 8013168:	f04f 0301 	mov.w	r3, #1
+ 801316c:	f04f 0200 	mov.w	r2, #0
+ 8013170:	d10c      	bne.n	801318c <SUBGRF_SetTxParams+0xc4>
+ 8013172:	2105      	movs	r1, #5
+ 8013174:	2003      	movs	r0, #3
+ 8013176:	f7ff fefb 	bl	8012f70 <SUBGRF_SetPaConfig>
+ 801317a:	3402      	adds	r4, #2
+ 801317c:	b264      	sxtb	r4, r4
+ 801317e:	f06f 0308 	mvn.w	r3, #8
+ 8013182:	429c      	cmp	r4, r3
+ 8013184:	bfb8      	it	lt
+ 8013186:	461c      	movlt	r4, r3
+ 8013188:	2138      	movs	r1, #56	; 0x38
+ 801318a:	e7b7      	b.n	80130fc <SUBGRF_SetTxParams+0x34>
+ 801318c:	2811      	cmp	r0, #17
+ 801318e:	d105      	bne.n	801319c <SUBGRF_SetTxParams+0xd4>
+ 8013190:	2103      	movs	r1, #3
+ 8013192:	2002      	movs	r0, #2
+ 8013194:	f7ff feec 	bl	8012f70 <SUBGRF_SetPaConfig>
+ 8013198:	3405      	adds	r4, #5
+ 801319a:	e7ef      	b.n	801317c <SUBGRF_SetTxParams+0xb4>
+ 801319c:	280e      	cmp	r0, #14
+ 801319e:	d104      	bne.n	80131aa <SUBGRF_SetTxParams+0xe2>
+ 80131a0:	2102      	movs	r1, #2
+ 80131a2:	4608      	mov	r0, r1
+ 80131a4:	f7ff fee4 	bl	8012f70 <SUBGRF_SetPaConfig>
+ 80131a8:	e7e9      	b.n	801317e <SUBGRF_SetTxParams+0xb6>
+ 80131aa:	f1c5 0516 	rsb	r5, r5, #22
+ 80131ae:	2107      	movs	r1, #7
+ 80131b0:	2004      	movs	r0, #4
+ 80131b2:	4425      	add	r5, r4
+ 80131b4:	f7ff fedc 	bl	8012f70 <SUBGRF_SetPaConfig>
+ 80131b8:	b26c      	sxtb	r4, r5
+ 80131ba:	e7e0      	b.n	801317e <SUBGRF_SetTxParams+0xb6>
+
+080131bc <SUBGRF_SetModulationParams>:
+ 80131bc:	b513      	push	{r0, r1, r4, lr}
+ 80131be:	4a31      	ldr	r2, [pc, #196]	; (8013284 <SUBGRF_SetModulationParams+0xc8>)
+ 80131c0:	4604      	mov	r4, r0
+ 80131c2:	6851      	ldr	r1, [r2, #4]
+ 80131c4:	6810      	ldr	r0, [r2, #0]
+ 80131c6:	466b      	mov	r3, sp
+ 80131c8:	c303      	stmia	r3!, {r0, r1}
+ 80131ca:	4b2f      	ldr	r3, [pc, #188]	; (8013288 <SUBGRF_SetModulationParams+0xcc>)
+ 80131cc:	7820      	ldrb	r0, [r4, #0]
+ 80131ce:	781b      	ldrb	r3, [r3, #0]
+ 80131d0:	4283      	cmp	r3, r0
+ 80131d2:	d001      	beq.n	80131d8 <SUBGRF_SetModulationParams+0x1c>
+ 80131d4:	f7ff ff62 	bl	801309c <SUBGRF_SetPacketType>
+ 80131d8:	7823      	ldrb	r3, [r4, #0]
+ 80131da:	2b03      	cmp	r3, #3
+ 80131dc:	d827      	bhi.n	801322e <SUBGRF_SetModulationParams+0x72>
+ 80131de:	e8df f003 	tbb	[pc, r3]
+ 80131e2:	3902      	.short	0x3902
+ 80131e4:	3c28      	.short	0x3c28
+ 80131e6:	6862      	ldr	r2, [r4, #4]
+ 80131e8:	4b28      	ldr	r3, [pc, #160]	; (801328c <SUBGRF_SetModulationParams+0xd0>)
+ 80131ea:	fbb3 f3f2 	udiv	r3, r3, r2
+ 80131ee:	0c1a      	lsrs	r2, r3, #16
+ 80131f0:	68a1      	ldr	r1, [r4, #8]
+ 80131f2:	f88d 2000 	strb.w	r2, [sp]
+ 80131f6:	f88d 3002 	strb.w	r3, [sp, #2]
+ 80131fa:	0a1a      	lsrs	r2, r3, #8
+ 80131fc:	7b23      	ldrb	r3, [r4, #12]
+ 80131fe:	f88d 3003 	strb.w	r3, [sp, #3]
+ 8013202:	7b63      	ldrb	r3, [r4, #13]
+ 8013204:	f88d 2001 	strb.w	r2, [sp, #1]
+ 8013208:	f88d 3004 	strb.w	r3, [sp, #4]
+ 801320c:	4a20      	ldr	r2, [pc, #128]	; (8013290 <SUBGRF_SetModulationParams+0xd4>)
+ 801320e:	2300      	movs	r3, #0
+ 8013210:	0648      	lsls	r0, r1, #25
+ 8013212:	09c9      	lsrs	r1, r1, #7
+ 8013214:	f7ee fc7c 	bl	8001b10 <__aeabi_uldivmod>
+ 8013218:	0c03      	lsrs	r3, r0, #16
+ 801321a:	ba40      	rev16	r0, r0
+ 801321c:	f88d 3005 	strb.w	r3, [sp, #5]
+ 8013220:	f8ad 0006 	strh.w	r0, [sp, #6]
+ 8013224:	2208      	movs	r2, #8
+ 8013226:	4669      	mov	r1, sp
+ 8013228:	208b      	movs	r0, #139	; 0x8b
+ 801322a:	f7ff fd2f 	bl	8012c8c <SUBGRF_WriteCommand>
+ 801322e:	b002      	add	sp, #8
+ 8013230:	bd10      	pop	{r4, pc}
+ 8013232:	6922      	ldr	r2, [r4, #16]
+ 8013234:	4b15      	ldr	r3, [pc, #84]	; (801328c <SUBGRF_SetModulationParams+0xd0>)
+ 8013236:	fbb3 f3f2 	udiv	r3, r3, r2
+ 801323a:	0c1a      	lsrs	r2, r3, #16
+ 801323c:	f88d 2000 	strb.w	r2, [sp]
+ 8013240:	f88d 3002 	strb.w	r3, [sp, #2]
+ 8013244:	0a1a      	lsrs	r2, r3, #8
+ 8013246:	7d23      	ldrb	r3, [r4, #20]
+ 8013248:	f88d 2001 	strb.w	r2, [sp, #1]
+ 801324c:	f88d 3003 	strb.w	r3, [sp, #3]
+ 8013250:	2204      	movs	r2, #4
+ 8013252:	e7e8      	b.n	8013226 <SUBGRF_SetModulationParams+0x6a>
+ 8013254:	69a3      	ldr	r3, [r4, #24]
+ 8013256:	9300      	str	r3, [sp, #0]
+ 8013258:	e7fa      	b.n	8013250 <SUBGRF_SetModulationParams+0x94>
+ 801325a:	6862      	ldr	r2, [r4, #4]
+ 801325c:	4b0b      	ldr	r3, [pc, #44]	; (801328c <SUBGRF_SetModulationParams+0xd0>)
+ 801325e:	fbb3 f3f2 	udiv	r3, r3, r2
+ 8013262:	0c1a      	lsrs	r2, r3, #16
+ 8013264:	f88d 2000 	strb.w	r2, [sp]
+ 8013268:	f88d 3002 	strb.w	r3, [sp, #2]
+ 801326c:	0a1a      	lsrs	r2, r3, #8
+ 801326e:	7b23      	ldrb	r3, [r4, #12]
+ 8013270:	f88d 3003 	strb.w	r3, [sp, #3]
+ 8013274:	7b63      	ldrb	r3, [r4, #13]
+ 8013276:	f88d 2001 	strb.w	r2, [sp, #1]
+ 801327a:	f88d 3004 	strb.w	r3, [sp, #4]
+ 801327e:	2205      	movs	r2, #5
+ 8013280:	e7d1      	b.n	8013226 <SUBGRF_SetModulationParams+0x6a>
+ 8013282:	bf00      	nop
+ 8013284:	08014434 	.word	0x08014434
+ 8013288:	200027bf 	.word	0x200027bf
+ 801328c:	3d090000 	.word	0x3d090000
+ 8013290:	01e84800 	.word	0x01e84800
+
+08013294 <SUBGRF_SetPacketParams>:
+ 8013294:	b51f      	push	{r0, r1, r2, r3, r4, lr}
+ 8013296:	4a2e      	ldr	r2, [pc, #184]	; (8013350 <SUBGRF_SetPacketParams+0xbc>)
+ 8013298:	4604      	mov	r4, r0
+ 801329a:	68d1      	ldr	r1, [r2, #12]
+ 801329c:	6890      	ldr	r0, [r2, #8]
+ 801329e:	7c12      	ldrb	r2, [r2, #16]
+ 80132a0:	ab01      	add	r3, sp, #4
+ 80132a2:	c303      	stmia	r3!, {r0, r1}
+ 80132a4:	701a      	strb	r2, [r3, #0]
+ 80132a6:	4b2b      	ldr	r3, [pc, #172]	; (8013354 <SUBGRF_SetPacketParams+0xc0>)
+ 80132a8:	7820      	ldrb	r0, [r4, #0]
+ 80132aa:	781b      	ldrb	r3, [r3, #0]
+ 80132ac:	4283      	cmp	r3, r0
+ 80132ae:	d001      	beq.n	80132b4 <SUBGRF_SetPacketParams+0x20>
+ 80132b0:	f7ff fef4 	bl	801309c <SUBGRF_SetPacketType>
+ 80132b4:	7823      	ldrb	r3, [r4, #0]
+ 80132b6:	2b03      	cmp	r3, #3
+ 80132b8:	d826      	bhi.n	8013308 <SUBGRF_SetPacketParams+0x74>
+ 80132ba:	e8df f003 	tbb	[pc, r3]
+ 80132be:	3802      	.short	0x3802
+ 80132c0:	0233      	.short	0x0233
+ 80132c2:	7a63      	ldrb	r3, [r4, #9]
+ 80132c4:	2bf1      	cmp	r3, #241	; 0xf1
+ 80132c6:	d121      	bne.n	801330c <SUBGRF_SetPacketParams+0x78>
+ 80132c8:	f64f 70ff 	movw	r0, #65535	; 0xffff
+ 80132cc:	f7ff fc84 	bl	8012bd8 <SUBGRF_SetCrcSeed>
+ 80132d0:	f248 0005 	movw	r0, #32773	; 0x8005
+ 80132d4:	f7ff fc92 	bl	8012bfc <SUBGRF_SetCrcPolynomial>
+ 80132d8:	2302      	movs	r3, #2
+ 80132da:	8862      	ldrh	r2, [r4, #2]
+ 80132dc:	88a1      	ldrh	r1, [r4, #4]
+ 80132de:	f8ad 1006 	strh.w	r1, [sp, #6]
+ 80132e2:	ba52      	rev16	r2, r2
+ 80132e4:	88e1      	ldrh	r1, [r4, #6]
+ 80132e6:	f8ad 2004 	strh.w	r2, [sp, #4]
+ 80132ea:	f88d 300b 	strb.w	r3, [sp, #11]
+ 80132ee:	7a22      	ldrb	r2, [r4, #8]
+ 80132f0:	7aa3      	ldrb	r3, [r4, #10]
+ 80132f2:	f88d 200a 	strb.w	r2, [sp, #10]
+ 80132f6:	f8ad 1008 	strh.w	r1, [sp, #8]
+ 80132fa:	f88d 300c 	strb.w	r3, [sp, #12]
+ 80132fe:	2209      	movs	r2, #9
+ 8013300:	a901      	add	r1, sp, #4
+ 8013302:	208c      	movs	r0, #140	; 0x8c
+ 8013304:	f7ff fcc2 	bl	8012c8c <SUBGRF_WriteCommand>
+ 8013308:	b004      	add	sp, #16
+ 801330a:	bd10      	pop	{r4, pc}
+ 801330c:	2bf2      	cmp	r3, #242	; 0xf2
+ 801330e:	d1e4      	bne.n	80132da <SUBGRF_SetPacketParams+0x46>
+ 8013310:	f641 500f 	movw	r0, #7439	; 0x1d0f
+ 8013314:	f7ff fc60 	bl	8012bd8 <SUBGRF_SetCrcSeed>
+ 8013318:	f241 0021 	movw	r0, #4129	; 0x1021
+ 801331c:	f7ff fc6e 	bl	8012bfc <SUBGRF_SetCrcPolynomial>
+ 8013320:	2306      	movs	r3, #6
+ 8013322:	e7da      	b.n	80132da <SUBGRF_SetPacketParams+0x46>
+ 8013324:	7b23      	ldrb	r3, [r4, #12]
+ 8013326:	f88d 3004 	strb.w	r3, [sp, #4]
+ 801332a:	2201      	movs	r2, #1
+ 801332c:	e7e8      	b.n	8013300 <SUBGRF_SetPacketParams+0x6c>
+ 801332e:	89e3      	ldrh	r3, [r4, #14]
+ 8013330:	4a09      	ldr	r2, [pc, #36]	; (8013358 <SUBGRF_SetPacketParams+0xc4>)
+ 8013332:	ba5b      	rev16	r3, r3
+ 8013334:	f8ad 3004 	strh.w	r3, [sp, #4]
+ 8013338:	7c23      	ldrb	r3, [r4, #16]
+ 801333a:	7013      	strb	r3, [r2, #0]
+ 801333c:	f88d 3006 	strb.w	r3, [sp, #6]
+ 8013340:	7c63      	ldrb	r3, [r4, #17]
+ 8013342:	f88d 3007 	strb.w	r3, [sp, #7]
+ 8013346:	8a63      	ldrh	r3, [r4, #18]
+ 8013348:	f8ad 3008 	strh.w	r3, [sp, #8]
+ 801334c:	2206      	movs	r2, #6
+ 801334e:	e7d7      	b.n	8013300 <SUBGRF_SetPacketParams+0x6c>
+ 8013350:	08014434 	.word	0x08014434
+ 8013354:	200027bf 	.word	0x200027bf
+ 8013358:	200027bd 	.word	0x200027bd
+
+0801335c <SUBGRF_SetBufferBaseAddress>:
+ 801335c:	b507      	push	{r0, r1, r2, lr}
+ 801335e:	2202      	movs	r2, #2
+ 8013360:	f88d 0004 	strb.w	r0, [sp, #4]
+ 8013364:	f88d 1005 	strb.w	r1, [sp, #5]
+ 8013368:	208f      	movs	r0, #143	; 0x8f
+ 801336a:	a901      	add	r1, sp, #4
+ 801336c:	f7ff fc8e 	bl	8012c8c <SUBGRF_WriteCommand>
+ 8013370:	b003      	add	sp, #12
+ 8013372:	f85d fb04 	ldr.w	pc, [sp], #4
+	...
+
+08013378 <SUBGRF_ReadCommand>:
+ 8013378:	b510      	push	{r4, lr}
+ 801337a:	4613      	mov	r3, r2
+ 801337c:	f3ef 8410 	mrs	r4, PRIMASK
+ 8013380:	b672      	cpsid	i
+ 8013382:	460a      	mov	r2, r1
+ 8013384:	4601      	mov	r1, r0
+ 8013386:	4803      	ldr	r0, [pc, #12]	; (8013394 <SUBGRF_ReadCommand+0x1c>)
+ 8013388:	f7f6 fe78 	bl	800a07c <HAL_SUBGHZ_ExecGetCmd>
+ 801338c:	f384 8810 	msr	PRIMASK, r4
+ 8013390:	bd10      	pop	{r4, pc}
+ 8013392:	bf00      	nop
+ 8013394:	20000acc 	.word	0x20000acc
+
+08013398 <SUBGRF_GetRssiInst>:
+ 8013398:	b507      	push	{r0, r1, r2, lr}
+ 801339a:	2201      	movs	r2, #1
+ 801339c:	a901      	add	r1, sp, #4
+ 801339e:	2015      	movs	r0, #21
+ 80133a0:	f7ff ffea 	bl	8013378 <SUBGRF_ReadCommand>
+ 80133a4:	f89d 0004 	ldrb.w	r0, [sp, #4]
+ 80133a8:	4240      	negs	r0, r0
+ 80133aa:	1040      	asrs	r0, r0, #1
+ 80133ac:	b003      	add	sp, #12
+ 80133ae:	f85d fb04 	ldr.w	pc, [sp], #4
+	...
+
+080133b4 <SUBGRF_GetRxBufferStatus>:
+ 80133b4:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 80133b6:	4605      	mov	r5, r0
+ 80133b8:	460c      	mov	r4, r1
+ 80133ba:	2202      	movs	r2, #2
+ 80133bc:	a901      	add	r1, sp, #4
+ 80133be:	2013      	movs	r0, #19
+ 80133c0:	f7ff ffda 	bl	8013378 <SUBGRF_ReadCommand>
+ 80133c4:	4b0a      	ldr	r3, [pc, #40]	; (80133f0 <SUBGRF_GetRxBufferStatus+0x3c>)
+ 80133c6:	781b      	ldrb	r3, [r3, #0]
+ 80133c8:	2b01      	cmp	r3, #1
+ 80133ca:	d10d      	bne.n	80133e8 <SUBGRF_GetRxBufferStatus+0x34>
+ 80133cc:	4b09      	ldr	r3, [pc, #36]	; (80133f4 <SUBGRF_GetRxBufferStatus+0x40>)
+ 80133ce:	781b      	ldrb	r3, [r3, #0]
+ 80133d0:	2b01      	cmp	r3, #1
+ 80133d2:	d109      	bne.n	80133e8 <SUBGRF_GetRxBufferStatus+0x34>
+ 80133d4:	f240 7002 	movw	r0, #1794	; 0x702
+ 80133d8:	f7ff fba4 	bl	8012b24 <SUBGRF_ReadRegister>
+ 80133dc:	f89d 3005 	ldrb.w	r3, [sp, #5]
+ 80133e0:	7028      	strb	r0, [r5, #0]
+ 80133e2:	7023      	strb	r3, [r4, #0]
+ 80133e4:	b003      	add	sp, #12
+ 80133e6:	bd30      	pop	{r4, r5, pc}
+ 80133e8:	f89d 0004 	ldrb.w	r0, [sp, #4]
+ 80133ec:	e7f6      	b.n	80133dc <SUBGRF_GetRxBufferStatus+0x28>
+ 80133ee:	bf00      	nop
+ 80133f0:	200027bf 	.word	0x200027bf
+ 80133f4:	200027bd 	.word	0x200027bd
+
+080133f8 <SUBGRF_GetPayload>:
+ 80133f8:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
+ 80133fa:	460d      	mov	r5, r1
+ 80133fc:	4606      	mov	r6, r0
+ 80133fe:	2400      	movs	r4, #0
+ 8013400:	f10d 0107 	add.w	r1, sp, #7
+ 8013404:	4628      	mov	r0, r5
+ 8013406:	4617      	mov	r7, r2
+ 8013408:	f88d 4007 	strb.w	r4, [sp, #7]
+ 801340c:	f7ff ffd2 	bl	80133b4 <SUBGRF_GetRxBufferStatus>
+ 8013410:	782a      	ldrb	r2, [r5, #0]
+ 8013412:	42ba      	cmp	r2, r7
+ 8013414:	d807      	bhi.n	8013426 <SUBGRF_GetPayload+0x2e>
+ 8013416:	f89d 0007 	ldrb.w	r0, [sp, #7]
+ 801341a:	4631      	mov	r1, r6
+ 801341c:	f7ff fc26 	bl	8012c6c <SUBGRF_ReadBuffer>
+ 8013420:	4620      	mov	r0, r4
+ 8013422:	b003      	add	sp, #12
+ 8013424:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8013426:	2001      	movs	r0, #1
+ 8013428:	e7fb      	b.n	8013422 <SUBGRF_GetPayload+0x2a>
+	...
+
+0801342c <SUBGRF_GetPacketStatus>:
+ 801342c:	b513      	push	{r0, r1, r4, lr}
+ 801342e:	2203      	movs	r2, #3
+ 8013430:	4604      	mov	r4, r0
+ 8013432:	a901      	add	r1, sp, #4
+ 8013434:	2014      	movs	r0, #20
+ 8013436:	f7ff ff9f 	bl	8013378 <SUBGRF_ReadCommand>
+ 801343a:	4b18      	ldr	r3, [pc, #96]	; (801349c <SUBGRF_GetPacketStatus+0x70>)
+ 801343c:	781a      	ldrb	r2, [r3, #0]
+ 801343e:	7022      	strb	r2, [r4, #0]
+ 8013440:	b14a      	cbz	r2, 8013456 <SUBGRF_GetPacketStatus+0x2a>
+ 8013442:	2a01      	cmp	r2, #1
+ 8013444:	d017      	beq.n	8013476 <SUBGRF_GetPacketStatus+0x4a>
+ 8013446:	2214      	movs	r2, #20
+ 8013448:	2100      	movs	r1, #0
+ 801344a:	4620      	mov	r0, r4
+ 801344c:	f000 fad2 	bl	80139f4 <UTIL_MEM_set_8>
+ 8013450:	230f      	movs	r3, #15
+ 8013452:	7023      	strb	r3, [r4, #0]
+ 8013454:	e00d      	b.n	8013472 <SUBGRF_GetPacketStatus+0x46>
+ 8013456:	f89d 3004 	ldrb.w	r3, [sp, #4]
+ 801345a:	7123      	strb	r3, [r4, #4]
+ 801345c:	f89d 3005 	ldrb.w	r3, [sp, #5]
+ 8013460:	60a2      	str	r2, [r4, #8]
+ 8013462:	425b      	negs	r3, r3
+ 8013464:	105b      	asrs	r3, r3, #1
+ 8013466:	71a3      	strb	r3, [r4, #6]
+ 8013468:	f89d 3006 	ldrb.w	r3, [sp, #6]
+ 801346c:	425b      	negs	r3, r3
+ 801346e:	105b      	asrs	r3, r3, #1
+ 8013470:	7163      	strb	r3, [r4, #5]
+ 8013472:	b002      	add	sp, #8
+ 8013474:	bd10      	pop	{r4, pc}
+ 8013476:	f89d 3004 	ldrb.w	r3, [sp, #4]
+ 801347a:	425b      	negs	r3, r3
+ 801347c:	105b      	asrs	r3, r3, #1
+ 801347e:	7323      	strb	r3, [r4, #12]
+ 8013480:	f99d 3005 	ldrsb.w	r3, [sp, #5]
+ 8013484:	3302      	adds	r3, #2
+ 8013486:	109b      	asrs	r3, r3, #2
+ 8013488:	7363      	strb	r3, [r4, #13]
+ 801348a:	f89d 3006 	ldrb.w	r3, [sp, #6]
+ 801348e:	425b      	negs	r3, r3
+ 8013490:	105b      	asrs	r3, r3, #1
+ 8013492:	73a3      	strb	r3, [r4, #14]
+ 8013494:	4b02      	ldr	r3, [pc, #8]	; (80134a0 <SUBGRF_GetPacketStatus+0x74>)
+ 8013496:	681b      	ldr	r3, [r3, #0]
+ 8013498:	6123      	str	r3, [r4, #16]
+ 801349a:	e7ea      	b.n	8013472 <SUBGRF_GetPacketStatus+0x46>
+ 801349c:	200027bf 	.word	0x200027bf
+ 80134a0:	200027b8 	.word	0x200027b8
+
+080134a4 <SUBGRF_SetSwitch>:
+ 80134a4:	2901      	cmp	r1, #1
+ 80134a6:	b508      	push	{r3, lr}
+ 80134a8:	4603      	mov	r3, r0
+ 80134aa:	4608      	mov	r0, r1
+ 80134ac:	d10e      	bne.n	80134cc <SUBGRF_SetSwitch+0x28>
+ 80134ae:	2b01      	cmp	r3, #1
+ 80134b0:	d107      	bne.n	80134c2 <SUBGRF_SetSwitch+0x1e>
+ 80134b2:	2004      	movs	r0, #4
+ 80134b4:	f7ff fb46 	bl	8012b44 <Radio_SMPS_Set>
+ 80134b8:	2002      	movs	r0, #2
+ 80134ba:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 80134be:	f7f1 b8cd 	b.w	800465c <RBI_ConfigRFSwitch>
+ 80134c2:	2b02      	cmp	r3, #2
+ 80134c4:	bf14      	ite	ne
+ 80134c6:	4608      	movne	r0, r1
+ 80134c8:	2003      	moveq	r0, #3
+ 80134ca:	e7f6      	b.n	80134ba <SUBGRF_SetSwitch+0x16>
+ 80134cc:	2001      	movs	r0, #1
+ 80134ce:	e7f4      	b.n	80134ba <SUBGRF_SetSwitch+0x16>
+
+080134d0 <SUBGRF_SetRfTxPower>:
+ 80134d0:	b538      	push	{r3, r4, r5, lr}
+ 80134d2:	4604      	mov	r4, r0
+ 80134d4:	f7f1 f8e4 	bl	80046a0 <RBI_GetTxConfig>
+ 80134d8:	b150      	cbz	r0, 80134f0 <SUBGRF_SetRfTxPower+0x20>
+ 80134da:	2802      	cmp	r0, #2
+ 80134dc:	bf14      	ite	ne
+ 80134de:	2501      	movne	r5, #1
+ 80134e0:	2502      	moveq	r5, #2
+ 80134e2:	4628      	mov	r0, r5
+ 80134e4:	2202      	movs	r2, #2
+ 80134e6:	4621      	mov	r1, r4
+ 80134e8:	f7ff fdee 	bl	80130c8 <SUBGRF_SetTxParams>
+ 80134ec:	4628      	mov	r0, r5
+ 80134ee:	bd38      	pop	{r3, r4, r5, pc}
+ 80134f0:	2c0f      	cmp	r4, #15
+ 80134f2:	bfcc      	ite	gt
+ 80134f4:	2502      	movgt	r5, #2
+ 80134f6:	2501      	movle	r5, #1
+ 80134f8:	e7f3      	b.n	80134e2 <SUBGRF_SetRfTxPower+0x12>
+
+080134fa <SUBGRF_GetRadioWakeUpTime>:
+ 80134fa:	200a      	movs	r0, #10
+ 80134fc:	4770      	bx	lr
+	...
+
+08013500 <HAL_SUBGHZ_TxCpltCallback>:
+ 8013500:	4b01      	ldr	r3, [pc, #4]	; (8013508 <HAL_SUBGHZ_TxCpltCallback+0x8>)
+ 8013502:	2001      	movs	r0, #1
+ 8013504:	681b      	ldr	r3, [r3, #0]
+ 8013506:	4718      	bx	r3
+ 8013508:	200027c0 	.word	0x200027c0
+
+0801350c <HAL_SUBGHZ_RxCpltCallback>:
+ 801350c:	4b01      	ldr	r3, [pc, #4]	; (8013514 <HAL_SUBGHZ_RxCpltCallback+0x8>)
+ 801350e:	2002      	movs	r0, #2
+ 8013510:	681b      	ldr	r3, [r3, #0]
+ 8013512:	4718      	bx	r3
+ 8013514:	200027c0 	.word	0x200027c0
+
+08013518 <HAL_SUBGHZ_CRCErrorCallback>:
+ 8013518:	4b01      	ldr	r3, [pc, #4]	; (8013520 <HAL_SUBGHZ_CRCErrorCallback+0x8>)
+ 801351a:	2040      	movs	r0, #64	; 0x40
+ 801351c:	681b      	ldr	r3, [r3, #0]
+ 801351e:	4718      	bx	r3
+ 8013520:	200027c0 	.word	0x200027c0
+
+08013524 <HAL_SUBGHZ_CADStatusCallback>:
+ 8013524:	b111      	cbz	r1, 801352c <HAL_SUBGHZ_CADStatusCallback+0x8>
+ 8013526:	2901      	cmp	r1, #1
+ 8013528:	d004      	beq.n	8013534 <HAL_SUBGHZ_CADStatusCallback+0x10>
+ 801352a:	4770      	bx	lr
+ 801352c:	4b04      	ldr	r3, [pc, #16]	; (8013540 <HAL_SUBGHZ_CADStatusCallback+0x1c>)
+ 801352e:	681b      	ldr	r3, [r3, #0]
+ 8013530:	2080      	movs	r0, #128	; 0x80
+ 8013532:	4718      	bx	r3
+ 8013534:	4b02      	ldr	r3, [pc, #8]	; (8013540 <HAL_SUBGHZ_CADStatusCallback+0x1c>)
+ 8013536:	f44f 7080 	mov.w	r0, #256	; 0x100
+ 801353a:	681b      	ldr	r3, [r3, #0]
+ 801353c:	e7f9      	b.n	8013532 <HAL_SUBGHZ_CADStatusCallback+0xe>
+ 801353e:	bf00      	nop
+ 8013540:	200027c0 	.word	0x200027c0
+
+08013544 <HAL_SUBGHZ_RxTxTimeoutCallback>:
+ 8013544:	4b02      	ldr	r3, [pc, #8]	; (8013550 <HAL_SUBGHZ_RxTxTimeoutCallback+0xc>)
+ 8013546:	f44f 7000 	mov.w	r0, #512	; 0x200
+ 801354a:	681b      	ldr	r3, [r3, #0]
+ 801354c:	4718      	bx	r3
+ 801354e:	bf00      	nop
+ 8013550:	200027c0 	.word	0x200027c0
+
+08013554 <HAL_SUBGHZ_HeaderErrorCallback>:
+ 8013554:	4b01      	ldr	r3, [pc, #4]	; (801355c <HAL_SUBGHZ_HeaderErrorCallback+0x8>)
+ 8013556:	2020      	movs	r0, #32
+ 8013558:	681b      	ldr	r3, [r3, #0]
+ 801355a:	4718      	bx	r3
+ 801355c:	200027c0 	.word	0x200027c0
+
+08013560 <HAL_SUBGHZ_PreambleDetectedCallback>:
+ 8013560:	4b01      	ldr	r3, [pc, #4]	; (8013568 <HAL_SUBGHZ_PreambleDetectedCallback+0x8>)
+ 8013562:	2004      	movs	r0, #4
+ 8013564:	681b      	ldr	r3, [r3, #0]
+ 8013566:	4718      	bx	r3
+ 8013568:	200027c0 	.word	0x200027c0
+
+0801356c <HAL_SUBGHZ_SyncWordValidCallback>:
+ 801356c:	4b01      	ldr	r3, [pc, #4]	; (8013574 <HAL_SUBGHZ_SyncWordValidCallback+0x8>)
+ 801356e:	2008      	movs	r0, #8
+ 8013570:	681b      	ldr	r3, [r3, #0]
+ 8013572:	4718      	bx	r3
+ 8013574:	200027c0 	.word	0x200027c0
+
+08013578 <HAL_SUBGHZ_HeaderValidCallback>:
+ 8013578:	4b01      	ldr	r3, [pc, #4]	; (8013580 <HAL_SUBGHZ_HeaderValidCallback+0x8>)
+ 801357a:	2010      	movs	r0, #16
+ 801357c:	681b      	ldr	r3, [r3, #0]
+ 801357e:	4718      	bx	r3
+ 8013580:	200027c0 	.word	0x200027c0
+
+08013584 <HAL_SUBGHZ_LrFhssHopCallback>:
+ 8013584:	4b02      	ldr	r3, [pc, #8]	; (8013590 <HAL_SUBGHZ_LrFhssHopCallback+0xc>)
+ 8013586:	f44f 4080 	mov.w	r0, #16384	; 0x4000
+ 801358a:	681b      	ldr	r3, [r3, #0]
+ 801358c:	4718      	bx	r3
+ 801358e:	bf00      	nop
+ 8013590:	200027c0 	.word	0x200027c0
+
+08013594 <SUBGRF_GetFskBandwidthRegValue>:
+ 8013594:	b168      	cbz	r0, 80135b2 <SUBGRF_GetFskBandwidthRegValue+0x1e>
+ 8013596:	4a08      	ldr	r2, [pc, #32]	; (80135b8 <SUBGRF_GetFskBandwidthRegValue+0x24>)
+ 8013598:	2300      	movs	r3, #0
+ 801359a:	f852 1033 	ldr.w	r1, [r2, r3, lsl #3]
+ 801359e:	4281      	cmp	r1, r0
+ 80135a0:	d903      	bls.n	80135aa <SUBGRF_GetFskBandwidthRegValue+0x16>
+ 80135a2:	eb02 02c3 	add.w	r2, r2, r3, lsl #3
+ 80135a6:	7910      	ldrb	r0, [r2, #4]
+ 80135a8:	4770      	bx	lr
+ 80135aa:	3301      	adds	r3, #1
+ 80135ac:	2b16      	cmp	r3, #22
+ 80135ae:	d1f4      	bne.n	801359a <SUBGRF_GetFskBandwidthRegValue+0x6>
+ 80135b0:	e7fe      	b.n	80135b0 <SUBGRF_GetFskBandwidthRegValue+0x1c>
+ 80135b2:	201f      	movs	r0, #31
+ 80135b4:	4770      	bx	lr
+ 80135b6:	bf00      	nop
+ 80135b8:	08015810 	.word	0x08015810
+
+080135bc <SUBGRF_GetCFO>:
+ 80135bc:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 80135be:	4b1d      	ldr	r3, [pc, #116]	; (8013634 <SUBGRF_GetCFO+0x78>)
+ 80135c0:	9301      	str	r3, [sp, #4]
+ 80135c2:	4604      	mov	r4, r0
+ 80135c4:	f640 0007 	movw	r0, #2055	; 0x807
+ 80135c8:	460d      	mov	r5, r1
+ 80135ca:	f7ff faab 	bl	8012b24 <SUBGRF_ReadRegister>
+ 80135ce:	f3c0 03c1 	ubfx	r3, r0, #3, #2
+ 80135d2:	3308      	adds	r3, #8
+ 80135d4:	446b      	add	r3, sp
+ 80135d6:	f813 2c04 	ldrb.w	r2, [r3, #-4]
+ 80135da:	f000 0307 	and.w	r3, r0, #7
+ 80135de:	3301      	adds	r3, #1
+ 80135e0:	fa02 f303 	lsl.w	r3, r2, r3
+ 80135e4:	4a14      	ldr	r2, [pc, #80]	; (8013638 <SUBGRF_GetCFO+0x7c>)
+ 80135e6:	fbb2 f2f3 	udiv	r2, r2, r3
+ 80135ea:	fbb2 f0f4 	udiv	r0, r2, r4
+ 80135ee:	2807      	cmp	r0, #7
+ 80135f0:	d81e      	bhi.n	8013630 <SUBGRF_GetCFO+0x74>
+ 80135f2:	0040      	lsls	r0, r0, #1
+ 80135f4:	2803      	cmp	r0, #3
+ 80135f6:	bf8c      	ite	hi
+ 80135f8:	2302      	movhi	r3, #2
+ 80135fa:	2304      	movls	r3, #4
+ 80135fc:	f44f 60d6 	mov.w	r0, #1712	; 0x6b0
+ 8013600:	fb02 f403 	mul.w	r4, r2, r3
+ 8013604:	f7ff fa8e 	bl	8012b24 <SUBGRF_ReadRegister>
+ 8013608:	0206      	lsls	r6, r0, #8
+ 801360a:	f240 60b1 	movw	r0, #1713	; 0x6b1
+ 801360e:	f7ff fa89 	bl	8012b24 <SUBGRF_ReadRegister>
+ 8013612:	f406 6670 	and.w	r6, r6, #3840	; 0xf00
+ 8013616:	4330      	orrs	r0, r6
+ 8013618:	0503      	lsls	r3, r0, #20
+ 801361a:	bf44      	itt	mi
+ 801361c:	ea6f 5000 	mvnmi.w	r0, r0, lsl #20
+ 8013620:	ea6f 5010 	mvnmi.w	r0, r0, lsr #20
+ 8013624:	0963      	lsrs	r3, r4, #5
+ 8013626:	4343      	muls	r3, r0
+ 8013628:	11db      	asrs	r3, r3, #7
+ 801362a:	602b      	str	r3, [r5, #0]
+ 801362c:	b002      	add	sp, #8
+ 801362e:	bd70      	pop	{r4, r5, r6, pc}
+ 8013630:	2301      	movs	r3, #1
+ 8013632:	e7e3      	b.n	80135fc <SUBGRF_GetCFO+0x40>
+ 8013634:	0c0a0804 	.word	0x0c0a0804
+ 8013638:	01e84800 	.word	0x01e84800
+
+0801363c <RFW_TransmitLongPacket>:
+ 801363c:	f04f 30ff 	mov.w	r0, #4294967295
+ 8013640:	4770      	bx	lr
+
+08013642 <RFW_ReceiveLongPacket>:
+ 8013642:	f04f 30ff 	mov.w	r0, #4294967295
+ 8013646:	4770      	bx	lr
+
+08013648 <RFW_Init>:
+ 8013648:	f04f 30ff 	mov.w	r0, #4294967295
+ 801364c:	4770      	bx	lr
+
+0801364e <RFW_DeInit>:
+ 801364e:	4770      	bx	lr
+
+08013650 <RFW_Is_Init>:
+ 8013650:	2000      	movs	r0, #0
+ 8013652:	4770      	bx	lr
+
+08013654 <RFW_Is_LongPacketModeEnabled>:
+ 8013654:	2000      	movs	r0, #0
+ 8013656:	4770      	bx	lr
+
+08013658 <RFW_SetAntSwitch>:
+ 8013658:	4770      	bx	lr
+
+0801365a <RFW_TransmitInit>:
+ 801365a:	f04f 30ff 	mov.w	r0, #4294967295
+ 801365e:	4770      	bx	lr
+
+08013660 <RFW_ReceiveInit>:
+ 8013660:	f04f 30ff 	mov.w	r0, #4294967295
+ 8013664:	4770      	bx	lr
+
+08013666 <RFW_DeInit_TxLongPacket>:
+ 8013666:	4770      	bx	lr
+
+08013668 <RFW_ReceivePayload>:
+ 8013668:	4770      	bx	lr
+
+0801366a <RFW_SetRadioModem>:
+ 801366a:	4770      	bx	lr
+
+0801366c <TRACE_AllocateBufer>:
+ 801366c:	b570      	push	{r4, r5, r6, lr}
+ 801366e:	f3ef 8610 	mrs	r6, PRIMASK
+ 8013672:	b672      	cpsid	i
+ 8013674:	4b14      	ldr	r3, [pc, #80]	; (80136c8 <TRACE_AllocateBufer+0x5c>)
+ 8013676:	8a5c      	ldrh	r4, [r3, #18]
+ 8013678:	8a1a      	ldrh	r2, [r3, #16]
+ 801367a:	4294      	cmp	r4, r2
+ 801367c:	d113      	bne.n	80136a6 <TRACE_AllocateBufer+0x3a>
+ 801367e:	f5c4 6280 	rsb	r2, r4, #1024	; 0x400
+ 8013682:	b292      	uxth	r2, r2
+ 8013684:	4290      	cmp	r0, r2
+ 8013686:	d306      	bcc.n	8013696 <TRACE_AllocateBufer+0x2a>
+ 8013688:	4284      	cmp	r4, r0
+ 801368a:	d918      	bls.n	80136be <TRACE_AllocateBufer+0x52>
+ 801368c:	2201      	movs	r2, #1
+ 801368e:	709a      	strb	r2, [r3, #2]
+ 8013690:	2200      	movs	r2, #0
+ 8013692:	801c      	strh	r4, [r3, #0]
+ 8013694:	825a      	strh	r2, [r3, #18]
+ 8013696:	8a5a      	ldrh	r2, [r3, #18]
+ 8013698:	800a      	strh	r2, [r1, #0]
+ 801369a:	4402      	add	r2, r0
+ 801369c:	f3c2 0209 	ubfx	r2, r2, #0, #10
+ 80136a0:	825a      	strh	r2, [r3, #18]
+ 80136a2:	2000      	movs	r0, #0
+ 80136a4:	e00d      	b.n	80136c2 <TRACE_AllocateBufer+0x56>
+ 80136a6:	d906      	bls.n	80136b6 <TRACE_AllocateBufer+0x4a>
+ 80136a8:	f5c4 6580 	rsb	r5, r4, #1024	; 0x400
+ 80136ac:	b2ad      	uxth	r5, r5
+ 80136ae:	4285      	cmp	r5, r0
+ 80136b0:	d8f1      	bhi.n	8013696 <TRACE_AllocateBufer+0x2a>
+ 80136b2:	4282      	cmp	r2, r0
+ 80136b4:	e7e9      	b.n	801368a <TRACE_AllocateBufer+0x1e>
+ 80136b6:	1b12      	subs	r2, r2, r4
+ 80136b8:	b292      	uxth	r2, r2
+ 80136ba:	4282      	cmp	r2, r0
+ 80136bc:	d8eb      	bhi.n	8013696 <TRACE_AllocateBufer+0x2a>
+ 80136be:	f04f 30ff 	mov.w	r0, #4294967295
+ 80136c2:	f386 8810 	msr	PRIMASK, r6
+ 80136c6:	bd70      	pop	{r4, r5, r6, pc}
+ 80136c8:	20002bc4 	.word	0x20002bc4
+
+080136cc <TRACE_Lock>:
+ 80136cc:	f3ef 8110 	mrs	r1, PRIMASK
+ 80136d0:	b672      	cpsid	i
+ 80136d2:	4a03      	ldr	r2, [pc, #12]	; (80136e0 <TRACE_Lock+0x14>)
+ 80136d4:	8ad3      	ldrh	r3, [r2, #22]
+ 80136d6:	3301      	adds	r3, #1
+ 80136d8:	82d3      	strh	r3, [r2, #22]
+ 80136da:	f381 8810 	msr	PRIMASK, r1
+ 80136de:	4770      	bx	lr
+ 80136e0:	20002bc4 	.word	0x20002bc4
+
+080136e4 <TRACE_UnLock>:
+ 80136e4:	f3ef 8110 	mrs	r1, PRIMASK
+ 80136e8:	b672      	cpsid	i
+ 80136ea:	4a03      	ldr	r2, [pc, #12]	; (80136f8 <TRACE_UnLock+0x14>)
+ 80136ec:	8ad3      	ldrh	r3, [r2, #22]
+ 80136ee:	3b01      	subs	r3, #1
+ 80136f0:	82d3      	strh	r3, [r2, #22]
+ 80136f2:	f381 8810 	msr	PRIMASK, r1
+ 80136f6:	4770      	bx	lr
+ 80136f8:	20002bc4 	.word	0x20002bc4
+
+080136fc <UTIL_ADV_TRACE_Init>:
+ 80136fc:	b510      	push	{r4, lr}
+ 80136fe:	4808      	ldr	r0, [pc, #32]	; (8013720 <UTIL_ADV_TRACE_Init+0x24>)
+ 8013700:	2218      	movs	r2, #24
+ 8013702:	2100      	movs	r1, #0
+ 8013704:	f000 f976 	bl	80139f4 <UTIL_MEM_set_8>
+ 8013708:	4806      	ldr	r0, [pc, #24]	; (8013724 <UTIL_ADV_TRACE_Init+0x28>)
+ 801370a:	f44f 6280 	mov.w	r2, #1024	; 0x400
+ 801370e:	2100      	movs	r1, #0
+ 8013710:	f000 f970 	bl	80139f4 <UTIL_MEM_set_8>
+ 8013714:	4b04      	ldr	r3, [pc, #16]	; (8013728 <UTIL_ADV_TRACE_Init+0x2c>)
+ 8013716:	4805      	ldr	r0, [pc, #20]	; (801372c <UTIL_ADV_TRACE_Init+0x30>)
+ 8013718:	681b      	ldr	r3, [r3, #0]
+ 801371a:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 801371e:	4718      	bx	r3
+ 8013720:	20002bc4 	.word	0x20002bc4
+ 8013724:	200027c4 	.word	0x200027c4
+ 8013728:	0801450c 	.word	0x0801450c
+ 801372c:	0801389d 	.word	0x0801389d
+
+08013730 <UTIL_ADV_TRACE_RegisterTimeStampFunction>:
+ 8013730:	4b01      	ldr	r3, [pc, #4]	; (8013738 <UTIL_ADV_TRACE_RegisterTimeStampFunction+0x8>)
+ 8013732:	6058      	str	r0, [r3, #4]
+ 8013734:	4770      	bx	lr
+ 8013736:	bf00      	nop
+ 8013738:	20002bc4 	.word	0x20002bc4
+
+0801373c <UTIL_ADV_TRACE_SetVerboseLevel>:
+ 801373c:	4b01      	ldr	r3, [pc, #4]	; (8013744 <UTIL_ADV_TRACE_SetVerboseLevel+0x8>)
+ 801373e:	7218      	strb	r0, [r3, #8]
+ 8013740:	4770      	bx	lr
+ 8013742:	bf00      	nop
+ 8013744:	20002bc4 	.word	0x20002bc4
+
+08013748 <TRACE_Send>:
+ 8013748:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 801374a:	f3ef 8510 	mrs	r5, PRIMASK
+ 801374e:	b672      	cpsid	i
+ 8013750:	4c1c      	ldr	r4, [pc, #112]	; (80137c4 <TRACE_Send+0x7c>)
+ 8013752:	8ae0      	ldrh	r0, [r4, #22]
+ 8013754:	2800      	cmp	r0, #0
+ 8013756:	d12f      	bne.n	80137b8 <TRACE_Send+0x70>
+ 8013758:	f7ff ffb8 	bl	80136cc <TRACE_Lock>
+ 801375c:	8a21      	ldrh	r1, [r4, #16]
+ 801375e:	8a62      	ldrh	r2, [r4, #18]
+ 8013760:	4291      	cmp	r1, r2
+ 8013762:	d027      	beq.n	80137b4 <TRACE_Send+0x6c>
+ 8013764:	78a3      	ldrb	r3, [r4, #2]
+ 8013766:	2b01      	cmp	r3, #1
+ 8013768:	d112      	bne.n	8013790 <TRACE_Send+0x48>
+ 801376a:	8823      	ldrh	r3, [r4, #0]
+ 801376c:	8020      	strh	r0, [r4, #0]
+ 801376e:	1a5b      	subs	r3, r3, r1
+ 8013770:	b29b      	uxth	r3, r3
+ 8013772:	2102      	movs	r1, #2
+ 8013774:	82a3      	strh	r3, [r4, #20]
+ 8013776:	70a1      	strb	r1, [r4, #2]
+ 8013778:	b963      	cbnz	r3, 8013794 <TRACE_Send+0x4c>
+ 801377a:	70a3      	strb	r3, [r4, #2]
+ 801377c:	8223      	strh	r3, [r4, #16]
+ 801377e:	8a23      	ldrh	r3, [r4, #16]
+ 8013780:	429a      	cmp	r2, r3
+ 8013782:	bf8b      	itete	hi
+ 8013784:	1ad2      	subhi	r2, r2, r3
+ 8013786:	f5c3 6380 	rsbls	r3, r3, #1024	; 0x400
+ 801378a:	82a2      	strhhi	r2, [r4, #20]
+ 801378c:	82a3      	strhls	r3, [r4, #20]
+ 801378e:	e001      	b.n	8013794 <TRACE_Send+0x4c>
+ 8013790:	2b00      	cmp	r3, #0
+ 8013792:	d0f4      	beq.n	801377e <TRACE_Send+0x36>
+ 8013794:	8a23      	ldrh	r3, [r4, #16]
+ 8013796:	4e0c      	ldr	r6, [pc, #48]	; (80137c8 <TRACE_Send+0x80>)
+ 8013798:	441e      	add	r6, r3
+ 801379a:	f385 8810 	msr	PRIMASK, r5
+ 801379e:	f7ef f9cb 	bl	8002b38 <UTIL_ADV_TRACE_PreSendHook>
+ 80137a2:	4b0a      	ldr	r3, [pc, #40]	; (80137cc <TRACE_Send+0x84>)
+ 80137a4:	8aa1      	ldrh	r1, [r4, #20]
+ 80137a6:	68db      	ldr	r3, [r3, #12]
+ 80137a8:	9301      	str	r3, [sp, #4]
+ 80137aa:	4630      	mov	r0, r6
+ 80137ac:	b002      	add	sp, #8
+ 80137ae:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
+ 80137b2:	4718      	bx	r3
+ 80137b4:	f7ff ff96 	bl	80136e4 <TRACE_UnLock>
+ 80137b8:	f385 8810 	msr	PRIMASK, r5
+ 80137bc:	2000      	movs	r0, #0
+ 80137be:	b002      	add	sp, #8
+ 80137c0:	bd70      	pop	{r4, r5, r6, pc}
+ 80137c2:	bf00      	nop
+ 80137c4:	20002bc4 	.word	0x20002bc4
+ 80137c8:	200027c4 	.word	0x200027c4
+ 80137cc:	0801450c 	.word	0x0801450c
+
+080137d0 <UTIL_ADV_TRACE_COND_FSend>:
+ 80137d0:	b408      	push	{r3}
+ 80137d2:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 80137d4:	b086      	sub	sp, #24
+ 80137d6:	2300      	movs	r3, #0
+ 80137d8:	f8ad 3000 	strh.w	r3, [sp]
+ 80137dc:	4b2c      	ldr	r3, [pc, #176]	; (8013890 <UTIL_ADV_TRACE_COND_FSend+0xc0>)
+ 80137de:	9c0b      	ldr	r4, [sp, #44]	; 0x2c
+ 80137e0:	7a1d      	ldrb	r5, [r3, #8]
+ 80137e2:	4285      	cmp	r5, r0
+ 80137e4:	d34d      	bcc.n	8013882 <UTIL_ADV_TRACE_COND_FSend+0xb2>
+ 80137e6:	68d8      	ldr	r0, [r3, #12]
+ 80137e8:	4381      	bics	r1, r0
+ 80137ea:	d14d      	bne.n	8013888 <UTIL_ADV_TRACE_COND_FSend+0xb8>
+ 80137ec:	685b      	ldr	r3, [r3, #4]
+ 80137ee:	b11b      	cbz	r3, 80137f8 <UTIL_ADV_TRACE_COND_FSend+0x28>
+ 80137f0:	b112      	cbz	r2, 80137f8 <UTIL_ADV_TRACE_COND_FSend+0x28>
+ 80137f2:	4669      	mov	r1, sp
+ 80137f4:	a802      	add	r0, sp, #8
+ 80137f6:	4798      	blx	r3
+ 80137f8:	ab0c      	add	r3, sp, #48	; 0x30
+ 80137fa:	4622      	mov	r2, r4
+ 80137fc:	f44f 7100 	mov.w	r1, #512	; 0x200
+ 8013800:	4824      	ldr	r0, [pc, #144]	; (8013894 <UTIL_ADV_TRACE_COND_FSend+0xc4>)
+ 8013802:	9301      	str	r3, [sp, #4]
+ 8013804:	f000 fbf6 	bl	8013ff4 <tiny_vsnprintf_like>
+ 8013808:	f7ff ff60 	bl	80136cc <TRACE_Lock>
+ 801380c:	f8bd 3000 	ldrh.w	r3, [sp]
+ 8013810:	4418      	add	r0, r3
+ 8013812:	f10d 0102 	add.w	r1, sp, #2
+ 8013816:	b280      	uxth	r0, r0
+ 8013818:	f7ff ff28 	bl	801366c <TRACE_AllocateBufer>
+ 801381c:	3001      	adds	r0, #1
+ 801381e:	d02b      	beq.n	8013878 <UTIL_ADV_TRACE_COND_FSend+0xa8>
+ 8013820:	2200      	movs	r2, #0
+ 8013822:	f8bd 3000 	ldrh.w	r3, [sp]
+ 8013826:	f8bd 7002 	ldrh.w	r7, [sp, #2]
+ 801382a:	481b      	ldr	r0, [pc, #108]	; (8013898 <UTIL_ADV_TRACE_COND_FSend+0xc8>)
+ 801382c:	f10d 0c08 	add.w	ip, sp, #8
+ 8013830:	4616      	mov	r6, r2
+ 8013832:	b291      	uxth	r1, r2
+ 8013834:	fa17 f582 	uxtah	r5, r7, r2
+ 8013838:	428b      	cmp	r3, r1
+ 801383a:	b2ad      	uxth	r5, r5
+ 801383c:	d816      	bhi.n	801386c <UTIL_ADV_TRACE_COND_FSend+0x9c>
+ 801383e:	443b      	add	r3, r7
+ 8013840:	b29b      	uxth	r3, r3
+ 8013842:	b10e      	cbz	r6, 8013848 <UTIL_ADV_TRACE_COND_FSend+0x78>
+ 8013844:	f8ad 3002 	strh.w	r3, [sp, #2]
+ 8013848:	f8bd 5002 	ldrh.w	r5, [sp, #2]
+ 801384c:	9b01      	ldr	r3, [sp, #4]
+ 801384e:	4622      	mov	r2, r4
+ 8013850:	f44f 7100 	mov.w	r1, #512	; 0x200
+ 8013854:	4428      	add	r0, r5
+ 8013856:	f000 fbcd 	bl	8013ff4 <tiny_vsnprintf_like>
+ 801385a:	f7ff ff43 	bl	80136e4 <TRACE_UnLock>
+ 801385e:	f7ff ff73 	bl	8013748 <TRACE_Send>
+ 8013862:	b006      	add	sp, #24
+ 8013864:	e8bd 40f0 	ldmia.w	sp!, {r4, r5, r6, r7, lr}
+ 8013868:	b001      	add	sp, #4
+ 801386a:	4770      	bx	lr
+ 801386c:	f81c 1b01 	ldrb.w	r1, [ip], #1
+ 8013870:	5541      	strb	r1, [r0, r5]
+ 8013872:	3201      	adds	r2, #1
+ 8013874:	2601      	movs	r6, #1
+ 8013876:	e7dc      	b.n	8013832 <UTIL_ADV_TRACE_COND_FSend+0x62>
+ 8013878:	f7ff ff34 	bl	80136e4 <TRACE_UnLock>
+ 801387c:	f06f 0002 	mvn.w	r0, #2
+ 8013880:	e7ef      	b.n	8013862 <UTIL_ADV_TRACE_COND_FSend+0x92>
+ 8013882:	f06f 0004 	mvn.w	r0, #4
+ 8013886:	e7ec      	b.n	8013862 <UTIL_ADV_TRACE_COND_FSend+0x92>
+ 8013888:	f06f 0005 	mvn.w	r0, #5
+ 801388c:	e7e9      	b.n	8013862 <UTIL_ADV_TRACE_COND_FSend+0x92>
+ 801388e:	bf00      	nop
+ 8013890:	20002bc4 	.word	0x20002bc4
+ 8013894:	20002bdc 	.word	0x20002bdc
+ 8013898:	200027c4 	.word	0x200027c4
+
+0801389c <TRACE_TxCpltCallback>:
+ 801389c:	b513      	push	{r0, r1, r4, lr}
+ 801389e:	f3ef 8410 	mrs	r4, PRIMASK
+ 80138a2:	b672      	cpsid	i
+ 80138a4:	4b20      	ldr	r3, [pc, #128]	; (8013928 <TRACE_TxCpltCallback+0x8c>)
+ 80138a6:	789a      	ldrb	r2, [r3, #2]
+ 80138a8:	8a58      	ldrh	r0, [r3, #18]
+ 80138aa:	2a02      	cmp	r2, #2
+ 80138ac:	bf1d      	ittte	ne
+ 80138ae:	8a1a      	ldrhne	r2, [r3, #16]
+ 80138b0:	8a99      	ldrhne	r1, [r3, #20]
+ 80138b2:	1852      	addne	r2, r2, r1
+ 80138b4:	2200      	moveq	r2, #0
+ 80138b6:	bf14      	ite	ne
+ 80138b8:	f3c2 0209 	ubfxne	r2, r2, #0, #10
+ 80138bc:	709a      	strbeq	r2, [r3, #2]
+ 80138be:	4290      	cmp	r0, r2
+ 80138c0:	821a      	strh	r2, [r3, #16]
+ 80138c2:	d028      	beq.n	8013916 <TRACE_TxCpltCallback+0x7a>
+ 80138c4:	8ad9      	ldrh	r1, [r3, #22]
+ 80138c6:	2901      	cmp	r1, #1
+ 80138c8:	d125      	bne.n	8013916 <TRACE_TxCpltCallback+0x7a>
+ 80138ca:	7899      	ldrb	r1, [r3, #2]
+ 80138cc:	2901      	cmp	r1, #1
+ 80138ce:	d113      	bne.n	80138f8 <TRACE_TxCpltCallback+0x5c>
+ 80138d0:	8819      	ldrh	r1, [r3, #0]
+ 80138d2:	1a8a      	subs	r2, r1, r2
+ 80138d4:	2102      	movs	r1, #2
+ 80138d6:	b292      	uxth	r2, r2
+ 80138d8:	7099      	strb	r1, [r3, #2]
+ 80138da:	2100      	movs	r1, #0
+ 80138dc:	829a      	strh	r2, [r3, #20]
+ 80138de:	8019      	strh	r1, [r3, #0]
+ 80138e0:	b962      	cbnz	r2, 80138fc <TRACE_TxCpltCallback+0x60>
+ 80138e2:	709a      	strb	r2, [r3, #2]
+ 80138e4:	821a      	strh	r2, [r3, #16]
+ 80138e6:	8a1a      	ldrh	r2, [r3, #16]
+ 80138e8:	4290      	cmp	r0, r2
+ 80138ea:	bf8b      	itete	hi
+ 80138ec:	1a80      	subhi	r0, r0, r2
+ 80138ee:	f5c2 6280 	rsbls	r2, r2, #1024	; 0x400
+ 80138f2:	8298      	strhhi	r0, [r3, #20]
+ 80138f4:	829a      	strhls	r2, [r3, #20]
+ 80138f6:	e001      	b.n	80138fc <TRACE_TxCpltCallback+0x60>
+ 80138f8:	2900      	cmp	r1, #0
+ 80138fa:	d0f4      	beq.n	80138e6 <TRACE_TxCpltCallback+0x4a>
+ 80138fc:	8a1a      	ldrh	r2, [r3, #16]
+ 80138fe:	480b      	ldr	r0, [pc, #44]	; (801392c <TRACE_TxCpltCallback+0x90>)
+ 8013900:	4410      	add	r0, r2
+ 8013902:	f384 8810 	msr	PRIMASK, r4
+ 8013906:	4a0a      	ldr	r2, [pc, #40]	; (8013930 <TRACE_TxCpltCallback+0x94>)
+ 8013908:	8a99      	ldrh	r1, [r3, #20]
+ 801390a:	68d3      	ldr	r3, [r2, #12]
+ 801390c:	9301      	str	r3, [sp, #4]
+ 801390e:	b002      	add	sp, #8
+ 8013910:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8013914:	4718      	bx	r3
+ 8013916:	f384 8810 	msr	PRIMASK, r4
+ 801391a:	f7ef f911 	bl	8002b40 <UTIL_ADV_TRACE_PostSendHook>
+ 801391e:	b002      	add	sp, #8
+ 8013920:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8013924:	f7ff bede 	b.w	80136e4 <TRACE_UnLock>
+ 8013928:	20002bc4 	.word	0x20002bc4
+ 801392c:	200027c4 	.word	0x200027c4
+ 8013930:	0801450c 	.word	0x0801450c
+
+08013934 <UTIL_LPM_Init>:
+ 8013934:	4a02      	ldr	r2, [pc, #8]	; (8013940 <UTIL_LPM_Init+0xc>)
+ 8013936:	2300      	movs	r3, #0
+ 8013938:	6013      	str	r3, [r2, #0]
+ 801393a:	4a02      	ldr	r2, [pc, #8]	; (8013944 <UTIL_LPM_Init+0x10>)
+ 801393c:	6013      	str	r3, [r2, #0]
+ 801393e:	4770      	bx	lr
+ 8013940:	20002de0 	.word	0x20002de0
+ 8013944:	20002ddc 	.word	0x20002ddc
+
+08013948 <UTIL_LPM_SetStopMode>:
+ 8013948:	b510      	push	{r4, lr}
+ 801394a:	f3ef 8410 	mrs	r4, PRIMASK
+ 801394e:	b672      	cpsid	i
+ 8013950:	b141      	cbz	r1, 8013964 <UTIL_LPM_SetStopMode+0x1c>
+ 8013952:	2901      	cmp	r1, #1
+ 8013954:	d103      	bne.n	801395e <UTIL_LPM_SetStopMode+0x16>
+ 8013956:	4a06      	ldr	r2, [pc, #24]	; (8013970 <UTIL_LPM_SetStopMode+0x28>)
+ 8013958:	6813      	ldr	r3, [r2, #0]
+ 801395a:	4303      	orrs	r3, r0
+ 801395c:	6013      	str	r3, [r2, #0]
+ 801395e:	f384 8810 	msr	PRIMASK, r4
+ 8013962:	bd10      	pop	{r4, pc}
+ 8013964:	4a02      	ldr	r2, [pc, #8]	; (8013970 <UTIL_LPM_SetStopMode+0x28>)
+ 8013966:	6813      	ldr	r3, [r2, #0]
+ 8013968:	ea23 0300 	bic.w	r3, r3, r0
+ 801396c:	e7f6      	b.n	801395c <UTIL_LPM_SetStopMode+0x14>
+ 801396e:	bf00      	nop
+ 8013970:	20002de0 	.word	0x20002de0
+
+08013974 <UTIL_LPM_SetOffMode>:
+ 8013974:	b510      	push	{r4, lr}
+ 8013976:	f3ef 8410 	mrs	r4, PRIMASK
+ 801397a:	b672      	cpsid	i
+ 801397c:	b141      	cbz	r1, 8013990 <UTIL_LPM_SetOffMode+0x1c>
+ 801397e:	2901      	cmp	r1, #1
+ 8013980:	d103      	bne.n	801398a <UTIL_LPM_SetOffMode+0x16>
+ 8013982:	4a06      	ldr	r2, [pc, #24]	; (801399c <UTIL_LPM_SetOffMode+0x28>)
+ 8013984:	6813      	ldr	r3, [r2, #0]
+ 8013986:	4303      	orrs	r3, r0
+ 8013988:	6013      	str	r3, [r2, #0]
+ 801398a:	f384 8810 	msr	PRIMASK, r4
+ 801398e:	bd10      	pop	{r4, pc}
+ 8013990:	4a02      	ldr	r2, [pc, #8]	; (801399c <UTIL_LPM_SetOffMode+0x28>)
+ 8013992:	6813      	ldr	r3, [r2, #0]
+ 8013994:	ea23 0300 	bic.w	r3, r3, r0
+ 8013998:	e7f6      	b.n	8013988 <UTIL_LPM_SetOffMode+0x14>
+ 801399a:	bf00      	nop
+ 801399c:	20002ddc 	.word	0x20002ddc
+
+080139a0 <UTIL_LPM_EnterLowPower>:
+ 80139a0:	b538      	push	{r3, r4, r5, lr}
+ 80139a2:	f3ef 8510 	mrs	r5, PRIMASK
+ 80139a6:	b672      	cpsid	i
+ 80139a8:	4b0a      	ldr	r3, [pc, #40]	; (80139d4 <UTIL_LPM_EnterLowPower+0x34>)
+ 80139aa:	4c0b      	ldr	r4, [pc, #44]	; (80139d8 <UTIL_LPM_EnterLowPower+0x38>)
+ 80139ac:	681b      	ldr	r3, [r3, #0]
+ 80139ae:	b133      	cbz	r3, 80139be <UTIL_LPM_EnterLowPower+0x1e>
+ 80139b0:	6823      	ldr	r3, [r4, #0]
+ 80139b2:	4798      	blx	r3
+ 80139b4:	6863      	ldr	r3, [r4, #4]
+ 80139b6:	4798      	blx	r3
+ 80139b8:	f385 8810 	msr	PRIMASK, r5
+ 80139bc:	bd38      	pop	{r3, r4, r5, pc}
+ 80139be:	4b07      	ldr	r3, [pc, #28]	; (80139dc <UTIL_LPM_EnterLowPower+0x3c>)
+ 80139c0:	681b      	ldr	r3, [r3, #0]
+ 80139c2:	b11b      	cbz	r3, 80139cc <UTIL_LPM_EnterLowPower+0x2c>
+ 80139c4:	68a3      	ldr	r3, [r4, #8]
+ 80139c6:	4798      	blx	r3
+ 80139c8:	68e3      	ldr	r3, [r4, #12]
+ 80139ca:	e7f4      	b.n	80139b6 <UTIL_LPM_EnterLowPower+0x16>
+ 80139cc:	6923      	ldr	r3, [r4, #16]
+ 80139ce:	4798      	blx	r3
+ 80139d0:	6963      	ldr	r3, [r4, #20]
+ 80139d2:	e7f0      	b.n	80139b6 <UTIL_LPM_EnterLowPower+0x16>
+ 80139d4:	20002de0 	.word	0x20002de0
+ 80139d8:	08014460 	.word	0x08014460
+ 80139dc:	20002ddc 	.word	0x20002ddc
+
+080139e0 <UTIL_MEM_cpy_8>:
+ 80139e0:	3801      	subs	r0, #1
+ 80139e2:	440a      	add	r2, r1
+ 80139e4:	4291      	cmp	r1, r2
+ 80139e6:	d100      	bne.n	80139ea <UTIL_MEM_cpy_8+0xa>
+ 80139e8:	4770      	bx	lr
+ 80139ea:	f811 3b01 	ldrb.w	r3, [r1], #1
+ 80139ee:	f800 3f01 	strb.w	r3, [r0, #1]!
+ 80139f2:	e7f7      	b.n	80139e4 <UTIL_MEM_cpy_8+0x4>
+
+080139f4 <UTIL_MEM_set_8>:
+ 80139f4:	f000 bc2c 	b.w	8014250 <memset>
+
+080139f8 <UTIL_SEQ_SetTask>:
+ 80139f8:	b510      	push	{r4, lr}
+ 80139fa:	f3ef 8410 	mrs	r4, PRIMASK
+ 80139fe:	b672      	cpsid	i
+ 8013a00:	4a06      	ldr	r2, [pc, #24]	; (8013a1c <UTIL_SEQ_SetTask+0x24>)
+ 8013a02:	6813      	ldr	r3, [r2, #0]
+ 8013a04:	4303      	orrs	r3, r0
+ 8013a06:	6013      	str	r3, [r2, #0]
+ 8013a08:	4a05      	ldr	r2, [pc, #20]	; (8013a20 <UTIL_SEQ_SetTask+0x28>)
+ 8013a0a:	f852 3031 	ldr.w	r3, [r2, r1, lsl #3]
+ 8013a0e:	4303      	orrs	r3, r0
+ 8013a10:	f842 3031 	str.w	r3, [r2, r1, lsl #3]
+ 8013a14:	f384 8810 	msr	PRIMASK, r4
+ 8013a18:	bd10      	pop	{r4, pc}
+ 8013a1a:	bf00      	nop
+ 8013a1c:	20002e30 	.word	0x20002e30
+ 8013a20:	20002e28 	.word	0x20002e28
+
+08013a24 <UTIL_SEQ_PreIdle>:
+ 8013a24:	4770      	bx	lr
+
+08013a26 <UTIL_SEQ_PostIdle>:
+ 8013a26:	4770      	bx	lr
+
+08013a28 <SEQ_BitPosition>:
+ 8013a28:	0c03      	lsrs	r3, r0, #16
+ 8013a2a:	041b      	lsls	r3, r3, #16
+ 8013a2c:	b9c3      	cbnz	r3, 8013a60 <SEQ_BitPosition+0x38>
+ 8013a2e:	0400      	lsls	r0, r0, #16
+ 8013a30:	2310      	movs	r3, #16
+ 8013a32:	f010 4f7f 	tst.w	r0, #4278190080	; 0xff000000
+ 8013a36:	bf02      	ittt	eq
+ 8013a38:	3308      	addeq	r3, #8
+ 8013a3a:	0200      	lsleq	r0, r0, #8
+ 8013a3c:	b2db      	uxtbeq	r3, r3
+ 8013a3e:	f010 4f70 	tst.w	r0, #4026531840	; 0xf0000000
+ 8013a42:	bf08      	it	eq
+ 8013a44:	0100      	lsleq	r0, r0, #4
+ 8013a46:	ea4f 7010 	mov.w	r0, r0, lsr #28
+ 8013a4a:	4a06      	ldr	r2, [pc, #24]	; (8013a64 <SEQ_BitPosition+0x3c>)
+ 8013a4c:	bf08      	it	eq
+ 8013a4e:	3304      	addeq	r3, #4
+ 8013a50:	5c12      	ldrb	r2, [r2, r0]
+ 8013a52:	bf08      	it	eq
+ 8013a54:	b2db      	uxtbeq	r3, r3
+ 8013a56:	f1c3 031f 	rsb	r3, r3, #31
+ 8013a5a:	1a98      	subs	r0, r3, r2
+ 8013a5c:	b2c0      	uxtb	r0, r0
+ 8013a5e:	4770      	bx	lr
+ 8013a60:	2300      	movs	r3, #0
+ 8013a62:	e7e6      	b.n	8013a32 <SEQ_BitPosition+0xa>
+ 8013a64:	080158c0 	.word	0x080158c0
+
+08013a68 <UTIL_SEQ_Run>:
+ 8013a68:	e92d 4ff8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8013a6c:	4d38      	ldr	r5, [pc, #224]	; (8013b50 <UTIL_SEQ_Run+0xe8>)
+ 8013a6e:	4e39      	ldr	r6, [pc, #228]	; (8013b54 <UTIL_SEQ_Run+0xec>)
+ 8013a70:	f8d5 8000 	ldr.w	r8, [r5]
+ 8013a74:	f8df b0e0 	ldr.w	fp, [pc, #224]	; 8013b58 <UTIL_SEQ_Run+0xf0>
+ 8013a78:	f8df a0e0 	ldr.w	sl, [pc, #224]	; 8013b5c <UTIL_SEQ_Run+0xf4>
+ 8013a7c:	f8df 90e0 	ldr.w	r9, [pc, #224]	; 8013b60 <UTIL_SEQ_Run+0xf8>
+ 8013a80:	f8d6 c000 	ldr.w	ip, [r6]
+ 8013a84:	4f37      	ldr	r7, [pc, #220]	; (8013b64 <UTIL_SEQ_Run+0xfc>)
+ 8013a86:	f8db 1000 	ldr.w	r1, [fp]
+ 8013a8a:	4c37      	ldr	r4, [pc, #220]	; (8013b68 <UTIL_SEQ_Run+0x100>)
+ 8013a8c:	f8da 2000 	ldr.w	r2, [sl]
+ 8013a90:	f8d9 3000 	ldr.w	r3, [r9]
+ 8013a94:	ea08 0000 	and.w	r0, r8, r0
+ 8013a98:	6028      	str	r0, [r5, #0]
+ 8013a9a:	6828      	ldr	r0, [r5, #0]
+ 8013a9c:	ea00 0e02 	and.w	lr, r0, r2
+ 8013aa0:	ea1e 0f0c 	tst.w	lr, ip
+ 8013aa4:	d001      	beq.n	8013aaa <UTIL_SEQ_Run+0x42>
+ 8013aa6:	4219      	tst	r1, r3
+ 8013aa8:	d01e      	beq.n	8013ae8 <UTIL_SEQ_Run+0x80>
+ 8013aaa:	f04f 33ff 	mov.w	r3, #4294967295
+ 8013aae:	603b      	str	r3, [r7, #0]
+ 8013ab0:	f7ff ffb8 	bl	8013a24 <UTIL_SEQ_PreIdle>
+ 8013ab4:	f3ef 8410 	mrs	r4, PRIMASK
+ 8013ab8:	b672      	cpsid	i
+ 8013aba:	6833      	ldr	r3, [r6, #0]
+ 8013abc:	f8db 2000 	ldr.w	r2, [fp]
+ 8013ac0:	f8da 1000 	ldr.w	r1, [sl]
+ 8013ac4:	400b      	ands	r3, r1
+ 8013ac6:	6829      	ldr	r1, [r5, #0]
+ 8013ac8:	420b      	tst	r3, r1
+ 8013aca:	d105      	bne.n	8013ad8 <UTIL_SEQ_Run+0x70>
+ 8013acc:	f8d9 3000 	ldr.w	r3, [r9]
+ 8013ad0:	4213      	tst	r3, r2
+ 8013ad2:	d101      	bne.n	8013ad8 <UTIL_SEQ_Run+0x70>
+ 8013ad4:	f7ee ffbe 	bl	8002a54 <UTIL_SEQ_Idle>
+ 8013ad8:	f384 8810 	msr	PRIMASK, r4
+ 8013adc:	f7ff ffa3 	bl	8013a26 <UTIL_SEQ_PostIdle>
+ 8013ae0:	f8c5 8000 	str.w	r8, [r5]
+ 8013ae4:	e8bd 8ff8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 8013ae8:	6823      	ldr	r3, [r4, #0]
+ 8013aea:	6823      	ldr	r3, [r4, #0]
+ 8013aec:	4003      	ands	r3, r0
+ 8013aee:	4013      	ands	r3, r2
+ 8013af0:	6862      	ldr	r2, [r4, #4]
+ 8013af2:	421a      	tst	r2, r3
+ 8013af4:	bf04      	itt	eq
+ 8013af6:	f04f 32ff 	moveq.w	r2, #4294967295
+ 8013afa:	6062      	streq	r2, [r4, #4]
+ 8013afc:	6860      	ldr	r0, [r4, #4]
+ 8013afe:	4018      	ands	r0, r3
+ 8013b00:	f7ff ff92 	bl	8013a28 <SEQ_BitPosition>
+ 8013b04:	6862      	ldr	r2, [r4, #4]
+ 8013b06:	6038      	str	r0, [r7, #0]
+ 8013b08:	2301      	movs	r3, #1
+ 8013b0a:	fa03 f000 	lsl.w	r0, r3, r0
+ 8013b0e:	ea22 0200 	bic.w	r2, r2, r0
+ 8013b12:	6062      	str	r2, [r4, #4]
+ 8013b14:	f3ef 8110 	mrs	r1, PRIMASK
+ 8013b18:	b672      	cpsid	i
+ 8013b1a:	683a      	ldr	r2, [r7, #0]
+ 8013b1c:	4093      	lsls	r3, r2
+ 8013b1e:	6832      	ldr	r2, [r6, #0]
+ 8013b20:	ea22 0203 	bic.w	r2, r2, r3
+ 8013b24:	6032      	str	r2, [r6, #0]
+ 8013b26:	6822      	ldr	r2, [r4, #0]
+ 8013b28:	ea22 0303 	bic.w	r3, r2, r3
+ 8013b2c:	6023      	str	r3, [r4, #0]
+ 8013b2e:	f381 8810 	msr	PRIMASK, r1
+ 8013b32:	4a0e      	ldr	r2, [pc, #56]	; (8013b6c <UTIL_SEQ_Run+0x104>)
+ 8013b34:	683b      	ldr	r3, [r7, #0]
+ 8013b36:	f852 3023 	ldr.w	r3, [r2, r3, lsl #2]
+ 8013b3a:	4798      	blx	r3
+ 8013b3c:	f8d6 c000 	ldr.w	ip, [r6]
+ 8013b40:	f8db 1000 	ldr.w	r1, [fp]
+ 8013b44:	f8da 2000 	ldr.w	r2, [sl]
+ 8013b48:	f8d9 3000 	ldr.w	r3, [r9]
+ 8013b4c:	e7a5      	b.n	8013a9a <UTIL_SEQ_Run+0x32>
+ 8013b4e:	bf00      	nop
+ 8013b50:	200008c4 	.word	0x200008c4
+ 8013b54:	20002e30 	.word	0x20002e30
+ 8013b58:	20002de8 	.word	0x20002de8
+ 8013b5c:	200008c8 	.word	0x200008c8
+ 8013b60:	20002dec 	.word	0x20002dec
+ 8013b64:	20002de4 	.word	0x20002de4
+ 8013b68:	20002e28 	.word	0x20002e28
+ 8013b6c:	20002df0 	.word	0x20002df0
+
+08013b70 <UTIL_SEQ_RegTask>:
+ 8013b70:	b510      	push	{r4, lr}
+ 8013b72:	4611      	mov	r1, r2
+ 8013b74:	f3ef 8410 	mrs	r4, PRIMASK
+ 8013b78:	b672      	cpsid	i
+ 8013b7a:	f7ff ff55 	bl	8013a28 <SEQ_BitPosition>
+ 8013b7e:	4b03      	ldr	r3, [pc, #12]	; (8013b8c <UTIL_SEQ_RegTask+0x1c>)
+ 8013b80:	f843 1020 	str.w	r1, [r3, r0, lsl #2]
+ 8013b84:	f384 8810 	msr	PRIMASK, r4
+ 8013b88:	bd10      	pop	{r4, pc}
+ 8013b8a:	bf00      	nop
+ 8013b8c:	20002df0 	.word	0x20002df0
+
+08013b90 <SysTimeAdd>:
+ 8013b90:	b082      	sub	sp, #8
+ 8013b92:	b082      	sub	sp, #8
+ 8013b94:	f10d 0c08 	add.w	ip, sp, #8
+ 8013b98:	e90c 0006 	stmdb	ip, {r1, r2}
+ 8013b9c:	f8bd 2004 	ldrh.w	r2, [sp, #4]
+ 8013ba0:	9303      	str	r3, [sp, #12]
+ 8013ba2:	440b      	add	r3, r1
+ 8013ba4:	f8bd 1010 	ldrh.w	r1, [sp, #16]
+ 8013ba8:	440a      	add	r2, r1
+ 8013baa:	b291      	uxth	r1, r2
+ 8013bac:	b212      	sxth	r2, r2
+ 8013bae:	f5b2 7f7a 	cmp.w	r2, #1000	; 0x3e8
+ 8013bb2:	bfa2      	ittt	ge
+ 8013bb4:	f5a1 727a 	subge.w	r2, r1, #1000	; 0x3e8
+ 8013bb8:	3301      	addge	r3, #1
+ 8013bba:	b212      	sxthge	r2, r2
+ 8013bbc:	6003      	str	r3, [r0, #0]
+ 8013bbe:	8082      	strh	r2, [r0, #4]
+ 8013bc0:	b002      	add	sp, #8
+ 8013bc2:	b002      	add	sp, #8
+ 8013bc4:	4770      	bx	lr
+
+08013bc6 <SysTimeSub>:
+ 8013bc6:	b082      	sub	sp, #8
+ 8013bc8:	b082      	sub	sp, #8
+ 8013bca:	f10d 0c08 	add.w	ip, sp, #8
+ 8013bce:	e90c 0006 	stmdb	ip, {r1, r2}
+ 8013bd2:	f8bd 2004 	ldrh.w	r2, [sp, #4]
+ 8013bd6:	9303      	str	r3, [sp, #12]
+ 8013bd8:	1acb      	subs	r3, r1, r3
+ 8013bda:	f8bd 1010 	ldrh.w	r1, [sp, #16]
+ 8013bde:	1a52      	subs	r2, r2, r1
+ 8013be0:	b291      	uxth	r1, r2
+ 8013be2:	b212      	sxth	r2, r2
+ 8013be4:	2a00      	cmp	r2, #0
+ 8013be6:	bfbe      	ittt	lt
+ 8013be8:	f501 727a 	addlt.w	r2, r1, #1000	; 0x3e8
+ 8013bec:	f103 33ff 	addlt.w	r3, r3, #4294967295
+ 8013bf0:	b212      	sxthlt	r2, r2
+ 8013bf2:	6003      	str	r3, [r0, #0]
+ 8013bf4:	8082      	strh	r2, [r0, #4]
+ 8013bf6:	b002      	add	sp, #8
+ 8013bf8:	b002      	add	sp, #8
+ 8013bfa:	4770      	bx	lr
+
+08013bfc <SysTimeSet>:
+ 8013bfc:	b530      	push	{r4, r5, lr}
+ 8013bfe:	b085      	sub	sp, #20
+ 8013c00:	4d11      	ldr	r5, [pc, #68]	; (8013c48 <SysTimeSet+0x4c>)
+ 8013c02:	466b      	mov	r3, sp
+ 8013c04:	e883 0003 	stmia.w	r3, {r0, r1}
+ 8013c08:	2300      	movs	r3, #0
+ 8013c0a:	9302      	str	r3, [sp, #8]
+ 8013c0c:	f8ad 300c 	strh.w	r3, [sp, #12]
+ 8013c10:	a803      	add	r0, sp, #12
+ 8013c12:	692b      	ldr	r3, [r5, #16]
+ 8013c14:	4798      	blx	r3
+ 8013c16:	9b00      	ldr	r3, [sp, #0]
+ 8013c18:	f8bd 4004 	ldrh.w	r4, [sp, #4]
+ 8013c1c:	9002      	str	r0, [sp, #8]
+ 8013c1e:	1a18      	subs	r0, r3, r0
+ 8013c20:	f8bd 300c 	ldrh.w	r3, [sp, #12]
+ 8013c24:	1ae4      	subs	r4, r4, r3
+ 8013c26:	b2a3      	uxth	r3, r4
+ 8013c28:	b224      	sxth	r4, r4
+ 8013c2a:	2c00      	cmp	r4, #0
+ 8013c2c:	bfbe      	ittt	lt
+ 8013c2e:	f503 737a 	addlt.w	r3, r3, #1000	; 0x3e8
+ 8013c32:	b21c      	sxthlt	r4, r3
+ 8013c34:	f100 30ff 	addlt.w	r0, r0, #4294967295
+ 8013c38:	682b      	ldr	r3, [r5, #0]
+ 8013c3a:	4798      	blx	r3
+ 8013c3c:	68ab      	ldr	r3, [r5, #8]
+ 8013c3e:	4620      	mov	r0, r4
+ 8013c40:	4798      	blx	r3
+ 8013c42:	b005      	add	sp, #20
+ 8013c44:	bd30      	pop	{r4, r5, pc}
+ 8013c46:	bf00      	nop
+ 8013c48:	080144cc 	.word	0x080144cc
+
+08013c4c <SysTimeGet>:
+ 8013c4c:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 8013c4e:	4e11      	ldr	r6, [pc, #68]	; (8013c94 <SysTimeGet+0x48>)
+ 8013c50:	2300      	movs	r3, #0
+ 8013c52:	4605      	mov	r5, r0
+ 8013c54:	9300      	str	r3, [sp, #0]
+ 8013c56:	f8ad 3004 	strh.w	r3, [sp, #4]
+ 8013c5a:	a801      	add	r0, sp, #4
+ 8013c5c:	6933      	ldr	r3, [r6, #16]
+ 8013c5e:	4798      	blx	r3
+ 8013c60:	68f3      	ldr	r3, [r6, #12]
+ 8013c62:	9000      	str	r0, [sp, #0]
+ 8013c64:	4798      	blx	r3
+ 8013c66:	6873      	ldr	r3, [r6, #4]
+ 8013c68:	4604      	mov	r4, r0
+ 8013c6a:	4798      	blx	r3
+ 8013c6c:	9b00      	ldr	r3, [sp, #0]
+ 8013c6e:	4418      	add	r0, r3
+ 8013c70:	f8bd 3004 	ldrh.w	r3, [sp, #4]
+ 8013c74:	4423      	add	r3, r4
+ 8013c76:	b29a      	uxth	r2, r3
+ 8013c78:	b21b      	sxth	r3, r3
+ 8013c7a:	f5b3 7f7a 	cmp.w	r3, #1000	; 0x3e8
+ 8013c7e:	bfa2      	ittt	ge
+ 8013c80:	3001      	addge	r0, #1
+ 8013c82:	f5a2 737a 	subge.w	r3, r2, #1000	; 0x3e8
+ 8013c86:	b21b      	sxthge	r3, r3
+ 8013c88:	6028      	str	r0, [r5, #0]
+ 8013c8a:	4628      	mov	r0, r5
+ 8013c8c:	80ab      	strh	r3, [r5, #4]
+ 8013c8e:	b002      	add	sp, #8
+ 8013c90:	bd70      	pop	{r4, r5, r6, pc}
+ 8013c92:	bf00      	nop
+ 8013c94:	080144cc 	.word	0x080144cc
+
+08013c98 <SysTimeGetMcuTime>:
+ 8013c98:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 8013c9a:	2300      	movs	r3, #0
+ 8013c9c:	9300      	str	r3, [sp, #0]
+ 8013c9e:	f8ad 3004 	strh.w	r3, [sp, #4]
+ 8013ca2:	4b07      	ldr	r3, [pc, #28]	; (8013cc0 <SysTimeGetMcuTime+0x28>)
+ 8013ca4:	4604      	mov	r4, r0
+ 8013ca6:	691b      	ldr	r3, [r3, #16]
+ 8013ca8:	a801      	add	r0, sp, #4
+ 8013caa:	4798      	blx	r3
+ 8013cac:	466d      	mov	r5, sp
+ 8013cae:	9000      	str	r0, [sp, #0]
+ 8013cb0:	e895 0003 	ldmia.w	r5, {r0, r1}
+ 8013cb4:	e884 0003 	stmia.w	r4, {r0, r1}
+ 8013cb8:	4620      	mov	r0, r4
+ 8013cba:	b003      	add	sp, #12
+ 8013cbc:	bd30      	pop	{r4, r5, pc}
+ 8013cbe:	bf00      	nop
+ 8013cc0:	080144cc 	.word	0x080144cc
+
+08013cc4 <SysTimeToMs>:
+ 8013cc4:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 8013cc6:	4d0f      	ldr	r5, [pc, #60]	; (8013d04 <SysTimeToMs+0x40>)
+ 8013cc8:	ab02      	add	r3, sp, #8
+ 8013cca:	e903 0003 	stmdb	r3, {r0, r1}
+ 8013cce:	68eb      	ldr	r3, [r5, #12]
+ 8013cd0:	4798      	blx	r3
+ 8013cd2:	686b      	ldr	r3, [r5, #4]
+ 8013cd4:	4604      	mov	r4, r0
+ 8013cd6:	4798      	blx	r3
+ 8013cd8:	f8bd 3004 	ldrh.w	r3, [sp, #4]
+ 8013cdc:	9a00      	ldr	r2, [sp, #0]
+ 8013cde:	1b1b      	subs	r3, r3, r4
+ 8013ce0:	b299      	uxth	r1, r3
+ 8013ce2:	b21b      	sxth	r3, r3
+ 8013ce4:	2b00      	cmp	r3, #0
+ 8013ce6:	eba2 0200 	sub.w	r2, r2, r0
+ 8013cea:	bfbe      	ittt	lt
+ 8013cec:	f501 717a 	addlt.w	r1, r1, #1000	; 0x3e8
+ 8013cf0:	f102 32ff 	addlt.w	r2, r2, #4294967295
+ 8013cf4:	b20b      	sxthlt	r3, r1
+ 8013cf6:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
+ 8013cfa:	fb00 3002 	mla	r0, r0, r2, r3
+ 8013cfe:	b003      	add	sp, #12
+ 8013d00:	bd30      	pop	{r4, r5, pc}
+ 8013d02:	bf00      	nop
+ 8013d04:	080144cc 	.word	0x080144cc
+
+08013d08 <SysTimeFromMs>:
+ 8013d08:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8013d0c:	f44f 757a 	mov.w	r5, #1000	; 0x3e8
+ 8013d10:	fbb1 f5f5 	udiv	r5, r1, r5
+ 8013d14:	ebc5 1345 	rsb	r3, r5, r5, lsl #5
+ 8013d18:	f8df 803c 	ldr.w	r8, [pc, #60]	; 8013d58 <SysTimeFromMs+0x50>
+ 8013d1c:	eb05 0383 	add.w	r3, r5, r3, lsl #2
+ 8013d20:	eba1 03c3 	sub.w	r3, r1, r3, lsl #3
+ 8013d24:	b29c      	uxth	r4, r3
+ 8013d26:	f8d8 300c 	ldr.w	r3, [r8, #12]
+ 8013d2a:	4606      	mov	r6, r0
+ 8013d2c:	4798      	blx	r3
+ 8013d2e:	f8d8 3004 	ldr.w	r3, [r8, #4]
+ 8013d32:	4607      	mov	r7, r0
+ 8013d34:	4798      	blx	r3
+ 8013d36:	19e3      	adds	r3, r4, r7
+ 8013d38:	b299      	uxth	r1, r3
+ 8013d3a:	b21b      	sxth	r3, r3
+ 8013d3c:	f5b3 7f7a 	cmp.w	r3, #1000	; 0x3e8
+ 8013d40:	4428      	add	r0, r5
+ 8013d42:	bfa2      	ittt	ge
+ 8013d44:	f5a1 737a 	subge.w	r3, r1, #1000	; 0x3e8
+ 8013d48:	3001      	addge	r0, #1
+ 8013d4a:	b21b      	sxthge	r3, r3
+ 8013d4c:	6030      	str	r0, [r6, #0]
+ 8013d4e:	80b3      	strh	r3, [r6, #4]
+ 8013d50:	4630      	mov	r0, r6
+ 8013d52:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 8013d56:	bf00      	nop
+ 8013d58:	080144cc 	.word	0x080144cc
+
+08013d5c <UTIL_TIMER_Init>:
+ 8013d5c:	4b02      	ldr	r3, [pc, #8]	; (8013d68 <UTIL_TIMER_Init+0xc>)
+ 8013d5e:	2200      	movs	r2, #0
+ 8013d60:	601a      	str	r2, [r3, #0]
+ 8013d62:	4b02      	ldr	r3, [pc, #8]	; (8013d6c <UTIL_TIMER_Init+0x10>)
+ 8013d64:	681b      	ldr	r3, [r3, #0]
+ 8013d66:	4718      	bx	r3
+ 8013d68:	20002e34 	.word	0x20002e34
+ 8013d6c:	080144e0 	.word	0x080144e0
+
+08013d70 <UTIL_TIMER_Create>:
+ 8013d70:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 8013d72:	4604      	mov	r4, r0
+ 8013d74:	4617      	mov	r7, r2
+ 8013d76:	4608      	mov	r0, r1
+ 8013d78:	461e      	mov	r6, r3
+ 8013d7a:	b17c      	cbz	r4, 8013d9c <UTIL_TIMER_Create+0x2c>
+ 8013d7c:	b173      	cbz	r3, 8013d9c <UTIL_TIMER_Create+0x2c>
+ 8013d7e:	4b08      	ldr	r3, [pc, #32]	; (8013da0 <UTIL_TIMER_Create+0x30>)
+ 8013d80:	2500      	movs	r5, #0
+ 8013d82:	6a5b      	ldr	r3, [r3, #36]	; 0x24
+ 8013d84:	6025      	str	r5, [r4, #0]
+ 8013d86:	4798      	blx	r3
+ 8013d88:	9b06      	ldr	r3, [sp, #24]
+ 8013d8a:	6060      	str	r0, [r4, #4]
+ 8013d8c:	8125      	strh	r5, [r4, #8]
+ 8013d8e:	72a5      	strb	r5, [r4, #10]
+ 8013d90:	60e6      	str	r6, [r4, #12]
+ 8013d92:	6123      	str	r3, [r4, #16]
+ 8013d94:	72e7      	strb	r7, [r4, #11]
+ 8013d96:	6165      	str	r5, [r4, #20]
+ 8013d98:	4628      	mov	r0, r5
+ 8013d9a:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 8013d9c:	2001      	movs	r0, #1
+ 8013d9e:	e7fc      	b.n	8013d9a <UTIL_TIMER_Create+0x2a>
+ 8013da0:	080144e0 	.word	0x080144e0
+
+08013da4 <UTIL_TIMER_GetCurrentTime>:
+ 8013da4:	b510      	push	{r4, lr}
+ 8013da6:	4c03      	ldr	r4, [pc, #12]	; (8013db4 <UTIL_TIMER_GetCurrentTime+0x10>)
+ 8013da8:	69e3      	ldr	r3, [r4, #28]
+ 8013daa:	4798      	blx	r3
+ 8013dac:	6aa3      	ldr	r3, [r4, #40]	; 0x28
+ 8013dae:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8013db2:	4718      	bx	r3
+ 8013db4:	080144e0 	.word	0x080144e0
+
+08013db8 <UTIL_TIMER_GetElapsedTime>:
+ 8013db8:	b570      	push	{r4, r5, r6, lr}
+ 8013dba:	4d06      	ldr	r5, [pc, #24]	; (8013dd4 <UTIL_TIMER_GetElapsedTime+0x1c>)
+ 8013dbc:	69eb      	ldr	r3, [r5, #28]
+ 8013dbe:	4606      	mov	r6, r0
+ 8013dc0:	4798      	blx	r3
+ 8013dc2:	6a6b      	ldr	r3, [r5, #36]	; 0x24
+ 8013dc4:	4604      	mov	r4, r0
+ 8013dc6:	4630      	mov	r0, r6
+ 8013dc8:	4798      	blx	r3
+ 8013dca:	6aab      	ldr	r3, [r5, #40]	; 0x28
+ 8013dcc:	1a20      	subs	r0, r4, r0
+ 8013dce:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
+ 8013dd2:	4718      	bx	r3
+ 8013dd4:	080144e0 	.word	0x080144e0
+
+08013dd8 <TimerExists>:
+ 8013dd8:	4b05      	ldr	r3, [pc, #20]	; (8013df0 <TimerExists+0x18>)
+ 8013dda:	681b      	ldr	r3, [r3, #0]
+ 8013ddc:	b90b      	cbnz	r3, 8013de2 <TimerExists+0xa>
+ 8013dde:	4618      	mov	r0, r3
+ 8013de0:	4770      	bx	lr
+ 8013de2:	4283      	cmp	r3, r0
+ 8013de4:	d001      	beq.n	8013dea <TimerExists+0x12>
+ 8013de6:	695b      	ldr	r3, [r3, #20]
+ 8013de8:	e7f8      	b.n	8013ddc <TimerExists+0x4>
+ 8013dea:	2001      	movs	r0, #1
+ 8013dec:	4770      	bx	lr
+ 8013dee:	bf00      	nop
+ 8013df0:	20002e34 	.word	0x20002e34
+
+08013df4 <TimerSetTimeout>:
+ 8013df4:	e92d 41f3 	stmdb	sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
+ 8013df8:	4e0b      	ldr	r6, [pc, #44]	; (8013e28 <TimerSetTimeout+0x34>)
+ 8013dfa:	6a33      	ldr	r3, [r6, #32]
+ 8013dfc:	4604      	mov	r4, r0
+ 8013dfe:	4798      	blx	r3
+ 8013e00:	2301      	movs	r3, #1
+ 8013e02:	69b7      	ldr	r7, [r6, #24]
+ 8013e04:	7223      	strb	r3, [r4, #8]
+ 8013e06:	f8d4 8000 	ldr.w	r8, [r4]
+ 8013e0a:	4605      	mov	r5, r0
+ 8013e0c:	47b8      	blx	r7
+ 8013e0e:	4428      	add	r0, r5
+ 8013e10:	4580      	cmp	r8, r0
+ 8013e12:	d202      	bcs.n	8013e1a <TimerSetTimeout+0x26>
+ 8013e14:	47b8      	blx	r7
+ 8013e16:	4428      	add	r0, r5
+ 8013e18:	6020      	str	r0, [r4, #0]
+ 8013e1a:	68b3      	ldr	r3, [r6, #8]
+ 8013e1c:	6820      	ldr	r0, [r4, #0]
+ 8013e1e:	9301      	str	r3, [sp, #4]
+ 8013e20:	b002      	add	sp, #8
+ 8013e22:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
+ 8013e26:	4718      	bx	r3
+ 8013e28:	080144e0 	.word	0x080144e0
+
+08013e2c <UTIL_TIMER_Stop>:
+ 8013e2c:	b570      	push	{r4, r5, r6, lr}
+ 8013e2e:	b320      	cbz	r0, 8013e7a <UTIL_TIMER_Stop+0x4e>
+ 8013e30:	f3ef 8610 	mrs	r6, PRIMASK
+ 8013e34:	b672      	cpsid	i
+ 8013e36:	4d12      	ldr	r5, [pc, #72]	; (8013e80 <UTIL_TIMER_Stop+0x54>)
+ 8013e38:	682b      	ldr	r3, [r5, #0]
+ 8013e3a:	2201      	movs	r2, #1
+ 8013e3c:	7282      	strb	r2, [r0, #10]
+ 8013e3e:	b153      	cbz	r3, 8013e56 <UTIL_TIMER_Stop+0x2a>
+ 8013e40:	2200      	movs	r2, #0
+ 8013e42:	7242      	strb	r2, [r0, #9]
+ 8013e44:	4298      	cmp	r0, r3
+ 8013e46:	695c      	ldr	r4, [r3, #20]
+ 8013e48:	d10e      	bne.n	8013e68 <UTIL_TIMER_Stop+0x3c>
+ 8013e4a:	7202      	strb	r2, [r0, #8]
+ 8013e4c:	b13c      	cbz	r4, 8013e5e <UTIL_TIMER_Stop+0x32>
+ 8013e4e:	4620      	mov	r0, r4
+ 8013e50:	602c      	str	r4, [r5, #0]
+ 8013e52:	f7ff ffcf 	bl	8013df4 <TimerSetTimeout>
+ 8013e56:	f386 8810 	msr	PRIMASK, r6
+ 8013e5a:	2000      	movs	r0, #0
+ 8013e5c:	bd70      	pop	{r4, r5, r6, pc}
+ 8013e5e:	4b09      	ldr	r3, [pc, #36]	; (8013e84 <UTIL_TIMER_Stop+0x58>)
+ 8013e60:	68db      	ldr	r3, [r3, #12]
+ 8013e62:	4798      	blx	r3
+ 8013e64:	602c      	str	r4, [r5, #0]
+ 8013e66:	e7f6      	b.n	8013e56 <UTIL_TIMER_Stop+0x2a>
+ 8013e68:	461a      	mov	r2, r3
+ 8013e6a:	695b      	ldr	r3, [r3, #20]
+ 8013e6c:	2b00      	cmp	r3, #0
+ 8013e6e:	d0f2      	beq.n	8013e56 <UTIL_TIMER_Stop+0x2a>
+ 8013e70:	4298      	cmp	r0, r3
+ 8013e72:	d1f9      	bne.n	8013e68 <UTIL_TIMER_Stop+0x3c>
+ 8013e74:	6943      	ldr	r3, [r0, #20]
+ 8013e76:	6153      	str	r3, [r2, #20]
+ 8013e78:	e7ed      	b.n	8013e56 <UTIL_TIMER_Stop+0x2a>
+ 8013e7a:	2001      	movs	r0, #1
+ 8013e7c:	e7ee      	b.n	8013e5c <UTIL_TIMER_Stop+0x30>
+ 8013e7e:	bf00      	nop
+ 8013e80:	20002e34 	.word	0x20002e34
+ 8013e84:	080144e0 	.word	0x080144e0
+
+08013e88 <TimerInsertTimer>:
+ 8013e88:	4b08      	ldr	r3, [pc, #32]	; (8013eac <TimerInsertTimer+0x24>)
+ 8013e8a:	b510      	push	{r4, lr}
+ 8013e8c:	681a      	ldr	r2, [r3, #0]
+ 8013e8e:	6953      	ldr	r3, [r2, #20]
+ 8013e90:	6951      	ldr	r1, [r2, #20]
+ 8013e92:	b911      	cbnz	r1, 8013e9a <TimerInsertTimer+0x12>
+ 8013e94:	6150      	str	r0, [r2, #20]
+ 8013e96:	6141      	str	r1, [r0, #20]
+ 8013e98:	bd10      	pop	{r4, pc}
+ 8013e9a:	6804      	ldr	r4, [r0, #0]
+ 8013e9c:	6819      	ldr	r1, [r3, #0]
+ 8013e9e:	428c      	cmp	r4, r1
+ 8013ea0:	d902      	bls.n	8013ea8 <TimerInsertTimer+0x20>
+ 8013ea2:	461a      	mov	r2, r3
+ 8013ea4:	695b      	ldr	r3, [r3, #20]
+ 8013ea6:	e7f3      	b.n	8013e90 <TimerInsertTimer+0x8>
+ 8013ea8:	4619      	mov	r1, r3
+ 8013eaa:	e7f3      	b.n	8013e94 <TimerInsertTimer+0xc>
+ 8013eac:	20002e34 	.word	0x20002e34
+
+08013eb0 <TimerInsertNewHeadTimer>:
+ 8013eb0:	4a04      	ldr	r2, [pc, #16]	; (8013ec4 <TimerInsertNewHeadTimer+0x14>)
+ 8013eb2:	6813      	ldr	r3, [r2, #0]
+ 8013eb4:	b10b      	cbz	r3, 8013eba <TimerInsertNewHeadTimer+0xa>
+ 8013eb6:	2100      	movs	r1, #0
+ 8013eb8:	7219      	strb	r1, [r3, #8]
+ 8013eba:	6143      	str	r3, [r0, #20]
+ 8013ebc:	6010      	str	r0, [r2, #0]
+ 8013ebe:	f7ff bf99 	b.w	8013df4 <TimerSetTimeout>
+ 8013ec2:	bf00      	nop
+ 8013ec4:	20002e34 	.word	0x20002e34
+
+08013ec8 <UTIL_TIMER_Start>:
+ 8013ec8:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8013ecc:	4604      	mov	r4, r0
+ 8013ece:	2800      	cmp	r0, #0
+ 8013ed0:	d02d      	beq.n	8013f2e <UTIL_TIMER_Start+0x66>
+ 8013ed2:	f7ff ff81 	bl	8013dd8 <TimerExists>
+ 8013ed6:	bb50      	cbnz	r0, 8013f2e <UTIL_TIMER_Start+0x66>
+ 8013ed8:	7a65      	ldrb	r5, [r4, #9]
+ 8013eda:	bb45      	cbnz	r5, 8013f2e <UTIL_TIMER_Start+0x66>
+ 8013edc:	f3ef 8810 	mrs	r8, PRIMASK
+ 8013ee0:	b672      	cpsid	i
+ 8013ee2:	4e14      	ldr	r6, [pc, #80]	; (8013f34 <UTIL_TIMER_Start+0x6c>)
+ 8013ee4:	6867      	ldr	r7, [r4, #4]
+ 8013ee6:	6a33      	ldr	r3, [r6, #32]
+ 8013ee8:	4798      	blx	r3
+ 8013eea:	4287      	cmp	r7, r0
+ 8013eec:	bf2c      	ite	cs
+ 8013eee:	6027      	strcs	r7, [r4, #0]
+ 8013ef0:	6020      	strcc	r0, [r4, #0]
+ 8013ef2:	4f11      	ldr	r7, [pc, #68]	; (8013f38 <UTIL_TIMER_Start+0x70>)
+ 8013ef4:	72a5      	strb	r5, [r4, #10]
+ 8013ef6:	f44f 7380 	mov.w	r3, #256	; 0x100
+ 8013efa:	8123      	strh	r3, [r4, #8]
+ 8013efc:	683b      	ldr	r3, [r7, #0]
+ 8013efe:	b94b      	cbnz	r3, 8013f14 <UTIL_TIMER_Start+0x4c>
+ 8013f00:	6933      	ldr	r3, [r6, #16]
+ 8013f02:	4798      	blx	r3
+ 8013f04:	4620      	mov	r0, r4
+ 8013f06:	f7ff ffd3 	bl	8013eb0 <TimerInsertNewHeadTimer>
+ 8013f0a:	f388 8810 	msr	PRIMASK, r8
+ 8013f0e:	4628      	mov	r0, r5
+ 8013f10:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 8013f14:	69b3      	ldr	r3, [r6, #24]
+ 8013f16:	4798      	blx	r3
+ 8013f18:	6823      	ldr	r3, [r4, #0]
+ 8013f1a:	4418      	add	r0, r3
+ 8013f1c:	683b      	ldr	r3, [r7, #0]
+ 8013f1e:	6020      	str	r0, [r4, #0]
+ 8013f20:	681b      	ldr	r3, [r3, #0]
+ 8013f22:	4298      	cmp	r0, r3
+ 8013f24:	4620      	mov	r0, r4
+ 8013f26:	d3ee      	bcc.n	8013f06 <UTIL_TIMER_Start+0x3e>
+ 8013f28:	f7ff ffae 	bl	8013e88 <TimerInsertTimer>
+ 8013f2c:	e7ed      	b.n	8013f0a <UTIL_TIMER_Start+0x42>
+ 8013f2e:	2501      	movs	r5, #1
+ 8013f30:	e7ed      	b.n	8013f0e <UTIL_TIMER_Start+0x46>
+ 8013f32:	bf00      	nop
+ 8013f34:	080144e0 	.word	0x080144e0
+ 8013f38:	20002e34 	.word	0x20002e34
+
+08013f3c <UTIL_TIMER_SetPeriod>:
+ 8013f3c:	b510      	push	{r4, lr}
+ 8013f3e:	4604      	mov	r4, r0
+ 8013f40:	4608      	mov	r0, r1
+ 8013f42:	b17c      	cbz	r4, 8013f64 <UTIL_TIMER_SetPeriod+0x28>
+ 8013f44:	4b08      	ldr	r3, [pc, #32]	; (8013f68 <UTIL_TIMER_SetPeriod+0x2c>)
+ 8013f46:	6a5b      	ldr	r3, [r3, #36]	; 0x24
+ 8013f48:	4798      	blx	r3
+ 8013f4a:	6060      	str	r0, [r4, #4]
+ 8013f4c:	4620      	mov	r0, r4
+ 8013f4e:	f7ff ff43 	bl	8013dd8 <TimerExists>
+ 8013f52:	b140      	cbz	r0, 8013f66 <UTIL_TIMER_SetPeriod+0x2a>
+ 8013f54:	4620      	mov	r0, r4
+ 8013f56:	f7ff ff69 	bl	8013e2c <UTIL_TIMER_Stop>
+ 8013f5a:	4620      	mov	r0, r4
+ 8013f5c:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8013f60:	f7ff bfb2 	b.w	8013ec8 <UTIL_TIMER_Start>
+ 8013f64:	2001      	movs	r0, #1
+ 8013f66:	bd10      	pop	{r4, pc}
+ 8013f68:	080144e0 	.word	0x080144e0
+
+08013f6c <UTIL_TIMER_IRQ_Handler>:
+ 8013f6c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8013f70:	f3ef 8710 	mrs	r7, PRIMASK
+ 8013f74:	b672      	cpsid	i
+ 8013f76:	4e1d      	ldr	r6, [pc, #116]	; (8013fec <UTIL_TIMER_IRQ_Handler+0x80>)
+ 8013f78:	4d1d      	ldr	r5, [pc, #116]	; (8013ff0 <UTIL_TIMER_IRQ_Handler+0x84>)
+ 8013f7a:	6973      	ldr	r3, [r6, #20]
+ 8013f7c:	4798      	blx	r3
+ 8013f7e:	6933      	ldr	r3, [r6, #16]
+ 8013f80:	4604      	mov	r4, r0
+ 8013f82:	4798      	blx	r3
+ 8013f84:	682b      	ldr	r3, [r5, #0]
+ 8013f86:	b94b      	cbnz	r3, 8013f9c <UTIL_TIMER_IRQ_Handler+0x30>
+ 8013f88:	f04f 0800 	mov.w	r8, #0
+ 8013f8c:	682b      	ldr	r3, [r5, #0]
+ 8013f8e:	b98b      	cbnz	r3, 8013fb4 <UTIL_TIMER_IRQ_Handler+0x48>
+ 8013f90:	6828      	ldr	r0, [r5, #0]
+ 8013f92:	bb28      	cbnz	r0, 8013fe0 <UTIL_TIMER_IRQ_Handler+0x74>
+ 8013f94:	f387 8810 	msr	PRIMASK, r7
+ 8013f98:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 8013f9c:	1b01      	subs	r1, r0, r4
+ 8013f9e:	1a24      	subs	r4, r4, r0
+ 8013fa0:	681a      	ldr	r2, [r3, #0]
+ 8013fa2:	428a      	cmp	r2, r1
+ 8013fa4:	bf8c      	ite	hi
+ 8013fa6:	1912      	addhi	r2, r2, r4
+ 8013fa8:	2200      	movls	r2, #0
+ 8013faa:	601a      	str	r2, [r3, #0]
+ 8013fac:	695b      	ldr	r3, [r3, #20]
+ 8013fae:	2b00      	cmp	r3, #0
+ 8013fb0:	d1f6      	bne.n	8013fa0 <UTIL_TIMER_IRQ_Handler+0x34>
+ 8013fb2:	e7e9      	b.n	8013f88 <UTIL_TIMER_IRQ_Handler+0x1c>
+ 8013fb4:	681c      	ldr	r4, [r3, #0]
+ 8013fb6:	b11c      	cbz	r4, 8013fc0 <UTIL_TIMER_IRQ_Handler+0x54>
+ 8013fb8:	69b3      	ldr	r3, [r6, #24]
+ 8013fba:	4798      	blx	r3
+ 8013fbc:	4284      	cmp	r4, r0
+ 8013fbe:	d2e7      	bcs.n	8013f90 <UTIL_TIMER_IRQ_Handler+0x24>
+ 8013fc0:	682c      	ldr	r4, [r5, #0]
+ 8013fc2:	6963      	ldr	r3, [r4, #20]
+ 8013fc4:	602b      	str	r3, [r5, #0]
+ 8013fc6:	f8a4 8008 	strh.w	r8, [r4, #8]
+ 8013fca:	e9d4 3003 	ldrd	r3, r0, [r4, #12]
+ 8013fce:	4798      	blx	r3
+ 8013fd0:	8963      	ldrh	r3, [r4, #10]
+ 8013fd2:	f5b3 7f80 	cmp.w	r3, #256	; 0x100
+ 8013fd6:	d1d9      	bne.n	8013f8c <UTIL_TIMER_IRQ_Handler+0x20>
+ 8013fd8:	4620      	mov	r0, r4
+ 8013fda:	f7ff ff75 	bl	8013ec8 <UTIL_TIMER_Start>
+ 8013fde:	e7d5      	b.n	8013f8c <UTIL_TIMER_IRQ_Handler+0x20>
+ 8013fe0:	7a03      	ldrb	r3, [r0, #8]
+ 8013fe2:	2b00      	cmp	r3, #0
+ 8013fe4:	d1d6      	bne.n	8013f94 <UTIL_TIMER_IRQ_Handler+0x28>
+ 8013fe6:	f7ff ff05 	bl	8013df4 <TimerSetTimeout>
+ 8013fea:	e7d3      	b.n	8013f94 <UTIL_TIMER_IRQ_Handler+0x28>
+ 8013fec:	080144e0 	.word	0x080144e0
+ 8013ff0:	20002e34 	.word	0x20002e34
+
+08013ff4 <tiny_vsnprintf_like>:
+ 8013ff4:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8013ff8:	b097      	sub	sp, #92	; 0x5c
+ 8013ffa:	2900      	cmp	r1, #0
+ 8013ffc:	4680      	mov	r8, r0
+ 8013ffe:	9103      	str	r1, [sp, #12]
+ 8014000:	f340 810e 	ble.w	8014220 <tiny_vsnprintf_like+0x22c>
+ 8014004:	469a      	mov	sl, r3
+ 8014006:	4604      	mov	r4, r0
+ 8014008:	9903      	ldr	r1, [sp, #12]
+ 801400a:	7813      	ldrb	r3, [r2, #0]
+ 801400c:	eba4 0008 	sub.w	r0, r4, r8
+ 8014010:	3901      	subs	r1, #1
+ 8014012:	b923      	cbnz	r3, 801401e <tiny_vsnprintf_like+0x2a>
+ 8014014:	2300      	movs	r3, #0
+ 8014016:	7023      	strb	r3, [r4, #0]
+ 8014018:	b017      	add	sp, #92	; 0x5c
+ 801401a:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 801401e:	4288      	cmp	r0, r1
+ 8014020:	daf8      	bge.n	8014014 <tiny_vsnprintf_like+0x20>
+ 8014022:	2b25      	cmp	r3, #37	; 0x25
+ 8014024:	d004      	beq.n	8014030 <tiny_vsnprintf_like+0x3c>
+ 8014026:	f804 3b01 	strb.w	r3, [r4], #1
+ 801402a:	4616      	mov	r6, r2
+ 801402c:	1c72      	adds	r2, r6, #1
+ 801402e:	e7eb      	b.n	8014008 <tiny_vsnprintf_like+0x14>
+ 8014030:	f892 c001 	ldrb.w	ip, [r2, #1]
+ 8014034:	f1ac 0330 	sub.w	r3, ip, #48	; 0x30
+ 8014038:	f1d3 0e00 	rsbs	lr, r3, #0
+ 801403c:	eb4e 0e03 	adc.w	lr, lr, r3
+ 8014040:	f1ac 0330 	sub.w	r3, ip, #48	; 0x30
+ 8014044:	2b09      	cmp	r3, #9
+ 8014046:	f102 0601 	add.w	r6, r2, #1
+ 801404a:	d829      	bhi.n	80140a0 <tiny_vsnprintf_like+0xac>
+ 801404c:	4632      	mov	r2, r6
+ 801404e:	2500      	movs	r5, #0
+ 8014050:	f04f 090a 	mov.w	r9, #10
+ 8014054:	4616      	mov	r6, r2
+ 8014056:	f812 3b01 	ldrb.w	r3, [r2], #1
+ 801405a:	f1a3 0030 	sub.w	r0, r3, #48	; 0x30
+ 801405e:	2809      	cmp	r0, #9
+ 8014060:	d919      	bls.n	8014096 <tiny_vsnprintf_like+0xa2>
+ 8014062:	7833      	ldrb	r3, [r6, #0]
+ 8014064:	2b69      	cmp	r3, #105	; 0x69
+ 8014066:	f000 809c 	beq.w	80141a2 <tiny_vsnprintf_like+0x1ae>
+ 801406a:	d81c      	bhi.n	80140a6 <tiny_vsnprintf_like+0xb2>
+ 801406c:	2b63      	cmp	r3, #99	; 0x63
+ 801406e:	d028      	beq.n	80140c2 <tiny_vsnprintf_like+0xce>
+ 8014070:	2b64      	cmp	r3, #100	; 0x64
+ 8014072:	f000 8096 	beq.w	80141a2 <tiny_vsnprintf_like+0x1ae>
+ 8014076:	2b58      	cmp	r3, #88	; 0x58
+ 8014078:	d05b      	beq.n	8014132 <tiny_vsnprintf_like+0x13e>
+ 801407a:	2b25      	cmp	r3, #37	; 0x25
+ 801407c:	d119      	bne.n	80140b2 <tiny_vsnprintf_like+0xbe>
+ 801407e:	7833      	ldrb	r3, [r6, #0]
+ 8014080:	2b00      	cmp	r3, #0
+ 8014082:	f000 8092 	beq.w	80141aa <tiny_vsnprintf_like+0x1b6>
+ 8014086:	f804 3b01 	strb.w	r3, [r4], #1
+ 801408a:	eba4 0308 	sub.w	r3, r4, r8
+ 801408e:	428b      	cmp	r3, r1
+ 8014090:	f280 8089 	bge.w	80141a6 <tiny_vsnprintf_like+0x1b2>
+ 8014094:	e7ca      	b.n	801402c <tiny_vsnprintf_like+0x38>
+ 8014096:	fb09 3305 	mla	r3, r9, r5, r3
+ 801409a:	f1a3 0530 	sub.w	r5, r3, #48	; 0x30
+ 801409e:	e7d9      	b.n	8014054 <tiny_vsnprintf_like+0x60>
+ 80140a0:	f04f 35ff 	mov.w	r5, #4294967295
+ 80140a4:	e7dd      	b.n	8014062 <tiny_vsnprintf_like+0x6e>
+ 80140a6:	2b75      	cmp	r3, #117	; 0x75
+ 80140a8:	d07d      	beq.n	80141a6 <tiny_vsnprintf_like+0x1b2>
+ 80140aa:	2b78      	cmp	r3, #120	; 0x78
+ 80140ac:	d043      	beq.n	8014136 <tiny_vsnprintf_like+0x142>
+ 80140ae:	2b73      	cmp	r3, #115	; 0x73
+ 80140b0:	d01e      	beq.n	80140f0 <tiny_vsnprintf_like+0xfc>
+ 80140b2:	2325      	movs	r3, #37	; 0x25
+ 80140b4:	f804 3b01 	strb.w	r3, [r4], #1
+ 80140b8:	eba4 0308 	sub.w	r3, r4, r8
+ 80140bc:	428b      	cmp	r3, r1
+ 80140be:	da72      	bge.n	80141a6 <tiny_vsnprintf_like+0x1b2>
+ 80140c0:	e7dd      	b.n	801407e <tiny_vsnprintf_like+0x8a>
+ 80140c2:	2d00      	cmp	r5, #0
+ 80140c4:	f105 39ff 	add.w	r9, r5, #4294967295
+ 80140c8:	bfd8      	it	le
+ 80140ca:	f04f 0900 	movle.w	r9, #0
+ 80140ce:	464a      	mov	r2, r9
+ 80140d0:	4620      	mov	r0, r4
+ 80140d2:	2120      	movs	r1, #32
+ 80140d4:	f000 f8bc 	bl	8014250 <memset>
+ 80140d8:	4653      	mov	r3, sl
+ 80140da:	44a1      	add	r9, r4
+ 80140dc:	2d00      	cmp	r5, #0
+ 80140de:	f853 2b04 	ldr.w	r2, [r3], #4
+ 80140e2:	f889 2000 	strb.w	r2, [r9]
+ 80140e6:	bfd8      	it	le
+ 80140e8:	2501      	movle	r5, #1
+ 80140ea:	442c      	add	r4, r5
+ 80140ec:	469a      	mov	sl, r3
+ 80140ee:	e79d      	b.n	801402c <tiny_vsnprintf_like+0x38>
+ 80140f0:	4b4c      	ldr	r3, [pc, #304]	; (8014224 <tiny_vsnprintf_like+0x230>)
+ 80140f2:	f85a 7b04 	ldr.w	r7, [sl], #4
+ 80140f6:	2f00      	cmp	r7, #0
+ 80140f8:	bf08      	it	eq
+ 80140fa:	461f      	moveq	r7, r3
+ 80140fc:	4638      	mov	r0, r7
+ 80140fe:	f7ed f95f 	bl	80013c0 <strlen>
+ 8014102:	eba5 0b00 	sub.w	fp, r5, r0
+ 8014106:	4285      	cmp	r5, r0
+ 8014108:	bfb8      	it	lt
+ 801410a:	f04f 0b00 	movlt.w	fp, #0
+ 801410e:	465a      	mov	r2, fp
+ 8014110:	4681      	mov	r9, r0
+ 8014112:	2120      	movs	r1, #32
+ 8014114:	4620      	mov	r0, r4
+ 8014116:	f000 f89b 	bl	8014250 <memset>
+ 801411a:	44a3      	add	fp, r4
+ 801411c:	2300      	movs	r3, #0
+ 801411e:	454b      	cmp	r3, r9
+ 8014120:	db02      	blt.n	8014128 <tiny_vsnprintf_like+0x134>
+ 8014122:	eb0b 0409 	add.w	r4, fp, r9
+ 8014126:	e781      	b.n	801402c <tiny_vsnprintf_like+0x38>
+ 8014128:	5cfa      	ldrb	r2, [r7, r3]
+ 801412a:	f80b 2003 	strb.w	r2, [fp, r3]
+ 801412e:	3301      	adds	r3, #1
+ 8014130:	e7f5      	b.n	801411e <tiny_vsnprintf_like+0x12a>
+ 8014132:	f04e 0e40 	orr.w	lr, lr, #64	; 0x40
+ 8014136:	2010      	movs	r0, #16
+ 8014138:	f8df 90ec 	ldr.w	r9, [pc, #236]	; 8014228 <tiny_vsnprintf_like+0x234>
+ 801413c:	4f3b      	ldr	r7, [pc, #236]	; (801422c <tiny_vsnprintf_like+0x238>)
+ 801413e:	f01e 0f40 	tst.w	lr, #64	; 0x40
+ 8014142:	bf08      	it	eq
+ 8014144:	464f      	moveq	r7, r9
+ 8014146:	4653      	mov	r3, sl
+ 8014148:	f1bc 0f30 	cmp.w	ip, #48	; 0x30
+ 801414c:	9701      	str	r7, [sp, #4]
+ 801414e:	eba4 0208 	sub.w	r2, r4, r8
+ 8014152:	bf0c      	ite	eq
+ 8014154:	2730      	moveq	r7, #48	; 0x30
+ 8014156:	2720      	movne	r7, #32
+ 8014158:	f01e 0f02 	tst.w	lr, #2
+ 801415c:	eba1 0202 	sub.w	r2, r1, r2
+ 8014160:	9702      	str	r7, [sp, #8]
+ 8014162:	f853 1b04 	ldr.w	r1, [r3], #4
+ 8014166:	d022      	beq.n	80141ae <tiny_vsnprintf_like+0x1ba>
+ 8014168:	2900      	cmp	r1, #0
+ 801416a:	da20      	bge.n	80141ae <tiny_vsnprintf_like+0x1ba>
+ 801416c:	4249      	negs	r1, r1
+ 801416e:	3d01      	subs	r5, #1
+ 8014170:	f04f 0e2d 	mov.w	lr, #45	; 0x2d
+ 8014174:	af05      	add	r7, sp, #20
+ 8014176:	9700      	str	r7, [sp, #0]
+ 8014178:	2700      	movs	r7, #0
+ 801417a:	4689      	mov	r9, r1
+ 801417c:	f8dd a004 	ldr.w	sl, [sp, #4]
+ 8014180:	fbb1 f1f0 	udiv	r1, r1, r0
+ 8014184:	fb00 9b11 	mls	fp, r0, r1, r9
+ 8014188:	4548      	cmp	r0, r9
+ 801418a:	f81a b00b 	ldrb.w	fp, [sl, fp]
+ 801418e:	f8dd a000 	ldr.w	sl, [sp]
+ 8014192:	f80a bb01 	strb.w	fp, [sl], #1
+ 8014196:	f107 0701 	add.w	r7, r7, #1
+ 801419a:	f8cd a000 	str.w	sl, [sp]
+ 801419e:	d9ec      	bls.n	801417a <tiny_vsnprintf_like+0x186>
+ 80141a0:	e00e      	b.n	80141c0 <tiny_vsnprintf_like+0x1cc>
+ 80141a2:	f04e 0e02 	orr.w	lr, lr, #2
+ 80141a6:	200a      	movs	r0, #10
+ 80141a8:	e7c6      	b.n	8014138 <tiny_vsnprintf_like+0x144>
+ 80141aa:	3e01      	subs	r6, #1
+ 80141ac:	e76d      	b.n	801408a <tiny_vsnprintf_like+0x96>
+ 80141ae:	b111      	cbz	r1, 80141b6 <tiny_vsnprintf_like+0x1c2>
+ 80141b0:	f04f 0e00 	mov.w	lr, #0
+ 80141b4:	e7de      	b.n	8014174 <tiny_vsnprintf_like+0x180>
+ 80141b6:	2030      	movs	r0, #48	; 0x30
+ 80141b8:	f88d 0014 	strb.w	r0, [sp, #20]
+ 80141bc:	468e      	mov	lr, r1
+ 80141be:	2701      	movs	r7, #1
+ 80141c0:	f1bc 0f30 	cmp.w	ip, #48	; 0x30
+ 80141c4:	eba5 0507 	sub.w	r5, r5, r7
+ 80141c8:	d004      	beq.n	80141d4 <tiny_vsnprintf_like+0x1e0>
+ 80141ca:	2020      	movs	r0, #32
+ 80141cc:	2d00      	cmp	r5, #0
+ 80141ce:	f105 35ff 	add.w	r5, r5, #4294967295
+ 80141d2:	dc09      	bgt.n	80141e8 <tiny_vsnprintf_like+0x1f4>
+ 80141d4:	f1be 0f00 	cmp.w	lr, #0
+ 80141d8:	d004      	beq.n	80141e4 <tiny_vsnprintf_like+0x1f0>
+ 80141da:	212d      	movs	r1, #45	; 0x2d
+ 80141dc:	3a01      	subs	r2, #1
+ 80141de:	f804 1b01 	strb.w	r1, [r4], #1
+ 80141e2:	d083      	beq.n	80140ec <tiny_vsnprintf_like+0xf8>
+ 80141e4:	4425      	add	r5, r4
+ 80141e6:	e00a      	b.n	80141fe <tiny_vsnprintf_like+0x20a>
+ 80141e8:	3a01      	subs	r2, #1
+ 80141ea:	f804 0b01 	strb.w	r0, [r4], #1
+ 80141ee:	d1ed      	bne.n	80141cc <tiny_vsnprintf_like+0x1d8>
+ 80141f0:	e77c      	b.n	80140ec <tiny_vsnprintf_like+0xf8>
+ 80141f2:	9902      	ldr	r1, [sp, #8]
+ 80141f4:	f804 1b01 	strb.w	r1, [r4], #1
+ 80141f8:	3a01      	subs	r2, #1
+ 80141fa:	f43f af77 	beq.w	80140ec <tiny_vsnprintf_like+0xf8>
+ 80141fe:	1b29      	subs	r1, r5, r4
+ 8014200:	2900      	cmp	r1, #0
+ 8014202:	dcf6      	bgt.n	80141f2 <tiny_vsnprintf_like+0x1fe>
+ 8014204:	a905      	add	r1, sp, #20
+ 8014206:	4439      	add	r1, r7
+ 8014208:	4422      	add	r2, r4
+ 801420a:	4427      	add	r7, r4
+ 801420c:	42a7      	cmp	r7, r4
+ 801420e:	f43f af6d 	beq.w	80140ec <tiny_vsnprintf_like+0xf8>
+ 8014212:	f811 0d01 	ldrb.w	r0, [r1, #-1]!
+ 8014216:	f804 0b01 	strb.w	r0, [r4], #1
+ 801421a:	4294      	cmp	r4, r2
+ 801421c:	d1f6      	bne.n	801420c <tiny_vsnprintf_like+0x218>
+ 801421e:	e765      	b.n	80140ec <tiny_vsnprintf_like+0xf8>
+ 8014220:	2000      	movs	r0, #0
+ 8014222:	e6f9      	b.n	8014018 <tiny_vsnprintf_like+0x24>
+ 8014224:	080158d0 	.word	0x080158d0
+ 8014228:	080158d7 	.word	0x080158d7
+ 801422c:	080158fc 	.word	0x080158fc
+
+08014230 <memcmp>:
+ 8014230:	b510      	push	{r4, lr}
+ 8014232:	3901      	subs	r1, #1
+ 8014234:	4402      	add	r2, r0
+ 8014236:	4290      	cmp	r0, r2
+ 8014238:	d101      	bne.n	801423e <memcmp+0xe>
+ 801423a:	2000      	movs	r0, #0
+ 801423c:	e005      	b.n	801424a <memcmp+0x1a>
+ 801423e:	7803      	ldrb	r3, [r0, #0]
+ 8014240:	f811 4f01 	ldrb.w	r4, [r1, #1]!
+ 8014244:	42a3      	cmp	r3, r4
+ 8014246:	d001      	beq.n	801424c <memcmp+0x1c>
+ 8014248:	1b18      	subs	r0, r3, r4
+ 801424a:	bd10      	pop	{r4, pc}
+ 801424c:	3001      	adds	r0, #1
+ 801424e:	e7f2      	b.n	8014236 <memcmp+0x6>
+
+08014250 <memset>:
+ 8014250:	4402      	add	r2, r0
+ 8014252:	4603      	mov	r3, r0
+ 8014254:	4293      	cmp	r3, r2
+ 8014256:	d100      	bne.n	801425a <memset+0xa>
+ 8014258:	4770      	bx	lr
+ 801425a:	f803 1b01 	strb.w	r1, [r3], #1
+ 801425e:	e7f9      	b.n	8014254 <memset+0x4>
+
+08014260 <__libc_init_array>:
+ 8014260:	b570      	push	{r4, r5, r6, lr}
+ 8014262:	4d0d      	ldr	r5, [pc, #52]	; (8014298 <__libc_init_array+0x38>)
+ 8014264:	4c0d      	ldr	r4, [pc, #52]	; (801429c <__libc_init_array+0x3c>)
+ 8014266:	1b64      	subs	r4, r4, r5
+ 8014268:	10a4      	asrs	r4, r4, #2
+ 801426a:	2600      	movs	r6, #0
+ 801426c:	42a6      	cmp	r6, r4
+ 801426e:	d109      	bne.n	8014284 <__libc_init_array+0x24>
+ 8014270:	4d0b      	ldr	r5, [pc, #44]	; (80142a0 <__libc_init_array+0x40>)
+ 8014272:	4c0c      	ldr	r4, [pc, #48]	; (80142a4 <__libc_init_array+0x44>)
+ 8014274:	f000 f8b8 	bl	80143e8 <_init>
+ 8014278:	1b64      	subs	r4, r4, r5
+ 801427a:	10a4      	asrs	r4, r4, #2
+ 801427c:	2600      	movs	r6, #0
+ 801427e:	42a6      	cmp	r6, r4
+ 8014280:	d105      	bne.n	801428e <__libc_init_array+0x2e>
+ 8014282:	bd70      	pop	{r4, r5, r6, pc}
+ 8014284:	f855 3b04 	ldr.w	r3, [r5], #4
+ 8014288:	4798      	blx	r3
+ 801428a:	3601      	adds	r6, #1
+ 801428c:	e7ee      	b.n	801426c <__libc_init_array+0xc>
+ 801428e:	f855 3b04 	ldr.w	r3, [r5], #4
+ 8014292:	4798      	blx	r3
+ 8014294:	3601      	adds	r6, #1
+ 8014296:	e7f2      	b.n	801427e <__libc_init_array+0x1e>
+ 8014298:	08015a04 	.word	0x08015a04
+ 801429c:	08015a04 	.word	0x08015a04
+ 80142a0:	08015a04 	.word	0x08015a04
+ 80142a4:	08015a08 	.word	0x08015a08
+
+080142a8 <strcpy>:
+ 80142a8:	4603      	mov	r3, r0
+ 80142aa:	f811 2b01 	ldrb.w	r2, [r1], #1
+ 80142ae:	f803 2b01 	strb.w	r2, [r3], #1
+ 80142b2:	2a00      	cmp	r2, #0
+ 80142b4:	d1f9      	bne.n	80142aa <strcpy+0x2>
+ 80142b6:	4770      	bx	lr
+
+080142b8 <__aeabi_memcpy>:
+ 80142b8:	f000 b803 	b.w	80142c2 <memcpy>
+
+080142bc <__aeabi_memclr>:
+ 80142bc:	2200      	movs	r2, #0
+ 80142be:	f000 b80e 	b.w	80142de <__aeabi_memset>
+
+080142c2 <memcpy>:
+ 80142c2:	440a      	add	r2, r1
+ 80142c4:	4291      	cmp	r1, r2
+ 80142c6:	f100 33ff 	add.w	r3, r0, #4294967295
+ 80142ca:	d100      	bne.n	80142ce <memcpy+0xc>
+ 80142cc:	4770      	bx	lr
+ 80142ce:	b510      	push	{r4, lr}
+ 80142d0:	f811 4b01 	ldrb.w	r4, [r1], #1
+ 80142d4:	f803 4f01 	strb.w	r4, [r3, #1]!
+ 80142d8:	4291      	cmp	r1, r2
+ 80142da:	d1f9      	bne.n	80142d0 <memcpy+0xe>
+ 80142dc:	bd10      	pop	{r4, pc}
+
+080142de <__aeabi_memset>:
+ 80142de:	4613      	mov	r3, r2
+ 80142e0:	460a      	mov	r2, r1
+ 80142e2:	4619      	mov	r1, r3
+ 80142e4:	f7ff bfb4 	b.w	8014250 <memset>
+
+080142e8 <floor>:
+ 80142e8:	f3c1 520a 	ubfx	r2, r1, #20, #11
+ 80142ec:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
+ 80142f0:	f2a2 36ff 	subw	r6, r2, #1023	; 0x3ff
+ 80142f4:	2e13      	cmp	r6, #19
+ 80142f6:	460b      	mov	r3, r1
+ 80142f8:	4607      	mov	r7, r0
+ 80142fa:	460c      	mov	r4, r1
+ 80142fc:	4605      	mov	r5, r0
+ 80142fe:	dc32      	bgt.n	8014366 <floor+0x7e>
+ 8014300:	2e00      	cmp	r6, #0
+ 8014302:	da14      	bge.n	801432e <floor+0x46>
+ 8014304:	a334      	add	r3, pc, #208	; (adr r3, 80143d8 <floor+0xf0>)
+ 8014306:	e9d3 2300 	ldrd	r2, r3, [r3]
+ 801430a:	f7ed f867 	bl	80013dc <__adddf3>
+ 801430e:	2200      	movs	r2, #0
+ 8014310:	2300      	movs	r3, #0
+ 8014312:	f7ed fa97 	bl	8001844 <__aeabi_dcmpgt>
+ 8014316:	b138      	cbz	r0, 8014328 <floor+0x40>
+ 8014318:	2c00      	cmp	r4, #0
+ 801431a:	da56      	bge.n	80143ca <floor+0xe2>
+ 801431c:	f024 4400 	bic.w	r4, r4, #2147483648	; 0x80000000
+ 8014320:	4325      	orrs	r5, r4
+ 8014322:	d055      	beq.n	80143d0 <floor+0xe8>
+ 8014324:	4c2e      	ldr	r4, [pc, #184]	; (80143e0 <floor+0xf8>)
+ 8014326:	2500      	movs	r5, #0
+ 8014328:	4623      	mov	r3, r4
+ 801432a:	462f      	mov	r7, r5
+ 801432c:	e025      	b.n	801437a <floor+0x92>
+ 801432e:	4a2d      	ldr	r2, [pc, #180]	; (80143e4 <floor+0xfc>)
+ 8014330:	fa42 f806 	asr.w	r8, r2, r6
+ 8014334:	ea01 0208 	and.w	r2, r1, r8
+ 8014338:	4302      	orrs	r2, r0
+ 801433a:	d01e      	beq.n	801437a <floor+0x92>
+ 801433c:	a326      	add	r3, pc, #152	; (adr r3, 80143d8 <floor+0xf0>)
+ 801433e:	e9d3 2300 	ldrd	r2, r3, [r3]
+ 8014342:	f7ed f84b 	bl	80013dc <__adddf3>
+ 8014346:	2200      	movs	r2, #0
+ 8014348:	2300      	movs	r3, #0
+ 801434a:	f7ed fa7b 	bl	8001844 <__aeabi_dcmpgt>
+ 801434e:	2800      	cmp	r0, #0
+ 8014350:	d0ea      	beq.n	8014328 <floor+0x40>
+ 8014352:	2c00      	cmp	r4, #0
+ 8014354:	bfbe      	ittt	lt
+ 8014356:	f44f 1380 	movlt.w	r3, #1048576	; 0x100000
+ 801435a:	4133      	asrlt	r3, r6
+ 801435c:	18e4      	addlt	r4, r4, r3
+ 801435e:	ea24 0408 	bic.w	r4, r4, r8
+ 8014362:	2500      	movs	r5, #0
+ 8014364:	e7e0      	b.n	8014328 <floor+0x40>
+ 8014366:	2e33      	cmp	r6, #51	; 0x33
+ 8014368:	dd0b      	ble.n	8014382 <floor+0x9a>
+ 801436a:	f5b6 6f80 	cmp.w	r6, #1024	; 0x400
+ 801436e:	d104      	bne.n	801437a <floor+0x92>
+ 8014370:	4602      	mov	r2, r0
+ 8014372:	f7ed f833 	bl	80013dc <__adddf3>
+ 8014376:	4607      	mov	r7, r0
+ 8014378:	460b      	mov	r3, r1
+ 801437a:	4638      	mov	r0, r7
+ 801437c:	4619      	mov	r1, r3
+ 801437e:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
+ 8014382:	f2a2 4213 	subw	r2, r2, #1043	; 0x413
+ 8014386:	f04f 38ff 	mov.w	r8, #4294967295
+ 801438a:	fa28 f802 	lsr.w	r8, r8, r2
+ 801438e:	ea10 0f08 	tst.w	r0, r8
+ 8014392:	d0f2      	beq.n	801437a <floor+0x92>
+ 8014394:	a310      	add	r3, pc, #64	; (adr r3, 80143d8 <floor+0xf0>)
+ 8014396:	e9d3 2300 	ldrd	r2, r3, [r3]
+ 801439a:	f7ed f81f 	bl	80013dc <__adddf3>
+ 801439e:	2200      	movs	r2, #0
+ 80143a0:	2300      	movs	r3, #0
+ 80143a2:	f7ed fa4f 	bl	8001844 <__aeabi_dcmpgt>
+ 80143a6:	2800      	cmp	r0, #0
+ 80143a8:	d0be      	beq.n	8014328 <floor+0x40>
+ 80143aa:	2c00      	cmp	r4, #0
+ 80143ac:	da0a      	bge.n	80143c4 <floor+0xdc>
+ 80143ae:	2e14      	cmp	r6, #20
+ 80143b0:	d101      	bne.n	80143b6 <floor+0xce>
+ 80143b2:	3401      	adds	r4, #1
+ 80143b4:	e006      	b.n	80143c4 <floor+0xdc>
+ 80143b6:	f1c6 0634 	rsb	r6, r6, #52	; 0x34
+ 80143ba:	2301      	movs	r3, #1
+ 80143bc:	40b3      	lsls	r3, r6
+ 80143be:	441d      	add	r5, r3
+ 80143c0:	42af      	cmp	r7, r5
+ 80143c2:	d8f6      	bhi.n	80143b2 <floor+0xca>
+ 80143c4:	ea25 0508 	bic.w	r5, r5, r8
+ 80143c8:	e7ae      	b.n	8014328 <floor+0x40>
+ 80143ca:	2500      	movs	r5, #0
+ 80143cc:	462c      	mov	r4, r5
+ 80143ce:	e7ab      	b.n	8014328 <floor+0x40>
+ 80143d0:	f04f 4400 	mov.w	r4, #2147483648	; 0x80000000
+ 80143d4:	e7a8      	b.n	8014328 <floor+0x40>
+ 80143d6:	bf00      	nop
+ 80143d8:	8800759c 	.word	0x8800759c
+ 80143dc:	7e37e43c 	.word	0x7e37e43c
+ 80143e0:	bff00000 	.word	0xbff00000
+ 80143e4:	000fffff 	.word	0x000fffff
+
+080143e8 <_init>:
+ 80143e8:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 80143ea:	bf00      	nop
+ 80143ec:	bcf8      	pop	{r3, r4, r5, r6, r7}
+ 80143ee:	bc08      	pop	{r3}
+ 80143f0:	469e      	mov	lr, r3
+ 80143f2:	4770      	bx	lr
+
+080143f4 <_fini>:
+ 80143f4:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 80143f6:	bf00      	nop
+ 80143f8:	bcf8      	pop	{r3, r4, r5, r6, r7}
+ 80143fa:	bc08      	pop	{r3}
+ 80143fc:	469e      	mov	lr, r3
+ 80143fe:	4770      	bx	lr
diff --git a/STM32CubeIDE/Release/STS_RR_R125.bin b/STM32CubeIDE/Release/STS_RR_R125.bin
new file mode 100644
index 0000000000000000000000000000000000000000..10a05ed5964d075ae74a7139fb9fd945d8f2d48e
GIT binary patch
literal 91396
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
Qf<hDn(Wm^Jv<Kb)0i%w5$p8QV

literal 0
HcmV?d00001

diff --git a/STM32CubeIDE/Release/STS_RR_R125.list b/STM32CubeIDE/Release/STS_RR_R125.list
new file mode 100644
index 0000000..fda6135
--- /dev/null
+++ b/STM32CubeIDE/Release/STS_RR_R125.list
@@ -0,0 +1,32914 @@
+
+STS_RR_R125.elf:     file format elf32-littlearm
+
+Sections:
+Idx Name          Size      VMA       LMA       File off  Algn
+  0 .isr_vector   00000138  08000000  08000000  00010000  2**0
+                  CONTENTS, ALLOC, LOAD, READONLY, DATA
+  1 .text         00014470  08000138  08000138  00010138  2**3
+                  CONTENTS, ALLOC, LOAD, READONLY, CODE
+  2 .rodata       000015a8  080145a8  080145a8  000245a8  2**2
+                  CONTENTS, ALLOC, LOAD, READONLY, DATA
+  3 .USER_embedded_Keys 000000d8  08015b50  08015b50  00025b50  2**2
+                  CONTENTS, ALLOC, LOAD, READONLY, DATA
+  4 .ARM.extab    00000000  08015c28  08015c28  000308cc  2**0
+                  CONTENTS
+  5 .ARM          00000008  08015c28  08015c28  00025c28  2**2
+                  CONTENTS, ALLOC, LOAD, READONLY, DATA
+  6 .preinit_array 00000000  08015c30  08015c30  000308cc  2**0
+                  CONTENTS, ALLOC, LOAD, DATA
+  7 .init_array   00000004  08015c30  08015c30  00025c30  2**2
+                  CONTENTS, ALLOC, LOAD, DATA
+  8 .fini_array   00000004  08015c34  08015c34  00025c34  2**2
+                  CONTENTS, ALLOC, LOAD, DATA
+  9 .data         000008cc  20000000  08015c38  00030000  2**2
+                  CONTENTS, ALLOC, LOAD, DATA
+ 10 .bss          00002570  200008cc  08016504  000308cc  2**2
+                  ALLOC
+ 11 ._user_heap_stack 00000a04  20002e3c  08016504  00032e3c  2**0
+                  ALLOC
+ 12 .ARM.attributes 0000002e  00000000  00000000  000308cc  2**0
+                  CONTENTS, READONLY
+ 13 .comment      00000043  00000000  00000000  000308fa  2**0
+                  CONTENTS, READONLY
+ 14 .iar_vfe_header 00000020  00000000  00000000  00030940  2**2
+                  CONTENTS, READONLY
+ 15 .debug_frame  000003b4  00000000  00000000  00030960  2**2
+                  CONTENTS, READONLY, DEBUGGING, OCTETS
+
+Disassembly of section .text:
+
+08000138 <__do_global_dtors_aux>:
+ 8000138:	b510      	push	{r4, lr}
+ 800013a:	4c05      	ldr	r4, [pc, #20]	; (8000150 <__do_global_dtors_aux+0x18>)
+ 800013c:	7823      	ldrb	r3, [r4, #0]
+ 800013e:	b933      	cbnz	r3, 800014e <__do_global_dtors_aux+0x16>
+ 8000140:	4b04      	ldr	r3, [pc, #16]	; (8000154 <__do_global_dtors_aux+0x1c>)
+ 8000142:	b113      	cbz	r3, 800014a <__do_global_dtors_aux+0x12>
+ 8000144:	4804      	ldr	r0, [pc, #16]	; (8000158 <__do_global_dtors_aux+0x20>)
+ 8000146:	f3af 8000 	nop.w
+ 800014a:	2301      	movs	r3, #1
+ 800014c:	7023      	strb	r3, [r4, #0]
+ 800014e:	bd10      	pop	{r4, pc}
+ 8000150:	200008cc 	.word	0x200008cc
+ 8000154:	00000000 	.word	0x00000000
+ 8000158:	08014590 	.word	0x08014590
+
+0800015c <frame_dummy>:
+ 800015c:	b508      	push	{r3, lr}
+ 800015e:	4b03      	ldr	r3, [pc, #12]	; (800016c <frame_dummy+0x10>)
+ 8000160:	b11b      	cbz	r3, 800016a <frame_dummy+0xe>
+ 8000162:	4903      	ldr	r1, [pc, #12]	; (8000170 <frame_dummy+0x14>)
+ 8000164:	4803      	ldr	r0, [pc, #12]	; (8000174 <frame_dummy+0x18>)
+ 8000166:	f3af 8000 	nop.w
+ 800016a:	bd08      	pop	{r3, pc}
+ 800016c:	00000000 	.word	0x00000000
+ 8000170:	200008d0 	.word	0x200008d0
+ 8000174:	08014590 	.word	0x08014590
+
+08000178 <cmox_sha1_setDefaultMacLen>:
+ 8000178:	2114      	movs	r1, #20
+ 800017a:	6041      	str	r1, [r0, #4]
+ 800017c:	4770      	bx	lr
+
+0800017e <cmox_sha1_getDefaultMacLen>:
+ 800017e:	2014      	movs	r0, #20
+ 8000180:	4770      	bx	lr
+
+08000182 <cmox_sha1_getBlockLen>:
+ 8000182:	6a40      	ldr	r0, [r0, #36]	; 0x24
+ 8000184:	4770      	bx	lr
+	...
+
+08000188 <CMOX_HMAC_SUPPORT_SHA1>:
+ 8000188:	0179 0800 017f 0800 0183 0800               y...........
+
+08000194 <CMOX_HMAC_SHA1_TABLE>:
+ 8000194:	0199 0800                                   ....
+
+08000198 <cmox_hmac_sha1_constructor>:
+ 8000198:	b510      	push	{r4, lr}
+ 800019a:	4604      	mov	r4, r0
+ 800019c:	f104 0010 	add.w	r0, r4, #16
+ 80001a0:	f000 fc5c 	bl	8000a5c <cmox_sha1_construct>
+ 80001a4:	f8c4 00f8 	str.w	r0, [r4, #248]	; 0xf8
+ 80001a8:	4801      	ldr	r0, [pc, #4]	; (80001b0 <cmox_hmac_sha1_constructor+0x18>)
+ 80001aa:	f8c4 017c 	str.w	r0, [r4, #380]	; 0x17c
+ 80001ae:	bd10      	pop	{r4, pc}
+ 80001b0:	08000188 	.word	0x08000188
+
+080001b4 <cmox_hmac_sha1_compute>:
+ 80001b4:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 80001b6:	b0e6      	sub	sp, #408	; 0x198
+ 80001b8:	4604      	mov	r4, r0
+ 80001ba:	460d      	mov	r5, r1
+ 80001bc:	4616      	mov	r6, r2
+ 80001be:	461f      	mov	r7, r3
+ 80001c0:	490a      	ldr	r1, [pc, #40]	; (80001ec <cmox_hmac_sha1_compute+0x38>)
+ 80001c2:	a806      	add	r0, sp, #24
+ 80001c4:	f000 feca 	bl	8000f5c <cmox_hmac_construct>
+ 80001c8:	9970      	ldr	r1, [sp, #448]	; 0x1c0
+ 80001ca:	9a6f      	ldr	r2, [sp, #444]	; 0x1bc
+ 80001cc:	9105      	str	r1, [sp, #20]
+ 80001ce:	9204      	str	r2, [sp, #16]
+ 80001d0:	9700      	str	r7, [sp, #0]
+ 80001d2:	4633      	mov	r3, r6
+ 80001d4:	996e      	ldr	r1, [sp, #440]	; 0x1b8
+ 80001d6:	9a6d      	ldr	r2, [sp, #436]	; 0x1b4
+ 80001d8:	9103      	str	r1, [sp, #12]
+ 80001da:	9202      	str	r2, [sp, #8]
+ 80001dc:	462a      	mov	r2, r5
+ 80001de:	996c      	ldr	r1, [sp, #432]	; 0x1b0
+ 80001e0:	9101      	str	r1, [sp, #4]
+ 80001e2:	4621      	mov	r1, r4
+ 80001e4:	f000 f860 	bl	80002a8 <cmox_mac_innerCompute>
+ 80001e8:	b067      	add	sp, #412	; 0x19c
+ 80001ea:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 80001ec:	08000194 	.word	0x08000194
+
+080001f0 <cmox_hmac_sha1_verify>:
+ 80001f0:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 80001f2:	b0e6      	sub	sp, #408	; 0x198
+ 80001f4:	4604      	mov	r4, r0
+ 80001f6:	460d      	mov	r5, r1
+ 80001f8:	4616      	mov	r6, r2
+ 80001fa:	461f      	mov	r7, r3
+ 80001fc:	4909      	ldr	r1, [pc, #36]	; (8000224 <cmox_hmac_sha1_verify+0x34>)
+ 80001fe:	a806      	add	r0, sp, #24
+ 8000200:	f000 feac 	bl	8000f5c <cmox_hmac_construct>
+ 8000204:	996f      	ldr	r1, [sp, #444]	; 0x1bc
+ 8000206:	9a6e      	ldr	r2, [sp, #440]	; 0x1b8
+ 8000208:	9104      	str	r1, [sp, #16]
+ 800020a:	9203      	str	r2, [sp, #12]
+ 800020c:	9700      	str	r7, [sp, #0]
+ 800020e:	996d      	ldr	r1, [sp, #436]	; 0x1b4
+ 8000210:	9a6c      	ldr	r2, [sp, #432]	; 0x1b0
+ 8000212:	9102      	str	r1, [sp, #8]
+ 8000214:	9201      	str	r2, [sp, #4]
+ 8000216:	4633      	mov	r3, r6
+ 8000218:	462a      	mov	r2, r5
+ 800021a:	4621      	mov	r1, r4
+ 800021c:	f000 f887 	bl	800032e <cmox_mac_innerVerify>
+ 8000220:	b067      	add	sp, #412	; 0x19c
+ 8000222:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8000224:	08000194 	.word	0x08000194
+
+08000228 <cmox_initialize>:
+ 8000228:	b538      	push	{r3, r4, r5, lr}
+ 800022a:	2800      	cmp	r0, #0
+ 800022c:	bf1c      	itt	ne
+ 800022e:	6801      	ldrne	r1, [r0, #0]
+ 8000230:	2900      	cmpne	r1, #0
+ 8000232:	4a18      	ldr	r2, [pc, #96]	; (8000294 <cmox_initialize+0x6c>)
+ 8000234:	d123      	bne.n	800027e <cmox_initialize+0x56>
+ 8000236:	4b18      	ldr	r3, [pc, #96]	; (8000298 <cmox_initialize+0x70>)
+ 8000238:	681c      	ldr	r4, [r3, #0]
+ 800023a:	f64f 71f0 	movw	r1, #65520	; 0xfff0
+ 800023e:	400c      	ands	r4, r1
+ 8000240:	f24c 2540 	movw	r5, #49728	; 0xc240
+ 8000244:	42ac      	cmp	r4, r5
+ 8000246:	bf1f      	itttt	ne
+ 8000248:	681b      	ldrne	r3, [r3, #0]
+ 800024a:	4019      	andne	r1, r3
+ 800024c:	f24c 2470 	movwne	r4, #49776	; 0xc270
+ 8000250:	42a1      	cmpne	r1, r4
+ 8000252:	d112      	bne.n	800027a <cmox_initialize+0x52>
+ 8000254:	4d11      	ldr	r5, [pc, #68]	; (800029c <cmox_initialize+0x74>)
+ 8000256:	6829      	ldr	r1, [r5, #0]
+ 8000258:	b979      	cbnz	r1, 800027a <cmox_initialize+0x52>
+ 800025a:	4911      	ldr	r1, [pc, #68]	; (80002a0 <cmox_initialize+0x78>)
+ 800025c:	680b      	ldr	r3, [r1, #0]
+ 800025e:	f3c3 030b 	ubfx	r3, r3, #0, #12
+ 8000262:	f5b3 6f8a 	cmp.w	r3, #1104	; 0x450
+ 8000266:	bf1f      	itttt	ne
+ 8000268:	6809      	ldrne	r1, [r1, #0]
+ 800026a:	f3c1 010b 	ubfxne	r1, r1, #0, #12
+ 800026e:	f240 4383 	movwne	r3, #1155	; 0x483
+ 8000272:	4299      	cmpne	r1, r3
+ 8000274:	bf04      	itt	eq
+ 8000276:	2101      	moveq	r1, #1
+ 8000278:	7011      	strbeq	r1, [r2, #0]
+ 800027a:	b928      	cbnz	r0, 8000288 <cmox_initialize+0x60>
+ 800027c:	e005      	b.n	800028a <cmox_initialize+0x62>
+ 800027e:	4b09      	ldr	r3, [pc, #36]	; (80002a4 <cmox_initialize+0x7c>)
+ 8000280:	4299      	cmp	r1, r3
+ 8000282:	bf04      	itt	eq
+ 8000284:	2101      	moveq	r1, #1
+ 8000286:	7011      	strbeq	r1, [r2, #0]
+ 8000288:	6840      	ldr	r0, [r0, #4]
+ 800028a:	e8bd 4032 	ldmia.w	sp!, {r1, r4, r5, lr}
+ 800028e:	f001 be9f 	b.w	8001fd0 <cmox_ll_init>
+ 8000292:	bf00      	nop
+ 8000294:	200008e8 	.word	0x200008e8
+ 8000298:	e000ed00 	.word	0xe000ed00
+ 800029c:	e0042000 	.word	0xe0042000
+ 80002a0:	5c001000 	.word	0x5c001000
+ 80002a4:	48370000 	.word	0x48370000
+
+080002a8 <cmox_mac_innerCompute>:
+ 80002a8:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 80002ac:	4604      	mov	r4, r0
+ 80002ae:	460d      	mov	r5, r1
+ 80002b0:	6821      	ldr	r1, [r4, #0]
+ 80002b2:	4616      	mov	r6, r2
+ 80002b4:	684a      	ldr	r2, [r1, #4]
+ 80002b6:	461f      	mov	r7, r3
+ 80002b8:	4790      	blx	r2
+ 80002ba:	4680      	mov	r8, r0
+ 80002bc:	f5b8 3f40 	cmp.w	r8, #196608	; 0x30000
+ 80002c0:	d12e      	bne.n	8000320 <cmox_mac_innerCompute+0x78>
+ 80002c2:	6822      	ldr	r2, [r4, #0]
+ 80002c4:	990a      	ldr	r1, [sp, #40]	; 0x28
+ 80002c6:	6893      	ldr	r3, [r2, #8]
+ 80002c8:	4620      	mov	r0, r4
+ 80002ca:	4798      	blx	r3
+ 80002cc:	4680      	mov	r8, r0
+ 80002ce:	f5b8 3f40 	cmp.w	r8, #196608	; 0x30000
+ 80002d2:	d125      	bne.n	8000320 <cmox_mac_innerCompute+0x78>
+ 80002d4:	6823      	ldr	r3, [r4, #0]
+ 80002d6:	9a08      	ldr	r2, [sp, #32]
+ 80002d8:	9907      	ldr	r1, [sp, #28]
+ 80002da:	f8d3 c00c 	ldr.w	ip, [r3, #12]
+ 80002de:	4620      	mov	r0, r4
+ 80002e0:	47e0      	blx	ip
+ 80002e2:	4680      	mov	r8, r0
+ 80002e4:	f5b8 3f40 	cmp.w	r8, #196608	; 0x30000
+ 80002e8:	d11a      	bne.n	8000320 <cmox_mac_innerCompute+0x78>
+ 80002ea:	6823      	ldr	r3, [r4, #0]
+ 80002ec:	9a06      	ldr	r2, [sp, #24]
+ 80002ee:	4639      	mov	r1, r7
+ 80002f0:	691f      	ldr	r7, [r3, #16]
+ 80002f2:	4620      	mov	r0, r4
+ 80002f4:	47b8      	blx	r7
+ 80002f6:	4680      	mov	r8, r0
+ 80002f8:	f5b8 3f40 	cmp.w	r8, #196608	; 0x30000
+ 80002fc:	d110      	bne.n	8000320 <cmox_mac_innerCompute+0x78>
+ 80002fe:	6823      	ldr	r3, [r4, #0]
+ 8000300:	4629      	mov	r1, r5
+ 8000302:	695d      	ldr	r5, [r3, #20]
+ 8000304:	4632      	mov	r2, r6
+ 8000306:	4620      	mov	r0, r4
+ 8000308:	47a8      	blx	r5
+ 800030a:	4680      	mov	r8, r0
+ 800030c:	f5b8 3f40 	cmp.w	r8, #196608	; 0x30000
+ 8000310:	d106      	bne.n	8000320 <cmox_mac_innerCompute+0x78>
+ 8000312:	6823      	ldr	r3, [r4, #0]
+ 8000314:	9a0b      	ldr	r2, [sp, #44]	; 0x2c
+ 8000316:	9909      	ldr	r1, [sp, #36]	; 0x24
+ 8000318:	699d      	ldr	r5, [r3, #24]
+ 800031a:	4620      	mov	r0, r4
+ 800031c:	47a8      	blx	r5
+ 800031e:	4680      	mov	r8, r0
+ 8000320:	6821      	ldr	r1, [r4, #0]
+ 8000322:	680a      	ldr	r2, [r1, #0]
+ 8000324:	4620      	mov	r0, r4
+ 8000326:	4790      	blx	r2
+ 8000328:	4640      	mov	r0, r8
+ 800032a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+
+0800032e <cmox_mac_innerVerify>:
+ 800032e:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8000332:	4604      	mov	r4, r0
+ 8000334:	460d      	mov	r5, r1
+ 8000336:	6821      	ldr	r1, [r4, #0]
+ 8000338:	4616      	mov	r6, r2
+ 800033a:	684a      	ldr	r2, [r1, #4]
+ 800033c:	461f      	mov	r7, r3
+ 800033e:	4790      	blx	r2
+ 8000340:	4680      	mov	r8, r0
+ 8000342:	f5b8 3f40 	cmp.w	r8, #196608	; 0x30000
+ 8000346:	d12e      	bne.n	80003a6 <cmox_mac_innerVerify+0x78>
+ 8000348:	6822      	ldr	r2, [r4, #0]
+ 800034a:	990a      	ldr	r1, [sp, #40]	; 0x28
+ 800034c:	6893      	ldr	r3, [r2, #8]
+ 800034e:	4620      	mov	r0, r4
+ 8000350:	4798      	blx	r3
+ 8000352:	4680      	mov	r8, r0
+ 8000354:	f5b8 3f40 	cmp.w	r8, #196608	; 0x30000
+ 8000358:	d125      	bne.n	80003a6 <cmox_mac_innerVerify+0x78>
+ 800035a:	6823      	ldr	r3, [r4, #0]
+ 800035c:	9a08      	ldr	r2, [sp, #32]
+ 800035e:	9907      	ldr	r1, [sp, #28]
+ 8000360:	f8d3 c00c 	ldr.w	ip, [r3, #12]
+ 8000364:	4620      	mov	r0, r4
+ 8000366:	47e0      	blx	ip
+ 8000368:	4680      	mov	r8, r0
+ 800036a:	f5b8 3f40 	cmp.w	r8, #196608	; 0x30000
+ 800036e:	d11a      	bne.n	80003a6 <cmox_mac_innerVerify+0x78>
+ 8000370:	6823      	ldr	r3, [r4, #0]
+ 8000372:	9a06      	ldr	r2, [sp, #24]
+ 8000374:	4639      	mov	r1, r7
+ 8000376:	691f      	ldr	r7, [r3, #16]
+ 8000378:	4620      	mov	r0, r4
+ 800037a:	47b8      	blx	r7
+ 800037c:	4680      	mov	r8, r0
+ 800037e:	f5b8 3f40 	cmp.w	r8, #196608	; 0x30000
+ 8000382:	d110      	bne.n	80003a6 <cmox_mac_innerVerify+0x78>
+ 8000384:	6823      	ldr	r3, [r4, #0]
+ 8000386:	4629      	mov	r1, r5
+ 8000388:	695d      	ldr	r5, [r3, #20]
+ 800038a:	4632      	mov	r2, r6
+ 800038c:	4620      	mov	r0, r4
+ 800038e:	47a8      	blx	r5
+ 8000390:	4680      	mov	r8, r0
+ 8000392:	f5b8 3f40 	cmp.w	r8, #196608	; 0x30000
+ 8000396:	d106      	bne.n	80003a6 <cmox_mac_innerVerify+0x78>
+ 8000398:	6823      	ldr	r3, [r4, #0]
+ 800039a:	9909      	ldr	r1, [sp, #36]	; 0x24
+ 800039c:	69dd      	ldr	r5, [r3, #28]
+ 800039e:	2200      	movs	r2, #0
+ 80003a0:	4620      	mov	r0, r4
+ 80003a2:	47a8      	blx	r5
+ 80003a4:	4680      	mov	r8, r0
+ 80003a6:	6821      	ldr	r1, [r4, #0]
+ 80003a8:	680a      	ldr	r2, [r1, #0]
+ 80003aa:	4620      	mov	r0, r4
+ 80003ac:	4790      	blx	r2
+ 80003ae:	4640      	mov	r0, r8
+ 80003b0:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+
+080003b4 <cmox_mac_setCustomData_empty>:
+ 80003b4:	f44f 3040 	mov.w	r0, #196608	; 0x30000
+ 80003b8:	4770      	bx	lr
+	...
+
+080003bc <cmox_mac_compute>:
+ 80003bc:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 80003be:	460c      	mov	r4, r1
+ 80003c0:	b085      	sub	sp, #20
+ 80003c2:	4611      	mov	r1, r2
+ 80003c4:	2800      	cmp	r0, #0
+ 80003c6:	461a      	mov	r2, r3
+ 80003c8:	bf1c      	itt	ne
+ 80003ca:	6805      	ldrne	r5, [r0, #0]
+ 80003cc:	2d00      	cmpne	r5, #0
+ 80003ce:	4b0b      	ldr	r3, [pc, #44]	; (80003fc <cmox_mac_compute+0x40>)
+ 80003d0:	d011      	beq.n	80003f6 <cmox_mac_compute+0x3a>
+ 80003d2:	b182      	cbz	r2, 80003f6 <cmox_mac_compute+0x3a>
+ 80003d4:	b904      	cbnz	r4, 80003d8 <cmox_mac_compute+0x1c>
+ 80003d6:	b971      	cbnz	r1, 80003f6 <cmox_mac_compute+0x3a>
+ 80003d8:	980d      	ldr	r0, [sp, #52]	; 0x34
+ 80003da:	b160      	cbz	r0, 80003f6 <cmox_mac_compute+0x3a>
+ 80003dc:	9e0f      	ldr	r6, [sp, #60]	; 0x3c
+ 80003de:	9f0e      	ldr	r7, [sp, #56]	; 0x38
+ 80003e0:	9b0a      	ldr	r3, [sp, #40]	; 0x28
+ 80003e2:	9002      	str	r0, [sp, #8]
+ 80003e4:	9604      	str	r6, [sp, #16]
+ 80003e6:	9703      	str	r7, [sp, #12]
+ 80003e8:	980b      	ldr	r0, [sp, #44]	; 0x2c
+ 80003ea:	9e0c      	ldr	r6, [sp, #48]	; 0x30
+ 80003ec:	9000      	str	r0, [sp, #0]
+ 80003ee:	9601      	str	r6, [sp, #4]
+ 80003f0:	4620      	mov	r0, r4
+ 80003f2:	47a8      	blx	r5
+ 80003f4:	4603      	mov	r3, r0
+ 80003f6:	4618      	mov	r0, r3
+ 80003f8:	b005      	add	sp, #20
+ 80003fa:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 80003fc:	00030002 	.word	0x00030002
+
+08000400 <cmox_sha1_transform>:
+ 8000400:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8000404:	4606      	mov	r6, r0
+ 8000406:	b0d0      	sub	sp, #320	; 0x140
+ 8000408:	6808      	ldr	r0, [r1, #0]
+ 800040a:	6df5      	ldr	r5, [r6, #92]	; 0x5c
+ 800040c:	f8d6 e060 	ldr.w	lr, [r6, #96]	; 0x60
+ 8000410:	6e72      	ldr	r2, [r6, #100]	; 0x64
+ 8000412:	6eb7      	ldr	r7, [r6, #104]	; 0x68
+ 8000414:	6ef3      	ldr	r3, [r6, #108]	; 0x6c
+ 8000416:	ba00      	rev	r0, r0
+ 8000418:	9000      	str	r0, [sp, #0]
+ 800041a:	466c      	mov	r4, sp
+ 800041c:	6848      	ldr	r0, [r1, #4]
+ 800041e:	ba00      	rev	r0, r0
+ 8000420:	6060      	str	r0, [r4, #4]
+ 8000422:	f10d 0840 	add.w	r8, sp, #64	; 0x40
+ 8000426:	6888      	ldr	r0, [r1, #8]
+ 8000428:	ba00      	rev	r0, r0
+ 800042a:	60a0      	str	r0, [r4, #8]
+ 800042c:	68c8      	ldr	r0, [r1, #12]
+ 800042e:	ba00      	rev	r0, r0
+ 8000430:	60e0      	str	r0, [r4, #12]
+ 8000432:	6908      	ldr	r0, [r1, #16]
+ 8000434:	ba00      	rev	r0, r0
+ 8000436:	6120      	str	r0, [r4, #16]
+ 8000438:	6948      	ldr	r0, [r1, #20]
+ 800043a:	ba00      	rev	r0, r0
+ 800043c:	6160      	str	r0, [r4, #20]
+ 800043e:	6988      	ldr	r0, [r1, #24]
+ 8000440:	ba00      	rev	r0, r0
+ 8000442:	61a0      	str	r0, [r4, #24]
+ 8000444:	69c8      	ldr	r0, [r1, #28]
+ 8000446:	ba00      	rev	r0, r0
+ 8000448:	61e0      	str	r0, [r4, #28]
+ 800044a:	6a08      	ldr	r0, [r1, #32]
+ 800044c:	ba00      	rev	r0, r0
+ 800044e:	6220      	str	r0, [r4, #32]
+ 8000450:	6a48      	ldr	r0, [r1, #36]	; 0x24
+ 8000452:	ba00      	rev	r0, r0
+ 8000454:	6260      	str	r0, [r4, #36]	; 0x24
+ 8000456:	6a88      	ldr	r0, [r1, #40]	; 0x28
+ 8000458:	ba00      	rev	r0, r0
+ 800045a:	62a0      	str	r0, [r4, #40]	; 0x28
+ 800045c:	6ac8      	ldr	r0, [r1, #44]	; 0x2c
+ 800045e:	ba00      	rev	r0, r0
+ 8000460:	62e0      	str	r0, [r4, #44]	; 0x2c
+ 8000462:	6b08      	ldr	r0, [r1, #48]	; 0x30
+ 8000464:	ba00      	rev	r0, r0
+ 8000466:	6320      	str	r0, [r4, #48]	; 0x30
+ 8000468:	6b48      	ldr	r0, [r1, #52]	; 0x34
+ 800046a:	ba00      	rev	r0, r0
+ 800046c:	6360      	str	r0, [r4, #52]	; 0x34
+ 800046e:	6b88      	ldr	r0, [r1, #56]	; 0x38
+ 8000470:	ba00      	rev	r0, r0
+ 8000472:	63a0      	str	r0, [r4, #56]	; 0x38
+ 8000474:	6bc8      	ldr	r0, [r1, #60]	; 0x3c
+ 8000476:	ba00      	rev	r0, r0
+ 8000478:	63e0      	str	r0, [r4, #60]	; 0x3c
+ 800047a:	2040      	movs	r0, #64	; 0x40
+ 800047c:	f858 1c0c 	ldr.w	r1, [r8, #-12]
+ 8000480:	f858 cc20 	ldr.w	ip, [r8, #-32]
+ 8000484:	f858 ac38 	ldr.w	sl, [r8, #-56]
+ 8000488:	ea8c 0101 	eor.w	r1, ip, r1
+ 800048c:	f858 cc40 	ldr.w	ip, [r8, #-64]
+ 8000490:	ea8a 0101 	eor.w	r1, sl, r1
+ 8000494:	ea8c 0901 	eor.w	r9, ip, r1
+ 8000498:	ea4f 79f9 	mov.w	r9, r9, ror #31
+ 800049c:	1e40      	subs	r0, r0, #1
+ 800049e:	f848 9b04 	str.w	r9, [r8], #4
+ 80004a2:	d1eb      	bne.n	800047c <cmox_sha1_transform+0x7c>
+ 80004a4:	ea87 0002 	eor.w	r0, r7, r2
+ 80004a8:	ea00 000e 	and.w	r0, r0, lr
+ 80004ac:	4078      	eors	r0, r7
+ 80004ae:	eb10 61f5 	adds.w	r1, r0, r5, ror #27
+ 80004b2:	9800      	ldr	r0, [sp, #0]
+ 80004b4:	f8df c424 	ldr.w	ip, [pc, #1060]	; 80008dc <cmox_sha1_transform+0x4dc>
+ 80004b8:	1841      	adds	r1, r0, r1
+ 80004ba:	4461      	add	r1, ip
+ 80004bc:	18c8      	adds	r0, r1, r3
+ 80004be:	ea82 03be 	eor.w	r3, r2, lr, ror #2
+ 80004c2:	402b      	ands	r3, r5
+ 80004c4:	ea4f 61f0 	mov.w	r1, r0, ror #27
+ 80004c8:	4053      	eors	r3, r2
+ 80004ca:	1859      	adds	r1, r3, r1
+ 80004cc:	6863      	ldr	r3, [r4, #4]
+ 80004ce:	1859      	adds	r1, r3, r1
+ 80004d0:	4461      	add	r1, ip
+ 80004d2:	19cf      	adds	r7, r1, r7
+ 80004d4:	ea4f 03b5 	mov.w	r3, r5, ror #2
+ 80004d8:	ea83 01be 	eor.w	r1, r3, lr, ror #2
+ 80004dc:	4001      	ands	r1, r0
+ 80004de:	ea81 01be 	eor.w	r1, r1, lr, ror #2
+ 80004e2:	eb11 65f7 	adds.w	r5, r1, r7, ror #27
+ 80004e6:	68a1      	ldr	r1, [r4, #8]
+ 80004e8:	194d      	adds	r5, r1, r5
+ 80004ea:	4465      	add	r5, ip
+ 80004ec:	18a9      	adds	r1, r5, r2
+ 80004ee:	ea83 02b0 	eor.w	r2, r3, r0, ror #2
+ 80004f2:	403a      	ands	r2, r7
+ 80004f4:	ea4f 65f1 	mov.w	r5, r1, ror #27
+ 80004f8:	405a      	eors	r2, r3
+ 80004fa:	1955      	adds	r5, r2, r5
+ 80004fc:	68e2      	ldr	r2, [r4, #12]
+ 80004fe:	1955      	adds	r5, r2, r5
+ 8000500:	ea4f 02b7 	mov.w	r2, r7, ror #2
+ 8000504:	ea82 07b0 	eor.w	r7, r2, r0, ror #2
+ 8000508:	4465      	add	r5, ip
+ 800050a:	400f      	ands	r7, r1
+ 800050c:	eb05 0ebe 	add.w	lr, r5, lr, ror #2
+ 8000510:	ea97 07b0 	eors.w	r7, r7, r0, ror #2
+ 8000514:	eb17 65fe 	adds.w	r5, r7, lr, ror #27
+ 8000518:	6927      	ldr	r7, [r4, #16]
+ 800051a:	197d      	adds	r5, r7, r5
+ 800051c:	ea4f 07b1 	mov.w	r7, r1, ror #2
+ 8000520:	ea82 0107 	eor.w	r1, r2, r7
+ 8000524:	4465      	add	r5, ip
+ 8000526:	ea01 010e 	and.w	r1, r1, lr
+ 800052a:	18eb      	adds	r3, r5, r3
+ 800052c:	4051      	eors	r1, r2
+ 800052e:	eb11 65f3 	adds.w	r5, r1, r3, ror #27
+ 8000532:	6961      	ldr	r1, [r4, #20]
+ 8000534:	194d      	adds	r5, r1, r5
+ 8000536:	ea4f 01be 	mov.w	r1, lr, ror #2
+ 800053a:	ea87 0e01 	eor.w	lr, r7, r1
+ 800053e:	4465      	add	r5, ip
+ 8000540:	ea0e 0e03 	and.w	lr, lr, r3
+ 8000544:	eb15 00b0 	adds.w	r0, r5, r0, ror #2
+ 8000548:	ea8e 0e07 	eor.w	lr, lr, r7
+ 800054c:	eb0e 65f0 	add.w	r5, lr, r0, ror #27
+ 8000550:	f8d4 e018 	ldr.w	lr, [r4, #24]
+ 8000554:	4475      	add	r5, lr
+ 8000556:	4465      	add	r5, ip
+ 8000558:	18aa      	adds	r2, r5, r2
+ 800055a:	ea81 05b3 	eor.w	r5, r1, r3, ror #2
+ 800055e:	4005      	ands	r5, r0
+ 8000560:	ea4f 6ef2 	mov.w	lr, r2, ror #27
+ 8000564:	404d      	eors	r5, r1
+ 8000566:	44ae      	add	lr, r5
+ 8000568:	69e5      	ldr	r5, [r4, #28]
+ 800056a:	44ae      	add	lr, r5
+ 800056c:	44e6      	add	lr, ip
+ 800056e:	4477      	add	r7, lr
+ 8000570:	ea4f 00b0 	mov.w	r0, r0, ror #2
+ 8000574:	ea80 0eb3 	eor.w	lr, r0, r3, ror #2
+ 8000578:	ea0e 0e02 	and.w	lr, lr, r2
+ 800057c:	ea8e 0eb3 	eor.w	lr, lr, r3, ror #2
+ 8000580:	eb0e 65f7 	add.w	r5, lr, r7, ror #27
+ 8000584:	f8d4 e020 	ldr.w	lr, [r4, #32]
+ 8000588:	4475      	add	r5, lr
+ 800058a:	4465      	add	r5, ip
+ 800058c:	1869      	adds	r1, r5, r1
+ 800058e:	ea80 05b2 	eor.w	r5, r0, r2, ror #2
+ 8000592:	403d      	ands	r5, r7
+ 8000594:	ea4f 6ef1 	mov.w	lr, r1, ror #27
+ 8000598:	4045      	eors	r5, r0
+ 800059a:	44ae      	add	lr, r5
+ 800059c:	6a65      	ldr	r5, [r4, #36]	; 0x24
+ 800059e:	44ae      	add	lr, r5
+ 80005a0:	44e6      	add	lr, ip
+ 80005a2:	eb0e 03b3 	add.w	r3, lr, r3, ror #2
+ 80005a6:	ea4f 07b7 	mov.w	r7, r7, ror #2
+ 80005aa:	ea87 0eb2 	eor.w	lr, r7, r2, ror #2
+ 80005ae:	ea0e 0e01 	and.w	lr, lr, r1
+ 80005b2:	ea8e 0eb2 	eor.w	lr, lr, r2, ror #2
+ 80005b6:	eb0e 65f3 	add.w	r5, lr, r3, ror #27
+ 80005ba:	f8d4 e028 	ldr.w	lr, [r4, #40]	; 0x28
+ 80005be:	4475      	add	r5, lr
+ 80005c0:	4465      	add	r5, ip
+ 80005c2:	1828      	adds	r0, r5, r0
+ 80005c4:	ea87 05b1 	eor.w	r5, r7, r1, ror #2
+ 80005c8:	401d      	ands	r5, r3
+ 80005ca:	ea4f 6ef0 	mov.w	lr, r0, ror #27
+ 80005ce:	407d      	eors	r5, r7
+ 80005d0:	44ae      	add	lr, r5
+ 80005d2:	6ae5      	ldr	r5, [r4, #44]	; 0x2c
+ 80005d4:	44ae      	add	lr, r5
+ 80005d6:	44e6      	add	lr, ip
+ 80005d8:	eb0e 02b2 	add.w	r2, lr, r2, ror #2
+ 80005dc:	ea4f 03b3 	mov.w	r3, r3, ror #2
+ 80005e0:	ea83 0eb1 	eor.w	lr, r3, r1, ror #2
+ 80005e4:	ea0e 0e00 	and.w	lr, lr, r0
+ 80005e8:	ea8e 0eb1 	eor.w	lr, lr, r1, ror #2
+ 80005ec:	eb0e 65f2 	add.w	r5, lr, r2, ror #27
+ 80005f0:	f8d4 e030 	ldr.w	lr, [r4, #48]	; 0x30
+ 80005f4:	4475      	add	r5, lr
+ 80005f6:	4465      	add	r5, ip
+ 80005f8:	19ef      	adds	r7, r5, r7
+ 80005fa:	ea83 05b0 	eor.w	r5, r3, r0, ror #2
+ 80005fe:	4015      	ands	r5, r2
+ 8000600:	ea4f 6ef7 	mov.w	lr, r7, ror #27
+ 8000604:	405d      	eors	r5, r3
+ 8000606:	44ae      	add	lr, r5
+ 8000608:	6b65      	ldr	r5, [r4, #52]	; 0x34
+ 800060a:	44ae      	add	lr, r5
+ 800060c:	44e6      	add	lr, ip
+ 800060e:	eb0e 01b1 	add.w	r1, lr, r1, ror #2
+ 8000612:	ea4f 02b2 	mov.w	r2, r2, ror #2
+ 8000616:	ea82 0eb0 	eor.w	lr, r2, r0, ror #2
+ 800061a:	ea0e 0e07 	and.w	lr, lr, r7
+ 800061e:	ea8e 0eb0 	eor.w	lr, lr, r0, ror #2
+ 8000622:	eb0e 65f1 	add.w	r5, lr, r1, ror #27
+ 8000626:	f8d4 e038 	ldr.w	lr, [r4, #56]	; 0x38
+ 800062a:	4475      	add	r5, lr
+ 800062c:	4465      	add	r5, ip
+ 800062e:	18eb      	adds	r3, r5, r3
+ 8000630:	ea82 05b7 	eor.w	r5, r2, r7, ror #2
+ 8000634:	400d      	ands	r5, r1
+ 8000636:	ea4f 6ef3 	mov.w	lr, r3, ror #27
+ 800063a:	4055      	eors	r5, r2
+ 800063c:	44ae      	add	lr, r5
+ 800063e:	6be5      	ldr	r5, [r4, #60]	; 0x3c
+ 8000640:	44ae      	add	lr, r5
+ 8000642:	44e6      	add	lr, ip
+ 8000644:	eb0e 00b0 	add.w	r0, lr, r0, ror #2
+ 8000648:	ea4f 01b1 	mov.w	r1, r1, ror #2
+ 800064c:	ea81 0eb7 	eor.w	lr, r1, r7, ror #2
+ 8000650:	ea0e 0e03 	and.w	lr, lr, r3
+ 8000654:	ea8e 0eb7 	eor.w	lr, lr, r7, ror #2
+ 8000658:	eb0e 65f0 	add.w	r5, lr, r0, ror #27
+ 800065c:	f8d4 e040 	ldr.w	lr, [r4, #64]	; 0x40
+ 8000660:	4475      	add	r5, lr
+ 8000662:	4465      	add	r5, ip
+ 8000664:	ea81 0eb3 	eor.w	lr, r1, r3, ror #2
+ 8000668:	18aa      	adds	r2, r5, r2
+ 800066a:	ea0e 0e00 	and.w	lr, lr, r0
+ 800066e:	ea4f 65f2 	mov.w	r5, r2, ror #27
+ 8000672:	ea8e 0e01 	eor.w	lr, lr, r1
+ 8000676:	4475      	add	r5, lr
+ 8000678:	f8dd e044 	ldr.w	lr, [sp, #68]	; 0x44
+ 800067c:	ea4f 00b0 	mov.w	r0, r0, ror #2
+ 8000680:	4475      	add	r5, lr
+ 8000682:	ea80 0eb3 	eor.w	lr, r0, r3, ror #2
+ 8000686:	4465      	add	r5, ip
+ 8000688:	ea0e 0e02 	and.w	lr, lr, r2
+ 800068c:	eb15 07b7 	adds.w	r7, r5, r7, ror #2
+ 8000690:	ea8e 0eb3 	eor.w	lr, lr, r3, ror #2
+ 8000694:	eb0e 65f7 	add.w	r5, lr, r7, ror #27
+ 8000698:	f8dd e048 	ldr.w	lr, [sp, #72]	; 0x48
+ 800069c:	ea4f 02b2 	mov.w	r2, r2, ror #2
+ 80006a0:	4475      	add	r5, lr
+ 80006a2:	ea80 0e02 	eor.w	lr, r0, r2
+ 80006a6:	4465      	add	r5, ip
+ 80006a8:	ea0e 0e07 	and.w	lr, lr, r7
+ 80006ac:	1869      	adds	r1, r5, r1
+ 80006ae:	ea8e 0e00 	eor.w	lr, lr, r0
+ 80006b2:	eb0e 65f1 	add.w	r5, lr, r1, ror #27
+ 80006b6:	f8dd e04c 	ldr.w	lr, [sp, #76]	; 0x4c
+ 80006ba:	4475      	add	r5, lr
+ 80006bc:	4465      	add	r5, ip
+ 80006be:	eb05 03b3 	add.w	r3, r5, r3, ror #2
+ 80006c2:	ea4f 0eb7 	mov.w	lr, r7, ror #2
+ 80006c6:	2714      	movs	r7, #20
+ 80006c8:	f10d 0c50 	add.w	ip, sp, #80	; 0x50
+ 80006cc:	f8df 5210 	ldr.w	r5, [pc, #528]	; 80008e0 <cmox_sha1_transform+0x4e0>
+ 80006d0:	ea8e 0b01 	eor.w	fp, lr, r1
+ 80006d4:	ea82 0b0b 	eor.w	fp, r2, fp
+ 80006d8:	eb0b 6af3 	add.w	sl, fp, r3, ror #27
+ 80006dc:	f85c bb04 	ldr.w	fp, [ip], #4
+ 80006e0:	44da      	add	sl, fp
+ 80006e2:	44aa      	add	sl, r5
+ 80006e4:	4450      	add	r0, sl
+ 80006e6:	ea83 0bb1 	eor.w	fp, r3, r1, ror #2
+ 80006ea:	ea4f 6af0 	mov.w	sl, r0, ror #27
+ 80006ee:	ea8e 0b0b 	eor.w	fp, lr, fp
+ 80006f2:	44da      	add	sl, fp
+ 80006f4:	f85c bb04 	ldr.w	fp, [ip], #4
+ 80006f8:	44da      	add	sl, fp
+ 80006fa:	44aa      	add	sl, r5
+ 80006fc:	4452      	add	r2, sl
+ 80006fe:	ea80 0bb3 	eor.w	fp, r0, r3, ror #2
+ 8000702:	ea4f 6af2 	mov.w	sl, r2, ror #27
+ 8000706:	ea8b 0bb1 	eor.w	fp, fp, r1, ror #2
+ 800070a:	44da      	add	sl, fp
+ 800070c:	f85c bb04 	ldr.w	fp, [ip], #4
+ 8000710:	44da      	add	sl, fp
+ 8000712:	ea4f 00b0 	mov.w	r0, r0, ror #2
+ 8000716:	44aa      	add	sl, r5
+ 8000718:	ea80 0b02 	eor.w	fp, r0, r2
+ 800071c:	44d6      	add	lr, sl
+ 800071e:	ea8b 0bb3 	eor.w	fp, fp, r3, ror #2
+ 8000722:	eb0b 6afe 	add.w	sl, fp, lr, ror #27
+ 8000726:	f85c bb04 	ldr.w	fp, [ip], #4
+ 800072a:	44da      	add	sl, fp
+ 800072c:	ea4f 02b2 	mov.w	r2, r2, ror #2
+ 8000730:	44aa      	add	sl, r5
+ 8000732:	ea82 0b0e 	eor.w	fp, r2, lr
+ 8000736:	eb0a 01b1 	add.w	r1, sl, r1, ror #2
+ 800073a:	ea80 0b0b 	eor.w	fp, r0, fp
+ 800073e:	eb0b 6af1 	add.w	sl, fp, r1, ror #27
+ 8000742:	f85c bb04 	ldr.w	fp, [ip], #4
+ 8000746:	44da      	add	sl, fp
+ 8000748:	1d7f      	adds	r7, r7, #5
+ 800074a:	44aa      	add	sl, r5
+ 800074c:	2f28      	cmp	r7, #40	; 0x28
+ 800074e:	eb0a 03b3 	add.w	r3, sl, r3, ror #2
+ 8000752:	ea4f 0ebe 	mov.w	lr, lr, ror #2
+ 8000756:	d3bb      	bcc.n	80006d0 <cmox_sha1_transform+0x2d0>
+ 8000758:	2f3c      	cmp	r7, #60	; 0x3c
+ 800075a:	d361      	bcc.n	8000820 <cmox_sha1_transform+0x420>
+ 800075c:	2f50      	cmp	r7, #80	; 0x50
+ 800075e:	d24d      	bcs.n	80007fc <cmox_sha1_transform+0x3fc>
+ 8000760:	eb04 0c87 	add.w	ip, r4, r7, lsl #2
+ 8000764:	f1c7 0754 	rsb	r7, r7, #84	; 0x54
+ 8000768:	4c5e      	ldr	r4, [pc, #376]	; (80008e4 <cmox_sha1_transform+0x4e4>)
+ 800076a:	fba7 a504 	umull	sl, r5, r7, r4
+ 800076e:	4604      	mov	r4, r0
+ 8000770:	4f5d      	ldr	r7, [pc, #372]	; (80008e8 <cmox_sha1_transform+0x4e8>)
+ 8000772:	08a8      	lsrs	r0, r5, #2
+ 8000774:	ea8e 0a01 	eor.w	sl, lr, r1
+ 8000778:	ea82 0a0a 	eor.w	sl, r2, sl
+ 800077c:	f85c bb04 	ldr.w	fp, [ip], #4
+ 8000780:	eb0a 65f3 	add.w	r5, sl, r3, ror #27
+ 8000784:	445d      	add	r5, fp
+ 8000786:	197d      	adds	r5, r7, r5
+ 8000788:	192c      	adds	r4, r5, r4
+ 800078a:	ea83 0ab1 	eor.w	sl, r3, r1, ror #2
+ 800078e:	ea4f 65f4 	mov.w	r5, r4, ror #27
+ 8000792:	ea8e 0a0a 	eor.w	sl, lr, sl
+ 8000796:	4455      	add	r5, sl
+ 8000798:	f85c ab04 	ldr.w	sl, [ip], #4
+ 800079c:	f85c bb04 	ldr.w	fp, [ip], #4
+ 80007a0:	4455      	add	r5, sl
+ 80007a2:	197d      	adds	r5, r7, r5
+ 80007a4:	18aa      	adds	r2, r5, r2
+ 80007a6:	ea84 0ab3 	eor.w	sl, r4, r3, ror #2
+ 80007aa:	ea4f 65f2 	mov.w	r5, r2, ror #27
+ 80007ae:	ea8a 0ab1 	eor.w	sl, sl, r1, ror #2
+ 80007b2:	4455      	add	r5, sl
+ 80007b4:	445d      	add	r5, fp
+ 80007b6:	ea4f 04b4 	mov.w	r4, r4, ror #2
+ 80007ba:	197d      	adds	r5, r7, r5
+ 80007bc:	ea84 0a02 	eor.w	sl, r4, r2
+ 80007c0:	44ae      	add	lr, r5
+ 80007c2:	ea8a 0ab3 	eor.w	sl, sl, r3, ror #2
+ 80007c6:	eb0a 65fe 	add.w	r5, sl, lr, ror #27
+ 80007ca:	f85c ab04 	ldr.w	sl, [ip], #4
+ 80007ce:	4455      	add	r5, sl
+ 80007d0:	ea4f 02b2 	mov.w	r2, r2, ror #2
+ 80007d4:	197d      	adds	r5, r7, r5
+ 80007d6:	ea82 0a0e 	eor.w	sl, r2, lr
+ 80007da:	eb15 01b1 	adds.w	r1, r5, r1, ror #2
+ 80007de:	ea84 0a0a 	eor.w	sl, r4, sl
+ 80007e2:	f85c bb04 	ldr.w	fp, [ip], #4
+ 80007e6:	eb0a 65f1 	add.w	r5, sl, r1, ror #27
+ 80007ea:	445d      	add	r5, fp
+ 80007ec:	197d      	adds	r5, r7, r5
+ 80007ee:	eb15 03b3 	adds.w	r3, r5, r3, ror #2
+ 80007f2:	1e40      	subs	r0, r0, #1
+ 80007f4:	ea4f 0ebe 	mov.w	lr, lr, ror #2
+ 80007f8:	d1bc      	bne.n	8000774 <cmox_sha1_transform+0x374>
+ 80007fa:	4620      	mov	r0, r4
+ 80007fc:	6df4      	ldr	r4, [r6, #92]	; 0x5c
+ 80007fe:	191b      	adds	r3, r3, r4
+ 8000800:	65f3      	str	r3, [r6, #92]	; 0x5c
+ 8000802:	6e33      	ldr	r3, [r6, #96]	; 0x60
+ 8000804:	18c9      	adds	r1, r1, r3
+ 8000806:	6631      	str	r1, [r6, #96]	; 0x60
+ 8000808:	6e71      	ldr	r1, [r6, #100]	; 0x64
+ 800080a:	4471      	add	r1, lr
+ 800080c:	6671      	str	r1, [r6, #100]	; 0x64
+ 800080e:	6eb3      	ldr	r3, [r6, #104]	; 0x68
+ 8000810:	18d2      	adds	r2, r2, r3
+ 8000812:	66b2      	str	r2, [r6, #104]	; 0x68
+ 8000814:	6ef1      	ldr	r1, [r6, #108]	; 0x6c
+ 8000816:	1840      	adds	r0, r0, r1
+ 8000818:	66f0      	str	r0, [r6, #108]	; 0x6c
+ 800081a:	b050      	add	sp, #320	; 0x140
+ 800081c:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 8000820:	ea4e 0b01 	orr.w	fp, lr, r1
+ 8000824:	ea0e 0a01 	and.w	sl, lr, r1
+ 8000828:	ea0b 0b02 	and.w	fp, fp, r2
+ 800082c:	ea4b 0a0a 	orr.w	sl, fp, sl
+ 8000830:	eb0a 65f3 	add.w	r5, sl, r3, ror #27
+ 8000834:	f854 a027 	ldr.w	sl, [r4, r7, lsl #2]
+ 8000838:	f8df c0b0 	ldr.w	ip, [pc, #176]	; 80008ec <cmox_sha1_transform+0x4ec>
+ 800083c:	4455      	add	r5, sl
+ 800083e:	ea43 0bb1 	orr.w	fp, r3, r1, ror #2
+ 8000842:	4465      	add	r5, ip
+ 8000844:	ea03 0ab1 	and.w	sl, r3, r1, ror #2
+ 8000848:	ea0b 0b0e 	and.w	fp, fp, lr
+ 800084c:	1828      	adds	r0, r5, r0
+ 800084e:	ea4b 0a0a 	orr.w	sl, fp, sl
+ 8000852:	1c7f      	adds	r7, r7, #1
+ 8000854:	eb0a 65f0 	add.w	r5, sl, r0, ror #27
+ 8000858:	f854 a027 	ldr.w	sl, [r4, r7, lsl #2]
+ 800085c:	4455      	add	r5, sl
+ 800085e:	ea40 0bb3 	orr.w	fp, r0, r3, ror #2
+ 8000862:	4465      	add	r5, ip
+ 8000864:	ea00 0ab3 	and.w	sl, r0, r3, ror #2
+ 8000868:	ea0b 0bb1 	and.w	fp, fp, r1, ror #2
+ 800086c:	18aa      	adds	r2, r5, r2
+ 800086e:	ea4b 0a0a 	orr.w	sl, fp, sl
+ 8000872:	1c7f      	adds	r7, r7, #1
+ 8000874:	eb0a 65f2 	add.w	r5, sl, r2, ror #27
+ 8000878:	f854 a027 	ldr.w	sl, [r4, r7, lsl #2]
+ 800087c:	4455      	add	r5, sl
+ 800087e:	ea4f 00b0 	mov.w	r0, r0, ror #2
+ 8000882:	ea40 0b02 	orr.w	fp, r0, r2
+ 8000886:	4465      	add	r5, ip
+ 8000888:	ea00 0a02 	and.w	sl, r0, r2
+ 800088c:	ea0b 0bb3 	and.w	fp, fp, r3, ror #2
+ 8000890:	44ae      	add	lr, r5
+ 8000892:	ea4b 0a0a 	orr.w	sl, fp, sl
+ 8000896:	1c7f      	adds	r7, r7, #1
+ 8000898:	eb0a 65fe 	add.w	r5, sl, lr, ror #27
+ 800089c:	f854 a027 	ldr.w	sl, [r4, r7, lsl #2]
+ 80008a0:	4455      	add	r5, sl
+ 80008a2:	ea4f 02b2 	mov.w	r2, r2, ror #2
+ 80008a6:	ea42 0b0e 	orr.w	fp, r2, lr
+ 80008aa:	4465      	add	r5, ip
+ 80008ac:	ea02 0a0e 	and.w	sl, r2, lr
+ 80008b0:	ea0b 0b00 	and.w	fp, fp, r0
+ 80008b4:	eb15 01b1 	adds.w	r1, r5, r1, ror #2
+ 80008b8:	ea4b 0a0a 	orr.w	sl, fp, sl
+ 80008bc:	1c7f      	adds	r7, r7, #1
+ 80008be:	eb0a 65f1 	add.w	r5, sl, r1, ror #27
+ 80008c2:	f854 a027 	ldr.w	sl, [r4, r7, lsl #2]
+ 80008c6:	4455      	add	r5, sl
+ 80008c8:	1c7f      	adds	r7, r7, #1
+ 80008ca:	4465      	add	r5, ip
+ 80008cc:	2f3c      	cmp	r7, #60	; 0x3c
+ 80008ce:	eb05 03b3 	add.w	r3, r5, r3, ror #2
+ 80008d2:	ea4f 0ebe 	mov.w	lr, lr, ror #2
+ 80008d6:	d3a3      	bcc.n	8000820 <cmox_sha1_transform+0x420>
+ 80008d8:	e740      	b.n	800075c <cmox_sha1_transform+0x35c>
+ 80008da:	bf00      	nop
+ 80008dc:	5a827999 	.word	0x5a827999
+ 80008e0:	6ed9eba1 	.word	0x6ed9eba1
+ 80008e4:	cccccccd 	.word	0xcccccccd
+ 80008e8:	ca62c1d6 	.word	0xca62c1d6
+ 80008ec:	8f1bbcdc 	.word	0x8f1bbcdc
+
+080008f0 <cmox_sha1_cleanup>:
+ 80008f0:	b500      	push	{lr}
+ 80008f2:	b081      	sub	sp, #4
+ 80008f4:	6801      	ldr	r1, [r0, #0]
+ 80008f6:	4a07      	ldr	r2, [pc, #28]	; (8000914 <cmox_sha1_cleanup+0x24>)
+ 80008f8:	4291      	cmp	r1, r2
+ 80008fa:	d100      	bne.n	80008fe <cmox_sha1_cleanup+0xe>
+ 80008fc:	b910      	cbnz	r0, 8000904 <cmox_sha1_cleanup+0x14>
+ 80008fe:	4806      	ldr	r0, [pc, #24]	; (8000918 <cmox_sha1_cleanup+0x28>)
+ 8000900:	b001      	add	sp, #4
+ 8000902:	bd00      	pop	{pc}
+ 8000904:	217c      	movs	r1, #124	; 0x7c
+ 8000906:	f013 fdad 	bl	8014464 <__aeabi_memclr>
+ 800090a:	f44f 3000 	mov.w	r0, #131072	; 0x20000
+ 800090e:	b001      	add	sp, #4
+ 8000910:	bd00      	pop	{pc}
+ 8000912:	bf00      	nop
+ 8000914:	080009fc 	.word	0x080009fc
+ 8000918:	00020003 	.word	0x00020003
+
+0800091c <cmox_sha1_init>:
+ 800091c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8000920:	4a0b      	ldr	r2, [pc, #44]	; (8000950 <cmox_sha1_init+0x34>)
+ 8000922:	e892 51f8 	ldmia.w	r2, {r3, r4, r5, r6, r7, r8, ip, lr}
+ 8000926:	b088      	sub	sp, #32
+ 8000928:	4669      	mov	r1, sp
+ 800092a:	e881 51f8 	stmia.w	r1, {r3, r4, r5, r6, r7, r8, ip, lr}
+ 800092e:	6802      	ldr	r2, [r0, #0]
+ 8000930:	4b08      	ldr	r3, [pc, #32]	; (8000954 <cmox_sha1_init+0x38>)
+ 8000932:	429a      	cmp	r2, r3
+ 8000934:	d100      	bne.n	8000938 <cmox_sha1_init+0x1c>
+ 8000936:	b918      	cbnz	r0, 8000940 <cmox_sha1_init+0x24>
+ 8000938:	4807      	ldr	r0, [pc, #28]	; (8000958 <cmox_sha1_init+0x3c>)
+ 800093a:	b008      	add	sp, #32
+ 800093c:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 8000940:	2214      	movs	r2, #20
+ 8000942:	3008      	adds	r0, #8
+ 8000944:	f000 fb4f 	bl	8000fe6 <cmox_md_init>
+ 8000948:	b008      	add	sp, #32
+ 800094a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800094e:	bf00      	nop
+ 8000950:	080009dc 	.word	0x080009dc
+ 8000954:	080009fc 	.word	0x080009fc
+ 8000958:	00020003 	.word	0x00020003
+
+0800095c <cmox_sha1_setTagLen>:
+ 800095c:	2915      	cmp	r1, #21
+ 800095e:	d204      	bcs.n	800096a <cmox_sha1_setTagLen+0xe>
+ 8000960:	6802      	ldr	r2, [r0, #0]
+ 8000962:	4b04      	ldr	r3, [pc, #16]	; (8000974 <cmox_sha1_setTagLen+0x18>)
+ 8000964:	429a      	cmp	r2, r3
+ 8000966:	d100      	bne.n	800096a <cmox_sha1_setTagLen+0xe>
+ 8000968:	b908      	cbnz	r0, 800096e <cmox_sha1_setTagLen+0x12>
+ 800096a:	4803      	ldr	r0, [pc, #12]	; (8000978 <cmox_sha1_setTagLen+0x1c>)
+ 800096c:	4770      	bx	lr
+ 800096e:	3008      	adds	r0, #8
+ 8000970:	f000 bb48 	b.w	8001004 <cmox_md_setTagSize>
+ 8000974:	080009fc 	.word	0x080009fc
+ 8000978:	00020003 	.word	0x00020003
+
+0800097c <cmox_sha1_append>:
+ 800097c:	b410      	push	{r4}
+ 800097e:	b081      	sub	sp, #4
+ 8000980:	4613      	mov	r3, r2
+ 8000982:	6802      	ldr	r2, [r0, #0]
+ 8000984:	4c07      	ldr	r4, [pc, #28]	; (80009a4 <cmox_sha1_append+0x28>)
+ 8000986:	42a2      	cmp	r2, r4
+ 8000988:	d100      	bne.n	800098c <cmox_sha1_append+0x10>
+ 800098a:	b918      	cbnz	r0, 8000994 <cmox_sha1_append+0x18>
+ 800098c:	b001      	add	sp, #4
+ 800098e:	bc10      	pop	{r4}
+ 8000990:	4805      	ldr	r0, [pc, #20]	; (80009a8 <cmox_sha1_append+0x2c>)
+ 8000992:	4770      	bx	lr
+ 8000994:	b001      	add	sp, #4
+ 8000996:	f100 0224 	add.w	r2, r0, #36	; 0x24
+ 800099a:	bc10      	pop	{r4}
+ 800099c:	3008      	adds	r0, #8
+ 800099e:	f000 bb35 	b.w	800100c <cmox_md_append>
+ 80009a2:	bf00      	nop
+ 80009a4:	080009fc 	.word	0x080009fc
+ 80009a8:	00020003 	.word	0x00020003
+
+080009ac <cmox_sha1_generateTag>:
+ 80009ac:	b410      	push	{r4}
+ 80009ae:	b081      	sub	sp, #4
+ 80009b0:	4613      	mov	r3, r2
+ 80009b2:	6802      	ldr	r2, [r0, #0]
+ 80009b4:	4c07      	ldr	r4, [pc, #28]	; (80009d4 <cmox_sha1_generateTag+0x28>)
+ 80009b6:	42a2      	cmp	r2, r4
+ 80009b8:	d100      	bne.n	80009bc <cmox_sha1_generateTag+0x10>
+ 80009ba:	b918      	cbnz	r0, 80009c4 <cmox_sha1_generateTag+0x18>
+ 80009bc:	b001      	add	sp, #4
+ 80009be:	bc10      	pop	{r4}
+ 80009c0:	4805      	ldr	r0, [pc, #20]	; (80009d8 <cmox_sha1_generateTag+0x2c>)
+ 80009c2:	4770      	bx	lr
+ 80009c4:	460a      	mov	r2, r1
+ 80009c6:	b001      	add	sp, #4
+ 80009c8:	f100 0124 	add.w	r1, r0, #36	; 0x24
+ 80009cc:	bc10      	pop	{r4}
+ 80009ce:	3008      	adds	r0, #8
+ 80009d0:	f000 bb70 	b.w	80010b4 <cmox_md_generateTag>
+ 80009d4:	080009fc 	.word	0x080009fc
+ 80009d8:	00020003 	.word	0x00020003
+ 80009dc:	67452301 	.word	0x67452301
+ 80009e0:	efcdab89 	.word	0xefcdab89
+ 80009e4:	98badcfe 	.word	0x98badcfe
+ 80009e8:	10325476 	.word	0x10325476
+ 80009ec:	c3d2e1f0 	.word	0xc3d2e1f0
+	...
+
+080009fc <CMOX_SHA1_VTABLE>:
+ 80009fc:	080008f1 0800091d 0800095d 0800097d     ........]...}...
+ 8000a0c:	080009ad                                ....
+
+08000a10 <CMOX_SHA1_MD_VTABLE_ST>:
+ 8000a10:	08000401 08000f79 08000fc5 08000f81     ....y...........
+
+08000a20 <cmox_sha1_compute>:
+ 8000a20:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8000a22:	b0a3      	sub	sp, #140	; 0x8c
+ 8000a24:	4604      	mov	r4, r0
+ 8000a26:	480b      	ldr	r0, [pc, #44]	; (8000a54 <cmox_sha1_compute+0x34>)
+ 8000a28:	9002      	str	r0, [sp, #8]
+ 8000a2a:	460d      	mov	r5, r1
+ 8000a2c:	4616      	mov	r6, r2
+ 8000a2e:	461f      	mov	r7, r3
+ 8000a30:	4b09      	ldr	r3, [pc, #36]	; (8000a58 <cmox_sha1_compute+0x38>)
+ 8000a32:	2208      	movs	r2, #8
+ 8000a34:	2140      	movs	r1, #64	; 0x40
+ 8000a36:	a804      	add	r0, sp, #16
+ 8000a38:	f000 fad1 	bl	8000fde <cmox_md_construct>
+ 8000a3c:	9828      	ldr	r0, [sp, #160]	; 0xa0
+ 8000a3e:	9001      	str	r0, [sp, #4]
+ 8000a40:	9700      	str	r7, [sp, #0]
+ 8000a42:	4633      	mov	r3, r6
+ 8000a44:	462a      	mov	r2, r5
+ 8000a46:	4621      	mov	r1, r4
+ 8000a48:	a802      	add	r0, sp, #8
+ 8000a4a:	f000 f81b 	bl	8000a84 <cmox_hash_common_compute>
+ 8000a4e:	b023      	add	sp, #140	; 0x8c
+ 8000a50:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8000a52:	bf00      	nop
+ 8000a54:	080009fc 	.word	0x080009fc
+ 8000a58:	08000a10 	.word	0x08000a10
+
+08000a5c <cmox_sha1_construct>:
+ 8000a5c:	b510      	push	{r4, lr}
+ 8000a5e:	0004      	movs	r4, r0
+ 8000a60:	bf08      	it	eq
+ 8000a62:	2400      	moveq	r4, #0
+ 8000a64:	d008      	beq.n	8000a78 <cmox_sha1_construct+0x1c>
+ 8000a66:	4805      	ldr	r0, [pc, #20]	; (8000a7c <cmox_sha1_construct+0x20>)
+ 8000a68:	4b05      	ldr	r3, [pc, #20]	; (8000a80 <cmox_sha1_construct+0x24>)
+ 8000a6a:	6020      	str	r0, [r4, #0]
+ 8000a6c:	2208      	movs	r2, #8
+ 8000a6e:	2140      	movs	r1, #64	; 0x40
+ 8000a70:	f104 0008 	add.w	r0, r4, #8
+ 8000a74:	f000 fab3 	bl	8000fde <cmox_md_construct>
+ 8000a78:	4620      	mov	r0, r4
+ 8000a7a:	bd10      	pop	{r4, pc}
+ 8000a7c:	080009fc 	.word	0x080009fc
+ 8000a80:	08000a10 	.word	0x08000a10
+
+08000a84 <cmox_hash_common_compute>:
+ 8000a84:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8000a88:	4604      	mov	r4, r0
+ 8000a8a:	460e      	mov	r6, r1
+ 8000a8c:	6821      	ldr	r1, [r4, #0]
+ 8000a8e:	4617      	mov	r7, r2
+ 8000a90:	684a      	ldr	r2, [r1, #4]
+ 8000a92:	461d      	mov	r5, r3
+ 8000a94:	4790      	blx	r2
+ 8000a96:	4680      	mov	r8, r0
+ 8000a98:	f5b8 3f00 	cmp.w	r8, #131072	; 0x20000
+ 8000a9c:	d119      	bne.n	8000ad2 <cmox_hash_common_compute+0x4e>
+ 8000a9e:	6822      	ldr	r2, [r4, #0]
+ 8000aa0:	9906      	ldr	r1, [sp, #24]
+ 8000aa2:	6893      	ldr	r3, [r2, #8]
+ 8000aa4:	4620      	mov	r0, r4
+ 8000aa6:	4798      	blx	r3
+ 8000aa8:	4680      	mov	r8, r0
+ 8000aaa:	f5b8 3f00 	cmp.w	r8, #131072	; 0x20000
+ 8000aae:	d110      	bne.n	8000ad2 <cmox_hash_common_compute+0x4e>
+ 8000ab0:	6823      	ldr	r3, [r4, #0]
+ 8000ab2:	4631      	mov	r1, r6
+ 8000ab4:	68de      	ldr	r6, [r3, #12]
+ 8000ab6:	463a      	mov	r2, r7
+ 8000ab8:	4620      	mov	r0, r4
+ 8000aba:	47b0      	blx	r6
+ 8000abc:	4680      	mov	r8, r0
+ 8000abe:	f5b8 3f00 	cmp.w	r8, #131072	; 0x20000
+ 8000ac2:	d106      	bne.n	8000ad2 <cmox_hash_common_compute+0x4e>
+ 8000ac4:	6823      	ldr	r3, [r4, #0]
+ 8000ac6:	9a07      	ldr	r2, [sp, #28]
+ 8000ac8:	4629      	mov	r1, r5
+ 8000aca:	691d      	ldr	r5, [r3, #16]
+ 8000acc:	4620      	mov	r0, r4
+ 8000ace:	47a8      	blx	r5
+ 8000ad0:	4680      	mov	r8, r0
+ 8000ad2:	6821      	ldr	r1, [r4, #0]
+ 8000ad4:	680a      	ldr	r2, [r1, #0]
+ 8000ad6:	4620      	mov	r0, r4
+ 8000ad8:	4790      	blx	r2
+ 8000ada:	4640      	mov	r0, r8
+ 8000adc:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+
+08000ae0 <cmox_hmac_cleanup>:
+ 8000ae0:	b510      	push	{r4, lr}
+ 8000ae2:	f000 fa33 	bl	8000f4c <cmox_hmac_getByMAC>
+ 8000ae6:	f44f 3440 	mov.w	r4, #196608	; 0x30000
+ 8000aea:	2800      	cmp	r0, #0
+ 8000aec:	bf0e      	itee	eq
+ 8000aee:	4c03      	ldreq	r4, [pc, #12]	; (8000afc <cmox_hmac_cleanup+0x1c>)
+ 8000af0:	f44f 71c0 	movne.w	r1, #384	; 0x180
+ 8000af4:	f013 fcb6 	blne	8014464 <__aeabi_memclr>
+ 8000af8:	4620      	mov	r0, r4
+ 8000afa:	bd10      	pop	{r4, pc}
+ 8000afc:	00030002 	.word	0x00030002
+
+08000b00 <cmox_hmac_init>:
+ 8000b00:	b510      	push	{r4, lr}
+ 8000b02:	4604      	mov	r4, r0
+ 8000b04:	f000 fa22 	bl	8000f4c <cmox_hmac_getByMAC>
+ 8000b08:	b908      	cbnz	r0, 8000b0e <cmox_hmac_init+0xe>
+ 8000b0a:	4805      	ldr	r0, [pc, #20]	; (8000b20 <cmox_hmac_init+0x20>)
+ 8000b0c:	bd10      	pop	{r4, pc}
+ 8000b0e:	2100      	movs	r1, #0
+ 8000b10:	60a1      	str	r1, [r4, #8]
+ 8000b12:	f8d0 217c 	ldr.w	r2, [r0, #380]	; 0x17c
+ 8000b16:	6811      	ldr	r1, [r2, #0]
+ 8000b18:	4788      	blx	r1
+ 8000b1a:	f44f 3040 	mov.w	r0, #196608	; 0x30000
+ 8000b1e:	bd10      	pop	{r4, pc}
+ 8000b20:	00030002 	.word	0x00030002
+
+08000b24 <cmox_hmac_setTagLen>:
+ 8000b24:	b570      	push	{r4, r5, r6, lr}
+ 8000b26:	4604      	mov	r4, r0
+ 8000b28:	460d      	mov	r5, r1
+ 8000b2a:	f000 fa0f 	bl	8000f4c <cmox_hmac_getByMAC>
+ 8000b2e:	4e06      	ldr	r6, [pc, #24]	; (8000b48 <cmox_hmac_setTagLen+0x24>)
+ 8000b30:	b140      	cbz	r0, 8000b44 <cmox_hmac_setTagLen+0x20>
+ 8000b32:	f8d0 017c 	ldr.w	r0, [r0, #380]	; 0x17c
+ 8000b36:	6841      	ldr	r1, [r0, #4]
+ 8000b38:	4788      	blx	r1
+ 8000b3a:	42a8      	cmp	r0, r5
+ 8000b3c:	bf24      	itt	cs
+ 8000b3e:	6065      	strcs	r5, [r4, #4]
+ 8000b40:	f44f 3640 	movcs.w	r6, #196608	; 0x30000
+ 8000b44:	4630      	mov	r0, r6
+ 8000b46:	bd70      	pop	{r4, r5, r6, pc}
+ 8000b48:	00030002 	.word	0x00030002
+
+08000b4c <cmox_hmac_setKey>:
+ 8000b4c:	e92d 47ff 	stmdb	sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr}
+ 8000b50:	0015      	movs	r5, r2
+ 8000b52:	460c      	mov	r4, r1
+ 8000b54:	d000      	beq.n	8000b58 <cmox_hmac_setKey+0xc>
+ 8000b56:	b12c      	cbz	r4, 8000b64 <cmox_hmac_setKey+0x18>
+ 8000b58:	4606      	mov	r6, r0
+ 8000b5a:	f000 f9f7 	bl	8000f4c <cmox_hmac_getByMAC>
+ 8000b5e:	ea5f 0800 	movs.w	r8, r0
+ 8000b62:	d101      	bne.n	8000b68 <cmox_hmac_setKey+0x1c>
+ 8000b64:	4864      	ldr	r0, [pc, #400]	; (8000cf8 <cmox_hmac_setKey+0x1ac>)
+ 8000b66:	e0c3      	b.n	8000cf0 <cmox_hmac_setKey+0x1a4>
+ 8000b68:	f8d8 00f8 	ldr.w	r0, [r8, #248]	; 0xf8
+ 8000b6c:	6801      	ldr	r1, [r0, #0]
+ 8000b6e:	684a      	ldr	r2, [r1, #4]
+ 8000b70:	4790      	blx	r2
+ 8000b72:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000b76:	d117      	bne.n	8000ba8 <cmox_hmac_setKey+0x5c>
+ 8000b78:	f8d8 117c 	ldr.w	r1, [r8, #380]	; 0x17c
+ 8000b7c:	688a      	ldr	r2, [r1, #8]
+ 8000b7e:	4640      	mov	r0, r8
+ 8000b80:	4790      	blx	r2
+ 8000b82:	4681      	mov	r9, r0
+ 8000b84:	f1b9 0f81 	cmp.w	r9, #129	; 0x81
+ 8000b88:	f080 809e 	bcs.w	8000cc8 <cmox_hmac_setKey+0x17c>
+ 8000b8c:	45a9      	cmp	r9, r5
+ 8000b8e:	f108 0afc 	add.w	sl, r8, #252	; 0xfc
+ 8000b92:	d217      	bcs.n	8000bc4 <cmox_hmac_setKey+0x78>
+ 8000b94:	f8d8 00f8 	ldr.w	r0, [r8, #248]	; 0xf8
+ 8000b98:	6803      	ldr	r3, [r0, #0]
+ 8000b9a:	f8d3 c00c 	ldr.w	ip, [r3, #12]
+ 8000b9e:	462a      	mov	r2, r5
+ 8000ba0:	4621      	mov	r1, r4
+ 8000ba2:	47e0      	blx	ip
+ 8000ba4:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000ba8:	f040 808e 	bne.w	8000cc8 <cmox_hmac_setKey+0x17c>
+ 8000bac:	f8d8 00f8 	ldr.w	r0, [r8, #248]	; 0xf8
+ 8000bb0:	6803      	ldr	r3, [r0, #0]
+ 8000bb2:	f8d3 c010 	ldr.w	ip, [r3, #16]
+ 8000bb6:	466a      	mov	r2, sp
+ 8000bb8:	4651      	mov	r1, sl
+ 8000bba:	47e0      	blx	ip
+ 8000bbc:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000bc0:	d176      	bne.n	8000cb0 <cmox_hmac_setKey+0x164>
+ 8000bc2:	e00a      	b.n	8000bda <cmox_hmac_setKey+0x8e>
+ 8000bc4:	2000      	movs	r0, #0
+ 8000bc6:	e004      	b.n	8000bd2 <cmox_hmac_setKey+0x86>
+ 8000bc8:	5c21      	ldrb	r1, [r4, r0]
+ 8000bca:	f80a 1000 	strb.w	r1, [sl, r0]
+ 8000bce:	9800      	ldr	r0, [sp, #0]
+ 8000bd0:	1c40      	adds	r0, r0, #1
+ 8000bd2:	9000      	str	r0, [sp, #0]
+ 8000bd4:	9800      	ldr	r0, [sp, #0]
+ 8000bd6:	42a8      	cmp	r0, r5
+ 8000bd8:	d3f6      	bcc.n	8000bc8 <cmox_hmac_setKey+0x7c>
+ 8000bda:	f04f 0c00 	mov.w	ip, #0
+ 8000bde:	4947      	ldr	r1, [pc, #284]	; (8000cfc <cmox_hmac_setKey+0x1b0>)
+ 8000be0:	4a47      	ldr	r2, [pc, #284]	; (8000d00 <cmox_hmac_setKey+0x1b4>)
+ 8000be2:	4b48      	ldr	r3, [pc, #288]	; (8000d04 <cmox_hmac_setKey+0x1b8>)
+ 8000be4:	ac01      	add	r4, sp, #4
+ 8000be6:	9800      	ldr	r0, [sp, #0]
+ 8000be8:	4584      	cmp	ip, r0
+ 8000bea:	d258      	bcs.n	8000c9e <cmox_hmac_setKey+0x152>
+ 8000bec:	e9d3 7000 	ldrd	r7, r0, [r3]
+ 8000bf0:	ad01      	add	r5, sp, #4
+ 8000bf2:	e9c5 7000 	strd	r7, r0, [r5]
+ 8000bf6:	7810      	ldrb	r0, [r2, #0]
+ 8000bf8:	2800      	cmp	r0, #0
+ 8000bfa:	bf1a      	itte	ne
+ 8000bfc:	2004      	movne	r0, #4
+ 8000bfe:	4686      	movne	lr, r0
+ 8000c00:	f04f 0e00 	moveq.w	lr, #0
+ 8000c04:	5808      	ldr	r0, [r1, r0]
+ 8000c06:	f854 500e 	ldr.w	r5, [r4, lr]
+ 8000c0a:	4428      	add	r0, r5
+ 8000c0c:	4d3e      	ldr	r5, [pc, #248]	; (8000d08 <cmox_hmac_setKey+0x1bc>)
+ 8000c0e:	6005      	str	r5, [r0, #0]
+ 8000c10:	2701      	movs	r7, #1
+ 8000c12:	f8d0 e000 	ldr.w	lr, [r0]
+ 8000c16:	6087      	str	r7, [r0, #8]
+ 8000c18:	9d01      	ldr	r5, [sp, #4]
+ 8000c1a:	684f      	ldr	r7, [r1, #4]
+ 8000c1c:	f81a 000c 	ldrb.w	r0, [sl, ip]
+ 8000c20:	407d      	eors	r5, r7
+ 8000c22:	ea8e 0505 	eor.w	r5, lr, r5
+ 8000c26:	f085 0e04 	eor.w	lr, r5, #4
+ 8000c2a:	6865      	ldr	r5, [r4, #4]
+ 8000c2c:	680f      	ldr	r7, [r1, #0]
+ 8000c2e:	407d      	eors	r5, r7
+ 8000c30:	f085 05fc 	eor.w	r5, r5, #252	; 0xfc
+ 8000c34:	4475      	add	r5, lr
+ 8000c36:	f085 05a3 	eor.w	r5, r5, #163	; 0xa3
+ 8000c3a:	4068      	eors	r0, r5
+ 8000c3c:	f80a 000c 	strb.w	r0, [sl, ip]
+ 8000c40:	f10c 0c01 	add.w	ip, ip, #1
+ 8000c44:	e7cf      	b.n	8000be6 <cmox_hmac_setKey+0x9a>
+ 8000c46:	e9d3 4500 	ldrd	r4, r5, [r3]
+ 8000c4a:	a801      	add	r0, sp, #4
+ 8000c4c:	e9c0 4500 	strd	r4, r5, [r0]
+ 8000c50:	7810      	ldrb	r0, [r2, #0]
+ 8000c52:	4d2e      	ldr	r5, [pc, #184]	; (8000d0c <cmox_hmac_setKey+0x1c0>)
+ 8000c54:	2800      	cmp	r0, #0
+ 8000c56:	bf14      	ite	ne
+ 8000c58:	f04f 0e04 	movne.w	lr, #4
+ 8000c5c:	f04f 0e00 	moveq.w	lr, #0
+ 8000c60:	a801      	add	r0, sp, #4
+ 8000c62:	4674      	mov	r4, lr
+ 8000c64:	f851 e00e 	ldr.w	lr, [r1, lr]
+ 8000c68:	5904      	ldr	r4, [r0, r4]
+ 8000c6a:	44a6      	add	lr, r4
+ 8000c6c:	2701      	movs	r7, #1
+ 8000c6e:	f8ce 5000 	str.w	r5, [lr]
+ 8000c72:	f8de 4000 	ldr.w	r4, [lr]
+ 8000c76:	f8ce 7008 	str.w	r7, [lr, #8]
+ 8000c7a:	684d      	ldr	r5, [r1, #4]
+ 8000c7c:	9f01      	ldr	r7, [sp, #4]
+ 8000c7e:	6840      	ldr	r0, [r0, #4]
+ 8000c80:	407d      	eors	r5, r7
+ 8000c82:	406c      	eors	r4, r5
+ 8000c84:	680d      	ldr	r5, [r1, #0]
+ 8000c86:	4068      	eors	r0, r5
+ 8000c88:	f084 0404 	eor.w	r4, r4, #4
+ 8000c8c:	f080 00fc 	eor.w	r0, r0, #252	; 0xfc
+ 8000c90:	1904      	adds	r4, r0, r4
+ 8000c92:	f084 0457 	eor.w	r4, r4, #87	; 0x57
+ 8000c96:	f80a 400c 	strb.w	r4, [sl, ip]
+ 8000c9a:	f10c 0c01 	add.w	ip, ip, #1
+ 8000c9e:	45cc      	cmp	ip, r9
+ 8000ca0:	d3d1      	bcc.n	8000c46 <cmox_hmac_setKey+0xfa>
+ 8000ca2:	f8d8 00f8 	ldr.w	r0, [r8, #248]	; 0xf8
+ 8000ca6:	6801      	ldr	r1, [r0, #0]
+ 8000ca8:	684a      	ldr	r2, [r1, #4]
+ 8000caa:	4790      	blx	r2
+ 8000cac:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000cb0:	d10a      	bne.n	8000cc8 <cmox_hmac_setKey+0x17c>
+ 8000cb2:	f8d8 00f8 	ldr.w	r0, [r8, #248]	; 0xf8
+ 8000cb6:	6803      	ldr	r3, [r0, #0]
+ 8000cb8:	f8d3 800c 	ldr.w	r8, [r3, #12]
+ 8000cbc:	464a      	mov	r2, r9
+ 8000cbe:	4651      	mov	r1, sl
+ 8000cc0:	47c0      	blx	r8
+ 8000cc2:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000cc6:	d001      	beq.n	8000ccc <cmox_hmac_setKey+0x180>
+ 8000cc8:	4811      	ldr	r0, [pc, #68]	; (8000d10 <cmox_hmac_setKey+0x1c4>)
+ 8000cca:	e011      	b.n	8000cf0 <cmox_hmac_setKey+0x1a4>
+ 8000ccc:	2000      	movs	r0, #0
+ 8000cce:	e006      	b.n	8000cde <cmox_hmac_setKey+0x192>
+ 8000cd0:	f85a 1020 	ldr.w	r1, [sl, r0, lsl #2]
+ 8000cd4:	f081 316a 	eor.w	r1, r1, #1785358954	; 0x6a6a6a6a
+ 8000cd8:	f84a 1020 	str.w	r1, [sl, r0, lsl #2]
+ 8000cdc:	1c40      	adds	r0, r0, #1
+ 8000cde:	ebb0 0f99 	cmp.w	r0, r9, lsr #2
+ 8000ce2:	d3f5      	bcc.n	8000cd0 <cmox_hmac_setKey+0x184>
+ 8000ce4:	68b0      	ldr	r0, [r6, #8]
+ 8000ce6:	f040 0001 	orr.w	r0, r0, #1
+ 8000cea:	60b0      	str	r0, [r6, #8]
+ 8000cec:	f44f 3040 	mov.w	r0, #196608	; 0x30000
+ 8000cf0:	b004      	add	sp, #16
+ 8000cf2:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 8000cf6:	bf00      	nop
+ 8000cf8:	00030002 	.word	0x00030002
+ 8000cfc:	080145fc 	.word	0x080145fc
+ 8000d00:	200008e8 	.word	0x200008e8
+ 8000d04:	08000f24 	.word	0x08000f24
+ 8000d08:	d74ebead 	.word	0xd74ebead
+ 8000d0c:	a175be0d 	.word	0xa175be0d
+ 8000d10:	00030001 	.word	0x00030001
+
+08000d14 <cmox_hmac_append>:
+ 8000d14:	b538      	push	{r3, r4, r5, lr}
+ 8000d16:	460c      	mov	r4, r1
+ 8000d18:	7a01      	ldrb	r1, [r0, #8]
+ 8000d1a:	4615      	mov	r5, r2
+ 8000d1c:	07ca      	lsls	r2, r1, #31
+ 8000d1e:	d502      	bpl.n	8000d26 <cmox_hmac_append+0x12>
+ 8000d20:	f000 f914 	bl	8000f4c <cmox_hmac_getByMAC>
+ 8000d24:	b908      	cbnz	r0, 8000d2a <cmox_hmac_append+0x16>
+ 8000d26:	4808      	ldr	r0, [pc, #32]	; (8000d48 <cmox_hmac_append+0x34>)
+ 8000d28:	bd32      	pop	{r1, r4, r5, pc}
+ 8000d2a:	f8d0 00f8 	ldr.w	r0, [r0, #248]	; 0xf8
+ 8000d2e:	6803      	ldr	r3, [r0, #0]
+ 8000d30:	4621      	mov	r1, r4
+ 8000d32:	68dc      	ldr	r4, [r3, #12]
+ 8000d34:	462a      	mov	r2, r5
+ 8000d36:	47a0      	blx	r4
+ 8000d38:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000d3c:	d001      	beq.n	8000d42 <cmox_hmac_append+0x2e>
+ 8000d3e:	4803      	ldr	r0, [pc, #12]	; (8000d4c <cmox_hmac_append+0x38>)
+ 8000d40:	bd32      	pop	{r1, r4, r5, pc}
+ 8000d42:	f44f 3040 	mov.w	r0, #196608	; 0x30000
+ 8000d46:	bd32      	pop	{r1, r4, r5, pc}
+ 8000d48:	00030002 	.word	0x00030002
+ 8000d4c:	00030001 	.word	0x00030001
+
+08000d50 <cmox_hmac_generateTag>:
+ 8000d50:	e92d 41f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, lr}
+ 8000d54:	b091      	sub	sp, #68	; 0x44
+ 8000d56:	4605      	mov	r5, r0
+ 8000d58:	460e      	mov	r6, r1
+ 8000d5a:	4617      	mov	r7, r2
+ 8000d5c:	2140      	movs	r1, #64	; 0x40
+ 8000d5e:	a801      	add	r0, sp, #4
+ 8000d60:	f013 fb80 	bl	8014464 <__aeabi_memclr>
+ 8000d64:	7a29      	ldrb	r1, [r5, #8]
+ 8000d66:	07c8      	lsls	r0, r1, #31
+ 8000d68:	d504      	bpl.n	8000d74 <cmox_hmac_generateTag+0x24>
+ 8000d6a:	4628      	mov	r0, r5
+ 8000d6c:	f000 f8ee 	bl	8000f4c <cmox_hmac_getByMAC>
+ 8000d70:	0004      	movs	r4, r0
+ 8000d72:	d102      	bne.n	8000d7a <cmox_hmac_generateTag+0x2a>
+ 8000d74:	f8df 80a4 	ldr.w	r8, [pc, #164]	; 8000e1c <cmox_hmac_generateTag+0xcc>
+ 8000d78:	e04b      	b.n	8000e12 <cmox_hmac_generateTag+0xc2>
+ 8000d7a:	f8d4 00f8 	ldr.w	r0, [r4, #248]	; 0xf8
+ 8000d7e:	f8df 80a0 	ldr.w	r8, [pc, #160]	; 8000e20 <cmox_hmac_generateTag+0xd0>
+ 8000d82:	6803      	ldr	r3, [r0, #0]
+ 8000d84:	f8d3 c010 	ldr.w	ip, [r3, #16]
+ 8000d88:	466a      	mov	r2, sp
+ 8000d8a:	a901      	add	r1, sp, #4
+ 8000d8c:	47e0      	blx	ip
+ 8000d8e:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000d92:	d13e      	bne.n	8000e12 <cmox_hmac_generateTag+0xc2>
+ 8000d94:	f8d4 00f8 	ldr.w	r0, [r4, #248]	; 0xf8
+ 8000d98:	6801      	ldr	r1, [r0, #0]
+ 8000d9a:	684a      	ldr	r2, [r1, #4]
+ 8000d9c:	4790      	blx	r2
+ 8000d9e:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000da2:	d136      	bne.n	8000e12 <cmox_hmac_generateTag+0xc2>
+ 8000da4:	f8d4 117c 	ldr.w	r1, [r4, #380]	; 0x17c
+ 8000da8:	688a      	ldr	r2, [r1, #8]
+ 8000daa:	4620      	mov	r0, r4
+ 8000dac:	4790      	blx	r2
+ 8000dae:	f8d4 30f8 	ldr.w	r3, [r4, #248]	; 0xf8
+ 8000db2:	4602      	mov	r2, r0
+ 8000db4:	4618      	mov	r0, r3
+ 8000db6:	681b      	ldr	r3, [r3, #0]
+ 8000db8:	f8d3 c00c 	ldr.w	ip, [r3, #12]
+ 8000dbc:	f104 01fc 	add.w	r1, r4, #252	; 0xfc
+ 8000dc0:	47e0      	blx	ip
+ 8000dc2:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000dc6:	d124      	bne.n	8000e12 <cmox_hmac_generateTag+0xc2>
+ 8000dc8:	f8d4 017c 	ldr.w	r0, [r4, #380]	; 0x17c
+ 8000dcc:	6841      	ldr	r1, [r0, #4]
+ 8000dce:	4788      	blx	r1
+ 8000dd0:	f8d4 30f8 	ldr.w	r3, [r4, #248]	; 0xf8
+ 8000dd4:	4602      	mov	r2, r0
+ 8000dd6:	4618      	mov	r0, r3
+ 8000dd8:	681b      	ldr	r3, [r3, #0]
+ 8000dda:	f8d3 c00c 	ldr.w	ip, [r3, #12]
+ 8000dde:	a901      	add	r1, sp, #4
+ 8000de0:	47e0      	blx	ip
+ 8000de2:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000de6:	d114      	bne.n	8000e12 <cmox_hmac_generateTag+0xc2>
+ 8000de8:	f8d4 00f8 	ldr.w	r0, [r4, #248]	; 0xf8
+ 8000dec:	6802      	ldr	r2, [r0, #0]
+ 8000dee:	6869      	ldr	r1, [r5, #4]
+ 8000df0:	6893      	ldr	r3, [r2, #8]
+ 8000df2:	4798      	blx	r3
+ 8000df4:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000df8:	d10b      	bne.n	8000e12 <cmox_hmac_generateTag+0xc2>
+ 8000dfa:	f8d4 00f8 	ldr.w	r0, [r4, #248]	; 0xf8
+ 8000dfe:	6803      	ldr	r3, [r0, #0]
+ 8000e00:	691c      	ldr	r4, [r3, #16]
+ 8000e02:	463a      	mov	r2, r7
+ 8000e04:	4631      	mov	r1, r6
+ 8000e06:	47a0      	blx	r4
+ 8000e08:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000e0c:	bf08      	it	eq
+ 8000e0e:	f44f 3840 	moveq.w	r8, #196608	; 0x30000
+ 8000e12:	4640      	mov	r0, r8
+ 8000e14:	b012      	add	sp, #72	; 0x48
+ 8000e16:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 8000e1a:	bf00      	nop
+ 8000e1c:	00030002 	.word	0x00030002
+ 8000e20:	00030001 	.word	0x00030001
+
+08000e24 <cmox_hmac_verifyTag>:
+ 8000e24:	e92d 41f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, lr}
+ 8000e28:	b0a5      	sub	sp, #148	; 0x94
+ 8000e2a:	4607      	mov	r7, r0
+ 8000e2c:	4688      	mov	r8, r1
+ 8000e2e:	4616      	mov	r6, r2
+ 8000e30:	2140      	movs	r1, #64	; 0x40
+ 8000e32:	a815      	add	r0, sp, #84	; 0x54
+ 8000e34:	f013 fb16 	bl	8014464 <__aeabi_memclr>
+ 8000e38:	2200      	movs	r2, #0
+ 8000e3a:	9204      	str	r2, [sp, #16]
+ 8000e3c:	2140      	movs	r1, #64	; 0x40
+ 8000e3e:	a805      	add	r0, sp, #20
+ 8000e40:	f013 fb10 	bl	8014464 <__aeabi_memclr>
+ 8000e44:	7a38      	ldrb	r0, [r7, #8]
+ 8000e46:	07c1      	lsls	r1, r0, #31
+ 8000e48:	d55e      	bpl.n	8000f08 <cmox_hmac_verifyTag+0xe4>
+ 8000e4a:	4638      	mov	r0, r7
+ 8000e4c:	f000 f87e 	bl	8000f4c <cmox_hmac_getByMAC>
+ 8000e50:	0005      	movs	r5, r0
+ 8000e52:	d059      	beq.n	8000f08 <cmox_hmac_verifyTag+0xe4>
+ 8000e54:	f8d5 00f8 	ldr.w	r0, [r5, #248]	; 0xf8
+ 8000e58:	4c2d      	ldr	r4, [pc, #180]	; (8000f10 <cmox_hmac_verifyTag+0xec>)
+ 8000e5a:	6803      	ldr	r3, [r0, #0]
+ 8000e5c:	f8d3 c010 	ldr.w	ip, [r3, #16]
+ 8000e60:	466a      	mov	r2, sp
+ 8000e62:	a905      	add	r1, sp, #20
+ 8000e64:	47e0      	blx	ip
+ 8000e66:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000e6a:	d13c      	bne.n	8000ee6 <cmox_hmac_verifyTag+0xc2>
+ 8000e6c:	f8d5 00f8 	ldr.w	r0, [r5, #248]	; 0xf8
+ 8000e70:	6801      	ldr	r1, [r0, #0]
+ 8000e72:	684a      	ldr	r2, [r1, #4]
+ 8000e74:	4790      	blx	r2
+ 8000e76:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000e7a:	d134      	bne.n	8000ee6 <cmox_hmac_verifyTag+0xc2>
+ 8000e7c:	f8d5 117c 	ldr.w	r1, [r5, #380]	; 0x17c
+ 8000e80:	688a      	ldr	r2, [r1, #8]
+ 8000e82:	4628      	mov	r0, r5
+ 8000e84:	4790      	blx	r2
+ 8000e86:	f8d5 30f8 	ldr.w	r3, [r5, #248]	; 0xf8
+ 8000e8a:	4602      	mov	r2, r0
+ 8000e8c:	4618      	mov	r0, r3
+ 8000e8e:	681b      	ldr	r3, [r3, #0]
+ 8000e90:	f8d3 c00c 	ldr.w	ip, [r3, #12]
+ 8000e94:	f105 01fc 	add.w	r1, r5, #252	; 0xfc
+ 8000e98:	47e0      	blx	ip
+ 8000e9a:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000e9e:	d122      	bne.n	8000ee6 <cmox_hmac_verifyTag+0xc2>
+ 8000ea0:	f8d5 017c 	ldr.w	r0, [r5, #380]	; 0x17c
+ 8000ea4:	6841      	ldr	r1, [r0, #4]
+ 8000ea6:	4788      	blx	r1
+ 8000ea8:	f8d5 30f8 	ldr.w	r3, [r5, #248]	; 0xf8
+ 8000eac:	4602      	mov	r2, r0
+ 8000eae:	4618      	mov	r0, r3
+ 8000eb0:	681b      	ldr	r3, [r3, #0]
+ 8000eb2:	f8d3 c00c 	ldr.w	ip, [r3, #12]
+ 8000eb6:	a905      	add	r1, sp, #20
+ 8000eb8:	47e0      	blx	ip
+ 8000eba:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000ebe:	d112      	bne.n	8000ee6 <cmox_hmac_verifyTag+0xc2>
+ 8000ec0:	f8d5 00f8 	ldr.w	r0, [r5, #248]	; 0xf8
+ 8000ec4:	6802      	ldr	r2, [r0, #0]
+ 8000ec6:	6879      	ldr	r1, [r7, #4]
+ 8000ec8:	6893      	ldr	r3, [r2, #8]
+ 8000eca:	4798      	blx	r3
+ 8000ecc:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000ed0:	d109      	bne.n	8000ee6 <cmox_hmac_verifyTag+0xc2>
+ 8000ed2:	f8d5 00f8 	ldr.w	r0, [r5, #248]	; 0xf8
+ 8000ed6:	6803      	ldr	r3, [r0, #0]
+ 8000ed8:	691d      	ldr	r5, [r3, #16]
+ 8000eda:	aa04      	add	r2, sp, #16
+ 8000edc:	a915      	add	r1, sp, #84	; 0x54
+ 8000ede:	47a8      	blx	r5
+ 8000ee0:	f5b0 3f00 	cmp.w	r0, #131072	; 0x20000
+ 8000ee4:	d001      	beq.n	8000eea <cmox_hmac_verifyTag+0xc6>
+ 8000ee6:	4620      	mov	r0, r4
+ 8000ee8:	e00f      	b.n	8000f0a <cmox_hmac_verifyTag+0xe6>
+ 8000eea:	4b0a      	ldr	r3, [pc, #40]	; (8000f14 <cmox_hmac_verifyTag+0xf0>)
+ 8000eec:	490a      	ldr	r1, [pc, #40]	; (8000f18 <cmox_hmac_verifyTag+0xf4>)
+ 8000eee:	4a0b      	ldr	r2, [pc, #44]	; (8000f1c <cmox_hmac_verifyTag+0xf8>)
+ 8000ef0:	9603      	str	r6, [sp, #12]
+ 8000ef2:	9102      	str	r1, [sp, #8]
+ 8000ef4:	9201      	str	r2, [sp, #4]
+ 8000ef6:	4640      	mov	r0, r8
+ 8000ef8:	681c      	ldr	r4, [r3, #0]
+ 8000efa:	9b04      	ldr	r3, [sp, #16]
+ 8000efc:	9400      	str	r4, [sp, #0]
+ 8000efe:	aa15      	add	r2, sp, #84	; 0x54
+ 8000f00:	6879      	ldr	r1, [r7, #4]
+ 8000f02:	f000 f9e5 	bl	80012d0 <cmox_utils_robustCmp>
+ 8000f06:	e000      	b.n	8000f0a <cmox_hmac_verifyTag+0xe6>
+ 8000f08:	4805      	ldr	r0, [pc, #20]	; (8000f20 <cmox_hmac_verifyTag+0xfc>)
+ 8000f0a:	b026      	add	sp, #152	; 0x98
+ 8000f0c:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 8000f10:	00030001 	.word	0x00030001
+ 8000f14:	08014604 	.word	0x08014604
+ 8000f18:	00036e93 	.word	0x00036e93
+ 8000f1c:	0003c726 	.word	0x0003c726
+ 8000f20:	00030002 	.word	0x00030002
+ 8000f24:	0101b004 	.word	0x0101b004
+ 8000f28:	45011700 	.word	0x45011700
+
+08000f2c <hmac_table>:
+ 8000f2c:	08000ae1 08000b01 08000b25 080003b5     ........%.......
+ 8000f3c:	08000b4d 08000d15 08000d51 08000e25     M.......Q...%...
+
+08000f4c <cmox_hmac_getByMAC>:
+ 8000f4c:	6801      	ldr	r1, [r0, #0]
+ 8000f4e:	4a02      	ldr	r2, [pc, #8]	; (8000f58 <cmox_hmac_getByMAC+0xc>)
+ 8000f50:	4291      	cmp	r1, r2
+ 8000f52:	bf18      	it	ne
+ 8000f54:	2000      	movne	r0, #0
+ 8000f56:	4770      	bx	lr
+ 8000f58:	08000f2c 	.word	0x08000f2c
+
+08000f5c <cmox_hmac_construct>:
+ 8000f5c:	b510      	push	{r4, lr}
+ 8000f5e:	0004      	movs	r4, r0
+ 8000f60:	bf08      	it	eq
+ 8000f62:	2400      	moveq	r4, #0
+ 8000f64:	d004      	beq.n	8000f70 <cmox_hmac_construct+0x14>
+ 8000f66:	4803      	ldr	r0, [pc, #12]	; (8000f74 <cmox_hmac_construct+0x18>)
+ 8000f68:	6020      	str	r0, [r4, #0]
+ 8000f6a:	4620      	mov	r0, r4
+ 8000f6c:	6809      	ldr	r1, [r1, #0]
+ 8000f6e:	4788      	blx	r1
+ 8000f70:	4620      	mov	r0, r4
+ 8000f72:	bd10      	pop	{r4, pc}
+ 8000f74:	08000f2c 	.word	0x08000f2c
+
+08000f78 <cmox_md_updateState_small>:
+ 8000f78:	2220      	movs	r2, #32
+ 8000f7a:	305c      	adds	r0, #92	; 0x5c
+ 8000f7c:	f013 ba70 	b.w	8014460 <__aeabi_memcpy>
+
+08000f80 <cmox_md_copyLastState_small>:
+ 8000f80:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8000f82:	6884      	ldr	r4, [r0, #8]
+ 8000f84:	08a3      	lsrs	r3, r4, #2
+ 8000f86:	2200      	movs	r2, #0
+ 8000f88:	f004 0403 	and.w	r4, r4, #3
+ 8000f8c:	e007      	b.n	8000f9e <cmox_md_copyLastState_small+0x1e>
+ 8000f8e:	f100 055c 	add.w	r5, r0, #92	; 0x5c
+ 8000f92:	f855 6022 	ldr.w	r6, [r5, r2, lsl #2]
+ 8000f96:	ba35      	rev	r5, r6
+ 8000f98:	f841 5022 	str.w	r5, [r1, r2, lsl #2]
+ 8000f9c:	1c52      	adds	r2, r2, #1
+ 8000f9e:	429a      	cmp	r2, r3
+ 8000fa0:	d3f5      	bcc.n	8000f8e <cmox_md_copyLastState_small+0xe>
+ 8000fa2:	2200      	movs	r2, #0
+ 8000fa4:	e00b      	b.n	8000fbe <cmox_md_copyLastState_small+0x3e>
+ 8000fa6:	f100 055c 	add.w	r5, r0, #92	; 0x5c
+ 8000faa:	eb02 0783 	add.w	r7, r2, r3, lsl #2
+ 8000fae:	f855 6023 	ldr.w	r6, [r5, r3, lsl #2]
+ 8000fb2:	00d5      	lsls	r5, r2, #3
+ 8000fb4:	f1c5 0518 	rsb	r5, r5, #24
+ 8000fb8:	40ee      	lsrs	r6, r5
+ 8000fba:	55ce      	strb	r6, [r1, r7]
+ 8000fbc:	1c52      	adds	r2, r2, #1
+ 8000fbe:	42a2      	cmp	r2, r4
+ 8000fc0:	d3f1      	bcc.n	8000fa6 <cmox_md_copyLastState_small+0x26>
+ 8000fc2:	bdf0      	pop	{r4, r5, r6, r7, pc}
+
+08000fc4 <cmox_md_padMsgLen_small>:
+ 8000fc4:	b530      	push	{r4, r5, lr}
+ 8000fc6:	68c4      	ldr	r4, [r0, #12]
+ 8000fc8:	6903      	ldr	r3, [r0, #16]
+ 8000fca:	2200      	movs	r2, #0
+ 8000fcc:	1ae3      	subs	r3, r4, r3
+ 8000fce:	18d5      	adds	r5, r2, r3
+ 8000fd0:	5c8c      	ldrb	r4, [r1, r2]
+ 8000fd2:	4405      	add	r5, r0
+ 8000fd4:	1c52      	adds	r2, r2, #1
+ 8000fd6:	2a08      	cmp	r2, #8
+ 8000fd8:	772c      	strb	r4, [r5, #28]
+ 8000fda:	d3f8      	bcc.n	8000fce <cmox_md_padMsgLen_small+0xa>
+ 8000fdc:	bd30      	pop	{r4, r5, pc}
+
+08000fde <cmox_md_construct>:
+ 8000fde:	6003      	str	r3, [r0, #0]
+ 8000fe0:	60c1      	str	r1, [r0, #12]
+ 8000fe2:	6102      	str	r2, [r0, #16]
+ 8000fe4:	4770      	bx	lr
+
+08000fe6 <cmox_md_init>:
+ 8000fe6:	b538      	push	{r3, r4, r5, lr}
+ 8000fe8:	4604      	mov	r4, r0
+ 8000fea:	4615      	mov	r5, r2
+ 8000fec:	2200      	movs	r2, #0
+ 8000fee:	6062      	str	r2, [r4, #4]
+ 8000ff0:	6823      	ldr	r3, [r4, #0]
+ 8000ff2:	685a      	ldr	r2, [r3, #4]
+ 8000ff4:	4790      	blx	r2
+ 8000ff6:	2000      	movs	r0, #0
+ 8000ff8:	6160      	str	r0, [r4, #20]
+ 8000ffa:	61a0      	str	r0, [r4, #24]
+ 8000ffc:	60a5      	str	r5, [r4, #8]
+ 8000ffe:	f44f 3000 	mov.w	r0, #131072	; 0x20000
+ 8001002:	bd32      	pop	{r1, r4, r5, pc}
+
+08001004 <cmox_md_setTagSize>:
+ 8001004:	6081      	str	r1, [r0, #8]
+ 8001006:	f44f 3000 	mov.w	r0, #131072	; 0x20000
+ 800100a:	4770      	bx	lr
+
+0800100c <cmox_md_append>:
+ 800100c:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
+ 8001010:	4604      	mov	r4, r0
+ 8001012:	7920      	ldrb	r0, [r4, #4]
+ 8001014:	f8d4 800c 	ldr.w	r8, [r4, #12]
+ 8001018:	0745      	lsls	r5, r0, #29
+ 800101a:	bf48      	it	mi
+ 800101c:	4824      	ldrmi	r0, [pc, #144]	; (80010b0 <cmox_md_append+0xa4>)
+ 800101e:	d445      	bmi.n	80010ac <cmox_md_append+0xa0>
+ 8001020:	6966      	ldr	r6, [r4, #20]
+ 8001022:	461d      	mov	r5, r3
+ 8001024:	f1a8 0001 	sub.w	r0, r8, #1
+ 8001028:	ea00 03d6 	and.w	r3, r0, r6, lsr #3
+ 800102c:	eb06 06c5 	add.w	r6, r6, r5, lsl #3
+ 8001030:	ebb6 0fc5 	cmp.w	r6, r5, lsl #3
+ 8001034:	6166      	str	r6, [r4, #20]
+ 8001036:	d202      	bcs.n	800103e <cmox_md_append+0x32>
+ 8001038:	69a6      	ldr	r6, [r4, #24]
+ 800103a:	1c76      	adds	r6, r6, #1
+ 800103c:	61a6      	str	r6, [r4, #24]
+ 800103e:	4617      	mov	r7, r2
+ 8001040:	69a6      	ldr	r6, [r4, #24]
+ 8001042:	eb06 7655 	add.w	r6, r6, r5, lsr #29
+ 8001046:	61a6      	str	r6, [r4, #24]
+ 8001048:	460e      	mov	r6, r1
+ 800104a:	18e9      	adds	r1, r5, r3
+ 800104c:	4288      	cmp	r0, r1
+ 800104e:	d225      	bcs.n	800109c <cmox_md_append+0x90>
+ 8001050:	eba8 0903 	sub.w	r9, r8, r3
+ 8001054:	464a      	mov	r2, r9
+ 8001056:	4631      	mov	r1, r6
+ 8001058:	18f8      	adds	r0, r7, r3
+ 800105a:	f013 fa01 	bl	8014460 <__aeabi_memcpy>
+ 800105e:	6822      	ldr	r2, [r4, #0]
+ 8001060:	6813      	ldr	r3, [r2, #0]
+ 8001062:	4639      	mov	r1, r7
+ 8001064:	e00f      	b.n	8001086 <cmox_md_append+0x7a>
+ 8001066:	4642      	mov	r2, r8
+ 8001068:	4638      	mov	r0, r7
+ 800106a:	f013 f9f9 	bl	8014460 <__aeabi_memcpy>
+ 800106e:	6823      	ldr	r3, [r4, #0]
+ 8001070:	681a      	ldr	r2, [r3, #0]
+ 8001072:	4639      	mov	r1, r7
+ 8001074:	4620      	mov	r0, r4
+ 8001076:	4790      	blx	r2
+ 8001078:	e007      	b.n	800108a <cmox_md_append+0x7e>
+ 800107a:	1831      	adds	r1, r6, r0
+ 800107c:	f011 0003 	ands.w	r0, r1, #3
+ 8001080:	d1f1      	bne.n	8001066 <cmox_md_append+0x5a>
+ 8001082:	6822      	ldr	r2, [r4, #0]
+ 8001084:	6813      	ldr	r3, [r2, #0]
+ 8001086:	4620      	mov	r0, r4
+ 8001088:	4798      	blx	r3
+ 800108a:	4648      	mov	r0, r9
+ 800108c:	eb00 0908 	add.w	r9, r0, r8
+ 8001090:	f1a9 0101 	sub.w	r1, r9, #1
+ 8001094:	42a9      	cmp	r1, r5
+ 8001096:	d3f0      	bcc.n	800107a <cmox_md_append+0x6e>
+ 8001098:	2300      	movs	r3, #0
+ 800109a:	e000      	b.n	800109e <cmox_md_append+0x92>
+ 800109c:	2000      	movs	r0, #0
+ 800109e:	1a2a      	subs	r2, r5, r0
+ 80010a0:	1831      	adds	r1, r6, r0
+ 80010a2:	18f8      	adds	r0, r7, r3
+ 80010a4:	f013 f9dc 	bl	8014460 <__aeabi_memcpy>
+ 80010a8:	f44f 3000 	mov.w	r0, #131072	; 0x20000
+ 80010ac:	e8bd 83f2 	ldmia.w	sp!, {r1, r4, r5, r6, r7, r8, r9, pc}
+ 80010b0:	00020004 	.word	0x00020004
+
+080010b4 <cmox_md_generateTag>:
+ 80010b4:	e92d 4ffc 	stmdb	sp!, {r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 80010b8:	4602      	mov	r2, r0
+ 80010ba:	b085      	sub	sp, #20
+ 80010bc:	68d0      	ldr	r0, [r2, #12]
+ 80010be:	6913      	ldr	r3, [r2, #16]
+ 80010c0:	f8df c16c 	ldr.w	ip, [pc, #364]	; 8001230 <cmox_md_generateTag+0x17c>
+ 80010c4:	f8df 816c 	ldr.w	r8, [pc, #364]	; 8001234 <cmox_md_generateTag+0x180>
+ 80010c8:	eba0 0a03 	sub.w	sl, r0, r3
+ 80010cc:	6850      	ldr	r0, [r2, #4]
+ 80010ce:	f040 0004 	orr.w	r0, r0, #4
+ 80010d2:	6050      	str	r0, [r2, #4]
+ 80010d4:	2700      	movs	r7, #0
+ 80010d6:	a803      	add	r0, sp, #12
+ 80010d8:	9002      	str	r0, [sp, #8]
+ 80010da:	f10d 0e0c 	add.w	lr, sp, #12
+ 80010de:	e9d8 3400 	ldrd	r3, r4, [r8]
+ 80010e2:	a803      	add	r0, sp, #12
+ 80010e4:	4d54      	ldr	r5, [pc, #336]	; (8001238 <cmox_md_generateTag+0x184>)
+ 80010e6:	e9c0 3400 	strd	r3, r4, [r0]
+ 80010ea:	7828      	ldrb	r0, [r5, #0]
+ 80010ec:	4d53      	ldr	r5, [pc, #332]	; (800123c <cmox_md_generateTag+0x188>)
+ 80010ee:	2800      	cmp	r0, #0
+ 80010f0:	bf0c      	ite	eq
+ 80010f2:	2300      	moveq	r3, #0
+ 80010f4:	2304      	movne	r3, #4
+ 80010f6:	4699      	mov	r9, r3
+ 80010f8:	f85c 3003 	ldr.w	r3, [ip, r3]
+ 80010fc:	f85e 4009 	ldr.w	r4, [lr, r9]
+ 8001100:	4423      	add	r3, r4
+ 8001102:	2601      	movs	r6, #1
+ 8001104:	601d      	str	r5, [r3, #0]
+ 8001106:	681c      	ldr	r4, [r3, #0]
+ 8001108:	609e      	str	r6, [r3, #8]
+ 800110a:	f8dc 3004 	ldr.w	r3, [ip, #4]
+ 800110e:	9d03      	ldr	r5, [sp, #12]
+ 8001110:	f8dc 9000 	ldr.w	r9, [ip]
+ 8001114:	f8de 6004 	ldr.w	r6, [lr, #4]
+ 8001118:	405d      	eors	r5, r3
+ 800111a:	4065      	eors	r5, r4
+ 800111c:	4c48      	ldr	r4, [pc, #288]	; (8001240 <cmox_md_generateTag+0x18c>)
+ 800111e:	4065      	eors	r5, r4
+ 8001120:	ea89 0606 	eor.w	r6, r9, r6
+ 8001124:	4c47      	ldr	r4, [pc, #284]	; (8001244 <cmox_md_generateTag+0x190>)
+ 8001126:	4066      	eors	r6, r4
+ 8001128:	1975      	adds	r5, r6, r5
+ 800112a:	4c47      	ldr	r4, [pc, #284]	; (8001248 <cmox_md_generateTag+0x194>)
+ 800112c:	4065      	eors	r5, r4
+ 800112e:	e9d8 6b00 	ldrd	r6, fp, [r8]
+ 8001132:	ac03      	add	r4, sp, #12
+ 8001134:	2800      	cmp	r0, #0
+ 8001136:	e9c4 6b00 	strd	r6, fp, [r4]
+ 800113a:	bf0e      	itee	eq
+ 800113c:	2400      	moveq	r4, #0
+ 800113e:	2004      	movne	r0, #4
+ 8001140:	2404      	movne	r4, #4
+ 8001142:	9e02      	ldr	r6, [sp, #8]
+ 8001144:	f85c 0000 	ldr.w	r0, [ip, r0]
+ 8001148:	5934      	ldr	r4, [r6, r4]
+ 800114a:	1820      	adds	r0, r4, r0
+ 800114c:	4c3f      	ldr	r4, [pc, #252]	; (800124c <cmox_md_generateTag+0x198>)
+ 800114e:	6004      	str	r4, [r0, #0]
+ 8001150:	2601      	movs	r6, #1
+ 8001152:	6804      	ldr	r4, [r0, #0]
+ 8001154:	6086      	str	r6, [r0, #8]
+ 8001156:	9803      	ldr	r0, [sp, #12]
+ 8001158:	9e02      	ldr	r6, [sp, #8]
+ 800115a:	4043      	eors	r3, r0
+ 800115c:	4063      	eors	r3, r4
+ 800115e:	4c38      	ldr	r4, [pc, #224]	; (8001240 <cmox_md_generateTag+0x18c>)
+ 8001160:	6870      	ldr	r0, [r6, #4]
+ 8001162:	4063      	eors	r3, r4
+ 8001164:	ea89 0000 	eor.w	r0, r9, r0
+ 8001168:	4c36      	ldr	r4, [pc, #216]	; (8001244 <cmox_md_generateTag+0x190>)
+ 800116a:	4060      	eors	r0, r4
+ 800116c:	4403      	add	r3, r0
+ 800116e:	4838      	ldr	r0, [pc, #224]	; (8001250 <cmox_md_generateTag+0x19c>)
+ 8001170:	4043      	eors	r3, r0
+ 8001172:	0028      	movs	r0, r5
+ 8001174:	bf18      	it	ne
+ 8001176:	2001      	movne	r0, #1
+ 8001178:	1e5b      	subs	r3, r3, #1
+ 800117a:	419b      	sbcs	r3, r3
+ 800117c:	2f04      	cmp	r7, #4
+ 800117e:	bf2c      	ite	cs
+ 8001180:	b2c0      	uxtbcs	r0, r0
+ 8001182:	0fd8      	lsrcc	r0, r3, #31
+ 8001184:	f102 0314 	add.w	r3, r2, #20
+ 8001188:	f853 0020 	ldr.w	r0, [r3, r0, lsl #2]
+ 800118c:	f007 0303 	and.w	r3, r7, #3
+ 8001190:	f1c3 0303 	rsb	r3, r3, #3
+ 8001194:	00db      	lsls	r3, r3, #3
+ 8001196:	40d8      	lsrs	r0, r3
+ 8001198:	f80d 0007 	strb.w	r0, [sp, r7]
+ 800119c:	1c7f      	adds	r7, r7, #1
+ 800119e:	2f08      	cmp	r7, #8
+ 80011a0:	d39d      	bcc.n	80010de <cmox_md_generateTag+0x2a>
+ 80011a2:	4615      	mov	r5, r2
+ 80011a4:	460c      	mov	r4, r1
+ 80011a6:	696a      	ldr	r2, [r5, #20]
+ 80011a8:	69ab      	ldr	r3, [r5, #24]
+ 80011aa:	68e8      	ldr	r0, [r5, #12]
+ 80011ac:	08d2      	lsrs	r2, r2, #3
+ 80011ae:	ea42 7243 	orr.w	r2, r2, r3, lsl #29
+ 80011b2:	1e40      	subs	r0, r0, #1
+ 80011b4:	ea00 0702 	and.w	r7, r0, r2
+ 80011b8:	2300      	movs	r3, #0
+ 80011ba:	4002      	ands	r2, r0
+ 80011bc:	429b      	cmp	r3, r3
+ 80011be:	d80a      	bhi.n	80011d6 <cmox_md_generateTag+0x122>
+ 80011c0:	4552      	cmp	r2, sl
+ 80011c2:	d208      	bcs.n	80011d6 <cmox_md_generateTag+0x122>
+ 80011c4:	2080      	movs	r0, #128	; 0x80
+ 80011c6:	55e0      	strb	r0, [r4, r7]
+ 80011c8:	1c7f      	adds	r7, r7, #1
+ 80011ca:	4557      	cmp	r7, sl
+ 80011cc:	d216      	bcs.n	80011fc <cmox_md_generateTag+0x148>
+ 80011ce:	ebaa 0107 	sub.w	r1, sl, r7
+ 80011d2:	19e0      	adds	r0, r4, r7
+ 80011d4:	e010      	b.n	80011f8 <cmox_md_generateTag+0x144>
+ 80011d6:	2080      	movs	r0, #128	; 0x80
+ 80011d8:	55e0      	strb	r0, [r4, r7]
+ 80011da:	e000      	b.n	80011de <cmox_md_generateTag+0x12a>
+ 80011dc:	55e3      	strb	r3, [r4, r7]
+ 80011de:	68e8      	ldr	r0, [r5, #12]
+ 80011e0:	1c7f      	adds	r7, r7, #1
+ 80011e2:	4287      	cmp	r7, r0
+ 80011e4:	d3fa      	bcc.n	80011dc <cmox_md_generateTag+0x128>
+ 80011e6:	682a      	ldr	r2, [r5, #0]
+ 80011e8:	6813      	ldr	r3, [r2, #0]
+ 80011ea:	4628      	mov	r0, r5
+ 80011ec:	4798      	blx	r3
+ 80011ee:	f1ba 0f00 	cmp.w	sl, #0
+ 80011f2:	d003      	beq.n	80011fc <cmox_md_generateTag+0x148>
+ 80011f4:	4651      	mov	r1, sl
+ 80011f6:	4620      	mov	r0, r4
+ 80011f8:	f013 f934 	bl	8014464 <__aeabi_memclr>
+ 80011fc:	682a      	ldr	r2, [r5, #0]
+ 80011fe:	9e06      	ldr	r6, [sp, #24]
+ 8001200:	9f05      	ldr	r7, [sp, #20]
+ 8001202:	6893      	ldr	r3, [r2, #8]
+ 8001204:	4669      	mov	r1, sp
+ 8001206:	4628      	mov	r0, r5
+ 8001208:	4798      	blx	r3
+ 800120a:	682a      	ldr	r2, [r5, #0]
+ 800120c:	f8d2 9000 	ldr.w	r9, [r2]
+ 8001210:	4621      	mov	r1, r4
+ 8001212:	4628      	mov	r0, r5
+ 8001214:	47c8      	blx	r9
+ 8001216:	682b      	ldr	r3, [r5, #0]
+ 8001218:	68da      	ldr	r2, [r3, #12]
+ 800121a:	4639      	mov	r1, r7
+ 800121c:	4628      	mov	r0, r5
+ 800121e:	4790      	blx	r2
+ 8001220:	b10e      	cbz	r6, 8001226 <cmox_md_generateTag+0x172>
+ 8001222:	68a8      	ldr	r0, [r5, #8]
+ 8001224:	6030      	str	r0, [r6, #0]
+ 8001226:	f44f 3000 	mov.w	r0, #131072	; 0x20000
+ 800122a:	b007      	add	sp, #28
+ 800122c:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 8001230:	080145fc 	.word	0x080145fc
+ 8001234:	08001254 	.word	0x08001254
+ 8001238:	200008e8 	.word	0x200008e8
+ 800123c:	9310c55f 	.word	0x9310c55f
+ 8001240:	12008504 	.word	0x12008504
+ 8001244:	7a0168fc 	.word	0x7a0168fc
+ 8001248:	ff24f5c0 	.word	0xff24f5c0
+ 800124c:	d433af24 	.word	0xd433af24
+ 8001250:	8b69af26 	.word	0x8b69af26
+ 8001254:	0101b004 	.word	0x0101b004
+ 8001258:	45011700 	.word	0x45011700
+
+0800125c <firstloop_bb_cmp>:
+ 800125c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 800125e:	2401      	movs	r4, #1
+ 8001260:	9400      	str	r4, [sp, #0]
+ 8001262:	2300      	movs	r3, #0
+ 8001264:	2400      	movs	r4, #0
+ 8001266:	e00d      	b.n	8001284 <firstloop_bb_cmp+0x28>
+ 8001268:	9d00      	ldr	r5, [sp, #0]
+ 800126a:	5d06      	ldrb	r6, [r0, r4]
+ 800126c:	5d0f      	ldrb	r7, [r1, r4]
+ 800126e:	407e      	eors	r6, r7
+ 8001270:	43f6      	mvns	r6, r6
+ 8001272:	1c76      	adds	r6, r6, #1
+ 8001274:	0ff6      	lsrs	r6, r6, #31
+ 8001276:	f086 0601 	eor.w	r6, r6, #1
+ 800127a:	4035      	ands	r5, r6
+ 800127c:	9500      	str	r5, [sp, #0]
+ 800127e:	1c64      	adds	r4, r4, #1
+ 8001280:	9d00      	ldr	r5, [sp, #0]
+ 8001282:	18eb      	adds	r3, r5, r3
+ 8001284:	4294      	cmp	r4, r2
+ 8001286:	d3ef      	bcc.n	8001268 <firstloop_bb_cmp+0xc>
+ 8001288:	4618      	mov	r0, r3
+ 800128a:	bdf2      	pop	{r1, r4, r5, r6, r7, pc}
+
+0800128c <secondloop_bb_cmp>:
+ 800128c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 800128e:	2300      	movs	r3, #0
+ 8001290:	2401      	movs	r4, #1
+ 8001292:	9400      	str	r4, [sp, #0]
+ 8001294:	2a00      	cmp	r2, #0
+ 8001296:	e011      	b.n	80012bc <secondloop_bb_cmp+0x30>
+ 8001298:	9c00      	ldr	r4, [sp, #0]
+ 800129a:	1885      	adds	r5, r0, r2
+ 800129c:	188f      	adds	r7, r1, r2
+ 800129e:	f815 6c01 	ldrb.w	r6, [r5, #-1]
+ 80012a2:	f817 5c01 	ldrb.w	r5, [r7, #-1]
+ 80012a6:	406e      	eors	r6, r5
+ 80012a8:	43f6      	mvns	r6, r6
+ 80012aa:	1c76      	adds	r6, r6, #1
+ 80012ac:	0ff6      	lsrs	r6, r6, #31
+ 80012ae:	f086 0601 	eor.w	r6, r6, #1
+ 80012b2:	4034      	ands	r4, r6
+ 80012b4:	9400      	str	r4, [sp, #0]
+ 80012b6:	9c00      	ldr	r4, [sp, #0]
+ 80012b8:	18e3      	adds	r3, r4, r3
+ 80012ba:	1e52      	subs	r2, r2, #1
+ 80012bc:	d1ec      	bne.n	8001298 <secondloop_bb_cmp+0xc>
+ 80012be:	4618      	mov	r0, r3
+ 80012c0:	bdf2      	pop	{r1, r4, r5, r6, r7, pc}
+	...
+
+080012c4 <bufType_bb>:
+ 80012c4:	125d 0800 128d 0800 0001 0000               ]...........
+
+080012d0 <cmox_utils_robustCmp>:
+ 80012d0:	e92d 4ff8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 80012d4:	461d      	mov	r5, r3
+ 80012d6:	f8dd 9028 	ldr.w	r9, [sp, #40]	; 0x28
+ 80012da:	9f0b      	ldr	r7, [sp, #44]	; 0x2c
+ 80012dc:	9c0d      	ldr	r4, [sp, #52]	; 0x34
+ 80012de:	f04f 33ff 	mov.w	r3, #4294967295
+ 80012e2:	9300      	str	r3, [sp, #0]
+ 80012e4:	460e      	mov	r6, r1
+ 80012e6:	4692      	mov	sl, r2
+ 80012e8:	f8d9 b000 	ldr.w	fp, [r9]
+ 80012ec:	4680      	mov	r8, r0
+ 80012ee:	4632      	mov	r2, r6
+ 80012f0:	4651      	mov	r1, sl
+ 80012f2:	47d8      	blx	fp
+ 80012f4:	4683      	mov	fp, r0
+ 80012f6:	b364      	cbz	r4, 8001352 <cmox_utils_robustCmp+0x82>
+ 80012f8:	f8d9 3004 	ldr.w	r3, [r9, #4]
+ 80012fc:	4632      	mov	r2, r6
+ 80012fe:	4651      	mov	r1, sl
+ 8001300:	4640      	mov	r0, r8
+ 8001302:	4798      	blx	r3
+ 8001304:	ea6f 020b 	mvn.w	r2, fp
+ 8001308:	1c52      	adds	r2, r2, #1
+ 800130a:	ea42 020b 	orr.w	r2, r2, fp
+ 800130e:	9900      	ldr	r1, [sp, #0]
+ 8001310:	ea6f 73d2 	mvn.w	r3, r2, lsr #31
+ 8001314:	1c5b      	adds	r3, r3, #1
+ 8001316:	4019      	ands	r1, r3
+ 8001318:	43c2      	mvns	r2, r0
+ 800131a:	9100      	str	r1, [sp, #0]
+ 800131c:	1c52      	adds	r2, r2, #1
+ 800131e:	4302      	orrs	r2, r0
+ 8001320:	9900      	ldr	r1, [sp, #0]
+ 8001322:	ea6f 73d2 	mvn.w	r3, r2, lsr #31
+ 8001326:	1c5b      	adds	r3, r3, #1
+ 8001328:	4019      	ands	r1, r3
+ 800132a:	9100      	str	r1, [sp, #0]
+ 800132c:	f086 3155 	eor.w	r1, r6, #1431655765	; 0x55555555
+ 8001330:	4048      	eors	r0, r1
+ 8001332:	ea87 0100 	eor.w	r1, r7, r0
+ 8001336:	f081 3155 	eor.w	r1, r1, #1431655765	; 0x55555555
+ 800133a:	6021      	str	r1, [r4, #0]
+ 800133c:	f080 3155 	eor.w	r1, r0, #1431655765	; 0x55555555
+ 8001340:	43c9      	mvns	r1, r1
+ 8001342:	1c49      	adds	r1, r1, #1
+ 8001344:	4308      	orrs	r0, r1
+ 8001346:	9a00      	ldr	r2, [sp, #0]
+ 8001348:	ea6f 70d0 	mvn.w	r0, r0, lsr #31
+ 800134c:	1c40      	adds	r0, r0, #1
+ 800134e:	4382      	bics	r2, r0
+ 8001350:	9200      	str	r2, [sp, #0]
+ 8001352:	f8d9 0008 	ldr.w	r0, [r9, #8]
+ 8001356:	2801      	cmp	r0, #1
+ 8001358:	d109      	bne.n	800136e <cmox_utils_robustCmp+0x9e>
+ 800135a:	4075      	eors	r5, r6
+ 800135c:	43e9      	mvns	r1, r5
+ 800135e:	1c49      	adds	r1, r1, #1
+ 8001360:	430d      	orrs	r5, r1
+ 8001362:	9800      	ldr	r0, [sp, #0]
+ 8001364:	ea6f 72d5 	mvn.w	r2, r5, lsr #31
+ 8001368:	1c52      	adds	r2, r2, #1
+ 800136a:	4390      	bics	r0, r2
+ 800136c:	e00a      	b.n	8001384 <cmox_utils_robustCmp+0xb4>
+ 800136e:	1cf1      	adds	r1, r6, #3
+ 8001370:	ea85 0291 	eor.w	r2, r5, r1, lsr #2
+ 8001374:	43d2      	mvns	r2, r2
+ 8001376:	1c52      	adds	r2, r2, #1
+ 8001378:	4315      	orrs	r5, r2
+ 800137a:	9800      	ldr	r0, [sp, #0]
+ 800137c:	ea6f 73d5 	mvn.w	r3, r5, lsr #31
+ 8001380:	1c5b      	adds	r3, r3, #1
+ 8001382:	4398      	bics	r0, r3
+ 8001384:	f086 36aa 	eor.w	r6, r6, #2863311530	; 0xaaaaaaaa
+ 8001388:	9000      	str	r0, [sp, #0]
+ 800138a:	ea86 060b 	eor.w	r6, r6, fp
+ 800138e:	f086 33aa 	eor.w	r3, r6, #2863311530	; 0xaaaaaaaa
+ 8001392:	43f2      	mvns	r2, r6
+ 8001394:	43db      	mvns	r3, r3
+ 8001396:	980c      	ldr	r0, [sp, #48]	; 0x30
+ 8001398:	f3c2 72c0 	ubfx	r2, r2, #31, #1
+ 800139c:	1c5b      	adds	r3, r3, #1
+ 800139e:	ea42 72d3 	orr.w	r2, r2, r3, lsr #31
+ 80013a2:	9900      	ldr	r1, [sp, #0]
+ 80013a4:	43d2      	mvns	r2, r2
+ 80013a6:	1c52      	adds	r2, r2, #1
+ 80013a8:	4391      	bics	r1, r2
+ 80013aa:	9100      	str	r1, [sp, #0]
+ 80013ac:	4077      	eors	r7, r6
+ 80013ae:	9900      	ldr	r1, [sp, #0]
+ 80013b0:	4388      	bics	r0, r1
+ 80013b2:	9900      	ldr	r1, [sp, #0]
+ 80013b4:	f087 37aa 	eor.w	r7, r7, #2863311530	; 0xaaaaaaaa
+ 80013b8:	400f      	ands	r7, r1
+ 80013ba:	4338      	orrs	r0, r7
+ 80013bc:	e8bd 8ff2 	ldmia.w	sp!, {r1, r4, r5, r6, r7, r8, r9, sl, fp, pc}
+
+080013c0 <strlen>:
+ 80013c0:	4603      	mov	r3, r0
+ 80013c2:	f813 2b01 	ldrb.w	r2, [r3], #1
+ 80013c6:	2a00      	cmp	r2, #0
+ 80013c8:	d1fb      	bne.n	80013c2 <strlen+0x2>
+ 80013ca:	1a18      	subs	r0, r3, r0
+ 80013cc:	3801      	subs	r0, #1
+ 80013ce:	4770      	bx	lr
+
+080013d0 <__aeabi_drsub>:
+ 80013d0:	f081 4100 	eor.w	r1, r1, #2147483648	; 0x80000000
+ 80013d4:	e002      	b.n	80013dc <__adddf3>
+ 80013d6:	bf00      	nop
+
+080013d8 <__aeabi_dsub>:
+ 80013d8:	f083 4300 	eor.w	r3, r3, #2147483648	; 0x80000000
+
+080013dc <__adddf3>:
+ 80013dc:	b530      	push	{r4, r5, lr}
+ 80013de:	ea4f 0441 	mov.w	r4, r1, lsl #1
+ 80013e2:	ea4f 0543 	mov.w	r5, r3, lsl #1
+ 80013e6:	ea94 0f05 	teq	r4, r5
+ 80013ea:	bf08      	it	eq
+ 80013ec:	ea90 0f02 	teqeq	r0, r2
+ 80013f0:	bf1f      	itttt	ne
+ 80013f2:	ea54 0c00 	orrsne.w	ip, r4, r0
+ 80013f6:	ea55 0c02 	orrsne.w	ip, r5, r2
+ 80013fa:	ea7f 5c64 	mvnsne.w	ip, r4, asr #21
+ 80013fe:	ea7f 5c65 	mvnsne.w	ip, r5, asr #21
+ 8001402:	f000 80e2 	beq.w	80015ca <__adddf3+0x1ee>
+ 8001406:	ea4f 5454 	mov.w	r4, r4, lsr #21
+ 800140a:	ebd4 5555 	rsbs	r5, r4, r5, lsr #21
+ 800140e:	bfb8      	it	lt
+ 8001410:	426d      	neglt	r5, r5
+ 8001412:	dd0c      	ble.n	800142e <__adddf3+0x52>
+ 8001414:	442c      	add	r4, r5
+ 8001416:	ea80 0202 	eor.w	r2, r0, r2
+ 800141a:	ea81 0303 	eor.w	r3, r1, r3
+ 800141e:	ea82 0000 	eor.w	r0, r2, r0
+ 8001422:	ea83 0101 	eor.w	r1, r3, r1
+ 8001426:	ea80 0202 	eor.w	r2, r0, r2
+ 800142a:	ea81 0303 	eor.w	r3, r1, r3
+ 800142e:	2d36      	cmp	r5, #54	; 0x36
+ 8001430:	bf88      	it	hi
+ 8001432:	bd30      	pophi	{r4, r5, pc}
+ 8001434:	f011 4f00 	tst.w	r1, #2147483648	; 0x80000000
+ 8001438:	ea4f 3101 	mov.w	r1, r1, lsl #12
+ 800143c:	f44f 1c80 	mov.w	ip, #1048576	; 0x100000
+ 8001440:	ea4c 3111 	orr.w	r1, ip, r1, lsr #12
+ 8001444:	d002      	beq.n	800144c <__adddf3+0x70>
+ 8001446:	4240      	negs	r0, r0
+ 8001448:	eb61 0141 	sbc.w	r1, r1, r1, lsl #1
+ 800144c:	f013 4f00 	tst.w	r3, #2147483648	; 0x80000000
+ 8001450:	ea4f 3303 	mov.w	r3, r3, lsl #12
+ 8001454:	ea4c 3313 	orr.w	r3, ip, r3, lsr #12
+ 8001458:	d002      	beq.n	8001460 <__adddf3+0x84>
+ 800145a:	4252      	negs	r2, r2
+ 800145c:	eb63 0343 	sbc.w	r3, r3, r3, lsl #1
+ 8001460:	ea94 0f05 	teq	r4, r5
+ 8001464:	f000 80a7 	beq.w	80015b6 <__adddf3+0x1da>
+ 8001468:	f1a4 0401 	sub.w	r4, r4, #1
+ 800146c:	f1d5 0e20 	rsbs	lr, r5, #32
+ 8001470:	db0d      	blt.n	800148e <__adddf3+0xb2>
+ 8001472:	fa02 fc0e 	lsl.w	ip, r2, lr
+ 8001476:	fa22 f205 	lsr.w	r2, r2, r5
+ 800147a:	1880      	adds	r0, r0, r2
+ 800147c:	f141 0100 	adc.w	r1, r1, #0
+ 8001480:	fa03 f20e 	lsl.w	r2, r3, lr
+ 8001484:	1880      	adds	r0, r0, r2
+ 8001486:	fa43 f305 	asr.w	r3, r3, r5
+ 800148a:	4159      	adcs	r1, r3
+ 800148c:	e00e      	b.n	80014ac <__adddf3+0xd0>
+ 800148e:	f1a5 0520 	sub.w	r5, r5, #32
+ 8001492:	f10e 0e20 	add.w	lr, lr, #32
+ 8001496:	2a01      	cmp	r2, #1
+ 8001498:	fa03 fc0e 	lsl.w	ip, r3, lr
+ 800149c:	bf28      	it	cs
+ 800149e:	f04c 0c02 	orrcs.w	ip, ip, #2
+ 80014a2:	fa43 f305 	asr.w	r3, r3, r5
+ 80014a6:	18c0      	adds	r0, r0, r3
+ 80014a8:	eb51 71e3 	adcs.w	r1, r1, r3, asr #31
+ 80014ac:	f001 4500 	and.w	r5, r1, #2147483648	; 0x80000000
+ 80014b0:	d507      	bpl.n	80014c2 <__adddf3+0xe6>
+ 80014b2:	f04f 0e00 	mov.w	lr, #0
+ 80014b6:	f1dc 0c00 	rsbs	ip, ip, #0
+ 80014ba:	eb7e 0000 	sbcs.w	r0, lr, r0
+ 80014be:	eb6e 0101 	sbc.w	r1, lr, r1
+ 80014c2:	f5b1 1f80 	cmp.w	r1, #1048576	; 0x100000
+ 80014c6:	d31b      	bcc.n	8001500 <__adddf3+0x124>
+ 80014c8:	f5b1 1f00 	cmp.w	r1, #2097152	; 0x200000
+ 80014cc:	d30c      	bcc.n	80014e8 <__adddf3+0x10c>
+ 80014ce:	0849      	lsrs	r1, r1, #1
+ 80014d0:	ea5f 0030 	movs.w	r0, r0, rrx
+ 80014d4:	ea4f 0c3c 	mov.w	ip, ip, rrx
+ 80014d8:	f104 0401 	add.w	r4, r4, #1
+ 80014dc:	ea4f 5244 	mov.w	r2, r4, lsl #21
+ 80014e0:	f512 0f80 	cmn.w	r2, #4194304	; 0x400000
+ 80014e4:	f080 809a 	bcs.w	800161c <__adddf3+0x240>
+ 80014e8:	f1bc 4f00 	cmp.w	ip, #2147483648	; 0x80000000
+ 80014ec:	bf08      	it	eq
+ 80014ee:	ea5f 0c50 	movseq.w	ip, r0, lsr #1
+ 80014f2:	f150 0000 	adcs.w	r0, r0, #0
+ 80014f6:	eb41 5104 	adc.w	r1, r1, r4, lsl #20
+ 80014fa:	ea41 0105 	orr.w	r1, r1, r5
+ 80014fe:	bd30      	pop	{r4, r5, pc}
+ 8001500:	ea5f 0c4c 	movs.w	ip, ip, lsl #1
+ 8001504:	4140      	adcs	r0, r0
+ 8001506:	eb41 0101 	adc.w	r1, r1, r1
+ 800150a:	3c01      	subs	r4, #1
+ 800150c:	bf28      	it	cs
+ 800150e:	f5b1 1f80 	cmpcs.w	r1, #1048576	; 0x100000
+ 8001512:	d2e9      	bcs.n	80014e8 <__adddf3+0x10c>
+ 8001514:	f091 0f00 	teq	r1, #0
+ 8001518:	bf04      	itt	eq
+ 800151a:	4601      	moveq	r1, r0
+ 800151c:	2000      	moveq	r0, #0
+ 800151e:	fab1 f381 	clz	r3, r1
+ 8001522:	bf08      	it	eq
+ 8001524:	3320      	addeq	r3, #32
+ 8001526:	f1a3 030b 	sub.w	r3, r3, #11
+ 800152a:	f1b3 0220 	subs.w	r2, r3, #32
+ 800152e:	da0c      	bge.n	800154a <__adddf3+0x16e>
+ 8001530:	320c      	adds	r2, #12
+ 8001532:	dd08      	ble.n	8001546 <__adddf3+0x16a>
+ 8001534:	f102 0c14 	add.w	ip, r2, #20
+ 8001538:	f1c2 020c 	rsb	r2, r2, #12
+ 800153c:	fa01 f00c 	lsl.w	r0, r1, ip
+ 8001540:	fa21 f102 	lsr.w	r1, r1, r2
+ 8001544:	e00c      	b.n	8001560 <__adddf3+0x184>
+ 8001546:	f102 0214 	add.w	r2, r2, #20
+ 800154a:	bfd8      	it	le
+ 800154c:	f1c2 0c20 	rsble	ip, r2, #32
+ 8001550:	fa01 f102 	lsl.w	r1, r1, r2
+ 8001554:	fa20 fc0c 	lsr.w	ip, r0, ip
+ 8001558:	bfdc      	itt	le
+ 800155a:	ea41 010c 	orrle.w	r1, r1, ip
+ 800155e:	4090      	lslle	r0, r2
+ 8001560:	1ae4      	subs	r4, r4, r3
+ 8001562:	bfa2      	ittt	ge
+ 8001564:	eb01 5104 	addge.w	r1, r1, r4, lsl #20
+ 8001568:	4329      	orrge	r1, r5
+ 800156a:	bd30      	popge	{r4, r5, pc}
+ 800156c:	ea6f 0404 	mvn.w	r4, r4
+ 8001570:	3c1f      	subs	r4, #31
+ 8001572:	da1c      	bge.n	80015ae <__adddf3+0x1d2>
+ 8001574:	340c      	adds	r4, #12
+ 8001576:	dc0e      	bgt.n	8001596 <__adddf3+0x1ba>
+ 8001578:	f104 0414 	add.w	r4, r4, #20
+ 800157c:	f1c4 0220 	rsb	r2, r4, #32
+ 8001580:	fa20 f004 	lsr.w	r0, r0, r4
+ 8001584:	fa01 f302 	lsl.w	r3, r1, r2
+ 8001588:	ea40 0003 	orr.w	r0, r0, r3
+ 800158c:	fa21 f304 	lsr.w	r3, r1, r4
+ 8001590:	ea45 0103 	orr.w	r1, r5, r3
+ 8001594:	bd30      	pop	{r4, r5, pc}
+ 8001596:	f1c4 040c 	rsb	r4, r4, #12
+ 800159a:	f1c4 0220 	rsb	r2, r4, #32
+ 800159e:	fa20 f002 	lsr.w	r0, r0, r2
+ 80015a2:	fa01 f304 	lsl.w	r3, r1, r4
+ 80015a6:	ea40 0003 	orr.w	r0, r0, r3
+ 80015aa:	4629      	mov	r1, r5
+ 80015ac:	bd30      	pop	{r4, r5, pc}
+ 80015ae:	fa21 f004 	lsr.w	r0, r1, r4
+ 80015b2:	4629      	mov	r1, r5
+ 80015b4:	bd30      	pop	{r4, r5, pc}
+ 80015b6:	f094 0f00 	teq	r4, #0
+ 80015ba:	f483 1380 	eor.w	r3, r3, #1048576	; 0x100000
+ 80015be:	bf06      	itte	eq
+ 80015c0:	f481 1180 	eoreq.w	r1, r1, #1048576	; 0x100000
+ 80015c4:	3401      	addeq	r4, #1
+ 80015c6:	3d01      	subne	r5, #1
+ 80015c8:	e74e      	b.n	8001468 <__adddf3+0x8c>
+ 80015ca:	ea7f 5c64 	mvns.w	ip, r4, asr #21
+ 80015ce:	bf18      	it	ne
+ 80015d0:	ea7f 5c65 	mvnsne.w	ip, r5, asr #21
+ 80015d4:	d029      	beq.n	800162a <__adddf3+0x24e>
+ 80015d6:	ea94 0f05 	teq	r4, r5
+ 80015da:	bf08      	it	eq
+ 80015dc:	ea90 0f02 	teqeq	r0, r2
+ 80015e0:	d005      	beq.n	80015ee <__adddf3+0x212>
+ 80015e2:	ea54 0c00 	orrs.w	ip, r4, r0
+ 80015e6:	bf04      	itt	eq
+ 80015e8:	4619      	moveq	r1, r3
+ 80015ea:	4610      	moveq	r0, r2
+ 80015ec:	bd30      	pop	{r4, r5, pc}
+ 80015ee:	ea91 0f03 	teq	r1, r3
+ 80015f2:	bf1e      	ittt	ne
+ 80015f4:	2100      	movne	r1, #0
+ 80015f6:	2000      	movne	r0, #0
+ 80015f8:	bd30      	popne	{r4, r5, pc}
+ 80015fa:	ea5f 5c54 	movs.w	ip, r4, lsr #21
+ 80015fe:	d105      	bne.n	800160c <__adddf3+0x230>
+ 8001600:	0040      	lsls	r0, r0, #1
+ 8001602:	4149      	adcs	r1, r1
+ 8001604:	bf28      	it	cs
+ 8001606:	f041 4100 	orrcs.w	r1, r1, #2147483648	; 0x80000000
+ 800160a:	bd30      	pop	{r4, r5, pc}
+ 800160c:	f514 0480 	adds.w	r4, r4, #4194304	; 0x400000
+ 8001610:	bf3c      	itt	cc
+ 8001612:	f501 1180 	addcc.w	r1, r1, #1048576	; 0x100000
+ 8001616:	bd30      	popcc	{r4, r5, pc}
+ 8001618:	f001 4500 	and.w	r5, r1, #2147483648	; 0x80000000
+ 800161c:	f045 41fe 	orr.w	r1, r5, #2130706432	; 0x7f000000
+ 8001620:	f441 0170 	orr.w	r1, r1, #15728640	; 0xf00000
+ 8001624:	f04f 0000 	mov.w	r0, #0
+ 8001628:	bd30      	pop	{r4, r5, pc}
+ 800162a:	ea7f 5c64 	mvns.w	ip, r4, asr #21
+ 800162e:	bf1a      	itte	ne
+ 8001630:	4619      	movne	r1, r3
+ 8001632:	4610      	movne	r0, r2
+ 8001634:	ea7f 5c65 	mvnseq.w	ip, r5, asr #21
+ 8001638:	bf1c      	itt	ne
+ 800163a:	460b      	movne	r3, r1
+ 800163c:	4602      	movne	r2, r0
+ 800163e:	ea50 3401 	orrs.w	r4, r0, r1, lsl #12
+ 8001642:	bf06      	itte	eq
+ 8001644:	ea52 3503 	orrseq.w	r5, r2, r3, lsl #12
+ 8001648:	ea91 0f03 	teqeq	r1, r3
+ 800164c:	f441 2100 	orrne.w	r1, r1, #524288	; 0x80000
+ 8001650:	bd30      	pop	{r4, r5, pc}
+ 8001652:	bf00      	nop
+
+08001654 <__aeabi_ui2d>:
+ 8001654:	f090 0f00 	teq	r0, #0
+ 8001658:	bf04      	itt	eq
+ 800165a:	2100      	moveq	r1, #0
+ 800165c:	4770      	bxeq	lr
+ 800165e:	b530      	push	{r4, r5, lr}
+ 8001660:	f44f 6480 	mov.w	r4, #1024	; 0x400
+ 8001664:	f104 0432 	add.w	r4, r4, #50	; 0x32
+ 8001668:	f04f 0500 	mov.w	r5, #0
+ 800166c:	f04f 0100 	mov.w	r1, #0
+ 8001670:	e750      	b.n	8001514 <__adddf3+0x138>
+ 8001672:	bf00      	nop
+
+08001674 <__aeabi_i2d>:
+ 8001674:	f090 0f00 	teq	r0, #0
+ 8001678:	bf04      	itt	eq
+ 800167a:	2100      	moveq	r1, #0
+ 800167c:	4770      	bxeq	lr
+ 800167e:	b530      	push	{r4, r5, lr}
+ 8001680:	f44f 6480 	mov.w	r4, #1024	; 0x400
+ 8001684:	f104 0432 	add.w	r4, r4, #50	; 0x32
+ 8001688:	f010 4500 	ands.w	r5, r0, #2147483648	; 0x80000000
+ 800168c:	bf48      	it	mi
+ 800168e:	4240      	negmi	r0, r0
+ 8001690:	f04f 0100 	mov.w	r1, #0
+ 8001694:	e73e      	b.n	8001514 <__adddf3+0x138>
+ 8001696:	bf00      	nop
+
+08001698 <__aeabi_f2d>:
+ 8001698:	0042      	lsls	r2, r0, #1
+ 800169a:	ea4f 01e2 	mov.w	r1, r2, asr #3
+ 800169e:	ea4f 0131 	mov.w	r1, r1, rrx
+ 80016a2:	ea4f 7002 	mov.w	r0, r2, lsl #28
+ 80016a6:	bf1f      	itttt	ne
+ 80016a8:	f012 437f 	andsne.w	r3, r2, #4278190080	; 0xff000000
+ 80016ac:	f093 4f7f 	teqne	r3, #4278190080	; 0xff000000
+ 80016b0:	f081 5160 	eorne.w	r1, r1, #939524096	; 0x38000000
+ 80016b4:	4770      	bxne	lr
+ 80016b6:	f032 427f 	bics.w	r2, r2, #4278190080	; 0xff000000
+ 80016ba:	bf08      	it	eq
+ 80016bc:	4770      	bxeq	lr
+ 80016be:	f093 4f7f 	teq	r3, #4278190080	; 0xff000000
+ 80016c2:	bf04      	itt	eq
+ 80016c4:	f441 2100 	orreq.w	r1, r1, #524288	; 0x80000
+ 80016c8:	4770      	bxeq	lr
+ 80016ca:	b530      	push	{r4, r5, lr}
+ 80016cc:	f44f 7460 	mov.w	r4, #896	; 0x380
+ 80016d0:	f001 4500 	and.w	r5, r1, #2147483648	; 0x80000000
+ 80016d4:	f021 4100 	bic.w	r1, r1, #2147483648	; 0x80000000
+ 80016d8:	e71c      	b.n	8001514 <__adddf3+0x138>
+ 80016da:	bf00      	nop
+
+080016dc <__aeabi_ul2d>:
+ 80016dc:	ea50 0201 	orrs.w	r2, r0, r1
+ 80016e0:	bf08      	it	eq
+ 80016e2:	4770      	bxeq	lr
+ 80016e4:	b530      	push	{r4, r5, lr}
+ 80016e6:	f04f 0500 	mov.w	r5, #0
+ 80016ea:	e00a      	b.n	8001702 <__aeabi_l2d+0x16>
+
+080016ec <__aeabi_l2d>:
+ 80016ec:	ea50 0201 	orrs.w	r2, r0, r1
+ 80016f0:	bf08      	it	eq
+ 80016f2:	4770      	bxeq	lr
+ 80016f4:	b530      	push	{r4, r5, lr}
+ 80016f6:	f011 4500 	ands.w	r5, r1, #2147483648	; 0x80000000
+ 80016fa:	d502      	bpl.n	8001702 <__aeabi_l2d+0x16>
+ 80016fc:	4240      	negs	r0, r0
+ 80016fe:	eb61 0141 	sbc.w	r1, r1, r1, lsl #1
+ 8001702:	f44f 6480 	mov.w	r4, #1024	; 0x400
+ 8001706:	f104 0432 	add.w	r4, r4, #50	; 0x32
+ 800170a:	ea5f 5c91 	movs.w	ip, r1, lsr #22
+ 800170e:	f43f aed8 	beq.w	80014c2 <__adddf3+0xe6>
+ 8001712:	f04f 0203 	mov.w	r2, #3
+ 8001716:	ea5f 0cdc 	movs.w	ip, ip, lsr #3
+ 800171a:	bf18      	it	ne
+ 800171c:	3203      	addne	r2, #3
+ 800171e:	ea5f 0cdc 	movs.w	ip, ip, lsr #3
+ 8001722:	bf18      	it	ne
+ 8001724:	3203      	addne	r2, #3
+ 8001726:	eb02 02dc 	add.w	r2, r2, ip, lsr #3
+ 800172a:	f1c2 0320 	rsb	r3, r2, #32
+ 800172e:	fa00 fc03 	lsl.w	ip, r0, r3
+ 8001732:	fa20 f002 	lsr.w	r0, r0, r2
+ 8001736:	fa01 fe03 	lsl.w	lr, r1, r3
+ 800173a:	ea40 000e 	orr.w	r0, r0, lr
+ 800173e:	fa21 f102 	lsr.w	r1, r1, r2
+ 8001742:	4414      	add	r4, r2
+ 8001744:	e6bd      	b.n	80014c2 <__adddf3+0xe6>
+ 8001746:	bf00      	nop
+
+08001748 <__gedf2>:
+ 8001748:	f04f 3cff 	mov.w	ip, #4294967295
+ 800174c:	e006      	b.n	800175c <__cmpdf2+0x4>
+ 800174e:	bf00      	nop
+
+08001750 <__ledf2>:
+ 8001750:	f04f 0c01 	mov.w	ip, #1
+ 8001754:	e002      	b.n	800175c <__cmpdf2+0x4>
+ 8001756:	bf00      	nop
+
+08001758 <__cmpdf2>:
+ 8001758:	f04f 0c01 	mov.w	ip, #1
+ 800175c:	f84d cd04 	str.w	ip, [sp, #-4]!
+ 8001760:	ea4f 0c41 	mov.w	ip, r1, lsl #1
+ 8001764:	ea7f 5c6c 	mvns.w	ip, ip, asr #21
+ 8001768:	ea4f 0c43 	mov.w	ip, r3, lsl #1
+ 800176c:	bf18      	it	ne
+ 800176e:	ea7f 5c6c 	mvnsne.w	ip, ip, asr #21
+ 8001772:	d01b      	beq.n	80017ac <__cmpdf2+0x54>
+ 8001774:	b001      	add	sp, #4
+ 8001776:	ea50 0c41 	orrs.w	ip, r0, r1, lsl #1
+ 800177a:	bf0c      	ite	eq
+ 800177c:	ea52 0c43 	orrseq.w	ip, r2, r3, lsl #1
+ 8001780:	ea91 0f03 	teqne	r1, r3
+ 8001784:	bf02      	ittt	eq
+ 8001786:	ea90 0f02 	teqeq	r0, r2
+ 800178a:	2000      	moveq	r0, #0
+ 800178c:	4770      	bxeq	lr
+ 800178e:	f110 0f00 	cmn.w	r0, #0
+ 8001792:	ea91 0f03 	teq	r1, r3
+ 8001796:	bf58      	it	pl
+ 8001798:	4299      	cmppl	r1, r3
+ 800179a:	bf08      	it	eq
+ 800179c:	4290      	cmpeq	r0, r2
+ 800179e:	bf2c      	ite	cs
+ 80017a0:	17d8      	asrcs	r0, r3, #31
+ 80017a2:	ea6f 70e3 	mvncc.w	r0, r3, asr #31
+ 80017a6:	f040 0001 	orr.w	r0, r0, #1
+ 80017aa:	4770      	bx	lr
+ 80017ac:	ea4f 0c41 	mov.w	ip, r1, lsl #1
+ 80017b0:	ea7f 5c6c 	mvns.w	ip, ip, asr #21
+ 80017b4:	d102      	bne.n	80017bc <__cmpdf2+0x64>
+ 80017b6:	ea50 3c01 	orrs.w	ip, r0, r1, lsl #12
+ 80017ba:	d107      	bne.n	80017cc <__cmpdf2+0x74>
+ 80017bc:	ea4f 0c43 	mov.w	ip, r3, lsl #1
+ 80017c0:	ea7f 5c6c 	mvns.w	ip, ip, asr #21
+ 80017c4:	d1d6      	bne.n	8001774 <__cmpdf2+0x1c>
+ 80017c6:	ea52 3c03 	orrs.w	ip, r2, r3, lsl #12
+ 80017ca:	d0d3      	beq.n	8001774 <__cmpdf2+0x1c>
+ 80017cc:	f85d 0b04 	ldr.w	r0, [sp], #4
+ 80017d0:	4770      	bx	lr
+ 80017d2:	bf00      	nop
+
+080017d4 <__aeabi_cdrcmple>:
+ 80017d4:	4684      	mov	ip, r0
+ 80017d6:	4610      	mov	r0, r2
+ 80017d8:	4662      	mov	r2, ip
+ 80017da:	468c      	mov	ip, r1
+ 80017dc:	4619      	mov	r1, r3
+ 80017de:	4663      	mov	r3, ip
+ 80017e0:	e000      	b.n	80017e4 <__aeabi_cdcmpeq>
+ 80017e2:	bf00      	nop
+
+080017e4 <__aeabi_cdcmpeq>:
+ 80017e4:	b501      	push	{r0, lr}
+ 80017e6:	f7ff ffb7 	bl	8001758 <__cmpdf2>
+ 80017ea:	2800      	cmp	r0, #0
+ 80017ec:	bf48      	it	mi
+ 80017ee:	f110 0f00 	cmnmi.w	r0, #0
+ 80017f2:	bd01      	pop	{r0, pc}
+
+080017f4 <__aeabi_dcmpeq>:
+ 80017f4:	f84d ed08 	str.w	lr, [sp, #-8]!
+ 80017f8:	f7ff fff4 	bl	80017e4 <__aeabi_cdcmpeq>
+ 80017fc:	bf0c      	ite	eq
+ 80017fe:	2001      	moveq	r0, #1
+ 8001800:	2000      	movne	r0, #0
+ 8001802:	f85d fb08 	ldr.w	pc, [sp], #8
+ 8001806:	bf00      	nop
+
+08001808 <__aeabi_dcmplt>:
+ 8001808:	f84d ed08 	str.w	lr, [sp, #-8]!
+ 800180c:	f7ff ffea 	bl	80017e4 <__aeabi_cdcmpeq>
+ 8001810:	bf34      	ite	cc
+ 8001812:	2001      	movcc	r0, #1
+ 8001814:	2000      	movcs	r0, #0
+ 8001816:	f85d fb08 	ldr.w	pc, [sp], #8
+ 800181a:	bf00      	nop
+
+0800181c <__aeabi_dcmple>:
+ 800181c:	f84d ed08 	str.w	lr, [sp, #-8]!
+ 8001820:	f7ff ffe0 	bl	80017e4 <__aeabi_cdcmpeq>
+ 8001824:	bf94      	ite	ls
+ 8001826:	2001      	movls	r0, #1
+ 8001828:	2000      	movhi	r0, #0
+ 800182a:	f85d fb08 	ldr.w	pc, [sp], #8
+ 800182e:	bf00      	nop
+
+08001830 <__aeabi_dcmpge>:
+ 8001830:	f84d ed08 	str.w	lr, [sp, #-8]!
+ 8001834:	f7ff ffce 	bl	80017d4 <__aeabi_cdrcmple>
+ 8001838:	bf94      	ite	ls
+ 800183a:	2001      	movls	r0, #1
+ 800183c:	2000      	movhi	r0, #0
+ 800183e:	f85d fb08 	ldr.w	pc, [sp], #8
+ 8001842:	bf00      	nop
+
+08001844 <__aeabi_dcmpgt>:
+ 8001844:	f84d ed08 	str.w	lr, [sp, #-8]!
+ 8001848:	f7ff ffc4 	bl	80017d4 <__aeabi_cdrcmple>
+ 800184c:	bf34      	ite	cc
+ 800184e:	2001      	movcc	r0, #1
+ 8001850:	2000      	movcs	r0, #0
+ 8001852:	f85d fb08 	ldr.w	pc, [sp], #8
+ 8001856:	bf00      	nop
+
+08001858 <__aeabi_d2iz>:
+ 8001858:	ea4f 0241 	mov.w	r2, r1, lsl #1
+ 800185c:	f512 1200 	adds.w	r2, r2, #2097152	; 0x200000
+ 8001860:	d215      	bcs.n	800188e <__aeabi_d2iz+0x36>
+ 8001862:	d511      	bpl.n	8001888 <__aeabi_d2iz+0x30>
+ 8001864:	f46f 7378 	mvn.w	r3, #992	; 0x3e0
+ 8001868:	ebb3 5262 	subs.w	r2, r3, r2, asr #21
+ 800186c:	d912      	bls.n	8001894 <__aeabi_d2iz+0x3c>
+ 800186e:	ea4f 23c1 	mov.w	r3, r1, lsl #11
+ 8001872:	f043 4300 	orr.w	r3, r3, #2147483648	; 0x80000000
+ 8001876:	ea43 5350 	orr.w	r3, r3, r0, lsr #21
+ 800187a:	f011 4f00 	tst.w	r1, #2147483648	; 0x80000000
+ 800187e:	fa23 f002 	lsr.w	r0, r3, r2
+ 8001882:	bf18      	it	ne
+ 8001884:	4240      	negne	r0, r0
+ 8001886:	4770      	bx	lr
+ 8001888:	f04f 0000 	mov.w	r0, #0
+ 800188c:	4770      	bx	lr
+ 800188e:	ea50 3001 	orrs.w	r0, r0, r1, lsl #12
+ 8001892:	d105      	bne.n	80018a0 <__aeabi_d2iz+0x48>
+ 8001894:	f011 4000 	ands.w	r0, r1, #2147483648	; 0x80000000
+ 8001898:	bf08      	it	eq
+ 800189a:	f06f 4000 	mvneq.w	r0, #2147483648	; 0x80000000
+ 800189e:	4770      	bx	lr
+ 80018a0:	f04f 0000 	mov.w	r0, #0
+ 80018a4:	4770      	bx	lr
+ 80018a6:	bf00      	nop
+
+080018a8 <__aeabi_frsub>:
+ 80018a8:	f080 4000 	eor.w	r0, r0, #2147483648	; 0x80000000
+ 80018ac:	e002      	b.n	80018b4 <__addsf3>
+ 80018ae:	bf00      	nop
+
+080018b0 <__aeabi_fsub>:
+ 80018b0:	f081 4100 	eor.w	r1, r1, #2147483648	; 0x80000000
+
+080018b4 <__addsf3>:
+ 80018b4:	0042      	lsls	r2, r0, #1
+ 80018b6:	bf1f      	itttt	ne
+ 80018b8:	ea5f 0341 	movsne.w	r3, r1, lsl #1
+ 80018bc:	ea92 0f03 	teqne	r2, r3
+ 80018c0:	ea7f 6c22 	mvnsne.w	ip, r2, asr #24
+ 80018c4:	ea7f 6c23 	mvnsne.w	ip, r3, asr #24
+ 80018c8:	d06a      	beq.n	80019a0 <__addsf3+0xec>
+ 80018ca:	ea4f 6212 	mov.w	r2, r2, lsr #24
+ 80018ce:	ebd2 6313 	rsbs	r3, r2, r3, lsr #24
+ 80018d2:	bfc1      	itttt	gt
+ 80018d4:	18d2      	addgt	r2, r2, r3
+ 80018d6:	4041      	eorgt	r1, r0
+ 80018d8:	4048      	eorgt	r0, r1
+ 80018da:	4041      	eorgt	r1, r0
+ 80018dc:	bfb8      	it	lt
+ 80018de:	425b      	neglt	r3, r3
+ 80018e0:	2b19      	cmp	r3, #25
+ 80018e2:	bf88      	it	hi
+ 80018e4:	4770      	bxhi	lr
+ 80018e6:	f010 4f00 	tst.w	r0, #2147483648	; 0x80000000
+ 80018ea:	f440 0000 	orr.w	r0, r0, #8388608	; 0x800000
+ 80018ee:	f020 407f 	bic.w	r0, r0, #4278190080	; 0xff000000
+ 80018f2:	bf18      	it	ne
+ 80018f4:	4240      	negne	r0, r0
+ 80018f6:	f011 4f00 	tst.w	r1, #2147483648	; 0x80000000
+ 80018fa:	f441 0100 	orr.w	r1, r1, #8388608	; 0x800000
+ 80018fe:	f021 417f 	bic.w	r1, r1, #4278190080	; 0xff000000
+ 8001902:	bf18      	it	ne
+ 8001904:	4249      	negne	r1, r1
+ 8001906:	ea92 0f03 	teq	r2, r3
+ 800190a:	d03f      	beq.n	800198c <__addsf3+0xd8>
+ 800190c:	f1a2 0201 	sub.w	r2, r2, #1
+ 8001910:	fa41 fc03 	asr.w	ip, r1, r3
+ 8001914:	eb10 000c 	adds.w	r0, r0, ip
+ 8001918:	f1c3 0320 	rsb	r3, r3, #32
+ 800191c:	fa01 f103 	lsl.w	r1, r1, r3
+ 8001920:	f000 4300 	and.w	r3, r0, #2147483648	; 0x80000000
+ 8001924:	d502      	bpl.n	800192c <__addsf3+0x78>
+ 8001926:	4249      	negs	r1, r1
+ 8001928:	eb60 0040 	sbc.w	r0, r0, r0, lsl #1
+ 800192c:	f5b0 0f00 	cmp.w	r0, #8388608	; 0x800000
+ 8001930:	d313      	bcc.n	800195a <__addsf3+0xa6>
+ 8001932:	f1b0 7f80 	cmp.w	r0, #16777216	; 0x1000000
+ 8001936:	d306      	bcc.n	8001946 <__addsf3+0x92>
+ 8001938:	0840      	lsrs	r0, r0, #1
+ 800193a:	ea4f 0131 	mov.w	r1, r1, rrx
+ 800193e:	f102 0201 	add.w	r2, r2, #1
+ 8001942:	2afe      	cmp	r2, #254	; 0xfe
+ 8001944:	d251      	bcs.n	80019ea <__addsf3+0x136>
+ 8001946:	f1b1 4f00 	cmp.w	r1, #2147483648	; 0x80000000
+ 800194a:	eb40 50c2 	adc.w	r0, r0, r2, lsl #23
+ 800194e:	bf08      	it	eq
+ 8001950:	f020 0001 	biceq.w	r0, r0, #1
+ 8001954:	ea40 0003 	orr.w	r0, r0, r3
+ 8001958:	4770      	bx	lr
+ 800195a:	0049      	lsls	r1, r1, #1
+ 800195c:	eb40 0000 	adc.w	r0, r0, r0
+ 8001960:	3a01      	subs	r2, #1
+ 8001962:	bf28      	it	cs
+ 8001964:	f5b0 0f00 	cmpcs.w	r0, #8388608	; 0x800000
+ 8001968:	d2ed      	bcs.n	8001946 <__addsf3+0x92>
+ 800196a:	fab0 fc80 	clz	ip, r0
+ 800196e:	f1ac 0c08 	sub.w	ip, ip, #8
+ 8001972:	ebb2 020c 	subs.w	r2, r2, ip
+ 8001976:	fa00 f00c 	lsl.w	r0, r0, ip
+ 800197a:	bfaa      	itet	ge
+ 800197c:	eb00 50c2 	addge.w	r0, r0, r2, lsl #23
+ 8001980:	4252      	neglt	r2, r2
+ 8001982:	4318      	orrge	r0, r3
+ 8001984:	bfbc      	itt	lt
+ 8001986:	40d0      	lsrlt	r0, r2
+ 8001988:	4318      	orrlt	r0, r3
+ 800198a:	4770      	bx	lr
+ 800198c:	f092 0f00 	teq	r2, #0
+ 8001990:	f481 0100 	eor.w	r1, r1, #8388608	; 0x800000
+ 8001994:	bf06      	itte	eq
+ 8001996:	f480 0000 	eoreq.w	r0, r0, #8388608	; 0x800000
+ 800199a:	3201      	addeq	r2, #1
+ 800199c:	3b01      	subne	r3, #1
+ 800199e:	e7b5      	b.n	800190c <__addsf3+0x58>
+ 80019a0:	ea4f 0341 	mov.w	r3, r1, lsl #1
+ 80019a4:	ea7f 6c22 	mvns.w	ip, r2, asr #24
+ 80019a8:	bf18      	it	ne
+ 80019aa:	ea7f 6c23 	mvnsne.w	ip, r3, asr #24
+ 80019ae:	d021      	beq.n	80019f4 <__addsf3+0x140>
+ 80019b0:	ea92 0f03 	teq	r2, r3
+ 80019b4:	d004      	beq.n	80019c0 <__addsf3+0x10c>
+ 80019b6:	f092 0f00 	teq	r2, #0
+ 80019ba:	bf08      	it	eq
+ 80019bc:	4608      	moveq	r0, r1
+ 80019be:	4770      	bx	lr
+ 80019c0:	ea90 0f01 	teq	r0, r1
+ 80019c4:	bf1c      	itt	ne
+ 80019c6:	2000      	movne	r0, #0
+ 80019c8:	4770      	bxne	lr
+ 80019ca:	f012 4f7f 	tst.w	r2, #4278190080	; 0xff000000
+ 80019ce:	d104      	bne.n	80019da <__addsf3+0x126>
+ 80019d0:	0040      	lsls	r0, r0, #1
+ 80019d2:	bf28      	it	cs
+ 80019d4:	f040 4000 	orrcs.w	r0, r0, #2147483648	; 0x80000000
+ 80019d8:	4770      	bx	lr
+ 80019da:	f112 7200 	adds.w	r2, r2, #33554432	; 0x2000000
+ 80019de:	bf3c      	itt	cc
+ 80019e0:	f500 0000 	addcc.w	r0, r0, #8388608	; 0x800000
+ 80019e4:	4770      	bxcc	lr
+ 80019e6:	f000 4300 	and.w	r3, r0, #2147483648	; 0x80000000
+ 80019ea:	f043 40fe 	orr.w	r0, r3, #2130706432	; 0x7f000000
+ 80019ee:	f440 0000 	orr.w	r0, r0, #8388608	; 0x800000
+ 80019f2:	4770      	bx	lr
+ 80019f4:	ea7f 6222 	mvns.w	r2, r2, asr #24
+ 80019f8:	bf16      	itet	ne
+ 80019fa:	4608      	movne	r0, r1
+ 80019fc:	ea7f 6323 	mvnseq.w	r3, r3, asr #24
+ 8001a00:	4601      	movne	r1, r0
+ 8001a02:	0242      	lsls	r2, r0, #9
+ 8001a04:	bf06      	itte	eq
+ 8001a06:	ea5f 2341 	movseq.w	r3, r1, lsl #9
+ 8001a0a:	ea90 0f01 	teqeq	r0, r1
+ 8001a0e:	f440 0080 	orrne.w	r0, r0, #4194304	; 0x400000
+ 8001a12:	4770      	bx	lr
+
+08001a14 <__aeabi_ui2f>:
+ 8001a14:	f04f 0300 	mov.w	r3, #0
+ 8001a18:	e004      	b.n	8001a24 <__aeabi_i2f+0x8>
+ 8001a1a:	bf00      	nop
+
+08001a1c <__aeabi_i2f>:
+ 8001a1c:	f010 4300 	ands.w	r3, r0, #2147483648	; 0x80000000
+ 8001a20:	bf48      	it	mi
+ 8001a22:	4240      	negmi	r0, r0
+ 8001a24:	ea5f 0c00 	movs.w	ip, r0
+ 8001a28:	bf08      	it	eq
+ 8001a2a:	4770      	bxeq	lr
+ 8001a2c:	f043 4396 	orr.w	r3, r3, #1258291200	; 0x4b000000
+ 8001a30:	4601      	mov	r1, r0
+ 8001a32:	f04f 0000 	mov.w	r0, #0
+ 8001a36:	e01c      	b.n	8001a72 <__aeabi_l2f+0x2a>
+
+08001a38 <__aeabi_ul2f>:
+ 8001a38:	ea50 0201 	orrs.w	r2, r0, r1
+ 8001a3c:	bf08      	it	eq
+ 8001a3e:	4770      	bxeq	lr
+ 8001a40:	f04f 0300 	mov.w	r3, #0
+ 8001a44:	e00a      	b.n	8001a5c <__aeabi_l2f+0x14>
+ 8001a46:	bf00      	nop
+
+08001a48 <__aeabi_l2f>:
+ 8001a48:	ea50 0201 	orrs.w	r2, r0, r1
+ 8001a4c:	bf08      	it	eq
+ 8001a4e:	4770      	bxeq	lr
+ 8001a50:	f011 4300 	ands.w	r3, r1, #2147483648	; 0x80000000
+ 8001a54:	d502      	bpl.n	8001a5c <__aeabi_l2f+0x14>
+ 8001a56:	4240      	negs	r0, r0
+ 8001a58:	eb61 0141 	sbc.w	r1, r1, r1, lsl #1
+ 8001a5c:	ea5f 0c01 	movs.w	ip, r1
+ 8001a60:	bf02      	ittt	eq
+ 8001a62:	4684      	moveq	ip, r0
+ 8001a64:	4601      	moveq	r1, r0
+ 8001a66:	2000      	moveq	r0, #0
+ 8001a68:	f043 43b6 	orr.w	r3, r3, #1526726656	; 0x5b000000
+ 8001a6c:	bf08      	it	eq
+ 8001a6e:	f1a3 5380 	subeq.w	r3, r3, #268435456	; 0x10000000
+ 8001a72:	f5a3 0300 	sub.w	r3, r3, #8388608	; 0x800000
+ 8001a76:	fabc f28c 	clz	r2, ip
+ 8001a7a:	3a08      	subs	r2, #8
+ 8001a7c:	eba3 53c2 	sub.w	r3, r3, r2, lsl #23
+ 8001a80:	db10      	blt.n	8001aa4 <__aeabi_l2f+0x5c>
+ 8001a82:	fa01 fc02 	lsl.w	ip, r1, r2
+ 8001a86:	4463      	add	r3, ip
+ 8001a88:	fa00 fc02 	lsl.w	ip, r0, r2
+ 8001a8c:	f1c2 0220 	rsb	r2, r2, #32
+ 8001a90:	f1bc 4f00 	cmp.w	ip, #2147483648	; 0x80000000
+ 8001a94:	fa20 f202 	lsr.w	r2, r0, r2
+ 8001a98:	eb43 0002 	adc.w	r0, r3, r2
+ 8001a9c:	bf08      	it	eq
+ 8001a9e:	f020 0001 	biceq.w	r0, r0, #1
+ 8001aa2:	4770      	bx	lr
+ 8001aa4:	f102 0220 	add.w	r2, r2, #32
+ 8001aa8:	fa01 fc02 	lsl.w	ip, r1, r2
+ 8001aac:	f1c2 0220 	rsb	r2, r2, #32
+ 8001ab0:	ea50 004c 	orrs.w	r0, r0, ip, lsl #1
+ 8001ab4:	fa21 f202 	lsr.w	r2, r1, r2
+ 8001ab8:	eb43 0002 	adc.w	r0, r3, r2
+ 8001abc:	bf08      	it	eq
+ 8001abe:	ea20 70dc 	biceq.w	r0, r0, ip, lsr #31
+ 8001ac2:	4770      	bx	lr
+
+08001ac4 <__aeabi_f2iz>:
+ 8001ac4:	ea4f 0240 	mov.w	r2, r0, lsl #1
+ 8001ac8:	f1b2 4ffe 	cmp.w	r2, #2130706432	; 0x7f000000
+ 8001acc:	d30f      	bcc.n	8001aee <__aeabi_f2iz+0x2a>
+ 8001ace:	f04f 039e 	mov.w	r3, #158	; 0x9e
+ 8001ad2:	ebb3 6212 	subs.w	r2, r3, r2, lsr #24
+ 8001ad6:	d90d      	bls.n	8001af4 <__aeabi_f2iz+0x30>
+ 8001ad8:	ea4f 2300 	mov.w	r3, r0, lsl #8
+ 8001adc:	f043 4300 	orr.w	r3, r3, #2147483648	; 0x80000000
+ 8001ae0:	f010 4f00 	tst.w	r0, #2147483648	; 0x80000000
+ 8001ae4:	fa23 f002 	lsr.w	r0, r3, r2
+ 8001ae8:	bf18      	it	ne
+ 8001aea:	4240      	negne	r0, r0
+ 8001aec:	4770      	bx	lr
+ 8001aee:	f04f 0000 	mov.w	r0, #0
+ 8001af2:	4770      	bx	lr
+ 8001af4:	f112 0f61 	cmn.w	r2, #97	; 0x61
+ 8001af8:	d101      	bne.n	8001afe <__aeabi_f2iz+0x3a>
+ 8001afa:	0242      	lsls	r2, r0, #9
+ 8001afc:	d105      	bne.n	8001b0a <__aeabi_f2iz+0x46>
+ 8001afe:	f010 4000 	ands.w	r0, r0, #2147483648	; 0x80000000
+ 8001b02:	bf08      	it	eq
+ 8001b04:	f06f 4000 	mvneq.w	r0, #2147483648	; 0x80000000
+ 8001b08:	4770      	bx	lr
+ 8001b0a:	f04f 0000 	mov.w	r0, #0
+ 8001b0e:	4770      	bx	lr
+
+08001b10 <__aeabi_uldivmod>:
+ 8001b10:	b953      	cbnz	r3, 8001b28 <__aeabi_uldivmod+0x18>
+ 8001b12:	b94a      	cbnz	r2, 8001b28 <__aeabi_uldivmod+0x18>
+ 8001b14:	2900      	cmp	r1, #0
+ 8001b16:	bf08      	it	eq
+ 8001b18:	2800      	cmpeq	r0, #0
+ 8001b1a:	bf1c      	itt	ne
+ 8001b1c:	f04f 31ff 	movne.w	r1, #4294967295
+ 8001b20:	f04f 30ff 	movne.w	r0, #4294967295
+ 8001b24:	f000 b970 	b.w	8001e08 <__aeabi_idiv0>
+ 8001b28:	f1ad 0c08 	sub.w	ip, sp, #8
+ 8001b2c:	e96d ce04 	strd	ip, lr, [sp, #-16]!
+ 8001b30:	f000 f806 	bl	8001b40 <__udivmoddi4>
+ 8001b34:	f8dd e004 	ldr.w	lr, [sp, #4]
+ 8001b38:	e9dd 2302 	ldrd	r2, r3, [sp, #8]
+ 8001b3c:	b004      	add	sp, #16
+ 8001b3e:	4770      	bx	lr
+
+08001b40 <__udivmoddi4>:
+ 8001b40:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
+ 8001b44:	9e08      	ldr	r6, [sp, #32]
+ 8001b46:	460d      	mov	r5, r1
+ 8001b48:	4604      	mov	r4, r0
+ 8001b4a:	460f      	mov	r7, r1
+ 8001b4c:	2b00      	cmp	r3, #0
+ 8001b4e:	d14a      	bne.n	8001be6 <__udivmoddi4+0xa6>
+ 8001b50:	428a      	cmp	r2, r1
+ 8001b52:	4694      	mov	ip, r2
+ 8001b54:	d965      	bls.n	8001c22 <__udivmoddi4+0xe2>
+ 8001b56:	fab2 f382 	clz	r3, r2
+ 8001b5a:	b143      	cbz	r3, 8001b6e <__udivmoddi4+0x2e>
+ 8001b5c:	fa02 fc03 	lsl.w	ip, r2, r3
+ 8001b60:	f1c3 0220 	rsb	r2, r3, #32
+ 8001b64:	409f      	lsls	r7, r3
+ 8001b66:	fa20 f202 	lsr.w	r2, r0, r2
+ 8001b6a:	4317      	orrs	r7, r2
+ 8001b6c:	409c      	lsls	r4, r3
+ 8001b6e:	ea4f 4e1c 	mov.w	lr, ip, lsr #16
+ 8001b72:	fa1f f58c 	uxth.w	r5, ip
+ 8001b76:	fbb7 f1fe 	udiv	r1, r7, lr
+ 8001b7a:	0c22      	lsrs	r2, r4, #16
+ 8001b7c:	fb0e 7711 	mls	r7, lr, r1, r7
+ 8001b80:	ea42 4207 	orr.w	r2, r2, r7, lsl #16
+ 8001b84:	fb01 f005 	mul.w	r0, r1, r5
+ 8001b88:	4290      	cmp	r0, r2
+ 8001b8a:	d90a      	bls.n	8001ba2 <__udivmoddi4+0x62>
+ 8001b8c:	eb1c 0202 	adds.w	r2, ip, r2
+ 8001b90:	f101 37ff 	add.w	r7, r1, #4294967295
+ 8001b94:	f080 811b 	bcs.w	8001dce <__udivmoddi4+0x28e>
+ 8001b98:	4290      	cmp	r0, r2
+ 8001b9a:	f240 8118 	bls.w	8001dce <__udivmoddi4+0x28e>
+ 8001b9e:	3902      	subs	r1, #2
+ 8001ba0:	4462      	add	r2, ip
+ 8001ba2:	1a12      	subs	r2, r2, r0
+ 8001ba4:	b2a4      	uxth	r4, r4
+ 8001ba6:	fbb2 f0fe 	udiv	r0, r2, lr
+ 8001baa:	fb0e 2210 	mls	r2, lr, r0, r2
+ 8001bae:	ea44 4402 	orr.w	r4, r4, r2, lsl #16
+ 8001bb2:	fb00 f505 	mul.w	r5, r0, r5
+ 8001bb6:	42a5      	cmp	r5, r4
+ 8001bb8:	d90a      	bls.n	8001bd0 <__udivmoddi4+0x90>
+ 8001bba:	eb1c 0404 	adds.w	r4, ip, r4
+ 8001bbe:	f100 32ff 	add.w	r2, r0, #4294967295
+ 8001bc2:	f080 8106 	bcs.w	8001dd2 <__udivmoddi4+0x292>
+ 8001bc6:	42a5      	cmp	r5, r4
+ 8001bc8:	f240 8103 	bls.w	8001dd2 <__udivmoddi4+0x292>
+ 8001bcc:	4464      	add	r4, ip
+ 8001bce:	3802      	subs	r0, #2
+ 8001bd0:	ea40 4001 	orr.w	r0, r0, r1, lsl #16
+ 8001bd4:	1b64      	subs	r4, r4, r5
+ 8001bd6:	2100      	movs	r1, #0
+ 8001bd8:	b11e      	cbz	r6, 8001be2 <__udivmoddi4+0xa2>
+ 8001bda:	40dc      	lsrs	r4, r3
+ 8001bdc:	2300      	movs	r3, #0
+ 8001bde:	e9c6 4300 	strd	r4, r3, [r6]
+ 8001be2:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 8001be6:	428b      	cmp	r3, r1
+ 8001be8:	d908      	bls.n	8001bfc <__udivmoddi4+0xbc>
+ 8001bea:	2e00      	cmp	r6, #0
+ 8001bec:	f000 80ec 	beq.w	8001dc8 <__udivmoddi4+0x288>
+ 8001bf0:	2100      	movs	r1, #0
+ 8001bf2:	e9c6 0500 	strd	r0, r5, [r6]
+ 8001bf6:	4608      	mov	r0, r1
+ 8001bf8:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 8001bfc:	fab3 f183 	clz	r1, r3
+ 8001c00:	2900      	cmp	r1, #0
+ 8001c02:	d149      	bne.n	8001c98 <__udivmoddi4+0x158>
+ 8001c04:	42ab      	cmp	r3, r5
+ 8001c06:	d302      	bcc.n	8001c0e <__udivmoddi4+0xce>
+ 8001c08:	4282      	cmp	r2, r0
+ 8001c0a:	f200 80f7 	bhi.w	8001dfc <__udivmoddi4+0x2bc>
+ 8001c0e:	1a84      	subs	r4, r0, r2
+ 8001c10:	eb65 0203 	sbc.w	r2, r5, r3
+ 8001c14:	2001      	movs	r0, #1
+ 8001c16:	4617      	mov	r7, r2
+ 8001c18:	2e00      	cmp	r6, #0
+ 8001c1a:	d0e2      	beq.n	8001be2 <__udivmoddi4+0xa2>
+ 8001c1c:	e9c6 4700 	strd	r4, r7, [r6]
+ 8001c20:	e7df      	b.n	8001be2 <__udivmoddi4+0xa2>
+ 8001c22:	b902      	cbnz	r2, 8001c26 <__udivmoddi4+0xe6>
+ 8001c24:	deff      	udf	#255	; 0xff
+ 8001c26:	fab2 f382 	clz	r3, r2
+ 8001c2a:	2b00      	cmp	r3, #0
+ 8001c2c:	f040 808f 	bne.w	8001d4e <__udivmoddi4+0x20e>
+ 8001c30:	1a8a      	subs	r2, r1, r2
+ 8001c32:	ea4f 471c 	mov.w	r7, ip, lsr #16
+ 8001c36:	fa1f fe8c 	uxth.w	lr, ip
+ 8001c3a:	2101      	movs	r1, #1
+ 8001c3c:	fbb2 f5f7 	udiv	r5, r2, r7
+ 8001c40:	fb07 2015 	mls	r0, r7, r5, r2
+ 8001c44:	0c22      	lsrs	r2, r4, #16
+ 8001c46:	ea42 4200 	orr.w	r2, r2, r0, lsl #16
+ 8001c4a:	fb0e f005 	mul.w	r0, lr, r5
+ 8001c4e:	4290      	cmp	r0, r2
+ 8001c50:	d908      	bls.n	8001c64 <__udivmoddi4+0x124>
+ 8001c52:	eb1c 0202 	adds.w	r2, ip, r2
+ 8001c56:	f105 38ff 	add.w	r8, r5, #4294967295
+ 8001c5a:	d202      	bcs.n	8001c62 <__udivmoddi4+0x122>
+ 8001c5c:	4290      	cmp	r0, r2
+ 8001c5e:	f200 80ca 	bhi.w	8001df6 <__udivmoddi4+0x2b6>
+ 8001c62:	4645      	mov	r5, r8
+ 8001c64:	1a12      	subs	r2, r2, r0
+ 8001c66:	b2a4      	uxth	r4, r4
+ 8001c68:	fbb2 f0f7 	udiv	r0, r2, r7
+ 8001c6c:	fb07 2210 	mls	r2, r7, r0, r2
+ 8001c70:	ea44 4402 	orr.w	r4, r4, r2, lsl #16
+ 8001c74:	fb0e fe00 	mul.w	lr, lr, r0
+ 8001c78:	45a6      	cmp	lr, r4
+ 8001c7a:	d908      	bls.n	8001c8e <__udivmoddi4+0x14e>
+ 8001c7c:	eb1c 0404 	adds.w	r4, ip, r4
+ 8001c80:	f100 32ff 	add.w	r2, r0, #4294967295
+ 8001c84:	d202      	bcs.n	8001c8c <__udivmoddi4+0x14c>
+ 8001c86:	45a6      	cmp	lr, r4
+ 8001c88:	f200 80ba 	bhi.w	8001e00 <__udivmoddi4+0x2c0>
+ 8001c8c:	4610      	mov	r0, r2
+ 8001c8e:	eba4 040e 	sub.w	r4, r4, lr
+ 8001c92:	ea40 4005 	orr.w	r0, r0, r5, lsl #16
+ 8001c96:	e79f      	b.n	8001bd8 <__udivmoddi4+0x98>
+ 8001c98:	f1c1 0720 	rsb	r7, r1, #32
+ 8001c9c:	408b      	lsls	r3, r1
+ 8001c9e:	fa22 fc07 	lsr.w	ip, r2, r7
+ 8001ca2:	ea4c 0c03 	orr.w	ip, ip, r3
+ 8001ca6:	fa05 f401 	lsl.w	r4, r5, r1
+ 8001caa:	fa20 f307 	lsr.w	r3, r0, r7
+ 8001cae:	40fd      	lsrs	r5, r7
+ 8001cb0:	4323      	orrs	r3, r4
+ 8001cb2:	fa00 f901 	lsl.w	r9, r0, r1
+ 8001cb6:	ea4f 401c 	mov.w	r0, ip, lsr #16
+ 8001cba:	fa1f fe8c 	uxth.w	lr, ip
+ 8001cbe:	fbb5 f8f0 	udiv	r8, r5, r0
+ 8001cc2:	0c1c      	lsrs	r4, r3, #16
+ 8001cc4:	fb00 5518 	mls	r5, r0, r8, r5
+ 8001cc8:	ea44 4405 	orr.w	r4, r4, r5, lsl #16
+ 8001ccc:	fb08 f50e 	mul.w	r5, r8, lr
+ 8001cd0:	42a5      	cmp	r5, r4
+ 8001cd2:	fa02 f201 	lsl.w	r2, r2, r1
+ 8001cd6:	d90b      	bls.n	8001cf0 <__udivmoddi4+0x1b0>
+ 8001cd8:	eb1c 0404 	adds.w	r4, ip, r4
+ 8001cdc:	f108 3aff 	add.w	sl, r8, #4294967295
+ 8001ce0:	f080 8087 	bcs.w	8001df2 <__udivmoddi4+0x2b2>
+ 8001ce4:	42a5      	cmp	r5, r4
+ 8001ce6:	f240 8084 	bls.w	8001df2 <__udivmoddi4+0x2b2>
+ 8001cea:	f1a8 0802 	sub.w	r8, r8, #2
+ 8001cee:	4464      	add	r4, ip
+ 8001cf0:	1b64      	subs	r4, r4, r5
+ 8001cf2:	b29d      	uxth	r5, r3
+ 8001cf4:	fbb4 f3f0 	udiv	r3, r4, r0
+ 8001cf8:	fb00 4413 	mls	r4, r0, r3, r4
+ 8001cfc:	ea45 4404 	orr.w	r4, r5, r4, lsl #16
+ 8001d00:	fb03 fe0e 	mul.w	lr, r3, lr
+ 8001d04:	45a6      	cmp	lr, r4
+ 8001d06:	d908      	bls.n	8001d1a <__udivmoddi4+0x1da>
+ 8001d08:	eb1c 0404 	adds.w	r4, ip, r4
+ 8001d0c:	f103 30ff 	add.w	r0, r3, #4294967295
+ 8001d10:	d26b      	bcs.n	8001dea <__udivmoddi4+0x2aa>
+ 8001d12:	45a6      	cmp	lr, r4
+ 8001d14:	d969      	bls.n	8001dea <__udivmoddi4+0x2aa>
+ 8001d16:	3b02      	subs	r3, #2
+ 8001d18:	4464      	add	r4, ip
+ 8001d1a:	ea43 4008 	orr.w	r0, r3, r8, lsl #16
+ 8001d1e:	fba0 8302 	umull	r8, r3, r0, r2
+ 8001d22:	eba4 040e 	sub.w	r4, r4, lr
+ 8001d26:	429c      	cmp	r4, r3
+ 8001d28:	46c6      	mov	lr, r8
+ 8001d2a:	461d      	mov	r5, r3
+ 8001d2c:	d355      	bcc.n	8001dda <__udivmoddi4+0x29a>
+ 8001d2e:	d052      	beq.n	8001dd6 <__udivmoddi4+0x296>
+ 8001d30:	b156      	cbz	r6, 8001d48 <__udivmoddi4+0x208>
+ 8001d32:	ebb9 030e 	subs.w	r3, r9, lr
+ 8001d36:	eb64 0405 	sbc.w	r4, r4, r5
+ 8001d3a:	fa04 f707 	lsl.w	r7, r4, r7
+ 8001d3e:	40cb      	lsrs	r3, r1
+ 8001d40:	40cc      	lsrs	r4, r1
+ 8001d42:	431f      	orrs	r7, r3
+ 8001d44:	e9c6 7400 	strd	r7, r4, [r6]
+ 8001d48:	2100      	movs	r1, #0
+ 8001d4a:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 8001d4e:	f1c3 0120 	rsb	r1, r3, #32
+ 8001d52:	fa02 fc03 	lsl.w	ip, r2, r3
+ 8001d56:	fa20 f201 	lsr.w	r2, r0, r1
+ 8001d5a:	fa25 f101 	lsr.w	r1, r5, r1
+ 8001d5e:	409d      	lsls	r5, r3
+ 8001d60:	432a      	orrs	r2, r5
+ 8001d62:	ea4f 471c 	mov.w	r7, ip, lsr #16
+ 8001d66:	fa1f fe8c 	uxth.w	lr, ip
+ 8001d6a:	fbb1 f0f7 	udiv	r0, r1, r7
+ 8001d6e:	fb07 1510 	mls	r5, r7, r0, r1
+ 8001d72:	0c11      	lsrs	r1, r2, #16
+ 8001d74:	ea41 4105 	orr.w	r1, r1, r5, lsl #16
+ 8001d78:	fb00 f50e 	mul.w	r5, r0, lr
+ 8001d7c:	428d      	cmp	r5, r1
+ 8001d7e:	fa04 f403 	lsl.w	r4, r4, r3
+ 8001d82:	d908      	bls.n	8001d96 <__udivmoddi4+0x256>
+ 8001d84:	eb1c 0101 	adds.w	r1, ip, r1
+ 8001d88:	f100 38ff 	add.w	r8, r0, #4294967295
+ 8001d8c:	d22f      	bcs.n	8001dee <__udivmoddi4+0x2ae>
+ 8001d8e:	428d      	cmp	r5, r1
+ 8001d90:	d92d      	bls.n	8001dee <__udivmoddi4+0x2ae>
+ 8001d92:	3802      	subs	r0, #2
+ 8001d94:	4461      	add	r1, ip
+ 8001d96:	1b49      	subs	r1, r1, r5
+ 8001d98:	b292      	uxth	r2, r2
+ 8001d9a:	fbb1 f5f7 	udiv	r5, r1, r7
+ 8001d9e:	fb07 1115 	mls	r1, r7, r5, r1
+ 8001da2:	ea42 4201 	orr.w	r2, r2, r1, lsl #16
+ 8001da6:	fb05 f10e 	mul.w	r1, r5, lr
+ 8001daa:	4291      	cmp	r1, r2
+ 8001dac:	d908      	bls.n	8001dc0 <__udivmoddi4+0x280>
+ 8001dae:	eb1c 0202 	adds.w	r2, ip, r2
+ 8001db2:	f105 38ff 	add.w	r8, r5, #4294967295
+ 8001db6:	d216      	bcs.n	8001de6 <__udivmoddi4+0x2a6>
+ 8001db8:	4291      	cmp	r1, r2
+ 8001dba:	d914      	bls.n	8001de6 <__udivmoddi4+0x2a6>
+ 8001dbc:	3d02      	subs	r5, #2
+ 8001dbe:	4462      	add	r2, ip
+ 8001dc0:	1a52      	subs	r2, r2, r1
+ 8001dc2:	ea45 4100 	orr.w	r1, r5, r0, lsl #16
+ 8001dc6:	e739      	b.n	8001c3c <__udivmoddi4+0xfc>
+ 8001dc8:	4631      	mov	r1, r6
+ 8001dca:	4630      	mov	r0, r6
+ 8001dcc:	e709      	b.n	8001be2 <__udivmoddi4+0xa2>
+ 8001dce:	4639      	mov	r1, r7
+ 8001dd0:	e6e7      	b.n	8001ba2 <__udivmoddi4+0x62>
+ 8001dd2:	4610      	mov	r0, r2
+ 8001dd4:	e6fc      	b.n	8001bd0 <__udivmoddi4+0x90>
+ 8001dd6:	45c1      	cmp	r9, r8
+ 8001dd8:	d2aa      	bcs.n	8001d30 <__udivmoddi4+0x1f0>
+ 8001dda:	ebb8 0e02 	subs.w	lr, r8, r2
+ 8001dde:	eb63 050c 	sbc.w	r5, r3, ip
+ 8001de2:	3801      	subs	r0, #1
+ 8001de4:	e7a4      	b.n	8001d30 <__udivmoddi4+0x1f0>
+ 8001de6:	4645      	mov	r5, r8
+ 8001de8:	e7ea      	b.n	8001dc0 <__udivmoddi4+0x280>
+ 8001dea:	4603      	mov	r3, r0
+ 8001dec:	e795      	b.n	8001d1a <__udivmoddi4+0x1da>
+ 8001dee:	4640      	mov	r0, r8
+ 8001df0:	e7d1      	b.n	8001d96 <__udivmoddi4+0x256>
+ 8001df2:	46d0      	mov	r8, sl
+ 8001df4:	e77c      	b.n	8001cf0 <__udivmoddi4+0x1b0>
+ 8001df6:	3d02      	subs	r5, #2
+ 8001df8:	4462      	add	r2, ip
+ 8001dfa:	e733      	b.n	8001c64 <__udivmoddi4+0x124>
+ 8001dfc:	4608      	mov	r0, r1
+ 8001dfe:	e70b      	b.n	8001c18 <__udivmoddi4+0xd8>
+ 8001e00:	4464      	add	r4, ip
+ 8001e02:	3802      	subs	r0, #2
+ 8001e04:	e743      	b.n	8001c8e <__udivmoddi4+0x14e>
+ 8001e06:	bf00      	nop
+
+08001e08 <__aeabi_idiv0>:
+ 8001e08:	4770      	bx	lr
+ 8001e0a:	bf00      	nop
+
+08001e0c <MX_ADC_Init>:
+ 8001e0c:	4813      	ldr	r0, [pc, #76]	; (8001e5c <MX_ADC_Init+0x50>)
+ 8001e0e:	4a14      	ldr	r2, [pc, #80]	; (8001e60 <MX_ADC_Init+0x54>)
+ 8001e10:	b508      	push	{r3, lr}
+ 8001e12:	f04f 4300 	mov.w	r3, #2147483648	; 0x80000000
+ 8001e16:	e9c0 2300 	strd	r2, r3, [r0]
+ 8001e1a:	2204      	movs	r2, #4
+ 8001e1c:	2300      	movs	r3, #0
+ 8001e1e:	6142      	str	r2, [r0, #20]
+ 8001e20:	2201      	movs	r2, #1
+ 8001e22:	61c2      	str	r2, [r0, #28]
+ 8001e24:	f44f 5180 	mov.w	r1, #4096	; 0x1000
+ 8001e28:	2207      	movs	r2, #7
+ 8001e2a:	8303      	strh	r3, [r0, #24]
+ 8001e2c:	e9c0 3302 	strd	r3, r3, [r0, #8]
+ 8001e30:	e9c0 3309 	strd	r3, r3, [r0, #36]	; 0x24
+ 8001e34:	e9c0 120c 	strd	r1, r2, [r0, #48]	; 0x30
+ 8001e38:	6103      	str	r3, [r0, #16]
+ 8001e3a:	7683      	strb	r3, [r0, #26]
+ 8001e3c:	f880 3020 	strb.w	r3, [r0, #32]
+ 8001e40:	f880 302c 	strb.w	r3, [r0, #44]	; 0x2c
+ 8001e44:	6382      	str	r2, [r0, #56]	; 0x38
+ 8001e46:	f880 303c 	strb.w	r3, [r0, #60]	; 0x3c
+ 8001e4a:	64c3      	str	r3, [r0, #76]	; 0x4c
+ 8001e4c:	f005 fbee 	bl	800762c <HAL_ADC_Init>
+ 8001e50:	b118      	cbz	r0, 8001e5a <MX_ADC_Init+0x4e>
+ 8001e52:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 8001e56:	f000 bc47 	b.w	80026e8 <Error_Handler>
+ 8001e5a:	bd08      	pop	{r3, pc}
+ 8001e5c:	200008ec 	.word	0x200008ec
+ 8001e60:	40012400 	.word	0x40012400
+
+08001e64 <HAL_ADC_MspInit>:
+ 8001e64:	6802      	ldr	r2, [r0, #0]
+ 8001e66:	4b08      	ldr	r3, [pc, #32]	; (8001e88 <HAL_ADC_MspInit+0x24>)
+ 8001e68:	429a      	cmp	r2, r3
+ 8001e6a:	b082      	sub	sp, #8
+ 8001e6c:	d10a      	bne.n	8001e84 <HAL_ADC_MspInit+0x20>
+ 8001e6e:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8001e72:	6e1a      	ldr	r2, [r3, #96]	; 0x60
+ 8001e74:	f442 7200 	orr.w	r2, r2, #512	; 0x200
+ 8001e78:	661a      	str	r2, [r3, #96]	; 0x60
+ 8001e7a:	6e1b      	ldr	r3, [r3, #96]	; 0x60
+ 8001e7c:	f403 7300 	and.w	r3, r3, #512	; 0x200
+ 8001e80:	9301      	str	r3, [sp, #4]
+ 8001e82:	9b01      	ldr	r3, [sp, #4]
+ 8001e84:	b002      	add	sp, #8
+ 8001e86:	4770      	bx	lr
+ 8001e88:	40012400 	.word	0x40012400
+
+08001e8c <HAL_ADC_MspDeInit>:
+ 8001e8c:	6802      	ldr	r2, [r0, #0]
+ 8001e8e:	4b05      	ldr	r3, [pc, #20]	; (8001ea4 <HAL_ADC_MspDeInit+0x18>)
+ 8001e90:	429a      	cmp	r2, r3
+ 8001e92:	bf01      	itttt	eq
+ 8001e94:	f04f 42b0 	moveq.w	r2, #1476395008	; 0x58000000
+ 8001e98:	6e13      	ldreq	r3, [r2, #96]	; 0x60
+ 8001e9a:	f423 7300 	biceq.w	r3, r3, #512	; 0x200
+ 8001e9e:	6613      	streq	r3, [r2, #96]	; 0x60
+ 8001ea0:	4770      	bx	lr
+ 8001ea2:	bf00      	nop
+ 8001ea4:	40012400 	.word	0x40012400
+
+08001ea8 <ADC_ReadChannels>:
+ 8001ea8:	b530      	push	{r4, r5, lr}
+ 8001eaa:	b085      	sub	sp, #20
+ 8001eac:	2400      	movs	r4, #0
+ 8001eae:	4605      	mov	r5, r0
+ 8001eb0:	e9cd 4401 	strd	r4, r4, [sp, #4]
+ 8001eb4:	9403      	str	r4, [sp, #12]
+ 8001eb6:	f7ff ffa9 	bl	8001e0c <MX_ADC_Init>
+ 8001eba:	4814      	ldr	r0, [pc, #80]	; (8001f0c <ADC_ReadChannels+0x64>)
+ 8001ebc:	f005 ff4e 	bl	8007d5c <HAL_ADCEx_Calibration_Start>
+ 8001ec0:	b108      	cbz	r0, 8001ec6 <ADC_ReadChannels+0x1e>
+ 8001ec2:	f000 fc11 	bl	80026e8 <Error_Handler>
+ 8001ec6:	4811      	ldr	r0, [pc, #68]	; (8001f0c <ADC_ReadChannels+0x64>)
+ 8001ec8:	9403      	str	r4, [sp, #12]
+ 8001eca:	a901      	add	r1, sp, #4
+ 8001ecc:	e9cd 5401 	strd	r5, r4, [sp, #4]
+ 8001ed0:	f005 fd0a 	bl	80078e8 <HAL_ADC_ConfigChannel>
+ 8001ed4:	b108      	cbz	r0, 8001eda <ADC_ReadChannels+0x32>
+ 8001ed6:	f000 fc07 	bl	80026e8 <Error_Handler>
+ 8001eda:	480c      	ldr	r0, [pc, #48]	; (8001f0c <ADC_ReadChannels+0x64>)
+ 8001edc:	f005 fe68 	bl	8007bb0 <HAL_ADC_Start>
+ 8001ee0:	b108      	cbz	r0, 8001ee6 <ADC_ReadChannels+0x3e>
+ 8001ee2:	f000 fc01 	bl	80026e8 <Error_Handler>
+ 8001ee6:	f04f 31ff 	mov.w	r1, #4294967295
+ 8001eea:	4808      	ldr	r0, [pc, #32]	; (8001f0c <ADC_ReadChannels+0x64>)
+ 8001eec:	f005 fc9e 	bl	800782c <HAL_ADC_PollForConversion>
+ 8001ef0:	4806      	ldr	r0, [pc, #24]	; (8001f0c <ADC_ReadChannels+0x64>)
+ 8001ef2:	f005 ff15 	bl	8007d20 <HAL_ADC_Stop>
+ 8001ef6:	4805      	ldr	r0, [pc, #20]	; (8001f0c <ADC_ReadChannels+0x64>)
+ 8001ef8:	f005 fcf2 	bl	80078e0 <HAL_ADC_GetValue>
+ 8001efc:	4604      	mov	r4, r0
+ 8001efe:	4803      	ldr	r0, [pc, #12]	; (8001f0c <ADC_ReadChannels+0x64>)
+ 8001f00:	f005 feb8 	bl	8007c74 <HAL_ADC_DeInit>
+ 8001f04:	4620      	mov	r0, r4
+ 8001f06:	b005      	add	sp, #20
+ 8001f08:	bd30      	pop	{r4, r5, pc}
+ 8001f0a:	bf00      	nop
+ 8001f0c:	200008ec 	.word	0x200008ec
+
+08001f10 <SYS_InitMeasurement>:
+ 8001f10:	4b01      	ldr	r3, [pc, #4]	; (8001f18 <SYS_InitMeasurement+0x8>)
+ 8001f12:	4a02      	ldr	r2, [pc, #8]	; (8001f1c <SYS_InitMeasurement+0xc>)
+ 8001f14:	601a      	str	r2, [r3, #0]
+ 8001f16:	4770      	bx	lr
+ 8001f18:	200008ec 	.word	0x200008ec
+ 8001f1c:	40012400 	.word	0x40012400
+
+08001f20 <SYS_GetBatteryLevel>:
+ 8001f20:	b508      	push	{r3, lr}
+ 8001f22:	4809      	ldr	r0, [pc, #36]	; (8001f48 <SYS_GetBatteryLevel+0x28>)
+ 8001f24:	f7ff ffc0 	bl	8001ea8 <ADC_ReadChannels>
+ 8001f28:	b168      	cbz	r0, 8001f46 <SYS_GetBatteryLevel+0x26>
+ 8001f2a:	4b08      	ldr	r3, [pc, #32]	; (8001f4c <SYS_GetBatteryLevel+0x2c>)
+ 8001f2c:	f8b3 30aa 	ldrh.w	r3, [r3, #170]	; 0xaa
+ 8001f30:	f64f 72ff 	movw	r2, #65535	; 0xffff
+ 8001f34:	4293      	cmp	r3, r2
+ 8001f36:	bf16      	itet	ne
+ 8001f38:	f640 42e4 	movwne	r2, #3300	; 0xce4
+ 8001f3c:	4b04      	ldreq	r3, [pc, #16]	; (8001f50 <SYS_GetBatteryLevel+0x30>)
+ 8001f3e:	4353      	mulne	r3, r2
+ 8001f40:	fbb3 f3f0 	udiv	r3, r3, r0
+ 8001f44:	b298      	uxth	r0, r3
+ 8001f46:	bd08      	pop	{r3, pc}
+ 8001f48:	b4002000 	.word	0xb4002000
+ 8001f4c:	1fff7500 	.word	0x1fff7500
+ 8001f50:	004c08d8 	.word	0x004c08d8
+
+08001f54 <SYS_GetTemperatureLevel>:
+ 8001f54:	b513      	push	{r0, r1, r4, lr}
+ 8001f56:	2300      	movs	r3, #0
+ 8001f58:	f8ad 3006 	strh.w	r3, [sp, #6]
+ 8001f5c:	f7ff ffe0 	bl	8001f20 <SYS_GetBatteryLevel>
+ 8001f60:	4604      	mov	r4, r0
+ 8001f62:	4819      	ldr	r0, [pc, #100]	; (8001fc8 <SYS_GetTemperatureLevel+0x74>)
+ 8001f64:	f7ff ffa0 	bl	8001ea8 <ADC_ReadChannels>
+ 8001f68:	4b18      	ldr	r3, [pc, #96]	; (8001fcc <SYS_GetTemperatureLevel+0x78>)
+ 8001f6a:	f8b3 20c8 	ldrh.w	r2, [r3, #200]	; 0xc8
+ 8001f6e:	f8b3 10a8 	ldrh.w	r1, [r3, #168]	; 0xa8
+ 8001f72:	428a      	cmp	r2, r1
+ 8001f74:	fb04 f000 	mul.w	r0, r4, r0
+ 8001f78:	d018      	beq.n	8001fac <SYS_GetTemperatureLevel+0x58>
+ 8001f7a:	f640 43e4 	movw	r3, #3300	; 0xce4
+ 8001f7e:	fbb0 f3f3 	udiv	r3, r0, r3
+ 8001f82:	2064      	movs	r0, #100	; 0x64
+ 8001f84:	1a5b      	subs	r3, r3, r1
+ 8001f86:	4343      	muls	r3, r0
+ 8001f88:	1a52      	subs	r2, r2, r1
+ 8001f8a:	fb93 f3f2 	sdiv	r3, r3, r2
+ 8001f8e:	331e      	adds	r3, #30
+ 8001f90:	b21b      	sxth	r3, r3
+ 8001f92:	f8ad 3006 	strh.w	r3, [sp, #6]
+ 8001f96:	f8bd 3006 	ldrh.w	r3, [sp, #6]
+ 8001f9a:	b25b      	sxtb	r3, r3
+ 8001f9c:	021b      	lsls	r3, r3, #8
+ 8001f9e:	f8ad 3006 	strh.w	r3, [sp, #6]
+ 8001fa2:	f8bd 0006 	ldrh.w	r0, [sp, #6]
+ 8001fa6:	b200      	sxth	r0, r0
+ 8001fa8:	b002      	add	sp, #8
+ 8001faa:	bd10      	pop	{r4, pc}
+ 8001fac:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
+ 8001fb0:	f640 73ff 	movw	r3, #4095	; 0xfff
+ 8001fb4:	fbb0 f3f3 	udiv	r3, r0, r3
+ 8001fb8:	4353      	muls	r3, r2
+ 8001fba:	f5a3 2339 	sub.w	r3, r3, #757760	; 0xb9000
+ 8001fbe:	f5a3 630c 	sub.w	r3, r3, #2240	; 0x8c0
+ 8001fc2:	f640 12c4 	movw	r2, #2500	; 0x9c4
+ 8001fc6:	e7e0      	b.n	8001f8a <SYS_GetTemperatureLevel+0x36>
+ 8001fc8:	b0001000 	.word	0xb0001000
+ 8001fcc:	1fff7500 	.word	0x1fff7500
+
+08001fd0 <cmox_ll_init>:
+ 8001fd0:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8001fd4:	b082      	sub	sp, #8
+ 8001fd6:	6a9a      	ldr	r2, [r3, #40]	; 0x28
+ 8001fd8:	f422 5280 	bic.w	r2, r2, #4096	; 0x1000
+ 8001fdc:	629a      	str	r2, [r3, #40]	; 0x28
+ 8001fde:	6c9a      	ldr	r2, [r3, #72]	; 0x48
+ 8001fe0:	f442 5280 	orr.w	r2, r2, #4096	; 0x1000
+ 8001fe4:	649a      	str	r2, [r3, #72]	; 0x48
+ 8001fe6:	6c9b      	ldr	r3, [r3, #72]	; 0x48
+ 8001fe8:	f403 5380 	and.w	r3, r3, #4096	; 0x1000
+ 8001fec:	9301      	str	r3, [sp, #4]
+ 8001fee:	9b01      	ldr	r3, [sp, #4]
+ 8001ff0:	2000      	movs	r0, #0
+ 8001ff2:	b002      	add	sp, #8
+ 8001ff4:	4770      	bx	lr
+
+08001ff6 <LL_AHB1_GRP1_EnableClock>:
+ 8001ff6:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8001ffa:	b082      	sub	sp, #8
+ 8001ffc:	6c9a      	ldr	r2, [r3, #72]	; 0x48
+ 8001ffe:	4302      	orrs	r2, r0
+ 8002000:	649a      	str	r2, [r3, #72]	; 0x48
+ 8002002:	6c9b      	ldr	r3, [r3, #72]	; 0x48
+ 8002004:	4003      	ands	r3, r0
+ 8002006:	9301      	str	r3, [sp, #4]
+ 8002008:	9b01      	ldr	r3, [sp, #4]
+ 800200a:	b002      	add	sp, #8
+ 800200c:	4770      	bx	lr
+
+0800200e <MX_DMA_Init>:
+ 800200e:	b508      	push	{r3, lr}
+ 8002010:	2004      	movs	r0, #4
+ 8002012:	f7ff fff0 	bl	8001ff6 <LL_AHB1_GRP1_EnableClock>
+ 8002016:	2001      	movs	r0, #1
+ 8002018:	f7ff ffed 	bl	8001ff6 <LL_AHB1_GRP1_EnableClock>
+ 800201c:	2002      	movs	r0, #2
+ 800201e:	f7ff ffea 	bl	8001ff6 <LL_AHB1_GRP1_EnableClock>
+ 8002022:	2200      	movs	r2, #0
+ 8002024:	4611      	mov	r1, r2
+ 8002026:	200b      	movs	r0, #11
+ 8002028:	f005 ff36 	bl	8007e98 <HAL_NVIC_SetPriority>
+ 800202c:	200b      	movs	r0, #11
+ 800202e:	f005 ff65 	bl	8007efc <HAL_NVIC_EnableIRQ>
+ 8002032:	2200      	movs	r2, #0
+ 8002034:	4611      	mov	r1, r2
+ 8002036:	200c      	movs	r0, #12
+ 8002038:	f005 ff2e 	bl	8007e98 <HAL_NVIC_SetPriority>
+ 800203c:	200c      	movs	r0, #12
+ 800203e:	f005 ff5d 	bl	8007efc <HAL_NVIC_EnableIRQ>
+ 8002042:	2200      	movs	r2, #0
+ 8002044:	4611      	mov	r1, r2
+ 8002046:	200d      	movs	r0, #13
+ 8002048:	f005 ff26 	bl	8007e98 <HAL_NVIC_SetPriority>
+ 800204c:	200d      	movs	r0, #13
+ 800204e:	f005 ff55 	bl	8007efc <HAL_NVIC_EnableIRQ>
+ 8002052:	2200      	movs	r2, #0
+ 8002054:	4611      	mov	r1, r2
+ 8002056:	200e      	movs	r0, #14
+ 8002058:	f005 ff1e 	bl	8007e98 <HAL_NVIC_SetPriority>
+ 800205c:	200e      	movs	r0, #14
+ 800205e:	f005 ff4d 	bl	8007efc <HAL_NVIC_EnableIRQ>
+ 8002062:	2200      	movs	r2, #0
+ 8002064:	4611      	mov	r1, r2
+ 8002066:	200f      	movs	r0, #15
+ 8002068:	f005 ff16 	bl	8007e98 <HAL_NVIC_SetPriority>
+ 800206c:	200f      	movs	r0, #15
+ 800206e:	f005 ff45 	bl	8007efc <HAL_NVIC_EnableIRQ>
+ 8002072:	2200      	movs	r2, #0
+ 8002074:	4611      	mov	r1, r2
+ 8002076:	2010      	movs	r0, #16
+ 8002078:	f005 ff0e 	bl	8007e98 <HAL_NVIC_SetPriority>
+ 800207c:	2010      	movs	r0, #16
+ 800207e:	f005 ff3d 	bl	8007efc <HAL_NVIC_EnableIRQ>
+ 8002082:	2200      	movs	r2, #0
+ 8002084:	4611      	mov	r1, r2
+ 8002086:	2011      	movs	r0, #17
+ 8002088:	f005 ff06 	bl	8007e98 <HAL_NVIC_SetPriority>
+ 800208c:	2011      	movs	r0, #17
+ 800208e:	f005 ff35 	bl	8007efc <HAL_NVIC_EnableIRQ>
+ 8002092:	2200      	movs	r2, #0
+ 8002094:	2036      	movs	r0, #54	; 0x36
+ 8002096:	4611      	mov	r1, r2
+ 8002098:	f005 fefe 	bl	8007e98 <HAL_NVIC_SetPriority>
+ 800209c:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 80020a0:	2036      	movs	r0, #54	; 0x36
+ 80020a2:	f005 bf2b 	b.w	8007efc <HAL_NVIC_EnableIRQ>
+	...
+
+080020a8 <FLASH_IF_INT_Clear_Error>:
+ 80020a8:	b508      	push	{r3, lr}
+ 80020aa:	f006 f96f 	bl	800838c <HAL_FLASH_Unlock>
+ 80020ae:	b110      	cbz	r0, 80020b6 <FLASH_IF_INT_Clear_Error+0xe>
+ 80020b0:	f06f 0004 	mvn.w	r0, #4
+ 80020b4:	bd08      	pop	{r3, pc}
+ 80020b6:	4b06      	ldr	r3, [pc, #24]	; (80020d0 <FLASH_IF_INT_Clear_Error+0x28>)
+ 80020b8:	699a      	ldr	r2, [r3, #24]
+ 80020ba:	f042 4240 	orr.w	r2, r2, #3221225472	; 0xc0000000
+ 80020be:	619a      	str	r2, [r3, #24]
+ 80020c0:	f24c 32fa 	movw	r2, #50170	; 0xc3fa
+ 80020c4:	611a      	str	r2, [r3, #16]
+ 80020c6:	f006 f973 	bl	80083b0 <HAL_FLASH_Lock>
+ 80020ca:	2800      	cmp	r0, #0
+ 80020cc:	d0f2      	beq.n	80020b4 <FLASH_IF_INT_Clear_Error+0xc>
+ 80020ce:	e7ef      	b.n	80020b0 <FLASH_IF_INT_Clear_Error+0x8>
+ 80020d0:	58004000 	.word	0x58004000
+
+080020d4 <FLASH_IF_INT_Erase>:
+ 80020d4:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 80020d6:	b085      	sub	sp, #20
+ 80020d8:	2300      	movs	r3, #0
+ 80020da:	460c      	mov	r4, r1
+ 80020dc:	9300      	str	r3, [sp, #0]
+ 80020de:	4606      	mov	r6, r0
+ 80020e0:	b3a8      	cbz	r0, 800214e <FLASH_IF_INT_Erase+0x7a>
+ 80020e2:	f7ff ffe1 	bl	80020a8 <FLASH_IF_INT_Clear_Error>
+ 80020e6:	4605      	mov	r5, r0
+ 80020e8:	bb70      	cbnz	r0, 8002148 <FLASH_IF_INT_Erase+0x74>
+ 80020ea:	f006 f94f 	bl	800838c <HAL_FLASH_Unlock>
+ 80020ee:	bb88      	cbnz	r0, 8002154 <FLASH_IF_INT_Erase+0x80>
+ 80020f0:	481a      	ldr	r0, [pc, #104]	; (800215c <FLASH_IF_INT_Erase+0x88>)
+ 80020f2:	4a1b      	ldr	r2, [pc, #108]	; (8002160 <FLASH_IF_INT_Erase+0x8c>)
+ 80020f4:	2302      	movs	r3, #2
+ 80020f6:	9301      	str	r3, [sp, #4]
+ 80020f8:	f8d0 15e0 	ldr.w	r1, [r0, #1504]	; 0x5e0
+ 80020fc:	f106 4378 	add.w	r3, r6, #4160749568	; 0xf8000000
+ 8002100:	ea02 2181 	and.w	r1, r2, r1, lsl #10
+ 8002104:	fbb3 f7f1 	udiv	r7, r3, r1
+ 8002108:	fb01 3317 	mls	r3, r1, r7, r3
+ 800210c:	0adb      	lsrs	r3, r3, #11
+ 800210e:	9302      	str	r3, [sp, #8]
+ 8002110:	f8d0 05e0 	ldr.w	r0, [r0, #1504]	; 0x5e0
+ 8002114:	f104 4178 	add.w	r1, r4, #4160749568	; 0xf8000000
+ 8002118:	3901      	subs	r1, #1
+ 800211a:	4431      	add	r1, r6
+ 800211c:	ea02 2280 	and.w	r2, r2, r0, lsl #10
+ 8002120:	fbb1 f0f2 	udiv	r0, r1, r2
+ 8002124:	fb02 1110 	mls	r1, r2, r0, r1
+ 8002128:	ebc3 23d1 	rsb	r3, r3, r1, lsr #11
+ 800212c:	3301      	adds	r3, #1
+ 800212e:	4669      	mov	r1, sp
+ 8002130:	a801      	add	r0, sp, #4
+ 8002132:	9303      	str	r3, [sp, #12]
+ 8002134:	f006 f9bc 	bl	80084b0 <HAL_FLASHEx_Erase>
+ 8002138:	b120      	cbz	r0, 8002144 <FLASH_IF_INT_Erase+0x70>
+ 800213a:	2802      	cmp	r0, #2
+ 800213c:	bf0c      	ite	eq
+ 800213e:	2501      	moveq	r5, #1
+ 8002140:	f06f 0501 	mvnne.w	r5, #1
+ 8002144:	f006 f934 	bl	80083b0 <HAL_FLASH_Lock>
+ 8002148:	4628      	mov	r0, r5
+ 800214a:	b005      	add	sp, #20
+ 800214c:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 800214e:	f06f 0505 	mvn.w	r5, #5
+ 8002152:	e7f9      	b.n	8002148 <FLASH_IF_INT_Erase+0x74>
+ 8002154:	f06f 0504 	mvn.w	r5, #4
+ 8002158:	e7f6      	b.n	8002148 <FLASH_IF_INT_Erase+0x74>
+ 800215a:	bf00      	nop
+ 800215c:	1fff7000 	.word	0x1fff7000
+ 8002160:	03fffc00 	.word	0x03fffc00
+
+08002164 <FLASH_IF_Init>:
+ 8002164:	4b01      	ldr	r3, [pc, #4]	; (800216c <FLASH_IF_Init+0x8>)
+ 8002166:	6018      	str	r0, [r3, #0]
+ 8002168:	2000      	movs	r0, #0
+ 800216a:	4770      	bx	lr
+ 800216c:	20000950 	.word	0x20000950
+
+08002170 <FLASH_IF_Write>:
+ 8002170:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8002174:	b089      	sub	sp, #36	; 0x24
+ 8002176:	f1b0 6f00 	cmp.w	r0, #134217728	; 0x8000000
+ 800217a:	4606      	mov	r6, r0
+ 800217c:	460f      	mov	r7, r1
+ 800217e:	9200      	str	r2, [sp, #0]
+ 8002180:	f0c0 80c5 	bcc.w	800230e <FLASH_IF_Write+0x19e>
+ 8002184:	f8df 8198 	ldr.w	r8, [pc, #408]	; 8002320 <FLASH_IF_Write+0x1b0>
+ 8002188:	4d66      	ldr	r5, [pc, #408]	; (8002324 <FLASH_IF_Write+0x1b4>)
+ 800218a:	f8d8 35e0 	ldr.w	r3, [r8, #1504]	; 0x5e0
+ 800218e:	ea05 2383 	and.w	r3, r5, r3, lsl #10
+ 8002192:	f103 6300 	add.w	r3, r3, #134217728	; 0x8000000
+ 8002196:	3b01      	subs	r3, #1
+ 8002198:	4298      	cmp	r0, r3
+ 800219a:	f200 80b8 	bhi.w	800230e <FLASH_IF_Write+0x19e>
+ 800219e:	2800      	cmp	r0, #0
+ 80021a0:	f000 80b8 	beq.w	8002314 <FLASH_IF_Write+0x1a4>
+ 80021a4:	2900      	cmp	r1, #0
+ 80021a6:	f000 80b5 	beq.w	8002314 <FLASH_IF_Write+0x1a4>
+ 80021aa:	ea40 0302 	orr.w	r3, r0, r2
+ 80021ae:	075b      	lsls	r3, r3, #29
+ 80021b0:	f040 80b0 	bne.w	8002314 <FLASH_IF_Write+0x1a4>
+ 80021b4:	f7ff ff78 	bl	80020a8 <FLASH_IF_INT_Clear_Error>
+ 80021b8:	4604      	mov	r4, r0
+ 80021ba:	bba0      	cbnz	r0, 8002226 <FLASH_IF_Write+0xb6>
+ 80021bc:	f006 f8e6 	bl	800838c <HAL_FLASH_Unlock>
+ 80021c0:	2800      	cmp	r0, #0
+ 80021c2:	f040 80aa 	bne.w	800231a <FLASH_IF_Write+0x1aa>
+ 80021c6:	f8d8 15e0 	ldr.w	r1, [r8, #1504]	; 0x5e0
+ 80021ca:	f106 4278 	add.w	r2, r6, #4160749568	; 0xf8000000
+ 80021ce:	ea05 2181 	and.w	r1, r5, r1, lsl #10
+ 80021d2:	fbb2 f3f1 	udiv	r3, r2, r1
+ 80021d6:	fb01 2213 	mls	r2, r1, r3, r2
+ 80021da:	9b00      	ldr	r3, [sp, #0]
+ 80021dc:	f103 4378 	add.w	r3, r3, #4160749568	; 0xf8000000
+ 80021e0:	3b01      	subs	r3, #1
+ 80021e2:	4433      	add	r3, r6
+ 80021e4:	fbb3 f0f1 	udiv	r0, r3, r1
+ 80021e8:	fb01 3310 	mls	r3, r1, r0, r3
+ 80021ec:	0adb      	lsrs	r3, r3, #11
+ 80021ee:	3301      	adds	r3, #1
+ 80021f0:	ea4f 2ad2 	mov.w	sl, r2, lsr #11
+ 80021f4:	eba3 22d2 	sub.w	r2, r3, r2, lsr #11
+ 80021f8:	2a01      	cmp	r2, #1
+ 80021fa:	9303      	str	r3, [sp, #12]
+ 80021fc:	bf88      	it	hi
+ 80021fe:	f3c6 050a 	ubfxhi	r5, r6, #0, #11
+ 8002202:	f50a 3880 	add.w	r8, sl, #65536	; 0x10000
+ 8002206:	f1c6 0308 	rsb	r3, r6, #8
+ 800220a:	bf98      	it	ls
+ 800220c:	9d00      	ldrls	r5, [sp, #0]
+ 800220e:	9306      	str	r3, [sp, #24]
+ 8002210:	bf88      	it	hi
+ 8002212:	f5c5 6500 	rsbhi	r5, r5, #2048	; 0x800
+ 8002216:	ea4f 28c8 	mov.w	r8, r8, lsl #11
+ 800221a:	46b3      	mov	fp, r6
+ 800221c:	9b03      	ldr	r3, [sp, #12]
+ 800221e:	459a      	cmp	sl, r3
+ 8002220:	d305      	bcc.n	800222e <FLASH_IF_Write+0xbe>
+ 8002222:	f006 f8c5 	bl	80083b0 <HAL_FLASH_Lock>
+ 8002226:	4620      	mov	r0, r4
+ 8002228:	b009      	add	sp, #36	; 0x24
+ 800222a:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 800222e:	f1a6 0308 	sub.w	r3, r6, #8
+ 8002232:	9a06      	ldr	r2, [sp, #24]
+ 8002234:	441a      	add	r2, r3
+ 8002236:	4295      	cmp	r5, r2
+ 8002238:	d819      	bhi.n	800226e <FLASH_IF_Write+0xfe>
+ 800223a:	9504      	str	r5, [sp, #16]
+ 800223c:	9701      	str	r7, [sp, #4]
+ 800223e:	f8cd b014 	str.w	fp, [sp, #20]
+ 8002242:	f04f 0900 	mov.w	r9, #0
+ 8002246:	9b05      	ldr	r3, [sp, #20]
+ 8002248:	eb09 0103 	add.w	r1, r9, r3
+ 800224c:	9b04      	ldr	r3, [sp, #16]
+ 800224e:	4599      	cmp	r9, r3
+ 8002250:	d33e      	bcc.n	80022d0 <FLASH_IF_Write+0x160>
+ 8002252:	9b00      	ldr	r3, [sp, #0]
+ 8002254:	44ab      	add	fp, r5
+ 8002256:	442f      	add	r7, r5
+ 8002258:	1b5d      	subs	r5, r3, r5
+ 800225a:	f5b5 6f00 	cmp.w	r5, #2048	; 0x800
+ 800225e:	bf28      	it	cs
+ 8002260:	f44f 6500 	movcs.w	r5, #2048	; 0x800
+ 8002264:	f10a 0a01 	add.w	sl, sl, #1
+ 8002268:	f508 6800 	add.w	r8, r8, #2048	; 0x800
+ 800226c:	e7d6      	b.n	800221c <FLASH_IF_Write+0xac>
+ 800226e:	f853 1f08 	ldr.w	r1, [r3, #8]!
+ 8002272:	685a      	ldr	r2, [r3, #4]
+ 8002274:	f1b2 3fff 	cmp.w	r2, #4294967295
+ 8002278:	bf08      	it	eq
+ 800227a:	f1b1 3fff 	cmpeq.w	r1, #4294967295
+ 800227e:	d0d8      	beq.n	8002232 <FLASH_IF_Write+0xc2>
+ 8002280:	4b29      	ldr	r3, [pc, #164]	; (8002328 <FLASH_IF_Write+0x1b8>)
+ 8002282:	6818      	ldr	r0, [r3, #0]
+ 8002284:	b910      	cbnz	r0, 800228c <FLASH_IF_Write+0x11c>
+ 8002286:	f06f 0405 	mvn.w	r4, #5
+ 800228a:	e7ca      	b.n	8002222 <FLASH_IF_Write+0xb2>
+ 800228c:	f1b8 0f00 	cmp.w	r8, #0
+ 8002290:	d004      	beq.n	800229c <FLASH_IF_Write+0x12c>
+ 8002292:	f44f 6200 	mov.w	r2, #2048	; 0x800
+ 8002296:	4641      	mov	r1, r8
+ 8002298:	f011 fc76 	bl	8013b88 <UTIL_MEM_cpy_8>
+ 800229c:	f8df 9088 	ldr.w	r9, [pc, #136]	; 8002328 <FLASH_IF_Write+0x1b8>
+ 80022a0:	f8d9 3000 	ldr.w	r3, [r9]
+ 80022a4:	f3cb 000a 	ubfx	r0, fp, #0, #11
+ 80022a8:	4639      	mov	r1, r7
+ 80022aa:	4418      	add	r0, r3
+ 80022ac:	b2aa      	uxth	r2, r5
+ 80022ae:	f011 fc6b 	bl	8013b88 <UTIL_MEM_cpy_8>
+ 80022b2:	f44f 6100 	mov.w	r1, #2048	; 0x800
+ 80022b6:	4640      	mov	r0, r8
+ 80022b8:	f7ff ff0c 	bl	80020d4 <FLASH_IF_INT_Erase>
+ 80022bc:	bb08      	cbnz	r0, 8002302 <FLASH_IF_Write+0x192>
+ 80022be:	f8d9 3000 	ldr.w	r3, [r9]
+ 80022c2:	9301      	str	r3, [sp, #4]
+ 80022c4:	f44f 6300 	mov.w	r3, #2048	; 0x800
+ 80022c8:	f8cd 8014 	str.w	r8, [sp, #20]
+ 80022cc:	9304      	str	r3, [sp, #16]
+ 80022ce:	e7b8      	b.n	8002242 <FLASH_IF_Write+0xd2>
+ 80022d0:	9b01      	ldr	r3, [sp, #4]
+ 80022d2:	9107      	str	r1, [sp, #28]
+ 80022d4:	444b      	add	r3, r9
+ 80022d6:	9302      	str	r3, [sp, #8]
+ 80022d8:	2001      	movs	r0, #1
+ 80022da:	e9d3 2300 	ldrd	r2, r3, [r3]
+ 80022de:	f006 f8a1 	bl	8008424 <HAL_FLASH_Program>
+ 80022e2:	b988      	cbnz	r0, 8002308 <FLASH_IF_Write+0x198>
+ 80022e4:	9907      	ldr	r1, [sp, #28]
+ 80022e6:	9b01      	ldr	r3, [sp, #4]
+ 80022e8:	e9d1 0200 	ldrd	r0, r2, [r1]
+ 80022ec:	f859 1003 	ldr.w	r1, [r9, r3]
+ 80022f0:	9b02      	ldr	r3, [sp, #8]
+ 80022f2:	685b      	ldr	r3, [r3, #4]
+ 80022f4:	429a      	cmp	r2, r3
+ 80022f6:	bf08      	it	eq
+ 80022f8:	4288      	cmpeq	r0, r1
+ 80022fa:	d105      	bne.n	8002308 <FLASH_IF_Write+0x198>
+ 80022fc:	f109 0908 	add.w	r9, r9, #8
+ 8002300:	e7a1      	b.n	8002246 <FLASH_IF_Write+0xd6>
+ 8002302:	f06f 0401 	mvn.w	r4, #1
+ 8002306:	e78c      	b.n	8002222 <FLASH_IF_Write+0xb2>
+ 8002308:	f06f 0403 	mvn.w	r4, #3
+ 800230c:	e789      	b.n	8002222 <FLASH_IF_Write+0xb2>
+ 800230e:	f04f 34ff 	mov.w	r4, #4294967295
+ 8002312:	e788      	b.n	8002226 <FLASH_IF_Write+0xb6>
+ 8002314:	f06f 0405 	mvn.w	r4, #5
+ 8002318:	e785      	b.n	8002226 <FLASH_IF_Write+0xb6>
+ 800231a:	f06f 0404 	mvn.w	r4, #4
+ 800231e:	e782      	b.n	8002226 <FLASH_IF_Write+0xb6>
+ 8002320:	1fff7000 	.word	0x1fff7000
+ 8002324:	03fffc00 	.word	0x03fffc00
+ 8002328:	20000950 	.word	0x20000950
+
+0800232c <FLASH_IF_Read>:
+ 800232c:	f1b1 6f00 	cmp.w	r1, #134217728	; 0x8000000
+ 8002330:	b570      	push	{r4, r5, r6, lr}
+ 8002332:	d311      	bcc.n	8002358 <FLASH_IF_Read+0x2c>
+ 8002334:	4b0b      	ldr	r3, [pc, #44]	; (8002364 <FLASH_IF_Read+0x38>)
+ 8002336:	f8d3 65e0 	ldr.w	r6, [r3, #1504]	; 0x5e0
+ 800233a:	4b0b      	ldr	r3, [pc, #44]	; (8002368 <FLASH_IF_Read+0x3c>)
+ 800233c:	ea03 2386 	and.w	r3, r3, r6, lsl #10
+ 8002340:	f103 6300 	add.w	r3, r3, #134217728	; 0x8000000
+ 8002344:	3b01      	subs	r3, #1
+ 8002346:	4299      	cmp	r1, r3
+ 8002348:	d806      	bhi.n	8002358 <FLASH_IF_Read+0x2c>
+ 800234a:	b140      	cbz	r0, 800235e <FLASH_IF_Read+0x32>
+ 800234c:	b139      	cbz	r1, 800235e <FLASH_IF_Read+0x32>
+ 800234e:	b292      	uxth	r2, r2
+ 8002350:	f011 fc1a 	bl	8013b88 <UTIL_MEM_cpy_8>
+ 8002354:	2000      	movs	r0, #0
+ 8002356:	bd70      	pop	{r4, r5, r6, pc}
+ 8002358:	f04f 30ff 	mov.w	r0, #4294967295
+ 800235c:	e7fb      	b.n	8002356 <FLASH_IF_Read+0x2a>
+ 800235e:	f06f 0005 	mvn.w	r0, #5
+ 8002362:	e7f8      	b.n	8002356 <FLASH_IF_Read+0x2a>
+ 8002364:	1fff7000 	.word	0x1fff7000
+ 8002368:	03fffc00 	.word	0x03fffc00
+
+0800236c <FLASH_IF_Erase>:
+ 800236c:	f1b0 6f00 	cmp.w	r0, #134217728	; 0x8000000
+ 8002370:	b410      	push	{r4}
+ 8002372:	d30d      	bcc.n	8002390 <FLASH_IF_Erase+0x24>
+ 8002374:	4b08      	ldr	r3, [pc, #32]	; (8002398 <FLASH_IF_Erase+0x2c>)
+ 8002376:	f8d3 45e0 	ldr.w	r4, [r3, #1504]	; 0x5e0
+ 800237a:	4b08      	ldr	r3, [pc, #32]	; (800239c <FLASH_IF_Erase+0x30>)
+ 800237c:	ea03 2384 	and.w	r3, r3, r4, lsl #10
+ 8002380:	f103 6300 	add.w	r3, r3, #134217728	; 0x8000000
+ 8002384:	3b01      	subs	r3, #1
+ 8002386:	4298      	cmp	r0, r3
+ 8002388:	d802      	bhi.n	8002390 <FLASH_IF_Erase+0x24>
+ 800238a:	bc10      	pop	{r4}
+ 800238c:	f7ff bea2 	b.w	80020d4 <FLASH_IF_INT_Erase>
+ 8002390:	f04f 30ff 	mov.w	r0, #4294967295
+ 8002394:	bc10      	pop	{r4}
+ 8002396:	4770      	bx	lr
+ 8002398:	1fff7000 	.word	0x1fff7000
+ 800239c:	03fffc00 	.word	0x03fffc00
+
+080023a0 <LL_AHB2_GRP1_EnableClock>:
+ 80023a0:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 80023a4:	b082      	sub	sp, #8
+ 80023a6:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 80023a8:	4302      	orrs	r2, r0
+ 80023aa:	64da      	str	r2, [r3, #76]	; 0x4c
+ 80023ac:	6cdb      	ldr	r3, [r3, #76]	; 0x4c
+ 80023ae:	4003      	ands	r3, r0
+ 80023b0:	9301      	str	r3, [sp, #4]
+ 80023b2:	9b01      	ldr	r3, [sp, #4]
+ 80023b4:	b002      	add	sp, #8
+ 80023b6:	4770      	bx	lr
+
+080023b8 <MX_GPIO_Init>:
+ 80023b8:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 80023bc:	b086      	sub	sp, #24
+ 80023be:	2214      	movs	r2, #20
+ 80023c0:	2100      	movs	r1, #0
+ 80023c2:	a801      	add	r0, sp, #4
+ 80023c4:	f012 f818 	bl	80143f8 <memset>
+ 80023c8:	2001      	movs	r0, #1
+ 80023ca:	4e46      	ldr	r6, [pc, #280]	; (80024e4 <MX_GPIO_Init+0x12c>)
+ 80023cc:	f7ff ffe8 	bl	80023a0 <LL_AHB2_GRP1_EnableClock>
+ 80023d0:	2002      	movs	r0, #2
+ 80023d2:	f7ff ffe5 	bl	80023a0 <LL_AHB2_GRP1_EnableClock>
+ 80023d6:	2004      	movs	r0, #4
+ 80023d8:	f7ff ffe2 	bl	80023a0 <LL_AHB2_GRP1_EnableClock>
+ 80023dc:	2108      	movs	r1, #8
+ 80023de:	2201      	movs	r2, #1
+ 80023e0:	4630      	mov	r0, r6
+ 80023e2:	f006 f9d9 	bl	8008798 <HAL_GPIO_WritePin>
+ 80023e6:	2501      	movs	r5, #1
+ 80023e8:	f44f 1704 	mov.w	r7, #2162688	; 0x210000
+ 80023ec:	2302      	movs	r3, #2
+ 80023ee:	a901      	add	r1, sp, #4
+ 80023f0:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 80023f4:	e9cd 3701 	strd	r3, r7, [sp, #4]
+ 80023f8:	9503      	str	r5, [sp, #12]
+ 80023fa:	f006 f8a7 	bl	800854c <HAL_GPIO_Init>
+ 80023fe:	f44f 1344 	mov.w	r3, #3211264	; 0x310000
+ 8002402:	a901      	add	r1, sp, #4
+ 8002404:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8002408:	2400      	movs	r4, #0
+ 800240a:	e9cd 3502 	strd	r3, r5, [sp, #8]
+ 800240e:	f04f 0820 	mov.w	r8, #32
+ 8002412:	9501      	str	r5, [sp, #4]
+ 8002414:	f006 f89a 	bl	800854c <HAL_GPIO_Init>
+ 8002418:	a901      	add	r1, sp, #4
+ 800241a:	4630      	mov	r0, r6
+ 800241c:	e9cd 8701 	strd	r8, r7, [sp, #4]
+ 8002420:	9403      	str	r4, [sp, #12]
+ 8002422:	f006 f893 	bl	800854c <HAL_GPIO_Init>
+ 8002426:	a901      	add	r1, sp, #4
+ 8002428:	4630      	mov	r0, r6
+ 800242a:	e9cd 8701 	strd	r8, r7, [sp, #4]
+ 800242e:	9403      	str	r4, [sp, #12]
+ 8002430:	2708      	movs	r7, #8
+ 8002432:	f006 f88b 	bl	800854c <HAL_GPIO_Init>
+ 8002436:	a901      	add	r1, sp, #4
+ 8002438:	4630      	mov	r0, r6
+ 800243a:	e9cd 7501 	strd	r7, r5, [sp, #4]
+ 800243e:	e9cd 5403 	strd	r5, r4, [sp, #12]
+ 8002442:	f006 f883 	bl	800854c <HAL_GPIO_Init>
+ 8002446:	f44f 7300 	mov.w	r3, #512	; 0x200
+ 800244a:	a901      	add	r1, sp, #4
+ 800244c:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8002450:	e9cd 3501 	strd	r3, r5, [sp, #4]
+ 8002454:	e9cd 5403 	strd	r5, r4, [sp, #12]
+ 8002458:	f006 f878 	bl	800854c <HAL_GPIO_Init>
+ 800245c:	2304      	movs	r3, #4
+ 800245e:	eb0d 0103 	add.w	r1, sp, r3
+ 8002462:	4630      	mov	r0, r6
+ 8002464:	e9cd 3501 	strd	r3, r5, [sp, #4]
+ 8002468:	e9cd 4403 	strd	r4, r4, [sp, #12]
+ 800246c:	f006 f86e 	bl	800854c <HAL_GPIO_Init>
+ 8002470:	4622      	mov	r2, r4
+ 8002472:	4639      	mov	r1, r7
+ 8002474:	4630      	mov	r0, r6
+ 8002476:	f006 f98f 	bl	8008798 <HAL_GPIO_WritePin>
+ 800247a:	f44f 6380 	mov.w	r3, #1024	; 0x400
+ 800247e:	a901      	add	r1, sp, #4
+ 8002480:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8002484:	e9cd 3401 	strd	r3, r4, [sp, #4]
+ 8002488:	9403      	str	r4, [sp, #12]
+ 800248a:	f006 f85f 	bl	800854c <HAL_GPIO_Init>
+ 800248e:	a901      	add	r1, sp, #4
+ 8002490:	4630      	mov	r0, r6
+ 8002492:	e9cd 7501 	strd	r7, r5, [sp, #4]
+ 8002496:	e9cd 4403 	strd	r4, r4, [sp, #12]
+ 800249a:	f006 f857 	bl	800854c <HAL_GPIO_Init>
+ 800249e:	4622      	mov	r2, r4
+ 80024a0:	4621      	mov	r1, r4
+ 80024a2:	2006      	movs	r0, #6
+ 80024a4:	f005 fcf8 	bl	8007e98 <HAL_NVIC_SetPriority>
+ 80024a8:	2006      	movs	r0, #6
+ 80024aa:	f005 fd27 	bl	8007efc <HAL_NVIC_EnableIRQ>
+ 80024ae:	4622      	mov	r2, r4
+ 80024b0:	4621      	mov	r1, r4
+ 80024b2:	2007      	movs	r0, #7
+ 80024b4:	f005 fcf0 	bl	8007e98 <HAL_NVIC_SetPriority>
+ 80024b8:	2007      	movs	r0, #7
+ 80024ba:	f005 fd1f 	bl	8007efc <HAL_NVIC_EnableIRQ>
+ 80024be:	4622      	mov	r2, r4
+ 80024c0:	4621      	mov	r1, r4
+ 80024c2:	2016      	movs	r0, #22
+ 80024c4:	f005 fce8 	bl	8007e98 <HAL_NVIC_SetPriority>
+ 80024c8:	2016      	movs	r0, #22
+ 80024ca:	f005 fd17 	bl	8007efc <HAL_NVIC_EnableIRQ>
+ 80024ce:	4622      	mov	r2, r4
+ 80024d0:	4621      	mov	r1, r4
+ 80024d2:	2016      	movs	r0, #22
+ 80024d4:	f005 fce0 	bl	8007e98 <HAL_NVIC_SetPriority>
+ 80024d8:	2016      	movs	r0, #22
+ 80024da:	f005 fd0f 	bl	8007efc <HAL_NVIC_EnableIRQ>
+ 80024de:	b006      	add	sp, #24
+ 80024e0:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 80024e4:	48000400 	.word	0x48000400
+
+080024e8 <MX_I2C2_Init>:
+ 80024e8:	b508      	push	{r3, lr}
+ 80024ea:	4812      	ldr	r0, [pc, #72]	; (8002534 <MX_I2C2_Init+0x4c>)
+ 80024ec:	4a12      	ldr	r2, [pc, #72]	; (8002538 <MX_I2C2_Init+0x50>)
+ 80024ee:	4b13      	ldr	r3, [pc, #76]	; (800253c <MX_I2C2_Init+0x54>)
+ 80024f0:	e9c0 2300 	strd	r2, r3, [r0]
+ 80024f4:	2300      	movs	r3, #0
+ 80024f6:	2201      	movs	r2, #1
+ 80024f8:	e9c0 3202 	strd	r3, r2, [r0, #8]
+ 80024fc:	e9c0 3304 	strd	r3, r3, [r0, #16]
+ 8002500:	e9c0 3306 	strd	r3, r3, [r0, #24]
+ 8002504:	6203      	str	r3, [r0, #32]
+ 8002506:	f006 fabb 	bl	8008a80 <HAL_I2C_Init>
+ 800250a:	b108      	cbz	r0, 8002510 <MX_I2C2_Init+0x28>
+ 800250c:	f000 f8ec 	bl	80026e8 <Error_Handler>
+ 8002510:	4808      	ldr	r0, [pc, #32]	; (8002534 <MX_I2C2_Init+0x4c>)
+ 8002512:	2100      	movs	r1, #0
+ 8002514:	f006 fc34 	bl	8008d80 <HAL_I2CEx_ConfigAnalogFilter>
+ 8002518:	b108      	cbz	r0, 800251e <MX_I2C2_Init+0x36>
+ 800251a:	f000 f8e5 	bl	80026e8 <Error_Handler>
+ 800251e:	4805      	ldr	r0, [pc, #20]	; (8002534 <MX_I2C2_Init+0x4c>)
+ 8002520:	2100      	movs	r1, #0
+ 8002522:	f006 fc53 	bl	8008dcc <HAL_I2CEx_ConfigDigitalFilter>
+ 8002526:	b118      	cbz	r0, 8002530 <MX_I2C2_Init+0x48>
+ 8002528:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 800252c:	f000 b8dc 	b.w	80026e8 <Error_Handler>
+ 8002530:	bd08      	pop	{r3, pc}
+ 8002532:	bf00      	nop
+ 8002534:	20000a14 	.word	0x20000a14
+ 8002538:	40005800 	.word	0x40005800
+ 800253c:	2010091a 	.word	0x2010091a
+
+08002540 <HAL_I2C_MspInit>:
+ 8002540:	b570      	push	{r4, r5, r6, lr}
+ 8002542:	b096      	sub	sp, #88	; 0x58
+ 8002544:	4605      	mov	r5, r0
+ 8002546:	2214      	movs	r2, #20
+ 8002548:	2100      	movs	r1, #0
+ 800254a:	a803      	add	r0, sp, #12
+ 800254c:	f011 ff54 	bl	80143f8 <memset>
+ 8002550:	2238      	movs	r2, #56	; 0x38
+ 8002552:	2100      	movs	r1, #0
+ 8002554:	a808      	add	r0, sp, #32
+ 8002556:	f011 ff4f 	bl	80143f8 <memset>
+ 800255a:	682a      	ldr	r2, [r5, #0]
+ 800255c:	4b30      	ldr	r3, [pc, #192]	; (8002620 <HAL_I2C_MspInit+0xe0>)
+ 800255e:	429a      	cmp	r2, r3
+ 8002560:	d15b      	bne.n	800261a <HAL_I2C_MspInit+0xda>
+ 8002562:	2380      	movs	r3, #128	; 0x80
+ 8002564:	9308      	str	r3, [sp, #32]
+ 8002566:	a808      	add	r0, sp, #32
+ 8002568:	f44f 2340 	mov.w	r3, #786432	; 0xc0000
+ 800256c:	930e      	str	r3, [sp, #56]	; 0x38
+ 800256e:	f007 f989 	bl	8009884 <HAL_RCCEx_PeriphCLKConfig>
+ 8002572:	b108      	cbz	r0, 8002578 <HAL_I2C_MspInit+0x38>
+ 8002574:	f000 f8b8 	bl	80026e8 <Error_Handler>
+ 8002578:	f04f 44b0 	mov.w	r4, #1476395008	; 0x58000000
+ 800257c:	f44f 50c0 	mov.w	r0, #6144	; 0x1800
+ 8002580:	6ce3      	ldr	r3, [r4, #76]	; 0x4c
+ 8002582:	f043 0301 	orr.w	r3, r3, #1
+ 8002586:	64e3      	str	r3, [r4, #76]	; 0x4c
+ 8002588:	6ce3      	ldr	r3, [r4, #76]	; 0x4c
+ 800258a:	f003 0301 	and.w	r3, r3, #1
+ 800258e:	9302      	str	r3, [sp, #8]
+ 8002590:	9b02      	ldr	r3, [sp, #8]
+ 8002592:	2312      	movs	r3, #18
+ 8002594:	2600      	movs	r6, #0
+ 8002596:	e9cd 0303 	strd	r0, r3, [sp, #12]
+ 800259a:	2303      	movs	r3, #3
+ 800259c:	e9cd 6305 	strd	r6, r3, [sp, #20]
+ 80025a0:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 80025a4:	2304      	movs	r3, #4
+ 80025a6:	a903      	add	r1, sp, #12
+ 80025a8:	9307      	str	r3, [sp, #28]
+ 80025aa:	f005 ffcf 	bl	800854c <HAL_GPIO_Init>
+ 80025ae:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 80025b0:	f8df c070 	ldr.w	ip, [pc, #112]	; 8002624 <HAL_I2C_MspInit+0xe4>
+ 80025b4:	f443 0380 	orr.w	r3, r3, #4194304	; 0x400000
+ 80025b8:	65a3      	str	r3, [r4, #88]	; 0x58
+ 80025ba:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 80025bc:	4c1a      	ldr	r4, [pc, #104]	; (8002628 <HAL_I2C_MspInit+0xe8>)
+ 80025be:	f403 0380 	and.w	r3, r3, #4194304	; 0x400000
+ 80025c2:	9301      	str	r3, [sp, #4]
+ 80025c4:	9b01      	ldr	r3, [sp, #4]
+ 80025c6:	6226      	str	r6, [r4, #32]
+ 80025c8:	230d      	movs	r3, #13
+ 80025ca:	e9c4 c300 	strd	ip, r3, [r4]
+ 80025ce:	4620      	mov	r0, r4
+ 80025d0:	2380      	movs	r3, #128	; 0x80
+ 80025d2:	e9c4 6602 	strd	r6, r6, [r4, #8]
+ 80025d6:	e9c4 3604 	strd	r3, r6, [r4, #16]
+ 80025da:	e9c4 6606 	strd	r6, r6, [r4, #24]
+ 80025de:	f005 fced 	bl	8007fbc <HAL_DMA_Init>
+ 80025e2:	b108      	cbz	r0, 80025e8 <HAL_I2C_MspInit+0xa8>
+ 80025e4:	f000 f880 	bl	80026e8 <Error_Handler>
+ 80025e8:	4a10      	ldr	r2, [pc, #64]	; (800262c <HAL_I2C_MspInit+0xec>)
+ 80025ea:	63ec      	str	r4, [r5, #60]	; 0x3c
+ 80025ec:	62a5      	str	r5, [r4, #40]	; 0x28
+ 80025ee:	4c10      	ldr	r4, [pc, #64]	; (8002630 <HAL_I2C_MspInit+0xf0>)
+ 80025f0:	230e      	movs	r3, #14
+ 80025f2:	e9c4 2300 	strd	r2, r3, [r4]
+ 80025f6:	2110      	movs	r1, #16
+ 80025f8:	2300      	movs	r3, #0
+ 80025fa:	2280      	movs	r2, #128	; 0x80
+ 80025fc:	4620      	mov	r0, r4
+ 80025fe:	e9c4 1302 	strd	r1, r3, [r4, #8]
+ 8002602:	e9c4 2304 	strd	r2, r3, [r4, #16]
+ 8002606:	e9c4 3306 	strd	r3, r3, [r4, #24]
+ 800260a:	6223      	str	r3, [r4, #32]
+ 800260c:	f005 fcd6 	bl	8007fbc <HAL_DMA_Init>
+ 8002610:	b108      	cbz	r0, 8002616 <HAL_I2C_MspInit+0xd6>
+ 8002612:	f000 f869 	bl	80026e8 <Error_Handler>
+ 8002616:	63ac      	str	r4, [r5, #56]	; 0x38
+ 8002618:	62a5      	str	r5, [r4, #40]	; 0x28
+ 800261a:	b016      	add	sp, #88	; 0x58
+ 800261c:	bd70      	pop	{r4, r5, r6, pc}
+ 800261e:	bf00      	nop
+ 8002620:	40005800 	.word	0x40005800
+ 8002624:	40020044 	.word	0x40020044
+ 8002628:	20000954 	.word	0x20000954
+ 800262c:	40020058 	.word	0x40020058
+ 8002630:	200009b4 	.word	0x200009b4
+
+08002634 <SystemClock_Config>:
+ 8002634:	b500      	push	{lr}
+ 8002636:	b09b      	sub	sp, #108	; 0x6c
+ 8002638:	2248      	movs	r2, #72	; 0x48
+ 800263a:	2100      	movs	r1, #0
+ 800263c:	a808      	add	r0, sp, #32
+ 800263e:	f011 fedb 	bl	80143f8 <memset>
+ 8002642:	2218      	movs	r2, #24
+ 8002644:	2100      	movs	r1, #0
+ 8002646:	a802      	add	r0, sp, #8
+ 8002648:	f011 fed6 	bl	80143f8 <memset>
+ 800264c:	f006 fbe4 	bl	8008e18 <HAL_PWR_EnableBkUpAccess>
+ 8002650:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 8002654:	2001      	movs	r0, #1
+ 8002656:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 800265a:	f023 0318 	bic.w	r3, r3, #24
+ 800265e:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+ 8002662:	f8d2 3400 	ldr.w	r3, [r2, #1024]	; 0x400
+ 8002666:	f423 63c0 	bic.w	r3, r3, #1536	; 0x600
+ 800266a:	f443 7300 	orr.w	r3, r3, #512	; 0x200
+ 800266e:	f8c2 3400 	str.w	r3, [r2, #1024]	; 0x400
+ 8002672:	f8d2 3400 	ldr.w	r3, [r2, #1024]	; 0x400
+ 8002676:	f403 63c0 	and.w	r3, r3, #1536	; 0x600
+ 800267a:	9301      	str	r3, [sp, #4]
+ 800267c:	9b01      	ldr	r3, [sp, #4]
+ 800267e:	2324      	movs	r3, #36	; 0x24
+ 8002680:	9308      	str	r3, [sp, #32]
+ 8002682:	2381      	movs	r3, #129	; 0x81
+ 8002684:	930b      	str	r3, [sp, #44]	; 0x2c
+ 8002686:	2300      	movs	r3, #0
+ 8002688:	e9cd 0310 	strd	r0, r3, [sp, #64]	; 0x40
+ 800268c:	22b0      	movs	r2, #176	; 0xb0
+ 800268e:	a808      	add	r0, sp, #32
+ 8002690:	e9cd 2312 	strd	r2, r3, [sp, #72]	; 0x48
+ 8002694:	f006 fd38 	bl	8009108 <HAL_RCC_OscConfig>
+ 8002698:	b108      	cbz	r0, 800269e <SystemClock_Config+0x6a>
+ 800269a:	b672      	cpsid	i
+ 800269c:	e7fe      	b.n	800269c <SystemClock_Config+0x68>
+ 800269e:	234f      	movs	r3, #79	; 0x4f
+ 80026a0:	e9cd 3002 	strd	r3, r0, [sp, #8]
+ 80026a4:	e9cd 0004 	strd	r0, r0, [sp, #16]
+ 80026a8:	e9cd 0006 	strd	r0, r0, [sp, #24]
+ 80026ac:	2102      	movs	r1, #2
+ 80026ae:	a802      	add	r0, sp, #8
+ 80026b0:	f006 ffc4 	bl	800963c <HAL_RCC_ClockConfig>
+ 80026b4:	b108      	cbz	r0, 80026ba <SystemClock_Config+0x86>
+ 80026b6:	b672      	cpsid	i
+ 80026b8:	e7fe      	b.n	80026b8 <SystemClock_Config+0x84>
+ 80026ba:	b01b      	add	sp, #108	; 0x6c
+ 80026bc:	f85d fb04 	ldr.w	pc, [sp], #4
+
+080026c0 <main>:
+ 80026c0:	b508      	push	{r3, lr}
+ 80026c2:	f004 ff61 	bl	8007588 <HAL_Init>
+ 80026c6:	f7ff ffb5 	bl	8002634 <SystemClock_Config>
+ 80026ca:	f7ff fe75 	bl	80023b8 <MX_GPIO_Init>
+ 80026ce:	f7ff fc9e 	bl	800200e <MX_DMA_Init>
+ 80026d2:	f7ff ff09 	bl	80024e8 <MX_I2C2_Init>
+ 80026d6:	f000 fe60 	bl	800339a <MX_LoRaWAN_Init>
+ 80026da:	f640 30b8 	movw	r0, #3000	; 0xbb8
+ 80026de:	f000 fa5f 	bl	8002ba0 <HAL_Delay>
+ 80026e2:	f000 fe61 	bl	80033a8 <MX_LoRaWAN_Process>
+ 80026e6:	e7fc      	b.n	80026e2 <main+0x22>
+
+080026e8 <Error_Handler>:
+ 80026e8:	b672      	cpsid	i
+ 80026ea:	e7fe      	b.n	80026ea <Error_Handler+0x2>
+
+080026ec <MX_RTC_Init>:
+ 80026ec:	b500      	push	{lr}
+ 80026ee:	b08d      	sub	sp, #52	; 0x34
+ 80026f0:	222c      	movs	r2, #44	; 0x2c
+ 80026f2:	2100      	movs	r1, #0
+ 80026f4:	a801      	add	r0, sp, #4
+ 80026f6:	f011 fe7f 	bl	80143f8 <memset>
+ 80026fa:	4817      	ldr	r0, [pc, #92]	; (8002758 <MX_RTC_Init+0x6c>)
+ 80026fc:	4b17      	ldr	r3, [pc, #92]	; (800275c <MX_RTC_Init+0x70>)
+ 80026fe:	6003      	str	r3, [r0, #0]
+ 8002700:	231f      	movs	r3, #31
+ 8002702:	6083      	str	r3, [r0, #8]
+ 8002704:	f04f 4280 	mov.w	r2, #1073741824	; 0x40000000
+ 8002708:	2300      	movs	r3, #0
+ 800270a:	e9c0 3304 	strd	r3, r3, [r0, #16]
+ 800270e:	e9c0 2307 	strd	r2, r3, [r0, #28]
+ 8002712:	6183      	str	r3, [r0, #24]
+ 8002714:	f44f 7380 	mov.w	r3, #256	; 0x100
+ 8002718:	6243      	str	r3, [r0, #36]	; 0x24
+ 800271a:	f007 fa39 	bl	8009b90 <HAL_RTC_Init>
+ 800271e:	b108      	cbz	r0, 8002724 <MX_RTC_Init+0x38>
+ 8002720:	f7ff ffe2 	bl	80026e8 <Error_Handler>
+ 8002724:	480c      	ldr	r0, [pc, #48]	; (8002758 <MX_RTC_Init+0x6c>)
+ 8002726:	f007 fb5f 	bl	8009de8 <HAL_RTCEx_SetSSRU_IT>
+ 800272a:	b108      	cbz	r0, 8002730 <MX_RTC_Init+0x44>
+ 800272c:	f7ff ffdc 	bl	80026e8 <Error_Handler>
+ 8002730:	f04f 5300 	mov.w	r3, #536870912	; 0x20000000
+ 8002734:	2200      	movs	r2, #0
+ 8002736:	9307      	str	r3, [sp, #28]
+ 8002738:	4807      	ldr	r0, [pc, #28]	; (8002758 <MX_RTC_Init+0x6c>)
+ 800273a:	9208      	str	r2, [sp, #32]
+ 800273c:	f44f 7380 	mov.w	r3, #256	; 0x100
+ 8002740:	a901      	add	r1, sp, #4
+ 8002742:	9202      	str	r2, [sp, #8]
+ 8002744:	9206      	str	r2, [sp, #24]
+ 8002746:	930b      	str	r3, [sp, #44]	; 0x2c
+ 8002748:	f007 fa82 	bl	8009c50 <HAL_RTC_SetAlarm_IT>
+ 800274c:	b108      	cbz	r0, 8002752 <MX_RTC_Init+0x66>
+ 800274e:	f7ff ffcb 	bl	80026e8 <Error_Handler>
+ 8002752:	b00d      	add	sp, #52	; 0x34
+ 8002754:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8002758:	20000a68 	.word	0x20000a68
+ 800275c:	40002800 	.word	0x40002800
+
+08002760 <HAL_RTC_MspInit>:
+ 8002760:	b510      	push	{r4, lr}
+ 8002762:	4604      	mov	r4, r0
+ 8002764:	b090      	sub	sp, #64	; 0x40
+ 8002766:	2238      	movs	r2, #56	; 0x38
+ 8002768:	2100      	movs	r1, #0
+ 800276a:	a802      	add	r0, sp, #8
+ 800276c:	f011 fe44 	bl	80143f8 <memset>
+ 8002770:	6822      	ldr	r2, [r4, #0]
+ 8002772:	4b19      	ldr	r3, [pc, #100]	; (80027d8 <HAL_RTC_MspInit+0x78>)
+ 8002774:	429a      	cmp	r2, r3
+ 8002776:	d12c      	bne.n	80027d2 <HAL_RTC_MspInit+0x72>
+ 8002778:	f44f 3380 	mov.w	r3, #65536	; 0x10000
+ 800277c:	9302      	str	r3, [sp, #8]
+ 800277e:	a802      	add	r0, sp, #8
+ 8002780:	f44f 7380 	mov.w	r3, #256	; 0x100
+ 8002784:	930f      	str	r3, [sp, #60]	; 0x3c
+ 8002786:	f007 f87d 	bl	8009884 <HAL_RCCEx_PeriphCLKConfig>
+ 800278a:	b108      	cbz	r0, 8002790 <HAL_RTC_MspInit+0x30>
+ 800278c:	f7ff ffac 	bl	80026e8 <Error_Handler>
+ 8002790:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8002794:	2002      	movs	r0, #2
+ 8002796:	f8d3 2090 	ldr.w	r2, [r3, #144]	; 0x90
+ 800279a:	f442 4200 	orr.w	r2, r2, #32768	; 0x8000
+ 800279e:	f8c3 2090 	str.w	r2, [r3, #144]	; 0x90
+ 80027a2:	6d9a      	ldr	r2, [r3, #88]	; 0x58
+ 80027a4:	f442 6280 	orr.w	r2, r2, #1024	; 0x400
+ 80027a8:	659a      	str	r2, [r3, #88]	; 0x58
+ 80027aa:	6d9b      	ldr	r3, [r3, #88]	; 0x58
+ 80027ac:	2200      	movs	r2, #0
+ 80027ae:	f403 6380 	and.w	r3, r3, #1024	; 0x400
+ 80027b2:	4611      	mov	r1, r2
+ 80027b4:	9301      	str	r3, [sp, #4]
+ 80027b6:	9b01      	ldr	r3, [sp, #4]
+ 80027b8:	f005 fb6e 	bl	8007e98 <HAL_NVIC_SetPriority>
+ 80027bc:	2002      	movs	r0, #2
+ 80027be:	f005 fb9d 	bl	8007efc <HAL_NVIC_EnableIRQ>
+ 80027c2:	2200      	movs	r2, #0
+ 80027c4:	202a      	movs	r0, #42	; 0x2a
+ 80027c6:	4611      	mov	r1, r2
+ 80027c8:	f005 fb66 	bl	8007e98 <HAL_NVIC_SetPriority>
+ 80027cc:	202a      	movs	r0, #42	; 0x2a
+ 80027ce:	f005 fb95 	bl	8007efc <HAL_NVIC_EnableIRQ>
+ 80027d2:	b010      	add	sp, #64	; 0x40
+ 80027d4:	bd10      	pop	{r4, pc}
+ 80027d6:	bf00      	nop
+ 80027d8:	40002800 	.word	0x40002800
+
+080027dc <PWR_EnterOffMode>:
+ 80027dc:	4770      	bx	lr
+	...
+
+080027e0 <PWR_EnterStopMode>:
+ 80027e0:	b508      	push	{r3, lr}
+ 80027e2:	f004 fee7 	bl	80075b4 <HAL_SuspendTick>
+ 80027e6:	4b04      	ldr	r3, [pc, #16]	; (80027f8 <PWR_EnterStopMode+0x18>)
+ 80027e8:	2001      	movs	r0, #1
+ 80027ea:	f8c3 0088 	str.w	r0, [r3, #136]	; 0x88
+ 80027ee:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 80027f2:	f006 bb69 	b.w	8008ec8 <HAL_PWREx_EnterSTOP2Mode>
+ 80027f6:	bf00      	nop
+ 80027f8:	58000400 	.word	0x58000400
+
+080027fc <PWR_ExitSleepMode>:
+ 80027fc:	f004 bee1 	b.w	80075c2 <HAL_ResumeTick>
+
+08002800 <PWR_ExitStopMode>:
+ 8002800:	b508      	push	{r3, lr}
+ 8002802:	f004 fede 	bl	80075c2 <HAL_ResumeTick>
+ 8002806:	f000 fc83 	bl	8003110 <vcom_Resume>
+ 800280a:	f7ff fdd5 	bl	80023b8 <MX_GPIO_Init>
+ 800280e:	f7ff fbfe 	bl	800200e <MX_DMA_Init>
+ 8002812:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 8002816:	f7ff be67 	b.w	80024e8 <MX_I2C2_Init>
+
+0800281a <PWR_EnterSleepMode>:
+ 800281a:	b508      	push	{r3, lr}
+ 800281c:	f004 feca 	bl	80075b4 <HAL_SuspendTick>
+ 8002820:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 8002824:	2101      	movs	r1, #1
+ 8002826:	2000      	movs	r0, #0
+ 8002828:	f006 bafe 	b.w	8008e28 <HAL_PWR_EnterSLEEPMode>
+
+0800282c <PWR_ExitOffMode>:
+ 800282c:	4770      	bx	lr
+
+0800282e <HAL_MspInit>:
+ 800282e:	4770      	bx	lr
+
+08002830 <NMI_Handler>:
+ 8002830:	e7fe      	b.n	8002830 <NMI_Handler>
+
+08002832 <HardFault_Handler>:
+ 8002832:	e7fe      	b.n	8002832 <HardFault_Handler>
+
+08002834 <MemManage_Handler>:
+ 8002834:	e7fe      	b.n	8002834 <MemManage_Handler>
+
+08002836 <BusFault_Handler>:
+ 8002836:	e7fe      	b.n	8002836 <BusFault_Handler>
+
+08002838 <UsageFault_Handler>:
+ 8002838:	e7fe      	b.n	8002838 <UsageFault_Handler>
+
+0800283a <SVC_Handler>:
+ 800283a:	4770      	bx	lr
+
+0800283c <DebugMon_Handler>:
+ 800283c:	4770      	bx	lr
+
+0800283e <PendSV_Handler>:
+ 800283e:	4770      	bx	lr
+
+08002840 <SysTick_Handler>:
+ 8002840:	4770      	bx	lr
+	...
+
+08002844 <TAMP_STAMP_LSECSS_SSRU_IRQHandler>:
+ 8002844:	4801      	ldr	r0, [pc, #4]	; (800284c <TAMP_STAMP_LSECSS_SSRU_IRQHandler+0x8>)
+ 8002846:	f007 baf5 	b.w	8009e34 <HAL_RTCEx_SSRUIRQHandler>
+ 800284a:	bf00      	nop
+ 800284c:	20000a68 	.word	0x20000a68
+
+08002850 <EXTI0_IRQHandler>:
+ 8002850:	2001      	movs	r0, #1
+ 8002852:	f005 bfa7 	b.w	80087a4 <HAL_GPIO_EXTI_IRQHandler>
+
+08002856 <EXTI1_IRQHandler>:
+ 8002856:	2002      	movs	r0, #2
+ 8002858:	f005 bfa4 	b.w	80087a4 <HAL_GPIO_EXTI_IRQHandler>
+
+0800285c <DMA1_Channel2_IRQHandler>:
+ 800285c:	4770      	bx	lr
+
+0800285e <DMA1_Channel3_IRQHandler>:
+ 800285e:	4770      	bx	lr
+
+08002860 <DMA1_Channel4_IRQHandler>:
+ 8002860:	4801      	ldr	r0, [pc, #4]	; (8002868 <DMA1_Channel4_IRQHandler+0x8>)
+ 8002862:	f005 bd25 	b.w	80082b0 <HAL_DMA_IRQHandler>
+ 8002866:	bf00      	nop
+ 8002868:	20000954 	.word	0x20000954
+
+0800286c <DMA1_Channel5_IRQHandler>:
+ 800286c:	4801      	ldr	r0, [pc, #4]	; (8002874 <DMA1_Channel5_IRQHandler+0x8>)
+ 800286e:	f005 bd1f 	b.w	80082b0 <HAL_DMA_IRQHandler>
+ 8002872:	bf00      	nop
+ 8002874:	20000b40 	.word	0x20000b40
+
+08002878 <DMA1_Channel6_IRQHandler>:
+ 8002878:	4801      	ldr	r0, [pc, #4]	; (8002880 <DMA1_Channel6_IRQHandler+0x8>)
+ 800287a:	f005 bd19 	b.w	80082b0 <HAL_DMA_IRQHandler>
+ 800287e:	bf00      	nop
+ 8002880:	20000ae0 	.word	0x20000ae0
+
+08002884 <DMA1_Channel7_IRQHandler>:
+ 8002884:	f7ff bff2 	b.w	800286c <DMA1_Channel5_IRQHandler>
+
+08002888 <EXTI4_IRQHandler>:
+ 8002888:	4770      	bx	lr
+
+0800288a <EXTI9_5_IRQHandler>:
+ 800288a:	2020      	movs	r0, #32
+ 800288c:	f005 bf8a 	b.w	80087a4 <HAL_GPIO_EXTI_IRQHandler>
+
+08002890 <EXTI15_10_IRQHandler>:
+ 8002890:	4770      	bx	lr
+	...
+
+08002894 <USART2_IRQHandler>:
+ 8002894:	4801      	ldr	r0, [pc, #4]	; (800289c <USART2_IRQHandler+0x8>)
+ 8002896:	f007 be91 	b.w	800a5bc <HAL_UART_IRQHandler>
+ 800289a:	bf00      	nop
+ 800289c:	20000ba0 	.word	0x20000ba0
+
+080028a0 <RTC_Alarm_IRQHandler>:
+ 80028a0:	4801      	ldr	r0, [pc, #4]	; (80028a8 <RTC_Alarm_IRQHandler+0x8>)
+ 80028a2:	f007 b8f9 	b.w	8009a98 <HAL_RTC_AlarmIRQHandler>
+ 80028a6:	bf00      	nop
+ 80028a8:	20000a68 	.word	0x20000a68
+
+080028ac <SUBGHZ_Radio_IRQHandler>:
+ 80028ac:	4801      	ldr	r0, [pc, #4]	; (80028b4 <SUBGHZ_Radio_IRQHandler+0x8>)
+ 80028ae:	f007 bcec 	b.w	800a28a <HAL_SUBGHZ_IRQHandler>
+ 80028b2:	bf00      	nop
+ 80028b4:	20000acc 	.word	0x20000acc
+
+080028b8 <sts_hmac_sha1>:
+ 80028b8:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
+ 80028bc:	b089      	sub	sp, #36	; 0x24
+ 80028be:	4680      	mov	r8, r0
+ 80028c0:	2000      	movs	r0, #0
+ 80028c2:	9e10      	ldr	r6, [sp, #64]	; 0x40
+ 80028c4:	9007      	str	r0, [sp, #28]
+ 80028c6:	4689      	mov	r9, r1
+ 80028c8:	4615      	mov	r5, r2
+ 80028ca:	461f      	mov	r7, r3
+ 80028cc:	f7fd fcac 	bl	8000228 <cmox_initialize>
+ 80028d0:	b9f0      	cbnz	r0, 8002910 <sts_hmac_sha1+0x58>
+ 80028d2:	4c10      	ldr	r4, [pc, #64]	; (8002914 <sts_hmac_sha1+0x5c>)
+ 80028d4:	e9cd 9000 	strd	r9, r0, [sp]
+ 80028d8:	e9cd 0402 	strd	r0, r4, [sp, #8]
+ 80028dc:	ab07      	add	r3, sp, #28
+ 80028de:	480e      	ldr	r0, [pc, #56]	; (8002918 <sts_hmac_sha1+0x60>)
+ 80028e0:	9305      	str	r3, [sp, #20]
+ 80028e2:	2314      	movs	r3, #20
+ 80028e4:	9304      	str	r3, [sp, #16]
+ 80028e6:	463a      	mov	r2, r7
+ 80028e8:	4643      	mov	r3, r8
+ 80028ea:	4629      	mov	r1, r5
+ 80028ec:	6800      	ldr	r0, [r0, #0]
+ 80028ee:	f7fd fd65 	bl	80003bc <cmox_mac_compute>
+ 80028f2:	4623      	mov	r3, r4
+ 80028f4:	4632      	mov	r2, r6
+ 80028f6:	f104 0114 	add.w	r1, r4, #20
+ 80028fa:	f853 4b04 	ldr.w	r4, [r3], #4
+ 80028fe:	f842 4b04 	str.w	r4, [r2], #4
+ 8002902:	428b      	cmp	r3, r1
+ 8002904:	d1f9      	bne.n	80028fa <sts_hmac_sha1+0x42>
+ 8002906:	9b07      	ldr	r3, [sp, #28]
+ 8002908:	7533      	strb	r3, [r6, #20]
+ 800290a:	b009      	add	sp, #36	; 0x24
+ 800290c:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
+ 8002910:	2001      	movs	r0, #1
+ 8002912:	e7fa      	b.n	800290a <sts_hmac_sha1+0x52>
+ 8002914:	20000aa0 	.word	0x20000aa0
+ 8002918:	080145f8 	.word	0x080145f8
+
+0800291c <sts_hmac_verify>:
+ 800291c:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 800291e:	4d1b      	ldr	r5, [pc, #108]	; (800298c <sts_hmac_verify+0x70>)
+ 8002920:	4f1b      	ldr	r7, [pc, #108]	; (8002990 <sts_hmac_verify+0x74>)
+ 8002922:	b085      	sub	sp, #20
+ 8002924:	2300      	movs	r3, #0
+ 8002926:	223c      	movs	r2, #60	; 0x3c
+ 8002928:	a802      	add	r0, sp, #8
+ 800292a:	e9cd 3302 	strd	r3, r3, [sp, #8]
+ 800292e:	756a      	strb	r2, [r5, #21]
+ 8002930:	752b      	strb	r3, [r5, #20]
+ 8002932:	f000 f8d7 	bl	8002ae4 <GetUniqueId>
+ 8002936:	4817      	ldr	r0, [pc, #92]	; (8002994 <sts_hmac_verify+0x78>)
+ 8002938:	9500      	str	r5, [sp, #0]
+ 800293a:	2304      	movs	r3, #4
+ 800293c:	aa03      	add	r2, sp, #12
+ 800293e:	2112      	movs	r1, #18
+ 8002940:	f7ff ffba 	bl	80028b8 <sts_hmac_sha1>
+ 8002944:	2414      	movs	r4, #20
+ 8002946:	462e      	mov	r6, r5
+ 8002948:	f815 3b01 	ldrb.w	r3, [r5], #1
+ 800294c:	9300      	str	r3, [sp, #0]
+ 800294e:	2200      	movs	r2, #0
+ 8002950:	463b      	mov	r3, r7
+ 8002952:	4611      	mov	r1, r2
+ 8002954:	2002      	movs	r0, #2
+ 8002956:	3c01      	subs	r4, #1
+ 8002958:	f011 f80e 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 800295c:	f014 04ff 	ands.w	r4, r4, #255	; 0xff
+ 8002960:	d1f2      	bne.n	8002948 <sts_hmac_verify+0x2c>
+ 8002962:	490d      	ldr	r1, [pc, #52]	; (8002998 <sts_hmac_verify+0x7c>)
+ 8002964:	4809      	ldr	r0, [pc, #36]	; (800298c <sts_hmac_verify+0x70>)
+ 8002966:	2214      	movs	r2, #20
+ 8002968:	f011 fd36 	bl	80143d8 <memcmp>
+ 800296c:	4605      	mov	r5, r0
+ 800296e:	b148      	cbz	r0, 8002984 <sts_hmac_verify+0x68>
+ 8002970:	4b0a      	ldr	r3, [pc, #40]	; (800299c <sts_hmac_verify+0x80>)
+ 8002972:	7574      	strb	r4, [r6, #21]
+ 8002974:	4622      	mov	r2, r4
+ 8002976:	4621      	mov	r1, r4
+ 8002978:	2002      	movs	r0, #2
+ 800297a:	f010 fffd 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 800297e:	4628      	mov	r0, r5
+ 8002980:	b005      	add	sp, #20
+ 8002982:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8002984:	2301      	movs	r3, #1
+ 8002986:	7573      	strb	r3, [r6, #21]
+ 8002988:	4b05      	ldr	r3, [pc, #20]	; (80029a0 <sts_hmac_verify+0x84>)
+ 800298a:	e7f3      	b.n	8002974 <sts_hmac_verify+0x58>
+ 800298c:	20000ab4 	.word	0x20000ab4
+ 8002990:	08014620 	.word	0x08014620
+ 8002994:	08014657 	.word	0x08014657
+ 8002998:	20000e52 	.word	0x20000e52
+ 800299c:	08014628 	.word	0x08014628
+ 80029a0:	0801463f 	.word	0x0801463f
+
+080029a4 <MX_SUBGHZ_Init>:
+ 80029a4:	4805      	ldr	r0, [pc, #20]	; (80029bc <MX_SUBGHZ_Init+0x18>)
+ 80029a6:	b508      	push	{r3, lr}
+ 80029a8:	2308      	movs	r3, #8
+ 80029aa:	6003      	str	r3, [r0, #0]
+ 80029ac:	f007 fa88 	bl	8009ec0 <HAL_SUBGHZ_Init>
+ 80029b0:	b118      	cbz	r0, 80029ba <MX_SUBGHZ_Init+0x16>
+ 80029b2:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 80029b6:	f7ff be97 	b.w	80026e8 <Error_Handler>
+ 80029ba:	bd08      	pop	{r3, pc}
+ 80029bc:	20000acc 	.word	0x20000acc
+
+080029c0 <HAL_SUBGHZ_MspInit>:
+ 80029c0:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 80029c4:	b507      	push	{r0, r1, r2, lr}
+ 80029c6:	6e5a      	ldr	r2, [r3, #100]	; 0x64
+ 80029c8:	f042 0201 	orr.w	r2, r2, #1
+ 80029cc:	665a      	str	r2, [r3, #100]	; 0x64
+ 80029ce:	6e5b      	ldr	r3, [r3, #100]	; 0x64
+ 80029d0:	2200      	movs	r2, #0
+ 80029d2:	f003 0301 	and.w	r3, r3, #1
+ 80029d6:	9301      	str	r3, [sp, #4]
+ 80029d8:	4611      	mov	r1, r2
+ 80029da:	2032      	movs	r0, #50	; 0x32
+ 80029dc:	9b01      	ldr	r3, [sp, #4]
+ 80029de:	f005 fa5b 	bl	8007e98 <HAL_NVIC_SetPriority>
+ 80029e2:	2032      	movs	r0, #50	; 0x32
+ 80029e4:	b003      	add	sp, #12
+ 80029e6:	f85d eb04 	ldr.w	lr, [sp], #4
+ 80029ea:	f005 ba87 	b.w	8007efc <HAL_NVIC_EnableIRQ>
+	...
+
+080029f0 <tiny_snprintf_like.constprop.0>:
+ 80029f0:	b40c      	push	{r2, r3}
+ 80029f2:	b507      	push	{r0, r1, r2, lr}
+ 80029f4:	4a05      	ldr	r2, [pc, #20]	; (8002a0c <tiny_snprintf_like.constprop.0+0x1c>)
+ 80029f6:	ab05      	add	r3, sp, #20
+ 80029f8:	2110      	movs	r1, #16
+ 80029fa:	9301      	str	r3, [sp, #4]
+ 80029fc:	f011 fbce 	bl	801419c <tiny_vsnprintf_like>
+ 8002a00:	b003      	add	sp, #12
+ 8002a02:	f85d eb04 	ldr.w	lr, [sp], #4
+ 8002a06:	b002      	add	sp, #8
+ 8002a08:	4770      	bx	lr
+ 8002a0a:	bf00      	nop
+ 8002a0c:	08014669 	.word	0x08014669
+
+08002a10 <TimestampNow>:
+ 8002a10:	b530      	push	{r4, r5, lr}
+ 8002a12:	b085      	sub	sp, #20
+ 8002a14:	4604      	mov	r4, r0
+ 8002a16:	a802      	add	r0, sp, #8
+ 8002a18:	460d      	mov	r5, r1
+ 8002a1a:	f011 f9eb 	bl	8013df4 <SysTimeGet>
+ 8002a1e:	f9bd 300c 	ldrsh.w	r3, [sp, #12]
+ 8002a22:	4a06      	ldr	r2, [pc, #24]	; (8002a3c <TimestampNow+0x2c>)
+ 8002a24:	9300      	str	r3, [sp, #0]
+ 8002a26:	2110      	movs	r1, #16
+ 8002a28:	9b02      	ldr	r3, [sp, #8]
+ 8002a2a:	4620      	mov	r0, r4
+ 8002a2c:	f7ff ffe0 	bl	80029f0 <tiny_snprintf_like.constprop.0>
+ 8002a30:	4620      	mov	r0, r4
+ 8002a32:	f7fe fcc5 	bl	80013c0 <strlen>
+ 8002a36:	8028      	strh	r0, [r5, #0]
+ 8002a38:	b005      	add	sp, #20
+ 8002a3a:	bd30      	pop	{r4, r5, pc}
+ 8002a3c:	08014669 	.word	0x08014669
+
+08002a40 <SystemApp_Init>:
+ 8002a40:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 8002a44:	b510      	push	{r4, lr}
+ 8002a46:	6893      	ldr	r3, [r2, #8]
+ 8002a48:	f423 4300 	bic.w	r3, r3, #32768	; 0x8000
+ 8002a4c:	6093      	str	r3, [r2, #8]
+ 8002a4e:	f011 fa59 	bl	8013f04 <UTIL_TIMER_Init>
+ 8002a52:	4b0e      	ldr	r3, [pc, #56]	; (8002a8c <SystemApp_Init+0x4c>)
+ 8002a54:	2401      	movs	r4, #1
+ 8002a56:	701c      	strb	r4, [r3, #0]
+ 8002a58:	f000 f8b6 	bl	8002bc8 <DBG_Init>
+ 8002a5c:	f010 ff22 	bl	80138a4 <UTIL_ADV_TRACE_Init>
+ 8002a60:	480b      	ldr	r0, [pc, #44]	; (8002a90 <SystemApp_Init+0x50>)
+ 8002a62:	f010 ff39 	bl	80138d8 <UTIL_ADV_TRACE_RegisterTimeStampFunction>
+ 8002a66:	4b0b      	ldr	r3, [pc, #44]	; (8002a94 <SystemApp_Init+0x54>)
+ 8002a68:	f44f 4200 	mov.w	r2, #32768	; 0x8000
+ 8002a6c:	611a      	str	r2, [r3, #16]
+ 8002a6e:	4620      	mov	r0, r4
+ 8002a70:	f010 ff38 	bl	80138e4 <UTIL_ADV_TRACE_SetVerboseLevel>
+ 8002a74:	f7ff fa4c 	bl	8001f10 <SYS_InitMeasurement>
+ 8002a78:	f000 f91c 	bl	8002cb4 <EnvSensors_Init>
+ 8002a7c:	f011 f82e 	bl	8013adc <UTIL_LPM_Init>
+ 8002a80:	4621      	mov	r1, r4
+ 8002a82:	4620      	mov	r0, r4
+ 8002a84:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8002a88:	f011 b848 	b.w	8013b1c <UTIL_LPM_SetOffMode>
+ 8002a8c:	20000ad8 	.word	0x20000ad8
+ 8002a90:	08002a11 	.word	0x08002a11
+ 8002a94:	58004000 	.word	0x58004000
+
+08002a98 <UTIL_SEQ_Idle>:
+ 8002a98:	f011 b856 	b.w	8013b48 <UTIL_LPM_EnterLowPower>
+
+08002a9c <GetBatteryLevel>:
+ 8002a9c:	b508      	push	{r3, lr}
+ 8002a9e:	f7ff fa3f 	bl	8001f20 <SYS_GetBatteryLevel>
+ 8002aa2:	f640 33b8 	movw	r3, #3000	; 0xbb8
+ 8002aa6:	4298      	cmp	r0, r3
+ 8002aa8:	d80c      	bhi.n	8002ac4 <GetBatteryLevel+0x28>
+ 8002aaa:	f5b0 6fe1 	cmp.w	r0, #1800	; 0x708
+ 8002aae:	d30b      	bcc.n	8002ac8 <GetBatteryLevel+0x2c>
+ 8002ab0:	23fe      	movs	r3, #254	; 0xfe
+ 8002ab2:	f5a0 60e1 	sub.w	r0, r0, #1800	; 0x708
+ 8002ab6:	4358      	muls	r0, r3
+ 8002ab8:	f44f 6396 	mov.w	r3, #1200	; 0x4b0
+ 8002abc:	fbb0 f0f3 	udiv	r0, r0, r3
+ 8002ac0:	b2c0      	uxtb	r0, r0
+ 8002ac2:	bd08      	pop	{r3, pc}
+ 8002ac4:	20fe      	movs	r0, #254	; 0xfe
+ 8002ac6:	e7fc      	b.n	8002ac2 <GetBatteryLevel+0x26>
+ 8002ac8:	2000      	movs	r0, #0
+ 8002aca:	e7fa      	b.n	8002ac2 <GetBatteryLevel+0x26>
+
+08002acc <GetTemperatureLevel>:
+ 8002acc:	b57f      	push	{r0, r1, r2, r3, r4, r5, r6, lr}
+ 8002ace:	4668      	mov	r0, sp
+ 8002ad0:	f000 f8d4 	bl	8002c7c <EnvSensors_Read>
+ 8002ad4:	9801      	ldr	r0, [sp, #4]
+ 8002ad6:	f7fe fff5 	bl	8001ac4 <__aeabi_f2iz>
+ 8002ada:	b200      	sxth	r0, r0
+ 8002adc:	b007      	add	sp, #28
+ 8002ade:	f85d fb04 	ldr.w	pc, [sp], #4
+	...
+
+08002ae4 <GetUniqueId>:
+ 8002ae4:	4a19      	ldr	r2, [pc, #100]	; (8002b4c <GetUniqueId+0x68>)
+ 8002ae6:	b538      	push	{r3, r4, r5, lr}
+ 8002ae8:	f8d2 3580 	ldr.w	r3, [r2, #1408]	; 0x580
+ 8002aec:	1c59      	adds	r1, r3, #1
+ 8002aee:	4604      	mov	r4, r0
+ 8002af0:	d119      	bne.n	8002b26 <GetUniqueId+0x42>
+ 8002af2:	f004 fd6d 	bl	80075d0 <HAL_GetUIDw0>
+ 8002af6:	4605      	mov	r5, r0
+ 8002af8:	f004 fd76 	bl	80075e8 <HAL_GetUIDw2>
+ 8002afc:	4405      	add	r5, r0
+ 8002afe:	f004 fd6d 	bl	80075dc <HAL_GetUIDw1>
+ 8002b02:	0e2b      	lsrs	r3, r5, #24
+ 8002b04:	71e3      	strb	r3, [r4, #7]
+ 8002b06:	0c2b      	lsrs	r3, r5, #16
+ 8002b08:	71a3      	strb	r3, [r4, #6]
+ 8002b0a:	0a2b      	lsrs	r3, r5, #8
+ 8002b0c:	7163      	strb	r3, [r4, #5]
+ 8002b0e:	0e03      	lsrs	r3, r0, #24
+ 8002b10:	70e3      	strb	r3, [r4, #3]
+ 8002b12:	f3c0 4207 	ubfx	r2, r0, #16, #8
+ 8002b16:	f3c0 2307 	ubfx	r3, r0, #8, #8
+ 8002b1a:	7125      	strb	r5, [r4, #4]
+ 8002b1c:	b2c0      	uxtb	r0, r0
+ 8002b1e:	70a2      	strb	r2, [r4, #2]
+ 8002b20:	7063      	strb	r3, [r4, #1]
+ 8002b22:	7020      	strb	r0, [r4, #0]
+ 8002b24:	bd38      	pop	{r3, r4, r5, pc}
+ 8002b26:	0a19      	lsrs	r1, r3, #8
+ 8002b28:	71c3      	strb	r3, [r0, #7]
+ 8002b2a:	7181      	strb	r1, [r0, #6]
+ 8002b2c:	0c19      	lsrs	r1, r3, #16
+ 8002b2e:	0e1b      	lsrs	r3, r3, #24
+ 8002b30:	7141      	strb	r1, [r0, #5]
+ 8002b32:	7103      	strb	r3, [r0, #4]
+ 8002b34:	f8d2 3584 	ldr.w	r3, [r2, #1412]	; 0x584
+ 8002b38:	70c3      	strb	r3, [r0, #3]
+ 8002b3a:	f8d2 0584 	ldr.w	r0, [r2, #1412]	; 0x584
+ 8002b3e:	f3c0 2207 	ubfx	r2, r0, #8, #8
+ 8002b42:	f3c0 4307 	ubfx	r3, r0, #16, #8
+ 8002b46:	0e00      	lsrs	r0, r0, #24
+ 8002b48:	e7e9      	b.n	8002b1e <GetUniqueId+0x3a>
+ 8002b4a:	bf00      	nop
+ 8002b4c:	1fff7000 	.word	0x1fff7000
+
+08002b50 <GetDevAddr>:
+ 8002b50:	b538      	push	{r3, r4, r5, lr}
+ 8002b52:	4b09      	ldr	r3, [pc, #36]	; (8002b78 <GetDevAddr+0x28>)
+ 8002b54:	f8d3 3580 	ldr.w	r3, [r3, #1408]	; 0x580
+ 8002b58:	6003      	str	r3, [r0, #0]
+ 8002b5a:	3301      	adds	r3, #1
+ 8002b5c:	4605      	mov	r5, r0
+ 8002b5e:	d109      	bne.n	8002b74 <GetDevAddr+0x24>
+ 8002b60:	f004 fd36 	bl	80075d0 <HAL_GetUIDw0>
+ 8002b64:	4604      	mov	r4, r0
+ 8002b66:	f004 fd39 	bl	80075dc <HAL_GetUIDw1>
+ 8002b6a:	4044      	eors	r4, r0
+ 8002b6c:	f004 fd3c 	bl	80075e8 <HAL_GetUIDw2>
+ 8002b70:	4044      	eors	r4, r0
+ 8002b72:	602c      	str	r4, [r5, #0]
+ 8002b74:	bd38      	pop	{r3, r4, r5, pc}
+ 8002b76:	bf00      	nop
+ 8002b78:	1fff7000 	.word	0x1fff7000
+
+08002b7c <UTIL_ADV_TRACE_PreSendHook>:
+ 8002b7c:	2101      	movs	r1, #1
+ 8002b7e:	2002      	movs	r0, #2
+ 8002b80:	f010 bfb6 	b.w	8013af0 <UTIL_LPM_SetStopMode>
+
+08002b84 <UTIL_ADV_TRACE_PostSendHook>:
+ 8002b84:	2100      	movs	r1, #0
+ 8002b86:	2002      	movs	r0, #2
+ 8002b88:	f010 bfb2 	b.w	8013af0 <UTIL_LPM_SetStopMode>
+
+08002b8c <HAL_InitTick>:
+ 8002b8c:	2000      	movs	r0, #0
+ 8002b8e:	4770      	bx	lr
+
+08002b90 <HAL_GetTick>:
+ 8002b90:	4b02      	ldr	r3, [pc, #8]	; (8002b9c <HAL_GetTick+0xc>)
+ 8002b92:	7818      	ldrb	r0, [r3, #0]
+ 8002b94:	b108      	cbz	r0, 8002b9a <HAL_GetTick+0xa>
+ 8002b96:	f000 b8c5 	b.w	8002d24 <TIMER_IF_GetTimerValue>
+ 8002b9a:	4770      	bx	lr
+ 8002b9c:	20000ad8 	.word	0x20000ad8
+
+08002ba0 <HAL_Delay>:
+ 8002ba0:	b082      	sub	sp, #8
+ 8002ba2:	9001      	str	r0, [sp, #4]
+ 8002ba4:	9801      	ldr	r0, [sp, #4]
+ 8002ba6:	b002      	add	sp, #8
+ 8002ba8:	f000 b958 	b.w	8002e5c <TIMER_IF_DelayMs>
+
+08002bac <LL_AHB2_GRP1_EnableClock.constprop.0>:
+ 8002bac:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8002bb0:	b082      	sub	sp, #8
+ 8002bb2:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 8002bb4:	f042 0202 	orr.w	r2, r2, #2
+ 8002bb8:	64da      	str	r2, [r3, #76]	; 0x4c
+ 8002bba:	6cdb      	ldr	r3, [r3, #76]	; 0x4c
+ 8002bbc:	f003 0302 	and.w	r3, r3, #2
+ 8002bc0:	9301      	str	r3, [sp, #4]
+ 8002bc2:	9b01      	ldr	r3, [sp, #4]
+ 8002bc4:	b002      	add	sp, #8
+ 8002bc6:	4770      	bx	lr
+
+08002bc8 <DBG_Init>:
+ 8002bc8:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
+ 8002bcc:	4a29      	ldr	r2, [pc, #164]	; (8002c74 <DBG_Init+0xac>)
+ 8002bce:	4c2a      	ldr	r4, [pc, #168]	; (8002c78 <DBG_Init+0xb0>)
+ 8002bd0:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 8002bd4:	f443 4380 	orr.w	r3, r3, #16384	; 0x4000
+ 8002bd8:	b087      	sub	sp, #28
+ 8002bda:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+ 8002bde:	f004 fd09 	bl	80075f4 <HAL_DBGMCU_EnableDBGSleepMode>
+ 8002be2:	f004 fd0f 	bl	8007604 <HAL_DBGMCU_EnableDBGStopMode>
+ 8002be6:	f004 fd15 	bl	8007614 <HAL_DBGMCU_EnableDBGStandbyMode>
+ 8002bea:	2301      	movs	r3, #1
+ 8002bec:	2500      	movs	r5, #0
+ 8002bee:	9302      	str	r3, [sp, #8]
+ 8002bf0:	f44f 5980 	mov.w	r9, #4096	; 0x1000
+ 8002bf4:	2303      	movs	r3, #3
+ 8002bf6:	a901      	add	r1, sp, #4
+ 8002bf8:	4620      	mov	r0, r4
+ 8002bfa:	9304      	str	r3, [sp, #16]
+ 8002bfc:	f44f 5800 	mov.w	r8, #8192	; 0x2000
+ 8002c00:	9503      	str	r5, [sp, #12]
+ 8002c02:	9505      	str	r5, [sp, #20]
+ 8002c04:	f7ff ffd2 	bl	8002bac <LL_AHB2_GRP1_EnableClock.constprop.0>
+ 8002c08:	f7ff ffd0 	bl	8002bac <LL_AHB2_GRP1_EnableClock.constprop.0>
+ 8002c0c:	f7ff ffce 	bl	8002bac <LL_AHB2_GRP1_EnableClock.constprop.0>
+ 8002c10:	f7ff ffcc 	bl	8002bac <LL_AHB2_GRP1_EnableClock.constprop.0>
+ 8002c14:	f8cd 9004 	str.w	r9, [sp, #4]
+ 8002c18:	f005 fc98 	bl	800854c <HAL_GPIO_Init>
+ 8002c1c:	a901      	add	r1, sp, #4
+ 8002c1e:	4620      	mov	r0, r4
+ 8002c20:	f44f 6700 	mov.w	r7, #2048	; 0x800
+ 8002c24:	f8cd 8004 	str.w	r8, [sp, #4]
+ 8002c28:	f005 fc90 	bl	800854c <HAL_GPIO_Init>
+ 8002c2c:	a901      	add	r1, sp, #4
+ 8002c2e:	4620      	mov	r0, r4
+ 8002c30:	f44f 4600 	mov.w	r6, #32768	; 0x8000
+ 8002c34:	9701      	str	r7, [sp, #4]
+ 8002c36:	f005 fc89 	bl	800854c <HAL_GPIO_Init>
+ 8002c3a:	a901      	add	r1, sp, #4
+ 8002c3c:	4620      	mov	r0, r4
+ 8002c3e:	9601      	str	r6, [sp, #4]
+ 8002c40:	f005 fc84 	bl	800854c <HAL_GPIO_Init>
+ 8002c44:	462a      	mov	r2, r5
+ 8002c46:	4649      	mov	r1, r9
+ 8002c48:	4620      	mov	r0, r4
+ 8002c4a:	f005 fda5 	bl	8008798 <HAL_GPIO_WritePin>
+ 8002c4e:	462a      	mov	r2, r5
+ 8002c50:	4641      	mov	r1, r8
+ 8002c52:	4620      	mov	r0, r4
+ 8002c54:	f005 fda0 	bl	8008798 <HAL_GPIO_WritePin>
+ 8002c58:	462a      	mov	r2, r5
+ 8002c5a:	4639      	mov	r1, r7
+ 8002c5c:	4620      	mov	r0, r4
+ 8002c5e:	f005 fd9b 	bl	8008798 <HAL_GPIO_WritePin>
+ 8002c62:	462a      	mov	r2, r5
+ 8002c64:	4631      	mov	r1, r6
+ 8002c66:	4620      	mov	r0, r4
+ 8002c68:	f005 fd96 	bl	8008798 <HAL_GPIO_WritePin>
+ 8002c6c:	b007      	add	sp, #28
+ 8002c6e:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
+ 8002c72:	bf00      	nop
+ 8002c74:	58000800 	.word	0x58000800
+ 8002c78:	48000400 	.word	0x48000400
+
+08002c7c <EnvSensors_Read>:
+ 8002c7c:	b510      	push	{r4, lr}
+ 8002c7e:	4604      	mov	r4, r0
+ 8002c80:	f7ff f968 	bl	8001f54 <SYS_GetTemperatureLevel>
+ 8002c84:	4b07      	ldr	r3, [pc, #28]	; (8002ca4 <EnvSensors_Read+0x28>)
+ 8002c86:	60a3      	str	r3, [r4, #8]
+ 8002c88:	f340 200f 	sbfx	r0, r0, #8, #16
+ 8002c8c:	f7fe fec6 	bl	8001a1c <__aeabi_i2f>
+ 8002c90:	4b05      	ldr	r3, [pc, #20]	; (8002ca8 <EnvSensors_Read+0x2c>)
+ 8002c92:	4a06      	ldr	r2, [pc, #24]	; (8002cac <EnvSensors_Read+0x30>)
+ 8002c94:	6023      	str	r3, [r4, #0]
+ 8002c96:	4b06      	ldr	r3, [pc, #24]	; (8002cb0 <EnvSensors_Read+0x34>)
+ 8002c98:	6060      	str	r0, [r4, #4]
+ 8002c9a:	e9c4 2303 	strd	r2, r3, [r4, #12]
+ 8002c9e:	2000      	movs	r0, #0
+ 8002ca0:	bd10      	pop	{r4, pc}
+ 8002ca2:	bf00      	nop
+ 8002ca4:	42480000 	.word	0x42480000
+ 8002ca8:	447a0000 	.word	0x447a0000
+ 8002cac:	003e090d 	.word	0x003e090d
+ 8002cb0:	000503ab 	.word	0x000503ab
+
+08002cb4 <EnvSensors_Init>:
+ 8002cb4:	2000      	movs	r0, #0
+ 8002cb6:	4770      	bx	lr
+
+08002cb8 <TIMER_IF_GetTimerContext>:
+ 8002cb8:	4b01      	ldr	r3, [pc, #4]	; (8002cc0 <TIMER_IF_GetTimerContext+0x8>)
+ 8002cba:	6818      	ldr	r0, [r3, #0]
+ 8002cbc:	4770      	bx	lr
+ 8002cbe:	bf00      	nop
+ 8002cc0:	20000adc 	.word	0x20000adc
+
+08002cc4 <TIMER_IF_GetMinimumTimeout>:
+ 8002cc4:	2003      	movs	r0, #3
+ 8002cc6:	4770      	bx	lr
+
+08002cc8 <TIMER_IF_Convert_ms2Tick>:
+ 8002cc8:	b508      	push	{r3, lr}
+ 8002cca:	4601      	mov	r1, r0
+ 8002ccc:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
+ 8002cd0:	2300      	movs	r3, #0
+ 8002cd2:	0280      	lsls	r0, r0, #10
+ 8002cd4:	0d89      	lsrs	r1, r1, #22
+ 8002cd6:	f7fe ff1b 	bl	8001b10 <__aeabi_uldivmod>
+ 8002cda:	bd08      	pop	{r3, pc}
+
+08002cdc <TIMER_IF_Convert_Tick2ms>:
+ 8002cdc:	f44f 737a 	mov.w	r3, #1000	; 0x3e8
+ 8002ce0:	fba0 0303 	umull	r0, r3, r0, r3
+ 8002ce4:	0a80      	lsrs	r0, r0, #10
+ 8002ce6:	ea40 5083 	orr.w	r0, r0, r3, lsl #22
+ 8002cea:	4770      	bx	lr
+
+08002cec <GetTimerTicks>:
+ 8002cec:	4b03      	ldr	r3, [pc, #12]	; (8002cfc <GetTimerTicks+0x10>)
+ 8002cee:	6898      	ldr	r0, [r3, #8]
+ 8002cf0:	689a      	ldr	r2, [r3, #8]
+ 8002cf2:	4290      	cmp	r0, r2
+ 8002cf4:	d1fb      	bne.n	8002cee <GetTimerTicks+0x2>
+ 8002cf6:	43c0      	mvns	r0, r0
+ 8002cf8:	4770      	bx	lr
+ 8002cfa:	bf00      	nop
+ 8002cfc:	40002800 	.word	0x40002800
+
+08002d00 <TIMER_IF_SetTimerContext>:
+ 8002d00:	b508      	push	{r3, lr}
+ 8002d02:	f7ff fff3 	bl	8002cec <GetTimerTicks>
+ 8002d06:	4b01      	ldr	r3, [pc, #4]	; (8002d0c <TIMER_IF_SetTimerContext+0xc>)
+ 8002d08:	6018      	str	r0, [r3, #0]
+ 8002d0a:	bd08      	pop	{r3, pc}
+ 8002d0c:	20000adc 	.word	0x20000adc
+
+08002d10 <TIMER_IF_GetTimerElapsedTime>:
+ 8002d10:	b508      	push	{r3, lr}
+ 8002d12:	f7ff ffeb 	bl	8002cec <GetTimerTicks>
+ 8002d16:	4b02      	ldr	r3, [pc, #8]	; (8002d20 <TIMER_IF_GetTimerElapsedTime+0x10>)
+ 8002d18:	681b      	ldr	r3, [r3, #0]
+ 8002d1a:	1ac0      	subs	r0, r0, r3
+ 8002d1c:	bd08      	pop	{r3, pc}
+ 8002d1e:	bf00      	nop
+ 8002d20:	20000adc 	.word	0x20000adc
+
+08002d24 <TIMER_IF_GetTimerValue>:
+ 8002d24:	4b02      	ldr	r3, [pc, #8]	; (8002d30 <TIMER_IF_GetTimerValue+0xc>)
+ 8002d26:	7818      	ldrb	r0, [r3, #0]
+ 8002d28:	b108      	cbz	r0, 8002d2e <TIMER_IF_GetTimerValue+0xa>
+ 8002d2a:	f7ff bfdf 	b.w	8002cec <GetTimerTicks>
+ 8002d2e:	4770      	bx	lr
+ 8002d30:	20000ad9 	.word	0x20000ad9
+
+08002d34 <TIMER_IF_StopTimer>:
+ 8002d34:	b510      	push	{r4, lr}
+ 8002d36:	4b07      	ldr	r3, [pc, #28]	; (8002d54 <TIMER_IF_StopTimer+0x20>)
+ 8002d38:	4c07      	ldr	r4, [pc, #28]	; (8002d58 <TIMER_IF_StopTimer+0x24>)
+ 8002d3a:	2201      	movs	r2, #1
+ 8002d3c:	65da      	str	r2, [r3, #92]	; 0x5c
+ 8002d3e:	f44f 7180 	mov.w	r1, #256	; 0x100
+ 8002d42:	4620      	mov	r0, r4
+ 8002d44:	f006 fe6e 	bl	8009a24 <HAL_RTC_DeactivateAlarm>
+ 8002d48:	f04f 33ff 	mov.w	r3, #4294967295
+ 8002d4c:	6323      	str	r3, [r4, #48]	; 0x30
+ 8002d4e:	2000      	movs	r0, #0
+ 8002d50:	bd10      	pop	{r4, pc}
+ 8002d52:	bf00      	nop
+ 8002d54:	40002800 	.word	0x40002800
+ 8002d58:	20000a68 	.word	0x20000a68
+
+08002d5c <TIMER_IF_BkUp_Write_Seconds>:
+ 8002d5c:	4602      	mov	r2, r0
+ 8002d5e:	2100      	movs	r1, #0
+ 8002d60:	4801      	ldr	r0, [pc, #4]	; (8002d68 <TIMER_IF_BkUp_Write_Seconds+0xc>)
+ 8002d62:	f007 b878 	b.w	8009e56 <HAL_RTCEx_BKUPWrite>
+ 8002d66:	bf00      	nop
+ 8002d68:	20000a68 	.word	0x20000a68
+
+08002d6c <TIMER_IF_BkUp_Write_SubSeconds>:
+ 8002d6c:	4602      	mov	r2, r0
+ 8002d6e:	2101      	movs	r1, #1
+ 8002d70:	4801      	ldr	r0, [pc, #4]	; (8002d78 <TIMER_IF_BkUp_Write_SubSeconds+0xc>)
+ 8002d72:	f007 b870 	b.w	8009e56 <HAL_RTCEx_BKUPWrite>
+ 8002d76:	bf00      	nop
+ 8002d78:	20000a68 	.word	0x20000a68
+
+08002d7c <TIMER_IF_StartTimer>:
+ 8002d7c:	b510      	push	{r4, lr}
+ 8002d7e:	b08c      	sub	sp, #48	; 0x30
+ 8002d80:	222c      	movs	r2, #44	; 0x2c
+ 8002d82:	2100      	movs	r1, #0
+ 8002d84:	4604      	mov	r4, r0
+ 8002d86:	a801      	add	r0, sp, #4
+ 8002d88:	f011 fb36 	bl	80143f8 <memset>
+ 8002d8c:	f7ff ffd2 	bl	8002d34 <TIMER_IF_StopTimer>
+ 8002d90:	4b0c      	ldr	r3, [pc, #48]	; (8002dc4 <TIMER_IF_StartTimer+0x48>)
+ 8002d92:	480d      	ldr	r0, [pc, #52]	; (8002dc8 <TIMER_IF_StartTimer+0x4c>)
+ 8002d94:	681b      	ldr	r3, [r3, #0]
+ 8002d96:	441c      	add	r4, r3
+ 8002d98:	2300      	movs	r3, #0
+ 8002d9a:	9308      	str	r3, [sp, #32]
+ 8002d9c:	9306      	str	r3, [sp, #24]
+ 8002d9e:	f04f 5300 	mov.w	r3, #536870912	; 0x20000000
+ 8002da2:	43e4      	mvns	r4, r4
+ 8002da4:	9307      	str	r3, [sp, #28]
+ 8002da6:	2201      	movs	r2, #1
+ 8002da8:	f44f 7380 	mov.w	r3, #256	; 0x100
+ 8002dac:	a901      	add	r1, sp, #4
+ 8002dae:	9402      	str	r4, [sp, #8]
+ 8002db0:	930b      	str	r3, [sp, #44]	; 0x2c
+ 8002db2:	f006 ff4d 	bl	8009c50 <HAL_RTC_SetAlarm_IT>
+ 8002db6:	b108      	cbz	r0, 8002dbc <TIMER_IF_StartTimer+0x40>
+ 8002db8:	f7ff fc96 	bl	80026e8 <Error_Handler>
+ 8002dbc:	2000      	movs	r0, #0
+ 8002dbe:	b00c      	add	sp, #48	; 0x30
+ 8002dc0:	bd10      	pop	{r4, pc}
+ 8002dc2:	bf00      	nop
+ 8002dc4:	20000adc 	.word	0x20000adc
+ 8002dc8:	20000a68 	.word	0x20000a68
+
+08002dcc <TIMER_IF_GetTime>:
+ 8002dcc:	b538      	push	{r3, r4, r5, lr}
+ 8002dce:	4605      	mov	r5, r0
+ 8002dd0:	f7ff ff8c 	bl	8002cec <GetTimerTicks>
+ 8002dd4:	2102      	movs	r1, #2
+ 8002dd6:	4604      	mov	r4, r0
+ 8002dd8:	4807      	ldr	r0, [pc, #28]	; (8002df8 <TIMER_IF_GetTime+0x2c>)
+ 8002dda:	f007 f843 	bl	8009e64 <HAL_RTCEx_BKUPRead>
+ 8002dde:	f3c4 0209 	ubfx	r2, r4, #0, #10
+ 8002de2:	f44f 717a 	mov.w	r1, #1000	; 0x3e8
+ 8002de6:	fba2 2101 	umull	r2, r1, r2, r1
+ 8002dea:	0a92      	lsrs	r2, r2, #10
+ 8002dec:	0aa3      	lsrs	r3, r4, #10
+ 8002dee:	802a      	strh	r2, [r5, #0]
+ 8002df0:	ea43 5080 	orr.w	r0, r3, r0, lsl #22
+ 8002df4:	bd38      	pop	{r3, r4, r5, pc}
+ 8002df6:	bf00      	nop
+ 8002df8:	20000a68 	.word	0x20000a68
+
+08002dfc <TIMER_IF_BkUp_Read_Seconds>:
+ 8002dfc:	4801      	ldr	r0, [pc, #4]	; (8002e04 <TIMER_IF_BkUp_Read_Seconds+0x8>)
+ 8002dfe:	2100      	movs	r1, #0
+ 8002e00:	f007 b830 	b.w	8009e64 <HAL_RTCEx_BKUPRead>
+ 8002e04:	20000a68 	.word	0x20000a68
+
+08002e08 <TIMER_IF_BkUp_Read_SubSeconds>:
+ 8002e08:	4801      	ldr	r0, [pc, #4]	; (8002e10 <TIMER_IF_BkUp_Read_SubSeconds+0x8>)
+ 8002e0a:	2101      	movs	r1, #1
+ 8002e0c:	f007 b82a 	b.w	8009e64 <HAL_RTCEx_BKUPRead>
+ 8002e10:	20000a68 	.word	0x20000a68
+
+08002e14 <TIMER_IF_Init>:
+ 8002e14:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 8002e16:	4d0f      	ldr	r5, [pc, #60]	; (8002e54 <TIMER_IF_Init+0x40>)
+ 8002e18:	782e      	ldrb	r6, [r5, #0]
+ 8002e1a:	b9ce      	cbnz	r6, 8002e50 <TIMER_IF_Init+0x3c>
+ 8002e1c:	4c0e      	ldr	r4, [pc, #56]	; (8002e58 <TIMER_IF_Init+0x44>)
+ 8002e1e:	f04f 37ff 	mov.w	r7, #4294967295
+ 8002e22:	6327      	str	r7, [r4, #48]	; 0x30
+ 8002e24:	f7ff fc62 	bl	80026ec <MX_RTC_Init>
+ 8002e28:	f7ff ff84 	bl	8002d34 <TIMER_IF_StopTimer>
+ 8002e2c:	f44f 7180 	mov.w	r1, #256	; 0x100
+ 8002e30:	4620      	mov	r0, r4
+ 8002e32:	f006 fdf7 	bl	8009a24 <HAL_RTC_DeactivateAlarm>
+ 8002e36:	4620      	mov	r0, r4
+ 8002e38:	6327      	str	r7, [r4, #48]	; 0x30
+ 8002e3a:	f006 ffb7 	bl	8009dac <HAL_RTCEx_EnableBypassShadow>
+ 8002e3e:	4632      	mov	r2, r6
+ 8002e40:	4620      	mov	r0, r4
+ 8002e42:	2102      	movs	r1, #2
+ 8002e44:	f007 f807 	bl	8009e56 <HAL_RTCEx_BKUPWrite>
+ 8002e48:	f7ff ff5a 	bl	8002d00 <TIMER_IF_SetTimerContext>
+ 8002e4c:	2301      	movs	r3, #1
+ 8002e4e:	702b      	strb	r3, [r5, #0]
+ 8002e50:	2000      	movs	r0, #0
+ 8002e52:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 8002e54:	20000ad9 	.word	0x20000ad9
+ 8002e58:	20000a68 	.word	0x20000a68
+
+08002e5c <TIMER_IF_DelayMs>:
+ 8002e5c:	4601      	mov	r1, r0
+ 8002e5e:	b510      	push	{r4, lr}
+ 8002e60:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
+ 8002e64:	2300      	movs	r3, #0
+ 8002e66:	0280      	lsls	r0, r0, #10
+ 8002e68:	0d89      	lsrs	r1, r1, #22
+ 8002e6a:	f7fe fe51 	bl	8001b10 <__aeabi_uldivmod>
+ 8002e6e:	4601      	mov	r1, r0
+ 8002e70:	f7ff ff3c 	bl	8002cec <GetTimerTicks>
+ 8002e74:	4604      	mov	r4, r0
+ 8002e76:	f7ff ff39 	bl	8002cec <GetTimerTicks>
+ 8002e7a:	1b03      	subs	r3, r0, r4
+ 8002e7c:	428b      	cmp	r3, r1
+ 8002e7e:	d300      	bcc.n	8002e82 <TIMER_IF_DelayMs+0x26>
+ 8002e80:	bd10      	pop	{r4, pc}
+ 8002e82:	bf00      	nop
+ 8002e84:	e7f7      	b.n	8002e76 <TIMER_IF_DelayMs+0x1a>
+
+08002e86 <HAL_RTC_AlarmAEventCallback>:
+ 8002e86:	f011 b945 	b.w	8014114 <UTIL_TIMER_IRQ_Handler>
+	...
+
+08002e8c <HAL_RTCEx_SSRUEventCallback>:
+ 8002e8c:	b510      	push	{r4, lr}
+ 8002e8e:	4c06      	ldr	r4, [pc, #24]	; (8002ea8 <HAL_RTCEx_SSRUEventCallback+0x1c>)
+ 8002e90:	2102      	movs	r1, #2
+ 8002e92:	4620      	mov	r0, r4
+ 8002e94:	f006 ffe6 	bl	8009e64 <HAL_RTCEx_BKUPRead>
+ 8002e98:	2102      	movs	r1, #2
+ 8002e9a:	1c42      	adds	r2, r0, #1
+ 8002e9c:	4620      	mov	r0, r4
+ 8002e9e:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8002ea2:	f006 bfd8 	b.w	8009e56 <HAL_RTCEx_BKUPWrite>
+ 8002ea6:	bf00      	nop
+ 8002ea8:	20000a68 	.word	0x20000a68
+
+08002eac <MX_USART2_UART_Init>:
+ 8002eac:	4816      	ldr	r0, [pc, #88]	; (8002f08 <MX_USART2_UART_Init+0x5c>)
+ 8002eae:	4a17      	ldr	r2, [pc, #92]	; (8002f0c <MX_USART2_UART_Init+0x60>)
+ 8002eb0:	b508      	push	{r3, lr}
+ 8002eb2:	f44f 33e1 	mov.w	r3, #115200	; 0x1c200
+ 8002eb6:	e9c0 2300 	strd	r2, r3, [r0]
+ 8002eba:	2300      	movs	r3, #0
+ 8002ebc:	220c      	movs	r2, #12
+ 8002ebe:	e9c0 3302 	strd	r3, r3, [r0, #8]
+ 8002ec2:	e9c0 2305 	strd	r2, r3, [r0, #20]
+ 8002ec6:	e9c0 3307 	strd	r3, r3, [r0, #28]
+ 8002eca:	e9c0 3309 	strd	r3, r3, [r0, #36]	; 0x24
+ 8002ece:	6103      	str	r3, [r0, #16]
+ 8002ed0:	f008 f955 	bl	800b17e <HAL_UART_Init>
+ 8002ed4:	b108      	cbz	r0, 8002eda <MX_USART2_UART_Init+0x2e>
+ 8002ed6:	f7ff fc07 	bl	80026e8 <Error_Handler>
+ 8002eda:	480b      	ldr	r0, [pc, #44]	; (8002f08 <MX_USART2_UART_Init+0x5c>)
+ 8002edc:	2100      	movs	r1, #0
+ 8002ede:	f008 faca 	bl	800b476 <HAL_UARTEx_SetTxFifoThreshold>
+ 8002ee2:	b108      	cbz	r0, 8002ee8 <MX_USART2_UART_Init+0x3c>
+ 8002ee4:	f7ff fc00 	bl	80026e8 <Error_Handler>
+ 8002ee8:	4807      	ldr	r0, [pc, #28]	; (8002f08 <MX_USART2_UART_Init+0x5c>)
+ 8002eea:	2100      	movs	r1, #0
+ 8002eec:	f008 fae3 	bl	800b4b6 <HAL_UARTEx_SetRxFifoThreshold>
+ 8002ef0:	b108      	cbz	r0, 8002ef6 <MX_USART2_UART_Init+0x4a>
+ 8002ef2:	f7ff fbf9 	bl	80026e8 <Error_Handler>
+ 8002ef6:	4804      	ldr	r0, [pc, #16]	; (8002f08 <MX_USART2_UART_Init+0x5c>)
+ 8002ef8:	f008 fa9d 	bl	800b436 <HAL_UARTEx_EnableFifoMode>
+ 8002efc:	b118      	cbz	r0, 8002f06 <MX_USART2_UART_Init+0x5a>
+ 8002efe:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 8002f02:	f7ff bbf1 	b.w	80026e8 <Error_Handler>
+ 8002f06:	bd08      	pop	{r3, pc}
+ 8002f08:	20000ba0 	.word	0x20000ba0
+ 8002f0c:	40004400 	.word	0x40004400
+
+08002f10 <HAL_UART_MspInit>:
+ 8002f10:	b570      	push	{r4, r5, r6, lr}
+ 8002f12:	b096      	sub	sp, #88	; 0x58
+ 8002f14:	4605      	mov	r5, r0
+ 8002f16:	2214      	movs	r2, #20
+ 8002f18:	2100      	movs	r1, #0
+ 8002f1a:	a803      	add	r0, sp, #12
+ 8002f1c:	f011 fa6c 	bl	80143f8 <memset>
+ 8002f20:	2238      	movs	r2, #56	; 0x38
+ 8002f22:	2100      	movs	r1, #0
+ 8002f24:	a808      	add	r0, sp, #32
+ 8002f26:	f011 fa67 	bl	80143f8 <memset>
+ 8002f2a:	682a      	ldr	r2, [r5, #0]
+ 8002f2c:	4b33      	ldr	r3, [pc, #204]	; (8002ffc <HAL_UART_MspInit+0xec>)
+ 8002f2e:	429a      	cmp	r2, r3
+ 8002f30:	d161      	bne.n	8002ff6 <HAL_UART_MspInit+0xe6>
+ 8002f32:	2302      	movs	r3, #2
+ 8002f34:	9308      	str	r3, [sp, #32]
+ 8002f36:	a808      	add	r0, sp, #32
+ 8002f38:	4b31      	ldr	r3, [pc, #196]	; (8003000 <HAL_UART_MspInit+0xf0>)
+ 8002f3a:	930a      	str	r3, [sp, #40]	; 0x28
+ 8002f3c:	f006 fca2 	bl	8009884 <HAL_RCCEx_PeriphCLKConfig>
+ 8002f40:	b108      	cbz	r0, 8002f46 <HAL_UART_MspInit+0x36>
+ 8002f42:	f7ff fbd1 	bl	80026e8 <Error_Handler>
+ 8002f46:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8002f4a:	210c      	movs	r1, #12
+ 8002f4c:	6d9a      	ldr	r2, [r3, #88]	; 0x58
+ 8002f4e:	4c2d      	ldr	r4, [pc, #180]	; (8003004 <HAL_UART_MspInit+0xf4>)
+ 8002f50:	f442 3200 	orr.w	r2, r2, #131072	; 0x20000
+ 8002f54:	659a      	str	r2, [r3, #88]	; 0x58
+ 8002f56:	6d9a      	ldr	r2, [r3, #88]	; 0x58
+ 8002f58:	f402 3200 	and.w	r2, r2, #131072	; 0x20000
+ 8002f5c:	9202      	str	r2, [sp, #8]
+ 8002f5e:	9a02      	ldr	r2, [sp, #8]
+ 8002f60:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 8002f62:	f042 0201 	orr.w	r2, r2, #1
+ 8002f66:	64da      	str	r2, [r3, #76]	; 0x4c
+ 8002f68:	6cdb      	ldr	r3, [r3, #76]	; 0x4c
+ 8002f6a:	f003 0301 	and.w	r3, r3, #1
+ 8002f6e:	9301      	str	r3, [sp, #4]
+ 8002f70:	9b01      	ldr	r3, [sp, #4]
+ 8002f72:	2302      	movs	r3, #2
+ 8002f74:	2600      	movs	r6, #0
+ 8002f76:	e9cd 1303 	strd	r1, r3, [sp, #12]
+ 8002f7a:	2303      	movs	r3, #3
+ 8002f7c:	e9cd 6305 	strd	r6, r3, [sp, #20]
+ 8002f80:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8002f84:	2307      	movs	r3, #7
+ 8002f86:	a903      	add	r1, sp, #12
+ 8002f88:	9307      	str	r3, [sp, #28]
+ 8002f8a:	f005 fadf 	bl	800854c <HAL_GPIO_Init>
+ 8002f8e:	481e      	ldr	r0, [pc, #120]	; (8003008 <HAL_UART_MspInit+0xf8>)
+ 8002f90:	6226      	str	r6, [r4, #32]
+ 8002f92:	2314      	movs	r3, #20
+ 8002f94:	e9c4 0300 	strd	r0, r3, [r4]
+ 8002f98:	2310      	movs	r3, #16
+ 8002f9a:	e9c4 3602 	strd	r3, r6, [r4, #8]
+ 8002f9e:	4620      	mov	r0, r4
+ 8002fa0:	2380      	movs	r3, #128	; 0x80
+ 8002fa2:	e9c4 3604 	strd	r3, r6, [r4, #16]
+ 8002fa6:	e9c4 6606 	strd	r6, r6, [r4, #24]
+ 8002faa:	f005 f807 	bl	8007fbc <HAL_DMA_Init>
+ 8002fae:	b108      	cbz	r0, 8002fb4 <HAL_UART_MspInit+0xa4>
+ 8002fb0:	f7ff fb9a 	bl	80026e8 <Error_Handler>
+ 8002fb4:	4a15      	ldr	r2, [pc, #84]	; (800300c <HAL_UART_MspInit+0xfc>)
+ 8002fb6:	67ec      	str	r4, [r5, #124]	; 0x7c
+ 8002fb8:	62a5      	str	r5, [r4, #40]	; 0x28
+ 8002fba:	4c15      	ldr	r4, [pc, #84]	; (8003010 <HAL_UART_MspInit+0x100>)
+ 8002fbc:	2313      	movs	r3, #19
+ 8002fbe:	e9c4 2300 	strd	r2, r3, [r4]
+ 8002fc2:	4620      	mov	r0, r4
+ 8002fc4:	2300      	movs	r3, #0
+ 8002fc6:	2280      	movs	r2, #128	; 0x80
+ 8002fc8:	e9c4 3302 	strd	r3, r3, [r4, #8]
+ 8002fcc:	e9c4 2304 	strd	r2, r3, [r4, #16]
+ 8002fd0:	e9c4 3306 	strd	r3, r3, [r4, #24]
+ 8002fd4:	6223      	str	r3, [r4, #32]
+ 8002fd6:	f004 fff1 	bl	8007fbc <HAL_DMA_Init>
+ 8002fda:	b108      	cbz	r0, 8002fe0 <HAL_UART_MspInit+0xd0>
+ 8002fdc:	f7ff fb84 	bl	80026e8 <Error_Handler>
+ 8002fe0:	2025      	movs	r0, #37	; 0x25
+ 8002fe2:	f8c5 4080 	str.w	r4, [r5, #128]	; 0x80
+ 8002fe6:	2200      	movs	r2, #0
+ 8002fe8:	2102      	movs	r1, #2
+ 8002fea:	62a5      	str	r5, [r4, #40]	; 0x28
+ 8002fec:	f004 ff54 	bl	8007e98 <HAL_NVIC_SetPriority>
+ 8002ff0:	2025      	movs	r0, #37	; 0x25
+ 8002ff2:	f004 ff83 	bl	8007efc <HAL_NVIC_EnableIRQ>
+ 8002ff6:	b016      	add	sp, #88	; 0x58
+ 8002ff8:	bd70      	pop	{r4, r5, r6, pc}
+ 8002ffa:	bf00      	nop
+ 8002ffc:	40004400 	.word	0x40004400
+ 8003000:	000c0004 	.word	0x000c0004
+ 8003004:	20000b40 	.word	0x20000b40
+ 8003008:	40020080 	.word	0x40020080
+ 800300c:	4002006c 	.word	0x4002006c
+ 8003010:	20000ae0 	.word	0x20000ae0
+
+08003014 <HAL_UART_MspDeInit>:
+ 8003014:	6802      	ldr	r2, [r0, #0]
+ 8003016:	4b0e      	ldr	r3, [pc, #56]	; (8003050 <HAL_UART_MspDeInit+0x3c>)
+ 8003018:	429a      	cmp	r2, r3
+ 800301a:	b510      	push	{r4, lr}
+ 800301c:	4604      	mov	r4, r0
+ 800301e:	d116      	bne.n	800304e <HAL_UART_MspDeInit+0x3a>
+ 8003020:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 8003024:	210c      	movs	r1, #12
+ 8003026:	6d93      	ldr	r3, [r2, #88]	; 0x58
+ 8003028:	f423 3300 	bic.w	r3, r3, #131072	; 0x20000
+ 800302c:	6593      	str	r3, [r2, #88]	; 0x58
+ 800302e:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8003032:	f005 fb37 	bl	80086a4 <HAL_GPIO_DeInit>
+ 8003036:	6fe0      	ldr	r0, [r4, #124]	; 0x7c
+ 8003038:	f005 f834 	bl	80080a4 <HAL_DMA_DeInit>
+ 800303c:	f8d4 0080 	ldr.w	r0, [r4, #128]	; 0x80
+ 8003040:	f005 f830 	bl	80080a4 <HAL_DMA_DeInit>
+ 8003044:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8003048:	2025      	movs	r0, #37	; 0x25
+ 800304a:	f004 bf65 	b.w	8007f18 <HAL_NVIC_DisableIRQ>
+ 800304e:	bd10      	pop	{r4, pc}
+ 8003050:	40004400 	.word	0x40004400
+
+08003054 <vcom_Trace_DMA>:
+ 8003054:	b508      	push	{r3, lr}
+ 8003056:	460a      	mov	r2, r1
+ 8003058:	4601      	mov	r1, r0
+ 800305a:	4802      	ldr	r0, [pc, #8]	; (8003064 <vcom_Trace_DMA+0x10>)
+ 800305c:	f007 fa12 	bl	800a484 <HAL_UART_Transmit_DMA>
+ 8003060:	2000      	movs	r0, #0
+ 8003062:	bd08      	pop	{r3, pc}
+ 8003064:	20000ba0 	.word	0x20000ba0
+
+08003068 <vcom_ReceiveInit>:
+ 8003068:	b513      	push	{r0, r1, r4, lr}
+ 800306a:	4b11      	ldr	r3, [pc, #68]	; (80030b0 <vcom_ReceiveInit+0x48>)
+ 800306c:	4c11      	ldr	r4, [pc, #68]	; (80030b4 <vcom_ReceiveInit+0x4c>)
+ 800306e:	6018      	str	r0, [r3, #0]
+ 8003070:	f44f 1300 	mov.w	r3, #2097152	; 0x200000
+ 8003074:	9300      	str	r3, [sp, #0]
+ 8003076:	ab02      	add	r3, sp, #8
+ 8003078:	e913 0006 	ldmdb	r3, {r1, r2}
+ 800307c:	4620      	mov	r0, r4
+ 800307e:	f008 f97e 	bl	800b37e <HAL_UARTEx_StopModeWakeUpSourceConfig>
+ 8003082:	6823      	ldr	r3, [r4, #0]
+ 8003084:	69da      	ldr	r2, [r3, #28]
+ 8003086:	03d1      	lsls	r1, r2, #15
+ 8003088:	d4fc      	bmi.n	8003084 <vcom_ReceiveInit+0x1c>
+ 800308a:	69da      	ldr	r2, [r3, #28]
+ 800308c:	0252      	lsls	r2, r2, #9
+ 800308e:	d5fc      	bpl.n	800308a <vcom_ReceiveInit+0x22>
+ 8003090:	689a      	ldr	r2, [r3, #8]
+ 8003092:	4808      	ldr	r0, [pc, #32]	; (80030b4 <vcom_ReceiveInit+0x4c>)
+ 8003094:	f442 0280 	orr.w	r2, r2, #4194304	; 0x400000
+ 8003098:	609a      	str	r2, [r3, #8]
+ 800309a:	f008 f9b6 	bl	800b40a <HAL_UARTEx_EnableStopMode>
+ 800309e:	4906      	ldr	r1, [pc, #24]	; (80030b8 <vcom_ReceiveInit+0x50>)
+ 80030a0:	4804      	ldr	r0, [pc, #16]	; (80030b4 <vcom_ReceiveInit+0x4c>)
+ 80030a2:	2201      	movs	r2, #1
+ 80030a4:	f008 f924 	bl	800b2f0 <HAL_UART_Receive_IT>
+ 80030a8:	2000      	movs	r0, #0
+ 80030aa:	b002      	add	sp, #8
+ 80030ac:	bd10      	pop	{r4, pc}
+ 80030ae:	bf00      	nop
+ 80030b0:	20000c34 	.word	0x20000c34
+ 80030b4:	20000ba0 	.word	0x20000ba0
+ 80030b8:	20000c3c 	.word	0x20000c3c
+
+080030bc <vcom_Init>:
+ 80030bc:	b508      	push	{r3, lr}
+ 80030be:	4b07      	ldr	r3, [pc, #28]	; (80030dc <vcom_Init+0x20>)
+ 80030c0:	6018      	str	r0, [r3, #0]
+ 80030c2:	f7fe ffa4 	bl	800200e <MX_DMA_Init>
+ 80030c6:	f7ff fef1 	bl	8002eac <MX_USART2_UART_Init>
+ 80030ca:	4a05      	ldr	r2, [pc, #20]	; (80030e0 <vcom_Init+0x24>)
+ 80030cc:	f8d2 3080 	ldr.w	r3, [r2, #128]	; 0x80
+ 80030d0:	f043 6300 	orr.w	r3, r3, #134217728	; 0x8000000
+ 80030d4:	f8c2 3080 	str.w	r3, [r2, #128]	; 0x80
+ 80030d8:	2000      	movs	r0, #0
+ 80030da:	bd08      	pop	{r3, pc}
+ 80030dc:	20000c38 	.word	0x20000c38
+ 80030e0:	58000800 	.word	0x58000800
+
+080030e4 <vcom_DeInit>:
+ 80030e4:	b508      	push	{r3, lr}
+ 80030e6:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 80030ea:	4808      	ldr	r0, [pc, #32]	; (800310c <vcom_DeInit+0x28>)
+ 80030ec:	6b9a      	ldr	r2, [r3, #56]	; 0x38
+ 80030ee:	f442 3200 	orr.w	r2, r2, #131072	; 0x20000
+ 80030f2:	639a      	str	r2, [r3, #56]	; 0x38
+ 80030f4:	6b9a      	ldr	r2, [r3, #56]	; 0x38
+ 80030f6:	f422 3200 	bic.w	r2, r2, #131072	; 0x20000
+ 80030fa:	639a      	str	r2, [r3, #56]	; 0x38
+ 80030fc:	f7ff ff8a 	bl	8003014 <HAL_UART_MspDeInit>
+ 8003100:	200f      	movs	r0, #15
+ 8003102:	f004 ff09 	bl	8007f18 <HAL_NVIC_DisableIRQ>
+ 8003106:	2000      	movs	r0, #0
+ 8003108:	bd08      	pop	{r3, pc}
+ 800310a:	bf00      	nop
+ 800310c:	20000ba0 	.word	0x20000ba0
+
+08003110 <vcom_Resume>:
+ 8003110:	b508      	push	{r3, lr}
+ 8003112:	4807      	ldr	r0, [pc, #28]	; (8003130 <vcom_Resume+0x20>)
+ 8003114:	f008 f833 	bl	800b17e <HAL_UART_Init>
+ 8003118:	b108      	cbz	r0, 800311e <vcom_Resume+0xe>
+ 800311a:	f7ff fae5 	bl	80026e8 <Error_Handler>
+ 800311e:	4805      	ldr	r0, [pc, #20]	; (8003134 <vcom_Resume+0x24>)
+ 8003120:	f004 ff4c 	bl	8007fbc <HAL_DMA_Init>
+ 8003124:	b118      	cbz	r0, 800312e <vcom_Resume+0x1e>
+ 8003126:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 800312a:	f7ff badd 	b.w	80026e8 <Error_Handler>
+ 800312e:	bd08      	pop	{r3, pc}
+ 8003130:	20000ba0 	.word	0x20000ba0
+ 8003134:	20000b40 	.word	0x20000b40
+
+08003138 <HAL_UART_TxCpltCallback>:
+ 8003138:	6802      	ldr	r2, [r0, #0]
+ 800313a:	4b04      	ldr	r3, [pc, #16]	; (800314c <HAL_UART_TxCpltCallback+0x14>)
+ 800313c:	429a      	cmp	r2, r3
+ 800313e:	d103      	bne.n	8003148 <HAL_UART_TxCpltCallback+0x10>
+ 8003140:	4b03      	ldr	r3, [pc, #12]	; (8003150 <HAL_UART_TxCpltCallback+0x18>)
+ 8003142:	2000      	movs	r0, #0
+ 8003144:	681b      	ldr	r3, [r3, #0]
+ 8003146:	4718      	bx	r3
+ 8003148:	4770      	bx	lr
+ 800314a:	bf00      	nop
+ 800314c:	40004400 	.word	0x40004400
+ 8003150:	20000c38 	.word	0x20000c38
+
+08003154 <HAL_UART_RxCpltCallback>:
+ 8003154:	6802      	ldr	r2, [r0, #0]
+ 8003156:	4b0b      	ldr	r3, [pc, #44]	; (8003184 <HAL_UART_RxCpltCallback+0x30>)
+ 8003158:	429a      	cmp	r2, r3
+ 800315a:	b510      	push	{r4, lr}
+ 800315c:	4604      	mov	r4, r0
+ 800315e:	d10f      	bne.n	8003180 <HAL_UART_RxCpltCallback+0x2c>
+ 8003160:	4b09      	ldr	r3, [pc, #36]	; (8003188 <HAL_UART_RxCpltCallback+0x34>)
+ 8003162:	681b      	ldr	r3, [r3, #0]
+ 8003164:	b12b      	cbz	r3, 8003172 <HAL_UART_RxCpltCallback+0x1e>
+ 8003166:	f8d0 2090 	ldr.w	r2, [r0, #144]	; 0x90
+ 800316a:	b912      	cbnz	r2, 8003172 <HAL_UART_RxCpltCallback+0x1e>
+ 800316c:	4807      	ldr	r0, [pc, #28]	; (800318c <HAL_UART_RxCpltCallback+0x38>)
+ 800316e:	2101      	movs	r1, #1
+ 8003170:	4798      	blx	r3
+ 8003172:	4620      	mov	r0, r4
+ 8003174:	4905      	ldr	r1, [pc, #20]	; (800318c <HAL_UART_RxCpltCallback+0x38>)
+ 8003176:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 800317a:	2201      	movs	r2, #1
+ 800317c:	f008 b8b8 	b.w	800b2f0 <HAL_UART_Receive_IT>
+ 8003180:	bd10      	pop	{r4, pc}
+ 8003182:	bf00      	nop
+ 8003184:	40004400 	.word	0x40004400
+ 8003188:	20000c34 	.word	0x20000c34
+ 800318c:	20000c3c 	.word	0x20000c3c
+
+08003190 <STS_SENSOR_Power_ON.part.0>:
+ 8003190:	4802      	ldr	r0, [pc, #8]	; (800319c <STS_SENSOR_Power_ON.part.0+0xc>)
+ 8003192:	2201      	movs	r2, #1
+ 8003194:	2110      	movs	r1, #16
+ 8003196:	f005 baff 	b.w	8008798 <HAL_GPIO_WritePin>
+ 800319a:	bf00      	nop
+ 800319c:	48000400 	.word	0x48000400
+
+080031a0 <STS_SENSOR_Power_OFF.part.0>:
+ 80031a0:	4802      	ldr	r0, [pc, #8]	; (80031ac <STS_SENSOR_Power_OFF.part.0+0xc>)
+ 80031a2:	2200      	movs	r2, #0
+ 80031a4:	2110      	movs	r1, #16
+ 80031a6:	f005 baf7 	b.w	8008798 <HAL_GPIO_WritePin>
+ 80031aa:	bf00      	nop
+ 80031ac:	48000400 	.word	0x48000400
+
+080031b0 <STS_YunhornAuthenticationCode_Process>:
+ 80031b0:	b513      	push	{r0, r1, r4, lr}
+ 80031b2:	4c12      	ldr	r4, [pc, #72]	; (80031fc <STS_YunhornAuthenticationCode_Process+0x4c>)
+ 80031b4:	7823      	ldrb	r3, [r4, #0]
+ 80031b6:	f003 02ff 	and.w	r2, r3, #255	; 0xff
+ 80031ba:	b93b      	cbnz	r3, 80031cc <STS_YunhornAuthenticationCode_Process+0x1c>
+ 80031bc:	4b10      	ldr	r3, [pc, #64]	; (8003200 <STS_YunhornAuthenticationCode_Process+0x50>)
+ 80031be:	4611      	mov	r1, r2
+ 80031c0:	2002      	movs	r0, #2
+ 80031c2:	b002      	add	sp, #8
+ 80031c4:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 80031c8:	f010 bbd6 	b.w	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 80031cc:	f7ff fba6 	bl	800291c <sts_hmac_verify>
+ 80031d0:	3800      	subs	r0, #0
+ 80031d2:	4b0c      	ldr	r3, [pc, #48]	; (8003204 <STS_YunhornAuthenticationCode_Process+0x54>)
+ 80031d4:	bf18      	it	ne
+ 80031d6:	2001      	movne	r0, #1
+ 80031d8:	0040      	lsls	r0, r0, #1
+ 80031da:	7018      	strb	r0, [r3, #0]
+ 80031dc:	781a      	ldrb	r2, [r3, #0]
+ 80031de:	2a02      	cmp	r2, #2
+ 80031e0:	bf04      	itt	eq
+ 80031e2:	2200      	moveq	r2, #0
+ 80031e4:	7022      	strbeq	r2, [r4, #0]
+ 80031e6:	781b      	ldrb	r3, [r3, #0]
+ 80031e8:	9300      	str	r3, [sp, #0]
+ 80031ea:	2200      	movs	r2, #0
+ 80031ec:	4b06      	ldr	r3, [pc, #24]	; (8003208 <STS_YunhornAuthenticationCode_Process+0x58>)
+ 80031ee:	4611      	mov	r1, r2
+ 80031f0:	2003      	movs	r0, #3
+ 80031f2:	f010 fbc1 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 80031f6:	b002      	add	sp, #8
+ 80031f8:	bd10      	pop	{r4, pc}
+ 80031fa:	bf00      	nop
+ 80031fc:	20000e52 	.word	0x20000e52
+ 8003200:	080146c4 	.word	0x080146c4
+ 8003204:	20000c44 	.word	0x20000c44
+ 8003208:	080146e0 	.word	0x080146e0
+
+0800320c <STS_YunhornSTSEventRFAC_Process>:
+ 800320c:	b538      	push	{r3, r4, r5, lr}
+ 800320e:	4d16      	ldr	r5, [pc, #88]	; (8003268 <STS_YunhornSTSEventRFAC_Process+0x5c>)
+ 8003210:	782b      	ldrb	r3, [r5, #0]
+ 8003212:	f003 02ff 	and.w	r2, r3, #255	; 0xff
+ 8003216:	bb33      	cbnz	r3, 8003266 <STS_YunhornSTSEventRFAC_Process+0x5a>
+ 8003218:	4c14      	ldr	r4, [pc, #80]	; (800326c <STS_YunhornSTSEventRFAC_Process+0x60>)
+ 800321a:	6823      	ldr	r3, [r4, #0]
+ 800321c:	2b01      	cmp	r3, #1
+ 800321e:	d90c      	bls.n	800323a <STS_YunhornSTSEventRFAC_Process+0x2e>
+ 8003220:	6823      	ldr	r3, [r4, #0]
+ 8003222:	2b04      	cmp	r3, #4
+ 8003224:	d809      	bhi.n	800323a <STS_YunhornSTSEventRFAC_Process+0x2e>
+ 8003226:	4611      	mov	r1, r2
+ 8003228:	4b11      	ldr	r3, [pc, #68]	; (8003270 <STS_YunhornSTSEventRFAC_Process+0x64>)
+ 800322a:	2002      	movs	r0, #2
+ 800322c:	f010 fba4 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8003230:	4a10      	ldr	r2, [pc, #64]	; (8003274 <STS_YunhornSTSEventRFAC_Process+0x68>)
+ 8003232:	2104      	movs	r1, #4
+ 8003234:	2001      	movs	r0, #1
+ 8003236:	f000 fc31 	bl	8003a9c <STS_SENSOR_Upload_Message>
+ 800323a:	6823      	ldr	r3, [r4, #0]
+ 800323c:	2b04      	cmp	r3, #4
+ 800323e:	d912      	bls.n	8003266 <STS_YunhornSTSEventRFAC_Process+0x5a>
+ 8003240:	2200      	movs	r2, #0
+ 8003242:	4b0d      	ldr	r3, [pc, #52]	; (8003278 <STS_YunhornSTSEventRFAC_Process+0x6c>)
+ 8003244:	4611      	mov	r1, r2
+ 8003246:	2002      	movs	r0, #2
+ 8003248:	f010 fb96 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 800324c:	f7ff fb66 	bl	800291c <sts_hmac_verify>
+ 8003250:	3800      	subs	r0, #0
+ 8003252:	4b0a      	ldr	r3, [pc, #40]	; (800327c <STS_YunhornSTSEventRFAC_Process+0x70>)
+ 8003254:	bf18      	it	ne
+ 8003256:	2001      	movne	r0, #1
+ 8003258:	0040      	lsls	r0, r0, #1
+ 800325a:	7018      	strb	r0, [r3, #0]
+ 800325c:	781b      	ldrb	r3, [r3, #0]
+ 800325e:	2b02      	cmp	r3, #2
+ 8003260:	bf04      	itt	eq
+ 8003262:	2300      	moveq	r3, #0
+ 8003264:	702b      	strbeq	r3, [r5, #0]
+ 8003266:	bd38      	pop	{r3, r4, r5, pc}
+ 8003268:	20000e52 	.word	0x20000e52
+ 800326c:	20000c40 	.word	0x20000c40
+ 8003270:	080146f7 	.word	0x080146f7
+ 8003274:	0801471c 	.word	0x0801471c
+ 8003278:	08014721 	.word	0x08014721
+ 800327c:	20000c44 	.word	0x20000c44
+
+08003280 <STS_YunhornSTSEventP4_Process>:
+ 8003280:	b508      	push	{r3, lr}
+ 8003282:	f7ff ff85 	bl	8003190 <STS_SENSOR_Power_ON.part.0>
+ 8003286:	2064      	movs	r0, #100	; 0x64
+ 8003288:	f7ff fc8a 	bl	8002ba0 <HAL_Delay>
+ 800328c:	2200      	movs	r2, #0
+ 800328e:	4b05      	ldr	r3, [pc, #20]	; (80032a4 <STS_YunhornSTSEventP4_Process+0x24>)
+ 8003290:	4611      	mov	r1, r2
+ 8003292:	2001      	movs	r0, #1
+ 8003294:	f010 fb70 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8003298:	f001 fdbc 	bl	8004e14 <STS_TOF_VL53L0X_Range_Process>
+ 800329c:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 80032a0:	f7ff bf7e 	b.w	80031a0 <STS_SENSOR_Power_OFF.part.0>
+ 80032a4:	08014754 	.word	0x08014754
+
+080032a8 <STS_YunhornSTSEventP6_Process>:
+ 80032a8:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 80032aa:	2200      	movs	r2, #0
+ 80032ac:	4b20      	ldr	r3, [pc, #128]	; (8003330 <STS_YunhornSTSEventP6_Process+0x88>)
+ 80032ae:	4c21      	ldr	r4, [pc, #132]	; (8003334 <STS_YunhornSTSEventP6_Process+0x8c>)
+ 80032b0:	4611      	mov	r1, r2
+ 80032b2:	2001      	movs	r0, #1
+ 80032b4:	f010 fb60 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 80032b8:	f7ff ff6a 	bl	8003190 <STS_SENSOR_Power_ON.part.0>
+ 80032bc:	2201      	movs	r2, #1
+ 80032be:	2108      	movs	r1, #8
+ 80032c0:	481d      	ldr	r0, [pc, #116]	; (8003338 <STS_YunhornSTSEventP6_Process+0x90>)
+ 80032c2:	f005 fa69 	bl	8008798 <HAL_GPIO_WritePin>
+ 80032c6:	f241 3088 	movw	r0, #5000	; 0x1388
+ 80032ca:	f7ff fc69 	bl	8002ba0 <HAL_Delay>
+ 80032ce:	2500      	movs	r5, #0
+ 80032d0:	f44f 6180 	mov.w	r1, #1024	; 0x400
+ 80032d4:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 80032d8:	7025      	strb	r5, [r4, #0]
+ 80032da:	f005 fa57 	bl	800878c <HAL_GPIO_ReadPin>
+ 80032de:	7020      	strb	r0, [r4, #0]
+ 80032e0:	7823      	ldrb	r3, [r4, #0]
+ 80032e2:	9300      	str	r3, [sp, #0]
+ 80032e4:	462a      	mov	r2, r5
+ 80032e6:	4b15      	ldr	r3, [pc, #84]	; (800333c <STS_YunhornSTSEventP6_Process+0x94>)
+ 80032e8:	4629      	mov	r1, r5
+ 80032ea:	2001      	movs	r0, #1
+ 80032ec:	f010 fb44 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 80032f0:	7823      	ldrb	r3, [r4, #0]
+ 80032f2:	2b01      	cmp	r3, #1
+ 80032f4:	b2da      	uxtb	r2, r3
+ 80032f6:	d103      	bne.n	8003300 <STS_YunhornSTSEventP6_Process+0x58>
+ 80032f8:	480f      	ldr	r0, [pc, #60]	; (8003338 <STS_YunhornSTSEventP6_Process+0x90>)
+ 80032fa:	2104      	movs	r1, #4
+ 80032fc:	f005 fa4c 	bl	8008798 <HAL_GPIO_WritePin>
+ 8003300:	480d      	ldr	r0, [pc, #52]	; (8003338 <STS_YunhornSTSEventP6_Process+0x90>)
+ 8003302:	2200      	movs	r2, #0
+ 8003304:	2108      	movs	r1, #8
+ 8003306:	f005 fa47 	bl	8008798 <HAL_GPIO_WritePin>
+ 800330a:	f7ff ff49 	bl	80031a0 <STS_SENSOR_Power_OFF.part.0>
+ 800330e:	2201      	movs	r2, #1
+ 8003310:	2104      	movs	r1, #4
+ 8003312:	4809      	ldr	r0, [pc, #36]	; (8003338 <STS_YunhornSTSEventP6_Process+0x90>)
+ 8003314:	f005 fa40 	bl	8008798 <HAL_GPIO_WritePin>
+ 8003318:	f44f 70fa 	mov.w	r0, #500	; 0x1f4
+ 800331c:	f7ff fc40 	bl	8002ba0 <HAL_Delay>
+ 8003320:	4805      	ldr	r0, [pc, #20]	; (8003338 <STS_YunhornSTSEventP6_Process+0x90>)
+ 8003322:	2200      	movs	r2, #0
+ 8003324:	2104      	movs	r1, #4
+ 8003326:	b003      	add	sp, #12
+ 8003328:	e8bd 4030 	ldmia.w	sp!, {r4, r5, lr}
+ 800332c:	f005 ba34 	b.w	8008798 <HAL_GPIO_WritePin>
+ 8003330:	0801476c 	.word	0x0801476c
+ 8003334:	20000c45 	.word	0x20000c45
+ 8003338:	48000400 	.word	0x48000400
+ 800333c:	08014784 	.word	0x08014784
+
+08003340 <STS_SENSOR_Power_ON>:
+ 8003340:	2802      	cmp	r0, #2
+ 8003342:	d801      	bhi.n	8003348 <STS_SENSOR_Power_ON+0x8>
+ 8003344:	f7ff bf24 	b.w	8003190 <STS_SENSOR_Power_ON.part.0>
+ 8003348:	4770      	bx	lr
+
+0800334a <STS_SENSOR_Power_OFF>:
+ 800334a:	2802      	cmp	r0, #2
+ 800334c:	d801      	bhi.n	8003352 <STS_SENSOR_Power_OFF+0x8>
+ 800334e:	f7ff bf27 	b.w	80031a0 <STS_SENSOR_Power_OFF.part.0>
+ 8003352:	4770      	bx	lr
+
+08003354 <STS_SENSOR_MEMS_Reset>:
+ 8003354:	2802      	cmp	r0, #2
+ 8003356:	b508      	push	{r3, lr}
+ 8003358:	d81b      	bhi.n	8003392 <STS_SENSOR_MEMS_Reset+0x3e>
+ 800335a:	2201      	movs	r2, #1
+ 800335c:	2110      	movs	r1, #16
+ 800335e:	480d      	ldr	r0, [pc, #52]	; (8003394 <STS_SENSOR_MEMS_Reset+0x40>)
+ 8003360:	f005 fa1a 	bl	8008798 <HAL_GPIO_WritePin>
+ 8003364:	2032      	movs	r0, #50	; 0x32
+ 8003366:	f7ff fc1b 	bl	8002ba0 <HAL_Delay>
+ 800336a:	480a      	ldr	r0, [pc, #40]	; (8003394 <STS_SENSOR_MEMS_Reset+0x40>)
+ 800336c:	2200      	movs	r2, #0
+ 800336e:	2110      	movs	r1, #16
+ 8003370:	f005 fa12 	bl	8008798 <HAL_GPIO_WritePin>
+ 8003374:	2201      	movs	r2, #1
+ 8003376:	2110      	movs	r1, #16
+ 8003378:	4806      	ldr	r0, [pc, #24]	; (8003394 <STS_SENSOR_MEMS_Reset+0x40>)
+ 800337a:	f005 fa0d 	bl	8008798 <HAL_GPIO_WritePin>
+ 800337e:	2032      	movs	r0, #50	; 0x32
+ 8003380:	f7ff fc0e 	bl	8002ba0 <HAL_Delay>
+ 8003384:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 8003388:	4802      	ldr	r0, [pc, #8]	; (8003394 <STS_SENSOR_MEMS_Reset+0x40>)
+ 800338a:	2200      	movs	r2, #0
+ 800338c:	2110      	movs	r1, #16
+ 800338e:	f005 ba03 	b.w	8008798 <HAL_GPIO_WritePin>
+ 8003392:	bd08      	pop	{r3, pc}
+ 8003394:	48000400 	.word	0x48000400
+
+08003398 <STS_SENSOR_NVM_CFG_SIMPLE>:
+ 8003398:	4770      	bx	lr
+
+0800339a <MX_LoRaWAN_Init>:
+ 800339a:	b508      	push	{r3, lr}
+ 800339c:	f7ff fb50 	bl	8002a40 <SystemApp_Init>
+ 80033a0:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 80033a4:	f000 bd2e 	b.w	8003e04 <LoRaWAN_Init>
+
+080033a8 <MX_LoRaWAN_Process>:
+ 80033a8:	f04f 30ff 	mov.w	r0, #4294967295
+ 80033ac:	f010 bc30 	b.w	8013c10 <UTIL_SEQ_Run>
+
+080033b0 <OnTxTimerLedEvent>:
+ 80033b0:	4770      	bx	lr
+
+080033b2 <OnSysTimeUpdate>:
+ 80033b2:	4770      	bx	lr
+
+080033b4 <OnTxFrameCtrlChanged>:
+ 80033b4:	4b01      	ldr	r3, [pc, #4]	; (80033bc <OnTxFrameCtrlChanged+0x8>)
+ 80033b6:	70d8      	strb	r0, [r3, #3]
+ 80033b8:	4770      	bx	lr
+ 80033ba:	bf00      	nop
+ 80033bc:	2000005c 	.word	0x2000005c
+
+080033c0 <OnPingSlotPeriodicityChanged>:
+ 80033c0:	4b01      	ldr	r3, [pc, #4]	; (80033c8 <OnPingSlotPeriodicityChanged+0x8>)
+ 80033c2:	7418      	strb	r0, [r3, #16]
+ 80033c4:	4770      	bx	lr
+ 80033c6:	bf00      	nop
+ 80033c8:	2000005c 	.word	0x2000005c
+
+080033cc <OnClassChange>:
+ 80033cc:	b507      	push	{r0, r1, r2, lr}
+ 80033ce:	4b06      	ldr	r3, [pc, #24]	; (80033e8 <OnClassChange+0x1c>)
+ 80033d0:	2200      	movs	r2, #0
+ 80033d2:	5c1b      	ldrb	r3, [r3, r0]
+ 80033d4:	9300      	str	r3, [sp, #0]
+ 80033d6:	4611      	mov	r1, r2
+ 80033d8:	4b04      	ldr	r3, [pc, #16]	; (80033ec <OnClassChange+0x20>)
+ 80033da:	2002      	movs	r0, #2
+ 80033dc:	f010 facc 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 80033e0:	b003      	add	sp, #12
+ 80033e2:	f85d fb04 	ldr.w	pc, [sp], #4
+ 80033e6:	bf00      	nop
+ 80033e8:	080147b4 	.word	0x080147b4
+ 80033ec:	0801479a 	.word	0x0801479a
+
+080033f0 <OnTxTimerEvent>:
+ 80033f0:	b508      	push	{r3, lr}
+ 80033f2:	4b06      	ldr	r3, [pc, #24]	; (800340c <OnTxTimerEvent+0x1c>)
+ 80033f4:	2201      	movs	r2, #1
+ 80033f6:	2002      	movs	r0, #2
+ 80033f8:	2100      	movs	r1, #0
+ 80033fa:	701a      	strb	r2, [r3, #0]
+ 80033fc:	f010 fbd0 	bl	8013ba0 <UTIL_SEQ_SetTask>
+ 8003400:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 8003404:	4802      	ldr	r0, [pc, #8]	; (8003410 <OnTxTimerEvent+0x20>)
+ 8003406:	f010 be33 	b.w	8014070 <UTIL_TIMER_Start>
+ 800340a:	bf00      	nop
+ 800340c:	20000e67 	.word	0x20000e67
+ 8003410:	20000da0 	.word	0x20000da0
+
+08003414 <OnMacProcessNotify>:
+ 8003414:	2100      	movs	r1, #0
+ 8003416:	2001      	movs	r0, #1
+ 8003418:	f010 bbc2 	b.w	8013ba0 <UTIL_SEQ_SetTask>
+
+0800341c <OnJoinRequest>:
+ 800341c:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 800341e:	4604      	mov	r4, r0
+ 8003420:	b360      	cbz	r0, 800347c <OnJoinRequest+0x60>
+ 8003422:	f990 5006 	ldrsb.w	r5, [r0, #6]
+ 8003426:	bb5d      	cbnz	r5, 8003480 <OnJoinRequest+0x64>
+ 8003428:	4819      	ldr	r0, [pc, #100]	; (8003490 <OnJoinRequest+0x74>)
+ 800342a:	f010 fdd3 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 800342e:	4b19      	ldr	r3, [pc, #100]	; (8003494 <OnJoinRequest+0x78>)
+ 8003430:	462a      	mov	r2, r5
+ 8003432:	4629      	mov	r1, r5
+ 8003434:	2002      	movs	r0, #2
+ 8003436:	f010 fa9f 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 800343a:	79e3      	ldrb	r3, [r4, #7]
+ 800343c:	2b01      	cmp	r3, #1
+ 800343e:	bf0c      	ite	eq
+ 8003440:	4b15      	ldreq	r3, [pc, #84]	; (8003498 <OnJoinRequest+0x7c>)
+ 8003442:	4b16      	ldrne	r3, [pc, #88]	; (800349c <OnJoinRequest+0x80>)
+ 8003444:	462a      	mov	r2, r5
+ 8003446:	4629      	mov	r1, r5
+ 8003448:	2002      	movs	r0, #2
+ 800344a:	f010 fa95 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 800344e:	4b14      	ldr	r3, [pc, #80]	; (80034a0 <OnJoinRequest+0x84>)
+ 8003450:	79e2      	ldrb	r2, [r4, #7]
+ 8003452:	701a      	strb	r2, [r3, #0]
+ 8003454:	781b      	ldrb	r3, [r3, #0]
+ 8003456:	9300      	str	r3, [sp, #0]
+ 8003458:	2200      	movs	r2, #0
+ 800345a:	4b12      	ldr	r3, [pc, #72]	; (80034a4 <OnJoinRequest+0x88>)
+ 800345c:	4611      	mov	r1, r2
+ 800345e:	2001      	movs	r0, #1
+ 8003460:	f010 fa8a 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8003464:	f994 3005 	ldrsb.w	r3, [r4, #5]
+ 8003468:	9301      	str	r3, [sp, #4]
+ 800346a:	f994 3004 	ldrsb.w	r3, [r4, #4]
+ 800346e:	9300      	str	r3, [sp, #0]
+ 8003470:	2200      	movs	r2, #0
+ 8003472:	4b0d      	ldr	r3, [pc, #52]	; (80034a8 <OnJoinRequest+0x8c>)
+ 8003474:	4611      	mov	r1, r2
+ 8003476:	2003      	movs	r0, #3
+ 8003478:	f010 fa7e 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 800347c:	b003      	add	sp, #12
+ 800347e:	bd30      	pop	{r4, r5, pc}
+ 8003480:	2200      	movs	r2, #0
+ 8003482:	4b0a      	ldr	r3, [pc, #40]	; (80034ac <OnJoinRequest+0x90>)
+ 8003484:	4611      	mov	r1, r2
+ 8003486:	2002      	movs	r0, #2
+ 8003488:	f010 fa76 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 800348c:	e7ea      	b.n	8003464 <OnJoinRequest+0x48>
+ 800348e:	bf00      	nop
+ 8003490:	20000d3c 	.word	0x20000d3c
+ 8003494:	080147b8 	.word	0x080147b8
+ 8003498:	080147cd 	.word	0x080147cd
+ 800349c:	080147ea 	.word	0x080147ea
+ 80034a0:	20000d6c 	.word	0x20000d6c
+ 80034a4:	08014807 	.word	0x08014807
+ 80034a8:	0801483f 	.word	0x0801483f
+ 80034ac:	08014826 	.word	0x08014826
+
+080034b0 <OnTxPeriodicityChanged>:
+ 80034b0:	b513      	push	{r0, r1, r4, lr}
+ 80034b2:	4c0d      	ldr	r4, [pc, #52]	; (80034e8 <OnTxPeriodicityChanged+0x38>)
+ 80034b4:	b1a0      	cbz	r0, 80034e0 <OnTxPeriodicityChanged+0x30>
+ 80034b6:	6020      	str	r0, [r4, #0]
+ 80034b8:	480c      	ldr	r0, [pc, #48]	; (80034ec <OnTxPeriodicityChanged+0x3c>)
+ 80034ba:	f010 fd8b 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 80034be:	6821      	ldr	r1, [r4, #0]
+ 80034c0:	480a      	ldr	r0, [pc, #40]	; (80034ec <OnTxPeriodicityChanged+0x3c>)
+ 80034c2:	f010 fe0f 	bl	80140e4 <UTIL_TIMER_SetPeriod>
+ 80034c6:	4809      	ldr	r0, [pc, #36]	; (80034ec <OnTxPeriodicityChanged+0x3c>)
+ 80034c8:	f010 fdd2 	bl	8014070 <UTIL_TIMER_Start>
+ 80034cc:	6823      	ldr	r3, [r4, #0]
+ 80034ce:	9300      	str	r3, [sp, #0]
+ 80034d0:	2200      	movs	r2, #0
+ 80034d2:	4b07      	ldr	r3, [pc, #28]	; (80034f0 <OnTxPeriodicityChanged+0x40>)
+ 80034d4:	4611      	mov	r1, r2
+ 80034d6:	2001      	movs	r0, #1
+ 80034d8:	f010 fa4e 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 80034dc:	b002      	add	sp, #8
+ 80034de:	bd10      	pop	{r4, pc}
+ 80034e0:	f242 7310 	movw	r3, #10000	; 0x2710
+ 80034e4:	6023      	str	r3, [r4, #0]
+ 80034e6:	e7e7      	b.n	80034b8 <OnTxPeriodicityChanged+0x8>
+ 80034e8:	20000074 	.word	0x20000074
+ 80034ec:	20000da0 	.word	0x20000da0
+ 80034f0:	08014868 	.word	0x08014868
+
+080034f4 <OnYunhornSTSHeartBeatPeriodicityChanged>:
+ 80034f4:	b513      	push	{r0, r1, r4, lr}
+ 80034f6:	4c0d      	ldr	r4, [pc, #52]	; (800352c <OnYunhornSTSHeartBeatPeriodicityChanged+0x38>)
+ 80034f8:	6020      	str	r0, [r4, #0]
+ 80034fa:	6823      	ldr	r3, [r4, #0]
+ 80034fc:	b90b      	cbnz	r3, 8003502 <OnYunhornSTSHeartBeatPeriodicityChanged+0xe>
+ 80034fe:	4b0c      	ldr	r3, [pc, #48]	; (8003530 <OnYunhornSTSHeartBeatPeriodicityChanged+0x3c>)
+ 8003500:	6023      	str	r3, [r4, #0]
+ 8003502:	480c      	ldr	r0, [pc, #48]	; (8003534 <OnYunhornSTSHeartBeatPeriodicityChanged+0x40>)
+ 8003504:	f010 fd66 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 8003508:	6821      	ldr	r1, [r4, #0]
+ 800350a:	480a      	ldr	r0, [pc, #40]	; (8003534 <OnYunhornSTSHeartBeatPeriodicityChanged+0x40>)
+ 800350c:	f010 fdea 	bl	80140e4 <UTIL_TIMER_SetPeriod>
+ 8003510:	4808      	ldr	r0, [pc, #32]	; (8003534 <OnYunhornSTSHeartBeatPeriodicityChanged+0x40>)
+ 8003512:	f010 fdad 	bl	8014070 <UTIL_TIMER_Start>
+ 8003516:	6823      	ldr	r3, [r4, #0]
+ 8003518:	9300      	str	r3, [sp, #0]
+ 800351a:	2200      	movs	r2, #0
+ 800351c:	4b06      	ldr	r3, [pc, #24]	; (8003538 <OnYunhornSTSHeartBeatPeriodicityChanged+0x44>)
+ 800351e:	4611      	mov	r1, r2
+ 8003520:	2001      	movs	r0, #1
+ 8003522:	f010 fa29 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8003526:	b002      	add	sp, #8
+ 8003528:	bd10      	pop	{r4, pc}
+ 800352a:	bf00      	nop
+ 800352c:	2000000c 	.word	0x2000000c
+ 8003530:	000186a0 	.word	0x000186a0
+ 8003534:	20000db8 	.word	0x20000db8
+ 8003538:	08014891 	.word	0x08014891
+
+0800353c <OnStoreContextRequest>:
+ 800353c:	b538      	push	{r3, r4, r5, lr}
+ 800353e:	4604      	mov	r4, r0
+ 8003540:	460d      	mov	r5, r1
+ 8003542:	4807      	ldr	r0, [pc, #28]	; (8003560 <OnStoreContextRequest+0x24>)
+ 8003544:	f44f 6100 	mov.w	r1, #2048	; 0x800
+ 8003548:	f7fe ff10 	bl	800236c <FLASH_IF_Erase>
+ 800354c:	b930      	cbnz	r0, 800355c <OnStoreContextRequest+0x20>
+ 800354e:	462a      	mov	r2, r5
+ 8003550:	4621      	mov	r1, r4
+ 8003552:	4803      	ldr	r0, [pc, #12]	; (8003560 <OnStoreContextRequest+0x24>)
+ 8003554:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
+ 8003558:	f7fe be0a 	b.w	8002170 <FLASH_IF_Write>
+ 800355c:	bd38      	pop	{r3, r4, r5, pc}
+ 800355e:	bf00      	nop
+ 8003560:	0803f000 	.word	0x0803f000
+
+08003564 <OnRestoreContextRequest>:
+ 8003564:	460a      	mov	r2, r1
+ 8003566:	4901      	ldr	r1, [pc, #4]	; (800356c <OnRestoreContextRequest+0x8>)
+ 8003568:	f7fe bee0 	b.w	800232c <FLASH_IF_Read>
+ 800356c:	0803f000 	.word	0x0803f000
+
+08003570 <StopJoin>:
+ 8003570:	b570      	push	{r4, r5, r6, lr}
+ 8003572:	4816      	ldr	r0, [pc, #88]	; (80035cc <StopJoin+0x5c>)
+ 8003574:	f010 fd2e 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 8003578:	f008 fbf6 	bl	800bd68 <LmHandlerStop>
+ 800357c:	4604      	mov	r4, r0
+ 800357e:	b150      	cbz	r0, 8003596 <StopJoin+0x26>
+ 8003580:	2200      	movs	r2, #0
+ 8003582:	4b13      	ldr	r3, [pc, #76]	; (80035d0 <StopJoin+0x60>)
+ 8003584:	4611      	mov	r1, r2
+ 8003586:	2002      	movs	r0, #2
+ 8003588:	f010 f9f6 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 800358c:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
+ 8003590:	4810      	ldr	r0, [pc, #64]	; (80035d4 <StopJoin+0x64>)
+ 8003592:	f010 bd6d 	b.w	8014070 <UTIL_TIMER_Start>
+ 8003596:	4d10      	ldr	r5, [pc, #64]	; (80035d8 <StopJoin+0x68>)
+ 8003598:	4b10      	ldr	r3, [pc, #64]	; (80035dc <StopJoin+0x6c>)
+ 800359a:	4602      	mov	r2, r0
+ 800359c:	4601      	mov	r1, r0
+ 800359e:	2002      	movs	r0, #2
+ 80035a0:	f010 f9ea 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 80035a4:	2601      	movs	r6, #1
+ 80035a6:	4b0e      	ldr	r3, [pc, #56]	; (80035e0 <StopJoin+0x70>)
+ 80035a8:	702e      	strb	r6, [r5, #0]
+ 80035aa:	4622      	mov	r2, r4
+ 80035ac:	4621      	mov	r1, r4
+ 80035ae:	2002      	movs	r0, #2
+ 80035b0:	f010 f9e2 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 80035b4:	480b      	ldr	r0, [pc, #44]	; (80035e4 <StopJoin+0x74>)
+ 80035b6:	f008 fa7b 	bl	800bab0 <LmHandlerConfigure>
+ 80035ba:	7828      	ldrb	r0, [r5, #0]
+ 80035bc:	4631      	mov	r1, r6
+ 80035be:	f008 f8a5 	bl	800b70c <LmHandlerJoin>
+ 80035c2:	4802      	ldr	r0, [pc, #8]	; (80035cc <StopJoin+0x5c>)
+ 80035c4:	f010 fd54 	bl	8014070 <UTIL_TIMER_Start>
+ 80035c8:	e7e0      	b.n	800358c <StopJoin+0x1c>
+ 80035ca:	bf00      	nop
+ 80035cc:	20000da0 	.word	0x20000da0
+ 80035d0:	080148cd 	.word	0x080148cd
+ 80035d4:	20000d70 	.word	0x20000d70
+ 80035d8:	20000000 	.word	0x20000000
+ 80035dc:	080148eb 	.word	0x080148eb
+ 80035e0:	080148ff 	.word	0x080148ff
+ 80035e4:	2000005c 	.word	0x2000005c
+
+080035e8 <SendTxData>:
+ 80035e8:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
+ 80035ec:	b08f      	sub	sp, #60	; 0x3c
+ 80035ee:	f7ff fa55 	bl	8002a9c <GetBatteryLevel>
+ 80035f2:	f8df 81fc 	ldr.w	r8, [pc, #508]	; 80037f0 <SendTxData+0x208>
+ 80035f6:	4e7f      	ldr	r6, [pc, #508]	; (80037f4 <SendTxData+0x20c>)
+ 80035f8:	4f7f      	ldr	r7, [pc, #508]	; (80037f8 <SendTxData+0x210>)
+ 80035fa:	4604      	mov	r4, r0
+ 80035fc:	f7fe fc90 	bl	8001f20 <SYS_GetBatteryLevel>
+ 8003600:	f898 3000 	ldrb.w	r3, [r8]
+ 8003604:	7832      	ldrb	r2, [r6, #0]
+ 8003606:	7839      	ldrb	r1, [r7, #0]
+ 8003608:	9300      	str	r3, [sp, #0]
+ 800360a:	e9cd 2101 	strd	r2, r1, [sp, #4]
+ 800360e:	4b7b      	ldr	r3, [pc, #492]	; (80037fc <SendTxData+0x214>)
+ 8003610:	4681      	mov	r9, r0
+ 8003612:	2201      	movs	r2, #1
+ 8003614:	2100      	movs	r1, #0
+ 8003616:	2003      	movs	r0, #3
+ 8003618:	f010 f9ae 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 800361c:	2201      	movs	r2, #1
+ 800361e:	4b78      	ldr	r3, [pc, #480]	; (8003800 <SendTxData+0x218>)
+ 8003620:	f8cd 9000 	str.w	r9, [sp]
+ 8003624:	2100      	movs	r1, #0
+ 8003626:	4610      	mov	r0, r2
+ 8003628:	f010 f9a6 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 800362c:	f008 f8de 	bl	800b7ec <LmHandlerIsBusy>
+ 8003630:	4605      	mov	r5, r0
+ 8003632:	b188      	cbz	r0, 8003658 <SendTxData+0x70>
+ 8003634:	2400      	movs	r4, #0
+ 8003636:	4873      	ldr	r0, [pc, #460]	; (8003804 <SendTxData+0x21c>)
+ 8003638:	f010 fccc 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 800363c:	4b72      	ldr	r3, [pc, #456]	; (8003808 <SendTxData+0x220>)
+ 800363e:	4871      	ldr	r0, [pc, #452]	; (8003804 <SendTxData+0x21c>)
+ 8003640:	6819      	ldr	r1, [r3, #0]
+ 8003642:	42a1      	cmp	r1, r4
+ 8003644:	bf38      	it	cc
+ 8003646:	4621      	movcc	r1, r4
+ 8003648:	f010 fd4c 	bl	80140e4 <UTIL_TIMER_SetPeriod>
+ 800364c:	486d      	ldr	r0, [pc, #436]	; (8003804 <SendTxData+0x21c>)
+ 800364e:	f010 fd0f 	bl	8014070 <UTIL_TIMER_Start>
+ 8003652:	b00f      	add	sp, #60	; 0x3c
+ 8003654:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
+ 8003658:	2201      	movs	r2, #1
+ 800365a:	2104      	movs	r1, #4
+ 800365c:	486b      	ldr	r0, [pc, #428]	; (800380c <SendTxData+0x224>)
+ 800365e:	f005 f89b 	bl	8008798 <HAL_GPIO_WritePin>
+ 8003662:	f7ff fe21 	bl	80032a8 <STS_YunhornSTSEventP6_Process>
+ 8003666:	20c8      	movs	r0, #200	; 0xc8
+ 8003668:	f7ff fa9a 	bl	8002ba0 <HAL_Delay>
+ 800366c:	f7ff fe08 	bl	8003280 <STS_YunhornSTSEventP4_Process>
+ 8003670:	462a      	mov	r2, r5
+ 8003672:	2104      	movs	r1, #4
+ 8003674:	4865      	ldr	r0, [pc, #404]	; (800380c <SendTxData+0x224>)
+ 8003676:	f005 f88f 	bl	8008798 <HAL_GPIO_WritePin>
+ 800367a:	20c8      	movs	r0, #200	; 0xc8
+ 800367c:	f7ff fa90 	bl	8002ba0 <HAL_Delay>
+ 8003680:	2201      	movs	r2, #1
+ 8003682:	4862      	ldr	r0, [pc, #392]	; (800380c <SendTxData+0x224>)
+ 8003684:	2104      	movs	r1, #4
+ 8003686:	f005 f887 	bl	8008798 <HAL_GPIO_WritePin>
+ 800368a:	4629      	mov	r1, r5
+ 800368c:	f44f 7080 	mov.w	r0, #256	; 0x100
+ 8003690:	f010 fa86 	bl	8013ba0 <UTIL_SEQ_SetTask>
+ 8003694:	2104      	movs	r1, #4
+ 8003696:	462a      	mov	r2, r5
+ 8003698:	485c      	ldr	r0, [pc, #368]	; (800380c <SendTxData+0x224>)
+ 800369a:	f005 f87d 	bl	8008798 <HAL_GPIO_WritePin>
+ 800369e:	a804      	add	r0, sp, #16
+ 80036a0:	f001 f9e0 	bl	8004a64 <STS_R0_SENSOR_Read>
+ 80036a4:	b223      	sxth	r3, r4
+ 80036a6:	eb03 0343 	add.w	r3, r3, r3, lsl #1
+ 80036aa:	4c59      	ldr	r4, [pc, #356]	; (8003810 <SendTxData+0x228>)
+ 80036ac:	f8ad 9012 	strh.w	r9, [sp, #18]
+ 80036b0:	a808      	add	r0, sp, #32
+ 80036b2:	22fe      	movs	r2, #254	; 0xfe
+ 80036b4:	eb03 1343 	add.w	r3, r3, r3, lsl #5
+ 80036b8:	fbb3 f3f2 	udiv	r3, r3, r2
+ 80036bc:	f88d 301c 	strb.w	r3, [sp, #28]
+ 80036c0:	f7ff fadc 	bl	8002c7c <EnvSensors_Read>
+ 80036c4:	230a      	movs	r3, #10
+ 80036c6:	4a53      	ldr	r2, [pc, #332]	; (8003814 <SendTxData+0x22c>)
+ 80036c8:	7023      	strb	r3, [r4, #0]
+ 80036ca:	6863      	ldr	r3, [r4, #4]
+ 80036cc:	7812      	ldrb	r2, [r2, #0]
+ 80036ce:	701a      	strb	r2, [r3, #0]
+ 80036d0:	6863      	ldr	r3, [r4, #4]
+ 80036d2:	705d      	strb	r5, [r3, #1]
+ 80036d4:	6863      	ldr	r3, [r4, #4]
+ 80036d6:	2210      	movs	r2, #16
+ 80036d8:	709a      	strb	r2, [r3, #2]
+ 80036da:	6863      	ldr	r3, [r4, #4]
+ 80036dc:	2201      	movs	r2, #1
+ 80036de:	70da      	strb	r2, [r3, #3]
+ 80036e0:	6861      	ldr	r1, [r4, #4]
+ 80036e2:	f89d 301c 	ldrb.w	r3, [sp, #28]
+ 80036e6:	710b      	strb	r3, [r1, #4]
+ 80036e8:	f898 1000 	ldrb.w	r1, [r8]
+ 80036ec:	b1a1      	cbz	r1, 8003718 <SendTxData+0x130>
+ 80036ee:	210b      	movs	r1, #11
+ 80036f0:	7021      	strb	r1, [r4, #0]
+ 80036f2:	9303      	str	r3, [sp, #12]
+ 80036f4:	f8bd 301a 	ldrh.w	r3, [sp, #26]
+ 80036f8:	9302      	str	r3, [sp, #8]
+ 80036fa:	f8bd 3018 	ldrh.w	r3, [sp, #24]
+ 80036fe:	9301      	str	r3, [sp, #4]
+ 8003700:	f8bd 3010 	ldrh.w	r3, [sp, #16]
+ 8003704:	9300      	str	r3, [sp, #0]
+ 8003706:	4629      	mov	r1, r5
+ 8003708:	4b43      	ldr	r3, [pc, #268]	; (8003818 <SendTxData+0x230>)
+ 800370a:	f888 5000 	strb.w	r5, [r8]
+ 800370e:	2003      	movs	r0, #3
+ 8003710:	f010 f932 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8003714:	2305      	movs	r3, #5
+ 8003716:	e036      	b.n	8003786 <SendTxData+0x19e>
+ 8003718:	7833      	ldrb	r3, [r6, #0]
+ 800371a:	b913      	cbnz	r3, 8003722 <SendTxData+0x13a>
+ 800371c:	783b      	ldrb	r3, [r7, #0]
+ 800371e:	2b00      	cmp	r3, #0
+ 8003720:	d0f8      	beq.n	8003714 <SendTxData+0x12c>
+ 8003722:	f8bd 2010 	ldrh.w	r2, [sp, #16]
+ 8003726:	6863      	ldr	r3, [r4, #4]
+ 8003728:	0a10      	lsrs	r0, r2, #8
+ 800372a:	7158      	strb	r0, [r3, #5]
+ 800372c:	6863      	ldr	r3, [r4, #4]
+ 800372e:	719a      	strb	r2, [r3, #6]
+ 8003730:	f8bd 3018 	ldrh.w	r3, [sp, #24]
+ 8003734:	6860      	ldr	r0, [r4, #4]
+ 8003736:	0a1b      	lsrs	r3, r3, #8
+ 8003738:	71c3      	strb	r3, [r0, #7]
+ 800373a:	6863      	ldr	r3, [r4, #4]
+ 800373c:	f8bd 0018 	ldrh.w	r0, [sp, #24]
+ 8003740:	7218      	strb	r0, [r3, #8]
+ 8003742:	f8bd 001a 	ldrh.w	r0, [sp, #26]
+ 8003746:	0a00      	lsrs	r0, r0, #8
+ 8003748:	7258      	strb	r0, [r3, #9]
+ 800374a:	f8bd 001a 	ldrh.w	r0, [sp, #26]
+ 800374e:	7298      	strb	r0, [r3, #10]
+ 8003750:	2100      	movs	r1, #0
+ 8003752:	4832      	ldr	r0, [pc, #200]	; (800381c <SendTxData+0x234>)
+ 8003754:	7039      	strb	r1, [r7, #0]
+ 8003756:	7031      	strb	r1, [r6, #0]
+ 8003758:	7800      	ldrb	r0, [r0, #0]
+ 800375a:	72d8      	strb	r0, [r3, #11]
+ 800375c:	f8bd 0012 	ldrh.w	r0, [sp, #18]
+ 8003760:	7358      	strb	r0, [r3, #13]
+ 8003762:	0a05      	lsrs	r5, r0, #8
+ 8003764:	731d      	strb	r5, [r3, #12]
+ 8003766:	f89d 301c 	ldrb.w	r3, [sp, #28]
+ 800376a:	9303      	str	r3, [sp, #12]
+ 800376c:	f8bd 301a 	ldrh.w	r3, [sp, #26]
+ 8003770:	9302      	str	r3, [sp, #8]
+ 8003772:	f8bd 3018 	ldrh.w	r3, [sp, #24]
+ 8003776:	2003      	movs	r0, #3
+ 8003778:	e9cd 2300 	strd	r2, r3, [sp]
+ 800377c:	4b26      	ldr	r3, [pc, #152]	; (8003818 <SendTxData+0x230>)
+ 800377e:	2201      	movs	r2, #1
+ 8003780:	f010 f8fa 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8003784:	230e      	movs	r3, #14
+ 8003786:	4a26      	ldr	r2, [pc, #152]	; (8003820 <SendTxData+0x238>)
+ 8003788:	7812      	ldrb	r2, [r2, #0]
+ 800378a:	2a01      	cmp	r2, #1
+ 800378c:	bf88      	it	hi
+ 800378e:	2300      	movhi	r3, #0
+ 8003790:	7063      	strb	r3, [r4, #1]
+ 8003792:	4c24      	ldr	r4, [pc, #144]	; (8003824 <SendTxData+0x23c>)
+ 8003794:	7a63      	ldrb	r3, [r4, #9]
+ 8003796:	b133      	cbz	r3, 80037a6 <SendTxData+0x1be>
+ 8003798:	f007 ff5a 	bl	800b650 <LmHandlerJoinStatus>
+ 800379c:	2801      	cmp	r0, #1
+ 800379e:	d102      	bne.n	80037a6 <SendTxData+0x1be>
+ 80037a0:	4620      	mov	r0, r4
+ 80037a2:	f010 fc17 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 80037a6:	4b20      	ldr	r3, [pc, #128]	; (8003828 <SendTxData+0x240>)
+ 80037a8:	4819      	ldr	r0, [pc, #100]	; (8003810 <SendTxData+0x228>)
+ 80037aa:	78d9      	ldrb	r1, [r3, #3]
+ 80037ac:	2200      	movs	r2, #0
+ 80037ae:	f008 f83b 	bl	800b828 <LmHandlerSend>
+ 80037b2:	4604      	mov	r4, r0
+ 80037b4:	b930      	cbnz	r0, 80037c4 <SendTxData+0x1dc>
+ 80037b6:	4601      	mov	r1, r0
+ 80037b8:	4b1c      	ldr	r3, [pc, #112]	; (800382c <SendTxData+0x244>)
+ 80037ba:	2201      	movs	r2, #1
+ 80037bc:	2002      	movs	r0, #2
+ 80037be:	f010 f8db 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 80037c2:	e738      	b.n	8003636 <SendTxData+0x4e>
+ 80037c4:	3406      	adds	r4, #6
+ 80037c6:	f47f af35 	bne.w	8003634 <SendTxData+0x4c>
+ 80037ca:	f007 ff3b 	bl	800b644 <LmHandlerGetDutyCycleWaitTime>
+ 80037ce:	4604      	mov	r4, r0
+ 80037d0:	2800      	cmp	r0, #0
+ 80037d2:	f43f af30 	beq.w	8003636 <SendTxData+0x4e>
+ 80037d6:	2201      	movs	r2, #1
+ 80037d8:	f44f 737a 	mov.w	r3, #1000	; 0x3e8
+ 80037dc:	2100      	movs	r1, #0
+ 80037de:	fbb0 f3f3 	udiv	r3, r0, r3
+ 80037e2:	4610      	mov	r0, r2
+ 80037e4:	9300      	str	r3, [sp, #0]
+ 80037e6:	4b12      	ldr	r3, [pc, #72]	; (8003830 <SendTxData+0x248>)
+ 80037e8:	f010 f8c6 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 80037ec:	e723      	b.n	8003636 <SendTxData+0x4e>
+ 80037ee:	bf00      	nop
+ 80037f0:	20000dd0 	.word	0x20000dd0
+ 80037f4:	20000e67 	.word	0x20000e67
+ 80037f8:	20000e51 	.word	0x20000e51
+ 80037fc:	0801491e 	.word	0x0801491e
+ 8003800:	0801497a 	.word	0x0801497a
+ 8003804:	20000da0 	.word	0x20000da0
+ 8003808:	20000074 	.word	0x20000074
+ 800380c:	48000400 	.word	0x48000400
+ 8003810:	20000004 	.word	0x20000004
+ 8003814:	20000d38 	.word	0x20000d38
+ 8003818:	0801498d 	.word	0x0801498d
+ 800381c:	20000c45 	.word	0x20000c45
+ 8003820:	20000c44 	.word	0x20000c44
+ 8003824:	20000d3c 	.word	0x20000d3c
+ 8003828:	2000005c 	.word	0x2000005c
+ 800382c:	08014a14 	.word	0x08014a14
+ 8003830:	08014a23 	.word	0x08014a23
+
+08003834 <OnBeaconStatusChange>:
+ 8003834:	b500      	push	{lr}
+ 8003836:	4603      	mov	r3, r0
+ 8003838:	b08d      	sub	sp, #52	; 0x34
+ 800383a:	2800      	cmp	r0, #0
+ 800383c:	d02c      	beq.n	8003898 <OnBeaconStatusChange+0x64>
+ 800383e:	7840      	ldrb	r0, [r0, #1]
+ 8003840:	2802      	cmp	r0, #2
+ 8003842:	d00a      	beq.n	800385a <OnBeaconStatusChange+0x26>
+ 8003844:	2803      	cmp	r0, #3
+ 8003846:	d02a      	beq.n	800389e <OnBeaconStatusChange+0x6a>
+ 8003848:	4b16      	ldr	r3, [pc, #88]	; (80038a4 <OnBeaconStatusChange+0x70>)
+ 800384a:	2200      	movs	r2, #0
+ 800384c:	4611      	mov	r1, r2
+ 800384e:	2002      	movs	r0, #2
+ 8003850:	b00d      	add	sp, #52	; 0x34
+ 8003852:	f85d eb04 	ldr.w	lr, [sp], #4
+ 8003856:	f010 b88f 	b.w	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 800385a:	7eda      	ldrb	r2, [r3, #27]
+ 800385c:	920b      	str	r2, [sp, #44]	; 0x2c
+ 800385e:	7e9a      	ldrb	r2, [r3, #26]
+ 8003860:	920a      	str	r2, [sp, #40]	; 0x28
+ 8003862:	7e5a      	ldrb	r2, [r3, #25]
+ 8003864:	9209      	str	r2, [sp, #36]	; 0x24
+ 8003866:	7e1a      	ldrb	r2, [r3, #24]
+ 8003868:	9208      	str	r2, [sp, #32]
+ 800386a:	7dda      	ldrb	r2, [r3, #23]
+ 800386c:	9207      	str	r2, [sp, #28]
+ 800386e:	7d9a      	ldrb	r2, [r3, #22]
+ 8003870:	9206      	str	r2, [sp, #24]
+ 8003872:	7d5a      	ldrb	r2, [r3, #21]
+ 8003874:	9205      	str	r2, [sp, #20]
+ 8003876:	685a      	ldr	r2, [r3, #4]
+ 8003878:	9204      	str	r2, [sp, #16]
+ 800387a:	68da      	ldr	r2, [r3, #12]
+ 800387c:	9203      	str	r2, [sp, #12]
+ 800387e:	f993 2014 	ldrsb.w	r2, [r3, #20]
+ 8003882:	9202      	str	r2, [sp, #8]
+ 8003884:	f9b3 2012 	ldrsh.w	r2, [r3, #18]
+ 8003888:	9201      	str	r2, [sp, #4]
+ 800388a:	7c1b      	ldrb	r3, [r3, #16]
+ 800388c:	9300      	str	r3, [sp, #0]
+ 800388e:	2200      	movs	r2, #0
+ 8003890:	4b05      	ldr	r3, [pc, #20]	; (80038a8 <OnBeaconStatusChange+0x74>)
+ 8003892:	4611      	mov	r1, r2
+ 8003894:	f010 f870 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8003898:	b00d      	add	sp, #52	; 0x34
+ 800389a:	f85d fb04 	ldr.w	pc, [sp], #4
+ 800389e:	4b03      	ldr	r3, [pc, #12]	; (80038ac <OnBeaconStatusChange+0x78>)
+ 80038a0:	e7d3      	b.n	800384a <OnBeaconStatusChange+0x16>
+ 80038a2:	bf00      	nop
+ 80038a4:	08014a41 	.word	0x08014a41
+ 80038a8:	08014a58 	.word	0x08014a58
+ 80038ac:	08014aca 	.word	0x08014aca
+
+080038b0 <OnNvmDataChange>:
+ 80038b0:	2801      	cmp	r0, #1
+ 80038b2:	f04f 0200 	mov.w	r2, #0
+ 80038b6:	bf0c      	ite	eq
+ 80038b8:	4b02      	ldreq	r3, [pc, #8]	; (80038c4 <OnNvmDataChange+0x14>)
+ 80038ba:	4b03      	ldrne	r3, [pc, #12]	; (80038c8 <OnNvmDataChange+0x18>)
+ 80038bc:	4611      	mov	r1, r2
+ 80038be:	2002      	movs	r0, #2
+ 80038c0:	f010 b85a 	b.w	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 80038c4:	08014ae9 	.word	0x08014ae9
+ 80038c8:	08014afb 	.word	0x08014afb
+
+080038cc <OnTxData>:
+ 80038cc:	b51f      	push	{r0, r1, r2, r3, r4, lr}
+ 80038ce:	4604      	mov	r4, r0
+ 80038d0:	2800      	cmp	r0, #0
+ 80038d2:	d031      	beq.n	8003938 <OnTxData+0x6c>
+ 80038d4:	7803      	ldrb	r3, [r0, #0]
+ 80038d6:	2b00      	cmp	r3, #0
+ 80038d8:	d02e      	beq.n	8003938 <OnTxData+0x6c>
+ 80038da:	481d      	ldr	r0, [pc, #116]	; (8003950 <OnTxData+0x84>)
+ 80038dc:	f010 fbc8 	bl	8014070 <UTIL_TIMER_Start>
+ 80038e0:	2200      	movs	r2, #0
+ 80038e2:	4611      	mov	r1, r2
+ 80038e4:	4b1b      	ldr	r3, [pc, #108]	; (8003954 <OnTxData+0x88>)
+ 80038e6:	2002      	movs	r0, #2
+ 80038e8:	f010 f846 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 80038ec:	f994 3018 	ldrsb.w	r3, [r4, #24]
+ 80038f0:	9303      	str	r3, [sp, #12]
+ 80038f2:	f994 300a 	ldrsb.w	r3, [r4, #10]
+ 80038f6:	9302      	str	r3, [sp, #8]
+ 80038f8:	7c23      	ldrb	r3, [r4, #16]
+ 80038fa:	9301      	str	r3, [sp, #4]
+ 80038fc:	68e3      	ldr	r3, [r4, #12]
+ 80038fe:	9300      	str	r3, [sp, #0]
+ 8003900:	2200      	movs	r2, #0
+ 8003902:	4611      	mov	r1, r2
+ 8003904:	4b14      	ldr	r3, [pc, #80]	; (8003958 <OnTxData+0x8c>)
+ 8003906:	2003      	movs	r0, #3
+ 8003908:	f010 f836 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 800390c:	2200      	movs	r2, #0
+ 800390e:	4b13      	ldr	r3, [pc, #76]	; (800395c <OnTxData+0x90>)
+ 8003910:	4611      	mov	r1, r2
+ 8003912:	2003      	movs	r0, #3
+ 8003914:	f010 f830 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8003918:	7a23      	ldrb	r3, [r4, #8]
+ 800391a:	2b01      	cmp	r3, #1
+ 800391c:	d10e      	bne.n	800393c <OnTxData+0x70>
+ 800391e:	7a61      	ldrb	r1, [r4, #9]
+ 8003920:	4a0f      	ldr	r2, [pc, #60]	; (8003960 <OnTxData+0x94>)
+ 8003922:	4b10      	ldr	r3, [pc, #64]	; (8003964 <OnTxData+0x98>)
+ 8003924:	2900      	cmp	r1, #0
+ 8003926:	bf08      	it	eq
+ 8003928:	4613      	moveq	r3, r2
+ 800392a:	2200      	movs	r2, #0
+ 800392c:	9300      	str	r3, [sp, #0]
+ 800392e:	4611      	mov	r1, r2
+ 8003930:	4b0d      	ldr	r3, [pc, #52]	; (8003968 <OnTxData+0x9c>)
+ 8003932:	2003      	movs	r0, #3
+ 8003934:	f010 f820 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8003938:	b004      	add	sp, #16
+ 800393a:	bd10      	pop	{r4, pc}
+ 800393c:	2200      	movs	r2, #0
+ 800393e:	4b0b      	ldr	r3, [pc, #44]	; (800396c <OnTxData+0xa0>)
+ 8003940:	4611      	mov	r1, r2
+ 8003942:	2003      	movs	r0, #3
+ 8003944:	b004      	add	sp, #16
+ 8003946:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 800394a:	f010 b815 	b.w	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 800394e:	bf00      	nop
+ 8003950:	20000d88 	.word	0x20000d88
+ 8003954:	08014b14 	.word	0x08014b14
+ 8003958:	08014b45 	.word	0x08014b45
+ 800395c:	08014b76 	.word	0x08014b76
+ 8003960:	08014b0f 	.word	0x08014b0f
+ 8003964:	08014b10 	.word	0x08014b10
+ 8003968:	08014b83 	.word	0x08014b83
+ 800396c:	08014b94 	.word	0x08014b94
+
+08003970 <OnYunhornSTSHeartBeatTimerEvent>:
+ 8003970:	b508      	push	{r3, lr}
+ 8003972:	4b0f      	ldr	r3, [pc, #60]	; (80039b0 <OnYunhornSTSHeartBeatTimerEvent+0x40>)
+ 8003974:	2201      	movs	r2, #1
+ 8003976:	2100      	movs	r1, #0
+ 8003978:	2002      	movs	r0, #2
+ 800397a:	701a      	strb	r2, [r3, #0]
+ 800397c:	f010 f910 	bl	8013ba0 <UTIL_SEQ_SetTask>
+ 8003980:	480c      	ldr	r0, [pc, #48]	; (80039b4 <OnYunhornSTSHeartBeatTimerEvent+0x44>)
+ 8003982:	f010 fb75 	bl	8014070 <UTIL_TIMER_Start>
+ 8003986:	4b0c      	ldr	r3, [pc, #48]	; (80039b8 <OnYunhornSTSHeartBeatTimerEvent+0x48>)
+ 8003988:	781b      	ldrb	r3, [r3, #0]
+ 800398a:	b17b      	cbz	r3, 80039ac <OnYunhornSTSHeartBeatTimerEvent+0x3c>
+ 800398c:	4b0b      	ldr	r3, [pc, #44]	; (80039bc <OnYunhornSTSHeartBeatTimerEvent+0x4c>)
+ 800398e:	781b      	ldrb	r3, [r3, #0]
+ 8003990:	b963      	cbnz	r3, 80039ac <OnYunhornSTSHeartBeatTimerEvent+0x3c>
+ 8003992:	4b0b      	ldr	r3, [pc, #44]	; (80039c0 <OnYunhornSTSHeartBeatTimerEvent+0x50>)
+ 8003994:	681a      	ldr	r2, [r3, #0]
+ 8003996:	2a04      	cmp	r2, #4
+ 8003998:	bf9e      	ittt	ls
+ 800399a:	681a      	ldrls	r2, [r3, #0]
+ 800399c:	3201      	addls	r2, #1
+ 800399e:	601a      	strls	r2, [r3, #0]
+ 80039a0:	2100      	movs	r1, #0
+ 80039a2:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 80039a6:	2010      	movs	r0, #16
+ 80039a8:	f010 b8fa 	b.w	8013ba0 <UTIL_SEQ_SetTask>
+ 80039ac:	bd08      	pop	{r3, pc}
+ 80039ae:	bf00      	nop
+ 80039b0:	20000dd0 	.word	0x20000dd0
+ 80039b4:	20000db8 	.word	0x20000db8
+ 80039b8:	20000d6c 	.word	0x20000d6c
+ 80039bc:	20000e52 	.word	0x20000e52
+ 80039c0:	20000c40 	.word	0x20000c40
+
+080039c4 <OnStopJoinTimerEvent>:
+ 80039c4:	4b04      	ldr	r3, [pc, #16]	; (80039d8 <OnStopJoinTimerEvent+0x14>)
+ 80039c6:	781b      	ldrb	r3, [r3, #0]
+ 80039c8:	2b02      	cmp	r3, #2
+ 80039ca:	d103      	bne.n	80039d4 <OnStopJoinTimerEvent+0x10>
+ 80039cc:	2100      	movs	r1, #0
+ 80039ce:	2008      	movs	r0, #8
+ 80039d0:	f010 b8e6 	b.w	8013ba0 <UTIL_SEQ_SetTask>
+ 80039d4:	4770      	bx	lr
+ 80039d6:	bf00      	nop
+ 80039d8:	20000000 	.word	0x20000000
+
+080039dc <OnSystemReset>:
+ 80039dc:	b508      	push	{r3, lr}
+ 80039de:	f008 f9cc 	bl	800bd7a <LmHandlerHalt>
+ 80039e2:	b980      	cbnz	r0, 8003a06 <OnSystemReset+0x2a>
+ 80039e4:	f007 fe34 	bl	800b650 <LmHandlerJoinStatus>
+ 80039e8:	2801      	cmp	r0, #1
+ 80039ea:	d10c      	bne.n	8003a06 <OnSystemReset+0x2a>
+ 80039ec:	f3bf 8f4f 	dsb	sy
+ 80039f0:	4905      	ldr	r1, [pc, #20]	; (8003a08 <OnSystemReset+0x2c>)
+ 80039f2:	4b06      	ldr	r3, [pc, #24]	; (8003a0c <OnSystemReset+0x30>)
+ 80039f4:	68ca      	ldr	r2, [r1, #12]
+ 80039f6:	f402 62e0 	and.w	r2, r2, #1792	; 0x700
+ 80039fa:	4313      	orrs	r3, r2
+ 80039fc:	60cb      	str	r3, [r1, #12]
+ 80039fe:	f3bf 8f4f 	dsb	sy
+ 8003a02:	bf00      	nop
+ 8003a04:	e7fd      	b.n	8003a02 <OnSystemReset+0x26>
+ 8003a06:	bd08      	pop	{r3, pc}
+ 8003a08:	e000ed00 	.word	0xe000ed00
+ 8003a0c:	05fa0004 	.word	0x05fa0004
+
+08003a10 <StoreContext>:
+ 8003a10:	b510      	push	{r4, lr}
+ 8003a12:	f008 fa47 	bl	800bea4 <LmHandlerNvmDataStore>
+ 8003a16:	f110 0f08 	cmn.w	r0, #8
+ 8003a1a:	d107      	bne.n	8003a2c <StoreContext+0x1c>
+ 8003a1c:	4b06      	ldr	r3, [pc, #24]	; (8003a38 <StoreContext+0x28>)
+ 8003a1e:	2200      	movs	r2, #0
+ 8003a20:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8003a24:	4611      	mov	r1, r2
+ 8003a26:	2002      	movs	r0, #2
+ 8003a28:	f00f bfa6 	b.w	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8003a2c:	3001      	adds	r0, #1
+ 8003a2e:	d101      	bne.n	8003a34 <StoreContext+0x24>
+ 8003a30:	4b02      	ldr	r3, [pc, #8]	; (8003a3c <StoreContext+0x2c>)
+ 8003a32:	e7f4      	b.n	8003a1e <StoreContext+0xe>
+ 8003a34:	bd10      	pop	{r4, pc}
+ 8003a36:	bf00      	nop
+ 8003a38:	08014ba2 	.word	0x08014ba2
+ 8003a3c:	08014bb8 	.word	0x08014bb8
+
+08003a40 <OnJoinTimerLedEvent>:
+ 8003a40:	4770      	bx	lr
+
+08003a42 <OnRxTimerLedEvent>:
+ 8003a42:	4770      	bx	lr
+
+08003a44 <HAL_GPIO_EXTI_Callback>:
+ 8003a44:	2802      	cmp	r0, #2
+ 8003a46:	b513      	push	{r0, r1, r4, lr}
+ 8003a48:	4604      	mov	r4, r0
+ 8003a4a:	d018      	beq.n	8003a7e <HAL_GPIO_EXTI_Callback+0x3a>
+ 8003a4c:	2820      	cmp	r0, #32
+ 8003a4e:	d019      	beq.n	8003a84 <HAL_GPIO_EXTI_Callback+0x40>
+ 8003a50:	2801      	cmp	r0, #1
+ 8003a52:	d11a      	bne.n	8003a8a <HAL_GPIO_EXTI_Callback+0x46>
+ 8003a54:	4b0e      	ldr	r3, [pc, #56]	; (8003a90 <HAL_GPIO_EXTI_Callback+0x4c>)
+ 8003a56:	4601      	mov	r1, r0
+ 8003a58:	7018      	strb	r0, [r3, #0]
+ 8003a5a:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8003a5e:	f004 fe95 	bl	800878c <HAL_GPIO_ReadPin>
+ 8003a62:	2200      	movs	r2, #0
+ 8003a64:	9000      	str	r0, [sp, #0]
+ 8003a66:	4611      	mov	r1, r2
+ 8003a68:	4b0a      	ldr	r3, [pc, #40]	; (8003a94 <HAL_GPIO_EXTI_Callback+0x50>)
+ 8003a6a:	4620      	mov	r0, r4
+ 8003a6c:	f00f ff84 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8003a70:	2100      	movs	r1, #0
+ 8003a72:	2002      	movs	r0, #2
+ 8003a74:	b002      	add	sp, #8
+ 8003a76:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8003a7a:	f010 b891 	b.w	8013ba0 <UTIL_SEQ_SetTask>
+ 8003a7e:	2100      	movs	r1, #0
+ 8003a80:	2008      	movs	r0, #8
+ 8003a82:	e7f7      	b.n	8003a74 <HAL_GPIO_EXTI_Callback+0x30>
+ 8003a84:	4b04      	ldr	r3, [pc, #16]	; (8003a98 <HAL_GPIO_EXTI_Callback+0x54>)
+ 8003a86:	2201      	movs	r2, #1
+ 8003a88:	701a      	strb	r2, [r3, #0]
+ 8003a8a:	b002      	add	sp, #8
+ 8003a8c:	bd10      	pop	{r4, pc}
+ 8003a8e:	bf00      	nop
+ 8003a90:	20000e51 	.word	0x20000e51
+ 8003a94:	08014bd0 	.word	0x08014bd0
+ 8003a98:	20000ecc 	.word	0x20000ecc
+
+08003a9c <STS_SENSOR_Upload_Message>:
+ 8003a9c:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 8003a9e:	4605      	mov	r5, r0
+ 8003aa0:	460c      	mov	r4, r1
+ 8003aa2:	4616      	mov	r6, r2
+ 8003aa4:	f007 fea2 	bl	800b7ec <LmHandlerIsBusy>
+ 8003aa8:	4603      	mov	r3, r0
+ 8003aaa:	2800      	cmp	r0, #0
+ 8003aac:	d038      	beq.n	8003b20 <STS_SENSOR_Upload_Message+0x84>
+ 8003aae:	2400      	movs	r4, #0
+ 8003ab0:	4826      	ldr	r0, [pc, #152]	; (8003b4c <STS_SENSOR_Upload_Message+0xb0>)
+ 8003ab2:	f010 fa8f 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 8003ab6:	4b26      	ldr	r3, [pc, #152]	; (8003b50 <STS_SENSOR_Upload_Message+0xb4>)
+ 8003ab8:	4824      	ldr	r0, [pc, #144]	; (8003b4c <STS_SENSOR_Upload_Message+0xb0>)
+ 8003aba:	6819      	ldr	r1, [r3, #0]
+ 8003abc:	42a1      	cmp	r1, r4
+ 8003abe:	bf38      	it	cc
+ 8003ac0:	4621      	movcc	r1, r4
+ 8003ac2:	f010 fb0f 	bl	80140e4 <UTIL_TIMER_SetPeriod>
+ 8003ac6:	4821      	ldr	r0, [pc, #132]	; (8003b4c <STS_SENSOR_Upload_Message+0xb0>)
+ 8003ac8:	b002      	add	sp, #8
+ 8003aca:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
+ 8003ace:	f010 bacf 	b.w	8014070 <UTIL_TIMER_Start>
+ 8003ad2:	684a      	ldr	r2, [r1, #4]
+ 8003ad4:	5cf0      	ldrb	r0, [r6, r3]
+ 8003ad6:	54d0      	strb	r0, [r2, r3]
+ 8003ad8:	3301      	adds	r3, #1
+ 8003ada:	b2da      	uxtb	r2, r3
+ 8003adc:	42a2      	cmp	r2, r4
+ 8003ade:	d3f8      	bcc.n	8003ad2 <STS_SENSOR_Upload_Message+0x36>
+ 8003ae0:	4b1c      	ldr	r3, [pc, #112]	; (8003b54 <STS_SENSOR_Upload_Message+0xb8>)
+ 8003ae2:	700d      	strb	r5, [r1, #0]
+ 8003ae4:	781b      	ldrb	r3, [r3, #0]
+ 8003ae6:	2b01      	cmp	r3, #1
+ 8003ae8:	bf88      	it	hi
+ 8003aea:	2400      	movhi	r4, #0
+ 8003aec:	704c      	strb	r4, [r1, #1]
+ 8003aee:	4c1a      	ldr	r4, [pc, #104]	; (8003b58 <STS_SENSOR_Upload_Message+0xbc>)
+ 8003af0:	7a63      	ldrb	r3, [r4, #9]
+ 8003af2:	b133      	cbz	r3, 8003b02 <STS_SENSOR_Upload_Message+0x66>
+ 8003af4:	f007 fdac 	bl	800b650 <LmHandlerJoinStatus>
+ 8003af8:	2801      	cmp	r0, #1
+ 8003afa:	d102      	bne.n	8003b02 <STS_SENSOR_Upload_Message+0x66>
+ 8003afc:	4620      	mov	r0, r4
+ 8003afe:	f010 fa69 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 8003b02:	4b16      	ldr	r3, [pc, #88]	; (8003b5c <STS_SENSOR_Upload_Message+0xc0>)
+ 8003b04:	4816      	ldr	r0, [pc, #88]	; (8003b60 <STS_SENSOR_Upload_Message+0xc4>)
+ 8003b06:	78d9      	ldrb	r1, [r3, #3]
+ 8003b08:	2200      	movs	r2, #0
+ 8003b0a:	f007 fe8d 	bl	800b828 <LmHandlerSend>
+ 8003b0e:	4604      	mov	r4, r0
+ 8003b10:	b940      	cbnz	r0, 8003b24 <STS_SENSOR_Upload_Message+0x88>
+ 8003b12:	2201      	movs	r2, #1
+ 8003b14:	4601      	mov	r1, r0
+ 8003b16:	4b13      	ldr	r3, [pc, #76]	; (8003b64 <STS_SENSOR_Upload_Message+0xc8>)
+ 8003b18:	4610      	mov	r0, r2
+ 8003b1a:	f00f ff2d 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8003b1e:	e7c7      	b.n	8003ab0 <STS_SENSOR_Upload_Message+0x14>
+ 8003b20:	490f      	ldr	r1, [pc, #60]	; (8003b60 <STS_SENSOR_Upload_Message+0xc4>)
+ 8003b22:	e7da      	b.n	8003ada <STS_SENSOR_Upload_Message+0x3e>
+ 8003b24:	3406      	adds	r4, #6
+ 8003b26:	d1c2      	bne.n	8003aae <STS_SENSOR_Upload_Message+0x12>
+ 8003b28:	f007 fd8c 	bl	800b644 <LmHandlerGetDutyCycleWaitTime>
+ 8003b2c:	4604      	mov	r4, r0
+ 8003b2e:	2800      	cmp	r0, #0
+ 8003b30:	d0be      	beq.n	8003ab0 <STS_SENSOR_Upload_Message+0x14>
+ 8003b32:	2201      	movs	r2, #1
+ 8003b34:	f44f 737a 	mov.w	r3, #1000	; 0x3e8
+ 8003b38:	2100      	movs	r1, #0
+ 8003b3a:	fbb0 f3f3 	udiv	r3, r0, r3
+ 8003b3e:	4610      	mov	r0, r2
+ 8003b40:	9300      	str	r3, [sp, #0]
+ 8003b42:	4b09      	ldr	r3, [pc, #36]	; (8003b68 <STS_SENSOR_Upload_Message+0xcc>)
+ 8003b44:	f00f ff18 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8003b48:	e7b2      	b.n	8003ab0 <STS_SENSOR_Upload_Message+0x14>
+ 8003b4a:	bf00      	nop
+ 8003b4c:	20000da0 	.word	0x20000da0
+ 8003b50:	20000074 	.word	0x20000074
+ 8003b54:	20000c44 	.word	0x20000c44
+ 8003b58:	20000d3c 	.word	0x20000d3c
+ 8003b5c:	2000005c 	.word	0x2000005c
+ 8003b60:	20000004 	.word	0x20000004
+ 8003b64:	08014a14 	.word	0x08014a14
+ 8003b68:	08014a23 	.word	0x08014a23
+
+08003b6c <STS_SENSOR_Upload_Config_Invalid_Message>:
+ 8003b6c:	4b04      	ldr	r3, [pc, #16]	; (8003b80 <STS_SENSOR_Upload_Config_Invalid_Message+0x14>)
+ 8003b6e:	781b      	ldrb	r3, [r3, #0]
+ 8003b70:	b923      	cbnz	r3, 8003b7c <STS_SENSOR_Upload_Config_Invalid_Message+0x10>
+ 8003b72:	4a04      	ldr	r2, [pc, #16]	; (8003b84 <STS_SENSOR_Upload_Config_Invalid_Message+0x18>)
+ 8003b74:	2105      	movs	r1, #5
+ 8003b76:	2001      	movs	r0, #1
+ 8003b78:	f7ff bf90 	b.w	8003a9c <STS_SENSOR_Upload_Message>
+ 8003b7c:	4770      	bx	lr
+ 8003b7e:	bf00      	nop
+ 8003b80:	20000c44 	.word	0x20000c44
+ 8003b84:	08014c11 	.word	0x08014c11
+
+08003b88 <OnStoreSTSCFGContextRequest>:
+ 8003b88:	b510      	push	{r4, lr}
+ 8003b8a:	2400      	movs	r4, #0
+ 8003b8c:	b090      	sub	sp, #64	; 0x40
+ 8003b8e:	223c      	movs	r2, #60	; 0x3c
+ 8003b90:	4621      	mov	r1, r4
+ 8003b92:	a801      	add	r0, sp, #4
+ 8003b94:	9400      	str	r4, [sp, #0]
+ 8003b96:	f010 fc2f 	bl	80143f8 <memset>
+ 8003b9a:	4b2c      	ldr	r3, [pc, #176]	; (8003c4c <OnStoreSTSCFGContextRequest+0xc4>)
+ 8003b9c:	2220      	movs	r2, #32
+ 8003b9e:	72da      	strb	r2, [r3, #11]
+ 8003ba0:	7819      	ldrb	r1, [r3, #0]
+ 8003ba2:	f88d 1000 	strb.w	r1, [sp]
+ 8003ba6:	7859      	ldrb	r1, [r3, #1]
+ 8003ba8:	f88d 1001 	strb.w	r1, [sp, #1]
+ 8003bac:	7899      	ldrb	r1, [r3, #2]
+ 8003bae:	f88d 1002 	strb.w	r1, [sp, #2]
+ 8003bb2:	78d9      	ldrb	r1, [r3, #3]
+ 8003bb4:	f88d 1003 	strb.w	r1, [sp, #3]
+ 8003bb8:	7919      	ldrb	r1, [r3, #4]
+ 8003bba:	f88d 1004 	strb.w	r1, [sp, #4]
+ 8003bbe:	7959      	ldrb	r1, [r3, #5]
+ 8003bc0:	f88d 1005 	strb.w	r1, [sp, #5]
+ 8003bc4:	7999      	ldrb	r1, [r3, #6]
+ 8003bc6:	f88d 1006 	strb.w	r1, [sp, #6]
+ 8003bca:	79d9      	ldrb	r1, [r3, #7]
+ 8003bcc:	f88d 1007 	strb.w	r1, [sp, #7]
+ 8003bd0:	7a19      	ldrb	r1, [r3, #8]
+ 8003bd2:	f88d 1008 	strb.w	r1, [sp, #8]
+ 8003bd6:	7a59      	ldrb	r1, [r3, #9]
+ 8003bd8:	f88d 1009 	strb.w	r1, [sp, #9]
+ 8003bdc:	7a99      	ldrb	r1, [r3, #10]
+ 8003bde:	f88d 100a 	strb.w	r1, [sp, #10]
+ 8003be2:	f88d 200b 	strb.w	r2, [sp, #11]
+ 8003be6:	4621      	mov	r1, r4
+ 8003be8:	f10d 020b 	add.w	r2, sp, #11
+ 8003bec:	1858      	adds	r0, r3, r1
+ 8003bee:	3101      	adds	r1, #1
+ 8003bf0:	7b00      	ldrb	r0, [r0, #12]
+ 8003bf2:	f802 0f01 	strb.w	r0, [r2, #1]!
+ 8003bf6:	291c      	cmp	r1, #28
+ 8003bf8:	d1f8      	bne.n	8003bec <OnStoreSTSCFGContextRequest+0x64>
+ 8003bfa:	f893 2028 	ldrb.w	r2, [r3, #40]	; 0x28
+ 8003bfe:	f88d 2028 	strb.w	r2, [sp, #40]	; 0x28
+ 8003c02:	f893 2029 	ldrb.w	r2, [r3, #41]	; 0x29
+ 8003c06:	f88d 2029 	strb.w	r2, [sp, #41]	; 0x29
+ 8003c0a:	f893 202a 	ldrb.w	r2, [r3, #42]	; 0x2a
+ 8003c0e:	f88d 202a 	strb.w	r2, [sp, #42]	; 0x2a
+ 8003c12:	f893 202b 	ldrb.w	r2, [r3, #43]	; 0x2b
+ 8003c16:	f88d 202b 	strb.w	r2, [sp, #43]	; 0x2b
+ 8003c1a:	f10d 012b 	add.w	r1, sp, #43	; 0x2b
+ 8003c1e:	2200      	movs	r2, #0
+ 8003c20:	1898      	adds	r0, r3, r2
+ 8003c22:	3201      	adds	r2, #1
+ 8003c24:	f890 002c 	ldrb.w	r0, [r0, #44]	; 0x2c
+ 8003c28:	f801 0f01 	strb.w	r0, [r1, #1]!
+ 8003c2c:	2a14      	cmp	r2, #20
+ 8003c2e:	d1f7      	bne.n	8003c20 <OnStoreSTSCFGContextRequest+0x98>
+ 8003c30:	4807      	ldr	r0, [pc, #28]	; (8003c50 <OnStoreSTSCFGContextRequest+0xc8>)
+ 8003c32:	f44f 6100 	mov.w	r1, #2048	; 0x800
+ 8003c36:	f7fe fb99 	bl	800236c <FLASH_IF_Erase>
+ 8003c3a:	b920      	cbnz	r0, 8003c46 <OnStoreSTSCFGContextRequest+0xbe>
+ 8003c3c:	4804      	ldr	r0, [pc, #16]	; (8003c50 <OnStoreSTSCFGContextRequest+0xc8>)
+ 8003c3e:	2240      	movs	r2, #64	; 0x40
+ 8003c40:	4669      	mov	r1, sp
+ 8003c42:	f7fe fa95 	bl	8002170 <FLASH_IF_Write>
+ 8003c46:	b010      	add	sp, #64	; 0x40
+ 8003c48:	bd10      	pop	{r4, pc}
+ 8003c4a:	bf00      	nop
+ 8003c4c:	20000078 	.word	0x20000078
+ 8003c50:	0803f800 	.word	0x0803f800
+
+08003c54 <OnRestoreSTSCFGContextRequest>:
+ 8003c54:	4901      	ldr	r1, [pc, #4]	; (8003c5c <OnRestoreSTSCFGContextRequest+0x8>)
+ 8003c56:	2240      	movs	r2, #64	; 0x40
+ 8003c58:	f00f bf96 	b.w	8013b88 <UTIL_MEM_cpy_8>
+ 8003c5c:	0803f800 	.word	0x0803f800
+
+08003c60 <OnRestoreSTSCFGContextProcess>:
+ 8003c60:	b510      	push	{r4, lr}
+ 8003c62:	4c23      	ldr	r4, [pc, #140]	; (8003cf0 <OnRestoreSTSCFGContextProcess+0x90>)
+ 8003c64:	7920      	ldrb	r0, [r4, #4]
+ 8003c66:	7963      	ldrb	r3, [r4, #5]
+ 8003c68:	2b4d      	cmp	r3, #77	; 0x4d
+ 8003c6a:	b2c0      	uxtb	r0, r0
+ 8003c6c:	d12f      	bne.n	8003cce <OnRestoreSTSCFGContextProcess+0x6e>
+ 8003c6e:	ebc0 1000 	rsb	r0, r0, r0, lsl #4
+ 8003c72:	0080      	lsls	r0, r0, #2
+ 8003c74:	280a      	cmp	r0, #10
+ 8003c76:	bf38      	it	cc
+ 8003c78:	200a      	movcc	r0, #10
+ 8003c7a:	f44f 737a 	mov.w	r3, #1000	; 0x3e8
+ 8003c7e:	4358      	muls	r0, r3
+ 8003c80:	4b1c      	ldr	r3, [pc, #112]	; (8003cf4 <OnRestoreSTSCFGContextProcess+0x94>)
+ 8003c82:	6018      	str	r0, [r3, #0]
+ 8003c84:	f7ff fc14 	bl	80034b0 <OnTxPeriodicityChanged>
+ 8003c88:	79a0      	ldrb	r0, [r4, #6]
+ 8003c8a:	79e3      	ldrb	r3, [r4, #7]
+ 8003c8c:	2b4d      	cmp	r3, #77	; 0x4d
+ 8003c8e:	b2c0      	uxtb	r0, r0
+ 8003c90:	d125      	bne.n	8003cde <OnRestoreSTSCFGContextProcess+0x7e>
+ 8003c92:	ebc0 1000 	rsb	r0, r0, r0, lsl #4
+ 8003c96:	0080      	lsls	r0, r0, #2
+ 8003c98:	2801      	cmp	r0, #1
+ 8003c9a:	f44f 737a 	mov.w	r3, #1000	; 0x3e8
+ 8003c9e:	bf38      	it	cc
+ 8003ca0:	2001      	movcc	r0, #1
+ 8003ca2:	4358      	muls	r0, r3
+ 8003ca4:	f7ff fc26 	bl	80034f4 <OnYunhornSTSHeartBeatPeriodicityChanged>
+ 8003ca8:	7a23      	ldrb	r3, [r4, #8]
+ 8003caa:	4a13      	ldr	r2, [pc, #76]	; (8003cf8 <OnRestoreSTSCFGContextProcess+0x98>)
+ 8003cac:	4913      	ldr	r1, [pc, #76]	; (8003cfc <OnRestoreSTSCFGContextProcess+0x9c>)
+ 8003cae:	b2db      	uxtb	r3, r3
+ 8003cb0:	7013      	strb	r3, [r2, #0]
+ 8003cb2:	7a63      	ldrb	r3, [r4, #9]
+ 8003cb4:	4a12      	ldr	r2, [pc, #72]	; (8003d00 <OnRestoreSTSCFGContextProcess+0xa0>)
+ 8003cb6:	b2db      	uxtb	r3, r3
+ 8003cb8:	7013      	strb	r3, [r2, #0]
+ 8003cba:	2300      	movs	r3, #0
+ 8003cbc:	18e2      	adds	r2, r4, r3
+ 8003cbe:	f892 202c 	ldrb.w	r2, [r2, #44]	; 0x2c
+ 8003cc2:	b2d2      	uxtb	r2, r2
+ 8003cc4:	54ca      	strb	r2, [r1, r3]
+ 8003cc6:	3301      	adds	r3, #1
+ 8003cc8:	2b14      	cmp	r3, #20
+ 8003cca:	d1f7      	bne.n	8003cbc <OnRestoreSTSCFGContextProcess+0x5c>
+ 8003ccc:	bd10      	pop	{r4, pc}
+ 8003cce:	7963      	ldrb	r3, [r4, #5]
+ 8003cd0:	2b48      	cmp	r3, #72	; 0x48
+ 8003cd2:	bf0a      	itet	eq
+ 8003cd4:	f44f 6361 	moveq.w	r3, #3600	; 0xe10
+ 8003cd8:	7963      	ldrbne	r3, [r4, #5]
+ 8003cda:	4358      	muleq	r0, r3
+ 8003cdc:	e7ca      	b.n	8003c74 <OnRestoreSTSCFGContextProcess+0x14>
+ 8003cde:	79e3      	ldrb	r3, [r4, #7]
+ 8003ce0:	2b48      	cmp	r3, #72	; 0x48
+ 8003ce2:	bf0a      	itet	eq
+ 8003ce4:	f44f 6361 	moveq.w	r3, #3600	; 0xe10
+ 8003ce8:	79e3      	ldrbne	r3, [r4, #7]
+ 8003cea:	4358      	muleq	r0, r3
+ 8003cec:	e7d4      	b.n	8003c98 <OnRestoreSTSCFGContextProcess+0x38>
+ 8003cee:	bf00      	nop
+ 8003cf0:	20000078 	.word	0x20000078
+ 8003cf4:	20000074 	.word	0x20000074
+ 8003cf8:	20000e66 	.word	0x20000e66
+ 8003cfc:	20000e52 	.word	0x20000e52
+ 8003d00:	20000c44 	.word	0x20000c44
+
+08003d04 <STS_REBOOT_CONFIG_Init>:
+ 8003d04:	b510      	push	{r4, lr}
+ 8003d06:	b090      	sub	sp, #64	; 0x40
+ 8003d08:	2100      	movs	r1, #0
+ 8003d0a:	223c      	movs	r2, #60	; 0x3c
+ 8003d0c:	a801      	add	r0, sp, #4
+ 8003d0e:	9100      	str	r1, [sp, #0]
+ 8003d10:	f010 fb72 	bl	80143f8 <memset>
+ 8003d14:	2240      	movs	r2, #64	; 0x40
+ 8003d16:	4937      	ldr	r1, [pc, #220]	; (8003df4 <STS_REBOOT_CONFIG_Init+0xf0>)
+ 8003d18:	4668      	mov	r0, sp
+ 8003d1a:	f00f ff35 	bl	8013b88 <UTIL_MEM_cpy_8>
+ 8003d1e:	f89d 2000 	ldrb.w	r2, [sp]
+ 8003d22:	b93a      	cbnz	r2, 8003d34 <STS_REBOOT_CONFIG_Init+0x30>
+ 8003d24:	f89d 0001 	ldrb.w	r0, [sp, #1]
+ 8003d28:	2810      	cmp	r0, #16
+ 8003d2a:	d103      	bne.n	8003d34 <STS_REBOOT_CONFIG_Init+0x30>
+ 8003d2c:	f89d 1002 	ldrb.w	r1, [sp, #2]
+ 8003d30:	2901      	cmp	r1, #1
+ 8003d32:	d014      	beq.n	8003d5e <STS_REBOOT_CONFIG_Init+0x5a>
+ 8003d34:	2200      	movs	r2, #0
+ 8003d36:	4611      	mov	r1, r2
+ 8003d38:	4b2f      	ldr	r3, [pc, #188]	; (8003df8 <STS_REBOOT_CONFIG_Init+0xf4>)
+ 8003d3a:	2001      	movs	r0, #1
+ 8003d3c:	f00f fe1c 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8003d40:	f7ff ff22 	bl	8003b88 <OnStoreSTSCFGContextRequest>
+ 8003d44:	482d      	ldr	r0, [pc, #180]	; (8003dfc <STS_REBOOT_CONFIG_Init+0xf8>)
+ 8003d46:	2214      	movs	r2, #20
+ 8003d48:	2100      	movs	r1, #0
+ 8003d4a:	f00f ff27 	bl	8013b9c <UTIL_MEM_set_8>
+ 8003d4e:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
+ 8003d52:	f7fe ff25 	bl	8002ba0 <HAL_Delay>
+ 8003d56:	f7ff ff83 	bl	8003c60 <OnRestoreSTSCFGContextProcess>
+ 8003d5a:	b010      	add	sp, #64	; 0x40
+ 8003d5c:	bd10      	pop	{r4, pc}
+ 8003d5e:	4b28      	ldr	r3, [pc, #160]	; (8003e00 <STS_REBOOT_CONFIG_Init+0xfc>)
+ 8003d60:	701a      	strb	r2, [r3, #0]
+ 8003d62:	7058      	strb	r0, [r3, #1]
+ 8003d64:	7099      	strb	r1, [r3, #2]
+ 8003d66:	f89d 1003 	ldrb.w	r1, [sp, #3]
+ 8003d6a:	70d9      	strb	r1, [r3, #3]
+ 8003d6c:	f89d 1004 	ldrb.w	r1, [sp, #4]
+ 8003d70:	7119      	strb	r1, [r3, #4]
+ 8003d72:	f89d 1005 	ldrb.w	r1, [sp, #5]
+ 8003d76:	7159      	strb	r1, [r3, #5]
+ 8003d78:	f89d 1006 	ldrb.w	r1, [sp, #6]
+ 8003d7c:	7199      	strb	r1, [r3, #6]
+ 8003d7e:	f89d 1007 	ldrb.w	r1, [sp, #7]
+ 8003d82:	71d9      	strb	r1, [r3, #7]
+ 8003d84:	f89d 1008 	ldrb.w	r1, [sp, #8]
+ 8003d88:	7219      	strb	r1, [r3, #8]
+ 8003d8a:	f89d 1009 	ldrb.w	r1, [sp, #9]
+ 8003d8e:	7259      	strb	r1, [r3, #9]
+ 8003d90:	f89d 100a 	ldrb.w	r1, [sp, #10]
+ 8003d94:	7299      	strb	r1, [r3, #10]
+ 8003d96:	f89d 100b 	ldrb.w	r1, [sp, #11]
+ 8003d9a:	f001 013f 	and.w	r1, r1, #63	; 0x3f
+ 8003d9e:	72d9      	strb	r1, [r3, #11]
+ 8003da0:	7ad8      	ldrb	r0, [r3, #11]
+ 8003da2:	b2d1      	uxtb	r1, r2
+ 8003da4:	4288      	cmp	r0, r1
+ 8003da6:	d81b      	bhi.n	8003de0 <STS_REBOOT_CONFIG_Init+0xdc>
+ 8003da8:	f89d 2028 	ldrb.w	r2, [sp, #40]	; 0x28
+ 8003dac:	f883 2028 	strb.w	r2, [r3, #40]	; 0x28
+ 8003db0:	f89d 2029 	ldrb.w	r2, [sp, #41]	; 0x29
+ 8003db4:	f883 2029 	strb.w	r2, [r3, #41]	; 0x29
+ 8003db8:	f89d 202a 	ldrb.w	r2, [sp, #42]	; 0x2a
+ 8003dbc:	f883 202a 	strb.w	r2, [r3, #42]	; 0x2a
+ 8003dc0:	f89d 202b 	ldrb.w	r2, [sp, #43]	; 0x2b
+ 8003dc4:	f883 202b 	strb.w	r2, [r3, #43]	; 0x2b
+ 8003dc8:	f10d 012b 	add.w	r1, sp, #43	; 0x2b
+ 8003dcc:	2200      	movs	r2, #0
+ 8003dce:	1898      	adds	r0, r3, r2
+ 8003dd0:	3201      	adds	r2, #1
+ 8003dd2:	f811 4f01 	ldrb.w	r4, [r1, #1]!
+ 8003dd6:	f880 402c 	strb.w	r4, [r0, #44]	; 0x2c
+ 8003dda:	2a14      	cmp	r2, #20
+ 8003ddc:	d1f7      	bne.n	8003dce <STS_REBOOT_CONFIG_Init+0xca>
+ 8003dde:	e7ba      	b.n	8003d56 <STS_REBOOT_CONFIG_Init+0x52>
+ 8003de0:	f101 0040 	add.w	r0, r1, #64	; 0x40
+ 8003de4:	4468      	add	r0, sp
+ 8003de6:	4419      	add	r1, r3
+ 8003de8:	f810 0c34 	ldrb.w	r0, [r0, #-52]
+ 8003dec:	7308      	strb	r0, [r1, #12]
+ 8003dee:	3201      	adds	r2, #1
+ 8003df0:	e7d6      	b.n	8003da0 <STS_REBOOT_CONFIG_Init+0x9c>
+ 8003df2:	bf00      	nop
+ 8003df4:	0803f800 	.word	0x0803f800
+ 8003df8:	08014c17 	.word	0x08014c17
+ 8003dfc:	20000e52 	.word	0x20000e52
+ 8003e00:	20000078 	.word	0x20000078
+
+08003e04 <LoRaWAN_Init>:
+ 8003e04:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8003e06:	2306      	movs	r3, #6
+ 8003e08:	b08b      	sub	sp, #44	; 0x2c
+ 8003e0a:	221c      	movs	r2, #28
+ 8003e0c:	2400      	movs	r4, #0
+ 8003e0e:	2501      	movs	r5, #1
+ 8003e10:	e9cd 3206 	strd	r3, r2, [sp, #24]
+ 8003e14:	2703      	movs	r7, #3
+ 8003e16:	2310      	movs	r3, #16
+ 8003e18:	2117      	movs	r1, #23
+ 8003e1a:	e9cd 3104 	strd	r3, r1, [sp, #16]
+ 8003e1e:	4622      	mov	r2, r4
+ 8003e20:	4b62      	ldr	r3, [pc, #392]	; (8003fac <LoRaWAN_Init+0x1a8>)
+ 8003e22:	9403      	str	r4, [sp, #12]
+ 8003e24:	4621      	mov	r1, r4
+ 8003e26:	e9cd 5501 	strd	r5, r5, [sp, #4]
+ 8003e2a:	9700      	str	r7, [sp, #0]
+ 8003e2c:	2002      	movs	r0, #2
+ 8003e2e:	9409      	str	r4, [sp, #36]	; 0x24
+ 8003e30:	f00f fda2 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8003e34:	4b5e      	ldr	r3, [pc, #376]	; (8003fb0 <LoRaWAN_Init+0x1ac>)
+ 8003e36:	9500      	str	r5, [sp, #0]
+ 8003e38:	4622      	mov	r2, r4
+ 8003e3a:	4621      	mov	r1, r4
+ 8003e3c:	e9cd 7401 	strd	r7, r4, [sp, #4]
+ 8003e40:	2002      	movs	r0, #2
+ 8003e42:	f00f fd99 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8003e46:	2602      	movs	r6, #2
+ 8003e48:	2305      	movs	r3, #5
+ 8003e4a:	e9cd 6300 	strd	r6, r3, [sp]
+ 8003e4e:	4622      	mov	r2, r4
+ 8003e50:	4b58      	ldr	r3, [pc, #352]	; (8003fb4 <LoRaWAN_Init+0x1b0>)
+ 8003e52:	9402      	str	r4, [sp, #8]
+ 8003e54:	4621      	mov	r1, r4
+ 8003e56:	4630      	mov	r0, r6
+ 8003e58:	f00f fd8e 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8003e5c:	4b56      	ldr	r3, [pc, #344]	; (8003fb8 <LoRaWAN_Init+0x1b4>)
+ 8003e5e:	9500      	str	r5, [sp, #0]
+ 8003e60:	4622      	mov	r2, r4
+ 8003e62:	4621      	mov	r1, r4
+ 8003e64:	e9cd 7401 	strd	r7, r4, [sp, #4]
+ 8003e68:	4630      	mov	r0, r6
+ 8003e6a:	f00f fd85 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8003e6e:	a909      	add	r1, sp, #36	; 0x24
+ 8003e70:	4620      	mov	r0, r4
+ 8003e72:	f007 ff65 	bl	800bd40 <LmHandlerGetVersion>
+ 8003e76:	9b09      	ldr	r3, [sp, #36]	; 0x24
+ 8003e78:	f3c3 2207 	ubfx	r2, r3, #8, #8
+ 8003e7c:	9202      	str	r2, [sp, #8]
+ 8003e7e:	f3c3 4207 	ubfx	r2, r3, #16, #8
+ 8003e82:	0e1b      	lsrs	r3, r3, #24
+ 8003e84:	9201      	str	r2, [sp, #4]
+ 8003e86:	9300      	str	r3, [sp, #0]
+ 8003e88:	4622      	mov	r2, r4
+ 8003e8a:	4b4c      	ldr	r3, [pc, #304]	; (8003fbc <LoRaWAN_Init+0x1b8>)
+ 8003e8c:	4621      	mov	r1, r4
+ 8003e8e:	4630      	mov	r0, r6
+ 8003e90:	f00f fd72 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8003e94:	a909      	add	r1, sp, #36	; 0x24
+ 8003e96:	4628      	mov	r0, r5
+ 8003e98:	f007 ff52 	bl	800bd40 <LmHandlerGetVersion>
+ 8003e9c:	9b09      	ldr	r3, [sp, #36]	; 0x24
+ 8003e9e:	b2da      	uxtb	r2, r3
+ 8003ea0:	9203      	str	r2, [sp, #12]
+ 8003ea2:	f3c3 2207 	ubfx	r2, r3, #8, #8
+ 8003ea6:	9202      	str	r2, [sp, #8]
+ 8003ea8:	f3c3 4207 	ubfx	r2, r3, #16, #8
+ 8003eac:	0e1b      	lsrs	r3, r3, #24
+ 8003eae:	9201      	str	r2, [sp, #4]
+ 8003eb0:	9300      	str	r3, [sp, #0]
+ 8003eb2:	4622      	mov	r2, r4
+ 8003eb4:	4b42      	ldr	r3, [pc, #264]	; (8003fc0 <LoRaWAN_Init+0x1bc>)
+ 8003eb6:	4621      	mov	r1, r4
+ 8003eb8:	4630      	mov	r0, r6
+ 8003eba:	f00f fd5d 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8003ebe:	4b41      	ldr	r3, [pc, #260]	; (8003fc4 <LoRaWAN_Init+0x1c0>)
+ 8003ec0:	4841      	ldr	r0, [pc, #260]	; (8003fc8 <LoRaWAN_Init+0x1c4>)
+ 8003ec2:	9400      	str	r4, [sp, #0]
+ 8003ec4:	4622      	mov	r2, r4
+ 8003ec6:	f44f 71fa 	mov.w	r1, #500	; 0x1f4
+ 8003eca:	f010 f825 	bl	8013f18 <UTIL_TIMER_Create>
+ 8003ece:	4b3f      	ldr	r3, [pc, #252]	; (8003fcc <LoRaWAN_Init+0x1c8>)
+ 8003ed0:	483f      	ldr	r0, [pc, #252]	; (8003fd0 <LoRaWAN_Init+0x1cc>)
+ 8003ed2:	9400      	str	r4, [sp, #0]
+ 8003ed4:	4622      	mov	r2, r4
+ 8003ed6:	f44f 71fa 	mov.w	r1, #500	; 0x1f4
+ 8003eda:	f010 f81d 	bl	8013f18 <UTIL_TIMER_Create>
+ 8003ede:	4b3d      	ldr	r3, [pc, #244]	; (8003fd4 <LoRaWAN_Init+0x1d0>)
+ 8003ee0:	483d      	ldr	r0, [pc, #244]	; (8003fd8 <LoRaWAN_Init+0x1d4>)
+ 8003ee2:	9400      	str	r4, [sp, #0]
+ 8003ee4:	462a      	mov	r2, r5
+ 8003ee6:	f44f 71fa 	mov.w	r1, #500	; 0x1f4
+ 8003eea:	f010 f815 	bl	8013f18 <UTIL_TIMER_Create>
+ 8003eee:	4620      	mov	r0, r4
+ 8003ef0:	f7fe f938 	bl	8002164 <FLASH_IF_Init>
+ 8003ef4:	b108      	cbz	r0, 8003efa <LoRaWAN_Init+0xf6>
+ 8003ef6:	f7fe fbf7 	bl	80026e8 <Error_Handler>
+ 8003efa:	4b38      	ldr	r3, [pc, #224]	; (8003fdc <LoRaWAN_Init+0x1d8>)
+ 8003efc:	9400      	str	r4, [sp, #0]
+ 8003efe:	2200      	movs	r2, #0
+ 8003f00:	f44f 61fa 	mov.w	r1, #2000	; 0x7d0
+ 8003f04:	4836      	ldr	r0, [pc, #216]	; (8003fe0 <LoRaWAN_Init+0x1dc>)
+ 8003f06:	f010 f807 	bl	8013f18 <UTIL_TIMER_Create>
+ 8003f0a:	4a36      	ldr	r2, [pc, #216]	; (8003fe4 <LoRaWAN_Init+0x1e0>)
+ 8003f0c:	2100      	movs	r1, #0
+ 8003f0e:	2001      	movs	r0, #1
+ 8003f10:	f00f ff02 	bl	8013d18 <UTIL_SEQ_RegTask>
+ 8003f14:	4a34      	ldr	r2, [pc, #208]	; (8003fe8 <LoRaWAN_Init+0x1e4>)
+ 8003f16:	2100      	movs	r1, #0
+ 8003f18:	2002      	movs	r0, #2
+ 8003f1a:	f00f fefd 	bl	8013d18 <UTIL_SEQ_RegTask>
+ 8003f1e:	4a33      	ldr	r2, [pc, #204]	; (8003fec <LoRaWAN_Init+0x1e8>)
+ 8003f20:	2100      	movs	r1, #0
+ 8003f22:	2004      	movs	r0, #4
+ 8003f24:	f00f fef8 	bl	8013d18 <UTIL_SEQ_RegTask>
+ 8003f28:	4a31      	ldr	r2, [pc, #196]	; (8003ff0 <LoRaWAN_Init+0x1ec>)
+ 8003f2a:	2100      	movs	r1, #0
+ 8003f2c:	2008      	movs	r0, #8
+ 8003f2e:	f00f fef3 	bl	8013d18 <UTIL_SEQ_RegTask>
+ 8003f32:	f000 fc0f 	bl	8004754 <LoraInfo_Init>
+ 8003f36:	492f      	ldr	r1, [pc, #188]	; (8003ff4 <LoRaWAN_Init+0x1f0>)
+ 8003f38:	482f      	ldr	r0, [pc, #188]	; (8003ff8 <LoRaWAN_Init+0x1f4>)
+ 8003f3a:	f007 fec3 	bl	800bcc4 <LmHandlerInit>
+ 8003f3e:	482f      	ldr	r0, [pc, #188]	; (8003ffc <LoRaWAN_Init+0x1f8>)
+ 8003f40:	f007 fdb6 	bl	800bab0 <LmHandlerConfigure>
+ 8003f44:	4824      	ldr	r0, [pc, #144]	; (8003fd8 <LoRaWAN_Init+0x1d4>)
+ 8003f46:	f010 f893 	bl	8014070 <UTIL_TIMER_Start>
+ 8003f4a:	4b2d      	ldr	r3, [pc, #180]	; (8004000 <LoRaWAN_Init+0x1fc>)
+ 8003f4c:	2100      	movs	r1, #0
+ 8003f4e:	7818      	ldrb	r0, [r3, #0]
+ 8003f50:	f007 fbdc 	bl	800b70c <LmHandlerJoin>
+ 8003f54:	492b      	ldr	r1, [pc, #172]	; (8004004 <LoRaWAN_Init+0x200>)
+ 8003f56:	9400      	str	r4, [sp, #0]
+ 8003f58:	4b2b      	ldr	r3, [pc, #172]	; (8004008 <LoRaWAN_Init+0x204>)
+ 8003f5a:	6809      	ldr	r1, [r1, #0]
+ 8003f5c:	482b      	ldr	r0, [pc, #172]	; (800400c <LoRaWAN_Init+0x208>)
+ 8003f5e:	2200      	movs	r2, #0
+ 8003f60:	f00f ffda 	bl	8013f18 <UTIL_TIMER_Create>
+ 8003f64:	4829      	ldr	r0, [pc, #164]	; (800400c <LoRaWAN_Init+0x208>)
+ 8003f66:	f010 f883 	bl	8014070 <UTIL_TIMER_Start>
+ 8003f6a:	f7ff fecb 	bl	8003d04 <STS_REBOOT_CONFIG_Init>
+ 8003f6e:	4a28      	ldr	r2, [pc, #160]	; (8004010 <LoRaWAN_Init+0x20c>)
+ 8003f70:	2100      	movs	r1, #0
+ 8003f72:	2010      	movs	r0, #16
+ 8003f74:	f00f fed0 	bl	8013d18 <UTIL_SEQ_RegTask>
+ 8003f78:	4a26      	ldr	r2, [pc, #152]	; (8004014 <LoRaWAN_Init+0x210>)
+ 8003f7a:	2100      	movs	r1, #0
+ 8003f7c:	f44f 7080 	mov.w	r0, #256	; 0x100
+ 8003f80:	f00f feca 	bl	8013d18 <UTIL_SEQ_RegTask>
+ 8003f84:	4a24      	ldr	r2, [pc, #144]	; (8004018 <LoRaWAN_Init+0x214>)
+ 8003f86:	2100      	movs	r1, #0
+ 8003f88:	f44f 6080 	mov.w	r0, #1024	; 0x400
+ 8003f8c:	f00f fec4 	bl	8013d18 <UTIL_SEQ_RegTask>
+ 8003f90:	4b22      	ldr	r3, [pc, #136]	; (800401c <LoRaWAN_Init+0x218>)
+ 8003f92:	4823      	ldr	r0, [pc, #140]	; (8004020 <LoRaWAN_Init+0x21c>)
+ 8003f94:	6819      	ldr	r1, [r3, #0]
+ 8003f96:	4b23      	ldr	r3, [pc, #140]	; (8004024 <LoRaWAN_Init+0x220>)
+ 8003f98:	9400      	str	r4, [sp, #0]
+ 8003f9a:	2200      	movs	r2, #0
+ 8003f9c:	f00f ffbc 	bl	8013f18 <UTIL_TIMER_Create>
+ 8003fa0:	481f      	ldr	r0, [pc, #124]	; (8004020 <LoRaWAN_Init+0x21c>)
+ 8003fa2:	f010 f865 	bl	8014070 <UTIL_TIMER_Start>
+ 8003fa6:	b00b      	add	sp, #44	; 0x2c
+ 8003fa8:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8003faa:	bf00      	nop
+ 8003fac:	08014c59 	.word	0x08014c59
+ 8003fb0:	08014ca0 	.word	0x08014ca0
+ 8003fb4:	08014cc1 	.word	0x08014cc1
+ 8003fb8:	08014ce2 	.word	0x08014ce2
+ 8003fbc:	08014d03 	.word	0x08014d03
+ 8003fc0:	08014d24 	.word	0x08014d24
+ 8003fc4:	080033b1 	.word	0x080033b1
+ 8003fc8:	20000d88 	.word	0x20000d88
+ 8003fcc:	08003a43 	.word	0x08003a43
+ 8003fd0:	20000d54 	.word	0x20000d54
+ 8003fd4:	08003a41 	.word	0x08003a41
+ 8003fd8:	20000d3c 	.word	0x20000d3c
+ 8003fdc:	080039c5 	.word	0x080039c5
+ 8003fe0:	20000d70 	.word	0x20000d70
+ 8003fe4:	0800b609 	.word	0x0800b609
+ 8003fe8:	080035e9 	.word	0x080035e9
+ 8003fec:	08003a11 	.word	0x08003a11
+ 8003ff0:	08003571 	.word	0x08003571
+ 8003ff4:	01030000 	.word	0x01030000
+ 8003ff8:	20000010 	.word	0x20000010
+ 8003ffc:	2000005c 	.word	0x2000005c
+ 8004000:	20000000 	.word	0x20000000
+ 8004004:	20000074 	.word	0x20000074
+ 8004008:	080033f1 	.word	0x080033f1
+ 800400c:	20000da0 	.word	0x20000da0
+ 8004010:	0800320d 	.word	0x0800320d
+ 8004014:	08003281 	.word	0x08003281
+ 8004018:	080032a9 	.word	0x080032a9
+ 800401c:	2000000c 	.word	0x2000000c
+ 8004020:	20000db8 	.word	0x20000db8
+ 8004024:	08003971 	.word	0x08003971
+
+08004028 <STS_SENSOR_Function_Test_Process>:
+ 8004028:	b510      	push	{r4, lr}
+ 800402a:	2400      	movs	r4, #0
+ 800402c:	b0a2      	sub	sp, #136	; 0x88
+ 800402e:	227c      	movs	r2, #124	; 0x7c
+ 8004030:	4621      	mov	r1, r4
+ 8004032:	a803      	add	r0, sp, #12
+ 8004034:	9402      	str	r4, [sp, #8]
+ 8004036:	f010 f9df 	bl	80143f8 <memset>
+ 800403a:	2353      	movs	r3, #83	; 0x53
+ 800403c:	f88d 3008 	strb.w	r3, [sp, #8]
+ 8004040:	f44f 7388 	mov.w	r3, #272	; 0x110
+ 8004044:	f8ad 300a 	strh.w	r3, [sp, #10]
+ 8004048:	2301      	movs	r3, #1
+ 800404a:	f88d 300c 	strb.w	r3, [sp, #12]
+ 800404e:	f8ad 4004 	strh.w	r4, [sp, #4]
+ 8004052:	f7fe fd23 	bl	8002a9c <GetBatteryLevel>
+ 8004056:	23fe      	movs	r3, #254	; 0xfe
+ 8004058:	fbb0 f0f3 	udiv	r0, r0, r3
+ 800405c:	eb00 0040 	add.w	r0, r0, r0, lsl #1
+ 8004060:	eb00 1040 	add.w	r0, r0, r0, lsl #5
+ 8004064:	f88d 000d 	strb.w	r0, [sp, #13]
+ 8004068:	a801      	add	r0, sp, #4
+ 800406a:	f000 fd0b 	bl	8004a84 <STS_SENSOR_MEMS_Get_ID>
+ 800406e:	b978      	cbnz	r0, 8004090 <STS_SENSOR_Function_Test_Process+0x68>
+ 8004070:	2358      	movs	r3, #88	; 0x58
+ 8004072:	f88d 300e 	strb.w	r3, [sp, #14]
+ 8004076:	2407      	movs	r4, #7
+ 8004078:	2230      	movs	r2, #48	; 0x30
+ 800407a:	2180      	movs	r1, #128	; 0x80
+ 800407c:	4813      	ldr	r0, [pc, #76]	; (80040cc <STS_SENSOR_Function_Test_Process+0xa4>)
+ 800407e:	f010 f9bb 	bl	80143f8 <memset>
+ 8004082:	4622      	mov	r2, r4
+ 8004084:	a902      	add	r1, sp, #8
+ 8004086:	4811      	ldr	r0, [pc, #68]	; (80040cc <STS_SENSOR_Function_Test_Process+0xa4>)
+ 8004088:	f010 f9ef 	bl	801446a <memcpy>
+ 800408c:	b022      	add	sp, #136	; 0x88
+ 800408e:	bd10      	pop	{r4, pc}
+ 8004090:	2302      	movs	r3, #2
+ 8004092:	f88d 300e 	strb.w	r3, [sp, #14]
+ 8004096:	f000 fcd3 	bl	8004a40 <MX_TOF_Process>
+ 800409a:	4b0d      	ldr	r3, [pc, #52]	; (80040d0 <STS_SENSOR_Function_Test_Process+0xa8>)
+ 800409c:	681a      	ldr	r2, [r3, #0]
+ 800409e:	1212      	asrs	r2, r2, #8
+ 80040a0:	f88d 200f 	strb.w	r2, [sp, #15]
+ 80040a4:	681a      	ldr	r2, [r3, #0]
+ 80040a6:	f88d 2010 	strb.w	r2, [sp, #16]
+ 80040aa:	685a      	ldr	r2, [r3, #4]
+ 80040ac:	1212      	asrs	r2, r2, #8
+ 80040ae:	f88d 2011 	strb.w	r2, [sp, #17]
+ 80040b2:	685a      	ldr	r2, [r3, #4]
+ 80040b4:	f88d 2012 	strb.w	r2, [sp, #18]
+ 80040b8:	689a      	ldr	r2, [r3, #8]
+ 80040ba:	689b      	ldr	r3, [r3, #8]
+ 80040bc:	f88d 3014 	strb.w	r3, [sp, #20]
+ 80040c0:	1212      	asrs	r2, r2, #8
+ 80040c2:	f88d 2013 	strb.w	r2, [sp, #19]
+ 80040c6:	240d      	movs	r4, #13
+ 80040c8:	e7d6      	b.n	8004078 <STS_SENSOR_Function_Test_Process+0x50>
+ 80040ca:	bf00      	nop
+ 80040cc:	20000dd1 	.word	0x20000dd1
+ 80040d0:	20000ef8 	.word	0x20000ef8
+
+080040d4 <USER_APP_AUTO_RESPONDER_Parse>:
+ 80040d4:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 80040d6:	7803      	ldrb	r3, [r0, #0]
+ 80040d8:	2b59      	cmp	r3, #89	; 0x59
+ 80040da:	b095      	sub	sp, #84	; 0x54
+ 80040dc:	4604      	mov	r4, r0
+ 80040de:	f040 821f 	bne.w	8004520 <USER_APP_AUTO_RESPONDER_Parse+0x44c>
+ 80040e2:	2905      	cmp	r1, #5
+ 80040e4:	d85f      	bhi.n	80041a6 <USER_APP_AUTO_RESPONDER_Parse+0xd2>
+ 80040e6:	7843      	ldrb	r3, [r0, #1]
+ 80040e8:	3b44      	subs	r3, #68	; 0x44
+ 80040ea:	2b16      	cmp	r3, #22
+ 80040ec:	d85b      	bhi.n	80041a6 <USER_APP_AUTO_RESPONDER_Parse+0xd2>
+ 80040ee:	e8df f013 	tbh	[pc, r3, lsl #1]
+ 80040f2:	015b      	.short	0x015b
+ 80040f4:	013d005a 	.word	0x013d005a
+ 80040f8:	0145005a 	.word	0x0145005a
+ 80040fc:	005a005a 	.word	0x005a005a
+ 8004100:	005a005a 	.word	0x005a005a
+ 8004104:	005a00a6 	.word	0x005a00a6
+ 8004108:	005a0128 	.word	0x005a0128
+ 800410c:	005a005a 	.word	0x005a005a
+ 8004110:	005a01ba 	.word	0x005a01ba
+ 8004114:	00ca005a 	.word	0x00ca005a
+ 8004118:	005a005a 	.word	0x005a005a
+ 800411c:	0017005a 	.word	0x0017005a
+ 8004120:	7885      	ldrb	r5, [r0, #2]
+ 8004122:	2d48      	cmp	r5, #72	; 0x48
+ 8004124:	d117      	bne.n	8004156 <USER_APP_AUTO_RESPONDER_Parse+0x82>
+ 8004126:	4a99      	ldr	r2, [pc, #612]	; (800438c <USER_APP_AUTO_RESPONDER_Parse+0x2b8>)
+ 8004128:	2114      	movs	r1, #20
+ 800412a:	2001      	movs	r0, #1
+ 800412c:	f7ff fcb6 	bl	8003a9c <STS_SENSOR_Upload_Message>
+ 8004130:	f241 3088 	movw	r0, #5000	; 0x1388
+ 8004134:	f7fe fd34 	bl	8002ba0 <HAL_Delay>
+ 8004138:	2200      	movs	r2, #0
+ 800413a:	4b95      	ldr	r3, [pc, #596]	; (8004390 <USER_APP_AUTO_RESPONDER_Parse+0x2bc>)
+ 800413c:	4611      	mov	r1, r2
+ 800413e:	2003      	movs	r0, #3
+ 8004140:	f00f fc1a 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8004144:	f640 30b8 	movw	r0, #3000	; 0xbb8
+ 8004148:	f7fe fd2a 	bl	8002ba0 <HAL_Delay>
+ 800414c:	b015      	add	sp, #84	; 0x54
+ 800414e:	e8bd 40f0 	ldmia.w	sp!, {r4, r5, r6, r7, lr}
+ 8004152:	f7ff bc43 	b.w	80039dc <OnSystemReset>
+ 8004156:	2d53      	cmp	r5, #83	; 0x53
+ 8004158:	d10e      	bne.n	8004178 <USER_APP_AUTO_RESPONDER_Parse+0xa4>
+ 800415a:	2230      	movs	r2, #48	; 0x30
+ 800415c:	2180      	movs	r1, #128	; 0x80
+ 800415e:	488d      	ldr	r0, [pc, #564]	; (8004394 <USER_APP_AUTO_RESPONDER_Parse+0x2c0>)
+ 8004160:	f010 f94a 	bl	80143f8 <memset>
+ 8004164:	f7ff ff60 	bl	8004028 <STS_SENSOR_Function_Test_Process>
+ 8004168:	f241 3088 	movw	r0, #5000	; 0x1388
+ 800416c:	f7fe fd18 	bl	8002ba0 <HAL_Delay>
+ 8004170:	4a88      	ldr	r2, [pc, #544]	; (8004394 <USER_APP_AUTO_RESPONDER_Parse+0x2c0>)
+ 8004172:	2115      	movs	r1, #21
+ 8004174:	2001      	movs	r0, #1
+ 8004176:	e09b      	b.n	80042b0 <USER_APP_AUTO_RESPONDER_Parse+0x1dc>
+ 8004178:	2d43      	cmp	r5, #67	; 0x43
+ 800417a:	d116      	bne.n	80041aa <USER_APP_AUTO_RESPONDER_Parse+0xd6>
+ 800417c:	2400      	movs	r4, #0
+ 800417e:	a804      	add	r0, sp, #16
+ 8004180:	f88d 4010 	strb.w	r4, [sp, #16]
+ 8004184:	f007 fbf8 	bl	800b978 <LmHandlerGetCurrentClass>
+ 8004188:	4a82      	ldr	r2, [pc, #520]	; (8004394 <USER_APP_AUTO_RESPONDER_Parse+0x2c0>)
+ 800418a:	234c      	movs	r3, #76	; 0x4c
+ 800418c:	7013      	strb	r3, [r2, #0]
+ 800418e:	2310      	movs	r3, #16
+ 8004190:	7093      	strb	r3, [r2, #2]
+ 8004192:	f89d 3010 	ldrb.w	r3, [sp, #16]
+ 8004196:	7054      	strb	r4, [r2, #1]
+ 8004198:	2001      	movs	r0, #1
+ 800419a:	3341      	adds	r3, #65	; 0x41
+ 800419c:	70d0      	strb	r0, [r2, #3]
+ 800419e:	7113      	strb	r3, [r2, #4]
+ 80041a0:	2105      	movs	r1, #5
+ 80041a2:	f7ff fc7b 	bl	8003a9c <STS_SENSOR_Upload_Message>
+ 80041a6:	b015      	add	sp, #84	; 0x54
+ 80041a8:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 80041aa:	2d44      	cmp	r5, #68	; 0x44
+ 80041ac:	d1fb      	bne.n	80041a6 <USER_APP_AUTO_RESPONDER_Parse+0xd2>
+ 80041ae:	4c79      	ldr	r4, [pc, #484]	; (8004394 <USER_APP_AUTO_RESPONDER_Parse+0x2c0>)
+ 80041b0:	2359      	movs	r3, #89	; 0x59
+ 80041b2:	7023      	strb	r3, [r4, #0]
+ 80041b4:	235a      	movs	r3, #90	; 0x5a
+ 80041b6:	7063      	strb	r3, [r4, #1]
+ 80041b8:	70a5      	strb	r5, [r4, #2]
+ 80041ba:	f000 fc41 	bl	8004a40 <MX_TOF_Process>
+ 80041be:	222c      	movs	r2, #44	; 0x2c
+ 80041c0:	2180      	movs	r1, #128	; 0x80
+ 80041c2:	1d20      	adds	r0, r4, #4
+ 80041c4:	f010 f918 	bl	80143f8 <memset>
+ 80041c8:	2300      	movs	r3, #0
+ 80041ca:	7025      	strb	r5, [r4, #0]
+ 80041cc:	7063      	strb	r3, [r4, #1]
+ 80041ce:	2501      	movs	r5, #1
+ 80041d0:	2310      	movs	r3, #16
+ 80041d2:	70a3      	strb	r3, [r4, #2]
+ 80041d4:	70e5      	strb	r5, [r4, #3]
+ 80041d6:	7125      	strb	r5, [r4, #4]
+ 80041d8:	f7fe fc60 	bl	8002a9c <GetBatteryLevel>
+ 80041dc:	4a6e      	ldr	r2, [pc, #440]	; (8004398 <USER_APP_AUTO_RESPONDER_Parse+0x2c4>)
+ 80041de:	6811      	ldr	r1, [r2, #0]
+ 80041e0:	23fe      	movs	r3, #254	; 0xfe
+ 80041e2:	b289      	uxth	r1, r1
+ 80041e4:	fbb0 f0f3 	udiv	r0, r0, r3
+ 80041e8:	2364      	movs	r3, #100	; 0x64
+ 80041ea:	fbb1 f1f3 	udiv	r1, r1, r3
+ 80041ee:	71a1      	strb	r1, [r4, #6]
+ 80041f0:	6811      	ldr	r1, [r2, #0]
+ 80041f2:	eb00 0040 	add.w	r0, r0, r0, lsl #1
+ 80041f6:	eb00 1040 	add.w	r0, r0, r0, lsl #5
+ 80041fa:	b289      	uxth	r1, r1
+ 80041fc:	7160      	strb	r0, [r4, #5]
+ 80041fe:	fbb1 f0f3 	udiv	r0, r1, r3
+ 8004202:	fb03 1110 	mls	r1, r3, r0, r1
+ 8004206:	71e1      	strb	r1, [r4, #7]
+ 8004208:	6851      	ldr	r1, [r2, #4]
+ 800420a:	b289      	uxth	r1, r1
+ 800420c:	fbb1 f1f3 	udiv	r1, r1, r3
+ 8004210:	7221      	strb	r1, [r4, #8]
+ 8004212:	6851      	ldr	r1, [r2, #4]
+ 8004214:	b289      	uxth	r1, r1
+ 8004216:	fbb1 f0f3 	udiv	r0, r1, r3
+ 800421a:	fb03 1110 	mls	r1, r3, r0, r1
+ 800421e:	7261      	strb	r1, [r4, #9]
+ 8004220:	6891      	ldr	r1, [r2, #8]
+ 8004222:	6892      	ldr	r2, [r2, #8]
+ 8004224:	b292      	uxth	r2, r2
+ 8004226:	b289      	uxth	r1, r1
+ 8004228:	fbb1 f1f3 	udiv	r1, r1, r3
+ 800422c:	72a1      	strb	r1, [r4, #10]
+ 800422e:	fbb2 f1f3 	udiv	r1, r2, r3
+ 8004232:	fb03 2211 	mls	r2, r3, r1, r2
+ 8004236:	72e2      	strb	r2, [r4, #11]
+ 8004238:	210c      	movs	r1, #12
+ 800423a:	4622      	mov	r2, r4
+ 800423c:	e79a      	b.n	8004174 <USER_APP_AUTO_RESPONDER_Parse+0xa0>
+ 800423e:	7883      	ldrb	r3, [r0, #2]
+ 8004240:	3b30      	subs	r3, #48	; 0x30
+ 8004242:	b2db      	uxtb	r3, r3
+ 8004244:	2b09      	cmp	r3, #9
+ 8004246:	d8ae      	bhi.n	80041a6 <USER_APP_AUTO_RESPONDER_Parse+0xd2>
+ 8004248:	4c54      	ldr	r4, [pc, #336]	; (800439c <USER_APP_AUTO_RESPONDER_Parse+0x2c8>)
+ 800424a:	4a55      	ldr	r2, [pc, #340]	; (80043a0 <USER_APP_AUTO_RESPONDER_Parse+0x2cc>)
+ 800424c:	7023      	strb	r3, [r4, #0]
+ 800424e:	7823      	ldrb	r3, [r4, #0]
+ 8004250:	b2db      	uxtb	r3, r3
+ 8004252:	7253      	strb	r3, [r2, #9]
+ 8004254:	4a4f      	ldr	r2, [pc, #316]	; (8004394 <USER_APP_AUTO_RESPONDER_Parse+0x2c0>)
+ 8004256:	2359      	movs	r3, #89	; 0x59
+ 8004258:	7013      	strb	r3, [r2, #0]
+ 800425a:	234d      	movs	r3, #77	; 0x4d
+ 800425c:	7053      	strb	r3, [r2, #1]
+ 800425e:	7823      	ldrb	r3, [r4, #0]
+ 8004260:	3330      	adds	r3, #48	; 0x30
+ 8004262:	7093      	strb	r3, [r2, #2]
+ 8004264:	2103      	movs	r1, #3
+ 8004266:	2001      	movs	r0, #1
+ 8004268:	f7ff fc18 	bl	8003a9c <STS_SENSOR_Upload_Message>
+ 800426c:	7823      	ldrb	r3, [r4, #0]
+ 800426e:	9300      	str	r3, [sp, #0]
+ 8004270:	2200      	movs	r2, #0
+ 8004272:	4b4c      	ldr	r3, [pc, #304]	; (80043a4 <USER_APP_AUTO_RESPONDER_Parse+0x2d0>)
+ 8004274:	4611      	mov	r1, r2
+ 8004276:	2001      	movs	r0, #1
+ 8004278:	f00f fb7e 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 800427c:	b015      	add	sp, #84	; 0x54
+ 800427e:	e8bd 40f0 	ldmia.w	sp!, {r4, r5, r6, r7, lr}
+ 8004282:	f7ff bc81 	b.w	8003b88 <OnStoreSTSCFGContextRequest>
+ 8004286:	7885      	ldrb	r5, [r0, #2]
+ 8004288:	2d48      	cmp	r5, #72	; 0x48
+ 800428a:	d116      	bne.n	80042ba <USER_APP_AUTO_RESPONDER_Parse+0x1e6>
+ 800428c:	4a41      	ldr	r2, [pc, #260]	; (8004394 <USER_APP_AUTO_RESPONDER_Parse+0x2c0>)
+ 800428e:	2356      	movs	r3, #86	; 0x56
+ 8004290:	7013      	strb	r3, [r2, #0]
+ 8004292:	2300      	movs	r3, #0
+ 8004294:	7053      	strb	r3, [r2, #1]
+ 8004296:	2310      	movs	r3, #16
+ 8004298:	7093      	strb	r3, [r2, #2]
+ 800429a:	2303      	movs	r3, #3
+ 800429c:	7113      	strb	r3, [r2, #4]
+ 800429e:	2317      	movs	r3, #23
+ 80042a0:	7153      	strb	r3, [r2, #5]
+ 80042a2:	2306      	movs	r3, #6
+ 80042a4:	2001      	movs	r0, #1
+ 80042a6:	7193      	strb	r3, [r2, #6]
+ 80042a8:	231c      	movs	r3, #28
+ 80042aa:	70d0      	strb	r0, [r2, #3]
+ 80042ac:	71d3      	strb	r3, [r2, #7]
+ 80042ae:	2108      	movs	r1, #8
+ 80042b0:	b015      	add	sp, #84	; 0x54
+ 80042b2:	e8bd 40f0 	ldmia.w	sp!, {r4, r5, r6, r7, lr}
+ 80042b6:	f7ff bbf1 	b.w	8003a9c <STS_SENSOR_Upload_Message>
+ 80042ba:	2d43      	cmp	r5, #67	; 0x43
+ 80042bc:	f47f af73 	bne.w	80041a6 <USER_APP_AUTO_RESPONDER_Parse+0xd2>
+ 80042c0:	4c34      	ldr	r4, [pc, #208]	; (8004394 <USER_APP_AUTO_RESPONDER_Parse+0x2c0>)
+ 80042c2:	2100      	movs	r1, #0
+ 80042c4:	223c      	movs	r2, #60	; 0x3c
+ 80042c6:	a805      	add	r0, sp, #20
+ 80042c8:	9104      	str	r1, [sp, #16]
+ 80042ca:	f010 f895 	bl	80143f8 <memset>
+ 80042ce:	a804      	add	r0, sp, #16
+ 80042d0:	f7ff fcc0 	bl	8003c54 <OnRestoreSTSCFGContextRequest>
+ 80042d4:	2224      	movs	r2, #36	; 0x24
+ 80042d6:	2180      	movs	r1, #128	; 0x80
+ 80042d8:	f104 000c 	add.w	r0, r4, #12
+ 80042dc:	f010 f88c 	bl	80143f8 <memset>
+ 80042e0:	f89d 3010 	ldrb.w	r3, [sp, #16]
+ 80042e4:	7063      	strb	r3, [r4, #1]
+ 80042e6:	f89d 3011 	ldrb.w	r3, [sp, #17]
+ 80042ea:	70a3      	strb	r3, [r4, #2]
+ 80042ec:	f89d 3012 	ldrb.w	r3, [sp, #18]
+ 80042f0:	70e3      	strb	r3, [r4, #3]
+ 80042f2:	f89d 3013 	ldrb.w	r3, [sp, #19]
+ 80042f6:	7123      	strb	r3, [r4, #4]
+ 80042f8:	f89d 3014 	ldrb.w	r3, [sp, #20]
+ 80042fc:	7163      	strb	r3, [r4, #5]
+ 80042fe:	f89d 3015 	ldrb.w	r3, [sp, #21]
+ 8004302:	71a3      	strb	r3, [r4, #6]
+ 8004304:	f89d 3016 	ldrb.w	r3, [sp, #22]
+ 8004308:	71e3      	strb	r3, [r4, #7]
+ 800430a:	f89d 3017 	ldrb.w	r3, [sp, #23]
+ 800430e:	7223      	strb	r3, [r4, #8]
+ 8004310:	f89d 3018 	ldrb.w	r3, [sp, #24]
+ 8004314:	7025      	strb	r5, [r4, #0]
+ 8004316:	7263      	strb	r3, [r4, #9]
+ 8004318:	f89d 501b 	ldrb.w	r5, [sp, #27]
+ 800431c:	f89d 3019 	ldrb.w	r3, [sp, #25]
+ 8004320:	72a3      	strb	r3, [r4, #10]
+ 8004322:	f89d 301a 	ldrb.w	r3, [sp, #26]
+ 8004326:	72e3      	strb	r3, [r4, #11]
+ 8004328:	462a      	mov	r2, r5
+ 800432a:	a907      	add	r1, sp, #28
+ 800432c:	7325      	strb	r5, [r4, #12]
+ 800432e:	f104 000d 	add.w	r0, r4, #13
+ 8004332:	f010 f89a 	bl	801446a <memcpy>
+ 8004336:	f105 010d 	add.w	r1, r5, #13
+ 800433a:	4622      	mov	r2, r4
+ 800433c:	b2c9      	uxtb	r1, r1
+ 800433e:	2001      	movs	r0, #1
+ 8004340:	e72f      	b.n	80041a2 <USER_APP_AUTO_RESPONDER_Parse+0xce>
+ 8004342:	7880      	ldrb	r0, [r0, #2]
+ 8004344:	2839      	cmp	r0, #57	; 0x39
+ 8004346:	d80c      	bhi.n	8004362 <USER_APP_AUTO_RESPONDER_Parse+0x28e>
+ 8004348:	3830      	subs	r0, #48	; 0x30
+ 800434a:	b2c0      	uxtb	r0, r0
+ 800434c:	f7fe fff8 	bl	8003340 <STS_SENSOR_Power_ON>
+ 8004350:	4a10      	ldr	r2, [pc, #64]	; (8004394 <USER_APP_AUTO_RESPONDER_Parse+0x2c0>)
+ 8004352:	7823      	ldrb	r3, [r4, #0]
+ 8004354:	7013      	strb	r3, [r2, #0]
+ 8004356:	7863      	ldrb	r3, [r4, #1]
+ 8004358:	7053      	strb	r3, [r2, #1]
+ 800435a:	78a3      	ldrb	r3, [r4, #2]
+ 800435c:	7093      	strb	r3, [r2, #2]
+ 800435e:	2103      	movs	r1, #3
+ 8004360:	e708      	b.n	8004174 <USER_APP_AUTO_RESPONDER_Parse+0xa0>
+ 8004362:	b015      	add	sp, #84	; 0x54
+ 8004364:	e8bd 40f0 	ldmia.w	sp!, {r4, r5, r6, r7, lr}
+ 8004368:	f7ff bc00 	b.w	8003b6c <STS_SENSOR_Upload_Config_Invalid_Message>
+ 800436c:	7880      	ldrb	r0, [r0, #2]
+ 800436e:	2839      	cmp	r0, #57	; 0x39
+ 8004370:	d8f7      	bhi.n	8004362 <USER_APP_AUTO_RESPONDER_Parse+0x28e>
+ 8004372:	3830      	subs	r0, #48	; 0x30
+ 8004374:	b2c0      	uxtb	r0, r0
+ 8004376:	f7fe ffe8 	bl	800334a <STS_SENSOR_Power_OFF>
+ 800437a:	e7e9      	b.n	8004350 <USER_APP_AUTO_RESPONDER_Parse+0x27c>
+ 800437c:	7880      	ldrb	r0, [r0, #2]
+ 800437e:	2839      	cmp	r0, #57	; 0x39
+ 8004380:	d8ef      	bhi.n	8004362 <USER_APP_AUTO_RESPONDER_Parse+0x28e>
+ 8004382:	3830      	subs	r0, #48	; 0x30
+ 8004384:	b2c0      	uxtb	r0, r0
+ 8004386:	f7fe ffe5 	bl	8003354 <STS_SENSOR_MEMS_Reset>
+ 800438a:	e7e1      	b.n	8004350 <USER_APP_AUTO_RESPONDER_Parse+0x27c>
+ 800438c:	08014d48 	.word	0x08014d48
+ 8004390:	08014d5d 	.word	0x08014d5d
+ 8004394:	20000dd1 	.word	0x20000dd1
+ 8004398:	20000ef8 	.word	0x20000ef8
+ 800439c:	20000c44 	.word	0x20000c44
+ 80043a0:	20000078 	.word	0x20000078
+ 80043a4:	08014d7f 	.word	0x08014d7f
+ 80043a8:	7883      	ldrb	r3, [r0, #2]
+ 80043aa:	3b30      	subs	r3, #48	; 0x30
+ 80043ac:	b2da      	uxtb	r2, r3
+ 80043ae:	2a09      	cmp	r2, #9
+ 80043b0:	d8d7      	bhi.n	8004362 <USER_APP_AUTO_RESPONDER_Parse+0x28e>
+ 80043b2:	78c5      	ldrb	r5, [r0, #3]
+ 80043b4:	3d30      	subs	r5, #48	; 0x30
+ 80043b6:	b2ea      	uxtb	r2, r5
+ 80043b8:	2a09      	cmp	r2, #9
+ 80043ba:	d8d2      	bhi.n	8004362 <USER_APP_AUTO_RESPONDER_Parse+0x28e>
+ 80043bc:	7901      	ldrb	r1, [r0, #4]
+ 80043be:	f1a1 0248 	sub.w	r2, r1, #72	; 0x48
+ 80043c2:	b2d2      	uxtb	r2, r2
+ 80043c4:	2a0b      	cmp	r2, #11
+ 80043c6:	d8cc      	bhi.n	8004362 <USER_APP_AUTO_RESPONDER_Parse+0x28e>
+ 80043c8:	48a3      	ldr	r0, [pc, #652]	; (8004658 <USER_APP_AUTO_RESPONDER_Parse+0x584>)
+ 80043ca:	fa40 f202 	asr.w	r2, r0, r2
+ 80043ce:	07d0      	lsls	r0, r2, #31
+ 80043d0:	d4c7      	bmi.n	8004362 <USER_APP_AUTO_RESPONDER_Parse+0x28e>
+ 80043d2:	220a      	movs	r2, #10
+ 80043d4:	294d      	cmp	r1, #77	; 0x4d
+ 80043d6:	fb02 5503 	mla	r5, r2, r3, r5
+ 80043da:	d13f      	bne.n	800445c <USER_APP_AUTO_RESPONDER_Parse+0x388>
+ 80043dc:	233c      	movs	r3, #60	; 0x3c
+ 80043de:	435d      	muls	r5, r3
+ 80043e0:	4b9e      	ldr	r3, [pc, #632]	; (800465c <USER_APP_AUTO_RESPONDER_Parse+0x588>)
+ 80043e2:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
+ 80043e6:	4368      	muls	r0, r5
+ 80043e8:	6018      	str	r0, [r3, #0]
+ 80043ea:	4b9d      	ldr	r3, [pc, #628]	; (8004660 <USER_APP_AUTO_RESPONDER_Parse+0x58c>)
+ 80043ec:	6018      	str	r0, [r3, #0]
+ 80043ee:	f7ff f85f 	bl	80034b0 <OnTxPeriodicityChanged>
+ 80043f2:	4a9c      	ldr	r2, [pc, #624]	; (8004664 <USER_APP_AUTO_RESPONDER_Parse+0x590>)
+ 80043f4:	7823      	ldrb	r3, [r4, #0]
+ 80043f6:	7013      	strb	r3, [r2, #0]
+ 80043f8:	7863      	ldrb	r3, [r4, #1]
+ 80043fa:	7053      	strb	r3, [r2, #1]
+ 80043fc:	78a3      	ldrb	r3, [r4, #2]
+ 80043fe:	7093      	strb	r3, [r2, #2]
+ 8004400:	78e3      	ldrb	r3, [r4, #3]
+ 8004402:	70d3      	strb	r3, [r2, #3]
+ 8004404:	7923      	ldrb	r3, [r4, #4]
+ 8004406:	7113      	strb	r3, [r2, #4]
+ 8004408:	2105      	movs	r1, #5
+ 800440a:	2001      	movs	r0, #1
+ 800440c:	f7ff fb46 	bl	8003a9c <STS_SENSOR_Upload_Message>
+ 8004410:	4b95      	ldr	r3, [pc, #596]	; (8004668 <USER_APP_AUTO_RESPONDER_Parse+0x594>)
+ 8004412:	2210      	movs	r2, #16
+ 8004414:	2600      	movs	r6, #0
+ 8004416:	701e      	strb	r6, [r3, #0]
+ 8004418:	705a      	strb	r2, [r3, #1]
+ 800441a:	2201      	movs	r2, #1
+ 800441c:	709a      	strb	r2, [r3, #2]
+ 800441e:	70da      	strb	r2, [r3, #3]
+ 8004420:	78a1      	ldrb	r1, [r4, #2]
+ 8004422:	3930      	subs	r1, #48	; 0x30
+ 8004424:	eb01 0081 	add.w	r0, r1, r1, lsl #2
+ 8004428:	78e1      	ldrb	r1, [r4, #3]
+ 800442a:	3930      	subs	r1, #48	; 0x30
+ 800442c:	eb01 0140 	add.w	r1, r1, r0, lsl #1
+ 8004430:	b2c9      	uxtb	r1, r1
+ 8004432:	7119      	strb	r1, [r3, #4]
+ 8004434:	7922      	ldrb	r2, [r4, #4]
+ 8004436:	715a      	strb	r2, [r3, #5]
+ 8004438:	4a8c      	ldr	r2, [pc, #560]	; (800466c <USER_APP_AUTO_RESPONDER_Parse+0x598>)
+ 800443a:	7812      	ldrb	r2, [r2, #0]
+ 800443c:	b2d2      	uxtb	r2, r2
+ 800443e:	721a      	strb	r2, [r3, #8]
+ 8004440:	4a8b      	ldr	r2, [pc, #556]	; (8004670 <USER_APP_AUTO_RESPONDER_Parse+0x59c>)
+ 8004442:	7812      	ldrb	r2, [r2, #0]
+ 8004444:	b2d2      	uxtb	r2, r2
+ 8004446:	725a      	strb	r2, [r3, #9]
+ 8004448:	f7ff fb9e 	bl	8003b88 <OnStoreSTSCFGContextRequest>
+ 800444c:	4b89      	ldr	r3, [pc, #548]	; (8004674 <USER_APP_AUTO_RESPONDER_Parse+0x5a0>)
+ 800444e:	9500      	str	r5, [sp, #0]
+ 8004450:	4632      	mov	r2, r6
+ 8004452:	4631      	mov	r1, r6
+ 8004454:	2002      	movs	r0, #2
+ 8004456:	f00f fa8f 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 800445a:	e6a4      	b.n	80041a6 <USER_APP_AUTO_RESPONDER_Parse+0xd2>
+ 800445c:	2948      	cmp	r1, #72	; 0x48
+ 800445e:	d1bf      	bne.n	80043e0 <USER_APP_AUTO_RESPONDER_Parse+0x30c>
+ 8004460:	f44f 6361 	mov.w	r3, #3600	; 0xe10
+ 8004464:	e7bb      	b.n	80043de <USER_APP_AUTO_RESPONDER_Parse+0x30a>
+ 8004466:	7883      	ldrb	r3, [r0, #2]
+ 8004468:	3b30      	subs	r3, #48	; 0x30
+ 800446a:	b2da      	uxtb	r2, r3
+ 800446c:	2a09      	cmp	r2, #9
+ 800446e:	f63f af78 	bhi.w	8004362 <USER_APP_AUTO_RESPONDER_Parse+0x28e>
+ 8004472:	78c5      	ldrb	r5, [r0, #3]
+ 8004474:	3d30      	subs	r5, #48	; 0x30
+ 8004476:	b2ea      	uxtb	r2, r5
+ 8004478:	2a09      	cmp	r2, #9
+ 800447a:	f63f af72 	bhi.w	8004362 <USER_APP_AUTO_RESPONDER_Parse+0x28e>
+ 800447e:	7901      	ldrb	r1, [r0, #4]
+ 8004480:	f1a1 0248 	sub.w	r2, r1, #72	; 0x48
+ 8004484:	b2d2      	uxtb	r2, r2
+ 8004486:	2a0b      	cmp	r2, #11
+ 8004488:	f63f af6b 	bhi.w	8004362 <USER_APP_AUTO_RESPONDER_Parse+0x28e>
+ 800448c:	4872      	ldr	r0, [pc, #456]	; (8004658 <USER_APP_AUTO_RESPONDER_Parse+0x584>)
+ 800448e:	fa40 f202 	asr.w	r2, r0, r2
+ 8004492:	07d2      	lsls	r2, r2, #31
+ 8004494:	f53f af65 	bmi.w	8004362 <USER_APP_AUTO_RESPONDER_Parse+0x28e>
+ 8004498:	220a      	movs	r2, #10
+ 800449a:	294d      	cmp	r1, #77	; 0x4d
+ 800449c:	fb02 5503 	mla	r5, r2, r3, r5
+ 80044a0:	d139      	bne.n	8004516 <USER_APP_AUTO_RESPONDER_Parse+0x442>
+ 80044a2:	233c      	movs	r3, #60	; 0x3c
+ 80044a4:	435d      	muls	r5, r3
+ 80044a6:	4a6e      	ldr	r2, [pc, #440]	; (8004660 <USER_APP_AUTO_RESPONDER_Parse+0x58c>)
+ 80044a8:	f44f 737a 	mov.w	r3, #1000	; 0x3e8
+ 80044ac:	436b      	muls	r3, r5
+ 80044ae:	6013      	str	r3, [r2, #0]
+ 80044b0:	6810      	ldr	r0, [r2, #0]
+ 80044b2:	f7ff f81f 	bl	80034f4 <OnYunhornSTSHeartBeatPeriodicityChanged>
+ 80044b6:	4a6b      	ldr	r2, [pc, #428]	; (8004664 <USER_APP_AUTO_RESPONDER_Parse+0x590>)
+ 80044b8:	7823      	ldrb	r3, [r4, #0]
+ 80044ba:	7013      	strb	r3, [r2, #0]
+ 80044bc:	7863      	ldrb	r3, [r4, #1]
+ 80044be:	7053      	strb	r3, [r2, #1]
+ 80044c0:	78a3      	ldrb	r3, [r4, #2]
+ 80044c2:	7093      	strb	r3, [r2, #2]
+ 80044c4:	78e3      	ldrb	r3, [r4, #3]
+ 80044c6:	70d3      	strb	r3, [r2, #3]
+ 80044c8:	7923      	ldrb	r3, [r4, #4]
+ 80044ca:	7113      	strb	r3, [r2, #4]
+ 80044cc:	2105      	movs	r1, #5
+ 80044ce:	2001      	movs	r0, #1
+ 80044d0:	f7ff fae4 	bl	8003a9c <STS_SENSOR_Upload_Message>
+ 80044d4:	4b64      	ldr	r3, [pc, #400]	; (8004668 <USER_APP_AUTO_RESPONDER_Parse+0x594>)
+ 80044d6:	2210      	movs	r2, #16
+ 80044d8:	2600      	movs	r6, #0
+ 80044da:	701e      	strb	r6, [r3, #0]
+ 80044dc:	705a      	strb	r2, [r3, #1]
+ 80044de:	2201      	movs	r2, #1
+ 80044e0:	709a      	strb	r2, [r3, #2]
+ 80044e2:	70da      	strb	r2, [r3, #3]
+ 80044e4:	78a1      	ldrb	r1, [r4, #2]
+ 80044e6:	3930      	subs	r1, #48	; 0x30
+ 80044e8:	eb01 0081 	add.w	r0, r1, r1, lsl #2
+ 80044ec:	78e1      	ldrb	r1, [r4, #3]
+ 80044ee:	3930      	subs	r1, #48	; 0x30
+ 80044f0:	eb01 0140 	add.w	r1, r1, r0, lsl #1
+ 80044f4:	b2c9      	uxtb	r1, r1
+ 80044f6:	7199      	strb	r1, [r3, #6]
+ 80044f8:	7922      	ldrb	r2, [r4, #4]
+ 80044fa:	71da      	strb	r2, [r3, #7]
+ 80044fc:	4a5b      	ldr	r2, [pc, #364]	; (800466c <USER_APP_AUTO_RESPONDER_Parse+0x598>)
+ 80044fe:	7812      	ldrb	r2, [r2, #0]
+ 8004500:	b2d2      	uxtb	r2, r2
+ 8004502:	721a      	strb	r2, [r3, #8]
+ 8004504:	4a5a      	ldr	r2, [pc, #360]	; (8004670 <USER_APP_AUTO_RESPONDER_Parse+0x59c>)
+ 8004506:	7812      	ldrb	r2, [r2, #0]
+ 8004508:	b2d2      	uxtb	r2, r2
+ 800450a:	725a      	strb	r2, [r3, #9]
+ 800450c:	f7ff fb3c 	bl	8003b88 <OnStoreSTSCFGContextRequest>
+ 8004510:	4b59      	ldr	r3, [pc, #356]	; (8004678 <USER_APP_AUTO_RESPONDER_Parse+0x5a4>)
+ 8004512:	9500      	str	r5, [sp, #0]
+ 8004514:	e79c      	b.n	8004450 <USER_APP_AUTO_RESPONDER_Parse+0x37c>
+ 8004516:	2948      	cmp	r1, #72	; 0x48
+ 8004518:	d1c5      	bne.n	80044a6 <USER_APP_AUTO_RESPONDER_Parse+0x3d2>
+ 800451a:	f44f 6361 	mov.w	r3, #3600	; 0xe10
+ 800451e:	e7c1      	b.n	80044a4 <USER_APP_AUTO_RESPONDER_Parse+0x3d0>
+ 8004520:	2b50      	cmp	r3, #80	; 0x50
+ 8004522:	d15d      	bne.n	80045e0 <USER_APP_AUTO_RESPONDER_Parse+0x50c>
+ 8004524:	2902      	cmp	r1, #2
+ 8004526:	f67f ae3e 	bls.w	80041a6 <USER_APP_AUTO_RESPONDER_Parse+0xd2>
+ 800452a:	7843      	ldrb	r3, [r0, #1]
+ 800452c:	3b30      	subs	r3, #48	; 0x30
+ 800452e:	2b01      	cmp	r3, #1
+ 8004530:	f63f ae39 	bhi.w	80041a6 <USER_APP_AUTO_RESPONDER_Parse+0xd2>
+ 8004534:	7883      	ldrb	r3, [r0, #2]
+ 8004536:	2b31      	cmp	r3, #49	; 0x31
+ 8004538:	f47f ae35 	bne.w	80041a6 <USER_APP_AUTO_RESPONDER_Parse+0xd2>
+ 800453c:	290b      	cmp	r1, #11
+ 800453e:	d804      	bhi.n	800454a <USER_APP_AUTO_RESPONDER_Parse+0x476>
+ 8004540:	f7ff fb14 	bl	8003b6c <STS_SENSOR_Upload_Config_Invalid_Message>
+ 8004544:	2100      	movs	r1, #0
+ 8004546:	4a47      	ldr	r2, [pc, #284]	; (8004664 <USER_APP_AUTO_RESPONDER_Parse+0x590>)
+ 8004548:	e614      	b.n	8004174 <USER_APP_AUTO_RESPONDER_Parse+0xa0>
+ 800454a:	4d47      	ldr	r5, [pc, #284]	; (8004668 <USER_APP_AUTO_RESPONDER_Parse+0x594>)
+ 800454c:	4f4b      	ldr	r7, [pc, #300]	; (800467c <USER_APP_AUTO_RESPONDER_Parse+0x5a8>)
+ 800454e:	3402      	adds	r4, #2
+ 8004550:	2600      	movs	r6, #0
+ 8004552:	f814 2f01 	ldrb.w	r2, [r4, #1]!
+ 8004556:	19a9      	adds	r1, r5, r6
+ 8004558:	3a30      	subs	r2, #48	; 0x30
+ 800455a:	b2d2      	uxtb	r2, r2
+ 800455c:	730a      	strb	r2, [r1, #12]
+ 800455e:	7b0b      	ldrb	r3, [r1, #12]
+ 8004560:	e9cd 6302 	strd	r6, r3, [sp, #8]
+ 8004564:	7823      	ldrb	r3, [r4, #0]
+ 8004566:	2200      	movs	r2, #0
+ 8004568:	e9cd 6300 	strd	r6, r3, [sp]
+ 800456c:	4611      	mov	r1, r2
+ 800456e:	463b      	mov	r3, r7
+ 8004570:	2001      	movs	r0, #1
+ 8004572:	3601      	adds	r6, #1
+ 8004574:	f00f fa00 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8004578:	2e0c      	cmp	r6, #12
+ 800457a:	d1ea      	bne.n	8004552 <USER_APP_AUTO_RESPONDER_Parse+0x47e>
+ 800457c:	f7fe ff0c 	bl	8003398 <STS_SENSOR_NVM_CFG_SIMPLE>
+ 8004580:	4b38      	ldr	r3, [pc, #224]	; (8004664 <USER_APP_AUTO_RESPONDER_Parse+0x590>)
+ 8004582:	2250      	movs	r2, #80	; 0x50
+ 8004584:	701a      	strb	r2, [r3, #0]
+ 8004586:	2210      	movs	r2, #16
+ 8004588:	709a      	strb	r2, [r3, #2]
+ 800458a:	2400      	movs	r4, #0
+ 800458c:	2201      	movs	r2, #1
+ 800458e:	705c      	strb	r4, [r3, #1]
+ 8004590:	70da      	strb	r2, [r3, #3]
+ 8004592:	f803 2f04 	strb.w	r2, [r3, #4]!
+ 8004596:	192a      	adds	r2, r5, r4
+ 8004598:	3401      	adds	r4, #1
+ 800459a:	7b12      	ldrb	r2, [r2, #12]
+ 800459c:	2c0c      	cmp	r4, #12
+ 800459e:	f102 0230 	add.w	r2, r2, #48	; 0x30
+ 80045a2:	f803 2f01 	strb.w	r2, [r3, #1]!
+ 80045a6:	d1f6      	bne.n	8004596 <USER_APP_AUTO_RESPONDER_Parse+0x4c2>
+ 80045a8:	2200      	movs	r2, #0
+ 80045aa:	2350      	movs	r3, #80	; 0x50
+ 80045ac:	4611      	mov	r1, r2
+ 80045ae:	9300      	str	r3, [sp, #0]
+ 80045b0:	2001      	movs	r0, #1
+ 80045b2:	4b33      	ldr	r3, [pc, #204]	; (8004680 <USER_APP_AUTO_RESPONDER_Parse+0x5ac>)
+ 80045b4:	f00f f9e0 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 80045b8:	2300      	movs	r3, #0
+ 80045ba:	702b      	strb	r3, [r5, #0]
+ 80045bc:	2310      	movs	r3, #16
+ 80045be:	706b      	strb	r3, [r5, #1]
+ 80045c0:	2301      	movs	r3, #1
+ 80045c2:	70ab      	strb	r3, [r5, #2]
+ 80045c4:	70eb      	strb	r3, [r5, #3]
+ 80045c6:	4b29      	ldr	r3, [pc, #164]	; (800466c <USER_APP_AUTO_RESPONDER_Parse+0x598>)
+ 80045c8:	781b      	ldrb	r3, [r3, #0]
+ 80045ca:	b2db      	uxtb	r3, r3
+ 80045cc:	722b      	strb	r3, [r5, #8]
+ 80045ce:	4b28      	ldr	r3, [pc, #160]	; (8004670 <USER_APP_AUTO_RESPONDER_Parse+0x59c>)
+ 80045d0:	781b      	ldrb	r3, [r3, #0]
+ 80045d2:	b2db      	uxtb	r3, r3
+ 80045d4:	726b      	strb	r3, [r5, #9]
+ 80045d6:	72ec      	strb	r4, [r5, #11]
+ 80045d8:	f7ff fad6 	bl	8003b88 <OnStoreSTSCFGContextRequest>
+ 80045dc:	2111      	movs	r1, #17
+ 80045de:	e7b2      	b.n	8004546 <USER_APP_AUTO_RESPONDER_Parse+0x472>
+ 80045e0:	2b41      	cmp	r3, #65	; 0x41
+ 80045e2:	f47f ade0 	bne.w	80041a6 <USER_APP_AUTO_RESPONDER_Parse+0xd2>
+ 80045e6:	7843      	ldrb	r3, [r0, #1]
+ 80045e8:	2b43      	cmp	r3, #67	; 0x43
+ 80045ea:	f47f addc 	bne.w	80041a6 <USER_APP_AUTO_RESPONDER_Parse+0xd2>
+ 80045ee:	2916      	cmp	r1, #22
+ 80045f0:	f47f add9 	bne.w	80041a6 <USER_APP_AUTO_RESPONDER_Parse+0xd2>
+ 80045f4:	4d23      	ldr	r5, [pc, #140]	; (8004684 <USER_APP_AUTO_RESPONDER_Parse+0x5b0>)
+ 80045f6:	1c42      	adds	r2, r0, #1
+ 80045f8:	2300      	movs	r3, #0
+ 80045fa:	f812 1f01 	ldrb.w	r1, [r2, #1]!
+ 80045fe:	54e9      	strb	r1, [r5, r3]
+ 8004600:	3301      	adds	r3, #1
+ 8004602:	2b14      	cmp	r3, #20
+ 8004604:	d1f9      	bne.n	80045fa <USER_APP_AUTO_RESPONDER_Parse+0x526>
+ 8004606:	f7fe fdd3 	bl	80031b0 <STS_YunhornAuthenticationCode_Process>
+ 800460a:	4b1f      	ldr	r3, [pc, #124]	; (8004688 <USER_APP_AUTO_RESPONDER_Parse+0x5b4>)
+ 800460c:	7d5b      	ldrb	r3, [r3, #21]
+ 800460e:	2b01      	cmp	r3, #1
+ 8004610:	d119      	bne.n	8004646 <USER_APP_AUTO_RESPONDER_Parse+0x572>
+ 8004612:	4915      	ldr	r1, [pc, #84]	; (8004668 <USER_APP_AUTO_RESPONDER_Parse+0x594>)
+ 8004614:	2300      	movs	r3, #0
+ 8004616:	5cea      	ldrb	r2, [r5, r3]
+ 8004618:	18c8      	adds	r0, r1, r3
+ 800461a:	3301      	adds	r3, #1
+ 800461c:	b2d2      	uxtb	r2, r2
+ 800461e:	2b14      	cmp	r3, #20
+ 8004620:	f880 202c 	strb.w	r2, [r0, #44]	; 0x2c
+ 8004624:	d1f7      	bne.n	8004616 <USER_APP_AUTO_RESPONDER_Parse+0x542>
+ 8004626:	4b12      	ldr	r3, [pc, #72]	; (8004670 <USER_APP_AUTO_RESPONDER_Parse+0x59c>)
+ 8004628:	2200      	movs	r2, #0
+ 800462a:	701a      	strb	r2, [r3, #0]
+ 800462c:	781b      	ldrb	r3, [r3, #0]
+ 800462e:	b2db      	uxtb	r3, r3
+ 8004630:	724b      	strb	r3, [r1, #9]
+ 8004632:	f7ff faa9 	bl	8003b88 <OnStoreSTSCFGContextRequest>
+ 8004636:	4a0b      	ldr	r2, [pc, #44]	; (8004664 <USER_APP_AUTO_RESPONDER_Parse+0x590>)
+ 8004638:	1e63      	subs	r3, r4, #1
+ 800463a:	3415      	adds	r4, #21
+ 800463c:	429c      	cmp	r4, r3
+ 800463e:	d106      	bne.n	800464e <USER_APP_AUTO_RESPONDER_Parse+0x57a>
+ 8004640:	4a08      	ldr	r2, [pc, #32]	; (8004664 <USER_APP_AUTO_RESPONDER_Parse+0x590>)
+ 8004642:	2116      	movs	r1, #22
+ 8004644:	e596      	b.n	8004174 <USER_APP_AUTO_RESPONDER_Parse+0xa0>
+ 8004646:	4b0a      	ldr	r3, [pc, #40]	; (8004670 <USER_APP_AUTO_RESPONDER_Parse+0x59c>)
+ 8004648:	2202      	movs	r2, #2
+ 800464a:	701a      	strb	r2, [r3, #0]
+ 800464c:	e7f3      	b.n	8004636 <USER_APP_AUTO_RESPONDER_Parse+0x562>
+ 800464e:	f813 1f01 	ldrb.w	r1, [r3, #1]!
+ 8004652:	f802 1b01 	strb.w	r1, [r2], #1
+ 8004656:	e7f1      	b.n	800463c <USER_APP_AUTO_RESPONDER_Parse+0x568>
+ 8004658:	fffff7de 	.word	0xfffff7de
+ 800465c:	20000074 	.word	0x20000074
+ 8004660:	2000000c 	.word	0x2000000c
+ 8004664:	20000dd1 	.word	0x20000dd1
+ 8004668:	20000078 	.word	0x20000078
+ 800466c:	20000e66 	.word	0x20000e66
+ 8004670:	20000c44 	.word	0x20000c44
+ 8004674:	08014da8 	.word	0x08014da8
+ 8004678:	08014ddf 	.word	0x08014ddf
+ 800467c:	08014e2a 	.word	0x08014e2a
+ 8004680:	08014e52 	.word	0x08014e52
+ 8004684:	20000e52 	.word	0x20000e52
+ 8004688:	20000ab4 	.word	0x20000ab4
+
+0800468c <OnRxData>:
+ 800468c:	b570      	push	{r4, r5, r6, lr}
+ 800468e:	4605      	mov	r5, r0
+ 8004690:	b086      	sub	sp, #24
+ 8004692:	460c      	mov	r4, r1
+ 8004694:	2900      	cmp	r1, #0
+ 8004696:	d03b      	beq.n	8004710 <OnRxData+0x84>
+ 8004698:	4828      	ldr	r0, [pc, #160]	; (800473c <OnRxData+0xb0>)
+ 800469a:	f00f fce9 	bl	8014070 <UTIL_TIMER_Start>
+ 800469e:	7826      	ldrb	r6, [r4, #0]
+ 80046a0:	b1ee      	cbz	r6, 80046de <OnRxData+0x52>
+ 80046a2:	2d00      	cmp	r5, #0
+ 80046a4:	d048      	beq.n	8004738 <OnRxData+0xac>
+ 80046a6:	6868      	ldr	r0, [r5, #4]
+ 80046a8:	782e      	ldrb	r6, [r5, #0]
+ 80046aa:	b1c0      	cbz	r0, 80046de <OnRxData+0x52>
+ 80046ac:	2e03      	cmp	r6, #3
+ 80046ae:	d00b      	beq.n	80046c8 <OnRxData+0x3c>
+ 80046b0:	2e0a      	cmp	r6, #10
+ 80046b2:	d02f      	beq.n	8004714 <OnRxData+0x88>
+ 80046b4:	2e02      	cmp	r6, #2
+ 80046b6:	d112      	bne.n	80046de <OnRxData+0x52>
+ 80046b8:	7869      	ldrb	r1, [r5, #1]
+ 80046ba:	2901      	cmp	r1, #1
+ 80046bc:	d00f      	beq.n	80046de <OnRxData+0x52>
+ 80046be:	060b      	lsls	r3, r1, #24
+ 80046c0:	d40d      	bmi.n	80046de <OnRxData+0x52>
+ 80046c2:	f7ff fd07 	bl	80040d4 <USER_APP_AUTO_RESPONDER_Parse>
+ 80046c6:	e00a      	b.n	80046de <OnRxData+0x52>
+ 80046c8:	786b      	ldrb	r3, [r5, #1]
+ 80046ca:	2b01      	cmp	r3, #1
+ 80046cc:	d107      	bne.n	80046de <OnRxData+0x52>
+ 80046ce:	7800      	ldrb	r0, [r0, #0]
+ 80046d0:	2801      	cmp	r0, #1
+ 80046d2:	d002      	beq.n	80046da <OnRxData+0x4e>
+ 80046d4:	2802      	cmp	r0, #2
+ 80046d6:	d000      	beq.n	80046da <OnRxData+0x4e>
+ 80046d8:	b908      	cbnz	r0, 80046de <OnRxData+0x52>
+ 80046da:	f006 ffcd 	bl	800b678 <LmHandlerRequestClass>
+ 80046de:	7c23      	ldrb	r3, [r4, #16]
+ 80046e0:	2b05      	cmp	r3, #5
+ 80046e2:	d815      	bhi.n	8004710 <OnRxData+0x84>
+ 80046e4:	f994 200a 	ldrsb.w	r2, [r4, #10]
+ 80046e8:	9205      	str	r2, [sp, #20]
+ 80046ea:	f994 2009 	ldrsb.w	r2, [r4, #9]
+ 80046ee:	9204      	str	r2, [sp, #16]
+ 80046f0:	4a13      	ldr	r2, [pc, #76]	; (8004740 <OnRxData+0xb4>)
+ 80046f2:	f852 3023 	ldr.w	r3, [r2, r3, lsl #2]
+ 80046f6:	9303      	str	r3, [sp, #12]
+ 80046f8:	f994 3008 	ldrsb.w	r3, [r4, #8]
+ 80046fc:	e9cd 6301 	strd	r6, r3, [sp, #4]
+ 8004700:	2200      	movs	r2, #0
+ 8004702:	68e3      	ldr	r3, [r4, #12]
+ 8004704:	9300      	str	r3, [sp, #0]
+ 8004706:	4611      	mov	r1, r2
+ 8004708:	4b0e      	ldr	r3, [pc, #56]	; (8004744 <OnRxData+0xb8>)
+ 800470a:	2003      	movs	r0, #3
+ 800470c:	f00f f934 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8004710:	b006      	add	sp, #24
+ 8004712:	bd70      	pop	{r4, r5, r6, pc}
+ 8004714:	786b      	ldrb	r3, [r5, #1]
+ 8004716:	2b01      	cmp	r3, #1
+ 8004718:	d1e1      	bne.n	80046de <OnRxData+0x52>
+ 800471a:	7802      	ldrb	r2, [r0, #0]
+ 800471c:	4b0a      	ldr	r3, [pc, #40]	; (8004748 <OnRxData+0xbc>)
+ 800471e:	f002 0201 	and.w	r2, r2, #1
+ 8004722:	701a      	strb	r2, [r3, #0]
+ 8004724:	b92a      	cbnz	r2, 8004732 <OnRxData+0xa6>
+ 8004726:	4b09      	ldr	r3, [pc, #36]	; (800474c <OnRxData+0xc0>)
+ 8004728:	4611      	mov	r1, r2
+ 800472a:	2003      	movs	r0, #3
+ 800472c:	f00f f924 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8004730:	e7d5      	b.n	80046de <OnRxData+0x52>
+ 8004732:	4b07      	ldr	r3, [pc, #28]	; (8004750 <OnRxData+0xc4>)
+ 8004734:	2200      	movs	r2, #0
+ 8004736:	e7f7      	b.n	8004728 <OnRxData+0x9c>
+ 8004738:	462e      	mov	r6, r5
+ 800473a:	e7d0      	b.n	80046de <OnRxData+0x52>
+ 800473c:	20000d54 	.word	0x20000d54
+ 8004740:	08014ed8 	.word	0x08014ed8
+ 8004744:	08014e80 	.word	0x08014e80
+ 8004748:	20000d38 	.word	0x20000d38
+ 800474c:	08014e6d 	.word	0x08014e6d
+ 8004750:	08014e77 	.word	0x08014e77
+
+08004754 <LoraInfo_Init>:
+ 8004754:	4b03      	ldr	r3, [pc, #12]	; (8004764 <LoraInfo_Init+0x10>)
+ 8004756:	2200      	movs	r2, #0
+ 8004758:	e9c3 2202 	strd	r2, r2, [r3, #8]
+ 800475c:	2201      	movs	r2, #1
+ 800475e:	e9c3 2200 	strd	r2, r2, [r3]
+ 8004762:	4770      	bx	lr
+ 8004764:	20000e68 	.word	0x20000e68
+
+08004768 <LoraInfo_GetPtr>:
+ 8004768:	4800      	ldr	r0, [pc, #0]	; (800476c <LoraInfo_GetPtr+0x4>)
+ 800476a:	4770      	bx	lr
+ 800476c:	20000e68 	.word	0x20000e68
+
+08004770 <LL_AHB2_GRP1_EnableClock>:
+ 8004770:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8004774:	b082      	sub	sp, #8
+ 8004776:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 8004778:	4302      	orrs	r2, r0
+ 800477a:	64da      	str	r2, [r3, #76]	; 0x4c
+ 800477c:	6cdb      	ldr	r3, [r3, #76]	; 0x4c
+ 800477e:	4003      	ands	r3, r0
+ 8004780:	9301      	str	r3, [sp, #4]
+ 8004782:	9b01      	ldr	r3, [sp, #4]
+ 8004784:	b002      	add	sp, #8
+ 8004786:	4770      	bx	lr
+
+08004788 <RBI_Init>:
+ 8004788:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800478c:	b086      	sub	sp, #24
+ 800478e:	2400      	movs	r4, #0
+ 8004790:	2002      	movs	r0, #2
+ 8004792:	4d15      	ldr	r5, [pc, #84]	; (80047e8 <RBI_Init+0x60>)
+ 8004794:	9405      	str	r4, [sp, #20]
+ 8004796:	f7ff ffeb 	bl	8004770 <LL_AHB2_GRP1_EnableClock>
+ 800479a:	2004      	movs	r0, #4
+ 800479c:	f7ff ffe8 	bl	8004770 <LL_AHB2_GRP1_EnableClock>
+ 80047a0:	4f12      	ldr	r7, [pc, #72]	; (80047ec <RBI_Init+0x64>)
+ 80047a2:	9403      	str	r4, [sp, #12]
+ 80047a4:	f44f 7680 	mov.w	r6, #256	; 0x100
+ 80047a8:	2301      	movs	r3, #1
+ 80047aa:	eb0d 0100 	add.w	r1, sp, r0
+ 80047ae:	e9cd 6301 	strd	r6, r3, [sp, #4]
+ 80047b2:	4628      	mov	r0, r5
+ 80047b4:	2303      	movs	r3, #3
+ 80047b6:	9304      	str	r3, [sp, #16]
+ 80047b8:	f44f 5800 	mov.w	r8, #8192	; 0x2000
+ 80047bc:	f003 fec6 	bl	800854c <HAL_GPIO_Init>
+ 80047c0:	a901      	add	r1, sp, #4
+ 80047c2:	4638      	mov	r0, r7
+ 80047c4:	f8cd 8004 	str.w	r8, [sp, #4]
+ 80047c8:	f003 fec0 	bl	800854c <HAL_GPIO_Init>
+ 80047cc:	4622      	mov	r2, r4
+ 80047ce:	4641      	mov	r1, r8
+ 80047d0:	4638      	mov	r0, r7
+ 80047d2:	f003 ffe1 	bl	8008798 <HAL_GPIO_WritePin>
+ 80047d6:	4628      	mov	r0, r5
+ 80047d8:	4622      	mov	r2, r4
+ 80047da:	4631      	mov	r1, r6
+ 80047dc:	f003 ffdc 	bl	8008798 <HAL_GPIO_WritePin>
+ 80047e0:	4620      	mov	r0, r4
+ 80047e2:	b006      	add	sp, #24
+ 80047e4:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 80047e8:	48000400 	.word	0x48000400
+ 80047ec:	48000800 	.word	0x48000800
+
+080047f0 <RBI_ConfigRFSwitch>:
+ 80047f0:	2803      	cmp	r0, #3
+ 80047f2:	b510      	push	{r4, lr}
+ 80047f4:	d80e      	bhi.n	8004814 <RBI_ConfigRFSwitch+0x24>
+ 80047f6:	2801      	cmp	r0, #1
+ 80047f8:	d810      	bhi.n	800481c <RBI_ConfigRFSwitch+0x2c>
+ 80047fa:	b968      	cbnz	r0, 8004818 <RBI_ConfigRFSwitch+0x28>
+ 80047fc:	4602      	mov	r2, r0
+ 80047fe:	480b      	ldr	r0, [pc, #44]	; (800482c <RBI_ConfigRFSwitch+0x3c>)
+ 8004800:	f44f 7180 	mov.w	r1, #256	; 0x100
+ 8004804:	f003 ffc8 	bl	8008798 <HAL_GPIO_WritePin>
+ 8004808:	2200      	movs	r2, #0
+ 800480a:	4809      	ldr	r0, [pc, #36]	; (8004830 <RBI_ConfigRFSwitch+0x40>)
+ 800480c:	f44f 5100 	mov.w	r1, #8192	; 0x2000
+ 8004810:	f003 ffc2 	bl	8008798 <HAL_GPIO_WritePin>
+ 8004814:	2000      	movs	r0, #0
+ 8004816:	bd10      	pop	{r4, pc}
+ 8004818:	2201      	movs	r2, #1
+ 800481a:	e7f0      	b.n	80047fe <RBI_ConfigRFSwitch+0xe>
+ 800481c:	2200      	movs	r2, #0
+ 800481e:	4803      	ldr	r0, [pc, #12]	; (800482c <RBI_ConfigRFSwitch+0x3c>)
+ 8004820:	f44f 7180 	mov.w	r1, #256	; 0x100
+ 8004824:	f003 ffb8 	bl	8008798 <HAL_GPIO_WritePin>
+ 8004828:	2201      	movs	r2, #1
+ 800482a:	e7ee      	b.n	800480a <RBI_ConfigRFSwitch+0x1a>
+ 800482c:	48000400 	.word	0x48000400
+ 8004830:	48000800 	.word	0x48000800
+
+08004834 <RBI_GetTxConfig>:
+ 8004834:	2002      	movs	r0, #2
+ 8004836:	4770      	bx	lr
+
+08004838 <RBI_IsTCXO>:
+ 8004838:	2000      	movs	r0, #0
+ 800483a:	4770      	bx	lr
+
+0800483c <RBI_IsDCDC>:
+ 800483c:	2001      	movs	r0, #1
+ 800483e:	4770      	bx	lr
+
+08004840 <RBI_GetRFOMaxPowerConfig>:
+ 8004840:	2800      	cmp	r0, #0
+ 8004842:	bf0c      	ite	eq
+ 8004844:	200f      	moveq	r0, #15
+ 8004846:	2016      	movne	r0, #22
+ 8004848:	4770      	bx	lr
+	...
+
+0800484c <Reset_Handler>:
+ 800484c:	480d      	ldr	r0, [pc, #52]	; (8004884 <LoopForever+0x2>)
+ 800484e:	4685      	mov	sp, r0
+ 8004850:	f002 fe98 	bl	8007584 <SystemInit>
+ 8004854:	480c      	ldr	r0, [pc, #48]	; (8004888 <LoopForever+0x6>)
+ 8004856:	490d      	ldr	r1, [pc, #52]	; (800488c <LoopForever+0xa>)
+ 8004858:	4a0d      	ldr	r2, [pc, #52]	; (8004890 <LoopForever+0xe>)
+ 800485a:	2300      	movs	r3, #0
+ 800485c:	e002      	b.n	8004864 <LoopCopyDataInit>
+
+0800485e <CopyDataInit>:
+ 800485e:	58d4      	ldr	r4, [r2, r3]
+ 8004860:	50c4      	str	r4, [r0, r3]
+ 8004862:	3304      	adds	r3, #4
+
+08004864 <LoopCopyDataInit>:
+ 8004864:	18c4      	adds	r4, r0, r3
+ 8004866:	428c      	cmp	r4, r1
+ 8004868:	d3f9      	bcc.n	800485e <CopyDataInit>
+ 800486a:	4a0a      	ldr	r2, [pc, #40]	; (8004894 <LoopForever+0x12>)
+ 800486c:	4c0a      	ldr	r4, [pc, #40]	; (8004898 <LoopForever+0x16>)
+ 800486e:	2300      	movs	r3, #0
+ 8004870:	e001      	b.n	8004876 <LoopFillZerobss>
+
+08004872 <FillZerobss>:
+ 8004872:	6013      	str	r3, [r2, #0]
+ 8004874:	3204      	adds	r2, #4
+
+08004876 <LoopFillZerobss>:
+ 8004876:	42a2      	cmp	r2, r4
+ 8004878:	d3fb      	bcc.n	8004872 <FillZerobss>
+ 800487a:	f00f fdc5 	bl	8014408 <__libc_init_array>
+ 800487e:	f7fd ff1f 	bl	80026c0 <main>
+
+08004882 <LoopForever>:
+ 8004882:	e7fe      	b.n	8004882 <LoopForever>
+ 8004884:	20010000 	.word	0x20010000
+ 8004888:	20000000 	.word	0x20000000
+ 800488c:	200008cc 	.word	0x200008cc
+ 8004890:	08015c38 	.word	0x08015c38
+ 8004894:	200008cc 	.word	0x200008cc
+ 8004898:	20002e3c 	.word	0x20002e3c
+
+0800489c <ADC_IRQHandler>:
+ 800489c:	e7fe      	b.n	800489c <ADC_IRQHandler>
+
+0800489e <LL_AHB2_GRP1_EnableClock.constprop.0>:
+ 800489e:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 80048a2:	b082      	sub	sp, #8
+ 80048a4:	6cda      	ldr	r2, [r3, #76]	; 0x4c
+ 80048a6:	f042 0201 	orr.w	r2, r2, #1
+ 80048aa:	64da      	str	r2, [r3, #76]	; 0x4c
+ 80048ac:	6cdb      	ldr	r3, [r3, #76]	; 0x4c
+ 80048ae:	f003 0301 	and.w	r3, r3, #1
+ 80048b2:	9301      	str	r3, [sp, #4]
+ 80048b4:	9b01      	ldr	r3, [sp, #4]
+ 80048b6:	b002      	add	sp, #8
+ 80048b8:	4770      	bx	lr
+	...
+
+080048bc <XWL55_WLE5_53L0X_I2C2Configure>:
+ 80048bc:	b530      	push	{r4, r5, lr}
+ 80048be:	b087      	sub	sp, #28
+ 80048c0:	f7ff ffed 	bl	800489e <LL_AHB2_GRP1_EnableClock.constprop.0>
+ 80048c4:	f44f 5180 	mov.w	r1, #4096	; 0x1000
+ 80048c8:	2201      	movs	r2, #1
+ 80048ca:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 80048ce:	f003 ff63 	bl	8008798 <HAL_GPIO_WritePin>
+ 80048d2:	2201      	movs	r2, #1
+ 80048d4:	f44f 6100 	mov.w	r1, #2048	; 0x800
+ 80048d8:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 80048dc:	f003 ff5c 	bl	8008798 <HAL_GPIO_WritePin>
+ 80048e0:	f44f 55c0 	mov.w	r5, #6144	; 0x1800
+ 80048e4:	2311      	movs	r3, #17
+ 80048e6:	e9cd 5301 	strd	r5, r3, [sp, #4]
+ 80048ea:	a901      	add	r1, sp, #4
+ 80048ec:	2301      	movs	r3, #1
+ 80048ee:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 80048f2:	9303      	str	r3, [sp, #12]
+ 80048f4:	f003 fe2a 	bl	800854c <HAL_GPIO_Init>
+ 80048f8:	2408      	movs	r4, #8
+ 80048fa:	250a      	movs	r5, #10
+ 80048fc:	2200      	movs	r2, #0
+ 80048fe:	f44f 5180 	mov.w	r1, #4096	; 0x1000
+ 8004902:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8004906:	f003 ff47 	bl	8008798 <HAL_GPIO_WritePin>
+ 800490a:	2001      	movs	r0, #1
+ 800490c:	f7fe f948 	bl	8002ba0 <HAL_Delay>
+ 8004910:	2201      	movs	r2, #1
+ 8004912:	f44f 5180 	mov.w	r1, #4096	; 0x1000
+ 8004916:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 800491a:	f003 ff3d 	bl	8008798 <HAL_GPIO_WritePin>
+ 800491e:	2001      	movs	r0, #1
+ 8004920:	f7fe f93e 	bl	8002ba0 <HAL_Delay>
+ 8004924:	3d01      	subs	r5, #1
+ 8004926:	d1e9      	bne.n	80048fc <XWL55_WLE5_53L0X_I2C2Configure+0x40>
+ 8004928:	f44f 6100 	mov.w	r1, #2048	; 0x800
+ 800492c:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8004930:	f003 ff2c 	bl	800878c <HAL_GPIO_ReadPin>
+ 8004934:	b908      	cbnz	r0, 800493a <XWL55_WLE5_53L0X_I2C2Configure+0x7e>
+ 8004936:	3c01      	subs	r4, #1
+ 8004938:	d1df      	bne.n	80048fa <XWL55_WLE5_53L0X_I2C2Configure+0x3e>
+ 800493a:	f44f 6100 	mov.w	r1, #2048	; 0x800
+ 800493e:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8004942:	f003 ff23 	bl	800878c <HAL_GPIO_ReadPin>
+ 8004946:	bb68      	cbnz	r0, 80049a4 <XWL55_WLE5_53L0X_I2C2Configure+0xe8>
+ 8004948:	f7ff ffa9 	bl	800489e <LL_AHB2_GRP1_EnableClock.constprop.0>
+ 800494c:	2404      	movs	r4, #4
+ 800494e:	2301      	movs	r3, #1
+ 8004950:	9003      	str	r0, [sp, #12]
+ 8004952:	a901      	add	r1, sp, #4
+ 8004954:	482a      	ldr	r0, [pc, #168]	; (8004a00 <XWL55_WLE5_53L0X_I2C2Configure+0x144>)
+ 8004956:	e9cd 4301 	strd	r4, r3, [sp, #4]
+ 800495a:	f003 fdf7 	bl	800854c <HAL_GPIO_Init>
+ 800495e:	4c28      	ldr	r4, [pc, #160]	; (8004a00 <XWL55_WLE5_53L0X_I2C2Configure+0x144>)
+ 8004960:	2201      	movs	r2, #1
+ 8004962:	2104      	movs	r1, #4
+ 8004964:	4620      	mov	r0, r4
+ 8004966:	f003 ff17 	bl	8008798 <HAL_GPIO_WritePin>
+ 800496a:	2021      	movs	r0, #33	; 0x21
+ 800496c:	f7fe f918 	bl	8002ba0 <HAL_Delay>
+ 8004970:	2200      	movs	r2, #0
+ 8004972:	2104      	movs	r1, #4
+ 8004974:	4620      	mov	r0, r4
+ 8004976:	f003 ff0f 	bl	8008798 <HAL_GPIO_WritePin>
+ 800497a:	2021      	movs	r0, #33	; 0x21
+ 800497c:	f7fe f910 	bl	8002ba0 <HAL_Delay>
+ 8004980:	2201      	movs	r2, #1
+ 8004982:	2104      	movs	r1, #4
+ 8004984:	4620      	mov	r0, r4
+ 8004986:	f003 ff07 	bl	8008798 <HAL_GPIO_WritePin>
+ 800498a:	2021      	movs	r0, #33	; 0x21
+ 800498c:	f7fe f908 	bl	8002ba0 <HAL_Delay>
+ 8004990:	4620      	mov	r0, r4
+ 8004992:	2200      	movs	r2, #0
+ 8004994:	2104      	movs	r1, #4
+ 8004996:	f003 feff 	bl	8008798 <HAL_GPIO_WritePin>
+ 800499a:	f44f 7025 	mov.w	r0, #660	; 0x294
+ 800499e:	f7fe f8ff 	bl	8002ba0 <HAL_Delay>
+ 80049a2:	e7dd      	b.n	8004960 <XWL55_WLE5_53L0X_I2C2Configure+0xa4>
+ 80049a4:	f7ff ff7b 	bl	800489e <LL_AHB2_GRP1_EnableClock.constprop.0>
+ 80049a8:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 80049ac:	2400      	movs	r4, #0
+ 80049ae:	6d9a      	ldr	r2, [r3, #88]	; 0x58
+ 80049b0:	f442 0280 	orr.w	r2, r2, #4194304	; 0x400000
+ 80049b4:	659a      	str	r2, [r3, #88]	; 0x58
+ 80049b6:	6d9b      	ldr	r3, [r3, #88]	; 0x58
+ 80049b8:	f403 0380 	and.w	r3, r3, #4194304	; 0x400000
+ 80049bc:	9300      	str	r3, [sp, #0]
+ 80049be:	f44f 52c0 	mov.w	r2, #6144	; 0x1800
+ 80049c2:	9b00      	ldr	r3, [sp, #0]
+ 80049c4:	2312      	movs	r3, #18
+ 80049c6:	e9cd 2301 	strd	r2, r3, [sp, #4]
+ 80049ca:	2303      	movs	r3, #3
+ 80049cc:	e9cd 4303 	strd	r4, r3, [sp, #12]
+ 80049d0:	2304      	movs	r3, #4
+ 80049d2:	eb0d 0103 	add.w	r1, sp, r3
+ 80049d6:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 80049da:	9305      	str	r3, [sp, #20]
+ 80049dc:	f003 fdb6 	bl	800854c <HAL_GPIO_Init>
+ 80049e0:	4808      	ldr	r0, [pc, #32]	; (8004a04 <XWL55_WLE5_53L0X_I2C2Configure+0x148>)
+ 80049e2:	4909      	ldr	r1, [pc, #36]	; (8004a08 <XWL55_WLE5_53L0X_I2C2Configure+0x14c>)
+ 80049e4:	4b09      	ldr	r3, [pc, #36]	; (8004a0c <XWL55_WLE5_53L0X_I2C2Configure+0x150>)
+ 80049e6:	6084      	str	r4, [r0, #8]
+ 80049e8:	e9c0 1300 	strd	r1, r3, [r0]
+ 80049ec:	2301      	movs	r3, #1
+ 80049ee:	e9c0 3403 	strd	r3, r4, [r0, #12]
+ 80049f2:	e9c0 4407 	strd	r4, r4, [r0, #28]
+ 80049f6:	6144      	str	r4, [r0, #20]
+ 80049f8:	f004 f842 	bl	8008a80 <HAL_I2C_Init>
+ 80049fc:	b007      	add	sp, #28
+ 80049fe:	bd30      	pop	{r4, r5, pc}
+ 8004a00:	48000400 	.word	0x48000400
+ 8004a04:	20000e78 	.word	0x20000e78
+ 8004a08:	40005800 	.word	0x40005800
+ 8004a0c:	2010091a 	.word	0x2010091a
+
+08004a10 <XWL55_WLE5_53L0X_Init>:
+ 8004a10:	f7ff bf54 	b.w	80048bc <XWL55_WLE5_53L0X_I2C2Configure>
+
+08004a14 <XWL55_WLE5_53L0X_ResetId>:
+ 8004a14:	b110      	cbz	r0, 8004a1c <XWL55_WLE5_53L0X_ResetId+0x8>
+ 8004a16:	2801      	cmp	r0, #1
+ 8004a18:	d009      	beq.n	8004a2e <XWL55_WLE5_53L0X_ResetId+0x1a>
+ 8004a1a:	4770      	bx	lr
+ 8004a1c:	3901      	subs	r1, #1
+ 8004a1e:	424a      	negs	r2, r1
+ 8004a20:	414a      	adcs	r2, r1
+ 8004a22:	f04f 4090 	mov.w	r0, #1207959552	; 0x48000000
+ 8004a26:	f44f 7100 	mov.w	r1, #512	; 0x200
+ 8004a2a:	f003 beb5 	b.w	8008798 <HAL_GPIO_WritePin>
+ 8004a2e:	1e4b      	subs	r3, r1, #1
+ 8004a30:	425a      	negs	r2, r3
+ 8004a32:	4802      	ldr	r0, [pc, #8]	; (8004a3c <XWL55_WLE5_53L0X_ResetId+0x28>)
+ 8004a34:	415a      	adcs	r2, r3
+ 8004a36:	2108      	movs	r1, #8
+ 8004a38:	e7f7      	b.n	8004a2a <XWL55_WLE5_53L0X_ResetId+0x16>
+ 8004a3a:	bf00      	nop
+ 8004a3c:	48000400 	.word	0x48000400
+
+08004a40 <MX_TOF_Process>:
+ 8004a40:	b508      	push	{r3, lr}
+ 8004a42:	2001      	movs	r0, #1
+ 8004a44:	f7fe fc7c 	bl	8003340 <STS_SENSOR_Power_ON>
+ 8004a48:	2064      	movs	r0, #100	; 0x64
+ 8004a4a:	f7fe f8a9 	bl	8002ba0 <HAL_Delay>
+ 8004a4e:	f000 f9e1 	bl	8004e14 <STS_TOF_VL53L0X_Range_Process>
+ 8004a52:	2064      	movs	r0, #100	; 0x64
+ 8004a54:	f7fe f8a4 	bl	8002ba0 <HAL_Delay>
+ 8004a58:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 8004a5c:	2001      	movs	r0, #1
+ 8004a5e:	f7fe bc74 	b.w	800334a <STS_SENSOR_Power_OFF>
+	...
+
+08004a64 <STS_R0_SENSOR_Read>:
+ 8004a64:	4b05      	ldr	r3, [pc, #20]	; (8004a7c <STS_R0_SENSOR_Read+0x18>)
+ 8004a66:	681a      	ldr	r2, [r3, #0]
+ 8004a68:	8002      	strh	r2, [r0, #0]
+ 8004a6a:	685a      	ldr	r2, [r3, #4]
+ 8004a6c:	689b      	ldr	r3, [r3, #8]
+ 8004a6e:	8143      	strh	r3, [r0, #10]
+ 8004a70:	4b03      	ldr	r3, [pc, #12]	; (8004a80 <STS_R0_SENSOR_Read+0x1c>)
+ 8004a72:	8102      	strh	r2, [r0, #8]
+ 8004a74:	2201      	movs	r2, #1
+ 8004a76:	701a      	strb	r2, [r3, #0]
+ 8004a78:	4770      	bx	lr
+ 8004a7a:	bf00      	nop
+ 8004a7c:	20000ef8 	.word	0x20000ef8
+ 8004a80:	20000e51 	.word	0x20000e51
+
+08004a84 <STS_SENSOR_MEMS_Get_ID>:
+ 8004a84:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 8004a86:	4604      	mov	r4, r0
+ 8004a88:	f000 f816 	bl	8004ab8 <sts_tof_vl53l0x_DetectSensors>
+ 8004a8c:	f010 05ff 	ands.w	r5, r0, #255	; 0xff
+ 8004a90:	bf1c      	itt	ne
+ 8004a92:	23ee      	movne	r3, #238	; 0xee
+ 8004a94:	7023      	strbne	r3, [r4, #0]
+ 8004a96:	23aa      	movs	r3, #170	; 0xaa
+ 8004a98:	7063      	strb	r3, [r4, #1]
+ 8004a9a:	9301      	str	r3, [sp, #4]
+ 8004a9c:	2200      	movs	r2, #0
+ 8004a9e:	7823      	ldrb	r3, [r4, #0]
+ 8004aa0:	9300      	str	r3, [sp, #0]
+ 8004aa2:	4611      	mov	r1, r2
+ 8004aa4:	4b03      	ldr	r3, [pc, #12]	; (8004ab4 <STS_SENSOR_MEMS_Get_ID+0x30>)
+ 8004aa6:	2001      	movs	r0, #1
+ 8004aa8:	f00e ff66 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8004aac:	4628      	mov	r0, r5
+ 8004aae:	b003      	add	sp, #12
+ 8004ab0:	bd30      	pop	{r4, r5, pc}
+ 8004ab2:	bf00      	nop
+ 8004ab4:	08014ef0 	.word	0x08014ef0
+
+08004ab8 <sts_tof_vl53l0x_DetectSensors>:
+ 8004ab8:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8004abc:	2400      	movs	r4, #0
+ 8004abe:	4f41      	ldr	r7, [pc, #260]	; (8004bc4 <sts_tof_vl53l0x_DetectSensors+0x10c>)
+ 8004ac0:	4d41      	ldr	r5, [pc, #260]	; (8004bc8 <sts_tof_vl53l0x_DetectSensors+0x110>)
+ 8004ac2:	603c      	str	r4, [r7, #0]
+ 8004ac4:	b089      	sub	sp, #36	; 0x24
+ 8004ac6:	4621      	mov	r1, r4
+ 8004ac8:	4620      	mov	r0, r4
+ 8004aca:	f7ff ffa3 	bl	8004a14 <XWL55_WLE5_53L0X_ResetId>
+ 8004ace:	4621      	mov	r1, r4
+ 8004ad0:	2001      	movs	r0, #1
+ 8004ad2:	f7ff ff9f 	bl	8004a14 <XWL55_WLE5_53L0X_ResetId>
+ 8004ad6:	4621      	mov	r1, r4
+ 8004ad8:	2002      	movs	r0, #2
+ 8004ada:	f7ff ff9b 	bl	8004a14 <XWL55_WLE5_53L0X_ResetId>
+ 8004ade:	f8df a0ec 	ldr.w	sl, [pc, #236]	; 8004bcc <sts_tof_vl53l0x_DetectSensors+0x114>
+ 8004ae2:	f8df b0ec 	ldr.w	fp, [pc, #236]	; 8004bd0 <sts_tof_vl53l0x_DetectSensors+0x118>
+ 8004ae6:	f8df 90ec 	ldr.w	r9, [pc, #236]	; 8004bd4 <sts_tof_vl53l0x_DetectSensors+0x11c>
+ 8004aea:	f895 0164 	ldrb.w	r0, [r5, #356]	; 0x164
+ 8004aee:	2352      	movs	r3, #82	; 0x52
+ 8004af0:	2101      	movs	r1, #1
+ 8004af2:	2600      	movs	r6, #0
+ 8004af4:	f885 3160 	strb.w	r3, [r5, #352]	; 0x160
+ 8004af8:	f8c5 6168 	str.w	r6, [r5, #360]	; 0x168
+ 8004afc:	f7ff ff8a 	bl	8004a14 <XWL55_WLE5_53L0X_ResetId>
+ 8004b00:	2003      	movs	r0, #3
+ 8004b02:	f7fe f84d 	bl	8002ba0 <HAL_Delay>
+ 8004b06:	f10d 021e 	add.w	r2, sp, #30
+ 8004b0a:	21c0      	movs	r1, #192	; 0xc0
+ 8004b0c:	4628      	mov	r0, r5
+ 8004b0e:	f002 fced 	bl	80074ec <VL53L0X_RdWord>
+ 8004b12:	4602      	mov	r2, r0
+ 8004b14:	b150      	cbz	r0, 8004b2c <sts_tof_vl53l0x_DetectSensors+0x74>
+ 8004b16:	4b30      	ldr	r3, [pc, #192]	; (8004bd8 <sts_tof_vl53l0x_DetectSensors+0x120>)
+ 8004b18:	4632      	mov	r2, r6
+ 8004b1a:	4611      	mov	r1, r2
+ 8004b1c:	2001      	movs	r0, #1
+ 8004b1e:	f00e ff2b 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8004b22:	2100      	movs	r1, #0
+ 8004b24:	b2e0      	uxtb	r0, r4
+ 8004b26:	f7ff ff75 	bl	8004a14 <XWL55_WLE5_53L0X_ResetId>
+ 8004b2a:	e037      	b.n	8004b9c <sts_tof_vl53l0x_DetectSensors+0xe4>
+ 8004b2c:	f8bd 301e 	ldrh.w	r3, [sp, #30]
+ 8004b30:	f64e 61aa 	movw	r1, #61098	; 0xeeaa
+ 8004b34:	428b      	cmp	r3, r1
+ 8004b36:	d13d      	bne.n	8004bb4 <sts_tof_vl53l0x_DetectSensors+0xfc>
+ 8004b38:	0066      	lsls	r6, r4, #1
+ 8004b3a:	3654      	adds	r6, #84	; 0x54
+ 8004b3c:	b2f6      	uxtb	r6, r6
+ 8004b3e:	9005      	str	r0, [sp, #20]
+ 8004b40:	4631      	mov	r1, r6
+ 8004b42:	4628      	mov	r0, r5
+ 8004b44:	f000 f9ea 	bl	8004f1c <VL53L0X_SetDeviceAddress>
+ 8004b48:	4680      	mov	r8, r0
+ 8004b4a:	b110      	cbz	r0, 8004b52 <sts_tof_vl53l0x_DetectSensors+0x9a>
+ 8004b4c:	4b23      	ldr	r3, [pc, #140]	; (8004bdc <sts_tof_vl53l0x_DetectSensors+0x124>)
+ 8004b4e:	9a05      	ldr	r2, [sp, #20]
+ 8004b50:	e7e3      	b.n	8004b1a <sts_tof_vl53l0x_DetectSensors+0x62>
+ 8004b52:	f10d 021e 	add.w	r2, sp, #30
+ 8004b56:	21c0      	movs	r1, #192	; 0xc0
+ 8004b58:	4628      	mov	r0, r5
+ 8004b5a:	f885 6160 	strb.w	r6, [r5, #352]	; 0x160
+ 8004b5e:	f002 fcc5 	bl	80074ec <VL53L0X_RdWord>
+ 8004b62:	4628      	mov	r0, r5
+ 8004b64:	f000 fb9e 	bl	80052a4 <VL53L0X_DataInit>
+ 8004b68:	4602      	mov	r2, r0
+ 8004b6a:	bb00      	cbnz	r0, 8004bae <sts_tof_vl53l0x_DetectSensors+0xf6>
+ 8004b6c:	683b      	ldr	r3, [r7, #0]
+ 8004b6e:	f8d9 1000 	ldr.w	r1, [r9]
+ 8004b72:	2001      	movs	r0, #1
+ 8004b74:	4403      	add	r3, r0
+ 8004b76:	603b      	str	r3, [r7, #0]
+ 8004b78:	fa00 f304 	lsl.w	r3, r0, r4
+ 8004b7c:	430b      	orrs	r3, r1
+ 8004b7e:	f8c9 3000 	str.w	r3, [r9]
+ 8004b82:	9302      	str	r3, [sp, #8]
+ 8004b84:	f895 3160 	ldrb.w	r3, [r5, #352]	; 0x160
+ 8004b88:	9301      	str	r3, [sp, #4]
+ 8004b8a:	f8d5 3164 	ldr.w	r3, [r5, #356]	; 0x164
+ 8004b8e:	9300      	str	r3, [sp, #0]
+ 8004b90:	4611      	mov	r1, r2
+ 8004b92:	4b13      	ldr	r3, [pc, #76]	; (8004be0 <sts_tof_vl53l0x_DetectSensors+0x128>)
+ 8004b94:	f8c5 0168 	str.w	r0, [r5, #360]	; 0x168
+ 8004b98:	f00e feee 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8004b9c:	3401      	adds	r4, #1
+ 8004b9e:	2c03      	cmp	r4, #3
+ 8004ba0:	f505 75c8 	add.w	r5, r5, #400	; 0x190
+ 8004ba4:	d1a1      	bne.n	8004aea <sts_tof_vl53l0x_DetectSensors+0x32>
+ 8004ba6:	6838      	ldr	r0, [r7, #0]
+ 8004ba8:	b009      	add	sp, #36	; 0x24
+ 8004baa:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 8004bae:	465b      	mov	r3, fp
+ 8004bb0:	4642      	mov	r2, r8
+ 8004bb2:	e7b2      	b.n	8004b1a <sts_tof_vl53l0x_DetectSensors+0x62>
+ 8004bb4:	9300      	str	r3, [sp, #0]
+ 8004bb6:	4601      	mov	r1, r0
+ 8004bb8:	4653      	mov	r3, sl
+ 8004bba:	2001      	movs	r0, #1
+ 8004bbc:	f00e fedc 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8004bc0:	e7af      	b.n	8004b22 <sts_tof_vl53l0x_DetectSensors+0x6a>
+ 8004bc2:	bf00      	nop
+ 8004bc4:	20000ef0 	.word	0x20000ef0
+ 8004bc8:	200000bc 	.word	0x200000bc
+ 8004bcc:	08014f9a 	.word	0x08014f9a
+ 8004bd0:	08014f80 	.word	0x08014f80
+ 8004bd4:	20000eec 	.word	0x20000eec
+ 8004bd8:	08014f05 	.word	0x08014f05
+ 8004bdc:	08014f15 	.word	0x08014f15
+ 8004be0:	08014f37 	.word	0x08014f37
+
+08004be4 <sts_tof_vl53l0x_SetupSingleShot>:
+ 8004be4:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8004be8:	f44f 4380 	mov.w	r3, #16384	; 0x4000
+ 8004bec:	b087      	sub	sp, #28
+ 8004bee:	f44f 1290 	mov.w	r2, #1179648	; 0x120000
+ 8004bf2:	e9cd 3202 	strd	r3, r2, [sp, #8]
+ 8004bf6:	4c68      	ldr	r4, [pc, #416]	; (8004d98 <sts_tof_vl53l0x_SetupSingleShot+0x1b4>)
+ 8004bf8:	f8df a1a0 	ldr.w	sl, [pc, #416]	; 8004d9c <sts_tof_vl53l0x_SetupSingleShot+0x1b8>
+ 8004bfc:	f8df b1a0 	ldr.w	fp, [pc, #416]	; 8004da0 <sts_tof_vl53l0x_SetupSingleShot+0x1bc>
+ 8004c00:	4605      	mov	r5, r0
+ 8004c02:	f04f 090a 	mov.w	r9, #10
+ 8004c06:	f04f 080e 	mov.w	r8, #14
+ 8004c0a:	f248 07e8 	movw	r7, #33000	; 0x80e8
+ 8004c0e:	2600      	movs	r6, #0
+ 8004c10:	f8d4 3168 	ldr.w	r3, [r4, #360]	; 0x168
+ 8004c14:	2b00      	cmp	r3, #0
+ 8004c16:	f000 80ae 	beq.w	8004d76 <sts_tof_vl53l0x_SetupSingleShot+0x192>
+ 8004c1a:	2200      	movs	r2, #0
+ 8004c1c:	4b61      	ldr	r3, [pc, #388]	; (8004da4 <sts_tof_vl53l0x_SetupSingleShot+0x1c0>)
+ 8004c1e:	9600      	str	r6, [sp, #0]
+ 8004c20:	4611      	mov	r1, r2
+ 8004c22:	2001      	movs	r0, #1
+ 8004c24:	f00e fea8 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8004c28:	4620      	mov	r0, r4
+ 8004c2a:	f000 fe2f 	bl	800588c <VL53L0X_StaticInit>
+ 8004c2e:	b128      	cbz	r0, 8004c3c <sts_tof_vl53l0x_SetupSingleShot+0x58>
+ 8004c30:	2200      	movs	r2, #0
+ 8004c32:	4b5d      	ldr	r3, [pc, #372]	; (8004da8 <sts_tof_vl53l0x_SetupSingleShot+0x1c4>)
+ 8004c34:	4611      	mov	r1, r2
+ 8004c36:	2001      	movs	r0, #1
+ 8004c38:	f00e fe9e 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8004c3c:	f10d 0212 	add.w	r2, sp, #18
+ 8004c40:	f10d 0111 	add.w	r1, sp, #17
+ 8004c44:	4620      	mov	r0, r4
+ 8004c46:	f000 fbdb 	bl	8005400 <VL53L0X_PerformRefCalibration>
+ 8004c4a:	b128      	cbz	r0, 8004c58 <sts_tof_vl53l0x_SetupSingleShot+0x74>
+ 8004c4c:	2200      	movs	r2, #0
+ 8004c4e:	4653      	mov	r3, sl
+ 8004c50:	4611      	mov	r1, r2
+ 8004c52:	2001      	movs	r0, #1
+ 8004c54:	f00e fe90 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8004c58:	f10d 0213 	add.w	r2, sp, #19
+ 8004c5c:	a905      	add	r1, sp, #20
+ 8004c5e:	4620      	mov	r0, r4
+ 8004c60:	f000 ff19 	bl	8005a96 <VL53L0X_PerformRefSpadManagement>
+ 8004c64:	b128      	cbz	r0, 8004c72 <sts_tof_vl53l0x_SetupSingleShot+0x8e>
+ 8004c66:	2200      	movs	r2, #0
+ 8004c68:	4b50      	ldr	r3, [pc, #320]	; (8004dac <sts_tof_vl53l0x_SetupSingleShot+0x1c8>)
+ 8004c6a:	4611      	mov	r1, r2
+ 8004c6c:	2001      	movs	r0, #1
+ 8004c6e:	f00e fe83 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8004c72:	2100      	movs	r1, #0
+ 8004c74:	4620      	mov	r0, r4
+ 8004c76:	f000 f955 	bl	8004f24 <VL53L0X_SetDeviceMode>
+ 8004c7a:	b128      	cbz	r0, 8004c88 <sts_tof_vl53l0x_SetupSingleShot+0xa4>
+ 8004c7c:	2200      	movs	r2, #0
+ 8004c7e:	4b4c      	ldr	r3, [pc, #304]	; (8004db0 <sts_tof_vl53l0x_SetupSingleShot+0x1cc>)
+ 8004c80:	4611      	mov	r1, r2
+ 8004c82:	2001      	movs	r0, #1
+ 8004c84:	f00e fe78 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8004c88:	2201      	movs	r2, #1
+ 8004c8a:	2100      	movs	r1, #0
+ 8004c8c:	4620      	mov	r0, r4
+ 8004c8e:	f000 fa0d 	bl	80050ac <VL53L0X_SetLimitCheckEnable>
+ 8004c92:	b128      	cbz	r0, 8004ca0 <sts_tof_vl53l0x_SetupSingleShot+0xbc>
+ 8004c94:	2200      	movs	r2, #0
+ 8004c96:	4b47      	ldr	r3, [pc, #284]	; (8004db4 <sts_tof_vl53l0x_SetupSingleShot+0x1d0>)
+ 8004c98:	4611      	mov	r1, r2
+ 8004c9a:	2001      	movs	r0, #1
+ 8004c9c:	f00e fe6c 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8004ca0:	2201      	movs	r2, #1
+ 8004ca2:	4611      	mov	r1, r2
+ 8004ca4:	4620      	mov	r0, r4
+ 8004ca6:	f000 fa01 	bl	80050ac <VL53L0X_SetLimitCheckEnable>
+ 8004caa:	b128      	cbz	r0, 8004cb8 <sts_tof_vl53l0x_SetupSingleShot+0xd4>
+ 8004cac:	2200      	movs	r2, #0
+ 8004cae:	4b41      	ldr	r3, [pc, #260]	; (8004db4 <sts_tof_vl53l0x_SetupSingleShot+0x1d0>)
+ 8004cb0:	4611      	mov	r1, r2
+ 8004cb2:	2001      	movs	r0, #1
+ 8004cb4:	f00e fe60 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8004cb8:	2d02      	cmp	r5, #2
+ 8004cba:	d865      	bhi.n	8004d88 <sts_tof_vl53l0x_SetupSingleShot+0x1a4>
+ 8004cbc:	4b3e      	ldr	r3, [pc, #248]	; (8004db8 <sts_tof_vl53l0x_SetupSingleShot+0x1d4>)
+ 8004cbe:	f833 3015 	ldrh.w	r3, [r3, r5, lsl #1]
+ 8004cc2:	9302      	str	r3, [sp, #8]
+ 8004cc4:	4b3d      	ldr	r3, [pc, #244]	; (8004dbc <sts_tof_vl53l0x_SetupSingleShot+0x1d8>)
+ 8004cc6:	f853 3025 	ldr.w	r3, [r3, r5, lsl #2]
+ 8004cca:	9303      	str	r3, [sp, #12]
+ 8004ccc:	4b3c      	ldr	r3, [pc, #240]	; (8004dc0 <sts_tof_vl53l0x_SetupSingleShot+0x1dc>)
+ 8004cce:	f853 7025 	ldr.w	r7, [r3, r5, lsl #2]
+ 8004cd2:	4b3c      	ldr	r3, [pc, #240]	; (8004dc4 <sts_tof_vl53l0x_SetupSingleShot+0x1e0>)
+ 8004cd4:	f813 8005 	ldrb.w	r8, [r3, r5]
+ 8004cd8:	4b3b      	ldr	r3, [pc, #236]	; (8004dc8 <sts_tof_vl53l0x_SetupSingleShot+0x1e4>)
+ 8004cda:	f813 9005 	ldrb.w	r9, [r3, r5]
+ 8004cde:	9a02      	ldr	r2, [sp, #8]
+ 8004ce0:	2101      	movs	r1, #1
+ 8004ce2:	4620      	mov	r0, r4
+ 8004ce4:	f000 fa2d 	bl	8005142 <VL53L0X_SetLimitCheckValue>
+ 8004ce8:	b128      	cbz	r0, 8004cf6 <sts_tof_vl53l0x_SetupSingleShot+0x112>
+ 8004cea:	2200      	movs	r2, #0
+ 8004cec:	4b37      	ldr	r3, [pc, #220]	; (8004dcc <sts_tof_vl53l0x_SetupSingleShot+0x1e8>)
+ 8004cee:	4611      	mov	r1, r2
+ 8004cf0:	2001      	movs	r0, #1
+ 8004cf2:	f00e fe41 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8004cf6:	9a03      	ldr	r2, [sp, #12]
+ 8004cf8:	2100      	movs	r1, #0
+ 8004cfa:	4620      	mov	r0, r4
+ 8004cfc:	f000 fa21 	bl	8005142 <VL53L0X_SetLimitCheckValue>
+ 8004d00:	b128      	cbz	r0, 8004d0e <sts_tof_vl53l0x_SetupSingleShot+0x12a>
+ 8004d02:	2200      	movs	r2, #0
+ 8004d04:	4b31      	ldr	r3, [pc, #196]	; (8004dcc <sts_tof_vl53l0x_SetupSingleShot+0x1e8>)
+ 8004d06:	4611      	mov	r1, r2
+ 8004d08:	2001      	movs	r0, #1
+ 8004d0a:	f00e fe35 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8004d0e:	4639      	mov	r1, r7
+ 8004d10:	4620      	mov	r0, r4
+ 8004d12:	f000 f921 	bl	8004f58 <VL53L0X_SetMeasurementTimingBudgetMicroSeconds>
+ 8004d16:	b128      	cbz	r0, 8004d24 <sts_tof_vl53l0x_SetupSingleShot+0x140>
+ 8004d18:	2200      	movs	r2, #0
+ 8004d1a:	4b2d      	ldr	r3, [pc, #180]	; (8004dd0 <sts_tof_vl53l0x_SetupSingleShot+0x1ec>)
+ 8004d1c:	4611      	mov	r1, r2
+ 8004d1e:	2001      	movs	r0, #1
+ 8004d20:	f00e fe2a 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8004d24:	4642      	mov	r2, r8
+ 8004d26:	2100      	movs	r1, #0
+ 8004d28:	4620      	mov	r0, r4
+ 8004d2a:	f000 f917 	bl	8004f5c <VL53L0X_SetVcselPulsePeriod>
+ 8004d2e:	b128      	cbz	r0, 8004d3c <sts_tof_vl53l0x_SetupSingleShot+0x158>
+ 8004d30:	2200      	movs	r2, #0
+ 8004d32:	465b      	mov	r3, fp
+ 8004d34:	4611      	mov	r1, r2
+ 8004d36:	2001      	movs	r0, #1
+ 8004d38:	f00e fe1e 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8004d3c:	464a      	mov	r2, r9
+ 8004d3e:	2101      	movs	r1, #1
+ 8004d40:	4620      	mov	r0, r4
+ 8004d42:	f000 f90b 	bl	8004f5c <VL53L0X_SetVcselPulsePeriod>
+ 8004d46:	b128      	cbz	r0, 8004d54 <sts_tof_vl53l0x_SetupSingleShot+0x170>
+ 8004d48:	2200      	movs	r2, #0
+ 8004d4a:	465b      	mov	r3, fp
+ 8004d4c:	4611      	mov	r1, r2
+ 8004d4e:	2001      	movs	r0, #1
+ 8004d50:	f00e fe12 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8004d54:	f10d 0212 	add.w	r2, sp, #18
+ 8004d58:	f10d 0111 	add.w	r1, sp, #17
+ 8004d5c:	4620      	mov	r0, r4
+ 8004d5e:	f000 fb4f 	bl	8005400 <VL53L0X_PerformRefCalibration>
+ 8004d62:	b128      	cbz	r0, 8004d70 <sts_tof_vl53l0x_SetupSingleShot+0x18c>
+ 8004d64:	2200      	movs	r2, #0
+ 8004d66:	4653      	mov	r3, sl
+ 8004d68:	4611      	mov	r1, r2
+ 8004d6a:	2001      	movs	r0, #1
+ 8004d6c:	f00e fe04 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8004d70:	2301      	movs	r3, #1
+ 8004d72:	f8c4 317c 	str.w	r3, [r4, #380]	; 0x17c
+ 8004d76:	3601      	adds	r6, #1
+ 8004d78:	2e03      	cmp	r6, #3
+ 8004d7a:	f504 74c8 	add.w	r4, r4, #400	; 0x190
+ 8004d7e:	f47f af47 	bne.w	8004c10 <sts_tof_vl53l0x_SetupSingleShot+0x2c>
+ 8004d82:	b007      	add	sp, #28
+ 8004d84:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 8004d88:	2200      	movs	r2, #0
+ 8004d8a:	4b12      	ldr	r3, [pc, #72]	; (8004dd4 <sts_tof_vl53l0x_SetupSingleShot+0x1f0>)
+ 8004d8c:	4611      	mov	r1, r2
+ 8004d8e:	2001      	movs	r0, #1
+ 8004d90:	f00e fdf2 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8004d94:	e7a3      	b.n	8004cde <sts_tof_vl53l0x_SetupSingleShot+0xfa>
+ 8004d96:	bf00      	nop
+ 8004d98:	200000bc 	.word	0x200000bc
+ 8004d9c:	08014ff0 	.word	0x08014ff0
+ 8004da0:	080150e9 	.word	0x080150e9
+ 8004da4:	08014fab 	.word	0x08014fab
+ 8004da8:	08014fd5 	.word	0x08014fd5
+ 8004dac:	08015016 	.word	0x08015016
+ 8004db0:	0801503f 	.word	0x0801503f
+ 8004db4:	0801505d 	.word	0x0801505d
+ 8004db8:	0801519c 	.word	0x0801519c
+ 8004dbc:	080151a4 	.word	0x080151a4
+ 8004dc0:	080151b0 	.word	0x080151b0
+ 8004dc4:	080151bc 	.word	0x080151bc
+ 8004dc8:	080151bf 	.word	0x080151bf
+ 8004dcc:	0801508f 	.word	0x0801508f
+ 8004dd0:	080150b2 	.word	0x080150b2
+ 8004dd4:	08015081 	.word	0x08015081
+
+08004dd8 <sts_tof_vl53l0x_Sensor_SetNewRange>:
+ 8004dd8:	b510      	push	{r4, lr}
+ 8004dda:	7e0b      	ldrb	r3, [r1, #24]
+ 8004ddc:	b99b      	cbnz	r3, 8004e06 <sts_tof_vl53l0x_Sensor_SetNewRange+0x2e>
+ 8004dde:	f8d0 217c 	ldr.w	r2, [r0, #380]	; 0x17c
+ 8004de2:	8909      	ldrh	r1, [r1, #8]
+ 8004de4:	b112      	cbz	r2, 8004dec <sts_tof_vl53l0x_Sensor_SetNewRange+0x14>
+ 8004de6:	e9c0 135e 	strd	r1, r3, [r0, #376]	; 0x178
+ 8004dea:	bd10      	pop	{r4, pc}
+ 8004dec:	4b08      	ldr	r3, [pc, #32]	; (8004e10 <sts_tof_vl53l0x_Sensor_SetNewRange+0x38>)
+ 8004dee:	f8d0 4178 	ldr.w	r4, [r0, #376]	; 0x178
+ 8004df2:	681a      	ldr	r2, [r3, #0]
+ 8004df4:	f5c2 7380 	rsb	r3, r2, #256	; 0x100
+ 8004df8:	434b      	muls	r3, r1
+ 8004dfa:	fb04 3302 	mla	r3, r4, r2, r3
+ 8004dfe:	121b      	asrs	r3, r3, #8
+ 8004e00:	f8c0 3178 	str.w	r3, [r0, #376]	; 0x178
+ 8004e04:	e7f1      	b.n	8004dea <sts_tof_vl53l0x_Sensor_SetNewRange+0x12>
+ 8004e06:	2301      	movs	r3, #1
+ 8004e08:	f8c0 317c 	str.w	r3, [r0, #380]	; 0x17c
+ 8004e0c:	e7ed      	b.n	8004dea <sts_tof_vl53l0x_Sensor_SetNewRange+0x12>
+ 8004e0e:	bf00      	nop
+ 8004e10:	200000b8 	.word	0x200000b8
+
+08004e14 <STS_TOF_VL53L0X_Range_Process>:
+ 8004e14:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8004e18:	f8df 90dc 	ldr.w	r9, [pc, #220]	; 8004ef8 <STS_TOF_VL53L0X_Range_Process+0xe4>
+ 8004e1c:	4e37      	ldr	r6, [pc, #220]	; (8004efc <STS_TOF_VL53L0X_Range_Process+0xe8>)
+ 8004e1e:	b087      	sub	sp, #28
+ 8004e20:	f7ff fdf6 	bl	8004a10 <XWL55_WLE5_53L0X_Init>
+ 8004e24:	f8d9 3000 	ldr.w	r3, [r9]
+ 8004e28:	b10b      	cbz	r3, 8004e2e <STS_TOF_VL53L0X_Range_Process+0x1a>
+ 8004e2a:	6833      	ldr	r3, [r6, #0]
+ 8004e2c:	b94b      	cbnz	r3, 8004e42 <STS_TOF_VL53L0X_Range_Process+0x2e>
+ 8004e2e:	f7ff fe43 	bl	8004ab8 <sts_tof_vl53l0x_DetectSensors>
+ 8004e32:	2200      	movs	r2, #0
+ 8004e34:	6030      	str	r0, [r6, #0]
+ 8004e36:	4b32      	ldr	r3, [pc, #200]	; (8004f00 <STS_TOF_VL53L0X_Range_Process+0xec>)
+ 8004e38:	9000      	str	r0, [sp, #0]
+ 8004e3a:	4611      	mov	r1, r2
+ 8004e3c:	2001      	movs	r0, #1
+ 8004e3e:	f00e fd9b 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8004e42:	6833      	ldr	r3, [r6, #0]
+ 8004e44:	4d2f      	ldr	r5, [pc, #188]	; (8004f04 <STS_TOF_VL53L0X_Range_Process+0xf0>)
+ 8004e46:	2400      	movs	r4, #0
+ 8004e48:	42a3      	cmp	r3, r4
+ 8004e4a:	602c      	str	r4, [r5, #0]
+ 8004e4c:	606c      	str	r4, [r5, #4]
+ 8004e4e:	60ac      	str	r4, [r5, #8]
+ 8004e50:	dd47      	ble.n	8004ee2 <STS_TOF_VL53L0X_Range_Process+0xce>
+ 8004e52:	f8df 80b4 	ldr.w	r8, [pc, #180]	; 8004f08 <STS_TOF_VL53L0X_Range_Process+0xf4>
+ 8004e56:	4f2d      	ldr	r7, [pc, #180]	; (8004f0c <STS_TOF_VL53L0X_Range_Process+0xf8>)
+ 8004e58:	f8df a0b4 	ldr.w	sl, [pc, #180]	; 8004f10 <STS_TOF_VL53L0X_Range_Process+0xfc>
+ 8004e5c:	f8df b0b4 	ldr.w	fp, [pc, #180]	; 8004f14 <STS_TOF_VL53L0X_Range_Process+0x100>
+ 8004e60:	2002      	movs	r0, #2
+ 8004e62:	f7ff febf 	bl	8004be4 <sts_tof_vl53l0x_SetupSingleShot>
+ 8004e66:	602c      	str	r4, [r5, #0]
+ 8004e68:	606c      	str	r4, [r5, #4]
+ 8004e6a:	60ac      	str	r4, [r5, #8]
+ 8004e6c:	f888 4000 	strb.w	r4, [r8]
+ 8004e70:	f8d7 6168 	ldr.w	r6, [r7, #360]	; 0x168
+ 8004e74:	2e01      	cmp	r6, #1
+ 8004e76:	d11d      	bne.n	8004eb4 <STS_TOF_VL53L0X_Range_Process+0xa0>
+ 8004e78:	4925      	ldr	r1, [pc, #148]	; (8004f10 <STS_TOF_VL53L0X_Range_Process+0xfc>)
+ 8004e7a:	4638      	mov	r0, r7
+ 8004e7c:	f000 fc66 	bl	800574c <VL53L0X_PerformSingleRangingMeasurement>
+ 8004e80:	b9c0      	cbnz	r0, 8004eb4 <STS_TOF_VL53L0X_Range_Process+0xa0>
+ 8004e82:	9005      	str	r0, [sp, #20]
+ 8004e84:	4651      	mov	r1, sl
+ 8004e86:	4638      	mov	r0, r7
+ 8004e88:	f7ff ffa6 	bl	8004dd8 <sts_tof_vl53l0x_Sensor_SetNewRange>
+ 8004e8c:	f89a 3018 	ldrb.w	r3, [sl, #24]
+ 8004e90:	9a05      	ldr	r2, [sp, #20]
+ 8004e92:	bb4b      	cbnz	r3, 8004ee8 <STS_TOF_VL53L0X_Range_Process+0xd4>
+ 8004e94:	f8d7 3178 	ldr.w	r3, [r7, #376]	; 0x178
+ 8004e98:	f845 3024 	str.w	r3, [r5, r4, lsl #2]
+ 8004e9c:	f8d9 3000 	ldr.w	r3, [r9]
+ 8004ea0:	40a6      	lsls	r6, r4
+ 8004ea2:	431e      	orrs	r6, r3
+ 8004ea4:	f898 3000 	ldrb.w	r3, [r8]
+ 8004ea8:	f8c9 6000 	str.w	r6, [r9]
+ 8004eac:	f043 0301 	orr.w	r3, r3, #1
+ 8004eb0:	f888 3000 	strb.w	r3, [r8]
+ 8004eb4:	201e      	movs	r0, #30
+ 8004eb6:	3401      	adds	r4, #1
+ 8004eb8:	f7fd fe72 	bl	8002ba0 <HAL_Delay>
+ 8004ebc:	2c03      	cmp	r4, #3
+ 8004ebe:	f507 77c8 	add.w	r7, r7, #400	; 0x190
+ 8004ec2:	d1d5      	bne.n	8004e70 <STS_TOF_VL53L0X_Range_Process+0x5c>
+ 8004ec4:	f898 3000 	ldrb.w	r3, [r8]
+ 8004ec8:	b15b      	cbz	r3, 8004ee2 <STS_TOF_VL53L0X_Range_Process+0xce>
+ 8004eca:	682b      	ldr	r3, [r5, #0]
+ 8004ecc:	686a      	ldr	r2, [r5, #4]
+ 8004ece:	68a9      	ldr	r1, [r5, #8]
+ 8004ed0:	9300      	str	r3, [sp, #0]
+ 8004ed2:	e9cd 2101 	strd	r2, r1, [sp, #4]
+ 8004ed6:	2200      	movs	r2, #0
+ 8004ed8:	4b0f      	ldr	r3, [pc, #60]	; (8004f18 <STS_TOF_VL53L0X_Range_Process+0x104>)
+ 8004eda:	4611      	mov	r1, r2
+ 8004edc:	2001      	movs	r0, #1
+ 8004ede:	f00e fd4b 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8004ee2:	b007      	add	sp, #28
+ 8004ee4:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 8004ee8:	e9cd 4600 	strd	r4, r6, [sp]
+ 8004eec:	465b      	mov	r3, fp
+ 8004eee:	4611      	mov	r1, r2
+ 8004ef0:	4630      	mov	r0, r6
+ 8004ef2:	f00e fd41 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8004ef6:	e7dd      	b.n	8004eb4 <STS_TOF_VL53L0X_Range_Process+0xa0>
+ 8004ef8:	20000eec 	.word	0x20000eec
+ 8004efc:	20000ef4 	.word	0x20000ef4
+ 8004f00:	0801510d 	.word	0x0801510d
+ 8004f04:	20000ef8 	.word	0x20000ef8
+ 8004f08:	20000e51 	.word	0x20000e51
+ 8004f0c:	200000bc 	.word	0x200000bc
+ 8004f10:	20000ed0 	.word	0x20000ed0
+ 8004f14:	0801512b 	.word	0x0801512b
+ 8004f18:	0801514c 	.word	0x0801514c
+
+08004f1c <VL53L0X_SetDeviceAddress>:
+ 8004f1c:	084a      	lsrs	r2, r1, #1
+ 8004f1e:	218a      	movs	r1, #138	; 0x8a
+ 8004f20:	f002 ba96 	b.w	8007450 <VL53L0X_WrByte>
+
+08004f24 <VL53L0X_SetDeviceMode>:
+ 8004f24:	2915      	cmp	r1, #21
+ 8004f26:	d806      	bhi.n	8004f36 <VL53L0X_SetDeviceMode+0x12>
+ 8004f28:	4b04      	ldr	r3, [pc, #16]	; (8004f3c <VL53L0X_SetDeviceMode+0x18>)
+ 8004f2a:	40cb      	lsrs	r3, r1
+ 8004f2c:	07db      	lsls	r3, r3, #31
+ 8004f2e:	d502      	bpl.n	8004f36 <VL53L0X_SetDeviceMode+0x12>
+ 8004f30:	7401      	strb	r1, [r0, #16]
+ 8004f32:	2000      	movs	r0, #0
+ 8004f34:	4770      	bx	lr
+ 8004f36:	f06f 0007 	mvn.w	r0, #7
+ 8004f3a:	4770      	bx	lr
+ 8004f3c:	0030000b 	.word	0x0030000b
+
+08004f40 <VL53L0X_GetFractionEnable>:
+ 8004f40:	b510      	push	{r4, lr}
+ 8004f42:	460a      	mov	r2, r1
+ 8004f44:	460c      	mov	r4, r1
+ 8004f46:	2109      	movs	r1, #9
+ 8004f48:	f002 faa4 	bl	8007494 <VL53L0X_RdByte>
+ 8004f4c:	b918      	cbnz	r0, 8004f56 <VL53L0X_GetFractionEnable+0x16>
+ 8004f4e:	7823      	ldrb	r3, [r4, #0]
+ 8004f50:	f003 0301 	and.w	r3, r3, #1
+ 8004f54:	7023      	strb	r3, [r4, #0]
+ 8004f56:	bd10      	pop	{r4, pc}
+
+08004f58 <VL53L0X_SetMeasurementTimingBudgetMicroSeconds>:
+ 8004f58:	f001 be6b 	b.w	8006c32 <VL53L0X_set_measurement_timing_budget_micro_seconds>
+
+08004f5c <VL53L0X_SetVcselPulsePeriod>:
+ 8004f5c:	f001 bd53 	b.w	8006a06 <VL53L0X_set_vcsel_pulse_period>
+
+08004f60 <VL53L0X_GetVcselPulsePeriod>:
+ 8004f60:	f001 be4d 	b.w	8006bfe <VL53L0X_get_vcsel_pulse_period>
+
+08004f64 <VL53L0X_SetSequenceStepEnable>:
+ 8004f64:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
+ 8004f66:	2300      	movs	r3, #0
+ 8004f68:	460c      	mov	r4, r1
+ 8004f6a:	4617      	mov	r7, r2
+ 8004f6c:	2101      	movs	r1, #1
+ 8004f6e:	f10d 0207 	add.w	r2, sp, #7
+ 8004f72:	4606      	mov	r6, r0
+ 8004f74:	f88d 3007 	strb.w	r3, [sp, #7]
+ 8004f78:	f002 fa8c 	bl	8007494 <VL53L0X_RdByte>
+ 8004f7c:	4605      	mov	r5, r0
+ 8004f7e:	b9d8      	cbnz	r0, 8004fb8 <VL53L0X_SetSequenceStepEnable+0x54>
+ 8004f80:	2f01      	cmp	r7, #1
+ 8004f82:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8004f86:	d126      	bne.n	8004fd6 <VL53L0X_SetSequenceStepEnable+0x72>
+ 8004f88:	2c04      	cmp	r4, #4
+ 8004f8a:	d83a      	bhi.n	8005002 <VL53L0X_SetSequenceStepEnable+0x9e>
+ 8004f8c:	e8df f004 	tbb	[pc, r4]
+ 8004f90:	1d1a1703 	.word	0x1d1a1703
+ 8004f94:	20          	.byte	0x20
+ 8004f95:	00          	.byte	0x00
+ 8004f96:	f043 0410 	orr.w	r4, r3, #16
+ 8004f9a:	42a3      	cmp	r3, r4
+ 8004f9c:	d00c      	beq.n	8004fb8 <VL53L0X_SetSequenceStepEnable+0x54>
+ 8004f9e:	4622      	mov	r2, r4
+ 8004fa0:	2101      	movs	r1, #1
+ 8004fa2:	4630      	mov	r0, r6
+ 8004fa4:	f002 fa54 	bl	8007450 <VL53L0X_WrByte>
+ 8004fa8:	4605      	mov	r5, r0
+ 8004faa:	b928      	cbnz	r0, 8004fb8 <VL53L0X_SetSequenceStepEnable+0x54>
+ 8004fac:	6971      	ldr	r1, [r6, #20]
+ 8004fae:	f886 4130 	strb.w	r4, [r6, #304]	; 0x130
+ 8004fb2:	4630      	mov	r0, r6
+ 8004fb4:	f7ff ffd0 	bl	8004f58 <VL53L0X_SetMeasurementTimingBudgetMicroSeconds>
+ 8004fb8:	4628      	mov	r0, r5
+ 8004fba:	b003      	add	sp, #12
+ 8004fbc:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8004fbe:	f043 0428 	orr.w	r4, r3, #40	; 0x28
+ 8004fc2:	e7ea      	b.n	8004f9a <VL53L0X_SetSequenceStepEnable+0x36>
+ 8004fc4:	f043 0404 	orr.w	r4, r3, #4
+ 8004fc8:	e7e7      	b.n	8004f9a <VL53L0X_SetSequenceStepEnable+0x36>
+ 8004fca:	f043 0440 	orr.w	r4, r3, #64	; 0x40
+ 8004fce:	e7e4      	b.n	8004f9a <VL53L0X_SetSequenceStepEnable+0x36>
+ 8004fd0:	f043 0480 	orr.w	r4, r3, #128	; 0x80
+ 8004fd4:	e7e1      	b.n	8004f9a <VL53L0X_SetSequenceStepEnable+0x36>
+ 8004fd6:	2c04      	cmp	r4, #4
+ 8004fd8:	d813      	bhi.n	8005002 <VL53L0X_SetSequenceStepEnable+0x9e>
+ 8004fda:	e8df f004 	tbb	[pc, r4]
+ 8004fde:	0603      	.short	0x0603
+ 8004fe0:	0c09      	.short	0x0c09
+ 8004fe2:	0f          	.byte	0x0f
+ 8004fe3:	00          	.byte	0x00
+ 8004fe4:	f003 04ef 	and.w	r4, r3, #239	; 0xef
+ 8004fe8:	e7d7      	b.n	8004f9a <VL53L0X_SetSequenceStepEnable+0x36>
+ 8004fea:	f003 04d7 	and.w	r4, r3, #215	; 0xd7
+ 8004fee:	e7d4      	b.n	8004f9a <VL53L0X_SetSequenceStepEnable+0x36>
+ 8004ff0:	f003 04fb 	and.w	r4, r3, #251	; 0xfb
+ 8004ff4:	e7d1      	b.n	8004f9a <VL53L0X_SetSequenceStepEnable+0x36>
+ 8004ff6:	f003 04bf 	and.w	r4, r3, #191	; 0xbf
+ 8004ffa:	e7ce      	b.n	8004f9a <VL53L0X_SetSequenceStepEnable+0x36>
+ 8004ffc:	f003 047f 	and.w	r4, r3, #127	; 0x7f
+ 8005000:	e7cb      	b.n	8004f9a <VL53L0X_SetSequenceStepEnable+0x36>
+ 8005002:	f06f 0503 	mvn.w	r5, #3
+ 8005006:	e7d7      	b.n	8004fb8 <VL53L0X_SetSequenceStepEnable+0x54>
+
+08005008 <VL53L0X_GetSequenceStepEnables>:
+ 8005008:	b513      	push	{r0, r1, r4, lr}
+ 800500a:	2300      	movs	r3, #0
+ 800500c:	460c      	mov	r4, r1
+ 800500e:	f10d 0207 	add.w	r2, sp, #7
+ 8005012:	2101      	movs	r1, #1
+ 8005014:	f88d 3007 	strb.w	r3, [sp, #7]
+ 8005018:	f002 fa3c 	bl	8007494 <VL53L0X_RdByte>
+ 800501c:	b978      	cbnz	r0, 800503e <VL53L0X_GetSequenceStepEnables+0x36>
+ 800501e:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8005022:	f3c3 1200 	ubfx	r2, r3, #4, #1
+ 8005026:	7022      	strb	r2, [r4, #0]
+ 8005028:	f3c3 02c0 	ubfx	r2, r3, #3, #1
+ 800502c:	70a2      	strb	r2, [r4, #2]
+ 800502e:	f3c3 0280 	ubfx	r2, r3, #2, #1
+ 8005032:	7062      	strb	r2, [r4, #1]
+ 8005034:	f3c3 1280 	ubfx	r2, r3, #6, #1
+ 8005038:	09db      	lsrs	r3, r3, #7
+ 800503a:	70e2      	strb	r2, [r4, #3]
+ 800503c:	7123      	strb	r3, [r4, #4]
+ 800503e:	b002      	add	sp, #8
+ 8005040:	bd10      	pop	{r4, pc}
+
+08005042 <VL53L0X_GetInterMeasurementPeriodMilliSeconds>:
+ 8005042:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 8005044:	460d      	mov	r5, r1
+ 8005046:	f10d 0202 	add.w	r2, sp, #2
+ 800504a:	21f8      	movs	r1, #248	; 0xf8
+ 800504c:	4604      	mov	r4, r0
+ 800504e:	f002 fa4d 	bl	80074ec <VL53L0X_RdWord>
+ 8005052:	b970      	cbnz	r0, 8005072 <VL53L0X_GetInterMeasurementPeriodMilliSeconds+0x30>
+ 8005054:	aa01      	add	r2, sp, #4
+ 8005056:	2104      	movs	r1, #4
+ 8005058:	4620      	mov	r0, r4
+ 800505a:	f002 fa67 	bl	800752c <VL53L0X_RdDWord>
+ 800505e:	b940      	cbnz	r0, 8005072 <VL53L0X_GetInterMeasurementPeriodMilliSeconds+0x30>
+ 8005060:	f8bd 2002 	ldrh.w	r2, [sp, #2]
+ 8005064:	b11a      	cbz	r2, 800506e <VL53L0X_GetInterMeasurementPeriodMilliSeconds+0x2c>
+ 8005066:	9b01      	ldr	r3, [sp, #4]
+ 8005068:	fbb3 f3f2 	udiv	r3, r3, r2
+ 800506c:	602b      	str	r3, [r5, #0]
+ 800506e:	682b      	ldr	r3, [r5, #0]
+ 8005070:	61a3      	str	r3, [r4, #24]
+ 8005072:	b003      	add	sp, #12
+ 8005074:	bd30      	pop	{r4, r5, pc}
+
+08005076 <VL53L0X_GetXTalkCompensationEnable>:
+ 8005076:	7f03      	ldrb	r3, [r0, #28]
+ 8005078:	700b      	strb	r3, [r1, #0]
+ 800507a:	2000      	movs	r0, #0
+ 800507c:	4770      	bx	lr
+
+0800507e <VL53L0X_GetXTalkCompensationRateMegaCps>:
+ 800507e:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 8005080:	460d      	mov	r5, r1
+ 8005082:	f10d 0206 	add.w	r2, sp, #6
+ 8005086:	2120      	movs	r1, #32
+ 8005088:	4604      	mov	r4, r0
+ 800508a:	f002 fa2f 	bl	80074ec <VL53L0X_RdWord>
+ 800508e:	b928      	cbnz	r0, 800509c <VL53L0X_GetXTalkCompensationRateMegaCps+0x1e>
+ 8005090:	f8bd 3006 	ldrh.w	r3, [sp, #6]
+ 8005094:	b923      	cbnz	r3, 80050a0 <VL53L0X_GetXTalkCompensationRateMegaCps+0x22>
+ 8005096:	6a23      	ldr	r3, [r4, #32]
+ 8005098:	602b      	str	r3, [r5, #0]
+ 800509a:	7720      	strb	r0, [r4, #28]
+ 800509c:	b003      	add	sp, #12
+ 800509e:	bd30      	pop	{r4, r5, pc}
+ 80050a0:	00db      	lsls	r3, r3, #3
+ 80050a2:	602b      	str	r3, [r5, #0]
+ 80050a4:	6223      	str	r3, [r4, #32]
+ 80050a6:	2301      	movs	r3, #1
+ 80050a8:	7723      	strb	r3, [r4, #28]
+ 80050aa:	e7f7      	b.n	800509c <VL53L0X_GetXTalkCompensationRateMegaCps+0x1e>
+
+080050ac <VL53L0X_SetLimitCheckEnable>:
+ 80050ac:	2905      	cmp	r1, #5
+ 80050ae:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 80050b0:	4604      	mov	r4, r0
+ 80050b2:	460e      	mov	r6, r1
+ 80050b4:	4615      	mov	r5, r2
+ 80050b6:	d835      	bhi.n	8005124 <VL53L0X_SetLimitCheckEnable+0x78>
+ 80050b8:	b162      	cbz	r2, 80050d4 <VL53L0X_SetLimitCheckEnable+0x28>
+ 80050ba:	eb00 0381 	add.w	r3, r0, r1, lsl #2
+ 80050be:	2101      	movs	r1, #1
+ 80050c0:	6b5a      	ldr	r2, [r3, #52]	; 0x34
+ 80050c2:	2300      	movs	r3, #0
+ 80050c4:	1e70      	subs	r0, r6, #1
+ 80050c6:	2804      	cmp	r0, #4
+ 80050c8:	d807      	bhi.n	80050da <VL53L0X_SetLimitCheckEnable+0x2e>
+ 80050ca:	e8df f000 	tbb	[pc, r0]
+ 80050ce:	170e      	.short	0x170e
+ 80050d0:	1d1a      	.short	0x1d1a
+ 80050d2:	24          	.byte	0x24
+ 80050d3:	00          	.byte	0x00
+ 80050d4:	4611      	mov	r1, r2
+ 80050d6:	2301      	movs	r3, #1
+ 80050d8:	e7f4      	b.n	80050c4 <VL53L0X_SetLimitCheckEnable+0x18>
+ 80050da:	f884 1028 	strb.w	r1, [r4, #40]	; 0x28
+ 80050de:	4434      	add	r4, r6
+ 80050e0:	b9e5      	cbnz	r5, 800511c <VL53L0X_SetLimitCheckEnable+0x70>
+ 80050e2:	f884 5028 	strb.w	r5, [r4, #40]	; 0x28
+ 80050e6:	2000      	movs	r0, #0
+ 80050e8:	e007      	b.n	80050fa <VL53L0X_SetLimitCheckEnable+0x4e>
+ 80050ea:	f3c2 224f 	ubfx	r2, r2, #9, #16
+ 80050ee:	2144      	movs	r1, #68	; 0x44
+ 80050f0:	4620      	mov	r0, r4
+ 80050f2:	f002 f9bd 	bl	8007470 <VL53L0X_WrWord>
+ 80050f6:	2800      	cmp	r0, #0
+ 80050f8:	d0f1      	beq.n	80050de <VL53L0X_SetLimitCheckEnable+0x32>
+ 80050fa:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 80050fc:	f884 102a 	strb.w	r1, [r4, #42]	; 0x2a
+ 8005100:	e7ed      	b.n	80050de <VL53L0X_SetLimitCheckEnable+0x32>
+ 8005102:	f884 102b 	strb.w	r1, [r4, #43]	; 0x2b
+ 8005106:	e7ea      	b.n	80050de <VL53L0X_SetLimitCheckEnable+0x32>
+ 8005108:	005b      	lsls	r3, r3, #1
+ 800510a:	22fe      	movs	r2, #254	; 0xfe
+ 800510c:	2160      	movs	r1, #96	; 0x60
+ 800510e:	4620      	mov	r0, r4
+ 8005110:	f002 f9d5 	bl	80074be <VL53L0X_UpdateByte>
+ 8005114:	e7ef      	b.n	80050f6 <VL53L0X_SetLimitCheckEnable+0x4a>
+ 8005116:	011b      	lsls	r3, r3, #4
+ 8005118:	22ef      	movs	r2, #239	; 0xef
+ 800511a:	e7f7      	b.n	800510c <VL53L0X_SetLimitCheckEnable+0x60>
+ 800511c:	2301      	movs	r3, #1
+ 800511e:	f884 3028 	strb.w	r3, [r4, #40]	; 0x28
+ 8005122:	e7e0      	b.n	80050e6 <VL53L0X_SetLimitCheckEnable+0x3a>
+ 8005124:	f06f 0003 	mvn.w	r0, #3
+ 8005128:	e7e7      	b.n	80050fa <VL53L0X_SetLimitCheckEnable+0x4e>
+
+0800512a <VL53L0X_GetLimitCheckEnable>:
+ 800512a:	2905      	cmp	r1, #5
+ 800512c:	bf96      	itet	ls
+ 800512e:	1840      	addls	r0, r0, r1
+ 8005130:	2300      	movhi	r3, #0
+ 8005132:	f890 3028 	ldrbls.w	r3, [r0, #40]	; 0x28
+ 8005136:	7013      	strb	r3, [r2, #0]
+ 8005138:	bf94      	ite	ls
+ 800513a:	2000      	movls	r0, #0
+ 800513c:	f06f 0003 	mvnhi.w	r0, #3
+ 8005140:	4770      	bx	lr
+
+08005142 <VL53L0X_SetLimitCheckValue>:
+ 8005142:	b570      	push	{r4, r5, r6, lr}
+ 8005144:	1843      	adds	r3, r0, r1
+ 8005146:	4604      	mov	r4, r0
+ 8005148:	f893 0028 	ldrb.w	r0, [r3, #40]	; 0x28
+ 800514c:	460e      	mov	r6, r1
+ 800514e:	4615      	mov	r5, r2
+ 8005150:	b918      	cbnz	r0, 800515a <VL53L0X_SetLimitCheckValue+0x18>
+ 8005152:	eb04 0681 	add.w	r6, r4, r1, lsl #2
+ 8005156:	6372      	str	r2, [r6, #52]	; 0x34
+ 8005158:	bd70      	pop	{r4, r5, r6, pc}
+ 800515a:	2905      	cmp	r1, #5
+ 800515c:	d81b      	bhi.n	8005196 <VL53L0X_SetLimitCheckValue+0x54>
+ 800515e:	e8df f001 	tbb	[pc, r1]
+ 8005162:	0903      	.short	0x0903
+ 8005164:	16161412 	.word	0x16161412
+ 8005168:	6362      	str	r2, [r4, #52]	; 0x34
+ 800516a:	eb04 0486 	add.w	r4, r4, r6, lsl #2
+ 800516e:	2000      	movs	r0, #0
+ 8005170:	6365      	str	r5, [r4, #52]	; 0x34
+ 8005172:	e7f1      	b.n	8005158 <VL53L0X_SetLimitCheckValue+0x16>
+ 8005174:	f3c2 224f 	ubfx	r2, r2, #9, #16
+ 8005178:	2144      	movs	r1, #68	; 0x44
+ 800517a:	4620      	mov	r0, r4
+ 800517c:	f002 f978 	bl	8007470 <VL53L0X_WrWord>
+ 8005180:	2800      	cmp	r0, #0
+ 8005182:	d1e9      	bne.n	8005158 <VL53L0X_SetLimitCheckValue+0x16>
+ 8005184:	e7f1      	b.n	800516a <VL53L0X_SetLimitCheckValue+0x28>
+ 8005186:	63e2      	str	r2, [r4, #60]	; 0x3c
+ 8005188:	e7ef      	b.n	800516a <VL53L0X_SetLimitCheckValue+0x28>
+ 800518a:	6422      	str	r2, [r4, #64]	; 0x40
+ 800518c:	e7ed      	b.n	800516a <VL53L0X_SetLimitCheckValue+0x28>
+ 800518e:	f3c2 224f 	ubfx	r2, r2, #9, #16
+ 8005192:	2164      	movs	r1, #100	; 0x64
+ 8005194:	e7f1      	b.n	800517a <VL53L0X_SetLimitCheckValue+0x38>
+ 8005196:	f06f 0003 	mvn.w	r0, #3
+ 800519a:	e7dd      	b.n	8005158 <VL53L0X_SetLimitCheckValue+0x16>
+
+0800519c <VL53L0X_GetLimitCheckValue>:
+ 800519c:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 800519e:	4604      	mov	r4, r0
+ 80051a0:	4615      	mov	r5, r2
+ 80051a2:	2905      	cmp	r1, #5
+ 80051a4:	d82c      	bhi.n	8005200 <VL53L0X_GetLimitCheckValue+0x64>
+ 80051a6:	e8df f001 	tbb	[pc, r1]
+ 80051aa:	0703      	.short	0x0703
+ 80051ac:	1b1b1917 	.word	0x1b1b1917
+ 80051b0:	6b43      	ldr	r3, [r0, #52]	; 0x34
+ 80051b2:	602b      	str	r3, [r5, #0]
+ 80051b4:	2000      	movs	r0, #0
+ 80051b6:	e021      	b.n	80051fc <VL53L0X_GetLimitCheckValue+0x60>
+ 80051b8:	f10d 0206 	add.w	r2, sp, #6
+ 80051bc:	2144      	movs	r1, #68	; 0x44
+ 80051be:	f002 f995 	bl	80074ec <VL53L0X_RdWord>
+ 80051c2:	b9d8      	cbnz	r0, 80051fc <VL53L0X_GetLimitCheckValue+0x60>
+ 80051c4:	f8bd 2006 	ldrh.w	r2, [sp, #6]
+ 80051c8:	0253      	lsls	r3, r2, #9
+ 80051ca:	b19a      	cbz	r2, 80051f4 <VL53L0X_GetLimitCheckValue+0x58>
+ 80051cc:	602b      	str	r3, [r5, #0]
+ 80051ce:	63a3      	str	r3, [r4, #56]	; 0x38
+ 80051d0:	2301      	movs	r3, #1
+ 80051d2:	f884 3029 	strb.w	r3, [r4, #41]	; 0x29
+ 80051d6:	e011      	b.n	80051fc <VL53L0X_GetLimitCheckValue+0x60>
+ 80051d8:	6bc3      	ldr	r3, [r0, #60]	; 0x3c
+ 80051da:	e7ea      	b.n	80051b2 <VL53L0X_GetLimitCheckValue+0x16>
+ 80051dc:	6c03      	ldr	r3, [r0, #64]	; 0x40
+ 80051de:	e7e8      	b.n	80051b2 <VL53L0X_GetLimitCheckValue+0x16>
+ 80051e0:	f10d 0206 	add.w	r2, sp, #6
+ 80051e4:	2164      	movs	r1, #100	; 0x64
+ 80051e6:	f002 f981 	bl	80074ec <VL53L0X_RdWord>
+ 80051ea:	b938      	cbnz	r0, 80051fc <VL53L0X_GetLimitCheckValue+0x60>
+ 80051ec:	f8bd 3006 	ldrh.w	r3, [sp, #6]
+ 80051f0:	025b      	lsls	r3, r3, #9
+ 80051f2:	e7de      	b.n	80051b2 <VL53L0X_GetLimitCheckValue+0x16>
+ 80051f4:	6ba3      	ldr	r3, [r4, #56]	; 0x38
+ 80051f6:	602b      	str	r3, [r5, #0]
+ 80051f8:	f884 0029 	strb.w	r0, [r4, #41]	; 0x29
+ 80051fc:	b003      	add	sp, #12
+ 80051fe:	bd30      	pop	{r4, r5, pc}
+ 8005200:	f06f 0003 	mvn.w	r0, #3
+ 8005204:	e7fa      	b.n	80051fc <VL53L0X_GetLimitCheckValue+0x60>
+
+08005206 <VL53L0X_GetWrapAroundCheckEnable>:
+ 8005206:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 8005208:	460d      	mov	r5, r1
+ 800520a:	f10d 0207 	add.w	r2, sp, #7
+ 800520e:	2101      	movs	r1, #1
+ 8005210:	4604      	mov	r4, r0
+ 8005212:	f002 f93f 	bl	8007494 <VL53L0X_RdByte>
+ 8005216:	b938      	cbnz	r0, 8005228 <VL53L0X_GetWrapAroundCheckEnable+0x22>
+ 8005218:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 800521c:	f884 3130 	strb.w	r3, [r4, #304]	; 0x130
+ 8005220:	09db      	lsrs	r3, r3, #7
+ 8005222:	702b      	strb	r3, [r5, #0]
+ 8005224:	f884 304c 	strb.w	r3, [r4, #76]	; 0x4c
+ 8005228:	b003      	add	sp, #12
+ 800522a:	bd30      	pop	{r4, r5, pc}
+
+0800522c <VL53L0X_GetDeviceParameters>:
+ 800522c:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
+ 8005230:	7c03      	ldrb	r3, [r0, #16]
+ 8005232:	460c      	mov	r4, r1
+ 8005234:	f801 3b08 	strb.w	r3, [r1], #8
+ 8005238:	4605      	mov	r5, r0
+ 800523a:	f7ff ff02 	bl	8005042 <VL53L0X_GetInterMeasurementPeriodMilliSeconds>
+ 800523e:	bb40      	cbnz	r0, 8005292 <VL53L0X_GetDeviceParameters+0x66>
+ 8005240:	7320      	strb	r0, [r4, #12]
+ 8005242:	f104 0110 	add.w	r1, r4, #16
+ 8005246:	4628      	mov	r0, r5
+ 8005248:	f7ff ff19 	bl	800507e <VL53L0X_GetXTalkCompensationRateMegaCps>
+ 800524c:	bb08      	cbnz	r0, 8005292 <VL53L0X_GetDeviceParameters+0x66>
+ 800524e:	f104 0114 	add.w	r1, r4, #20
+ 8005252:	4628      	mov	r0, r5
+ 8005254:	f000 fc21 	bl	8005a9a <VL53L0X_get_offset_calibration_data_micro_meter>
+ 8005258:	b9d8      	cbnz	r0, 8005292 <VL53L0X_GetDeviceParameters+0x66>
+ 800525a:	f104 0724 	add.w	r7, r4, #36	; 0x24
+ 800525e:	f105 0927 	add.w	r9, r5, #39	; 0x27
+ 8005262:	f104 0817 	add.w	r8, r4, #23
+ 8005266:	4606      	mov	r6, r0
+ 8005268:	463a      	mov	r2, r7
+ 800526a:	b2b1      	uxth	r1, r6
+ 800526c:	4628      	mov	r0, r5
+ 800526e:	f7ff ff95 	bl	800519c <VL53L0X_GetLimitCheckValue>
+ 8005272:	b970      	cbnz	r0, 8005292 <VL53L0X_GetDeviceParameters+0x66>
+ 8005274:	3601      	adds	r6, #1
+ 8005276:	f819 3f01 	ldrb.w	r3, [r9, #1]!
+ 800527a:	f808 3f01 	strb.w	r3, [r8, #1]!
+ 800527e:	2e06      	cmp	r6, #6
+ 8005280:	f107 0704 	add.w	r7, r7, #4
+ 8005284:	d1f0      	bne.n	8005268 <VL53L0X_GetDeviceParameters+0x3c>
+ 8005286:	f104 013c 	add.w	r1, r4, #60	; 0x3c
+ 800528a:	4628      	mov	r0, r5
+ 800528c:	f7ff ffbb 	bl	8005206 <VL53L0X_GetWrapAroundCheckEnable>
+ 8005290:	b108      	cbz	r0, 8005296 <VL53L0X_GetDeviceParameters+0x6a>
+ 8005292:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
+ 8005296:	1d21      	adds	r1, r4, #4
+ 8005298:	4628      	mov	r0, r5
+ 800529a:	e8bd 43f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
+ 800529e:	f001 bd30 	b.w	8006d02 <VL53L0X_get_measurement_timing_budget_micro_seconds>
+	...
+
+080052a4 <VL53L0X_DataInit>:
+ 80052a4:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 80052a6:	2200      	movs	r2, #0
+ 80052a8:	4605      	mov	r5, r0
+ 80052aa:	b093      	sub	sp, #76	; 0x4c
+ 80052ac:	2188      	movs	r1, #136	; 0x88
+ 80052ae:	f002 f8cf 	bl	8007450 <VL53L0X_WrByte>
+ 80052b2:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
+ 80052b6:	f8a5 2152 	strh.w	r2, [r5, #338]	; 0x152
+ 80052ba:	f44f 72c8 	mov.w	r2, #400	; 0x190
+ 80052be:	f8a5 2154 	strh.w	r2, [r5, #340]	; 0x154
+ 80052c2:	4a4c      	ldr	r2, [pc, #304]	; (80053f4 <VL53L0X_DataInit+0x150>)
+ 80052c4:	f8c5 2158 	str.w	r2, [r5, #344]	; 0x158
+ 80052c8:	2300      	movs	r3, #0
+ 80052ca:	4a4b      	ldr	r2, [pc, #300]	; (80053f8 <VL53L0X_DataInit+0x154>)
+ 80052cc:	f885 30f0 	strb.w	r3, [r5, #240]	; 0xf0
+ 80052d0:	f8c5 20d4 	str.w	r2, [r5, #212]	; 0xd4
+ 80052d4:	622b      	str	r3, [r5, #32]
+ 80052d6:	a902      	add	r1, sp, #8
+ 80052d8:	4628      	mov	r0, r5
+ 80052da:	f7ff ffa7 	bl	800522c <VL53L0X_GetDeviceParameters>
+ 80052de:	4604      	mov	r4, r0
+ 80052e0:	b970      	cbnz	r0, 8005300 <VL53L0X_DataInit+0x5c>
+ 80052e2:	f8ad 0008 	strh.w	r0, [sp, #8]
+ 80052e6:	ae02      	add	r6, sp, #8
+ 80052e8:	ce0f      	ldmia	r6!, {r0, r1, r2, r3}
+ 80052ea:	f105 0710 	add.w	r7, r5, #16
+ 80052ee:	c70f      	stmia	r7!, {r0, r1, r2, r3}
+ 80052f0:	ce0f      	ldmia	r6!, {r0, r1, r2, r3}
+ 80052f2:	c70f      	stmia	r7!, {r0, r1, r2, r3}
+ 80052f4:	ce0f      	ldmia	r6!, {r0, r1, r2, r3}
+ 80052f6:	c70f      	stmia	r7!, {r0, r1, r2, r3}
+ 80052f8:	e896 000f 	ldmia.w	r6, {r0, r1, r2, r3}
+ 80052fc:	e887 000f 	stmia.w	r7, {r0, r1, r2, r3}
+ 8005300:	4b3e      	ldr	r3, [pc, #248]	; (80053fc <VL53L0X_DataInit+0x158>)
+ 8005302:	f8c5 3134 	str.w	r3, [r5, #308]	; 0x134
+ 8005306:	f44f 73fa 	mov.w	r3, #500	; 0x1f4
+ 800530a:	2601      	movs	r6, #1
+ 800530c:	f8a5 3138 	strh.w	r3, [r5, #312]	; 0x138
+ 8005310:	f44f 6320 	mov.w	r3, #2560	; 0xa00
+ 8005314:	f8a5 313c 	strh.w	r3, [r5, #316]	; 0x13c
+ 8005318:	4632      	mov	r2, r6
+ 800531a:	2180      	movs	r1, #128	; 0x80
+ 800531c:	f885 6150 	strb.w	r6, [r5, #336]	; 0x150
+ 8005320:	4628      	mov	r0, r5
+ 8005322:	f002 f895 	bl	8007450 <VL53L0X_WrByte>
+ 8005326:	4632      	mov	r2, r6
+ 8005328:	4607      	mov	r7, r0
+ 800532a:	21ff      	movs	r1, #255	; 0xff
+ 800532c:	4628      	mov	r0, r5
+ 800532e:	f002 f88f 	bl	8007450 <VL53L0X_WrByte>
+ 8005332:	2200      	movs	r2, #0
+ 8005334:	4611      	mov	r1, r2
+ 8005336:	4307      	orrs	r7, r0
+ 8005338:	4628      	mov	r0, r5
+ 800533a:	f002 f889 	bl	8007450 <VL53L0X_WrByte>
+ 800533e:	433c      	orrs	r4, r7
+ 8005340:	b264      	sxtb	r4, r4
+ 8005342:	4304      	orrs	r4, r0
+ 8005344:	f10d 0207 	add.w	r2, sp, #7
+ 8005348:	2191      	movs	r1, #145	; 0x91
+ 800534a:	4628      	mov	r0, r5
+ 800534c:	f002 f8a2 	bl	8007494 <VL53L0X_RdByte>
+ 8005350:	b264      	sxtb	r4, r4
+ 8005352:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8005356:	f885 313a 	strb.w	r3, [r5, #314]	; 0x13a
+ 800535a:	4304      	orrs	r4, r0
+ 800535c:	4632      	mov	r2, r6
+ 800535e:	2100      	movs	r1, #0
+ 8005360:	4628      	mov	r0, r5
+ 8005362:	f002 f875 	bl	8007450 <VL53L0X_WrByte>
+ 8005366:	b264      	sxtb	r4, r4
+ 8005368:	4304      	orrs	r4, r0
+ 800536a:	2200      	movs	r2, #0
+ 800536c:	21ff      	movs	r1, #255	; 0xff
+ 800536e:	4628      	mov	r0, r5
+ 8005370:	f002 f86e 	bl	8007450 <VL53L0X_WrByte>
+ 8005374:	b264      	sxtb	r4, r4
+ 8005376:	4304      	orrs	r4, r0
+ 8005378:	2200      	movs	r2, #0
+ 800537a:	2180      	movs	r1, #128	; 0x80
+ 800537c:	4628      	mov	r0, r5
+ 800537e:	f002 f867 	bl	8007450 <VL53L0X_WrByte>
+ 8005382:	b264      	sxtb	r4, r4
+ 8005384:	4320      	orrs	r0, r4
+ 8005386:	b240      	sxtb	r0, r0
+ 8005388:	2400      	movs	r4, #0
+ 800538a:	bb88      	cbnz	r0, 80053f0 <VL53L0X_DataInit+0x14c>
+ 800538c:	b2a1      	uxth	r1, r4
+ 800538e:	2201      	movs	r2, #1
+ 8005390:	4628      	mov	r0, r5
+ 8005392:	3401      	adds	r4, #1
+ 8005394:	f7ff fe8a 	bl	80050ac <VL53L0X_SetLimitCheckEnable>
+ 8005398:	2c06      	cmp	r4, #6
+ 800539a:	d1f6      	bne.n	800538a <VL53L0X_DataInit+0xe6>
+ 800539c:	bb40      	cbnz	r0, 80053f0 <VL53L0X_DataInit+0x14c>
+ 800539e:	4604      	mov	r4, r0
+ 80053a0:	8568      	strh	r0, [r5, #42]	; 0x2a
+ 80053a2:	4602      	mov	r2, r0
+ 80053a4:	2104      	movs	r1, #4
+ 80053a6:	4628      	mov	r0, r5
+ 80053a8:	f7ff fe80 	bl	80050ac <VL53L0X_SetLimitCheckEnable>
+ 80053ac:	bb00      	cbnz	r0, 80053f0 <VL53L0X_DataInit+0x14c>
+ 80053ae:	4602      	mov	r2, r0
+ 80053b0:	2105      	movs	r1, #5
+ 80053b2:	4628      	mov	r0, r5
+ 80053b4:	f7ff fe7a 	bl	80050ac <VL53L0X_SetLimitCheckEnable>
+ 80053b8:	b9d0      	cbnz	r0, 80053f0 <VL53L0X_DataInit+0x14c>
+ 80053ba:	f44f 1390 	mov.w	r3, #1179648	; 0x120000
+ 80053be:	636b      	str	r3, [r5, #52]	; 0x34
+ 80053c0:	f44f 4280 	mov.w	r2, #16384	; 0x4000
+ 80053c4:	2101      	movs	r1, #1
+ 80053c6:	4628      	mov	r0, r5
+ 80053c8:	f7ff febb 	bl	8005142 <VL53L0X_SetLimitCheckValue>
+ 80053cc:	b980      	cbnz	r0, 80053f0 <VL53L0X_DataInit+0x14c>
+ 80053ce:	f44f 130c 	mov.w	r3, #2293760	; 0x230000
+ 80053d2:	22ff      	movs	r2, #255	; 0xff
+ 80053d4:	e9c5 300f 	strd	r3, r0, [r5, #60]	; 0x3c
+ 80053d8:	f885 2130 	strb.w	r2, [r5, #304]	; 0x130
+ 80053dc:	2101      	movs	r1, #1
+ 80053de:	4628      	mov	r0, r5
+ 80053e0:	f002 f836 	bl	8007450 <VL53L0X_WrByte>
+ 80053e4:	2301      	movs	r3, #1
+ 80053e6:	f885 3132 	strb.w	r3, [r5, #306]	; 0x132
+ 80053ea:	b908      	cbnz	r0, 80053f0 <VL53L0X_DataInit+0x14c>
+ 80053ec:	f885 4115 	strb.w	r4, [r5, #277]	; 0x115
+ 80053f0:	b013      	add	sp, #76	; 0x4c
+ 80053f2:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 80053f4:	00016b85 	.word	0x00016b85
+ 80053f8:	000970a4 	.word	0x000970a4
+ 80053fc:	03840064 	.word	0x03840064
+
+08005400 <VL53L0X_PerformRefCalibration>:
+ 8005400:	2301      	movs	r3, #1
+ 8005402:	f000 bd79 	b.w	8005ef8 <VL53L0X_perform_ref_calibration>
+
+08005406 <VL53L0X_GetRangingMeasurementData>:
+ 8005406:	e92d 42f0 	stmdb	sp!, {r4, r5, r6, r7, r9, lr}
+ 800540a:	b08e      	sub	sp, #56	; 0x38
+ 800540c:	460c      	mov	r4, r1
+ 800540e:	230c      	movs	r3, #12
+ 8005410:	aa04      	add	r2, sp, #16
+ 8005412:	2114      	movs	r1, #20
+ 8005414:	4605      	mov	r5, r0
+ 8005416:	f002 f805 	bl	8007424 <VL53L0X_ReadMulti>
+ 800541a:	4684      	mov	ip, r0
+ 800541c:	2800      	cmp	r0, #0
+ 800541e:	d16c      	bne.n	80054fa <VL53L0X_GetRangingMeasurementData+0xf4>
+ 8005420:	f89d 301a 	ldrb.w	r3, [sp, #26]
+ 8005424:	f89d 601b 	ldrb.w	r6, [sp, #27]
+ 8005428:	f89d 2017 	ldrb.w	r2, [sp, #23]
+ 800542c:	f89d 1018 	ldrb.w	r1, [sp, #24]
+ 8005430:	75a0      	strb	r0, [r4, #22]
+ 8005432:	eb06 2603 	add.w	r6, r6, r3, lsl #8
+ 8005436:	f89d 3016 	ldrb.w	r3, [sp, #22]
+ 800543a:	6020      	str	r0, [r4, #0]
+ 800543c:	eb02 2203 	add.w	r2, r2, r3, lsl #8
+ 8005440:	f89d 3019 	ldrb.w	r3, [sp, #25]
+ 8005444:	6060      	str	r0, [r4, #4]
+ 8005446:	eb03 2301 	add.w	r3, r3, r1, lsl #8
+ 800544a:	b29b      	uxth	r3, r3
+ 800544c:	025b      	lsls	r3, r3, #9
+ 800544e:	f89d 1012 	ldrb.w	r1, [sp, #18]
+ 8005452:	6123      	str	r3, [r4, #16]
+ 8005454:	f89d 3013 	ldrb.w	r3, [sp, #19]
+ 8005458:	f8b5 0152 	ldrh.w	r0, [r5, #338]	; 0x152
+ 800545c:	eb03 2301 	add.w	r3, r3, r1, lsl #8
+ 8005460:	b292      	uxth	r2, r2
+ 8005462:	0252      	lsls	r2, r2, #9
+ 8005464:	b29b      	uxth	r3, r3
+ 8005466:	60e2      	str	r2, [r4, #12]
+ 8005468:	82a3      	strh	r3, [r4, #20]
+ 800546a:	f5b0 7f7a 	cmp.w	r0, #1000	; 0x3e8
+ 800546e:	f89d 1010 	ldrb.w	r1, [sp, #16]
+ 8005472:	f895 7131 	ldrb.w	r7, [r5, #305]	; 0x131
+ 8005476:	b2b6      	uxth	r6, r6
+ 8005478:	d00a      	beq.n	8005490 <VL53L0X_GetRangingMeasurementData+0x8a>
+ 800547a:	4370      	muls	r0, r6
+ 800547c:	f500 70fa 	add.w	r0, r0, #500	; 0x1f4
+ 8005480:	f44f 767a 	mov.w	r6, #1000	; 0x3e8
+ 8005484:	fbb0 f0f6 	udiv	r0, r0, r6
+ 8005488:	7f2e      	ldrb	r6, [r5, #28]
+ 800548a:	2e00      	cmp	r6, #0
+ 800548c:	d139      	bne.n	8005502 <VL53L0X_GetRangingMeasurementData+0xfc>
+ 800548e:	b286      	uxth	r6, r0
+ 8005490:	2f00      	cmp	r7, #0
+ 8005492:	d040      	beq.n	8005516 <VL53L0X_GetRangingMeasurementData+0x110>
+ 8005494:	01b0      	lsls	r0, r6, #6
+ 8005496:	b2c0      	uxtb	r0, r0
+ 8005498:	08b6      	lsrs	r6, r6, #2
+ 800549a:	75e0      	strb	r0, [r4, #23]
+ 800549c:	f10d 000f 	add.w	r0, sp, #15
+ 80054a0:	8126      	strh	r6, [r4, #8]
+ 80054a2:	e9cd 4000 	strd	r4, r0, [sp]
+ 80054a6:	4628      	mov	r0, r5
+ 80054a8:	f001 fe86 	bl	80071b8 <VL53L0X_get_pal_range_status>
+ 80054ac:	4684      	mov	ip, r0
+ 80054ae:	bb20      	cbnz	r0, 80054fa <VL53L0X_GetRangingMeasurementData+0xf4>
+ 80054b0:	f89d e00f 	ldrb.w	lr, [sp, #15]
+ 80054b4:	f884 e018 	strb.w	lr, [r4, #24]
+ 80054b8:	f105 0650 	add.w	r6, r5, #80	; 0x50
+ 80054bc:	ce0f      	ldmia	r6!, {r0, r1, r2, r3}
+ 80054be:	af07      	add	r7, sp, #28
+ 80054c0:	c70f      	stmia	r7!, {r0, r1, r2, r3}
+ 80054c2:	e896 0007 	ldmia.w	r6, {r0, r1, r2}
+ 80054c6:	7de3      	ldrb	r3, [r4, #23]
+ 80054c8:	e887 0007 	stmia.w	r7, {r0, r1, r2}
+ 80054cc:	e9d4 0103 	ldrd	r0, r1, [r4, #12]
+ 80054d0:	8aa2      	ldrh	r2, [r4, #20]
+ 80054d2:	f8ad 2030 	strh.w	r2, [sp, #48]	; 0x30
+ 80054d6:	e9d4 4901 	ldrd	r4, r9, [r4, #4]
+ 80054da:	e9cd 010a 	strd	r0, r1, [sp, #40]	; 0x28
+ 80054de:	e9cd 4908 	strd	r4, r9, [sp, #32]
+ 80054e2:	ac07      	add	r4, sp, #28
+ 80054e4:	f88d 3033 	strb.w	r3, [sp, #51]	; 0x33
+ 80054e8:	f88d e034 	strb.w	lr, [sp, #52]	; 0x34
+ 80054ec:	cc0f      	ldmia	r4!, {r0, r1, r2, r3}
+ 80054ee:	3550      	adds	r5, #80	; 0x50
+ 80054f0:	c50f      	stmia	r5!, {r0, r1, r2, r3}
+ 80054f2:	e897 0007 	ldmia.w	r7, {r0, r1, r2}
+ 80054f6:	e886 0007 	stmia.w	r6, {r0, r1, r2}
+ 80054fa:	4660      	mov	r0, ip
+ 80054fc:	b00e      	add	sp, #56	; 0x38
+ 80054fe:	e8bd 82f0 	ldmia.w	sp!, {r4, r5, r6, r7, r9, pc}
+ 8005502:	8c2e      	ldrh	r6, [r5, #32]
+ 8005504:	435e      	muls	r6, r3
+ 8005506:	ebb2 2f26 	cmp.w	r2, r6, asr #8
+ 800550a:	ea4f 2c26 	mov.w	ip, r6, asr #8
+ 800550e:	d104      	bne.n	800551a <VL53L0X_GetRangingMeasurementData+0x114>
+ 8005510:	b957      	cbnz	r7, 8005528 <VL53L0X_GetRangingMeasurementData+0x122>
+ 8005512:	f648 26e0 	movw	r6, #35552	; 0x8ae0
+ 8005516:	2000      	movs	r0, #0
+ 8005518:	e7bf      	b.n	800549a <VL53L0X_GetRangingMeasurementData+0x94>
+ 800551a:	b280      	uxth	r0, r0
+ 800551c:	4350      	muls	r0, r2
+ 800551e:	eba2 060c 	sub.w	r6, r2, ip
+ 8005522:	fbb0 f0f6 	udiv	r0, r0, r6
+ 8005526:	e7b2      	b.n	800548e <VL53L0X_GetRangingMeasurementData+0x88>
+ 8005528:	f242 26b8 	movw	r6, #8888	; 0x22b8
+ 800552c:	e7b2      	b.n	8005494 <VL53L0X_GetRangingMeasurementData+0x8e>
+	...
+
+08005530 <VL53L0X_GetInterruptThresholds>:
+ 8005530:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
+ 8005532:	4617      	mov	r7, r2
+ 8005534:	210e      	movs	r1, #14
+ 8005536:	f10d 0206 	add.w	r2, sp, #6
+ 800553a:	461d      	mov	r5, r3
+ 800553c:	4c0b      	ldr	r4, [pc, #44]	; (800556c <VL53L0X_GetInterruptThresholds+0x3c>)
+ 800553e:	4606      	mov	r6, r0
+ 8005540:	f001 ffd4 	bl	80074ec <VL53L0X_RdWord>
+ 8005544:	f8bd 3006 	ldrh.w	r3, [sp, #6]
+ 8005548:	ea04 4343 	and.w	r3, r4, r3, lsl #17
+ 800554c:	603b      	str	r3, [r7, #0]
+ 800554e:	b950      	cbnz	r0, 8005566 <VL53L0X_GetInterruptThresholds+0x36>
+ 8005550:	f10d 0206 	add.w	r2, sp, #6
+ 8005554:	210c      	movs	r1, #12
+ 8005556:	4630      	mov	r0, r6
+ 8005558:	f001 ffc8 	bl	80074ec <VL53L0X_RdWord>
+ 800555c:	f8bd 3006 	ldrh.w	r3, [sp, #6]
+ 8005560:	ea04 4443 	and.w	r4, r4, r3, lsl #17
+ 8005564:	602c      	str	r4, [r5, #0]
+ 8005566:	b003      	add	sp, #12
+ 8005568:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 800556a:	bf00      	nop
+ 800556c:	1ffe0000 	.word	0x1ffe0000
+
+08005570 <VL53L0X_CheckAndLoadInterruptSettings>:
+ 8005570:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 8005572:	f890 30da 	ldrb.w	r3, [r0, #218]	; 0xda
+ 8005576:	3b01      	subs	r3, #1
+ 8005578:	2b02      	cmp	r3, #2
+ 800557a:	4606      	mov	r6, r0
+ 800557c:	460c      	mov	r4, r1
+ 800557e:	d834      	bhi.n	80055ea <VL53L0X_CheckAndLoadInterruptSettings+0x7a>
+ 8005580:	ab01      	add	r3, sp, #4
+ 8005582:	466a      	mov	r2, sp
+ 8005584:	2101      	movs	r1, #1
+ 8005586:	f7ff ffd3 	bl	8005530 <VL53L0X_GetInterruptThresholds>
+ 800558a:	9b00      	ldr	r3, [sp, #0]
+ 800558c:	f5b3 0f7f 	cmp.w	r3, #16711680	; 0xff0000
+ 8005590:	4605      	mov	r5, r0
+ 8005592:	d803      	bhi.n	800559c <VL53L0X_CheckAndLoadInterruptSettings+0x2c>
+ 8005594:	9b01      	ldr	r3, [sp, #4]
+ 8005596:	f5b3 0f7f 	cmp.w	r3, #16711680	; 0xff0000
+ 800559a:	d923      	bls.n	80055e4 <VL53L0X_CheckAndLoadInterruptSettings+0x74>
+ 800559c:	bb15      	cbnz	r5, 80055e4 <VL53L0X_CheckAndLoadInterruptSettings+0x74>
+ 800559e:	b134      	cbz	r4, 80055ae <VL53L0X_CheckAndLoadInterruptSettings+0x3e>
+ 80055a0:	4913      	ldr	r1, [pc, #76]	; (80055f0 <VL53L0X_CheckAndLoadInterruptSettings+0x80>)
+ 80055a2:	4630      	mov	r0, r6
+ 80055a4:	b002      	add	sp, #8
+ 80055a6:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
+ 80055aa:	f001 bc0f 	b.w	8006dcc <VL53L0X_load_tuning_settings>
+ 80055ae:	2204      	movs	r2, #4
+ 80055b0:	21ff      	movs	r1, #255	; 0xff
+ 80055b2:	4630      	mov	r0, r6
+ 80055b4:	f001 ff4c 	bl	8007450 <VL53L0X_WrByte>
+ 80055b8:	462a      	mov	r2, r5
+ 80055ba:	4604      	mov	r4, r0
+ 80055bc:	2170      	movs	r1, #112	; 0x70
+ 80055be:	4630      	mov	r0, r6
+ 80055c0:	f001 ff46 	bl	8007450 <VL53L0X_WrByte>
+ 80055c4:	462a      	mov	r2, r5
+ 80055c6:	4304      	orrs	r4, r0
+ 80055c8:	21ff      	movs	r1, #255	; 0xff
+ 80055ca:	4630      	mov	r0, r6
+ 80055cc:	f001 ff40 	bl	8007450 <VL53L0X_WrByte>
+ 80055d0:	b264      	sxtb	r4, r4
+ 80055d2:	4304      	orrs	r4, r0
+ 80055d4:	462a      	mov	r2, r5
+ 80055d6:	2180      	movs	r1, #128	; 0x80
+ 80055d8:	4630      	mov	r0, r6
+ 80055da:	f001 ff39 	bl	8007450 <VL53L0X_WrByte>
+ 80055de:	b264      	sxtb	r4, r4
+ 80055e0:	4304      	orrs	r4, r0
+ 80055e2:	b265      	sxtb	r5, r4
+ 80055e4:	4628      	mov	r0, r5
+ 80055e6:	b002      	add	sp, #8
+ 80055e8:	bd70      	pop	{r4, r5, r6, pc}
+ 80055ea:	2500      	movs	r5, #0
+ 80055ec:	e7fa      	b.n	80055e4 <VL53L0X_CheckAndLoadInterruptSettings+0x74>
+ 80055ee:	bf00      	nop
+ 80055f0:	2000065f 	.word	0x2000065f
+
+080055f4 <VL53L0X_StartMeasurement>:
+ 80055f4:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 80055f6:	4604      	mov	r4, r0
+ 80055f8:	2201      	movs	r2, #1
+ 80055fa:	2180      	movs	r1, #128	; 0x80
+ 80055fc:	7c05      	ldrb	r5, [r0, #16]
+ 80055fe:	f001 ff27 	bl	8007450 <VL53L0X_WrByte>
+ 8005602:	2201      	movs	r2, #1
+ 8005604:	21ff      	movs	r1, #255	; 0xff
+ 8005606:	4620      	mov	r0, r4
+ 8005608:	f001 ff22 	bl	8007450 <VL53L0X_WrByte>
+ 800560c:	2200      	movs	r2, #0
+ 800560e:	4611      	mov	r1, r2
+ 8005610:	4620      	mov	r0, r4
+ 8005612:	f001 ff1d 	bl	8007450 <VL53L0X_WrByte>
+ 8005616:	f894 213a 	ldrb.w	r2, [r4, #314]	; 0x13a
+ 800561a:	2191      	movs	r1, #145	; 0x91
+ 800561c:	4620      	mov	r0, r4
+ 800561e:	f001 ff17 	bl	8007450 <VL53L0X_WrByte>
+ 8005622:	2201      	movs	r2, #1
+ 8005624:	2100      	movs	r1, #0
+ 8005626:	4620      	mov	r0, r4
+ 8005628:	f001 ff12 	bl	8007450 <VL53L0X_WrByte>
+ 800562c:	2200      	movs	r2, #0
+ 800562e:	21ff      	movs	r1, #255	; 0xff
+ 8005630:	4620      	mov	r0, r4
+ 8005632:	f001 ff0d 	bl	8007450 <VL53L0X_WrByte>
+ 8005636:	2200      	movs	r2, #0
+ 8005638:	2180      	movs	r1, #128	; 0x80
+ 800563a:	4620      	mov	r0, r4
+ 800563c:	f001 ff08 	bl	8007450 <VL53L0X_WrByte>
+ 8005640:	2d01      	cmp	r5, #1
+ 8005642:	d029      	beq.n	8005698 <VL53L0X_StartMeasurement+0xa4>
+ 8005644:	2d03      	cmp	r5, #3
+ 8005646:	d037      	beq.n	80056b8 <VL53L0X_StartMeasurement+0xc4>
+ 8005648:	2d00      	cmp	r5, #0
+ 800564a:	d13c      	bne.n	80056c6 <VL53L0X_StartMeasurement+0xd2>
+ 800564c:	2201      	movs	r2, #1
+ 800564e:	4629      	mov	r1, r5
+ 8005650:	4620      	mov	r0, r4
+ 8005652:	f001 fefd 	bl	8007450 <VL53L0X_WrByte>
+ 8005656:	2301      	movs	r3, #1
+ 8005658:	f88d 3007 	strb.w	r3, [sp, #7]
+ 800565c:	b1a0      	cbz	r0, 8005688 <VL53L0X_StartMeasurement+0x94>
+ 800565e:	b003      	add	sp, #12
+ 8005660:	bd30      	pop	{r4, r5, pc}
+ 8005662:	4601      	mov	r1, r0
+ 8005664:	f10d 0207 	add.w	r2, sp, #7
+ 8005668:	4620      	mov	r0, r4
+ 800566a:	f001 ff13 	bl	8007494 <VL53L0X_RdByte>
+ 800566e:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8005672:	07db      	lsls	r3, r3, #31
+ 8005674:	f105 0501 	add.w	r5, r5, #1
+ 8005678:	d508      	bpl.n	800568c <VL53L0X_StartMeasurement+0x98>
+ 800567a:	b938      	cbnz	r0, 800568c <VL53L0X_StartMeasurement+0x98>
+ 800567c:	f5b5 6ffa 	cmp.w	r5, #2000	; 0x7d0
+ 8005680:	d1ef      	bne.n	8005662 <VL53L0X_StartMeasurement+0x6e>
+ 8005682:	f06f 0006 	mvn.w	r0, #6
+ 8005686:	e7ea      	b.n	800565e <VL53L0X_StartMeasurement+0x6a>
+ 8005688:	4605      	mov	r5, r0
+ 800568a:	e7f0      	b.n	800566e <VL53L0X_StartMeasurement+0x7a>
+ 800568c:	f5b5 6ffa 	cmp.w	r5, #2000	; 0x7d0
+ 8005690:	bf08      	it	eq
+ 8005692:	f06f 0006 	mvneq.w	r0, #6
+ 8005696:	e7e2      	b.n	800565e <VL53L0X_StartMeasurement+0x6a>
+ 8005698:	b918      	cbnz	r0, 80056a2 <VL53L0X_StartMeasurement+0xae>
+ 800569a:	4629      	mov	r1, r5
+ 800569c:	4620      	mov	r0, r4
+ 800569e:	f7ff ff67 	bl	8005570 <VL53L0X_CheckAndLoadInterruptSettings>
+ 80056a2:	2202      	movs	r2, #2
+ 80056a4:	2100      	movs	r1, #0
+ 80056a6:	4620      	mov	r0, r4
+ 80056a8:	f001 fed2 	bl	8007450 <VL53L0X_WrByte>
+ 80056ac:	2800      	cmp	r0, #0
+ 80056ae:	d1d6      	bne.n	800565e <VL53L0X_StartMeasurement+0x6a>
+ 80056b0:	2304      	movs	r3, #4
+ 80056b2:	f884 3132 	strb.w	r3, [r4, #306]	; 0x132
+ 80056b6:	e7d2      	b.n	800565e <VL53L0X_StartMeasurement+0x6a>
+ 80056b8:	b918      	cbnz	r0, 80056c2 <VL53L0X_StartMeasurement+0xce>
+ 80056ba:	2101      	movs	r1, #1
+ 80056bc:	4620      	mov	r0, r4
+ 80056be:	f7ff ff57 	bl	8005570 <VL53L0X_CheckAndLoadInterruptSettings>
+ 80056c2:	2204      	movs	r2, #4
+ 80056c4:	e7ee      	b.n	80056a4 <VL53L0X_StartMeasurement+0xb0>
+ 80056c6:	f06f 0007 	mvn.w	r0, #7
+ 80056ca:	e7c8      	b.n	800565e <VL53L0X_StartMeasurement+0x6a>
+
+080056cc <VL53L0X_PerformSingleMeasurement>:
+ 80056cc:	b538      	push	{r3, r4, r5, lr}
+ 80056ce:	7c05      	ldrb	r5, [r0, #16]
+ 80056d0:	4604      	mov	r4, r0
+ 80056d2:	b125      	cbz	r5, 80056de <VL53L0X_PerformSingleMeasurement+0x12>
+ 80056d4:	4620      	mov	r0, r4
+ 80056d6:	f000 fd54 	bl	8006182 <VL53L0X_measurement_poll_for_completion>
+ 80056da:	b128      	cbz	r0, 80056e8 <VL53L0X_PerformSingleMeasurement+0x1c>
+ 80056dc:	bd38      	pop	{r3, r4, r5, pc}
+ 80056de:	f7ff ff89 	bl	80055f4 <VL53L0X_StartMeasurement>
+ 80056e2:	2800      	cmp	r0, #0
+ 80056e4:	d0f6      	beq.n	80056d4 <VL53L0X_PerformSingleMeasurement+0x8>
+ 80056e6:	e7f9      	b.n	80056dc <VL53L0X_PerformSingleMeasurement+0x10>
+ 80056e8:	2d00      	cmp	r5, #0
+ 80056ea:	d1f7      	bne.n	80056dc <VL53L0X_PerformSingleMeasurement+0x10>
+ 80056ec:	2303      	movs	r3, #3
+ 80056ee:	f884 3132 	strb.w	r3, [r4, #306]	; 0x132
+ 80056f2:	e7f3      	b.n	80056dc <VL53L0X_PerformSingleMeasurement+0x10>
+
+080056f4 <VL53L0X_ClearInterruptMask>:
+ 80056f4:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 80056f6:	4606      	mov	r6, r0
+ 80056f8:	2500      	movs	r5, #0
+ 80056fa:	2201      	movs	r2, #1
+ 80056fc:	210b      	movs	r1, #11
+ 80056fe:	4630      	mov	r0, r6
+ 8005700:	f001 fea6 	bl	8007450 <VL53L0X_WrByte>
+ 8005704:	2200      	movs	r2, #0
+ 8005706:	4604      	mov	r4, r0
+ 8005708:	210b      	movs	r1, #11
+ 800570a:	4630      	mov	r0, r6
+ 800570c:	f001 fea0 	bl	8007450 <VL53L0X_WrByte>
+ 8005710:	f10d 0207 	add.w	r2, sp, #7
+ 8005714:	4304      	orrs	r4, r0
+ 8005716:	2113      	movs	r1, #19
+ 8005718:	4630      	mov	r0, r6
+ 800571a:	f001 febb 	bl	8007494 <VL53L0X_RdByte>
+ 800571e:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8005722:	b264      	sxtb	r4, r4
+ 8005724:	4304      	orrs	r4, r0
+ 8005726:	3501      	adds	r5, #1
+ 8005728:	075b      	lsls	r3, r3, #29
+ 800572a:	b260      	sxtb	r0, r4
+ 800572c:	b2ed      	uxtb	r5, r5
+ 800572e:	d005      	beq.n	800573c <VL53L0X_ClearInterruptMask+0x48>
+ 8005730:	2d03      	cmp	r5, #3
+ 8005732:	d008      	beq.n	8005746 <VL53L0X_ClearInterruptMask+0x52>
+ 8005734:	2800      	cmp	r0, #0
+ 8005736:	d0e0      	beq.n	80056fa <VL53L0X_ClearInterruptMask+0x6>
+ 8005738:	b002      	add	sp, #8
+ 800573a:	bd70      	pop	{r4, r5, r6, pc}
+ 800573c:	2d03      	cmp	r5, #3
+ 800573e:	bf08      	it	eq
+ 8005740:	f06f 000b 	mvneq.w	r0, #11
+ 8005744:	e7f8      	b.n	8005738 <VL53L0X_ClearInterruptMask+0x44>
+ 8005746:	f06f 000b 	mvn.w	r0, #11
+ 800574a:	e7f5      	b.n	8005738 <VL53L0X_ClearInterruptMask+0x44>
+
+0800574c <VL53L0X_PerformSingleRangingMeasurement>:
+ 800574c:	b538      	push	{r3, r4, r5, lr}
+ 800574e:	2300      	movs	r3, #0
+ 8005750:	7403      	strb	r3, [r0, #16]
+ 8005752:	4604      	mov	r4, r0
+ 8005754:	460d      	mov	r5, r1
+ 8005756:	f7ff ffb9 	bl	80056cc <VL53L0X_PerformSingleMeasurement>
+ 800575a:	b950      	cbnz	r0, 8005772 <VL53L0X_PerformSingleRangingMeasurement+0x26>
+ 800575c:	4629      	mov	r1, r5
+ 800575e:	4620      	mov	r0, r4
+ 8005760:	f7ff fe51 	bl	8005406 <VL53L0X_GetRangingMeasurementData>
+ 8005764:	b928      	cbnz	r0, 8005772 <VL53L0X_PerformSingleRangingMeasurement+0x26>
+ 8005766:	4601      	mov	r1, r0
+ 8005768:	4620      	mov	r0, r4
+ 800576a:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
+ 800576e:	f7ff bfc1 	b.w	80056f4 <VL53L0X_ClearInterruptMask>
+ 8005772:	bd38      	pop	{r3, r4, r5, pc}
+
+08005774 <VL53L0X_SetGpioConfig.part.0>:
+ 8005774:	2915      	cmp	r1, #21
+ 8005776:	b570      	push	{r4, r5, r6, lr}
+ 8005778:	4605      	mov	r5, r0
+ 800577a:	4616      	mov	r6, r2
+ 800577c:	461c      	mov	r4, r3
+ 800577e:	d167      	bne.n	8005850 <VL53L0X_SetGpioConfig.part.0+0xdc>
+ 8005780:	2201      	movs	r2, #1
+ 8005782:	21ff      	movs	r1, #255	; 0xff
+ 8005784:	f001 fe64 	bl	8007450 <VL53L0X_WrByte>
+ 8005788:	2200      	movs	r2, #0
+ 800578a:	4611      	mov	r1, r2
+ 800578c:	4604      	mov	r4, r0
+ 800578e:	4628      	mov	r0, r5
+ 8005790:	f001 fe5e 	bl	8007450 <VL53L0X_WrByte>
+ 8005794:	2200      	movs	r2, #0
+ 8005796:	4304      	orrs	r4, r0
+ 8005798:	21ff      	movs	r1, #255	; 0xff
+ 800579a:	4628      	mov	r0, r5
+ 800579c:	f001 fe58 	bl	8007450 <VL53L0X_WrByte>
+ 80057a0:	b264      	sxtb	r4, r4
+ 80057a2:	4304      	orrs	r4, r0
+ 80057a4:	2201      	movs	r2, #1
+ 80057a6:	2180      	movs	r1, #128	; 0x80
+ 80057a8:	4628      	mov	r0, r5
+ 80057aa:	f001 fe51 	bl	8007450 <VL53L0X_WrByte>
+ 80057ae:	b264      	sxtb	r4, r4
+ 80057b0:	4304      	orrs	r4, r0
+ 80057b2:	2202      	movs	r2, #2
+ 80057b4:	2185      	movs	r1, #133	; 0x85
+ 80057b6:	4628      	mov	r0, r5
+ 80057b8:	f001 fe4a 	bl	8007450 <VL53L0X_WrByte>
+ 80057bc:	b264      	sxtb	r4, r4
+ 80057be:	4304      	orrs	r4, r0
+ 80057c0:	2204      	movs	r2, #4
+ 80057c2:	21ff      	movs	r1, #255	; 0xff
+ 80057c4:	4628      	mov	r0, r5
+ 80057c6:	f001 fe43 	bl	8007450 <VL53L0X_WrByte>
+ 80057ca:	b264      	sxtb	r4, r4
+ 80057cc:	4304      	orrs	r4, r0
+ 80057ce:	2200      	movs	r2, #0
+ 80057d0:	21cd      	movs	r1, #205	; 0xcd
+ 80057d2:	4628      	mov	r0, r5
+ 80057d4:	f001 fe3c 	bl	8007450 <VL53L0X_WrByte>
+ 80057d8:	b264      	sxtb	r4, r4
+ 80057da:	4304      	orrs	r4, r0
+ 80057dc:	2211      	movs	r2, #17
+ 80057de:	21cc      	movs	r1, #204	; 0xcc
+ 80057e0:	4628      	mov	r0, r5
+ 80057e2:	f001 fe35 	bl	8007450 <VL53L0X_WrByte>
+ 80057e6:	b264      	sxtb	r4, r4
+ 80057e8:	4304      	orrs	r4, r0
+ 80057ea:	2207      	movs	r2, #7
+ 80057ec:	21ff      	movs	r1, #255	; 0xff
+ 80057ee:	4628      	mov	r0, r5
+ 80057f0:	f001 fe2e 	bl	8007450 <VL53L0X_WrByte>
+ 80057f4:	b264      	sxtb	r4, r4
+ 80057f6:	4304      	orrs	r4, r0
+ 80057f8:	2200      	movs	r2, #0
+ 80057fa:	21be      	movs	r1, #190	; 0xbe
+ 80057fc:	4628      	mov	r0, r5
+ 80057fe:	f001 fe27 	bl	8007450 <VL53L0X_WrByte>
+ 8005802:	b264      	sxtb	r4, r4
+ 8005804:	4304      	orrs	r4, r0
+ 8005806:	2206      	movs	r2, #6
+ 8005808:	21ff      	movs	r1, #255	; 0xff
+ 800580a:	4628      	mov	r0, r5
+ 800580c:	f001 fe20 	bl	8007450 <VL53L0X_WrByte>
+ 8005810:	b264      	sxtb	r4, r4
+ 8005812:	4304      	orrs	r4, r0
+ 8005814:	2209      	movs	r2, #9
+ 8005816:	21cc      	movs	r1, #204	; 0xcc
+ 8005818:	4628      	mov	r0, r5
+ 800581a:	f001 fe19 	bl	8007450 <VL53L0X_WrByte>
+ 800581e:	b264      	sxtb	r4, r4
+ 8005820:	4304      	orrs	r4, r0
+ 8005822:	2200      	movs	r2, #0
+ 8005824:	21ff      	movs	r1, #255	; 0xff
+ 8005826:	4628      	mov	r0, r5
+ 8005828:	f001 fe12 	bl	8007450 <VL53L0X_WrByte>
+ 800582c:	b264      	sxtb	r4, r4
+ 800582e:	4304      	orrs	r4, r0
+ 8005830:	2201      	movs	r2, #1
+ 8005832:	21ff      	movs	r1, #255	; 0xff
+ 8005834:	4628      	mov	r0, r5
+ 8005836:	f001 fe0b 	bl	8007450 <VL53L0X_WrByte>
+ 800583a:	b264      	sxtb	r4, r4
+ 800583c:	2200      	movs	r2, #0
+ 800583e:	4304      	orrs	r4, r0
+ 8005840:	4611      	mov	r1, r2
+ 8005842:	4628      	mov	r0, r5
+ 8005844:	f001 fe04 	bl	8007450 <VL53L0X_WrByte>
+ 8005848:	b264      	sxtb	r4, r4
+ 800584a:	4320      	orrs	r0, r4
+ 800584c:	b240      	sxtb	r0, r0
+ 800584e:	bd70      	pop	{r4, r5, r6, pc}
+ 8005850:	2a04      	cmp	r2, #4
+ 8005852:	d817      	bhi.n	8005884 <VL53L0X_SetGpioConfig.part.0+0x110>
+ 8005854:	210a      	movs	r1, #10
+ 8005856:	f001 fdfb 	bl	8007450 <VL53L0X_WrByte>
+ 800585a:	2800      	cmp	r0, #0
+ 800585c:	d1f7      	bne.n	800584e <VL53L0X_SetGpioConfig.part.0+0xda>
+ 800585e:	1e23      	subs	r3, r4, #0
+ 8005860:	bf18      	it	ne
+ 8005862:	2301      	movne	r3, #1
+ 8005864:	011b      	lsls	r3, r3, #4
+ 8005866:	22ef      	movs	r2, #239	; 0xef
+ 8005868:	2184      	movs	r1, #132	; 0x84
+ 800586a:	4628      	mov	r0, r5
+ 800586c:	f001 fe27 	bl	80074be <VL53L0X_UpdateByte>
+ 8005870:	2800      	cmp	r0, #0
+ 8005872:	d1ec      	bne.n	800584e <VL53L0X_SetGpioConfig.part.0+0xda>
+ 8005874:	f885 60da 	strb.w	r6, [r5, #218]	; 0xda
+ 8005878:	4601      	mov	r1, r0
+ 800587a:	4628      	mov	r0, r5
+ 800587c:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
+ 8005880:	f7ff bf38 	b.w	80056f4 <VL53L0X_ClearInterruptMask>
+ 8005884:	f06f 000a 	mvn.w	r0, #10
+ 8005888:	e7e1      	b.n	800584e <VL53L0X_SetGpioConfig.part.0+0xda>
+	...
+
+0800588c <VL53L0X_StaticInit>:
+ 800588c:	b570      	push	{r4, r5, r6, lr}
+ 800588e:	b094      	sub	sp, #80	; 0x50
+ 8005890:	4605      	mov	r5, r0
+ 8005892:	2240      	movs	r2, #64	; 0x40
+ 8005894:	2100      	movs	r1, #0
+ 8005896:	a804      	add	r0, sp, #16
+ 8005898:	f00e fdae 	bl	80143f8 <memset>
+ 800589c:	2300      	movs	r3, #0
+ 800589e:	2101      	movs	r1, #1
+ 80058a0:	4628      	mov	r0, r5
+ 80058a2:	f8ad 3006 	strh.w	r3, [sp, #6]
+ 80058a6:	f88d 3003 	strb.w	r3, [sp, #3]
+ 80058aa:	f88d 3004 	strb.w	r3, [sp, #4]
+ 80058ae:	9302      	str	r3, [sp, #8]
+ 80058b0:	f000 fcb8 	bl	8006224 <VL53L0X_get_info_from_device>
+ 80058b4:	f895 2114 	ldrb.w	r2, [r5, #276]	; 0x114
+ 80058b8:	f895 1113 	ldrb.w	r1, [r5, #275]	; 0x113
+ 80058bc:	2a01      	cmp	r2, #1
+ 80058be:	d804      	bhi.n	80058ca <VL53L0X_StaticInit+0x3e>
+ 80058c0:	f040 80ad 	bne.w	8005a1e <VL53L0X_StaticInit+0x192>
+ 80058c4:	2920      	cmp	r1, #32
+ 80058c6:	f240 80ac 	bls.w	8005a22 <VL53L0X_StaticInit+0x196>
+ 80058ca:	aa01      	add	r2, sp, #4
+ 80058cc:	a902      	add	r1, sp, #8
+ 80058ce:	4628      	mov	r0, r5
+ 80058d0:	f000 fb2d 	bl	8005f2e <VL53L0X_perform_ref_spad_management>
+ 80058d4:	4604      	mov	r4, r0
+ 80058d6:	2800      	cmp	r0, #0
+ 80058d8:	f040 809e 	bne.w	8005a18 <VL53L0X_StaticInit+0x18c>
+ 80058dc:	f895 3150 	ldrb.w	r3, [r5, #336]	; 0x150
+ 80058e0:	2b00      	cmp	r3, #0
+ 80058e2:	f040 80a2 	bne.w	8005a2a <VL53L0X_StaticInit+0x19e>
+ 80058e6:	f8d5 114c 	ldr.w	r1, [r5, #332]	; 0x14c
+ 80058ea:	4628      	mov	r0, r5
+ 80058ec:	f001 fa6e 	bl	8006dcc <VL53L0X_load_tuning_settings>
+ 80058f0:	4604      	mov	r4, r0
+ 80058f2:	2800      	cmp	r0, #0
+ 80058f4:	f040 8090 	bne.w	8005a18 <VL53L0X_StaticInit+0x18c>
+ 80058f8:	4623      	mov	r3, r4
+ 80058fa:	4621      	mov	r1, r4
+ 80058fc:	2204      	movs	r2, #4
+ 80058fe:	4628      	mov	r0, r5
+ 8005900:	f7ff ff38 	bl	8005774 <VL53L0X_SetGpioConfig.part.0>
+ 8005904:	4604      	mov	r4, r0
+ 8005906:	2800      	cmp	r0, #0
+ 8005908:	f040 8086 	bne.w	8005a18 <VL53L0X_StaticInit+0x18c>
+ 800590c:	2201      	movs	r2, #1
+ 800590e:	21ff      	movs	r1, #255	; 0xff
+ 8005910:	4628      	mov	r0, r5
+ 8005912:	f001 fd9d 	bl	8007450 <VL53L0X_WrByte>
+ 8005916:	f10d 0206 	add.w	r2, sp, #6
+ 800591a:	4606      	mov	r6, r0
+ 800591c:	2184      	movs	r1, #132	; 0x84
+ 800591e:	4628      	mov	r0, r5
+ 8005920:	f001 fde4 	bl	80074ec <VL53L0X_RdWord>
+ 8005924:	4622      	mov	r2, r4
+ 8005926:	4306      	orrs	r6, r0
+ 8005928:	21ff      	movs	r1, #255	; 0xff
+ 800592a:	4628      	mov	r0, r5
+ 800592c:	f001 fd90 	bl	8007450 <VL53L0X_WrByte>
+ 8005930:	b276      	sxtb	r6, r6
+ 8005932:	4306      	orrs	r6, r0
+ 8005934:	b274      	sxtb	r4, r6
+ 8005936:	2c00      	cmp	r4, #0
+ 8005938:	d16e      	bne.n	8005a18 <VL53L0X_StaticInit+0x18c>
+ 800593a:	f8bd 3006 	ldrh.w	r3, [sp, #6]
+ 800593e:	011b      	lsls	r3, r3, #4
+ 8005940:	f8c5 30d4 	str.w	r3, [r5, #212]	; 0xd4
+ 8005944:	a904      	add	r1, sp, #16
+ 8005946:	4628      	mov	r0, r5
+ 8005948:	f7ff fc70 	bl	800522c <VL53L0X_GetDeviceParameters>
+ 800594c:	4604      	mov	r4, r0
+ 800594e:	2800      	cmp	r0, #0
+ 8005950:	d162      	bne.n	8005a18 <VL53L0X_StaticInit+0x18c>
+ 8005952:	f10d 0103 	add.w	r1, sp, #3
+ 8005956:	4628      	mov	r0, r5
+ 8005958:	f7ff faf2 	bl	8004f40 <VL53L0X_GetFractionEnable>
+ 800595c:	4604      	mov	r4, r0
+ 800595e:	2800      	cmp	r0, #0
+ 8005960:	d15a      	bne.n	8005a18 <VL53L0X_StaticInit+0x18c>
+ 8005962:	f89d 3003 	ldrb.w	r3, [sp, #3]
+ 8005966:	f885 3131 	strb.w	r3, [r5, #305]	; 0x131
+ 800596a:	ae04      	add	r6, sp, #16
+ 800596c:	ce0f      	ldmia	r6!, {r0, r1, r2, r3}
+ 800596e:	f105 0410 	add.w	r4, r5, #16
+ 8005972:	c40f      	stmia	r4!, {r0, r1, r2, r3}
+ 8005974:	ce0f      	ldmia	r6!, {r0, r1, r2, r3}
+ 8005976:	c40f      	stmia	r4!, {r0, r1, r2, r3}
+ 8005978:	ce0f      	ldmia	r6!, {r0, r1, r2, r3}
+ 800597a:	c40f      	stmia	r4!, {r0, r1, r2, r3}
+ 800597c:	e896 000f 	ldmia.w	r6, {r0, r1, r2, r3}
+ 8005980:	e884 000f 	stmia.w	r4, {r0, r1, r2, r3}
+ 8005984:	f10d 0203 	add.w	r2, sp, #3
+ 8005988:	2101      	movs	r1, #1
+ 800598a:	4628      	mov	r0, r5
+ 800598c:	f001 fd82 	bl	8007494 <VL53L0X_RdByte>
+ 8005990:	4604      	mov	r4, r0
+ 8005992:	2800      	cmp	r0, #0
+ 8005994:	d140      	bne.n	8005a18 <VL53L0X_StaticInit+0x18c>
+ 8005996:	f89d 3003 	ldrb.w	r3, [sp, #3]
+ 800599a:	f885 3130 	strb.w	r3, [r5, #304]	; 0x130
+ 800599e:	4602      	mov	r2, r0
+ 80059a0:	4601      	mov	r1, r0
+ 80059a2:	4628      	mov	r0, r5
+ 80059a4:	f7ff fade 	bl	8004f64 <VL53L0X_SetSequenceStepEnable>
+ 80059a8:	4604      	mov	r4, r0
+ 80059aa:	bba8      	cbnz	r0, 8005a18 <VL53L0X_StaticInit+0x18c>
+ 80059ac:	4602      	mov	r2, r0
+ 80059ae:	2102      	movs	r1, #2
+ 80059b0:	4628      	mov	r0, r5
+ 80059b2:	f7ff fad7 	bl	8004f64 <VL53L0X_SetSequenceStepEnable>
+ 80059b6:	4604      	mov	r4, r0
+ 80059b8:	bb70      	cbnz	r0, 8005a18 <VL53L0X_StaticInit+0x18c>
+ 80059ba:	2303      	movs	r3, #3
+ 80059bc:	4601      	mov	r1, r0
+ 80059be:	f885 3132 	strb.w	r3, [r5, #306]	; 0x132
+ 80059c2:	f10d 0205 	add.w	r2, sp, #5
+ 80059c6:	4628      	mov	r0, r5
+ 80059c8:	f001 f919 	bl	8006bfe <VL53L0X_get_vcsel_pulse_period>
+ 80059cc:	4604      	mov	r4, r0
+ 80059ce:	bb18      	cbnz	r0, 8005a18 <VL53L0X_StaticInit+0x18c>
+ 80059d0:	f89d 3005 	ldrb.w	r3, [sp, #5]
+ 80059d4:	f885 30e8 	strb.w	r3, [r5, #232]	; 0xe8
+ 80059d8:	f10d 0205 	add.w	r2, sp, #5
+ 80059dc:	2101      	movs	r1, #1
+ 80059de:	4628      	mov	r0, r5
+ 80059e0:	f001 f90d 	bl	8006bfe <VL53L0X_get_vcsel_pulse_period>
+ 80059e4:	4604      	mov	r4, r0
+ 80059e6:	b9b8      	cbnz	r0, 8005a18 <VL53L0X_StaticInit+0x18c>
+ 80059e8:	f89d 3005 	ldrb.w	r3, [sp, #5]
+ 80059ec:	f885 30e0 	strb.w	r3, [r5, #224]	; 0xe0
+ 80059f0:	aa03      	add	r2, sp, #12
+ 80059f2:	2103      	movs	r1, #3
+ 80059f4:	4628      	mov	r0, r5
+ 80059f6:	f000 ff01 	bl	80067fc <get_sequence_step_timeout>
+ 80059fa:	4604      	mov	r4, r0
+ 80059fc:	b960      	cbnz	r0, 8005a18 <VL53L0X_StaticInit+0x18c>
+ 80059fe:	9b03      	ldr	r3, [sp, #12]
+ 8005a00:	f8c5 30e4 	str.w	r3, [r5, #228]	; 0xe4
+ 8005a04:	aa03      	add	r2, sp, #12
+ 8005a06:	2104      	movs	r1, #4
+ 8005a08:	4628      	mov	r0, r5
+ 8005a0a:	f000 fef7 	bl	80067fc <get_sequence_step_timeout>
+ 8005a0e:	4604      	mov	r4, r0
+ 8005a10:	b910      	cbnz	r0, 8005a18 <VL53L0X_StaticInit+0x18c>
+ 8005a12:	9b03      	ldr	r3, [sp, #12]
+ 8005a14:	f8c5 30dc 	str.w	r3, [r5, #220]	; 0xdc
+ 8005a18:	4620      	mov	r0, r4
+ 8005a1a:	b014      	add	sp, #80	; 0x50
+ 8005a1c:	bd70      	pop	{r4, r5, r6, pc}
+ 8005a1e:	290c      	cmp	r1, #12
+ 8005a20:	e751      	b.n	80058c6 <VL53L0X_StaticInit+0x3a>
+ 8005a22:	4628      	mov	r0, r5
+ 8005a24:	f000 f910 	bl	8005c48 <VL53L0X_set_reference_spads>
+ 8005a28:	e754      	b.n	80058d4 <VL53L0X_StaticInit+0x48>
+ 8005a2a:	4901      	ldr	r1, [pc, #4]	; (8005a30 <VL53L0X_StaticInit+0x1a4>)
+ 8005a2c:	e75d      	b.n	80058ea <VL53L0X_StaticInit+0x5e>
+ 8005a2e:	bf00      	nop
+ 8005a30:	2000056c 	.word	0x2000056c
+
+08005a34 <VL53L0X_GetInterruptMaskStatus>:
+ 8005a34:	b513      	push	{r0, r1, r4, lr}
+ 8005a36:	460c      	mov	r4, r1
+ 8005a38:	f10d 0207 	add.w	r2, sp, #7
+ 8005a3c:	2113      	movs	r1, #19
+ 8005a3e:	f001 fd29 	bl	8007494 <VL53L0X_RdByte>
+ 8005a42:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8005a46:	f013 0f18 	tst.w	r3, #24
+ 8005a4a:	f003 0207 	and.w	r2, r3, #7
+ 8005a4e:	bf18      	it	ne
+ 8005a50:	f06f 0005 	mvnne.w	r0, #5
+ 8005a54:	6022      	str	r2, [r4, #0]
+ 8005a56:	b002      	add	sp, #8
+ 8005a58:	bd10      	pop	{r4, pc}
+
+08005a5a <VL53L0X_GetMeasurementDataReady>:
+ 8005a5a:	b513      	push	{r0, r1, r4, lr}
+ 8005a5c:	f890 30da 	ldrb.w	r3, [r0, #218]	; 0xda
+ 8005a60:	2b04      	cmp	r3, #4
+ 8005a62:	460c      	mov	r4, r1
+ 8005a64:	d10b      	bne.n	8005a7e <VL53L0X_GetMeasurementDataReady+0x24>
+ 8005a66:	a901      	add	r1, sp, #4
+ 8005a68:	f7ff ffe4 	bl	8005a34 <VL53L0X_GetInterruptMaskStatus>
+ 8005a6c:	9b01      	ldr	r3, [sp, #4]
+ 8005a6e:	2b04      	cmp	r3, #4
+ 8005a70:	d101      	bne.n	8005a76 <VL53L0X_GetMeasurementDataReady+0x1c>
+ 8005a72:	2301      	movs	r3, #1
+ 8005a74:	e000      	b.n	8005a78 <VL53L0X_GetMeasurementDataReady+0x1e>
+ 8005a76:	2300      	movs	r3, #0
+ 8005a78:	7023      	strb	r3, [r4, #0]
+ 8005a7a:	b002      	add	sp, #8
+ 8005a7c:	bd10      	pop	{r4, pc}
+ 8005a7e:	aa01      	add	r2, sp, #4
+ 8005a80:	2114      	movs	r1, #20
+ 8005a82:	f001 fd07 	bl	8007494 <VL53L0X_RdByte>
+ 8005a86:	2800      	cmp	r0, #0
+ 8005a88:	d1f7      	bne.n	8005a7a <VL53L0X_GetMeasurementDataReady+0x20>
+ 8005a8a:	f89d 3004 	ldrb.w	r3, [sp, #4]
+ 8005a8e:	07db      	lsls	r3, r3, #31
+ 8005a90:	d4ef      	bmi.n	8005a72 <VL53L0X_GetMeasurementDataReady+0x18>
+ 8005a92:	7020      	strb	r0, [r4, #0]
+ 8005a94:	e7f1      	b.n	8005a7a <VL53L0X_GetMeasurementDataReady+0x20>
+
+08005a96 <VL53L0X_PerformRefSpadManagement>:
+ 8005a96:	f000 ba4a 	b.w	8005f2e <VL53L0X_perform_ref_spad_management>
+
+08005a9a <VL53L0X_get_offset_calibration_data_micro_meter>:
+ 8005a9a:	b513      	push	{r0, r1, r4, lr}
+ 8005a9c:	460c      	mov	r4, r1
+ 8005a9e:	f10d 0206 	add.w	r2, sp, #6
+ 8005aa2:	2128      	movs	r1, #40	; 0x28
+ 8005aa4:	f001 fd22 	bl	80074ec <VL53L0X_RdWord>
+ 8005aa8:	b978      	cbnz	r0, 8005aca <VL53L0X_get_offset_calibration_data_micro_meter+0x30>
+ 8005aaa:	f8bd 2006 	ldrh.w	r2, [sp, #6]
+ 8005aae:	f3c2 030b 	ubfx	r3, r2, #0, #12
+ 8005ab2:	f412 6f00 	tst.w	r2, #2048	; 0x800
+ 8005ab6:	bf18      	it	ne
+ 8005ab8:	f5a3 5380 	subne.w	r3, r3, #4096	; 0x1000
+ 8005abc:	f04f 02fa 	mov.w	r2, #250	; 0xfa
+ 8005ac0:	bf14      	ite	ne
+ 8005ac2:	fb13 f302 	smulbbne	r3, r3, r2
+ 8005ac6:	4353      	muleq	r3, r2
+ 8005ac8:	6023      	str	r3, [r4, #0]
+ 8005aca:	b002      	add	sp, #8
+ 8005acc:	bd10      	pop	{r4, pc}
+
+08005ace <get_next_good_spad>:
+ 8005ace:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8005ad0:	ea4f 0cd2 	mov.w	ip, r2, lsr #3
+ 8005ad4:	f04f 34ff 	mov.w	r4, #4294967295
+ 8005ad8:	601c      	str	r4, [r3, #0]
+ 8005ada:	f002 0207 	and.w	r2, r2, #7
+ 8005ade:	4666      	mov	r6, ip
+ 8005ae0:	2700      	movs	r7, #0
+ 8005ae2:	428e      	cmp	r6, r1
+ 8005ae4:	d200      	bcs.n	8005ae8 <get_next_good_spad+0x1a>
+ 8005ae6:	b107      	cbz	r7, 8005aea <get_next_good_spad+0x1c>
+ 8005ae8:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8005aea:	5d84      	ldrb	r4, [r0, r6]
+ 8005aec:	4566      	cmp	r6, ip
+ 8005aee:	bf03      	ittte	eq
+ 8005af0:	4114      	asreq	r4, r2
+ 8005af2:	b2e4      	uxtbeq	r4, r4
+ 8005af4:	4615      	moveq	r5, r2
+ 8005af6:	463d      	movne	r5, r7
+ 8005af8:	f014 0701 	ands.w	r7, r4, #1
+ 8005afc:	d004      	beq.n	8005b08 <get_next_good_spad+0x3a>
+ 8005afe:	eb05 05c6 	add.w	r5, r5, r6, lsl #3
+ 8005b02:	601d      	str	r5, [r3, #0]
+ 8005b04:	3601      	adds	r6, #1
+ 8005b06:	e7ec      	b.n	8005ae2 <get_next_good_spad+0x14>
+ 8005b08:	3501      	adds	r5, #1
+ 8005b0a:	2d08      	cmp	r5, #8
+ 8005b0c:	ea4f 0454 	mov.w	r4, r4, lsr #1
+ 8005b10:	d1f2      	bne.n	8005af8 <get_next_good_spad+0x2a>
+ 8005b12:	e7f7      	b.n	8005b04 <get_next_good_spad+0x36>
+
+08005b14 <is_aperture>:
+ 8005b14:	4b03      	ldr	r3, [pc, #12]	; (8005b24 <is_aperture+0x10>)
+ 8005b16:	0980      	lsrs	r0, r0, #6
+ 8005b18:	f853 0020 	ldr.w	r0, [r3, r0, lsl #2]
+ 8005b1c:	3800      	subs	r0, #0
+ 8005b1e:	bf18      	it	ne
+ 8005b20:	2001      	movne	r0, #1
+ 8005b22:	4770      	bx	lr
+ 8005b24:	20000818 	.word	0x20000818
+
+08005b28 <enable_spad_bit>:
+ 8005b28:	b510      	push	{r4, lr}
+ 8005b2a:	ebb1 0fd2 	cmp.w	r1, r2, lsr #3
+ 8005b2e:	ea4f 04d2 	mov.w	r4, r2, lsr #3
+ 8005b32:	f002 0307 	and.w	r3, r2, #7
+ 8005b36:	bf81      	itttt	hi
+ 8005b38:	2201      	movhi	r2, #1
+ 8005b3a:	409a      	lslhi	r2, r3
+ 8005b3c:	5d03      	ldrbhi	r3, [r0, r4]
+ 8005b3e:	4313      	orrhi	r3, r2
+ 8005b40:	bf8a      	itet	hi
+ 8005b42:	5503      	strbhi	r3, [r0, r4]
+ 8005b44:	f06f 0031 	mvnls.w	r0, #49	; 0x31
+ 8005b48:	2000      	movhi	r0, #0
+ 8005b4a:	bd10      	pop	{r4, pc}
+
+08005b4c <set_ref_spad_map>:
+ 8005b4c:	460a      	mov	r2, r1
+ 8005b4e:	2306      	movs	r3, #6
+ 8005b50:	21b0      	movs	r1, #176	; 0xb0
+ 8005b52:	f001 bc49 	b.w	80073e8 <VL53L0X_WriteMulti>
+
+08005b56 <get_ref_spad_map>:
+ 8005b56:	460a      	mov	r2, r1
+ 8005b58:	2306      	movs	r3, #6
+ 8005b5a:	21b0      	movs	r1, #176	; 0xb0
+ 8005b5c:	f001 bc62 	b.w	8007424 <VL53L0X_ReadMulti>
+
+08005b60 <enable_ref_spads>:
+ 8005b60:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8005b64:	b085      	sub	sp, #20
+ 8005b66:	4680      	mov	r8, r0
+ 8005b68:	9e10      	ldr	r6, [sp, #64]	; 0x40
+ 8005b6a:	9d0e      	ldr	r5, [sp, #56]	; 0x38
+ 8005b6c:	9601      	str	r6, [sp, #4]
+ 8005b6e:	468a      	mov	sl, r1
+ 8005b70:	4693      	mov	fp, r2
+ 8005b72:	461c      	mov	r4, r3
+ 8005b74:	f04f 0900 	mov.w	r9, #0
+ 8005b78:	9b11      	ldr	r3, [sp, #68]	; 0x44
+ 8005b7a:	4599      	cmp	r9, r3
+ 8005b7c:	d108      	bne.n	8005b90 <enable_ref_spads+0x30>
+ 8005b7e:	2300      	movs	r3, #0
+ 8005b80:	9a12      	ldr	r2, [sp, #72]	; 0x48
+ 8005b82:	6016      	str	r6, [r2, #0]
+ 8005b84:	b1f3      	cbz	r3, 8005bc4 <enable_ref_spads+0x64>
+ 8005b86:	f06f 0031 	mvn.w	r0, #49	; 0x31
+ 8005b8a:	b005      	add	sp, #20
+ 8005b8c:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 8005b90:	ab01      	add	r3, sp, #4
+ 8005b92:	4632      	mov	r2, r6
+ 8005b94:	4629      	mov	r1, r5
+ 8005b96:	4658      	mov	r0, fp
+ 8005b98:	f7ff ff99 	bl	8005ace <get_next_good_spad>
+ 8005b9c:	9f01      	ldr	r7, [sp, #4]
+ 8005b9e:	1c7b      	adds	r3, r7, #1
+ 8005ba0:	d00d      	beq.n	8005bbe <enable_ref_spads+0x5e>
+ 8005ba2:	9b0f      	ldr	r3, [sp, #60]	; 0x3c
+ 8005ba4:	18f8      	adds	r0, r7, r3
+ 8005ba6:	f7ff ffb5 	bl	8005b14 <is_aperture>
+ 8005baa:	4550      	cmp	r0, sl
+ 8005bac:	d107      	bne.n	8005bbe <enable_ref_spads+0x5e>
+ 8005bae:	463a      	mov	r2, r7
+ 8005bb0:	4620      	mov	r0, r4
+ 8005bb2:	f7ff ffb9 	bl	8005b28 <enable_spad_bit>
+ 8005bb6:	1c7e      	adds	r6, r7, #1
+ 8005bb8:	f109 0901 	add.w	r9, r9, #1
+ 8005bbc:	e7dc      	b.n	8005b78 <enable_ref_spads+0x18>
+ 8005bbe:	f06f 0331 	mvn.w	r3, #49	; 0x31
+ 8005bc2:	e7dd      	b.n	8005b80 <enable_ref_spads+0x20>
+ 8005bc4:	4621      	mov	r1, r4
+ 8005bc6:	4640      	mov	r0, r8
+ 8005bc8:	f7ff ffc0 	bl	8005b4c <set_ref_spad_map>
+ 8005bcc:	2800      	cmp	r0, #0
+ 8005bce:	d1dc      	bne.n	8005b8a <enable_ref_spads+0x2a>
+ 8005bd0:	a902      	add	r1, sp, #8
+ 8005bd2:	4640      	mov	r0, r8
+ 8005bd4:	f7ff ffbf 	bl	8005b56 <get_ref_spad_map>
+ 8005bd8:	4425      	add	r5, r4
+ 8005bda:	4623      	mov	r3, r4
+ 8005bdc:	aa02      	add	r2, sp, #8
+ 8005bde:	42ab      	cmp	r3, r5
+ 8005be0:	d0d3      	beq.n	8005b8a <enable_ref_spads+0x2a>
+ 8005be2:	f813 4b01 	ldrb.w	r4, [r3], #1
+ 8005be6:	f812 1b01 	ldrb.w	r1, [r2], #1
+ 8005bea:	428c      	cmp	r4, r1
+ 8005bec:	d0f7      	beq.n	8005bde <enable_ref_spads+0x7e>
+ 8005bee:	e7ca      	b.n	8005b86 <enable_ref_spads+0x26>
+
+08005bf0 <perform_ref_signal_measurement>:
+ 8005bf0:	b570      	push	{r4, r5, r6, lr}
+ 8005bf2:	22c0      	movs	r2, #192	; 0xc0
+ 8005bf4:	b088      	sub	sp, #32
+ 8005bf6:	460e      	mov	r6, r1
+ 8005bf8:	2101      	movs	r1, #1
+ 8005bfa:	f890 4130 	ldrb.w	r4, [r0, #304]	; 0x130
+ 8005bfe:	4605      	mov	r5, r0
+ 8005c00:	f001 fc26 	bl	8007450 <VL53L0X_WrByte>
+ 8005c04:	b9f0      	cbnz	r0, 8005c44 <perform_ref_signal_measurement+0x54>
+ 8005c06:	a901      	add	r1, sp, #4
+ 8005c08:	4628      	mov	r0, r5
+ 8005c0a:	f7ff fd9f 	bl	800574c <VL53L0X_PerformSingleRangingMeasurement>
+ 8005c0e:	b9c8      	cbnz	r0, 8005c44 <perform_ref_signal_measurement+0x54>
+ 8005c10:	2201      	movs	r2, #1
+ 8005c12:	21ff      	movs	r1, #255	; 0xff
+ 8005c14:	4628      	mov	r0, r5
+ 8005c16:	f001 fc1b 	bl	8007450 <VL53L0X_WrByte>
+ 8005c1a:	b998      	cbnz	r0, 8005c44 <perform_ref_signal_measurement+0x54>
+ 8005c1c:	4632      	mov	r2, r6
+ 8005c1e:	21b6      	movs	r1, #182	; 0xb6
+ 8005c20:	4628      	mov	r0, r5
+ 8005c22:	f001 fc63 	bl	80074ec <VL53L0X_RdWord>
+ 8005c26:	b968      	cbnz	r0, 8005c44 <perform_ref_signal_measurement+0x54>
+ 8005c28:	4602      	mov	r2, r0
+ 8005c2a:	21ff      	movs	r1, #255	; 0xff
+ 8005c2c:	4628      	mov	r0, r5
+ 8005c2e:	f001 fc0f 	bl	8007450 <VL53L0X_WrByte>
+ 8005c32:	b938      	cbnz	r0, 8005c44 <perform_ref_signal_measurement+0x54>
+ 8005c34:	4622      	mov	r2, r4
+ 8005c36:	2101      	movs	r1, #1
+ 8005c38:	4628      	mov	r0, r5
+ 8005c3a:	f001 fc09 	bl	8007450 <VL53L0X_WrByte>
+ 8005c3e:	b908      	cbnz	r0, 8005c44 <perform_ref_signal_measurement+0x54>
+ 8005c40:	f885 4130 	strb.w	r4, [r5, #304]	; 0x130
+ 8005c44:	b008      	add	sp, #32
+ 8005c46:	bd70      	pop	{r4, r5, r6, pc}
+
+08005c48 <VL53L0X_set_reference_spads>:
+ 8005c48:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8005c4a:	460f      	mov	r7, r1
+ 8005c4c:	b089      	sub	sp, #36	; 0x24
+ 8005c4e:	4616      	mov	r6, r2
+ 8005c50:	21ff      	movs	r1, #255	; 0xff
+ 8005c52:	2201      	movs	r2, #1
+ 8005c54:	4604      	mov	r4, r0
+ 8005c56:	f001 fbfb 	bl	8007450 <VL53L0X_WrByte>
+ 8005c5a:	4602      	mov	r2, r0
+ 8005c5c:	b9a8      	cbnz	r0, 8005c8a <VL53L0X_set_reference_spads+0x42>
+ 8005c5e:	214f      	movs	r1, #79	; 0x4f
+ 8005c60:	4620      	mov	r0, r4
+ 8005c62:	f001 fbf5 	bl	8007450 <VL53L0X_WrByte>
+ 8005c66:	b980      	cbnz	r0, 8005c8a <VL53L0X_set_reference_spads+0x42>
+ 8005c68:	222c      	movs	r2, #44	; 0x2c
+ 8005c6a:	214e      	movs	r1, #78	; 0x4e
+ 8005c6c:	4620      	mov	r0, r4
+ 8005c6e:	f001 fbef 	bl	8007450 <VL53L0X_WrByte>
+ 8005c72:	4602      	mov	r2, r0
+ 8005c74:	b948      	cbnz	r0, 8005c8a <VL53L0X_set_reference_spads+0x42>
+ 8005c76:	21ff      	movs	r1, #255	; 0xff
+ 8005c78:	4620      	mov	r0, r4
+ 8005c7a:	f001 fbe9 	bl	8007450 <VL53L0X_WrByte>
+ 8005c7e:	b920      	cbnz	r0, 8005c8a <VL53L0X_set_reference_spads+0x42>
+ 8005c80:	22b4      	movs	r2, #180	; 0xb4
+ 8005c82:	21b6      	movs	r1, #182	; 0xb6
+ 8005c84:	4620      	mov	r0, r4
+ 8005c86:	f001 fbe3 	bl	8007450 <VL53L0X_WrByte>
+ 8005c8a:	2500      	movs	r5, #0
+ 8005c8c:	f8c4 5124 	str.w	r5, [r4, #292]	; 0x124
+ 8005c90:	f8a4 5128 	strh.w	r5, [r4, #296]	; 0x128
+ 8005c94:	b9de      	cbnz	r6, 8005cce <VL53L0X_set_reference_spads+0x86>
+ 8005c96:	4635      	mov	r5, r6
+ 8005c98:	ab07      	add	r3, sp, #28
+ 8005c9a:	22b4      	movs	r2, #180	; 0xb4
+ 8005c9c:	e9cd 7303 	strd	r7, r3, [sp, #12]
+ 8005ca0:	2306      	movs	r3, #6
+ 8005ca2:	e9cd 3200 	strd	r3, r2, [sp]
+ 8005ca6:	9502      	str	r5, [sp, #8]
+ 8005ca8:	f504 7392 	add.w	r3, r4, #292	; 0x124
+ 8005cac:	f504 7295 	add.w	r2, r4, #298	; 0x12a
+ 8005cb0:	4631      	mov	r1, r6
+ 8005cb2:	4620      	mov	r0, r4
+ 8005cb4:	f7ff ff54 	bl	8005b60 <enable_ref_spads>
+ 8005cb8:	b930      	cbnz	r0, 8005cc8 <VL53L0X_set_reference_spads+0x80>
+ 8005cba:	2301      	movs	r3, #1
+ 8005cbc:	f884 3115 	strb.w	r3, [r4, #277]	; 0x115
+ 8005cc0:	f884 7113 	strb.w	r7, [r4, #275]	; 0x113
+ 8005cc4:	f884 6114 	strb.w	r6, [r4, #276]	; 0x114
+ 8005cc8:	b009      	add	sp, #36	; 0x24
+ 8005cca:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8005ccc:	3501      	adds	r5, #1
+ 8005cce:	f105 00b4 	add.w	r0, r5, #180	; 0xb4
+ 8005cd2:	f7ff ff1f 	bl	8005b14 <is_aperture>
+ 8005cd6:	2800      	cmp	r0, #0
+ 8005cd8:	d1de      	bne.n	8005c98 <VL53L0X_set_reference_spads+0x50>
+ 8005cda:	2d2c      	cmp	r5, #44	; 0x2c
+ 8005cdc:	d1f6      	bne.n	8005ccc <VL53L0X_set_reference_spads+0x84>
+ 8005cde:	e7db      	b.n	8005c98 <VL53L0X_set_reference_spads+0x50>
+
+08005ce0 <VL53L0X_perform_single_ref_calibration>:
+ 8005ce0:	b510      	push	{r4, lr}
+ 8005ce2:	f041 0201 	orr.w	r2, r1, #1
+ 8005ce6:	2100      	movs	r1, #0
+ 8005ce8:	4604      	mov	r4, r0
+ 8005cea:	f001 fbb1 	bl	8007450 <VL53L0X_WrByte>
+ 8005cee:	b978      	cbnz	r0, 8005d10 <VL53L0X_perform_single_ref_calibration+0x30>
+ 8005cf0:	4620      	mov	r0, r4
+ 8005cf2:	f000 fa46 	bl	8006182 <VL53L0X_measurement_poll_for_completion>
+ 8005cf6:	b958      	cbnz	r0, 8005d10 <VL53L0X_perform_single_ref_calibration+0x30>
+ 8005cf8:	4601      	mov	r1, r0
+ 8005cfa:	4620      	mov	r0, r4
+ 8005cfc:	f7ff fcfa 	bl	80056f4 <VL53L0X_ClearInterruptMask>
+ 8005d00:	b930      	cbnz	r0, 8005d10 <VL53L0X_perform_single_ref_calibration+0x30>
+ 8005d02:	4602      	mov	r2, r0
+ 8005d04:	4601      	mov	r1, r0
+ 8005d06:	4620      	mov	r0, r4
+ 8005d08:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8005d0c:	f001 bba0 	b.w	8007450 <VL53L0X_WrByte>
+ 8005d10:	bd10      	pop	{r4, pc}
+
+08005d12 <VL53L0X_ref_calibration_io>:
+ 8005d12:	e92d 4ff7 	stmdb	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8005d16:	f04f 0b00 	mov.w	fp, #0
+ 8005d1a:	4688      	mov	r8, r1
+ 8005d1c:	4617      	mov	r7, r2
+ 8005d1e:	21ff      	movs	r1, #255	; 0xff
+ 8005d20:	2201      	movs	r2, #1
+ 8005d22:	4605      	mov	r5, r0
+ 8005d24:	461e      	mov	r6, r3
+ 8005d26:	f89d a038 	ldrb.w	sl, [sp, #56]	; 0x38
+ 8005d2a:	f89d 903c 	ldrb.w	r9, [sp, #60]	; 0x3c
+ 8005d2e:	f88d b007 	strb.w	fp, [sp, #7]
+ 8005d32:	f001 fb8d 	bl	8007450 <VL53L0X_WrByte>
+ 8005d36:	465a      	mov	r2, fp
+ 8005d38:	4604      	mov	r4, r0
+ 8005d3a:	4659      	mov	r1, fp
+ 8005d3c:	4628      	mov	r0, r5
+ 8005d3e:	f001 fb87 	bl	8007450 <VL53L0X_WrByte>
+ 8005d42:	465a      	mov	r2, fp
+ 8005d44:	4304      	orrs	r4, r0
+ 8005d46:	21ff      	movs	r1, #255	; 0xff
+ 8005d48:	4628      	mov	r0, r5
+ 8005d4a:	f001 fb81 	bl	8007450 <VL53L0X_WrByte>
+ 8005d4e:	b264      	sxtb	r4, r4
+ 8005d50:	4304      	orrs	r4, r0
+ 8005d52:	b264      	sxtb	r4, r4
+ 8005d54:	f1b8 0f00 	cmp.w	r8, #0
+ 8005d58:	d032      	beq.n	8005dc0 <VL53L0X_ref_calibration_io+0xae>
+ 8005d5a:	f1ba 0f00 	cmp.w	sl, #0
+ 8005d5e:	d006      	beq.n	8005d6e <VL53L0X_ref_calibration_io+0x5c>
+ 8005d60:	9a0c      	ldr	r2, [sp, #48]	; 0x30
+ 8005d62:	21cb      	movs	r1, #203	; 0xcb
+ 8005d64:	4628      	mov	r0, r5
+ 8005d66:	f001 fb95 	bl	8007494 <VL53L0X_RdByte>
+ 8005d6a:	4320      	orrs	r0, r4
+ 8005d6c:	b244      	sxtb	r4, r0
+ 8005d6e:	f1b9 0f00 	cmp.w	r9, #0
+ 8005d72:	d007      	beq.n	8005d84 <VL53L0X_ref_calibration_io+0x72>
+ 8005d74:	f10d 0207 	add.w	r2, sp, #7
+ 8005d78:	21ee      	movs	r1, #238	; 0xee
+ 8005d7a:	4628      	mov	r0, r5
+ 8005d7c:	f001 fb8a 	bl	8007494 <VL53L0X_RdByte>
+ 8005d80:	4320      	orrs	r0, r4
+ 8005d82:	b244      	sxtb	r4, r0
+ 8005d84:	2201      	movs	r2, #1
+ 8005d86:	21ff      	movs	r1, #255	; 0xff
+ 8005d88:	4628      	mov	r0, r5
+ 8005d8a:	f001 fb61 	bl	8007450 <VL53L0X_WrByte>
+ 8005d8e:	2201      	movs	r2, #1
+ 8005d90:	4304      	orrs	r4, r0
+ 8005d92:	2100      	movs	r1, #0
+ 8005d94:	4628      	mov	r0, r5
+ 8005d96:	f001 fb5b 	bl	8007450 <VL53L0X_WrByte>
+ 8005d9a:	b264      	sxtb	r4, r4
+ 8005d9c:	4304      	orrs	r4, r0
+ 8005d9e:	2200      	movs	r2, #0
+ 8005da0:	21ff      	movs	r1, #255	; 0xff
+ 8005da2:	4628      	mov	r0, r5
+ 8005da4:	f001 fb54 	bl	8007450 <VL53L0X_WrByte>
+ 8005da8:	b264      	sxtb	r4, r4
+ 8005daa:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8005dae:	9a0d      	ldr	r2, [sp, #52]	; 0x34
+ 8005db0:	4320      	orrs	r0, r4
+ 8005db2:	f023 0310 	bic.w	r3, r3, #16
+ 8005db6:	b240      	sxtb	r0, r0
+ 8005db8:	7013      	strb	r3, [r2, #0]
+ 8005dba:	b003      	add	sp, #12
+ 8005dbc:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 8005dc0:	f1ba 0f00 	cmp.w	sl, #0
+ 8005dc4:	d006      	beq.n	8005dd4 <VL53L0X_ref_calibration_io+0xc2>
+ 8005dc6:	463a      	mov	r2, r7
+ 8005dc8:	21cb      	movs	r1, #203	; 0xcb
+ 8005dca:	4628      	mov	r0, r5
+ 8005dcc:	f001 fb40 	bl	8007450 <VL53L0X_WrByte>
+ 8005dd0:	4320      	orrs	r0, r4
+ 8005dd2:	b244      	sxtb	r4, r0
+ 8005dd4:	f1b9 0f00 	cmp.w	r9, #0
+ 8005dd8:	d0d4      	beq.n	8005d84 <VL53L0X_ref_calibration_io+0x72>
+ 8005dda:	4633      	mov	r3, r6
+ 8005ddc:	2280      	movs	r2, #128	; 0x80
+ 8005dde:	21ee      	movs	r1, #238	; 0xee
+ 8005de0:	4628      	mov	r0, r5
+ 8005de2:	f001 fb6c 	bl	80074be <VL53L0X_UpdateByte>
+ 8005de6:	e7cb      	b.n	8005d80 <VL53L0X_ref_calibration_io+0x6e>
+
+08005de8 <VL53L0X_perform_vhv_calibration>:
+ 8005de8:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
+ 8005dec:	b087      	sub	sp, #28
+ 8005dee:	4691      	mov	r9, r2
+ 8005df0:	2200      	movs	r2, #0
+ 8005df2:	4605      	mov	r5, r0
+ 8005df4:	4688      	mov	r8, r1
+ 8005df6:	f88d 2017 	strb.w	r2, [sp, #23]
+ 8005dfa:	461e      	mov	r6, r3
+ 8005dfc:	b31b      	cbz	r3, 8005e46 <VL53L0X_perform_vhv_calibration+0x5e>
+ 8005dfe:	f890 7130 	ldrb.w	r7, [r0, #304]	; 0x130
+ 8005e02:	2201      	movs	r2, #1
+ 8005e04:	4611      	mov	r1, r2
+ 8005e06:	4628      	mov	r0, r5
+ 8005e08:	f001 fb22 	bl	8007450 <VL53L0X_WrByte>
+ 8005e0c:	4604      	mov	r4, r0
+ 8005e0e:	bb58      	cbnz	r0, 8005e68 <VL53L0X_perform_vhv_calibration+0x80>
+ 8005e10:	2140      	movs	r1, #64	; 0x40
+ 8005e12:	4628      	mov	r0, r5
+ 8005e14:	f7ff ff64 	bl	8005ce0 <VL53L0X_perform_single_ref_calibration>
+ 8005e18:	4604      	mov	r4, r0
+ 8005e1a:	bb28      	cbnz	r0, 8005e68 <VL53L0X_perform_vhv_calibration+0x80>
+ 8005e1c:	f1b9 0f01 	cmp.w	r9, #1
+ 8005e20:	d113      	bne.n	8005e4a <VL53L0X_perform_vhv_calibration+0x62>
+ 8005e22:	f10d 0317 	add.w	r3, sp, #23
+ 8005e26:	e9cd 9002 	strd	r9, r0, [sp, #8]
+ 8005e2a:	e9cd 8300 	strd	r8, r3, [sp]
+ 8005e2e:	4602      	mov	r2, r0
+ 8005e30:	4603      	mov	r3, r0
+ 8005e32:	4649      	mov	r1, r9
+ 8005e34:	4628      	mov	r0, r5
+ 8005e36:	f7ff ff6c 	bl	8005d12 <VL53L0X_ref_calibration_io>
+ 8005e3a:	b140      	cbz	r0, 8005e4e <VL53L0X_perform_vhv_calibration+0x66>
+ 8005e3c:	4604      	mov	r4, r0
+ 8005e3e:	4620      	mov	r0, r4
+ 8005e40:	b007      	add	sp, #28
+ 8005e42:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
+ 8005e46:	461f      	mov	r7, r3
+ 8005e48:	e7db      	b.n	8005e02 <VL53L0X_perform_vhv_calibration+0x1a>
+ 8005e4a:	f888 0000 	strb.w	r0, [r8]
+ 8005e4e:	2e00      	cmp	r6, #0
+ 8005e50:	d0f5      	beq.n	8005e3e <VL53L0X_perform_vhv_calibration+0x56>
+ 8005e52:	463a      	mov	r2, r7
+ 8005e54:	2101      	movs	r1, #1
+ 8005e56:	4628      	mov	r0, r5
+ 8005e58:	f001 fafa 	bl	8007450 <VL53L0X_WrByte>
+ 8005e5c:	4604      	mov	r4, r0
+ 8005e5e:	2800      	cmp	r0, #0
+ 8005e60:	d1ed      	bne.n	8005e3e <VL53L0X_perform_vhv_calibration+0x56>
+ 8005e62:	f885 7130 	strb.w	r7, [r5, #304]	; 0x130
+ 8005e66:	e7ea      	b.n	8005e3e <VL53L0X_perform_vhv_calibration+0x56>
+ 8005e68:	2300      	movs	r3, #0
+ 8005e6a:	f888 3000 	strb.w	r3, [r8]
+ 8005e6e:	4620      	mov	r0, r4
+ 8005e70:	e7e4      	b.n	8005e3c <VL53L0X_perform_vhv_calibration+0x54>
+
+08005e72 <VL53L0X_perform_phase_calibration>:
+ 8005e72:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
+ 8005e76:	4605      	mov	r5, r0
+ 8005e78:	b087      	sub	sp, #28
+ 8005e7a:	4688      	mov	r8, r1
+ 8005e7c:	4691      	mov	r9, r2
+ 8005e7e:	461e      	mov	r6, r3
+ 8005e80:	b323      	cbz	r3, 8005ecc <VL53L0X_perform_phase_calibration+0x5a>
+ 8005e82:	f890 7130 	ldrb.w	r7, [r0, #304]	; 0x130
+ 8005e86:	2202      	movs	r2, #2
+ 8005e88:	2101      	movs	r1, #1
+ 8005e8a:	4628      	mov	r0, r5
+ 8005e8c:	f001 fae0 	bl	8007450 <VL53L0X_WrByte>
+ 8005e90:	4604      	mov	r4, r0
+ 8005e92:	bb60      	cbnz	r0, 8005eee <VL53L0X_perform_phase_calibration+0x7c>
+ 8005e94:	4601      	mov	r1, r0
+ 8005e96:	4628      	mov	r0, r5
+ 8005e98:	f7ff ff22 	bl	8005ce0 <VL53L0X_perform_single_ref_calibration>
+ 8005e9c:	4604      	mov	r4, r0
+ 8005e9e:	bb30      	cbnz	r0, 8005eee <VL53L0X_perform_phase_calibration+0x7c>
+ 8005ea0:	f1b9 0f01 	cmp.w	r9, #1
+ 8005ea4:	d114      	bne.n	8005ed0 <VL53L0X_perform_phase_calibration+0x5e>
+ 8005ea6:	f10d 0317 	add.w	r3, sp, #23
+ 8005eaa:	e9cd 0902 	strd	r0, r9, [sp, #8]
+ 8005eae:	9300      	str	r3, [sp, #0]
+ 8005eb0:	4602      	mov	r2, r0
+ 8005eb2:	4603      	mov	r3, r0
+ 8005eb4:	f8cd 8004 	str.w	r8, [sp, #4]
+ 8005eb8:	4649      	mov	r1, r9
+ 8005eba:	4628      	mov	r0, r5
+ 8005ebc:	f7ff ff29 	bl	8005d12 <VL53L0X_ref_calibration_io>
+ 8005ec0:	b140      	cbz	r0, 8005ed4 <VL53L0X_perform_phase_calibration+0x62>
+ 8005ec2:	4604      	mov	r4, r0
+ 8005ec4:	4620      	mov	r0, r4
+ 8005ec6:	b007      	add	sp, #28
+ 8005ec8:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
+ 8005ecc:	461f      	mov	r7, r3
+ 8005ece:	e7da      	b.n	8005e86 <VL53L0X_perform_phase_calibration+0x14>
+ 8005ed0:	f888 0000 	strb.w	r0, [r8]
+ 8005ed4:	2e00      	cmp	r6, #0
+ 8005ed6:	d0f5      	beq.n	8005ec4 <VL53L0X_perform_phase_calibration+0x52>
+ 8005ed8:	463a      	mov	r2, r7
+ 8005eda:	2101      	movs	r1, #1
+ 8005edc:	4628      	mov	r0, r5
+ 8005ede:	f001 fab7 	bl	8007450 <VL53L0X_WrByte>
+ 8005ee2:	4604      	mov	r4, r0
+ 8005ee4:	2800      	cmp	r0, #0
+ 8005ee6:	d1ed      	bne.n	8005ec4 <VL53L0X_perform_phase_calibration+0x52>
+ 8005ee8:	f885 7130 	strb.w	r7, [r5, #304]	; 0x130
+ 8005eec:	e7ea      	b.n	8005ec4 <VL53L0X_perform_phase_calibration+0x52>
+ 8005eee:	2300      	movs	r3, #0
+ 8005ef0:	f888 3000 	strb.w	r3, [r8]
+ 8005ef4:	4620      	mov	r0, r4
+ 8005ef6:	e7e4      	b.n	8005ec2 <VL53L0X_perform_phase_calibration+0x50>
+
+08005ef8 <VL53L0X_perform_ref_calibration>:
+ 8005ef8:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 8005efa:	461d      	mov	r5, r3
+ 8005efc:	4616      	mov	r6, r2
+ 8005efe:	2300      	movs	r3, #0
+ 8005f00:	462a      	mov	r2, r5
+ 8005f02:	f890 7130 	ldrb.w	r7, [r0, #304]	; 0x130
+ 8005f06:	4604      	mov	r4, r0
+ 8005f08:	f7ff ff6e 	bl	8005de8 <VL53L0X_perform_vhv_calibration>
+ 8005f0c:	b970      	cbnz	r0, 8005f2c <VL53L0X_perform_ref_calibration+0x34>
+ 8005f0e:	4603      	mov	r3, r0
+ 8005f10:	462a      	mov	r2, r5
+ 8005f12:	4631      	mov	r1, r6
+ 8005f14:	4620      	mov	r0, r4
+ 8005f16:	f7ff ffac 	bl	8005e72 <VL53L0X_perform_phase_calibration>
+ 8005f1a:	b938      	cbnz	r0, 8005f2c <VL53L0X_perform_ref_calibration+0x34>
+ 8005f1c:	463a      	mov	r2, r7
+ 8005f1e:	2101      	movs	r1, #1
+ 8005f20:	4620      	mov	r0, r4
+ 8005f22:	f001 fa95 	bl	8007450 <VL53L0X_WrByte>
+ 8005f26:	b908      	cbnz	r0, 8005f2c <VL53L0X_perform_ref_calibration+0x34>
+ 8005f28:	f884 7130 	strb.w	r7, [r4, #304]	; 0x130
+ 8005f2c:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+
+08005f2e <VL53L0X_perform_ref_spad_management>:
+ 8005f2e:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8005f32:	2300      	movs	r3, #0
+ 8005f34:	b093      	sub	sp, #76	; 0x4c
+ 8005f36:	e9cd 120a 	strd	r1, r2, [sp, #40]	; 0x28
+ 8005f3a:	f8c0 3124 	str.w	r3, [r0, #292]	; 0x124
+ 8005f3e:	f8a0 3128 	strh.w	r3, [r0, #296]	; 0x128
+ 8005f42:	2201      	movs	r2, #1
+ 8005f44:	21ff      	movs	r1, #255	; 0xff
+ 8005f46:	e9cd 330e 	strd	r3, r3, [sp, #56]	; 0x38
+ 8005f4a:	f8b0 813c 	ldrh.w	r8, [r0, #316]	; 0x13c
+ 8005f4e:	f88d 3034 	strb.w	r3, [sp, #52]	; 0x34
+ 8005f52:	4605      	mov	r5, r0
+ 8005f54:	f88d 3035 	strb.w	r3, [sp, #53]	; 0x35
+ 8005f58:	f001 fa7a 	bl	8007450 <VL53L0X_WrByte>
+ 8005f5c:	4604      	mov	r4, r0
+ 8005f5e:	2800      	cmp	r0, #0
+ 8005f60:	f040 80e3 	bne.w	800612a <VL53L0X_perform_ref_spad_management+0x1fc>
+ 8005f64:	4602      	mov	r2, r0
+ 8005f66:	214f      	movs	r1, #79	; 0x4f
+ 8005f68:	4628      	mov	r0, r5
+ 8005f6a:	f001 fa71 	bl	8007450 <VL53L0X_WrByte>
+ 8005f6e:	4604      	mov	r4, r0
+ 8005f70:	2800      	cmp	r0, #0
+ 8005f72:	f040 80da 	bne.w	800612a <VL53L0X_perform_ref_spad_management+0x1fc>
+ 8005f76:	222c      	movs	r2, #44	; 0x2c
+ 8005f78:	214e      	movs	r1, #78	; 0x4e
+ 8005f7a:	4628      	mov	r0, r5
+ 8005f7c:	f001 fa68 	bl	8007450 <VL53L0X_WrByte>
+ 8005f80:	4604      	mov	r4, r0
+ 8005f82:	2800      	cmp	r0, #0
+ 8005f84:	f040 80d1 	bne.w	800612a <VL53L0X_perform_ref_spad_management+0x1fc>
+ 8005f88:	4602      	mov	r2, r0
+ 8005f8a:	21ff      	movs	r1, #255	; 0xff
+ 8005f8c:	4628      	mov	r0, r5
+ 8005f8e:	f001 fa5f 	bl	8007450 <VL53L0X_WrByte>
+ 8005f92:	4604      	mov	r4, r0
+ 8005f94:	2800      	cmp	r0, #0
+ 8005f96:	f040 80c8 	bne.w	800612a <VL53L0X_perform_ref_spad_management+0x1fc>
+ 8005f9a:	22b4      	movs	r2, #180	; 0xb4
+ 8005f9c:	21b6      	movs	r1, #182	; 0xb6
+ 8005f9e:	4628      	mov	r0, r5
+ 8005fa0:	f001 fa56 	bl	8007450 <VL53L0X_WrByte>
+ 8005fa4:	4604      	mov	r4, r0
+ 8005fa6:	2800      	cmp	r0, #0
+ 8005fa8:	f040 80bf 	bne.w	800612a <VL53L0X_perform_ref_spad_management+0x1fc>
+ 8005fac:	4602      	mov	r2, r0
+ 8005fae:	2180      	movs	r1, #128	; 0x80
+ 8005fb0:	4628      	mov	r0, r5
+ 8005fb2:	f001 fa4d 	bl	8007450 <VL53L0X_WrByte>
+ 8005fb6:	4604      	mov	r4, r0
+ 8005fb8:	2800      	cmp	r0, #0
+ 8005fba:	f040 80b6 	bne.w	800612a <VL53L0X_perform_ref_spad_management+0x1fc>
+ 8005fbe:	4603      	mov	r3, r0
+ 8005fc0:	f10d 0235 	add.w	r2, sp, #53	; 0x35
+ 8005fc4:	a90d      	add	r1, sp, #52	; 0x34
+ 8005fc6:	4628      	mov	r0, r5
+ 8005fc8:	f7ff ff96 	bl	8005ef8 <VL53L0X_perform_ref_calibration>
+ 8005fcc:	4604      	mov	r4, r0
+ 8005fce:	2800      	cmp	r0, #0
+ 8005fd0:	f040 80ab 	bne.w	800612a <VL53L0X_perform_ref_spad_management+0x1fc>
+ 8005fd4:	2303      	movs	r3, #3
+ 8005fd6:	e9cd 0302 	strd	r0, r3, [sp, #8]
+ 8005fda:	21b4      	movs	r1, #180	; 0xb4
+ 8005fdc:	2306      	movs	r3, #6
+ 8005fde:	f505 7a95 	add.w	sl, r5, #298	; 0x12a
+ 8005fe2:	f505 7992 	add.w	r9, r5, #292	; 0x124
+ 8005fe6:	ae0e      	add	r6, sp, #56	; 0x38
+ 8005fe8:	e9cd 3100 	strd	r3, r1, [sp]
+ 8005fec:	9604      	str	r6, [sp, #16]
+ 8005fee:	4601      	mov	r1, r0
+ 8005ff0:	464b      	mov	r3, r9
+ 8005ff2:	4652      	mov	r2, sl
+ 8005ff4:	4628      	mov	r0, r5
+ 8005ff6:	f7ff fdb3 	bl	8005b60 <enable_ref_spads>
+ 8005ffa:	4604      	mov	r4, r0
+ 8005ffc:	2800      	cmp	r0, #0
+ 8005ffe:	f040 8094 	bne.w	800612a <VL53L0X_perform_ref_spad_management+0x1fc>
+ 8006002:	f10d 0136 	add.w	r1, sp, #54	; 0x36
+ 8006006:	4628      	mov	r0, r5
+ 8006008:	9f0e      	ldr	r7, [sp, #56]	; 0x38
+ 800600a:	f7ff fdf1 	bl	8005bf0 <perform_ref_signal_measurement>
+ 800600e:	4604      	mov	r4, r0
+ 8006010:	2800      	cmp	r0, #0
+ 8006012:	f040 808a 	bne.w	800612a <VL53L0X_perform_ref_spad_management+0x1fc>
+ 8006016:	f8bd 3036 	ldrh.w	r3, [sp, #54]	; 0x36
+ 800601a:	4543      	cmp	r3, r8
+ 800601c:	f240 80aa 	bls.w	8006174 <VL53L0X_perform_ref_spad_management+0x246>
+ 8006020:	f8c5 0124 	str.w	r0, [r5, #292]	; 0x124
+ 8006024:	f8a5 0128 	strh.w	r0, [r5, #296]	; 0x128
+ 8006028:	f107 00b4 	add.w	r0, r7, #180	; 0xb4
+ 800602c:	f7ff fd72 	bl	8005b14 <is_aperture>
+ 8006030:	b908      	cbnz	r0, 8006036 <VL53L0X_perform_ref_spad_management+0x108>
+ 8006032:	2f2b      	cmp	r7, #43	; 0x2b
+ 8006034:	d97d      	bls.n	8006132 <VL53L0X_perform_ref_spad_management+0x204>
+ 8006036:	2306      	movs	r3, #6
+ 8006038:	22b4      	movs	r2, #180	; 0xb4
+ 800603a:	f04f 0b03 	mov.w	fp, #3
+ 800603e:	e9cd 3200 	strd	r3, r2, [sp]
+ 8006042:	e9cd 7b02 	strd	r7, fp, [sp, #8]
+ 8006046:	9604      	str	r6, [sp, #16]
+ 8006048:	464b      	mov	r3, r9
+ 800604a:	4652      	mov	r2, sl
+ 800604c:	2101      	movs	r1, #1
+ 800604e:	4628      	mov	r0, r5
+ 8006050:	f7ff fd86 	bl	8005b60 <enable_ref_spads>
+ 8006054:	2800      	cmp	r0, #0
+ 8006056:	f040 808b 	bne.w	8006170 <VL53L0X_perform_ref_spad_management+0x242>
+ 800605a:	f10d 0136 	add.w	r1, sp, #54	; 0x36
+ 800605e:	4628      	mov	r0, r5
+ 8006060:	9f0e      	ldr	r7, [sp, #56]	; 0x38
+ 8006062:	f7ff fdc5 	bl	8005bf0 <perform_ref_signal_measurement>
+ 8006066:	4606      	mov	r6, r0
+ 8006068:	2800      	cmp	r0, #0
+ 800606a:	d17c      	bne.n	8006166 <VL53L0X_perform_ref_spad_management+0x238>
+ 800606c:	f8bd 3036 	ldrh.w	r3, [sp, #54]	; 0x36
+ 8006070:	4543      	cmp	r3, r8
+ 8006072:	f240 8082 	bls.w	800617a <VL53L0X_perform_ref_spad_management+0x24c>
+ 8006076:	2601      	movs	r6, #1
+ 8006078:	9606      	str	r6, [sp, #24]
+ 800607a:	f8bd 3036 	ldrh.w	r3, [sp, #54]	; 0x36
+ 800607e:	4543      	cmp	r3, r8
+ 8006080:	d260      	bcs.n	8006144 <VL53L0X_perform_ref_spad_management+0x216>
+ 8006082:	eba3 0308 	sub.w	r3, r3, r8
+ 8006086:	ea83 72e3 	eor.w	r2, r3, r3, asr #31
+ 800608a:	eba2 72e3 	sub.w	r2, r2, r3, asr #31
+ 800608e:	f89d 6018 	ldrb.w	r6, [sp, #24]
+ 8006092:	9209      	str	r2, [sp, #36]	; 0x24
+ 8006094:	f505 7392 	add.w	r3, r5, #292	; 0x124
+ 8006098:	f04f 0b03 	mov.w	fp, #3
+ 800609c:	9307      	str	r3, [sp, #28]
+ 800609e:	9b07      	ldr	r3, [sp, #28]
+ 80060a0:	6818      	ldr	r0, [r3, #0]
+ 80060a2:	889b      	ldrh	r3, [r3, #4]
+ 80060a4:	9010      	str	r0, [sp, #64]	; 0x40
+ 80060a6:	f8ad 3044 	strh.w	r3, [sp, #68]	; 0x44
+ 80060aa:	463a      	mov	r2, r7
+ 80060ac:	ab0f      	add	r3, sp, #60	; 0x3c
+ 80060ae:	2106      	movs	r1, #6
+ 80060b0:	4650      	mov	r0, sl
+ 80060b2:	f7ff fd0c 	bl	8005ace <get_next_good_spad>
+ 80060b6:	9f0f      	ldr	r7, [sp, #60]	; 0x3c
+ 80060b8:	1c7b      	adds	r3, r7, #1
+ 80060ba:	d056      	beq.n	800616a <VL53L0X_perform_ref_spad_management+0x23c>
+ 80060bc:	f107 00b4 	add.w	r0, r7, #180	; 0xb4
+ 80060c0:	f7ff fd28 	bl	8005b14 <is_aperture>
+ 80060c4:	9b06      	ldr	r3, [sp, #24]
+ 80060c6:	4298      	cmp	r0, r3
+ 80060c8:	d13c      	bne.n	8006144 <VL53L0X_perform_ref_spad_management+0x216>
+ 80060ca:	f10b 0301 	add.w	r3, fp, #1
+ 80060ce:	463a      	mov	r2, r7
+ 80060d0:	4648      	mov	r0, r9
+ 80060d2:	9308      	str	r3, [sp, #32]
+ 80060d4:	f7ff fd28 	bl	8005b28 <enable_spad_bit>
+ 80060d8:	2800      	cmp	r0, #0
+ 80060da:	d149      	bne.n	8006170 <VL53L0X_perform_ref_spad_management+0x242>
+ 80060dc:	4649      	mov	r1, r9
+ 80060de:	4628      	mov	r0, r5
+ 80060e0:	f7ff fd34 	bl	8005b4c <set_ref_spad_map>
+ 80060e4:	2800      	cmp	r0, #0
+ 80060e6:	d143      	bne.n	8006170 <VL53L0X_perform_ref_spad_management+0x242>
+ 80060e8:	f10d 0136 	add.w	r1, sp, #54	; 0x36
+ 80060ec:	4628      	mov	r0, r5
+ 80060ee:	f7ff fd7f 	bl	8005bf0 <perform_ref_signal_measurement>
+ 80060f2:	2800      	cmp	r0, #0
+ 80060f4:	d13c      	bne.n	8006170 <VL53L0X_perform_ref_spad_management+0x242>
+ 80060f6:	f8bd 2036 	ldrh.w	r2, [sp, #54]	; 0x36
+ 80060fa:	eba2 0308 	sub.w	r3, r2, r8
+ 80060fe:	2b00      	cmp	r3, #0
+ 8006100:	bfb8      	it	lt
+ 8006102:	425b      	neglt	r3, r3
+ 8006104:	4542      	cmp	r2, r8
+ 8006106:	d916      	bls.n	8006136 <VL53L0X_perform_ref_spad_management+0x208>
+ 8006108:	9a09      	ldr	r2, [sp, #36]	; 0x24
+ 800610a:	4293      	cmp	r3, r2
+ 800610c:	d918      	bls.n	8006140 <VL53L0X_perform_ref_spad_management+0x212>
+ 800610e:	a910      	add	r1, sp, #64	; 0x40
+ 8006110:	4628      	mov	r0, r5
+ 8006112:	f7ff fd1b 	bl	8005b4c <set_ref_spad_map>
+ 8006116:	9a07      	ldr	r2, [sp, #28]
+ 8006118:	9907      	ldr	r1, [sp, #28]
+ 800611a:	4603      	mov	r3, r0
+ 800611c:	9810      	ldr	r0, [sp, #64]	; 0x40
+ 800611e:	6010      	str	r0, [r2, #0]
+ 8006120:	f8bd 2044 	ldrh.w	r2, [sp, #68]	; 0x44
+ 8006124:	808a      	strh	r2, [r1, #4]
+ 8006126:	b16b      	cbz	r3, 8006144 <VL53L0X_perform_ref_spad_management+0x216>
+ 8006128:	461c      	mov	r4, r3
+ 800612a:	4620      	mov	r0, r4
+ 800612c:	b013      	add	sp, #76	; 0x4c
+ 800612e:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 8006132:	3701      	adds	r7, #1
+ 8006134:	e778      	b.n	8006028 <VL53L0X_perform_ref_spad_management+0xfa>
+ 8006136:	f8dd b020 	ldr.w	fp, [sp, #32]
+ 800613a:	9309      	str	r3, [sp, #36]	; 0x24
+ 800613c:	3701      	adds	r7, #1
+ 800613e:	e7ae      	b.n	800609e <VL53L0X_perform_ref_spad_management+0x170>
+ 8006140:	f8dd b020 	ldr.w	fp, [sp, #32]
+ 8006144:	9b0a      	ldr	r3, [sp, #40]	; 0x28
+ 8006146:	f8c3 b000 	str.w	fp, [r3]
+ 800614a:	9b0b      	ldr	r3, [sp, #44]	; 0x2c
+ 800614c:	701e      	strb	r6, [r3, #0]
+ 800614e:	2301      	movs	r3, #1
+ 8006150:	f885 3115 	strb.w	r3, [r5, #277]	; 0x115
+ 8006154:	9b0a      	ldr	r3, [sp, #40]	; 0x28
+ 8006156:	681b      	ldr	r3, [r3, #0]
+ 8006158:	f885 3113 	strb.w	r3, [r5, #275]	; 0x113
+ 800615c:	9b0b      	ldr	r3, [sp, #44]	; 0x2c
+ 800615e:	781b      	ldrb	r3, [r3, #0]
+ 8006160:	f885 3114 	strb.w	r3, [r5, #276]	; 0x114
+ 8006164:	e7e1      	b.n	800612a <VL53L0X_perform_ref_spad_management+0x1fc>
+ 8006166:	4604      	mov	r4, r0
+ 8006168:	e7df      	b.n	800612a <VL53L0X_perform_ref_spad_management+0x1fc>
+ 800616a:	f06f 0431 	mvn.w	r4, #49	; 0x31
+ 800616e:	e7dc      	b.n	800612a <VL53L0X_perform_ref_spad_management+0x1fc>
+ 8006170:	4604      	mov	r4, r0
+ 8006172:	e7da      	b.n	800612a <VL53L0X_perform_ref_spad_management+0x1fc>
+ 8006174:	2600      	movs	r6, #0
+ 8006176:	46b3      	mov	fp, r6
+ 8006178:	e77e      	b.n	8006078 <VL53L0X_perform_ref_spad_management+0x14a>
+ 800617a:	2301      	movs	r3, #1
+ 800617c:	4683      	mov	fp, r0
+ 800617e:	9306      	str	r3, [sp, #24]
+ 8006180:	e77b      	b.n	800607a <VL53L0X_perform_ref_spad_management+0x14c>
+
+08006182 <VL53L0X_measurement_poll_for_completion>:
+ 8006182:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 8006184:	2300      	movs	r3, #0
+ 8006186:	4604      	mov	r4, r0
+ 8006188:	f88d 3007 	strb.w	r3, [sp, #7]
+ 800618c:	f44f 65fa 	mov.w	r5, #2000	; 0x7d0
+ 8006190:	f10d 0107 	add.w	r1, sp, #7
+ 8006194:	4620      	mov	r0, r4
+ 8006196:	f7ff fc60 	bl	8005a5a <VL53L0X_GetMeasurementDataReady>
+ 800619a:	b958      	cbnz	r0, 80061b4 <VL53L0X_measurement_poll_for_completion+0x32>
+ 800619c:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 80061a0:	2b01      	cmp	r3, #1
+ 80061a2:	d007      	beq.n	80061b4 <VL53L0X_measurement_poll_for_completion+0x32>
+ 80061a4:	3d01      	subs	r5, #1
+ 80061a6:	d003      	beq.n	80061b0 <VL53L0X_measurement_poll_for_completion+0x2e>
+ 80061a8:	4620      	mov	r0, r4
+ 80061aa:	f001 f9e5 	bl	8007578 <VL53L0X_PollingDelay>
+ 80061ae:	e7ef      	b.n	8006190 <VL53L0X_measurement_poll_for_completion+0xe>
+ 80061b0:	f06f 0006 	mvn.w	r0, #6
+ 80061b4:	b003      	add	sp, #12
+ 80061b6:	bd30      	pop	{r4, r5, pc}
+
+080061b8 <VL53L0X_isqrt>:
+ 80061b8:	4602      	mov	r2, r0
+ 80061ba:	f04f 4380 	mov.w	r3, #1073741824	; 0x40000000
+ 80061be:	4293      	cmp	r3, r2
+ 80061c0:	d802      	bhi.n	80061c8 <VL53L0X_isqrt+0x10>
+ 80061c2:	2000      	movs	r0, #0
+ 80061c4:	b913      	cbnz	r3, 80061cc <VL53L0X_isqrt+0x14>
+ 80061c6:	4770      	bx	lr
+ 80061c8:	089b      	lsrs	r3, r3, #2
+ 80061ca:	e7f8      	b.n	80061be <VL53L0X_isqrt+0x6>
+ 80061cc:	18c1      	adds	r1, r0, r3
+ 80061ce:	4291      	cmp	r1, r2
+ 80061d0:	ea4f 0050 	mov.w	r0, r0, lsr #1
+ 80061d4:	bf9c      	itt	ls
+ 80061d6:	18c0      	addls	r0, r0, r3
+ 80061d8:	1a52      	subls	r2, r2, r1
+ 80061da:	089b      	lsrs	r3, r3, #2
+ 80061dc:	e7f2      	b.n	80061c4 <VL53L0X_isqrt+0xc>
+
+080061de <VL53L0X_device_read_strobe>:
+ 80061de:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 80061e0:	2200      	movs	r2, #0
+ 80061e2:	2183      	movs	r1, #131	; 0x83
+ 80061e4:	4605      	mov	r5, r0
+ 80061e6:	f001 f933 	bl	8007450 <VL53L0X_WrByte>
+ 80061ea:	4604      	mov	r4, r0
+ 80061ec:	b988      	cbnz	r0, 8006212 <VL53L0X_device_read_strobe+0x34>
+ 80061ee:	f44f 66fa 	mov.w	r6, #2000	; 0x7d0
+ 80061f2:	f10d 0207 	add.w	r2, sp, #7
+ 80061f6:	2183      	movs	r1, #131	; 0x83
+ 80061f8:	4628      	mov	r0, r5
+ 80061fa:	f001 f94b 	bl	8007494 <VL53L0X_RdByte>
+ 80061fe:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8006202:	4303      	orrs	r3, r0
+ 8006204:	b2db      	uxtb	r3, r3
+ 8006206:	4604      	mov	r4, r0
+ 8006208:	b91b      	cbnz	r3, 8006212 <VL53L0X_device_read_strobe+0x34>
+ 800620a:	3e01      	subs	r6, #1
+ 800620c:	d1f1      	bne.n	80061f2 <VL53L0X_device_read_strobe+0x14>
+ 800620e:	f06f 0406 	mvn.w	r4, #6
+ 8006212:	2201      	movs	r2, #1
+ 8006214:	2183      	movs	r1, #131	; 0x83
+ 8006216:	4628      	mov	r0, r5
+ 8006218:	f001 f91a 	bl	8007450 <VL53L0X_WrByte>
+ 800621c:	4320      	orrs	r0, r4
+ 800621e:	b240      	sxtb	r0, r0
+ 8006220:	b002      	add	sp, #8
+ 8006222:	bd70      	pop	{r4, r5, r6, pc}
+
+08006224 <VL53L0X_get_info_from_device>:
+ 8006224:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8006228:	f890 60f0 	ldrb.w	r6, [r0, #240]	; 0xf0
+ 800622c:	b091      	sub	sp, #68	; 0x44
+ 800622e:	f04f 0900 	mov.w	r9, #0
+ 8006232:	2e07      	cmp	r6, #7
+ 8006234:	e9cd 9907 	strd	r9, r9, [sp, #28]
+ 8006238:	4604      	mov	r4, r0
+ 800623a:	460f      	mov	r7, r1
+ 800623c:	f000 82a2 	beq.w	8006784 <VL53L0X_get_info_from_device+0x560>
+ 8006240:	2201      	movs	r2, #1
+ 8006242:	2180      	movs	r1, #128	; 0x80
+ 8006244:	f001 f904 	bl	8007450 <VL53L0X_WrByte>
+ 8006248:	2201      	movs	r2, #1
+ 800624a:	4680      	mov	r8, r0
+ 800624c:	21ff      	movs	r1, #255	; 0xff
+ 800624e:	4620      	mov	r0, r4
+ 8006250:	f001 f8fe 	bl	8007450 <VL53L0X_WrByte>
+ 8006254:	464a      	mov	r2, r9
+ 8006256:	ea48 0800 	orr.w	r8, r8, r0
+ 800625a:	4649      	mov	r1, r9
+ 800625c:	4620      	mov	r0, r4
+ 800625e:	f001 f8f7 	bl	8007450 <VL53L0X_WrByte>
+ 8006262:	fa4f f888 	sxtb.w	r8, r8
+ 8006266:	ea48 0800 	orr.w	r8, r8, r0
+ 800626a:	2206      	movs	r2, #6
+ 800626c:	21ff      	movs	r1, #255	; 0xff
+ 800626e:	4620      	mov	r0, r4
+ 8006270:	f001 f8ee 	bl	8007450 <VL53L0X_WrByte>
+ 8006274:	fa4f f888 	sxtb.w	r8, r8
+ 8006278:	ea48 0800 	orr.w	r8, r8, r0
+ 800627c:	f10d 0215 	add.w	r2, sp, #21
+ 8006280:	2183      	movs	r1, #131	; 0x83
+ 8006282:	4620      	mov	r0, r4
+ 8006284:	f001 f906 	bl	8007494 <VL53L0X_RdByte>
+ 8006288:	f89d 2015 	ldrb.w	r2, [sp, #21]
+ 800628c:	fa4f f888 	sxtb.w	r8, r8
+ 8006290:	ea48 0800 	orr.w	r8, r8, r0
+ 8006294:	f042 0204 	orr.w	r2, r2, #4
+ 8006298:	2183      	movs	r1, #131	; 0x83
+ 800629a:	4620      	mov	r0, r4
+ 800629c:	f001 f8d8 	bl	8007450 <VL53L0X_WrByte>
+ 80062a0:	fa4f f888 	sxtb.w	r8, r8
+ 80062a4:	ea48 0800 	orr.w	r8, r8, r0
+ 80062a8:	2207      	movs	r2, #7
+ 80062aa:	21ff      	movs	r1, #255	; 0xff
+ 80062ac:	4620      	mov	r0, r4
+ 80062ae:	f001 f8cf 	bl	8007450 <VL53L0X_WrByte>
+ 80062b2:	fa4f f888 	sxtb.w	r8, r8
+ 80062b6:	2201      	movs	r2, #1
+ 80062b8:	2181      	movs	r1, #129	; 0x81
+ 80062ba:	ea48 0800 	orr.w	r8, r8, r0
+ 80062be:	4620      	mov	r0, r4
+ 80062c0:	f001 f8c6 	bl	8007450 <VL53L0X_WrByte>
+ 80062c4:	fa4f f888 	sxtb.w	r8, r8
+ 80062c8:	ea48 0800 	orr.w	r8, r8, r0
+ 80062cc:	4620      	mov	r0, r4
+ 80062ce:	f001 f953 	bl	8007578 <VL53L0X_PollingDelay>
+ 80062d2:	fa4f f888 	sxtb.w	r8, r8
+ 80062d6:	ea48 0800 	orr.w	r8, r8, r0
+ 80062da:	2201      	movs	r2, #1
+ 80062dc:	2180      	movs	r1, #128	; 0x80
+ 80062de:	4620      	mov	r0, r4
+ 80062e0:	f001 f8b6 	bl	8007450 <VL53L0X_WrByte>
+ 80062e4:	fa4f f888 	sxtb.w	r8, r8
+ 80062e8:	ea48 0500 	orr.w	r5, r8, r0
+ 80062ec:	f017 0b01 	ands.w	fp, r7, #1
+ 80062f0:	b26d      	sxtb	r5, r5
+ 80062f2:	f000 821e 	beq.w	8006732 <VL53L0X_get_info_from_device+0x50e>
+ 80062f6:	07f2      	lsls	r2, r6, #31
+ 80062f8:	f100 821e 	bmi.w	8006738 <VL53L0X_get_info_from_device+0x514>
+ 80062fc:	226b      	movs	r2, #107	; 0x6b
+ 80062fe:	2194      	movs	r1, #148	; 0x94
+ 8006300:	4620      	mov	r0, r4
+ 8006302:	f001 f8a5 	bl	8007450 <VL53L0X_WrByte>
+ 8006306:	4680      	mov	r8, r0
+ 8006308:	4620      	mov	r0, r4
+ 800630a:	f7ff ff68 	bl	80061de <VL53L0X_device_read_strobe>
+ 800630e:	aa06      	add	r2, sp, #24
+ 8006310:	ea48 0800 	orr.w	r8, r8, r0
+ 8006314:	2190      	movs	r1, #144	; 0x90
+ 8006316:	4620      	mov	r0, r4
+ 8006318:	f001 f908 	bl	800752c <VL53L0X_RdDWord>
+ 800631c:	ea45 0508 	orr.w	r5, r5, r8
+ 8006320:	9b06      	ldr	r3, [sp, #24]
+ 8006322:	b26d      	sxtb	r5, r5
+ 8006324:	2224      	movs	r2, #36	; 0x24
+ 8006326:	2194      	movs	r1, #148	; 0x94
+ 8006328:	4305      	orrs	r5, r0
+ 800632a:	4620      	mov	r0, r4
+ 800632c:	f3c3 2a06 	ubfx	sl, r3, #8, #7
+ 8006330:	f3c3 39c0 	ubfx	r9, r3, #15, #1
+ 8006334:	f001 f88c 	bl	8007450 <VL53L0X_WrByte>
+ 8006338:	b26d      	sxtb	r5, r5
+ 800633a:	4305      	orrs	r5, r0
+ 800633c:	4620      	mov	r0, r4
+ 800633e:	f7ff ff4e 	bl	80061de <VL53L0X_device_read_strobe>
+ 8006342:	b26d      	sxtb	r5, r5
+ 8006344:	4305      	orrs	r5, r0
+ 8006346:	aa06      	add	r2, sp, #24
+ 8006348:	2190      	movs	r1, #144	; 0x90
+ 800634a:	4620      	mov	r0, r4
+ 800634c:	f001 f8ee 	bl	800752c <VL53L0X_RdDWord>
+ 8006350:	9b06      	ldr	r3, [sp, #24]
+ 8006352:	b26d      	sxtb	r5, r5
+ 8006354:	ba1b      	rev	r3, r3
+ 8006356:	2225      	movs	r2, #37	; 0x25
+ 8006358:	2194      	movs	r1, #148	; 0x94
+ 800635a:	4305      	orrs	r5, r0
+ 800635c:	4620      	mov	r0, r4
+ 800635e:	9309      	str	r3, [sp, #36]	; 0x24
+ 8006360:	f001 f876 	bl	8007450 <VL53L0X_WrByte>
+ 8006364:	b26d      	sxtb	r5, r5
+ 8006366:	4305      	orrs	r5, r0
+ 8006368:	4620      	mov	r0, r4
+ 800636a:	f7ff ff38 	bl	80061de <VL53L0X_device_read_strobe>
+ 800636e:	b26d      	sxtb	r5, r5
+ 8006370:	4305      	orrs	r5, r0
+ 8006372:	aa06      	add	r2, sp, #24
+ 8006374:	2190      	movs	r1, #144	; 0x90
+ 8006376:	4620      	mov	r0, r4
+ 8006378:	f001 f8d8 	bl	800752c <VL53L0X_RdDWord>
+ 800637c:	9b06      	ldr	r3, [sp, #24]
+ 800637e:	b26d      	sxtb	r5, r5
+ 8006380:	0e1a      	lsrs	r2, r3, #24
+ 8006382:	4305      	orrs	r5, r0
+ 8006384:	0c1b      	lsrs	r3, r3, #16
+ 8006386:	b26d      	sxtb	r5, r5
+ 8006388:	f88d 2028 	strb.w	r2, [sp, #40]	; 0x28
+ 800638c:	f88d 3029 	strb.w	r3, [sp, #41]	; 0x29
+ 8006390:	f017 0302 	ands.w	r3, r7, #2
+ 8006394:	9302      	str	r3, [sp, #8]
+ 8006396:	f000 80db 	beq.w	8006550 <VL53L0X_get_info_from_device+0x32c>
+ 800639a:	f016 0802 	ands.w	r8, r6, #2
+ 800639e:	f040 80d7 	bne.w	8006550 <VL53L0X_get_info_from_device+0x32c>
+ 80063a2:	2202      	movs	r2, #2
+ 80063a4:	2194      	movs	r1, #148	; 0x94
+ 80063a6:	4620      	mov	r0, r4
+ 80063a8:	f001 f852 	bl	8007450 <VL53L0X_WrByte>
+ 80063ac:	9001      	str	r0, [sp, #4]
+ 80063ae:	4620      	mov	r0, r4
+ 80063b0:	f7ff ff15 	bl	80061de <VL53L0X_device_read_strobe>
+ 80063b4:	9b01      	ldr	r3, [sp, #4]
+ 80063b6:	f10d 0216 	add.w	r2, sp, #22
+ 80063ba:	4303      	orrs	r3, r0
+ 80063bc:	2190      	movs	r1, #144	; 0x90
+ 80063be:	4620      	mov	r0, r4
+ 80063c0:	431d      	orrs	r5, r3
+ 80063c2:	f001 f867 	bl	8007494 <VL53L0X_RdByte>
+ 80063c6:	b26d      	sxtb	r5, r5
+ 80063c8:	227b      	movs	r2, #123	; 0x7b
+ 80063ca:	2194      	movs	r1, #148	; 0x94
+ 80063cc:	4305      	orrs	r5, r0
+ 80063ce:	4620      	mov	r0, r4
+ 80063d0:	f001 f83e 	bl	8007450 <VL53L0X_WrByte>
+ 80063d4:	b26d      	sxtb	r5, r5
+ 80063d6:	4305      	orrs	r5, r0
+ 80063d8:	4620      	mov	r0, r4
+ 80063da:	f7ff ff00 	bl	80061de <VL53L0X_device_read_strobe>
+ 80063de:	b26d      	sxtb	r5, r5
+ 80063e0:	4305      	orrs	r5, r0
+ 80063e2:	f10d 0217 	add.w	r2, sp, #23
+ 80063e6:	2190      	movs	r1, #144	; 0x90
+ 80063e8:	4620      	mov	r0, r4
+ 80063ea:	f001 f853 	bl	8007494 <VL53L0X_RdByte>
+ 80063ee:	b26d      	sxtb	r5, r5
+ 80063f0:	2277      	movs	r2, #119	; 0x77
+ 80063f2:	2194      	movs	r1, #148	; 0x94
+ 80063f4:	4305      	orrs	r5, r0
+ 80063f6:	4620      	mov	r0, r4
+ 80063f8:	f001 f82a 	bl	8007450 <VL53L0X_WrByte>
+ 80063fc:	b26d      	sxtb	r5, r5
+ 80063fe:	4305      	orrs	r5, r0
+ 8006400:	4620      	mov	r0, r4
+ 8006402:	f7ff feec 	bl	80061de <VL53L0X_device_read_strobe>
+ 8006406:	b26d      	sxtb	r5, r5
+ 8006408:	4305      	orrs	r5, r0
+ 800640a:	aa06      	add	r2, sp, #24
+ 800640c:	2190      	movs	r1, #144	; 0x90
+ 800640e:	4620      	mov	r0, r4
+ 8006410:	f001 f88c 	bl	800752c <VL53L0X_RdDWord>
+ 8006414:	9b06      	ldr	r3, [sp, #24]
+ 8006416:	0e5a      	lsrs	r2, r3, #25
+ 8006418:	f88d 202c 	strb.w	r2, [sp, #44]	; 0x2c
+ 800641c:	f3c3 4286 	ubfx	r2, r3, #18, #7
+ 8006420:	f88d 202d 	strb.w	r2, [sp, #45]	; 0x2d
+ 8006424:	f3c3 22c6 	ubfx	r2, r3, #11, #7
+ 8006428:	f88d 202e 	strb.w	r2, [sp, #46]	; 0x2e
+ 800642c:	b26d      	sxtb	r5, r5
+ 800642e:	f3c3 1206 	ubfx	r2, r3, #4, #7
+ 8006432:	00db      	lsls	r3, r3, #3
+ 8006434:	f003 0378 	and.w	r3, r3, #120	; 0x78
+ 8006438:	2194      	movs	r1, #148	; 0x94
+ 800643a:	4305      	orrs	r5, r0
+ 800643c:	f88d 202f 	strb.w	r2, [sp, #47]	; 0x2f
+ 8006440:	4620      	mov	r0, r4
+ 8006442:	2278      	movs	r2, #120	; 0x78
+ 8006444:	f88d 3015 	strb.w	r3, [sp, #21]
+ 8006448:	f001 f802 	bl	8007450 <VL53L0X_WrByte>
+ 800644c:	b26d      	sxtb	r5, r5
+ 800644e:	4305      	orrs	r5, r0
+ 8006450:	4620      	mov	r0, r4
+ 8006452:	f7ff fec4 	bl	80061de <VL53L0X_device_read_strobe>
+ 8006456:	b26d      	sxtb	r5, r5
+ 8006458:	4305      	orrs	r5, r0
+ 800645a:	aa06      	add	r2, sp, #24
+ 800645c:	2190      	movs	r1, #144	; 0x90
+ 800645e:	4620      	mov	r0, r4
+ 8006460:	f001 f864 	bl	800752c <VL53L0X_RdDWord>
+ 8006464:	9b06      	ldr	r3, [sp, #24]
+ 8006466:	f89d 2015 	ldrb.w	r2, [sp, #21]
+ 800646a:	eb02 7253 	add.w	r2, r2, r3, lsr #29
+ 800646e:	f88d 2030 	strb.w	r2, [sp, #48]	; 0x30
+ 8006472:	f3c3 5286 	ubfx	r2, r3, #22, #7
+ 8006476:	f88d 2031 	strb.w	r2, [sp, #49]	; 0x31
+ 800647a:	f3c3 32c6 	ubfx	r2, r3, #15, #7
+ 800647e:	f88d 2032 	strb.w	r2, [sp, #50]	; 0x32
+ 8006482:	f3c3 2206 	ubfx	r2, r3, #8, #7
+ 8006486:	f88d 2033 	strb.w	r2, [sp, #51]	; 0x33
+ 800648a:	b26d      	sxtb	r5, r5
+ 800648c:	f3c3 0246 	ubfx	r2, r3, #1, #7
+ 8006490:	019b      	lsls	r3, r3, #6
+ 8006492:	f003 0340 	and.w	r3, r3, #64	; 0x40
+ 8006496:	2194      	movs	r1, #148	; 0x94
+ 8006498:	4305      	orrs	r5, r0
+ 800649a:	f88d 2034 	strb.w	r2, [sp, #52]	; 0x34
+ 800649e:	4620      	mov	r0, r4
+ 80064a0:	2279      	movs	r2, #121	; 0x79
+ 80064a2:	f88d 3015 	strb.w	r3, [sp, #21]
+ 80064a6:	f000 ffd3 	bl	8007450 <VL53L0X_WrByte>
+ 80064aa:	b26d      	sxtb	r5, r5
+ 80064ac:	4305      	orrs	r5, r0
+ 80064ae:	4620      	mov	r0, r4
+ 80064b0:	f7ff fe95 	bl	80061de <VL53L0X_device_read_strobe>
+ 80064b4:	b26d      	sxtb	r5, r5
+ 80064b6:	4305      	orrs	r5, r0
+ 80064b8:	aa06      	add	r2, sp, #24
+ 80064ba:	2190      	movs	r1, #144	; 0x90
+ 80064bc:	4620      	mov	r0, r4
+ 80064be:	f001 f835 	bl	800752c <VL53L0X_RdDWord>
+ 80064c2:	9b06      	ldr	r3, [sp, #24]
+ 80064c4:	f89d 2015 	ldrb.w	r2, [sp, #21]
+ 80064c8:	eb02 6293 	add.w	r2, r2, r3, lsr #26
+ 80064cc:	f88d 2035 	strb.w	r2, [sp, #53]	; 0x35
+ 80064d0:	f3c3 42c6 	ubfx	r2, r3, #19, #7
+ 80064d4:	f88d 2036 	strb.w	r2, [sp, #54]	; 0x36
+ 80064d8:	f3c3 3206 	ubfx	r2, r3, #12, #7
+ 80064dc:	f88d 2037 	strb.w	r2, [sp, #55]	; 0x37
+ 80064e0:	b26d      	sxtb	r5, r5
+ 80064e2:	f3c3 1246 	ubfx	r2, r3, #5, #7
+ 80064e6:	009b      	lsls	r3, r3, #2
+ 80064e8:	f003 037c 	and.w	r3, r3, #124	; 0x7c
+ 80064ec:	2194      	movs	r1, #148	; 0x94
+ 80064ee:	4305      	orrs	r5, r0
+ 80064f0:	f88d 2038 	strb.w	r2, [sp, #56]	; 0x38
+ 80064f4:	4620      	mov	r0, r4
+ 80064f6:	227a      	movs	r2, #122	; 0x7a
+ 80064f8:	f88d 3015 	strb.w	r3, [sp, #21]
+ 80064fc:	f000 ffa8 	bl	8007450 <VL53L0X_WrByte>
+ 8006500:	b26d      	sxtb	r5, r5
+ 8006502:	4305      	orrs	r5, r0
+ 8006504:	4620      	mov	r0, r4
+ 8006506:	f7ff fe6a 	bl	80061de <VL53L0X_device_read_strobe>
+ 800650a:	b26d      	sxtb	r5, r5
+ 800650c:	4305      	orrs	r5, r0
+ 800650e:	aa06      	add	r2, sp, #24
+ 8006510:	2190      	movs	r1, #144	; 0x90
+ 8006512:	4620      	mov	r0, r4
+ 8006514:	f001 f80a 	bl	800752c <VL53L0X_RdDWord>
+ 8006518:	9b06      	ldr	r3, [sp, #24]
+ 800651a:	f89d 2015 	ldrb.w	r2, [sp, #21]
+ 800651e:	f88d 803e 	strb.w	r8, [sp, #62]	; 0x3e
+ 8006522:	eb02 7293 	add.w	r2, r2, r3, lsr #30
+ 8006526:	f88d 2039 	strb.w	r2, [sp, #57]	; 0x39
+ 800652a:	f3c3 52c6 	ubfx	r2, r3, #23, #7
+ 800652e:	b26d      	sxtb	r5, r5
+ 8006530:	f88d 203a 	strb.w	r2, [sp, #58]	; 0x3a
+ 8006534:	f3c3 4206 	ubfx	r2, r3, #16, #7
+ 8006538:	4305      	orrs	r5, r0
+ 800653a:	f88d 203b 	strb.w	r2, [sp, #59]	; 0x3b
+ 800653e:	f3c3 2246 	ubfx	r2, r3, #9, #7
+ 8006542:	f3c3 0386 	ubfx	r3, r3, #2, #7
+ 8006546:	b26d      	sxtb	r5, r5
+ 8006548:	f88d 203c 	strb.w	r2, [sp, #60]	; 0x3c
+ 800654c:	f88d 303d 	strb.w	r3, [sp, #61]	; 0x3d
+ 8006550:	f017 0304 	ands.w	r3, r7, #4
+ 8006554:	9301      	str	r3, [sp, #4]
+ 8006556:	f000 80f1 	beq.w	800673c <VL53L0X_get_info_from_device+0x518>
+ 800655a:	0773      	lsls	r3, r6, #29
+ 800655c:	f100 80ee 	bmi.w	800673c <VL53L0X_get_info_from_device+0x518>
+ 8006560:	227b      	movs	r2, #123	; 0x7b
+ 8006562:	2194      	movs	r1, #148	; 0x94
+ 8006564:	4620      	mov	r0, r4
+ 8006566:	f000 ff73 	bl	8007450 <VL53L0X_WrByte>
+ 800656a:	4680      	mov	r8, r0
+ 800656c:	4620      	mov	r0, r4
+ 800656e:	f7ff fe36 	bl	80061de <VL53L0X_device_read_strobe>
+ 8006572:	aa07      	add	r2, sp, #28
+ 8006574:	ea48 0800 	orr.w	r8, r8, r0
+ 8006578:	2190      	movs	r1, #144	; 0x90
+ 800657a:	4620      	mov	r0, r4
+ 800657c:	f000 ffd6 	bl	800752c <VL53L0X_RdDWord>
+ 8006580:	ea45 0808 	orr.w	r8, r5, r8
+ 8006584:	fa4f f888 	sxtb.w	r8, r8
+ 8006588:	ea48 0500 	orr.w	r5, r8, r0
+ 800658c:	227c      	movs	r2, #124	; 0x7c
+ 800658e:	2194      	movs	r1, #148	; 0x94
+ 8006590:	4620      	mov	r0, r4
+ 8006592:	f000 ff5d 	bl	8007450 <VL53L0X_WrByte>
+ 8006596:	b26d      	sxtb	r5, r5
+ 8006598:	4305      	orrs	r5, r0
+ 800659a:	4620      	mov	r0, r4
+ 800659c:	f7ff fe1f 	bl	80061de <VL53L0X_device_read_strobe>
+ 80065a0:	b26d      	sxtb	r5, r5
+ 80065a2:	4305      	orrs	r5, r0
+ 80065a4:	aa08      	add	r2, sp, #32
+ 80065a6:	2190      	movs	r1, #144	; 0x90
+ 80065a8:	4620      	mov	r0, r4
+ 80065aa:	f000 ffbf 	bl	800752c <VL53L0X_RdDWord>
+ 80065ae:	b26d      	sxtb	r5, r5
+ 80065b0:	2273      	movs	r2, #115	; 0x73
+ 80065b2:	2194      	movs	r1, #148	; 0x94
+ 80065b4:	4305      	orrs	r5, r0
+ 80065b6:	4620      	mov	r0, r4
+ 80065b8:	f000 ff4a 	bl	8007450 <VL53L0X_WrByte>
+ 80065bc:	b26d      	sxtb	r5, r5
+ 80065be:	4305      	orrs	r5, r0
+ 80065c0:	4620      	mov	r0, r4
+ 80065c2:	f7ff fe0c 	bl	80061de <VL53L0X_device_read_strobe>
+ 80065c6:	b26d      	sxtb	r5, r5
+ 80065c8:	4305      	orrs	r5, r0
+ 80065ca:	aa06      	add	r2, sp, #24
+ 80065cc:	2190      	movs	r1, #144	; 0x90
+ 80065ce:	4620      	mov	r0, r4
+ 80065d0:	f000 ffac 	bl	800752c <VL53L0X_RdDWord>
+ 80065d4:	9b06      	ldr	r3, [sp, #24]
+ 80065d6:	b26d      	sxtb	r5, r5
+ 80065d8:	021b      	lsls	r3, r3, #8
+ 80065da:	2274      	movs	r2, #116	; 0x74
+ 80065dc:	2194      	movs	r1, #148	; 0x94
+ 80065de:	4305      	orrs	r5, r0
+ 80065e0:	4620      	mov	r0, r4
+ 80065e2:	fa1f f883 	uxth.w	r8, r3
+ 80065e6:	f000 ff33 	bl	8007450 <VL53L0X_WrByte>
+ 80065ea:	b26d      	sxtb	r5, r5
+ 80065ec:	4305      	orrs	r5, r0
+ 80065ee:	4620      	mov	r0, r4
+ 80065f0:	f7ff fdf5 	bl	80061de <VL53L0X_device_read_strobe>
+ 80065f4:	b26d      	sxtb	r5, r5
+ 80065f6:	4305      	orrs	r5, r0
+ 80065f8:	aa06      	add	r2, sp, #24
+ 80065fa:	2190      	movs	r1, #144	; 0x90
+ 80065fc:	4620      	mov	r0, r4
+ 80065fe:	f000 ff95 	bl	800752c <VL53L0X_RdDWord>
+ 8006602:	b26d      	sxtb	r5, r5
+ 8006604:	f89d 301b 	ldrb.w	r3, [sp, #27]
+ 8006608:	2275      	movs	r2, #117	; 0x75
+ 800660a:	2194      	movs	r1, #148	; 0x94
+ 800660c:	4305      	orrs	r5, r0
+ 800660e:	4620      	mov	r0, r4
+ 8006610:	ea43 0808 	orr.w	r8, r3, r8
+ 8006614:	f000 ff1c 	bl	8007450 <VL53L0X_WrByte>
+ 8006618:	b26d      	sxtb	r5, r5
+ 800661a:	4305      	orrs	r5, r0
+ 800661c:	4620      	mov	r0, r4
+ 800661e:	f7ff fdde 	bl	80061de <VL53L0X_device_read_strobe>
+ 8006622:	b26d      	sxtb	r5, r5
+ 8006624:	4305      	orrs	r5, r0
+ 8006626:	aa06      	add	r2, sp, #24
+ 8006628:	2190      	movs	r1, #144	; 0x90
+ 800662a:	4620      	mov	r0, r4
+ 800662c:	f000 ff7e 	bl	800752c <VL53L0X_RdDWord>
+ 8006630:	9b06      	ldr	r3, [sp, #24]
+ 8006632:	b26d      	sxtb	r5, r5
+ 8006634:	021b      	lsls	r3, r3, #8
+ 8006636:	b29b      	uxth	r3, r3
+ 8006638:	2276      	movs	r2, #118	; 0x76
+ 800663a:	2194      	movs	r1, #148	; 0x94
+ 800663c:	4305      	orrs	r5, r0
+ 800663e:	4620      	mov	r0, r4
+ 8006640:	9303      	str	r3, [sp, #12]
+ 8006642:	f000 ff05 	bl	8007450 <VL53L0X_WrByte>
+ 8006646:	b26d      	sxtb	r5, r5
+ 8006648:	4305      	orrs	r5, r0
+ 800664a:	4620      	mov	r0, r4
+ 800664c:	f7ff fdc7 	bl	80061de <VL53L0X_device_read_strobe>
+ 8006650:	b26d      	sxtb	r5, r5
+ 8006652:	4305      	orrs	r5, r0
+ 8006654:	aa06      	add	r2, sp, #24
+ 8006656:	2190      	movs	r1, #144	; 0x90
+ 8006658:	4620      	mov	r0, r4
+ 800665a:	f000 ff67 	bl	800752c <VL53L0X_RdDWord>
+ 800665e:	b26d      	sxtb	r5, r5
+ 8006660:	f89d 201b 	ldrb.w	r2, [sp, #27]
+ 8006664:	9b03      	ldr	r3, [sp, #12]
+ 8006666:	4305      	orrs	r5, r0
+ 8006668:	b26d      	sxtb	r5, r5
+ 800666a:	4313      	orrs	r3, r2
+ 800666c:	2200      	movs	r2, #0
+ 800666e:	2181      	movs	r1, #129	; 0x81
+ 8006670:	4620      	mov	r0, r4
+ 8006672:	9303      	str	r3, [sp, #12]
+ 8006674:	f000 feec 	bl	8007450 <VL53L0X_WrByte>
+ 8006678:	2206      	movs	r2, #6
+ 800667a:	4305      	orrs	r5, r0
+ 800667c:	21ff      	movs	r1, #255	; 0xff
+ 800667e:	4620      	mov	r0, r4
+ 8006680:	f000 fee6 	bl	8007450 <VL53L0X_WrByte>
+ 8006684:	b26d      	sxtb	r5, r5
+ 8006686:	4305      	orrs	r5, r0
+ 8006688:	f10d 0215 	add.w	r2, sp, #21
+ 800668c:	2183      	movs	r1, #131	; 0x83
+ 800668e:	4620      	mov	r0, r4
+ 8006690:	f000 ff00 	bl	8007494 <VL53L0X_RdByte>
+ 8006694:	f89d 2015 	ldrb.w	r2, [sp, #21]
+ 8006698:	b26d      	sxtb	r5, r5
+ 800669a:	4305      	orrs	r5, r0
+ 800669c:	f002 02fb 	and.w	r2, r2, #251	; 0xfb
+ 80066a0:	2183      	movs	r1, #131	; 0x83
+ 80066a2:	4620      	mov	r0, r4
+ 80066a4:	f000 fed4 	bl	8007450 <VL53L0X_WrByte>
+ 80066a8:	b26d      	sxtb	r5, r5
+ 80066aa:	4305      	orrs	r5, r0
+ 80066ac:	2201      	movs	r2, #1
+ 80066ae:	21ff      	movs	r1, #255	; 0xff
+ 80066b0:	4620      	mov	r0, r4
+ 80066b2:	f000 fecd 	bl	8007450 <VL53L0X_WrByte>
+ 80066b6:	b26d      	sxtb	r5, r5
+ 80066b8:	4305      	orrs	r5, r0
+ 80066ba:	2201      	movs	r2, #1
+ 80066bc:	2100      	movs	r1, #0
+ 80066be:	4620      	mov	r0, r4
+ 80066c0:	f000 fec6 	bl	8007450 <VL53L0X_WrByte>
+ 80066c4:	b26d      	sxtb	r5, r5
+ 80066c6:	4305      	orrs	r5, r0
+ 80066c8:	2200      	movs	r2, #0
+ 80066ca:	21ff      	movs	r1, #255	; 0xff
+ 80066cc:	4620      	mov	r0, r4
+ 80066ce:	f000 febf 	bl	8007450 <VL53L0X_WrByte>
+ 80066d2:	b26d      	sxtb	r5, r5
+ 80066d4:	4305      	orrs	r5, r0
+ 80066d6:	2200      	movs	r2, #0
+ 80066d8:	2180      	movs	r1, #128	; 0x80
+ 80066da:	4620      	mov	r0, r4
+ 80066dc:	f000 feb8 	bl	8007450 <VL53L0X_WrByte>
+ 80066e0:	b26d      	sxtb	r5, r5
+ 80066e2:	4305      	orrs	r5, r0
+ 80066e4:	b26d      	sxtb	r5, r5
+ 80066e6:	9b03      	ldr	r3, [sp, #12]
+ 80066e8:	b9fd      	cbnz	r5, 800672a <VL53L0X_get_info_from_device+0x506>
+ 80066ea:	f1bb 0f00 	cmp.w	fp, #0
+ 80066ee:	d129      	bne.n	8006744 <VL53L0X_get_info_from_device+0x520>
+ 80066f0:	9a02      	ldr	r2, [sp, #8]
+ 80066f2:	bbaa      	cbnz	r2, 8006760 <VL53L0X_get_info_from_device+0x53c>
+ 80066f4:	9a01      	ldr	r2, [sp, #4]
+ 80066f6:	b1aa      	cbz	r2, 8006724 <VL53L0X_get_info_from_device+0x500>
+ 80066f8:	0772      	lsls	r2, r6, #29
+ 80066fa:	d413      	bmi.n	8006724 <VL53L0X_get_info_from_device+0x500>
+ 80066fc:	9a07      	ldr	r2, [sp, #28]
+ 80066fe:	f8c4 2118 	str.w	r2, [r4, #280]	; 0x118
+ 8006702:	9a08      	ldr	r2, [sp, #32]
+ 8006704:	f8c4 211c 	str.w	r2, [r4, #284]	; 0x11c
+ 8006708:	ea4f 2248 	mov.w	r2, r8, lsl #9
+ 800670c:	f8c4 2120 	str.w	r2, [r4, #288]	; 0x120
+ 8006710:	b13b      	cbz	r3, 8006722 <VL53L0X_get_info_from_device+0x4fe>
+ 8006712:	f5a3 53c8 	sub.w	r3, r3, #6400	; 0x1900
+ 8006716:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
+ 800671a:	4353      	muls	r3, r2
+ 800671c:	091b      	lsrs	r3, r3, #4
+ 800671e:	425b      	negs	r3, r3
+ 8006720:	b21b      	sxth	r3, r3
+ 8006722:	60e3      	str	r3, [r4, #12]
+ 8006724:	433e      	orrs	r6, r7
+ 8006726:	f884 60f0 	strb.w	r6, [r4, #240]	; 0xf0
+ 800672a:	4628      	mov	r0, r5
+ 800672c:	b011      	add	sp, #68	; 0x44
+ 800672e:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 8006732:	46d9      	mov	r9, fp
+ 8006734:	46da      	mov	sl, fp
+ 8006736:	e62b      	b.n	8006390 <VL53L0X_get_info_from_device+0x16c>
+ 8006738:	46ca      	mov	sl, r9
+ 800673a:	e629      	b.n	8006390 <VL53L0X_get_info_from_device+0x16c>
+ 800673c:	f04f 0800 	mov.w	r8, #0
+ 8006740:	4643      	mov	r3, r8
+ 8006742:	e793      	b.n	800666c <VL53L0X_get_info_from_device+0x448>
+ 8006744:	07f0      	lsls	r0, r6, #31
+ 8006746:	d4d3      	bmi.n	80066f0 <VL53L0X_get_info_from_device+0x4cc>
+ 8006748:	9809      	ldr	r0, [sp, #36]	; 0x24
+ 800674a:	f8bd 2028 	ldrh.w	r2, [sp, #40]	; 0x28
+ 800674e:	f884 a113 	strb.w	sl, [r4, #275]	; 0x113
+ 8006752:	f884 9114 	strb.w	r9, [r4, #276]	; 0x114
+ 8006756:	f8c4 012a 	str.w	r0, [r4, #298]	; 0x12a
+ 800675a:	f8a4 212e 	strh.w	r2, [r4, #302]	; 0x12e
+ 800675e:	e7c7      	b.n	80066f0 <VL53L0X_get_info_from_device+0x4cc>
+ 8006760:	07b1      	lsls	r1, r6, #30
+ 8006762:	d4c7      	bmi.n	80066f4 <VL53L0X_get_info_from_device+0x4d0>
+ 8006764:	f89d 2016 	ldrb.w	r2, [sp, #22]
+ 8006768:	f884 20f1 	strb.w	r2, [r4, #241]	; 0xf1
+ 800676c:	f89d 2017 	ldrb.w	r2, [sp, #23]
+ 8006770:	f884 20f2 	strb.w	r2, [r4, #242]	; 0xf2
+ 8006774:	a90b      	add	r1, sp, #44	; 0x2c
+ 8006776:	f104 00f3 	add.w	r0, r4, #243	; 0xf3
+ 800677a:	9302      	str	r3, [sp, #8]
+ 800677c:	f00d fe68 	bl	8014450 <strcpy>
+ 8006780:	9b02      	ldr	r3, [sp, #8]
+ 8006782:	e7b7      	b.n	80066f4 <VL53L0X_get_info_from_device+0x4d0>
+ 8006784:	464d      	mov	r5, r9
+ 8006786:	e7d0      	b.n	800672a <VL53L0X_get_info_from_device+0x506>
+
+08006788 <VL53L0X_encode_timeout>:
+ 8006788:	b150      	cbz	r0, 80067a0 <VL53L0X_encode_timeout+0x18>
+ 800678a:	3801      	subs	r0, #1
+ 800678c:	2300      	movs	r3, #0
+ 800678e:	f030 01ff 	bics.w	r1, r0, #255	; 0xff
+ 8006792:	b29a      	uxth	r2, r3
+ 8006794:	f103 0301 	add.w	r3, r3, #1
+ 8006798:	d103      	bne.n	80067a2 <VL53L0X_encode_timeout+0x1a>
+ 800679a:	eb00 2002 	add.w	r0, r0, r2, lsl #8
+ 800679e:	b280      	uxth	r0, r0
+ 80067a0:	4770      	bx	lr
+ 80067a2:	0840      	lsrs	r0, r0, #1
+ 80067a4:	e7f3      	b.n	800678e <VL53L0X_encode_timeout+0x6>
+
+080067a6 <VL53L0X_decode_timeout>:
+ 80067a6:	b2c3      	uxtb	r3, r0
+ 80067a8:	0a00      	lsrs	r0, r0, #8
+ 80067aa:	fa03 f000 	lsl.w	r0, r3, r0
+ 80067ae:	3001      	adds	r0, #1
+ 80067b0:	4770      	bx	lr
+	...
+
+080067b4 <VL53L0X_calc_timeout_mclks>:
+ 80067b4:	4b08      	ldr	r3, [pc, #32]	; (80067d8 <VL53L0X_calc_timeout_mclks+0x24>)
+ 80067b6:	435a      	muls	r2, r3
+ 80067b8:	f44f 737a 	mov.w	r3, #1000	; 0x3e8
+ 80067bc:	f502 72fa 	add.w	r2, r2, #500	; 0x1f4
+ 80067c0:	f44f 60fa 	mov.w	r0, #2000	; 0x7d0
+ 80067c4:	fbb2 f0f0 	udiv	r0, r2, r0
+ 80067c8:	fbb2 f2f3 	udiv	r2, r2, r3
+ 80067cc:	fb03 0001 	mla	r0, r3, r1, r0
+ 80067d0:	fbb0 f0f2 	udiv	r0, r0, r2
+ 80067d4:	4770      	bx	lr
+ 80067d6:	bf00      	nop
+ 80067d8:	003a2f00 	.word	0x003a2f00
+
+080067dc <VL53L0X_calc_timeout_us>:
+ 80067dc:	4b06      	ldr	r3, [pc, #24]	; (80067f8 <VL53L0X_calc_timeout_us+0x1c>)
+ 80067de:	435a      	muls	r2, r3
+ 80067e0:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
+ 80067e4:	f502 72fa 	add.w	r2, r2, #500	; 0x1f4
+ 80067e8:	fbb2 f2f0 	udiv	r2, r2, r0
+ 80067ec:	434a      	muls	r2, r1
+ 80067ee:	f502 72fa 	add.w	r2, r2, #500	; 0x1f4
+ 80067f2:	fbb2 f0f0 	udiv	r0, r2, r0
+ 80067f6:	4770      	bx	lr
+ 80067f8:	003a2f00 	.word	0x003a2f00
+
+080067fc <get_sequence_step_timeout>:
+ 80067fc:	e92d 41ff 	stmdb	sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
+ 8006800:	2902      	cmp	r1, #2
+ 8006802:	f04f 0500 	mov.w	r5, #0
+ 8006806:	4607      	mov	r7, r0
+ 8006808:	4616      	mov	r6, r2
+ 800680a:	f88d 5003 	strb.w	r5, [sp, #3]
+ 800680e:	f8ad 5004 	strh.w	r5, [sp, #4]
+ 8006812:	d81c      	bhi.n	800684e <get_sequence_step_timeout+0x52>
+ 8006814:	f10d 0202 	add.w	r2, sp, #2
+ 8006818:	4629      	mov	r1, r5
+ 800681a:	f7fe fba1 	bl	8004f60 <VL53L0X_GetVcselPulsePeriod>
+ 800681e:	4604      	mov	r4, r0
+ 8006820:	b930      	cbnz	r0, 8006830 <get_sequence_step_timeout+0x34>
+ 8006822:	f10d 0203 	add.w	r2, sp, #3
+ 8006826:	2146      	movs	r1, #70	; 0x46
+ 8006828:	4638      	mov	r0, r7
+ 800682a:	f000 fe33 	bl	8007494 <VL53L0X_RdByte>
+ 800682e:	4604      	mov	r4, r0
+ 8006830:	f89d 0003 	ldrb.w	r0, [sp, #3]
+ 8006834:	f7ff ffb7 	bl	80067a6 <VL53L0X_decode_timeout>
+ 8006838:	b281      	uxth	r1, r0
+ 800683a:	f89d 2002 	ldrb.w	r2, [sp, #2]
+ 800683e:	4638      	mov	r0, r7
+ 8006840:	f7ff ffcc 	bl	80067dc <VL53L0X_calc_timeout_us>
+ 8006844:	6030      	str	r0, [r6, #0]
+ 8006846:	4620      	mov	r0, r4
+ 8006848:	b004      	add	sp, #16
+ 800684a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800684e:	2903      	cmp	r1, #3
+ 8006850:	d118      	bne.n	8006884 <get_sequence_step_timeout+0x88>
+ 8006852:	f10d 0202 	add.w	r2, sp, #2
+ 8006856:	4629      	mov	r1, r5
+ 8006858:	f7fe fb82 	bl	8004f60 <VL53L0X_GetVcselPulsePeriod>
+ 800685c:	4604      	mov	r4, r0
+ 800685e:	2800      	cmp	r0, #0
+ 8006860:	d146      	bne.n	80068f0 <get_sequence_step_timeout+0xf4>
+ 8006862:	4601      	mov	r1, r0
+ 8006864:	f10d 0202 	add.w	r2, sp, #2
+ 8006868:	4638      	mov	r0, r7
+ 800686a:	f7fe fb79 	bl	8004f60 <VL53L0X_GetVcselPulsePeriod>
+ 800686e:	4604      	mov	r4, r0
+ 8006870:	b928      	cbnz	r0, 800687e <get_sequence_step_timeout+0x82>
+ 8006872:	aa01      	add	r2, sp, #4
+ 8006874:	2151      	movs	r1, #81	; 0x51
+ 8006876:	4638      	mov	r0, r7
+ 8006878:	f000 fe38 	bl	80074ec <VL53L0X_RdWord>
+ 800687c:	4604      	mov	r4, r0
+ 800687e:	f8bd 0004 	ldrh.w	r0, [sp, #4]
+ 8006882:	e7d7      	b.n	8006834 <get_sequence_step_timeout+0x38>
+ 8006884:	2904      	cmp	r1, #4
+ 8006886:	d135      	bne.n	80068f4 <get_sequence_step_timeout+0xf8>
+ 8006888:	a902      	add	r1, sp, #8
+ 800688a:	f7fe fbbd 	bl	8005008 <VL53L0X_GetSequenceStepEnables>
+ 800688e:	f89d 300b 	ldrb.w	r3, [sp, #11]
+ 8006892:	b1ab      	cbz	r3, 80068c0 <get_sequence_step_timeout+0xc4>
+ 8006894:	f10d 0202 	add.w	r2, sp, #2
+ 8006898:	4629      	mov	r1, r5
+ 800689a:	4638      	mov	r0, r7
+ 800689c:	f7fe fb60 	bl	8004f60 <VL53L0X_GetVcselPulsePeriod>
+ 80068a0:	4604      	mov	r4, r0
+ 80068a2:	b958      	cbnz	r0, 80068bc <get_sequence_step_timeout+0xc0>
+ 80068a4:	aa01      	add	r2, sp, #4
+ 80068a6:	2151      	movs	r1, #81	; 0x51
+ 80068a8:	4638      	mov	r0, r7
+ 80068aa:	f000 fe1f 	bl	80074ec <VL53L0X_RdWord>
+ 80068ae:	4604      	mov	r4, r0
+ 80068b0:	f8bd 0004 	ldrh.w	r0, [sp, #4]
+ 80068b4:	f7ff ff77 	bl	80067a6 <VL53L0X_decode_timeout>
+ 80068b8:	b285      	uxth	r5, r0
+ 80068ba:	b114      	cbz	r4, 80068c2 <get_sequence_step_timeout+0xc6>
+ 80068bc:	2000      	movs	r0, #0
+ 80068be:	e015      	b.n	80068ec <get_sequence_step_timeout+0xf0>
+ 80068c0:	461d      	mov	r5, r3
+ 80068c2:	f10d 0202 	add.w	r2, sp, #2
+ 80068c6:	2101      	movs	r1, #1
+ 80068c8:	4638      	mov	r0, r7
+ 80068ca:	f7fe fb49 	bl	8004f60 <VL53L0X_GetVcselPulsePeriod>
+ 80068ce:	4604      	mov	r4, r0
+ 80068d0:	2800      	cmp	r0, #0
+ 80068d2:	d1f3      	bne.n	80068bc <get_sequence_step_timeout+0xc0>
+ 80068d4:	f10d 0206 	add.w	r2, sp, #6
+ 80068d8:	2171      	movs	r1, #113	; 0x71
+ 80068da:	4638      	mov	r0, r7
+ 80068dc:	f000 fe06 	bl	80074ec <VL53L0X_RdWord>
+ 80068e0:	4604      	mov	r4, r0
+ 80068e2:	f8bd 0006 	ldrh.w	r0, [sp, #6]
+ 80068e6:	f7ff ff5e 	bl	80067a6 <VL53L0X_decode_timeout>
+ 80068ea:	b280      	uxth	r0, r0
+ 80068ec:	1b40      	subs	r0, r0, r5
+ 80068ee:	e7a3      	b.n	8006838 <get_sequence_step_timeout+0x3c>
+ 80068f0:	4628      	mov	r0, r5
+ 80068f2:	e7a7      	b.n	8006844 <get_sequence_step_timeout+0x48>
+ 80068f4:	4628      	mov	r0, r5
+ 80068f6:	462c      	mov	r4, r5
+ 80068f8:	e7a4      	b.n	8006844 <get_sequence_step_timeout+0x48>
+
+080068fa <set_sequence_step_timeout>:
+ 80068fa:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 80068fc:	2902      	cmp	r1, #2
+ 80068fe:	b085      	sub	sp, #20
+ 8006900:	4605      	mov	r5, r0
+ 8006902:	4616      	mov	r6, r2
+ 8006904:	d81e      	bhi.n	8006944 <set_sequence_step_timeout+0x4a>
+ 8006906:	f10d 0205 	add.w	r2, sp, #5
+ 800690a:	2100      	movs	r1, #0
+ 800690c:	f7fe fb28 	bl	8004f60 <VL53L0X_GetVcselPulsePeriod>
+ 8006910:	4604      	mov	r4, r0
+ 8006912:	b9a0      	cbnz	r0, 800693e <set_sequence_step_timeout+0x44>
+ 8006914:	f89d 2005 	ldrb.w	r2, [sp, #5]
+ 8006918:	4631      	mov	r1, r6
+ 800691a:	4628      	mov	r0, r5
+ 800691c:	f7ff ff4a 	bl	80067b4 <VL53L0X_calc_timeout_mclks>
+ 8006920:	b283      	uxth	r3, r0
+ 8006922:	f5b3 7f80 	cmp.w	r3, #256	; 0x100
+ 8006926:	bf9a      	itte	ls
+ 8006928:	f100 32ff 	addls.w	r2, r0, #4294967295
+ 800692c:	b2d2      	uxtbls	r2, r2
+ 800692e:	22ff      	movhi	r2, #255	; 0xff
+ 8006930:	f8a5 20d8 	strh.w	r2, [r5, #216]	; 0xd8
+ 8006934:	2146      	movs	r1, #70	; 0x46
+ 8006936:	4628      	mov	r0, r5
+ 8006938:	f000 fd8a 	bl	8007450 <VL53L0X_WrByte>
+ 800693c:	4604      	mov	r4, r0
+ 800693e:	4620      	mov	r0, r4
+ 8006940:	b005      	add	sp, #20
+ 8006942:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8006944:	2903      	cmp	r1, #3
+ 8006946:	d11f      	bne.n	8006988 <set_sequence_step_timeout+0x8e>
+ 8006948:	f10d 0205 	add.w	r2, sp, #5
+ 800694c:	2100      	movs	r1, #0
+ 800694e:	f7fe fb07 	bl	8004f60 <VL53L0X_GetVcselPulsePeriod>
+ 8006952:	f89d 2005 	ldrb.w	r2, [sp, #5]
+ 8006956:	4631      	mov	r1, r6
+ 8006958:	4604      	mov	r4, r0
+ 800695a:	4628      	mov	r0, r5
+ 800695c:	f7ff ff2a 	bl	80067b4 <VL53L0X_calc_timeout_mclks>
+ 8006960:	b280      	uxth	r0, r0
+ 8006962:	f7ff ff11 	bl	8006788 <VL53L0X_encode_timeout>
+ 8006966:	4602      	mov	r2, r0
+ 8006968:	f8ad 0006 	strh.w	r0, [sp, #6]
+ 800696c:	f8a5 00d8 	strh.w	r0, [r5, #216]	; 0xd8
+ 8006970:	2c00      	cmp	r4, #0
+ 8006972:	d1e4      	bne.n	800693e <set_sequence_step_timeout+0x44>
+ 8006974:	2151      	movs	r1, #81	; 0x51
+ 8006976:	4628      	mov	r0, r5
+ 8006978:	f000 fd7a 	bl	8007470 <VL53L0X_WrWord>
+ 800697c:	4604      	mov	r4, r0
+ 800697e:	2800      	cmp	r0, #0
+ 8006980:	d1dd      	bne.n	800693e <set_sequence_step_timeout+0x44>
+ 8006982:	f8c5 60e4 	str.w	r6, [r5, #228]	; 0xe4
+ 8006986:	e7da      	b.n	800693e <set_sequence_step_timeout+0x44>
+ 8006988:	2904      	cmp	r1, #4
+ 800698a:	d139      	bne.n	8006a00 <set_sequence_step_timeout+0x106>
+ 800698c:	a902      	add	r1, sp, #8
+ 800698e:	f7fe fb3b 	bl	8005008 <VL53L0X_GetSequenceStepEnables>
+ 8006992:	f89d 700b 	ldrb.w	r7, [sp, #11]
+ 8006996:	b1b7      	cbz	r7, 80069c6 <set_sequence_step_timeout+0xcc>
+ 8006998:	f10d 0205 	add.w	r2, sp, #5
+ 800699c:	2100      	movs	r1, #0
+ 800699e:	4628      	mov	r0, r5
+ 80069a0:	f7fe fade 	bl	8004f60 <VL53L0X_GetVcselPulsePeriod>
+ 80069a4:	4604      	mov	r4, r0
+ 80069a6:	2800      	cmp	r0, #0
+ 80069a8:	d1c9      	bne.n	800693e <set_sequence_step_timeout+0x44>
+ 80069aa:	f10d 0206 	add.w	r2, sp, #6
+ 80069ae:	2151      	movs	r1, #81	; 0x51
+ 80069b0:	4628      	mov	r0, r5
+ 80069b2:	f000 fd9b 	bl	80074ec <VL53L0X_RdWord>
+ 80069b6:	4604      	mov	r4, r0
+ 80069b8:	f8bd 0006 	ldrh.w	r0, [sp, #6]
+ 80069bc:	f7ff fef3 	bl	80067a6 <VL53L0X_decode_timeout>
+ 80069c0:	b287      	uxth	r7, r0
+ 80069c2:	2c00      	cmp	r4, #0
+ 80069c4:	d1bb      	bne.n	800693e <set_sequence_step_timeout+0x44>
+ 80069c6:	f10d 0205 	add.w	r2, sp, #5
+ 80069ca:	2101      	movs	r1, #1
+ 80069cc:	4628      	mov	r0, r5
+ 80069ce:	f7fe fac7 	bl	8004f60 <VL53L0X_GetVcselPulsePeriod>
+ 80069d2:	4604      	mov	r4, r0
+ 80069d4:	2800      	cmp	r0, #0
+ 80069d6:	d1b2      	bne.n	800693e <set_sequence_step_timeout+0x44>
+ 80069d8:	f89d 2005 	ldrb.w	r2, [sp, #5]
+ 80069dc:	4631      	mov	r1, r6
+ 80069de:	4628      	mov	r0, r5
+ 80069e0:	f7ff fee8 	bl	80067b4 <VL53L0X_calc_timeout_mclks>
+ 80069e4:	4438      	add	r0, r7
+ 80069e6:	f7ff fecf 	bl	8006788 <VL53L0X_encode_timeout>
+ 80069ea:	2171      	movs	r1, #113	; 0x71
+ 80069ec:	4602      	mov	r2, r0
+ 80069ee:	4628      	mov	r0, r5
+ 80069f0:	f000 fd3e 	bl	8007470 <VL53L0X_WrWord>
+ 80069f4:	4604      	mov	r4, r0
+ 80069f6:	2800      	cmp	r0, #0
+ 80069f8:	d1a1      	bne.n	800693e <set_sequence_step_timeout+0x44>
+ 80069fa:	f8c5 60dc 	str.w	r6, [r5, #220]	; 0xdc
+ 80069fe:	e79e      	b.n	800693e <set_sequence_step_timeout+0x44>
+ 8006a00:	f06f 0403 	mvn.w	r4, #3
+ 8006a04:	e79b      	b.n	800693e <set_sequence_step_timeout+0x44>
+
+08006a06 <VL53L0X_set_vcsel_pulse_period>:
+ 8006a06:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8006a08:	b085      	sub	sp, #20
+ 8006a0a:	2300      	movs	r3, #0
+ 8006a0c:	f88d 3003 	strb.w	r3, [sp, #3]
+ 8006a10:	07d3      	lsls	r3, r2, #31
+ 8006a12:	4605      	mov	r5, r0
+ 8006a14:	460f      	mov	r7, r1
+ 8006a16:	4616      	mov	r6, r2
+ 8006a18:	d405      	bmi.n	8006a26 <VL53L0X_set_vcsel_pulse_period+0x20>
+ 8006a1a:	b939      	cbnz	r1, 8006a2c <VL53L0X_set_vcsel_pulse_period+0x26>
+ 8006a1c:	f1a2 030c 	sub.w	r3, r2, #12
+ 8006a20:	b2da      	uxtb	r2, r3
+ 8006a22:	2a06      	cmp	r2, #6
+ 8006a24:	d911      	bls.n	8006a4a <VL53L0X_set_vcsel_pulse_period+0x44>
+ 8006a26:	f06f 0003 	mvn.w	r0, #3
+ 8006a2a:	e0e6      	b.n	8006bfa <VL53L0X_set_vcsel_pulse_period+0x1f4>
+ 8006a2c:	2901      	cmp	r1, #1
+ 8006a2e:	d121      	bne.n	8006a74 <VL53L0X_set_vcsel_pulse_period+0x6e>
+ 8006a30:	f1a2 0308 	sub.w	r3, r2, #8
+ 8006a34:	b2da      	uxtb	r2, r3
+ 8006a36:	2a06      	cmp	r2, #6
+ 8006a38:	d8f5      	bhi.n	8006a26 <VL53L0X_set_vcsel_pulse_period+0x20>
+ 8006a3a:	2b06      	cmp	r3, #6
+ 8006a3c:	d81a      	bhi.n	8006a74 <VL53L0X_set_vcsel_pulse_period+0x6e>
+ 8006a3e:	e8df f003 	tbb	[pc, r3]
+ 8006a42:	193b      	.short	0x193b
+ 8006a44:	198a1969 	.word	0x198a1969
+ 8006a48:	9d          	.byte	0x9d
+ 8006a49:	00          	.byte	0x00
+ 8006a4a:	2b06      	cmp	r3, #6
+ 8006a4c:	d812      	bhi.n	8006a74 <VL53L0X_set_vcsel_pulse_period+0x6e>
+ 8006a4e:	e8df f003 	tbb	[pc, r3]
+ 8006a52:	1104      	.short	0x1104
+ 8006a54:	112f112d 	.word	0x112f112d
+ 8006a58:	31          	.byte	0x31
+ 8006a59:	00          	.byte	0x00
+ 8006a5a:	2218      	movs	r2, #24
+ 8006a5c:	2157      	movs	r1, #87	; 0x57
+ 8006a5e:	4628      	mov	r0, r5
+ 8006a60:	f000 fcf6 	bl	8007450 <VL53L0X_WrByte>
+ 8006a64:	2208      	movs	r2, #8
+ 8006a66:	2156      	movs	r1, #86	; 0x56
+ 8006a68:	4628      	mov	r0, r5
+ 8006a6a:	f000 fcf1 	bl	8007450 <VL53L0X_WrByte>
+ 8006a6e:	2800      	cmp	r0, #0
+ 8006a70:	f040 80c3 	bne.w	8006bfa <VL53L0X_set_vcsel_pulse_period+0x1f4>
+ 8006a74:	0874      	lsrs	r4, r6, #1
+ 8006a76:	3c01      	subs	r4, #1
+ 8006a78:	b2e4      	uxtb	r4, r4
+ 8006a7a:	2f00      	cmp	r7, #0
+ 8006a7c:	f000 8091 	beq.w	8006ba2 <VL53L0X_set_vcsel_pulse_period+0x19c>
+ 8006a80:	2f01      	cmp	r7, #1
+ 8006a82:	d1d0      	bne.n	8006a26 <VL53L0X_set_vcsel_pulse_period+0x20>
+ 8006a84:	aa01      	add	r2, sp, #4
+ 8006a86:	2104      	movs	r1, #4
+ 8006a88:	4628      	mov	r0, r5
+ 8006a8a:	f7ff feb7 	bl	80067fc <get_sequence_step_timeout>
+ 8006a8e:	b950      	cbnz	r0, 8006aa6 <VL53L0X_set_vcsel_pulse_period+0xa0>
+ 8006a90:	4622      	mov	r2, r4
+ 8006a92:	2170      	movs	r1, #112	; 0x70
+ 8006a94:	4628      	mov	r0, r5
+ 8006a96:	f000 fcdb 	bl	8007450 <VL53L0X_WrByte>
+ 8006a9a:	b920      	cbnz	r0, 8006aa6 <VL53L0X_set_vcsel_pulse_period+0xa0>
+ 8006a9c:	9a01      	ldr	r2, [sp, #4]
+ 8006a9e:	2104      	movs	r1, #4
+ 8006aa0:	4628      	mov	r0, r5
+ 8006aa2:	f7ff ff2a 	bl	80068fa <set_sequence_step_timeout>
+ 8006aa6:	f885 60e0 	strb.w	r6, [r5, #224]	; 0xe0
+ 8006aaa:	e099      	b.n	8006be0 <VL53L0X_set_vcsel_pulse_period+0x1da>
+ 8006aac:	2230      	movs	r2, #48	; 0x30
+ 8006aae:	e7d5      	b.n	8006a5c <VL53L0X_set_vcsel_pulse_period+0x56>
+ 8006ab0:	2240      	movs	r2, #64	; 0x40
+ 8006ab2:	e7d3      	b.n	8006a5c <VL53L0X_set_vcsel_pulse_period+0x56>
+ 8006ab4:	2250      	movs	r2, #80	; 0x50
+ 8006ab6:	e7d1      	b.n	8006a5c <VL53L0X_set_vcsel_pulse_period+0x56>
+ 8006ab8:	2210      	movs	r2, #16
+ 8006aba:	2148      	movs	r1, #72	; 0x48
+ 8006abc:	f000 fcc8 	bl	8007450 <VL53L0X_WrByte>
+ 8006ac0:	2208      	movs	r2, #8
+ 8006ac2:	2147      	movs	r1, #71	; 0x47
+ 8006ac4:	4628      	mov	r0, r5
+ 8006ac6:	f000 fcc3 	bl	8007450 <VL53L0X_WrByte>
+ 8006aca:	2202      	movs	r2, #2
+ 8006acc:	4604      	mov	r4, r0
+ 8006ace:	2132      	movs	r1, #50	; 0x32
+ 8006ad0:	4628      	mov	r0, r5
+ 8006ad2:	f000 fcbd 	bl	8007450 <VL53L0X_WrByte>
+ 8006ad6:	220c      	movs	r2, #12
+ 8006ad8:	4304      	orrs	r4, r0
+ 8006ada:	2130      	movs	r1, #48	; 0x30
+ 8006adc:	4628      	mov	r0, r5
+ 8006ade:	f000 fcb7 	bl	8007450 <VL53L0X_WrByte>
+ 8006ae2:	b264      	sxtb	r4, r4
+ 8006ae4:	4304      	orrs	r4, r0
+ 8006ae6:	2201      	movs	r2, #1
+ 8006ae8:	21ff      	movs	r1, #255	; 0xff
+ 8006aea:	4628      	mov	r0, r5
+ 8006aec:	f000 fcb0 	bl	8007450 <VL53L0X_WrByte>
+ 8006af0:	b264      	sxtb	r4, r4
+ 8006af2:	4304      	orrs	r4, r0
+ 8006af4:	b264      	sxtb	r4, r4
+ 8006af6:	2230      	movs	r2, #48	; 0x30
+ 8006af8:	2130      	movs	r1, #48	; 0x30
+ 8006afa:	4628      	mov	r0, r5
+ 8006afc:	f000 fca8 	bl	8007450 <VL53L0X_WrByte>
+ 8006b00:	2200      	movs	r2, #0
+ 8006b02:	4304      	orrs	r4, r0
+ 8006b04:	21ff      	movs	r1, #255	; 0xff
+ 8006b06:	4628      	mov	r0, r5
+ 8006b08:	f000 fca2 	bl	8007450 <VL53L0X_WrByte>
+ 8006b0c:	b264      	sxtb	r4, r4
+ 8006b0e:	4320      	orrs	r0, r4
+ 8006b10:	b240      	sxtb	r0, r0
+ 8006b12:	e7ac      	b.n	8006a6e <VL53L0X_set_vcsel_pulse_period+0x68>
+ 8006b14:	2228      	movs	r2, #40	; 0x28
+ 8006b16:	2148      	movs	r1, #72	; 0x48
+ 8006b18:	f000 fc9a 	bl	8007450 <VL53L0X_WrByte>
+ 8006b1c:	2208      	movs	r2, #8
+ 8006b1e:	2147      	movs	r1, #71	; 0x47
+ 8006b20:	4628      	mov	r0, r5
+ 8006b22:	f000 fc95 	bl	8007450 <VL53L0X_WrByte>
+ 8006b26:	2203      	movs	r2, #3
+ 8006b28:	4604      	mov	r4, r0
+ 8006b2a:	2132      	movs	r1, #50	; 0x32
+ 8006b2c:	4628      	mov	r0, r5
+ 8006b2e:	f000 fc8f 	bl	8007450 <VL53L0X_WrByte>
+ 8006b32:	4304      	orrs	r4, r0
+ 8006b34:	b264      	sxtb	r4, r4
+ 8006b36:	2209      	movs	r2, #9
+ 8006b38:	2130      	movs	r1, #48	; 0x30
+ 8006b3a:	4628      	mov	r0, r5
+ 8006b3c:	f000 fc88 	bl	8007450 <VL53L0X_WrByte>
+ 8006b40:	2201      	movs	r2, #1
+ 8006b42:	4304      	orrs	r4, r0
+ 8006b44:	21ff      	movs	r1, #255	; 0xff
+ 8006b46:	4628      	mov	r0, r5
+ 8006b48:	f000 fc82 	bl	8007450 <VL53L0X_WrByte>
+ 8006b4c:	b264      	sxtb	r4, r4
+ 8006b4e:	4304      	orrs	r4, r0
+ 8006b50:	b264      	sxtb	r4, r4
+ 8006b52:	2220      	movs	r2, #32
+ 8006b54:	e7d0      	b.n	8006af8 <VL53L0X_set_vcsel_pulse_period+0xf2>
+ 8006b56:	2238      	movs	r2, #56	; 0x38
+ 8006b58:	2148      	movs	r1, #72	; 0x48
+ 8006b5a:	f000 fc79 	bl	8007450 <VL53L0X_WrByte>
+ 8006b5e:	2208      	movs	r2, #8
+ 8006b60:	2147      	movs	r1, #71	; 0x47
+ 8006b62:	4628      	mov	r0, r5
+ 8006b64:	f000 fc74 	bl	8007450 <VL53L0X_WrByte>
+ 8006b68:	2203      	movs	r2, #3
+ 8006b6a:	4604      	mov	r4, r0
+ 8006b6c:	2132      	movs	r1, #50	; 0x32
+ 8006b6e:	4628      	mov	r0, r5
+ 8006b70:	f000 fc6e 	bl	8007450 <VL53L0X_WrByte>
+ 8006b74:	4304      	orrs	r4, r0
+ 8006b76:	b264      	sxtb	r4, r4
+ 8006b78:	2208      	movs	r2, #8
+ 8006b7a:	e7dd      	b.n	8006b38 <VL53L0X_set_vcsel_pulse_period+0x132>
+ 8006b7c:	2248      	movs	r2, #72	; 0x48
+ 8006b7e:	4611      	mov	r1, r2
+ 8006b80:	f000 fc66 	bl	8007450 <VL53L0X_WrByte>
+ 8006b84:	2208      	movs	r2, #8
+ 8006b86:	2147      	movs	r1, #71	; 0x47
+ 8006b88:	4628      	mov	r0, r5
+ 8006b8a:	f000 fc61 	bl	8007450 <VL53L0X_WrByte>
+ 8006b8e:	2203      	movs	r2, #3
+ 8006b90:	4604      	mov	r4, r0
+ 8006b92:	2132      	movs	r1, #50	; 0x32
+ 8006b94:	4628      	mov	r0, r5
+ 8006b96:	f000 fc5b 	bl	8007450 <VL53L0X_WrByte>
+ 8006b9a:	4304      	orrs	r4, r0
+ 8006b9c:	b264      	sxtb	r4, r4
+ 8006b9e:	2207      	movs	r2, #7
+ 8006ba0:	e7ca      	b.n	8006b38 <VL53L0X_set_vcsel_pulse_period+0x132>
+ 8006ba2:	aa02      	add	r2, sp, #8
+ 8006ba4:	2103      	movs	r1, #3
+ 8006ba6:	4628      	mov	r0, r5
+ 8006ba8:	f7ff fe28 	bl	80067fc <get_sequence_step_timeout>
+ 8006bac:	b9b0      	cbnz	r0, 8006bdc <VL53L0X_set_vcsel_pulse_period+0x1d6>
+ 8006bae:	aa03      	add	r2, sp, #12
+ 8006bb0:	2102      	movs	r1, #2
+ 8006bb2:	4628      	mov	r0, r5
+ 8006bb4:	f7ff fe22 	bl	80067fc <get_sequence_step_timeout>
+ 8006bb8:	b980      	cbnz	r0, 8006bdc <VL53L0X_set_vcsel_pulse_period+0x1d6>
+ 8006bba:	4622      	mov	r2, r4
+ 8006bbc:	2150      	movs	r1, #80	; 0x50
+ 8006bbe:	4628      	mov	r0, r5
+ 8006bc0:	f000 fc46 	bl	8007450 <VL53L0X_WrByte>
+ 8006bc4:	b950      	cbnz	r0, 8006bdc <VL53L0X_set_vcsel_pulse_period+0x1d6>
+ 8006bc6:	9a02      	ldr	r2, [sp, #8]
+ 8006bc8:	2103      	movs	r1, #3
+ 8006bca:	4628      	mov	r0, r5
+ 8006bcc:	f7ff fe95 	bl	80068fa <set_sequence_step_timeout>
+ 8006bd0:	b920      	cbnz	r0, 8006bdc <VL53L0X_set_vcsel_pulse_period+0x1d6>
+ 8006bd2:	9a03      	ldr	r2, [sp, #12]
+ 8006bd4:	2102      	movs	r1, #2
+ 8006bd6:	4628      	mov	r0, r5
+ 8006bd8:	f7ff fe8f 	bl	80068fa <set_sequence_step_timeout>
+ 8006bdc:	f885 60e8 	strb.w	r6, [r5, #232]	; 0xe8
+ 8006be0:	b958      	cbnz	r0, 8006bfa <VL53L0X_set_vcsel_pulse_period+0x1f4>
+ 8006be2:	6969      	ldr	r1, [r5, #20]
+ 8006be4:	4628      	mov	r0, r5
+ 8006be6:	f7fe f9b7 	bl	8004f58 <VL53L0X_SetMeasurementTimingBudgetMicroSeconds>
+ 8006bea:	b930      	cbnz	r0, 8006bfa <VL53L0X_set_vcsel_pulse_period+0x1f4>
+ 8006bec:	4602      	mov	r2, r0
+ 8006bee:	2301      	movs	r3, #1
+ 8006bf0:	f10d 0103 	add.w	r1, sp, #3
+ 8006bf4:	4628      	mov	r0, r5
+ 8006bf6:	f7ff f93c 	bl	8005e72 <VL53L0X_perform_phase_calibration>
+ 8006bfa:	b005      	add	sp, #20
+ 8006bfc:	bdf0      	pop	{r4, r5, r6, r7, pc}
+
+08006bfe <VL53L0X_get_vcsel_pulse_period>:
+ 8006bfe:	b513      	push	{r0, r1, r4, lr}
+ 8006c00:	4614      	mov	r4, r2
+ 8006c02:	b129      	cbz	r1, 8006c10 <VL53L0X_get_vcsel_pulse_period+0x12>
+ 8006c04:	2901      	cmp	r1, #1
+ 8006c06:	d010      	beq.n	8006c2a <VL53L0X_get_vcsel_pulse_period+0x2c>
+ 8006c08:	f06f 0003 	mvn.w	r0, #3
+ 8006c0c:	b002      	add	sp, #8
+ 8006c0e:	bd10      	pop	{r4, pc}
+ 8006c10:	f10d 0207 	add.w	r2, sp, #7
+ 8006c14:	2150      	movs	r1, #80	; 0x50
+ 8006c16:	f000 fc3d 	bl	8007494 <VL53L0X_RdByte>
+ 8006c1a:	2800      	cmp	r0, #0
+ 8006c1c:	d1f6      	bne.n	8006c0c <VL53L0X_get_vcsel_pulse_period+0xe>
+ 8006c1e:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8006c22:	3301      	adds	r3, #1
+ 8006c24:	005b      	lsls	r3, r3, #1
+ 8006c26:	7023      	strb	r3, [r4, #0]
+ 8006c28:	e7f0      	b.n	8006c0c <VL53L0X_get_vcsel_pulse_period+0xe>
+ 8006c2a:	f10d 0207 	add.w	r2, sp, #7
+ 8006c2e:	2170      	movs	r1, #112	; 0x70
+ 8006c30:	e7f1      	b.n	8006c16 <VL53L0X_get_vcsel_pulse_period+0x18>
+
+08006c32 <VL53L0X_set_measurement_timing_budget_micro_seconds>:
+ 8006c32:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8006c34:	2300      	movs	r3, #0
+ 8006c36:	b085      	sub	sp, #20
+ 8006c38:	f44f 62fa 	mov.w	r2, #2000	; 0x7d0
+ 8006c3c:	e9cd 2300 	strd	r2, r3, [sp]
+ 8006c40:	f644 631f 	movw	r3, #19999	; 0x4e1f
+ 8006c44:	4299      	cmp	r1, r3
+ 8006c46:	4606      	mov	r6, r0
+ 8006c48:	460f      	mov	r7, r1
+ 8006c4a:	d804      	bhi.n	8006c56 <VL53L0X_set_measurement_timing_budget_micro_seconds+0x24>
+ 8006c4c:	f06f 0503 	mvn.w	r5, #3
+ 8006c50:	4628      	mov	r0, r5
+ 8006c52:	b005      	add	sp, #20
+ 8006c54:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8006c56:	a902      	add	r1, sp, #8
+ 8006c58:	f7fe f9d6 	bl	8005008 <VL53L0X_GetSequenceStepEnables>
+ 8006c5c:	4605      	mov	r5, r0
+ 8006c5e:	2800      	cmp	r0, #0
+ 8006c60:	d1f6      	bne.n	8006c50 <VL53L0X_set_measurement_timing_budget_micro_seconds+0x1e>
+ 8006c62:	f89d 2009 	ldrb.w	r2, [sp, #9]
+ 8006c66:	f89d 3008 	ldrb.w	r3, [sp, #8]
+ 8006c6a:	4313      	orrs	r3, r2
+ 8006c6c:	f89d 200a 	ldrb.w	r2, [sp, #10]
+ 8006c70:	4313      	orrs	r3, r2
+ 8006c72:	f6a7 3436 	subw	r4, r7, #2870	; 0xb36
+ 8006c76:	d01b      	beq.n	8006cb0 <VL53L0X_set_measurement_timing_budget_micro_seconds+0x7e>
+ 8006c78:	466a      	mov	r2, sp
+ 8006c7a:	2102      	movs	r1, #2
+ 8006c7c:	4630      	mov	r0, r6
+ 8006c7e:	f7ff fdbd 	bl	80067fc <get_sequence_step_timeout>
+ 8006c82:	2800      	cmp	r0, #0
+ 8006c84:	d13b      	bne.n	8006cfe <VL53L0X_set_measurement_timing_budget_micro_seconds+0xcc>
+ 8006c86:	f89d 3008 	ldrb.w	r3, [sp, #8]
+ 8006c8a:	b12b      	cbz	r3, 8006c98 <VL53L0X_set_measurement_timing_budget_micro_seconds+0x66>
+ 8006c8c:	9b00      	ldr	r3, [sp, #0]
+ 8006c8e:	f203 234e 	addw	r3, r3, #590	; 0x24e
+ 8006c92:	429c      	cmp	r4, r3
+ 8006c94:	d9da      	bls.n	8006c4c <VL53L0X_set_measurement_timing_budget_micro_seconds+0x1a>
+ 8006c96:	1ae4      	subs	r4, r4, r3
+ 8006c98:	f89d 300a 	ldrb.w	r3, [sp, #10]
+ 8006c9c:	b323      	cbz	r3, 8006ce8 <VL53L0X_set_measurement_timing_budget_micro_seconds+0xb6>
+ 8006c9e:	9b00      	ldr	r3, [sp, #0]
+ 8006ca0:	f203 23b2 	addw	r3, r3, #690	; 0x2b2
+ 8006ca4:	ebb4 0f43 	cmp.w	r4, r3, lsl #1
+ 8006ca8:	ea4f 0243 	mov.w	r2, r3, lsl #1
+ 8006cac:	d9ce      	bls.n	8006c4c <VL53L0X_set_measurement_timing_budget_micro_seconds+0x1a>
+ 8006cae:	1aa4      	subs	r4, r4, r2
+ 8006cb0:	f89d 300b 	ldrb.w	r3, [sp, #11]
+ 8006cb4:	b15b      	cbz	r3, 8006cce <VL53L0X_set_measurement_timing_budget_micro_seconds+0x9c>
+ 8006cb6:	aa01      	add	r2, sp, #4
+ 8006cb8:	2103      	movs	r1, #3
+ 8006cba:	4630      	mov	r0, r6
+ 8006cbc:	f7ff fd9e 	bl	80067fc <get_sequence_step_timeout>
+ 8006cc0:	9b01      	ldr	r3, [sp, #4]
+ 8006cc2:	f503 7325 	add.w	r3, r3, #660	; 0x294
+ 8006cc6:	42a3      	cmp	r3, r4
+ 8006cc8:	d2c0      	bcs.n	8006c4c <VL53L0X_set_measurement_timing_budget_micro_seconds+0x1a>
+ 8006cca:	b9c0      	cbnz	r0, 8006cfe <VL53L0X_set_measurement_timing_budget_micro_seconds+0xcc>
+ 8006ccc:	1ae4      	subs	r4, r4, r3
+ 8006cce:	f89d 300c 	ldrb.w	r3, [sp, #12]
+ 8006cd2:	2b00      	cmp	r3, #0
+ 8006cd4:	d0bc      	beq.n	8006c50 <VL53L0X_set_measurement_timing_budget_micro_seconds+0x1e>
+ 8006cd6:	f2a4 2226 	subw	r2, r4, #550	; 0x226
+ 8006cda:	2104      	movs	r1, #4
+ 8006cdc:	4630      	mov	r0, r6
+ 8006cde:	f7ff fe0c 	bl	80068fa <set_sequence_step_timeout>
+ 8006ce2:	6177      	str	r7, [r6, #20]
+ 8006ce4:	4605      	mov	r5, r0
+ 8006ce6:	e7b3      	b.n	8006c50 <VL53L0X_set_measurement_timing_budget_micro_seconds+0x1e>
+ 8006ce8:	f89d 3009 	ldrb.w	r3, [sp, #9]
+ 8006cec:	2b00      	cmp	r3, #0
+ 8006cee:	d0df      	beq.n	8006cb0 <VL53L0X_set_measurement_timing_budget_micro_seconds+0x7e>
+ 8006cf0:	9b00      	ldr	r3, [sp, #0]
+ 8006cf2:	f503 7325 	add.w	r3, r3, #660	; 0x294
+ 8006cf6:	429c      	cmp	r4, r3
+ 8006cf8:	d9a8      	bls.n	8006c4c <VL53L0X_set_measurement_timing_budget_micro_seconds+0x1a>
+ 8006cfa:	1ae4      	subs	r4, r4, r3
+ 8006cfc:	e7d8      	b.n	8006cb0 <VL53L0X_set_measurement_timing_budget_micro_seconds+0x7e>
+ 8006cfe:	4605      	mov	r5, r0
+ 8006d00:	e7a6      	b.n	8006c50 <VL53L0X_set_measurement_timing_budget_micro_seconds+0x1e>
+
+08006d02 <VL53L0X_get_measurement_timing_budget_micro_seconds>:
+ 8006d02:	b570      	push	{r4, r5, r6, lr}
+ 8006d04:	f44f 62fa 	mov.w	r2, #2000	; 0x7d0
+ 8006d08:	b086      	sub	sp, #24
+ 8006d0a:	2300      	movs	r3, #0
+ 8006d0c:	e9cd 2302 	strd	r2, r3, [sp, #8]
+ 8006d10:	f640 3336 	movw	r3, #2870	; 0xb36
+ 8006d14:	600b      	str	r3, [r1, #0]
+ 8006d16:	460c      	mov	r4, r1
+ 8006d18:	a904      	add	r1, sp, #16
+ 8006d1a:	4606      	mov	r6, r0
+ 8006d1c:	f7fe f974 	bl	8005008 <VL53L0X_GetSequenceStepEnables>
+ 8006d20:	4605      	mov	r5, r0
+ 8006d22:	2800      	cmp	r0, #0
+ 8006d24:	d136      	bne.n	8006d94 <VL53L0X_get_measurement_timing_budget_micro_seconds+0x92>
+ 8006d26:	f89d 2011 	ldrb.w	r2, [sp, #17]
+ 8006d2a:	f89d 3010 	ldrb.w	r3, [sp, #16]
+ 8006d2e:	4313      	orrs	r3, r2
+ 8006d30:	f89d 2012 	ldrb.w	r2, [sp, #18]
+ 8006d34:	4313      	orrs	r3, r2
+ 8006d36:	d019      	beq.n	8006d6c <VL53L0X_get_measurement_timing_budget_micro_seconds+0x6a>
+ 8006d38:	aa02      	add	r2, sp, #8
+ 8006d3a:	2102      	movs	r1, #2
+ 8006d3c:	4630      	mov	r0, r6
+ 8006d3e:	f7ff fd5d 	bl	80067fc <get_sequence_step_timeout>
+ 8006d42:	2800      	cmp	r0, #0
+ 8006d44:	d140      	bne.n	8006dc8 <VL53L0X_get_measurement_timing_budget_micro_seconds+0xc6>
+ 8006d46:	f89d 3010 	ldrb.w	r3, [sp, #16]
+ 8006d4a:	b12b      	cbz	r3, 8006d58 <VL53L0X_get_measurement_timing_budget_micro_seconds+0x56>
+ 8006d4c:	9b02      	ldr	r3, [sp, #8]
+ 8006d4e:	f203 224e 	addw	r2, r3, #590	; 0x24e
+ 8006d52:	6823      	ldr	r3, [r4, #0]
+ 8006d54:	4413      	add	r3, r2
+ 8006d56:	6023      	str	r3, [r4, #0]
+ 8006d58:	f89d 3012 	ldrb.w	r3, [sp, #18]
+ 8006d5c:	b1eb      	cbz	r3, 8006d9a <VL53L0X_get_measurement_timing_budget_micro_seconds+0x98>
+ 8006d5e:	9b02      	ldr	r3, [sp, #8]
+ 8006d60:	f203 22b2 	addw	r2, r3, #690	; 0x2b2
+ 8006d64:	6823      	ldr	r3, [r4, #0]
+ 8006d66:	eb03 0342 	add.w	r3, r3, r2, lsl #1
+ 8006d6a:	6023      	str	r3, [r4, #0]
+ 8006d6c:	f89d 3013 	ldrb.w	r3, [sp, #19]
+ 8006d70:	b9eb      	cbnz	r3, 8006dae <VL53L0X_get_measurement_timing_budget_micro_seconds+0xac>
+ 8006d72:	f89d 3014 	ldrb.w	r3, [sp, #20]
+ 8006d76:	b15b      	cbz	r3, 8006d90 <VL53L0X_get_measurement_timing_budget_micro_seconds+0x8e>
+ 8006d78:	aa01      	add	r2, sp, #4
+ 8006d7a:	2104      	movs	r1, #4
+ 8006d7c:	4630      	mov	r0, r6
+ 8006d7e:	f7ff fd3d 	bl	80067fc <get_sequence_step_timeout>
+ 8006d82:	9b01      	ldr	r3, [sp, #4]
+ 8006d84:	f203 2226 	addw	r2, r3, #550	; 0x226
+ 8006d88:	6823      	ldr	r3, [r4, #0]
+ 8006d8a:	4413      	add	r3, r2
+ 8006d8c:	6023      	str	r3, [r4, #0]
+ 8006d8e:	b9d8      	cbnz	r0, 8006dc8 <VL53L0X_get_measurement_timing_budget_micro_seconds+0xc6>
+ 8006d90:	6823      	ldr	r3, [r4, #0]
+ 8006d92:	6173      	str	r3, [r6, #20]
+ 8006d94:	4628      	mov	r0, r5
+ 8006d96:	b006      	add	sp, #24
+ 8006d98:	bd70      	pop	{r4, r5, r6, pc}
+ 8006d9a:	f89d 3011 	ldrb.w	r3, [sp, #17]
+ 8006d9e:	2b00      	cmp	r3, #0
+ 8006da0:	d0e4      	beq.n	8006d6c <VL53L0X_get_measurement_timing_budget_micro_seconds+0x6a>
+ 8006da2:	9b02      	ldr	r3, [sp, #8]
+ 8006da4:	f503 7225 	add.w	r2, r3, #660	; 0x294
+ 8006da8:	6823      	ldr	r3, [r4, #0]
+ 8006daa:	4413      	add	r3, r2
+ 8006dac:	e7dd      	b.n	8006d6a <VL53L0X_get_measurement_timing_budget_micro_seconds+0x68>
+ 8006dae:	aa03      	add	r2, sp, #12
+ 8006db0:	2103      	movs	r1, #3
+ 8006db2:	4630      	mov	r0, r6
+ 8006db4:	f7ff fd22 	bl	80067fc <get_sequence_step_timeout>
+ 8006db8:	9b03      	ldr	r3, [sp, #12]
+ 8006dba:	f503 7225 	add.w	r2, r3, #660	; 0x294
+ 8006dbe:	6823      	ldr	r3, [r4, #0]
+ 8006dc0:	4413      	add	r3, r2
+ 8006dc2:	6023      	str	r3, [r4, #0]
+ 8006dc4:	2800      	cmp	r0, #0
+ 8006dc6:	d0d4      	beq.n	8006d72 <VL53L0X_get_measurement_timing_budget_micro_seconds+0x70>
+ 8006dc8:	4605      	mov	r5, r0
+ 8006dca:	e7e3      	b.n	8006d94 <VL53L0X_get_measurement_timing_budget_micro_seconds+0x92>
+
+08006dcc <VL53L0X_load_tuning_settings>:
+ 8006dcc:	e92d 43f7 	stmdb	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
+ 8006dd0:	2400      	movs	r4, #0
+ 8006dd2:	4606      	mov	r6, r0
+ 8006dd4:	460d      	mov	r5, r1
+ 8006dd6:	4620      	mov	r0, r4
+ 8006dd8:	f815 8004 	ldrb.w	r8, [r5, r4]
+ 8006ddc:	f1b8 0f00 	cmp.w	r8, #0
+ 8006de0:	d000      	beq.n	8006de4 <VL53L0X_load_tuning_settings+0x18>
+ 8006de2:	b110      	cbz	r0, 8006dea <VL53L0X_load_tuning_settings+0x1e>
+ 8006de4:	b003      	add	sp, #12
+ 8006de6:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
+ 8006dea:	1c67      	adds	r7, r4, #1
+ 8006dec:	f1b8 0fff 	cmp.w	r8, #255	; 0xff
+ 8006df0:	f815 9007 	ldrb.w	r9, [r5, r7]
+ 8006df4:	d129      	bne.n	8006e4a <VL53L0X_load_tuning_settings+0x7e>
+ 8006df6:	1ca7      	adds	r7, r4, #2
+ 8006df8:	5deb      	ldrb	r3, [r5, r7]
+ 8006dfa:	f1b9 0f03 	cmp.w	r9, #3
+ 8006dfe:	d836      	bhi.n	8006e6e <VL53L0X_load_tuning_settings+0xa2>
+ 8006e00:	e8df f009 	tbb	[pc, r9]
+ 8006e04:	1b130b02 	.word	0x1b130b02
+ 8006e08:	1d27      	adds	r7, r4, #4
+ 8006e0a:	442c      	add	r4, r5
+ 8006e0c:	78e2      	ldrb	r2, [r4, #3]
+ 8006e0e:	eb02 2303 	add.w	r3, r2, r3, lsl #8
+ 8006e12:	f8a6 3134 	strh.w	r3, [r6, #308]	; 0x134
+ 8006e16:	463c      	mov	r4, r7
+ 8006e18:	e7de      	b.n	8006dd8 <VL53L0X_load_tuning_settings+0xc>
+ 8006e1a:	1d27      	adds	r7, r4, #4
+ 8006e1c:	442c      	add	r4, r5
+ 8006e1e:	78e2      	ldrb	r2, [r4, #3]
+ 8006e20:	eb02 2303 	add.w	r3, r2, r3, lsl #8
+ 8006e24:	f8a6 3136 	strh.w	r3, [r6, #310]	; 0x136
+ 8006e28:	e7f5      	b.n	8006e16 <VL53L0X_load_tuning_settings+0x4a>
+ 8006e2a:	1d27      	adds	r7, r4, #4
+ 8006e2c:	442c      	add	r4, r5
+ 8006e2e:	78e2      	ldrb	r2, [r4, #3]
+ 8006e30:	eb02 2303 	add.w	r3, r2, r3, lsl #8
+ 8006e34:	f8a6 3138 	strh.w	r3, [r6, #312]	; 0x138
+ 8006e38:	e7ed      	b.n	8006e16 <VL53L0X_load_tuning_settings+0x4a>
+ 8006e3a:	1d27      	adds	r7, r4, #4
+ 8006e3c:	442c      	add	r4, r5
+ 8006e3e:	78e2      	ldrb	r2, [r4, #3]
+ 8006e40:	eb02 2303 	add.w	r3, r2, r3, lsl #8
+ 8006e44:	f8a6 313c 	strh.w	r3, [r6, #316]	; 0x13c
+ 8006e48:	e7e5      	b.n	8006e16 <VL53L0X_load_tuning_settings+0x4a>
+ 8006e4a:	f1b8 0f04 	cmp.w	r8, #4
+ 8006e4e:	d80e      	bhi.n	8006e6e <VL53L0X_load_tuning_settings+0xa2>
+ 8006e50:	3402      	adds	r4, #2
+ 8006e52:	4642      	mov	r2, r8
+ 8006e54:	1929      	adds	r1, r5, r4
+ 8006e56:	a801      	add	r0, sp, #4
+ 8006e58:	f00d fb07 	bl	801446a <memcpy>
+ 8006e5c:	4643      	mov	r3, r8
+ 8006e5e:	aa01      	add	r2, sp, #4
+ 8006e60:	4649      	mov	r1, r9
+ 8006e62:	4630      	mov	r0, r6
+ 8006e64:	eb04 0708 	add.w	r7, r4, r8
+ 8006e68:	f000 fabe 	bl	80073e8 <VL53L0X_WriteMulti>
+ 8006e6c:	e7d3      	b.n	8006e16 <VL53L0X_load_tuning_settings+0x4a>
+ 8006e6e:	f06f 0003 	mvn.w	r0, #3
+ 8006e72:	e7d0      	b.n	8006e16 <VL53L0X_load_tuning_settings+0x4a>
+
+08006e74 <VL53L0X_get_total_xtalk_rate>:
+ 8006e74:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 8006e76:	2300      	movs	r3, #0
+ 8006e78:	460e      	mov	r6, r1
+ 8006e7a:	6013      	str	r3, [r2, #0]
+ 8006e7c:	f10d 0107 	add.w	r1, sp, #7
+ 8006e80:	4605      	mov	r5, r0
+ 8006e82:	4614      	mov	r4, r2
+ 8006e84:	f7fe f8f7 	bl	8005076 <VL53L0X_GetXTalkCompensationEnable>
+ 8006e88:	b940      	cbnz	r0, 8006e9c <VL53L0X_get_total_xtalk_rate+0x28>
+ 8006e8a:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8006e8e:	b12b      	cbz	r3, 8006e9c <VL53L0X_get_total_xtalk_rate+0x28>
+ 8006e90:	8ab3      	ldrh	r3, [r6, #20]
+ 8006e92:	6a2a      	ldr	r2, [r5, #32]
+ 8006e94:	4353      	muls	r3, r2
+ 8006e96:	3380      	adds	r3, #128	; 0x80
+ 8006e98:	0a1b      	lsrs	r3, r3, #8
+ 8006e9a:	6023      	str	r3, [r4, #0]
+ 8006e9c:	b002      	add	sp, #8
+ 8006e9e:	bd70      	pop	{r4, r5, r6, pc}
+
+08006ea0 <VL53L0X_get_total_signal_rate>:
+ 8006ea0:	b513      	push	{r0, r1, r4, lr}
+ 8006ea2:	68cb      	ldr	r3, [r1, #12]
+ 8006ea4:	6013      	str	r3, [r2, #0]
+ 8006ea6:	4614      	mov	r4, r2
+ 8006ea8:	aa01      	add	r2, sp, #4
+ 8006eaa:	f7ff ffe3 	bl	8006e74 <VL53L0X_get_total_xtalk_rate>
+ 8006eae:	b918      	cbnz	r0, 8006eb8 <VL53L0X_get_total_signal_rate+0x18>
+ 8006eb0:	6823      	ldr	r3, [r4, #0]
+ 8006eb2:	9a01      	ldr	r2, [sp, #4]
+ 8006eb4:	4413      	add	r3, r2
+ 8006eb6:	6023      	str	r3, [r4, #0]
+ 8006eb8:	b002      	add	sp, #8
+ 8006eba:	bd10      	pop	{r4, pc}
+
+08006ebc <VL53L0X_calc_dmax>:
+ 8006ebc:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 8006ebe:	f8b0 5154 	ldrh.w	r5, [r0, #340]	; 0x154
+ 8006ec2:	f8d0 0158 	ldr.w	r0, [r0, #344]	; 0x158
+ 8006ec6:	4368      	muls	r0, r5
+ 8006ec8:	3080      	adds	r0, #128	; 0x80
+ 8006eca:	0a00      	lsrs	r0, r0, #8
+ 8006ecc:	460e      	mov	r6, r1
+ 8006ece:	4345      	muls	r5, r0
+ 8006ed0:	e9dd 1707 	ldrd	r1, r7, [sp, #28]
+ 8006ed4:	4614      	mov	r4, r2
+ 8006ed6:	b152      	cbz	r2, 8006eee <VL53L0X_calc_dmax+0x32>
+ 8006ed8:	02b6      	lsls	r6, r6, #10
+ 8006eda:	eb06 0252 	add.w	r2, r6, r2, lsr #1
+ 8006ede:	fbb2 f2f4 	udiv	r2, r2, r4
+ 8006ee2:	eb02 0242 	add.w	r2, r2, r2, lsl #1
+ 8006ee6:	4352      	muls	r2, r2
+ 8006ee8:	f502 4200 	add.w	r2, r2, #32768	; 0x8000
+ 8006eec:	0c14      	lsrs	r4, r2, #16
+ 8006eee:	9a06      	ldr	r2, [sp, #24]
+ 8006ef0:	4353      	muls	r3, r2
+ 8006ef2:	f501 4200 	add.w	r2, r1, #32768	; 0x8000
+ 8006ef6:	0c12      	lsrs	r2, r2, #16
+ 8006ef8:	2006      	movs	r0, #6
+ 8006efa:	3203      	adds	r2, #3
+ 8006efc:	fbb2 f2f0 	udiv	r2, r2, r0
+ 8006f00:	ebc2 02c2 	rsb	r2, r2, r2, lsl #3
+ 8006f04:	f5b2 3f80 	cmp.w	r2, #65536	; 0x10000
+ 8006f08:	bf38      	it	cc
+ 8006f0a:	3103      	addcc	r1, #3
+ 8006f0c:	f503 4300 	add.w	r3, r3, #32768	; 0x8000
+ 8006f10:	bf3e      	ittt	cc
+ 8006f12:	fbb1 f1f0 	udivcc	r1, r1, r0
+ 8006f16:	ebc1 01c1 	rsbcc	r1, r1, r1, lsl #3
+ 8006f1a:	f501 4100 	addcc.w	r1, r1, #32768	; 0x8000
+ 8006f1e:	ea4f 4313 	mov.w	r3, r3, lsr #16
+ 8006f22:	bf34      	ite	cc
+ 8006f24:	0c09      	lsrcc	r1, r1, #16
+ 8006f26:	491b      	ldrcs	r1, [pc, #108]	; (8006f94 <VL53L0X_calc_dmax+0xd8>)
+ 8006f28:	fb03 f303 	mul.w	r3, r3, r3
+ 8006f2c:	bf38      	it	cc
+ 8006f2e:	4349      	mulcc	r1, r1
+ 8006f30:	eb03 0357 	add.w	r3, r3, r7, lsr #1
+ 8006f34:	440b      	add	r3, r1
+ 8006f36:	fbb3 f3f7 	udiv	r3, r3, r7
+ 8006f3a:	039b      	lsls	r3, r3, #14
+ 8006f3c:	22fe      	movs	r2, #254	; 0xfe
+ 8006f3e:	f105 0020 	add.w	r0, r5, #32
+ 8006f42:	337f      	adds	r3, #127	; 0x7f
+ 8006f44:	fbb3 f3f2 	udiv	r3, r3, r2
+ 8006f48:	435c      	muls	r4, r3
+ 8006f4a:	f44f 777a 	mov.w	r7, #1000	; 0x3e8
+ 8006f4e:	f504 74fa 	add.w	r4, r4, #500	; 0x1f4
+ 8006f52:	0980      	lsrs	r0, r0, #6
+ 8006f54:	fbb4 f4f7 	udiv	r4, r4, r7
+ 8006f58:	0124      	lsls	r4, r4, #4
+ 8006f5a:	f7ff f92d 	bl	80061b8 <VL53L0X_isqrt>
+ 8006f5e:	f504 74fa 	add.w	r4, r4, #500	; 0x1f4
+ 8006f62:	42bc      	cmp	r4, r7
+ 8006f64:	bf28      	it	cs
+ 8006f66:	f44f 63fa 	movcs.w	r3, #2000	; 0x7d0
+ 8006f6a:	4606      	mov	r6, r0
+ 8006f6c:	bf29      	itett	cs
+ 8006f6e:	fbb4 f3f3 	udivcs	r3, r4, r3
+ 8006f72:	2000      	movcc	r0, #0
+ 8006f74:	195b      	addcs	r3, r3, r5
+ 8006f76:	fbb4 f4f7 	udivcs	r4, r4, r7
+ 8006f7a:	bf28      	it	cs
+ 8006f7c:	fbb3 f0f4 	udivcs	r0, r3, r4
+ 8006f80:	f7ff f91a 	bl	80061b8 <VL53L0X_isqrt>
+ 8006f84:	9b09      	ldr	r3, [sp, #36]	; 0x24
+ 8006f86:	4286      	cmp	r6, r0
+ 8006f88:	bf94      	ite	ls
+ 8006f8a:	601e      	strls	r6, [r3, #0]
+ 8006f8c:	6018      	strhi	r0, [r3, #0]
+ 8006f8e:	2000      	movs	r0, #0
+ 8006f90:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 8006f92:	bf00      	nop
+ 8006f94:	fff00000 	.word	0xfff00000
+
+08006f98 <VL53L0X_calc_sigma_estimate>:
+ 8006f98:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8006f9c:	b091      	sub	sp, #68	; 0x44
+ 8006f9e:	e9cd 2307 	strd	r2, r3, [sp, #28]
+ 8006fa2:	6a03      	ldr	r3, [r0, #32]
+ 8006fa4:	930e      	str	r3, [sp, #56]	; 0x38
+ 8006fa6:	690b      	ldr	r3, [r1, #16]
+ 8006fa8:	9309      	str	r3, [sp, #36]	; 0x24
+ 8006faa:	4605      	mov	r5, r0
+ 8006fac:	68cb      	ldr	r3, [r1, #12]
+ 8006fae:	930b      	str	r3, [sp, #44]	; 0x2c
+ 8006fb0:	460f      	mov	r7, r1
+ 8006fb2:	aa0f      	add	r2, sp, #60	; 0x3c
+ 8006fb4:	f7ff ff74 	bl	8006ea0 <VL53L0X_get_total_signal_rate>
+ 8006fb8:	aa0e      	add	r2, sp, #56	; 0x38
+ 8006fba:	4639      	mov	r1, r7
+ 8006fbc:	4628      	mov	r0, r5
+ 8006fbe:	f7ff ff59 	bl	8006e74 <VL53L0X_get_total_xtalk_rate>
+ 8006fc2:	bb58      	cbnz	r0, 800701c <VL53L0X_calc_sigma_estimate+0x84>
+ 8006fc4:	9c0f      	ldr	r4, [sp, #60]	; 0x3c
+ 8006fc6:	f895 b0e0 	ldrb.w	fp, [r5, #224]	; 0xe0
+ 8006fca:	f8d5 30dc 	ldr.w	r3, [r5, #220]	; 0xdc
+ 8006fce:	9305      	str	r3, [sp, #20]
+ 8006fd0:	f44f 767a 	mov.w	r6, #1000	; 0x3e8
+ 8006fd4:	fb06 f104 	mul.w	r1, r6, r4
+ 8006fd8:	f501 4100 	add.w	r1, r1, #32768	; 0x8000
+ 8006fdc:	9104      	str	r1, [sp, #16]
+ 8006fde:	990e      	ldr	r1, [sp, #56]	; 0x38
+ 8006fe0:	910a      	str	r1, [sp, #40]	; 0x28
+ 8006fe2:	9904      	ldr	r1, [sp, #16]
+ 8006fe4:	f8d5 30e4 	ldr.w	r3, [r5, #228]	; 0xe4
+ 8006fe8:	9306      	str	r3, [sp, #24]
+ 8006fea:	f1bb 0f08 	cmp.w	fp, #8
+ 8006fee:	f104 0480 	add.w	r4, r4, #128	; 0x80
+ 8006ff2:	bf0c      	ite	eq
+ 8006ff4:	2302      	moveq	r3, #2
+ 8006ff6:	2303      	movne	r3, #3
+ 8006ff8:	f024 0aff 	bic.w	sl, r4, #255	; 0xff
+ 8006ffc:	0c09      	lsrs	r1, r1, #16
+ 8006ffe:	f895 20e8 	ldrb.w	r2, [r5, #232]	; 0xe8
+ 8007002:	f8df 81a0 	ldr.w	r8, [pc, #416]	; 80071a4 <VL53L0X_calc_sigma_estimate+0x20c>
+ 8007006:	f8cd a03c 	str.w	sl, [sp, #60]	; 0x3c
+ 800700a:	910c      	str	r1, [sp, #48]	; 0x30
+ 800700c:	d109      	bne.n	8007022 <VL53L0X_calc_sigma_estimate+0x8a>
+ 800700e:	9b07      	ldr	r3, [sp, #28]
+ 8007010:	f8c3 8000 	str.w	r8, [r3]
+ 8007014:	9b08      	ldr	r3, [sp, #32]
+ 8007016:	f8c5 8140 	str.w	r8, [r5, #320]	; 0x140
+ 800701a:	6018      	str	r0, [r3, #0]
+ 800701c:	b011      	add	sp, #68	; 0x44
+ 800701e:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 8007022:	9906      	ldr	r1, [sp, #24]
+ 8007024:	930d      	str	r3, [sp, #52]	; 0x34
+ 8007026:	4628      	mov	r0, r5
+ 8007028:	f7ff fbc4 	bl	80067b4 <VL53L0X_calc_timeout_mclks>
+ 800702c:	465a      	mov	r2, fp
+ 800702e:	9905      	ldr	r1, [sp, #20]
+ 8007030:	4681      	mov	r9, r0
+ 8007032:	4628      	mov	r0, r5
+ 8007034:	f7ff fbbe 	bl	80067b4 <VL53L0X_calc_timeout_mclks>
+ 8007038:	9b0d      	ldr	r3, [sp, #52]	; 0x34
+ 800703a:	495b      	ldr	r1, [pc, #364]	; (80071a8 <VL53L0X_calc_sigma_estimate+0x210>)
+ 800703c:	9a0c      	ldr	r2, [sp, #48]	; 0x30
+ 800703e:	4481      	add	r9, r0
+ 8007040:	fb03 f909 	mul.w	r9, r3, r9
+ 8007044:	ea4f 29c9 	mov.w	r9, r9, lsl #11
+ 8007048:	f240 6377 	movw	r3, #1655	; 0x677
+ 800704c:	f509 79fa 	add.w	r9, r9, #500	; 0x1f4
+ 8007050:	0a24      	lsrs	r4, r4, #8
+ 8007052:	fbb9 f9f6 	udiv	r9, r9, r6
+ 8007056:	fb03 f909 	mul.w	r9, r3, r9
+ 800705a:	f509 79fa 	add.w	r9, r9, #500	; 0x1f4
+ 800705e:	fbb9 f9f6 	udiv	r9, r9, r6
+ 8007062:	fb09 f404 	mul.w	r4, r9, r4
+ 8007066:	f104 0380 	add.w	r3, r4, #128	; 0x80
+ 800706a:	9c09      	ldr	r4, [sp, #36]	; 0x24
+ 800706c:	4374      	muls	r4, r6
+ 800706e:	400c      	ands	r4, r1
+ 8007070:	fbb4 f4f2 	udiv	r4, r4, r2
+ 8007074:	4a4d      	ldr	r2, [pc, #308]	; (80071ac <VL53L0X_calc_sigma_estimate+0x214>)
+ 8007076:	0a1b      	lsrs	r3, r3, #8
+ 8007078:	4294      	cmp	r4, r2
+ 800707a:	bf28      	it	cs
+ 800707c:	4614      	movcs	r4, r2
+ 800707e:	2b01      	cmp	r3, #1
+ 8007080:	bf38      	it	cc
+ 8007082:	2301      	movcc	r3, #1
+ 8007084:	200c      	movs	r0, #12
+ 8007086:	f44f 7216 	mov.w	r2, #600	; 0x258
+ 800708a:	4358      	muls	r0, r3
+ 800708c:	4354      	muls	r4, r2
+ 800708e:	f7ff f893 	bl	80061b8 <VL53L0X_isqrt>
+ 8007092:	7e3b      	ldrb	r3, [r7, #24]
+ 8007094:	893a      	ldrh	r2, [r7, #8]
+ 8007096:	ea4f 0b40 	mov.w	fp, r0, lsl #1
+ 800709a:	2b00      	cmp	r3, #0
+ 800709c:	d17f      	bne.n	800719e <VL53L0X_calc_sigma_estimate+0x206>
+ 800709e:	4942      	ldr	r1, [pc, #264]	; (80071a8 <VL53L0X_calc_sigma_estimate+0x210>)
+ 80070a0:	9b04      	ldr	r3, [sp, #16]
+ 80070a2:	400b      	ands	r3, r1
+ 80070a4:	f503 71fa 	add.w	r1, r3, #500	; 0x1f4
+ 80070a8:	4b41      	ldr	r3, [pc, #260]	; (80071b0 <VL53L0X_calc_sigma_estimate+0x218>)
+ 80070aa:	435a      	muls	r2, r3
+ 80070ac:	f241 235c 	movw	r3, #4700	; 0x125c
+ 80070b0:	fbb2 f2f3 	udiv	r2, r2, r3
+ 80070b4:	9b0a      	ldr	r3, [sp, #40]	; 0x28
+ 80070b6:	4373      	muls	r3, r6
+ 80070b8:	f5b3 1f48 	cmp.w	r3, #3276800	; 0x320000
+ 80070bc:	bf28      	it	cs
+ 80070be:	f44f 1348 	movcs.w	r3, #3276800	; 0x320000
+ 80070c2:	eba1 0343 	sub.w	r3, r1, r3, lsl #1
+ 80070c6:	fbb1 f1f6 	udiv	r1, r1, r6
+ 80070ca:	fbb3 f3f6 	udiv	r3, r3, r6
+ 80070ce:	021b      	lsls	r3, r3, #8
+ 80070d0:	fbb3 f6f1 	udiv	r6, r3, r1
+ 80070d4:	0236      	lsls	r6, r6, #8
+ 80070d6:	f5c6 3680 	rsb	r6, r6, #65536	; 0x10000
+ 80070da:	4356      	muls	r6, r2
+ 80070dc:	f506 4600 	add.w	r6, r6, #32768	; 0x8000
+ 80070e0:	0c36      	lsrs	r6, r6, #16
+ 80070e2:	f506 3680 	add.w	r6, r6, #65536	; 0x10000
+ 80070e6:	0876      	lsrs	r6, r6, #1
+ 80070e8:	4376      	muls	r6, r6
+ 80070ea:	0bb6      	lsrs	r6, r6, #14
+ 80070ec:	f44f 7048 	mov.w	r0, #800	; 0x320
+ 80070f0:	4370      	muls	r0, r6
+ 80070f2:	f504 4300 	add.w	r3, r4, #32768	; 0x8000
+ 80070f6:	f500 4000 	add.w	r0, r0, #32768	; 0x8000
+ 80070fa:	0c1b      	lsrs	r3, r3, #16
+ 80070fc:	435b      	muls	r3, r3
+ 80070fe:	0c00      	lsrs	r0, r0, #16
+ 8007100:	fb00 3000 	mla	r0, r0, r0, r3
+ 8007104:	f7ff f858 	bl	80061b8 <VL53L0X_isqrt>
+ 8007108:	0403      	lsls	r3, r0, #16
+ 800710a:	2264      	movs	r2, #100	; 0x64
+ 800710c:	3332      	adds	r3, #50	; 0x32
+ 800710e:	f241 3788 	movw	r7, #5000	; 0x1388
+ 8007112:	fbb3 f3f2 	udiv	r3, r3, r2
+ 8007116:	f640 32b5 	movw	r2, #2997	; 0xbb5
+ 800711a:	fbb3 f3fb 	udiv	r3, r3, fp
+ 800711e:	fb02 7703 	mla	r7, r2, r3, r7
+ 8007122:	4b24      	ldr	r3, [pc, #144]	; (80071b4 <VL53L0X_calc_sigma_estimate+0x21c>)
+ 8007124:	429f      	cmp	r7, r3
+ 8007126:	bf9c      	itt	ls
+ 8007128:	f242 7310 	movwls	r3, #10000	; 0x2710
+ 800712c:	fbb7 f7f3 	udivls	r7, r7, r3
+ 8007130:	e9dd 3205 	ldrd	r3, r2, [sp, #20]
+ 8007134:	4413      	add	r3, r2
+ 8007136:	f503 73fa 	add.w	r3, r3, #500	; 0x1f4
+ 800713a:	f44f 7b7a 	mov.w	fp, #1000	; 0x3e8
+ 800713e:	f44f 62fa 	mov.w	r2, #2000	; 0x7d0
+ 8007142:	fbb3 f0fb 	udiv	r0, r3, fp
+ 8007146:	fbb3 f2f2 	udiv	r2, r3, r2
+ 800714a:	f502 12c8 	add.w	r2, r2, #1638400	; 0x190000
+ 800714e:	fbb2 f0f0 	udiv	r0, r2, r0
+ 8007152:	bf88      	it	hi
+ 8007154:	f44f 4770 	movhi.w	r7, #61440	; 0xf000
+ 8007158:	f7ff f82e 	bl	80061b8 <VL53L0X_isqrt>
+ 800715c:	0200      	lsls	r0, r0, #8
+ 800715e:	f500 70fa 	add.w	r0, r0, #500	; 0x1f4
+ 8007162:	fbb0 f0fb 	udiv	r0, r0, fp
+ 8007166:	4340      	muls	r0, r0
+ 8007168:	fb07 0007 	mla	r0, r7, r7, r0
+ 800716c:	f7ff f824 	bl	80061b8 <VL53L0X_isqrt>
+ 8007170:	fb0b f000 	mul.w	r0, fp, r0
+ 8007174:	9b07      	ldr	r3, [sp, #28]
+ 8007176:	9a0b      	ldr	r2, [sp, #44]	; 0x2c
+ 8007178:	4540      	cmp	r0, r8
+ 800717a:	bf28      	it	cs
+ 800717c:	4640      	movcs	r0, r8
+ 800717e:	6018      	str	r0, [r3, #0]
+ 8007180:	9b08      	ldr	r3, [sp, #32]
+ 8007182:	f8c5 0140 	str.w	r0, [r5, #320]	; 0x140
+ 8007186:	e9cd 9302 	strd	r9, r3, [sp, #8]
+ 800718a:	f44f 7348 	mov.w	r3, #800	; 0x320
+ 800718e:	9300      	str	r3, [sp, #0]
+ 8007190:	9401      	str	r4, [sp, #4]
+ 8007192:	4633      	mov	r3, r6
+ 8007194:	4651      	mov	r1, sl
+ 8007196:	4628      	mov	r0, r5
+ 8007198:	f7ff fe90 	bl	8006ebc <VL53L0X_calc_dmax>
+ 800719c:	e73e      	b.n	800701c <VL53L0X_calc_sigma_estimate+0x84>
+ 800719e:	f44f 3680 	mov.w	r6, #65536	; 0x10000
+ 80071a2:	e7a3      	b.n	80070ec <VL53L0X_calc_sigma_estimate+0x154>
+ 80071a4:	028f87ae 	.word	0x028f87ae
+ 80071a8:	ffff0000 	.word	0xffff0000
+ 80071ac:	00666666 	.word	0x00666666
+ 80071b0:	0006999a 	.word	0x0006999a
+ 80071b4:	249f270f 	.word	0x249f270f
+
+080071b8 <VL53L0X_get_pal_range_status>:
+ 80071b8:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 80071bc:	b08b      	sub	sp, #44	; 0x2c
+ 80071be:	2700      	movs	r7, #0
+ 80071c0:	f011 0f78 	tst.w	r1, #120	; 0x78
+ 80071c4:	e9dd b814 	ldrd	fp, r8, [sp, #80]	; 0x50
+ 80071c8:	4604      	mov	r4, r0
+ 80071ca:	9201      	str	r2, [sp, #4]
+ 80071cc:	4699      	mov	r9, r3
+ 80071ce:	f88d 700e 	strb.w	r7, [sp, #14]
+ 80071d2:	f88d 700f 	strb.w	r7, [sp, #15]
+ 80071d6:	f88d 7010 	strb.w	r7, [sp, #16]
+ 80071da:	f88d 7011 	strb.w	r7, [sp, #17]
+ 80071de:	f8ad 7012 	strh.w	r7, [sp, #18]
+ 80071e2:	9709      	str	r7, [sp, #36]	; 0x24
+ 80071e4:	f3c1 0ac3 	ubfx	sl, r1, #3, #4
+ 80071e8:	f000 80af 	beq.w	800734a <VL53L0X_get_pal_range_status+0x192>
+ 80071ec:	f1aa 0305 	sub.w	r3, sl, #5
+ 80071f0:	b2db      	uxtb	r3, r3
+ 80071f2:	2b0a      	cmp	r3, #10
+ 80071f4:	d801      	bhi.n	80071fa <VL53L0X_get_pal_range_status+0x42>
+ 80071f6:	4a6b      	ldr	r2, [pc, #428]	; (80073a4 <VL53L0X_get_pal_range_status+0x1ec>)
+ 80071f8:	5cd7      	ldrb	r7, [r2, r3]
+ 80071fa:	f10d 020e 	add.w	r2, sp, #14
+ 80071fe:	2100      	movs	r1, #0
+ 8007200:	4620      	mov	r0, r4
+ 8007202:	f7fd ff92 	bl	800512a <VL53L0X_GetLimitCheckEnable>
+ 8007206:	f89d 500e 	ldrb.w	r5, [sp, #14]
+ 800720a:	4606      	mov	r6, r0
+ 800720c:	b1d5      	cbz	r5, 8007244 <VL53L0X_get_pal_range_status+0x8c>
+ 800720e:	2800      	cmp	r0, #0
+ 8007210:	f040 809d 	bne.w	800734e <VL53L0X_get_pal_range_status+0x196>
+ 8007214:	ab09      	add	r3, sp, #36	; 0x24
+ 8007216:	aa05      	add	r2, sp, #20
+ 8007218:	4659      	mov	r1, fp
+ 800721a:	4620      	mov	r0, r4
+ 800721c:	f7ff febc 	bl	8006f98 <VL53L0X_calc_sigma_estimate>
+ 8007220:	2800      	cmp	r0, #0
+ 8007222:	f040 8096 	bne.w	8007352 <VL53L0X_get_pal_range_status+0x19a>
+ 8007226:	9b09      	ldr	r3, [sp, #36]	; 0x24
+ 8007228:	f8ab 300a 	strh.w	r3, [fp, #10]
+ 800722c:	4601      	mov	r1, r0
+ 800722e:	aa06      	add	r2, sp, #24
+ 8007230:	4620      	mov	r0, r4
+ 8007232:	f7fd ffb3 	bl	800519c <VL53L0X_GetLimitCheckValue>
+ 8007236:	9d06      	ldr	r5, [sp, #24]
+ 8007238:	b125      	cbz	r5, 8007244 <VL53L0X_get_pal_range_status+0x8c>
+ 800723a:	9b05      	ldr	r3, [sp, #20]
+ 800723c:	429d      	cmp	r5, r3
+ 800723e:	bf2c      	ite	cs
+ 8007240:	2500      	movcs	r5, #0
+ 8007242:	2501      	movcc	r5, #1
+ 8007244:	b920      	cbnz	r0, 8007250 <VL53L0X_get_pal_range_status+0x98>
+ 8007246:	aa04      	add	r2, sp, #16
+ 8007248:	2102      	movs	r1, #2
+ 800724a:	4620      	mov	r0, r4
+ 800724c:	f7fd ff6d 	bl	800512a <VL53L0X_GetLimitCheckEnable>
+ 8007250:	f89d 6010 	ldrb.w	r6, [sp, #16]
+ 8007254:	b326      	cbz	r6, 80072a0 <VL53L0X_get_pal_range_status+0xe8>
+ 8007256:	2800      	cmp	r0, #0
+ 8007258:	d17d      	bne.n	8007356 <VL53L0X_get_pal_range_status+0x19e>
+ 800725a:	aa07      	add	r2, sp, #28
+ 800725c:	2102      	movs	r1, #2
+ 800725e:	4620      	mov	r0, r4
+ 8007260:	f7fd ff9c 	bl	800519c <VL53L0X_GetLimitCheckValue>
+ 8007264:	b988      	cbnz	r0, 800728a <VL53L0X_get_pal_range_status+0xd2>
+ 8007266:	2201      	movs	r2, #1
+ 8007268:	21ff      	movs	r1, #255	; 0xff
+ 800726a:	4620      	mov	r0, r4
+ 800726c:	f000 f8f0 	bl	8007450 <VL53L0X_WrByte>
+ 8007270:	b958      	cbnz	r0, 800728a <VL53L0X_get_pal_range_status+0xd2>
+ 8007272:	f10d 0212 	add.w	r2, sp, #18
+ 8007276:	21b6      	movs	r1, #182	; 0xb6
+ 8007278:	4620      	mov	r0, r4
+ 800727a:	f000 f937 	bl	80074ec <VL53L0X_RdWord>
+ 800727e:	b920      	cbnz	r0, 800728a <VL53L0X_get_pal_range_status+0xd2>
+ 8007280:	4602      	mov	r2, r0
+ 8007282:	21ff      	movs	r1, #255	; 0xff
+ 8007284:	4620      	mov	r0, r4
+ 8007286:	f000 f8e3 	bl	8007450 <VL53L0X_WrByte>
+ 800728a:	f8bd 3012 	ldrh.w	r3, [sp, #18]
+ 800728e:	9e07      	ldr	r6, [sp, #28]
+ 8007290:	025b      	lsls	r3, r3, #9
+ 8007292:	f8c4 3148 	str.w	r3, [r4, #328]	; 0x148
+ 8007296:	b11e      	cbz	r6, 80072a0 <VL53L0X_get_pal_range_status+0xe8>
+ 8007298:	429e      	cmp	r6, r3
+ 800729a:	bf2c      	ite	cs
+ 800729c:	2600      	movcs	r6, #0
+ 800729e:	2601      	movcc	r6, #1
+ 80072a0:	b928      	cbnz	r0, 80072ae <VL53L0X_get_pal_range_status+0xf6>
+ 80072a2:	f10d 0211 	add.w	r2, sp, #17
+ 80072a6:	2103      	movs	r1, #3
+ 80072a8:	4620      	mov	r0, r4
+ 80072aa:	f7fd ff3e 	bl	800512a <VL53L0X_GetLimitCheckEnable>
+ 80072ae:	f89d 3011 	ldrb.w	r3, [sp, #17]
+ 80072b2:	b193      	cbz	r3, 80072da <VL53L0X_get_pal_range_status+0x122>
+ 80072b4:	2800      	cmp	r0, #0
+ 80072b6:	d173      	bne.n	80073a0 <VL53L0X_get_pal_range_status+0x1e8>
+ 80072b8:	f1b9 0f00 	cmp.w	r9, #0
+ 80072bc:	d003      	beq.n	80072c6 <VL53L0X_get_pal_range_status+0x10e>
+ 80072be:	9b01      	ldr	r3, [sp, #4]
+ 80072c0:	021b      	lsls	r3, r3, #8
+ 80072c2:	fbb3 f9f9 	udiv	r9, r3, r9
+ 80072c6:	aa08      	add	r2, sp, #32
+ 80072c8:	2103      	movs	r1, #3
+ 80072ca:	4620      	mov	r0, r4
+ 80072cc:	f7fd ff66 	bl	800519c <VL53L0X_GetLimitCheckValue>
+ 80072d0:	9b08      	ldr	r3, [sp, #32]
+ 80072d2:	454b      	cmp	r3, r9
+ 80072d4:	bf94      	ite	ls
+ 80072d6:	2300      	movls	r3, #0
+ 80072d8:	2301      	movhi	r3, #1
+ 80072da:	b920      	cbnz	r0, 80072e6 <VL53L0X_get_pal_range_status+0x12e>
+ 80072dc:	2f01      	cmp	r7, #1
+ 80072de:	d13c      	bne.n	800735a <VL53L0X_get_pal_range_status+0x1a2>
+ 80072e0:	22ff      	movs	r2, #255	; 0xff
+ 80072e2:	f888 2000 	strb.w	r2, [r8]
+ 80072e6:	f898 2000 	ldrb.w	r2, [r8]
+ 80072ea:	b90a      	cbnz	r2, 80072f0 <VL53L0X_get_pal_range_status+0x138>
+ 80072ec:	f8ab 200a 	strh.w	r2, [fp, #10]
+ 80072f0:	f10d 020f 	add.w	r2, sp, #15
+ 80072f4:	2101      	movs	r1, #1
+ 80072f6:	4620      	mov	r0, r4
+ 80072f8:	9301      	str	r3, [sp, #4]
+ 80072fa:	f7fd ff16 	bl	800512a <VL53L0X_GetLimitCheckEnable>
+ 80072fe:	bb08      	cbnz	r0, 8007344 <VL53L0X_get_pal_range_status+0x18c>
+ 8007300:	f89d 200e 	ldrb.w	r2, [sp, #14]
+ 8007304:	9b01      	ldr	r3, [sp, #4]
+ 8007306:	2a00      	cmp	r2, #0
+ 8007308:	bf08      	it	eq
+ 800730a:	2501      	moveq	r5, #1
+ 800730c:	f1ba 0f04 	cmp.w	sl, #4
+ 8007310:	bf18      	it	ne
+ 8007312:	f89d 200f 	ldrbne.w	r2, [sp, #15]
+ 8007316:	f884 502e 	strb.w	r5, [r4, #46]	; 0x2e
+ 800731a:	bf1a      	itte	ne
+ 800731c:	fab2 f282 	clzne	r2, r2
+ 8007320:	0952      	lsrne	r2, r2, #5
+ 8007322:	2201      	moveq	r2, #1
+ 8007324:	f884 202f 	strb.w	r2, [r4, #47]	; 0x2f
+ 8007328:	f89d 2010 	ldrb.w	r2, [sp, #16]
+ 800732c:	2a00      	cmp	r2, #0
+ 800732e:	f89d 2011 	ldrb.w	r2, [sp, #17]
+ 8007332:	bf08      	it	eq
+ 8007334:	2601      	moveq	r6, #1
+ 8007336:	2a00      	cmp	r2, #0
+ 8007338:	bf08      	it	eq
+ 800733a:	2301      	moveq	r3, #1
+ 800733c:	f884 6030 	strb.w	r6, [r4, #48]	; 0x30
+ 8007340:	f884 3031 	strb.w	r3, [r4, #49]	; 0x31
+ 8007344:	b00b      	add	sp, #44	; 0x2c
+ 8007346:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 800734a:	2701      	movs	r7, #1
+ 800734c:	e755      	b.n	80071fa <VL53L0X_get_pal_range_status+0x42>
+ 800734e:	2500      	movs	r5, #0
+ 8007350:	e77e      	b.n	8007250 <VL53L0X_get_pal_range_status+0x98>
+ 8007352:	4635      	mov	r5, r6
+ 8007354:	e77c      	b.n	8007250 <VL53L0X_get_pal_range_status+0x98>
+ 8007356:	2600      	movs	r6, #0
+ 8007358:	e7a9      	b.n	80072ae <VL53L0X_get_pal_range_status+0xf6>
+ 800735a:	f10a 32ff 	add.w	r2, sl, #4294967295
+ 800735e:	2a09      	cmp	r2, #9
+ 8007360:	d80a      	bhi.n	8007378 <VL53L0X_get_pal_range_status+0x1c0>
+ 8007362:	e8df f002 	tbb	[pc, r2]
+ 8007366:	0505      	.short	0x0505
+ 8007368:	07090905 	.word	0x07090905
+ 800736c:	0b070b09 	.word	0x0b070b09
+ 8007370:	2205      	movs	r2, #5
+ 8007372:	e7b6      	b.n	80072e2 <VL53L0X_get_pal_range_status+0x12a>
+ 8007374:	2204      	movs	r2, #4
+ 8007376:	e7b4      	b.n	80072e2 <VL53L0X_get_pal_range_status+0x12a>
+ 8007378:	2e01      	cmp	r6, #1
+ 800737a:	d101      	bne.n	8007380 <VL53L0X_get_pal_range_status+0x1c8>
+ 800737c:	2203      	movs	r2, #3
+ 800737e:	e7b0      	b.n	80072e2 <VL53L0X_get_pal_range_status+0x12a>
+ 8007380:	f1ba 0f04 	cmp.w	sl, #4
+ 8007384:	d001      	beq.n	800738a <VL53L0X_get_pal_range_status+0x1d2>
+ 8007386:	2b01      	cmp	r3, #1
+ 8007388:	d101      	bne.n	800738e <VL53L0X_get_pal_range_status+0x1d6>
+ 800738a:	2202      	movs	r2, #2
+ 800738c:	e7a9      	b.n	80072e2 <VL53L0X_get_pal_range_status+0x12a>
+ 800738e:	2d01      	cmp	r5, #1
+ 8007390:	bf1b      	ittet	ne
+ 8007392:	2300      	movne	r3, #0
+ 8007394:	f888 3000 	strbne.w	r3, [r8]
+ 8007398:	f888 5000 	strbeq.w	r5, [r8]
+ 800739c:	462b      	movne	r3, r5
+ 800739e:	e7a2      	b.n	80072e6 <VL53L0X_get_pal_range_status+0x12e>
+ 80073a0:	2300      	movs	r3, #0
+ 80073a2:	e7a0      	b.n	80072e6 <VL53L0X_get_pal_range_status+0x12e>
+ 80073a4:	080151c2 	.word	0x080151c2
+
+080073a8 <_I2CWrite>:
+ 80073a8:	b507      	push	{r0, r1, r2, lr}
+ 80073aa:	f102 030a 	add.w	r3, r2, #10
+ 80073ae:	9300      	str	r3, [sp, #0]
+ 80073b0:	b293      	uxth	r3, r2
+ 80073b2:	460a      	mov	r2, r1
+ 80073b4:	f890 1160 	ldrb.w	r1, [r0, #352]	; 0x160
+ 80073b8:	f8d0 015c 	ldr.w	r0, [r0, #348]	; 0x15c
+ 80073bc:	f001 fbb2 	bl	8008b24 <HAL_I2C_Master_Transmit>
+ 80073c0:	b003      	add	sp, #12
+ 80073c2:	f85d fb04 	ldr.w	pc, [sp], #4
+
+080073c6 <_I2CRead>:
+ 80073c6:	b513      	push	{r0, r1, r4, lr}
+ 80073c8:	f102 030a 	add.w	r3, r2, #10
+ 80073cc:	f890 4160 	ldrb.w	r4, [r0, #352]	; 0x160
+ 80073d0:	9300      	str	r3, [sp, #0]
+ 80073d2:	f8d0 015c 	ldr.w	r0, [r0, #348]	; 0x15c
+ 80073d6:	b293      	uxth	r3, r2
+ 80073d8:	460a      	mov	r2, r1
+ 80073da:	f044 0101 	orr.w	r1, r4, #1
+ 80073de:	f001 fc37 	bl	8008c50 <HAL_I2C_Master_Receive>
+ 80073e2:	b002      	add	sp, #8
+ 80073e4:	bd10      	pop	{r4, pc}
+	...
+
+080073e8 <VL53L0X_WriteMulti>:
+ 80073e8:	2b3f      	cmp	r3, #63	; 0x3f
+ 80073ea:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 80073ec:	460e      	mov	r6, r1
+ 80073ee:	4605      	mov	r5, r0
+ 80073f0:	4611      	mov	r1, r2
+ 80073f2:	461c      	mov	r4, r3
+ 80073f4:	d811      	bhi.n	800741a <VL53L0X_WriteMulti+0x32>
+ 80073f6:	4f0a      	ldr	r7, [pc, #40]	; (8007420 <VL53L0X_WriteMulti+0x38>)
+ 80073f8:	4638      	mov	r0, r7
+ 80073fa:	461a      	mov	r2, r3
+ 80073fc:	f800 6b01 	strb.w	r6, [r0], #1
+ 8007400:	f00d f833 	bl	801446a <memcpy>
+ 8007404:	1c62      	adds	r2, r4, #1
+ 8007406:	4639      	mov	r1, r7
+ 8007408:	4628      	mov	r0, r5
+ 800740a:	f7ff ffcd 	bl	80073a8 <_I2CWrite>
+ 800740e:	2800      	cmp	r0, #0
+ 8007410:	bf0c      	ite	eq
+ 8007412:	2000      	moveq	r0, #0
+ 8007414:	f06f 0013 	mvnne.w	r0, #19
+ 8007418:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 800741a:	f06f 0003 	mvn.w	r0, #3
+ 800741e:	e7fb      	b.n	8007418 <VL53L0X_WriteMulti+0x30>
+ 8007420:	20000f04 	.word	0x20000f04
+
+08007424 <VL53L0X_ReadMulti>:
+ 8007424:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 8007426:	4615      	mov	r5, r2
+ 8007428:	f88d 1007 	strb.w	r1, [sp, #7]
+ 800742c:	2201      	movs	r2, #1
+ 800742e:	f10d 0107 	add.w	r1, sp, #7
+ 8007432:	4604      	mov	r4, r0
+ 8007434:	461e      	mov	r6, r3
+ 8007436:	f7ff ffb7 	bl	80073a8 <_I2CWrite>
+ 800743a:	b928      	cbnz	r0, 8007448 <VL53L0X_ReadMulti+0x24>
+ 800743c:	4632      	mov	r2, r6
+ 800743e:	4629      	mov	r1, r5
+ 8007440:	4620      	mov	r0, r4
+ 8007442:	f7ff ffc0 	bl	80073c6 <_I2CRead>
+ 8007446:	b108      	cbz	r0, 800744c <VL53L0X_ReadMulti+0x28>
+ 8007448:	f06f 0013 	mvn.w	r0, #19
+ 800744c:	b002      	add	sp, #8
+ 800744e:	bd70      	pop	{r4, r5, r6, pc}
+
+08007450 <VL53L0X_WrByte>:
+ 8007450:	b508      	push	{r3, lr}
+ 8007452:	4b06      	ldr	r3, [pc, #24]	; (800746c <VL53L0X_WrByte+0x1c>)
+ 8007454:	7019      	strb	r1, [r3, #0]
+ 8007456:	705a      	strb	r2, [r3, #1]
+ 8007458:	4619      	mov	r1, r3
+ 800745a:	2202      	movs	r2, #2
+ 800745c:	f7ff ffa4 	bl	80073a8 <_I2CWrite>
+ 8007460:	2800      	cmp	r0, #0
+ 8007462:	bf14      	ite	ne
+ 8007464:	f06f 0013 	mvnne.w	r0, #19
+ 8007468:	2000      	moveq	r0, #0
+ 800746a:	bd08      	pop	{r3, pc}
+ 800746c:	20000f04 	.word	0x20000f04
+
+08007470 <VL53L0X_WrWord>:
+ 8007470:	b508      	push	{r3, lr}
+ 8007472:	4b07      	ldr	r3, [pc, #28]	; (8007490 <VL53L0X_WrWord+0x20>)
+ 8007474:	7019      	strb	r1, [r3, #0]
+ 8007476:	0a11      	lsrs	r1, r2, #8
+ 8007478:	7059      	strb	r1, [r3, #1]
+ 800747a:	709a      	strb	r2, [r3, #2]
+ 800747c:	4619      	mov	r1, r3
+ 800747e:	2203      	movs	r2, #3
+ 8007480:	f7ff ff92 	bl	80073a8 <_I2CWrite>
+ 8007484:	2800      	cmp	r0, #0
+ 8007486:	bf14      	ite	ne
+ 8007488:	f06f 0013 	mvnne.w	r0, #19
+ 800748c:	2000      	moveq	r0, #0
+ 800748e:	bd08      	pop	{r3, pc}
+ 8007490:	20000f04 	.word	0x20000f04
+
+08007494 <VL53L0X_RdByte>:
+ 8007494:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 8007496:	4615      	mov	r5, r2
+ 8007498:	f88d 1007 	strb.w	r1, [sp, #7]
+ 800749c:	2201      	movs	r2, #1
+ 800749e:	f10d 0107 	add.w	r1, sp, #7
+ 80074a2:	4604      	mov	r4, r0
+ 80074a4:	f7ff ff80 	bl	80073a8 <_I2CWrite>
+ 80074a8:	b928      	cbnz	r0, 80074b6 <VL53L0X_RdByte+0x22>
+ 80074aa:	2201      	movs	r2, #1
+ 80074ac:	4629      	mov	r1, r5
+ 80074ae:	4620      	mov	r0, r4
+ 80074b0:	f7ff ff89 	bl	80073c6 <_I2CRead>
+ 80074b4:	b108      	cbz	r0, 80074ba <VL53L0X_RdByte+0x26>
+ 80074b6:	f06f 0013 	mvn.w	r0, #19
+ 80074ba:	b003      	add	sp, #12
+ 80074bc:	bd30      	pop	{r4, r5, pc}
+
+080074be <VL53L0X_UpdateByte>:
+ 80074be:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
+ 80074c0:	4615      	mov	r5, r2
+ 80074c2:	f10d 0207 	add.w	r2, sp, #7
+ 80074c6:	4606      	mov	r6, r0
+ 80074c8:	460f      	mov	r7, r1
+ 80074ca:	461c      	mov	r4, r3
+ 80074cc:	f7ff ffe2 	bl	8007494 <VL53L0X_RdByte>
+ 80074d0:	b950      	cbnz	r0, 80074e8 <VL53L0X_UpdateByte+0x2a>
+ 80074d2:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 80074d6:	401d      	ands	r5, r3
+ 80074d8:	ea44 0205 	orr.w	r2, r4, r5
+ 80074dc:	4639      	mov	r1, r7
+ 80074de:	4630      	mov	r0, r6
+ 80074e0:	f88d 2007 	strb.w	r2, [sp, #7]
+ 80074e4:	f7ff ffb4 	bl	8007450 <VL53L0X_WrByte>
+ 80074e8:	b003      	add	sp, #12
+ 80074ea:	bdf0      	pop	{r4, r5, r6, r7, pc}
+
+080074ec <VL53L0X_RdWord>:
+ 80074ec:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 80074ee:	4614      	mov	r4, r2
+ 80074f0:	f88d 1007 	strb.w	r1, [sp, #7]
+ 80074f4:	2201      	movs	r2, #1
+ 80074f6:	f10d 0107 	add.w	r1, sp, #7
+ 80074fa:	4606      	mov	r6, r0
+ 80074fc:	f7ff ff54 	bl	80073a8 <_I2CWrite>
+ 8007500:	b118      	cbz	r0, 800750a <VL53L0X_RdWord+0x1e>
+ 8007502:	f06f 0013 	mvn.w	r0, #19
+ 8007506:	b002      	add	sp, #8
+ 8007508:	bd70      	pop	{r4, r5, r6, pc}
+ 800750a:	4d07      	ldr	r5, [pc, #28]	; (8007528 <VL53L0X_RdWord+0x3c>)
+ 800750c:	2202      	movs	r2, #2
+ 800750e:	4629      	mov	r1, r5
+ 8007510:	4630      	mov	r0, r6
+ 8007512:	f7ff ff58 	bl	80073c6 <_I2CRead>
+ 8007516:	2800      	cmp	r0, #0
+ 8007518:	d1f3      	bne.n	8007502 <VL53L0X_RdWord+0x16>
+ 800751a:	782a      	ldrb	r2, [r5, #0]
+ 800751c:	786b      	ldrb	r3, [r5, #1]
+ 800751e:	eb03 2302 	add.w	r3, r3, r2, lsl #8
+ 8007522:	8023      	strh	r3, [r4, #0]
+ 8007524:	e7ef      	b.n	8007506 <VL53L0X_RdWord+0x1a>
+ 8007526:	bf00      	nop
+ 8007528:	20000f04 	.word	0x20000f04
+
+0800752c <VL53L0X_RdDWord>:
+ 800752c:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 800752e:	4614      	mov	r4, r2
+ 8007530:	f88d 1007 	strb.w	r1, [sp, #7]
+ 8007534:	2201      	movs	r2, #1
+ 8007536:	f10d 0107 	add.w	r1, sp, #7
+ 800753a:	4606      	mov	r6, r0
+ 800753c:	f7ff ff34 	bl	80073a8 <_I2CWrite>
+ 8007540:	b118      	cbz	r0, 800754a <VL53L0X_RdDWord+0x1e>
+ 8007542:	f06f 0013 	mvn.w	r0, #19
+ 8007546:	b002      	add	sp, #8
+ 8007548:	bd70      	pop	{r4, r5, r6, pc}
+ 800754a:	4d0a      	ldr	r5, [pc, #40]	; (8007574 <VL53L0X_RdDWord+0x48>)
+ 800754c:	2204      	movs	r2, #4
+ 800754e:	4629      	mov	r1, r5
+ 8007550:	4630      	mov	r0, r6
+ 8007552:	f7ff ff38 	bl	80073c6 <_I2CRead>
+ 8007556:	2800      	cmp	r0, #0
+ 8007558:	d1f3      	bne.n	8007542 <VL53L0X_RdDWord+0x16>
+ 800755a:	786b      	ldrb	r3, [r5, #1]
+ 800755c:	782a      	ldrb	r2, [r5, #0]
+ 800755e:	041b      	lsls	r3, r3, #16
+ 8007560:	eb03 6302 	add.w	r3, r3, r2, lsl #24
+ 8007564:	78ea      	ldrb	r2, [r5, #3]
+ 8007566:	4413      	add	r3, r2
+ 8007568:	78aa      	ldrb	r2, [r5, #2]
+ 800756a:	eb03 2302 	add.w	r3, r3, r2, lsl #8
+ 800756e:	6023      	str	r3, [r4, #0]
+ 8007570:	e7e9      	b.n	8007546 <VL53L0X_RdDWord+0x1a>
+ 8007572:	bf00      	nop
+ 8007574:	20000f04 	.word	0x20000f04
+
+08007578 <VL53L0X_PollingDelay>:
+ 8007578:	b508      	push	{r3, lr}
+ 800757a:	2002      	movs	r0, #2
+ 800757c:	f7fb fb10 	bl	8002ba0 <HAL_Delay>
+ 8007580:	2000      	movs	r0, #0
+ 8007582:	bd08      	pop	{r3, pc}
+
+08007584 <SystemInit>:
+ 8007584:	4770      	bx	lr
+	...
+
+08007588 <HAL_Init>:
+ 8007588:	b510      	push	{r4, lr}
+ 800758a:	2003      	movs	r0, #3
+ 800758c:	f000 fc72 	bl	8007e74 <HAL_NVIC_SetPriorityGrouping>
+ 8007590:	f001 fdaa 	bl	80090e8 <HAL_RCC_GetHCLKFreq>
+ 8007594:	4b06      	ldr	r3, [pc, #24]	; (80075b0 <HAL_Init+0x28>)
+ 8007596:	6018      	str	r0, [r3, #0]
+ 8007598:	200f      	movs	r0, #15
+ 800759a:	f7fb faf7 	bl	8002b8c <HAL_InitTick>
+ 800759e:	4604      	mov	r4, r0
+ 80075a0:	b918      	cbnz	r0, 80075aa <HAL_Init+0x22>
+ 80075a2:	f7fb f944 	bl	800282e <HAL_MspInit>
+ 80075a6:	4620      	mov	r0, r4
+ 80075a8:	bd10      	pop	{r4, pc}
+ 80075aa:	2401      	movs	r4, #1
+ 80075ac:	e7fb      	b.n	80075a6 <HAL_Init+0x1e>
+ 80075ae:	bf00      	nop
+ 80075b0:	20000828 	.word	0x20000828
+
+080075b4 <HAL_SuspendTick>:
+ 80075b4:	f04f 22e0 	mov.w	r2, #3758153728	; 0xe000e000
+ 80075b8:	6913      	ldr	r3, [r2, #16]
+ 80075ba:	f023 0302 	bic.w	r3, r3, #2
+ 80075be:	6113      	str	r3, [r2, #16]
+ 80075c0:	4770      	bx	lr
+
+080075c2 <HAL_ResumeTick>:
+ 80075c2:	f04f 22e0 	mov.w	r2, #3758153728	; 0xe000e000
+ 80075c6:	6913      	ldr	r3, [r2, #16]
+ 80075c8:	f043 0302 	orr.w	r3, r3, #2
+ 80075cc:	6113      	str	r3, [r2, #16]
+ 80075ce:	4770      	bx	lr
+
+080075d0 <HAL_GetUIDw0>:
+ 80075d0:	4b01      	ldr	r3, [pc, #4]	; (80075d8 <HAL_GetUIDw0+0x8>)
+ 80075d2:	f8d3 0590 	ldr.w	r0, [r3, #1424]	; 0x590
+ 80075d6:	4770      	bx	lr
+ 80075d8:	1fff7000 	.word	0x1fff7000
+
+080075dc <HAL_GetUIDw1>:
+ 80075dc:	4b01      	ldr	r3, [pc, #4]	; (80075e4 <HAL_GetUIDw1+0x8>)
+ 80075de:	f8d3 0594 	ldr.w	r0, [r3, #1428]	; 0x594
+ 80075e2:	4770      	bx	lr
+ 80075e4:	1fff7000 	.word	0x1fff7000
+
+080075e8 <HAL_GetUIDw2>:
+ 80075e8:	4b01      	ldr	r3, [pc, #4]	; (80075f0 <HAL_GetUIDw2+0x8>)
+ 80075ea:	f8d3 0598 	ldr.w	r0, [r3, #1432]	; 0x598
+ 80075ee:	4770      	bx	lr
+ 80075f0:	1fff7000 	.word	0x1fff7000
+
+080075f4 <HAL_DBGMCU_EnableDBGSleepMode>:
+ 80075f4:	4a02      	ldr	r2, [pc, #8]	; (8007600 <HAL_DBGMCU_EnableDBGSleepMode+0xc>)
+ 80075f6:	6853      	ldr	r3, [r2, #4]
+ 80075f8:	f043 0301 	orr.w	r3, r3, #1
+ 80075fc:	6053      	str	r3, [r2, #4]
+ 80075fe:	4770      	bx	lr
+ 8007600:	e0042000 	.word	0xe0042000
+
+08007604 <HAL_DBGMCU_EnableDBGStopMode>:
+ 8007604:	4a02      	ldr	r2, [pc, #8]	; (8007610 <HAL_DBGMCU_EnableDBGStopMode+0xc>)
+ 8007606:	6853      	ldr	r3, [r2, #4]
+ 8007608:	f043 0302 	orr.w	r3, r3, #2
+ 800760c:	6053      	str	r3, [r2, #4]
+ 800760e:	4770      	bx	lr
+ 8007610:	e0042000 	.word	0xe0042000
+
+08007614 <HAL_DBGMCU_EnableDBGStandbyMode>:
+ 8007614:	4a02      	ldr	r2, [pc, #8]	; (8007620 <HAL_DBGMCU_EnableDBGStandbyMode+0xc>)
+ 8007616:	6853      	ldr	r3, [r2, #4]
+ 8007618:	f043 0304 	orr.w	r3, r3, #4
+ 800761c:	6053      	str	r3, [r2, #4]
+ 800761e:	4770      	bx	lr
+ 8007620:	e0042000 	.word	0xe0042000
+
+08007624 <LL_ADC_REG_IsConversionOngoing>:
+ 8007624:	6880      	ldr	r0, [r0, #8]
+ 8007626:	f3c0 0080 	ubfx	r0, r0, #2, #1
+ 800762a:	4770      	bx	lr
+
+0800762c <HAL_ADC_Init>:
+ 800762c:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
+ 800762e:	2300      	movs	r3, #0
+ 8007630:	9301      	str	r3, [sp, #4]
+ 8007632:	4604      	mov	r4, r0
+ 8007634:	2800      	cmp	r0, #0
+ 8007636:	f000 80e9 	beq.w	800780c <HAL_ADC_Init+0x1e0>
+ 800763a:	6d85      	ldr	r5, [r0, #88]	; 0x58
+ 800763c:	b925      	cbnz	r5, 8007648 <HAL_ADC_Init+0x1c>
+ 800763e:	f7fa fc11 	bl	8001e64 <HAL_ADC_MspInit>
+ 8007642:	65e5      	str	r5, [r4, #92]	; 0x5c
+ 8007644:	f884 5054 	strb.w	r5, [r4, #84]	; 0x54
+ 8007648:	6823      	ldr	r3, [r4, #0]
+ 800764a:	689a      	ldr	r2, [r3, #8]
+ 800764c:	00d0      	lsls	r0, r2, #3
+ 800764e:	f140 80a1 	bpl.w	8007794 <HAL_ADC_Init+0x168>
+ 8007652:	689a      	ldr	r2, [r3, #8]
+ 8007654:	00d1      	lsls	r1, r2, #3
+ 8007656:	f100 80b4 	bmi.w	80077c2 <HAL_ADC_Init+0x196>
+ 800765a:	6da2      	ldr	r2, [r4, #88]	; 0x58
+ 800765c:	f042 0210 	orr.w	r2, r2, #16
+ 8007660:	65a2      	str	r2, [r4, #88]	; 0x58
+ 8007662:	6de2      	ldr	r2, [r4, #92]	; 0x5c
+ 8007664:	f042 0201 	orr.w	r2, r2, #1
+ 8007668:	65e2      	str	r2, [r4, #92]	; 0x5c
+ 800766a:	2501      	movs	r5, #1
+ 800766c:	4618      	mov	r0, r3
+ 800766e:	f7ff ffd9 	bl	8007624 <LL_ADC_REG_IsConversionOngoing>
+ 8007672:	6da2      	ldr	r2, [r4, #88]	; 0x58
+ 8007674:	f002 0210 	and.w	r2, r2, #16
+ 8007678:	4302      	orrs	r2, r0
+ 800767a:	f040 80c9 	bne.w	8007810 <HAL_ADC_Init+0x1e4>
+ 800767e:	6da2      	ldr	r2, [r4, #88]	; 0x58
+ 8007680:	6920      	ldr	r0, [r4, #16]
+ 8007682:	f422 7281 	bic.w	r2, r2, #258	; 0x102
+ 8007686:	f042 0202 	orr.w	r2, r2, #2
+ 800768a:	65a2      	str	r2, [r4, #88]	; 0x58
+ 800768c:	689a      	ldr	r2, [r3, #8]
+ 800768e:	07d2      	lsls	r2, r2, #31
+ 8007690:	d45d      	bmi.n	800774e <HAL_ADC_Init+0x122>
+ 8007692:	6b22      	ldr	r2, [r4, #48]	; 0x30
+ 8007694:	7ea6      	ldrb	r6, [r4, #26]
+ 8007696:	f894 c02c 	ldrb.w	ip, [r4, #44]	; 0x2c
+ 800769a:	3a00      	subs	r2, #0
+ 800769c:	bf18      	it	ne
+ 800769e:	2201      	movne	r2, #1
+ 80076a0:	0317      	lsls	r7, r2, #12
+ 80076a2:	e9d4 1202 	ldrd	r1, r2, [r4, #8]
+ 80076a6:	430a      	orrs	r2, r1
+ 80076a8:	7e21      	ldrb	r1, [r4, #24]
+ 80076aa:	ea42 3281 	orr.w	r2, r2, r1, lsl #14
+ 80076ae:	7e61      	ldrb	r1, [r4, #25]
+ 80076b0:	ea42 32c1 	orr.w	r2, r2, r1, lsl #15
+ 80076b4:	ea42 3246 	orr.w	r2, r2, r6, lsl #13
+ 80076b8:	2800      	cmp	r0, #0
+ 80076ba:	ea42 024c 	orr.w	r2, r2, ip, lsl #1
+ 80076be:	bfb4      	ite	lt
+ 80076c0:	f020 4100 	biclt.w	r1, r0, #2147483648	; 0x80000000
+ 80076c4:	f44f 1100 	movge.w	r1, #2097152	; 0x200000
+ 80076c8:	433a      	orrs	r2, r7
+ 80076ca:	430a      	orrs	r2, r1
+ 80076cc:	f894 1020 	ldrb.w	r1, [r4, #32]
+ 80076d0:	2901      	cmp	r1, #1
+ 80076d2:	d103      	bne.n	80076dc <HAL_ADC_Init+0xb0>
+ 80076d4:	2e00      	cmp	r6, #0
+ 80076d6:	d176      	bne.n	80077c6 <HAL_ADC_Init+0x19a>
+ 80076d8:	f442 3280 	orr.w	r2, r2, #65536	; 0x10000
+ 80076dc:	6a61      	ldr	r1, [r4, #36]	; 0x24
+ 80076de:	b121      	cbz	r1, 80076ea <HAL_ADC_Init+0xbe>
+ 80076e0:	6aa6      	ldr	r6, [r4, #40]	; 0x28
+ 80076e2:	f401 71e0 	and.w	r1, r1, #448	; 0x1c0
+ 80076e6:	4331      	orrs	r1, r6
+ 80076e8:	430a      	orrs	r2, r1
+ 80076ea:	68d9      	ldr	r1, [r3, #12]
+ 80076ec:	6ce6      	ldr	r6, [r4, #76]	; 0x4c
+ 80076ee:	f421 31fe 	bic.w	r1, r1, #130048	; 0x1fc00
+ 80076f2:	f421 71ff 	bic.w	r1, r1, #510	; 0x1fe
+ 80076f6:	4311      	orrs	r1, r2
+ 80076f8:	60d9      	str	r1, [r3, #12]
+ 80076fa:	f894 203c 	ldrb.w	r2, [r4, #60]	; 0x3c
+ 80076fe:	6861      	ldr	r1, [r4, #4]
+ 8007700:	2a01      	cmp	r2, #1
+ 8007702:	f001 4c40 	and.w	ip, r1, #3221225472	; 0xc0000000
+ 8007706:	ea4c 0606 	orr.w	r6, ip, r6
+ 800770a:	d109      	bne.n	8007720 <HAL_ADC_Init+0xf4>
+ 800770c:	e9d4 2710 	ldrd	r2, r7, [r4, #64]	; 0x40
+ 8007710:	433a      	orrs	r2, r7
+ 8007712:	4332      	orrs	r2, r6
+ 8007714:	6ca6      	ldr	r6, [r4, #72]	; 0x48
+ 8007716:	4332      	orrs	r2, r6
+ 8007718:	ea42 020c 	orr.w	r2, r2, ip
+ 800771c:	f042 0601 	orr.w	r6, r2, #1
+ 8007720:	691f      	ldr	r7, [r3, #16]
+ 8007722:	4a3e      	ldr	r2, [pc, #248]	; (800781c <HAL_ADC_Init+0x1f0>)
+ 8007724:	403a      	ands	r2, r7
+ 8007726:	4332      	orrs	r2, r6
+ 8007728:	611a      	str	r2, [r3, #16]
+ 800772a:	f021 4200 	bic.w	r2, r1, #2147483648	; 0x80000000
+ 800772e:	f1b2 4f80 	cmp.w	r2, #1073741824	; 0x40000000
+ 8007732:	d00c      	beq.n	800774e <HAL_ADC_Init+0x122>
+ 8007734:	f1b1 4f00 	cmp.w	r1, #2147483648	; 0x80000000
+ 8007738:	d009      	beq.n	800774e <HAL_ADC_Init+0x122>
+ 800773a:	4e39      	ldr	r6, [pc, #228]	; (8007820 <HAL_ADC_Init+0x1f4>)
+ 800773c:	f8d6 2708 	ldr.w	r2, [r6, #1800]	; 0x708
+ 8007740:	f401 1170 	and.w	r1, r1, #3932160	; 0x3c0000
+ 8007744:	f422 1270 	bic.w	r2, r2, #3932160	; 0x3c0000
+ 8007748:	430a      	orrs	r2, r1
+ 800774a:	f8c6 2708 	str.w	r2, [r6, #1800]	; 0x708
+ 800774e:	695a      	ldr	r2, [r3, #20]
+ 8007750:	6b66      	ldr	r6, [r4, #52]	; 0x34
+ 8007752:	6ba1      	ldr	r1, [r4, #56]	; 0x38
+ 8007754:	f022 0207 	bic.w	r2, r2, #7
+ 8007758:	4332      	orrs	r2, r6
+ 800775a:	615a      	str	r2, [r3, #20]
+ 800775c:	695a      	ldr	r2, [r3, #20]
+ 800775e:	f022 0270 	bic.w	r2, r2, #112	; 0x70
+ 8007762:	ea42 1201 	orr.w	r2, r2, r1, lsl #4
+ 8007766:	615a      	str	r2, [r3, #20]
+ 8007768:	2800      	cmp	r0, #0
+ 800776a:	d135      	bne.n	80077d8 <HAL_ADC_Init+0x1ac>
+ 800776c:	6a9a      	ldr	r2, [r3, #40]	; 0x28
+ 800776e:	f062 020f 	orn	r2, r2, #15
+ 8007772:	629a      	str	r2, [r3, #40]	; 0x28
+ 8007774:	695b      	ldr	r3, [r3, #20]
+ 8007776:	f003 0307 	and.w	r3, r3, #7
+ 800777a:	429e      	cmp	r6, r3
+ 800777c:	d13c      	bne.n	80077f8 <HAL_ADC_Init+0x1cc>
+ 800777e:	2300      	movs	r3, #0
+ 8007780:	65e3      	str	r3, [r4, #92]	; 0x5c
+ 8007782:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8007784:	f023 0303 	bic.w	r3, r3, #3
+ 8007788:	f043 0301 	orr.w	r3, r3, #1
+ 800778c:	65a3      	str	r3, [r4, #88]	; 0x58
+ 800778e:	4628      	mov	r0, r5
+ 8007790:	b003      	add	sp, #12
+ 8007792:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8007794:	689a      	ldr	r2, [r3, #8]
+ 8007796:	4923      	ldr	r1, [pc, #140]	; (8007824 <HAL_ADC_Init+0x1f8>)
+ 8007798:	f022 4210 	bic.w	r2, r2, #2415919104	; 0x90000000
+ 800779c:	f022 0217 	bic.w	r2, r2, #23
+ 80077a0:	f042 5280 	orr.w	r2, r2, #268435456	; 0x10000000
+ 80077a4:	609a      	str	r2, [r3, #8]
+ 80077a6:	4a20      	ldr	r2, [pc, #128]	; (8007828 <HAL_ADC_Init+0x1fc>)
+ 80077a8:	6812      	ldr	r2, [r2, #0]
+ 80077aa:	fbb2 f2f1 	udiv	r2, r2, r1
+ 80077ae:	3201      	adds	r2, #1
+ 80077b0:	0052      	lsls	r2, r2, #1
+ 80077b2:	9201      	str	r2, [sp, #4]
+ 80077b4:	9a01      	ldr	r2, [sp, #4]
+ 80077b6:	2a00      	cmp	r2, #0
+ 80077b8:	f43f af4b 	beq.w	8007652 <HAL_ADC_Init+0x26>
+ 80077bc:	9a01      	ldr	r2, [sp, #4]
+ 80077be:	3a01      	subs	r2, #1
+ 80077c0:	e7f7      	b.n	80077b2 <HAL_ADC_Init+0x186>
+ 80077c2:	2500      	movs	r5, #0
+ 80077c4:	e752      	b.n	800766c <HAL_ADC_Init+0x40>
+ 80077c6:	6da1      	ldr	r1, [r4, #88]	; 0x58
+ 80077c8:	f041 0120 	orr.w	r1, r1, #32
+ 80077cc:	65a1      	str	r1, [r4, #88]	; 0x58
+ 80077ce:	6de1      	ldr	r1, [r4, #92]	; 0x5c
+ 80077d0:	f041 0101 	orr.w	r1, r1, #1
+ 80077d4:	65e1      	str	r1, [r4, #92]	; 0x5c
+ 80077d6:	e781      	b.n	80076dc <HAL_ADC_Init+0xb0>
+ 80077d8:	f5b0 1f00 	cmp.w	r0, #2097152	; 0x200000
+ 80077dc:	d1ca      	bne.n	8007774 <HAL_ADC_Init+0x148>
+ 80077de:	6a9a      	ldr	r2, [r3, #40]	; 0x28
+ 80077e0:	69e2      	ldr	r2, [r4, #28]
+ 80077e2:	3a01      	subs	r2, #1
+ 80077e4:	0092      	lsls	r2, r2, #2
+ 80077e6:	f06f 010f 	mvn.w	r1, #15
+ 80077ea:	f002 021c 	and.w	r2, r2, #28
+ 80077ee:	fa01 f202 	lsl.w	r2, r1, r2
+ 80077f2:	6e21      	ldr	r1, [r4, #96]	; 0x60
+ 80077f4:	430a      	orrs	r2, r1
+ 80077f6:	e7bc      	b.n	8007772 <HAL_ADC_Init+0x146>
+ 80077f8:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 80077fa:	f023 0312 	bic.w	r3, r3, #18
+ 80077fe:	f043 0310 	orr.w	r3, r3, #16
+ 8007802:	65a3      	str	r3, [r4, #88]	; 0x58
+ 8007804:	6de3      	ldr	r3, [r4, #92]	; 0x5c
+ 8007806:	f043 0301 	orr.w	r3, r3, #1
+ 800780a:	65e3      	str	r3, [r4, #92]	; 0x5c
+ 800780c:	2501      	movs	r5, #1
+ 800780e:	e7be      	b.n	800778e <HAL_ADC_Init+0x162>
+ 8007810:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8007812:	f043 0310 	orr.w	r3, r3, #16
+ 8007816:	65a3      	str	r3, [r4, #88]	; 0x58
+ 8007818:	e7f8      	b.n	800780c <HAL_ADC_Init+0x1e0>
+ 800781a:	bf00      	nop
+ 800781c:	1ffffc02 	.word	0x1ffffc02
+ 8007820:	40012000 	.word	0x40012000
+ 8007824:	00030d40 	.word	0x00030d40
+ 8007828:	20000828 	.word	0x20000828
+
+0800782c <HAL_ADC_PollForConversion>:
+ 800782c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 800782e:	6945      	ldr	r5, [r0, #20]
+ 8007830:	2d08      	cmp	r5, #8
+ 8007832:	4604      	mov	r4, r0
+ 8007834:	460e      	mov	r6, r1
+ 8007836:	d00a      	beq.n	800784e <HAL_ADC_PollForConversion+0x22>
+ 8007838:	6803      	ldr	r3, [r0, #0]
+ 800783a:	68db      	ldr	r3, [r3, #12]
+ 800783c:	07d8      	lsls	r0, r3, #31
+ 800783e:	d505      	bpl.n	800784c <HAL_ADC_PollForConversion+0x20>
+ 8007840:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8007842:	f043 0320 	orr.w	r3, r3, #32
+ 8007846:	65a3      	str	r3, [r4, #88]	; 0x58
+ 8007848:	2001      	movs	r0, #1
+ 800784a:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 800784c:	2504      	movs	r5, #4
+ 800784e:	f7fb f99f 	bl	8002b90 <HAL_GetTick>
+ 8007852:	4607      	mov	r7, r0
+ 8007854:	6823      	ldr	r3, [r4, #0]
+ 8007856:	681a      	ldr	r2, [r3, #0]
+ 8007858:	422a      	tst	r2, r5
+ 800785a:	d021      	beq.n	80078a0 <HAL_ADC_PollForConversion+0x74>
+ 800785c:	6da2      	ldr	r2, [r4, #88]	; 0x58
+ 800785e:	f442 7200 	orr.w	r2, r2, #512	; 0x200
+ 8007862:	65a2      	str	r2, [r4, #88]	; 0x58
+ 8007864:	68da      	ldr	r2, [r3, #12]
+ 8007866:	f412 6f40 	tst.w	r2, #3072	; 0xc00
+ 800786a:	d114      	bne.n	8007896 <HAL_ADC_PollForConversion+0x6a>
+ 800786c:	7ea2      	ldrb	r2, [r4, #26]
+ 800786e:	b992      	cbnz	r2, 8007896 <HAL_ADC_PollForConversion+0x6a>
+ 8007870:	681a      	ldr	r2, [r3, #0]
+ 8007872:	0712      	lsls	r2, r2, #28
+ 8007874:	d50f      	bpl.n	8007896 <HAL_ADC_PollForConversion+0x6a>
+ 8007876:	4618      	mov	r0, r3
+ 8007878:	f7ff fed4 	bl	8007624 <LL_ADC_REG_IsConversionOngoing>
+ 800787c:	bb28      	cbnz	r0, 80078ca <HAL_ADC_PollForConversion+0x9e>
+ 800787e:	685a      	ldr	r2, [r3, #4]
+ 8007880:	f022 020c 	bic.w	r2, r2, #12
+ 8007884:	605a      	str	r2, [r3, #4]
+ 8007886:	6da2      	ldr	r2, [r4, #88]	; 0x58
+ 8007888:	f422 7280 	bic.w	r2, r2, #256	; 0x100
+ 800788c:	f022 0201 	bic.w	r2, r2, #1
+ 8007890:	f042 0201 	orr.w	r2, r2, #1
+ 8007894:	65a2      	str	r2, [r4, #88]	; 0x58
+ 8007896:	7e20      	ldrb	r0, [r4, #24]
+ 8007898:	bb00      	cbnz	r0, 80078dc <HAL_ADC_PollForConversion+0xb0>
+ 800789a:	220c      	movs	r2, #12
+ 800789c:	601a      	str	r2, [r3, #0]
+ 800789e:	e7d4      	b.n	800784a <HAL_ADC_PollForConversion+0x1e>
+ 80078a0:	1c71      	adds	r1, r6, #1
+ 80078a2:	d0d8      	beq.n	8007856 <HAL_ADC_PollForConversion+0x2a>
+ 80078a4:	f7fb f974 	bl	8002b90 <HAL_GetTick>
+ 80078a8:	1bc0      	subs	r0, r0, r7
+ 80078aa:	42b0      	cmp	r0, r6
+ 80078ac:	d801      	bhi.n	80078b2 <HAL_ADC_PollForConversion+0x86>
+ 80078ae:	2e00      	cmp	r6, #0
+ 80078b0:	d1d0      	bne.n	8007854 <HAL_ADC_PollForConversion+0x28>
+ 80078b2:	6823      	ldr	r3, [r4, #0]
+ 80078b4:	681b      	ldr	r3, [r3, #0]
+ 80078b6:	402b      	ands	r3, r5
+ 80078b8:	d1cc      	bne.n	8007854 <HAL_ADC_PollForConversion+0x28>
+ 80078ba:	6da2      	ldr	r2, [r4, #88]	; 0x58
+ 80078bc:	f884 3054 	strb.w	r3, [r4, #84]	; 0x54
+ 80078c0:	f042 0204 	orr.w	r2, r2, #4
+ 80078c4:	65a2      	str	r2, [r4, #88]	; 0x58
+ 80078c6:	2003      	movs	r0, #3
+ 80078c8:	e7bf      	b.n	800784a <HAL_ADC_PollForConversion+0x1e>
+ 80078ca:	6da2      	ldr	r2, [r4, #88]	; 0x58
+ 80078cc:	f042 0220 	orr.w	r2, r2, #32
+ 80078d0:	65a2      	str	r2, [r4, #88]	; 0x58
+ 80078d2:	6de2      	ldr	r2, [r4, #92]	; 0x5c
+ 80078d4:	f042 0201 	orr.w	r2, r2, #1
+ 80078d8:	65e2      	str	r2, [r4, #92]	; 0x5c
+ 80078da:	e7dc      	b.n	8007896 <HAL_ADC_PollForConversion+0x6a>
+ 80078dc:	2000      	movs	r0, #0
+ 80078de:	e7b4      	b.n	800784a <HAL_ADC_PollForConversion+0x1e>
+
+080078e0 <HAL_ADC_GetValue>:
+ 80078e0:	6803      	ldr	r3, [r0, #0]
+ 80078e2:	6c18      	ldr	r0, [r3, #64]	; 0x40
+ 80078e4:	4770      	bx	lr
+	...
+
+080078e8 <HAL_ADC_ConfigChannel>:
+ 80078e8:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
+ 80078ea:	2300      	movs	r3, #0
+ 80078ec:	9301      	str	r3, [sp, #4]
+ 80078ee:	f890 3054 	ldrb.w	r3, [r0, #84]	; 0x54
+ 80078f2:	2b01      	cmp	r3, #1
+ 80078f4:	4604      	mov	r4, r0
+ 80078f6:	f000 80c5 	beq.w	8007a84 <HAL_ADC_ConfigChannel+0x19c>
+ 80078fa:	6805      	ldr	r5, [r0, #0]
+ 80078fc:	6906      	ldr	r6, [r0, #16]
+ 80078fe:	2301      	movs	r3, #1
+ 8007900:	f880 3054 	strb.w	r3, [r0, #84]	; 0x54
+ 8007904:	4628      	mov	r0, r5
+ 8007906:	f7ff fe8d 	bl	8007624 <LL_ADC_REG_IsConversionOngoing>
+ 800790a:	2800      	cmp	r0, #0
+ 800790c:	f040 80b4 	bne.w	8007a78 <HAL_ADC_ConfigChannel+0x190>
+ 8007910:	e9d1 2000 	ldrd	r2, r0, [r1]
+ 8007914:	2802      	cmp	r0, #2
+ 8007916:	f026 0304 	bic.w	r3, r6, #4
+ 800791a:	f000 8082 	beq.w	8007a22 <HAL_ADC_ConfigChannel+0x13a>
+ 800791e:	f1b3 4f00 	cmp.w	r3, #2147483648	; 0x80000000
+ 8007922:	f3c2 0e11 	ubfx	lr, r2, #0, #18
+ 8007926:	d113      	bne.n	8007950 <HAL_ADC_ConfigChannel+0x68>
+ 8007928:	6aab      	ldr	r3, [r5, #40]	; 0x28
+ 800792a:	ea43 030e 	orr.w	r3, r3, lr
+ 800792e:	62ab      	str	r3, [r5, #40]	; 0x28
+ 8007930:	688b      	ldr	r3, [r1, #8]
+ 8007932:	6968      	ldr	r0, [r5, #20]
+ 8007934:	ea03 2302 	and.w	r3, r3, r2, lsl #8
+ 8007938:	f023 437c 	bic.w	r3, r3, #4227858432	; 0xfc000000
+ 800793c:	f023 03ff 	bic.w	r3, r3, #255	; 0xff
+ 8007940:	ea20 2102 	bic.w	r1, r0, r2, lsl #8
+ 8007944:	430b      	orrs	r3, r1
+ 8007946:	2a00      	cmp	r2, #0
+ 8007948:	616b      	str	r3, [r5, #20]
+ 800794a:	db26      	blt.n	800799a <HAL_ADC_ConfigChannel+0xb2>
+ 800794c:	2000      	movs	r0, #0
+ 800794e:	e055      	b.n	80079fc <HAL_ADC_ConfigChannel+0x114>
+ 8007950:	6e23      	ldr	r3, [r4, #96]	; 0x60
+ 8007952:	f000 071f 	and.w	r7, r0, #31
+ 8007956:	f04f 0c0f 	mov.w	ip, #15
+ 800795a:	fa0c fc07 	lsl.w	ip, ip, r7
+ 800795e:	ea6f 060c 	mvn.w	r6, ip
+ 8007962:	ea23 0c0c 	bic.w	ip, r3, ip
+ 8007966:	f1be 0f00 	cmp.w	lr, #0
+ 800796a:	d111      	bne.n	8007990 <HAL_ADC_ConfigChannel+0xa8>
+ 800796c:	f3c2 6384 	ubfx	r3, r2, #26, #5
+ 8007970:	40bb      	lsls	r3, r7
+ 8007972:	ea43 030c 	orr.w	r3, r3, ip
+ 8007976:	6623      	str	r3, [r4, #96]	; 0x60
+ 8007978:	0880      	lsrs	r0, r0, #2
+ 800797a:	69e3      	ldr	r3, [r4, #28]
+ 800797c:	3001      	adds	r0, #1
+ 800797e:	4298      	cmp	r0, r3
+ 8007980:	d8d6      	bhi.n	8007930 <HAL_ADC_ConfigChannel+0x48>
+ 8007982:	6aa8      	ldr	r0, [r5, #40]	; 0x28
+ 8007984:	f3c2 6383 	ubfx	r3, r2, #26, #4
+ 8007988:	40bb      	lsls	r3, r7
+ 800798a:	4006      	ands	r6, r0
+ 800798c:	4333      	orrs	r3, r6
+ 800798e:	e7ce      	b.n	800792e <HAL_ADC_ConfigChannel+0x46>
+ 8007990:	fa92 f3a2 	rbit	r3, r2
+ 8007994:	fab3 f383 	clz	r3, r3
+ 8007998:	e7ea      	b.n	8007970 <HAL_ADC_ConfigChannel+0x88>
+ 800799a:	493b      	ldr	r1, [pc, #236]	; (8007a88 <HAL_ADC_ConfigChannel+0x1a0>)
+ 800799c:	483b      	ldr	r0, [pc, #236]	; (8007a8c <HAL_ADC_ConfigChannel+0x1a4>)
+ 800799e:	f8d1 3708 	ldr.w	r3, [r1, #1800]	; 0x708
+ 80079a2:	4282      	cmp	r2, r0
+ 80079a4:	f003 75e0 	and.w	r5, r3, #29360128	; 0x1c00000
+ 80079a8:	d119      	bne.n	80079de <HAL_ADC_ConfigChannel+0xf6>
+ 80079aa:	021b      	lsls	r3, r3, #8
+ 80079ac:	d4ce      	bmi.n	800794c <HAL_ADC_ConfigChannel+0x64>
+ 80079ae:	f8d1 3708 	ldr.w	r3, [r1, #1800]	; 0x708
+ 80079b2:	f023 73e0 	bic.w	r3, r3, #29360128	; 0x1c00000
+ 80079b6:	432b      	orrs	r3, r5
+ 80079b8:	f443 0300 	orr.w	r3, r3, #8388608	; 0x800000
+ 80079bc:	f8c1 3708 	str.w	r3, [r1, #1800]	; 0x708
+ 80079c0:	4b33      	ldr	r3, [pc, #204]	; (8007a90 <HAL_ADC_ConfigChannel+0x1a8>)
+ 80079c2:	681a      	ldr	r2, [r3, #0]
+ 80079c4:	4b33      	ldr	r3, [pc, #204]	; (8007a94 <HAL_ADC_ConfigChannel+0x1ac>)
+ 80079c6:	fbb2 f2f3 	udiv	r2, r2, r3
+ 80079ca:	230c      	movs	r3, #12
+ 80079cc:	fb02 3303 	mla	r3, r2, r3, r3
+ 80079d0:	9301      	str	r3, [sp, #4]
+ 80079d2:	9b01      	ldr	r3, [sp, #4]
+ 80079d4:	2b00      	cmp	r3, #0
+ 80079d6:	d0b9      	beq.n	800794c <HAL_ADC_ConfigChannel+0x64>
+ 80079d8:	9b01      	ldr	r3, [sp, #4]
+ 80079da:	3b01      	subs	r3, #1
+ 80079dc:	e7f8      	b.n	80079d0 <HAL_ADC_ConfigChannel+0xe8>
+ 80079de:	482e      	ldr	r0, [pc, #184]	; (8007a98 <HAL_ADC_ConfigChannel+0x1b0>)
+ 80079e0:	4282      	cmp	r2, r0
+ 80079e2:	d110      	bne.n	8007a06 <HAL_ADC_ConfigChannel+0x11e>
+ 80079e4:	f013 7080 	ands.w	r0, r3, #16777216	; 0x1000000
+ 80079e8:	d1b0      	bne.n	800794c <HAL_ADC_ConfigChannel+0x64>
+ 80079ea:	f8d1 3708 	ldr.w	r3, [r1, #1800]	; 0x708
+ 80079ee:	f023 73e0 	bic.w	r3, r3, #29360128	; 0x1c00000
+ 80079f2:	432b      	orrs	r3, r5
+ 80079f4:	f043 7380 	orr.w	r3, r3, #16777216	; 0x1000000
+ 80079f8:	f8c1 3708 	str.w	r3, [r1, #1800]	; 0x708
+ 80079fc:	2300      	movs	r3, #0
+ 80079fe:	f884 3054 	strb.w	r3, [r4, #84]	; 0x54
+ 8007a02:	b003      	add	sp, #12
+ 8007a04:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8007a06:	4825      	ldr	r0, [pc, #148]	; (8007a9c <HAL_ADC_ConfigChannel+0x1b4>)
+ 8007a08:	4282      	cmp	r2, r0
+ 8007a0a:	d19f      	bne.n	800794c <HAL_ADC_ConfigChannel+0x64>
+ 8007a0c:	f413 0080 	ands.w	r0, r3, #4194304	; 0x400000
+ 8007a10:	d19c      	bne.n	800794c <HAL_ADC_ConfigChannel+0x64>
+ 8007a12:	f8d1 3708 	ldr.w	r3, [r1, #1800]	; 0x708
+ 8007a16:	f023 73e0 	bic.w	r3, r3, #29360128	; 0x1c00000
+ 8007a1a:	432b      	orrs	r3, r5
+ 8007a1c:	f443 0380 	orr.w	r3, r3, #4194304	; 0x400000
+ 8007a20:	e7ea      	b.n	80079f8 <HAL_ADC_ConfigChannel+0x110>
+ 8007a22:	f1b3 4f00 	cmp.w	r3, #2147483648	; 0x80000000
+ 8007a26:	bf01      	itttt	eq
+ 8007a28:	6aab      	ldreq	r3, [r5, #40]	; 0x28
+ 8007a2a:	f3c2 0111 	ubfxeq	r1, r2, #0, #18
+ 8007a2e:	438b      	biceq	r3, r1
+ 8007a30:	62ab      	streq	r3, [r5, #40]	; 0x28
+ 8007a32:	2a00      	cmp	r2, #0
+ 8007a34:	da8a      	bge.n	800794c <HAL_ADC_ConfigChannel+0x64>
+ 8007a36:	4815      	ldr	r0, [pc, #84]	; (8007a8c <HAL_ADC_ConfigChannel+0x1a4>)
+ 8007a38:	4913      	ldr	r1, [pc, #76]	; (8007a88 <HAL_ADC_ConfigChannel+0x1a0>)
+ 8007a3a:	4282      	cmp	r2, r0
+ 8007a3c:	f8d1 3708 	ldr.w	r3, [r1, #1800]	; 0x708
+ 8007a40:	d109      	bne.n	8007a56 <HAL_ADC_ConfigChannel+0x16e>
+ 8007a42:	f8d1 2708 	ldr.w	r2, [r1, #1800]	; 0x708
+ 8007a46:	f003 73a0 	and.w	r3, r3, #20971520	; 0x1400000
+ 8007a4a:	f022 72e0 	bic.w	r2, r2, #29360128	; 0x1c00000
+ 8007a4e:	4313      	orrs	r3, r2
+ 8007a50:	f8c1 3708 	str.w	r3, [r1, #1800]	; 0x708
+ 8007a54:	e77a      	b.n	800794c <HAL_ADC_ConfigChannel+0x64>
+ 8007a56:	4810      	ldr	r0, [pc, #64]	; (8007a98 <HAL_ADC_ConfigChannel+0x1b0>)
+ 8007a58:	4282      	cmp	r2, r0
+ 8007a5a:	d104      	bne.n	8007a66 <HAL_ADC_ConfigChannel+0x17e>
+ 8007a5c:	f8d1 2708 	ldr.w	r2, [r1, #1800]	; 0x708
+ 8007a60:	f403 0340 	and.w	r3, r3, #12582912	; 0xc00000
+ 8007a64:	e7f1      	b.n	8007a4a <HAL_ADC_ConfigChannel+0x162>
+ 8007a66:	480d      	ldr	r0, [pc, #52]	; (8007a9c <HAL_ADC_ConfigChannel+0x1b4>)
+ 8007a68:	4282      	cmp	r2, r0
+ 8007a6a:	f47f af6f 	bne.w	800794c <HAL_ADC_ConfigChannel+0x64>
+ 8007a6e:	f8d1 2708 	ldr.w	r2, [r1, #1800]	; 0x708
+ 8007a72:	f003 73c0 	and.w	r3, r3, #25165824	; 0x1800000
+ 8007a76:	e7e8      	b.n	8007a4a <HAL_ADC_ConfigChannel+0x162>
+ 8007a78:	6da2      	ldr	r2, [r4, #88]	; 0x58
+ 8007a7a:	f042 0220 	orr.w	r2, r2, #32
+ 8007a7e:	65a2      	str	r2, [r4, #88]	; 0x58
+ 8007a80:	4618      	mov	r0, r3
+ 8007a82:	e7bb      	b.n	80079fc <HAL_ADC_ConfigChannel+0x114>
+ 8007a84:	2002      	movs	r0, #2
+ 8007a86:	e7bc      	b.n	8007a02 <HAL_ADC_ConfigChannel+0x11a>
+ 8007a88:	40012000 	.word	0x40012000
+ 8007a8c:	b0001000 	.word	0xb0001000
+ 8007a90:	20000828 	.word	0x20000828
+ 8007a94:	00030d40 	.word	0x00030d40
+ 8007a98:	b8004000 	.word	0xb8004000
+ 8007a9c:	b4002000 	.word	0xb4002000
+
+08007aa0 <ADC_ConversionStop>:
+ 8007aa0:	6802      	ldr	r2, [r0, #0]
+ 8007aa2:	b538      	push	{r3, r4, r5, lr}
+ 8007aa4:	4604      	mov	r4, r0
+ 8007aa6:	4610      	mov	r0, r2
+ 8007aa8:	f7ff fdbc 	bl	8007624 <LL_ADC_REG_IsConversionOngoing>
+ 8007aac:	b908      	cbnz	r0, 8007ab2 <ADC_ConversionStop+0x12>
+ 8007aae:	2000      	movs	r0, #0
+ 8007ab0:	bd38      	pop	{r3, r4, r5, pc}
+ 8007ab2:	6893      	ldr	r3, [r2, #8]
+ 8007ab4:	0799      	lsls	r1, r3, #30
+ 8007ab6:	d407      	bmi.n	8007ac8 <ADC_ConversionStop+0x28>
+ 8007ab8:	6893      	ldr	r3, [r2, #8]
+ 8007aba:	f023 4300 	bic.w	r3, r3, #2147483648	; 0x80000000
+ 8007abe:	f023 0317 	bic.w	r3, r3, #23
+ 8007ac2:	f043 0310 	orr.w	r3, r3, #16
+ 8007ac6:	6093      	str	r3, [r2, #8]
+ 8007ac8:	f7fb f862 	bl	8002b90 <HAL_GetTick>
+ 8007acc:	4605      	mov	r5, r0
+ 8007ace:	6823      	ldr	r3, [r4, #0]
+ 8007ad0:	689b      	ldr	r3, [r3, #8]
+ 8007ad2:	075b      	lsls	r3, r3, #29
+ 8007ad4:	d5eb      	bpl.n	8007aae <ADC_ConversionStop+0xe>
+ 8007ad6:	f7fb f85b 	bl	8002b90 <HAL_GetTick>
+ 8007ada:	1b40      	subs	r0, r0, r5
+ 8007adc:	2802      	cmp	r0, #2
+ 8007ade:	d9f6      	bls.n	8007ace <ADC_ConversionStop+0x2e>
+ 8007ae0:	6823      	ldr	r3, [r4, #0]
+ 8007ae2:	689b      	ldr	r3, [r3, #8]
+ 8007ae4:	075a      	lsls	r2, r3, #29
+ 8007ae6:	d5f2      	bpl.n	8007ace <ADC_ConversionStop+0x2e>
+ 8007ae8:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8007aea:	f043 0310 	orr.w	r3, r3, #16
+ 8007aee:	65a3      	str	r3, [r4, #88]	; 0x58
+ 8007af0:	6de3      	ldr	r3, [r4, #92]	; 0x5c
+ 8007af2:	f043 0301 	orr.w	r3, r3, #1
+ 8007af6:	65e3      	str	r3, [r4, #92]	; 0x5c
+ 8007af8:	2001      	movs	r0, #1
+ 8007afa:	e7d9      	b.n	8007ab0 <ADC_ConversionStop+0x10>
+
+08007afc <ADC_Enable>:
+ 8007afc:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 8007afe:	2300      	movs	r3, #0
+ 8007b00:	6802      	ldr	r2, [r0, #0]
+ 8007b02:	9301      	str	r3, [sp, #4]
+ 8007b04:	6893      	ldr	r3, [r2, #8]
+ 8007b06:	07dd      	lsls	r5, r3, #31
+ 8007b08:	4604      	mov	r4, r0
+ 8007b0a:	d502      	bpl.n	8007b12 <ADC_Enable+0x16>
+ 8007b0c:	2000      	movs	r0, #0
+ 8007b0e:	b002      	add	sp, #8
+ 8007b10:	bd70      	pop	{r4, r5, r6, pc}
+ 8007b12:	6891      	ldr	r1, [r2, #8]
+ 8007b14:	4b21      	ldr	r3, [pc, #132]	; (8007b9c <ADC_Enable+0xa0>)
+ 8007b16:	4219      	tst	r1, r3
+ 8007b18:	d009      	beq.n	8007b2e <ADC_Enable+0x32>
+ 8007b1a:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8007b1c:	f043 0310 	orr.w	r3, r3, #16
+ 8007b20:	65a3      	str	r3, [r4, #88]	; 0x58
+ 8007b22:	6de3      	ldr	r3, [r4, #92]	; 0x5c
+ 8007b24:	f043 0301 	orr.w	r3, r3, #1
+ 8007b28:	65e3      	str	r3, [r4, #92]	; 0x5c
+ 8007b2a:	2001      	movs	r0, #1
+ 8007b2c:	e7ef      	b.n	8007b0e <ADC_Enable+0x12>
+ 8007b2e:	6893      	ldr	r3, [r2, #8]
+ 8007b30:	f023 4300 	bic.w	r3, r3, #2147483648	; 0x80000000
+ 8007b34:	f023 0317 	bic.w	r3, r3, #23
+ 8007b38:	f043 0301 	orr.w	r3, r3, #1
+ 8007b3c:	6093      	str	r3, [r2, #8]
+ 8007b3e:	4b18      	ldr	r3, [pc, #96]	; (8007ba0 <ADC_Enable+0xa4>)
+ 8007b40:	f8d3 3708 	ldr.w	r3, [r3, #1800]	; 0x708
+ 8007b44:	0218      	lsls	r0, r3, #8
+ 8007b46:	d41c      	bmi.n	8007b82 <ADC_Enable+0x86>
+ 8007b48:	7e63      	ldrb	r3, [r4, #25]
+ 8007b4a:	2b01      	cmp	r3, #1
+ 8007b4c:	d0de      	beq.n	8007b0c <ADC_Enable+0x10>
+ 8007b4e:	f7fb f81f 	bl	8002b90 <HAL_GetTick>
+ 8007b52:	4e14      	ldr	r6, [pc, #80]	; (8007ba4 <ADC_Enable+0xa8>)
+ 8007b54:	4605      	mov	r5, r0
+ 8007b56:	6822      	ldr	r2, [r4, #0]
+ 8007b58:	6813      	ldr	r3, [r2, #0]
+ 8007b5a:	07db      	lsls	r3, r3, #31
+ 8007b5c:	d4d6      	bmi.n	8007b0c <ADC_Enable+0x10>
+ 8007b5e:	6893      	ldr	r3, [r2, #8]
+ 8007b60:	07d9      	lsls	r1, r3, #31
+ 8007b62:	bf5f      	itttt	pl
+ 8007b64:	6893      	ldrpl	r3, [r2, #8]
+ 8007b66:	4033      	andpl	r3, r6
+ 8007b68:	f043 0301 	orrpl.w	r3, r3, #1
+ 8007b6c:	6093      	strpl	r3, [r2, #8]
+ 8007b6e:	f7fb f80f 	bl	8002b90 <HAL_GetTick>
+ 8007b72:	1b40      	subs	r0, r0, r5
+ 8007b74:	2802      	cmp	r0, #2
+ 8007b76:	d9ee      	bls.n	8007b56 <ADC_Enable+0x5a>
+ 8007b78:	6823      	ldr	r3, [r4, #0]
+ 8007b7a:	681b      	ldr	r3, [r3, #0]
+ 8007b7c:	07da      	lsls	r2, r3, #31
+ 8007b7e:	d4ea      	bmi.n	8007b56 <ADC_Enable+0x5a>
+ 8007b80:	e7cb      	b.n	8007b1a <ADC_Enable+0x1e>
+ 8007b82:	4b09      	ldr	r3, [pc, #36]	; (8007ba8 <ADC_Enable+0xac>)
+ 8007b84:	4a09      	ldr	r2, [pc, #36]	; (8007bac <ADC_Enable+0xb0>)
+ 8007b86:	681b      	ldr	r3, [r3, #0]
+ 8007b88:	fbb3 f3f2 	udiv	r3, r3, r2
+ 8007b8c:	3301      	adds	r3, #1
+ 8007b8e:	9301      	str	r3, [sp, #4]
+ 8007b90:	9b01      	ldr	r3, [sp, #4]
+ 8007b92:	2b00      	cmp	r3, #0
+ 8007b94:	d0d8      	beq.n	8007b48 <ADC_Enable+0x4c>
+ 8007b96:	9b01      	ldr	r3, [sp, #4]
+ 8007b98:	3b01      	subs	r3, #1
+ 8007b9a:	e7f8      	b.n	8007b8e <ADC_Enable+0x92>
+ 8007b9c:	80000017 	.word	0x80000017
+ 8007ba0:	40012000 	.word	0x40012000
+ 8007ba4:	7fffffe8 	.word	0x7fffffe8
+ 8007ba8:	20000828 	.word	0x20000828
+ 8007bac:	00030d40 	.word	0x00030d40
+
+08007bb0 <HAL_ADC_Start>:
+ 8007bb0:	b538      	push	{r3, r4, r5, lr}
+ 8007bb2:	4604      	mov	r4, r0
+ 8007bb4:	6800      	ldr	r0, [r0, #0]
+ 8007bb6:	f7ff fd35 	bl	8007624 <LL_ADC_REG_IsConversionOngoing>
+ 8007bba:	4605      	mov	r5, r0
+ 8007bbc:	bb20      	cbnz	r0, 8007c08 <HAL_ADC_Start+0x58>
+ 8007bbe:	f894 3054 	ldrb.w	r3, [r4, #84]	; 0x54
+ 8007bc2:	2b01      	cmp	r3, #1
+ 8007bc4:	d020      	beq.n	8007c08 <HAL_ADC_Start+0x58>
+ 8007bc6:	2301      	movs	r3, #1
+ 8007bc8:	f884 3054 	strb.w	r3, [r4, #84]	; 0x54
+ 8007bcc:	4620      	mov	r0, r4
+ 8007bce:	f7ff ff95 	bl	8007afc <ADC_Enable>
+ 8007bd2:	b9b0      	cbnz	r0, 8007c02 <HAL_ADC_Start+0x52>
+ 8007bd4:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8007bd6:	6822      	ldr	r2, [r4, #0]
+ 8007bd8:	f423 6370 	bic.w	r3, r3, #3840	; 0xf00
+ 8007bdc:	f023 0301 	bic.w	r3, r3, #1
+ 8007be0:	f443 7380 	orr.w	r3, r3, #256	; 0x100
+ 8007be4:	65a3      	str	r3, [r4, #88]	; 0x58
+ 8007be6:	231c      	movs	r3, #28
+ 8007be8:	65e0      	str	r0, [r4, #92]	; 0x5c
+ 8007bea:	6013      	str	r3, [r2, #0]
+ 8007bec:	f884 0054 	strb.w	r0, [r4, #84]	; 0x54
+ 8007bf0:	6893      	ldr	r3, [r2, #8]
+ 8007bf2:	f023 4300 	bic.w	r3, r3, #2147483648	; 0x80000000
+ 8007bf6:	f023 0317 	bic.w	r3, r3, #23
+ 8007bfa:	f043 0304 	orr.w	r3, r3, #4
+ 8007bfe:	6093      	str	r3, [r2, #8]
+ 8007c00:	bd38      	pop	{r3, r4, r5, pc}
+ 8007c02:	f884 5054 	strb.w	r5, [r4, #84]	; 0x54
+ 8007c06:	e7fb      	b.n	8007c00 <HAL_ADC_Start+0x50>
+ 8007c08:	2002      	movs	r0, #2
+ 8007c0a:	e7f9      	b.n	8007c00 <HAL_ADC_Start+0x50>
+
+08007c0c <ADC_Disable>:
+ 8007c0c:	6802      	ldr	r2, [r0, #0]
+ 8007c0e:	b538      	push	{r3, r4, r5, lr}
+ 8007c10:	6893      	ldr	r3, [r2, #8]
+ 8007c12:	6891      	ldr	r1, [r2, #8]
+ 8007c14:	4604      	mov	r4, r0
+ 8007c16:	07c8      	lsls	r0, r1, #31
+ 8007c18:	d401      	bmi.n	8007c1e <ADC_Disable+0x12>
+ 8007c1a:	2000      	movs	r0, #0
+ 8007c1c:	bd38      	pop	{r3, r4, r5, pc}
+ 8007c1e:	0799      	lsls	r1, r3, #30
+ 8007c20:	d4fb      	bmi.n	8007c1a <ADC_Disable+0xe>
+ 8007c22:	6893      	ldr	r3, [r2, #8]
+ 8007c24:	f003 0305 	and.w	r3, r3, #5
+ 8007c28:	2b01      	cmp	r3, #1
+ 8007c2a:	d119      	bne.n	8007c60 <ADC_Disable+0x54>
+ 8007c2c:	6893      	ldr	r3, [r2, #8]
+ 8007c2e:	f023 4300 	bic.w	r3, r3, #2147483648	; 0x80000000
+ 8007c32:	f023 0317 	bic.w	r3, r3, #23
+ 8007c36:	f043 0302 	orr.w	r3, r3, #2
+ 8007c3a:	6093      	str	r3, [r2, #8]
+ 8007c3c:	2303      	movs	r3, #3
+ 8007c3e:	6013      	str	r3, [r2, #0]
+ 8007c40:	f7fa ffa6 	bl	8002b90 <HAL_GetTick>
+ 8007c44:	4605      	mov	r5, r0
+ 8007c46:	6823      	ldr	r3, [r4, #0]
+ 8007c48:	689b      	ldr	r3, [r3, #8]
+ 8007c4a:	07db      	lsls	r3, r3, #31
+ 8007c4c:	d5e5      	bpl.n	8007c1a <ADC_Disable+0xe>
+ 8007c4e:	f7fa ff9f 	bl	8002b90 <HAL_GetTick>
+ 8007c52:	1b40      	subs	r0, r0, r5
+ 8007c54:	2802      	cmp	r0, #2
+ 8007c56:	d9f6      	bls.n	8007c46 <ADC_Disable+0x3a>
+ 8007c58:	6823      	ldr	r3, [r4, #0]
+ 8007c5a:	689b      	ldr	r3, [r3, #8]
+ 8007c5c:	07da      	lsls	r2, r3, #31
+ 8007c5e:	d5f2      	bpl.n	8007c46 <ADC_Disable+0x3a>
+ 8007c60:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8007c62:	f043 0310 	orr.w	r3, r3, #16
+ 8007c66:	65a3      	str	r3, [r4, #88]	; 0x58
+ 8007c68:	6de3      	ldr	r3, [r4, #92]	; 0x5c
+ 8007c6a:	f043 0301 	orr.w	r3, r3, #1
+ 8007c6e:	65e3      	str	r3, [r4, #92]	; 0x5c
+ 8007c70:	2001      	movs	r0, #1
+ 8007c72:	e7d3      	b.n	8007c1c <ADC_Disable+0x10>
+
+08007c74 <HAL_ADC_DeInit>:
+ 8007c74:	b570      	push	{r4, r5, r6, lr}
+ 8007c76:	4604      	mov	r4, r0
+ 8007c78:	2800      	cmp	r0, #0
+ 8007c7a:	d04b      	beq.n	8007d14 <HAL_ADC_DeInit+0xa0>
+ 8007c7c:	6d83      	ldr	r3, [r0, #88]	; 0x58
+ 8007c7e:	f043 0302 	orr.w	r3, r3, #2
+ 8007c82:	6583      	str	r3, [r0, #88]	; 0x58
+ 8007c84:	f7ff ff0c 	bl	8007aa0 <ADC_ConversionStop>
+ 8007c88:	4605      	mov	r5, r0
+ 8007c8a:	b968      	cbnz	r0, 8007ca8 <HAL_ADC_DeInit+0x34>
+ 8007c8c:	4620      	mov	r0, r4
+ 8007c8e:	f7ff ffbd 	bl	8007c0c <ADC_Disable>
+ 8007c92:	4605      	mov	r5, r0
+ 8007c94:	b908      	cbnz	r0, 8007c9a <HAL_ADC_DeInit+0x26>
+ 8007c96:	2301      	movs	r3, #1
+ 8007c98:	65a3      	str	r3, [r4, #88]	; 0x58
+ 8007c9a:	6822      	ldr	r2, [r4, #0]
+ 8007c9c:	6893      	ldr	r3, [r2, #8]
+ 8007c9e:	f023 4310 	bic.w	r3, r3, #2415919104	; 0x90000000
+ 8007ca2:	f023 0317 	bic.w	r3, r3, #23
+ 8007ca6:	6093      	str	r3, [r2, #8]
+ 8007ca8:	6823      	ldr	r3, [r4, #0]
+ 8007caa:	685a      	ldr	r2, [r3, #4]
+ 8007cac:	f422 7267 	bic.w	r2, r2, #924	; 0x39c
+ 8007cb0:	f022 0203 	bic.w	r2, r2, #3
+ 8007cb4:	605a      	str	r2, [r3, #4]
+ 8007cb6:	f240 329f 	movw	r2, #927	; 0x39f
+ 8007cba:	601a      	str	r2, [r3, #0]
+ 8007cbc:	68d9      	ldr	r1, [r3, #12]
+ 8007cbe:	4a16      	ldr	r2, [pc, #88]	; (8007d18 <HAL_ADC_DeInit+0xa4>)
+ 8007cc0:	400a      	ands	r2, r1
+ 8007cc2:	60da      	str	r2, [r3, #12]
+ 8007cc4:	691a      	ldr	r2, [r3, #16]
+ 8007cc6:	f022 4240 	bic.w	r2, r2, #3221225472	; 0xc0000000
+ 8007cca:	611a      	str	r2, [r3, #16]
+ 8007ccc:	695a      	ldr	r2, [r3, #20]
+ 8007cce:	f022 0207 	bic.w	r2, r2, #7
+ 8007cd2:	615a      	str	r2, [r3, #20]
+ 8007cd4:	6a1a      	ldr	r2, [r3, #32]
+ 8007cd6:	f002 22f0 	and.w	r2, r2, #4026593280	; 0xf000f000
+ 8007cda:	621a      	str	r2, [r3, #32]
+ 8007cdc:	6a5a      	ldr	r2, [r3, #36]	; 0x24
+ 8007cde:	f002 22f0 	and.w	r2, r2, #4026593280	; 0xf000f000
+ 8007ce2:	625a      	str	r2, [r3, #36]	; 0x24
+ 8007ce4:	6ada      	ldr	r2, [r3, #44]	; 0x2c
+ 8007ce6:	f002 22f0 	and.w	r2, r2, #4026593280	; 0xf000f000
+ 8007cea:	62da      	str	r2, [r3, #44]	; 0x2c
+ 8007cec:	6a9a      	ldr	r2, [r3, #40]	; 0x28
+ 8007cee:	4a0b      	ldr	r2, [pc, #44]	; (8007d1c <HAL_ADC_DeInit+0xa8>)
+ 8007cf0:	2600      	movs	r6, #0
+ 8007cf2:	629e      	str	r6, [r3, #40]	; 0x28
+ 8007cf4:	f8d2 3708 	ldr.w	r3, [r2, #1800]	; 0x708
+ 8007cf8:	f023 73fe 	bic.w	r3, r3, #33292288	; 0x1fc0000
+ 8007cfc:	f8c2 3708 	str.w	r3, [r2, #1800]	; 0x708
+ 8007d00:	4620      	mov	r0, r4
+ 8007d02:	f7fa f8c3 	bl	8001e8c <HAL_ADC_MspDeInit>
+ 8007d06:	65e6      	str	r6, [r4, #92]	; 0x5c
+ 8007d08:	6626      	str	r6, [r4, #96]	; 0x60
+ 8007d0a:	65a6      	str	r6, [r4, #88]	; 0x58
+ 8007d0c:	f884 6054 	strb.w	r6, [r4, #84]	; 0x54
+ 8007d10:	4628      	mov	r0, r5
+ 8007d12:	bd70      	pop	{r4, r5, r6, pc}
+ 8007d14:	2501      	movs	r5, #1
+ 8007d16:	e7fb      	b.n	8007d10 <HAL_ADC_DeInit+0x9c>
+ 8007d18:	833e0200 	.word	0x833e0200
+ 8007d1c:	40012000 	.word	0x40012000
+
+08007d20 <HAL_ADC_Stop>:
+ 8007d20:	b510      	push	{r4, lr}
+ 8007d22:	f890 3054 	ldrb.w	r3, [r0, #84]	; 0x54
+ 8007d26:	2b01      	cmp	r3, #1
+ 8007d28:	4604      	mov	r4, r0
+ 8007d2a:	d015      	beq.n	8007d58 <HAL_ADC_Stop+0x38>
+ 8007d2c:	2301      	movs	r3, #1
+ 8007d2e:	f880 3054 	strb.w	r3, [r0, #84]	; 0x54
+ 8007d32:	f7ff feb5 	bl	8007aa0 <ADC_ConversionStop>
+ 8007d36:	b958      	cbnz	r0, 8007d50 <HAL_ADC_Stop+0x30>
+ 8007d38:	4620      	mov	r0, r4
+ 8007d3a:	f7ff ff67 	bl	8007c0c <ADC_Disable>
+ 8007d3e:	b938      	cbnz	r0, 8007d50 <HAL_ADC_Stop+0x30>
+ 8007d40:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8007d42:	f423 7380 	bic.w	r3, r3, #256	; 0x100
+ 8007d46:	f023 0301 	bic.w	r3, r3, #1
+ 8007d4a:	f043 0301 	orr.w	r3, r3, #1
+ 8007d4e:	65a3      	str	r3, [r4, #88]	; 0x58
+ 8007d50:	2300      	movs	r3, #0
+ 8007d52:	f884 3054 	strb.w	r3, [r4, #84]	; 0x54
+ 8007d56:	bd10      	pop	{r4, pc}
+ 8007d58:	2002      	movs	r0, #2
+ 8007d5a:	e7fc      	b.n	8007d56 <HAL_ADC_Stop+0x36>
+
+08007d5c <HAL_ADCEx_Calibration_Start>:
+ 8007d5c:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
+ 8007d5e:	2300      	movs	r3, #0
+ 8007d60:	9301      	str	r3, [sp, #4]
+ 8007d62:	f890 3054 	ldrb.w	r3, [r0, #84]	; 0x54
+ 8007d66:	2b01      	cmp	r3, #1
+ 8007d68:	4604      	mov	r4, r0
+ 8007d6a:	d07f      	beq.n	8007e6c <HAL_ADCEx_Calibration_Start+0x110>
+ 8007d6c:	2301      	movs	r3, #1
+ 8007d6e:	f880 3054 	strb.w	r3, [r0, #84]	; 0x54
+ 8007d72:	f7ff ff4b 	bl	8007c0c <ADC_Disable>
+ 8007d76:	6823      	ldr	r3, [r4, #0]
+ 8007d78:	689a      	ldr	r2, [r3, #8]
+ 8007d7a:	f012 0201 	ands.w	r2, r2, #1
+ 8007d7e:	4605      	mov	r5, r0
+ 8007d80:	d007      	beq.n	8007d92 <HAL_ADCEx_Calibration_Start+0x36>
+ 8007d82:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8007d84:	f043 0310 	orr.w	r3, r3, #16
+ 8007d88:	65a3      	str	r3, [r4, #88]	; 0x58
+ 8007d8a:	2300      	movs	r3, #0
+ 8007d8c:	f884 3054 	strb.w	r3, [r4, #84]	; 0x54
+ 8007d90:	e02d      	b.n	8007dee <HAL_ADCEx_Calibration_Start+0x92>
+ 8007d92:	6da1      	ldr	r1, [r4, #88]	; 0x58
+ 8007d94:	4f36      	ldr	r7, [pc, #216]	; (8007e70 <HAL_ADCEx_Calibration_Start+0x114>)
+ 8007d96:	f421 7181 	bic.w	r1, r1, #258	; 0x102
+ 8007d9a:	f041 0102 	orr.w	r1, r1, #2
+ 8007d9e:	65a1      	str	r1, [r4, #88]	; 0x58
+ 8007da0:	68de      	ldr	r6, [r3, #12]
+ 8007da2:	68d9      	ldr	r1, [r3, #12]
+ 8007da4:	f426 46ff 	bic.w	r6, r6, #32640	; 0x7f80
+ 8007da8:	f026 067c 	bic.w	r6, r6, #124	; 0x7c
+ 8007dac:	f421 4100 	bic.w	r1, r1, #32768	; 0x8000
+ 8007db0:	0436      	lsls	r6, r6, #16
+ 8007db2:	f021 0103 	bic.w	r1, r1, #3
+ 8007db6:	0c36      	lsrs	r6, r6, #16
+ 8007db8:	60d9      	str	r1, [r3, #12]
+ 8007dba:	2008      	movs	r0, #8
+ 8007dbc:	6899      	ldr	r1, [r3, #8]
+ 8007dbe:	4039      	ands	r1, r7
+ 8007dc0:	f041 4100 	orr.w	r1, r1, #2147483648	; 0x80000000
+ 8007dc4:	6099      	str	r1, [r3, #8]
+ 8007dc6:	6899      	ldr	r1, [r3, #8]
+ 8007dc8:	2900      	cmp	r1, #0
+ 8007dca:	da13      	bge.n	8007df4 <HAL_ADCEx_Calibration_Start+0x98>
+ 8007dcc:	9901      	ldr	r1, [sp, #4]
+ 8007dce:	3101      	adds	r1, #1
+ 8007dd0:	9101      	str	r1, [sp, #4]
+ 8007dd2:	9901      	ldr	r1, [sp, #4]
+ 8007dd4:	f5b1 3f2e 	cmp.w	r1, #178176	; 0x2b800
+ 8007dd8:	d3f5      	bcc.n	8007dc6 <HAL_ADCEx_Calibration_Start+0x6a>
+ 8007dda:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8007ddc:	f023 0312 	bic.w	r3, r3, #18
+ 8007de0:	f043 0310 	orr.w	r3, r3, #16
+ 8007de4:	65a3      	str	r3, [r4, #88]	; 0x58
+ 8007de6:	2300      	movs	r3, #0
+ 8007de8:	f884 3054 	strb.w	r3, [r4, #84]	; 0x54
+ 8007dec:	2501      	movs	r5, #1
+ 8007dee:	4628      	mov	r0, r5
+ 8007df0:	b003      	add	sp, #12
+ 8007df2:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8007df4:	f8d3 10b4 	ldr.w	r1, [r3, #180]	; 0xb4
+ 8007df8:	3801      	subs	r0, #1
+ 8007dfa:	f001 017f 	and.w	r1, r1, #127	; 0x7f
+ 8007dfe:	440a      	add	r2, r1
+ 8007e00:	d1dc      	bne.n	8007dbc <HAL_ADCEx_Calibration_Start+0x60>
+ 8007e02:	6899      	ldr	r1, [r3, #8]
+ 8007e04:	481a      	ldr	r0, [pc, #104]	; (8007e70 <HAL_ADCEx_Calibration_Start+0x114>)
+ 8007e06:	4001      	ands	r1, r0
+ 8007e08:	f041 0101 	orr.w	r1, r1, #1
+ 8007e0c:	6099      	str	r1, [r3, #8]
+ 8007e0e:	f8d3 10b4 	ldr.w	r1, [r3, #180]	; 0xb4
+ 8007e12:	f021 017f 	bic.w	r1, r1, #127	; 0x7f
+ 8007e16:	ea41 02d2 	orr.w	r2, r1, r2, lsr #3
+ 8007e1a:	f8c3 20b4 	str.w	r2, [r3, #180]	; 0xb4
+ 8007e1e:	689a      	ldr	r2, [r3, #8]
+ 8007e20:	4002      	ands	r2, r0
+ 8007e22:	f042 0202 	orr.w	r2, r2, #2
+ 8007e26:	609a      	str	r2, [r3, #8]
+ 8007e28:	f7fa feb2 	bl	8002b90 <HAL_GetTick>
+ 8007e2c:	4607      	mov	r7, r0
+ 8007e2e:	6823      	ldr	r3, [r4, #0]
+ 8007e30:	689a      	ldr	r2, [r3, #8]
+ 8007e32:	07d2      	lsls	r2, r2, #31
+ 8007e34:	d408      	bmi.n	8007e48 <HAL_ADCEx_Calibration_Start+0xec>
+ 8007e36:	68da      	ldr	r2, [r3, #12]
+ 8007e38:	4332      	orrs	r2, r6
+ 8007e3a:	60da      	str	r2, [r3, #12]
+ 8007e3c:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8007e3e:	f023 0303 	bic.w	r3, r3, #3
+ 8007e42:	f043 0301 	orr.w	r3, r3, #1
+ 8007e46:	e79f      	b.n	8007d88 <HAL_ADCEx_Calibration_Start+0x2c>
+ 8007e48:	f7fa fea2 	bl	8002b90 <HAL_GetTick>
+ 8007e4c:	1bc0      	subs	r0, r0, r7
+ 8007e4e:	2802      	cmp	r0, #2
+ 8007e50:	d9ed      	bls.n	8007e2e <HAL_ADCEx_Calibration_Start+0xd2>
+ 8007e52:	6823      	ldr	r3, [r4, #0]
+ 8007e54:	689b      	ldr	r3, [r3, #8]
+ 8007e56:	07d9      	lsls	r1, r3, #31
+ 8007e58:	d5e9      	bpl.n	8007e2e <HAL_ADCEx_Calibration_Start+0xd2>
+ 8007e5a:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 8007e5c:	f043 0310 	orr.w	r3, r3, #16
+ 8007e60:	65a3      	str	r3, [r4, #88]	; 0x58
+ 8007e62:	6de3      	ldr	r3, [r4, #92]	; 0x5c
+ 8007e64:	f043 0301 	orr.w	r3, r3, #1
+ 8007e68:	65e3      	str	r3, [r4, #92]	; 0x5c
+ 8007e6a:	e7bf      	b.n	8007dec <HAL_ADCEx_Calibration_Start+0x90>
+ 8007e6c:	2502      	movs	r5, #2
+ 8007e6e:	e7be      	b.n	8007dee <HAL_ADCEx_Calibration_Start+0x92>
+ 8007e70:	7fffffe8 	.word	0x7fffffe8
+
+08007e74 <HAL_NVIC_SetPriorityGrouping>:
+ 8007e74:	4907      	ldr	r1, [pc, #28]	; (8007e94 <HAL_NVIC_SetPriorityGrouping+0x20>)
+ 8007e76:	68ca      	ldr	r2, [r1, #12]
+ 8007e78:	f422 62e0 	bic.w	r2, r2, #1792	; 0x700
+ 8007e7c:	0203      	lsls	r3, r0, #8
+ 8007e7e:	0412      	lsls	r2, r2, #16
+ 8007e80:	f403 63e0 	and.w	r3, r3, #1792	; 0x700
+ 8007e84:	0c12      	lsrs	r2, r2, #16
+ 8007e86:	4313      	orrs	r3, r2
+ 8007e88:	f043 63bf 	orr.w	r3, r3, #100139008	; 0x5f80000
+ 8007e8c:	f443 3300 	orr.w	r3, r3, #131072	; 0x20000
+ 8007e90:	60cb      	str	r3, [r1, #12]
+ 8007e92:	4770      	bx	lr
+ 8007e94:	e000ed00 	.word	0xe000ed00
+
+08007e98 <HAL_NVIC_SetPriority>:
+ 8007e98:	4b16      	ldr	r3, [pc, #88]	; (8007ef4 <HAL_NVIC_SetPriority+0x5c>)
+ 8007e9a:	b530      	push	{r4, r5, lr}
+ 8007e9c:	68dc      	ldr	r4, [r3, #12]
+ 8007e9e:	f3c4 2402 	ubfx	r4, r4, #8, #3
+ 8007ea2:	f1c4 0307 	rsb	r3, r4, #7
+ 8007ea6:	1d25      	adds	r5, r4, #4
+ 8007ea8:	2b04      	cmp	r3, #4
+ 8007eaa:	bf28      	it	cs
+ 8007eac:	2304      	movcs	r3, #4
+ 8007eae:	2d06      	cmp	r5, #6
+ 8007eb0:	f04f 35ff 	mov.w	r5, #4294967295
+ 8007eb4:	bf8c      	ite	hi
+ 8007eb6:	3c03      	subhi	r4, #3
+ 8007eb8:	2400      	movls	r4, #0
+ 8007eba:	fa05 f303 	lsl.w	r3, r5, r3
+ 8007ebe:	ea21 0303 	bic.w	r3, r1, r3
+ 8007ec2:	40a5      	lsls	r5, r4
+ 8007ec4:	ea22 0205 	bic.w	r2, r2, r5
+ 8007ec8:	40a3      	lsls	r3, r4
+ 8007eca:	2800      	cmp	r0, #0
+ 8007ecc:	ea43 0302 	orr.w	r3, r3, r2
+ 8007ed0:	bfac      	ite	ge
+ 8007ed2:	f100 4060 	addge.w	r0, r0, #3758096384	; 0xe0000000
+ 8007ed6:	4a08      	ldrlt	r2, [pc, #32]	; (8007ef8 <HAL_NVIC_SetPriority+0x60>)
+ 8007ed8:	ea4f 1303 	mov.w	r3, r3, lsl #4
+ 8007edc:	bfb8      	it	lt
+ 8007ede:	f000 000f 	andlt.w	r0, r0, #15
+ 8007ee2:	b2db      	uxtb	r3, r3
+ 8007ee4:	bfaa      	itet	ge
+ 8007ee6:	f500 4061 	addge.w	r0, r0, #57600	; 0xe100
+ 8007eea:	5413      	strblt	r3, [r2, r0]
+ 8007eec:	f880 3300 	strbge.w	r3, [r0, #768]	; 0x300
+ 8007ef0:	bd30      	pop	{r4, r5, pc}
+ 8007ef2:	bf00      	nop
+ 8007ef4:	e000ed00 	.word	0xe000ed00
+ 8007ef8:	e000ed14 	.word	0xe000ed14
+
+08007efc <HAL_NVIC_EnableIRQ>:
+ 8007efc:	2800      	cmp	r0, #0
+ 8007efe:	db07      	blt.n	8007f10 <HAL_NVIC_EnableIRQ+0x14>
+ 8007f00:	4a04      	ldr	r2, [pc, #16]	; (8007f14 <HAL_NVIC_EnableIRQ+0x18>)
+ 8007f02:	0941      	lsrs	r1, r0, #5
+ 8007f04:	2301      	movs	r3, #1
+ 8007f06:	f000 001f 	and.w	r0, r0, #31
+ 8007f0a:	4083      	lsls	r3, r0
+ 8007f0c:	f842 3021 	str.w	r3, [r2, r1, lsl #2]
+ 8007f10:	4770      	bx	lr
+ 8007f12:	bf00      	nop
+ 8007f14:	e000e100 	.word	0xe000e100
+
+08007f18 <HAL_NVIC_DisableIRQ>:
+ 8007f18:	2800      	cmp	r0, #0
+ 8007f1a:	db0c      	blt.n	8007f36 <HAL_NVIC_DisableIRQ+0x1e>
+ 8007f1c:	0943      	lsrs	r3, r0, #5
+ 8007f1e:	4906      	ldr	r1, [pc, #24]	; (8007f38 <HAL_NVIC_DisableIRQ+0x20>)
+ 8007f20:	f000 001f 	and.w	r0, r0, #31
+ 8007f24:	3320      	adds	r3, #32
+ 8007f26:	2201      	movs	r2, #1
+ 8007f28:	4082      	lsls	r2, r0
+ 8007f2a:	f841 2023 	str.w	r2, [r1, r3, lsl #2]
+ 8007f2e:	f3bf 8f4f 	dsb	sy
+ 8007f32:	f3bf 8f6f 	isb	sy
+ 8007f36:	4770      	bx	lr
+ 8007f38:	e000e100 	.word	0xe000e100
+
+08007f3c <DMA_SetConfig>:
+ 8007f3c:	b570      	push	{r4, r5, r6, lr}
+ 8007f3e:	e9d0 4513 	ldrd	r4, r5, [r0, #76]	; 0x4c
+ 8007f42:	6065      	str	r5, [r4, #4]
+ 8007f44:	6d44      	ldr	r4, [r0, #84]	; 0x54
+ 8007f46:	b114      	cbz	r4, 8007f4e <DMA_SetConfig+0x12>
+ 8007f48:	e9d0 4516 	ldrd	r4, r5, [r0, #88]	; 0x58
+ 8007f4c:	6065      	str	r5, [r4, #4]
+ 8007f4e:	e9d0 5410 	ldrd	r5, r4, [r0, #64]	; 0x40
+ 8007f52:	f004 061c 	and.w	r6, r4, #28
+ 8007f56:	2401      	movs	r4, #1
+ 8007f58:	40b4      	lsls	r4, r6
+ 8007f5a:	606c      	str	r4, [r5, #4]
+ 8007f5c:	6804      	ldr	r4, [r0, #0]
+ 8007f5e:	6063      	str	r3, [r4, #4]
+ 8007f60:	6883      	ldr	r3, [r0, #8]
+ 8007f62:	2b10      	cmp	r3, #16
+ 8007f64:	bf0b      	itete	eq
+ 8007f66:	60a2      	streq	r2, [r4, #8]
+ 8007f68:	60a1      	strne	r1, [r4, #8]
+ 8007f6a:	60e1      	streq	r1, [r4, #12]
+ 8007f6c:	60e2      	strne	r2, [r4, #12]
+ 8007f6e:	bd70      	pop	{r4, r5, r6, pc}
+
+08007f70 <DMA_CalcDMAMUXChannelBaseAndMask>:
+ 8007f70:	6802      	ldr	r2, [r0, #0]
+ 8007f72:	6c41      	ldr	r1, [r0, #68]	; 0x44
+ 8007f74:	b2d3      	uxtb	r3, r2
+ 8007f76:	b510      	push	{r4, lr}
+ 8007f78:	3b08      	subs	r3, #8
+ 8007f7a:	2414      	movs	r4, #20
+ 8007f7c:	fbb3 f3f4 	udiv	r3, r3, r4
+ 8007f80:	4c0b      	ldr	r4, [pc, #44]	; (8007fb0 <DMA_CalcDMAMUXChannelBaseAndMask+0x40>)
+ 8007f82:	42a2      	cmp	r2, r4
+ 8007f84:	bf88      	it	hi
+ 8007f86:	4a0b      	ldrhi	r2, [pc, #44]	; (8007fb4 <DMA_CalcDMAMUXChannelBaseAndMask+0x44>)
+ 8007f88:	f021 0103 	bic.w	r1, r1, #3
+ 8007f8c:	bf99      	ittee	ls
+ 8007f8e:	f101 4280 	addls.w	r2, r1, #1073741824	; 0x40000000
+ 8007f92:	f502 3202 	addls.w	r2, r2, #133120	; 0x20800
+ 8007f96:	1852      	addhi	r2, r2, r1
+ 8007f98:	3307      	addhi	r3, #7
+ 8007f9a:	6482      	str	r2, [r0, #72]	; 0x48
+ 8007f9c:	4a06      	ldr	r2, [pc, #24]	; (8007fb8 <DMA_CalcDMAMUXChannelBaseAndMask+0x48>)
+ 8007f9e:	64c2      	str	r2, [r0, #76]	; 0x4c
+ 8007fa0:	f003 031f 	and.w	r3, r3, #31
+ 8007fa4:	2201      	movs	r2, #1
+ 8007fa6:	fa02 f303 	lsl.w	r3, r2, r3
+ 8007faa:	6503      	str	r3, [r0, #80]	; 0x50
+ 8007fac:	bd10      	pop	{r4, pc}
+ 8007fae:	bf00      	nop
+ 8007fb0:	40020407 	.word	0x40020407
+ 8007fb4:	4002081c 	.word	0x4002081c
+ 8007fb8:	40020880 	.word	0x40020880
+
+08007fbc <HAL_DMA_Init>:
+ 8007fbc:	b538      	push	{r3, r4, r5, lr}
+ 8007fbe:	2800      	cmp	r0, #0
+ 8007fc0:	d05e      	beq.n	8008080 <HAL_DMA_Init+0xc4>
+ 8007fc2:	6802      	ldr	r2, [r0, #0]
+ 8007fc4:	4b2f      	ldr	r3, [pc, #188]	; (8008084 <HAL_DMA_Init+0xc8>)
+ 8007fc6:	429a      	cmp	r2, r3
+ 8007fc8:	f04f 0114 	mov.w	r1, #20
+ 8007fcc:	d84c      	bhi.n	8008068 <HAL_DMA_Init+0xac>
+ 8007fce:	4b2e      	ldr	r3, [pc, #184]	; (8008088 <HAL_DMA_Init+0xcc>)
+ 8007fd0:	4413      	add	r3, r2
+ 8007fd2:	fbb3 f3f1 	udiv	r3, r3, r1
+ 8007fd6:	492d      	ldr	r1, [pc, #180]	; (800808c <HAL_DMA_Init+0xd0>)
+ 8007fd8:	009b      	lsls	r3, r3, #2
+ 8007fda:	e9c0 1310 	strd	r1, r3, [r0, #64]	; 0x40
+ 8007fde:	2302      	movs	r3, #2
+ 8007fe0:	f880 3025 	strb.w	r3, [r0, #37]	; 0x25
+ 8007fe4:	6813      	ldr	r3, [r2, #0]
+ 8007fe6:	6905      	ldr	r5, [r0, #16]
+ 8007fe8:	f423 43ff 	bic.w	r3, r3, #32640	; 0x7f80
+ 8007fec:	f023 0370 	bic.w	r3, r3, #112	; 0x70
+ 8007ff0:	6013      	str	r3, [r2, #0]
+ 8007ff2:	e9d0 4302 	ldrd	r4, r3, [r0, #8]
+ 8007ff6:	4323      	orrs	r3, r4
+ 8007ff8:	432b      	orrs	r3, r5
+ 8007ffa:	6945      	ldr	r5, [r0, #20]
+ 8007ffc:	6811      	ldr	r1, [r2, #0]
+ 8007ffe:	432b      	orrs	r3, r5
+ 8008000:	6985      	ldr	r5, [r0, #24]
+ 8008002:	432b      	orrs	r3, r5
+ 8008004:	69c5      	ldr	r5, [r0, #28]
+ 8008006:	432b      	orrs	r3, r5
+ 8008008:	6a05      	ldr	r5, [r0, #32]
+ 800800a:	432b      	orrs	r3, r5
+ 800800c:	430b      	orrs	r3, r1
+ 800800e:	6013      	str	r3, [r2, #0]
+ 8008010:	f7ff ffae 	bl	8007f70 <DMA_CalcDMAMUXChannelBaseAndMask>
+ 8008014:	f5b4 4f80 	cmp.w	r4, #16384	; 0x4000
+ 8008018:	bf04      	itt	eq
+ 800801a:	2300      	moveq	r3, #0
+ 800801c:	6043      	streq	r3, [r0, #4]
+ 800801e:	6842      	ldr	r2, [r0, #4]
+ 8008020:	6c81      	ldr	r1, [r0, #72]	; 0x48
+ 8008022:	f002 037f 	and.w	r3, r2, #127	; 0x7f
+ 8008026:	600b      	str	r3, [r1, #0]
+ 8008028:	e9d0 1413 	ldrd	r1, r4, [r0, #76]	; 0x4c
+ 800802c:	3a01      	subs	r2, #1
+ 800802e:	2a03      	cmp	r2, #3
+ 8008030:	604c      	str	r4, [r1, #4]
+ 8008032:	d820      	bhi.n	8008076 <HAL_DMA_Init+0xba>
+ 8008034:	4a16      	ldr	r2, [pc, #88]	; (8008090 <HAL_DMA_Init+0xd4>)
+ 8008036:	4917      	ldr	r1, [pc, #92]	; (8008094 <HAL_DMA_Init+0xd8>)
+ 8008038:	6581      	str	r1, [r0, #88]	; 0x58
+ 800803a:	441a      	add	r2, r3
+ 800803c:	3b01      	subs	r3, #1
+ 800803e:	0092      	lsls	r2, r2, #2
+ 8008040:	2101      	movs	r1, #1
+ 8008042:	f003 0303 	and.w	r3, r3, #3
+ 8008046:	fa01 f303 	lsl.w	r3, r1, r3
+ 800804a:	2100      	movs	r1, #0
+ 800804c:	6542      	str	r2, [r0, #84]	; 0x54
+ 800804e:	65c3      	str	r3, [r0, #92]	; 0x5c
+ 8008050:	6011      	str	r1, [r2, #0]
+ 8008052:	4a11      	ldr	r2, [pc, #68]	; (8008098 <HAL_DMA_Init+0xdc>)
+ 8008054:	6453      	str	r3, [r2, #68]	; 0x44
+ 8008056:	2300      	movs	r3, #0
+ 8008058:	2201      	movs	r2, #1
+ 800805a:	63c3      	str	r3, [r0, #60]	; 0x3c
+ 800805c:	f880 3024 	strb.w	r3, [r0, #36]	; 0x24
+ 8008060:	f880 2025 	strb.w	r2, [r0, #37]	; 0x25
+ 8008064:	4618      	mov	r0, r3
+ 8008066:	bd38      	pop	{r3, r4, r5, pc}
+ 8008068:	4b0c      	ldr	r3, [pc, #48]	; (800809c <HAL_DMA_Init+0xe0>)
+ 800806a:	4413      	add	r3, r2
+ 800806c:	fbb3 f3f1 	udiv	r3, r3, r1
+ 8008070:	490b      	ldr	r1, [pc, #44]	; (80080a0 <HAL_DMA_Init+0xe4>)
+ 8008072:	009b      	lsls	r3, r3, #2
+ 8008074:	e7b1      	b.n	8007fda <HAL_DMA_Init+0x1e>
+ 8008076:	2300      	movs	r3, #0
+ 8008078:	e9c0 3315 	strd	r3, r3, [r0, #84]	; 0x54
+ 800807c:	65c3      	str	r3, [r0, #92]	; 0x5c
+ 800807e:	e7ea      	b.n	8008056 <HAL_DMA_Init+0x9a>
+ 8008080:	2001      	movs	r0, #1
+ 8008082:	e7f0      	b.n	8008066 <HAL_DMA_Init+0xaa>
+ 8008084:	40020407 	.word	0x40020407
+ 8008088:	bffdfff8 	.word	0xbffdfff8
+ 800808c:	40020000 	.word	0x40020000
+ 8008090:	1000823f 	.word	0x1000823f
+ 8008094:	40020940 	.word	0x40020940
+ 8008098:	40020900 	.word	0x40020900
+ 800809c:	bffdfbf8 	.word	0xbffdfbf8
+ 80080a0:	40020400 	.word	0x40020400
+
+080080a4 <HAL_DMA_DeInit>:
+ 80080a4:	b538      	push	{r3, r4, r5, lr}
+ 80080a6:	2800      	cmp	r0, #0
+ 80080a8:	d041      	beq.n	800812e <HAL_DMA_DeInit+0x8a>
+ 80080aa:	6802      	ldr	r2, [r0, #0]
+ 80080ac:	6813      	ldr	r3, [r2, #0]
+ 80080ae:	f023 0301 	bic.w	r3, r3, #1
+ 80080b2:	6013      	str	r3, [r2, #0]
+ 80080b4:	4b1f      	ldr	r3, [pc, #124]	; (8008134 <HAL_DMA_DeInit+0x90>)
+ 80080b6:	429a      	cmp	r2, r3
+ 80080b8:	f04f 0114 	mov.w	r1, #20
+ 80080bc:	d830      	bhi.n	8008120 <HAL_DMA_DeInit+0x7c>
+ 80080be:	4b1e      	ldr	r3, [pc, #120]	; (8008138 <HAL_DMA_DeInit+0x94>)
+ 80080c0:	4413      	add	r3, r2
+ 80080c2:	fbb3 f3f1 	udiv	r3, r3, r1
+ 80080c6:	491d      	ldr	r1, [pc, #116]	; (800813c <HAL_DMA_DeInit+0x98>)
+ 80080c8:	009b      	lsls	r3, r3, #2
+ 80080ca:	e9c0 1310 	strd	r1, r3, [r0, #64]	; 0x40
+ 80080ce:	2401      	movs	r4, #1
+ 80080d0:	f003 031c 	and.w	r3, r3, #28
+ 80080d4:	fa04 f303 	lsl.w	r3, r4, r3
+ 80080d8:	2500      	movs	r5, #0
+ 80080da:	6015      	str	r5, [r2, #0]
+ 80080dc:	604b      	str	r3, [r1, #4]
+ 80080de:	f7ff ff47 	bl	8007f70 <DMA_CalcDMAMUXChannelBaseAndMask>
+ 80080e2:	6c83      	ldr	r3, [r0, #72]	; 0x48
+ 80080e4:	6841      	ldr	r1, [r0, #4]
+ 80080e6:	601d      	str	r5, [r3, #0]
+ 80080e8:	e9d0 3213 	ldrd	r3, r2, [r0, #76]	; 0x4c
+ 80080ec:	605a      	str	r2, [r3, #4]
+ 80080ee:	1e4a      	subs	r2, r1, #1
+ 80080f0:	2a03      	cmp	r2, #3
+ 80080f2:	d806      	bhi.n	8008102 <HAL_DMA_DeInit+0x5e>
+ 80080f4:	4b12      	ldr	r3, [pc, #72]	; (8008140 <HAL_DMA_DeInit+0x9c>)
+ 80080f6:	440b      	add	r3, r1
+ 80080f8:	009b      	lsls	r3, r3, #2
+ 80080fa:	4094      	lsls	r4, r2
+ 80080fc:	601d      	str	r5, [r3, #0]
+ 80080fe:	4b11      	ldr	r3, [pc, #68]	; (8008144 <HAL_DMA_DeInit+0xa0>)
+ 8008100:	645c      	str	r4, [r3, #68]	; 0x44
+ 8008102:	2300      	movs	r3, #0
+ 8008104:	63c3      	str	r3, [r0, #60]	; 0x3c
+ 8008106:	e9c0 3315 	strd	r3, r3, [r0, #84]	; 0x54
+ 800810a:	e9c0 330b 	strd	r3, r3, [r0, #44]	; 0x2c
+ 800810e:	e9c0 330d 	strd	r3, r3, [r0, #52]	; 0x34
+ 8008112:	65c3      	str	r3, [r0, #92]	; 0x5c
+ 8008114:	f880 3025 	strb.w	r3, [r0, #37]	; 0x25
+ 8008118:	f880 3024 	strb.w	r3, [r0, #36]	; 0x24
+ 800811c:	4618      	mov	r0, r3
+ 800811e:	bd38      	pop	{r3, r4, r5, pc}
+ 8008120:	4b09      	ldr	r3, [pc, #36]	; (8008148 <HAL_DMA_DeInit+0xa4>)
+ 8008122:	4413      	add	r3, r2
+ 8008124:	fbb3 f3f1 	udiv	r3, r3, r1
+ 8008128:	4908      	ldr	r1, [pc, #32]	; (800814c <HAL_DMA_DeInit+0xa8>)
+ 800812a:	009b      	lsls	r3, r3, #2
+ 800812c:	e7cd      	b.n	80080ca <HAL_DMA_DeInit+0x26>
+ 800812e:	2001      	movs	r0, #1
+ 8008130:	e7f5      	b.n	800811e <HAL_DMA_DeInit+0x7a>
+ 8008132:	bf00      	nop
+ 8008134:	40020407 	.word	0x40020407
+ 8008138:	bffdfff8 	.word	0xbffdfff8
+ 800813c:	40020000 	.word	0x40020000
+ 8008140:	1000823f 	.word	0x1000823f
+ 8008144:	40020900 	.word	0x40020900
+ 8008148:	bffdfbf8 	.word	0xbffdfbf8
+ 800814c:	40020400 	.word	0x40020400
+
+08008150 <HAL_DMA_Start_IT>:
+ 8008150:	b570      	push	{r4, r5, r6, lr}
+ 8008152:	f890 5024 	ldrb.w	r5, [r0, #36]	; 0x24
+ 8008156:	2d01      	cmp	r5, #1
+ 8008158:	4604      	mov	r4, r0
+ 800815a:	d03b      	beq.n	80081d4 <HAL_DMA_Start_IT+0x84>
+ 800815c:	f890 6025 	ldrb.w	r6, [r0, #37]	; 0x25
+ 8008160:	2501      	movs	r5, #1
+ 8008162:	42ae      	cmp	r6, r5
+ 8008164:	f880 5024 	strb.w	r5, [r0, #36]	; 0x24
+ 8008168:	f04f 0600 	mov.w	r6, #0
+ 800816c:	d12c      	bne.n	80081c8 <HAL_DMA_Start_IT+0x78>
+ 800816e:	2502      	movs	r5, #2
+ 8008170:	f880 5025 	strb.w	r5, [r0, #37]	; 0x25
+ 8008174:	6805      	ldr	r5, [r0, #0]
+ 8008176:	63c6      	str	r6, [r0, #60]	; 0x3c
+ 8008178:	682e      	ldr	r6, [r5, #0]
+ 800817a:	f026 0601 	bic.w	r6, r6, #1
+ 800817e:	602e      	str	r6, [r5, #0]
+ 8008180:	f7ff fedc 	bl	8007f3c <DMA_SetConfig>
+ 8008184:	6b03      	ldr	r3, [r0, #48]	; 0x30
+ 8008186:	b1bb      	cbz	r3, 80081b8 <HAL_DMA_Start_IT+0x68>
+ 8008188:	682b      	ldr	r3, [r5, #0]
+ 800818a:	f043 030e 	orr.w	r3, r3, #14
+ 800818e:	602b      	str	r3, [r5, #0]
+ 8008190:	6ca3      	ldr	r3, [r4, #72]	; 0x48
+ 8008192:	681a      	ldr	r2, [r3, #0]
+ 8008194:	03d2      	lsls	r2, r2, #15
+ 8008196:	bf42      	ittt	mi
+ 8008198:	681a      	ldrmi	r2, [r3, #0]
+ 800819a:	f442 7280 	orrmi.w	r2, r2, #256	; 0x100
+ 800819e:	601a      	strmi	r2, [r3, #0]
+ 80081a0:	6d63      	ldr	r3, [r4, #84]	; 0x54
+ 80081a2:	b11b      	cbz	r3, 80081ac <HAL_DMA_Start_IT+0x5c>
+ 80081a4:	681a      	ldr	r2, [r3, #0]
+ 80081a6:	f442 7280 	orr.w	r2, r2, #256	; 0x100
+ 80081aa:	601a      	str	r2, [r3, #0]
+ 80081ac:	682b      	ldr	r3, [r5, #0]
+ 80081ae:	f043 0301 	orr.w	r3, r3, #1
+ 80081b2:	602b      	str	r3, [r5, #0]
+ 80081b4:	2000      	movs	r0, #0
+ 80081b6:	bd70      	pop	{r4, r5, r6, pc}
+ 80081b8:	682b      	ldr	r3, [r5, #0]
+ 80081ba:	f023 0304 	bic.w	r3, r3, #4
+ 80081be:	602b      	str	r3, [r5, #0]
+ 80081c0:	682b      	ldr	r3, [r5, #0]
+ 80081c2:	f043 030a 	orr.w	r3, r3, #10
+ 80081c6:	e7e2      	b.n	800818e <HAL_DMA_Start_IT+0x3e>
+ 80081c8:	2380      	movs	r3, #128	; 0x80
+ 80081ca:	63c3      	str	r3, [r0, #60]	; 0x3c
+ 80081cc:	f880 6024 	strb.w	r6, [r0, #36]	; 0x24
+ 80081d0:	4628      	mov	r0, r5
+ 80081d2:	e7f0      	b.n	80081b6 <HAL_DMA_Start_IT+0x66>
+ 80081d4:	2002      	movs	r0, #2
+ 80081d6:	e7ee      	b.n	80081b6 <HAL_DMA_Start_IT+0x66>
+
+080081d8 <HAL_DMA_Abort>:
+ 80081d8:	4603      	mov	r3, r0
+ 80081da:	b140      	cbz	r0, 80081ee <HAL_DMA_Abort+0x16>
+ 80081dc:	f890 2025 	ldrb.w	r2, [r0, #37]	; 0x25
+ 80081e0:	2a02      	cmp	r2, #2
+ 80081e2:	d006      	beq.n	80081f2 <HAL_DMA_Abort+0x1a>
+ 80081e4:	2204      	movs	r2, #4
+ 80081e6:	63c2      	str	r2, [r0, #60]	; 0x3c
+ 80081e8:	2200      	movs	r2, #0
+ 80081ea:	f880 2024 	strb.w	r2, [r0, #36]	; 0x24
+ 80081ee:	2001      	movs	r0, #1
+ 80081f0:	4770      	bx	lr
+ 80081f2:	6802      	ldr	r2, [r0, #0]
+ 80081f4:	6c80      	ldr	r0, [r0, #72]	; 0x48
+ 80081f6:	6811      	ldr	r1, [r2, #0]
+ 80081f8:	f021 010e 	bic.w	r1, r1, #14
+ 80081fc:	6011      	str	r1, [r2, #0]
+ 80081fe:	6801      	ldr	r1, [r0, #0]
+ 8008200:	f421 7180 	bic.w	r1, r1, #256	; 0x100
+ 8008204:	6001      	str	r1, [r0, #0]
+ 8008206:	6811      	ldr	r1, [r2, #0]
+ 8008208:	f021 0101 	bic.w	r1, r1, #1
+ 800820c:	6011      	str	r1, [r2, #0]
+ 800820e:	e9d3 0210 	ldrd	r0, r2, [r3, #64]	; 0x40
+ 8008212:	f002 011c 	and.w	r1, r2, #28
+ 8008216:	2201      	movs	r2, #1
+ 8008218:	408a      	lsls	r2, r1
+ 800821a:	6042      	str	r2, [r0, #4]
+ 800821c:	e9d3 2113 	ldrd	r2, r1, [r3, #76]	; 0x4c
+ 8008220:	6051      	str	r1, [r2, #4]
+ 8008222:	6d5a      	ldr	r2, [r3, #84]	; 0x54
+ 8008224:	b132      	cbz	r2, 8008234 <HAL_DMA_Abort+0x5c>
+ 8008226:	6811      	ldr	r1, [r2, #0]
+ 8008228:	f421 7180 	bic.w	r1, r1, #256	; 0x100
+ 800822c:	6011      	str	r1, [r2, #0]
+ 800822e:	e9d3 2116 	ldrd	r2, r1, [r3, #88]	; 0x58
+ 8008232:	6051      	str	r1, [r2, #4]
+ 8008234:	2201      	movs	r2, #1
+ 8008236:	2000      	movs	r0, #0
+ 8008238:	f883 2025 	strb.w	r2, [r3, #37]	; 0x25
+ 800823c:	f883 0024 	strb.w	r0, [r3, #36]	; 0x24
+ 8008240:	4770      	bx	lr
+
+08008242 <HAL_DMA_Abort_IT>:
+ 8008242:	b510      	push	{r4, lr}
+ 8008244:	f890 3025 	ldrb.w	r3, [r0, #37]	; 0x25
+ 8008248:	2b02      	cmp	r3, #2
+ 800824a:	d003      	beq.n	8008254 <HAL_DMA_Abort_IT+0x12>
+ 800824c:	2304      	movs	r3, #4
+ 800824e:	63c3      	str	r3, [r0, #60]	; 0x3c
+ 8008250:	2001      	movs	r0, #1
+ 8008252:	bd10      	pop	{r4, pc}
+ 8008254:	6803      	ldr	r3, [r0, #0]
+ 8008256:	681a      	ldr	r2, [r3, #0]
+ 8008258:	f022 020e 	bic.w	r2, r2, #14
+ 800825c:	601a      	str	r2, [r3, #0]
+ 800825e:	681a      	ldr	r2, [r3, #0]
+ 8008260:	f022 0201 	bic.w	r2, r2, #1
+ 8008264:	601a      	str	r2, [r3, #0]
+ 8008266:	6c82      	ldr	r2, [r0, #72]	; 0x48
+ 8008268:	6813      	ldr	r3, [r2, #0]
+ 800826a:	f423 7380 	bic.w	r3, r3, #256	; 0x100
+ 800826e:	6013      	str	r3, [r2, #0]
+ 8008270:	e9d0 1310 	ldrd	r1, r3, [r0, #64]	; 0x40
+ 8008274:	f003 021c 	and.w	r2, r3, #28
+ 8008278:	2301      	movs	r3, #1
+ 800827a:	4093      	lsls	r3, r2
+ 800827c:	604b      	str	r3, [r1, #4]
+ 800827e:	e9d0 3213 	ldrd	r3, r2, [r0, #76]	; 0x4c
+ 8008282:	605a      	str	r2, [r3, #4]
+ 8008284:	6d43      	ldr	r3, [r0, #84]	; 0x54
+ 8008286:	b133      	cbz	r3, 8008296 <HAL_DMA_Abort_IT+0x54>
+ 8008288:	681a      	ldr	r2, [r3, #0]
+ 800828a:	f422 7280 	bic.w	r2, r2, #256	; 0x100
+ 800828e:	601a      	str	r2, [r3, #0]
+ 8008290:	e9d0 3216 	ldrd	r3, r2, [r0, #88]	; 0x58
+ 8008294:	605a      	str	r2, [r3, #4]
+ 8008296:	2301      	movs	r3, #1
+ 8008298:	f880 3025 	strb.w	r3, [r0, #37]	; 0x25
+ 800829c:	6b83      	ldr	r3, [r0, #56]	; 0x38
+ 800829e:	2400      	movs	r4, #0
+ 80082a0:	f880 4024 	strb.w	r4, [r0, #36]	; 0x24
+ 80082a4:	b113      	cbz	r3, 80082ac <HAL_DMA_Abort_IT+0x6a>
+ 80082a6:	4798      	blx	r3
+ 80082a8:	4620      	mov	r0, r4
+ 80082aa:	e7d2      	b.n	8008252 <HAL_DMA_Abort_IT+0x10>
+ 80082ac:	4618      	mov	r0, r3
+ 80082ae:	e7d0      	b.n	8008252 <HAL_DMA_Abort_IT+0x10>
+
+080082b0 <HAL_DMA_IRQHandler>:
+ 80082b0:	b470      	push	{r4, r5, r6}
+ 80082b2:	6c42      	ldr	r2, [r0, #68]	; 0x44
+ 80082b4:	6c04      	ldr	r4, [r0, #64]	; 0x40
+ 80082b6:	6803      	ldr	r3, [r0, #0]
+ 80082b8:	6826      	ldr	r6, [r4, #0]
+ 80082ba:	681d      	ldr	r5, [r3, #0]
+ 80082bc:	f002 021c 	and.w	r2, r2, #28
+ 80082c0:	2104      	movs	r1, #4
+ 80082c2:	4091      	lsls	r1, r2
+ 80082c4:	4231      	tst	r1, r6
+ 80082c6:	d00f      	beq.n	80082e8 <HAL_DMA_IRQHandler+0x38>
+ 80082c8:	f015 0f04 	tst.w	r5, #4
+ 80082cc:	d00c      	beq.n	80082e8 <HAL_DMA_IRQHandler+0x38>
+ 80082ce:	681a      	ldr	r2, [r3, #0]
+ 80082d0:	0692      	lsls	r2, r2, #26
+ 80082d2:	bf5e      	ittt	pl
+ 80082d4:	681a      	ldrpl	r2, [r3, #0]
+ 80082d6:	f022 0204 	bicpl.w	r2, r2, #4
+ 80082da:	601a      	strpl	r2, [r3, #0]
+ 80082dc:	6b03      	ldr	r3, [r0, #48]	; 0x30
+ 80082de:	6061      	str	r1, [r4, #4]
+ 80082e0:	2b00      	cmp	r3, #0
+ 80082e2:	d033      	beq.n	800834c <HAL_DMA_IRQHandler+0x9c>
+ 80082e4:	bc70      	pop	{r4, r5, r6}
+ 80082e6:	4718      	bx	r3
+ 80082e8:	2102      	movs	r1, #2
+ 80082ea:	4091      	lsls	r1, r2
+ 80082ec:	4231      	tst	r1, r6
+ 80082ee:	d017      	beq.n	8008320 <HAL_DMA_IRQHandler+0x70>
+ 80082f0:	f015 0f02 	tst.w	r5, #2
+ 80082f4:	d014      	beq.n	8008320 <HAL_DMA_IRQHandler+0x70>
+ 80082f6:	681a      	ldr	r2, [r3, #0]
+ 80082f8:	0694      	lsls	r4, r2, #26
+ 80082fa:	d406      	bmi.n	800830a <HAL_DMA_IRQHandler+0x5a>
+ 80082fc:	681a      	ldr	r2, [r3, #0]
+ 80082fe:	f022 020a 	bic.w	r2, r2, #10
+ 8008302:	601a      	str	r2, [r3, #0]
+ 8008304:	2201      	movs	r2, #1
+ 8008306:	f880 2025 	strb.w	r2, [r0, #37]	; 0x25
+ 800830a:	4a11      	ldr	r2, [pc, #68]	; (8008350 <HAL_DMA_IRQHandler+0xa0>)
+ 800830c:	4293      	cmp	r3, r2
+ 800830e:	bf8c      	ite	hi
+ 8008310:	4b10      	ldrhi	r3, [pc, #64]	; (8008354 <HAL_DMA_IRQHandler+0xa4>)
+ 8008312:	4b11      	ldrls	r3, [pc, #68]	; (8008358 <HAL_DMA_IRQHandler+0xa8>)
+ 8008314:	6059      	str	r1, [r3, #4]
+ 8008316:	2300      	movs	r3, #0
+ 8008318:	f880 3024 	strb.w	r3, [r0, #36]	; 0x24
+ 800831c:	6ac3      	ldr	r3, [r0, #44]	; 0x2c
+ 800831e:	e7df      	b.n	80082e0 <HAL_DMA_IRQHandler+0x30>
+ 8008320:	2108      	movs	r1, #8
+ 8008322:	4091      	lsls	r1, r2
+ 8008324:	4231      	tst	r1, r6
+ 8008326:	d011      	beq.n	800834c <HAL_DMA_IRQHandler+0x9c>
+ 8008328:	0729      	lsls	r1, r5, #28
+ 800832a:	d50f      	bpl.n	800834c <HAL_DMA_IRQHandler+0x9c>
+ 800832c:	6819      	ldr	r1, [r3, #0]
+ 800832e:	f021 010e 	bic.w	r1, r1, #14
+ 8008332:	6019      	str	r1, [r3, #0]
+ 8008334:	2301      	movs	r3, #1
+ 8008336:	fa03 f202 	lsl.w	r2, r3, r2
+ 800833a:	6062      	str	r2, [r4, #4]
+ 800833c:	63c3      	str	r3, [r0, #60]	; 0x3c
+ 800833e:	f880 3025 	strb.w	r3, [r0, #37]	; 0x25
+ 8008342:	2300      	movs	r3, #0
+ 8008344:	f880 3024 	strb.w	r3, [r0, #36]	; 0x24
+ 8008348:	6b43      	ldr	r3, [r0, #52]	; 0x34
+ 800834a:	e7c9      	b.n	80082e0 <HAL_DMA_IRQHandler+0x30>
+ 800834c:	bc70      	pop	{r4, r5, r6}
+ 800834e:	4770      	bx	lr
+ 8008350:	40020080 	.word	0x40020080
+ 8008354:	40020400 	.word	0x40020400
+ 8008358:	40020000 	.word	0x40020000
+
+0800835c <FLASH_Program_Fast>:
+ 800835c:	4a0a      	ldr	r2, [pc, #40]	; (8008388 <FLASH_Program_Fast+0x2c>)
+ 800835e:	6953      	ldr	r3, [r2, #20]
+ 8008360:	f443 2380 	orr.w	r3, r3, #262144	; 0x40000
+ 8008364:	b530      	push	{r4, r5, lr}
+ 8008366:	6153      	str	r3, [r2, #20]
+ 8008368:	f3ef 8410 	mrs	r4, PRIMASK
+ 800836c:	b672      	cpsid	i
+ 800836e:	2300      	movs	r3, #0
+ 8008370:	58cd      	ldr	r5, [r1, r3]
+ 8008372:	50c5      	str	r5, [r0, r3]
+ 8008374:	3304      	adds	r3, #4
+ 8008376:	f5b3 7f80 	cmp.w	r3, #256	; 0x100
+ 800837a:	d1f9      	bne.n	8008370 <FLASH_Program_Fast+0x14>
+ 800837c:	6913      	ldr	r3, [r2, #16]
+ 800837e:	03db      	lsls	r3, r3, #15
+ 8008380:	d4fc      	bmi.n	800837c <FLASH_Program_Fast+0x20>
+ 8008382:	f384 8810 	msr	PRIMASK, r4
+ 8008386:	bd30      	pop	{r4, r5, pc}
+ 8008388:	58004000 	.word	0x58004000
+
+0800838c <HAL_FLASH_Unlock>:
+ 800838c:	4b06      	ldr	r3, [pc, #24]	; (80083a8 <HAL_FLASH_Unlock+0x1c>)
+ 800838e:	695a      	ldr	r2, [r3, #20]
+ 8008390:	2a00      	cmp	r2, #0
+ 8008392:	bfbf      	itttt	lt
+ 8008394:	4a05      	ldrlt	r2, [pc, #20]	; (80083ac <HAL_FLASH_Unlock+0x20>)
+ 8008396:	609a      	strlt	r2, [r3, #8]
+ 8008398:	f102 3288 	addlt.w	r2, r2, #2290649224	; 0x88888888
+ 800839c:	609a      	strlt	r2, [r3, #8]
+ 800839e:	bfba      	itte	lt
+ 80083a0:	6958      	ldrlt	r0, [r3, #20]
+ 80083a2:	0fc0      	lsrlt	r0, r0, #31
+ 80083a4:	2000      	movge	r0, #0
+ 80083a6:	4770      	bx	lr
+ 80083a8:	58004000 	.word	0x58004000
+ 80083ac:	45670123 	.word	0x45670123
+
+080083b0 <HAL_FLASH_Lock>:
+ 80083b0:	4b04      	ldr	r3, [pc, #16]	; (80083c4 <HAL_FLASH_Lock+0x14>)
+ 80083b2:	695a      	ldr	r2, [r3, #20]
+ 80083b4:	f042 4200 	orr.w	r2, r2, #2147483648	; 0x80000000
+ 80083b8:	615a      	str	r2, [r3, #20]
+ 80083ba:	6958      	ldr	r0, [r3, #20]
+ 80083bc:	43c0      	mvns	r0, r0
+ 80083be:	0fc0      	lsrs	r0, r0, #31
+ 80083c0:	4770      	bx	lr
+ 80083c2:	bf00      	nop
+ 80083c4:	58004000 	.word	0x58004000
+
+080083c8 <FLASH_WaitForLastOperation>:
+ 80083c8:	b570      	push	{r4, r5, r6, lr}
+ 80083ca:	4605      	mov	r5, r0
+ 80083cc:	f7fa fbe0 	bl	8002b90 <HAL_GetTick>
+ 80083d0:	4e12      	ldr	r6, [pc, #72]	; (800841c <FLASH_WaitForLastOperation+0x54>)
+ 80083d2:	4604      	mov	r4, r0
+ 80083d4:	6933      	ldr	r3, [r6, #16]
+ 80083d6:	03d9      	lsls	r1, r3, #15
+ 80083d8:	d413      	bmi.n	8008402 <FLASH_WaitForLastOperation+0x3a>
+ 80083da:	6933      	ldr	r3, [r6, #16]
+ 80083dc:	07da      	lsls	r2, r3, #31
+ 80083de:	bf44      	itt	mi
+ 80083e0:	2201      	movmi	r2, #1
+ 80083e2:	6132      	strmi	r2, [r6, #16]
+ 80083e4:	f24c 32fa 	movw	r2, #50170	; 0xc3fa
+ 80083e8:	4013      	ands	r3, r2
+ 80083ea:	d111      	bne.n	8008410 <FLASH_WaitForLastOperation+0x48>
+ 80083ec:	4e0b      	ldr	r6, [pc, #44]	; (800841c <FLASH_WaitForLastOperation+0x54>)
+ 80083ee:	6930      	ldr	r0, [r6, #16]
+ 80083f0:	f410 2080 	ands.w	r0, r0, #262144	; 0x40000
+ 80083f4:	d00b      	beq.n	800840e <FLASH_WaitForLastOperation+0x46>
+ 80083f6:	f7fa fbcb 	bl	8002b90 <HAL_GetTick>
+ 80083fa:	1b00      	subs	r0, r0, r4
+ 80083fc:	42a8      	cmp	r0, r5
+ 80083fe:	d3f6      	bcc.n	80083ee <FLASH_WaitForLastOperation+0x26>
+ 8008400:	e004      	b.n	800840c <FLASH_WaitForLastOperation+0x44>
+ 8008402:	f7fa fbc5 	bl	8002b90 <HAL_GetTick>
+ 8008406:	1b00      	subs	r0, r0, r4
+ 8008408:	42a8      	cmp	r0, r5
+ 800840a:	d3e3      	bcc.n	80083d4 <FLASH_WaitForLastOperation+0xc>
+ 800840c:	2003      	movs	r0, #3
+ 800840e:	bd70      	pop	{r4, r5, r6, pc}
+ 8008410:	4a02      	ldr	r2, [pc, #8]	; (800841c <FLASH_WaitForLastOperation+0x54>)
+ 8008412:	6113      	str	r3, [r2, #16]
+ 8008414:	4a02      	ldr	r2, [pc, #8]	; (8008420 <FLASH_WaitForLastOperation+0x58>)
+ 8008416:	2001      	movs	r0, #1
+ 8008418:	6053      	str	r3, [r2, #4]
+ 800841a:	e7f8      	b.n	800840e <FLASH_WaitForLastOperation+0x46>
+ 800841c:	58004000 	.word	0x58004000
+ 8008420:	20000f44 	.word	0x20000f44
+
+08008424 <HAL_FLASH_Program>:
+ 8008424:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8008428:	4d18      	ldr	r5, [pc, #96]	; (800848c <HAL_FLASH_Program+0x68>)
+ 800842a:	4698      	mov	r8, r3
+ 800842c:	782b      	ldrb	r3, [r5, #0]
+ 800842e:	2b01      	cmp	r3, #1
+ 8008430:	4606      	mov	r6, r0
+ 8008432:	460c      	mov	r4, r1
+ 8008434:	4617      	mov	r7, r2
+ 8008436:	d026      	beq.n	8008486 <HAL_FLASH_Program+0x62>
+ 8008438:	2301      	movs	r3, #1
+ 800843a:	702b      	strb	r3, [r5, #0]
+ 800843c:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
+ 8008440:	2300      	movs	r3, #0
+ 8008442:	606b      	str	r3, [r5, #4]
+ 8008444:	f7ff ffc0 	bl	80083c8 <FLASH_WaitForLastOperation>
+ 8008448:	b9a0      	cbnz	r0, 8008474 <HAL_FLASH_Program+0x50>
+ 800844a:	2e01      	cmp	r6, #1
+ 800844c:	d116      	bne.n	800847c <HAL_FLASH_Program+0x58>
+ 800844e:	4a10      	ldr	r2, [pc, #64]	; (8008490 <HAL_FLASH_Program+0x6c>)
+ 8008450:	6953      	ldr	r3, [r2, #20]
+ 8008452:	f043 0301 	orr.w	r3, r3, #1
+ 8008456:	6153      	str	r3, [r2, #20]
+ 8008458:	6027      	str	r7, [r4, #0]
+ 800845a:	f3bf 8f6f 	isb	sy
+ 800845e:	f8c4 8004 	str.w	r8, [r4, #4]
+ 8008462:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
+ 8008466:	f7ff ffaf 	bl	80083c8 <FLASH_WaitForLastOperation>
+ 800846a:	4a09      	ldr	r2, [pc, #36]	; (8008490 <HAL_FLASH_Program+0x6c>)
+ 800846c:	6953      	ldr	r3, [r2, #20]
+ 800846e:	ea23 0306 	bic.w	r3, r3, r6
+ 8008472:	6153      	str	r3, [r2, #20]
+ 8008474:	2300      	movs	r3, #0
+ 8008476:	702b      	strb	r3, [r5, #0]
+ 8008478:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800847c:	4639      	mov	r1, r7
+ 800847e:	4620      	mov	r0, r4
+ 8008480:	f7ff ff6c 	bl	800835c <FLASH_Program_Fast>
+ 8008484:	e7ed      	b.n	8008462 <HAL_FLASH_Program+0x3e>
+ 8008486:	2002      	movs	r0, #2
+ 8008488:	e7f6      	b.n	8008478 <HAL_FLASH_Program+0x54>
+ 800848a:	bf00      	nop
+ 800848c:	20000f44 	.word	0x20000f44
+ 8008490:	58004000 	.word	0x58004000
+
+08008494 <FLASH_PageErase>:
+ 8008494:	4a05      	ldr	r2, [pc, #20]	; (80084ac <FLASH_PageErase+0x18>)
+ 8008496:	6953      	ldr	r3, [r2, #20]
+ 8008498:	f423 737e 	bic.w	r3, r3, #1016	; 0x3f8
+ 800849c:	ea43 00c0 	orr.w	r0, r3, r0, lsl #3
+ 80084a0:	f440 3080 	orr.w	r0, r0, #65536	; 0x10000
+ 80084a4:	f040 0002 	orr.w	r0, r0, #2
+ 80084a8:	6150      	str	r0, [r2, #20]
+ 80084aa:	4770      	bx	lr
+ 80084ac:	58004000 	.word	0x58004000
+
+080084b0 <HAL_FLASHEx_Erase>:
+ 80084b0:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 80084b4:	4f23      	ldr	r7, [pc, #140]	; (8008544 <HAL_FLASHEx_Erase+0x94>)
+ 80084b6:	783b      	ldrb	r3, [r7, #0]
+ 80084b8:	2b01      	cmp	r3, #1
+ 80084ba:	4605      	mov	r5, r0
+ 80084bc:	4688      	mov	r8, r1
+ 80084be:	d03f      	beq.n	8008540 <HAL_FLASHEx_Erase+0x90>
+ 80084c0:	2301      	movs	r3, #1
+ 80084c2:	703b      	strb	r3, [r7, #0]
+ 80084c4:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
+ 80084c8:	2300      	movs	r3, #0
+ 80084ca:	607b      	str	r3, [r7, #4]
+ 80084cc:	f7ff ff7c 	bl	80083c8 <FLASH_WaitForLastOperation>
+ 80084d0:	4604      	mov	r4, r0
+ 80084d2:	b988      	cbnz	r0, 80084f8 <HAL_FLASHEx_Erase+0x48>
+ 80084d4:	682b      	ldr	r3, [r5, #0]
+ 80084d6:	2b04      	cmp	r3, #4
+ 80084d8:	d113      	bne.n	8008502 <HAL_FLASHEx_Erase+0x52>
+ 80084da:	4a1b      	ldr	r2, [pc, #108]	; (8008548 <HAL_FLASHEx_Erase+0x98>)
+ 80084dc:	6953      	ldr	r3, [r2, #20]
+ 80084de:	f443 3380 	orr.w	r3, r3, #65536	; 0x10000
+ 80084e2:	f043 0304 	orr.w	r3, r3, #4
+ 80084e6:	6153      	str	r3, [r2, #20]
+ 80084e8:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
+ 80084ec:	f7ff ff6c 	bl	80083c8 <FLASH_WaitForLastOperation>
+ 80084f0:	4604      	mov	r4, r0
+ 80084f2:	4b15      	ldr	r3, [pc, #84]	; (8008548 <HAL_FLASHEx_Erase+0x98>)
+ 80084f4:	681a      	ldr	r2, [r3, #0]
+ 80084f6:	681b      	ldr	r3, [r3, #0]
+ 80084f8:	2300      	movs	r3, #0
+ 80084fa:	703b      	strb	r3, [r7, #0]
+ 80084fc:	4620      	mov	r0, r4
+ 80084fe:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 8008502:	f04f 33ff 	mov.w	r3, #4294967295
+ 8008506:	f8c8 3000 	str.w	r3, [r8]
+ 800850a:	686e      	ldr	r6, [r5, #4]
+ 800850c:	e9d5 3201 	ldrd	r3, r2, [r5, #4]
+ 8008510:	4413      	add	r3, r2
+ 8008512:	42b3      	cmp	r3, r6
+ 8008514:	d90a      	bls.n	800852c <HAL_FLASHEx_Erase+0x7c>
+ 8008516:	4630      	mov	r0, r6
+ 8008518:	f7ff ffbc 	bl	8008494 <FLASH_PageErase>
+ 800851c:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
+ 8008520:	f7ff ff52 	bl	80083c8 <FLASH_WaitForLastOperation>
+ 8008524:	b150      	cbz	r0, 800853c <HAL_FLASHEx_Erase+0x8c>
+ 8008526:	f8c8 6000 	str.w	r6, [r8]
+ 800852a:	4604      	mov	r4, r0
+ 800852c:	4a06      	ldr	r2, [pc, #24]	; (8008548 <HAL_FLASHEx_Erase+0x98>)
+ 800852e:	6953      	ldr	r3, [r2, #20]
+ 8008530:	f423 737e 	bic.w	r3, r3, #1016	; 0x3f8
+ 8008534:	f023 0302 	bic.w	r3, r3, #2
+ 8008538:	6153      	str	r3, [r2, #20]
+ 800853a:	e7da      	b.n	80084f2 <HAL_FLASHEx_Erase+0x42>
+ 800853c:	3601      	adds	r6, #1
+ 800853e:	e7e5      	b.n	800850c <HAL_FLASHEx_Erase+0x5c>
+ 8008540:	2402      	movs	r4, #2
+ 8008542:	e7db      	b.n	80084fc <HAL_FLASHEx_Erase+0x4c>
+ 8008544:	20000f44 	.word	0x20000f44
+ 8008548:	58004000 	.word	0x58004000
+
+0800854c <HAL_GPIO_Init>:
+ 800854c:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8008550:	4c52      	ldr	r4, [pc, #328]	; (800869c <HAL_GPIO_Init+0x150>)
+ 8008552:	2300      	movs	r3, #0
+ 8008554:	f04f 090f 	mov.w	r9, #15
+ 8008558:	680a      	ldr	r2, [r1, #0]
+ 800855a:	fa32 f503 	lsrs.w	r5, r2, r3
+ 800855e:	d101      	bne.n	8008564 <HAL_GPIO_Init+0x18>
+ 8008560:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 8008564:	2501      	movs	r5, #1
+ 8008566:	fa05 f803 	lsl.w	r8, r5, r3
+ 800856a:	ea18 0202 	ands.w	r2, r8, r2
+ 800856e:	f000 808e 	beq.w	800868e <HAL_GPIO_Init+0x142>
+ 8008572:	684e      	ldr	r6, [r1, #4]
+ 8008574:	2703      	movs	r7, #3
+ 8008576:	f006 0503 	and.w	r5, r6, #3
+ 800857a:	ea4f 0e43 	mov.w	lr, r3, lsl #1
+ 800857e:	fa07 fc0e 	lsl.w	ip, r7, lr
+ 8008582:	1e6f      	subs	r7, r5, #1
+ 8008584:	2f01      	cmp	r7, #1
+ 8008586:	ea6f 0c0c 	mvn.w	ip, ip
+ 800858a:	d832      	bhi.n	80085f2 <HAL_GPIO_Init+0xa6>
+ 800858c:	6887      	ldr	r7, [r0, #8]
+ 800858e:	ea07 0a0c 	and.w	sl, r7, ip
+ 8008592:	68cf      	ldr	r7, [r1, #12]
+ 8008594:	fa07 f70e 	lsl.w	r7, r7, lr
+ 8008598:	ea47 070a 	orr.w	r7, r7, sl
+ 800859c:	6087      	str	r7, [r0, #8]
+ 800859e:	6847      	ldr	r7, [r0, #4]
+ 80085a0:	ea27 0808 	bic.w	r8, r7, r8
+ 80085a4:	f3c6 1700 	ubfx	r7, r6, #4, #1
+ 80085a8:	409f      	lsls	r7, r3
+ 80085aa:	ea47 0708 	orr.w	r7, r7, r8
+ 80085ae:	6047      	str	r7, [r0, #4]
+ 80085b0:	68c7      	ldr	r7, [r0, #12]
+ 80085b2:	ea07 080c 	and.w	r8, r7, ip
+ 80085b6:	688f      	ldr	r7, [r1, #8]
+ 80085b8:	fa07 f70e 	lsl.w	r7, r7, lr
+ 80085bc:	ea47 0708 	orr.w	r7, r7, r8
+ 80085c0:	2d02      	cmp	r5, #2
+ 80085c2:	60c7      	str	r7, [r0, #12]
+ 80085c4:	d117      	bne.n	80085f6 <HAL_GPIO_Init+0xaa>
+ 80085c6:	ea4f 08d3 	mov.w	r8, r3, lsr #3
+ 80085ca:	eb00 0888 	add.w	r8, r0, r8, lsl #2
+ 80085ce:	f003 0a07 	and.w	sl, r3, #7
+ 80085d2:	f8d8 7020 	ldr.w	r7, [r8, #32]
+ 80085d6:	ea4f 0a8a 	mov.w	sl, sl, lsl #2
+ 80085da:	fa09 fb0a 	lsl.w	fp, r9, sl
+ 80085de:	ea27 0b0b 	bic.w	fp, r7, fp
+ 80085e2:	690f      	ldr	r7, [r1, #16]
+ 80085e4:	fa07 f70a 	lsl.w	r7, r7, sl
+ 80085e8:	ea47 070b 	orr.w	r7, r7, fp
+ 80085ec:	f8c8 7020 	str.w	r7, [r8, #32]
+ 80085f0:	e001      	b.n	80085f6 <HAL_GPIO_Init+0xaa>
+ 80085f2:	2d03      	cmp	r5, #3
+ 80085f4:	d1dc      	bne.n	80085b0 <HAL_GPIO_Init+0x64>
+ 80085f6:	6807      	ldr	r7, [r0, #0]
+ 80085f8:	fa05 f50e 	lsl.w	r5, r5, lr
+ 80085fc:	ea07 070c 	and.w	r7, r7, ip
+ 8008600:	433d      	orrs	r5, r7
+ 8008602:	f416 3f40 	tst.w	r6, #196608	; 0x30000
+ 8008606:	6005      	str	r5, [r0, #0]
+ 8008608:	d041      	beq.n	800868e <HAL_GPIO_Init+0x142>
+ 800860a:	f023 0703 	bic.w	r7, r3, #3
+ 800860e:	f107 4780 	add.w	r7, r7, #1073741824	; 0x40000000
+ 8008612:	f507 3780 	add.w	r7, r7, #65536	; 0x10000
+ 8008616:	f003 0c03 	and.w	ip, r3, #3
+ 800861a:	68bd      	ldr	r5, [r7, #8]
+ 800861c:	ea4f 0c8c 	mov.w	ip, ip, lsl #2
+ 8008620:	f04f 0e07 	mov.w	lr, #7
+ 8008624:	fa0e fe0c 	lsl.w	lr, lr, ip
+ 8008628:	f1b0 4f90 	cmp.w	r0, #1207959552	; 0x48000000
+ 800862c:	ea25 0e0e 	bic.w	lr, r5, lr
+ 8008630:	d02f      	beq.n	8008692 <HAL_GPIO_Init+0x146>
+ 8008632:	4d1b      	ldr	r5, [pc, #108]	; (80086a0 <HAL_GPIO_Init+0x154>)
+ 8008634:	42a8      	cmp	r0, r5
+ 8008636:	d02e      	beq.n	8008696 <HAL_GPIO_Init+0x14a>
+ 8008638:	f505 6580 	add.w	r5, r5, #1024	; 0x400
+ 800863c:	42a8      	cmp	r0, r5
+ 800863e:	bf0c      	ite	eq
+ 8008640:	2502      	moveq	r5, #2
+ 8008642:	2507      	movne	r5, #7
+ 8008644:	fa05 f50c 	lsl.w	r5, r5, ip
+ 8008648:	ea45 050e 	orr.w	r5, r5, lr
+ 800864c:	60bd      	str	r5, [r7, #8]
+ 800864e:	6825      	ldr	r5, [r4, #0]
+ 8008650:	43d7      	mvns	r7, r2
+ 8008652:	f416 1f80 	tst.w	r6, #1048576	; 0x100000
+ 8008656:	bf0c      	ite	eq
+ 8008658:	403d      	andeq	r5, r7
+ 800865a:	4315      	orrne	r5, r2
+ 800865c:	6025      	str	r5, [r4, #0]
+ 800865e:	6865      	ldr	r5, [r4, #4]
+ 8008660:	f416 1f00 	tst.w	r6, #2097152	; 0x200000
+ 8008664:	bf0c      	ite	eq
+ 8008666:	403d      	andeq	r5, r7
+ 8008668:	4315      	orrne	r5, r2
+ 800866a:	6065      	str	r5, [r4, #4]
+ 800866c:	f8d4 5080 	ldr.w	r5, [r4, #128]	; 0x80
+ 8008670:	f416 3f80 	tst.w	r6, #65536	; 0x10000
+ 8008674:	bf0c      	ite	eq
+ 8008676:	403d      	andeq	r5, r7
+ 8008678:	4315      	orrne	r5, r2
+ 800867a:	f8c4 5080 	str.w	r5, [r4, #128]	; 0x80
+ 800867e:	f8d4 5084 	ldr.w	r5, [r4, #132]	; 0x84
+ 8008682:	03b6      	lsls	r6, r6, #14
+ 8008684:	bf54      	ite	pl
+ 8008686:	403d      	andpl	r5, r7
+ 8008688:	4315      	orrmi	r5, r2
+ 800868a:	f8c4 5084 	str.w	r5, [r4, #132]	; 0x84
+ 800868e:	3301      	adds	r3, #1
+ 8008690:	e762      	b.n	8008558 <HAL_GPIO_Init+0xc>
+ 8008692:	2500      	movs	r5, #0
+ 8008694:	e7d6      	b.n	8008644 <HAL_GPIO_Init+0xf8>
+ 8008696:	2501      	movs	r5, #1
+ 8008698:	e7d4      	b.n	8008644 <HAL_GPIO_Init+0xf8>
+ 800869a:	bf00      	nop
+ 800869c:	58000800 	.word	0x58000800
+ 80086a0:	48000400 	.word	0x48000400
+
+080086a4 <HAL_GPIO_DeInit>:
+ 80086a4:	4a37      	ldr	r2, [pc, #220]	; (8008784 <HAL_GPIO_DeInit+0xe0>)
+ 80086a6:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 80086aa:	2300      	movs	r3, #0
+ 80086ac:	f04f 0a01 	mov.w	sl, #1
+ 80086b0:	f04f 0b07 	mov.w	fp, #7
+ 80086b4:	f04f 090f 	mov.w	r9, #15
+ 80086b8:	fa31 f403 	lsrs.w	r4, r1, r3
+ 80086bc:	d101      	bne.n	80086c2 <HAL_GPIO_DeInit+0x1e>
+ 80086be:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 80086c2:	fa0a fc03 	lsl.w	ip, sl, r3
+ 80086c6:	ea1c 0601 	ands.w	r6, ip, r1
+ 80086ca:	d054      	beq.n	8008776 <HAL_GPIO_DeInit+0xd2>
+ 80086cc:	f023 0403 	bic.w	r4, r3, #3
+ 80086d0:	f104 4480 	add.w	r4, r4, #1073741824	; 0x40000000
+ 80086d4:	f504 3480 	add.w	r4, r4, #65536	; 0x10000
+ 80086d8:	f003 0703 	and.w	r7, r3, #3
+ 80086dc:	68a5      	ldr	r5, [r4, #8]
+ 80086de:	00bf      	lsls	r7, r7, #2
+ 80086e0:	fa0b f807 	lsl.w	r8, fp, r7
+ 80086e4:	f1b0 4f90 	cmp.w	r0, #1207959552	; 0x48000000
+ 80086e8:	ea08 0e05 	and.w	lr, r8, r5
+ 80086ec:	d045      	beq.n	800877a <HAL_GPIO_DeInit+0xd6>
+ 80086ee:	4d26      	ldr	r5, [pc, #152]	; (8008788 <HAL_GPIO_DeInit+0xe4>)
+ 80086f0:	42a8      	cmp	r0, r5
+ 80086f2:	d044      	beq.n	800877e <HAL_GPIO_DeInit+0xda>
+ 80086f4:	f505 6580 	add.w	r5, r5, #1024	; 0x400
+ 80086f8:	42a8      	cmp	r0, r5
+ 80086fa:	bf0c      	ite	eq
+ 80086fc:	2502      	moveq	r5, #2
+ 80086fe:	2507      	movne	r5, #7
+ 8008700:	40bd      	lsls	r5, r7
+ 8008702:	4575      	cmp	r5, lr
+ 8008704:	d117      	bne.n	8008736 <HAL_GPIO_DeInit+0x92>
+ 8008706:	f8d2 5080 	ldr.w	r5, [r2, #128]	; 0x80
+ 800870a:	ea25 0506 	bic.w	r5, r5, r6
+ 800870e:	f8c2 5080 	str.w	r5, [r2, #128]	; 0x80
+ 8008712:	f8d2 5084 	ldr.w	r5, [r2, #132]	; 0x84
+ 8008716:	ea25 0506 	bic.w	r5, r5, r6
+ 800871a:	f8c2 5084 	str.w	r5, [r2, #132]	; 0x84
+ 800871e:	6815      	ldr	r5, [r2, #0]
+ 8008720:	ea25 0506 	bic.w	r5, r5, r6
+ 8008724:	6015      	str	r5, [r2, #0]
+ 8008726:	6855      	ldr	r5, [r2, #4]
+ 8008728:	ea25 0506 	bic.w	r5, r5, r6
+ 800872c:	6055      	str	r5, [r2, #4]
+ 800872e:	68a5      	ldr	r5, [r4, #8]
+ 8008730:	ea25 0508 	bic.w	r5, r5, r8
+ 8008734:	60a5      	str	r5, [r4, #8]
+ 8008736:	6805      	ldr	r5, [r0, #0]
+ 8008738:	2603      	movs	r6, #3
+ 800873a:	005c      	lsls	r4, r3, #1
+ 800873c:	fa06 f404 	lsl.w	r4, r6, r4
+ 8008740:	fa23 f606 	lsr.w	r6, r3, r6
+ 8008744:	4325      	orrs	r5, r4
+ 8008746:	eb00 0686 	add.w	r6, r0, r6, lsl #2
+ 800874a:	6005      	str	r5, [r0, #0]
+ 800874c:	f003 0507 	and.w	r5, r3, #7
+ 8008750:	6a37      	ldr	r7, [r6, #32]
+ 8008752:	00ad      	lsls	r5, r5, #2
+ 8008754:	fa09 f505 	lsl.w	r5, r9, r5
+ 8008758:	ea27 0705 	bic.w	r7, r7, r5
+ 800875c:	6237      	str	r7, [r6, #32]
+ 800875e:	6885      	ldr	r5, [r0, #8]
+ 8008760:	ea25 0504 	bic.w	r5, r5, r4
+ 8008764:	6085      	str	r5, [r0, #8]
+ 8008766:	6845      	ldr	r5, [r0, #4]
+ 8008768:	ea25 050c 	bic.w	r5, r5, ip
+ 800876c:	6045      	str	r5, [r0, #4]
+ 800876e:	68c5      	ldr	r5, [r0, #12]
+ 8008770:	ea25 0404 	bic.w	r4, r5, r4
+ 8008774:	60c4      	str	r4, [r0, #12]
+ 8008776:	3301      	adds	r3, #1
+ 8008778:	e79e      	b.n	80086b8 <HAL_GPIO_DeInit+0x14>
+ 800877a:	2500      	movs	r5, #0
+ 800877c:	e7c0      	b.n	8008700 <HAL_GPIO_DeInit+0x5c>
+ 800877e:	2501      	movs	r5, #1
+ 8008780:	e7be      	b.n	8008700 <HAL_GPIO_DeInit+0x5c>
+ 8008782:	bf00      	nop
+ 8008784:	58000800 	.word	0x58000800
+ 8008788:	48000400 	.word	0x48000400
+
+0800878c <HAL_GPIO_ReadPin>:
+ 800878c:	6903      	ldr	r3, [r0, #16]
+ 800878e:	4219      	tst	r1, r3
+ 8008790:	bf14      	ite	ne
+ 8008792:	2001      	movne	r0, #1
+ 8008794:	2000      	moveq	r0, #0
+ 8008796:	4770      	bx	lr
+
+08008798 <HAL_GPIO_WritePin>:
+ 8008798:	b10a      	cbz	r2, 800879e <HAL_GPIO_WritePin+0x6>
+ 800879a:	6181      	str	r1, [r0, #24]
+ 800879c:	4770      	bx	lr
+ 800879e:	6281      	str	r1, [r0, #40]	; 0x28
+ 80087a0:	4770      	bx	lr
+	...
+
+080087a4 <HAL_GPIO_EXTI_IRQHandler>:
+ 80087a4:	4a04      	ldr	r2, [pc, #16]	; (80087b8 <HAL_GPIO_EXTI_IRQHandler+0x14>)
+ 80087a6:	68d1      	ldr	r1, [r2, #12]
+ 80087a8:	4201      	tst	r1, r0
+ 80087aa:	b508      	push	{r3, lr}
+ 80087ac:	d002      	beq.n	80087b4 <HAL_GPIO_EXTI_IRQHandler+0x10>
+ 80087ae:	60d0      	str	r0, [r2, #12]
+ 80087b0:	f7fb f948 	bl	8003a44 <HAL_GPIO_EXTI_Callback>
+ 80087b4:	bd08      	pop	{r3, pc}
+ 80087b6:	bf00      	nop
+ 80087b8:	58000800 	.word	0x58000800
+
+080087bc <I2C_Flush_TXDR>:
+ 80087bc:	6803      	ldr	r3, [r0, #0]
+ 80087be:	699a      	ldr	r2, [r3, #24]
+ 80087c0:	0791      	lsls	r1, r2, #30
+ 80087c2:	bf44      	itt	mi
+ 80087c4:	2200      	movmi	r2, #0
+ 80087c6:	629a      	strmi	r2, [r3, #40]	; 0x28
+ 80087c8:	699a      	ldr	r2, [r3, #24]
+ 80087ca:	07d2      	lsls	r2, r2, #31
+ 80087cc:	bf5e      	ittt	pl
+ 80087ce:	699a      	ldrpl	r2, [r3, #24]
+ 80087d0:	f042 0201 	orrpl.w	r2, r2, #1
+ 80087d4:	619a      	strpl	r2, [r3, #24]
+ 80087d6:	4770      	bx	lr
+
+080087d8 <I2C_TransferConfig>:
+ 80087d8:	b530      	push	{r4, r5, lr}
+ 80087da:	9d03      	ldr	r5, [sp, #12]
+ 80087dc:	6804      	ldr	r4, [r0, #0]
+ 80087de:	432b      	orrs	r3, r5
+ 80087e0:	ea43 4302 	orr.w	r3, r3, r2, lsl #16
+ 80087e4:	4a06      	ldr	r2, [pc, #24]	; (8008800 <I2C_TransferConfig+0x28>)
+ 80087e6:	6860      	ldr	r0, [r4, #4]
+ 80087e8:	f3c1 0109 	ubfx	r1, r1, #0, #10
+ 80087ec:	430b      	orrs	r3, r1
+ 80087ee:	ea42 5255 	orr.w	r2, r2, r5, lsr #21
+ 80087f2:	f023 4300 	bic.w	r3, r3, #2147483648	; 0x80000000
+ 80087f6:	ea20 0002 	bic.w	r0, r0, r2
+ 80087fa:	4303      	orrs	r3, r0
+ 80087fc:	6063      	str	r3, [r4, #4]
+ 80087fe:	bd30      	pop	{r4, r5, pc}
+ 8008800:	03ff63ff 	.word	0x03ff63ff
+
+08008804 <I2C_IsErrorOccurred>:
+ 8008804:	6803      	ldr	r3, [r0, #0]
+ 8008806:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800880a:	699c      	ldr	r4, [r3, #24]
+ 800880c:	f014 0410 	ands.w	r4, r4, #16
+ 8008810:	4605      	mov	r5, r0
+ 8008812:	460f      	mov	r7, r1
+ 8008814:	4616      	mov	r6, r2
+ 8008816:	d06f      	beq.n	80088f8 <I2C_IsErrorOccurred+0xf4>
+ 8008818:	2210      	movs	r2, #16
+ 800881a:	2400      	movs	r4, #0
+ 800881c:	61da      	str	r2, [r3, #28]
+ 800881e:	46a0      	mov	r8, r4
+ 8008820:	682b      	ldr	r3, [r5, #0]
+ 8008822:	699a      	ldr	r2, [r3, #24]
+ 8008824:	0690      	lsls	r0, r2, #26
+ 8008826:	d461      	bmi.n	80088ec <I2C_IsErrorOccurred+0xe8>
+ 8008828:	f1b8 0f00 	cmp.w	r8, #0
+ 800882c:	d035      	beq.n	800889a <I2C_IsErrorOccurred+0x96>
+ 800882e:	f044 0404 	orr.w	r4, r4, #4
+ 8008832:	2001      	movs	r0, #1
+ 8008834:	682e      	ldr	r6, [r5, #0]
+ 8008836:	69b3      	ldr	r3, [r6, #24]
+ 8008838:	05d9      	lsls	r1, r3, #23
+ 800883a:	bf41      	itttt	mi
+ 800883c:	f44f 7280 	movmi.w	r2, #256	; 0x100
+ 8008840:	61f2      	strmi	r2, [r6, #28]
+ 8008842:	f044 0401 	orrmi.w	r4, r4, #1
+ 8008846:	2001      	movmi	r0, #1
+ 8008848:	055a      	lsls	r2, r3, #21
+ 800884a:	bf41      	itttt	mi
+ 800884c:	f44f 6280 	movmi.w	r2, #1024	; 0x400
+ 8008850:	f044 0408 	orrmi.w	r4, r4, #8
+ 8008854:	61f2      	strmi	r2, [r6, #28]
+ 8008856:	2001      	movmi	r0, #1
+ 8008858:	059b      	lsls	r3, r3, #22
+ 800885a:	d54f      	bpl.n	80088fc <I2C_IsErrorOccurred+0xf8>
+ 800885c:	f44f 7300 	mov.w	r3, #512	; 0x200
+ 8008860:	f044 0402 	orr.w	r4, r4, #2
+ 8008864:	61f3      	str	r3, [r6, #28]
+ 8008866:	4628      	mov	r0, r5
+ 8008868:	f7ff ffa8 	bl	80087bc <I2C_Flush_TXDR>
+ 800886c:	6873      	ldr	r3, [r6, #4]
+ 800886e:	f023 73ff 	bic.w	r3, r3, #33423360	; 0x1fe0000
+ 8008872:	f423 338b 	bic.w	r3, r3, #71168	; 0x11600
+ 8008876:	f423 73ff 	bic.w	r3, r3, #510	; 0x1fe
+ 800887a:	f023 0301 	bic.w	r3, r3, #1
+ 800887e:	6073      	str	r3, [r6, #4]
+ 8008880:	6c6b      	ldr	r3, [r5, #68]	; 0x44
+ 8008882:	4323      	orrs	r3, r4
+ 8008884:	646b      	str	r3, [r5, #68]	; 0x44
+ 8008886:	2320      	movs	r3, #32
+ 8008888:	f885 3041 	strb.w	r3, [r5, #65]	; 0x41
+ 800888c:	2300      	movs	r3, #0
+ 800888e:	f885 3042 	strb.w	r3, [r5, #66]	; 0x42
+ 8008892:	f885 3040 	strb.w	r3, [r5, #64]	; 0x40
+ 8008896:	2001      	movs	r0, #1
+ 8008898:	e032      	b.n	8008900 <I2C_IsErrorOccurred+0xfc>
+ 800889a:	1c7a      	adds	r2, r7, #1
+ 800889c:	d0c1      	beq.n	8008822 <I2C_IsErrorOccurred+0x1e>
+ 800889e:	f7fa f977 	bl	8002b90 <HAL_GetTick>
+ 80088a2:	1b80      	subs	r0, r0, r6
+ 80088a4:	42b8      	cmp	r0, r7
+ 80088a6:	d801      	bhi.n	80088ac <I2C_IsErrorOccurred+0xa8>
+ 80088a8:	2f00      	cmp	r7, #0
+ 80088aa:	d1b9      	bne.n	8008820 <I2C_IsErrorOccurred+0x1c>
+ 80088ac:	682b      	ldr	r3, [r5, #0]
+ 80088ae:	6859      	ldr	r1, [r3, #4]
+ 80088b0:	f895 2042 	ldrb.w	r2, [r5, #66]	; 0x42
+ 80088b4:	6998      	ldr	r0, [r3, #24]
+ 80088b6:	0400      	lsls	r0, r0, #16
+ 80088b8:	b2d2      	uxtb	r2, r2
+ 80088ba:	d50a      	bpl.n	80088d2 <I2C_IsErrorOccurred+0xce>
+ 80088bc:	0449      	lsls	r1, r1, #17
+ 80088be:	d408      	bmi.n	80088d2 <I2C_IsErrorOccurred+0xce>
+ 80088c0:	2a20      	cmp	r2, #32
+ 80088c2:	d006      	beq.n	80088d2 <I2C_IsErrorOccurred+0xce>
+ 80088c4:	685a      	ldr	r2, [r3, #4]
+ 80088c6:	f442 4280 	orr.w	r2, r2, #16384	; 0x4000
+ 80088ca:	605a      	str	r2, [r3, #4]
+ 80088cc:	f7fa f960 	bl	8002b90 <HAL_GetTick>
+ 80088d0:	4606      	mov	r6, r0
+ 80088d2:	682b      	ldr	r3, [r5, #0]
+ 80088d4:	699b      	ldr	r3, [r3, #24]
+ 80088d6:	069b      	lsls	r3, r3, #26
+ 80088d8:	d4a2      	bmi.n	8008820 <I2C_IsErrorOccurred+0x1c>
+ 80088da:	f7fa f959 	bl	8002b90 <HAL_GetTick>
+ 80088de:	1b80      	subs	r0, r0, r6
+ 80088e0:	2819      	cmp	r0, #25
+ 80088e2:	d9f6      	bls.n	80088d2 <I2C_IsErrorOccurred+0xce>
+ 80088e4:	2420      	movs	r4, #32
+ 80088e6:	f04f 0801 	mov.w	r8, #1
+ 80088ea:	e799      	b.n	8008820 <I2C_IsErrorOccurred+0x1c>
+ 80088ec:	f1b8 0f00 	cmp.w	r8, #0
+ 80088f0:	d19d      	bne.n	800882e <I2C_IsErrorOccurred+0x2a>
+ 80088f2:	2220      	movs	r2, #32
+ 80088f4:	61da      	str	r2, [r3, #28]
+ 80088f6:	e79a      	b.n	800882e <I2C_IsErrorOccurred+0x2a>
+ 80088f8:	4620      	mov	r0, r4
+ 80088fa:	e79b      	b.n	8008834 <I2C_IsErrorOccurred+0x30>
+ 80088fc:	2800      	cmp	r0, #0
+ 80088fe:	d1b2      	bne.n	8008866 <I2C_IsErrorOccurred+0x62>
+ 8008900:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+
+08008904 <I2C_WaitOnTXISFlagUntilTimeout>:
+ 8008904:	b570      	push	{r4, r5, r6, lr}
+ 8008906:	4604      	mov	r4, r0
+ 8008908:	460d      	mov	r5, r1
+ 800890a:	4616      	mov	r6, r2
+ 800890c:	6823      	ldr	r3, [r4, #0]
+ 800890e:	699b      	ldr	r3, [r3, #24]
+ 8008910:	079b      	lsls	r3, r3, #30
+ 8008912:	d501      	bpl.n	8008918 <I2C_WaitOnTXISFlagUntilTimeout+0x14>
+ 8008914:	2000      	movs	r0, #0
+ 8008916:	bd70      	pop	{r4, r5, r6, pc}
+ 8008918:	4632      	mov	r2, r6
+ 800891a:	4629      	mov	r1, r5
+ 800891c:	4620      	mov	r0, r4
+ 800891e:	f7ff ff71 	bl	8008804 <I2C_IsErrorOccurred>
+ 8008922:	b9a0      	cbnz	r0, 800894e <I2C_WaitOnTXISFlagUntilTimeout+0x4a>
+ 8008924:	1c6a      	adds	r2, r5, #1
+ 8008926:	d0f1      	beq.n	800890c <I2C_WaitOnTXISFlagUntilTimeout+0x8>
+ 8008928:	f7fa f932 	bl	8002b90 <HAL_GetTick>
+ 800892c:	1b80      	subs	r0, r0, r6
+ 800892e:	42a8      	cmp	r0, r5
+ 8008930:	d801      	bhi.n	8008936 <I2C_WaitOnTXISFlagUntilTimeout+0x32>
+ 8008932:	2d00      	cmp	r5, #0
+ 8008934:	d1ea      	bne.n	800890c <I2C_WaitOnTXISFlagUntilTimeout+0x8>
+ 8008936:	6c63      	ldr	r3, [r4, #68]	; 0x44
+ 8008938:	f043 0320 	orr.w	r3, r3, #32
+ 800893c:	6463      	str	r3, [r4, #68]	; 0x44
+ 800893e:	2320      	movs	r3, #32
+ 8008940:	f884 3041 	strb.w	r3, [r4, #65]	; 0x41
+ 8008944:	2300      	movs	r3, #0
+ 8008946:	f884 3042 	strb.w	r3, [r4, #66]	; 0x42
+ 800894a:	f884 3040 	strb.w	r3, [r4, #64]	; 0x40
+ 800894e:	2001      	movs	r0, #1
+ 8008950:	e7e1      	b.n	8008916 <I2C_WaitOnTXISFlagUntilTimeout+0x12>
+
+08008952 <I2C_WaitOnRXNEFlagUntilTimeout>:
+ 8008952:	b570      	push	{r4, r5, r6, lr}
+ 8008954:	4604      	mov	r4, r0
+ 8008956:	460d      	mov	r5, r1
+ 8008958:	4616      	mov	r6, r2
+ 800895a:	6823      	ldr	r3, [r4, #0]
+ 800895c:	699b      	ldr	r3, [r3, #24]
+ 800895e:	075b      	lsls	r3, r3, #29
+ 8008960:	d40e      	bmi.n	8008980 <I2C_WaitOnRXNEFlagUntilTimeout+0x2e>
+ 8008962:	4632      	mov	r2, r6
+ 8008964:	4629      	mov	r1, r5
+ 8008966:	4620      	mov	r0, r4
+ 8008968:	f7ff ff4c 	bl	8008804 <I2C_IsErrorOccurred>
+ 800896c:	bb38      	cbnz	r0, 80089be <I2C_WaitOnRXNEFlagUntilTimeout+0x6c>
+ 800896e:	6823      	ldr	r3, [r4, #0]
+ 8008970:	699a      	ldr	r2, [r3, #24]
+ 8008972:	0691      	lsls	r1, r2, #26
+ 8008974:	d525      	bpl.n	80089c2 <I2C_WaitOnRXNEFlagUntilTimeout+0x70>
+ 8008976:	699a      	ldr	r2, [r3, #24]
+ 8008978:	0752      	lsls	r2, r2, #29
+ 800897a:	d503      	bpl.n	8008984 <I2C_WaitOnRXNEFlagUntilTimeout+0x32>
+ 800897c:	8d22      	ldrh	r2, [r4, #40]	; 0x28
+ 800897e:	b10a      	cbz	r2, 8008984 <I2C_WaitOnRXNEFlagUntilTimeout+0x32>
+ 8008980:	2000      	movs	r0, #0
+ 8008982:	bd70      	pop	{r4, r5, r6, pc}
+ 8008984:	699a      	ldr	r2, [r3, #24]
+ 8008986:	f012 0210 	ands.w	r2, r2, #16
+ 800898a:	bf1c      	itt	ne
+ 800898c:	2210      	movne	r2, #16
+ 800898e:	61da      	strne	r2, [r3, #28]
+ 8008990:	f04f 0120 	mov.w	r1, #32
+ 8008994:	bf18      	it	ne
+ 8008996:	2204      	movne	r2, #4
+ 8008998:	6462      	str	r2, [r4, #68]	; 0x44
+ 800899a:	61d9      	str	r1, [r3, #28]
+ 800899c:	685a      	ldr	r2, [r3, #4]
+ 800899e:	f022 72ff 	bic.w	r2, r2, #33423360	; 0x1fe0000
+ 80089a2:	f422 328b 	bic.w	r2, r2, #71168	; 0x11600
+ 80089a6:	f422 72ff 	bic.w	r2, r2, #510	; 0x1fe
+ 80089aa:	f022 0201 	bic.w	r2, r2, #1
+ 80089ae:	605a      	str	r2, [r3, #4]
+ 80089b0:	2300      	movs	r3, #0
+ 80089b2:	f884 1041 	strb.w	r1, [r4, #65]	; 0x41
+ 80089b6:	f884 3042 	strb.w	r3, [r4, #66]	; 0x42
+ 80089ba:	f884 3040 	strb.w	r3, [r4, #64]	; 0x40
+ 80089be:	2001      	movs	r0, #1
+ 80089c0:	e7df      	b.n	8008982 <I2C_WaitOnRXNEFlagUntilTimeout+0x30>
+ 80089c2:	f7fa f8e5 	bl	8002b90 <HAL_GetTick>
+ 80089c6:	1b80      	subs	r0, r0, r6
+ 80089c8:	42a8      	cmp	r0, r5
+ 80089ca:	d801      	bhi.n	80089d0 <I2C_WaitOnRXNEFlagUntilTimeout+0x7e>
+ 80089cc:	2d00      	cmp	r5, #0
+ 80089ce:	d1c4      	bne.n	800895a <I2C_WaitOnRXNEFlagUntilTimeout+0x8>
+ 80089d0:	6c63      	ldr	r3, [r4, #68]	; 0x44
+ 80089d2:	f043 0320 	orr.w	r3, r3, #32
+ 80089d6:	6463      	str	r3, [r4, #68]	; 0x44
+ 80089d8:	2320      	movs	r3, #32
+ 80089da:	f884 3041 	strb.w	r3, [r4, #65]	; 0x41
+ 80089de:	2300      	movs	r3, #0
+ 80089e0:	e7eb      	b.n	80089ba <I2C_WaitOnRXNEFlagUntilTimeout+0x68>
+
+080089e2 <I2C_WaitOnFlagUntilTimeout>:
+ 80089e2:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 80089e6:	9f06      	ldr	r7, [sp, #24]
+ 80089e8:	4604      	mov	r4, r0
+ 80089ea:	4688      	mov	r8, r1
+ 80089ec:	4616      	mov	r6, r2
+ 80089ee:	461d      	mov	r5, r3
+ 80089f0:	6822      	ldr	r2, [r4, #0]
+ 80089f2:	6993      	ldr	r3, [r2, #24]
+ 80089f4:	ea38 0303 	bics.w	r3, r8, r3
+ 80089f8:	bf0c      	ite	eq
+ 80089fa:	2301      	moveq	r3, #1
+ 80089fc:	2300      	movne	r3, #0
+ 80089fe:	42b3      	cmp	r3, r6
+ 8008a00:	d001      	beq.n	8008a06 <I2C_WaitOnFlagUntilTimeout+0x24>
+ 8008a02:	2000      	movs	r0, #0
+ 8008a04:	e015      	b.n	8008a32 <I2C_WaitOnFlagUntilTimeout+0x50>
+ 8008a06:	1c6b      	adds	r3, r5, #1
+ 8008a08:	d0f3      	beq.n	80089f2 <I2C_WaitOnFlagUntilTimeout+0x10>
+ 8008a0a:	f7fa f8c1 	bl	8002b90 <HAL_GetTick>
+ 8008a0e:	1bc0      	subs	r0, r0, r7
+ 8008a10:	42a8      	cmp	r0, r5
+ 8008a12:	d801      	bhi.n	8008a18 <I2C_WaitOnFlagUntilTimeout+0x36>
+ 8008a14:	2d00      	cmp	r5, #0
+ 8008a16:	d1eb      	bne.n	80089f0 <I2C_WaitOnFlagUntilTimeout+0xe>
+ 8008a18:	6c63      	ldr	r3, [r4, #68]	; 0x44
+ 8008a1a:	f043 0320 	orr.w	r3, r3, #32
+ 8008a1e:	6463      	str	r3, [r4, #68]	; 0x44
+ 8008a20:	2320      	movs	r3, #32
+ 8008a22:	f884 3041 	strb.w	r3, [r4, #65]	; 0x41
+ 8008a26:	2300      	movs	r3, #0
+ 8008a28:	f884 3042 	strb.w	r3, [r4, #66]	; 0x42
+ 8008a2c:	f884 3040 	strb.w	r3, [r4, #64]	; 0x40
+ 8008a30:	2001      	movs	r0, #1
+ 8008a32:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+
+08008a36 <I2C_WaitOnSTOPFlagUntilTimeout>:
+ 8008a36:	b570      	push	{r4, r5, r6, lr}
+ 8008a38:	4604      	mov	r4, r0
+ 8008a3a:	460d      	mov	r5, r1
+ 8008a3c:	4616      	mov	r6, r2
+ 8008a3e:	6823      	ldr	r3, [r4, #0]
+ 8008a40:	699b      	ldr	r3, [r3, #24]
+ 8008a42:	069b      	lsls	r3, r3, #26
+ 8008a44:	d501      	bpl.n	8008a4a <I2C_WaitOnSTOPFlagUntilTimeout+0x14>
+ 8008a46:	2000      	movs	r0, #0
+ 8008a48:	bd70      	pop	{r4, r5, r6, pc}
+ 8008a4a:	4632      	mov	r2, r6
+ 8008a4c:	4629      	mov	r1, r5
+ 8008a4e:	4620      	mov	r0, r4
+ 8008a50:	f7ff fed8 	bl	8008804 <I2C_IsErrorOccurred>
+ 8008a54:	b990      	cbnz	r0, 8008a7c <I2C_WaitOnSTOPFlagUntilTimeout+0x46>
+ 8008a56:	f7fa f89b 	bl	8002b90 <HAL_GetTick>
+ 8008a5a:	1b80      	subs	r0, r0, r6
+ 8008a5c:	42a8      	cmp	r0, r5
+ 8008a5e:	d801      	bhi.n	8008a64 <I2C_WaitOnSTOPFlagUntilTimeout+0x2e>
+ 8008a60:	2d00      	cmp	r5, #0
+ 8008a62:	d1ec      	bne.n	8008a3e <I2C_WaitOnSTOPFlagUntilTimeout+0x8>
+ 8008a64:	6c63      	ldr	r3, [r4, #68]	; 0x44
+ 8008a66:	f043 0320 	orr.w	r3, r3, #32
+ 8008a6a:	6463      	str	r3, [r4, #68]	; 0x44
+ 8008a6c:	2320      	movs	r3, #32
+ 8008a6e:	f884 3041 	strb.w	r3, [r4, #65]	; 0x41
+ 8008a72:	2300      	movs	r3, #0
+ 8008a74:	f884 3042 	strb.w	r3, [r4, #66]	; 0x42
+ 8008a78:	f884 3040 	strb.w	r3, [r4, #64]	; 0x40
+ 8008a7c:	2001      	movs	r0, #1
+ 8008a7e:	e7e3      	b.n	8008a48 <I2C_WaitOnSTOPFlagUntilTimeout+0x12>
+
+08008a80 <HAL_I2C_Init>:
+ 8008a80:	b510      	push	{r4, lr}
+ 8008a82:	4604      	mov	r4, r0
+ 8008a84:	2800      	cmp	r0, #0
+ 8008a86:	d04a      	beq.n	8008b1e <HAL_I2C_Init+0x9e>
+ 8008a88:	f890 3041 	ldrb.w	r3, [r0, #65]	; 0x41
+ 8008a8c:	f003 02ff 	and.w	r2, r3, #255	; 0xff
+ 8008a90:	b91b      	cbnz	r3, 8008a9a <HAL_I2C_Init+0x1a>
+ 8008a92:	f880 2040 	strb.w	r2, [r0, #64]	; 0x40
+ 8008a96:	f7f9 fd53 	bl	8002540 <HAL_I2C_MspInit>
+ 8008a9a:	2324      	movs	r3, #36	; 0x24
+ 8008a9c:	f884 3041 	strb.w	r3, [r4, #65]	; 0x41
+ 8008aa0:	6823      	ldr	r3, [r4, #0]
+ 8008aa2:	681a      	ldr	r2, [r3, #0]
+ 8008aa4:	f022 0201 	bic.w	r2, r2, #1
+ 8008aa8:	601a      	str	r2, [r3, #0]
+ 8008aaa:	6862      	ldr	r2, [r4, #4]
+ 8008aac:	f022 6270 	bic.w	r2, r2, #251658240	; 0xf000000
+ 8008ab0:	611a      	str	r2, [r3, #16]
+ 8008ab2:	689a      	ldr	r2, [r3, #8]
+ 8008ab4:	f422 4200 	bic.w	r2, r2, #32768	; 0x8000
+ 8008ab8:	609a      	str	r2, [r3, #8]
+ 8008aba:	e9d4 2102 	ldrd	r2, r1, [r4, #8]
+ 8008abe:	2901      	cmp	r1, #1
+ 8008ac0:	d124      	bne.n	8008b0c <HAL_I2C_Init+0x8c>
+ 8008ac2:	f442 4200 	orr.w	r2, r2, #32768	; 0x8000
+ 8008ac6:	609a      	str	r2, [r3, #8]
+ 8008ac8:	685a      	ldr	r2, [r3, #4]
+ 8008aca:	f042 7200 	orr.w	r2, r2, #33554432	; 0x2000000
+ 8008ace:	f442 4200 	orr.w	r2, r2, #32768	; 0x8000
+ 8008ad2:	605a      	str	r2, [r3, #4]
+ 8008ad4:	68da      	ldr	r2, [r3, #12]
+ 8008ad6:	f422 4200 	bic.w	r2, r2, #32768	; 0x8000
+ 8008ada:	60da      	str	r2, [r3, #12]
+ 8008adc:	e9d4 2104 	ldrd	r2, r1, [r4, #16]
+ 8008ae0:	430a      	orrs	r2, r1
+ 8008ae2:	69a1      	ldr	r1, [r4, #24]
+ 8008ae4:	ea42 2201 	orr.w	r2, r2, r1, lsl #8
+ 8008ae8:	60da      	str	r2, [r3, #12]
+ 8008aea:	e9d4 2107 	ldrd	r2, r1, [r4, #28]
+ 8008aee:	430a      	orrs	r2, r1
+ 8008af0:	601a      	str	r2, [r3, #0]
+ 8008af2:	681a      	ldr	r2, [r3, #0]
+ 8008af4:	f042 0201 	orr.w	r2, r2, #1
+ 8008af8:	601a      	str	r2, [r3, #0]
+ 8008afa:	2000      	movs	r0, #0
+ 8008afc:	2320      	movs	r3, #32
+ 8008afe:	6460      	str	r0, [r4, #68]	; 0x44
+ 8008b00:	f884 3041 	strb.w	r3, [r4, #65]	; 0x41
+ 8008b04:	6320      	str	r0, [r4, #48]	; 0x30
+ 8008b06:	f884 0042 	strb.w	r0, [r4, #66]	; 0x42
+ 8008b0a:	bd10      	pop	{r4, pc}
+ 8008b0c:	f442 4204 	orr.w	r2, r2, #33792	; 0x8400
+ 8008b10:	2902      	cmp	r1, #2
+ 8008b12:	609a      	str	r2, [r3, #8]
+ 8008b14:	bf04      	itt	eq
+ 8008b16:	f44f 6200 	moveq.w	r2, #2048	; 0x800
+ 8008b1a:	605a      	streq	r2, [r3, #4]
+ 8008b1c:	e7d4      	b.n	8008ac8 <HAL_I2C_Init+0x48>
+ 8008b1e:	2001      	movs	r0, #1
+ 8008b20:	e7f3      	b.n	8008b0a <HAL_I2C_Init+0x8a>
+	...
+
+08008b24 <HAL_I2C_Master_Transmit>:
+ 8008b24:	e92d 47f3 	stmdb	sp!, {r0, r1, r4, r5, r6, r7, r8, r9, sl, lr}
+ 8008b28:	4698      	mov	r8, r3
+ 8008b2a:	f890 3041 	ldrb.w	r3, [r0, #65]	; 0x41
+ 8008b2e:	9f0a      	ldr	r7, [sp, #40]	; 0x28
+ 8008b30:	2b20      	cmp	r3, #32
+ 8008b32:	4604      	mov	r4, r0
+ 8008b34:	460e      	mov	r6, r1
+ 8008b36:	4691      	mov	r9, r2
+ 8008b38:	f040 8086 	bne.w	8008c48 <HAL_I2C_Master_Transmit+0x124>
+ 8008b3c:	f890 3040 	ldrb.w	r3, [r0, #64]	; 0x40
+ 8008b40:	2b01      	cmp	r3, #1
+ 8008b42:	f000 8081 	beq.w	8008c48 <HAL_I2C_Master_Transmit+0x124>
+ 8008b46:	f04f 0a01 	mov.w	sl, #1
+ 8008b4a:	f880 a040 	strb.w	sl, [r0, #64]	; 0x40
+ 8008b4e:	f7fa f81f 	bl	8002b90 <HAL_GetTick>
+ 8008b52:	2319      	movs	r3, #25
+ 8008b54:	4605      	mov	r5, r0
+ 8008b56:	9000      	str	r0, [sp, #0]
+ 8008b58:	4652      	mov	r2, sl
+ 8008b5a:	f44f 4100 	mov.w	r1, #32768	; 0x8000
+ 8008b5e:	4620      	mov	r0, r4
+ 8008b60:	f7ff ff3f 	bl	80089e2 <I2C_WaitOnFlagUntilTimeout>
+ 8008b64:	b118      	cbz	r0, 8008b6e <HAL_I2C_Master_Transmit+0x4a>
+ 8008b66:	2001      	movs	r0, #1
+ 8008b68:	b002      	add	sp, #8
+ 8008b6a:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 8008b6e:	2321      	movs	r3, #33	; 0x21
+ 8008b70:	f884 3041 	strb.w	r3, [r4, #65]	; 0x41
+ 8008b74:	2310      	movs	r3, #16
+ 8008b76:	f884 3042 	strb.w	r3, [r4, #66]	; 0x42
+ 8008b7a:	6460      	str	r0, [r4, #68]	; 0x44
+ 8008b7c:	f8a4 802a 	strh.w	r8, [r4, #42]	; 0x2a
+ 8008b80:	8d63      	ldrh	r3, [r4, #42]	; 0x2a
+ 8008b82:	f8c4 9024 	str.w	r9, [r4, #36]	; 0x24
+ 8008b86:	b29b      	uxth	r3, r3
+ 8008b88:	2bff      	cmp	r3, #255	; 0xff
+ 8008b8a:	6360      	str	r0, [r4, #52]	; 0x34
+ 8008b8c:	4b2f      	ldr	r3, [pc, #188]	; (8008c4c <HAL_I2C_Master_Transmit+0x128>)
+ 8008b8e:	d926      	bls.n	8008bde <HAL_I2C_Master_Transmit+0xba>
+ 8008b90:	22ff      	movs	r2, #255	; 0xff
+ 8008b92:	8522      	strh	r2, [r4, #40]	; 0x28
+ 8008b94:	9300      	str	r3, [sp, #0]
+ 8008b96:	f04f 7380 	mov.w	r3, #16777216	; 0x1000000
+ 8008b9a:	4631      	mov	r1, r6
+ 8008b9c:	4620      	mov	r0, r4
+ 8008b9e:	f7ff fe1b 	bl	80087d8 <I2C_TransferConfig>
+ 8008ba2:	8d63      	ldrh	r3, [r4, #42]	; 0x2a
+ 8008ba4:	b29b      	uxth	r3, r3
+ 8008ba6:	462a      	mov	r2, r5
+ 8008ba8:	4639      	mov	r1, r7
+ 8008baa:	4620      	mov	r0, r4
+ 8008bac:	b9fb      	cbnz	r3, 8008bee <HAL_I2C_Master_Transmit+0xca>
+ 8008bae:	f7ff ff42 	bl	8008a36 <I2C_WaitOnSTOPFlagUntilTimeout>
+ 8008bb2:	2800      	cmp	r0, #0
+ 8008bb4:	d1d7      	bne.n	8008b66 <HAL_I2C_Master_Transmit+0x42>
+ 8008bb6:	6823      	ldr	r3, [r4, #0]
+ 8008bb8:	2120      	movs	r1, #32
+ 8008bba:	61d9      	str	r1, [r3, #28]
+ 8008bbc:	685a      	ldr	r2, [r3, #4]
+ 8008bbe:	f022 72ff 	bic.w	r2, r2, #33423360	; 0x1fe0000
+ 8008bc2:	f422 328b 	bic.w	r2, r2, #71168	; 0x11600
+ 8008bc6:	f422 72ff 	bic.w	r2, r2, #510	; 0x1fe
+ 8008bca:	f022 0201 	bic.w	r2, r2, #1
+ 8008bce:	605a      	str	r2, [r3, #4]
+ 8008bd0:	f884 1041 	strb.w	r1, [r4, #65]	; 0x41
+ 8008bd4:	f884 0040 	strb.w	r0, [r4, #64]	; 0x40
+ 8008bd8:	f884 0042 	strb.w	r0, [r4, #66]	; 0x42
+ 8008bdc:	e7c4      	b.n	8008b68 <HAL_I2C_Master_Transmit+0x44>
+ 8008bde:	8d62      	ldrh	r2, [r4, #42]	; 0x2a
+ 8008be0:	9300      	str	r3, [sp, #0]
+ 8008be2:	b292      	uxth	r2, r2
+ 8008be4:	8522      	strh	r2, [r4, #40]	; 0x28
+ 8008be6:	f04f 7300 	mov.w	r3, #33554432	; 0x2000000
+ 8008bea:	b2d2      	uxtb	r2, r2
+ 8008bec:	e7d5      	b.n	8008b9a <HAL_I2C_Master_Transmit+0x76>
+ 8008bee:	f7ff fe89 	bl	8008904 <I2C_WaitOnTXISFlagUntilTimeout>
+ 8008bf2:	2800      	cmp	r0, #0
+ 8008bf4:	d1b7      	bne.n	8008b66 <HAL_I2C_Master_Transmit+0x42>
+ 8008bf6:	6a63      	ldr	r3, [r4, #36]	; 0x24
+ 8008bf8:	6822      	ldr	r2, [r4, #0]
+ 8008bfa:	f813 1b01 	ldrb.w	r1, [r3], #1
+ 8008bfe:	6291      	str	r1, [r2, #40]	; 0x28
+ 8008c00:	6263      	str	r3, [r4, #36]	; 0x24
+ 8008c02:	8d63      	ldrh	r3, [r4, #42]	; 0x2a
+ 8008c04:	8d22      	ldrh	r2, [r4, #40]	; 0x28
+ 8008c06:	3b01      	subs	r3, #1
+ 8008c08:	b29b      	uxth	r3, r3
+ 8008c0a:	8563      	strh	r3, [r4, #42]	; 0x2a
+ 8008c0c:	8d63      	ldrh	r3, [r4, #42]	; 0x2a
+ 8008c0e:	3a01      	subs	r2, #1
+ 8008c10:	b292      	uxth	r2, r2
+ 8008c12:	b29b      	uxth	r3, r3
+ 8008c14:	8522      	strh	r2, [r4, #40]	; 0x28
+ 8008c16:	2b00      	cmp	r3, #0
+ 8008c18:	d0c3      	beq.n	8008ba2 <HAL_I2C_Master_Transmit+0x7e>
+ 8008c1a:	2a00      	cmp	r2, #0
+ 8008c1c:	d1c1      	bne.n	8008ba2 <HAL_I2C_Master_Transmit+0x7e>
+ 8008c1e:	9500      	str	r5, [sp, #0]
+ 8008c20:	463b      	mov	r3, r7
+ 8008c22:	2180      	movs	r1, #128	; 0x80
+ 8008c24:	4620      	mov	r0, r4
+ 8008c26:	f7ff fedc 	bl	80089e2 <I2C_WaitOnFlagUntilTimeout>
+ 8008c2a:	2800      	cmp	r0, #0
+ 8008c2c:	d19b      	bne.n	8008b66 <HAL_I2C_Master_Transmit+0x42>
+ 8008c2e:	8d63      	ldrh	r3, [r4, #42]	; 0x2a
+ 8008c30:	b29b      	uxth	r3, r3
+ 8008c32:	2bff      	cmp	r3, #255	; 0xff
+ 8008c34:	d903      	bls.n	8008c3e <HAL_I2C_Master_Transmit+0x11a>
+ 8008c36:	22ff      	movs	r2, #255	; 0xff
+ 8008c38:	8522      	strh	r2, [r4, #40]	; 0x28
+ 8008c3a:	9000      	str	r0, [sp, #0]
+ 8008c3c:	e7ab      	b.n	8008b96 <HAL_I2C_Master_Transmit+0x72>
+ 8008c3e:	8d62      	ldrh	r2, [r4, #42]	; 0x2a
+ 8008c40:	9000      	str	r0, [sp, #0]
+ 8008c42:	b292      	uxth	r2, r2
+ 8008c44:	8522      	strh	r2, [r4, #40]	; 0x28
+ 8008c46:	e7ce      	b.n	8008be6 <HAL_I2C_Master_Transmit+0xc2>
+ 8008c48:	2002      	movs	r0, #2
+ 8008c4a:	e78d      	b.n	8008b68 <HAL_I2C_Master_Transmit+0x44>
+ 8008c4c:	80002000 	.word	0x80002000
+
+08008c50 <HAL_I2C_Master_Receive>:
+ 8008c50:	e92d 47f3 	stmdb	sp!, {r0, r1, r4, r5, r6, r7, r8, r9, sl, lr}
+ 8008c54:	4698      	mov	r8, r3
+ 8008c56:	f890 3041 	ldrb.w	r3, [r0, #65]	; 0x41
+ 8008c5a:	9f0a      	ldr	r7, [sp, #40]	; 0x28
+ 8008c5c:	2b20      	cmp	r3, #32
+ 8008c5e:	4604      	mov	r4, r0
+ 8008c60:	460e      	mov	r6, r1
+ 8008c62:	4691      	mov	r9, r2
+ 8008c64:	f040 8087 	bne.w	8008d76 <HAL_I2C_Master_Receive+0x126>
+ 8008c68:	f890 3040 	ldrb.w	r3, [r0, #64]	; 0x40
+ 8008c6c:	2b01      	cmp	r3, #1
+ 8008c6e:	f000 8082 	beq.w	8008d76 <HAL_I2C_Master_Receive+0x126>
+ 8008c72:	f04f 0a01 	mov.w	sl, #1
+ 8008c76:	f880 a040 	strb.w	sl, [r0, #64]	; 0x40
+ 8008c7a:	f7f9 ff89 	bl	8002b90 <HAL_GetTick>
+ 8008c7e:	2319      	movs	r3, #25
+ 8008c80:	4605      	mov	r5, r0
+ 8008c82:	9000      	str	r0, [sp, #0]
+ 8008c84:	4652      	mov	r2, sl
+ 8008c86:	f44f 4100 	mov.w	r1, #32768	; 0x8000
+ 8008c8a:	4620      	mov	r0, r4
+ 8008c8c:	f7ff fea9 	bl	80089e2 <I2C_WaitOnFlagUntilTimeout>
+ 8008c90:	b118      	cbz	r0, 8008c9a <HAL_I2C_Master_Receive+0x4a>
+ 8008c92:	2001      	movs	r0, #1
+ 8008c94:	b002      	add	sp, #8
+ 8008c96:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 8008c9a:	2322      	movs	r3, #34	; 0x22
+ 8008c9c:	f884 3041 	strb.w	r3, [r4, #65]	; 0x41
+ 8008ca0:	2310      	movs	r3, #16
+ 8008ca2:	f884 3042 	strb.w	r3, [r4, #66]	; 0x42
+ 8008ca6:	6460      	str	r0, [r4, #68]	; 0x44
+ 8008ca8:	f8a4 802a 	strh.w	r8, [r4, #42]	; 0x2a
+ 8008cac:	8d63      	ldrh	r3, [r4, #42]	; 0x2a
+ 8008cae:	f8c4 9024 	str.w	r9, [r4, #36]	; 0x24
+ 8008cb2:	b29b      	uxth	r3, r3
+ 8008cb4:	2bff      	cmp	r3, #255	; 0xff
+ 8008cb6:	6360      	str	r0, [r4, #52]	; 0x34
+ 8008cb8:	4b30      	ldr	r3, [pc, #192]	; (8008d7c <HAL_I2C_Master_Receive+0x12c>)
+ 8008cba:	d926      	bls.n	8008d0a <HAL_I2C_Master_Receive+0xba>
+ 8008cbc:	22ff      	movs	r2, #255	; 0xff
+ 8008cbe:	8522      	strh	r2, [r4, #40]	; 0x28
+ 8008cc0:	9300      	str	r3, [sp, #0]
+ 8008cc2:	f04f 7380 	mov.w	r3, #16777216	; 0x1000000
+ 8008cc6:	4631      	mov	r1, r6
+ 8008cc8:	4620      	mov	r0, r4
+ 8008cca:	f7ff fd85 	bl	80087d8 <I2C_TransferConfig>
+ 8008cce:	8d63      	ldrh	r3, [r4, #42]	; 0x2a
+ 8008cd0:	b29b      	uxth	r3, r3
+ 8008cd2:	462a      	mov	r2, r5
+ 8008cd4:	4639      	mov	r1, r7
+ 8008cd6:	4620      	mov	r0, r4
+ 8008cd8:	b9fb      	cbnz	r3, 8008d1a <HAL_I2C_Master_Receive+0xca>
+ 8008cda:	f7ff feac 	bl	8008a36 <I2C_WaitOnSTOPFlagUntilTimeout>
+ 8008cde:	2800      	cmp	r0, #0
+ 8008ce0:	d1d7      	bne.n	8008c92 <HAL_I2C_Master_Receive+0x42>
+ 8008ce2:	6823      	ldr	r3, [r4, #0]
+ 8008ce4:	2120      	movs	r1, #32
+ 8008ce6:	61d9      	str	r1, [r3, #28]
+ 8008ce8:	685a      	ldr	r2, [r3, #4]
+ 8008cea:	f022 72ff 	bic.w	r2, r2, #33423360	; 0x1fe0000
+ 8008cee:	f422 328b 	bic.w	r2, r2, #71168	; 0x11600
+ 8008cf2:	f422 72ff 	bic.w	r2, r2, #510	; 0x1fe
+ 8008cf6:	f022 0201 	bic.w	r2, r2, #1
+ 8008cfa:	605a      	str	r2, [r3, #4]
+ 8008cfc:	f884 1041 	strb.w	r1, [r4, #65]	; 0x41
+ 8008d00:	f884 0040 	strb.w	r0, [r4, #64]	; 0x40
+ 8008d04:	f884 0042 	strb.w	r0, [r4, #66]	; 0x42
+ 8008d08:	e7c4      	b.n	8008c94 <HAL_I2C_Master_Receive+0x44>
+ 8008d0a:	8d62      	ldrh	r2, [r4, #42]	; 0x2a
+ 8008d0c:	9300      	str	r3, [sp, #0]
+ 8008d0e:	b292      	uxth	r2, r2
+ 8008d10:	8522      	strh	r2, [r4, #40]	; 0x28
+ 8008d12:	f04f 7300 	mov.w	r3, #33554432	; 0x2000000
+ 8008d16:	b2d2      	uxtb	r2, r2
+ 8008d18:	e7d5      	b.n	8008cc6 <HAL_I2C_Master_Receive+0x76>
+ 8008d1a:	f7ff fe1a 	bl	8008952 <I2C_WaitOnRXNEFlagUntilTimeout>
+ 8008d1e:	2800      	cmp	r0, #0
+ 8008d20:	d1b7      	bne.n	8008c92 <HAL_I2C_Master_Receive+0x42>
+ 8008d22:	6823      	ldr	r3, [r4, #0]
+ 8008d24:	6a5a      	ldr	r2, [r3, #36]	; 0x24
+ 8008d26:	6a63      	ldr	r3, [r4, #36]	; 0x24
+ 8008d28:	701a      	strb	r2, [r3, #0]
+ 8008d2a:	6a63      	ldr	r3, [r4, #36]	; 0x24
+ 8008d2c:	8d22      	ldrh	r2, [r4, #40]	; 0x28
+ 8008d2e:	3301      	adds	r3, #1
+ 8008d30:	6263      	str	r3, [r4, #36]	; 0x24
+ 8008d32:	8d63      	ldrh	r3, [r4, #42]	; 0x2a
+ 8008d34:	3b01      	subs	r3, #1
+ 8008d36:	b29b      	uxth	r3, r3
+ 8008d38:	8563      	strh	r3, [r4, #42]	; 0x2a
+ 8008d3a:	8d63      	ldrh	r3, [r4, #42]	; 0x2a
+ 8008d3c:	3a01      	subs	r2, #1
+ 8008d3e:	b292      	uxth	r2, r2
+ 8008d40:	b29b      	uxth	r3, r3
+ 8008d42:	8522      	strh	r2, [r4, #40]	; 0x28
+ 8008d44:	2b00      	cmp	r3, #0
+ 8008d46:	d0c2      	beq.n	8008cce <HAL_I2C_Master_Receive+0x7e>
+ 8008d48:	2a00      	cmp	r2, #0
+ 8008d4a:	d1c0      	bne.n	8008cce <HAL_I2C_Master_Receive+0x7e>
+ 8008d4c:	9500      	str	r5, [sp, #0]
+ 8008d4e:	463b      	mov	r3, r7
+ 8008d50:	2180      	movs	r1, #128	; 0x80
+ 8008d52:	4620      	mov	r0, r4
+ 8008d54:	f7ff fe45 	bl	80089e2 <I2C_WaitOnFlagUntilTimeout>
+ 8008d58:	2800      	cmp	r0, #0
+ 8008d5a:	d19a      	bne.n	8008c92 <HAL_I2C_Master_Receive+0x42>
+ 8008d5c:	8d63      	ldrh	r3, [r4, #42]	; 0x2a
+ 8008d5e:	b29b      	uxth	r3, r3
+ 8008d60:	2bff      	cmp	r3, #255	; 0xff
+ 8008d62:	d903      	bls.n	8008d6c <HAL_I2C_Master_Receive+0x11c>
+ 8008d64:	22ff      	movs	r2, #255	; 0xff
+ 8008d66:	8522      	strh	r2, [r4, #40]	; 0x28
+ 8008d68:	9000      	str	r0, [sp, #0]
+ 8008d6a:	e7aa      	b.n	8008cc2 <HAL_I2C_Master_Receive+0x72>
+ 8008d6c:	8d62      	ldrh	r2, [r4, #42]	; 0x2a
+ 8008d6e:	9000      	str	r0, [sp, #0]
+ 8008d70:	b292      	uxth	r2, r2
+ 8008d72:	8522      	strh	r2, [r4, #40]	; 0x28
+ 8008d74:	e7cd      	b.n	8008d12 <HAL_I2C_Master_Receive+0xc2>
+ 8008d76:	2002      	movs	r0, #2
+ 8008d78:	e78c      	b.n	8008c94 <HAL_I2C_Master_Receive+0x44>
+ 8008d7a:	bf00      	nop
+ 8008d7c:	80002400 	.word	0x80002400
+
+08008d80 <HAL_I2CEx_ConfigAnalogFilter>:
+ 8008d80:	b510      	push	{r4, lr}
+ 8008d82:	f890 2041 	ldrb.w	r2, [r0, #65]	; 0x41
+ 8008d86:	2a20      	cmp	r2, #32
+ 8008d88:	4603      	mov	r3, r0
+ 8008d8a:	b2d4      	uxtb	r4, r2
+ 8008d8c:	d11c      	bne.n	8008dc8 <HAL_I2CEx_ConfigAnalogFilter+0x48>
+ 8008d8e:	f890 2040 	ldrb.w	r2, [r0, #64]	; 0x40
+ 8008d92:	2a01      	cmp	r2, #1
+ 8008d94:	d018      	beq.n	8008dc8 <HAL_I2CEx_ConfigAnalogFilter+0x48>
+ 8008d96:	2224      	movs	r2, #36	; 0x24
+ 8008d98:	f880 2041 	strb.w	r2, [r0, #65]	; 0x41
+ 8008d9c:	6802      	ldr	r2, [r0, #0]
+ 8008d9e:	6810      	ldr	r0, [r2, #0]
+ 8008da0:	f020 0001 	bic.w	r0, r0, #1
+ 8008da4:	6010      	str	r0, [r2, #0]
+ 8008da6:	6810      	ldr	r0, [r2, #0]
+ 8008da8:	f420 5080 	bic.w	r0, r0, #4096	; 0x1000
+ 8008dac:	6010      	str	r0, [r2, #0]
+ 8008dae:	6810      	ldr	r0, [r2, #0]
+ 8008db0:	4301      	orrs	r1, r0
+ 8008db2:	6011      	str	r1, [r2, #0]
+ 8008db4:	6811      	ldr	r1, [r2, #0]
+ 8008db6:	2000      	movs	r0, #0
+ 8008db8:	f041 0101 	orr.w	r1, r1, #1
+ 8008dbc:	6011      	str	r1, [r2, #0]
+ 8008dbe:	f883 4041 	strb.w	r4, [r3, #65]	; 0x41
+ 8008dc2:	f883 0040 	strb.w	r0, [r3, #64]	; 0x40
+ 8008dc6:	bd10      	pop	{r4, pc}
+ 8008dc8:	2002      	movs	r0, #2
+ 8008dca:	e7fc      	b.n	8008dc6 <HAL_I2CEx_ConfigAnalogFilter+0x46>
+
+08008dcc <HAL_I2CEx_ConfigDigitalFilter>:
+ 8008dcc:	b510      	push	{r4, lr}
+ 8008dce:	f890 2041 	ldrb.w	r2, [r0, #65]	; 0x41
+ 8008dd2:	2a20      	cmp	r2, #32
+ 8008dd4:	4603      	mov	r3, r0
+ 8008dd6:	b2d4      	uxtb	r4, r2
+ 8008dd8:	d11b      	bne.n	8008e12 <HAL_I2CEx_ConfigDigitalFilter+0x46>
+ 8008dda:	f890 2040 	ldrb.w	r2, [r0, #64]	; 0x40
+ 8008dde:	2a01      	cmp	r2, #1
+ 8008de0:	d017      	beq.n	8008e12 <HAL_I2CEx_ConfigDigitalFilter+0x46>
+ 8008de2:	2224      	movs	r2, #36	; 0x24
+ 8008de4:	f880 2041 	strb.w	r2, [r0, #65]	; 0x41
+ 8008de8:	6802      	ldr	r2, [r0, #0]
+ 8008dea:	6810      	ldr	r0, [r2, #0]
+ 8008dec:	f020 0001 	bic.w	r0, r0, #1
+ 8008df0:	6010      	str	r0, [r2, #0]
+ 8008df2:	6810      	ldr	r0, [r2, #0]
+ 8008df4:	f420 6070 	bic.w	r0, r0, #3840	; 0xf00
+ 8008df8:	ea40 2101 	orr.w	r1, r0, r1, lsl #8
+ 8008dfc:	6011      	str	r1, [r2, #0]
+ 8008dfe:	6811      	ldr	r1, [r2, #0]
+ 8008e00:	2000      	movs	r0, #0
+ 8008e02:	f041 0101 	orr.w	r1, r1, #1
+ 8008e06:	6011      	str	r1, [r2, #0]
+ 8008e08:	f883 4041 	strb.w	r4, [r3, #65]	; 0x41
+ 8008e0c:	f883 0040 	strb.w	r0, [r3, #64]	; 0x40
+ 8008e10:	bd10      	pop	{r4, pc}
+ 8008e12:	2002      	movs	r0, #2
+ 8008e14:	e7fc      	b.n	8008e10 <HAL_I2CEx_ConfigDigitalFilter+0x44>
+	...
+
+08008e18 <HAL_PWR_EnableBkUpAccess>:
+ 8008e18:	4a02      	ldr	r2, [pc, #8]	; (8008e24 <HAL_PWR_EnableBkUpAccess+0xc>)
+ 8008e1a:	6813      	ldr	r3, [r2, #0]
+ 8008e1c:	f443 7380 	orr.w	r3, r3, #256	; 0x100
+ 8008e20:	6013      	str	r3, [r2, #0]
+ 8008e22:	4770      	bx	lr
+ 8008e24:	58000400 	.word	0x58000400
+
+08008e28 <HAL_PWR_EnterSLEEPMode>:
+ 8008e28:	4b0d      	ldr	r3, [pc, #52]	; (8008e60 <HAL_PWR_EnterSLEEPMode+0x38>)
+ 8008e2a:	b510      	push	{r4, lr}
+ 8008e2c:	695b      	ldr	r3, [r3, #20]
+ 8008e2e:	460c      	mov	r4, r1
+ 8008e30:	b928      	cbnz	r0, 8008e3e <HAL_PWR_EnterSLEEPMode+0x16>
+ 8008e32:	059a      	lsls	r2, r3, #22
+ 8008e34:	d507      	bpl.n	8008e46 <HAL_PWR_EnterSLEEPMode+0x1e>
+ 8008e36:	f000 f827 	bl	8008e88 <HAL_PWREx_DisableLowPowerRunMode>
+ 8008e3a:	b120      	cbz	r0, 8008e46 <HAL_PWR_EnterSLEEPMode+0x1e>
+ 8008e3c:	bd10      	pop	{r4, pc}
+ 8008e3e:	059b      	lsls	r3, r3, #22
+ 8008e40:	d401      	bmi.n	8008e46 <HAL_PWR_EnterSLEEPMode+0x1e>
+ 8008e42:	f000 f819 	bl	8008e78 <HAL_PWREx_EnableLowPowerRunMode>
+ 8008e46:	4a07      	ldr	r2, [pc, #28]	; (8008e64 <HAL_PWR_EnterSLEEPMode+0x3c>)
+ 8008e48:	6913      	ldr	r3, [r2, #16]
+ 8008e4a:	2c01      	cmp	r4, #1
+ 8008e4c:	f023 0304 	bic.w	r3, r3, #4
+ 8008e50:	6113      	str	r3, [r2, #16]
+ 8008e52:	d101      	bne.n	8008e58 <HAL_PWR_EnterSLEEPMode+0x30>
+ 8008e54:	bf30      	wfi
+ 8008e56:	e7f1      	b.n	8008e3c <HAL_PWR_EnterSLEEPMode+0x14>
+ 8008e58:	bf40      	sev
+ 8008e5a:	bf20      	wfe
+ 8008e5c:	bf20      	wfe
+ 8008e5e:	e7ed      	b.n	8008e3c <HAL_PWR_EnterSLEEPMode+0x14>
+ 8008e60:	58000400 	.word	0x58000400
+ 8008e64:	e000ed00 	.word	0xe000ed00
+
+08008e68 <HAL_PWREx_GetVoltageRange>:
+ 8008e68:	4b02      	ldr	r3, [pc, #8]	; (8008e74 <HAL_PWREx_GetVoltageRange+0xc>)
+ 8008e6a:	6818      	ldr	r0, [r3, #0]
+ 8008e6c:	f400 60c0 	and.w	r0, r0, #1536	; 0x600
+ 8008e70:	4770      	bx	lr
+ 8008e72:	bf00      	nop
+ 8008e74:	58000400 	.word	0x58000400
+
+08008e78 <HAL_PWREx_EnableLowPowerRunMode>:
+ 8008e78:	4a02      	ldr	r2, [pc, #8]	; (8008e84 <HAL_PWREx_EnableLowPowerRunMode+0xc>)
+ 8008e7a:	6813      	ldr	r3, [r2, #0]
+ 8008e7c:	f443 4380 	orr.w	r3, r3, #16384	; 0x4000
+ 8008e80:	6013      	str	r3, [r2, #0]
+ 8008e82:	4770      	bx	lr
+ 8008e84:	58000400 	.word	0x58000400
+
+08008e88 <HAL_PWREx_DisableLowPowerRunMode>:
+ 8008e88:	4a0c      	ldr	r2, [pc, #48]	; (8008ebc <HAL_PWREx_DisableLowPowerRunMode+0x34>)
+ 8008e8a:	6813      	ldr	r3, [r2, #0]
+ 8008e8c:	f423 4380 	bic.w	r3, r3, #16384	; 0x4000
+ 8008e90:	6013      	str	r3, [r2, #0]
+ 8008e92:	4b0b      	ldr	r3, [pc, #44]	; (8008ec0 <HAL_PWREx_DisableLowPowerRunMode+0x38>)
+ 8008e94:	681b      	ldr	r3, [r3, #0]
+ 8008e96:	2132      	movs	r1, #50	; 0x32
+ 8008e98:	434b      	muls	r3, r1
+ 8008e9a:	490a      	ldr	r1, [pc, #40]	; (8008ec4 <HAL_PWREx_DisableLowPowerRunMode+0x3c>)
+ 8008e9c:	fbb3 f3f1 	udiv	r3, r3, r1
+ 8008ea0:	6951      	ldr	r1, [r2, #20]
+ 8008ea2:	0589      	lsls	r1, r1, #22
+ 8008ea4:	d500      	bpl.n	8008ea8 <HAL_PWREx_DisableLowPowerRunMode+0x20>
+ 8008ea6:	b933      	cbnz	r3, 8008eb6 <HAL_PWREx_DisableLowPowerRunMode+0x2e>
+ 8008ea8:	6953      	ldr	r3, [r2, #20]
+ 8008eaa:	f413 7f00 	tst.w	r3, #512	; 0x200
+ 8008eae:	bf14      	ite	ne
+ 8008eb0:	2003      	movne	r0, #3
+ 8008eb2:	2000      	moveq	r0, #0
+ 8008eb4:	4770      	bx	lr
+ 8008eb6:	3b01      	subs	r3, #1
+ 8008eb8:	e7f2      	b.n	8008ea0 <HAL_PWREx_DisableLowPowerRunMode+0x18>
+ 8008eba:	bf00      	nop
+ 8008ebc:	58000400 	.word	0x58000400
+ 8008ec0:	20000828 	.word	0x20000828
+ 8008ec4:	000f4240 	.word	0x000f4240
+
+08008ec8 <HAL_PWREx_EnterSTOP2Mode>:
+ 8008ec8:	4a0b      	ldr	r2, [pc, #44]	; (8008ef8 <HAL_PWREx_EnterSTOP2Mode+0x30>)
+ 8008eca:	6813      	ldr	r3, [r2, #0]
+ 8008ecc:	f023 0307 	bic.w	r3, r3, #7
+ 8008ed0:	f043 0302 	orr.w	r3, r3, #2
+ 8008ed4:	6013      	str	r3, [r2, #0]
+ 8008ed6:	4b09      	ldr	r3, [pc, #36]	; (8008efc <HAL_PWREx_EnterSTOP2Mode+0x34>)
+ 8008ed8:	691a      	ldr	r2, [r3, #16]
+ 8008eda:	2801      	cmp	r0, #1
+ 8008edc:	f042 0204 	orr.w	r2, r2, #4
+ 8008ee0:	611a      	str	r2, [r3, #16]
+ 8008ee2:	d105      	bne.n	8008ef0 <HAL_PWREx_EnterSTOP2Mode+0x28>
+ 8008ee4:	bf30      	wfi
+ 8008ee6:	691a      	ldr	r2, [r3, #16]
+ 8008ee8:	f022 0204 	bic.w	r2, r2, #4
+ 8008eec:	611a      	str	r2, [r3, #16]
+ 8008eee:	4770      	bx	lr
+ 8008ef0:	bf40      	sev
+ 8008ef2:	bf20      	wfe
+ 8008ef4:	bf20      	wfe
+ 8008ef6:	e7f6      	b.n	8008ee6 <HAL_PWREx_EnterSTOP2Mode+0x1e>
+ 8008ef8:	58000400 	.word	0x58000400
+ 8008efc:	e000ed00 	.word	0xe000ed00
+
+08008f00 <LL_RCC_HSE_IsReady>:
+ 8008f00:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8008f04:	6818      	ldr	r0, [r3, #0]
+ 8008f06:	f3c0 4040 	ubfx	r0, r0, #17, #1
+ 8008f0a:	4770      	bx	lr
+
+08008f0c <LL_RCC_MSI_IsReady>:
+ 8008f0c:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8008f10:	6818      	ldr	r0, [r3, #0]
+ 8008f12:	f3c0 0040 	ubfx	r0, r0, #1, #1
+ 8008f16:	4770      	bx	lr
+
+08008f18 <LL_RCC_MSI_SetCalibTrimming>:
+ 8008f18:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 8008f1c:	6853      	ldr	r3, [r2, #4]
+ 8008f1e:	f423 437f 	bic.w	r3, r3, #65280	; 0xff00
+ 8008f22:	ea43 2300 	orr.w	r3, r3, r0, lsl #8
+ 8008f26:	6053      	str	r3, [r2, #4]
+ 8008f28:	4770      	bx	lr
+
+08008f2a <LL_RCC_PLL_IsReady>:
+ 8008f2a:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8008f2e:	6818      	ldr	r0, [r3, #0]
+ 8008f30:	f3c0 6040 	ubfx	r0, r0, #25, #1
+ 8008f34:	4770      	bx	lr
+	...
+
+08008f38 <RCC_SetFlashLatencyFromMSIRange>:
+ 8008f38:	b57f      	push	{r0, r1, r2, r3, r4, r5, r6, lr}
+ 8008f3a:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8008f3e:	4a2c      	ldr	r2, [pc, #176]	; (8008ff0 <RCC_SetFlashLatencyFromMSIRange+0xb8>)
+ 8008f40:	f8d3 3108 	ldr.w	r3, [r3, #264]	; 0x108
+ 8008f44:	f3c0 1003 	ubfx	r0, r0, #4, #4
+ 8008f48:	f003 030f 	and.w	r3, r3, #15
+ 8008f4c:	f852 4020 	ldr.w	r4, [r2, r0, lsl #2]
+ 8008f50:	4a28      	ldr	r2, [pc, #160]	; (8008ff4 <RCC_SetFlashLatencyFromMSIRange+0xbc>)
+ 8008f52:	f852 3023 	ldr.w	r3, [r2, r3, lsl #2]
+ 8008f56:	fbb4 f4f3 	udiv	r4, r4, r3
+ 8008f5a:	f7ff ff85 	bl	8008e68 <HAL_PWREx_GetVoltageRange>
+ 8008f5e:	4b26      	ldr	r3, [pc, #152]	; (8008ff8 <RCC_SetFlashLatencyFromMSIRange+0xc0>)
+ 8008f60:	4605      	mov	r5, r0
+ 8008f62:	e893 0007 	ldmia.w	r3, {r0, r1, r2}
+ 8008f66:	f5b5 7f00 	cmp.w	r5, #512	; 0x200
+ 8008f6a:	ab04      	add	r3, sp, #16
+ 8008f6c:	e903 0007 	stmdb	r3, {r0, r1, r2}
+ 8008f70:	d010      	beq.n	8008f94 <RCC_SetFlashLatencyFromMSIRange+0x5c>
+ 8008f72:	4b22      	ldr	r3, [pc, #136]	; (8008ffc <RCC_SetFlashLatencyFromMSIRange+0xc4>)
+ 8008f74:	429c      	cmp	r4, r3
+ 8008f76:	d318      	bcc.n	8008faa <RCC_SetFlashLatencyFromMSIRange+0x72>
+ 8008f78:	f503 03b7 	add.w	r3, r3, #5996544	; 0x5b8000
+ 8008f7c:	f603 537f 	addw	r3, r3, #3455	; 0xd7f
+ 8008f80:	429c      	cmp	r4, r3
+ 8008f82:	d929      	bls.n	8008fd8 <RCC_SetFlashLatencyFromMSIRange+0xa0>
+ 8008f84:	f503 1374 	add.w	r3, r3, #3997696	; 0x3d0000
+ 8008f88:	f503 6310 	add.w	r3, r3, #2304	; 0x900
+ 8008f8c:	429c      	cmp	r4, r3
+ 8008f8e:	d825      	bhi.n	8008fdc <RCC_SetFlashLatencyFromMSIRange+0xa4>
+ 8008f90:	2302      	movs	r3, #2
+ 8008f92:	e00b      	b.n	8008fac <RCC_SetFlashLatencyFromMSIRange+0x74>
+ 8008f94:	4b1a      	ldr	r3, [pc, #104]	; (8009000 <RCC_SetFlashLatencyFromMSIRange+0xc8>)
+ 8008f96:	429c      	cmp	r4, r3
+ 8008f98:	d907      	bls.n	8008faa <RCC_SetFlashLatencyFromMSIRange+0x72>
+ 8008f9a:	4b1a      	ldr	r3, [pc, #104]	; (8009004 <RCC_SetFlashLatencyFromMSIRange+0xcc>)
+ 8008f9c:	429c      	cmp	r4, r3
+ 8008f9e:	d91b      	bls.n	8008fd8 <RCC_SetFlashLatencyFromMSIRange+0xa0>
+ 8008fa0:	f503 0337 	add.w	r3, r3, #11993088	; 0xb70000
+ 8008fa4:	f503 53d8 	add.w	r3, r3, #6912	; 0x1b00
+ 8008fa8:	e7f0      	b.n	8008f8c <RCC_SetFlashLatencyFromMSIRange+0x54>
+ 8008faa:	2300      	movs	r3, #0
+ 8008fac:	aa04      	add	r2, sp, #16
+ 8008fae:	eb02 0383 	add.w	r3, r2, r3, lsl #2
+ 8008fb2:	f853 4c0c 	ldr.w	r4, [r3, #-12]
+ 8008fb6:	4d14      	ldr	r5, [pc, #80]	; (8009008 <RCC_SetFlashLatencyFromMSIRange+0xd0>)
+ 8008fb8:	682b      	ldr	r3, [r5, #0]
+ 8008fba:	f023 0307 	bic.w	r3, r3, #7
+ 8008fbe:	4323      	orrs	r3, r4
+ 8008fc0:	602b      	str	r3, [r5, #0]
+ 8008fc2:	f7f9 fde5 	bl	8002b90 <HAL_GetTick>
+ 8008fc6:	4606      	mov	r6, r0
+ 8008fc8:	682b      	ldr	r3, [r5, #0]
+ 8008fca:	f003 0307 	and.w	r3, r3, #7
+ 8008fce:	429c      	cmp	r4, r3
+ 8008fd0:	d106      	bne.n	8008fe0 <RCC_SetFlashLatencyFromMSIRange+0xa8>
+ 8008fd2:	2000      	movs	r0, #0
+ 8008fd4:	b004      	add	sp, #16
+ 8008fd6:	bd70      	pop	{r4, r5, r6, pc}
+ 8008fd8:	2301      	movs	r3, #1
+ 8008fda:	e7e7      	b.n	8008fac <RCC_SetFlashLatencyFromMSIRange+0x74>
+ 8008fdc:	2400      	movs	r4, #0
+ 8008fde:	e7ea      	b.n	8008fb6 <RCC_SetFlashLatencyFromMSIRange+0x7e>
+ 8008fe0:	f7f9 fdd6 	bl	8002b90 <HAL_GetTick>
+ 8008fe4:	1b80      	subs	r0, r0, r6
+ 8008fe6:	2802      	cmp	r0, #2
+ 8008fe8:	d9ee      	bls.n	8008fc8 <RCC_SetFlashLatencyFromMSIRange+0x90>
+ 8008fea:	2003      	movs	r0, #3
+ 8008fec:	e7f2      	b.n	8008fd4 <RCC_SetFlashLatencyFromMSIRange+0x9c>
+ 8008fee:	bf00      	nop
+ 8008ff0:	08015230 	.word	0x08015230
+ 8008ff4:	080151d0 	.word	0x080151d0
+ 8008ff8:	080145a8 	.word	0x080145a8
+ 8008ffc:	006acfc0 	.word	0x006acfc0
+ 8009000:	0121eabf 	.word	0x0121eabf
+ 8009004:	0234933f 	.word	0x0234933f
+ 8009008:	58004000 	.word	0x58004000
+
+0800900c <HAL_RCC_GetSysClockFreq>:
+ 800900c:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8009010:	b510      	push	{r4, lr}
+ 8009012:	689a      	ldr	r2, [r3, #8]
+ 8009014:	68d9      	ldr	r1, [r3, #12]
+ 8009016:	f012 020c 	ands.w	r2, r2, #12
+ 800901a:	d005      	beq.n	8009028 <HAL_RCC_GetSysClockFreq+0x1c>
+ 800901c:	2a0c      	cmp	r2, #12
+ 800901e:	d14a      	bne.n	80090b6 <HAL_RCC_GetSysClockFreq+0xaa>
+ 8009020:	f001 0303 	and.w	r3, r1, #3
+ 8009024:	2b01      	cmp	r3, #1
+ 8009026:	d150      	bne.n	80090ca <HAL_RCC_GetSysClockFreq+0xbe>
+ 8009028:	f04f 41b0 	mov.w	r1, #1476395008	; 0x58000000
+ 800902c:	482b      	ldr	r0, [pc, #172]	; (80090dc <HAL_RCC_GetSysClockFreq+0xd0>)
+ 800902e:	680b      	ldr	r3, [r1, #0]
+ 8009030:	f013 0308 	ands.w	r3, r3, #8
+ 8009034:	d006      	beq.n	8009044 <HAL_RCC_GetSysClockFreq+0x38>
+ 8009036:	680b      	ldr	r3, [r1, #0]
+ 8009038:	f013 0308 	ands.w	r3, r3, #8
+ 800903c:	d137      	bne.n	80090ae <HAL_RCC_GetSysClockFreq+0xa2>
+ 800903e:	f8d1 1094 	ldr.w	r1, [r1, #148]	; 0x94
+ 8009042:	e007      	b.n	8009054 <HAL_RCC_GetSysClockFreq+0x48>
+ 8009044:	680c      	ldr	r4, [r1, #0]
+ 8009046:	0724      	lsls	r4, r4, #28
+ 8009048:	bf56      	itet	pl
+ 800904a:	f8d1 3094 	ldrpl.w	r3, [r1, #148]	; 0x94
+ 800904e:	6809      	ldrmi	r1, [r1, #0]
+ 8009050:	f3c3 2303 	ubfxpl	r3, r3, #8, #4
+ 8009054:	f850 3023 	ldr.w	r3, [r0, r3, lsl #2]
+ 8009058:	2a00      	cmp	r2, #0
+ 800905a:	bf0c      	ite	eq
+ 800905c:	4618      	moveq	r0, r3
+ 800905e:	2000      	movne	r0, #0
+ 8009060:	f04f 41b0 	mov.w	r1, #1476395008	; 0x58000000
+ 8009064:	688a      	ldr	r2, [r1, #8]
+ 8009066:	f002 020c 	and.w	r2, r2, #12
+ 800906a:	2a0c      	cmp	r2, #12
+ 800906c:	d11e      	bne.n	80090ac <HAL_RCC_GetSysClockFreq+0xa0>
+ 800906e:	68ca      	ldr	r2, [r1, #12]
+ 8009070:	f002 0203 	and.w	r2, r2, #3
+ 8009074:	2a02      	cmp	r2, #2
+ 8009076:	d02e      	beq.n	80090d6 <HAL_RCC_GetSysClockFreq+0xca>
+ 8009078:	2a03      	cmp	r2, #3
+ 800907a:	d106      	bne.n	800908a <HAL_RCC_GetSysClockFreq+0x7e>
+ 800907c:	680b      	ldr	r3, [r1, #0]
+ 800907e:	4a18      	ldr	r2, [pc, #96]	; (80090e0 <HAL_RCC_GetSysClockFreq+0xd4>)
+ 8009080:	f413 1f80 	tst.w	r3, #1048576	; 0x100000
+ 8009084:	4b17      	ldr	r3, [pc, #92]	; (80090e4 <HAL_RCC_GetSysClockFreq+0xd8>)
+ 8009086:	bf18      	it	ne
+ 8009088:	4613      	movne	r3, r2
+ 800908a:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 800908e:	68d0      	ldr	r0, [r2, #12]
+ 8009090:	68d1      	ldr	r1, [r2, #12]
+ 8009092:	68d2      	ldr	r2, [r2, #12]
+ 8009094:	f3c0 2006 	ubfx	r0, r0, #8, #7
+ 8009098:	4358      	muls	r0, r3
+ 800909a:	f3c1 1302 	ubfx	r3, r1, #4, #3
+ 800909e:	3301      	adds	r3, #1
+ 80090a0:	fbb0 f0f3 	udiv	r0, r0, r3
+ 80090a4:	0f53      	lsrs	r3, r2, #29
+ 80090a6:	3301      	adds	r3, #1
+ 80090a8:	fbb0 f0f3 	udiv	r0, r0, r3
+ 80090ac:	bd10      	pop	{r4, pc}
+ 80090ae:	680b      	ldr	r3, [r1, #0]
+ 80090b0:	f3c3 1303 	ubfx	r3, r3, #4, #4
+ 80090b4:	e7ce      	b.n	8009054 <HAL_RCC_GetSysClockFreq+0x48>
+ 80090b6:	2a04      	cmp	r2, #4
+ 80090b8:	d00a      	beq.n	80090d0 <HAL_RCC_GetSysClockFreq+0xc4>
+ 80090ba:	2a08      	cmp	r2, #8
+ 80090bc:	d105      	bne.n	80090ca <HAL_RCC_GetSysClockFreq+0xbe>
+ 80090be:	681b      	ldr	r3, [r3, #0]
+ 80090c0:	f413 1380 	ands.w	r3, r3, #1048576	; 0x100000
+ 80090c4:	d104      	bne.n	80090d0 <HAL_RCC_GetSysClockFreq+0xc4>
+ 80090c6:	4807      	ldr	r0, [pc, #28]	; (80090e4 <HAL_RCC_GetSysClockFreq+0xd8>)
+ 80090c8:	e7ca      	b.n	8009060 <HAL_RCC_GetSysClockFreq+0x54>
+ 80090ca:	2300      	movs	r3, #0
+ 80090cc:	4618      	mov	r0, r3
+ 80090ce:	e7c7      	b.n	8009060 <HAL_RCC_GetSysClockFreq+0x54>
+ 80090d0:	4803      	ldr	r0, [pc, #12]	; (80090e0 <HAL_RCC_GetSysClockFreq+0xd4>)
+ 80090d2:	2300      	movs	r3, #0
+ 80090d4:	e7c4      	b.n	8009060 <HAL_RCC_GetSysClockFreq+0x54>
+ 80090d6:	4b02      	ldr	r3, [pc, #8]	; (80090e0 <HAL_RCC_GetSysClockFreq+0xd4>)
+ 80090d8:	e7d7      	b.n	800908a <HAL_RCC_GetSysClockFreq+0x7e>
+ 80090da:	bf00      	nop
+ 80090dc:	08015230 	.word	0x08015230
+ 80090e0:	00f42400 	.word	0x00f42400
+ 80090e4:	01e84800 	.word	0x01e84800
+
+080090e8 <HAL_RCC_GetHCLKFreq>:
+ 80090e8:	b508      	push	{r3, lr}
+ 80090ea:	f7ff ff8f 	bl	800900c <HAL_RCC_GetSysClockFreq>
+ 80090ee:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 80090f2:	4a04      	ldr	r2, [pc, #16]	; (8009104 <HAL_RCC_GetHCLKFreq+0x1c>)
+ 80090f4:	689b      	ldr	r3, [r3, #8]
+ 80090f6:	f3c3 1303 	ubfx	r3, r3, #4, #4
+ 80090fa:	f852 3023 	ldr.w	r3, [r2, r3, lsl #2]
+ 80090fe:	fbb0 f0f3 	udiv	r0, r0, r3
+ 8009102:	bd08      	pop	{r3, pc}
+ 8009104:	080151d0 	.word	0x080151d0
+
+08009108 <HAL_RCC_OscConfig>:
+ 8009108:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800910c:	4604      	mov	r4, r0
+ 800910e:	2800      	cmp	r0, #0
+ 8009110:	d053      	beq.n	80091ba <HAL_RCC_OscConfig+0xb2>
+ 8009112:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8009116:	689d      	ldr	r5, [r3, #8]
+ 8009118:	68de      	ldr	r6, [r3, #12]
+ 800911a:	6803      	ldr	r3, [r0, #0]
+ 800911c:	069b      	lsls	r3, r3, #26
+ 800911e:	f005 050c 	and.w	r5, r5, #12
+ 8009122:	f006 0603 	and.w	r6, r6, #3
+ 8009126:	d568      	bpl.n	80091fa <HAL_RCC_OscConfig+0xf2>
+ 8009128:	6a02      	ldr	r2, [r0, #32]
+ 800912a:	b11d      	cbz	r5, 8009134 <HAL_RCC_OscConfig+0x2c>
+ 800912c:	2d0c      	cmp	r5, #12
+ 800912e:	d146      	bne.n	80091be <HAL_RCC_OscConfig+0xb6>
+ 8009130:	2e01      	cmp	r6, #1
+ 8009132:	d144      	bne.n	80091be <HAL_RCC_OscConfig+0xb6>
+ 8009134:	2a00      	cmp	r2, #0
+ 8009136:	d040      	beq.n	80091ba <HAL_RCC_OscConfig+0xb2>
+ 8009138:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800913c:	6aa1      	ldr	r1, [r4, #40]	; 0x28
+ 800913e:	681a      	ldr	r2, [r3, #0]
+ 8009140:	0717      	lsls	r7, r2, #28
+ 8009142:	bf56      	itet	pl
+ 8009144:	f8d3 3094 	ldrpl.w	r3, [r3, #148]	; 0x94
+ 8009148:	681b      	ldrmi	r3, [r3, #0]
+ 800914a:	091b      	lsrpl	r3, r3, #4
+ 800914c:	f003 03f0 	and.w	r3, r3, #240	; 0xf0
+ 8009150:	4299      	cmp	r1, r3
+ 8009152:	d91f      	bls.n	8009194 <HAL_RCC_OscConfig+0x8c>
+ 8009154:	4608      	mov	r0, r1
+ 8009156:	f7ff feef 	bl	8008f38 <RCC_SetFlashLatencyFromMSIRange>
+ 800915a:	2800      	cmp	r0, #0
+ 800915c:	d12d      	bne.n	80091ba <HAL_RCC_OscConfig+0xb2>
+ 800915e:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 8009162:	6813      	ldr	r3, [r2, #0]
+ 8009164:	f043 0308 	orr.w	r3, r3, #8
+ 8009168:	6013      	str	r3, [r2, #0]
+ 800916a:	6813      	ldr	r3, [r2, #0]
+ 800916c:	6aa1      	ldr	r1, [r4, #40]	; 0x28
+ 800916e:	f023 03f0 	bic.w	r3, r3, #240	; 0xf0
+ 8009172:	430b      	orrs	r3, r1
+ 8009174:	6013      	str	r3, [r2, #0]
+ 8009176:	6a60      	ldr	r0, [r4, #36]	; 0x24
+ 8009178:	f7ff fece 	bl	8008f18 <LL_RCC_MSI_SetCalibTrimming>
+ 800917c:	f7ff ffb4 	bl	80090e8 <HAL_RCC_GetHCLKFreq>
+ 8009180:	4bab      	ldr	r3, [pc, #684]	; (8009430 <HAL_RCC_OscConfig+0x328>)
+ 8009182:	6018      	str	r0, [r3, #0]
+ 8009184:	4bab      	ldr	r3, [pc, #684]	; (8009434 <HAL_RCC_OscConfig+0x32c>)
+ 8009186:	6818      	ldr	r0, [r3, #0]
+ 8009188:	f7f9 fd00 	bl	8002b8c <HAL_InitTick>
+ 800918c:	2800      	cmp	r0, #0
+ 800918e:	d034      	beq.n	80091fa <HAL_RCC_OscConfig+0xf2>
+ 8009190:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 8009194:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 8009198:	6813      	ldr	r3, [r2, #0]
+ 800919a:	f043 0308 	orr.w	r3, r3, #8
+ 800919e:	6013      	str	r3, [r2, #0]
+ 80091a0:	6813      	ldr	r3, [r2, #0]
+ 80091a2:	f023 03f0 	bic.w	r3, r3, #240	; 0xf0
+ 80091a6:	430b      	orrs	r3, r1
+ 80091a8:	6013      	str	r3, [r2, #0]
+ 80091aa:	6a60      	ldr	r0, [r4, #36]	; 0x24
+ 80091ac:	f7ff feb4 	bl	8008f18 <LL_RCC_MSI_SetCalibTrimming>
+ 80091b0:	4608      	mov	r0, r1
+ 80091b2:	f7ff fec1 	bl	8008f38 <RCC_SetFlashLatencyFromMSIRange>
+ 80091b6:	2800      	cmp	r0, #0
+ 80091b8:	d0e0      	beq.n	800917c <HAL_RCC_OscConfig+0x74>
+ 80091ba:	2001      	movs	r0, #1
+ 80091bc:	e7e8      	b.n	8009190 <HAL_RCC_OscConfig+0x88>
+ 80091be:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 80091c2:	2a00      	cmp	r2, #0
+ 80091c4:	d054      	beq.n	8009270 <HAL_RCC_OscConfig+0x168>
+ 80091c6:	681a      	ldr	r2, [r3, #0]
+ 80091c8:	f042 0201 	orr.w	r2, r2, #1
+ 80091cc:	601a      	str	r2, [r3, #0]
+ 80091ce:	f7f9 fcdf 	bl	8002b90 <HAL_GetTick>
+ 80091d2:	4607      	mov	r7, r0
+ 80091d4:	f7ff fe9a 	bl	8008f0c <LL_RCC_MSI_IsReady>
+ 80091d8:	2800      	cmp	r0, #0
+ 80091da:	d042      	beq.n	8009262 <HAL_RCC_OscConfig+0x15a>
+ 80091dc:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 80091e0:	6813      	ldr	r3, [r2, #0]
+ 80091e2:	f043 0308 	orr.w	r3, r3, #8
+ 80091e6:	6013      	str	r3, [r2, #0]
+ 80091e8:	6813      	ldr	r3, [r2, #0]
+ 80091ea:	6aa1      	ldr	r1, [r4, #40]	; 0x28
+ 80091ec:	f023 03f0 	bic.w	r3, r3, #240	; 0xf0
+ 80091f0:	430b      	orrs	r3, r1
+ 80091f2:	6013      	str	r3, [r2, #0]
+ 80091f4:	6a60      	ldr	r0, [r4, #36]	; 0x24
+ 80091f6:	f7ff fe8f 	bl	8008f18 <LL_RCC_MSI_SetCalibTrimming>
+ 80091fa:	6823      	ldr	r3, [r4, #0]
+ 80091fc:	07d8      	lsls	r0, r3, #31
+ 80091fe:	d448      	bmi.n	8009292 <HAL_RCC_OscConfig+0x18a>
+ 8009200:	6823      	ldr	r3, [r4, #0]
+ 8009202:	0799      	lsls	r1, r3, #30
+ 8009204:	f100 808c 	bmi.w	8009320 <HAL_RCC_OscConfig+0x218>
+ 8009208:	6823      	ldr	r3, [r4, #0]
+ 800920a:	071e      	lsls	r6, r3, #28
+ 800920c:	f140 80fa 	bpl.w	8009404 <HAL_RCC_OscConfig+0x2fc>
+ 8009210:	69a3      	ldr	r3, [r4, #24]
+ 8009212:	f04f 46b0 	mov.w	r6, #1476395008	; 0x58000000
+ 8009216:	2b00      	cmp	r3, #0
+ 8009218:	f000 80e1 	beq.w	80093de <HAL_RCC_OscConfig+0x2d6>
+ 800921c:	f8d6 3094 	ldr.w	r3, [r6, #148]	; 0x94
+ 8009220:	69e1      	ldr	r1, [r4, #28]
+ 8009222:	f003 0210 	and.w	r2, r3, #16
+ 8009226:	4291      	cmp	r1, r2
+ 8009228:	f000 80c4 	beq.w	80093b4 <HAL_RCC_OscConfig+0x2ac>
+ 800922c:	f003 0203 	and.w	r2, r3, #3
+ 8009230:	2a02      	cmp	r2, #2
+ 8009232:	d0c2      	beq.n	80091ba <HAL_RCC_OscConfig+0xb2>
+ 8009234:	07d8      	lsls	r0, r3, #31
+ 8009236:	f140 80b3 	bpl.w	80093a0 <HAL_RCC_OscConfig+0x298>
+ 800923a:	f8d6 3094 	ldr.w	r3, [r6, #148]	; 0x94
+ 800923e:	f023 0301 	bic.w	r3, r3, #1
+ 8009242:	f8c6 3094 	str.w	r3, [r6, #148]	; 0x94
+ 8009246:	f7f9 fca3 	bl	8002b90 <HAL_GetTick>
+ 800924a:	4607      	mov	r7, r0
+ 800924c:	f8d6 3094 	ldr.w	r3, [r6, #148]	; 0x94
+ 8009250:	0799      	lsls	r1, r3, #30
+ 8009252:	f140 80a5 	bpl.w	80093a0 <HAL_RCC_OscConfig+0x298>
+ 8009256:	f7f9 fc9b 	bl	8002b90 <HAL_GetTick>
+ 800925a:	1bc3      	subs	r3, r0, r7
+ 800925c:	2b11      	cmp	r3, #17
+ 800925e:	d9f5      	bls.n	800924c <HAL_RCC_OscConfig+0x144>
+ 8009260:	e004      	b.n	800926c <HAL_RCC_OscConfig+0x164>
+ 8009262:	f7f9 fc95 	bl	8002b90 <HAL_GetTick>
+ 8009266:	1bc0      	subs	r0, r0, r7
+ 8009268:	2802      	cmp	r0, #2
+ 800926a:	d9b3      	bls.n	80091d4 <HAL_RCC_OscConfig+0xcc>
+ 800926c:	2003      	movs	r0, #3
+ 800926e:	e78f      	b.n	8009190 <HAL_RCC_OscConfig+0x88>
+ 8009270:	681a      	ldr	r2, [r3, #0]
+ 8009272:	f022 0201 	bic.w	r2, r2, #1
+ 8009276:	601a      	str	r2, [r3, #0]
+ 8009278:	f7f9 fc8a 	bl	8002b90 <HAL_GetTick>
+ 800927c:	4607      	mov	r7, r0
+ 800927e:	f7ff fe45 	bl	8008f0c <LL_RCC_MSI_IsReady>
+ 8009282:	2800      	cmp	r0, #0
+ 8009284:	d0b9      	beq.n	80091fa <HAL_RCC_OscConfig+0xf2>
+ 8009286:	f7f9 fc83 	bl	8002b90 <HAL_GetTick>
+ 800928a:	1bc0      	subs	r0, r0, r7
+ 800928c:	2802      	cmp	r0, #2
+ 800928e:	d9f6      	bls.n	800927e <HAL_RCC_OscConfig+0x176>
+ 8009290:	e7ec      	b.n	800926c <HAL_RCC_OscConfig+0x164>
+ 8009292:	2d08      	cmp	r5, #8
+ 8009294:	d003      	beq.n	800929e <HAL_RCC_OscConfig+0x196>
+ 8009296:	2d0c      	cmp	r5, #12
+ 8009298:	d105      	bne.n	80092a6 <HAL_RCC_OscConfig+0x19e>
+ 800929a:	2e03      	cmp	r6, #3
+ 800929c:	d103      	bne.n	80092a6 <HAL_RCC_OscConfig+0x19e>
+ 800929e:	6863      	ldr	r3, [r4, #4]
+ 80092a0:	2b00      	cmp	r3, #0
+ 80092a2:	d1ad      	bne.n	8009200 <HAL_RCC_OscConfig+0xf8>
+ 80092a4:	e789      	b.n	80091ba <HAL_RCC_OscConfig+0xb2>
+ 80092a6:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 80092aa:	68a1      	ldr	r1, [r4, #8]
+ 80092ac:	681a      	ldr	r2, [r3, #0]
+ 80092ae:	f422 1280 	bic.w	r2, r2, #1048576	; 0x100000
+ 80092b2:	430a      	orrs	r2, r1
+ 80092b4:	601a      	str	r2, [r3, #0]
+ 80092b6:	6862      	ldr	r2, [r4, #4]
+ 80092b8:	f5b2 3f80 	cmp.w	r2, #65536	; 0x10000
+ 80092bc:	d110      	bne.n	80092e0 <HAL_RCC_OscConfig+0x1d8>
+ 80092be:	681a      	ldr	r2, [r3, #0]
+ 80092c0:	f442 3280 	orr.w	r2, r2, #65536	; 0x10000
+ 80092c4:	601a      	str	r2, [r3, #0]
+ 80092c6:	f7f9 fc63 	bl	8002b90 <HAL_GetTick>
+ 80092ca:	4607      	mov	r7, r0
+ 80092cc:	f7ff fe18 	bl	8008f00 <LL_RCC_HSE_IsReady>
+ 80092d0:	2800      	cmp	r0, #0
+ 80092d2:	d195      	bne.n	8009200 <HAL_RCC_OscConfig+0xf8>
+ 80092d4:	f7f9 fc5c 	bl	8002b90 <HAL_GetTick>
+ 80092d8:	1bc0      	subs	r0, r0, r7
+ 80092da:	2864      	cmp	r0, #100	; 0x64
+ 80092dc:	d9f6      	bls.n	80092cc <HAL_RCC_OscConfig+0x1c4>
+ 80092de:	e7c5      	b.n	800926c <HAL_RCC_OscConfig+0x164>
+ 80092e0:	f5b2 1f04 	cmp.w	r2, #2162688	; 0x210000
+ 80092e4:	d104      	bne.n	80092f0 <HAL_RCC_OscConfig+0x1e8>
+ 80092e6:	681a      	ldr	r2, [r3, #0]
+ 80092e8:	f442 1200 	orr.w	r2, r2, #2097152	; 0x200000
+ 80092ec:	601a      	str	r2, [r3, #0]
+ 80092ee:	e7e6      	b.n	80092be <HAL_RCC_OscConfig+0x1b6>
+ 80092f0:	6819      	ldr	r1, [r3, #0]
+ 80092f2:	f421 3180 	bic.w	r1, r1, #65536	; 0x10000
+ 80092f6:	6019      	str	r1, [r3, #0]
+ 80092f8:	6819      	ldr	r1, [r3, #0]
+ 80092fa:	f421 1100 	bic.w	r1, r1, #2097152	; 0x200000
+ 80092fe:	6019      	str	r1, [r3, #0]
+ 8009300:	2a00      	cmp	r2, #0
+ 8009302:	d1e0      	bne.n	80092c6 <HAL_RCC_OscConfig+0x1be>
+ 8009304:	f7f9 fc44 	bl	8002b90 <HAL_GetTick>
+ 8009308:	4607      	mov	r7, r0
+ 800930a:	f7ff fdf9 	bl	8008f00 <LL_RCC_HSE_IsReady>
+ 800930e:	2800      	cmp	r0, #0
+ 8009310:	f43f af76 	beq.w	8009200 <HAL_RCC_OscConfig+0xf8>
+ 8009314:	f7f9 fc3c 	bl	8002b90 <HAL_GetTick>
+ 8009318:	1bc0      	subs	r0, r0, r7
+ 800931a:	2864      	cmp	r0, #100	; 0x64
+ 800931c:	d9f5      	bls.n	800930a <HAL_RCC_OscConfig+0x202>
+ 800931e:	e7a5      	b.n	800926c <HAL_RCC_OscConfig+0x164>
+ 8009320:	2d04      	cmp	r5, #4
+ 8009322:	6923      	ldr	r3, [r4, #16]
+ 8009324:	d003      	beq.n	800932e <HAL_RCC_OscConfig+0x226>
+ 8009326:	2d0c      	cmp	r5, #12
+ 8009328:	d10e      	bne.n	8009348 <HAL_RCC_OscConfig+0x240>
+ 800932a:	2e02      	cmp	r6, #2
+ 800932c:	d10c      	bne.n	8009348 <HAL_RCC_OscConfig+0x240>
+ 800932e:	2b00      	cmp	r3, #0
+ 8009330:	f43f af43 	beq.w	80091ba <HAL_RCC_OscConfig+0xb2>
+ 8009334:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 8009338:	6961      	ldr	r1, [r4, #20]
+ 800933a:	6853      	ldr	r3, [r2, #4]
+ 800933c:	f023 43fe 	bic.w	r3, r3, #2130706432	; 0x7f000000
+ 8009340:	ea43 6301 	orr.w	r3, r3, r1, lsl #24
+ 8009344:	6053      	str	r3, [r2, #4]
+ 8009346:	e75f      	b.n	8009208 <HAL_RCC_OscConfig+0x100>
+ 8009348:	f04f 46b0 	mov.w	r6, #1476395008	; 0x58000000
+ 800934c:	b1bb      	cbz	r3, 800937e <HAL_RCC_OscConfig+0x276>
+ 800934e:	6833      	ldr	r3, [r6, #0]
+ 8009350:	f443 7380 	orr.w	r3, r3, #256	; 0x100
+ 8009354:	6033      	str	r3, [r6, #0]
+ 8009356:	f7f9 fc1b 	bl	8002b90 <HAL_GetTick>
+ 800935a:	4607      	mov	r7, r0
+ 800935c:	6833      	ldr	r3, [r6, #0]
+ 800935e:	055a      	lsls	r2, r3, #21
+ 8009360:	d507      	bpl.n	8009372 <HAL_RCC_OscConfig+0x26a>
+ 8009362:	6873      	ldr	r3, [r6, #4]
+ 8009364:	6962      	ldr	r2, [r4, #20]
+ 8009366:	f023 43fe 	bic.w	r3, r3, #2130706432	; 0x7f000000
+ 800936a:	ea43 6302 	orr.w	r3, r3, r2, lsl #24
+ 800936e:	6073      	str	r3, [r6, #4]
+ 8009370:	e74a      	b.n	8009208 <HAL_RCC_OscConfig+0x100>
+ 8009372:	f7f9 fc0d 	bl	8002b90 <HAL_GetTick>
+ 8009376:	1bc3      	subs	r3, r0, r7
+ 8009378:	2b02      	cmp	r3, #2
+ 800937a:	d9ef      	bls.n	800935c <HAL_RCC_OscConfig+0x254>
+ 800937c:	e776      	b.n	800926c <HAL_RCC_OscConfig+0x164>
+ 800937e:	6833      	ldr	r3, [r6, #0]
+ 8009380:	f423 7380 	bic.w	r3, r3, #256	; 0x100
+ 8009384:	6033      	str	r3, [r6, #0]
+ 8009386:	f7f9 fc03 	bl	8002b90 <HAL_GetTick>
+ 800938a:	4607      	mov	r7, r0
+ 800938c:	6833      	ldr	r3, [r6, #0]
+ 800938e:	055b      	lsls	r3, r3, #21
+ 8009390:	f57f af3a 	bpl.w	8009208 <HAL_RCC_OscConfig+0x100>
+ 8009394:	f7f9 fbfc 	bl	8002b90 <HAL_GetTick>
+ 8009398:	1bc3      	subs	r3, r0, r7
+ 800939a:	2b02      	cmp	r3, #2
+ 800939c:	d9f6      	bls.n	800938c <HAL_RCC_OscConfig+0x284>
+ 800939e:	e765      	b.n	800926c <HAL_RCC_OscConfig+0x164>
+ 80093a0:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 80093a4:	69e1      	ldr	r1, [r4, #28]
+ 80093a6:	f8d2 3094 	ldr.w	r3, [r2, #148]	; 0x94
+ 80093aa:	f023 0310 	bic.w	r3, r3, #16
+ 80093ae:	430b      	orrs	r3, r1
+ 80093b0:	f8c2 3094 	str.w	r3, [r2, #148]	; 0x94
+ 80093b4:	f04f 47b0 	mov.w	r7, #1476395008	; 0x58000000
+ 80093b8:	f8d7 3094 	ldr.w	r3, [r7, #148]	; 0x94
+ 80093bc:	f043 0301 	orr.w	r3, r3, #1
+ 80093c0:	f8c7 3094 	str.w	r3, [r7, #148]	; 0x94
+ 80093c4:	f7f9 fbe4 	bl	8002b90 <HAL_GetTick>
+ 80093c8:	4606      	mov	r6, r0
+ 80093ca:	f8d7 3094 	ldr.w	r3, [r7, #148]	; 0x94
+ 80093ce:	079a      	lsls	r2, r3, #30
+ 80093d0:	d418      	bmi.n	8009404 <HAL_RCC_OscConfig+0x2fc>
+ 80093d2:	f7f9 fbdd 	bl	8002b90 <HAL_GetTick>
+ 80093d6:	1b83      	subs	r3, r0, r6
+ 80093d8:	2b11      	cmp	r3, #17
+ 80093da:	d9f6      	bls.n	80093ca <HAL_RCC_OscConfig+0x2c2>
+ 80093dc:	e746      	b.n	800926c <HAL_RCC_OscConfig+0x164>
+ 80093de:	f8d6 3094 	ldr.w	r3, [r6, #148]	; 0x94
+ 80093e2:	f023 0301 	bic.w	r3, r3, #1
+ 80093e6:	f8c6 3094 	str.w	r3, [r6, #148]	; 0x94
+ 80093ea:	f7f9 fbd1 	bl	8002b90 <HAL_GetTick>
+ 80093ee:	4607      	mov	r7, r0
+ 80093f0:	f8d6 3094 	ldr.w	r3, [r6, #148]	; 0x94
+ 80093f4:	079b      	lsls	r3, r3, #30
+ 80093f6:	d505      	bpl.n	8009404 <HAL_RCC_OscConfig+0x2fc>
+ 80093f8:	f7f9 fbca 	bl	8002b90 <HAL_GetTick>
+ 80093fc:	1bc3      	subs	r3, r0, r7
+ 80093fe:	2b11      	cmp	r3, #17
+ 8009400:	d9f6      	bls.n	80093f0 <HAL_RCC_OscConfig+0x2e8>
+ 8009402:	e733      	b.n	800926c <HAL_RCC_OscConfig+0x164>
+ 8009404:	6823      	ldr	r3, [r4, #0]
+ 8009406:	0758      	lsls	r0, r3, #29
+ 8009408:	d554      	bpl.n	80094b4 <HAL_RCC_OscConfig+0x3ac>
+ 800940a:	4f0b      	ldr	r7, [pc, #44]	; (8009438 <HAL_RCC_OscConfig+0x330>)
+ 800940c:	683b      	ldr	r3, [r7, #0]
+ 800940e:	05d9      	lsls	r1, r3, #23
+ 8009410:	d414      	bmi.n	800943c <HAL_RCC_OscConfig+0x334>
+ 8009412:	f7ff fd01 	bl	8008e18 <HAL_PWR_EnableBkUpAccess>
+ 8009416:	f7f9 fbbb 	bl	8002b90 <HAL_GetTick>
+ 800941a:	4606      	mov	r6, r0
+ 800941c:	683b      	ldr	r3, [r7, #0]
+ 800941e:	05da      	lsls	r2, r3, #23
+ 8009420:	d40c      	bmi.n	800943c <HAL_RCC_OscConfig+0x334>
+ 8009422:	f7f9 fbb5 	bl	8002b90 <HAL_GetTick>
+ 8009426:	1b83      	subs	r3, r0, r6
+ 8009428:	2b02      	cmp	r3, #2
+ 800942a:	d9f7      	bls.n	800941c <HAL_RCC_OscConfig+0x314>
+ 800942c:	e71e      	b.n	800926c <HAL_RCC_OscConfig+0x164>
+ 800942e:	bf00      	nop
+ 8009430:	20000828 	.word	0x20000828
+ 8009434:	2000082c 	.word	0x2000082c
+ 8009438:	58000400 	.word	0x58000400
+ 800943c:	68e3      	ldr	r3, [r4, #12]
+ 800943e:	f04f 46b0 	mov.w	r6, #1476395008	; 0x58000000
+ 8009442:	2b00      	cmp	r3, #0
+ 8009444:	d058      	beq.n	80094f8 <HAL_RCC_OscConfig+0x3f0>
+ 8009446:	f023 0380 	bic.w	r3, r3, #128	; 0x80
+ 800944a:	2b05      	cmp	r3, #5
+ 800944c:	bf02      	ittt	eq
+ 800944e:	f8d6 3090 	ldreq.w	r3, [r6, #144]	; 0x90
+ 8009452:	f043 0304 	orreq.w	r3, r3, #4
+ 8009456:	f8c6 3090 	streq.w	r3, [r6, #144]	; 0x90
+ 800945a:	f04f 46b0 	mov.w	r6, #1476395008	; 0x58000000
+ 800945e:	f7f9 fb97 	bl	8002b90 <HAL_GetTick>
+ 8009462:	f8d6 3090 	ldr.w	r3, [r6, #144]	; 0x90
+ 8009466:	f043 0301 	orr.w	r3, r3, #1
+ 800946a:	4607      	mov	r7, r0
+ 800946c:	f8c6 3090 	str.w	r3, [r6, #144]	; 0x90
+ 8009470:	f241 3888 	movw	r8, #5000	; 0x1388
+ 8009474:	f8d6 3090 	ldr.w	r3, [r6, #144]	; 0x90
+ 8009478:	079b      	lsls	r3, r3, #30
+ 800947a:	d405      	bmi.n	8009488 <HAL_RCC_OscConfig+0x380>
+ 800947c:	f7f9 fb88 	bl	8002b90 <HAL_GetTick>
+ 8009480:	1bc3      	subs	r3, r0, r7
+ 8009482:	4543      	cmp	r3, r8
+ 8009484:	d9f6      	bls.n	8009474 <HAL_RCC_OscConfig+0x36c>
+ 8009486:	e6f1      	b.n	800926c <HAL_RCC_OscConfig+0x164>
+ 8009488:	68e3      	ldr	r3, [r4, #12]
+ 800948a:	f023 0304 	bic.w	r3, r3, #4
+ 800948e:	2b81      	cmp	r3, #129	; 0x81
+ 8009490:	d11b      	bne.n	80094ca <HAL_RCC_OscConfig+0x3c2>
+ 8009492:	f7f9 fb7d 	bl	8002b90 <HAL_GetTick>
+ 8009496:	f8d6 3090 	ldr.w	r3, [r6, #144]	; 0x90
+ 800949a:	f043 0380 	orr.w	r3, r3, #128	; 0x80
+ 800949e:	f8c6 3090 	str.w	r3, [r6, #144]	; 0x90
+ 80094a2:	4607      	mov	r7, r0
+ 80094a4:	f04f 46b0 	mov.w	r6, #1476395008	; 0x58000000
+ 80094a8:	f241 3888 	movw	r8, #5000	; 0x1388
+ 80094ac:	f8d6 3090 	ldr.w	r3, [r6, #144]	; 0x90
+ 80094b0:	0518      	lsls	r0, r3, #20
+ 80094b2:	d504      	bpl.n	80094be <HAL_RCC_OscConfig+0x3b6>
+ 80094b4:	6ae0      	ldr	r0, [r4, #44]	; 0x2c
+ 80094b6:	2800      	cmp	r0, #0
+ 80094b8:	d14a      	bne.n	8009550 <HAL_RCC_OscConfig+0x448>
+ 80094ba:	2000      	movs	r0, #0
+ 80094bc:	e668      	b.n	8009190 <HAL_RCC_OscConfig+0x88>
+ 80094be:	f7f9 fb67 	bl	8002b90 <HAL_GetTick>
+ 80094c2:	1bc0      	subs	r0, r0, r7
+ 80094c4:	4540      	cmp	r0, r8
+ 80094c6:	d9f1      	bls.n	80094ac <HAL_RCC_OscConfig+0x3a4>
+ 80094c8:	e6d0      	b.n	800926c <HAL_RCC_OscConfig+0x164>
+ 80094ca:	f7f9 fb61 	bl	8002b90 <HAL_GetTick>
+ 80094ce:	f8d6 3090 	ldr.w	r3, [r6, #144]	; 0x90
+ 80094d2:	f023 0380 	bic.w	r3, r3, #128	; 0x80
+ 80094d6:	f8c6 3090 	str.w	r3, [r6, #144]	; 0x90
+ 80094da:	4607      	mov	r7, r0
+ 80094dc:	f04f 46b0 	mov.w	r6, #1476395008	; 0x58000000
+ 80094e0:	f241 3888 	movw	r8, #5000	; 0x1388
+ 80094e4:	f8d6 3090 	ldr.w	r3, [r6, #144]	; 0x90
+ 80094e8:	0519      	lsls	r1, r3, #20
+ 80094ea:	d5e3      	bpl.n	80094b4 <HAL_RCC_OscConfig+0x3ac>
+ 80094ec:	f7f9 fb50 	bl	8002b90 <HAL_GetTick>
+ 80094f0:	1bc0      	subs	r0, r0, r7
+ 80094f2:	4540      	cmp	r0, r8
+ 80094f4:	d9f6      	bls.n	80094e4 <HAL_RCC_OscConfig+0x3dc>
+ 80094f6:	e6b9      	b.n	800926c <HAL_RCC_OscConfig+0x164>
+ 80094f8:	f7f9 fb4a 	bl	8002b90 <HAL_GetTick>
+ 80094fc:	f8d6 3090 	ldr.w	r3, [r6, #144]	; 0x90
+ 8009500:	f023 0380 	bic.w	r3, r3, #128	; 0x80
+ 8009504:	4607      	mov	r7, r0
+ 8009506:	f8c6 3090 	str.w	r3, [r6, #144]	; 0x90
+ 800950a:	f241 3888 	movw	r8, #5000	; 0x1388
+ 800950e:	f8d6 3090 	ldr.w	r3, [r6, #144]	; 0x90
+ 8009512:	051a      	lsls	r2, r3, #20
+ 8009514:	d416      	bmi.n	8009544 <HAL_RCC_OscConfig+0x43c>
+ 8009516:	f7f9 fb3b 	bl	8002b90 <HAL_GetTick>
+ 800951a:	f8d6 3090 	ldr.w	r3, [r6, #144]	; 0x90
+ 800951e:	f023 0301 	bic.w	r3, r3, #1
+ 8009522:	f8c6 3090 	str.w	r3, [r6, #144]	; 0x90
+ 8009526:	4607      	mov	r7, r0
+ 8009528:	f04f 48b0 	mov.w	r8, #1476395008	; 0x58000000
+ 800952c:	f241 3688 	movw	r6, #5000	; 0x1388
+ 8009530:	f8d8 3090 	ldr.w	r3, [r8, #144]	; 0x90
+ 8009534:	079b      	lsls	r3, r3, #30
+ 8009536:	d5bd      	bpl.n	80094b4 <HAL_RCC_OscConfig+0x3ac>
+ 8009538:	f7f9 fb2a 	bl	8002b90 <HAL_GetTick>
+ 800953c:	1bc3      	subs	r3, r0, r7
+ 800953e:	42b3      	cmp	r3, r6
+ 8009540:	d9f6      	bls.n	8009530 <HAL_RCC_OscConfig+0x428>
+ 8009542:	e693      	b.n	800926c <HAL_RCC_OscConfig+0x164>
+ 8009544:	f7f9 fb24 	bl	8002b90 <HAL_GetTick>
+ 8009548:	1bc0      	subs	r0, r0, r7
+ 800954a:	4540      	cmp	r0, r8
+ 800954c:	d9df      	bls.n	800950e <HAL_RCC_OscConfig+0x406>
+ 800954e:	e68d      	b.n	800926c <HAL_RCC_OscConfig+0x164>
+ 8009550:	2d0c      	cmp	r5, #12
+ 8009552:	d04e      	beq.n	80095f2 <HAL_RCC_OscConfig+0x4ea>
+ 8009554:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8009558:	2802      	cmp	r0, #2
+ 800955a:	681a      	ldr	r2, [r3, #0]
+ 800955c:	f022 7280 	bic.w	r2, r2, #16777216	; 0x1000000
+ 8009560:	601a      	str	r2, [r3, #0]
+ 8009562:	d133      	bne.n	80095cc <HAL_RCC_OscConfig+0x4c4>
+ 8009564:	f7f9 fb14 	bl	8002b90 <HAL_GetTick>
+ 8009568:	4605      	mov	r5, r0
+ 800956a:	f7ff fcde 	bl	8008f2a <LL_RCC_PLL_IsReady>
+ 800956e:	bb38      	cbnz	r0, 80095c0 <HAL_RCC_OscConfig+0x4b8>
+ 8009570:	e9d4 310c 	ldrd	r3, r1, [r4, #48]	; 0x30
+ 8009574:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 8009578:	430b      	orrs	r3, r1
+ 800957a:	68d0      	ldr	r0, [r2, #12]
+ 800957c:	492d      	ldr	r1, [pc, #180]	; (8009634 <HAL_RCC_OscConfig+0x52c>)
+ 800957e:	4001      	ands	r1, r0
+ 8009580:	430b      	orrs	r3, r1
+ 8009582:	6be1      	ldr	r1, [r4, #60]	; 0x3c
+ 8009584:	430b      	orrs	r3, r1
+ 8009586:	6c21      	ldr	r1, [r4, #64]	; 0x40
+ 8009588:	430b      	orrs	r3, r1
+ 800958a:	6c61      	ldr	r1, [r4, #68]	; 0x44
+ 800958c:	430b      	orrs	r3, r1
+ 800958e:	6ba1      	ldr	r1, [r4, #56]	; 0x38
+ 8009590:	ea43 2301 	orr.w	r3, r3, r1, lsl #8
+ 8009594:	60d3      	str	r3, [r2, #12]
+ 8009596:	6813      	ldr	r3, [r2, #0]
+ 8009598:	f043 7380 	orr.w	r3, r3, #16777216	; 0x1000000
+ 800959c:	6013      	str	r3, [r2, #0]
+ 800959e:	68d3      	ldr	r3, [r2, #12]
+ 80095a0:	f043 5380 	orr.w	r3, r3, #268435456	; 0x10000000
+ 80095a4:	60d3      	str	r3, [r2, #12]
+ 80095a6:	f7f9 faf3 	bl	8002b90 <HAL_GetTick>
+ 80095aa:	4604      	mov	r4, r0
+ 80095ac:	f7ff fcbd 	bl	8008f2a <LL_RCC_PLL_IsReady>
+ 80095b0:	2800      	cmp	r0, #0
+ 80095b2:	d182      	bne.n	80094ba <HAL_RCC_OscConfig+0x3b2>
+ 80095b4:	f7f9 faec 	bl	8002b90 <HAL_GetTick>
+ 80095b8:	1b00      	subs	r0, r0, r4
+ 80095ba:	280a      	cmp	r0, #10
+ 80095bc:	d9f6      	bls.n	80095ac <HAL_RCC_OscConfig+0x4a4>
+ 80095be:	e655      	b.n	800926c <HAL_RCC_OscConfig+0x164>
+ 80095c0:	f7f9 fae6 	bl	8002b90 <HAL_GetTick>
+ 80095c4:	1b40      	subs	r0, r0, r5
+ 80095c6:	280a      	cmp	r0, #10
+ 80095c8:	d9cf      	bls.n	800956a <HAL_RCC_OscConfig+0x462>
+ 80095ca:	e64f      	b.n	800926c <HAL_RCC_OscConfig+0x164>
+ 80095cc:	f7f9 fae0 	bl	8002b90 <HAL_GetTick>
+ 80095d0:	4604      	mov	r4, r0
+ 80095d2:	f7ff fcaa 	bl	8008f2a <LL_RCC_PLL_IsReady>
+ 80095d6:	b930      	cbnz	r0, 80095e6 <HAL_RCC_OscConfig+0x4de>
+ 80095d8:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 80095dc:	4b16      	ldr	r3, [pc, #88]	; (8009638 <HAL_RCC_OscConfig+0x530>)
+ 80095de:	68d1      	ldr	r1, [r2, #12]
+ 80095e0:	400b      	ands	r3, r1
+ 80095e2:	60d3      	str	r3, [r2, #12]
+ 80095e4:	e5d4      	b.n	8009190 <HAL_RCC_OscConfig+0x88>
+ 80095e6:	f7f9 fad3 	bl	8002b90 <HAL_GetTick>
+ 80095ea:	1b00      	subs	r0, r0, r4
+ 80095ec:	280a      	cmp	r0, #10
+ 80095ee:	d9f0      	bls.n	80095d2 <HAL_RCC_OscConfig+0x4ca>
+ 80095f0:	e63c      	b.n	800926c <HAL_RCC_OscConfig+0x164>
+ 80095f2:	2801      	cmp	r0, #1
+ 80095f4:	f43f adcc 	beq.w	8009190 <HAL_RCC_OscConfig+0x88>
+ 80095f8:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 80095fc:	6b22      	ldr	r2, [r4, #48]	; 0x30
+ 80095fe:	68db      	ldr	r3, [r3, #12]
+ 8009600:	f003 0103 	and.w	r1, r3, #3
+ 8009604:	4291      	cmp	r1, r2
+ 8009606:	f47f add8 	bne.w	80091ba <HAL_RCC_OscConfig+0xb2>
+ 800960a:	6b61      	ldr	r1, [r4, #52]	; 0x34
+ 800960c:	f003 0270 	and.w	r2, r3, #112	; 0x70
+ 8009610:	428a      	cmp	r2, r1
+ 8009612:	f47f add2 	bne.w	80091ba <HAL_RCC_OscConfig+0xb2>
+ 8009616:	6ba1      	ldr	r1, [r4, #56]	; 0x38
+ 8009618:	f403 42fe 	and.w	r2, r3, #32512	; 0x7f00
+ 800961c:	ebb2 2f01 	cmp.w	r2, r1, lsl #8
+ 8009620:	f47f adcb 	bne.w	80091ba <HAL_RCC_OscConfig+0xb2>
+ 8009624:	6c62      	ldr	r2, [r4, #68]	; 0x44
+ 8009626:	f003 4360 	and.w	r3, r3, #3758096384	; 0xe0000000
+ 800962a:	4293      	cmp	r3, r2
+ 800962c:	f43f af45 	beq.w	80094ba <HAL_RCC_OscConfig+0x3b2>
+ 8009630:	e5c3      	b.n	80091ba <HAL_RCC_OscConfig+0xb2>
+ 8009632:	bf00      	nop
+ 8009634:	11c1808c 	.word	0x11c1808c
+ 8009638:	eefefffc 	.word	0xeefefffc
+
+0800963c <HAL_RCC_ClockConfig>:
+ 800963c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8009640:	460d      	mov	r5, r1
+ 8009642:	4604      	mov	r4, r0
+ 8009644:	b910      	cbnz	r0, 800964c <HAL_RCC_ClockConfig+0x10>
+ 8009646:	2001      	movs	r0, #1
+ 8009648:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800964c:	4e68      	ldr	r6, [pc, #416]	; (80097f0 <HAL_RCC_ClockConfig+0x1b4>)
+ 800964e:	6833      	ldr	r3, [r6, #0]
+ 8009650:	f003 0307 	and.w	r3, r3, #7
+ 8009654:	428b      	cmp	r3, r1
+ 8009656:	d316      	bcc.n	8009686 <HAL_RCC_ClockConfig+0x4a>
+ 8009658:	6823      	ldr	r3, [r4, #0]
+ 800965a:	079a      	lsls	r2, r3, #30
+ 800965c:	d527      	bpl.n	80096ae <HAL_RCC_ClockConfig+0x72>
+ 800965e:	f04f 47b0 	mov.w	r7, #1476395008	; 0x58000000
+ 8009662:	68a2      	ldr	r2, [r4, #8]
+ 8009664:	68bb      	ldr	r3, [r7, #8]
+ 8009666:	f023 03f0 	bic.w	r3, r3, #240	; 0xf0
+ 800966a:	4313      	orrs	r3, r2
+ 800966c:	60bb      	str	r3, [r7, #8]
+ 800966e:	f7f9 fa8f 	bl	8002b90 <HAL_GetTick>
+ 8009672:	4606      	mov	r6, r0
+ 8009674:	68bb      	ldr	r3, [r7, #8]
+ 8009676:	03db      	lsls	r3, r3, #15
+ 8009678:	d419      	bmi.n	80096ae <HAL_RCC_ClockConfig+0x72>
+ 800967a:	f7f9 fa89 	bl	8002b90 <HAL_GetTick>
+ 800967e:	1b83      	subs	r3, r0, r6
+ 8009680:	2b02      	cmp	r3, #2
+ 8009682:	d9f7      	bls.n	8009674 <HAL_RCC_ClockConfig+0x38>
+ 8009684:	e011      	b.n	80096aa <HAL_RCC_ClockConfig+0x6e>
+ 8009686:	6833      	ldr	r3, [r6, #0]
+ 8009688:	f023 0307 	bic.w	r3, r3, #7
+ 800968c:	430b      	orrs	r3, r1
+ 800968e:	6033      	str	r3, [r6, #0]
+ 8009690:	f7f9 fa7e 	bl	8002b90 <HAL_GetTick>
+ 8009694:	4607      	mov	r7, r0
+ 8009696:	6833      	ldr	r3, [r6, #0]
+ 8009698:	f003 0307 	and.w	r3, r3, #7
+ 800969c:	42ab      	cmp	r3, r5
+ 800969e:	d0db      	beq.n	8009658 <HAL_RCC_ClockConfig+0x1c>
+ 80096a0:	f7f9 fa76 	bl	8002b90 <HAL_GetTick>
+ 80096a4:	1bc0      	subs	r0, r0, r7
+ 80096a6:	2802      	cmp	r0, #2
+ 80096a8:	d9f5      	bls.n	8009696 <HAL_RCC_ClockConfig+0x5a>
+ 80096aa:	2003      	movs	r0, #3
+ 80096ac:	e7cc      	b.n	8009648 <HAL_RCC_ClockConfig+0xc>
+ 80096ae:	6823      	ldr	r3, [r4, #0]
+ 80096b0:	0658      	lsls	r0, r3, #25
+ 80096b2:	d517      	bpl.n	80096e4 <HAL_RCC_ClockConfig+0xa8>
+ 80096b4:	f04f 47b0 	mov.w	r7, #1476395008	; 0x58000000
+ 80096b8:	6962      	ldr	r2, [r4, #20]
+ 80096ba:	f8d7 3108 	ldr.w	r3, [r7, #264]	; 0x108
+ 80096be:	f023 030f 	bic.w	r3, r3, #15
+ 80096c2:	ea43 1312 	orr.w	r3, r3, r2, lsr #4
+ 80096c6:	f8c7 3108 	str.w	r3, [r7, #264]	; 0x108
+ 80096ca:	f7f9 fa61 	bl	8002b90 <HAL_GetTick>
+ 80096ce:	4606      	mov	r6, r0
+ 80096d0:	f8d7 3108 	ldr.w	r3, [r7, #264]	; 0x108
+ 80096d4:	03d9      	lsls	r1, r3, #15
+ 80096d6:	d405      	bmi.n	80096e4 <HAL_RCC_ClockConfig+0xa8>
+ 80096d8:	f7f9 fa5a 	bl	8002b90 <HAL_GetTick>
+ 80096dc:	1b83      	subs	r3, r0, r6
+ 80096de:	2b02      	cmp	r3, #2
+ 80096e0:	d9f6      	bls.n	80096d0 <HAL_RCC_ClockConfig+0x94>
+ 80096e2:	e7e2      	b.n	80096aa <HAL_RCC_ClockConfig+0x6e>
+ 80096e4:	6823      	ldr	r3, [r4, #0]
+ 80096e6:	075a      	lsls	r2, r3, #29
+ 80096e8:	d513      	bpl.n	8009712 <HAL_RCC_ClockConfig+0xd6>
+ 80096ea:	f04f 47b0 	mov.w	r7, #1476395008	; 0x58000000
+ 80096ee:	68e2      	ldr	r2, [r4, #12]
+ 80096f0:	68bb      	ldr	r3, [r7, #8]
+ 80096f2:	f423 63e0 	bic.w	r3, r3, #1792	; 0x700
+ 80096f6:	4313      	orrs	r3, r2
+ 80096f8:	60bb      	str	r3, [r7, #8]
+ 80096fa:	f7f9 fa49 	bl	8002b90 <HAL_GetTick>
+ 80096fe:	4606      	mov	r6, r0
+ 8009700:	68bb      	ldr	r3, [r7, #8]
+ 8009702:	039b      	lsls	r3, r3, #14
+ 8009704:	d405      	bmi.n	8009712 <HAL_RCC_ClockConfig+0xd6>
+ 8009706:	f7f9 fa43 	bl	8002b90 <HAL_GetTick>
+ 800970a:	1b83      	subs	r3, r0, r6
+ 800970c:	2b02      	cmp	r3, #2
+ 800970e:	d9f7      	bls.n	8009700 <HAL_RCC_ClockConfig+0xc4>
+ 8009710:	e7cb      	b.n	80096aa <HAL_RCC_ClockConfig+0x6e>
+ 8009712:	6823      	ldr	r3, [r4, #0]
+ 8009714:	0718      	lsls	r0, r3, #28
+ 8009716:	d514      	bpl.n	8009742 <HAL_RCC_ClockConfig+0x106>
+ 8009718:	f04f 47b0 	mov.w	r7, #1476395008	; 0x58000000
+ 800971c:	6922      	ldr	r2, [r4, #16]
+ 800971e:	68bb      	ldr	r3, [r7, #8]
+ 8009720:	f423 5360 	bic.w	r3, r3, #14336	; 0x3800
+ 8009724:	ea43 03c2 	orr.w	r3, r3, r2, lsl #3
+ 8009728:	60bb      	str	r3, [r7, #8]
+ 800972a:	f7f9 fa31 	bl	8002b90 <HAL_GetTick>
+ 800972e:	4606      	mov	r6, r0
+ 8009730:	68bb      	ldr	r3, [r7, #8]
+ 8009732:	0359      	lsls	r1, r3, #13
+ 8009734:	d405      	bmi.n	8009742 <HAL_RCC_ClockConfig+0x106>
+ 8009736:	f7f9 fa2b 	bl	8002b90 <HAL_GetTick>
+ 800973a:	1b83      	subs	r3, r0, r6
+ 800973c:	2b02      	cmp	r3, #2
+ 800973e:	d9f7      	bls.n	8009730 <HAL_RCC_ClockConfig+0xf4>
+ 8009740:	e7b3      	b.n	80096aa <HAL_RCC_ClockConfig+0x6e>
+ 8009742:	6823      	ldr	r3, [r4, #0]
+ 8009744:	07da      	lsls	r2, r3, #31
+ 8009746:	d40f      	bmi.n	8009768 <HAL_RCC_ClockConfig+0x12c>
+ 8009748:	4c29      	ldr	r4, [pc, #164]	; (80097f0 <HAL_RCC_ClockConfig+0x1b4>)
+ 800974a:	6823      	ldr	r3, [r4, #0]
+ 800974c:	f003 0307 	and.w	r3, r3, #7
+ 8009750:	42ab      	cmp	r3, r5
+ 8009752:	d839      	bhi.n	80097c8 <HAL_RCC_ClockConfig+0x18c>
+ 8009754:	f7ff fcc8 	bl	80090e8 <HAL_RCC_GetHCLKFreq>
+ 8009758:	4b26      	ldr	r3, [pc, #152]	; (80097f4 <HAL_RCC_ClockConfig+0x1b8>)
+ 800975a:	6018      	str	r0, [r3, #0]
+ 800975c:	4b26      	ldr	r3, [pc, #152]	; (80097f8 <HAL_RCC_ClockConfig+0x1bc>)
+ 800975e:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
+ 8009762:	6818      	ldr	r0, [r3, #0]
+ 8009764:	f7f9 ba12 	b.w	8002b8c <HAL_InitTick>
+ 8009768:	6862      	ldr	r2, [r4, #4]
+ 800976a:	2a02      	cmp	r2, #2
+ 800976c:	d11d      	bne.n	80097aa <HAL_RCC_ClockConfig+0x16e>
+ 800976e:	f7ff fbc7 	bl	8008f00 <LL_RCC_HSE_IsReady>
+ 8009772:	2800      	cmp	r0, #0
+ 8009774:	f43f af67 	beq.w	8009646 <HAL_RCC_ClockConfig+0xa>
+ 8009778:	f04f 46b0 	mov.w	r6, #1476395008	; 0x58000000
+ 800977c:	f241 3888 	movw	r8, #5000	; 0x1388
+ 8009780:	68b3      	ldr	r3, [r6, #8]
+ 8009782:	f023 0303 	bic.w	r3, r3, #3
+ 8009786:	4313      	orrs	r3, r2
+ 8009788:	60b3      	str	r3, [r6, #8]
+ 800978a:	f7f9 fa01 	bl	8002b90 <HAL_GetTick>
+ 800978e:	4607      	mov	r7, r0
+ 8009790:	68b3      	ldr	r3, [r6, #8]
+ 8009792:	6862      	ldr	r2, [r4, #4]
+ 8009794:	f003 030c 	and.w	r3, r3, #12
+ 8009798:	ebb3 0f82 	cmp.w	r3, r2, lsl #2
+ 800979c:	d0d4      	beq.n	8009748 <HAL_RCC_ClockConfig+0x10c>
+ 800979e:	f7f9 f9f7 	bl	8002b90 <HAL_GetTick>
+ 80097a2:	1bc0      	subs	r0, r0, r7
+ 80097a4:	4540      	cmp	r0, r8
+ 80097a6:	d9f3      	bls.n	8009790 <HAL_RCC_ClockConfig+0x154>
+ 80097a8:	e77f      	b.n	80096aa <HAL_RCC_ClockConfig+0x6e>
+ 80097aa:	2a03      	cmp	r2, #3
+ 80097ac:	d102      	bne.n	80097b4 <HAL_RCC_ClockConfig+0x178>
+ 80097ae:	f7ff fbbc 	bl	8008f2a <LL_RCC_PLL_IsReady>
+ 80097b2:	e7de      	b.n	8009772 <HAL_RCC_ClockConfig+0x136>
+ 80097b4:	b912      	cbnz	r2, 80097bc <HAL_RCC_ClockConfig+0x180>
+ 80097b6:	f7ff fba9 	bl	8008f0c <LL_RCC_MSI_IsReady>
+ 80097ba:	e7da      	b.n	8009772 <HAL_RCC_ClockConfig+0x136>
+ 80097bc:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 80097c0:	681b      	ldr	r3, [r3, #0]
+ 80097c2:	055b      	lsls	r3, r3, #21
+ 80097c4:	d4d8      	bmi.n	8009778 <HAL_RCC_ClockConfig+0x13c>
+ 80097c6:	e73e      	b.n	8009646 <HAL_RCC_ClockConfig+0xa>
+ 80097c8:	6823      	ldr	r3, [r4, #0]
+ 80097ca:	f023 0307 	bic.w	r3, r3, #7
+ 80097ce:	432b      	orrs	r3, r5
+ 80097d0:	6023      	str	r3, [r4, #0]
+ 80097d2:	f7f9 f9dd 	bl	8002b90 <HAL_GetTick>
+ 80097d6:	4606      	mov	r6, r0
+ 80097d8:	6823      	ldr	r3, [r4, #0]
+ 80097da:	f003 0307 	and.w	r3, r3, #7
+ 80097de:	42ab      	cmp	r3, r5
+ 80097e0:	d0b8      	beq.n	8009754 <HAL_RCC_ClockConfig+0x118>
+ 80097e2:	f7f9 f9d5 	bl	8002b90 <HAL_GetTick>
+ 80097e6:	1b80      	subs	r0, r0, r6
+ 80097e8:	2802      	cmp	r0, #2
+ 80097ea:	d9f5      	bls.n	80097d8 <HAL_RCC_ClockConfig+0x19c>
+ 80097ec:	e75d      	b.n	80096aa <HAL_RCC_ClockConfig+0x6e>
+ 80097ee:	bf00      	nop
+ 80097f0:	58004000 	.word	0x58004000
+ 80097f4:	20000828 	.word	0x20000828
+ 80097f8:	2000082c 	.word	0x2000082c
+
+080097fc <HAL_RCC_GetPCLK1Freq>:
+ 80097fc:	b508      	push	{r3, lr}
+ 80097fe:	f7ff fc73 	bl	80090e8 <HAL_RCC_GetHCLKFreq>
+ 8009802:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8009806:	4a04      	ldr	r2, [pc, #16]	; (8009818 <HAL_RCC_GetPCLK1Freq+0x1c>)
+ 8009808:	689b      	ldr	r3, [r3, #8]
+ 800980a:	f3c3 2302 	ubfx	r3, r3, #8, #3
+ 800980e:	f852 3023 	ldr.w	r3, [r2, r3, lsl #2]
+ 8009812:	40d8      	lsrs	r0, r3
+ 8009814:	bd08      	pop	{r3, pc}
+ 8009816:	bf00      	nop
+ 8009818:	08015210 	.word	0x08015210
+
+0800981c <HAL_RCC_GetPCLK2Freq>:
+ 800981c:	b508      	push	{r3, lr}
+ 800981e:	f7ff fc63 	bl	80090e8 <HAL_RCC_GetHCLKFreq>
+ 8009822:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8009826:	4a04      	ldr	r2, [pc, #16]	; (8009838 <HAL_RCC_GetPCLK2Freq+0x1c>)
+ 8009828:	689b      	ldr	r3, [r3, #8]
+ 800982a:	f3c3 23c2 	ubfx	r3, r3, #11, #3
+ 800982e:	f852 3023 	ldr.w	r3, [r2, r3, lsl #2]
+ 8009832:	40d8      	lsrs	r0, r3
+ 8009834:	bd08      	pop	{r3, pc}
+ 8009836:	bf00      	nop
+ 8009838:	08015210 	.word	0x08015210
+
+0800983c <LL_RCC_LSE_IsReady>:
+ 800983c:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 8009840:	f8d3 0090 	ldr.w	r0, [r3, #144]	; 0x90
+ 8009844:	f3c0 0040 	ubfx	r0, r0, #1, #1
+ 8009848:	4770      	bx	lr
+
+0800984a <LL_RCC_SetI2CClockSource>:
+ 800984a:	f04f 41b0 	mov.w	r1, #1476395008	; 0x58000000
+ 800984e:	0902      	lsrs	r2, r0, #4
+ 8009850:	f8d1 3088 	ldr.w	r3, [r1, #136]	; 0x88
+ 8009854:	f402 227f 	and.w	r2, r2, #1044480	; 0xff000
+ 8009858:	0100      	lsls	r0, r0, #4
+ 800985a:	ea23 0302 	bic.w	r3, r3, r2
+ 800985e:	f400 207f 	and.w	r0, r0, #1044480	; 0xff000
+ 8009862:	4303      	orrs	r3, r0
+ 8009864:	f8c1 3088 	str.w	r3, [r1, #136]	; 0x88
+ 8009868:	4770      	bx	lr
+
+0800986a <LL_RCC_SetLPTIMClockSource>:
+ 800986a:	f04f 41b0 	mov.w	r1, #1476395008	; 0x58000000
+ 800986e:	0c02      	lsrs	r2, r0, #16
+ 8009870:	f8d1 3088 	ldr.w	r3, [r1, #136]	; 0x88
+ 8009874:	0412      	lsls	r2, r2, #16
+ 8009876:	ea23 0302 	bic.w	r3, r3, r2
+ 800987a:	ea43 4000 	orr.w	r0, r3, r0, lsl #16
+ 800987e:	f8c1 0088 	str.w	r0, [r1, #136]	; 0x88
+ 8009882:	4770      	bx	lr
+
+08009884 <HAL_RCCEx_PeriphCLKConfig>:
+ 8009884:	b570      	push	{r4, r5, r6, lr}
+ 8009886:	6806      	ldr	r6, [r0, #0]
+ 8009888:	f416 3680 	ands.w	r6, r6, #65536	; 0x10000
+ 800988c:	4604      	mov	r4, r0
+ 800988e:	d038      	beq.n	8009902 <HAL_RCCEx_PeriphCLKConfig+0x7e>
+ 8009890:	f7ff fac2 	bl	8008e18 <HAL_PWR_EnableBkUpAccess>
+ 8009894:	f7f9 f97c 	bl	8002b90 <HAL_GetTick>
+ 8009898:	4e61      	ldr	r6, [pc, #388]	; (8009a20 <HAL_RCCEx_PeriphCLKConfig+0x19c>)
+ 800989a:	4605      	mov	r5, r0
+ 800989c:	6833      	ldr	r3, [r6, #0]
+ 800989e:	05db      	lsls	r3, r3, #23
+ 80098a0:	d529      	bpl.n	80098f6 <HAL_RCCEx_PeriphCLKConfig+0x72>
+ 80098a2:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 80098a6:	6b61      	ldr	r1, [r4, #52]	; 0x34
+ 80098a8:	f8d3 2090 	ldr.w	r2, [r3, #144]	; 0x90
+ 80098ac:	f402 7240 	and.w	r2, r2, #768	; 0x300
+ 80098b0:	4291      	cmp	r1, r2
+ 80098b2:	d014      	beq.n	80098de <HAL_RCCEx_PeriphCLKConfig+0x5a>
+ 80098b4:	f8d3 1090 	ldr.w	r1, [r3, #144]	; 0x90
+ 80098b8:	f8d3 2090 	ldr.w	r2, [r3, #144]	; 0x90
+ 80098bc:	f442 3280 	orr.w	r2, r2, #65536	; 0x10000
+ 80098c0:	f8c3 2090 	str.w	r2, [r3, #144]	; 0x90
+ 80098c4:	f8d3 2090 	ldr.w	r2, [r3, #144]	; 0x90
+ 80098c8:	f421 7040 	bic.w	r0, r1, #768	; 0x300
+ 80098cc:	f422 3280 	bic.w	r2, r2, #65536	; 0x10000
+ 80098d0:	078d      	lsls	r5, r1, #30
+ 80098d2:	f8c3 2090 	str.w	r2, [r3, #144]	; 0x90
+ 80098d6:	f8c3 0090 	str.w	r0, [r3, #144]	; 0x90
+ 80098da:	f100 8090 	bmi.w	80099fe <HAL_RCCEx_PeriphCLKConfig+0x17a>
+ 80098de:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 80098e2:	6b61      	ldr	r1, [r4, #52]	; 0x34
+ 80098e4:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 80098e8:	f423 7340 	bic.w	r3, r3, #768	; 0x300
+ 80098ec:	430b      	orrs	r3, r1
+ 80098ee:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+ 80098f2:	2600      	movs	r6, #0
+ 80098f4:	e005      	b.n	8009902 <HAL_RCCEx_PeriphCLKConfig+0x7e>
+ 80098f6:	f7f9 f94b 	bl	8002b90 <HAL_GetTick>
+ 80098fa:	1b40      	subs	r0, r0, r5
+ 80098fc:	2802      	cmp	r0, #2
+ 80098fe:	d9cd      	bls.n	800989c <HAL_RCCEx_PeriphCLKConfig+0x18>
+ 8009900:	2603      	movs	r6, #3
+ 8009902:	6825      	ldr	r5, [r4, #0]
+ 8009904:	07e8      	lsls	r0, r5, #31
+ 8009906:	d50a      	bpl.n	800991e <HAL_RCCEx_PeriphCLKConfig+0x9a>
+ 8009908:	f04f 41b0 	mov.w	r1, #1476395008	; 0x58000000
+ 800990c:	6862      	ldr	r2, [r4, #4]
+ 800990e:	f8d1 3088 	ldr.w	r3, [r1, #136]	; 0x88
+ 8009912:	ea23 4312 	bic.w	r3, r3, r2, lsr #16
+ 8009916:	b292      	uxth	r2, r2
+ 8009918:	4313      	orrs	r3, r2
+ 800991a:	f8c1 3088 	str.w	r3, [r1, #136]	; 0x88
+ 800991e:	07a9      	lsls	r1, r5, #30
+ 8009920:	d50a      	bpl.n	8009938 <HAL_RCCEx_PeriphCLKConfig+0xb4>
+ 8009922:	f04f 41b0 	mov.w	r1, #1476395008	; 0x58000000
+ 8009926:	68a2      	ldr	r2, [r4, #8]
+ 8009928:	f8d1 3088 	ldr.w	r3, [r1, #136]	; 0x88
+ 800992c:	ea23 4312 	bic.w	r3, r3, r2, lsr #16
+ 8009930:	b292      	uxth	r2, r2
+ 8009932:	4313      	orrs	r3, r2
+ 8009934:	f8c1 3088 	str.w	r3, [r1, #136]	; 0x88
+ 8009938:	06aa      	lsls	r2, r5, #26
+ 800993a:	d509      	bpl.n	8009950 <HAL_RCCEx_PeriphCLKConfig+0xcc>
+ 800993c:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 8009940:	6921      	ldr	r1, [r4, #16]
+ 8009942:	f8d2 3088 	ldr.w	r3, [r2, #136]	; 0x88
+ 8009946:	f423 6340 	bic.w	r3, r3, #3072	; 0xc00
+ 800994a:	430b      	orrs	r3, r1
+ 800994c:	f8c2 3088 	str.w	r3, [r2, #136]	; 0x88
+ 8009950:	05ab      	lsls	r3, r5, #22
+ 8009952:	d502      	bpl.n	800995a <HAL_RCCEx_PeriphCLKConfig+0xd6>
+ 8009954:	6a20      	ldr	r0, [r4, #32]
+ 8009956:	f7ff ff88 	bl	800986a <LL_RCC_SetLPTIMClockSource>
+ 800995a:	0568      	lsls	r0, r5, #21
+ 800995c:	d502      	bpl.n	8009964 <HAL_RCCEx_PeriphCLKConfig+0xe0>
+ 800995e:	6a60      	ldr	r0, [r4, #36]	; 0x24
+ 8009960:	f7ff ff83 	bl	800986a <LL_RCC_SetLPTIMClockSource>
+ 8009964:	0529      	lsls	r1, r5, #20
+ 8009966:	d502      	bpl.n	800996e <HAL_RCCEx_PeriphCLKConfig+0xea>
+ 8009968:	6aa0      	ldr	r0, [r4, #40]	; 0x28
+ 800996a:	f7ff ff7e 	bl	800986a <LL_RCC_SetLPTIMClockSource>
+ 800996e:	066a      	lsls	r2, r5, #25
+ 8009970:	d502      	bpl.n	8009978 <HAL_RCCEx_PeriphCLKConfig+0xf4>
+ 8009972:	6960      	ldr	r0, [r4, #20]
+ 8009974:	f7ff ff69 	bl	800984a <LL_RCC_SetI2CClockSource>
+ 8009978:	062b      	lsls	r3, r5, #24
+ 800997a:	d502      	bpl.n	8009982 <HAL_RCCEx_PeriphCLKConfig+0xfe>
+ 800997c:	69a0      	ldr	r0, [r4, #24]
+ 800997e:	f7ff ff64 	bl	800984a <LL_RCC_SetI2CClockSource>
+ 8009982:	05e8      	lsls	r0, r5, #23
+ 8009984:	d502      	bpl.n	800998c <HAL_RCCEx_PeriphCLKConfig+0x108>
+ 8009986:	69e0      	ldr	r0, [r4, #28]
+ 8009988:	f7ff ff5f 	bl	800984a <LL_RCC_SetI2CClockSource>
+ 800998c:	06e9      	lsls	r1, r5, #27
+ 800998e:	d510      	bpl.n	80099b2 <HAL_RCCEx_PeriphCLKConfig+0x12e>
+ 8009990:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 8009994:	68e1      	ldr	r1, [r4, #12]
+ 8009996:	f8d2 3088 	ldr.w	r3, [r2, #136]	; 0x88
+ 800999a:	f423 7340 	bic.w	r3, r3, #768	; 0x300
+ 800999e:	430b      	orrs	r3, r1
+ 80099a0:	f8c2 3088 	str.w	r3, [r2, #136]	; 0x88
+ 80099a4:	f5b1 7f80 	cmp.w	r1, #256	; 0x100
+ 80099a8:	bf02      	ittt	eq
+ 80099aa:	68d3      	ldreq	r3, [r2, #12]
+ 80099ac:	f043 7380 	orreq.w	r3, r3, #16777216	; 0x1000000
+ 80099b0:	60d3      	streq	r3, [r2, #12]
+ 80099b2:	042a      	lsls	r2, r5, #16
+ 80099b4:	d50e      	bpl.n	80099d4 <HAL_RCCEx_PeriphCLKConfig+0x150>
+ 80099b6:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 80099ba:	6b21      	ldr	r1, [r4, #48]	; 0x30
+ 80099bc:	f8d2 3088 	ldr.w	r3, [r2, #136]	; 0x88
+ 80099c0:	f023 4340 	bic.w	r3, r3, #3221225472	; 0xc0000000
+ 80099c4:	430b      	orrs	r3, r1
+ 80099c6:	f8c2 3088 	str.w	r3, [r2, #136]	; 0x88
+ 80099ca:	b919      	cbnz	r1, 80099d4 <HAL_RCCEx_PeriphCLKConfig+0x150>
+ 80099cc:	68d3      	ldr	r3, [r2, #12]
+ 80099ce:	f043 7380 	orr.w	r3, r3, #16777216	; 0x1000000
+ 80099d2:	60d3      	str	r3, [r2, #12]
+ 80099d4:	046b      	lsls	r3, r5, #17
+ 80099d6:	d510      	bpl.n	80099fa <HAL_RCCEx_PeriphCLKConfig+0x176>
+ 80099d8:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 80099dc:	6ae1      	ldr	r1, [r4, #44]	; 0x2c
+ 80099de:	f8d2 3088 	ldr.w	r3, [r2, #136]	; 0x88
+ 80099e2:	f023 5340 	bic.w	r3, r3, #805306368	; 0x30000000
+ 80099e6:	430b      	orrs	r3, r1
+ 80099e8:	f1b1 5f00 	cmp.w	r1, #536870912	; 0x20000000
+ 80099ec:	f8c2 3088 	str.w	r3, [r2, #136]	; 0x88
+ 80099f0:	d103      	bne.n	80099fa <HAL_RCCEx_PeriphCLKConfig+0x176>
+ 80099f2:	68d3      	ldr	r3, [r2, #12]
+ 80099f4:	f443 3380 	orr.w	r3, r3, #65536	; 0x10000
+ 80099f8:	60d3      	str	r3, [r2, #12]
+ 80099fa:	4630      	mov	r0, r6
+ 80099fc:	bd70      	pop	{r4, r5, r6, pc}
+ 80099fe:	f7f9 f8c7 	bl	8002b90 <HAL_GetTick>
+ 8009a02:	f241 3688 	movw	r6, #5000	; 0x1388
+ 8009a06:	4605      	mov	r5, r0
+ 8009a08:	f7ff ff18 	bl	800983c <LL_RCC_LSE_IsReady>
+ 8009a0c:	2801      	cmp	r0, #1
+ 8009a0e:	f43f af66 	beq.w	80098de <HAL_RCCEx_PeriphCLKConfig+0x5a>
+ 8009a12:	f7f9 f8bd 	bl	8002b90 <HAL_GetTick>
+ 8009a16:	1b40      	subs	r0, r0, r5
+ 8009a18:	42b0      	cmp	r0, r6
+ 8009a1a:	d9f5      	bls.n	8009a08 <HAL_RCCEx_PeriphCLKConfig+0x184>
+ 8009a1c:	e770      	b.n	8009900 <HAL_RCCEx_PeriphCLKConfig+0x7c>
+ 8009a1e:	bf00      	nop
+ 8009a20:	58000400 	.word	0x58000400
+
+08009a24 <HAL_RTC_DeactivateAlarm>:
+ 8009a24:	b530      	push	{r4, r5, lr}
+ 8009a26:	f890 302c 	ldrb.w	r3, [r0, #44]	; 0x2c
+ 8009a2a:	2b01      	cmp	r3, #1
+ 8009a2c:	4602      	mov	r2, r0
+ 8009a2e:	f04f 0002 	mov.w	r0, #2
+ 8009a32:	d022      	beq.n	8009a7a <HAL_RTC_DeactivateAlarm+0x56>
+ 8009a34:	4b17      	ldr	r3, [pc, #92]	; (8009a94 <HAL_RTC_DeactivateAlarm+0x70>)
+ 8009a36:	f882 002d 	strb.w	r0, [r2, #45]	; 0x2d
+ 8009a3a:	24ca      	movs	r4, #202	; 0xca
+ 8009a3c:	2501      	movs	r5, #1
+ 8009a3e:	f882 502c 	strb.w	r5, [r2, #44]	; 0x2c
+ 8009a42:	625c      	str	r4, [r3, #36]	; 0x24
+ 8009a44:	2453      	movs	r4, #83	; 0x53
+ 8009a46:	625c      	str	r4, [r3, #36]	; 0x24
+ 8009a48:	f5b1 7f80 	cmp.w	r1, #256	; 0x100
+ 8009a4c:	6b14      	ldr	r4, [r2, #48]	; 0x30
+ 8009a4e:	6999      	ldr	r1, [r3, #24]
+ 8009a50:	d114      	bne.n	8009a7c <HAL_RTC_DeactivateAlarm+0x58>
+ 8009a52:	f421 5188 	bic.w	r1, r1, #4352	; 0x1100
+ 8009a56:	6199      	str	r1, [r3, #24]
+ 8009a58:	6c59      	ldr	r1, [r3, #68]	; 0x44
+ 8009a5a:	f024 0401 	bic.w	r4, r4, #1
+ 8009a5e:	f021 4100 	bic.w	r1, r1, #2147483648	; 0x80000000
+ 8009a62:	6459      	str	r1, [r3, #68]	; 0x44
+ 8009a64:	6314      	str	r4, [r2, #48]	; 0x30
+ 8009a66:	65dd      	str	r5, [r3, #92]	; 0x5c
+ 8009a68:	4b0a      	ldr	r3, [pc, #40]	; (8009a94 <HAL_RTC_DeactivateAlarm+0x70>)
+ 8009a6a:	21ff      	movs	r1, #255	; 0xff
+ 8009a6c:	6259      	str	r1, [r3, #36]	; 0x24
+ 8009a6e:	2000      	movs	r0, #0
+ 8009a70:	2301      	movs	r3, #1
+ 8009a72:	f882 302d 	strb.w	r3, [r2, #45]	; 0x2d
+ 8009a76:	f882 002c 	strb.w	r0, [r2, #44]	; 0x2c
+ 8009a7a:	bd30      	pop	{r4, r5, pc}
+ 8009a7c:	f421 5108 	bic.w	r1, r1, #8704	; 0x2200
+ 8009a80:	6199      	str	r1, [r3, #24]
+ 8009a82:	6cd9      	ldr	r1, [r3, #76]	; 0x4c
+ 8009a84:	f024 0402 	bic.w	r4, r4, #2
+ 8009a88:	f021 4100 	bic.w	r1, r1, #2147483648	; 0x80000000
+ 8009a8c:	64d9      	str	r1, [r3, #76]	; 0x4c
+ 8009a8e:	6314      	str	r4, [r2, #48]	; 0x30
+ 8009a90:	65d8      	str	r0, [r3, #92]	; 0x5c
+ 8009a92:	e7e9      	b.n	8009a68 <HAL_RTC_DeactivateAlarm+0x44>
+ 8009a94:	40002800 	.word	0x40002800
+
+08009a98 <HAL_RTC_AlarmIRQHandler>:
+ 8009a98:	b570      	push	{r4, r5, r6, lr}
+ 8009a9a:	4e0b      	ldr	r6, [pc, #44]	; (8009ac8 <HAL_RTC_AlarmIRQHandler+0x30>)
+ 8009a9c:	6b03      	ldr	r3, [r0, #48]	; 0x30
+ 8009a9e:	6d75      	ldr	r5, [r6, #84]	; 0x54
+ 8009aa0:	401d      	ands	r5, r3
+ 8009aa2:	07ea      	lsls	r2, r5, #31
+ 8009aa4:	4604      	mov	r4, r0
+ 8009aa6:	d503      	bpl.n	8009ab0 <HAL_RTC_AlarmIRQHandler+0x18>
+ 8009aa8:	2301      	movs	r3, #1
+ 8009aaa:	65f3      	str	r3, [r6, #92]	; 0x5c
+ 8009aac:	f7f9 f9eb 	bl	8002e86 <HAL_RTC_AlarmAEventCallback>
+ 8009ab0:	07ab      	lsls	r3, r5, #30
+ 8009ab2:	d504      	bpl.n	8009abe <HAL_RTC_AlarmIRQHandler+0x26>
+ 8009ab4:	2302      	movs	r3, #2
+ 8009ab6:	65f3      	str	r3, [r6, #92]	; 0x5c
+ 8009ab8:	4620      	mov	r0, r4
+ 8009aba:	f000 f9cb 	bl	8009e54 <HAL_RTCEx_AlarmBEventCallback>
+ 8009abe:	2301      	movs	r3, #1
+ 8009ac0:	f884 302d 	strb.w	r3, [r4, #45]	; 0x2d
+ 8009ac4:	bd70      	pop	{r4, r5, r6, pc}
+ 8009ac6:	bf00      	nop
+ 8009ac8:	40002800 	.word	0x40002800
+
+08009acc <HAL_RTC_WaitForSynchro>:
+ 8009acc:	b538      	push	{r3, r4, r5, lr}
+ 8009ace:	4c0a      	ldr	r4, [pc, #40]	; (8009af8 <HAL_RTC_WaitForSynchro+0x2c>)
+ 8009ad0:	68e3      	ldr	r3, [r4, #12]
+ 8009ad2:	f023 0320 	bic.w	r3, r3, #32
+ 8009ad6:	60e3      	str	r3, [r4, #12]
+ 8009ad8:	f7f9 f85a 	bl	8002b90 <HAL_GetTick>
+ 8009adc:	4605      	mov	r5, r0
+ 8009ade:	68e3      	ldr	r3, [r4, #12]
+ 8009ae0:	069b      	lsls	r3, r3, #26
+ 8009ae2:	d501      	bpl.n	8009ae8 <HAL_RTC_WaitForSynchro+0x1c>
+ 8009ae4:	2000      	movs	r0, #0
+ 8009ae6:	bd38      	pop	{r3, r4, r5, pc}
+ 8009ae8:	f7f9 f852 	bl	8002b90 <HAL_GetTick>
+ 8009aec:	1b40      	subs	r0, r0, r5
+ 8009aee:	f5b0 7f7a 	cmp.w	r0, #1000	; 0x3e8
+ 8009af2:	d9f4      	bls.n	8009ade <HAL_RTC_WaitForSynchro+0x12>
+ 8009af4:	2003      	movs	r0, #3
+ 8009af6:	e7f6      	b.n	8009ae6 <HAL_RTC_WaitForSynchro+0x1a>
+ 8009af8:	40002800 	.word	0x40002800
+
+08009afc <RTC_EnterInitMode>:
+ 8009afc:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8009b00:	4d11      	ldr	r5, [pc, #68]	; (8009b48 <RTC_EnterInitMode+0x4c>)
+ 8009b02:	68ec      	ldr	r4, [r5, #12]
+ 8009b04:	f014 0440 	ands.w	r4, r4, #64	; 0x40
+ 8009b08:	4607      	mov	r7, r0
+ 8009b0a:	d11a      	bne.n	8009b42 <RTC_EnterInitMode+0x46>
+ 8009b0c:	68eb      	ldr	r3, [r5, #12]
+ 8009b0e:	f043 0380 	orr.w	r3, r3, #128	; 0x80
+ 8009b12:	60eb      	str	r3, [r5, #12]
+ 8009b14:	f7f9 f83c 	bl	8002b90 <HAL_GetTick>
+ 8009b18:	f04f 0803 	mov.w	r8, #3
+ 8009b1c:	4606      	mov	r6, r0
+ 8009b1e:	68eb      	ldr	r3, [r5, #12]
+ 8009b20:	065b      	lsls	r3, r3, #25
+ 8009b22:	d401      	bmi.n	8009b28 <RTC_EnterInitMode+0x2c>
+ 8009b24:	2c03      	cmp	r4, #3
+ 8009b26:	d102      	bne.n	8009b2e <RTC_EnterInitMode+0x32>
+ 8009b28:	4620      	mov	r0, r4
+ 8009b2a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 8009b2e:	f7f9 f82f 	bl	8002b90 <HAL_GetTick>
+ 8009b32:	1b80      	subs	r0, r0, r6
+ 8009b34:	f5b0 7f7a 	cmp.w	r0, #1000	; 0x3e8
+ 8009b38:	bf84      	itt	hi
+ 8009b3a:	f887 802d 	strbhi.w	r8, [r7, #45]	; 0x2d
+ 8009b3e:	2403      	movhi	r4, #3
+ 8009b40:	e7ed      	b.n	8009b1e <RTC_EnterInitMode+0x22>
+ 8009b42:	2400      	movs	r4, #0
+ 8009b44:	e7f0      	b.n	8009b28 <RTC_EnterInitMode+0x2c>
+ 8009b46:	bf00      	nop
+ 8009b48:	40002800 	.word	0x40002800
+
+08009b4c <RTC_ExitInitMode>:
+ 8009b4c:	b538      	push	{r3, r4, r5, lr}
+ 8009b4e:	4c0f      	ldr	r4, [pc, #60]	; (8009b8c <RTC_ExitInitMode+0x40>)
+ 8009b50:	68e3      	ldr	r3, [r4, #12]
+ 8009b52:	f023 0380 	bic.w	r3, r3, #128	; 0x80
+ 8009b56:	60e3      	str	r3, [r4, #12]
+ 8009b58:	69a3      	ldr	r3, [r4, #24]
+ 8009b5a:	069b      	lsls	r3, r3, #26
+ 8009b5c:	4605      	mov	r5, r0
+ 8009b5e:	d406      	bmi.n	8009b6e <RTC_ExitInitMode+0x22>
+ 8009b60:	f7ff ffb4 	bl	8009acc <HAL_RTC_WaitForSynchro>
+ 8009b64:	b110      	cbz	r0, 8009b6c <RTC_ExitInitMode+0x20>
+ 8009b66:	2003      	movs	r0, #3
+ 8009b68:	f885 002d 	strb.w	r0, [r5, #45]	; 0x2d
+ 8009b6c:	bd38      	pop	{r3, r4, r5, pc}
+ 8009b6e:	69a3      	ldr	r3, [r4, #24]
+ 8009b70:	f023 0320 	bic.w	r3, r3, #32
+ 8009b74:	61a3      	str	r3, [r4, #24]
+ 8009b76:	f7ff ffa9 	bl	8009acc <HAL_RTC_WaitForSynchro>
+ 8009b7a:	b110      	cbz	r0, 8009b82 <RTC_ExitInitMode+0x36>
+ 8009b7c:	2003      	movs	r0, #3
+ 8009b7e:	f885 002d 	strb.w	r0, [r5, #45]	; 0x2d
+ 8009b82:	69a3      	ldr	r3, [r4, #24]
+ 8009b84:	f043 0320 	orr.w	r3, r3, #32
+ 8009b88:	61a3      	str	r3, [r4, #24]
+ 8009b8a:	e7ef      	b.n	8009b6c <RTC_ExitInitMode+0x20>
+ 8009b8c:	40002800 	.word	0x40002800
+
+08009b90 <HAL_RTC_Init>:
+ 8009b90:	b538      	push	{r3, r4, r5, lr}
+ 8009b92:	4604      	mov	r4, r0
+ 8009b94:	2800      	cmp	r0, #0
+ 8009b96:	d04b      	beq.n	8009c30 <HAL_RTC_Init+0xa0>
+ 8009b98:	f890 302d 	ldrb.w	r3, [r0, #45]	; 0x2d
+ 8009b9c:	f003 02ff 	and.w	r2, r3, #255	; 0xff
+ 8009ba0:	b91b      	cbnz	r3, 8009baa <HAL_RTC_Init+0x1a>
+ 8009ba2:	f880 202c 	strb.w	r2, [r0, #44]	; 0x2c
+ 8009ba6:	f7f8 fddb 	bl	8002760 <HAL_RTC_MspInit>
+ 8009baa:	2302      	movs	r3, #2
+ 8009bac:	4d21      	ldr	r5, [pc, #132]	; (8009c34 <HAL_RTC_Init+0xa4>)
+ 8009bae:	f884 302d 	strb.w	r3, [r4, #45]	; 0x2d
+ 8009bb2:	68eb      	ldr	r3, [r5, #12]
+ 8009bb4:	06db      	lsls	r3, r3, #27
+ 8009bb6:	d432      	bmi.n	8009c1e <HAL_RTC_Init+0x8e>
+ 8009bb8:	23ca      	movs	r3, #202	; 0xca
+ 8009bba:	626b      	str	r3, [r5, #36]	; 0x24
+ 8009bbc:	2353      	movs	r3, #83	; 0x53
+ 8009bbe:	626b      	str	r3, [r5, #36]	; 0x24
+ 8009bc0:	4620      	mov	r0, r4
+ 8009bc2:	f7ff ff9b 	bl	8009afc <RTC_EnterInitMode>
+ 8009bc6:	bb78      	cbnz	r0, 8009c28 <HAL_RTC_Init+0x98>
+ 8009bc8:	69ab      	ldr	r3, [r5, #24]
+ 8009bca:	f023 638e 	bic.w	r3, r3, #74448896	; 0x4700000
+ 8009bce:	f023 0340 	bic.w	r3, r3, #64	; 0x40
+ 8009bd2:	61ab      	str	r3, [r5, #24]
+ 8009bd4:	6921      	ldr	r1, [r4, #16]
+ 8009bd6:	6863      	ldr	r3, [r4, #4]
+ 8009bd8:	69aa      	ldr	r2, [r5, #24]
+ 8009bda:	430b      	orrs	r3, r1
+ 8009bdc:	4313      	orrs	r3, r2
+ 8009bde:	69a2      	ldr	r2, [r4, #24]
+ 8009be0:	4313      	orrs	r3, r2
+ 8009be2:	61ab      	str	r3, [r5, #24]
+ 8009be4:	e9d4 2302 	ldrd	r2, r3, [r4, #8]
+ 8009be8:	ea43 4302 	orr.w	r3, r3, r2, lsl #16
+ 8009bec:	612b      	str	r3, [r5, #16]
+ 8009bee:	e9d4 3109 	ldrd	r3, r1, [r4, #36]	; 0x24
+ 8009bf2:	68ea      	ldr	r2, [r5, #12]
+ 8009bf4:	430b      	orrs	r3, r1
+ 8009bf6:	f422 52f8 	bic.w	r2, r2, #7936	; 0x1f00
+ 8009bfa:	4313      	orrs	r3, r2
+ 8009bfc:	60eb      	str	r3, [r5, #12]
+ 8009bfe:	4620      	mov	r0, r4
+ 8009c00:	f7ff ffa4 	bl	8009b4c <RTC_ExitInitMode>
+ 8009c04:	b980      	cbnz	r0, 8009c28 <HAL_RTC_Init+0x98>
+ 8009c06:	e9d4 1307 	ldrd	r1, r3, [r4, #28]
+ 8009c0a:	69aa      	ldr	r2, [r5, #24]
+ 8009c0c:	430b      	orrs	r3, r1
+ 8009c0e:	f022 4260 	bic.w	r2, r2, #3758096384	; 0xe0000000
+ 8009c12:	4313      	orrs	r3, r2
+ 8009c14:	6962      	ldr	r2, [r4, #20]
+ 8009c16:	4313      	orrs	r3, r2
+ 8009c18:	61ab      	str	r3, [r5, #24]
+ 8009c1a:	23ff      	movs	r3, #255	; 0xff
+ 8009c1c:	626b      	str	r3, [r5, #36]	; 0x24
+ 8009c1e:	2301      	movs	r3, #1
+ 8009c20:	f884 302d 	strb.w	r3, [r4, #45]	; 0x2d
+ 8009c24:	2000      	movs	r0, #0
+ 8009c26:	e002      	b.n	8009c2e <HAL_RTC_Init+0x9e>
+ 8009c28:	4b02      	ldr	r3, [pc, #8]	; (8009c34 <HAL_RTC_Init+0xa4>)
+ 8009c2a:	22ff      	movs	r2, #255	; 0xff
+ 8009c2c:	625a      	str	r2, [r3, #36]	; 0x24
+ 8009c2e:	bd38      	pop	{r3, r4, r5, pc}
+ 8009c30:	2001      	movs	r0, #1
+ 8009c32:	e7fc      	b.n	8009c2e <HAL_RTC_Init+0x9e>
+ 8009c34:	40002800 	.word	0x40002800
+
+08009c38 <RTC_ByteToBcd2>:
+ 8009c38:	2300      	movs	r3, #0
+ 8009c3a:	2809      	cmp	r0, #9
+ 8009c3c:	d803      	bhi.n	8009c46 <RTC_ByteToBcd2+0xe>
+ 8009c3e:	ea40 1003 	orr.w	r0, r0, r3, lsl #4
+ 8009c42:	b2c0      	uxtb	r0, r0
+ 8009c44:	4770      	bx	lr
+ 8009c46:	380a      	subs	r0, #10
+ 8009c48:	3301      	adds	r3, #1
+ 8009c4a:	b2c0      	uxtb	r0, r0
+ 8009c4c:	e7f5      	b.n	8009c3a <RTC_ByteToBcd2+0x2>
+	...
+
+08009c50 <HAL_RTC_SetAlarm_IT>:
+ 8009c50:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
+ 8009c54:	f890 302c 	ldrb.w	r3, [r0, #44]	; 0x2c
+ 8009c58:	2b01      	cmp	r3, #1
+ 8009c5a:	4605      	mov	r5, r0
+ 8009c5c:	f04f 0002 	mov.w	r0, #2
+ 8009c60:	d069      	beq.n	8009d36 <HAL_RTC_SetAlarm_IT+0xe6>
+ 8009c62:	2301      	movs	r3, #1
+ 8009c64:	f885 302c 	strb.w	r3, [r5, #44]	; 0x2c
+ 8009c68:	4b4e      	ldr	r3, [pc, #312]	; (8009da4 <HAL_RTC_SetAlarm_IT+0x154>)
+ 8009c6a:	f885 002d 	strb.w	r0, [r5, #45]	; 0x2d
+ 8009c6e:	68de      	ldr	r6, [r3, #12]
+ 8009c70:	f406 7640 	and.w	r6, r6, #768	; 0x300
+ 8009c74:	f5b6 7f80 	cmp.w	r6, #256	; 0x100
+ 8009c78:	d078      	beq.n	8009d6c <HAL_RTC_SetAlarm_IT+0x11c>
+ 8009c7a:	694c      	ldr	r4, [r1, #20]
+ 8009c7c:	7808      	ldrb	r0, [r1, #0]
+ 8009c7e:	f891 9001 	ldrb.w	r9, [r1, #1]
+ 8009c82:	f891 a002 	ldrb.w	sl, [r1, #2]
+ 8009c86:	f891 7024 	ldrb.w	r7, [r1, #36]	; 0x24
+ 8009c8a:	2a00      	cmp	r2, #0
+ 8009c8c:	d155      	bne.n	8009d3a <HAL_RTC_SetAlarm_IT+0xea>
+ 8009c8e:	699b      	ldr	r3, [r3, #24]
+ 8009c90:	f013 0340 	ands.w	r3, r3, #64	; 0x40
+ 8009c94:	bf08      	it	eq
+ 8009c96:	70cb      	strbeq	r3, [r1, #3]
+ 8009c98:	f7ff ffce 	bl	8009c38 <RTC_ByteToBcd2>
+ 8009c9c:	4680      	mov	r8, r0
+ 8009c9e:	4648      	mov	r0, r9
+ 8009ca0:	f7ff ffca 	bl	8009c38 <RTC_ByteToBcd2>
+ 8009ca4:	4602      	mov	r2, r0
+ 8009ca6:	4650      	mov	r0, sl
+ 8009ca8:	f7ff ffc6 	bl	8009c38 <RTC_ByteToBcd2>
+ 8009cac:	4681      	mov	r9, r0
+ 8009cae:	4638      	mov	r0, r7
+ 8009cb0:	f7ff ffc2 	bl	8009c38 <RTC_ByteToBcd2>
+ 8009cb4:	6a0b      	ldr	r3, [r1, #32]
+ 8009cb6:	78cf      	ldrb	r7, [r1, #3]
+ 8009cb8:	4323      	orrs	r3, r4
+ 8009cba:	ea43 5387 	orr.w	r3, r3, r7, lsl #22
+ 8009cbe:	ea43 0309 	orr.w	r3, r3, r9
+ 8009cc2:	ea43 4308 	orr.w	r3, r3, r8, lsl #16
+ 8009cc6:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
+ 8009cca:	ea43 6300 	orr.w	r3, r3, r0, lsl #24
+ 8009cce:	4a35      	ldr	r2, [pc, #212]	; (8009da4 <HAL_RTC_SetAlarm_IT+0x154>)
+ 8009cd0:	20ca      	movs	r0, #202	; 0xca
+ 8009cd2:	6250      	str	r0, [r2, #36]	; 0x24
+ 8009cd4:	2053      	movs	r0, #83	; 0x53
+ 8009cd6:	6250      	str	r0, [r2, #36]	; 0x24
+ 8009cd8:	6a8c      	ldr	r4, [r1, #40]	; 0x28
+ 8009cda:	6988      	ldr	r0, [r1, #24]
+ 8009cdc:	f5b4 7f80 	cmp.w	r4, #256	; 0x100
+ 8009ce0:	6994      	ldr	r4, [r2, #24]
+ 8009ce2:	d145      	bne.n	8009d70 <HAL_RTC_SetAlarm_IT+0x120>
+ 8009ce4:	f424 5488 	bic.w	r4, r4, #4352	; 0x1100
+ 8009ce8:	6194      	str	r4, [r2, #24]
+ 8009cea:	2401      	movs	r4, #1
+ 8009cec:	65d4      	str	r4, [r2, #92]	; 0x5c
+ 8009cee:	f5b6 7f80 	cmp.w	r6, #256	; 0x100
+ 8009cf2:	bf09      	itett	eq
+ 8009cf4:	69cb      	ldreq	r3, [r1, #28]
+ 8009cf6:	6413      	strne	r3, [r2, #64]	; 0x40
+ 8009cf8:	4303      	orreq	r3, r0
+ 8009cfa:	6453      	streq	r3, [r2, #68]	; 0x44
+ 8009cfc:	bf18      	it	ne
+ 8009cfe:	6450      	strne	r0, [r2, #68]	; 0x44
+ 8009d00:	4b28      	ldr	r3, [pc, #160]	; (8009da4 <HAL_RTC_SetAlarm_IT+0x154>)
+ 8009d02:	684a      	ldr	r2, [r1, #4]
+ 8009d04:	671a      	str	r2, [r3, #112]	; 0x70
+ 8009d06:	6b2a      	ldr	r2, [r5, #48]	; 0x30
+ 8009d08:	f042 0201 	orr.w	r2, r2, #1
+ 8009d0c:	632a      	str	r2, [r5, #48]	; 0x30
+ 8009d0e:	699a      	ldr	r2, [r3, #24]
+ 8009d10:	f442 5288 	orr.w	r2, r2, #4352	; 0x1100
+ 8009d14:	619a      	str	r2, [r3, #24]
+ 8009d16:	4a24      	ldr	r2, [pc, #144]	; (8009da8 <HAL_RTC_SetAlarm_IT+0x158>)
+ 8009d18:	f8d2 3080 	ldr.w	r3, [r2, #128]	; 0x80
+ 8009d1c:	f443 3300 	orr.w	r3, r3, #131072	; 0x20000
+ 8009d20:	f8c2 3080 	str.w	r3, [r2, #128]	; 0x80
+ 8009d24:	4b1f      	ldr	r3, [pc, #124]	; (8009da4 <HAL_RTC_SetAlarm_IT+0x154>)
+ 8009d26:	22ff      	movs	r2, #255	; 0xff
+ 8009d28:	625a      	str	r2, [r3, #36]	; 0x24
+ 8009d2a:	2000      	movs	r0, #0
+ 8009d2c:	2301      	movs	r3, #1
+ 8009d2e:	f885 302d 	strb.w	r3, [r5, #45]	; 0x2d
+ 8009d32:	f885 002c 	strb.w	r0, [r5, #44]	; 0x2c
+ 8009d36:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 8009d3a:	f1b4 3f80 	cmp.w	r4, #2155905152	; 0x80808080
+ 8009d3e:	d007      	beq.n	8009d50 <HAL_RTC_SetAlarm_IT+0x100>
+ 8009d40:	f5b4 0f00 	cmp.w	r4, #8388608	; 0x800000
+ 8009d44:	d004      	beq.n	8009d50 <HAL_RTC_SetAlarm_IT+0x100>
+ 8009d46:	699b      	ldr	r3, [r3, #24]
+ 8009d48:	f013 0340 	ands.w	r3, r3, #64	; 0x40
+ 8009d4c:	bf08      	it	eq
+ 8009d4e:	70cb      	strbeq	r3, [r1, #3]
+ 8009d50:	6a0b      	ldr	r3, [r1, #32]
+ 8009d52:	78ca      	ldrb	r2, [r1, #3]
+ 8009d54:	431c      	orrs	r4, r3
+ 8009d56:	ea44 040a 	orr.w	r4, r4, sl
+ 8009d5a:	ea44 4300 	orr.w	r3, r4, r0, lsl #16
+ 8009d5e:	ea43 2309 	orr.w	r3, r3, r9, lsl #8
+ 8009d62:	ea43 5382 	orr.w	r3, r3, r2, lsl #22
+ 8009d66:	ea43 6307 	orr.w	r3, r3, r7, lsl #24
+ 8009d6a:	e7b0      	b.n	8009cce <HAL_RTC_SetAlarm_IT+0x7e>
+ 8009d6c:	2300      	movs	r3, #0
+ 8009d6e:	e7ae      	b.n	8009cce <HAL_RTC_SetAlarm_IT+0x7e>
+ 8009d70:	f424 5408 	bic.w	r4, r4, #8704	; 0x2200
+ 8009d74:	6194      	str	r4, [r2, #24]
+ 8009d76:	2402      	movs	r4, #2
+ 8009d78:	65d4      	str	r4, [r2, #92]	; 0x5c
+ 8009d7a:	f5b6 7f80 	cmp.w	r6, #256	; 0x100
+ 8009d7e:	bf09      	itett	eq
+ 8009d80:	69cb      	ldreq	r3, [r1, #28]
+ 8009d82:	6493      	strne	r3, [r2, #72]	; 0x48
+ 8009d84:	4303      	orreq	r3, r0
+ 8009d86:	64d3      	streq	r3, [r2, #76]	; 0x4c
+ 8009d88:	bf18      	it	ne
+ 8009d8a:	64d0      	strne	r0, [r2, #76]	; 0x4c
+ 8009d8c:	4b05      	ldr	r3, [pc, #20]	; (8009da4 <HAL_RTC_SetAlarm_IT+0x154>)
+ 8009d8e:	684a      	ldr	r2, [r1, #4]
+ 8009d90:	675a      	str	r2, [r3, #116]	; 0x74
+ 8009d92:	6b2a      	ldr	r2, [r5, #48]	; 0x30
+ 8009d94:	f042 0202 	orr.w	r2, r2, #2
+ 8009d98:	632a      	str	r2, [r5, #48]	; 0x30
+ 8009d9a:	699a      	ldr	r2, [r3, #24]
+ 8009d9c:	f442 5208 	orr.w	r2, r2, #8704	; 0x2200
+ 8009da0:	e7b8      	b.n	8009d14 <HAL_RTC_SetAlarm_IT+0xc4>
+ 8009da2:	bf00      	nop
+ 8009da4:	40002800 	.word	0x40002800
+ 8009da8:	58000800 	.word	0x58000800
+
+08009dac <HAL_RTCEx_EnableBypassShadow>:
+ 8009dac:	f890 202c 	ldrb.w	r2, [r0, #44]	; 0x2c
+ 8009db0:	2a01      	cmp	r2, #1
+ 8009db2:	4603      	mov	r3, r0
+ 8009db4:	f04f 0002 	mov.w	r0, #2
+ 8009db8:	d012      	beq.n	8009de0 <HAL_RTCEx_EnableBypassShadow+0x34>
+ 8009dba:	4a0a      	ldr	r2, [pc, #40]	; (8009de4 <HAL_RTCEx_EnableBypassShadow+0x38>)
+ 8009dbc:	f883 002d 	strb.w	r0, [r3, #45]	; 0x2d
+ 8009dc0:	21ca      	movs	r1, #202	; 0xca
+ 8009dc2:	6251      	str	r1, [r2, #36]	; 0x24
+ 8009dc4:	2153      	movs	r1, #83	; 0x53
+ 8009dc6:	6251      	str	r1, [r2, #36]	; 0x24
+ 8009dc8:	6991      	ldr	r1, [r2, #24]
+ 8009dca:	f041 0120 	orr.w	r1, r1, #32
+ 8009dce:	6191      	str	r1, [r2, #24]
+ 8009dd0:	21ff      	movs	r1, #255	; 0xff
+ 8009dd2:	6251      	str	r1, [r2, #36]	; 0x24
+ 8009dd4:	2000      	movs	r0, #0
+ 8009dd6:	2201      	movs	r2, #1
+ 8009dd8:	f883 202d 	strb.w	r2, [r3, #45]	; 0x2d
+ 8009ddc:	f883 002c 	strb.w	r0, [r3, #44]	; 0x2c
+ 8009de0:	4770      	bx	lr
+ 8009de2:	bf00      	nop
+ 8009de4:	40002800 	.word	0x40002800
+
+08009de8 <HAL_RTCEx_SetSSRU_IT>:
+ 8009de8:	f890 202c 	ldrb.w	r2, [r0, #44]	; 0x2c
+ 8009dec:	2a01      	cmp	r2, #1
+ 8009dee:	4603      	mov	r3, r0
+ 8009df0:	f04f 0002 	mov.w	r0, #2
+ 8009df4:	d019      	beq.n	8009e2a <HAL_RTCEx_SetSSRU_IT+0x42>
+ 8009df6:	4a0d      	ldr	r2, [pc, #52]	; (8009e2c <HAL_RTCEx_SetSSRU_IT+0x44>)
+ 8009df8:	f883 002d 	strb.w	r0, [r3, #45]	; 0x2d
+ 8009dfc:	21ca      	movs	r1, #202	; 0xca
+ 8009dfe:	6251      	str	r1, [r2, #36]	; 0x24
+ 8009e00:	2153      	movs	r1, #83	; 0x53
+ 8009e02:	6251      	str	r1, [r2, #36]	; 0x24
+ 8009e04:	6991      	ldr	r1, [r2, #24]
+ 8009e06:	480a      	ldr	r0, [pc, #40]	; (8009e30 <HAL_RTCEx_SetSSRU_IT+0x48>)
+ 8009e08:	f041 0180 	orr.w	r1, r1, #128	; 0x80
+ 8009e0c:	6191      	str	r1, [r2, #24]
+ 8009e0e:	f8d0 1080 	ldr.w	r1, [r0, #128]	; 0x80
+ 8009e12:	f441 2180 	orr.w	r1, r1, #262144	; 0x40000
+ 8009e16:	f8c0 1080 	str.w	r1, [r0, #128]	; 0x80
+ 8009e1a:	21ff      	movs	r1, #255	; 0xff
+ 8009e1c:	6251      	str	r1, [r2, #36]	; 0x24
+ 8009e1e:	2000      	movs	r0, #0
+ 8009e20:	2201      	movs	r2, #1
+ 8009e22:	f883 202d 	strb.w	r2, [r3, #45]	; 0x2d
+ 8009e26:	f883 002c 	strb.w	r0, [r3, #44]	; 0x2c
+ 8009e2a:	4770      	bx	lr
+ 8009e2c:	40002800 	.word	0x40002800
+ 8009e30:	58000800 	.word	0x58000800
+
+08009e34 <HAL_RTCEx_SSRUIRQHandler>:
+ 8009e34:	4b06      	ldr	r3, [pc, #24]	; (8009e50 <HAL_RTCEx_SSRUIRQHandler+0x1c>)
+ 8009e36:	6d5a      	ldr	r2, [r3, #84]	; 0x54
+ 8009e38:	0652      	lsls	r2, r2, #25
+ 8009e3a:	b510      	push	{r4, lr}
+ 8009e3c:	4604      	mov	r4, r0
+ 8009e3e:	d503      	bpl.n	8009e48 <HAL_RTCEx_SSRUIRQHandler+0x14>
+ 8009e40:	2240      	movs	r2, #64	; 0x40
+ 8009e42:	65da      	str	r2, [r3, #92]	; 0x5c
+ 8009e44:	f7f9 f822 	bl	8002e8c <HAL_RTCEx_SSRUEventCallback>
+ 8009e48:	2301      	movs	r3, #1
+ 8009e4a:	f884 302d 	strb.w	r3, [r4, #45]	; 0x2d
+ 8009e4e:	bd10      	pop	{r4, pc}
+ 8009e50:	40002800 	.word	0x40002800
+
+08009e54 <HAL_RTCEx_AlarmBEventCallback>:
+ 8009e54:	4770      	bx	lr
+
+08009e56 <HAL_RTCEx_BKUPWrite>:
+ 8009e56:	0089      	lsls	r1, r1, #2
+ 8009e58:	f101 4180 	add.w	r1, r1, #1073741824	; 0x40000000
+ 8009e5c:	f501 4131 	add.w	r1, r1, #45312	; 0xb100
+ 8009e60:	600a      	str	r2, [r1, #0]
+ 8009e62:	4770      	bx	lr
+
+08009e64 <HAL_RTCEx_BKUPRead>:
+ 8009e64:	0089      	lsls	r1, r1, #2
+ 8009e66:	f101 4180 	add.w	r1, r1, #1073741824	; 0x40000000
+ 8009e6a:	f501 4131 	add.w	r1, r1, #45312	; 0xb100
+ 8009e6e:	6808      	ldr	r0, [r1, #0]
+ 8009e70:	4770      	bx	lr
+	...
+
+08009e74 <LL_PWR_UnselectSUBGHZSPI_NSS>:
+ 8009e74:	4a03      	ldr	r2, [pc, #12]	; (8009e84 <LL_PWR_UnselectSUBGHZSPI_NSS+0x10>)
+ 8009e76:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 8009e7a:	f443 4300 	orr.w	r3, r3, #32768	; 0x8000
+ 8009e7e:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+ 8009e82:	4770      	bx	lr
+ 8009e84:	58000400 	.word	0x58000400
+
+08009e88 <LL_PWR_SelectSUBGHZSPI_NSS>:
+ 8009e88:	4a03      	ldr	r2, [pc, #12]	; (8009e98 <LL_PWR_SelectSUBGHZSPI_NSS+0x10>)
+ 8009e8a:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 8009e8e:	f423 4300 	bic.w	r3, r3, #32768	; 0x8000
+ 8009e92:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+ 8009e96:	4770      	bx	lr
+ 8009e98:	58000400 	.word	0x58000400
+
+08009e9c <SUBGHZSPI_Init>:
+ 8009e9c:	4b07      	ldr	r3, [pc, #28]	; (8009ebc <SUBGHZSPI_Init+0x20>)
+ 8009e9e:	681a      	ldr	r2, [r3, #0]
+ 8009ea0:	f022 0240 	bic.w	r2, r2, #64	; 0x40
+ 8009ea4:	601a      	str	r2, [r3, #0]
+ 8009ea6:	f440 7041 	orr.w	r0, r0, #772	; 0x304
+ 8009eaa:	f44f 52b8 	mov.w	r2, #5888	; 0x1700
+ 8009eae:	6018      	str	r0, [r3, #0]
+ 8009eb0:	605a      	str	r2, [r3, #4]
+ 8009eb2:	681a      	ldr	r2, [r3, #0]
+ 8009eb4:	f042 0240 	orr.w	r2, r2, #64	; 0x40
+ 8009eb8:	601a      	str	r2, [r3, #0]
+ 8009eba:	4770      	bx	lr
+ 8009ebc:	58010000 	.word	0x58010000
+
+08009ec0 <HAL_SUBGHZ_Init>:
+ 8009ec0:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 8009ec2:	4605      	mov	r5, r0
+ 8009ec4:	2800      	cmp	r0, #0
+ 8009ec6:	d04e      	beq.n	8009f66 <HAL_SUBGHZ_Init+0xa6>
+ 8009ec8:	7983      	ldrb	r3, [r0, #6]
+ 8009eca:	f003 04ff 	and.w	r4, r3, #255	; 0xff
+ 8009ece:	b16b      	cbz	r3, 8009eec <HAL_SUBGHZ_Init+0x2c>
+ 8009ed0:	2c03      	cmp	r4, #3
+ 8009ed2:	d00b      	beq.n	8009eec <HAL_SUBGHZ_Init+0x2c>
+ 8009ed4:	4b25      	ldr	r3, [pc, #148]	; (8009f6c <HAL_SUBGHZ_Init+0xac>)
+ 8009ed6:	f44f 6200 	mov.w	r2, #2048	; 0x800
+ 8009eda:	619a      	str	r2, [r3, #24]
+ 8009edc:	6828      	ldr	r0, [r5, #0]
+ 8009ede:	f7ff ffdd 	bl	8009e9c <SUBGHZSPI_Init>
+ 8009ee2:	2400      	movs	r4, #0
+ 8009ee4:	2301      	movs	r3, #1
+ 8009ee6:	712b      	strb	r3, [r5, #4]
+ 8009ee8:	60ac      	str	r4, [r5, #8]
+ 8009eea:	e02f      	b.n	8009f4c <HAL_SUBGHZ_Init+0x8c>
+ 8009eec:	2300      	movs	r3, #0
+ 8009eee:	716b      	strb	r3, [r5, #5]
+ 8009ef0:	4628      	mov	r0, r5
+ 8009ef2:	f7f8 fd65 	bl	80029c0 <HAL_SUBGHZ_MspInit>
+ 8009ef6:	4a1e      	ldr	r2, [pc, #120]	; (8009f70 <HAL_SUBGHZ_Init+0xb0>)
+ 8009ef8:	f8d2 3090 	ldr.w	r3, [r2, #144]	; 0x90
+ 8009efc:	f443 5380 	orr.w	r3, r3, #4096	; 0x1000
+ 8009f00:	f8c2 3090 	str.w	r3, [r2, #144]	; 0x90
+ 8009f04:	2c00      	cmp	r4, #0
+ 8009f06:	d1e5      	bne.n	8009ed4 <HAL_SUBGHZ_Init+0x14>
+ 8009f08:	2302      	movs	r3, #2
+ 8009f0a:	f04f 42b0 	mov.w	r2, #1476395008	; 0x58000000
+ 8009f0e:	71ab      	strb	r3, [r5, #6]
+ 8009f10:	f8d2 3094 	ldr.w	r3, [r2, #148]	; 0x94
+ 8009f14:	f423 4300 	bic.w	r3, r3, #32768	; 0x8000
+ 8009f18:	f8c2 3094 	str.w	r3, [r2, #148]	; 0x94
+ 8009f1c:	4b15      	ldr	r3, [pc, #84]	; (8009f74 <HAL_SUBGHZ_Init+0xb4>)
+ 8009f1e:	681b      	ldr	r3, [r3, #0]
+ 8009f20:	211c      	movs	r1, #28
+ 8009f22:	434b      	muls	r3, r1
+ 8009f24:	0cdb      	lsrs	r3, r3, #19
+ 8009f26:	2164      	movs	r1, #100	; 0x64
+ 8009f28:	434b      	muls	r3, r1
+ 8009f2a:	9301      	str	r3, [sp, #4]
+ 8009f2c:	9b01      	ldr	r3, [sp, #4]
+ 8009f2e:	b993      	cbnz	r3, 8009f56 <HAL_SUBGHZ_Init+0x96>
+ 8009f30:	2401      	movs	r4, #1
+ 8009f32:	60ac      	str	r4, [r5, #8]
+ 8009f34:	f7ff ff9e 	bl	8009e74 <LL_PWR_UnselectSUBGHZSPI_NSS>
+ 8009f38:	4b0c      	ldr	r3, [pc, #48]	; (8009f6c <HAL_SUBGHZ_Init+0xac>)
+ 8009f3a:	689a      	ldr	r2, [r3, #8]
+ 8009f3c:	f442 6200 	orr.w	r2, r2, #2048	; 0x800
+ 8009f40:	609a      	str	r2, [r3, #8]
+ 8009f42:	f44f 6200 	mov.w	r2, #2048	; 0x800
+ 8009f46:	619a      	str	r2, [r3, #24]
+ 8009f48:	2c00      	cmp	r4, #0
+ 8009f4a:	d0c7      	beq.n	8009edc <HAL_SUBGHZ_Init+0x1c>
+ 8009f4c:	2301      	movs	r3, #1
+ 8009f4e:	71ab      	strb	r3, [r5, #6]
+ 8009f50:	4620      	mov	r0, r4
+ 8009f52:	b003      	add	sp, #12
+ 8009f54:	bd30      	pop	{r4, r5, pc}
+ 8009f56:	9b01      	ldr	r3, [sp, #4]
+ 8009f58:	3b01      	subs	r3, #1
+ 8009f5a:	9301      	str	r3, [sp, #4]
+ 8009f5c:	f8d2 3094 	ldr.w	r3, [r2, #148]	; 0x94
+ 8009f60:	045b      	lsls	r3, r3, #17
+ 8009f62:	d4e3      	bmi.n	8009f2c <HAL_SUBGHZ_Init+0x6c>
+ 8009f64:	e7e6      	b.n	8009f34 <HAL_SUBGHZ_Init+0x74>
+ 8009f66:	2401      	movs	r4, #1
+ 8009f68:	e7f2      	b.n	8009f50 <HAL_SUBGHZ_Init+0x90>
+ 8009f6a:	bf00      	nop
+ 8009f6c:	58000400 	.word	0x58000400
+ 8009f70:	58000800 	.word	0x58000800
+ 8009f74:	20000828 	.word	0x20000828
+
+08009f78 <SUBGHZSPI_Transmit>:
+ 8009f78:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 8009f7a:	4d17      	ldr	r5, [pc, #92]	; (8009fd8 <SUBGHZSPI_Transmit+0x60>)
+ 8009f7c:	682b      	ldr	r3, [r5, #0]
+ 8009f7e:	4602      	mov	r2, r0
+ 8009f80:	201c      	movs	r0, #28
+ 8009f82:	4343      	muls	r3, r0
+ 8009f84:	0cdb      	lsrs	r3, r3, #19
+ 8009f86:	2064      	movs	r0, #100	; 0x64
+ 8009f88:	4343      	muls	r3, r0
+ 8009f8a:	4814      	ldr	r0, [pc, #80]	; (8009fdc <SUBGHZSPI_Transmit+0x64>)
+ 8009f8c:	9301      	str	r3, [sp, #4]
+ 8009f8e:	9b01      	ldr	r3, [sp, #4]
+ 8009f90:	b993      	cbnz	r3, 8009fb8 <SUBGHZSPI_Transmit+0x40>
+ 8009f92:	2001      	movs	r0, #1
+ 8009f94:	6090      	str	r0, [r2, #8]
+ 8009f96:	4c11      	ldr	r4, [pc, #68]	; (8009fdc <SUBGHZSPI_Transmit+0x64>)
+ 8009f98:	7321      	strb	r1, [r4, #12]
+ 8009f9a:	682b      	ldr	r3, [r5, #0]
+ 8009f9c:	211c      	movs	r1, #28
+ 8009f9e:	434b      	muls	r3, r1
+ 8009fa0:	0cdb      	lsrs	r3, r3, #19
+ 8009fa2:	2164      	movs	r1, #100	; 0x64
+ 8009fa4:	434b      	muls	r3, r1
+ 8009fa6:	9301      	str	r3, [sp, #4]
+ 8009fa8:	9b01      	ldr	r3, [sp, #4]
+ 8009faa:	b96b      	cbnz	r3, 8009fc8 <SUBGHZSPI_Transmit+0x50>
+ 8009fac:	2001      	movs	r0, #1
+ 8009fae:	6090      	str	r0, [r2, #8]
+ 8009fb0:	4b0a      	ldr	r3, [pc, #40]	; (8009fdc <SUBGHZSPI_Transmit+0x64>)
+ 8009fb2:	68db      	ldr	r3, [r3, #12]
+ 8009fb4:	b003      	add	sp, #12
+ 8009fb6:	bd30      	pop	{r4, r5, pc}
+ 8009fb8:	9b01      	ldr	r3, [sp, #4]
+ 8009fba:	3b01      	subs	r3, #1
+ 8009fbc:	9301      	str	r3, [sp, #4]
+ 8009fbe:	6883      	ldr	r3, [r0, #8]
+ 8009fc0:	079c      	lsls	r4, r3, #30
+ 8009fc2:	d5e4      	bpl.n	8009f8e <SUBGHZSPI_Transmit+0x16>
+ 8009fc4:	2000      	movs	r0, #0
+ 8009fc6:	e7e6      	b.n	8009f96 <SUBGHZSPI_Transmit+0x1e>
+ 8009fc8:	9b01      	ldr	r3, [sp, #4]
+ 8009fca:	3b01      	subs	r3, #1
+ 8009fcc:	9301      	str	r3, [sp, #4]
+ 8009fce:	68a3      	ldr	r3, [r4, #8]
+ 8009fd0:	07db      	lsls	r3, r3, #31
+ 8009fd2:	d5e9      	bpl.n	8009fa8 <SUBGHZSPI_Transmit+0x30>
+ 8009fd4:	e7ec      	b.n	8009fb0 <SUBGHZSPI_Transmit+0x38>
+ 8009fd6:	bf00      	nop
+ 8009fd8:	20000828 	.word	0x20000828
+ 8009fdc:	58010000 	.word	0x58010000
+
+08009fe0 <SUBGHZSPI_Receive>:
+ 8009fe0:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 8009fe2:	4d18      	ldr	r5, [pc, #96]	; (800a044 <SUBGHZSPI_Receive+0x64>)
+ 8009fe4:	682b      	ldr	r3, [r5, #0]
+ 8009fe6:	4602      	mov	r2, r0
+ 8009fe8:	201c      	movs	r0, #28
+ 8009fea:	4343      	muls	r3, r0
+ 8009fec:	0cdb      	lsrs	r3, r3, #19
+ 8009fee:	2064      	movs	r0, #100	; 0x64
+ 8009ff0:	4343      	muls	r3, r0
+ 8009ff2:	4815      	ldr	r0, [pc, #84]	; (800a048 <SUBGHZSPI_Receive+0x68>)
+ 8009ff4:	9301      	str	r3, [sp, #4]
+ 8009ff6:	9b01      	ldr	r3, [sp, #4]
+ 8009ff8:	b9a3      	cbnz	r3, 800a024 <SUBGHZSPI_Receive+0x44>
+ 8009ffa:	2001      	movs	r0, #1
+ 8009ffc:	6090      	str	r0, [r2, #8]
+ 8009ffe:	4c12      	ldr	r4, [pc, #72]	; (800a048 <SUBGHZSPI_Receive+0x68>)
+ 800a000:	23ff      	movs	r3, #255	; 0xff
+ 800a002:	7323      	strb	r3, [r4, #12]
+ 800a004:	682b      	ldr	r3, [r5, #0]
+ 800a006:	251c      	movs	r5, #28
+ 800a008:	436b      	muls	r3, r5
+ 800a00a:	0cdb      	lsrs	r3, r3, #19
+ 800a00c:	2564      	movs	r5, #100	; 0x64
+ 800a00e:	436b      	muls	r3, r5
+ 800a010:	9301      	str	r3, [sp, #4]
+ 800a012:	9b01      	ldr	r3, [sp, #4]
+ 800a014:	b973      	cbnz	r3, 800a034 <SUBGHZSPI_Receive+0x54>
+ 800a016:	2001      	movs	r0, #1
+ 800a018:	6090      	str	r0, [r2, #8]
+ 800a01a:	4b0b      	ldr	r3, [pc, #44]	; (800a048 <SUBGHZSPI_Receive+0x68>)
+ 800a01c:	68db      	ldr	r3, [r3, #12]
+ 800a01e:	700b      	strb	r3, [r1, #0]
+ 800a020:	b003      	add	sp, #12
+ 800a022:	bd30      	pop	{r4, r5, pc}
+ 800a024:	9b01      	ldr	r3, [sp, #4]
+ 800a026:	3b01      	subs	r3, #1
+ 800a028:	9301      	str	r3, [sp, #4]
+ 800a02a:	6883      	ldr	r3, [r0, #8]
+ 800a02c:	079c      	lsls	r4, r3, #30
+ 800a02e:	d5e2      	bpl.n	8009ff6 <SUBGHZSPI_Receive+0x16>
+ 800a030:	2000      	movs	r0, #0
+ 800a032:	e7e4      	b.n	8009ffe <SUBGHZSPI_Receive+0x1e>
+ 800a034:	9b01      	ldr	r3, [sp, #4]
+ 800a036:	3b01      	subs	r3, #1
+ 800a038:	9301      	str	r3, [sp, #4]
+ 800a03a:	68a3      	ldr	r3, [r4, #8]
+ 800a03c:	07db      	lsls	r3, r3, #31
+ 800a03e:	d5e8      	bpl.n	800a012 <SUBGHZSPI_Receive+0x32>
+ 800a040:	e7eb      	b.n	800a01a <SUBGHZSPI_Receive+0x3a>
+ 800a042:	bf00      	nop
+ 800a044:	20000828 	.word	0x20000828
+ 800a048:	58010000 	.word	0x58010000
+
+0800a04c <SUBGHZ_WaitOnBusy>:
+ 800a04c:	4b0f      	ldr	r3, [pc, #60]	; (800a08c <SUBGHZ_WaitOnBusy+0x40>)
+ 800a04e:	b513      	push	{r0, r1, r4, lr}
+ 800a050:	681b      	ldr	r3, [r3, #0]
+ 800a052:	4c0f      	ldr	r4, [pc, #60]	; (800a090 <SUBGHZ_WaitOnBusy+0x44>)
+ 800a054:	2218      	movs	r2, #24
+ 800a056:	4353      	muls	r3, r2
+ 800a058:	0d1b      	lsrs	r3, r3, #20
+ 800a05a:	2264      	movs	r2, #100	; 0x64
+ 800a05c:	4353      	muls	r3, r2
+ 800a05e:	4601      	mov	r1, r0
+ 800a060:	9301      	str	r3, [sp, #4]
+ 800a062:	6962      	ldr	r2, [r4, #20]
+ 800a064:	9b01      	ldr	r3, [sp, #4]
+ 800a066:	f002 0204 	and.w	r2, r2, #4
+ 800a06a:	b923      	cbnz	r3, 800a076 <SUBGHZ_WaitOnBusy+0x2a>
+ 800a06c:	2302      	movs	r3, #2
+ 800a06e:	608b      	str	r3, [r1, #8]
+ 800a070:	2001      	movs	r0, #1
+ 800a072:	b002      	add	sp, #8
+ 800a074:	bd10      	pop	{r4, pc}
+ 800a076:	9b01      	ldr	r3, [sp, #4]
+ 800a078:	3b01      	subs	r3, #1
+ 800a07a:	9301      	str	r3, [sp, #4]
+ 800a07c:	6960      	ldr	r0, [r4, #20]
+ 800a07e:	f010 0002 	ands.w	r0, r0, #2
+ 800a082:	d0f6      	beq.n	800a072 <SUBGHZ_WaitOnBusy+0x26>
+ 800a084:	2a00      	cmp	r2, #0
+ 800a086:	d1ec      	bne.n	800a062 <SUBGHZ_WaitOnBusy+0x16>
+ 800a088:	4610      	mov	r0, r2
+ 800a08a:	e7f2      	b.n	800a072 <SUBGHZ_WaitOnBusy+0x26>
+ 800a08c:	20000828 	.word	0x20000828
+ 800a090:	58000400 	.word	0x58000400
+
+0800a094 <SUBGHZ_CheckDeviceReady>:
+ 800a094:	b507      	push	{r0, r1, r2, lr}
+ 800a096:	7903      	ldrb	r3, [r0, #4]
+ 800a098:	2b01      	cmp	r3, #1
+ 800a09a:	d10f      	bne.n	800a0bc <SUBGHZ_CheckDeviceReady+0x28>
+ 800a09c:	4b0a      	ldr	r3, [pc, #40]	; (800a0c8 <SUBGHZ_CheckDeviceReady+0x34>)
+ 800a09e:	681b      	ldr	r3, [r3, #0]
+ 800a0a0:	2218      	movs	r2, #24
+ 800a0a2:	4353      	muls	r3, r2
+ 800a0a4:	0c1b      	lsrs	r3, r3, #16
+ 800a0a6:	9301      	str	r3, [sp, #4]
+ 800a0a8:	f7ff feee 	bl	8009e88 <LL_PWR_SelectSUBGHZSPI_NSS>
+ 800a0ac:	9b01      	ldr	r3, [sp, #4]
+ 800a0ae:	3b01      	subs	r3, #1
+ 800a0b0:	9301      	str	r3, [sp, #4]
+ 800a0b2:	9b01      	ldr	r3, [sp, #4]
+ 800a0b4:	2b00      	cmp	r3, #0
+ 800a0b6:	d1f9      	bne.n	800a0ac <SUBGHZ_CheckDeviceReady+0x18>
+ 800a0b8:	f7ff fedc 	bl	8009e74 <LL_PWR_UnselectSUBGHZSPI_NSS>
+ 800a0bc:	b003      	add	sp, #12
+ 800a0be:	f85d eb04 	ldr.w	lr, [sp], #4
+ 800a0c2:	f7ff bfc3 	b.w	800a04c <SUBGHZ_WaitOnBusy>
+ 800a0c6:	bf00      	nop
+ 800a0c8:	20000828 	.word	0x20000828
+
+0800a0cc <HAL_SUBGHZ_WriteRegisters>:
+ 800a0cc:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 800a0ce:	461e      	mov	r6, r3
+ 800a0d0:	7983      	ldrb	r3, [r0, #6]
+ 800a0d2:	2b01      	cmp	r3, #1
+ 800a0d4:	4615      	mov	r5, r2
+ 800a0d6:	4604      	mov	r4, r0
+ 800a0d8:	460f      	mov	r7, r1
+ 800a0da:	b2da      	uxtb	r2, r3
+ 800a0dc:	d12d      	bne.n	800a13a <HAL_SUBGHZ_WriteRegisters+0x6e>
+ 800a0de:	7943      	ldrb	r3, [r0, #5]
+ 800a0e0:	2b01      	cmp	r3, #1
+ 800a0e2:	d02a      	beq.n	800a13a <HAL_SUBGHZ_WriteRegisters+0x6e>
+ 800a0e4:	2302      	movs	r3, #2
+ 800a0e6:	7142      	strb	r2, [r0, #5]
+ 800a0e8:	7183      	strb	r3, [r0, #6]
+ 800a0ea:	f7ff ffd3 	bl	800a094 <SUBGHZ_CheckDeviceReady>
+ 800a0ee:	210d      	movs	r1, #13
+ 800a0f0:	4620      	mov	r0, r4
+ 800a0f2:	f7ff fec9 	bl	8009e88 <LL_PWR_SelectSUBGHZSPI_NSS>
+ 800a0f6:	f7ff ff3f 	bl	8009f78 <SUBGHZSPI_Transmit>
+ 800a0fa:	0a39      	lsrs	r1, r7, #8
+ 800a0fc:	4620      	mov	r0, r4
+ 800a0fe:	f7ff ff3b 	bl	8009f78 <SUBGHZSPI_Transmit>
+ 800a102:	b2f9      	uxtb	r1, r7
+ 800a104:	4620      	mov	r0, r4
+ 800a106:	f7ff ff37 	bl	8009f78 <SUBGHZSPI_Transmit>
+ 800a10a:	442e      	add	r6, r5
+ 800a10c:	42b5      	cmp	r5, r6
+ 800a10e:	d10e      	bne.n	800a12e <HAL_SUBGHZ_WriteRegisters+0x62>
+ 800a110:	4620      	mov	r0, r4
+ 800a112:	f7ff feaf 	bl	8009e74 <LL_PWR_UnselectSUBGHZSPI_NSS>
+ 800a116:	f7ff ff99 	bl	800a04c <SUBGHZ_WaitOnBusy>
+ 800a11a:	68a0      	ldr	r0, [r4, #8]
+ 800a11c:	2301      	movs	r3, #1
+ 800a11e:	3800      	subs	r0, #0
+ 800a120:	71a3      	strb	r3, [r4, #6]
+ 800a122:	f04f 0300 	mov.w	r3, #0
+ 800a126:	bf18      	it	ne
+ 800a128:	2001      	movne	r0, #1
+ 800a12a:	7163      	strb	r3, [r4, #5]
+ 800a12c:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 800a12e:	f815 1b01 	ldrb.w	r1, [r5], #1
+ 800a132:	4620      	mov	r0, r4
+ 800a134:	f7ff ff20 	bl	8009f78 <SUBGHZSPI_Transmit>
+ 800a138:	e7e8      	b.n	800a10c <HAL_SUBGHZ_WriteRegisters+0x40>
+ 800a13a:	2002      	movs	r0, #2
+ 800a13c:	e7f6      	b.n	800a12c <HAL_SUBGHZ_WriteRegisters+0x60>
+
+0800a13e <HAL_SUBGHZ_ReadRegisters>:
+ 800a13e:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 800a140:	461e      	mov	r6, r3
+ 800a142:	7983      	ldrb	r3, [r0, #6]
+ 800a144:	2b01      	cmp	r3, #1
+ 800a146:	4615      	mov	r5, r2
+ 800a148:	4604      	mov	r4, r0
+ 800a14a:	460f      	mov	r7, r1
+ 800a14c:	b2da      	uxtb	r2, r3
+ 800a14e:	d12f      	bne.n	800a1b0 <HAL_SUBGHZ_ReadRegisters+0x72>
+ 800a150:	7943      	ldrb	r3, [r0, #5]
+ 800a152:	2b01      	cmp	r3, #1
+ 800a154:	d02c      	beq.n	800a1b0 <HAL_SUBGHZ_ReadRegisters+0x72>
+ 800a156:	7142      	strb	r2, [r0, #5]
+ 800a158:	f7ff ff9c 	bl	800a094 <SUBGHZ_CheckDeviceReady>
+ 800a15c:	211d      	movs	r1, #29
+ 800a15e:	4620      	mov	r0, r4
+ 800a160:	f7ff fe92 	bl	8009e88 <LL_PWR_SelectSUBGHZSPI_NSS>
+ 800a164:	f7ff ff08 	bl	8009f78 <SUBGHZSPI_Transmit>
+ 800a168:	0a39      	lsrs	r1, r7, #8
+ 800a16a:	4620      	mov	r0, r4
+ 800a16c:	f7ff ff04 	bl	8009f78 <SUBGHZSPI_Transmit>
+ 800a170:	b2f9      	uxtb	r1, r7
+ 800a172:	4620      	mov	r0, r4
+ 800a174:	f7ff ff00 	bl	8009f78 <SUBGHZSPI_Transmit>
+ 800a178:	2100      	movs	r1, #0
+ 800a17a:	4620      	mov	r0, r4
+ 800a17c:	f7ff fefc 	bl	8009f78 <SUBGHZSPI_Transmit>
+ 800a180:	442e      	add	r6, r5
+ 800a182:	42b5      	cmp	r5, r6
+ 800a184:	d10e      	bne.n	800a1a4 <HAL_SUBGHZ_ReadRegisters+0x66>
+ 800a186:	4620      	mov	r0, r4
+ 800a188:	f7ff fe74 	bl	8009e74 <LL_PWR_UnselectSUBGHZSPI_NSS>
+ 800a18c:	f7ff ff5e 	bl	800a04c <SUBGHZ_WaitOnBusy>
+ 800a190:	68a0      	ldr	r0, [r4, #8]
+ 800a192:	2301      	movs	r3, #1
+ 800a194:	3800      	subs	r0, #0
+ 800a196:	71a3      	strb	r3, [r4, #6]
+ 800a198:	f04f 0300 	mov.w	r3, #0
+ 800a19c:	bf18      	it	ne
+ 800a19e:	2001      	movne	r0, #1
+ 800a1a0:	7163      	strb	r3, [r4, #5]
+ 800a1a2:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 800a1a4:	4629      	mov	r1, r5
+ 800a1a6:	4620      	mov	r0, r4
+ 800a1a8:	f7ff ff1a 	bl	8009fe0 <SUBGHZSPI_Receive>
+ 800a1ac:	3501      	adds	r5, #1
+ 800a1ae:	e7e8      	b.n	800a182 <HAL_SUBGHZ_ReadRegisters+0x44>
+ 800a1b0:	2002      	movs	r0, #2
+ 800a1b2:	e7f6      	b.n	800a1a2 <HAL_SUBGHZ_ReadRegisters+0x64>
+
+0800a1b4 <HAL_SUBGHZ_ExecSetCmd>:
+ 800a1b4:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 800a1b6:	461f      	mov	r7, r3
+ 800a1b8:	7983      	ldrb	r3, [r0, #6]
+ 800a1ba:	2b01      	cmp	r3, #1
+ 800a1bc:	4615      	mov	r5, r2
+ 800a1be:	4604      	mov	r4, r0
+ 800a1c0:	460e      	mov	r6, r1
+ 800a1c2:	b2da      	uxtb	r2, r3
+ 800a1c4:	d12c      	bne.n	800a220 <HAL_SUBGHZ_ExecSetCmd+0x6c>
+ 800a1c6:	7943      	ldrb	r3, [r0, #5]
+ 800a1c8:	2b01      	cmp	r3, #1
+ 800a1ca:	d029      	beq.n	800a220 <HAL_SUBGHZ_ExecSetCmd+0x6c>
+ 800a1cc:	7142      	strb	r2, [r0, #5]
+ 800a1ce:	f7ff ff61 	bl	800a094 <SUBGHZ_CheckDeviceReady>
+ 800a1d2:	f006 03ef 	and.w	r3, r6, #239	; 0xef
+ 800a1d6:	f1a3 0284 	sub.w	r2, r3, #132	; 0x84
+ 800a1da:	4253      	negs	r3, r2
+ 800a1dc:	4153      	adcs	r3, r2
+ 800a1de:	7123      	strb	r3, [r4, #4]
+ 800a1e0:	4631      	mov	r1, r6
+ 800a1e2:	4620      	mov	r0, r4
+ 800a1e4:	f7ff fe50 	bl	8009e88 <LL_PWR_SelectSUBGHZSPI_NSS>
+ 800a1e8:	f7ff fec6 	bl	8009f78 <SUBGHZSPI_Transmit>
+ 800a1ec:	442f      	add	r7, r5
+ 800a1ee:	42af      	cmp	r7, r5
+ 800a1f0:	d110      	bne.n	800a214 <HAL_SUBGHZ_ExecSetCmd+0x60>
+ 800a1f2:	f7ff fe3f 	bl	8009e74 <LL_PWR_UnselectSUBGHZSPI_NSS>
+ 800a1f6:	2e84      	cmp	r6, #132	; 0x84
+ 800a1f8:	d002      	beq.n	800a200 <HAL_SUBGHZ_ExecSetCmd+0x4c>
+ 800a1fa:	4620      	mov	r0, r4
+ 800a1fc:	f7ff ff26 	bl	800a04c <SUBGHZ_WaitOnBusy>
+ 800a200:	68a0      	ldr	r0, [r4, #8]
+ 800a202:	2301      	movs	r3, #1
+ 800a204:	3800      	subs	r0, #0
+ 800a206:	71a3      	strb	r3, [r4, #6]
+ 800a208:	f04f 0300 	mov.w	r3, #0
+ 800a20c:	bf18      	it	ne
+ 800a20e:	2001      	movne	r0, #1
+ 800a210:	7163      	strb	r3, [r4, #5]
+ 800a212:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 800a214:	f815 1b01 	ldrb.w	r1, [r5], #1
+ 800a218:	4620      	mov	r0, r4
+ 800a21a:	f7ff fead 	bl	8009f78 <SUBGHZSPI_Transmit>
+ 800a21e:	e7e6      	b.n	800a1ee <HAL_SUBGHZ_ExecSetCmd+0x3a>
+ 800a220:	2002      	movs	r0, #2
+ 800a222:	e7f6      	b.n	800a212 <HAL_SUBGHZ_ExecSetCmd+0x5e>
+
+0800a224 <HAL_SUBGHZ_ExecGetCmd>:
+ 800a224:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 800a226:	461e      	mov	r6, r3
+ 800a228:	7983      	ldrb	r3, [r0, #6]
+ 800a22a:	2b01      	cmp	r3, #1
+ 800a22c:	4615      	mov	r5, r2
+ 800a22e:	4604      	mov	r4, r0
+ 800a230:	460f      	mov	r7, r1
+ 800a232:	b2da      	uxtb	r2, r3
+ 800a234:	d127      	bne.n	800a286 <HAL_SUBGHZ_ExecGetCmd+0x62>
+ 800a236:	7943      	ldrb	r3, [r0, #5]
+ 800a238:	2b01      	cmp	r3, #1
+ 800a23a:	d024      	beq.n	800a286 <HAL_SUBGHZ_ExecGetCmd+0x62>
+ 800a23c:	7142      	strb	r2, [r0, #5]
+ 800a23e:	f7ff ff29 	bl	800a094 <SUBGHZ_CheckDeviceReady>
+ 800a242:	4639      	mov	r1, r7
+ 800a244:	4620      	mov	r0, r4
+ 800a246:	f7ff fe1f 	bl	8009e88 <LL_PWR_SelectSUBGHZSPI_NSS>
+ 800a24a:	f7ff fe95 	bl	8009f78 <SUBGHZSPI_Transmit>
+ 800a24e:	2100      	movs	r1, #0
+ 800a250:	4620      	mov	r0, r4
+ 800a252:	f7ff fe91 	bl	8009f78 <SUBGHZSPI_Transmit>
+ 800a256:	442e      	add	r6, r5
+ 800a258:	42b5      	cmp	r5, r6
+ 800a25a:	d10e      	bne.n	800a27a <HAL_SUBGHZ_ExecGetCmd+0x56>
+ 800a25c:	4620      	mov	r0, r4
+ 800a25e:	f7ff fe09 	bl	8009e74 <LL_PWR_UnselectSUBGHZSPI_NSS>
+ 800a262:	f7ff fef3 	bl	800a04c <SUBGHZ_WaitOnBusy>
+ 800a266:	68a0      	ldr	r0, [r4, #8]
+ 800a268:	2301      	movs	r3, #1
+ 800a26a:	3800      	subs	r0, #0
+ 800a26c:	71a3      	strb	r3, [r4, #6]
+ 800a26e:	f04f 0300 	mov.w	r3, #0
+ 800a272:	bf18      	it	ne
+ 800a274:	2001      	movne	r0, #1
+ 800a276:	7163      	strb	r3, [r4, #5]
+ 800a278:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 800a27a:	4629      	mov	r1, r5
+ 800a27c:	4620      	mov	r0, r4
+ 800a27e:	f7ff feaf 	bl	8009fe0 <SUBGHZSPI_Receive>
+ 800a282:	3501      	adds	r5, #1
+ 800a284:	e7e8      	b.n	800a258 <HAL_SUBGHZ_ExecGetCmd+0x34>
+ 800a286:	2002      	movs	r0, #2
+ 800a288:	e7f6      	b.n	800a278 <HAL_SUBGHZ_ExecGetCmd+0x54>
+
+0800a28a <HAL_SUBGHZ_IRQHandler>:
+ 800a28a:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 800a28c:	2300      	movs	r3, #0
+ 800a28e:	f8ad 3004 	strh.w	r3, [sp, #4]
+ 800a292:	aa01      	add	r2, sp, #4
+ 800a294:	2302      	movs	r3, #2
+ 800a296:	2112      	movs	r1, #18
+ 800a298:	4605      	mov	r5, r0
+ 800a29a:	f7ff ffc3 	bl	800a224 <HAL_SUBGHZ_ExecGetCmd>
+ 800a29e:	f8bd 4004 	ldrh.w	r4, [sp, #4]
+ 800a2a2:	2302      	movs	r3, #2
+ 800a2a4:	ba64      	rev16	r4, r4
+ 800a2a6:	aa01      	add	r2, sp, #4
+ 800a2a8:	b2a4      	uxth	r4, r4
+ 800a2aa:	4619      	mov	r1, r3
+ 800a2ac:	4628      	mov	r0, r5
+ 800a2ae:	f7ff ff81 	bl	800a1b4 <HAL_SUBGHZ_ExecSetCmd>
+ 800a2b2:	07e2      	lsls	r2, r4, #31
+ 800a2b4:	d502      	bpl.n	800a2bc <HAL_SUBGHZ_IRQHandler+0x32>
+ 800a2b6:	4628      	mov	r0, r5
+ 800a2b8:	f009 f9f6 	bl	80136a8 <HAL_SUBGHZ_TxCpltCallback>
+ 800a2bc:	07a3      	lsls	r3, r4, #30
+ 800a2be:	d502      	bpl.n	800a2c6 <HAL_SUBGHZ_IRQHandler+0x3c>
+ 800a2c0:	4628      	mov	r0, r5
+ 800a2c2:	f009 f9f7 	bl	80136b4 <HAL_SUBGHZ_RxCpltCallback>
+ 800a2c6:	0760      	lsls	r0, r4, #29
+ 800a2c8:	d502      	bpl.n	800a2d0 <HAL_SUBGHZ_IRQHandler+0x46>
+ 800a2ca:	4628      	mov	r0, r5
+ 800a2cc:	f009 fa1c 	bl	8013708 <HAL_SUBGHZ_PreambleDetectedCallback>
+ 800a2d0:	0721      	lsls	r1, r4, #28
+ 800a2d2:	d502      	bpl.n	800a2da <HAL_SUBGHZ_IRQHandler+0x50>
+ 800a2d4:	4628      	mov	r0, r5
+ 800a2d6:	f009 fa1d 	bl	8013714 <HAL_SUBGHZ_SyncWordValidCallback>
+ 800a2da:	06e2      	lsls	r2, r4, #27
+ 800a2dc:	d502      	bpl.n	800a2e4 <HAL_SUBGHZ_IRQHandler+0x5a>
+ 800a2de:	4628      	mov	r0, r5
+ 800a2e0:	f009 fa1e 	bl	8013720 <HAL_SUBGHZ_HeaderValidCallback>
+ 800a2e4:	06a3      	lsls	r3, r4, #26
+ 800a2e6:	d502      	bpl.n	800a2ee <HAL_SUBGHZ_IRQHandler+0x64>
+ 800a2e8:	4628      	mov	r0, r5
+ 800a2ea:	f009 fa07 	bl	80136fc <HAL_SUBGHZ_HeaderErrorCallback>
+ 800a2ee:	0660      	lsls	r0, r4, #25
+ 800a2f0:	d502      	bpl.n	800a2f8 <HAL_SUBGHZ_IRQHandler+0x6e>
+ 800a2f2:	4628      	mov	r0, r5
+ 800a2f4:	f009 f9e4 	bl	80136c0 <HAL_SUBGHZ_CRCErrorCallback>
+ 800a2f8:	0621      	lsls	r1, r4, #24
+ 800a2fa:	d506      	bpl.n	800a30a <HAL_SUBGHZ_IRQHandler+0x80>
+ 800a2fc:	f414 7180 	ands.w	r1, r4, #256	; 0x100
+ 800a300:	bf18      	it	ne
+ 800a302:	2101      	movne	r1, #1
+ 800a304:	4628      	mov	r0, r5
+ 800a306:	f009 f9e1 	bl	80136cc <HAL_SUBGHZ_CADStatusCallback>
+ 800a30a:	05a2      	lsls	r2, r4, #22
+ 800a30c:	d502      	bpl.n	800a314 <HAL_SUBGHZ_IRQHandler+0x8a>
+ 800a30e:	4628      	mov	r0, r5
+ 800a310:	f009 f9ec 	bl	80136ec <HAL_SUBGHZ_RxTxTimeoutCallback>
+ 800a314:	0463      	lsls	r3, r4, #17
+ 800a316:	d502      	bpl.n	800a31e <HAL_SUBGHZ_IRQHandler+0x94>
+ 800a318:	4628      	mov	r0, r5
+ 800a31a:	f009 fa07 	bl	801372c <HAL_SUBGHZ_LrFhssHopCallback>
+ 800a31e:	b003      	add	sp, #12
+ 800a320:	bd30      	pop	{r4, r5, pc}
+
+0800a322 <HAL_SUBGHZ_WriteBuffer>:
+ 800a322:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 800a324:	461e      	mov	r6, r3
+ 800a326:	7983      	ldrb	r3, [r0, #6]
+ 800a328:	2b01      	cmp	r3, #1
+ 800a32a:	4615      	mov	r5, r2
+ 800a32c:	4604      	mov	r4, r0
+ 800a32e:	460f      	mov	r7, r1
+ 800a330:	b2da      	uxtb	r2, r3
+ 800a332:	d127      	bne.n	800a384 <HAL_SUBGHZ_WriteBuffer+0x62>
+ 800a334:	7943      	ldrb	r3, [r0, #5]
+ 800a336:	2b01      	cmp	r3, #1
+ 800a338:	d024      	beq.n	800a384 <HAL_SUBGHZ_WriteBuffer+0x62>
+ 800a33a:	7142      	strb	r2, [r0, #5]
+ 800a33c:	f7ff feaa 	bl	800a094 <SUBGHZ_CheckDeviceReady>
+ 800a340:	210e      	movs	r1, #14
+ 800a342:	4620      	mov	r0, r4
+ 800a344:	f7ff fda0 	bl	8009e88 <LL_PWR_SelectSUBGHZSPI_NSS>
+ 800a348:	f7ff fe16 	bl	8009f78 <SUBGHZSPI_Transmit>
+ 800a34c:	4639      	mov	r1, r7
+ 800a34e:	4620      	mov	r0, r4
+ 800a350:	f7ff fe12 	bl	8009f78 <SUBGHZSPI_Transmit>
+ 800a354:	442e      	add	r6, r5
+ 800a356:	42b5      	cmp	r5, r6
+ 800a358:	d10e      	bne.n	800a378 <HAL_SUBGHZ_WriteBuffer+0x56>
+ 800a35a:	4620      	mov	r0, r4
+ 800a35c:	f7ff fd8a 	bl	8009e74 <LL_PWR_UnselectSUBGHZSPI_NSS>
+ 800a360:	f7ff fe74 	bl	800a04c <SUBGHZ_WaitOnBusy>
+ 800a364:	68a0      	ldr	r0, [r4, #8]
+ 800a366:	2301      	movs	r3, #1
+ 800a368:	3800      	subs	r0, #0
+ 800a36a:	71a3      	strb	r3, [r4, #6]
+ 800a36c:	f04f 0300 	mov.w	r3, #0
+ 800a370:	bf18      	it	ne
+ 800a372:	2001      	movne	r0, #1
+ 800a374:	7163      	strb	r3, [r4, #5]
+ 800a376:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 800a378:	f815 1b01 	ldrb.w	r1, [r5], #1
+ 800a37c:	4620      	mov	r0, r4
+ 800a37e:	f7ff fdfb 	bl	8009f78 <SUBGHZSPI_Transmit>
+ 800a382:	e7e8      	b.n	800a356 <HAL_SUBGHZ_WriteBuffer+0x34>
+ 800a384:	2002      	movs	r0, #2
+ 800a386:	e7f6      	b.n	800a376 <HAL_SUBGHZ_WriteBuffer+0x54>
+
+0800a388 <HAL_SUBGHZ_ReadBuffer>:
+ 800a388:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 800a38a:	461e      	mov	r6, r3
+ 800a38c:	7983      	ldrb	r3, [r0, #6]
+ 800a38e:	2b01      	cmp	r3, #1
+ 800a390:	4615      	mov	r5, r2
+ 800a392:	4604      	mov	r4, r0
+ 800a394:	460f      	mov	r7, r1
+ 800a396:	b2da      	uxtb	r2, r3
+ 800a398:	d12b      	bne.n	800a3f2 <HAL_SUBGHZ_ReadBuffer+0x6a>
+ 800a39a:	7943      	ldrb	r3, [r0, #5]
+ 800a39c:	2b01      	cmp	r3, #1
+ 800a39e:	d028      	beq.n	800a3f2 <HAL_SUBGHZ_ReadBuffer+0x6a>
+ 800a3a0:	7142      	strb	r2, [r0, #5]
+ 800a3a2:	f7ff fe77 	bl	800a094 <SUBGHZ_CheckDeviceReady>
+ 800a3a6:	211e      	movs	r1, #30
+ 800a3a8:	4620      	mov	r0, r4
+ 800a3aa:	f7ff fd6d 	bl	8009e88 <LL_PWR_SelectSUBGHZSPI_NSS>
+ 800a3ae:	f7ff fde3 	bl	8009f78 <SUBGHZSPI_Transmit>
+ 800a3b2:	4639      	mov	r1, r7
+ 800a3b4:	4620      	mov	r0, r4
+ 800a3b6:	f7ff fddf 	bl	8009f78 <SUBGHZSPI_Transmit>
+ 800a3ba:	2100      	movs	r1, #0
+ 800a3bc:	4620      	mov	r0, r4
+ 800a3be:	f7ff fddb 	bl	8009f78 <SUBGHZSPI_Transmit>
+ 800a3c2:	442e      	add	r6, r5
+ 800a3c4:	42b5      	cmp	r5, r6
+ 800a3c6:	d10e      	bne.n	800a3e6 <HAL_SUBGHZ_ReadBuffer+0x5e>
+ 800a3c8:	4620      	mov	r0, r4
+ 800a3ca:	f7ff fd53 	bl	8009e74 <LL_PWR_UnselectSUBGHZSPI_NSS>
+ 800a3ce:	f7ff fe3d 	bl	800a04c <SUBGHZ_WaitOnBusy>
+ 800a3d2:	68a0      	ldr	r0, [r4, #8]
+ 800a3d4:	2301      	movs	r3, #1
+ 800a3d6:	3800      	subs	r0, #0
+ 800a3d8:	71a3      	strb	r3, [r4, #6]
+ 800a3da:	f04f 0300 	mov.w	r3, #0
+ 800a3de:	bf18      	it	ne
+ 800a3e0:	2001      	movne	r0, #1
+ 800a3e2:	7163      	strb	r3, [r4, #5]
+ 800a3e4:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 800a3e6:	4629      	mov	r1, r5
+ 800a3e8:	4620      	mov	r0, r4
+ 800a3ea:	f7ff fdf9 	bl	8009fe0 <SUBGHZSPI_Receive>
+ 800a3ee:	3501      	adds	r5, #1
+ 800a3f0:	e7e8      	b.n	800a3c4 <HAL_SUBGHZ_ReadBuffer+0x3c>
+ 800a3f2:	2002      	movs	r0, #2
+ 800a3f4:	e7f6      	b.n	800a3e4 <HAL_SUBGHZ_ReadBuffer+0x5c>
+
+0800a3f6 <UART_EndTxTransfer>:
+ 800a3f6:	6802      	ldr	r2, [r0, #0]
+ 800a3f8:	e852 3f00 	ldrex	r3, [r2]
+ 800a3fc:	f023 03c0 	bic.w	r3, r3, #192	; 0xc0
+ 800a400:	e842 3100 	strex	r1, r3, [r2]
+ 800a404:	6802      	ldr	r2, [r0, #0]
+ 800a406:	2900      	cmp	r1, #0
+ 800a408:	d1f5      	bne.n	800a3f6 <UART_EndTxTransfer>
+ 800a40a:	f102 0308 	add.w	r3, r2, #8
+ 800a40e:	e853 3f00 	ldrex	r3, [r3]
+ 800a412:	f423 0300 	bic.w	r3, r3, #8388608	; 0x800000
+ 800a416:	f102 0c08 	add.w	ip, r2, #8
+ 800a41a:	e84c 3100 	strex	r1, r3, [ip]
+ 800a41e:	2900      	cmp	r1, #0
+ 800a420:	d1f3      	bne.n	800a40a <UART_EndTxTransfer+0x14>
+ 800a422:	2320      	movs	r3, #32
+ 800a424:	f8c0 3088 	str.w	r3, [r0, #136]	; 0x88
+ 800a428:	4770      	bx	lr
+	...
+
+0800a42c <UART_EndRxTransfer>:
+ 800a42c:	b510      	push	{r4, lr}
+ 800a42e:	6802      	ldr	r2, [r0, #0]
+ 800a430:	e852 3f00 	ldrex	r3, [r2]
+ 800a434:	f423 7390 	bic.w	r3, r3, #288	; 0x120
+ 800a438:	e842 3100 	strex	r1, r3, [r2]
+ 800a43c:	6802      	ldr	r2, [r0, #0]
+ 800a43e:	2900      	cmp	r1, #0
+ 800a440:	d1f5      	bne.n	800a42e <UART_EndRxTransfer+0x2>
+ 800a442:	4c0f      	ldr	r4, [pc, #60]	; (800a480 <UART_EndRxTransfer+0x54>)
+ 800a444:	f102 0308 	add.w	r3, r2, #8
+ 800a448:	e853 3f00 	ldrex	r3, [r3]
+ 800a44c:	4023      	ands	r3, r4
+ 800a44e:	f102 0c08 	add.w	ip, r2, #8
+ 800a452:	e84c 3100 	strex	r1, r3, [ip]
+ 800a456:	2900      	cmp	r1, #0
+ 800a458:	d1f4      	bne.n	800a444 <UART_EndRxTransfer+0x18>
+ 800a45a:	6ec3      	ldr	r3, [r0, #108]	; 0x6c
+ 800a45c:	2b01      	cmp	r3, #1
+ 800a45e:	d107      	bne.n	800a470 <UART_EndRxTransfer+0x44>
+ 800a460:	e852 3f00 	ldrex	r3, [r2]
+ 800a464:	f023 0310 	bic.w	r3, r3, #16
+ 800a468:	e842 3100 	strex	r1, r3, [r2]
+ 800a46c:	2900      	cmp	r1, #0
+ 800a46e:	d1f7      	bne.n	800a460 <UART_EndRxTransfer+0x34>
+ 800a470:	2320      	movs	r3, #32
+ 800a472:	f8c0 308c 	str.w	r3, [r0, #140]	; 0x8c
+ 800a476:	2300      	movs	r3, #0
+ 800a478:	66c3      	str	r3, [r0, #108]	; 0x6c
+ 800a47a:	6743      	str	r3, [r0, #116]	; 0x74
+ 800a47c:	bd10      	pop	{r4, pc}
+ 800a47e:	bf00      	nop
+ 800a480:	effffffe 	.word	0xeffffffe
+
+0800a484 <HAL_UART_Transmit_DMA>:
+ 800a484:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 800a486:	4604      	mov	r4, r0
+ 800a488:	4613      	mov	r3, r2
+ 800a48a:	f8d4 5088 	ldr.w	r5, [r4, #136]	; 0x88
+ 800a48e:	2d20      	cmp	r5, #32
+ 800a490:	d132      	bne.n	800a4f8 <HAL_UART_Transmit_DMA+0x74>
+ 800a492:	b1f1      	cbz	r1, 800a4d2 <HAL_UART_Transmit_DMA+0x4e>
+ 800a494:	b1ea      	cbz	r2, 800a4d2 <HAL_UART_Transmit_DMA+0x4e>
+ 800a496:	6fe0      	ldr	r0, [r4, #124]	; 0x7c
+ 800a498:	f8a4 2056 	strh.w	r2, [r4, #86]	; 0x56
+ 800a49c:	f8a4 2054 	strh.w	r2, [r4, #84]	; 0x54
+ 800a4a0:	2600      	movs	r6, #0
+ 800a4a2:	2221      	movs	r2, #33	; 0x21
+ 800a4a4:	f8c4 6090 	str.w	r6, [r4, #144]	; 0x90
+ 800a4a8:	6521      	str	r1, [r4, #80]	; 0x50
+ 800a4aa:	f8c4 2088 	str.w	r2, [r4, #136]	; 0x88
+ 800a4ae:	6822      	ldr	r2, [r4, #0]
+ 800a4b0:	b188      	cbz	r0, 800a4d6 <HAL_UART_Transmit_DMA+0x52>
+ 800a4b2:	4f12      	ldr	r7, [pc, #72]	; (800a4fc <HAL_UART_Transmit_DMA+0x78>)
+ 800a4b4:	62c7      	str	r7, [r0, #44]	; 0x2c
+ 800a4b6:	4f12      	ldr	r7, [pc, #72]	; (800a500 <HAL_UART_Transmit_DMA+0x7c>)
+ 800a4b8:	6307      	str	r7, [r0, #48]	; 0x30
+ 800a4ba:	4f12      	ldr	r7, [pc, #72]	; (800a504 <HAL_UART_Transmit_DMA+0x80>)
+ 800a4bc:	3228      	adds	r2, #40	; 0x28
+ 800a4be:	e9c0 760d 	strd	r7, r6, [r0, #52]	; 0x34
+ 800a4c2:	f7fd fe45 	bl	8008150 <HAL_DMA_Start_IT>
+ 800a4c6:	b130      	cbz	r0, 800a4d6 <HAL_UART_Transmit_DMA+0x52>
+ 800a4c8:	2310      	movs	r3, #16
+ 800a4ca:	f8c4 3090 	str.w	r3, [r4, #144]	; 0x90
+ 800a4ce:	f8c4 5088 	str.w	r5, [r4, #136]	; 0x88
+ 800a4d2:	2001      	movs	r0, #1
+ 800a4d4:	e00f      	b.n	800a4f6 <HAL_UART_Transmit_DMA+0x72>
+ 800a4d6:	6823      	ldr	r3, [r4, #0]
+ 800a4d8:	2240      	movs	r2, #64	; 0x40
+ 800a4da:	621a      	str	r2, [r3, #32]
+ 800a4dc:	6822      	ldr	r2, [r4, #0]
+ 800a4de:	f102 0308 	add.w	r3, r2, #8
+ 800a4e2:	e853 3f00 	ldrex	r3, [r3]
+ 800a4e6:	f043 0380 	orr.w	r3, r3, #128	; 0x80
+ 800a4ea:	f102 0108 	add.w	r1, r2, #8
+ 800a4ee:	e841 3000 	strex	r0, r3, [r1]
+ 800a4f2:	2800      	cmp	r0, #0
+ 800a4f4:	d1f3      	bne.n	800a4de <HAL_UART_Transmit_DMA+0x5a>
+ 800a4f6:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 800a4f8:	2002      	movs	r0, #2
+ 800a4fa:	e7fc      	b.n	800a4f6 <HAL_UART_Transmit_DMA+0x72>
+ 800a4fc:	0800a509 	.word	0x0800a509
+ 800a500:	0800a551 	.word	0x0800a551
+ 800a504:	0800a55d 	.word	0x0800a55d
+
+0800a508 <UART_DMATransmitCplt>:
+ 800a508:	b508      	push	{r3, lr}
+ 800a50a:	4603      	mov	r3, r0
+ 800a50c:	6a80      	ldr	r0, [r0, #40]	; 0x28
+ 800a50e:	681b      	ldr	r3, [r3, #0]
+ 800a510:	681b      	ldr	r3, [r3, #0]
+ 800a512:	f013 0320 	ands.w	r3, r3, #32
+ 800a516:	d117      	bne.n	800a548 <UART_DMATransmitCplt+0x40>
+ 800a518:	f8a0 3056 	strh.w	r3, [r0, #86]	; 0x56
+ 800a51c:	6802      	ldr	r2, [r0, #0]
+ 800a51e:	f102 0308 	add.w	r3, r2, #8
+ 800a522:	e853 3f00 	ldrex	r3, [r3]
+ 800a526:	f023 0380 	bic.w	r3, r3, #128	; 0x80
+ 800a52a:	3208      	adds	r2, #8
+ 800a52c:	e842 3100 	strex	r1, r3, [r2]
+ 800a530:	6802      	ldr	r2, [r0, #0]
+ 800a532:	2900      	cmp	r1, #0
+ 800a534:	d1f2      	bne.n	800a51c <UART_DMATransmitCplt+0x14>
+ 800a536:	e852 3f00 	ldrex	r3, [r2]
+ 800a53a:	f043 0340 	orr.w	r3, r3, #64	; 0x40
+ 800a53e:	e842 3100 	strex	r1, r3, [r2]
+ 800a542:	2900      	cmp	r1, #0
+ 800a544:	d1f7      	bne.n	800a536 <UART_DMATransmitCplt+0x2e>
+ 800a546:	bd08      	pop	{r3, pc}
+ 800a548:	f7f8 fdf6 	bl	8003138 <HAL_UART_TxCpltCallback>
+ 800a54c:	e7fb      	b.n	800a546 <UART_DMATransmitCplt+0x3e>
+
+0800a54e <HAL_UART_TxHalfCpltCallback>:
+ 800a54e:	4770      	bx	lr
+
+0800a550 <UART_DMATxHalfCplt>:
+ 800a550:	b508      	push	{r3, lr}
+ 800a552:	6a80      	ldr	r0, [r0, #40]	; 0x28
+ 800a554:	f7ff fffb 	bl	800a54e <HAL_UART_TxHalfCpltCallback>
+ 800a558:	bd08      	pop	{r3, pc}
+
+0800a55a <HAL_UART_ErrorCallback>:
+ 800a55a:	4770      	bx	lr
+
+0800a55c <UART_DMAError>:
+ 800a55c:	6a80      	ldr	r0, [r0, #40]	; 0x28
+ 800a55e:	b538      	push	{r3, r4, r5, lr}
+ 800a560:	6804      	ldr	r4, [r0, #0]
+ 800a562:	f8d0 3088 	ldr.w	r3, [r0, #136]	; 0x88
+ 800a566:	f8d0 508c 	ldr.w	r5, [r0, #140]	; 0x8c
+ 800a56a:	68a2      	ldr	r2, [r4, #8]
+ 800a56c:	0612      	lsls	r2, r2, #24
+ 800a56e:	d506      	bpl.n	800a57e <UART_DMAError+0x22>
+ 800a570:	2b21      	cmp	r3, #33	; 0x21
+ 800a572:	d104      	bne.n	800a57e <UART_DMAError+0x22>
+ 800a574:	2300      	movs	r3, #0
+ 800a576:	f8a0 3056 	strh.w	r3, [r0, #86]	; 0x56
+ 800a57a:	f7ff ff3c 	bl	800a3f6 <UART_EndTxTransfer>
+ 800a57e:	68a3      	ldr	r3, [r4, #8]
+ 800a580:	065b      	lsls	r3, r3, #25
+ 800a582:	d506      	bpl.n	800a592 <UART_DMAError+0x36>
+ 800a584:	2d22      	cmp	r5, #34	; 0x22
+ 800a586:	d104      	bne.n	800a592 <UART_DMAError+0x36>
+ 800a588:	2300      	movs	r3, #0
+ 800a58a:	f8a0 305e 	strh.w	r3, [r0, #94]	; 0x5e
+ 800a58e:	f7ff ff4d 	bl	800a42c <UART_EndRxTransfer>
+ 800a592:	f8d0 3090 	ldr.w	r3, [r0, #144]	; 0x90
+ 800a596:	f043 0310 	orr.w	r3, r3, #16
+ 800a59a:	f8c0 3090 	str.w	r3, [r0, #144]	; 0x90
+ 800a59e:	f7ff ffdc 	bl	800a55a <HAL_UART_ErrorCallback>
+ 800a5a2:	bd38      	pop	{r3, r4, r5, pc}
+
+0800a5a4 <UART_DMAAbortOnError>:
+ 800a5a4:	b508      	push	{r3, lr}
+ 800a5a6:	6a80      	ldr	r0, [r0, #40]	; 0x28
+ 800a5a8:	2300      	movs	r3, #0
+ 800a5aa:	f8a0 305e 	strh.w	r3, [r0, #94]	; 0x5e
+ 800a5ae:	f8a0 3056 	strh.w	r3, [r0, #86]	; 0x56
+ 800a5b2:	f7ff ffd2 	bl	800a55a <HAL_UART_ErrorCallback>
+ 800a5b6:	bd08      	pop	{r3, pc}
+
+0800a5b8 <HAL_UARTEx_RxEventCallback>:
+ 800a5b8:	4770      	bx	lr
+	...
+
+0800a5bc <HAL_UART_IRQHandler>:
+ 800a5bc:	6803      	ldr	r3, [r0, #0]
+ 800a5be:	69d9      	ldr	r1, [r3, #28]
+ 800a5c0:	681a      	ldr	r2, [r3, #0]
+ 800a5c2:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800a5c6:	f640 060f 	movw	r6, #2063	; 0x80f
+ 800a5ca:	4231      	tst	r1, r6
+ 800a5cc:	689d      	ldr	r5, [r3, #8]
+ 800a5ce:	4604      	mov	r4, r0
+ 800a5d0:	d110      	bne.n	800a5f4 <HAL_UART_IRQHandler+0x38>
+ 800a5d2:	068e      	lsls	r6, r1, #26
+ 800a5d4:	f140 8097 	bpl.w	800a706 <HAL_UART_IRQHandler+0x14a>
+ 800a5d8:	f002 0620 	and.w	r6, r2, #32
+ 800a5dc:	f005 5780 	and.w	r7, r5, #268435456	; 0x10000000
+ 800a5e0:	433e      	orrs	r6, r7
+ 800a5e2:	f000 8090 	beq.w	800a706 <HAL_UART_IRQHandler+0x14a>
+ 800a5e6:	6f43      	ldr	r3, [r0, #116]	; 0x74
+ 800a5e8:	2b00      	cmp	r3, #0
+ 800a5ea:	f000 8085 	beq.w	800a6f8 <HAL_UART_IRQHandler+0x13c>
+ 800a5ee:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
+ 800a5f2:	4718      	bx	r3
+ 800a5f4:	4eab      	ldr	r6, [pc, #684]	; (800a8a4 <HAL_UART_IRQHandler+0x2e8>)
+ 800a5f6:	48ac      	ldr	r0, [pc, #688]	; (800a8a8 <HAL_UART_IRQHandler+0x2ec>)
+ 800a5f8:	402e      	ands	r6, r5
+ 800a5fa:	4010      	ands	r0, r2
+ 800a5fc:	4330      	orrs	r0, r6
+ 800a5fe:	f000 8082 	beq.w	800a706 <HAL_UART_IRQHandler+0x14a>
+ 800a602:	07cf      	lsls	r7, r1, #31
+ 800a604:	d509      	bpl.n	800a61a <HAL_UART_IRQHandler+0x5e>
+ 800a606:	05d0      	lsls	r0, r2, #23
+ 800a608:	d507      	bpl.n	800a61a <HAL_UART_IRQHandler+0x5e>
+ 800a60a:	2001      	movs	r0, #1
+ 800a60c:	6218      	str	r0, [r3, #32]
+ 800a60e:	f8d4 0090 	ldr.w	r0, [r4, #144]	; 0x90
+ 800a612:	f040 0001 	orr.w	r0, r0, #1
+ 800a616:	f8c4 0090 	str.w	r0, [r4, #144]	; 0x90
+ 800a61a:	078f      	lsls	r7, r1, #30
+ 800a61c:	d509      	bpl.n	800a632 <HAL_UART_IRQHandler+0x76>
+ 800a61e:	07e8      	lsls	r0, r5, #31
+ 800a620:	d507      	bpl.n	800a632 <HAL_UART_IRQHandler+0x76>
+ 800a622:	2002      	movs	r0, #2
+ 800a624:	6218      	str	r0, [r3, #32]
+ 800a626:	f8d4 0090 	ldr.w	r0, [r4, #144]	; 0x90
+ 800a62a:	f040 0004 	orr.w	r0, r0, #4
+ 800a62e:	f8c4 0090 	str.w	r0, [r4, #144]	; 0x90
+ 800a632:	074f      	lsls	r7, r1, #29
+ 800a634:	d509      	bpl.n	800a64a <HAL_UART_IRQHandler+0x8e>
+ 800a636:	07e8      	lsls	r0, r5, #31
+ 800a638:	d507      	bpl.n	800a64a <HAL_UART_IRQHandler+0x8e>
+ 800a63a:	2004      	movs	r0, #4
+ 800a63c:	6218      	str	r0, [r3, #32]
+ 800a63e:	f8d4 0090 	ldr.w	r0, [r4, #144]	; 0x90
+ 800a642:	f040 0002 	orr.w	r0, r0, #2
+ 800a646:	f8c4 0090 	str.w	r0, [r4, #144]	; 0x90
+ 800a64a:	070f      	lsls	r7, r1, #28
+ 800a64c:	d50b      	bpl.n	800a666 <HAL_UART_IRQHandler+0xaa>
+ 800a64e:	f002 0020 	and.w	r0, r2, #32
+ 800a652:	4330      	orrs	r0, r6
+ 800a654:	d007      	beq.n	800a666 <HAL_UART_IRQHandler+0xaa>
+ 800a656:	2008      	movs	r0, #8
+ 800a658:	6218      	str	r0, [r3, #32]
+ 800a65a:	f8d4 0090 	ldr.w	r0, [r4, #144]	; 0x90
+ 800a65e:	f040 0008 	orr.w	r0, r0, #8
+ 800a662:	f8c4 0090 	str.w	r0, [r4, #144]	; 0x90
+ 800a666:	050e      	lsls	r6, r1, #20
+ 800a668:	d50a      	bpl.n	800a680 <HAL_UART_IRQHandler+0xc4>
+ 800a66a:	0150      	lsls	r0, r2, #5
+ 800a66c:	d508      	bpl.n	800a680 <HAL_UART_IRQHandler+0xc4>
+ 800a66e:	f44f 6000 	mov.w	r0, #2048	; 0x800
+ 800a672:	6218      	str	r0, [r3, #32]
+ 800a674:	f8d4 3090 	ldr.w	r3, [r4, #144]	; 0x90
+ 800a678:	f043 0320 	orr.w	r3, r3, #32
+ 800a67c:	f8c4 3090 	str.w	r3, [r4, #144]	; 0x90
+ 800a680:	f8d4 3090 	ldr.w	r3, [r4, #144]	; 0x90
+ 800a684:	2b00      	cmp	r3, #0
+ 800a686:	d037      	beq.n	800a6f8 <HAL_UART_IRQHandler+0x13c>
+ 800a688:	068b      	lsls	r3, r1, #26
+ 800a68a:	d509      	bpl.n	800a6a0 <HAL_UART_IRQHandler+0xe4>
+ 800a68c:	f002 0220 	and.w	r2, r2, #32
+ 800a690:	f005 5580 	and.w	r5, r5, #268435456	; 0x10000000
+ 800a694:	432a      	orrs	r2, r5
+ 800a696:	d003      	beq.n	800a6a0 <HAL_UART_IRQHandler+0xe4>
+ 800a698:	6f63      	ldr	r3, [r4, #116]	; 0x74
+ 800a69a:	b10b      	cbz	r3, 800a6a0 <HAL_UART_IRQHandler+0xe4>
+ 800a69c:	4620      	mov	r0, r4
+ 800a69e:	4798      	blx	r3
+ 800a6a0:	6826      	ldr	r6, [r4, #0]
+ 800a6a2:	f8d4 2090 	ldr.w	r2, [r4, #144]	; 0x90
+ 800a6a6:	68b3      	ldr	r3, [r6, #8]
+ 800a6a8:	f002 0228 	and.w	r2, r2, #40	; 0x28
+ 800a6ac:	f003 0340 	and.w	r3, r3, #64	; 0x40
+ 800a6b0:	ea53 0502 	orrs.w	r5, r3, r2
+ 800a6b4:	4620      	mov	r0, r4
+ 800a6b6:	d021      	beq.n	800a6fc <HAL_UART_IRQHandler+0x140>
+ 800a6b8:	f7ff feb8 	bl	800a42c <UART_EndRxTransfer>
+ 800a6bc:	68b3      	ldr	r3, [r6, #8]
+ 800a6be:	065f      	lsls	r7, r3, #25
+ 800a6c0:	d517      	bpl.n	800a6f2 <HAL_UART_IRQHandler+0x136>
+ 800a6c2:	6822      	ldr	r2, [r4, #0]
+ 800a6c4:	f102 0308 	add.w	r3, r2, #8
+ 800a6c8:	e853 3f00 	ldrex	r3, [r3]
+ 800a6cc:	f023 0340 	bic.w	r3, r3, #64	; 0x40
+ 800a6d0:	3208      	adds	r2, #8
+ 800a6d2:	e842 3100 	strex	r1, r3, [r2]
+ 800a6d6:	2900      	cmp	r1, #0
+ 800a6d8:	d1f3      	bne.n	800a6c2 <HAL_UART_IRQHandler+0x106>
+ 800a6da:	f8d4 0080 	ldr.w	r0, [r4, #128]	; 0x80
+ 800a6de:	b140      	cbz	r0, 800a6f2 <HAL_UART_IRQHandler+0x136>
+ 800a6e0:	4b72      	ldr	r3, [pc, #456]	; (800a8ac <HAL_UART_IRQHandler+0x2f0>)
+ 800a6e2:	6383      	str	r3, [r0, #56]	; 0x38
+ 800a6e4:	f7fd fdad 	bl	8008242 <HAL_DMA_Abort_IT>
+ 800a6e8:	b130      	cbz	r0, 800a6f8 <HAL_UART_IRQHandler+0x13c>
+ 800a6ea:	f8d4 0080 	ldr.w	r0, [r4, #128]	; 0x80
+ 800a6ee:	6b83      	ldr	r3, [r0, #56]	; 0x38
+ 800a6f0:	e77d      	b.n	800a5ee <HAL_UART_IRQHandler+0x32>
+ 800a6f2:	4620      	mov	r0, r4
+ 800a6f4:	f7ff ff31 	bl	800a55a <HAL_UART_ErrorCallback>
+ 800a6f8:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800a6fc:	f7ff ff2d 	bl	800a55a <HAL_UART_ErrorCallback>
+ 800a700:	f8c4 5090 	str.w	r5, [r4, #144]	; 0x90
+ 800a704:	e7f8      	b.n	800a6f8 <HAL_UART_IRQHandler+0x13c>
+ 800a706:	6ee0      	ldr	r0, [r4, #108]	; 0x6c
+ 800a708:	2801      	cmp	r0, #1
+ 800a70a:	f040 8089 	bne.w	800a820 <HAL_UART_IRQHandler+0x264>
+ 800a70e:	06ce      	lsls	r6, r1, #27
+ 800a710:	f140 8086 	bpl.w	800a820 <HAL_UART_IRQHandler+0x264>
+ 800a714:	06d0      	lsls	r0, r2, #27
+ 800a716:	f140 8083 	bpl.w	800a820 <HAL_UART_IRQHandler+0x264>
+ 800a71a:	2210      	movs	r2, #16
+ 800a71c:	621a      	str	r2, [r3, #32]
+ 800a71e:	689a      	ldr	r2, [r3, #8]
+ 800a720:	0651      	lsls	r1, r2, #25
+ 800a722:	d54b      	bpl.n	800a7bc <HAL_UART_IRQHandler+0x200>
+ 800a724:	f8d4 2080 	ldr.w	r2, [r4, #128]	; 0x80
+ 800a728:	6811      	ldr	r1, [r2, #0]
+ 800a72a:	684a      	ldr	r2, [r1, #4]
+ 800a72c:	b292      	uxth	r2, r2
+ 800a72e:	2a00      	cmp	r2, #0
+ 800a730:	d0e2      	beq.n	800a6f8 <HAL_UART_IRQHandler+0x13c>
+ 800a732:	f8b4 005c 	ldrh.w	r0, [r4, #92]	; 0x5c
+ 800a736:	4290      	cmp	r0, r2
+ 800a738:	d9de      	bls.n	800a6f8 <HAL_UART_IRQHandler+0x13c>
+ 800a73a:	f8a4 205e 	strh.w	r2, [r4, #94]	; 0x5e
+ 800a73e:	680a      	ldr	r2, [r1, #0]
+ 800a740:	0692      	lsls	r2, r2, #26
+ 800a742:	d42f      	bmi.n	800a7a4 <HAL_UART_IRQHandler+0x1e8>
+ 800a744:	e853 2f00 	ldrex	r2, [r3]
+ 800a748:	f422 7280 	bic.w	r2, r2, #256	; 0x100
+ 800a74c:	e843 2100 	strex	r1, r2, [r3]
+ 800a750:	2900      	cmp	r1, #0
+ 800a752:	d1f7      	bne.n	800a744 <HAL_UART_IRQHandler+0x188>
+ 800a754:	f103 0208 	add.w	r2, r3, #8
+ 800a758:	e852 2f00 	ldrex	r2, [r2]
+ 800a75c:	f022 0201 	bic.w	r2, r2, #1
+ 800a760:	f103 0008 	add.w	r0, r3, #8
+ 800a764:	e840 2100 	strex	r1, r2, [r0]
+ 800a768:	2900      	cmp	r1, #0
+ 800a76a:	d1f3      	bne.n	800a754 <HAL_UART_IRQHandler+0x198>
+ 800a76c:	f103 0208 	add.w	r2, r3, #8
+ 800a770:	e852 2f00 	ldrex	r2, [r2]
+ 800a774:	f022 0240 	bic.w	r2, r2, #64	; 0x40
+ 800a778:	f103 0008 	add.w	r0, r3, #8
+ 800a77c:	e840 2100 	strex	r1, r2, [r0]
+ 800a780:	2900      	cmp	r1, #0
+ 800a782:	d1f3      	bne.n	800a76c <HAL_UART_IRQHandler+0x1b0>
+ 800a784:	2220      	movs	r2, #32
+ 800a786:	f8c4 208c 	str.w	r2, [r4, #140]	; 0x8c
+ 800a78a:	66e1      	str	r1, [r4, #108]	; 0x6c
+ 800a78c:	e853 2f00 	ldrex	r2, [r3]
+ 800a790:	f022 0210 	bic.w	r2, r2, #16
+ 800a794:	e843 2100 	strex	r1, r2, [r3]
+ 800a798:	2900      	cmp	r1, #0
+ 800a79a:	d1f7      	bne.n	800a78c <HAL_UART_IRQHandler+0x1d0>
+ 800a79c:	f8d4 0080 	ldr.w	r0, [r4, #128]	; 0x80
+ 800a7a0:	f7fd fd1a 	bl	80081d8 <HAL_DMA_Abort>
+ 800a7a4:	2302      	movs	r3, #2
+ 800a7a6:	6723      	str	r3, [r4, #112]	; 0x70
+ 800a7a8:	f8b4 305e 	ldrh.w	r3, [r4, #94]	; 0x5e
+ 800a7ac:	f8b4 105c 	ldrh.w	r1, [r4, #92]	; 0x5c
+ 800a7b0:	1ac9      	subs	r1, r1, r3
+ 800a7b2:	b289      	uxth	r1, r1
+ 800a7b4:	4620      	mov	r0, r4
+ 800a7b6:	f7ff feff 	bl	800a5b8 <HAL_UARTEx_RxEventCallback>
+ 800a7ba:	e79d      	b.n	800a6f8 <HAL_UART_IRQHandler+0x13c>
+ 800a7bc:	f8b4 205e 	ldrh.w	r2, [r4, #94]	; 0x5e
+ 800a7c0:	f8b4 005e 	ldrh.w	r0, [r4, #94]	; 0x5e
+ 800a7c4:	f8b4 105c 	ldrh.w	r1, [r4, #92]	; 0x5c
+ 800a7c8:	b280      	uxth	r0, r0
+ 800a7ca:	b292      	uxth	r2, r2
+ 800a7cc:	2800      	cmp	r0, #0
+ 800a7ce:	d093      	beq.n	800a6f8 <HAL_UART_IRQHandler+0x13c>
+ 800a7d0:	1a89      	subs	r1, r1, r2
+ 800a7d2:	b289      	uxth	r1, r1
+ 800a7d4:	2900      	cmp	r1, #0
+ 800a7d6:	d08f      	beq.n	800a6f8 <HAL_UART_IRQHandler+0x13c>
+ 800a7d8:	e853 2f00 	ldrex	r2, [r3]
+ 800a7dc:	f422 7290 	bic.w	r2, r2, #288	; 0x120
+ 800a7e0:	e843 2000 	strex	r0, r2, [r3]
+ 800a7e4:	2800      	cmp	r0, #0
+ 800a7e6:	d1f7      	bne.n	800a7d8 <HAL_UART_IRQHandler+0x21c>
+ 800a7e8:	4d31      	ldr	r5, [pc, #196]	; (800a8b0 <HAL_UART_IRQHandler+0x2f4>)
+ 800a7ea:	f103 0208 	add.w	r2, r3, #8
+ 800a7ee:	e852 2f00 	ldrex	r2, [r2]
+ 800a7f2:	402a      	ands	r2, r5
+ 800a7f4:	f103 0608 	add.w	r6, r3, #8
+ 800a7f8:	e846 2000 	strex	r0, r2, [r6]
+ 800a7fc:	2800      	cmp	r0, #0
+ 800a7fe:	d1f4      	bne.n	800a7ea <HAL_UART_IRQHandler+0x22e>
+ 800a800:	2220      	movs	r2, #32
+ 800a802:	f8c4 208c 	str.w	r2, [r4, #140]	; 0x8c
+ 800a806:	6760      	str	r0, [r4, #116]	; 0x74
+ 800a808:	66e0      	str	r0, [r4, #108]	; 0x6c
+ 800a80a:	e853 2f00 	ldrex	r2, [r3]
+ 800a80e:	f022 0210 	bic.w	r2, r2, #16
+ 800a812:	e843 2000 	strex	r0, r2, [r3]
+ 800a816:	2800      	cmp	r0, #0
+ 800a818:	d1f7      	bne.n	800a80a <HAL_UART_IRQHandler+0x24e>
+ 800a81a:	2302      	movs	r3, #2
+ 800a81c:	6723      	str	r3, [r4, #112]	; 0x70
+ 800a81e:	e7c9      	b.n	800a7b4 <HAL_UART_IRQHandler+0x1f8>
+ 800a820:	02cf      	lsls	r7, r1, #11
+ 800a822:	d509      	bpl.n	800a838 <HAL_UART_IRQHandler+0x27c>
+ 800a824:	026e      	lsls	r6, r5, #9
+ 800a826:	d507      	bpl.n	800a838 <HAL_UART_IRQHandler+0x27c>
+ 800a828:	f44f 1280 	mov.w	r2, #1048576	; 0x100000
+ 800a82c:	4620      	mov	r0, r4
+ 800a82e:	621a      	str	r2, [r3, #32]
+ 800a830:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
+ 800a834:	f000 bda0 	b.w	800b378 <HAL_UARTEx_WakeupCallback>
+ 800a838:	0608      	lsls	r0, r1, #24
+ 800a83a:	d50b      	bpl.n	800a854 <HAL_UART_IRQHandler+0x298>
+ 800a83c:	f002 0080 	and.w	r0, r2, #128	; 0x80
+ 800a840:	f405 0500 	and.w	r5, r5, #8388608	; 0x800000
+ 800a844:	4328      	orrs	r0, r5
+ 800a846:	d005      	beq.n	800a854 <HAL_UART_IRQHandler+0x298>
+ 800a848:	6fa3      	ldr	r3, [r4, #120]	; 0x78
+ 800a84a:	2b00      	cmp	r3, #0
+ 800a84c:	f43f af54 	beq.w	800a6f8 <HAL_UART_IRQHandler+0x13c>
+ 800a850:	4620      	mov	r0, r4
+ 800a852:	e6cc      	b.n	800a5ee <HAL_UART_IRQHandler+0x32>
+ 800a854:	064f      	lsls	r7, r1, #25
+ 800a856:	d511      	bpl.n	800a87c <HAL_UART_IRQHandler+0x2c0>
+ 800a858:	0656      	lsls	r6, r2, #25
+ 800a85a:	d50f      	bpl.n	800a87c <HAL_UART_IRQHandler+0x2c0>
+ 800a85c:	e853 2f00 	ldrex	r2, [r3]
+ 800a860:	f022 0240 	bic.w	r2, r2, #64	; 0x40
+ 800a864:	e843 2100 	strex	r1, r2, [r3]
+ 800a868:	2900      	cmp	r1, #0
+ 800a86a:	d1f7      	bne.n	800a85c <HAL_UART_IRQHandler+0x2a0>
+ 800a86c:	2320      	movs	r3, #32
+ 800a86e:	f8c4 3088 	str.w	r3, [r4, #136]	; 0x88
+ 800a872:	67a1      	str	r1, [r4, #120]	; 0x78
+ 800a874:	4620      	mov	r0, r4
+ 800a876:	f7f8 fc5f 	bl	8003138 <HAL_UART_TxCpltCallback>
+ 800a87a:	e73d      	b.n	800a6f8 <HAL_UART_IRQHandler+0x13c>
+ 800a87c:	020d      	lsls	r5, r1, #8
+ 800a87e:	d506      	bpl.n	800a88e <HAL_UART_IRQHandler+0x2d2>
+ 800a880:	0050      	lsls	r0, r2, #1
+ 800a882:	d504      	bpl.n	800a88e <HAL_UART_IRQHandler+0x2d2>
+ 800a884:	4620      	mov	r0, r4
+ 800a886:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
+ 800a88a:	f000 bd77 	b.w	800b37c <HAL_UARTEx_TxFifoEmptyCallback>
+ 800a88e:	01cb      	lsls	r3, r1, #7
+ 800a890:	f57f af32 	bpl.w	800a6f8 <HAL_UART_IRQHandler+0x13c>
+ 800a894:	2a00      	cmp	r2, #0
+ 800a896:	f6bf af2f 	bge.w	800a6f8 <HAL_UART_IRQHandler+0x13c>
+ 800a89a:	4620      	mov	r0, r4
+ 800a89c:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
+ 800a8a0:	f000 bd6b 	b.w	800b37a <HAL_UARTEx_RxFifoFullCallback>
+ 800a8a4:	10000001 	.word	0x10000001
+ 800a8a8:	04000120 	.word	0x04000120
+ 800a8ac:	0800a5a5 	.word	0x0800a5a5
+ 800a8b0:	effffffe 	.word	0xeffffffe
+
+0800a8b4 <UART_RxISR_8BIT>:
+ 800a8b4:	f8d0 208c 	ldr.w	r2, [r0, #140]	; 0x8c
+ 800a8b8:	f8b0 1060 	ldrh.w	r1, [r0, #96]	; 0x60
+ 800a8bc:	2a22      	cmp	r2, #34	; 0x22
+ 800a8be:	b508      	push	{r3, lr}
+ 800a8c0:	6803      	ldr	r3, [r0, #0]
+ 800a8c2:	d155      	bne.n	800a970 <UART_RxISR_8BIT+0xbc>
+ 800a8c4:	6a5b      	ldr	r3, [r3, #36]	; 0x24
+ 800a8c6:	6d82      	ldr	r2, [r0, #88]	; 0x58
+ 800a8c8:	400b      	ands	r3, r1
+ 800a8ca:	7013      	strb	r3, [r2, #0]
+ 800a8cc:	6d83      	ldr	r3, [r0, #88]	; 0x58
+ 800a8ce:	3301      	adds	r3, #1
+ 800a8d0:	6583      	str	r3, [r0, #88]	; 0x58
+ 800a8d2:	f8b0 305e 	ldrh.w	r3, [r0, #94]	; 0x5e
+ 800a8d6:	3b01      	subs	r3, #1
+ 800a8d8:	b29b      	uxth	r3, r3
+ 800a8da:	f8a0 305e 	strh.w	r3, [r0, #94]	; 0x5e
+ 800a8de:	f8b0 305e 	ldrh.w	r3, [r0, #94]	; 0x5e
+ 800a8e2:	b29b      	uxth	r3, r3
+ 800a8e4:	2b00      	cmp	r3, #0
+ 800a8e6:	d142      	bne.n	800a96e <UART_RxISR_8BIT+0xba>
+ 800a8e8:	6802      	ldr	r2, [r0, #0]
+ 800a8ea:	e852 3f00 	ldrex	r3, [r2]
+ 800a8ee:	f423 7390 	bic.w	r3, r3, #288	; 0x120
+ 800a8f2:	e842 3100 	strex	r1, r3, [r2]
+ 800a8f6:	6803      	ldr	r3, [r0, #0]
+ 800a8f8:	2900      	cmp	r1, #0
+ 800a8fa:	d1f5      	bne.n	800a8e8 <UART_RxISR_8BIT+0x34>
+ 800a8fc:	f103 0208 	add.w	r2, r3, #8
+ 800a900:	e852 2f00 	ldrex	r2, [r2]
+ 800a904:	f022 0201 	bic.w	r2, r2, #1
+ 800a908:	f103 0c08 	add.w	ip, r3, #8
+ 800a90c:	e84c 2100 	strex	r1, r2, [ip]
+ 800a910:	2900      	cmp	r1, #0
+ 800a912:	d1f3      	bne.n	800a8fc <UART_RxISR_8BIT+0x48>
+ 800a914:	2220      	movs	r2, #32
+ 800a916:	f8c0 208c 	str.w	r2, [r0, #140]	; 0x8c
+ 800a91a:	4a18      	ldr	r2, [pc, #96]	; (800a97c <UART_RxISR_8BIT+0xc8>)
+ 800a91c:	6741      	str	r1, [r0, #116]	; 0x74
+ 800a91e:	4293      	cmp	r3, r2
+ 800a920:	6701      	str	r1, [r0, #112]	; 0x70
+ 800a922:	d105      	bne.n	800a930 <UART_RxISR_8BIT+0x7c>
+ 800a924:	6ec2      	ldr	r2, [r0, #108]	; 0x6c
+ 800a926:	2a01      	cmp	r2, #1
+ 800a928:	d00e      	beq.n	800a948 <UART_RxISR_8BIT+0x94>
+ 800a92a:	f7f8 fc13 	bl	8003154 <HAL_UART_RxCpltCallback>
+ 800a92e:	e01e      	b.n	800a96e <UART_RxISR_8BIT+0xba>
+ 800a930:	685a      	ldr	r2, [r3, #4]
+ 800a932:	0211      	lsls	r1, r2, #8
+ 800a934:	d5f6      	bpl.n	800a924 <UART_RxISR_8BIT+0x70>
+ 800a936:	e853 2f00 	ldrex	r2, [r3]
+ 800a93a:	f022 6280 	bic.w	r2, r2, #67108864	; 0x4000000
+ 800a93e:	e843 2100 	strex	r1, r2, [r3]
+ 800a942:	2900      	cmp	r1, #0
+ 800a944:	d1f7      	bne.n	800a936 <UART_RxISR_8BIT+0x82>
+ 800a946:	e7ed      	b.n	800a924 <UART_RxISR_8BIT+0x70>
+ 800a948:	2200      	movs	r2, #0
+ 800a94a:	66c2      	str	r2, [r0, #108]	; 0x6c
+ 800a94c:	e853 2f00 	ldrex	r2, [r3]
+ 800a950:	f022 0210 	bic.w	r2, r2, #16
+ 800a954:	e843 2100 	strex	r1, r2, [r3]
+ 800a958:	2900      	cmp	r1, #0
+ 800a95a:	d1f7      	bne.n	800a94c <UART_RxISR_8BIT+0x98>
+ 800a95c:	69da      	ldr	r2, [r3, #28]
+ 800a95e:	f8b0 105c 	ldrh.w	r1, [r0, #92]	; 0x5c
+ 800a962:	06d2      	lsls	r2, r2, #27
+ 800a964:	bf44      	itt	mi
+ 800a966:	2210      	movmi	r2, #16
+ 800a968:	621a      	strmi	r2, [r3, #32]
+ 800a96a:	f7ff fe25 	bl	800a5b8 <HAL_UARTEx_RxEventCallback>
+ 800a96e:	bd08      	pop	{r3, pc}
+ 800a970:	699a      	ldr	r2, [r3, #24]
+ 800a972:	f042 0208 	orr.w	r2, r2, #8
+ 800a976:	619a      	str	r2, [r3, #24]
+ 800a978:	e7f9      	b.n	800a96e <UART_RxISR_8BIT+0xba>
+ 800a97a:	bf00      	nop
+ 800a97c:	40008000 	.word	0x40008000
+
+0800a980 <UART_RxISR_16BIT>:
+ 800a980:	f8d0 208c 	ldr.w	r2, [r0, #140]	; 0x8c
+ 800a984:	f8b0 1060 	ldrh.w	r1, [r0, #96]	; 0x60
+ 800a988:	2a22      	cmp	r2, #34	; 0x22
+ 800a98a:	b508      	push	{r3, lr}
+ 800a98c:	6803      	ldr	r3, [r0, #0]
+ 800a98e:	d152      	bne.n	800aa36 <UART_RxISR_16BIT+0xb6>
+ 800a990:	6a5a      	ldr	r2, [r3, #36]	; 0x24
+ 800a992:	4011      	ands	r1, r2
+ 800a994:	6d82      	ldr	r2, [r0, #88]	; 0x58
+ 800a996:	f822 1b02 	strh.w	r1, [r2], #2
+ 800a99a:	6582      	str	r2, [r0, #88]	; 0x58
+ 800a99c:	f8b0 205e 	ldrh.w	r2, [r0, #94]	; 0x5e
+ 800a9a0:	3a01      	subs	r2, #1
+ 800a9a2:	b292      	uxth	r2, r2
+ 800a9a4:	f8a0 205e 	strh.w	r2, [r0, #94]	; 0x5e
+ 800a9a8:	f8b0 205e 	ldrh.w	r2, [r0, #94]	; 0x5e
+ 800a9ac:	b292      	uxth	r2, r2
+ 800a9ae:	2a00      	cmp	r2, #0
+ 800a9b0:	d140      	bne.n	800aa34 <UART_RxISR_16BIT+0xb4>
+ 800a9b2:	e853 2f00 	ldrex	r2, [r3]
+ 800a9b6:	f422 7290 	bic.w	r2, r2, #288	; 0x120
+ 800a9ba:	e843 2100 	strex	r1, r2, [r3]
+ 800a9be:	2900      	cmp	r1, #0
+ 800a9c0:	d1f7      	bne.n	800a9b2 <UART_RxISR_16BIT+0x32>
+ 800a9c2:	f103 0208 	add.w	r2, r3, #8
+ 800a9c6:	e852 2f00 	ldrex	r2, [r2]
+ 800a9ca:	f022 0201 	bic.w	r2, r2, #1
+ 800a9ce:	f103 0c08 	add.w	ip, r3, #8
+ 800a9d2:	e84c 2100 	strex	r1, r2, [ip]
+ 800a9d6:	2900      	cmp	r1, #0
+ 800a9d8:	d1f3      	bne.n	800a9c2 <UART_RxISR_16BIT+0x42>
+ 800a9da:	2220      	movs	r2, #32
+ 800a9dc:	f8c0 208c 	str.w	r2, [r0, #140]	; 0x8c
+ 800a9e0:	4a17      	ldr	r2, [pc, #92]	; (800aa40 <UART_RxISR_16BIT+0xc0>)
+ 800a9e2:	6741      	str	r1, [r0, #116]	; 0x74
+ 800a9e4:	4293      	cmp	r3, r2
+ 800a9e6:	6701      	str	r1, [r0, #112]	; 0x70
+ 800a9e8:	d105      	bne.n	800a9f6 <UART_RxISR_16BIT+0x76>
+ 800a9ea:	6ec2      	ldr	r2, [r0, #108]	; 0x6c
+ 800a9ec:	2a01      	cmp	r2, #1
+ 800a9ee:	d00e      	beq.n	800aa0e <UART_RxISR_16BIT+0x8e>
+ 800a9f0:	f7f8 fbb0 	bl	8003154 <HAL_UART_RxCpltCallback>
+ 800a9f4:	e01e      	b.n	800aa34 <UART_RxISR_16BIT+0xb4>
+ 800a9f6:	685a      	ldr	r2, [r3, #4]
+ 800a9f8:	0211      	lsls	r1, r2, #8
+ 800a9fa:	d5f6      	bpl.n	800a9ea <UART_RxISR_16BIT+0x6a>
+ 800a9fc:	e853 2f00 	ldrex	r2, [r3]
+ 800aa00:	f022 6280 	bic.w	r2, r2, #67108864	; 0x4000000
+ 800aa04:	e843 2100 	strex	r1, r2, [r3]
+ 800aa08:	2900      	cmp	r1, #0
+ 800aa0a:	d1f7      	bne.n	800a9fc <UART_RxISR_16BIT+0x7c>
+ 800aa0c:	e7ed      	b.n	800a9ea <UART_RxISR_16BIT+0x6a>
+ 800aa0e:	2200      	movs	r2, #0
+ 800aa10:	66c2      	str	r2, [r0, #108]	; 0x6c
+ 800aa12:	e853 2f00 	ldrex	r2, [r3]
+ 800aa16:	f022 0210 	bic.w	r2, r2, #16
+ 800aa1a:	e843 2100 	strex	r1, r2, [r3]
+ 800aa1e:	2900      	cmp	r1, #0
+ 800aa20:	d1f7      	bne.n	800aa12 <UART_RxISR_16BIT+0x92>
+ 800aa22:	69da      	ldr	r2, [r3, #28]
+ 800aa24:	f8b0 105c 	ldrh.w	r1, [r0, #92]	; 0x5c
+ 800aa28:	06d2      	lsls	r2, r2, #27
+ 800aa2a:	bf44      	itt	mi
+ 800aa2c:	2210      	movmi	r2, #16
+ 800aa2e:	621a      	strmi	r2, [r3, #32]
+ 800aa30:	f7ff fdc2 	bl	800a5b8 <HAL_UARTEx_RxEventCallback>
+ 800aa34:	bd08      	pop	{r3, pc}
+ 800aa36:	699a      	ldr	r2, [r3, #24]
+ 800aa38:	f042 0208 	orr.w	r2, r2, #8
+ 800aa3c:	619a      	str	r2, [r3, #24]
+ 800aa3e:	e7f9      	b.n	800aa34 <UART_RxISR_16BIT+0xb4>
+ 800aa40:	40008000 	.word	0x40008000
+
+0800aa44 <UART_RxISR_8BIT_FIFOEN>:
+ 800aa44:	e92d 4ff7 	stmdb	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 800aa48:	6803      	ldr	r3, [r0, #0]
+ 800aa4a:	f8b0 8060 	ldrh.w	r8, [r0, #96]	; 0x60
+ 800aa4e:	69df      	ldr	r7, [r3, #28]
+ 800aa50:	681a      	ldr	r2, [r3, #0]
+ 800aa52:	689d      	ldr	r5, [r3, #8]
+ 800aa54:	f8d0 108c 	ldr.w	r1, [r0, #140]	; 0x8c
+ 800aa58:	9201      	str	r2, [sp, #4]
+ 800aa5a:	2922      	cmp	r1, #34	; 0x22
+ 800aa5c:	4604      	mov	r4, r0
+ 800aa5e:	f040 80b4 	bne.w	800abca <UART_RxISR_8BIT_FIFOEN+0x186>
+ 800aa62:	f8b0 9068 	ldrh.w	r9, [r0, #104]	; 0x68
+ 800aa66:	f8df a16c 	ldr.w	sl, [pc, #364]	; 800abd4 <UART_RxISR_8BIT_FIFOEN+0x190>
+ 800aa6a:	f8df b16c 	ldr.w	fp, [pc, #364]	; 800abd8 <UART_RxISR_8BIT_FIFOEN+0x194>
+ 800aa6e:	2600      	movs	r6, #0
+ 800aa70:	f1b9 0f00 	cmp.w	r9, #0
+ 800aa74:	d001      	beq.n	800aa7a <UART_RxISR_8BIT_FIFOEN+0x36>
+ 800aa76:	06bb      	lsls	r3, r7, #26
+ 800aa78:	d421      	bmi.n	800aabe <UART_RxISR_8BIT_FIFOEN+0x7a>
+ 800aa7a:	f8b4 305e 	ldrh.w	r3, [r4, #94]	; 0x5e
+ 800aa7e:	b29b      	uxth	r3, r3
+ 800aa80:	b1d3      	cbz	r3, 800aab8 <UART_RxISR_8BIT_FIFOEN+0x74>
+ 800aa82:	f8b4 2068 	ldrh.w	r2, [r4, #104]	; 0x68
+ 800aa86:	429a      	cmp	r2, r3
+ 800aa88:	d916      	bls.n	800aab8 <UART_RxISR_8BIT_FIFOEN+0x74>
+ 800aa8a:	6822      	ldr	r2, [r4, #0]
+ 800aa8c:	f102 0308 	add.w	r3, r2, #8
+ 800aa90:	e853 3f00 	ldrex	r3, [r3]
+ 800aa94:	f023 5380 	bic.w	r3, r3, #268435456	; 0x10000000
+ 800aa98:	3208      	adds	r2, #8
+ 800aa9a:	e842 3100 	strex	r1, r3, [r2]
+ 800aa9e:	6822      	ldr	r2, [r4, #0]
+ 800aaa0:	2900      	cmp	r1, #0
+ 800aaa2:	d1f2      	bne.n	800aa8a <UART_RxISR_8BIT_FIFOEN+0x46>
+ 800aaa4:	4b4d      	ldr	r3, [pc, #308]	; (800abdc <UART_RxISR_8BIT_FIFOEN+0x198>)
+ 800aaa6:	6763      	str	r3, [r4, #116]	; 0x74
+ 800aaa8:	e852 3f00 	ldrex	r3, [r2]
+ 800aaac:	f043 0320 	orr.w	r3, r3, #32
+ 800aab0:	e842 3100 	strex	r1, r3, [r2]
+ 800aab4:	2900      	cmp	r1, #0
+ 800aab6:	d1f7      	bne.n	800aaa8 <UART_RxISR_8BIT_FIFOEN+0x64>
+ 800aab8:	b003      	add	sp, #12
+ 800aaba:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 800aabe:	6823      	ldr	r3, [r4, #0]
+ 800aac0:	6da2      	ldr	r2, [r4, #88]	; 0x58
+ 800aac2:	6a5b      	ldr	r3, [r3, #36]	; 0x24
+ 800aac4:	ea03 0308 	and.w	r3, r3, r8
+ 800aac8:	7013      	strb	r3, [r2, #0]
+ 800aaca:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 800aacc:	3301      	adds	r3, #1
+ 800aace:	65a3      	str	r3, [r4, #88]	; 0x58
+ 800aad0:	f8b4 305e 	ldrh.w	r3, [r4, #94]	; 0x5e
+ 800aad4:	3b01      	subs	r3, #1
+ 800aad6:	b29b      	uxth	r3, r3
+ 800aad8:	f8a4 305e 	strh.w	r3, [r4, #94]	; 0x5e
+ 800aadc:	6823      	ldr	r3, [r4, #0]
+ 800aade:	69df      	ldr	r7, [r3, #28]
+ 800aae0:	0778      	lsls	r0, r7, #29
+ 800aae2:	d02c      	beq.n	800ab3e <UART_RxISR_8BIT_FIFOEN+0xfa>
+ 800aae4:	07f9      	lsls	r1, r7, #31
+ 800aae6:	d50a      	bpl.n	800aafe <UART_RxISR_8BIT_FIFOEN+0xba>
+ 800aae8:	9a01      	ldr	r2, [sp, #4]
+ 800aaea:	05d2      	lsls	r2, r2, #23
+ 800aaec:	d507      	bpl.n	800aafe <UART_RxISR_8BIT_FIFOEN+0xba>
+ 800aaee:	2101      	movs	r1, #1
+ 800aaf0:	6219      	str	r1, [r3, #32]
+ 800aaf2:	f8d4 1090 	ldr.w	r1, [r4, #144]	; 0x90
+ 800aaf6:	f041 0101 	orr.w	r1, r1, #1
+ 800aafa:	f8c4 1090 	str.w	r1, [r4, #144]	; 0x90
+ 800aafe:	07b8      	lsls	r0, r7, #30
+ 800ab00:	d509      	bpl.n	800ab16 <UART_RxISR_8BIT_FIFOEN+0xd2>
+ 800ab02:	07e9      	lsls	r1, r5, #31
+ 800ab04:	d507      	bpl.n	800ab16 <UART_RxISR_8BIT_FIFOEN+0xd2>
+ 800ab06:	2102      	movs	r1, #2
+ 800ab08:	6219      	str	r1, [r3, #32]
+ 800ab0a:	f8d4 1090 	ldr.w	r1, [r4, #144]	; 0x90
+ 800ab0e:	f041 0104 	orr.w	r1, r1, #4
+ 800ab12:	f8c4 1090 	str.w	r1, [r4, #144]	; 0x90
+ 800ab16:	077a      	lsls	r2, r7, #29
+ 800ab18:	d509      	bpl.n	800ab2e <UART_RxISR_8BIT_FIFOEN+0xea>
+ 800ab1a:	07e8      	lsls	r0, r5, #31
+ 800ab1c:	d507      	bpl.n	800ab2e <UART_RxISR_8BIT_FIFOEN+0xea>
+ 800ab1e:	2104      	movs	r1, #4
+ 800ab20:	6219      	str	r1, [r3, #32]
+ 800ab22:	f8d4 3090 	ldr.w	r3, [r4, #144]	; 0x90
+ 800ab26:	f043 0302 	orr.w	r3, r3, #2
+ 800ab2a:	f8c4 3090 	str.w	r3, [r4, #144]	; 0x90
+ 800ab2e:	f8d4 3090 	ldr.w	r3, [r4, #144]	; 0x90
+ 800ab32:	b123      	cbz	r3, 800ab3e <UART_RxISR_8BIT_FIFOEN+0xfa>
+ 800ab34:	4620      	mov	r0, r4
+ 800ab36:	f7ff fd10 	bl	800a55a <HAL_UART_ErrorCallback>
+ 800ab3a:	f8c4 6090 	str.w	r6, [r4, #144]	; 0x90
+ 800ab3e:	f8b4 305e 	ldrh.w	r3, [r4, #94]	; 0x5e
+ 800ab42:	b29b      	uxth	r3, r3
+ 800ab44:	2b00      	cmp	r3, #0
+ 800ab46:	d193      	bne.n	800aa70 <UART_RxISR_8BIT_FIFOEN+0x2c>
+ 800ab48:	6821      	ldr	r1, [r4, #0]
+ 800ab4a:	e851 3f00 	ldrex	r3, [r1]
+ 800ab4e:	f423 7380 	bic.w	r3, r3, #256	; 0x100
+ 800ab52:	e841 3000 	strex	r0, r3, [r1]
+ 800ab56:	6823      	ldr	r3, [r4, #0]
+ 800ab58:	2800      	cmp	r0, #0
+ 800ab5a:	d1f5      	bne.n	800ab48 <UART_RxISR_8BIT_FIFOEN+0x104>
+ 800ab5c:	f103 0208 	add.w	r2, r3, #8
+ 800ab60:	e852 1f00 	ldrex	r1, [r2]
+ 800ab64:	ea01 010a 	and.w	r1, r1, sl
+ 800ab68:	e842 1000 	strex	r0, r1, [r2]
+ 800ab6c:	2800      	cmp	r0, #0
+ 800ab6e:	d1f5      	bne.n	800ab5c <UART_RxISR_8BIT_FIFOEN+0x118>
+ 800ab70:	2120      	movs	r1, #32
+ 800ab72:	455b      	cmp	r3, fp
+ 800ab74:	f8c4 108c 	str.w	r1, [r4, #140]	; 0x8c
+ 800ab78:	6760      	str	r0, [r4, #116]	; 0x74
+ 800ab7a:	6720      	str	r0, [r4, #112]	; 0x70
+ 800ab7c:	d00a      	beq.n	800ab94 <UART_RxISR_8BIT_FIFOEN+0x150>
+ 800ab7e:	6859      	ldr	r1, [r3, #4]
+ 800ab80:	0209      	lsls	r1, r1, #8
+ 800ab82:	d507      	bpl.n	800ab94 <UART_RxISR_8BIT_FIFOEN+0x150>
+ 800ab84:	e853 1f00 	ldrex	r1, [r3]
+ 800ab88:	f021 6180 	bic.w	r1, r1, #67108864	; 0x4000000
+ 800ab8c:	e843 1000 	strex	r0, r1, [r3]
+ 800ab90:	2800      	cmp	r0, #0
+ 800ab92:	d1f7      	bne.n	800ab84 <UART_RxISR_8BIT_FIFOEN+0x140>
+ 800ab94:	6ee1      	ldr	r1, [r4, #108]	; 0x6c
+ 800ab96:	2901      	cmp	r1, #1
+ 800ab98:	d113      	bne.n	800abc2 <UART_RxISR_8BIT_FIFOEN+0x17e>
+ 800ab9a:	66e6      	str	r6, [r4, #108]	; 0x6c
+ 800ab9c:	e853 1f00 	ldrex	r1, [r3]
+ 800aba0:	f021 0110 	bic.w	r1, r1, #16
+ 800aba4:	e843 1000 	strex	r0, r1, [r3]
+ 800aba8:	2800      	cmp	r0, #0
+ 800abaa:	d1f7      	bne.n	800ab9c <UART_RxISR_8BIT_FIFOEN+0x158>
+ 800abac:	69d9      	ldr	r1, [r3, #28]
+ 800abae:	06ca      	lsls	r2, r1, #27
+ 800abb0:	bf44      	itt	mi
+ 800abb2:	2110      	movmi	r1, #16
+ 800abb4:	6219      	strmi	r1, [r3, #32]
+ 800abb6:	4620      	mov	r0, r4
+ 800abb8:	f8b4 105c 	ldrh.w	r1, [r4, #92]	; 0x5c
+ 800abbc:	f7ff fcfc 	bl	800a5b8 <HAL_UARTEx_RxEventCallback>
+ 800abc0:	e756      	b.n	800aa70 <UART_RxISR_8BIT_FIFOEN+0x2c>
+ 800abc2:	4620      	mov	r0, r4
+ 800abc4:	f7f8 fac6 	bl	8003154 <HAL_UART_RxCpltCallback>
+ 800abc8:	e752      	b.n	800aa70 <UART_RxISR_8BIT_FIFOEN+0x2c>
+ 800abca:	699a      	ldr	r2, [r3, #24]
+ 800abcc:	f042 0208 	orr.w	r2, r2, #8
+ 800abd0:	619a      	str	r2, [r3, #24]
+ 800abd2:	e771      	b.n	800aab8 <UART_RxISR_8BIT_FIFOEN+0x74>
+ 800abd4:	effffffe 	.word	0xeffffffe
+ 800abd8:	40008000 	.word	0x40008000
+ 800abdc:	0800a8b5 	.word	0x0800a8b5
+
+0800abe0 <UART_RxISR_16BIT_FIFOEN>:
+ 800abe0:	e92d 4ff7 	stmdb	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 800abe4:	6803      	ldr	r3, [r0, #0]
+ 800abe6:	f8b0 8060 	ldrh.w	r8, [r0, #96]	; 0x60
+ 800abea:	69df      	ldr	r7, [r3, #28]
+ 800abec:	681a      	ldr	r2, [r3, #0]
+ 800abee:	689d      	ldr	r5, [r3, #8]
+ 800abf0:	f8d0 108c 	ldr.w	r1, [r0, #140]	; 0x8c
+ 800abf4:	9201      	str	r2, [sp, #4]
+ 800abf6:	2922      	cmp	r1, #34	; 0x22
+ 800abf8:	4604      	mov	r4, r0
+ 800abfa:	f040 80b2 	bne.w	800ad62 <UART_RxISR_16BIT_FIFOEN+0x182>
+ 800abfe:	f8b0 9068 	ldrh.w	r9, [r0, #104]	; 0x68
+ 800ac02:	f8df a168 	ldr.w	sl, [pc, #360]	; 800ad6c <UART_RxISR_16BIT_FIFOEN+0x18c>
+ 800ac06:	f8df b168 	ldr.w	fp, [pc, #360]	; 800ad70 <UART_RxISR_16BIT_FIFOEN+0x190>
+ 800ac0a:	2600      	movs	r6, #0
+ 800ac0c:	f1b9 0f00 	cmp.w	r9, #0
+ 800ac10:	d001      	beq.n	800ac16 <UART_RxISR_16BIT_FIFOEN+0x36>
+ 800ac12:	06bb      	lsls	r3, r7, #26
+ 800ac14:	d421      	bmi.n	800ac5a <UART_RxISR_16BIT_FIFOEN+0x7a>
+ 800ac16:	f8b4 305e 	ldrh.w	r3, [r4, #94]	; 0x5e
+ 800ac1a:	b29b      	uxth	r3, r3
+ 800ac1c:	b1d3      	cbz	r3, 800ac54 <UART_RxISR_16BIT_FIFOEN+0x74>
+ 800ac1e:	f8b4 2068 	ldrh.w	r2, [r4, #104]	; 0x68
+ 800ac22:	429a      	cmp	r2, r3
+ 800ac24:	d916      	bls.n	800ac54 <UART_RxISR_16BIT_FIFOEN+0x74>
+ 800ac26:	6822      	ldr	r2, [r4, #0]
+ 800ac28:	f102 0308 	add.w	r3, r2, #8
+ 800ac2c:	e853 3f00 	ldrex	r3, [r3]
+ 800ac30:	f023 5380 	bic.w	r3, r3, #268435456	; 0x10000000
+ 800ac34:	3208      	adds	r2, #8
+ 800ac36:	e842 3100 	strex	r1, r3, [r2]
+ 800ac3a:	6822      	ldr	r2, [r4, #0]
+ 800ac3c:	2900      	cmp	r1, #0
+ 800ac3e:	d1f2      	bne.n	800ac26 <UART_RxISR_16BIT_FIFOEN+0x46>
+ 800ac40:	4b4c      	ldr	r3, [pc, #304]	; (800ad74 <UART_RxISR_16BIT_FIFOEN+0x194>)
+ 800ac42:	6763      	str	r3, [r4, #116]	; 0x74
+ 800ac44:	e852 3f00 	ldrex	r3, [r2]
+ 800ac48:	f043 0320 	orr.w	r3, r3, #32
+ 800ac4c:	e842 3100 	strex	r1, r3, [r2]
+ 800ac50:	2900      	cmp	r1, #0
+ 800ac52:	d1f7      	bne.n	800ac44 <UART_RxISR_16BIT_FIFOEN+0x64>
+ 800ac54:	b003      	add	sp, #12
+ 800ac56:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 800ac5a:	6823      	ldr	r3, [r4, #0]
+ 800ac5c:	6da2      	ldr	r2, [r4, #88]	; 0x58
+ 800ac5e:	6a59      	ldr	r1, [r3, #36]	; 0x24
+ 800ac60:	ea08 0101 	and.w	r1, r8, r1
+ 800ac64:	f822 1b02 	strh.w	r1, [r2], #2
+ 800ac68:	65a2      	str	r2, [r4, #88]	; 0x58
+ 800ac6a:	f8b4 205e 	ldrh.w	r2, [r4, #94]	; 0x5e
+ 800ac6e:	3a01      	subs	r2, #1
+ 800ac70:	b292      	uxth	r2, r2
+ 800ac72:	f8a4 205e 	strh.w	r2, [r4, #94]	; 0x5e
+ 800ac76:	69df      	ldr	r7, [r3, #28]
+ 800ac78:	0778      	lsls	r0, r7, #29
+ 800ac7a:	d02c      	beq.n	800acd6 <UART_RxISR_16BIT_FIFOEN+0xf6>
+ 800ac7c:	07f9      	lsls	r1, r7, #31
+ 800ac7e:	d50a      	bpl.n	800ac96 <UART_RxISR_16BIT_FIFOEN+0xb6>
+ 800ac80:	9a01      	ldr	r2, [sp, #4]
+ 800ac82:	05d2      	lsls	r2, r2, #23
+ 800ac84:	d507      	bpl.n	800ac96 <UART_RxISR_16BIT_FIFOEN+0xb6>
+ 800ac86:	2101      	movs	r1, #1
+ 800ac88:	6219      	str	r1, [r3, #32]
+ 800ac8a:	f8d4 1090 	ldr.w	r1, [r4, #144]	; 0x90
+ 800ac8e:	f041 0101 	orr.w	r1, r1, #1
+ 800ac92:	f8c4 1090 	str.w	r1, [r4, #144]	; 0x90
+ 800ac96:	07b8      	lsls	r0, r7, #30
+ 800ac98:	d509      	bpl.n	800acae <UART_RxISR_16BIT_FIFOEN+0xce>
+ 800ac9a:	07e9      	lsls	r1, r5, #31
+ 800ac9c:	d507      	bpl.n	800acae <UART_RxISR_16BIT_FIFOEN+0xce>
+ 800ac9e:	2102      	movs	r1, #2
+ 800aca0:	6219      	str	r1, [r3, #32]
+ 800aca2:	f8d4 1090 	ldr.w	r1, [r4, #144]	; 0x90
+ 800aca6:	f041 0104 	orr.w	r1, r1, #4
+ 800acaa:	f8c4 1090 	str.w	r1, [r4, #144]	; 0x90
+ 800acae:	077a      	lsls	r2, r7, #29
+ 800acb0:	d509      	bpl.n	800acc6 <UART_RxISR_16BIT_FIFOEN+0xe6>
+ 800acb2:	07e8      	lsls	r0, r5, #31
+ 800acb4:	d507      	bpl.n	800acc6 <UART_RxISR_16BIT_FIFOEN+0xe6>
+ 800acb6:	2104      	movs	r1, #4
+ 800acb8:	6219      	str	r1, [r3, #32]
+ 800acba:	f8d4 3090 	ldr.w	r3, [r4, #144]	; 0x90
+ 800acbe:	f043 0302 	orr.w	r3, r3, #2
+ 800acc2:	f8c4 3090 	str.w	r3, [r4, #144]	; 0x90
+ 800acc6:	f8d4 3090 	ldr.w	r3, [r4, #144]	; 0x90
+ 800acca:	b123      	cbz	r3, 800acd6 <UART_RxISR_16BIT_FIFOEN+0xf6>
+ 800accc:	4620      	mov	r0, r4
+ 800acce:	f7ff fc44 	bl	800a55a <HAL_UART_ErrorCallback>
+ 800acd2:	f8c4 6090 	str.w	r6, [r4, #144]	; 0x90
+ 800acd6:	f8b4 305e 	ldrh.w	r3, [r4, #94]	; 0x5e
+ 800acda:	b29b      	uxth	r3, r3
+ 800acdc:	2b00      	cmp	r3, #0
+ 800acde:	d195      	bne.n	800ac0c <UART_RxISR_16BIT_FIFOEN+0x2c>
+ 800ace0:	6821      	ldr	r1, [r4, #0]
+ 800ace2:	e851 3f00 	ldrex	r3, [r1]
+ 800ace6:	f423 7380 	bic.w	r3, r3, #256	; 0x100
+ 800acea:	e841 3000 	strex	r0, r3, [r1]
+ 800acee:	6823      	ldr	r3, [r4, #0]
+ 800acf0:	2800      	cmp	r0, #0
+ 800acf2:	d1f5      	bne.n	800ace0 <UART_RxISR_16BIT_FIFOEN+0x100>
+ 800acf4:	f103 0208 	add.w	r2, r3, #8
+ 800acf8:	e852 1f00 	ldrex	r1, [r2]
+ 800acfc:	ea01 010a 	and.w	r1, r1, sl
+ 800ad00:	e842 1000 	strex	r0, r1, [r2]
+ 800ad04:	2800      	cmp	r0, #0
+ 800ad06:	d1f5      	bne.n	800acf4 <UART_RxISR_16BIT_FIFOEN+0x114>
+ 800ad08:	2120      	movs	r1, #32
+ 800ad0a:	455b      	cmp	r3, fp
+ 800ad0c:	f8c4 108c 	str.w	r1, [r4, #140]	; 0x8c
+ 800ad10:	6760      	str	r0, [r4, #116]	; 0x74
+ 800ad12:	6720      	str	r0, [r4, #112]	; 0x70
+ 800ad14:	d00a      	beq.n	800ad2c <UART_RxISR_16BIT_FIFOEN+0x14c>
+ 800ad16:	6859      	ldr	r1, [r3, #4]
+ 800ad18:	0209      	lsls	r1, r1, #8
+ 800ad1a:	d507      	bpl.n	800ad2c <UART_RxISR_16BIT_FIFOEN+0x14c>
+ 800ad1c:	e853 1f00 	ldrex	r1, [r3]
+ 800ad20:	f021 6180 	bic.w	r1, r1, #67108864	; 0x4000000
+ 800ad24:	e843 1000 	strex	r0, r1, [r3]
+ 800ad28:	2800      	cmp	r0, #0
+ 800ad2a:	d1f7      	bne.n	800ad1c <UART_RxISR_16BIT_FIFOEN+0x13c>
+ 800ad2c:	6ee1      	ldr	r1, [r4, #108]	; 0x6c
+ 800ad2e:	2901      	cmp	r1, #1
+ 800ad30:	d113      	bne.n	800ad5a <UART_RxISR_16BIT_FIFOEN+0x17a>
+ 800ad32:	66e6      	str	r6, [r4, #108]	; 0x6c
+ 800ad34:	e853 1f00 	ldrex	r1, [r3]
+ 800ad38:	f021 0110 	bic.w	r1, r1, #16
+ 800ad3c:	e843 1000 	strex	r0, r1, [r3]
+ 800ad40:	2800      	cmp	r0, #0
+ 800ad42:	d1f7      	bne.n	800ad34 <UART_RxISR_16BIT_FIFOEN+0x154>
+ 800ad44:	69d9      	ldr	r1, [r3, #28]
+ 800ad46:	06ca      	lsls	r2, r1, #27
+ 800ad48:	bf44      	itt	mi
+ 800ad4a:	2110      	movmi	r1, #16
+ 800ad4c:	6219      	strmi	r1, [r3, #32]
+ 800ad4e:	4620      	mov	r0, r4
+ 800ad50:	f8b4 105c 	ldrh.w	r1, [r4, #92]	; 0x5c
+ 800ad54:	f7ff fc30 	bl	800a5b8 <HAL_UARTEx_RxEventCallback>
+ 800ad58:	e758      	b.n	800ac0c <UART_RxISR_16BIT_FIFOEN+0x2c>
+ 800ad5a:	4620      	mov	r0, r4
+ 800ad5c:	f7f8 f9fa 	bl	8003154 <HAL_UART_RxCpltCallback>
+ 800ad60:	e754      	b.n	800ac0c <UART_RxISR_16BIT_FIFOEN+0x2c>
+ 800ad62:	699a      	ldr	r2, [r3, #24]
+ 800ad64:	f042 0208 	orr.w	r2, r2, #8
+ 800ad68:	619a      	str	r2, [r3, #24]
+ 800ad6a:	e773      	b.n	800ac54 <UART_RxISR_16BIT_FIFOEN+0x74>
+ 800ad6c:	effffffe 	.word	0xeffffffe
+ 800ad70:	40008000 	.word	0x40008000
+ 800ad74:	0800a981 	.word	0x0800a981
+
+0800ad78 <UART_SetConfig>:
+ 800ad78:	b538      	push	{r3, r4, r5, lr}
+ 800ad7a:	4604      	mov	r4, r0
+ 800ad7c:	6803      	ldr	r3, [r0, #0]
+ 800ad7e:	6921      	ldr	r1, [r4, #16]
+ 800ad80:	68a2      	ldr	r2, [r4, #8]
+ 800ad82:	681d      	ldr	r5, [r3, #0]
+ 800ad84:	69c0      	ldr	r0, [r0, #28]
+ 800ad86:	430a      	orrs	r2, r1
+ 800ad88:	6961      	ldr	r1, [r4, #20]
+ 800ad8a:	430a      	orrs	r2, r1
+ 800ad8c:	497d      	ldr	r1, [pc, #500]	; (800af84 <UART_SetConfig+0x20c>)
+ 800ad8e:	4302      	orrs	r2, r0
+ 800ad90:	4029      	ands	r1, r5
+ 800ad92:	430a      	orrs	r2, r1
+ 800ad94:	601a      	str	r2, [r3, #0]
+ 800ad96:	685a      	ldr	r2, [r3, #4]
+ 800ad98:	68e1      	ldr	r1, [r4, #12]
+ 800ad9a:	f422 5240 	bic.w	r2, r2, #12288	; 0x3000
+ 800ad9e:	430a      	orrs	r2, r1
+ 800ada0:	605a      	str	r2, [r3, #4]
+ 800ada2:	4a79      	ldr	r2, [pc, #484]	; (800af88 <UART_SetConfig+0x210>)
+ 800ada4:	69a1      	ldr	r1, [r4, #24]
+ 800ada6:	4293      	cmp	r3, r2
+ 800ada8:	bf1c      	itt	ne
+ 800adaa:	6a22      	ldrne	r2, [r4, #32]
+ 800adac:	4311      	orrne	r1, r2
+ 800adae:	689a      	ldr	r2, [r3, #8]
+ 800adb0:	f022 426e 	bic.w	r2, r2, #3992977408	; 0xee000000
+ 800adb4:	f422 6230 	bic.w	r2, r2, #2816	; 0xb00
+ 800adb8:	430a      	orrs	r2, r1
+ 800adba:	609a      	str	r2, [r3, #8]
+ 800adbc:	6ada      	ldr	r2, [r3, #44]	; 0x2c
+ 800adbe:	6a61      	ldr	r1, [r4, #36]	; 0x24
+ 800adc0:	f022 020f 	bic.w	r2, r2, #15
+ 800adc4:	430a      	orrs	r2, r1
+ 800adc6:	62da      	str	r2, [r3, #44]	; 0x2c
+ 800adc8:	4a70      	ldr	r2, [pc, #448]	; (800af8c <UART_SetConfig+0x214>)
+ 800adca:	4293      	cmp	r3, r2
+ 800adcc:	d11c      	bne.n	800ae08 <UART_SetConfig+0x90>
+ 800adce:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800add2:	f8d3 3088 	ldr.w	r3, [r3, #136]	; 0x88
+ 800add6:	f003 0303 	and.w	r3, r3, #3
+ 800adda:	f443 3340 	orr.w	r3, r3, #196608	; 0x30000
+ 800adde:	f5a3 3340 	sub.w	r3, r3, #196608	; 0x30000
+ 800ade2:	3b01      	subs	r3, #1
+ 800ade4:	2b02      	cmp	r3, #2
+ 800ade6:	f200 80c7 	bhi.w	800af78 <UART_SetConfig+0x200>
+ 800adea:	4a69      	ldr	r2, [pc, #420]	; (800af90 <UART_SetConfig+0x218>)
+ 800adec:	5c9b      	ldrb	r3, [r3, r2]
+ 800adee:	f5b0 4f00 	cmp.w	r0, #32768	; 0x8000
+ 800adf2:	f040 8089 	bne.w	800af08 <UART_SetConfig+0x190>
+ 800adf6:	2b08      	cmp	r3, #8
+ 800adf8:	d824      	bhi.n	800ae44 <UART_SetConfig+0xcc>
+ 800adfa:	e8df f003 	tbb	[pc, r3]
+ 800adfe:	c061      	.short	0xc061
+ 800ae00:	23802383 	.word	0x23802383
+ 800ae04:	2323      	.short	0x2323
+ 800ae06:	65          	.byte	0x65
+ 800ae07:	00          	.byte	0x00
+ 800ae08:	4a62      	ldr	r2, [pc, #392]	; (800af94 <UART_SetConfig+0x21c>)
+ 800ae0a:	4293      	cmp	r3, r2
+ 800ae0c:	d109      	bne.n	800ae22 <UART_SetConfig+0xaa>
+ 800ae0e:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800ae12:	4a61      	ldr	r2, [pc, #388]	; (800af98 <UART_SetConfig+0x220>)
+ 800ae14:	f8d3 3088 	ldr.w	r3, [r3, #136]	; 0x88
+ 800ae18:	f003 030c 	and.w	r3, r3, #12
+ 800ae1c:	f443 2340 	orr.w	r3, r3, #786432	; 0xc0000
+ 800ae20:	e7e4      	b.n	800adec <UART_SetConfig+0x74>
+ 800ae22:	4a59      	ldr	r2, [pc, #356]	; (800af88 <UART_SetConfig+0x210>)
+ 800ae24:	4293      	cmp	r3, r2
+ 800ae26:	d10d      	bne.n	800ae44 <UART_SetConfig+0xcc>
+ 800ae28:	f04f 43b0 	mov.w	r3, #1476395008	; 0x58000000
+ 800ae2c:	f8d3 3088 	ldr.w	r3, [r3, #136]	; 0x88
+ 800ae30:	f403 6340 	and.w	r3, r3, #3072	; 0xc00
+ 800ae34:	f5b3 6f00 	cmp.w	r3, #2048	; 0x800
+ 800ae38:	d01a      	beq.n	800ae70 <UART_SetConfig+0xf8>
+ 800ae3a:	d805      	bhi.n	800ae48 <UART_SetConfig+0xd0>
+ 800ae3c:	b153      	cbz	r3, 800ae54 <UART_SetConfig+0xdc>
+ 800ae3e:	f5b3 6f80 	cmp.w	r3, #1024	; 0x400
+ 800ae42:	d012      	beq.n	800ae6a <UART_SetConfig+0xf2>
+ 800ae44:	2001      	movs	r0, #1
+ 800ae46:	e009      	b.n	800ae5c <UART_SetConfig+0xe4>
+ 800ae48:	f5b3 6f40 	cmp.w	r3, #3072	; 0xc00
+ 800ae4c:	d1fa      	bne.n	800ae44 <UART_SetConfig+0xcc>
+ 800ae4e:	f44f 4000 	mov.w	r0, #32768	; 0x8000
+ 800ae52:	e00e      	b.n	800ae72 <UART_SetConfig+0xfa>
+ 800ae54:	f7fe fcd2 	bl	80097fc <HAL_RCC_GetPCLK1Freq>
+ 800ae58:	b958      	cbnz	r0, 800ae72 <UART_SetConfig+0xfa>
+ 800ae5a:	2000      	movs	r0, #0
+ 800ae5c:	f04f 1301 	mov.w	r3, #65537	; 0x10001
+ 800ae60:	66a3      	str	r3, [r4, #104]	; 0x68
+ 800ae62:	2300      	movs	r3, #0
+ 800ae64:	e9c4 331d 	strd	r3, r3, [r4, #116]	; 0x74
+ 800ae68:	bd38      	pop	{r3, r4, r5, pc}
+ 800ae6a:	f7fe f8cf 	bl	800900c <HAL_RCC_GetSysClockFreq>
+ 800ae6e:	e7f3      	b.n	800ae58 <UART_SetConfig+0xe0>
+ 800ae70:	484a      	ldr	r0, [pc, #296]	; (800af9c <UART_SetConfig+0x224>)
+ 800ae72:	6865      	ldr	r5, [r4, #4]
+ 800ae74:	4b4a      	ldr	r3, [pc, #296]	; (800afa0 <UART_SetConfig+0x228>)
+ 800ae76:	6a62      	ldr	r2, [r4, #36]	; 0x24
+ 800ae78:	eb05 0145 	add.w	r1, r5, r5, lsl #1
+ 800ae7c:	f833 2012 	ldrh.w	r2, [r3, r2, lsl #1]
+ 800ae80:	fbb0 f3f2 	udiv	r3, r0, r2
+ 800ae84:	4299      	cmp	r1, r3
+ 800ae86:	d8dd      	bhi.n	800ae44 <UART_SetConfig+0xcc>
+ 800ae88:	ebb3 3f05 	cmp.w	r3, r5, lsl #12
+ 800ae8c:	d8da      	bhi.n	800ae44 <UART_SetConfig+0xcc>
+ 800ae8e:	2300      	movs	r3, #0
+ 800ae90:	4619      	mov	r1, r3
+ 800ae92:	f7f6 fe3d 	bl	8001b10 <__aeabi_uldivmod>
+ 800ae96:	0209      	lsls	r1, r1, #8
+ 800ae98:	ea41 6110 	orr.w	r1, r1, r0, lsr #24
+ 800ae9c:	086b      	lsrs	r3, r5, #1
+ 800ae9e:	0200      	lsls	r0, r0, #8
+ 800aea0:	18c0      	adds	r0, r0, r3
+ 800aea2:	462a      	mov	r2, r5
+ 800aea4:	f04f 0300 	mov.w	r3, #0
+ 800aea8:	f141 0100 	adc.w	r1, r1, #0
+ 800aeac:	f7f6 fe30 	bl	8001b10 <__aeabi_uldivmod>
+ 800aeb0:	4b3c      	ldr	r3, [pc, #240]	; (800afa4 <UART_SetConfig+0x22c>)
+ 800aeb2:	f5a0 7240 	sub.w	r2, r0, #768	; 0x300
+ 800aeb6:	429a      	cmp	r2, r3
+ 800aeb8:	d8c4      	bhi.n	800ae44 <UART_SetConfig+0xcc>
+ 800aeba:	6823      	ldr	r3, [r4, #0]
+ 800aebc:	60d8      	str	r0, [r3, #12]
+ 800aebe:	e7cc      	b.n	800ae5a <UART_SetConfig+0xe2>
+ 800aec0:	f7fe fc9c 	bl	80097fc <HAL_RCC_GetPCLK1Freq>
+ 800aec4:	2800      	cmp	r0, #0
+ 800aec6:	d0c8      	beq.n	800ae5a <UART_SetConfig+0xe2>
+ 800aec8:	6861      	ldr	r1, [r4, #4]
+ 800aeca:	4b35      	ldr	r3, [pc, #212]	; (800afa0 <UART_SetConfig+0x228>)
+ 800aecc:	6a62      	ldr	r2, [r4, #36]	; 0x24
+ 800aece:	f833 2012 	ldrh.w	r2, [r3, r2, lsl #1]
+ 800aed2:	fbb0 f2f2 	udiv	r2, r0, r2
+ 800aed6:	084b      	lsrs	r3, r1, #1
+ 800aed8:	eb03 0342 	add.w	r3, r3, r2, lsl #1
+ 800aedc:	f64f 72ef 	movw	r2, #65519	; 0xffef
+ 800aee0:	fbb3 f3f1 	udiv	r3, r3, r1
+ 800aee4:	f1a3 0110 	sub.w	r1, r3, #16
+ 800aee8:	4291      	cmp	r1, r2
+ 800aeea:	d8ab      	bhi.n	800ae44 <UART_SetConfig+0xcc>
+ 800aeec:	f023 020f 	bic.w	r2, r3, #15
+ 800aef0:	6821      	ldr	r1, [r4, #0]
+ 800aef2:	b292      	uxth	r2, r2
+ 800aef4:	f3c3 0342 	ubfx	r3, r3, #1, #3
+ 800aef8:	4313      	orrs	r3, r2
+ 800aefa:	60cb      	str	r3, [r1, #12]
+ 800aefc:	e7ad      	b.n	800ae5a <UART_SetConfig+0xe2>
+ 800aefe:	f7fe f885 	bl	800900c <HAL_RCC_GetSysClockFreq>
+ 800af02:	e7df      	b.n	800aec4 <UART_SetConfig+0x14c>
+ 800af04:	4825      	ldr	r0, [pc, #148]	; (800af9c <UART_SetConfig+0x224>)
+ 800af06:	e7df      	b.n	800aec8 <UART_SetConfig+0x150>
+ 800af08:	2b08      	cmp	r3, #8
+ 800af0a:	d89b      	bhi.n	800ae44 <UART_SetConfig+0xcc>
+ 800af0c:	a201      	add	r2, pc, #4	; (adr r2, 800af14 <UART_SetConfig+0x19c>)
+ 800af0e:	f852 f023 	ldr.w	pc, [r2, r3, lsl #2]
+ 800af12:	bf00      	nop
+ 800af14:	0800af5d 	.word	0x0800af5d
+ 800af18:	0800af69 	.word	0x0800af69
+ 800af1c:	0800af75 	.word	0x0800af75
+ 800af20:	0800ae45 	.word	0x0800ae45
+ 800af24:	0800af6f 	.word	0x0800af6f
+ 800af28:	0800ae45 	.word	0x0800ae45
+ 800af2c:	0800ae45 	.word	0x0800ae45
+ 800af30:	0800ae45 	.word	0x0800ae45
+ 800af34:	0800af39 	.word	0x0800af39
+ 800af38:	f44f 4000 	mov.w	r0, #32768	; 0x8000
+ 800af3c:	6863      	ldr	r3, [r4, #4]
+ 800af3e:	6a61      	ldr	r1, [r4, #36]	; 0x24
+ 800af40:	4a17      	ldr	r2, [pc, #92]	; (800afa0 <UART_SetConfig+0x228>)
+ 800af42:	f832 2011 	ldrh.w	r2, [r2, r1, lsl #1]
+ 800af46:	fbb0 f0f2 	udiv	r0, r0, r2
+ 800af4a:	eb00 0053 	add.w	r0, r0, r3, lsr #1
+ 800af4e:	fbb0 f0f3 	udiv	r0, r0, r3
+ 800af52:	f64f 73ef 	movw	r3, #65519	; 0xffef
+ 800af56:	f1a0 0210 	sub.w	r2, r0, #16
+ 800af5a:	e7ac      	b.n	800aeb6 <UART_SetConfig+0x13e>
+ 800af5c:	f7fe fc4e 	bl	80097fc <HAL_RCC_GetPCLK1Freq>
+ 800af60:	2800      	cmp	r0, #0
+ 800af62:	f43f af7a 	beq.w	800ae5a <UART_SetConfig+0xe2>
+ 800af66:	e7e9      	b.n	800af3c <UART_SetConfig+0x1c4>
+ 800af68:	f7fe fc58 	bl	800981c <HAL_RCC_GetPCLK2Freq>
+ 800af6c:	e7f8      	b.n	800af60 <UART_SetConfig+0x1e8>
+ 800af6e:	f7fe f84d 	bl	800900c <HAL_RCC_GetSysClockFreq>
+ 800af72:	e7f5      	b.n	800af60 <UART_SetConfig+0x1e8>
+ 800af74:	4809      	ldr	r0, [pc, #36]	; (800af9c <UART_SetConfig+0x224>)
+ 800af76:	e7e1      	b.n	800af3c <UART_SetConfig+0x1c4>
+ 800af78:	f5b0 4f00 	cmp.w	r0, #32768	; 0x8000
+ 800af7c:	d1f4      	bne.n	800af68 <UART_SetConfig+0x1f0>
+ 800af7e:	f7fe fc4d 	bl	800981c <HAL_RCC_GetPCLK2Freq>
+ 800af82:	e79f      	b.n	800aec4 <UART_SetConfig+0x14c>
+ 800af84:	cfff69f3 	.word	0xcfff69f3
+ 800af88:	40008000 	.word	0x40008000
+ 800af8c:	40013800 	.word	0x40013800
+ 800af90:	08015270 	.word	0x08015270
+ 800af94:	40004400 	.word	0x40004400
+ 800af98:	07f55273 	.word	0x07f55273
+ 800af9c:	00f42400 	.word	0x00f42400
+ 800afa0:	08015280 	.word	0x08015280
+ 800afa4:	000ffcff 	.word	0x000ffcff
+
+0800afa8 <UART_AdvFeatureConfig>:
+ 800afa8:	6a83      	ldr	r3, [r0, #40]	; 0x28
+ 800afaa:	07da      	lsls	r2, r3, #31
+ 800afac:	b510      	push	{r4, lr}
+ 800afae:	d506      	bpl.n	800afbe <UART_AdvFeatureConfig+0x16>
+ 800afb0:	6801      	ldr	r1, [r0, #0]
+ 800afb2:	6ac4      	ldr	r4, [r0, #44]	; 0x2c
+ 800afb4:	684a      	ldr	r2, [r1, #4]
+ 800afb6:	f422 3200 	bic.w	r2, r2, #131072	; 0x20000
+ 800afba:	4322      	orrs	r2, r4
+ 800afbc:	604a      	str	r2, [r1, #4]
+ 800afbe:	079c      	lsls	r4, r3, #30
+ 800afc0:	d506      	bpl.n	800afd0 <UART_AdvFeatureConfig+0x28>
+ 800afc2:	6801      	ldr	r1, [r0, #0]
+ 800afc4:	6b04      	ldr	r4, [r0, #48]	; 0x30
+ 800afc6:	684a      	ldr	r2, [r1, #4]
+ 800afc8:	f422 3280 	bic.w	r2, r2, #65536	; 0x10000
+ 800afcc:	4322      	orrs	r2, r4
+ 800afce:	604a      	str	r2, [r1, #4]
+ 800afd0:	0759      	lsls	r1, r3, #29
+ 800afd2:	d506      	bpl.n	800afe2 <UART_AdvFeatureConfig+0x3a>
+ 800afd4:	6801      	ldr	r1, [r0, #0]
+ 800afd6:	6b44      	ldr	r4, [r0, #52]	; 0x34
+ 800afd8:	684a      	ldr	r2, [r1, #4]
+ 800afda:	f422 2280 	bic.w	r2, r2, #262144	; 0x40000
+ 800afde:	4322      	orrs	r2, r4
+ 800afe0:	604a      	str	r2, [r1, #4]
+ 800afe2:	071a      	lsls	r2, r3, #28
+ 800afe4:	d506      	bpl.n	800aff4 <UART_AdvFeatureConfig+0x4c>
+ 800afe6:	6801      	ldr	r1, [r0, #0]
+ 800afe8:	6b84      	ldr	r4, [r0, #56]	; 0x38
+ 800afea:	684a      	ldr	r2, [r1, #4]
+ 800afec:	f422 4200 	bic.w	r2, r2, #32768	; 0x8000
+ 800aff0:	4322      	orrs	r2, r4
+ 800aff2:	604a      	str	r2, [r1, #4]
+ 800aff4:	06dc      	lsls	r4, r3, #27
+ 800aff6:	d506      	bpl.n	800b006 <UART_AdvFeatureConfig+0x5e>
+ 800aff8:	6801      	ldr	r1, [r0, #0]
+ 800affa:	6bc4      	ldr	r4, [r0, #60]	; 0x3c
+ 800affc:	688a      	ldr	r2, [r1, #8]
+ 800affe:	f422 5280 	bic.w	r2, r2, #4096	; 0x1000
+ 800b002:	4322      	orrs	r2, r4
+ 800b004:	608a      	str	r2, [r1, #8]
+ 800b006:	0699      	lsls	r1, r3, #26
+ 800b008:	d506      	bpl.n	800b018 <UART_AdvFeatureConfig+0x70>
+ 800b00a:	6801      	ldr	r1, [r0, #0]
+ 800b00c:	6c04      	ldr	r4, [r0, #64]	; 0x40
+ 800b00e:	688a      	ldr	r2, [r1, #8]
+ 800b010:	f422 5200 	bic.w	r2, r2, #8192	; 0x2000
+ 800b014:	4322      	orrs	r2, r4
+ 800b016:	608a      	str	r2, [r1, #8]
+ 800b018:	065a      	lsls	r2, r3, #25
+ 800b01a:	d50f      	bpl.n	800b03c <UART_AdvFeatureConfig+0x94>
+ 800b01c:	6801      	ldr	r1, [r0, #0]
+ 800b01e:	6c44      	ldr	r4, [r0, #68]	; 0x44
+ 800b020:	684a      	ldr	r2, [r1, #4]
+ 800b022:	f422 1280 	bic.w	r2, r2, #1048576	; 0x100000
+ 800b026:	4322      	orrs	r2, r4
+ 800b028:	f5b4 1f80 	cmp.w	r4, #1048576	; 0x100000
+ 800b02c:	604a      	str	r2, [r1, #4]
+ 800b02e:	d105      	bne.n	800b03c <UART_AdvFeatureConfig+0x94>
+ 800b030:	684a      	ldr	r2, [r1, #4]
+ 800b032:	6c84      	ldr	r4, [r0, #72]	; 0x48
+ 800b034:	f422 02c0 	bic.w	r2, r2, #6291456	; 0x600000
+ 800b038:	4322      	orrs	r2, r4
+ 800b03a:	604a      	str	r2, [r1, #4]
+ 800b03c:	061b      	lsls	r3, r3, #24
+ 800b03e:	d506      	bpl.n	800b04e <UART_AdvFeatureConfig+0xa6>
+ 800b040:	6802      	ldr	r2, [r0, #0]
+ 800b042:	6cc1      	ldr	r1, [r0, #76]	; 0x4c
+ 800b044:	6853      	ldr	r3, [r2, #4]
+ 800b046:	f423 2300 	bic.w	r3, r3, #524288	; 0x80000
+ 800b04a:	430b      	orrs	r3, r1
+ 800b04c:	6053      	str	r3, [r2, #4]
+ 800b04e:	bd10      	pop	{r4, pc}
+
+0800b050 <UART_WaitOnFlagUntilTimeout>:
+ 800b050:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800b054:	f8dd 8018 	ldr.w	r8, [sp, #24]
+ 800b058:	4604      	mov	r4, r0
+ 800b05a:	460e      	mov	r6, r1
+ 800b05c:	4615      	mov	r5, r2
+ 800b05e:	461f      	mov	r7, r3
+ 800b060:	6822      	ldr	r2, [r4, #0]
+ 800b062:	69d3      	ldr	r3, [r2, #28]
+ 800b064:	ea36 0303 	bics.w	r3, r6, r3
+ 800b068:	bf0c      	ite	eq
+ 800b06a:	2301      	moveq	r3, #1
+ 800b06c:	2300      	movne	r3, #0
+ 800b06e:	42ab      	cmp	r3, r5
+ 800b070:	d001      	beq.n	800b076 <UART_WaitOnFlagUntilTimeout+0x26>
+ 800b072:	2000      	movs	r0, #0
+ 800b074:	e027      	b.n	800b0c6 <UART_WaitOnFlagUntilTimeout+0x76>
+ 800b076:	f1b8 3fff 	cmp.w	r8, #4294967295
+ 800b07a:	d0f2      	beq.n	800b062 <UART_WaitOnFlagUntilTimeout+0x12>
+ 800b07c:	f7f7 fd88 	bl	8002b90 <HAL_GetTick>
+ 800b080:	1bc0      	subs	r0, r0, r7
+ 800b082:	4540      	cmp	r0, r8
+ 800b084:	6820      	ldr	r0, [r4, #0]
+ 800b086:	d802      	bhi.n	800b08e <UART_WaitOnFlagUntilTimeout+0x3e>
+ 800b088:	f1b8 0f00 	cmp.w	r8, #0
+ 800b08c:	d11d      	bne.n	800b0ca <UART_WaitOnFlagUntilTimeout+0x7a>
+ 800b08e:	e850 3f00 	ldrex	r3, [r0]
+ 800b092:	f423 73d0 	bic.w	r3, r3, #416	; 0x1a0
+ 800b096:	e840 3200 	strex	r2, r3, [r0]
+ 800b09a:	2a00      	cmp	r2, #0
+ 800b09c:	d1f7      	bne.n	800b08e <UART_WaitOnFlagUntilTimeout+0x3e>
+ 800b09e:	f100 0308 	add.w	r3, r0, #8
+ 800b0a2:	e853 3f00 	ldrex	r3, [r3]
+ 800b0a6:	f023 0301 	bic.w	r3, r3, #1
+ 800b0aa:	f100 0108 	add.w	r1, r0, #8
+ 800b0ae:	e841 3200 	strex	r2, r3, [r1]
+ 800b0b2:	2a00      	cmp	r2, #0
+ 800b0b4:	d1f3      	bne.n	800b09e <UART_WaitOnFlagUntilTimeout+0x4e>
+ 800b0b6:	2320      	movs	r3, #32
+ 800b0b8:	f8c4 3088 	str.w	r3, [r4, #136]	; 0x88
+ 800b0bc:	f8c4 308c 	str.w	r3, [r4, #140]	; 0x8c
+ 800b0c0:	f884 2084 	strb.w	r2, [r4, #132]	; 0x84
+ 800b0c4:	2003      	movs	r0, #3
+ 800b0c6:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800b0ca:	6803      	ldr	r3, [r0, #0]
+ 800b0cc:	075a      	lsls	r2, r3, #29
+ 800b0ce:	d5c7      	bpl.n	800b060 <UART_WaitOnFlagUntilTimeout+0x10>
+ 800b0d0:	69c3      	ldr	r3, [r0, #28]
+ 800b0d2:	051b      	lsls	r3, r3, #20
+ 800b0d4:	d5c4      	bpl.n	800b060 <UART_WaitOnFlagUntilTimeout+0x10>
+ 800b0d6:	f44f 6300 	mov.w	r3, #2048	; 0x800
+ 800b0da:	6203      	str	r3, [r0, #32]
+ 800b0dc:	e850 3f00 	ldrex	r3, [r0]
+ 800b0e0:	f423 73d0 	bic.w	r3, r3, #416	; 0x1a0
+ 800b0e4:	e840 3200 	strex	r2, r3, [r0]
+ 800b0e8:	2a00      	cmp	r2, #0
+ 800b0ea:	d1f7      	bne.n	800b0dc <UART_WaitOnFlagUntilTimeout+0x8c>
+ 800b0ec:	f100 0308 	add.w	r3, r0, #8
+ 800b0f0:	e853 3f00 	ldrex	r3, [r3]
+ 800b0f4:	f023 0301 	bic.w	r3, r3, #1
+ 800b0f8:	f100 0108 	add.w	r1, r0, #8
+ 800b0fc:	e841 3200 	strex	r2, r3, [r1]
+ 800b100:	2a00      	cmp	r2, #0
+ 800b102:	d1f3      	bne.n	800b0ec <UART_WaitOnFlagUntilTimeout+0x9c>
+ 800b104:	2320      	movs	r3, #32
+ 800b106:	f8c4 3088 	str.w	r3, [r4, #136]	; 0x88
+ 800b10a:	f8c4 308c 	str.w	r3, [r4, #140]	; 0x8c
+ 800b10e:	f8c4 3090 	str.w	r3, [r4, #144]	; 0x90
+ 800b112:	e7d5      	b.n	800b0c0 <UART_WaitOnFlagUntilTimeout+0x70>
+
+0800b114 <UART_CheckIdleState>:
+ 800b114:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 800b116:	4604      	mov	r4, r0
+ 800b118:	2600      	movs	r6, #0
+ 800b11a:	f8c0 6090 	str.w	r6, [r0, #144]	; 0x90
+ 800b11e:	f7f7 fd37 	bl	8002b90 <HAL_GetTick>
+ 800b122:	6823      	ldr	r3, [r4, #0]
+ 800b124:	681b      	ldr	r3, [r3, #0]
+ 800b126:	071a      	lsls	r2, r3, #28
+ 800b128:	4605      	mov	r5, r0
+ 800b12a:	d419      	bmi.n	800b160 <UART_CheckIdleState+0x4c>
+ 800b12c:	6823      	ldr	r3, [r4, #0]
+ 800b12e:	681b      	ldr	r3, [r3, #0]
+ 800b130:	075b      	lsls	r3, r3, #29
+ 800b132:	d50a      	bpl.n	800b14a <UART_CheckIdleState+0x36>
+ 800b134:	f06f 437e 	mvn.w	r3, #4261412864	; 0xfe000000
+ 800b138:	9300      	str	r3, [sp, #0]
+ 800b13a:	2200      	movs	r2, #0
+ 800b13c:	462b      	mov	r3, r5
+ 800b13e:	f44f 0180 	mov.w	r1, #4194304	; 0x400000
+ 800b142:	4620      	mov	r0, r4
+ 800b144:	f7ff ff84 	bl	800b050 <UART_WaitOnFlagUntilTimeout>
+ 800b148:	b9b0      	cbnz	r0, 800b178 <UART_CheckIdleState+0x64>
+ 800b14a:	2000      	movs	r0, #0
+ 800b14c:	2320      	movs	r3, #32
+ 800b14e:	f8c4 3088 	str.w	r3, [r4, #136]	; 0x88
+ 800b152:	f884 0084 	strb.w	r0, [r4, #132]	; 0x84
+ 800b156:	f8c4 308c 	str.w	r3, [r4, #140]	; 0x8c
+ 800b15a:	66e0      	str	r0, [r4, #108]	; 0x6c
+ 800b15c:	6720      	str	r0, [r4, #112]	; 0x70
+ 800b15e:	e00c      	b.n	800b17a <UART_CheckIdleState+0x66>
+ 800b160:	f06f 437e 	mvn.w	r3, #4261412864	; 0xfe000000
+ 800b164:	9300      	str	r3, [sp, #0]
+ 800b166:	4632      	mov	r2, r6
+ 800b168:	4603      	mov	r3, r0
+ 800b16a:	f44f 1100 	mov.w	r1, #2097152	; 0x200000
+ 800b16e:	4620      	mov	r0, r4
+ 800b170:	f7ff ff6e 	bl	800b050 <UART_WaitOnFlagUntilTimeout>
+ 800b174:	2800      	cmp	r0, #0
+ 800b176:	d0d9      	beq.n	800b12c <UART_CheckIdleState+0x18>
+ 800b178:	2003      	movs	r0, #3
+ 800b17a:	b002      	add	sp, #8
+ 800b17c:	bd70      	pop	{r4, r5, r6, pc}
+
+0800b17e <HAL_UART_Init>:
+ 800b17e:	b510      	push	{r4, lr}
+ 800b180:	4604      	mov	r4, r0
+ 800b182:	b350      	cbz	r0, 800b1da <HAL_UART_Init+0x5c>
+ 800b184:	f8d0 3088 	ldr.w	r3, [r0, #136]	; 0x88
+ 800b188:	b91b      	cbnz	r3, 800b192 <HAL_UART_Init+0x14>
+ 800b18a:	f880 3084 	strb.w	r3, [r0, #132]	; 0x84
+ 800b18e:	f7f7 febf 	bl	8002f10 <HAL_UART_MspInit>
+ 800b192:	6822      	ldr	r2, [r4, #0]
+ 800b194:	2324      	movs	r3, #36	; 0x24
+ 800b196:	f8c4 3088 	str.w	r3, [r4, #136]	; 0x88
+ 800b19a:	6813      	ldr	r3, [r2, #0]
+ 800b19c:	f023 0301 	bic.w	r3, r3, #1
+ 800b1a0:	6013      	str	r3, [r2, #0]
+ 800b1a2:	4620      	mov	r0, r4
+ 800b1a4:	f7ff fde8 	bl	800ad78 <UART_SetConfig>
+ 800b1a8:	2801      	cmp	r0, #1
+ 800b1aa:	d016      	beq.n	800b1da <HAL_UART_Init+0x5c>
+ 800b1ac:	6aa3      	ldr	r3, [r4, #40]	; 0x28
+ 800b1ae:	b113      	cbz	r3, 800b1b6 <HAL_UART_Init+0x38>
+ 800b1b0:	4620      	mov	r0, r4
+ 800b1b2:	f7ff fef9 	bl	800afa8 <UART_AdvFeatureConfig>
+ 800b1b6:	6823      	ldr	r3, [r4, #0]
+ 800b1b8:	685a      	ldr	r2, [r3, #4]
+ 800b1ba:	f422 4290 	bic.w	r2, r2, #18432	; 0x4800
+ 800b1be:	605a      	str	r2, [r3, #4]
+ 800b1c0:	689a      	ldr	r2, [r3, #8]
+ 800b1c2:	f022 022a 	bic.w	r2, r2, #42	; 0x2a
+ 800b1c6:	609a      	str	r2, [r3, #8]
+ 800b1c8:	681a      	ldr	r2, [r3, #0]
+ 800b1ca:	f042 0201 	orr.w	r2, r2, #1
+ 800b1ce:	4620      	mov	r0, r4
+ 800b1d0:	601a      	str	r2, [r3, #0]
+ 800b1d2:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 800b1d6:	f7ff bf9d 	b.w	800b114 <UART_CheckIdleState>
+ 800b1da:	2001      	movs	r0, #1
+ 800b1dc:	bd10      	pop	{r4, pc}
+	...
+
+0800b1e0 <UART_Start_Receive_IT>:
+ 800b1e0:	b530      	push	{r4, r5, lr}
+ 800b1e2:	6581      	str	r1, [r0, #88]	; 0x58
+ 800b1e4:	6881      	ldr	r1, [r0, #8]
+ 800b1e6:	f8a0 205c 	strh.w	r2, [r0, #92]	; 0x5c
+ 800b1ea:	2300      	movs	r3, #0
+ 800b1ec:	f5b1 5f80 	cmp.w	r1, #4096	; 0x1000
+ 800b1f0:	f8a0 205e 	strh.w	r2, [r0, #94]	; 0x5e
+ 800b1f4:	6743      	str	r3, [r0, #116]	; 0x74
+ 800b1f6:	d135      	bne.n	800b264 <UART_Start_Receive_IT+0x84>
+ 800b1f8:	6903      	ldr	r3, [r0, #16]
+ 800b1fa:	2b00      	cmp	r3, #0
+ 800b1fc:	f240 13ff 	movw	r3, #511	; 0x1ff
+ 800b200:	bf18      	it	ne
+ 800b202:	23ff      	movne	r3, #255	; 0xff
+ 800b204:	f8a0 3060 	strh.w	r3, [r0, #96]	; 0x60
+ 800b208:	2300      	movs	r3, #0
+ 800b20a:	f8c0 3090 	str.w	r3, [r0, #144]	; 0x90
+ 800b20e:	2322      	movs	r3, #34	; 0x22
+ 800b210:	f8c0 308c 	str.w	r3, [r0, #140]	; 0x8c
+ 800b214:	6801      	ldr	r1, [r0, #0]
+ 800b216:	f101 0308 	add.w	r3, r1, #8
+ 800b21a:	e853 3f00 	ldrex	r3, [r3]
+ 800b21e:	f043 0301 	orr.w	r3, r3, #1
+ 800b222:	3108      	adds	r1, #8
+ 800b224:	e841 3400 	strex	r4, r3, [r1]
+ 800b228:	6803      	ldr	r3, [r0, #0]
+ 800b22a:	2c00      	cmp	r4, #0
+ 800b22c:	d1f2      	bne.n	800b214 <UART_Start_Receive_IT+0x34>
+ 800b22e:	6e45      	ldr	r5, [r0, #100]	; 0x64
+ 800b230:	6884      	ldr	r4, [r0, #8]
+ 800b232:	6901      	ldr	r1, [r0, #16]
+ 800b234:	f1b5 5f00 	cmp.w	r5, #536870912	; 0x20000000
+ 800b238:	d134      	bne.n	800b2a4 <UART_Start_Receive_IT+0xc4>
+ 800b23a:	f8b0 5068 	ldrh.w	r5, [r0, #104]	; 0x68
+ 800b23e:	4295      	cmp	r5, r2
+ 800b240:	d830      	bhi.n	800b2a4 <UART_Start_Receive_IT+0xc4>
+ 800b242:	f5b4 5f80 	cmp.w	r4, #4096	; 0x1000
+ 800b246:	d11d      	bne.n	800b284 <UART_Start_Receive_IT+0xa4>
+ 800b248:	4a25      	ldr	r2, [pc, #148]	; (800b2e0 <UART_Start_Receive_IT+0x100>)
+ 800b24a:	4c26      	ldr	r4, [pc, #152]	; (800b2e4 <UART_Start_Receive_IT+0x104>)
+ 800b24c:	2900      	cmp	r1, #0
+ 800b24e:	bf18      	it	ne
+ 800b250:	4622      	movne	r2, r4
+ 800b252:	6742      	str	r2, [r0, #116]	; 0x74
+ 800b254:	b1c1      	cbz	r1, 800b288 <UART_Start_Receive_IT+0xa8>
+ 800b256:	e853 2f00 	ldrex	r2, [r3]
+ 800b25a:	f442 7280 	orr.w	r2, r2, #256	; 0x100
+ 800b25e:	e843 2100 	strex	r1, r2, [r3]
+ 800b262:	e7f7      	b.n	800b254 <UART_Start_Receive_IT+0x74>
+ 800b264:	b929      	cbnz	r1, 800b272 <UART_Start_Receive_IT+0x92>
+ 800b266:	6903      	ldr	r3, [r0, #16]
+ 800b268:	2b00      	cmp	r3, #0
+ 800b26a:	bf14      	ite	ne
+ 800b26c:	237f      	movne	r3, #127	; 0x7f
+ 800b26e:	23ff      	moveq	r3, #255	; 0xff
+ 800b270:	e7c8      	b.n	800b204 <UART_Start_Receive_IT+0x24>
+ 800b272:	f1b1 5f80 	cmp.w	r1, #268435456	; 0x10000000
+ 800b276:	d1c5      	bne.n	800b204 <UART_Start_Receive_IT+0x24>
+ 800b278:	6903      	ldr	r3, [r0, #16]
+ 800b27a:	2b00      	cmp	r3, #0
+ 800b27c:	bf0c      	ite	eq
+ 800b27e:	237f      	moveq	r3, #127	; 0x7f
+ 800b280:	233f      	movne	r3, #63	; 0x3f
+ 800b282:	e7bf      	b.n	800b204 <UART_Start_Receive_IT+0x24>
+ 800b284:	4a17      	ldr	r2, [pc, #92]	; (800b2e4 <UART_Start_Receive_IT+0x104>)
+ 800b286:	e7e4      	b.n	800b252 <UART_Start_Receive_IT+0x72>
+ 800b288:	f103 0208 	add.w	r2, r3, #8
+ 800b28c:	e852 2f00 	ldrex	r2, [r2]
+ 800b290:	f042 5280 	orr.w	r2, r2, #268435456	; 0x10000000
+ 800b294:	f103 0008 	add.w	r0, r3, #8
+ 800b298:	e840 2100 	strex	r1, r2, [r0]
+ 800b29c:	2900      	cmp	r1, #0
+ 800b29e:	d1f3      	bne.n	800b288 <UART_Start_Receive_IT+0xa8>
+ 800b2a0:	2000      	movs	r0, #0
+ 800b2a2:	bd30      	pop	{r4, r5, pc}
+ 800b2a4:	f5b4 5f80 	cmp.w	r4, #4096	; 0x1000
+ 800b2a8:	d10f      	bne.n	800b2ca <UART_Start_Receive_IT+0xea>
+ 800b2aa:	4a0f      	ldr	r2, [pc, #60]	; (800b2e8 <UART_Start_Receive_IT+0x108>)
+ 800b2ac:	4c0f      	ldr	r4, [pc, #60]	; (800b2ec <UART_Start_Receive_IT+0x10c>)
+ 800b2ae:	2900      	cmp	r1, #0
+ 800b2b0:	bf18      	it	ne
+ 800b2b2:	4622      	movne	r2, r4
+ 800b2b4:	6742      	str	r2, [r0, #116]	; 0x74
+ 800b2b6:	b151      	cbz	r1, 800b2ce <UART_Start_Receive_IT+0xee>
+ 800b2b8:	e853 2f00 	ldrex	r2, [r3]
+ 800b2bc:	f442 7290 	orr.w	r2, r2, #288	; 0x120
+ 800b2c0:	e843 2100 	strex	r1, r2, [r3]
+ 800b2c4:	2900      	cmp	r1, #0
+ 800b2c6:	d1f7      	bne.n	800b2b8 <UART_Start_Receive_IT+0xd8>
+ 800b2c8:	e7ea      	b.n	800b2a0 <UART_Start_Receive_IT+0xc0>
+ 800b2ca:	4a08      	ldr	r2, [pc, #32]	; (800b2ec <UART_Start_Receive_IT+0x10c>)
+ 800b2cc:	e7f2      	b.n	800b2b4 <UART_Start_Receive_IT+0xd4>
+ 800b2ce:	e853 2f00 	ldrex	r2, [r3]
+ 800b2d2:	f042 0220 	orr.w	r2, r2, #32
+ 800b2d6:	e843 2100 	strex	r1, r2, [r3]
+ 800b2da:	2900      	cmp	r1, #0
+ 800b2dc:	d1f7      	bne.n	800b2ce <UART_Start_Receive_IT+0xee>
+ 800b2de:	e7df      	b.n	800b2a0 <UART_Start_Receive_IT+0xc0>
+ 800b2e0:	0800abe1 	.word	0x0800abe1
+ 800b2e4:	0800aa45 	.word	0x0800aa45
+ 800b2e8:	0800a981 	.word	0x0800a981
+ 800b2ec:	0800a8b5 	.word	0x0800a8b5
+
+0800b2f0 <HAL_UART_Receive_IT>:
+ 800b2f0:	f8d0 308c 	ldr.w	r3, [r0, #140]	; 0x8c
+ 800b2f4:	2b20      	cmp	r3, #32
+ 800b2f6:	b430      	push	{r4, r5}
+ 800b2f8:	d115      	bne.n	800b326 <HAL_UART_Receive_IT+0x36>
+ 800b2fa:	b1b9      	cbz	r1, 800b32c <HAL_UART_Receive_IT+0x3c>
+ 800b2fc:	b1b2      	cbz	r2, 800b32c <HAL_UART_Receive_IT+0x3c>
+ 800b2fe:	2300      	movs	r3, #0
+ 800b300:	6804      	ldr	r4, [r0, #0]
+ 800b302:	66c3      	str	r3, [r0, #108]	; 0x6c
+ 800b304:	4b0a      	ldr	r3, [pc, #40]	; (800b330 <HAL_UART_Receive_IT+0x40>)
+ 800b306:	429c      	cmp	r4, r3
+ 800b308:	d00a      	beq.n	800b320 <HAL_UART_Receive_IT+0x30>
+ 800b30a:	6863      	ldr	r3, [r4, #4]
+ 800b30c:	021b      	lsls	r3, r3, #8
+ 800b30e:	d507      	bpl.n	800b320 <HAL_UART_Receive_IT+0x30>
+ 800b310:	e854 3f00 	ldrex	r3, [r4]
+ 800b314:	f043 6380 	orr.w	r3, r3, #67108864	; 0x4000000
+ 800b318:	e844 3500 	strex	r5, r3, [r4]
+ 800b31c:	2d00      	cmp	r5, #0
+ 800b31e:	d1f7      	bne.n	800b310 <HAL_UART_Receive_IT+0x20>
+ 800b320:	bc30      	pop	{r4, r5}
+ 800b322:	f7ff bf5d 	b.w	800b1e0 <UART_Start_Receive_IT>
+ 800b326:	2002      	movs	r0, #2
+ 800b328:	bc30      	pop	{r4, r5}
+ 800b32a:	4770      	bx	lr
+ 800b32c:	2001      	movs	r0, #1
+ 800b32e:	e7fb      	b.n	800b328 <HAL_UART_Receive_IT+0x38>
+ 800b330:	40008000 	.word	0x40008000
+
+0800b334 <UARTEx_SetNbDataToProcess>:
+ 800b334:	6e43      	ldr	r3, [r0, #100]	; 0x64
+ 800b336:	b530      	push	{r4, r5, lr}
+ 800b338:	b92b      	cbnz	r3, 800b346 <UARTEx_SetNbDataToProcess+0x12>
+ 800b33a:	2301      	movs	r3, #1
+ 800b33c:	f8a0 306a 	strh.w	r3, [r0, #106]	; 0x6a
+ 800b340:	f8a0 3068 	strh.w	r3, [r0, #104]	; 0x68
+ 800b344:	bd30      	pop	{r4, r5, pc}
+ 800b346:	6803      	ldr	r3, [r0, #0]
+ 800b348:	4d09      	ldr	r5, [pc, #36]	; (800b370 <UARTEx_SetNbDataToProcess+0x3c>)
+ 800b34a:	689a      	ldr	r2, [r3, #8]
+ 800b34c:	6899      	ldr	r1, [r3, #8]
+ 800b34e:	4c09      	ldr	r4, [pc, #36]	; (800b374 <UARTEx_SetNbDataToProcess+0x40>)
+ 800b350:	0f49      	lsrs	r1, r1, #29
+ 800b352:	f3c2 6242 	ubfx	r2, r2, #25, #3
+ 800b356:	5c6b      	ldrb	r3, [r5, r1]
+ 800b358:	5c61      	ldrb	r1, [r4, r1]
+ 800b35a:	00db      	lsls	r3, r3, #3
+ 800b35c:	fbb3 f3f1 	udiv	r3, r3, r1
+ 800b360:	f8a0 306a 	strh.w	r3, [r0, #106]	; 0x6a
+ 800b364:	5cab      	ldrb	r3, [r5, r2]
+ 800b366:	5ca2      	ldrb	r2, [r4, r2]
+ 800b368:	00db      	lsls	r3, r3, #3
+ 800b36a:	fbb3 f3f2 	udiv	r3, r3, r2
+ 800b36e:	e7e7      	b.n	800b340 <UARTEx_SetNbDataToProcess+0xc>
+ 800b370:	080152a0 	.word	0x080152a0
+ 800b374:	08015298 	.word	0x08015298
+
+0800b378 <HAL_UARTEx_WakeupCallback>:
+ 800b378:	4770      	bx	lr
+
+0800b37a <HAL_UARTEx_RxFifoFullCallback>:
+ 800b37a:	4770      	bx	lr
+
+0800b37c <HAL_UARTEx_TxFifoEmptyCallback>:
+ 800b37c:	4770      	bx	lr
+
+0800b37e <HAL_UARTEx_StopModeWakeUpSourceConfig>:
+ 800b37e:	b51f      	push	{r0, r1, r2, r3, r4, lr}
+ 800b380:	ab04      	add	r3, sp, #16
+ 800b382:	e903 0006 	stmdb	r3, {r1, r2}
+ 800b386:	f890 3084 	ldrb.w	r3, [r0, #132]	; 0x84
+ 800b38a:	2b01      	cmp	r3, #1
+ 800b38c:	4604      	mov	r4, r0
+ 800b38e:	d03a      	beq.n	800b406 <HAL_UARTEx_StopModeWakeUpSourceConfig+0x88>
+ 800b390:	2301      	movs	r3, #1
+ 800b392:	f880 3084 	strb.w	r3, [r0, #132]	; 0x84
+ 800b396:	2324      	movs	r3, #36	; 0x24
+ 800b398:	f8c0 3088 	str.w	r3, [r0, #136]	; 0x88
+ 800b39c:	6803      	ldr	r3, [r0, #0]
+ 800b39e:	681a      	ldr	r2, [r3, #0]
+ 800b3a0:	f022 0201 	bic.w	r2, r2, #1
+ 800b3a4:	601a      	str	r2, [r3, #0]
+ 800b3a6:	689a      	ldr	r2, [r3, #8]
+ 800b3a8:	f422 1240 	bic.w	r2, r2, #3145728	; 0x300000
+ 800b3ac:	430a      	orrs	r2, r1
+ 800b3ae:	609a      	str	r2, [r3, #8]
+ 800b3b0:	b971      	cbnz	r1, 800b3d0 <HAL_UARTEx_StopModeWakeUpSourceConfig+0x52>
+ 800b3b2:	685a      	ldr	r2, [r3, #4]
+ 800b3b4:	f8bd 000c 	ldrh.w	r0, [sp, #12]
+ 800b3b8:	f89d 100e 	ldrb.w	r1, [sp, #14]
+ 800b3bc:	f022 0210 	bic.w	r2, r2, #16
+ 800b3c0:	4302      	orrs	r2, r0
+ 800b3c2:	605a      	str	r2, [r3, #4]
+ 800b3c4:	685a      	ldr	r2, [r3, #4]
+ 800b3c6:	f022 427f 	bic.w	r2, r2, #4278190080	; 0xff000000
+ 800b3ca:	ea42 6201 	orr.w	r2, r2, r1, lsl #24
+ 800b3ce:	605a      	str	r2, [r3, #4]
+ 800b3d0:	681a      	ldr	r2, [r3, #0]
+ 800b3d2:	f042 0201 	orr.w	r2, r2, #1
+ 800b3d6:	601a      	str	r2, [r3, #0]
+ 800b3d8:	f7f7 fbda 	bl	8002b90 <HAL_GetTick>
+ 800b3dc:	f06f 427e 	mvn.w	r2, #4261412864	; 0xfe000000
+ 800b3e0:	4603      	mov	r3, r0
+ 800b3e2:	9200      	str	r2, [sp, #0]
+ 800b3e4:	f44f 0180 	mov.w	r1, #4194304	; 0x400000
+ 800b3e8:	2200      	movs	r2, #0
+ 800b3ea:	4620      	mov	r0, r4
+ 800b3ec:	f7ff fe30 	bl	800b050 <UART_WaitOnFlagUntilTimeout>
+ 800b3f0:	b938      	cbnz	r0, 800b402 <HAL_UARTEx_StopModeWakeUpSourceConfig+0x84>
+ 800b3f2:	2320      	movs	r3, #32
+ 800b3f4:	f8c4 3088 	str.w	r3, [r4, #136]	; 0x88
+ 800b3f8:	2300      	movs	r3, #0
+ 800b3fa:	f884 3084 	strb.w	r3, [r4, #132]	; 0x84
+ 800b3fe:	b004      	add	sp, #16
+ 800b400:	bd10      	pop	{r4, pc}
+ 800b402:	2003      	movs	r0, #3
+ 800b404:	e7f8      	b.n	800b3f8 <HAL_UARTEx_StopModeWakeUpSourceConfig+0x7a>
+ 800b406:	2002      	movs	r0, #2
+ 800b408:	e7f9      	b.n	800b3fe <HAL_UARTEx_StopModeWakeUpSourceConfig+0x80>
+
+0800b40a <HAL_UARTEx_EnableStopMode>:
+ 800b40a:	f890 3084 	ldrb.w	r3, [r0, #132]	; 0x84
+ 800b40e:	2b01      	cmp	r3, #1
+ 800b410:	d00f      	beq.n	800b432 <HAL_UARTEx_EnableStopMode+0x28>
+ 800b412:	2301      	movs	r3, #1
+ 800b414:	f880 3084 	strb.w	r3, [r0, #132]	; 0x84
+ 800b418:	6801      	ldr	r1, [r0, #0]
+ 800b41a:	e851 2f00 	ldrex	r2, [r1]
+ 800b41e:	f042 0202 	orr.w	r2, r2, #2
+ 800b422:	e841 2300 	strex	r3, r2, [r1]
+ 800b426:	2b00      	cmp	r3, #0
+ 800b428:	d1f6      	bne.n	800b418 <HAL_UARTEx_EnableStopMode+0xe>
+ 800b42a:	f880 3084 	strb.w	r3, [r0, #132]	; 0x84
+ 800b42e:	4618      	mov	r0, r3
+ 800b430:	4770      	bx	lr
+ 800b432:	2002      	movs	r0, #2
+ 800b434:	4770      	bx	lr
+
+0800b436 <HAL_UARTEx_EnableFifoMode>:
+ 800b436:	b510      	push	{r4, lr}
+ 800b438:	f890 3084 	ldrb.w	r3, [r0, #132]	; 0x84
+ 800b43c:	2b01      	cmp	r3, #1
+ 800b43e:	4604      	mov	r4, r0
+ 800b440:	d017      	beq.n	800b472 <HAL_UARTEx_EnableFifoMode+0x3c>
+ 800b442:	2324      	movs	r3, #36	; 0x24
+ 800b444:	f8c0 3088 	str.w	r3, [r0, #136]	; 0x88
+ 800b448:	6803      	ldr	r3, [r0, #0]
+ 800b44a:	681a      	ldr	r2, [r3, #0]
+ 800b44c:	6819      	ldr	r1, [r3, #0]
+ 800b44e:	f021 0101 	bic.w	r1, r1, #1
+ 800b452:	6019      	str	r1, [r3, #0]
+ 800b454:	f042 5200 	orr.w	r2, r2, #536870912	; 0x20000000
+ 800b458:	f04f 5100 	mov.w	r1, #536870912	; 0x20000000
+ 800b45c:	6641      	str	r1, [r0, #100]	; 0x64
+ 800b45e:	601a      	str	r2, [r3, #0]
+ 800b460:	f7ff ff68 	bl	800b334 <UARTEx_SetNbDataToProcess>
+ 800b464:	2320      	movs	r3, #32
+ 800b466:	f8c0 3088 	str.w	r3, [r0, #136]	; 0x88
+ 800b46a:	2000      	movs	r0, #0
+ 800b46c:	f884 0084 	strb.w	r0, [r4, #132]	; 0x84
+ 800b470:	bd10      	pop	{r4, pc}
+ 800b472:	2002      	movs	r0, #2
+ 800b474:	e7fc      	b.n	800b470 <HAL_UARTEx_EnableFifoMode+0x3a>
+
+0800b476 <HAL_UARTEx_SetTxFifoThreshold>:
+ 800b476:	b570      	push	{r4, r5, r6, lr}
+ 800b478:	f890 3084 	ldrb.w	r3, [r0, #132]	; 0x84
+ 800b47c:	2b01      	cmp	r3, #1
+ 800b47e:	4604      	mov	r4, r0
+ 800b480:	d017      	beq.n	800b4b2 <HAL_UARTEx_SetTxFifoThreshold+0x3c>
+ 800b482:	6805      	ldr	r5, [r0, #0]
+ 800b484:	2324      	movs	r3, #36	; 0x24
+ 800b486:	f8c0 3088 	str.w	r3, [r0, #136]	; 0x88
+ 800b48a:	682e      	ldr	r6, [r5, #0]
+ 800b48c:	682b      	ldr	r3, [r5, #0]
+ 800b48e:	f023 0301 	bic.w	r3, r3, #1
+ 800b492:	602b      	str	r3, [r5, #0]
+ 800b494:	68ab      	ldr	r3, [r5, #8]
+ 800b496:	f023 4360 	bic.w	r3, r3, #3758096384	; 0xe0000000
+ 800b49a:	4319      	orrs	r1, r3
+ 800b49c:	60a9      	str	r1, [r5, #8]
+ 800b49e:	f7ff ff49 	bl	800b334 <UARTEx_SetNbDataToProcess>
+ 800b4a2:	2320      	movs	r3, #32
+ 800b4a4:	602e      	str	r6, [r5, #0]
+ 800b4a6:	f8c0 3088 	str.w	r3, [r0, #136]	; 0x88
+ 800b4aa:	2000      	movs	r0, #0
+ 800b4ac:	f884 0084 	strb.w	r0, [r4, #132]	; 0x84
+ 800b4b0:	bd70      	pop	{r4, r5, r6, pc}
+ 800b4b2:	2002      	movs	r0, #2
+ 800b4b4:	e7fc      	b.n	800b4b0 <HAL_UARTEx_SetTxFifoThreshold+0x3a>
+
+0800b4b6 <HAL_UARTEx_SetRxFifoThreshold>:
+ 800b4b6:	b570      	push	{r4, r5, r6, lr}
+ 800b4b8:	f890 3084 	ldrb.w	r3, [r0, #132]	; 0x84
+ 800b4bc:	2b01      	cmp	r3, #1
+ 800b4be:	4604      	mov	r4, r0
+ 800b4c0:	d017      	beq.n	800b4f2 <HAL_UARTEx_SetRxFifoThreshold+0x3c>
+ 800b4c2:	6805      	ldr	r5, [r0, #0]
+ 800b4c4:	2324      	movs	r3, #36	; 0x24
+ 800b4c6:	f8c0 3088 	str.w	r3, [r0, #136]	; 0x88
+ 800b4ca:	682e      	ldr	r6, [r5, #0]
+ 800b4cc:	682b      	ldr	r3, [r5, #0]
+ 800b4ce:	f023 0301 	bic.w	r3, r3, #1
+ 800b4d2:	602b      	str	r3, [r5, #0]
+ 800b4d4:	68ab      	ldr	r3, [r5, #8]
+ 800b4d6:	f023 6360 	bic.w	r3, r3, #234881024	; 0xe000000
+ 800b4da:	4319      	orrs	r1, r3
+ 800b4dc:	60a9      	str	r1, [r5, #8]
+ 800b4de:	f7ff ff29 	bl	800b334 <UARTEx_SetNbDataToProcess>
+ 800b4e2:	2320      	movs	r3, #32
+ 800b4e4:	602e      	str	r6, [r5, #0]
+ 800b4e6:	f8c0 3088 	str.w	r3, [r0, #136]	; 0x88
+ 800b4ea:	2000      	movs	r0, #0
+ 800b4ec:	f884 0084 	strb.w	r0, [r4, #132]	; 0x84
+ 800b4f0:	bd70      	pop	{r4, r5, r6, pc}
+ 800b4f2:	2002      	movs	r0, #2
+ 800b4f4:	e7fc      	b.n	800b4f0 <HAL_UARTEx_SetRxFifoThreshold+0x3a>
+	...
+
+0800b4f8 <LmHandlerPackageIsTxPending>:
+ 800b4f8:	b538      	push	{r3, r4, r5, lr}
+ 800b4fa:	4d09      	ldr	r5, [pc, #36]	; (800b520 <LmHandlerPackageIsTxPending+0x28>)
+ 800b4fc:	2400      	movs	r4, #0
+ 800b4fe:	f855 3b04 	ldr.w	r3, [r5], #4
+ 800b502:	b933      	cbnz	r3, 800b512 <LmHandlerPackageIsTxPending+0x1a>
+ 800b504:	3401      	adds	r4, #1
+ 800b506:	b2e3      	uxtb	r3, r4
+ 800b508:	2b05      	cmp	r3, #5
+ 800b50a:	b264      	sxtb	r4, r4
+ 800b50c:	d1f7      	bne.n	800b4fe <LmHandlerPackageIsTxPending+0x6>
+ 800b50e:	2000      	movs	r0, #0
+ 800b510:	bd38      	pop	{r3, r4, r5, pc}
+ 800b512:	2c00      	cmp	r4, #0
+ 800b514:	d0f6      	beq.n	800b504 <LmHandlerPackageIsTxPending+0xc>
+ 800b516:	691b      	ldr	r3, [r3, #16]
+ 800b518:	4798      	blx	r3
+ 800b51a:	2800      	cmp	r0, #0
+ 800b51c:	d0f2      	beq.n	800b504 <LmHandlerPackageIsTxPending+0xc>
+ 800b51e:	e7f7      	b.n	800b510 <LmHandlerPackageIsTxPending+0x18>
+ 800b520:	20001074 	.word	0x20001074
+
+0800b524 <LmHandlerDeviceTimeReq>:
+ 800b524:	b57f      	push	{r0, r1, r2, r3, r4, r5, r6, lr}
+ 800b526:	230a      	movs	r3, #10
+ 800b528:	a801      	add	r0, sp, #4
+ 800b52a:	f88d 3004 	strb.w	r3, [sp, #4]
+ 800b52e:	f003 f8d9 	bl	800e6e4 <LoRaMacMlmeRequest>
+ 800b532:	3800      	subs	r0, #0
+ 800b534:	4b04      	ldr	r3, [pc, #16]	; (800b548 <LmHandlerDeviceTimeReq+0x24>)
+ 800b536:	9a05      	ldr	r2, [sp, #20]
+ 800b538:	601a      	str	r2, [r3, #0]
+ 800b53a:	bf18      	it	ne
+ 800b53c:	2001      	movne	r0, #1
+ 800b53e:	4240      	negs	r0, r0
+ 800b540:	b007      	add	sp, #28
+ 800b542:	f85d fb04 	ldr.w	pc, [sp], #4
+ 800b546:	bf00      	nop
+ 800b548:	2000106c 	.word	0x2000106c
+
+0800b54c <MlmeIndication>:
+ 800b54c:	b570      	push	{r4, r5, r6, lr}
+ 800b54e:	4604      	mov	r4, r0
+ 800b550:	460b      	mov	r3, r1
+ 800b552:	4914      	ldr	r1, [pc, #80]	; (800b5a4 <MlmeIndication+0x58>)
+ 800b554:	7862      	ldrb	r2, [r4, #1]
+ 800b556:	704a      	strb	r2, [r1, #1]
+ 800b558:	2000      	movs	r0, #0
+ 800b55a:	78a2      	ldrb	r2, [r4, #2]
+ 800b55c:	720a      	strb	r2, [r1, #8]
+ 800b55e:	7008      	strb	r0, [r1, #0]
+ 800b560:	881a      	ldrh	r2, [r3, #0]
+ 800b562:	724a      	strb	r2, [r1, #9]
+ 800b564:	789a      	ldrb	r2, [r3, #2]
+ 800b566:	728a      	strb	r2, [r1, #10]
+ 800b568:	78db      	ldrb	r3, [r3, #3]
+ 800b56a:	740b      	strb	r3, [r1, #16]
+ 800b56c:	6863      	ldr	r3, [r4, #4]
+ 800b56e:	60cb      	str	r3, [r1, #12]
+ 800b570:	4b0d      	ldr	r3, [pc, #52]	; (800b5a8 <MlmeIndication+0x5c>)
+ 800b572:	681b      	ldr	r3, [r3, #0]
+ 800b574:	6ada      	ldr	r2, [r3, #44]	; 0x2c
+ 800b576:	b12a      	cbz	r2, 800b584 <MlmeIndication+0x38>
+ 800b578:	7823      	ldrb	r3, [r4, #0]
+ 800b57a:	f003 03fb 	and.w	r3, r3, #251	; 0xfb
+ 800b57e:	2b0b      	cmp	r3, #11
+ 800b580:	d000      	beq.n	800b584 <MlmeIndication+0x38>
+ 800b582:	4790      	blx	r2
+ 800b584:	4e09      	ldr	r6, [pc, #36]	; (800b5ac <MlmeIndication+0x60>)
+ 800b586:	2500      	movs	r5, #0
+ 800b588:	f856 3b04 	ldr.w	r3, [r6], #4
+ 800b58c:	b11b      	cbz	r3, 800b596 <MlmeIndication+0x4a>
+ 800b58e:	6a9b      	ldr	r3, [r3, #40]	; 0x28
+ 800b590:	b10b      	cbz	r3, 800b596 <MlmeIndication+0x4a>
+ 800b592:	4620      	mov	r0, r4
+ 800b594:	4798      	blx	r3
+ 800b596:	3501      	adds	r5, #1
+ 800b598:	b2eb      	uxtb	r3, r5
+ 800b59a:	2b05      	cmp	r3, #5
+ 800b59c:	b26d      	sxtb	r5, r5
+ 800b59e:	d1f3      	bne.n	800b588 <MlmeIndication+0x3c>
+ 800b5a0:	bd70      	pop	{r4, r5, r6, pc}
+ 800b5a2:	bf00      	nop
+ 800b5a4:	20000848 	.word	0x20000848
+ 800b5a8:	20001070 	.word	0x20001070
+ 800b5ac:	20001074 	.word	0x20001074
+
+0800b5b0 <McpsConfirm>:
+ 800b5b0:	b570      	push	{r4, r5, r6, lr}
+ 800b5b2:	4604      	mov	r4, r0
+ 800b5b4:	4811      	ldr	r0, [pc, #68]	; (800b5fc <McpsConfirm+0x4c>)
+ 800b5b6:	2301      	movs	r3, #1
+ 800b5b8:	7003      	strb	r3, [r0, #0]
+ 800b5ba:	7863      	ldrb	r3, [r4, #1]
+ 800b5bc:	7043      	strb	r3, [r0, #1]
+ 800b5be:	78a3      	ldrb	r3, [r4, #2]
+ 800b5c0:	7283      	strb	r3, [r0, #10]
+ 800b5c2:	68e3      	ldr	r3, [r4, #12]
+ 800b5c4:	60c3      	str	r3, [r0, #12]
+ 800b5c6:	78e3      	ldrb	r3, [r4, #3]
+ 800b5c8:	7603      	strb	r3, [r0, #24]
+ 800b5ca:	6923      	ldr	r3, [r4, #16]
+ 800b5cc:	7643      	strb	r3, [r0, #25]
+ 800b5ce:	7923      	ldrb	r3, [r4, #4]
+ 800b5d0:	7243      	strb	r3, [r0, #9]
+ 800b5d2:	4b0b      	ldr	r3, [pc, #44]	; (800b600 <McpsConfirm+0x50>)
+ 800b5d4:	681b      	ldr	r3, [r3, #0]
+ 800b5d6:	6a9b      	ldr	r3, [r3, #40]	; 0x28
+ 800b5d8:	b103      	cbz	r3, 800b5dc <McpsConfirm+0x2c>
+ 800b5da:	4798      	blx	r3
+ 800b5dc:	4e09      	ldr	r6, [pc, #36]	; (800b604 <McpsConfirm+0x54>)
+ 800b5de:	2500      	movs	r5, #0
+ 800b5e0:	f856 3b04 	ldr.w	r3, [r6], #4
+ 800b5e4:	b11b      	cbz	r3, 800b5ee <McpsConfirm+0x3e>
+ 800b5e6:	69db      	ldr	r3, [r3, #28]
+ 800b5e8:	b10b      	cbz	r3, 800b5ee <McpsConfirm+0x3e>
+ 800b5ea:	4620      	mov	r0, r4
+ 800b5ec:	4798      	blx	r3
+ 800b5ee:	3501      	adds	r5, #1
+ 800b5f0:	b2eb      	uxtb	r3, r5
+ 800b5f2:	2b05      	cmp	r3, #5
+ 800b5f4:	b26d      	sxtb	r5, r5
+ 800b5f6:	d1f3      	bne.n	800b5e0 <McpsConfirm+0x30>
+ 800b5f8:	bd70      	pop	{r4, r5, r6, pc}
+ 800b5fa:	bf00      	nop
+ 800b5fc:	2000085c 	.word	0x2000085c
+ 800b600:	20001070 	.word	0x20001070
+ 800b604:	20001074 	.word	0x20001074
+
+0800b608 <LmHandlerProcess>:
+ 800b608:	b538      	push	{r3, r4, r5, lr}
+ 800b60a:	f001 fe11 	bl	800d230 <LoRaMacProcess>
+ 800b60e:	4d0c      	ldr	r5, [pc, #48]	; (800b640 <LmHandlerProcess+0x38>)
+ 800b610:	2405      	movs	r4, #5
+ 800b612:	f855 3b04 	ldr.w	r3, [r5], #4
+ 800b616:	b15b      	cbz	r3, 800b630 <LmHandlerProcess+0x28>
+ 800b618:	695b      	ldr	r3, [r3, #20]
+ 800b61a:	b14b      	cbz	r3, 800b630 <LmHandlerProcess+0x28>
+ 800b61c:	f855 3c04 	ldr.w	r3, [r5, #-4]
+ 800b620:	689b      	ldr	r3, [r3, #8]
+ 800b622:	b12b      	cbz	r3, 800b630 <LmHandlerProcess+0x28>
+ 800b624:	4798      	blx	r3
+ 800b626:	b118      	cbz	r0, 800b630 <LmHandlerProcess+0x28>
+ 800b628:	f855 3c04 	ldr.w	r3, [r5, #-4]
+ 800b62c:	695b      	ldr	r3, [r3, #20]
+ 800b62e:	4798      	blx	r3
+ 800b630:	3c01      	subs	r4, #1
+ 800b632:	f014 04ff 	ands.w	r4, r4, #255	; 0xff
+ 800b636:	d1ec      	bne.n	800b612 <LmHandlerProcess+0xa>
+ 800b638:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
+ 800b63c:	f7ff bf5c 	b.w	800b4f8 <LmHandlerPackageIsTxPending>
+ 800b640:	20001074 	.word	0x20001074
+
+0800b644 <LmHandlerGetDutyCycleWaitTime>:
+ 800b644:	4b01      	ldr	r3, [pc, #4]	; (800b64c <LmHandlerGetDutyCycleWaitTime+0x8>)
+ 800b646:	6818      	ldr	r0, [r3, #0]
+ 800b648:	4770      	bx	lr
+ 800b64a:	bf00      	nop
+ 800b64c:	2000106c 	.word	0x2000106c
+
+0800b650 <LmHandlerJoinStatus>:
+ 800b650:	b500      	push	{lr}
+ 800b652:	b08b      	sub	sp, #44	; 0x2c
+ 800b654:	2301      	movs	r3, #1
+ 800b656:	4668      	mov	r0, sp
+ 800b658:	f88d 3000 	strb.w	r3, [sp]
+ 800b65c:	f002 fcbc 	bl	800dfd8 <LoRaMacMibGetRequestConfirm>
+ 800b660:	b938      	cbnz	r0, 800b672 <LmHandlerJoinStatus+0x22>
+ 800b662:	f89d 0004 	ldrb.w	r0, [sp, #4]
+ 800b666:	3800      	subs	r0, #0
+ 800b668:	bf18      	it	ne
+ 800b66a:	2001      	movne	r0, #1
+ 800b66c:	b00b      	add	sp, #44	; 0x2c
+ 800b66e:	f85d fb04 	ldr.w	pc, [sp], #4
+ 800b672:	2000      	movs	r0, #0
+ 800b674:	e7fa      	b.n	800b66c <LmHandlerJoinStatus+0x1c>
+	...
+
+0800b678 <LmHandlerRequestClass>:
+ 800b678:	b530      	push	{r4, r5, lr}
+ 800b67a:	b08b      	sub	sp, #44	; 0x2c
+ 800b67c:	4605      	mov	r5, r0
+ 800b67e:	f001 fdbb 	bl	800d1f8 <LoRaMacIsBusy>
+ 800b682:	4604      	mov	r4, r0
+ 800b684:	2800      	cmp	r0, #0
+ 800b686:	d139      	bne.n	800b6fc <LmHandlerRequestClass+0x84>
+ 800b688:	f7ff ffe2 	bl	800b650 <LmHandlerJoinStatus>
+ 800b68c:	2801      	cmp	r0, #1
+ 800b68e:	d138      	bne.n	800b702 <LmHandlerRequestClass+0x8a>
+ 800b690:	4668      	mov	r0, sp
+ 800b692:	f88d 4000 	strb.w	r4, [sp]
+ 800b696:	f002 fc9f 	bl	800dfd8 <LoRaMacMibGetRequestConfirm>
+ 800b69a:	b110      	cbz	r0, 800b6a2 <LmHandlerRequestClass+0x2a>
+ 800b69c:	f04f 30ff 	mov.w	r0, #4294967295
+ 800b6a0:	e004      	b.n	800b6ac <LmHandlerRequestClass+0x34>
+ 800b6a2:	f89d 3004 	ldrb.w	r3, [sp, #4]
+ 800b6a6:	42ab      	cmp	r3, r5
+ 800b6a8:	d102      	bne.n	800b6b0 <LmHandlerRequestClass+0x38>
+ 800b6aa:	2000      	movs	r0, #0
+ 800b6ac:	b00b      	add	sp, #44	; 0x2c
+ 800b6ae:	bd30      	pop	{r4, r5, pc}
+ 800b6b0:	2d01      	cmp	r5, #1
+ 800b6b2:	d0f3      	beq.n	800b69c <LmHandlerRequestClass+0x24>
+ 800b6b4:	2d02      	cmp	r5, #2
+ 800b6b6:	d011      	beq.n	800b6dc <LmHandlerRequestClass+0x64>
+ 800b6b8:	2d00      	cmp	r5, #0
+ 800b6ba:	d1f7      	bne.n	800b6ac <LmHandlerRequestClass+0x34>
+ 800b6bc:	2b00      	cmp	r3, #0
+ 800b6be:	d0f4      	beq.n	800b6aa <LmHandlerRequestClass+0x32>
+ 800b6c0:	4668      	mov	r0, sp
+ 800b6c2:	f88d 5004 	strb.w	r5, [sp, #4]
+ 800b6c6:	f002 fd99 	bl	800e1fc <LoRaMacMibSetRequestConfirm>
+ 800b6ca:	2800      	cmp	r0, #0
+ 800b6cc:	d1e6      	bne.n	800b69c <LmHandlerRequestClass+0x24>
+ 800b6ce:	4b0e      	ldr	r3, [pc, #56]	; (800b708 <LmHandlerRequestClass+0x90>)
+ 800b6d0:	681b      	ldr	r3, [r3, #0]
+ 800b6d2:	6b1b      	ldr	r3, [r3, #48]	; 0x30
+ 800b6d4:	2b00      	cmp	r3, #0
+ 800b6d6:	d0e8      	beq.n	800b6aa <LmHandlerRequestClass+0x32>
+ 800b6d8:	4798      	blx	r3
+ 800b6da:	e7e6      	b.n	800b6aa <LmHandlerRequestClass+0x32>
+ 800b6dc:	2b00      	cmp	r3, #0
+ 800b6de:	d1dd      	bne.n	800b69c <LmHandlerRequestClass+0x24>
+ 800b6e0:	4668      	mov	r0, sp
+ 800b6e2:	f88d 5004 	strb.w	r5, [sp, #4]
+ 800b6e6:	f002 fd89 	bl	800e1fc <LoRaMacMibSetRequestConfirm>
+ 800b6ea:	2800      	cmp	r0, #0
+ 800b6ec:	d1d6      	bne.n	800b69c <LmHandlerRequestClass+0x24>
+ 800b6ee:	4b06      	ldr	r3, [pc, #24]	; (800b708 <LmHandlerRequestClass+0x90>)
+ 800b6f0:	681b      	ldr	r3, [r3, #0]
+ 800b6f2:	6b1b      	ldr	r3, [r3, #48]	; 0x30
+ 800b6f4:	2b00      	cmp	r3, #0
+ 800b6f6:	d0d8      	beq.n	800b6aa <LmHandlerRequestClass+0x32>
+ 800b6f8:	4628      	mov	r0, r5
+ 800b6fa:	e7ed      	b.n	800b6d8 <LmHandlerRequestClass+0x60>
+ 800b6fc:	f06f 0001 	mvn.w	r0, #1
+ 800b700:	e7d4      	b.n	800b6ac <LmHandlerRequestClass+0x34>
+ 800b702:	f06f 0002 	mvn.w	r0, #2
+ 800b706:	e7d1      	b.n	800b6ac <LmHandlerRequestClass+0x34>
+ 800b708:	20001070 	.word	0x20001070
+
+0800b70c <LmHandlerJoin>:
+ 800b70c:	b570      	push	{r4, r5, r6, lr}
+ 800b70e:	4c32      	ldr	r4, [pc, #200]	; (800b7d8 <LmHandlerJoin+0xcc>)
+ 800b710:	4b32      	ldr	r3, [pc, #200]	; (800b7dc <LmHandlerJoin+0xd0>)
+ 800b712:	f994 2004 	ldrsb.w	r2, [r4, #4]
+ 800b716:	f994 5005 	ldrsb.w	r5, [r4, #5]
+ 800b71a:	b090      	sub	sp, #64	; 0x40
+ 800b71c:	2601      	movs	r6, #1
+ 800b71e:	2802      	cmp	r0, #2
+ 800b720:	f88d 6004 	strb.w	r6, [sp, #4]
+ 800b724:	f88d 2009 	strb.w	r2, [sp, #9]
+ 800b728:	f88d 500a 	strb.w	r5, [sp, #10]
+ 800b72c:	d10a      	bne.n	800b744 <LmHandlerJoin+0x38>
+ 800b72e:	f88d 0008 	strb.w	r0, [sp, #8]
+ 800b732:	71d8      	strb	r0, [r3, #7]
+ 800b734:	7219      	strb	r1, [r3, #8]
+ 800b736:	f002 fb9f 	bl	800de78 <LoRaMacStart>
+ 800b73a:	a801      	add	r0, sp, #4
+ 800b73c:	f002 ffd2 	bl	800e6e4 <LoRaMacMlmeRequest>
+ 800b740:	b010      	add	sp, #64	; 0x40
+ 800b742:	bd70      	pop	{r4, r5, r6, pc}
+ 800b744:	f44f 7080 	mov.w	r0, #256	; 0x100
+ 800b748:	711a      	strb	r2, [r3, #4]
+ 800b74a:	715d      	strb	r5, [r3, #5]
+ 800b74c:	80d8      	strh	r0, [r3, #6]
+ 800b74e:	7219      	strb	r1, [r3, #8]
+ 800b750:	4b23      	ldr	r3, [pc, #140]	; (800b7e0 <LmHandlerJoin+0xd4>)
+ 800b752:	f88d 6008 	strb.w	r6, [sp, #8]
+ 800b756:	781b      	ldrb	r3, [r3, #0]
+ 800b758:	bb53      	cbnz	r3, 800b7b0 <LmHandlerJoin+0xa4>
+ 800b75a:	231e      	movs	r3, #30
+ 800b75c:	a806      	add	r0, sp, #24
+ 800b75e:	f88d 201c 	strb.w	r2, [sp, #28]
+ 800b762:	f88d 3018 	strb.w	r3, [sp, #24]
+ 800b766:	f002 fd49 	bl	800e1fc <LoRaMacMibSetRequestConfirm>
+ 800b76a:	231f      	movs	r3, #31
+ 800b76c:	f88d 3018 	strb.w	r3, [sp, #24]
+ 800b770:	a806      	add	r0, sp, #24
+ 800b772:	7923      	ldrb	r3, [r4, #4]
+ 800b774:	f88d 301c 	strb.w	r3, [sp, #28]
+ 800b778:	f002 fd40 	bl	800e1fc <LoRaMacMibSetRequestConfirm>
+ 800b77c:	2321      	movs	r3, #33	; 0x21
+ 800b77e:	f88d 3018 	strb.w	r3, [sp, #24]
+ 800b782:	a806      	add	r0, sp, #24
+ 800b784:	7963      	ldrb	r3, [r4, #5]
+ 800b786:	f88d 301c 	strb.w	r3, [sp, #28]
+ 800b78a:	f002 fd37 	bl	800e1fc <LoRaMacMibSetRequestConfirm>
+ 800b78e:	2320      	movs	r3, #32
+ 800b790:	f88d 3018 	strb.w	r3, [sp, #24]
+ 800b794:	a806      	add	r0, sp, #24
+ 800b796:	7963      	ldrb	r3, [r4, #5]
+ 800b798:	f88d 301c 	strb.w	r3, [sp, #28]
+ 800b79c:	f002 fd2e 	bl	800e1fc <LoRaMacMibSetRequestConfirm>
+ 800b7a0:	2328      	movs	r3, #40	; 0x28
+ 800b7a2:	f88d 3018 	strb.w	r3, [sp, #24]
+ 800b7a6:	a806      	add	r0, sp, #24
+ 800b7a8:	4b0e      	ldr	r3, [pc, #56]	; (800b7e4 <LmHandlerJoin+0xd8>)
+ 800b7aa:	9307      	str	r3, [sp, #28]
+ 800b7ac:	f002 fd26 	bl	800e1fc <LoRaMacMibSetRequestConfirm>
+ 800b7b0:	f002 fb62 	bl	800de78 <LoRaMacStart>
+ 800b7b4:	2301      	movs	r3, #1
+ 800b7b6:	a806      	add	r0, sp, #24
+ 800b7b8:	f88d 3018 	strb.w	r3, [sp, #24]
+ 800b7bc:	f88d 301c 	strb.w	r3, [sp, #28]
+ 800b7c0:	f002 fd1c 	bl	800e1fc <LoRaMacMibSetRequestConfirm>
+ 800b7c4:	4b08      	ldr	r3, [pc, #32]	; (800b7e8 <LmHandlerJoin+0xdc>)
+ 800b7c6:	681b      	ldr	r3, [r3, #0]
+ 800b7c8:	6a5b      	ldr	r3, [r3, #36]	; 0x24
+ 800b7ca:	b10b      	cbz	r3, 800b7d0 <LmHandlerJoin+0xc4>
+ 800b7cc:	4803      	ldr	r0, [pc, #12]	; (800b7dc <LmHandlerJoin+0xd0>)
+ 800b7ce:	4798      	blx	r3
+ 800b7d0:	7860      	ldrb	r0, [r4, #1]
+ 800b7d2:	f7ff ff51 	bl	800b678 <LmHandlerRequestClass>
+ 800b7d6:	e7b3      	b.n	800b740 <LmHandlerJoin+0x34>
+ 800b7d8:	20001088 	.word	0x20001088
+ 800b7dc:	20000830 	.word	0x20000830
+ 800b7e0:	20001068 	.word	0x20001068
+ 800b7e4:	01000300 	.word	0x01000300
+ 800b7e8:	20001070 	.word	0x20001070
+
+0800b7ec <LmHandlerIsBusy>:
+ 800b7ec:	b508      	push	{r3, lr}
+ 800b7ee:	f001 fd03 	bl	800d1f8 <LoRaMacIsBusy>
+ 800b7f2:	b940      	cbnz	r0, 800b806 <LmHandlerIsBusy+0x1a>
+ 800b7f4:	f7ff ff2c 	bl	800b650 <LmHandlerJoinStatus>
+ 800b7f8:	2801      	cmp	r0, #1
+ 800b7fa:	d006      	beq.n	800b80a <LmHandlerIsBusy+0x1e>
+ 800b7fc:	4b08      	ldr	r3, [pc, #32]	; (800b820 <LmHandlerIsBusy+0x34>)
+ 800b7fe:	7a19      	ldrb	r1, [r3, #8]
+ 800b800:	79d8      	ldrb	r0, [r3, #7]
+ 800b802:	f7ff ff83 	bl	800b70c <LmHandlerJoin>
+ 800b806:	2001      	movs	r0, #1
+ 800b808:	bd08      	pop	{r3, pc}
+ 800b80a:	4b06      	ldr	r3, [pc, #24]	; (800b824 <LmHandlerIsBusy+0x38>)
+ 800b80c:	681b      	ldr	r3, [r3, #0]
+ 800b80e:	68db      	ldr	r3, [r3, #12]
+ 800b810:	4798      	blx	r3
+ 800b812:	2800      	cmp	r0, #0
+ 800b814:	d1f7      	bne.n	800b806 <LmHandlerIsBusy+0x1a>
+ 800b816:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 800b81a:	f7ff be6d 	b.w	800b4f8 <LmHandlerPackageIsTxPending>
+ 800b81e:	bf00      	nop
+ 800b820:	20000830 	.word	0x20000830
+ 800b824:	20001074 	.word	0x20001074
+
+0800b828 <LmHandlerSend>:
+ 800b828:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800b82c:	b086      	sub	sp, #24
+ 800b82e:	4605      	mov	r5, r0
+ 800b830:	460c      	mov	r4, r1
+ 800b832:	4616      	mov	r6, r2
+ 800b834:	f001 fce0 	bl	800d1f8 <LoRaMacIsBusy>
+ 800b838:	2800      	cmp	r0, #0
+ 800b83a:	f040 808d 	bne.w	800b958 <LmHandlerSend+0x130>
+ 800b83e:	f001 fced 	bl	800d21c <LoRaMacIsStopped>
+ 800b842:	b940      	cbnz	r0, 800b856 <LmHandlerSend+0x2e>
+ 800b844:	f7ff ff04 	bl	800b650 <LmHandlerJoinStatus>
+ 800b848:	2801      	cmp	r0, #1
+ 800b84a:	d007      	beq.n	800b85c <LmHandlerSend+0x34>
+ 800b84c:	4b44      	ldr	r3, [pc, #272]	; (800b960 <LmHandlerSend+0x138>)
+ 800b84e:	7a19      	ldrb	r1, [r3, #8]
+ 800b850:	79d8      	ldrb	r0, [r3, #7]
+ 800b852:	f7ff ff5b 	bl	800b70c <LmHandlerJoin>
+ 800b856:	f06f 0402 	mvn.w	r4, #2
+ 800b85a:	e06d      	b.n	800b938 <LmHandlerSend+0x110>
+ 800b85c:	4f41      	ldr	r7, [pc, #260]	; (800b964 <LmHandlerSend+0x13c>)
+ 800b85e:	683b      	ldr	r3, [r7, #0]
+ 800b860:	68db      	ldr	r3, [r3, #12]
+ 800b862:	4798      	blx	r3
+ 800b864:	b130      	cbz	r0, 800b874 <LmHandlerSend+0x4c>
+ 800b866:	683a      	ldr	r2, [r7, #0]
+ 800b868:	782b      	ldrb	r3, [r5, #0]
+ 800b86a:	7812      	ldrb	r2, [r2, #0]
+ 800b86c:	429a      	cmp	r2, r3
+ 800b86e:	d001      	beq.n	800b874 <LmHandlerSend+0x4c>
+ 800b870:	2b00      	cmp	r3, #0
+ 800b872:	d16e      	bne.n	800b952 <LmHandlerSend+0x12a>
+ 800b874:	4f3c      	ldr	r7, [pc, #240]	; (800b968 <LmHandlerSend+0x140>)
+ 800b876:	f8df 80f4 	ldr.w	r8, [pc, #244]	; 800b96c <LmHandlerSend+0x144>
+ 800b87a:	723c      	strb	r4, [r7, #8]
+ 800b87c:	3c00      	subs	r4, #0
+ 800b87e:	bf18      	it	ne
+ 800b880:	2401      	movne	r4, #1
+ 800b882:	f898 3004 	ldrb.w	r3, [r8, #4]
+ 800b886:	7868      	ldrb	r0, [r5, #1]
+ 800b888:	f88d 4004 	strb.w	r4, [sp, #4]
+ 800b88c:	4669      	mov	r1, sp
+ 800b88e:	f88d 3012 	strb.w	r3, [sp, #18]
+ 800b892:	f002 fb49 	bl	800df28 <LoRaMacQueryTxPossible>
+ 800b896:	2800      	cmp	r0, #0
+ 800b898:	d040      	beq.n	800b91c <LmHandlerSend+0xf4>
+ 800b89a:	2300      	movs	r3, #0
+ 800b89c:	f88d 3004 	strb.w	r3, [sp, #4]
+ 800b8a0:	9303      	str	r3, [sp, #12]
+ 800b8a2:	f8ad 3010 	strh.w	r3, [sp, #16]
+ 800b8a6:	f06f 0406 	mvn.w	r4, #6
+ 800b8aa:	e895 0003 	ldmia.w	r5, {r0, r1}
+ 800b8ae:	4b30      	ldr	r3, [pc, #192]	; (800b970 <LmHandlerSend+0x148>)
+ 800b8b0:	e883 0003 	stmia.w	r3, {r0, r1}
+ 800b8b4:	f898 3004 	ldrb.w	r3, [r8, #4]
+ 800b8b8:	72bb      	strb	r3, [r7, #10]
+ 800b8ba:	4631      	mov	r1, r6
+ 800b8bc:	a801      	add	r0, sp, #4
+ 800b8be:	f003 f809 	bl	800e8d4 <LoRaMacMcpsRequest>
+ 800b8c2:	4b2c      	ldr	r3, [pc, #176]	; (800b974 <LmHandlerSend+0x14c>)
+ 800b8c4:	9a05      	ldr	r2, [sp, #20]
+ 800b8c6:	601a      	str	r2, [r3, #0]
+ 800b8c8:	2811      	cmp	r0, #17
+ 800b8ca:	d83f      	bhi.n	800b94c <LmHandlerSend+0x124>
+ 800b8cc:	a301      	add	r3, pc, #4	; (adr r3, 800b8d4 <LmHandlerSend+0xac>)
+ 800b8ce:	f853 f020 	ldr.w	pc, [r3, r0, lsl #2]
+ 800b8d2:	bf00      	nop
+ 800b8d4:	0800b933 	.word	0x0800b933
+ 800b8d8:	0800b959 	.word	0x0800b959
+ 800b8dc:	0800b94d 	.word	0x0800b94d
+ 800b8e0:	0800b94d 	.word	0x0800b94d
+ 800b8e4:	0800b94d 	.word	0x0800b94d
+ 800b8e8:	0800b94d 	.word	0x0800b94d
+ 800b8ec:	0800b94d 	.word	0x0800b94d
+ 800b8f0:	0800b857 	.word	0x0800b857
+ 800b8f4:	0800b94d 	.word	0x0800b94d
+ 800b8f8:	0800b94d 	.word	0x0800b94d
+ 800b8fc:	0800b94d 	.word	0x0800b94d
+ 800b900:	0800b947 	.word	0x0800b947
+ 800b904:	0800b94d 	.word	0x0800b94d
+ 800b908:	0800b94d 	.word	0x0800b94d
+ 800b90c:	0800b959 	.word	0x0800b959
+ 800b910:	0800b959 	.word	0x0800b959
+ 800b914:	0800b959 	.word	0x0800b959
+ 800b918:	0800b941 	.word	0x0800b941
+ 800b91c:	782b      	ldrb	r3, [r5, #0]
+ 800b91e:	f88d 3008 	strb.w	r3, [sp, #8]
+ 800b922:	786b      	ldrb	r3, [r5, #1]
+ 800b924:	f8ad 3010 	strh.w	r3, [sp, #16]
+ 800b928:	686b      	ldr	r3, [r5, #4]
+ 800b92a:	9303      	str	r3, [sp, #12]
+ 800b92c:	f04f 34ff 	mov.w	r4, #4294967295
+ 800b930:	e7bb      	b.n	800b8aa <LmHandlerSend+0x82>
+ 800b932:	1de3      	adds	r3, r4, #7
+ 800b934:	bf18      	it	ne
+ 800b936:	2400      	movne	r4, #0
+ 800b938:	4620      	mov	r0, r4
+ 800b93a:	b006      	add	sp, #24
+ 800b93c:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800b940:	f06f 0404 	mvn.w	r4, #4
+ 800b944:	e7f8      	b.n	800b938 <LmHandlerSend+0x110>
+ 800b946:	f06f 0405 	mvn.w	r4, #5
+ 800b94a:	e7f5      	b.n	800b938 <LmHandlerSend+0x110>
+ 800b94c:	f04f 34ff 	mov.w	r4, #4294967295
+ 800b950:	e7f2      	b.n	800b938 <LmHandlerSend+0x110>
+ 800b952:	f06f 0403 	mvn.w	r4, #3
+ 800b956:	e7ef      	b.n	800b938 <LmHandlerSend+0x110>
+ 800b958:	f06f 0401 	mvn.w	r4, #1
+ 800b95c:	e7ec      	b.n	800b938 <LmHandlerSend+0x110>
+ 800b95e:	bf00      	nop
+ 800b960:	20000830 	.word	0x20000830
+ 800b964:	20001074 	.word	0x20001074
+ 800b968:	2000085c 	.word	0x2000085c
+ 800b96c:	20001088 	.word	0x20001088
+ 800b970:	2000086c 	.word	0x2000086c
+ 800b974:	2000106c 	.word	0x2000106c
+
+0800b978 <LmHandlerGetCurrentClass>:
+ 800b978:	b510      	push	{r4, lr}
+ 800b97a:	4604      	mov	r4, r0
+ 800b97c:	b08a      	sub	sp, #40	; 0x28
+ 800b97e:	b918      	cbnz	r0, 800b988 <LmHandlerGetCurrentClass+0x10>
+ 800b980:	f04f 30ff 	mov.w	r0, #4294967295
+ 800b984:	b00a      	add	sp, #40	; 0x28
+ 800b986:	bd10      	pop	{r4, pc}
+ 800b988:	2300      	movs	r3, #0
+ 800b98a:	4668      	mov	r0, sp
+ 800b98c:	f88d 3000 	strb.w	r3, [sp]
+ 800b990:	f002 fb22 	bl	800dfd8 <LoRaMacMibGetRequestConfirm>
+ 800b994:	2800      	cmp	r0, #0
+ 800b996:	d1f3      	bne.n	800b980 <LmHandlerGetCurrentClass+0x8>
+ 800b998:	f89d 3004 	ldrb.w	r3, [sp, #4]
+ 800b99c:	7023      	strb	r3, [r4, #0]
+ 800b99e:	e7f1      	b.n	800b984 <LmHandlerGetCurrentClass+0xc>
+
+0800b9a0 <McpsIndication>:
+ 800b9a0:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 800b9a2:	b087      	sub	sp, #28
+ 800b9a4:	2200      	movs	r2, #0
+ 800b9a6:	460b      	mov	r3, r1
+ 800b9a8:	492a      	ldr	r1, [pc, #168]	; (800ba54 <McpsIndication+0xb4>)
+ 800b9aa:	f88d 2007 	strb.w	r2, [sp, #7]
+ 800b9ae:	2201      	movs	r2, #1
+ 800b9b0:	700a      	strb	r2, [r1, #0]
+ 800b9b2:	7842      	ldrb	r2, [r0, #1]
+ 800b9b4:	704a      	strb	r2, [r1, #1]
+ 800b9b6:	4604      	mov	r4, r0
+ 800b9b8:	2a00      	cmp	r2, #0
+ 800b9ba:	d141      	bne.n	800ba40 <McpsIndication+0xa0>
+ 800b9bc:	7902      	ldrb	r2, [r0, #4]
+ 800b9be:	720a      	strb	r2, [r1, #8]
+ 800b9c0:	881a      	ldrh	r2, [r3, #0]
+ 800b9c2:	724a      	strb	r2, [r1, #9]
+ 800b9c4:	789a      	ldrb	r2, [r3, #2]
+ 800b9c6:	728a      	strb	r2, [r1, #10]
+ 800b9c8:	78db      	ldrb	r3, [r3, #3]
+ 800b9ca:	740b      	strb	r3, [r1, #16]
+ 800b9cc:	6903      	ldr	r3, [r0, #16]
+ 800b9ce:	60cb      	str	r3, [r1, #12]
+ 800b9d0:	78c3      	ldrb	r3, [r0, #3]
+ 800b9d2:	4d21      	ldr	r5, [pc, #132]	; (800ba58 <McpsIndication+0xb8>)
+ 800b9d4:	f88d 3008 	strb.w	r3, [sp, #8]
+ 800b9d8:	7b03      	ldrb	r3, [r0, #12]
+ 800b9da:	f88d 3009 	strb.w	r3, [sp, #9]
+ 800b9de:	6883      	ldr	r3, [r0, #8]
+ 800b9e0:	9303      	str	r3, [sp, #12]
+ 800b9e2:	682b      	ldr	r3, [r5, #0]
+ 800b9e4:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800b9e6:	b10b      	cbz	r3, 800b9ec <McpsIndication+0x4c>
+ 800b9e8:	a802      	add	r0, sp, #8
+ 800b9ea:	4798      	blx	r3
+ 800b9ec:	682b      	ldr	r3, [r5, #0]
+ 800b9ee:	6b9b      	ldr	r3, [r3, #56]	; 0x38
+ 800b9f0:	b113      	cbz	r3, 800b9f8 <McpsIndication+0x58>
+ 800b9f2:	7e22      	ldrb	r2, [r4, #24]
+ 800b9f4:	b102      	cbz	r2, 800b9f8 <McpsIndication+0x58>
+ 800b9f6:	4798      	blx	r3
+ 800b9f8:	4e18      	ldr	r6, [pc, #96]	; (800ba5c <McpsIndication+0xbc>)
+ 800b9fa:	2500      	movs	r5, #0
+ 800b9fc:	4637      	mov	r7, r6
+ 800b9fe:	f856 3b04 	ldr.w	r3, [r6], #4
+ 800ba02:	b153      	cbz	r3, 800ba1a <McpsIndication+0x7a>
+ 800ba04:	6a1a      	ldr	r2, [r3, #32]
+ 800ba06:	b142      	cbz	r2, 800ba1a <McpsIndication+0x7a>
+ 800ba08:	781a      	ldrb	r2, [r3, #0]
+ 800ba0a:	78e3      	ldrb	r3, [r4, #3]
+ 800ba0c:	429a      	cmp	r2, r3
+ 800ba0e:	d119      	bne.n	800ba44 <McpsIndication+0xa4>
+ 800ba10:	f856 3c04 	ldr.w	r3, [r6, #-4]
+ 800ba14:	4620      	mov	r0, r4
+ 800ba16:	6a1b      	ldr	r3, [r3, #32]
+ 800ba18:	4798      	blx	r3
+ 800ba1a:	3501      	adds	r5, #1
+ 800ba1c:	b2eb      	uxtb	r3, r5
+ 800ba1e:	2b05      	cmp	r3, #5
+ 800ba20:	b26d      	sxtb	r5, r5
+ 800ba22:	d1ec      	bne.n	800b9fe <McpsIndication+0x5e>
+ 800ba24:	f10d 0007 	add.w	r0, sp, #7
+ 800ba28:	f7ff ffa6 	bl	800b978 <LmHandlerGetCurrentClass>
+ 800ba2c:	7963      	ldrb	r3, [r4, #5]
+ 800ba2e:	b13b      	cbz	r3, 800ba40 <McpsIndication+0xa0>
+ 800ba30:	2100      	movs	r1, #0
+ 800ba32:	2201      	movs	r2, #1
+ 800ba34:	a804      	add	r0, sp, #16
+ 800ba36:	f8ad 1010 	strh.w	r1, [sp, #16]
+ 800ba3a:	9105      	str	r1, [sp, #20]
+ 800ba3c:	f7ff fef4 	bl	800b828 <LmHandlerSend>
+ 800ba40:	b007      	add	sp, #28
+ 800ba42:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 800ba44:	2d00      	cmp	r5, #0
+ 800ba46:	d1e8      	bne.n	800ba1a <McpsIndication+0x7a>
+ 800ba48:	683b      	ldr	r3, [r7, #0]
+ 800ba4a:	68db      	ldr	r3, [r3, #12]
+ 800ba4c:	4798      	blx	r3
+ 800ba4e:	2800      	cmp	r0, #0
+ 800ba50:	d1de      	bne.n	800ba10 <McpsIndication+0x70>
+ 800ba52:	e7e2      	b.n	800ba1a <McpsIndication+0x7a>
+ 800ba54:	20000848 	.word	0x20000848
+ 800ba58:	20001070 	.word	0x20001070
+ 800ba5c:	20001074 	.word	0x20001074
+
+0800ba60 <LmHandlerGetTxDatarate>:
+ 800ba60:	b510      	push	{r4, lr}
+ 800ba62:	4604      	mov	r4, r0
+ 800ba64:	b08a      	sub	sp, #40	; 0x28
+ 800ba66:	b918      	cbnz	r0, 800ba70 <LmHandlerGetTxDatarate+0x10>
+ 800ba68:	f04f 30ff 	mov.w	r0, #4294967295
+ 800ba6c:	b00a      	add	sp, #40	; 0x28
+ 800ba6e:	bd10      	pop	{r4, pc}
+ 800ba70:	231f      	movs	r3, #31
+ 800ba72:	4668      	mov	r0, sp
+ 800ba74:	f88d 3000 	strb.w	r3, [sp]
+ 800ba78:	f002 faae 	bl	800dfd8 <LoRaMacMibGetRequestConfirm>
+ 800ba7c:	2800      	cmp	r0, #0
+ 800ba7e:	d1f3      	bne.n	800ba68 <LmHandlerGetTxDatarate+0x8>
+ 800ba80:	4a02      	ldr	r2, [pc, #8]	; (800ba8c <LmHandlerGetTxDatarate+0x2c>)
+ 800ba82:	f99d 3004 	ldrsb.w	r3, [sp, #4]
+ 800ba86:	7023      	strb	r3, [r4, #0]
+ 800ba88:	7113      	strb	r3, [r2, #4]
+ 800ba8a:	e7ef      	b.n	800ba6c <LmHandlerGetTxDatarate+0xc>
+ 800ba8c:	20001088 	.word	0x20001088
+
+0800ba90 <LmHandlerSetSystemMaxRxError>:
+ 800ba90:	b500      	push	{lr}
+ 800ba92:	b08b      	sub	sp, #44	; 0x2c
+ 800ba94:	2322      	movs	r3, #34	; 0x22
+ 800ba96:	9001      	str	r0, [sp, #4]
+ 800ba98:	4668      	mov	r0, sp
+ 800ba9a:	f88d 3000 	strb.w	r3, [sp]
+ 800ba9e:	f002 fbad 	bl	800e1fc <LoRaMacMibSetRequestConfirm>
+ 800baa2:	3800      	subs	r0, #0
+ 800baa4:	bf18      	it	ne
+ 800baa6:	2001      	movne	r0, #1
+ 800baa8:	4240      	negs	r0, r0
+ 800baaa:	b00b      	add	sp, #44	; 0x2c
+ 800baac:	f85d fb04 	ldr.w	pc, [sp], #4
+
+0800bab0 <LmHandlerConfigure>:
+ 800bab0:	b570      	push	{r4, r5, r6, lr}
+ 800bab2:	4c63      	ldr	r4, [pc, #396]	; (800bc40 <LmHandlerConfigure+0x190>)
+ 800bab4:	4601      	mov	r1, r0
+ 800bab6:	2218      	movs	r2, #24
+ 800bab8:	b08e      	sub	sp, #56	; 0x38
+ 800baba:	4620      	mov	r0, r4
+ 800babc:	f005 ff66 	bl	801198c <memcpy1>
+ 800bac0:	f7f8 fe52 	bl	8004768 <LoraInfo_GetPtr>
+ 800bac4:	7823      	ldrb	r3, [r4, #0]
+ 800bac6:	6840      	ldr	r0, [r0, #4]
+ 800bac8:	2201      	movs	r2, #1
+ 800baca:	fa02 f103 	lsl.w	r1, r2, r3
+ 800bace:	4001      	ands	r1, r0
+ 800bad0:	d104      	bne.n	800badc <LmHandlerConfigure+0x2c>
+ 800bad2:	4b5c      	ldr	r3, [pc, #368]	; (800bc44 <LmHandlerConfigure+0x194>)
+ 800bad4:	4608      	mov	r0, r1
+ 800bad6:	f007 ff4f 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 800bada:	e7fe      	b.n	800bada <LmHandlerConfigure+0x2a>
+ 800badc:	495a      	ldr	r1, [pc, #360]	; (800bc48 <LmHandlerConfigure+0x198>)
+ 800bade:	485b      	ldr	r0, [pc, #364]	; (800bc4c <LmHandlerConfigure+0x19c>)
+ 800bae0:	461a      	mov	r2, r3
+ 800bae2:	f002 f811 	bl	800db08 <LoRaMacInitialization>
+ 800bae6:	b118      	cbz	r0, 800baf0 <LmHandlerConfigure+0x40>
+ 800bae8:	f04f 30ff 	mov.w	r0, #4294967295
+ 800baec:	b00e      	add	sp, #56	; 0x38
+ 800baee:	bd70      	pop	{r4, r5, r6, pc}
+ 800baf0:	2326      	movs	r3, #38	; 0x26
+ 800baf2:	a804      	add	r0, sp, #16
+ 800baf4:	f88d 3010 	strb.w	r3, [sp, #16]
+ 800baf8:	f002 fb80 	bl	800e1fc <LoRaMacMibSetRequestConfirm>
+ 800bafc:	4e54      	ldr	r6, [pc, #336]	; (800bc50 <LmHandlerConfigure+0x1a0>)
+ 800bafe:	4d55      	ldr	r5, [pc, #340]	; (800bc54 <LmHandlerConfigure+0x1a4>)
+ 800bb00:	2800      	cmp	r0, #0
+ 800bb02:	d170      	bne.n	800bbe6 <LmHandlerConfigure+0x136>
+ 800bb04:	2301      	movs	r3, #1
+ 800bb06:	7033      	strb	r3, [r6, #0]
+ 800bb08:	682b      	ldr	r3, [r5, #0]
+ 800bb0a:	69db      	ldr	r3, [r3, #28]
+ 800bb0c:	b10b      	cbz	r3, 800bb12 <LmHandlerConfigure+0x62>
+ 800bb0e:	2000      	movs	r0, #0
+ 800bb10:	4798      	blx	r3
+ 800bb12:	2326      	movs	r3, #38	; 0x26
+ 800bb14:	a804      	add	r0, sp, #16
+ 800bb16:	f88d 3010 	strb.w	r3, [sp, #16]
+ 800bb1a:	f002 fa5d 	bl	800dfd8 <LoRaMacMibGetRequestConfirm>
+ 800bb1e:	9b05      	ldr	r3, [sp, #20]
+ 800bb20:	f893 2048 	ldrb.w	r2, [r3, #72]	; 0x48
+ 800bb24:	7022      	strb	r2, [r4, #0]
+ 800bb26:	f893 2118 	ldrb.w	r2, [r3, #280]	; 0x118
+ 800bb2a:	f893 311a 	ldrb.w	r3, [r3, #282]	; 0x11a
+ 800bb2e:	7062      	strb	r2, [r4, #1]
+ 800bb30:	70a3      	strb	r3, [r4, #2]
+ 800bb32:	4b45      	ldr	r3, [pc, #276]	; (800bc48 <LmHandlerConfigure+0x198>)
+ 800bb34:	e9d3 0102 	ldrd	r0, r1, [r3, #8]
+ 800bb38:	f005 fe1a 	bl	8011770 <SecureElementInitMcuID>
+ 800bb3c:	4605      	mov	r5, r0
+ 800bb3e:	2800      	cmp	r0, #0
+ 800bb40:	d1d2      	bne.n	800bae8 <LmHandlerConfigure+0x38>
+ 800bb42:	4e45      	ldr	r6, [pc, #276]	; (800bc58 <LmHandlerConfigure+0x1a8>)
+ 800bb44:	2306      	movs	r3, #6
+ 800bb46:	a804      	add	r0, sp, #16
+ 800bb48:	f88d 3010 	strb.w	r3, [sp, #16]
+ 800bb4c:	f002 fa44 	bl	800dfd8 <LoRaMacMibGetRequestConfirm>
+ 800bb50:	9b05      	ldr	r3, [sp, #20]
+ 800bb52:	6173      	str	r3, [r6, #20]
+ 800bb54:	a804      	add	r0, sp, #16
+ 800bb56:	f002 fb51 	bl	800e1fc <LoRaMacMibSetRequestConfirm>
+ 800bb5a:	2302      	movs	r3, #2
+ 800bb5c:	a804      	add	r0, sp, #16
+ 800bb5e:	f88d 3010 	strb.w	r3, [sp, #16]
+ 800bb62:	9605      	str	r6, [sp, #20]
+ 800bb64:	f002 fa38 	bl	800dfd8 <LoRaMacMibGetRequestConfirm>
+ 800bb68:	3608      	adds	r6, #8
+ 800bb6a:	2303      	movs	r3, #3
+ 800bb6c:	a804      	add	r0, sp, #16
+ 800bb6e:	f88d 3010 	strb.w	r3, [sp, #16]
+ 800bb72:	9605      	str	r6, [sp, #20]
+ 800bb74:	f002 fa30 	bl	800dfd8 <LoRaMacMibGetRequestConfirm>
+ 800bb78:	260f      	movs	r6, #15
+ 800bb7a:	f005 febd 	bl	80118f8 <SecureElementPrintKeys>
+ 800bb7e:	2301      	movs	r3, #1
+ 800bb80:	a804      	add	r0, sp, #16
+ 800bb82:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800bb86:	f88d 6010 	strb.w	r6, [sp, #16]
+ 800bb8a:	f002 fb37 	bl	800e1fc <LoRaMacMibSetRequestConfirm>
+ 800bb8e:	2310      	movs	r3, #16
+ 800bb90:	eb0d 0003 	add.w	r0, sp, r3
+ 800bb94:	f88d 3010 	strb.w	r3, [sp, #16]
+ 800bb98:	f88d 5014 	strb.w	r5, [sp, #20]
+ 800bb9c:	f002 fb2e 	bl	800e1fc <LoRaMacMibSetRequestConfirm>
+ 800bba0:	2304      	movs	r3, #4
+ 800bba2:	f88d 3010 	strb.w	r3, [sp, #16]
+ 800bba6:	a804      	add	r0, sp, #16
+ 800bba8:	78a3      	ldrb	r3, [r4, #2]
+ 800bbaa:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800bbae:	f002 fb25 	bl	800e1fc <LoRaMacMibSetRequestConfirm>
+ 800bbb2:	2339      	movs	r3, #57	; 0x39
+ 800bbb4:	f88d 3010 	strb.w	r3, [sp, #16]
+ 800bbb8:	a804      	add	r0, sp, #16
+ 800bbba:	6963      	ldr	r3, [r4, #20]
+ 800bbbc:	9305      	str	r3, [sp, #20]
+ 800bbbe:	f002 fb1d 	bl	800e1fc <LoRaMacMibSetRequestConfirm>
+ 800bbc2:	a902      	add	r1, sp, #8
+ 800bbc4:	7820      	ldrb	r0, [r4, #0]
+ 800bbc6:	f88d 6008 	strb.w	r6, [sp, #8]
+ 800bbca:	f003 ff51 	bl	800fa70 <RegionGetPhyParam>
+ 800bbce:	3800      	subs	r0, #0
+ 800bbd0:	bf18      	it	ne
+ 800bbd2:	2001      	movne	r0, #1
+ 800bbd4:	71e0      	strb	r0, [r4, #7]
+ 800bbd6:	2014      	movs	r0, #20
+ 800bbd8:	f7ff ff5a 	bl	800ba90 <LmHandlerSetSystemMaxRxError>
+ 800bbdc:	79e0      	ldrb	r0, [r4, #7]
+ 800bbde:	f003 f803 	bl	800ebe8 <LoRaMacTestSetDutyCycleOn>
+ 800bbe2:	4628      	mov	r0, r5
+ 800bbe4:	e782      	b.n	800baec <LmHandlerConfigure+0x3c>
+ 800bbe6:	2327      	movs	r3, #39	; 0x27
+ 800bbe8:	f88d 3010 	strb.w	r3, [sp, #16]
+ 800bbec:	682b      	ldr	r3, [r5, #0]
+ 800bbee:	691b      	ldr	r3, [r3, #16]
+ 800bbf0:	b143      	cbz	r3, 800bc04 <LmHandlerConfigure+0x154>
+ 800bbf2:	a804      	add	r0, sp, #16
+ 800bbf4:	f002 f9f0 	bl	800dfd8 <LoRaMacMibGetRequestConfirm>
+ 800bbf8:	682b      	ldr	r3, [r5, #0]
+ 800bbfa:	9805      	ldr	r0, [sp, #20]
+ 800bbfc:	691b      	ldr	r3, [r3, #16]
+ 800bbfe:	f44f 61ee 	mov.w	r1, #1904	; 0x770
+ 800bc02:	4798      	blx	r3
+ 800bc04:	2326      	movs	r3, #38	; 0x26
+ 800bc06:	a804      	add	r0, sp, #16
+ 800bc08:	f88d 3010 	strb.w	r3, [sp, #16]
+ 800bc0c:	f002 faf6 	bl	800e1fc <LoRaMacMibSetRequestConfirm>
+ 800bc10:	b950      	cbnz	r0, 800bc28 <LmHandlerConfigure+0x178>
+ 800bc12:	2301      	movs	r3, #1
+ 800bc14:	a804      	add	r0, sp, #16
+ 800bc16:	f88d 3010 	strb.w	r3, [sp, #16]
+ 800bc1a:	f002 f9dd 	bl	800dfd8 <LoRaMacMibGetRequestConfirm>
+ 800bc1e:	f89d 3014 	ldrb.w	r3, [sp, #20]
+ 800bc22:	2b00      	cmp	r3, #0
+ 800bc24:	f47f af6e 	bne.w	800bb04 <LmHandlerConfigure+0x54>
+ 800bc28:	7833      	ldrb	r3, [r6, #0]
+ 800bc2a:	2b00      	cmp	r3, #0
+ 800bc2c:	f47f af6c 	bne.w	800bb08 <LmHandlerConfigure+0x58>
+ 800bc30:	2205      	movs	r2, #5
+ 800bc32:	a804      	add	r0, sp, #16
+ 800bc34:	f88d 2010 	strb.w	r2, [sp, #16]
+ 800bc38:	9305      	str	r3, [sp, #20]
+ 800bc3a:	f002 fadf 	bl	800e1fc <LoRaMacMibSetRequestConfirm>
+ 800bc3e:	e778      	b.n	800bb32 <LmHandlerConfigure+0x82>
+ 800bc40:	20001088 	.word	0x20001088
+ 800bc44:	080152a8 	.word	0x080152a8
+ 800bc48:	200010a0 	.word	0x200010a0
+ 800bc4c:	200010b8 	.word	0x200010b8
+ 800bc50:	20001068 	.word	0x20001068
+ 800bc54:	20001070 	.word	0x20001070
+ 800bc58:	20001050 	.word	0x20001050
+
+0800bc5c <LmHandlerPackageRegister>:
+ 800bc5c:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 800bc5e:	2300      	movs	r3, #0
+ 800bc60:	460d      	mov	r5, r1
+ 800bc62:	9301      	str	r3, [sp, #4]
+ 800bc64:	4604      	mov	r4, r0
+ 800bc66:	b9c0      	cbnz	r0, 800bc9a <LmHandlerPackageRegister+0x3e>
+ 800bc68:	f000 fad0 	bl	800c20c <LmhpCompliancePackageFactory>
+ 800bc6c:	9001      	str	r0, [sp, #4]
+ 800bc6e:	9b01      	ldr	r3, [sp, #4]
+ 800bc70:	b1c3      	cbz	r3, 800bca4 <LmHandlerPackageRegister+0x48>
+ 800bc72:	4a0e      	ldr	r2, [pc, #56]	; (800bcac <LmHandlerPackageRegister+0x50>)
+ 800bc74:	490e      	ldr	r1, [pc, #56]	; (800bcb0 <LmHandlerPackageRegister+0x54>)
+ 800bc76:	f842 3024 	str.w	r3, [r2, r4, lsl #2]
+ 800bc7a:	4a0e      	ldr	r2, [pc, #56]	; (800bcb4 <LmHandlerPackageRegister+0x58>)
+ 800bc7c:	62da      	str	r2, [r3, #44]	; 0x2c
+ 800bc7e:	4a0e      	ldr	r2, [pc, #56]	; (800bcb8 <LmHandlerPackageRegister+0x5c>)
+ 800bc80:	631a      	str	r2, [r3, #48]	; 0x30
+ 800bc82:	4a0e      	ldr	r2, [pc, #56]	; (800bcbc <LmHandlerPackageRegister+0x60>)
+ 800bc84:	635a      	str	r2, [r3, #52]	; 0x34
+ 800bc86:	4a0e      	ldr	r2, [pc, #56]	; (800bcc0 <LmHandlerPackageRegister+0x64>)
+ 800bc88:	6812      	ldr	r2, [r2, #0]
+ 800bc8a:	6992      	ldr	r2, [r2, #24]
+ 800bc8c:	619a      	str	r2, [r3, #24]
+ 800bc8e:	4628      	mov	r0, r5
+ 800bc90:	685b      	ldr	r3, [r3, #4]
+ 800bc92:	22f2      	movs	r2, #242	; 0xf2
+ 800bc94:	4798      	blx	r3
+ 800bc96:	2000      	movs	r0, #0
+ 800bc98:	e006      	b.n	800bca8 <LmHandlerPackageRegister+0x4c>
+ 800bc9a:	a901      	add	r1, sp, #4
+ 800bc9c:	f000 fabc 	bl	800c218 <LmhpPackagesRegister>
+ 800bca0:	2800      	cmp	r0, #0
+ 800bca2:	d0e4      	beq.n	800bc6e <LmHandlerPackageRegister+0x12>
+ 800bca4:	f04f 30ff 	mov.w	r0, #4294967295
+ 800bca8:	b003      	add	sp, #12
+ 800bcaa:	bd30      	pop	{r4, r5, pc}
+ 800bcac:	20001074 	.word	0x20001074
+ 800bcb0:	20000f5c 	.word	0x20000f5c
+ 800bcb4:	0800b70d 	.word	0x0800b70d
+ 800bcb8:	0800b829 	.word	0x0800b829
+ 800bcbc:	0800b525 	.word	0x0800b525
+ 800bcc0:	20001070 	.word	0x20001070
+
+0800bcc4 <LmHandlerInit>:
+ 800bcc4:	4b15      	ldr	r3, [pc, #84]	; (800bd1c <LmHandlerInit+0x58>)
+ 800bcc6:	b507      	push	{r0, r1, r2, lr}
+ 800bcc8:	6018      	str	r0, [r3, #0]
+ 800bcca:	4b15      	ldr	r3, [pc, #84]	; (800bd20 <LmHandlerInit+0x5c>)
+ 800bccc:	4a15      	ldr	r2, [pc, #84]	; (800bd24 <LmHandlerInit+0x60>)
+ 800bcce:	601a      	str	r2, [r3, #0]
+ 800bcd0:	4a15      	ldr	r2, [pc, #84]	; (800bd28 <LmHandlerInit+0x64>)
+ 800bcd2:	605a      	str	r2, [r3, #4]
+ 800bcd4:	4a15      	ldr	r2, [pc, #84]	; (800bd2c <LmHandlerInit+0x68>)
+ 800bcd6:	609a      	str	r2, [r3, #8]
+ 800bcd8:	4a15      	ldr	r2, [pc, #84]	; (800bd30 <LmHandlerInit+0x6c>)
+ 800bcda:	60da      	str	r2, [r3, #12]
+ 800bcdc:	4b15      	ldr	r3, [pc, #84]	; (800bd34 <LmHandlerInit+0x70>)
+ 800bcde:	6802      	ldr	r2, [r0, #0]
+ 800bce0:	601a      	str	r2, [r3, #0]
+ 800bce2:	6842      	ldr	r2, [r0, #4]
+ 800bce4:	605a      	str	r2, [r3, #4]
+ 800bce6:	6882      	ldr	r2, [r0, #8]
+ 800bce8:	609a      	str	r2, [r3, #8]
+ 800bcea:	68c2      	ldr	r2, [r0, #12]
+ 800bcec:	60da      	str	r2, [r3, #12]
+ 800bcee:	4a12      	ldr	r2, [pc, #72]	; (800bd38 <LmHandlerInit+0x74>)
+ 800bcf0:	9101      	str	r1, [sp, #4]
+ 800bcf2:	611a      	str	r2, [r3, #16]
+ 800bcf4:	4911      	ldr	r1, [pc, #68]	; (800bd3c <LmHandlerInit+0x78>)
+ 800bcf6:	6982      	ldr	r2, [r0, #24]
+ 800bcf8:	615a      	str	r2, [r3, #20]
+ 800bcfa:	2000      	movs	r0, #0
+ 800bcfc:	f7ff ffae 	bl	800bc5c <LmHandlerPackageRegister>
+ 800bd00:	b948      	cbnz	r0, 800bd16 <LmHandlerInit+0x52>
+ 800bd02:	a801      	add	r0, sp, #4
+ 800bd04:	f000 fa86 	bl	800c214 <LmhpPackagesRegistrationInit>
+ 800bd08:	3800      	subs	r0, #0
+ 800bd0a:	bf18      	it	ne
+ 800bd0c:	2001      	movne	r0, #1
+ 800bd0e:	4240      	negs	r0, r0
+ 800bd10:	b003      	add	sp, #12
+ 800bd12:	f85d fb04 	ldr.w	pc, [sp], #4
+ 800bd16:	f04f 30ff 	mov.w	r0, #4294967295
+ 800bd1a:	e7f9      	b.n	800bd10 <LmHandlerInit+0x4c>
+ 800bd1c:	20001070 	.word	0x20001070
+ 800bd20:	200010b8 	.word	0x200010b8
+ 800bd24:	0800b5b1 	.word	0x0800b5b1
+ 800bd28:	0800b9a1 	.word	0x0800b9a1
+ 800bd2c:	0800bdbd 	.word	0x0800bdbd
+ 800bd30:	0800b54d 	.word	0x0800b54d
+ 800bd34:	200010a0 	.word	0x200010a0
+ 800bd38:	0800fa21 	.word	0x0800fa21
+ 800bd3c:	2000083c 	.word	0x2000083c
+
+0800bd40 <LmHandlerGetVersion>:
+ 800bd40:	b151      	cbz	r1, 800bd58 <LmHandlerGetVersion+0x18>
+ 800bd42:	b118      	cbz	r0, 800bd4c <LmHandlerGetVersion+0xc>
+ 800bd44:	2801      	cmp	r0, #1
+ 800bd46:	d004      	beq.n	800bd52 <LmHandlerGetVersion+0x12>
+ 800bd48:	2000      	movs	r0, #0
+ 800bd4a:	4770      	bx	lr
+ 800bd4c:	4b04      	ldr	r3, [pc, #16]	; (800bd60 <LmHandlerGetVersion+0x20>)
+ 800bd4e:	600b      	str	r3, [r1, #0]
+ 800bd50:	4770      	bx	lr
+ 800bd52:	4b04      	ldr	r3, [pc, #16]	; (800bd64 <LmHandlerGetVersion+0x24>)
+ 800bd54:	600b      	str	r3, [r1, #0]
+ 800bd56:	e7f7      	b.n	800bd48 <LmHandlerGetVersion+0x8>
+ 800bd58:	f04f 30ff 	mov.w	r0, #4294967295
+ 800bd5c:	4770      	bx	lr
+ 800bd5e:	bf00      	nop
+ 800bd60:	01000300 	.word	0x01000300
+ 800bd64:	01010003 	.word	0x01010003
+
+0800bd68 <LmHandlerStop>:
+ 800bd68:	b508      	push	{r3, lr}
+ 800bd6a:	f002 ff59 	bl	800ec20 <LoRaMacDeInitialization>
+ 800bd6e:	2800      	cmp	r0, #0
+ 800bd70:	bf14      	ite	ne
+ 800bd72:	f06f 0001 	mvnne.w	r0, #1
+ 800bd76:	2000      	moveq	r0, #0
+ 800bd78:	bd08      	pop	{r3, pc}
+
+0800bd7a <LmHandlerHalt>:
+ 800bd7a:	b508      	push	{r3, lr}
+ 800bd7c:	f002 f8a4 	bl	800dec8 <LoRaMacHalt>
+ 800bd80:	2800      	cmp	r0, #0
+ 800bd82:	bf14      	ite	ne
+ 800bd84:	f06f 0001 	mvnne.w	r0, #1
+ 800bd88:	2000      	moveq	r0, #0
+ 800bd8a:	bd08      	pop	{r3, pc}
+
+0800bd8c <LmHandlerGetTxPower>:
+ 800bd8c:	b510      	push	{r4, lr}
+ 800bd8e:	4604      	mov	r4, r0
+ 800bd90:	b08a      	sub	sp, #40	; 0x28
+ 800bd92:	b918      	cbnz	r0, 800bd9c <LmHandlerGetTxPower+0x10>
+ 800bd94:	f04f 30ff 	mov.w	r0, #4294967295
+ 800bd98:	b00a      	add	sp, #40	; 0x28
+ 800bd9a:	bd10      	pop	{r4, pc}
+ 800bd9c:	2320      	movs	r3, #32
+ 800bd9e:	4668      	mov	r0, sp
+ 800bda0:	f88d 3000 	strb.w	r3, [sp]
+ 800bda4:	f002 f918 	bl	800dfd8 <LoRaMacMibGetRequestConfirm>
+ 800bda8:	2800      	cmp	r0, #0
+ 800bdaa:	d1f3      	bne.n	800bd94 <LmHandlerGetTxPower+0x8>
+ 800bdac:	4a02      	ldr	r2, [pc, #8]	; (800bdb8 <LmHandlerGetTxPower+0x2c>)
+ 800bdae:	f99d 3004 	ldrsb.w	r3, [sp, #4]
+ 800bdb2:	7023      	strb	r3, [r4, #0]
+ 800bdb4:	7153      	strb	r3, [r2, #5]
+ 800bdb6:	e7ef      	b.n	800bd98 <LmHandlerGetTxPower+0xc>
+ 800bdb8:	20001088 	.word	0x20001088
+
+0800bdbc <MlmeConfirm>:
+ 800bdbc:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800bdc0:	4d2f      	ldr	r5, [pc, #188]	; (800be80 <MlmeConfirm+0xc4>)
+ 800bdc2:	4f30      	ldr	r7, [pc, #192]	; (800be84 <MlmeConfirm+0xc8>)
+ 800bdc4:	2300      	movs	r3, #0
+ 800bdc6:	702b      	strb	r3, [r5, #0]
+ 800bdc8:	7843      	ldrb	r3, [r0, #1]
+ 800bdca:	706b      	strb	r3, [r5, #1]
+ 800bdcc:	683b      	ldr	r3, [r7, #0]
+ 800bdce:	6a9b      	ldr	r3, [r3, #40]	; 0x28
+ 800bdd0:	b08a      	sub	sp, #40	; 0x28
+ 800bdd2:	4604      	mov	r4, r0
+ 800bdd4:	b10b      	cbz	r3, 800bdda <MlmeConfirm+0x1e>
+ 800bdd6:	4628      	mov	r0, r5
+ 800bdd8:	4798      	blx	r3
+ 800bdda:	f8df 80ac 	ldr.w	r8, [pc, #172]	; 800be88 <MlmeConfirm+0xcc>
+ 800bdde:	2600      	movs	r6, #0
+ 800bde0:	f858 3b04 	ldr.w	r3, [r8], #4
+ 800bde4:	b11b      	cbz	r3, 800bdee <MlmeConfirm+0x32>
+ 800bde6:	6a5b      	ldr	r3, [r3, #36]	; 0x24
+ 800bde8:	b10b      	cbz	r3, 800bdee <MlmeConfirm+0x32>
+ 800bdea:	4620      	mov	r0, r4
+ 800bdec:	4798      	blx	r3
+ 800bdee:	3601      	adds	r6, #1
+ 800bdf0:	b2f3      	uxtb	r3, r6
+ 800bdf2:	2b05      	cmp	r3, #5
+ 800bdf4:	b276      	sxtb	r6, r6
+ 800bdf6:	d1f3      	bne.n	800bde0 <MlmeConfirm+0x24>
+ 800bdf8:	7823      	ldrb	r3, [r4, #0]
+ 800bdfa:	2b05      	cmp	r3, #5
+ 800bdfc:	d02f      	beq.n	800be5e <MlmeConfirm+0xa2>
+ 800bdfe:	2b0c      	cmp	r3, #12
+ 800be00:	d035      	beq.n	800be6e <MlmeConfirm+0xb2>
+ 800be02:	2b01      	cmp	r3, #1
+ 800be04:	d125      	bne.n	800be52 <MlmeConfirm+0x96>
+ 800be06:	4c21      	ldr	r4, [pc, #132]	; (800be8c <MlmeConfirm+0xd0>)
+ 800be08:	2306      	movs	r3, #6
+ 800be0a:	4668      	mov	r0, sp
+ 800be0c:	f88d 3000 	strb.w	r3, [sp]
+ 800be10:	f002 f8e2 	bl	800dfd8 <LoRaMacMibGetRequestConfirm>
+ 800be14:	9901      	ldr	r1, [sp, #4]
+ 800be16:	79e0      	ldrb	r0, [r4, #7]
+ 800be18:	f005 fcf0 	bl	80117fc <SecureElementSetDevAddr>
+ 800be1c:	b910      	cbnz	r0, 800be24 <MlmeConfirm+0x68>
+ 800be1e:	4b1c      	ldr	r3, [pc, #112]	; (800be90 <MlmeConfirm+0xd4>)
+ 800be20:	9a01      	ldr	r2, [sp, #4]
+ 800be22:	615a      	str	r2, [r3, #20]
+ 800be24:	481b      	ldr	r0, [pc, #108]	; (800be94 <MlmeConfirm+0xd8>)
+ 800be26:	f7ff fe1b 	bl	800ba60 <LmHandlerGetTxDatarate>
+ 800be2a:	481b      	ldr	r0, [pc, #108]	; (800be98 <MlmeConfirm+0xdc>)
+ 800be2c:	f7ff ffae 	bl	800bd8c <LmHandlerGetTxPower>
+ 800be30:	786b      	ldrb	r3, [r5, #1]
+ 800be32:	b98b      	cbnz	r3, 800be58 <MlmeConfirm+0x9c>
+ 800be34:	71a3      	strb	r3, [r4, #6]
+ 800be36:	4b19      	ldr	r3, [pc, #100]	; (800be9c <MlmeConfirm+0xe0>)
+ 800be38:	7858      	ldrb	r0, [r3, #1]
+ 800be3a:	f7ff fc1d 	bl	800b678 <LmHandlerRequestClass>
+ 800be3e:	683b      	ldr	r3, [r7, #0]
+ 800be40:	6a5b      	ldr	r3, [r3, #36]	; 0x24
+ 800be42:	b10b      	cbz	r3, 800be48 <MlmeConfirm+0x8c>
+ 800be44:	4811      	ldr	r0, [pc, #68]	; (800be8c <MlmeConfirm+0xd0>)
+ 800be46:	4798      	blx	r3
+ 800be48:	786b      	ldrb	r3, [r5, #1]
+ 800be4a:	b913      	cbnz	r3, 800be52 <MlmeConfirm+0x96>
+ 800be4c:	79e0      	ldrb	r0, [r4, #7]
+ 800be4e:	f005 fd65 	bl	801191c <SecureElementPrintSessionKeys>
+ 800be52:	b00a      	add	sp, #40	; 0x28
+ 800be54:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800be58:	23ff      	movs	r3, #255	; 0xff
+ 800be5a:	71a3      	strb	r3, [r4, #6]
+ 800be5c:	e7ef      	b.n	800be3e <MlmeConfirm+0x82>
+ 800be5e:	4b10      	ldr	r3, [pc, #64]	; (800bea0 <MlmeConfirm+0xe4>)
+ 800be60:	2201      	movs	r2, #1
+ 800be62:	745a      	strb	r2, [r3, #17]
+ 800be64:	7a22      	ldrb	r2, [r4, #8]
+ 800be66:	749a      	strb	r2, [r3, #18]
+ 800be68:	7a62      	ldrb	r2, [r4, #9]
+ 800be6a:	74da      	strb	r2, [r3, #19]
+ 800be6c:	e7f1      	b.n	800be52 <MlmeConfirm+0x96>
+ 800be6e:	7863      	ldrb	r3, [r4, #1]
+ 800be70:	2b00      	cmp	r3, #0
+ 800be72:	d0ee      	beq.n	800be52 <MlmeConfirm+0x96>
+ 800be74:	b00a      	add	sp, #40	; 0x28
+ 800be76:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
+ 800be7a:	f7ff bb53 	b.w	800b524 <LmHandlerDeviceTimeReq>
+ 800be7e:	bf00      	nop
+ 800be80:	2000085c 	.word	0x2000085c
+ 800be84:	20001070 	.word	0x20001070
+ 800be88:	20001074 	.word	0x20001074
+ 800be8c:	20000830 	.word	0x20000830
+ 800be90:	20001050 	.word	0x20001050
+ 800be94:	20000834 	.word	0x20000834
+ 800be98:	20000835 	.word	0x20000835
+ 800be9c:	20001088 	.word	0x20001088
+ 800bea0:	20000848 	.word	0x20000848
+
+0800bea4 <LmHandlerNvmDataStore>:
+ 800bea4:	b530      	push	{r4, r5, lr}
+ 800bea6:	b08b      	sub	sp, #44	; 0x2c
+ 800bea8:	f7ff ff67 	bl	800bd7a <LmHandlerHalt>
+ 800beac:	4604      	mov	r4, r0
+ 800beae:	b9f0      	cbnz	r0, 800beee <LmHandlerNvmDataStore+0x4a>
+ 800beb0:	f003 fdbe 	bl	800fa30 <NvmDataMgmtStoreBegin>
+ 800beb4:	1c83      	adds	r3, r0, #2
+ 800beb6:	d01d      	beq.n	800bef4 <LmHandlerNvmDataStore+0x50>
+ 800beb8:	b9f8      	cbnz	r0, 800befa <LmHandlerNvmDataStore+0x56>
+ 800beba:	4d13      	ldr	r5, [pc, #76]	; (800bf08 <LmHandlerNvmDataStore+0x64>)
+ 800bebc:	682b      	ldr	r3, [r5, #0]
+ 800bebe:	695b      	ldr	r3, [r3, #20]
+ 800bec0:	b1db      	cbz	r3, 800befa <LmHandlerNvmDataStore+0x56>
+ 800bec2:	2326      	movs	r3, #38	; 0x26
+ 800bec4:	4668      	mov	r0, sp
+ 800bec6:	f88d 3000 	strb.w	r3, [sp]
+ 800beca:	f002 f885 	bl	800dfd8 <LoRaMacMibGetRequestConfirm>
+ 800bece:	682b      	ldr	r3, [r5, #0]
+ 800bed0:	9801      	ldr	r0, [sp, #4]
+ 800bed2:	695b      	ldr	r3, [r3, #20]
+ 800bed4:	f44f 61ee 	mov.w	r1, #1904	; 0x770
+ 800bed8:	4798      	blx	r3
+ 800beda:	f003 fdbb 	bl	800fa54 <NvmDataMgmtStoreEnd>
+ 800bede:	b978      	cbnz	r0, 800bf00 <LmHandlerNvmDataStore+0x5c>
+ 800bee0:	b92c      	cbnz	r4, 800beee <LmHandlerNvmDataStore+0x4a>
+ 800bee2:	4b09      	ldr	r3, [pc, #36]	; (800bf08 <LmHandlerNvmDataStore+0x64>)
+ 800bee4:	681b      	ldr	r3, [r3, #0]
+ 800bee6:	69db      	ldr	r3, [r3, #28]
+ 800bee8:	b10b      	cbz	r3, 800beee <LmHandlerNvmDataStore+0x4a>
+ 800beea:	2001      	movs	r0, #1
+ 800beec:	4798      	blx	r3
+ 800beee:	4620      	mov	r0, r4
+ 800bef0:	b00b      	add	sp, #44	; 0x2c
+ 800bef2:	bd30      	pop	{r4, r5, pc}
+ 800bef4:	f06f 0407 	mvn.w	r4, #7
+ 800bef8:	e7ef      	b.n	800beda <LmHandlerNvmDataStore+0x36>
+ 800befa:	f04f 34ff 	mov.w	r4, #4294967295
+ 800befe:	e7ec      	b.n	800beda <LmHandlerNvmDataStore+0x36>
+ 800bf00:	f04f 34ff 	mov.w	r4, #4294967295
+ 800bf04:	e7f3      	b.n	800beee <LmHandlerNvmDataStore+0x4a>
+ 800bf06:	bf00      	nop
+ 800bf08:	20001070 	.word	0x20001070
+
+0800bf0c <LmhpComplianceInit>:
+ 800bf0c:	b530      	push	{r4, r5, lr}
+ 800bf0e:	4d06      	ldr	r5, [pc, #24]	; (800bf28 <LmhpComplianceInit+0x1c>)
+ 800bf10:	4c06      	ldr	r4, [pc, #24]	; (800bf2c <LmhpComplianceInit+0x20>)
+ 800bf12:	b130      	cbz	r0, 800bf22 <LmhpComplianceInit+0x16>
+ 800bf14:	b129      	cbz	r1, 800bf22 <LmhpComplianceInit+0x16>
+ 800bf16:	6028      	str	r0, [r5, #0]
+ 800bf18:	60a1      	str	r1, [r4, #8]
+ 800bf1a:	7162      	strb	r2, [r4, #5]
+ 800bf1c:	2301      	movs	r3, #1
+ 800bf1e:	7023      	strb	r3, [r4, #0]
+ 800bf20:	bd30      	pop	{r4, r5, pc}
+ 800bf22:	2300      	movs	r3, #0
+ 800bf24:	602b      	str	r3, [r5, #0]
+ 800bf26:	e7fa      	b.n	800bf1e <LmhpComplianceInit+0x12>
+ 800bf28:	200010f4 	.word	0x200010f4
+ 800bf2c:	200010c8 	.word	0x200010c8
+
+0800bf30 <LmhpComplianceIsInitialized>:
+ 800bf30:	4b01      	ldr	r3, [pc, #4]	; (800bf38 <LmhpComplianceIsInitialized+0x8>)
+ 800bf32:	7818      	ldrb	r0, [r3, #0]
+ 800bf34:	4770      	bx	lr
+ 800bf36:	bf00      	nop
+ 800bf38:	200010c8 	.word	0x200010c8
+
+0800bf3c <LmhpComplianceIsRunning>:
+ 800bf3c:	4b02      	ldr	r3, [pc, #8]	; (800bf48 <LmhpComplianceIsRunning+0xc>)
+ 800bf3e:	7818      	ldrb	r0, [r3, #0]
+ 800bf40:	b100      	cbz	r0, 800bf44 <LmhpComplianceIsRunning+0x8>
+ 800bf42:	7858      	ldrb	r0, [r3, #1]
+ 800bf44:	4770      	bx	lr
+ 800bf46:	bf00      	nop
+ 800bf48:	200010c8 	.word	0x200010c8
+
+0800bf4c <LmhpComplianceProcess>:
+ 800bf4c:	4770      	bx	lr
+	...
+
+0800bf50 <LmhpComplianceOnMcpsConfirm>:
+ 800bf50:	4b06      	ldr	r3, [pc, #24]	; (800bf6c <LmhpComplianceOnMcpsConfirm+0x1c>)
+ 800bf52:	781a      	ldrb	r2, [r3, #0]
+ 800bf54:	b14a      	cbz	r2, 800bf6a <LmhpComplianceOnMcpsConfirm+0x1a>
+ 800bf56:	785a      	ldrb	r2, [r3, #1]
+ 800bf58:	b13a      	cbz	r2, 800bf6a <LmhpComplianceOnMcpsConfirm+0x1a>
+ 800bf5a:	7802      	ldrb	r2, [r0, #0]
+ 800bf5c:	2a01      	cmp	r2, #1
+ 800bf5e:	d104      	bne.n	800bf6a <LmhpComplianceOnMcpsConfirm+0x1a>
+ 800bf60:	7902      	ldrb	r2, [r0, #4]
+ 800bf62:	b112      	cbz	r2, 800bf6a <LmhpComplianceOnMcpsConfirm+0x1a>
+ 800bf64:	899a      	ldrh	r2, [r3, #12]
+ 800bf66:	3201      	adds	r2, #1
+ 800bf68:	819a      	strh	r2, [r3, #12]
+ 800bf6a:	4770      	bx	lr
+ 800bf6c:	200010c8 	.word	0x200010c8
+
+0800bf70 <LmhpComplianceOnMlmeConfirm>:
+ 800bf70:	4b07      	ldr	r3, [pc, #28]	; (800bf90 <LmhpComplianceOnMlmeConfirm+0x20>)
+ 800bf72:	781a      	ldrb	r2, [r3, #0]
+ 800bf74:	b152      	cbz	r2, 800bf8c <LmhpComplianceOnMlmeConfirm+0x1c>
+ 800bf76:	785a      	ldrb	r2, [r3, #1]
+ 800bf78:	b142      	cbz	r2, 800bf8c <LmhpComplianceOnMlmeConfirm+0x1c>
+ 800bf7a:	7802      	ldrb	r2, [r0, #0]
+ 800bf7c:	2a05      	cmp	r2, #5
+ 800bf7e:	d105      	bne.n	800bf8c <LmhpComplianceOnMlmeConfirm+0x1c>
+ 800bf80:	7a01      	ldrb	r1, [r0, #8]
+ 800bf82:	7a42      	ldrb	r2, [r0, #9]
+ 800bf84:	73d9      	strb	r1, [r3, #15]
+ 800bf86:	2001      	movs	r0, #1
+ 800bf88:	7398      	strb	r0, [r3, #14]
+ 800bf8a:	741a      	strb	r2, [r3, #16]
+ 800bf8c:	4770      	bx	lr
+ 800bf8e:	bf00      	nop
+ 800bf90:	200010c8 	.word	0x200010c8
+
+0800bf94 <LmhpComplianceTxProcess.isra.0>:
+ 800bf94:	b513      	push	{r0, r1, r4, lr}
+ 800bf96:	4c1a      	ldr	r4, [pc, #104]	; (800c000 <LmhpComplianceTxProcess.isra.0+0x6c>)
+ 800bf98:	7823      	ldrb	r3, [r4, #0]
+ 800bf9a:	b33b      	cbz	r3, 800bfec <LmhpComplianceTxProcess.isra.0+0x58>
+ 800bf9c:	7863      	ldrb	r3, [r4, #1]
+ 800bf9e:	b32b      	cbz	r3, 800bfec <LmhpComplianceTxProcess.isra.0+0x58>
+ 800bfa0:	7ba2      	ldrb	r2, [r4, #14]
+ 800bfa2:	68a3      	ldr	r3, [r4, #8]
+ 800bfa4:	b162      	cbz	r2, 800bfc0 <LmhpComplianceTxProcess.isra.0+0x2c>
+ 800bfa6:	2200      	movs	r2, #0
+ 800bfa8:	73a2      	strb	r2, [r4, #14]
+ 800bfaa:	2203      	movs	r2, #3
+ 800bfac:	71a2      	strb	r2, [r4, #6]
+ 800bfae:	2205      	movs	r2, #5
+ 800bfb0:	701a      	strb	r2, [r3, #0]
+ 800bfb2:	7be2      	ldrb	r2, [r4, #15]
+ 800bfb4:	705a      	strb	r2, [r3, #1]
+ 800bfb6:	7c22      	ldrb	r2, [r4, #16]
+ 800bfb8:	709a      	strb	r2, [r3, #2]
+ 800bfba:	2201      	movs	r2, #1
+ 800bfbc:	70a2      	strb	r2, [r4, #2]
+ 800bfbe:	e004      	b.n	800bfca <LmhpComplianceTxProcess.isra.0+0x36>
+ 800bfc0:	78a2      	ldrb	r2, [r4, #2]
+ 800bfc2:	2a01      	cmp	r2, #1
+ 800bfc4:	d014      	beq.n	800bff0 <LmhpComplianceTxProcess.isra.0+0x5c>
+ 800bfc6:	2a04      	cmp	r2, #4
+ 800bfc8:	d0f7      	beq.n	800bfba <LmhpComplianceTxProcess.isra.0+0x26>
+ 800bfca:	22e0      	movs	r2, #224	; 0xe0
+ 800bfcc:	f88d 2000 	strb.w	r2, [sp]
+ 800bfd0:	480c      	ldr	r0, [pc, #48]	; (800c004 <LmhpComplianceTxProcess.isra.0+0x70>)
+ 800bfd2:	79a2      	ldrb	r2, [r4, #6]
+ 800bfd4:	9301      	str	r3, [sp, #4]
+ 800bfd6:	f88d 2001 	strb.w	r2, [sp, #1]
+ 800bfda:	f008 f849 	bl	8014070 <UTIL_TIMER_Start>
+ 800bfde:	4b0a      	ldr	r3, [pc, #40]	; (800c008 <LmhpComplianceTxProcess.isra.0+0x74>)
+ 800bfe0:	6b1b      	ldr	r3, [r3, #48]	; 0x30
+ 800bfe2:	b11b      	cbz	r3, 800bfec <LmhpComplianceTxProcess.isra.0+0x58>
+ 800bfe4:	78e1      	ldrb	r1, [r4, #3]
+ 800bfe6:	2201      	movs	r2, #1
+ 800bfe8:	4668      	mov	r0, sp
+ 800bfea:	4798      	blx	r3
+ 800bfec:	b002      	add	sp, #8
+ 800bfee:	bd10      	pop	{r4, pc}
+ 800bff0:	2202      	movs	r2, #2
+ 800bff2:	71a2      	strb	r2, [r4, #6]
+ 800bff4:	89a2      	ldrh	r2, [r4, #12]
+ 800bff6:	705a      	strb	r2, [r3, #1]
+ 800bff8:	0a11      	lsrs	r1, r2, #8
+ 800bffa:	7019      	strb	r1, [r3, #0]
+ 800bffc:	e7e5      	b.n	800bfca <LmhpComplianceTxProcess.isra.0+0x36>
+ 800bffe:	bf00      	nop
+ 800c000:	200010c8 	.word	0x200010c8
+ 800c004:	200010dc 	.word	0x200010dc
+ 800c008:	20000878 	.word	0x20000878
+
+0800c00c <OnComplianceTxNextPacketTimerEvent>:
+ 800c00c:	f7ff bfc2 	b.w	800bf94 <LmhpComplianceTxProcess.isra.0>
+
+0800c010 <LmhpComplianceOnMcpsIndication>:
+ 800c010:	b530      	push	{r4, r5, lr}
+ 800c012:	4c79      	ldr	r4, [pc, #484]	; (800c1f8 <LmhpComplianceOnMcpsIndication+0x1e8>)
+ 800c014:	7823      	ldrb	r3, [r4, #0]
+ 800c016:	b08d      	sub	sp, #52	; 0x34
+ 800c018:	2b00      	cmp	r3, #0
+ 800c01a:	d043      	beq.n	800c0a4 <LmhpComplianceOnMcpsIndication+0x94>
+ 800c01c:	7b43      	ldrb	r3, [r0, #13]
+ 800c01e:	2b00      	cmp	r3, #0
+ 800c020:	d040      	beq.n	800c0a4 <LmhpComplianceOnMcpsIndication+0x94>
+ 800c022:	7865      	ldrb	r5, [r4, #1]
+ 800c024:	b125      	cbz	r5, 800c030 <LmhpComplianceOnMcpsIndication+0x20>
+ 800c026:	7b83      	ldrb	r3, [r0, #14]
+ 800c028:	b913      	cbnz	r3, 800c030 <LmhpComplianceOnMcpsIndication+0x20>
+ 800c02a:	89a3      	ldrh	r3, [r4, #12]
+ 800c02c:	3301      	adds	r3, #1
+ 800c02e:	81a3      	strh	r3, [r4, #12]
+ 800c030:	78c1      	ldrb	r1, [r0, #3]
+ 800c032:	29e0      	cmp	r1, #224	; 0xe0
+ 800c034:	d136      	bne.n	800c0a4 <LmhpComplianceOnMcpsIndication+0x94>
+ 800c036:	2d00      	cmp	r5, #0
+ 800c038:	d136      	bne.n	800c0a8 <LmhpComplianceOnMcpsIndication+0x98>
+ 800c03a:	7b02      	ldrb	r2, [r0, #12]
+ 800c03c:	2a04      	cmp	r2, #4
+ 800c03e:	d131      	bne.n	800c0a4 <LmhpComplianceOnMcpsIndication+0x94>
+ 800c040:	6883      	ldr	r3, [r0, #8]
+ 800c042:	7818      	ldrb	r0, [r3, #0]
+ 800c044:	2801      	cmp	r0, #1
+ 800c046:	d12d      	bne.n	800c0a4 <LmhpComplianceOnMcpsIndication+0x94>
+ 800c048:	7858      	ldrb	r0, [r3, #1]
+ 800c04a:	2801      	cmp	r0, #1
+ 800c04c:	d12a      	bne.n	800c0a4 <LmhpComplianceOnMcpsIndication+0x94>
+ 800c04e:	7898      	ldrb	r0, [r3, #2]
+ 800c050:	2801      	cmp	r0, #1
+ 800c052:	d127      	bne.n	800c0a4 <LmhpComplianceOnMcpsIndication+0x94>
+ 800c054:	78db      	ldrb	r3, [r3, #3]
+ 800c056:	2b01      	cmp	r3, #1
+ 800c058:	d124      	bne.n	800c0a4 <LmhpComplianceOnMcpsIndication+0x94>
+ 800c05a:	2002      	movs	r0, #2
+ 800c05c:	8063      	strh	r3, [r4, #2]
+ 800c05e:	71a0      	strb	r0, [r4, #6]
+ 800c060:	60e5      	str	r5, [r4, #12]
+ 800c062:	a802      	add	r0, sp, #8
+ 800c064:	7063      	strb	r3, [r4, #1]
+ 800c066:	f88d 300c 	strb.w	r3, [sp, #12]
+ 800c06a:	7121      	strb	r1, [r4, #4]
+ 800c06c:	f88d 2008 	strb.w	r2, [sp, #8]
+ 800c070:	7425      	strb	r5, [r4, #16]
+ 800c072:	f002 f8c3 	bl	800e1fc <LoRaMacMibSetRequestConfirm>
+ 800c076:	4628      	mov	r0, r5
+ 800c078:	f002 fdb6 	bl	800ebe8 <LoRaMacTestSetDutyCycleOn>
+ 800c07c:	4b5f      	ldr	r3, [pc, #380]	; (800c1fc <LmhpComplianceOnMcpsIndication+0x1ec>)
+ 800c07e:	681b      	ldr	r3, [r3, #0]
+ 800c080:	685b      	ldr	r3, [r3, #4]
+ 800c082:	b103      	cbz	r3, 800c086 <LmhpComplianceOnMcpsIndication+0x76>
+ 800c084:	4798      	blx	r3
+ 800c086:	2200      	movs	r2, #0
+ 800c088:	4b5d      	ldr	r3, [pc, #372]	; (800c200 <LmhpComplianceOnMcpsIndication+0x1f0>)
+ 800c08a:	9200      	str	r2, [sp, #0]
+ 800c08c:	f04f 31ff 	mov.w	r1, #4294967295
+ 800c090:	485c      	ldr	r0, [pc, #368]	; (800c204 <LmhpComplianceOnMcpsIndication+0x1f4>)
+ 800c092:	f007 ff41 	bl	8013f18 <UTIL_TIMER_Create>
+ 800c096:	f241 3188 	movw	r1, #5000	; 0x1388
+ 800c09a:	485a      	ldr	r0, [pc, #360]	; (800c204 <LmhpComplianceOnMcpsIndication+0x1f4>)
+ 800c09c:	f008 f822 	bl	80140e4 <UTIL_TIMER_SetPeriod>
+ 800c0a0:	f7ff ff78 	bl	800bf94 <LmhpComplianceTxProcess.isra.0>
+ 800c0a4:	b00d      	add	sp, #52	; 0x34
+ 800c0a6:	bd30      	pop	{r4, r5, pc}
+ 800c0a8:	6883      	ldr	r3, [r0, #8]
+ 800c0aa:	781a      	ldrb	r2, [r3, #0]
+ 800c0ac:	70a2      	strb	r2, [r4, #2]
+ 800c0ae:	2a0a      	cmp	r2, #10
+ 800c0b0:	d8f8      	bhi.n	800c0a4 <LmhpComplianceOnMcpsIndication+0x94>
+ 800c0b2:	e8df f002 	tbb	[pc, r2]
+ 800c0b6:	2106      	.short	0x2106
+ 800c0b8:	3d2a2824 	.word	0x3d2a2824
+ 800c0bc:	8f8d6544 	.word	0x8f8d6544
+ 800c0c0:	99          	.byte	0x99
+ 800c0c1:	00          	.byte	0x00
+ 800c0c2:	4850      	ldr	r0, [pc, #320]	; (800c204 <LmhpComplianceOnMcpsIndication+0x1f4>)
+ 800c0c4:	f007 ff86 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 800c0c8:	2300      	movs	r3, #0
+ 800c0ca:	7063      	strb	r3, [r4, #1]
+ 800c0cc:	81a3      	strh	r3, [r4, #12]
+ 800c0ce:	4c4b      	ldr	r4, [pc, #300]	; (800c1fc <LmhpComplianceOnMcpsIndication+0x1ec>)
+ 800c0d0:	2304      	movs	r3, #4
+ 800c0d2:	f88d 3008 	strb.w	r3, [sp, #8]
+ 800c0d6:	6823      	ldr	r3, [r4, #0]
+ 800c0d8:	a802      	add	r0, sp, #8
+ 800c0da:	781b      	ldrb	r3, [r3, #0]
+ 800c0dc:	f88d 300c 	strb.w	r3, [sp, #12]
+ 800c0e0:	f002 f88c 	bl	800e1fc <LoRaMacMibSetRequestConfirm>
+ 800c0e4:	6823      	ldr	r3, [r4, #0]
+ 800c0e6:	7858      	ldrb	r0, [r3, #1]
+ 800c0e8:	f002 fd7e 	bl	800ebe8 <LoRaMacTestSetDutyCycleOn>
+ 800c0ec:	6823      	ldr	r3, [r4, #0]
+ 800c0ee:	689b      	ldr	r3, [r3, #8]
+ 800c0f0:	2b00      	cmp	r3, #0
+ 800c0f2:	d0d7      	beq.n	800c0a4 <LmhpComplianceOnMcpsIndication+0x94>
+ 800c0f4:	4798      	blx	r3
+ 800c0f6:	e7d5      	b.n	800c0a4 <LmhpComplianceOnMcpsIndication+0x94>
+ 800c0f8:	2302      	movs	r3, #2
+ 800c0fa:	71a3      	strb	r3, [r4, #6]
+ 800c0fc:	e7d2      	b.n	800c0a4 <LmhpComplianceOnMcpsIndication+0x94>
+ 800c0fe:	f240 1301 	movw	r3, #257	; 0x101
+ 800c102:	8063      	strh	r3, [r4, #2]
+ 800c104:	e7ce      	b.n	800c0a4 <LmhpComplianceOnMcpsIndication+0x94>
+ 800c106:	2301      	movs	r3, #1
+ 800c108:	e7fb      	b.n	800c102 <LmhpComplianceOnMcpsIndication+0xf2>
+ 800c10a:	68a5      	ldr	r5, [r4, #8]
+ 800c10c:	7b03      	ldrb	r3, [r0, #12]
+ 800c10e:	71a3      	strb	r3, [r4, #6]
+ 800c110:	2204      	movs	r2, #4
+ 800c112:	702a      	strb	r2, [r5, #0]
+ 800c114:	7962      	ldrb	r2, [r4, #5]
+ 800c116:	429a      	cmp	r2, r3
+ 800c118:	bf28      	it	cs
+ 800c11a:	461a      	movcs	r2, r3
+ 800c11c:	2300      	movs	r3, #0
+ 800c11e:	3301      	adds	r3, #1
+ 800c120:	b2d9      	uxtb	r1, r3
+ 800c122:	428a      	cmp	r2, r1
+ 800c124:	d9be      	bls.n	800c0a4 <LmhpComplianceOnMcpsIndication+0x94>
+ 800c126:	6881      	ldr	r1, [r0, #8]
+ 800c128:	5cc9      	ldrb	r1, [r1, r3]
+ 800c12a:	3101      	adds	r1, #1
+ 800c12c:	54e9      	strb	r1, [r5, r3]
+ 800c12e:	e7f6      	b.n	800c11e <LmhpComplianceOnMcpsIndication+0x10e>
+ 800c130:	2305      	movs	r3, #5
+ 800c132:	f88d 3008 	strb.w	r3, [sp, #8]
+ 800c136:	a802      	add	r0, sp, #8
+ 800c138:	f002 fad4 	bl	800e6e4 <LoRaMacMlmeRequest>
+ 800c13c:	e7b2      	b.n	800c0a4 <LmhpComplianceOnMcpsIndication+0x94>
+ 800c13e:	4831      	ldr	r0, [pc, #196]	; (800c204 <LmhpComplianceOnMcpsIndication+0x1f4>)
+ 800c140:	f007 ff48 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 800c144:	2300      	movs	r3, #0
+ 800c146:	7063      	strb	r3, [r4, #1]
+ 800c148:	81a3      	strh	r3, [r4, #12]
+ 800c14a:	4c2c      	ldr	r4, [pc, #176]	; (800c1fc <LmhpComplianceOnMcpsIndication+0x1ec>)
+ 800c14c:	2304      	movs	r3, #4
+ 800c14e:	f88d 3008 	strb.w	r3, [sp, #8]
+ 800c152:	6823      	ldr	r3, [r4, #0]
+ 800c154:	a802      	add	r0, sp, #8
+ 800c156:	781b      	ldrb	r3, [r3, #0]
+ 800c158:	f88d 300c 	strb.w	r3, [sp, #12]
+ 800c15c:	f002 f84e 	bl	800e1fc <LoRaMacMibSetRequestConfirm>
+ 800c160:	6823      	ldr	r3, [r4, #0]
+ 800c162:	7858      	ldrb	r0, [r3, #1]
+ 800c164:	f002 fd40 	bl	800ebe8 <LoRaMacTestSetDutyCycleOn>
+ 800c168:	6823      	ldr	r3, [r4, #0]
+ 800c16a:	689b      	ldr	r3, [r3, #8]
+ 800c16c:	b103      	cbz	r3, 800c170 <LmhpComplianceOnMcpsIndication+0x160>
+ 800c16e:	4798      	blx	r3
+ 800c170:	4b25      	ldr	r3, [pc, #148]	; (800c208 <LmhpComplianceOnMcpsIndication+0x1f8>)
+ 800c172:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800c174:	2b00      	cmp	r3, #0
+ 800c176:	d095      	beq.n	800c0a4 <LmhpComplianceOnMcpsIndication+0x94>
+ 800c178:	2101      	movs	r1, #1
+ 800c17a:	2002      	movs	r0, #2
+ 800c17c:	4798      	blx	r3
+ 800c17e:	e791      	b.n	800c0a4 <LmhpComplianceOnMcpsIndication+0x94>
+ 800c180:	7b02      	ldrb	r2, [r0, #12]
+ 800c182:	2a03      	cmp	r2, #3
+ 800c184:	d10d      	bne.n	800c1a2 <LmhpComplianceOnMcpsIndication+0x192>
+ 800c186:	2206      	movs	r2, #6
+ 800c188:	f88d 2008 	strb.w	r2, [sp, #8]
+ 800c18c:	f8b3 3001 	ldrh.w	r3, [r3, #1]
+ 800c190:	ba5b      	rev16	r3, r3
+ 800c192:	f8ad 300c 	strh.w	r3, [sp, #12]
+ 800c196:	a802      	add	r0, sp, #8
+ 800c198:	f002 faa4 	bl	800e6e4 <LoRaMacMlmeRequest>
+ 800c19c:	2301      	movs	r3, #1
+ 800c19e:	70a3      	strb	r3, [r4, #2]
+ 800c1a0:	e780      	b.n	800c0a4 <LmhpComplianceOnMcpsIndication+0x94>
+ 800c1a2:	2a07      	cmp	r2, #7
+ 800c1a4:	d1f7      	bne.n	800c196 <LmhpComplianceOnMcpsIndication+0x186>
+ 800c1a6:	f88d 2008 	strb.w	r2, [sp, #8]
+ 800c1aa:	f8b3 2001 	ldrh.w	r2, [r3, #1]
+ 800c1ae:	ba52      	rev16	r2, r2
+ 800c1b0:	f8ad 200c 	strh.w	r2, [sp, #12]
+ 800c1b4:	791a      	ldrb	r2, [r3, #4]
+ 800c1b6:	78d9      	ldrb	r1, [r3, #3]
+ 800c1b8:	0212      	lsls	r2, r2, #8
+ 800c1ba:	ea42 4201 	orr.w	r2, r2, r1, lsl #16
+ 800c1be:	7959      	ldrb	r1, [r3, #5]
+ 800c1c0:	430a      	orrs	r2, r1
+ 800c1c2:	2164      	movs	r1, #100	; 0x64
+ 800c1c4:	434a      	muls	r2, r1
+ 800c1c6:	9204      	str	r2, [sp, #16]
+ 800c1c8:	799b      	ldrb	r3, [r3, #6]
+ 800c1ca:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800c1ce:	e7e2      	b.n	800c196 <LmhpComplianceOnMcpsIndication+0x186>
+ 800c1d0:	230a      	movs	r3, #10
+ 800c1d2:	e7ae      	b.n	800c132 <LmhpComplianceOnMcpsIndication+0x122>
+ 800c1d4:	2200      	movs	r2, #0
+ 800c1d6:	f88d 2008 	strb.w	r2, [sp, #8]
+ 800c1da:	785b      	ldrb	r3, [r3, #1]
+ 800c1dc:	f88d 300c 	strb.w	r3, [sp, #12]
+ 800c1e0:	a802      	add	r0, sp, #8
+ 800c1e2:	f002 f80b 	bl	800e1fc <LoRaMacMibSetRequestConfirm>
+ 800c1e6:	e75d      	b.n	800c0a4 <LmhpComplianceOnMcpsIndication+0x94>
+ 800c1e8:	220d      	movs	r2, #13
+ 800c1ea:	f88d 2008 	strb.w	r2, [sp, #8]
+ 800c1ee:	785b      	ldrb	r3, [r3, #1]
+ 800c1f0:	f88d 300c 	strb.w	r3, [sp, #12]
+ 800c1f4:	e79f      	b.n	800c136 <LmhpComplianceOnMcpsIndication+0x126>
+ 800c1f6:	bf00      	nop
+ 800c1f8:	200010c8 	.word	0x200010c8
+ 800c1fc:	200010f4 	.word	0x200010f4
+ 800c200:	0800c00d 	.word	0x0800c00d
+ 800c204:	200010dc 	.word	0x200010dc
+ 800c208:	20000878 	.word	0x20000878
+
+0800c20c <LmhpCompliancePackageFactory>:
+ 800c20c:	4800      	ldr	r0, [pc, #0]	; (800c210 <LmhpCompliancePackageFactory+0x4>)
+ 800c20e:	4770      	bx	lr
+ 800c210:	20000878 	.word	0x20000878
+
+0800c214 <LmhpPackagesRegistrationInit>:
+ 800c214:	2000      	movs	r0, #0
+ 800c216:	4770      	bx	lr
+
+0800c218 <LmhpPackagesRegister>:
+ 800c218:	f04f 30ff 	mov.w	r0, #4294967295
+ 800c21c:	4770      	bx	lr
+	...
+
+0800c220 <UpdateRxSlotIdleState>:
+ 800c220:	4b04      	ldr	r3, [pc, #16]	; (800c234 <UpdateRxSlotIdleState+0x14>)
+ 800c222:	4a05      	ldr	r2, [pc, #20]	; (800c238 <UpdateRxSlotIdleState+0x18>)
+ 800c224:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 800c228:	2b02      	cmp	r3, #2
+ 800c22a:	bf18      	it	ne
+ 800c22c:	2306      	movne	r3, #6
+ 800c22e:	f882 3480 	strb.w	r3, [r2, #1152]	; 0x480
+ 800c232:	4770      	bx	lr
+ 800c234:	20001868 	.word	0x20001868
+ 800c238:	20001fdc 	.word	0x20001fdc
+
+0800c23c <OnMacProcessNotify>:
+ 800c23c:	4b03      	ldr	r3, [pc, #12]	; (800c24c <OnMacProcessNotify+0x10>)
+ 800c23e:	f8d3 3348 	ldr.w	r3, [r3, #840]	; 0x348
+ 800c242:	b113      	cbz	r3, 800c24a <OnMacProcessNotify+0xe>
+ 800c244:	695b      	ldr	r3, [r3, #20]
+ 800c246:	b103      	cbz	r3, 800c24a <OnMacProcessNotify+0xe>
+ 800c248:	4718      	bx	r3
+ 800c24a:	4770      	bx	lr
+ 800c24c:	20001fdc 	.word	0x20001fdc
+
+0800c250 <OnRadioRxError>:
+ 800c250:	4a03      	ldr	r2, [pc, #12]	; (800c260 <OnRadioRxError+0x10>)
+ 800c252:	7813      	ldrb	r3, [r2, #0]
+ 800c254:	f043 0302 	orr.w	r3, r3, #2
+ 800c258:	7013      	strb	r3, [r2, #0]
+ 800c25a:	f7ff bfef 	b.w	800c23c <OnMacProcessNotify>
+ 800c25e:	bf00      	nop
+ 800c260:	20001fd8 	.word	0x20001fd8
+
+0800c264 <GetMaxAppPayloadWithoutFOptsLength>:
+ 800c264:	b51f      	push	{r0, r1, r2, r3, r4, lr}
+ 800c266:	4b0a      	ldr	r3, [pc, #40]	; (800c290 <GetMaxAppPayloadWithoutFOptsLength+0x2c>)
+ 800c268:	f88d 0009 	strb.w	r0, [sp, #9]
+ 800c26c:	f893 207c 	ldrb.w	r2, [r3, #124]	; 0x7c
+ 800c270:	f88d 200a 	strb.w	r2, [sp, #10]
+ 800c274:	f893 208c 	ldrb.w	r2, [r3, #140]	; 0x8c
+ 800c278:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 800c27c:	320d      	adds	r2, #13
+ 800c27e:	a902      	add	r1, sp, #8
+ 800c280:	f88d 2008 	strb.w	r2, [sp, #8]
+ 800c284:	f003 fbf4 	bl	800fa70 <RegionGetPhyParam>
+ 800c288:	b2c0      	uxtb	r0, r0
+ 800c28a:	b005      	add	sp, #20
+ 800c28c:	f85d fb04 	ldr.w	pc, [sp], #4
+ 800c290:	20001868 	.word	0x20001868
+
+0800c294 <OnAckTimeoutTimerEvent>:
+ 800c294:	b510      	push	{r4, lr}
+ 800c296:	4c0d      	ldr	r4, [pc, #52]	; (800c2cc <OnAckTimeoutTimerEvent+0x38>)
+ 800c298:	f504 707d 	add.w	r0, r4, #1012	; 0x3f4
+ 800c29c:	f007 fe9a 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 800c2a0:	f894 3410 	ldrb.w	r3, [r4, #1040]	; 0x410
+ 800c2a4:	b113      	cbz	r3, 800c2ac <OnAckTimeoutTimerEvent+0x18>
+ 800c2a6:	2301      	movs	r3, #1
+ 800c2a8:	f884 340f 	strb.w	r3, [r4, #1039]	; 0x40f
+ 800c2ac:	4b08      	ldr	r3, [pc, #32]	; (800c2d0 <OnAckTimeoutTimerEvent+0x3c>)
+ 800c2ae:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 800c2b2:	2b02      	cmp	r3, #2
+ 800c2b4:	bf02      	ittt	eq
+ 800c2b6:	f894 3481 	ldrbeq.w	r3, [r4, #1153]	; 0x481
+ 800c2ba:	f043 0310 	orreq.w	r3, r3, #16
+ 800c2be:	f884 3481 	strbeq.w	r3, [r4, #1153]	; 0x481
+ 800c2c2:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 800c2c6:	f7ff bfb9 	b.w	800c23c <OnMacProcessNotify>
+ 800c2ca:	bf00      	nop
+ 800c2cc:	20001fdc 	.word	0x20001fdc
+ 800c2d0:	20001868 	.word	0x20001868
+
+0800c2d4 <PrepareRxDoneAbort>:
+ 800c2d4:	b510      	push	{r4, lr}
+ 800c2d6:	4c0c      	ldr	r4, [pc, #48]	; (800c308 <PrepareRxDoneAbort+0x34>)
+ 800c2d8:	f8d4 3340 	ldr.w	r3, [r4, #832]	; 0x340
+ 800c2dc:	f043 0380 	orr.w	r3, r3, #128	; 0x80
+ 800c2e0:	f8c4 3340 	str.w	r3, [r4, #832]	; 0x340
+ 800c2e4:	f894 3410 	ldrb.w	r3, [r4, #1040]	; 0x410
+ 800c2e8:	b113      	cbz	r3, 800c2f0 <PrepareRxDoneAbort+0x1c>
+ 800c2ea:	2000      	movs	r0, #0
+ 800c2ec:	f7ff ffd2 	bl	800c294 <OnAckTimeoutTimerEvent>
+ 800c2f0:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800c2f4:	f023 0312 	bic.w	r3, r3, #18
+ 800c2f8:	f043 0312 	orr.w	r3, r3, #18
+ 800c2fc:	f884 3481 	strb.w	r3, [r4, #1153]	; 0x481
+ 800c300:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 800c304:	f7ff bf8c 	b.w	800c220 <UpdateRxSlotIdleState>
+ 800c308:	20001fdc 	.word	0x20001fdc
+
+0800c30c <HandleRadioRxErrorTimeout>:
+ 800c30c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800c310:	4d2c      	ldr	r5, [pc, #176]	; (800c3c4 <HandleRadioRxErrorTimeout+0xb8>)
+ 800c312:	f895 3118 	ldrb.w	r3, [r5, #280]	; 0x118
+ 800c316:	2b02      	cmp	r3, #2
+ 800c318:	4607      	mov	r7, r0
+ 800c31a:	460e      	mov	r6, r1
+ 800c31c:	d002      	beq.n	800c324 <HandleRadioRxErrorTimeout+0x18>
+ 800c31e:	4b2a      	ldr	r3, [pc, #168]	; (800c3c8 <HandleRadioRxErrorTimeout+0xbc>)
+ 800c320:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800c322:	4798      	blx	r3
+ 800c324:	f002 fd1b 	bl	800ed5e <LoRaMacClassBIsBeaconExpected>
+ 800c328:	4604      	mov	r4, r0
+ 800c32a:	b128      	cbz	r0, 800c338 <HandleRadioRxErrorTimeout+0x2c>
+ 800c32c:	2002      	movs	r0, #2
+ 800c32e:	f002 fd0c 	bl	800ed4a <LoRaMacClassBSetBeaconState>
+ 800c332:	2000      	movs	r0, #0
+ 800c334:	f002 fd0e 	bl	800ed54 <LoRaMacClassBBeaconTimerEvent>
+ 800c338:	f895 3118 	ldrb.w	r3, [r5, #280]	; 0x118
+ 800c33c:	2b01      	cmp	r3, #1
+ 800c33e:	d117      	bne.n	800c370 <HandleRadioRxErrorTimeout+0x64>
+ 800c340:	f002 fd0f 	bl	800ed62 <LoRaMacClassBIsPingExpected>
+ 800c344:	4680      	mov	r8, r0
+ 800c346:	b130      	cbz	r0, 800c356 <HandleRadioRxErrorTimeout+0x4a>
+ 800c348:	2000      	movs	r0, #0
+ 800c34a:	f002 fcff 	bl	800ed4c <LoRaMacClassBSetPingSlotState>
+ 800c34e:	2000      	movs	r0, #0
+ 800c350:	f002 fd01 	bl	800ed56 <LoRaMacClassBPingSlotTimerEvent>
+ 800c354:	4644      	mov	r4, r8
+ 800c356:	f002 fd06 	bl	800ed66 <LoRaMacClassBIsMulticastExpected>
+ 800c35a:	b148      	cbz	r0, 800c370 <HandleRadioRxErrorTimeout+0x64>
+ 800c35c:	2000      	movs	r0, #0
+ 800c35e:	f002 fcf6 	bl	800ed4e <LoRaMacClassBSetMulticastSlotState>
+ 800c362:	2000      	movs	r0, #0
+ 800c364:	f002 fcf8 	bl	800ed58 <LoRaMacClassBMulticastSlotTimerEvent>
+ 800c368:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
+ 800c36c:	f7ff bf58 	b.w	800c220 <UpdateRxSlotIdleState>
+ 800c370:	2c00      	cmp	r4, #0
+ 800c372:	d1f9      	bne.n	800c368 <HandleRadioRxErrorTimeout+0x5c>
+ 800c374:	4c15      	ldr	r4, [pc, #84]	; (800c3cc <HandleRadioRxErrorTimeout+0xc0>)
+ 800c376:	f894 2480 	ldrb.w	r2, [r4, #1152]	; 0x480
+ 800c37a:	f894 3410 	ldrb.w	r3, [r4, #1040]	; 0x410
+ 800c37e:	b9b2      	cbnz	r2, 800c3ae <HandleRadioRxErrorTimeout+0xa2>
+ 800c380:	b10b      	cbz	r3, 800c386 <HandleRadioRxErrorTimeout+0x7a>
+ 800c382:	f884 7435 	strb.w	r7, [r4, #1077]	; 0x435
+ 800c386:	4638      	mov	r0, r7
+ 800c388:	f002 fe90 	bl	800f0ac <LoRaMacConfirmQueueSetStatusCmn>
+ 800c38c:	6ae8      	ldr	r0, [r5, #44]	; 0x2c
+ 800c38e:	f007 fde7 	bl	8013f60 <UTIL_TIMER_GetElapsedTime>
+ 800c392:	f8d4 33b4 	ldr.w	r3, [r4, #948]	; 0x3b4
+ 800c396:	4298      	cmp	r0, r3
+ 800c398:	d3e6      	bcc.n	800c368 <HandleRadioRxErrorTimeout+0x5c>
+ 800c39a:	480d      	ldr	r0, [pc, #52]	; (800c3d0 <HandleRadioRxErrorTimeout+0xc4>)
+ 800c39c:	f007 fe1a 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 800c3a0:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800c3a4:	f043 0310 	orr.w	r3, r3, #16
+ 800c3a8:	f884 3481 	strb.w	r3, [r4, #1153]	; 0x481
+ 800c3ac:	e7dc      	b.n	800c368 <HandleRadioRxErrorTimeout+0x5c>
+ 800c3ae:	b10b      	cbz	r3, 800c3b4 <HandleRadioRxErrorTimeout+0xa8>
+ 800c3b0:	f884 6435 	strb.w	r6, [r4, #1077]	; 0x435
+ 800c3b4:	4630      	mov	r0, r6
+ 800c3b6:	f002 fe79 	bl	800f0ac <LoRaMacConfirmQueueSetStatusCmn>
+ 800c3ba:	f895 3118 	ldrb.w	r3, [r5, #280]	; 0x118
+ 800c3be:	2b02      	cmp	r3, #2
+ 800c3c0:	d1ee      	bne.n	800c3a0 <HandleRadioRxErrorTimeout+0x94>
+ 800c3c2:	e7d1      	b.n	800c368 <HandleRadioRxErrorTimeout+0x5c>
+ 800c3c4:	20001868 	.word	0x20001868
+ 800c3c8:	080159b0 	.word	0x080159b0
+ 800c3cc:	20001fdc 	.word	0x20001fdc
+ 800c3d0:	20002374 	.word	0x20002374
+
+0800c3d4 <OnRadioRxTimeout>:
+ 800c3d4:	4a07      	ldr	r2, [pc, #28]	; (800c3f4 <OnRadioRxTimeout+0x20>)
+ 800c3d6:	b510      	push	{r4, lr}
+ 800c3d8:	7813      	ldrb	r3, [r2, #0]
+ 800c3da:	f043 0301 	orr.w	r3, r3, #1
+ 800c3de:	7013      	strb	r3, [r2, #0]
+ 800c3e0:	f7ff ff2c 	bl	800c23c <OnMacProcessNotify>
+ 800c3e4:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 800c3e8:	4b03      	ldr	r3, [pc, #12]	; (800c3f8 <OnRadioRxTimeout+0x24>)
+ 800c3ea:	2201      	movs	r2, #1
+ 800c3ec:	2100      	movs	r1, #0
+ 800c3ee:	2002      	movs	r0, #2
+ 800c3f0:	f007 bac2 	b.w	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 800c3f4:	20001fd8 	.word	0x20001fd8
+ 800c3f8:	080152f1 	.word	0x080152f1
+
+0800c3fc <OnRadioTxTimeout>:
+ 800c3fc:	4a07      	ldr	r2, [pc, #28]	; (800c41c <OnRadioTxTimeout+0x20>)
+ 800c3fe:	b510      	push	{r4, lr}
+ 800c400:	7813      	ldrb	r3, [r2, #0]
+ 800c402:	f043 0304 	orr.w	r3, r3, #4
+ 800c406:	7013      	strb	r3, [r2, #0]
+ 800c408:	f7ff ff18 	bl	800c23c <OnMacProcessNotify>
+ 800c40c:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 800c410:	4b03      	ldr	r3, [pc, #12]	; (800c420 <OnRadioTxTimeout+0x24>)
+ 800c412:	2201      	movs	r2, #1
+ 800c414:	2100      	movs	r1, #0
+ 800c416:	2002      	movs	r0, #2
+ 800c418:	f007 baae 	b.w	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 800c41c:	20001fd8 	.word	0x20001fd8
+ 800c420:	08015301 	.word	0x08015301
+
+0800c424 <OnRadioRxDone>:
+ 800c424:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800c428:	460f      	mov	r7, r1
+ 800c42a:	4616      	mov	r6, r2
+ 800c42c:	461d      	mov	r5, r3
+ 800c42e:	4680      	mov	r8, r0
+ 800c430:	f007 fd8c 	bl	8013f4c <UTIL_TIMER_GetCurrentTime>
+ 800c434:	4a0a      	ldr	r2, [pc, #40]	; (800c460 <OnRadioRxDone+0x3c>)
+ 800c436:	4c0b      	ldr	r4, [pc, #44]	; (800c464 <OnRadioRxDone+0x40>)
+ 800c438:	7813      	ldrb	r3, [r2, #0]
+ 800c43a:	8127      	strh	r7, [r4, #8]
+ 800c43c:	f043 0308 	orr.w	r3, r3, #8
+ 800c440:	e9c4 0800 	strd	r0, r8, [r4]
+ 800c444:	7013      	strb	r3, [r2, #0]
+ 800c446:	8166      	strh	r6, [r4, #10]
+ 800c448:	7325      	strb	r5, [r4, #12]
+ 800c44a:	f7ff fef7 	bl	800c23c <OnMacProcessNotify>
+ 800c44e:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
+ 800c452:	4b05      	ldr	r3, [pc, #20]	; (800c468 <OnRadioRxDone+0x44>)
+ 800c454:	2201      	movs	r2, #1
+ 800c456:	2100      	movs	r1, #0
+ 800c458:	2002      	movs	r0, #2
+ 800c45a:	f007 ba8d 	b.w	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 800c45e:	bf00      	nop
+ 800c460:	20001fd8 	.word	0x20001fd8
+ 800c464:	200024e4 	.word	0x200024e4
+ 800c468:	08015311 	.word	0x08015311
+
+0800c46c <OnRadioTxDone>:
+ 800c46c:	b513      	push	{r0, r1, r4, lr}
+ 800c46e:	f007 fd6d 	bl	8013f4c <UTIL_TIMER_GetCurrentTime>
+ 800c472:	4b0d      	ldr	r3, [pc, #52]	; (800c4a8 <OnRadioTxDone+0x3c>)
+ 800c474:	466c      	mov	r4, sp
+ 800c476:	6018      	str	r0, [r3, #0]
+ 800c478:	4620      	mov	r0, r4
+ 800c47a:	f007 fcbb 	bl	8013df4 <SysTimeGet>
+ 800c47e:	e894 0003 	ldmia.w	r4, {r0, r1}
+ 800c482:	4a0a      	ldr	r2, [pc, #40]	; (800c4ac <OnRadioTxDone+0x40>)
+ 800c484:	4b0a      	ldr	r3, [pc, #40]	; (800c4b0 <OnRadioTxDone+0x44>)
+ 800c486:	e883 0003 	stmia.w	r3, {r0, r1}
+ 800c48a:	7813      	ldrb	r3, [r2, #0]
+ 800c48c:	f043 0310 	orr.w	r3, r3, #16
+ 800c490:	7013      	strb	r3, [r2, #0]
+ 800c492:	f7ff fed3 	bl	800c23c <OnMacProcessNotify>
+ 800c496:	4b07      	ldr	r3, [pc, #28]	; (800c4b4 <OnRadioTxDone+0x48>)
+ 800c498:	2201      	movs	r2, #1
+ 800c49a:	2100      	movs	r1, #0
+ 800c49c:	2002      	movs	r0, #2
+ 800c49e:	b002      	add	sp, #8
+ 800c4a0:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 800c4a4:	f007 ba68 	b.w	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 800c4a8:	200024f4 	.word	0x200024f4
+ 800c4ac:	20001fd8 	.word	0x20001fd8
+ 800c4b0:	20002314 	.word	0x20002314
+ 800c4b4:	0801531e 	.word	0x0801531e
+
+0800c4b8 <ScheduleTx>:
+ 800c4b8:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800c4bc:	b092      	sub	sp, #72	; 0x48
+ 800c4be:	4606      	mov	r6, r0
+ 800c4c0:	f002 fc4d 	bl	800ed5e <LoRaMacClassBIsBeaconExpected>
+ 800c4c4:	2800      	cmp	r0, #0
+ 800c4c6:	f040 8156 	bne.w	800c776 <ScheduleTx+0x2be>
+ 800c4ca:	4dac      	ldr	r5, [pc, #688]	; (800c77c <ScheduleTx+0x2c4>)
+ 800c4cc:	f895 3118 	ldrb.w	r3, [r5, #280]	; 0x118
+ 800c4d0:	2b01      	cmp	r3, #1
+ 800c4d2:	d009      	beq.n	800c4e8 <ScheduleTx+0x30>
+ 800c4d4:	6b2b      	ldr	r3, [r5, #48]	; 0x30
+ 800c4d6:	4caa      	ldr	r4, [pc, #680]	; (800c780 <ScheduleTx+0x2c8>)
+ 800c4d8:	b193      	cbz	r3, 800c500 <ScheduleTx+0x48>
+ 800c4da:	f894 3104 	ldrb.w	r3, [r4, #260]	; 0x104
+ 800c4de:	b1bb      	cbz	r3, 800c510 <ScheduleTx+0x58>
+ 800c4e0:	2b04      	cmp	r3, #4
+ 800c4e2:	d06f      	beq.n	800c5c4 <ScheduleTx+0x10c>
+ 800c4e4:	2003      	movs	r0, #3
+ 800c4e6:	e003      	b.n	800c4f0 <ScheduleTx+0x38>
+ 800c4e8:	f002 fc3b 	bl	800ed62 <LoRaMacClassBIsPingExpected>
+ 800c4ec:	b118      	cbz	r0, 800c4f6 <ScheduleTx+0x3e>
+ 800c4ee:	200f      	movs	r0, #15
+ 800c4f0:	b012      	add	sp, #72	; 0x48
+ 800c4f2:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800c4f6:	f002 fc36 	bl	800ed66 <LoRaMacClassBIsMulticastExpected>
+ 800c4fa:	2800      	cmp	r0, #0
+ 800c4fc:	d0ea      	beq.n	800c4d4 <ScheduleTx+0x1c>
+ 800c4fe:	e7f6      	b.n	800c4ee <ScheduleTx+0x36>
+ 800c500:	f8b5 311e 	ldrh.w	r3, [r5, #286]	; 0x11e
+ 800c504:	f8d4 2414 	ldr.w	r2, [r4, #1044]	; 0x414
+ 800c508:	3b01      	subs	r3, #1
+ 800c50a:	4353      	muls	r3, r2
+ 800c50c:	632b      	str	r3, [r5, #48]	; 0x30
+ 800c50e:	e7e4      	b.n	800c4da <ScheduleTx+0x22>
+ 800c510:	489c      	ldr	r0, [pc, #624]	; (800c784 <ScheduleTx+0x2cc>)
+ 800c512:	f003 f9e4 	bl	800f8de <LoRaMacSerializerJoinRequest>
+ 800c516:	2800      	cmp	r0, #0
+ 800c518:	f040 8129 	bne.w	800c76e <ScheduleTx+0x2b6>
+ 800c51c:	f894 310c 	ldrb.w	r3, [r4, #268]	; 0x10c
+ 800c520:	8023      	strh	r3, [r4, #0]
+ 800c522:	6b2b      	ldr	r3, [r5, #48]	; 0x30
+ 800c524:	930c      	str	r3, [sp, #48]	; 0x30
+ 800c526:	f10d 0818 	add.w	r8, sp, #24
+ 800c52a:	f895 3039 	ldrb.w	r3, [r5, #57]	; 0x39
+ 800c52e:	f88d 3038 	strb.w	r3, [sp, #56]	; 0x38
+ 800c532:	4640      	mov	r0, r8
+ 800c534:	f895 311c 	ldrb.w	r3, [r5, #284]	; 0x11c
+ 800c538:	f88d 303a 	strb.w	r3, [sp, #58]	; 0x3a
+ 800c53c:	f007 fc80 	bl	8013e40 <SysTimeGetMcuTime>
+ 800c540:	f8d5 3124 	ldr.w	r3, [r5, #292]	; 0x124
+ 800c544:	9300      	str	r3, [sp, #0]
+ 800c546:	af02      	add	r7, sp, #8
+ 800c548:	e898 0006 	ldmia.w	r8, {r1, r2}
+ 800c54c:	f8d5 3120 	ldr.w	r3, [r5, #288]	; 0x120
+ 800c550:	4638      	mov	r0, r7
+ 800c552:	f007 fc0c 	bl	8013d6e <SysTimeSub>
+ 800c556:	e897 0003 	ldmia.w	r7, {r0, r1}
+ 800c55a:	ab0f      	add	r3, sp, #60	; 0x3c
+ 800c55c:	e883 0003 	stmia.w	r3, {r0, r1}
+ 800c560:	6aeb      	ldr	r3, [r5, #44]	; 0x2c
+ 800c562:	930d      	str	r3, [sp, #52]	; 0x34
+ 800c564:	2300      	movs	r3, #0
+ 800c566:	f88d 3044 	strb.w	r3, [sp, #68]	; 0x44
+ 800c56a:	8823      	ldrh	r3, [r4, #0]
+ 800c56c:	f8ad 3046 	strh.w	r3, [sp, #70]	; 0x46
+ 800c570:	f895 312c 	ldrb.w	r3, [r5, #300]	; 0x12c
+ 800c574:	2201      	movs	r2, #1
+ 800c576:	f88d 2039 	strb.w	r2, [sp, #57]	; 0x39
+ 800c57a:	b91b      	cbnz	r3, 800c584 <ScheduleTx+0xcc>
+ 800c57c:	f88d 2044 	strb.w	r2, [sp, #68]	; 0x44
+ 800c580:	f88d 3039 	strb.w	r3, [sp, #57]	; 0x39
+ 800c584:	4b80      	ldr	r3, [pc, #512]	; (800c788 <ScheduleTx+0x2d0>)
+ 800c586:	9300      	str	r3, [sp, #0]
+ 800c588:	4b80      	ldr	r3, [pc, #512]	; (800c78c <ScheduleTx+0x2d4>)
+ 800c58a:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800c58e:	f1a3 0273 	sub.w	r2, r3, #115	; 0x73
+ 800c592:	a90c      	add	r1, sp, #48	; 0x30
+ 800c594:	f003 fae1 	bl	800fb5a <RegionNextChannel>
+ 800c598:	b1c0      	cbz	r0, 800c5cc <ScheduleTx+0x114>
+ 800c59a:	280b      	cmp	r0, #11
+ 800c59c:	d1a8      	bne.n	800c4f0 <ScheduleTx+0x38>
+ 800c59e:	f8d4 1484 	ldr.w	r1, [r4, #1156]	; 0x484
+ 800c5a2:	b199      	cbz	r1, 800c5cc <ScheduleTx+0x114>
+ 800c5a4:	2e00      	cmp	r6, #0
+ 800c5a6:	d0a3      	beq.n	800c4f0 <ScheduleTx+0x38>
+ 800c5a8:	f8d4 3340 	ldr.w	r3, [r4, #832]	; 0x340
+ 800c5ac:	4878      	ldr	r0, [pc, #480]	; (800c790 <ScheduleTx+0x2d8>)
+ 800c5ae:	f043 0320 	orr.w	r3, r3, #32
+ 800c5b2:	f8c4 3340 	str.w	r3, [r4, #832]	; 0x340
+ 800c5b6:	f007 fd95 	bl	80140e4 <UTIL_TIMER_SetPeriod>
+ 800c5ba:	4875      	ldr	r0, [pc, #468]	; (800c790 <ScheduleTx+0x2d8>)
+ 800c5bc:	f007 fd58 	bl	8014070 <UTIL_TIMER_Start>
+ 800c5c0:	2000      	movs	r0, #0
+ 800c5c2:	e795      	b.n	800c4f0 <ScheduleTx+0x38>
+ 800c5c4:	486f      	ldr	r0, [pc, #444]	; (800c784 <ScheduleTx+0x2cc>)
+ 800c5c6:	f003 f9be 	bl	800f946 <LoRaMacSerializerData>
+ 800c5ca:	e7a4      	b.n	800c516 <ScheduleTx+0x5e>
+ 800c5cc:	f895 7048 	ldrb.w	r7, [r5, #72]	; 0x48
+ 800c5d0:	f995 3069 	ldrsb.w	r3, [r5, #105]	; 0x69
+ 800c5d4:	f995 2039 	ldrsb.w	r2, [r5, #57]	; 0x39
+ 800c5d8:	f895 107d 	ldrb.w	r1, [r5, #125]	; 0x7d
+ 800c5dc:	4e6d      	ldr	r6, [pc, #436]	; (800c794 <ScheduleTx+0x2dc>)
+ 800c5de:	4638      	mov	r0, r7
+ 800c5e0:	f003 facd 	bl	800fb7e <RegionApplyDrOffset>
+ 800c5e4:	9600      	str	r6, [sp, #0]
+ 800c5e6:	b241      	sxtb	r1, r0
+ 800c5e8:	6ceb      	ldr	r3, [r5, #76]	; 0x4c
+ 800c5ea:	f895 2050 	ldrb.w	r2, [r5, #80]	; 0x50
+ 800c5ee:	4638      	mov	r0, r7
+ 800c5f0:	3614      	adds	r6, #20
+ 800c5f2:	f003 fa63 	bl	800fabc <RegionComputeRxWindowParameters>
+ 800c5f6:	9600      	str	r6, [sp, #0]
+ 800c5f8:	6ceb      	ldr	r3, [r5, #76]	; 0x4c
+ 800c5fa:	f895 2050 	ldrb.w	r2, [r5, #80]	; 0x50
+ 800c5fe:	f995 1070 	ldrsb.w	r1, [r5, #112]	; 0x70
+ 800c602:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800c606:	f003 fa59 	bl	800fabc <RegionComputeRxWindowParameters>
+ 800c60a:	f8d4 13c4 	ldr.w	r1, [r4, #964]	; 0x3c4
+ 800c60e:	6dab      	ldr	r3, [r5, #88]	; 0x58
+ 800c610:	f8d4 23d8 	ldr.w	r2, [r4, #984]	; 0x3d8
+ 800c614:	440b      	add	r3, r1
+ 800c616:	f8c4 33b0 	str.w	r3, [r4, #944]	; 0x3b0
+ 800c61a:	6deb      	ldr	r3, [r5, #92]	; 0x5c
+ 800c61c:	4413      	add	r3, r2
+ 800c61e:	f8c4 33b4 	str.w	r3, [r4, #948]	; 0x3b4
+ 800c622:	f894 3104 	ldrb.w	r3, [r4, #260]	; 0x104
+ 800c626:	2b04      	cmp	r3, #4
+ 800c628:	d007      	beq.n	800c63a <ScheduleTx+0x182>
+ 800c62a:	6e2b      	ldr	r3, [r5, #96]	; 0x60
+ 800c62c:	440b      	add	r3, r1
+ 800c62e:	f8c4 33b0 	str.w	r3, [r4, #944]	; 0x3b0
+ 800c632:	6e6b      	ldr	r3, [r5, #100]	; 0x64
+ 800c634:	4413      	add	r3, r2
+ 800c636:	f8c4 33b4 	str.w	r3, [r4, #948]	; 0x3b4
+ 800c63a:	2300      	movs	r3, #0
+ 800c63c:	9308      	str	r3, [sp, #32]
+ 800c63e:	f895 312c 	ldrb.w	r3, [r5, #300]	; 0x12c
+ 800c642:	b183      	cbz	r3, 800c666 <ScheduleTx+0x1ae>
+ 800c644:	a808      	add	r0, sp, #32
+ 800c646:	f002 fc61 	bl	800ef0c <LoRaMacCommandsGetSizeSerializedCmds>
+ 800c64a:	2800      	cmp	r0, #0
+ 800c64c:	d14a      	bne.n	800c6e4 <ScheduleTx+0x22c>
+ 800c64e:	f995 0039 	ldrsb.w	r0, [r5, #57]	; 0x39
+ 800c652:	f894 6237 	ldrb.w	r6, [r4, #567]	; 0x237
+ 800c656:	f89d 7020 	ldrb.w	r7, [sp, #32]
+ 800c65a:	f7ff fe03 	bl	800c264 <GetMaxAppPayloadWithoutFOptsLength>
+ 800c65e:	443e      	add	r6, r7
+ 800c660:	b280      	uxth	r0, r0
+ 800c662:	42b0      	cmp	r0, r6
+ 800c664:	d33c      	bcc.n	800c6e0 <ScheduleTx+0x228>
+ 800c666:	2300      	movs	r3, #0
+ 800c668:	f88d 3013 	strb.w	r3, [sp, #19]
+ 800c66c:	f895 3039 	ldrb.w	r3, [r5, #57]	; 0x39
+ 800c670:	f88d 3021 	strb.w	r3, [sp, #33]	; 0x21
+ 800c674:	f895 3038 	ldrb.w	r3, [r5, #56]	; 0x38
+ 800c678:	f88d 3022 	strb.w	r3, [sp, #34]	; 0x22
+ 800c67c:	f8d5 3080 	ldr.w	r3, [r5, #128]	; 0x80
+ 800c680:	9309      	str	r3, [sp, #36]	; 0x24
+ 800c682:	f8d5 3084 	ldr.w	r3, [r5, #132]	; 0x84
+ 800c686:	930a      	str	r3, [sp, #40]	; 0x28
+ 800c688:	8823      	ldrh	r3, [r4, #0]
+ 800c68a:	f894 6411 	ldrb.w	r6, [r4, #1041]	; 0x411
+ 800c68e:	f8ad 302c 	strh.w	r3, [sp, #44]	; 0x2c
+ 800c692:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800c696:	4b40      	ldr	r3, [pc, #256]	; (800c798 <ScheduleTx+0x2e0>)
+ 800c698:	f88d 6020 	strb.w	r6, [sp, #32]
+ 800c69c:	f10d 0213 	add.w	r2, sp, #19
+ 800c6a0:	a908      	add	r1, sp, #32
+ 800c6a2:	f003 fa1f 	bl	800fae4 <RegionTxConfig>
+ 800c6a6:	2301      	movs	r3, #1
+ 800c6a8:	f884 3435 	strb.w	r3, [r4, #1077]	; 0x435
+ 800c6ac:	f895 3039 	ldrb.w	r3, [r5, #57]	; 0x39
+ 800c6b0:	f884 3436 	strb.w	r3, [r4, #1078]	; 0x436
+ 800c6b4:	f89d 3013 	ldrb.w	r3, [sp, #19]
+ 800c6b8:	f884 3437 	strb.w	r3, [r4, #1079]	; 0x437
+ 800c6bc:	f8d4 3414 	ldr.w	r3, [r4, #1044]	; 0x414
+ 800c6c0:	f8c4 6444 	str.w	r6, [r4, #1092]	; 0x444
+ 800c6c4:	f8c4 343c 	str.w	r3, [r4, #1084]	; 0x43c
+ 800c6c8:	f8c4 344c 	str.w	r3, [r4, #1100]	; 0x44c
+ 800c6cc:	f002 fb4d 	bl	800ed6a <LoRaMacClassBIsBeaconModeActive>
+ 800c6d0:	b150      	cbz	r0, 800c6e8 <ScheduleTx+0x230>
+ 800c6d2:	f8d4 0414 	ldr.w	r0, [r4, #1044]	; 0x414
+ 800c6d6:	f002 fb5a 	bl	800ed8e <LoRaMacClassBIsUplinkCollision>
+ 800c6da:	b128      	cbz	r0, 800c6e8 <ScheduleTx+0x230>
+ 800c6dc:	2010      	movs	r0, #16
+ 800c6de:	e707      	b.n	800c4f0 <ScheduleTx+0x38>
+ 800c6e0:	2008      	movs	r0, #8
+ 800c6e2:	e705      	b.n	800c4f0 <ScheduleTx+0x38>
+ 800c6e4:	2013      	movs	r0, #19
+ 800c6e6:	e703      	b.n	800c4f0 <ScheduleTx+0x38>
+ 800c6e8:	f895 3118 	ldrb.w	r3, [r5, #280]	; 0x118
+ 800c6ec:	2b01      	cmp	r3, #1
+ 800c6ee:	d101      	bne.n	800c6f4 <ScheduleTx+0x23c>
+ 800c6f0:	f002 fb4f 	bl	800ed92 <LoRaMacClassBStopRxSlots>
+ 800c6f4:	f002 fb3c 	bl	800ed70 <LoRaMacClassBHaltBeaconing>
+ 800c6f8:	2300      	movs	r3, #0
+ 800c6fa:	9305      	str	r3, [sp, #20]
+ 800c6fc:	f894 3104 	ldrb.w	r3, [r4, #260]	; 0x104
+ 800c700:	f995 5039 	ldrsb.w	r5, [r5, #57]	; 0x39
+ 800c704:	f894 6411 	ldrb.w	r6, [r4, #1041]	; 0x411
+ 800c708:	b1bb      	cbz	r3, 800c73a <ScheduleTx+0x282>
+ 800c70a:	2b04      	cmp	r3, #4
+ 800c70c:	f47f aeea 	bne.w	800c4e4 <ScheduleTx+0x2c>
+ 800c710:	a805      	add	r0, sp, #20
+ 800c712:	f002 fe37 	bl	800f384 <LoRaMacCryptoGetFCntUp>
+ 800c716:	bb60      	cbnz	r0, 800c772 <ScheduleTx+0x2ba>
+ 800c718:	f894 340c 	ldrb.w	r3, [r4, #1036]	; 0x40c
+ 800c71c:	b91b      	cbnz	r3, 800c726 <ScheduleTx+0x26e>
+ 800c71e:	f894 340e 	ldrb.w	r3, [r4, #1038]	; 0x40e
+ 800c722:	2b01      	cmp	r3, #1
+ 800c724:	d902      	bls.n	800c72c <ScheduleTx+0x274>
+ 800c726:	9b05      	ldr	r3, [sp, #20]
+ 800c728:	3b01      	subs	r3, #1
+ 800c72a:	9305      	str	r3, [sp, #20]
+ 800c72c:	4b15      	ldr	r3, [pc, #84]	; (800c784 <ScheduleTx+0x2cc>)
+ 800c72e:	9805      	ldr	r0, [sp, #20]
+ 800c730:	4632      	mov	r2, r6
+ 800c732:	b2e9      	uxtb	r1, r5
+ 800c734:	f002 fe98 	bl	800f468 <LoRaMacCryptoSecureMessage>
+ 800c738:	e002      	b.n	800c740 <ScheduleTx+0x288>
+ 800c73a:	4812      	ldr	r0, [pc, #72]	; (800c784 <ScheduleTx+0x2cc>)
+ 800c73c:	f002 fe6c 	bl	800f418 <LoRaMacCryptoPrepareJoinRequest>
+ 800c740:	b9a8      	cbnz	r0, 800c76e <ScheduleTx+0x2b6>
+ 800c742:	f8d4 3340 	ldr.w	r3, [r4, #832]	; 0x340
+ 800c746:	f894 110c 	ldrb.w	r1, [r4, #268]	; 0x10c
+ 800c74a:	8021      	strh	r1, [r4, #0]
+ 800c74c:	f043 0302 	orr.w	r3, r3, #2
+ 800c750:	f8c4 3340 	str.w	r3, [r4, #832]	; 0x340
+ 800c754:	f894 3410 	ldrb.w	r3, [r4, #1040]	; 0x410
+ 800c758:	b923      	cbnz	r3, 800c764 <ScheduleTx+0x2ac>
+ 800c75a:	f894 340c 	ldrb.w	r3, [r4, #1036]	; 0x40c
+ 800c75e:	3301      	adds	r3, #1
+ 800c760:	f884 340c 	strb.w	r3, [r4, #1036]	; 0x40c
+ 800c764:	4b0d      	ldr	r3, [pc, #52]	; (800c79c <ScheduleTx+0x2e4>)
+ 800c766:	480e      	ldr	r0, [pc, #56]	; (800c7a0 <ScheduleTx+0x2e8>)
+ 800c768:	6a9b      	ldr	r3, [r3, #40]	; 0x28
+ 800c76a:	4798      	blx	r3
+ 800c76c:	e728      	b.n	800c5c0 <ScheduleTx+0x108>
+ 800c76e:	2011      	movs	r0, #17
+ 800c770:	e6be      	b.n	800c4f0 <ScheduleTx+0x38>
+ 800c772:	2012      	movs	r0, #18
+ 800c774:	e6bc      	b.n	800c4f0 <ScheduleTx+0x38>
+ 800c776:	200e      	movs	r0, #14
+ 800c778:	e6ba      	b.n	800c4f0 <ScheduleTx+0x38>
+ 800c77a:	bf00      	nop
+ 800c77c:	20001868 	.word	0x20001868
+ 800c780:	20001fdc 	.word	0x20001fdc
+ 800c784:	200020e4 	.word	0x200020e4
+ 800c788:	20001898 	.word	0x20001898
+ 800c78c:	20002460 	.word	0x20002460
+ 800c790:	20002344 	.word	0x20002344
+ 800c794:	20002394 	.word	0x20002394
+ 800c798:	200023f0 	.word	0x200023f0
+ 800c79c:	080159b0 	.word	0x080159b0
+ 800c7a0:	20001fde 	.word	0x20001fde
+
+0800c7a4 <OpenContinuousRxCWindow>:
+ 800c7a4:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 800c7a6:	4c14      	ldr	r4, [pc, #80]	; (800c7f8 <OpenContinuousRxCWindow+0x54>)
+ 800c7a8:	4d14      	ldr	r5, [pc, #80]	; (800c7fc <OpenContinuousRxCWindow+0x58>)
+ 800c7aa:	f504 7678 	add.w	r6, r4, #992	; 0x3e0
+ 800c7ae:	6ceb      	ldr	r3, [r5, #76]	; 0x4c
+ 800c7b0:	f895 2050 	ldrb.w	r2, [r5, #80]	; 0x50
+ 800c7b4:	f995 1078 	ldrsb.w	r1, [r5, #120]	; 0x78
+ 800c7b8:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800c7bc:	9600      	str	r6, [sp, #0]
+ 800c7be:	f003 f97d 	bl	800fabc <RegionComputeRxWindowParameters>
+ 800c7c2:	f240 2301 	movw	r3, #513	; 0x201
+ 800c7c6:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800c7ca:	f8a4 33f2 	strh.w	r3, [r4, #1010]	; 0x3f2
+ 800c7ce:	f204 421c 	addw	r2, r4, #1052	; 0x41c
+ 800c7d2:	4631      	mov	r1, r6
+ 800c7d4:	f003 f97e 	bl	800fad4 <RegionRxConfig>
+ 800c7d8:	b158      	cbz	r0, 800c7f2 <OpenContinuousRxCWindow+0x4e>
+ 800c7da:	f894 341c 	ldrb.w	r3, [r4, #1052]	; 0x41c
+ 800c7de:	f884 345e 	strb.w	r3, [r4, #1118]	; 0x45e
+ 800c7e2:	4b07      	ldr	r3, [pc, #28]	; (800c800 <OpenContinuousRxCWindow+0x5c>)
+ 800c7e4:	2000      	movs	r0, #0
+ 800c7e6:	6b5b      	ldr	r3, [r3, #52]	; 0x34
+ 800c7e8:	4798      	blx	r3
+ 800c7ea:	f894 33f3 	ldrb.w	r3, [r4, #1011]	; 0x3f3
+ 800c7ee:	f884 3480 	strb.w	r3, [r4, #1152]	; 0x480
+ 800c7f2:	b002      	add	sp, #8
+ 800c7f4:	bd70      	pop	{r4, r5, r6, pc}
+ 800c7f6:	bf00      	nop
+ 800c7f8:	20001fdc 	.word	0x20001fdc
+ 800c7fc:	20001868 	.word	0x20001868
+ 800c800:	080159b0 	.word	0x080159b0
+
+0800c804 <SwitchClass>:
+ 800c804:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 800c806:	4d33      	ldr	r5, [pc, #204]	; (800c8d4 <SwitchClass+0xd0>)
+ 800c808:	f895 4118 	ldrb.w	r4, [r5, #280]	; 0x118
+ 800c80c:	2c01      	cmp	r4, #1
+ 800c80e:	4606      	mov	r6, r0
+ 800c810:	d04b      	beq.n	800c8aa <SwitchClass+0xa6>
+ 800c812:	2c02      	cmp	r4, #2
+ 800c814:	d051      	beq.n	800c8ba <SwitchClass+0xb6>
+ 800c816:	b964      	cbnz	r4, 800c832 <SwitchClass+0x2e>
+ 800c818:	b938      	cbnz	r0, 800c82a <SwitchClass+0x26>
+ 800c81a:	e9d5 011b 	ldrd	r0, r1, [r5, #108]	; 0x6c
+ 800c81e:	f105 0374 	add.w	r3, r5, #116	; 0x74
+ 800c822:	e883 0003 	stmia.w	r3, {r0, r1}
+ 800c826:	4620      	mov	r0, r4
+ 800c828:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 800c82a:	2801      	cmp	r0, #1
+ 800c82c:	d03d      	beq.n	800c8aa <SwitchClass+0xa6>
+ 800c82e:	2802      	cmp	r0, #2
+ 800c830:	d001      	beq.n	800c836 <SwitchClass+0x32>
+ 800c832:	2403      	movs	r4, #3
+ 800c834:	e7f7      	b.n	800c826 <SwitchClass+0x22>
+ 800c836:	4f28      	ldr	r7, [pc, #160]	; (800c8d8 <SwitchClass+0xd4>)
+ 800c838:	f885 0118 	strb.w	r0, [r5, #280]	; 0x118
+ 800c83c:	f507 7e73 	add.w	lr, r7, #972	; 0x3cc
+ 800c840:	e8be 000f 	ldmia.w	lr!, {r0, r1, r2, r3}
+ 800c844:	f507 7c78 	add.w	ip, r7, #992	; 0x3e0
+ 800c848:	e8ac 000f 	stmia.w	ip!, {r0, r1, r2, r3}
+ 800c84c:	f8de 3000 	ldr.w	r3, [lr]
+ 800c850:	f8cc 3000 	str.w	r3, [ip]
+ 800c854:	f895 30e9 	ldrb.w	r3, [r5, #233]	; 0xe9
+ 800c858:	f887 63f3 	strb.w	r6, [r7, #1011]	; 0x3f3
+ 800c85c:	b1e3      	cbz	r3, 800c898 <SwitchClass+0x94>
+ 800c85e:	f895 3100 	ldrb.w	r3, [r5, #256]	; 0x100
+ 800c862:	2b02      	cmp	r3, #2
+ 800c864:	d118      	bne.n	800c898 <SwitchClass+0x94>
+ 800c866:	f8d5 3104 	ldr.w	r3, [r5, #260]	; 0x104
+ 800c86a:	676b      	str	r3, [r5, #116]	; 0x74
+ 800c86c:	f8c7 33e4 	str.w	r3, [r7, #996]	; 0x3e4
+ 800c870:	f895 307d 	ldrb.w	r3, [r5, #125]	; 0x7d
+ 800c874:	f895 2108 	ldrb.w	r2, [r5, #264]	; 0x108
+ 800c878:	f887 33f0 	strb.w	r3, [r7, #1008]	; 0x3f0
+ 800c87c:	f895 308c 	ldrb.w	r3, [r5, #140]	; 0x8c
+ 800c880:	f885 2078 	strb.w	r2, [r5, #120]	; 0x78
+ 800c884:	f887 33f1 	strb.w	r3, [r7, #1009]	; 0x3f1
+ 800c888:	f897 2411 	ldrb.w	r2, [r7, #1041]	; 0x411
+ 800c88c:	f887 23e0 	strb.w	r2, [r7, #992]	; 0x3e0
+ 800c890:	f240 3301 	movw	r3, #769	; 0x301
+ 800c894:	f8a7 33f2 	strh.w	r3, [r7, #1010]	; 0x3f2
+ 800c898:	2300      	movs	r3, #0
+ 800c89a:	f887 3410 	strb.w	r3, [r7, #1040]	; 0x410
+ 800c89e:	4b0f      	ldr	r3, [pc, #60]	; (800c8dc <SwitchClass+0xd8>)
+ 800c8a0:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800c8a2:	4798      	blx	r3
+ 800c8a4:	f7ff ff7e 	bl	800c7a4 <OpenContinuousRxCWindow>
+ 800c8a8:	e7bd      	b.n	800c826 <SwitchClass+0x22>
+ 800c8aa:	f002 fa63 	bl	800ed74 <LoRaMacClassBSwitchClass>
+ 800c8ae:	4604      	mov	r4, r0
+ 800c8b0:	2800      	cmp	r0, #0
+ 800c8b2:	d1b8      	bne.n	800c826 <SwitchClass+0x22>
+ 800c8b4:	f885 6118 	strb.w	r6, [r5, #280]	; 0x118
+ 800c8b8:	e7b5      	b.n	800c826 <SwitchClass+0x22>
+ 800c8ba:	2800      	cmp	r0, #0
+ 800c8bc:	d1b9      	bne.n	800c832 <SwitchClass+0x2e>
+ 800c8be:	4b06      	ldr	r3, [pc, #24]	; (800c8d8 <SwitchClass+0xd4>)
+ 800c8c0:	f885 0118 	strb.w	r0, [r5, #280]	; 0x118
+ 800c8c4:	2206      	movs	r2, #6
+ 800c8c6:	f883 2480 	strb.w	r2, [r3, #1152]	; 0x480
+ 800c8ca:	4b04      	ldr	r3, [pc, #16]	; (800c8dc <SwitchClass+0xd8>)
+ 800c8cc:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800c8ce:	4798      	blx	r3
+ 800c8d0:	4634      	mov	r4, r6
+ 800c8d2:	e7a8      	b.n	800c826 <SwitchClass+0x22>
+ 800c8d4:	20001868 	.word	0x20001868
+ 800c8d8:	20001fdc 	.word	0x20001fdc
+ 800c8dc:	080159b0 	.word	0x080159b0
+
+0800c8e0 <ResetMacParameters.constprop.0>:
+ 800c8e0:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 800c8e2:	4c48      	ldr	r4, [pc, #288]	; (800ca04 <ResetMacParameters.constprop.0+0x124>)
+ 800c8e4:	4e48      	ldr	r6, [pc, #288]	; (800ca08 <ResetMacParameters.constprop.0+0x128>)
+ 800c8e6:	f8b4 20dc 	ldrh.w	r2, [r4, #220]	; 0xdc
+ 800c8ea:	8722      	strh	r2, [r4, #56]	; 0x38
+ 800c8ec:	e9d4 012d 	ldrd	r0, r1, [r4, #180]	; 0xb4
+ 800c8f0:	f894 20b1 	ldrb.w	r2, [r4, #177]	; 0xb1
+ 800c8f4:	f884 2069 	strb.w	r2, [r4, #105]	; 0x69
+ 800c8f8:	f104 026c 	add.w	r2, r4, #108	; 0x6c
+ 800c8fc:	e882 0003 	stmia.w	r2, {r0, r1}
+ 800c900:	e9d4 012f 	ldrd	r0, r1, [r4, #188]	; 0xbc
+ 800c904:	f104 0274 	add.w	r2, r4, #116	; 0x74
+ 800c908:	e882 0003 	stmia.w	r2, {r0, r1}
+ 800c90c:	f8b4 20c4 	ldrh.w	r2, [r4, #196]	; 0xc4
+ 800c910:	f8a4 207c 	strh.w	r2, [r4, #124]	; 0x7c
+ 800c914:	f8d4 20cc 	ldr.w	r2, [r4, #204]	; 0xcc
+ 800c918:	f8c4 2084 	str.w	r2, [r4, #132]	; 0x84
+ 800c91c:	b08f      	sub	sp, #60	; 0x3c
+ 800c91e:	f8d4 20d0 	ldr.w	r2, [r4, #208]	; 0xd0
+ 800c922:	f8d4 10c8 	ldr.w	r1, [r4, #200]	; 0xc8
+ 800c926:	f8c4 2088 	str.w	r2, [r4, #136]	; 0x88
+ 800c92a:	2500      	movs	r5, #0
+ 800c92c:	4a37      	ldr	r2, [pc, #220]	; (800ca0c <ResetMacParameters.constprop.0+0x12c>)
+ 800c92e:	f8c4 1080 	str.w	r1, [r4, #128]	; 0x80
+ 800c932:	2301      	movs	r3, #1
+ 800c934:	f8a4 311e 	strh.w	r3, [r4, #286]	; 0x11e
+ 800c938:	f8c6 240c 	str.w	r2, [r6, #1036]	; 0x40c
+ 800c93c:	e9c4 554e 	strd	r5, r5, [r4, #312]	; 0x138
+ 800c940:	f884 512c 	strb.w	r5, [r4, #300]	; 0x12c
+ 800c944:	62a5      	str	r5, [r4, #40]	; 0x28
+ 800c946:	f884 511b 	strb.w	r5, [r4, #283]	; 0x11b
+ 800c94a:	f884 503a 	strb.w	r5, [r4, #58]	; 0x3a
+ 800c94e:	f8c4 5130 	str.w	r5, [r4, #304]	; 0x130
+ 800c952:	f8a4 5134 	strh.w	r5, [r4, #308]	; 0x134
+ 800c956:	f886 5410 	strb.w	r5, [r6, #1040]	; 0x410
+ 800c95a:	f884 5141 	strb.w	r5, [r4, #321]	; 0x141
+ 800c95e:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800c962:	f504 7308 	add.w	r3, r4, #544	; 0x220
+ 800c966:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800c96a:	f8a4 5142 	strh.w	r5, [r4, #322]	; 0x142
+ 800c96e:	9303      	str	r3, [sp, #12]
+ 800c970:	a903      	add	r1, sp, #12
+ 800c972:	f504 732d 	add.w	r3, r4, #692	; 0x2b4
+ 800c976:	9304      	str	r3, [sp, #16]
+ 800c978:	f003 f888 	bl	800fa8c <RegionInitDefaults>
+ 800c97c:	6ee3      	ldr	r3, [r4, #108]	; 0x6c
+ 800c97e:	f8c6 33d0 	str.w	r3, [r6, #976]	; 0x3d0
+ 800c982:	f894 307d 	ldrb.w	r3, [r4, #125]	; 0x7d
+ 800c986:	f886 33dc 	strb.w	r3, [r6, #988]	; 0x3dc
+ 800c98a:	f894 308c 	ldrb.w	r3, [r4, #140]	; 0x8c
+ 800c98e:	f886 33dd 	strb.w	r3, [r6, #989]	; 0x3dd
+ 800c992:	f44f 7380 	mov.w	r3, #256	; 0x100
+ 800c996:	f8a6 33de 	strh.w	r3, [r6, #990]	; 0x3de
+ 800c99a:	f886 53cc 	strb.w	r5, [r6, #972]	; 0x3cc
+ 800c99e:	f506 7773 	add.w	r7, r6, #972	; 0x3cc
+ 800c9a2:	cf0f      	ldmia	r7!, {r0, r1, r2, r3}
+ 800c9a4:	f506 7478 	add.w	r4, r6, #992	; 0x3e0
+ 800c9a8:	c40f      	stmia	r4!, {r0, r1, r2, r3}
+ 800c9aa:	683b      	ldr	r3, [r7, #0]
+ 800c9ac:	6023      	str	r3, [r4, #0]
+ 800c9ae:	f240 2301 	movw	r3, #513	; 0x201
+ 800c9b2:	f8a6 33f2 	strh.w	r3, [r6, #1010]	; 0x3f2
+ 800c9b6:	f8d6 3348 	ldr.w	r3, [r6, #840]	; 0x348
+ 800c9ba:	f886 5411 	strb.w	r5, [r6, #1041]	; 0x411
+ 800c9be:	e9cd 5501 	strd	r5, r5, [sp, #4]
+ 800c9c2:	b11b      	cbz	r3, 800c9cc <ResetMacParameters.constprop.0+0xec>
+ 800c9c4:	685a      	ldr	r2, [r3, #4]
+ 800c9c6:	695b      	ldr	r3, [r3, #20]
+ 800c9c8:	9201      	str	r2, [sp, #4]
+ 800c9ca:	9302      	str	r3, [sp, #8]
+ 800c9cc:	4b10      	ldr	r3, [pc, #64]	; (800ca10 <ResetMacParameters.constprop.0+0x130>)
+ 800c9ce:	9306      	str	r3, [sp, #24]
+ 800c9d0:	f1a3 0244 	sub.w	r2, r3, #68	; 0x44
+ 800c9d4:	9207      	str	r2, [sp, #28]
+ 800c9d6:	f1a3 0214 	sub.w	r2, r3, #20
+ 800c9da:	9208      	str	r2, [sp, #32]
+ 800c9dc:	4a0d      	ldr	r2, [pc, #52]	; (800ca14 <ResetMacParameters.constprop.0+0x134>)
+ 800c9de:	920a      	str	r2, [sp, #40]	; 0x28
+ 800c9e0:	3325      	adds	r3, #37	; 0x25
+ 800c9e2:	9309      	str	r3, [sp, #36]	; 0x24
+ 800c9e4:	f1a2 039c 	sub.w	r3, r2, #156	; 0x9c
+ 800c9e8:	930b      	str	r3, [sp, #44]	; 0x2c
+ 800c9ea:	f1a2 0398 	sub.w	r3, r2, #152	; 0x98
+ 800c9ee:	930c      	str	r3, [sp, #48]	; 0x30
+ 800c9f0:	a901      	add	r1, sp, #4
+ 800c9f2:	1d13      	adds	r3, r2, #4
+ 800c9f4:	a806      	add	r0, sp, #24
+ 800c9f6:	f202 6274 	addw	r2, r2, #1652	; 0x674
+ 800c9fa:	930d      	str	r3, [sp, #52]	; 0x34
+ 800c9fc:	f002 f9a4 	bl	800ed48 <LoRaMacClassBInit>
+ 800ca00:	b00f      	add	sp, #60	; 0x3c
+ 800ca02:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 800ca04:	20001868 	.word	0x20001868
+ 800ca08:	20001fdc 	.word	0x20001fdc
+ 800ca0c:	00010100 	.word	0x00010100
+ 800ca10:	20002438 	.word	0x20002438
+ 800ca14:	2000194c 	.word	0x2000194c
+
+0800ca18 <RxWindowSetup.constprop.0>:
+ 800ca18:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 800ca1a:	4f0d      	ldr	r7, [pc, #52]	; (800ca50 <RxWindowSetup.constprop.0+0x38>)
+ 800ca1c:	4c0d      	ldr	r4, [pc, #52]	; (800ca54 <RxWindowSetup.constprop.0+0x3c>)
+ 800ca1e:	4e0e      	ldr	r6, [pc, #56]	; (800ca58 <RxWindowSetup.constprop.0+0x40>)
+ 800ca20:	460d      	mov	r5, r1
+ 800ca22:	f007 fad7 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 800ca26:	6b3b      	ldr	r3, [r7, #48]	; 0x30
+ 800ca28:	4798      	blx	r3
+ 800ca2a:	f896 0048 	ldrb.w	r0, [r6, #72]	; 0x48
+ 800ca2e:	f204 421c 	addw	r2, r4, #1052	; 0x41c
+ 800ca32:	4629      	mov	r1, r5
+ 800ca34:	f003 f84e 	bl	800fad4 <RegionRxConfig>
+ 800ca38:	b148      	cbz	r0, 800ca4e <RxWindowSetup.constprop.0+0x36>
+ 800ca3a:	f894 341c 	ldrb.w	r3, [r4, #1052]	; 0x41c
+ 800ca3e:	f884 345e 	strb.w	r3, [r4, #1118]	; 0x45e
+ 800ca42:	6d70      	ldr	r0, [r6, #84]	; 0x54
+ 800ca44:	6b7b      	ldr	r3, [r7, #52]	; 0x34
+ 800ca46:	4798      	blx	r3
+ 800ca48:	7ceb      	ldrb	r3, [r5, #19]
+ 800ca4a:	f884 3480 	strb.w	r3, [r4, #1152]	; 0x480
+ 800ca4e:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 800ca50:	080159b0 	.word	0x080159b0
+ 800ca54:	20001fdc 	.word	0x20001fdc
+ 800ca58:	20001868 	.word	0x20001868
+
+0800ca5c <OnRxWindow1TimerEvent>:
+ 800ca5c:	480d      	ldr	r0, [pc, #52]	; (800ca94 <OnRxWindow1TimerEvent+0x38>)
+ 800ca5e:	f890 3411 	ldrb.w	r3, [r0, #1041]	; 0x411
+ 800ca62:	f880 33b8 	strb.w	r3, [r0, #952]	; 0x3b8
+ 800ca66:	4b0c      	ldr	r3, [pc, #48]	; (800ca98 <OnRxWindow1TimerEvent+0x3c>)
+ 800ca68:	f893 2069 	ldrb.w	r2, [r3, #105]	; 0x69
+ 800ca6c:	f880 23bb 	strb.w	r2, [r0, #955]	; 0x3bb
+ 800ca70:	f893 207d 	ldrb.w	r2, [r3, #125]	; 0x7d
+ 800ca74:	f893 308c 	ldrb.w	r3, [r3, #140]	; 0x8c
+ 800ca78:	f880 33c9 	strb.w	r3, [r0, #969]	; 0x3c9
+ 800ca7c:	2300      	movs	r3, #0
+ 800ca7e:	f880 23c8 	strb.w	r2, [r0, #968]	; 0x3c8
+ 800ca82:	f8a0 33ca 	strh.w	r3, [r0, #970]	; 0x3ca
+ 800ca86:	f500 716e 	add.w	r1, r0, #952	; 0x3b8
+ 800ca8a:	f500 7060 	add.w	r0, r0, #896	; 0x380
+ 800ca8e:	f7ff bfc3 	b.w	800ca18 <RxWindowSetup.constprop.0>
+ 800ca92:	bf00      	nop
+ 800ca94:	20001fdc 	.word	0x20001fdc
+ 800ca98:	20001868 	.word	0x20001868
+
+0800ca9c <OnRxWindow2TimerEvent>:
+ 800ca9c:	480f      	ldr	r0, [pc, #60]	; (800cadc <OnRxWindow2TimerEvent+0x40>)
+ 800ca9e:	f890 3480 	ldrb.w	r3, [r0, #1152]	; 0x480
+ 800caa2:	b1cb      	cbz	r3, 800cad8 <OnRxWindow2TimerEvent+0x3c>
+ 800caa4:	f890 3411 	ldrb.w	r3, [r0, #1041]	; 0x411
+ 800caa8:	f880 33cc 	strb.w	r3, [r0, #972]	; 0x3cc
+ 800caac:	4b0c      	ldr	r3, [pc, #48]	; (800cae0 <OnRxWindow2TimerEvent+0x44>)
+ 800caae:	6eda      	ldr	r2, [r3, #108]	; 0x6c
+ 800cab0:	f8c0 23d0 	str.w	r2, [r0, #976]	; 0x3d0
+ 800cab4:	f893 207d 	ldrb.w	r2, [r3, #125]	; 0x7d
+ 800cab8:	f893 308c 	ldrb.w	r3, [r3, #140]	; 0x8c
+ 800cabc:	f880 33dd 	strb.w	r3, [r0, #989]	; 0x3dd
+ 800cac0:	f44f 7380 	mov.w	r3, #256	; 0x100
+ 800cac4:	f880 23dc 	strb.w	r2, [r0, #988]	; 0x3dc
+ 800cac8:	f8a0 33de 	strh.w	r3, [r0, #990]	; 0x3de
+ 800cacc:	f500 7173 	add.w	r1, r0, #972	; 0x3cc
+ 800cad0:	f500 7066 	add.w	r0, r0, #920	; 0x398
+ 800cad4:	f7ff bfa0 	b.w	800ca18 <RxWindowSetup.constprop.0>
+ 800cad8:	4770      	bx	lr
+ 800cada:	bf00      	nop
+ 800cadc:	20001fdc 	.word	0x20001fdc
+ 800cae0:	20001868 	.word	0x20001868
+
+0800cae4 <LoRaMacHandleNvm.part.0.constprop.0>:
+ 800cae4:	b570      	push	{r4, r5, r6, lr}
+ 800cae6:	4c34      	ldr	r4, [pc, #208]	; (800cbb8 <LoRaMacHandleNvm.part.0.constprop.0+0xd4>)
+ 800cae8:	2124      	movs	r1, #36	; 0x24
+ 800caea:	4620      	mov	r0, r4
+ 800caec:	f004 ff64 	bl	80119b8 <Crc32>
+ 800caf0:	6a63      	ldr	r3, [r4, #36]	; 0x24
+ 800caf2:	4298      	cmp	r0, r3
+ 800caf4:	bf18      	it	ne
+ 800caf6:	6260      	strne	r0, [r4, #36]	; 0x24
+ 800caf8:	f04f 011c 	mov.w	r1, #28
+ 800cafc:	482f      	ldr	r0, [pc, #188]	; (800cbbc <LoRaMacHandleNvm.part.0.constprop.0+0xd8>)
+ 800cafe:	bf14      	ite	ne
+ 800cb00:	2501      	movne	r5, #1
+ 800cb02:	2500      	moveq	r5, #0
+ 800cb04:	f004 ff58 	bl	80119b8 <Crc32>
+ 800cb08:	6c63      	ldr	r3, [r4, #68]	; 0x44
+ 800cb0a:	4298      	cmp	r0, r3
+ 800cb0c:	bf18      	it	ne
+ 800cb0e:	6460      	strne	r0, [r4, #68]	; 0x44
+ 800cb10:	f04f 01fc 	mov.w	r1, #252	; 0xfc
+ 800cb14:	482a      	ldr	r0, [pc, #168]	; (800cbc0 <LoRaMacHandleNvm.part.0.constprop.0+0xdc>)
+ 800cb16:	bf18      	it	ne
+ 800cb18:	f045 0502 	orrne.w	r5, r5, #2
+ 800cb1c:	f004 ff4c 	bl	80119b8 <Crc32>
+ 800cb20:	f8d4 3144 	ldr.w	r3, [r4, #324]	; 0x144
+ 800cb24:	4298      	cmp	r0, r3
+ 800cb26:	bf18      	it	ne
+ 800cb28:	f8c4 0144 	strne.w	r0, [r4, #324]	; 0x144
+ 800cb2c:	f04f 01d4 	mov.w	r1, #212	; 0xd4
+ 800cb30:	4824      	ldr	r0, [pc, #144]	; (800cbc4 <LoRaMacHandleNvm.part.0.constprop.0+0xe0>)
+ 800cb32:	bf18      	it	ne
+ 800cb34:	f045 0504 	orrne.w	r5, r5, #4
+ 800cb38:	f004 ff3e 	bl	80119b8 <Crc32>
+ 800cb3c:	f8d4 321c 	ldr.w	r3, [r4, #540]	; 0x21c
+ 800cb40:	4298      	cmp	r0, r3
+ 800cb42:	bf18      	it	ne
+ 800cb44:	f8c4 021c 	strne.w	r0, [r4, #540]	; 0x21c
+ 800cb48:	f04f 0190 	mov.w	r1, #144	; 0x90
+ 800cb4c:	481e      	ldr	r0, [pc, #120]	; (800cbc8 <LoRaMacHandleNvm.part.0.constprop.0+0xe4>)
+ 800cb4e:	bf18      	it	ne
+ 800cb50:	f045 0508 	orrne.w	r5, r5, #8
+ 800cb54:	f004 ff30 	bl	80119b8 <Crc32>
+ 800cb58:	f8d4 32b0 	ldr.w	r3, [r4, #688]	; 0x2b0
+ 800cb5c:	4298      	cmp	r0, r3
+ 800cb5e:	bf18      	it	ne
+ 800cb60:	f8c4 02b0 	strne.w	r0, [r4, #688]	; 0x2b0
+ 800cb64:	f44f 6194 	mov.w	r1, #1184	; 0x4a0
+ 800cb68:	4818      	ldr	r0, [pc, #96]	; (800cbcc <LoRaMacHandleNvm.part.0.constprop.0+0xe8>)
+ 800cb6a:	bf18      	it	ne
+ 800cb6c:	f045 0510 	orrne.w	r5, r5, #16
+ 800cb70:	f004 ff22 	bl	80119b8 <Crc32>
+ 800cb74:	f8d4 3754 	ldr.w	r3, [r4, #1876]	; 0x754
+ 800cb78:	4298      	cmp	r0, r3
+ 800cb7a:	bf18      	it	ne
+ 800cb7c:	f8c4 0754 	strne.w	r0, [r4, #1876]	; 0x754
+ 800cb80:	f04f 0114 	mov.w	r1, #20
+ 800cb84:	4812      	ldr	r0, [pc, #72]	; (800cbd0 <LoRaMacHandleNvm.part.0.constprop.0+0xec>)
+ 800cb86:	bf18      	it	ne
+ 800cb88:	f045 0520 	orrne.w	r5, r5, #32
+ 800cb8c:	f004 ff14 	bl	80119b8 <Crc32>
+ 800cb90:	f8d4 376c 	ldr.w	r3, [r4, #1900]	; 0x76c
+ 800cb94:	4298      	cmp	r0, r3
+ 800cb96:	4b0f      	ldr	r3, [pc, #60]	; (800cbd4 <LoRaMacHandleNvm.part.0.constprop.0+0xf0>)
+ 800cb98:	bf18      	it	ne
+ 800cb9a:	f8c4 076c 	strne.w	r0, [r4, #1900]	; 0x76c
+ 800cb9e:	f8d3 3348 	ldr.w	r3, [r3, #840]	; 0x348
+ 800cba2:	bf18      	it	ne
+ 800cba4:	f045 0540 	orrne.w	r5, r5, #64	; 0x40
+ 800cba8:	b12b      	cbz	r3, 800cbb6 <LoRaMacHandleNvm.part.0.constprop.0+0xd2>
+ 800cbaa:	691b      	ldr	r3, [r3, #16]
+ 800cbac:	b11b      	cbz	r3, 800cbb6 <LoRaMacHandleNvm.part.0.constprop.0+0xd2>
+ 800cbae:	4628      	mov	r0, r5
+ 800cbb0:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
+ 800cbb4:	4718      	bx	r3
+ 800cbb6:	bd70      	pop	{r4, r5, r6, pc}
+ 800cbb8:	20001868 	.word	0x20001868
+ 800cbbc:	20001890 	.word	0x20001890
+ 800cbc0:	200018b0 	.word	0x200018b0
+ 800cbc4:	200019b0 	.word	0x200019b0
+ 800cbc8:	20001a88 	.word	0x20001a88
+ 800cbcc:	20001b1c 	.word	0x20001b1c
+ 800cbd0:	20001fc0 	.word	0x20001fc0
+ 800cbd4:	20001fdc 	.word	0x20001fdc
+
+0800cbd8 <ProcessMacCommands.constprop.0>:
+ 800cbd8:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 800cbdc:	b091      	sub	sp, #68	; 0x44
+ 800cbde:	2600      	movs	r6, #0
+ 800cbe0:	4fbd      	ldr	r7, [pc, #756]	; (800ced8 <ProcessMacCommands.constprop.0+0x300>)
+ 800cbe2:	f88d 6015 	strb.w	r6, [sp, #21]
+ 800cbe6:	4605      	mov	r5, r0
+ 800cbe8:	4688      	mov	r8, r1
+ 800cbea:	4693      	mov	fp, r2
+ 800cbec:	f8ad 6018 	strh.w	r6, [sp, #24]
+ 800cbf0:	46b1      	mov	r9, r6
+ 800cbf2:	45c1      	cmp	r9, r8
+ 800cbf4:	d302      	bcc.n	800cbfc <ProcessMacCommands.constprop.0+0x24>
+ 800cbf6:	b011      	add	sp, #68	; 0x44
+ 800cbf8:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 800cbfc:	f815 0009 	ldrb.w	r0, [r5, r9]
+ 800cc00:	f002 f9c2 	bl	800ef88 <LoRaMacCommandsGetCmdSize>
+ 800cc04:	4448      	add	r0, r9
+ 800cc06:	4540      	cmp	r0, r8
+ 800cc08:	dcf5      	bgt.n	800cbf6 <ProcessMacCommands.constprop.0+0x1e>
+ 800cc0a:	f815 3009 	ldrb.w	r3, [r5, r9]
+ 800cc0e:	f109 0401 	add.w	r4, r9, #1
+ 800cc12:	3b02      	subs	r3, #2
+ 800cc14:	b2e4      	uxtb	r4, r4
+ 800cc16:	2b11      	cmp	r3, #17
+ 800cc18:	d8ed      	bhi.n	800cbf6 <ProcessMacCommands.constprop.0+0x1e>
+ 800cc1a:	a201      	add	r2, pc, #4	; (adr r2, 800cc20 <ProcessMacCommands.constprop.0+0x48>)
+ 800cc1c:	f852 f023 	ldr.w	pc, [r2, r3, lsl #2]
+ 800cc20:	0800cc69 	.word	0x0800cc69
+ 800cc24:	0800cc99 	.word	0x0800cc99
+ 800cc28:	0800cd59 	.word	0x0800cd59
+ 800cc2c:	0800cd85 	.word	0x0800cd85
+ 800cc30:	0800ce15 	.word	0x0800ce15
+ 800cc34:	0800ce39 	.word	0x0800ce39
+ 800cc38:	0800cead 	.word	0x0800cead
+ 800cc3c:	0800cee1 	.word	0x0800cee1
+ 800cc40:	0800cf5f 	.word	0x0800cf5f
+ 800cc44:	0800cbf7 	.word	0x0800cbf7
+ 800cc48:	0800cbf7 	.word	0x0800cbf7
+ 800cc4c:	0800cfbf 	.word	0x0800cfbf
+ 800cc50:	0800cbf7 	.word	0x0800cbf7
+ 800cc54:	0800cbf7 	.word	0x0800cbf7
+ 800cc58:	0800d075 	.word	0x0800d075
+ 800cc5c:	0800d09b 	.word	0x0800d09b
+ 800cc60:	0800d0df 	.word	0x0800d0df
+ 800cc64:	0800d11d 	.word	0x0800d11d
+ 800cc68:	2005      	movs	r0, #5
+ 800cc6a:	f002 fa39 	bl	800f0e0 <LoRaMacConfirmQueueIsCmdActive>
+ 800cc6e:	b188      	cbz	r0, 800cc94 <ProcessMacCommands.constprop.0+0xbc>
+ 800cc70:	2105      	movs	r1, #5
+ 800cc72:	2000      	movs	r0, #0
+ 800cc74:	f002 f9f8 	bl	800f068 <LoRaMacConfirmQueueSetStatus>
+ 800cc78:	5d2b      	ldrb	r3, [r5, r4]
+ 800cc7a:	f887 3450 	strb.w	r3, [r7, #1104]	; 0x450
+ 800cc7e:	f109 0403 	add.w	r4, r9, #3
+ 800cc82:	f109 0902 	add.w	r9, r9, #2
+ 800cc86:	fa5f f989 	uxtb.w	r9, r9
+ 800cc8a:	b2e4      	uxtb	r4, r4
+ 800cc8c:	f815 3009 	ldrb.w	r3, [r5, r9]
+ 800cc90:	f887 3451 	strb.w	r3, [r7, #1105]	; 0x451
+ 800cc94:	46a1      	mov	r9, r4
+ 800cc96:	e7ac      	b.n	800cbf2 <ProcessMacCommands.constprop.0+0x1a>
+ 800cc98:	2300      	movs	r3, #0
+ 800cc9a:	f88d 3016 	strb.w	r3, [sp, #22]
+ 800cc9e:	f88d 3017 	strb.w	r3, [sp, #23]
+ 800cca2:	f88d 301c 	strb.w	r3, [sp, #28]
+ 800cca6:	f88d 3020 	strb.w	r3, [sp, #32]
+ 800ccaa:	2e00      	cmp	r6, #0
+ 800ccac:	d152      	bne.n	800cd54 <ProcessMacCommands.constprop.0+0x17c>
+ 800ccae:	4e8b      	ldr	r6, [pc, #556]	; (800cedc <ProcessMacCommands.constprop.0+0x304>)
+ 800ccb0:	1e63      	subs	r3, r4, #1
+ 800ccb2:	442b      	add	r3, r5
+ 800ccb4:	930d      	str	r3, [sp, #52]	; 0x34
+ 800ccb6:	f896 311a 	ldrb.w	r3, [r6, #282]	; 0x11a
+ 800ccba:	f88d 303a 	strb.w	r3, [sp, #58]	; 0x3a
+ 800ccbe:	f896 307c 	ldrb.w	r3, [r6, #124]	; 0x7c
+ 800ccc2:	f88d 3039 	strb.w	r3, [sp, #57]	; 0x39
+ 800ccc6:	f896 3039 	ldrb.w	r3, [r6, #57]	; 0x39
+ 800ccca:	f88d 303b 	strb.w	r3, [sp, #59]	; 0x3b
+ 800ccce:	f896 3038 	ldrb.w	r3, [r6, #56]	; 0x38
+ 800ccd2:	f88d 303c 	strb.w	r3, [sp, #60]	; 0x3c
+ 800ccd6:	f896 3068 	ldrb.w	r3, [r6, #104]	; 0x68
+ 800ccda:	f88d 303d 	strb.w	r3, [sp, #61]	; 0x3d
+ 800ccde:	f8d6 3128 	ldr.w	r3, [r6, #296]	; 0x128
+ 800cce2:	930c      	str	r3, [sp, #48]	; 0x30
+ 800cce4:	ab08      	add	r3, sp, #32
+ 800cce6:	9301      	str	r3, [sp, #4]
+ 800cce8:	ab07      	add	r3, sp, #28
+ 800ccea:	9300      	str	r3, [sp, #0]
+ 800ccec:	f896 0048 	ldrb.w	r0, [r6, #72]	; 0x48
+ 800ccf0:	eba8 0909 	sub.w	r9, r8, r9
+ 800ccf4:	f10d 0317 	add.w	r3, sp, #23
+ 800ccf8:	f10d 0216 	add.w	r2, sp, #22
+ 800ccfc:	a90c      	add	r1, sp, #48	; 0x30
+ 800ccfe:	f88d 9038 	strb.w	r9, [sp, #56]	; 0x38
+ 800cd02:	f002 fefb 	bl	800fafc <RegionLinkAdrReq>
+ 800cd06:	f88d 0015 	strb.w	r0, [sp, #21]
+ 800cd0a:	f000 0007 	and.w	r0, r0, #7
+ 800cd0e:	2807      	cmp	r0, #7
+ 800cd10:	d10b      	bne.n	800cd2a <ProcessMacCommands.constprop.0+0x152>
+ 800cd12:	f89d 3016 	ldrb.w	r3, [sp, #22]
+ 800cd16:	f886 3039 	strb.w	r3, [r6, #57]	; 0x39
+ 800cd1a:	f89d 3017 	ldrb.w	r3, [sp, #23]
+ 800cd1e:	f886 3038 	strb.w	r3, [r6, #56]	; 0x38
+ 800cd22:	f89d 301c 	ldrb.w	r3, [sp, #28]
+ 800cd26:	f886 3068 	strb.w	r3, [r6, #104]	; 0x68
+ 800cd2a:	2600      	movs	r6, #0
+ 800cd2c:	f04f 0905 	mov.w	r9, #5
+ 800cd30:	e006      	b.n	800cd40 <ProcessMacCommands.constprop.0+0x168>
+ 800cd32:	2201      	movs	r2, #1
+ 800cd34:	f10d 0115 	add.w	r1, sp, #21
+ 800cd38:	2003      	movs	r0, #3
+ 800cd3a:	f002 f83b 	bl	800edb4 <LoRaMacCommandsAddCmd>
+ 800cd3e:	3601      	adds	r6, #1
+ 800cd40:	b2f2      	uxtb	r2, r6
+ 800cd42:	f89d 3020 	ldrb.w	r3, [sp, #32]
+ 800cd46:	fbb3 f1f9 	udiv	r1, r3, r9
+ 800cd4a:	4291      	cmp	r1, r2
+ 800cd4c:	d8f1      	bhi.n	800cd32 <ProcessMacCommands.constprop.0+0x15a>
+ 800cd4e:	3b01      	subs	r3, #1
+ 800cd50:	4423      	add	r3, r4
+ 800cd52:	b2dc      	uxtb	r4, r3
+ 800cd54:	2601      	movs	r6, #1
+ 800cd56:	e79d      	b.n	800cc94 <ProcessMacCommands.constprop.0+0xbc>
+ 800cd58:	5d2b      	ldrb	r3, [r5, r4]
+ 800cd5a:	4960      	ldr	r1, [pc, #384]	; (800cedc <ProcessMacCommands.constprop.0+0x304>)
+ 800cd5c:	f003 030f 	and.w	r3, r3, #15
+ 800cd60:	2201      	movs	r2, #1
+ 800cd62:	f881 311b 	strb.w	r3, [r1, #283]	; 0x11b
+ 800cd66:	f109 0902 	add.w	r9, r9, #2
+ 800cd6a:	fa02 f303 	lsl.w	r3, r2, r3
+ 800cd6e:	f8a1 311e 	strh.w	r3, [r1, #286]	; 0x11e
+ 800cd72:	fa5f f989 	uxtb.w	r9, r9
+ 800cd76:	2200      	movs	r2, #0
+ 800cd78:	a906      	add	r1, sp, #24
+ 800cd7a:	2004      	movs	r0, #4
+ 800cd7c:	f002 f81a 	bl	800edb4 <LoRaMacCommandsAddCmd>
+ 800cd80:	464c      	mov	r4, r9
+ 800cd82:	e787      	b.n	800cc94 <ProcessMacCommands.constprop.0+0xbc>
+ 800cd84:	2307      	movs	r3, #7
+ 800cd86:	f88d 3015 	strb.w	r3, [sp, #21]
+ 800cd8a:	5d2b      	ldrb	r3, [r5, r4]
+ 800cd8c:	f3c3 1202 	ubfx	r2, r3, #4, #3
+ 800cd90:	f003 030f 	and.w	r3, r3, #15
+ 800cd94:	f88d 3030 	strb.w	r3, [sp, #48]	; 0x30
+ 800cd98:	f109 0303 	add.w	r3, r9, #3
+ 800cd9c:	b2db      	uxtb	r3, r3
+ 800cd9e:	f88d 2031 	strb.w	r2, [sp, #49]	; 0x31
+ 800cda2:	5cea      	ldrb	r2, [r5, r3]
+ 800cda4:	f109 0304 	add.w	r3, r9, #4
+ 800cda8:	b2db      	uxtb	r3, r3
+ 800cdaa:	f109 0405 	add.w	r4, r9, #5
+ 800cdae:	5ceb      	ldrb	r3, [r5, r3]
+ 800cdb0:	f109 0902 	add.w	r9, r9, #2
+ 800cdb4:	fa5f f989 	uxtb.w	r9, r9
+ 800cdb8:	041b      	lsls	r3, r3, #16
+ 800cdba:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
+ 800cdbe:	f815 2009 	ldrb.w	r2, [r5, r9]
+ 800cdc2:	f8df 9118 	ldr.w	r9, [pc, #280]	; 800cedc <ProcessMacCommands.constprop.0+0x304>
+ 800cdc6:	4313      	orrs	r3, r2
+ 800cdc8:	2264      	movs	r2, #100	; 0x64
+ 800cdca:	4353      	muls	r3, r2
+ 800cdcc:	f899 0048 	ldrb.w	r0, [r9, #72]	; 0x48
+ 800cdd0:	930d      	str	r3, [sp, #52]	; 0x34
+ 800cdd2:	a90c      	add	r1, sp, #48	; 0x30
+ 800cdd4:	f002 fea1 	bl	800fb1a <RegionRxParamSetupReq>
+ 800cdd8:	f000 0307 	and.w	r3, r0, #7
+ 800cddc:	2b07      	cmp	r3, #7
+ 800cdde:	b2e4      	uxtb	r4, r4
+ 800cde0:	f88d 0015 	strb.w	r0, [sp, #21]
+ 800cde4:	d10e      	bne.n	800ce04 <ProcessMacCommands.constprop.0+0x22c>
+ 800cde6:	f89d 3030 	ldrb.w	r3, [sp, #48]	; 0x30
+ 800cdea:	f889 3070 	strb.w	r3, [r9, #112]	; 0x70
+ 800cdee:	f889 3078 	strb.w	r3, [r9, #120]	; 0x78
+ 800cdf2:	9b0d      	ldr	r3, [sp, #52]	; 0x34
+ 800cdf4:	f8c9 306c 	str.w	r3, [r9, #108]	; 0x6c
+ 800cdf8:	f8c9 3074 	str.w	r3, [r9, #116]	; 0x74
+ 800cdfc:	f89d 3031 	ldrb.w	r3, [sp, #49]	; 0x31
+ 800ce00:	f889 3069 	strb.w	r3, [r9, #105]	; 0x69
+ 800ce04:	f88d 0018 	strb.w	r0, [sp, #24]
+ 800ce08:	2201      	movs	r2, #1
+ 800ce0a:	a906      	add	r1, sp, #24
+ 800ce0c:	2005      	movs	r0, #5
+ 800ce0e:	f001 ffd1 	bl	800edb4 <LoRaMacCommandsAddCmd>
+ 800ce12:	e73f      	b.n	800cc94 <ProcessMacCommands.constprop.0+0xbc>
+ 800ce14:	f8d7 3348 	ldr.w	r3, [r7, #840]	; 0x348
+ 800ce18:	b163      	cbz	r3, 800ce34 <ProcessMacCommands.constprop.0+0x25c>
+ 800ce1a:	681b      	ldr	r3, [r3, #0]
+ 800ce1c:	b153      	cbz	r3, 800ce34 <ProcessMacCommands.constprop.0+0x25c>
+ 800ce1e:	4798      	blx	r3
+ 800ce20:	f00b 033f 	and.w	r3, fp, #63	; 0x3f
+ 800ce24:	f88d 0018 	strb.w	r0, [sp, #24]
+ 800ce28:	f88d 3019 	strb.w	r3, [sp, #25]
+ 800ce2c:	2202      	movs	r2, #2
+ 800ce2e:	a906      	add	r1, sp, #24
+ 800ce30:	2006      	movs	r0, #6
+ 800ce32:	e7ec      	b.n	800ce0e <ProcessMacCommands.constprop.0+0x236>
+ 800ce34:	20ff      	movs	r0, #255	; 0xff
+ 800ce36:	e7f3      	b.n	800ce20 <ProcessMacCommands.constprop.0+0x248>
+ 800ce38:	2303      	movs	r3, #3
+ 800ce3a:	f88d 3015 	strb.w	r3, [sp, #21]
+ 800ce3e:	5d2b      	ldrb	r3, [r5, r4]
+ 800ce40:	f88d 3024 	strb.w	r3, [sp, #36]	; 0x24
+ 800ce44:	ab0c      	add	r3, sp, #48	; 0x30
+ 800ce46:	9308      	str	r3, [sp, #32]
+ 800ce48:	f109 0303 	add.w	r3, r9, #3
+ 800ce4c:	b2db      	uxtb	r3, r3
+ 800ce4e:	f109 0406 	add.w	r4, r9, #6
+ 800ce52:	5cea      	ldrb	r2, [r5, r3]
+ 800ce54:	f109 0304 	add.w	r3, r9, #4
+ 800ce58:	b2db      	uxtb	r3, r3
+ 800ce5a:	a908      	add	r1, sp, #32
+ 800ce5c:	5ceb      	ldrb	r3, [r5, r3]
+ 800ce5e:	041b      	lsls	r3, r3, #16
+ 800ce60:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
+ 800ce64:	f109 0202 	add.w	r2, r9, #2
+ 800ce68:	b2d2      	uxtb	r2, r2
+ 800ce6a:	f109 0905 	add.w	r9, r9, #5
+ 800ce6e:	5caa      	ldrb	r2, [r5, r2]
+ 800ce70:	4313      	orrs	r3, r2
+ 800ce72:	2264      	movs	r2, #100	; 0x64
+ 800ce74:	4353      	muls	r3, r2
+ 800ce76:	fa5f f989 	uxtb.w	r9, r9
+ 800ce7a:	930c      	str	r3, [sp, #48]	; 0x30
+ 800ce7c:	2300      	movs	r3, #0
+ 800ce7e:	930d      	str	r3, [sp, #52]	; 0x34
+ 800ce80:	f815 3009 	ldrb.w	r3, [r5, r9]
+ 800ce84:	f88d 3038 	strb.w	r3, [sp, #56]	; 0x38
+ 800ce88:	4b14      	ldr	r3, [pc, #80]	; (800cedc <ProcessMacCommands.constprop.0+0x304>)
+ 800ce8a:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 800ce8e:	f002 fe4a 	bl	800fb26 <RegionNewChannelReq>
+ 800ce92:	b2c3      	uxtb	r3, r0
+ 800ce94:	2800      	cmp	r0, #0
+ 800ce96:	b2e4      	uxtb	r4, r4
+ 800ce98:	f88d 3015 	strb.w	r3, [sp, #21]
+ 800ce9c:	f6ff aefa 	blt.w	800cc94 <ProcessMacCommands.constprop.0+0xbc>
+ 800cea0:	f88d 3018 	strb.w	r3, [sp, #24]
+ 800cea4:	2201      	movs	r2, #1
+ 800cea6:	a906      	add	r1, sp, #24
+ 800cea8:	2007      	movs	r0, #7
+ 800ceaa:	e7b0      	b.n	800ce0e <ProcessMacCommands.constprop.0+0x236>
+ 800ceac:	5d2b      	ldrb	r3, [r5, r4]
+ 800ceae:	f003 030f 	and.w	r3, r3, #15
+ 800ceb2:	2b01      	cmp	r3, #1
+ 800ceb4:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
+ 800ceb8:	bf38      	it	cc
+ 800ceba:	2301      	movcc	r3, #1
+ 800cebc:	4353      	muls	r3, r2
+ 800cebe:	4a07      	ldr	r2, [pc, #28]	; (800cedc <ProcessMacCommands.constprop.0+0x304>)
+ 800cec0:	f109 0902 	add.w	r9, r9, #2
+ 800cec4:	6593      	str	r3, [r2, #88]	; 0x58
+ 800cec6:	f503 737a 	add.w	r3, r3, #1000	; 0x3e8
+ 800ceca:	65d3      	str	r3, [r2, #92]	; 0x5c
+ 800cecc:	fa5f f989 	uxtb.w	r9, r9
+ 800ced0:	2200      	movs	r2, #0
+ 800ced2:	a906      	add	r1, sp, #24
+ 800ced4:	2008      	movs	r0, #8
+ 800ced6:	e751      	b.n	800cd7c <ProcessMacCommands.constprop.0+0x1a4>
+ 800ced8:	20001fdc 	.word	0x20001fdc
+ 800cedc:	20001868 	.word	0x20001868
+ 800cee0:	5d2b      	ldrb	r3, [r5, r4]
+ 800cee2:	4c9c      	ldr	r4, [pc, #624]	; (800d154 <ProcessMacCommands.constprop.0+0x57c>)
+ 800cee4:	f3c3 1240 	ubfx	r2, r3, #5, #1
+ 800cee8:	f88d 201d 	strb.w	r2, [sp, #29]
+ 800ceec:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800cef0:	f3c3 1200 	ubfx	r2, r3, #4, #1
+ 800cef4:	a907      	add	r1, sp, #28
+ 800cef6:	f003 030f 	and.w	r3, r3, #15
+ 800cefa:	f88d 201c 	strb.w	r2, [sp, #28]
+ 800cefe:	f88d 301e 	strb.w	r3, [sp, #30]
+ 800cf02:	f002 fe16 	bl	800fb32 <RegionTxParamSetupReq>
+ 800cf06:	f109 0902 	add.w	r9, r9, #2
+ 800cf0a:	3001      	adds	r0, #1
+ 800cf0c:	fa5f f989 	uxtb.w	r9, r9
+ 800cf10:	f43f af36 	beq.w	800cd80 <ProcessMacCommands.constprop.0+0x1a8>
+ 800cf14:	f8bd 301c 	ldrh.w	r3, [sp, #28]
+ 800cf18:	4a8f      	ldr	r2, [pc, #572]	; (800d158 <ProcessMacCommands.constprop.0+0x580>)
+ 800cf1a:	f8a4 307c 	strh.w	r3, [r4, #124]	; 0x7c
+ 800cf1e:	f89d 301e 	ldrb.w	r3, [sp, #30]
+ 800cf22:	f89d a01c 	ldrb.w	sl, [sp, #28]
+ 800cf26:	5cd0      	ldrb	r0, [r2, r3]
+ 800cf28:	f7f4 fd74 	bl	8001a14 <__aeabi_ui2f>
+ 800cf2c:	2302      	movs	r3, #2
+ 800cf2e:	f8c4 0080 	str.w	r0, [r4, #128]	; 0x80
+ 800cf32:	a90c      	add	r1, sp, #48	; 0x30
+ 800cf34:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800cf38:	f88d 3030 	strb.w	r3, [sp, #48]	; 0x30
+ 800cf3c:	f88d a032 	strb.w	sl, [sp, #50]	; 0x32
+ 800cf40:	f002 fd96 	bl	800fa70 <RegionGetPhyParam>
+ 800cf44:	f994 3039 	ldrsb.w	r3, [r4, #57]	; 0x39
+ 800cf48:	9008      	str	r0, [sp, #32]
+ 800cf4a:	b240      	sxtb	r0, r0
+ 800cf4c:	4298      	cmp	r0, r3
+ 800cf4e:	bfb8      	it	lt
+ 800cf50:	4618      	movlt	r0, r3
+ 800cf52:	f884 0039 	strb.w	r0, [r4, #57]	; 0x39
+ 800cf56:	2200      	movs	r2, #0
+ 800cf58:	a906      	add	r1, sp, #24
+ 800cf5a:	2009      	movs	r0, #9
+ 800cf5c:	e70e      	b.n	800cd7c <ProcessMacCommands.constprop.0+0x1a4>
+ 800cf5e:	2303      	movs	r3, #3
+ 800cf60:	f88d 3015 	strb.w	r3, [sp, #21]
+ 800cf64:	5d2b      	ldrb	r3, [r5, r4]
+ 800cf66:	f88d 3030 	strb.w	r3, [sp, #48]	; 0x30
+ 800cf6a:	f109 0303 	add.w	r3, r9, #3
+ 800cf6e:	b2db      	uxtb	r3, r3
+ 800cf70:	f109 0405 	add.w	r4, r9, #5
+ 800cf74:	5cea      	ldrb	r2, [r5, r3]
+ 800cf76:	f109 0304 	add.w	r3, r9, #4
+ 800cf7a:	b2db      	uxtb	r3, r3
+ 800cf7c:	f109 0902 	add.w	r9, r9, #2
+ 800cf80:	5ceb      	ldrb	r3, [r5, r3]
+ 800cf82:	fa5f f989 	uxtb.w	r9, r9
+ 800cf86:	041b      	lsls	r3, r3, #16
+ 800cf88:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
+ 800cf8c:	f815 2009 	ldrb.w	r2, [r5, r9]
+ 800cf90:	4313      	orrs	r3, r2
+ 800cf92:	2264      	movs	r2, #100	; 0x64
+ 800cf94:	4353      	muls	r3, r2
+ 800cf96:	930d      	str	r3, [sp, #52]	; 0x34
+ 800cf98:	4b6e      	ldr	r3, [pc, #440]	; (800d154 <ProcessMacCommands.constprop.0+0x57c>)
+ 800cf9a:	a90c      	add	r1, sp, #48	; 0x30
+ 800cf9c:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 800cfa0:	f002 fdcd 	bl	800fb3e <RegionDlChannelReq>
+ 800cfa4:	b2c3      	uxtb	r3, r0
+ 800cfa6:	2800      	cmp	r0, #0
+ 800cfa8:	b2e4      	uxtb	r4, r4
+ 800cfaa:	f88d 3015 	strb.w	r3, [sp, #21]
+ 800cfae:	f6ff ae71 	blt.w	800cc94 <ProcessMacCommands.constprop.0+0xbc>
+ 800cfb2:	f88d 3018 	strb.w	r3, [sp, #24]
+ 800cfb6:	2201      	movs	r2, #1
+ 800cfb8:	a906      	add	r1, sp, #24
+ 800cfba:	200a      	movs	r0, #10
+ 800cfbc:	e727      	b.n	800ce0e <ProcessMacCommands.constprop.0+0x236>
+ 800cfbe:	200a      	movs	r0, #10
+ 800cfc0:	f002 f88e 	bl	800f0e0 <LoRaMacConfirmQueueIsCmdActive>
+ 800cfc4:	2800      	cmp	r0, #0
+ 800cfc6:	f43f ae65 	beq.w	800cc94 <ProcessMacCommands.constprop.0+0xbc>
+ 800cfca:	210a      	movs	r1, #10
+ 800cfcc:	2000      	movs	r0, #0
+ 800cfce:	f002 f84b 	bl	800f068 <LoRaMacConfirmQueueSetStatus>
+ 800cfd2:	2300      	movs	r3, #0
+ 800cfd4:	f8ad 3026 	strh.w	r3, [sp, #38]	; 0x26
+ 800cfd8:	f109 0302 	add.w	r3, r9, #2
+ 800cfdc:	b2db      	uxtb	r3, r3
+ 800cfde:	f44f 717a 	mov.w	r1, #1000	; 0x3e8
+ 800cfe2:	5cea      	ldrb	r2, [r5, r3]
+ 800cfe4:	f109 0303 	add.w	r3, r9, #3
+ 800cfe8:	b2db      	uxtb	r3, r3
+ 800cfea:	f10d 0a30 	add.w	sl, sp, #48	; 0x30
+ 800cfee:	5ceb      	ldrb	r3, [r5, r3]
+ 800cff0:	041b      	lsls	r3, r3, #16
+ 800cff2:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
+ 800cff6:	5d2a      	ldrb	r2, [r5, r4]
+ 800cff8:	4313      	orrs	r3, r2
+ 800cffa:	f109 0204 	add.w	r2, r9, #4
+ 800cffe:	b2d2      	uxtb	r2, r2
+ 800d000:	f109 0406 	add.w	r4, r9, #6
+ 800d004:	f109 0905 	add.w	r9, r9, #5
+ 800d008:	5caa      	ldrb	r2, [r5, r2]
+ 800d00a:	fa5f f989 	uxtb.w	r9, r9
+ 800d00e:	ea43 6302 	orr.w	r3, r3, r2, lsl #24
+ 800d012:	f815 2009 	ldrb.w	r2, [r5, r9]
+ 800d016:	9303      	str	r3, [sp, #12]
+ 800d018:	434a      	muls	r2, r1
+ 800d01a:	1212      	asrs	r2, r2, #8
+ 800d01c:	4650      	mov	r0, sl
+ 800d01e:	f8ad 2024 	strh.w	r2, [sp, #36]	; 0x24
+ 800d022:	f006 fee7 	bl	8013df4 <SysTimeGet>
+ 800d026:	9b03      	ldr	r3, [sp, #12]
+ 800d028:	f103 5396 	add.w	r3, r3, #314572800	; 0x12c00000
+ 800d02c:	f503 13a9 	add.w	r3, r3, #1384448	; 0x152000
+ 800d030:	f503 53ec 	add.w	r3, r3, #7552	; 0x1d80
+ 800d034:	9308      	str	r3, [sp, #32]
+ 800d036:	f8d7 333c 	ldr.w	r3, [r7, #828]	; 0x33c
+ 800d03a:	9300      	str	r3, [sp, #0]
+ 800d03c:	f10d 0920 	add.w	r9, sp, #32
+ 800d040:	e899 0006 	ldmia.w	r9, {r1, r2}
+ 800d044:	f8d7 3338 	ldr.w	r3, [r7, #824]	; 0x338
+ 800d048:	a80a      	add	r0, sp, #40	; 0x28
+ 800d04a:	f006 fe90 	bl	8013d6e <SysTimeSub>
+ 800d04e:	9b0b      	ldr	r3, [sp, #44]	; 0x2c
+ 800d050:	9300      	str	r3, [sp, #0]
+ 800d052:	e89a 0006 	ldmia.w	sl, {r1, r2}
+ 800d056:	9b0a      	ldr	r3, [sp, #40]	; 0x28
+ 800d058:	4648      	mov	r0, r9
+ 800d05a:	f006 fe6d 	bl	8013d38 <SysTimeAdd>
+ 800d05e:	e899 0003 	ldmia.w	r9, {r0, r1}
+ 800d062:	f006 fe9f 	bl	8013da4 <SysTimeSet>
+ 800d066:	f001 fe8f 	bl	800ed88 <LoRaMacClassBDeviceTimeAns>
+ 800d06a:	2301      	movs	r3, #1
+ 800d06c:	b2e4      	uxtb	r4, r4
+ 800d06e:	f887 3430 	strb.w	r3, [r7, #1072]	; 0x430
+ 800d072:	e60f      	b.n	800cc94 <ProcessMacCommands.constprop.0+0xbc>
+ 800d074:	200d      	movs	r0, #13
+ 800d076:	f002 f833 	bl	800f0e0 <LoRaMacConfirmQueueIsCmdActive>
+ 800d07a:	2800      	cmp	r0, #0
+ 800d07c:	f43f ae0a 	beq.w	800cc94 <ProcessMacCommands.constprop.0+0xbc>
+ 800d080:	210d      	movs	r1, #13
+ 800d082:	2000      	movs	r0, #0
+ 800d084:	f001 fff0 	bl	800f068 <LoRaMacConfirmQueueSetStatus>
+ 800d088:	f897 3480 	ldrb.w	r3, [r7, #1152]	; 0x480
+ 800d08c:	3b04      	subs	r3, #4
+ 800d08e:	2b01      	cmp	r3, #1
+ 800d090:	f67f ae00 	bls.w	800cc94 <ProcessMacCommands.constprop.0+0xbc>
+ 800d094:	f001 fe74 	bl	800ed80 <LoRaMacClassBPingSlotInfoAns>
+ 800d098:	e5fc      	b.n	800cc94 <ProcessMacCommands.constprop.0+0xbc>
+ 800d09a:	f109 0302 	add.w	r3, r9, #2
+ 800d09e:	b2db      	uxtb	r3, r3
+ 800d0a0:	5d2a      	ldrb	r2, [r5, r4]
+ 800d0a2:	5ce9      	ldrb	r1, [r5, r3]
+ 800d0a4:	f109 0303 	add.w	r3, r9, #3
+ 800d0a8:	b2db      	uxtb	r3, r3
+ 800d0aa:	f109 0405 	add.w	r4, r9, #5
+ 800d0ae:	5ceb      	ldrb	r3, [r5, r3]
+ 800d0b0:	f109 0904 	add.w	r9, r9, #4
+ 800d0b4:	fa5f f989 	uxtb.w	r9, r9
+ 800d0b8:	041b      	lsls	r3, r3, #16
+ 800d0ba:	f815 0009 	ldrb.w	r0, [r5, r9]
+ 800d0be:	ea43 2301 	orr.w	r3, r3, r1, lsl #8
+ 800d0c2:	4313      	orrs	r3, r2
+ 800d0c4:	2164      	movs	r1, #100	; 0x64
+ 800d0c6:	4359      	muls	r1, r3
+ 800d0c8:	f000 000f 	and.w	r0, r0, #15
+ 800d0cc:	f001 fe59 	bl	800ed82 <LoRaMacClassBPingSlotChannelReq>
+ 800d0d0:	b2e4      	uxtb	r4, r4
+ 800d0d2:	f88d 0018 	strb.w	r0, [sp, #24]
+ 800d0d6:	2201      	movs	r2, #1
+ 800d0d8:	a906      	add	r1, sp, #24
+ 800d0da:	2011      	movs	r0, #17
+ 800d0dc:	e697      	b.n	800ce0e <ProcessMacCommands.constprop.0+0x236>
+ 800d0de:	200e      	movs	r0, #14
+ 800d0e0:	f001 fffe 	bl	800f0e0 <LoRaMacConfirmQueueIsCmdActive>
+ 800d0e4:	2800      	cmp	r0, #0
+ 800d0e6:	f43f add5 	beq.w	800cc94 <ProcessMacCommands.constprop.0+0xbc>
+ 800d0ea:	210e      	movs	r1, #14
+ 800d0ec:	2000      	movs	r0, #0
+ 800d0ee:	f001 ffbb 	bl	800f068 <LoRaMacConfirmQueueSetStatus>
+ 800d0f2:	f109 0302 	add.w	r3, r9, #2
+ 800d0f6:	b2db      	uxtb	r3, r3
+ 800d0f8:	4a18      	ldr	r2, [pc, #96]	; (800d15c <ProcessMacCommands.constprop.0+0x584>)
+ 800d0fa:	5ce8      	ldrb	r0, [r5, r3]
+ 800d0fc:	5d2b      	ldrb	r3, [r5, r4]
+ 800d0fe:	6812      	ldr	r2, [r2, #0]
+ 800d100:	f109 0404 	add.w	r4, r9, #4
+ 800d104:	f109 0903 	add.w	r9, r9, #3
+ 800d108:	fa5f f989 	uxtb.w	r9, r9
+ 800d10c:	ea43 2000 	orr.w	r0, r3, r0, lsl #8
+ 800d110:	f815 1009 	ldrb.w	r1, [r5, r9]
+ 800d114:	b2e4      	uxtb	r4, r4
+ 800d116:	f001 fe36 	bl	800ed86 <LoRaMacClassBBeaconTimingAns>
+ 800d11a:	e5bb      	b.n	800cc94 <ProcessMacCommands.constprop.0+0xbc>
+ 800d11c:	5d2a      	ldrb	r2, [r5, r4]
+ 800d11e:	f109 0302 	add.w	r3, r9, #2
+ 800d122:	f109 0404 	add.w	r4, r9, #4
+ 800d126:	f109 0903 	add.w	r9, r9, #3
+ 800d12a:	b2db      	uxtb	r3, r3
+ 800d12c:	fa5f f989 	uxtb.w	r9, r9
+ 800d130:	5ce9      	ldrb	r1, [r5, r3]
+ 800d132:	f815 3009 	ldrb.w	r3, [r5, r9]
+ 800d136:	041b      	lsls	r3, r3, #16
+ 800d138:	ea43 2301 	orr.w	r3, r3, r1, lsl #8
+ 800d13c:	4313      	orrs	r3, r2
+ 800d13e:	2064      	movs	r0, #100	; 0x64
+ 800d140:	4358      	muls	r0, r3
+ 800d142:	f001 fe22 	bl	800ed8a <LoRaMacClassBBeaconFreqReq>
+ 800d146:	b2e4      	uxtb	r4, r4
+ 800d148:	f88d 0018 	strb.w	r0, [sp, #24]
+ 800d14c:	2201      	movs	r2, #1
+ 800d14e:	a906      	add	r1, sp, #24
+ 800d150:	2013      	movs	r0, #19
+ 800d152:	e65c      	b.n	800ce0e <ProcessMacCommands.constprop.0+0x236>
+ 800d154:	20001868 	.word	0x20001868
+ 800d158:	0801532b 	.word	0x0801532b
+ 800d15c:	200024e4 	.word	0x200024e4
+
+0800d160 <StopRetransmission.isra.0>:
+ 800d160:	4b0e      	ldr	r3, [pc, #56]	; (800d19c <StopRetransmission.isra.0+0x3c>)
+ 800d162:	f893 2481 	ldrb.w	r2, [r3, #1153]	; 0x481
+ 800d166:	0792      	lsls	r2, r2, #30
+ 800d168:	d503      	bpl.n	800d172 <StopRetransmission.isra.0+0x12>
+ 800d16a:	f893 247f 	ldrb.w	r2, [r3, #1151]	; 0x47f
+ 800d16e:	2a01      	cmp	r2, #1
+ 800d170:	d906      	bls.n	800d180 <StopRetransmission.isra.0+0x20>
+ 800d172:	4a0b      	ldr	r2, [pc, #44]	; (800d1a0 <StopRetransmission.isra.0+0x40>)
+ 800d174:	f892 111a 	ldrb.w	r1, [r2, #282]	; 0x11a
+ 800d178:	b111      	cbz	r1, 800d180 <StopRetransmission.isra.0+0x20>
+ 800d17a:	6a91      	ldr	r1, [r2, #40]	; 0x28
+ 800d17c:	3101      	adds	r1, #1
+ 800d17e:	6291      	str	r1, [r2, #40]	; 0x28
+ 800d180:	2200      	movs	r2, #0
+ 800d182:	f883 240c 	strb.w	r2, [r3, #1036]	; 0x40c
+ 800d186:	f883 2410 	strb.w	r2, [r3, #1040]	; 0x410
+ 800d18a:	f883 240f 	strb.w	r2, [r3, #1039]	; 0x40f
+ 800d18e:	f8d3 2340 	ldr.w	r2, [r3, #832]	; 0x340
+ 800d192:	f022 0202 	bic.w	r2, r2, #2
+ 800d196:	f8c3 2340 	str.w	r2, [r3, #832]	; 0x340
+ 800d19a:	4770      	bx	lr
+ 800d19c:	20001fdc 	.word	0x20001fdc
+ 800d1a0:	20001868 	.word	0x20001868
+
+0800d1a4 <OnTxDelayedTimerEvent>:
+ 800d1a4:	b510      	push	{r4, lr}
+ 800d1a6:	4c12      	ldr	r4, [pc, #72]	; (800d1f0 <OnTxDelayedTimerEvent+0x4c>)
+ 800d1a8:	f504 705a 	add.w	r0, r4, #872	; 0x368
+ 800d1ac:	f006 ff12 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 800d1b0:	f8d4 3340 	ldr.w	r3, [r4, #832]	; 0x340
+ 800d1b4:	2001      	movs	r0, #1
+ 800d1b6:	f023 0320 	bic.w	r3, r3, #32
+ 800d1ba:	f8c4 3340 	str.w	r3, [r4, #832]	; 0x340
+ 800d1be:	f7ff f97b 	bl	800c4b8 <ScheduleTx>
+ 800d1c2:	b198      	cbz	r0, 800d1ec <OnTxDelayedTimerEvent+0x48>
+ 800d1c4:	280b      	cmp	r0, #11
+ 800d1c6:	d011      	beq.n	800d1ec <OnTxDelayedTimerEvent+0x48>
+ 800d1c8:	4b0a      	ldr	r3, [pc, #40]	; (800d1f4 <OnTxDelayedTimerEvent+0x50>)
+ 800d1ca:	f893 3039 	ldrb.w	r3, [r3, #57]	; 0x39
+ 800d1ce:	f884 3436 	strb.w	r3, [r4, #1078]	; 0x436
+ 800d1d2:	2009      	movs	r0, #9
+ 800d1d4:	f894 340e 	ldrb.w	r3, [r4, #1038]	; 0x40e
+ 800d1d8:	f884 3439 	strb.w	r3, [r4, #1081]	; 0x439
+ 800d1dc:	f884 0435 	strb.w	r0, [r4, #1077]	; 0x435
+ 800d1e0:	f001 ff64 	bl	800f0ac <LoRaMacConfirmQueueSetStatusCmn>
+ 800d1e4:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 800d1e8:	f7ff bfba 	b.w	800d160 <StopRetransmission.isra.0>
+ 800d1ec:	bd10      	pop	{r4, pc}
+ 800d1ee:	bf00      	nop
+ 800d1f0:	20001fdc 	.word	0x20001fdc
+ 800d1f4:	20001868 	.word	0x20001868
+
+0800d1f8 <LoRaMacIsBusy>:
+ 800d1f8:	4b07      	ldr	r3, [pc, #28]	; (800d218 <LoRaMacIsBusy+0x20>)
+ 800d1fa:	f8d3 2340 	ldr.w	r2, [r3, #832]	; 0x340
+ 800d1fe:	2a01      	cmp	r2, #1
+ 800d200:	d006      	beq.n	800d210 <LoRaMacIsBusy+0x18>
+ 800d202:	b93a      	cbnz	r2, 800d214 <LoRaMacIsBusy+0x1c>
+ 800d204:	f893 0482 	ldrb.w	r0, [r3, #1154]	; 0x482
+ 800d208:	3801      	subs	r0, #1
+ 800d20a:	bf18      	it	ne
+ 800d20c:	2001      	movne	r0, #1
+ 800d20e:	4770      	bx	lr
+ 800d210:	2000      	movs	r0, #0
+ 800d212:	4770      	bx	lr
+ 800d214:	2001      	movs	r0, #1
+ 800d216:	4770      	bx	lr
+ 800d218:	20001fdc 	.word	0x20001fdc
+
+0800d21c <LoRaMacIsStopped>:
+ 800d21c:	4b03      	ldr	r3, [pc, #12]	; (800d22c <LoRaMacIsStopped+0x10>)
+ 800d21e:	f8d3 0340 	ldr.w	r0, [r3, #832]	; 0x340
+ 800d222:	1e43      	subs	r3, r0, #1
+ 800d224:	4258      	negs	r0, r3
+ 800d226:	4158      	adcs	r0, r3
+ 800d228:	4770      	bx	lr
+ 800d22a:	bf00      	nop
+ 800d22c:	20001fdc 	.word	0x20001fdc
+
+0800d230 <LoRaMacProcess>:
+ 800d230:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 800d234:	b0a5      	sub	sp, #148	; 0x94
+ 800d236:	f3ef 8110 	mrs	r1, PRIMASK
+ 800d23a:	b672      	cpsid	i
+ 800d23c:	4ac0      	ldr	r2, [pc, #768]	; (800d540 <LoRaMacProcess+0x310>)
+ 800d23e:	2000      	movs	r0, #0
+ 800d240:	6813      	ldr	r3, [r2, #0]
+ 800d242:	6010      	str	r0, [r2, #0]
+ 800d244:	f381 8810 	msr	PRIMASK, r1
+ 800d248:	4cbe      	ldr	r4, [pc, #760]	; (800d544 <LoRaMacProcess+0x314>)
+ 800d24a:	2b00      	cmp	r3, #0
+ 800d24c:	f000 80da 	beq.w	800d404 <LoRaMacProcess+0x1d4>
+ 800d250:	06d9      	lsls	r1, r3, #27
+ 800d252:	fa5f fb83 	uxtb.w	fp, r3
+ 800d256:	d56b      	bpl.n	800d330 <LoRaMacProcess+0x100>
+ 800d258:	4dbb      	ldr	r5, [pc, #748]	; (800d548 <LoRaMacProcess+0x318>)
+ 800d25a:	f895 3118 	ldrb.w	r3, [r5, #280]	; 0x118
+ 800d25e:	2b02      	cmp	r3, #2
+ 800d260:	d002      	beq.n	800d268 <LoRaMacProcess+0x38>
+ 800d262:	4bba      	ldr	r3, [pc, #744]	; (800d54c <LoRaMacProcess+0x31c>)
+ 800d264:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800d266:	4798      	blx	r3
+ 800d268:	f3ef 8810 	mrs	r8, PRIMASK
+ 800d26c:	b672      	cpsid	i
+ 800d26e:	4fb8      	ldr	r7, [pc, #736]	; (800d550 <LoRaMacProcess+0x320>)
+ 800d270:	f006 fe6c 	bl	8013f4c <UTIL_TIMER_GetCurrentTime>
+ 800d274:	683e      	ldr	r6, [r7, #0]
+ 800d276:	f8d4 13b0 	ldr.w	r1, [r4, #944]	; 0x3b0
+ 800d27a:	1a36      	subs	r6, r6, r0
+ 800d27c:	4431      	add	r1, r6
+ 800d27e:	48b5      	ldr	r0, [pc, #724]	; (800d554 <LoRaMacProcess+0x324>)
+ 800d280:	f006 ff30 	bl	80140e4 <UTIL_TIMER_SetPeriod>
+ 800d284:	48b3      	ldr	r0, [pc, #716]	; (800d554 <LoRaMacProcess+0x324>)
+ 800d286:	f006 fef3 	bl	8014070 <UTIL_TIMER_Start>
+ 800d28a:	f8d4 13b4 	ldr.w	r1, [r4, #948]	; 0x3b4
+ 800d28e:	48b2      	ldr	r0, [pc, #712]	; (800d558 <LoRaMacProcess+0x328>)
+ 800d290:	4431      	add	r1, r6
+ 800d292:	f006 ff27 	bl	80140e4 <UTIL_TIMER_SetPeriod>
+ 800d296:	48b0      	ldr	r0, [pc, #704]	; (800d558 <LoRaMacProcess+0x328>)
+ 800d298:	f006 feea 	bl	8014070 <UTIL_TIMER_Start>
+ 800d29c:	f388 8810 	msr	PRIMASK, r8
+ 800d2a0:	f895 3118 	ldrb.w	r3, [r5, #280]	; 0x118
+ 800d2a4:	2b02      	cmp	r3, #2
+ 800d2a6:	d002      	beq.n	800d2ae <LoRaMacProcess+0x7e>
+ 800d2a8:	f894 3410 	ldrb.w	r3, [r4, #1040]	; 0x410
+ 800d2ac:	b18b      	cbz	r3, 800d2d2 <LoRaMacProcess+0xa2>
+ 800d2ae:	2316      	movs	r3, #22
+ 800d2b0:	a90e      	add	r1, sp, #56	; 0x38
+ 800d2b2:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800d2b6:	f88d 3038 	strb.w	r3, [sp, #56]	; 0x38
+ 800d2ba:	f002 fbd9 	bl	800fa70 <RegionGetPhyParam>
+ 800d2be:	f8d4 13b4 	ldr.w	r1, [r4, #948]	; 0x3b4
+ 800d2c2:	900c      	str	r0, [sp, #48]	; 0x30
+ 800d2c4:	4401      	add	r1, r0
+ 800d2c6:	48a5      	ldr	r0, [pc, #660]	; (800d55c <LoRaMacProcess+0x32c>)
+ 800d2c8:	f006 ff0c 	bl	80140e4 <UTIL_TIMER_SetPeriod>
+ 800d2cc:	48a3      	ldr	r0, [pc, #652]	; (800d55c <LoRaMacProcess+0x32c>)
+ 800d2ce:	f006 fecf 	bl	8014070 <UTIL_TIMER_Start>
+ 800d2d2:	683b      	ldr	r3, [r7, #0]
+ 800d2d4:	f894 2411 	ldrb.w	r2, [r4, #1041]	; 0x411
+ 800d2d8:	62eb      	str	r3, [r5, #44]	; 0x2c
+ 800d2da:	af0a      	add	r7, sp, #40	; 0x28
+ 800d2dc:	4638      	mov	r0, r7
+ 800d2de:	f88d 2060 	strb.w	r2, [sp, #96]	; 0x60
+ 800d2e2:	9319      	str	r3, [sp, #100]	; 0x64
+ 800d2e4:	f006 fdac 	bl	8013e40 <SysTimeGetMcuTime>
+ 800d2e8:	f8d5 3124 	ldr.w	r3, [r5, #292]	; 0x124
+ 800d2ec:	9300      	str	r3, [sp, #0]
+ 800d2ee:	ae04      	add	r6, sp, #16
+ 800d2f0:	e897 0006 	ldmia.w	r7, {r1, r2}
+ 800d2f4:	f8d5 3120 	ldr.w	r3, [r5, #288]	; 0x120
+ 800d2f8:	4630      	mov	r0, r6
+ 800d2fa:	f006 fd38 	bl	8013d6e <SysTimeSub>
+ 800d2fe:	e896 0003 	ldmia.w	r6, {r0, r1}
+ 800d302:	ab1b      	add	r3, sp, #108	; 0x6c
+ 800d304:	e883 0003 	stmia.w	r3, {r0, r1}
+ 800d308:	f8d4 3414 	ldr.w	r3, [r4, #1044]	; 0x414
+ 800d30c:	931a      	str	r3, [sp, #104]	; 0x68
+ 800d30e:	f895 312c 	ldrb.w	r3, [r5, #300]	; 0x12c
+ 800d312:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800d316:	3b00      	subs	r3, #0
+ 800d318:	bf18      	it	ne
+ 800d31a:	2301      	movne	r3, #1
+ 800d31c:	a918      	add	r1, sp, #96	; 0x60
+ 800d31e:	f88d 3061 	strb.w	r3, [sp, #97]	; 0x61
+ 800d322:	f002 fbae 	bl	800fa82 <RegionSetBandTxDone>
+ 800d326:	f894 3410 	ldrb.w	r3, [r4, #1040]	; 0x410
+ 800d32a:	b90b      	cbnz	r3, 800d330 <LoRaMacProcess+0x100>
+ 800d32c:	f884 3435 	strb.w	r3, [r4, #1077]	; 0x435
+ 800d330:	f01b 0f08 	tst.w	fp, #8
+ 800d334:	d03a      	beq.n	800d3ac <LoRaMacProcess+0x17c>
+ 800d336:	4b8a      	ldr	r3, [pc, #552]	; (800d560 <LoRaMacProcess+0x330>)
+ 800d338:	4d83      	ldr	r5, [pc, #524]	; (800d548 <LoRaMacProcess+0x318>)
+ 800d33a:	685f      	ldr	r7, [r3, #4]
+ 800d33c:	891e      	ldrh	r6, [r3, #8]
+ 800d33e:	f9b3 800a 	ldrsh.w	r8, [r3, #10]
+ 800d342:	f993 900c 	ldrsb.w	r9, [r3, #12]
+ 800d346:	f8d5 20e4 	ldr.w	r2, [r5, #228]	; 0xe4
+ 800d34a:	9203      	str	r2, [sp, #12]
+ 800d34c:	2300      	movs	r3, #0
+ 800d34e:	9307      	str	r3, [sp, #28]
+ 800d350:	f884 3438 	strb.w	r3, [r4, #1080]	; 0x438
+ 800d354:	f8a4 341a 	strh.w	r3, [r4, #1050]	; 0x41a
+ 800d358:	f884 341d 	strb.w	r3, [r4, #1053]	; 0x41d
+ 800d35c:	f8c4 3420 	str.w	r3, [r4, #1056]	; 0x420
+ 800d360:	f8a4 3424 	strh.w	r3, [r4, #1060]	; 0x424
+ 800d364:	f884 3426 	strb.w	r3, [r4, #1062]	; 0x426
+ 800d368:	f8c4 3428 	str.w	r3, [r4, #1064]	; 0x428
+ 800d36c:	f884 3418 	strb.w	r3, [r4, #1048]	; 0x418
+ 800d370:	f8c4 342c 	str.w	r3, [r4, #1068]	; 0x42c
+ 800d374:	f884 3430 	strb.w	r3, [r4, #1072]	; 0x430
+ 800d378:	4b74      	ldr	r3, [pc, #464]	; (800d54c <LoRaMacProcess+0x31c>)
+ 800d37a:	f894 2480 	ldrb.w	r2, [r4, #1152]	; 0x480
+ 800d37e:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800d380:	f884 247f 	strb.w	r2, [r4, #1151]	; 0x47f
+ 800d384:	f8a4 847c 	strh.w	r8, [r4, #1148]	; 0x47c
+ 800d388:	f884 947e 	strb.w	r9, [r4, #1150]	; 0x47e
+ 800d38c:	4798      	blx	r3
+ 800d38e:	4872      	ldr	r0, [pc, #456]	; (800d558 <LoRaMacProcess+0x328>)
+ 800d390:	f006 fe20 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 800d394:	4631      	mov	r1, r6
+ 800d396:	4638      	mov	r0, r7
+ 800d398:	f001 fcdf 	bl	800ed5a <LoRaMacClassBRxBeacon>
+ 800d39c:	4682      	mov	sl, r0
+ 800d39e:	2800      	cmp	r0, #0
+ 800d3a0:	f000 80e6 	beq.w	800d570 <LoRaMacProcess+0x340>
+ 800d3a4:	f8a4 8472 	strh.w	r8, [r4, #1138]	; 0x472
+ 800d3a8:	f884 9474 	strb.w	r9, [r4, #1140]	; 0x474
+ 800d3ac:	f01b 0f04 	tst.w	fp, #4
+ 800d3b0:	d01a      	beq.n	800d3e8 <LoRaMacProcess+0x1b8>
+ 800d3b2:	4b65      	ldr	r3, [pc, #404]	; (800d548 <LoRaMacProcess+0x318>)
+ 800d3b4:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 800d3b8:	2b02      	cmp	r3, #2
+ 800d3ba:	d002      	beq.n	800d3c2 <LoRaMacProcess+0x192>
+ 800d3bc:	4b63      	ldr	r3, [pc, #396]	; (800d54c <LoRaMacProcess+0x31c>)
+ 800d3be:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800d3c0:	4798      	blx	r3
+ 800d3c2:	2002      	movs	r0, #2
+ 800d3c4:	f7fe ff2c 	bl	800c220 <UpdateRxSlotIdleState>
+ 800d3c8:	f884 0435 	strb.w	r0, [r4, #1077]	; 0x435
+ 800d3cc:	f001 fe6e 	bl	800f0ac <LoRaMacConfirmQueueSetStatusCmn>
+ 800d3d0:	f894 3410 	ldrb.w	r3, [r4, #1040]	; 0x410
+ 800d3d4:	b113      	cbz	r3, 800d3dc <LoRaMacProcess+0x1ac>
+ 800d3d6:	2301      	movs	r3, #1
+ 800d3d8:	f884 340f 	strb.w	r3, [r4, #1039]	; 0x40f
+ 800d3dc:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800d3e0:	f043 0310 	orr.w	r3, r3, #16
+ 800d3e4:	f884 3481 	strb.w	r3, [r4, #1153]	; 0x481
+ 800d3e8:	f01b 0f02 	tst.w	fp, #2
+ 800d3ec:	d003      	beq.n	800d3f6 <LoRaMacProcess+0x1c6>
+ 800d3ee:	2106      	movs	r1, #6
+ 800d3f0:	2005      	movs	r0, #5
+ 800d3f2:	f7fe ff8b 	bl	800c30c <HandleRadioRxErrorTimeout>
+ 800d3f6:	f01b 0f01 	tst.w	fp, #1
+ 800d3fa:	d003      	beq.n	800d404 <LoRaMacProcess+0x1d4>
+ 800d3fc:	2104      	movs	r1, #4
+ 800d3fe:	2003      	movs	r0, #3
+ 800d400:	f7fe ff84 	bl	800c30c <HandleRadioRxErrorTimeout>
+ 800d404:	f001 fcc6 	bl	800ed94 <LoRaMacClassBProcess>
+ 800d408:	f894 2481 	ldrb.w	r2, [r4, #1153]	; 0x481
+ 800d40c:	06d0      	lsls	r0, r2, #27
+ 800d40e:	d55f      	bpl.n	800d4d0 <LoRaMacProcess+0x2a0>
+ 800d410:	2300      	movs	r3, #0
+ 800d412:	f884 3482 	strb.w	r3, [r4, #1154]	; 0x482
+ 800d416:	f8d4 3340 	ldr.w	r3, [r4, #832]	; 0x340
+ 800d41a:	0619      	lsls	r1, r3, #24
+ 800d41c:	bf44      	itt	mi
+ 800d41e:	f023 0382 	bicmi.w	r3, r3, #130	; 0x82
+ 800d422:	f8c4 3340 	strmi.w	r3, [r4, #832]	; 0x340
+ 800d426:	f012 0f05 	tst.w	r2, #5
+ 800d42a:	f000 82c5 	beq.w	800d9b8 <LoRaMacProcess+0x788>
+ 800d42e:	200c      	movs	r0, #12
+ 800d430:	f001 fe56 	bl	800f0e0 <LoRaMacConfirmQueueIsCmdActive>
+ 800d434:	2800      	cmp	r0, #0
+ 800d436:	f000 82bf 	beq.w	800d9b8 <LoRaMacProcess+0x788>
+ 800d43a:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800d43e:	07df      	lsls	r7, r3, #31
+ 800d440:	f100 82ba 	bmi.w	800d9b8 <LoRaMacProcess+0x788>
+ 800d444:	075e      	lsls	r6, r3, #29
+ 800d446:	f140 82cb 	bpl.w	800d9e0 <LoRaMacProcess+0x7b0>
+ 800d44a:	f8d4 3340 	ldr.w	r3, [r4, #832]	; 0x340
+ 800d44e:	f023 0302 	bic.w	r3, r3, #2
+ 800d452:	f8c4 3340 	str.w	r3, [r4, #832]	; 0x340
+ 800d456:	f8d4 2340 	ldr.w	r2, [r4, #832]	; 0x340
+ 800d45a:	bb82      	cbnz	r2, 800d4be <LoRaMacProcess+0x28e>
+ 800d45c:	f894 5481 	ldrb.w	r5, [r4, #1153]	; 0x481
+ 800d460:	f015 0101 	ands.w	r1, r5, #1
+ 800d464:	bf1e      	ittt	ne
+ 800d466:	462b      	movne	r3, r5
+ 800d468:	f362 0300 	bfine	r3, r2, #0, #1
+ 800d46c:	f884 3481 	strbne.w	r3, [r4, #1153]	; 0x481
+ 800d470:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800d474:	075e      	lsls	r6, r3, #29
+ 800d476:	bf44      	itt	mi
+ 800d478:	f36f 0382 	bfcmi	r3, #2, #1
+ 800d47c:	f884 3481 	strbmi.w	r3, [r4, #1153]	; 0x481
+ 800d480:	2301      	movs	r3, #1
+ 800d482:	f884 3482 	strb.w	r3, [r4, #1154]	; 0x482
+ 800d486:	b121      	cbz	r1, 800d492 <LoRaMacProcess+0x262>
+ 800d488:	f8d4 3344 	ldr.w	r3, [r4, #836]	; 0x344
+ 800d48c:	4835      	ldr	r0, [pc, #212]	; (800d564 <LoRaMacProcess+0x334>)
+ 800d48e:	681b      	ldr	r3, [r3, #0]
+ 800d490:	4798      	blx	r3
+ 800d492:	076d      	lsls	r5, r5, #29
+ 800d494:	d50b      	bpl.n	800d4ae <LoRaMacProcess+0x27e>
+ 800d496:	4834      	ldr	r0, [pc, #208]	; (800d568 <LoRaMacProcess+0x338>)
+ 800d498:	f001 fe2e 	bl	800f0f8 <LoRaMacConfirmQueueHandleCb>
+ 800d49c:	f001 fe5c 	bl	800f158 <LoRaMacConfirmQueueGetCnt>
+ 800d4a0:	b128      	cbz	r0, 800d4ae <LoRaMacProcess+0x27e>
+ 800d4a2:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800d4a6:	f043 0304 	orr.w	r3, r3, #4
+ 800d4aa:	f884 3481 	strb.w	r3, [r4, #1153]	; 0x481
+ 800d4ae:	f001 fc60 	bl	800ed72 <LoRaMacClassBResumeBeaconing>
+ 800d4b2:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800d4b6:	f36f 1304 	bfc	r3, #4, #1
+ 800d4ba:	f884 3481 	strb.w	r3, [r4, #1153]	; 0x481
+ 800d4be:	2301      	movs	r3, #1
+ 800d4c0:	f884 3482 	strb.w	r3, [r4, #1154]	; 0x482
+ 800d4c4:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800d4c8:	f043 0320 	orr.w	r3, r3, #32
+ 800d4cc:	f884 3481 	strb.w	r3, [r4, #1153]	; 0x481
+ 800d4d0:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800d4d4:	0718      	lsls	r0, r3, #28
+ 800d4d6:	d50a      	bpl.n	800d4ee <LoRaMacProcess+0x2be>
+ 800d4d8:	f36f 03c3 	bfc	r3, #3, #1
+ 800d4dc:	4923      	ldr	r1, [pc, #140]	; (800d56c <LoRaMacProcess+0x33c>)
+ 800d4de:	f884 3481 	strb.w	r3, [r4, #1153]	; 0x481
+ 800d4e2:	f8d4 3344 	ldr.w	r3, [r4, #836]	; 0x344
+ 800d4e6:	f1a1 0020 	sub.w	r0, r1, #32
+ 800d4ea:	68db      	ldr	r3, [r3, #12]
+ 800d4ec:	4798      	blx	r3
+ 800d4ee:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800d4f2:	0799      	lsls	r1, r3, #30
+ 800d4f4:	d50a      	bpl.n	800d50c <LoRaMacProcess+0x2dc>
+ 800d4f6:	f36f 0341 	bfc	r3, #1, #1
+ 800d4fa:	491c      	ldr	r1, [pc, #112]	; (800d56c <LoRaMacProcess+0x33c>)
+ 800d4fc:	f884 3481 	strb.w	r3, [r4, #1153]	; 0x481
+ 800d500:	f8d4 3344 	ldr.w	r3, [r4, #836]	; 0x344
+ 800d504:	f1a1 0064 	sub.w	r0, r1, #100	; 0x64
+ 800d508:	685b      	ldr	r3, [r3, #4]
+ 800d50a:	4798      	blx	r3
+ 800d50c:	f894 3480 	ldrb.w	r3, [r4, #1152]	; 0x480
+ 800d510:	2b02      	cmp	r3, #2
+ 800d512:	d101      	bne.n	800d518 <LoRaMacProcess+0x2e8>
+ 800d514:	f7ff f946 	bl	800c7a4 <OpenContinuousRxCWindow>
+ 800d518:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800d51c:	069a      	lsls	r2, r3, #26
+ 800d51e:	f140 82ec 	bpl.w	800dafa <LoRaMacProcess+0x8ca>
+ 800d522:	f36f 1345 	bfc	r3, #5, #1
+ 800d526:	f884 3481 	strb.w	r3, [r4, #1153]	; 0x481
+ 800d52a:	f8d4 3340 	ldr.w	r3, [r4, #832]	; 0x340
+ 800d52e:	2b00      	cmp	r3, #0
+ 800d530:	f040 82e3 	bne.w	800dafa <LoRaMacProcess+0x8ca>
+ 800d534:	b025      	add	sp, #148	; 0x94
+ 800d536:	e8bd 4ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 800d53a:	f7ff bad3 	b.w	800cae4 <LoRaMacHandleNvm.part.0.constprop.0>
+ 800d53e:	bf00      	nop
+ 800d540:	20001fd8 	.word	0x20001fd8
+ 800d544:	20001fdc 	.word	0x20001fdc
+ 800d548:	20001868 	.word	0x20001868
+ 800d54c:	080159b0 	.word	0x080159b0
+ 800d550:	200024f4 	.word	0x200024f4
+ 800d554:	2000235c 	.word	0x2000235c
+ 800d558:	20002374 	.word	0x20002374
+ 800d55c:	200023d0 	.word	0x200023d0
+ 800d560:	200024e4 	.word	0x200024e4
+ 800d564:	20002410 	.word	0x20002410
+ 800d568:	20002424 	.word	0x20002424
+ 800d56c:	20002458 	.word	0x20002458
+ 800d570:	f895 3118 	ldrb.w	r3, [r5, #280]	; 0x118
+ 800d574:	2b01      	cmp	r3, #1
+ 800d576:	d10c      	bne.n	800d592 <LoRaMacProcess+0x362>
+ 800d578:	f001 fbf3 	bl	800ed62 <LoRaMacClassBIsPingExpected>
+ 800d57c:	4680      	mov	r8, r0
+ 800d57e:	b168      	cbz	r0, 800d59c <LoRaMacProcess+0x36c>
+ 800d580:	4650      	mov	r0, sl
+ 800d582:	f001 fbe3 	bl	800ed4c <LoRaMacClassBSetPingSlotState>
+ 800d586:	4650      	mov	r0, sl
+ 800d588:	f001 fbe5 	bl	800ed56 <LoRaMacClassBPingSlotTimerEvent>
+ 800d58c:	2304      	movs	r3, #4
+ 800d58e:	f884 347f 	strb.w	r3, [r4, #1151]	; 0x47f
+ 800d592:	b97e      	cbnz	r6, 800d5b4 <LoRaMacProcess+0x384>
+ 800d594:	2301      	movs	r3, #1
+ 800d596:	f884 3419 	strb.w	r3, [r4, #1049]	; 0x419
+ 800d59a:	e14a      	b.n	800d832 <LoRaMacProcess+0x602>
+ 800d59c:	f001 fbe3 	bl	800ed66 <LoRaMacClassBIsMulticastExpected>
+ 800d5a0:	2800      	cmp	r0, #0
+ 800d5a2:	d0f6      	beq.n	800d592 <LoRaMacProcess+0x362>
+ 800d5a4:	4640      	mov	r0, r8
+ 800d5a6:	f001 fbd2 	bl	800ed4e <LoRaMacClassBSetMulticastSlotState>
+ 800d5aa:	4640      	mov	r0, r8
+ 800d5ac:	f001 fbd4 	bl	800ed58 <LoRaMacClassBMulticastSlotTimerEvent>
+ 800d5b0:	2305      	movs	r3, #5
+ 800d5b2:	e7ec      	b.n	800d58e <LoRaMacProcess+0x35e>
+ 800d5b4:	783b      	ldrb	r3, [r7, #0]
+ 800d5b6:	9302      	str	r3, [sp, #8]
+ 800d5b8:	095b      	lsrs	r3, r3, #5
+ 800d5ba:	3b01      	subs	r3, #1
+ 800d5bc:	2b06      	cmp	r3, #6
+ 800d5be:	f200 81ed 	bhi.w	800d99c <LoRaMacProcess+0x76c>
+ 800d5c2:	e8df f013 	tbh	[pc, r3, lsl #1]
+ 800d5c6:	0007      	.short	0x0007
+ 800d5c8:	009201eb 	.word	0x009201eb
+ 800d5cc:	008f01eb 	.word	0x008f01eb
+ 800d5d0:	01db01eb 	.word	0x01db01eb
+ 800d5d4:	2e10      	cmp	r6, #16
+ 800d5d6:	d9dd      	bls.n	800d594 <LoRaMacProcess+0x364>
+ 800d5d8:	f895 312c 	ldrb.w	r3, [r5, #300]	; 0x12c
+ 800d5dc:	970e      	str	r7, [sp, #56]	; 0x38
+ 800d5de:	b2f6      	uxtb	r6, r6
+ 800d5e0:	f88d 603c 	strb.w	r6, [sp, #60]	; 0x3c
+ 800d5e4:	2b00      	cmp	r3, #0
+ 800d5e6:	d1d5      	bne.n	800d594 <LoRaMacProcess+0x364>
+ 800d5e8:	a818      	add	r0, sp, #96	; 0x60
+ 800d5ea:	f004 f8f9 	bl	80117e0 <SecureElementGetJoinEui>
+ 800d5ee:	aa0e      	add	r2, sp, #56	; 0x38
+ 800d5f0:	a918      	add	r1, sp, #96	; 0x60
+ 800d5f2:	20ff      	movs	r0, #255	; 0xff
+ 800d5f4:	f002 f84c 	bl	800f690 <LoRaMacCryptoHandleJoinAccept>
+ 800d5f8:	f89d 3048 	ldrb.w	r3, [sp, #72]	; 0x48
+ 800d5fc:	f3c3 0303 	ubfx	r3, r3, #0, #4
+ 800d600:	4607      	mov	r7, r0
+ 800d602:	f88d 3020 	strb.w	r3, [sp, #32]
+ 800d606:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800d60a:	f895 307d 	ldrb.w	r3, [r5, #125]	; 0x7d
+ 800d60e:	f88d 3021 	strb.w	r3, [sp, #33]	; 0x21
+ 800d612:	2207      	movs	r2, #7
+ 800d614:	a908      	add	r1, sp, #32
+ 800d616:	f002 fa3e 	bl	800fa96 <RegionVerify>
+ 800d61a:	2f00      	cmp	r7, #0
+ 800d61c:	d15a      	bne.n	800d6d4 <LoRaMacProcess+0x4a4>
+ 800d61e:	2800      	cmp	r0, #0
+ 800d620:	d058      	beq.n	800d6d4 <LoRaMacProcess+0x4a4>
+ 800d622:	f89d 3043 	ldrb.w	r3, [sp, #67]	; 0x43
+ 800d626:	f89d 2042 	ldrb.w	r2, [sp, #66]	; 0x42
+ 800d62a:	9911      	ldr	r1, [sp, #68]	; 0x44
+ 800d62c:	f8c5 10e4 	str.w	r1, [r5, #228]	; 0xe4
+ 800d630:	041b      	lsls	r3, r3, #16
+ 800d632:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
+ 800d636:	f89d 2041 	ldrb.w	r2, [sp, #65]	; 0x41
+ 800d63a:	2002      	movs	r0, #2
+ 800d63c:	4313      	orrs	r3, r2
+ 800d63e:	f8c5 30e0 	str.w	r3, [r5, #224]	; 0xe0
+ 800d642:	f004 f8db 	bl	80117fc <SecureElementSetDevAddr>
+ 800d646:	f89d 3048 	ldrb.w	r3, [sp, #72]	; 0x48
+ 800d64a:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800d64e:	f885 712a 	strb.w	r7, [r5, #298]	; 0x12a
+ 800d652:	f3c3 1202 	ubfx	r2, r3, #4, #3
+ 800d656:	f3c3 0303 	ubfx	r3, r3, #0, #4
+ 800d65a:	f885 3070 	strb.w	r3, [r5, #112]	; 0x70
+ 800d65e:	f885 3078 	strb.w	r3, [r5, #120]	; 0x78
+ 800d662:	f89d 3049 	ldrb.w	r3, [sp, #73]	; 0x49
+ 800d666:	f885 2069 	strb.w	r2, [r5, #105]	; 0x69
+ 800d66a:	2b01      	cmp	r3, #1
+ 800d66c:	bf38      	it	cc
+ 800d66e:	2301      	movcc	r3, #1
+ 800d670:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
+ 800d674:	4353      	muls	r3, r2
+ 800d676:	65ab      	str	r3, [r5, #88]	; 0x58
+ 800d678:	4413      	add	r3, r2
+ 800d67a:	65eb      	str	r3, [r5, #92]	; 0x5c
+ 800d67c:	f04f 0801 	mov.w	r8, #1
+ 800d680:	f10d 034a 	add.w	r3, sp, #74	; 0x4a
+ 800d684:	3e11      	subs	r6, #17
+ 800d686:	a90c      	add	r1, sp, #48	; 0x30
+ 800d688:	930c      	str	r3, [sp, #48]	; 0x30
+ 800d68a:	f885 8068 	strb.w	r8, [r5, #104]	; 0x68
+ 800d68e:	f88d 6034 	strb.w	r6, [sp, #52]	; 0x34
+ 800d692:	f002 fa08 	bl	800faa6 <RegionApplyCFList>
+ 800d696:	2302      	movs	r3, #2
+ 800d698:	4640      	mov	r0, r8
+ 800d69a:	f885 312c 	strb.w	r3, [r5, #300]	; 0x12c
+ 800d69e:	f001 fd1f 	bl	800f0e0 <LoRaMacConfirmQueueIsCmdActive>
+ 800d6a2:	b118      	cbz	r0, 800d6ac <LoRaMacProcess+0x47c>
+ 800d6a4:	4641      	mov	r1, r8
+ 800d6a6:	4638      	mov	r0, r7
+ 800d6a8:	f001 fcde 	bl	800f068 <LoRaMacConfirmQueueSetStatus>
+ 800d6ac:	f894 3410 	ldrb.w	r3, [r4, #1040]	; 0x410
+ 800d6b0:	2b00      	cmp	r3, #0
+ 800d6b2:	f000 8179 	beq.w	800d9a8 <LoRaMacProcess+0x778>
+ 800d6b6:	f894 3438 	ldrb.w	r3, [r4, #1080]	; 0x438
+ 800d6ba:	b113      	cbz	r3, 800d6c2 <LoRaMacProcess+0x492>
+ 800d6bc:	2000      	movs	r0, #0
+ 800d6be:	f7fe fde9 	bl	800c294 <OnAckTimeoutTimerEvent>
+ 800d6c2:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800d6c6:	f043 0310 	orr.w	r3, r3, #16
+ 800d6ca:	f884 3481 	strb.w	r3, [r4, #1153]	; 0x481
+ 800d6ce:	f7fe fda7 	bl	800c220 <UpdateRxSlotIdleState>
+ 800d6d2:	e66b      	b.n	800d3ac <LoRaMacProcess+0x17c>
+ 800d6d4:	2001      	movs	r0, #1
+ 800d6d6:	f001 fd03 	bl	800f0e0 <LoRaMacConfirmQueueIsCmdActive>
+ 800d6da:	2800      	cmp	r0, #0
+ 800d6dc:	d0e6      	beq.n	800d6ac <LoRaMacProcess+0x47c>
+ 800d6de:	2101      	movs	r1, #1
+ 800d6e0:	2007      	movs	r0, #7
+ 800d6e2:	e7e1      	b.n	800d6a8 <LoRaMacProcess+0x478>
+ 800d6e4:	2301      	movs	r3, #1
+ 800d6e6:	f884 3418 	strb.w	r3, [r4, #1048]	; 0x418
+ 800d6ea:	f895 307d 	ldrb.w	r3, [r5, #125]	; 0x7d
+ 800d6ee:	f88d 3022 	strb.w	r3, [sp, #34]	; 0x22
+ 800d6f2:	f894 341c 	ldrb.w	r3, [r4, #1052]	; 0x41c
+ 800d6f6:	f88d 3021 	strb.w	r3, [sp, #33]	; 0x21
+ 800d6fa:	f895 308c 	ldrb.w	r3, [r5, #140]	; 0x8c
+ 800d6fe:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800d702:	330d      	adds	r3, #13
+ 800d704:	a908      	add	r1, sp, #32
+ 800d706:	f88d 3020 	strb.w	r3, [sp, #32]
+ 800d70a:	f002 f9b1 	bl	800fa70 <RegionGetPhyParam>
+ 800d70e:	f1a6 030d 	sub.w	r3, r6, #13
+ 800d712:	b21b      	sxth	r3, r3
+ 800d714:	9006      	str	r0, [sp, #24]
+ 800d716:	ea23 73e3 	bic.w	r3, r3, r3, asr #31
+ 800d71a:	b200      	sxth	r0, r0
+ 800d71c:	4283      	cmp	r3, r0
+ 800d71e:	f73f af39 	bgt.w	800d594 <LoRaMacProcess+0x364>
+ 800d722:	2e0b      	cmp	r6, #11
+ 800d724:	f67f af36 	bls.w	800d594 <LoRaMacProcess+0x364>
+ 800d728:	4ba2      	ldr	r3, [pc, #648]	; (800d9b4 <LoRaMacProcess+0x784>)
+ 800d72a:	9321      	str	r3, [sp, #132]	; 0x84
+ 800d72c:	a818      	add	r0, sp, #96	; 0x60
+ 800d72e:	23ff      	movs	r3, #255	; 0xff
+ 800d730:	9718      	str	r7, [sp, #96]	; 0x60
+ 800d732:	f88d 6064 	strb.w	r6, [sp, #100]	; 0x64
+ 800d736:	f88d 3088 	strb.w	r3, [sp, #136]	; 0x88
+ 800d73a:	f002 f875 	bl	800f828 <LoRaMacParserData>
+ 800d73e:	4680      	mov	r8, r0
+ 800d740:	2800      	cmp	r0, #0
+ 800d742:	f47f af27 	bne.w	800d594 <LoRaMacProcess+0x364>
+ 800d746:	f89d 306c 	ldrb.w	r3, [sp, #108]	; 0x6c
+ 800d74a:	991a      	ldr	r1, [sp, #104]	; 0x68
+ 800d74c:	f8c4 142c 	str.w	r1, [r4, #1068]	; 0x42c
+ 800d750:	f013 020f 	ands.w	r2, r3, #15
+ 800d754:	d003      	beq.n	800d75e <LoRaMacProcess+0x52e>
+ 800d756:	f89d 0080 	ldrb.w	r0, [sp, #128]	; 0x80
+ 800d75a:	2800      	cmp	r0, #0
+ 800d75c:	d16c      	bne.n	800d838 <LoRaMacProcess+0x608>
+ 800d75e:	f89d 0088 	ldrb.w	r0, [sp, #136]	; 0x88
+ 800d762:	2800      	cmp	r0, #0
+ 800d764:	d06a      	beq.n	800d83c <LoRaMacProcess+0x60c>
+ 800d766:	2a00      	cmp	r2, #0
+ 800d768:	f47f af14 	bne.w	800d594 <LoRaMacProcess+0x364>
+ 800d76c:	f89d 2080 	ldrb.w	r2, [sp, #128]	; 0x80
+ 800d770:	2a00      	cmp	r2, #0
+ 800d772:	bf0c      	ite	eq
+ 800d774:	2702      	moveq	r7, #2
+ 800d776:	2703      	movne	r7, #3
+ 800d778:	2200      	movs	r2, #0
+ 800d77a:	9207      	str	r2, [sp, #28]
+ 800d77c:	f8d5 20ec 	ldr.w	r2, [r5, #236]	; 0xec
+ 800d780:	4291      	cmp	r1, r2
+ 800d782:	d15d      	bne.n	800d840 <LoRaMacProcess+0x610>
+ 800d784:	f895 10e9 	ldrb.w	r1, [r5, #233]	; 0xe9
+ 800d788:	2900      	cmp	r1, #0
+ 800d78a:	d059      	beq.n	800d840 <LoRaMacProcess+0x610>
+ 800d78c:	f8d5 110c 	ldr.w	r1, [r5, #268]	; 0x10c
+ 800d790:	f895 a0ea 	ldrb.w	sl, [r5, #234]	; 0xea
+ 800d794:	6809      	ldr	r1, [r1, #0]
+ 800d796:	9107      	str	r1, [sp, #28]
+ 800d798:	f895 1118 	ldrb.w	r1, [r5, #280]	; 0x118
+ 800d79c:	2902      	cmp	r1, #2
+ 800d79e:	d102      	bne.n	800d7a6 <LoRaMacProcess+0x576>
+ 800d7a0:	2103      	movs	r1, #3
+ 800d7a2:	f884 147f 	strb.w	r1, [r4, #1151]	; 0x47f
+ 800d7a6:	2f03      	cmp	r7, #3
+ 800d7a8:	f47f aef4 	bne.w	800d594 <LoRaMacProcess+0x364>
+ 800d7ac:	f013 0f60 	tst.w	r3, #96	; 0x60
+ 800d7b0:	f47f aef0 	bne.w	800d594 <LoRaMacProcess+0x364>
+ 800d7b4:	9203      	str	r2, [sp, #12]
+ 800d7b6:	f04f 0801 	mov.w	r8, #1
+ 800d7ba:	2315      	movs	r3, #21
+ 800d7bc:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800d7c0:	f88d 3020 	strb.w	r3, [sp, #32]
+ 800d7c4:	a908      	add	r1, sp, #32
+ 800d7c6:	f002 f953 	bl	800fa70 <RegionGetPhyParam>
+ 800d7ca:	f895 312a 	ldrb.w	r3, [r5, #298]	; 0x12a
+ 800d7ce:	9006      	str	r0, [sp, #24]
+ 800d7d0:	f1ba 0f00 	cmp.w	sl, #0
+ 800d7d4:	d037      	beq.n	800d846 <LoRaMacProcess+0x616>
+ 800d7d6:	f1ba 0f01 	cmp.w	sl, #1
+ 800d7da:	d13e      	bne.n	800d85a <LoRaMacProcess+0x62a>
+ 800d7dc:	2b01      	cmp	r3, #1
+ 800d7de:	d134      	bne.n	800d84a <LoRaMacProcess+0x61a>
+ 800d7e0:	f06f 0609 	mvn.w	r6, #9
+ 800d7e4:	413e      	asrs	r6, r7
+ 800d7e6:	f006 0601 	and.w	r6, r6, #1
+ 800d7ea:	f1c6 0602 	rsb	r6, r6, #2
+ 800d7ee:	b2f6      	uxtb	r6, r6
+ 800d7f0:	b281      	uxth	r1, r0
+ 800d7f2:	f8bd 206e 	ldrh.w	r2, [sp, #110]	; 0x6e
+ 800d7f6:	ab07      	add	r3, sp, #28
+ 800d7f8:	4630      	mov	r0, r6
+ 800d7fa:	f001 fdcf 	bl	800f39c <LoRaMacCryptoGetFCntDown>
+ 800d7fe:	b370      	cbz	r0, 800d85e <LoRaMacProcess+0x62e>
+ 800d800:	2807      	cmp	r0, #7
+ 800d802:	d124      	bne.n	800d84e <LoRaMacProcess+0x61e>
+ 800d804:	2308      	movs	r3, #8
+ 800d806:	f884 3419 	strb.w	r3, [r4, #1049]	; 0x419
+ 800d80a:	f895 312a 	ldrb.w	r3, [r5, #298]	; 0x12a
+ 800d80e:	b95b      	cbnz	r3, 800d828 <LoRaMacProcess+0x5f8>
+ 800d810:	9b02      	ldr	r3, [sp, #8]
+ 800d812:	f003 03e0 	and.w	r3, r3, #224	; 0xe0
+ 800d816:	2ba0      	cmp	r3, #160	; 0xa0
+ 800d818:	d106      	bne.n	800d828 <LoRaMacProcess+0x5f8>
+ 800d81a:	6b6a      	ldr	r2, [r5, #52]	; 0x34
+ 800d81c:	9b23      	ldr	r3, [sp, #140]	; 0x8c
+ 800d81e:	429a      	cmp	r2, r3
+ 800d820:	d102      	bne.n	800d828 <LoRaMacProcess+0x5f8>
+ 800d822:	2301      	movs	r3, #1
+ 800d824:	f885 303a 	strb.w	r3, [r5, #58]	; 0x3a
+ 800d828:	9b07      	ldr	r3, [sp, #28]
+ 800d82a:	f8c4 3428 	str.w	r3, [r4, #1064]	; 0x428
+ 800d82e:	f8c4 3460 	str.w	r3, [r4, #1120]	; 0x460
+ 800d832:	f7fe fd4f 	bl	800c2d4 <PrepareRxDoneAbort>
+ 800d836:	e5b9      	b.n	800d3ac <LoRaMacProcess+0x17c>
+ 800d838:	4647      	mov	r7, r8
+ 800d83a:	e79d      	b.n	800d778 <LoRaMacProcess+0x548>
+ 800d83c:	2701      	movs	r7, #1
+ 800d83e:	e79b      	b.n	800d778 <LoRaMacProcess+0x548>
+ 800d840:	f04f 0a01 	mov.w	sl, #1
+ 800d844:	e7b9      	b.n	800d7ba <LoRaMacProcess+0x58a>
+ 800d846:	2604      	movs	r6, #4
+ 800d848:	e7d2      	b.n	800d7f0 <LoRaMacProcess+0x5c0>
+ 800d84a:	2603      	movs	r6, #3
+ 800d84c:	e7d0      	b.n	800d7f0 <LoRaMacProcess+0x5c0>
+ 800d84e:	2808      	cmp	r0, #8
+ 800d850:	d103      	bne.n	800d85a <LoRaMacProcess+0x62a>
+ 800d852:	230a      	movs	r3, #10
+ 800d854:	f884 3419 	strb.w	r3, [r4, #1049]	; 0x419
+ 800d858:	e7e6      	b.n	800d828 <LoRaMacProcess+0x5f8>
+ 800d85a:	2301      	movs	r3, #1
+ 800d85c:	e7fa      	b.n	800d854 <LoRaMacProcess+0x624>
+ 800d85e:	ab18      	add	r3, sp, #96	; 0x60
+ 800d860:	9300      	str	r3, [sp, #0]
+ 800d862:	9903      	ldr	r1, [sp, #12]
+ 800d864:	9b07      	ldr	r3, [sp, #28]
+ 800d866:	4632      	mov	r2, r6
+ 800d868:	4650      	mov	r0, sl
+ 800d86a:	f001 fe63 	bl	800f534 <LoRaMacCryptoUnsecureMessage>
+ 800d86e:	b120      	cbz	r0, 800d87a <LoRaMacProcess+0x64a>
+ 800d870:	2802      	cmp	r0, #2
+ 800d872:	bf0c      	ite	eq
+ 800d874:	230b      	moveq	r3, #11
+ 800d876:	230c      	movne	r3, #12
+ 800d878:	e68d      	b.n	800d596 <LoRaMacProcess+0x366>
+ 800d87a:	9b07      	ldr	r3, [sp, #28]
+ 800d87c:	f8c4 3428 	str.w	r3, [r4, #1064]	; 0x428
+ 800d880:	f8c4 3460 	str.w	r3, [r4, #1120]	; 0x460
+ 800d884:	f89d 306c 	ldrb.w	r3, [sp, #108]	; 0x6c
+ 800d888:	f884 0419 	strb.w	r0, [r4, #1049]	; 0x419
+ 800d88c:	f3c3 1340 	ubfx	r3, r3, #5, #1
+ 800d890:	f884 3426 	strb.w	r3, [r4, #1062]	; 0x426
+ 800d894:	f884 3438 	strb.w	r3, [r4, #1080]	; 0x438
+ 800d898:	f894 347f 	ldrb.w	r3, [r4, #1151]	; 0x47f
+ 800d89c:	f884 841a 	strb.w	r8, [r4, #1050]	; 0x41a
+ 800d8a0:	2b01      	cmp	r3, #1
+ 800d8a2:	bf98      	it	ls
+ 800d8a4:	62a8      	strls	r0, [r5, #40]	; 0x28
+ 800d8a6:	f1b8 0f01 	cmp.w	r8, #1
+ 800d8aa:	f8c4 0420 	str.w	r0, [r4, #1056]	; 0x420
+ 800d8ae:	f884 0424 	strb.w	r0, [r4, #1060]	; 0x424
+ 800d8b2:	f884 0435 	strb.w	r0, [r4, #1077]	; 0x435
+ 800d8b6:	d133      	bne.n	800d920 <LoRaMacProcess+0x6f0>
+ 800d8b8:	2202      	movs	r2, #2
+ 800d8ba:	f884 2418 	strb.w	r2, [r4, #1048]	; 0x418
+ 800d8be:	f895 203a 	ldrb.w	r2, [r5, #58]	; 0x3a
+ 800d8c2:	2a00      	cmp	r2, #0
+ 800d8c4:	d13b      	bne.n	800d93e <LoRaMacProcess+0x70e>
+ 800d8c6:	f89d 206c 	ldrb.w	r2, [sp, #108]	; 0x6c
+ 800d8ca:	06d2      	lsls	r2, r2, #27
+ 800d8cc:	d437      	bmi.n	800d93e <LoRaMacProcess+0x70e>
+ 800d8ce:	2b01      	cmp	r3, #1
+ 800d8d0:	f894 1434 	ldrb.w	r1, [r4, #1076]	; 0x434
+ 800d8d4:	f89d 206c 	ldrb.w	r2, [sp, #108]	; 0x6c
+ 800d8d8:	d805      	bhi.n	800d8e6 <LoRaMacProcess+0x6b6>
+ 800d8da:	2901      	cmp	r1, #1
+ 800d8dc:	d101      	bne.n	800d8e2 <LoRaMacProcess+0x6b2>
+ 800d8de:	0696      	lsls	r6, r2, #26
+ 800d8e0:	d501      	bpl.n	800d8e6 <LoRaMacProcess+0x6b6>
+ 800d8e2:	f001 fb01 	bl	800eee8 <LoRaMacCommandsRemoveStickyAnsCmds>
+ 800d8e6:	2f02      	cmp	r7, #2
+ 800d8e8:	d037      	beq.n	800d95a <LoRaMacProcess+0x72a>
+ 800d8ea:	2f03      	cmp	r7, #3
+ 800d8ec:	d009      	beq.n	800d902 <LoRaMacProcess+0x6d2>
+ 800d8ee:	f89d 106c 	ldrb.w	r1, [sp, #108]	; 0x6c
+ 800d8f2:	2f01      	cmp	r7, #1
+ 800d8f4:	464a      	mov	r2, r9
+ 800d8f6:	f001 010f 	and.w	r1, r1, #15
+ 800d8fa:	a81c      	add	r0, sp, #112	; 0x70
+ 800d8fc:	d031      	beq.n	800d962 <LoRaMacProcess+0x732>
+ 800d8fe:	f7ff f96b 	bl	800cbd8 <ProcessMacCommands.constprop.0>
+ 800d902:	f89d 3080 	ldrb.w	r3, [sp, #128]	; 0x80
+ 800d906:	f884 341b 	strb.w	r3, [r4, #1051]	; 0x41b
+ 800d90a:	9b21      	ldr	r3, [sp, #132]	; 0x84
+ 800d90c:	f8c4 3420 	str.w	r3, [r4, #1056]	; 0x420
+ 800d910:	f89d 3088 	ldrb.w	r3, [sp, #136]	; 0x88
+ 800d914:	f884 3424 	strb.w	r3, [r4, #1060]	; 0x424
+ 800d918:	2301      	movs	r3, #1
+ 800d91a:	f884 3425 	strb.w	r3, [r4, #1061]	; 0x425
+ 800d91e:	e026      	b.n	800d96e <LoRaMacProcess+0x73e>
+ 800d920:	9a02      	ldr	r2, [sp, #8]
+ 800d922:	f002 02e0 	and.w	r2, r2, #224	; 0xe0
+ 800d926:	2aa0      	cmp	r2, #160	; 0xa0
+ 800d928:	d111      	bne.n	800d94e <LoRaMacProcess+0x71e>
+ 800d92a:	f895 112a 	ldrb.w	r1, [r5, #298]	; 0x12a
+ 800d92e:	2201      	movs	r2, #1
+ 800d930:	f885 203a 	strb.w	r2, [r5, #58]	; 0x3a
+ 800d934:	b909      	cbnz	r1, 800d93a <LoRaMacProcess+0x70a>
+ 800d936:	9923      	ldr	r1, [sp, #140]	; 0x8c
+ 800d938:	6369      	str	r1, [r5, #52]	; 0x34
+ 800d93a:	f884 2418 	strb.w	r2, [r4, #1048]	; 0x418
+ 800d93e:	f895 2118 	ldrb.w	r2, [r5, #280]	; 0x118
+ 800d942:	2a00      	cmp	r2, #0
+ 800d944:	d1c3      	bne.n	800d8ce <LoRaMacProcess+0x69e>
+ 800d946:	2201      	movs	r2, #1
+ 800d948:	f884 241d 	strb.w	r2, [r4, #1053]	; 0x41d
+ 800d94c:	e7bf      	b.n	800d8ce <LoRaMacProcess+0x69e>
+ 800d94e:	2200      	movs	r2, #0
+ 800d950:	f885 203a 	strb.w	r2, [r5, #58]	; 0x3a
+ 800d954:	f884 2418 	strb.w	r2, [r4, #1048]	; 0x418
+ 800d958:	e7b5      	b.n	800d8c6 <LoRaMacProcess+0x696>
+ 800d95a:	f89d 1088 	ldrb.w	r1, [sp, #136]	; 0x88
+ 800d95e:	9821      	ldr	r0, [sp, #132]	; 0x84
+ 800d960:	464a      	mov	r2, r9
+ 800d962:	f7ff f939 	bl	800cbd8 <ProcessMacCommands.constprop.0>
+ 800d966:	f89d 3080 	ldrb.w	r3, [sp, #128]	; 0x80
+ 800d96a:	f884 341b 	strb.w	r3, [r4, #1051]	; 0x41b
+ 800d96e:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800d972:	f043 0302 	orr.w	r3, r3, #2
+ 800d976:	f884 3481 	strb.w	r3, [r4, #1153]	; 0x481
+ 800d97a:	e697      	b.n	800d6ac <LoRaMacProcess+0x47c>
+ 800d97c:	f8df 8034 	ldr.w	r8, [pc, #52]	; 800d9b4 <LoRaMacProcess+0x784>
+ 800d980:	3e01      	subs	r6, #1
+ 800d982:	b2b2      	uxth	r2, r6
+ 800d984:	1c79      	adds	r1, r7, #1
+ 800d986:	4640      	mov	r0, r8
+ 800d988:	f004 f800 	bl	801198c <memcpy1>
+ 800d98c:	2303      	movs	r3, #3
+ 800d98e:	f8a4 3418 	strh.w	r3, [r4, #1048]	; 0x418
+ 800d992:	f8c4 8420 	str.w	r8, [r4, #1056]	; 0x420
+ 800d996:	f884 6424 	strb.w	r6, [r4, #1060]	; 0x424
+ 800d99a:	e7e8      	b.n	800d96e <LoRaMacProcess+0x73e>
+ 800d99c:	2301      	movs	r3, #1
+ 800d99e:	f884 3419 	strb.w	r3, [r4, #1049]	; 0x419
+ 800d9a2:	f7fe fc97 	bl	800c2d4 <PrepareRxDoneAbort>
+ 800d9a6:	e681      	b.n	800d6ac <LoRaMacProcess+0x47c>
+ 800d9a8:	f895 3118 	ldrb.w	r3, [r5, #280]	; 0x118
+ 800d9ac:	2b02      	cmp	r3, #2
+ 800d9ae:	f47f ae88 	bne.w	800d6c2 <LoRaMacProcess+0x492>
+ 800d9b2:	e683      	b.n	800d6bc <LoRaMacProcess+0x48c>
+ 800d9b4:	20002214 	.word	0x20002214
+ 800d9b8:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800d9bc:	075d      	lsls	r5, r3, #29
+ 800d9be:	d50f      	bpl.n	800d9e0 <LoRaMacProcess+0x7b0>
+ 800d9c0:	2001      	movs	r0, #1
+ 800d9c2:	f001 fb8d 	bl	800f0e0 <LoRaMacConfirmQueueIsCmdActive>
+ 800d9c6:	b388      	cbz	r0, 800da2c <LoRaMacProcess+0x7fc>
+ 800d9c8:	2001      	movs	r0, #1
+ 800d9ca:	f001 fb5f 	bl	800f08c <LoRaMacConfirmQueueGetStatus>
+ 800d9ce:	b908      	cbnz	r0, 800d9d4 <LoRaMacProcess+0x7a4>
+ 800d9d0:	f884 040c 	strb.w	r0, [r4, #1036]	; 0x40c
+ 800d9d4:	f8d4 3340 	ldr.w	r3, [r4, #832]	; 0x340
+ 800d9d8:	f023 0302 	bic.w	r3, r3, #2
+ 800d9dc:	f8c4 3340 	str.w	r3, [r4, #832]	; 0x340
+ 800d9e0:	f894 1481 	ldrb.w	r1, [r4, #1153]	; 0x481
+ 800d9e4:	07c8      	lsls	r0, r1, #31
+ 800d9e6:	f57f ad36 	bpl.w	800d456 <LoRaMacProcess+0x226>
+ 800d9ea:	f894 3434 	ldrb.w	r3, [r4, #1076]	; 0x434
+ 800d9ee:	b10b      	cbz	r3, 800d9f4 <LoRaMacProcess+0x7c4>
+ 800d9f0:	2b03      	cmp	r3, #3
+ 800d9f2:	d126      	bne.n	800da42 <LoRaMacProcess+0x812>
+ 800d9f4:	4b42      	ldr	r3, [pc, #264]	; (800db00 <LoRaMacProcess+0x8d0>)
+ 800d9f6:	f894 040c 	ldrb.w	r0, [r4, #1036]	; 0x40c
+ 800d9fa:	f893 2068 	ldrb.w	r2, [r3, #104]	; 0x68
+ 800d9fe:	4290      	cmp	r0, r2
+ 800da00:	d208      	bcs.n	800da14 <LoRaMacProcess+0x7e4>
+ 800da02:	078a      	lsls	r2, r1, #30
+ 800da04:	d550      	bpl.n	800daa8 <LoRaMacProcess+0x878>
+ 800da06:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 800da0a:	b11b      	cbz	r3, 800da14 <LoRaMacProcess+0x7e4>
+ 800da0c:	f894 347f 	ldrb.w	r3, [r4, #1151]	; 0x47f
+ 800da10:	2b00      	cmp	r3, #0
+ 800da12:	d149      	bne.n	800daa8 <LoRaMacProcess+0x878>
+ 800da14:	483b      	ldr	r0, [pc, #236]	; (800db04 <LoRaMacProcess+0x8d4>)
+ 800da16:	f006 fadd 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 800da1a:	f8d4 3340 	ldr.w	r3, [r4, #832]	; 0x340
+ 800da1e:	f023 0320 	bic.w	r3, r3, #32
+ 800da22:	f8c4 3340 	str.w	r3, [r4, #832]	; 0x340
+ 800da26:	f7ff fb9b 	bl	800d160 <StopRetransmission.isra.0>
+ 800da2a:	e514      	b.n	800d456 <LoRaMacProcess+0x226>
+ 800da2c:	2006      	movs	r0, #6
+ 800da2e:	f001 fb57 	bl	800f0e0 <LoRaMacConfirmQueueIsCmdActive>
+ 800da32:	2800      	cmp	r0, #0
+ 800da34:	d1ce      	bne.n	800d9d4 <LoRaMacProcess+0x7a4>
+ 800da36:	2007      	movs	r0, #7
+ 800da38:	f001 fb52 	bl	800f0e0 <LoRaMacConfirmQueueIsCmdActive>
+ 800da3c:	2800      	cmp	r0, #0
+ 800da3e:	d1c9      	bne.n	800d9d4 <LoRaMacProcess+0x7a4>
+ 800da40:	e7ce      	b.n	800d9e0 <LoRaMacProcess+0x7b0>
+ 800da42:	2b01      	cmp	r3, #1
+ 800da44:	d130      	bne.n	800daa8 <LoRaMacProcess+0x878>
+ 800da46:	f894 240f 	ldrb.w	r2, [r4, #1039]	; 0x40f
+ 800da4a:	2a00      	cmp	r2, #0
+ 800da4c:	f43f ad03 	beq.w	800d456 <LoRaMacProcess+0x226>
+ 800da50:	f894 340e 	ldrb.w	r3, [r4, #1038]	; 0x40e
+ 800da54:	f894 040d 	ldrb.w	r0, [r4, #1037]	; 0x40d
+ 800da58:	4283      	cmp	r3, r0
+ 800da5a:	d204      	bcs.n	800da66 <LoRaMacProcess+0x836>
+ 800da5c:	f011 0202 	ands.w	r2, r1, #2
+ 800da60:	bf18      	it	ne
+ 800da62:	f894 2438 	ldrbne.w	r2, [r4, #1080]	; 0x438
+ 800da66:	4d26      	ldr	r5, [pc, #152]	; (800db00 <LoRaMacProcess+0x8d0>)
+ 800da68:	f895 112a 	ldrb.w	r1, [r5, #298]	; 0x12a
+ 800da6c:	2900      	cmp	r1, #0
+ 800da6e:	d141      	bne.n	800daf4 <LoRaMacProcess+0x8c4>
+ 800da70:	bb32      	cbnz	r2, 800dac0 <LoRaMacProcess+0x890>
+ 800da72:	4283      	cmp	r3, r0
+ 800da74:	d218      	bcs.n	800daa8 <LoRaMacProcess+0x878>
+ 800da76:	3301      	adds	r3, #1
+ 800da78:	b2db      	uxtb	r3, r3
+ 800da7a:	07df      	lsls	r7, r3, #31
+ 800da7c:	f884 340e 	strb.w	r3, [r4, #1038]	; 0x40e
+ 800da80:	d512      	bpl.n	800daa8 <LoRaMacProcess+0x878>
+ 800da82:	2322      	movs	r3, #34	; 0x22
+ 800da84:	f88d 3060 	strb.w	r3, [sp, #96]	; 0x60
+ 800da88:	f895 307c 	ldrb.w	r3, [r5, #124]	; 0x7c
+ 800da8c:	f88d 3062 	strb.w	r3, [sp, #98]	; 0x62
+ 800da90:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800da94:	f895 3039 	ldrb.w	r3, [r5, #57]	; 0x39
+ 800da98:	f88d 3061 	strb.w	r3, [sp, #97]	; 0x61
+ 800da9c:	a918      	add	r1, sp, #96	; 0x60
+ 800da9e:	f001 ffe7 	bl	800fa70 <RegionGetPhyParam>
+ 800daa2:	900e      	str	r0, [sp, #56]	; 0x38
+ 800daa4:	f885 0039 	strb.w	r0, [r5, #57]	; 0x39
+ 800daa8:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800daac:	2000      	movs	r0, #0
+ 800daae:	f36f 1304 	bfc	r3, #4, #1
+ 800dab2:	f884 3481 	strb.w	r3, [r4, #1153]	; 0x481
+ 800dab6:	f884 040f 	strb.w	r0, [r4, #1039]	; 0x40f
+ 800daba:	f7ff fb73 	bl	800d1a4 <OnTxDelayedTimerEvent>
+ 800dabe:	e4ca      	b.n	800d456 <LoRaMacProcess+0x226>
+ 800dac0:	f894 6438 	ldrb.w	r6, [r4, #1080]	; 0x438
+ 800dac4:	b98e      	cbnz	r6, 800daea <LoRaMacProcess+0x8ba>
+ 800dac6:	2302      	movs	r3, #2
+ 800dac8:	f88d 3068 	strb.w	r3, [sp, #104]	; 0x68
+ 800dacc:	f505 7308 	add.w	r3, r5, #544	; 0x220
+ 800dad0:	9318      	str	r3, [sp, #96]	; 0x60
+ 800dad2:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800dad6:	f505 732d 	add.w	r3, r5, #692	; 0x2b4
+ 800dada:	a918      	add	r1, sp, #96	; 0x60
+ 800dadc:	9319      	str	r3, [sp, #100]	; 0x64
+ 800dade:	f001 ffd5 	bl	800fa8c <RegionInitDefaults>
+ 800dae2:	f884 6410 	strb.w	r6, [r4, #1040]	; 0x410
+ 800dae6:	f884 6438 	strb.w	r6, [r4, #1080]	; 0x438
+ 800daea:	f894 340e 	ldrb.w	r3, [r4, #1038]	; 0x40e
+ 800daee:	f884 3439 	strb.w	r3, [r4, #1081]	; 0x439
+ 800daf2:	e78f      	b.n	800da14 <LoRaMacProcess+0x7e4>
+ 800daf4:	2a00      	cmp	r2, #0
+ 800daf6:	d0d7      	beq.n	800daa8 <LoRaMacProcess+0x878>
+ 800daf8:	e78c      	b.n	800da14 <LoRaMacProcess+0x7e4>
+ 800dafa:	b025      	add	sp, #148	; 0x94
+ 800dafc:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 800db00:	20001868 	.word	0x20001868
+ 800db04:	20002344 	.word	0x20002344
+
+0800db08 <LoRaMacInitialization>:
+ 800db08:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 800db0c:	468a      	mov	sl, r1
+ 800db0e:	b08b      	sub	sp, #44	; 0x2c
+ 800db10:	4691      	mov	r9, r2
+ 800db12:	4607      	mov	r7, r0
+ 800db14:	2800      	cmp	r0, #0
+ 800db16:	f000 818d 	beq.w	800de34 <LoRaMacInitialization+0x32c>
+ 800db1a:	2900      	cmp	r1, #0
+ 800db1c:	f000 818a 	beq.w	800de34 <LoRaMacInitialization+0x32c>
+ 800db20:	6803      	ldr	r3, [r0, #0]
+ 800db22:	2b00      	cmp	r3, #0
+ 800db24:	f000 8186 	beq.w	800de34 <LoRaMacInitialization+0x32c>
+ 800db28:	6843      	ldr	r3, [r0, #4]
+ 800db2a:	2b00      	cmp	r3, #0
+ 800db2c:	f000 8182 	beq.w	800de34 <LoRaMacInitialization+0x32c>
+ 800db30:	6883      	ldr	r3, [r0, #8]
+ 800db32:	2b00      	cmp	r3, #0
+ 800db34:	f000 817e 	beq.w	800de34 <LoRaMacInitialization+0x32c>
+ 800db38:	68c3      	ldr	r3, [r0, #12]
+ 800db3a:	2b00      	cmp	r3, #0
+ 800db3c:	f000 817a 	beq.w	800de34 <LoRaMacInitialization+0x32c>
+ 800db40:	4610      	mov	r0, r2
+ 800db42:	f001 ff91 	bl	800fa68 <RegionIsActive>
+ 800db46:	2800      	cmp	r0, #0
+ 800db48:	f000 8176 	beq.w	800de38 <LoRaMacInitialization+0x330>
+ 800db4c:	4cbc      	ldr	r4, [pc, #752]	; (800de40 <LoRaMacInitialization+0x338>)
+ 800db4e:	4dbd      	ldr	r5, [pc, #756]	; (800de44 <LoRaMacInitialization+0x33c>)
+ 800db50:	4638      	mov	r0, r7
+ 800db52:	f001 fa3f 	bl	800efd4 <LoRaMacConfirmQueueInit>
+ 800db56:	f44f 62ee 	mov.w	r2, #1904	; 0x770
+ 800db5a:	2100      	movs	r1, #0
+ 800db5c:	4620      	mov	r0, r4
+ 800db5e:	f003 ff29 	bl	80119b4 <memset1>
+ 800db62:	f44f 62a1 	mov.w	r2, #1288	; 0x508
+ 800db66:	2100      	movs	r1, #0
+ 800db68:	4628      	mov	r0, r5
+ 800db6a:	f003 ff23 	bl	80119b4 <memset1>
+ 800db6e:	4bb6      	ldr	r3, [pc, #728]	; (800de48 <LoRaMacInitialization+0x340>)
+ 800db70:	f8c4 3128 	str.w	r3, [r4, #296]	; 0x128
+ 800db74:	2600      	movs	r6, #0
+ 800db76:	f04f 0801 	mov.w	r8, #1
+ 800db7a:	230f      	movs	r3, #15
+ 800db7c:	a905      	add	r1, sp, #20
+ 800db7e:	4648      	mov	r0, r9
+ 800db80:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800db84:	f884 9048 	strb.w	r9, [r4, #72]	; 0x48
+ 800db88:	f884 6118 	strb.w	r6, [r4, #280]	; 0x118
+ 800db8c:	f884 608c 	strb.w	r6, [r4, #140]	; 0x8c
+ 800db90:	f885 840e 	strb.w	r8, [r5, #1038]	; 0x40e
+ 800db94:	f885 840d 	strb.w	r8, [r5, #1037]	; 0x40d
+ 800db98:	f001 ff6a 	bl	800fa70 <RegionGetPhyParam>
+ 800db9c:	1b80      	subs	r0, r0, r6
+ 800db9e:	bf18      	it	ne
+ 800dba0:	2001      	movne	r0, #1
+ 800dba2:	f04f 0b0a 	mov.w	fp, #10
+ 800dba6:	f884 011c 	strb.w	r0, [r4, #284]	; 0x11c
+ 800dbaa:	a905      	add	r1, sp, #20
+ 800dbac:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800dbb0:	f88d b014 	strb.w	fp, [sp, #20]
+ 800dbb4:	f001 ff5c 	bl	800fa70 <RegionGetPhyParam>
+ 800dbb8:	f04f 0906 	mov.w	r9, #6
+ 800dbbc:	f884 00dc 	strb.w	r0, [r4, #220]	; 0xdc
+ 800dbc0:	a905      	add	r1, sp, #20
+ 800dbc2:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800dbc6:	f88d 9014 	strb.w	r9, [sp, #20]
+ 800dbca:	f001 ff51 	bl	800fa70 <RegionGetPhyParam>
+ 800dbce:	2310      	movs	r3, #16
+ 800dbd0:	f884 00dd 	strb.w	r0, [r4, #221]	; 0xdd
+ 800dbd4:	a905      	add	r1, sp, #20
+ 800dbd6:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800dbda:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800dbde:	f001 ff47 	bl	800fa70 <RegionGetPhyParam>
+ 800dbe2:	2311      	movs	r3, #17
+ 800dbe4:	f8c4 009c 	str.w	r0, [r4, #156]	; 0x9c
+ 800dbe8:	a905      	add	r1, sp, #20
+ 800dbea:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800dbee:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800dbf2:	f001 ff3d 	bl	800fa70 <RegionGetPhyParam>
+ 800dbf6:	2312      	movs	r3, #18
+ 800dbf8:	f8c4 00a0 	str.w	r0, [r4, #160]	; 0xa0
+ 800dbfc:	a905      	add	r1, sp, #20
+ 800dbfe:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800dc02:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800dc06:	f001 ff33 	bl	800fa70 <RegionGetPhyParam>
+ 800dc0a:	2313      	movs	r3, #19
+ 800dc0c:	f8c4 00a4 	str.w	r0, [r4, #164]	; 0xa4
+ 800dc10:	a905      	add	r1, sp, #20
+ 800dc12:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800dc16:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800dc1a:	f001 ff29 	bl	800fa70 <RegionGetPhyParam>
+ 800dc1e:	2314      	movs	r3, #20
+ 800dc20:	eb0d 0103 	add.w	r1, sp, r3
+ 800dc24:	f8c4 00a8 	str.w	r0, [r4, #168]	; 0xa8
+ 800dc28:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800dc2c:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800dc30:	f001 ff1e 	bl	800fa70 <RegionGetPhyParam>
+ 800dc34:	2317      	movs	r3, #23
+ 800dc36:	f8c4 00ac 	str.w	r0, [r4, #172]	; 0xac
+ 800dc3a:	a905      	add	r1, sp, #20
+ 800dc3c:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800dc40:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800dc44:	f001 ff14 	bl	800fa70 <RegionGetPhyParam>
+ 800dc48:	2318      	movs	r3, #24
+ 800dc4a:	f884 00b1 	strb.w	r0, [r4, #177]	; 0xb1
+ 800dc4e:	a905      	add	r1, sp, #20
+ 800dc50:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800dc54:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800dc58:	f001 ff0a 	bl	800fa70 <RegionGetPhyParam>
+ 800dc5c:	2319      	movs	r3, #25
+ 800dc5e:	f8c4 00b4 	str.w	r0, [r4, #180]	; 0xb4
+ 800dc62:	f8c4 00bc 	str.w	r0, [r4, #188]	; 0xbc
+ 800dc66:	a905      	add	r1, sp, #20
+ 800dc68:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800dc6c:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800dc70:	f001 fefe 	bl	800fa70 <RegionGetPhyParam>
+ 800dc74:	b2c0      	uxtb	r0, r0
+ 800dc76:	231e      	movs	r3, #30
+ 800dc78:	f884 00b8 	strb.w	r0, [r4, #184]	; 0xb8
+ 800dc7c:	f884 00c0 	strb.w	r0, [r4, #192]	; 0xc0
+ 800dc80:	a905      	add	r1, sp, #20
+ 800dc82:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800dc86:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800dc8a:	f001 fef1 	bl	800fa70 <RegionGetPhyParam>
+ 800dc8e:	231f      	movs	r3, #31
+ 800dc90:	f884 00c4 	strb.w	r0, [r4, #196]	; 0xc4
+ 800dc94:	a905      	add	r1, sp, #20
+ 800dc96:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800dc9a:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800dc9e:	f001 fee7 	bl	800fa70 <RegionGetPhyParam>
+ 800dca2:	2320      	movs	r3, #32
+ 800dca4:	f884 00c5 	strb.w	r0, [r4, #197]	; 0xc5
+ 800dca8:	a905      	add	r1, sp, #20
+ 800dcaa:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800dcae:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800dcb2:	f001 fedd 	bl	800fa70 <RegionGetPhyParam>
+ 800dcb6:	2321      	movs	r3, #33	; 0x21
+ 800dcb8:	f8c4 00c8 	str.w	r0, [r4, #200]	; 0xc8
+ 800dcbc:	a905      	add	r1, sp, #20
+ 800dcbe:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800dcc2:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800dcc6:	f001 fed3 	bl	800fa70 <RegionGetPhyParam>
+ 800dcca:	230b      	movs	r3, #11
+ 800dccc:	f8c4 00cc 	str.w	r0, [r4, #204]	; 0xcc
+ 800dcd0:	a905      	add	r1, sp, #20
+ 800dcd2:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800dcd6:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800dcda:	f001 fec9 	bl	800fa70 <RegionGetPhyParam>
+ 800dcde:	230c      	movs	r3, #12
+ 800dce0:	f8a4 00d0 	strh.w	r0, [r4, #208]	; 0xd0
+ 800dce4:	a905      	add	r1, sp, #20
+ 800dce6:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800dcea:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800dcee:	f001 febf 	bl	800fa70 <RegionGetPhyParam>
+ 800dcf2:	f8d4 309c 	ldr.w	r3, [r4, #156]	; 0x9c
+ 800dcf6:	6563      	str	r3, [r4, #84]	; 0x54
+ 800dcf8:	f8d4 30a0 	ldr.w	r3, [r4, #160]	; 0xa0
+ 800dcfc:	65a3      	str	r3, [r4, #88]	; 0x58
+ 800dcfe:	f8d4 30a4 	ldr.w	r3, [r4, #164]	; 0xa4
+ 800dd02:	65e3      	str	r3, [r4, #92]	; 0x5c
+ 800dd04:	f8d4 30a8 	ldr.w	r3, [r4, #168]	; 0xa8
+ 800dd08:	6623      	str	r3, [r4, #96]	; 0x60
+ 800dd0a:	f8d4 30ac 	ldr.w	r3, [r4, #172]	; 0xac
+ 800dd0e:	6663      	str	r3, [r4, #100]	; 0x64
+ 800dd10:	f504 7308 	add.w	r3, r4, #544	; 0x220
+ 800dd14:	a907      	add	r1, sp, #28
+ 800dd16:	9004      	str	r0, [sp, #16]
+ 800dd18:	f8a4 00d2 	strh.w	r0, [r4, #210]	; 0xd2
+ 800dd1c:	9307      	str	r3, [sp, #28]
+ 800dd1e:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800dd22:	f88d 6024 	strb.w	r6, [sp, #36]	; 0x24
+ 800dd26:	f504 732d 	add.w	r3, r4, #692	; 0x2b4
+ 800dd2a:	9308      	str	r3, [sp, #32]
+ 800dd2c:	f884 80b0 	strb.w	r8, [r4, #176]	; 0xb0
+ 800dd30:	f8c4 b094 	str.w	fp, [r4, #148]	; 0x94
+ 800dd34:	f884 9098 	strb.w	r9, [r4, #152]	; 0x98
+ 800dd38:	f8c4 b04c 	str.w	fp, [r4, #76]	; 0x4c
+ 800dd3c:	f884 9050 	strb.w	r9, [r4, #80]	; 0x50
+ 800dd40:	f884 8068 	strb.w	r8, [r4, #104]	; 0x68
+ 800dd44:	f001 fea2 	bl	800fa8c <RegionInitDefaults>
+ 800dd48:	f8c5 a348 	str.w	sl, [r5, #840]	; 0x348
+ 800dd4c:	f7fe fdc8 	bl	800c8e0 <ResetMacParameters.constprop.0>
+ 800dd50:	4632      	mov	r2, r6
+ 800dd52:	4b3e      	ldr	r3, [pc, #248]	; (800de4c <LoRaMacInitialization+0x344>)
+ 800dd54:	9600      	str	r6, [sp, #0]
+ 800dd56:	f04f 31ff 	mov.w	r1, #4294967295
+ 800dd5a:	f505 705a 	add.w	r0, r5, #872	; 0x368
+ 800dd5e:	e9c4 660b 	strd	r6, r6, [r4, #44]	; 0x2c
+ 800dd62:	f8c5 7344 	str.w	r7, [r5, #836]	; 0x344
+ 800dd66:	f885 6481 	strb.w	r6, [r5, #1153]	; 0x481
+ 800dd6a:	f884 8119 	strb.w	r8, [r4, #281]	; 0x119
+ 800dd6e:	f8c5 8340 	str.w	r8, [r5, #832]	; 0x340
+ 800dd72:	f006 f8d1 	bl	8013f18 <UTIL_TIMER_Create>
+ 800dd76:	4632      	mov	r2, r6
+ 800dd78:	4b35      	ldr	r3, [pc, #212]	; (800de50 <LoRaMacInitialization+0x348>)
+ 800dd7a:	9600      	str	r6, [sp, #0]
+ 800dd7c:	f04f 31ff 	mov.w	r1, #4294967295
+ 800dd80:	f505 7060 	add.w	r0, r5, #896	; 0x380
+ 800dd84:	f006 f8c8 	bl	8013f18 <UTIL_TIMER_Create>
+ 800dd88:	4632      	mov	r2, r6
+ 800dd8a:	4b32      	ldr	r3, [pc, #200]	; (800de54 <LoRaMacInitialization+0x34c>)
+ 800dd8c:	9600      	str	r6, [sp, #0]
+ 800dd8e:	f04f 31ff 	mov.w	r1, #4294967295
+ 800dd92:	f505 7066 	add.w	r0, r5, #920	; 0x398
+ 800dd96:	f006 f8bf 	bl	8013f18 <UTIL_TIMER_Create>
+ 800dd9a:	4632      	mov	r2, r6
+ 800dd9c:	4b2e      	ldr	r3, [pc, #184]	; (800de58 <LoRaMacInitialization+0x350>)
+ 800dd9e:	9600      	str	r6, [sp, #0]
+ 800dda0:	f04f 31ff 	mov.w	r1, #4294967295
+ 800dda4:	ae02      	add	r6, sp, #8
+ 800dda6:	f505 707d 	add.w	r0, r5, #1012	; 0x3f4
+ 800ddaa:	f006 f8b5 	bl	8013f18 <UTIL_TIMER_Create>
+ 800ddae:	4630      	mov	r0, r6
+ 800ddb0:	f006 f846 	bl	8013e40 <SysTimeGetMcuTime>
+ 800ddb4:	e896 0003 	ldmia.w	r6, {r0, r1}
+ 800ddb8:	f504 7390 	add.w	r3, r4, #288	; 0x120
+ 800ddbc:	e883 0003 	stmia.w	r3, {r0, r1}
+ 800ddc0:	4b26      	ldr	r3, [pc, #152]	; (800de5c <LoRaMacInitialization+0x354>)
+ 800ddc2:	f8c5 334c 	str.w	r3, [r5, #844]	; 0x34c
+ 800ddc6:	4b26      	ldr	r3, [pc, #152]	; (800de60 <LoRaMacInitialization+0x358>)
+ 800ddc8:	f8c5 3354 	str.w	r3, [r5, #852]	; 0x354
+ 800ddcc:	4b25      	ldr	r3, [pc, #148]	; (800de64 <LoRaMacInitialization+0x35c>)
+ 800ddce:	f8c5 335c 	str.w	r3, [r5, #860]	; 0x35c
+ 800ddd2:	4f25      	ldr	r7, [pc, #148]	; (800de68 <LoRaMacInitialization+0x360>)
+ 800ddd4:	4b25      	ldr	r3, [pc, #148]	; (800de6c <LoRaMacInitialization+0x364>)
+ 800ddd6:	f8c5 3350 	str.w	r3, [r5, #848]	; 0x350
+ 800ddda:	4b25      	ldr	r3, [pc, #148]	; (800de70 <LoRaMacInitialization+0x368>)
+ 800dddc:	f8c5 3358 	str.w	r3, [r5, #856]	; 0x358
+ 800dde0:	f505 7053 	add.w	r0, r5, #844	; 0x34c
+ 800dde4:	683b      	ldr	r3, [r7, #0]
+ 800dde6:	4798      	blx	r3
+ 800dde8:	f504 70a4 	add.w	r0, r4, #328	; 0x148
+ 800ddec:	f003 fb16 	bl	801141c <SecureElementInit>
+ 800ddf0:	b120      	cbz	r0, 800ddfc <LoRaMacInitialization+0x2f4>
+ 800ddf2:	2611      	movs	r6, #17
+ 800ddf4:	4630      	mov	r0, r6
+ 800ddf6:	b00b      	add	sp, #44	; 0x2c
+ 800ddf8:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 800ddfc:	4620      	mov	r0, r4
+ 800ddfe:	f001 fa9d 	bl	800f33c <LoRaMacCryptoInit>
+ 800de02:	2800      	cmp	r0, #0
+ 800de04:	d1f5      	bne.n	800ddf2 <LoRaMacInitialization+0x2ea>
+ 800de06:	f000 ffc7 	bl	800ed98 <LoRaMacCommandsInit>
+ 800de0a:	b9b8      	cbnz	r0, 800de3c <LoRaMacInitialization+0x334>
+ 800de0c:	4819      	ldr	r0, [pc, #100]	; (800de74 <LoRaMacInitialization+0x36c>)
+ 800de0e:	f001 faf7 	bl	800f400 <LoRaMacCryptoSetMulticastReference>
+ 800de12:	4606      	mov	r6, r0
+ 800de14:	2800      	cmp	r0, #0
+ 800de16:	d1ec      	bne.n	800ddf2 <LoRaMacInitialization+0x2ea>
+ 800de18:	697b      	ldr	r3, [r7, #20]
+ 800de1a:	4798      	blx	r3
+ 800de1c:	f003 fd94 	bl	8011948 <srand1>
+ 800de20:	6dbb      	ldr	r3, [r7, #88]	; 0x58
+ 800de22:	f894 0119 	ldrb.w	r0, [r4, #281]	; 0x119
+ 800de26:	4798      	blx	r3
+ 800de28:	6afb      	ldr	r3, [r7, #44]	; 0x2c
+ 800de2a:	4798      	blx	r3
+ 800de2c:	2301      	movs	r3, #1
+ 800de2e:	f885 3482 	strb.w	r3, [r5, #1154]	; 0x482
+ 800de32:	e7df      	b.n	800ddf4 <LoRaMacInitialization+0x2ec>
+ 800de34:	2603      	movs	r6, #3
+ 800de36:	e7dd      	b.n	800ddf4 <LoRaMacInitialization+0x2ec>
+ 800de38:	2609      	movs	r6, #9
+ 800de3a:	e7db      	b.n	800ddf4 <LoRaMacInitialization+0x2ec>
+ 800de3c:	2613      	movs	r6, #19
+ 800de3e:	e7d9      	b.n	800ddf4 <LoRaMacInitialization+0x2ec>
+ 800de40:	20001868 	.word	0x20001868
+ 800de44:	20001fdc 	.word	0x20001fdc
+ 800de48:	01000300 	.word	0x01000300
+ 800de4c:	0800d1a5 	.word	0x0800d1a5
+ 800de50:	0800ca5d 	.word	0x0800ca5d
+ 800de54:	0800ca9d 	.word	0x0800ca9d
+ 800de58:	0800c295 	.word	0x0800c295
+ 800de5c:	0800c46d 	.word	0x0800c46d
+ 800de60:	0800c425 	.word	0x0800c425
+ 800de64:	0800c251 	.word	0x0800c251
+ 800de68:	080159b0 	.word	0x080159b0
+ 800de6c:	0800c3fd 	.word	0x0800c3fd
+ 800de70:	0800c3d5 	.word	0x0800c3d5
+ 800de74:	20001950 	.word	0x20001950
+
+0800de78 <LoRaMacStart>:
+ 800de78:	b508      	push	{r3, lr}
+ 800de7a:	4b03      	ldr	r3, [pc, #12]	; (800de88 <LoRaMacStart+0x10>)
+ 800de7c:	2000      	movs	r0, #0
+ 800de7e:	f8c3 0340 	str.w	r0, [r3, #832]	; 0x340
+ 800de82:	f7fe f9cd 	bl	800c220 <UpdateRxSlotIdleState>
+ 800de86:	bd08      	pop	{r3, pc}
+ 800de88:	20001fdc 	.word	0x20001fdc
+
+0800de8c <LoRaMacStop>:
+ 800de8c:	b510      	push	{r4, lr}
+ 800de8e:	f7ff f9b3 	bl	800d1f8 <LoRaMacIsBusy>
+ 800de92:	4c0a      	ldr	r4, [pc, #40]	; (800debc <LoRaMacStop+0x30>)
+ 800de94:	b960      	cbnz	r0, 800deb0 <LoRaMacStop+0x24>
+ 800de96:	4b0a      	ldr	r3, [pc, #40]	; (800dec0 <LoRaMacStop+0x34>)
+ 800de98:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 800de9c:	2b02      	cmp	r3, #2
+ 800de9e:	d102      	bne.n	800dea6 <LoRaMacStop+0x1a>
+ 800dea0:	4b08      	ldr	r3, [pc, #32]	; (800dec4 <LoRaMacStop+0x38>)
+ 800dea2:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800dea4:	4798      	blx	r3
+ 800dea6:	2301      	movs	r3, #1
+ 800dea8:	f8c4 3340 	str.w	r3, [r4, #832]	; 0x340
+ 800deac:	2000      	movs	r0, #0
+ 800deae:	bd10      	pop	{r4, pc}
+ 800deb0:	f8d4 0340 	ldr.w	r0, [r4, #832]	; 0x340
+ 800deb4:	3801      	subs	r0, #1
+ 800deb6:	bf18      	it	ne
+ 800deb8:	2001      	movne	r0, #1
+ 800deba:	e7f8      	b.n	800deae <LoRaMacStop+0x22>
+ 800debc:	20001fdc 	.word	0x20001fdc
+ 800dec0:	20001868 	.word	0x20001868
+ 800dec4:	080159b0 	.word	0x080159b0
+
+0800dec8 <LoRaMacHalt>:
+ 800dec8:	b538      	push	{r3, r4, r5, lr}
+ 800deca:	4c13      	ldr	r4, [pc, #76]	; (800df18 <LoRaMacHalt+0x50>)
+ 800decc:	f504 705a 	add.w	r0, r4, #872	; 0x368
+ 800ded0:	f006 f880 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 800ded4:	f504 7060 	add.w	r0, r4, #896	; 0x380
+ 800ded8:	f006 f87c 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 800dedc:	f504 7066 	add.w	r0, r4, #920	; 0x398
+ 800dee0:	f006 f878 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 800dee4:	f504 707d 	add.w	r0, r4, #1012	; 0x3f4
+ 800dee8:	f006 f874 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 800deec:	f000 ff40 	bl	800ed70 <LoRaMacClassBHaltBeaconing>
+ 800def0:	4b0a      	ldr	r3, [pc, #40]	; (800df1c <LoRaMacHalt+0x54>)
+ 800def2:	2500      	movs	r5, #0
+ 800def4:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800def6:	4798      	blx	r3
+ 800def8:	f8c4 5340 	str.w	r5, [r4, #832]	; 0x340
+ 800defc:	f7fe fdf2 	bl	800cae4 <LoRaMacHandleNvm.part.0.constprop.0>
+ 800df00:	4907      	ldr	r1, [pc, #28]	; (800df20 <LoRaMacHalt+0x58>)
+ 800df02:	4808      	ldr	r0, [pc, #32]	; (800df24 <LoRaMacHalt+0x5c>)
+ 800df04:	f44f 62ee 	mov.w	r2, #1904	; 0x770
+ 800df08:	f003 fd40 	bl	801198c <memcpy1>
+ 800df0c:	2301      	movs	r3, #1
+ 800df0e:	f8c4 3340 	str.w	r3, [r4, #832]	; 0x340
+ 800df12:	4628      	mov	r0, r5
+ 800df14:	bd38      	pop	{r3, r4, r5, pc}
+ 800df16:	bf00      	nop
+ 800df18:	20001fdc 	.word	0x20001fdc
+ 800df1c:	080159b0 	.word	0x080159b0
+ 800df20:	20001868 	.word	0x20001868
+ 800df24:	200010f8 	.word	0x200010f8
+
+0800df28 <LoRaMacQueryTxPossible>:
+ 800df28:	b530      	push	{r4, r5, lr}
+ 800df2a:	4b2a      	ldr	r3, [pc, #168]	; (800dfd4 <LoRaMacQueryTxPossible+0xac>)
+ 800df2c:	b089      	sub	sp, #36	; 0x24
+ 800df2e:	4605      	mov	r5, r0
+ 800df30:	f893 00dd 	ldrb.w	r0, [r3, #221]	; 0xdd
+ 800df34:	f88d 0002 	strb.w	r0, [sp, #2]
+ 800df38:	f893 00dc 	ldrb.w	r0, [r3, #220]	; 0xdc
+ 800df3c:	6a9a      	ldr	r2, [r3, #40]	; 0x28
+ 800df3e:	f88d 0003 	strb.w	r0, [sp, #3]
+ 800df42:	2000      	movs	r0, #0
+ 800df44:	9201      	str	r2, [sp, #4]
+ 800df46:	9002      	str	r0, [sp, #8]
+ 800df48:	460c      	mov	r4, r1
+ 800df4a:	2900      	cmp	r1, #0
+ 800df4c:	d03e      	beq.n	800dfcc <LoRaMacQueryTxPossible+0xa4>
+ 800df4e:	9205      	str	r2, [sp, #20]
+ 800df50:	f8d3 2088 	ldr.w	r2, [r3, #136]	; 0x88
+ 800df54:	9206      	str	r2, [sp, #24]
+ 800df56:	8f1a      	ldrh	r2, [r3, #56]	; 0x38
+ 800df58:	f8d3 1128 	ldr.w	r1, [r3, #296]	; 0x128
+ 800df5c:	9103      	str	r1, [sp, #12]
+ 800df5e:	ba52      	rev16	r2, r2
+ 800df60:	f893 111a 	ldrb.w	r1, [r3, #282]	; 0x11a
+ 800df64:	f8ad 201c 	strh.w	r2, [sp, #28]
+ 800df68:	f893 207c 	ldrb.w	r2, [r3, #124]	; 0x7c
+ 800df6c:	f893 3048 	ldrb.w	r3, [r3, #72]	; 0x48
+ 800df70:	f88d 0010 	strb.w	r0, [sp, #16]
+ 800df74:	f88d 1011 	strb.w	r1, [sp, #17]
+ 800df78:	f88d 201e 	strb.w	r2, [sp, #30]
+ 800df7c:	f88d 301f 	strb.w	r3, [sp, #31]
+ 800df80:	f10d 0203 	add.w	r2, sp, #3
+ 800df84:	ab01      	add	r3, sp, #4
+ 800df86:	f10d 0102 	add.w	r1, sp, #2
+ 800df8a:	a803      	add	r0, sp, #12
+ 800df8c:	f000 fe6e 	bl	800ec6c <LoRaMacAdrCalcNext>
+ 800df90:	f99d 0002 	ldrsb.w	r0, [sp, #2]
+ 800df94:	f7fe f966 	bl	800c264 <GetMaxAppPayloadWithoutFOptsLength>
+ 800df98:	7060      	strb	r0, [r4, #1]
+ 800df9a:	a802      	add	r0, sp, #8
+ 800df9c:	f000 ffb6 	bl	800ef0c <LoRaMacCommandsGetSizeSerializedCmds>
+ 800dfa0:	b9b0      	cbnz	r0, 800dfd0 <LoRaMacQueryTxPossible+0xa8>
+ 800dfa2:	9a02      	ldr	r2, [sp, #8]
+ 800dfa4:	2a0f      	cmp	r2, #15
+ 800dfa6:	d80d      	bhi.n	800dfc4 <LoRaMacQueryTxPossible+0x9c>
+ 800dfa8:	7863      	ldrb	r3, [r4, #1]
+ 800dfaa:	429a      	cmp	r2, r3
+ 800dfac:	d80a      	bhi.n	800dfc4 <LoRaMacQueryTxPossible+0x9c>
+ 800dfae:	4415      	add	r5, r2
+ 800dfb0:	42ab      	cmp	r3, r5
+ 800dfb2:	eba3 0102 	sub.w	r1, r3, r2
+ 800dfb6:	bf2c      	ite	cs
+ 800dfb8:	2000      	movcs	r0, #0
+ 800dfba:	2001      	movcc	r0, #1
+ 800dfbc:	7021      	strb	r1, [r4, #0]
+ 800dfbe:	00c0      	lsls	r0, r0, #3
+ 800dfc0:	b009      	add	sp, #36	; 0x24
+ 800dfc2:	bd30      	pop	{r4, r5, pc}
+ 800dfc4:	2300      	movs	r3, #0
+ 800dfc6:	7023      	strb	r3, [r4, #0]
+ 800dfc8:	2008      	movs	r0, #8
+ 800dfca:	e7f9      	b.n	800dfc0 <LoRaMacQueryTxPossible+0x98>
+ 800dfcc:	2003      	movs	r0, #3
+ 800dfce:	e7f7      	b.n	800dfc0 <LoRaMacQueryTxPossible+0x98>
+ 800dfd0:	2013      	movs	r0, #19
+ 800dfd2:	e7f5      	b.n	800dfc0 <LoRaMacQueryTxPossible+0x98>
+ 800dfd4:	20001868 	.word	0x20001868
+
+0800dfd8 <LoRaMacMibGetRequestConfirm>:
+ 800dfd8:	b51f      	push	{r0, r1, r2, r3, r4, lr}
+ 800dfda:	4604      	mov	r4, r0
+ 800dfdc:	2800      	cmp	r0, #0
+ 800dfde:	f000 80fd 	beq.w	800e1dc <LoRaMacMibGetRequestConfirm+0x204>
+ 800dfe2:	7800      	ldrb	r0, [r0, #0]
+ 800dfe4:	283f      	cmp	r0, #63	; 0x3f
+ 800dfe6:	f200 80f3 	bhi.w	800e1d0 <LoRaMacMibGetRequestConfirm+0x1f8>
+ 800dfea:	e8df f010 	tbh	[pc, r0, lsl #1]
+ 800dfee:	0040      	.short	0x0040
+ 800dff0:	004b0046 	.word	0x004b0046
+ 800dff4:	00540050 	.word	0x00540050
+ 800dff8:	005d0058 	.word	0x005d0058
+ 800dffc:	00f100f1 	.word	0x00f100f1
+ 800e000:	00f100f1 	.word	0x00f100f1
+ 800e004:	00f100f1 	.word	0x00f100f1
+ 800e008:	00f100f1 	.word	0x00f100f1
+ 800e00c:	00680064 	.word	0x00680064
+ 800e010:	0077006c 	.word	0x0077006c
+ 800e014:	0081007e 	.word	0x0081007e
+ 800e018:	00890084 	.word	0x00890084
+ 800e01c:	008b0087 	.word	0x008b0087
+ 800e020:	0092008f 	.word	0x0092008f
+ 800e024:	00980095 	.word	0x00980095
+ 800e028:	009e009b 	.word	0x009e009b
+ 800e02c:	00aa00a2 	.word	0x00aa00a2
+ 800e030:	00ae00a6 	.word	0x00ae00a6
+ 800e034:	00b500b1 	.word	0x00b500b1
+ 800e038:	00ba00be 	.word	0x00ba00be
+ 800e03c:	00f100bc 	.word	0x00f100bc
+ 800e040:	00f100c2 	.word	0x00f100c2
+ 800e044:	00f100f1 	.word	0x00f100f1
+ 800e048:	00f100f1 	.word	0x00f100f1
+ 800e04c:	00f100f1 	.word	0x00f100f1
+ 800e050:	00f100f1 	.word	0x00f100f1
+ 800e054:	00f100f1 	.word	0x00f100f1
+ 800e058:	00f100f1 	.word	0x00f100f1
+ 800e05c:	00f100f1 	.word	0x00f100f1
+ 800e060:	00ce00ca 	.word	0x00ce00ca
+ 800e064:	00d700d3 	.word	0x00d700d3
+ 800e068:	00df00db 	.word	0x00df00db
+ 800e06c:	00e8      	.short	0x00e8
+ 800e06e:	4b5d      	ldr	r3, [pc, #372]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e070:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 800e074:	7123      	strb	r3, [r4, #4]
+ 800e076:	b004      	add	sp, #16
+ 800e078:	bd10      	pop	{r4, pc}
+ 800e07a:	4b5a      	ldr	r3, [pc, #360]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e07c:	f893 312c 	ldrb.w	r3, [r3, #300]	; 0x12c
+ 800e080:	7123      	strb	r3, [r4, #4]
+ 800e082:	e002      	b.n	800e08a <LoRaMacMibGetRequestConfirm+0xb2>
+ 800e084:	6860      	ldr	r0, [r4, #4]
+ 800e086:	f003 fb65 	bl	8011754 <SecureElementGetDevEui>
+ 800e08a:	2000      	movs	r0, #0
+ 800e08c:	e7f3      	b.n	800e076 <LoRaMacMibGetRequestConfirm+0x9e>
+ 800e08e:	6860      	ldr	r0, [r4, #4]
+ 800e090:	f003 fba6 	bl	80117e0 <SecureElementGetJoinEui>
+ 800e094:	e7f9      	b.n	800e08a <LoRaMacMibGetRequestConfirm+0xb2>
+ 800e096:	4b53      	ldr	r3, [pc, #332]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e098:	f893 311a 	ldrb.w	r3, [r3, #282]	; 0x11a
+ 800e09c:	e7f0      	b.n	800e080 <LoRaMacMibGetRequestConfirm+0xa8>
+ 800e09e:	4b51      	ldr	r3, [pc, #324]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e0a0:	f8d3 30e0 	ldr.w	r3, [r3, #224]	; 0xe0
+ 800e0a4:	6063      	str	r3, [r4, #4]
+ 800e0a6:	e7f0      	b.n	800e08a <LoRaMacMibGetRequestConfirm+0xb2>
+ 800e0a8:	4b4e      	ldr	r3, [pc, #312]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e0aa:	1d21      	adds	r1, r4, #4
+ 800e0ac:	f893 012c 	ldrb.w	r0, [r3, #300]	; 0x12c
+ 800e0b0:	f003 fbae 	bl	8011810 <SecureElementGetDevAddr>
+ 800e0b4:	e7e9      	b.n	800e08a <LoRaMacMibGetRequestConfirm+0xb2>
+ 800e0b6:	4b4b      	ldr	r3, [pc, #300]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e0b8:	f893 3119 	ldrb.w	r3, [r3, #281]	; 0x119
+ 800e0bc:	e7e0      	b.n	800e080 <LoRaMacMibGetRequestConfirm+0xa8>
+ 800e0be:	4b49      	ldr	r3, [pc, #292]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e0c0:	f893 308c 	ldrb.w	r3, [r3, #140]	; 0x8c
+ 800e0c4:	e7dc      	b.n	800e080 <LoRaMacMibGetRequestConfirm+0xa8>
+ 800e0c6:	231d      	movs	r3, #29
+ 800e0c8:	f88d 3008 	strb.w	r3, [sp, #8]
+ 800e0cc:	4b45      	ldr	r3, [pc, #276]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e0ce:	a902      	add	r1, sp, #8
+ 800e0d0:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 800e0d4:	f001 fccc 	bl	800fa70 <RegionGetPhyParam>
+ 800e0d8:	6060      	str	r0, [r4, #4]
+ 800e0da:	e7d6      	b.n	800e08a <LoRaMacMibGetRequestConfirm+0xb2>
+ 800e0dc:	4b42      	ldr	r3, [pc, #264]	; (800e1e8 <LoRaMacMibGetRequestConfirm+0x210>)
+ 800e0de:	3404      	adds	r4, #4
+ 800e0e0:	e893 0003 	ldmia.w	r3, {r0, r1}
+ 800e0e4:	e884 0003 	stmia.w	r4, {r0, r1}
+ 800e0e8:	e7cf      	b.n	800e08a <LoRaMacMibGetRequestConfirm+0xb2>
+ 800e0ea:	4b40      	ldr	r3, [pc, #256]	; (800e1ec <LoRaMacMibGetRequestConfirm+0x214>)
+ 800e0ec:	3404      	adds	r4, #4
+ 800e0ee:	e7f7      	b.n	800e0e0 <LoRaMacMibGetRequestConfirm+0x108>
+ 800e0f0:	4b3f      	ldr	r3, [pc, #252]	; (800e1f0 <LoRaMacMibGetRequestConfirm+0x218>)
+ 800e0f2:	3404      	adds	r4, #4
+ 800e0f4:	e7f4      	b.n	800e0e0 <LoRaMacMibGetRequestConfirm+0x108>
+ 800e0f6:	4b3f      	ldr	r3, [pc, #252]	; (800e1f4 <LoRaMacMibGetRequestConfirm+0x21c>)
+ 800e0f8:	3404      	adds	r4, #4
+ 800e0fa:	e7f1      	b.n	800e0e0 <LoRaMacMibGetRequestConfirm+0x108>
+ 800e0fc:	231b      	movs	r3, #27
+ 800e0fe:	e7e3      	b.n	800e0c8 <LoRaMacMibGetRequestConfirm+0xf0>
+ 800e100:	231a      	movs	r3, #26
+ 800e102:	e7e1      	b.n	800e0c8 <LoRaMacMibGetRequestConfirm+0xf0>
+ 800e104:	4b37      	ldr	r3, [pc, #220]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e106:	f893 3068 	ldrb.w	r3, [r3, #104]	; 0x68
+ 800e10a:	e7b9      	b.n	800e080 <LoRaMacMibGetRequestConfirm+0xa8>
+ 800e10c:	4b35      	ldr	r3, [pc, #212]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e10e:	6d5b      	ldr	r3, [r3, #84]	; 0x54
+ 800e110:	e7c8      	b.n	800e0a4 <LoRaMacMibGetRequestConfirm+0xcc>
+ 800e112:	4b34      	ldr	r3, [pc, #208]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e114:	6d9b      	ldr	r3, [r3, #88]	; 0x58
+ 800e116:	e7c5      	b.n	800e0a4 <LoRaMacMibGetRequestConfirm+0xcc>
+ 800e118:	4b32      	ldr	r3, [pc, #200]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e11a:	6ddb      	ldr	r3, [r3, #92]	; 0x5c
+ 800e11c:	e7c2      	b.n	800e0a4 <LoRaMacMibGetRequestConfirm+0xcc>
+ 800e11e:	4b31      	ldr	r3, [pc, #196]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e120:	6e1b      	ldr	r3, [r3, #96]	; 0x60
+ 800e122:	e7bf      	b.n	800e0a4 <LoRaMacMibGetRequestConfirm+0xcc>
+ 800e124:	4b2f      	ldr	r3, [pc, #188]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e126:	6e5b      	ldr	r3, [r3, #100]	; 0x64
+ 800e128:	e7bc      	b.n	800e0a4 <LoRaMacMibGetRequestConfirm+0xcc>
+ 800e12a:	4b2e      	ldr	r3, [pc, #184]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e12c:	f893 30dd 	ldrb.w	r3, [r3, #221]	; 0xdd
+ 800e130:	e7a6      	b.n	800e080 <LoRaMacMibGetRequestConfirm+0xa8>
+ 800e132:	4b2c      	ldr	r3, [pc, #176]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e134:	f893 3039 	ldrb.w	r3, [r3, #57]	; 0x39
+ 800e138:	e7a2      	b.n	800e080 <LoRaMacMibGetRequestConfirm+0xa8>
+ 800e13a:	4b2a      	ldr	r3, [pc, #168]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e13c:	f893 30dc 	ldrb.w	r3, [r3, #220]	; 0xdc
+ 800e140:	e79e      	b.n	800e080 <LoRaMacMibGetRequestConfirm+0xa8>
+ 800e142:	4b28      	ldr	r3, [pc, #160]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e144:	f893 3038 	ldrb.w	r3, [r3, #56]	; 0x38
+ 800e148:	e79a      	b.n	800e080 <LoRaMacMibGetRequestConfirm+0xa8>
+ 800e14a:	4b26      	ldr	r3, [pc, #152]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e14c:	6cdb      	ldr	r3, [r3, #76]	; 0x4c
+ 800e14e:	e7a9      	b.n	800e0a4 <LoRaMacMibGetRequestConfirm+0xcc>
+ 800e150:	4b24      	ldr	r3, [pc, #144]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e152:	f893 3050 	ldrb.w	r3, [r3, #80]	; 0x50
+ 800e156:	e793      	b.n	800e080 <LoRaMacMibGetRequestConfirm+0xa8>
+ 800e158:	4b22      	ldr	r3, [pc, #136]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e15a:	f8d3 3084 	ldr.w	r3, [r3, #132]	; 0x84
+ 800e15e:	6063      	str	r3, [r4, #4]
+ 800e160:	e793      	b.n	800e08a <LoRaMacMibGetRequestConfirm+0xb2>
+ 800e162:	4b20      	ldr	r3, [pc, #128]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e164:	e79e      	b.n	800e0a4 <LoRaMacMibGetRequestConfirm+0xcc>
+ 800e166:	4b24      	ldr	r3, [pc, #144]	; (800e1f8 <LoRaMacMibGetRequestConfirm+0x220>)
+ 800e168:	e79c      	b.n	800e0a4 <LoRaMacMibGetRequestConfirm+0xcc>
+ 800e16a:	4b1e      	ldr	r3, [pc, #120]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e16c:	f8d3 30cc 	ldr.w	r3, [r3, #204]	; 0xcc
+ 800e170:	e7f5      	b.n	800e15e <LoRaMacMibGetRequestConfirm+0x186>
+ 800e172:	4b1c      	ldr	r3, [pc, #112]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e174:	f8d3 3128 	ldr.w	r3, [r3, #296]	; 0x128
+ 800e178:	6063      	str	r3, [r4, #4]
+ 800e17a:	f001 fd0d 	bl	800fb98 <RegionGetVersion>
+ 800e17e:	60a0      	str	r0, [r4, #8]
+ 800e180:	e783      	b.n	800e08a <LoRaMacMibGetRequestConfirm+0xb2>
+ 800e182:	4b18      	ldr	r3, [pc, #96]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e184:	f8d3 3090 	ldr.w	r3, [r3, #144]	; 0x90
+ 800e188:	e78c      	b.n	800e0a4 <LoRaMacMibGetRequestConfirm+0xcc>
+ 800e18a:	4b16      	ldr	r3, [pc, #88]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e18c:	f8b3 3088 	ldrh.w	r3, [r3, #136]	; 0x88
+ 800e190:	80a3      	strh	r3, [r4, #4]
+ 800e192:	e77a      	b.n	800e08a <LoRaMacMibGetRequestConfirm+0xb2>
+ 800e194:	4b13      	ldr	r3, [pc, #76]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e196:	f8b3 308a 	ldrh.w	r3, [r3, #138]	; 0x8a
+ 800e19a:	e7f9      	b.n	800e190 <LoRaMacMibGetRequestConfirm+0x1b8>
+ 800e19c:	4b11      	ldr	r3, [pc, #68]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e19e:	f8b3 30d0 	ldrh.w	r3, [r3, #208]	; 0xd0
+ 800e1a2:	e7f5      	b.n	800e190 <LoRaMacMibGetRequestConfirm+0x1b8>
+ 800e1a4:	4b0f      	ldr	r3, [pc, #60]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e1a6:	f8b3 30d2 	ldrh.w	r3, [r3, #210]	; 0xd2
+ 800e1aa:	e7f1      	b.n	800e190 <LoRaMacMibGetRequestConfirm+0x1b8>
+ 800e1ac:	4b0d      	ldr	r3, [pc, #52]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e1ae:	f893 2048 	ldrb.w	r2, [r3, #72]	; 0x48
+ 800e1b2:	b10a      	cbz	r2, 800e1b8 <LoRaMacMibGetRequestConfirm+0x1e0>
+ 800e1b4:	2a06      	cmp	r2, #6
+ 800e1b6:	d113      	bne.n	800e1e0 <LoRaMacMibGetRequestConfirm+0x208>
+ 800e1b8:	f8b3 374c 	ldrh.w	r3, [r3, #1868]	; 0x74c
+ 800e1bc:	e7e8      	b.n	800e190 <LoRaMacMibGetRequestConfirm+0x1b8>
+ 800e1be:	4b09      	ldr	r3, [pc, #36]	; (800e1e4 <LoRaMacMibGetRequestConfirm+0x20c>)
+ 800e1c0:	f893 2048 	ldrb.w	r2, [r3, #72]	; 0x48
+ 800e1c4:	b10a      	cbz	r2, 800e1ca <LoRaMacMibGetRequestConfirm+0x1f2>
+ 800e1c6:	2a06      	cmp	r2, #6
+ 800e1c8:	d10a      	bne.n	800e1e0 <LoRaMacMibGetRequestConfirm+0x208>
+ 800e1ca:	f8d3 3750 	ldr.w	r3, [r3, #1872]	; 0x750
+ 800e1ce:	e769      	b.n	800e0a4 <LoRaMacMibGetRequestConfirm+0xcc>
+ 800e1d0:	4620      	mov	r0, r4
+ 800e1d2:	b004      	add	sp, #16
+ 800e1d4:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 800e1d8:	f000 bdce 	b.w	800ed78 <LoRaMacClassBMibGetRequestConfirm>
+ 800e1dc:	2003      	movs	r0, #3
+ 800e1de:	e74a      	b.n	800e076 <LoRaMacMibGetRequestConfirm+0x9e>
+ 800e1e0:	2018      	movs	r0, #24
+ 800e1e2:	e748      	b.n	800e076 <LoRaMacMibGetRequestConfirm+0x9e>
+ 800e1e4:	20001868 	.word	0x20001868
+ 800e1e8:	200018d4 	.word	0x200018d4
+ 800e1ec:	2000191c 	.word	0x2000191c
+ 800e1f0:	200018dc 	.word	0x200018dc
+ 800e1f4:	20001924 	.word	0x20001924
+ 800e1f8:	200010f8 	.word	0x200010f8
+
+0800e1fc <LoRaMacMibSetRequestConfirm>:
+ 800e1fc:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 800e1fe:	4604      	mov	r4, r0
+ 800e200:	2800      	cmp	r0, #0
+ 800e202:	d05e      	beq.n	800e2c2 <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e204:	4da0      	ldr	r5, [pc, #640]	; (800e488 <LoRaMacMibSetRequestConfirm+0x28c>)
+ 800e206:	f8d5 3340 	ldr.w	r3, [r5, #832]	; 0x340
+ 800e20a:	079a      	lsls	r2, r3, #30
+ 800e20c:	f100 825f 	bmi.w	800e6ce <LoRaMacMibSetRequestConfirm+0x4d2>
+ 800e210:	7802      	ldrb	r2, [r0, #0]
+ 800e212:	2a3f      	cmp	r2, #63	; 0x3f
+ 800e214:	f200 8256 	bhi.w	800e6c4 <LoRaMacMibSetRequestConfirm+0x4c8>
+ 800e218:	e8df f012 	tbh	[pc, r2, lsl #1]
+ 800e21c:	00460040 	.word	0x00460040
+ 800e220:	0056004e 	.word	0x0056004e
+ 800e224:	005f005a 	.word	0x005f005a
+ 800e228:	00700064 	.word	0x00700064
+ 800e22c:	007f007a 	.word	0x007f007a
+ 800e230:	00890084 	.word	0x00890084
+ 800e234:	0093008e 	.word	0x0093008e
+ 800e238:	009d0098 	.word	0x009d0098
+ 800e23c:	025400a7 	.word	0x025400a7
+ 800e240:	00cc00ac 	.word	0x00cc00ac
+ 800e244:	010600df 	.word	0x010600df
+ 800e248:	01190128 	.word	0x01190128
+ 800e24c:	013c012c 	.word	0x013c012c
+ 800e250:	01440140 	.word	0x01440140
+ 800e254:	014c0148 	.word	0x014c0148
+ 800e258:	01620150 	.word	0x01620150
+ 800e25c:	0178018a 	.word	0x0178018a
+ 800e260:	01a2019c 	.word	0x01a2019c
+ 800e264:	01ae01a9 	.word	0x01ae01a9
+ 800e268:	025401b3 	.word	0x025401b3
+ 800e26c:	02540218 	.word	0x02540218
+ 800e270:	02540254 	.word	0x02540254
+ 800e274:	02540254 	.word	0x02540254
+ 800e278:	02540254 	.word	0x02540254
+ 800e27c:	02540254 	.word	0x02540254
+ 800e280:	02540254 	.word	0x02540254
+ 800e284:	02540254 	.word	0x02540254
+ 800e288:	02540254 	.word	0x02540254
+ 800e28c:	02270254 	.word	0x02270254
+ 800e290:	0231022c 	.word	0x0231022c
+ 800e294:	023b0236 	.word	0x023b0236
+ 800e298:	024a0240 	.word	0x024a0240
+ 800e29c:	7900      	ldrb	r0, [r0, #4]
+ 800e29e:	b002      	add	sp, #8
+ 800e2a0:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
+ 800e2a4:	f7fe baae 	b.w	800c804 <SwitchClass>
+ 800e2a8:	7903      	ldrb	r3, [r0, #4]
+ 800e2aa:	2b02      	cmp	r3, #2
+ 800e2ac:	d009      	beq.n	800e2c2 <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e2ae:	4a77      	ldr	r2, [pc, #476]	; (800e48c <LoRaMacMibSetRequestConfirm+0x290>)
+ 800e2b0:	f882 312c 	strb.w	r3, [r2, #300]	; 0x12c
+ 800e2b4:	2000      	movs	r0, #0
+ 800e2b6:	e005      	b.n	800e2c4 <LoRaMacMibSetRequestConfirm+0xc8>
+ 800e2b8:	6840      	ldr	r0, [r0, #4]
+ 800e2ba:	f003 fa3d 	bl	8011738 <SecureElementSetDevEui>
+ 800e2be:	2800      	cmp	r0, #0
+ 800e2c0:	d0f8      	beq.n	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e2c2:	2003      	movs	r0, #3
+ 800e2c4:	b002      	add	sp, #8
+ 800e2c6:	bd70      	pop	{r4, r5, r6, pc}
+ 800e2c8:	6840      	ldr	r0, [r0, #4]
+ 800e2ca:	f003 fa79 	bl	80117c0 <SecureElementSetJoinEui>
+ 800e2ce:	e7f6      	b.n	800e2be <LoRaMacMibSetRequestConfirm+0xc2>
+ 800e2d0:	4b6e      	ldr	r3, [pc, #440]	; (800e48c <LoRaMacMibSetRequestConfirm+0x290>)
+ 800e2d2:	7902      	ldrb	r2, [r0, #4]
+ 800e2d4:	f883 211a 	strb.w	r2, [r3, #282]	; 0x11a
+ 800e2d8:	e7ec      	b.n	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e2da:	4b6c      	ldr	r3, [pc, #432]	; (800e48c <LoRaMacMibSetRequestConfirm+0x290>)
+ 800e2dc:	6842      	ldr	r2, [r0, #4]
+ 800e2de:	f8c3 20e0 	str.w	r2, [r3, #224]	; 0xe0
+ 800e2e2:	e7e7      	b.n	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e2e4:	4d69      	ldr	r5, [pc, #420]	; (800e48c <LoRaMacMibSetRequestConfirm+0x290>)
+ 800e2e6:	6841      	ldr	r1, [r0, #4]
+ 800e2e8:	f895 012c 	ldrb.w	r0, [r5, #300]	; 0x12c
+ 800e2ec:	f003 fa86 	bl	80117fc <SecureElementSetDevAddr>
+ 800e2f0:	2800      	cmp	r0, #0
+ 800e2f2:	d1e6      	bne.n	800e2c2 <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e2f4:	6863      	ldr	r3, [r4, #4]
+ 800e2f6:	f8c5 30e4 	str.w	r3, [r5, #228]	; 0xe4
+ 800e2fa:	e7e3      	b.n	800e2c4 <LoRaMacMibSetRequestConfirm+0xc8>
+ 800e2fc:	6841      	ldr	r1, [r0, #4]
+ 800e2fe:	2900      	cmp	r1, #0
+ 800e300:	d0df      	beq.n	800e2c2 <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e302:	2000      	movs	r0, #0
+ 800e304:	f001 f9a8 	bl	800f658 <LoRaMacCryptoSetKey>
+ 800e308:	2800      	cmp	r0, #0
+ 800e30a:	d0d3      	beq.n	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e30c:	2011      	movs	r0, #17
+ 800e30e:	e7d9      	b.n	800e2c4 <LoRaMacMibSetRequestConfirm+0xc8>
+ 800e310:	6841      	ldr	r1, [r0, #4]
+ 800e312:	2900      	cmp	r1, #0
+ 800e314:	d0d5      	beq.n	800e2c2 <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e316:	2001      	movs	r0, #1
+ 800e318:	e7f4      	b.n	800e304 <LoRaMacMibSetRequestConfirm+0x108>
+ 800e31a:	6841      	ldr	r1, [r0, #4]
+ 800e31c:	2900      	cmp	r1, #0
+ 800e31e:	d0d0      	beq.n	800e2c2 <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e320:	2008      	movs	r0, #8
+ 800e322:	e7ef      	b.n	800e304 <LoRaMacMibSetRequestConfirm+0x108>
+ 800e324:	6841      	ldr	r1, [r0, #4]
+ 800e326:	2900      	cmp	r1, #0
+ 800e328:	d0cb      	beq.n	800e2c2 <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e32a:	2009      	movs	r0, #9
+ 800e32c:	e7ea      	b.n	800e304 <LoRaMacMibSetRequestConfirm+0x108>
+ 800e32e:	6841      	ldr	r1, [r0, #4]
+ 800e330:	2900      	cmp	r1, #0
+ 800e332:	d0c6      	beq.n	800e2c2 <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e334:	200c      	movs	r0, #12
+ 800e336:	e7e5      	b.n	800e304 <LoRaMacMibSetRequestConfirm+0x108>
+ 800e338:	6841      	ldr	r1, [r0, #4]
+ 800e33a:	2900      	cmp	r1, #0
+ 800e33c:	d0c1      	beq.n	800e2c2 <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e33e:	200d      	movs	r0, #13
+ 800e340:	e7e0      	b.n	800e304 <LoRaMacMibSetRequestConfirm+0x108>
+ 800e342:	6841      	ldr	r1, [r0, #4]
+ 800e344:	2900      	cmp	r1, #0
+ 800e346:	d0bc      	beq.n	800e2c2 <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e348:	200e      	movs	r0, #14
+ 800e34a:	e7db      	b.n	800e304 <LoRaMacMibSetRequestConfirm+0x108>
+ 800e34c:	6841      	ldr	r1, [r0, #4]
+ 800e34e:	2900      	cmp	r1, #0
+ 800e350:	d0b7      	beq.n	800e2c2 <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e352:	200f      	movs	r0, #15
+ 800e354:	e7d6      	b.n	800e304 <LoRaMacMibSetRequestConfirm+0x108>
+ 800e356:	4c4e      	ldr	r4, [pc, #312]	; (800e490 <LoRaMacMibSetRequestConfirm+0x294>)
+ 800e358:	4b4c      	ldr	r3, [pc, #304]	; (800e48c <LoRaMacMibSetRequestConfirm+0x290>)
+ 800e35a:	7900      	ldrb	r0, [r0, #4]
+ 800e35c:	f883 0119 	strb.w	r0, [r3, #281]	; 0x119
+ 800e360:	6da3      	ldr	r3, [r4, #88]	; 0x58
+ 800e362:	4798      	blx	r3
+ 800e364:	6ae3      	ldr	r3, [r4, #44]	; 0x2c
+ 800e366:	4798      	blx	r3
+ 800e368:	e7a4      	b.n	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e36a:	4b48      	ldr	r3, [pc, #288]	; (800e48c <LoRaMacMibSetRequestConfirm+0x290>)
+ 800e36c:	7902      	ldrb	r2, [r0, #4]
+ 800e36e:	f883 208c 	strb.w	r2, [r3, #140]	; 0x8c
+ 800e372:	e79f      	b.n	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e374:	4d45      	ldr	r5, [pc, #276]	; (800e48c <LoRaMacMibSetRequestConfirm+0x290>)
+ 800e376:	7a03      	ldrb	r3, [r0, #8]
+ 800e378:	f88d 3000 	strb.w	r3, [sp]
+ 800e37c:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800e380:	f895 307d 	ldrb.w	r3, [r5, #125]	; 0x7d
+ 800e384:	f88d 3001 	strb.w	r3, [sp, #1]
+ 800e388:	2207      	movs	r2, #7
+ 800e38a:	4669      	mov	r1, sp
+ 800e38c:	f001 fb83 	bl	800fa96 <RegionVerify>
+ 800e390:	2800      	cmp	r0, #0
+ 800e392:	d096      	beq.n	800e2c2 <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e394:	6863      	ldr	r3, [r4, #4]
+ 800e396:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800e39a:	9300      	str	r3, [sp, #0]
+ 800e39c:	2200      	movs	r2, #0
+ 800e39e:	4669      	mov	r1, sp
+ 800e3a0:	f001 fb79 	bl	800fa96 <RegionVerify>
+ 800e3a4:	2800      	cmp	r0, #0
+ 800e3a6:	d08c      	beq.n	800e2c2 <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e3a8:	356c      	adds	r5, #108	; 0x6c
+ 800e3aa:	e9d4 0101 	ldrd	r0, r1, [r4, #4]
+ 800e3ae:	e885 0003 	stmia.w	r5, {r0, r1}
+ 800e3b2:	e77f      	b.n	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e3b4:	4d35      	ldr	r5, [pc, #212]	; (800e48c <LoRaMacMibSetRequestConfirm+0x290>)
+ 800e3b6:	7a03      	ldrb	r3, [r0, #8]
+ 800e3b8:	f88d 3000 	strb.w	r3, [sp]
+ 800e3bc:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800e3c0:	f895 307d 	ldrb.w	r3, [r5, #125]	; 0x7d
+ 800e3c4:	f88d 3001 	strb.w	r3, [sp, #1]
+ 800e3c8:	2207      	movs	r2, #7
+ 800e3ca:	4669      	mov	r1, sp
+ 800e3cc:	f001 fb63 	bl	800fa96 <RegionVerify>
+ 800e3d0:	2800      	cmp	r0, #0
+ 800e3d2:	f43f af76 	beq.w	800e2c2 <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e3d6:	35b4      	adds	r5, #180	; 0xb4
+ 800e3d8:	e7e7      	b.n	800e3aa <LoRaMacMibSetRequestConfirm+0x1ae>
+ 800e3da:	4d2c      	ldr	r5, [pc, #176]	; (800e48c <LoRaMacMibSetRequestConfirm+0x290>)
+ 800e3dc:	7a03      	ldrb	r3, [r0, #8]
+ 800e3de:	f88d 3000 	strb.w	r3, [sp]
+ 800e3e2:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800e3e6:	f895 307d 	ldrb.w	r3, [r5, #125]	; 0x7d
+ 800e3ea:	f88d 3001 	strb.w	r3, [sp, #1]
+ 800e3ee:	2207      	movs	r2, #7
+ 800e3f0:	4669      	mov	r1, sp
+ 800e3f2:	f001 fb50 	bl	800fa96 <RegionVerify>
+ 800e3f6:	2800      	cmp	r0, #0
+ 800e3f8:	f43f af63 	beq.w	800e2c2 <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e3fc:	e9d4 0101 	ldrd	r0, r1, [r4, #4]
+ 800e400:	f105 0374 	add.w	r3, r5, #116	; 0x74
+ 800e404:	e883 0003 	stmia.w	r3, {r0, r1}
+ 800e408:	f895 3118 	ldrb.w	r3, [r5, #280]	; 0x118
+ 800e40c:	2b02      	cmp	r3, #2
+ 800e40e:	f47f af51 	bne.w	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e412:	f895 312c 	ldrb.w	r3, [r5, #300]	; 0x12c
+ 800e416:	2b00      	cmp	r3, #0
+ 800e418:	f43f af4c 	beq.w	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e41c:	4b1c      	ldr	r3, [pc, #112]	; (800e490 <LoRaMacMibSetRequestConfirm+0x294>)
+ 800e41e:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800e420:	4798      	blx	r3
+ 800e422:	f7fe f9bf 	bl	800c7a4 <OpenContinuousRxCWindow>
+ 800e426:	e745      	b.n	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e428:	4d18      	ldr	r5, [pc, #96]	; (800e48c <LoRaMacMibSetRequestConfirm+0x290>)
+ 800e42a:	7a03      	ldrb	r3, [r0, #8]
+ 800e42c:	f88d 3000 	strb.w	r3, [sp]
+ 800e430:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800e434:	f895 307d 	ldrb.w	r3, [r5, #125]	; 0x7d
+ 800e438:	f88d 3001 	strb.w	r3, [sp, #1]
+ 800e43c:	2207      	movs	r2, #7
+ 800e43e:	4669      	mov	r1, sp
+ 800e440:	f001 fb29 	bl	800fa96 <RegionVerify>
+ 800e444:	2800      	cmp	r0, #0
+ 800e446:	f43f af3c 	beq.w	800e2c2 <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e44a:	35bc      	adds	r5, #188	; 0xbc
+ 800e44c:	e7ad      	b.n	800e3aa <LoRaMacMibSetRequestConfirm+0x1ae>
+ 800e44e:	6843      	ldr	r3, [r0, #4]
+ 800e450:	9300      	str	r3, [sp, #0]
+ 800e452:	2301      	movs	r3, #1
+ 800e454:	f88d 3004 	strb.w	r3, [sp, #4]
+ 800e458:	4b0c      	ldr	r3, [pc, #48]	; (800e48c <LoRaMacMibSetRequestConfirm+0x290>)
+ 800e45a:	4669      	mov	r1, sp
+ 800e45c:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 800e460:	f001 fb26 	bl	800fab0 <RegionChanMaskSet>
+ 800e464:	2800      	cmp	r0, #0
+ 800e466:	f47f af25 	bne.w	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e46a:	e72a      	b.n	800e2c2 <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e46c:	6843      	ldr	r3, [r0, #4]
+ 800e46e:	9300      	str	r3, [sp, #0]
+ 800e470:	2300      	movs	r3, #0
+ 800e472:	e7ef      	b.n	800e454 <LoRaMacMibSetRequestConfirm+0x258>
+ 800e474:	7903      	ldrb	r3, [r0, #4]
+ 800e476:	1e5a      	subs	r2, r3, #1
+ 800e478:	2a0e      	cmp	r2, #14
+ 800e47a:	f63f af22 	bhi.w	800e2c2 <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e47e:	4a03      	ldr	r2, [pc, #12]	; (800e48c <LoRaMacMibSetRequestConfirm+0x290>)
+ 800e480:	f882 3068 	strb.w	r3, [r2, #104]	; 0x68
+ 800e484:	e716      	b.n	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e486:	bf00      	nop
+ 800e488:	20001fdc 	.word	0x20001fdc
+ 800e48c:	20001868 	.word	0x20001868
+ 800e490:	080159b0 	.word	0x080159b0
+ 800e494:	4b90      	ldr	r3, [pc, #576]	; (800e6d8 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e496:	6842      	ldr	r2, [r0, #4]
+ 800e498:	655a      	str	r2, [r3, #84]	; 0x54
+ 800e49a:	e70b      	b.n	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e49c:	4b8e      	ldr	r3, [pc, #568]	; (800e6d8 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e49e:	6842      	ldr	r2, [r0, #4]
+ 800e4a0:	659a      	str	r2, [r3, #88]	; 0x58
+ 800e4a2:	e707      	b.n	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e4a4:	4b8c      	ldr	r3, [pc, #560]	; (800e6d8 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e4a6:	6842      	ldr	r2, [r0, #4]
+ 800e4a8:	65da      	str	r2, [r3, #92]	; 0x5c
+ 800e4aa:	e703      	b.n	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e4ac:	4b8a      	ldr	r3, [pc, #552]	; (800e6d8 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e4ae:	6842      	ldr	r2, [r0, #4]
+ 800e4b0:	661a      	str	r2, [r3, #96]	; 0x60
+ 800e4b2:	e6ff      	b.n	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e4b4:	4b88      	ldr	r3, [pc, #544]	; (800e6d8 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e4b6:	6842      	ldr	r2, [r0, #4]
+ 800e4b8:	665a      	str	r2, [r3, #100]	; 0x64
+ 800e4ba:	e6fb      	b.n	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e4bc:	4c86      	ldr	r4, [pc, #536]	; (800e6d8 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e4be:	7903      	ldrb	r3, [r0, #4]
+ 800e4c0:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800e4c4:	f88d 3000 	strb.w	r3, [sp]
+ 800e4c8:	2206      	movs	r2, #6
+ 800e4ca:	4669      	mov	r1, sp
+ 800e4cc:	f001 fae3 	bl	800fa96 <RegionVerify>
+ 800e4d0:	2800      	cmp	r0, #0
+ 800e4d2:	f43f aef6 	beq.w	800e2c2 <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e4d6:	f89d 3000 	ldrb.w	r3, [sp]
+ 800e4da:	f884 30dd 	strb.w	r3, [r4, #221]	; 0xdd
+ 800e4de:	e6e9      	b.n	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e4e0:	4c7d      	ldr	r4, [pc, #500]	; (800e6d8 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e4e2:	7903      	ldrb	r3, [r0, #4]
+ 800e4e4:	f88d 3000 	strb.w	r3, [sp]
+ 800e4e8:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800e4ec:	f894 307c 	ldrb.w	r3, [r4, #124]	; 0x7c
+ 800e4f0:	f88d 3002 	strb.w	r3, [sp, #2]
+ 800e4f4:	2205      	movs	r2, #5
+ 800e4f6:	4669      	mov	r1, sp
+ 800e4f8:	f001 facd 	bl	800fa96 <RegionVerify>
+ 800e4fc:	2800      	cmp	r0, #0
+ 800e4fe:	f43f aee0 	beq.w	800e2c2 <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e502:	f89d 3000 	ldrb.w	r3, [sp]
+ 800e506:	f884 3039 	strb.w	r3, [r4, #57]	; 0x39
+ 800e50a:	e6d3      	b.n	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e50c:	4c72      	ldr	r4, [pc, #456]	; (800e6d8 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e50e:	7903      	ldrb	r3, [r0, #4]
+ 800e510:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800e514:	f88d 3000 	strb.w	r3, [sp]
+ 800e518:	220a      	movs	r2, #10
+ 800e51a:	4669      	mov	r1, sp
+ 800e51c:	f001 fabb 	bl	800fa96 <RegionVerify>
+ 800e520:	2800      	cmp	r0, #0
+ 800e522:	f43f aece 	beq.w	800e2c2 <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e526:	f89d 3000 	ldrb.w	r3, [sp]
+ 800e52a:	f884 30dc 	strb.w	r3, [r4, #220]	; 0xdc
+ 800e52e:	e6c1      	b.n	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e530:	4c69      	ldr	r4, [pc, #420]	; (800e6d8 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e532:	7903      	ldrb	r3, [r0, #4]
+ 800e534:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
+ 800e538:	f88d 3000 	strb.w	r3, [sp]
+ 800e53c:	2209      	movs	r2, #9
+ 800e53e:	4669      	mov	r1, sp
+ 800e540:	f001 faa9 	bl	800fa96 <RegionVerify>
+ 800e544:	2800      	cmp	r0, #0
+ 800e546:	f43f aebc 	beq.w	800e2c2 <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e54a:	f89d 3000 	ldrb.w	r3, [sp]
+ 800e54e:	f884 3038 	strb.w	r3, [r4, #56]	; 0x38
+ 800e552:	e6af      	b.n	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e554:	4b60      	ldr	r3, [pc, #384]	; (800e6d8 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e556:	6842      	ldr	r2, [r0, #4]
+ 800e558:	f8c3 2094 	str.w	r2, [r3, #148]	; 0x94
+ 800e55c:	64da      	str	r2, [r3, #76]	; 0x4c
+ 800e55e:	e6a9      	b.n	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e560:	4b5d      	ldr	r3, [pc, #372]	; (800e6d8 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e562:	7902      	ldrb	r2, [r0, #4]
+ 800e564:	f883 2098 	strb.w	r2, [r3, #152]	; 0x98
+ 800e568:	f883 2050 	strb.w	r2, [r3, #80]	; 0x50
+ 800e56c:	e6a2      	b.n	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e56e:	4b5a      	ldr	r3, [pc, #360]	; (800e6d8 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e570:	6842      	ldr	r2, [r0, #4]
+ 800e572:	f8c3 2084 	str.w	r2, [r3, #132]	; 0x84
+ 800e576:	e69d      	b.n	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e578:	4b57      	ldr	r3, [pc, #348]	; (800e6d8 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e57a:	6842      	ldr	r2, [r0, #4]
+ 800e57c:	f8c3 20cc 	str.w	r2, [r3, #204]	; 0xcc
+ 800e580:	e698      	b.n	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e582:	2b01      	cmp	r3, #1
+ 800e584:	f040 80a3 	bne.w	800e6ce <LoRaMacMibSetRequestConfirm+0x4d2>
+ 800e588:	4c54      	ldr	r4, [pc, #336]	; (800e6dc <LoRaMacMibSetRequestConfirm+0x4e0>)
+ 800e58a:	2124      	movs	r1, #36	; 0x24
+ 800e58c:	4620      	mov	r0, r4
+ 800e58e:	f003 fa13 	bl	80119b8 <Crc32>
+ 800e592:	6a63      	ldr	r3, [r4, #36]	; 0x24
+ 800e594:	4298      	cmp	r0, r3
+ 800e596:	d001      	beq.n	800e59c <LoRaMacMibSetRequestConfirm+0x3a0>
+ 800e598:	2017      	movs	r0, #23
+ 800e59a:	e693      	b.n	800e2c4 <LoRaMacMibSetRequestConfirm+0xc8>
+ 800e59c:	211c      	movs	r1, #28
+ 800e59e:	f104 0028 	add.w	r0, r4, #40	; 0x28
+ 800e5a2:	f003 fa09 	bl	80119b8 <Crc32>
+ 800e5a6:	6c63      	ldr	r3, [r4, #68]	; 0x44
+ 800e5a8:	4298      	cmp	r0, r3
+ 800e5aa:	d1f5      	bne.n	800e598 <LoRaMacMibSetRequestConfirm+0x39c>
+ 800e5ac:	21fc      	movs	r1, #252	; 0xfc
+ 800e5ae:	f104 0048 	add.w	r0, r4, #72	; 0x48
+ 800e5b2:	f003 fa01 	bl	80119b8 <Crc32>
+ 800e5b6:	f8d4 3144 	ldr.w	r3, [r4, #324]	; 0x144
+ 800e5ba:	4298      	cmp	r0, r3
+ 800e5bc:	d1ec      	bne.n	800e598 <LoRaMacMibSetRequestConfirm+0x39c>
+ 800e5be:	21d4      	movs	r1, #212	; 0xd4
+ 800e5c0:	f504 70a4 	add.w	r0, r4, #328	; 0x148
+ 800e5c4:	f003 f9f8 	bl	80119b8 <Crc32>
+ 800e5c8:	f8d4 321c 	ldr.w	r3, [r4, #540]	; 0x21c
+ 800e5cc:	4298      	cmp	r0, r3
+ 800e5ce:	d1e3      	bne.n	800e598 <LoRaMacMibSetRequestConfirm+0x39c>
+ 800e5d0:	2190      	movs	r1, #144	; 0x90
+ 800e5d2:	f504 7008 	add.w	r0, r4, #544	; 0x220
+ 800e5d6:	f003 f9ef 	bl	80119b8 <Crc32>
+ 800e5da:	f8d4 32b0 	ldr.w	r3, [r4, #688]	; 0x2b0
+ 800e5de:	4298      	cmp	r0, r3
+ 800e5e0:	d1da      	bne.n	800e598 <LoRaMacMibSetRequestConfirm+0x39c>
+ 800e5e2:	f44f 6194 	mov.w	r1, #1184	; 0x4a0
+ 800e5e6:	f504 702d 	add.w	r0, r4, #692	; 0x2b4
+ 800e5ea:	f003 f9e5 	bl	80119b8 <Crc32>
+ 800e5ee:	f8d4 3754 	ldr.w	r3, [r4, #1876]	; 0x754
+ 800e5f2:	4298      	cmp	r0, r3
+ 800e5f4:	d1d0      	bne.n	800e598 <LoRaMacMibSetRequestConfirm+0x39c>
+ 800e5f6:	2114      	movs	r1, #20
+ 800e5f8:	f504 60eb 	add.w	r0, r4, #1880	; 0x758
+ 800e5fc:	f003 f9dc 	bl	80119b8 <Crc32>
+ 800e600:	f8d4 376c 	ldr.w	r3, [r4, #1900]	; 0x76c
+ 800e604:	4298      	cmp	r0, r3
+ 800e606:	d1c7      	bne.n	800e598 <LoRaMacMibSetRequestConfirm+0x39c>
+ 800e608:	4e33      	ldr	r6, [pc, #204]	; (800e6d8 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e60a:	4621      	mov	r1, r4
+ 800e60c:	4630      	mov	r0, r6
+ 800e60e:	f44f 62ee 	mov.w	r2, #1904	; 0x770
+ 800e612:	f003 f9bb 	bl	801198c <memcpy1>
+ 800e616:	4620      	mov	r0, r4
+ 800e618:	f44f 62ee 	mov.w	r2, #1904	; 0x770
+ 800e61c:	2100      	movs	r1, #0
+ 800e61e:	f003 f9c9 	bl	80119b4 <memset1>
+ 800e622:	f895 3411 	ldrb.w	r3, [r5, #1041]	; 0x411
+ 800e626:	f885 33e0 	strb.w	r3, [r5, #992]	; 0x3e0
+ 800e62a:	6f73      	ldr	r3, [r6, #116]	; 0x74
+ 800e62c:	f8c5 33e4 	str.w	r3, [r5, #996]	; 0x3e4
+ 800e630:	f896 307d 	ldrb.w	r3, [r6, #125]	; 0x7d
+ 800e634:	f885 33f0 	strb.w	r3, [r5, #1008]	; 0x3f0
+ 800e638:	f240 2301 	movw	r3, #513	; 0x201
+ 800e63c:	f8a5 33f2 	strh.w	r3, [r5, #1010]	; 0x3f2
+ 800e640:	4b27      	ldr	r3, [pc, #156]	; (800e6e0 <LoRaMacMibSetRequestConfirm+0x4e4>)
+ 800e642:	f896 0119 	ldrb.w	r0, [r6, #281]	; 0x119
+ 800e646:	6d9b      	ldr	r3, [r3, #88]	; 0x58
+ 800e648:	4798      	blx	r3
+ 800e64a:	e633      	b.n	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e64c:	7983      	ldrb	r3, [r0, #6]
+ 800e64e:	2b01      	cmp	r3, #1
+ 800e650:	f63f ae37 	bhi.w	800e2c2 <LoRaMacMibSetRequestConfirm+0xc6>
+ 800e654:	4b20      	ldr	r3, [pc, #128]	; (800e6d8 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e656:	6842      	ldr	r2, [r0, #4]
+ 800e658:	6840      	ldr	r0, [r0, #4]
+ 800e65a:	f8c3 2128 	str.w	r2, [r3, #296]	; 0x128
+ 800e65e:	f000 fe89 	bl	800f374 <LoRaMacCryptoSetLrWanVersion>
+ 800e662:	2800      	cmp	r0, #0
+ 800e664:	f43f ae2e 	beq.w	800e2c4 <LoRaMacMibSetRequestConfirm+0xc8>
+ 800e668:	e650      	b.n	800e30c <LoRaMacMibSetRequestConfirm+0x110>
+ 800e66a:	4b1b      	ldr	r3, [pc, #108]	; (800e6d8 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e66c:	6842      	ldr	r2, [r0, #4]
+ 800e66e:	f8c3 2090 	str.w	r2, [r3, #144]	; 0x90
+ 800e672:	e61f      	b.n	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e674:	4b18      	ldr	r3, [pc, #96]	; (800e6d8 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e676:	8882      	ldrh	r2, [r0, #4]
+ 800e678:	f8a3 2088 	strh.w	r2, [r3, #136]	; 0x88
+ 800e67c:	e61a      	b.n	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e67e:	4b16      	ldr	r3, [pc, #88]	; (800e6d8 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e680:	8882      	ldrh	r2, [r0, #4]
+ 800e682:	f8a3 208a 	strh.w	r2, [r3, #138]	; 0x8a
+ 800e686:	e615      	b.n	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e688:	4b13      	ldr	r3, [pc, #76]	; (800e6d8 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e68a:	8882      	ldrh	r2, [r0, #4]
+ 800e68c:	f8a3 20d0 	strh.w	r2, [r3, #208]	; 0xd0
+ 800e690:	e610      	b.n	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e692:	4b11      	ldr	r3, [pc, #68]	; (800e6d8 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e694:	8882      	ldrh	r2, [r0, #4]
+ 800e696:	f8a3 20d2 	strh.w	r2, [r3, #210]	; 0xd2
+ 800e69a:	e60b      	b.n	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e69c:	4b0e      	ldr	r3, [pc, #56]	; (800e6d8 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e69e:	f893 2048 	ldrb.w	r2, [r3, #72]	; 0x48
+ 800e6a2:	b10a      	cbz	r2, 800e6a8 <LoRaMacMibSetRequestConfirm+0x4ac>
+ 800e6a4:	2a06      	cmp	r2, #6
+ 800e6a6:	d114      	bne.n	800e6d2 <LoRaMacMibSetRequestConfirm+0x4d6>
+ 800e6a8:	88a2      	ldrh	r2, [r4, #4]
+ 800e6aa:	f8a3 274c 	strh.w	r2, [r3, #1868]	; 0x74c
+ 800e6ae:	e601      	b.n	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e6b0:	4b09      	ldr	r3, [pc, #36]	; (800e6d8 <LoRaMacMibSetRequestConfirm+0x4dc>)
+ 800e6b2:	f893 2048 	ldrb.w	r2, [r3, #72]	; 0x48
+ 800e6b6:	b10a      	cbz	r2, 800e6bc <LoRaMacMibSetRequestConfirm+0x4c0>
+ 800e6b8:	2a06      	cmp	r2, #6
+ 800e6ba:	d10a      	bne.n	800e6d2 <LoRaMacMibSetRequestConfirm+0x4d6>
+ 800e6bc:	6862      	ldr	r2, [r4, #4]
+ 800e6be:	f8c3 2750 	str.w	r2, [r3, #1872]	; 0x750
+ 800e6c2:	e5f7      	b.n	800e2b4 <LoRaMacMibSetRequestConfirm+0xb8>
+ 800e6c4:	b002      	add	sp, #8
+ 800e6c6:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
+ 800e6ca:	f000 bb57 	b.w	800ed7c <LoRaMacMibClassBSetRequestConfirm>
+ 800e6ce:	2001      	movs	r0, #1
+ 800e6d0:	e5f8      	b.n	800e2c4 <LoRaMacMibSetRequestConfirm+0xc8>
+ 800e6d2:	2018      	movs	r0, #24
+ 800e6d4:	e5f6      	b.n	800e2c4 <LoRaMacMibSetRequestConfirm+0xc8>
+ 800e6d6:	bf00      	nop
+ 800e6d8:	20001868 	.word	0x20001868
+ 800e6dc:	200010f8 	.word	0x200010f8
+ 800e6e0:	080159b0 	.word	0x080159b0
+
+0800e6e4 <LoRaMacMlmeRequest>:
+ 800e6e4:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800e6e8:	b086      	sub	sp, #24
+ 800e6ea:	2300      	movs	r3, #0
+ 800e6ec:	f8ad 3000 	strh.w	r3, [sp]
+ 800e6f0:	4606      	mov	r6, r0
+ 800e6f2:	2800      	cmp	r0, #0
+ 800e6f4:	f000 80e2 	beq.w	800e8bc <LoRaMacMlmeRequest+0x1d8>
+ 800e6f8:	f7fe fd7e 	bl	800d1f8 <LoRaMacIsBusy>
+ 800e6fc:	b120      	cbz	r0, 800e708 <LoRaMacMlmeRequest+0x24>
+ 800e6fe:	2401      	movs	r4, #1
+ 800e700:	4620      	mov	r0, r4
+ 800e702:	b006      	add	sp, #24
+ 800e704:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800e708:	f000 fd2c 	bl	800f164 <LoRaMacConfirmQueueIsFull>
+ 800e70c:	2800      	cmp	r0, #0
+ 800e70e:	d1f6      	bne.n	800e6fe <LoRaMacMlmeRequest+0x1a>
+ 800e710:	f000 fd22 	bl	800f158 <LoRaMacConfirmQueueGetCnt>
+ 800e714:	4601      	mov	r1, r0
+ 800e716:	b918      	cbnz	r0, 800e720 <LoRaMacMlmeRequest+0x3c>
+ 800e718:	4869      	ldr	r0, [pc, #420]	; (800e8c0 <LoRaMacMlmeRequest+0x1dc>)
+ 800e71a:	2214      	movs	r2, #20
+ 800e71c:	f003 f94a 	bl	80119b4 <memset1>
+ 800e720:	4d68      	ldr	r5, [pc, #416]	; (800e8c4 <LoRaMacMlmeRequest+0x1e0>)
+ 800e722:	f895 3481 	ldrb.w	r3, [r5, #1153]	; 0x481
+ 800e726:	2201      	movs	r2, #1
+ 800e728:	f043 0304 	orr.w	r3, r3, #4
+ 800e72c:	f885 2449 	strb.w	r2, [r5, #1097]	; 0x449
+ 800e730:	f885 3481 	strb.w	r3, [r5, #1153]	; 0x481
+ 800e734:	7833      	ldrb	r3, [r6, #0]
+ 800e736:	f88d 3004 	strb.w	r3, [sp, #4]
+ 800e73a:	2100      	movs	r1, #0
+ 800e73c:	3b01      	subs	r3, #1
+ 800e73e:	f88d 2005 	strb.w	r2, [sp, #5]
+ 800e742:	f88d 1007 	strb.w	r1, [sp, #7]
+ 800e746:	2b0d      	cmp	r3, #13
+ 800e748:	f200 80b0 	bhi.w	800e8ac <LoRaMacMlmeRequest+0x1c8>
+ 800e74c:	e8df f003 	tbb	[pc, r3]
+ 800e750:	aeaeae07 	.word	0xaeaeae07
+ 800e754:	ae7d5a52 	.word	0xae7d5a52
+ 800e758:	a2ae85ae 	.word	0xa2ae85ae
+ 800e75c:	9e8f      	.short	0x9e8f
+ 800e75e:	f8d5 4340 	ldr.w	r4, [r5, #832]	; 0x340
+ 800e762:	f014 0420 	ands.w	r4, r4, #32
+ 800e766:	d1ca      	bne.n	800e6fe <LoRaMacMlmeRequest+0x1a>
+ 800e768:	f8df 815c 	ldr.w	r8, [pc, #348]	; 800e8c8 <LoRaMacMlmeRequest+0x1e4>
+ 800e76c:	4f57      	ldr	r7, [pc, #348]	; (800e8cc <LoRaMacMlmeRequest+0x1e8>)
+ 800e76e:	f7fe f8b7 	bl	800c8e0 <ResetMacParameters.constprop.0>
+ 800e772:	4622      	mov	r2, r4
+ 800e774:	f996 1005 	ldrsb.w	r1, [r6, #5]
+ 800e778:	f898 0048 	ldrb.w	r0, [r8, #72]	; 0x48
+ 800e77c:	f001 f9e5 	bl	800fb4a <RegionAlternateDr>
+ 800e780:	f888 0039 	strb.w	r0, [r8, #57]	; 0x39
+ 800e784:	79b3      	ldrb	r3, [r6, #6]
+ 800e786:	f888 3038 	strb.w	r3, [r8, #56]	; 0x38
+ 800e78a:	4620      	mov	r0, r4
+ 800e78c:	2307      	movs	r3, #7
+ 800e78e:	f88d 3005 	strb.w	r3, [sp, #5]
+ 800e792:	f7fe f837 	bl	800c804 <SwitchClass>
+ 800e796:	23ff      	movs	r3, #255	; 0xff
+ 800e798:	f507 7086 	add.w	r0, r7, #268	; 0x10c
+ 800e79c:	f8a5 310c 	strh.w	r3, [r5, #268]	; 0x10c
+ 800e7a0:	f885 4104 	strb.w	r4, [r5, #260]	; 0x104
+ 800e7a4:	f8c5 7108 	str.w	r7, [r5, #264]	; 0x108
+ 800e7a8:	f003 f81a 	bl	80117e0 <SecureElementGetJoinEui>
+ 800e7ac:	f507 708a 	add.w	r0, r7, #276	; 0x114
+ 800e7b0:	f002 ffd0 	bl	8011754 <SecureElementGetDevEui>
+ 800e7b4:	4620      	mov	r0, r4
+ 800e7b6:	f7fd fe7f 	bl	800c4b8 <ScheduleTx>
+ 800e7ba:	4604      	mov	r4, r0
+ 800e7bc:	b140      	cbz	r0, 800e7d0 <LoRaMacMlmeRequest+0xec>
+ 800e7be:	f996 1005 	ldrsb.w	r1, [r6, #5]
+ 800e7c2:	f898 0048 	ldrb.w	r0, [r8, #72]	; 0x48
+ 800e7c6:	2201      	movs	r2, #1
+ 800e7c8:	f001 f9bf 	bl	800fb4a <RegionAlternateDr>
+ 800e7cc:	f888 0039 	strb.w	r0, [r8, #57]	; 0x39
+ 800e7d0:	f8d5 3484 	ldr.w	r3, [r5, #1156]	; 0x484
+ 800e7d4:	6133      	str	r3, [r6, #16]
+ 800e7d6:	2c00      	cmp	r4, #0
+ 800e7d8:	d06c      	beq.n	800e8b4 <LoRaMacMlmeRequest+0x1d0>
+ 800e7da:	f000 fcbd 	bl	800f158 <LoRaMacConfirmQueueGetCnt>
+ 800e7de:	2800      	cmp	r0, #0
+ 800e7e0:	d18e      	bne.n	800e700 <LoRaMacMlmeRequest+0x1c>
+ 800e7e2:	f895 3481 	ldrb.w	r3, [r5, #1153]	; 0x481
+ 800e7e6:	f885 0410 	strb.w	r0, [r5, #1040]	; 0x410
+ 800e7ea:	f360 0382 	bfi	r3, r0, #2, #1
+ 800e7ee:	f885 3481 	strb.w	r3, [r5, #1153]	; 0x481
+ 800e7f2:	e785      	b.n	800e700 <LoRaMacMlmeRequest+0x1c>
+ 800e7f4:	2200      	movs	r2, #0
+ 800e7f6:	4669      	mov	r1, sp
+ 800e7f8:	2002      	movs	r0, #2
+ 800e7fa:	f000 fadb 	bl	800edb4 <LoRaMacCommandsAddCmd>
+ 800e7fe:	b310      	cbz	r0, 800e846 <LoRaMacMlmeRequest+0x162>
+ 800e800:	2413      	movs	r4, #19
+ 800e802:	e7e5      	b.n	800e7d0 <LoRaMacMlmeRequest+0xec>
+ 800e804:	f895 3411 	ldrb.w	r3, [r5, #1041]	; 0x411
+ 800e808:	f88d 3008 	strb.w	r3, [sp, #8]
+ 800e80c:	4b2e      	ldr	r3, [pc, #184]	; (800e8c8 <LoRaMacMlmeRequest+0x1e4>)
+ 800e80e:	88b2      	ldrh	r2, [r6, #4]
+ 800e810:	f893 1039 	ldrb.w	r1, [r3, #57]	; 0x39
+ 800e814:	f88d 1009 	strb.w	r1, [sp, #9]
+ 800e818:	f893 1038 	ldrb.w	r1, [r3, #56]	; 0x38
+ 800e81c:	f88d 100a 	strb.w	r1, [sp, #10]
+ 800e820:	f8d3 1080 	ldr.w	r1, [r3, #128]	; 0x80
+ 800e824:	9103      	str	r1, [sp, #12]
+ 800e826:	f8d3 1084 	ldr.w	r1, [r3, #132]	; 0x84
+ 800e82a:	9104      	str	r1, [sp, #16]
+ 800e82c:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 800e830:	f8ad 2014 	strh.w	r2, [sp, #20]
+ 800e834:	a902      	add	r1, sp, #8
+ 800e836:	f001 f99d 	bl	800fb74 <RegionSetContinuousWave>
+ 800e83a:	f8d5 3340 	ldr.w	r3, [r5, #832]	; 0x340
+ 800e83e:	f043 0302 	orr.w	r3, r3, #2
+ 800e842:	f8c5 3340 	str.w	r3, [r5, #832]	; 0x340
+ 800e846:	2400      	movs	r4, #0
+ 800e848:	e7c2      	b.n	800e7d0 <LoRaMacMlmeRequest+0xec>
+ 800e84a:	4b21      	ldr	r3, [pc, #132]	; (800e8d0 <LoRaMacMlmeRequest+0x1ec>)
+ 800e84c:	88b2      	ldrh	r2, [r6, #4]
+ 800e84e:	f996 100c 	ldrsb.w	r1, [r6, #12]
+ 800e852:	68b0      	ldr	r0, [r6, #8]
+ 800e854:	6bdb      	ldr	r3, [r3, #60]	; 0x3c
+ 800e856:	4798      	blx	r3
+ 800e858:	e7ef      	b.n	800e83a <LoRaMacMlmeRequest+0x156>
+ 800e85a:	a902      	add	r1, sp, #8
+ 800e85c:	200d      	movs	r0, #13
+ 800e85e:	f000 fb27 	bl	800eeb0 <LoRaMacCommandsGetCmd>
+ 800e862:	2800      	cmp	r0, #0
+ 800e864:	d0ef      	beq.n	800e846 <LoRaMacMlmeRequest+0x162>
+ 800e866:	2200      	movs	r2, #0
+ 800e868:	4669      	mov	r1, sp
+ 800e86a:	200d      	movs	r0, #13
+ 800e86c:	e7c5      	b.n	800e7fa <LoRaMacMlmeRequest+0x116>
+ 800e86e:	4b16      	ldr	r3, [pc, #88]	; (800e8c8 <LoRaMacMlmeRequest+0x1e4>)
+ 800e870:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
+ 800e874:	b9d3      	cbnz	r3, 800e8ac <LoRaMacMlmeRequest+0x1c8>
+ 800e876:	7934      	ldrb	r4, [r6, #4]
+ 800e878:	f004 0007 	and.w	r0, r4, #7
+ 800e87c:	f000 fa77 	bl	800ed6e <LoRaMacClassBSetPingSlotInfo>
+ 800e880:	f88d 4000 	strb.w	r4, [sp]
+ 800e884:	2201      	movs	r2, #1
+ 800e886:	4669      	mov	r1, sp
+ 800e888:	2010      	movs	r0, #16
+ 800e88a:	e7b6      	b.n	800e7fa <LoRaMacMlmeRequest+0x116>
+ 800e88c:	2200      	movs	r2, #0
+ 800e88e:	4669      	mov	r1, sp
+ 800e890:	2012      	movs	r0, #18
+ 800e892:	e7b2      	b.n	800e7fa <LoRaMacMlmeRequest+0x116>
+ 800e894:	f88d 2007 	strb.w	r2, [sp, #7]
+ 800e898:	f000 fa5a 	bl	800ed50 <LoRaMacClassBIsAcquisitionInProgress>
+ 800e89c:	4604      	mov	r4, r0
+ 800e89e:	b938      	cbnz	r0, 800e8b0 <LoRaMacMlmeRequest+0x1cc>
+ 800e8a0:	f000 fa53 	bl	800ed4a <LoRaMacClassBSetBeaconState>
+ 800e8a4:	4620      	mov	r0, r4
+ 800e8a6:	f000 fa55 	bl	800ed54 <LoRaMacClassBBeaconTimerEvent>
+ 800e8aa:	e791      	b.n	800e7d0 <LoRaMacMlmeRequest+0xec>
+ 800e8ac:	2402      	movs	r4, #2
+ 800e8ae:	e78f      	b.n	800e7d0 <LoRaMacMlmeRequest+0xec>
+ 800e8b0:	2401      	movs	r4, #1
+ 800e8b2:	e78d      	b.n	800e7d0 <LoRaMacMlmeRequest+0xec>
+ 800e8b4:	a801      	add	r0, sp, #4
+ 800e8b6:	f000 fba1 	bl	800effc <LoRaMacConfirmQueueAdd>
+ 800e8ba:	e721      	b.n	800e700 <LoRaMacMlmeRequest+0x1c>
+ 800e8bc:	2403      	movs	r4, #3
+ 800e8be:	e71f      	b.n	800e700 <LoRaMacMlmeRequest+0x1c>
+ 800e8c0:	20002424 	.word	0x20002424
+ 800e8c4:	20001fdc 	.word	0x20001fdc
+ 800e8c8:	20001868 	.word	0x20001868
+ 800e8cc:	20001fde 	.word	0x20001fde
+ 800e8d0:	080159b0 	.word	0x080159b0
+
+0800e8d4 <LoRaMacMcpsRequest>:
+ 800e8d4:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 800e8d8:	b091      	sub	sp, #68	; 0x44
+ 800e8da:	2600      	movs	r6, #0
+ 800e8dc:	9103      	str	r1, [sp, #12]
+ 800e8de:	4605      	mov	r5, r0
+ 800e8e0:	b918      	cbnz	r0, 800e8ea <LoRaMacMcpsRequest+0x16>
+ 800e8e2:	2003      	movs	r0, #3
+ 800e8e4:	b011      	add	sp, #68	; 0x44
+ 800e8e6:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 800e8ea:	f7fe fc85 	bl	800d1f8 <LoRaMacIsBusy>
+ 800e8ee:	4682      	mov	sl, r0
+ 800e8f0:	2800      	cmp	r0, #0
+ 800e8f2:	f040 8164 	bne.w	800ebbe <LoRaMacMcpsRequest+0x2ea>
+ 800e8f6:	4cb8      	ldr	r4, [pc, #736]	; (800ebd8 <LoRaMacMcpsRequest+0x304>)
+ 800e8f8:	2214      	movs	r2, #20
+ 800e8fa:	4601      	mov	r1, r0
+ 800e8fc:	4607      	mov	r7, r0
+ 800e8fe:	f204 4034 	addw	r0, r4, #1076	; 0x434
+ 800e902:	f003 f857 	bl	80119b4 <memset1>
+ 800e906:	2301      	movs	r3, #1
+ 800e908:	f884 3435 	strb.w	r3, [r4, #1077]	; 0x435
+ 800e90c:	f884 340e 	strb.w	r3, [r4, #1038]	; 0x40e
+ 800e910:	782a      	ldrb	r2, [r5, #0]
+ 800e912:	429a      	cmp	r2, r3
+ 800e914:	f000 80b0 	beq.w	800ea78 <LoRaMacMcpsRequest+0x1a4>
+ 800e918:	2a03      	cmp	r2, #3
+ 800e91a:	f000 80bf 	beq.w	800ea9c <LoRaMacMcpsRequest+0x1c8>
+ 800e91e:	2a00      	cmp	r2, #0
+ 800e920:	f040 80c9 	bne.w	800eab6 <LoRaMacMcpsRequest+0x1e2>
+ 800e924:	f884 340d 	strb.w	r3, [r4, #1037]	; 0x40d
+ 800e928:	2202      	movs	r2, #2
+ 800e92a:	f895 9004 	ldrb.w	r9, [r5, #4]
+ 800e92e:	f8d5 8008 	ldr.w	r8, [r5, #8]
+ 800e932:	89ae      	ldrh	r6, [r5, #12]
+ 800e934:	f995 b00e 	ldrsb.w	fp, [r5, #14]
+ 800e938:	f362 1747 	bfi	r7, r2, #5, #3
+ 800e93c:	469a      	mov	sl, r3
+ 800e93e:	4ba7      	ldr	r3, [pc, #668]	; (800ebdc <LoRaMacMcpsRequest+0x308>)
+ 800e940:	2402      	movs	r4, #2
+ 800e942:	f893 207c 	ldrb.w	r2, [r3, #124]	; 0x7c
+ 800e946:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 800e94a:	f88d 4024 	strb.w	r4, [sp, #36]	; 0x24
+ 800e94e:	a909      	add	r1, sp, #36	; 0x24
+ 800e950:	f88d 2026 	strb.w	r2, [sp, #38]	; 0x26
+ 800e954:	f001 f88c 	bl	800fa70 <RegionGetPhyParam>
+ 800e958:	f1ba 0f00 	cmp.w	sl, #0
+ 800e95c:	f000 812d 	beq.w	800ebba <LoRaMacMcpsRequest+0x2e6>
+ 800e960:	4b9e      	ldr	r3, [pc, #632]	; (800ebdc <LoRaMacMcpsRequest+0x308>)
+ 800e962:	f893 211a 	ldrb.w	r2, [r3, #282]	; 0x11a
+ 800e966:	b9b2      	cbnz	r2, 800e996 <LoRaMacMcpsRequest+0xc2>
+ 800e968:	b240      	sxtb	r0, r0
+ 800e96a:	4558      	cmp	r0, fp
+ 800e96c:	bfb8      	it	lt
+ 800e96e:	4658      	movlt	r0, fp
+ 800e970:	f893 207c 	ldrb.w	r2, [r3, #124]	; 0x7c
+ 800e974:	f88d 0014 	strb.w	r0, [sp, #20]
+ 800e978:	f88d 2016 	strb.w	r2, [sp, #22]
+ 800e97c:	f893 0048 	ldrb.w	r0, [r3, #72]	; 0x48
+ 800e980:	2205      	movs	r2, #5
+ 800e982:	a905      	add	r1, sp, #20
+ 800e984:	f001 f887 	bl	800fa96 <RegionVerify>
+ 800e988:	2800      	cmp	r0, #0
+ 800e98a:	d0aa      	beq.n	800e8e2 <LoRaMacMcpsRequest+0xe>
+ 800e98c:	4b93      	ldr	r3, [pc, #588]	; (800ebdc <LoRaMacMcpsRequest+0x308>)
+ 800e98e:	f89d 2014 	ldrb.w	r2, [sp, #20]
+ 800e992:	f883 2039 	strb.w	r2, [r3, #57]	; 0x39
+ 800e996:	8f19      	ldrh	r1, [r3, #56]	; 0x38
+ 800e998:	8f1a      	ldrh	r2, [r3, #56]	; 0x38
+ 800e99a:	f893 012c 	ldrb.w	r0, [r3, #300]	; 0x12c
+ 800e99e:	9102      	str	r1, [sp, #8]
+ 800e9a0:	6a99      	ldr	r1, [r3, #40]	; 0x28
+ 800e9a2:	9106      	str	r1, [sp, #24]
+ 800e9a4:	ba52      	rev16	r2, r2
+ 800e9a6:	2800      	cmp	r0, #0
+ 800e9a8:	f000 8105 	beq.w	800ebb6 <LoRaMacMcpsRequest+0x2e2>
+ 800e9ac:	f893 011b 	ldrb.w	r0, [r3, #283]	; 0x11b
+ 800e9b0:	b900      	cbnz	r0, 800e9b4 <LoRaMacMcpsRequest+0xe0>
+ 800e9b2:	6318      	str	r0, [r3, #48]	; 0x30
+ 800e9b4:	f893 0118 	ldrb.w	r0, [r3, #280]	; 0x118
+ 800e9b8:	f8ad 203c 	strh.w	r2, [sp, #60]	; 0x3c
+ 800e9bc:	3801      	subs	r0, #1
+ 800e9be:	f893 207c 	ldrb.w	r2, [r3, #124]	; 0x7c
+ 800e9c2:	f88d 203e 	strb.w	r2, [sp, #62]	; 0x3e
+ 800e9c6:	f1d0 0b00 	rsbs	fp, r0, #0
+ 800e9ca:	f893 2048 	ldrb.w	r2, [r3, #72]	; 0x48
+ 800e9ce:	f88d 203f 	strb.w	r2, [sp, #63]	; 0x3f
+ 800e9d2:	eb4b 0b00 	adc.w	fp, fp, r0
+ 800e9d6:	4a82      	ldr	r2, [pc, #520]	; (800ebe0 <LoRaMacMcpsRequest+0x30c>)
+ 800e9d8:	f893 003a 	ldrb.w	r0, [r3, #58]	; 0x3a
+ 800e9dc:	f893 411a 	ldrb.w	r4, [r3, #282]	; 0x11a
+ 800e9e0:	9001      	str	r0, [sp, #4]
+ 800e9e2:	910d      	str	r1, [sp, #52]	; 0x34
+ 800e9e4:	f04f 0001 	mov.w	r0, #1
+ 800e9e8:	f8d3 1088 	ldr.w	r1, [r3, #136]	; 0x88
+ 800e9ec:	f8d3 3128 	ldr.w	r3, [r3, #296]	; 0x128
+ 800e9f0:	f88d 0030 	strb.w	r0, [sp, #48]	; 0x30
+ 800e9f4:	910e      	str	r1, [sp, #56]	; 0x38
+ 800e9f6:	930b      	str	r3, [sp, #44]	; 0x2c
+ 800e9f8:	1c51      	adds	r1, r2, #1
+ 800e9fa:	ab06      	add	r3, sp, #24
+ 800e9fc:	a80b      	add	r0, sp, #44	; 0x2c
+ 800e9fe:	f88d 4031 	strb.w	r4, [sp, #49]	; 0x31
+ 800ea02:	f000 f933 	bl	800ec6c <LoRaMacAdrCalcNext>
+ 800ea06:	9b01      	ldr	r3, [sp, #4]
+ 800ea08:	ea4f 1b0b 	mov.w	fp, fp, lsl #4
+ 800ea0c:	ea4b 1b43 	orr.w	fp, fp, r3, lsl #5
+ 800ea10:	f04f 0a00 	mov.w	sl, #0
+ 800ea14:	ea4b 1b80 	orr.w	fp, fp, r0, lsl #6
+ 800ea18:	ea4b 13c4 	orr.w	r3, fp, r4, lsl #7
+ 800ea1c:	45d0      	cmp	r8, sl
+ 800ea1e:	4c6e      	ldr	r4, [pc, #440]	; (800ebd8 <LoRaMacMcpsRequest+0x304>)
+ 800ea20:	9301      	str	r3, [sp, #4]
+ 800ea22:	bf08      	it	eq
+ 800ea24:	4656      	moveq	r6, sl
+ 800ea26:	4632      	mov	r2, r6
+ 800ea28:	4641      	mov	r1, r8
+ 800ea2a:	f504 709c 	add.w	r0, r4, #312	; 0x138
+ 800ea2e:	469b      	mov	fp, r3
+ 800ea30:	e9cd aa07 	strd	sl, sl, [sp, #28]
+ 800ea34:	f8a4 a000 	strh.w	sl, [r4]
+ 800ea38:	f884 a410 	strb.w	sl, [r4, #1040]	; 0x410
+ 800ea3c:	f002 ffa6 	bl	801198c <memcpy1>
+ 800ea40:	b2f9      	uxtb	r1, r7
+ 800ea42:	70a7      	strb	r7, [r4, #2]
+ 800ea44:	f3c7 1742 	ubfx	r7, r7, #5, #3
+ 800ea48:	b2f2      	uxtb	r2, r6
+ 800ea4a:	2f04      	cmp	r7, #4
+ 800ea4c:	4e63      	ldr	r6, [pc, #396]	; (800ebdc <LoRaMacMcpsRequest+0x308>)
+ 800ea4e:	9b01      	ldr	r3, [sp, #4]
+ 800ea50:	f884 2237 	strb.w	r2, [r4, #567]	; 0x237
+ 800ea54:	d033      	beq.n	800eabe <LoRaMacMcpsRequest+0x1ea>
+ 800ea56:	2f07      	cmp	r7, #7
+ 800ea58:	f000 809d 	beq.w	800eb96 <LoRaMacMcpsRequest+0x2c2>
+ 800ea5c:	2f02      	cmp	r7, #2
+ 800ea5e:	d032      	beq.n	800eac6 <LoRaMacMcpsRequest+0x1f2>
+ 800ea60:	2002      	movs	r0, #2
+ 800ea62:	9b02      	ldr	r3, [sp, #8]
+ 800ea64:	8733      	strh	r3, [r6, #56]	; 0x38
+ 800ea66:	4b5c      	ldr	r3, [pc, #368]	; (800ebd8 <LoRaMacMcpsRequest+0x304>)
+ 800ea68:	2200      	movs	r2, #0
+ 800ea6a:	f883 2410 	strb.w	r2, [r3, #1040]	; 0x410
+ 800ea6e:	4b5a      	ldr	r3, [pc, #360]	; (800ebd8 <LoRaMacMcpsRequest+0x304>)
+ 800ea70:	f8d3 3484 	ldr.w	r3, [r3, #1156]	; 0x484
+ 800ea74:	612b      	str	r3, [r5, #16]
+ 800ea76:	e735      	b.n	800e8e4 <LoRaMacMcpsRequest+0x10>
+ 800ea78:	7beb      	ldrb	r3, [r5, #15]
+ 800ea7a:	2b08      	cmp	r3, #8
+ 800ea7c:	bf28      	it	cs
+ 800ea7e:	2308      	movcs	r3, #8
+ 800ea80:	f884 340d 	strb.w	r3, [r4, #1037]	; 0x40d
+ 800ea84:	2304      	movs	r3, #4
+ 800ea86:	f895 9004 	ldrb.w	r9, [r5, #4]
+ 800ea8a:	f8d5 8008 	ldr.w	r8, [r5, #8]
+ 800ea8e:	89ae      	ldrh	r6, [r5, #12]
+ 800ea90:	f995 b00e 	ldrsb.w	fp, [r5, #14]
+ 800ea94:	f363 1747 	bfi	r7, r3, #5, #3
+ 800ea98:	4692      	mov	sl, r2
+ 800ea9a:	e750      	b.n	800e93e <LoRaMacMcpsRequest+0x6a>
+ 800ea9c:	f884 340d 	strb.w	r3, [r4, #1037]	; 0x40d
+ 800eaa0:	f8d5 8004 	ldr.w	r8, [r5, #4]
+ 800eaa4:	892e      	ldrh	r6, [r5, #8]
+ 800eaa6:	f995 b00a 	ldrsb.w	fp, [r5, #10]
+ 800eaaa:	f067 071f 	orn	r7, r7, #31
+ 800eaae:	469a      	mov	sl, r3
+ 800eab0:	f04f 0900 	mov.w	r9, #0
+ 800eab4:	e743      	b.n	800e93e <LoRaMacMcpsRequest+0x6a>
+ 800eab6:	46d3      	mov	fp, sl
+ 800eab8:	46d0      	mov	r8, sl
+ 800eaba:	46d1      	mov	r9, sl
+ 800eabc:	e73f      	b.n	800e93e <LoRaMacMcpsRequest+0x6a>
+ 800eabe:	f04f 0001 	mov.w	r0, #1
+ 800eac2:	f884 0410 	strb.w	r0, [r4, #1040]	; 0x410
+ 800eac6:	4f47      	ldr	r7, [pc, #284]	; (800ebe4 <LoRaMacMcpsRequest+0x310>)
+ 800eac8:	f884 110d 	strb.w	r1, [r4, #269]	; 0x10d
+ 800eacc:	2004      	movs	r0, #4
+ 800eace:	f884 0104 	strb.w	r0, [r4, #260]	; 0x104
+ 800ead2:	20ff      	movs	r0, #255	; 0xff
+ 800ead4:	f8d6 10e4 	ldr.w	r1, [r6, #228]	; 0xe4
+ 800ead8:	f884 010c 	strb.w	r0, [r4, #268]	; 0x10c
+ 800eadc:	f884 3114 	strb.w	r3, [r4, #276]	; 0x114
+ 800eae0:	a807      	add	r0, sp, #28
+ 800eae2:	f507 739b 	add.w	r3, r7, #310	; 0x136
+ 800eae6:	f8c4 7108 	str.w	r7, [r4, #264]	; 0x108
+ 800eaea:	f884 9128 	strb.w	r9, [r4, #296]	; 0x128
+ 800eaee:	f8c4 1110 	str.w	r1, [r4, #272]	; 0x110
+ 800eaf2:	f884 2130 	strb.w	r2, [r4, #304]	; 0x130
+ 800eaf6:	f8c4 312c 	str.w	r3, [r4, #300]	; 0x12c
+ 800eafa:	f000 fc43 	bl	800f384 <LoRaMacCryptoGetFCntUp>
+ 800eafe:	2800      	cmp	r0, #0
+ 800eb00:	d157      	bne.n	800ebb2 <LoRaMacMcpsRequest+0x2de>
+ 800eb02:	9b07      	ldr	r3, [sp, #28]
+ 800eb04:	f8a4 0438 	strh.w	r0, [r4, #1080]	; 0x438
+ 800eb08:	a808      	add	r0, sp, #32
+ 800eb0a:	f8a4 3116 	strh.w	r3, [r4, #278]	; 0x116
+ 800eb0e:	f8c4 3440 	str.w	r3, [r4, #1088]	; 0x440
+ 800eb12:	f000 f9fb 	bl	800ef0c <LoRaMacCommandsGetSizeSerializedCmds>
+ 800eb16:	bb60      	cbnz	r0, 800eb72 <LoRaMacMcpsRequest+0x29e>
+ 800eb18:	9b08      	ldr	r3, [sp, #32]
+ 800eb1a:	b1ab      	cbz	r3, 800eb48 <LoRaMacMcpsRequest+0x274>
+ 800eb1c:	f996 0039 	ldrsb.w	r0, [r6, #57]	; 0x39
+ 800eb20:	f7fd fba0 	bl	800c264 <GetMaxAppPayloadWithoutFOptsLength>
+ 800eb24:	f894 3237 	ldrb.w	r3, [r4, #567]	; 0x237
+ 800eb28:	b32b      	cbz	r3, 800eb76 <LoRaMacMcpsRequest+0x2a2>
+ 800eb2a:	9b08      	ldr	r3, [sp, #32]
+ 800eb2c:	2b0f      	cmp	r3, #15
+ 800eb2e:	d819      	bhi.n	800eb64 <LoRaMacMcpsRequest+0x290>
+ 800eb30:	f507 728b 	add.w	r2, r7, #278	; 0x116
+ 800eb34:	a908      	add	r1, sp, #32
+ 800eb36:	200f      	movs	r0, #15
+ 800eb38:	f000 f9f4 	bl	800ef24 <LoRaMacCommandsSerializeCmds>
+ 800eb3c:	b9c8      	cbnz	r0, 800eb72 <LoRaMacMcpsRequest+0x29e>
+ 800eb3e:	9b08      	ldr	r3, [sp, #32]
+ 800eb40:	f363 0b03 	bfi	fp, r3, #0, #4
+ 800eb44:	f884 b114 	strb.w	fp, [r4, #276]	; 0x114
+ 800eb48:	9803      	ldr	r0, [sp, #12]
+ 800eb4a:	f7fd fcb5 	bl	800c4b8 <ScheduleTx>
+ 800eb4e:	2800      	cmp	r0, #0
+ 800eb50:	d187      	bne.n	800ea62 <LoRaMacMcpsRequest+0x18e>
+ 800eb52:	9b06      	ldr	r3, [sp, #24]
+ 800eb54:	f886 003a 	strb.w	r0, [r6, #58]	; 0x3a
+ 800eb58:	62b3      	str	r3, [r6, #40]	; 0x28
+ 800eb5a:	f000 f9b7 	bl	800eecc <LoRaMacCommandsRemoveNoneStickyCmds>
+ 800eb5e:	b380      	cbz	r0, 800ebc2 <LoRaMacMcpsRequest+0x2ee>
+ 800eb60:	2013      	movs	r0, #19
+ 800eb62:	e780      	b.n	800ea66 <LoRaMacMcpsRequest+0x192>
+ 800eb64:	f207 4286 	addw	r2, r7, #1158	; 0x486
+ 800eb68:	a908      	add	r1, sp, #32
+ 800eb6a:	f000 f9db 	bl	800ef24 <LoRaMacCommandsSerializeCmds>
+ 800eb6e:	2800      	cmp	r0, #0
+ 800eb70:	d0ea      	beq.n	800eb48 <LoRaMacMcpsRequest+0x274>
+ 800eb72:	2013      	movs	r0, #19
+ 800eb74:	e775      	b.n	800ea62 <LoRaMacMcpsRequest+0x18e>
+ 800eb76:	f207 4786 	addw	r7, r7, #1158	; 0x486
+ 800eb7a:	463a      	mov	r2, r7
+ 800eb7c:	a908      	add	r1, sp, #32
+ 800eb7e:	f000 f9d1 	bl	800ef24 <LoRaMacCommandsSerializeCmds>
+ 800eb82:	2800      	cmp	r0, #0
+ 800eb84:	d1f5      	bne.n	800eb72 <LoRaMacMcpsRequest+0x29e>
+ 800eb86:	9b08      	ldr	r3, [sp, #32]
+ 800eb88:	f884 0128 	strb.w	r0, [r4, #296]	; 0x128
+ 800eb8c:	f8c4 712c 	str.w	r7, [r4, #300]	; 0x12c
+ 800eb90:	f884 3130 	strb.w	r3, [r4, #304]	; 0x130
+ 800eb94:	e7d8      	b.n	800eb48 <LoRaMacMcpsRequest+0x274>
+ 800eb96:	f1b8 0f00 	cmp.w	r8, #0
+ 800eb9a:	d0d5      	beq.n	800eb48 <LoRaMacMcpsRequest+0x274>
+ 800eb9c:	2a00      	cmp	r2, #0
+ 800eb9e:	d0d3      	beq.n	800eb48 <LoRaMacMcpsRequest+0x274>
+ 800eba0:	4641      	mov	r1, r8
+ 800eba2:	1ce0      	adds	r0, r4, #3
+ 800eba4:	f002 fef2 	bl	801198c <memcpy1>
+ 800eba8:	f894 3237 	ldrb.w	r3, [r4, #567]	; 0x237
+ 800ebac:	3301      	adds	r3, #1
+ 800ebae:	8023      	strh	r3, [r4, #0]
+ 800ebb0:	e7ca      	b.n	800eb48 <LoRaMacMcpsRequest+0x274>
+ 800ebb2:	2012      	movs	r0, #18
+ 800ebb4:	e755      	b.n	800ea62 <LoRaMacMcpsRequest+0x18e>
+ 800ebb6:	2007      	movs	r0, #7
+ 800ebb8:	e755      	b.n	800ea66 <LoRaMacMcpsRequest+0x192>
+ 800ebba:	4620      	mov	r0, r4
+ 800ebbc:	e757      	b.n	800ea6e <LoRaMacMcpsRequest+0x19a>
+ 800ebbe:	2001      	movs	r0, #1
+ 800ebc0:	e690      	b.n	800e8e4 <LoRaMacMcpsRequest+0x10>
+ 800ebc2:	782b      	ldrb	r3, [r5, #0]
+ 800ebc4:	f884 3434 	strb.w	r3, [r4, #1076]	; 0x434
+ 800ebc8:	f894 3481 	ldrb.w	r3, [r4, #1153]	; 0x481
+ 800ebcc:	f043 0301 	orr.w	r3, r3, #1
+ 800ebd0:	f884 3481 	strb.w	r3, [r4, #1153]	; 0x481
+ 800ebd4:	e74b      	b.n	800ea6e <LoRaMacMcpsRequest+0x19a>
+ 800ebd6:	bf00      	nop
+ 800ebd8:	20001fdc 	.word	0x20001fdc
+ 800ebdc:	20001868 	.word	0x20001868
+ 800ebe0:	200018a0 	.word	0x200018a0
+ 800ebe4:	20001fde 	.word	0x20001fde
+
+0800ebe8 <LoRaMacTestSetDutyCycleOn>:
+ 800ebe8:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 800ebea:	4d0b      	ldr	r5, [pc, #44]	; (800ec18 <LoRaMacTestSetDutyCycleOn+0x30>)
+ 800ebec:	f88d 0004 	strb.w	r0, [sp, #4]
+ 800ebf0:	4604      	mov	r4, r0
+ 800ebf2:	220f      	movs	r2, #15
+ 800ebf4:	f895 0048 	ldrb.w	r0, [r5, #72]	; 0x48
+ 800ebf8:	a901      	add	r1, sp, #4
+ 800ebfa:	f000 ff4c 	bl	800fa96 <RegionVerify>
+ 800ebfe:	b140      	cbz	r0, 800ec12 <LoRaMacTestSetDutyCycleOn+0x2a>
+ 800ec00:	4a06      	ldr	r2, [pc, #24]	; (800ec1c <LoRaMacTestSetDutyCycleOn+0x34>)
+ 800ec02:	f885 411c 	strb.w	r4, [r5, #284]	; 0x11c
+ 800ec06:	f892 3481 	ldrb.w	r3, [r2, #1153]	; 0x481
+ 800ec0a:	f043 0320 	orr.w	r3, r3, #32
+ 800ec0e:	f882 3481 	strb.w	r3, [r2, #1153]	; 0x481
+ 800ec12:	b003      	add	sp, #12
+ 800ec14:	bd30      	pop	{r4, r5, pc}
+ 800ec16:	bf00      	nop
+ 800ec18:	20001868 	.word	0x20001868
+ 800ec1c:	20001fdc 	.word	0x20001fdc
+
+0800ec20 <LoRaMacDeInitialization>:
+ 800ec20:	b510      	push	{r4, lr}
+ 800ec22:	f7ff f933 	bl	800de8c <LoRaMacStop>
+ 800ec26:	4604      	mov	r4, r0
+ 800ec28:	b9a0      	cbnz	r0, 800ec54 <LoRaMacDeInitialization+0x34>
+ 800ec2a:	480b      	ldr	r0, [pc, #44]	; (800ec58 <LoRaMacDeInitialization+0x38>)
+ 800ec2c:	f005 f9d2 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 800ec30:	480a      	ldr	r0, [pc, #40]	; (800ec5c <LoRaMacDeInitialization+0x3c>)
+ 800ec32:	f005 f9cf 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 800ec36:	480a      	ldr	r0, [pc, #40]	; (800ec60 <LoRaMacDeInitialization+0x40>)
+ 800ec38:	f005 f9cc 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 800ec3c:	4809      	ldr	r0, [pc, #36]	; (800ec64 <LoRaMacDeInitialization+0x44>)
+ 800ec3e:	f005 f9c9 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 800ec42:	f000 f895 	bl	800ed70 <LoRaMacClassBHaltBeaconing>
+ 800ec46:	f7fd fe4b 	bl	800c8e0 <ResetMacParameters.constprop.0>
+ 800ec4a:	4b07      	ldr	r3, [pc, #28]	; (800ec68 <LoRaMacDeInitialization+0x48>)
+ 800ec4c:	6adb      	ldr	r3, [r3, #44]	; 0x2c
+ 800ec4e:	4798      	blx	r3
+ 800ec50:	4620      	mov	r0, r4
+ 800ec52:	bd10      	pop	{r4, pc}
+ 800ec54:	2401      	movs	r4, #1
+ 800ec56:	e7fb      	b.n	800ec50 <LoRaMacDeInitialization+0x30>
+ 800ec58:	20002344 	.word	0x20002344
+ 800ec5c:	2000235c 	.word	0x2000235c
+ 800ec60:	20002374 	.word	0x20002374
+ 800ec64:	200023d0 	.word	0x200023d0
+ 800ec68:	080159b0 	.word	0x080159b0
+
+0800ec6c <LoRaMacAdrCalcNext>:
+ 800ec6c:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 800ec70:	f890 9002 	ldrb.w	r9, [r0, #2]
+ 800ec74:	b08b      	sub	sp, #44	; 0x2c
+ 800ec76:	4604      	mov	r4, r0
+ 800ec78:	468a      	mov	sl, r1
+ 800ec7a:	9201      	str	r2, [sp, #4]
+ 800ec7c:	f1b9 0f00 	cmp.w	r9, #0
+ 800ec80:	d160      	bne.n	800ed44 <LoRaMacAdrCalcNext+0xd8>
+ 800ec82:	7945      	ldrb	r5, [r0, #5]
+ 800ec84:	6881      	ldr	r1, [r0, #8]
+ 800ec86:	f990 2010 	ldrsb.w	r2, [r0, #16]
+ 800ec8a:	f990 8011 	ldrsb.w	r8, [r0, #17]
+ 800ec8e:	6019      	str	r1, [r3, #0]
+ 800ec90:	2d00      	cmp	r5, #0
+ 800ec92:	d055      	beq.n	800ed40 <LoRaMacAdrCalcNext+0xd4>
+ 800ec94:	7c81      	ldrb	r1, [r0, #18]
+ 800ec96:	f88d 1016 	strb.w	r1, [sp, #22]
+ 800ec9a:	7cc0      	ldrb	r0, [r0, #19]
+ 800ec9c:	f04f 0b02 	mov.w	fp, #2
+ 800eca0:	a905      	add	r1, sp, #20
+ 800eca2:	e9cd 2302 	strd	r2, r3, [sp, #8]
+ 800eca6:	f88d b014 	strb.w	fp, [sp, #20]
+ 800ecaa:	f000 fee1 	bl	800fa70 <RegionGetPhyParam>
+ 800ecae:	9a02      	ldr	r2, [sp, #8]
+ 800ecb0:	b247      	sxtb	r7, r0
+ 800ecb2:	42ba      	cmp	r2, r7
+ 800ecb4:	4616      	mov	r6, r2
+ 800ecb6:	bfb8      	it	lt
+ 800ecb8:	463e      	movlt	r6, r7
+ 800ecba:	42ba      	cmp	r2, r7
+ 800ecbc:	dc0c      	bgt.n	800ecd8 <LoRaMacAdrCalcNext+0x6c>
+ 800ecbe:	9b03      	ldr	r3, [sp, #12]
+ 800ecc0:	f8c3 9000 	str.w	r9, [r3]
+ 800ecc4:	464d      	mov	r5, r9
+ 800ecc6:	9b01      	ldr	r3, [sp, #4]
+ 800ecc8:	f88a 6000 	strb.w	r6, [sl]
+ 800eccc:	f883 8000 	strb.w	r8, [r3]
+ 800ecd0:	4628      	mov	r0, r5
+ 800ecd2:	b00b      	add	sp, #44	; 0x2c
+ 800ecd4:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 800ecd8:	68a2      	ldr	r2, [r4, #8]
+ 800ecda:	89a1      	ldrh	r1, [r4, #12]
+ 800ecdc:	89e3      	ldrh	r3, [r4, #14]
+ 800ecde:	428a      	cmp	r2, r1
+ 800ece0:	440b      	add	r3, r1
+ 800ece2:	bf34      	ite	cc
+ 800ece4:	2500      	movcc	r5, #0
+ 800ece6:	2501      	movcs	r5, #1
+ 800ece8:	429a      	cmp	r2, r3
+ 800ecea:	d3ec      	bcc.n	800ecc6 <LoRaMacAdrCalcNext+0x5a>
+ 800ecec:	2308      	movs	r3, #8
+ 800ecee:	a905      	add	r1, sp, #20
+ 800ecf0:	7ce0      	ldrb	r0, [r4, #19]
+ 800ecf2:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800ecf6:	f000 febb 	bl	800fa70 <RegionGetPhyParam>
+ 800ecfa:	89e2      	ldrh	r2, [r4, #14]
+ 800ecfc:	68a3      	ldr	r3, [r4, #8]
+ 800ecfe:	fbb3 f1f2 	udiv	r1, r3, r2
+ 800ed02:	fb02 3311 	mls	r3, r2, r1, r3
+ 800ed06:	2b01      	cmp	r3, #1
+ 800ed08:	fa4f f880 	sxtb.w	r8, r0
+ 800ed0c:	d1db      	bne.n	800ecc6 <LoRaMacAdrCalcNext+0x5a>
+ 800ed0e:	2322      	movs	r3, #34	; 0x22
+ 800ed10:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800ed14:	7ce0      	ldrb	r0, [r4, #19]
+ 800ed16:	7ca3      	ldrb	r3, [r4, #18]
+ 800ed18:	f88d 6015 	strb.w	r6, [sp, #21]
+ 800ed1c:	a905      	add	r1, sp, #20
+ 800ed1e:	f88d 3016 	strb.w	r3, [sp, #22]
+ 800ed22:	f000 fea5 	bl	800fa70 <RegionGetPhyParam>
+ 800ed26:	b246      	sxtb	r6, r0
+ 800ed28:	42b7      	cmp	r7, r6
+ 800ed2a:	d1cc      	bne.n	800ecc6 <LoRaMacAdrCalcNext+0x5a>
+ 800ed2c:	7925      	ldrb	r5, [r4, #4]
+ 800ed2e:	2d00      	cmp	r5, #0
+ 800ed30:	d0c9      	beq.n	800ecc6 <LoRaMacAdrCalcNext+0x5a>
+ 800ed32:	7ce0      	ldrb	r0, [r4, #19]
+ 800ed34:	f88d b024 	strb.w	fp, [sp, #36]	; 0x24
+ 800ed38:	a907      	add	r1, sp, #28
+ 800ed3a:	f000 fea7 	bl	800fa8c <RegionInitDefaults>
+ 800ed3e:	e7c1      	b.n	800ecc4 <LoRaMacAdrCalcNext+0x58>
+ 800ed40:	4616      	mov	r6, r2
+ 800ed42:	e7c0      	b.n	800ecc6 <LoRaMacAdrCalcNext+0x5a>
+ 800ed44:	2500      	movs	r5, #0
+ 800ed46:	e7c3      	b.n	800ecd0 <LoRaMacAdrCalcNext+0x64>
+
+0800ed48 <LoRaMacClassBInit>:
+ 800ed48:	4770      	bx	lr
+
+0800ed4a <LoRaMacClassBSetBeaconState>:
+ 800ed4a:	4770      	bx	lr
+
+0800ed4c <LoRaMacClassBSetPingSlotState>:
+ 800ed4c:	4770      	bx	lr
+
+0800ed4e <LoRaMacClassBSetMulticastSlotState>:
+ 800ed4e:	4770      	bx	lr
+
+0800ed50 <LoRaMacClassBIsAcquisitionInProgress>:
+ 800ed50:	2000      	movs	r0, #0
+ 800ed52:	4770      	bx	lr
+
+0800ed54 <LoRaMacClassBBeaconTimerEvent>:
+ 800ed54:	4770      	bx	lr
+
+0800ed56 <LoRaMacClassBPingSlotTimerEvent>:
+ 800ed56:	4770      	bx	lr
+
+0800ed58 <LoRaMacClassBMulticastSlotTimerEvent>:
+ 800ed58:	4770      	bx	lr
+
+0800ed5a <LoRaMacClassBRxBeacon>:
+ 800ed5a:	2000      	movs	r0, #0
+ 800ed5c:	4770      	bx	lr
+
+0800ed5e <LoRaMacClassBIsBeaconExpected>:
+ 800ed5e:	2000      	movs	r0, #0
+ 800ed60:	4770      	bx	lr
+
+0800ed62 <LoRaMacClassBIsPingExpected>:
+ 800ed62:	2000      	movs	r0, #0
+ 800ed64:	4770      	bx	lr
+
+0800ed66 <LoRaMacClassBIsMulticastExpected>:
+ 800ed66:	2000      	movs	r0, #0
+ 800ed68:	4770      	bx	lr
+
+0800ed6a <LoRaMacClassBIsBeaconModeActive>:
+ 800ed6a:	2000      	movs	r0, #0
+ 800ed6c:	4770      	bx	lr
+
+0800ed6e <LoRaMacClassBSetPingSlotInfo>:
+ 800ed6e:	4770      	bx	lr
+
+0800ed70 <LoRaMacClassBHaltBeaconing>:
+ 800ed70:	4770      	bx	lr
+
+0800ed72 <LoRaMacClassBResumeBeaconing>:
+ 800ed72:	4770      	bx	lr
+
+0800ed74 <LoRaMacClassBSwitchClass>:
+ 800ed74:	2002      	movs	r0, #2
+ 800ed76:	4770      	bx	lr
+
+0800ed78 <LoRaMacClassBMibGetRequestConfirm>:
+ 800ed78:	2002      	movs	r0, #2
+ 800ed7a:	4770      	bx	lr
+
+0800ed7c <LoRaMacMibClassBSetRequestConfirm>:
+ 800ed7c:	2002      	movs	r0, #2
+ 800ed7e:	4770      	bx	lr
+
+0800ed80 <LoRaMacClassBPingSlotInfoAns>:
+ 800ed80:	4770      	bx	lr
+
+0800ed82 <LoRaMacClassBPingSlotChannelReq>:
+ 800ed82:	2000      	movs	r0, #0
+ 800ed84:	4770      	bx	lr
+
+0800ed86 <LoRaMacClassBBeaconTimingAns>:
+ 800ed86:	4770      	bx	lr
+
+0800ed88 <LoRaMacClassBDeviceTimeAns>:
+ 800ed88:	4770      	bx	lr
+
+0800ed8a <LoRaMacClassBBeaconFreqReq>:
+ 800ed8a:	2000      	movs	r0, #0
+ 800ed8c:	4770      	bx	lr
+
+0800ed8e <LoRaMacClassBIsUplinkCollision>:
+ 800ed8e:	2000      	movs	r0, #0
+ 800ed90:	4770      	bx	lr
+
+0800ed92 <LoRaMacClassBStopRxSlots>:
+ 800ed92:	4770      	bx	lr
+
+0800ed94 <LoRaMacClassBProcess>:
+ 800ed94:	4770      	bx	lr
+	...
+
+0800ed98 <LoRaMacCommandsInit>:
+ 800ed98:	b510      	push	{r4, lr}
+ 800ed9a:	4c05      	ldr	r4, [pc, #20]	; (800edb0 <LoRaMacCommandsInit+0x18>)
+ 800ed9c:	22fc      	movs	r2, #252	; 0xfc
+ 800ed9e:	4620      	mov	r0, r4
+ 800eda0:	2100      	movs	r1, #0
+ 800eda2:	f002 fe07 	bl	80119b4 <memset1>
+ 800eda6:	2000      	movs	r0, #0
+ 800eda8:	e9c4 0000 	strd	r0, r0, [r4]
+ 800edac:	bd10      	pop	{r4, pc}
+ 800edae:	bf00      	nop
+ 800edb0:	200024f8 	.word	0x200024f8
+
+0800edb4 <LoRaMacCommandsAddCmd>:
+ 800edb4:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800edb8:	4680      	mov	r8, r0
+ 800edba:	4615      	mov	r5, r2
+ 800edbc:	2900      	cmp	r1, #0
+ 800edbe:	d042      	beq.n	800ee46 <LoRaMacCommandsAddCmd+0x92>
+ 800edc0:	4b24      	ldr	r3, [pc, #144]	; (800ee54 <LoRaMacCommandsAddCmd+0xa0>)
+ 800edc2:	2400      	movs	r4, #0
+ 800edc4:	f103 0c01 	add.w	ip, r3, #1
+ 800edc8:	461a      	mov	r2, r3
+ 800edca:	0120      	lsls	r0, r4, #4
+ 800edcc:	3310      	adds	r3, #16
+ 800edce:	f812 6f01 	ldrb.w	r6, [r2, #1]!
+ 800edd2:	2e00      	cmp	r6, #0
+ 800edd4:	d139      	bne.n	800ee4a <LoRaMacCommandsAddCmd+0x96>
+ 800edd6:	429a      	cmp	r2, r3
+ 800edd8:	d1f9      	bne.n	800edce <LoRaMacCommandsAddCmd+0x1a>
+ 800edda:	4f1f      	ldr	r7, [pc, #124]	; (800ee58 <LoRaMacCommandsAddCmd+0xa4>)
+ 800eddc:	683b      	ldr	r3, [r7, #0]
+ 800edde:	b90b      	cbnz	r3, 800ede4 <LoRaMacCommandsAddCmd+0x30>
+ 800ede0:	f8c7 c000 	str.w	ip, [r7]
+ 800ede4:	687b      	ldr	r3, [r7, #4]
+ 800ede6:	b10b      	cbz	r3, 800edec <LoRaMacCommandsAddCmd+0x38>
+ 800ede8:	f8c3 c000 	str.w	ip, [r3]
+ 800edec:	183b      	adds	r3, r7, r0
+ 800edee:	2200      	movs	r2, #0
+ 800edf0:	3401      	adds	r4, #1
+ 800edf2:	609a      	str	r2, [r3, #8]
+ 800edf4:	f883 800c 	strb.w	r8, [r3, #12]
+ 800edf8:	300d      	adds	r0, #13
+ 800edfa:	0123      	lsls	r3, r4, #4
+ 800edfc:	b2aa      	uxth	r2, r5
+ 800edfe:	4438      	add	r0, r7
+ 800ee00:	50fd      	str	r5, [r7, r3]
+ 800ee02:	f8c7 c004 	str.w	ip, [r7, #4]
+ 800ee06:	f002 fdc1 	bl	801198c <memcpy1>
+ 800ee0a:	f1b8 0f05 	cmp.w	r8, #5
+ 800ee0e:	d017      	beq.n	800ee40 <LoRaMacCommandsAddCmd+0x8c>
+ 800ee10:	f1a8 0808 	sub.w	r8, r8, #8
+ 800ee14:	f1b8 0f02 	cmp.w	r8, #2
+ 800ee18:	bf8c      	ite	hi
+ 800ee1a:	f04f 0800 	movhi.w	r8, #0
+ 800ee1e:	f04f 0801 	movls.w	r8, #1
+ 800ee22:	eb07 1404 	add.w	r4, r7, r4, lsl #4
+ 800ee26:	2300      	movs	r3, #0
+ 800ee28:	7163      	strb	r3, [r4, #5]
+ 800ee2a:	f8d7 30f8 	ldr.w	r3, [r7, #248]	; 0xf8
+ 800ee2e:	f884 8004 	strb.w	r8, [r4, #4]
+ 800ee32:	3301      	adds	r3, #1
+ 800ee34:	442b      	add	r3, r5
+ 800ee36:	f8c7 30f8 	str.w	r3, [r7, #248]	; 0xf8
+ 800ee3a:	4630      	mov	r0, r6
+ 800ee3c:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800ee40:	f04f 0801 	mov.w	r8, #1
+ 800ee44:	e7ed      	b.n	800ee22 <LoRaMacCommandsAddCmd+0x6e>
+ 800ee46:	2601      	movs	r6, #1
+ 800ee48:	e7f7      	b.n	800ee3a <LoRaMacCommandsAddCmd+0x86>
+ 800ee4a:	3401      	adds	r4, #1
+ 800ee4c:	2c0f      	cmp	r4, #15
+ 800ee4e:	d1b9      	bne.n	800edc4 <LoRaMacCommandsAddCmd+0x10>
+ 800ee50:	2602      	movs	r6, #2
+ 800ee52:	e7f2      	b.n	800ee3a <LoRaMacCommandsAddCmd+0x86>
+ 800ee54:	200024ff 	.word	0x200024ff
+ 800ee58:	200024f8 	.word	0x200024f8
+
+0800ee5c <LoRaMacCommandsRemoveCmd>:
+ 800ee5c:	b510      	push	{r4, lr}
+ 800ee5e:	b310      	cbz	r0, 800eea6 <LoRaMacCommandsRemoveCmd+0x4a>
+ 800ee60:	4a12      	ldr	r2, [pc, #72]	; (800eeac <LoRaMacCommandsRemoveCmd+0x50>)
+ 800ee62:	6813      	ldr	r3, [r2, #0]
+ 800ee64:	4298      	cmp	r0, r3
+ 800ee66:	d104      	bne.n	800ee72 <LoRaMacCommandsRemoveCmd+0x16>
+ 800ee68:	6803      	ldr	r3, [r0, #0]
+ 800ee6a:	6013      	str	r3, [r2, #0]
+ 800ee6c:	2300      	movs	r3, #0
+ 800ee6e:	e004      	b.n	800ee7a <LoRaMacCommandsRemoveCmd+0x1e>
+ 800ee70:	460b      	mov	r3, r1
+ 800ee72:	b113      	cbz	r3, 800ee7a <LoRaMacCommandsRemoveCmd+0x1e>
+ 800ee74:	6819      	ldr	r1, [r3, #0]
+ 800ee76:	4288      	cmp	r0, r1
+ 800ee78:	d1fa      	bne.n	800ee70 <LoRaMacCommandsRemoveCmd+0x14>
+ 800ee7a:	6851      	ldr	r1, [r2, #4]
+ 800ee7c:	4288      	cmp	r0, r1
+ 800ee7e:	bf08      	it	eq
+ 800ee80:	6053      	streq	r3, [r2, #4]
+ 800ee82:	b10b      	cbz	r3, 800ee88 <LoRaMacCommandsRemoveCmd+0x2c>
+ 800ee84:	6801      	ldr	r1, [r0, #0]
+ 800ee86:	6019      	str	r1, [r3, #0]
+ 800ee88:	f8d2 30f8 	ldr.w	r3, [r2, #248]	; 0xf8
+ 800ee8c:	6881      	ldr	r1, [r0, #8]
+ 800ee8e:	3b01      	subs	r3, #1
+ 800ee90:	2400      	movs	r4, #0
+ 800ee92:	1a5b      	subs	r3, r3, r1
+ 800ee94:	6004      	str	r4, [r0, #0]
+ 800ee96:	4621      	mov	r1, r4
+ 800ee98:	f8c2 30f8 	str.w	r3, [r2, #248]	; 0xf8
+ 800ee9c:	2210      	movs	r2, #16
+ 800ee9e:	f002 fd89 	bl	80119b4 <memset1>
+ 800eea2:	4620      	mov	r0, r4
+ 800eea4:	bd10      	pop	{r4, pc}
+ 800eea6:	2001      	movs	r0, #1
+ 800eea8:	e7fc      	b.n	800eea4 <LoRaMacCommandsRemoveCmd+0x48>
+ 800eeaa:	bf00      	nop
+ 800eeac:	200024f8 	.word	0x200024f8
+
+0800eeb0 <LoRaMacCommandsGetCmd>:
+ 800eeb0:	4b05      	ldr	r3, [pc, #20]	; (800eec8 <LoRaMacCommandsGetCmd+0x18>)
+ 800eeb2:	681b      	ldr	r3, [r3, #0]
+ 800eeb4:	b113      	cbz	r3, 800eebc <LoRaMacCommandsGetCmd+0xc>
+ 800eeb6:	791a      	ldrb	r2, [r3, #4]
+ 800eeb8:	4282      	cmp	r2, r0
+ 800eeba:	d1fa      	bne.n	800eeb2 <LoRaMacCommandsGetCmd+0x2>
+ 800eebc:	2b00      	cmp	r3, #0
+ 800eebe:	600b      	str	r3, [r1, #0]
+ 800eec0:	bf0c      	ite	eq
+ 800eec2:	2003      	moveq	r0, #3
+ 800eec4:	2000      	movne	r0, #0
+ 800eec6:	4770      	bx	lr
+ 800eec8:	200024f8 	.word	0x200024f8
+
+0800eecc <LoRaMacCommandsRemoveNoneStickyCmds>:
+ 800eecc:	b510      	push	{r4, lr}
+ 800eece:	4b05      	ldr	r3, [pc, #20]	; (800eee4 <LoRaMacCommandsRemoveNoneStickyCmds+0x18>)
+ 800eed0:	6818      	ldr	r0, [r3, #0]
+ 800eed2:	b900      	cbnz	r0, 800eed6 <LoRaMacCommandsRemoveNoneStickyCmds+0xa>
+ 800eed4:	bd10      	pop	{r4, pc}
+ 800eed6:	7b03      	ldrb	r3, [r0, #12]
+ 800eed8:	6804      	ldr	r4, [r0, #0]
+ 800eeda:	b90b      	cbnz	r3, 800eee0 <LoRaMacCommandsRemoveNoneStickyCmds+0x14>
+ 800eedc:	f7ff ffbe 	bl	800ee5c <LoRaMacCommandsRemoveCmd>
+ 800eee0:	4620      	mov	r0, r4
+ 800eee2:	e7f6      	b.n	800eed2 <LoRaMacCommandsRemoveNoneStickyCmds+0x6>
+ 800eee4:	200024f8 	.word	0x200024f8
+
+0800eee8 <LoRaMacCommandsRemoveStickyAnsCmds>:
+ 800eee8:	b510      	push	{r4, lr}
+ 800eeea:	4b07      	ldr	r3, [pc, #28]	; (800ef08 <LoRaMacCommandsRemoveStickyAnsCmds+0x20>)
+ 800eeec:	6818      	ldr	r0, [r3, #0]
+ 800eeee:	b900      	cbnz	r0, 800eef2 <LoRaMacCommandsRemoveStickyAnsCmds+0xa>
+ 800eef0:	bd10      	pop	{r4, pc}
+ 800eef2:	7903      	ldrb	r3, [r0, #4]
+ 800eef4:	6804      	ldr	r4, [r0, #0]
+ 800eef6:	2b05      	cmp	r3, #5
+ 800eef8:	d002      	beq.n	800ef00 <LoRaMacCommandsRemoveStickyAnsCmds+0x18>
+ 800eefa:	3b08      	subs	r3, #8
+ 800eefc:	2b02      	cmp	r3, #2
+ 800eefe:	d801      	bhi.n	800ef04 <LoRaMacCommandsRemoveStickyAnsCmds+0x1c>
+ 800ef00:	f7ff ffac 	bl	800ee5c <LoRaMacCommandsRemoveCmd>
+ 800ef04:	4620      	mov	r0, r4
+ 800ef06:	e7f2      	b.n	800eeee <LoRaMacCommandsRemoveStickyAnsCmds+0x6>
+ 800ef08:	200024f8 	.word	0x200024f8
+
+0800ef0c <LoRaMacCommandsGetSizeSerializedCmds>:
+ 800ef0c:	b128      	cbz	r0, 800ef1a <LoRaMacCommandsGetSizeSerializedCmds+0xe>
+ 800ef0e:	4b04      	ldr	r3, [pc, #16]	; (800ef20 <LoRaMacCommandsGetSizeSerializedCmds+0x14>)
+ 800ef10:	f8d3 30f8 	ldr.w	r3, [r3, #248]	; 0xf8
+ 800ef14:	6003      	str	r3, [r0, #0]
+ 800ef16:	2000      	movs	r0, #0
+ 800ef18:	4770      	bx	lr
+ 800ef1a:	2001      	movs	r0, #1
+ 800ef1c:	4770      	bx	lr
+ 800ef1e:	bf00      	nop
+ 800ef20:	200024f8 	.word	0x200024f8
+
+0800ef24 <LoRaMacCommandsSerializeCmds>:
+ 800ef24:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800ef28:	4607      	mov	r7, r0
+ 800ef2a:	460e      	mov	r6, r1
+ 800ef2c:	4615      	mov	r5, r2
+ 800ef2e:	b33a      	cbz	r2, 800ef80 <LoRaMacCommandsSerializeCmds+0x5c>
+ 800ef30:	b331      	cbz	r1, 800ef80 <LoRaMacCommandsSerializeCmds+0x5c>
+ 800ef32:	4b14      	ldr	r3, [pc, #80]	; (800ef84 <LoRaMacCommandsSerializeCmds+0x60>)
+ 800ef34:	681c      	ldr	r4, [r3, #0]
+ 800ef36:	2300      	movs	r3, #0
+ 800ef38:	b92c      	cbnz	r4, 800ef46 <LoRaMacCommandsSerializeCmds+0x22>
+ 800ef3a:	4630      	mov	r0, r6
+ 800ef3c:	f7ff ffe6 	bl	800ef0c <LoRaMacCommandsGetSizeSerializedCmds>
+ 800ef40:	2000      	movs	r0, #0
+ 800ef42:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800ef46:	68a2      	ldr	r2, [r4, #8]
+ 800ef48:	1af9      	subs	r1, r7, r3
+ 800ef4a:	3201      	adds	r2, #1
+ 800ef4c:	4291      	cmp	r1, r2
+ 800ef4e:	d310      	bcc.n	800ef72 <LoRaMacCommandsSerializeCmds+0x4e>
+ 800ef50:	7922      	ldrb	r2, [r4, #4]
+ 800ef52:	54ea      	strb	r2, [r5, r3]
+ 800ef54:	1c58      	adds	r0, r3, #1
+ 800ef56:	8922      	ldrh	r2, [r4, #8]
+ 800ef58:	fa5f f880 	uxtb.w	r8, r0
+ 800ef5c:	1d61      	adds	r1, r4, #5
+ 800ef5e:	fa55 f080 	uxtab	r0, r5, r0
+ 800ef62:	f002 fd13 	bl	801198c <memcpy1>
+ 800ef66:	68a3      	ldr	r3, [r4, #8]
+ 800ef68:	6824      	ldr	r4, [r4, #0]
+ 800ef6a:	4498      	add	r8, r3
+ 800ef6c:	fa5f f388 	uxtb.w	r3, r8
+ 800ef70:	e7e2      	b.n	800ef38 <LoRaMacCommandsSerializeCmds+0x14>
+ 800ef72:	4620      	mov	r0, r4
+ 800ef74:	6824      	ldr	r4, [r4, #0]
+ 800ef76:	f7ff ff71 	bl	800ee5c <LoRaMacCommandsRemoveCmd>
+ 800ef7a:	2c00      	cmp	r4, #0
+ 800ef7c:	d1f9      	bne.n	800ef72 <LoRaMacCommandsSerializeCmds+0x4e>
+ 800ef7e:	e7dc      	b.n	800ef3a <LoRaMacCommandsSerializeCmds+0x16>
+ 800ef80:	2001      	movs	r0, #1
+ 800ef82:	e7de      	b.n	800ef42 <LoRaMacCommandsSerializeCmds+0x1e>
+ 800ef84:	200024f8 	.word	0x200024f8
+
+0800ef88 <LoRaMacCommandsGetCmdSize>:
+ 800ef88:	3802      	subs	r0, #2
+ 800ef8a:	b2c0      	uxtb	r0, r0
+ 800ef8c:	2811      	cmp	r0, #17
+ 800ef8e:	bf9a      	itte	ls
+ 800ef90:	4b01      	ldrls	r3, [pc, #4]	; (800ef98 <LoRaMacCommandsGetCmdSize+0x10>)
+ 800ef92:	5c18      	ldrbls	r0, [r3, r0]
+ 800ef94:	2000      	movhi	r0, #0
+ 800ef96:	4770      	bx	lr
+ 800ef98:	0801533b 	.word	0x0801533b
+
+0800ef9c <GetElement.constprop.0>:
+ 800ef9c:	b530      	push	{r4, r5, lr}
+ 800ef9e:	4b0b      	ldr	r3, [pc, #44]	; (800efcc <GetElement.constprop.0+0x30>)
+ 800efa0:	f893 2020 	ldrb.w	r2, [r3, #32]
+ 800efa4:	4604      	mov	r4, r0
+ 800efa6:	4608      	mov	r0, r1
+ 800efa8:	b172      	cbz	r2, 800efc8 <GetElement.constprop.0+0x2c>
+ 800efaa:	2100      	movs	r1, #0
+ 800efac:	331c      	adds	r3, #28
+ 800efae:	7805      	ldrb	r5, [r0, #0]
+ 800efb0:	42a5      	cmp	r5, r4
+ 800efb2:	d008      	beq.n	800efc6 <GetElement.constprop.0+0x2a>
+ 800efb4:	3101      	adds	r1, #1
+ 800efb6:	4298      	cmp	r0, r3
+ 800efb8:	b2cd      	uxtb	r5, r1
+ 800efba:	bf0c      	ite	eq
+ 800efbc:	4804      	ldreq	r0, [pc, #16]	; (800efd0 <GetElement.constprop.0+0x34>)
+ 800efbe:	3004      	addne	r0, #4
+ 800efc0:	42aa      	cmp	r2, r5
+ 800efc2:	d8f4      	bhi.n	800efae <GetElement.constprop.0+0x12>
+ 800efc4:	2000      	movs	r0, #0
+ 800efc6:	bd30      	pop	{r4, r5, pc}
+ 800efc8:	4610      	mov	r0, r2
+ 800efca:	e7fc      	b.n	800efc6 <GetElement.constprop.0+0x2a>
+ 800efcc:	200025f4 	.word	0x200025f4
+ 800efd0:	20002600 	.word	0x20002600
+
+0800efd4 <LoRaMacConfirmQueueInit>:
+ 800efd4:	b510      	push	{r4, lr}
+ 800efd6:	4c08      	ldr	r4, [pc, #32]	; (800eff8 <LoRaMacConfirmQueueInit+0x24>)
+ 800efd8:	2300      	movs	r3, #0
+ 800efda:	6020      	str	r0, [r4, #0]
+ 800efdc:	2214      	movs	r2, #20
+ 800efde:	f104 000c 	add.w	r0, r4, #12
+ 800efe2:	21ff      	movs	r1, #255	; 0xff
+ 800efe4:	f884 3020 	strb.w	r3, [r4, #32]
+ 800efe8:	e9c4 0001 	strd	r0, r0, [r4, #4]
+ 800efec:	f002 fce2 	bl	80119b4 <memset1>
+ 800eff0:	2301      	movs	r3, #1
+ 800eff2:	f884 3021 	strb.w	r3, [r4, #33]	; 0x21
+ 800eff6:	bd10      	pop	{r4, pc}
+ 800eff8:	200025f4 	.word	0x200025f4
+
+0800effc <LoRaMacConfirmQueueAdd>:
+ 800effc:	b510      	push	{r4, lr}
+ 800effe:	4a0e      	ldr	r2, [pc, #56]	; (800f038 <LoRaMacConfirmQueueAdd+0x3c>)
+ 800f000:	f892 1020 	ldrb.w	r1, [r2, #32]
+ 800f004:	2904      	cmp	r1, #4
+ 800f006:	d815      	bhi.n	800f034 <LoRaMacConfirmQueueAdd+0x38>
+ 800f008:	6893      	ldr	r3, [r2, #8]
+ 800f00a:	7804      	ldrb	r4, [r0, #0]
+ 800f00c:	701c      	strb	r4, [r3, #0]
+ 800f00e:	7844      	ldrb	r4, [r0, #1]
+ 800f010:	705c      	strb	r4, [r3, #1]
+ 800f012:	78c0      	ldrb	r0, [r0, #3]
+ 800f014:	70d8      	strb	r0, [r3, #3]
+ 800f016:	3101      	adds	r1, #1
+ 800f018:	2000      	movs	r0, #0
+ 800f01a:	7098      	strb	r0, [r3, #2]
+ 800f01c:	f882 1020 	strb.w	r1, [r2, #32]
+ 800f020:	f102 011c 	add.w	r1, r2, #28
+ 800f024:	428b      	cmp	r3, r1
+ 800f026:	bf14      	ite	ne
+ 800f028:	3304      	addne	r3, #4
+ 800f02a:	f102 030c 	addeq.w	r3, r2, #12
+ 800f02e:	6093      	str	r3, [r2, #8]
+ 800f030:	2001      	movs	r0, #1
+ 800f032:	bd10      	pop	{r4, pc}
+ 800f034:	2000      	movs	r0, #0
+ 800f036:	e7fc      	b.n	800f032 <LoRaMacConfirmQueueAdd+0x36>
+ 800f038:	200025f4 	.word	0x200025f4
+
+0800f03c <LoRaMacConfirmQueueRemoveFirst>:
+ 800f03c:	4b09      	ldr	r3, [pc, #36]	; (800f064 <LoRaMacConfirmQueueRemoveFirst+0x28>)
+ 800f03e:	f893 0020 	ldrb.w	r0, [r3, #32]
+ 800f042:	b168      	cbz	r0, 800f060 <LoRaMacConfirmQueueRemoveFirst+0x24>
+ 800f044:	685a      	ldr	r2, [r3, #4]
+ 800f046:	f103 011c 	add.w	r1, r3, #28
+ 800f04a:	428a      	cmp	r2, r1
+ 800f04c:	f100 30ff 	add.w	r0, r0, #4294967295
+ 800f050:	bf14      	ite	ne
+ 800f052:	3204      	addne	r2, #4
+ 800f054:	f103 020c 	addeq.w	r2, r3, #12
+ 800f058:	f883 0020 	strb.w	r0, [r3, #32]
+ 800f05c:	605a      	str	r2, [r3, #4]
+ 800f05e:	2001      	movs	r0, #1
+ 800f060:	4770      	bx	lr
+ 800f062:	bf00      	nop
+ 800f064:	200025f4 	.word	0x200025f4
+
+0800f068 <LoRaMacConfirmQueueSetStatus>:
+ 800f068:	b510      	push	{r4, lr}
+ 800f06a:	4b07      	ldr	r3, [pc, #28]	; (800f088 <LoRaMacConfirmQueueSetStatus+0x20>)
+ 800f06c:	f893 2020 	ldrb.w	r2, [r3, #32]
+ 800f070:	4604      	mov	r4, r0
+ 800f072:	4608      	mov	r0, r1
+ 800f074:	b132      	cbz	r2, 800f084 <LoRaMacConfirmQueueSetStatus+0x1c>
+ 800f076:	6859      	ldr	r1, [r3, #4]
+ 800f078:	f7ff ff90 	bl	800ef9c <GetElement.constprop.0>
+ 800f07c:	b110      	cbz	r0, 800f084 <LoRaMacConfirmQueueSetStatus+0x1c>
+ 800f07e:	2301      	movs	r3, #1
+ 800f080:	7044      	strb	r4, [r0, #1]
+ 800f082:	7083      	strb	r3, [r0, #2]
+ 800f084:	bd10      	pop	{r4, pc}
+ 800f086:	bf00      	nop
+ 800f088:	200025f4 	.word	0x200025f4
+
+0800f08c <LoRaMacConfirmQueueGetStatus>:
+ 800f08c:	b508      	push	{r3, lr}
+ 800f08e:	4b06      	ldr	r3, [pc, #24]	; (800f0a8 <LoRaMacConfirmQueueGetStatus+0x1c>)
+ 800f090:	f893 2020 	ldrb.w	r2, [r3, #32]
+ 800f094:	b12a      	cbz	r2, 800f0a2 <LoRaMacConfirmQueueGetStatus+0x16>
+ 800f096:	6859      	ldr	r1, [r3, #4]
+ 800f098:	f7ff ff80 	bl	800ef9c <GetElement.constprop.0>
+ 800f09c:	b108      	cbz	r0, 800f0a2 <LoRaMacConfirmQueueGetStatus+0x16>
+ 800f09e:	7840      	ldrb	r0, [r0, #1]
+ 800f0a0:	bd08      	pop	{r3, pc}
+ 800f0a2:	2001      	movs	r0, #1
+ 800f0a4:	e7fc      	b.n	800f0a0 <LoRaMacConfirmQueueGetStatus+0x14>
+ 800f0a6:	bf00      	nop
+ 800f0a8:	200025f4 	.word	0x200025f4
+
+0800f0ac <LoRaMacConfirmQueueSetStatusCmn>:
+ 800f0ac:	b530      	push	{r4, r5, lr}
+ 800f0ae:	4a0a      	ldr	r2, [pc, #40]	; (800f0d8 <LoRaMacConfirmQueueSetStatusCmn+0x2c>)
+ 800f0b0:	f892 1020 	ldrb.w	r1, [r2, #32]
+ 800f0b4:	6853      	ldr	r3, [r2, #4]
+ 800f0b6:	f882 0021 	strb.w	r0, [r2, #33]	; 0x21
+ 800f0ba:	b161      	cbz	r1, 800f0d6 <LoRaMacConfirmQueueSetStatusCmn+0x2a>
+ 800f0bc:	6891      	ldr	r1, [r2, #8]
+ 800f0be:	2401      	movs	r4, #1
+ 800f0c0:	321c      	adds	r2, #28
+ 800f0c2:	78dd      	ldrb	r5, [r3, #3]
+ 800f0c4:	7058      	strb	r0, [r3, #1]
+ 800f0c6:	b905      	cbnz	r5, 800f0ca <LoRaMacConfirmQueueSetStatusCmn+0x1e>
+ 800f0c8:	709c      	strb	r4, [r3, #2]
+ 800f0ca:	4293      	cmp	r3, r2
+ 800f0cc:	bf0c      	ite	eq
+ 800f0ce:	4b03      	ldreq	r3, [pc, #12]	; (800f0dc <LoRaMacConfirmQueueSetStatusCmn+0x30>)
+ 800f0d0:	3304      	addne	r3, #4
+ 800f0d2:	4299      	cmp	r1, r3
+ 800f0d4:	d1f5      	bne.n	800f0c2 <LoRaMacConfirmQueueSetStatusCmn+0x16>
+ 800f0d6:	bd30      	pop	{r4, r5, pc}
+ 800f0d8:	200025f4 	.word	0x200025f4
+ 800f0dc:	20002600 	.word	0x20002600
+
+0800f0e0 <LoRaMacConfirmQueueIsCmdActive>:
+ 800f0e0:	b508      	push	{r3, lr}
+ 800f0e2:	4b04      	ldr	r3, [pc, #16]	; (800f0f4 <LoRaMacConfirmQueueIsCmdActive+0x14>)
+ 800f0e4:	6859      	ldr	r1, [r3, #4]
+ 800f0e6:	f7ff ff59 	bl	800ef9c <GetElement.constprop.0>
+ 800f0ea:	3800      	subs	r0, #0
+ 800f0ec:	bf18      	it	ne
+ 800f0ee:	2001      	movne	r0, #1
+ 800f0f0:	bd08      	pop	{r3, pc}
+ 800f0f2:	bf00      	nop
+ 800f0f4:	200025f4 	.word	0x200025f4
+
+0800f0f8 <LoRaMacConfirmQueueHandleCb>:
+ 800f0f8:	e92d 41f3 	stmdb	sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
+ 800f0fc:	2204      	movs	r2, #4
+ 800f0fe:	4e15      	ldr	r6, [pc, #84]	; (800f154 <LoRaMacConfirmQueueHandleCb+0x5c>)
+ 800f100:	4604      	mov	r4, r0
+ 800f102:	2100      	movs	r1, #0
+ 800f104:	eb0d 0002 	add.w	r0, sp, r2
+ 800f108:	f896 8020 	ldrb.w	r8, [r6, #32]
+ 800f10c:	f002 fc52 	bl	80119b4 <memset1>
+ 800f110:	2500      	movs	r5, #0
+ 800f112:	b2eb      	uxtb	r3, r5
+ 800f114:	4598      	cmp	r8, r3
+ 800f116:	d802      	bhi.n	800f11e <LoRaMacConfirmQueueHandleCb+0x26>
+ 800f118:	b002      	add	sp, #8
+ 800f11a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800f11e:	6873      	ldr	r3, [r6, #4]
+ 800f120:	7819      	ldrb	r1, [r3, #0]
+ 800f122:	7021      	strb	r1, [r4, #0]
+ 800f124:	785a      	ldrb	r2, [r3, #1]
+ 800f126:	7062      	strb	r2, [r4, #1]
+ 800f128:	789f      	ldrb	r7, [r3, #2]
+ 800f12a:	b15f      	cbz	r7, 800f144 <LoRaMacConfirmQueueHandleCb+0x4c>
+ 800f12c:	6833      	ldr	r3, [r6, #0]
+ 800f12e:	4620      	mov	r0, r4
+ 800f130:	689b      	ldr	r3, [r3, #8]
+ 800f132:	4798      	blx	r3
+ 800f134:	f7ff ff82 	bl	800f03c <LoRaMacConfirmQueueRemoveFirst>
+ 800f138:	b917      	cbnz	r7, 800f140 <LoRaMacConfirmQueueHandleCb+0x48>
+ 800f13a:	a801      	add	r0, sp, #4
+ 800f13c:	f7ff ff5e 	bl	800effc <LoRaMacConfirmQueueAdd>
+ 800f140:	3501      	adds	r5, #1
+ 800f142:	e7e6      	b.n	800f112 <LoRaMacConfirmQueueHandleCb+0x1a>
+ 800f144:	78db      	ldrb	r3, [r3, #3]
+ 800f146:	f88d 1004 	strb.w	r1, [sp, #4]
+ 800f14a:	f88d 2005 	strb.w	r2, [sp, #5]
+ 800f14e:	f88d 3007 	strb.w	r3, [sp, #7]
+ 800f152:	e7ef      	b.n	800f134 <LoRaMacConfirmQueueHandleCb+0x3c>
+ 800f154:	200025f4 	.word	0x200025f4
+
+0800f158 <LoRaMacConfirmQueueGetCnt>:
+ 800f158:	4b01      	ldr	r3, [pc, #4]	; (800f160 <LoRaMacConfirmQueueGetCnt+0x8>)
+ 800f15a:	f893 0020 	ldrb.w	r0, [r3, #32]
+ 800f15e:	4770      	bx	lr
+ 800f160:	200025f4 	.word	0x200025f4
+
+0800f164 <LoRaMacConfirmQueueIsFull>:
+ 800f164:	4b03      	ldr	r3, [pc, #12]	; (800f174 <LoRaMacConfirmQueueIsFull+0x10>)
+ 800f166:	f893 0020 	ldrb.w	r0, [r3, #32]
+ 800f16a:	2804      	cmp	r0, #4
+ 800f16c:	bf94      	ite	ls
+ 800f16e:	2000      	movls	r0, #0
+ 800f170:	2001      	movhi	r0, #1
+ 800f172:	4770      	bx	lr
+ 800f174:	200025f4 	.word	0x200025f4
+
+0800f178 <DeriveSessionKey10x>:
+ 800f178:	b51f      	push	{r0, r1, r2, r3, r4, lr}
+ 800f17a:	2400      	movs	r4, #0
+ 800f17c:	e9cd 4402 	strd	r4, r4, [sp, #8]
+ 800f180:	1fc4      	subs	r4, r0, #7
+ 800f182:	f88d 4000 	strb.w	r4, [sp]
+ 800f186:	f88d 1001 	strb.w	r1, [sp, #1]
+ 800f18a:	0a0c      	lsrs	r4, r1, #8
+ 800f18c:	f8ad 2004 	strh.w	r2, [sp, #4]
+ 800f190:	0c09      	lsrs	r1, r1, #16
+ 800f192:	0c12      	lsrs	r2, r2, #16
+ 800f194:	f88d 1003 	strb.w	r1, [sp, #3]
+ 800f198:	f88d 2006 	strb.w	r2, [sp, #6]
+ 800f19c:	f88d 3007 	strb.w	r3, [sp, #7]
+ 800f1a0:	4602      	mov	r2, r0
+ 800f1a2:	0a1b      	lsrs	r3, r3, #8
+ 800f1a4:	2101      	movs	r1, #1
+ 800f1a6:	4668      	mov	r0, sp
+ 800f1a8:	f88d 4002 	strb.w	r4, [sp, #2]
+ 800f1ac:	f88d 3008 	strb.w	r3, [sp, #8]
+ 800f1b0:	f002 fa5d 	bl	801166e <SecureElementDeriveAndStoreKey>
+ 800f1b4:	2800      	cmp	r0, #0
+ 800f1b6:	bf18      	it	ne
+ 800f1b8:	200f      	movne	r0, #15
+ 800f1ba:	b004      	add	sp, #16
+ 800f1bc:	bd10      	pop	{r4, pc}
+
+0800f1be <PayloadEncrypt>:
+ 800f1be:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800f1c2:	b088      	sub	sp, #32
+ 800f1c4:	4617      	mov	r7, r2
+ 800f1c6:	460d      	mov	r5, r1
+ 800f1c8:	9a0f      	ldr	r2, [sp, #60]	; 0x3c
+ 800f1ca:	4606      	mov	r6, r0
+ 800f1cc:	2800      	cmp	r0, #0
+ 800f1ce:	d04d      	beq.n	800f26c <PayloadEncrypt+0xae>
+ 800f1d0:	2400      	movs	r4, #0
+ 800f1d2:	2101      	movs	r1, #1
+ 800f1d4:	e9cd 4404 	strd	r4, r4, [sp, #16]
+ 800f1d8:	f88d 1010 	strb.w	r1, [sp, #16]
+ 800f1dc:	f89d 1038 	ldrb.w	r1, [sp, #56]	; 0x38
+ 800f1e0:	f88d 1015 	strb.w	r1, [sp, #21]
+ 800f1e4:	f8ad 3016 	strh.w	r3, [sp, #22]
+ 800f1e8:	0c19      	lsrs	r1, r3, #16
+ 800f1ea:	e9cd 4400 	strd	r4, r4, [sp]
+ 800f1ee:	0e1b      	lsrs	r3, r3, #24
+ 800f1f0:	e9cd 4402 	strd	r4, r4, [sp, #8]
+ 800f1f4:	f88d 3019 	strb.w	r3, [sp, #25]
+ 800f1f8:	f8ad 201a 	strh.w	r2, [sp, #26]
+ 800f1fc:	0c13      	lsrs	r3, r2, #16
+ 800f1fe:	0e12      	lsrs	r2, r2, #24
+ 800f200:	9407      	str	r4, [sp, #28]
+ 800f202:	f88d 1018 	strb.w	r1, [sp, #24]
+ 800f206:	f88d 301c 	strb.w	r3, [sp, #28]
+ 800f20a:	f88d 201d 	strb.w	r2, [sp, #29]
+ 800f20e:	b2e3      	uxtb	r3, r4
+ 800f210:	ea4f 1803 	mov.w	r8, r3, lsl #4
+ 800f214:	2d00      	cmp	r5, #0
+ 800f216:	fa5f f888 	uxtb.w	r8, r8
+ 800f21a:	dc03      	bgt.n	800f224 <PayloadEncrypt+0x66>
+ 800f21c:	2000      	movs	r0, #0
+ 800f21e:	b008      	add	sp, #32
+ 800f220:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800f224:	3301      	adds	r3, #1
+ 800f226:	2110      	movs	r1, #16
+ 800f228:	f88d 301f 	strb.w	r3, [sp, #31]
+ 800f22c:	463a      	mov	r2, r7
+ 800f22e:	466b      	mov	r3, sp
+ 800f230:	eb0d 0001 	add.w	r0, sp, r1
+ 800f234:	f002 f9b1 	bl	801159a <SecureElementAesEncrypt>
+ 800f238:	4603      	mov	r3, r0
+ 800f23a:	b9c8      	cbnz	r0, 800f270 <PayloadEncrypt+0xb2>
+ 800f23c:	2d10      	cmp	r5, #16
+ 800f23e:	46ac      	mov	ip, r5
+ 800f240:	bfa8      	it	ge
+ 800f242:	f04f 0c10 	movge.w	ip, #16
+ 800f246:	b2da      	uxtb	r2, r3
+ 800f248:	4562      	cmp	r2, ip
+ 800f24a:	f103 0301 	add.w	r3, r3, #1
+ 800f24e:	db03      	blt.n	800f258 <PayloadEncrypt+0x9a>
+ 800f250:	3d10      	subs	r5, #16
+ 800f252:	b22d      	sxth	r5, r5
+ 800f254:	3401      	adds	r4, #1
+ 800f256:	e7da      	b.n	800f20e <PayloadEncrypt+0x50>
+ 800f258:	eb08 0002 	add.w	r0, r8, r2
+ 800f25c:	3220      	adds	r2, #32
+ 800f25e:	446a      	add	r2, sp
+ 800f260:	5c31      	ldrb	r1, [r6, r0]
+ 800f262:	f812 2c20 	ldrb.w	r2, [r2, #-32]
+ 800f266:	404a      	eors	r2, r1
+ 800f268:	5432      	strb	r2, [r6, r0]
+ 800f26a:	e7ec      	b.n	800f246 <PayloadEncrypt+0x88>
+ 800f26c:	200a      	movs	r0, #10
+ 800f26e:	e7d6      	b.n	800f21e <PayloadEncrypt+0x60>
+ 800f270:	200f      	movs	r0, #15
+ 800f272:	e7d4      	b.n	800f21e <PayloadEncrypt+0x60>
+
+0800f274 <GetLastFcntDown.constprop.0>:
+ 800f274:	3801      	subs	r0, #1
+ 800f276:	2803      	cmp	r0, #3
+ 800f278:	d815      	bhi.n	800f2a6 <GetLastFcntDown.constprop.0+0x32>
+ 800f27a:	e8df f000 	tbb	[pc, r0]
+ 800f27e:	0802      	.short	0x0802
+ 800f280:	100c      	.short	0x100c
+ 800f282:	4b0a      	ldr	r3, [pc, #40]	; (800f2ac <GetLastFcntDown.constprop.0+0x38>)
+ 800f284:	681b      	ldr	r3, [r3, #0]
+ 800f286:	691b      	ldr	r3, [r3, #16]
+ 800f288:	600b      	str	r3, [r1, #0]
+ 800f28a:	2000      	movs	r0, #0
+ 800f28c:	4770      	bx	lr
+ 800f28e:	4b07      	ldr	r3, [pc, #28]	; (800f2ac <GetLastFcntDown.constprop.0+0x38>)
+ 800f290:	681b      	ldr	r3, [r3, #0]
+ 800f292:	695b      	ldr	r3, [r3, #20]
+ 800f294:	e7f8      	b.n	800f288 <GetLastFcntDown.constprop.0+0x14>
+ 800f296:	4b05      	ldr	r3, [pc, #20]	; (800f2ac <GetLastFcntDown.constprop.0+0x38>)
+ 800f298:	681b      	ldr	r3, [r3, #0]
+ 800f29a:	699b      	ldr	r3, [r3, #24]
+ 800f29c:	e7f4      	b.n	800f288 <GetLastFcntDown.constprop.0+0x14>
+ 800f29e:	4b03      	ldr	r3, [pc, #12]	; (800f2ac <GetLastFcntDown.constprop.0+0x38>)
+ 800f2a0:	681b      	ldr	r3, [r3, #0]
+ 800f2a2:	69db      	ldr	r3, [r3, #28]
+ 800f2a4:	e7f0      	b.n	800f288 <GetLastFcntDown.constprop.0+0x14>
+ 800f2a6:	2005      	movs	r0, #5
+ 800f2a8:	4770      	bx	lr
+ 800f2aa:	bf00      	nop
+ 800f2ac:	20002618 	.word	0x20002618
+
+0800f2b0 <VerifyCmacB0.constprop.0.isra.0>:
+ 800f2b0:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 800f2b4:	b0c4      	sub	sp, #272	; 0x110
+ 800f2b6:	460c      	mov	r4, r1
+ 800f2b8:	9e4a      	ldr	r6, [sp, #296]	; 0x128
+ 800f2ba:	4617      	mov	r7, r2
+ 800f2bc:	461d      	mov	r5, r3
+ 800f2be:	4680      	mov	r8, r0
+ 800f2c0:	b3b8      	cbz	r0, 800f332 <VerifyCmacB0.constprop.0.isra.0+0x82>
+ 800f2c2:	f5b1 7f80 	cmp.w	r1, #256	; 0x100
+ 800f2c6:	d836      	bhi.n	800f336 <VerifyCmacB0.constprop.0.isra.0+0x86>
+ 800f2c8:	f44f 7288 	mov.w	r2, #272	; 0x110
+ 800f2cc:	2100      	movs	r1, #0
+ 800f2ce:	4668      	mov	r0, sp
+ 800f2d0:	f002 fb70 	bl	80119b4 <memset1>
+ 800f2d4:	2349      	movs	r3, #73	; 0x49
+ 800f2d6:	9300      	str	r3, [sp, #0]
+ 800f2d8:	f44f 7380 	mov.w	r3, #256	; 0x100
+ 800f2dc:	f8ad 3004 	strh.w	r3, [sp, #4]
+ 800f2e0:	0c2b      	lsrs	r3, r5, #16
+ 800f2e2:	f88d 3008 	strb.w	r3, [sp, #8]
+ 800f2e6:	0c33      	lsrs	r3, r6, #16
+ 800f2e8:	f8ad 5006 	strh.w	r5, [sp, #6]
+ 800f2ec:	f8ad 600a 	strh.w	r6, [sp, #10]
+ 800f2f0:	f88d 300c 	strb.w	r3, [sp, #12]
+ 800f2f4:	4622      	mov	r2, r4
+ 800f2f6:	2300      	movs	r3, #0
+ 800f2f8:	4641      	mov	r1, r8
+ 800f2fa:	a804      	add	r0, sp, #16
+ 800f2fc:	0e2d      	lsrs	r5, r5, #24
+ 800f2fe:	0e36      	lsrs	r6, r6, #24
+ 800f300:	f88d 300e 	strb.w	r3, [sp, #14]
+ 800f304:	f88d 5009 	strb.w	r5, [sp, #9]
+ 800f308:	f88d 600d 	strb.w	r6, [sp, #13]
+ 800f30c:	f88d 400f 	strb.w	r4, [sp, #15]
+ 800f310:	f002 fb3c 	bl	801198c <memcpy1>
+ 800f314:	f104 0110 	add.w	r1, r4, #16
+ 800f318:	9a4b      	ldr	r2, [sp, #300]	; 0x12c
+ 800f31a:	463b      	mov	r3, r7
+ 800f31c:	b289      	uxth	r1, r1
+ 800f31e:	4668      	mov	r0, sp
+ 800f320:	f002 f925 	bl	801156e <SecureElementVerifyAesCmac>
+ 800f324:	b110      	cbz	r0, 800f32c <VerifyCmacB0.constprop.0.isra.0+0x7c>
+ 800f326:	2801      	cmp	r0, #1
+ 800f328:	bf18      	it	ne
+ 800f32a:	200f      	movne	r0, #15
+ 800f32c:	b044      	add	sp, #272	; 0x110
+ 800f32e:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800f332:	200a      	movs	r0, #10
+ 800f334:	e7fa      	b.n	800f32c <VerifyCmacB0.constprop.0.isra.0+0x7c>
+ 800f336:	200e      	movs	r0, #14
+ 800f338:	e7f8      	b.n	800f32c <VerifyCmacB0.constprop.0.isra.0+0x7c>
+	...
+
+0800f33c <LoRaMacCryptoInit>:
+ 800f33c:	b510      	push	{r4, lr}
+ 800f33e:	b190      	cbz	r0, 800f366 <LoRaMacCryptoInit+0x2a>
+ 800f340:	4c0a      	ldr	r4, [pc, #40]	; (800f36c <LoRaMacCryptoInit+0x30>)
+ 800f342:	2228      	movs	r2, #40	; 0x28
+ 800f344:	2100      	movs	r1, #0
+ 800f346:	6020      	str	r0, [r4, #0]
+ 800f348:	f002 fb34 	bl	80119b4 <memset1>
+ 800f34c:	6823      	ldr	r3, [r4, #0]
+ 800f34e:	4a08      	ldr	r2, [pc, #32]	; (800f370 <LoRaMacCryptoInit+0x34>)
+ 800f350:	601a      	str	r2, [r3, #0]
+ 800f352:	2000      	movs	r0, #0
+ 800f354:	f04f 32ff 	mov.w	r2, #4294967295
+ 800f358:	e9c3 0203 	strd	r0, r2, [r3, #12]
+ 800f35c:	e9c3 2205 	strd	r2, r2, [r3, #20]
+ 800f360:	e9c3 2207 	strd	r2, r2, [r3, #28]
+ 800f364:	bd10      	pop	{r4, pc}
+ 800f366:	2009      	movs	r0, #9
+ 800f368:	e7fc      	b.n	800f364 <LoRaMacCryptoInit+0x28>
+ 800f36a:	bf00      	nop
+ 800f36c:	20002618 	.word	0x20002618
+ 800f370:	01010100 	.word	0x01010100
+
+0800f374 <LoRaMacCryptoSetLrWanVersion>:
+ 800f374:	4b02      	ldr	r3, [pc, #8]	; (800f380 <LoRaMacCryptoSetLrWanVersion+0xc>)
+ 800f376:	681b      	ldr	r3, [r3, #0]
+ 800f378:	6018      	str	r0, [r3, #0]
+ 800f37a:	2000      	movs	r0, #0
+ 800f37c:	4770      	bx	lr
+ 800f37e:	bf00      	nop
+ 800f380:	20002618 	.word	0x20002618
+
+0800f384 <LoRaMacCryptoGetFCntUp>:
+ 800f384:	b130      	cbz	r0, 800f394 <LoRaMacCryptoGetFCntUp+0x10>
+ 800f386:	4b04      	ldr	r3, [pc, #16]	; (800f398 <LoRaMacCryptoGetFCntUp+0x14>)
+ 800f388:	681b      	ldr	r3, [r3, #0]
+ 800f38a:	68db      	ldr	r3, [r3, #12]
+ 800f38c:	3301      	adds	r3, #1
+ 800f38e:	6003      	str	r3, [r0, #0]
+ 800f390:	2000      	movs	r0, #0
+ 800f392:	4770      	bx	lr
+ 800f394:	200a      	movs	r0, #10
+ 800f396:	4770      	bx	lr
+ 800f398:	20002618 	.word	0x20002618
+
+0800f39c <LoRaMacCryptoGetFCntDown>:
+ 800f39c:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 800f39e:	460e      	mov	r6, r1
+ 800f3a0:	2100      	movs	r1, #0
+ 800f3a2:	9101      	str	r1, [sp, #4]
+ 800f3a4:	461d      	mov	r5, r3
+ 800f3a6:	b333      	cbz	r3, 800f3f6 <LoRaMacCryptoGetFCntDown+0x5a>
+ 800f3a8:	a901      	add	r1, sp, #4
+ 800f3aa:	f7ff ff63 	bl	800f274 <GetLastFcntDown.constprop.0>
+ 800f3ae:	b9d0      	cbnz	r0, 800f3e6 <LoRaMacCryptoGetFCntDown+0x4a>
+ 800f3b0:	9c01      	ldr	r4, [sp, #4]
+ 800f3b2:	1c63      	adds	r3, r4, #1
+ 800f3b4:	d004      	beq.n	800f3c0 <LoRaMacCryptoGetFCntDown+0x24>
+ 800f3b6:	b2a3      	uxth	r3, r4
+ 800f3b8:	1ad3      	subs	r3, r2, r3
+ 800f3ba:	2b00      	cmp	r3, #0
+ 800f3bc:	dd10      	ble.n	800f3e0 <LoRaMacCryptoGetFCntDown+0x44>
+ 800f3be:	18e2      	adds	r2, r4, r3
+ 800f3c0:	4b0e      	ldr	r3, [pc, #56]	; (800f3fc <LoRaMacCryptoGetFCntDown+0x60>)
+ 800f3c2:	602a      	str	r2, [r5, #0]
+ 800f3c4:	681b      	ldr	r3, [r3, #0]
+ 800f3c6:	789b      	ldrb	r3, [r3, #2]
+ 800f3c8:	b96b      	cbnz	r3, 800f3e6 <LoRaMacCryptoGetFCntDown+0x4a>
+ 800f3ca:	1b12      	subs	r2, r2, r4
+ 800f3cc:	eb63 0303 	sbc.w	r3, r3, r3
+ 800f3d0:	42b2      	cmp	r2, r6
+ 800f3d2:	f173 0300 	sbcs.w	r3, r3, #0
+ 800f3d6:	bfac      	ite	ge
+ 800f3d8:	2001      	movge	r0, #1
+ 800f3da:	2000      	movlt	r0, #0
+ 800f3dc:	00c0      	lsls	r0, r0, #3
+ 800f3de:	e002      	b.n	800f3e6 <LoRaMacCryptoGetFCntDown+0x4a>
+ 800f3e0:	d103      	bne.n	800f3ea <LoRaMacCryptoGetFCntDown+0x4e>
+ 800f3e2:	602c      	str	r4, [r5, #0]
+ 800f3e4:	2007      	movs	r0, #7
+ 800f3e6:	b002      	add	sp, #8
+ 800f3e8:	bd70      	pop	{r4, r5, r6, pc}
+ 800f3ea:	0c23      	lsrs	r3, r4, #16
+ 800f3ec:	041b      	lsls	r3, r3, #16
+ 800f3ee:	f503 3380 	add.w	r3, r3, #65536	; 0x10000
+ 800f3f2:	441a      	add	r2, r3
+ 800f3f4:	e7e4      	b.n	800f3c0 <LoRaMacCryptoGetFCntDown+0x24>
+ 800f3f6:	200a      	movs	r0, #10
+ 800f3f8:	e7f5      	b.n	800f3e6 <LoRaMacCryptoGetFCntDown+0x4a>
+ 800f3fa:	bf00      	nop
+ 800f3fc:	20002618 	.word	0x20002618
+
+0800f400 <LoRaMacCryptoSetMulticastReference>:
+ 800f400:	b128      	cbz	r0, 800f40e <LoRaMacCryptoSetMulticastReference+0xe>
+ 800f402:	4b04      	ldr	r3, [pc, #16]	; (800f414 <LoRaMacCryptoSetMulticastReference+0x14>)
+ 800f404:	681b      	ldr	r3, [r3, #0]
+ 800f406:	331c      	adds	r3, #28
+ 800f408:	6243      	str	r3, [r0, #36]	; 0x24
+ 800f40a:	2000      	movs	r0, #0
+ 800f40c:	4770      	bx	lr
+ 800f40e:	200a      	movs	r0, #10
+ 800f410:	4770      	bx	lr
+ 800f412:	bf00      	nop
+ 800f414:	20002618 	.word	0x20002618
+
+0800f418 <LoRaMacCryptoPrepareJoinRequest>:
+ 800f418:	b51f      	push	{r0, r1, r2, r3, r4, lr}
+ 800f41a:	4604      	mov	r4, r0
+ 800f41c:	b1f0      	cbz	r0, 800f45c <LoRaMacCryptoPrepareJoinRequest+0x44>
+ 800f41e:	2300      	movs	r3, #0
+ 800f420:	a803      	add	r0, sp, #12
+ 800f422:	9303      	str	r3, [sp, #12]
+ 800f424:	f002 f97a 	bl	801171c <SecureElementRandomNumber>
+ 800f428:	4a0e      	ldr	r2, [pc, #56]	; (800f464 <LoRaMacCryptoPrepareJoinRequest+0x4c>)
+ 800f42a:	f8bd 300c 	ldrh.w	r3, [sp, #12]
+ 800f42e:	6812      	ldr	r2, [r2, #0]
+ 800f430:	4620      	mov	r0, r4
+ 800f432:	8093      	strh	r3, [r2, #4]
+ 800f434:	82e3      	strh	r3, [r4, #22]
+ 800f436:	f000 fa52 	bl	800f8de <LoRaMacSerializerJoinRequest>
+ 800f43a:	b960      	cbnz	r0, 800f456 <LoRaMacCryptoPrepareJoinRequest+0x3e>
+ 800f43c:	f104 0318 	add.w	r3, r4, #24
+ 800f440:	9300      	str	r3, [sp, #0]
+ 800f442:	6821      	ldr	r1, [r4, #0]
+ 800f444:	2301      	movs	r3, #1
+ 800f446:	2213      	movs	r2, #19
+ 800f448:	f002 f888 	bl	801155c <SecureElementComputeAesCmac>
+ 800f44c:	b940      	cbnz	r0, 800f460 <LoRaMacCryptoPrepareJoinRequest+0x48>
+ 800f44e:	4620      	mov	r0, r4
+ 800f450:	f000 fa45 	bl	800f8de <LoRaMacSerializerJoinRequest>
+ 800f454:	b100      	cbz	r0, 800f458 <LoRaMacCryptoPrepareJoinRequest+0x40>
+ 800f456:	2011      	movs	r0, #17
+ 800f458:	b004      	add	sp, #16
+ 800f45a:	bd10      	pop	{r4, pc}
+ 800f45c:	200a      	movs	r0, #10
+ 800f45e:	e7fb      	b.n	800f458 <LoRaMacCryptoPrepareJoinRequest+0x40>
+ 800f460:	200f      	movs	r0, #15
+ 800f462:	e7f9      	b.n	800f458 <LoRaMacCryptoPrepareJoinRequest+0x40>
+ 800f464:	20002618 	.word	0x20002618
+
+0800f468 <LoRaMacCryptoSecureMessage>:
+ 800f468:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 800f46a:	4605      	mov	r5, r0
+ 800f46c:	b087      	sub	sp, #28
+ 800f46e:	461c      	mov	r4, r3
+ 800f470:	b33b      	cbz	r3, 800f4c2 <LoRaMacCryptoSecureMessage+0x5a>
+ 800f472:	4e2f      	ldr	r6, [pc, #188]	; (800f530 <LoRaMacCryptoSecureMessage+0xc8>)
+ 800f474:	6833      	ldr	r3, [r6, #0]
+ 800f476:	68db      	ldr	r3, [r3, #12]
+ 800f478:	4283      	cmp	r3, r0
+ 800f47a:	d857      	bhi.n	800f52c <LoRaMacCryptoSecureMessage+0xc4>
+ 800f47c:	f894 2020 	ldrb.w	r2, [r4, #32]
+ 800f480:	2a00      	cmp	r2, #0
+ 800f482:	bf14      	ite	ne
+ 800f484:	2209      	movne	r2, #9
+ 800f486:	2208      	moveq	r2, #8
+ 800f488:	4283      	cmp	r3, r0
+ 800f48a:	d305      	bcc.n	800f498 <LoRaMacCryptoSecureMessage+0x30>
+ 800f48c:	4620      	mov	r0, r4
+ 800f48e:	f000 fa5a 	bl	800f946 <LoRaMacSerializerData>
+ 800f492:	b170      	cbz	r0, 800f4b2 <LoRaMacCryptoSecureMessage+0x4a>
+ 800f494:	2011      	movs	r0, #17
+ 800f496:	e00a      	b.n	800f4ae <LoRaMacCryptoSecureMessage+0x46>
+ 800f498:	2300      	movs	r3, #0
+ 800f49a:	9001      	str	r0, [sp, #4]
+ 800f49c:	9300      	str	r3, [sp, #0]
+ 800f49e:	68a3      	ldr	r3, [r4, #8]
+ 800f4a0:	f894 1028 	ldrb.w	r1, [r4, #40]	; 0x28
+ 800f4a4:	6a60      	ldr	r0, [r4, #36]	; 0x24
+ 800f4a6:	f7ff fe8a 	bl	800f1be <PayloadEncrypt>
+ 800f4aa:	2800      	cmp	r0, #0
+ 800f4ac:	d0ee      	beq.n	800f48c <LoRaMacCryptoSecureMessage+0x24>
+ 800f4ae:	b007      	add	sp, #28
+ 800f4b0:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 800f4b2:	7923      	ldrb	r3, [r4, #4]
+ 800f4b4:	6821      	ldr	r1, [r4, #0]
+ 800f4b6:	f8b4 c008 	ldrh.w	ip, [r4, #8]
+ 800f4ba:	68a7      	ldr	r7, [r4, #8]
+ 800f4bc:	3b04      	subs	r3, #4
+ 800f4be:	b29a      	uxth	r2, r3
+ 800f4c0:	b909      	cbnz	r1, 800f4c6 <LoRaMacCryptoSecureMessage+0x5e>
+ 800f4c2:	200a      	movs	r0, #10
+ 800f4c4:	e7f3      	b.n	800f4ae <LoRaMacCryptoSecureMessage+0x46>
+ 800f4c6:	f5b2 7f80 	cmp.w	r2, #256	; 0x100
+ 800f4ca:	d82d      	bhi.n	800f528 <LoRaMacCryptoSecureMessage+0xc0>
+ 800f4cc:	f8ad c00e 	strh.w	ip, [sp, #14]
+ 800f4d0:	f88d 3017 	strb.w	r3, [sp, #23]
+ 800f4d4:	ea4f 4c17 	mov.w	ip, r7, lsr #16
+ 800f4d8:	f104 032c 	add.w	r3, r4, #44	; 0x2c
+ 800f4dc:	0e3f      	lsrs	r7, r7, #24
+ 800f4de:	f88d 7011 	strb.w	r7, [sp, #17]
+ 800f4e2:	9300      	str	r3, [sp, #0]
+ 800f4e4:	0c2f      	lsrs	r7, r5, #16
+ 800f4e6:	2308      	movs	r3, #8
+ 800f4e8:	f04f 0e49 	mov.w	lr, #73	; 0x49
+ 800f4ec:	f8ad 000c 	strh.w	r0, [sp, #12]
+ 800f4f0:	f88d 7014 	strb.w	r7, [sp, #20]
+ 800f4f4:	f88d 0016 	strb.w	r0, [sp, #22]
+ 800f4f8:	0e2f      	lsrs	r7, r5, #24
+ 800f4fa:	eb0d 0003 	add.w	r0, sp, r3
+ 800f4fe:	f8cd e008 	str.w	lr, [sp, #8]
+ 800f502:	f88d c010 	strb.w	ip, [sp, #16]
+ 800f506:	f8ad 5012 	strh.w	r5, [sp, #18]
+ 800f50a:	f88d 7015 	strb.w	r7, [sp, #21]
+ 800f50e:	f002 f825 	bl	801155c <SecureElementComputeAesCmac>
+ 800f512:	b108      	cbz	r0, 800f518 <LoRaMacCryptoSecureMessage+0xb0>
+ 800f514:	200f      	movs	r0, #15
+ 800f516:	e7ca      	b.n	800f4ae <LoRaMacCryptoSecureMessage+0x46>
+ 800f518:	4620      	mov	r0, r4
+ 800f51a:	f000 fa14 	bl	800f946 <LoRaMacSerializerData>
+ 800f51e:	2800      	cmp	r0, #0
+ 800f520:	d1b8      	bne.n	800f494 <LoRaMacCryptoSecureMessage+0x2c>
+ 800f522:	6833      	ldr	r3, [r6, #0]
+ 800f524:	60dd      	str	r5, [r3, #12]
+ 800f526:	e7c2      	b.n	800f4ae <LoRaMacCryptoSecureMessage+0x46>
+ 800f528:	200e      	movs	r0, #14
+ 800f52a:	e7c0      	b.n	800f4ae <LoRaMacCryptoSecureMessage+0x46>
+ 800f52c:	2006      	movs	r0, #6
+ 800f52e:	e7be      	b.n	800f4ae <LoRaMacCryptoSecureMessage+0x46>
+ 800f530:	20002618 	.word	0x20002618
+
+0800f534 <LoRaMacCryptoUnsecureMessage>:
+ 800f534:	e92d 41ff 	stmdb	sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
+ 800f538:	9d0a      	ldr	r5, [sp, #40]	; 0x28
+ 800f53a:	4680      	mov	r8, r0
+ 800f53c:	460f      	mov	r7, r1
+ 800f53e:	4616      	mov	r6, r2
+ 800f540:	461c      	mov	r4, r3
+ 800f542:	2d00      	cmp	r5, #0
+ 800f544:	d05a      	beq.n	800f5fc <LoRaMacCryptoUnsecureMessage+0xc8>
+ 800f546:	2300      	movs	r3, #0
+ 800f548:	a903      	add	r1, sp, #12
+ 800f54a:	4610      	mov	r0, r2
+ 800f54c:	9303      	str	r3, [sp, #12]
+ 800f54e:	f7ff fe91 	bl	800f274 <GetLastFcntDown.constprop.0>
+ 800f552:	b118      	cbz	r0, 800f55c <LoRaMacCryptoUnsecureMessage+0x28>
+ 800f554:	2006      	movs	r0, #6
+ 800f556:	b004      	add	sp, #16
+ 800f558:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 800f55c:	9b03      	ldr	r3, [sp, #12]
+ 800f55e:	429c      	cmp	r4, r3
+ 800f560:	d801      	bhi.n	800f566 <LoRaMacCryptoUnsecureMessage+0x32>
+ 800f562:	3301      	adds	r3, #1
+ 800f564:	d1f6      	bne.n	800f554 <LoRaMacCryptoUnsecureMessage+0x20>
+ 800f566:	4628      	mov	r0, r5
+ 800f568:	f000 f95e 	bl	800f828 <LoRaMacParserData>
+ 800f56c:	2800      	cmp	r0, #0
+ 800f56e:	d147      	bne.n	800f600 <LoRaMacCryptoUnsecureMessage+0xcc>
+ 800f570:	4b26      	ldr	r3, [pc, #152]	; (800f60c <LoRaMacCryptoUnsecureMessage+0xd8>)
+ 800f572:	781a      	ldrb	r2, [r3, #0]
+ 800f574:	4542      	cmp	r2, r8
+ 800f576:	d003      	beq.n	800f580 <LoRaMacCryptoUnsecureMessage+0x4c>
+ 800f578:	791a      	ldrb	r2, [r3, #4]
+ 800f57a:	4542      	cmp	r2, r8
+ 800f57c:	d142      	bne.n	800f604 <LoRaMacCryptoUnsecureMessage+0xd0>
+ 800f57e:	2001      	movs	r0, #1
+ 800f580:	68aa      	ldr	r2, [r5, #8]
+ 800f582:	42ba      	cmp	r2, r7
+ 800f584:	d140      	bne.n	800f608 <LoRaMacCryptoUnsecureMessage+0xd4>
+ 800f586:	eb03 0280 	add.w	r2, r3, r0, lsl #2
+ 800f58a:	6aeb      	ldr	r3, [r5, #44]	; 0x2c
+ 800f58c:	f892 8001 	ldrb.w	r8, [r2, #1]
+ 800f590:	7929      	ldrb	r1, [r5, #4]
+ 800f592:	e9cd 4300 	strd	r4, r3, [sp]
+ 800f596:	3904      	subs	r1, #4
+ 800f598:	7892      	ldrb	r2, [r2, #2]
+ 800f59a:	6828      	ldr	r0, [r5, #0]
+ 800f59c:	463b      	mov	r3, r7
+ 800f59e:	b289      	uxth	r1, r1
+ 800f5a0:	f7ff fe86 	bl	800f2b0 <VerifyCmacB0.constprop.0.isra.0>
+ 800f5a4:	2800      	cmp	r0, #0
+ 800f5a6:	d1d6      	bne.n	800f556 <LoRaMacCryptoUnsecureMessage+0x22>
+ 800f5a8:	f895 3020 	ldrb.w	r3, [r5, #32]
+ 800f5ac:	9401      	str	r4, [sp, #4]
+ 800f5ae:	2b00      	cmp	r3, #0
+ 800f5b0:	f04f 0301 	mov.w	r3, #1
+ 800f5b4:	9300      	str	r3, [sp, #0]
+ 800f5b6:	bf14      	ite	ne
+ 800f5b8:	4642      	movne	r2, r8
+ 800f5ba:	2208      	moveq	r2, #8
+ 800f5bc:	f895 1028 	ldrb.w	r1, [r5, #40]	; 0x28
+ 800f5c0:	6a68      	ldr	r0, [r5, #36]	; 0x24
+ 800f5c2:	463b      	mov	r3, r7
+ 800f5c4:	f7ff fdfb 	bl	800f1be <PayloadEncrypt>
+ 800f5c8:	2800      	cmp	r0, #0
+ 800f5ca:	d1c4      	bne.n	800f556 <LoRaMacCryptoUnsecureMessage+0x22>
+ 800f5cc:	3e01      	subs	r6, #1
+ 800f5ce:	2e03      	cmp	r6, #3
+ 800f5d0:	d8c1      	bhi.n	800f556 <LoRaMacCryptoUnsecureMessage+0x22>
+ 800f5d2:	e8df f006 	tbb	[pc, r6]
+ 800f5d6:	0702      	.short	0x0702
+ 800f5d8:	0f0b      	.short	0x0f0b
+ 800f5da:	4b0d      	ldr	r3, [pc, #52]	; (800f610 <LoRaMacCryptoUnsecureMessage+0xdc>)
+ 800f5dc:	681b      	ldr	r3, [r3, #0]
+ 800f5de:	611c      	str	r4, [r3, #16]
+ 800f5e0:	621c      	str	r4, [r3, #32]
+ 800f5e2:	e7b8      	b.n	800f556 <LoRaMacCryptoUnsecureMessage+0x22>
+ 800f5e4:	4b0a      	ldr	r3, [pc, #40]	; (800f610 <LoRaMacCryptoUnsecureMessage+0xdc>)
+ 800f5e6:	681b      	ldr	r3, [r3, #0]
+ 800f5e8:	615c      	str	r4, [r3, #20]
+ 800f5ea:	e7f9      	b.n	800f5e0 <LoRaMacCryptoUnsecureMessage+0xac>
+ 800f5ec:	4b08      	ldr	r3, [pc, #32]	; (800f610 <LoRaMacCryptoUnsecureMessage+0xdc>)
+ 800f5ee:	681b      	ldr	r3, [r3, #0]
+ 800f5f0:	619c      	str	r4, [r3, #24]
+ 800f5f2:	e7f5      	b.n	800f5e0 <LoRaMacCryptoUnsecureMessage+0xac>
+ 800f5f4:	4b06      	ldr	r3, [pc, #24]	; (800f610 <LoRaMacCryptoUnsecureMessage+0xdc>)
+ 800f5f6:	681b      	ldr	r3, [r3, #0]
+ 800f5f8:	61dc      	str	r4, [r3, #28]
+ 800f5fa:	e7ac      	b.n	800f556 <LoRaMacCryptoUnsecureMessage+0x22>
+ 800f5fc:	200a      	movs	r0, #10
+ 800f5fe:	e7aa      	b.n	800f556 <LoRaMacCryptoUnsecureMessage+0x22>
+ 800f600:	2010      	movs	r0, #16
+ 800f602:	e7a8      	b.n	800f556 <LoRaMacCryptoUnsecureMessage+0x22>
+ 800f604:	200c      	movs	r0, #12
+ 800f606:	e7a6      	b.n	800f556 <LoRaMacCryptoUnsecureMessage+0x22>
+ 800f608:	2002      	movs	r0, #2
+ 800f60a:	e7a4      	b.n	800f556 <LoRaMacCryptoUnsecureMessage+0x22>
+ 800f60c:	200008b4 	.word	0x200008b4
+ 800f610:	20002618 	.word	0x20002618
+
+0800f614 <LoRaMacCryptoDeriveLifeTimeKey>:
+ 800f614:	b51f      	push	{r0, r1, r2, r3, r4, lr}
+ 800f616:	460a      	mov	r2, r1
+ 800f618:	2a0b      	cmp	r2, #11
+ 800f61a:	f04f 0100 	mov.w	r1, #0
+ 800f61e:	e9cd 1100 	strd	r1, r1, [sp]
+ 800f622:	e9cd 1102 	strd	r1, r1, [sp, #8]
+ 800f626:	d007      	beq.n	800f638 <LoRaMacCryptoDeriveLifeTimeKey+0x24>
+ 800f628:	2a0c      	cmp	r2, #12
+ 800f62a:	d013      	beq.n	800f654 <LoRaMacCryptoDeriveLifeTimeKey+0x40>
+ 800f62c:	2a0a      	cmp	r2, #10
+ 800f62e:	d00f      	beq.n	800f650 <LoRaMacCryptoDeriveLifeTimeKey+0x3c>
+ 800f630:	200b      	movs	r0, #11
+ 800f632:	b005      	add	sp, #20
+ 800f634:	f85d fb04 	ldr.w	pc, [sp], #4
+ 800f638:	2801      	cmp	r0, #1
+ 800f63a:	d102      	bne.n	800f642 <LoRaMacCryptoDeriveLifeTimeKey+0x2e>
+ 800f63c:	2320      	movs	r3, #32
+ 800f63e:	f88d 3000 	strb.w	r3, [sp]
+ 800f642:	4668      	mov	r0, sp
+ 800f644:	f002 f813 	bl	801166e <SecureElementDeriveAndStoreKey>
+ 800f648:	2800      	cmp	r0, #0
+ 800f64a:	bf18      	it	ne
+ 800f64c:	200f      	movne	r0, #15
+ 800f64e:	e7f0      	b.n	800f632 <LoRaMacCryptoDeriveLifeTimeKey+0x1e>
+ 800f650:	2330      	movs	r3, #48	; 0x30
+ 800f652:	e7f4      	b.n	800f63e <LoRaMacCryptoDeriveLifeTimeKey+0x2a>
+ 800f654:	210b      	movs	r1, #11
+ 800f656:	e7f4      	b.n	800f642 <LoRaMacCryptoDeriveLifeTimeKey+0x2e>
+
+0800f658 <LoRaMacCryptoSetKey>:
+ 800f658:	b538      	push	{r3, r4, r5, lr}
+ 800f65a:	4605      	mov	r5, r0
+ 800f65c:	f002 f802 	bl	8011664 <SecureElementSetKey>
+ 800f660:	4604      	mov	r4, r0
+ 800f662:	b978      	cbnz	r0, 800f684 <LoRaMacCryptoSetKey+0x2c>
+ 800f664:	b97d      	cbnz	r5, 800f686 <LoRaMacCryptoSetKey+0x2e>
+ 800f666:	4b09      	ldr	r3, [pc, #36]	; (800f68c <LoRaMacCryptoSetKey+0x34>)
+ 800f668:	681b      	ldr	r3, [r3, #0]
+ 800f66a:	210b      	movs	r1, #11
+ 800f66c:	7898      	ldrb	r0, [r3, #2]
+ 800f66e:	f7ff ffd1 	bl	800f614 <LoRaMacCryptoDeriveLifeTimeKey>
+ 800f672:	b938      	cbnz	r0, 800f684 <LoRaMacCryptoSetKey+0x2c>
+ 800f674:	210c      	movs	r1, #12
+ 800f676:	f7ff ffcd 	bl	800f614 <LoRaMacCryptoDeriveLifeTimeKey>
+ 800f67a:	b918      	cbnz	r0, 800f684 <LoRaMacCryptoSetKey+0x2c>
+ 800f67c:	210a      	movs	r1, #10
+ 800f67e:	f7ff ffc9 	bl	800f614 <LoRaMacCryptoDeriveLifeTimeKey>
+ 800f682:	b100      	cbz	r0, 800f686 <LoRaMacCryptoSetKey+0x2e>
+ 800f684:	240f      	movs	r4, #15
+ 800f686:	4620      	mov	r0, r4
+ 800f688:	bd38      	pop	{r3, r4, r5, pc}
+ 800f68a:	bf00      	nop
+ 800f68c:	20002618 	.word	0x20002618
+
+0800f690 <LoRaMacCryptoHandleJoinAccept>:
+ 800f690:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
+ 800f694:	4680      	mov	r8, r0
+ 800f696:	b08f      	sub	sp, #60	; 0x3c
+ 800f698:	460c      	mov	r4, r1
+ 800f69a:	4617      	mov	r7, r2
+ 800f69c:	2a00      	cmp	r2, #0
+ 800f69e:	d06b      	beq.n	800f778 <LoRaMacCryptoHandleJoinAccept+0xe8>
+ 800f6a0:	2900      	cmp	r1, #0
+ 800f6a2:	d069      	beq.n	800f778 <LoRaMacCryptoHandleJoinAccept+0xe8>
+ 800f6a4:	2500      	movs	r5, #0
+ 800f6a6:	4629      	mov	r1, r5
+ 800f6a8:	221d      	movs	r2, #29
+ 800f6aa:	a806      	add	r0, sp, #24
+ 800f6ac:	9505      	str	r5, [sp, #20]
+ 800f6ae:	f004 fea3 	bl	80143f8 <memset>
+ 800f6b2:	f88d 5013 	strb.w	r5, [sp, #19]
+ 800f6b6:	4d34      	ldr	r5, [pc, #208]	; (800f788 <LoRaMacCryptoHandleJoinAccept+0xf8>)
+ 800f6b8:	682b      	ldr	r3, [r5, #0]
+ 800f6ba:	f10d 0914 	add.w	r9, sp, #20
+ 800f6be:	889e      	ldrh	r6, [r3, #4]
+ 800f6c0:	f8cd 9004 	str.w	r9, [sp, #4]
+ 800f6c4:	f10d 0313 	add.w	r3, sp, #19
+ 800f6c8:	9302      	str	r3, [sp, #8]
+ 800f6ca:	793b      	ldrb	r3, [r7, #4]
+ 800f6cc:	9300      	str	r3, [sp, #0]
+ 800f6ce:	683b      	ldr	r3, [r7, #0]
+ 800f6d0:	4632      	mov	r2, r6
+ 800f6d2:	4621      	mov	r1, r4
+ 800f6d4:	4640      	mov	r0, r8
+ 800f6d6:	f001 ffe6 	bl	80116a6 <SecureElementProcessJoinAccept>
+ 800f6da:	2800      	cmp	r0, #0
+ 800f6dc:	d14e      	bne.n	800f77c <LoRaMacCryptoHandleJoinAccept+0xec>
+ 800f6de:	6838      	ldr	r0, [r7, #0]
+ 800f6e0:	793a      	ldrb	r2, [r7, #4]
+ 800f6e2:	4649      	mov	r1, r9
+ 800f6e4:	f002 f952 	bl	801198c <memcpy1>
+ 800f6e8:	4638      	mov	r0, r7
+ 800f6ea:	f000 f84f 	bl	800f78c <LoRaMacParserJoinAccept>
+ 800f6ee:	2800      	cmp	r0, #0
+ 800f6f0:	d146      	bne.n	800f780 <LoRaMacCryptoHandleJoinAccept+0xf0>
+ 800f6f2:	7a3c      	ldrb	r4, [r7, #8]
+ 800f6f4:	79fa      	ldrb	r2, [r7, #7]
+ 800f6f6:	79bb      	ldrb	r3, [r7, #6]
+ 800f6f8:	0424      	lsls	r4, r4, #16
+ 800f6fa:	ea44 2402 	orr.w	r4, r4, r2, lsl #8
+ 800f6fe:	431c      	orrs	r4, r3
+ 800f700:	682b      	ldr	r3, [r5, #0]
+ 800f702:	689a      	ldr	r2, [r3, #8]
+ 800f704:	4294      	cmp	r4, r2
+ 800f706:	d93d      	bls.n	800f784 <LoRaMacCryptoHandleJoinAccept+0xf4>
+ 800f708:	609c      	str	r4, [r3, #8]
+ 800f70a:	f89d 0013 	ldrb.w	r0, [sp, #19]
+ 800f70e:	210b      	movs	r1, #11
+ 800f710:	f7ff ff80 	bl	800f614 <LoRaMacCryptoDeriveLifeTimeKey>
+ 800f714:	4603      	mov	r3, r0
+ 800f716:	bb58      	cbnz	r0, 800f770 <LoRaMacCryptoHandleJoinAccept+0xe0>
+ 800f718:	210c      	movs	r1, #12
+ 800f71a:	f7ff ff7b 	bl	800f614 <LoRaMacCryptoDeriveLifeTimeKey>
+ 800f71e:	4603      	mov	r3, r0
+ 800f720:	bb30      	cbnz	r0, 800f770 <LoRaMacCryptoHandleJoinAccept+0xe0>
+ 800f722:	210a      	movs	r1, #10
+ 800f724:	f7ff ff76 	bl	800f614 <LoRaMacCryptoDeriveLifeTimeKey>
+ 800f728:	4603      	mov	r3, r0
+ 800f72a:	bb08      	cbnz	r0, 800f770 <LoRaMacCryptoHandleJoinAccept+0xe0>
+ 800f72c:	7a7b      	ldrb	r3, [r7, #9]
+ 800f72e:	7aba      	ldrb	r2, [r7, #10]
+ 800f730:	7aff      	ldrb	r7, [r7, #11]
+ 800f732:	043f      	lsls	r7, r7, #16
+ 800f734:	ea47 2702 	orr.w	r7, r7, r2, lsl #8
+ 800f738:	431f      	orrs	r7, r3
+ 800f73a:	463a      	mov	r2, r7
+ 800f73c:	4633      	mov	r3, r6
+ 800f73e:	4621      	mov	r1, r4
+ 800f740:	2009      	movs	r0, #9
+ 800f742:	f7ff fd19 	bl	800f178 <DeriveSessionKey10x>
+ 800f746:	4603      	mov	r3, r0
+ 800f748:	b990      	cbnz	r0, 800f770 <LoRaMacCryptoHandleJoinAccept+0xe0>
+ 800f74a:	4633      	mov	r3, r6
+ 800f74c:	463a      	mov	r2, r7
+ 800f74e:	4621      	mov	r1, r4
+ 800f750:	2008      	movs	r0, #8
+ 800f752:	f7ff fd11 	bl	800f178 <DeriveSessionKey10x>
+ 800f756:	4603      	mov	r3, r0
+ 800f758:	b950      	cbnz	r0, 800f770 <LoRaMacCryptoHandleJoinAccept+0xe0>
+ 800f75a:	682a      	ldr	r2, [r5, #0]
+ 800f75c:	f89d 1013 	ldrb.w	r1, [sp, #19]
+ 800f760:	7091      	strb	r1, [r2, #2]
+ 800f762:	2100      	movs	r1, #0
+ 800f764:	60d1      	str	r1, [r2, #12]
+ 800f766:	f04f 31ff 	mov.w	r1, #4294967295
+ 800f76a:	e9c2 1104 	strd	r1, r1, [r2, #16]
+ 800f76e:	6191      	str	r1, [r2, #24]
+ 800f770:	4618      	mov	r0, r3
+ 800f772:	b00f      	add	sp, #60	; 0x3c
+ 800f774:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
+ 800f778:	230a      	movs	r3, #10
+ 800f77a:	e7f9      	b.n	800f770 <LoRaMacCryptoHandleJoinAccept+0xe0>
+ 800f77c:	230f      	movs	r3, #15
+ 800f77e:	e7f7      	b.n	800f770 <LoRaMacCryptoHandleJoinAccept+0xe0>
+ 800f780:	2310      	movs	r3, #16
+ 800f782:	e7f5      	b.n	800f770 <LoRaMacCryptoHandleJoinAccept+0xe0>
+ 800f784:	2303      	movs	r3, #3
+ 800f786:	e7f3      	b.n	800f770 <LoRaMacCryptoHandleJoinAccept+0xe0>
+ 800f788:	20002618 	.word	0x20002618
+
+0800f78c <LoRaMacParserJoinAccept>:
+ 800f78c:	b510      	push	{r4, lr}
+ 800f78e:	4604      	mov	r4, r0
+ 800f790:	2800      	cmp	r0, #0
+ 800f792:	d045      	beq.n	800f820 <LoRaMacParserJoinAccept+0x94>
+ 800f794:	6801      	ldr	r1, [r0, #0]
+ 800f796:	2900      	cmp	r1, #0
+ 800f798:	d042      	beq.n	800f820 <LoRaMacParserJoinAccept+0x94>
+ 800f79a:	f811 3b01 	ldrb.w	r3, [r1], #1
+ 800f79e:	7143      	strb	r3, [r0, #5]
+ 800f7a0:	2203      	movs	r2, #3
+ 800f7a2:	3006      	adds	r0, #6
+ 800f7a4:	f002 f8f2 	bl	801198c <memcpy1>
+ 800f7a8:	4620      	mov	r0, r4
+ 800f7aa:	2203      	movs	r2, #3
+ 800f7ac:	f850 1b09 	ldr.w	r1, [r0], #9
+ 800f7b0:	3104      	adds	r1, #4
+ 800f7b2:	f002 f8eb 	bl	801198c <memcpy1>
+ 800f7b6:	6821      	ldr	r1, [r4, #0]
+ 800f7b8:	79cb      	ldrb	r3, [r1, #7]
+ 800f7ba:	60e3      	str	r3, [r4, #12]
+ 800f7bc:	7a0a      	ldrb	r2, [r1, #8]
+ 800f7be:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
+ 800f7c2:	60e3      	str	r3, [r4, #12]
+ 800f7c4:	7a4a      	ldrb	r2, [r1, #9]
+ 800f7c6:	ea43 4302 	orr.w	r3, r3, r2, lsl #16
+ 800f7ca:	60e3      	str	r3, [r4, #12]
+ 800f7cc:	7a8a      	ldrb	r2, [r1, #10]
+ 800f7ce:	ea43 6302 	orr.w	r3, r3, r2, lsl #24
+ 800f7d2:	60e3      	str	r3, [r4, #12]
+ 800f7d4:	7acb      	ldrb	r3, [r1, #11]
+ 800f7d6:	7423      	strb	r3, [r4, #16]
+ 800f7d8:	7b0b      	ldrb	r3, [r1, #12]
+ 800f7da:	7463      	strb	r3, [r4, #17]
+ 800f7dc:	7923      	ldrb	r3, [r4, #4]
+ 800f7de:	2b21      	cmp	r3, #33	; 0x21
+ 800f7e0:	d11a      	bne.n	800f818 <LoRaMacParserJoinAccept+0x8c>
+ 800f7e2:	2210      	movs	r2, #16
+ 800f7e4:	310d      	adds	r1, #13
+ 800f7e6:	f104 0012 	add.w	r0, r4, #18
+ 800f7ea:	f002 f8cf 	bl	801198c <memcpy1>
+ 800f7ee:	221d      	movs	r2, #29
+ 800f7f0:	6821      	ldr	r1, [r4, #0]
+ 800f7f2:	1c50      	adds	r0, r2, #1
+ 800f7f4:	5c8b      	ldrb	r3, [r1, r2]
+ 800f7f6:	6263      	str	r3, [r4, #36]	; 0x24
+ 800f7f8:	5c08      	ldrb	r0, [r1, r0]
+ 800f7fa:	ea43 2300 	orr.w	r3, r3, r0, lsl #8
+ 800f7fe:	1c90      	adds	r0, r2, #2
+ 800f800:	6263      	str	r3, [r4, #36]	; 0x24
+ 800f802:	5c08      	ldrb	r0, [r1, r0]
+ 800f804:	3203      	adds	r2, #3
+ 800f806:	ea43 4300 	orr.w	r3, r3, r0, lsl #16
+ 800f80a:	6263      	str	r3, [r4, #36]	; 0x24
+ 800f80c:	5c8a      	ldrb	r2, [r1, r2]
+ 800f80e:	ea43 6302 	orr.w	r3, r3, r2, lsl #24
+ 800f812:	6263      	str	r3, [r4, #36]	; 0x24
+ 800f814:	2000      	movs	r0, #0
+ 800f816:	bd10      	pop	{r4, pc}
+ 800f818:	2b11      	cmp	r3, #17
+ 800f81a:	dc03      	bgt.n	800f824 <LoRaMacParserJoinAccept+0x98>
+ 800f81c:	220d      	movs	r2, #13
+ 800f81e:	e7e7      	b.n	800f7f0 <LoRaMacParserJoinAccept+0x64>
+ 800f820:	2002      	movs	r0, #2
+ 800f822:	e7f8      	b.n	800f816 <LoRaMacParserJoinAccept+0x8a>
+ 800f824:	2001      	movs	r0, #1
+ 800f826:	e7f6      	b.n	800f816 <LoRaMacParserJoinAccept+0x8a>
+
+0800f828 <LoRaMacParserData>:
+ 800f828:	b510      	push	{r4, lr}
+ 800f82a:	4604      	mov	r4, r0
+ 800f82c:	2800      	cmp	r0, #0
+ 800f82e:	d054      	beq.n	800f8da <LoRaMacParserData+0xb2>
+ 800f830:	6801      	ldr	r1, [r0, #0]
+ 800f832:	2900      	cmp	r1, #0
+ 800f834:	d051      	beq.n	800f8da <LoRaMacParserData+0xb2>
+ 800f836:	780b      	ldrb	r3, [r1, #0]
+ 800f838:	7143      	strb	r3, [r0, #5]
+ 800f83a:	784b      	ldrb	r3, [r1, #1]
+ 800f83c:	6083      	str	r3, [r0, #8]
+ 800f83e:	788a      	ldrb	r2, [r1, #2]
+ 800f840:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
+ 800f844:	6083      	str	r3, [r0, #8]
+ 800f846:	78ca      	ldrb	r2, [r1, #3]
+ 800f848:	ea43 4302 	orr.w	r3, r3, r2, lsl #16
+ 800f84c:	6083      	str	r3, [r0, #8]
+ 800f84e:	790a      	ldrb	r2, [r1, #4]
+ 800f850:	ea43 6302 	orr.w	r3, r3, r2, lsl #24
+ 800f854:	6083      	str	r3, [r0, #8]
+ 800f856:	794b      	ldrb	r3, [r1, #5]
+ 800f858:	7303      	strb	r3, [r0, #12]
+ 800f85a:	798b      	ldrb	r3, [r1, #6]
+ 800f85c:	81c3      	strh	r3, [r0, #14]
+ 800f85e:	79ca      	ldrb	r2, [r1, #7]
+ 800f860:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
+ 800f864:	7b02      	ldrb	r2, [r0, #12]
+ 800f866:	81c3      	strh	r3, [r0, #14]
+ 800f868:	f002 020f 	and.w	r2, r2, #15
+ 800f86c:	3108      	adds	r1, #8
+ 800f86e:	3010      	adds	r0, #16
+ 800f870:	f002 f88c 	bl	801198c <memcpy1>
+ 800f874:	7b23      	ldrb	r3, [r4, #12]
+ 800f876:	2200      	movs	r2, #0
+ 800f878:	f003 030f 	and.w	r3, r3, #15
+ 800f87c:	f884 2020 	strb.w	r2, [r4, #32]
+ 800f880:	f884 2028 	strb.w	r2, [r4, #40]	; 0x28
+ 800f884:	7922      	ldrb	r2, [r4, #4]
+ 800f886:	f103 0008 	add.w	r0, r3, #8
+ 800f88a:	1a11      	subs	r1, r2, r0
+ 800f88c:	2904      	cmp	r1, #4
+ 800f88e:	dd0d      	ble.n	800f8ac <LoRaMacParserData+0x84>
+ 800f890:	6821      	ldr	r1, [r4, #0]
+ 800f892:	3309      	adds	r3, #9
+ 800f894:	3a04      	subs	r2, #4
+ 800f896:	1ad2      	subs	r2, r2, r3
+ 800f898:	5c08      	ldrb	r0, [r1, r0]
+ 800f89a:	f884 0020 	strb.w	r0, [r4, #32]
+ 800f89e:	b2d2      	uxtb	r2, r2
+ 800f8a0:	6a60      	ldr	r0, [r4, #36]	; 0x24
+ 800f8a2:	f884 2028 	strb.w	r2, [r4, #40]	; 0x28
+ 800f8a6:	4419      	add	r1, r3
+ 800f8a8:	f002 f870 	bl	801198c <memcpy1>
+ 800f8ac:	7923      	ldrb	r3, [r4, #4]
+ 800f8ae:	6822      	ldr	r2, [r4, #0]
+ 800f8b0:	441a      	add	r2, r3
+ 800f8b2:	2000      	movs	r0, #0
+ 800f8b4:	f812 3c04 	ldrb.w	r3, [r2, #-4]
+ 800f8b8:	62e3      	str	r3, [r4, #44]	; 0x2c
+ 800f8ba:	f812 1c03 	ldrb.w	r1, [r2, #-3]
+ 800f8be:	ea43 2301 	orr.w	r3, r3, r1, lsl #8
+ 800f8c2:	62e3      	str	r3, [r4, #44]	; 0x2c
+ 800f8c4:	f812 1c02 	ldrb.w	r1, [r2, #-2]
+ 800f8c8:	ea43 4301 	orr.w	r3, r3, r1, lsl #16
+ 800f8cc:	62e3      	str	r3, [r4, #44]	; 0x2c
+ 800f8ce:	f812 2c01 	ldrb.w	r2, [r2, #-1]
+ 800f8d2:	ea43 6302 	orr.w	r3, r3, r2, lsl #24
+ 800f8d6:	62e3      	str	r3, [r4, #44]	; 0x2c
+ 800f8d8:	bd10      	pop	{r4, pc}
+ 800f8da:	2002      	movs	r0, #2
+ 800f8dc:	e7fc      	b.n	800f8d8 <LoRaMacParserData+0xb0>
+
+0800f8de <LoRaMacSerializerJoinRequest>:
+ 800f8de:	b510      	push	{r4, lr}
+ 800f8e0:	4604      	mov	r4, r0
+ 800f8e2:	b360      	cbz	r0, 800f93e <LoRaMacSerializerJoinRequest+0x60>
+ 800f8e4:	6803      	ldr	r3, [r0, #0]
+ 800f8e6:	b353      	cbz	r3, 800f93e <LoRaMacSerializerJoinRequest+0x60>
+ 800f8e8:	7902      	ldrb	r2, [r0, #4]
+ 800f8ea:	2a16      	cmp	r2, #22
+ 800f8ec:	d929      	bls.n	800f942 <LoRaMacSerializerJoinRequest+0x64>
+ 800f8ee:	7942      	ldrb	r2, [r0, #5]
+ 800f8f0:	701a      	strb	r2, [r3, #0]
+ 800f8f2:	4601      	mov	r1, r0
+ 800f8f4:	2208      	movs	r2, #8
+ 800f8f6:	f851 0b06 	ldr.w	r0, [r1], #6
+ 800f8fa:	3001      	adds	r0, #1
+ 800f8fc:	f002 f850 	bl	80119a0 <memcpyr>
+ 800f900:	4621      	mov	r1, r4
+ 800f902:	2208      	movs	r2, #8
+ 800f904:	f851 0b0e 	ldr.w	r0, [r1], #14
+ 800f908:	3009      	adds	r0, #9
+ 800f90a:	f002 f849 	bl	80119a0 <memcpyr>
+ 800f90e:	6823      	ldr	r3, [r4, #0]
+ 800f910:	8ae2      	ldrh	r2, [r4, #22]
+ 800f912:	745a      	strb	r2, [r3, #17]
+ 800f914:	8ae3      	ldrh	r3, [r4, #22]
+ 800f916:	6822      	ldr	r2, [r4, #0]
+ 800f918:	0a1b      	lsrs	r3, r3, #8
+ 800f91a:	7493      	strb	r3, [r2, #18]
+ 800f91c:	6823      	ldr	r3, [r4, #0]
+ 800f91e:	69a2      	ldr	r2, [r4, #24]
+ 800f920:	74da      	strb	r2, [r3, #19]
+ 800f922:	69a3      	ldr	r3, [r4, #24]
+ 800f924:	6822      	ldr	r2, [r4, #0]
+ 800f926:	0a1b      	lsrs	r3, r3, #8
+ 800f928:	7513      	strb	r3, [r2, #20]
+ 800f92a:	6823      	ldr	r3, [r4, #0]
+ 800f92c:	8b62      	ldrh	r2, [r4, #26]
+ 800f92e:	755a      	strb	r2, [r3, #21]
+ 800f930:	6823      	ldr	r3, [r4, #0]
+ 800f932:	7ee2      	ldrb	r2, [r4, #27]
+ 800f934:	759a      	strb	r2, [r3, #22]
+ 800f936:	2317      	movs	r3, #23
+ 800f938:	7123      	strb	r3, [r4, #4]
+ 800f93a:	2000      	movs	r0, #0
+ 800f93c:	bd10      	pop	{r4, pc}
+ 800f93e:	2001      	movs	r0, #1
+ 800f940:	e7fc      	b.n	800f93c <LoRaMacSerializerJoinRequest+0x5e>
+ 800f942:	2002      	movs	r0, #2
+ 800f944:	e7fa      	b.n	800f93c <LoRaMacSerializerJoinRequest+0x5e>
+
+0800f946 <LoRaMacSerializerData>:
+ 800f946:	b538      	push	{r3, r4, r5, lr}
+ 800f948:	4604      	mov	r4, r0
+ 800f94a:	2800      	cmp	r0, #0
+ 800f94c:	d063      	beq.n	800fa16 <LoRaMacSerializerData+0xd0>
+ 800f94e:	6801      	ldr	r1, [r0, #0]
+ 800f950:	2900      	cmp	r1, #0
+ 800f952:	d060      	beq.n	800fa16 <LoRaMacSerializerData+0xd0>
+ 800f954:	7b03      	ldrb	r3, [r0, #12]
+ 800f956:	f890 2028 	ldrb.w	r2, [r0, #40]	; 0x28
+ 800f95a:	f003 030f 	and.w	r3, r3, #15
+ 800f95e:	2a00      	cmp	r2, #0
+ 800f960:	d157      	bne.n	800fa12 <LoRaMacSerializerData+0xcc>
+ 800f962:	3308      	adds	r3, #8
+ 800f964:	7920      	ldrb	r0, [r4, #4]
+ 800f966:	3204      	adds	r2, #4
+ 800f968:	4413      	add	r3, r2
+ 800f96a:	4298      	cmp	r0, r3
+ 800f96c:	d355      	bcc.n	800fa1a <LoRaMacSerializerData+0xd4>
+ 800f96e:	7963      	ldrb	r3, [r4, #5]
+ 800f970:	700b      	strb	r3, [r1, #0]
+ 800f972:	6823      	ldr	r3, [r4, #0]
+ 800f974:	68a2      	ldr	r2, [r4, #8]
+ 800f976:	705a      	strb	r2, [r3, #1]
+ 800f978:	68a3      	ldr	r3, [r4, #8]
+ 800f97a:	6822      	ldr	r2, [r4, #0]
+ 800f97c:	0a1b      	lsrs	r3, r3, #8
+ 800f97e:	7093      	strb	r3, [r2, #2]
+ 800f980:	6823      	ldr	r3, [r4, #0]
+ 800f982:	8962      	ldrh	r2, [r4, #10]
+ 800f984:	70da      	strb	r2, [r3, #3]
+ 800f986:	6823      	ldr	r3, [r4, #0]
+ 800f988:	7ae2      	ldrb	r2, [r4, #11]
+ 800f98a:	711a      	strb	r2, [r3, #4]
+ 800f98c:	6823      	ldr	r3, [r4, #0]
+ 800f98e:	7b22      	ldrb	r2, [r4, #12]
+ 800f990:	715a      	strb	r2, [r3, #5]
+ 800f992:	6823      	ldr	r3, [r4, #0]
+ 800f994:	89e2      	ldrh	r2, [r4, #14]
+ 800f996:	719a      	strb	r2, [r3, #6]
+ 800f998:	89e3      	ldrh	r3, [r4, #14]
+ 800f99a:	6822      	ldr	r2, [r4, #0]
+ 800f99c:	0a1b      	lsrs	r3, r3, #8
+ 800f99e:	4621      	mov	r1, r4
+ 800f9a0:	71d3      	strb	r3, [r2, #7]
+ 800f9a2:	7b22      	ldrb	r2, [r4, #12]
+ 800f9a4:	f851 0b10 	ldr.w	r0, [r1], #16
+ 800f9a8:	f002 020f 	and.w	r2, r2, #15
+ 800f9ac:	3008      	adds	r0, #8
+ 800f9ae:	f001 ffed 	bl	801198c <memcpy1>
+ 800f9b2:	7b23      	ldrb	r3, [r4, #12]
+ 800f9b4:	f894 2028 	ldrb.w	r2, [r4, #40]	; 0x28
+ 800f9b8:	f003 030f 	and.w	r3, r3, #15
+ 800f9bc:	f103 0508 	add.w	r5, r3, #8
+ 800f9c0:	b12a      	cbz	r2, 800f9ce <LoRaMacSerializerData+0x88>
+ 800f9c2:	6822      	ldr	r2, [r4, #0]
+ 800f9c4:	f894 1020 	ldrb.w	r1, [r4, #32]
+ 800f9c8:	5551      	strb	r1, [r2, r5]
+ 800f9ca:	f103 0509 	add.w	r5, r3, #9
+ 800f9ce:	6820      	ldr	r0, [r4, #0]
+ 800f9d0:	f894 2028 	ldrb.w	r2, [r4, #40]	; 0x28
+ 800f9d4:	6a61      	ldr	r1, [r4, #36]	; 0x24
+ 800f9d6:	4428      	add	r0, r5
+ 800f9d8:	f001 ffd8 	bl	801198c <memcpy1>
+ 800f9dc:	f894 3028 	ldrb.w	r3, [r4, #40]	; 0x28
+ 800f9e0:	6822      	ldr	r2, [r4, #0]
+ 800f9e2:	6ae1      	ldr	r1, [r4, #44]	; 0x2c
+ 800f9e4:	442b      	add	r3, r5
+ 800f9e6:	54d1      	strb	r1, [r2, r3]
+ 800f9e8:	1c5a      	adds	r2, r3, #1
+ 800f9ea:	6ae1      	ldr	r1, [r4, #44]	; 0x2c
+ 800f9ec:	6820      	ldr	r0, [r4, #0]
+ 800f9ee:	b292      	uxth	r2, r2
+ 800f9f0:	0a09      	lsrs	r1, r1, #8
+ 800f9f2:	5481      	strb	r1, [r0, r2]
+ 800f9f4:	1c9a      	adds	r2, r3, #2
+ 800f9f6:	6821      	ldr	r1, [r4, #0]
+ 800f9f8:	8de0      	ldrh	r0, [r4, #46]	; 0x2e
+ 800f9fa:	b292      	uxth	r2, r2
+ 800f9fc:	5488      	strb	r0, [r1, r2]
+ 800f9fe:	1cda      	adds	r2, r3, #3
+ 800fa00:	6821      	ldr	r1, [r4, #0]
+ 800fa02:	f894 002f 	ldrb.w	r0, [r4, #47]	; 0x2f
+ 800fa06:	b292      	uxth	r2, r2
+ 800fa08:	3304      	adds	r3, #4
+ 800fa0a:	5488      	strb	r0, [r1, r2]
+ 800fa0c:	7123      	strb	r3, [r4, #4]
+ 800fa0e:	2000      	movs	r0, #0
+ 800fa10:	bd38      	pop	{r3, r4, r5, pc}
+ 800fa12:	3309      	adds	r3, #9
+ 800fa14:	e7a6      	b.n	800f964 <LoRaMacSerializerData+0x1e>
+ 800fa16:	2001      	movs	r0, #1
+ 800fa18:	e7fa      	b.n	800fa10 <LoRaMacSerializerData+0xca>
+ 800fa1a:	2002      	movs	r0, #2
+ 800fa1c:	e7f8      	b.n	800fa10 <LoRaMacSerializerData+0xca>
+	...
+
+0800fa20 <NvmDataMgmtEvent>:
+ 800fa20:	4b02      	ldr	r3, [pc, #8]	; (800fa2c <NvmDataMgmtEvent+0xc>)
+ 800fa22:	881a      	ldrh	r2, [r3, #0]
+ 800fa24:	4310      	orrs	r0, r2
+ 800fa26:	8018      	strh	r0, [r3, #0]
+ 800fa28:	4770      	bx	lr
+ 800fa2a:	bf00      	nop
+ 800fa2c:	2000261c 	.word	0x2000261c
+
+0800fa30 <NvmDataMgmtStoreBegin>:
+ 800fa30:	b508      	push	{r3, lr}
+ 800fa32:	4b07      	ldr	r3, [pc, #28]	; (800fa50 <NvmDataMgmtStoreBegin+0x20>)
+ 800fa34:	881b      	ldrh	r3, [r3, #0]
+ 800fa36:	b13b      	cbz	r3, 800fa48 <NvmDataMgmtStoreBegin+0x18>
+ 800fa38:	f7fe fa28 	bl	800de8c <LoRaMacStop>
+ 800fa3c:	2800      	cmp	r0, #0
+ 800fa3e:	bf0c      	ite	eq
+ 800fa40:	2000      	moveq	r0, #0
+ 800fa42:	f06f 0002 	mvnne.w	r0, #2
+ 800fa46:	bd08      	pop	{r3, pc}
+ 800fa48:	f06f 0001 	mvn.w	r0, #1
+ 800fa4c:	e7fb      	b.n	800fa46 <NvmDataMgmtStoreBegin+0x16>
+ 800fa4e:	bf00      	nop
+ 800fa50:	2000261c 	.word	0x2000261c
+
+0800fa54 <NvmDataMgmtStoreEnd>:
+ 800fa54:	b510      	push	{r4, lr}
+ 800fa56:	4b03      	ldr	r3, [pc, #12]	; (800fa64 <NvmDataMgmtStoreEnd+0x10>)
+ 800fa58:	2400      	movs	r4, #0
+ 800fa5a:	801c      	strh	r4, [r3, #0]
+ 800fa5c:	f7fe fa0c 	bl	800de78 <LoRaMacStart>
+ 800fa60:	4620      	mov	r0, r4
+ 800fa62:	bd10      	pop	{r4, pc}
+ 800fa64:	2000261c 	.word	0x2000261c
+
+0800fa68 <RegionIsActive>:
+ 800fa68:	fab0 f080 	clz	r0, r0
+ 800fa6c:	0940      	lsrs	r0, r0, #5
+ 800fa6e:	4770      	bx	lr
+
+0800fa70 <RegionGetPhyParam>:
+ 800fa70:	b082      	sub	sp, #8
+ 800fa72:	b918      	cbnz	r0, 800fa7c <RegionGetPhyParam+0xc>
+ 800fa74:	4608      	mov	r0, r1
+ 800fa76:	b002      	add	sp, #8
+ 800fa78:	f000 b8d0 	b.w	800fc1c <RegionAS923GetPhyParam>
+ 800fa7c:	2000      	movs	r0, #0
+ 800fa7e:	b002      	add	sp, #8
+ 800fa80:	4770      	bx	lr
+
+0800fa82 <RegionSetBandTxDone>:
+ 800fa82:	b910      	cbnz	r0, 800fa8a <RegionSetBandTxDone+0x8>
+ 800fa84:	4608      	mov	r0, r1
+ 800fa86:	f000 b983 	b.w	800fd90 <RegionAS923SetBandTxDone>
+ 800fa8a:	4770      	bx	lr
+
+0800fa8c <RegionInitDefaults>:
+ 800fa8c:	b910      	cbnz	r0, 800fa94 <RegionInitDefaults+0x8>
+ 800fa8e:	4608      	mov	r0, r1
+ 800fa90:	f000 b99a 	b.w	800fdc8 <RegionAS923InitDefaults>
+ 800fa94:	4770      	bx	lr
+
+0800fa96 <RegionVerify>:
+ 800fa96:	4603      	mov	r3, r0
+ 800fa98:	4608      	mov	r0, r1
+ 800fa9a:	4611      	mov	r1, r2
+ 800fa9c:	b90b      	cbnz	r3, 800faa2 <RegionVerify+0xc>
+ 800fa9e:	f000 b9e7 	b.w	800fe70 <RegionAS923Verify>
+ 800faa2:	2000      	movs	r0, #0
+ 800faa4:	4770      	bx	lr
+
+0800faa6 <RegionApplyCFList>:
+ 800faa6:	b910      	cbnz	r0, 800faae <RegionApplyCFList+0x8>
+ 800faa8:	4608      	mov	r0, r1
+ 800faaa:	f000 bd45 	b.w	8010538 <RegionAS923ApplyCFList>
+ 800faae:	4770      	bx	lr
+
+0800fab0 <RegionChanMaskSet>:
+ 800fab0:	b910      	cbnz	r0, 800fab8 <RegionChanMaskSet+0x8>
+ 800fab2:	4608      	mov	r0, r1
+ 800fab4:	f000 ba08 	b.w	800fec8 <RegionAS923ChanMaskSet>
+ 800fab8:	2000      	movs	r0, #0
+ 800faba:	4770      	bx	lr
+
+0800fabc <RegionComputeRxWindowParameters>:
+ 800fabc:	b410      	push	{r4}
+ 800fabe:	4604      	mov	r4, r0
+ 800fac0:	4608      	mov	r0, r1
+ 800fac2:	4611      	mov	r1, r2
+ 800fac4:	461a      	mov	r2, r3
+ 800fac6:	9b01      	ldr	r3, [sp, #4]
+ 800fac8:	b914      	cbnz	r4, 800fad0 <RegionComputeRxWindowParameters+0x14>
+ 800faca:	bc10      	pop	{r4}
+ 800facc:	f000 ba1a 	b.w	800ff04 <RegionAS923ComputeRxWindowParameters>
+ 800fad0:	bc10      	pop	{r4}
+ 800fad2:	4770      	bx	lr
+
+0800fad4 <RegionRxConfig>:
+ 800fad4:	4603      	mov	r3, r0
+ 800fad6:	4608      	mov	r0, r1
+ 800fad8:	4611      	mov	r1, r2
+ 800fada:	b90b      	cbnz	r3, 800fae0 <RegionRxConfig+0xc>
+ 800fadc:	f000 ba44 	b.w	800ff68 <RegionAS923RxConfig>
+ 800fae0:	2000      	movs	r0, #0
+ 800fae2:	4770      	bx	lr
+
+0800fae4 <RegionTxConfig>:
+ 800fae4:	b410      	push	{r4}
+ 800fae6:	4604      	mov	r4, r0
+ 800fae8:	4608      	mov	r0, r1
+ 800faea:	4611      	mov	r1, r2
+ 800faec:	461a      	mov	r2, r3
+ 800faee:	b914      	cbnz	r4, 800faf6 <RegionTxConfig+0x12>
+ 800faf0:	bc10      	pop	{r4}
+ 800faf2:	f000 bab1 	b.w	8010058 <RegionAS923TxConfig>
+ 800faf6:	2000      	movs	r0, #0
+ 800faf8:	bc10      	pop	{r4}
+ 800fafa:	4770      	bx	lr
+
+0800fafc <RegionLinkAdrReq>:
+ 800fafc:	b430      	push	{r4, r5}
+ 800fafe:	4605      	mov	r5, r0
+ 800fb00:	4608      	mov	r0, r1
+ 800fb02:	4611      	mov	r1, r2
+ 800fb04:	461a      	mov	r2, r3
+ 800fb06:	e9dd 3402 	ldrd	r3, r4, [sp, #8]
+ 800fb0a:	b91d      	cbnz	r5, 800fb14 <RegionLinkAdrReq+0x18>
+ 800fb0c:	9402      	str	r4, [sp, #8]
+ 800fb0e:	bc30      	pop	{r4, r5}
+ 800fb10:	f000 bb2e 	b.w	8010170 <RegionAS923LinkAdrReq>
+ 800fb14:	2000      	movs	r0, #0
+ 800fb16:	bc30      	pop	{r4, r5}
+ 800fb18:	4770      	bx	lr
+
+0800fb1a <RegionRxParamSetupReq>:
+ 800fb1a:	b910      	cbnz	r0, 800fb22 <RegionRxParamSetupReq+0x8>
+ 800fb1c:	4608      	mov	r0, r1
+ 800fb1e:	f000 bbdf 	b.w	80102e0 <RegionAS923RxParamSetupReq>
+ 800fb22:	2000      	movs	r0, #0
+ 800fb24:	4770      	bx	lr
+
+0800fb26 <RegionNewChannelReq>:
+ 800fb26:	b910      	cbnz	r0, 800fb2e <RegionNewChannelReq+0x8>
+ 800fb28:	4608      	mov	r0, r1
+ 800fb2a:	f000 bd43 	b.w	80105b4 <RegionAS923NewChannelReq>
+ 800fb2e:	2000      	movs	r0, #0
+ 800fb30:	4770      	bx	lr
+
+0800fb32 <RegionTxParamSetupReq>:
+ 800fb32:	b910      	cbnz	r0, 800fb3a <RegionTxParamSetupReq+0x8>
+ 800fb34:	4608      	mov	r0, r1
+ 800fb36:	f000 bbee 	b.w	8010316 <RegionAS923TxParamSetupReq>
+ 800fb3a:	2000      	movs	r0, #0
+ 800fb3c:	4770      	bx	lr
+
+0800fb3e <RegionDlChannelReq>:
+ 800fb3e:	b910      	cbnz	r0, 800fb46 <RegionDlChannelReq+0x8>
+ 800fb40:	4608      	mov	r0, r1
+ 800fb42:	f000 bbeb 	b.w	801031c <RegionAS923DlChannelReq>
+ 800fb46:	2000      	movs	r0, #0
+ 800fb48:	4770      	bx	lr
+
+0800fb4a <RegionAlternateDr>:
+ 800fb4a:	4603      	mov	r3, r0
+ 800fb4c:	4608      	mov	r0, r1
+ 800fb4e:	4611      	mov	r1, r2
+ 800fb50:	b90b      	cbnz	r3, 800fb56 <RegionAlternateDr+0xc>
+ 800fb52:	f000 bc05 	b.w	8010360 <RegionAS923AlternateDr>
+ 800fb56:	2000      	movs	r0, #0
+ 800fb58:	4770      	bx	lr
+
+0800fb5a <RegionNextChannel>:
+ 800fb5a:	b410      	push	{r4}
+ 800fb5c:	4604      	mov	r4, r0
+ 800fb5e:	4608      	mov	r0, r1
+ 800fb60:	4611      	mov	r1, r2
+ 800fb62:	461a      	mov	r2, r3
+ 800fb64:	9b01      	ldr	r3, [sp, #4]
+ 800fb66:	b914      	cbnz	r4, 800fb6e <RegionNextChannel+0x14>
+ 800fb68:	bc10      	pop	{r4}
+ 800fb6a:	f000 bbfb 	b.w	8010364 <RegionAS923NextChannel>
+ 800fb6e:	2009      	movs	r0, #9
+ 800fb70:	bc10      	pop	{r4}
+ 800fb72:	4770      	bx	lr
+
+0800fb74 <RegionSetContinuousWave>:
+ 800fb74:	b910      	cbnz	r0, 800fb7c <RegionSetContinuousWave+0x8>
+ 800fb76:	4608      	mov	r0, r1
+ 800fb78:	f000 bd3c 	b.w	80105f4 <RegionAS923SetContinuousWave>
+ 800fb7c:	4770      	bx	lr
+
+0800fb7e <RegionApplyDrOffset>:
+ 800fb7e:	b410      	push	{r4}
+ 800fb80:	4604      	mov	r4, r0
+ 800fb82:	4608      	mov	r0, r1
+ 800fb84:	4611      	mov	r1, r2
+ 800fb86:	461a      	mov	r2, r3
+ 800fb88:	b914      	cbnz	r4, 800fb90 <RegionApplyDrOffset+0x12>
+ 800fb8a:	bc10      	pop	{r4}
+ 800fb8c:	f000 bd5c 	b.w	8010648 <RegionAS923ApplyDrOffset>
+ 800fb90:	b2c8      	uxtb	r0, r1
+ 800fb92:	bc10      	pop	{r4}
+ 800fb94:	4770      	bx	lr
+	...
+
+0800fb98 <RegionGetVersion>:
+ 800fb98:	4800      	ldr	r0, [pc, #0]	; (800fb9c <RegionGetVersion+0x4>)
+ 800fb9a:	4770      	bx	lr
+ 800fb9c:	01010003 	.word	0x01010003
+
+0800fba0 <VerifyRfFreq>:
+ 800fba0:	4b06      	ldr	r3, [pc, #24]	; (800fbbc <VerifyRfFreq+0x1c>)
+ 800fba2:	b510      	push	{r4, lr}
+ 800fba4:	6a1b      	ldr	r3, [r3, #32]
+ 800fba6:	4604      	mov	r4, r0
+ 800fba8:	4798      	blx	r3
+ 800fbaa:	b130      	cbz	r0, 800fbba <VerifyRfFreq+0x1a>
+ 800fbac:	4804      	ldr	r0, [pc, #16]	; (800fbc0 <VerifyRfFreq+0x20>)
+ 800fbae:	4b05      	ldr	r3, [pc, #20]	; (800fbc4 <VerifyRfFreq+0x24>)
+ 800fbb0:	4420      	add	r0, r4
+ 800fbb2:	4298      	cmp	r0, r3
+ 800fbb4:	bf8c      	ite	hi
+ 800fbb6:	2000      	movhi	r0, #0
+ 800fbb8:	2001      	movls	r0, #1
+ 800fbba:	bd10      	pop	{r4, pc}
+ 800fbbc:	080159b0 	.word	0x080159b0
+ 800fbc0:	c9763540 	.word	0xc9763540
+ 800fbc4:	00c65d40 	.word	0x00c65d40
+
+0800fbc8 <GetTimeOnAir>:
+ 800fbc8:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 800fbca:	4b11      	ldr	r3, [pc, #68]	; (800fc10 <GetTimeOnAir+0x48>)
+ 800fbcc:	b085      	sub	sp, #20
+ 800fbce:	460c      	mov	r4, r1
+ 800fbd0:	4910      	ldr	r1, [pc, #64]	; (800fc14 <GetTimeOnAir+0x4c>)
+ 800fbd2:	561f      	ldrsb	r7, [r3, r0]
+ 800fbd4:	4605      	mov	r5, r0
+ 800fbd6:	f001 f845 	bl	8010c64 <RegionCommonGetBandwidth>
+ 800fbda:	4b0f      	ldr	r3, [pc, #60]	; (800fc18 <GetTimeOnAir+0x50>)
+ 800fbdc:	b2e4      	uxtb	r4, r4
+ 800fbde:	6a5e      	ldr	r6, [r3, #36]	; 0x24
+ 800fbe0:	2d07      	cmp	r5, #7
+ 800fbe2:	f04f 0301 	mov.w	r3, #1
+ 800fbe6:	e9cd 4302 	strd	r4, r3, [sp, #8]
+ 800fbea:	4601      	mov	r1, r0
+ 800fbec:	d10a      	bne.n	800fc04 <GetTimeOnAir+0x3c>
+ 800fbee:	2205      	movs	r2, #5
+ 800fbf0:	2300      	movs	r3, #0
+ 800fbf2:	e9cd 2300 	strd	r2, r3, [sp]
+ 800fbf6:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
+ 800fbfa:	437a      	muls	r2, r7
+ 800fbfc:	4618      	mov	r0, r3
+ 800fbfe:	47b0      	blx	r6
+ 800fc00:	b005      	add	sp, #20
+ 800fc02:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 800fc04:	2208      	movs	r2, #8
+ 800fc06:	2000      	movs	r0, #0
+ 800fc08:	e9cd 2000 	strd	r2, r0, [sp]
+ 800fc0c:	463a      	mov	r2, r7
+ 800fc0e:	e7f5      	b.n	800fbfc <GetTimeOnAir+0x34>
+ 800fc10:	08015377 	.word	0x08015377
+ 800fc14:	08015350 	.word	0x08015350
+ 800fc18:	080159b0 	.word	0x080159b0
+
+0800fc1c <RegionAS923GetPhyParam>:
+ 800fc1c:	b51f      	push	{r0, r1, r2, r3, r4, lr}
+ 800fc1e:	2300      	movs	r3, #0
+ 800fc20:	9300      	str	r3, [sp, #0]
+ 800fc22:	7803      	ldrb	r3, [r0, #0]
+ 800fc24:	3b01      	subs	r3, #1
+ 800fc26:	2b38      	cmp	r3, #56	; 0x38
+ 800fc28:	f200 8085 	bhi.w	800fd36 <RegionAS923GetPhyParam+0x11a>
+ 800fc2c:	e8df f003 	tbb	[pc, r3]
+ 800fc30:	8383231d 	.word	0x8383231d
+ 800fc34:	83832083 	.word	0x83832083
+ 800fc38:	42408383 	.word	0x42408383
+ 800fc3c:	53834b44 	.word	0x53834b44
+ 800fc40:	5f5c5956 	.word	0x5f5c5956
+ 800fc44:	6d836562 	.word	0x6d836562
+ 800fc48:	79746f20 	.word	0x79746f20
+ 800fc4c:	807e7e7b 	.word	0x807e7e7b
+ 800fc50:	83832587 	.word	0x83832587
+ 800fc54:	83838383 	.word	0x83838383
+ 800fc58:	83838383 	.word	0x83838383
+ 800fc5c:	89838383 	.word	0x89838383
+ 800fc60:	8383908b 	.word	0x8383908b
+ 800fc64:	92839089 	.word	0x92839089
+ 800fc68:	96          	.byte	0x96
+ 800fc69:	00          	.byte	0x00
+ 800fc6a:	78c3      	ldrb	r3, [r0, #3]
+ 800fc6c:	2b00      	cmp	r3, #0
+ 800fc6e:	d062      	beq.n	800fd36 <RegionAS923GetPhyParam+0x11a>
+ 800fc70:	2302      	movs	r3, #2
+ 800fc72:	9300      	str	r3, [sp, #0]
+ 800fc74:	e05f      	b.n	800fd36 <RegionAS923GetPhyParam+0x11a>
+ 800fc76:	7883      	ldrb	r3, [r0, #2]
+ 800fc78:	e7f8      	b.n	800fc6c <RegionAS923GetPhyParam+0x50>
+ 800fc7a:	7843      	ldrb	r3, [r0, #1]
+ 800fc7c:	f88d 3004 	strb.w	r3, [sp, #4]
+ 800fc80:	2307      	movs	r3, #7
+ 800fc82:	f88d 3005 	strb.w	r3, [sp, #5]
+ 800fc86:	7883      	ldrb	r3, [r0, #2]
+ 800fc88:	3b00      	subs	r3, #0
+ 800fc8a:	bf18      	it	ne
+ 800fc8c:	2301      	movne	r3, #1
+ 800fc8e:	005b      	lsls	r3, r3, #1
+ 800fc90:	f88d 3006 	strb.w	r3, [sp, #6]
+ 800fc94:	2310      	movs	r3, #16
+ 800fc96:	f88d 3007 	strb.w	r3, [sp, #7]
+ 800fc9a:	4b33      	ldr	r3, [pc, #204]	; (800fd68 <RegionAS923GetPhyParam+0x14c>)
+ 800fc9c:	681b      	ldr	r3, [r3, #0]
+ 800fc9e:	a801      	add	r0, sp, #4
+ 800fca0:	f503 6290 	add.w	r2, r3, #1152	; 0x480
+ 800fca4:	e9cd 2302 	strd	r2, r3, [sp, #8]
+ 800fca8:	f000 ffbc 	bl	8010c24 <RegionCommonGetNextLowerTxDr>
+ 800fcac:	9000      	str	r0, [sp, #0]
+ 800fcae:	e042      	b.n	800fd36 <RegionAS923GetPhyParam+0x11a>
+ 800fcb0:	2340      	movs	r3, #64	; 0x40
+ 800fcb2:	e7de      	b.n	800fc72 <RegionAS923GetPhyParam+0x56>
+ 800fcb4:	2320      	movs	r3, #32
+ 800fcb6:	e7dc      	b.n	800fc72 <RegionAS923GetPhyParam+0x56>
+ 800fcb8:	7882      	ldrb	r2, [r0, #2]
+ 800fcba:	f990 3001 	ldrsb.w	r3, [r0, #1]
+ 800fcbe:	b942      	cbnz	r2, 800fcd2 <RegionAS923GetPhyParam+0xb6>
+ 800fcc0:	4a2a      	ldr	r2, [pc, #168]	; (800fd6c <RegionAS923GetPhyParam+0x150>)
+ 800fcc2:	5cd3      	ldrb	r3, [r2, r3]
+ 800fcc4:	e7d5      	b.n	800fc72 <RegionAS923GetPhyParam+0x56>
+ 800fcc6:	7882      	ldrb	r2, [r0, #2]
+ 800fcc8:	f990 3001 	ldrsb.w	r3, [r0, #1]
+ 800fccc:	b90a      	cbnz	r2, 800fcd2 <RegionAS923GetPhyParam+0xb6>
+ 800fcce:	4a28      	ldr	r2, [pc, #160]	; (800fd70 <RegionAS923GetPhyParam+0x154>)
+ 800fcd0:	e7f7      	b.n	800fcc2 <RegionAS923GetPhyParam+0xa6>
+ 800fcd2:	4a28      	ldr	r2, [pc, #160]	; (800fd74 <RegionAS923GetPhyParam+0x158>)
+ 800fcd4:	e7f5      	b.n	800fcc2 <RegionAS923GetPhyParam+0xa6>
+ 800fcd6:	f640 33b8 	movw	r3, #3000	; 0xbb8
+ 800fcda:	e7ca      	b.n	800fc72 <RegionAS923GetPhyParam+0x56>
+ 800fcdc:	f44f 737a 	mov.w	r3, #1000	; 0x3e8
+ 800fce0:	e7c7      	b.n	800fc72 <RegionAS923GetPhyParam+0x56>
+ 800fce2:	f44f 63fa 	mov.w	r3, #2000	; 0x7d0
+ 800fce6:	e7c4      	b.n	800fc72 <RegionAS923GetPhyParam+0x56>
+ 800fce8:	f241 3388 	movw	r3, #5000	; 0x1388
+ 800fcec:	e7c1      	b.n	800fc72 <RegionAS923GetPhyParam+0x56>
+ 800fcee:	f241 7370 	movw	r3, #6000	; 0x1770
+ 800fcf2:	e7be      	b.n	800fc72 <RegionAS923GetPhyParam+0x56>
+ 800fcf4:	f44f 4380 	mov.w	r3, #16384	; 0x4000
+ 800fcf8:	e7bb      	b.n	800fc72 <RegionAS923GetPhyParam+0x56>
+ 800fcfa:	481f      	ldr	r0, [pc, #124]	; (800fd78 <RegionAS923GetPhyParam+0x15c>)
+ 800fcfc:	f44f 717a 	mov.w	r1, #1000	; 0x3e8
+ 800fd00:	f001 fe28 	bl	8011954 <randr>
+ 800fd04:	f500 60fa 	add.w	r0, r0, #2000	; 0x7d0
+ 800fd08:	e7d0      	b.n	800fcac <RegionAS923GetPhyParam+0x90>
+ 800fd0a:	4b1c      	ldr	r3, [pc, #112]	; (800fd7c <RegionAS923GetPhyParam+0x160>)
+ 800fd0c:	e7b1      	b.n	800fc72 <RegionAS923GetPhyParam+0x56>
+ 800fd0e:	4b16      	ldr	r3, [pc, #88]	; (800fd68 <RegionAS923GetPhyParam+0x14c>)
+ 800fd10:	681b      	ldr	r3, [r3, #0]
+ 800fd12:	f503 6390 	add.w	r3, r3, #1152	; 0x480
+ 800fd16:	e7ac      	b.n	800fc72 <RegionAS923GetPhyParam+0x56>
+ 800fd18:	4b13      	ldr	r3, [pc, #76]	; (800fd68 <RegionAS923GetPhyParam+0x14c>)
+ 800fd1a:	681b      	ldr	r3, [r3, #0]
+ 800fd1c:	f203 438c 	addw	r3, r3, #1164	; 0x48c
+ 800fd20:	e7a7      	b.n	800fc72 <RegionAS923GetPhyParam+0x56>
+ 800fd22:	2310      	movs	r3, #16
+ 800fd24:	e7a5      	b.n	800fc72 <RegionAS923GetPhyParam+0x56>
+ 800fd26:	4b10      	ldr	r3, [pc, #64]	; (800fd68 <RegionAS923GetPhyParam+0x14c>)
+ 800fd28:	681b      	ldr	r3, [r3, #0]
+ 800fd2a:	e7a2      	b.n	800fc72 <RegionAS923GetPhyParam+0x56>
+ 800fd2c:	2301      	movs	r3, #1
+ 800fd2e:	e7a0      	b.n	800fc72 <RegionAS923GetPhyParam+0x56>
+ 800fd30:	f04f 4383 	mov.w	r3, #1098907648	; 0x41800000
+ 800fd34:	9300      	str	r3, [sp, #0]
+ 800fd36:	9800      	ldr	r0, [sp, #0]
+ 800fd38:	b005      	add	sp, #20
+ 800fd3a:	f85d fb04 	ldr.w	pc, [sp], #4
+ 800fd3e:	4b10      	ldr	r3, [pc, #64]	; (800fd80 <RegionAS923GetPhyParam+0x164>)
+ 800fd40:	e7f8      	b.n	800fd34 <RegionAS923GetPhyParam+0x118>
+ 800fd42:	4b10      	ldr	r3, [pc, #64]	; (800fd84 <RegionAS923GetPhyParam+0x168>)
+ 800fd44:	e795      	b.n	800fc72 <RegionAS923GetPhyParam+0x56>
+ 800fd46:	f240 2311 	movw	r3, #529	; 0x211
+ 800fd4a:	f8ad 3000 	strh.w	r3, [sp]
+ 800fd4e:	e7f2      	b.n	800fd36 <RegionAS923GetPhyParam+0x11a>
+ 800fd50:	2303      	movs	r3, #3
+ 800fd52:	e78e      	b.n	800fc72 <RegionAS923GetPhyParam+0x56>
+ 800fd54:	f990 3001 	ldrsb.w	r3, [r0, #1]
+ 800fd58:	4a0b      	ldr	r2, [pc, #44]	; (800fd88 <RegionAS923GetPhyParam+0x16c>)
+ 800fd5a:	e7b2      	b.n	800fcc2 <RegionAS923GetPhyParam+0xa6>
+ 800fd5c:	490b      	ldr	r1, [pc, #44]	; (800fd8c <RegionAS923GetPhyParam+0x170>)
+ 800fd5e:	f990 0001 	ldrsb.w	r0, [r0, #1]
+ 800fd62:	f000 ff7f 	bl	8010c64 <RegionCommonGetBandwidth>
+ 800fd66:	e7a1      	b.n	800fcac <RegionAS923GetPhyParam+0x90>
+ 800fd68:	20002624 	.word	0x20002624
+ 800fd6c:	08015387 	.word	0x08015387
+ 800fd70:	08015397 	.word	0x08015397
+ 800fd74:	0801538f 	.word	0x0801538f
+ 800fd78:	fffffc18 	.word	0xfffffc18
+ 800fd7c:	3706ea00 	.word	0x3706ea00
+ 800fd80:	4009999a 	.word	0x4009999a
+ 800fd84:	3709f740 	.word	0x3709f740
+ 800fd88:	08015377 	.word	0x08015377
+ 800fd8c:	08015350 	.word	0x08015350
+
+0800fd90 <RegionAS923SetBandTxDone>:
+ 800fd90:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 800fd92:	4b0b      	ldr	r3, [pc, #44]	; (800fdc0 <RegionAS923SetBandTxDone+0x30>)
+ 800fd94:	7802      	ldrb	r2, [r0, #0]
+ 800fd96:	681b      	ldr	r3, [r3, #0]
+ 800fd98:	210c      	movs	r1, #12
+ 800fd9a:	fb01 3302 	mla	r3, r1, r2, r3
+ 800fd9e:	7a5b      	ldrb	r3, [r3, #9]
+ 800fda0:	eb03 0443 	add.w	r4, r3, r3, lsl #1
+ 800fda4:	4b07      	ldr	r3, [pc, #28]	; (800fdc4 <RegionAS923SetBandTxDone+0x34>)
+ 800fda6:	681d      	ldr	r5, [r3, #0]
+ 800fda8:	6903      	ldr	r3, [r0, #16]
+ 800fdaa:	9300      	str	r3, [sp, #0]
+ 800fdac:	68c3      	ldr	r3, [r0, #12]
+ 800fdae:	7842      	ldrb	r2, [r0, #1]
+ 800fdb0:	6881      	ldr	r1, [r0, #8]
+ 800fdb2:	eb05 00c4 	add.w	r0, r5, r4, lsl #3
+ 800fdb6:	f000 fcd5 	bl	8010764 <RegionCommonSetBandTxDone>
+ 800fdba:	b003      	add	sp, #12
+ 800fdbc:	bd30      	pop	{r4, r5, pc}
+ 800fdbe:	bf00      	nop
+ 800fdc0:	20002624 	.word	0x20002624
+ 800fdc4:	20002620 	.word	0x20002620
+
+0800fdc8 <RegionAS923InitDefaults>:
+ 800fdc8:	b530      	push	{r4, r5, lr}
+ 800fdca:	b087      	sub	sp, #28
+ 800fdcc:	7a02      	ldrb	r2, [r0, #8]
+ 800fdce:	2364      	movs	r3, #100	; 0x64
+ 800fdd0:	f8ad 3000 	strh.w	r3, [sp]
+ 800fdd4:	2a01      	cmp	r2, #1
+ 800fdd6:	f04f 0300 	mov.w	r3, #0
+ 800fdda:	e9cd 3301 	strd	r3, r3, [sp, #4]
+ 800fdde:	e9cd 3303 	strd	r3, r3, [sp, #12]
+ 800fde2:	4601      	mov	r1, r0
+ 800fde4:	f88d 3002 	strb.w	r3, [sp, #2]
+ 800fde8:	f88d 3014 	strb.w	r3, [sp, #20]
+ 800fdec:	d027      	beq.n	800fe3e <RegionAS923InitDefaults+0x76>
+ 800fdee:	2a02      	cmp	r2, #2
+ 800fdf0:	d02e      	beq.n	800fe50 <RegionAS923InitDefaults+0x88>
+ 800fdf2:	bb12      	cbnz	r2, 800fe3a <RegionAS923InitDefaults+0x72>
+ 800fdf4:	6800      	ldr	r0, [r0, #0]
+ 800fdf6:	b300      	cbz	r0, 800fe3a <RegionAS923InitDefaults+0x72>
+ 800fdf8:	684b      	ldr	r3, [r1, #4]
+ 800fdfa:	b1f3      	cbz	r3, 800fe3a <RegionAS923InitDefaults+0x72>
+ 800fdfc:	4a19      	ldr	r2, [pc, #100]	; (800fe64 <RegionAS923InitDefaults+0x9c>)
+ 800fdfe:	4c1a      	ldr	r4, [pc, #104]	; (800fe68 <RegionAS923InitDefaults+0xa0>)
+ 800fe00:	6010      	str	r0, [r2, #0]
+ 800fe02:	4669      	mov	r1, sp
+ 800fe04:	2218      	movs	r2, #24
+ 800fe06:	6023      	str	r3, [r4, #0]
+ 800fe08:	f001 fdc0 	bl	801198c <memcpy1>
+ 800fe0c:	4b17      	ldr	r3, [pc, #92]	; (800fe6c <RegionAS923InitDefaults+0xa4>)
+ 800fe0e:	6824      	ldr	r4, [r4, #0]
+ 800fe10:	e893 0007 	ldmia.w	r3, {r0, r1, r2}
+ 800fe14:	330c      	adds	r3, #12
+ 800fe16:	e884 0007 	stmia.w	r4, {r0, r1, r2}
+ 800fe1a:	e893 0007 	ldmia.w	r3, {r0, r1, r2}
+ 800fe1e:	f104 050c 	add.w	r5, r4, #12
+ 800fe22:	2303      	movs	r3, #3
+ 800fe24:	e885 0007 	stmia.w	r5, {r0, r1, r2}
+ 800fe28:	f8a4 348c 	strh.w	r3, [r4, #1164]	; 0x48c
+ 800fe2c:	2201      	movs	r2, #1
+ 800fe2e:	f204 418c 	addw	r1, r4, #1164	; 0x48c
+ 800fe32:	f504 6090 	add.w	r0, r4, #1152	; 0x480
+ 800fe36:	f000 fc86 	bl	8010746 <RegionCommonChanMaskCopy>
+ 800fe3a:	b007      	add	sp, #28
+ 800fe3c:	bd30      	pop	{r4, r5, pc}
+ 800fe3e:	490a      	ldr	r1, [pc, #40]	; (800fe68 <RegionAS923InitDefaults+0xa0>)
+ 800fe40:	6808      	ldr	r0, [r1, #0]
+ 800fe42:	6043      	str	r3, [r0, #4]
+ 800fe44:	6103      	str	r3, [r0, #16]
+ 800fe46:	f200 418c 	addw	r1, r0, #1164	; 0x48c
+ 800fe4a:	f500 6090 	add.w	r0, r0, #1152	; 0x480
+ 800fe4e:	e7f2      	b.n	800fe36 <RegionAS923InitDefaults+0x6e>
+ 800fe50:	4b05      	ldr	r3, [pc, #20]	; (800fe68 <RegionAS923InitDefaults+0xa0>)
+ 800fe52:	681b      	ldr	r3, [r3, #0]
+ 800fe54:	f8b3 2480 	ldrh.w	r2, [r3, #1152]	; 0x480
+ 800fe58:	f8b3 148c 	ldrh.w	r1, [r3, #1164]	; 0x48c
+ 800fe5c:	430a      	orrs	r2, r1
+ 800fe5e:	f8a3 2480 	strh.w	r2, [r3, #1152]	; 0x480
+ 800fe62:	e7ea      	b.n	800fe3a <RegionAS923InitDefaults+0x72>
+ 800fe64:	20002620 	.word	0x20002620
+ 800fe68:	20002624 	.word	0x20002624
+ 800fe6c:	080145b4 	.word	0x080145b4
+
+0800fe70 <RegionAS923Verify>:
+ 800fe70:	b508      	push	{r3, lr}
+ 800fe72:	4603      	mov	r3, r0
+ 800fe74:	290a      	cmp	r1, #10
+ 800fe76:	d824      	bhi.n	800fec2 <RegionAS923Verify+0x52>
+ 800fe78:	e8df f001 	tbb	[pc, r1]
+ 800fe7c:	23232306 	.word	0x23232306
+ 800fe80:	1b160b23 	.word	0x1b160b23
+ 800fe84:	2123      	.short	0x2123
+ 800fe86:	21          	.byte	0x21
+ 800fe87:	00          	.byte	0x00
+ 800fe88:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 800fe8c:	6800      	ldr	r0, [r0, #0]
+ 800fe8e:	f7ff be87 	b.w	800fba0 <VerifyRfFreq>
+ 800fe92:	f990 0000 	ldrsb.w	r0, [r0]
+ 800fe96:	7899      	ldrb	r1, [r3, #2]
+ 800fe98:	2207      	movs	r2, #7
+ 800fe9a:	b971      	cbnz	r1, 800feba <RegionAS923Verify+0x4a>
+ 800fe9c:	f000 fc13 	bl	80106c6 <RegionCommonValueInRange>
+ 800fea0:	3800      	subs	r0, #0
+ 800fea2:	bf18      	it	ne
+ 800fea4:	2001      	movne	r0, #1
+ 800fea6:	bd08      	pop	{r3, pc}
+ 800fea8:	2205      	movs	r2, #5
+ 800feaa:	f993 0000 	ldrsb.w	r0, [r3]
+ 800feae:	2100      	movs	r1, #0
+ 800feb0:	e7f4      	b.n	800fe9c <RegionAS923Verify+0x2c>
+ 800feb2:	f990 0000 	ldrsb.w	r0, [r0]
+ 800feb6:	7859      	ldrb	r1, [r3, #1]
+ 800feb8:	e7ee      	b.n	800fe98 <RegionAS923Verify+0x28>
+ 800feba:	2102      	movs	r1, #2
+ 800febc:	e7ee      	b.n	800fe9c <RegionAS923Verify+0x2c>
+ 800febe:	2207      	movs	r2, #7
+ 800fec0:	e7f3      	b.n	800feaa <RegionAS923Verify+0x3a>
+ 800fec2:	2000      	movs	r0, #0
+ 800fec4:	e7ef      	b.n	800fea6 <RegionAS923Verify+0x36>
+	...
+
+0800fec8 <RegionAS923ChanMaskSet>:
+ 800fec8:	b510      	push	{r4, lr}
+ 800feca:	7904      	ldrb	r4, [r0, #4]
+ 800fecc:	b11c      	cbz	r4, 800fed6 <RegionAS923ChanMaskSet+0xe>
+ 800fece:	2c01      	cmp	r4, #1
+ 800fed0:	d00b      	beq.n	800feea <RegionAS923ChanMaskSet+0x22>
+ 800fed2:	2000      	movs	r0, #0
+ 800fed4:	bd10      	pop	{r4, pc}
+ 800fed6:	4b0a      	ldr	r3, [pc, #40]	; (800ff00 <RegionAS923ChanMaskSet+0x38>)
+ 800fed8:	6801      	ldr	r1, [r0, #0]
+ 800feda:	681b      	ldr	r3, [r3, #0]
+ 800fedc:	2201      	movs	r2, #1
+ 800fede:	f503 6090 	add.w	r0, r3, #1152	; 0x480
+ 800fee2:	f000 fc30 	bl	8010746 <RegionCommonChanMaskCopy>
+ 800fee6:	2001      	movs	r0, #1
+ 800fee8:	e7f4      	b.n	800fed4 <RegionAS923ChanMaskSet+0xc>
+ 800feea:	4b05      	ldr	r3, [pc, #20]	; (800ff00 <RegionAS923ChanMaskSet+0x38>)
+ 800feec:	6801      	ldr	r1, [r0, #0]
+ 800feee:	681b      	ldr	r3, [r3, #0]
+ 800fef0:	4622      	mov	r2, r4
+ 800fef2:	f203 408c 	addw	r0, r3, #1164	; 0x48c
+ 800fef6:	f000 fc26 	bl	8010746 <RegionCommonChanMaskCopy>
+ 800fefa:	4620      	mov	r0, r4
+ 800fefc:	e7ea      	b.n	800fed4 <RegionAS923ChanMaskSet+0xc>
+ 800fefe:	bf00      	nop
+ 800ff00:	20002624 	.word	0x20002624
+
+0800ff04 <RegionAS923ComputeRxWindowParameters>:
+ 800ff04:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
+ 800ff06:	2807      	cmp	r0, #7
+ 800ff08:	4d14      	ldr	r5, [pc, #80]	; (800ff5c <RegionAS923ComputeRxWindowParameters+0x58>)
+ 800ff0a:	461c      	mov	r4, r3
+ 800ff0c:	bfa8      	it	ge
+ 800ff0e:	2007      	movge	r0, #7
+ 800ff10:	7058      	strb	r0, [r3, #1]
+ 800ff12:	460e      	mov	r6, r1
+ 800ff14:	4629      	mov	r1, r5
+ 800ff16:	4617      	mov	r7, r2
+ 800ff18:	f000 fea4 	bl	8010c64 <RegionCommonGetBandwidth>
+ 800ff1c:	f994 3001 	ldrsb.w	r3, [r4, #1]
+ 800ff20:	70a0      	strb	r0, [r4, #2]
+ 800ff22:	2b07      	cmp	r3, #7
+ 800ff24:	d113      	bne.n	800ff4e <RegionAS923ComputeRxWindowParameters+0x4a>
+ 800ff26:	2032      	movs	r0, #50	; 0x32
+ 800ff28:	f000 fd9c 	bl	8010a64 <RegionCommonComputeSymbolTimeFsk>
+ 800ff2c:	4b0c      	ldr	r3, [pc, #48]	; (800ff60 <RegionAS923ComputeRxWindowParameters+0x5c>)
+ 800ff2e:	6ddb      	ldr	r3, [r3, #92]	; 0x5c
+ 800ff30:	4605      	mov	r5, r0
+ 800ff32:	4798      	blx	r3
+ 800ff34:	f104 020c 	add.w	r2, r4, #12
+ 800ff38:	3408      	adds	r4, #8
+ 800ff3a:	4603      	mov	r3, r0
+ 800ff3c:	9201      	str	r2, [sp, #4]
+ 800ff3e:	9400      	str	r4, [sp, #0]
+ 800ff40:	463a      	mov	r2, r7
+ 800ff42:	4631      	mov	r1, r6
+ 800ff44:	4628      	mov	r0, r5
+ 800ff46:	f000 fd92 	bl	8010a6e <RegionCommonComputeRxWindowParameters>
+ 800ff4a:	b003      	add	sp, #12
+ 800ff4c:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 800ff4e:	4a05      	ldr	r2, [pc, #20]	; (800ff64 <RegionAS923ComputeRxWindowParameters+0x60>)
+ 800ff50:	f855 1023 	ldr.w	r1, [r5, r3, lsl #2]
+ 800ff54:	5cd0      	ldrb	r0, [r2, r3]
+ 800ff56:	f000 fd7d 	bl	8010a54 <RegionCommonComputeSymbolTimeLoRa>
+ 800ff5a:	e7e7      	b.n	800ff2c <RegionAS923ComputeRxWindowParameters+0x28>
+ 800ff5c:	08015350 	.word	0x08015350
+ 800ff60:	080159b0 	.word	0x080159b0
+ 800ff64:	08015377 	.word	0x08015377
+
+0800ff68 <RegionAS923RxConfig>:
+ 800ff68:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 800ff6c:	4f34      	ldr	r7, [pc, #208]	; (8010040 <RegionAS923RxConfig+0xd8>)
+ 800ff6e:	f990 6001 	ldrsb.w	r6, [r0, #1]
+ 800ff72:	687b      	ldr	r3, [r7, #4]
+ 800ff74:	f8d0 9004 	ldr.w	r9, [r0, #4]
+ 800ff78:	b08b      	sub	sp, #44	; 0x2c
+ 800ff7a:	4604      	mov	r4, r0
+ 800ff7c:	4688      	mov	r8, r1
+ 800ff7e:	4798      	blx	r3
+ 800ff80:	4605      	mov	r5, r0
+ 800ff82:	2800      	cmp	r0, #0
+ 800ff84:	d159      	bne.n	801003a <RegionAS923RxConfig+0xd2>
+ 800ff86:	7ce3      	ldrb	r3, [r4, #19]
+ 800ff88:	b973      	cbnz	r3, 800ffa8 <RegionAS923RxConfig+0x40>
+ 800ff8a:	4a2e      	ldr	r2, [pc, #184]	; (8010044 <RegionAS923RxConfig+0xdc>)
+ 800ff8c:	7823      	ldrb	r3, [r4, #0]
+ 800ff8e:	6812      	ldr	r2, [r2, #0]
+ 800ff90:	eb03 0343 	add.w	r3, r3, r3, lsl #1
+ 800ff94:	0099      	lsls	r1, r3, #2
+ 800ff96:	eb02 0383 	add.w	r3, r2, r3, lsl #2
+ 800ff9a:	f8d3 9004 	ldr.w	r9, [r3, #4]
+ 800ff9e:	f1b9 0f00 	cmp.w	r9, #0
+ 800ffa2:	d101      	bne.n	800ffa8 <RegionAS923RxConfig+0x40>
+ 800ffa4:	f852 9001 	ldr.w	r9, [r2, r1]
+ 800ffa8:	4b27      	ldr	r3, [pc, #156]	; (8010048 <RegionAS923RxConfig+0xe0>)
+ 800ffaa:	4648      	mov	r0, r9
+ 800ffac:	f913 b006 	ldrsb.w	fp, [r3, r6]
+ 800ffb0:	68fb      	ldr	r3, [r7, #12]
+ 800ffb2:	4798      	blx	r3
+ 800ffb4:	7ca3      	ldrb	r3, [r4, #18]
+ 800ffb6:	f8d7 a018 	ldr.w	sl, [r7, #24]
+ 800ffba:	8922      	ldrh	r2, [r4, #8]
+ 800ffbc:	9309      	str	r3, [sp, #36]	; 0x24
+ 800ffbe:	2e07      	cmp	r6, #7
+ 800ffc0:	d128      	bne.n	8010014 <RegionAS923RxConfig+0xac>
+ 800ffc2:	2300      	movs	r3, #0
+ 800ffc4:	2101      	movs	r1, #1
+ 800ffc6:	e9cd 2302 	strd	r2, r3, [sp, #8]
+ 800ffca:	4a20      	ldr	r2, [pc, #128]	; (801004c <RegionAS923RxConfig+0xe4>)
+ 800ffcc:	9306      	str	r3, [sp, #24]
+ 800ffce:	e9cd 3104 	strd	r3, r1, [sp, #16]
+ 800ffd2:	e9cd 3307 	strd	r3, r3, [sp, #28]
+ 800ffd6:	2105      	movs	r1, #5
+ 800ffd8:	e9cd 2100 	strd	r2, r1, [sp]
+ 800ffdc:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
+ 800ffe0:	fb02 f20b 	mul.w	r2, r2, fp
+ 800ffe4:	f24c 3150 	movw	r1, #50000	; 0xc350
+ 800ffe8:	4618      	mov	r0, r3
+ 800ffea:	47d0      	blx	sl
+ 800ffec:	7c63      	ldrb	r3, [r4, #17]
+ 800ffee:	b313      	cbz	r3, 8010036 <RegionAS923RxConfig+0xce>
+ 800fff0:	4b17      	ldr	r3, [pc, #92]	; (8010050 <RegionAS923RxConfig+0xe8>)
+ 800fff2:	5d99      	ldrb	r1, [r3, r6]
+ 800fff4:	6d7b      	ldr	r3, [r7, #84]	; 0x54
+ 800fff6:	310d      	adds	r1, #13
+ 800fff8:	b2c9      	uxtb	r1, r1
+ 800fffa:	4628      	mov	r0, r5
+ 800fffc:	4798      	blx	r3
+ 800fffe:	7ce0      	ldrb	r0, [r4, #19]
+ 8010000:	4632      	mov	r2, r6
+ 8010002:	4649      	mov	r1, r9
+ 8010004:	f000 fe40 	bl	8010c88 <RegionCommonRxConfigPrint>
+ 8010008:	f888 6000 	strb.w	r6, [r8]
+ 801000c:	2001      	movs	r0, #1
+ 801000e:	b00b      	add	sp, #44	; 0x2c
+ 8010010:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 8010014:	2100      	movs	r1, #0
+ 8010016:	2501      	movs	r5, #1
+ 8010018:	2308      	movs	r3, #8
+ 801001a:	e9cd 1300 	strd	r1, r3, [sp]
+ 801001e:	e9cd 1507 	strd	r1, r5, [sp, #28]
+ 8010022:	e9cd 1105 	strd	r1, r1, [sp, #20]
+ 8010026:	e9cd 1103 	strd	r1, r1, [sp, #12]
+ 801002a:	9202      	str	r2, [sp, #8]
+ 801002c:	78a1      	ldrb	r1, [r4, #2]
+ 801002e:	462b      	mov	r3, r5
+ 8010030:	465a      	mov	r2, fp
+ 8010032:	4628      	mov	r0, r5
+ 8010034:	e7d9      	b.n	800ffea <RegionAS923RxConfig+0x82>
+ 8010036:	4b07      	ldr	r3, [pc, #28]	; (8010054 <RegionAS923RxConfig+0xec>)
+ 8010038:	e7db      	b.n	800fff2 <RegionAS923RxConfig+0x8a>
+ 801003a:	2000      	movs	r0, #0
+ 801003c:	e7e7      	b.n	801000e <RegionAS923RxConfig+0xa6>
+ 801003e:	bf00      	nop
+ 8010040:	080159b0 	.word	0x080159b0
+ 8010044:	20002624 	.word	0x20002624
+ 8010048:	08015377 	.word	0x08015377
+ 801004c:	00014585 	.word	0x00014585
+ 8010050:	08015397 	.word	0x08015397
+ 8010054:	08015387 	.word	0x08015387
+
+08010058 <RegionAS923TxConfig>:
+ 8010058:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 801005c:	b08d      	sub	sp, #52	; 0x34
+ 801005e:	f990 3001 	ldrsb.w	r3, [r0, #1]
+ 8010062:	f8df a0f8 	ldr.w	sl, [pc, #248]	; 801015c <RegionAS923TxConfig+0x104>
+ 8010066:	f8df 90f8 	ldr.w	r9, [pc, #248]	; 8010160 <RegionAS923TxConfig+0x108>
+ 801006a:	e9cd 120a 	strd	r1, r2, [sp, #40]	; 0x28
+ 801006e:	4a3d      	ldr	r2, [pc, #244]	; (8010164 <RegionAS923TxConfig+0x10c>)
+ 8010070:	7801      	ldrb	r1, [r0, #0]
+ 8010072:	f912 b003 	ldrsb.w	fp, [r2, r3]
+ 8010076:	f8da 2000 	ldr.w	r2, [sl]
+ 801007a:	4b3b      	ldr	r3, [pc, #236]	; (8010168 <RegionAS923TxConfig+0x110>)
+ 801007c:	250c      	movs	r5, #12
+ 801007e:	fb05 2201 	mla	r2, r5, r1, r2
+ 8010082:	681b      	ldr	r3, [r3, #0]
+ 8010084:	7a52      	ldrb	r2, [r2, #9]
+ 8010086:	2118      	movs	r1, #24
+ 8010088:	fb01 3302 	mla	r3, r1, r2, r3
+ 801008c:	4604      	mov	r4, r0
+ 801008e:	f993 1002 	ldrsb.w	r1, [r3, #2]
+ 8010092:	f990 0002 	ldrsb.w	r0, [r0, #2]
+ 8010096:	f000 fde0 	bl	8010c5a <RegionCommonLimitTxPower>
+ 801009a:	4934      	ldr	r1, [pc, #208]	; (801016c <RegionAS923TxConfig+0x114>)
+ 801009c:	4606      	mov	r6, r0
+ 801009e:	f994 0001 	ldrsb.w	r0, [r4, #1]
+ 80100a2:	f000 fddf 	bl	8010c64 <RegionCommonGetBandwidth>
+ 80100a6:	68a2      	ldr	r2, [r4, #8]
+ 80100a8:	6861      	ldr	r1, [r4, #4]
+ 80100aa:	4680      	mov	r8, r0
+ 80100ac:	4630      	mov	r0, r6
+ 80100ae:	f000 fd06 	bl	8010abe <RegionCommonComputeTxPower>
+ 80100b2:	7821      	ldrb	r1, [r4, #0]
+ 80100b4:	f8da 2000 	ldr.w	r2, [sl]
+ 80100b8:	f8d9 300c 	ldr.w	r3, [r9, #12]
+ 80100bc:	4369      	muls	r1, r5
+ 80100be:	4607      	mov	r7, r0
+ 80100c0:	5850      	ldr	r0, [r2, r1]
+ 80100c2:	4798      	blx	r3
+ 80100c4:	f8d9 301c 	ldr.w	r3, [r9, #28]
+ 80100c8:	469c      	mov	ip, r3
+ 80100ca:	f994 3001 	ldrsb.w	r3, [r4, #1]
+ 80100ce:	2500      	movs	r5, #0
+ 80100d0:	2b07      	cmp	r3, #7
+ 80100d2:	f44f 637a 	mov.w	r3, #4000	; 0xfa0
+ 80100d6:	e9cd 5307 	strd	r5, r3, [sp, #28]
+ 80100da:	e9cd 5505 	strd	r5, r5, [sp, #20]
+ 80100de:	d12d      	bne.n	801013c <RegionAS923TxConfig+0xe4>
+ 80100e0:	2301      	movs	r3, #1
+ 80100e2:	e9cd 5303 	strd	r5, r3, [sp, #12]
+ 80100e6:	2305      	movs	r3, #5
+ 80100e8:	e9cd 5301 	strd	r5, r3, [sp, #4]
+ 80100ec:	f44f 737a 	mov.w	r3, #1000	; 0x3e8
+ 80100f0:	fb03 f30b 	mul.w	r3, r3, fp
+ 80100f4:	9300      	str	r3, [sp, #0]
+ 80100f6:	4639      	mov	r1, r7
+ 80100f8:	4643      	mov	r3, r8
+ 80100fa:	f246 12a8 	movw	r2, #25000	; 0x61a8
+ 80100fe:	4628      	mov	r0, r5
+ 8010100:	4667      	mov	r7, ip
+ 8010102:	47b8      	blx	r7
+ 8010104:	7823      	ldrb	r3, [r4, #0]
+ 8010106:	f8da 2000 	ldr.w	r2, [sl]
+ 801010a:	210c      	movs	r1, #12
+ 801010c:	434b      	muls	r3, r1
+ 801010e:	f994 1001 	ldrsb.w	r1, [r4, #1]
+ 8010112:	58d0      	ldr	r0, [r2, r3]
+ 8010114:	f000 fdda 	bl	8010ccc <RegionCommonTxConfigPrint>
+ 8010118:	89a1      	ldrh	r1, [r4, #12]
+ 801011a:	f994 0001 	ldrsb.w	r0, [r4, #1]
+ 801011e:	f7ff fd53 	bl	800fbc8 <GetTimeOnAir>
+ 8010122:	9b0b      	ldr	r3, [sp, #44]	; 0x2c
+ 8010124:	7b21      	ldrb	r1, [r4, #12]
+ 8010126:	6018      	str	r0, [r3, #0]
+ 8010128:	f8d9 3054 	ldr.w	r3, [r9, #84]	; 0x54
+ 801012c:	4628      	mov	r0, r5
+ 801012e:	4798      	blx	r3
+ 8010130:	9b0a      	ldr	r3, [sp, #40]	; 0x28
+ 8010132:	2001      	movs	r0, #1
+ 8010134:	701e      	strb	r6, [r3, #0]
+ 8010136:	b00d      	add	sp, #52	; 0x34
+ 8010138:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 801013c:	2001      	movs	r0, #1
+ 801013e:	2308      	movs	r3, #8
+ 8010140:	e9cd 5003 	strd	r5, r0, [sp, #12]
+ 8010144:	e9cd 0301 	strd	r0, r3, [sp, #4]
+ 8010148:	462a      	mov	r2, r5
+ 801014a:	f8cd b000 	str.w	fp, [sp]
+ 801014e:	4665      	mov	r5, ip
+ 8010150:	4643      	mov	r3, r8
+ 8010152:	4639      	mov	r1, r7
+ 8010154:	47a8      	blx	r5
+ 8010156:	2001      	movs	r0, #1
+ 8010158:	4605      	mov	r5, r0
+ 801015a:	e7d3      	b.n	8010104 <RegionAS923TxConfig+0xac>
+ 801015c:	20002624 	.word	0x20002624
+ 8010160:	080159b0 	.word	0x080159b0
+ 8010164:	08015377 	.word	0x08015377
+ 8010168:	20002620 	.word	0x20002620
+ 801016c:	08015350 	.word	0x08015350
+
+08010170 <RegionAS923LinkAdrReq>:
+ 8010170:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8010174:	b08f      	sub	sp, #60	; 0x3c
+ 8010176:	2400      	movs	r4, #0
+ 8010178:	4605      	mov	r5, r0
+ 801017a:	468a      	mov	sl, r1
+ 801017c:	4691      	mov	r9, r2
+ 801017e:	4698      	mov	r8, r3
+ 8010180:	9404      	str	r4, [sp, #16]
+ 8010182:	f8ad 4014 	strh.w	r4, [sp, #20]
+ 8010186:	f8ad 4002 	strh.w	r4, [sp, #2]
+ 801018a:	2607      	movs	r6, #7
+ 801018c:	f04f 0b01 	mov.w	fp, #1
+ 8010190:	7a2b      	ldrb	r3, [r5, #8]
+ 8010192:	42a3      	cmp	r3, r4
+ 8010194:	d906      	bls.n	80101a4 <RegionAS923LinkAdrReq+0x34>
+ 8010196:	6868      	ldr	r0, [r5, #4]
+ 8010198:	a904      	add	r1, sp, #16
+ 801019a:	4420      	add	r0, r4
+ 801019c:	f000 fbf4 	bl	8010988 <RegionCommonParseLinkAdrReq>
+ 80101a0:	2800      	cmp	r0, #0
+ 80101a2:	d15d      	bne.n	8010260 <RegionAS923LinkAdrReq+0xf0>
+ 80101a4:	2302      	movs	r3, #2
+ 80101a6:	f88d 3008 	strb.w	r3, [sp, #8]
+ 80101aa:	a802      	add	r0, sp, #8
+ 80101ac:	7a6b      	ldrb	r3, [r5, #9]
+ 80101ae:	f88d 300a 	strb.w	r3, [sp, #10]
+ 80101b2:	f7ff fd33 	bl	800fc1c <RegionAS923GetPhyParam>
+ 80101b6:	7aab      	ldrb	r3, [r5, #10]
+ 80101b8:	f88d 301d 	strb.w	r3, [sp, #29]
+ 80101bc:	f89d 3011 	ldrb.w	r3, [sp, #17]
+ 80101c0:	f88d 301e 	strb.w	r3, [sp, #30]
+ 80101c4:	f89d 3012 	ldrb.w	r3, [sp, #18]
+ 80101c8:	f88d 301f 	strb.w	r3, [sp, #31]
+ 80101cc:	f89d 3010 	ldrb.w	r3, [sp, #16]
+ 80101d0:	f88d 3020 	strb.w	r3, [sp, #32]
+ 80101d4:	7aeb      	ldrb	r3, [r5, #11]
+ 80101d6:	f88d 3021 	strb.w	r3, [sp, #33]	; 0x21
+ 80101da:	7b2b      	ldrb	r3, [r5, #12]
+ 80101dc:	f88d 3022 	strb.w	r3, [sp, #34]	; 0x22
+ 80101e0:	7b6b      	ldrb	r3, [r5, #13]
+ 80101e2:	f88d 3023 	strb.w	r3, [sp, #35]	; 0x23
+ 80101e6:	2310      	movs	r3, #16
+ 80101e8:	f88d 601c 	strb.w	r6, [sp, #28]
+ 80101ec:	f88d 3024 	strb.w	r3, [sp, #36]	; 0x24
+ 80101f0:	4e3a      	ldr	r6, [pc, #232]	; (80102dc <RegionAS923LinkAdrReq+0x16c>)
+ 80101f2:	f88d 002c 	strb.w	r0, [sp, #44]	; 0x2c
+ 80101f6:	f10d 0302 	add.w	r3, sp, #2
+ 80101fa:	930a      	str	r3, [sp, #40]	; 0x28
+ 80101fc:	2307      	movs	r3, #7
+ 80101fe:	6832      	ldr	r2, [r6, #0]
+ 8010200:	f88d 302d 	strb.w	r3, [sp, #45]	; 0x2d
+ 8010204:	f8ad 3034 	strh.w	r3, [sp, #52]	; 0x34
+ 8010208:	682b      	ldr	r3, [r5, #0]
+ 801020a:	920c      	str	r2, [sp, #48]	; 0x30
+ 801020c:	9306      	str	r3, [sp, #24]
+ 801020e:	f10d 0212 	add.w	r2, sp, #18
+ 8010212:	ab04      	add	r3, sp, #16
+ 8010214:	f10d 0111 	add.w	r1, sp, #17
+ 8010218:	a806      	add	r0, sp, #24
+ 801021a:	f000 fbcf 	bl	80109bc <RegionCommonLinkAdrReqVerifyParams>
+ 801021e:	2807      	cmp	r0, #7
+ 8010220:	4605      	mov	r5, r0
+ 8010222:	d10b      	bne.n	801023c <RegionAS923LinkAdrReq+0xcc>
+ 8010224:	6830      	ldr	r0, [r6, #0]
+ 8010226:	220c      	movs	r2, #12
+ 8010228:	2100      	movs	r1, #0
+ 801022a:	f500 6090 	add.w	r0, r0, #1152	; 0x480
+ 801022e:	f001 fbc1 	bl	80119b4 <memset1>
+ 8010232:	6833      	ldr	r3, [r6, #0]
+ 8010234:	f8bd 2002 	ldrh.w	r2, [sp, #2]
+ 8010238:	f8a3 2480 	strh.w	r2, [r3, #1152]	; 0x480
+ 801023c:	f89d 3011 	ldrb.w	r3, [sp, #17]
+ 8010240:	f88a 3000 	strb.w	r3, [sl]
+ 8010244:	f89d 3012 	ldrb.w	r3, [sp, #18]
+ 8010248:	f889 3000 	strb.w	r3, [r9]
+ 801024c:	f89d 3010 	ldrb.w	r3, [sp, #16]
+ 8010250:	f888 3000 	strb.w	r3, [r8]
+ 8010254:	9b18      	ldr	r3, [sp, #96]	; 0x60
+ 8010256:	4628      	mov	r0, r5
+ 8010258:	701c      	strb	r4, [r3, #0]
+ 801025a:	b00f      	add	sp, #60	; 0x3c
+ 801025c:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 8010260:	f89d 3013 	ldrb.w	r3, [sp, #19]
+ 8010264:	f8bd 7014 	ldrh.w	r7, [sp, #20]
+ 8010268:	f8ad 7002 	strh.w	r7, [sp, #2]
+ 801026c:	4420      	add	r0, r4
+ 801026e:	b2c4      	uxtb	r4, r0
+ 8010270:	b9f3      	cbnz	r3, 80102b0 <RegionAS923LinkAdrReq+0x140>
+ 8010272:	b317      	cbz	r7, 80102ba <RegionAS923LinkAdrReq+0x14a>
+ 8010274:	4a19      	ldr	r2, [pc, #100]	; (80102dc <RegionAS923LinkAdrReq+0x16c>)
+ 8010276:	2000      	movs	r0, #0
+ 8010278:	6811      	ldr	r1, [r2, #0]
+ 801027a:	2607      	movs	r6, #7
+ 801027c:	4602      	mov	r2, r0
+ 801027e:	f04f 0c0c 	mov.w	ip, #12
+ 8010282:	2b06      	cmp	r3, #6
+ 8010284:	d11b      	bne.n	80102be <RegionAS923LinkAdrReq+0x14e>
+ 8010286:	fb0c fe00 	mul.w	lr, ip, r0
+ 801028a:	f851 e00e 	ldr.w	lr, [r1, lr]
+ 801028e:	f1be 0f00 	cmp.w	lr, #0
+ 8010292:	d004      	beq.n	801029e <RegionAS923LinkAdrReq+0x12e>
+ 8010294:	fa0b f200 	lsl.w	r2, fp, r0
+ 8010298:	433a      	orrs	r2, r7
+ 801029a:	b297      	uxth	r7, r2
+ 801029c:	2201      	movs	r2, #1
+ 801029e:	3001      	adds	r0, #1
+ 80102a0:	2810      	cmp	r0, #16
+ 80102a2:	d1ee      	bne.n	8010282 <RegionAS923LinkAdrReq+0x112>
+ 80102a4:	2a00      	cmp	r2, #0
+ 80102a6:	f43f af73 	beq.w	8010190 <RegionAS923LinkAdrReq+0x20>
+ 80102aa:	f8ad 7002 	strh.w	r7, [sp, #2]
+ 80102ae:	e76f      	b.n	8010190 <RegionAS923LinkAdrReq+0x20>
+ 80102b0:	1e5a      	subs	r2, r3, #1
+ 80102b2:	2a04      	cmp	r2, #4
+ 80102b4:	d901      	bls.n	80102ba <RegionAS923LinkAdrReq+0x14a>
+ 80102b6:	2b06      	cmp	r3, #6
+ 80102b8:	d0dc      	beq.n	8010274 <RegionAS923LinkAdrReq+0x104>
+ 80102ba:	2606      	movs	r6, #6
+ 80102bc:	e768      	b.n	8010190 <RegionAS923LinkAdrReq+0x20>
+ 80102be:	fa47 fe00 	asr.w	lr, r7, r0
+ 80102c2:	f01e 0f01 	tst.w	lr, #1
+ 80102c6:	d0ea      	beq.n	801029e <RegionAS923LinkAdrReq+0x12e>
+ 80102c8:	fb0c fe00 	mul.w	lr, ip, r0
+ 80102cc:	f851 e00e 	ldr.w	lr, [r1, lr]
+ 80102d0:	f1be 0f00 	cmp.w	lr, #0
+ 80102d4:	bf08      	it	eq
+ 80102d6:	2606      	moveq	r6, #6
+ 80102d8:	e7e1      	b.n	801029e <RegionAS923LinkAdrReq+0x12e>
+ 80102da:	bf00      	nop
+ 80102dc:	20002624 	.word	0x20002624
+
+080102e0 <RegionAS923RxParamSetupReq>:
+ 80102e0:	b538      	push	{r3, r4, r5, lr}
+ 80102e2:	4605      	mov	r5, r0
+ 80102e4:	6840      	ldr	r0, [r0, #4]
+ 80102e6:	f7ff fc5b 	bl	800fba0 <VerifyRfFreq>
+ 80102ea:	2207      	movs	r2, #7
+ 80102ec:	1d84      	adds	r4, r0, #6
+ 80102ee:	2100      	movs	r1, #0
+ 80102f0:	f995 0000 	ldrsb.w	r0, [r5]
+ 80102f4:	b2e4      	uxtb	r4, r4
+ 80102f6:	f000 f9e6 	bl	80106c6 <RegionCommonValueInRange>
+ 80102fa:	b908      	cbnz	r0, 8010300 <RegionAS923RxParamSetupReq+0x20>
+ 80102fc:	f004 04fd 	and.w	r4, r4, #253	; 0xfd
+ 8010300:	f995 0001 	ldrsb.w	r0, [r5, #1]
+ 8010304:	2207      	movs	r2, #7
+ 8010306:	2100      	movs	r1, #0
+ 8010308:	f000 f9dd 	bl	80106c6 <RegionCommonValueInRange>
+ 801030c:	b908      	cbnz	r0, 8010312 <RegionAS923RxParamSetupReq+0x32>
+ 801030e:	f004 04fb 	and.w	r4, r4, #251	; 0xfb
+ 8010312:	4620      	mov	r0, r4
+ 8010314:	bd38      	pop	{r3, r4, r5, pc}
+
+08010316 <RegionAS923TxParamSetupReq>:
+ 8010316:	2000      	movs	r0, #0
+ 8010318:	4770      	bx	lr
+	...
+
+0801031c <RegionAS923DlChannelReq>:
+ 801031c:	b510      	push	{r4, lr}
+ 801031e:	7803      	ldrb	r3, [r0, #0]
+ 8010320:	2b0f      	cmp	r3, #15
+ 8010322:	4604      	mov	r4, r0
+ 8010324:	d818      	bhi.n	8010358 <RegionAS923DlChannelReq+0x3c>
+ 8010326:	6840      	ldr	r0, [r0, #4]
+ 8010328:	f7ff fc3a 	bl	800fba0 <VerifyRfFreq>
+ 801032c:	7822      	ldrb	r2, [r4, #0]
+ 801032e:	490b      	ldr	r1, [pc, #44]	; (801035c <RegionAS923DlChannelReq+0x40>)
+ 8010330:	eb02 0242 	add.w	r2, r2, r2, lsl #1
+ 8010334:	6809      	ldr	r1, [r1, #0]
+ 8010336:	1c83      	adds	r3, r0, #2
+ 8010338:	eb01 0082 	add.w	r0, r1, r2, lsl #2
+ 801033c:	f851 2022 	ldr.w	r2, [r1, r2, lsl #2]
+ 8010340:	b2db      	uxtb	r3, r3
+ 8010342:	b91a      	cbnz	r2, 801034c <RegionAS923DlChannelReq+0x30>
+ 8010344:	f003 03fd 	and.w	r3, r3, #253	; 0xfd
+ 8010348:	b258      	sxtb	r0, r3
+ 801034a:	bd10      	pop	{r4, pc}
+ 801034c:	2b03      	cmp	r3, #3
+ 801034e:	bf06      	itte	eq
+ 8010350:	6862      	ldreq	r2, [r4, #4]
+ 8010352:	6042      	streq	r2, [r0, #4]
+ 8010354:	2302      	movne	r3, #2
+ 8010356:	e7f7      	b.n	8010348 <RegionAS923DlChannelReq+0x2c>
+ 8010358:	2000      	movs	r0, #0
+ 801035a:	e7f6      	b.n	801034a <RegionAS923DlChannelReq+0x2e>
+ 801035c:	20002624 	.word	0x20002624
+
+08010360 <RegionAS923AlternateDr>:
+ 8010360:	2002      	movs	r0, #2
+ 8010362:	4770      	bx	lr
+
+08010364 <RegionAS923NextChannel>:
+ 8010364:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8010368:	4d3a      	ldr	r5, [pc, #232]	; (8010454 <RegionAS923NextChannel+0xf0>)
+ 801036a:	4604      	mov	r4, r0
+ 801036c:	6828      	ldr	r0, [r5, #0]
+ 801036e:	b096      	sub	sp, #88	; 0x58
+ 8010370:	460e      	mov	r6, r1
+ 8010372:	4690      	mov	r8, r2
+ 8010374:	2100      	movs	r1, #0
+ 8010376:	461f      	mov	r7, r3
+ 8010378:	2201      	movs	r2, #1
+ 801037a:	2303      	movs	r3, #3
+ 801037c:	f500 6090 	add.w	r0, r0, #1152	; 0x480
+ 8010380:	e9cd 1104 	strd	r1, r1, [sp, #16]
+ 8010384:	e9cd 1106 	strd	r1, r1, [sp, #24]
+ 8010388:	f88d 100c 	strb.w	r1, [sp, #12]
+ 801038c:	f88d 100d 	strb.w	r1, [sp, #13]
+ 8010390:	f8ad 300e 	strh.w	r3, [sp, #14]
+ 8010394:	f000 f9b9 	bl	801070a <RegionCommonCountChannels>
+ 8010398:	b930      	cbnz	r0, 80103a8 <RegionAS923NextChannel+0x44>
+ 801039a:	682a      	ldr	r2, [r5, #0]
+ 801039c:	f8b2 3480 	ldrh.w	r3, [r2, #1152]	; 0x480
+ 80103a0:	f043 0303 	orr.w	r3, r3, #3
+ 80103a4:	f8a2 3480 	strh.w	r3, [r2, #1152]	; 0x480
+ 80103a8:	682a      	ldr	r2, [r5, #0]
+ 80103aa:	7a63      	ldrb	r3, [r4, #9]
+ 80103ac:	f88d 3020 	strb.w	r3, [sp, #32]
+ 80103b0:	f502 6190 	add.w	r1, r2, #1152	; 0x480
+ 80103b4:	e9cd 1209 	strd	r1, r2, [sp, #36]	; 0x24
+ 80103b8:	4a27      	ldr	r2, [pc, #156]	; (8010458 <RegionAS923NextChannel+0xf4>)
+ 80103ba:	f994 3008 	ldrsb.w	r3, [r4, #8]
+ 80103be:	6812      	ldr	r2, [r2, #0]
+ 80103c0:	920b      	str	r2, [sp, #44]	; 0x2c
+ 80103c2:	2210      	movs	r2, #16
+ 80103c4:	f8ad 2030 	strh.w	r2, [sp, #48]	; 0x30
+ 80103c8:	f10d 020e 	add.w	r2, sp, #14
+ 80103cc:	920d      	str	r2, [sp, #52]	; 0x34
+ 80103ce:	6822      	ldr	r2, [r4, #0]
+ 80103d0:	920e      	str	r2, [sp, #56]	; 0x38
+ 80103d2:	6862      	ldr	r2, [r4, #4]
+ 80103d4:	920f      	str	r2, [sp, #60]	; 0x3c
+ 80103d6:	e9d4 0103 	ldrd	r0, r1, [r4, #12]
+ 80103da:	7aa2      	ldrb	r2, [r4, #10]
+ 80103dc:	f88d 2040 	strb.w	r2, [sp, #64]	; 0x40
+ 80103e0:	2201      	movs	r2, #1
+ 80103e2:	f88d 2041 	strb.w	r2, [sp, #65]	; 0x41
+ 80103e6:	aa11      	add	r2, sp, #68	; 0x44
+ 80103e8:	e882 0003 	stmia.w	r2, {r0, r1}
+ 80103ec:	7d22      	ldrb	r2, [r4, #20]
+ 80103ee:	8ae1      	ldrh	r1, [r4, #22]
+ 80103f0:	f88d 3021 	strb.w	r3, [sp, #33]	; 0x21
+ 80103f4:	4618      	mov	r0, r3
+ 80103f6:	f88d 204c 	strb.w	r2, [sp, #76]	; 0x4c
+ 80103fa:	f7ff fbe5 	bl	800fbc8 <GetTimeOnAir>
+ 80103fe:	ab08      	add	r3, sp, #32
+ 8010400:	9315      	str	r3, [sp, #84]	; 0x54
+ 8010402:	f10d 030d 	add.w	r3, sp, #13
+ 8010406:	9014      	str	r0, [sp, #80]	; 0x50
+ 8010408:	9300      	str	r3, [sp, #0]
+ 801040a:	f8cd 8004 	str.w	r8, [sp, #4]
+ 801040e:	ab03      	add	r3, sp, #12
+ 8010410:	aa04      	add	r2, sp, #16
+ 8010412:	4639      	mov	r1, r7
+ 8010414:	a80e      	add	r0, sp, #56	; 0x38
+ 8010416:	f000 fbc1 	bl	8010b9c <RegionCommonIdentifyChannels>
+ 801041a:	4604      	mov	r4, r0
+ 801041c:	b978      	cbnz	r0, 801043e <RegionAS923NextChannel+0xda>
+ 801041e:	f89d 100c 	ldrb.w	r1, [sp, #12]
+ 8010422:	3901      	subs	r1, #1
+ 8010424:	f001 fa96 	bl	8011954 <randr>
+ 8010428:	f100 0358 	add.w	r3, r0, #88	; 0x58
+ 801042c:	eb0d 0003 	add.w	r0, sp, r3
+ 8010430:	f810 3c48 	ldrb.w	r3, [r0, #-72]
+ 8010434:	7033      	strb	r3, [r6, #0]
+ 8010436:	4620      	mov	r0, r4
+ 8010438:	b016      	add	sp, #88	; 0x58
+ 801043a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 801043e:	280c      	cmp	r0, #12
+ 8010440:	bf01      	itttt	eq
+ 8010442:	682a      	ldreq	r2, [r5, #0]
+ 8010444:	f8b2 3480 	ldrheq.w	r3, [r2, #1152]	; 0x480
+ 8010448:	f043 0303 	orreq.w	r3, r3, #3
+ 801044c:	f8a2 3480 	strheq.w	r3, [r2, #1152]	; 0x480
+ 8010450:	e7f1      	b.n	8010436 <RegionAS923NextChannel+0xd2>
+ 8010452:	bf00      	nop
+ 8010454:	20002624 	.word	0x20002624
+ 8010458:	20002620 	.word	0x20002620
+
+0801045c <RegionAS923ChannelAdd>:
+ 801045c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 801045e:	7906      	ldrb	r6, [r0, #4]
+ 8010460:	2e01      	cmp	r6, #1
+ 8010462:	4605      	mov	r5, r0
+ 8010464:	d801      	bhi.n	801046a <RegionAS923ChannelAdd+0xe>
+ 8010466:	2006      	movs	r0, #6
+ 8010468:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 801046a:	2e0f      	cmp	r6, #15
+ 801046c:	d82b      	bhi.n	80104c6 <RegionAS923ChannelAdd+0x6a>
+ 801046e:	6803      	ldr	r3, [r0, #0]
+ 8010470:	7a18      	ldrb	r0, [r3, #8]
+ 8010472:	f340 0003 	sbfx	r0, r0, #0, #4
+ 8010476:	2207      	movs	r2, #7
+ 8010478:	2100      	movs	r1, #0
+ 801047a:	b240      	sxtb	r0, r0
+ 801047c:	f000 f923 	bl	80106c6 <RegionCommonValueInRange>
+ 8010480:	682b      	ldr	r3, [r5, #0]
+ 8010482:	4604      	mov	r4, r0
+ 8010484:	7a18      	ldrb	r0, [r3, #8]
+ 8010486:	f340 1003 	sbfx	r0, r0, #4, #4
+ 801048a:	2207      	movs	r2, #7
+ 801048c:	2100      	movs	r1, #0
+ 801048e:	b240      	sxtb	r0, r0
+ 8010490:	f000 f919 	bl	80106c6 <RegionCommonValueInRange>
+ 8010494:	b1a8      	cbz	r0, 80104c2 <RegionAS923ChannelAdd+0x66>
+ 8010496:	fab4 f484 	clz	r4, r4
+ 801049a:	0964      	lsrs	r4, r4, #5
+ 801049c:	6829      	ldr	r1, [r5, #0]
+ 801049e:	7a0b      	ldrb	r3, [r1, #8]
+ 80104a0:	6808      	ldr	r0, [r1, #0]
+ 80104a2:	f343 0203 	sbfx	r2, r3, #0, #4
+ 80104a6:	f343 1303 	sbfx	r3, r3, #4, #4
+ 80104aa:	b252      	sxtb	r2, r2
+ 80104ac:	b25b      	sxtb	r3, r3
+ 80104ae:	429a      	cmp	r2, r3
+ 80104b0:	bfc8      	it	gt
+ 80104b2:	2401      	movgt	r4, #1
+ 80104b4:	f7ff fb74 	bl	800fba0 <VerifyRfFreq>
+ 80104b8:	b948      	cbnz	r0, 80104ce <RegionAS923ChannelAdd+0x72>
+ 80104ba:	2c00      	cmp	r4, #0
+ 80104bc:	d1d3      	bne.n	8010466 <RegionAS923ChannelAdd+0xa>
+ 80104be:	2004      	movs	r0, #4
+ 80104c0:	e7d2      	b.n	8010468 <RegionAS923ChannelAdd+0xc>
+ 80104c2:	2401      	movs	r4, #1
+ 80104c4:	e7ea      	b.n	801049c <RegionAS923ChannelAdd+0x40>
+ 80104c6:	2003      	movs	r0, #3
+ 80104c8:	e7ce      	b.n	8010468 <RegionAS923ChannelAdd+0xc>
+ 80104ca:	2005      	movs	r0, #5
+ 80104cc:	e7cc      	b.n	8010468 <RegionAS923ChannelAdd+0xc>
+ 80104ce:	2c00      	cmp	r4, #0
+ 80104d0:	d1fb      	bne.n	80104ca <RegionAS923ChannelAdd+0x6e>
+ 80104d2:	4f0c      	ldr	r7, [pc, #48]	; (8010504 <RegionAS923ChannelAdd+0xa8>)
+ 80104d4:	6829      	ldr	r1, [r5, #0]
+ 80104d6:	683b      	ldr	r3, [r7, #0]
+ 80104d8:	eb06 0046 	add.w	r0, r6, r6, lsl #1
+ 80104dc:	eb03 0080 	add.w	r0, r3, r0, lsl #2
+ 80104e0:	220c      	movs	r2, #12
+ 80104e2:	f001 fa53 	bl	801198c <memcpy1>
+ 80104e6:	683a      	ldr	r2, [r7, #0]
+ 80104e8:	230c      	movs	r3, #12
+ 80104ea:	fb03 2306 	mla	r3, r3, r6, r2
+ 80104ee:	4620      	mov	r0, r4
+ 80104f0:	725c      	strb	r4, [r3, #9]
+ 80104f2:	f8b2 1480 	ldrh.w	r1, [r2, #1152]	; 0x480
+ 80104f6:	2301      	movs	r3, #1
+ 80104f8:	40b3      	lsls	r3, r6
+ 80104fa:	430b      	orrs	r3, r1
+ 80104fc:	f8a2 3480 	strh.w	r3, [r2, #1152]	; 0x480
+ 8010500:	e7b2      	b.n	8010468 <RegionAS923ChannelAdd+0xc>
+ 8010502:	bf00      	nop
+ 8010504:	20002624 	.word	0x20002624
+
+08010508 <RegionAS923ChannelsRemove>:
+ 8010508:	b410      	push	{r4}
+ 801050a:	7801      	ldrb	r1, [r0, #0]
+ 801050c:	2901      	cmp	r1, #1
+ 801050e:	d90e      	bls.n	801052e <RegionAS923ChannelsRemove+0x26>
+ 8010510:	4b08      	ldr	r3, [pc, #32]	; (8010534 <RegionAS923ChannelsRemove+0x2c>)
+ 8010512:	6818      	ldr	r0, [r3, #0]
+ 8010514:	230c      	movs	r3, #12
+ 8010516:	434b      	muls	r3, r1
+ 8010518:	18c4      	adds	r4, r0, r3
+ 801051a:	2200      	movs	r2, #0
+ 801051c:	50c2      	str	r2, [r0, r3]
+ 801051e:	e9c4 2201 	strd	r2, r2, [r4, #4]
+ 8010522:	f500 6090 	add.w	r0, r0, #1152	; 0x480
+ 8010526:	bc10      	pop	{r4}
+ 8010528:	2210      	movs	r2, #16
+ 801052a:	f000 b8d5 	b.w	80106d8 <RegionCommonChanDisable>
+ 801052e:	2000      	movs	r0, #0
+ 8010530:	bc10      	pop	{r4}
+ 8010532:	4770      	bx	lr
+ 8010534:	20002624 	.word	0x20002624
+
+08010538 <RegionAS923ApplyCFList>:
+ 8010538:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 801053c:	b086      	sub	sp, #24
+ 801053e:	2350      	movs	r3, #80	; 0x50
+ 8010540:	f88d 3014 	strb.w	r3, [sp, #20]
+ 8010544:	7903      	ldrb	r3, [r0, #4]
+ 8010546:	2b10      	cmp	r3, #16
+ 8010548:	4607      	mov	r7, r0
+ 801054a:	d130      	bne.n	80105ae <RegionAS923ApplyCFList+0x76>
+ 801054c:	6803      	ldr	r3, [r0, #0]
+ 801054e:	7bdd      	ldrb	r5, [r3, #15]
+ 8010550:	bb6d      	cbnz	r5, 80105ae <RegionAS923ApplyCFList+0x76>
+ 8010552:	2402      	movs	r4, #2
+ 8010554:	46a8      	mov	r8, r5
+ 8010556:	2664      	movs	r6, #100	; 0x64
+ 8010558:	2c06      	cmp	r4, #6
+ 801055a:	d814      	bhi.n	8010586 <RegionAS923ApplyCFList+0x4e>
+ 801055c:	683a      	ldr	r2, [r7, #0]
+ 801055e:	5d53      	ldrb	r3, [r2, r5]
+ 8010560:	9303      	str	r3, [sp, #12]
+ 8010562:	442a      	add	r2, r5
+ 8010564:	7851      	ldrb	r1, [r2, #1]
+ 8010566:	ea43 2301 	orr.w	r3, r3, r1, lsl #8
+ 801056a:	9303      	str	r3, [sp, #12]
+ 801056c:	7892      	ldrb	r2, [r2, #2]
+ 801056e:	ea43 4302 	orr.w	r3, r3, r2, lsl #16
+ 8010572:	4373      	muls	r3, r6
+ 8010574:	e9cd 3803 	strd	r3, r8, [sp, #12]
+ 8010578:	b963      	cbnz	r3, 8010594 <RegionAS923ApplyCFList+0x5c>
+ 801057a:	4668      	mov	r0, sp
+ 801057c:	f88d 4000 	strb.w	r4, [sp]
+ 8010580:	f7ff ffc2 	bl	8010508 <RegionAS923ChannelsRemove>
+ 8010584:	e00d      	b.n	80105a2 <RegionAS923ApplyCFList+0x6a>
+ 8010586:	f8cd 800c 	str.w	r8, [sp, #12]
+ 801058a:	f88d 8014 	strb.w	r8, [sp, #20]
+ 801058e:	f8cd 8010 	str.w	r8, [sp, #16]
+ 8010592:	e7f2      	b.n	801057a <RegionAS923ApplyCFList+0x42>
+ 8010594:	ab03      	add	r3, sp, #12
+ 8010596:	a801      	add	r0, sp, #4
+ 8010598:	9301      	str	r3, [sp, #4]
+ 801059a:	f88d 4008 	strb.w	r4, [sp, #8]
+ 801059e:	f7ff ff5d 	bl	801045c <RegionAS923ChannelAdd>
+ 80105a2:	3401      	adds	r4, #1
+ 80105a4:	b2e4      	uxtb	r4, r4
+ 80105a6:	2c10      	cmp	r4, #16
+ 80105a8:	f105 0503 	add.w	r5, r5, #3
+ 80105ac:	d1d4      	bne.n	8010558 <RegionAS923ApplyCFList+0x20>
+ 80105ae:	b006      	add	sp, #24
+ 80105b0:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+
+080105b4 <RegionAS923NewChannelReq>:
+ 80105b4:	b51f      	push	{r0, r1, r2, r3, r4, lr}
+ 80105b6:	6802      	ldr	r2, [r0, #0]
+ 80105b8:	7903      	ldrb	r3, [r0, #4]
+ 80105ba:	6811      	ldr	r1, [r2, #0]
+ 80105bc:	b951      	cbnz	r1, 80105d4 <RegionAS923NewChannelReq+0x20>
+ 80105be:	a801      	add	r0, sp, #4
+ 80105c0:	f88d 3004 	strb.w	r3, [sp, #4]
+ 80105c4:	f7ff ffa0 	bl	8010508 <RegionAS923ChannelsRemove>
+ 80105c8:	b978      	cbnz	r0, 80105ea <RegionAS923NewChannelReq+0x36>
+ 80105ca:	2000      	movs	r0, #0
+ 80105cc:	b240      	sxtb	r0, r0
+ 80105ce:	b005      	add	sp, #20
+ 80105d0:	f85d fb04 	ldr.w	pc, [sp], #4
+ 80105d4:	a802      	add	r0, sp, #8
+ 80105d6:	9202      	str	r2, [sp, #8]
+ 80105d8:	f88d 300c 	strb.w	r3, [sp, #12]
+ 80105dc:	f7ff ff3e 	bl	801045c <RegionAS923ChannelAdd>
+ 80105e0:	2806      	cmp	r0, #6
+ 80105e2:	d8f2      	bhi.n	80105ca <RegionAS923NewChannelReq+0x16>
+ 80105e4:	4b02      	ldr	r3, [pc, #8]	; (80105f0 <RegionAS923NewChannelReq+0x3c>)
+ 80105e6:	5c18      	ldrb	r0, [r3, r0]
+ 80105e8:	e7f0      	b.n	80105cc <RegionAS923NewChannelReq+0x18>
+ 80105ea:	2003      	movs	r0, #3
+ 80105ec:	e7ee      	b.n	80105cc <RegionAS923NewChannelReq+0x18>
+ 80105ee:	bf00      	nop
+ 80105f0:	08015370 	.word	0x08015370
+
+080105f4 <RegionAS923SetContinuousWave>:
+ 80105f4:	b570      	push	{r4, r5, r6, lr}
+ 80105f6:	4e11      	ldr	r6, [pc, #68]	; (801063c <RegionAS923SetContinuousWave+0x48>)
+ 80105f8:	7801      	ldrb	r1, [r0, #0]
+ 80105fa:	6832      	ldr	r2, [r6, #0]
+ 80105fc:	4b10      	ldr	r3, [pc, #64]	; (8010640 <RegionAS923SetContinuousWave+0x4c>)
+ 80105fe:	250c      	movs	r5, #12
+ 8010600:	fb05 2201 	mla	r2, r5, r1, r2
+ 8010604:	681b      	ldr	r3, [r3, #0]
+ 8010606:	7a52      	ldrb	r2, [r2, #9]
+ 8010608:	2118      	movs	r1, #24
+ 801060a:	fb01 3302 	mla	r3, r1, r2, r3
+ 801060e:	4604      	mov	r4, r0
+ 8010610:	f993 1002 	ldrsb.w	r1, [r3, #2]
+ 8010614:	f990 0002 	ldrsb.w	r0, [r0, #2]
+ 8010618:	f000 fb1f 	bl	8010c5a <RegionCommonLimitTxPower>
+ 801061c:	7823      	ldrb	r3, [r4, #0]
+ 801061e:	6832      	ldr	r2, [r6, #0]
+ 8010620:	6861      	ldr	r1, [r4, #4]
+ 8010622:	436b      	muls	r3, r5
+ 8010624:	58d5      	ldr	r5, [r2, r3]
+ 8010626:	68a2      	ldr	r2, [r4, #8]
+ 8010628:	f000 fa49 	bl	8010abe <RegionCommonComputeTxPower>
+ 801062c:	4b05      	ldr	r3, [pc, #20]	; (8010644 <RegionAS923SetContinuousWave+0x50>)
+ 801062e:	89a2      	ldrh	r2, [r4, #12]
+ 8010630:	6bdb      	ldr	r3, [r3, #60]	; 0x3c
+ 8010632:	4601      	mov	r1, r0
+ 8010634:	4628      	mov	r0, r5
+ 8010636:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
+ 801063a:	4718      	bx	r3
+ 801063c:	20002624 	.word	0x20002624
+ 8010640:	20002620 	.word	0x20002620
+ 8010644:	080159b0 	.word	0x080159b0
+
+08010648 <RegionAS923ApplyDrOffset>:
+ 8010648:	4b07      	ldr	r3, [pc, #28]	; (8010668 <RegionAS923ApplyDrOffset+0x20>)
+ 801064a:	569b      	ldrsb	r3, [r3, r2]
+ 801064c:	1ac9      	subs	r1, r1, r3
+ 801064e:	1e43      	subs	r3, r0, #1
+ 8010650:	4258      	negs	r0, r3
+ 8010652:	4158      	adcs	r0, r3
+ 8010654:	0040      	lsls	r0, r0, #1
+ 8010656:	4288      	cmp	r0, r1
+ 8010658:	bfb8      	it	lt
+ 801065a:	4608      	movlt	r0, r1
+ 801065c:	2805      	cmp	r0, #5
+ 801065e:	bfa8      	it	ge
+ 8010660:	2005      	movge	r0, #5
+ 8010662:	b2c0      	uxtb	r0, r0
+ 8010664:	4770      	bx	lr
+ 8010666:	bf00      	nop
+ 8010668:	0801537f 	.word	0x0801537f
+
+0801066c <RegionCommonChanVerifyDr>:
+ 801066c:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 801066e:	429a      	cmp	r2, r3
+ 8010670:	9d06      	ldr	r5, [sp, #24]
+ 8010672:	db03      	blt.n	801067c <RegionCommonChanVerifyDr+0x10>
+ 8010674:	f99d 3014 	ldrsb.w	r3, [sp, #20]
+ 8010678:	429a      	cmp	r2, r3
+ 801067a:	dd20      	ble.n	80106be <RegionCommonChanVerifyDr+0x52>
+ 801067c:	2000      	movs	r0, #0
+ 801067e:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8010680:	eb03 0343 	add.w	r3, r3, r3, lsl #1
+ 8010684:	f831 c014 	ldrh.w	ip, [r1, r4, lsl #1]
+ 8010688:	eb05 0383 	add.w	r3, r5, r3, lsl #2
+ 801068c:	2600      	movs	r6, #0
+ 801068e:	fa4c f706 	asr.w	r7, ip, r6
+ 8010692:	07ff      	lsls	r7, r7, #31
+ 8010694:	d507      	bpl.n	80106a6 <RegionCommonChanVerifyDr+0x3a>
+ 8010696:	7a1f      	ldrb	r7, [r3, #8]
+ 8010698:	f007 0e0f 	and.w	lr, r7, #15
+ 801069c:	4572      	cmp	r2, lr
+ 801069e:	db02      	blt.n	80106a6 <RegionCommonChanVerifyDr+0x3a>
+ 80106a0:	ebb2 1f17 	cmp.w	r2, r7, lsr #4
+ 80106a4:	dd0d      	ble.n	80106c2 <RegionCommonChanVerifyDr+0x56>
+ 80106a6:	3601      	adds	r6, #1
+ 80106a8:	2e10      	cmp	r6, #16
+ 80106aa:	f103 030c 	add.w	r3, r3, #12
+ 80106ae:	d1ee      	bne.n	801068e <RegionCommonChanVerifyDr+0x22>
+ 80106b0:	3401      	adds	r4, #1
+ 80106b2:	b2e4      	uxtb	r4, r4
+ 80106b4:	0123      	lsls	r3, r4, #4
+ 80106b6:	b2db      	uxtb	r3, r3
+ 80106b8:	4298      	cmp	r0, r3
+ 80106ba:	d8e1      	bhi.n	8010680 <RegionCommonChanVerifyDr+0x14>
+ 80106bc:	e7de      	b.n	801067c <RegionCommonChanVerifyDr+0x10>
+ 80106be:	2400      	movs	r4, #0
+ 80106c0:	e7f8      	b.n	80106b4 <RegionCommonChanVerifyDr+0x48>
+ 80106c2:	2001      	movs	r0, #1
+ 80106c4:	e7db      	b.n	801067e <RegionCommonChanVerifyDr+0x12>
+
+080106c6 <RegionCommonValueInRange>:
+ 80106c6:	4288      	cmp	r0, r1
+ 80106c8:	db04      	blt.n	80106d4 <RegionCommonValueInRange+0xe>
+ 80106ca:	4290      	cmp	r0, r2
+ 80106cc:	bfcc      	ite	gt
+ 80106ce:	2000      	movgt	r0, #0
+ 80106d0:	2001      	movle	r0, #1
+ 80106d2:	4770      	bx	lr
+ 80106d4:	2000      	movs	r0, #0
+ 80106d6:	4770      	bx	lr
+
+080106d8 <RegionCommonChanDisable>:
+ 80106d8:	b510      	push	{r4, lr}
+ 80106da:	0914      	lsrs	r4, r2, #4
+ 80106dc:	ebb4 1f11 	cmp.w	r4, r1, lsr #4
+ 80106e0:	4603      	mov	r3, r0
+ 80106e2:	ea4f 1011 	mov.w	r0, r1, lsr #4
+ 80106e6:	d30e      	bcc.n	8010706 <RegionCommonChanDisable+0x2e>
+ 80106e8:	4291      	cmp	r1, r2
+ 80106ea:	d20c      	bcs.n	8010706 <RegionCommonChanDisable+0x2e>
+ 80106ec:	b202      	sxth	r2, r0
+ 80106ee:	f001 010f 	and.w	r1, r1, #15
+ 80106f2:	f833 4012 	ldrh.w	r4, [r3, r2, lsl #1]
+ 80106f6:	2001      	movs	r0, #1
+ 80106f8:	fa00 f101 	lsl.w	r1, r0, r1
+ 80106fc:	ea24 0101 	bic.w	r1, r4, r1
+ 8010700:	f823 1012 	strh.w	r1, [r3, r2, lsl #1]
+ 8010704:	bd10      	pop	{r4, pc}
+ 8010706:	2000      	movs	r0, #0
+ 8010708:	e7fc      	b.n	8010704 <RegionCommonChanDisable+0x2c>
+
+0801070a <RegionCommonCountChannels>:
+ 801070a:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 801070c:	b128      	cbz	r0, 801071a <RegionCommonCountChannels+0x10>
+ 801070e:	eb00 0541 	add.w	r5, r0, r1, lsl #1
+ 8010712:	2701      	movs	r7, #1
+ 8010714:	2000      	movs	r0, #0
+ 8010716:	4291      	cmp	r1, r2
+ 8010718:	d300      	bcc.n	801071c <RegionCommonCountChannels+0x12>
+ 801071a:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 801071c:	2400      	movs	r4, #0
+ 801071e:	f835 cb02 	ldrh.w	ip, [r5], #2
+ 8010722:	4623      	mov	r3, r4
+ 8010724:	fa07 f604 	lsl.w	r6, r7, r4
+ 8010728:	ea36 060c 	bics.w	r6, r6, ip
+ 801072c:	bf08      	it	eq
+ 801072e:	3301      	addeq	r3, #1
+ 8010730:	f104 0401 	add.w	r4, r4, #1
+ 8010734:	bf08      	it	eq
+ 8010736:	b2db      	uxtbeq	r3, r3
+ 8010738:	2c10      	cmp	r4, #16
+ 801073a:	d1f3      	bne.n	8010724 <RegionCommonCountChannels+0x1a>
+ 801073c:	4418      	add	r0, r3
+ 801073e:	3101      	adds	r1, #1
+ 8010740:	b2c0      	uxtb	r0, r0
+ 8010742:	b2c9      	uxtb	r1, r1
+ 8010744:	e7e7      	b.n	8010716 <RegionCommonCountChannels+0xc>
+
+08010746 <RegionCommonChanMaskCopy>:
+ 8010746:	b510      	push	{r4, lr}
+ 8010748:	b100      	cbz	r0, 801074c <RegionCommonChanMaskCopy+0x6>
+ 801074a:	b949      	cbnz	r1, 8010760 <RegionCommonChanMaskCopy+0x1a>
+ 801074c:	bd10      	pop	{r4, pc}
+ 801074e:	f831 4013 	ldrh.w	r4, [r1, r3, lsl #1]
+ 8010752:	f820 4013 	strh.w	r4, [r0, r3, lsl #1]
+ 8010756:	3301      	adds	r3, #1
+ 8010758:	b2dc      	uxtb	r4, r3
+ 801075a:	42a2      	cmp	r2, r4
+ 801075c:	d8f7      	bhi.n	801074e <RegionCommonChanMaskCopy+0x8>
+ 801075e:	e7f5      	b.n	801074c <RegionCommonChanMaskCopy+0x6>
+ 8010760:	2300      	movs	r3, #0
+ 8010762:	e7f9      	b.n	8010758 <RegionCommonChanMaskCopy+0x12>
+
+08010764 <RegionCommonSetBandTxDone>:
+ 8010764:	b082      	sub	sp, #8
+ 8010766:	b530      	push	{r4, r5, lr}
+ 8010768:	8804      	ldrh	r4, [r0, #0]
+ 801076a:	9304      	str	r3, [sp, #16]
+ 801076c:	b96a      	cbnz	r2, 801078a <RegionCommonSetBandTxDone+0x26>
+ 801076e:	f5b3 6f61 	cmp.w	r3, #3600	; 0xe10
+ 8010772:	d318      	bcc.n	80107a6 <RegionCommonSetBandTxDone+0x42>
+ 8010774:	f649 25af 	movw	r5, #39599	; 0x9aaf
+ 8010778:	f242 7210 	movw	r2, #10000	; 0x2710
+ 801077c:	42ab      	cmp	r3, r5
+ 801077e:	bf98      	it	ls
+ 8010780:	f44f 727a 	movls.w	r2, #1000	; 0x3e8
+ 8010784:	4294      	cmp	r4, r2
+ 8010786:	bf38      	it	cc
+ 8010788:	4614      	movcc	r4, r2
+ 801078a:	2c01      	cmp	r4, #1
+ 801078c:	bf38      	it	cc
+ 801078e:	2401      	movcc	r4, #1
+ 8010790:	4361      	muls	r1, r4
+ 8010792:	e8bd 4030 	ldmia.w	sp!, {r4, r5, lr}
+ 8010796:	68c3      	ldr	r3, [r0, #12]
+ 8010798:	428b      	cmp	r3, r1
+ 801079a:	bf8c      	ite	hi
+ 801079c:	1a5b      	subhi	r3, r3, r1
+ 801079e:	2300      	movls	r3, #0
+ 80107a0:	60c3      	str	r3, [r0, #12]
+ 80107a2:	b002      	add	sp, #8
+ 80107a4:	4770      	bx	lr
+ 80107a6:	2264      	movs	r2, #100	; 0x64
+ 80107a8:	e7ec      	b.n	8010784 <RegionCommonSetBandTxDone+0x20>
+	...
+
+080107ac <RegionCommonUpdateBandTimeOff>:
+ 80107ac:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 80107b0:	b091      	sub	sp, #68	; 0x44
+ 80107b2:	4615      	mov	r5, r2
+ 80107b4:	f8dd 806c 	ldr.w	r8, [sp, #108]	; 0x6c
+ 80107b8:	9304      	str	r3, [sp, #16]
+ 80107ba:	f89d 3068 	ldrb.w	r3, [sp, #104]	; 0x68
+ 80107be:	9309      	str	r3, [sp, #36]	; 0x24
+ 80107c0:	460c      	mov	r4, r1
+ 80107c2:	4606      	mov	r6, r0
+ 80107c4:	f003 fbc2 	bl	8013f4c <UTIL_TIMER_GetCurrentTime>
+ 80107c8:	4a68      	ldr	r2, [pc, #416]	; (801096c <RegionCommonUpdateBandTimeOff+0x1c0>)
+ 80107ca:	f8df b1a4 	ldr.w	fp, [pc, #420]	; 8010970 <RegionCommonUpdateBandTimeOff+0x1c4>
+ 80107ce:	9005      	str	r0, [sp, #20]
+ 80107d0:	f5a8 33f6 	sub.w	r3, r8, #125952	; 0x1ec00
+ 80107d4:	3b30      	subs	r3, #48	; 0x30
+ 80107d6:	fbb3 f3f2 	udiv	r3, r3, r2
+ 80107da:	4353      	muls	r3, r2
+ 80107dc:	f503 32f6 	add.w	r2, r3, #125952	; 0x1ec00
+ 80107e0:	f503 33a8 	add.w	r3, r3, #86016	; 0x15000
+ 80107e4:	f503 73c0 	add.w	r3, r3, #384	; 0x180
+ 80107e8:	9303      	str	r3, [sp, #12]
+ 80107ea:	2318      	movs	r3, #24
+ 80107ec:	fb13 4305 	smlabb	r3, r3, r5, r4
+ 80107f0:	3230      	adds	r2, #48	; 0x30
+ 80107f2:	9206      	str	r2, [sp, #24]
+ 80107f4:	9308      	str	r3, [sp, #32]
+ 80107f6:	2500      	movs	r5, #0
+ 80107f8:	f04f 3aff 	mov.w	sl, #4294967295
+ 80107fc:	9b08      	ldr	r3, [sp, #32]
+ 80107fe:	42a3      	cmp	r3, r4
+ 8010800:	d107      	bne.n	8010812 <RegionCommonUpdateBandTimeOff+0x66>
+ 8010802:	2d00      	cmp	r5, #0
+ 8010804:	bf14      	ite	ne
+ 8010806:	4650      	movne	r0, sl
+ 8010808:	f04f 30ff 	moveq.w	r0, #4294967295
+ 801080c:	b011      	add	sp, #68	; 0x44
+ 801080e:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 8010812:	f9bd 3070 	ldrsh.w	r3, [sp, #112]	; 0x70
+ 8010816:	f8ad 302c 	strh.w	r3, [sp, #44]	; 0x2c
+ 801081a:	990b      	ldr	r1, [sp, #44]	; 0x2c
+ 801081c:	f8cd 806c 	str.w	r8, [sp, #108]	; 0x6c
+ 8010820:	4640      	mov	r0, r8
+ 8010822:	f8cd 8028 	str.w	r8, [sp, #40]	; 0x28
+ 8010826:	f003 fb21 	bl	8013e6c <SysTimeToMs>
+ 801082a:	f8b4 9000 	ldrh.w	r9, [r4]
+ 801082e:	b96e      	cbnz	r6, 801084c <RegionCommonUpdateBandTimeOff+0xa0>
+ 8010830:	f5b8 6f61 	cmp.w	r8, #3600	; 0xe10
+ 8010834:	d35b      	bcc.n	80108ee <RegionCommonUpdateBandTimeOff+0x142>
+ 8010836:	f649 22af 	movw	r2, #39599	; 0x9aaf
+ 801083a:	f242 7310 	movw	r3, #10000	; 0x2710
+ 801083e:	4590      	cmp	r8, r2
+ 8010840:	bf98      	it	ls
+ 8010842:	f44f 737a 	movls.w	r3, #1000	; 0x3e8
+ 8010846:	4599      	cmp	r9, r3
+ 8010848:	bf38      	it	cc
+ 801084a:	4699      	movcc	r9, r3
+ 801084c:	464b      	mov	r3, r9
+ 801084e:	2b01      	cmp	r3, #1
+ 8010850:	bf38      	it	cc
+ 8010852:	2301      	movcc	r3, #1
+ 8010854:	9307      	str	r3, [sp, #28]
+ 8010856:	2e00      	cmp	r6, #0
+ 8010858:	d152      	bne.n	8010900 <RegionCommonUpdateBandTimeOff+0x154>
+ 801085a:	f1b9 0f64 	cmp.w	r9, #100	; 0x64
+ 801085e:	d148      	bne.n	80108f2 <RegionCommonUpdateBandTimeOff+0x146>
+ 8010860:	60a0      	str	r0, [r4, #8]
+ 8010862:	465f      	mov	r7, fp
+ 8010864:	68a1      	ldr	r1, [r4, #8]
+ 8010866:	a80e      	add	r0, sp, #56	; 0x38
+ 8010868:	f003 fb22 	bl	8013eb0 <SysTimeFromMs>
+ 801086c:	9b0f      	ldr	r3, [sp, #60]	; 0x3c
+ 801086e:	9300      	str	r3, [sp, #0]
+ 8010870:	e9dd 120a 	ldrd	r1, r2, [sp, #40]	; 0x28
+ 8010874:	9b0e      	ldr	r3, [sp, #56]	; 0x38
+ 8010876:	a80c      	add	r0, sp, #48	; 0x30
+ 8010878:	f003 fa79 	bl	8013d6e <SysTimeSub>
+ 801087c:	9b04      	ldr	r3, [sp, #16]
+ 801087e:	9a0c      	ldr	r2, [sp, #48]	; 0x30
+ 8010880:	b90b      	cbnz	r3, 8010886 <RegionCommonUpdateBandTimeOff+0xda>
+ 8010882:	9b09      	ldr	r3, [sp, #36]	; 0x24
+ 8010884:	b12b      	cbz	r3, 8010892 <RegionCommonUpdateBandTimeOff+0xe6>
+ 8010886:	6923      	ldr	r3, [r4, #16]
+ 8010888:	42bb      	cmp	r3, r7
+ 801088a:	d102      	bne.n	8010892 <RegionCommonUpdateBandTimeOff+0xe6>
+ 801088c:	4b39      	ldr	r3, [pc, #228]	; (8010974 <RegionCommonUpdateBandTimeOff+0x1c8>)
+ 801088e:	429a      	cmp	r2, r3
+ 8010890:	d90d      	bls.n	80108ae <RegionCommonUpdateBandTimeOff+0x102>
+ 8010892:	4b39      	ldr	r3, [pc, #228]	; (8010978 <RegionCommonUpdateBandTimeOff+0x1cc>)
+ 8010894:	60e7      	str	r7, [r4, #12]
+ 8010896:	4598      	cmp	r8, r3
+ 8010898:	d909      	bls.n	80108ae <RegionCommonUpdateBandTimeOff+0x102>
+ 801089a:	2300      	movs	r3, #0
+ 801089c:	f8ad 3034 	strh.w	r3, [sp, #52]	; 0x34
+ 80108a0:	9b06      	ldr	r3, [sp, #24]
+ 80108a2:	990d      	ldr	r1, [sp, #52]	; 0x34
+ 80108a4:	930c      	str	r3, [sp, #48]	; 0x30
+ 80108a6:	4618      	mov	r0, r3
+ 80108a8:	f003 fae0 	bl	8013e6c <SysTimeToMs>
+ 80108ac:	60a0      	str	r0, [r4, #8]
+ 80108ae:	6860      	ldr	r0, [r4, #4]
+ 80108b0:	b900      	cbnz	r0, 80108b4 <RegionCommonUpdateBandTimeOff+0x108>
+ 80108b2:	60e7      	str	r7, [r4, #12]
+ 80108b4:	6127      	str	r7, [r4, #16]
+ 80108b6:	b126      	cbz	r6, 80108c2 <RegionCommonUpdateBandTimeOff+0x116>
+ 80108b8:	f003 fb52 	bl	8013f60 <UTIL_TIMER_GetElapsedTime>
+ 80108bc:	68e3      	ldr	r3, [r4, #12]
+ 80108be:	4403      	add	r3, r0
+ 80108c0:	60e3      	str	r3, [r4, #12]
+ 80108c2:	e9d4 3203 	ldrd	r3, r2, [r4, #12]
+ 80108c6:	4293      	cmp	r3, r2
+ 80108c8:	9b05      	ldr	r3, [sp, #20]
+ 80108ca:	991d      	ldr	r1, [sp, #116]	; 0x74
+ 80108cc:	6063      	str	r3, [r4, #4]
+ 80108ce:	9b07      	ldr	r3, [sp, #28]
+ 80108d0:	bf88      	it	hi
+ 80108d2:	60e2      	strhi	r2, [r4, #12]
+ 80108d4:	434b      	muls	r3, r1
+ 80108d6:	68e1      	ldr	r1, [r4, #12]
+ 80108d8:	4299      	cmp	r1, r3
+ 80108da:	d202      	bcs.n	80108e2 <RegionCommonUpdateBandTimeOff+0x136>
+ 80108dc:	9804      	ldr	r0, [sp, #16]
+ 80108de:	b9a8      	cbnz	r0, 801090c <RegionCommonUpdateBandTimeOff+0x160>
+ 80108e0:	b1a6      	cbz	r6, 801090c <RegionCommonUpdateBandTimeOff+0x160>
+ 80108e2:	2301      	movs	r3, #1
+ 80108e4:	441d      	add	r5, r3
+ 80108e6:	7523      	strb	r3, [r4, #20]
+ 80108e8:	b2ed      	uxtb	r5, r5
+ 80108ea:	3418      	adds	r4, #24
+ 80108ec:	e786      	b.n	80107fc <RegionCommonUpdateBandTimeOff+0x50>
+ 80108ee:	2364      	movs	r3, #100	; 0x64
+ 80108f0:	e7a9      	b.n	8010846 <RegionCommonUpdateBandTimeOff+0x9a>
+ 80108f2:	f5b9 7f7a 	cmp.w	r9, #1000	; 0x3e8
+ 80108f6:	bf0a      	itet	eq
+ 80108f8:	4f20      	ldreq	r7, [pc, #128]	; (801097c <RegionCommonUpdateBandTimeOff+0x1d0>)
+ 80108fa:	4f21      	ldrne	r7, [pc, #132]	; (8010980 <RegionCommonUpdateBandTimeOff+0x1d4>)
+ 80108fc:	60a0      	streq	r0, [r4, #8]
+ 80108fe:	e7b1      	b.n	8010864 <RegionCommonUpdateBandTimeOff+0xb8>
+ 8010900:	9b04      	ldr	r3, [sp, #16]
+ 8010902:	b90b      	cbnz	r3, 8010908 <RegionCommonUpdateBandTimeOff+0x15c>
+ 8010904:	f8c4 b00c 	str.w	fp, [r4, #12]
+ 8010908:	465f      	mov	r7, fp
+ 801090a:	e7d0      	b.n	80108ae <RegionCommonUpdateBandTimeOff+0x102>
+ 801090c:	2000      	movs	r0, #0
+ 801090e:	4293      	cmp	r3, r2
+ 8010910:	7520      	strb	r0, [r4, #20]
+ 8010912:	d806      	bhi.n	8010922 <RegionCommonUpdateBandTimeOff+0x176>
+ 8010914:	1a5b      	subs	r3, r3, r1
+ 8010916:	459a      	cmp	sl, r3
+ 8010918:	f105 0501 	add.w	r5, r5, #1
+ 801091c:	bf28      	it	cs
+ 801091e:	469a      	movcs	sl, r3
+ 8010920:	b2ed      	uxtb	r5, r5
+ 8010922:	2e00      	cmp	r6, #0
+ 8010924:	d1e1      	bne.n	80108ea <RegionCommonUpdateBandTimeOff+0x13e>
+ 8010926:	f1b9 0f64 	cmp.w	r9, #100	; 0x64
+ 801092a:	4a16      	ldr	r2, [pc, #88]	; (8010984 <RegionCommonUpdateBandTimeOff+0x1d8>)
+ 801092c:	f8ad 6034 	strh.w	r6, [sp, #52]	; 0x34
+ 8010930:	d019      	beq.n	8010966 <RegionCommonUpdateBandTimeOff+0x1ba>
+ 8010932:	f649 23b0 	movw	r3, #39600	; 0x9ab0
+ 8010936:	f5b9 7f7a 	cmp.w	r9, #1000	; 0x3e8
+ 801093a:	bf18      	it	ne
+ 801093c:	4613      	movne	r3, r2
+ 801093e:	4590      	cmp	r8, r2
+ 8010940:	bf84      	itt	hi
+ 8010942:	9a03      	ldrhi	r2, [sp, #12]
+ 8010944:	189b      	addhi	r3, r3, r2
+ 8010946:	930c      	str	r3, [sp, #48]	; 0x30
+ 8010948:	9b1c      	ldr	r3, [sp, #112]	; 0x70
+ 801094a:	9300      	str	r3, [sp, #0]
+ 801094c:	af0c      	add	r7, sp, #48	; 0x30
+ 801094e:	e897 0006 	ldmia.w	r7, {r1, r2}
+ 8010952:	9b1b      	ldr	r3, [sp, #108]	; 0x6c
+ 8010954:	4638      	mov	r0, r7
+ 8010956:	f003 fa0a 	bl	8013d6e <SysTimeSub>
+ 801095a:	e897 0003 	ldmia.w	r7, {r0, r1}
+ 801095e:	f003 fa85 	bl	8013e6c <SysTimeToMs>
+ 8010962:	4682      	mov	sl, r0
+ 8010964:	e7c1      	b.n	80108ea <RegionCommonUpdateBandTimeOff+0x13e>
+ 8010966:	f44f 6361 	mov.w	r3, #3600	; 0xe10
+ 801096a:	e7e8      	b.n	801093e <RegionCommonUpdateBandTimeOff+0x192>
+ 801096c:	00015180 	.word	0x00015180
+ 8010970:	001b7740 	.word	0x001b7740
+ 8010974:	0001517f 	.word	0x0001517f
+ 8010978:	0001ec2f 	.word	0x0001ec2f
+ 801097c:	0112a880 	.word	0x0112a880
+ 8010980:	02932e00 	.word	0x02932e00
+ 8010984:	0001ec30 	.word	0x0001ec30
+
+08010988 <RegionCommonParseLinkAdrReq>:
+ 8010988:	7803      	ldrb	r3, [r0, #0]
+ 801098a:	2b03      	cmp	r3, #3
+ 801098c:	d114      	bne.n	80109b8 <RegionCommonParseLinkAdrReq+0x30>
+ 801098e:	7843      	ldrb	r3, [r0, #1]
+ 8010990:	f003 020f 	and.w	r2, r3, #15
+ 8010994:	091b      	lsrs	r3, r3, #4
+ 8010996:	708a      	strb	r2, [r1, #2]
+ 8010998:	704b      	strb	r3, [r1, #1]
+ 801099a:	7883      	ldrb	r3, [r0, #2]
+ 801099c:	808b      	strh	r3, [r1, #4]
+ 801099e:	78c2      	ldrb	r2, [r0, #3]
+ 80109a0:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
+ 80109a4:	808b      	strh	r3, [r1, #4]
+ 80109a6:	7903      	ldrb	r3, [r0, #4]
+ 80109a8:	f3c3 1202 	ubfx	r2, r3, #4, #3
+ 80109ac:	f003 030f 	and.w	r3, r3, #15
+ 80109b0:	70ca      	strb	r2, [r1, #3]
+ 80109b2:	700b      	strb	r3, [r1, #0]
+ 80109b4:	2005      	movs	r0, #5
+ 80109b6:	4770      	bx	lr
+ 80109b8:	2000      	movs	r0, #0
+ 80109ba:	4770      	bx	lr
+
+080109bc <RegionCommonLinkAdrReqVerifyParams>:
+ 80109bc:	e92d 47f3 	stmdb	sp!, {r0, r1, r4, r5, r6, r7, r8, r9, sl, lr}
+ 80109c0:	4698      	mov	r8, r3
+ 80109c2:	7943      	ldrb	r3, [r0, #5]
+ 80109c4:	7905      	ldrb	r5, [r0, #4]
+ 80109c6:	f990 6007 	ldrsb.w	r6, [r0, #7]
+ 80109ca:	4691      	mov	r9, r2
+ 80109cc:	4604      	mov	r4, r0
+ 80109ce:	f990 2006 	ldrsb.w	r2, [r0, #6]
+ 80109d2:	468a      	mov	sl, r1
+ 80109d4:	b183      	cbz	r3, 80109f8 <RegionCommonLinkAdrReqVerifyParams+0x3c>
+ 80109d6:	f990 7008 	ldrsb.w	r7, [r0, #8]
+ 80109da:	b375      	cbz	r5, 8010a3a <RegionCommonLinkAdrReqVerifyParams+0x7e>
+ 80109dc:	2a0f      	cmp	r2, #15
+ 80109de:	d112      	bne.n	8010a06 <RegionCommonLinkAdrReqVerifyParams+0x4a>
+ 80109e0:	f994 2009 	ldrsb.w	r2, [r4, #9]
+ 80109e4:	2e0f      	cmp	r6, #15
+ 80109e6:	d11e      	bne.n	8010a26 <RegionCommonLinkAdrReqVerifyParams+0x6a>
+ 80109e8:	f994 600a 	ldrsb.w	r6, [r4, #10]
+ 80109ec:	2d07      	cmp	r5, #7
+ 80109ee:	d124      	bne.n	8010a3a <RegionCommonLinkAdrReqVerifyParams+0x7e>
+ 80109f0:	2f00      	cmp	r7, #0
+ 80109f2:	bf08      	it	eq
+ 80109f4:	2701      	moveq	r7, #1
+ 80109f6:	e020      	b.n	8010a3a <RegionCommonLinkAdrReqVerifyParams+0x7e>
+ 80109f8:	f990 700b 	ldrsb.w	r7, [r0, #11]
+ 80109fc:	f990 2009 	ldrsb.w	r2, [r0, #9]
+ 8010a00:	f990 600a 	ldrsb.w	r6, [r0, #10]
+ 8010a04:	e7e9      	b.n	80109da <RegionCommonLinkAdrReqVerifyParams+0x1e>
+ 8010a06:	69a3      	ldr	r3, [r4, #24]
+ 8010a08:	9301      	str	r3, [sp, #4]
+ 8010a0a:	f994 3015 	ldrsb.w	r3, [r4, #21]
+ 8010a0e:	9300      	str	r3, [sp, #0]
+ 8010a10:	6921      	ldr	r1, [r4, #16]
+ 8010a12:	f994 3014 	ldrsb.w	r3, [r4, #20]
+ 8010a16:	7b20      	ldrb	r0, [r4, #12]
+ 8010a18:	f7ff fe28 	bl	801066c <RegionCommonChanVerifyDr>
+ 8010a1c:	2800      	cmp	r0, #0
+ 8010a1e:	d1e1      	bne.n	80109e4 <RegionCommonLinkAdrReqVerifyParams+0x28>
+ 8010a20:	f005 05fd 	and.w	r5, r5, #253	; 0xfd
+ 8010a24:	e7de      	b.n	80109e4 <RegionCommonLinkAdrReqVerifyParams+0x28>
+ 8010a26:	f994 301d 	ldrsb.w	r3, [r4, #29]
+ 8010a2a:	42b3      	cmp	r3, r6
+ 8010a2c:	dc0f      	bgt.n	8010a4e <RegionCommonLinkAdrReqVerifyParams+0x92>
+ 8010a2e:	f994 301c 	ldrsb.w	r3, [r4, #28]
+ 8010a32:	42b3      	cmp	r3, r6
+ 8010a34:	dada      	bge.n	80109ec <RegionCommonLinkAdrReqVerifyParams+0x30>
+ 8010a36:	f005 05fb 	and.w	r5, r5, #251	; 0xfb
+ 8010a3a:	4628      	mov	r0, r5
+ 8010a3c:	f88a 2000 	strb.w	r2, [sl]
+ 8010a40:	f889 6000 	strb.w	r6, [r9]
+ 8010a44:	f888 7000 	strb.w	r7, [r8]
+ 8010a48:	b002      	add	sp, #8
+ 8010a4a:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 8010a4e:	461e      	mov	r6, r3
+ 8010a50:	e7cc      	b.n	80109ec <RegionCommonLinkAdrReqVerifyParams+0x30>
+	...
+
+08010a54 <RegionCommonComputeSymbolTimeLoRa>:
+ 8010a54:	4b02      	ldr	r3, [pc, #8]	; (8010a60 <RegionCommonComputeSymbolTimeLoRa+0xc>)
+ 8010a56:	fa03 f000 	lsl.w	r0, r3, r0
+ 8010a5a:	fbb0 f0f1 	udiv	r0, r0, r1
+ 8010a5e:	4770      	bx	lr
+ 8010a60:	000f4240 	.word	0x000f4240
+
+08010a64 <RegionCommonComputeSymbolTimeFsk>:
+ 8010a64:	f44f 53fa 	mov.w	r3, #8000	; 0x1f40
+ 8010a68:	fbb3 f0f0 	udiv	r0, r3, r0
+ 8010a6c:	4770      	bx	lr
+
+08010a6e <RegionCommonComputeRxWindowParameters>:
+ 8010a6e:	b530      	push	{r4, r5, lr}
+ 8010a70:	f44f 757a 	mov.w	r5, #1000	; 0x3e8
+ 8010a74:	1f0c      	subs	r4, r1, #4
+ 8010a76:	436a      	muls	r2, r5
+ 8010a78:	fb00 2204 	mla	r2, r0, r4, r2
+ 8010a7c:	0052      	lsls	r2, r2, #1
+ 8010a7e:	bf1e      	ittt	ne
+ 8010a80:	f100 34ff 	addne.w	r4, r0, #4294967295
+ 8010a84:	1912      	addne	r2, r2, r4
+ 8010a86:	fbb2 f2f0 	udivne	r2, r2, r0
+ 8010a8a:	4291      	cmp	r1, r2
+ 8010a8c:	bf38      	it	cc
+ 8010a8e:	4611      	movcc	r1, r2
+ 8010a90:	9a03      	ldr	r2, [sp, #12]
+ 8010a92:	6011      	str	r1, [r2, #0]
+ 8010a94:	0082      	lsls	r2, r0, #2
+ 8010a96:	4348      	muls	r0, r1
+ 8010a98:	bf1c      	itt	ne
+ 8010a9a:	3001      	addne	r0, #1
+ 8010a9c:	0840      	lsrne	r0, r0, #1
+ 8010a9e:	f44f 717a 	mov.w	r1, #1000	; 0x3e8
+ 8010aa2:	1a12      	subs	r2, r2, r0
+ 8010aa4:	fb01 2313 	mls	r3, r1, r3, r2
+ 8010aa8:	2b00      	cmp	r3, #0
+ 8010aaa:	bfca      	itet	gt
+ 8010aac:	f203 33e7 	addwgt	r3, r3, #999	; 0x3e7
+ 8010ab0:	fb93 f1f1 	sdivle	r1, r3, r1
+ 8010ab4:	fbb3 f1f1 	udivgt	r1, r3, r1
+ 8010ab8:	9b04      	ldr	r3, [sp, #16]
+ 8010aba:	6019      	str	r1, [r3, #0]
+ 8010abc:	bd30      	pop	{r4, r5, pc}
+
+08010abe <RegionCommonComputeTxPower>:
+ 8010abe:	b538      	push	{r3, r4, r5, lr}
+ 8010ac0:	0040      	lsls	r0, r0, #1
+ 8010ac2:	4614      	mov	r4, r2
+ 8010ac4:	460d      	mov	r5, r1
+ 8010ac6:	f7f0 ffa5 	bl	8001a14 <__aeabi_ui2f>
+ 8010aca:	4601      	mov	r1, r0
+ 8010acc:	4628      	mov	r0, r5
+ 8010ace:	f7f0 feef 	bl	80018b0 <__aeabi_fsub>
+ 8010ad2:	4621      	mov	r1, r4
+ 8010ad4:	f7f0 feec 	bl	80018b0 <__aeabi_fsub>
+ 8010ad8:	f7f0 fdde 	bl	8001698 <__aeabi_f2d>
+ 8010adc:	f003 fcd8 	bl	8014490 <floor>
+ 8010ae0:	f7f0 feba 	bl	8001858 <__aeabi_d2iz>
+ 8010ae4:	b240      	sxtb	r0, r0
+ 8010ae6:	bd38      	pop	{r3, r4, r5, pc}
+
+08010ae8 <RegionCommonCountNbOfEnabledChannels>:
+ 8010ae8:	e92d 4ff7 	stmdb	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8010aec:	9301      	str	r3, [sp, #4]
+ 8010aee:	2300      	movs	r3, #0
+ 8010af0:	461f      	mov	r7, r3
+ 8010af2:	469c      	mov	ip, r3
+ 8010af4:	011c      	lsls	r4, r3, #4
+ 8010af6:	8a05      	ldrh	r5, [r0, #16]
+ 8010af8:	fa5f fe84 	uxtb.w	lr, r4
+ 8010afc:	f004 04f0 	and.w	r4, r4, #240	; 0xf0
+ 8010b00:	42a5      	cmp	r5, r4
+ 8010b02:	d806      	bhi.n	8010b12 <RegionCommonCountNbOfEnabledChannels+0x2a>
+ 8010b04:	9b01      	ldr	r3, [sp, #4]
+ 8010b06:	f882 c000 	strb.w	ip, [r2]
+ 8010b0a:	701f      	strb	r7, [r3, #0]
+ 8010b0c:	b003      	add	sp, #12
+ 8010b0e:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 8010b12:	eb0e 054e 	add.w	r5, lr, lr, lsl #1
+ 8010b16:	ea4f 0943 	mov.w	r9, r3, lsl #1
+ 8010b1a:	00ad      	lsls	r5, r5, #2
+ 8010b1c:	2400      	movs	r4, #0
+ 8010b1e:	6846      	ldr	r6, [r0, #4]
+ 8010b20:	f836 6009 	ldrh.w	r6, [r6, r9]
+ 8010b24:	4126      	asrs	r6, r4
+ 8010b26:	07f6      	lsls	r6, r6, #31
+ 8010b28:	d527      	bpl.n	8010b7a <RegionCommonCountNbOfEnabledChannels+0x92>
+ 8010b2a:	6886      	ldr	r6, [r0, #8]
+ 8010b2c:	eb06 0a05 	add.w	sl, r6, r5
+ 8010b30:	5976      	ldr	r6, [r6, r5]
+ 8010b32:	b316      	cbz	r6, 8010b7a <RegionCommonCountNbOfEnabledChannels+0x92>
+ 8010b34:	7806      	ldrb	r6, [r0, #0]
+ 8010b36:	b936      	cbnz	r6, 8010b46 <RegionCommonCountNbOfEnabledChannels+0x5e>
+ 8010b38:	6946      	ldr	r6, [r0, #20]
+ 8010b3a:	b126      	cbz	r6, 8010b46 <RegionCommonCountNbOfEnabledChannels+0x5e>
+ 8010b3c:	f836 6009 	ldrh.w	r6, [r6, r9]
+ 8010b40:	4126      	asrs	r6, r4
+ 8010b42:	07f6      	lsls	r6, r6, #31
+ 8010b44:	d519      	bpl.n	8010b7a <RegionCommonCountNbOfEnabledChannels+0x92>
+ 8010b46:	f89a 6008 	ldrb.w	r6, [sl, #8]
+ 8010b4a:	f990 b001 	ldrsb.w	fp, [r0, #1]
+ 8010b4e:	f346 0803 	sbfx	r8, r6, #0, #4
+ 8010b52:	fa4f f888 	sxtb.w	r8, r8
+ 8010b56:	45d8      	cmp	r8, fp
+ 8010b58:	dc0f      	bgt.n	8010b7a <RegionCommonCountNbOfEnabledChannels+0x92>
+ 8010b5a:	f346 1603 	sbfx	r6, r6, #4, #4
+ 8010b5e:	b276      	sxtb	r6, r6
+ 8010b60:	455e      	cmp	r6, fp
+ 8010b62:	db0a      	blt.n	8010b7a <RegionCommonCountNbOfEnabledChannels+0x92>
+ 8010b64:	f89a 6009 	ldrb.w	r6, [sl, #9]
+ 8010b68:	eb06 0846 	add.w	r8, r6, r6, lsl #1
+ 8010b6c:	68c6      	ldr	r6, [r0, #12]
+ 8010b6e:	eb06 06c8 	add.w	r6, r6, r8, lsl #3
+ 8010b72:	7d36      	ldrb	r6, [r6, #20]
+ 8010b74:	b94e      	cbnz	r6, 8010b8a <RegionCommonCountNbOfEnabledChannels+0xa2>
+ 8010b76:	3701      	adds	r7, #1
+ 8010b78:	b2ff      	uxtb	r7, r7
+ 8010b7a:	3401      	adds	r4, #1
+ 8010b7c:	2c10      	cmp	r4, #16
+ 8010b7e:	f105 050c 	add.w	r5, r5, #12
+ 8010b82:	d1cc      	bne.n	8010b1e <RegionCommonCountNbOfEnabledChannels+0x36>
+ 8010b84:	3301      	adds	r3, #1
+ 8010b86:	b2db      	uxtb	r3, r3
+ 8010b88:	e7b4      	b.n	8010af4 <RegionCommonCountNbOfEnabledChannels+0xc>
+ 8010b8a:	f10c 0601 	add.w	r6, ip, #1
+ 8010b8e:	eb0e 0804 	add.w	r8, lr, r4
+ 8010b92:	f801 800c 	strb.w	r8, [r1, ip]
+ 8010b96:	fa5f fc86 	uxtb.w	ip, r6
+ 8010b9a:	e7ee      	b.n	8010b7a <RegionCommonCountNbOfEnabledChannels+0x92>
+
+08010b9c <RegionCommonIdentifyChannels>:
+ 8010b9c:	e92d 47ff 	stmdb	sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr}
+ 8010ba0:	4604      	mov	r4, r0
+ 8010ba2:	6840      	ldr	r0, [r0, #4]
+ 8010ba4:	e9dd 670c 	ldrd	r6, r7, [sp, #48]	; 0x30
+ 8010ba8:	461d      	mov	r5, r3
+ 8010baa:	468a      	mov	sl, r1
+ 8010bac:	4691      	mov	r9, r2
+ 8010bae:	f003 f9d7 	bl	8013f60 <UTIL_TIMER_GetElapsedTime>
+ 8010bb2:	6823      	ldr	r3, [r4, #0]
+ 8010bb4:	1a1b      	subs	r3, r3, r0
+ 8010bb6:	603b      	str	r3, [r7, #0]
+ 8010bb8:	f04f 0800 	mov.w	r8, #0
+ 8010bbc:	2301      	movs	r3, #1
+ 8010bbe:	7033      	strb	r3, [r6, #0]
+ 8010bc0:	f885 8000 	strb.w	r8, [r5]
+ 8010bc4:	6863      	ldr	r3, [r4, #4]
+ 8010bc6:	b113      	cbz	r3, 8010bce <RegionCommonIdentifyChannels+0x32>
+ 8010bc8:	6823      	ldr	r3, [r4, #0]
+ 8010bca:	4283      	cmp	r3, r0
+ 8010bcc:	d824      	bhi.n	8010c18 <RegionCommonIdentifyChannels+0x7c>
+ 8010bce:	f8ca 8000 	str.w	r8, [sl]
+ 8010bd2:	f8d4 c01c 	ldr.w	ip, [r4, #28]
+ 8010bd6:	69a3      	ldr	r3, [r4, #24]
+ 8010bd8:	f89c e000 	ldrb.w	lr, [ip]
+ 8010bdc:	9303      	str	r3, [sp, #12]
+ 8010bde:	e9d4 0103 	ldrd	r0, r1, [r4, #12]
+ 8010be2:	ab01      	add	r3, sp, #4
+ 8010be4:	e883 0003 	stmia.w	r3, {r0, r1}
+ 8010be8:	7d23      	ldrb	r3, [r4, #20]
+ 8010bea:	9300      	str	r3, [sp, #0]
+ 8010bec:	f8dc 100c 	ldr.w	r1, [ip, #12]
+ 8010bf0:	7a23      	ldrb	r3, [r4, #8]
+ 8010bf2:	7a62      	ldrb	r2, [r4, #9]
+ 8010bf4:	4670      	mov	r0, lr
+ 8010bf6:	f7ff fdd9 	bl	80107ac <RegionCommonUpdateBandTimeOff>
+ 8010bfa:	4633      	mov	r3, r6
+ 8010bfc:	6038      	str	r0, [r7, #0]
+ 8010bfe:	462a      	mov	r2, r5
+ 8010c00:	69e0      	ldr	r0, [r4, #28]
+ 8010c02:	4649      	mov	r1, r9
+ 8010c04:	f7ff ff70 	bl	8010ae8 <RegionCommonCountNbOfEnabledChannels>
+ 8010c08:	782b      	ldrb	r3, [r5, #0]
+ 8010c0a:	b12b      	cbz	r3, 8010c18 <RegionCommonIdentifyChannels+0x7c>
+ 8010c0c:	f8c7 8000 	str.w	r8, [r7]
+ 8010c10:	2000      	movs	r0, #0
+ 8010c12:	b004      	add	sp, #16
+ 8010c14:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 8010c18:	7833      	ldrb	r3, [r6, #0]
+ 8010c1a:	2b00      	cmp	r3, #0
+ 8010c1c:	bf14      	ite	ne
+ 8010c1e:	200b      	movne	r0, #11
+ 8010c20:	200c      	moveq	r0, #12
+ 8010c22:	e7f6      	b.n	8010c12 <RegionCommonIdentifyChannels+0x76>
+
+08010c24 <RegionCommonGetNextLowerTxDr>:
+ 8010c24:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 8010c26:	f990 2000 	ldrsb.w	r2, [r0]
+ 8010c2a:	f990 5002 	ldrsb.w	r5, [r0, #2]
+ 8010c2e:	4295      	cmp	r5, r2
+ 8010c30:	4604      	mov	r4, r0
+ 8010c32:	d00f      	beq.n	8010c54 <RegionCommonGetNextLowerTxDr+0x30>
+ 8010c34:	3a01      	subs	r2, #1
+ 8010c36:	b252      	sxtb	r2, r2
+ 8010c38:	4295      	cmp	r5, r2
+ 8010c3a:	d00b      	beq.n	8010c54 <RegionCommonGetNextLowerTxDr+0x30>
+ 8010c3c:	68a3      	ldr	r3, [r4, #8]
+ 8010c3e:	9301      	str	r3, [sp, #4]
+ 8010c40:	f994 3001 	ldrsb.w	r3, [r4, #1]
+ 8010c44:	9300      	str	r3, [sp, #0]
+ 8010c46:	6861      	ldr	r1, [r4, #4]
+ 8010c48:	78e0      	ldrb	r0, [r4, #3]
+ 8010c4a:	462b      	mov	r3, r5
+ 8010c4c:	f7ff fd0e 	bl	801066c <RegionCommonChanVerifyDr>
+ 8010c50:	2800      	cmp	r0, #0
+ 8010c52:	d0ef      	beq.n	8010c34 <RegionCommonGetNextLowerTxDr+0x10>
+ 8010c54:	4610      	mov	r0, r2
+ 8010c56:	b003      	add	sp, #12
+ 8010c58:	bd30      	pop	{r4, r5, pc}
+
+08010c5a <RegionCommonLimitTxPower>:
+ 8010c5a:	4288      	cmp	r0, r1
+ 8010c5c:	bfb8      	it	lt
+ 8010c5e:	4608      	movlt	r0, r1
+ 8010c60:	4770      	bx	lr
+	...
+
+08010c64 <RegionCommonGetBandwidth>:
+ 8010c64:	f851 0020 	ldr.w	r0, [r1, r0, lsl #2]
+ 8010c68:	4b05      	ldr	r3, [pc, #20]	; (8010c80 <RegionCommonGetBandwidth+0x1c>)
+ 8010c6a:	4298      	cmp	r0, r3
+ 8010c6c:	d005      	beq.n	8010c7a <RegionCommonGetBandwidth+0x16>
+ 8010c6e:	4b05      	ldr	r3, [pc, #20]	; (8010c84 <RegionCommonGetBandwidth+0x20>)
+ 8010c70:	1ac3      	subs	r3, r0, r3
+ 8010c72:	4258      	negs	r0, r3
+ 8010c74:	4158      	adcs	r0, r3
+ 8010c76:	0040      	lsls	r0, r0, #1
+ 8010c78:	4770      	bx	lr
+ 8010c7a:	2001      	movs	r0, #1
+ 8010c7c:	4770      	bx	lr
+ 8010c7e:	bf00      	nop
+ 8010c80:	0003d090 	.word	0x0003d090
+ 8010c84:	0007a120 	.word	0x0007a120
+
+08010c88 <RegionCommonRxConfigPrint>:
+ 8010c88:	2805      	cmp	r0, #5
+ 8010c8a:	b51f      	push	{r0, r1, r2, r3, r4, lr}
+ 8010c8c:	d80e      	bhi.n	8010cac <RegionCommonRxConfigPrint+0x24>
+ 8010c8e:	4b0c      	ldr	r3, [pc, #48]	; (8010cc0 <RegionCommonRxConfigPrint+0x38>)
+ 8010c90:	f853 3020 	ldr.w	r3, [r3, r0, lsl #2]
+ 8010c94:	9300      	str	r3, [sp, #0]
+ 8010c96:	e9cd 1201 	strd	r1, r2, [sp, #4]
+ 8010c9a:	4b0a      	ldr	r3, [pc, #40]	; (8010cc4 <RegionCommonRxConfigPrint+0x3c>)
+ 8010c9c:	2201      	movs	r2, #1
+ 8010c9e:	2100      	movs	r1, #0
+ 8010ca0:	2002      	movs	r0, #2
+ 8010ca2:	f002 fe69 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8010ca6:	b005      	add	sp, #20
+ 8010ca8:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8010cac:	e9cd 1200 	strd	r1, r2, [sp]
+ 8010cb0:	4b05      	ldr	r3, [pc, #20]	; (8010cc8 <RegionCommonRxConfigPrint+0x40>)
+ 8010cb2:	2201      	movs	r2, #1
+ 8010cb4:	2100      	movs	r1, #0
+ 8010cb6:	2002      	movs	r0, #2
+ 8010cb8:	f002 fe5e 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8010cbc:	e7f3      	b.n	8010ca6 <RegionCommonRxConfigPrint+0x1e>
+ 8010cbe:	bf00      	nop
+ 8010cc0:	08015408 	.word	0x08015408
+ 8010cc4:	0801539f 	.word	0x0801539f
+ 8010cc8:	080153be 	.word	0x080153be
+
+08010ccc <RegionCommonTxConfigPrint>:
+ 8010ccc:	b507      	push	{r0, r1, r2, lr}
+ 8010cce:	4b05      	ldr	r3, [pc, #20]	; (8010ce4 <RegionCommonTxConfigPrint+0x18>)
+ 8010cd0:	e9cd 0100 	strd	r0, r1, [sp]
+ 8010cd4:	2201      	movs	r2, #1
+ 8010cd6:	2100      	movs	r1, #0
+ 8010cd8:	2002      	movs	r0, #2
+ 8010cda:	f002 fe4d 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8010cde:	b003      	add	sp, #12
+ 8010ce0:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8010ce4:	080153da 	.word	0x080153da
+
+08010ce8 <AES_CMAC_Init>:
+ 8010ce8:	b510      	push	{r4, lr}
+ 8010cea:	2210      	movs	r2, #16
+ 8010cec:	4604      	mov	r4, r0
+ 8010cee:	2100      	movs	r1, #0
+ 8010cf0:	30f1      	adds	r0, #241	; 0xf1
+ 8010cf2:	f000 fe5f 	bl	80119b4 <memset1>
+ 8010cf6:	2100      	movs	r1, #0
+ 8010cf8:	f8c4 1114 	str.w	r1, [r4, #276]	; 0x114
+ 8010cfc:	4620      	mov	r0, r4
+ 8010cfe:	22f0      	movs	r2, #240	; 0xf0
+ 8010d00:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8010d04:	f000 be56 	b.w	80119b4 <memset1>
+
+08010d08 <AES_CMAC_SetKey>:
+ 8010d08:	4602      	mov	r2, r0
+ 8010d0a:	4608      	mov	r0, r1
+ 8010d0c:	2110      	movs	r1, #16
+ 8010d0e:	f000 b9a5 	b.w	801105c <lorawan_aes_set_key>
+
+08010d12 <AES_CMAC_Update>:
+ 8010d12:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
+ 8010d16:	4604      	mov	r4, r0
+ 8010d18:	f8d0 0114 	ldr.w	r0, [r0, #276]	; 0x114
+ 8010d1c:	b085      	sub	sp, #20
+ 8010d1e:	460e      	mov	r6, r1
+ 8010d20:	4615      	mov	r5, r2
+ 8010d22:	f204 1901 	addw	r9, r4, #257	; 0x101
+ 8010d26:	b388      	cbz	r0, 8010d8c <AES_CMAC_Update+0x7a>
+ 8010d28:	f1c0 0810 	rsb	r8, r0, #16
+ 8010d2c:	4590      	cmp	r8, r2
+ 8010d2e:	4647      	mov	r7, r8
+ 8010d30:	bf28      	it	cs
+ 8010d32:	4617      	movcs	r7, r2
+ 8010d34:	b2ba      	uxth	r2, r7
+ 8010d36:	4448      	add	r0, r9
+ 8010d38:	f000 fe28 	bl	801198c <memcpy1>
+ 8010d3c:	f8d4 3114 	ldr.w	r3, [r4, #276]	; 0x114
+ 8010d40:	443b      	add	r3, r7
+ 8010d42:	2b0f      	cmp	r3, #15
+ 8010d44:	f8c4 3114 	str.w	r3, [r4, #276]	; 0x114
+ 8010d48:	d92d      	bls.n	8010da6 <AES_CMAC_Update+0x94>
+ 8010d4a:	45a8      	cmp	r8, r5
+ 8010d4c:	d22b      	bcs.n	8010da6 <AES_CMAC_Update+0x94>
+ 8010d4e:	f104 03f0 	add.w	r3, r4, #240	; 0xf0
+ 8010d52:	f504 7180 	add.w	r1, r4, #256	; 0x100
+ 8010d56:	f813 2f01 	ldrb.w	r2, [r3, #1]!
+ 8010d5a:	7c18      	ldrb	r0, [r3, #16]
+ 8010d5c:	428b      	cmp	r3, r1
+ 8010d5e:	ea82 0200 	eor.w	r2, r2, r0
+ 8010d62:	701a      	strb	r2, [r3, #0]
+ 8010d64:	d1f7      	bne.n	8010d56 <AES_CMAC_Update+0x44>
+ 8010d66:	f104 08f1 	add.w	r8, r4, #241	; 0xf1
+ 8010d6a:	2210      	movs	r2, #16
+ 8010d6c:	4641      	mov	r1, r8
+ 8010d6e:	4668      	mov	r0, sp
+ 8010d70:	f000 fe0c 	bl	801198c <memcpy1>
+ 8010d74:	4622      	mov	r2, r4
+ 8010d76:	4669      	mov	r1, sp
+ 8010d78:	4668      	mov	r0, sp
+ 8010d7a:	f000 f9e9 	bl	8011150 <lorawan_aes_encrypt>
+ 8010d7e:	2210      	movs	r2, #16
+ 8010d80:	4669      	mov	r1, sp
+ 8010d82:	4640      	mov	r0, r8
+ 8010d84:	f000 fe02 	bl	801198c <memcpy1>
+ 8010d88:	443e      	add	r6, r7
+ 8010d8a:	1bed      	subs	r5, r5, r7
+ 8010d8c:	f504 7880 	add.w	r8, r4, #256	; 0x100
+ 8010d90:	f104 07f1 	add.w	r7, r4, #241	; 0xf1
+ 8010d94:	2d10      	cmp	r5, #16
+ 8010d96:	d809      	bhi.n	8010dac <AES_CMAC_Update+0x9a>
+ 8010d98:	b2aa      	uxth	r2, r5
+ 8010d9a:	4631      	mov	r1, r6
+ 8010d9c:	4648      	mov	r0, r9
+ 8010d9e:	f000 fdf5 	bl	801198c <memcpy1>
+ 8010da2:	f8c4 5114 	str.w	r5, [r4, #276]	; 0x114
+ 8010da6:	b005      	add	sp, #20
+ 8010da8:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
+ 8010dac:	f104 03f0 	add.w	r3, r4, #240	; 0xf0
+ 8010db0:	1e71      	subs	r1, r6, #1
+ 8010db2:	f813 2f01 	ldrb.w	r2, [r3, #1]!
+ 8010db6:	f811 0f01 	ldrb.w	r0, [r1, #1]!
+ 8010dba:	4543      	cmp	r3, r8
+ 8010dbc:	ea82 0200 	eor.w	r2, r2, r0
+ 8010dc0:	701a      	strb	r2, [r3, #0]
+ 8010dc2:	d1f6      	bne.n	8010db2 <AES_CMAC_Update+0xa0>
+ 8010dc4:	2210      	movs	r2, #16
+ 8010dc6:	4639      	mov	r1, r7
+ 8010dc8:	4668      	mov	r0, sp
+ 8010dca:	f000 fddf 	bl	801198c <memcpy1>
+ 8010dce:	4622      	mov	r2, r4
+ 8010dd0:	4669      	mov	r1, sp
+ 8010dd2:	4668      	mov	r0, sp
+ 8010dd4:	f000 f9bc 	bl	8011150 <lorawan_aes_encrypt>
+ 8010dd8:	2210      	movs	r2, #16
+ 8010dda:	4669      	mov	r1, sp
+ 8010ddc:	4638      	mov	r0, r7
+ 8010dde:	f000 fdd5 	bl	801198c <memcpy1>
+ 8010de2:	3610      	adds	r6, #16
+ 8010de4:	3d10      	subs	r5, #16
+ 8010de6:	e7d5      	b.n	8010d94 <AES_CMAC_Update+0x82>
+
+08010de8 <AES_CMAC_Final>:
+ 8010de8:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8010dea:	b089      	sub	sp, #36	; 0x24
+ 8010dec:	460c      	mov	r4, r1
+ 8010dee:	2210      	movs	r2, #16
+ 8010df0:	2100      	movs	r1, #0
+ 8010df2:	4605      	mov	r5, r0
+ 8010df4:	4668      	mov	r0, sp
+ 8010df6:	f000 fddd 	bl	80119b4 <memset1>
+ 8010dfa:	4622      	mov	r2, r4
+ 8010dfc:	4669      	mov	r1, sp
+ 8010dfe:	4668      	mov	r0, sp
+ 8010e00:	f000 f9a6 	bl	8011150 <lorawan_aes_encrypt>
+ 8010e04:	f99d 3000 	ldrsb.w	r3, [sp]
+ 8010e08:	2b00      	cmp	r3, #0
+ 8010e0a:	466a      	mov	r2, sp
+ 8010e0c:	f04f 0100 	mov.w	r1, #0
+ 8010e10:	da43      	bge.n	8010e9a <AES_CMAC_Final+0xb2>
+ 8010e12:	7813      	ldrb	r3, [r2, #0]
+ 8010e14:	f812 0f01 	ldrb.w	r0, [r2, #1]!
+ 8010e18:	3101      	adds	r1, #1
+ 8010e1a:	005b      	lsls	r3, r3, #1
+ 8010e1c:	ea43 13d0 	orr.w	r3, r3, r0, lsr #7
+ 8010e20:	290f      	cmp	r1, #15
+ 8010e22:	f802 3c01 	strb.w	r3, [r2, #-1]
+ 8010e26:	d1f4      	bne.n	8010e12 <AES_CMAC_Final+0x2a>
+ 8010e28:	f89d 300f 	ldrb.w	r3, [sp, #15]
+ 8010e2c:	005b      	lsls	r3, r3, #1
+ 8010e2e:	f083 0387 	eor.w	r3, r3, #135	; 0x87
+ 8010e32:	f8d4 0114 	ldr.w	r0, [r4, #276]	; 0x114
+ 8010e36:	b2db      	uxtb	r3, r3
+ 8010e38:	2810      	cmp	r0, #16
+ 8010e3a:	f88d 300f 	strb.w	r3, [sp, #15]
+ 8010e3e:	d13b      	bne.n	8010eb8 <AES_CMAC_Final+0xd0>
+ 8010e40:	f504 7380 	add.w	r3, r4, #256	; 0x100
+ 8010e44:	4669      	mov	r1, sp
+ 8010e46:	f504 7088 	add.w	r0, r4, #272	; 0x110
+ 8010e4a:	f813 6f01 	ldrb.w	r6, [r3, #1]!
+ 8010e4e:	f811 2b01 	ldrb.w	r2, [r1], #1
+ 8010e52:	4298      	cmp	r0, r3
+ 8010e54:	ea82 0206 	eor.w	r2, r2, r6
+ 8010e58:	701a      	strb	r2, [r3, #0]
+ 8010e5a:	d1f6      	bne.n	8010e4a <AES_CMAC_Final+0x62>
+ 8010e5c:	f104 03f0 	add.w	r3, r4, #240	; 0xf0
+ 8010e60:	f504 7180 	add.w	r1, r4, #256	; 0x100
+ 8010e64:	f813 2f01 	ldrb.w	r2, [r3, #1]!
+ 8010e68:	7c18      	ldrb	r0, [r3, #16]
+ 8010e6a:	428b      	cmp	r3, r1
+ 8010e6c:	ea82 0200 	eor.w	r2, r2, r0
+ 8010e70:	701a      	strb	r2, [r3, #0]
+ 8010e72:	d1f7      	bne.n	8010e64 <AES_CMAC_Final+0x7c>
+ 8010e74:	2210      	movs	r2, #16
+ 8010e76:	eb0d 0002 	add.w	r0, sp, r2
+ 8010e7a:	f104 01f1 	add.w	r1, r4, #241	; 0xf1
+ 8010e7e:	f000 fd85 	bl	801198c <memcpy1>
+ 8010e82:	4622      	mov	r2, r4
+ 8010e84:	4629      	mov	r1, r5
+ 8010e86:	a804      	add	r0, sp, #16
+ 8010e88:	f000 f962 	bl	8011150 <lorawan_aes_encrypt>
+ 8010e8c:	2210      	movs	r2, #16
+ 8010e8e:	2100      	movs	r1, #0
+ 8010e90:	4668      	mov	r0, sp
+ 8010e92:	f000 fd8f 	bl	80119b4 <memset1>
+ 8010e96:	b009      	add	sp, #36	; 0x24
+ 8010e98:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8010e9a:	7813      	ldrb	r3, [r2, #0]
+ 8010e9c:	f812 0f01 	ldrb.w	r0, [r2, #1]!
+ 8010ea0:	3101      	adds	r1, #1
+ 8010ea2:	005b      	lsls	r3, r3, #1
+ 8010ea4:	ea43 13d0 	orr.w	r3, r3, r0, lsr #7
+ 8010ea8:	290f      	cmp	r1, #15
+ 8010eaa:	f802 3c01 	strb.w	r3, [r2, #-1]
+ 8010eae:	d1f4      	bne.n	8010e9a <AES_CMAC_Final+0xb2>
+ 8010eb0:	f89d 300f 	ldrb.w	r3, [sp, #15]
+ 8010eb4:	005b      	lsls	r3, r3, #1
+ 8010eb6:	e7bc      	b.n	8010e32 <AES_CMAC_Final+0x4a>
+ 8010eb8:	f99d 3000 	ldrsb.w	r3, [sp]
+ 8010ebc:	2b00      	cmp	r3, #0
+ 8010ebe:	466a      	mov	r2, sp
+ 8010ec0:	f04f 0100 	mov.w	r1, #0
+ 8010ec4:	da37      	bge.n	8010f36 <AES_CMAC_Final+0x14e>
+ 8010ec6:	7813      	ldrb	r3, [r2, #0]
+ 8010ec8:	f812 6f01 	ldrb.w	r6, [r2, #1]!
+ 8010ecc:	3101      	adds	r1, #1
+ 8010ece:	005b      	lsls	r3, r3, #1
+ 8010ed0:	ea43 13d6 	orr.w	r3, r3, r6, lsr #7
+ 8010ed4:	290f      	cmp	r1, #15
+ 8010ed6:	f802 3c01 	strb.w	r3, [r2, #-1]
+ 8010eda:	d1f4      	bne.n	8010ec6 <AES_CMAC_Final+0xde>
+ 8010edc:	f89d 300f 	ldrb.w	r3, [sp, #15]
+ 8010ee0:	005b      	lsls	r3, r3, #1
+ 8010ee2:	f083 0387 	eor.w	r3, r3, #135	; 0x87
+ 8010ee6:	1c47      	adds	r7, r0, #1
+ 8010ee8:	b2db      	uxtb	r3, r3
+ 8010eea:	f88d 300f 	strb.w	r3, [sp, #15]
+ 8010eee:	2f10      	cmp	r7, #16
+ 8010ef0:	eb04 0300 	add.w	r3, r4, r0
+ 8010ef4:	f1c0 060f 	rsb	r6, r0, #15
+ 8010ef8:	f04f 0280 	mov.w	r2, #128	; 0x80
+ 8010efc:	bf88      	it	hi
+ 8010efe:	2600      	movhi	r6, #0
+ 8010f00:	f500 7081 	add.w	r0, r0, #258	; 0x102
+ 8010f04:	f883 2101 	strb.w	r2, [r3, #257]	; 0x101
+ 8010f08:	2100      	movs	r1, #0
+ 8010f0a:	4632      	mov	r2, r6
+ 8010f0c:	4420      	add	r0, r4
+ 8010f0e:	443e      	add	r6, r7
+ 8010f10:	f003 fa72 	bl	80143f8 <memset>
+ 8010f14:	f8c4 6114 	str.w	r6, [r4, #276]	; 0x114
+ 8010f18:	f504 7380 	add.w	r3, r4, #256	; 0x100
+ 8010f1c:	4669      	mov	r1, sp
+ 8010f1e:	f504 7088 	add.w	r0, r4, #272	; 0x110
+ 8010f22:	f813 6f01 	ldrb.w	r6, [r3, #1]!
+ 8010f26:	f811 2b01 	ldrb.w	r2, [r1], #1
+ 8010f2a:	4298      	cmp	r0, r3
+ 8010f2c:	ea82 0206 	eor.w	r2, r2, r6
+ 8010f30:	701a      	strb	r2, [r3, #0]
+ 8010f32:	d1f6      	bne.n	8010f22 <AES_CMAC_Final+0x13a>
+ 8010f34:	e792      	b.n	8010e5c <AES_CMAC_Final+0x74>
+ 8010f36:	7813      	ldrb	r3, [r2, #0]
+ 8010f38:	f812 6f01 	ldrb.w	r6, [r2, #1]!
+ 8010f3c:	3101      	adds	r1, #1
+ 8010f3e:	005b      	lsls	r3, r3, #1
+ 8010f40:	ea43 13d6 	orr.w	r3, r3, r6, lsr #7
+ 8010f44:	290f      	cmp	r1, #15
+ 8010f46:	f802 3c01 	strb.w	r3, [r2, #-1]
+ 8010f4a:	d1f4      	bne.n	8010f36 <AES_CMAC_Final+0x14e>
+ 8010f4c:	f89d 300f 	ldrb.w	r3, [sp, #15]
+ 8010f50:	005b      	lsls	r3, r3, #1
+ 8010f52:	e7c8      	b.n	8010ee6 <AES_CMAC_Final+0xfe>
+
+08010f54 <xor_block>:
+ 8010f54:	780a      	ldrb	r2, [r1, #0]
+ 8010f56:	7803      	ldrb	r3, [r0, #0]
+ 8010f58:	4053      	eors	r3, r2
+ 8010f5a:	7003      	strb	r3, [r0, #0]
+ 8010f5c:	784a      	ldrb	r2, [r1, #1]
+ 8010f5e:	7843      	ldrb	r3, [r0, #1]
+ 8010f60:	4053      	eors	r3, r2
+ 8010f62:	7043      	strb	r3, [r0, #1]
+ 8010f64:	788a      	ldrb	r2, [r1, #2]
+ 8010f66:	7883      	ldrb	r3, [r0, #2]
+ 8010f68:	4053      	eors	r3, r2
+ 8010f6a:	7083      	strb	r3, [r0, #2]
+ 8010f6c:	78ca      	ldrb	r2, [r1, #3]
+ 8010f6e:	78c3      	ldrb	r3, [r0, #3]
+ 8010f70:	4053      	eors	r3, r2
+ 8010f72:	70c3      	strb	r3, [r0, #3]
+ 8010f74:	790a      	ldrb	r2, [r1, #4]
+ 8010f76:	7903      	ldrb	r3, [r0, #4]
+ 8010f78:	4053      	eors	r3, r2
+ 8010f7a:	7103      	strb	r3, [r0, #4]
+ 8010f7c:	794a      	ldrb	r2, [r1, #5]
+ 8010f7e:	7943      	ldrb	r3, [r0, #5]
+ 8010f80:	4053      	eors	r3, r2
+ 8010f82:	7143      	strb	r3, [r0, #5]
+ 8010f84:	798a      	ldrb	r2, [r1, #6]
+ 8010f86:	7983      	ldrb	r3, [r0, #6]
+ 8010f88:	4053      	eors	r3, r2
+ 8010f8a:	7183      	strb	r3, [r0, #6]
+ 8010f8c:	79ca      	ldrb	r2, [r1, #7]
+ 8010f8e:	79c3      	ldrb	r3, [r0, #7]
+ 8010f90:	4053      	eors	r3, r2
+ 8010f92:	71c3      	strb	r3, [r0, #7]
+ 8010f94:	7a0a      	ldrb	r2, [r1, #8]
+ 8010f96:	7a03      	ldrb	r3, [r0, #8]
+ 8010f98:	4053      	eors	r3, r2
+ 8010f9a:	7203      	strb	r3, [r0, #8]
+ 8010f9c:	7a4a      	ldrb	r2, [r1, #9]
+ 8010f9e:	7a43      	ldrb	r3, [r0, #9]
+ 8010fa0:	4053      	eors	r3, r2
+ 8010fa2:	7243      	strb	r3, [r0, #9]
+ 8010fa4:	7a8a      	ldrb	r2, [r1, #10]
+ 8010fa6:	7a83      	ldrb	r3, [r0, #10]
+ 8010fa8:	4053      	eors	r3, r2
+ 8010faa:	7283      	strb	r3, [r0, #10]
+ 8010fac:	7aca      	ldrb	r2, [r1, #11]
+ 8010fae:	7ac3      	ldrb	r3, [r0, #11]
+ 8010fb0:	4053      	eors	r3, r2
+ 8010fb2:	72c3      	strb	r3, [r0, #11]
+ 8010fb4:	7b0a      	ldrb	r2, [r1, #12]
+ 8010fb6:	7b03      	ldrb	r3, [r0, #12]
+ 8010fb8:	4053      	eors	r3, r2
+ 8010fba:	7303      	strb	r3, [r0, #12]
+ 8010fbc:	7b4a      	ldrb	r2, [r1, #13]
+ 8010fbe:	7b43      	ldrb	r3, [r0, #13]
+ 8010fc0:	4053      	eors	r3, r2
+ 8010fc2:	7343      	strb	r3, [r0, #13]
+ 8010fc4:	7b8a      	ldrb	r2, [r1, #14]
+ 8010fc6:	7b83      	ldrb	r3, [r0, #14]
+ 8010fc8:	4053      	eors	r3, r2
+ 8010fca:	7383      	strb	r3, [r0, #14]
+ 8010fcc:	7bca      	ldrb	r2, [r1, #15]
+ 8010fce:	7bc3      	ldrb	r3, [r0, #15]
+ 8010fd0:	4053      	eors	r3, r2
+ 8010fd2:	73c3      	strb	r3, [r0, #15]
+ 8010fd4:	4770      	bx	lr
+
+08010fd6 <copy_and_key>:
+ 8010fd6:	b510      	push	{r4, lr}
+ 8010fd8:	780b      	ldrb	r3, [r1, #0]
+ 8010fda:	7814      	ldrb	r4, [r2, #0]
+ 8010fdc:	4063      	eors	r3, r4
+ 8010fde:	7003      	strb	r3, [r0, #0]
+ 8010fe0:	7854      	ldrb	r4, [r2, #1]
+ 8010fe2:	784b      	ldrb	r3, [r1, #1]
+ 8010fe4:	4063      	eors	r3, r4
+ 8010fe6:	7043      	strb	r3, [r0, #1]
+ 8010fe8:	7894      	ldrb	r4, [r2, #2]
+ 8010fea:	788b      	ldrb	r3, [r1, #2]
+ 8010fec:	4063      	eors	r3, r4
+ 8010fee:	7083      	strb	r3, [r0, #2]
+ 8010ff0:	78d4      	ldrb	r4, [r2, #3]
+ 8010ff2:	78cb      	ldrb	r3, [r1, #3]
+ 8010ff4:	4063      	eors	r3, r4
+ 8010ff6:	70c3      	strb	r3, [r0, #3]
+ 8010ff8:	7914      	ldrb	r4, [r2, #4]
+ 8010ffa:	790b      	ldrb	r3, [r1, #4]
+ 8010ffc:	4063      	eors	r3, r4
+ 8010ffe:	7103      	strb	r3, [r0, #4]
+ 8011000:	7954      	ldrb	r4, [r2, #5]
+ 8011002:	794b      	ldrb	r3, [r1, #5]
+ 8011004:	4063      	eors	r3, r4
+ 8011006:	7143      	strb	r3, [r0, #5]
+ 8011008:	7994      	ldrb	r4, [r2, #6]
+ 801100a:	798b      	ldrb	r3, [r1, #6]
+ 801100c:	4063      	eors	r3, r4
+ 801100e:	7183      	strb	r3, [r0, #6]
+ 8011010:	79d4      	ldrb	r4, [r2, #7]
+ 8011012:	79cb      	ldrb	r3, [r1, #7]
+ 8011014:	4063      	eors	r3, r4
+ 8011016:	71c3      	strb	r3, [r0, #7]
+ 8011018:	7a14      	ldrb	r4, [r2, #8]
+ 801101a:	7a0b      	ldrb	r3, [r1, #8]
+ 801101c:	4063      	eors	r3, r4
+ 801101e:	7203      	strb	r3, [r0, #8]
+ 8011020:	7a54      	ldrb	r4, [r2, #9]
+ 8011022:	7a4b      	ldrb	r3, [r1, #9]
+ 8011024:	4063      	eors	r3, r4
+ 8011026:	7243      	strb	r3, [r0, #9]
+ 8011028:	7a8b      	ldrb	r3, [r1, #10]
+ 801102a:	7a94      	ldrb	r4, [r2, #10]
+ 801102c:	4063      	eors	r3, r4
+ 801102e:	7283      	strb	r3, [r0, #10]
+ 8011030:	7ad4      	ldrb	r4, [r2, #11]
+ 8011032:	7acb      	ldrb	r3, [r1, #11]
+ 8011034:	4063      	eors	r3, r4
+ 8011036:	72c3      	strb	r3, [r0, #11]
+ 8011038:	7b14      	ldrb	r4, [r2, #12]
+ 801103a:	7b0b      	ldrb	r3, [r1, #12]
+ 801103c:	4063      	eors	r3, r4
+ 801103e:	7303      	strb	r3, [r0, #12]
+ 8011040:	7b54      	ldrb	r4, [r2, #13]
+ 8011042:	7b4b      	ldrb	r3, [r1, #13]
+ 8011044:	4063      	eors	r3, r4
+ 8011046:	7343      	strb	r3, [r0, #13]
+ 8011048:	7b94      	ldrb	r4, [r2, #14]
+ 801104a:	7b8b      	ldrb	r3, [r1, #14]
+ 801104c:	4063      	eors	r3, r4
+ 801104e:	7383      	strb	r3, [r0, #14]
+ 8011050:	7bcb      	ldrb	r3, [r1, #15]
+ 8011052:	7bd2      	ldrb	r2, [r2, #15]
+ 8011054:	4053      	eors	r3, r2
+ 8011056:	73c3      	strb	r3, [r0, #15]
+ 8011058:	bd10      	pop	{r4, pc}
+	...
+
+0801105c <lorawan_aes_set_key>:
+ 801105c:	f1a1 0310 	sub.w	r3, r1, #16
+ 8011060:	b2db      	uxtb	r3, r3
+ 8011062:	2b10      	cmp	r3, #16
+ 8011064:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
+ 8011068:	d804      	bhi.n	8011074 <lorawan_aes_set_key+0x18>
+ 801106a:	4c37      	ldr	r4, [pc, #220]	; (8011148 <lorawan_aes_set_key+0xec>)
+ 801106c:	fa24 f303 	lsr.w	r3, r4, r3
+ 8011070:	07db      	lsls	r3, r3, #31
+ 8011072:	d405      	bmi.n	8011080 <lorawan_aes_set_key+0x24>
+ 8011074:	2300      	movs	r3, #0
+ 8011076:	f882 30f0 	strb.w	r3, [r2, #240]	; 0xf0
+ 801107a:	20ff      	movs	r0, #255	; 0xff
+ 801107c:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 8011080:	1e53      	subs	r3, r2, #1
+ 8011082:	1844      	adds	r4, r0, r1
+ 8011084:	42a0      	cmp	r0, r4
+ 8011086:	d14e      	bne.n	8011126 <lorawan_aes_set_key+0xca>
+ 8011088:	f101 031c 	add.w	r3, r1, #28
+ 801108c:	009b      	lsls	r3, r3, #2
+ 801108e:	fa5f f983 	uxtb.w	r9, r3
+ 8011092:	f3c3 1303 	ubfx	r3, r3, #4, #4
+ 8011096:	3b01      	subs	r3, #1
+ 8011098:	4d2c      	ldr	r5, [pc, #176]	; (801114c <lorawan_aes_set_key+0xf0>)
+ 801109a:	f882 30f0 	strb.w	r3, [r2, #240]	; 0xf0
+ 801109e:	2401      	movs	r4, #1
+ 80110a0:	460b      	mov	r3, r1
+ 80110a2:	18d6      	adds	r6, r2, r3
+ 80110a4:	fbb3 f0f1 	udiv	r0, r3, r1
+ 80110a8:	fb01 3010 	mls	r0, r1, r0, r3
+ 80110ac:	f010 00ff 	ands.w	r0, r0, #255	; 0xff
+ 80110b0:	f816 ac04 	ldrb.w	sl, [r6, #-4]
+ 80110b4:	f816 ec03 	ldrb.w	lr, [r6, #-3]
+ 80110b8:	f816 cc02 	ldrb.w	ip, [r6, #-2]
+ 80110bc:	f816 7c01 	ldrb.w	r7, [r6, #-1]
+ 80110c0:	d136      	bne.n	8011130 <lorawan_aes_set_key+0xd4>
+ 80110c2:	f815 800e 	ldrb.w	r8, [r5, lr]
+ 80110c6:	f815 e00c 	ldrb.w	lr, [r5, ip]
+ 80110ca:	f815 c007 	ldrb.w	ip, [r5, r7]
+ 80110ce:	f815 700a 	ldrb.w	r7, [r5, sl]
+ 80110d2:	09e0      	lsrs	r0, r4, #7
+ 80110d4:	eb00 0040 	add.w	r0, r0, r0, lsl #1
+ 80110d8:	ea84 0808 	eor.w	r8, r4, r8
+ 80110dc:	eb00 00c0 	add.w	r0, r0, r0, lsl #3
+ 80110e0:	0064      	lsls	r4, r4, #1
+ 80110e2:	b2c0      	uxtb	r0, r0
+ 80110e4:	b2e4      	uxtb	r4, r4
+ 80110e6:	4044      	eors	r4, r0
+ 80110e8:	46c2      	mov	sl, r8
+ 80110ea:	1a58      	subs	r0, r3, r1
+ 80110ec:	b2c0      	uxtb	r0, r0
+ 80110ee:	f812 8000 	ldrb.w	r8, [r2, r0]
+ 80110f2:	ea8a 0a08 	eor.w	sl, sl, r8
+ 80110f6:	f802 a003 	strb.w	sl, [r2, r3]
+ 80110fa:	4410      	add	r0, r2
+ 80110fc:	3304      	adds	r3, #4
+ 80110fe:	f890 8001 	ldrb.w	r8, [r0, #1]
+ 8011102:	ea8e 0e08 	eor.w	lr, lr, r8
+ 8011106:	f886 e001 	strb.w	lr, [r6, #1]
+ 801110a:	f890 e002 	ldrb.w	lr, [r0, #2]
+ 801110e:	ea8c 0c0e 	eor.w	ip, ip, lr
+ 8011112:	f886 c002 	strb.w	ip, [r6, #2]
+ 8011116:	78c0      	ldrb	r0, [r0, #3]
+ 8011118:	b2db      	uxtb	r3, r3
+ 801111a:	4047      	eors	r7, r0
+ 801111c:	4599      	cmp	r9, r3
+ 801111e:	70f7      	strb	r7, [r6, #3]
+ 8011120:	d8bf      	bhi.n	80110a2 <lorawan_aes_set_key+0x46>
+ 8011122:	2000      	movs	r0, #0
+ 8011124:	e7aa      	b.n	801107c <lorawan_aes_set_key+0x20>
+ 8011126:	f810 5b01 	ldrb.w	r5, [r0], #1
+ 801112a:	f803 5f01 	strb.w	r5, [r3, #1]!
+ 801112e:	e7a9      	b.n	8011084 <lorawan_aes_set_key+0x28>
+ 8011130:	2918      	cmp	r1, #24
+ 8011132:	d9da      	bls.n	80110ea <lorawan_aes_set_key+0x8e>
+ 8011134:	2810      	cmp	r0, #16
+ 8011136:	bf01      	itttt	eq
+ 8011138:	f815 a00a 	ldrbeq.w	sl, [r5, sl]
+ 801113c:	f815 e00e 	ldrbeq.w	lr, [r5, lr]
+ 8011140:	f815 c00c 	ldrbeq.w	ip, [r5, ip]
+ 8011144:	5def      	ldrbeq	r7, [r5, r7]
+ 8011146:	e7d0      	b.n	80110ea <lorawan_aes_set_key+0x8e>
+ 8011148:	00010101 	.word	0x00010101
+ 801114c:	08015620 	.word	0x08015620
+
+08011150 <lorawan_aes_encrypt>:
+ 8011150:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8011154:	b0a3      	sub	sp, #140	; 0x8c
+ 8011156:	f892 30f0 	ldrb.w	r3, [r2, #240]	; 0xf0
+ 801115a:	911d      	str	r1, [sp, #116]	; 0x74
+ 801115c:	921b      	str	r2, [sp, #108]	; 0x6c
+ 801115e:	9301      	str	r3, [sp, #4]
+ 8011160:	2b00      	cmp	r3, #0
+ 8011162:	f000 8153 	beq.w	801140c <lorawan_aes_encrypt+0x2bc>
+ 8011166:	4601      	mov	r1, r0
+ 8011168:	a81e      	add	r0, sp, #120	; 0x78
+ 801116a:	f7ff ff34 	bl	8010fd6 <copy_and_key>
+ 801116e:	9b1b      	ldr	r3, [sp, #108]	; 0x6c
+ 8011170:	4ca7      	ldr	r4, [pc, #668]	; (8011410 <lorawan_aes_encrypt+0x2c0>)
+ 8011172:	4da8      	ldr	r5, [pc, #672]	; (8011414 <lorawan_aes_encrypt+0x2c4>)
+ 8011174:	4ea8      	ldr	r6, [pc, #672]	; (8011418 <lorawan_aes_encrypt+0x2c8>)
+ 8011176:	3310      	adds	r3, #16
+ 8011178:	9302      	str	r3, [sp, #8]
+ 801117a:	2300      	movs	r3, #0
+ 801117c:	9303      	str	r3, [sp, #12]
+ 801117e:	f89d 007c 	ldrb.w	r0, [sp, #124]	; 0x7c
+ 8011182:	9004      	str	r0, [sp, #16]
+ 8011184:	f89d 0086 	ldrb.w	r0, [sp, #134]	; 0x86
+ 8011188:	9005      	str	r0, [sp, #20]
+ 801118a:	5c20      	ldrb	r0, [r4, r0]
+ 801118c:	9006      	str	r0, [sp, #24]
+ 801118e:	f89d 007b 	ldrb.w	r0, [sp, #123]	; 0x7b
+ 8011192:	9007      	str	r0, [sp, #28]
+ 8011194:	5c20      	ldrb	r0, [r4, r0]
+ 8011196:	9008      	str	r0, [sp, #32]
+ 8011198:	9804      	ldr	r0, [sp, #16]
+ 801119a:	f89d c081 	ldrb.w	ip, [sp, #129]	; 0x81
+ 801119e:	5c20      	ldrb	r0, [r4, r0]
+ 80111a0:	9009      	str	r0, [sp, #36]	; 0x24
+ 80111a2:	f814 000c 	ldrb.w	r0, [r4, ip]
+ 80111a6:	900a      	str	r0, [sp, #40]	; 0x28
+ 80111a8:	f89d 0080 	ldrb.w	r0, [sp, #128]	; 0x80
+ 80111ac:	900b      	str	r0, [sp, #44]	; 0x2c
+ 80111ae:	f89d 0085 	ldrb.w	r0, [sp, #133]	; 0x85
+ 80111b2:	f89d 8078 	ldrb.w	r8, [sp, #120]	; 0x78
+ 80111b6:	f89d e07d 	ldrb.w	lr, [sp, #125]	; 0x7d
+ 80111ba:	f89d a082 	ldrb.w	sl, [sp, #130]	; 0x82
+ 80111be:	f89d 9087 	ldrb.w	r9, [sp, #135]	; 0x87
+ 80111c2:	900c      	str	r0, [sp, #48]	; 0x30
+ 80111c4:	f89d 007a 	ldrb.w	r0, [sp, #122]	; 0x7a
+ 80111c8:	9b02      	ldr	r3, [sp, #8]
+ 80111ca:	931c      	str	r3, [sp, #112]	; 0x70
+ 80111cc:	f814 200a 	ldrb.w	r2, [r4, sl]
+ 80111d0:	f814 3009 	ldrb.w	r3, [r4, r9]
+ 80111d4:	f814 1008 	ldrb.w	r1, [r4, r8]
+ 80111d8:	f814 700e 	ldrb.w	r7, [r4, lr]
+ 80111dc:	900d      	str	r0, [sp, #52]	; 0x34
+ 80111de:	5c20      	ldrb	r0, [r4, r0]
+ 80111e0:	900e      	str	r0, [sp, #56]	; 0x38
+ 80111e2:	f89d 007f 	ldrb.w	r0, [sp, #127]	; 0x7f
+ 80111e6:	900f      	str	r0, [sp, #60]	; 0x3c
+ 80111e8:	5c20      	ldrb	r0, [r4, r0]
+ 80111ea:	9010      	str	r0, [sp, #64]	; 0x40
+ 80111ec:	980b      	ldr	r0, [sp, #44]	; 0x2c
+ 80111ee:	5c20      	ldrb	r0, [r4, r0]
+ 80111f0:	9011      	str	r0, [sp, #68]	; 0x44
+ 80111f2:	980c      	ldr	r0, [sp, #48]	; 0x30
+ 80111f4:	5c20      	ldrb	r0, [r4, r0]
+ 80111f6:	9012      	str	r0, [sp, #72]	; 0x48
+ 80111f8:	f89d 0084 	ldrb.w	r0, [sp, #132]	; 0x84
+ 80111fc:	9013      	str	r0, [sp, #76]	; 0x4c
+ 80111fe:	f89d 0079 	ldrb.w	r0, [sp, #121]	; 0x79
+ 8011202:	9014      	str	r0, [sp, #80]	; 0x50
+ 8011204:	f89d 007e 	ldrb.w	r0, [sp, #126]	; 0x7e
+ 8011208:	9015      	str	r0, [sp, #84]	; 0x54
+ 801120a:	5c20      	ldrb	r0, [r4, r0]
+ 801120c:	9016      	str	r0, [sp, #88]	; 0x58
+ 801120e:	f89d 0083 	ldrb.w	r0, [sp, #131]	; 0x83
+ 8011212:	9017      	str	r0, [sp, #92]	; 0x5c
+ 8011214:	5c20      	ldrb	r0, [r4, r0]
+ 8011216:	9018      	str	r0, [sp, #96]	; 0x60
+ 8011218:	9813      	ldr	r0, [sp, #76]	; 0x4c
+ 801121a:	5c20      	ldrb	r0, [r4, r0]
+ 801121c:	9019      	str	r0, [sp, #100]	; 0x64
+ 801121e:	9814      	ldr	r0, [sp, #80]	; 0x50
+ 8011220:	5c20      	ldrb	r0, [r4, r0]
+ 8011222:	901a      	str	r0, [sp, #104]	; 0x68
+ 8011224:	9803      	ldr	r0, [sp, #12]
+ 8011226:	3001      	adds	r0, #1
+ 8011228:	9003      	str	r0, [sp, #12]
+ 801122a:	9802      	ldr	r0, [sp, #8]
+ 801122c:	f8dd b004 	ldr.w	fp, [sp, #4]
+ 8011230:	3010      	adds	r0, #16
+ 8011232:	9002      	str	r0, [sp, #8]
+ 8011234:	f89d 000c 	ldrb.w	r0, [sp, #12]
+ 8011238:	4583      	cmp	fp, r0
+ 801123a:	d836      	bhi.n	80112aa <lorawan_aes_encrypt+0x15a>
+ 801123c:	f88d 1078 	strb.w	r1, [sp, #120]	; 0x78
+ 8011240:	f88d 207a 	strb.w	r2, [sp, #122]	; 0x7a
+ 8011244:	9909      	ldr	r1, [sp, #36]	; 0x24
+ 8011246:	9a0e      	ldr	r2, [sp, #56]	; 0x38
+ 8011248:	f88d 107c 	strb.w	r1, [sp, #124]	; 0x7c
+ 801124c:	f88d 2082 	strb.w	r2, [sp, #130]	; 0x82
+ 8011250:	9911      	ldr	r1, [sp, #68]	; 0x44
+ 8011252:	9a06      	ldr	r2, [sp, #24]
+ 8011254:	f88d 1080 	strb.w	r1, [sp, #128]	; 0x80
+ 8011258:	f88d 207e 	strb.w	r2, [sp, #126]	; 0x7e
+ 801125c:	9919      	ldr	r1, [sp, #100]	; 0x64
+ 801125e:	9a16      	ldr	r2, [sp, #88]	; 0x58
+ 8011260:	f88d 1084 	strb.w	r1, [sp, #132]	; 0x84
+ 8011264:	f88d 2086 	strb.w	r2, [sp, #134]	; 0x86
+ 8011268:	990a      	ldr	r1, [sp, #40]	; 0x28
+ 801126a:	9a18      	ldr	r2, [sp, #96]	; 0x60
+ 801126c:	f88d 107d 	strb.w	r1, [sp, #125]	; 0x7d
+ 8011270:	f88d 2087 	strb.w	r2, [sp, #135]	; 0x87
+ 8011274:	9912      	ldr	r1, [sp, #72]	; 0x48
+ 8011276:	9a10      	ldr	r2, [sp, #64]	; 0x40
+ 8011278:	f88d 307b 	strb.w	r3, [sp, #123]	; 0x7b
+ 801127c:	9b1b      	ldr	r3, [sp, #108]	; 0x6c
+ 801127e:	f88d 1081 	strb.w	r1, [sp, #129]	; 0x81
+ 8011282:	f88d 2083 	strb.w	r2, [sp, #131]	; 0x83
+ 8011286:	991a      	ldr	r1, [sp, #104]	; 0x68
+ 8011288:	9a08      	ldr	r2, [sp, #32]
+ 801128a:	981d      	ldr	r0, [sp, #116]	; 0x74
+ 801128c:	f88d 1085 	strb.w	r1, [sp, #133]	; 0x85
+ 8011290:	f88d 207f 	strb.w	r2, [sp, #127]	; 0x7f
+ 8011294:	a91e      	add	r1, sp, #120	; 0x78
+ 8011296:	eb03 120b 	add.w	r2, r3, fp, lsl #4
+ 801129a:	f88d 7079 	strb.w	r7, [sp, #121]	; 0x79
+ 801129e:	f7ff fe9a 	bl	8010fd6 <copy_and_key>
+ 80112a2:	2000      	movs	r0, #0
+ 80112a4:	b023      	add	sp, #140	; 0x8c
+ 80112a6:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 80112aa:	f815 b008 	ldrb.w	fp, [r5, r8]
+ 80112ae:	ea82 0003 	eor.w	r0, r2, r3
+ 80112b2:	ea8b 0000 	eor.w	r0, fp, r0
+ 80112b6:	f816 b00e 	ldrb.w	fp, [r6, lr]
+ 80112ba:	ea80 000b 	eor.w	r0, r0, fp
+ 80112be:	f88d 0078 	strb.w	r0, [sp, #120]	; 0x78
+ 80112c2:	f815 000e 	ldrb.w	r0, [r5, lr]
+ 80112c6:	404b      	eors	r3, r1
+ 80112c8:	4043      	eors	r3, r0
+ 80112ca:	f816 000a 	ldrb.w	r0, [r6, sl]
+ 80112ce:	4043      	eors	r3, r0
+ 80112d0:	f88d 3079 	strb.w	r3, [sp, #121]	; 0x79
+ 80112d4:	ea81 0307 	eor.w	r3, r1, r7
+ 80112d8:	f815 100a 	ldrb.w	r1, [r5, sl]
+ 80112dc:	4059      	eors	r1, r3
+ 80112de:	f816 3009 	ldrb.w	r3, [r6, r9]
+ 80112e2:	4059      	eors	r1, r3
+ 80112e4:	f816 3008 	ldrb.w	r3, [r6, r8]
+ 80112e8:	f88d 107a 	strb.w	r1, [sp, #122]	; 0x7a
+ 80112ec:	407a      	eors	r2, r7
+ 80112ee:	4053      	eors	r3, r2
+ 80112f0:	f815 2009 	ldrb.w	r2, [r5, r9]
+ 80112f4:	4053      	eors	r3, r2
+ 80112f6:	f88d 307b 	strb.w	r3, [sp, #123]	; 0x7b
+ 80112fa:	9a08      	ldr	r2, [sp, #32]
+ 80112fc:	9b06      	ldr	r3, [sp, #24]
+ 80112fe:	4053      	eors	r3, r2
+ 8011300:	9a04      	ldr	r2, [sp, #16]
+ 8011302:	5caa      	ldrb	r2, [r5, r2]
+ 8011304:	4053      	eors	r3, r2
+ 8011306:	f816 200c 	ldrb.w	r2, [r6, ip]
+ 801130a:	4053      	eors	r3, r2
+ 801130c:	f88d 307c 	strb.w	r3, [sp, #124]	; 0x7c
+ 8011310:	e9dd 3208 	ldrd	r3, r2, [sp, #32]
+ 8011314:	405a      	eors	r2, r3
+ 8011316:	f815 300c 	ldrb.w	r3, [r5, ip]
+ 801131a:	4053      	eors	r3, r2
+ 801131c:	9a05      	ldr	r2, [sp, #20]
+ 801131e:	5cb2      	ldrb	r2, [r6, r2]
+ 8011320:	4053      	eors	r3, r2
+ 8011322:	f88d 307d 	strb.w	r3, [sp, #125]	; 0x7d
+ 8011326:	e9dd 3209 	ldrd	r3, r2, [sp, #36]	; 0x24
+ 801132a:	405a      	eors	r2, r3
+ 801132c:	9b05      	ldr	r3, [sp, #20]
+ 801132e:	5ceb      	ldrb	r3, [r5, r3]
+ 8011330:	4053      	eors	r3, r2
+ 8011332:	9a07      	ldr	r2, [sp, #28]
+ 8011334:	5cb2      	ldrb	r2, [r6, r2]
+ 8011336:	4053      	eors	r3, r2
+ 8011338:	f88d 307e 	strb.w	r3, [sp, #126]	; 0x7e
+ 801133c:	9b06      	ldr	r3, [sp, #24]
+ 801133e:	9a0a      	ldr	r2, [sp, #40]	; 0x28
+ 8011340:	4053      	eors	r3, r2
+ 8011342:	9a04      	ldr	r2, [sp, #16]
+ 8011344:	5cb2      	ldrb	r2, [r6, r2]
+ 8011346:	405a      	eors	r2, r3
+ 8011348:	9b07      	ldr	r3, [sp, #28]
+ 801134a:	5ceb      	ldrb	r3, [r5, r3]
+ 801134c:	405a      	eors	r2, r3
+ 801134e:	f88d 207f 	strb.w	r2, [sp, #127]	; 0x7f
+ 8011352:	9b0e      	ldr	r3, [sp, #56]	; 0x38
+ 8011354:	9a10      	ldr	r2, [sp, #64]	; 0x40
+ 8011356:	4053      	eors	r3, r2
+ 8011358:	9a0b      	ldr	r2, [sp, #44]	; 0x2c
+ 801135a:	5caa      	ldrb	r2, [r5, r2]
+ 801135c:	4053      	eors	r3, r2
+ 801135e:	9a0c      	ldr	r2, [sp, #48]	; 0x30
+ 8011360:	5cb2      	ldrb	r2, [r6, r2]
+ 8011362:	4053      	eors	r3, r2
+ 8011364:	f88d 3080 	strb.w	r3, [sp, #128]	; 0x80
+ 8011368:	e9dd 3210 	ldrd	r3, r2, [sp, #64]	; 0x40
+ 801136c:	405a      	eors	r2, r3
+ 801136e:	9b0c      	ldr	r3, [sp, #48]	; 0x30
+ 8011370:	5ceb      	ldrb	r3, [r5, r3]
+ 8011372:	4053      	eors	r3, r2
+ 8011374:	9a0d      	ldr	r2, [sp, #52]	; 0x34
+ 8011376:	5cb2      	ldrb	r2, [r6, r2]
+ 8011378:	4053      	eors	r3, r2
+ 801137a:	f88d 3081 	strb.w	r3, [sp, #129]	; 0x81
+ 801137e:	e9dd 3211 	ldrd	r3, r2, [sp, #68]	; 0x44
+ 8011382:	405a      	eors	r2, r3
+ 8011384:	9b0d      	ldr	r3, [sp, #52]	; 0x34
+ 8011386:	5ceb      	ldrb	r3, [r5, r3]
+ 8011388:	4053      	eors	r3, r2
+ 801138a:	9a0f      	ldr	r2, [sp, #60]	; 0x3c
+ 801138c:	5cb2      	ldrb	r2, [r6, r2]
+ 801138e:	4053      	eors	r3, r2
+ 8011390:	f88d 3082 	strb.w	r3, [sp, #130]	; 0x82
+ 8011394:	9a12      	ldr	r2, [sp, #72]	; 0x48
+ 8011396:	9b0e      	ldr	r3, [sp, #56]	; 0x38
+ 8011398:	4053      	eors	r3, r2
+ 801139a:	9a0b      	ldr	r2, [sp, #44]	; 0x2c
+ 801139c:	5cb2      	ldrb	r2, [r6, r2]
+ 801139e:	405a      	eors	r2, r3
+ 80113a0:	9b0f      	ldr	r3, [sp, #60]	; 0x3c
+ 80113a2:	5ceb      	ldrb	r3, [r5, r3]
+ 80113a4:	991c      	ldr	r1, [sp, #112]	; 0x70
+ 80113a6:	405a      	eors	r2, r3
+ 80113a8:	f88d 2083 	strb.w	r2, [sp, #131]	; 0x83
+ 80113ac:	9b16      	ldr	r3, [sp, #88]	; 0x58
+ 80113ae:	9a18      	ldr	r2, [sp, #96]	; 0x60
+ 80113b0:	4053      	eors	r3, r2
+ 80113b2:	9a13      	ldr	r2, [sp, #76]	; 0x4c
+ 80113b4:	5caa      	ldrb	r2, [r5, r2]
+ 80113b6:	4053      	eors	r3, r2
+ 80113b8:	9a14      	ldr	r2, [sp, #80]	; 0x50
+ 80113ba:	5cb2      	ldrb	r2, [r6, r2]
+ 80113bc:	4053      	eors	r3, r2
+ 80113be:	f88d 3084 	strb.w	r3, [sp, #132]	; 0x84
+ 80113c2:	e9dd 3218 	ldrd	r3, r2, [sp, #96]	; 0x60
+ 80113c6:	405a      	eors	r2, r3
+ 80113c8:	9b14      	ldr	r3, [sp, #80]	; 0x50
+ 80113ca:	5ceb      	ldrb	r3, [r5, r3]
+ 80113cc:	4053      	eors	r3, r2
+ 80113ce:	9a15      	ldr	r2, [sp, #84]	; 0x54
+ 80113d0:	5cb2      	ldrb	r2, [r6, r2]
+ 80113d2:	4053      	eors	r3, r2
+ 80113d4:	f88d 3085 	strb.w	r3, [sp, #133]	; 0x85
+ 80113d8:	e9dd 3219 	ldrd	r3, r2, [sp, #100]	; 0x64
+ 80113dc:	405a      	eors	r2, r3
+ 80113de:	9b15      	ldr	r3, [sp, #84]	; 0x54
+ 80113e0:	5ceb      	ldrb	r3, [r5, r3]
+ 80113e2:	4053      	eors	r3, r2
+ 80113e4:	9a17      	ldr	r2, [sp, #92]	; 0x5c
+ 80113e6:	5cb2      	ldrb	r2, [r6, r2]
+ 80113e8:	4053      	eors	r3, r2
+ 80113ea:	f88d 3086 	strb.w	r3, [sp, #134]	; 0x86
+ 80113ee:	9a1a      	ldr	r2, [sp, #104]	; 0x68
+ 80113f0:	9b16      	ldr	r3, [sp, #88]	; 0x58
+ 80113f2:	4053      	eors	r3, r2
+ 80113f4:	9a13      	ldr	r2, [sp, #76]	; 0x4c
+ 80113f6:	5cb2      	ldrb	r2, [r6, r2]
+ 80113f8:	4053      	eors	r3, r2
+ 80113fa:	9a17      	ldr	r2, [sp, #92]	; 0x5c
+ 80113fc:	5caa      	ldrb	r2, [r5, r2]
+ 80113fe:	a81e      	add	r0, sp, #120	; 0x78
+ 8011400:	4053      	eors	r3, r2
+ 8011402:	f88d 3087 	strb.w	r3, [sp, #135]	; 0x87
+ 8011406:	f7ff fda5 	bl	8010f54 <xor_block>
+ 801140a:	e6b8      	b.n	801117e <lorawan_aes_encrypt+0x2e>
+ 801140c:	20ff      	movs	r0, #255	; 0xff
+ 801140e:	e749      	b.n	80112a4 <lorawan_aes_encrypt+0x154>
+ 8011410:	08015620 	.word	0x08015620
+ 8011414:	08015420 	.word	0x08015420
+ 8011418:	08015520 	.word	0x08015520
+
+0801141c <SecureElementInit>:
+ 801141c:	b508      	push	{r3, lr}
+ 801141e:	b138      	cbz	r0, 8011430 <SecureElementInit+0x14>
+ 8011420:	4a04      	ldr	r2, [pc, #16]	; (8011434 <SecureElementInit+0x18>)
+ 8011422:	4905      	ldr	r1, [pc, #20]	; (8011438 <SecureElementInit+0x1c>)
+ 8011424:	6010      	str	r0, [r2, #0]
+ 8011426:	22d8      	movs	r2, #216	; 0xd8
+ 8011428:	f000 fab0 	bl	801198c <memcpy1>
+ 801142c:	2000      	movs	r0, #0
+ 801142e:	bd08      	pop	{r3, pc}
+ 8011430:	2002      	movs	r0, #2
+ 8011432:	e7fc      	b.n	801142e <SecureElementInit+0x12>
+ 8011434:	20002628 	.word	0x20002628
+ 8011438:	08015b50 	.word	0x08015b50
+
+0801143c <SecureElementGetKeyByID>:
+ 801143c:	4b0a      	ldr	r3, [pc, #40]	; (8011468 <SecureElementGetKeyByID+0x2c>)
+ 801143e:	681a      	ldr	r2, [r3, #0]
+ 8011440:	b570      	push	{r4, r5, r6, lr}
+ 8011442:	2300      	movs	r3, #0
+ 8011444:	f102 0518 	add.w	r5, r2, #24
+ 8011448:	eb03 1403 	add.w	r4, r3, r3, lsl #4
+ 801144c:	5d2e      	ldrb	r6, [r5, r4]
+ 801144e:	4286      	cmp	r6, r0
+ 8011450:	d104      	bne.n	801145c <SecureElementGetKeyByID+0x20>
+ 8011452:	3418      	adds	r4, #24
+ 8011454:	4422      	add	r2, r4
+ 8011456:	600a      	str	r2, [r1, #0]
+ 8011458:	2000      	movs	r0, #0
+ 801145a:	bd70      	pop	{r4, r5, r6, pc}
+ 801145c:	3301      	adds	r3, #1
+ 801145e:	2b0b      	cmp	r3, #11
+ 8011460:	d1f2      	bne.n	8011448 <SecureElementGetKeyByID+0xc>
+ 8011462:	2003      	movs	r0, #3
+ 8011464:	e7f9      	b.n	801145a <SecureElementGetKeyByID+0x1e>
+ 8011466:	bf00      	nop
+ 8011468:	20002628 	.word	0x20002628
+
+0801146c <ComputeCmac>:
+ 801146c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8011470:	b0cc      	sub	sp, #304	; 0x130
+ 8011472:	4606      	mov	r6, r0
+ 8011474:	f8dd 8148 	ldr.w	r8, [sp, #328]	; 0x148
+ 8011478:	4617      	mov	r7, r2
+ 801147a:	461c      	mov	r4, r3
+ 801147c:	460d      	mov	r5, r1
+ 801147e:	b331      	cbz	r1, 80114ce <ComputeCmac+0x62>
+ 8011480:	f1b8 0f00 	cmp.w	r8, #0
+ 8011484:	d023      	beq.n	80114ce <ComputeCmac+0x62>
+ 8011486:	a806      	add	r0, sp, #24
+ 8011488:	f7ff fc2e 	bl	8010ce8 <AES_CMAC_Init>
+ 801148c:	4620      	mov	r0, r4
+ 801148e:	a901      	add	r1, sp, #4
+ 8011490:	f7ff ffd4 	bl	801143c <SecureElementGetKeyByID>
+ 8011494:	4604      	mov	r4, r0
+ 8011496:	b9b0      	cbnz	r0, 80114c6 <ComputeCmac+0x5a>
+ 8011498:	9901      	ldr	r1, [sp, #4]
+ 801149a:	a806      	add	r0, sp, #24
+ 801149c:	3101      	adds	r1, #1
+ 801149e:	f7ff fc33 	bl	8010d08 <AES_CMAC_SetKey>
+ 80114a2:	b126      	cbz	r6, 80114ae <ComputeCmac+0x42>
+ 80114a4:	2210      	movs	r2, #16
+ 80114a6:	4631      	mov	r1, r6
+ 80114a8:	a806      	add	r0, sp, #24
+ 80114aa:	f7ff fc32 	bl	8010d12 <AES_CMAC_Update>
+ 80114ae:	463a      	mov	r2, r7
+ 80114b0:	4629      	mov	r1, r5
+ 80114b2:	a806      	add	r0, sp, #24
+ 80114b4:	f7ff fc2d 	bl	8010d12 <AES_CMAC_Update>
+ 80114b8:	a906      	add	r1, sp, #24
+ 80114ba:	a802      	add	r0, sp, #8
+ 80114bc:	f7ff fc94 	bl	8010de8 <AES_CMAC_Final>
+ 80114c0:	9b02      	ldr	r3, [sp, #8]
+ 80114c2:	f8c8 3000 	str.w	r3, [r8]
+ 80114c6:	4620      	mov	r0, r4
+ 80114c8:	b04c      	add	sp, #304	; 0x130
+ 80114ca:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 80114ce:	2402      	movs	r4, #2
+ 80114d0:	e7f9      	b.n	80114c6 <ComputeCmac+0x5a>
+	...
+
+080114d4 <PrintKey>:
+ 80114d4:	b530      	push	{r4, r5, lr}
+ 80114d6:	b095      	sub	sp, #84	; 0x54
+ 80114d8:	a913      	add	r1, sp, #76	; 0x4c
+ 80114da:	4604      	mov	r4, r0
+ 80114dc:	f7ff ffae 	bl	801143c <SecureElementGetKeyByID>
+ 80114e0:	2800      	cmp	r0, #0
+ 80114e2:	d130      	bne.n	8011546 <PrintKey+0x72>
+ 80114e4:	491b      	ldr	r1, [pc, #108]	; (8011554 <PrintKey+0x80>)
+ 80114e6:	230c      	movs	r3, #12
+ 80114e8:	fb03 f200 	mul.w	r2, r3, r0
+ 80114ec:	5c55      	ldrb	r5, [r2, r1]
+ 80114ee:	42a5      	cmp	r5, r4
+ 80114f0:	d12b      	bne.n	801154a <PrintKey+0x76>
+ 80114f2:	9b13      	ldr	r3, [sp, #76]	; 0x4c
+ 80114f4:	7c18      	ldrb	r0, [r3, #16]
+ 80114f6:	9010      	str	r0, [sp, #64]	; 0x40
+ 80114f8:	7bd8      	ldrb	r0, [r3, #15]
+ 80114fa:	900f      	str	r0, [sp, #60]	; 0x3c
+ 80114fc:	7b98      	ldrb	r0, [r3, #14]
+ 80114fe:	900e      	str	r0, [sp, #56]	; 0x38
+ 8011500:	7b58      	ldrb	r0, [r3, #13]
+ 8011502:	900d      	str	r0, [sp, #52]	; 0x34
+ 8011504:	7b18      	ldrb	r0, [r3, #12]
+ 8011506:	900c      	str	r0, [sp, #48]	; 0x30
+ 8011508:	7ad8      	ldrb	r0, [r3, #11]
+ 801150a:	900b      	str	r0, [sp, #44]	; 0x2c
+ 801150c:	7a98      	ldrb	r0, [r3, #10]
+ 801150e:	900a      	str	r0, [sp, #40]	; 0x28
+ 8011510:	7a58      	ldrb	r0, [r3, #9]
+ 8011512:	9009      	str	r0, [sp, #36]	; 0x24
+ 8011514:	7a18      	ldrb	r0, [r3, #8]
+ 8011516:	9008      	str	r0, [sp, #32]
+ 8011518:	79d8      	ldrb	r0, [r3, #7]
+ 801151a:	9007      	str	r0, [sp, #28]
+ 801151c:	7998      	ldrb	r0, [r3, #6]
+ 801151e:	9006      	str	r0, [sp, #24]
+ 8011520:	7958      	ldrb	r0, [r3, #5]
+ 8011522:	9005      	str	r0, [sp, #20]
+ 8011524:	7918      	ldrb	r0, [r3, #4]
+ 8011526:	9004      	str	r0, [sp, #16]
+ 8011528:	78d8      	ldrb	r0, [r3, #3]
+ 801152a:	9003      	str	r0, [sp, #12]
+ 801152c:	7898      	ldrb	r0, [r3, #2]
+ 801152e:	9002      	str	r0, [sp, #8]
+ 8011530:	440a      	add	r2, r1
+ 8011532:	785b      	ldrb	r3, [r3, #1]
+ 8011534:	9301      	str	r3, [sp, #4]
+ 8011536:	6893      	ldr	r3, [r2, #8]
+ 8011538:	9300      	str	r3, [sp, #0]
+ 801153a:	2200      	movs	r2, #0
+ 801153c:	4b06      	ldr	r3, [pc, #24]	; (8011558 <PrintKey+0x84>)
+ 801153e:	4611      	mov	r1, r2
+ 8011540:	2002      	movs	r0, #2
+ 8011542:	f002 fa19 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8011546:	b015      	add	sp, #84	; 0x54
+ 8011548:	bd30      	pop	{r4, r5, pc}
+ 801154a:	3001      	adds	r0, #1
+ 801154c:	280b      	cmp	r0, #11
+ 801154e:	d1cb      	bne.n	80114e8 <PrintKey+0x14>
+ 8011550:	e7f9      	b.n	8011546 <PrintKey+0x72>
+ 8011552:	bf00      	nop
+ 8011554:	08015898 	.word	0x08015898
+ 8011558:	08015720 	.word	0x08015720
+
+0801155c <SecureElementComputeAesCmac>:
+ 801155c:	2b0b      	cmp	r3, #11
+ 801155e:	b410      	push	{r4}
+ 8011560:	d802      	bhi.n	8011568 <SecureElementComputeAesCmac+0xc>
+ 8011562:	bc10      	pop	{r4}
+ 8011564:	f7ff bf82 	b.w	801146c <ComputeCmac>
+ 8011568:	2003      	movs	r0, #3
+ 801156a:	bc10      	pop	{r4}
+ 801156c:	4770      	bx	lr
+
+0801156e <SecureElementVerifyAesCmac>:
+ 801156e:	b530      	push	{r4, r5, lr}
+ 8011570:	460d      	mov	r5, r1
+ 8011572:	b085      	sub	sp, #20
+ 8011574:	4614      	mov	r4, r2
+ 8011576:	4601      	mov	r1, r0
+ 8011578:	b168      	cbz	r0, 8011596 <SecureElementVerifyAesCmac+0x28>
+ 801157a:	aa03      	add	r2, sp, #12
+ 801157c:	2000      	movs	r0, #0
+ 801157e:	9200      	str	r2, [sp, #0]
+ 8011580:	462a      	mov	r2, r5
+ 8011582:	9003      	str	r0, [sp, #12]
+ 8011584:	f7ff ff72 	bl	801146c <ComputeCmac>
+ 8011588:	b918      	cbnz	r0, 8011592 <SecureElementVerifyAesCmac+0x24>
+ 801158a:	9803      	ldr	r0, [sp, #12]
+ 801158c:	1b00      	subs	r0, r0, r4
+ 801158e:	bf18      	it	ne
+ 8011590:	2001      	movne	r0, #1
+ 8011592:	b005      	add	sp, #20
+ 8011594:	bd30      	pop	{r4, r5, pc}
+ 8011596:	2002      	movs	r0, #2
+ 8011598:	e7fb      	b.n	8011592 <SecureElementVerifyAesCmac+0x24>
+
+0801159a <SecureElementAesEncrypt>:
+ 801159a:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
+ 801159e:	460d      	mov	r5, r1
+ 80115a0:	b0bf      	sub	sp, #252	; 0xfc
+ 80115a2:	4614      	mov	r4, r2
+ 80115a4:	4699      	mov	r9, r3
+ 80115a6:	4680      	mov	r8, r0
+ 80115a8:	b320      	cbz	r0, 80115f4 <SecureElementAesEncrypt+0x5a>
+ 80115aa:	b31b      	cbz	r3, 80115f4 <SecureElementAesEncrypt+0x5a>
+ 80115ac:	f011 010f 	ands.w	r1, r1, #15
+ 80115b0:	d122      	bne.n	80115f8 <SecureElementAesEncrypt+0x5e>
+ 80115b2:	22f0      	movs	r2, #240	; 0xf0
+ 80115b4:	a801      	add	r0, sp, #4
+ 80115b6:	f000 f9fd 	bl	80119b4 <memset1>
+ 80115ba:	4620      	mov	r0, r4
+ 80115bc:	4669      	mov	r1, sp
+ 80115be:	f7ff ff3d 	bl	801143c <SecureElementGetKeyByID>
+ 80115c2:	4604      	mov	r4, r0
+ 80115c4:	b948      	cbnz	r0, 80115da <SecureElementAesEncrypt+0x40>
+ 80115c6:	9800      	ldr	r0, [sp, #0]
+ 80115c8:	aa01      	add	r2, sp, #4
+ 80115ca:	2110      	movs	r1, #16
+ 80115cc:	3001      	adds	r0, #1
+ 80115ce:	f7ff fd45 	bl	801105c <lorawan_aes_set_key>
+ 80115d2:	462e      	mov	r6, r5
+ 80115d4:	1baf      	subs	r7, r5, r6
+ 80115d6:	b2ff      	uxtb	r7, r7
+ 80115d8:	b91e      	cbnz	r6, 80115e2 <SecureElementAesEncrypt+0x48>
+ 80115da:	4620      	mov	r0, r4
+ 80115dc:	b03f      	add	sp, #252	; 0xfc
+ 80115de:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
+ 80115e2:	aa01      	add	r2, sp, #4
+ 80115e4:	eb09 0107 	add.w	r1, r9, r7
+ 80115e8:	eb08 0007 	add.w	r0, r8, r7
+ 80115ec:	f7ff fdb0 	bl	8011150 <lorawan_aes_encrypt>
+ 80115f0:	3e10      	subs	r6, #16
+ 80115f2:	e7ef      	b.n	80115d4 <SecureElementAesEncrypt+0x3a>
+ 80115f4:	2402      	movs	r4, #2
+ 80115f6:	e7f0      	b.n	80115da <SecureElementAesEncrypt+0x40>
+ 80115f8:	2405      	movs	r4, #5
+ 80115fa:	e7ee      	b.n	80115da <SecureElementAesEncrypt+0x40>
+
+080115fc <SecureElementSetKey.part.0>:
+ 80115fc:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 80115fe:	4e18      	ldr	r6, [pc, #96]	; (8011660 <SecureElementSetKey.part.0+0x64>)
+ 8011600:	6834      	ldr	r4, [r6, #0]
+ 8011602:	4602      	mov	r2, r0
+ 8011604:	b085      	sub	sp, #20
+ 8011606:	4608      	mov	r0, r1
+ 8011608:	2300      	movs	r3, #0
+ 801160a:	f104 0118 	add.w	r1, r4, #24
+ 801160e:	eb03 1503 	add.w	r5, r3, r3, lsl #4
+ 8011612:	5d4f      	ldrb	r7, [r1, r5]
+ 8011614:	4297      	cmp	r7, r2
+ 8011616:	d11e      	bne.n	8011656 <SecureElementSetKey.part.0+0x5a>
+ 8011618:	2a0d      	cmp	r2, #13
+ 801161a:	f105 0519 	add.w	r5, r5, #25
+ 801161e:	d113      	bne.n	8011648 <SecureElementSetKey.part.0+0x4c>
+ 8011620:	2300      	movs	r3, #0
+ 8011622:	e9cd 3300 	strd	r3, r3, [sp]
+ 8011626:	e9cd 3302 	strd	r3, r3, [sp, #8]
+ 801162a:	220c      	movs	r2, #12
+ 801162c:	2110      	movs	r1, #16
+ 801162e:	466b      	mov	r3, sp
+ 8011630:	f7ff ffb3 	bl	801159a <SecureElementAesEncrypt>
+ 8011634:	4604      	mov	r4, r0
+ 8011636:	6830      	ldr	r0, [r6, #0]
+ 8011638:	2210      	movs	r2, #16
+ 801163a:	4669      	mov	r1, sp
+ 801163c:	4428      	add	r0, r5
+ 801163e:	f000 f9a5 	bl	801198c <memcpy1>
+ 8011642:	4620      	mov	r0, r4
+ 8011644:	b005      	add	sp, #20
+ 8011646:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 8011648:	4601      	mov	r1, r0
+ 801164a:	2210      	movs	r2, #16
+ 801164c:	1960      	adds	r0, r4, r5
+ 801164e:	f000 f99d 	bl	801198c <memcpy1>
+ 8011652:	2400      	movs	r4, #0
+ 8011654:	e7f5      	b.n	8011642 <SecureElementSetKey.part.0+0x46>
+ 8011656:	3301      	adds	r3, #1
+ 8011658:	2b0b      	cmp	r3, #11
+ 801165a:	d1d8      	bne.n	801160e <SecureElementSetKey.part.0+0x12>
+ 801165c:	2403      	movs	r4, #3
+ 801165e:	e7f0      	b.n	8011642 <SecureElementSetKey.part.0+0x46>
+ 8011660:	20002628 	.word	0x20002628
+
+08011664 <SecureElementSetKey>:
+ 8011664:	b109      	cbz	r1, 801166a <SecureElementSetKey+0x6>
+ 8011666:	f7ff bfc9 	b.w	80115fc <SecureElementSetKey.part.0>
+ 801166a:	2002      	movs	r0, #2
+ 801166c:	4770      	bx	lr
+
+0801166e <SecureElementDeriveAndStoreKey>:
+ 801166e:	b51f      	push	{r0, r1, r2, r3, r4, lr}
+ 8011670:	4614      	mov	r4, r2
+ 8011672:	b1a0      	cbz	r0, 801169e <SecureElementDeriveAndStoreKey+0x30>
+ 8011674:	2a0c      	cmp	r2, #12
+ 8011676:	d101      	bne.n	801167c <SecureElementDeriveAndStoreKey+0xe>
+ 8011678:	290b      	cmp	r1, #11
+ 801167a:	d112      	bne.n	80116a2 <SecureElementDeriveAndStoreKey+0x34>
+ 801167c:	2300      	movs	r3, #0
+ 801167e:	e9cd 3300 	strd	r3, r3, [sp]
+ 8011682:	e9cd 3302 	strd	r3, r3, [sp, #8]
+ 8011686:	460a      	mov	r2, r1
+ 8011688:	466b      	mov	r3, sp
+ 801168a:	2110      	movs	r1, #16
+ 801168c:	f7ff ff85 	bl	801159a <SecureElementAesEncrypt>
+ 8011690:	b918      	cbnz	r0, 801169a <SecureElementDeriveAndStoreKey+0x2c>
+ 8011692:	4669      	mov	r1, sp
+ 8011694:	4620      	mov	r0, r4
+ 8011696:	f7ff ffb1 	bl	80115fc <SecureElementSetKey.part.0>
+ 801169a:	b004      	add	sp, #16
+ 801169c:	bd10      	pop	{r4, pc}
+ 801169e:	2002      	movs	r0, #2
+ 80116a0:	e7fb      	b.n	801169a <SecureElementDeriveAndStoreKey+0x2c>
+ 80116a2:	2003      	movs	r0, #3
+ 80116a4:	e7f9      	b.n	801169a <SecureElementDeriveAndStoreKey+0x2c>
+
+080116a6 <SecureElementProcessJoinAccept>:
+ 80116a6:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 80116a8:	461e      	mov	r6, r3
+ 80116aa:	e9dd 4707 	ldrd	r4, r7, [sp, #28]
+ 80116ae:	f89d 5018 	ldrb.w	r5, [sp, #24]
+ 80116b2:	b35b      	cbz	r3, 801170c <SecureElementProcessJoinAccept+0x66>
+ 80116b4:	b354      	cbz	r4, 801170c <SecureElementProcessJoinAccept+0x66>
+ 80116b6:	b34f      	cbz	r7, 801170c <SecureElementProcessJoinAccept+0x66>
+ 80116b8:	2d21      	cmp	r5, #33	; 0x21
+ 80116ba:	d829      	bhi.n	8011710 <SecureElementProcessJoinAccept+0x6a>
+ 80116bc:	4619      	mov	r1, r3
+ 80116be:	462a      	mov	r2, r5
+ 80116c0:	4620      	mov	r0, r4
+ 80116c2:	f000 f963 	bl	801198c <memcpy1>
+ 80116c6:	2201      	movs	r2, #1
+ 80116c8:	1c63      	adds	r3, r4, #1
+ 80116ca:	1e69      	subs	r1, r5, #1
+ 80116cc:	18b0      	adds	r0, r6, r2
+ 80116ce:	f7ff ff64 	bl	801159a <SecureElementAesEncrypt>
+ 80116d2:	b9f8      	cbnz	r0, 8011714 <SecureElementProcessJoinAccept+0x6e>
+ 80116d4:	7ae3      	ldrb	r3, [r4, #11]
+ 80116d6:	09db      	lsrs	r3, r3, #7
+ 80116d8:	703b      	strb	r3, [r7, #0]
+ 80116da:	b9eb      	cbnz	r3, 8011718 <SecureElementProcessJoinAccept+0x72>
+ 80116dc:	1963      	adds	r3, r4, r5
+ 80116de:	4620      	mov	r0, r4
+ 80116e0:	f813 2c01 	ldrb.w	r2, [r3, #-1]
+ 80116e4:	f813 1c02 	ldrb.w	r1, [r3, #-2]
+ 80116e8:	0612      	lsls	r2, r2, #24
+ 80116ea:	ea42 4201 	orr.w	r2, r2, r1, lsl #16
+ 80116ee:	f813 1c04 	ldrb.w	r1, [r3, #-4]
+ 80116f2:	430a      	orrs	r2, r1
+ 80116f4:	f813 1c03 	ldrb.w	r1, [r3, #-3]
+ 80116f8:	2301      	movs	r3, #1
+ 80116fa:	ea42 2201 	orr.w	r2, r2, r1, lsl #8
+ 80116fe:	1f29      	subs	r1, r5, #4
+ 8011700:	f7ff ff35 	bl	801156e <SecureElementVerifyAesCmac>
+ 8011704:	3800      	subs	r0, #0
+ 8011706:	bf18      	it	ne
+ 8011708:	2001      	movne	r0, #1
+ 801170a:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 801170c:	2002      	movs	r0, #2
+ 801170e:	e7fc      	b.n	801170a <SecureElementProcessJoinAccept+0x64>
+ 8011710:	2005      	movs	r0, #5
+ 8011712:	e7fa      	b.n	801170a <SecureElementProcessJoinAccept+0x64>
+ 8011714:	2007      	movs	r0, #7
+ 8011716:	e7f8      	b.n	801170a <SecureElementProcessJoinAccept+0x64>
+ 8011718:	2004      	movs	r0, #4
+ 801171a:	e7f6      	b.n	801170a <SecureElementProcessJoinAccept+0x64>
+
+0801171c <SecureElementRandomNumber>:
+ 801171c:	b510      	push	{r4, lr}
+ 801171e:	4604      	mov	r4, r0
+ 8011720:	b128      	cbz	r0, 801172e <SecureElementRandomNumber+0x12>
+ 8011722:	4b04      	ldr	r3, [pc, #16]	; (8011734 <SecureElementRandomNumber+0x18>)
+ 8011724:	695b      	ldr	r3, [r3, #20]
+ 8011726:	4798      	blx	r3
+ 8011728:	6020      	str	r0, [r4, #0]
+ 801172a:	2000      	movs	r0, #0
+ 801172c:	bd10      	pop	{r4, pc}
+ 801172e:	2002      	movs	r0, #2
+ 8011730:	e7fc      	b.n	801172c <SecureElementRandomNumber+0x10>
+ 8011732:	bf00      	nop
+ 8011734:	080159b0 	.word	0x080159b0
+
+08011738 <SecureElementSetDevEui>:
+ 8011738:	b508      	push	{r3, lr}
+ 801173a:	4601      	mov	r1, r0
+ 801173c:	b130      	cbz	r0, 801174c <SecureElementSetDevEui+0x14>
+ 801173e:	4b04      	ldr	r3, [pc, #16]	; (8011750 <SecureElementSetDevEui+0x18>)
+ 8011740:	2208      	movs	r2, #8
+ 8011742:	6818      	ldr	r0, [r3, #0]
+ 8011744:	f000 f922 	bl	801198c <memcpy1>
+ 8011748:	2000      	movs	r0, #0
+ 801174a:	bd08      	pop	{r3, pc}
+ 801174c:	2002      	movs	r0, #2
+ 801174e:	e7fc      	b.n	801174a <SecureElementSetDevEui+0x12>
+ 8011750:	20002628 	.word	0x20002628
+
+08011754 <SecureElementGetDevEui>:
+ 8011754:	b508      	push	{r3, lr}
+ 8011756:	b130      	cbz	r0, 8011766 <SecureElementGetDevEui+0x12>
+ 8011758:	4b04      	ldr	r3, [pc, #16]	; (801176c <SecureElementGetDevEui+0x18>)
+ 801175a:	2208      	movs	r2, #8
+ 801175c:	6819      	ldr	r1, [r3, #0]
+ 801175e:	f000 f915 	bl	801198c <memcpy1>
+ 8011762:	2000      	movs	r0, #0
+ 8011764:	bd08      	pop	{r3, pc}
+ 8011766:	2002      	movs	r0, #2
+ 8011768:	e7fc      	b.n	8011764 <SecureElementGetDevEui+0x10>
+ 801176a:	bf00      	nop
+ 801176c:	20002628 	.word	0x20002628
+
+08011770 <SecureElementInitMcuID>:
+ 8011770:	b57f      	push	{r0, r1, r2, r3, r4, r5, r6, lr}
+ 8011772:	4e12      	ldr	r6, [pc, #72]	; (80117bc <SecureElementInitMcuID+0x4c>)
+ 8011774:	2300      	movs	r3, #0
+ 8011776:	4604      	mov	r4, r0
+ 8011778:	a802      	add	r0, sp, #8
+ 801177a:	9301      	str	r3, [sp, #4]
+ 801177c:	460d      	mov	r5, r1
+ 801177e:	f7ff ffe9 	bl	8011754 <SecureElementGetDevEui>
+ 8011782:	6833      	ldr	r3, [r6, #0]
+ 8011784:	695b      	ldr	r3, [r3, #20]
+ 8011786:	9301      	str	r3, [sp, #4]
+ 8011788:	b16c      	cbz	r4, 80117a6 <SecureElementInitMcuID+0x36>
+ 801178a:	aa02      	add	r2, sp, #8
+ 801178c:	2308      	movs	r3, #8
+ 801178e:	f812 1b01 	ldrb.w	r1, [r2], #1
+ 8011792:	b941      	cbnz	r1, 80117a6 <SecureElementInitMcuID+0x36>
+ 8011794:	3b01      	subs	r3, #1
+ 8011796:	f013 03ff 	ands.w	r3, r3, #255	; 0xff
+ 801179a:	d1f8      	bne.n	801178e <SecureElementInitMcuID+0x1e>
+ 801179c:	a802      	add	r0, sp, #8
+ 801179e:	47a0      	blx	r4
+ 80117a0:	a802      	add	r0, sp, #8
+ 80117a2:	f7ff ffc9 	bl	8011738 <SecureElementSetDevEui>
+ 80117a6:	b135      	cbz	r5, 80117b6 <SecureElementInitMcuID+0x46>
+ 80117a8:	9b01      	ldr	r3, [sp, #4]
+ 80117aa:	b923      	cbnz	r3, 80117b6 <SecureElementInitMcuID+0x46>
+ 80117ac:	a801      	add	r0, sp, #4
+ 80117ae:	47a8      	blx	r5
+ 80117b0:	6833      	ldr	r3, [r6, #0]
+ 80117b2:	9a01      	ldr	r2, [sp, #4]
+ 80117b4:	615a      	str	r2, [r3, #20]
+ 80117b6:	2000      	movs	r0, #0
+ 80117b8:	b004      	add	sp, #16
+ 80117ba:	bd70      	pop	{r4, r5, r6, pc}
+ 80117bc:	20002628 	.word	0x20002628
+
+080117c0 <SecureElementSetJoinEui>:
+ 80117c0:	b508      	push	{r3, lr}
+ 80117c2:	4601      	mov	r1, r0
+ 80117c4:	b138      	cbz	r0, 80117d6 <SecureElementSetJoinEui+0x16>
+ 80117c6:	4b05      	ldr	r3, [pc, #20]	; (80117dc <SecureElementSetJoinEui+0x1c>)
+ 80117c8:	6818      	ldr	r0, [r3, #0]
+ 80117ca:	2208      	movs	r2, #8
+ 80117cc:	4410      	add	r0, r2
+ 80117ce:	f000 f8dd 	bl	801198c <memcpy1>
+ 80117d2:	2000      	movs	r0, #0
+ 80117d4:	bd08      	pop	{r3, pc}
+ 80117d6:	2002      	movs	r0, #2
+ 80117d8:	e7fc      	b.n	80117d4 <SecureElementSetJoinEui+0x14>
+ 80117da:	bf00      	nop
+ 80117dc:	20002628 	.word	0x20002628
+
+080117e0 <SecureElementGetJoinEui>:
+ 80117e0:	b508      	push	{r3, lr}
+ 80117e2:	b138      	cbz	r0, 80117f4 <SecureElementGetJoinEui+0x14>
+ 80117e4:	4b04      	ldr	r3, [pc, #16]	; (80117f8 <SecureElementGetJoinEui+0x18>)
+ 80117e6:	6819      	ldr	r1, [r3, #0]
+ 80117e8:	2208      	movs	r2, #8
+ 80117ea:	4411      	add	r1, r2
+ 80117ec:	f000 f8ce 	bl	801198c <memcpy1>
+ 80117f0:	2000      	movs	r0, #0
+ 80117f2:	bd08      	pop	{r3, pc}
+ 80117f4:	2002      	movs	r0, #2
+ 80117f6:	e7fc      	b.n	80117f2 <SecureElementGetJoinEui+0x12>
+ 80117f8:	20002628 	.word	0x20002628
+
+080117fc <SecureElementSetDevAddr>:
+ 80117fc:	4b03      	ldr	r3, [pc, #12]	; (801180c <SecureElementSetDevAddr+0x10>)
+ 80117fe:	681b      	ldr	r3, [r3, #0]
+ 8011800:	2802      	cmp	r0, #2
+ 8011802:	bf0c      	ite	eq
+ 8011804:	6119      	streq	r1, [r3, #16]
+ 8011806:	6159      	strne	r1, [r3, #20]
+ 8011808:	2000      	movs	r0, #0
+ 801180a:	4770      	bx	lr
+ 801180c:	20002628 	.word	0x20002628
+
+08011810 <SecureElementGetDevAddr>:
+ 8011810:	b141      	cbz	r1, 8011824 <SecureElementGetDevAddr+0x14>
+ 8011812:	4b05      	ldr	r3, [pc, #20]	; (8011828 <SecureElementGetDevAddr+0x18>)
+ 8011814:	681b      	ldr	r3, [r3, #0]
+ 8011816:	2802      	cmp	r0, #2
+ 8011818:	bf0c      	ite	eq
+ 801181a:	691b      	ldreq	r3, [r3, #16]
+ 801181c:	695b      	ldrne	r3, [r3, #20]
+ 801181e:	600b      	str	r3, [r1, #0]
+ 8011820:	2000      	movs	r0, #0
+ 8011822:	4770      	bx	lr
+ 8011824:	2002      	movs	r0, #2
+ 8011826:	4770      	bx	lr
+ 8011828:	20002628 	.word	0x20002628
+
+0801182c <PrintIds>:
+ 801182c:	b530      	push	{r4, r5, lr}
+ 801182e:	b08f      	sub	sp, #60	; 0x3c
+ 8011830:	2400      	movs	r4, #0
+ 8011832:	4605      	mov	r5, r0
+ 8011834:	a80c      	add	r0, sp, #48	; 0x30
+ 8011836:	9409      	str	r4, [sp, #36]	; 0x24
+ 8011838:	f7ff ff8c 	bl	8011754 <SecureElementGetDevEui>
+ 801183c:	f89d 3037 	ldrb.w	r3, [sp, #55]	; 0x37
+ 8011840:	9307      	str	r3, [sp, #28]
+ 8011842:	f89d 3036 	ldrb.w	r3, [sp, #54]	; 0x36
+ 8011846:	9306      	str	r3, [sp, #24]
+ 8011848:	f89d 3035 	ldrb.w	r3, [sp, #53]	; 0x35
+ 801184c:	9305      	str	r3, [sp, #20]
+ 801184e:	f89d 3034 	ldrb.w	r3, [sp, #52]	; 0x34
+ 8011852:	9304      	str	r3, [sp, #16]
+ 8011854:	f89d 3033 	ldrb.w	r3, [sp, #51]	; 0x33
+ 8011858:	9303      	str	r3, [sp, #12]
+ 801185a:	f89d 3032 	ldrb.w	r3, [sp, #50]	; 0x32
+ 801185e:	9302      	str	r3, [sp, #8]
+ 8011860:	f89d 3031 	ldrb.w	r3, [sp, #49]	; 0x31
+ 8011864:	9301      	str	r3, [sp, #4]
+ 8011866:	f89d 3030 	ldrb.w	r3, [sp, #48]	; 0x30
+ 801186a:	9300      	str	r3, [sp, #0]
+ 801186c:	4622      	mov	r2, r4
+ 801186e:	4621      	mov	r1, r4
+ 8011870:	4b1e      	ldr	r3, [pc, #120]	; (80118ec <PrintIds+0xc0>)
+ 8011872:	2002      	movs	r0, #2
+ 8011874:	f002 f880 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8011878:	a80a      	add	r0, sp, #40	; 0x28
+ 801187a:	f7ff ffb1 	bl	80117e0 <SecureElementGetJoinEui>
+ 801187e:	f89d 302f 	ldrb.w	r3, [sp, #47]	; 0x2f
+ 8011882:	9307      	str	r3, [sp, #28]
+ 8011884:	f89d 302e 	ldrb.w	r3, [sp, #46]	; 0x2e
+ 8011888:	9306      	str	r3, [sp, #24]
+ 801188a:	f89d 302d 	ldrb.w	r3, [sp, #45]	; 0x2d
+ 801188e:	9305      	str	r3, [sp, #20]
+ 8011890:	f89d 302c 	ldrb.w	r3, [sp, #44]	; 0x2c
+ 8011894:	9304      	str	r3, [sp, #16]
+ 8011896:	f89d 302b 	ldrb.w	r3, [sp, #43]	; 0x2b
+ 801189a:	9303      	str	r3, [sp, #12]
+ 801189c:	f89d 302a 	ldrb.w	r3, [sp, #42]	; 0x2a
+ 80118a0:	9302      	str	r3, [sp, #8]
+ 80118a2:	f89d 3029 	ldrb.w	r3, [sp, #41]	; 0x29
+ 80118a6:	9301      	str	r3, [sp, #4]
+ 80118a8:	f89d 3028 	ldrb.w	r3, [sp, #40]	; 0x28
+ 80118ac:	9300      	str	r3, [sp, #0]
+ 80118ae:	4622      	mov	r2, r4
+ 80118b0:	4b0f      	ldr	r3, [pc, #60]	; (80118f0 <PrintIds+0xc4>)
+ 80118b2:	4621      	mov	r1, r4
+ 80118b4:	2002      	movs	r0, #2
+ 80118b6:	f002 f85f 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 80118ba:	a909      	add	r1, sp, #36	; 0x24
+ 80118bc:	4628      	mov	r0, r5
+ 80118be:	f7ff ffa7 	bl	8011810 <SecureElementGetDevAddr>
+ 80118c2:	f89d 3024 	ldrb.w	r3, [sp, #36]	; 0x24
+ 80118c6:	9303      	str	r3, [sp, #12]
+ 80118c8:	f89d 3025 	ldrb.w	r3, [sp, #37]	; 0x25
+ 80118cc:	9302      	str	r3, [sp, #8]
+ 80118ce:	f89d 3026 	ldrb.w	r3, [sp, #38]	; 0x26
+ 80118d2:	9301      	str	r3, [sp, #4]
+ 80118d4:	f89d 3027 	ldrb.w	r3, [sp, #39]	; 0x27
+ 80118d8:	9300      	str	r3, [sp, #0]
+ 80118da:	4622      	mov	r2, r4
+ 80118dc:	4b05      	ldr	r3, [pc, #20]	; (80118f4 <PrintIds+0xc8>)
+ 80118de:	4621      	mov	r1, r4
+ 80118e0:	2002      	movs	r0, #2
+ 80118e2:	f002 f849 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 80118e6:	b00f      	add	sp, #60	; 0x3c
+ 80118e8:	bd30      	pop	{r4, r5, pc}
+ 80118ea:	bf00      	nop
+ 80118ec:	0801577c 	.word	0x0801577c
+ 80118f0:	080157ba 	.word	0x080157ba
+ 80118f4:	080157f8 	.word	0x080157f8
+
+080118f8 <SecureElementPrintKeys>:
+ 80118f8:	b508      	push	{r3, lr}
+ 80118fa:	2000      	movs	r0, #0
+ 80118fc:	f7ff fdea 	bl	80114d4 <PrintKey>
+ 8011900:	2001      	movs	r0, #1
+ 8011902:	f7ff fde7 	bl	80114d4 <PrintKey>
+ 8011906:	2009      	movs	r0, #9
+ 8011908:	f7ff fde4 	bl	80114d4 <PrintKey>
+ 801190c:	2008      	movs	r0, #8
+ 801190e:	f7ff fde1 	bl	80114d4 <PrintKey>
+ 8011912:	2000      	movs	r0, #0
+ 8011914:	f7ff ff8a 	bl	801182c <PrintIds>
+ 8011918:	2000      	movs	r0, #0
+ 801191a:	bd08      	pop	{r3, pc}
+
+0801191c <SecureElementPrintSessionKeys>:
+ 801191c:	b510      	push	{r4, lr}
+ 801191e:	4604      	mov	r4, r0
+ 8011920:	200b      	movs	r0, #11
+ 8011922:	f7ff fdd7 	bl	80114d4 <PrintKey>
+ 8011926:	200c      	movs	r0, #12
+ 8011928:	f7ff fdd4 	bl	80114d4 <PrintKey>
+ 801192c:	2009      	movs	r0, #9
+ 801192e:	f7ff fdd1 	bl	80114d4 <PrintKey>
+ 8011932:	2008      	movs	r0, #8
+ 8011934:	f7ff fdce 	bl	80114d4 <PrintKey>
+ 8011938:	200a      	movs	r0, #10
+ 801193a:	f7ff fdcb 	bl	80114d4 <PrintKey>
+ 801193e:	4620      	mov	r0, r4
+ 8011940:	f7ff ff74 	bl	801182c <PrintIds>
+ 8011944:	2000      	movs	r0, #0
+ 8011946:	bd10      	pop	{r4, pc}
+
+08011948 <srand1>:
+ 8011948:	4b01      	ldr	r3, [pc, #4]	; (8011950 <srand1+0x8>)
+ 801194a:	6018      	str	r0, [r3, #0]
+ 801194c:	4770      	bx	lr
+ 801194e:	bf00      	nop
+ 8011950:	200008bc 	.word	0x200008bc
+
+08011954 <randr>:
+ 8011954:	4a0b      	ldr	r2, [pc, #44]	; (8011984 <randr+0x30>)
+ 8011956:	b530      	push	{r4, r5, lr}
+ 8011958:	6814      	ldr	r4, [r2, #0]
+ 801195a:	4d0b      	ldr	r5, [pc, #44]	; (8011988 <randr+0x34>)
+ 801195c:	f243 0339 	movw	r3, #12345	; 0x3039
+ 8011960:	fb05 3304 	mla	r3, r5, r4, r3
+ 8011964:	6013      	str	r3, [r2, #0]
+ 8011966:	1a09      	subs	r1, r1, r0
+ 8011968:	f06f 4200 	mvn.w	r2, #2147483648	; 0x80000000
+ 801196c:	fbb3 f2f2 	udiv	r2, r3, r2
+ 8011970:	ebc2 72c2 	rsb	r2, r2, r2, lsl #31
+ 8011974:	3101      	adds	r1, #1
+ 8011976:	1a9b      	subs	r3, r3, r2
+ 8011978:	fb93 f2f1 	sdiv	r2, r3, r1
+ 801197c:	fb01 3312 	mls	r3, r1, r2, r3
+ 8011980:	4418      	add	r0, r3
+ 8011982:	bd30      	pop	{r4, r5, pc}
+ 8011984:	200008bc 	.word	0x200008bc
+ 8011988:	41c64e6d 	.word	0x41c64e6d
+
+0801198c <memcpy1>:
+ 801198c:	3801      	subs	r0, #1
+ 801198e:	440a      	add	r2, r1
+ 8011990:	4291      	cmp	r1, r2
+ 8011992:	d100      	bne.n	8011996 <memcpy1+0xa>
+ 8011994:	4770      	bx	lr
+ 8011996:	f811 3b01 	ldrb.w	r3, [r1], #1
+ 801199a:	f800 3f01 	strb.w	r3, [r0, #1]!
+ 801199e:	e7f7      	b.n	8011990 <memcpy1+0x4>
+
+080119a0 <memcpyr>:
+ 80119a0:	4410      	add	r0, r2
+ 80119a2:	440a      	add	r2, r1
+ 80119a4:	4291      	cmp	r1, r2
+ 80119a6:	d100      	bne.n	80119aa <memcpyr+0xa>
+ 80119a8:	4770      	bx	lr
+ 80119aa:	f811 3b01 	ldrb.w	r3, [r1], #1
+ 80119ae:	f800 3d01 	strb.w	r3, [r0, #-1]!
+ 80119b2:	e7f7      	b.n	80119a4 <memcpyr+0x4>
+
+080119b4 <memset1>:
+ 80119b4:	f002 bd20 	b.w	80143f8 <memset>
+
+080119b8 <Crc32>:
+ 80119b8:	b530      	push	{r4, r5, lr}
+ 80119ba:	b130      	cbz	r0, 80119ca <Crc32+0x12>
+ 80119bc:	4d0a      	ldr	r5, [pc, #40]	; (80119e8 <Crc32+0x30>)
+ 80119be:	4401      	add	r1, r0
+ 80119c0:	f04f 33ff 	mov.w	r3, #4294967295
+ 80119c4:	4281      	cmp	r1, r0
+ 80119c6:	d101      	bne.n	80119cc <Crc32+0x14>
+ 80119c8:	43d8      	mvns	r0, r3
+ 80119ca:	bd30      	pop	{r4, r5, pc}
+ 80119cc:	f810 2b01 	ldrb.w	r2, [r0], #1
+ 80119d0:	4053      	eors	r3, r2
+ 80119d2:	2208      	movs	r2, #8
+ 80119d4:	f343 0400 	sbfx	r4, r3, #0, #1
+ 80119d8:	3a01      	subs	r2, #1
+ 80119da:	402c      	ands	r4, r5
+ 80119dc:	b292      	uxth	r2, r2
+ 80119de:	ea84 0353 	eor.w	r3, r4, r3, lsr #1
+ 80119e2:	2a00      	cmp	r2, #0
+ 80119e4:	d1f6      	bne.n	80119d4 <Crc32+0x1c>
+ 80119e6:	e7ed      	b.n	80119c4 <Crc32+0xc>
+ 80119e8:	edb88320 	.word	0xedb88320
+
+080119ec <RadioCheckRfFrequency>:
+ 80119ec:	2001      	movs	r0, #1
+ 80119ee:	4770      	bx	lr
+
+080119f0 <RadioOnTxTimeoutIrq>:
+ 80119f0:	4b05      	ldr	r3, [pc, #20]	; (8011a08 <RadioOnTxTimeoutIrq+0x18>)
+ 80119f2:	f44f 5200 	mov.w	r2, #8192	; 0x2000
+ 80119f6:	629a      	str	r2, [r3, #40]	; 0x28
+ 80119f8:	4b04      	ldr	r3, [pc, #16]	; (8011a0c <RadioOnTxTimeoutIrq+0x1c>)
+ 80119fa:	681b      	ldr	r3, [r3, #0]
+ 80119fc:	b113      	cbz	r3, 8011a04 <RadioOnTxTimeoutIrq+0x14>
+ 80119fe:	685b      	ldr	r3, [r3, #4]
+ 8011a00:	b103      	cbz	r3, 8011a04 <RadioOnTxTimeoutIrq+0x14>
+ 8011a02:	4718      	bx	r3
+ 8011a04:	4770      	bx	lr
+ 8011a06:	bf00      	nop
+ 8011a08:	48000400 	.word	0x48000400
+ 8011a0c:	2000272c 	.word	0x2000272c
+
+08011a10 <RadioOnRxTimeoutIrq>:
+ 8011a10:	4b05      	ldr	r3, [pc, #20]	; (8011a28 <RadioOnRxTimeoutIrq+0x18>)
+ 8011a12:	f44f 5280 	mov.w	r2, #4096	; 0x1000
+ 8011a16:	629a      	str	r2, [r3, #40]	; 0x28
+ 8011a18:	4b04      	ldr	r3, [pc, #16]	; (8011a2c <RadioOnRxTimeoutIrq+0x1c>)
+ 8011a1a:	681b      	ldr	r3, [r3, #0]
+ 8011a1c:	b113      	cbz	r3, 8011a24 <RadioOnRxTimeoutIrq+0x14>
+ 8011a1e:	68db      	ldr	r3, [r3, #12]
+ 8011a20:	b103      	cbz	r3, 8011a24 <RadioOnRxTimeoutIrq+0x14>
+ 8011a22:	4718      	bx	r3
+ 8011a24:	4770      	bx	lr
+ 8011a26:	bf00      	nop
+ 8011a28:	48000400 	.word	0x48000400
+ 8011a2c:	2000272c 	.word	0x2000272c
+
+08011a30 <RadioLrFhssSetCfg>:
+ 8011a30:	2001      	movs	r0, #1
+ 8011a32:	4770      	bx	lr
+
+08011a34 <RadioLrFhssGetTimeOnAirInMs>:
+ 8011a34:	2001      	movs	r0, #1
+ 8011a36:	4770      	bx	lr
+
+08011a38 <RadioRead>:
+ 8011a38:	f001 b948 	b.w	8012ccc <SUBGRF_ReadRegister>
+
+08011a3c <RadioWrite>:
+ 8011a3c:	f001 b936 	b.w	8012cac <SUBGRF_WriteRegister>
+
+08011a40 <RadioTxCw>:
+ 8011a40:	b510      	push	{r4, lr}
+ 8011a42:	f001 fe19 	bl	8013678 <SUBGRF_SetRfTxPower>
+ 8011a46:	210e      	movs	r1, #14
+ 8011a48:	4604      	mov	r4, r0
+ 8011a4a:	f640 101f 	movw	r0, #2335	; 0x91f
+ 8011a4e:	f001 f92d 	bl	8012cac <SUBGRF_WriteRegister>
+ 8011a52:	4620      	mov	r0, r4
+ 8011a54:	2101      	movs	r1, #1
+ 8011a56:	f001 fdf9 	bl	801364c <SUBGRF_SetSwitch>
+ 8011a5a:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8011a5e:	f001 bad7 	b.w	8013010 <SUBGRF_SetTxContinuousWave>
+	...
+
+08011a64 <RadioSetRxDutyCycle>:
+ 8011a64:	b570      	push	{r4, r5, r6, lr}
+ 8011a66:	4e0c      	ldr	r6, [pc, #48]	; (8011a98 <RadioSetRxDutyCycle+0x34>)
+ 8011a68:	eb01 0340 	add.w	r3, r1, r0, lsl #1
+ 8011a6c:	460d      	mov	r5, r1
+ 8011a6e:	65b3      	str	r3, [r6, #88]	; 0x58
+ 8011a70:	f64f 71ff 	movw	r1, #65535	; 0xffff
+ 8011a74:	2300      	movs	r3, #0
+ 8011a76:	4604      	mov	r4, r0
+ 8011a78:	461a      	mov	r2, r3
+ 8011a7a:	4608      	mov	r0, r1
+ 8011a7c:	f001 fb5e 	bl	801313c <SUBGRF_SetDioIrqParams>
+ 8011a80:	f896 0056 	ldrb.w	r0, [r6, #86]	; 0x56
+ 8011a84:	2100      	movs	r1, #0
+ 8011a86:	f001 fde1 	bl	801364c <SUBGRF_SetSwitch>
+ 8011a8a:	4629      	mov	r1, r5
+ 8011a8c:	4620      	mov	r0, r4
+ 8011a8e:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
+ 8011a92:	f001 ba95 	b.w	8012fc0 <SUBGRF_SetRxDutyCycle>
+ 8011a96:	bf00      	nop
+ 8011a98:	20002748 	.word	0x20002748
+
+08011a9c <RadioRxBoosted>:
+ 8011a9c:	b510      	push	{r4, lr}
+ 8011a9e:	4604      	mov	r4, r0
+ 8011aa0:	f001 feaa 	bl	80137f8 <RFW_Is_Init>
+ 8011aa4:	2801      	cmp	r0, #1
+ 8011aa6:	d11c      	bne.n	8011ae2 <RadioRxBoosted+0x46>
+ 8011aa8:	f001 feae 	bl	8013808 <RFW_ReceiveInit>
+ 8011aac:	b134      	cbz	r4, 8011abc <RadioRxBoosted+0x20>
+ 8011aae:	4812      	ldr	r0, [pc, #72]	; (8011af8 <RadioRxBoosted+0x5c>)
+ 8011ab0:	4621      	mov	r1, r4
+ 8011ab2:	f002 fb17 	bl	80140e4 <UTIL_TIMER_SetPeriod>
+ 8011ab6:	4810      	ldr	r0, [pc, #64]	; (8011af8 <RadioRxBoosted+0x5c>)
+ 8011ab8:	f002 fada 	bl	8014070 <UTIL_TIMER_Start>
+ 8011abc:	4c0f      	ldr	r4, [pc, #60]	; (8011afc <RadioRxBoosted+0x60>)
+ 8011abe:	4b10      	ldr	r3, [pc, #64]	; (8011b00 <RadioRxBoosted+0x64>)
+ 8011ac0:	2100      	movs	r1, #0
+ 8011ac2:	f44f 5280 	mov.w	r2, #4096	; 0x1000
+ 8011ac6:	65a1      	str	r1, [r4, #88]	; 0x58
+ 8011ac8:	619a      	str	r2, [r3, #24]
+ 8011aca:	f894 0056 	ldrb.w	r0, [r4, #86]	; 0x56
+ 8011ace:	f001 fdbd 	bl	801364c <SUBGRF_SetSwitch>
+ 8011ad2:	7863      	ldrb	r3, [r4, #1]
+ 8011ad4:	b16b      	cbz	r3, 8011af2 <RadioRxBoosted+0x56>
+ 8011ad6:	f06f 407f 	mvn.w	r0, #4278190080	; 0xff000000
+ 8011ada:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8011ade:	f001 ba53 	b.w	8012f88 <SUBGRF_SetRxBoosted>
+ 8011ae2:	2300      	movs	r3, #0
+ 8011ae4:	f240 2162 	movw	r1, #610	; 0x262
+ 8011ae8:	461a      	mov	r2, r3
+ 8011aea:	4608      	mov	r0, r1
+ 8011aec:	f001 fb26 	bl	801313c <SUBGRF_SetDioIrqParams>
+ 8011af0:	e7dc      	b.n	8011aac <RadioRxBoosted+0x10>
+ 8011af2:	68a0      	ldr	r0, [r4, #8]
+ 8011af4:	0180      	lsls	r0, r0, #6
+ 8011af6:	e7f0      	b.n	8011ada <RadioRxBoosted+0x3e>
+ 8011af8:	20002730 	.word	0x20002730
+ 8011afc:	20002748 	.word	0x20002748
+ 8011b00:	48000400 	.word	0x48000400
+
+08011b04 <RadioStandby>:
+ 8011b04:	2000      	movs	r0, #0
+ 8011b06:	f001 b9bf 	b.w	8012e88 <SUBGRF_SetStandby>
+	...
+
+08011b0c <RadioGetStatus>:
+ 8011b0c:	b508      	push	{r3, lr}
+ 8011b0e:	f001 f8c7 	bl	8012ca0 <SUBGRF_GetOperatingMode>
+ 8011b12:	3804      	subs	r0, #4
+ 8011b14:	b2c0      	uxtb	r0, r0
+ 8011b16:	2803      	cmp	r0, #3
+ 8011b18:	bf96      	itet	ls
+ 8011b1a:	4b02      	ldrls	r3, [pc, #8]	; (8011b24 <RadioGetStatus+0x18>)
+ 8011b1c:	2000      	movhi	r0, #0
+ 8011b1e:	5c18      	ldrbls	r0, [r3, r0]
+ 8011b20:	bd08      	pop	{r3, pc}
+ 8011b22:	bf00      	nop
+ 8011b24:	080159ac 	.word	0x080159ac
+
+08011b28 <RadioGetWakeupTime>:
+ 8011b28:	b508      	push	{r3, lr}
+ 8011b2a:	f001 fdba 	bl	80136a2 <SUBGRF_GetRadioWakeUpTime>
+ 8011b2e:	3003      	adds	r0, #3
+ 8011b30:	bd08      	pop	{r3, pc}
+
+08011b32 <RadioReadRegisters>:
+ 8011b32:	f001 b949 	b.w	8012dc8 <SUBGRF_ReadRegisters>
+
+08011b36 <RadioWriteRegisters>:
+ 8011b36:	f001 b909 	b.w	8012d4c <SUBGRF_WriteRegisters>
+
+08011b3a <RadioRssi>:
+ 8011b3a:	b508      	push	{r3, lr}
+ 8011b3c:	f001 fd00 	bl	8013540 <SUBGRF_GetRssiInst>
+ 8011b40:	b200      	sxth	r0, r0
+ 8011b42:	bd08      	pop	{r3, pc}
+
+08011b44 <RadioSetTxContinuousWave>:
+ 8011b44:	b538      	push	{r3, r4, r5, lr}
+ 8011b46:	460d      	mov	r5, r1
+ 8011b48:	4614      	mov	r4, r2
+ 8011b4a:	f001 fb5d 	bl	8013208 <SUBGRF_SetRfFrequency>
+ 8011b4e:	4628      	mov	r0, r5
+ 8011b50:	f001 fd92 	bl	8013678 <SUBGRF_SetRfTxPower>
+ 8011b54:	210e      	movs	r1, #14
+ 8011b56:	4605      	mov	r5, r0
+ 8011b58:	f640 101f 	movw	r0, #2335	; 0x91f
+ 8011b5c:	f001 f8a6 	bl	8012cac <SUBGRF_WriteRegister>
+ 8011b60:	4628      	mov	r0, r5
+ 8011b62:	2101      	movs	r1, #1
+ 8011b64:	4d07      	ldr	r5, [pc, #28]	; (8011b84 <RadioSetTxContinuousWave+0x40>)
+ 8011b66:	f001 fd71 	bl	801364c <SUBGRF_SetSwitch>
+ 8011b6a:	f001 fa51 	bl	8013010 <SUBGRF_SetTxContinuousWave>
+ 8011b6e:	f44f 717a 	mov.w	r1, #1000	; 0x3e8
+ 8011b72:	4361      	muls	r1, r4
+ 8011b74:	4628      	mov	r0, r5
+ 8011b76:	f002 fab5 	bl	80140e4 <UTIL_TIMER_SetPeriod>
+ 8011b7a:	4628      	mov	r0, r5
+ 8011b7c:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
+ 8011b80:	f002 ba76 	b.w	8014070 <UTIL_TIMER_Start>
+ 8011b84:	200027a4 	.word	0x200027a4
+
+08011b88 <RadioSetChannel>:
+ 8011b88:	f001 bb3e 	b.w	8013208 <SUBGRF_SetRfFrequency>
+
+08011b8c <RadioStartCad>:
+ 8011b8c:	b508      	push	{r3, lr}
+ 8011b8e:	4b08      	ldr	r3, [pc, #32]	; (8011bb0 <RadioStartCad+0x24>)
+ 8011b90:	2100      	movs	r1, #0
+ 8011b92:	f893 0056 	ldrb.w	r0, [r3, #86]	; 0x56
+ 8011b96:	f001 fd59 	bl	801364c <SUBGRF_SetSwitch>
+ 8011b9a:	2300      	movs	r3, #0
+ 8011b9c:	f44f 71c0 	mov.w	r1, #384	; 0x180
+ 8011ba0:	461a      	mov	r2, r3
+ 8011ba2:	4608      	mov	r0, r1
+ 8011ba4:	f001 faca 	bl	801313c <SUBGRF_SetDioIrqParams>
+ 8011ba8:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 8011bac:	f001 ba24 	b.w	8012ff8 <SUBGRF_SetCad>
+ 8011bb0:	20002748 	.word	0x20002748
+
+08011bb4 <RadioRx>:
+ 8011bb4:	b510      	push	{r4, lr}
+ 8011bb6:	4604      	mov	r4, r0
+ 8011bb8:	f001 fe1e 	bl	80137f8 <RFW_Is_Init>
+ 8011bbc:	2801      	cmp	r0, #1
+ 8011bbe:	d11c      	bne.n	8011bfa <RadioRx+0x46>
+ 8011bc0:	f001 fe22 	bl	8013808 <RFW_ReceiveInit>
+ 8011bc4:	b134      	cbz	r4, 8011bd4 <RadioRx+0x20>
+ 8011bc6:	4812      	ldr	r0, [pc, #72]	; (8011c10 <RadioRx+0x5c>)
+ 8011bc8:	4621      	mov	r1, r4
+ 8011bca:	f002 fa8b 	bl	80140e4 <UTIL_TIMER_SetPeriod>
+ 8011bce:	4810      	ldr	r0, [pc, #64]	; (8011c10 <RadioRx+0x5c>)
+ 8011bd0:	f002 fa4e 	bl	8014070 <UTIL_TIMER_Start>
+ 8011bd4:	4c0f      	ldr	r4, [pc, #60]	; (8011c14 <RadioRx+0x60>)
+ 8011bd6:	4b10      	ldr	r3, [pc, #64]	; (8011c18 <RadioRx+0x64>)
+ 8011bd8:	2100      	movs	r1, #0
+ 8011bda:	f44f 5280 	mov.w	r2, #4096	; 0x1000
+ 8011bde:	65a1      	str	r1, [r4, #88]	; 0x58
+ 8011be0:	619a      	str	r2, [r3, #24]
+ 8011be2:	f894 0056 	ldrb.w	r0, [r4, #86]	; 0x56
+ 8011be6:	f001 fd31 	bl	801364c <SUBGRF_SetSwitch>
+ 8011bea:	7863      	ldrb	r3, [r4, #1]
+ 8011bec:	b16b      	cbz	r3, 8011c0a <RadioRx+0x56>
+ 8011bee:	f06f 407f 	mvn.w	r0, #4278190080	; 0xff000000
+ 8011bf2:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8011bf6:	f001 b97d 	b.w	8012ef4 <SUBGRF_SetRx>
+ 8011bfa:	2300      	movs	r3, #0
+ 8011bfc:	f240 2162 	movw	r1, #610	; 0x262
+ 8011c00:	461a      	mov	r2, r3
+ 8011c02:	4608      	mov	r0, r1
+ 8011c04:	f001 fa9a 	bl	801313c <SUBGRF_SetDioIrqParams>
+ 8011c08:	e7dc      	b.n	8011bc4 <RadioRx+0x10>
+ 8011c0a:	68a0      	ldr	r0, [r4, #8]
+ 8011c0c:	0180      	lsls	r0, r0, #6
+ 8011c0e:	e7f0      	b.n	8011bf2 <RadioRx+0x3e>
+ 8011c10:	20002730 	.word	0x20002730
+ 8011c14:	20002748 	.word	0x20002748
+ 8011c18:	48000400 	.word	0x48000400
+
+08011c1c <RadioSleep>:
+ 8011c1c:	b508      	push	{r3, lr}
+ 8011c1e:	f04f 0004 	mov.w	r0, #4
+ 8011c22:	f001 f917 	bl	8012e54 <SUBGRF_SetSleep>
+ 8011c26:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 8011c2a:	2002      	movs	r0, #2
+ 8011c2c:	f7f0 bfb8 	b.w	8002ba0 <HAL_Delay>
+
+08011c30 <RadioRandom>:
+ 8011c30:	b508      	push	{r3, lr}
+ 8011c32:	2300      	movs	r3, #0
+ 8011c34:	461a      	mov	r2, r3
+ 8011c36:	4619      	mov	r1, r3
+ 8011c38:	4618      	mov	r0, r3
+ 8011c3a:	f001 fa7f 	bl	801313c <SUBGRF_SetDioIrqParams>
+ 8011c3e:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 8011c42:	f001 b96d 	b.w	8012f20 <SUBGRF_GetRandom>
+	...
+
+08011c48 <RadioInit>:
+ 8011c48:	4b1d      	ldr	r3, [pc, #116]	; (8011cc0 <RadioInit+0x78>)
+ 8011c4a:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 8011c4c:	4d1d      	ldr	r5, [pc, #116]	; (8011cc4 <RadioInit+0x7c>)
+ 8011c4e:	6018      	str	r0, [r3, #0]
+ 8011c50:	2400      	movs	r4, #0
+ 8011c52:	481d      	ldr	r0, [pc, #116]	; (8011cc8 <RadioInit+0x80>)
+ 8011c54:	706c      	strb	r4, [r5, #1]
+ 8011c56:	e9c5 4401 	strd	r4, r4, [r5, #4]
+ 8011c5a:	65ac      	str	r4, [r5, #88]	; 0x58
+ 8011c5c:	f001 fa98 	bl	8013190 <SUBGRF_Init>
+ 8011c60:	81ac      	strh	r4, [r5, #12]
+ 8011c62:	f001 fa03 	bl	801306c <SUBGRF_SetRegulatorMode>
+ 8011c66:	4621      	mov	r1, r4
+ 8011c68:	4620      	mov	r0, r4
+ 8011c6a:	f001 fc4b 	bl	8013504 <SUBGRF_SetBufferBaseAddress>
+ 8011c6e:	4621      	mov	r1, r4
+ 8011c70:	2204      	movs	r2, #4
+ 8011c72:	2001      	movs	r0, #1
+ 8011c74:	f001 fafc 	bl	8013270 <SUBGRF_SetTxParams>
+ 8011c78:	4e14      	ldr	r6, [pc, #80]	; (8011ccc <RadioInit+0x84>)
+ 8011c7a:	4d15      	ldr	r5, [pc, #84]	; (8011cd0 <RadioInit+0x88>)
+ 8011c7c:	f64f 71ff 	movw	r1, #65535	; 0xffff
+ 8011c80:	4623      	mov	r3, r4
+ 8011c82:	4622      	mov	r2, r4
+ 8011c84:	4608      	mov	r0, r1
+ 8011c86:	f001 fa59 	bl	801313c <SUBGRF_SetDioIrqParams>
+ 8011c8a:	f7ff ffc7 	bl	8011c1c <RadioSleep>
+ 8011c8e:	4622      	mov	r2, r4
+ 8011c90:	4b10      	ldr	r3, [pc, #64]	; (8011cd4 <RadioInit+0x8c>)
+ 8011c92:	9400      	str	r4, [sp, #0]
+ 8011c94:	f04f 31ff 	mov.w	r1, #4294967295
+ 8011c98:	4630      	mov	r0, r6
+ 8011c9a:	f002 f93d 	bl	8013f18 <UTIL_TIMER_Create>
+ 8011c9e:	4b0e      	ldr	r3, [pc, #56]	; (8011cd8 <RadioInit+0x90>)
+ 8011ca0:	9400      	str	r4, [sp, #0]
+ 8011ca2:	4622      	mov	r2, r4
+ 8011ca4:	f04f 31ff 	mov.w	r1, #4294967295
+ 8011ca8:	4628      	mov	r0, r5
+ 8011caa:	f002 f935 	bl	8013f18 <UTIL_TIMER_Create>
+ 8011cae:	4630      	mov	r0, r6
+ 8011cb0:	f002 f990 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 8011cb4:	4628      	mov	r0, r5
+ 8011cb6:	b002      	add	sp, #8
+ 8011cb8:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
+ 8011cbc:	f002 b98a 	b.w	8013fd4 <UTIL_TIMER_Stop>
+ 8011cc0:	2000272c 	.word	0x2000272c
+ 8011cc4:	20002748 	.word	0x20002748
+ 8011cc8:	08012c91 	.word	0x08012c91
+ 8011ccc:	200027a4 	.word	0x200027a4
+ 8011cd0:	20002730 	.word	0x20002730
+ 8011cd4:	080119f1 	.word	0x080119f1
+ 8011cd8:	08011a11 	.word	0x08011a11
+
+08011cdc <RadioSetMaxPayloadLength>:
+ 8011cdc:	2801      	cmp	r0, #1
+ 8011cde:	4808      	ldr	r0, [pc, #32]	; (8011d00 <RadioSetMaxPayloadLength+0x24>)
+ 8011ce0:	d105      	bne.n	8011cee <RadioSetMaxPayloadLength+0x12>
+ 8011ce2:	4b08      	ldr	r3, [pc, #32]	; (8011d04 <RadioSetMaxPayloadLength+0x28>)
+ 8011ce4:	77c1      	strb	r1, [r0, #31]
+ 8011ce6:	7019      	strb	r1, [r3, #0]
+ 8011ce8:	300e      	adds	r0, #14
+ 8011cea:	f001 bba7 	b.w	801343c <SUBGRF_SetPacketParams>
+ 8011cee:	7d43      	ldrb	r3, [r0, #21]
+ 8011cf0:	2b01      	cmp	r3, #1
+ 8011cf2:	d103      	bne.n	8011cfc <RadioSetMaxPayloadLength+0x20>
+ 8011cf4:	4b03      	ldr	r3, [pc, #12]	; (8011d04 <RadioSetMaxPayloadLength+0x28>)
+ 8011cf6:	7581      	strb	r1, [r0, #22]
+ 8011cf8:	7019      	strb	r1, [r3, #0]
+ 8011cfa:	e7f5      	b.n	8011ce8 <RadioSetMaxPayloadLength+0xc>
+ 8011cfc:	4770      	bx	lr
+ 8011cfe:	bf00      	nop
+ 8011d00:	20002748 	.word	0x20002748
+ 8011d04:	200008c0 	.word	0x200008c0
+
+08011d08 <RadioSetPublicNetwork>:
+ 8011d08:	4b0d      	ldr	r3, [pc, #52]	; (8011d40 <RadioSetPublicNetwork+0x38>)
+ 8011d0a:	b510      	push	{r4, lr}
+ 8011d0c:	4604      	mov	r4, r0
+ 8011d0e:	7318      	strb	r0, [r3, #12]
+ 8011d10:	7358      	strb	r0, [r3, #13]
+ 8011d12:	2001      	movs	r0, #1
+ 8011d14:	f000 f816 	bl	8011d44 <RadioSetModem>
+ 8011d18:	b15c      	cbz	r4, 8011d32 <RadioSetPublicNetwork+0x2a>
+ 8011d1a:	2134      	movs	r1, #52	; 0x34
+ 8011d1c:	f44f 60e8 	mov.w	r0, #1856	; 0x740
+ 8011d20:	f000 ffc4 	bl	8012cac <SUBGRF_WriteRegister>
+ 8011d24:	2144      	movs	r1, #68	; 0x44
+ 8011d26:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8011d2a:	f240 7041 	movw	r0, #1857	; 0x741
+ 8011d2e:	f000 bfbd 	b.w	8012cac <SUBGRF_WriteRegister>
+ 8011d32:	2114      	movs	r1, #20
+ 8011d34:	f44f 60e8 	mov.w	r0, #1856	; 0x740
+ 8011d38:	f000 ffb8 	bl	8012cac <SUBGRF_WriteRegister>
+ 8011d3c:	2124      	movs	r1, #36	; 0x24
+ 8011d3e:	e7f2      	b.n	8011d26 <RadioSetPublicNetwork+0x1e>
+ 8011d40:	20002748 	.word	0x20002748
+
+08011d44 <RadioSetModem>:
+ 8011d44:	b538      	push	{r3, r4, r5, lr}
+ 8011d46:	4c11      	ldr	r4, [pc, #68]	; (8011d8c <RadioSetModem+0x48>)
+ 8011d48:	4605      	mov	r5, r0
+ 8011d4a:	7020      	strb	r0, [r4, #0]
+ 8011d4c:	f001 fd61 	bl	8013812 <RFW_SetRadioModem>
+ 8011d50:	2d05      	cmp	r5, #5
+ 8011d52:	d804      	bhi.n	8011d5e <RadioSetModem+0x1a>
+ 8011d54:	e8df f005 	tbb	[pc, r5]
+ 8011d58:	17030b09 	.word	0x17030b09
+ 8011d5c:	0917      	.short	0x0917
+ 8011d5e:	2003      	movs	r0, #3
+ 8011d60:	f001 fa70 	bl	8013244 <SUBGRF_SetPacketType>
+ 8011d64:	2300      	movs	r3, #0
+ 8011d66:	7363      	strb	r3, [r4, #13]
+ 8011d68:	bd38      	pop	{r3, r4, r5, pc}
+ 8011d6a:	2000      	movs	r0, #0
+ 8011d6c:	e7f8      	b.n	8011d60 <RadioSetModem+0x1c>
+ 8011d6e:	2001      	movs	r0, #1
+ 8011d70:	f001 fa68 	bl	8013244 <SUBGRF_SetPacketType>
+ 8011d74:	7b20      	ldrb	r0, [r4, #12]
+ 8011d76:	7b63      	ldrb	r3, [r4, #13]
+ 8011d78:	4283      	cmp	r3, r0
+ 8011d7a:	d0f5      	beq.n	8011d68 <RadioSetModem+0x24>
+ 8011d7c:	7360      	strb	r0, [r4, #13]
+ 8011d7e:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
+ 8011d82:	f7ff bfc1 	b.w	8011d08 <RadioSetPublicNetwork>
+ 8011d86:	2002      	movs	r0, #2
+ 8011d88:	e7ea      	b.n	8011d60 <RadioSetModem+0x1c>
+ 8011d8a:	bf00      	nop
+ 8011d8c:	20002748 	.word	0x20002748
+
+08011d90 <RadioSetTxGenericConfig>:
+ 8011d90:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
+ 8011d94:	461e      	mov	r6, r3
+ 8011d96:	b087      	sub	sp, #28
+ 8011d98:	2300      	movs	r3, #0
+ 8011d9a:	4605      	mov	r5, r0
+ 8011d9c:	e9cd 3301 	strd	r3, r3, [sp, #4]
+ 8011da0:	460c      	mov	r4, r1
+ 8011da2:	4617      	mov	r7, r2
+ 8011da4:	f001 fd27 	bl	80137f6 <RFW_DeInit>
+ 8011da8:	2d03      	cmp	r5, #3
+ 8011daa:	d861      	bhi.n	8011e70 <RadioSetTxGenericConfig+0xe0>
+ 8011dac:	e8df f015 	tbh	[pc, r5, lsl #1]
+ 8011db0:	00c3007b 	.word	0x00c3007b
+ 8011db4:	0004010e 	.word	0x0004010e
+ 8011db8:	7ca2      	ldrb	r2, [r4, #18]
+ 8011dba:	2a08      	cmp	r2, #8
+ 8011dbc:	d904      	bls.n	8011dc8 <RadioSetTxGenericConfig+0x38>
+ 8011dbe:	f04f 30ff 	mov.w	r0, #4294967295
+ 8011dc2:	b007      	add	sp, #28
+ 8011dc4:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
+ 8011dc8:	68a1      	ldr	r1, [r4, #8]
+ 8011dca:	a801      	add	r0, sp, #4
+ 8011dcc:	f001 fedc 	bl	8013b88 <UTIL_MEM_cpy_8>
+ 8011dd0:	6821      	ldr	r1, [r4, #0]
+ 8011dd2:	2900      	cmp	r1, #0
+ 8011dd4:	d0f3      	beq.n	8011dbe <RadioSetTxGenericConfig+0x2e>
+ 8011dd6:	f242 7210 	movw	r2, #10000	; 0x2710
+ 8011dda:	4291      	cmp	r1, r2
+ 8011ddc:	7ce3      	ldrb	r3, [r4, #19]
+ 8011dde:	4d86      	ldr	r5, [pc, #536]	; (8011ff8 <RadioSetTxGenericConfig+0x268>)
+ 8011de0:	d851      	bhi.n	8011e86 <RadioSetTxGenericConfig+0xf6>
+ 8011de2:	2203      	movs	r2, #3
+ 8011de4:	73aa      	strb	r2, [r5, #14]
+ 8011de6:	f885 2038 	strb.w	r2, [r5, #56]	; 0x38
+ 8011dea:	63e9      	str	r1, [r5, #60]	; 0x3c
+ 8011dec:	f885 3044 	strb.w	r3, [r5, #68]	; 0x44
+ 8011df0:	f04f 0802 	mov.w	r8, #2
+ 8011df4:	6863      	ldr	r3, [r4, #4]
+ 8011df6:	7da1      	ldrb	r1, [r4, #22]
+ 8011df8:	00db      	lsls	r3, r3, #3
+ 8011dfa:	822b      	strh	r3, [r5, #16]
+ 8011dfc:	2304      	movs	r3, #4
+ 8011dfe:	74ab      	strb	r3, [r5, #18]
+ 8011e00:	7ca3      	ldrb	r3, [r4, #18]
+ 8011e02:	00db      	lsls	r3, r3, #3
+ 8011e04:	74eb      	strb	r3, [r5, #19]
+ 8011e06:	2902      	cmp	r1, #2
+ 8011e08:	f04f 0300 	mov.w	r3, #0
+ 8011e0c:	752b      	strb	r3, [r5, #20]
+ 8011e0e:	7d63      	ldrb	r3, [r4, #21]
+ 8011e10:	d002      	beq.n	8011e18 <RadioSetTxGenericConfig+0x88>
+ 8011e12:	7d22      	ldrb	r2, [r4, #20]
+ 8011e14:	2a02      	cmp	r2, #2
+ 8011e16:	d142      	bne.n	8011e9e <RadioSetTxGenericConfig+0x10e>
+ 8011e18:	f103 020f 	add.w	r2, r3, #15
+ 8011e1c:	b2d2      	uxtb	r2, r2
+ 8011e1e:	2a01      	cmp	r2, #1
+ 8011e20:	d901      	bls.n	8011e26 <RadioSetTxGenericConfig+0x96>
+ 8011e22:	2b01      	cmp	r3, #1
+ 8011e24:	d1cb      	bne.n	8011dbe <RadioSetTxGenericConfig+0x2e>
+ 8011e26:	4b75      	ldr	r3, [pc, #468]	; (8011ffc <RadioSetTxGenericConfig+0x26c>)
+ 8011e28:	4a75      	ldr	r2, [pc, #468]	; (8012000 <RadioSetTxGenericConfig+0x270>)
+ 8011e2a:	6819      	ldr	r1, [r3, #0]
+ 8011e2c:	9403      	str	r4, [sp, #12]
+ 8011e2e:	f04f 0901 	mov.w	r9, #1
+ 8011e32:	a803      	add	r0, sp, #12
+ 8011e34:	f88d 9014 	strb.w	r9, [sp, #20]
+ 8011e38:	f001 fcda 	bl	80137f0 <RFW_Init>
+ 8011e3c:	2800      	cmp	r0, #0
+ 8011e3e:	d1be      	bne.n	8011dbe <RadioSetTxGenericConfig+0x2e>
+ 8011e40:	7628      	strb	r0, [r5, #24]
+ 8011e42:	f885 9017 	strb.w	r9, [r5, #23]
+ 8011e46:	7568      	strb	r0, [r5, #21]
+ 8011e48:	f7ff fe5c 	bl	8011b04 <RadioStandby>
+ 8011e4c:	4640      	mov	r0, r8
+ 8011e4e:	f7ff ff79 	bl	8011d44 <RadioSetModem>
+ 8011e52:	486c      	ldr	r0, [pc, #432]	; (8012004 <RadioSetTxGenericConfig+0x274>)
+ 8011e54:	f001 fa86 	bl	8013364 <SUBGRF_SetModulationParams>
+ 8011e58:	486b      	ldr	r0, [pc, #428]	; (8012008 <RadioSetTxGenericConfig+0x278>)
+ 8011e5a:	f001 faef 	bl	801343c <SUBGRF_SetPacketParams>
+ 8011e5e:	a801      	add	r0, sp, #4
+ 8011e60:	f000 ff84 	bl	8012d6c <SUBGRF_SetSyncWord>
+ 8011e64:	8a20      	ldrh	r0, [r4, #16]
+ 8011e66:	f000 ff55 	bl	8012d14 <SUBGRF_SetWhiteningSeed>
+ 8011e6a:	89a0      	ldrh	r0, [r4, #12]
+ 8011e6c:	f000 ff9a 	bl	8012da4 <SUBGRF_SetCrcPolynomial>
+ 8011e70:	4638      	mov	r0, r7
+ 8011e72:	f001 fc01 	bl	8013678 <SUBGRF_SetRfTxPower>
+ 8011e76:	4c60      	ldr	r4, [pc, #384]	; (8011ff8 <RadioSetTxGenericConfig+0x268>)
+ 8011e78:	f884 0056 	strb.w	r0, [r4, #86]	; 0x56
+ 8011e7c:	f001 fcc0 	bl	8013800 <RFW_SetAntSwitch>
+ 8011e80:	6066      	str	r6, [r4, #4]
+ 8011e82:	2000      	movs	r0, #0
+ 8011e84:	e79d      	b.n	8011dc2 <RadioSetTxGenericConfig+0x32>
+ 8011e86:	f04f 0800 	mov.w	r8, #0
+ 8011e8a:	63e9      	str	r1, [r5, #60]	; 0x3c
+ 8011e8c:	0889      	lsrs	r1, r1, #2
+ 8011e8e:	f885 800e 	strb.w	r8, [r5, #14]
+ 8011e92:	f885 8038 	strb.w	r8, [r5, #56]	; 0x38
+ 8011e96:	f885 3044 	strb.w	r3, [r5, #68]	; 0x44
+ 8011e9a:	6429      	str	r1, [r5, #64]	; 0x40
+ 8011e9c:	e7aa      	b.n	8011df4 <RadioSetTxGenericConfig+0x64>
+ 8011e9e:	75eb      	strb	r3, [r5, #23]
+ 8011ea0:	7629      	strb	r1, [r5, #24]
+ 8011ea2:	756a      	strb	r2, [r5, #21]
+ 8011ea4:	e7d0      	b.n	8011e48 <RadioSetTxGenericConfig+0xb8>
+ 8011ea6:	6823      	ldr	r3, [r4, #0]
+ 8011ea8:	2b00      	cmp	r3, #0
+ 8011eaa:	d088      	beq.n	8011dbe <RadioSetTxGenericConfig+0x2e>
+ 8011eac:	7ca2      	ldrb	r2, [r4, #18]
+ 8011eae:	2a08      	cmp	r2, #8
+ 8011eb0:	d885      	bhi.n	8011dbe <RadioSetTxGenericConfig+0x2e>
+ 8011eb2:	4d51      	ldr	r5, [pc, #324]	; (8011ff8 <RadioSetTxGenericConfig+0x268>)
+ 8011eb4:	68a1      	ldr	r1, [r4, #8]
+ 8011eb6:	a801      	add	r0, sp, #4
+ 8011eb8:	f001 fe66 	bl	8013b88 <UTIL_MEM_cpy_8>
+ 8011ebc:	2300      	movs	r3, #0
+ 8011ebe:	f885 3038 	strb.w	r3, [r5, #56]	; 0x38
+ 8011ec2:	6822      	ldr	r2, [r4, #0]
+ 8011ec4:	63ea      	str	r2, [r5, #60]	; 0x3c
+ 8011ec6:	7ce2      	ldrb	r2, [r4, #19]
+ 8011ec8:	f885 2044 	strb.w	r2, [r5, #68]	; 0x44
+ 8011ecc:	69a2      	ldr	r2, [r4, #24]
+ 8011ece:	73ab      	strb	r3, [r5, #14]
+ 8011ed0:	642a      	str	r2, [r5, #64]	; 0x40
+ 8011ed2:	6862      	ldr	r2, [r4, #4]
+ 8011ed4:	7da1      	ldrb	r1, [r4, #22]
+ 8011ed6:	00d2      	lsls	r2, r2, #3
+ 8011ed8:	822a      	strh	r2, [r5, #16]
+ 8011eda:	2204      	movs	r2, #4
+ 8011edc:	74aa      	strb	r2, [r5, #18]
+ 8011ede:	7ca2      	ldrb	r2, [r4, #18]
+ 8011ee0:	752b      	strb	r3, [r5, #20]
+ 8011ee2:	00d2      	lsls	r2, r2, #3
+ 8011ee4:	2902      	cmp	r1, #2
+ 8011ee6:	7d63      	ldrb	r3, [r4, #21]
+ 8011ee8:	74ea      	strb	r2, [r5, #19]
+ 8011eea:	d002      	beq.n	8011ef2 <RadioSetTxGenericConfig+0x162>
+ 8011eec:	7d22      	ldrb	r2, [r4, #20]
+ 8011eee:	2a02      	cmp	r2, #2
+ 8011ef0:	d11d      	bne.n	8011f2e <RadioSetTxGenericConfig+0x19e>
+ 8011ef2:	f103 020f 	add.w	r2, r3, #15
+ 8011ef6:	b2d2      	uxtb	r2, r2
+ 8011ef8:	2a01      	cmp	r2, #1
+ 8011efa:	d902      	bls.n	8011f02 <RadioSetTxGenericConfig+0x172>
+ 8011efc:	2b01      	cmp	r3, #1
+ 8011efe:	f47f af5e 	bne.w	8011dbe <RadioSetTxGenericConfig+0x2e>
+ 8011f02:	4b3e      	ldr	r3, [pc, #248]	; (8011ffc <RadioSetTxGenericConfig+0x26c>)
+ 8011f04:	4a3e      	ldr	r2, [pc, #248]	; (8012000 <RadioSetTxGenericConfig+0x270>)
+ 8011f06:	6819      	ldr	r1, [r3, #0]
+ 8011f08:	9403      	str	r4, [sp, #12]
+ 8011f0a:	f04f 0801 	mov.w	r8, #1
+ 8011f0e:	a803      	add	r0, sp, #12
+ 8011f10:	f88d 8014 	strb.w	r8, [sp, #20]
+ 8011f14:	f001 fc6c 	bl	80137f0 <RFW_Init>
+ 8011f18:	2800      	cmp	r0, #0
+ 8011f1a:	f47f af50 	bne.w	8011dbe <RadioSetTxGenericConfig+0x2e>
+ 8011f1e:	7628      	strb	r0, [r5, #24]
+ 8011f20:	f885 8017 	strb.w	r8, [r5, #23]
+ 8011f24:	7568      	strb	r0, [r5, #21]
+ 8011f26:	f7ff fded 	bl	8011b04 <RadioStandby>
+ 8011f2a:	2000      	movs	r0, #0
+ 8011f2c:	e78f      	b.n	8011e4e <RadioSetTxGenericConfig+0xbe>
+ 8011f2e:	75eb      	strb	r3, [r5, #23]
+ 8011f30:	7629      	strb	r1, [r5, #24]
+ 8011f32:	756a      	strb	r2, [r5, #21]
+ 8011f34:	e7f7      	b.n	8011f26 <RadioSetTxGenericConfig+0x196>
+ 8011f36:	4d30      	ldr	r5, [pc, #192]	; (8011ff8 <RadioSetTxGenericConfig+0x268>)
+ 8011f38:	2101      	movs	r1, #1
+ 8011f3a:	f885 1038 	strb.w	r1, [r5, #56]	; 0x38
+ 8011f3e:	7822      	ldrb	r2, [r4, #0]
+ 8011f40:	f885 2050 	strb.w	r2, [r5, #80]	; 0x50
+ 8011f44:	7863      	ldrb	r3, [r4, #1]
+ 8011f46:	f885 3051 	strb.w	r3, [r5, #81]	; 0x51
+ 8011f4a:	78a3      	ldrb	r3, [r4, #2]
+ 8011f4c:	f885 3052 	strb.w	r3, [r5, #82]	; 0x52
+ 8011f50:	78e3      	ldrb	r3, [r4, #3]
+ 8011f52:	428b      	cmp	r3, r1
+ 8011f54:	d002      	beq.n	8011f5c <RadioSetTxGenericConfig+0x1cc>
+ 8011f56:	2b02      	cmp	r3, #2
+ 8011f58:	d003      	beq.n	8011f62 <RadioSetTxGenericConfig+0x1d2>
+ 8011f5a:	b93b      	cbnz	r3, 8011f6c <RadioSetTxGenericConfig+0x1dc>
+ 8011f5c:	f885 3053 	strb.w	r3, [r5, #83]	; 0x53
+ 8011f60:	e004      	b.n	8011f6c <RadioSetTxGenericConfig+0x1dc>
+ 8011f62:	3a0b      	subs	r2, #11
+ 8011f64:	2a01      	cmp	r2, #1
+ 8011f66:	d829      	bhi.n	8011fbc <RadioSetTxGenericConfig+0x22c>
+ 8011f68:	f885 1053 	strb.w	r1, [r5, #83]	; 0x53
+ 8011f6c:	f04f 0801 	mov.w	r8, #1
+ 8011f70:	f885 800e 	strb.w	r8, [r5, #14]
+ 8011f74:	88a3      	ldrh	r3, [r4, #4]
+ 8011f76:	83ab      	strh	r3, [r5, #28]
+ 8011f78:	79a3      	ldrb	r3, [r4, #6]
+ 8011f7a:	77ab      	strb	r3, [r5, #30]
+ 8011f7c:	79e3      	ldrb	r3, [r4, #7]
+ 8011f7e:	f885 3020 	strb.w	r3, [r5, #32]
+ 8011f82:	7a23      	ldrb	r3, [r4, #8]
+ 8011f84:	f885 3021 	strb.w	r3, [r5, #33]	; 0x21
+ 8011f88:	f7ff fdbc 	bl	8011b04 <RadioStandby>
+ 8011f8c:	4640      	mov	r0, r8
+ 8011f8e:	f7ff fed9 	bl	8011d44 <RadioSetModem>
+ 8011f92:	481c      	ldr	r0, [pc, #112]	; (8012004 <RadioSetTxGenericConfig+0x274>)
+ 8011f94:	f001 f9e6 	bl	8013364 <SUBGRF_SetModulationParams>
+ 8011f98:	481b      	ldr	r0, [pc, #108]	; (8012008 <RadioSetTxGenericConfig+0x278>)
+ 8011f9a:	f001 fa4f 	bl	801343c <SUBGRF_SetPacketParams>
+ 8011f9e:	f895 3051 	ldrb.w	r3, [r5, #81]	; 0x51
+ 8011fa2:	2b06      	cmp	r3, #6
+ 8011fa4:	f640 0089 	movw	r0, #2185	; 0x889
+ 8011fa8:	d10a      	bne.n	8011fc0 <RadioSetTxGenericConfig+0x230>
+ 8011faa:	f000 fe8f 	bl	8012ccc <SUBGRF_ReadRegister>
+ 8011fae:	f000 01fb 	and.w	r1, r0, #251	; 0xfb
+ 8011fb2:	f640 0089 	movw	r0, #2185	; 0x889
+ 8011fb6:	f000 fe79 	bl	8012cac <SUBGRF_WriteRegister>
+ 8011fba:	e759      	b.n	8011e70 <RadioSetTxGenericConfig+0xe0>
+ 8011fbc:	2300      	movs	r3, #0
+ 8011fbe:	e7cd      	b.n	8011f5c <RadioSetTxGenericConfig+0x1cc>
+ 8011fc0:	f000 fe84 	bl	8012ccc <SUBGRF_ReadRegister>
+ 8011fc4:	f040 0104 	orr.w	r1, r0, #4
+ 8011fc8:	b2c9      	uxtb	r1, r1
+ 8011fca:	e7f2      	b.n	8011fb2 <RadioSetTxGenericConfig+0x222>
+ 8011fcc:	6823      	ldr	r3, [r4, #0]
+ 8011fce:	3b01      	subs	r3, #1
+ 8011fd0:	f5b3 7f7a 	cmp.w	r3, #1000	; 0x3e8
+ 8011fd4:	f4bf aef3 	bcs.w	8011dbe <RadioSetTxGenericConfig+0x2e>
+ 8011fd8:	2003      	movs	r0, #3
+ 8011fda:	f7ff feb3 	bl	8011d44 <RadioSetModem>
+ 8011fde:	4806      	ldr	r0, [pc, #24]	; (8011ff8 <RadioSetTxGenericConfig+0x268>)
+ 8011fe0:	2302      	movs	r3, #2
+ 8011fe2:	f880 3038 	strb.w	r3, [r0, #56]	; 0x38
+ 8011fe6:	6823      	ldr	r3, [r4, #0]
+ 8011fe8:	6483      	str	r3, [r0, #72]	; 0x48
+ 8011fea:	2316      	movs	r3, #22
+ 8011fec:	f880 304c 	strb.w	r3, [r0, #76]	; 0x4c
+ 8011ff0:	3038      	adds	r0, #56	; 0x38
+ 8011ff2:	f001 f9b7 	bl	8013364 <SUBGRF_SetModulationParams>
+ 8011ff6:	e73b      	b.n	8011e70 <RadioSetTxGenericConfig+0xe0>
+ 8011ff8:	20002748 	.word	0x20002748
+ 8011ffc:	2000272c 	.word	0x2000272c
+ 8012000:	200027a4 	.word	0x200027a4
+ 8012004:	20002780 	.word	0x20002780
+ 8012008:	20002756 	.word	0x20002756
+
+0801200c <RadioSetRxGenericConfig>:
+ 801200c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8012010:	2600      	movs	r6, #0
+ 8012012:	b086      	sub	sp, #24
+ 8012014:	461f      	mov	r7, r3
+ 8012016:	4614      	mov	r4, r2
+ 8012018:	e9cd 6601 	strd	r6, r6, [sp, #4]
+ 801201c:	4680      	mov	r8, r0
+ 801201e:	460d      	mov	r5, r1
+ 8012020:	f001 fbe9 	bl	80137f6 <RFW_DeInit>
+ 8012024:	42b4      	cmp	r4, r6
+ 8012026:	4c76      	ldr	r4, [pc, #472]	; (8012200 <RadioSetRxGenericConfig+0x1f4>)
+ 8012028:	bf16      	itet	ne
+ 801202a:	2301      	movne	r3, #1
+ 801202c:	4633      	moveq	r3, r6
+ 801202e:	4637      	movne	r7, r6
+ 8012030:	7063      	strb	r3, [r4, #1]
+ 8012032:	f1b8 0f00 	cmp.w	r8, #0
+ 8012036:	d006      	beq.n	8012046 <RadioSetRxGenericConfig+0x3a>
+ 8012038:	f1b8 0f01 	cmp.w	r8, #1
+ 801203c:	d07c      	beq.n	8012138 <RadioSetRxGenericConfig+0x12c>
+ 801203e:	2000      	movs	r0, #0
+ 8012040:	b006      	add	sp, #24
+ 8012042:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 8012046:	68ab      	ldr	r3, [r5, #8]
+ 8012048:	2b00      	cmp	r3, #0
+ 801204a:	f000 80d6 	beq.w	80121fa <RadioSetRxGenericConfig+0x1ee>
+ 801204e:	68eb      	ldr	r3, [r5, #12]
+ 8012050:	2b00      	cmp	r3, #0
+ 8012052:	f000 80d2 	beq.w	80121fa <RadioSetRxGenericConfig+0x1ee>
+ 8012056:	7faa      	ldrb	r2, [r5, #30]
+ 8012058:	2a08      	cmp	r2, #8
+ 801205a:	f200 80ce 	bhi.w	80121fa <RadioSetRxGenericConfig+0x1ee>
+ 801205e:	6929      	ldr	r1, [r5, #16]
+ 8012060:	a801      	add	r0, sp, #4
+ 8012062:	f001 fd91 	bl	8013b88 <UTIL_MEM_cpy_8>
+ 8012066:	6828      	ldr	r0, [r5, #0]
+ 8012068:	3800      	subs	r0, #0
+ 801206a:	bf18      	it	ne
+ 801206c:	2001      	movne	r0, #1
+ 801206e:	f000 ffd9 	bl	8013024 <SUBGRF_SetStopRxTimerOnPreambleDetect>
+ 8012072:	f884 8038 	strb.w	r8, [r4, #56]	; 0x38
+ 8012076:	68ab      	ldr	r3, [r5, #8]
+ 8012078:	63e3      	str	r3, [r4, #60]	; 0x3c
+ 801207a:	f895 3020 	ldrb.w	r3, [r5, #32]
+ 801207e:	f884 3044 	strb.w	r3, [r4, #68]	; 0x44
+ 8012082:	6868      	ldr	r0, [r5, #4]
+ 8012084:	f001 fb5a 	bl	801373c <SUBGRF_GetFskBandwidthRegValue>
+ 8012088:	f884 800e 	strb.w	r8, [r4, #14]
+ 801208c:	f884 0045 	strb.w	r0, [r4, #69]	; 0x45
+ 8012090:	68eb      	ldr	r3, [r5, #12]
+ 8012092:	00db      	lsls	r3, r3, #3
+ 8012094:	8223      	strh	r3, [r4, #16]
+ 8012096:	7feb      	ldrb	r3, [r5, #31]
+ 8012098:	74a3      	strb	r3, [r4, #18]
+ 801209a:	7fab      	ldrb	r3, [r5, #30]
+ 801209c:	00db      	lsls	r3, r3, #3
+ 801209e:	74e3      	strb	r3, [r4, #19]
+ 80120a0:	f895 3021 	ldrb.w	r3, [r5, #33]	; 0x21
+ 80120a4:	7523      	strb	r3, [r4, #20]
+ 80120a6:	f895 3022 	ldrb.w	r3, [r5, #34]	; 0x22
+ 80120aa:	2b00      	cmp	r3, #0
+ 80120ac:	d13e      	bne.n	801212c <RadioSetRxGenericConfig+0x120>
+ 80120ae:	7d2a      	ldrb	r2, [r5, #20]
+ 80120b0:	f895 1024 	ldrb.w	r1, [r5, #36]	; 0x24
+ 80120b4:	75a2      	strb	r2, [r4, #22]
+ 80120b6:	2902      	cmp	r1, #2
+ 80120b8:	f895 2023 	ldrb.w	r2, [r5, #35]	; 0x23
+ 80120bc:	d001      	beq.n	80120c2 <RadioSetRxGenericConfig+0xb6>
+ 80120be:	2b02      	cmp	r3, #2
+ 80120c0:	d136      	bne.n	8012130 <RadioSetRxGenericConfig+0x124>
+ 80120c2:	f102 030f 	add.w	r3, r2, #15
+ 80120c6:	b2db      	uxtb	r3, r3
+ 80120c8:	2b01      	cmp	r3, #1
+ 80120ca:	d902      	bls.n	80120d2 <RadioSetRxGenericConfig+0xc6>
+ 80120cc:	2a01      	cmp	r2, #1
+ 80120ce:	f040 8094 	bne.w	80121fa <RadioSetRxGenericConfig+0x1ee>
+ 80120d2:	2300      	movs	r3, #0
+ 80120d4:	f88d 3014 	strb.w	r3, [sp, #20]
+ 80120d8:	4b4a      	ldr	r3, [pc, #296]	; (8012204 <RadioSetRxGenericConfig+0x1f8>)
+ 80120da:	4a4b      	ldr	r2, [pc, #300]	; (8012208 <RadioSetRxGenericConfig+0x1fc>)
+ 80120dc:	6819      	ldr	r1, [r3, #0]
+ 80120de:	9504      	str	r5, [sp, #16]
+ 80120e0:	a803      	add	r0, sp, #12
+ 80120e2:	f001 fb85 	bl	80137f0 <RFW_Init>
+ 80120e6:	2800      	cmp	r0, #0
+ 80120e8:	f040 8087 	bne.w	80121fa <RadioSetRxGenericConfig+0x1ee>
+ 80120ec:	2301      	movs	r3, #1
+ 80120ee:	7620      	strb	r0, [r4, #24]
+ 80120f0:	75e3      	strb	r3, [r4, #23]
+ 80120f2:	7560      	strb	r0, [r4, #21]
+ 80120f4:	f7ff fd06 	bl	8011b04 <RadioStandby>
+ 80120f8:	2000      	movs	r0, #0
+ 80120fa:	f7ff fe23 	bl	8011d44 <RadioSetModem>
+ 80120fe:	4843      	ldr	r0, [pc, #268]	; (801220c <RadioSetRxGenericConfig+0x200>)
+ 8012100:	f001 f930 	bl	8013364 <SUBGRF_SetModulationParams>
+ 8012104:	4842      	ldr	r0, [pc, #264]	; (8012210 <RadioSetRxGenericConfig+0x204>)
+ 8012106:	f001 f999 	bl	801343c <SUBGRF_SetPacketParams>
+ 801210a:	a801      	add	r0, sp, #4
+ 801210c:	f000 fe2e 	bl	8012d6c <SUBGRF_SetSyncWord>
+ 8012110:	8ba8      	ldrh	r0, [r5, #28]
+ 8012112:	f000 fdff 	bl	8012d14 <SUBGRF_SetWhiteningSeed>
+ 8012116:	8b28      	ldrh	r0, [r5, #24]
+ 8012118:	f000 fe44 	bl	8012da4 <SUBGRF_SetCrcPolynomial>
+ 801211c:	f44f 53fa 	mov.w	r3, #8000	; 0x1f40
+ 8012120:	68aa      	ldr	r2, [r5, #8]
+ 8012122:	437b      	muls	r3, r7
+ 8012124:	fbb3 f3f2 	udiv	r3, r3, r2
+ 8012128:	60a3      	str	r3, [r4, #8]
+ 801212a:	e788      	b.n	801203e <RadioSetRxGenericConfig+0x32>
+ 801212c:	22ff      	movs	r2, #255	; 0xff
+ 801212e:	e7bf      	b.n	80120b0 <RadioSetRxGenericConfig+0xa4>
+ 8012130:	75e2      	strb	r2, [r4, #23]
+ 8012132:	7621      	strb	r1, [r4, #24]
+ 8012134:	7563      	strb	r3, [r4, #21]
+ 8012136:	e7dd      	b.n	80120f4 <RadioSetRxGenericConfig+0xe8>
+ 8012138:	8e2b      	ldrh	r3, [r5, #48]	; 0x30
+ 801213a:	2b00      	cmp	r3, #0
+ 801213c:	d05d      	beq.n	80121fa <RadioSetRxGenericConfig+0x1ee>
+ 801213e:	f895 3032 	ldrb.w	r3, [r5, #50]	; 0x32
+ 8012142:	6aa8      	ldr	r0, [r5, #40]	; 0x28
+ 8012144:	2b01      	cmp	r3, #1
+ 8012146:	bf0c      	ite	eq
+ 8012148:	f895 8014 	ldrbeq.w	r8, [r5, #20]
+ 801214c:	f04f 08ff 	movne.w	r8, #255	; 0xff
+ 8012150:	3800      	subs	r0, #0
+ 8012152:	bf18      	it	ne
+ 8012154:	2001      	movne	r0, #1
+ 8012156:	f000 ff65 	bl	8013024 <SUBGRF_SetStopRxTimerOnPreambleDetect>
+ 801215a:	b2f8      	uxtb	r0, r7
+ 801215c:	f000 ff6e 	bl	801303c <SUBGRF_SetLoRaSymbNumTimeout>
+ 8012160:	2101      	movs	r1, #1
+ 8012162:	f884 1038 	strb.w	r1, [r4, #56]	; 0x38
+ 8012166:	f895 202c 	ldrb.w	r2, [r5, #44]	; 0x2c
+ 801216a:	f884 2050 	strb.w	r2, [r4, #80]	; 0x50
+ 801216e:	f895 302d 	ldrb.w	r3, [r5, #45]	; 0x2d
+ 8012172:	f884 3051 	strb.w	r3, [r4, #81]	; 0x51
+ 8012176:	f895 302e 	ldrb.w	r3, [r5, #46]	; 0x2e
+ 801217a:	f884 3052 	strb.w	r3, [r4, #82]	; 0x52
+ 801217e:	f895 302f 	ldrb.w	r3, [r5, #47]	; 0x2f
+ 8012182:	428b      	cmp	r3, r1
+ 8012184:	d002      	beq.n	801218c <RadioSetRxGenericConfig+0x180>
+ 8012186:	2b02      	cmp	r3, #2
+ 8012188:	d003      	beq.n	8012192 <RadioSetRxGenericConfig+0x186>
+ 801218a:	b93b      	cbnz	r3, 801219c <RadioSetRxGenericConfig+0x190>
+ 801218c:	f884 3053 	strb.w	r3, [r4, #83]	; 0x53
+ 8012190:	e004      	b.n	801219c <RadioSetRxGenericConfig+0x190>
+ 8012192:	3a0b      	subs	r2, #11
+ 8012194:	2a01      	cmp	r2, #1
+ 8012196:	d828      	bhi.n	80121ea <RadioSetRxGenericConfig+0x1de>
+ 8012198:	f884 1053 	strb.w	r1, [r4, #83]	; 0x53
+ 801219c:	8e2b      	ldrh	r3, [r5, #48]	; 0x30
+ 801219e:	83a3      	strh	r3, [r4, #28]
+ 80121a0:	f895 3032 	ldrb.w	r3, [r5, #50]	; 0x32
+ 80121a4:	77a3      	strb	r3, [r4, #30]
+ 80121a6:	8eab      	ldrh	r3, [r5, #52]	; 0x34
+ 80121a8:	8423      	strh	r3, [r4, #32]
+ 80121aa:	2601      	movs	r6, #1
+ 80121ac:	73a6      	strb	r6, [r4, #14]
+ 80121ae:	f884 801f 	strb.w	r8, [r4, #31]
+ 80121b2:	f7ff fca7 	bl	8011b04 <RadioStandby>
+ 80121b6:	4630      	mov	r0, r6
+ 80121b8:	f7ff fdc4 	bl	8011d44 <RadioSetModem>
+ 80121bc:	4813      	ldr	r0, [pc, #76]	; (801220c <RadioSetRxGenericConfig+0x200>)
+ 80121be:	f001 f8d1 	bl	8013364 <SUBGRF_SetModulationParams>
+ 80121c2:	4813      	ldr	r0, [pc, #76]	; (8012210 <RadioSetRxGenericConfig+0x204>)
+ 80121c4:	f001 f93a 	bl	801343c <SUBGRF_SetPacketParams>
+ 80121c8:	f894 3021 	ldrb.w	r3, [r4, #33]	; 0x21
+ 80121cc:	42b3      	cmp	r3, r6
+ 80121ce:	f240 7036 	movw	r0, #1846	; 0x736
+ 80121d2:	d10c      	bne.n	80121ee <RadioSetRxGenericConfig+0x1e2>
+ 80121d4:	f000 fd7a 	bl	8012ccc <SUBGRF_ReadRegister>
+ 80121d8:	f000 01fb 	and.w	r1, r0, #251	; 0xfb
+ 80121dc:	f240 7036 	movw	r0, #1846	; 0x736
+ 80121e0:	f000 fd64 	bl	8012cac <SUBGRF_WriteRegister>
+ 80121e4:	f64f 73ff 	movw	r3, #65535	; 0xffff
+ 80121e8:	e79e      	b.n	8012128 <RadioSetRxGenericConfig+0x11c>
+ 80121ea:	2300      	movs	r3, #0
+ 80121ec:	e7ce      	b.n	801218c <RadioSetRxGenericConfig+0x180>
+ 80121ee:	f000 fd6d 	bl	8012ccc <SUBGRF_ReadRegister>
+ 80121f2:	f040 0104 	orr.w	r1, r0, #4
+ 80121f6:	b2c9      	uxtb	r1, r1
+ 80121f8:	e7f0      	b.n	80121dc <RadioSetRxGenericConfig+0x1d0>
+ 80121fa:	f04f 30ff 	mov.w	r0, #4294967295
+ 80121fe:	e71f      	b.n	8012040 <RadioSetRxGenericConfig+0x34>
+ 8012200:	20002748 	.word	0x20002748
+ 8012204:	2000272c 	.word	0x2000272c
+ 8012208:	20002730 	.word	0x20002730
+ 801220c:	20002780 	.word	0x20002780
+ 8012210:	20002756 	.word	0x20002756
+
+08012214 <RadioSetTxConfig>:
+ 8012214:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8012218:	b085      	sub	sp, #20
+ 801221a:	4682      	mov	sl, r0
+ 801221c:	9d0e      	ldr	r5, [sp, #56]	; 0x38
+ 801221e:	f8bd b040 	ldrh.w	fp, [sp, #64]	; 0x40
+ 8012222:	f89d 7044 	ldrb.w	r7, [sp, #68]	; 0x44
+ 8012226:	f89d 9048 	ldrb.w	r9, [sp, #72]	; 0x48
+ 801222a:	9201      	str	r2, [sp, #4]
+ 801222c:	4688      	mov	r8, r1
+ 801222e:	461e      	mov	r6, r3
+ 8012230:	f001 fae1 	bl	80137f6 <RFW_DeInit>
+ 8012234:	f1ba 0f01 	cmp.w	sl, #1
+ 8012238:	4c52      	ldr	r4, [pc, #328]	; (8012384 <RadioSetTxConfig+0x170>)
+ 801223a:	d054      	beq.n	80122e6 <RadioSetTxConfig+0xd2>
+ 801223c:	f1ba 0f04 	cmp.w	sl, #4
+ 8012240:	f000 8091 	beq.w	8012366 <RadioSetTxConfig+0x152>
+ 8012244:	f1ba 0f00 	cmp.w	sl, #0
+ 8012248:	d13a      	bne.n	80122c0 <RadioSetTxConfig+0xac>
+ 801224a:	220b      	movs	r2, #11
+ 801224c:	4630      	mov	r0, r6
+ 801224e:	f884 2044 	strb.w	r2, [r4, #68]	; 0x44
+ 8012252:	f884 a038 	strb.w	sl, [r4, #56]	; 0x38
+ 8012256:	63e5      	str	r5, [r4, #60]	; 0x3c
+ 8012258:	f001 fa70 	bl	801373c <SUBGRF_GetFskBandwidthRegValue>
+ 801225c:	9b01      	ldr	r3, [sp, #4]
+ 801225e:	6423      	str	r3, [r4, #64]	; 0x40
+ 8012260:	ea4f 03cb 	mov.w	r3, fp, lsl #3
+ 8012264:	f1b9 0f00 	cmp.w	r9, #0
+ 8012268:	8223      	strh	r3, [r4, #16]
+ 801226a:	f641 0304 	movw	r3, #6148	; 0x1804
+ 801226e:	8263      	strh	r3, [r4, #18]
+ 8012270:	bf14      	ite	ne
+ 8012272:	23f2      	movne	r3, #242	; 0xf2
+ 8012274:	2301      	moveq	r3, #1
+ 8012276:	75e3      	strb	r3, [r4, #23]
+ 8012278:	f087 0701 	eor.w	r7, r7, #1
+ 801227c:	2301      	movs	r3, #1
+ 801227e:	7623      	strb	r3, [r4, #24]
+ 8012280:	f884 0045 	strb.w	r0, [r4, #69]	; 0x45
+ 8012284:	f884 a00e 	strb.w	sl, [r4, #14]
+ 8012288:	f884 a014 	strb.w	sl, [r4, #20]
+ 801228c:	7567      	strb	r7, [r4, #21]
+ 801228e:	f7ff fc39 	bl	8011b04 <RadioStandby>
+ 8012292:	4650      	mov	r0, sl
+ 8012294:	f7ff fd56 	bl	8011d44 <RadioSetModem>
+ 8012298:	f104 0038 	add.w	r0, r4, #56	; 0x38
+ 801229c:	f001 f862 	bl	8013364 <SUBGRF_SetModulationParams>
+ 80122a0:	f104 000e 	add.w	r0, r4, #14
+ 80122a4:	f001 f8ca 	bl	801343c <SUBGRF_SetPacketParams>
+ 80122a8:	4a37      	ldr	r2, [pc, #220]	; (8012388 <RadioSetTxConfig+0x174>)
+ 80122aa:	6810      	ldr	r0, [r2, #0]
+ 80122ac:	6851      	ldr	r1, [r2, #4]
+ 80122ae:	ab02      	add	r3, sp, #8
+ 80122b0:	c303      	stmia	r3!, {r0, r1}
+ 80122b2:	a802      	add	r0, sp, #8
+ 80122b4:	f000 fd5a 	bl	8012d6c <SUBGRF_SetSyncWord>
+ 80122b8:	f240 10ff 	movw	r0, #511	; 0x1ff
+ 80122bc:	f000 fd2a 	bl	8012d14 <SUBGRF_SetWhiteningSeed>
+ 80122c0:	4640      	mov	r0, r8
+ 80122c2:	f001 f9d9 	bl	8013678 <SUBGRF_SetRfTxPower>
+ 80122c6:	210e      	movs	r1, #14
+ 80122c8:	f884 0056 	strb.w	r0, [r4, #86]	; 0x56
+ 80122cc:	f640 101f 	movw	r0, #2335	; 0x91f
+ 80122d0:	f000 fcec 	bl	8012cac <SUBGRF_WriteRegister>
+ 80122d4:	f894 0056 	ldrb.w	r0, [r4, #86]	; 0x56
+ 80122d8:	f001 fa92 	bl	8013800 <RFW_SetAntSwitch>
+ 80122dc:	9b16      	ldr	r3, [sp, #88]	; 0x58
+ 80122de:	6063      	str	r3, [r4, #4]
+ 80122e0:	b005      	add	sp, #20
+ 80122e2:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 80122e6:	4929      	ldr	r1, [pc, #164]	; (801238c <RadioSetTxConfig+0x178>)
+ 80122e8:	f884 a038 	strb.w	sl, [r4, #56]	; 0x38
+ 80122ec:	b2ea      	uxtb	r2, r5
+ 80122ee:	5d89      	ldrb	r1, [r1, r6]
+ 80122f0:	f884 2050 	strb.w	r2, [r4, #80]	; 0x50
+ 80122f4:	bb76      	cbnz	r6, 8012354 <RadioSetTxConfig+0x140>
+ 80122f6:	3d0b      	subs	r5, #11
+ 80122f8:	2d01      	cmp	r5, #1
+ 80122fa:	bf8c      	ite	hi
+ 80122fc:	2500      	movhi	r5, #0
+ 80122fe:	2501      	movls	r5, #1
+ 8012300:	3a05      	subs	r2, #5
+ 8012302:	2a01      	cmp	r2, #1
+ 8012304:	d804      	bhi.n	8012310 <RadioSetTxConfig+0xfc>
+ 8012306:	f1bb 0f0c 	cmp.w	fp, #12
+ 801230a:	bf38      	it	cc
+ 801230c:	f04f 0b0c 	movcc.w	fp, #12
+ 8012310:	4b1f      	ldr	r3, [pc, #124]	; (8012390 <RadioSetTxConfig+0x17c>)
+ 8012312:	f89d 203c 	ldrb.w	r2, [sp, #60]	; 0x3c
+ 8012316:	781b      	ldrb	r3, [r3, #0]
+ 8012318:	f884 5053 	strb.w	r5, [r4, #83]	; 0x53
+ 801231c:	77e3      	strb	r3, [r4, #31]
+ 801231e:	2501      	movs	r5, #1
+ 8012320:	f89d 3054 	ldrb.w	r3, [sp, #84]	; 0x54
+ 8012324:	f884 1051 	strb.w	r1, [r4, #81]	; 0x51
+ 8012328:	f884 2052 	strb.w	r2, [r4, #82]	; 0x52
+ 801232c:	f884 3021 	strb.w	r3, [r4, #33]	; 0x21
+ 8012330:	73a5      	strb	r5, [r4, #14]
+ 8012332:	f8a4 b01c 	strh.w	fp, [r4, #28]
+ 8012336:	77a7      	strb	r7, [r4, #30]
+ 8012338:	f884 9020 	strb.w	r9, [r4, #32]
+ 801233c:	f7ff fbe2 	bl	8011b04 <RadioStandby>
+ 8012340:	4628      	mov	r0, r5
+ 8012342:	f7ff fcff 	bl	8011d44 <RadioSetModem>
+ 8012346:	4813      	ldr	r0, [pc, #76]	; (8012394 <RadioSetTxConfig+0x180>)
+ 8012348:	f001 f80c 	bl	8013364 <SUBGRF_SetModulationParams>
+ 801234c:	4812      	ldr	r0, [pc, #72]	; (8012398 <RadioSetTxConfig+0x184>)
+ 801234e:	f001 f875 	bl	801343c <SUBGRF_SetPacketParams>
+ 8012352:	e7b5      	b.n	80122c0 <RadioSetTxConfig+0xac>
+ 8012354:	2e01      	cmp	r6, #1
+ 8012356:	d104      	bne.n	8012362 <RadioSetTxConfig+0x14e>
+ 8012358:	f1a5 030c 	sub.w	r3, r5, #12
+ 801235c:	425d      	negs	r5, r3
+ 801235e:	415d      	adcs	r5, r3
+ 8012360:	e7ce      	b.n	8012300 <RadioSetTxConfig+0xec>
+ 8012362:	2500      	movs	r5, #0
+ 8012364:	e7cc      	b.n	8012300 <RadioSetTxConfig+0xec>
+ 8012366:	4650      	mov	r0, sl
+ 8012368:	f7ff fcec 	bl	8011d44 <RadioSetModem>
+ 801236c:	2302      	movs	r3, #2
+ 801236e:	f884 3038 	strb.w	r3, [r4, #56]	; 0x38
+ 8012372:	f104 0038 	add.w	r0, r4, #56	; 0x38
+ 8012376:	2316      	movs	r3, #22
+ 8012378:	64a5      	str	r5, [r4, #72]	; 0x48
+ 801237a:	f884 304c 	strb.w	r3, [r4, #76]	; 0x4c
+ 801237e:	f000 fff1 	bl	8013364 <SUBGRF_SetModulationParams>
+ 8012382:	e79d      	b.n	80122c0 <RadioSetTxConfig+0xac>
+ 8012384:	20002748 	.word	0x20002748
+ 8012388:	080145cc 	.word	0x080145cc
+ 801238c:	0801597a 	.word	0x0801597a
+ 8012390:	200008c0 	.word	0x200008c0
+ 8012394:	20002780 	.word	0x20002780
+ 8012398:	20002756 	.word	0x20002756
+
+0801239c <RadioSetRxConfig>:
+ 801239c:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 80123a0:	b087      	sub	sp, #28
+ 80123a2:	f8df b2b4 	ldr.w	fp, [pc, #692]	; 8012658 <RadioSetRxConfig+0x2bc>
+ 80123a6:	f89d a064 	ldrb.w	sl, [sp, #100]	; 0x64
+ 80123aa:	f89d 904c 	ldrb.w	r9, [sp, #76]	; 0x4c
+ 80123ae:	9302      	str	r3, [sp, #8]
+ 80123b0:	4614      	mov	r4, r2
+ 80123b2:	f89d 3054 	ldrb.w	r3, [sp, #84]	; 0x54
+ 80123b6:	f89d 2050 	ldrb.w	r2, [sp, #80]	; 0x50
+ 80123ba:	f8bd 8048 	ldrh.w	r8, [sp, #72]	; 0x48
+ 80123be:	9203      	str	r2, [sp, #12]
+ 80123c0:	4605      	mov	r5, r0
+ 80123c2:	f88b a001 	strb.w	sl, [fp, #1]
+ 80123c6:	f8bd 6044 	ldrh.w	r6, [sp, #68]	; 0x44
+ 80123ca:	9301      	str	r3, [sp, #4]
+ 80123cc:	460f      	mov	r7, r1
+ 80123ce:	f001 fa12 	bl	80137f6 <RFW_DeInit>
+ 80123d2:	f1ba 0f00 	cmp.w	sl, #0
+ 80123d6:	bf18      	it	ne
+ 80123d8:	f04f 0800 	movne.w	r8, #0
+ 80123dc:	f8df a27c 	ldr.w	sl, [pc, #636]	; 801265c <RadioSetRxConfig+0x2c0>
+ 80123e0:	9a03      	ldr	r2, [sp, #12]
+ 80123e2:	f1b9 0f00 	cmp.w	r9, #0
+ 80123e6:	bf08      	it	eq
+ 80123e8:	22ff      	moveq	r2, #255	; 0xff
+ 80123ea:	2d01      	cmp	r5, #1
+ 80123ec:	f88a 2000 	strb.w	r2, [sl]
+ 80123f0:	f000 80c8 	beq.w	8012584 <RadioSetRxConfig+0x1e8>
+ 80123f4:	2d05      	cmp	r5, #5
+ 80123f6:	d048      	beq.n	801248a <RadioSetRxConfig+0xee>
+ 80123f8:	2d00      	cmp	r5, #0
+ 80123fa:	f040 80c0 	bne.w	801257e <RadioSetRxConfig+0x1e2>
+ 80123fe:	4628      	mov	r0, r5
+ 8012400:	f000 fe10 	bl	8013024 <SUBGRF_SetStopRxTimerOnPreambleDetect>
+ 8012404:	220b      	movs	r2, #11
+ 8012406:	4638      	mov	r0, r7
+ 8012408:	f88b 2044 	strb.w	r2, [fp, #68]	; 0x44
+ 801240c:	f88b 5038 	strb.w	r5, [fp, #56]	; 0x38
+ 8012410:	f8cb 403c 	str.w	r4, [fp, #60]	; 0x3c
+ 8012414:	f001 f992 	bl	801373c <SUBGRF_GetFskBandwidthRegValue>
+ 8012418:	9b01      	ldr	r3, [sp, #4]
+ 801241a:	f88b 0045 	strb.w	r0, [fp, #69]	; 0x45
+ 801241e:	f641 0204 	movw	r2, #6148	; 0x1804
+ 8012422:	2b00      	cmp	r3, #0
+ 8012424:	f8ab 2012 	strh.w	r2, [fp, #18]
+ 8012428:	f89a 2000 	ldrb.w	r2, [sl]
+ 801242c:	f88b 2016 	strb.w	r2, [fp, #22]
+ 8012430:	bf14      	ite	ne
+ 8012432:	22f2      	movne	r2, #242	; 0xf2
+ 8012434:	2201      	moveq	r2, #1
+ 8012436:	f88b 2017 	strb.w	r2, [fp, #23]
+ 801243a:	00f6      	lsls	r6, r6, #3
+ 801243c:	2201      	movs	r2, #1
+ 801243e:	f089 0901 	eor.w	r9, r9, #1
+ 8012442:	f88b 2018 	strb.w	r2, [fp, #24]
+ 8012446:	f88b 500e 	strb.w	r5, [fp, #14]
+ 801244a:	f8ab 6010 	strh.w	r6, [fp, #16]
+ 801244e:	f88b 5014 	strb.w	r5, [fp, #20]
+ 8012452:	f88b 9015 	strb.w	r9, [fp, #21]
+ 8012456:	f7ff fb55 	bl	8011b04 <RadioStandby>
+ 801245a:	4628      	mov	r0, r5
+ 801245c:	f7ff fc72 	bl	8011d44 <RadioSetModem>
+ 8012460:	f10b 0038 	add.w	r0, fp, #56	; 0x38
+ 8012464:	f000 ff7e 	bl	8013364 <SUBGRF_SetModulationParams>
+ 8012468:	f10b 000e 	add.w	r0, fp, #14
+ 801246c:	f000 ffe6 	bl	801343c <SUBGRF_SetPacketParams>
+ 8012470:	497b      	ldr	r1, [pc, #492]	; (8012660 <RadioSetRxConfig+0x2c4>)
+ 8012472:	6808      	ldr	r0, [r1, #0]
+ 8012474:	6849      	ldr	r1, [r1, #4]
+ 8012476:	aa04      	add	r2, sp, #16
+ 8012478:	c203      	stmia	r2!, {r0, r1}
+ 801247a:	a804      	add	r0, sp, #16
+ 801247c:	f000 fc76 	bl	8012d6c <SUBGRF_SetSyncWord>
+ 8012480:	f240 10ff 	movw	r0, #511	; 0x1ff
+ 8012484:	f000 fc46 	bl	8012d14 <SUBGRF_SetWhiteningSeed>
+ 8012488:	e071      	b.n	801256e <RadioSetRxConfig+0x1d2>
+ 801248a:	2001      	movs	r0, #1
+ 801248c:	f000 fdca 	bl	8013024 <SUBGRF_SetStopRxTimerOnPreambleDetect>
+ 8012490:	2209      	movs	r2, #9
+ 8012492:	f04f 0900 	mov.w	r9, #0
+ 8012496:	f88b 2044 	strb.w	r2, [fp, #68]	; 0x44
+ 801249a:	4638      	mov	r0, r7
+ 801249c:	f44f 7248 	mov.w	r2, #800	; 0x320
+ 80124a0:	f8cb 2040 	str.w	r2, [fp, #64]	; 0x40
+ 80124a4:	f88b 9038 	strb.w	r9, [fp, #56]	; 0x38
+ 80124a8:	f8cb 403c 	str.w	r4, [fp, #60]	; 0x3c
+ 80124ac:	f001 f946 	bl	801373c <SUBGRF_GetFskBandwidthRegValue>
+ 80124b0:	f44f 5280 	mov.w	r2, #4096	; 0x1000
+ 80124b4:	f8ab 2012 	strh.w	r2, [fp, #18]
+ 80124b8:	f89a 2000 	ldrb.w	r2, [sl]
+ 80124bc:	f88b 0045 	strb.w	r0, [fp, #69]	; 0x45
+ 80124c0:	f88b 2016 	strb.w	r2, [fp, #22]
+ 80124c4:	4628      	mov	r0, r5
+ 80124c6:	2201      	movs	r2, #1
+ 80124c8:	00f6      	lsls	r6, r6, #3
+ 80124ca:	f88b 2017 	strb.w	r2, [fp, #23]
+ 80124ce:	f88b 900e 	strb.w	r9, [fp, #14]
+ 80124d2:	f8ab 6010 	strh.w	r6, [fp, #16]
+ 80124d6:	f8ab 9014 	strh.w	r9, [fp, #20]
+ 80124da:	f88b 9018 	strb.w	r9, [fp, #24]
+ 80124de:	f7ff fc31 	bl	8011d44 <RadioSetModem>
+ 80124e2:	f10b 0038 	add.w	r0, fp, #56	; 0x38
+ 80124e6:	f000 ff3d 	bl	8013364 <SUBGRF_SetModulationParams>
+ 80124ea:	f10b 000e 	add.w	r0, fp, #14
+ 80124ee:	f000 ffa5 	bl	801343c <SUBGRF_SetPacketParams>
+ 80124f2:	495b      	ldr	r1, [pc, #364]	; (8012660 <RadioSetRxConfig+0x2c4>)
+ 80124f4:	6888      	ldr	r0, [r1, #8]
+ 80124f6:	68c9      	ldr	r1, [r1, #12]
+ 80124f8:	aa04      	add	r2, sp, #16
+ 80124fa:	c203      	stmia	r2!, {r0, r1}
+ 80124fc:	a804      	add	r0, sp, #16
+ 80124fe:	f000 fc35 	bl	8012d6c <SUBGRF_SetSyncWord>
+ 8012502:	f240 10ff 	movw	r0, #511	; 0x1ff
+ 8012506:	f000 fc05 	bl	8012d14 <SUBGRF_SetWhiteningSeed>
+ 801250a:	f640 00b8 	movw	r0, #2232	; 0x8b8
+ 801250e:	f000 fbdd 	bl	8012ccc <SUBGRF_ReadRegister>
+ 8012512:	f000 01ef 	and.w	r1, r0, #239	; 0xef
+ 8012516:	f640 00b8 	movw	r0, #2232	; 0x8b8
+ 801251a:	f000 fbc7 	bl	8012cac <SUBGRF_WriteRegister>
+ 801251e:	2104      	movs	r1, #4
+ 8012520:	f640 00b9 	movw	r0, #2233	; 0x8b9
+ 8012524:	f000 fbc2 	bl	8012cac <SUBGRF_WriteRegister>
+ 8012528:	f640 009b 	movw	r0, #2203	; 0x89b
+ 801252c:	f000 fbce 	bl	8012ccc <SUBGRF_ReadRegister>
+ 8012530:	f000 01e3 	and.w	r1, r0, #227	; 0xe3
+ 8012534:	f041 0108 	orr.w	r1, r1, #8
+ 8012538:	f640 009b 	movw	r0, #2203	; 0x89b
+ 801253c:	f000 fbb6 	bl	8012cac <SUBGRF_WriteRegister>
+ 8012540:	f240 60d1 	movw	r0, #1745	; 0x6d1
+ 8012544:	f000 fbc2 	bl	8012ccc <SUBGRF_ReadRegister>
+ 8012548:	f040 0118 	orr.w	r1, r0, #24
+ 801254c:	b2c9      	uxtb	r1, r1
+ 801254e:	f240 60d1 	movw	r0, #1745	; 0x6d1
+ 8012552:	f000 fbab 	bl	8012cac <SUBGRF_WriteRegister>
+ 8012556:	f240 60ac 	movw	r0, #1708	; 0x6ac
+ 801255a:	f000 fbb7 	bl	8012ccc <SUBGRF_ReadRegister>
+ 801255e:	f000 018f 	and.w	r1, r0, #143	; 0x8f
+ 8012562:	f041 0150 	orr.w	r1, r1, #80	; 0x50
+ 8012566:	f240 60ac 	movw	r0, #1708	; 0x6ac
+ 801256a:	f000 fb9f 	bl	8012cac <SUBGRF_WriteRegister>
+ 801256e:	f44f 52fa 	mov.w	r2, #8000	; 0x1f40
+ 8012572:	fb02 f208 	mul.w	r2, r2, r8
+ 8012576:	fbb2 f2f4 	udiv	r2, r2, r4
+ 801257a:	f8cb 2008 	str.w	r2, [fp, #8]
+ 801257e:	b007      	add	sp, #28
+ 8012580:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 8012584:	2000      	movs	r0, #0
+ 8012586:	f000 fd4d 	bl	8013024 <SUBGRF_SetStopRxTimerOnPreambleDetect>
+ 801258a:	4936      	ldr	r1, [pc, #216]	; (8012664 <RadioSetRxConfig+0x2c8>)
+ 801258c:	f88b 5038 	strb.w	r5, [fp, #56]	; 0x38
+ 8012590:	b2e2      	uxtb	r2, r4
+ 8012592:	5dc9      	ldrb	r1, [r1, r7]
+ 8012594:	f88b 2050 	strb.w	r2, [fp, #80]	; 0x50
+ 8012598:	2f00      	cmp	r7, #0
+ 801259a:	d14d      	bne.n	8012638 <RadioSetRxConfig+0x29c>
+ 801259c:	3c0b      	subs	r4, #11
+ 801259e:	2c01      	cmp	r4, #1
+ 80125a0:	bf8c      	ite	hi
+ 80125a2:	2400      	movhi	r4, #0
+ 80125a4:	2401      	movls	r4, #1
+ 80125a6:	3a05      	subs	r2, #5
+ 80125a8:	2a01      	cmp	r2, #1
+ 80125aa:	d802      	bhi.n	80125b2 <RadioSetRxConfig+0x216>
+ 80125ac:	2e0c      	cmp	r6, #12
+ 80125ae:	bf38      	it	cc
+ 80125b0:	260c      	movcc	r6, #12
+ 80125b2:	9b02      	ldr	r3, [sp, #8]
+ 80125b4:	f89a 2000 	ldrb.w	r2, [sl]
+ 80125b8:	f88b 3052 	strb.w	r3, [fp, #82]	; 0x52
+ 80125bc:	f88b 4053 	strb.w	r4, [fp, #83]	; 0x53
+ 80125c0:	9b01      	ldr	r3, [sp, #4]
+ 80125c2:	f88b 201f 	strb.w	r2, [fp, #31]
+ 80125c6:	2401      	movs	r4, #1
+ 80125c8:	f89d 2060 	ldrb.w	r2, [sp, #96]	; 0x60
+ 80125cc:	f88b 2021 	strb.w	r2, [fp, #33]	; 0x21
+ 80125d0:	f88b 1051 	strb.w	r1, [fp, #81]	; 0x51
+ 80125d4:	f88b 3020 	strb.w	r3, [fp, #32]
+ 80125d8:	f88b 400e 	strb.w	r4, [fp, #14]
+ 80125dc:	f8ab 601c 	strh.w	r6, [fp, #28]
+ 80125e0:	f88b 901e 	strb.w	r9, [fp, #30]
+ 80125e4:	f7ff fa8e 	bl	8011b04 <RadioStandby>
+ 80125e8:	4620      	mov	r0, r4
+ 80125ea:	f7ff fbab 	bl	8011d44 <RadioSetModem>
+ 80125ee:	481e      	ldr	r0, [pc, #120]	; (8012668 <RadioSetRxConfig+0x2cc>)
+ 80125f0:	f000 feb8 	bl	8013364 <SUBGRF_SetModulationParams>
+ 80125f4:	481d      	ldr	r0, [pc, #116]	; (801266c <RadioSetRxConfig+0x2d0>)
+ 80125f6:	f000 ff21 	bl	801343c <SUBGRF_SetPacketParams>
+ 80125fa:	fa5f f088 	uxtb.w	r0, r8
+ 80125fe:	f000 fd1d 	bl	801303c <SUBGRF_SetLoRaSymbNumTimeout>
+ 8012602:	f640 00a3 	movw	r0, #2211	; 0x8a3
+ 8012606:	f000 fb61 	bl	8012ccc <SUBGRF_ReadRegister>
+ 801260a:	ea00 0104 	and.w	r1, r0, r4
+ 801260e:	f640 00a3 	movw	r0, #2211	; 0x8a3
+ 8012612:	f000 fb4b 	bl	8012cac <SUBGRF_WriteRegister>
+ 8012616:	f89b 2021 	ldrb.w	r2, [fp, #33]	; 0x21
+ 801261a:	42a2      	cmp	r2, r4
+ 801261c:	f240 7036 	movw	r0, #1846	; 0x736
+ 8012620:	d113      	bne.n	801264a <RadioSetRxConfig+0x2ae>
+ 8012622:	f000 fb53 	bl	8012ccc <SUBGRF_ReadRegister>
+ 8012626:	f000 01fb 	and.w	r1, r0, #251	; 0xfb
+ 801262a:	f240 7036 	movw	r0, #1846	; 0x736
+ 801262e:	f000 fb3d 	bl	8012cac <SUBGRF_WriteRegister>
+ 8012632:	f64f 72ff 	movw	r2, #65535	; 0xffff
+ 8012636:	e7a0      	b.n	801257a <RadioSetRxConfig+0x1de>
+ 8012638:	2f01      	cmp	r7, #1
+ 801263a:	d104      	bne.n	8012646 <RadioSetRxConfig+0x2aa>
+ 801263c:	f1a4 030c 	sub.w	r3, r4, #12
+ 8012640:	425c      	negs	r4, r3
+ 8012642:	415c      	adcs	r4, r3
+ 8012644:	e7af      	b.n	80125a6 <RadioSetRxConfig+0x20a>
+ 8012646:	2400      	movs	r4, #0
+ 8012648:	e7ad      	b.n	80125a6 <RadioSetRxConfig+0x20a>
+ 801264a:	f000 fb3f 	bl	8012ccc <SUBGRF_ReadRegister>
+ 801264e:	f040 0104 	orr.w	r1, r0, #4
+ 8012652:	b2c9      	uxtb	r1, r1
+ 8012654:	e7e9      	b.n	801262a <RadioSetRxConfig+0x28e>
+ 8012656:	bf00      	nop
+ 8012658:	20002748 	.word	0x20002748
+ 801265c:	200008c0 	.word	0x200008c0
+ 8012660:	080145cc 	.word	0x080145cc
+ 8012664:	0801597a 	.word	0x0801597a
+ 8012668:	20002780 	.word	0x20002780
+ 801266c:	20002756 	.word	0x20002756
+
+08012670 <RadioIsChannelFree>:
+ 8012670:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 8012672:	b08b      	sub	sp, #44	; 0x2c
+ 8012674:	460d      	mov	r5, r1
+ 8012676:	4604      	mov	r4, r0
+ 8012678:	4617      	mov	r7, r2
+ 801267a:	461e      	mov	r6, r3
+ 801267c:	f7ff fa42 	bl	8011b04 <RadioStandby>
+ 8012680:	2000      	movs	r0, #0
+ 8012682:	f7ff fb5f 	bl	8011d44 <RadioSetModem>
+ 8012686:	4620      	mov	r0, r4
+ 8012688:	f000 fdbe 	bl	8013208 <SUBGRF_SetRfFrequency>
+ 801268c:	2400      	movs	r4, #0
+ 801268e:	2301      	movs	r3, #1
+ 8012690:	e9cd 4308 	strd	r4, r3, [sp, #32]
+ 8012694:	2303      	movs	r3, #3
+ 8012696:	f44f 7216 	mov.w	r2, #600	; 0x258
+ 801269a:	4629      	mov	r1, r5
+ 801269c:	4620      	mov	r0, r4
+ 801269e:	e9cd 4406 	strd	r4, r4, [sp, #24]
+ 80126a2:	e9cd 4404 	strd	r4, r4, [sp, #16]
+ 80126a6:	e9cd 4402 	strd	r4, r4, [sp, #8]
+ 80126aa:	e9cd 5300 	strd	r5, r3, [sp]
+ 80126ae:	4623      	mov	r3, r4
+ 80126b0:	f7ff fe74 	bl	801239c <RadioSetRxConfig>
+ 80126b4:	4620      	mov	r0, r4
+ 80126b6:	f7ff fa7d 	bl	8011bb4 <RadioRx>
+ 80126ba:	f7ff fa35 	bl	8011b28 <RadioGetWakeupTime>
+ 80126be:	f7f0 fa6f 	bl	8002ba0 <HAL_Delay>
+ 80126c2:	f001 fc43 	bl	8013f4c <UTIL_TIMER_GetCurrentTime>
+ 80126c6:	4604      	mov	r4, r0
+ 80126c8:	4620      	mov	r0, r4
+ 80126ca:	f001 fc49 	bl	8013f60 <UTIL_TIMER_GetElapsedTime>
+ 80126ce:	42b0      	cmp	r0, r6
+ 80126d0:	d305      	bcc.n	80126de <RadioIsChannelFree+0x6e>
+ 80126d2:	2401      	movs	r4, #1
+ 80126d4:	f7ff fa16 	bl	8011b04 <RadioStandby>
+ 80126d8:	4620      	mov	r0, r4
+ 80126da:	b00b      	add	sp, #44	; 0x2c
+ 80126dc:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 80126de:	f000 ff2f 	bl	8013540 <SUBGRF_GetRssiInst>
+ 80126e2:	b200      	sxth	r0, r0
+ 80126e4:	4287      	cmp	r7, r0
+ 80126e6:	daef      	bge.n	80126c8 <RadioIsChannelFree+0x58>
+ 80126e8:	2400      	movs	r4, #0
+ 80126ea:	e7f3      	b.n	80126d4 <RadioIsChannelFree+0x64>
+
+080126ec <RadioSend>:
+ 80126ec:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
+ 80126ee:	2300      	movs	r3, #0
+ 80126f0:	460c      	mov	r4, r1
+ 80126f2:	f240 2101 	movw	r1, #513	; 0x201
+ 80126f6:	461a      	mov	r2, r3
+ 80126f8:	4606      	mov	r6, r0
+ 80126fa:	4608      	mov	r0, r1
+ 80126fc:	f000 fd1e 	bl	801313c <SUBGRF_SetDioIrqParams>
+ 8012700:	4b64      	ldr	r3, [pc, #400]	; (8012894 <RadioSend+0x1a8>)
+ 8012702:	4d65      	ldr	r5, [pc, #404]	; (8012898 <RadioSend+0x1ac>)
+ 8012704:	f44f 5200 	mov.w	r2, #8192	; 0x2000
+ 8012708:	619a      	str	r2, [r3, #24]
+ 801270a:	f895 0056 	ldrb.w	r0, [r5, #86]	; 0x56
+ 801270e:	2101      	movs	r1, #1
+ 8012710:	f000 ff9c 	bl	801364c <SUBGRF_SetSwitch>
+ 8012714:	782b      	ldrb	r3, [r5, #0]
+ 8012716:	2b01      	cmp	r3, #1
+ 8012718:	f640 0089 	movw	r0, #2185	; 0x889
+ 801271c:	d113      	bne.n	8012746 <RadioSend+0x5a>
+ 801271e:	f895 3051 	ldrb.w	r3, [r5, #81]	; 0x51
+ 8012722:	2b06      	cmp	r3, #6
+ 8012724:	d10f      	bne.n	8012746 <RadioSend+0x5a>
+ 8012726:	f000 fad1 	bl	8012ccc <SUBGRF_ReadRegister>
+ 801272a:	f000 01fb 	and.w	r1, r0, #251	; 0xfb
+ 801272e:	f640 0089 	movw	r0, #2185	; 0x889
+ 8012732:	f000 fabb 	bl	8012cac <SUBGRF_WriteRegister>
+ 8012736:	782b      	ldrb	r3, [r5, #0]
+ 8012738:	2b04      	cmp	r3, #4
+ 801273a:	d86c      	bhi.n	8012816 <RadioSend+0x12a>
+ 801273c:	e8df f003 	tbb	[pc, r3]
+ 8012740:	7f524b52 	.word	0x7f524b52
+ 8012744:	09          	.byte	0x09
+ 8012745:	00          	.byte	0x00
+ 8012746:	f000 fac1 	bl	8012ccc <SUBGRF_ReadRegister>
+ 801274a:	f040 0104 	orr.w	r1, r0, #4
+ 801274e:	b2c9      	uxtb	r1, r1
+ 8012750:	e7ed      	b.n	801272e <RadioSend+0x42>
+ 8012752:	4a52      	ldr	r2, [pc, #328]	; (801289c <RadioSend+0x1b0>)
+ 8012754:	1e73      	subs	r3, r6, #1
+ 8012756:	4610      	mov	r0, r2
+ 8012758:	f1c6 0701 	rsb	r7, r6, #1
+ 801275c:	f04f 0c00 	mov.w	ip, #0
+ 8012760:	18f9      	adds	r1, r7, r3
+ 8012762:	428c      	cmp	r4, r1
+ 8012764:	dc6f      	bgt.n	8012846 <RadioSend+0x15a>
+ 8012766:	2200      	movs	r2, #0
+ 8012768:	00e7      	lsls	r7, r4, #3
+ 801276a:	4613      	mov	r3, r2
+ 801276c:	42ba      	cmp	r2, r7
+ 801276e:	d171      	bne.n	8012854 <RadioSend+0x168>
+ 8012770:	019a      	lsls	r2, r3, #6
+ 8012772:	ea42 12c3 	orr.w	r2, r2, r3, lsl #7
+ 8012776:	015b      	lsls	r3, r3, #5
+ 8012778:	f083 0320 	eor.w	r3, r3, #32
+ 801277c:	4313      	orrs	r3, r2
+ 801277e:	1c66      	adds	r6, r4, #1
+ 8012780:	5503      	strb	r3, [r0, r4]
+ 8012782:	b2f6      	uxtb	r6, r6
+ 8012784:	2302      	movs	r3, #2
+ 8012786:	4846      	ldr	r0, [pc, #280]	; (80128a0 <RadioSend+0x1b4>)
+ 8012788:	73ab      	strb	r3, [r5, #14]
+ 801278a:	76ae      	strb	r6, [r5, #26]
+ 801278c:	f000 fe56 	bl	801343c <SUBGRF_SetPacketParams>
+ 8012790:	2100      	movs	r1, #0
+ 8012792:	20f1      	movs	r0, #241	; 0xf1
+ 8012794:	f000 fa8a 	bl	8012cac <SUBGRF_WriteRegister>
+ 8012798:	2100      	movs	r1, #0
+ 801279a:	20f0      	movs	r0, #240	; 0xf0
+ 801279c:	f000 fa86 	bl	8012cac <SUBGRF_WriteRegister>
+ 80127a0:	6cab      	ldr	r3, [r5, #72]	; 0x48
+ 80127a2:	2b64      	cmp	r3, #100	; 0x64
+ 80127a4:	d170      	bne.n	8012888 <RadioSend+0x19c>
+ 80127a6:	2170      	movs	r1, #112	; 0x70
+ 80127a8:	20f3      	movs	r0, #243	; 0xf3
+ 80127aa:	f000 fa7f 	bl	8012cac <SUBGRF_WriteRegister>
+ 80127ae:	211d      	movs	r1, #29
+ 80127b0:	20f2      	movs	r0, #242	; 0xf2
+ 80127b2:	f000 fa7b 	bl	8012cac <SUBGRF_WriteRegister>
+ 80127b6:	00e1      	lsls	r1, r4, #3
+ 80127b8:	1c8c      	adds	r4, r1, #2
+ 80127ba:	20f4      	movs	r0, #244	; 0xf4
+ 80127bc:	0a09      	lsrs	r1, r1, #8
+ 80127be:	f000 fa75 	bl	8012cac <SUBGRF_WriteRegister>
+ 80127c2:	f004 01fe 	and.w	r1, r4, #254	; 0xfe
+ 80127c6:	20f5      	movs	r0, #245	; 0xf5
+ 80127c8:	f000 fa70 	bl	8012cac <SUBGRF_WriteRegister>
+ 80127cc:	4833      	ldr	r0, [pc, #204]	; (801289c <RadioSend+0x1b0>)
+ 80127ce:	f06f 427f 	mvn.w	r2, #4278190080	; 0xff000000
+ 80127d2:	4631      	mov	r1, r6
+ 80127d4:	e01d      	b.n	8012812 <RadioSend+0x126>
+ 80127d6:	77ec      	strb	r4, [r5, #31]
+ 80127d8:	4831      	ldr	r0, [pc, #196]	; (80128a0 <RadioSend+0x1b4>)
+ 80127da:	f000 fe2f 	bl	801343c <SUBGRF_SetPacketParams>
+ 80127de:	2200      	movs	r2, #0
+ 80127e0:	4621      	mov	r1, r4
+ 80127e2:	e015      	b.n	8012810 <RadioSend+0x124>
+ 80127e4:	f001 f808 	bl	80137f8 <RFW_Is_Init>
+ 80127e8:	2801      	cmp	r0, #1
+ 80127ea:	4607      	mov	r7, r0
+ 80127ec:	d125      	bne.n	801283a <RadioSend+0x14e>
+ 80127ee:	4621      	mov	r1, r4
+ 80127f0:	f10d 0207 	add.w	r2, sp, #7
+ 80127f4:	4630      	mov	r0, r6
+ 80127f6:	f001 f804 	bl	8013802 <RFW_TransmitInit>
+ 80127fa:	4604      	mov	r4, r0
+ 80127fc:	b9a0      	cbnz	r0, 8012828 <RadioSend+0x13c>
+ 80127fe:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8012802:	4827      	ldr	r0, [pc, #156]	; (80128a0 <RadioSend+0x1b4>)
+ 8012804:	75ab      	strb	r3, [r5, #22]
+ 8012806:	f000 fe19 	bl	801343c <SUBGRF_SetPacketParams>
+ 801280a:	f89d 1007 	ldrb.w	r1, [sp, #7]
+ 801280e:	4622      	mov	r2, r4
+ 8012810:	4630      	mov	r0, r6
+ 8012812:	f000 fb65 	bl	8012ee0 <SUBGRF_SendPayload>
+ 8012816:	6869      	ldr	r1, [r5, #4]
+ 8012818:	4822      	ldr	r0, [pc, #136]	; (80128a4 <RadioSend+0x1b8>)
+ 801281a:	f001 fc63 	bl	80140e4 <UTIL_TIMER_SetPeriod>
+ 801281e:	4821      	ldr	r0, [pc, #132]	; (80128a4 <RadioSend+0x1b8>)
+ 8012820:	f001 fc26 	bl	8014070 <UTIL_TIMER_Start>
+ 8012824:	2000      	movs	r0, #0
+ 8012826:	e006      	b.n	8012836 <RadioSend+0x14a>
+ 8012828:	4b1f      	ldr	r3, [pc, #124]	; (80128a8 <RadioSend+0x1bc>)
+ 801282a:	463a      	mov	r2, r7
+ 801282c:	2100      	movs	r1, #0
+ 801282e:	2002      	movs	r0, #2
+ 8012830:	f001 f8a2 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8012834:	2003      	movs	r0, #3
+ 8012836:	b003      	add	sp, #12
+ 8012838:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 801283a:	75ac      	strb	r4, [r5, #22]
+ 801283c:	e7cc      	b.n	80127d8 <RadioSend+0xec>
+ 801283e:	2302      	movs	r3, #2
+ 8012840:	73ab      	strb	r3, [r5, #14]
+ 8012842:	76ac      	strb	r4, [r5, #26]
+ 8012844:	e7c8      	b.n	80127d8 <RadioSend+0xec>
+ 8012846:	f813 1f01 	ldrb.w	r1, [r3, #1]!
+ 801284a:	43c9      	mvns	r1, r1
+ 801284c:	7019      	strb	r1, [r3, #0]
+ 801284e:	f802 cb01 	strb.w	ip, [r2], #1
+ 8012852:	e785      	b.n	8012760 <RadioSend+0x74>
+ 8012854:	10d1      	asrs	r1, r2, #3
+ 8012856:	ea6f 0c02 	mvn.w	ip, r2
+ 801285a:	5c71      	ldrb	r1, [r6, r1]
+ 801285c:	f00c 0c07 	and.w	ip, ip, #7
+ 8012860:	3201      	adds	r2, #1
+ 8012862:	fa41 f10c 	asr.w	r1, r1, ip
+ 8012866:	f001 0101 	and.w	r1, r1, #1
+ 801286a:	ea4f 0ce2 	mov.w	ip, r2, asr #3
+ 801286e:	404b      	eors	r3, r1
+ 8012870:	43d1      	mvns	r1, r2
+ 8012872:	f810 e00c 	ldrb.w	lr, [r0, ip]
+ 8012876:	f001 0107 	and.w	r1, r1, #7
+ 801287a:	fa03 f101 	lsl.w	r1, r3, r1
+ 801287e:	ea41 010e 	orr.w	r1, r1, lr
+ 8012882:	f800 100c 	strb.w	r1, [r0, ip]
+ 8012886:	e771      	b.n	801276c <RadioSend+0x80>
+ 8012888:	21e1      	movs	r1, #225	; 0xe1
+ 801288a:	20f3      	movs	r0, #243	; 0xf3
+ 801288c:	f000 fa0e 	bl	8012cac <SUBGRF_WriteRegister>
+ 8012890:	2104      	movs	r1, #4
+ 8012892:	e78d      	b.n	80127b0 <RadioSend+0xc4>
+ 8012894:	48000400 	.word	0x48000400
+ 8012898:	20002748 	.word	0x20002748
+ 801289c:	2000262c 	.word	0x2000262c
+ 80128a0:	20002756 	.word	0x20002756
+ 80128a4:	200027a4 	.word	0x200027a4
+ 80128a8:	0801591c 	.word	0x0801591c
+
+080128ac <RadioTimeOnAir>:
+ 80128ac:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 80128ae:	f8bd 4014 	ldrh.w	r4, [sp, #20]
+ 80128b2:	f89d 7018 	ldrb.w	r7, [sp, #24]
+ 80128b6:	f89d e01c 	ldrb.w	lr, [sp, #28]
+ 80128ba:	f89d 5020 	ldrb.w	r5, [sp, #32]
+ 80128be:	b140      	cbz	r0, 80128d2 <RadioTimeOnAir+0x26>
+ 80128c0:	2801      	cmp	r0, #1
+ 80128c2:	d014      	beq.n	80128ee <RadioTimeOnAir+0x42>
+ 80128c4:	2201      	movs	r2, #1
+ 80128c6:	2300      	movs	r3, #0
+ 80128c8:	1898      	adds	r0, r3, r2
+ 80128ca:	3801      	subs	r0, #1
+ 80128cc:	fbb0 f0f2 	udiv	r0, r0, r2
+ 80128d0:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 80128d2:	f087 0701 	eor.w	r7, r7, #1
+ 80128d6:	00e3      	lsls	r3, r4, #3
+ 80128d8:	eb03 03c7 	add.w	r3, r3, r7, lsl #3
+ 80128dc:	3318      	adds	r3, #24
+ 80128de:	eb0e 0545 	add.w	r5, lr, r5, lsl #1
+ 80128e2:	eb03 03c5 	add.w	r3, r3, r5, lsl #3
+ 80128e6:	f44f 717a 	mov.w	r1, #1000	; 0x3e8
+ 80128ea:	434b      	muls	r3, r1
+ 80128ec:	e7ec      	b.n	80128c8 <RadioTimeOnAir+0x1c>
+ 80128ee:	1f50      	subs	r0, r2, #5
+ 80128f0:	2801      	cmp	r0, #1
+ 80128f2:	f103 0304 	add.w	r3, r3, #4
+ 80128f6:	d802      	bhi.n	80128fe <RadioTimeOnAir+0x52>
+ 80128f8:	2c0c      	cmp	r4, #12
+ 80128fa:	bf38      	it	cc
+ 80128fc:	240c      	movcc	r4, #12
+ 80128fe:	b9d1      	cbnz	r1, 8012936 <RadioTimeOnAir+0x8a>
+ 8012900:	f1a2 0c0b 	sub.w	ip, r2, #11
+ 8012904:	f1bc 0f01 	cmp.w	ip, #1
+ 8012908:	bf8c      	ite	hi
+ 801290a:	f04f 0c00 	movhi.w	ip, #0
+ 801290e:	f04f 0c01 	movls.w	ip, #1
+ 8012912:	0128      	lsls	r0, r5, #4
+ 8012914:	2f00      	cmp	r7, #0
+ 8012916:	eb00 00ce 	add.w	r0, r0, lr, lsl #3
+ 801291a:	bf14      	ite	ne
+ 801291c:	2500      	movne	r5, #0
+ 801291e:	2514      	moveq	r5, #20
+ 8012920:	eba0 0082 	sub.w	r0, r0, r2, lsl #2
+ 8012924:	2a06      	cmp	r2, #6
+ 8012926:	ea4f 0682 	mov.w	r6, r2, lsl #2
+ 801292a:	4428      	add	r0, r5
+ 801292c:	f1a2 0702 	sub.w	r7, r2, #2
+ 8012930:	d80d      	bhi.n	801294e <RadioTimeOnAir+0xa2>
+ 8012932:	4635      	mov	r5, r6
+ 8012934:	e010      	b.n	8012958 <RadioTimeOnAir+0xac>
+ 8012936:	2901      	cmp	r1, #1
+ 8012938:	d106      	bne.n	8012948 <RadioTimeOnAir+0x9c>
+ 801293a:	f1a2 000c 	sub.w	r0, r2, #12
+ 801293e:	f1d0 0c00 	rsbs	ip, r0, #0
+ 8012942:	eb4c 0c00 	adc.w	ip, ip, r0
+ 8012946:	e7e4      	b.n	8012912 <RadioTimeOnAir+0x66>
+ 8012948:	f04f 0c00 	mov.w	ip, #0
+ 801294c:	e7e1      	b.n	8012912 <RadioTimeOnAir+0x66>
+ 801294e:	3008      	adds	r0, #8
+ 8012950:	f1bc 0f00 	cmp.w	ip, #0
+ 8012954:	d0ed      	beq.n	8012932 <RadioTimeOnAir+0x86>
+ 8012956:	00bd      	lsls	r5, r7, #2
+ 8012958:	2800      	cmp	r0, #0
+ 801295a:	bfac      	ite	ge
+ 801295c:	182e      	addge	r6, r5, r0
+ 801295e:	1c2e      	addlt	r6, r5, #0
+ 8012960:	1e70      	subs	r0, r6, #1
+ 8012962:	fb90 f0f5 	sdiv	r0, r0, r5
+ 8012966:	fb03 4400 	mla	r4, r3, r0, r4
+ 801296a:	4b09      	ldr	r3, [pc, #36]	; (8012990 <RadioTimeOnAir+0xe4>)
+ 801296c:	2a06      	cmp	r2, #6
+ 801296e:	5c5a      	ldrb	r2, [r3, r1]
+ 8012970:	bf8c      	ite	hi
+ 8012972:	340c      	addhi	r4, #12
+ 8012974:	340e      	addls	r4, #14
+ 8012976:	2a0a      	cmp	r2, #10
+ 8012978:	d809      	bhi.n	801298e <RadioTimeOnAir+0xe2>
+ 801297a:	00a3      	lsls	r3, r4, #2
+ 801297c:	3301      	adds	r3, #1
+ 801297e:	f44f 717a 	mov.w	r1, #1000	; 0x3e8
+ 8012982:	40bb      	lsls	r3, r7
+ 8012984:	434b      	muls	r3, r1
+ 8012986:	4903      	ldr	r1, [pc, #12]	; (8012994 <RadioTimeOnAir+0xe8>)
+ 8012988:	f851 2022 	ldr.w	r2, [r1, r2, lsl #2]
+ 801298c:	e79c      	b.n	80128c8 <RadioTimeOnAir+0x1c>
+ 801298e:	deff      	udf	#255	; 0xff
+ 8012990:	0801597a 	.word	0x0801597a
+ 8012994:	08015980 	.word	0x08015980
+
+08012998 <RadioTxPrbs>:
+ 8012998:	b508      	push	{r3, lr}
+ 801299a:	4b09      	ldr	r3, [pc, #36]	; (80129c0 <RadioTxPrbs+0x28>)
+ 801299c:	2101      	movs	r1, #1
+ 801299e:	f893 0056 	ldrb.w	r0, [r3, #86]	; 0x56
+ 80129a2:	f000 fe53 	bl	801364c <SUBGRF_SetSwitch>
+ 80129a6:	f44f 60d7 	mov.w	r0, #1720	; 0x6b8
+ 80129aa:	212d      	movs	r1, #45	; 0x2d
+ 80129ac:	f000 f97e 	bl	8012cac <SUBGRF_WriteRegister>
+ 80129b0:	f000 fb33 	bl	801301a <SUBGRF_SetTxInfinitePreamble>
+ 80129b4:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 80129b8:	4802      	ldr	r0, [pc, #8]	; (80129c4 <RadioTxPrbs+0x2c>)
+ 80129ba:	f000 ba7b 	b.w	8012eb4 <SUBGRF_SetTx>
+ 80129be:	bf00      	nop
+ 80129c0:	20002748 	.word	0x20002748
+ 80129c4:	000fffff 	.word	0x000fffff
+
+080129c8 <RadioIrqProcess>:
+ 80129c8:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 80129ca:	4ca4      	ldr	r4, [pc, #656]	; (8012c5c <RadioIrqProcess+0x294>)
+ 80129cc:	f8b4 3054 	ldrh.w	r3, [r4, #84]	; 0x54
+ 80129d0:	2500      	movs	r5, #0
+ 80129d2:	2b20      	cmp	r3, #32
+ 80129d4:	f88d 5003 	strb.w	r5, [sp, #3]
+ 80129d8:	9501      	str	r5, [sp, #4]
+ 80129da:	f000 811b 	beq.w	8012c14 <RadioIrqProcess+0x24c>
+ 80129de:	d814      	bhi.n	8012a0a <RadioIrqProcess+0x42>
+ 80129e0:	2b08      	cmp	r3, #8
+ 80129e2:	d80d      	bhi.n	8012a00 <RadioIrqProcess+0x38>
+ 80129e4:	b17b      	cbz	r3, 8012a06 <RadioIrqProcess+0x3e>
+ 80129e6:	3b01      	subs	r3, #1
+ 80129e8:	2b07      	cmp	r3, #7
+ 80129ea:	d80c      	bhi.n	8012a06 <RadioIrqProcess+0x3e>
+ 80129ec:	e8df f013 	tbh	[pc, r3, lsl #1]
+ 80129f0:	005b0042 	.word	0x005b0042
+ 80129f4:	00cd000b 	.word	0x00cd000b
+ 80129f8:	000b000b 	.word	0x000b000b
+ 80129fc:	00fd000b 	.word	0x00fd000b
+ 8012a00:	2b10      	cmp	r3, #16
+ 8012a02:	f000 8100 	beq.w	8012c06 <RadioIrqProcess+0x23e>
+ 8012a06:	b002      	add	sp, #8
+ 8012a08:	bd70      	pop	{r4, r5, r6, pc}
+ 8012a0a:	f5b3 7f80 	cmp.w	r3, #256	; 0x100
+ 8012a0e:	f000 8098 	beq.w	8012b42 <RadioIrqProcess+0x17a>
+ 8012a12:	d811      	bhi.n	8012a38 <RadioIrqProcess+0x70>
+ 8012a14:	2b40      	cmp	r3, #64	; 0x40
+ 8012a16:	f000 8110 	beq.w	8012c3a <RadioIrqProcess+0x272>
+ 8012a1a:	2b80      	cmp	r3, #128	; 0x80
+ 8012a1c:	d1f3      	bne.n	8012a06 <RadioIrqProcess+0x3e>
+ 8012a1e:	4628      	mov	r0, r5
+ 8012a20:	f000 fa32 	bl	8012e88 <SUBGRF_SetStandby>
+ 8012a24:	4b8e      	ldr	r3, [pc, #568]	; (8012c60 <RadioIrqProcess+0x298>)
+ 8012a26:	681b      	ldr	r3, [r3, #0]
+ 8012a28:	2b00      	cmp	r3, #0
+ 8012a2a:	d0ec      	beq.n	8012a06 <RadioIrqProcess+0x3e>
+ 8012a2c:	699b      	ldr	r3, [r3, #24]
+ 8012a2e:	2b00      	cmp	r3, #0
+ 8012a30:	d0e9      	beq.n	8012a06 <RadioIrqProcess+0x3e>
+ 8012a32:	4628      	mov	r0, r5
+ 8012a34:	4798      	blx	r3
+ 8012a36:	e7e6      	b.n	8012a06 <RadioIrqProcess+0x3e>
+ 8012a38:	f5b3 7f00 	cmp.w	r3, #512	; 0x200
+ 8012a3c:	d1e3      	bne.n	8012a06 <RadioIrqProcess+0x3e>
+ 8012a3e:	4b89      	ldr	r3, [pc, #548]	; (8012c64 <RadioIrqProcess+0x29c>)
+ 8012a40:	2201      	movs	r2, #1
+ 8012a42:	4629      	mov	r1, r5
+ 8012a44:	2002      	movs	r0, #2
+ 8012a46:	f000 ff97 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8012a4a:	f000 f929 	bl	8012ca0 <SUBGRF_GetOperatingMode>
+ 8012a4e:	2804      	cmp	r0, #4
+ 8012a50:	f040 8085 	bne.w	8012b5e <RadioIrqProcess+0x196>
+ 8012a54:	4b84      	ldr	r3, [pc, #528]	; (8012c68 <RadioIrqProcess+0x2a0>)
+ 8012a56:	4885      	ldr	r0, [pc, #532]	; (8012c6c <RadioIrqProcess+0x2a4>)
+ 8012a58:	f44f 5200 	mov.w	r2, #8192	; 0x2000
+ 8012a5c:	629a      	str	r2, [r3, #40]	; 0x28
+ 8012a5e:	f001 fab9 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 8012a62:	4628      	mov	r0, r5
+ 8012a64:	f000 fa10 	bl	8012e88 <SUBGRF_SetStandby>
+ 8012a68:	4b7d      	ldr	r3, [pc, #500]	; (8012c60 <RadioIrqProcess+0x298>)
+ 8012a6a:	681b      	ldr	r3, [r3, #0]
+ 8012a6c:	2b00      	cmp	r3, #0
+ 8012a6e:	d0ca      	beq.n	8012a06 <RadioIrqProcess+0x3e>
+ 8012a70:	685b      	ldr	r3, [r3, #4]
+ 8012a72:	e014      	b.n	8012a9e <RadioIrqProcess+0xd6>
+ 8012a74:	4b7c      	ldr	r3, [pc, #496]	; (8012c68 <RadioIrqProcess+0x2a0>)
+ 8012a76:	487d      	ldr	r0, [pc, #500]	; (8012c6c <RadioIrqProcess+0x2a4>)
+ 8012a78:	f44f 5200 	mov.w	r2, #8192	; 0x2000
+ 8012a7c:	629a      	str	r2, [r3, #40]	; 0x28
+ 8012a7e:	f001 faa9 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 8012a82:	2000      	movs	r0, #0
+ 8012a84:	f000 fa00 	bl	8012e88 <SUBGRF_SetStandby>
+ 8012a88:	f000 feb8 	bl	80137fc <RFW_Is_LongPacketModeEnabled>
+ 8012a8c:	2801      	cmp	r0, #1
+ 8012a8e:	d101      	bne.n	8012a94 <RadioIrqProcess+0xcc>
+ 8012a90:	f000 febd 	bl	801380e <RFW_DeInit_TxLongPacket>
+ 8012a94:	4b72      	ldr	r3, [pc, #456]	; (8012c60 <RadioIrqProcess+0x298>)
+ 8012a96:	681b      	ldr	r3, [r3, #0]
+ 8012a98:	2b00      	cmp	r3, #0
+ 8012a9a:	d0b4      	beq.n	8012a06 <RadioIrqProcess+0x3e>
+ 8012a9c:	681b      	ldr	r3, [r3, #0]
+ 8012a9e:	2b00      	cmp	r3, #0
+ 8012aa0:	d0b1      	beq.n	8012a06 <RadioIrqProcess+0x3e>
+ 8012aa2:	4798      	blx	r3
+ 8012aa4:	e7af      	b.n	8012a06 <RadioIrqProcess+0x3e>
+ 8012aa6:	4b70      	ldr	r3, [pc, #448]	; (8012c68 <RadioIrqProcess+0x2a0>)
+ 8012aa8:	4871      	ldr	r0, [pc, #452]	; (8012c70 <RadioIrqProcess+0x2a8>)
+ 8012aaa:	f44f 5280 	mov.w	r2, #4096	; 0x1000
+ 8012aae:	629a      	str	r2, [r3, #40]	; 0x28
+ 8012ab0:	f001 fa90 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 8012ab4:	7865      	ldrb	r5, [r4, #1]
+ 8012ab6:	b995      	cbnz	r5, 8012ade <RadioIrqProcess+0x116>
+ 8012ab8:	4628      	mov	r0, r5
+ 8012aba:	f000 f9e5 	bl	8012e88 <SUBGRF_SetStandby>
+ 8012abe:	4629      	mov	r1, r5
+ 8012ac0:	f640 1002 	movw	r0, #2306	; 0x902
+ 8012ac4:	f000 f8f2 	bl	8012cac <SUBGRF_WriteRegister>
+ 8012ac8:	f640 1044 	movw	r0, #2372	; 0x944
+ 8012acc:	f000 f8fe 	bl	8012ccc <SUBGRF_ReadRegister>
+ 8012ad0:	f040 0102 	orr.w	r1, r0, #2
+ 8012ad4:	b2c9      	uxtb	r1, r1
+ 8012ad6:	f640 1044 	movw	r0, #2372	; 0x944
+ 8012ada:	f000 f8e7 	bl	8012cac <SUBGRF_WriteRegister>
+ 8012ade:	22ff      	movs	r2, #255	; 0xff
+ 8012ae0:	f10d 0103 	add.w	r1, sp, #3
+ 8012ae4:	4863      	ldr	r0, [pc, #396]	; (8012c74 <RadioIrqProcess+0x2ac>)
+ 8012ae6:	4d5e      	ldr	r5, [pc, #376]	; (8012c60 <RadioIrqProcess+0x298>)
+ 8012ae8:	f000 fd5a 	bl	80135a0 <SUBGRF_GetPayload>
+ 8012aec:	4862      	ldr	r0, [pc, #392]	; (8012c78 <RadioIrqProcess+0x2b0>)
+ 8012aee:	f000 fd71 	bl	80135d4 <SUBGRF_GetPacketStatus>
+ 8012af2:	682b      	ldr	r3, [r5, #0]
+ 8012af4:	2b00      	cmp	r3, #0
+ 8012af6:	d086      	beq.n	8012a06 <RadioIrqProcess+0x3e>
+ 8012af8:	689e      	ldr	r6, [r3, #8]
+ 8012afa:	2e00      	cmp	r6, #0
+ 8012afc:	d083      	beq.n	8012a06 <RadioIrqProcess+0x3e>
+ 8012afe:	f894 3024 	ldrb.w	r3, [r4, #36]	; 0x24
+ 8012b02:	2b01      	cmp	r3, #1
+ 8012b04:	d108      	bne.n	8012b18 <RadioIrqProcess+0x150>
+ 8012b06:	f994 3031 	ldrsb.w	r3, [r4, #49]	; 0x31
+ 8012b0a:	f994 2030 	ldrsb.w	r2, [r4, #48]	; 0x30
+ 8012b0e:	f89d 1003 	ldrb.w	r1, [sp, #3]
+ 8012b12:	4858      	ldr	r0, [pc, #352]	; (8012c74 <RadioIrqProcess+0x2ac>)
+ 8012b14:	47b0      	blx	r6
+ 8012b16:	e776      	b.n	8012a06 <RadioIrqProcess+0x3e>
+ 8012b18:	6be0      	ldr	r0, [r4, #60]	; 0x3c
+ 8012b1a:	a901      	add	r1, sp, #4
+ 8012b1c:	f000 fe22 	bl	8013764 <SUBGRF_GetCFO>
+ 8012b20:	9b01      	ldr	r3, [sp, #4]
+ 8012b22:	f89d 1003 	ldrb.w	r1, [sp, #3]
+ 8012b26:	4853      	ldr	r0, [pc, #332]	; (8012c74 <RadioIrqProcess+0x2ac>)
+ 8012b28:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
+ 8012b2c:	f503 73fa 	add.w	r3, r3, #500	; 0x1f4
+ 8012b30:	fb93 f3f2 	sdiv	r3, r3, r2
+ 8012b34:	682a      	ldr	r2, [r5, #0]
+ 8012b36:	b25b      	sxtb	r3, r3
+ 8012b38:	6895      	ldr	r5, [r2, #8]
+ 8012b3a:	f994 2029 	ldrsb.w	r2, [r4, #41]	; 0x29
+ 8012b3e:	47a8      	blx	r5
+ 8012b40:	e761      	b.n	8012a06 <RadioIrqProcess+0x3e>
+ 8012b42:	4628      	mov	r0, r5
+ 8012b44:	f000 f9a0 	bl	8012e88 <SUBGRF_SetStandby>
+ 8012b48:	4b45      	ldr	r3, [pc, #276]	; (8012c60 <RadioIrqProcess+0x298>)
+ 8012b4a:	681b      	ldr	r3, [r3, #0]
+ 8012b4c:	2b00      	cmp	r3, #0
+ 8012b4e:	f43f af5a 	beq.w	8012a06 <RadioIrqProcess+0x3e>
+ 8012b52:	699b      	ldr	r3, [r3, #24]
+ 8012b54:	2b00      	cmp	r3, #0
+ 8012b56:	f43f af56 	beq.w	8012a06 <RadioIrqProcess+0x3e>
+ 8012b5a:	2001      	movs	r0, #1
+ 8012b5c:	e76a      	b.n	8012a34 <RadioIrqProcess+0x6c>
+ 8012b5e:	f000 f89f 	bl	8012ca0 <SUBGRF_GetOperatingMode>
+ 8012b62:	2805      	cmp	r0, #5
+ 8012b64:	f47f af4f 	bne.w	8012a06 <RadioIrqProcess+0x3e>
+ 8012b68:	4b3f      	ldr	r3, [pc, #252]	; (8012c68 <RadioIrqProcess+0x2a0>)
+ 8012b6a:	4841      	ldr	r0, [pc, #260]	; (8012c70 <RadioIrqProcess+0x2a8>)
+ 8012b6c:	f44f 5280 	mov.w	r2, #4096	; 0x1000
+ 8012b70:	629a      	str	r2, [r3, #40]	; 0x28
+ 8012b72:	f001 fa2f 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 8012b76:	4628      	mov	r0, r5
+ 8012b78:	f000 f986 	bl	8012e88 <SUBGRF_SetStandby>
+ 8012b7c:	4b38      	ldr	r3, [pc, #224]	; (8012c60 <RadioIrqProcess+0x298>)
+ 8012b7e:	681b      	ldr	r3, [r3, #0]
+ 8012b80:	2b00      	cmp	r3, #0
+ 8012b82:	f43f af40 	beq.w	8012a06 <RadioIrqProcess+0x3e>
+ 8012b86:	68db      	ldr	r3, [r3, #12]
+ 8012b88:	e789      	b.n	8012a9e <RadioIrqProcess+0xd6>
+ 8012b8a:	2100      	movs	r1, #0
+ 8012b8c:	4b3b      	ldr	r3, [pc, #236]	; (8012c7c <RadioIrqProcess+0x2b4>)
+ 8012b8e:	2201      	movs	r2, #1
+ 8012b90:	2002      	movs	r0, #2
+ 8012b92:	f000 fef1 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8012b96:	6da1      	ldr	r1, [r4, #88]	; 0x58
+ 8012b98:	2900      	cmp	r1, #0
+ 8012b9a:	f43f af34 	beq.w	8012a06 <RadioIrqProcess+0x3e>
+ 8012b9e:	f3c1 4107 	ubfx	r1, r1, #16, #8
+ 8012ba2:	f640 1003 	movw	r0, #2307	; 0x903
+ 8012ba6:	f000 f881 	bl	8012cac <SUBGRF_WriteRegister>
+ 8012baa:	f894 1059 	ldrb.w	r1, [r4, #89]	; 0x59
+ 8012bae:	f640 1004 	movw	r0, #2308	; 0x904
+ 8012bb2:	f000 f87b 	bl	8012cac <SUBGRF_WriteRegister>
+ 8012bb6:	f894 1058 	ldrb.w	r1, [r4, #88]	; 0x58
+ 8012bba:	f640 1005 	movw	r0, #2309	; 0x905
+ 8012bbe:	f000 f875 	bl	8012cac <SUBGRF_WriteRegister>
+ 8012bc2:	f640 1002 	movw	r0, #2306	; 0x902
+ 8012bc6:	f000 f881 	bl	8012ccc <SUBGRF_ReadRegister>
+ 8012bca:	f040 0101 	orr.w	r1, r0, #1
+ 8012bce:	b2c9      	uxtb	r1, r1
+ 8012bd0:	f640 1002 	movw	r0, #2306	; 0x902
+ 8012bd4:	f000 f86a 	bl	8012cac <SUBGRF_WriteRegister>
+ 8012bd8:	2300      	movs	r3, #0
+ 8012bda:	f240 2162 	movw	r1, #610	; 0x262
+ 8012bde:	461a      	mov	r2, r3
+ 8012be0:	4608      	mov	r0, r1
+ 8012be2:	65a3      	str	r3, [r4, #88]	; 0x58
+ 8012be4:	f000 faaa 	bl	801313c <SUBGRF_SetDioIrqParams>
+ 8012be8:	e70d      	b.n	8012a06 <RadioIrqProcess+0x3e>
+ 8012bea:	4b25      	ldr	r3, [pc, #148]	; (8012c80 <RadioIrqProcess+0x2b8>)
+ 8012bec:	2201      	movs	r2, #1
+ 8012bee:	2100      	movs	r1, #0
+ 8012bf0:	2002      	movs	r0, #2
+ 8012bf2:	f000 fec1 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8012bf6:	f000 fdff 	bl	80137f8 <RFW_Is_Init>
+ 8012bfa:	2801      	cmp	r0, #1
+ 8012bfc:	f47f af03 	bne.w	8012a06 <RadioIrqProcess+0x3e>
+ 8012c00:	f000 fe06 	bl	8013810 <RFW_ReceivePayload>
+ 8012c04:	e6ff      	b.n	8012a06 <RadioIrqProcess+0x3e>
+ 8012c06:	4b1f      	ldr	r3, [pc, #124]	; (8012c84 <RadioIrqProcess+0x2bc>)
+ 8012c08:	2201      	movs	r2, #1
+ 8012c0a:	2100      	movs	r1, #0
+ 8012c0c:	2002      	movs	r0, #2
+ 8012c0e:	f000 feb3 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8012c12:	e6f8      	b.n	8012a06 <RadioIrqProcess+0x3e>
+ 8012c14:	4816      	ldr	r0, [pc, #88]	; (8012c70 <RadioIrqProcess+0x2a8>)
+ 8012c16:	f001 f9dd 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 8012c1a:	7860      	ldrb	r0, [r4, #1]
+ 8012c1c:	b908      	cbnz	r0, 8012c22 <RadioIrqProcess+0x25a>
+ 8012c1e:	f000 f933 	bl	8012e88 <SUBGRF_SetStandby>
+ 8012c22:	4b0f      	ldr	r3, [pc, #60]	; (8012c60 <RadioIrqProcess+0x298>)
+ 8012c24:	681b      	ldr	r3, [r3, #0]
+ 8012c26:	2b00      	cmp	r3, #0
+ 8012c28:	f43f aeed 	beq.w	8012a06 <RadioIrqProcess+0x3e>
+ 8012c2c:	68db      	ldr	r3, [r3, #12]
+ 8012c2e:	2b00      	cmp	r3, #0
+ 8012c30:	f43f aee9 	beq.w	8012a06 <RadioIrqProcess+0x3e>
+ 8012c34:	4798      	blx	r3
+ 8012c36:	4b14      	ldr	r3, [pc, #80]	; (8012c88 <RadioIrqProcess+0x2c0>)
+ 8012c38:	e7e6      	b.n	8012c08 <RadioIrqProcess+0x240>
+ 8012c3a:	4b14      	ldr	r3, [pc, #80]	; (8012c8c <RadioIrqProcess+0x2c4>)
+ 8012c3c:	2201      	movs	r2, #1
+ 8012c3e:	4629      	mov	r1, r5
+ 8012c40:	2002      	movs	r0, #2
+ 8012c42:	f000 fe99 	bl	8013978 <UTIL_ADV_TRACE_COND_FSend>
+ 8012c46:	7860      	ldrb	r0, [r4, #1]
+ 8012c48:	b908      	cbnz	r0, 8012c4e <RadioIrqProcess+0x286>
+ 8012c4a:	f000 f91d 	bl	8012e88 <SUBGRF_SetStandby>
+ 8012c4e:	4b04      	ldr	r3, [pc, #16]	; (8012c60 <RadioIrqProcess+0x298>)
+ 8012c50:	681b      	ldr	r3, [r3, #0]
+ 8012c52:	2b00      	cmp	r3, #0
+ 8012c54:	f43f aed7 	beq.w	8012a06 <RadioIrqProcess+0x3e>
+ 8012c58:	691b      	ldr	r3, [r3, #16]
+ 8012c5a:	e720      	b.n	8012a9e <RadioIrqProcess+0xd6>
+ 8012c5c:	20002748 	.word	0x20002748
+ 8012c60:	2000272c 	.word	0x2000272c
+ 8012c64:	08015931 	.word	0x08015931
+ 8012c68:	48000400 	.word	0x48000400
+ 8012c6c:	200027a4 	.word	0x200027a4
+ 8012c70:	20002730 	.word	0x20002730
+ 8012c74:	2000262c 	.word	0x2000262c
+ 8012c78:	2000276c 	.word	0x2000276c
+ 8012c7c:	08015945 	.word	0x08015945
+ 8012c80:	0801594e 	.word	0x0801594e
+ 8012c84:	08015958 	.word	0x08015958
+ 8012c88:	08015961 	.word	0x08015961
+ 8012c8c:	0801596a 	.word	0x0801596a
+
+08012c90 <RadioOnDioIrq>:
+ 8012c90:	4b02      	ldr	r3, [pc, #8]	; (8012c9c <RadioOnDioIrq+0xc>)
+ 8012c92:	f8a3 0054 	strh.w	r0, [r3, #84]	; 0x54
+ 8012c96:	f7ff be97 	b.w	80129c8 <RadioIrqProcess>
+ 8012c9a:	bf00      	nop
+ 8012c9c:	20002748 	.word	0x20002748
+
+08012ca0 <SUBGRF_GetOperatingMode>:
+ 8012ca0:	4b01      	ldr	r3, [pc, #4]	; (8012ca8 <SUBGRF_GetOperatingMode+0x8>)
+ 8012ca2:	7818      	ldrb	r0, [r3, #0]
+ 8012ca4:	4770      	bx	lr
+ 8012ca6:	bf00      	nop
+ 8012ca8:	200027c2 	.word	0x200027c2
+
+08012cac <SUBGRF_WriteRegister>:
+ 8012cac:	b507      	push	{r0, r1, r2, lr}
+ 8012cae:	2301      	movs	r3, #1
+ 8012cb0:	f88d 1007 	strb.w	r1, [sp, #7]
+ 8012cb4:	f10d 0207 	add.w	r2, sp, #7
+ 8012cb8:	4601      	mov	r1, r0
+ 8012cba:	4803      	ldr	r0, [pc, #12]	; (8012cc8 <SUBGRF_WriteRegister+0x1c>)
+ 8012cbc:	f7f7 fa06 	bl	800a0cc <HAL_SUBGHZ_WriteRegisters>
+ 8012cc0:	b003      	add	sp, #12
+ 8012cc2:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8012cc6:	bf00      	nop
+ 8012cc8:	20000acc 	.word	0x20000acc
+
+08012ccc <SUBGRF_ReadRegister>:
+ 8012ccc:	b507      	push	{r0, r1, r2, lr}
+ 8012cce:	2301      	movs	r3, #1
+ 8012cd0:	4601      	mov	r1, r0
+ 8012cd2:	f10d 0207 	add.w	r2, sp, #7
+ 8012cd6:	4804      	ldr	r0, [pc, #16]	; (8012ce8 <SUBGRF_ReadRegister+0x1c>)
+ 8012cd8:	f7f7 fa31 	bl	800a13e <HAL_SUBGHZ_ReadRegisters>
+ 8012cdc:	f89d 0007 	ldrb.w	r0, [sp, #7]
+ 8012ce0:	b003      	add	sp, #12
+ 8012ce2:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8012ce6:	bf00      	nop
+ 8012ce8:	20000acc 	.word	0x20000acc
+
+08012cec <Radio_SMPS_Set>:
+ 8012cec:	b510      	push	{r4, lr}
+ 8012cee:	4604      	mov	r4, r0
+ 8012cf0:	f7f1 fda4 	bl	800483c <RBI_IsDCDC>
+ 8012cf4:	2801      	cmp	r0, #1
+ 8012cf6:	d10c      	bne.n	8012d12 <Radio_SMPS_Set+0x26>
+ 8012cf8:	f640 1023 	movw	r0, #2339	; 0x923
+ 8012cfc:	f7ff ffe6 	bl	8012ccc <SUBGRF_ReadRegister>
+ 8012d00:	f000 01f9 	and.w	r1, r0, #249	; 0xf9
+ 8012d04:	4321      	orrs	r1, r4
+ 8012d06:	f640 1023 	movw	r0, #2339	; 0x923
+ 8012d0a:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8012d0e:	f7ff bfcd 	b.w	8012cac <SUBGRF_WriteRegister>
+ 8012d12:	bd10      	pop	{r4, pc}
+
+08012d14 <SUBGRF_SetWhiteningSeed>:
+ 8012d14:	b510      	push	{r4, lr}
+ 8012d16:	4b0c      	ldr	r3, [pc, #48]	; (8012d48 <SUBGRF_SetWhiteningSeed+0x34>)
+ 8012d18:	781b      	ldrb	r3, [r3, #0]
+ 8012d1a:	4604      	mov	r4, r0
+ 8012d1c:	b99b      	cbnz	r3, 8012d46 <SUBGRF_SetWhiteningSeed+0x32>
+ 8012d1e:	f44f 60d7 	mov.w	r0, #1720	; 0x6b8
+ 8012d22:	f7ff ffd3 	bl	8012ccc <SUBGRF_ReadRegister>
+ 8012d26:	f3c4 2100 	ubfx	r1, r4, #8, #1
+ 8012d2a:	f000 00fe 	and.w	r0, r0, #254	; 0xfe
+ 8012d2e:	4301      	orrs	r1, r0
+ 8012d30:	f44f 60d7 	mov.w	r0, #1720	; 0x6b8
+ 8012d34:	f7ff ffba 	bl	8012cac <SUBGRF_WriteRegister>
+ 8012d38:	b2e1      	uxtb	r1, r4
+ 8012d3a:	f240 60b9 	movw	r0, #1721	; 0x6b9
+ 8012d3e:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8012d42:	f7ff bfb3 	b.w	8012cac <SUBGRF_WriteRegister>
+ 8012d46:	bd10      	pop	{r4, pc}
+ 8012d48:	200027c3 	.word	0x200027c3
+
+08012d4c <SUBGRF_WriteRegisters>:
+ 8012d4c:	b510      	push	{r4, lr}
+ 8012d4e:	4613      	mov	r3, r2
+ 8012d50:	f3ef 8410 	mrs	r4, PRIMASK
+ 8012d54:	b672      	cpsid	i
+ 8012d56:	460a      	mov	r2, r1
+ 8012d58:	4601      	mov	r1, r0
+ 8012d5a:	4803      	ldr	r0, [pc, #12]	; (8012d68 <SUBGRF_WriteRegisters+0x1c>)
+ 8012d5c:	f7f7 f9b6 	bl	800a0cc <HAL_SUBGHZ_WriteRegisters>
+ 8012d60:	f384 8810 	msr	PRIMASK, r4
+ 8012d64:	bd10      	pop	{r4, pc}
+ 8012d66:	bf00      	nop
+ 8012d68:	20000acc 	.word	0x20000acc
+
+08012d6c <SUBGRF_SetSyncWord>:
+ 8012d6c:	b508      	push	{r3, lr}
+ 8012d6e:	4601      	mov	r1, r0
+ 8012d70:	2208      	movs	r2, #8
+ 8012d72:	f44f 60d8 	mov.w	r0, #1728	; 0x6c0
+ 8012d76:	f7ff ffe9 	bl	8012d4c <SUBGRF_WriteRegisters>
+ 8012d7a:	2000      	movs	r0, #0
+ 8012d7c:	bd08      	pop	{r3, pc}
+	...
+
+08012d80 <SUBGRF_SetCrcSeed>:
+ 8012d80:	b507      	push	{r0, r1, r2, lr}
+ 8012d82:	4b07      	ldr	r3, [pc, #28]	; (8012da0 <SUBGRF_SetCrcSeed+0x20>)
+ 8012d84:	781b      	ldrb	r3, [r3, #0]
+ 8012d86:	ba40      	rev16	r0, r0
+ 8012d88:	f8ad 0004 	strh.w	r0, [sp, #4]
+ 8012d8c:	b92b      	cbnz	r3, 8012d9a <SUBGRF_SetCrcSeed+0x1a>
+ 8012d8e:	2202      	movs	r2, #2
+ 8012d90:	a901      	add	r1, sp, #4
+ 8012d92:	f240 60bc 	movw	r0, #1724	; 0x6bc
+ 8012d96:	f7ff ffd9 	bl	8012d4c <SUBGRF_WriteRegisters>
+ 8012d9a:	b003      	add	sp, #12
+ 8012d9c:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8012da0:	200027c3 	.word	0x200027c3
+
+08012da4 <SUBGRF_SetCrcPolynomial>:
+ 8012da4:	b507      	push	{r0, r1, r2, lr}
+ 8012da6:	4b07      	ldr	r3, [pc, #28]	; (8012dc4 <SUBGRF_SetCrcPolynomial+0x20>)
+ 8012da8:	781b      	ldrb	r3, [r3, #0]
+ 8012daa:	ba40      	rev16	r0, r0
+ 8012dac:	f8ad 0004 	strh.w	r0, [sp, #4]
+ 8012db0:	b92b      	cbnz	r3, 8012dbe <SUBGRF_SetCrcPolynomial+0x1a>
+ 8012db2:	2202      	movs	r2, #2
+ 8012db4:	a901      	add	r1, sp, #4
+ 8012db6:	f240 60be 	movw	r0, #1726	; 0x6be
+ 8012dba:	f7ff ffc7 	bl	8012d4c <SUBGRF_WriteRegisters>
+ 8012dbe:	b003      	add	sp, #12
+ 8012dc0:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8012dc4:	200027c3 	.word	0x200027c3
+
+08012dc8 <SUBGRF_ReadRegisters>:
+ 8012dc8:	b510      	push	{r4, lr}
+ 8012dca:	4613      	mov	r3, r2
+ 8012dcc:	f3ef 8410 	mrs	r4, PRIMASK
+ 8012dd0:	b672      	cpsid	i
+ 8012dd2:	460a      	mov	r2, r1
+ 8012dd4:	4601      	mov	r1, r0
+ 8012dd6:	4803      	ldr	r0, [pc, #12]	; (8012de4 <SUBGRF_ReadRegisters+0x1c>)
+ 8012dd8:	f7f7 f9b1 	bl	800a13e <HAL_SUBGHZ_ReadRegisters>
+ 8012ddc:	f384 8810 	msr	PRIMASK, r4
+ 8012de0:	bd10      	pop	{r4, pc}
+ 8012de2:	bf00      	nop
+ 8012de4:	20000acc 	.word	0x20000acc
+
+08012de8 <SUBGRF_WriteBuffer>:
+ 8012de8:	b510      	push	{r4, lr}
+ 8012dea:	4613      	mov	r3, r2
+ 8012dec:	f3ef 8410 	mrs	r4, PRIMASK
+ 8012df0:	b672      	cpsid	i
+ 8012df2:	460a      	mov	r2, r1
+ 8012df4:	4601      	mov	r1, r0
+ 8012df6:	4803      	ldr	r0, [pc, #12]	; (8012e04 <SUBGRF_WriteBuffer+0x1c>)
+ 8012df8:	f7f7 fa93 	bl	800a322 <HAL_SUBGHZ_WriteBuffer>
+ 8012dfc:	f384 8810 	msr	PRIMASK, r4
+ 8012e00:	bd10      	pop	{r4, pc}
+ 8012e02:	bf00      	nop
+ 8012e04:	20000acc 	.word	0x20000acc
+
+08012e08 <SUBGRF_SetPayload>:
+ 8012e08:	460a      	mov	r2, r1
+ 8012e0a:	4601      	mov	r1, r0
+ 8012e0c:	2000      	movs	r0, #0
+ 8012e0e:	f7ff bfeb 	b.w	8012de8 <SUBGRF_WriteBuffer>
+	...
+
+08012e14 <SUBGRF_ReadBuffer>:
+ 8012e14:	b510      	push	{r4, lr}
+ 8012e16:	4613      	mov	r3, r2
+ 8012e18:	f3ef 8410 	mrs	r4, PRIMASK
+ 8012e1c:	b672      	cpsid	i
+ 8012e1e:	460a      	mov	r2, r1
+ 8012e20:	4601      	mov	r1, r0
+ 8012e22:	4803      	ldr	r0, [pc, #12]	; (8012e30 <SUBGRF_ReadBuffer+0x1c>)
+ 8012e24:	f7f7 fab0 	bl	800a388 <HAL_SUBGHZ_ReadBuffer>
+ 8012e28:	f384 8810 	msr	PRIMASK, r4
+ 8012e2c:	bd10      	pop	{r4, pc}
+ 8012e2e:	bf00      	nop
+ 8012e30:	20000acc 	.word	0x20000acc
+
+08012e34 <SUBGRF_WriteCommand>:
+ 8012e34:	b510      	push	{r4, lr}
+ 8012e36:	4613      	mov	r3, r2
+ 8012e38:	f3ef 8410 	mrs	r4, PRIMASK
+ 8012e3c:	b672      	cpsid	i
+ 8012e3e:	460a      	mov	r2, r1
+ 8012e40:	4601      	mov	r1, r0
+ 8012e42:	4803      	ldr	r0, [pc, #12]	; (8012e50 <SUBGRF_WriteCommand+0x1c>)
+ 8012e44:	f7f7 f9b6 	bl	800a1b4 <HAL_SUBGHZ_ExecSetCmd>
+ 8012e48:	f384 8810 	msr	PRIMASK, r4
+ 8012e4c:	bd10      	pop	{r4, pc}
+ 8012e4e:	bf00      	nop
+ 8012e50:	20000acc 	.word	0x20000acc
+
+08012e54 <SUBGRF_SetSleep>:
+ 8012e54:	b513      	push	{r0, r1, r4, lr}
+ 8012e56:	4604      	mov	r4, r0
+ 8012e58:	2000      	movs	r0, #0
+ 8012e5a:	f7f1 fcc9 	bl	80047f0 <RBI_ConfigRFSwitch>
+ 8012e5e:	2002      	movs	r0, #2
+ 8012e60:	f7ff ff44 	bl	8012cec <Radio_SMPS_Set>
+ 8012e64:	f004 0407 	and.w	r4, r4, #7
+ 8012e68:	2201      	movs	r2, #1
+ 8012e6a:	f10d 0107 	add.w	r1, sp, #7
+ 8012e6e:	2084      	movs	r0, #132	; 0x84
+ 8012e70:	f88d 4007 	strb.w	r4, [sp, #7]
+ 8012e74:	f7ff ffde 	bl	8012e34 <SUBGRF_WriteCommand>
+ 8012e78:	4b02      	ldr	r3, [pc, #8]	; (8012e84 <SUBGRF_SetSleep+0x30>)
+ 8012e7a:	2200      	movs	r2, #0
+ 8012e7c:	701a      	strb	r2, [r3, #0]
+ 8012e7e:	b002      	add	sp, #8
+ 8012e80:	bd10      	pop	{r4, pc}
+ 8012e82:	bf00      	nop
+ 8012e84:	200027c2 	.word	0x200027c2
+
+08012e88 <SUBGRF_SetStandby>:
+ 8012e88:	b507      	push	{r0, r1, r2, lr}
+ 8012e8a:	2201      	movs	r2, #1
+ 8012e8c:	f88d 0007 	strb.w	r0, [sp, #7]
+ 8012e90:	f10d 0107 	add.w	r1, sp, #7
+ 8012e94:	2080      	movs	r0, #128	; 0x80
+ 8012e96:	f7ff ffcd 	bl	8012e34 <SUBGRF_WriteCommand>
+ 8012e9a:	f89d 3007 	ldrb.w	r3, [sp, #7]
+ 8012e9e:	2b00      	cmp	r3, #0
+ 8012ea0:	4b03      	ldr	r3, [pc, #12]	; (8012eb0 <SUBGRF_SetStandby+0x28>)
+ 8012ea2:	bf0c      	ite	eq
+ 8012ea4:	2201      	moveq	r2, #1
+ 8012ea6:	2202      	movne	r2, #2
+ 8012ea8:	701a      	strb	r2, [r3, #0]
+ 8012eaa:	b003      	add	sp, #12
+ 8012eac:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8012eb0:	200027c2 	.word	0x200027c2
+
+08012eb4 <SUBGRF_SetTx>:
+ 8012eb4:	b507      	push	{r0, r1, r2, lr}
+ 8012eb6:	4b09      	ldr	r3, [pc, #36]	; (8012edc <SUBGRF_SetTx+0x28>)
+ 8012eb8:	f88d 0006 	strb.w	r0, [sp, #6]
+ 8012ebc:	2204      	movs	r2, #4
+ 8012ebe:	701a      	strb	r2, [r3, #0]
+ 8012ec0:	0c03      	lsrs	r3, r0, #16
+ 8012ec2:	f88d 3004 	strb.w	r3, [sp, #4]
+ 8012ec6:	2203      	movs	r2, #3
+ 8012ec8:	0a03      	lsrs	r3, r0, #8
+ 8012eca:	a901      	add	r1, sp, #4
+ 8012ecc:	2083      	movs	r0, #131	; 0x83
+ 8012ece:	f88d 3005 	strb.w	r3, [sp, #5]
+ 8012ed2:	f7ff ffaf 	bl	8012e34 <SUBGRF_WriteCommand>
+ 8012ed6:	b003      	add	sp, #12
+ 8012ed8:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8012edc:	200027c2 	.word	0x200027c2
+
+08012ee0 <SUBGRF_SendPayload>:
+ 8012ee0:	b510      	push	{r4, lr}
+ 8012ee2:	4614      	mov	r4, r2
+ 8012ee4:	f7ff ff90 	bl	8012e08 <SUBGRF_SetPayload>
+ 8012ee8:	4620      	mov	r0, r4
+ 8012eea:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8012eee:	f7ff bfe1 	b.w	8012eb4 <SUBGRF_SetTx>
+	...
+
+08012ef4 <SUBGRF_SetRx>:
+ 8012ef4:	b507      	push	{r0, r1, r2, lr}
+ 8012ef6:	4b09      	ldr	r3, [pc, #36]	; (8012f1c <SUBGRF_SetRx+0x28>)
+ 8012ef8:	f88d 0006 	strb.w	r0, [sp, #6]
+ 8012efc:	2205      	movs	r2, #5
+ 8012efe:	701a      	strb	r2, [r3, #0]
+ 8012f00:	0c03      	lsrs	r3, r0, #16
+ 8012f02:	f88d 3004 	strb.w	r3, [sp, #4]
+ 8012f06:	2203      	movs	r2, #3
+ 8012f08:	0a03      	lsrs	r3, r0, #8
+ 8012f0a:	a901      	add	r1, sp, #4
+ 8012f0c:	2082      	movs	r0, #130	; 0x82
+ 8012f0e:	f88d 3005 	strb.w	r3, [sp, #5]
+ 8012f12:	f7ff ff8f 	bl	8012e34 <SUBGRF_WriteCommand>
+ 8012f16:	b003      	add	sp, #12
+ 8012f18:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8012f1c:	200027c2 	.word	0x200027c2
+
+08012f20 <SUBGRF_GetRandom>:
+ 8012f20:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 8012f22:	2600      	movs	r6, #0
+ 8012f24:	f640 00e2 	movw	r0, #2274	; 0x8e2
+ 8012f28:	9601      	str	r6, [sp, #4]
+ 8012f2a:	f7ff fecf 	bl	8012ccc <SUBGRF_ReadRegister>
+ 8012f2e:	f000 01fe 	and.w	r1, r0, #254	; 0xfe
+ 8012f32:	4605      	mov	r5, r0
+ 8012f34:	f640 00e2 	movw	r0, #2274	; 0x8e2
+ 8012f38:	f7ff feb8 	bl	8012cac <SUBGRF_WriteRegister>
+ 8012f3c:	f640 00e5 	movw	r0, #2277	; 0x8e5
+ 8012f40:	f7ff fec4 	bl	8012ccc <SUBGRF_ReadRegister>
+ 8012f44:	f000 017f 	and.w	r1, r0, #127	; 0x7f
+ 8012f48:	4604      	mov	r4, r0
+ 8012f4a:	f640 00e5 	movw	r0, #2277	; 0x8e5
+ 8012f4e:	f7ff fead 	bl	8012cac <SUBGRF_WriteRegister>
+ 8012f52:	f06f 407f 	mvn.w	r0, #4278190080	; 0xff000000
+ 8012f56:	f7ff ffcd 	bl	8012ef4 <SUBGRF_SetRx>
+ 8012f5a:	2204      	movs	r2, #4
+ 8012f5c:	eb0d 0102 	add.w	r1, sp, r2
+ 8012f60:	f640 0019 	movw	r0, #2073	; 0x819
+ 8012f64:	f7ff ff30 	bl	8012dc8 <SUBGRF_ReadRegisters>
+ 8012f68:	4630      	mov	r0, r6
+ 8012f6a:	f7ff ff8d 	bl	8012e88 <SUBGRF_SetStandby>
+ 8012f6e:	4629      	mov	r1, r5
+ 8012f70:	f640 00e2 	movw	r0, #2274	; 0x8e2
+ 8012f74:	f7ff fe9a 	bl	8012cac <SUBGRF_WriteRegister>
+ 8012f78:	4621      	mov	r1, r4
+ 8012f7a:	f640 00e5 	movw	r0, #2277	; 0x8e5
+ 8012f7e:	f7ff fe95 	bl	8012cac <SUBGRF_WriteRegister>
+ 8012f82:	9801      	ldr	r0, [sp, #4]
+ 8012f84:	b002      	add	sp, #8
+ 8012f86:	bd70      	pop	{r4, r5, r6, pc}
+
+08012f88 <SUBGRF_SetRxBoosted>:
+ 8012f88:	b513      	push	{r0, r1, r4, lr}
+ 8012f8a:	4b0c      	ldr	r3, [pc, #48]	; (8012fbc <SUBGRF_SetRxBoosted+0x34>)
+ 8012f8c:	4604      	mov	r4, r0
+ 8012f8e:	2205      	movs	r2, #5
+ 8012f90:	2197      	movs	r1, #151	; 0x97
+ 8012f92:	f640 00ac 	movw	r0, #2220	; 0x8ac
+ 8012f96:	701a      	strb	r2, [r3, #0]
+ 8012f98:	f7ff fe88 	bl	8012cac <SUBGRF_WriteRegister>
+ 8012f9c:	0c23      	lsrs	r3, r4, #16
+ 8012f9e:	f88d 3004 	strb.w	r3, [sp, #4]
+ 8012fa2:	2203      	movs	r2, #3
+ 8012fa4:	0a23      	lsrs	r3, r4, #8
+ 8012fa6:	a901      	add	r1, sp, #4
+ 8012fa8:	2082      	movs	r0, #130	; 0x82
+ 8012faa:	f88d 3005 	strb.w	r3, [sp, #5]
+ 8012fae:	f88d 4006 	strb.w	r4, [sp, #6]
+ 8012fb2:	f7ff ff3f 	bl	8012e34 <SUBGRF_WriteCommand>
+ 8012fb6:	b002      	add	sp, #8
+ 8012fb8:	bd10      	pop	{r4, pc}
+ 8012fba:	bf00      	nop
+ 8012fbc:	200027c2 	.word	0x200027c2
+
+08012fc0 <SUBGRF_SetRxDutyCycle>:
+ 8012fc0:	b507      	push	{r0, r1, r2, lr}
+ 8012fc2:	0c03      	lsrs	r3, r0, #16
+ 8012fc4:	f88d 3000 	strb.w	r3, [sp]
+ 8012fc8:	0a03      	lsrs	r3, r0, #8
+ 8012fca:	f88d 3001 	strb.w	r3, [sp, #1]
+ 8012fce:	0c0b      	lsrs	r3, r1, #16
+ 8012fd0:	ba49      	rev16	r1, r1
+ 8012fd2:	f88d 0002 	strb.w	r0, [sp, #2]
+ 8012fd6:	f8ad 1004 	strh.w	r1, [sp, #4]
+ 8012fda:	2206      	movs	r2, #6
+ 8012fdc:	4669      	mov	r1, sp
+ 8012fde:	2094      	movs	r0, #148	; 0x94
+ 8012fe0:	f88d 3003 	strb.w	r3, [sp, #3]
+ 8012fe4:	f7ff ff26 	bl	8012e34 <SUBGRF_WriteCommand>
+ 8012fe8:	4b02      	ldr	r3, [pc, #8]	; (8012ff4 <SUBGRF_SetRxDutyCycle+0x34>)
+ 8012fea:	2206      	movs	r2, #6
+ 8012fec:	701a      	strb	r2, [r3, #0]
+ 8012fee:	b003      	add	sp, #12
+ 8012ff0:	f85d fb04 	ldr.w	pc, [sp], #4
+ 8012ff4:	200027c2 	.word	0x200027c2
+
+08012ff8 <SUBGRF_SetCad>:
+ 8012ff8:	2200      	movs	r2, #0
+ 8012ffa:	b508      	push	{r3, lr}
+ 8012ffc:	4611      	mov	r1, r2
+ 8012ffe:	20c5      	movs	r0, #197	; 0xc5
+ 8013000:	f7ff ff18 	bl	8012e34 <SUBGRF_WriteCommand>
+ 8013004:	4b01      	ldr	r3, [pc, #4]	; (801300c <SUBGRF_SetCad+0x14>)
+ 8013006:	2207      	movs	r2, #7
+ 8013008:	701a      	strb	r2, [r3, #0]
+ 801300a:	bd08      	pop	{r3, pc}
+ 801300c:	200027c2 	.word	0x200027c2
+
+08013010 <SUBGRF_SetTxContinuousWave>:
+ 8013010:	2200      	movs	r2, #0
+ 8013012:	4611      	mov	r1, r2
+ 8013014:	20d1      	movs	r0, #209	; 0xd1
+ 8013016:	f7ff bf0d 	b.w	8012e34 <SUBGRF_WriteCommand>
+
+0801301a <SUBGRF_SetTxInfinitePreamble>:
+ 801301a:	2200      	movs	r2, #0
+ 801301c:	4611      	mov	r1, r2
+ 801301e:	20d2      	movs	r0, #210	; 0xd2
+ 8013020:	f7ff bf08 	b.w	8012e34 <SUBGRF_WriteCommand>
+
+08013024 <SUBGRF_SetStopRxTimerOnPreambleDetect>:
+ 8013024:	b507      	push	{r0, r1, r2, lr}
+ 8013026:	2201      	movs	r2, #1
+ 8013028:	f88d 0007 	strb.w	r0, [sp, #7]
+ 801302c:	f10d 0107 	add.w	r1, sp, #7
+ 8013030:	209f      	movs	r0, #159	; 0x9f
+ 8013032:	f7ff feff 	bl	8012e34 <SUBGRF_WriteCommand>
+ 8013036:	b003      	add	sp, #12
+ 8013038:	f85d fb04 	ldr.w	pc, [sp], #4
+
+0801303c <SUBGRF_SetLoRaSymbNumTimeout>:
+ 801303c:	b507      	push	{r0, r1, r2, lr}
+ 801303e:	2201      	movs	r2, #1
+ 8013040:	f88d 0007 	strb.w	r0, [sp, #7]
+ 8013044:	f10d 0107 	add.w	r1, sp, #7
+ 8013048:	20a0      	movs	r0, #160	; 0xa0
+ 801304a:	f7ff fef3 	bl	8012e34 <SUBGRF_WriteCommand>
+ 801304e:	f89d 1007 	ldrb.w	r1, [sp, #7]
+ 8013052:	293f      	cmp	r1, #63	; 0x3f
+ 8013054:	d907      	bls.n	8013066 <SUBGRF_SetLoRaSymbNumTimeout+0x2a>
+ 8013056:	f001 01f8 	and.w	r1, r1, #248	; 0xf8
+ 801305a:	3101      	adds	r1, #1
+ 801305c:	b2c9      	uxtb	r1, r1
+ 801305e:	f240 7006 	movw	r0, #1798	; 0x706
+ 8013062:	f7ff fe23 	bl	8012cac <SUBGRF_WriteRegister>
+ 8013066:	b003      	add	sp, #12
+ 8013068:	f85d fb04 	ldr.w	pc, [sp], #4
+
+0801306c <SUBGRF_SetRegulatorMode>:
+ 801306c:	b507      	push	{r0, r1, r2, lr}
+ 801306e:	f7f1 fbe5 	bl	800483c <RBI_IsDCDC>
+ 8013072:	1e43      	subs	r3, r0, #1
+ 8013074:	4258      	negs	r0, r3
+ 8013076:	4158      	adcs	r0, r3
+ 8013078:	f88d 0007 	strb.w	r0, [sp, #7]
+ 801307c:	2201      	movs	r2, #1
+ 801307e:	f10d 0107 	add.w	r1, sp, #7
+ 8013082:	2096      	movs	r0, #150	; 0x96
+ 8013084:	f7ff fed6 	bl	8012e34 <SUBGRF_WriteCommand>
+ 8013088:	b003      	add	sp, #12
+ 801308a:	f85d fb04 	ldr.w	pc, [sp], #4
+
+0801308e <SUBGRF_Calibrate>:
+ 801308e:	b507      	push	{r0, r1, r2, lr}
+ 8013090:	f000 007f 	and.w	r0, r0, #127	; 0x7f
+ 8013094:	f88d 0007 	strb.w	r0, [sp, #7]
+ 8013098:	2201      	movs	r2, #1
+ 801309a:	f10d 0107 	add.w	r1, sp, #7
+ 801309e:	2089      	movs	r0, #137	; 0x89
+ 80130a0:	f7ff fec8 	bl	8012e34 <SUBGRF_WriteCommand>
+ 80130a4:	b003      	add	sp, #12
+ 80130a6:	f85d fb04 	ldr.w	pc, [sp], #4
+	...
+
+080130ac <SUBGRF_CalibrateImage>:
+ 80130ac:	4b15      	ldr	r3, [pc, #84]	; (8013104 <SUBGRF_CalibrateImage+0x58>)
+ 80130ae:	4298      	cmp	r0, r3
+ 80130b0:	b507      	push	{r0, r1, r2, lr}
+ 80130b2:	d81b      	bhi.n	80130ec <SUBGRF_CalibrateImage+0x40>
+ 80130b4:	4b14      	ldr	r3, [pc, #80]	; (8013108 <SUBGRF_CalibrateImage+0x5c>)
+ 80130b6:	4298      	cmp	r0, r3
+ 80130b8:	d81b      	bhi.n	80130f2 <SUBGRF_CalibrateImage+0x46>
+ 80130ba:	4b14      	ldr	r3, [pc, #80]	; (801310c <SUBGRF_CalibrateImage+0x60>)
+ 80130bc:	4298      	cmp	r0, r3
+ 80130be:	d81b      	bhi.n	80130f8 <SUBGRF_CalibrateImage+0x4c>
+ 80130c0:	4b13      	ldr	r3, [pc, #76]	; (8013110 <SUBGRF_CalibrateImage+0x64>)
+ 80130c2:	4298      	cmp	r0, r3
+ 80130c4:	d81b      	bhi.n	80130fe <SUBGRF_CalibrateImage+0x52>
+ 80130c6:	4b13      	ldr	r3, [pc, #76]	; (8013114 <SUBGRF_CalibrateImage+0x68>)
+ 80130c8:	4298      	cmp	r0, r3
+ 80130ca:	bf95      	itete	ls
+ 80130cc:	2229      	movls	r2, #41	; 0x29
+ 80130ce:	226b      	movhi	r2, #107	; 0x6b
+ 80130d0:	232b      	movls	r3, #43	; 0x2b
+ 80130d2:	236f      	movhi	r3, #111	; 0x6f
+ 80130d4:	f88d 2004 	strb.w	r2, [sp, #4]
+ 80130d8:	a901      	add	r1, sp, #4
+ 80130da:	2202      	movs	r2, #2
+ 80130dc:	2098      	movs	r0, #152	; 0x98
+ 80130de:	f88d 3005 	strb.w	r3, [sp, #5]
+ 80130e2:	f7ff fea7 	bl	8012e34 <SUBGRF_WriteCommand>
+ 80130e6:	b003      	add	sp, #12
+ 80130e8:	f85d fb04 	ldr.w	pc, [sp], #4
+ 80130ec:	22e1      	movs	r2, #225	; 0xe1
+ 80130ee:	23e9      	movs	r3, #233	; 0xe9
+ 80130f0:	e7f0      	b.n	80130d4 <SUBGRF_CalibrateImage+0x28>
+ 80130f2:	22d7      	movs	r2, #215	; 0xd7
+ 80130f4:	23db      	movs	r3, #219	; 0xdb
+ 80130f6:	e7ed      	b.n	80130d4 <SUBGRF_CalibrateImage+0x28>
+ 80130f8:	22c1      	movs	r2, #193	; 0xc1
+ 80130fa:	23c5      	movs	r3, #197	; 0xc5
+ 80130fc:	e7ea      	b.n	80130d4 <SUBGRF_CalibrateImage+0x28>
+ 80130fe:	2275      	movs	r2, #117	; 0x75
+ 8013100:	2381      	movs	r3, #129	; 0x81
+ 8013102:	e7e7      	b.n	80130d4 <SUBGRF_CalibrateImage+0x28>
+ 8013104:	35a4e900 	.word	0x35a4e900
+ 8013108:	32a9f880 	.word	0x32a9f880
+ 801310c:	2de54480 	.word	0x2de54480
+ 8013110:	1b6b0b00 	.word	0x1b6b0b00
+ 8013114:	1954fc40 	.word	0x1954fc40
+
+08013118 <SUBGRF_SetPaConfig>:
+ 8013118:	b507      	push	{r0, r1, r2, lr}
+ 801311a:	f88d 2006 	strb.w	r2, [sp, #6]
+ 801311e:	2204      	movs	r2, #4
+ 8013120:	f88d 0004 	strb.w	r0, [sp, #4]
+ 8013124:	f88d 1005 	strb.w	r1, [sp, #5]
+ 8013128:	2095      	movs	r0, #149	; 0x95
+ 801312a:	eb0d 0102 	add.w	r1, sp, r2
+ 801312e:	f88d 3007 	strb.w	r3, [sp, #7]
+ 8013132:	f7ff fe7f 	bl	8012e34 <SUBGRF_WriteCommand>
+ 8013136:	b003      	add	sp, #12
+ 8013138:	f85d fb04 	ldr.w	pc, [sp], #4
+
+0801313c <SUBGRF_SetDioIrqParams>:
+ 801313c:	b507      	push	{r0, r1, r2, lr}
+ 801313e:	ba52      	rev16	r2, r2
+ 8013140:	f8ad 2004 	strh.w	r2, [sp, #4]
+ 8013144:	ba40      	rev16	r0, r0
+ 8013146:	2208      	movs	r2, #8
+ 8013148:	ba49      	rev16	r1, r1
+ 801314a:	f8ad 0000 	strh.w	r0, [sp]
+ 801314e:	f8ad 1002 	strh.w	r1, [sp, #2]
+ 8013152:	ba5b      	rev16	r3, r3
+ 8013154:	4669      	mov	r1, sp
+ 8013156:	4610      	mov	r0, r2
+ 8013158:	f8ad 3006 	strh.w	r3, [sp, #6]
+ 801315c:	f7ff fe6a 	bl	8012e34 <SUBGRF_WriteCommand>
+ 8013160:	b003      	add	sp, #12
+ 8013162:	f85d fb04 	ldr.w	pc, [sp], #4
+
+08013166 <SUBGRF_SetTcxoMode>:
+ 8013166:	b507      	push	{r0, r1, r2, lr}
+ 8013168:	0c0b      	lsrs	r3, r1, #16
+ 801316a:	2204      	movs	r2, #4
+ 801316c:	f000 0007 	and.w	r0, r0, #7
+ 8013170:	ba49      	rev16	r1, r1
+ 8013172:	f88d 0004 	strb.w	r0, [sp, #4]
+ 8013176:	f8ad 1006 	strh.w	r1, [sp, #6]
+ 801317a:	2097      	movs	r0, #151	; 0x97
+ 801317c:	eb0d 0102 	add.w	r1, sp, r2
+ 8013180:	f88d 3005 	strb.w	r3, [sp, #5]
+ 8013184:	f7ff fe56 	bl	8012e34 <SUBGRF_WriteCommand>
+ 8013188:	b003      	add	sp, #12
+ 801318a:	f85d fb04 	ldr.w	pc, [sp], #4
+	...
+
+08013190 <SUBGRF_Init>:
+ 8013190:	b510      	push	{r4, lr}
+ 8013192:	b108      	cbz	r0, 8013198 <SUBGRF_Init+0x8>
+ 8013194:	4b19      	ldr	r3, [pc, #100]	; (80131fc <SUBGRF_Init+0x6c>)
+ 8013196:	6018      	str	r0, [r3, #0]
+ 8013198:	f7ef fc04 	bl	80029a4 <MX_SUBGHZ_Init>
+ 801319c:	2002      	movs	r0, #2
+ 801319e:	f7ff fda5 	bl	8012cec <Radio_SMPS_Set>
+ 80131a2:	2400      	movs	r4, #0
+ 80131a4:	4b16      	ldr	r3, [pc, #88]	; (8013200 <SUBGRF_Init+0x70>)
+ 80131a6:	4620      	mov	r0, r4
+ 80131a8:	701c      	strb	r4, [r3, #0]
+ 80131aa:	f7ff fe6d 	bl	8012e88 <SUBGRF_SetStandby>
+ 80131ae:	f7f1 fb43 	bl	8004838 <RBI_IsTCXO>
+ 80131b2:	2801      	cmp	r0, #1
+ 80131b4:	d117      	bne.n	80131e6 <SUBGRF_Init+0x56>
+ 80131b6:	f44f 7120 	mov.w	r1, #640	; 0x280
+ 80131ba:	f7ff ffd4 	bl	8013166 <SUBGRF_SetTcxoMode>
+ 80131be:	f640 1011 	movw	r0, #2321	; 0x911
+ 80131c2:	4621      	mov	r1, r4
+ 80131c4:	f7ff fd72 	bl	8012cac <SUBGRF_WriteRegister>
+ 80131c8:	f04f 007f 	mov.w	r0, #127	; 0x7f
+ 80131cc:	f7ff ff5f 	bl	801308e <SUBGRF_Calibrate>
+ 80131d0:	210e      	movs	r1, #14
+ 80131d2:	f640 101f 	movw	r0, #2335	; 0x91f
+ 80131d6:	f7ff fd69 	bl	8012cac <SUBGRF_WriteRegister>
+ 80131da:	f7f1 fad5 	bl	8004788 <RBI_Init>
+ 80131de:	4b09      	ldr	r3, [pc, #36]	; (8013204 <SUBGRF_Init+0x74>)
+ 80131e0:	2201      	movs	r2, #1
+ 80131e2:	701a      	strb	r2, [r3, #0]
+ 80131e4:	bd10      	pop	{r4, pc}
+ 80131e6:	2110      	movs	r1, #16
+ 80131e8:	f640 1011 	movw	r0, #2321	; 0x911
+ 80131ec:	f7ff fd5e 	bl	8012cac <SUBGRF_WriteRegister>
+ 80131f0:	2110      	movs	r1, #16
+ 80131f2:	f640 1012 	movw	r0, #2322	; 0x912
+ 80131f6:	f7ff fd59 	bl	8012cac <SUBGRF_WriteRegister>
+ 80131fa:	e7e9      	b.n	80131d0 <SUBGRF_Init+0x40>
+ 80131fc:	200027c4 	.word	0x200027c4
+ 8013200:	200027c0 	.word	0x200027c0
+ 8013204:	200027c2 	.word	0x200027c2
+
+08013208 <SUBGRF_SetRfFrequency>:
+ 8013208:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 801320a:	4d0c      	ldr	r5, [pc, #48]	; (801323c <SUBGRF_SetRfFrequency+0x34>)
+ 801320c:	782b      	ldrb	r3, [r5, #0]
+ 801320e:	4604      	mov	r4, r0
+ 8013210:	b91b      	cbnz	r3, 801321a <SUBGRF_SetRfFrequency+0x12>
+ 8013212:	f7ff ff4b 	bl	80130ac <SUBGRF_CalibrateImage>
+ 8013216:	2301      	movs	r3, #1
+ 8013218:	702b      	strb	r3, [r5, #0]
+ 801321a:	2300      	movs	r3, #0
+ 801321c:	4a08      	ldr	r2, [pc, #32]	; (8013240 <SUBGRF_SetRfFrequency+0x38>)
+ 801321e:	0660      	lsls	r0, r4, #25
+ 8013220:	09e1      	lsrs	r1, r4, #7
+ 8013222:	f7ee fc75 	bl	8001b10 <__aeabi_uldivmod>
+ 8013226:	2204      	movs	r2, #4
+ 8013228:	ba00      	rev	r0, r0
+ 801322a:	9001      	str	r0, [sp, #4]
+ 801322c:	eb0d 0102 	add.w	r1, sp, r2
+ 8013230:	2086      	movs	r0, #134	; 0x86
+ 8013232:	f7ff fdff 	bl	8012e34 <SUBGRF_WriteCommand>
+ 8013236:	b003      	add	sp, #12
+ 8013238:	bd30      	pop	{r4, r5, pc}
+ 801323a:	bf00      	nop
+ 801323c:	200027c0 	.word	0x200027c0
+ 8013240:	01e84800 	.word	0x01e84800
+
+08013244 <SUBGRF_SetPacketType>:
+ 8013244:	b507      	push	{r0, r1, r2, lr}
+ 8013246:	4b09      	ldr	r3, [pc, #36]	; (801326c <SUBGRF_SetPacketType+0x28>)
+ 8013248:	f88d 0007 	strb.w	r0, [sp, #7]
+ 801324c:	4601      	mov	r1, r0
+ 801324e:	7018      	strb	r0, [r3, #0]
+ 8013250:	b918      	cbnz	r0, 801325a <SUBGRF_SetPacketType+0x16>
+ 8013252:	f240 60ac 	movw	r0, #1708	; 0x6ac
+ 8013256:	f7ff fd29 	bl	8012cac <SUBGRF_WriteRegister>
+ 801325a:	2201      	movs	r2, #1
+ 801325c:	f10d 0107 	add.w	r1, sp, #7
+ 8013260:	208a      	movs	r0, #138	; 0x8a
+ 8013262:	f7ff fde7 	bl	8012e34 <SUBGRF_WriteCommand>
+ 8013266:	b003      	add	sp, #12
+ 8013268:	f85d fb04 	ldr.w	pc, [sp], #4
+ 801326c:	200027c3 	.word	0x200027c3
+
+08013270 <SUBGRF_SetTxParams>:
+ 8013270:	2801      	cmp	r0, #1
+ 8013272:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 8013274:	460c      	mov	r4, r1
+ 8013276:	4616      	mov	r6, r2
+ 8013278:	d137      	bne.n	80132ea <SUBGRF_SetTxParams+0x7a>
+ 801327a:	2000      	movs	r0, #0
+ 801327c:	f7f1 fae0 	bl	8004840 <RBI_GetRFOMaxPowerConfig>
+ 8013280:	42a0      	cmp	r0, r4
+ 8013282:	bfb8      	it	lt
+ 8013284:	b244      	sxtblt	r4, r0
+ 8013286:	280e      	cmp	r0, #14
+ 8013288:	4605      	mov	r5, r0
+ 801328a:	d11a      	bne.n	80132c2 <SUBGRF_SetTxParams+0x52>
+ 801328c:	2301      	movs	r3, #1
+ 801328e:	461a      	mov	r2, r3
+ 8013290:	2100      	movs	r1, #0
+ 8013292:	2004      	movs	r0, #4
+ 8013294:	f7ff ff40 	bl	8013118 <SUBGRF_SetPaConfig>
+ 8013298:	f06f 0310 	mvn.w	r3, #16
+ 801329c:	429c      	cmp	r4, r3
+ 801329e:	bfb8      	it	lt
+ 80132a0:	461c      	movlt	r4, r3
+ 80132a2:	2118      	movs	r1, #24
+ 80132a4:	f640 00e7 	movw	r0, #2279	; 0x8e7
+ 80132a8:	f7ff fd00 	bl	8012cac <SUBGRF_WriteRegister>
+ 80132ac:	2202      	movs	r2, #2
+ 80132ae:	a901      	add	r1, sp, #4
+ 80132b0:	208e      	movs	r0, #142	; 0x8e
+ 80132b2:	f88d 4004 	strb.w	r4, [sp, #4]
+ 80132b6:	f88d 6005 	strb.w	r6, [sp, #5]
+ 80132ba:	f7ff fdbb 	bl	8012e34 <SUBGRF_WriteCommand>
+ 80132be:	b002      	add	sp, #8
+ 80132c0:	bd70      	pop	{r4, r5, r6, pc}
+ 80132c2:	2301      	movs	r3, #1
+ 80132c4:	280a      	cmp	r0, #10
+ 80132c6:	b2e4      	uxtb	r4, r4
+ 80132c8:	461a      	mov	r2, r3
+ 80132ca:	f04f 0100 	mov.w	r1, #0
+ 80132ce:	d105      	bne.n	80132dc <SUBGRF_SetTxParams+0x6c>
+ 80132d0:	4618      	mov	r0, r3
+ 80132d2:	f7ff ff21 	bl	8013118 <SUBGRF_SetPaConfig>
+ 80132d6:	3403      	adds	r4, #3
+ 80132d8:	b264      	sxtb	r4, r4
+ 80132da:	e7dd      	b.n	8013298 <SUBGRF_SetTxParams+0x28>
+ 80132dc:	2007      	movs	r0, #7
+ 80132de:	f1c5 050e 	rsb	r5, r5, #14
+ 80132e2:	f7ff ff19 	bl	8013118 <SUBGRF_SetPaConfig>
+ 80132e6:	442c      	add	r4, r5
+ 80132e8:	e7f6      	b.n	80132d8 <SUBGRF_SetTxParams+0x68>
+ 80132ea:	f640 00d8 	movw	r0, #2264	; 0x8d8
+ 80132ee:	f7ff fced 	bl	8012ccc <SUBGRF_ReadRegister>
+ 80132f2:	f040 011e 	orr.w	r1, r0, #30
+ 80132f6:	b2c9      	uxtb	r1, r1
+ 80132f8:	f640 00d8 	movw	r0, #2264	; 0x8d8
+ 80132fc:	f7ff fcd6 	bl	8012cac <SUBGRF_WriteRegister>
+ 8013300:	2001      	movs	r0, #1
+ 8013302:	f7f1 fa9d 	bl	8004840 <RBI_GetRFOMaxPowerConfig>
+ 8013306:	42a0      	cmp	r0, r4
+ 8013308:	bfb8      	it	lt
+ 801330a:	b244      	sxtblt	r4, r0
+ 801330c:	2814      	cmp	r0, #20
+ 801330e:	4605      	mov	r5, r0
+ 8013310:	f04f 0301 	mov.w	r3, #1
+ 8013314:	f04f 0200 	mov.w	r2, #0
+ 8013318:	d10c      	bne.n	8013334 <SUBGRF_SetTxParams+0xc4>
+ 801331a:	2105      	movs	r1, #5
+ 801331c:	2003      	movs	r0, #3
+ 801331e:	f7ff fefb 	bl	8013118 <SUBGRF_SetPaConfig>
+ 8013322:	3402      	adds	r4, #2
+ 8013324:	b264      	sxtb	r4, r4
+ 8013326:	f06f 0308 	mvn.w	r3, #8
+ 801332a:	429c      	cmp	r4, r3
+ 801332c:	bfb8      	it	lt
+ 801332e:	461c      	movlt	r4, r3
+ 8013330:	2138      	movs	r1, #56	; 0x38
+ 8013332:	e7b7      	b.n	80132a4 <SUBGRF_SetTxParams+0x34>
+ 8013334:	2811      	cmp	r0, #17
+ 8013336:	d105      	bne.n	8013344 <SUBGRF_SetTxParams+0xd4>
+ 8013338:	2103      	movs	r1, #3
+ 801333a:	2002      	movs	r0, #2
+ 801333c:	f7ff feec 	bl	8013118 <SUBGRF_SetPaConfig>
+ 8013340:	3405      	adds	r4, #5
+ 8013342:	e7ef      	b.n	8013324 <SUBGRF_SetTxParams+0xb4>
+ 8013344:	280e      	cmp	r0, #14
+ 8013346:	d104      	bne.n	8013352 <SUBGRF_SetTxParams+0xe2>
+ 8013348:	2102      	movs	r1, #2
+ 801334a:	4608      	mov	r0, r1
+ 801334c:	f7ff fee4 	bl	8013118 <SUBGRF_SetPaConfig>
+ 8013350:	e7e9      	b.n	8013326 <SUBGRF_SetTxParams+0xb6>
+ 8013352:	f1c5 0516 	rsb	r5, r5, #22
+ 8013356:	2107      	movs	r1, #7
+ 8013358:	2004      	movs	r0, #4
+ 801335a:	4425      	add	r5, r4
+ 801335c:	f7ff fedc 	bl	8013118 <SUBGRF_SetPaConfig>
+ 8013360:	b26c      	sxtb	r4, r5
+ 8013362:	e7e0      	b.n	8013326 <SUBGRF_SetTxParams+0xb6>
+
+08013364 <SUBGRF_SetModulationParams>:
+ 8013364:	b513      	push	{r0, r1, r4, lr}
+ 8013366:	4a31      	ldr	r2, [pc, #196]	; (801342c <SUBGRF_SetModulationParams+0xc8>)
+ 8013368:	4604      	mov	r4, r0
+ 801336a:	6851      	ldr	r1, [r2, #4]
+ 801336c:	6810      	ldr	r0, [r2, #0]
+ 801336e:	466b      	mov	r3, sp
+ 8013370:	c303      	stmia	r3!, {r0, r1}
+ 8013372:	4b2f      	ldr	r3, [pc, #188]	; (8013430 <SUBGRF_SetModulationParams+0xcc>)
+ 8013374:	7820      	ldrb	r0, [r4, #0]
+ 8013376:	781b      	ldrb	r3, [r3, #0]
+ 8013378:	4283      	cmp	r3, r0
+ 801337a:	d001      	beq.n	8013380 <SUBGRF_SetModulationParams+0x1c>
+ 801337c:	f7ff ff62 	bl	8013244 <SUBGRF_SetPacketType>
+ 8013380:	7823      	ldrb	r3, [r4, #0]
+ 8013382:	2b03      	cmp	r3, #3
+ 8013384:	d827      	bhi.n	80133d6 <SUBGRF_SetModulationParams+0x72>
+ 8013386:	e8df f003 	tbb	[pc, r3]
+ 801338a:	3902      	.short	0x3902
+ 801338c:	3c28      	.short	0x3c28
+ 801338e:	6862      	ldr	r2, [r4, #4]
+ 8013390:	4b28      	ldr	r3, [pc, #160]	; (8013434 <SUBGRF_SetModulationParams+0xd0>)
+ 8013392:	fbb3 f3f2 	udiv	r3, r3, r2
+ 8013396:	0c1a      	lsrs	r2, r3, #16
+ 8013398:	68a1      	ldr	r1, [r4, #8]
+ 801339a:	f88d 2000 	strb.w	r2, [sp]
+ 801339e:	f88d 3002 	strb.w	r3, [sp, #2]
+ 80133a2:	0a1a      	lsrs	r2, r3, #8
+ 80133a4:	7b23      	ldrb	r3, [r4, #12]
+ 80133a6:	f88d 3003 	strb.w	r3, [sp, #3]
+ 80133aa:	7b63      	ldrb	r3, [r4, #13]
+ 80133ac:	f88d 2001 	strb.w	r2, [sp, #1]
+ 80133b0:	f88d 3004 	strb.w	r3, [sp, #4]
+ 80133b4:	4a20      	ldr	r2, [pc, #128]	; (8013438 <SUBGRF_SetModulationParams+0xd4>)
+ 80133b6:	2300      	movs	r3, #0
+ 80133b8:	0648      	lsls	r0, r1, #25
+ 80133ba:	09c9      	lsrs	r1, r1, #7
+ 80133bc:	f7ee fba8 	bl	8001b10 <__aeabi_uldivmod>
+ 80133c0:	0c03      	lsrs	r3, r0, #16
+ 80133c2:	ba40      	rev16	r0, r0
+ 80133c4:	f88d 3005 	strb.w	r3, [sp, #5]
+ 80133c8:	f8ad 0006 	strh.w	r0, [sp, #6]
+ 80133cc:	2208      	movs	r2, #8
+ 80133ce:	4669      	mov	r1, sp
+ 80133d0:	208b      	movs	r0, #139	; 0x8b
+ 80133d2:	f7ff fd2f 	bl	8012e34 <SUBGRF_WriteCommand>
+ 80133d6:	b002      	add	sp, #8
+ 80133d8:	bd10      	pop	{r4, pc}
+ 80133da:	6922      	ldr	r2, [r4, #16]
+ 80133dc:	4b15      	ldr	r3, [pc, #84]	; (8013434 <SUBGRF_SetModulationParams+0xd0>)
+ 80133de:	fbb3 f3f2 	udiv	r3, r3, r2
+ 80133e2:	0c1a      	lsrs	r2, r3, #16
+ 80133e4:	f88d 2000 	strb.w	r2, [sp]
+ 80133e8:	f88d 3002 	strb.w	r3, [sp, #2]
+ 80133ec:	0a1a      	lsrs	r2, r3, #8
+ 80133ee:	7d23      	ldrb	r3, [r4, #20]
+ 80133f0:	f88d 2001 	strb.w	r2, [sp, #1]
+ 80133f4:	f88d 3003 	strb.w	r3, [sp, #3]
+ 80133f8:	2204      	movs	r2, #4
+ 80133fa:	e7e8      	b.n	80133ce <SUBGRF_SetModulationParams+0x6a>
+ 80133fc:	69a3      	ldr	r3, [r4, #24]
+ 80133fe:	9300      	str	r3, [sp, #0]
+ 8013400:	e7fa      	b.n	80133f8 <SUBGRF_SetModulationParams+0x94>
+ 8013402:	6862      	ldr	r2, [r4, #4]
+ 8013404:	4b0b      	ldr	r3, [pc, #44]	; (8013434 <SUBGRF_SetModulationParams+0xd0>)
+ 8013406:	fbb3 f3f2 	udiv	r3, r3, r2
+ 801340a:	0c1a      	lsrs	r2, r3, #16
+ 801340c:	f88d 2000 	strb.w	r2, [sp]
+ 8013410:	f88d 3002 	strb.w	r3, [sp, #2]
+ 8013414:	0a1a      	lsrs	r2, r3, #8
+ 8013416:	7b23      	ldrb	r3, [r4, #12]
+ 8013418:	f88d 3003 	strb.w	r3, [sp, #3]
+ 801341c:	7b63      	ldrb	r3, [r4, #13]
+ 801341e:	f88d 2001 	strb.w	r2, [sp, #1]
+ 8013422:	f88d 3004 	strb.w	r3, [sp, #4]
+ 8013426:	2205      	movs	r2, #5
+ 8013428:	e7d1      	b.n	80133ce <SUBGRF_SetModulationParams+0x6a>
+ 801342a:	bf00      	nop
+ 801342c:	080145dc 	.word	0x080145dc
+ 8013430:	200027c3 	.word	0x200027c3
+ 8013434:	3d090000 	.word	0x3d090000
+ 8013438:	01e84800 	.word	0x01e84800
+
+0801343c <SUBGRF_SetPacketParams>:
+ 801343c:	b51f      	push	{r0, r1, r2, r3, r4, lr}
+ 801343e:	4a2e      	ldr	r2, [pc, #184]	; (80134f8 <SUBGRF_SetPacketParams+0xbc>)
+ 8013440:	4604      	mov	r4, r0
+ 8013442:	68d1      	ldr	r1, [r2, #12]
+ 8013444:	6890      	ldr	r0, [r2, #8]
+ 8013446:	7c12      	ldrb	r2, [r2, #16]
+ 8013448:	ab01      	add	r3, sp, #4
+ 801344a:	c303      	stmia	r3!, {r0, r1}
+ 801344c:	701a      	strb	r2, [r3, #0]
+ 801344e:	4b2b      	ldr	r3, [pc, #172]	; (80134fc <SUBGRF_SetPacketParams+0xc0>)
+ 8013450:	7820      	ldrb	r0, [r4, #0]
+ 8013452:	781b      	ldrb	r3, [r3, #0]
+ 8013454:	4283      	cmp	r3, r0
+ 8013456:	d001      	beq.n	801345c <SUBGRF_SetPacketParams+0x20>
+ 8013458:	f7ff fef4 	bl	8013244 <SUBGRF_SetPacketType>
+ 801345c:	7823      	ldrb	r3, [r4, #0]
+ 801345e:	2b03      	cmp	r3, #3
+ 8013460:	d826      	bhi.n	80134b0 <SUBGRF_SetPacketParams+0x74>
+ 8013462:	e8df f003 	tbb	[pc, r3]
+ 8013466:	3802      	.short	0x3802
+ 8013468:	0233      	.short	0x0233
+ 801346a:	7a63      	ldrb	r3, [r4, #9]
+ 801346c:	2bf1      	cmp	r3, #241	; 0xf1
+ 801346e:	d121      	bne.n	80134b4 <SUBGRF_SetPacketParams+0x78>
+ 8013470:	f64f 70ff 	movw	r0, #65535	; 0xffff
+ 8013474:	f7ff fc84 	bl	8012d80 <SUBGRF_SetCrcSeed>
+ 8013478:	f248 0005 	movw	r0, #32773	; 0x8005
+ 801347c:	f7ff fc92 	bl	8012da4 <SUBGRF_SetCrcPolynomial>
+ 8013480:	2302      	movs	r3, #2
+ 8013482:	8862      	ldrh	r2, [r4, #2]
+ 8013484:	88a1      	ldrh	r1, [r4, #4]
+ 8013486:	f8ad 1006 	strh.w	r1, [sp, #6]
+ 801348a:	ba52      	rev16	r2, r2
+ 801348c:	88e1      	ldrh	r1, [r4, #6]
+ 801348e:	f8ad 2004 	strh.w	r2, [sp, #4]
+ 8013492:	f88d 300b 	strb.w	r3, [sp, #11]
+ 8013496:	7a22      	ldrb	r2, [r4, #8]
+ 8013498:	7aa3      	ldrb	r3, [r4, #10]
+ 801349a:	f88d 200a 	strb.w	r2, [sp, #10]
+ 801349e:	f8ad 1008 	strh.w	r1, [sp, #8]
+ 80134a2:	f88d 300c 	strb.w	r3, [sp, #12]
+ 80134a6:	2209      	movs	r2, #9
+ 80134a8:	a901      	add	r1, sp, #4
+ 80134aa:	208c      	movs	r0, #140	; 0x8c
+ 80134ac:	f7ff fcc2 	bl	8012e34 <SUBGRF_WriteCommand>
+ 80134b0:	b004      	add	sp, #16
+ 80134b2:	bd10      	pop	{r4, pc}
+ 80134b4:	2bf2      	cmp	r3, #242	; 0xf2
+ 80134b6:	d1e4      	bne.n	8013482 <SUBGRF_SetPacketParams+0x46>
+ 80134b8:	f641 500f 	movw	r0, #7439	; 0x1d0f
+ 80134bc:	f7ff fc60 	bl	8012d80 <SUBGRF_SetCrcSeed>
+ 80134c0:	f241 0021 	movw	r0, #4129	; 0x1021
+ 80134c4:	f7ff fc6e 	bl	8012da4 <SUBGRF_SetCrcPolynomial>
+ 80134c8:	2306      	movs	r3, #6
+ 80134ca:	e7da      	b.n	8013482 <SUBGRF_SetPacketParams+0x46>
+ 80134cc:	7b23      	ldrb	r3, [r4, #12]
+ 80134ce:	f88d 3004 	strb.w	r3, [sp, #4]
+ 80134d2:	2201      	movs	r2, #1
+ 80134d4:	e7e8      	b.n	80134a8 <SUBGRF_SetPacketParams+0x6c>
+ 80134d6:	89e3      	ldrh	r3, [r4, #14]
+ 80134d8:	4a09      	ldr	r2, [pc, #36]	; (8013500 <SUBGRF_SetPacketParams+0xc4>)
+ 80134da:	ba5b      	rev16	r3, r3
+ 80134dc:	f8ad 3004 	strh.w	r3, [sp, #4]
+ 80134e0:	7c23      	ldrb	r3, [r4, #16]
+ 80134e2:	7013      	strb	r3, [r2, #0]
+ 80134e4:	f88d 3006 	strb.w	r3, [sp, #6]
+ 80134e8:	7c63      	ldrb	r3, [r4, #17]
+ 80134ea:	f88d 3007 	strb.w	r3, [sp, #7]
+ 80134ee:	8a63      	ldrh	r3, [r4, #18]
+ 80134f0:	f8ad 3008 	strh.w	r3, [sp, #8]
+ 80134f4:	2206      	movs	r2, #6
+ 80134f6:	e7d7      	b.n	80134a8 <SUBGRF_SetPacketParams+0x6c>
+ 80134f8:	080145dc 	.word	0x080145dc
+ 80134fc:	200027c3 	.word	0x200027c3
+ 8013500:	200027c1 	.word	0x200027c1
+
+08013504 <SUBGRF_SetBufferBaseAddress>:
+ 8013504:	b507      	push	{r0, r1, r2, lr}
+ 8013506:	2202      	movs	r2, #2
+ 8013508:	f88d 0004 	strb.w	r0, [sp, #4]
+ 801350c:	f88d 1005 	strb.w	r1, [sp, #5]
+ 8013510:	208f      	movs	r0, #143	; 0x8f
+ 8013512:	a901      	add	r1, sp, #4
+ 8013514:	f7ff fc8e 	bl	8012e34 <SUBGRF_WriteCommand>
+ 8013518:	b003      	add	sp, #12
+ 801351a:	f85d fb04 	ldr.w	pc, [sp], #4
+	...
+
+08013520 <SUBGRF_ReadCommand>:
+ 8013520:	b510      	push	{r4, lr}
+ 8013522:	4613      	mov	r3, r2
+ 8013524:	f3ef 8410 	mrs	r4, PRIMASK
+ 8013528:	b672      	cpsid	i
+ 801352a:	460a      	mov	r2, r1
+ 801352c:	4601      	mov	r1, r0
+ 801352e:	4803      	ldr	r0, [pc, #12]	; (801353c <SUBGRF_ReadCommand+0x1c>)
+ 8013530:	f7f6 fe78 	bl	800a224 <HAL_SUBGHZ_ExecGetCmd>
+ 8013534:	f384 8810 	msr	PRIMASK, r4
+ 8013538:	bd10      	pop	{r4, pc}
+ 801353a:	bf00      	nop
+ 801353c:	20000acc 	.word	0x20000acc
+
+08013540 <SUBGRF_GetRssiInst>:
+ 8013540:	b507      	push	{r0, r1, r2, lr}
+ 8013542:	2201      	movs	r2, #1
+ 8013544:	a901      	add	r1, sp, #4
+ 8013546:	2015      	movs	r0, #21
+ 8013548:	f7ff ffea 	bl	8013520 <SUBGRF_ReadCommand>
+ 801354c:	f89d 0004 	ldrb.w	r0, [sp, #4]
+ 8013550:	4240      	negs	r0, r0
+ 8013552:	1040      	asrs	r0, r0, #1
+ 8013554:	b003      	add	sp, #12
+ 8013556:	f85d fb04 	ldr.w	pc, [sp], #4
+	...
+
+0801355c <SUBGRF_GetRxBufferStatus>:
+ 801355c:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 801355e:	4605      	mov	r5, r0
+ 8013560:	460c      	mov	r4, r1
+ 8013562:	2202      	movs	r2, #2
+ 8013564:	a901      	add	r1, sp, #4
+ 8013566:	2013      	movs	r0, #19
+ 8013568:	f7ff ffda 	bl	8013520 <SUBGRF_ReadCommand>
+ 801356c:	4b0a      	ldr	r3, [pc, #40]	; (8013598 <SUBGRF_GetRxBufferStatus+0x3c>)
+ 801356e:	781b      	ldrb	r3, [r3, #0]
+ 8013570:	2b01      	cmp	r3, #1
+ 8013572:	d10d      	bne.n	8013590 <SUBGRF_GetRxBufferStatus+0x34>
+ 8013574:	4b09      	ldr	r3, [pc, #36]	; (801359c <SUBGRF_GetRxBufferStatus+0x40>)
+ 8013576:	781b      	ldrb	r3, [r3, #0]
+ 8013578:	2b01      	cmp	r3, #1
+ 801357a:	d109      	bne.n	8013590 <SUBGRF_GetRxBufferStatus+0x34>
+ 801357c:	f240 7002 	movw	r0, #1794	; 0x702
+ 8013580:	f7ff fba4 	bl	8012ccc <SUBGRF_ReadRegister>
+ 8013584:	f89d 3005 	ldrb.w	r3, [sp, #5]
+ 8013588:	7028      	strb	r0, [r5, #0]
+ 801358a:	7023      	strb	r3, [r4, #0]
+ 801358c:	b003      	add	sp, #12
+ 801358e:	bd30      	pop	{r4, r5, pc}
+ 8013590:	f89d 0004 	ldrb.w	r0, [sp, #4]
+ 8013594:	e7f6      	b.n	8013584 <SUBGRF_GetRxBufferStatus+0x28>
+ 8013596:	bf00      	nop
+ 8013598:	200027c3 	.word	0x200027c3
+ 801359c:	200027c1 	.word	0x200027c1
+
+080135a0 <SUBGRF_GetPayload>:
+ 80135a0:	b5f7      	push	{r0, r1, r2, r4, r5, r6, r7, lr}
+ 80135a2:	460d      	mov	r5, r1
+ 80135a4:	4606      	mov	r6, r0
+ 80135a6:	2400      	movs	r4, #0
+ 80135a8:	f10d 0107 	add.w	r1, sp, #7
+ 80135ac:	4628      	mov	r0, r5
+ 80135ae:	4617      	mov	r7, r2
+ 80135b0:	f88d 4007 	strb.w	r4, [sp, #7]
+ 80135b4:	f7ff ffd2 	bl	801355c <SUBGRF_GetRxBufferStatus>
+ 80135b8:	782a      	ldrb	r2, [r5, #0]
+ 80135ba:	42ba      	cmp	r2, r7
+ 80135bc:	d807      	bhi.n	80135ce <SUBGRF_GetPayload+0x2e>
+ 80135be:	f89d 0007 	ldrb.w	r0, [sp, #7]
+ 80135c2:	4631      	mov	r1, r6
+ 80135c4:	f7ff fc26 	bl	8012e14 <SUBGRF_ReadBuffer>
+ 80135c8:	4620      	mov	r0, r4
+ 80135ca:	b003      	add	sp, #12
+ 80135cc:	bdf0      	pop	{r4, r5, r6, r7, pc}
+ 80135ce:	2001      	movs	r0, #1
+ 80135d0:	e7fb      	b.n	80135ca <SUBGRF_GetPayload+0x2a>
+	...
+
+080135d4 <SUBGRF_GetPacketStatus>:
+ 80135d4:	b513      	push	{r0, r1, r4, lr}
+ 80135d6:	2203      	movs	r2, #3
+ 80135d8:	4604      	mov	r4, r0
+ 80135da:	a901      	add	r1, sp, #4
+ 80135dc:	2014      	movs	r0, #20
+ 80135de:	f7ff ff9f 	bl	8013520 <SUBGRF_ReadCommand>
+ 80135e2:	4b18      	ldr	r3, [pc, #96]	; (8013644 <SUBGRF_GetPacketStatus+0x70>)
+ 80135e4:	781a      	ldrb	r2, [r3, #0]
+ 80135e6:	7022      	strb	r2, [r4, #0]
+ 80135e8:	b14a      	cbz	r2, 80135fe <SUBGRF_GetPacketStatus+0x2a>
+ 80135ea:	2a01      	cmp	r2, #1
+ 80135ec:	d017      	beq.n	801361e <SUBGRF_GetPacketStatus+0x4a>
+ 80135ee:	2214      	movs	r2, #20
+ 80135f0:	2100      	movs	r1, #0
+ 80135f2:	4620      	mov	r0, r4
+ 80135f4:	f000 fad2 	bl	8013b9c <UTIL_MEM_set_8>
+ 80135f8:	230f      	movs	r3, #15
+ 80135fa:	7023      	strb	r3, [r4, #0]
+ 80135fc:	e00d      	b.n	801361a <SUBGRF_GetPacketStatus+0x46>
+ 80135fe:	f89d 3004 	ldrb.w	r3, [sp, #4]
+ 8013602:	7123      	strb	r3, [r4, #4]
+ 8013604:	f89d 3005 	ldrb.w	r3, [sp, #5]
+ 8013608:	60a2      	str	r2, [r4, #8]
+ 801360a:	425b      	negs	r3, r3
+ 801360c:	105b      	asrs	r3, r3, #1
+ 801360e:	71a3      	strb	r3, [r4, #6]
+ 8013610:	f89d 3006 	ldrb.w	r3, [sp, #6]
+ 8013614:	425b      	negs	r3, r3
+ 8013616:	105b      	asrs	r3, r3, #1
+ 8013618:	7163      	strb	r3, [r4, #5]
+ 801361a:	b002      	add	sp, #8
+ 801361c:	bd10      	pop	{r4, pc}
+ 801361e:	f89d 3004 	ldrb.w	r3, [sp, #4]
+ 8013622:	425b      	negs	r3, r3
+ 8013624:	105b      	asrs	r3, r3, #1
+ 8013626:	7323      	strb	r3, [r4, #12]
+ 8013628:	f99d 3005 	ldrsb.w	r3, [sp, #5]
+ 801362c:	3302      	adds	r3, #2
+ 801362e:	109b      	asrs	r3, r3, #2
+ 8013630:	7363      	strb	r3, [r4, #13]
+ 8013632:	f89d 3006 	ldrb.w	r3, [sp, #6]
+ 8013636:	425b      	negs	r3, r3
+ 8013638:	105b      	asrs	r3, r3, #1
+ 801363a:	73a3      	strb	r3, [r4, #14]
+ 801363c:	4b02      	ldr	r3, [pc, #8]	; (8013648 <SUBGRF_GetPacketStatus+0x74>)
+ 801363e:	681b      	ldr	r3, [r3, #0]
+ 8013640:	6123      	str	r3, [r4, #16]
+ 8013642:	e7ea      	b.n	801361a <SUBGRF_GetPacketStatus+0x46>
+ 8013644:	200027c3 	.word	0x200027c3
+ 8013648:	200027bc 	.word	0x200027bc
+
+0801364c <SUBGRF_SetSwitch>:
+ 801364c:	2901      	cmp	r1, #1
+ 801364e:	b508      	push	{r3, lr}
+ 8013650:	4603      	mov	r3, r0
+ 8013652:	4608      	mov	r0, r1
+ 8013654:	d10e      	bne.n	8013674 <SUBGRF_SetSwitch+0x28>
+ 8013656:	2b01      	cmp	r3, #1
+ 8013658:	d107      	bne.n	801366a <SUBGRF_SetSwitch+0x1e>
+ 801365a:	2004      	movs	r0, #4
+ 801365c:	f7ff fb46 	bl	8012cec <Radio_SMPS_Set>
+ 8013660:	2002      	movs	r0, #2
+ 8013662:	e8bd 4008 	ldmia.w	sp!, {r3, lr}
+ 8013666:	f7f1 b8c3 	b.w	80047f0 <RBI_ConfigRFSwitch>
+ 801366a:	2b02      	cmp	r3, #2
+ 801366c:	bf14      	ite	ne
+ 801366e:	4608      	movne	r0, r1
+ 8013670:	2003      	moveq	r0, #3
+ 8013672:	e7f6      	b.n	8013662 <SUBGRF_SetSwitch+0x16>
+ 8013674:	2001      	movs	r0, #1
+ 8013676:	e7f4      	b.n	8013662 <SUBGRF_SetSwitch+0x16>
+
+08013678 <SUBGRF_SetRfTxPower>:
+ 8013678:	b538      	push	{r3, r4, r5, lr}
+ 801367a:	4604      	mov	r4, r0
+ 801367c:	f7f1 f8da 	bl	8004834 <RBI_GetTxConfig>
+ 8013680:	b150      	cbz	r0, 8013698 <SUBGRF_SetRfTxPower+0x20>
+ 8013682:	2802      	cmp	r0, #2
+ 8013684:	bf14      	ite	ne
+ 8013686:	2501      	movne	r5, #1
+ 8013688:	2502      	moveq	r5, #2
+ 801368a:	4628      	mov	r0, r5
+ 801368c:	2202      	movs	r2, #2
+ 801368e:	4621      	mov	r1, r4
+ 8013690:	f7ff fdee 	bl	8013270 <SUBGRF_SetTxParams>
+ 8013694:	4628      	mov	r0, r5
+ 8013696:	bd38      	pop	{r3, r4, r5, pc}
+ 8013698:	2c0f      	cmp	r4, #15
+ 801369a:	bfcc      	ite	gt
+ 801369c:	2502      	movgt	r5, #2
+ 801369e:	2501      	movle	r5, #1
+ 80136a0:	e7f3      	b.n	801368a <SUBGRF_SetRfTxPower+0x12>
+
+080136a2 <SUBGRF_GetRadioWakeUpTime>:
+ 80136a2:	200a      	movs	r0, #10
+ 80136a4:	4770      	bx	lr
+	...
+
+080136a8 <HAL_SUBGHZ_TxCpltCallback>:
+ 80136a8:	4b01      	ldr	r3, [pc, #4]	; (80136b0 <HAL_SUBGHZ_TxCpltCallback+0x8>)
+ 80136aa:	2001      	movs	r0, #1
+ 80136ac:	681b      	ldr	r3, [r3, #0]
+ 80136ae:	4718      	bx	r3
+ 80136b0:	200027c4 	.word	0x200027c4
+
+080136b4 <HAL_SUBGHZ_RxCpltCallback>:
+ 80136b4:	4b01      	ldr	r3, [pc, #4]	; (80136bc <HAL_SUBGHZ_RxCpltCallback+0x8>)
+ 80136b6:	2002      	movs	r0, #2
+ 80136b8:	681b      	ldr	r3, [r3, #0]
+ 80136ba:	4718      	bx	r3
+ 80136bc:	200027c4 	.word	0x200027c4
+
+080136c0 <HAL_SUBGHZ_CRCErrorCallback>:
+ 80136c0:	4b01      	ldr	r3, [pc, #4]	; (80136c8 <HAL_SUBGHZ_CRCErrorCallback+0x8>)
+ 80136c2:	2040      	movs	r0, #64	; 0x40
+ 80136c4:	681b      	ldr	r3, [r3, #0]
+ 80136c6:	4718      	bx	r3
+ 80136c8:	200027c4 	.word	0x200027c4
+
+080136cc <HAL_SUBGHZ_CADStatusCallback>:
+ 80136cc:	b111      	cbz	r1, 80136d4 <HAL_SUBGHZ_CADStatusCallback+0x8>
+ 80136ce:	2901      	cmp	r1, #1
+ 80136d0:	d004      	beq.n	80136dc <HAL_SUBGHZ_CADStatusCallback+0x10>
+ 80136d2:	4770      	bx	lr
+ 80136d4:	4b04      	ldr	r3, [pc, #16]	; (80136e8 <HAL_SUBGHZ_CADStatusCallback+0x1c>)
+ 80136d6:	681b      	ldr	r3, [r3, #0]
+ 80136d8:	2080      	movs	r0, #128	; 0x80
+ 80136da:	4718      	bx	r3
+ 80136dc:	4b02      	ldr	r3, [pc, #8]	; (80136e8 <HAL_SUBGHZ_CADStatusCallback+0x1c>)
+ 80136de:	f44f 7080 	mov.w	r0, #256	; 0x100
+ 80136e2:	681b      	ldr	r3, [r3, #0]
+ 80136e4:	e7f9      	b.n	80136da <HAL_SUBGHZ_CADStatusCallback+0xe>
+ 80136e6:	bf00      	nop
+ 80136e8:	200027c4 	.word	0x200027c4
+
+080136ec <HAL_SUBGHZ_RxTxTimeoutCallback>:
+ 80136ec:	4b02      	ldr	r3, [pc, #8]	; (80136f8 <HAL_SUBGHZ_RxTxTimeoutCallback+0xc>)
+ 80136ee:	f44f 7000 	mov.w	r0, #512	; 0x200
+ 80136f2:	681b      	ldr	r3, [r3, #0]
+ 80136f4:	4718      	bx	r3
+ 80136f6:	bf00      	nop
+ 80136f8:	200027c4 	.word	0x200027c4
+
+080136fc <HAL_SUBGHZ_HeaderErrorCallback>:
+ 80136fc:	4b01      	ldr	r3, [pc, #4]	; (8013704 <HAL_SUBGHZ_HeaderErrorCallback+0x8>)
+ 80136fe:	2020      	movs	r0, #32
+ 8013700:	681b      	ldr	r3, [r3, #0]
+ 8013702:	4718      	bx	r3
+ 8013704:	200027c4 	.word	0x200027c4
+
+08013708 <HAL_SUBGHZ_PreambleDetectedCallback>:
+ 8013708:	4b01      	ldr	r3, [pc, #4]	; (8013710 <HAL_SUBGHZ_PreambleDetectedCallback+0x8>)
+ 801370a:	2004      	movs	r0, #4
+ 801370c:	681b      	ldr	r3, [r3, #0]
+ 801370e:	4718      	bx	r3
+ 8013710:	200027c4 	.word	0x200027c4
+
+08013714 <HAL_SUBGHZ_SyncWordValidCallback>:
+ 8013714:	4b01      	ldr	r3, [pc, #4]	; (801371c <HAL_SUBGHZ_SyncWordValidCallback+0x8>)
+ 8013716:	2008      	movs	r0, #8
+ 8013718:	681b      	ldr	r3, [r3, #0]
+ 801371a:	4718      	bx	r3
+ 801371c:	200027c4 	.word	0x200027c4
+
+08013720 <HAL_SUBGHZ_HeaderValidCallback>:
+ 8013720:	4b01      	ldr	r3, [pc, #4]	; (8013728 <HAL_SUBGHZ_HeaderValidCallback+0x8>)
+ 8013722:	2010      	movs	r0, #16
+ 8013724:	681b      	ldr	r3, [r3, #0]
+ 8013726:	4718      	bx	r3
+ 8013728:	200027c4 	.word	0x200027c4
+
+0801372c <HAL_SUBGHZ_LrFhssHopCallback>:
+ 801372c:	4b02      	ldr	r3, [pc, #8]	; (8013738 <HAL_SUBGHZ_LrFhssHopCallback+0xc>)
+ 801372e:	f44f 4080 	mov.w	r0, #16384	; 0x4000
+ 8013732:	681b      	ldr	r3, [r3, #0]
+ 8013734:	4718      	bx	r3
+ 8013736:	bf00      	nop
+ 8013738:	200027c4 	.word	0x200027c4
+
+0801373c <SUBGRF_GetFskBandwidthRegValue>:
+ 801373c:	b168      	cbz	r0, 801375a <SUBGRF_GetFskBandwidthRegValue+0x1e>
+ 801373e:	4a08      	ldr	r2, [pc, #32]	; (8013760 <SUBGRF_GetFskBandwidthRegValue+0x24>)
+ 8013740:	2300      	movs	r3, #0
+ 8013742:	f852 1033 	ldr.w	r1, [r2, r3, lsl #3]
+ 8013746:	4281      	cmp	r1, r0
+ 8013748:	d903      	bls.n	8013752 <SUBGRF_GetFskBandwidthRegValue+0x16>
+ 801374a:	eb02 02c3 	add.w	r2, r2, r3, lsl #3
+ 801374e:	7910      	ldrb	r0, [r2, #4]
+ 8013750:	4770      	bx	lr
+ 8013752:	3301      	adds	r3, #1
+ 8013754:	2b16      	cmp	r3, #22
+ 8013756:	d1f4      	bne.n	8013742 <SUBGRF_GetFskBandwidthRegValue+0x6>
+ 8013758:	e7fe      	b.n	8013758 <SUBGRF_GetFskBandwidthRegValue+0x1c>
+ 801375a:	201f      	movs	r0, #31
+ 801375c:	4770      	bx	lr
+ 801375e:	bf00      	nop
+ 8013760:	08015a3c 	.word	0x08015a3c
+
+08013764 <SUBGRF_GetCFO>:
+ 8013764:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 8013766:	4b1d      	ldr	r3, [pc, #116]	; (80137dc <SUBGRF_GetCFO+0x78>)
+ 8013768:	9301      	str	r3, [sp, #4]
+ 801376a:	4604      	mov	r4, r0
+ 801376c:	f640 0007 	movw	r0, #2055	; 0x807
+ 8013770:	460d      	mov	r5, r1
+ 8013772:	f7ff faab 	bl	8012ccc <SUBGRF_ReadRegister>
+ 8013776:	f3c0 03c1 	ubfx	r3, r0, #3, #2
+ 801377a:	3308      	adds	r3, #8
+ 801377c:	446b      	add	r3, sp
+ 801377e:	f813 2c04 	ldrb.w	r2, [r3, #-4]
+ 8013782:	f000 0307 	and.w	r3, r0, #7
+ 8013786:	3301      	adds	r3, #1
+ 8013788:	fa02 f303 	lsl.w	r3, r2, r3
+ 801378c:	4a14      	ldr	r2, [pc, #80]	; (80137e0 <SUBGRF_GetCFO+0x7c>)
+ 801378e:	fbb2 f2f3 	udiv	r2, r2, r3
+ 8013792:	fbb2 f0f4 	udiv	r0, r2, r4
+ 8013796:	2807      	cmp	r0, #7
+ 8013798:	d81e      	bhi.n	80137d8 <SUBGRF_GetCFO+0x74>
+ 801379a:	0040      	lsls	r0, r0, #1
+ 801379c:	2803      	cmp	r0, #3
+ 801379e:	bf8c      	ite	hi
+ 80137a0:	2302      	movhi	r3, #2
+ 80137a2:	2304      	movls	r3, #4
+ 80137a4:	f44f 60d6 	mov.w	r0, #1712	; 0x6b0
+ 80137a8:	fb02 f403 	mul.w	r4, r2, r3
+ 80137ac:	f7ff fa8e 	bl	8012ccc <SUBGRF_ReadRegister>
+ 80137b0:	0206      	lsls	r6, r0, #8
+ 80137b2:	f240 60b1 	movw	r0, #1713	; 0x6b1
+ 80137b6:	f7ff fa89 	bl	8012ccc <SUBGRF_ReadRegister>
+ 80137ba:	f406 6670 	and.w	r6, r6, #3840	; 0xf00
+ 80137be:	4330      	orrs	r0, r6
+ 80137c0:	0503      	lsls	r3, r0, #20
+ 80137c2:	bf44      	itt	mi
+ 80137c4:	ea6f 5000 	mvnmi.w	r0, r0, lsl #20
+ 80137c8:	ea6f 5010 	mvnmi.w	r0, r0, lsr #20
+ 80137cc:	0963      	lsrs	r3, r4, #5
+ 80137ce:	4343      	muls	r3, r0
+ 80137d0:	11db      	asrs	r3, r3, #7
+ 80137d2:	602b      	str	r3, [r5, #0]
+ 80137d4:	b002      	add	sp, #8
+ 80137d6:	bd70      	pop	{r4, r5, r6, pc}
+ 80137d8:	2301      	movs	r3, #1
+ 80137da:	e7e3      	b.n	80137a4 <SUBGRF_GetCFO+0x40>
+ 80137dc:	0c0a0804 	.word	0x0c0a0804
+ 80137e0:	01e84800 	.word	0x01e84800
+
+080137e4 <RFW_TransmitLongPacket>:
+ 80137e4:	f04f 30ff 	mov.w	r0, #4294967295
+ 80137e8:	4770      	bx	lr
+
+080137ea <RFW_ReceiveLongPacket>:
+ 80137ea:	f04f 30ff 	mov.w	r0, #4294967295
+ 80137ee:	4770      	bx	lr
+
+080137f0 <RFW_Init>:
+ 80137f0:	f04f 30ff 	mov.w	r0, #4294967295
+ 80137f4:	4770      	bx	lr
+
+080137f6 <RFW_DeInit>:
+ 80137f6:	4770      	bx	lr
+
+080137f8 <RFW_Is_Init>:
+ 80137f8:	2000      	movs	r0, #0
+ 80137fa:	4770      	bx	lr
+
+080137fc <RFW_Is_LongPacketModeEnabled>:
+ 80137fc:	2000      	movs	r0, #0
+ 80137fe:	4770      	bx	lr
+
+08013800 <RFW_SetAntSwitch>:
+ 8013800:	4770      	bx	lr
+
+08013802 <RFW_TransmitInit>:
+ 8013802:	f04f 30ff 	mov.w	r0, #4294967295
+ 8013806:	4770      	bx	lr
+
+08013808 <RFW_ReceiveInit>:
+ 8013808:	f04f 30ff 	mov.w	r0, #4294967295
+ 801380c:	4770      	bx	lr
+
+0801380e <RFW_DeInit_TxLongPacket>:
+ 801380e:	4770      	bx	lr
+
+08013810 <RFW_ReceivePayload>:
+ 8013810:	4770      	bx	lr
+
+08013812 <RFW_SetRadioModem>:
+ 8013812:	4770      	bx	lr
+
+08013814 <TRACE_AllocateBufer>:
+ 8013814:	b570      	push	{r4, r5, r6, lr}
+ 8013816:	f3ef 8610 	mrs	r6, PRIMASK
+ 801381a:	b672      	cpsid	i
+ 801381c:	4b14      	ldr	r3, [pc, #80]	; (8013870 <TRACE_AllocateBufer+0x5c>)
+ 801381e:	8a5c      	ldrh	r4, [r3, #18]
+ 8013820:	8a1a      	ldrh	r2, [r3, #16]
+ 8013822:	4294      	cmp	r4, r2
+ 8013824:	d113      	bne.n	801384e <TRACE_AllocateBufer+0x3a>
+ 8013826:	f5c4 6280 	rsb	r2, r4, #1024	; 0x400
+ 801382a:	b292      	uxth	r2, r2
+ 801382c:	4290      	cmp	r0, r2
+ 801382e:	d306      	bcc.n	801383e <TRACE_AllocateBufer+0x2a>
+ 8013830:	4284      	cmp	r4, r0
+ 8013832:	d918      	bls.n	8013866 <TRACE_AllocateBufer+0x52>
+ 8013834:	2201      	movs	r2, #1
+ 8013836:	709a      	strb	r2, [r3, #2]
+ 8013838:	2200      	movs	r2, #0
+ 801383a:	801c      	strh	r4, [r3, #0]
+ 801383c:	825a      	strh	r2, [r3, #18]
+ 801383e:	8a5a      	ldrh	r2, [r3, #18]
+ 8013840:	800a      	strh	r2, [r1, #0]
+ 8013842:	4402      	add	r2, r0
+ 8013844:	f3c2 0209 	ubfx	r2, r2, #0, #10
+ 8013848:	825a      	strh	r2, [r3, #18]
+ 801384a:	2000      	movs	r0, #0
+ 801384c:	e00d      	b.n	801386a <TRACE_AllocateBufer+0x56>
+ 801384e:	d906      	bls.n	801385e <TRACE_AllocateBufer+0x4a>
+ 8013850:	f5c4 6580 	rsb	r5, r4, #1024	; 0x400
+ 8013854:	b2ad      	uxth	r5, r5
+ 8013856:	4285      	cmp	r5, r0
+ 8013858:	d8f1      	bhi.n	801383e <TRACE_AllocateBufer+0x2a>
+ 801385a:	4282      	cmp	r2, r0
+ 801385c:	e7e9      	b.n	8013832 <TRACE_AllocateBufer+0x1e>
+ 801385e:	1b12      	subs	r2, r2, r4
+ 8013860:	b292      	uxth	r2, r2
+ 8013862:	4282      	cmp	r2, r0
+ 8013864:	d8eb      	bhi.n	801383e <TRACE_AllocateBufer+0x2a>
+ 8013866:	f04f 30ff 	mov.w	r0, #4294967295
+ 801386a:	f386 8810 	msr	PRIMASK, r6
+ 801386e:	bd70      	pop	{r4, r5, r6, pc}
+ 8013870:	20002bc8 	.word	0x20002bc8
+
+08013874 <TRACE_Lock>:
+ 8013874:	f3ef 8110 	mrs	r1, PRIMASK
+ 8013878:	b672      	cpsid	i
+ 801387a:	4a03      	ldr	r2, [pc, #12]	; (8013888 <TRACE_Lock+0x14>)
+ 801387c:	8ad3      	ldrh	r3, [r2, #22]
+ 801387e:	3301      	adds	r3, #1
+ 8013880:	82d3      	strh	r3, [r2, #22]
+ 8013882:	f381 8810 	msr	PRIMASK, r1
+ 8013886:	4770      	bx	lr
+ 8013888:	20002bc8 	.word	0x20002bc8
+
+0801388c <TRACE_UnLock>:
+ 801388c:	f3ef 8110 	mrs	r1, PRIMASK
+ 8013890:	b672      	cpsid	i
+ 8013892:	4a03      	ldr	r2, [pc, #12]	; (80138a0 <TRACE_UnLock+0x14>)
+ 8013894:	8ad3      	ldrh	r3, [r2, #22]
+ 8013896:	3b01      	subs	r3, #1
+ 8013898:	82d3      	strh	r3, [r2, #22]
+ 801389a:	f381 8810 	msr	PRIMASK, r1
+ 801389e:	4770      	bx	lr
+ 80138a0:	20002bc8 	.word	0x20002bc8
+
+080138a4 <UTIL_ADV_TRACE_Init>:
+ 80138a4:	b510      	push	{r4, lr}
+ 80138a6:	4808      	ldr	r0, [pc, #32]	; (80138c8 <UTIL_ADV_TRACE_Init+0x24>)
+ 80138a8:	2218      	movs	r2, #24
+ 80138aa:	2100      	movs	r1, #0
+ 80138ac:	f000 f976 	bl	8013b9c <UTIL_MEM_set_8>
+ 80138b0:	4806      	ldr	r0, [pc, #24]	; (80138cc <UTIL_ADV_TRACE_Init+0x28>)
+ 80138b2:	f44f 6280 	mov.w	r2, #1024	; 0x400
+ 80138b6:	2100      	movs	r1, #0
+ 80138b8:	f000 f970 	bl	8013b9c <UTIL_MEM_set_8>
+ 80138bc:	4b04      	ldr	r3, [pc, #16]	; (80138d0 <UTIL_ADV_TRACE_Init+0x2c>)
+ 80138be:	4805      	ldr	r0, [pc, #20]	; (80138d4 <UTIL_ADV_TRACE_Init+0x30>)
+ 80138c0:	681b      	ldr	r3, [r3, #0]
+ 80138c2:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 80138c6:	4718      	bx	r3
+ 80138c8:	20002bc8 	.word	0x20002bc8
+ 80138cc:	200027c8 	.word	0x200027c8
+ 80138d0:	080146b4 	.word	0x080146b4
+ 80138d4:	08013a45 	.word	0x08013a45
+
+080138d8 <UTIL_ADV_TRACE_RegisterTimeStampFunction>:
+ 80138d8:	4b01      	ldr	r3, [pc, #4]	; (80138e0 <UTIL_ADV_TRACE_RegisterTimeStampFunction+0x8>)
+ 80138da:	6058      	str	r0, [r3, #4]
+ 80138dc:	4770      	bx	lr
+ 80138de:	bf00      	nop
+ 80138e0:	20002bc8 	.word	0x20002bc8
+
+080138e4 <UTIL_ADV_TRACE_SetVerboseLevel>:
+ 80138e4:	4b01      	ldr	r3, [pc, #4]	; (80138ec <UTIL_ADV_TRACE_SetVerboseLevel+0x8>)
+ 80138e6:	7218      	strb	r0, [r3, #8]
+ 80138e8:	4770      	bx	lr
+ 80138ea:	bf00      	nop
+ 80138ec:	20002bc8 	.word	0x20002bc8
+
+080138f0 <TRACE_Send>:
+ 80138f0:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 80138f2:	f3ef 8510 	mrs	r5, PRIMASK
+ 80138f6:	b672      	cpsid	i
+ 80138f8:	4c1c      	ldr	r4, [pc, #112]	; (801396c <TRACE_Send+0x7c>)
+ 80138fa:	8ae0      	ldrh	r0, [r4, #22]
+ 80138fc:	2800      	cmp	r0, #0
+ 80138fe:	d12f      	bne.n	8013960 <TRACE_Send+0x70>
+ 8013900:	f7ff ffb8 	bl	8013874 <TRACE_Lock>
+ 8013904:	8a21      	ldrh	r1, [r4, #16]
+ 8013906:	8a62      	ldrh	r2, [r4, #18]
+ 8013908:	4291      	cmp	r1, r2
+ 801390a:	d027      	beq.n	801395c <TRACE_Send+0x6c>
+ 801390c:	78a3      	ldrb	r3, [r4, #2]
+ 801390e:	2b01      	cmp	r3, #1
+ 8013910:	d112      	bne.n	8013938 <TRACE_Send+0x48>
+ 8013912:	8823      	ldrh	r3, [r4, #0]
+ 8013914:	8020      	strh	r0, [r4, #0]
+ 8013916:	1a5b      	subs	r3, r3, r1
+ 8013918:	b29b      	uxth	r3, r3
+ 801391a:	2102      	movs	r1, #2
+ 801391c:	82a3      	strh	r3, [r4, #20]
+ 801391e:	70a1      	strb	r1, [r4, #2]
+ 8013920:	b963      	cbnz	r3, 801393c <TRACE_Send+0x4c>
+ 8013922:	70a3      	strb	r3, [r4, #2]
+ 8013924:	8223      	strh	r3, [r4, #16]
+ 8013926:	8a23      	ldrh	r3, [r4, #16]
+ 8013928:	429a      	cmp	r2, r3
+ 801392a:	bf8b      	itete	hi
+ 801392c:	1ad2      	subhi	r2, r2, r3
+ 801392e:	f5c3 6380 	rsbls	r3, r3, #1024	; 0x400
+ 8013932:	82a2      	strhhi	r2, [r4, #20]
+ 8013934:	82a3      	strhls	r3, [r4, #20]
+ 8013936:	e001      	b.n	801393c <TRACE_Send+0x4c>
+ 8013938:	2b00      	cmp	r3, #0
+ 801393a:	d0f4      	beq.n	8013926 <TRACE_Send+0x36>
+ 801393c:	8a23      	ldrh	r3, [r4, #16]
+ 801393e:	4e0c      	ldr	r6, [pc, #48]	; (8013970 <TRACE_Send+0x80>)
+ 8013940:	441e      	add	r6, r3
+ 8013942:	f385 8810 	msr	PRIMASK, r5
+ 8013946:	f7ef f919 	bl	8002b7c <UTIL_ADV_TRACE_PreSendHook>
+ 801394a:	4b0a      	ldr	r3, [pc, #40]	; (8013974 <TRACE_Send+0x84>)
+ 801394c:	8aa1      	ldrh	r1, [r4, #20]
+ 801394e:	68db      	ldr	r3, [r3, #12]
+ 8013950:	9301      	str	r3, [sp, #4]
+ 8013952:	4630      	mov	r0, r6
+ 8013954:	b002      	add	sp, #8
+ 8013956:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
+ 801395a:	4718      	bx	r3
+ 801395c:	f7ff ff96 	bl	801388c <TRACE_UnLock>
+ 8013960:	f385 8810 	msr	PRIMASK, r5
+ 8013964:	2000      	movs	r0, #0
+ 8013966:	b002      	add	sp, #8
+ 8013968:	bd70      	pop	{r4, r5, r6, pc}
+ 801396a:	bf00      	nop
+ 801396c:	20002bc8 	.word	0x20002bc8
+ 8013970:	200027c8 	.word	0x200027c8
+ 8013974:	080146b4 	.word	0x080146b4
+
+08013978 <UTIL_ADV_TRACE_COND_FSend>:
+ 8013978:	b408      	push	{r3}
+ 801397a:	b5f0      	push	{r4, r5, r6, r7, lr}
+ 801397c:	b086      	sub	sp, #24
+ 801397e:	2300      	movs	r3, #0
+ 8013980:	f8ad 3000 	strh.w	r3, [sp]
+ 8013984:	4b2c      	ldr	r3, [pc, #176]	; (8013a38 <UTIL_ADV_TRACE_COND_FSend+0xc0>)
+ 8013986:	9c0b      	ldr	r4, [sp, #44]	; 0x2c
+ 8013988:	7a1d      	ldrb	r5, [r3, #8]
+ 801398a:	4285      	cmp	r5, r0
+ 801398c:	d34d      	bcc.n	8013a2a <UTIL_ADV_TRACE_COND_FSend+0xb2>
+ 801398e:	68d8      	ldr	r0, [r3, #12]
+ 8013990:	4381      	bics	r1, r0
+ 8013992:	d14d      	bne.n	8013a30 <UTIL_ADV_TRACE_COND_FSend+0xb8>
+ 8013994:	685b      	ldr	r3, [r3, #4]
+ 8013996:	b11b      	cbz	r3, 80139a0 <UTIL_ADV_TRACE_COND_FSend+0x28>
+ 8013998:	b112      	cbz	r2, 80139a0 <UTIL_ADV_TRACE_COND_FSend+0x28>
+ 801399a:	4669      	mov	r1, sp
+ 801399c:	a802      	add	r0, sp, #8
+ 801399e:	4798      	blx	r3
+ 80139a0:	ab0c      	add	r3, sp, #48	; 0x30
+ 80139a2:	4622      	mov	r2, r4
+ 80139a4:	f44f 7100 	mov.w	r1, #512	; 0x200
+ 80139a8:	4824      	ldr	r0, [pc, #144]	; (8013a3c <UTIL_ADV_TRACE_COND_FSend+0xc4>)
+ 80139aa:	9301      	str	r3, [sp, #4]
+ 80139ac:	f000 fbf6 	bl	801419c <tiny_vsnprintf_like>
+ 80139b0:	f7ff ff60 	bl	8013874 <TRACE_Lock>
+ 80139b4:	f8bd 3000 	ldrh.w	r3, [sp]
+ 80139b8:	4418      	add	r0, r3
+ 80139ba:	f10d 0102 	add.w	r1, sp, #2
+ 80139be:	b280      	uxth	r0, r0
+ 80139c0:	f7ff ff28 	bl	8013814 <TRACE_AllocateBufer>
+ 80139c4:	3001      	adds	r0, #1
+ 80139c6:	d02b      	beq.n	8013a20 <UTIL_ADV_TRACE_COND_FSend+0xa8>
+ 80139c8:	2200      	movs	r2, #0
+ 80139ca:	f8bd 3000 	ldrh.w	r3, [sp]
+ 80139ce:	f8bd 7002 	ldrh.w	r7, [sp, #2]
+ 80139d2:	481b      	ldr	r0, [pc, #108]	; (8013a40 <UTIL_ADV_TRACE_COND_FSend+0xc8>)
+ 80139d4:	f10d 0c08 	add.w	ip, sp, #8
+ 80139d8:	4616      	mov	r6, r2
+ 80139da:	b291      	uxth	r1, r2
+ 80139dc:	fa17 f582 	uxtah	r5, r7, r2
+ 80139e0:	428b      	cmp	r3, r1
+ 80139e2:	b2ad      	uxth	r5, r5
+ 80139e4:	d816      	bhi.n	8013a14 <UTIL_ADV_TRACE_COND_FSend+0x9c>
+ 80139e6:	443b      	add	r3, r7
+ 80139e8:	b29b      	uxth	r3, r3
+ 80139ea:	b10e      	cbz	r6, 80139f0 <UTIL_ADV_TRACE_COND_FSend+0x78>
+ 80139ec:	f8ad 3002 	strh.w	r3, [sp, #2]
+ 80139f0:	f8bd 5002 	ldrh.w	r5, [sp, #2]
+ 80139f4:	9b01      	ldr	r3, [sp, #4]
+ 80139f6:	4622      	mov	r2, r4
+ 80139f8:	f44f 7100 	mov.w	r1, #512	; 0x200
+ 80139fc:	4428      	add	r0, r5
+ 80139fe:	f000 fbcd 	bl	801419c <tiny_vsnprintf_like>
+ 8013a02:	f7ff ff43 	bl	801388c <TRACE_UnLock>
+ 8013a06:	f7ff ff73 	bl	80138f0 <TRACE_Send>
+ 8013a0a:	b006      	add	sp, #24
+ 8013a0c:	e8bd 40f0 	ldmia.w	sp!, {r4, r5, r6, r7, lr}
+ 8013a10:	b001      	add	sp, #4
+ 8013a12:	4770      	bx	lr
+ 8013a14:	f81c 1b01 	ldrb.w	r1, [ip], #1
+ 8013a18:	5541      	strb	r1, [r0, r5]
+ 8013a1a:	3201      	adds	r2, #1
+ 8013a1c:	2601      	movs	r6, #1
+ 8013a1e:	e7dc      	b.n	80139da <UTIL_ADV_TRACE_COND_FSend+0x62>
+ 8013a20:	f7ff ff34 	bl	801388c <TRACE_UnLock>
+ 8013a24:	f06f 0002 	mvn.w	r0, #2
+ 8013a28:	e7ef      	b.n	8013a0a <UTIL_ADV_TRACE_COND_FSend+0x92>
+ 8013a2a:	f06f 0004 	mvn.w	r0, #4
+ 8013a2e:	e7ec      	b.n	8013a0a <UTIL_ADV_TRACE_COND_FSend+0x92>
+ 8013a30:	f06f 0005 	mvn.w	r0, #5
+ 8013a34:	e7e9      	b.n	8013a0a <UTIL_ADV_TRACE_COND_FSend+0x92>
+ 8013a36:	bf00      	nop
+ 8013a38:	20002bc8 	.word	0x20002bc8
+ 8013a3c:	20002be0 	.word	0x20002be0
+ 8013a40:	200027c8 	.word	0x200027c8
+
+08013a44 <TRACE_TxCpltCallback>:
+ 8013a44:	b513      	push	{r0, r1, r4, lr}
+ 8013a46:	f3ef 8410 	mrs	r4, PRIMASK
+ 8013a4a:	b672      	cpsid	i
+ 8013a4c:	4b20      	ldr	r3, [pc, #128]	; (8013ad0 <TRACE_TxCpltCallback+0x8c>)
+ 8013a4e:	789a      	ldrb	r2, [r3, #2]
+ 8013a50:	8a58      	ldrh	r0, [r3, #18]
+ 8013a52:	2a02      	cmp	r2, #2
+ 8013a54:	bf1d      	ittte	ne
+ 8013a56:	8a1a      	ldrhne	r2, [r3, #16]
+ 8013a58:	8a99      	ldrhne	r1, [r3, #20]
+ 8013a5a:	1852      	addne	r2, r2, r1
+ 8013a5c:	2200      	moveq	r2, #0
+ 8013a5e:	bf14      	ite	ne
+ 8013a60:	f3c2 0209 	ubfxne	r2, r2, #0, #10
+ 8013a64:	709a      	strbeq	r2, [r3, #2]
+ 8013a66:	4290      	cmp	r0, r2
+ 8013a68:	821a      	strh	r2, [r3, #16]
+ 8013a6a:	d028      	beq.n	8013abe <TRACE_TxCpltCallback+0x7a>
+ 8013a6c:	8ad9      	ldrh	r1, [r3, #22]
+ 8013a6e:	2901      	cmp	r1, #1
+ 8013a70:	d125      	bne.n	8013abe <TRACE_TxCpltCallback+0x7a>
+ 8013a72:	7899      	ldrb	r1, [r3, #2]
+ 8013a74:	2901      	cmp	r1, #1
+ 8013a76:	d113      	bne.n	8013aa0 <TRACE_TxCpltCallback+0x5c>
+ 8013a78:	8819      	ldrh	r1, [r3, #0]
+ 8013a7a:	1a8a      	subs	r2, r1, r2
+ 8013a7c:	2102      	movs	r1, #2
+ 8013a7e:	b292      	uxth	r2, r2
+ 8013a80:	7099      	strb	r1, [r3, #2]
+ 8013a82:	2100      	movs	r1, #0
+ 8013a84:	829a      	strh	r2, [r3, #20]
+ 8013a86:	8019      	strh	r1, [r3, #0]
+ 8013a88:	b962      	cbnz	r2, 8013aa4 <TRACE_TxCpltCallback+0x60>
+ 8013a8a:	709a      	strb	r2, [r3, #2]
+ 8013a8c:	821a      	strh	r2, [r3, #16]
+ 8013a8e:	8a1a      	ldrh	r2, [r3, #16]
+ 8013a90:	4290      	cmp	r0, r2
+ 8013a92:	bf8b      	itete	hi
+ 8013a94:	1a80      	subhi	r0, r0, r2
+ 8013a96:	f5c2 6280 	rsbls	r2, r2, #1024	; 0x400
+ 8013a9a:	8298      	strhhi	r0, [r3, #20]
+ 8013a9c:	829a      	strhls	r2, [r3, #20]
+ 8013a9e:	e001      	b.n	8013aa4 <TRACE_TxCpltCallback+0x60>
+ 8013aa0:	2900      	cmp	r1, #0
+ 8013aa2:	d0f4      	beq.n	8013a8e <TRACE_TxCpltCallback+0x4a>
+ 8013aa4:	8a1a      	ldrh	r2, [r3, #16]
+ 8013aa6:	480b      	ldr	r0, [pc, #44]	; (8013ad4 <TRACE_TxCpltCallback+0x90>)
+ 8013aa8:	4410      	add	r0, r2
+ 8013aaa:	f384 8810 	msr	PRIMASK, r4
+ 8013aae:	4a0a      	ldr	r2, [pc, #40]	; (8013ad8 <TRACE_TxCpltCallback+0x94>)
+ 8013ab0:	8a99      	ldrh	r1, [r3, #20]
+ 8013ab2:	68d3      	ldr	r3, [r2, #12]
+ 8013ab4:	9301      	str	r3, [sp, #4]
+ 8013ab6:	b002      	add	sp, #8
+ 8013ab8:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8013abc:	4718      	bx	r3
+ 8013abe:	f384 8810 	msr	PRIMASK, r4
+ 8013ac2:	f7ef f85f 	bl	8002b84 <UTIL_ADV_TRACE_PostSendHook>
+ 8013ac6:	b002      	add	sp, #8
+ 8013ac8:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8013acc:	f7ff bede 	b.w	801388c <TRACE_UnLock>
+ 8013ad0:	20002bc8 	.word	0x20002bc8
+ 8013ad4:	200027c8 	.word	0x200027c8
+ 8013ad8:	080146b4 	.word	0x080146b4
+
+08013adc <UTIL_LPM_Init>:
+ 8013adc:	4a02      	ldr	r2, [pc, #8]	; (8013ae8 <UTIL_LPM_Init+0xc>)
+ 8013ade:	2300      	movs	r3, #0
+ 8013ae0:	6013      	str	r3, [r2, #0]
+ 8013ae2:	4a02      	ldr	r2, [pc, #8]	; (8013aec <UTIL_LPM_Init+0x10>)
+ 8013ae4:	6013      	str	r3, [r2, #0]
+ 8013ae6:	4770      	bx	lr
+ 8013ae8:	20002de4 	.word	0x20002de4
+ 8013aec:	20002de0 	.word	0x20002de0
+
+08013af0 <UTIL_LPM_SetStopMode>:
+ 8013af0:	b510      	push	{r4, lr}
+ 8013af2:	f3ef 8410 	mrs	r4, PRIMASK
+ 8013af6:	b672      	cpsid	i
+ 8013af8:	b141      	cbz	r1, 8013b0c <UTIL_LPM_SetStopMode+0x1c>
+ 8013afa:	2901      	cmp	r1, #1
+ 8013afc:	d103      	bne.n	8013b06 <UTIL_LPM_SetStopMode+0x16>
+ 8013afe:	4a06      	ldr	r2, [pc, #24]	; (8013b18 <UTIL_LPM_SetStopMode+0x28>)
+ 8013b00:	6813      	ldr	r3, [r2, #0]
+ 8013b02:	4303      	orrs	r3, r0
+ 8013b04:	6013      	str	r3, [r2, #0]
+ 8013b06:	f384 8810 	msr	PRIMASK, r4
+ 8013b0a:	bd10      	pop	{r4, pc}
+ 8013b0c:	4a02      	ldr	r2, [pc, #8]	; (8013b18 <UTIL_LPM_SetStopMode+0x28>)
+ 8013b0e:	6813      	ldr	r3, [r2, #0]
+ 8013b10:	ea23 0300 	bic.w	r3, r3, r0
+ 8013b14:	e7f6      	b.n	8013b04 <UTIL_LPM_SetStopMode+0x14>
+ 8013b16:	bf00      	nop
+ 8013b18:	20002de4 	.word	0x20002de4
+
+08013b1c <UTIL_LPM_SetOffMode>:
+ 8013b1c:	b510      	push	{r4, lr}
+ 8013b1e:	f3ef 8410 	mrs	r4, PRIMASK
+ 8013b22:	b672      	cpsid	i
+ 8013b24:	b141      	cbz	r1, 8013b38 <UTIL_LPM_SetOffMode+0x1c>
+ 8013b26:	2901      	cmp	r1, #1
+ 8013b28:	d103      	bne.n	8013b32 <UTIL_LPM_SetOffMode+0x16>
+ 8013b2a:	4a06      	ldr	r2, [pc, #24]	; (8013b44 <UTIL_LPM_SetOffMode+0x28>)
+ 8013b2c:	6813      	ldr	r3, [r2, #0]
+ 8013b2e:	4303      	orrs	r3, r0
+ 8013b30:	6013      	str	r3, [r2, #0]
+ 8013b32:	f384 8810 	msr	PRIMASK, r4
+ 8013b36:	bd10      	pop	{r4, pc}
+ 8013b38:	4a02      	ldr	r2, [pc, #8]	; (8013b44 <UTIL_LPM_SetOffMode+0x28>)
+ 8013b3a:	6813      	ldr	r3, [r2, #0]
+ 8013b3c:	ea23 0300 	bic.w	r3, r3, r0
+ 8013b40:	e7f6      	b.n	8013b30 <UTIL_LPM_SetOffMode+0x14>
+ 8013b42:	bf00      	nop
+ 8013b44:	20002de0 	.word	0x20002de0
+
+08013b48 <UTIL_LPM_EnterLowPower>:
+ 8013b48:	b538      	push	{r3, r4, r5, lr}
+ 8013b4a:	f3ef 8510 	mrs	r5, PRIMASK
+ 8013b4e:	b672      	cpsid	i
+ 8013b50:	4b0a      	ldr	r3, [pc, #40]	; (8013b7c <UTIL_LPM_EnterLowPower+0x34>)
+ 8013b52:	4c0b      	ldr	r4, [pc, #44]	; (8013b80 <UTIL_LPM_EnterLowPower+0x38>)
+ 8013b54:	681b      	ldr	r3, [r3, #0]
+ 8013b56:	b133      	cbz	r3, 8013b66 <UTIL_LPM_EnterLowPower+0x1e>
+ 8013b58:	6823      	ldr	r3, [r4, #0]
+ 8013b5a:	4798      	blx	r3
+ 8013b5c:	6863      	ldr	r3, [r4, #4]
+ 8013b5e:	4798      	blx	r3
+ 8013b60:	f385 8810 	msr	PRIMASK, r5
+ 8013b64:	bd38      	pop	{r3, r4, r5, pc}
+ 8013b66:	4b07      	ldr	r3, [pc, #28]	; (8013b84 <UTIL_LPM_EnterLowPower+0x3c>)
+ 8013b68:	681b      	ldr	r3, [r3, #0]
+ 8013b6a:	b11b      	cbz	r3, 8013b74 <UTIL_LPM_EnterLowPower+0x2c>
+ 8013b6c:	68a3      	ldr	r3, [r4, #8]
+ 8013b6e:	4798      	blx	r3
+ 8013b70:	68e3      	ldr	r3, [r4, #12]
+ 8013b72:	e7f4      	b.n	8013b5e <UTIL_LPM_EnterLowPower+0x16>
+ 8013b74:	6923      	ldr	r3, [r4, #16]
+ 8013b76:	4798      	blx	r3
+ 8013b78:	6963      	ldr	r3, [r4, #20]
+ 8013b7a:	e7f0      	b.n	8013b5e <UTIL_LPM_EnterLowPower+0x16>
+ 8013b7c:	20002de4 	.word	0x20002de4
+ 8013b80:	08014608 	.word	0x08014608
+ 8013b84:	20002de0 	.word	0x20002de0
+
+08013b88 <UTIL_MEM_cpy_8>:
+ 8013b88:	3801      	subs	r0, #1
+ 8013b8a:	440a      	add	r2, r1
+ 8013b8c:	4291      	cmp	r1, r2
+ 8013b8e:	d100      	bne.n	8013b92 <UTIL_MEM_cpy_8+0xa>
+ 8013b90:	4770      	bx	lr
+ 8013b92:	f811 3b01 	ldrb.w	r3, [r1], #1
+ 8013b96:	f800 3f01 	strb.w	r3, [r0, #1]!
+ 8013b9a:	e7f7      	b.n	8013b8c <UTIL_MEM_cpy_8+0x4>
+
+08013b9c <UTIL_MEM_set_8>:
+ 8013b9c:	f000 bc2c 	b.w	80143f8 <memset>
+
+08013ba0 <UTIL_SEQ_SetTask>:
+ 8013ba0:	b510      	push	{r4, lr}
+ 8013ba2:	f3ef 8410 	mrs	r4, PRIMASK
+ 8013ba6:	b672      	cpsid	i
+ 8013ba8:	4a06      	ldr	r2, [pc, #24]	; (8013bc4 <UTIL_SEQ_SetTask+0x24>)
+ 8013baa:	6813      	ldr	r3, [r2, #0]
+ 8013bac:	4303      	orrs	r3, r0
+ 8013bae:	6013      	str	r3, [r2, #0]
+ 8013bb0:	4a05      	ldr	r2, [pc, #20]	; (8013bc8 <UTIL_SEQ_SetTask+0x28>)
+ 8013bb2:	f852 3031 	ldr.w	r3, [r2, r1, lsl #3]
+ 8013bb6:	4303      	orrs	r3, r0
+ 8013bb8:	f842 3031 	str.w	r3, [r2, r1, lsl #3]
+ 8013bbc:	f384 8810 	msr	PRIMASK, r4
+ 8013bc0:	bd10      	pop	{r4, pc}
+ 8013bc2:	bf00      	nop
+ 8013bc4:	20002e34 	.word	0x20002e34
+ 8013bc8:	20002e2c 	.word	0x20002e2c
+
+08013bcc <UTIL_SEQ_PreIdle>:
+ 8013bcc:	4770      	bx	lr
+
+08013bce <UTIL_SEQ_PostIdle>:
+ 8013bce:	4770      	bx	lr
+
+08013bd0 <SEQ_BitPosition>:
+ 8013bd0:	0c03      	lsrs	r3, r0, #16
+ 8013bd2:	041b      	lsls	r3, r3, #16
+ 8013bd4:	b9c3      	cbnz	r3, 8013c08 <SEQ_BitPosition+0x38>
+ 8013bd6:	0400      	lsls	r0, r0, #16
+ 8013bd8:	2310      	movs	r3, #16
+ 8013bda:	f010 4f7f 	tst.w	r0, #4278190080	; 0xff000000
+ 8013bde:	bf02      	ittt	eq
+ 8013be0:	3308      	addeq	r3, #8
+ 8013be2:	0200      	lsleq	r0, r0, #8
+ 8013be4:	b2db      	uxtbeq	r3, r3
+ 8013be6:	f010 4f70 	tst.w	r0, #4026531840	; 0xf0000000
+ 8013bea:	bf08      	it	eq
+ 8013bec:	0100      	lsleq	r0, r0, #4
+ 8013bee:	ea4f 7010 	mov.w	r0, r0, lsr #28
+ 8013bf2:	4a06      	ldr	r2, [pc, #24]	; (8013c0c <SEQ_BitPosition+0x3c>)
+ 8013bf4:	bf08      	it	eq
+ 8013bf6:	3304      	addeq	r3, #4
+ 8013bf8:	5c12      	ldrb	r2, [r2, r0]
+ 8013bfa:	bf08      	it	eq
+ 8013bfc:	b2db      	uxtbeq	r3, r3
+ 8013bfe:	f1c3 031f 	rsb	r3, r3, #31
+ 8013c02:	1a98      	subs	r0, r3, r2
+ 8013c04:	b2c0      	uxtb	r0, r0
+ 8013c06:	4770      	bx	lr
+ 8013c08:	2300      	movs	r3, #0
+ 8013c0a:	e7e6      	b.n	8013bda <SEQ_BitPosition+0xa>
+ 8013c0c:	08015aec 	.word	0x08015aec
+
+08013c10 <UTIL_SEQ_Run>:
+ 8013c10:	e92d 4ff8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 8013c14:	4d38      	ldr	r5, [pc, #224]	; (8013cf8 <UTIL_SEQ_Run+0xe8>)
+ 8013c16:	4e39      	ldr	r6, [pc, #228]	; (8013cfc <UTIL_SEQ_Run+0xec>)
+ 8013c18:	f8d5 8000 	ldr.w	r8, [r5]
+ 8013c1c:	f8df b0e0 	ldr.w	fp, [pc, #224]	; 8013d00 <UTIL_SEQ_Run+0xf0>
+ 8013c20:	f8df a0e0 	ldr.w	sl, [pc, #224]	; 8013d04 <UTIL_SEQ_Run+0xf4>
+ 8013c24:	f8df 90e0 	ldr.w	r9, [pc, #224]	; 8013d08 <UTIL_SEQ_Run+0xf8>
+ 8013c28:	f8d6 c000 	ldr.w	ip, [r6]
+ 8013c2c:	4f37      	ldr	r7, [pc, #220]	; (8013d0c <UTIL_SEQ_Run+0xfc>)
+ 8013c2e:	f8db 1000 	ldr.w	r1, [fp]
+ 8013c32:	4c37      	ldr	r4, [pc, #220]	; (8013d10 <UTIL_SEQ_Run+0x100>)
+ 8013c34:	f8da 2000 	ldr.w	r2, [sl]
+ 8013c38:	f8d9 3000 	ldr.w	r3, [r9]
+ 8013c3c:	ea08 0000 	and.w	r0, r8, r0
+ 8013c40:	6028      	str	r0, [r5, #0]
+ 8013c42:	6828      	ldr	r0, [r5, #0]
+ 8013c44:	ea00 0e02 	and.w	lr, r0, r2
+ 8013c48:	ea1e 0f0c 	tst.w	lr, ip
+ 8013c4c:	d001      	beq.n	8013c52 <UTIL_SEQ_Run+0x42>
+ 8013c4e:	4219      	tst	r1, r3
+ 8013c50:	d01e      	beq.n	8013c90 <UTIL_SEQ_Run+0x80>
+ 8013c52:	f04f 33ff 	mov.w	r3, #4294967295
+ 8013c56:	603b      	str	r3, [r7, #0]
+ 8013c58:	f7ff ffb8 	bl	8013bcc <UTIL_SEQ_PreIdle>
+ 8013c5c:	f3ef 8410 	mrs	r4, PRIMASK
+ 8013c60:	b672      	cpsid	i
+ 8013c62:	6833      	ldr	r3, [r6, #0]
+ 8013c64:	f8db 2000 	ldr.w	r2, [fp]
+ 8013c68:	f8da 1000 	ldr.w	r1, [sl]
+ 8013c6c:	400b      	ands	r3, r1
+ 8013c6e:	6829      	ldr	r1, [r5, #0]
+ 8013c70:	420b      	tst	r3, r1
+ 8013c72:	d105      	bne.n	8013c80 <UTIL_SEQ_Run+0x70>
+ 8013c74:	f8d9 3000 	ldr.w	r3, [r9]
+ 8013c78:	4213      	tst	r3, r2
+ 8013c7a:	d101      	bne.n	8013c80 <UTIL_SEQ_Run+0x70>
+ 8013c7c:	f7ee ff0c 	bl	8002a98 <UTIL_SEQ_Idle>
+ 8013c80:	f384 8810 	msr	PRIMASK, r4
+ 8013c84:	f7ff ffa3 	bl	8013bce <UTIL_SEQ_PostIdle>
+ 8013c88:	f8c5 8000 	str.w	r8, [r5]
+ 8013c8c:	e8bd 8ff8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 8013c90:	6823      	ldr	r3, [r4, #0]
+ 8013c92:	6823      	ldr	r3, [r4, #0]
+ 8013c94:	4003      	ands	r3, r0
+ 8013c96:	4013      	ands	r3, r2
+ 8013c98:	6862      	ldr	r2, [r4, #4]
+ 8013c9a:	421a      	tst	r2, r3
+ 8013c9c:	bf04      	itt	eq
+ 8013c9e:	f04f 32ff 	moveq.w	r2, #4294967295
+ 8013ca2:	6062      	streq	r2, [r4, #4]
+ 8013ca4:	6860      	ldr	r0, [r4, #4]
+ 8013ca6:	4018      	ands	r0, r3
+ 8013ca8:	f7ff ff92 	bl	8013bd0 <SEQ_BitPosition>
+ 8013cac:	6862      	ldr	r2, [r4, #4]
+ 8013cae:	6038      	str	r0, [r7, #0]
+ 8013cb0:	2301      	movs	r3, #1
+ 8013cb2:	fa03 f000 	lsl.w	r0, r3, r0
+ 8013cb6:	ea22 0200 	bic.w	r2, r2, r0
+ 8013cba:	6062      	str	r2, [r4, #4]
+ 8013cbc:	f3ef 8110 	mrs	r1, PRIMASK
+ 8013cc0:	b672      	cpsid	i
+ 8013cc2:	683a      	ldr	r2, [r7, #0]
+ 8013cc4:	4093      	lsls	r3, r2
+ 8013cc6:	6832      	ldr	r2, [r6, #0]
+ 8013cc8:	ea22 0203 	bic.w	r2, r2, r3
+ 8013ccc:	6032      	str	r2, [r6, #0]
+ 8013cce:	6822      	ldr	r2, [r4, #0]
+ 8013cd0:	ea22 0303 	bic.w	r3, r2, r3
+ 8013cd4:	6023      	str	r3, [r4, #0]
+ 8013cd6:	f381 8810 	msr	PRIMASK, r1
+ 8013cda:	4a0e      	ldr	r2, [pc, #56]	; (8013d14 <UTIL_SEQ_Run+0x104>)
+ 8013cdc:	683b      	ldr	r3, [r7, #0]
+ 8013cde:	f852 3023 	ldr.w	r3, [r2, r3, lsl #2]
+ 8013ce2:	4798      	blx	r3
+ 8013ce4:	f8d6 c000 	ldr.w	ip, [r6]
+ 8013ce8:	f8db 1000 	ldr.w	r1, [fp]
+ 8013cec:	f8da 2000 	ldr.w	r2, [sl]
+ 8013cf0:	f8d9 3000 	ldr.w	r3, [r9]
+ 8013cf4:	e7a5      	b.n	8013c42 <UTIL_SEQ_Run+0x32>
+ 8013cf6:	bf00      	nop
+ 8013cf8:	200008c4 	.word	0x200008c4
+ 8013cfc:	20002e34 	.word	0x20002e34
+ 8013d00:	20002dec 	.word	0x20002dec
+ 8013d04:	200008c8 	.word	0x200008c8
+ 8013d08:	20002df0 	.word	0x20002df0
+ 8013d0c:	20002de8 	.word	0x20002de8
+ 8013d10:	20002e2c 	.word	0x20002e2c
+ 8013d14:	20002df4 	.word	0x20002df4
+
+08013d18 <UTIL_SEQ_RegTask>:
+ 8013d18:	b510      	push	{r4, lr}
+ 8013d1a:	4611      	mov	r1, r2
+ 8013d1c:	f3ef 8410 	mrs	r4, PRIMASK
+ 8013d20:	b672      	cpsid	i
+ 8013d22:	f7ff ff55 	bl	8013bd0 <SEQ_BitPosition>
+ 8013d26:	4b03      	ldr	r3, [pc, #12]	; (8013d34 <UTIL_SEQ_RegTask+0x1c>)
+ 8013d28:	f843 1020 	str.w	r1, [r3, r0, lsl #2]
+ 8013d2c:	f384 8810 	msr	PRIMASK, r4
+ 8013d30:	bd10      	pop	{r4, pc}
+ 8013d32:	bf00      	nop
+ 8013d34:	20002df4 	.word	0x20002df4
+
+08013d38 <SysTimeAdd>:
+ 8013d38:	b082      	sub	sp, #8
+ 8013d3a:	b082      	sub	sp, #8
+ 8013d3c:	f10d 0c08 	add.w	ip, sp, #8
+ 8013d40:	e90c 0006 	stmdb	ip, {r1, r2}
+ 8013d44:	f8bd 2004 	ldrh.w	r2, [sp, #4]
+ 8013d48:	9303      	str	r3, [sp, #12]
+ 8013d4a:	440b      	add	r3, r1
+ 8013d4c:	f8bd 1010 	ldrh.w	r1, [sp, #16]
+ 8013d50:	440a      	add	r2, r1
+ 8013d52:	b291      	uxth	r1, r2
+ 8013d54:	b212      	sxth	r2, r2
+ 8013d56:	f5b2 7f7a 	cmp.w	r2, #1000	; 0x3e8
+ 8013d5a:	bfa2      	ittt	ge
+ 8013d5c:	f5a1 727a 	subge.w	r2, r1, #1000	; 0x3e8
+ 8013d60:	3301      	addge	r3, #1
+ 8013d62:	b212      	sxthge	r2, r2
+ 8013d64:	6003      	str	r3, [r0, #0]
+ 8013d66:	8082      	strh	r2, [r0, #4]
+ 8013d68:	b002      	add	sp, #8
+ 8013d6a:	b002      	add	sp, #8
+ 8013d6c:	4770      	bx	lr
+
+08013d6e <SysTimeSub>:
+ 8013d6e:	b082      	sub	sp, #8
+ 8013d70:	b082      	sub	sp, #8
+ 8013d72:	f10d 0c08 	add.w	ip, sp, #8
+ 8013d76:	e90c 0006 	stmdb	ip, {r1, r2}
+ 8013d7a:	f8bd 2004 	ldrh.w	r2, [sp, #4]
+ 8013d7e:	9303      	str	r3, [sp, #12]
+ 8013d80:	1acb      	subs	r3, r1, r3
+ 8013d82:	f8bd 1010 	ldrh.w	r1, [sp, #16]
+ 8013d86:	1a52      	subs	r2, r2, r1
+ 8013d88:	b291      	uxth	r1, r2
+ 8013d8a:	b212      	sxth	r2, r2
+ 8013d8c:	2a00      	cmp	r2, #0
+ 8013d8e:	bfbe      	ittt	lt
+ 8013d90:	f501 727a 	addlt.w	r2, r1, #1000	; 0x3e8
+ 8013d94:	f103 33ff 	addlt.w	r3, r3, #4294967295
+ 8013d98:	b212      	sxthlt	r2, r2
+ 8013d9a:	6003      	str	r3, [r0, #0]
+ 8013d9c:	8082      	strh	r2, [r0, #4]
+ 8013d9e:	b002      	add	sp, #8
+ 8013da0:	b002      	add	sp, #8
+ 8013da2:	4770      	bx	lr
+
+08013da4 <SysTimeSet>:
+ 8013da4:	b530      	push	{r4, r5, lr}
+ 8013da6:	b085      	sub	sp, #20
+ 8013da8:	4d11      	ldr	r5, [pc, #68]	; (8013df0 <SysTimeSet+0x4c>)
+ 8013daa:	466b      	mov	r3, sp
+ 8013dac:	e883 0003 	stmia.w	r3, {r0, r1}
+ 8013db0:	2300      	movs	r3, #0
+ 8013db2:	9302      	str	r3, [sp, #8]
+ 8013db4:	f8ad 300c 	strh.w	r3, [sp, #12]
+ 8013db8:	a803      	add	r0, sp, #12
+ 8013dba:	692b      	ldr	r3, [r5, #16]
+ 8013dbc:	4798      	blx	r3
+ 8013dbe:	9b00      	ldr	r3, [sp, #0]
+ 8013dc0:	f8bd 4004 	ldrh.w	r4, [sp, #4]
+ 8013dc4:	9002      	str	r0, [sp, #8]
+ 8013dc6:	1a18      	subs	r0, r3, r0
+ 8013dc8:	f8bd 300c 	ldrh.w	r3, [sp, #12]
+ 8013dcc:	1ae4      	subs	r4, r4, r3
+ 8013dce:	b2a3      	uxth	r3, r4
+ 8013dd0:	b224      	sxth	r4, r4
+ 8013dd2:	2c00      	cmp	r4, #0
+ 8013dd4:	bfbe      	ittt	lt
+ 8013dd6:	f503 737a 	addlt.w	r3, r3, #1000	; 0x3e8
+ 8013dda:	b21c      	sxthlt	r4, r3
+ 8013ddc:	f100 30ff 	addlt.w	r0, r0, #4294967295
+ 8013de0:	682b      	ldr	r3, [r5, #0]
+ 8013de2:	4798      	blx	r3
+ 8013de4:	68ab      	ldr	r3, [r5, #8]
+ 8013de6:	4620      	mov	r0, r4
+ 8013de8:	4798      	blx	r3
+ 8013dea:	b005      	add	sp, #20
+ 8013dec:	bd30      	pop	{r4, r5, pc}
+ 8013dee:	bf00      	nop
+ 8013df0:	08014674 	.word	0x08014674
+
+08013df4 <SysTimeGet>:
+ 8013df4:	b573      	push	{r0, r1, r4, r5, r6, lr}
+ 8013df6:	4e11      	ldr	r6, [pc, #68]	; (8013e3c <SysTimeGet+0x48>)
+ 8013df8:	2300      	movs	r3, #0
+ 8013dfa:	4605      	mov	r5, r0
+ 8013dfc:	9300      	str	r3, [sp, #0]
+ 8013dfe:	f8ad 3004 	strh.w	r3, [sp, #4]
+ 8013e02:	a801      	add	r0, sp, #4
+ 8013e04:	6933      	ldr	r3, [r6, #16]
+ 8013e06:	4798      	blx	r3
+ 8013e08:	68f3      	ldr	r3, [r6, #12]
+ 8013e0a:	9000      	str	r0, [sp, #0]
+ 8013e0c:	4798      	blx	r3
+ 8013e0e:	6873      	ldr	r3, [r6, #4]
+ 8013e10:	4604      	mov	r4, r0
+ 8013e12:	4798      	blx	r3
+ 8013e14:	9b00      	ldr	r3, [sp, #0]
+ 8013e16:	4418      	add	r0, r3
+ 8013e18:	f8bd 3004 	ldrh.w	r3, [sp, #4]
+ 8013e1c:	4423      	add	r3, r4
+ 8013e1e:	b29a      	uxth	r2, r3
+ 8013e20:	b21b      	sxth	r3, r3
+ 8013e22:	f5b3 7f7a 	cmp.w	r3, #1000	; 0x3e8
+ 8013e26:	bfa2      	ittt	ge
+ 8013e28:	3001      	addge	r0, #1
+ 8013e2a:	f5a2 737a 	subge.w	r3, r2, #1000	; 0x3e8
+ 8013e2e:	b21b      	sxthge	r3, r3
+ 8013e30:	6028      	str	r0, [r5, #0]
+ 8013e32:	4628      	mov	r0, r5
+ 8013e34:	80ab      	strh	r3, [r5, #4]
+ 8013e36:	b002      	add	sp, #8
+ 8013e38:	bd70      	pop	{r4, r5, r6, pc}
+ 8013e3a:	bf00      	nop
+ 8013e3c:	08014674 	.word	0x08014674
+
+08013e40 <SysTimeGetMcuTime>:
+ 8013e40:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 8013e42:	2300      	movs	r3, #0
+ 8013e44:	9300      	str	r3, [sp, #0]
+ 8013e46:	f8ad 3004 	strh.w	r3, [sp, #4]
+ 8013e4a:	4b07      	ldr	r3, [pc, #28]	; (8013e68 <SysTimeGetMcuTime+0x28>)
+ 8013e4c:	4604      	mov	r4, r0
+ 8013e4e:	691b      	ldr	r3, [r3, #16]
+ 8013e50:	a801      	add	r0, sp, #4
+ 8013e52:	4798      	blx	r3
+ 8013e54:	466d      	mov	r5, sp
+ 8013e56:	9000      	str	r0, [sp, #0]
+ 8013e58:	e895 0003 	ldmia.w	r5, {r0, r1}
+ 8013e5c:	e884 0003 	stmia.w	r4, {r0, r1}
+ 8013e60:	4620      	mov	r0, r4
+ 8013e62:	b003      	add	sp, #12
+ 8013e64:	bd30      	pop	{r4, r5, pc}
+ 8013e66:	bf00      	nop
+ 8013e68:	08014674 	.word	0x08014674
+
+08013e6c <SysTimeToMs>:
+ 8013e6c:	b537      	push	{r0, r1, r2, r4, r5, lr}
+ 8013e6e:	4d0f      	ldr	r5, [pc, #60]	; (8013eac <SysTimeToMs+0x40>)
+ 8013e70:	ab02      	add	r3, sp, #8
+ 8013e72:	e903 0003 	stmdb	r3, {r0, r1}
+ 8013e76:	68eb      	ldr	r3, [r5, #12]
+ 8013e78:	4798      	blx	r3
+ 8013e7a:	686b      	ldr	r3, [r5, #4]
+ 8013e7c:	4604      	mov	r4, r0
+ 8013e7e:	4798      	blx	r3
+ 8013e80:	f8bd 3004 	ldrh.w	r3, [sp, #4]
+ 8013e84:	9a00      	ldr	r2, [sp, #0]
+ 8013e86:	1b1b      	subs	r3, r3, r4
+ 8013e88:	b299      	uxth	r1, r3
+ 8013e8a:	b21b      	sxth	r3, r3
+ 8013e8c:	2b00      	cmp	r3, #0
+ 8013e8e:	eba2 0200 	sub.w	r2, r2, r0
+ 8013e92:	bfbe      	ittt	lt
+ 8013e94:	f501 717a 	addlt.w	r1, r1, #1000	; 0x3e8
+ 8013e98:	f102 32ff 	addlt.w	r2, r2, #4294967295
+ 8013e9c:	b20b      	sxthlt	r3, r1
+ 8013e9e:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
+ 8013ea2:	fb00 3002 	mla	r0, r0, r2, r3
+ 8013ea6:	b003      	add	sp, #12
+ 8013ea8:	bd30      	pop	{r4, r5, pc}
+ 8013eaa:	bf00      	nop
+ 8013eac:	08014674 	.word	0x08014674
+
+08013eb0 <SysTimeFromMs>:
+ 8013eb0:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8013eb4:	f44f 757a 	mov.w	r5, #1000	; 0x3e8
+ 8013eb8:	fbb1 f5f5 	udiv	r5, r1, r5
+ 8013ebc:	ebc5 1345 	rsb	r3, r5, r5, lsl #5
+ 8013ec0:	f8df 803c 	ldr.w	r8, [pc, #60]	; 8013f00 <SysTimeFromMs+0x50>
+ 8013ec4:	eb05 0383 	add.w	r3, r5, r3, lsl #2
+ 8013ec8:	eba1 03c3 	sub.w	r3, r1, r3, lsl #3
+ 8013ecc:	b29c      	uxth	r4, r3
+ 8013ece:	f8d8 300c 	ldr.w	r3, [r8, #12]
+ 8013ed2:	4606      	mov	r6, r0
+ 8013ed4:	4798      	blx	r3
+ 8013ed6:	f8d8 3004 	ldr.w	r3, [r8, #4]
+ 8013eda:	4607      	mov	r7, r0
+ 8013edc:	4798      	blx	r3
+ 8013ede:	19e3      	adds	r3, r4, r7
+ 8013ee0:	b299      	uxth	r1, r3
+ 8013ee2:	b21b      	sxth	r3, r3
+ 8013ee4:	f5b3 7f7a 	cmp.w	r3, #1000	; 0x3e8
+ 8013ee8:	4428      	add	r0, r5
+ 8013eea:	bfa2      	ittt	ge
+ 8013eec:	f5a1 737a 	subge.w	r3, r1, #1000	; 0x3e8
+ 8013ef0:	3001      	addge	r0, #1
+ 8013ef2:	b21b      	sxthge	r3, r3
+ 8013ef4:	6030      	str	r0, [r6, #0]
+ 8013ef6:	80b3      	strh	r3, [r6, #4]
+ 8013ef8:	4630      	mov	r0, r6
+ 8013efa:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 8013efe:	bf00      	nop
+ 8013f00:	08014674 	.word	0x08014674
+
+08013f04 <UTIL_TIMER_Init>:
+ 8013f04:	4b02      	ldr	r3, [pc, #8]	; (8013f10 <UTIL_TIMER_Init+0xc>)
+ 8013f06:	2200      	movs	r2, #0
+ 8013f08:	601a      	str	r2, [r3, #0]
+ 8013f0a:	4b02      	ldr	r3, [pc, #8]	; (8013f14 <UTIL_TIMER_Init+0x10>)
+ 8013f0c:	681b      	ldr	r3, [r3, #0]
+ 8013f0e:	4718      	bx	r3
+ 8013f10:	20002e38 	.word	0x20002e38
+ 8013f14:	08014688 	.word	0x08014688
+
+08013f18 <UTIL_TIMER_Create>:
+ 8013f18:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 8013f1a:	4604      	mov	r4, r0
+ 8013f1c:	4617      	mov	r7, r2
+ 8013f1e:	4608      	mov	r0, r1
+ 8013f20:	461e      	mov	r6, r3
+ 8013f22:	b17c      	cbz	r4, 8013f44 <UTIL_TIMER_Create+0x2c>
+ 8013f24:	b173      	cbz	r3, 8013f44 <UTIL_TIMER_Create+0x2c>
+ 8013f26:	4b08      	ldr	r3, [pc, #32]	; (8013f48 <UTIL_TIMER_Create+0x30>)
+ 8013f28:	2500      	movs	r5, #0
+ 8013f2a:	6a5b      	ldr	r3, [r3, #36]	; 0x24
+ 8013f2c:	6025      	str	r5, [r4, #0]
+ 8013f2e:	4798      	blx	r3
+ 8013f30:	9b06      	ldr	r3, [sp, #24]
+ 8013f32:	6060      	str	r0, [r4, #4]
+ 8013f34:	8125      	strh	r5, [r4, #8]
+ 8013f36:	72a5      	strb	r5, [r4, #10]
+ 8013f38:	60e6      	str	r6, [r4, #12]
+ 8013f3a:	6123      	str	r3, [r4, #16]
+ 8013f3c:	72e7      	strb	r7, [r4, #11]
+ 8013f3e:	6165      	str	r5, [r4, #20]
+ 8013f40:	4628      	mov	r0, r5
+ 8013f42:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
+ 8013f44:	2001      	movs	r0, #1
+ 8013f46:	e7fc      	b.n	8013f42 <UTIL_TIMER_Create+0x2a>
+ 8013f48:	08014688 	.word	0x08014688
+
+08013f4c <UTIL_TIMER_GetCurrentTime>:
+ 8013f4c:	b510      	push	{r4, lr}
+ 8013f4e:	4c03      	ldr	r4, [pc, #12]	; (8013f5c <UTIL_TIMER_GetCurrentTime+0x10>)
+ 8013f50:	69e3      	ldr	r3, [r4, #28]
+ 8013f52:	4798      	blx	r3
+ 8013f54:	6aa3      	ldr	r3, [r4, #40]	; 0x28
+ 8013f56:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8013f5a:	4718      	bx	r3
+ 8013f5c:	08014688 	.word	0x08014688
+
+08013f60 <UTIL_TIMER_GetElapsedTime>:
+ 8013f60:	b570      	push	{r4, r5, r6, lr}
+ 8013f62:	4d06      	ldr	r5, [pc, #24]	; (8013f7c <UTIL_TIMER_GetElapsedTime+0x1c>)
+ 8013f64:	69eb      	ldr	r3, [r5, #28]
+ 8013f66:	4606      	mov	r6, r0
+ 8013f68:	4798      	blx	r3
+ 8013f6a:	6a6b      	ldr	r3, [r5, #36]	; 0x24
+ 8013f6c:	4604      	mov	r4, r0
+ 8013f6e:	4630      	mov	r0, r6
+ 8013f70:	4798      	blx	r3
+ 8013f72:	6aab      	ldr	r3, [r5, #40]	; 0x28
+ 8013f74:	1a20      	subs	r0, r4, r0
+ 8013f76:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
+ 8013f7a:	4718      	bx	r3
+ 8013f7c:	08014688 	.word	0x08014688
+
+08013f80 <TimerExists>:
+ 8013f80:	4b05      	ldr	r3, [pc, #20]	; (8013f98 <TimerExists+0x18>)
+ 8013f82:	681b      	ldr	r3, [r3, #0]
+ 8013f84:	b90b      	cbnz	r3, 8013f8a <TimerExists+0xa>
+ 8013f86:	4618      	mov	r0, r3
+ 8013f88:	4770      	bx	lr
+ 8013f8a:	4283      	cmp	r3, r0
+ 8013f8c:	d001      	beq.n	8013f92 <TimerExists+0x12>
+ 8013f8e:	695b      	ldr	r3, [r3, #20]
+ 8013f90:	e7f8      	b.n	8013f84 <TimerExists+0x4>
+ 8013f92:	2001      	movs	r0, #1
+ 8013f94:	4770      	bx	lr
+ 8013f96:	bf00      	nop
+ 8013f98:	20002e38 	.word	0x20002e38
+
+08013f9c <TimerSetTimeout>:
+ 8013f9c:	e92d 41f3 	stmdb	sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
+ 8013fa0:	4e0b      	ldr	r6, [pc, #44]	; (8013fd0 <TimerSetTimeout+0x34>)
+ 8013fa2:	6a33      	ldr	r3, [r6, #32]
+ 8013fa4:	4604      	mov	r4, r0
+ 8013fa6:	4798      	blx	r3
+ 8013fa8:	2301      	movs	r3, #1
+ 8013faa:	69b7      	ldr	r7, [r6, #24]
+ 8013fac:	7223      	strb	r3, [r4, #8]
+ 8013fae:	f8d4 8000 	ldr.w	r8, [r4]
+ 8013fb2:	4605      	mov	r5, r0
+ 8013fb4:	47b8      	blx	r7
+ 8013fb6:	4428      	add	r0, r5
+ 8013fb8:	4580      	cmp	r8, r0
+ 8013fba:	d202      	bcs.n	8013fc2 <TimerSetTimeout+0x26>
+ 8013fbc:	47b8      	blx	r7
+ 8013fbe:	4428      	add	r0, r5
+ 8013fc0:	6020      	str	r0, [r4, #0]
+ 8013fc2:	68b3      	ldr	r3, [r6, #8]
+ 8013fc4:	6820      	ldr	r0, [r4, #0]
+ 8013fc6:	9301      	str	r3, [sp, #4]
+ 8013fc8:	b002      	add	sp, #8
+ 8013fca:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
+ 8013fce:	4718      	bx	r3
+ 8013fd0:	08014688 	.word	0x08014688
+
+08013fd4 <UTIL_TIMER_Stop>:
+ 8013fd4:	b570      	push	{r4, r5, r6, lr}
+ 8013fd6:	b320      	cbz	r0, 8014022 <UTIL_TIMER_Stop+0x4e>
+ 8013fd8:	f3ef 8610 	mrs	r6, PRIMASK
+ 8013fdc:	b672      	cpsid	i
+ 8013fde:	4d12      	ldr	r5, [pc, #72]	; (8014028 <UTIL_TIMER_Stop+0x54>)
+ 8013fe0:	682b      	ldr	r3, [r5, #0]
+ 8013fe2:	2201      	movs	r2, #1
+ 8013fe4:	7282      	strb	r2, [r0, #10]
+ 8013fe6:	b153      	cbz	r3, 8013ffe <UTIL_TIMER_Stop+0x2a>
+ 8013fe8:	2200      	movs	r2, #0
+ 8013fea:	7242      	strb	r2, [r0, #9]
+ 8013fec:	4298      	cmp	r0, r3
+ 8013fee:	695c      	ldr	r4, [r3, #20]
+ 8013ff0:	d10e      	bne.n	8014010 <UTIL_TIMER_Stop+0x3c>
+ 8013ff2:	7202      	strb	r2, [r0, #8]
+ 8013ff4:	b13c      	cbz	r4, 8014006 <UTIL_TIMER_Stop+0x32>
+ 8013ff6:	4620      	mov	r0, r4
+ 8013ff8:	602c      	str	r4, [r5, #0]
+ 8013ffa:	f7ff ffcf 	bl	8013f9c <TimerSetTimeout>
+ 8013ffe:	f386 8810 	msr	PRIMASK, r6
+ 8014002:	2000      	movs	r0, #0
+ 8014004:	bd70      	pop	{r4, r5, r6, pc}
+ 8014006:	4b09      	ldr	r3, [pc, #36]	; (801402c <UTIL_TIMER_Stop+0x58>)
+ 8014008:	68db      	ldr	r3, [r3, #12]
+ 801400a:	4798      	blx	r3
+ 801400c:	602c      	str	r4, [r5, #0]
+ 801400e:	e7f6      	b.n	8013ffe <UTIL_TIMER_Stop+0x2a>
+ 8014010:	461a      	mov	r2, r3
+ 8014012:	695b      	ldr	r3, [r3, #20]
+ 8014014:	2b00      	cmp	r3, #0
+ 8014016:	d0f2      	beq.n	8013ffe <UTIL_TIMER_Stop+0x2a>
+ 8014018:	4298      	cmp	r0, r3
+ 801401a:	d1f9      	bne.n	8014010 <UTIL_TIMER_Stop+0x3c>
+ 801401c:	6943      	ldr	r3, [r0, #20]
+ 801401e:	6153      	str	r3, [r2, #20]
+ 8014020:	e7ed      	b.n	8013ffe <UTIL_TIMER_Stop+0x2a>
+ 8014022:	2001      	movs	r0, #1
+ 8014024:	e7ee      	b.n	8014004 <UTIL_TIMER_Stop+0x30>
+ 8014026:	bf00      	nop
+ 8014028:	20002e38 	.word	0x20002e38
+ 801402c:	08014688 	.word	0x08014688
+
+08014030 <TimerInsertTimer>:
+ 8014030:	4b08      	ldr	r3, [pc, #32]	; (8014054 <TimerInsertTimer+0x24>)
+ 8014032:	b510      	push	{r4, lr}
+ 8014034:	681a      	ldr	r2, [r3, #0]
+ 8014036:	6953      	ldr	r3, [r2, #20]
+ 8014038:	6951      	ldr	r1, [r2, #20]
+ 801403a:	b911      	cbnz	r1, 8014042 <TimerInsertTimer+0x12>
+ 801403c:	6150      	str	r0, [r2, #20]
+ 801403e:	6141      	str	r1, [r0, #20]
+ 8014040:	bd10      	pop	{r4, pc}
+ 8014042:	6804      	ldr	r4, [r0, #0]
+ 8014044:	6819      	ldr	r1, [r3, #0]
+ 8014046:	428c      	cmp	r4, r1
+ 8014048:	d902      	bls.n	8014050 <TimerInsertTimer+0x20>
+ 801404a:	461a      	mov	r2, r3
+ 801404c:	695b      	ldr	r3, [r3, #20]
+ 801404e:	e7f3      	b.n	8014038 <TimerInsertTimer+0x8>
+ 8014050:	4619      	mov	r1, r3
+ 8014052:	e7f3      	b.n	801403c <TimerInsertTimer+0xc>
+ 8014054:	20002e38 	.word	0x20002e38
+
+08014058 <TimerInsertNewHeadTimer>:
+ 8014058:	4a04      	ldr	r2, [pc, #16]	; (801406c <TimerInsertNewHeadTimer+0x14>)
+ 801405a:	6813      	ldr	r3, [r2, #0]
+ 801405c:	b10b      	cbz	r3, 8014062 <TimerInsertNewHeadTimer+0xa>
+ 801405e:	2100      	movs	r1, #0
+ 8014060:	7219      	strb	r1, [r3, #8]
+ 8014062:	6143      	str	r3, [r0, #20]
+ 8014064:	6010      	str	r0, [r2, #0]
+ 8014066:	f7ff bf99 	b.w	8013f9c <TimerSetTimeout>
+ 801406a:	bf00      	nop
+ 801406c:	20002e38 	.word	0x20002e38
+
+08014070 <UTIL_TIMER_Start>:
+ 8014070:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8014074:	4604      	mov	r4, r0
+ 8014076:	2800      	cmp	r0, #0
+ 8014078:	d02d      	beq.n	80140d6 <UTIL_TIMER_Start+0x66>
+ 801407a:	f7ff ff81 	bl	8013f80 <TimerExists>
+ 801407e:	bb50      	cbnz	r0, 80140d6 <UTIL_TIMER_Start+0x66>
+ 8014080:	7a65      	ldrb	r5, [r4, #9]
+ 8014082:	bb45      	cbnz	r5, 80140d6 <UTIL_TIMER_Start+0x66>
+ 8014084:	f3ef 8810 	mrs	r8, PRIMASK
+ 8014088:	b672      	cpsid	i
+ 801408a:	4e14      	ldr	r6, [pc, #80]	; (80140dc <UTIL_TIMER_Start+0x6c>)
+ 801408c:	6867      	ldr	r7, [r4, #4]
+ 801408e:	6a33      	ldr	r3, [r6, #32]
+ 8014090:	4798      	blx	r3
+ 8014092:	4287      	cmp	r7, r0
+ 8014094:	bf2c      	ite	cs
+ 8014096:	6027      	strcs	r7, [r4, #0]
+ 8014098:	6020      	strcc	r0, [r4, #0]
+ 801409a:	4f11      	ldr	r7, [pc, #68]	; (80140e0 <UTIL_TIMER_Start+0x70>)
+ 801409c:	72a5      	strb	r5, [r4, #10]
+ 801409e:	f44f 7380 	mov.w	r3, #256	; 0x100
+ 80140a2:	8123      	strh	r3, [r4, #8]
+ 80140a4:	683b      	ldr	r3, [r7, #0]
+ 80140a6:	b94b      	cbnz	r3, 80140bc <UTIL_TIMER_Start+0x4c>
+ 80140a8:	6933      	ldr	r3, [r6, #16]
+ 80140aa:	4798      	blx	r3
+ 80140ac:	4620      	mov	r0, r4
+ 80140ae:	f7ff ffd3 	bl	8014058 <TimerInsertNewHeadTimer>
+ 80140b2:	f388 8810 	msr	PRIMASK, r8
+ 80140b6:	4628      	mov	r0, r5
+ 80140b8:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 80140bc:	69b3      	ldr	r3, [r6, #24]
+ 80140be:	4798      	blx	r3
+ 80140c0:	6823      	ldr	r3, [r4, #0]
+ 80140c2:	4418      	add	r0, r3
+ 80140c4:	683b      	ldr	r3, [r7, #0]
+ 80140c6:	6020      	str	r0, [r4, #0]
+ 80140c8:	681b      	ldr	r3, [r3, #0]
+ 80140ca:	4298      	cmp	r0, r3
+ 80140cc:	4620      	mov	r0, r4
+ 80140ce:	d3ee      	bcc.n	80140ae <UTIL_TIMER_Start+0x3e>
+ 80140d0:	f7ff ffae 	bl	8014030 <TimerInsertTimer>
+ 80140d4:	e7ed      	b.n	80140b2 <UTIL_TIMER_Start+0x42>
+ 80140d6:	2501      	movs	r5, #1
+ 80140d8:	e7ed      	b.n	80140b6 <UTIL_TIMER_Start+0x46>
+ 80140da:	bf00      	nop
+ 80140dc:	08014688 	.word	0x08014688
+ 80140e0:	20002e38 	.word	0x20002e38
+
+080140e4 <UTIL_TIMER_SetPeriod>:
+ 80140e4:	b510      	push	{r4, lr}
+ 80140e6:	4604      	mov	r4, r0
+ 80140e8:	4608      	mov	r0, r1
+ 80140ea:	b17c      	cbz	r4, 801410c <UTIL_TIMER_SetPeriod+0x28>
+ 80140ec:	4b08      	ldr	r3, [pc, #32]	; (8014110 <UTIL_TIMER_SetPeriod+0x2c>)
+ 80140ee:	6a5b      	ldr	r3, [r3, #36]	; 0x24
+ 80140f0:	4798      	blx	r3
+ 80140f2:	6060      	str	r0, [r4, #4]
+ 80140f4:	4620      	mov	r0, r4
+ 80140f6:	f7ff ff43 	bl	8013f80 <TimerExists>
+ 80140fa:	b140      	cbz	r0, 801410e <UTIL_TIMER_SetPeriod+0x2a>
+ 80140fc:	4620      	mov	r0, r4
+ 80140fe:	f7ff ff69 	bl	8013fd4 <UTIL_TIMER_Stop>
+ 8014102:	4620      	mov	r0, r4
+ 8014104:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
+ 8014108:	f7ff bfb2 	b.w	8014070 <UTIL_TIMER_Start>
+ 801410c:	2001      	movs	r0, #1
+ 801410e:	bd10      	pop	{r4, pc}
+ 8014110:	08014688 	.word	0x08014688
+
+08014114 <UTIL_TIMER_IRQ_Handler>:
+ 8014114:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
+ 8014118:	f3ef 8710 	mrs	r7, PRIMASK
+ 801411c:	b672      	cpsid	i
+ 801411e:	4e1d      	ldr	r6, [pc, #116]	; (8014194 <UTIL_TIMER_IRQ_Handler+0x80>)
+ 8014120:	4d1d      	ldr	r5, [pc, #116]	; (8014198 <UTIL_TIMER_IRQ_Handler+0x84>)
+ 8014122:	6973      	ldr	r3, [r6, #20]
+ 8014124:	4798      	blx	r3
+ 8014126:	6933      	ldr	r3, [r6, #16]
+ 8014128:	4604      	mov	r4, r0
+ 801412a:	4798      	blx	r3
+ 801412c:	682b      	ldr	r3, [r5, #0]
+ 801412e:	b94b      	cbnz	r3, 8014144 <UTIL_TIMER_IRQ_Handler+0x30>
+ 8014130:	f04f 0800 	mov.w	r8, #0
+ 8014134:	682b      	ldr	r3, [r5, #0]
+ 8014136:	b98b      	cbnz	r3, 801415c <UTIL_TIMER_IRQ_Handler+0x48>
+ 8014138:	6828      	ldr	r0, [r5, #0]
+ 801413a:	bb28      	cbnz	r0, 8014188 <UTIL_TIMER_IRQ_Handler+0x74>
+ 801413c:	f387 8810 	msr	PRIMASK, r7
+ 8014140:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
+ 8014144:	1b01      	subs	r1, r0, r4
+ 8014146:	1a24      	subs	r4, r4, r0
+ 8014148:	681a      	ldr	r2, [r3, #0]
+ 801414a:	428a      	cmp	r2, r1
+ 801414c:	bf8c      	ite	hi
+ 801414e:	1912      	addhi	r2, r2, r4
+ 8014150:	2200      	movls	r2, #0
+ 8014152:	601a      	str	r2, [r3, #0]
+ 8014154:	695b      	ldr	r3, [r3, #20]
+ 8014156:	2b00      	cmp	r3, #0
+ 8014158:	d1f6      	bne.n	8014148 <UTIL_TIMER_IRQ_Handler+0x34>
+ 801415a:	e7e9      	b.n	8014130 <UTIL_TIMER_IRQ_Handler+0x1c>
+ 801415c:	681c      	ldr	r4, [r3, #0]
+ 801415e:	b11c      	cbz	r4, 8014168 <UTIL_TIMER_IRQ_Handler+0x54>
+ 8014160:	69b3      	ldr	r3, [r6, #24]
+ 8014162:	4798      	blx	r3
+ 8014164:	4284      	cmp	r4, r0
+ 8014166:	d2e7      	bcs.n	8014138 <UTIL_TIMER_IRQ_Handler+0x24>
+ 8014168:	682c      	ldr	r4, [r5, #0]
+ 801416a:	6963      	ldr	r3, [r4, #20]
+ 801416c:	602b      	str	r3, [r5, #0]
+ 801416e:	f8a4 8008 	strh.w	r8, [r4, #8]
+ 8014172:	e9d4 3003 	ldrd	r3, r0, [r4, #12]
+ 8014176:	4798      	blx	r3
+ 8014178:	8963      	ldrh	r3, [r4, #10]
+ 801417a:	f5b3 7f80 	cmp.w	r3, #256	; 0x100
+ 801417e:	d1d9      	bne.n	8014134 <UTIL_TIMER_IRQ_Handler+0x20>
+ 8014180:	4620      	mov	r0, r4
+ 8014182:	f7ff ff75 	bl	8014070 <UTIL_TIMER_Start>
+ 8014186:	e7d5      	b.n	8014134 <UTIL_TIMER_IRQ_Handler+0x20>
+ 8014188:	7a03      	ldrb	r3, [r0, #8]
+ 801418a:	2b00      	cmp	r3, #0
+ 801418c:	d1d6      	bne.n	801413c <UTIL_TIMER_IRQ_Handler+0x28>
+ 801418e:	f7ff ff05 	bl	8013f9c <TimerSetTimeout>
+ 8014192:	e7d3      	b.n	801413c <UTIL_TIMER_IRQ_Handler+0x28>
+ 8014194:	08014688 	.word	0x08014688
+ 8014198:	20002e38 	.word	0x20002e38
+
+0801419c <tiny_vsnprintf_like>:
+ 801419c:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ 80141a0:	b097      	sub	sp, #92	; 0x5c
+ 80141a2:	2900      	cmp	r1, #0
+ 80141a4:	4680      	mov	r8, r0
+ 80141a6:	9103      	str	r1, [sp, #12]
+ 80141a8:	f340 810e 	ble.w	80143c8 <tiny_vsnprintf_like+0x22c>
+ 80141ac:	469a      	mov	sl, r3
+ 80141ae:	4604      	mov	r4, r0
+ 80141b0:	9903      	ldr	r1, [sp, #12]
+ 80141b2:	7813      	ldrb	r3, [r2, #0]
+ 80141b4:	eba4 0008 	sub.w	r0, r4, r8
+ 80141b8:	3901      	subs	r1, #1
+ 80141ba:	b923      	cbnz	r3, 80141c6 <tiny_vsnprintf_like+0x2a>
+ 80141bc:	2300      	movs	r3, #0
+ 80141be:	7023      	strb	r3, [r4, #0]
+ 80141c0:	b017      	add	sp, #92	; 0x5c
+ 80141c2:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ 80141c6:	4288      	cmp	r0, r1
+ 80141c8:	daf8      	bge.n	80141bc <tiny_vsnprintf_like+0x20>
+ 80141ca:	2b25      	cmp	r3, #37	; 0x25
+ 80141cc:	d004      	beq.n	80141d8 <tiny_vsnprintf_like+0x3c>
+ 80141ce:	f804 3b01 	strb.w	r3, [r4], #1
+ 80141d2:	4616      	mov	r6, r2
+ 80141d4:	1c72      	adds	r2, r6, #1
+ 80141d6:	e7eb      	b.n	80141b0 <tiny_vsnprintf_like+0x14>
+ 80141d8:	f892 c001 	ldrb.w	ip, [r2, #1]
+ 80141dc:	f1ac 0330 	sub.w	r3, ip, #48	; 0x30
+ 80141e0:	f1d3 0e00 	rsbs	lr, r3, #0
+ 80141e4:	eb4e 0e03 	adc.w	lr, lr, r3
+ 80141e8:	f1ac 0330 	sub.w	r3, ip, #48	; 0x30
+ 80141ec:	2b09      	cmp	r3, #9
+ 80141ee:	f102 0601 	add.w	r6, r2, #1
+ 80141f2:	d829      	bhi.n	8014248 <tiny_vsnprintf_like+0xac>
+ 80141f4:	4632      	mov	r2, r6
+ 80141f6:	2500      	movs	r5, #0
+ 80141f8:	f04f 090a 	mov.w	r9, #10
+ 80141fc:	4616      	mov	r6, r2
+ 80141fe:	f812 3b01 	ldrb.w	r3, [r2], #1
+ 8014202:	f1a3 0030 	sub.w	r0, r3, #48	; 0x30
+ 8014206:	2809      	cmp	r0, #9
+ 8014208:	d919      	bls.n	801423e <tiny_vsnprintf_like+0xa2>
+ 801420a:	7833      	ldrb	r3, [r6, #0]
+ 801420c:	2b69      	cmp	r3, #105	; 0x69
+ 801420e:	f000 809c 	beq.w	801434a <tiny_vsnprintf_like+0x1ae>
+ 8014212:	d81c      	bhi.n	801424e <tiny_vsnprintf_like+0xb2>
+ 8014214:	2b63      	cmp	r3, #99	; 0x63
+ 8014216:	d028      	beq.n	801426a <tiny_vsnprintf_like+0xce>
+ 8014218:	2b64      	cmp	r3, #100	; 0x64
+ 801421a:	f000 8096 	beq.w	801434a <tiny_vsnprintf_like+0x1ae>
+ 801421e:	2b58      	cmp	r3, #88	; 0x58
+ 8014220:	d05b      	beq.n	80142da <tiny_vsnprintf_like+0x13e>
+ 8014222:	2b25      	cmp	r3, #37	; 0x25
+ 8014224:	d119      	bne.n	801425a <tiny_vsnprintf_like+0xbe>
+ 8014226:	7833      	ldrb	r3, [r6, #0]
+ 8014228:	2b00      	cmp	r3, #0
+ 801422a:	f000 8092 	beq.w	8014352 <tiny_vsnprintf_like+0x1b6>
+ 801422e:	f804 3b01 	strb.w	r3, [r4], #1
+ 8014232:	eba4 0308 	sub.w	r3, r4, r8
+ 8014236:	428b      	cmp	r3, r1
+ 8014238:	f280 8089 	bge.w	801434e <tiny_vsnprintf_like+0x1b2>
+ 801423c:	e7ca      	b.n	80141d4 <tiny_vsnprintf_like+0x38>
+ 801423e:	fb09 3305 	mla	r3, r9, r5, r3
+ 8014242:	f1a3 0530 	sub.w	r5, r3, #48	; 0x30
+ 8014246:	e7d9      	b.n	80141fc <tiny_vsnprintf_like+0x60>
+ 8014248:	f04f 35ff 	mov.w	r5, #4294967295
+ 801424c:	e7dd      	b.n	801420a <tiny_vsnprintf_like+0x6e>
+ 801424e:	2b75      	cmp	r3, #117	; 0x75
+ 8014250:	d07d      	beq.n	801434e <tiny_vsnprintf_like+0x1b2>
+ 8014252:	2b78      	cmp	r3, #120	; 0x78
+ 8014254:	d043      	beq.n	80142de <tiny_vsnprintf_like+0x142>
+ 8014256:	2b73      	cmp	r3, #115	; 0x73
+ 8014258:	d01e      	beq.n	8014298 <tiny_vsnprintf_like+0xfc>
+ 801425a:	2325      	movs	r3, #37	; 0x25
+ 801425c:	f804 3b01 	strb.w	r3, [r4], #1
+ 8014260:	eba4 0308 	sub.w	r3, r4, r8
+ 8014264:	428b      	cmp	r3, r1
+ 8014266:	da72      	bge.n	801434e <tiny_vsnprintf_like+0x1b2>
+ 8014268:	e7dd      	b.n	8014226 <tiny_vsnprintf_like+0x8a>
+ 801426a:	2d00      	cmp	r5, #0
+ 801426c:	f105 39ff 	add.w	r9, r5, #4294967295
+ 8014270:	bfd8      	it	le
+ 8014272:	f04f 0900 	movle.w	r9, #0
+ 8014276:	464a      	mov	r2, r9
+ 8014278:	4620      	mov	r0, r4
+ 801427a:	2120      	movs	r1, #32
+ 801427c:	f000 f8bc 	bl	80143f8 <memset>
+ 8014280:	4653      	mov	r3, sl
+ 8014282:	44a1      	add	r9, r4
+ 8014284:	2d00      	cmp	r5, #0
+ 8014286:	f853 2b04 	ldr.w	r2, [r3], #4
+ 801428a:	f889 2000 	strb.w	r2, [r9]
+ 801428e:	bfd8      	it	le
+ 8014290:	2501      	movle	r5, #1
+ 8014292:	442c      	add	r4, r5
+ 8014294:	469a      	mov	sl, r3
+ 8014296:	e79d      	b.n	80141d4 <tiny_vsnprintf_like+0x38>
+ 8014298:	4b4c      	ldr	r3, [pc, #304]	; (80143cc <tiny_vsnprintf_like+0x230>)
+ 801429a:	f85a 7b04 	ldr.w	r7, [sl], #4
+ 801429e:	2f00      	cmp	r7, #0
+ 80142a0:	bf08      	it	eq
+ 80142a2:	461f      	moveq	r7, r3
+ 80142a4:	4638      	mov	r0, r7
+ 80142a6:	f7ed f88b 	bl	80013c0 <strlen>
+ 80142aa:	eba5 0b00 	sub.w	fp, r5, r0
+ 80142ae:	4285      	cmp	r5, r0
+ 80142b0:	bfb8      	it	lt
+ 80142b2:	f04f 0b00 	movlt.w	fp, #0
+ 80142b6:	465a      	mov	r2, fp
+ 80142b8:	4681      	mov	r9, r0
+ 80142ba:	2120      	movs	r1, #32
+ 80142bc:	4620      	mov	r0, r4
+ 80142be:	f000 f89b 	bl	80143f8 <memset>
+ 80142c2:	44a3      	add	fp, r4
+ 80142c4:	2300      	movs	r3, #0
+ 80142c6:	454b      	cmp	r3, r9
+ 80142c8:	db02      	blt.n	80142d0 <tiny_vsnprintf_like+0x134>
+ 80142ca:	eb0b 0409 	add.w	r4, fp, r9
+ 80142ce:	e781      	b.n	80141d4 <tiny_vsnprintf_like+0x38>
+ 80142d0:	5cfa      	ldrb	r2, [r7, r3]
+ 80142d2:	f80b 2003 	strb.w	r2, [fp, r3]
+ 80142d6:	3301      	adds	r3, #1
+ 80142d8:	e7f5      	b.n	80142c6 <tiny_vsnprintf_like+0x12a>
+ 80142da:	f04e 0e40 	orr.w	lr, lr, #64	; 0x40
+ 80142de:	2010      	movs	r0, #16
+ 80142e0:	f8df 90ec 	ldr.w	r9, [pc, #236]	; 80143d0 <tiny_vsnprintf_like+0x234>
+ 80142e4:	4f3b      	ldr	r7, [pc, #236]	; (80143d4 <tiny_vsnprintf_like+0x238>)
+ 80142e6:	f01e 0f40 	tst.w	lr, #64	; 0x40
+ 80142ea:	bf08      	it	eq
+ 80142ec:	464f      	moveq	r7, r9
+ 80142ee:	4653      	mov	r3, sl
+ 80142f0:	f1bc 0f30 	cmp.w	ip, #48	; 0x30
+ 80142f4:	9701      	str	r7, [sp, #4]
+ 80142f6:	eba4 0208 	sub.w	r2, r4, r8
+ 80142fa:	bf0c      	ite	eq
+ 80142fc:	2730      	moveq	r7, #48	; 0x30
+ 80142fe:	2720      	movne	r7, #32
+ 8014300:	f01e 0f02 	tst.w	lr, #2
+ 8014304:	eba1 0202 	sub.w	r2, r1, r2
+ 8014308:	9702      	str	r7, [sp, #8]
+ 801430a:	f853 1b04 	ldr.w	r1, [r3], #4
+ 801430e:	d022      	beq.n	8014356 <tiny_vsnprintf_like+0x1ba>
+ 8014310:	2900      	cmp	r1, #0
+ 8014312:	da20      	bge.n	8014356 <tiny_vsnprintf_like+0x1ba>
+ 8014314:	4249      	negs	r1, r1
+ 8014316:	3d01      	subs	r5, #1
+ 8014318:	f04f 0e2d 	mov.w	lr, #45	; 0x2d
+ 801431c:	af05      	add	r7, sp, #20
+ 801431e:	9700      	str	r7, [sp, #0]
+ 8014320:	2700      	movs	r7, #0
+ 8014322:	4689      	mov	r9, r1
+ 8014324:	f8dd a004 	ldr.w	sl, [sp, #4]
+ 8014328:	fbb1 f1f0 	udiv	r1, r1, r0
+ 801432c:	fb00 9b11 	mls	fp, r0, r1, r9
+ 8014330:	4548      	cmp	r0, r9
+ 8014332:	f81a b00b 	ldrb.w	fp, [sl, fp]
+ 8014336:	f8dd a000 	ldr.w	sl, [sp]
+ 801433a:	f80a bb01 	strb.w	fp, [sl], #1
+ 801433e:	f107 0701 	add.w	r7, r7, #1
+ 8014342:	f8cd a000 	str.w	sl, [sp]
+ 8014346:	d9ec      	bls.n	8014322 <tiny_vsnprintf_like+0x186>
+ 8014348:	e00e      	b.n	8014368 <tiny_vsnprintf_like+0x1cc>
+ 801434a:	f04e 0e02 	orr.w	lr, lr, #2
+ 801434e:	200a      	movs	r0, #10
+ 8014350:	e7c6      	b.n	80142e0 <tiny_vsnprintf_like+0x144>
+ 8014352:	3e01      	subs	r6, #1
+ 8014354:	e76d      	b.n	8014232 <tiny_vsnprintf_like+0x96>
+ 8014356:	b111      	cbz	r1, 801435e <tiny_vsnprintf_like+0x1c2>
+ 8014358:	f04f 0e00 	mov.w	lr, #0
+ 801435c:	e7de      	b.n	801431c <tiny_vsnprintf_like+0x180>
+ 801435e:	2030      	movs	r0, #48	; 0x30
+ 8014360:	f88d 0014 	strb.w	r0, [sp, #20]
+ 8014364:	468e      	mov	lr, r1
+ 8014366:	2701      	movs	r7, #1
+ 8014368:	f1bc 0f30 	cmp.w	ip, #48	; 0x30
+ 801436c:	eba5 0507 	sub.w	r5, r5, r7
+ 8014370:	d004      	beq.n	801437c <tiny_vsnprintf_like+0x1e0>
+ 8014372:	2020      	movs	r0, #32
+ 8014374:	2d00      	cmp	r5, #0
+ 8014376:	f105 35ff 	add.w	r5, r5, #4294967295
+ 801437a:	dc09      	bgt.n	8014390 <tiny_vsnprintf_like+0x1f4>
+ 801437c:	f1be 0f00 	cmp.w	lr, #0
+ 8014380:	d004      	beq.n	801438c <tiny_vsnprintf_like+0x1f0>
+ 8014382:	212d      	movs	r1, #45	; 0x2d
+ 8014384:	3a01      	subs	r2, #1
+ 8014386:	f804 1b01 	strb.w	r1, [r4], #1
+ 801438a:	d083      	beq.n	8014294 <tiny_vsnprintf_like+0xf8>
+ 801438c:	4425      	add	r5, r4
+ 801438e:	e00a      	b.n	80143a6 <tiny_vsnprintf_like+0x20a>
+ 8014390:	3a01      	subs	r2, #1
+ 8014392:	f804 0b01 	strb.w	r0, [r4], #1
+ 8014396:	d1ed      	bne.n	8014374 <tiny_vsnprintf_like+0x1d8>
+ 8014398:	e77c      	b.n	8014294 <tiny_vsnprintf_like+0xf8>
+ 801439a:	9902      	ldr	r1, [sp, #8]
+ 801439c:	f804 1b01 	strb.w	r1, [r4], #1
+ 80143a0:	3a01      	subs	r2, #1
+ 80143a2:	f43f af77 	beq.w	8014294 <tiny_vsnprintf_like+0xf8>
+ 80143a6:	1b29      	subs	r1, r5, r4
+ 80143a8:	2900      	cmp	r1, #0
+ 80143aa:	dcf6      	bgt.n	801439a <tiny_vsnprintf_like+0x1fe>
+ 80143ac:	a905      	add	r1, sp, #20
+ 80143ae:	4439      	add	r1, r7
+ 80143b0:	4422      	add	r2, r4
+ 80143b2:	4427      	add	r7, r4
+ 80143b4:	42a7      	cmp	r7, r4
+ 80143b6:	f43f af6d 	beq.w	8014294 <tiny_vsnprintf_like+0xf8>
+ 80143ba:	f811 0d01 	ldrb.w	r0, [r1, #-1]!
+ 80143be:	f804 0b01 	strb.w	r0, [r4], #1
+ 80143c2:	4294      	cmp	r4, r2
+ 80143c4:	d1f6      	bne.n	80143b4 <tiny_vsnprintf_like+0x218>
+ 80143c6:	e765      	b.n	8014294 <tiny_vsnprintf_like+0xf8>
+ 80143c8:	2000      	movs	r0, #0
+ 80143ca:	e6f9      	b.n	80141c0 <tiny_vsnprintf_like+0x24>
+ 80143cc:	08015afc 	.word	0x08015afc
+ 80143d0:	08015b03 	.word	0x08015b03
+ 80143d4:	08015b28 	.word	0x08015b28
+
+080143d8 <memcmp>:
+ 80143d8:	b510      	push	{r4, lr}
+ 80143da:	3901      	subs	r1, #1
+ 80143dc:	4402      	add	r2, r0
+ 80143de:	4290      	cmp	r0, r2
+ 80143e0:	d101      	bne.n	80143e6 <memcmp+0xe>
+ 80143e2:	2000      	movs	r0, #0
+ 80143e4:	e005      	b.n	80143f2 <memcmp+0x1a>
+ 80143e6:	7803      	ldrb	r3, [r0, #0]
+ 80143e8:	f811 4f01 	ldrb.w	r4, [r1, #1]!
+ 80143ec:	42a3      	cmp	r3, r4
+ 80143ee:	d001      	beq.n	80143f4 <memcmp+0x1c>
+ 80143f0:	1b18      	subs	r0, r3, r4
+ 80143f2:	bd10      	pop	{r4, pc}
+ 80143f4:	3001      	adds	r0, #1
+ 80143f6:	e7f2      	b.n	80143de <memcmp+0x6>
+
+080143f8 <memset>:
+ 80143f8:	4402      	add	r2, r0
+ 80143fa:	4603      	mov	r3, r0
+ 80143fc:	4293      	cmp	r3, r2
+ 80143fe:	d100      	bne.n	8014402 <memset+0xa>
+ 8014400:	4770      	bx	lr
+ 8014402:	f803 1b01 	strb.w	r1, [r3], #1
+ 8014406:	e7f9      	b.n	80143fc <memset+0x4>
+
+08014408 <__libc_init_array>:
+ 8014408:	b570      	push	{r4, r5, r6, lr}
+ 801440a:	4d0d      	ldr	r5, [pc, #52]	; (8014440 <__libc_init_array+0x38>)
+ 801440c:	4c0d      	ldr	r4, [pc, #52]	; (8014444 <__libc_init_array+0x3c>)
+ 801440e:	1b64      	subs	r4, r4, r5
+ 8014410:	10a4      	asrs	r4, r4, #2
+ 8014412:	2600      	movs	r6, #0
+ 8014414:	42a6      	cmp	r6, r4
+ 8014416:	d109      	bne.n	801442c <__libc_init_array+0x24>
+ 8014418:	4d0b      	ldr	r5, [pc, #44]	; (8014448 <__libc_init_array+0x40>)
+ 801441a:	4c0c      	ldr	r4, [pc, #48]	; (801444c <__libc_init_array+0x44>)
+ 801441c:	f000 f8b8 	bl	8014590 <_init>
+ 8014420:	1b64      	subs	r4, r4, r5
+ 8014422:	10a4      	asrs	r4, r4, #2
+ 8014424:	2600      	movs	r6, #0
+ 8014426:	42a6      	cmp	r6, r4
+ 8014428:	d105      	bne.n	8014436 <__libc_init_array+0x2e>
+ 801442a:	bd70      	pop	{r4, r5, r6, pc}
+ 801442c:	f855 3b04 	ldr.w	r3, [r5], #4
+ 8014430:	4798      	blx	r3
+ 8014432:	3601      	adds	r6, #1
+ 8014434:	e7ee      	b.n	8014414 <__libc_init_array+0xc>
+ 8014436:	f855 3b04 	ldr.w	r3, [r5], #4
+ 801443a:	4798      	blx	r3
+ 801443c:	3601      	adds	r6, #1
+ 801443e:	e7f2      	b.n	8014426 <__libc_init_array+0x1e>
+ 8014440:	08015c30 	.word	0x08015c30
+ 8014444:	08015c30 	.word	0x08015c30
+ 8014448:	08015c30 	.word	0x08015c30
+ 801444c:	08015c34 	.word	0x08015c34
+
+08014450 <strcpy>:
+ 8014450:	4603      	mov	r3, r0
+ 8014452:	f811 2b01 	ldrb.w	r2, [r1], #1
+ 8014456:	f803 2b01 	strb.w	r2, [r3], #1
+ 801445a:	2a00      	cmp	r2, #0
+ 801445c:	d1f9      	bne.n	8014452 <strcpy+0x2>
+ 801445e:	4770      	bx	lr
+
+08014460 <__aeabi_memcpy>:
+ 8014460:	f000 b803 	b.w	801446a <memcpy>
+
+08014464 <__aeabi_memclr>:
+ 8014464:	2200      	movs	r2, #0
+ 8014466:	f000 b80e 	b.w	8014486 <__aeabi_memset>
+
+0801446a <memcpy>:
+ 801446a:	440a      	add	r2, r1
+ 801446c:	4291      	cmp	r1, r2
+ 801446e:	f100 33ff 	add.w	r3, r0, #4294967295
+ 8014472:	d100      	bne.n	8014476 <memcpy+0xc>
+ 8014474:	4770      	bx	lr
+ 8014476:	b510      	push	{r4, lr}
+ 8014478:	f811 4b01 	ldrb.w	r4, [r1], #1
+ 801447c:	f803 4f01 	strb.w	r4, [r3, #1]!
+ 8014480:	4291      	cmp	r1, r2
+ 8014482:	d1f9      	bne.n	8014478 <memcpy+0xe>
+ 8014484:	bd10      	pop	{r4, pc}
+
+08014486 <__aeabi_memset>:
+ 8014486:	4613      	mov	r3, r2
+ 8014488:	460a      	mov	r2, r1
+ 801448a:	4619      	mov	r1, r3
+ 801448c:	f7ff bfb4 	b.w	80143f8 <memset>
+
+08014490 <floor>:
+ 8014490:	f3c1 520a 	ubfx	r2, r1, #20, #11
+ 8014494:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
+ 8014498:	f2a2 36ff 	subw	r6, r2, #1023	; 0x3ff
+ 801449c:	2e13      	cmp	r6, #19
+ 801449e:	460b      	mov	r3, r1
+ 80144a0:	4607      	mov	r7, r0
+ 80144a2:	460c      	mov	r4, r1
+ 80144a4:	4605      	mov	r5, r0
+ 80144a6:	dc32      	bgt.n	801450e <floor+0x7e>
+ 80144a8:	2e00      	cmp	r6, #0
+ 80144aa:	da14      	bge.n	80144d6 <floor+0x46>
+ 80144ac:	a334      	add	r3, pc, #208	; (adr r3, 8014580 <floor+0xf0>)
+ 80144ae:	e9d3 2300 	ldrd	r2, r3, [r3]
+ 80144b2:	f7ec ff93 	bl	80013dc <__adddf3>
+ 80144b6:	2200      	movs	r2, #0
+ 80144b8:	2300      	movs	r3, #0
+ 80144ba:	f7ed f9c3 	bl	8001844 <__aeabi_dcmpgt>
+ 80144be:	b138      	cbz	r0, 80144d0 <floor+0x40>
+ 80144c0:	2c00      	cmp	r4, #0
+ 80144c2:	da56      	bge.n	8014572 <floor+0xe2>
+ 80144c4:	f024 4400 	bic.w	r4, r4, #2147483648	; 0x80000000
+ 80144c8:	4325      	orrs	r5, r4
+ 80144ca:	d055      	beq.n	8014578 <floor+0xe8>
+ 80144cc:	4c2e      	ldr	r4, [pc, #184]	; (8014588 <floor+0xf8>)
+ 80144ce:	2500      	movs	r5, #0
+ 80144d0:	4623      	mov	r3, r4
+ 80144d2:	462f      	mov	r7, r5
+ 80144d4:	e025      	b.n	8014522 <floor+0x92>
+ 80144d6:	4a2d      	ldr	r2, [pc, #180]	; (801458c <floor+0xfc>)
+ 80144d8:	fa42 f806 	asr.w	r8, r2, r6
+ 80144dc:	ea01 0208 	and.w	r2, r1, r8
+ 80144e0:	4302      	orrs	r2, r0
+ 80144e2:	d01e      	beq.n	8014522 <floor+0x92>
+ 80144e4:	a326      	add	r3, pc, #152	; (adr r3, 8014580 <floor+0xf0>)
+ 80144e6:	e9d3 2300 	ldrd	r2, r3, [r3]
+ 80144ea:	f7ec ff77 	bl	80013dc <__adddf3>
+ 80144ee:	2200      	movs	r2, #0
+ 80144f0:	2300      	movs	r3, #0
+ 80144f2:	f7ed f9a7 	bl	8001844 <__aeabi_dcmpgt>
+ 80144f6:	2800      	cmp	r0, #0
+ 80144f8:	d0ea      	beq.n	80144d0 <floor+0x40>
+ 80144fa:	2c00      	cmp	r4, #0
+ 80144fc:	bfbe      	ittt	lt
+ 80144fe:	f44f 1380 	movlt.w	r3, #1048576	; 0x100000
+ 8014502:	4133      	asrlt	r3, r6
+ 8014504:	18e4      	addlt	r4, r4, r3
+ 8014506:	ea24 0408 	bic.w	r4, r4, r8
+ 801450a:	2500      	movs	r5, #0
+ 801450c:	e7e0      	b.n	80144d0 <floor+0x40>
+ 801450e:	2e33      	cmp	r6, #51	; 0x33
+ 8014510:	dd0b      	ble.n	801452a <floor+0x9a>
+ 8014512:	f5b6 6f80 	cmp.w	r6, #1024	; 0x400
+ 8014516:	d104      	bne.n	8014522 <floor+0x92>
+ 8014518:	4602      	mov	r2, r0
+ 801451a:	f7ec ff5f 	bl	80013dc <__adddf3>
+ 801451e:	4607      	mov	r7, r0
+ 8014520:	460b      	mov	r3, r1
+ 8014522:	4638      	mov	r0, r7
+ 8014524:	4619      	mov	r1, r3
+ 8014526:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
+ 801452a:	f2a2 4213 	subw	r2, r2, #1043	; 0x413
+ 801452e:	f04f 38ff 	mov.w	r8, #4294967295
+ 8014532:	fa28 f802 	lsr.w	r8, r8, r2
+ 8014536:	ea10 0f08 	tst.w	r0, r8
+ 801453a:	d0f2      	beq.n	8014522 <floor+0x92>
+ 801453c:	a310      	add	r3, pc, #64	; (adr r3, 8014580 <floor+0xf0>)
+ 801453e:	e9d3 2300 	ldrd	r2, r3, [r3]
+ 8014542:	f7ec ff4b 	bl	80013dc <__adddf3>
+ 8014546:	2200      	movs	r2, #0
+ 8014548:	2300      	movs	r3, #0
+ 801454a:	f7ed f97b 	bl	8001844 <__aeabi_dcmpgt>
+ 801454e:	2800      	cmp	r0, #0
+ 8014550:	d0be      	beq.n	80144d0 <floor+0x40>
+ 8014552:	2c00      	cmp	r4, #0
+ 8014554:	da0a      	bge.n	801456c <floor+0xdc>
+ 8014556:	2e14      	cmp	r6, #20
+ 8014558:	d101      	bne.n	801455e <floor+0xce>
+ 801455a:	3401      	adds	r4, #1
+ 801455c:	e006      	b.n	801456c <floor+0xdc>
+ 801455e:	f1c6 0634 	rsb	r6, r6, #52	; 0x34
+ 8014562:	2301      	movs	r3, #1
+ 8014564:	40b3      	lsls	r3, r6
+ 8014566:	441d      	add	r5, r3
+ 8014568:	42af      	cmp	r7, r5
+ 801456a:	d8f6      	bhi.n	801455a <floor+0xca>
+ 801456c:	ea25 0508 	bic.w	r5, r5, r8
+ 8014570:	e7ae      	b.n	80144d0 <floor+0x40>
+ 8014572:	2500      	movs	r5, #0
+ 8014574:	462c      	mov	r4, r5
+ 8014576:	e7ab      	b.n	80144d0 <floor+0x40>
+ 8014578:	f04f 4400 	mov.w	r4, #2147483648	; 0x80000000
+ 801457c:	e7a8      	b.n	80144d0 <floor+0x40>
+ 801457e:	bf00      	nop
+ 8014580:	8800759c 	.word	0x8800759c
+ 8014584:	7e37e43c 	.word	0x7e37e43c
+ 8014588:	bff00000 	.word	0xbff00000
+ 801458c:	000fffff 	.word	0x000fffff
+
+08014590 <_init>:
+ 8014590:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 8014592:	bf00      	nop
+ 8014594:	bcf8      	pop	{r3, r4, r5, r6, r7}
+ 8014596:	bc08      	pop	{r3}
+ 8014598:	469e      	mov	lr, r3
+ 801459a:	4770      	bx	lr
+
+0801459c <_fini>:
+ 801459c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
+ 801459e:	bf00      	nop
+ 80145a0:	bcf8      	pop	{r3, r4, r5, r6, r7}
+ 80145a2:	bc08      	pop	{r3}
+ 80145a4:	469e      	mov	lr, r3
+ 80145a6:	4770      	bx	lr
diff --git a/STS-IOT-PCBA.pdf b/STS-IOT-PCBA.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..77f31b8480f6b27f20bcb989985e4155dd27dd23
GIT binary patch
literal 269464
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

literal 0
HcmV?d00001