diff --git a/bootloader-tftp/.cproject b/bootloader-tftp/.cproject
index aed1f94..5d6ed8c 100644
--- a/bootloader-tftp/.cproject
+++ b/bootloader-tftp/.cproject
@@ -55,8 +55,8 @@
-
-
+
+
diff --git a/bootloader-tftp/.settings/language.settings.xml b/bootloader-tftp/.settings/language.settings.xml
index bf90128..f3adca1 100644
--- a/bootloader-tftp/.settings/language.settings.xml
+++ b/bootloader-tftp/.settings/language.settings.xml
@@ -5,7 +5,7 @@
-
+
diff --git a/bootloader-tftp/Makefile.GD32 b/bootloader-tftp/Makefile.GD32
index 08fcd07..ae11d9b 100644
--- a/bootloader-tftp/Makefile.GD32
+++ b/bootloader-tftp/Makefile.GD32
@@ -2,16 +2,19 @@ DEFINES =DISABLE_JSON
DEFINES+=DISABLE_BIN
DEFINES+=DISABLE_RTC
DEFINES+=DISABLE_FS
+DEFINES+=DISABLE_PRINTF_FLOAT
DEFINES+=UDP_MAX_PORTS_ALLOWED=2
-DEFINES+=CONFIG_FLASHROM_USE_I2C
+#DEFINES+=ENET_LINK_CHECK_REG_POLL
+
+DEFINES+=CONFIG_STORE_USE_I2C
DEFINES+=NDEBUG
SRCDIR=firmware lib
-LIBS=display spiflashstore remoteconfig spiflashinstall spiflash
+LIBS=remoteconfig flashcodeinstall configstore display flash flashcode
include ../firmware-template-gd32/Rules.mk
diff --git a/bootloader-tftp/firmware/main.cpp b/bootloader-tftp/firmware/main.cpp
index d117e82..15df881 100644
--- a/bootloader-tftp/firmware/main.cpp
+++ b/bootloader-tftp/firmware/main.cpp
@@ -40,8 +40,8 @@
#include "firmwareversion.h"
#include "software_version.h"
-#include "spiflashinstall.h"
-#include "spiflashstore.h"
+#include "flashcodeinstall.h"
+#include "configstore.h"
#include "gd32.h"
@@ -101,8 +101,8 @@ int main(void) {
fw.Print("Bootloader TFTP Server");
- SpiFlashInstall flashInstall;
- SpiFlashStore flashStore;
+ FlashCodeInstall flashCodeInstall;
+ ConfigStore configStore;
StoreNetwork storeNetwork;
nw.SetNetworkStore(&storeNetwork);
diff --git a/bootloader-tftp/gd32f4xx.list b/bootloader-tftp/gd32f4xx.list
index 4e4e837..16b70d5 100644
--- a/bootloader-tftp/gd32f4xx.list
+++ b/bootloader-tftp/gd32f4xx.list
@@ -7,108 +7,108 @@ Disassembly of section .vectors:
08000000 <__gVectors>:
8000000: 10010000 andne r0, r1, r0
8000004: 080007ad stmdaeq r0, {r0, r2, r3, r5, r7, r8, r9, sl}
- 8000008: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 800000c: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000010: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000014: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000018: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
+ 8000008: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 800000c: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000010: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000014: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000018: 08000825 stmdaeq r0, {r0, r2, r5, fp}
...
- 800002c: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000030: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
+ 800002c: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000030: 08000825 stmdaeq r0, {r0, r2, r5, fp}
8000034: 00000000 andeq r0, r0, r0
- 8000038: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 800003c: 0800452d stmdaeq r0, {r0, r2, r3, r5, r8, sl, lr}
- 8000040: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000044: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000048: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 800004c: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000050: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000054: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000058: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 800005c: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000060: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000064: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000068: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 800006c: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000070: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000074: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000078: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 800007c: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000080: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000084: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000088: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 800008c: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000090: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000094: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000098: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 800009c: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 80000a0: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 80000a4: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 80000a8: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 80000ac: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 80000b0: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 80000b4: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 80000b8: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 80000bc: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 80000c0: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 80000c4: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 80000c8: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 80000cc: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 80000d0: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 80000d4: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 80000d8: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 80000dc: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 80000e0: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 80000e4: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 80000e8: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 80000ec: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 80000f0: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 80000f4: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 80000f8: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 80000fc: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000100: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000104: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000108: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 800010c: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000110: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000114: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000118: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 800011c: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000120: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000124: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000128: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 800012c: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000130: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000134: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000138: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 800013c: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000140: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000144: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000148: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 800014c: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000150: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000154: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000158: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 800015c: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000160: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000164: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000168: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 800016c: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000170: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000174: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000178: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
+ 8000038: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 800003c: 080044a5 stmdaeq r0, {r0, r2, r5, r7, sl, lr}
+ 8000040: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000044: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000048: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 800004c: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000050: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000054: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000058: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 800005c: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000060: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000064: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000068: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 800006c: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000070: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000074: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000078: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 800007c: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000080: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000084: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000088: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 800008c: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000090: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000094: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000098: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 800009c: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 80000a0: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 80000a4: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 80000a8: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 80000ac: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 80000b0: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 80000b4: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 80000b8: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 80000bc: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 80000c0: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 80000c4: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 80000c8: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 80000cc: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 80000d0: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 80000d4: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 80000d8: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 80000dc: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 80000e0: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 80000e4: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 80000e8: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 80000ec: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 80000f0: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 80000f4: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 80000f8: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 80000fc: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000100: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000104: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000108: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 800010c: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000110: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000114: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000118: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 800011c: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000120: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000124: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000128: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 800012c: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000130: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000134: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000138: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 800013c: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000140: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000144: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000148: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 800014c: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000150: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000154: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000158: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 800015c: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000160: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000164: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000168: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 800016c: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000170: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000174: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000178: 08000825 stmdaeq r0, {r0, r2, r5, fp}
800017c: 00000000 andeq r0, r0, r0
- 8000180: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000184: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000188: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 800018c: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000190: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000194: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 8000198: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
+ 8000180: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000184: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000188: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 800018c: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000190: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000194: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 8000198: 08000825 stmdaeq r0, {r0, r2, r5, fp}
800019c: 00000000 andeq r0, r0, r0
- 80001a0: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 80001a4: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
- 80001a8: 080008c5 stmdaeq r0, {r0, r2, r6, r7, fp}
+ 80001a0: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 80001a4: 08000825 stmdaeq r0, {r0, r2, r5, fp}
+ 80001a8: 08000825 stmdaeq r0, {r0, r2, r5, fp}
Disassembly of section .text:
@@ -144,18 +144,18 @@ Disassembly of section .text:
80001f2: b153 cbz r3, 800020a
80001f4: 4911 ldr r1, [pc, #68] ; (800023c )
80001f6: 4810 ldr r0, [pc, #64] ; (8000238 )
- 80001f8: f003 fc12 bl 8003a20
+ 80001f8: f003 fbbe bl 8003978
80001fc: 42b8 cmp r0, r7
80001fe: da04 bge.n 800020a
8000200: 480e ldr r0, [pc, #56] ; (800023c )
8000202: 702f strb r7, [r5, #0]
- 8000204: f002 fc86 bl 8002b14
+ 8000204: f002 fc40 bl 8002a88
8000208: 7030 strb r0, [r6, #0]
800020a: 490c ldr r1, [pc, #48] ; (800023c )
800020c: 480a ldr r0, [pc, #40] ; (8000238 )
800020e: f000 f87f bl 8000310
8000212: 480a ldr r0, [pc, #40] ; (800023c )
- 8000214: f003 fdec bl 8003df0
+ 8000214: f003 fd98 bl 8003d48
8000218: f000 f82e bl 8000278
800021c: 4a07 ldr r2, [pc, #28] ; (800023c )
800021e: 1e63 subs r3, r4, #1
@@ -169,9 +169,9 @@ Disassembly of section .text:
8000232: 701a strb r2, [r3, #0]
8000234: b003 add sp, #12
8000236: bdf0 pop {r4, r5, r6, r7, pc}
- 8000238: 200011c0 andcs r1, r0, r0, asr #3
- 800023c: 200011b4 ; instruction: 0x200011b4
- 8000240: 200011c6 andcs r1, r0, r6, asr #3
+ 8000238: 200001c8 andcs r0, r0, r8, asr #3
+ 800023c: 200001bc ; instruction: 0x200001bc
+ 8000240: 200001ce andcs r0, r0, lr, asr #3
08000244 :
8000244: b508 push {r3, lr}
@@ -180,10 +180,10 @@ Disassembly of section .text:
800024c: 781b ldrb r3, [r3, #0]
800024e: b11b cbz r3, 8000258
8000250: e8bd 4008 ldmia.w sp!, {r3, lr}
- 8000254: f003 bcec b.w 8003c30
+ 8000254: f003 bc98 b.w 8003b88
8000258: bd08 pop {r3, pc}
800025a: bf00 nop
- 800025c: 200011c6 andcs r1, r0, r6, asr #3
+ 800025c: 200001ce andcs r0, r0, lr, asr #3
08000260 :
8000260: 4b04 ldr r3, [pc, #16] ; (8000274 )
@@ -194,7 +194,7 @@ Disassembly of section .text:
800026a: f810 1b01 ldrb.w r1, [r0], #1
800026e: f803 1b01 strb.w r1, [r3], #1
8000272: e7f7 b.n 8000264
- 8000274: 200011d0 ldrdcs r1, [r0], -r0
+ 8000274: 200001d8 ldrdcs r0, [r0], -r8
08000278 :
8000278: b513 push {r0, r1, r4, lr}
@@ -202,7 +202,7 @@ Disassembly of section .text:
800027c: 490c ldr r1, [pc, #48] ; (80002b0 )
800027e: 2206 movs r2, #6
8000280: 18a0 adds r0, r4, r2
- 8000282: f002 fc87 bl 8002b94
+ 8000282: f002 fc41 bl 8002b08
8000286: 2308 movs r3, #8
8000288: 81a3 strh r3, [r4, #12]
800028a: 4b0a ldr r3, [pc, #40] ; (80002b4 )
@@ -211,7 +211,7 @@ Disassembly of section .text:
8000290: 9301 str r3, [sp, #4]
8000292: eb0d 0102 add.w r1, sp, r2
8000296: f104 001a add.w r0, r4, #26
- 800029a: f002 fc7b bl 8002b94
+ 800029a: f002 fc35 bl 8002b08
800029e: 2345 movs r3, #69 ; 0x45
80002a0: 81e3 strh r3, [r4, #14]
80002a2: 4b05 ldr r3, [pc, #20] ; (80002b8 )
@@ -220,8 +220,8 @@ Disassembly of section .text:
80002a8: bd10 pop {r4, pc}
80002aa: bf00 nop
80002ac: 10000000 andne r0, r0, r0
- 80002b0: 200011c0 andcs r1, r0, r0, asr #3
- 80002b4: 200011b4 ; instruction: 0x200011b4
+ 80002b0: 200001c8 andcs r0, r0, r8, asr #3
+ 80002b4: 200001bc ; instruction: 0x200001bc
80002b8: 06400040 strbeq r0, [r0], -r0, asr #32
080002bc :
@@ -240,20 +240,20 @@ Disassembly of section .text:
80002d6: 4601 mov r1, r0
80002d8: 18a8 adds r0, r5, r2
80002da: 801c strh r4, [r3, #0]
- 80002dc: f002 fc64 bl 8002ba8
+ 80002dc: f002 fc1e bl 8002b1c
80002e0: 4b08 ldr r3, [pc, #32] ; (8000304 )
80002e2: 60eb str r3, [r5, #12]
80002e4: 4630 mov r0, r6
80002e6: 4b08 ldr r3, [pc, #32] ; (8000308 )
80002e8: 616b str r3, [r5, #20]
- 80002ea: f002 fc85 bl 8002bf8
+ 80002ea: f002 fc3f bl 8002b6c
80002ee: 852c strh r4, [r5, #40] ; 0x28
80002f0: bd70 pop {r4, r5, r6, pc}
80002f2: bf00 nop
- 80002f4: 200011f0 strdcs r1, [r0], -r0
- 80002f8: 200011f8 strdcs r1, [r0], -r8
- 80002fc: 20002920 andcs r2, r0, r0, lsr #18
- 8000300: 200011ec andcs r1, r0, ip, ror #3
+ 80002f4: 200001f8 strdcs r0, [r0], -r8
+ 80002f8: 20000200 andcs r0, r0, r0, lsl #4
+ 80002fc: 20001928 andcs r1, r0, r8, lsr #18
+ 8000300: 200001f4 strdcs r0, [r0], -r4
8000304: 00450008 subeq r0, r5, r8
8000308: 11400040 cmpne r0, r0, asr #32
@@ -270,7 +270,7 @@ Disassembly of section .text:
800031e: 482f ldr r0, [pc, #188] ; (80003dc )
8000320: 682f ldr r7, [r5, #0]
8000322: 4621 mov r1, r4
- 8000324: f003 f9fd bl 8003722
+ 8000324: f003 f9a9 bl 800367a
8000328: 4b2d ldr r3, [pc, #180] ; (80003e0 )
800032a: 2507 movs r5, #7
800032c: 461e mov r6, r3
@@ -285,7 +285,7 @@ Disassembly of section .text:
8000342: f44f 7380 mov.w r3, #256 ; 0x100
8000346: 4621 mov r1, r4
8000348: 82b3 strh r3, [r6, #20]
- 800034a: f003 f9ea bl 8003722
+ 800034a: f003 f996 bl 800367a
800034e: 4a27 ldr r2, [pc, #156] ; (80003ec )
8000350: 61f7 str r7, [r6, #28]
8000352: 2307 movs r3, #7
@@ -295,7 +295,7 @@ Disassembly of section .text:
800035a: 4621 mov r1, r4
800035c: 4824 ldr r0, [pc, #144] ; (80003f0 )
800035e: f8c6 7026 str.w r7, [r6, #38] ; 0x26
- 8000362: f003 f9de bl 8003722
+ 8000362: f003 f98a bl 800367a
8000366: 4a23 ldr r2, [pc, #140] ; (80003f4 )
8000368: 2306 movs r3, #6
800036a: 4615 mov r5, r2
@@ -309,7 +309,7 @@ Disassembly of section .text:
800037c: f44f 7380 mov.w r3, #256 ; 0x100
8000380: 4621 mov r1, r4
8000382: 82ab strh r3, [r5, #20]
- 8000384: f003 f9cd bl 8003722
+ 8000384: f003 f979 bl 800367a
8000388: 4a1c ldr r2, [pc, #112] ; (80003fc )
800038a: 61ef str r7, [r5, #28]
800038c: 2307 movs r3, #7
@@ -320,7 +320,7 @@ Disassembly of section .text:
8000396: 2206 movs r2, #6
8000398: 18a8 adds r0, r5, r2
800039a: 4621 mov r1, r4
- 800039c: f003 f9c1 bl 8003722
+ 800039c: f003 f96d bl 800367a
80003a0: 4b10 ldr r3, [pc, #64] ; (80003e4 )
80003a2: 4621 mov r1, r4
80003a4: e9c5 3803 strd r3, r8, [r5, #12]
@@ -328,10 +328,10 @@ Disassembly of section .text:
80003ac: f44f 7300 mov.w r3, #512 ; 0x200
80003b0: 2206 movs r2, #6
80003b2: 82ab strh r3, [r5, #20]
- 80003b4: f003 f9b5 bl 8003722
+ 80003b4: f003 f961 bl 800367a
80003b8: 61ef str r7, [r5, #28]
80003ba: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr}
- 80003be: f003 b9bb b.w 8003738
+ 80003be: f003 b967 b.w 8003690
80003c2: f803 2b01 strb.w r2, [r3], #1
80003c6: e7b3 b.n 8000330
80003c8: f802 5b01 strb.w r5, [r2], #1
@@ -341,16 +341,16 @@ Disassembly of section .text:
80003d4: f802 1b01 strb.w r1, [r2], #1
80003d8: e7da b.n 8000390
80003da: bf00 nop
- 80003dc: 20002f1a andcs r2, r0, sl, lsl pc
- 80003e0: 20002f14 andcs r2, r0, r4, lsl pc
+ 80003dc: 20001f22 andcs r1, r0, r2, lsr #30
+ 80003e0: 20001f1c andcs r1, r0, ip, lsl pc
80003e4: 01000608 tsteq r0, r8, lsl #12
- 80003e8: 20002f2a andcs r2, r0, sl, lsr #30
- 80003ec: 20002f34 andcs r2, r0, r4, lsr pc
- 80003f0: 20002f72 andcs r2, r0, r2, ror pc
- 80003f4: 20002f6c andcs r2, r0, ip, ror #30
- 80003f8: 20002f82 andcs r2, r0, r2, lsl #31
- 80003fc: 20002f8c andcs r2, r0, ip, lsl #31
- 8000400: 20002f40 andcs r2, r0, r0, asr #30
+ 80003e8: 20001f32 andcs r1, r0, r2, lsr pc
+ 80003ec: 20001f3c andcs r1, r0, ip, lsr pc
+ 80003f0: 20001f7a andcs r1, r0, sl, ror pc
+ 80003f4: 20001f74 andcs r1, r0, r4, ror pc
+ 80003f8: 20001f8a andcs r1, r0, sl, lsl #31
+ 80003fc: 20001f94 mulcs r0, r4, pc ;
+ 8000400: 20001f48 andcs r1, r0, r8, asr #30
8000404: 04060008 streq r0, [r6], #-8
08000408 :
@@ -387,7 +387,7 @@ Disassembly of section .text:
800044c: f8df 9088 ldr.w r9, [pc, #136] ; 80004d8
8000450: 6765 str r5, [r4, #116] ; 0x74
8000452: 8725 strh r5, [r4, #56] ; 0x38
- 8000454: f003 fc62 bl 8003d1c
+ 8000454: f003 fc0e bl 8003c74
8000458: 2301 movs r3, #1
800045a: 8023 strh r3, [r4, #0]
800045c: 2206 movs r2, #6
@@ -395,7 +395,7 @@ Disassembly of section .text:
8000460: 4631 mov r1, r6
8000462: f104 000e add.w r0, r4, #14
8000466: 70a3 strb r3, [r4, #2]
- 8000468: f003 fc10 bl 8003c8c
+ 8000468: f003 fbbc bl 8003be4
800046c: f240 4394 movw r3, #1172 ; 0x494
8000470: 8563 strh r3, [r4, #42] ; 0x2a
8000472: 2316 movs r3, #22
@@ -413,7 +413,7 @@ Disassembly of section .text:
8000496: f8c4 8014 str.w r8, [r4, #20]
800049a: 8327 strh r7, [r4, #24]
800049c: 85a5 strh r5, [r4, #44] ; 0x2c
- 800049e: f003 fbf5 bl 8003c8c
+ 800049e: f003 fba1 bl 8003be4
80004a2: 23e0 movs r3, #224 ; 0xe0
80004a4: 4a0b ldr r2, [pc, #44] ; (80004d4 )
80004a6: f8a4 305a strh.w r3, [r4, #90] ; 0x5a
@@ -437,7 +437,7 @@ Disassembly of section .text:
80004e2: 4c05 ldr r4, [pc, #20] ; (80004f8 )
80004e4: 6ee0 ldr r0, [r4, #108] ; 0x6c
80004e6: b128 cbz r0, 80004f4
- 80004e8: f003 fc4c bl 8003d84
+ 80004e8: f003 fbf8 bl 8003cdc
80004ec: 2300 movs r3, #0
80004ee: 66e3 str r3, [r4, #108] ; 0x6c
80004f0: f8a4 3070 strh.w r3, [r4, #112] ; 0x70
@@ -463,22 +463,22 @@ Disassembly of section .text:
08000520 :
8000520: b508 push {r3, lr}
- 8000522: f003 ffab bl 800447c
+ 8000522: f003 ff67 bl 80043f4
8000526: 4804 ldr r0, [pc, #16] ; (8000538 )
- 8000528: f003 ffd2 bl 80044d0
+ 8000528: f003 ff8e bl 8004448
800052c: 4803 ldr r0, [pc, #12] ; (800053c )
- 800052e: f003 ffcf bl 80044d0
+ 800052e: f003 ff8b bl 8004448
8000532: 2000 movs r0, #0
8000534: bd08 pop {r3, pc}
8000536: bf00 nop
- 8000538: 08006e90 stmdaeq r0, {r4, r7, r9, sl, fp, sp, lr}
- 800053c: 08006e96 stmdaeq r0, {r1, r2, r4, r7, r9, sl, fp, sp, lr}
+ 8000538: 08006e20 stmdaeq r0, {r5, r9, sl, fp, sp, lr}
+ 800053c: 08006e26 stmdaeq r0, {r1, r2, r5, r9, sl, fp, sp, lr}
08000540 :
8000540: b510 push {r4, lr}
8000542: 4c0c ldr r4, [pc, #48] ; (8000574 )
8000544: 4620 mov r0, r4
- 8000546: f004 fc93 bl 8004e70
+ 8000546: f005 f847 bl 80055d8
800054a: 2800 cmp r0, #0
800054c: dd07 ble.n 800055e
800054e: 6820 ldr r0, [r4, #0]
@@ -486,15 +486,15 @@ Disassembly of section .text:
8000552: 2b08 cmp r3, #8
8000554: d107 bne.n 8000566
8000556: f000 f8bf bl 80006d8
- 800055a: f004 fc9d bl 8004e98
+ 800055a: f005 f851 bl 8005600
800055e: e8bd 4010 ldmia.w sp!, {r4, lr}
- 8000562: f002 bac7 b.w 8002af4
+ 8000562: f002 ba81 b.w 8002a68
8000566: f5b3 6fc1 cmp.w r3, #1544 ; 0x608
800056a: d1f6 bne.n 800055a
800056c: f000 f85a bl 8000624
8000570: e7f3 b.n 800055a
8000572: bf00 nop
- 8000574: 200011c8 andcs r1, r0, r8, asr #3
+ 8000574: 200001d0 ldrdcs r0, [r0], -r0 ;
08000578 :
8000578: e92d 41f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
@@ -539,11 +539,11 @@ Disassembly of section .text:
80005dc: 462a mov r2, r5
80005de: f106 012a add.w r1, r6, #42 ; 0x2a
80005e2: 4440 add r0, r8
- 80005e4: f002 fae0 bl 8002ba8
+ 80005e4: f002 fa9a bl 8002b1c
80005e8: 2204 movs r2, #4
80005ea: eb0d 0002 add.w r0, sp, r2
80005ee: f106 011a add.w r1, r6, #26
- 80005f2: f002 fad9 bl 8002ba8
+ 80005f2: f002 fa93 bl 8002b1c
80005f6: 19e3 adds r3, r4, r7
80005f8: 4443 add r3, r8
80005fa: 9a01 ldr r2, [sp, #4]
@@ -557,8 +557,8 @@ Disassembly of section .text:
8000612: f003 0301 and.w r3, r3, #1
8000616: f828 3007 strh.w r3, [r8, r7]
800061a: e7c5 b.n 80005a8
- 800061c: 200011f0 strdcs r1, [r0], -r0
- 8000620: 200011f8 strdcs r1, [r0], -r8
+ 800061c: 200001f8 strdcs r0, [r0], -r8
+ 8000620: 20000200 andcs r0, r0, r0, lsl #4
08000624 :
8000624: 8a83 ldrh r3, [r0, #20]
@@ -567,8 +567,8 @@ Disassembly of section .text:
800062c: f5b3 7f00 cmp.w r3, #512 ; 0x200
8000630: d002 beq.n 8000638
8000632: 4770 bx lr
- 8000634: f003 b88a b.w 800374c
- 8000638: f003 b8b0 b.w 800379c
+ 8000634: f003 b836 b.w 80036a4
+ 8000638: f003 b85c b.w 80036f4
0800063c :
800063c: 7b83 ldrb r3, [r0, #14]
@@ -663,11 +663,11 @@ Disassembly of section .text:
8000714: 1d86 adds r6, r0, #6
8000716: 4631 mov r1, r6
8000718: 2206 movs r2, #6
- 800071a: f003 fb8c bl 8003e36
+ 800071a: f003 fb49 bl 8003db0
800071e: 4630 mov r0, r6
8000720: 491b ldr r1, [pc, #108] ; (8000790 )
8000722: 2206 movs r2, #6
- 8000724: f003 fb87 bl 8003e36
+ 8000724: f003 fb44 bl 8003db0
8000728: 8a63 ldrh r3, [r4, #18]
800072a: f104 061a add.w r6, r4, #26
800072e: 43db mvns r3, r3
@@ -675,7 +675,7 @@ Disassembly of section .text:
8000732: 8263 strh r3, [r4, #18]
8000734: 2204 movs r2, #4
8000736: f104 001e add.w r0, r4, #30
- 800073a: f003 fb7c bl 8003e36
+ 800073a: f003 fb39 bl 8003db0
800073e: 4b15 ldr r3, [pc, #84] ; (8000794 )
8000740: 2204 movs r2, #4
8000742: 681b ldr r3, [r3, #0]
@@ -683,12 +683,12 @@ Disassembly of section .text:
8000746: eb0d 0102 add.w r1, sp, r2
800074a: 4630 mov r0, r6
800074c: f104 060e add.w r6, r4, #14
- 8000750: f003 fb71 bl 8003e36
+ 8000750: f003 fb2e bl 8003db0
8000754: 2114 movs r1, #20
8000756: 7625 strb r5, [r4, #24]
8000758: 7665 strb r5, [r4, #25]
800075a: 4630 mov r0, r6
- 800075c: f003 fb51 bl 8003e02
+ 800075c: f003 fafd bl 8003d5a
8000760: 8a21 ldrh r1, [r4, #16]
8000762: 8320 strh r0, [r4, #24]
8000764: ba49 rev16 r1, r1
@@ -697,24 +697,24 @@ Disassembly of section .text:
800076c: f884 5024 strb.w r5, [r4, #36] ; 0x24
8000770: f884 5025 strb.w r5, [r4, #37] ; 0x25
8000774: 4630 mov r0, r6
- 8000776: f003 fb44 bl 8003e02
+ 8000776: f003 faf0 bl 8003d5a
800077a: 8a21 ldrh r1, [r4, #16]
800077c: 84a0 strh r0, [r4, #36] ; 0x24
800077e: ba49 rev16 r1, r1
8000780: b289 uxth r1, r1
8000782: 310e adds r1, #14
8000784: 4620 mov r0, r4
- 8000786: f004 fb8b bl 8004ea0
+ 8000786: f004 ff3f bl 8005608
800078a: b002 add sp, #8
800078c: bd70 pop {r4, r5, r6, pc}
800078e: bf00 nop
- 8000790: 200011c0 andcs r1, r0, r0, asr #3
- 8000794: 200011b4 ; instruction: 0x200011b4
- 8000798: 08006f90 stmdaeq r0, {r4, r7, r8, r9, sl, fp, sp, lr}
+ 8000790: 200001c8 andcs r0, r0, r8, asr #3
+ 8000794: 200001bc ; instruction: 0x200001bc
+ 8000798: 08006f20 stmdaeq r0, {r5, r8, r9, sl, fp, sp, lr}
800079c: 20000000 andcs r0, r0, r0
80007a0: 200000d0 ldrdcs r0, [r0], -r0 ;
80007a4: 200000d0 ldrdcs r0, [r0], -r0 ;
- 80007a8: 2000449c mulcs r0, ip, r4
+ 80007a8: 200034a4 andcs r3, r0, r4, lsr #9
080007ac :
80007ac: 2100 movs r1, #0
@@ -743,10280 +743,10277 @@ Disassembly of section .text:
80007cc: 4b07 ldr r3, [pc, #28] ; (80007ec )
80007ce: 429a cmp r2, r3
80007d0: d3f9 bcc.n 80007c6
- 80007d2: f003 feb3 bl 800453c
- 80007d6: f000 f893 bl 8000900
+ 80007d2: f003 fe6f bl 80044b4
+ 80007d6: f000 f843 bl 8000860
80007da: 4770 bx lr
- 80007dc: 08006f90 stmdaeq r0, {r4, r7, r8, r9, sl, fp, sp, lr}
+ 80007dc: 08006f20 stmdaeq r0, {r5, r8, r9, sl, fp, sp, lr}
80007e0: 20000000 andcs r0, r0, r0
80007e4: 200000d0 ldrdcs r0, [r0], -r0 ;
80007e8: 200000d0 ldrdcs r0, [r0], -r0 ;
- 80007ec: 2000449c mulcs r0, ip, r4
-
-080007f0 <__aeabi_d2f>:
- 80007f0: ea4f 0241 mov.w r2, r1, lsl #1
- 80007f4: f1b2 43e0 subs.w r3, r2, #1879048192 ; 0x70000000
- 80007f8: bf24 itt cs
- 80007fa: f5b3 1c00 subscs.w ip, r3, #2097152 ; 0x200000
- 80007fe: f1dc 5cfe rsbscs ip, ip, #532676608 ; 0x1fc00000
- 8000802: d90d bls.n 8000820 <__aeabi_d2f+0x30>
- 8000804: f001 4c00 and.w ip, r1, #2147483648 ; 0x80000000
- 8000808: ea4f 02c0 mov.w r2, r0, lsl #3
- 800080c: ea4c 7050 orr.w r0, ip, r0, lsr #29
- 8000810: f1b2 4f00 cmp.w r2, #2147483648 ; 0x80000000
- 8000814: eb40 0083 adc.w r0, r0, r3, lsl #2
- 8000818: bf08 it eq
- 800081a: f020 0001 biceq.w r0, r0, #1
+ 80007ec: 200034a4 andcs r3, r0, r4, lsr #9
+
+080007f0 <__aeabi_uldivmod>:
+ 80007f0: b953 cbnz r3, 8000808 <__aeabi_uldivmod+0x18>
+ 80007f2: b94a cbnz r2, 8000808 <__aeabi_uldivmod+0x18>
+ 80007f4: 2900 cmp r1, #0
+ 80007f6: bf08 it eq
+ 80007f8: 2800 cmpeq r0, #0
+ 80007fa: bf1c itt ne
+ 80007fc: f04f 31ff movne.w r1, #4294967295 ; 0xffffffff
+ 8000800: f04f 30ff movne.w r0, #4294967295 ; 0xffffffff
+ 8000804: f000 b80c b.w 8000820 <__aeabi_idiv0>
+ 8000808: f1ad 0c08 sub.w ip, sp, #8
+ 800080c: e96d ce04 strd ip, lr, [sp, #-16]!
+ 8000810: f000 fc0c bl 800102c <__udivmoddi4>
+ 8000814: f8dd e004 ldr.w lr, [sp, #4]
+ 8000818: e9dd 2302 ldrd r2, r3, [sp, #8]
+ 800081c: b004 add sp, #16
800081e: 4770 bx lr
- 8000820: f011 4f80 tst.w r1, #1073741824 ; 0x40000000
- 8000824: d121 bne.n 800086a <__aeabi_d2f+0x7a>
- 8000826: f113 7238 adds.w r2, r3, #48234496 ; 0x2e00000
- 800082a: bfbc itt lt
- 800082c: f001 4000 andlt.w r0, r1, #2147483648 ; 0x80000000
- 8000830: 4770 bxlt lr
- 8000832: f441 1180 orr.w r1, r1, #1048576 ; 0x100000
- 8000836: ea4f 5252 mov.w r2, r2, lsr #21
- 800083a: f1c2 0218 rsb r2, r2, #24
- 800083e: f1c2 0c20 rsb ip, r2, #32
- 8000842: fa10 f30c lsls.w r3, r0, ip
- 8000846: fa20 f002 lsr.w r0, r0, r2
- 800084a: bf18 it ne
- 800084c: f040 0001 orrne.w r0, r0, #1
- 8000850: ea4f 23c1 mov.w r3, r1, lsl #11
- 8000854: ea4f 23d3 mov.w r3, r3, lsr #11
- 8000858: fa03 fc0c lsl.w ip, r3, ip
- 800085c: ea40 000c orr.w r0, r0, ip
- 8000860: fa23 f302 lsr.w r3, r3, r2
- 8000864: ea4f 0343 mov.w r3, r3, lsl #1
- 8000868: e7cc b.n 8000804 <__aeabi_d2f+0x14>
- 800086a: ea7f 5362 mvns.w r3, r2, asr #21
- 800086e: d107 bne.n 8000880 <__aeabi_d2f+0x90>
- 8000870: ea50 3301 orrs.w r3, r0, r1, lsl #12
- 8000874: bf1e ittt ne
- 8000876: f04f 40fe movne.w r0, #2130706432 ; 0x7f000000
- 800087a: f440 0040 orrne.w r0, r0, #12582912 ; 0xc00000
- 800087e: 4770 bxne lr
- 8000880: f001 4000 and.w r0, r1, #2147483648 ; 0x80000000
- 8000884: f040 40fe orr.w r0, r0, #2130706432 ; 0x7f000000
- 8000888: f440 0000 orr.w r0, r0, #8388608 ; 0x800000
- 800088c: 4770 bx lr
- 800088e: bf00 nop
-
-08000890 <__aeabi_uldivmod>:
- 8000890: b953 cbnz r3, 80008a8 <__aeabi_uldivmod+0x18>
- 8000892: b94a cbnz r2, 80008a8 <__aeabi_uldivmod+0x18>
- 8000894: 2900 cmp r1, #0
- 8000896: bf08 it eq
- 8000898: 2800 cmpeq r0, #0
- 800089a: bf1c itt ne
- 800089c: f04f 31ff movne.w r1, #4294967295 ; 0xffffffff
- 80008a0: f04f 30ff movne.w r0, #4294967295 ; 0xffffffff
- 80008a4: f000 b80c b.w 80008c0 <__aeabi_idiv0>
- 80008a8: f1ad 0c08 sub.w ip, sp, #8
- 80008ac: e96d ce04 strd ip, lr, [sp, #-16]!
- 80008b0: f000 fd08 bl 80012c4 <__udivmoddi4>
- 80008b4: f8dd e004 ldr.w lr, [sp, #4]
- 80008b8: e9dd 2302 ldrd r2, r3, [sp, #8]
- 80008bc: b004 add sp, #16
- 80008be: 4770 bx lr
-
-080008c0 <__aeabi_idiv0>:
- 80008c0: 4770 bx lr
- 80008c2: bf00 nop
-
-080008c4 :
- 80008c4: e7fe b.n 80008c4
-
-080008c6 :
- 80008c6: b40c push {r2, r3}
- 80008c8: b570 push {r4, r5, r6, lr}
- 80008ca: 6984 ldr r4, [r0, #24]
- 80008cc: b08a sub sp, #40 ; 0x28
- 80008ce: 4605 mov r5, r0
- 80008d0: 460e mov r6, r1
- 80008d2: b174 cbz r4, 80008f2
- 80008d4: ab0f add r3, sp, #60 ; 0x3c
- 80008d6: 9a0e ldr r2, [sp, #56] ; 0x38
- 80008d8: 9301 str r3, [sp, #4]
- 80008da: 2120 movs r1, #32
- 80008dc: a802 add r0, sp, #8
- 80008de: f000 fce1 bl 80012a4
- 80008e2: 4604 mov r4, r0
- 80008e4: 69a8 ldr r0, [r5, #24]
- 80008e6: 6803 ldr r3, [r0, #0]
- 80008e8: aa02 add r2, sp, #8
- 80008ea: 69dd ldr r5, [r3, #28]
- 80008ec: 4631 mov r1, r6
- 80008ee: b2a3 uxth r3, r4
- 80008f0: 47a8 blx r5
- 80008f2: 4620 mov r0, r4
- 80008f4: b00a add sp, #40 ; 0x28
- 80008f6: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
- 80008fa: b002 add sp, #8
- 80008fc: 4770 bx lr
-
-080008fe :
- 80008fe: 4770 bx lr
-
-08000900 :
- 8000900: b570 push {r4, r5, r6, lr}
- 8000902: f640 4002 movw r0, #3074 ; 0xc02
- 8000906: b0e2 sub sp, #392 ; 0x188
- 8000908: f004 f836 bl 8004978
- 800090c: f241 001c movw r0, #4124 ; 0x101c
- 8000910: f004 f832 bl 8004978
- 8000914: f44f 7000 mov.w r0, #512 ; 0x200
- 8000918: f004 f81a bl 8004950
- 800091c: f640 4012 movw r0, #3090 ; 0xc12
- 8000920: f004 f82a bl 8004978
- 8000924: f004 f820 bl 8004968
- 8000928: 485e ldr r0, [pc, #376] ; (8000aa4 )
- 800092a: f44f 5200 mov.w r2, #8192 ; 0x2000
- 800092e: 2100 movs r1, #0
- 8000930: f003 ffe1 bl 80048f6
- 8000934: f44f 5300 mov.w r3, #8192 ; 0x2000
- 8000938: 485a ldr r0, [pc, #360] ; (8000aa4 )
- 800093a: 2201 movs r2, #1
- 800093c: 2100 movs r1, #0
- 800093e: f003 ff99 bl 8004874
- 8000942: 2001 movs r0, #1
- 8000944: f004 fab6 bl 8004eb4
- 8000948: f24a 53a5 movw r3, #42405 ; 0xa5a5
- 800094c: 4298 cmp r0, r3
- 800094e: d02e beq.n 80009ae
- 8000950: 4854 ldr r0, [pc, #336] ; (8000aa4 )
- 8000952: f44f 5100 mov.w r1, #8192 ; 0x2000
- 8000956: f003 ffc8 bl 80048ea
- 800095a: b340 cbz r0, 80009ae
- 800095c: b672 cpsid i
- 800095e: 4b52 ldr r3, [pc, #328] ; (8000aa8 )
- 8000960: 4a52 ldr r2, [pc, #328] ; (8000aac )
- 8000962: 20ff movs r0, #255 ; 0xff
- 8000964: 4619 mov r1, r3
- 8000966: 3301 adds r3, #1
- 8000968: 4293 cmp r3, r2
- 800096a: 7008 strb r0, [r1, #0]
- 800096c: d1fa bne.n 8000964
- 800096e: 4b50 ldr r3, [pc, #320] ; (8000ab0 )
- 8000970: 4a50 ldr r2, [pc, #320] ; (8000ab4 )
- 8000972: 20ff movs r0, #255 ; 0xff
- 8000974: 4619 mov r1, r3
- 8000976: 3301 adds r3, #1
- 8000978: 4293 cmp r3, r2
- 800097a: 7008 strb r0, [r1, #0]
- 800097c: d1fa bne.n 8000974
- 800097e: f04f 23e0 mov.w r3, #3758153728 ; 0xe000e000
- 8000982: 2100 movs r1, #0
- 8000984: 6119 str r1, [r3, #16]
- 8000986: f8d3 2d04 ldr.w r2, [r3, #3332] ; 0xd04
- 800098a: f042 7200 orr.w r2, r2, #33554432 ; 0x2000000
- 800098e: f8c3 2d04 str.w r2, [r3, #3332] ; 0xd04
- 8000992: 4a49 ldr r2, [pc, #292] ; (8000ab8 )
- 8000994: f8c3 2d08 str.w r2, [r3, #3336] ; 0xd08
- 8000998: f503 6350 add.w r3, r3, #3328 ; 0xd00
- 800099c: 689b ldr r3, [r3, #8]
- 800099e: 681b ldr r3, [r3, #0]
- 80009a0: f383 8808 msr MSP, r3
- 80009a4: f381 8814 msr CONTROL, r1
- 80009a8: b662 cpsie i
- 80009aa: 6853 ldr r3, [r2, #4]
- 80009ac: 4718 bx r3
- 80009ae: a801 add r0, sp, #4
- 80009b0: f003 fb3e bl 8004030
- 80009b4: a82f add r0, sp, #188 ; 0xbc
- 80009b6: f002 fc7f bl 80032b8
- 80009ba: 2104 movs r1, #4
- 80009bc: a813 add r0, sp, #76 ; 0x4c
- 80009be: f000 fe67 bl 8001690
- 80009c2: a807 add r0, sp, #28
- 80009c4: f003 fad8 bl 8003f78
- 80009c8: 4a3c ldr r2, [pc, #240] ; (8000abc )
- 80009ca: 4b3d ldr r3, [pc, #244] ; (8000ac0 )
- 80009cc: 493d ldr r1, [pc, #244] ; (8000ac4 )
- 80009ce: a802 add r0, sp, #8
- 80009d0: f003 fa8c bl 8003eec
- 80009d4: 493c ldr r1, [pc, #240] ; (8000ac8 )
- 80009d6: a802 add r0, sp, #8
- 80009d8: f003 fac0 bl 8003f5c
- 80009dc: a80d add r0, sp, #52 ; 0x34
- 80009de: f001 feeb bl 80027b8
- 80009e2: a803 add r0, sp, #12
- 80009e4: f001 f916 bl 8001c14
- 80009e8: a805 add r0, sp, #20
- 80009ea: f001 fa99 bl 8001f20
- 80009ee: ab06 add r3, sp, #24
- 80009f0: a905 add r1, sp, #20
- 80009f2: a82f add r0, sp, #188 ; 0xbc
- 80009f4: 935d str r3, [sp, #372] ; 0x174
- 80009f6: f002 fcb3 bl 8003360
- 80009fa: a82f add r0, sp, #188 ; 0xbc
- 80009fc: f002 fdfc bl 80035f8
- 8000a00: 2101 movs r1, #1
- 8000a02: a807 add r0, sp, #28
- 8000a04: f003 fae2 bl 8003fcc
- 8000a08: 2300 movs r3, #0
- 8000a0a: 2206 movs r2, #6
- 8000a0c: 2109 movs r1, #9
- 8000a0e: a823 add r0, sp, #140 ; 0x8c
- 8000a10: f001 fc8e bl 8002330
- 8000a14: a804 add r0, sp, #16
- 8000a16: f001 fab9 bl 8001f8c
- 8000a1a: a904 add r1, sp, #16
- 8000a1c: a81a add r0, sp, #104 ; 0x68
- 8000a1e: f001 fd99 bl 8002554
- 8000a22: a81a add r0, sp, #104 ; 0x68
- 8000a24: f001 fda0 bl 8002568
- 8000a28: b118 cbz r0, 8000a32
- 8000a2a: a923 add r1, sp, #140 ; 0x8c
- 8000a2c: a81a add r0, sp, #104 ; 0x68
- 8000a2e: f001 fda7 bl 8002580
- 8000a32: 2301 movs r3, #1
- 8000a34: 2104 movs r1, #4
- 8000a36: a807 add r0, sp, #28
- 8000a38: f88d 309a strb.w r3, [sp, #154] ; 0x9a
- 8000a3c: f003 fac6 bl 8003fcc
- 8000a40: 4a22 ldr r2, [pc, #136] ; (8000acc )
- 8000a42: 2103 movs r1, #3
- 8000a44: a813 add r0, sp, #76 ; 0x4c
- 8000a46: f7ff ff3e bl 80008c6
- 8000a4a: 2102 movs r1, #2
- 8000a4c: f64f 70ff movw r0, #65535 ; 0xffff
- 8000a50: f003 fee6 bl 8004820
- 8000a54: 2801 cmp r0, #1
- 8000a56: bf0c ite eq
- 8000a58: 2301 moveq r3, #1
- 8000a5a: 2300 movne r3, #0
- 8000a5c: f88d 3004 strb.w r3, [sp, #4]
- 8000a60: d101 bne.n 8000a66
- 8000a62: f003 fecd bl 8004800
- 8000a66: 4d1a ldr r5, [pc, #104] ; (8000ad0 )
- 8000a68: 4c1a ldr r4, [pc, #104] ; (8000ad4 )
- 8000a6a: 2601 movs r6, #1
- 8000a6c: f003 fed0 bl 8004810
- 8000a70: f7ff fd66 bl 8000540
- 8000a74: a823 add r0, sp, #140 ; 0x8c
- 8000a76: f001 fcc9 bl 800240c
- 8000a7a: 9a0a ldr r2, [sp, #40] ; 0x28
- 8000a7c: 2a00 cmp r2, #0
- 8000a7e: d0f5 beq.n 8000a6c
- 8000a80: 682b ldr r3, [r5, #0]
- 8000a82: 990c ldr r1, [sp, #48] ; 0x30
- 8000a84: 1a5b subs r3, r3, r1
- 8000a86: 429a cmp r2, r3
- 8000a88: d8f0 bhi.n 8000a6c
- 8000a8a: 682b ldr r3, [r5, #0]
- 8000a8c: 930c str r3, [sp, #48] ; 0x30
- 8000a8e: 9b0b ldr r3, [sp, #44] ; 0x2c
- 8000a90: 2b01 cmp r3, #1
- 8000a92: f083 0201 eor.w r2, r3, #1
- 8000a96: 920b str r2, [sp, #44] ; 0x2c
- 8000a98: bf14 ite ne
- 8000a9a: f8c4 6818 strne.w r6, [r4, #2072] ; 0x818
- 8000a9e: f8c4 3828 streq.w r3, [r4, #2088] ; 0x828
- 8000aa2: e7e3 b.n 8000a6c
- 8000aa4: 40020800 andmi r0, r2, r0, lsl #16
- 8000aa8: e000e180 and lr, r0, r0, lsl #3
- 8000aac: e000e1a0 and lr, r0, r0, lsr #3
- 8000ab0: e000e280 and lr, r0, r0, lsl #5
- 8000ab4: e000e2a0 and lr, r0, r0, lsr #5
- 8000ab8: 08008000 stmdaeq r0, {pc}
- 8000abc: 08006429 stmdaeq r0, {r0, r3, r5, sl, sp, lr}
- 8000ac0: 08006420 stmdaeq r0, {r5, sl, sp, lr}
- 8000ac4: 08006461 stmdaeq r0, {r0, r5, r6, sl, sp, lr}
- 8000ac8: 08006435 stmdaeq r0, {r0, r2, r4, r5, sl, sp, lr}
- 8000acc: 0800644c stmdaeq r0, {r2, r3, r6, sl, sp, lr}
- 8000ad0: 2000323c andcs r3, r0, ip, lsr r2
- 8000ad4: 40020000 andmi r0, r2, r0
-
-08000ad8 :
- 8000ad8: b110 cbz r0, 8000ae0
- 8000ada: 6803 ldr r3, [r0, #0]
- 8000adc: 699b ldr r3, [r3, #24]
- 8000ade: 4718 bx r3
- 8000ae0: 4770 bx lr
-
-08000ae2 :
- 8000ae2: b110 cbz r0, 8000aea
- 8000ae4: 6803 ldr r3, [r0, #0]
- 8000ae6: 691b ldr r3, [r3, #16]
- 8000ae8: 4718 bx r3
- 8000aea: 4770 bx lr
-
-08000aec :
- 8000aec: 7c43 ldrb r3, [r0, #17]
- 8000aee: b513 push {r0, r1, r4, lr}
- 8000af0: 4604 mov r4, r0
- 8000af2: b19b cbz r3, 8000b1c
- 8000af4: 43c9 mvns r1, r1
- 8000af6: 2312 movs r3, #18
- 8000af8: 7a00 ldrb r0, [r0, #8]
- 8000afa: f88d 3004 strb.w r3, [sp, #4]
- 8000afe: f3c1 2307 ubfx r3, r1, #8, #8
- 8000b02: f88d 1006 strb.w r1, [sp, #6]
- 8000b06: f88d 3005 strb.w r3, [sp, #5]
- 8000b0a: f004 fa8f bl 800502c
- 8000b0e: 68e0 ldr r0, [r4, #12]
- 8000b10: f004 fa84 bl 800501c
- 8000b14: 2103 movs r1, #3
- 8000b16: a801 add r0, sp, #4
- 8000b18: f004 fa8e bl 8005038
- 8000b1c: b002 add sp, #8
- 8000b1e: bd10 pop {r4, pc}
-
-08000b20 :
- 8000b20: b510 push {r4, lr}
- 8000b22: 4c06 ldr r4, [pc, #24] ; (8000b3c )
- 8000b24: 6823 ldr r3, [r4, #0]
- 8000b26: 2102 movs r1, #2
- 8000b28: 6998 ldr r0, [r3, #24]
- 8000b2a: f7ff ffda bl 8000ae2
- 8000b2e: 6823 ldr r3, [r4, #0]
- 8000b30: 4903 ldr r1, [pc, #12] ; (8000b40 )
- 8000b32: 6998 ldr r0, [r3, #24]
- 8000b34: e8bd 4010 ldmia.w sp!, {r4, lr}
- 8000b38: f7ff bfce b.w 8000ad8
- 8000b3c: 200000d4 ldrdcs r0, [r0], -r4
- 8000b40: 08006465 stmdaeq r0, {r0, r2, r5, r6, sl, sp, lr}
-
-08000b44 :
- 8000b44: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
- 8000b48: 4c15 ldr r4, [pc, #84] ; (8000ba0 )
- 8000b4a: 6823 ldr r3, [r4, #0]
- 8000b4c: b088 sub sp, #32
- 8000b4e: 6998 ldr r0, [r3, #24]
- 8000b50: 2102 movs r1, #2
- 8000b52: f7ff ffc6 bl 8000ae2
- 8000b56: 4b13 ldr r3, [pc, #76] ; (8000ba4 )
- 8000b58: 6826 ldr r6, [r4, #0]
- 8000b5a: 681d ldr r5, [r3, #0]
- 8000b5c: 696c ldr r4, [r5, #20]
- 8000b5e: 69e8 ldr r0, [r5, #28]
- 8000b60: b2e3 uxtb r3, r4
- 8000b62: 9307 str r3, [sp, #28]
- 8000b64: f000 f86c bl 8000c40 <__popcountsi2>
- 8000b68: 79ea ldrb r2, [r5, #7]
- 8000b6a: 9b07 ldr r3, [sp, #28]
- 8000b6c: f3c4 2707 ubfx r7, r4, #8, #8
- 8000b70: f3c4 4807 ubfx r8, r4, #16, #8
- 8000b74: 0e24 lsrs r4, r4, #24
- 8000b76: b98a cbnz r2, 8000b9c
- 8000b78: 796a ldrb r2, [r5, #5]
- 8000b7a: 2a00 cmp r2, #0
- 8000b7c: bf14 ite ne
- 8000b7e: 2244 movne r2, #68 ; 0x44
- 8000b80: 2253 moveq r2, #83 ; 0x53
- 8000b82: e9cd 0203 strd r0, r2, [sp, #12]
- 8000b86: e9cd 8401 strd r8, r4, [sp, #4]
- 8000b8a: 4a07 ldr r2, [pc, #28] ; (8000ba8 )
- 8000b8c: 9700 str r7, [sp, #0]
- 8000b8e: 2102 movs r1, #2
- 8000b90: 4630 mov r0, r6
- 8000b92: f7ff fe98 bl 80008c6
- 8000b96: b008 add sp, #32
- 8000b98: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
- 8000b9c: 225a movs r2, #90 ; 0x5a
- 8000b9e: e7f0 b.n 8000b82
- 8000ba0: 200000d4 ldrdcs r0, [r0], -r4
- 8000ba4: 20002f10 andcs r2, r0, r0, lsl pc
- 8000ba8: 08006474 stmdaeq r0, {r2, r4, r5, r6, sl, sp, lr}
-
-08000bac :
- 8000bac: b510 push {r4, lr}
- 8000bae: 4c06 ldr r4, [pc, #24] ; (8000bc8 )
- 8000bb0: 6823 ldr r3, [r4, #0]
- 8000bb2: 2102 movs r1, #2
- 8000bb4: 6998 ldr r0, [r3, #24]
- 8000bb6: f7ff ff94 bl 8000ae2
- 8000bba: 6823 ldr r3, [r4, #0]
- 8000bbc: 4903 ldr r1, [pc, #12] ; (8000bcc )
- 8000bbe: 6998 ldr r0, [r3, #24]
- 8000bc0: e8bd 4010 ldmia.w sp!, {r4, lr}
- 8000bc4: f7ff bf88 b.w 8000ad8
- 8000bc8: 200000d4 ldrdcs r0, [r0], -r4
- 8000bcc: 08006486 stmdaeq r0, {r1, r2, r7, sl, sp, lr}
-
-08000bd0 :
- 8000bd0: b538 push {r3, r4, r5, lr}
- 8000bd2: 4c16 ldr r4, [pc, #88] ; (8000c2c )
- 8000bd4: 6823 ldr r3, [r4, #0]
- 8000bd6: 460d mov r5, r1
- 8000bd8: 6998 ldr r0, [r3, #24]
- 8000bda: 2102 movs r1, #2
- 8000bdc: f7ff ff81 bl 8000ae2
- 8000be0: 1e69 subs r1, r5, #1
- 8000be2: 2903 cmp r1, #3
- 8000be4: d815 bhi.n 8000c12
- 8000be6: e8df f001 tbb [pc, r1]
- 8000bea: 18150a02 ldmdane r5, {r1, r9, fp}
- 8000bee: 6823 ldr r3, [r4, #0]
- 8000bf0: 490f ldr r1, [pc, #60] ; (8000c30 )
- 8000bf2: 6998 ldr r0, [r3, #24]
- 8000bf4: f7ff ff70 bl 8000ad8
- 8000bf8: f44f 41b6 mov.w r1, #23296 ; 0x5b00
- 8000bfc: e006 b.n 8000c0c
- 8000bfe: 6823 ldr r3, [r4, #0]
- 8000c00: 490c ldr r1, [pc, #48] ; (8000c34 )
- 8000c02: 6998 ldr r0, [r3, #24]
- 8000c04: f7ff ff68 bl 8000ad8
- 8000c08: f248 0180 movw r1, #32896 ; 0x8080
- 8000c0c: 6820 ldr r0, [r4, #0]
- 8000c0e: f7ff ff6d bl 8000aec
- 8000c12: bd38 pop {r3, r4, r5, pc}
- 8000c14: 6823 ldr r3, [r4, #0]
- 8000c16: 4908 ldr r1, [pc, #32] ; (8000c38 )
- 8000c18: e7eb b.n 8000bf2
- 8000c1a: 6823 ldr r3, [r4, #0]
- 8000c1c: 4907 ldr r1, [pc, #28] ; (8000c3c )
- 8000c1e: 6998 ldr r0, [r3, #24]
- 8000c20: f7ff ff5a bl 8000ad8
- 8000c24: f645 3179 movw r1, #23417 ; 0x5b79
- 8000c28: e7f0 b.n 8000c0c
- 8000c2a: bf00 nop
- 8000c2c: 200000d4 ldrdcs r0, [r0], -r4
- 8000c30: 08006498 stmdaeq r0, {r3, r4, r7, sl, sp, lr}
- 8000c34: 080064a6 stmdaeq r0, {r1, r2, r5, r7, sl, sp, lr}
- 8000c38: 080064ad stmdaeq r0, {r0, r2, r3, r5, r7, sl, sp, lr}
- 8000c3c: 080064bb stmdaeq r0, {r0, r1, r3, r4, r5, r7, sl, sp, lr}
-
-08000c40 <__popcountsi2>:
- 8000c40: 0843 lsrs r3, r0, #1
- 8000c42: f003 3355 and.w r3, r3, #1431655765 ; 0x55555555
- 8000c46: 1ac0 subs r0, r0, r3
- 8000c48: 0883 lsrs r3, r0, #2
- 8000c4a: f003 3333 and.w r3, r3, #858993459 ; 0x33333333
- 8000c4e: f000 3033 and.w r0, r0, #858993459 ; 0x33333333
- 8000c52: 4418 add r0, r3
- 8000c54: eb00 1010 add.w r0, r0, r0, lsr #4
- 8000c58: f000 300f and.w r0, r0, #252645135 ; 0xf0f0f0f
- 8000c5c: eb00 2000 add.w r0, r0, r0, lsl #8
- 8000c60: eb00 4000 add.w r0, r0, r0, lsl #16
- 8000c64: 0e00 lsrs r0, r0, #24
- 8000c66: 4770 bx lr
-
-08000c68 <_itostr>:
- 8000c68: b5f0 push {r4, r5, r6, r7, lr}
- 8000c6a: 0fc7 lsrs r7, r0, #31
- 8000c6c: b091 sub sp, #68 ; 0x44
- 8000c6e: bf18 it ne
- 8000c70: 4240 negne r0, r0
- 8000c72: f10d 043f add.w r4, sp, #63 ; 0x3f
- 8000c76: b9c8 cbnz r0, 8000cac <_itostr+0x44>
- 8000c78: 2330 movs r3, #48 ; 0x30
- 8000c7a: f88d 303f strb.w r3, [sp, #63] ; 0x3f
- 8000c7e: f10d 033e add.w r3, sp, #62 ; 0x3e
- 8000c82: b132 cbz r2, 8000c92 <_itostr+0x2a>
- 8000c84: 4668 mov r0, sp
- 8000c86: 2530 movs r5, #48 ; 0x30
- 8000c88: 1ae6 subs r6, r4, r3
- 8000c8a: 4296 cmp r6, r2
- 8000c8c: da01 bge.n 8000c92 <_itostr+0x2a>
- 8000c8e: 4283 cmp r3, r0
- 8000c90: d81c bhi.n 8000ccc <_itostr+0x64>
- 8000c92: b117 cbz r7, 8000c9a <_itostr+0x32>
- 8000c94: 222d movs r2, #45 ; 0x2d
- 8000c96: f803 2901 strb.w r2, [r3], #-1
- 8000c9a: 3301 adds r3, #1
- 8000c9c: 1ae0 subs r0, r4, r3
- 8000c9e: 3901 subs r1, #1
- 8000ca0: aa10 add r2, sp, #64 ; 0x40
- 8000ca2: 4293 cmp r3, r2
- 8000ca4: d315 bcc.n 8000cd2 <_itostr+0x6a>
- 8000ca6: 3001 adds r0, #1
- 8000ca8: b011 add sp, #68 ; 0x44
- 8000caa: bdf0 pop {r4, r5, r6, r7, pc}
- 8000cac: 4623 mov r3, r4
- 8000cae: 250a movs r5, #10
- 8000cb0: 46ec mov ip, sp
- 8000cb2: fb90 f6f5 sdiv r6, r0, r5
- 8000cb6: fb05 0016 mls r0, r5, r6, r0
- 8000cba: 3030 adds r0, #48 ; 0x30
- 8000cbc: f803 0901 strb.w r0, [r3], #-1
- 8000cc0: 4630 mov r0, r6
- 8000cc2: 2e00 cmp r6, #0
- 8000cc4: d0dd beq.n 8000c82 <_itostr+0x1a>
- 8000cc6: 4563 cmp r3, ip
- 8000cc8: d1f3 bne.n 8000cb2 <_itostr+0x4a>
- 8000cca: e7da b.n 8000c82 <_itostr+0x1a>
- 8000ccc: f803 5901 strb.w r5, [r3], #-1
- 8000cd0: e7da b.n 8000c88 <_itostr+0x20>
- 8000cd2: f813 2b01 ldrb.w r2, [r3], #1
- 8000cd6: f801 2f01 strb.w r2, [r1, #1]!
- 8000cda: e7e1 b.n 8000ca0 <_itostr+0x38>
-
-08000cdc <_xputch>:
- 8000cdc: 4603 mov r3, r0
- 8000cde: b410 push {r4}
- 8000ce0: 4c09 ldr r4, [pc, #36] ; (8000d08 <_xputch+0x2c>)
- 8000ce2: 68da ldr r2, [r3, #12]
- 8000ce4: 4608 mov r0, r1
- 8000ce6: 6821 ldr r1, [r4, #0]
- 8000ce8: 3201 adds r2, #1
- 8000cea: 60da str r2, [r3, #12]
- 8000cec: b141 cbz r1, 8000d00 <_xputch+0x24>
- 8000cee: 691b ldr r3, [r3, #16]
- 8000cf0: 429a cmp r2, r3
- 8000cf2: da02 bge.n 8000cfa <_xputch+0x1e>
- 8000cf4: 1c4b adds r3, r1, #1
- 8000cf6: 6023 str r3, [r4, #0]
- 8000cf8: 7008 strb r0, [r1, #0]
- 8000cfa: f85d 4b04 ldr.w r4, [sp], #4
- 8000cfe: 4770 bx lr
- 8000d00: f85d 4b04 ldr.w r4, [sp], #4
- 8000d04: f003 b8a1 b.w 8003e4a
- 8000d08: 200000d0 ldrdcs r0, [r0], -r0 ;