# HG changeset patch # User Mychaela Falconia # Date 1673677076 0 # Node ID 81cda18b04877fe5a04d8af9a7b2ffd27fa178ba # Parent e5e5ed527cc17cc6535ca4b7a944d685733547ec compal: move all bootloader analysis work into boot subdir diff -r e5e5ed527cc1 -r 81cda18b0487 .hgignore --- a/.hgignore Sat Jan 14 06:09:25 2023 +0000 +++ b/.hgignore Sat Jan 14 06:17:56 2023 +0000 @@ -11,15 +11,15 @@ ^bootrom-old/bootrom-old\.dis32 ^bootrom-old/bootrom-old\.hex -^compal/c118-dfboot\. -^compal/c118-newboot\. -^compal/c123-boot\. -^compal/c123-newboot\. -^compal/c139-boot\. -^compal/c139-newboot\. -^compal/c139-tfboot\. -^compal/c140-boot\. -^compal/c156-boot\. +^compal/boot/c118-dfboot\. +^compal/boot/c118-newboot\. +^compal/boot/c123-boot\. +^compal/boot/c123-newboot\. +^compal/boot/c139-boot\. +^compal/boot/c139-newboot\. +^compal/boot/c139-tfboot\. +^compal/boot/c140-boot\. +^compal/boot/c156-boot\. ^compal/melody-extr/extr-onemel$ ^compal/melody-extr/extr-table$ ^compal/osmovoodoo diff -r e5e5ed527cc1 -r 81cda18b0487 compal/Makefile --- a/compal/Makefile Sat Jan 14 06:09:25 2023 +0000 +++ b/compal/Makefile Sat Jan 14 06:17:56 2023 +0000 @@ -1,108 +1,7 @@ -C118= c118-3.0.81.E-boot.bin -C118DF= c118-2.2.84.N-boot.bin -C123= c123-boot.bin -C123NEW=c123-newboot.bin -C139= c139-boot.90.04.bin -C139NEW=c139-boot1004.bin -C139TF= c139-tfboot.bin -C140= c140-boot.bin -C156= c156-boot.90.05.bin -GEN= c118-newboot.dis16 c118-newboot.dis32 c118-newboot.hex \ - c118-dfboot.dis16 c118-dfboot.dis32 c118-dfboot.hex \ - c123-boot.dis16 c123-boot.dis32 c123-boot.hex \ - c123-newboot.dis16 c123-newboot.dis32 c123-newboot.hex \ - c139-boot.dis16 c139-boot.dis32 c139-boot.hex \ - c139-newboot.dis16 c139-newboot.dis32 c139-newboot.hex \ - c139-tfboot.dis16 c139-tfboot.dis32 c139-tfboot.hex \ - c140-boot.dis16 c140-boot.dis32 c140-boot.hex \ - c156-boot.dis16 c156-boot.dis32 c156-boot.hex \ - osmovoodoo osmovoodoo.bin -ARMDIS= ../arm7dis/armdis -THUMBDIS=../arm7dis/thumbdis +GEN= osmovoodoo osmovoodoo.bin all: ${GEN} -c118-dfboot.dis16: ${C118DF} ${THUMBDIS} - ${THUMBDIS} ${C118DF} > $@ - -c118-dfboot.dis32: ${C118DF} ${ARMDIS} - ${ARMDIS} ${C118DF} > $@ - -c118-dfboot.hex: ${C118DF} - hd ${C118DF} > $@ - -c118-newboot.dis16: ${C118} ${THUMBDIS} - ${THUMBDIS} ${C118} > $@ - -c118-newboot.dis32: ${C118} ${ARMDIS} - ${ARMDIS} ${C118} > $@ - -c118-newboot.hex: ${C118} - hd ${C118} > $@ - -c123-boot.dis16: ${C123} ${THUMBDIS} - ${THUMBDIS} ${C123} > $@ - -c123-boot.dis32: ${C123} ${ARMDIS} - ${ARMDIS} ${C123} > $@ - -c123-boot.hex: ${C123} - hd ${C123} > $@ - -c123-newboot.dis16: ${C123NEW} ${THUMBDIS} - ${THUMBDIS} ${C123NEW} > $@ - -c123-newboot.dis32: ${C123NEW} ${ARMDIS} - ${ARMDIS} ${C123NEW} > $@ - -c123-newboot.hex: ${C123NEW} - hd ${C123NEW} > $@ - -c139-boot.dis16: ${C139} ${THUMBDIS} - ${THUMBDIS} ${C139} > $@ - -c139-boot.dis32: ${C139} ${ARMDIS} - ${ARMDIS} ${C139} > $@ - -c139-boot.hex: ${C139} - hd ${C139} > $@ - -c139-newboot.dis16: ${C139NEW} ${THUMBDIS} - ${THUMBDIS} ${C139NEW} > $@ - -c139-newboot.dis32: ${C139NEW} ${ARMDIS} - ${ARMDIS} ${C139NEW} > $@ - -c139-newboot.hex: ${C139NEW} - hd ${C139NEW} > $@ - -c139-tfboot.dis16: ${C139TF} ${THUMBDIS} - ${THUMBDIS} ${C139TF} > $@ - -c139-tfboot.dis32: ${C139TF} ${ARMDIS} - ${ARMDIS} ${C139TF} > $@ - -c139-tfboot.hex: ${C139TF} - hd ${C139TF} > $@ - -c140-boot.dis16: ${C140} ${THUMBDIS} - ${THUMBDIS} ${C140} > $@ - -c140-boot.dis32: ${C140} ${ARMDIS} - ${ARMDIS} ${C140} > $@ - -c140-boot.hex: ${C140} - hd ${C140} > $@ - -c156-boot.dis16: ${C156} ${THUMBDIS} - ${THUMBDIS} ${C156} > $@ - -c156-boot.dis32: ${C156} ${ARMDIS} - ${ARMDIS} ${C156} > $@ - -c156-boot.hex: ${C156} - hd ${C156} > $@ - osmovoodoo: osmovoodoo.c gcc -O2 -o $@ $@.c diff -r e5e5ed527cc1 -r 81cda18b0487 compal/boot/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/compal/boot/Makefile Sat Jan 14 06:17:56 2023 +0000 @@ -0,0 +1,106 @@ +C118= c118-3.0.81.E-boot.bin +C118DF= c118-2.2.84.N-boot.bin +C123= c123-boot.bin +C123NEW=c123-newboot.bin +C139= c139-boot.90.04.bin +C139NEW=c139-boot1004.bin +C139TF= c139-tfboot.bin +C140= c140-boot.bin +C156= c156-boot.90.05.bin +GEN= c118-newboot.dis16 c118-newboot.dis32 c118-newboot.hex \ + c118-dfboot.dis16 c118-dfboot.dis32 c118-dfboot.hex \ + c123-boot.dis16 c123-boot.dis32 c123-boot.hex \ + c123-newboot.dis16 c123-newboot.dis32 c123-newboot.hex \ + c139-boot.dis16 c139-boot.dis32 c139-boot.hex \ + c139-newboot.dis16 c139-newboot.dis32 c139-newboot.hex \ + c139-tfboot.dis16 c139-tfboot.dis32 c139-tfboot.hex \ + c140-boot.dis16 c140-boot.dis32 c140-boot.hex \ + c156-boot.dis16 c156-boot.dis32 c156-boot.hex +ARMDIS= ../../arm7dis/armdis +THUMBDIS=../../arm7dis/thumbdis + +all: ${GEN} + +c118-dfboot.dis16: ${C118DF} ${THUMBDIS} + ${THUMBDIS} ${C118DF} > $@ + +c118-dfboot.dis32: ${C118DF} ${ARMDIS} + ${ARMDIS} ${C118DF} > $@ + +c118-dfboot.hex: ${C118DF} + hd ${C118DF} > $@ + +c118-newboot.dis16: ${C118} ${THUMBDIS} + ${THUMBDIS} ${C118} > $@ + +c118-newboot.dis32: ${C118} ${ARMDIS} + ${ARMDIS} ${C118} > $@ + +c118-newboot.hex: ${C118} + hd ${C118} > $@ + +c123-boot.dis16: ${C123} ${THUMBDIS} + ${THUMBDIS} ${C123} > $@ + +c123-boot.dis32: ${C123} ${ARMDIS} + ${ARMDIS} ${C123} > $@ + +c123-boot.hex: ${C123} + hd ${C123} > $@ + +c123-newboot.dis16: ${C123NEW} ${THUMBDIS} + ${THUMBDIS} ${C123NEW} > $@ + +c123-newboot.dis32: ${C123NEW} ${ARMDIS} + ${ARMDIS} ${C123NEW} > $@ + +c123-newboot.hex: ${C123NEW} + hd ${C123NEW} > $@ + +c139-boot.dis16: ${C139} ${THUMBDIS} + ${THUMBDIS} ${C139} > $@ + +c139-boot.dis32: ${C139} ${ARMDIS} + ${ARMDIS} ${C139} > $@ + +c139-boot.hex: ${C139} + hd ${C139} > $@ + +c139-newboot.dis16: ${C139NEW} ${THUMBDIS} + ${THUMBDIS} ${C139NEW} > $@ + +c139-newboot.dis32: ${C139NEW} ${ARMDIS} + ${ARMDIS} ${C139NEW} > $@ + +c139-newboot.hex: ${C139NEW} + hd ${C139NEW} > $@ + +c139-tfboot.dis16: ${C139TF} ${THUMBDIS} + ${THUMBDIS} ${C139TF} > $@ + +c139-tfboot.dis32: ${C139TF} ${ARMDIS} + ${ARMDIS} ${C139TF} > $@ + +c139-tfboot.hex: ${C139TF} + hd ${C139TF} > $@ + +c140-boot.dis16: ${C140} ${THUMBDIS} + ${THUMBDIS} ${C140} > $@ + +c140-boot.dis32: ${C140} ${ARMDIS} + ${ARMDIS} ${C140} > $@ + +c140-boot.hex: ${C140} + hd ${C140} > $@ + +c156-boot.dis16: ${C156} ${THUMBDIS} + ${THUMBDIS} ${C156} > $@ + +c156-boot.dis32: ${C156} ${ARMDIS} + ${ARMDIS} ${C156} > $@ + +c156-boot.hex: ${C156} + hd ${C156} > $@ + +clean: + rm -f ${GEN} diff -r e5e5ed527cc1 -r 81cda18b0487 compal/boot/c118-2.2.84.N-boot.bin Binary file compal/boot/c118-2.2.84.N-boot.bin has changed diff -r e5e5ed527cc1 -r 81cda18b0487 compal/boot/c118-3.0.81.E-boot.bin Binary file compal/boot/c118-3.0.81.E-boot.bin has changed diff -r e5e5ed527cc1 -r 81cda18b0487 compal/boot/c118-newboot.disasm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/compal/boot/c118-newboot.disasm Sat Jan 14 06:17:56 2023 +0000 @@ -0,0 +1,2626 @@ +Everything up to 0x958 is the same as in the C123 and C139 versions + +RESET entry and exception vectors: + 0: ea000225 b 0x89c + 4: ea000825 b 0x20a0 + 8: ea000825 b 0x20a4 + c: ea000825 b 0x20a8 + 10: ea000825 b 0x20ac + 14: ea000825 b 0x20b0 + 18: ea000825 b 0x20b4 + +<20-7FF: all FFs> + +00000800: 42 4F 4F 54 2E 39 30 2E 30 34 00 00 00 00 00 00 BOOT.90.04...... +00000810: 31 30 30 33 01 01 00 00 FF FF FF FF FF FF FF FF 1003............ +00000820: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ + + 830: 00000006 + 834: 00000000 + 838: 00000000 + 83c: 00000048 + 840: 00000044 + 844: 00000052 + 848: 0000001b + 84c: 00000005 + 850: 00000000 + 854: 00000000 + 858: 00000000 + 85c: 00000000 + 860: 000000fa + 864: ffff5800 + 868: ffff5000 + 86c: fffffb00 + 870: 02a102a1 + 874: 028302a1 + 878: 00c00281 + 87c: 002a0040 + 880: 00000040 + 884: fffffd00 + 888: ffff9800 + 88c: fffffb10 + 890: ffffff08 + 894: 20061081 + 898: 00000800 + +; RESET entry point + 89c: e51f1020 ldr r1, =0xfffffd00 ; via 0x884 + 8a0: e1d120b2 ldrh r2, [r1, #2] + 8a4: e51f002c ldr r0, =0x40 ; via 0x880 + 8a8: e1800002 orr r0, r0, r2 + 8ac: e1c100b2 strh r0, [r1, #2] + 8b0: e51f1030 ldr r1, =0xffff9800 ; via 0x888 + 8b4: e15f22b6 ldrh r2, =0x2006 ; via 0x896 + 8b8: e1c120b0 strh r2, [r1] + 8bc: e5912000 ldr r2, [r1] + 8c0: e2022001 and r2, r2, #1 + 8c4: e3520001 cmp r2, #1 + 8c8: 0afffffb beq 0x8bc + 8cc: e51f1050 ldr r1, =0xfffffd00 ; via 0x884 + 8d0: e15f24b4 ldrh r2, =0x1081 ; via 0x894 + 8d4: e1c120b0 strh r2, [r1] + 8d8: e51f1054 ldr r1, =0xfffffb10 ; via 0x88c + 8dc: e15f24bc ldrh r2, =0x800 ; via 0x898 + 8e0: e1d100b0 ldrh r0, [r1] + 8e4: e1800002 orr r0, r0, r2 + 8e8: e1c100b0 strh r0, [r1] + 8ec: e51f1064 ldr r1, =0xffffff08 ; via 0x890 + 8f0: e15f25be ldrh r2, =0x0 ; via 0x89a + 8f4: e1c120b0 strh r2, [r1] + 8f8: e51f1094 ldr r1, =0xfffffb00 ; via 0x86c + 8fc: e15f29b4 ldrh r2, =0x2a1 ; via 0x870 + 900: e1c120b0 strh r2, [r1] + 904: e15f29ba ldrh r2, =0x2a1 ; via 0x872 + 908: e1c120b2 strh r2, [r1, #2] + 90c: e15f2ab0 ldrh r2, =0x2a1 ; via 0x874 + 910: e1c120b4 strh r2, [r1, #4] + 914: e15f2ab6 ldrh r2, =0x283 ; via 0x876 + 918: e1c120b6 strh r2, [r1, #6] + 91c: e15f2abc ldrh r2, =0x281 ; via 0x878 + 920: e1c120ba strh r2, [r1, #10] ; 0xa + 924: e15f2bb2 ldrh r2, =0xc0 ; via 0x87a + 928: e1c120bc strh r2, [r1, #12] ; 0xc + 92c: e15f2bb8 ldrh r2, =0x40 ; via 0x87c + 930: e1c120b8 strh r2, [r1, #8] + 934: e15f2bbe ldrh r2, =0x2a ; via 0x87e + 938: e1c120be strh r2, [r1, #14] ; 0xe + 93c: e59f0020 ldr r0, =0x83e37c ; via 0x964 + 940: e3a01b01 mov r1, #1024 ; 0x400 + 944: e2411004 sub r1, r1, #4 + 948: e0802001 add r2, r0, r1 + 94c: e3c22003 bic r2, r2, #3 + 950: e1a0d002 mov sp, r2 + 954: e92d100f stmdb sp!, {r0, r1, r2, r3, r12} + 958: eb000522 bl 0x1de8 + 95c: e8bd100f ldmia sp!, {r0, r1, r2, r3, r12} + 960: ea0005e4 b 0x20f8 + + 964: 0083e37c + + 968: 4961 ldr r1, =0xfffffa08 ; via 0xaf0 + 96a: 4862 ldr r0, =0xffff ; via 0xaf4 + 96c: 8008 strh r0, [r1, #0] + 96e: 4862 ldr r0, =0xfffffa0a ; via 0xaf8 + 970: 211f mov r1, #31 ; 0x1f + 972: 8001 strh r1, [r0, #0] + 974: 4861 ldr r0, =0xfffff804 ; via 0xafc + 976: 21f5 mov r1, #245 ; 0xf5 + 978: 8001 strh r1, [r0, #0] + 97a: 21a0 mov r1, #160 ; 0xa0 + 97c: 8001 strh r1, [r0, #0] + 97e: 4860 ldr r0, =0xffff9800 ; via 0xb00 + 980: 4960 ldr r1, =0x2002 ; via 0xb04 + 982: 8001 strh r1, [r0, #0] + 984: 485e ldr r0, =0xffff9800 ; via 0xb00 + 986: 8800 ldrh r0, [r0, #0] + 988: 0840 lsr r0, r0, #1 + 98a: d2fb bcs 0x984 + 98c: 495e ldr r1, =0xfffffd00 ; via 0xb08 + 98e: 485f ldr r0, =0x1001 ; via 0xb0c + 990: 8008 strh r0, [r1, #0] + 992: 46f7 mov pc, lr + 994: b500 push {lr} + 996: b0ff sub sp, #508 ; 0x1fc + 998: b0ca sub sp, #296 ; 0x128 + 99a: 2000 mov r0, #0 + 99c: 9001 str r0, [sp, #4] + 99e: 9801 ldr r0, [sp, #4] + 9a0: 2800 cmp r0, #0 + 9a2: d14e bne 0xa42 + 9a4: a846 add r0, sp, #280 ; 0x118 + 9a6: 2100 mov r1, #0 + 9a8: f001 f84a bl 0x1a40 + 9ac: a9c8 add r1, sp, #800 ; 0x320 + 9ae: 7008 strb r0, [r1, #0] + 9b0: a846 add r0, sp, #280 ; 0x118 + 9b2: a902 add r1, sp, #8 + 9b4: f000 fb08 bl 0xfc8 + 9b8: 9000 str r0, [sp, #0] + 9ba: 9800 ldr r0, [sp, #0] + 9bc: 2800 cmp r0, #0 + 9be: d01b beq 0x9f8 + 9c0: a924 add r1, sp, #144 ; 0x90 + 9c2: 4668 mov r0, sp + 9c4: 7a00 ldrb r0, [r0, #8] + 9c6: 7008 strb r0, [r1, #0] + 9c8: 2191 mov r1, #145 ; 0x91 + 9ca: 466a mov r2, sp + 9cc: 4668 mov r0, sp + 9ce: 7800 ldrb r0, [r0, #0] + 9d0: 5488 strb r0, [r1, r2] + 9d2: e01b b 0xa0c + 9d4: a802 add r0, sp, #8 + 9d6: a924 add r1, sp, #144 ; 0x90 + 9d8: f000 fde4 bl 0x15a4 + 9dc: e016 b 0xa0c + 9de: a802 add r0, sp, #8 + 9e0: a924 add r1, sp, #144 ; 0x90 + 9e2: aac8 add r2, sp, #800 ; 0x320 + 9e4: 7812 ldrb r2, [r2, #0] + 9e6: f000 fdf1 bl 0x15cc + 9ea: e00f b 0xa0c + 9ec: a802 add r0, sp, #8 + 9ee: a924 add r1, sp, #144 ; 0x90 + 9f0: f000 fe23 bl 0x163a + 9f4: 90c7 str r0, [sp, #796] ; 0x31c + 9f6: e009 b 0xa0c + 9f8: 4668 mov r0, sp + 9fa: 7a00 ldrb r0, [r0, #8] + 9fc: 2800 cmp r0, #0 + 9fe: d0e9 beq 0x9d4 + a00: 3809 sub r0, #9 + a02: 2800 cmp r0, #0 + a04: d0eb beq 0x9de + a06: 3801 sub r0, #1 + a08: 2800 cmp r0, #0 + a0a: d0ef beq 0x9ec + a0c: a824 add r0, sp, #144 ; 0x90 + a0e: a986 add r1, sp, #536 ; 0x218 + a10: f000 fbbd bl 0x118e + a14: 2800 cmp r0, #0 + a16: d111 bne 0xa3c + a18: a886 add r0, sp, #536 ; 0x218 + a1a: a9c8 add r1, sp, #800 ; 0x320 + a1c: 7809 ldrb r1, [r1, #0] + a1e: f000 ffe4 bl 0x19ea + a22: 2800 cmp r0, #0 + a24: d00a beq 0xa3c + a26: 4668 mov r0, sp + a28: 7a00 ldrb r0, [r0, #8] + a2a: 280a cmp r0, #10 ; 0xa + a2c: d106 bne 0xa3c + a2e: a8c8 add r0, sp, #800 ; 0x320 + a30: 7800 ldrb r0, [r0, #0] + a32: f001 f935 bl 0x1ca0 + a36: 98c7 ldr r0, [sp, #796] ; 0x31c + a38: f000 fac4 bl 0xfc4 + a3c: 9801 ldr r0, [sp, #4] + a3e: 2800 cmp r0, #0 + a40: d0b0 beq 0x9a4 + a42: b07f add sp, #508 ; 0x1fc + a44: b04a add sp, #296 ; 0x128 + a46: bd00 pop {pc} + a48: b500 push {lr} + a4a: b0ff sub sp, #508 ; 0x1fc + a4c: b0c8 sub sp, #288 ; 0x120 + a4e: 2000 mov r0, #0 + a50: 9000 str r0, [sp, #0] + a52: a846 add r0, sp, #280 ; 0x118 + a54: 2101 mov r1, #1 + a56: f000 fff3 bl 0x1a40 + a5a: a9c6 add r1, sp, #792 ; 0x318 + a5c: 7008 strb r0, [r1, #0] + a5e: a8c6 add r0, sp, #792 ; 0x318 + a60: 7800 ldrb r0, [r0, #0] + a62: 28ff cmp r0, #255 ; 0xff + a64: d031 beq 0xaca + a66: a846 add r0, sp, #280 ; 0x118 + a68: a902 add r1, sp, #8 + a6a: f000 faad bl 0xfc8 + a6e: 9001 str r0, [sp, #4] + a70: 9801 ldr r0, [sp, #4] + a72: 2800 cmp r0, #0 + a74: d014 beq 0xaa0 + a76: a924 add r1, sp, #144 ; 0x90 + a78: 4668 mov r0, sp + a7a: 7a00 ldrb r0, [r0, #8] + a7c: 7008 strb r0, [r1, #0] + a7e: 2291 mov r2, #145 ; 0x91 + a80: 4668 mov r0, sp + a82: 4669 mov r1, sp + a84: 7909 ldrb r1, [r1, #4] + a86: 5411 strb r1, [r2, r0] + a88: a824 add r0, sp, #144 ; 0x90 + a8a: a986 add r1, sp, #536 ; 0x218 + a8c: f000 fb7f bl 0x118e + a90: 2800 cmp r0, #0 + a92: d11a bne 0xaca + a94: a886 add r0, sp, #536 ; 0x218 + a96: a9c6 add r1, sp, #792 ; 0x318 + a98: 7809 ldrb r1, [r1, #0] + a9a: f000 ffa6 bl 0x19ea + a9e: e014 b 0xaca + aa0: 4668 mov r0, sp + aa2: 7a00 ldrb r0, [r0, #8] + aa4: 2800 cmp r0, #0 + aa6: d110 bne 0xaca + aa8: a802 add r0, sp, #8 + aaa: a924 add r1, sp, #144 ; 0x90 + aac: f000 fd7a bl 0x15a4 + ab0: a824 add r0, sp, #144 ; 0x90 + ab2: a986 add r1, sp, #536 ; 0x218 + ab4: f000 fb6b bl 0x118e + ab8: 2800 cmp r0, #0 + aba: d104 bne 0xac6 + abc: a886 add r0, sp, #536 ; 0x218 + abe: a9c6 add r1, sp, #792 ; 0x318 + ac0: 7809 ldrb r1, [r1, #0] + ac2: f000 ff92 bl 0x19ea + ac6: 2001 mov r0, #1 + ac8: 9000 str r0, [sp, #0] + aca: 9800 ldr r0, [sp, #0] + acc: b07f add sp, #508 ; 0x1fc + ace: b048 add sp, #288 ; 0x120 + ad0: bd00 pop {pc} + + ad2: b500 push {lr} + ad4: b082 sub sp, #8 + ad6: f7ff ff47 bl 0x968 + ada: f001 f889 bl 0x1bf0 + ade: f000 fd4f bl 0x1580 + ae2: f000 f81f bl 0xb24 + ae6: f000 f945 bl 0xd74 + aea: b002 add sp, #8 + aec: bd00 pop {pc} + aee: 46c0 nop (mov r8, r8) + + af0: fffffa08 + af4: 0000ffff + af8: fffffa0a + afc: fffff804 + b00: ffff9800 + b04: 00002002 + b08: fffffd00 + b0c: 00001001 + + b10: e3a0d502 mov sp, #8388608 ; 0x800000 + b14: e28dd802 add sp, sp, #131072 ; 0x20000 + b18: e28fe005 add lr, pc, #5 + b1c: e12fff1e bx lr + b20: e1a00000 mov r0, r0 + + b24: b500 push {lr} + b26: b082 sub sp, #8 + b28: 49ea ldr r1, =0x83ff00 ; via 0xed4 + b2a: 48eb ldr r0, =0xffff5800 ; via 0xed8 + b2c: 6008 str r0, [r1, #0] + b2e: 2000 mov r0, #0 + b30: 2102 mov r1, #2 + b32: f000 f9d3 bl 0xedc + b36: 2000 mov r0, #0 + b38: 9000 str r0, [sp, #0] + b3a: 9900 ldr r1, [sp, #0] + b3c: 2005 mov r0, #5 + b3e: 0300 lsl r0, r0, #12 + b40: 4281 cmp r1, r0 + b42: d207 bcs 0xb54 + b44: 9800 ldr r0, [sp, #0] + b46: 3001 add r0, #1 + b48: 9000 str r0, [sp, #0] + b4a: 9900 ldr r1, [sp, #0] + b4c: 2005 mov r0, #5 + b4e: 0300 lsl r0, r0, #12 + b50: 4281 cmp r1, r0 + b52: d3f7 bcc 0xb44 + b54: f000 f82a bl 0xbac + b58: 2000 mov r0, #0 + b5a: 2107 mov r1, #7 + b5c: f000 f9be bl 0xedc + b60: 2000 mov r0, #0 + b62: 9000 str r0, [sp, #0] + b64: 9900 ldr r1, [sp, #0] + b66: 2005 mov r0, #5 + b68: 0300 lsl r0, r0, #12 + b6a: 4281 cmp r1, r0 + b6c: d207 bcs 0xb7e + b6e: 9800 ldr r0, [sp, #0] + b70: 3001 add r0, #1 + b72: 9000 str r0, [sp, #0] + b74: 9900 ldr r1, [sp, #0] + b76: 2005 mov r0, #5 + b78: 0300 lsl r0, r0, #12 + b7a: 4281 cmp r1, r0 + b7c: d3f7 bcc 0xb6e + b7e: f000 f815 bl 0xbac + b82: 2000 mov r0, #0 + b84: 9001 str r0, [sp, #4] + b86: 9000 str r0, [sp, #0] + b88: 9900 ldr r1, [sp, #0] + b8a: 2005 mov r0, #5 + b8c: 0400 lsl r0, r0, #16 + b8e: 4281 cmp r1, r0 + b90: d20a bcs 0xba8 + b92: 9801 ldr r0, [sp, #4] + b94: 3001 add r0, #1 + b96: 9001 str r0, [sp, #4] + b98: 9800 ldr r0, [sp, #0] + b9a: 3001 add r0, #1 + b9c: 9000 str r0, [sp, #0] + b9e: 9900 ldr r1, [sp, #0] + ba0: 2005 mov r0, #5 + ba2: 0400 lsl r0, r0, #16 + ba4: 4281 cmp r1, r0 + ba6: d3f4 bcc 0xb92 + ba8: b002 add sp, #8 + baa: bd00 pop {pc} + + bac: b500 push {lr} + bae: b089 sub sp, #36 ; 0x24 + bb0: 48f3 ldr r0, =0x800100 ; via 0xf80 + bb2: 9005 str r0, [sp, #20] ; 0x14 + bb4: 48f3 ldr r0, =0x2060 ; via 0xf84 + bb6: 9008 str r0, [sp, #32] ; 0x20 + bb8: 9808 ldr r0, [sp, #32] ; 0x20 + bba: 6800 ldr r0, [r0, #0] + bbc: 49f2 ldr r1, =0xdddddddd ; via 0xf88 + bbe: 4288 cmp r0, r1 + bc0: d000 beq 0xbc4 + bc2: e0d5 b 0xd70 + bc4: 201b mov r0, #27 ; 0x1b + bc6: f000 f932 bl 0xe2e + bca: 20f6 mov r0, #246 ; 0xf6 + bcc: f000 f92f bl 0xe2e + bd0: 2002 mov r0, #2 + bd2: f000 f92c bl 0xe2e + bd6: 2000 mov r0, #0 + bd8: f000 f929 bl 0xe2e + bdc: 2041 mov r0, #65 ; 0x41 + bde: f000 f926 bl 0xe2e + be2: 2001 mov r0, #1 + be4: f000 f923 bl 0xe2e + be8: 2040 mov r0, #64 ; 0x40 + bea: f000 f920 bl 0xe2e + bee: 2001 mov r0, #1 + bf0: 0300 lsl r0, r0, #12 + bf2: f000 f934 bl 0xe5e + bf6: 281b cmp r0, #27 ; 0x1b + bf8: d000 beq 0xbfc + bfa: e0b9 b 0xd70 + bfc: 2001 mov r0, #1 + bfe: 0300 lsl r0, r0, #12 + c00: f000 f92d bl 0xe5e + c04: 28f6 cmp r0, #246 ; 0xf6 + c06: d000 beq 0xc0a + c08: e0b2 b 0xd70 + c0a: 2001 mov r0, #1 + c0c: 0300 lsl r0, r0, #12 + c0e: f000 f926 bl 0xe5e + c12: 2802 cmp r0, #2 + c14: d000 beq 0xc18 + c16: e0ab b 0xd70 + c18: 2001 mov r0, #1 + c1a: 0300 lsl r0, r0, #12 + c1c: f000 f91f bl 0xe5e + c20: 2800 cmp r0, #0 + c22: d000 beq 0xc26 + c24: e0a4 b 0xd70 + c26: 2001 mov r0, #1 + c28: 0300 lsl r0, r0, #12 + c2a: f000 f918 bl 0xe5e + c2e: 2852 cmp r0, #82 ; 0x52 + c30: d000 beq 0xc34 + c32: e09d b 0xd70 + c34: 2001 mov r0, #1 + c36: 0300 lsl r0, r0, #12 + c38: f000 f911 bl 0xe5e + c3c: 2801 cmp r0, #1 + c3e: d000 beq 0xc42 + c40: e096 b 0xd70 + c42: 2001 mov r0, #1 + c44: 0300 lsl r0, r0, #12 + c46: f000 f90a bl 0xe5e + c4a: 2853 cmp r0, #83 ; 0x53 + c4c: d000 beq 0xc50 + c4e: e08f b 0xd70 + c50: 201b mov r0, #27 ; 0x1b + c52: f000 f8ec bl 0xe2e + c56: 20f6 mov r0, #246 ; 0xf6 + c58: f000 f8e9 bl 0xe2e + c5c: 2002 mov r0, #2 + c5e: f000 f8e6 bl 0xe2e + c62: 2000 mov r0, #0 + c64: f000 f8e3 bl 0xe2e + c68: 2041 mov r0, #65 ; 0x41 + c6a: f000 f8e0 bl 0xe2e + c6e: 2002 mov r0, #2 + c70: f000 f8dd bl 0xe2e + c74: 2043 mov r0, #67 ; 0x43 + c76: f000 f8da bl 0xe2e + c7a: 2001 mov r0, #1 + c7c: 0300 lsl r0, r0, #12 + c7e: f000 f8ee bl 0xe5e + c82: 4669 mov r1, sp + c84: 7208 strb r0, [r1, #8] + c86: 2002 mov r0, #2 + c88: 7448 strb r0, [r1, #17] ; 0x11 + c8a: 2000 mov r0, #0 + c8c: 9000 str r0, [sp, #0] + c8e: 9800 ldr r0, [sp, #0] + c90: 2802 cmp r0, #2 + c92: d215 bcs 0xcc0 + c94: 2001 mov r0, #1 + c96: 0300 lsl r0, r0, #12 + c98: f000 f8e1 bl 0xe5e + c9c: 4669 mov r1, sp + c9e: 9a00 ldr r2, [sp, #0] + ca0: 1a89 sub r1, r1, r2 + ca2: 7348 strb r0, [r1, #13] ; 0xd + ca4: 4669 mov r1, sp + ca6: 9800 ldr r0, [sp, #0] + ca8: 1a08 sub r0, r1, r0 + caa: 7b40 ldrb r0, [r0, #13] ; 0xd + cac: 7c49 ldrb r1, [r1, #17] ; 0x11 + cae: 4048 eor r0, r1 + cb0: 4669 mov r1, sp + cb2: 7448 strb r0, [r1, #17] ; 0x11 + cb4: 9800 ldr r0, [sp, #0] + cb6: 3001 add r0, #1 + cb8: 9000 str r0, [sp, #0] + cba: 9800 ldr r0, [sp, #0] + cbc: 2802 cmp r0, #2 + cbe: d3e9 bcc 0xc94 + cc0: 4668 mov r0, sp + cc2: 8980 ldrh r0, [r0, #12] ; 0xc + cc4: 466a mov r2, sp + cc6: 1e41 sub r1, r0, #1 + cc8: 8191 strh r1, [r2, #12] ; 0xc + cca: 2800 cmp r0, #0 + ccc: d015 beq 0xcfa + cce: 2001 mov r0, #1 + cd0: 0300 lsl r0, r0, #12 + cd2: f000 f8c4 bl 0xe5e + cd6: 9905 ldr r1, [sp, #20] ; 0x14 + cd8: 7008 strb r0, [r1, #0] + cda: 9805 ldr r0, [sp, #20] ; 0x14 + cdc: 7800 ldrb r0, [r0, #0] + cde: 4669 mov r1, sp + ce0: 7c49 ldrb r1, [r1, #17] ; 0x11 + ce2: 4048 eor r0, r1 + ce4: 4669 mov r1, sp + ce6: 7448 strb r0, [r1, #17] ; 0x11 + ce8: 9805 ldr r0, [sp, #20] ; 0x14 + cea: 3001 add r0, #1 + cec: 9005 str r0, [sp, #20] ; 0x14 + cee: 4668 mov r0, sp + cf0: 8982 ldrh r2, [r0, #12] ; 0xc + cf2: 1e50 sub r0, r2, #1 + cf4: 8188 strh r0, [r1, #12] ; 0xc + cf6: 2a00 cmp r2, #0 + cf8: d1e9 bne 0xcce + cfa: 2001 mov r0, #1 + cfc: 0300 lsl r0, r0, #12 + cfe: f000 f8ae bl 0xe5e + d02: 4669 mov r1, sp + d04: 7408 strb r0, [r1, #16] ; 0x10 + d06: 4668 mov r0, sp + d08: 7c01 ldrb r1, [r0, #16] ; 0x10 + d0a: 7c40 ldrb r0, [r0, #17] ; 0x11 + d0c: 4281 cmp r1, r0 + d0e: d015 beq 0xd3c + d10: 201b mov r0, #27 ; 0x1b + d12: f000 f88c bl 0xe2e + d16: 20f6 mov r0, #246 ; 0xf6 + d18: f000 f889 bl 0xe2e + d1c: 2002 mov r0, #2 + d1e: f000 f886 bl 0xe2e + d22: 2000 mov r0, #0 + d24: f000 f883 bl 0xe2e + d28: 2045 mov r0, #69 ; 0x45 + d2a: f000 f880 bl 0xe2e + d2e: 2053 mov r0, #83 ; 0x53 + d30: f000 f87d bl 0xe2e + d34: 2016 mov r0, #22 ; 0x16 + d36: f000 f87a bl 0xe2e + d3a: e019 b 0xd70 + d3c: 201b mov r0, #27 ; 0x1b + d3e: f000 f876 bl 0xe2e + d42: 20f6 mov r0, #246 ; 0xf6 + d44: f000 f873 bl 0xe2e + d48: 2002 mov r0, #2 + d4a: f000 f870 bl 0xe2e + d4e: 2000 mov r0, #0 + d50: f000 f86d bl 0xe2e + d54: 2041 mov r0, #65 ; 0x41 + d56: f000 f86a bl 0xe2e + d5a: 2003 mov r0, #3 + d5c: f000 f867 bl 0xe2e + d60: 2042 mov r0, #66 ; 0x42 + d62: f000 f864 bl 0xe2e + d66: 485b ldr r0, =0x83ff00 ; via 0xed4 + d68: 6800 ldr r0, [r0, #0] + d6a: 4991 ldr r1, =0x800100 ; via 0xfb0 + d6c: f000 f85e bl 0xe2c + d70: b009 add sp, #36 ; 0x24 + d72: bd00 pop {pc} + + d74: b500 push {lr} + d76: b081 sub sp, #4 + d78: 2066 mov r0, #102 ; 0x66 + d7a: f000 f858 bl 0xe2e + d7e: 2074 mov r0, #116 ; 0x74 + d80: f000 f855 bl 0xe2e + d84: 206d mov r0, #109 ; 0x6d + d86: f000 f852 bl 0xe2e + d8a: 2074 mov r0, #116 ; 0x74 + d8c: f000 f84f bl 0xe2e + d90: 206f mov r0, #111 ; 0x6f + d92: f000 f84c bl 0xe2e + d96: 206f mov r0, #111 ; 0x6f + d98: f000 f849 bl 0xe2e + d9c: 206c mov r0, #108 ; 0x6c + d9e: f000 f846 bl 0xe2e + da2: 4984 ldr r1, =0x83ff80 ; via 0xfb4 + da4: 2000 mov r0, #0 + da6: 7008 strb r0, [r1, #0] + da8: 9000 str r0, [sp, #0] + daa: 9800 ldr r0, [sp, #0] + dac: 0c00 lsr r0, r0, #16 + dae: d105 bne 0xdbc + db0: 9800 ldr r0, [sp, #0] + db2: 3001 add r0, #1 + db4: 9000 str r0, [sp, #0] + db6: 9800 ldr r0, [sp, #0] + db8: 0c00 lsr r0, r0, #16 + dba: d0f9 beq 0xdb0 + dbc: 2007 mov r0, #7 + dbe: 0400 lsl r0, r0, #16 + dc0: f000 f84d bl 0xe5e + dc4: 2879 cmp r0, #121 ; 0x79 + dc6: d10e bne 0xde6 + dc8: 2001 mov r0, #1 + dca: 0300 lsl r0, r0, #12 + dcc: f000 f847 bl 0xe5e + dd0: 2865 cmp r0, #101 ; 0x65 + dd2: d108 bne 0xde6 + dd4: 2001 mov r0, #1 + dd6: 0300 lsl r0, r0, #12 + dd8: f000 f841 bl 0xe5e + ddc: 2873 cmp r0, #115 ; 0x73 + dde: d102 bne 0xde6 + de0: 4874 ldr r0, =0x83ff80 ; via 0xfb4 + de2: 2101 mov r1, #1 + de4: 7001 strb r1, [r0, #0] + de6: f000 f8d1 bl 0xf8c + dea: 2800 cmp r0, #0 + dec: d00d beq 0xe0a + dee: 206d mov r0, #109 ; 0x6d + df0: f000 f81d bl 0xe2e + df4: 206f mov r0, #111 ; 0x6f + df6: f000 f81a bl 0xe2e + dfa: 2064 mov r0, #100 ; 0x64 + dfc: f000 f817 bl 0xe2e + e00: 2065 mov r0, #101 ; 0x65 + e02: f000 f814 bl 0xe2e + e06: 206d mov r0, #109 ; 0x6d + e08: e00c b 0xe24 + e0a: 2065 mov r0, #101 ; 0x65 + e0c: f000 f80f bl 0xe2e + e10: 2072 mov r0, #114 ; 0x72 + e12: f000 f80c bl 0xe2e + e16: 2072 mov r0, #114 ; 0x72 + e18: f000 f809 bl 0xe2e + e1c: 206f mov r0, #111 ; 0x6f + e1e: f000 f806 bl 0xe2e + e22: 2072 mov r0, #114 ; 0x72 + e24: f000 f803 bl 0xe2e + e28: b001 add sp, #4 + e2a: bd00 pop {pc} + e2c: 4708 bx r1 + e2e: b081 sub sp, #4 + e30: 4669 mov r1, sp + e32: 7008 strb r0, [r1, #0] + e34: 4827 ldr r0, =0x83ff00 ; via 0xed4 + e36: 6800 ldr r0, [r0, #0] + e38: 7940 ldrb r0, [r0, #5] + e3a: 0980 lsr r0, r0, #6 + e3c: d3fa bcc 0xe34 + e3e: 4825 ldr r0, =0x83ff00 ; via 0xed4 + e40: 6800 ldr r0, [r0, #0] + e42: 4669 mov r1, sp + e44: 7809 ldrb r1, [r1, #0] + e46: 7001 strb r1, [r0, #0] + e48: b001 add sp, #4 + e4a: 46f7 mov pc, lr + e4c: 4821 ldr r0, =0x83ff00 ; via 0xed4 + e4e: 6800 ldr r0, [r0, #0] + e50: 7940 ldrb r0, [r0, #5] + e52: 0840 lsr r0, r0, #1 + e54: d3fa bcc 0xe4c + e56: 481f ldr r0, =0x83ff00 ; via 0xed4 + e58: 6800 ldr r0, [r0, #0] + e5a: 7800 ldrb r0, [r0, #0] + e5c: 4770 bx lr + e5e: b083 sub sp, #12 ; 0xc + e60: 9000 str r0, [sp, #0] + e62: 9800 ldr r0, [sp, #0] + e64: 9002 str r0, [sp, #8] + e66: 481b ldr r0, =0x83ff00 ; via 0xed4 + e68: 6800 ldr r0, [r0, #0] + e6a: 7940 ldrb r0, [r0, #5] + e6c: 0840 lsr r0, r0, #1 + e6e: d20c bcs 0xe8a + e70: 9802 ldr r0, [sp, #8] + e72: 3801 sub r0, #1 + e74: 9002 str r0, [sp, #8] + e76: 9802 ldr r0, [sp, #8] + e78: 2800 cmp r0, #0 + e7a: d101 bne 0xe80 + e7c: 20ff mov r0, #255 ; 0xff + e7e: e007 b 0xe90 + e80: 4814 ldr r0, =0x83ff00 ; via 0xed4 + e82: 6800 ldr r0, [r0, #0] + e84: 7940 ldrb r0, [r0, #5] + e86: 0840 lsr r0, r0, #1 + e88: d3f2 bcc 0xe70 + e8a: 4812 ldr r0, =0x83ff00 ; via 0xed4 + e8c: 6800 ldr r0, [r0, #0] + e8e: 7800 ldrb r0, [r0, #0] + e90: b003 add sp, #12 ; 0xc + e92: 4770 bx lr + e94: b081 sub sp, #4 + e96: e001 b 0xe9c + e98: 9800 ldr r0, [sp, #0] + e9a: 3801 sub r0, #1 + e9c: 9000 str r0, [sp, #0] + e9e: 480d ldr r0, =0x83ff00 ; via 0xed4 + ea0: 6800 ldr r0, [r0, #0] + ea2: 7940 ldrb r0, [r0, #5] + ea4: 0840 lsr r0, r0, #1 + ea6: d202 bcs 0xeae + ea8: 9800 ldr r0, [sp, #0] + eaa: 2800 cmp r0, #0 + eac: dcf4 bgt 0xe98 + eae: 9800 ldr r0, [sp, #0] + eb0: 2800 cmp r0, #0 + eb2: dd01 ble 0xeb8 + eb4: 2000 mov r0, #0 + eb6: e000 b 0xeba + eb8: 2001 mov r0, #1 + eba: b001 add sp, #4 + ebc: 4770 bx lr + ebe: b082 sub sp, #8 + ec0: 9000 str r0, [sp, #0] + ec2: 4669 mov r1, sp + ec4: 2000 mov r0, #0 + ec6: 7188 strb r0, [r1, #6] + ec8: 9900 ldr r1, [sp, #0] + eca: 483b ldr r0, =0xfffef000 ; via 0xfb8 + ecc: 8800 ldrh r0, [r0, #0] + ece: 8008 strh r0, [r1, #0] + ed0: b002 add sp, #8 + ed2: 4770 bx lr + ed4: ff00 + ed6: 0083 lsl r3, r0, #2 + ed8: 5800 ldr r0, [r0, r0] + eda: ffff + edc: b081 sub sp, #4 + ede: 466a mov r2, sp + ee0: 7051 strb r1, [r2, #1] + ee2: 4669 mov r1, sp + ee4: 7008 strb r0, [r1, #0] + ee6: 4935 ldr r1, =0xffff6000 ; via 0xfbc + ee8: 2002 mov r0, #2 + eea: 880a ldrh r2, [r1, #0] + eec: 4310 orr r0, r2 + eee: 8008 strh r0, [r1, #0] + ef0: 4832 ldr r0, =0xffff6000 ; via 0xfbc + ef2: 8801 ldrh r1, [r0, #0] + ef4: 0849 lsr r1, r1, #1 + ef6: 0049 lsl r1, r1, #1 + ef8: 8001 strh r1, [r0, #0] + efa: 4930 ldr r1, =0xffff6000 ; via 0xfbc + efc: 8808 ldrh r0, [r1, #0] + efe: 2202 mov r2, #2 + f00: 4390 bic r0, r2 + f02: 8008 strh r0, [r1, #0] + f04: 482e ldr r0, =0x83ff00 ; via 0xfc0 + f06: 6801 ldr r1, [r0, #0] + f08: 2007 mov r0, #7 + f0a: 7208 strb r0, [r1, #8] + f0c: 482c ldr r0, =0x83ff00 ; via 0xfc0 + f0e: 6801 ldr r1, [r0, #0] + f10: 20bf mov r0, #191 ; 0xbf + f12: 70c8 strb r0, [r1, #3] + f14: 482a ldr r0, =0x83ff00 ; via 0xfc0 + f16: 6800 ldr r0, [r0, #0] + f18: 1c80 add r0, r0, #2 + f1a: 2110 mov r1, #16 ; 0x10 + f1c: 8802 ldrh r2, [r0, #0] + f1e: 4311 orr r1, r2 + f20: 8001 strh r1, [r0, #0] + f22: 4827 ldr r0, =0x83ff00 ; via 0xfc0 + f24: 6801 ldr r1, [r0, #0] + f26: 2080 mov r0, #128 ; 0x80 + f28: 70c8 strb r0, [r1, #3] + f2a: 4825 ldr r0, =0x83ff00 ; via 0xfc0 + f2c: 6800 ldr r0, [r0, #0] + f2e: 2107 mov r1, #7 + f30: 7081 strb r1, [r0, #2] + f32: 4823 ldr r0, =0x83ff00 ; via 0xfc0 + f34: 6800 ldr r0, [r0, #0] + f36: 21bf mov r1, #191 ; 0xbf + f38: 70c1 strb r1, [r0, #3] + f3a: 4821 ldr r0, =0x83ff00 ; via 0xfc0 + f3c: 6801 ldr r1, [r0, #0] + f3e: 4668 mov r0, sp + f40: 7840 ldrb r0, [r0, #1] + f42: 7008 strb r0, [r1, #0] + f44: 481e ldr r0, =0x83ff00 ; via 0xfc0 + f46: 6801 ldr r1, [r0, #0] + f48: 4668 mov r0, sp + f4a: 7800 ldrb r0, [r0, #0] + f4c: 7048 strb r0, [r1, #1] + f4e: 481c ldr r0, =0x83ff00 ; via 0xfc0 + f50: 6801 ldr r1, [r0, #0] + f52: 2003 mov r0, #3 + f54: 70c8 strb r0, [r1, #3] + f56: 481a ldr r0, =0x83ff00 ; via 0xfc0 + f58: 6800 ldr r0, [r0, #0] + f5a: 2100 mov r1, #0 + f5c: 7201 strb r1, [r0, #8] + f5e: 4818 ldr r0, =0x83ff00 ; via 0xfc0 + f60: 6800 ldr r0, [r0, #0] + f62: 7940 ldrb r0, [r0, #5] + f64: 0840 lsr r0, r0, #1 + f66: d309 bcc 0xf7c + f68: 4669 mov r1, sp + f6a: 4815 ldr r0, =0x83ff00 ; via 0xfc0 + f6c: 6800 ldr r0, [r0, #0] + f6e: 7800 ldrb r0, [r0, #0] + f70: 7088 strb r0, [r1, #2] + f72: 4813 ldr r0, =0x83ff00 ; via 0xfc0 + f74: 6800 ldr r0, [r0, #0] + f76: 7940 ldrb r0, [r0, #5] + f78: 0840 lsr r0, r0, #1 + f7a: d2f5 bcs 0xf68 + f7c: b001 add sp, #4 + f7e: 4770 bx lr + f80: 0100 lsl r0, r0, #4 + f82: 0080 lsl r0, r0, #2 + f84: 2060 mov r0, #96 ; 0x60 + f86: 0000 lsl r0, r0, #0 + f88: dddd ble 0xf46 + f8a: dddd ble 0xf48 + f8c: 4809 ldr r0, =0x83ff80 ; via 0xfb4 + f8e: 7800 ldrb r0, [r0, #0] + f90: 4770 bx lr + f92: b500 push {lr} + f94: b081 sub sp, #4 + f96: 4669 mov r1, sp + f98: 7008 strb r0, [r1, #0] + f9a: 4668 mov r0, sp + f9c: 7800 ldrb r0, [r0, #0] + f9e: f7ff ff46 bl 0xe2e + fa2: b001 add sp, #4 + fa4: bd00 pop {pc} + fa6: b500 push {lr} + fa8: f7ff ff50 bl 0xe4c + fac: bd00 pop {pc} + fae: 46c0 nop (mov r8, r8) + fb0: 0100 lsl r0, r0, #4 + fb2: 0080 lsl r0, r0, #2 + fb4: ff80 + fb6: 0083 lsl r3, r0, #2 + fb8: f000 fffe bl 0x1fb8 + fbc: 6000 str r0, [r0, #0] + fbe: ffff + fc0: ff00 + fc2: 0083 lsl r3, r0, #2 + fc4: 4700 bx r0 + fc6: 0000 lsl r0, r0, #0 + fc8: b08c sub sp, #48 ; 0x30 + fca: 9101 str r1, [sp, #4] + fcc: 9000 str r0, [sp, #0] + fce: 2000 mov r0, #0 + fd0: 9003 str r0, [sp, #12] ; 0xc + fd2: 9800 ldr r0, [sp, #0] + fd4: 7801 ldrb r1, [r0, #0] + fd6: 3001 add r0, #1 + fd8: 9000 str r0, [sp, #0] + fda: 9105 str r1, [sp, #20] ; 0x14 + fdc: 9800 ldr r0, [sp, #0] + fde: 7801 ldrb r1, [r0, #0] + fe0: 3001 add r0, #1 + fe2: 9000 str r0, [sp, #0] + fe4: 9801 ldr r0, [sp, #4] + fe6: 7001 strb r1, [r0, #0] + fe8: 2001 mov r0, #1 + fea: 9004 str r0, [sp, #16] ; 0x10 + fec: e0a8 b 0x1140 + fee: 9804 ldr r0, [sp, #16] ; 0x10 + ff0: 3002 add r0, #2 + ff2: 9004 str r0, [sp, #16] ; 0x10 + ff4: 9800 ldr r0, [sp, #0] + ff6: 7801 ldrb r1, [r0, #0] + ff8: 3001 add r0, #1 + ffa: 9000 str r0, [sp, #0] + ffc: 4668 mov r0, sp + ffe: 8441 strh r1, [r0, #34] ; 0x22 + 1000: 9800 ldr r0, [sp, #0] + 1002: 7801 ldrb r1, [r0, #0] + 1004: 3001 add r0, #1 + 1006: 9000 str r0, [sp, #0] + 1008: 4668 mov r0, sp + 100a: 8401 strh r1, [r0, #32] ; 0x20 + 100c: 8c00 ldrh r0, [r0, #32] ; 0x20 + 100e: 4669 mov r1, sp + 1010: 8c49 ldrh r1, [r1, #34] ; 0x22 + 1012: 0209 lsl r1, r1, #8 + 1014: 1840 add r0, r0, r1 + 1016: 9901 ldr r1, [sp, #4] + 1018: 8088 strh r0, [r1, #4] + 101a: 9804 ldr r0, [sp, #16] ; 0x10 + 101c: 3001 add r0, #1 + 101e: 9004 str r0, [sp, #16] ; 0x10 + 1020: 9800 ldr r0, [sp, #0] + 1022: 7801 ldrb r1, [r0, #0] + 1024: 3001 add r0, #1 + 1026: 9000 str r0, [sp, #0] + 1028: 4668 mov r0, sp + 102a: 7601 strb r1, [r0, #24] ; 0x18 + 102c: 9901 ldr r1, [sp, #4] + 102e: 7e00 ldrb r0, [r0, #24] ; 0x18 + 1030: 7188 strb r0, [r1, #6] + 1032: 4668 mov r0, sp + 1034: 7e00 ldrb r0, [r0, #24] ; 0x18 + 1036: 2840 cmp r0, #64 ; 0x40 + 1038: dc00 bgt 0x103c + 103a: e09f b 0x117c + 103c: 2004 mov r0, #4 + 103e: 9003 str r0, [sp, #12] ; 0xc + 1040: e09c b 0x117c + 1042: 9804 ldr r0, [sp, #16] ; 0x10 + 1044: 3002 add r0, #2 + 1046: 9004 str r0, [sp, #16] ; 0x10 + 1048: 9800 ldr r0, [sp, #0] + 104a: 7801 ldrb r1, [r0, #0] + 104c: 3001 add r0, #1 + 104e: 9000 str r0, [sp, #0] + 1050: 4668 mov r0, sp + 1052: 8441 strh r1, [r0, #34] ; 0x22 + 1054: 9800 ldr r0, [sp, #0] + 1056: 7801 ldrb r1, [r0, #0] + 1058: 3001 add r0, #1 + 105a: 9000 str r0, [sp, #0] + 105c: 4668 mov r0, sp + 105e: 8401 strh r1, [r0, #32] ; 0x20 + 1060: 8c00 ldrh r0, [r0, #32] ; 0x20 + 1062: 4669 mov r1, sp + 1064: 8c49 ldrh r1, [r1, #34] ; 0x22 + 1066: 0209 lsl r1, r1, #8 + 1068: 1841 add r1, r0, r1 + 106a: 9801 ldr r0, [sp, #4] + 106c: 8081 strh r1, [r0, #4] + 106e: 9804 ldr r0, [sp, #16] ; 0x10 + 1070: 3001 add r0, #1 + 1072: 9004 str r0, [sp, #16] ; 0x10 + 1074: 9800 ldr r0, [sp, #0] + 1076: 7801 ldrb r1, [r0, #0] + 1078: 3001 add r0, #1 + 107a: 9000 str r0, [sp, #0] + 107c: 4668 mov r0, sp + 107e: 7601 strb r1, [r0, #24] ; 0x18 + 1080: 9901 ldr r1, [sp, #4] + 1082: 7e00 ldrb r0, [r0, #24] ; 0x18 + 1084: 7188 strb r0, [r1, #6] + 1086: 4668 mov r0, sp + 1088: 7e00 ldrb r0, [r0, #24] ; 0x18 + 108a: 2840 cmp r0, #64 ; 0x40 + 108c: dcd6 bgt 0x103c + 108e: 9801 ldr r0, [sp, #4] + 1090: 3008 add r0, #8 + 1092: 9007 str r0, [sp, #28] ; 0x1c + 1094: 2000 mov r0, #0 + 1096: 9002 str r0, [sp, #8] + 1098: 9902 ldr r1, [sp, #8] + 109a: 4668 mov r0, sp + 109c: 7e00 ldrb r0, [r0, #24] ; 0x18 + 109e: 4281 cmp r1, r0 + 10a0: da6c bge 0x117c + 10a2: 9800 ldr r0, [sp, #0] + 10a4: 7801 ldrb r1, [r0, #0] + 10a6: 3001 add r0, #1 + 10a8: 9000 str r0, [sp, #0] + 10aa: 4668 mov r0, sp + 10ac: 84c1 strh r1, [r0, #38] ; 0x26 + 10ae: 9800 ldr r0, [sp, #0] + 10b0: 7801 ldrb r1, [r0, #0] + 10b2: 3001 add r0, #1 + 10b4: 9000 str r0, [sp, #0] + 10b6: 4668 mov r0, sp + 10b8: 8481 strh r1, [r0, #36] ; 0x24 + 10ba: 9807 ldr r0, [sp, #28] ; 0x1c + 10bc: 1c81 add r1, r0, #2 + 10be: 9107 str r1, [sp, #28] ; 0x1c + 10c0: 4669 mov r1, sp + 10c2: 8c89 ldrh r1, [r1, #36] ; 0x24 + 10c4: 466a mov r2, sp + 10c6: 8cd2 ldrh r2, [r2, #38] ; 0x26 + 10c8: 0212 lsl r2, r2, #8 + 10ca: 1889 add r1, r1, r2 + 10cc: 8001 strh r1, [r0, #0] + 10ce: 9804 ldr r0, [sp, #16] ; 0x10 + 10d0: 3002 add r0, #2 + 10d2: 9004 str r0, [sp, #16] ; 0x10 + 10d4: 9802 ldr r0, [sp, #8] + 10d6: 3001 add r0, #1 + 10d8: 9002 str r0, [sp, #8] + 10da: 9902 ldr r1, [sp, #8] + 10dc: 4668 mov r0, sp + 10de: 7e00 ldrb r0, [r0, #24] ; 0x18 + 10e0: 4281 cmp r1, r0 + 10e2: dbde blt 0x10a2 + 10e4: e04a b 0x117c + 10e6: 9804 ldr r0, [sp, #16] ; 0x10 + 10e8: 3002 add r0, #2 + 10ea: 9004 str r0, [sp, #16] ; 0x10 + 10ec: 9800 ldr r0, [sp, #0] + 10ee: 7801 ldrb r1, [r0, #0] + 10f0: 3001 add r0, #1 + 10f2: 9000 str r0, [sp, #0] + 10f4: 4668 mov r0, sp + 10f6: 8501 strh r1, [r0, #40] ; 0x28 + 10f8: 9800 ldr r0, [sp, #0] + 10fa: 7801 ldrb r1, [r0, #0] + 10fc: 3001 add r0, #1 + 10fe: 9000 str r0, [sp, #0] + 1100: 4668 mov r0, sp + 1102: 8541 strh r1, [r0, #42] ; 0x2a + 1104: 8d41 ldrh r1, [r0, #42] ; 0x2a + 1106: 8d00 ldrh r0, [r0, #40] ; 0x28 + 1108: 0200 lsl r0, r0, #8 + 110a: 1809 add r1, r1, r0 + 110c: 9801 ldr r0, [sp, #4] + 110e: 8081 strh r1, [r0, #4] + 1110: 9804 ldr r0, [sp, #16] ; 0x10 + 1112: 3002 add r0, #2 + 1114: 9004 str r0, [sp, #16] ; 0x10 + 1116: 9800 ldr r0, [sp, #0] + 1118: 7801 ldrb r1, [r0, #0] + 111a: 3001 add r0, #1 + 111c: 9000 str r0, [sp, #0] + 111e: 4668 mov r0, sp + 1120: 8581 strh r1, [r0, #44] ; 0x2c + 1122: 9800 ldr r0, [sp, #0] + 1124: 7801 ldrb r1, [r0, #0] + 1126: 3001 add r0, #1 + 1128: 9000 str r0, [sp, #0] + 112a: 4668 mov r0, sp + 112c: 85c1 strh r1, [r0, #46] ; 0x2e + 112e: 8dc1 ldrh r1, [r0, #46] ; 0x2e + 1130: 8d80 ldrh r0, [r0, #44] ; 0x2c + 1132: 0200 lsl r0, r0, #8 + 1134: 1808 add r0, r1, r0 + 1136: 9901 ldr r1, [sp, #4] + 1138: 80c8 strh r0, [r1, #6] + 113a: e01f b 0x117c + 113c: 2008 mov r0, #8 + 113e: e77e b 0x103e + 1140: 9801 ldr r0, [sp, #4] + 1142: 7801 ldrb r1, [r0, #0] + 1144: 290a cmp r1, #10 ; 0xa + 1146: d8f9 bhi 0x113c + 1148: a001 add r0, pc, #4 + 114a: 0089 lsl r1, r1, #2 + 114c: 5840 ldr r0, [r0, r1] + 114e: 4687 mov pc, r0 + 1150: 117c asr r4, r7, #5 + 1152: 0000 lsl r0, r0, #0 + 1154: 117c asr r4, r7, #5 + 1156: 0000 lsl r0, r0, #0 + 1158: 117c asr r4, r7, #5 + 115a: 0000 lsl r0, r0, #0 + 115c: 117c asr r4, r7, #5 + 115e: 0000 lsl r0, r0, #0 + 1160: 117c asr r4, r7, #5 + 1162: 0000 lsl r0, r0, #0 + 1164: 117c asr r4, r7, #5 + 1166: 0000 lsl r0, r0, #0 + 1168: 117c asr r4, r7, #5 + 116a: 0000 lsl r0, r0, #0 + 116c: 0fee lsr r6, r5, #31 + 116e: 0000 lsl r0, r0, #0 + 1170: 1042 asr r2, r0, #1 + 1172: 0000 lsl r0, r0, #0 + 1174: 117c asr r4, r7, #5 + 1176: 0000 lsl r0, r0, #0 + 1178: 10e6 asr r6, r4, #3 + 117a: 0000 lsl r0, r0, #0 + 117c: 9905 ldr r1, [sp, #20] ; 0x14 + 117e: 9804 ldr r0, [sp, #16] ; 0x10 + 1180: 4281 cmp r1, r0 + 1182: d001 beq 0x1188 + 1184: 2004 mov r0, #4 + 1186: 9003 str r0, [sp, #12] ; 0xc + 1188: 9803 ldr r0, [sp, #12] ; 0xc + 118a: b00c add sp, #48 ; 0x30 + 118c: 4770 bx lr + 118e: b089 sub sp, #36 ; 0x24 + 1190: 9101 str r1, [sp, #4] + 1192: 9000 str r0, [sp, #0] + 1194: 2000 mov r0, #0 + 1196: 9003 str r0, [sp, #12] ; 0xc + 1198: 9801 ldr r0, [sp, #4] + 119a: 1c41 add r1, r0, #1 + 119c: 9101 str r1, [sp, #4] + 119e: 9005 str r0, [sp, #20] ; 0x14 + 11a0: 9801 ldr r0, [sp, #4] + 11a2: 1c41 add r1, r0, #1 + 11a4: 9101 str r1, [sp, #4] + 11a6: 9900 ldr r1, [sp, #0] + 11a8: 7809 ldrb r1, [r1, #0] + 11aa: 7001 strb r1, [r0, #0] + 11ac: 4669 mov r1, sp + 11ae: 2001 mov r0, #1 + 11b0: 7408 strb r0, [r1, #16] ; 0x10 + 11b2: 9801 ldr r0, [sp, #4] + 11b4: 1c41 add r1, r0, #1 + 11b6: 9101 str r1, [sp, #4] + 11b8: 9900 ldr r1, [sp, #0] + 11ba: 7849 ldrb r1, [r1, #1] + 11bc: 7001 strb r1, [r0, #0] + 11be: 4669 mov r1, sp + 11c0: 4668 mov r0, sp + 11c2: 7c00 ldrb r0, [r0, #16] ; 0x10 + 11c4: 3001 add r0, #1 + 11c6: 7408 strb r0, [r1, #16] ; 0x10 + 11c8: e0e4 b 0x1394 + 11ca: 9800 ldr r0, [sp, #0] + 11cc: 7840 ldrb r0, [r0, #1] + 11ce: 2800 cmp r0, #0 + 11d0: d000 beq 0x11d4 + 11d2: e0fd b 0x13d0 + 11d4: 9801 ldr r0, [sp, #4] + 11d6: 1c41 add r1, r0, #1 + 11d8: 9101 str r1, [sp, #4] + 11da: 9900 ldr r1, [sp, #0] + 11dc: 7909 ldrb r1, [r1, #4] + 11de: 7001 strb r1, [r0, #0] + 11e0: 9801 ldr r0, [sp, #4] + 11e2: 1c41 add r1, r0, #1 + 11e4: 9101 str r1, [sp, #4] + 11e6: 9900 ldr r1, [sp, #0] + 11e8: 7949 ldrb r1, [r1, #5] + 11ea: 7001 strb r1, [r0, #0] + 11ec: 9801 ldr r0, [sp, #4] + 11ee: 1c41 add r1, r0, #1 + 11f0: 9101 str r1, [sp, #4] + 11f2: 9900 ldr r1, [sp, #0] + 11f4: 7989 ldrb r1, [r1, #6] + 11f6: 7001 strb r1, [r0, #0] + 11f8: 4668 mov r0, sp + 11fa: 7c00 ldrb r0, [r0, #16] ; 0x10 + 11fc: 3003 add r0, #3 + 11fe: 4669 mov r1, sp + 1200: 7408 strb r0, [r1, #16] ; 0x10 + 1202: e0e5 b 0x13d0 + 1204: 9800 ldr r0, [sp, #0] + 1206: 7840 ldrb r0, [r0, #1] + 1208: 2800 cmp r0, #0 + 120a: d000 beq 0x120e + 120c: e0e0 b 0x13d0 + 120e: 9801 ldr r0, [sp, #4] + 1210: 1c41 add r1, r0, #1 + 1212: 9101 str r1, [sp, #4] + 1214: 9900 ldr r1, [sp, #0] + 1216: 7909 ldrb r1, [r1, #4] + 1218: 7001 strb r1, [r0, #0] + 121a: 4668 mov r0, sp + 121c: 7c00 ldrb r0, [r0, #16] ; 0x10 + 121e: 3001 add r0, #1 + 1220: e7ed b 0x11fe + 1222: 9800 ldr r0, [sp, #0] + 1224: 7840 ldrb r0, [r0, #1] + 1226: 2800 cmp r0, #0 + 1228: d000 beq 0x122c + 122a: e0d1 b 0x13d0 + 122c: e7ef b 0x120e + 122e: 9800 ldr r0, [sp, #0] + 1230: 7840 ldrb r0, [r0, #1] + 1232: 2800 cmp r0, #0 + 1234: d000 beq 0x1238 + 1236: e0cb b 0x13d0 + 1238: e7e9 b 0x120e + 123a: 9800 ldr r0, [sp, #0] + 123c: 7840 ldrb r0, [r0, #1] + 123e: 2800 cmp r0, #0 + 1240: d000 beq 0x1244 + 1242: e0c5 b 0x13d0 + 1244: 4669 mov r1, sp + 1246: 9800 ldr r0, [sp, #0] + 1248: 8880 ldrh r0, [r0, #4] + 124a: 8408 strh r0, [r1, #32] ; 0x20 + 124c: 9801 ldr r0, [sp, #4] + 124e: 1c41 add r1, r0, #1 + 1250: 9101 str r1, [sp, #4] + 1252: 4669 mov r1, sp + 1254: 8c09 ldrh r1, [r1, #32] ; 0x20 + 1256: 0409 lsl r1, r1, #16 + 1258: 0e09 lsr r1, r1, #24 + 125a: 0209 lsl r1, r1, #8 + 125c: 1209 asr r1, r1, #8 + 125e: 7001 strb r1, [r0, #0] + 1260: 9801 ldr r0, [sp, #4] + 1262: 1c41 add r1, r0, #1 + 1264: 9101 str r1, [sp, #4] + 1266: 4669 mov r1, sp + 1268: 8c09 ldrh r1, [r1, #32] ; 0x20 + 126a: 0609 lsl r1, r1, #24 + 126c: 0e09 lsr r1, r1, #24 + 126e: 7001 strb r1, [r0, #0] + 1270: 4669 mov r1, sp + 1272: 9800 ldr r0, [sp, #0] + 1274: 88c0 ldrh r0, [r0, #6] + 1276: 8408 strh r0, [r1, #32] ; 0x20 + 1278: 9801 ldr r0, [sp, #4] + 127a: 1c41 add r1, r0, #1 + 127c: 9101 str r1, [sp, #4] + 127e: 4669 mov r1, sp + 1280: 8c09 ldrh r1, [r1, #32] ; 0x20 + 1282: 0409 lsl r1, r1, #16 + 1284: 0e09 lsr r1, r1, #24 + 1286: 0209 lsl r1, r1, #8 + 1288: 1209 asr r1, r1, #8 + 128a: 7001 strb r1, [r0, #0] + 128c: 9801 ldr r0, [sp, #4] + 128e: 1c41 add r1, r0, #1 + 1290: 9101 str r1, [sp, #4] + 1292: 4669 mov r1, sp + 1294: 8c09 ldrh r1, [r1, #32] ; 0x20 + 1296: 0609 lsl r1, r1, #24 + 1298: 0e09 lsr r1, r1, #24 + 129a: 7001 strb r1, [r0, #0] + 129c: 4668 mov r0, sp + 129e: 7c00 ldrb r0, [r0, #16] ; 0x10 + 12a0: 3004 add r0, #4 + 12a2: e7ac b 0x11fe + 12a4: 9800 ldr r0, [sp, #0] + 12a6: 7840 ldrb r0, [r0, #1] + 12a8: 2800 cmp r0, #0 + 12aa: d000 beq 0x12ae + 12ac: e090 b 0x13d0 + 12ae: e7ae b 0x120e + 12b0: 9800 ldr r0, [sp, #0] + 12b2: 7840 ldrb r0, [r0, #1] + 12b4: 2800 cmp r0, #0 + 12b6: d000 beq 0x12ba + 12b8: e08a b 0x13d0 + 12ba: 4669 mov r1, sp + 12bc: 4668 mov r0, sp + 12be: 7c00 ldrb r0, [r0, #16] ; 0x10 + 12c0: 3001 add r0, #1 + 12c2: 7408 strb r0, [r1, #16] ; 0x10 + 12c4: 4668 mov r0, sp + 12c6: 9900 ldr r1, [sp, #0] + 12c8: 7909 ldrb r1, [r1, #4] + 12ca: 7601 strb r1, [r0, #24] ; 0x18 + 12cc: 9801 ldr r0, [sp, #4] + 12ce: 1c41 add r1, r0, #1 + 12d0: 9101 str r1, [sp, #4] + 12d2: 4669 mov r1, sp + 12d4: 7e09 ldrb r1, [r1, #24] ; 0x18 + 12d6: 7001 strb r1, [r0, #0] + 12d8: 4668 mov r0, sp + 12da: 7e00 ldrb r0, [r0, #24] ; 0x18 + 12dc: 2840 cmp r0, #64 ; 0x40 + 12de: dd01 ble 0x12e4 + 12e0: 2004 mov r0, #4 + 12e2: e055 b 0x1390 + 12e4: 9800 ldr r0, [sp, #0] + 12e6: 3006 add r0, #6 + 12e8: 9007 str r0, [sp, #28] ; 0x1c + 12ea: 2000 mov r0, #0 + 12ec: 9002 str r0, [sp, #8] + 12ee: 9902 ldr r1, [sp, #8] + 12f0: 4668 mov r0, sp + 12f2: 7e00 ldrb r0, [r0, #24] ; 0x18 + 12f4: 4281 cmp r1, r0 + 12f6: da6b bge 0x13d0 + 12f8: 9801 ldr r0, [sp, #4] + 12fa: 1c41 add r1, r0, #1 + 12fc: 9101 str r1, [sp, #4] + 12fe: 9907 ldr r1, [sp, #28] ; 0x1c + 1300: 8809 ldrh r1, [r1, #0] + 1302: 0409 lsl r1, r1, #16 + 1304: 0e09 lsr r1, r1, #24 + 1306: 0209 lsl r1, r1, #8 + 1308: 1209 asr r1, r1, #8 + 130a: 7001 strb r1, [r0, #0] + 130c: 9807 ldr r0, [sp, #28] ; 0x1c + 130e: 8801 ldrh r1, [r0, #0] + 1310: 3002 add r0, #2 + 1312: 9007 str r0, [sp, #28] ; 0x1c + 1314: 0608 lsl r0, r1, #24 + 1316: 0e01 lsr r1, r0, #24 + 1318: 9801 ldr r0, [sp, #4] + 131a: 1c42 add r2, r0, #1 + 131c: 9201 str r2, [sp, #4] + 131e: 7001 strb r1, [r0, #0] + 1320: 4669 mov r1, sp + 1322: 4668 mov r0, sp + 1324: 7c00 ldrb r0, [r0, #16] ; 0x10 + 1326: 3002 add r0, #2 + 1328: 7408 strb r0, [r1, #16] ; 0x10 + 132a: 9802 ldr r0, [sp, #8] + 132c: 3001 add r0, #1 + 132e: 9002 str r0, [sp, #8] + 1330: 9902 ldr r1, [sp, #8] + 1332: 4668 mov r0, sp + 1334: 7e00 ldrb r0, [r0, #24] ; 0x18 + 1336: 4281 cmp r1, r0 + 1338: dbde blt 0x12f8 + 133a: e049 b 0x13d0 + 133c: 9800 ldr r0, [sp, #0] + 133e: 7840 ldrb r0, [r0, #1] + 1340: 2800 cmp r0, #0 + 1342: d145 bne 0x13d0 + 1344: 4669 mov r1, sp + 1346: 9800 ldr r0, [sp, #0] + 1348: 8880 ldrh r0, [r0, #4] + 134a: 8408 strh r0, [r1, #32] ; 0x20 + 134c: 9801 ldr r0, [sp, #4] + 134e: 1c41 add r1, r0, #1 + 1350: 9101 str r1, [sp, #4] + 1352: 4669 mov r1, sp + 1354: 8c09 ldrh r1, [r1, #32] ; 0x20 + 1356: 0409 lsl r1, r1, #16 + 1358: 0e09 lsr r1, r1, #24 + 135a: 0209 lsl r1, r1, #8 + 135c: 1209 asr r1, r1, #8 + 135e: 7001 strb r1, [r0, #0] + 1360: 9801 ldr r0, [sp, #4] + 1362: 1c41 add r1, r0, #1 + 1364: 9101 str r1, [sp, #4] + 1366: 4669 mov r1, sp + 1368: 8c09 ldrh r1, [r1, #32] ; 0x20 + 136a: 0609 lsl r1, r1, #24 + 136c: 0e09 lsr r1, r1, #24 + 136e: 7001 strb r1, [r0, #0] + 1370: 4668 mov r0, sp + 1372: 9900 ldr r1, [sp, #0] + 1374: 88c9 ldrh r1, [r1, #6] + 1376: 8401 strh r1, [r0, #32] ; 0x20 + 1378: 9901 ldr r1, [sp, #4] + 137a: 1c48 add r0, r1, #1 + 137c: 9001 str r0, [sp, #4] + 137e: 4668 mov r0, sp + 1380: 8c00 ldrh r0, [r0, #32] ; 0x20 + 1382: 0400 lsl r0, r0, #16 + 1384: 0e00 lsr r0, r0, #24 + 1386: 0200 lsl r0, r0, #8 + 1388: 1200 asr r0, r0, #8 + 138a: 7008 strb r0, [r1, #0] + 138c: e77e b 0x128c + 138e: 2008 mov r0, #8 + 1390: 9003 str r0, [sp, #12] ; 0xc + 1392: e01d b 0x13d0 + 1394: 9800 ldr r0, [sp, #0] + 1396: 7800 ldrb r0, [r0, #0] + 1398: 280a cmp r0, #10 ; 0xa + 139a: d8f8 bhi 0x138e + 139c: a101 add r1, pc, #4 + 139e: 0080 lsl r0, r0, #2 + 13a0: 5808 ldr r0, [r1, r0] + 13a2: 4687 mov pc, r0 + 13a4: 11ca asr r2, r1, #7 + 13a6: 0000 lsl r0, r0, #0 + 13a8: 1204 asr r4, r0, #8 + 13aa: 0000 lsl r0, r0, #0 + 13ac: 1222 asr r2, r4, #8 + 13ae: 0000 lsl r0, r0, #0 + 13b0: 122e asr r6, r5, #8 + 13b2: 0000 lsl r0, r0, #0 + 13b4: 13d0 asr r0, r2, #15 + 13b6: 0000 lsl r0, r0, #0 + 13b8: 123a asr r2, r7, #8 + 13ba: 0000 lsl r0, r0, #0 + 13bc: 12a4 asr r4, r4, #10 + 13be: 0000 lsl r0, r0, #0 + 13c0: 12b0 asr r0, r6, #10 + 13c2: 0000 lsl r0, r0, #0 + 13c4: 13d0 asr r0, r2, #15 + 13c6: 0000 lsl r0, r0, #0 + 13c8: 133c asr r4, r7, #12 + 13ca: 0000 lsl r0, r0, #0 + 13cc: 13d0 asr r0, r2, #15 + 13ce: 0000 lsl r0, r0, #0 + 13d0: 9805 ldr r0, [sp, #20] ; 0x14 + 13d2: 4669 mov r1, sp + 13d4: 7c09 ldrb r1, [r1, #16] ; 0x10 + 13d6: 7001 strb r1, [r0, #0] + 13d8: 9803 ldr r0, [sp, #12] ; 0xc + 13da: b009 add sp, #36 ; 0x24 + 13dc: 4770 bx lr + 13de: 0000 lsl r0, r0, #0 + 13e0: b500 push {lr} + 13e2: b083 sub sp, #12 ; 0xc + 13e4: 9101 str r1, [sp, #4] + 13e6: 4669 mov r1, sp + 13e8: 7008 strb r0, [r1, #0] + 13ea: 2000 mov r0, #0 + 13ec: 9002 str r0, [sp, #8] + 13ee: e073 b 0x14d8 + 13f0: 4668 mov r0, sp + 13f2: 7800 ldrb r0, [r0, #0] + 13f4: 28aa cmp r0, #170 ; 0xaa + 13f6: d106 bne 0x1406 + 13f8: 4965 ldr r1, =0x83ff10 ; via 0x1590 + 13fa: 4865 ldr r0, =0x83ff10 ; via 0x1590 + 13fc: 6800 ldr r0, [r0, #0] + 13fe: 3001 add r0, #1 + 1400: 07c0 lsl r0, r0, #31 + 1402: 0fc0 lsr r0, r0, #31 + 1404: e013 b 0x142e + 1406: 4862 ldr r0, =0x83ff10 ; via 0x1590 + 1408: 6800 ldr r0, [r0, #0] + 140a: 2800 cmp r0, #0 + 140c: d06b beq 0x14e6 + 140e: 4961 ldr r1, =0x83ff04 ; via 0x1594 + 1410: 9801 ldr r0, [sp, #4] + 1412: 3001 add r0, #1 + 1414: 6008 str r0, [r1, #0] + 1416: 4960 ldr r1, =0x83ff0e ; via 0x1598 + 1418: 2000 mov r0, #0 + 141a: 7008 strb r0, [r1, #0] + 141c: 495f ldr r1, =0x83ff0c ; via 0x159c + 141e: 4668 mov r0, sp + 1420: 7800 ldrb r0, [r0, #0] + 1422: 8008 strh r0, [r1, #0] + 1424: 495a ldr r1, =0x83ff10 ; via 0x1590 + 1426: 2000 mov r0, #0 + 1428: 6008 str r0, [r1, #0] + 142a: 495d ldr r1, =0x83ff08 ; via 0x15a0 + 142c: 2001 mov r0, #1 + 142e: 6008 str r0, [r1, #0] + 1430: e059 b 0x14e6 + 1432: 4668 mov r0, sp + 1434: 7800 ldrb r0, [r0, #0] + 1436: 28aa cmp r0, #170 ; 0xaa + 1438: d113 bne 0x1462 + 143a: 4855 ldr r0, =0x83ff10 ; via 0x1590 + 143c: 6800 ldr r0, [r0, #0] + 143e: 2800 cmp r0, #0 + 1440: d00b beq 0x145a + 1442: 4954 ldr r1, =0x83ff04 ; via 0x1594 + 1444: 6808 ldr r0, [r1, #0] + 1446: 1c42 add r2, r0, #1 + 1448: 600a str r2, [r1, #0] + 144a: 4669 mov r1, sp + 144c: 7809 ldrb r1, [r1, #0] + 144e: 7001 strb r1, [r0, #0] + 1450: 4951 ldr r1, =0x83ff0e ; via 0x1598 + 1452: 7808 ldrb r0, [r1, #0] + 1454: 3001 add r0, #1 + 1456: 7008 strb r0, [r1, #0] + 1458: e013 b 0x1482 + 145a: 2101 mov r1, #1 + 145c: 484c ldr r0, =0x83ff10 ; via 0x1590 + 145e: 6001 str r1, [r0, #0] + 1460: e01c b 0x149c + 1462: 484b ldr r0, =0x83ff10 ; via 0x1590 + 1464: 6800 ldr r0, [r0, #0] + 1466: 2800 cmp r0, #0 + 1468: d00d beq 0x1486 + 146a: 494a ldr r1, =0x83ff04 ; via 0x1594 + 146c: 9801 ldr r0, [sp, #4] + 146e: 3001 add r0, #1 + 1470: 6008 str r0, [r1, #0] + 1472: 4849 ldr r0, =0x83ff0e ; via 0x1598 + 1474: 2100 mov r1, #0 + 1476: 7001 strb r1, [r0, #0] + 1478: 4948 ldr r1, =0x83ff0c ; via 0x159c + 147a: 4668 mov r0, sp + 147c: 7800 ldrb r0, [r0, #0] + 147e: 3001 add r0, #1 + 1480: 8008 strh r0, [r1, #0] + 1482: 2100 mov r1, #0 + 1484: e7ea b 0x145c + 1486: 4843 ldr r0, =0x83ff04 ; via 0x1594 + 1488: 6801 ldr r1, [r0, #0] + 148a: 1c4a add r2, r1, #1 + 148c: 6002 str r2, [r0, #0] + 148e: 4668 mov r0, sp + 1490: 7800 ldrb r0, [r0, #0] + 1492: 7008 strb r0, [r1, #0] + 1494: 4940 ldr r1, =0x83ff0e ; via 0x1598 + 1496: 7808 ldrb r0, [r1, #0] + 1498: 3001 add r0, #1 + 149a: 7008 strb r0, [r1, #0] + 149c: 483f ldr r0, =0x83ff0c ; via 0x159c + 149e: 8801 ldrh r1, [r0, #0] + 14a0: 3901 sub r1, #1 + 14a2: 8001 strh r1, [r0, #0] + 14a4: 483d ldr r0, =0x83ff0c ; via 0x159c + 14a6: 8800 ldrh r0, [r0, #0] + 14a8: 2800 cmp r0, #0 + 14aa: d11c bne 0x14e6 + 14ac: 9901 ldr r1, [sp, #4] + 14ae: 483a ldr r0, =0x83ff0e ; via 0x1598 + 14b0: 7800 ldrb r0, [r0, #0] + 14b2: 7008 strb r0, [r1, #0] + 14b4: 2001 mov r0, #1 + 14b6: 9002 str r0, [sp, #8] + 14b8: 4839 ldr r0, =0x83ff08 ; via 0x15a0 + 14ba: 2100 mov r1, #0 + 14bc: 6001 str r1, [r0, #0] + 14be: 4834 ldr r0, =0x83ff10 ; via 0x1590 + 14c0: 6001 str r1, [r0, #0] + 14c2: 9801 ldr r0, [sp, #4] + 14c4: 7800 ldrb r0, [r0, #0] + 14c6: 2801 cmp r0, #1 + 14c8: d10d bne 0x14e6 + 14ca: 9801 ldr r0, [sp, #4] + 14cc: 7840 ldrb r0, [r0, #1] + 14ce: 28dd cmp r0, #221 ; 0xdd + 14d0: d109 bne 0x14e6 + 14d2: f7ff fb27 bl 0xb24 + 14d6: e006 b 0x14e6 + 14d8: 4831 ldr r0, =0x83ff08 ; via 0x15a0 + 14da: 6800 ldr r0, [r0, #0] + 14dc: 2800 cmp r0, #0 + 14de: d087 beq 0x13f0 + 14e0: 3801 sub r0, #1 + 14e2: 2800 cmp r0, #0 + 14e4: d0a5 beq 0x1432 + 14e6: 9802 ldr r0, [sp, #8] + 14e8: b003 add sp, #12 ; 0xc + 14ea: bd00 pop {pc} + 14ec: b086 sub sp, #24 ; 0x18 + 14ee: 9202 str r2, [sp, #8] + 14f0: 9101 str r1, [sp, #4] + 14f2: 9000 str r0, [sp, #0] + 14f4: 9801 ldr r0, [sp, #4] + 14f6: 3001 add r0, #1 + 14f8: 9004 str r0, [sp, #16] ; 0x10 + 14fa: 9800 ldr r0, [sp, #0] + 14fc: 1c41 add r1, r0, #1 + 14fe: 9100 str r1, [sp, #0] + 1500: 9005 str r0, [sp, #20] ; 0x14 + 1502: 9901 ldr r1, [sp, #4] + 1504: 20aa mov r0, #170 ; 0xaa + 1506: 7008 strb r0, [r1, #0] + 1508: 9801 ldr r0, [sp, #4] + 150a: 3002 add r0, #2 + 150c: 9001 str r0, [sp, #4] + 150e: 9902 ldr r1, [sp, #8] + 1510: 2000 mov r0, #0 + 1512: 8008 strh r0, [r1, #0] + 1514: 4669 mov r1, sp + 1516: 8188 strh r0, [r1, #12] ; 0xc + 1518: 4668 mov r0, sp + 151a: 8981 ldrh r1, [r0, #12] ; 0xc + 151c: 9805 ldr r0, [sp, #20] ; 0x14 + 151e: 7800 ldrb r0, [r0, #0] + 1520: 4281 cmp r1, r0 + 1522: da23 bge 0x156c + 1524: 9800 ldr r0, [sp, #0] + 1526: 7800 ldrb r0, [r0, #0] + 1528: 28aa cmp r0, #170 ; 0xaa + 152a: d108 bne 0x153e + 152c: 9801 ldr r0, [sp, #4] + 152e: 1c41 add r1, r0, #1 + 1530: 9101 str r1, [sp, #4] + 1532: 21aa mov r1, #170 ; 0xaa + 1534: 7001 strb r1, [r0, #0] + 1536: 9902 ldr r1, [sp, #8] + 1538: 8808 ldrh r0, [r1, #0] + 153a: 3001 add r0, #1 + 153c: 8008 strh r0, [r1, #0] + 153e: 9800 ldr r0, [sp, #0] + 1540: 7801 ldrb r1, [r0, #0] + 1542: 3001 add r0, #1 + 1544: 9000 str r0, [sp, #0] + 1546: 9801 ldr r0, [sp, #4] + 1548: 1c42 add r2, r0, #1 + 154a: 9201 str r2, [sp, #4] + 154c: 7001 strb r1, [r0, #0] + 154e: 9902 ldr r1, [sp, #8] + 1550: 8808 ldrh r0, [r1, #0] + 1552: 3001 add r0, #1 + 1554: 8008 strh r0, [r1, #0] + 1556: 4669 mov r1, sp + 1558: 4668 mov r0, sp + 155a: 8980 ldrh r0, [r0, #12] ; 0xc + 155c: 3001 add r0, #1 + 155e: 8188 strh r0, [r1, #12] ; 0xc + 1560: 4668 mov r0, sp + 1562: 8980 ldrh r0, [r0, #12] ; 0xc + 1564: 9905 ldr r1, [sp, #20] ; 0x14 + 1566: 7809 ldrb r1, [r1, #0] + 1568: 4288 cmp r0, r1 + 156a: dbdb blt 0x1524 + 156c: 9904 ldr r1, [sp, #16] ; 0x10 + 156e: 9802 ldr r0, [sp, #8] + 1570: 7800 ldrb r0, [r0, #0] + 1572: 7008 strb r0, [r1, #0] + 1574: 9902 ldr r1, [sp, #8] + 1576: 8808 ldrh r0, [r1, #0] + 1578: 3002 add r0, #2 + 157a: 8008 strh r0, [r1, #0] + 157c: b006 add sp, #24 ; 0x18 + 157e: 4770 bx lr + 1580: 4907 ldr r1, =0x83ff08 ; via 0x15a0 + 1582: 2000 mov r0, #0 + 1584: 6008 str r0, [r1, #0] + 1586: 4802 ldr r0, =0x83ff10 ; via 0x1590 + 1588: 2100 mov r1, #0 + 158a: 6001 str r1, [r0, #0] + 158c: 4770 bx lr + 158e: 46c0 nop (mov r8, r8) + 1590: ff10 + 1592: 0083 lsl r3, r0, #2 + 1594: ff04 + 1596: 0083 lsl r3, r0, #2 + 1598: ff0e + 159a: 0083 lsl r3, r0, #2 + 159c: ff0c + 159e: 0083 lsl r3, r0, #2 + 15a0: ff08 + 15a2: 0083 lsl r3, r0, #2 + 15a4: b082 sub sp, #8 + 15a6: 9101 str r1, [sp, #4] + 15a8: 9000 str r0, [sp, #0] + 15aa: 9901 ldr r1, [sp, #4] + 15ac: 2000 mov r0, #0 + 15ae: 7008 strb r0, [r1, #0] + 15b0: 9801 ldr r0, [sp, #4] + 15b2: 2100 mov r1, #0 + 15b4: 7041 strb r1, [r0, #1] + 15b6: 9801 ldr r0, [sp, #4] + 15b8: 2102 mov r1, #2 + 15ba: 7101 strb r1, [r0, #4] + 15bc: 9801 ldr r0, [sp, #4] + 15be: 2106 mov r1, #6 + 15c0: 7141 strb r1, [r0, #5] + 15c2: 9801 ldr r0, [sp, #4] + 15c4: 2102 mov r1, #2 + 15c6: 7181 strb r1, [r0, #6] + 15c8: b002 add sp, #8 + 15ca: 4770 bx lr + 15cc: b500 push {lr} + 15ce: b084 sub sp, #16 ; 0x10 + 15d0: 466b mov r3, sp + 15d2: 721a strb r2, [r3, #8] + 15d4: 9101 str r1, [sp, #4] + 15d6: 9000 str r0, [sp, #0] + 15d8: 9901 ldr r1, [sp, #4] + 15da: 2009 mov r0, #9 + 15dc: 7008 strb r0, [r1, #0] + 15de: e015 b 0x160c + 15e0: 9801 ldr r0, [sp, #4] + 15e2: 2100 mov r1, #0 + 15e4: 7041 strb r1, [r0, #1] + 15e6: 9901 ldr r1, [sp, #4] + 15e8: 4668 mov r0, sp + 15ea: 8940 ldrh r0, [r0, #10] ; 0xa + 15ec: 8088 strh r0, [r1, #4] + 15ee: 9901 ldr r1, [sp, #4] + 15f0: 4668 mov r0, sp + 15f2: 8980 ldrh r0, [r0, #12] ; 0xc + 15f4: 80c8 strh r0, [r1, #6] + 15f6: e01e b 0x1636 + 15f8: 2101 mov r1, #1 + 15fa: e004 b 0x1606 + 15fc: 2103 mov r1, #3 + 15fe: e002 b 0x1606 + 1600: 2105 mov r1, #5 + 1602: e000 b 0x1606 + 1604: 2106 mov r1, #6 + 1606: 9801 ldr r0, [sp, #4] + 1608: 7041 strb r1, [r0, #1] + 160a: e014 b 0x1636 + 160c: 200a mov r0, #10 ; 0xa + 160e: 4468 add r0, sp + 1610: a903 add r1, sp, #12 ; 0xc + 1612: 466a mov r2, sp + 1614: 7a12 ldrb r2, [r2, #8] + 1616: f000 fb71 bl 0x1cfc + 161a: 2800 cmp r0, #0 + 161c: d0e0 beq 0x15e0 + 161e: 3801 sub r0, #1 + 1620: 2800 cmp r0, #0 + 1622: d0e9 beq 0x15f8 + 1624: 3801 sub r0, #1 + 1626: 2800 cmp r0, #0 + 1628: d0e8 beq 0x15fc + 162a: 3801 sub r0, #1 + 162c: 2800 cmp r0, #0 + 162e: d0e7 beq 0x1600 + 1630: 3801 sub r0, #1 + 1632: 2800 cmp r0, #0 + 1634: d0e6 beq 0x1604 + 1636: b004 add sp, #16 ; 0x10 + 1638: bd00 pop {pc} + 163a: b084 sub sp, #16 ; 0x10 + 163c: 9101 str r1, [sp, #4] + 163e: 9000 str r0, [sp, #0] + 1640: 9901 ldr r1, [sp, #4] + 1642: 200a mov r0, #10 ; 0xa + 1644: 7008 strb r0, [r1, #0] + 1646: 9801 ldr r0, [sp, #4] + 1648: 2100 mov r1, #0 + 164a: 7041 strb r1, [r0, #1] + 164c: 4669 mov r1, sp + 164e: 9800 ldr r0, [sp, #0] + 1650: 8880 ldrh r0, [r0, #4] + 1652: 8108 strh r0, [r1, #8] + 1654: 9800 ldr r0, [sp, #0] + 1656: 88c0 ldrh r0, [r0, #6] + 1658: 8148 strh r0, [r1, #10] ; 0xa + 165a: 4668 mov r0, sp + 165c: 8941 ldrh r1, [r0, #10] ; 0xa + 165e: 8900 ldrh r0, [r0, #8] + 1660: 0400 lsl r0, r0, #16 + 1662: 1808 add r0, r1, r0 + 1664: 9003 str r0, [sp, #12] ; 0xc + 1666: 9803 ldr r0, [sp, #12] ; 0xc + 1668: b004 add sp, #16 ; 0x10 + 166a: 4770 bx lr + 166c: b085 sub sp, #20 ; 0x14 + 166e: 9303 str r3, [sp, #12] ; 0xc + 1670: 9202 str r2, [sp, #8] + 1672: 9101 str r1, [sp, #4] + 1674: 4669 mov r1, sp + 1676: 7008 strb r0, [r1, #0] + 1678: 48ea ldr r0, =0x83ff19 ; via 0x1a24 + 167a: 7809 ldrb r1, [r1, #0] + 167c: 7802 ldrb r2, [r0, #0] + 167e: 1889 add r1, r1, r2 + 1680: 7001 strb r1, [r0, #0] + 1682: 48e9 ldr r0, =0x83ff1a ; via 0x1a28 + 1684: 7800 ldrb r0, [r0, #0] + 1686: 2800 cmp r0, #0 + 1688: d00e beq 0x16a8 + 168a: 48e8 ldr r0, =0x83ff26 ; via 0x1a2c + 168c: 4669 mov r1, sp + 168e: 780a ldrb r2, [r1, #0] + 1690: 8801 ldrh r1, [r0, #0] + 1692: 1851 add r1, r2, r1 + 1694: 8001 strh r1, [r0, #0] + 1696: 9903 ldr r1, [sp, #12] ; 0xc + 1698: 48e4 ldr r0, =0x83ff26 ; via 0x1a2c + 169a: 8800 ldrh r0, [r0, #0] + 169c: 8008 strh r0, [r1, #0] + 169e: 9801 ldr r0, [sp, #4] + 16a0: 2100 mov r1, #0 + 16a2: 6001 str r1, [r0, #0] + 16a4: 2000 mov r0, #0 + 16a6: e009 b 0x16bc + 16a8: 9902 ldr r1, [sp, #8] + 16aa: 6808 ldr r0, [r1, #0] + 16ac: 3002 add r0, #2 + 16ae: 6008 str r0, [r1, #0] + 16b0: 49de ldr r1, =0x83ff26 ; via 0x1a2c + 16b2: 4668 mov r0, sp + 16b4: 7800 ldrb r0, [r0, #0] + 16b6: 0200 lsl r0, r0, #8 + 16b8: 8008 strh r0, [r1, #0] + 16ba: 2001 mov r0, #1 + 16bc: 9004 str r0, [sp, #16] ; 0x10 + 16be: 2001 mov r0, #1 + 16c0: 49d9 ldr r1, =0x83ff1a ; via 0x1a28 + 16c2: 7809 ldrb r1, [r1, #0] + 16c4: 4388 bic r0, r1 + 16c6: 49d8 ldr r1, =0x83ff1a ; via 0x1a28 + 16c8: 7008 strb r0, [r1, #0] + 16ca: 48d9 ldr r0, =0x83ff24 ; via 0x1a30 + 16cc: 7801 ldrb r1, [r0, #0] + 16ce: 3901 sub r1, #1 + 16d0: 7001 strb r1, [r0, #0] + 16d2: 48d7 ldr r0, =0x83ff24 ; via 0x1a30 + 16d4: 7800 ldrb r0, [r0, #0] + 16d6: 2800 cmp r0, #0 + 16d8: d102 bne 0x16e0 + 16da: 48d6 ldr r0, =0x83ff20 ; via 0x1a34 + 16dc: 2106 mov r1, #6 + 16de: 6001 str r1, [r0, #0] + 16e0: 9804 ldr r0, [sp, #16] ; 0x10 + 16e2: b005 add sp, #20 ; 0x14 + 16e4: 46f7 mov pc, lr + 16e6: b083 sub sp, #12 ; 0xc + 16e8: 9101 str r1, [sp, #4] + 16ea: 4669 mov r1, sp + 16ec: 7008 strb r0, [r1, #0] + 16ee: 2001 mov r0, #1 + 16f0: 9002 str r0, [sp, #8] + 16f2: 48d1 ldr r0, =0x83ff1b ; via 0x1a38 + 16f4: 7800 ldrb r0, [r0, #0] + 16f6: 2800 cmp r0, #0 + 16f8: d10a bne 0x1710 + 16fa: 4668 mov r0, sp + 16fc: 7800 ldrb r0, [r0, #0] + 16fe: 2853 cmp r0, #83 ; 0x53 + 1700: d102 bne 0x1708 + 1702: 48cd ldr r0, =0x83ff1b ; via 0x1a38 + 1704: 2101 mov r1, #1 + 1706: e01a b 0x173e + 1708: 2101 mov r1, #1 + 170a: 9801 ldr r0, [sp, #4] + 170c: 6001 str r1, [r0, #0] + 170e: e03b b 0x1788 + 1710: 49c9 ldr r1, =0x83ff1b ; via 0x1a38 + 1712: 2000 mov r0, #0 + 1714: 7008 strb r0, [r1, #0] + 1716: 4668 mov r0, sp + 1718: 7800 ldrb r0, [r0, #0] + 171a: 2830 cmp r0, #48 ; 0x30 + 171c: d111 bne 0x1742 + 171e: 48c7 ldr r0, =0x83ff18 ; via 0x1a3c + 1720: 7800 ldrb r0, [r0, #0] + 1722: 2800 cmp r0, #0 + 1724: d006 beq 0x1734 + 1726: 9901 ldr r1, [sp, #4] + 1728: 2001 mov r0, #1 + 172a: 6008 str r0, [r1, #0] + 172c: 49c3 ldr r1, =0x83ff18 ; via 0x1a3c + 172e: 2000 mov r0, #0 + 1730: 7008 strb r0, [r1, #0] + 1732: e02a b 0x178a + 1734: 48bf ldr r0, =0x83ff20 ; via 0x1a34 + 1736: 2102 mov r1, #2 + 1738: 6001 str r1, [r0, #0] + 173a: 48ef ldr r0, =0x83ff1c ; via 0x1af8 + 173c: 2100 mov r1, #0 + 173e: 7001 strb r1, [r0, #0] + 1740: e024 b 0x178c + 1742: 4668 mov r0, sp + 1744: 7800 ldrb r0, [r0, #0] + 1746: 2833 cmp r0, #51 ; 0x33 + 1748: d105 bne 0x1756 + 174a: 48bc ldr r0, =0x83ff18 ; via 0x1a3c + 174c: 7800 ldrb r0, [r0, #0] + 174e: 2800 cmp r0, #0 + 1750: d0da beq 0x1708 + 1752: 2004 mov r0, #4 + 1754: e00c b 0x1770 + 1756: 4668 mov r0, sp + 1758: 7800 ldrb r0, [r0, #0] + 175a: 2837 cmp r0, #55 ; 0x37 + 175c: d10e bne 0x177c + 175e: 48b7 ldr r0, =0x83ff18 ; via 0x1a3c + 1760: 7800 ldrb r0, [r0, #0] + 1762: 2800 cmp r0, #0 + 1764: d103 bne 0x176e + 1766: 9901 ldr r1, [sp, #4] + 1768: 2001 mov r0, #1 + 176a: 6008 str r0, [r1, #0] + 176c: e00c b 0x1788 + 176e: 2003 mov r0, #3 + 1770: 49b0 ldr r1, =0x83ff20 ; via 0x1a34 + 1772: 6008 str r0, [r1, #0] + 1774: 2000 mov r0, #0 + 1776: 49e0 ldr r1, =0x83ff1c ; via 0x1af8 + 1778: 7008 strb r0, [r1, #0] + 177a: e007 b 0x178c + 177c: 9901 ldr r1, [sp, #4] + 177e: 2001 mov r0, #1 + 1780: 6008 str r0, [r1, #0] + 1782: 48ae ldr r0, =0x83ff18 ; via 0x1a3c + 1784: 2100 mov r1, #0 + 1786: 7001 strb r1, [r0, #0] + 1788: 2000 mov r0, #0 + 178a: 9002 str r0, [sp, #8] + 178c: 9802 ldr r0, [sp, #8] + 178e: b003 add sp, #12 ; 0xc + 1790: 46f7 mov pc, lr + 1792: b083 sub sp, #12 ; 0xc + 1794: 9101 str r1, [sp, #4] + 1796: 4669 mov r1, sp + 1798: 7008 strb r0, [r1, #0] + 179a: 2001 mov r0, #1 + 179c: 9002 str r0, [sp, #8] + 179e: 49d7 ldr r1, =0x830 ; via 0x1afc + 17a0: 48d5 ldr r0, =0x83ff1c ; via 0x1af8 + 17a2: 7800 ldrb r0, [r0, #0] + 17a4: 0080 lsl r0, r0, #2 + 17a6: 5808 ldr r0, [r1, r0] + 17a8: 4669 mov r1, sp + 17aa: 7809 ldrb r1, [r1, #0] + 17ac: 4281 cmp r1, r0 + 17ae: d10d bne 0x17cc + 17b0: 49d1 ldr r1, =0x83ff1c ; via 0x1af8 + 17b2: 7808 ldrb r0, [r1, #0] + 17b4: 3001 add r0, #1 + 17b6: 7008 strb r0, [r1, #0] + 17b8: 48cf ldr r0, =0x83ff1c ; via 0x1af8 + 17ba: 7800 ldrb r0, [r0, #0] + 17bc: 2807 cmp r0, #7 + 17be: d10d bne 0x17dc + 17c0: 489c ldr r0, =0x83ff20 ; via 0x1a34 + 17c2: 2101 mov r1, #1 + 17c4: 6001 str r1, [r0, #0] + 17c6: 489d ldr r0, =0x83ff18 ; via 0x1a3c + 17c8: 7001 strb r1, [r0, #0] + 17ca: e007 b 0x17dc + 17cc: 9801 ldr r0, [sp, #4] + 17ce: 2101 mov r1, #1 + 17d0: 6001 str r1, [r0, #0] + 17d2: 4998 ldr r1, =0x83ff20 ; via 0x1a34 + 17d4: 2001 mov r0, #1 + 17d6: 6008 str r0, [r1, #0] + 17d8: 2000 mov r0, #0 + 17da: 9002 str r0, [sp, #8] + 17dc: 9802 ldr r0, [sp, #8] + 17de: b003 add sp, #12 ; 0xc + 17e0: 46f7 mov pc, lr + 17e2: b083 sub sp, #12 ; 0xc + 17e4: 9101 str r1, [sp, #4] + 17e6: 4669 mov r1, sp + 17e8: 7008 strb r0, [r1, #0] + 17ea: 2001 mov r0, #1 + 17ec: 9002 str r0, [sp, #8] + 17ee: 49c4 ldr r1, =0x84c ; via 0x1b00 + 17f0: 48c1 ldr r0, =0x83ff1c ; via 0x1af8 + 17f2: 7800 ldrb r0, [r0, #0] + 17f4: 0080 lsl r0, r0, #2 + 17f6: 5808 ldr r0, [r1, r0] + 17f8: 4669 mov r1, sp + 17fa: 7809 ldrb r1, [r1, #0] + 17fc: 4281 cmp r1, r0 + 17fe: d112 bne 0x1826 + 1800: 49bd ldr r1, =0x83ff1c ; via 0x1af8 + 1802: 7808 ldrb r0, [r1, #0] + 1804: 3001 add r0, #1 + 1806: 7008 strb r0, [r1, #0] + 1808: 48bb ldr r0, =0x83ff1c ; via 0x1af8 + 180a: 7800 ldrb r0, [r0, #0] + 180c: 2806 cmp r0, #6 + 180e: d114 bne 0x183a + 1810: 9801 ldr r0, [sp, #4] + 1812: 2102 mov r1, #2 + 1814: 6001 str r1, [r0, #0] + 1816: 4887 ldr r0, =0x83ff20 ; via 0x1a34 + 1818: 2101 mov r1, #1 + 181a: 6001 str r1, [r0, #0] + 181c: 4887 ldr r0, =0x83ff18 ; via 0x1a3c + 181e: 2100 mov r1, #0 + 1820: 7001 strb r1, [r0, #0] + 1822: 2000 mov r0, #0 + 1824: e008 b 0x1838 + 1826: 9801 ldr r0, [sp, #4] + 1828: 2101 mov r1, #1 + 182a: 6001 str r1, [r0, #0] + 182c: 4981 ldr r1, =0x83ff20 ; via 0x1a34 + 182e: 2001 mov r0, #1 + 1830: 6008 str r0, [r1, #0] + 1832: 4982 ldr r1, =0x83ff18 ; via 0x1a3c + 1834: 2000 mov r0, #0 + 1836: 7008 strb r0, [r1, #0] + 1838: 9002 str r0, [sp, #8] + 183a: 9802 ldr r0, [sp, #8] + 183c: b003 add sp, #12 ; 0xc + 183e: 46f7 mov pc, lr + 1840: b081 sub sp, #4 + 1842: 4669 mov r1, sp + 1844: 7008 strb r0, [r1, #0] + 1846: 497a ldr r1, =0x83ff24 ; via 0x1a30 + 1848: 4668 mov r0, sp + 184a: 7800 ldrb r0, [r0, #0] + 184c: 3801 sub r0, #1 + 184e: 7008 strb r0, [r1, #0] + 1850: 4874 ldr r0, =0x83ff19 ; via 0x1a24 + 1852: 4669 mov r1, sp + 1854: 7809 ldrb r1, [r1, #0] + 1856: 7001 strb r1, [r0, #0] + 1858: 48a7 ldr r0, =0x83ff1c ; via 0x1af8 + 185a: 2100 mov r1, #0 + 185c: 7001 strb r1, [r0, #0] + 185e: 48e3 ldr r0, =0x83ff14 ; via 0x1bec + 1860: 6001 str r1, [r0, #0] + 1862: 4874 ldr r0, =0x83ff20 ; via 0x1a34 + 1864: 2105 mov r1, #5 + 1866: 6001 str r1, [r0, #0] + 1868: b001 add sp, #4 + 186a: 46f7 mov pc, lr + 186c: b084 sub sp, #16 ; 0x10 + 186e: 9202 str r2, [sp, #8] + 1870: 9101 str r1, [sp, #4] + 1872: 4669 mov r1, sp + 1874: 7008 strb r0, [r1, #0] + 1876: 2001 mov r0, #1 + 1878: 9003 str r0, [sp, #12] ; 0xc + 187a: 496d ldr r1, =0x83ff24 ; via 0x1a30 + 187c: 7808 ldrb r0, [r1, #0] + 187e: 3801 sub r0, #1 + 1880: 7008 strb r0, [r1, #0] + 1882: 486b ldr r0, =0x83ff24 ; via 0x1a30 + 1884: 7800 ldrb r0, [r0, #0] + 1886: 2800 cmp r0, #0 + 1888: d026 beq 0x18d8 + 188a: 4866 ldr r0, =0x83ff19 ; via 0x1a24 + 188c: 4669 mov r1, sp + 188e: 780a ldrb r2, [r1, #0] + 1890: 7801 ldrb r1, [r0, #0] + 1892: 1851 add r1, r2, r1 + 1894: 7001 strb r1, [r0, #0] + 1896: 4998 ldr r1, =0x83ff1c ; via 0x1af8 + 1898: 7808 ldrb r0, [r1, #0] + 189a: 3001 add r0, #1 + 189c: 7008 strb r0, [r1, #0] + 189e: 49d3 ldr r1, =0x83ff14 ; via 0x1bec + 18a0: 2204 mov r2, #4 + 18a2: 4895 ldr r0, =0x83ff1c ; via 0x1af8 + 18a4: 7800 ldrb r0, [r0, #0] + 18a6: 1a10 sub r0, r2, r0 + 18a8: 00c2 lsl r2, r0, #3 + 18aa: 4668 mov r0, sp + 18ac: 7800 ldrb r0, [r0, #0] + 18ae: 4090 lsl r0, r2 + 18b0: 680a ldr r2, [r1, #0] + 18b2: 1880 add r0, r0, r2 + 18b4: 6008 str r0, [r1, #0] + 18b6: 4890 ldr r0, =0x83ff1c ; via 0x1af8 + 18b8: 7800 ldrb r0, [r0, #0] + 18ba: 2804 cmp r0, #4 + 18bc: d117 bne 0x18ee + 18be: 9902 ldr r1, [sp, #8] + 18c0: 48ca ldr r0, =0x83ff14 ; via 0x1bec + 18c2: 6800 ldr r0, [r0, #0] + 18c4: 3802 sub r0, #2 + 18c6: 6008 str r0, [r1, #0] + 18c8: 485a ldr r0, =0x83ff20 ; via 0x1a34 + 18ca: 2100 mov r1, #0 + 18cc: 6001 str r1, [r0, #0] + 18ce: 4856 ldr r0, =0x83ff1a ; via 0x1a28 + 18d0: 7001 strb r1, [r0, #0] + 18d2: 4889 ldr r0, =0x83ff1c ; via 0x1af8 + 18d4: 7001 strb r1, [r0, #0] + 18d6: e00a b 0x18ee + 18d8: 9801 ldr r0, [sp, #4] + 18da: 2101 mov r1, #1 + 18dc: 6001 str r1, [r0, #0] + 18de: 4955 ldr r1, =0x83ff20 ; via 0x1a34 + 18e0: 2001 mov r0, #1 + 18e2: 6008 str r0, [r1, #0] + 18e4: 4855 ldr r0, =0x83ff18 ; via 0x1a3c + 18e6: 2100 mov r1, #0 + 18e8: 7001 strb r1, [r0, #0] + 18ea: 2000 mov r0, #0 + 18ec: 9003 str r0, [sp, #12] ; 0xc + 18ee: 9803 ldr r0, [sp, #12] ; 0xc + 18f0: b004 add sp, #16 ; 0x10 + 18f2: 46f7 mov pc, lr + 18f4: b083 sub sp, #12 ; 0xc + 18f6: 9101 str r1, [sp, #4] + 18f8: 4669 mov r1, sp + 18fa: 7008 strb r0, [r1, #0] + 18fc: 2001 mov r0, #1 + 18fe: 9002 str r0, [sp, #8] + 1900: 494c ldr r1, =0x83ff20 ; via 0x1a34 + 1902: 6008 str r0, [r1, #0] + 1904: 20ff mov r0, #255 ; 0xff + 1906: 4669 mov r1, sp + 1908: 7809 ldrb r1, [r1, #0] + 190a: 4388 bic r0, r1 + 190c: 4945 ldr r1, =0x83ff19 ; via 0x1a24 + 190e: 7809 ldrb r1, [r1, #0] + 1910: 4281 cmp r1, r0 + 1912: d007 beq 0x1924 + 1914: 9801 ldr r0, [sp, #4] + 1916: 2101 mov r1, #1 + 1918: 6001 str r1, [r0, #0] + 191a: 4848 ldr r0, =0x83ff18 ; via 0x1a3c + 191c: 2100 mov r1, #0 + 191e: 7001 strb r1, [r0, #0] + 1920: 2000 mov r0, #0 + 1922: 9002 str r0, [sp, #8] + 1924: 9802 ldr r0, [sp, #8] + 1926: b003 add sp, #12 ; 0xc + 1928: 46f7 mov pc, lr + 192a: b085 sub sp, #20 ; 0x14 + 192c: 466b mov r3, sp + 192e: 719a strb r2, [r3, #6] + 1930: 466a mov r2, sp + 1932: 8091 strh r1, [r2, #4] + 1934: 9000 str r0, [sp, #0] + 1936: 9800 ldr r0, [sp, #0] + 1938: 9002 str r0, [sp, #8] + 193a: 4669 mov r1, sp + 193c: 4668 mov r0, sp + 193e: 8880 ldrh r0, [r0, #4] + 1940: 8208 strh r0, [r1, #16] ; 0x10 + 1942: 4668 mov r0, sp + 1944: 8a00 ldrh r0, [r0, #16] ; 0x10 + 1946: 2800 cmp r0, #0 + 1948: d01e beq 0x1988 + 194a: 49e3 ldr r1, =0x864 ; via 0x1cd8 + 194c: 4668 mov r0, sp + 194e: 7980 ldrb r0, [r0, #6] + 1950: 0080 lsl r0, r0, #2 + 1952: 5808 ldr r0, [r1, r0] + 1954: 7941 ldrb r1, [r0, #5] + 1956: 4668 mov r0, sp + 1958: 7301 strb r1, [r0, #12] ; 0xc + 195a: 7b00 ldrb r0, [r0, #12] ; 0xc + 195c: 0980 lsr r0, r0, #6 + 195e: d3f4 bcc 0x194a + 1960: 49dd ldr r1, =0x864 ; via 0x1cd8 + 1962: 4668 mov r0, sp + 1964: 7980 ldrb r0, [r0, #6] + 1966: 0080 lsl r0, r0, #2 + 1968: 5809 ldr r1, [r1, r0] + 196a: 9802 ldr r0, [sp, #8] + 196c: 7800 ldrb r0, [r0, #0] + 196e: 7008 strb r0, [r1, #0] + 1970: 9802 ldr r0, [sp, #8] + 1972: 3001 add r0, #1 + 1974: 9002 str r0, [sp, #8] + 1976: 4669 mov r1, sp + 1978: 4668 mov r0, sp + 197a: 8a00 ldrh r0, [r0, #16] ; 0x10 + 197c: 3801 sub r0, #1 + 197e: 8208 strh r0, [r1, #16] ; 0x10 + 1980: 4668 mov r0, sp + 1982: 8a00 ldrh r0, [r0, #16] ; 0x10 + 1984: 2800 cmp r0, #0 + 1986: d1e0 bne 0x194a + 1988: b005 add sp, #20 ; 0x14 + 198a: 46f7 mov pc, lr + 198c: b082 sub sp, #8 + 198e: 4669 mov r1, sp + 1990: 7008 strb r0, [r1, #0] + 1992: 2000 mov r0, #0 + 1994: 8088 strh r0, [r1, #4] + 1996: 4668 mov r0, sp + 1998: 8881 ldrh r1, [r0, #4] + 199a: 20ff mov r0, #255 ; 0xff + 199c: 30f5 add r0, #245 ; 0xf5 + 199e: 4281 cmp r1, r0 + 19a0: da21 bge 0x19e6 + 19a2: 4669 mov r1, sp + 19a4: 4668 mov r0, sp + 19a6: 8880 ldrh r0, [r0, #4] + 19a8: 3001 add r0, #1 + 19aa: 8088 strh r0, [r1, #4] + 19ac: 48ca ldr r0, =0x864 ; via 0x1cd8 + 19ae: 7809 ldrb r1, [r1, #0] + 19b0: 0089 lsl r1, r1, #2 + 19b2: 5840 ldr r0, [r0, r1] + 19b4: 7940 ldrb r0, [r0, #5] + 19b6: 4669 mov r1, sp + 19b8: 7048 strb r0, [r1, #1] + 19ba: 4668 mov r0, sp + 19bc: 7840 ldrb r0, [r0, #1] + 19be: 0840 lsr r0, r0, #1 + 19c0: d30b bcc 0x19da + 19c2: 49c5 ldr r1, =0x864 ; via 0x1cd8 + 19c4: 4668 mov r0, sp + 19c6: 7800 ldrb r0, [r0, #0] + 19c8: 0080 lsl r0, r0, #2 + 19ca: 5808 ldr r0, [r1, r0] + 19cc: 7800 ldrb r0, [r0, #0] + 19ce: 0600 lsl r0, r0, #24 + 19d0: 0e00 lsr r0, r0, #24 + 19d2: 4669 mov r1, sp + 19d4: 7088 strb r0, [r1, #2] + 19d6: 2000 mov r0, #0 + 19d8: 8088 strh r0, [r1, #4] + 19da: 4668 mov r0, sp + 19dc: 8881 ldrh r1, [r0, #4] + 19de: 20ff mov r0, #255 ; 0xff + 19e0: 30f5 add r0, #245 ; 0xf5 + 19e2: 4281 cmp r1, r0 + 19e4: dbdd blt 0x19a2 + 19e6: b002 add sp, #8 + 19e8: 4770 bx lr + 19ea: b500 push {lr} + 19ec: b08c sub sp, #48 ; 0x30 + 19ee: 466a mov r2, sp + 19f0: 7111 strb r1, [r2, #4] + 19f2: 9000 str r0, [sp, #0] + 19f4: 2001 mov r0, #1 + 19f6: 9002 str r0, [sp, #8] + 19f8: 9800 ldr r0, [sp, #0] + 19fa: a904 add r1, sp, #16 ; 0x10 + 19fc: aa03 add r2, sp, #12 ; 0xc + 19fe: f7ff fd75 bl 0x14ec + 1a02: 4668 mov r0, sp + 1a04: 8980 ldrh r0, [r0, #12] ; 0xc + 1a06: 2820 cmp r0, #32 ; 0x20 + 1a08: dd02 ble 0x1a10 + 1a0a: 2000 mov r0, #0 + 1a0c: 9002 str r0, [sp, #8] + 1a0e: e006 b 0x1a1e + 1a10: a804 add r0, sp, #16 ; 0x10 + 1a12: 4669 mov r1, sp + 1a14: 8989 ldrh r1, [r1, #12] ; 0xc + 1a16: 466a mov r2, sp + 1a18: 7912 ldrb r2, [r2, #4] + 1a1a: f7ff ff86 bl 0x192a + 1a1e: 9802 ldr r0, [sp, #8] + 1a20: b00c add sp, #48 ; 0x30 + 1a22: bd00 pop {pc} + 1a24: ff19 + 1a26: 0083 lsl r3, r0, #2 + 1a28: ff1a + 1a2a: 0083 lsl r3, r0, #2 + 1a2c: ff26 + 1a2e: 0083 lsl r3, r0, #2 + 1a30: ff24 + 1a32: 0083 lsl r3, r0, #2 + 1a34: ff20 + 1a36: 0083 lsl r3, r0, #2 + 1a38: ff1b + 1a3a: 0083 lsl r3, r0, #2 + 1a3c: ff18 + 1a3e: 0083 lsl r3, r0, #2 + 1a40: b500 push {lr} + 1a42: b084 sub sp, #16 ; 0x10 + 1a44: 9101 str r1, [sp, #4] + 1a46: 9000 str r0, [sp, #0] + 1a48: 4669 mov r1, sp + 1a4a: 20ff mov r0, #255 ; 0xff + 1a4c: 7308 strb r0, [r1, #12] ; 0xc + 1a4e: 2000 mov r0, #0 + 1a50: 9002 str r0, [sp, #8] + 1a52: 4669 mov r1, sp + 1a54: 48a1 ldr r0, =0xffff5805 ; via 0x1cdc + 1a56: 7800 ldrb r0, [r0, #0] + 1a58: 7348 strb r0, [r1, #13] ; 0xd + 1a5a: 48a1 ldr r0, =0xffff5005 ; via 0x1ce0 + 1a5c: 7800 ldrb r0, [r0, #0] + 1a5e: 7388 strb r0, [r1, #14] ; 0xe + 1a60: 4668 mov r0, sp + 1a62: 7b40 ldrb r0, [r0, #13] ; 0xd + 1a64: 0840 lsr r0, r0, #1 + 1a66: d206 bcs 0x1a76 + 1a68: 4668 mov r0, sp + 1a6a: 7b80 ldrb r0, [r0, #14] ; 0xe + 1a6c: 0840 lsr r0, r0, #1 + 1a6e: d202 bcs 0x1a76 + 1a70: 9801 ldr r0, [sp, #4] + 1a72: 2800 cmp r0, #0 + 1a74: d0ed beq 0x1a52 + 1a76: 4668 mov r0, sp + 1a78: 7b40 ldrb r0, [r0, #13] ; 0xd + 1a7a: 0840 lsr r0, r0, #1 + 1a7c: d316 bcc 0x1aac + 1a7e: 4669 mov r1, sp + 1a80: 2000 mov r0, #0 + 1a82: 7308 strb r0, [r1, #12] ; 0xc + 1a84: 4994 ldr r1, =0x864 ; via 0x1cd8 + 1a86: 4668 mov r0, sp + 1a88: 7b00 ldrb r0, [r0, #12] ; 0xc + 1a8a: 0080 lsl r0, r0, #2 + 1a8c: 5808 ldr r0, [r1, r0] + 1a8e: 7800 ldrb r0, [r0, #0] + 1a90: 0600 lsl r0, r0, #24 + 1a92: 0e00 lsr r0, r0, #24 + 1a94: 4669 mov r1, sp + 1a96: 73c8 strb r0, [r1, #15] ; 0xf + 1a98: 4668 mov r0, sp + 1a9a: 7bc0 ldrb r0, [r0, #15] ; 0xf + 1a9c: 9900 ldr r1, [sp, #0] + 1a9e: f7ff fc9f bl 0x13e0 + 1aa2: 9002 str r0, [sp, #8] + 1aa4: 9802 ldr r0, [sp, #8] + 1aa6: 2800 cmp r0, #0 + 1aa8: d11c bne 0x1ae4 + 1aaa: e018 b 0x1ade + 1aac: 4668 mov r0, sp + 1aae: 7b80 ldrb r0, [r0, #14] ; 0xe + 1ab0: 0840 lsr r0, r0, #1 + 1ab2: d317 bcc 0x1ae4 + 1ab4: 4669 mov r1, sp + 1ab6: 2001 mov r0, #1 + 1ab8: 7308 strb r0, [r1, #12] ; 0xc + 1aba: 4987 ldr r1, =0x864 ; via 0x1cd8 + 1abc: 4668 mov r0, sp + 1abe: 7b00 ldrb r0, [r0, #12] ; 0xc + 1ac0: 0080 lsl r0, r0, #2 + 1ac2: 5808 ldr r0, [r1, r0] + 1ac4: 7800 ldrb r0, [r0, #0] + 1ac6: 0600 lsl r0, r0, #24 + 1ac8: 0e01 lsr r1, r0, #24 + 1aca: 4668 mov r0, sp + 1acc: 73c1 strb r1, [r0, #15] ; 0xf + 1ace: 7bc0 ldrb r0, [r0, #15] ; 0xf + 1ad0: 9900 ldr r1, [sp, #0] + 1ad2: f7ff fc85 bl 0x13e0 + 1ad6: 9002 str r0, [sp, #8] + 1ad8: 9802 ldr r0, [sp, #8] + 1ada: 2800 cmp r0, #0 + 1adc: d102 bne 0x1ae4 + 1ade: 20ff mov r0, #255 ; 0xff + 1ae0: 4669 mov r1, sp + 1ae2: 7308 strb r0, [r1, #12] ; 0xc + 1ae4: 9802 ldr r0, [sp, #8] + 1ae6: 2800 cmp r0, #0 + 1ae8: d102 bne 0x1af0 + 1aea: 9801 ldr r0, [sp, #4] + 1aec: 2800 cmp r0, #0 + 1aee: d0b0 beq 0x1a52 + 1af0: 4668 mov r0, sp + 1af2: 7b00 ldrb r0, [r0, #12] ; 0xc + 1af4: b004 add sp, #16 ; 0x10 + 1af6: bd00 pop {pc} + 1af8: ff1c + 1afa: 0083 lsl r3, r0, #2 + 1afc: 0830 lsr r0, r6, #32 + 1afe: 0000 lsl r0, r0, #0 + 1b00: 084c lsr r4, r1, #1 + 1b02: 0000 lsl r0, r0, #0 + 1b04: b500 push {lr} + 1b06: b086 sub sp, #24 ; 0x18 + 1b08: 466b mov r3, sp + 1b0a: 721a strb r2, [r3, #8] + 1b0c: 9101 str r1, [sp, #4] + 1b0e: 9000 str r0, [sp, #0] + 1b10: 2001 mov r0, #1 + 1b12: 9004 str r0, [sp, #16] ; 0x10 + 1b14: 9804 ldr r0, [sp, #16] ; 0x10 + 1b16: 2800 cmp r0, #0 + 1b18: d05b beq 0x1bd2 + 1b1a: 496f ldr r1, =0x864 ; via 0x1cd8 + 1b1c: 4668 mov r0, sp + 1b1e: 7a00 ldrb r0, [r0, #8] + 1b20: 0080 lsl r0, r0, #2 + 1b22: 5808 ldr r0, [r1, r0] + 1b24: 7941 ldrb r1, [r0, #5] + 1b26: 4668 mov r0, sp + 1b28: 7301 strb r1, [r0, #12] ; 0xc + 1b2a: 7b00 ldrb r0, [r0, #12] ; 0xc + 1b2c: 0840 lsr r0, r0, #1 + 1b2e: d3f4 bcc 0x1b1a + 1b30: 4969 ldr r1, =0x864 ; via 0x1cd8 + 1b32: 4668 mov r0, sp + 1b34: 7a00 ldrb r0, [r0, #8] + 1b36: 0080 lsl r0, r0, #2 + 1b38: 5808 ldr r0, [r1, r0] + 1b3a: 7800 ldrb r0, [r0, #0] + 1b3c: 0600 lsl r0, r0, #24 + 1b3e: 0e01 lsr r1, r0, #24 + 1b40: 4668 mov r0, sp + 1b42: 7341 strb r1, [r0, #13] ; 0xd + 1b44: e02c b 0x1ba0 + 1b46: 4668 mov r0, sp + 1b48: 7b40 ldrb r0, [r0, #13] ; 0xd + 1b4a: a905 add r1, sp, #20 ; 0x14 + 1b4c: 9a00 ldr r2, [sp, #0] + 1b4e: 9b01 ldr r3, [sp, #4] + 1b50: f7ff fd8c bl 0x166c + 1b54: 9004 str r0, [sp, #16] ; 0x10 + 1b56: e039 b 0x1bcc + 1b58: 4668 mov r0, sp + 1b5a: 7b40 ldrb r0, [r0, #13] ; 0xd + 1b5c: a905 add r1, sp, #20 ; 0x14 + 1b5e: f7ff fdc2 bl 0x16e6 + 1b62: e7f7 b 0x1b54 + 1b64: 4668 mov r0, sp + 1b66: 7b40 ldrb r0, [r0, #13] ; 0xd + 1b68: a905 add r1, sp, #20 ; 0x14 + 1b6a: f7ff fe12 bl 0x1792 + 1b6e: e7f1 b 0x1b54 + 1b70: 4668 mov r0, sp + 1b72: 7b40 ldrb r0, [r0, #13] ; 0xd + 1b74: a905 add r1, sp, #20 ; 0x14 + 1b76: f7ff fe34 bl 0x17e2 + 1b7a: e7eb b 0x1b54 + 1b7c: 4668 mov r0, sp + 1b7e: 7b40 ldrb r0, [r0, #13] ; 0xd + 1b80: f7ff fe5e bl 0x1840 + 1b84: e022 b 0x1bcc + 1b86: 4668 mov r0, sp + 1b88: 7b40 ldrb r0, [r0, #13] ; 0xd + 1b8a: a905 add r1, sp, #20 ; 0x14 + 1b8c: 9a00 ldr r2, [sp, #0] + 1b8e: f7ff fe6d bl 0x186c + 1b92: e7df b 0x1b54 + 1b94: 4668 mov r0, sp + 1b96: 7b40 ldrb r0, [r0, #13] ; 0xd + 1b98: a905 add r1, sp, #20 ; 0x14 + 1b9a: f7ff feab bl 0x18f4 + 1b9e: e7d9 b 0x1b54 + 1ba0: 4850 ldr r0, =0x83ff20 ; via 0x1ce4 + 1ba2: 6800 ldr r0, [r0, #0] + 1ba4: 2800 cmp r0, #0 + 1ba6: d0ce beq 0x1b46 + 1ba8: 3801 sub r0, #1 + 1baa: 2800 cmp r0, #0 + 1bac: d0d4 beq 0x1b58 + 1bae: 3801 sub r0, #1 + 1bb0: 2800 cmp r0, #0 + 1bb2: d0d7 beq 0x1b64 + 1bb4: 3801 sub r0, #1 + 1bb6: 2800 cmp r0, #0 + 1bb8: d0da beq 0x1b70 + 1bba: 3801 sub r0, #1 + 1bbc: 2800 cmp r0, #0 + 1bbe: d0dd beq 0x1b7c + 1bc0: 3801 sub r0, #1 + 1bc2: 2800 cmp r0, #0 + 1bc4: d0df beq 0x1b86 + 1bc6: 3801 sub r0, #1 + 1bc8: 2800 cmp r0, #0 + 1bca: d0e3 beq 0x1b94 + 1bcc: 9804 ldr r0, [sp, #16] ; 0x10 + 1bce: 2800 cmp r0, #0 + 1bd0: d1a3 bne 0x1b1a + 1bd2: 9805 ldr r0, [sp, #20] ; 0x14 + 1bd4: b006 add sp, #24 ; 0x18 + 1bd6: bd00 pop {pc} + 1bd8: 4942 ldr r1, =0x83ff20 ; via 0x1ce4 + 1bda: 2001 mov r0, #1 + 1bdc: 6008 str r0, [r1, #0] + 1bde: 4842 ldr r0, =0x83ff1b ; via 0x1ce8 + 1be0: 2100 mov r1, #0 + 1be2: 7001 strb r1, [r0, #0] + 1be4: 4841 ldr r0, =0x83ff18 ; via 0x1cec + 1be6: 7001 strb r1, [r0, #0] + 1be8: 4770 bx lr + 1bea: 46c0 nop (mov r8, r8) + 1bec: ff14 + 1bee: 0083 lsl r3, r0, #2 + 1bf0: b081 sub sp, #4 + 1bf2: 483f ldr r0, =0xffff5800 ; via 0x1cf0 + 1bf4: 9000 str r0, [sp, #0] + 1bf6: 493f ldr r1, =0xffff6000 ; via 0x1cf4 + 1bf8: 2002 mov r0, #2 + 1bfa: 880a ldrh r2, [r1, #0] + 1bfc: 4310 orr r0, r2 + 1bfe: 8008 strh r0, [r1, #0] + 1c00: 483c ldr r0, =0xffff6000 ; via 0x1cf4 + 1c02: 8801 ldrh r1, [r0, #0] + 1c04: 0849 lsr r1, r1, #1 + 1c06: 0049 lsl r1, r1, #1 + 1c08: 8001 strh r1, [r0, #0] + 1c0a: 493a ldr r1, =0xffff6000 ; via 0x1cf4 + 1c0c: 8808 ldrh r0, [r1, #0] + 1c0e: 2202 mov r2, #2 + 1c10: 4390 bic r0, r2 + 1c12: 8008 strh r0, [r1, #0] + 1c14: 9900 ldr r1, [sp, #0] + 1c16: 2007 mov r0, #7 + 1c18: 7208 strb r0, [r1, #8] + 1c1a: 9900 ldr r1, [sp, #0] + 1c1c: 20bf mov r0, #191 ; 0xbf + 1c1e: 70c8 strb r0, [r1, #3] + 1c20: 9800 ldr r0, [sp, #0] + 1c22: 1c81 add r1, r0, #2 + 1c24: 2010 mov r0, #16 ; 0x10 + 1c26: 880a ldrh r2, [r1, #0] + 1c28: 4310 orr r0, r2 + 1c2a: 8008 strh r0, [r1, #0] + 1c2c: 9800 ldr r0, [sp, #0] + 1c2e: 2180 mov r1, #128 ; 0x80 + 1c30: 70c1 strb r1, [r0, #3] + 1c32: 9800 ldr r0, [sp, #0] + 1c34: 2107 mov r1, #7 + 1c36: 7081 strb r1, [r0, #2] + 1c38: 9800 ldr r0, [sp, #0] + 1c3a: 21bf mov r1, #191 ; 0xbf + 1c3c: 70c1 strb r1, [r0, #3] + 1c3e: 9800 ldr r0, [sp, #0] + 1c40: 2107 mov r1, #7 + 1c42: 7001 strb r1, [r0, #0] + 1c44: 9800 ldr r0, [sp, #0] + 1c46: 2100 mov r1, #0 + 1c48: 7041 strb r1, [r0, #1] + 1c4a: 9800 ldr r0, [sp, #0] + 1c4c: 2103 mov r1, #3 + 1c4e: 70c1 strb r1, [r0, #3] + 1c50: 9800 ldr r0, [sp, #0] + 1c52: 2100 mov r1, #0 + 1c54: 7201 strb r1, [r0, #8] + 1c56: 4828 ldr r0, =0xffff5000 ; via 0x1cf8 + 1c58: 9000 str r0, [sp, #0] + 1c5a: 9800 ldr r0, [sp, #0] + 1c5c: 2107 mov r1, #7 + 1c5e: 7201 strb r1, [r0, #8] + 1c60: 9900 ldr r1, [sp, #0] + 1c62: 20bf mov r0, #191 ; 0xbf + 1c64: 70c8 strb r0, [r1, #3] + 1c66: 9800 ldr r0, [sp, #0] + 1c68: 1c80 add r0, r0, #2 + 1c6a: 2110 mov r1, #16 ; 0x10 + 1c6c: 8802 ldrh r2, [r0, #0] + 1c6e: 4311 orr r1, r2 + 1c70: 8001 strh r1, [r0, #0] + 1c72: 9800 ldr r0, [sp, #0] + 1c74: 2180 mov r1, #128 ; 0x80 + 1c76: 70c1 strb r1, [r0, #3] + 1c78: 9800 ldr r0, [sp, #0] + 1c7a: 2107 mov r1, #7 + 1c7c: 7081 strb r1, [r0, #2] + 1c7e: 9800 ldr r0, [sp, #0] + 1c80: 21bf mov r1, #191 ; 0xbf + 1c82: 70c1 strb r1, [r0, #3] + 1c84: 9800 ldr r0, [sp, #0] + 1c86: 2107 mov r1, #7 + 1c88: 7001 strb r1, [r0, #0] + 1c8a: 9800 ldr r0, [sp, #0] + 1c8c: 2100 mov r1, #0 + 1c8e: 7041 strb r1, [r0, #1] + 1c90: 9900 ldr r1, [sp, #0] + 1c92: 2003 mov r0, #3 + 1c94: 70c8 strb r0, [r1, #3] + 1c96: 9800 ldr r0, [sp, #0] + 1c98: 2100 mov r1, #0 + 1c9a: 7201 strb r1, [r0, #8] + 1c9c: b001 add sp, #4 + 1c9e: 4770 bx lr + 1ca0: b081 sub sp, #4 + 1ca2: 4669 mov r1, sp + 1ca4: 7008 strb r0, [r1, #0] + 1ca6: 490c ldr r1, =0x864 ; via 0x1cd8 + 1ca8: 4668 mov r0, sp + 1caa: 7800 ldrb r0, [r0, #0] + 1cac: 0080 lsl r0, r0, #2 + 1cae: 5808 ldr r0, [r1, r0] + 1cb0: 7941 ldrb r1, [r0, #5] + 1cb2: 4668 mov r0, sp + 1cb4: 7041 strb r1, [r0, #1] + 1cb6: 7840 ldrb r0, [r0, #1] + 1cb8: 09c0 lsr r0, r0, #7 + 1cba: d20b bcs 0x1cd4 + 1cbc: 4806 ldr r0, =0x864 ; via 0x1cd8 + 1cbe: 4669 mov r1, sp + 1cc0: 7809 ldrb r1, [r1, #0] + 1cc2: 0089 lsl r1, r1, #2 + 1cc4: 5840 ldr r0, [r0, r1] + 1cc6: 7940 ldrb r0, [r0, #5] + 1cc8: 4669 mov r1, sp + 1cca: 7048 strb r0, [r1, #1] + 1ccc: 4668 mov r0, sp + 1cce: 7840 ldrb r0, [r0, #1] + 1cd0: 09c0 lsr r0, r0, #7 + 1cd2: d3f3 bcc 0x1cbc + 1cd4: b001 add sp, #4 + 1cd6: 4770 bx lr + 1cd8: 0864 lsr r4, r4, #1 + 1cda: 0000 lsl r0, r0, #0 + 1cdc: 5805 ldr r5, [r0, r0] + 1cde: ffff + 1ce0: 5005 str r5, [r0, r0] + 1ce2: ffff + 1ce4: ff20 + 1ce6: 0083 lsl r3, r0, #2 + 1ce8: ff1b + 1cea: 0083 lsl r3, r0, #2 + 1cec: ff18 + 1cee: 0083 lsl r3, r0, #2 + 1cf0: 5800 ldr r0, [r0, r0] + 1cf2: ffff + 1cf4: 6000 str r0, [r0, #0] + 1cf6: ffff + 1cf8: 5000 str r0, [r0, r0] + 1cfa: ffff + 1cfc: b500 push {lr} + 1cfe: b087 sub sp, #28 ; 0x1c + 1d00: 466b mov r3, sp + 1d02: 721a strb r2, [r3, #8] + 1d04: 9101 str r1, [sp, #4] + 1d06: 9000 str r0, [sp, #0] + 1d08: 9900 ldr r1, [sp, #0] + 1d0a: 2000 mov r0, #0 + 1d0c: 8008 strh r0, [r1, #0] + 1d0e: 9801 ldr r0, [sp, #4] + 1d10: 2100 mov r1, #0 + 1d12: 8001 strh r1, [r0, #0] + 1d14: 2000 mov r0, #0 + 1d16: 9003 str r0, [sp, #12] ; 0xc + 1d18: f7ff ff5e bl 0x1bd8 + 1d1c: a805 add r0, sp, #20 ; 0x14 + 1d1e: a906 add r1, sp, #24 ; 0x18 + 1d20: 466a mov r2, sp + 1d22: 7a12 ldrb r2, [r2, #8] + 1d24: f7ff feee bl 0x1b04 + 1d28: 9004 str r0, [sp, #16] ; 0x10 + 1d2a: 9804 ldr r0, [sp, #16] ; 0x10 + 1d2c: 2800 cmp r0, #0 + 1d2e: d11f bne 0x1d70 + 1d30: 9803 ldr r0, [sp, #12] ; 0xc + 1d32: 2800 cmp r0, #0 + 1d34: d11c bne 0x1d70 + 1d36: 9800 ldr r0, [sp, #0] + 1d38: 4669 mov r1, sp + 1d3a: 8b0a ldrh r2, [r1, #24] ; 0x18 + 1d3c: 8801 ldrh r1, [r0, #0] + 1d3e: 1851 add r1, r2, r1 + 1d40: 8001 strh r1, [r0, #0] + 1d42: 9905 ldr r1, [sp, #20] ; 0x14 + 1d44: 4668 mov r0, sp + 1d46: 8b00 ldrh r0, [r0, #24] ; 0x18 + 1d48: 8008 strh r0, [r1, #0] + 1d4a: 9801 ldr r0, [sp, #4] + 1d4c: 9905 ldr r1, [sp, #20] ; 0x14 + 1d4e: 8809 ldrh r1, [r1, #0] + 1d50: 8802 ldrh r2, [r0, #0] + 1d52: 1889 add r1, r1, r2 + 1d54: 8001 strh r1, [r0, #0] + 1d56: a805 add r0, sp, #20 ; 0x14 + 1d58: a906 add r1, sp, #24 ; 0x18 + 1d5a: 466a mov r2, sp + 1d5c: 7a12 ldrb r2, [r2, #8] + 1d5e: f7ff fed1 bl 0x1b04 + 1d62: 9004 str r0, [sp, #16] ; 0x10 + 1d64: 9804 ldr r0, [sp, #16] ; 0x10 + 1d66: 2800 cmp r0, #0 + 1d68: d102 bne 0x1d70 + 1d6a: 9803 ldr r0, [sp, #12] ; 0xc + 1d6c: 2800 cmp r0, #0 + 1d6e: d0e2 beq 0x1d36 + 1d70: 9804 ldr r0, [sp, #16] ; 0x10 + 1d72: 2801 cmp r0, #1 + 1d74: d101 bne 0x1d7a + 1d76: 2004 mov r0, #4 + 1d78: 9003 str r0, [sp, #12] ; 0xc + 1d7a: 9803 ldr r0, [sp, #12] ; 0xc + 1d7c: b007 add sp, #28 ; 0x1c + 1d7e: bd00 pop {pc} + 1d80: b089 sub sp, #36 ; 0x24 + 1d82: 201a mov r0, #26 ; 0x1a + 1d84: 9005 str r0, [sp, #20] ; 0x14 + 1d86: 2018 mov r0, #24 ; 0x18 + 1d88: 9006 str r0, [sp, #24] ; 0x18 + 1d8a: 2000 mov r0, #0 + 1d8c: 9008 str r0, [sp, #32] ; 0x20 + 1d8e: 4669 mov r1, sp + 1d90: 9805 ldr r0, [sp, #20] ; 0x14 + 1d92: 8800 ldrh r0, [r0, #0] + 1d94: 8008 strh r0, [r1, #0] + 1d96: 9806 ldr r0, [sp, #24] ; 0x18 + 1d98: 8800 ldrh r0, [r0, #0] + 1d9a: 8048 strh r0, [r1, #2] + 1d9c: 4668 mov r0, sp + 1d9e: 8841 ldrh r1, [r0, #2] + 1da0: 8800 ldrh r0, [r0, #0] + 1da2: 0400 lsl r0, r0, #16 + 1da4: 1808 add r0, r1, r0 + 1da6: 9001 str r0, [sp, #4] + 1da8: 9801 ldr r0, [sp, #4] + 1daa: 0200 lsl r0, r0, #8 + 1dac: 0a00 lsr r0, r0, #8 + 1dae: 0080 lsl r0, r0, #2 + 1db0: 3008 add r0, #8 + 1db2: 9007 str r0, [sp, #28] ; 0x1c + 1db4: 9807 ldr r0, [sp, #28] ; 0x1c + 1db6: 3018 add r0, #24 ; 0x18 + 1db8: 9002 str r0, [sp, #8] + 1dba: 9802 ldr r0, [sp, #8] + 1dbc: 9004 str r0, [sp, #16] ; 0x10 + 1dbe: 9802 ldr r0, [sp, #8] + 1dc0: 3002 add r0, #2 + 1dc2: 9003 str r0, [sp, #12] ; 0xc + 1dc4: 9803 ldr r0, [sp, #12] ; 0xc + 1dc6: 8801 ldrh r1, [r0, #0] + 1dc8: 4806 ldr r0, =0xffff ; via 0x1de4 + 1dca: 4281 cmp r1, r0 + 1dcc: d104 bne 0x1dd8 + 1dce: 9804 ldr r0, [sp, #16] ; 0x10 + 1dd0: 8800 ldrh r0, [r0, #0] + 1dd2: 4904 ldr r1, =0xffff ; via 0x1de4 + 1dd4: 4288 cmp r0, r1 + 1dd6: d001 beq 0x1ddc + 1dd8: 2001 mov r0, #1 + 1dda: 9008 str r0, [sp, #32] ; 0x20 + 1ddc: 9808 ldr r0, [sp, #32] ; 0x20 + 1dde: b009 add sp, #36 ; 0x24 + 1de0: 4770 bx lr + 1de2: 46c0 nop (mov r8, r8) + + 1de4: 0000ffff + + 1de8: e92d4000 stmdb sp!, {lr} + 1dec: e28fe001 add lr, pc, #1 + 1df0: e12fff1e bx lr + 1df4: f7fe fe6d bl 0xad2 + 1df8: 4778 bx pc + 1dfa: 46c0 nop (mov r8, r8) + 1dfc: e8bd8000 ldmia sp!, {pc} + +<1E00-1EFF: all FFs> + + 1f00: 00000001 + +<1F04-end: all FFs> diff -r e5e5ed527cc1 -r 81cda18b0487 compal/boot/c123-boot.bin Binary file compal/boot/c123-boot.bin has changed diff -r e5e5ed527cc1 -r 81cda18b0487 compal/boot/c123-boot.disasm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/compal/boot/c123-boot.disasm Sat Jan 14 06:17:56 2023 +0000 @@ -0,0 +1,2647 @@ +RESET entry and exception vectors: + 0: ea000225 b 0x89c + 4: ea000825 b 0x20a0 + 8: ea000825 b 0x20a4 + c: ea000825 b 0x20a8 + 10: ea000825 b 0x20ac + 14: ea000825 b 0x20b0 + 18: ea000825 b 0x20b4 + +; magic words, vary by version + 20: 44aa338a + 24: 44aa338b + 28: 44aa33b8 + 2c: 44aa33b9 + +<30-7FF: all FFs> + +00000800: 42 4F 4F 54 2E 39 30 2E 30 34 00 00 00 00 00 00 BOOT.90.04...... +00000810: 31 30 30 33 01 01 00 00 FF FF FF FF FF FF FF FF 1003............ +00000820: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ + +; everything up to 0x958 is the same as in the C139 version + 830: 00000006 + 834: 00000000 + 838: 00000000 + 83c: 00000048 + 840: 00000044 + 844: 00000052 + 848: 0000001b + 84c: 00000005 + 850: 00000000 + 854: 00000000 + 858: 00000000 + 85c: 00000000 + 860: 000000fa + 864: ffff5800 + 868: ffff5000 + 86c: fffffb00 + 870: 02a102a1 + 874: 028302a1 + 878: 00c00281 + 87c: 002a0040 + 880: 00000040 + 884: fffffd00 + 888: ffff9800 + 88c: fffffb10 + 890: ffffff08 + 894: 20061081 + 898: 00000800 + +; RESET entry point + 89c: e51f1020 ldr r1, =0xfffffd00 ; via 0x884 + 8a0: e1d120b2 ldrh r2, [r1, #2] + 8a4: e51f002c ldr r0, =0x40 ; via 0x880 + 8a8: e1800002 orr r0, r0, r2 + 8ac: e1c100b2 strh r0, [r1, #2] + 8b0: e51f1030 ldr r1, =0xffff9800 ; via 0x888 + 8b4: e15f22b6 ldrh r2, =0x2006 ; via 0x896 + 8b8: e1c120b0 strh r2, [r1] + 8bc: e5912000 ldr r2, [r1] + 8c0: e2022001 and r2, r2, #1 + 8c4: e3520001 cmp r2, #1 + 8c8: 0afffffb beq 0x8bc + 8cc: e51f1050 ldr r1, =0xfffffd00 ; via 0x884 + 8d0: e15f24b4 ldrh r2, =0x1081 ; via 0x894 + 8d4: e1c120b0 strh r2, [r1] + 8d8: e51f1054 ldr r1, =0xfffffb10 ; via 0x88c + 8dc: e15f24bc ldrh r2, =0x800 ; via 0x898 + 8e0: e1d100b0 ldrh r0, [r1] + 8e4: e1800002 orr r0, r0, r2 + 8e8: e1c100b0 strh r0, [r1] + 8ec: e51f1064 ldr r1, =0xffffff08 ; via 0x890 + 8f0: e15f25be ldrh r2, =0x0 ; via 0x89a + 8f4: e1c120b0 strh r2, [r1] + 8f8: e51f1094 ldr r1, =0xfffffb00 ; via 0x86c + 8fc: e15f29b4 ldrh r2, =0x2a1 ; via 0x870 + 900: e1c120b0 strh r2, [r1] + 904: e15f29ba ldrh r2, =0x2a1 ; via 0x872 + 908: e1c120b2 strh r2, [r1, #2] + 90c: e15f2ab0 ldrh r2, =0x2a1 ; via 0x874 + 910: e1c120b4 strh r2, [r1, #4] + 914: e15f2ab6 ldrh r2, =0x283 ; via 0x876 + 918: e1c120b6 strh r2, [r1, #6] + 91c: e15f2abc ldrh r2, =0x281 ; via 0x878 + 920: e1c120ba strh r2, [r1, #10] ; 0xa + 924: e15f2bb2 ldrh r2, =0xc0 ; via 0x87a + 928: e1c120bc strh r2, [r1, #12] ; 0xc + 92c: e15f2bb8 ldrh r2, =0x40 ; via 0x87c + 930: e1c120b8 strh r2, [r1, #8] + 934: e15f2bbe ldrh r2, =0x2a ; via 0x87e + 938: e1c120be strh r2, [r1, #14] ; 0xe + 93c: e59f0020 ldr r0, =0x83e424 ; via 0x964 + 940: e3a01b01 mov r1, #1024 ; 0x400 + 944: e2411004 sub r1, r1, #4 + 948: e0802001 add r2, r0, r1 + 94c: e3c22003 bic r2, r2, #3 + 950: e1a0d002 mov sp, r2 +; business logic + 954: e92d100f stmdb sp!, {r0, r1, r2, r3, r12} + 958: eb00051e bl 0x1dd8 + 95c: e8bd100f ldmia sp!, {r0, r1, r2, r3, r12} + 960: ea0005e4 b 0x20f8 + +; stack address, varies by version + 964: 0083e424 + +; 0x968 routine same as in the C139 version + 968: 4961 ldr r1, =0xfffffa08 ; via 0xaf0 + 96a: 4862 ldr r0, =0xffff ; via 0xaf4 + 96c: 8008 strh r0, [r1, #0] + 96e: 4862 ldr r0, =0xfffffa0a ; via 0xaf8 + 970: 211f mov r1, #31 ; 0x1f + 972: 8001 strh r1, [r0, #0] + 974: 4861 ldr r0, =0xfffff804 ; via 0xafc + 976: 21f5 mov r1, #245 ; 0xf5 + 978: 8001 strh r1, [r0, #0] + 97a: 21a0 mov r1, #160 ; 0xa0 + 97c: 8001 strh r1, [r0, #0] + 97e: 4860 ldr r0, =0xffff9800 ; via 0xb00 + 980: 4960 ldr r1, =0x2002 ; via 0xb04 + 982: 8001 strh r1, [r0, #0] + 984: 485e ldr r0, =0xffff9800 ; via 0xb00 + 986: 8800 ldrh r0, [r0, #0] + 988: 0840 lsr r0, r0, #1 + 98a: d2fb bcs 0x984 + 98c: 495e ldr r1, =0xfffffd00 ; via 0xb08 + 98e: 485f ldr r0, =0x1001 ; via 0xb0c + 990: 8008 strh r0, [r1, #0] + 992: 46f7 mov pc, lr + + 994: b500 push {lr} + 996: b0ff sub sp, #508 ; 0x1fc + 998: b0ca sub sp, #296 ; 0x128 + 99a: 2000 mov r0, #0 + 99c: 9001 str r0, [sp, #4] + 99e: 9801 ldr r0, [sp, #4] + 9a0: 2800 cmp r0, #0 + 9a2: d14e bne 0xa42 + 9a4: a846 add r0, sp, #280 ; 0x118 + 9a6: 2100 mov r1, #0 + 9a8: f001 f842 bl 0x1a30 + 9ac: a9c8 add r1, sp, #800 ; 0x320 + 9ae: 7008 strb r0, [r1, #0] + 9b0: a846 add r0, sp, #280 ; 0x118 + 9b2: a902 add r1, sp, #8 + 9b4: f000 fb00 bl 0xfb8 + 9b8: 9000 str r0, [sp, #0] + 9ba: 9800 ldr r0, [sp, #0] + 9bc: 2800 cmp r0, #0 + 9be: d01b beq 0x9f8 + 9c0: a924 add r1, sp, #144 ; 0x90 + 9c2: 4668 mov r0, sp + 9c4: 7a00 ldrb r0, [r0, #8] + 9c6: 7008 strb r0, [r1, #0] + 9c8: 2191 mov r1, #145 ; 0x91 + 9ca: 466a mov r2, sp + 9cc: 4668 mov r0, sp + 9ce: 7800 ldrb r0, [r0, #0] + 9d0: 5488 strb r0, [r1, r2] + 9d2: e01b b 0xa0c + 9d4: a802 add r0, sp, #8 + 9d6: a924 add r1, sp, #144 ; 0x90 + 9d8: f000 fddc bl 0x1594 + 9dc: e016 b 0xa0c + 9de: a802 add r0, sp, #8 + 9e0: a924 add r1, sp, #144 ; 0x90 + 9e2: aac8 add r2, sp, #800 ; 0x320 + 9e4: 7812 ldrb r2, [r2, #0] + 9e6: f000 fde9 bl 0x15bc + 9ea: e00f b 0xa0c + 9ec: a802 add r0, sp, #8 + 9ee: a924 add r1, sp, #144 ; 0x90 + 9f0: f000 fe1b bl 0x162a + 9f4: 90c7 str r0, [sp, #796] ; 0x31c + 9f6: e009 b 0xa0c + 9f8: 4668 mov r0, sp + 9fa: 7a00 ldrb r0, [r0, #8] + 9fc: 2800 cmp r0, #0 + 9fe: d0e9 beq 0x9d4 + a00: 3809 sub r0, #9 + a02: 2800 cmp r0, #0 + a04: d0eb beq 0x9de + a06: 3801 sub r0, #1 + a08: 2800 cmp r0, #0 + a0a: d0ef beq 0x9ec + a0c: a824 add r0, sp, #144 ; 0x90 + a0e: a986 add r1, sp, #536 ; 0x218 + a10: f000 fbb5 bl 0x117e + a14: 2800 cmp r0, #0 + a16: d111 bne 0xa3c + a18: a886 add r0, sp, #536 ; 0x218 + a1a: a9c8 add r1, sp, #800 ; 0x320 + a1c: 7809 ldrb r1, [r1, #0] + a1e: f000 ffdc bl 0x19da + a22: 2800 cmp r0, #0 + a24: d00a beq 0xa3c + a26: 4668 mov r0, sp + a28: 7a00 ldrb r0, [r0, #8] + a2a: 280a cmp r0, #10 ; 0xa + a2c: d106 bne 0xa3c + a2e: a8c8 add r0, sp, #800 ; 0x320 + a30: 7800 ldrb r0, [r0, #0] + a32: f001 f92d bl 0x1c90 + a36: 98c7 ldr r0, [sp, #796] ; 0x31c + a38: f000 fabc bl 0xfb4 + a3c: 9801 ldr r0, [sp, #4] + a3e: 2800 cmp r0, #0 + a40: d0b0 beq 0x9a4 + a42: b07f add sp, #508 ; 0x1fc + a44: b04a add sp, #296 ; 0x128 + a46: bd00 pop {pc} + + a48: b500 push {lr} + a4a: b0ff sub sp, #508 ; 0x1fc + a4c: b0c8 sub sp, #288 ; 0x120 + a4e: 2000 mov r0, #0 + a50: 9000 str r0, [sp, #0] + a52: a846 add r0, sp, #280 ; 0x118 + a54: 2101 mov r1, #1 + a56: f000 ffeb bl 0x1a30 + a5a: a9c6 add r1, sp, #792 ; 0x318 + a5c: 7008 strb r0, [r1, #0] + a5e: a8c6 add r0, sp, #792 ; 0x318 + a60: 7800 ldrb r0, [r0, #0] + a62: 28ff cmp r0, #255 ; 0xff + a64: d031 beq 0xaca + a66: a846 add r0, sp, #280 ; 0x118 + a68: a902 add r1, sp, #8 + a6a: f000 faa5 bl 0xfb8 + a6e: 9001 str r0, [sp, #4] + a70: 9801 ldr r0, [sp, #4] + a72: 2800 cmp r0, #0 + a74: d014 beq 0xaa0 + a76: a924 add r1, sp, #144 ; 0x90 + a78: 4668 mov r0, sp + a7a: 7a00 ldrb r0, [r0, #8] + a7c: 7008 strb r0, [r1, #0] + a7e: 2291 mov r2, #145 ; 0x91 + a80: 4668 mov r0, sp + a82: 4669 mov r1, sp + a84: 7909 ldrb r1, [r1, #4] + a86: 5411 strb r1, [r2, r0] + a88: a824 add r0, sp, #144 ; 0x90 + a8a: a986 add r1, sp, #536 ; 0x218 + a8c: f000 fb77 bl 0x117e + a90: 2800 cmp r0, #0 + a92: d11a bne 0xaca + a94: a886 add r0, sp, #536 ; 0x218 + a96: a9c6 add r1, sp, #792 ; 0x318 + a98: 7809 ldrb r1, [r1, #0] + a9a: f000 ff9e bl 0x19da + a9e: e014 b 0xaca + aa0: 4668 mov r0, sp + aa2: 7a00 ldrb r0, [r0, #8] + aa4: 2800 cmp r0, #0 + aa6: d110 bne 0xaca + aa8: a802 add r0, sp, #8 + aaa: a924 add r1, sp, #144 ; 0x90 + aac: f000 fd72 bl 0x1594 + ab0: a824 add r0, sp, #144 ; 0x90 + ab2: a986 add r1, sp, #536 ; 0x218 + ab4: f000 fb63 bl 0x117e + ab8: 2800 cmp r0, #0 + aba: d104 bne 0xac6 + abc: a886 add r0, sp, #536 ; 0x218 + abe: a9c6 add r1, sp, #792 ; 0x318 + ac0: 7809 ldrb r1, [r1, #0] + ac2: f000 ff8a bl 0x19da + ac6: 2001 mov r0, #1 + ac8: 9000 str r0, [sp, #0] + aca: 9800 ldr r0, [sp, #0] + acc: b07f add sp, #508 ; 0x1fc + ace: b048 add sp, #288 ; 0x120 + ad0: bd00 pop {pc} + +; Main entry routine at the same location as in the C139 version + ad2: b500 push {lr} + ad4: b082 sub sp, #8 + ad6: f7ff ff47 bl 0x968 + ada: f001 f881 bl 0x1be0 + ade: f000 fd47 bl 0x1570 + ae2: f000 f81f bl 0xb24 + ae6: f000 f940 bl 0xd6a + aea: b002 add sp, #8 + aec: bd00 pop {pc} + aee: 46c0 nop (mov r8, r8) + + af0: fffffa08 + af4: 0000ffff + af8: fffffa0a + afc: fffff804 + b00: ffff9800 + b04: 00002002 + b08: fffffd00 + b0c: 00001001 + + b10: e3a0d502 mov sp, #8388608 ; 0x800000 + b14: e28dd802 add sp, sp, #131072 ; 0x20000 + b18: e28fe005 add lr, pc, #5 + b1c: e12fff1e bx lr + b20: e1a00000 mov r0, r0 + +; 0xb24 function appears to be the same as in the C139 version, +; but calls 0xed4 instead of 0xf2c. + b24: b500 push {lr} + b26: b082 sub sp, #8 + b28: 49e8 ldr r1, =0x83ff00 ; via 0xecc + b2a: 48e9 ldr r0, =0xffff5800 ; via 0xed0 + b2c: 6008 str r0, [r1, #0] + b2e: 2000 mov r0, #0 + b30: 2102 mov r1, #2 + b32: f000 f9cf bl 0xed4 + b36: 2000 mov r0, #0 + b38: 9000 str r0, [sp, #0] + b3a: 9900 ldr r1, [sp, #0] + b3c: 2005 mov r0, #5 + b3e: 0300 lsl r0, r0, #12 + b40: 4281 cmp r1, r0 + b42: d207 bcs 0xb54 + b44: 9800 ldr r0, [sp, #0] + b46: 3001 add r0, #1 + b48: 9000 str r0, [sp, #0] + b4a: 9900 ldr r1, [sp, #0] + b4c: 2005 mov r0, #5 + b4e: 0300 lsl r0, r0, #12 + b50: 4281 cmp r1, r0 + b52: d3f7 bcc 0xb44 + b54: f000 f82a bl 0xbac + b58: 2000 mov r0, #0 + b5a: 2107 mov r1, #7 + b5c: f000 f9ba bl 0xed4 + b60: 2000 mov r0, #0 + b62: 9000 str r0, [sp, #0] + b64: 9900 ldr r1, [sp, #0] + b66: 2005 mov r0, #5 + b68: 0300 lsl r0, r0, #12 + b6a: 4281 cmp r1, r0 + b6c: d207 bcs 0xb7e + b6e: 9800 ldr r0, [sp, #0] + b70: 3001 add r0, #1 + b72: 9000 str r0, [sp, #0] + b74: 9900 ldr r1, [sp, #0] + b76: 2005 mov r0, #5 + b78: 0300 lsl r0, r0, #12 + b7a: 4281 cmp r1, r0 + b7c: d3f7 bcc 0xb6e + b7e: f000 f815 bl 0xbac + b82: 2000 mov r0, #0 + b84: 9001 str r0, [sp, #4] + b86: 9000 str r0, [sp, #0] + b88: 9900 ldr r1, [sp, #0] + b8a: 2005 mov r0, #5 + b8c: 0400 lsl r0, r0, #16 + b8e: 4281 cmp r1, r0 + b90: d20a bcs 0xba8 + b92: 9801 ldr r0, [sp, #4] + b94: 3001 add r0, #1 + b96: 9001 str r0, [sp, #4] + b98: 9800 ldr r0, [sp, #0] + b9a: 3001 add r0, #1 + b9c: 9000 str r0, [sp, #0] + b9e: 9900 ldr r1, [sp, #0] + ba0: 2005 mov r0, #5 + ba2: 0400 lsl r0, r0, #16 + ba4: 4281 cmp r1, r0 + ba6: d3f4 bcc 0xb92 + ba8: b002 add sp, #8 + baa: bd00 pop {pc} + +; serial download protocol + bac: b500 push {lr} + bae: b086 sub sp, #24 ; 0x18 + bb0: 48f3 ldr r0, =0x800100 ; via 0xf80 + bb2: 9005 str r0, [sp, #20] ; 0x14 + bb4: 201b mov r0, #27 ; 0x1b + bb6: f000 f935 bl 0xe24 + bba: 20f6 mov r0, #246 ; 0xf6 + bbc: f000 f932 bl 0xe24 + bc0: 2002 mov r0, #2 + bc2: f000 f92f bl 0xe24 + bc6: 2000 mov r0, #0 + bc8: f000 f92c bl 0xe24 + bcc: 2041 mov r0, #65 ; 0x41 + bce: f000 f929 bl 0xe24 + bd2: 2001 mov r0, #1 + bd4: f000 f926 bl 0xe24 + bd8: 2040 mov r0, #64 ; 0x40 + bda: f000 f923 bl 0xe24 + bde: 2001 mov r0, #1 + be0: 0300 lsl r0, r0, #12 + be2: f000 f937 bl 0xe54 + be6: 281b cmp r0, #27 ; 0x1b + be8: d000 beq 0xbec + bea: e0bc b 0xd66 + bec: 2001 mov r0, #1 + bee: 0300 lsl r0, r0, #12 + bf0: f000 f930 bl 0xe54 + bf4: 28f6 cmp r0, #246 ; 0xf6 + bf6: d000 beq 0xbfa + bf8: e0b5 b 0xd66 + bfa: 2001 mov r0, #1 + bfc: 0300 lsl r0, r0, #12 + bfe: f000 f929 bl 0xe54 + c02: 2802 cmp r0, #2 + c04: d000 beq 0xc08 + c06: e0ae b 0xd66 + c08: 2001 mov r0, #1 + c0a: 0300 lsl r0, r0, #12 + c0c: f000 f922 bl 0xe54 + c10: 2800 cmp r0, #0 + c12: d000 beq 0xc16 + c14: e0a7 b 0xd66 + c16: 2001 mov r0, #1 + c18: 0300 lsl r0, r0, #12 + c1a: f000 f91b bl 0xe54 + c1e: 2852 cmp r0, #82 ; 0x52 + c20: d000 beq 0xc24 + c22: e0a0 b 0xd66 + c24: 2001 mov r0, #1 + c26: 0300 lsl r0, r0, #12 + c28: f000 f914 bl 0xe54 + c2c: 2801 cmp r0, #1 + c2e: d000 beq 0xc32 + c30: e099 b 0xd66 + c32: 2001 mov r0, #1 + c34: 0300 lsl r0, r0, #12 + c36: f000 f90d bl 0xe54 + c3a: 2853 cmp r0, #83 ; 0x53 + c3c: d000 beq 0xc40 + c3e: e092 b 0xd66 + c40: 201b mov r0, #27 ; 0x1b + c42: f000 f8ef bl 0xe24 + c46: 20f6 mov r0, #246 ; 0xf6 + c48: f000 f8ec bl 0xe24 + c4c: 2002 mov r0, #2 + c4e: f000 f8e9 bl 0xe24 + c52: 2000 mov r0, #0 + c54: f000 f8e6 bl 0xe24 + c58: 2041 mov r0, #65 ; 0x41 + c5a: f000 f8e3 bl 0xe24 + c5e: 2002 mov r0, #2 + c60: f000 f8e0 bl 0xe24 + c64: 2043 mov r0, #67 ; 0x43 + c66: f000 f8dd bl 0xe24 + c6a: 2001 mov r0, #1 + c6c: 0300 lsl r0, r0, #12 + c6e: f000 f8f1 bl 0xe54 + c72: 4669 mov r1, sp + c74: 7208 strb r0, [r1, #8] + c76: 4668 mov r0, sp + c78: 2102 mov r1, #2 + c7a: 7441 strb r1, [r0, #17] ; 0x11 + c7c: 2000 mov r0, #0 + c7e: 9000 str r0, [sp, #0] + c80: 9800 ldr r0, [sp, #0] + c82: 2802 cmp r0, #2 + c84: d216 bcs 0xcb4 + c86: 2001 mov r0, #1 + c88: 0300 lsl r0, r0, #12 + c8a: f000 f8e3 bl 0xe54 + c8e: 466a mov r2, sp + c90: 9900 ldr r1, [sp, #0] + c92: 1a51 sub r1, r2, r1 + c94: 7348 strb r0, [r1, #13] ; 0xd + c96: 4668 mov r0, sp + c98: 9900 ldr r1, [sp, #0] + c9a: 1a40 sub r0, r0, r1 + c9c: 7b40 ldrb r0, [r0, #13] ; 0xd + c9e: 4669 mov r1, sp + ca0: 7c49 ldrb r1, [r1, #17] ; 0x11 + ca2: 4048 eor r0, r1 + ca4: 4669 mov r1, sp + ca6: 7448 strb r0, [r1, #17] ; 0x11 + ca8: 9800 ldr r0, [sp, #0] + caa: 3001 add r0, #1 + cac: 9000 str r0, [sp, #0] + cae: 9800 ldr r0, [sp, #0] + cb0: 2802 cmp r0, #2 + cb2: d3e8 bcc 0xc86 + cb4: 4668 mov r0, sp + cb6: 8980 ldrh r0, [r0, #12] ; 0xc + cb8: 466a mov r2, sp + cba: 1e41 sub r1, r0, #1 + cbc: 8191 strh r1, [r2, #12] ; 0xc + cbe: 2800 cmp r0, #0 + cc0: d016 beq 0xcf0 + cc2: 2001 mov r0, #1 + cc4: 0300 lsl r0, r0, #12 + cc6: f000 f8c5 bl 0xe54 + cca: 9905 ldr r1, [sp, #20] ; 0x14 + ccc: 7008 strb r0, [r1, #0] + cce: 9805 ldr r0, [sp, #20] ; 0x14 + cd0: 7801 ldrb r1, [r0, #0] + cd2: 4668 mov r0, sp + cd4: 7c40 ldrb r0, [r0, #17] ; 0x11 + cd6: 4041 eor r1, r0 + cd8: 4668 mov r0, sp + cda: 7441 strb r1, [r0, #17] ; 0x11 + cdc: 9805 ldr r0, [sp, #20] ; 0x14 + cde: 3001 add r0, #1 + ce0: 9005 str r0, [sp, #20] ; 0x14 + ce2: 4668 mov r0, sp + ce4: 8982 ldrh r2, [r0, #12] ; 0xc + ce6: 4669 mov r1, sp + ce8: 1e50 sub r0, r2, #1 + cea: 8188 strh r0, [r1, #12] ; 0xc + cec: 2a00 cmp r2, #0 + cee: d1e8 bne 0xcc2 + cf0: 2001 mov r0, #1 + cf2: 0300 lsl r0, r0, #12 + cf4: f000 f8ae bl 0xe54 + cf8: 4669 mov r1, sp + cfa: 7408 strb r0, [r1, #16] ; 0x10 + cfc: 4668 mov r0, sp + cfe: 7c01 ldrb r1, [r0, #16] ; 0x10 + d00: 7c40 ldrb r0, [r0, #17] ; 0x11 + d02: 4281 cmp r1, r0 + d04: d015 beq 0xd32 + d06: 201b mov r0, #27 ; 0x1b + d08: f000 f88c bl 0xe24 + d0c: 20f6 mov r0, #246 ; 0xf6 + d0e: f000 f889 bl 0xe24 + d12: 2002 mov r0, #2 + d14: f000 f886 bl 0xe24 + d18: 2000 mov r0, #0 + d1a: f000 f883 bl 0xe24 + d1e: 2045 mov r0, #69 ; 0x45 + d20: f000 f880 bl 0xe24 + d24: 2053 mov r0, #83 ; 0x53 + d26: f000 f87d bl 0xe24 + d2a: 2016 mov r0, #22 ; 0x16 + d2c: f000 f87a bl 0xe24 + d30: e019 b 0xd66 + d32: 201b mov r0, #27 ; 0x1b + d34: f000 f876 bl 0xe24 + d38: 20f6 mov r0, #246 ; 0xf6 + d3a: f000 f873 bl 0xe24 + d3e: 2002 mov r0, #2 + d40: f000 f870 bl 0xe24 + d44: 2000 mov r0, #0 + d46: f000 f86d bl 0xe24 + d4a: 2041 mov r0, #65 ; 0x41 + d4c: f000 f86a bl 0xe24 + d50: 2003 mov r0, #3 + d52: f000 f867 bl 0xe24 + d56: 2042 mov r0, #66 ; 0x42 + d58: f000 f864 bl 0xe24 + d5c: 485b ldr r0, =0x83ff00 ; via 0xecc + d5e: 6800 ldr r0, [r0, #0] + d60: 498f ldr r1, =0x800100 ; via 0xfa0 + d62: f000 f85e bl 0xe22 + d66: b006 add sp, #24 ; 0x18 + d68: bd00 pop {pc} + + d6a: b500 push {lr} + d6c: b081 sub sp, #4 + d6e: 2066 mov r0, #102 ; 0x66 + d70: f000 f858 bl 0xe24 + d74: 2074 mov r0, #116 ; 0x74 + d76: f000 f855 bl 0xe24 + d7a: 206d mov r0, #109 ; 0x6d + d7c: f000 f852 bl 0xe24 + d80: 2074 mov r0, #116 ; 0x74 + d82: f000 f84f bl 0xe24 + d86: 206f mov r0, #111 ; 0x6f + d88: f000 f84c bl 0xe24 + d8c: 206f mov r0, #111 ; 0x6f + d8e: f000 f849 bl 0xe24 + d92: 206c mov r0, #108 ; 0x6c + d94: f000 f846 bl 0xe24 + d98: 4982 ldr r1, =0x83ff80 ; via 0xfa4 + d9a: 2000 mov r0, #0 + d9c: 7008 strb r0, [r1, #0] + d9e: 9000 str r0, [sp, #0] + da0: 9800 ldr r0, [sp, #0] + da2: 0c00 lsr r0, r0, #16 + da4: d105 bne 0xdb2 + da6: 9800 ldr r0, [sp, #0] + da8: 3001 add r0, #1 + daa: 9000 str r0, [sp, #0] + dac: 9800 ldr r0, [sp, #0] + dae: 0c00 lsr r0, r0, #16 + db0: d0f9 beq 0xda6 + db2: 2007 mov r0, #7 + db4: 0400 lsl r0, r0, #16 + db6: f000 f84d bl 0xe54 + dba: 2879 cmp r0, #121 ; 0x79 + dbc: d10e bne 0xddc + dbe: 2001 mov r0, #1 + dc0: 0300 lsl r0, r0, #12 + dc2: f000 f847 bl 0xe54 + dc6: 2865 cmp r0, #101 ; 0x65 + dc8: d108 bne 0xddc + dca: 2001 mov r0, #1 + dcc: 0300 lsl r0, r0, #12 + dce: f000 f841 bl 0xe54 + dd2: 2873 cmp r0, #115 ; 0x73 + dd4: d102 bne 0xddc + dd6: 4873 ldr r0, =0x83ff80 ; via 0xfa4 + dd8: 2101 mov r1, #1 + dda: 7001 strb r1, [r0, #0] + ddc: f000 f8cc bl 0xf78 + de0: 2800 cmp r0, #0 + de2: d00d beq 0xe00 + de4: 206d mov r0, #109 ; 0x6d + de6: f000 f81d bl 0xe24 + dea: 206f mov r0, #111 ; 0x6f + dec: f000 f81a bl 0xe24 + df0: 2064 mov r0, #100 ; 0x64 + df2: f000 f817 bl 0xe24 + df6: 2065 mov r0, #101 ; 0x65 + df8: f000 f814 bl 0xe24 + dfc: 206d mov r0, #109 ; 0x6d + dfe: e00c b 0xe1a + e00: 2065 mov r0, #101 ; 0x65 + e02: f000 f80f bl 0xe24 + e06: 2072 mov r0, #114 ; 0x72 + e08: f000 f80c bl 0xe24 + e0c: 2072 mov r0, #114 ; 0x72 + e0e: f000 f809 bl 0xe24 + e12: 206f mov r0, #111 ; 0x6f + e14: f000 f806 bl 0xe24 + e18: 2072 mov r0, #114 ; 0x72 + e1a: f000 f803 bl 0xe24 + e1e: b001 add sp, #4 + e20: bd00 pop {pc} + +; corresponds to 0xe76 in the C139 version + e22: 4708 bx r1 + +; UART character output routine, corresponds to 0xe78 in the C139 version + e24: b081 sub sp, #4 + e26: 4669 mov r1, sp + e28: 7008 strb r0, [r1, #0] + e2a: 4828 ldr r0, =0x83ff00 ; via 0xecc + e2c: 6800 ldr r0, [r0, #0] + e2e: 7940 ldrb r0, [r0, #5] + e30: 0980 lsr r0, r0, #6 + e32: d3fa bcc 0xe2a + e34: 4825 ldr r0, =0x83ff00 ; via 0xecc + e36: 6800 ldr r0, [r0, #0] + e38: 4669 mov r1, sp + e3a: 7809 ldrb r1, [r1, #0] + e3c: 7001 strb r1, [r0, #0] + e3e: b001 add sp, #4 + e40: 46f7 mov pc, lr + + e42: 4822 ldr r0, =0x83ff00 ; via 0xecc + e44: 6800 ldr r0, [r0, #0] + e46: 7940 ldrb r0, [r0, #5] + e48: 0840 lsr r0, r0, #1 + e4a: d3fa bcc 0xe42 + e4c: 481f ldr r0, =0x83ff00 ; via 0xecc + e4e: 6800 ldr r0, [r0, #0] + e50: 7800 ldrb r0, [r0, #0] + e52: 4770 bx lr + +; should correspond to 0xea8 in the C139 version + e54: b083 sub sp, #12 ; 0xc + e56: 9000 str r0, [sp, #0] + e58: 9800 ldr r0, [sp, #0] + e5a: 9002 str r0, [sp, #8] + e5c: 481b ldr r0, =0x83ff00 ; via 0xecc + e5e: 6800 ldr r0, [r0, #0] + e60: 7940 ldrb r0, [r0, #5] + e62: 0840 lsr r0, r0, #1 + e64: d20c bcs 0xe80 + e66: 9802 ldr r0, [sp, #8] + e68: 3801 sub r0, #1 + e6a: 9002 str r0, [sp, #8] + e6c: 9802 ldr r0, [sp, #8] + e6e: 2800 cmp r0, #0 + e70: d101 bne 0xe76 + e72: 20ff mov r0, #255 ; 0xff + e74: e007 b 0xe86 + e76: 4815 ldr r0, =0x83ff00 ; via 0xecc + e78: 6800 ldr r0, [r0, #0] + e7a: 7940 ldrb r0, [r0, #5] + e7c: 0840 lsr r0, r0, #1 + e7e: d3f2 bcc 0xe66 + e80: 4812 ldr r0, =0x83ff00 ; via 0xecc + e82: 6800 ldr r0, [r0, #0] + e84: 7800 ldrb r0, [r0, #0] + e86: b003 add sp, #12 ; 0xc + e88: 4770 bx lr + + e8a: b081 sub sp, #4 + e8c: e001 b 0xe92 + e8e: 9800 ldr r0, [sp, #0] + e90: 3801 sub r0, #1 + e92: 9000 str r0, [sp, #0] + e94: 480d ldr r0, =0x83ff00 ; via 0xecc + e96: 6800 ldr r0, [r0, #0] + e98: 7940 ldrb r0, [r0, #5] + e9a: 0840 lsr r0, r0, #1 + e9c: d202 bcs 0xea4 + e9e: 9800 ldr r0, [sp, #0] + ea0: 2800 cmp r0, #0 + ea2: dcf4 bgt 0xe8e + ea4: 9800 ldr r0, [sp, #0] + ea6: 2800 cmp r0, #0 + ea8: dd01 ble 0xeae + eaa: 2000 mov r0, #0 + eac: e000 b 0xeb0 + eae: 2001 mov r0, #1 + eb0: b001 add sp, #4 + eb2: 4770 bx lr + eb4: b082 sub sp, #8 + eb6: 9000 str r0, [sp, #0] + eb8: 4669 mov r1, sp + eba: 2000 mov r0, #0 + ebc: 7188 strb r0, [r1, #6] + ebe: 9900 ldr r1, [sp, #0] + ec0: 4839 ldr r0, =0xfffef000 ; via 0xfa8 + ec2: 8800 ldrh r0, [r0, #0] + ec4: 8008 strh r0, [r1, #0] + ec6: b002 add sp, #8 + ec8: 4770 bx lr + eca: 46c0 nop (mov r8, r8) + + ecc: 0083ff00 + ed0: ffff5800 + +; should be the same as 0xf2c in the C139 version + ed4: b081 sub sp, #4 + ed6: 466a mov r2, sp + ed8: 7051 strb r1, [r2, #1] + eda: 4669 mov r1, sp + edc: 7008 strb r0, [r1, #0] + ede: 4933 ldr r1, =0xffff6000 ; via 0xfac + ee0: 2002 mov r0, #2 + ee2: 880a ldrh r2, [r1, #0] + ee4: 4310 orr r0, r2 + ee6: 8008 strh r0, [r1, #0] + ee8: 4830 ldr r0, =0xffff6000 ; via 0xfac + eea: 8801 ldrh r1, [r0, #0] + eec: 0849 lsr r1, r1, #1 + eee: 0049 lsl r1, r1, #1 + ef0: 8001 strh r1, [r0, #0] + ef2: 492e ldr r1, =0xffff6000 ; via 0xfac + ef4: 8808 ldrh r0, [r1, #0] + ef6: 2202 mov r2, #2 + ef8: 4390 bic r0, r2 + efa: 8008 strh r0, [r1, #0] + efc: 482c ldr r0, =0x83ff00 ; via 0xfb0 + efe: 6801 ldr r1, [r0, #0] + f00: 2007 mov r0, #7 + f02: 7208 strb r0, [r1, #8] + f04: 482a ldr r0, =0x83ff00 ; via 0xfb0 + f06: 6801 ldr r1, [r0, #0] + f08: 20bf mov r0, #191 ; 0xbf + f0a: 70c8 strb r0, [r1, #3] + f0c: 4828 ldr r0, =0x83ff00 ; via 0xfb0 + f0e: 6800 ldr r0, [r0, #0] + f10: 1c80 add r0, r0, #2 + f12: 2110 mov r1, #16 ; 0x10 + f14: 8802 ldrh r2, [r0, #0] + f16: 4311 orr r1, r2 + f18: 8001 strh r1, [r0, #0] + f1a: 4825 ldr r0, =0x83ff00 ; via 0xfb0 + f1c: 6801 ldr r1, [r0, #0] + f1e: 2080 mov r0, #128 ; 0x80 + f20: 70c8 strb r0, [r1, #3] + f22: 4823 ldr r0, =0x83ff00 ; via 0xfb0 + f24: 6800 ldr r0, [r0, #0] + f26: 2107 mov r1, #7 + f28: 7081 strb r1, [r0, #2] + f2a: 4821 ldr r0, =0x83ff00 ; via 0xfb0 + f2c: 6800 ldr r0, [r0, #0] + f2e: 21bf mov r1, #191 ; 0xbf + f30: 70c1 strb r1, [r0, #3] + f32: 481f ldr r0, =0x83ff00 ; via 0xfb0 + f34: 6801 ldr r1, [r0, #0] + f36: 4668 mov r0, sp + f38: 7840 ldrb r0, [r0, #1] + f3a: 7008 strb r0, [r1, #0] + f3c: 481c ldr r0, =0x83ff00 ; via 0xfb0 + f3e: 6801 ldr r1, [r0, #0] + f40: 4668 mov r0, sp + f42: 7800 ldrb r0, [r0, #0] + f44: 7048 strb r0, [r1, #1] + f46: 481a ldr r0, =0x83ff00 ; via 0xfb0 + f48: 6801 ldr r1, [r0, #0] + f4a: 2003 mov r0, #3 + f4c: 70c8 strb r0, [r1, #3] + f4e: 4818 ldr r0, =0x83ff00 ; via 0xfb0 + f50: 6800 ldr r0, [r0, #0] + f52: 2100 mov r1, #0 + f54: 7201 strb r1, [r0, #8] + f56: 4816 ldr r0, =0x83ff00 ; via 0xfb0 + f58: 6800 ldr r0, [r0, #0] + f5a: 7940 ldrb r0, [r0, #5] + f5c: 0840 lsr r0, r0, #1 + f5e: d309 bcc 0xf74 + f60: 4669 mov r1, sp + f62: 4813 ldr r0, =0x83ff00 ; via 0xfb0 + f64: 6800 ldr r0, [r0, #0] + f66: 7800 ldrb r0, [r0, #0] + f68: 7088 strb r0, [r1, #2] + f6a: 4811 ldr r0, =0x83ff00 ; via 0xfb0 + f6c: 6800 ldr r0, [r0, #0] + f6e: 7940 ldrb r0, [r0, #5] + f70: 0840 lsr r0, r0, #1 + f72: d2f5 bcs 0xf60 + f74: b001 add sp, #4 + f76: 4770 bx lr + + f78: 480a ldr r0, =0x83ff80 ; via 0xfa4 + f7a: 7800 ldrb r0, [r0, #0] + f7c: 4770 bx lr + f7e: 46c0 nop (mov r8, r8) + + f80: 00800100 + + f84: b500 push {lr} + f86: b081 sub sp, #4 + f88: 4669 mov r1, sp + f8a: 7008 strb r0, [r1, #0] + f8c: 4668 mov r0, sp + f8e: 7800 ldrb r0, [r0, #0] + f90: f7ff ff48 bl 0xe24 + f94: b001 add sp, #4 + f96: bd00 pop {pc} + f98: b500 push {lr} + f9a: f7ff ff52 bl 0xe42 + f9e: bd00 pop {pc} + fa0: 0100 lsl r0, r0, #4 + fa2: 0080 lsl r0, r0, #2 + fa4: ff80 + fa6: 0083 lsl r3, r0, #2 + fa8: f000 fffe bl 0x1fa8 + fac: 6000 str r0, [r0, #0] + fae: ffff + fb0: ff00 + fb2: 0083 lsl r3, r0, #2 + fb4: 4700 bx r0 + fb6: 0000 lsl r0, r0, #0 + fb8: b08c sub sp, #48 ; 0x30 + fba: 9101 str r1, [sp, #4] + fbc: 9000 str r0, [sp, #0] + fbe: 2000 mov r0, #0 + fc0: 9003 str r0, [sp, #12] ; 0xc + fc2: 9800 ldr r0, [sp, #0] + fc4: 7801 ldrb r1, [r0, #0] + fc6: 3001 add r0, #1 + fc8: 9000 str r0, [sp, #0] + fca: 9105 str r1, [sp, #20] ; 0x14 + fcc: 9800 ldr r0, [sp, #0] + fce: 7801 ldrb r1, [r0, #0] + fd0: 3001 add r0, #1 + fd2: 9000 str r0, [sp, #0] + fd4: 9801 ldr r0, [sp, #4] + fd6: 7001 strb r1, [r0, #0] + fd8: 2001 mov r0, #1 + fda: 9004 str r0, [sp, #16] ; 0x10 + fdc: e0a8 b 0x1130 + fde: 9804 ldr r0, [sp, #16] ; 0x10 + fe0: 3002 add r0, #2 + fe2: 9004 str r0, [sp, #16] ; 0x10 + fe4: 9800 ldr r0, [sp, #0] + fe6: 7801 ldrb r1, [r0, #0] + fe8: 3001 add r0, #1 + fea: 9000 str r0, [sp, #0] + fec: 4668 mov r0, sp + fee: 8441 strh r1, [r0, #34] ; 0x22 + ff0: 9800 ldr r0, [sp, #0] + ff2: 7801 ldrb r1, [r0, #0] + ff4: 3001 add r0, #1 + ff6: 9000 str r0, [sp, #0] + ff8: 4668 mov r0, sp + ffa: 8401 strh r1, [r0, #32] ; 0x20 + ffc: 8c00 ldrh r0, [r0, #32] ; 0x20 + ffe: 4669 mov r1, sp + 1000: 8c49 ldrh r1, [r1, #34] ; 0x22 + 1002: 0209 lsl r1, r1, #8 + 1004: 1840 add r0, r0, r1 + 1006: 9901 ldr r1, [sp, #4] + 1008: 8088 strh r0, [r1, #4] + 100a: 9804 ldr r0, [sp, #16] ; 0x10 + 100c: 3001 add r0, #1 + 100e: 9004 str r0, [sp, #16] ; 0x10 + 1010: 9800 ldr r0, [sp, #0] + 1012: 7801 ldrb r1, [r0, #0] + 1014: 3001 add r0, #1 + 1016: 9000 str r0, [sp, #0] + 1018: 4668 mov r0, sp + 101a: 7601 strb r1, [r0, #24] ; 0x18 + 101c: 9901 ldr r1, [sp, #4] + 101e: 7e00 ldrb r0, [r0, #24] ; 0x18 + 1020: 7188 strb r0, [r1, #6] + 1022: 4668 mov r0, sp + 1024: 7e00 ldrb r0, [r0, #24] ; 0x18 + 1026: 2840 cmp r0, #64 ; 0x40 + 1028: dc00 bgt 0x102c + 102a: e09f b 0x116c + 102c: 2004 mov r0, #4 + 102e: 9003 str r0, [sp, #12] ; 0xc + 1030: e09c b 0x116c + 1032: 9804 ldr r0, [sp, #16] ; 0x10 + 1034: 3002 add r0, #2 + 1036: 9004 str r0, [sp, #16] ; 0x10 + 1038: 9800 ldr r0, [sp, #0] + 103a: 7801 ldrb r1, [r0, #0] + 103c: 3001 add r0, #1 + 103e: 9000 str r0, [sp, #0] + 1040: 4668 mov r0, sp + 1042: 8441 strh r1, [r0, #34] ; 0x22 + 1044: 9800 ldr r0, [sp, #0] + 1046: 7801 ldrb r1, [r0, #0] + 1048: 3001 add r0, #1 + 104a: 9000 str r0, [sp, #0] + 104c: 4668 mov r0, sp + 104e: 8401 strh r1, [r0, #32] ; 0x20 + 1050: 8c00 ldrh r0, [r0, #32] ; 0x20 + 1052: 4669 mov r1, sp + 1054: 8c49 ldrh r1, [r1, #34] ; 0x22 + 1056: 0209 lsl r1, r1, #8 + 1058: 1841 add r1, r0, r1 + 105a: 9801 ldr r0, [sp, #4] + 105c: 8081 strh r1, [r0, #4] + 105e: 9804 ldr r0, [sp, #16] ; 0x10 + 1060: 3001 add r0, #1 + 1062: 9004 str r0, [sp, #16] ; 0x10 + 1064: 9800 ldr r0, [sp, #0] + 1066: 7801 ldrb r1, [r0, #0] + 1068: 3001 add r0, #1 + 106a: 9000 str r0, [sp, #0] + 106c: 4668 mov r0, sp + 106e: 7601 strb r1, [r0, #24] ; 0x18 + 1070: 9901 ldr r1, [sp, #4] + 1072: 7e00 ldrb r0, [r0, #24] ; 0x18 + 1074: 7188 strb r0, [r1, #6] + 1076: 4668 mov r0, sp + 1078: 7e00 ldrb r0, [r0, #24] ; 0x18 + 107a: 2840 cmp r0, #64 ; 0x40 + 107c: dcd6 bgt 0x102c + 107e: 9801 ldr r0, [sp, #4] + 1080: 3008 add r0, #8 + 1082: 9007 str r0, [sp, #28] ; 0x1c + 1084: 2000 mov r0, #0 + 1086: 9002 str r0, [sp, #8] + 1088: 9902 ldr r1, [sp, #8] + 108a: 4668 mov r0, sp + 108c: 7e00 ldrb r0, [r0, #24] ; 0x18 + 108e: 4281 cmp r1, r0 + 1090: da6c bge 0x116c + 1092: 9800 ldr r0, [sp, #0] + 1094: 7801 ldrb r1, [r0, #0] + 1096: 3001 add r0, #1 + 1098: 9000 str r0, [sp, #0] + 109a: 4668 mov r0, sp + 109c: 84c1 strh r1, [r0, #38] ; 0x26 + 109e: 9800 ldr r0, [sp, #0] + 10a0: 7801 ldrb r1, [r0, #0] + 10a2: 3001 add r0, #1 + 10a4: 9000 str r0, [sp, #0] + 10a6: 4668 mov r0, sp + 10a8: 8481 strh r1, [r0, #36] ; 0x24 + 10aa: 9807 ldr r0, [sp, #28] ; 0x1c + 10ac: 1c81 add r1, r0, #2 + 10ae: 9107 str r1, [sp, #28] ; 0x1c + 10b0: 4669 mov r1, sp + 10b2: 8c89 ldrh r1, [r1, #36] ; 0x24 + 10b4: 466a mov r2, sp + 10b6: 8cd2 ldrh r2, [r2, #38] ; 0x26 + 10b8: 0212 lsl r2, r2, #8 + 10ba: 1889 add r1, r1, r2 + 10bc: 8001 strh r1, [r0, #0] + 10be: 9804 ldr r0, [sp, #16] ; 0x10 + 10c0: 3002 add r0, #2 + 10c2: 9004 str r0, [sp, #16] ; 0x10 + 10c4: 9802 ldr r0, [sp, #8] + 10c6: 3001 add r0, #1 + 10c8: 9002 str r0, [sp, #8] + 10ca: 9902 ldr r1, [sp, #8] + 10cc: 4668 mov r0, sp + 10ce: 7e00 ldrb r0, [r0, #24] ; 0x18 + 10d0: 4281 cmp r1, r0 + 10d2: dbde blt 0x1092 + 10d4: e04a b 0x116c + 10d6: 9804 ldr r0, [sp, #16] ; 0x10 + 10d8: 3002 add r0, #2 + 10da: 9004 str r0, [sp, #16] ; 0x10 + 10dc: 9800 ldr r0, [sp, #0] + 10de: 7801 ldrb r1, [r0, #0] + 10e0: 3001 add r0, #1 + 10e2: 9000 str r0, [sp, #0] + 10e4: 4668 mov r0, sp + 10e6: 8501 strh r1, [r0, #40] ; 0x28 + 10e8: 9800 ldr r0, [sp, #0] + 10ea: 7801 ldrb r1, [r0, #0] + 10ec: 3001 add r0, #1 + 10ee: 9000 str r0, [sp, #0] + 10f0: 4668 mov r0, sp + 10f2: 8541 strh r1, [r0, #42] ; 0x2a + 10f4: 8d41 ldrh r1, [r0, #42] ; 0x2a + 10f6: 8d00 ldrh r0, [r0, #40] ; 0x28 + 10f8: 0200 lsl r0, r0, #8 + 10fa: 1809 add r1, r1, r0 + 10fc: 9801 ldr r0, [sp, #4] + 10fe: 8081 strh r1, [r0, #4] + 1100: 9804 ldr r0, [sp, #16] ; 0x10 + 1102: 3002 add r0, #2 + 1104: 9004 str r0, [sp, #16] ; 0x10 + 1106: 9800 ldr r0, [sp, #0] + 1108: 7801 ldrb r1, [r0, #0] + 110a: 3001 add r0, #1 + 110c: 9000 str r0, [sp, #0] + 110e: 4668 mov r0, sp + 1110: 8581 strh r1, [r0, #44] ; 0x2c + 1112: 9800 ldr r0, [sp, #0] + 1114: 7801 ldrb r1, [r0, #0] + 1116: 3001 add r0, #1 + 1118: 9000 str r0, [sp, #0] + 111a: 4668 mov r0, sp + 111c: 85c1 strh r1, [r0, #46] ; 0x2e + 111e: 8dc1 ldrh r1, [r0, #46] ; 0x2e + 1120: 8d80 ldrh r0, [r0, #44] ; 0x2c + 1122: 0200 lsl r0, r0, #8 + 1124: 1808 add r0, r1, r0 + 1126: 9901 ldr r1, [sp, #4] + 1128: 80c8 strh r0, [r1, #6] + 112a: e01f b 0x116c + 112c: 2008 mov r0, #8 + 112e: e77e b 0x102e + 1130: 9801 ldr r0, [sp, #4] + 1132: 7801 ldrb r1, [r0, #0] + 1134: 290a cmp r1, #10 ; 0xa + 1136: d8f9 bhi 0x112c + 1138: a001 add r0, pc, #4 + 113a: 0089 lsl r1, r1, #2 + 113c: 5840 ldr r0, [r0, r1] + 113e: 4687 mov pc, r0 + 1140: 116c asr r4, r5, #5 + 1142: 0000 lsl r0, r0, #0 + 1144: 116c asr r4, r5, #5 + 1146: 0000 lsl r0, r0, #0 + 1148: 116c asr r4, r5, #5 + 114a: 0000 lsl r0, r0, #0 + 114c: 116c asr r4, r5, #5 + 114e: 0000 lsl r0, r0, #0 + 1150: 116c asr r4, r5, #5 + 1152: 0000 lsl r0, r0, #0 + 1154: 116c asr r4, r5, #5 + 1156: 0000 lsl r0, r0, #0 + 1158: 116c asr r4, r5, #5 + 115a: 0000 lsl r0, r0, #0 + 115c: 0fde lsr r6, r3, #31 + 115e: 0000 lsl r0, r0, #0 + 1160: 1032 asr r2, r6, #32 + 1162: 0000 lsl r0, r0, #0 + 1164: 116c asr r4, r5, #5 + 1166: 0000 lsl r0, r0, #0 + 1168: 10d6 asr r6, r2, #3 + 116a: 0000 lsl r0, r0, #0 + 116c: 9905 ldr r1, [sp, #20] ; 0x14 + 116e: 9804 ldr r0, [sp, #16] ; 0x10 + 1170: 4281 cmp r1, r0 + 1172: d001 beq 0x1178 + 1174: 2004 mov r0, #4 + 1176: 9003 str r0, [sp, #12] ; 0xc + 1178: 9803 ldr r0, [sp, #12] ; 0xc + 117a: b00c add sp, #48 ; 0x30 + 117c: 4770 bx lr + 117e: b089 sub sp, #36 ; 0x24 + 1180: 9101 str r1, [sp, #4] + 1182: 9000 str r0, [sp, #0] + 1184: 2000 mov r0, #0 + 1186: 9003 str r0, [sp, #12] ; 0xc + 1188: 9801 ldr r0, [sp, #4] + 118a: 1c41 add r1, r0, #1 + 118c: 9101 str r1, [sp, #4] + 118e: 9005 str r0, [sp, #20] ; 0x14 + 1190: 9801 ldr r0, [sp, #4] + 1192: 1c41 add r1, r0, #1 + 1194: 9101 str r1, [sp, #4] + 1196: 9900 ldr r1, [sp, #0] + 1198: 7809 ldrb r1, [r1, #0] + 119a: 7001 strb r1, [r0, #0] + 119c: 4669 mov r1, sp + 119e: 2001 mov r0, #1 + 11a0: 7408 strb r0, [r1, #16] ; 0x10 + 11a2: 9801 ldr r0, [sp, #4] + 11a4: 1c41 add r1, r0, #1 + 11a6: 9101 str r1, [sp, #4] + 11a8: 9900 ldr r1, [sp, #0] + 11aa: 7849 ldrb r1, [r1, #1] + 11ac: 7001 strb r1, [r0, #0] + 11ae: 4669 mov r1, sp + 11b0: 4668 mov r0, sp + 11b2: 7c00 ldrb r0, [r0, #16] ; 0x10 + 11b4: 3001 add r0, #1 + 11b6: 7408 strb r0, [r1, #16] ; 0x10 + 11b8: e0e4 b 0x1384 + 11ba: 9800 ldr r0, [sp, #0] + 11bc: 7840 ldrb r0, [r0, #1] + 11be: 2800 cmp r0, #0 + 11c0: d000 beq 0x11c4 + 11c2: e0fd b 0x13c0 + 11c4: 9801 ldr r0, [sp, #4] + 11c6: 1c41 add r1, r0, #1 + 11c8: 9101 str r1, [sp, #4] + 11ca: 9900 ldr r1, [sp, #0] + 11cc: 7909 ldrb r1, [r1, #4] + 11ce: 7001 strb r1, [r0, #0] + 11d0: 9801 ldr r0, [sp, #4] + 11d2: 1c41 add r1, r0, #1 + 11d4: 9101 str r1, [sp, #4] + 11d6: 9900 ldr r1, [sp, #0] + 11d8: 7949 ldrb r1, [r1, #5] + 11da: 7001 strb r1, [r0, #0] + 11dc: 9801 ldr r0, [sp, #4] + 11de: 1c41 add r1, r0, #1 + 11e0: 9101 str r1, [sp, #4] + 11e2: 9900 ldr r1, [sp, #0] + 11e4: 7989 ldrb r1, [r1, #6] + 11e6: 7001 strb r1, [r0, #0] + 11e8: 4668 mov r0, sp + 11ea: 7c00 ldrb r0, [r0, #16] ; 0x10 + 11ec: 3003 add r0, #3 + 11ee: 4669 mov r1, sp + 11f0: 7408 strb r0, [r1, #16] ; 0x10 + 11f2: e0e5 b 0x13c0 + 11f4: 9800 ldr r0, [sp, #0] + 11f6: 7840 ldrb r0, [r0, #1] + 11f8: 2800 cmp r0, #0 + 11fa: d000 beq 0x11fe + 11fc: e0e0 b 0x13c0 + 11fe: 9801 ldr r0, [sp, #4] + 1200: 1c41 add r1, r0, #1 + 1202: 9101 str r1, [sp, #4] + 1204: 9900 ldr r1, [sp, #0] + 1206: 7909 ldrb r1, [r1, #4] + 1208: 7001 strb r1, [r0, #0] + 120a: 4668 mov r0, sp + 120c: 7c00 ldrb r0, [r0, #16] ; 0x10 + 120e: 3001 add r0, #1 + 1210: e7ed b 0x11ee + 1212: 9800 ldr r0, [sp, #0] + 1214: 7840 ldrb r0, [r0, #1] + 1216: 2800 cmp r0, #0 + 1218: d000 beq 0x121c + 121a: e0d1 b 0x13c0 + 121c: e7ef b 0x11fe + 121e: 9800 ldr r0, [sp, #0] + 1220: 7840 ldrb r0, [r0, #1] + 1222: 2800 cmp r0, #0 + 1224: d000 beq 0x1228 + 1226: e0cb b 0x13c0 + 1228: e7e9 b 0x11fe + 122a: 9800 ldr r0, [sp, #0] + 122c: 7840 ldrb r0, [r0, #1] + 122e: 2800 cmp r0, #0 + 1230: d000 beq 0x1234 + 1232: e0c5 b 0x13c0 + 1234: 4669 mov r1, sp + 1236: 9800 ldr r0, [sp, #0] + 1238: 8880 ldrh r0, [r0, #4] + 123a: 8408 strh r0, [r1, #32] ; 0x20 + 123c: 9801 ldr r0, [sp, #4] + 123e: 1c41 add r1, r0, #1 + 1240: 9101 str r1, [sp, #4] + 1242: 4669 mov r1, sp + 1244: 8c09 ldrh r1, [r1, #32] ; 0x20 + 1246: 0409 lsl r1, r1, #16 + 1248: 0e09 lsr r1, r1, #24 + 124a: 0209 lsl r1, r1, #8 + 124c: 1209 asr r1, r1, #8 + 124e: 7001 strb r1, [r0, #0] + 1250: 9801 ldr r0, [sp, #4] + 1252: 1c41 add r1, r0, #1 + 1254: 9101 str r1, [sp, #4] + 1256: 4669 mov r1, sp + 1258: 8c09 ldrh r1, [r1, #32] ; 0x20 + 125a: 0609 lsl r1, r1, #24 + 125c: 0e09 lsr r1, r1, #24 + 125e: 7001 strb r1, [r0, #0] + 1260: 4669 mov r1, sp + 1262: 9800 ldr r0, [sp, #0] + 1264: 88c0 ldrh r0, [r0, #6] + 1266: 8408 strh r0, [r1, #32] ; 0x20 + 1268: 9801 ldr r0, [sp, #4] + 126a: 1c41 add r1, r0, #1 + 126c: 9101 str r1, [sp, #4] + 126e: 4669 mov r1, sp + 1270: 8c09 ldrh r1, [r1, #32] ; 0x20 + 1272: 0409 lsl r1, r1, #16 + 1274: 0e09 lsr r1, r1, #24 + 1276: 0209 lsl r1, r1, #8 + 1278: 1209 asr r1, r1, #8 + 127a: 7001 strb r1, [r0, #0] + 127c: 9801 ldr r0, [sp, #4] + 127e: 1c41 add r1, r0, #1 + 1280: 9101 str r1, [sp, #4] + 1282: 4669 mov r1, sp + 1284: 8c09 ldrh r1, [r1, #32] ; 0x20 + 1286: 0609 lsl r1, r1, #24 + 1288: 0e09 lsr r1, r1, #24 + 128a: 7001 strb r1, [r0, #0] + 128c: 4668 mov r0, sp + 128e: 7c00 ldrb r0, [r0, #16] ; 0x10 + 1290: 3004 add r0, #4 + 1292: e7ac b 0x11ee + 1294: 9800 ldr r0, [sp, #0] + 1296: 7840 ldrb r0, [r0, #1] + 1298: 2800 cmp r0, #0 + 129a: d000 beq 0x129e + 129c: e090 b 0x13c0 + 129e: e7ae b 0x11fe + 12a0: 9800 ldr r0, [sp, #0] + 12a2: 7840 ldrb r0, [r0, #1] + 12a4: 2800 cmp r0, #0 + 12a6: d000 beq 0x12aa + 12a8: e08a b 0x13c0 + 12aa: 4669 mov r1, sp + 12ac: 4668 mov r0, sp + 12ae: 7c00 ldrb r0, [r0, #16] ; 0x10 + 12b0: 3001 add r0, #1 + 12b2: 7408 strb r0, [r1, #16] ; 0x10 + 12b4: 4668 mov r0, sp + 12b6: 9900 ldr r1, [sp, #0] + 12b8: 7909 ldrb r1, [r1, #4] + 12ba: 7601 strb r1, [r0, #24] ; 0x18 + 12bc: 9801 ldr r0, [sp, #4] + 12be: 1c41 add r1, r0, #1 + 12c0: 9101 str r1, [sp, #4] + 12c2: 4669 mov r1, sp + 12c4: 7e09 ldrb r1, [r1, #24] ; 0x18 + 12c6: 7001 strb r1, [r0, #0] + 12c8: 4668 mov r0, sp + 12ca: 7e00 ldrb r0, [r0, #24] ; 0x18 + 12cc: 2840 cmp r0, #64 ; 0x40 + 12ce: dd01 ble 0x12d4 + 12d0: 2004 mov r0, #4 + 12d2: e055 b 0x1380 + 12d4: 9800 ldr r0, [sp, #0] + 12d6: 3006 add r0, #6 + 12d8: 9007 str r0, [sp, #28] ; 0x1c + 12da: 2000 mov r0, #0 + 12dc: 9002 str r0, [sp, #8] + 12de: 9902 ldr r1, [sp, #8] + 12e0: 4668 mov r0, sp + 12e2: 7e00 ldrb r0, [r0, #24] ; 0x18 + 12e4: 4281 cmp r1, r0 + 12e6: da6b bge 0x13c0 + 12e8: 9801 ldr r0, [sp, #4] + 12ea: 1c41 add r1, r0, #1 + 12ec: 9101 str r1, [sp, #4] + 12ee: 9907 ldr r1, [sp, #28] ; 0x1c + 12f0: 8809 ldrh r1, [r1, #0] + 12f2: 0409 lsl r1, r1, #16 + 12f4: 0e09 lsr r1, r1, #24 + 12f6: 0209 lsl r1, r1, #8 + 12f8: 1209 asr r1, r1, #8 + 12fa: 7001 strb r1, [r0, #0] + 12fc: 9807 ldr r0, [sp, #28] ; 0x1c + 12fe: 8801 ldrh r1, [r0, #0] + 1300: 3002 add r0, #2 + 1302: 9007 str r0, [sp, #28] ; 0x1c + 1304: 0608 lsl r0, r1, #24 + 1306: 0e01 lsr r1, r0, #24 + 1308: 9801 ldr r0, [sp, #4] + 130a: 1c42 add r2, r0, #1 + 130c: 9201 str r2, [sp, #4] + 130e: 7001 strb r1, [r0, #0] + 1310: 4669 mov r1, sp + 1312: 4668 mov r0, sp + 1314: 7c00 ldrb r0, [r0, #16] ; 0x10 + 1316: 3002 add r0, #2 + 1318: 7408 strb r0, [r1, #16] ; 0x10 + 131a: 9802 ldr r0, [sp, #8] + 131c: 3001 add r0, #1 + 131e: 9002 str r0, [sp, #8] + 1320: 9902 ldr r1, [sp, #8] + 1322: 4668 mov r0, sp + 1324: 7e00 ldrb r0, [r0, #24] ; 0x18 + 1326: 4281 cmp r1, r0 + 1328: dbde blt 0x12e8 + 132a: e049 b 0x13c0 + 132c: 9800 ldr r0, [sp, #0] + 132e: 7840 ldrb r0, [r0, #1] + 1330: 2800 cmp r0, #0 + 1332: d145 bne 0x13c0 + 1334: 4669 mov r1, sp + 1336: 9800 ldr r0, [sp, #0] + 1338: 8880 ldrh r0, [r0, #4] + 133a: 8408 strh r0, [r1, #32] ; 0x20 + 133c: 9801 ldr r0, [sp, #4] + 133e: 1c41 add r1, r0, #1 + 1340: 9101 str r1, [sp, #4] + 1342: 4669 mov r1, sp + 1344: 8c09 ldrh r1, [r1, #32] ; 0x20 + 1346: 0409 lsl r1, r1, #16 + 1348: 0e09 lsr r1, r1, #24 + 134a: 0209 lsl r1, r1, #8 + 134c: 1209 asr r1, r1, #8 + 134e: 7001 strb r1, [r0, #0] + 1350: 9801 ldr r0, [sp, #4] + 1352: 1c41 add r1, r0, #1 + 1354: 9101 str r1, [sp, #4] + 1356: 4669 mov r1, sp + 1358: 8c09 ldrh r1, [r1, #32] ; 0x20 + 135a: 0609 lsl r1, r1, #24 + 135c: 0e09 lsr r1, r1, #24 + 135e: 7001 strb r1, [r0, #0] + 1360: 4668 mov r0, sp + 1362: 9900 ldr r1, [sp, #0] + 1364: 88c9 ldrh r1, [r1, #6] + 1366: 8401 strh r1, [r0, #32] ; 0x20 + 1368: 9901 ldr r1, [sp, #4] + 136a: 1c48 add r0, r1, #1 + 136c: 9001 str r0, [sp, #4] + 136e: 4668 mov r0, sp + 1370: 8c00 ldrh r0, [r0, #32] ; 0x20 + 1372: 0400 lsl r0, r0, #16 + 1374: 0e00 lsr r0, r0, #24 + 1376: 0200 lsl r0, r0, #8 + 1378: 1200 asr r0, r0, #8 + 137a: 7008 strb r0, [r1, #0] + 137c: e77e b 0x127c + 137e: 2008 mov r0, #8 + 1380: 9003 str r0, [sp, #12] ; 0xc + 1382: e01d b 0x13c0 + 1384: 9800 ldr r0, [sp, #0] + 1386: 7800 ldrb r0, [r0, #0] + 1388: 280a cmp r0, #10 ; 0xa + 138a: d8f8 bhi 0x137e + 138c: a101 add r1, pc, #4 + 138e: 0080 lsl r0, r0, #2 + 1390: 5808 ldr r0, [r1, r0] + 1392: 4687 mov pc, r0 + 1394: 11ba asr r2, r7, #6 + 1396: 0000 lsl r0, r0, #0 + 1398: 11f4 asr r4, r6, #7 + 139a: 0000 lsl r0, r0, #0 + 139c: 1212 asr r2, r2, #8 + 139e: 0000 lsl r0, r0, #0 + 13a0: 121e asr r6, r3, #8 + 13a2: 0000 lsl r0, r0, #0 + 13a4: 13c0 asr r0, r0, #15 + 13a6: 0000 lsl r0, r0, #0 + 13a8: 122a asr r2, r5, #8 + 13aa: 0000 lsl r0, r0, #0 + 13ac: 1294 asr r4, r2, #10 + 13ae: 0000 lsl r0, r0, #0 + 13b0: 12a0 asr r0, r4, #10 + 13b2: 0000 lsl r0, r0, #0 + 13b4: 13c0 asr r0, r0, #15 + 13b6: 0000 lsl r0, r0, #0 + 13b8: 132c asr r4, r5, #12 + 13ba: 0000 lsl r0, r0, #0 + 13bc: 13c0 asr r0, r0, #15 + 13be: 0000 lsl r0, r0, #0 + 13c0: 9805 ldr r0, [sp, #20] ; 0x14 + 13c2: 4669 mov r1, sp + 13c4: 7c09 ldrb r1, [r1, #16] ; 0x10 + 13c6: 7001 strb r1, [r0, #0] + 13c8: 9803 ldr r0, [sp, #12] ; 0xc + 13ca: b009 add sp, #36 ; 0x24 + 13cc: 4770 bx lr + 13ce: 0000 lsl r0, r0, #0 + 13d0: b500 push {lr} + 13d2: b083 sub sp, #12 ; 0xc + 13d4: 9101 str r1, [sp, #4] + 13d6: 4669 mov r1, sp + 13d8: 7008 strb r0, [r1, #0] + 13da: 2000 mov r0, #0 + 13dc: 9002 str r0, [sp, #8] + 13de: e073 b 0x14c8 + 13e0: 4668 mov r0, sp + 13e2: 7800 ldrb r0, [r0, #0] + 13e4: 28aa cmp r0, #170 ; 0xaa + 13e6: d106 bne 0x13f6 + 13e8: 4965 ldr r1, =0x83ff10 ; via 0x1580 + 13ea: 4865 ldr r0, =0x83ff10 ; via 0x1580 + 13ec: 6800 ldr r0, [r0, #0] + 13ee: 3001 add r0, #1 + 13f0: 07c0 lsl r0, r0, #31 + 13f2: 0fc0 lsr r0, r0, #31 + 13f4: e013 b 0x141e + 13f6: 4862 ldr r0, =0x83ff10 ; via 0x1580 + 13f8: 6800 ldr r0, [r0, #0] + 13fa: 2800 cmp r0, #0 + 13fc: d06b beq 0x14d6 + 13fe: 4961 ldr r1, =0x83ff04 ; via 0x1584 + 1400: 9801 ldr r0, [sp, #4] + 1402: 3001 add r0, #1 + 1404: 6008 str r0, [r1, #0] + 1406: 4960 ldr r1, =0x83ff0e ; via 0x1588 + 1408: 2000 mov r0, #0 + 140a: 7008 strb r0, [r1, #0] + 140c: 495f ldr r1, =0x83ff0c ; via 0x158c + 140e: 4668 mov r0, sp + 1410: 7800 ldrb r0, [r0, #0] + 1412: 8008 strh r0, [r1, #0] + 1414: 495a ldr r1, =0x83ff10 ; via 0x1580 + 1416: 2000 mov r0, #0 + 1418: 6008 str r0, [r1, #0] + 141a: 495d ldr r1, =0x83ff08 ; via 0x1590 + 141c: 2001 mov r0, #1 + 141e: 6008 str r0, [r1, #0] + 1420: e059 b 0x14d6 + 1422: 4668 mov r0, sp + 1424: 7800 ldrb r0, [r0, #0] + 1426: 28aa cmp r0, #170 ; 0xaa + 1428: d113 bne 0x1452 + 142a: 4855 ldr r0, =0x83ff10 ; via 0x1580 + 142c: 6800 ldr r0, [r0, #0] + 142e: 2800 cmp r0, #0 + 1430: d00b beq 0x144a + 1432: 4954 ldr r1, =0x83ff04 ; via 0x1584 + 1434: 6808 ldr r0, [r1, #0] + 1436: 1c42 add r2, r0, #1 + 1438: 600a str r2, [r1, #0] + 143a: 4669 mov r1, sp + 143c: 7809 ldrb r1, [r1, #0] + 143e: 7001 strb r1, [r0, #0] + 1440: 4951 ldr r1, =0x83ff0e ; via 0x1588 + 1442: 7808 ldrb r0, [r1, #0] + 1444: 3001 add r0, #1 + 1446: 7008 strb r0, [r1, #0] + 1448: e013 b 0x1472 + 144a: 2101 mov r1, #1 + 144c: 484c ldr r0, =0x83ff10 ; via 0x1580 + 144e: 6001 str r1, [r0, #0] + 1450: e01c b 0x148c + 1452: 484b ldr r0, =0x83ff10 ; via 0x1580 + 1454: 6800 ldr r0, [r0, #0] + 1456: 2800 cmp r0, #0 + 1458: d00d beq 0x1476 + 145a: 494a ldr r1, =0x83ff04 ; via 0x1584 + 145c: 9801 ldr r0, [sp, #4] + 145e: 3001 add r0, #1 + 1460: 6008 str r0, [r1, #0] + 1462: 4849 ldr r0, =0x83ff0e ; via 0x1588 + 1464: 2100 mov r1, #0 + 1466: 7001 strb r1, [r0, #0] + 1468: 4948 ldr r1, =0x83ff0c ; via 0x158c + 146a: 4668 mov r0, sp + 146c: 7800 ldrb r0, [r0, #0] + 146e: 3001 add r0, #1 + 1470: 8008 strh r0, [r1, #0] + 1472: 2100 mov r1, #0 + 1474: e7ea b 0x144c + 1476: 4843 ldr r0, =0x83ff04 ; via 0x1584 + 1478: 6801 ldr r1, [r0, #0] + 147a: 1c4a add r2, r1, #1 + 147c: 6002 str r2, [r0, #0] + 147e: 4668 mov r0, sp + 1480: 7800 ldrb r0, [r0, #0] + 1482: 7008 strb r0, [r1, #0] + 1484: 4940 ldr r1, =0x83ff0e ; via 0x1588 + 1486: 7808 ldrb r0, [r1, #0] + 1488: 3001 add r0, #1 + 148a: 7008 strb r0, [r1, #0] + 148c: 483f ldr r0, =0x83ff0c ; via 0x158c + 148e: 8801 ldrh r1, [r0, #0] + 1490: 3901 sub r1, #1 + 1492: 8001 strh r1, [r0, #0] + 1494: 483d ldr r0, =0x83ff0c ; via 0x158c + 1496: 8800 ldrh r0, [r0, #0] + 1498: 2800 cmp r0, #0 + 149a: d11c bne 0x14d6 + 149c: 9901 ldr r1, [sp, #4] + 149e: 483a ldr r0, =0x83ff0e ; via 0x1588 + 14a0: 7800 ldrb r0, [r0, #0] + 14a2: 7008 strb r0, [r1, #0] + 14a4: 2001 mov r0, #1 + 14a6: 9002 str r0, [sp, #8] + 14a8: 4839 ldr r0, =0x83ff08 ; via 0x1590 + 14aa: 2100 mov r1, #0 + 14ac: 6001 str r1, [r0, #0] + 14ae: 4834 ldr r0, =0x83ff10 ; via 0x1580 + 14b0: 6001 str r1, [r0, #0] + 14b2: 9801 ldr r0, [sp, #4] + 14b4: 7800 ldrb r0, [r0, #0] + 14b6: 2801 cmp r0, #1 + 14b8: d10d bne 0x14d6 + 14ba: 9801 ldr r0, [sp, #4] + 14bc: 7840 ldrb r0, [r0, #1] + 14be: 28dd cmp r0, #221 ; 0xdd + 14c0: d109 bne 0x14d6 + 14c2: f7ff fb2f bl 0xb24 + 14c6: e006 b 0x14d6 + 14c8: 4831 ldr r0, =0x83ff08 ; via 0x1590 + 14ca: 6800 ldr r0, [r0, #0] + 14cc: 2800 cmp r0, #0 + 14ce: d087 beq 0x13e0 + 14d0: 3801 sub r0, #1 + 14d2: 2800 cmp r0, #0 + 14d4: d0a5 beq 0x1422 + 14d6: 9802 ldr r0, [sp, #8] + 14d8: b003 add sp, #12 ; 0xc + 14da: bd00 pop {pc} + 14dc: b086 sub sp, #24 ; 0x18 + 14de: 9202 str r2, [sp, #8] + 14e0: 9101 str r1, [sp, #4] + 14e2: 9000 str r0, [sp, #0] + 14e4: 9801 ldr r0, [sp, #4] + 14e6: 3001 add r0, #1 + 14e8: 9004 str r0, [sp, #16] ; 0x10 + 14ea: 9800 ldr r0, [sp, #0] + 14ec: 1c41 add r1, r0, #1 + 14ee: 9100 str r1, [sp, #0] + 14f0: 9005 str r0, [sp, #20] ; 0x14 + 14f2: 9901 ldr r1, [sp, #4] + 14f4: 20aa mov r0, #170 ; 0xaa + 14f6: 7008 strb r0, [r1, #0] + 14f8: 9801 ldr r0, [sp, #4] + 14fa: 3002 add r0, #2 + 14fc: 9001 str r0, [sp, #4] + 14fe: 9902 ldr r1, [sp, #8] + 1500: 2000 mov r0, #0 + 1502: 8008 strh r0, [r1, #0] + 1504: 4669 mov r1, sp + 1506: 8188 strh r0, [r1, #12] ; 0xc + 1508: 4668 mov r0, sp + 150a: 8981 ldrh r1, [r0, #12] ; 0xc + 150c: 9805 ldr r0, [sp, #20] ; 0x14 + 150e: 7800 ldrb r0, [r0, #0] + 1510: 4281 cmp r1, r0 + 1512: da23 bge 0x155c + 1514: 9800 ldr r0, [sp, #0] + 1516: 7800 ldrb r0, [r0, #0] + 1518: 28aa cmp r0, #170 ; 0xaa + 151a: d108 bne 0x152e + 151c: 9801 ldr r0, [sp, #4] + 151e: 1c41 add r1, r0, #1 + 1520: 9101 str r1, [sp, #4] + 1522: 21aa mov r1, #170 ; 0xaa + 1524: 7001 strb r1, [r0, #0] + 1526: 9902 ldr r1, [sp, #8] + 1528: 8808 ldrh r0, [r1, #0] + 152a: 3001 add r0, #1 + 152c: 8008 strh r0, [r1, #0] + 152e: 9800 ldr r0, [sp, #0] + 1530: 7801 ldrb r1, [r0, #0] + 1532: 3001 add r0, #1 + 1534: 9000 str r0, [sp, #0] + 1536: 9801 ldr r0, [sp, #4] + 1538: 1c42 add r2, r0, #1 + 153a: 9201 str r2, [sp, #4] + 153c: 7001 strb r1, [r0, #0] + 153e: 9902 ldr r1, [sp, #8] + 1540: 8808 ldrh r0, [r1, #0] + 1542: 3001 add r0, #1 + 1544: 8008 strh r0, [r1, #0] + 1546: 4669 mov r1, sp + 1548: 4668 mov r0, sp + 154a: 8980 ldrh r0, [r0, #12] ; 0xc + 154c: 3001 add r0, #1 + 154e: 8188 strh r0, [r1, #12] ; 0xc + 1550: 4668 mov r0, sp + 1552: 8980 ldrh r0, [r0, #12] ; 0xc + 1554: 9905 ldr r1, [sp, #20] ; 0x14 + 1556: 7809 ldrb r1, [r1, #0] + 1558: 4288 cmp r0, r1 + 155a: dbdb blt 0x1514 + 155c: 9904 ldr r1, [sp, #16] ; 0x10 + 155e: 9802 ldr r0, [sp, #8] + 1560: 7800 ldrb r0, [r0, #0] + 1562: 7008 strb r0, [r1, #0] + 1564: 9902 ldr r1, [sp, #8] + 1566: 8808 ldrh r0, [r1, #0] + 1568: 3002 add r0, #2 + 156a: 8008 strh r0, [r1, #0] + 156c: b006 add sp, #24 ; 0x18 + 156e: 4770 bx lr + +; same as 0x15c8 in the C139 version + 1570: 4907 ldr r1, =0x83ff08 ; via 0x1590 + 1572: 2000 mov r0, #0 + 1574: 6008 str r0, [r1, #0] + 1576: 4802 ldr r0, =0x83ff10 ; via 0x1580 + 1578: 2100 mov r1, #0 + 157a: 6001 str r1, [r0, #0] + 157c: 4770 bx lr + 157e: 46c0 nop (mov r8, r8) + + 1580: 0083ff10 + 1584: 0083ff04 + 1588: 0083ff0e + 158c: 0083ff0c + 1590: 0083ff08 + + 1594: b082 sub sp, #8 + 1596: 9101 str r1, [sp, #4] + 1598: 9000 str r0, [sp, #0] + 159a: 9901 ldr r1, [sp, #4] + 159c: 2000 mov r0, #0 + 159e: 7008 strb r0, [r1, #0] + 15a0: 9801 ldr r0, [sp, #4] + 15a2: 2100 mov r1, #0 + 15a4: 7041 strb r1, [r0, #1] + 15a6: 9801 ldr r0, [sp, #4] + 15a8: 2102 mov r1, #2 + 15aa: 7101 strb r1, [r0, #4] + 15ac: 9801 ldr r0, [sp, #4] + 15ae: 2106 mov r1, #6 + 15b0: 7141 strb r1, [r0, #5] + 15b2: 9801 ldr r0, [sp, #4] + 15b4: 2102 mov r1, #2 + 15b6: 7181 strb r1, [r0, #6] + 15b8: b002 add sp, #8 + 15ba: 4770 bx lr + 15bc: b500 push {lr} + 15be: b084 sub sp, #16 ; 0x10 + 15c0: 466b mov r3, sp + 15c2: 721a strb r2, [r3, #8] + 15c4: 9101 str r1, [sp, #4] + 15c6: 9000 str r0, [sp, #0] + 15c8: 9901 ldr r1, [sp, #4] + 15ca: 2009 mov r0, #9 + 15cc: 7008 strb r0, [r1, #0] + 15ce: e015 b 0x15fc + 15d0: 9801 ldr r0, [sp, #4] + 15d2: 2100 mov r1, #0 + 15d4: 7041 strb r1, [r0, #1] + 15d6: 9901 ldr r1, [sp, #4] + 15d8: 4668 mov r0, sp + 15da: 8940 ldrh r0, [r0, #10] ; 0xa + 15dc: 8088 strh r0, [r1, #4] + 15de: 9901 ldr r1, [sp, #4] + 15e0: 4668 mov r0, sp + 15e2: 8980 ldrh r0, [r0, #12] ; 0xc + 15e4: 80c8 strh r0, [r1, #6] + 15e6: e01e b 0x1626 + 15e8: 2101 mov r1, #1 + 15ea: e004 b 0x15f6 + 15ec: 2103 mov r1, #3 + 15ee: e002 b 0x15f6 + 15f0: 2105 mov r1, #5 + 15f2: e000 b 0x15f6 + 15f4: 2106 mov r1, #6 + 15f6: 9801 ldr r0, [sp, #4] + 15f8: 7041 strb r1, [r0, #1] + 15fa: e014 b 0x1626 + 15fc: 200a mov r0, #10 ; 0xa + 15fe: 4468 add r0, sp + 1600: a903 add r1, sp, #12 ; 0xc + 1602: 466a mov r2, sp + 1604: 7a12 ldrb r2, [r2, #8] + 1606: f000 fb71 bl 0x1cec + 160a: 2800 cmp r0, #0 + 160c: d0e0 beq 0x15d0 + 160e: 3801 sub r0, #1 + 1610: 2800 cmp r0, #0 + 1612: d0e9 beq 0x15e8 + 1614: 3801 sub r0, #1 + 1616: 2800 cmp r0, #0 + 1618: d0e8 beq 0x15ec + 161a: 3801 sub r0, #1 + 161c: 2800 cmp r0, #0 + 161e: d0e7 beq 0x15f0 + 1620: 3801 sub r0, #1 + 1622: 2800 cmp r0, #0 + 1624: d0e6 beq 0x15f4 + 1626: b004 add sp, #16 ; 0x10 + 1628: bd00 pop {pc} + 162a: b084 sub sp, #16 ; 0x10 + 162c: 9101 str r1, [sp, #4] + 162e: 9000 str r0, [sp, #0] + 1630: 9901 ldr r1, [sp, #4] + 1632: 200a mov r0, #10 ; 0xa + 1634: 7008 strb r0, [r1, #0] + 1636: 9801 ldr r0, [sp, #4] + 1638: 2100 mov r1, #0 + 163a: 7041 strb r1, [r0, #1] + 163c: 4669 mov r1, sp + 163e: 9800 ldr r0, [sp, #0] + 1640: 8880 ldrh r0, [r0, #4] + 1642: 8108 strh r0, [r1, #8] + 1644: 9800 ldr r0, [sp, #0] + 1646: 88c0 ldrh r0, [r0, #6] + 1648: 8148 strh r0, [r1, #10] ; 0xa + 164a: 4668 mov r0, sp + 164c: 8941 ldrh r1, [r0, #10] ; 0xa + 164e: 8900 ldrh r0, [r0, #8] + 1650: 0400 lsl r0, r0, #16 + 1652: 1808 add r0, r1, r0 + 1654: 9003 str r0, [sp, #12] ; 0xc + 1656: 9803 ldr r0, [sp, #12] ; 0xc + 1658: b004 add sp, #16 ; 0x10 + 165a: 4770 bx lr + 165c: b085 sub sp, #20 ; 0x14 + 165e: 9303 str r3, [sp, #12] ; 0xc + 1660: 9202 str r2, [sp, #8] + 1662: 9101 str r1, [sp, #4] + 1664: 4669 mov r1, sp + 1666: 7008 strb r0, [r1, #0] + 1668: 48ea ldr r0, =0x83ff19 ; via 0x1a14 + 166a: 7809 ldrb r1, [r1, #0] + 166c: 7802 ldrb r2, [r0, #0] + 166e: 1889 add r1, r1, r2 + 1670: 7001 strb r1, [r0, #0] + 1672: 48e9 ldr r0, =0x83ff1a ; via 0x1a18 + 1674: 7800 ldrb r0, [r0, #0] + 1676: 2800 cmp r0, #0 + 1678: d00e beq 0x1698 + 167a: 48e8 ldr r0, =0x83ff26 ; via 0x1a1c + 167c: 4669 mov r1, sp + 167e: 780a ldrb r2, [r1, #0] + 1680: 8801 ldrh r1, [r0, #0] + 1682: 1851 add r1, r2, r1 + 1684: 8001 strh r1, [r0, #0] + 1686: 9903 ldr r1, [sp, #12] ; 0xc + 1688: 48e4 ldr r0, =0x83ff26 ; via 0x1a1c + 168a: 8800 ldrh r0, [r0, #0] + 168c: 8008 strh r0, [r1, #0] + 168e: 9801 ldr r0, [sp, #4] + 1690: 2100 mov r1, #0 + 1692: 6001 str r1, [r0, #0] + 1694: 2000 mov r0, #0 + 1696: e009 b 0x16ac + 1698: 9902 ldr r1, [sp, #8] + 169a: 6808 ldr r0, [r1, #0] + 169c: 3002 add r0, #2 + 169e: 6008 str r0, [r1, #0] + 16a0: 49de ldr r1, =0x83ff26 ; via 0x1a1c + 16a2: 4668 mov r0, sp + 16a4: 7800 ldrb r0, [r0, #0] + 16a6: 0200 lsl r0, r0, #8 + 16a8: 8008 strh r0, [r1, #0] + 16aa: 2001 mov r0, #1 + 16ac: 9004 str r0, [sp, #16] ; 0x10 + 16ae: 2001 mov r0, #1 + 16b0: 49d9 ldr r1, =0x83ff1a ; via 0x1a18 + 16b2: 7809 ldrb r1, [r1, #0] + 16b4: 4388 bic r0, r1 + 16b6: 49d8 ldr r1, =0x83ff1a ; via 0x1a18 + 16b8: 7008 strb r0, [r1, #0] + 16ba: 48d9 ldr r0, =0x83ff24 ; via 0x1a20 + 16bc: 7801 ldrb r1, [r0, #0] + 16be: 3901 sub r1, #1 + 16c0: 7001 strb r1, [r0, #0] + 16c2: 48d7 ldr r0, =0x83ff24 ; via 0x1a20 + 16c4: 7800 ldrb r0, [r0, #0] + 16c6: 2800 cmp r0, #0 + 16c8: d102 bne 0x16d0 + 16ca: 48d6 ldr r0, =0x83ff20 ; via 0x1a24 + 16cc: 2106 mov r1, #6 + 16ce: 6001 str r1, [r0, #0] + 16d0: 9804 ldr r0, [sp, #16] ; 0x10 + 16d2: b005 add sp, #20 ; 0x14 + 16d4: 46f7 mov pc, lr + 16d6: b083 sub sp, #12 ; 0xc + 16d8: 9101 str r1, [sp, #4] + 16da: 4669 mov r1, sp + 16dc: 7008 strb r0, [r1, #0] + 16de: 2001 mov r0, #1 + 16e0: 9002 str r0, [sp, #8] + 16e2: 48d1 ldr r0, =0x83ff1b ; via 0x1a28 + 16e4: 7800 ldrb r0, [r0, #0] + 16e6: 2800 cmp r0, #0 + 16e8: d10a bne 0x1700 + 16ea: 4668 mov r0, sp + 16ec: 7800 ldrb r0, [r0, #0] + 16ee: 2853 cmp r0, #83 ; 0x53 + 16f0: d102 bne 0x16f8 + 16f2: 48cd ldr r0, =0x83ff1b ; via 0x1a28 + 16f4: 2101 mov r1, #1 + 16f6: e01a b 0x172e + 16f8: 2101 mov r1, #1 + 16fa: 9801 ldr r0, [sp, #4] + 16fc: 6001 str r1, [r0, #0] + 16fe: e03b b 0x1778 + 1700: 49c9 ldr r1, =0x83ff1b ; via 0x1a28 + 1702: 2000 mov r0, #0 + 1704: 7008 strb r0, [r1, #0] + 1706: 4668 mov r0, sp + 1708: 7800 ldrb r0, [r0, #0] + 170a: 2830 cmp r0, #48 ; 0x30 + 170c: d111 bne 0x1732 + 170e: 48c7 ldr r0, =0x83ff18 ; via 0x1a2c + 1710: 7800 ldrb r0, [r0, #0] + 1712: 2800 cmp r0, #0 + 1714: d006 beq 0x1724 + 1716: 9901 ldr r1, [sp, #4] + 1718: 2001 mov r0, #1 + 171a: 6008 str r0, [r1, #0] + 171c: 49c3 ldr r1, =0x83ff18 ; via 0x1a2c + 171e: 2000 mov r0, #0 + 1720: 7008 strb r0, [r1, #0] + 1722: e02a b 0x177a + 1724: 48bf ldr r0, =0x83ff20 ; via 0x1a24 + 1726: 2102 mov r1, #2 + 1728: 6001 str r1, [r0, #0] + 172a: 48ef ldr r0, =0x83ff1c ; via 0x1ae8 + 172c: 2100 mov r1, #0 + 172e: 7001 strb r1, [r0, #0] + 1730: e024 b 0x177c + 1732: 4668 mov r0, sp + 1734: 7800 ldrb r0, [r0, #0] + 1736: 2833 cmp r0, #51 ; 0x33 + 1738: d105 bne 0x1746 + 173a: 48bc ldr r0, =0x83ff18 ; via 0x1a2c + 173c: 7800 ldrb r0, [r0, #0] + 173e: 2800 cmp r0, #0 + 1740: d0da beq 0x16f8 + 1742: 2004 mov r0, #4 + 1744: e00c b 0x1760 + 1746: 4668 mov r0, sp + 1748: 7800 ldrb r0, [r0, #0] + 174a: 2837 cmp r0, #55 ; 0x37 + 174c: d10e bne 0x176c + 174e: 48b7 ldr r0, =0x83ff18 ; via 0x1a2c + 1750: 7800 ldrb r0, [r0, #0] + 1752: 2800 cmp r0, #0 + 1754: d103 bne 0x175e + 1756: 9901 ldr r1, [sp, #4] + 1758: 2001 mov r0, #1 + 175a: 6008 str r0, [r1, #0] + 175c: e00c b 0x1778 + 175e: 2003 mov r0, #3 + 1760: 49b0 ldr r1, =0x83ff20 ; via 0x1a24 + 1762: 6008 str r0, [r1, #0] + 1764: 2000 mov r0, #0 + 1766: 49e0 ldr r1, =0x83ff1c ; via 0x1ae8 + 1768: 7008 strb r0, [r1, #0] + 176a: e007 b 0x177c + 176c: 9901 ldr r1, [sp, #4] + 176e: 2001 mov r0, #1 + 1770: 6008 str r0, [r1, #0] + 1772: 48ae ldr r0, =0x83ff18 ; via 0x1a2c + 1774: 2100 mov r1, #0 + 1776: 7001 strb r1, [r0, #0] + 1778: 2000 mov r0, #0 + 177a: 9002 str r0, [sp, #8] + 177c: 9802 ldr r0, [sp, #8] + 177e: b003 add sp, #12 ; 0xc + 1780: 46f7 mov pc, lr + 1782: b083 sub sp, #12 ; 0xc + 1784: 9101 str r1, [sp, #4] + 1786: 4669 mov r1, sp + 1788: 7008 strb r0, [r1, #0] + 178a: 2001 mov r0, #1 + 178c: 9002 str r0, [sp, #8] + 178e: 49d7 ldr r1, =0x830 ; via 0x1aec + 1790: 48d5 ldr r0, =0x83ff1c ; via 0x1ae8 + 1792: 7800 ldrb r0, [r0, #0] + 1794: 0080 lsl r0, r0, #2 + 1796: 5808 ldr r0, [r1, r0] + 1798: 4669 mov r1, sp + 179a: 7809 ldrb r1, [r1, #0] + 179c: 4281 cmp r1, r0 + 179e: d10d bne 0x17bc + 17a0: 49d1 ldr r1, =0x83ff1c ; via 0x1ae8 + 17a2: 7808 ldrb r0, [r1, #0] + 17a4: 3001 add r0, #1 + 17a6: 7008 strb r0, [r1, #0] + 17a8: 48cf ldr r0, =0x83ff1c ; via 0x1ae8 + 17aa: 7800 ldrb r0, [r0, #0] + 17ac: 2807 cmp r0, #7 + 17ae: d10d bne 0x17cc + 17b0: 489c ldr r0, =0x83ff20 ; via 0x1a24 + 17b2: 2101 mov r1, #1 + 17b4: 6001 str r1, [r0, #0] + 17b6: 489d ldr r0, =0x83ff18 ; via 0x1a2c + 17b8: 7001 strb r1, [r0, #0] + 17ba: e007 b 0x17cc + 17bc: 9801 ldr r0, [sp, #4] + 17be: 2101 mov r1, #1 + 17c0: 6001 str r1, [r0, #0] + 17c2: 4998 ldr r1, =0x83ff20 ; via 0x1a24 + 17c4: 2001 mov r0, #1 + 17c6: 6008 str r0, [r1, #0] + 17c8: 2000 mov r0, #0 + 17ca: 9002 str r0, [sp, #8] + 17cc: 9802 ldr r0, [sp, #8] + 17ce: b003 add sp, #12 ; 0xc + 17d0: 46f7 mov pc, lr + 17d2: b083 sub sp, #12 ; 0xc + 17d4: 9101 str r1, [sp, #4] + 17d6: 4669 mov r1, sp + 17d8: 7008 strb r0, [r1, #0] + 17da: 2001 mov r0, #1 + 17dc: 9002 str r0, [sp, #8] + 17de: 49c4 ldr r1, =0x84c ; via 0x1af0 + 17e0: 48c1 ldr r0, =0x83ff1c ; via 0x1ae8 + 17e2: 7800 ldrb r0, [r0, #0] + 17e4: 0080 lsl r0, r0, #2 + 17e6: 5808 ldr r0, [r1, r0] + 17e8: 4669 mov r1, sp + 17ea: 7809 ldrb r1, [r1, #0] + 17ec: 4281 cmp r1, r0 + 17ee: d112 bne 0x1816 + 17f0: 49bd ldr r1, =0x83ff1c ; via 0x1ae8 + 17f2: 7808 ldrb r0, [r1, #0] + 17f4: 3001 add r0, #1 + 17f6: 7008 strb r0, [r1, #0] + 17f8: 48bb ldr r0, =0x83ff1c ; via 0x1ae8 + 17fa: 7800 ldrb r0, [r0, #0] + 17fc: 2806 cmp r0, #6 + 17fe: d114 bne 0x182a + 1800: 9801 ldr r0, [sp, #4] + 1802: 2102 mov r1, #2 + 1804: 6001 str r1, [r0, #0] + 1806: 4887 ldr r0, =0x83ff20 ; via 0x1a24 + 1808: 2101 mov r1, #1 + 180a: 6001 str r1, [r0, #0] + 180c: 4887 ldr r0, =0x83ff18 ; via 0x1a2c + 180e: 2100 mov r1, #0 + 1810: 7001 strb r1, [r0, #0] + 1812: 2000 mov r0, #0 + 1814: e008 b 0x1828 + 1816: 9801 ldr r0, [sp, #4] + 1818: 2101 mov r1, #1 + 181a: 6001 str r1, [r0, #0] + 181c: 4981 ldr r1, =0x83ff20 ; via 0x1a24 + 181e: 2001 mov r0, #1 + 1820: 6008 str r0, [r1, #0] + 1822: 4982 ldr r1, =0x83ff18 ; via 0x1a2c + 1824: 2000 mov r0, #0 + 1826: 7008 strb r0, [r1, #0] + 1828: 9002 str r0, [sp, #8] + 182a: 9802 ldr r0, [sp, #8] + 182c: b003 add sp, #12 ; 0xc + 182e: 46f7 mov pc, lr + 1830: b081 sub sp, #4 + 1832: 4669 mov r1, sp + 1834: 7008 strb r0, [r1, #0] + 1836: 497a ldr r1, =0x83ff24 ; via 0x1a20 + 1838: 4668 mov r0, sp + 183a: 7800 ldrb r0, [r0, #0] + 183c: 3801 sub r0, #1 + 183e: 7008 strb r0, [r1, #0] + 1840: 4874 ldr r0, =0x83ff19 ; via 0x1a14 + 1842: 4669 mov r1, sp + 1844: 7809 ldrb r1, [r1, #0] + 1846: 7001 strb r1, [r0, #0] + 1848: 48a7 ldr r0, =0x83ff1c ; via 0x1ae8 + 184a: 2100 mov r1, #0 + 184c: 7001 strb r1, [r0, #0] + 184e: 48e3 ldr r0, =0x83ff14 ; via 0x1bdc + 1850: 6001 str r1, [r0, #0] + 1852: 4874 ldr r0, =0x83ff20 ; via 0x1a24 + 1854: 2105 mov r1, #5 + 1856: 6001 str r1, [r0, #0] + 1858: b001 add sp, #4 + 185a: 46f7 mov pc, lr + 185c: b084 sub sp, #16 ; 0x10 + 185e: 9202 str r2, [sp, #8] + 1860: 9101 str r1, [sp, #4] + 1862: 4669 mov r1, sp + 1864: 7008 strb r0, [r1, #0] + 1866: 2001 mov r0, #1 + 1868: 9003 str r0, [sp, #12] ; 0xc + 186a: 496d ldr r1, =0x83ff24 ; via 0x1a20 + 186c: 7808 ldrb r0, [r1, #0] + 186e: 3801 sub r0, #1 + 1870: 7008 strb r0, [r1, #0] + 1872: 486b ldr r0, =0x83ff24 ; via 0x1a20 + 1874: 7800 ldrb r0, [r0, #0] + 1876: 2800 cmp r0, #0 + 1878: d026 beq 0x18c8 + 187a: 4866 ldr r0, =0x83ff19 ; via 0x1a14 + 187c: 4669 mov r1, sp + 187e: 780a ldrb r2, [r1, #0] + 1880: 7801 ldrb r1, [r0, #0] + 1882: 1851 add r1, r2, r1 + 1884: 7001 strb r1, [r0, #0] + 1886: 4998 ldr r1, =0x83ff1c ; via 0x1ae8 + 1888: 7808 ldrb r0, [r1, #0] + 188a: 3001 add r0, #1 + 188c: 7008 strb r0, [r1, #0] + 188e: 49d3 ldr r1, =0x83ff14 ; via 0x1bdc + 1890: 2204 mov r2, #4 + 1892: 4895 ldr r0, =0x83ff1c ; via 0x1ae8 + 1894: 7800 ldrb r0, [r0, #0] + 1896: 1a10 sub r0, r2, r0 + 1898: 00c2 lsl r2, r0, #3 + 189a: 4668 mov r0, sp + 189c: 7800 ldrb r0, [r0, #0] + 189e: 4090 lsl r0, r2 + 18a0: 680a ldr r2, [r1, #0] + 18a2: 1880 add r0, r0, r2 + 18a4: 6008 str r0, [r1, #0] + 18a6: 4890 ldr r0, =0x83ff1c ; via 0x1ae8 + 18a8: 7800 ldrb r0, [r0, #0] + 18aa: 2804 cmp r0, #4 + 18ac: d117 bne 0x18de + 18ae: 9902 ldr r1, [sp, #8] + 18b0: 48ca ldr r0, =0x83ff14 ; via 0x1bdc + 18b2: 6800 ldr r0, [r0, #0] + 18b4: 3802 sub r0, #2 + 18b6: 6008 str r0, [r1, #0] + 18b8: 485a ldr r0, =0x83ff20 ; via 0x1a24 + 18ba: 2100 mov r1, #0 + 18bc: 6001 str r1, [r0, #0] + 18be: 4856 ldr r0, =0x83ff1a ; via 0x1a18 + 18c0: 7001 strb r1, [r0, #0] + 18c2: 4889 ldr r0, =0x83ff1c ; via 0x1ae8 + 18c4: 7001 strb r1, [r0, #0] + 18c6: e00a b 0x18de + 18c8: 9801 ldr r0, [sp, #4] + 18ca: 2101 mov r1, #1 + 18cc: 6001 str r1, [r0, #0] + 18ce: 4955 ldr r1, =0x83ff20 ; via 0x1a24 + 18d0: 2001 mov r0, #1 + 18d2: 6008 str r0, [r1, #0] + 18d4: 4855 ldr r0, =0x83ff18 ; via 0x1a2c + 18d6: 2100 mov r1, #0 + 18d8: 7001 strb r1, [r0, #0] + 18da: 2000 mov r0, #0 + 18dc: 9003 str r0, [sp, #12] ; 0xc + 18de: 9803 ldr r0, [sp, #12] ; 0xc + 18e0: b004 add sp, #16 ; 0x10 + 18e2: 46f7 mov pc, lr + 18e4: b083 sub sp, #12 ; 0xc + 18e6: 9101 str r1, [sp, #4] + 18e8: 4669 mov r1, sp + 18ea: 7008 strb r0, [r1, #0] + 18ec: 2001 mov r0, #1 + 18ee: 9002 str r0, [sp, #8] + 18f0: 494c ldr r1, =0x83ff20 ; via 0x1a24 + 18f2: 6008 str r0, [r1, #0] + 18f4: 20ff mov r0, #255 ; 0xff + 18f6: 4669 mov r1, sp + 18f8: 7809 ldrb r1, [r1, #0] + 18fa: 4388 bic r0, r1 + 18fc: 4945 ldr r1, =0x83ff19 ; via 0x1a14 + 18fe: 7809 ldrb r1, [r1, #0] + 1900: 4281 cmp r1, r0 + 1902: d007 beq 0x1914 + 1904: 9801 ldr r0, [sp, #4] + 1906: 2101 mov r1, #1 + 1908: 6001 str r1, [r0, #0] + 190a: 4848 ldr r0, =0x83ff18 ; via 0x1a2c + 190c: 2100 mov r1, #0 + 190e: 7001 strb r1, [r0, #0] + 1910: 2000 mov r0, #0 + 1912: 9002 str r0, [sp, #8] + 1914: 9802 ldr r0, [sp, #8] + 1916: b003 add sp, #12 ; 0xc + 1918: 46f7 mov pc, lr + 191a: b085 sub sp, #20 ; 0x14 + 191c: 466b mov r3, sp + 191e: 719a strb r2, [r3, #6] + 1920: 466a mov r2, sp + 1922: 8091 strh r1, [r2, #4] + 1924: 9000 str r0, [sp, #0] + 1926: 9800 ldr r0, [sp, #0] + 1928: 9002 str r0, [sp, #8] + 192a: 4669 mov r1, sp + 192c: 4668 mov r0, sp + 192e: 8880 ldrh r0, [r0, #4] + 1930: 8208 strh r0, [r1, #16] ; 0x10 + 1932: 4668 mov r0, sp + 1934: 8a00 ldrh r0, [r0, #16] ; 0x10 + 1936: 2800 cmp r0, #0 + 1938: d01e beq 0x1978 + 193a: 49e3 ldr r1, =0x864 ; via 0x1cc8 + 193c: 4668 mov r0, sp + 193e: 7980 ldrb r0, [r0, #6] + 1940: 0080 lsl r0, r0, #2 + 1942: 5808 ldr r0, [r1, r0] + 1944: 7941 ldrb r1, [r0, #5] + 1946: 4668 mov r0, sp + 1948: 7301 strb r1, [r0, #12] ; 0xc + 194a: 7b00 ldrb r0, [r0, #12] ; 0xc + 194c: 0980 lsr r0, r0, #6 + 194e: d3f4 bcc 0x193a + 1950: 49dd ldr r1, =0x864 ; via 0x1cc8 + 1952: 4668 mov r0, sp + 1954: 7980 ldrb r0, [r0, #6] + 1956: 0080 lsl r0, r0, #2 + 1958: 5809 ldr r1, [r1, r0] + 195a: 9802 ldr r0, [sp, #8] + 195c: 7800 ldrb r0, [r0, #0] + 195e: 7008 strb r0, [r1, #0] + 1960: 9802 ldr r0, [sp, #8] + 1962: 3001 add r0, #1 + 1964: 9002 str r0, [sp, #8] + 1966: 4669 mov r1, sp + 1968: 4668 mov r0, sp + 196a: 8a00 ldrh r0, [r0, #16] ; 0x10 + 196c: 3801 sub r0, #1 + 196e: 8208 strh r0, [r1, #16] ; 0x10 + 1970: 4668 mov r0, sp + 1972: 8a00 ldrh r0, [r0, #16] ; 0x10 + 1974: 2800 cmp r0, #0 + 1976: d1e0 bne 0x193a + 1978: b005 add sp, #20 ; 0x14 + 197a: 46f7 mov pc, lr + 197c: b082 sub sp, #8 + 197e: 4669 mov r1, sp + 1980: 7008 strb r0, [r1, #0] + 1982: 2000 mov r0, #0 + 1984: 8088 strh r0, [r1, #4] + 1986: 4668 mov r0, sp + 1988: 8881 ldrh r1, [r0, #4] + 198a: 20ff mov r0, #255 ; 0xff + 198c: 30f5 add r0, #245 ; 0xf5 + 198e: 4281 cmp r1, r0 + 1990: da21 bge 0x19d6 + 1992: 4669 mov r1, sp + 1994: 4668 mov r0, sp + 1996: 8880 ldrh r0, [r0, #4] + 1998: 3001 add r0, #1 + 199a: 8088 strh r0, [r1, #4] + 199c: 48ca ldr r0, =0x864 ; via 0x1cc8 + 199e: 7809 ldrb r1, [r1, #0] + 19a0: 0089 lsl r1, r1, #2 + 19a2: 5840 ldr r0, [r0, r1] + 19a4: 7940 ldrb r0, [r0, #5] + 19a6: 4669 mov r1, sp + 19a8: 7048 strb r0, [r1, #1] + 19aa: 4668 mov r0, sp + 19ac: 7840 ldrb r0, [r0, #1] + 19ae: 0840 lsr r0, r0, #1 + 19b0: d30b bcc 0x19ca + 19b2: 49c5 ldr r1, =0x864 ; via 0x1cc8 + 19b4: 4668 mov r0, sp + 19b6: 7800 ldrb r0, [r0, #0] + 19b8: 0080 lsl r0, r0, #2 + 19ba: 5808 ldr r0, [r1, r0] + 19bc: 7800 ldrb r0, [r0, #0] + 19be: 0600 lsl r0, r0, #24 + 19c0: 0e00 lsr r0, r0, #24 + 19c2: 4669 mov r1, sp + 19c4: 7088 strb r0, [r1, #2] + 19c6: 2000 mov r0, #0 + 19c8: 8088 strh r0, [r1, #4] + 19ca: 4668 mov r0, sp + 19cc: 8881 ldrh r1, [r0, #4] + 19ce: 20ff mov r0, #255 ; 0xff + 19d0: 30f5 add r0, #245 ; 0xf5 + 19d2: 4281 cmp r1, r0 + 19d4: dbdd blt 0x1992 + 19d6: b002 add sp, #8 + 19d8: 4770 bx lr + 19da: b500 push {lr} + 19dc: b08c sub sp, #48 ; 0x30 + 19de: 466a mov r2, sp + 19e0: 7111 strb r1, [r2, #4] + 19e2: 9000 str r0, [sp, #0] + 19e4: 2001 mov r0, #1 + 19e6: 9002 str r0, [sp, #8] + 19e8: 9800 ldr r0, [sp, #0] + 19ea: a904 add r1, sp, #16 ; 0x10 + 19ec: aa03 add r2, sp, #12 ; 0xc + 19ee: f7ff fd75 bl 0x14dc + 19f2: 4668 mov r0, sp + 19f4: 8980 ldrh r0, [r0, #12] ; 0xc + 19f6: 2820 cmp r0, #32 ; 0x20 + 19f8: dd02 ble 0x1a00 + 19fa: 2000 mov r0, #0 + 19fc: 9002 str r0, [sp, #8] + 19fe: e006 b 0x1a0e + 1a00: a804 add r0, sp, #16 ; 0x10 + 1a02: 4669 mov r1, sp + 1a04: 8989 ldrh r1, [r1, #12] ; 0xc + 1a06: 466a mov r2, sp + 1a08: 7912 ldrb r2, [r2, #4] + 1a0a: f7ff ff86 bl 0x191a + 1a0e: 9802 ldr r0, [sp, #8] + 1a10: b00c add sp, #48 ; 0x30 + 1a12: bd00 pop {pc} + 1a14: ff19 + 1a16: 0083 lsl r3, r0, #2 + 1a18: ff1a + 1a1a: 0083 lsl r3, r0, #2 + 1a1c: ff26 + 1a1e: 0083 lsl r3, r0, #2 + 1a20: ff24 + 1a22: 0083 lsl r3, r0, #2 + 1a24: ff20 + 1a26: 0083 lsl r3, r0, #2 + 1a28: ff1b + 1a2a: 0083 lsl r3, r0, #2 + 1a2c: ff18 + 1a2e: 0083 lsl r3, r0, #2 + 1a30: b500 push {lr} + 1a32: b084 sub sp, #16 ; 0x10 + 1a34: 9101 str r1, [sp, #4] + 1a36: 9000 str r0, [sp, #0] + 1a38: 4669 mov r1, sp + 1a3a: 20ff mov r0, #255 ; 0xff + 1a3c: 7308 strb r0, [r1, #12] ; 0xc + 1a3e: 2000 mov r0, #0 + 1a40: 9002 str r0, [sp, #8] + 1a42: 4669 mov r1, sp + 1a44: 48a1 ldr r0, =0xffff5805 ; via 0x1ccc + 1a46: 7800 ldrb r0, [r0, #0] + 1a48: 7348 strb r0, [r1, #13] ; 0xd + 1a4a: 48a1 ldr r0, =0xffff5005 ; via 0x1cd0 + 1a4c: 7800 ldrb r0, [r0, #0] + 1a4e: 7388 strb r0, [r1, #14] ; 0xe + 1a50: 4668 mov r0, sp + 1a52: 7b40 ldrb r0, [r0, #13] ; 0xd + 1a54: 0840 lsr r0, r0, #1 + 1a56: d206 bcs 0x1a66 + 1a58: 4668 mov r0, sp + 1a5a: 7b80 ldrb r0, [r0, #14] ; 0xe + 1a5c: 0840 lsr r0, r0, #1 + 1a5e: d202 bcs 0x1a66 + 1a60: 9801 ldr r0, [sp, #4] + 1a62: 2800 cmp r0, #0 + 1a64: d0ed beq 0x1a42 + 1a66: 4668 mov r0, sp + 1a68: 7b40 ldrb r0, [r0, #13] ; 0xd + 1a6a: 0840 lsr r0, r0, #1 + 1a6c: d316 bcc 0x1a9c + 1a6e: 4669 mov r1, sp + 1a70: 2000 mov r0, #0 + 1a72: 7308 strb r0, [r1, #12] ; 0xc + 1a74: 4994 ldr r1, =0x864 ; via 0x1cc8 + 1a76: 4668 mov r0, sp + 1a78: 7b00 ldrb r0, [r0, #12] ; 0xc + 1a7a: 0080 lsl r0, r0, #2 + 1a7c: 5808 ldr r0, [r1, r0] + 1a7e: 7800 ldrb r0, [r0, #0] + 1a80: 0600 lsl r0, r0, #24 + 1a82: 0e00 lsr r0, r0, #24 + 1a84: 4669 mov r1, sp + 1a86: 73c8 strb r0, [r1, #15] ; 0xf + 1a88: 4668 mov r0, sp + 1a8a: 7bc0 ldrb r0, [r0, #15] ; 0xf + 1a8c: 9900 ldr r1, [sp, #0] + 1a8e: f7ff fc9f bl 0x13d0 + 1a92: 9002 str r0, [sp, #8] + 1a94: 9802 ldr r0, [sp, #8] + 1a96: 2800 cmp r0, #0 + 1a98: d11c bne 0x1ad4 + 1a9a: e018 b 0x1ace + 1a9c: 4668 mov r0, sp + 1a9e: 7b80 ldrb r0, [r0, #14] ; 0xe + 1aa0: 0840 lsr r0, r0, #1 + 1aa2: d317 bcc 0x1ad4 + 1aa4: 4669 mov r1, sp + 1aa6: 2001 mov r0, #1 + 1aa8: 7308 strb r0, [r1, #12] ; 0xc + 1aaa: 4987 ldr r1, =0x864 ; via 0x1cc8 + 1aac: 4668 mov r0, sp + 1aae: 7b00 ldrb r0, [r0, #12] ; 0xc + 1ab0: 0080 lsl r0, r0, #2 + 1ab2: 5808 ldr r0, [r1, r0] + 1ab4: 7800 ldrb r0, [r0, #0] + 1ab6: 0600 lsl r0, r0, #24 + 1ab8: 0e01 lsr r1, r0, #24 + 1aba: 4668 mov r0, sp + 1abc: 73c1 strb r1, [r0, #15] ; 0xf + 1abe: 7bc0 ldrb r0, [r0, #15] ; 0xf + 1ac0: 9900 ldr r1, [sp, #0] + 1ac2: f7ff fc85 bl 0x13d0 + 1ac6: 9002 str r0, [sp, #8] + 1ac8: 9802 ldr r0, [sp, #8] + 1aca: 2800 cmp r0, #0 + 1acc: d102 bne 0x1ad4 + 1ace: 20ff mov r0, #255 ; 0xff + 1ad0: 4669 mov r1, sp + 1ad2: 7308 strb r0, [r1, #12] ; 0xc + 1ad4: 9802 ldr r0, [sp, #8] + 1ad6: 2800 cmp r0, #0 + 1ad8: d102 bne 0x1ae0 + 1ada: 9801 ldr r0, [sp, #4] + 1adc: 2800 cmp r0, #0 + 1ade: d0b0 beq 0x1a42 + 1ae0: 4668 mov r0, sp + 1ae2: 7b00 ldrb r0, [r0, #12] ; 0xc + 1ae4: b004 add sp, #16 ; 0x10 + 1ae6: bd00 pop {pc} + 1ae8: ff1c + 1aea: 0083 lsl r3, r0, #2 + 1aec: 0830 lsr r0, r6, #32 + 1aee: 0000 lsl r0, r0, #0 + 1af0: 084c lsr r4, r1, #1 + 1af2: 0000 lsl r0, r0, #0 + 1af4: b500 push {lr} + 1af6: b086 sub sp, #24 ; 0x18 + 1af8: 466b mov r3, sp + 1afa: 721a strb r2, [r3, #8] + 1afc: 9101 str r1, [sp, #4] + 1afe: 9000 str r0, [sp, #0] + 1b00: 2001 mov r0, #1 + 1b02: 9004 str r0, [sp, #16] ; 0x10 + 1b04: 9804 ldr r0, [sp, #16] ; 0x10 + 1b06: 2800 cmp r0, #0 + 1b08: d05b beq 0x1bc2 + 1b0a: 496f ldr r1, =0x864 ; via 0x1cc8 + 1b0c: 4668 mov r0, sp + 1b0e: 7a00 ldrb r0, [r0, #8] + 1b10: 0080 lsl r0, r0, #2 + 1b12: 5808 ldr r0, [r1, r0] + 1b14: 7941 ldrb r1, [r0, #5] + 1b16: 4668 mov r0, sp + 1b18: 7301 strb r1, [r0, #12] ; 0xc + 1b1a: 7b00 ldrb r0, [r0, #12] ; 0xc + 1b1c: 0840 lsr r0, r0, #1 + 1b1e: d3f4 bcc 0x1b0a + 1b20: 4969 ldr r1, =0x864 ; via 0x1cc8 + 1b22: 4668 mov r0, sp + 1b24: 7a00 ldrb r0, [r0, #8] + 1b26: 0080 lsl r0, r0, #2 + 1b28: 5808 ldr r0, [r1, r0] + 1b2a: 7800 ldrb r0, [r0, #0] + 1b2c: 0600 lsl r0, r0, #24 + 1b2e: 0e01 lsr r1, r0, #24 + 1b30: 4668 mov r0, sp + 1b32: 7341 strb r1, [r0, #13] ; 0xd + 1b34: e02c b 0x1b90 + 1b36: 4668 mov r0, sp + 1b38: 7b40 ldrb r0, [r0, #13] ; 0xd + 1b3a: a905 add r1, sp, #20 ; 0x14 + 1b3c: 9a00 ldr r2, [sp, #0] + 1b3e: 9b01 ldr r3, [sp, #4] + 1b40: f7ff fd8c bl 0x165c + 1b44: 9004 str r0, [sp, #16] ; 0x10 + 1b46: e039 b 0x1bbc + 1b48: 4668 mov r0, sp + 1b4a: 7b40 ldrb r0, [r0, #13] ; 0xd + 1b4c: a905 add r1, sp, #20 ; 0x14 + 1b4e: f7ff fdc2 bl 0x16d6 + 1b52: e7f7 b 0x1b44 + 1b54: 4668 mov r0, sp + 1b56: 7b40 ldrb r0, [r0, #13] ; 0xd + 1b58: a905 add r1, sp, #20 ; 0x14 + 1b5a: f7ff fe12 bl 0x1782 + 1b5e: e7f1 b 0x1b44 + 1b60: 4668 mov r0, sp + 1b62: 7b40 ldrb r0, [r0, #13] ; 0xd + 1b64: a905 add r1, sp, #20 ; 0x14 + 1b66: f7ff fe34 bl 0x17d2 + 1b6a: e7eb b 0x1b44 + 1b6c: 4668 mov r0, sp + 1b6e: 7b40 ldrb r0, [r0, #13] ; 0xd + 1b70: f7ff fe5e bl 0x1830 + 1b74: e022 b 0x1bbc + 1b76: 4668 mov r0, sp + 1b78: 7b40 ldrb r0, [r0, #13] ; 0xd + 1b7a: a905 add r1, sp, #20 ; 0x14 + 1b7c: 9a00 ldr r2, [sp, #0] + 1b7e: f7ff fe6d bl 0x185c + 1b82: e7df b 0x1b44 + 1b84: 4668 mov r0, sp + 1b86: 7b40 ldrb r0, [r0, #13] ; 0xd + 1b88: a905 add r1, sp, #20 ; 0x14 + 1b8a: f7ff feab bl 0x18e4 + 1b8e: e7d9 b 0x1b44 + 1b90: 4850 ldr r0, =0x83ff20 ; via 0x1cd4 + 1b92: 6800 ldr r0, [r0, #0] + 1b94: 2800 cmp r0, #0 + 1b96: d0ce beq 0x1b36 + 1b98: 3801 sub r0, #1 + 1b9a: 2800 cmp r0, #0 + 1b9c: d0d4 beq 0x1b48 + 1b9e: 3801 sub r0, #1 + 1ba0: 2800 cmp r0, #0 + 1ba2: d0d7 beq 0x1b54 + 1ba4: 3801 sub r0, #1 + 1ba6: 2800 cmp r0, #0 + 1ba8: d0da beq 0x1b60 + 1baa: 3801 sub r0, #1 + 1bac: 2800 cmp r0, #0 + 1bae: d0dd beq 0x1b6c + 1bb0: 3801 sub r0, #1 + 1bb2: 2800 cmp r0, #0 + 1bb4: d0df beq 0x1b76 + 1bb6: 3801 sub r0, #1 + 1bb8: 2800 cmp r0, #0 + 1bba: d0e3 beq 0x1b84 + 1bbc: 9804 ldr r0, [sp, #16] ; 0x10 + 1bbe: 2800 cmp r0, #0 + 1bc0: d1a3 bne 0x1b0a + 1bc2: 9805 ldr r0, [sp, #20] ; 0x14 + 1bc4: b006 add sp, #24 ; 0x18 + 1bc6: bd00 pop {pc} + 1bc8: 4942 ldr r1, =0x83ff20 ; via 0x1cd4 + 1bca: 2001 mov r0, #1 + 1bcc: 6008 str r0, [r1, #0] + 1bce: 4842 ldr r0, =0x83ff1b ; via 0x1cd8 + 1bd0: 2100 mov r1, #0 + 1bd2: 7001 strb r1, [r0, #0] + 1bd4: 4841 ldr r0, =0x83ff18 ; via 0x1cdc + 1bd6: 7001 strb r1, [r0, #0] + 1bd8: 4770 bx lr + 1bda: 46c0 nop (mov r8, r8) + + 1bdc: 0083ff14 + +; hoping this routine will be the same as 0x1c38 in the C139 version +; same length, looks the same on inspection + 1be0: b081 sub sp, #4 + 1be2: 483f ldr r0, =0xffff5800 ; via 0x1ce0 + 1be4: 9000 str r0, [sp, #0] + 1be6: 493f ldr r1, =0xffff6000 ; via 0x1ce4 + 1be8: 2002 mov r0, #2 + 1bea: 880a ldrh r2, [r1, #0] + 1bec: 4310 orr r0, r2 + 1bee: 8008 strh r0, [r1, #0] + 1bf0: 483c ldr r0, =0xffff6000 ; via 0x1ce4 + 1bf2: 8801 ldrh r1, [r0, #0] + 1bf4: 0849 lsr r1, r1, #1 + 1bf6: 0049 lsl r1, r1, #1 + 1bf8: 8001 strh r1, [r0, #0] + 1bfa: 493a ldr r1, =0xffff6000 ; via 0x1ce4 + 1bfc: 8808 ldrh r0, [r1, #0] + 1bfe: 2202 mov r2, #2 + 1c00: 4390 bic r0, r2 + 1c02: 8008 strh r0, [r1, #0] + 1c04: 9900 ldr r1, [sp, #0] + 1c06: 2007 mov r0, #7 + 1c08: 7208 strb r0, [r1, #8] + 1c0a: 9900 ldr r1, [sp, #0] + 1c0c: 20bf mov r0, #191 ; 0xbf + 1c0e: 70c8 strb r0, [r1, #3] + 1c10: 9800 ldr r0, [sp, #0] + 1c12: 1c81 add r1, r0, #2 + 1c14: 2010 mov r0, #16 ; 0x10 + 1c16: 880a ldrh r2, [r1, #0] + 1c18: 4310 orr r0, r2 + 1c1a: 8008 strh r0, [r1, #0] + 1c1c: 9800 ldr r0, [sp, #0] + 1c1e: 2180 mov r1, #128 ; 0x80 + 1c20: 70c1 strb r1, [r0, #3] + 1c22: 9800 ldr r0, [sp, #0] + 1c24: 2107 mov r1, #7 + 1c26: 7081 strb r1, [r0, #2] + 1c28: 9800 ldr r0, [sp, #0] + 1c2a: 21bf mov r1, #191 ; 0xbf + 1c2c: 70c1 strb r1, [r0, #3] + 1c2e: 9800 ldr r0, [sp, #0] + 1c30: 2107 mov r1, #7 + 1c32: 7001 strb r1, [r0, #0] + 1c34: 9800 ldr r0, [sp, #0] + 1c36: 2100 mov r1, #0 + 1c38: 7041 strb r1, [r0, #1] + 1c3a: 9800 ldr r0, [sp, #0] + 1c3c: 2103 mov r1, #3 + 1c3e: 70c1 strb r1, [r0, #3] + 1c40: 9800 ldr r0, [sp, #0] + 1c42: 2100 mov r1, #0 + 1c44: 7201 strb r1, [r0, #8] + 1c46: 4828 ldr r0, =0xffff5000 ; via 0x1ce8 + 1c48: 9000 str r0, [sp, #0] + 1c4a: 9800 ldr r0, [sp, #0] + 1c4c: 2107 mov r1, #7 + 1c4e: 7201 strb r1, [r0, #8] + 1c50: 9900 ldr r1, [sp, #0] + 1c52: 20bf mov r0, #191 ; 0xbf + 1c54: 70c8 strb r0, [r1, #3] + 1c56: 9800 ldr r0, [sp, #0] + 1c58: 1c80 add r0, r0, #2 + 1c5a: 2110 mov r1, #16 ; 0x10 + 1c5c: 8802 ldrh r2, [r0, #0] + 1c5e: 4311 orr r1, r2 + 1c60: 8001 strh r1, [r0, #0] + 1c62: 9800 ldr r0, [sp, #0] + 1c64: 2180 mov r1, #128 ; 0x80 + 1c66: 70c1 strb r1, [r0, #3] + 1c68: 9800 ldr r0, [sp, #0] + 1c6a: 2107 mov r1, #7 + 1c6c: 7081 strb r1, [r0, #2] + 1c6e: 9800 ldr r0, [sp, #0] + 1c70: 21bf mov r1, #191 ; 0xbf + 1c72: 70c1 strb r1, [r0, #3] + 1c74: 9800 ldr r0, [sp, #0] + 1c76: 2107 mov r1, #7 + 1c78: 7001 strb r1, [r0, #0] + 1c7a: 9800 ldr r0, [sp, #0] + 1c7c: 2100 mov r1, #0 + 1c7e: 7041 strb r1, [r0, #1] + 1c80: 9900 ldr r1, [sp, #0] + 1c82: 2003 mov r0, #3 + 1c84: 70c8 strb r0, [r1, #3] + 1c86: 9800 ldr r0, [sp, #0] + 1c88: 2100 mov r1, #0 + 1c8a: 7201 strb r1, [r0, #8] + 1c8c: b001 add sp, #4 + 1c8e: 4770 bx lr + + 1c90: b081 sub sp, #4 + 1c92: 4669 mov r1, sp + 1c94: 7008 strb r0, [r1, #0] + 1c96: 490c ldr r1, =0x864 ; via 0x1cc8 + 1c98: 4668 mov r0, sp + 1c9a: 7800 ldrb r0, [r0, #0] + 1c9c: 0080 lsl r0, r0, #2 + 1c9e: 5808 ldr r0, [r1, r0] + 1ca0: 7941 ldrb r1, [r0, #5] + 1ca2: 4668 mov r0, sp + 1ca4: 7041 strb r1, [r0, #1] + 1ca6: 7840 ldrb r0, [r0, #1] + 1ca8: 09c0 lsr r0, r0, #7 + 1caa: d20b bcs 0x1cc4 + 1cac: 4806 ldr r0, =0x864 ; via 0x1cc8 + 1cae: 4669 mov r1, sp + 1cb0: 7809 ldrb r1, [r1, #0] + 1cb2: 0089 lsl r1, r1, #2 + 1cb4: 5840 ldr r0, [r0, r1] + 1cb6: 7940 ldrb r0, [r0, #5] + 1cb8: 4669 mov r1, sp + 1cba: 7048 strb r0, [r1, #1] + 1cbc: 4668 mov r0, sp + 1cbe: 7840 ldrb r0, [r0, #1] + 1cc0: 09c0 lsr r0, r0, #7 + 1cc2: d3f3 bcc 0x1cac + 1cc4: b001 add sp, #4 + 1cc6: 4770 bx lr + 1cc8: 0864 lsr r4, r4, #1 + 1cca: 0000 lsl r0, r0, #0 + 1ccc: 5805 ldr r5, [r0, r0] + 1cce: ffff + 1cd0: 5005 str r5, [r0, r0] + 1cd2: ffff + 1cd4: ff20 + 1cd6: 0083 lsl r3, r0, #2 + 1cd8: ff1b + 1cda: 0083 lsl r3, r0, #2 + 1cdc: ff18 + 1cde: 0083 lsl r3, r0, #2 + 1ce0: 5800 ldr r0, [r0, r0] + 1ce2: ffff + 1ce4: 6000 str r0, [r0, #0] + 1ce6: ffff + 1ce8: 5000 str r0, [r0, r0] + 1cea: ffff + 1cec: b500 push {lr} + 1cee: b087 sub sp, #28 ; 0x1c + 1cf0: 466b mov r3, sp + 1cf2: 721a strb r2, [r3, #8] + 1cf4: 9101 str r1, [sp, #4] + 1cf6: 9000 str r0, [sp, #0] + 1cf8: 9900 ldr r1, [sp, #0] + 1cfa: 2000 mov r0, #0 + 1cfc: 8008 strh r0, [r1, #0] + 1cfe: 9801 ldr r0, [sp, #4] + 1d00: 2100 mov r1, #0 + 1d02: 8001 strh r1, [r0, #0] + 1d04: 2000 mov r0, #0 + 1d06: 9003 str r0, [sp, #12] ; 0xc + 1d08: f7ff ff5e bl 0x1bc8 + 1d0c: a805 add r0, sp, #20 ; 0x14 + 1d0e: a906 add r1, sp, #24 ; 0x18 + 1d10: 466a mov r2, sp + 1d12: 7a12 ldrb r2, [r2, #8] + 1d14: f7ff feee bl 0x1af4 + 1d18: 9004 str r0, [sp, #16] ; 0x10 + 1d1a: 9804 ldr r0, [sp, #16] ; 0x10 + 1d1c: 2800 cmp r0, #0 + 1d1e: d11f bne 0x1d60 + 1d20: 9803 ldr r0, [sp, #12] ; 0xc + 1d22: 2800 cmp r0, #0 + 1d24: d11c bne 0x1d60 + 1d26: 9800 ldr r0, [sp, #0] + 1d28: 4669 mov r1, sp + 1d2a: 8b0a ldrh r2, [r1, #24] ; 0x18 + 1d2c: 8801 ldrh r1, [r0, #0] + 1d2e: 1851 add r1, r2, r1 + 1d30: 8001 strh r1, [r0, #0] + 1d32: 9905 ldr r1, [sp, #20] ; 0x14 + 1d34: 4668 mov r0, sp + 1d36: 8b00 ldrh r0, [r0, #24] ; 0x18 + 1d38: 8008 strh r0, [r1, #0] + 1d3a: 9801 ldr r0, [sp, #4] + 1d3c: 9905 ldr r1, [sp, #20] ; 0x14 + 1d3e: 8809 ldrh r1, [r1, #0] + 1d40: 8802 ldrh r2, [r0, #0] + 1d42: 1889 add r1, r1, r2 + 1d44: 8001 strh r1, [r0, #0] + 1d46: a805 add r0, sp, #20 ; 0x14 + 1d48: a906 add r1, sp, #24 ; 0x18 + 1d4a: 466a mov r2, sp + 1d4c: 7a12 ldrb r2, [r2, #8] + 1d4e: f7ff fed1 bl 0x1af4 + 1d52: 9004 str r0, [sp, #16] ; 0x10 + 1d54: 9804 ldr r0, [sp, #16] ; 0x10 + 1d56: 2800 cmp r0, #0 + 1d58: d102 bne 0x1d60 + 1d5a: 9803 ldr r0, [sp, #12] ; 0xc + 1d5c: 2800 cmp r0, #0 + 1d5e: d0e2 beq 0x1d26 + 1d60: 9804 ldr r0, [sp, #16] ; 0x10 + 1d62: 2801 cmp r0, #1 + 1d64: d101 bne 0x1d6a + 1d66: 2004 mov r0, #4 + 1d68: 9003 str r0, [sp, #12] ; 0xc + 1d6a: 9803 ldr r0, [sp, #12] ; 0xc + 1d6c: b007 add sp, #28 ; 0x1c + 1d6e: bd00 pop {pc} + 1d70: b089 sub sp, #36 ; 0x24 + 1d72: 201a mov r0, #26 ; 0x1a + 1d74: 9005 str r0, [sp, #20] ; 0x14 + 1d76: 2018 mov r0, #24 ; 0x18 + 1d78: 9006 str r0, [sp, #24] ; 0x18 + 1d7a: 2000 mov r0, #0 + 1d7c: 9008 str r0, [sp, #32] ; 0x20 + 1d7e: 4669 mov r1, sp + 1d80: 9805 ldr r0, [sp, #20] ; 0x14 + 1d82: 8800 ldrh r0, [r0, #0] + 1d84: 8008 strh r0, [r1, #0] + 1d86: 9806 ldr r0, [sp, #24] ; 0x18 + 1d88: 8800 ldrh r0, [r0, #0] + 1d8a: 8048 strh r0, [r1, #2] + 1d8c: 4668 mov r0, sp + 1d8e: 8841 ldrh r1, [r0, #2] + 1d90: 8800 ldrh r0, [r0, #0] + 1d92: 0400 lsl r0, r0, #16 + 1d94: 1808 add r0, r1, r0 + 1d96: 9001 str r0, [sp, #4] + 1d98: 9801 ldr r0, [sp, #4] + 1d9a: 0200 lsl r0, r0, #8 + 1d9c: 0a00 lsr r0, r0, #8 + 1d9e: 0080 lsl r0, r0, #2 + 1da0: 3008 add r0, #8 + 1da2: 9007 str r0, [sp, #28] ; 0x1c + 1da4: 9807 ldr r0, [sp, #28] ; 0x1c + 1da6: 3018 add r0, #24 ; 0x18 + 1da8: 9002 str r0, [sp, #8] + 1daa: 9802 ldr r0, [sp, #8] + 1dac: 9004 str r0, [sp, #16] ; 0x10 + 1dae: 9802 ldr r0, [sp, #8] + 1db0: 3002 add r0, #2 + 1db2: 9003 str r0, [sp, #12] ; 0xc + 1db4: 9803 ldr r0, [sp, #12] ; 0xc + 1db6: 8801 ldrh r1, [r0, #0] + 1db8: 4806 ldr r0, =0xffff ; via 0x1dd4 + 1dba: 4281 cmp r1, r0 + 1dbc: d104 bne 0x1dc8 + 1dbe: 9804 ldr r0, [sp, #16] ; 0x10 + 1dc0: 8800 ldrh r0, [r0, #0] + 1dc2: 4904 ldr r1, =0xffff ; via 0x1dd4 + 1dc4: 4288 cmp r0, r1 + 1dc6: d001 beq 0x1dcc + 1dc8: 2001 mov r0, #1 + 1dca: 9008 str r0, [sp, #32] ; 0x20 + 1dcc: 9808 ldr r0, [sp, #32] ; 0x20 + 1dce: b009 add sp, #36 ; 0x24 + 1dd0: 4770 bx lr + 1dd2: 46c0 nop (mov r8, r8) + + 1dd4: 0000ffff + +; ARM->Thumb call veneer around 0xad2 routine + 1dd8: e92d4000 stmdb sp!, {lr} + 1ddc: e28fe001 add lr, pc, #1 + 1de0: e12fff1e bx lr + 1de4: f7fe fe75 bl 0xad2 + 1de8: 4778 bx pc + 1dea: 46c0 nop (mov r8, r8) + 1dec: e8bd8000 ldmia sp!, {pc} + +<1DF0-1EFF: all FFs> + + 1f00: 00000001 + +<1F04-end: all FFs> diff -r e5e5ed527cc1 -r 81cda18b0487 compal/boot/c123-newboot.bin Binary file compal/boot/c123-newboot.bin has changed diff -r e5e5ed527cc1 -r 81cda18b0487 compal/boot/c123-newboot.disasm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/compal/boot/c123-newboot.disasm Sat Jan 14 06:17:56 2023 +0000 @@ -0,0 +1,2708 @@ +RESET entry and exception vectors: + 0: ea000225 b 0x89c + 4: ea000825 b 0x20a0 + 8: ea000825 b 0x20a4 + c: ea000825 b 0x20a8 + 10: ea000825 b 0x20ac + 14: ea000825 b 0x20b0 + 18: ea000825 b 0x20b4 + 1c: ea000825 b 0x20b8 + +; magic words? + 20: 4491582a + 24: 4491582b + 28: 44915857 + 2c: 44915858 + +<30-7FF: all FFs> + +00000800: 42 4F 4F 54 2E 39 30 2E 30 34 00 00 00 00 00 00 BOOT.90.04...... +00000810: 31 30 30 33 01 04 00 00 FF FF FF FF FF FF FF FF 1003............ +00000820: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ + +; everything up to 0x958 is the same as in the classic versions + 830: 00000006 + 834: 00000000 + 838: 00000000 + 83c: 00000048 + 840: 00000044 + 844: 00000052 + 848: 0000001b + 84c: 00000005 + 850: 00000000 + 854: 00000000 + 858: 00000000 + 85c: 00000000 + 860: 000000fa + 864: ffff5800 + 868: ffff5000 + 86c: fffffb00 + 870: 02a102a1 + 874: 028302a1 + 878: 00c00281 + 87c: 002a0040 + 880: 00000040 + 884: fffffd00 + 888: ffff9800 + 88c: fffffb10 + 890: ffffff08 + 894: 20061081 + 898: 00000800 + +; RESET entry point + 89c: e51f1020 ldr r1, =0xfffffd00 ; via 0x884 + 8a0: e1d120b2 ldrh r2, [r1, #2] + 8a4: e51f002c ldr r0, =0x40 ; via 0x880 + 8a8: e1800002 orr r0, r0, r2 + 8ac: e1c100b2 strh r0, [r1, #2] + 8b0: e51f1030 ldr r1, =0xffff9800 ; via 0x888 + 8b4: e15f22b6 ldrh r2, =0x2006 ; via 0x896 + 8b8: e1c120b0 strh r2, [r1] + 8bc: e5912000 ldr r2, [r1] + 8c0: e2022001 and r2, r2, #1 + 8c4: e3520001 cmp r2, #1 + 8c8: 0afffffb beq 0x8bc + 8cc: e51f1050 ldr r1, =0xfffffd00 ; via 0x884 + 8d0: e15f24b4 ldrh r2, =0x1081 ; via 0x894 + 8d4: e1c120b0 strh r2, [r1] + 8d8: e51f1054 ldr r1, =0xfffffb10 ; via 0x88c + 8dc: e15f24bc ldrh r2, =0x800 ; via 0x898 + 8e0: e1d100b0 ldrh r0, [r1] + 8e4: e1800002 orr r0, r0, r2 + 8e8: e1c100b0 strh r0, [r1] + 8ec: e51f1064 ldr r1, =0xffffff08 ; via 0x890 + 8f0: e15f25be ldrh r2, =0x0 ; via 0x89a + 8f4: e1c120b0 strh r2, [r1] + 8f8: e51f1094 ldr r1, =0xfffffb00 ; via 0x86c + 8fc: e15f29b4 ldrh r2, =0x2a1 ; via 0x870 + 900: e1c120b0 strh r2, [r1] + 904: e15f29ba ldrh r2, =0x2a1 ; via 0x872 + 908: e1c120b2 strh r2, [r1, #2] + 90c: e15f2ab0 ldrh r2, =0x2a1 ; via 0x874 + 910: e1c120b4 strh r2, [r1, #4] + 914: e15f2ab6 ldrh r2, =0x283 ; via 0x876 + 918: e1c120b6 strh r2, [r1, #6] + 91c: e15f2abc ldrh r2, =0x281 ; via 0x878 + 920: e1c120ba strh r2, [r1, #10] ; 0xa + 924: e15f2bb2 ldrh r2, =0xc0 ; via 0x87a + 928: e1c120bc strh r2, [r1, #12] ; 0xc + 92c: e15f2bb8 ldrh r2, =0x40 ; via 0x87c + 930: e1c120b8 strh r2, [r1, #8] + 934: e15f2bbe ldrh r2, =0x2a ; via 0x87e + 938: e1c120be strh r2, [r1, #14] ; 0xe + 93c: e59f0020 ldr r0, =0x83e730 ; via 0x964 + 940: e3a01b01 mov r1, #1024 ; 0x400 + 944: e2411004 sub r1, r1, #4 + 948: e0802001 add r2, r0, r1 + 94c: e3c22003 bic r2, r2, #3 + 950: e1a0d002 mov sp, r2 +; business logic + 954: e92d100f stmdb sp!, {r0, r1, r2, r3, r12} + 958: eb000544 bl 0x1e70 + 95c: e8bd100f ldmia sp!, {r0, r1, r2, r3, r12} + 960: ea0005e4 b 0x20f8 + +; stack address, varies by version + 964: 0083e730 + + 968: 4961 ldr r1, =0xfffffa08 ; via 0xaf0 + 96a: 4862 ldr r0, =0xffff ; via 0xaf4 + 96c: 8008 strh r0, [r1, #0] + 96e: 4862 ldr r0, =0xfffffa0a ; via 0xaf8 + 970: 211f mov r1, #31 ; 0x1f + 972: 8001 strh r1, [r0, #0] + 974: 4861 ldr r0, =0xfffff804 ; via 0xafc + 976: 21f5 mov r1, #245 ; 0xf5 + 978: 8001 strh r1, [r0, #0] + 97a: 21a0 mov r1, #160 ; 0xa0 + 97c: 8001 strh r1, [r0, #0] + 97e: 4860 ldr r0, =0xffff9800 ; via 0xb00 + 980: 4960 ldr r1, =0x2002 ; via 0xb04 + 982: 8001 strh r1, [r0, #0] + 984: 485e ldr r0, =0xffff9800 ; via 0xb00 + 986: 8800 ldrh r0, [r0, #0] + 988: 0840 lsr r0, r0, #1 + 98a: d2fb bcs 0x984 + 98c: 495e ldr r1, =0xfffffd00 ; via 0xb08 + 98e: 485f ldr r0, =0x1001 ; via 0xb0c + 990: 8008 strh r0, [r1, #0] + 992: 46f7 mov pc, lr + + 994: b500 push {lr} + 996: b0ff sub sp, #508 ; 0x1fc + 998: b0ca sub sp, #296 ; 0x128 + 99a: 2000 mov r0, #0 + 99c: 9001 str r0, [sp, #4] + 99e: 9801 ldr r0, [sp, #4] + 9a0: 2800 cmp r0, #0 + 9a2: d14e bne 0xa42 + 9a4: a846 add r0, sp, #280 ; 0x118 + 9a6: 2100 mov r1, #0 + 9a8: f001 f88e bl 0x1ac8 + 9ac: a9c8 add r1, sp, #800 ; 0x320 + 9ae: 7008 strb r0, [r1, #0] + 9b0: a846 add r0, sp, #280 ; 0x118 + 9b2: a902 add r1, sp, #8 + 9b4: f000 fb4c bl 0x1050 + 9b8: 9000 str r0, [sp, #0] + 9ba: 9800 ldr r0, [sp, #0] + 9bc: 2800 cmp r0, #0 + 9be: d01b beq 0x9f8 + 9c0: a924 add r1, sp, #144 ; 0x90 + 9c2: 4668 mov r0, sp + 9c4: 7a00 ldrb r0, [r0, #8] + 9c6: 7008 strb r0, [r1, #0] + 9c8: 2191 mov r1, #145 ; 0x91 + 9ca: 466a mov r2, sp + 9cc: 4668 mov r0, sp + 9ce: 7800 ldrb r0, [r0, #0] + 9d0: 5488 strb r0, [r1, r2] + 9d2: e01b b 0xa0c + 9d4: a802 add r0, sp, #8 + 9d6: a924 add r1, sp, #144 ; 0x90 + 9d8: f000 fe28 bl 0x162c + 9dc: e016 b 0xa0c + 9de: a802 add r0, sp, #8 + 9e0: a924 add r1, sp, #144 ; 0x90 + 9e2: aac8 add r2, sp, #800 ; 0x320 + 9e4: 7812 ldrb r2, [r2, #0] + 9e6: f000 fe35 bl 0x1654 + 9ea: e00f b 0xa0c + 9ec: a802 add r0, sp, #8 + 9ee: a924 add r1, sp, #144 ; 0x90 + 9f0: f000 fe67 bl 0x16c2 + 9f4: 90c7 str r0, [sp, #796] ; 0x31c + 9f6: e009 b 0xa0c + 9f8: 4668 mov r0, sp + 9fa: 7a00 ldrb r0, [r0, #8] + 9fc: 2800 cmp r0, #0 + 9fe: d0e9 beq 0x9d4 + a00: 3809 sub r0, #9 + a02: 2800 cmp r0, #0 + a04: d0eb beq 0x9de + a06: 3801 sub r0, #1 + a08: 2800 cmp r0, #0 + a0a: d0ef beq 0x9ec + a0c: a824 add r0, sp, #144 ; 0x90 + a0e: a986 add r1, sp, #536 ; 0x218 + a10: f000 fc01 bl 0x1216 + a14: 2800 cmp r0, #0 + a16: d111 bne 0xa3c + a18: a886 add r0, sp, #536 ; 0x218 + a1a: a9c8 add r1, sp, #800 ; 0x320 + a1c: 7809 ldrb r1, [r1, #0] + a1e: f001 f828 bl 0x1a72 + a22: 2800 cmp r0, #0 + a24: d00a beq 0xa3c + a26: 4668 mov r0, sp + a28: 7a00 ldrb r0, [r0, #8] + a2a: 280a cmp r0, #10 ; 0xa + a2c: d106 bne 0xa3c + a2e: a8c8 add r0, sp, #800 ; 0x320 + a30: 7800 ldrb r0, [r0, #0] + a32: f001 f979 bl 0x1d28 + a36: 98c7 ldr r0, [sp, #796] ; 0x31c + a38: f000 fb08 bl 0x104c + a3c: 9801 ldr r0, [sp, #4] + a3e: 2800 cmp r0, #0 + a40: d0b0 beq 0x9a4 + a42: b07f add sp, #508 ; 0x1fc + a44: b04a add sp, #296 ; 0x128 + a46: bd00 pop {pc} + + a48: b500 push {lr} + a4a: b0ff sub sp, #508 ; 0x1fc + a4c: b0c8 sub sp, #288 ; 0x120 + a4e: 2000 mov r0, #0 + a50: 9000 str r0, [sp, #0] + a52: a846 add r0, sp, #280 ; 0x118 + a54: 2101 mov r1, #1 + a56: f001 f837 bl 0x1ac8 + a5a: a9c6 add r1, sp, #792 ; 0x318 + a5c: 7008 strb r0, [r1, #0] + a5e: a8c6 add r0, sp, #792 ; 0x318 + a60: 7800 ldrb r0, [r0, #0] + a62: 28ff cmp r0, #255 ; 0xff + a64: d031 beq 0xaca + a66: a846 add r0, sp, #280 ; 0x118 + a68: a902 add r1, sp, #8 + a6a: f000 faf1 bl 0x1050 + a6e: 9001 str r0, [sp, #4] + a70: 9801 ldr r0, [sp, #4] + a72: 2800 cmp r0, #0 + a74: d014 beq 0xaa0 + a76: a924 add r1, sp, #144 ; 0x90 + a78: 4668 mov r0, sp + a7a: 7a00 ldrb r0, [r0, #8] + a7c: 7008 strb r0, [r1, #0] + a7e: 2291 mov r2, #145 ; 0x91 + a80: 4668 mov r0, sp + a82: 4669 mov r1, sp + a84: 7909 ldrb r1, [r1, #4] + a86: 5411 strb r1, [r2, r0] + a88: a824 add r0, sp, #144 ; 0x90 + a8a: a986 add r1, sp, #536 ; 0x218 + a8c: f000 fbc3 bl 0x1216 + a90: 2800 cmp r0, #0 + a92: d11a bne 0xaca + a94: a886 add r0, sp, #536 ; 0x218 + a96: a9c6 add r1, sp, #792 ; 0x318 + a98: 7809 ldrb r1, [r1, #0] + a9a: f000 ffea bl 0x1a72 + a9e: e014 b 0xaca + aa0: 4668 mov r0, sp + aa2: 7a00 ldrb r0, [r0, #8] + aa4: 2800 cmp r0, #0 + aa6: d110 bne 0xaca + aa8: a802 add r0, sp, #8 + aaa: a924 add r1, sp, #144 ; 0x90 + aac: f000 fdbe bl 0x162c + ab0: a824 add r0, sp, #144 ; 0x90 + ab2: a986 add r1, sp, #536 ; 0x218 + ab4: f000 fbaf bl 0x1216 + ab8: 2800 cmp r0, #0 + aba: d104 bne 0xac6 + abc: a886 add r0, sp, #536 ; 0x218 + abe: a9c6 add r1, sp, #792 ; 0x318 + ac0: 7809 ldrb r1, [r1, #0] + ac2: f000 ffd6 bl 0x1a72 + ac6: 2001 mov r0, #1 + ac8: 9000 str r0, [sp, #0] + aca: 9800 ldr r0, [sp, #0] + acc: b07f add sp, #508 ; 0x1fc + ace: b048 add sp, #288 ; 0x120 + ad0: bd00 pop {pc} + +; main function + ad2: b500 push {lr} + ad4: b082 sub sp, #8 + ad6: f7ff ff47 bl 0x968 + ada: f001 f8cd bl 0x1c78 + ade: f000 fd93 bl 0x1608 + ae2: f000 f81f bl 0xb24 + ae6: f000 f98b bl 0xe00 + aea: b002 add sp, #8 + aec: bd00 pop {pc} + aee: 46c0 nop (mov r8, r8) + + af0: fffffa08 + af4: 0000ffff + af8: fffffa0a + afc: fffff804 + b00: ffff9800 + b04: 00002002 + b08: fffffd00 + b0c: 00001001 + + b10: e3a0d502 mov sp, #8388608 ; 0x800000 + b14: e28dd802 add sp, sp, #131072 ; 0x20000 + b18: e28fe005 add lr, pc, #5 + b1c: e12fff1e bx lr + b20: e1a00000 mov r0, r0 + +; same as in the familiar versions + b24: b500 push {lr} + b26: b082 sub sp, #8 + b28: 49f0 ldr r1, =0x83ff00 ; via 0xeec + b2a: 48f1 ldr r0, =0xffff5800 ; via 0xef0 + b2c: 6008 str r0, [r1, #0] + b2e: 2000 mov r0, #0 + b30: 2102 mov r1, #2 + b32: f000 fa1d bl 0xf70 + b36: 2000 mov r0, #0 + b38: 9000 str r0, [sp, #0] + b3a: 9900 ldr r1, [sp, #0] + b3c: 2005 mov r0, #5 + b3e: 0300 lsl r0, r0, #12 + b40: 4281 cmp r1, r0 + b42: d207 bcs 0xb54 + b44: 9800 ldr r0, [sp, #0] + b46: 3001 add r0, #1 + b48: 9000 str r0, [sp, #0] + b4a: 9900 ldr r1, [sp, #0] + b4c: 2005 mov r0, #5 + b4e: 0300 lsl r0, r0, #12 + b50: 4281 cmp r1, r0 + b52: d3f7 bcc 0xb44 + b54: f000 f82a bl 0xbac + b58: 2000 mov r0, #0 + b5a: 2107 mov r1, #7 + b5c: f000 fa08 bl 0xf70 + b60: 2000 mov r0, #0 + b62: 9000 str r0, [sp, #0] + b64: 9900 ldr r1, [sp, #0] + b66: 2005 mov r0, #5 + b68: 0300 lsl r0, r0, #12 + b6a: 4281 cmp r1, r0 + b6c: d207 bcs 0xb7e + b6e: 9800 ldr r0, [sp, #0] + b70: 3001 add r0, #1 + b72: 9000 str r0, [sp, #0] + b74: 9900 ldr r1, [sp, #0] + b76: 2005 mov r0, #5 + b78: 0300 lsl r0, r0, #12 + b7a: 4281 cmp r1, r0 + b7c: d3f7 bcc 0xb6e + b7e: f000 f815 bl 0xbac + b82: 2000 mov r0, #0 + b84: 9001 str r0, [sp, #4] + b86: 9000 str r0, [sp, #0] + b88: 9900 ldr r1, [sp, #0] + b8a: 2005 mov r0, #5 + b8c: 0400 lsl r0, r0, #16 + b8e: 4281 cmp r1, r0 + b90: d20a bcs 0xba8 + b92: 9801 ldr r0, [sp, #4] + b94: 3001 add r0, #1 + b96: 9001 str r0, [sp, #4] + b98: 9800 ldr r0, [sp, #0] + b9a: 3001 add r0, #1 + b9c: 9000 str r0, [sp, #0] + b9e: 9900 ldr r1, [sp, #0] + ba0: 2005 mov r0, #5 + ba2: 0400 lsl r0, r0, #16 + ba4: 4281 cmp r1, r0 + ba6: d3f4 bcc 0xb92 + ba8: b002 add sp, #8 + baa: bd00 pop {pc} + + bac: b500 push {lr} + bae: b08a sub sp, #40 ; 0x28 + bb0: 2000 mov r0, #0 + bb2: 9002 str r0, [sp, #8] + bb4: 4669 mov r1, sp + bb6: 7708 strb r0, [r1, #28] ; 0x1c + bb8: 7748 strb r0, [r1, #29] ; 0x1d + bba: 4668 mov r0, sp + bbc: 2100 mov r1, #0 + bbe: 7781 strb r1, [r0, #30] ; 0x1e + bc0: 2000 mov r0, #0 + bc2: 9008 str r0, [sp, #32] ; 0x20 + bc4: a809 add r0, sp, #36 ; 0x24 + bc6: 7001 strb r1, [r0, #0] + bc8: 2025 mov r0, #37 ; 0x25 + bca: 4669 mov r1, sp + bcc: 2200 mov r2, #0 + bce: 5442 strb r2, [r0, r1] + bd0: 48e6 ldr r0, =0x800100 ; via 0xf6c + bd2: 9006 str r0, [sp, #24] ; 0x18 + bd4: 201b mov r0, #27 ; 0x1b + bd6: f000 f970 bl 0xeba + bda: 20f6 mov r0, #246 ; 0xf6 + bdc: f000 f96d bl 0xeba + be0: 2002 mov r0, #2 + be2: f000 f96a bl 0xeba + be6: 2000 mov r0, #0 + be8: f000 f967 bl 0xeba + bec: 2041 mov r0, #65 ; 0x41 + bee: f000 f964 bl 0xeba + bf2: 2001 mov r0, #1 + bf4: f000 f961 bl 0xeba + bf8: 2040 mov r0, #64 ; 0x40 + bfa: f000 f95e bl 0xeba + bfe: 2001 mov r0, #1 + c00: 0300 lsl r0, r0, #12 + c02: f000 f977 bl 0xef4 + c06: 281b cmp r0, #27 ; 0x1b + c08: d000 beq 0xc0c + c0a: e0f7 b 0xdfc + c0c: 2001 mov r0, #1 + c0e: 0300 lsl r0, r0, #12 + c10: f000 f970 bl 0xef4 + c14: 28f6 cmp r0, #246 ; 0xf6 + c16: d000 beq 0xc1a + c18: e0f0 b 0xdfc + c1a: 2001 mov r0, #1 + c1c: 0300 lsl r0, r0, #12 + c1e: f000 f969 bl 0xef4 + c22: 2802 cmp r0, #2 + c24: d000 beq 0xc28 + c26: e0e9 b 0xdfc + c28: 2001 mov r0, #1 + c2a: 0300 lsl r0, r0, #12 + c2c: f000 f962 bl 0xef4 + c30: 2800 cmp r0, #0 + c32: d000 beq 0xc36 + c34: e0e2 b 0xdfc + c36: 2001 mov r0, #1 + c38: 0300 lsl r0, r0, #12 + c3a: f000 f95b bl 0xef4 + c3e: 2852 cmp r0, #82 ; 0x52 + c40: d000 beq 0xc44 + c42: e0db b 0xdfc + c44: 2001 mov r0, #1 + c46: 0300 lsl r0, r0, #12 + c48: f000 f954 bl 0xef4 + c4c: 2801 cmp r0, #1 + c4e: d000 beq 0xc52 + c50: e0d4 b 0xdfc + c52: 2001 mov r0, #1 + c54: 0300 lsl r0, r0, #12 + c56: f000 f94d bl 0xef4 + c5a: 2853 cmp r0, #83 ; 0x53 + c5c: d000 beq 0xc60 + c5e: e0cd b 0xdfc + c60: 201b mov r0, #27 ; 0x1b + c62: f000 f92a bl 0xeba + c66: 20f6 mov r0, #246 ; 0xf6 + c68: f000 f927 bl 0xeba + c6c: 2002 mov r0, #2 + c6e: f000 f924 bl 0xeba + c72: 2000 mov r0, #0 + c74: f000 f921 bl 0xeba + c78: 2041 mov r0, #65 ; 0x41 + c7a: f000 f91e bl 0xeba + c7e: 2002 mov r0, #2 + c80: f000 f91b bl 0xeba + c84: 2043 mov r0, #67 ; 0x43 + c86: f000 f918 bl 0xeba + c8a: 2001 mov r0, #1 + c8c: 0300 lsl r0, r0, #12 + c8e: f000 f931 bl 0xef4 + c92: 4669 mov r1, sp + c94: 7308 strb r0, [r1, #12] ; 0xc + c96: 2002 mov r0, #2 + c98: 7548 strb r0, [r1, #21] ; 0x15 + c9a: 2000 mov r0, #0 + c9c: 9000 str r0, [sp, #0] + c9e: 9800 ldr r0, [sp, #0] + ca0: 2802 cmp r0, #2 + ca2: d215 bcs 0xcd0 + ca4: 2001 mov r0, #1 + ca6: 0300 lsl r0, r0, #12 + ca8: f000 f924 bl 0xef4 + cac: 4669 mov r1, sp + cae: 9a00 ldr r2, [sp, #0] + cb0: 1a89 sub r1, r1, r2 + cb2: 7448 strb r0, [r1, #17] ; 0x11 + cb4: 4669 mov r1, sp + cb6: 9800 ldr r0, [sp, #0] + cb8: 1a08 sub r0, r1, r0 + cba: 7c40 ldrb r0, [r0, #17] ; 0x11 + cbc: 7d49 ldrb r1, [r1, #21] ; 0x15 + cbe: 4048 eor r0, r1 + cc0: 4669 mov r1, sp + cc2: 7548 strb r0, [r1, #21] ; 0x15 + cc4: 9800 ldr r0, [sp, #0] + cc6: 3001 add r0, #1 + cc8: 9000 str r0, [sp, #0] + cca: 9800 ldr r0, [sp, #0] + ccc: 2802 cmp r0, #2 + cce: d3e9 bcc 0xca4 + cd0: 4668 mov r0, sp + cd2: 8a00 ldrh r0, [r0, #16] ; 0x10 + cd4: 466a mov r2, sp + cd6: 1e41 sub r1, r0, #1 + cd8: 8211 strh r1, [r2, #16] ; 0x10 + cda: 2800 cmp r0, #0 + cdc: d04f beq 0xd7e + cde: 2001 mov r0, #1 + ce0: 0300 lsl r0, r0, #12 + ce2: f000 f907 bl 0xef4 + ce6: 9906 ldr r1, [sp, #24] ; 0x18 + ce8: 7008 strb r0, [r1, #0] + cea: 9802 ldr r0, [sp, #8] + cec: 217d mov r1, #125 ; 0x7d + cee: 00c9 lsl r1, r1, #3 + cf0: f188 f9a8 bl 0x189044 ; U$MOD in main fw!!! + cf4: 2800 cmp r0, #0 + cf6: d12f bne 0xd58 + cf8: 9802 ldr r0, [sp, #8] + cfa: 2800 cmp r0, #0 + cfc: d02c beq 0xd58 + cfe: 9808 ldr r0, [sp, #32] ; 0x20 + d00: 2805 cmp r0, #5 + d02: d226 bcs 0xd52 + d04: e00d b 0xd22 + d06: a909 add r1, sp, #36 ; 0x24 + d08: 20ee mov r0, #238 ; 0xee + d0a: 7008 strb r0, [r1, #0] + d0c: e018 b 0xd40 + d0e: 21a2 mov r1, #162 ; 0xa2 + d10: a809 add r0, sp, #36 ; 0x24 + d12: 7001 strb r1, [r0, #0] + d14: e014 b 0xd40 + d16: 213d mov r1, #61 ; 0x3d + d18: e7fa b 0xd10 + d1a: 215e mov r1, #94 ; 0x5e + d1c: e7f8 b 0xd10 + d1e: 21d6 mov r1, #214 ; 0xd6 + d20: e7f6 b 0xd10 + d22: 9808 ldr r0, [sp, #32] ; 0x20 + d24: 2800 cmp r0, #0 + d26: d0ee beq 0xd06 + d28: 3801 sub r0, #1 + d2a: 2800 cmp r0, #0 + d2c: d0ef beq 0xd0e + d2e: 3801 sub r0, #1 + d30: 2800 cmp r0, #0 + d32: d0f0 beq 0xd16 + d34: 3801 sub r0, #1 + d36: 2800 cmp r0, #0 + d38: d0ef beq 0xd1a + d3a: 3801 sub r0, #1 + d3c: 2800 cmp r0, #0 + d3e: d0ee beq 0xd1e + d40: 4668 mov r0, sp + d42: 7d40 ldrb r0, [r0, #21] ; 0x15 + d44: a909 add r1, sp, #36 ; 0x24 + d46: 7809 ldrb r1, [r1, #0] + d48: 4288 cmp r0, r1 + d4a: d002 beq 0xd52 + d4c: 4668 mov r0, sp + d4e: 2101 mov r1, #1 + d50: 7781 strb r1, [r0, #30] ; 0x1e + d52: 9808 ldr r0, [sp, #32] ; 0x20 + d54: 3001 add r0, #1 + d56: 9008 str r0, [sp, #32] ; 0x20 + d58: 9802 ldr r0, [sp, #8] + d5a: 3001 add r0, #1 + d5c: 9002 str r0, [sp, #8] + d5e: 9806 ldr r0, [sp, #24] ; 0x18 + d60: 7800 ldrb r0, [r0, #0] + d62: 4669 mov r1, sp + d64: 7d49 ldrb r1, [r1, #21] ; 0x15 + d66: 4048 eor r0, r1 + d68: 4669 mov r1, sp + d6a: 7548 strb r0, [r1, #21] ; 0x15 + d6c: 9806 ldr r0, [sp, #24] ; 0x18 + d6e: 3001 add r0, #1 + d70: 9006 str r0, [sp, #24] ; 0x18 + d72: 4668 mov r0, sp + d74: 8a02 ldrh r2, [r0, #16] ; 0x10 + d76: 1e50 sub r0, r2, #1 + d78: 8208 strh r0, [r1, #16] ; 0x10 + d7a: 2a00 cmp r2, #0 + d7c: d1af bne 0xcde + d7e: 2001 mov r0, #1 + d80: 0300 lsl r0, r0, #12 + d82: f000 f8b7 bl 0xef4 + d86: 4669 mov r1, sp + d88: 7508 strb r0, [r1, #20] ; 0x14 + d8a: 4668 mov r0, sp + d8c: 7d01 ldrb r1, [r0, #20] ; 0x14 + d8e: 7d40 ldrb r0, [r0, #21] ; 0x15 + d90: 4281 cmp r1, r0 + d92: d103 bne 0xd9c + d94: 4668 mov r0, sp + d96: 7f80 ldrb r0, [r0, #30] ; 0x1e + d98: 2801 cmp r0, #1 + d9a: d115 bne 0xdc8 + d9c: 201b mov r0, #27 ; 0x1b + d9e: f000 f88c bl 0xeba + da2: 20f6 mov r0, #246 ; 0xf6 + da4: f000 f889 bl 0xeba + da8: 2002 mov r0, #2 + daa: f000 f886 bl 0xeba + dae: 2000 mov r0, #0 + db0: f000 f883 bl 0xeba + db4: 2045 mov r0, #69 ; 0x45 + db6: f000 f880 bl 0xeba + dba: 2053 mov r0, #83 ; 0x53 + dbc: f000 f87d bl 0xeba + dc0: 2016 mov r0, #22 ; 0x16 + dc2: f000 f87a bl 0xeba + dc6: e019 b 0xdfc + dc8: 201b mov r0, #27 ; 0x1b + dca: f000 f876 bl 0xeba + dce: 20f6 mov r0, #246 ; 0xf6 + dd0: f000 f873 bl 0xeba + dd4: 2002 mov r0, #2 + dd6: f000 f870 bl 0xeba + dda: 2000 mov r0, #0 + ddc: f000 f86d bl 0xeba + de0: 2041 mov r0, #65 ; 0x41 + de2: f000 f86a bl 0xeba + de6: 2003 mov r0, #3 + de8: f000 f867 bl 0xeba + dec: 2042 mov r0, #66 ; 0x42 + dee: f000 f864 bl 0xeba + df2: 483e ldr r0, =0x83ff00 ; via 0xeec + df4: 6800 ldr r0, [r0, #0] + df6: 4990 ldr r1, =0x800100 ; via 0x1038 + df8: f000 f85e bl 0xeb8 + dfc: b00a add sp, #40 ; 0x28 + dfe: bd00 pop {pc} + + e00: b500 push {lr} + e02: b081 sub sp, #4 + e04: 2066 mov r0, #102 ; 0x66 + e06: f000 f858 bl 0xeba + e0a: 2074 mov r0, #116 ; 0x74 + e0c: f000 f855 bl 0xeba + e10: 206d mov r0, #109 ; 0x6d + e12: f000 f852 bl 0xeba + e16: 2074 mov r0, #116 ; 0x74 + e18: f000 f84f bl 0xeba + e1c: 206f mov r0, #111 ; 0x6f + e1e: f000 f84c bl 0xeba + e22: 206f mov r0, #111 ; 0x6f + e24: f000 f849 bl 0xeba + e28: 206c mov r0, #108 ; 0x6c + e2a: f000 f846 bl 0xeba + e2e: 4983 ldr r1, =0x83ff80 ; via 0x103c + e30: 2000 mov r0, #0 + e32: 7008 strb r0, [r1, #0] + e34: 9000 str r0, [sp, #0] + e36: 9800 ldr r0, [sp, #0] + e38: 0c00 lsr r0, r0, #16 + e3a: d105 bne 0xe48 + e3c: 9800 ldr r0, [sp, #0] + e3e: 3001 add r0, #1 + e40: 9000 str r0, [sp, #0] + e42: 9800 ldr r0, [sp, #0] + e44: 0c00 lsr r0, r0, #16 + e46: d0f9 beq 0xe3c + e48: 2007 mov r0, #7 + e4a: 0400 lsl r0, r0, #16 + e4c: f000 f852 bl 0xef4 + e50: 2879 cmp r0, #121 ; 0x79 + e52: d10e bne 0xe72 + e54: 2001 mov r0, #1 + e56: 0300 lsl r0, r0, #12 + e58: f000 f84c bl 0xef4 + e5c: 2865 cmp r0, #101 ; 0x65 + e5e: d108 bne 0xe72 + e60: 2001 mov r0, #1 + e62: 0300 lsl r0, r0, #12 + e64: f000 f846 bl 0xef4 + e68: 2873 cmp r0, #115 ; 0x73 + e6a: d102 bne 0xe72 + e6c: 4873 ldr r0, =0x83ff80 ; via 0x103c + e6e: 2101 mov r1, #1 + e70: 7001 strb r1, [r0, #0] + e72: f000 f8cf bl 0x1014 + e76: 2800 cmp r0, #0 + e78: d00d beq 0xe96 + e7a: 206d mov r0, #109 ; 0x6d + e7c: f000 f81d bl 0xeba + e80: 206f mov r0, #111 ; 0x6f + e82: f000 f81a bl 0xeba + e86: 2064 mov r0, #100 ; 0x64 + e88: f000 f817 bl 0xeba + e8c: 2065 mov r0, #101 ; 0x65 + e8e: f000 f814 bl 0xeba + e92: 206d mov r0, #109 ; 0x6d + e94: e00c b 0xeb0 + e96: 2065 mov r0, #101 ; 0x65 + e98: f000 f80f bl 0xeba + e9c: 2072 mov r0, #114 ; 0x72 + e9e: f000 f80c bl 0xeba + ea2: 2072 mov r0, #114 ; 0x72 + ea4: f000 f809 bl 0xeba + ea8: 206f mov r0, #111 ; 0x6f + eaa: f000 f806 bl 0xeba + eae: 2072 mov r0, #114 ; 0x72 + eb0: f000 f803 bl 0xeba + eb4: b001 add sp, #4 + eb6: bd00 pop {pc} + + eb8: 4708 bx r1 + + eba: b081 sub sp, #4 + ebc: 4669 mov r1, sp + ebe: 7008 strb r0, [r1, #0] + ec0: 480a ldr r0, =0x83ff00 ; via 0xeec + ec2: 6800 ldr r0, [r0, #0] + ec4: 7940 ldrb r0, [r0, #5] + ec6: 0980 lsr r0, r0, #6 + ec8: d3fa bcc 0xec0 + eca: 4808 ldr r0, =0x83ff00 ; via 0xeec + ecc: 6800 ldr r0, [r0, #0] + ece: 4669 mov r1, sp + ed0: 7809 ldrb r1, [r1, #0] + ed2: 7001 strb r1, [r0, #0] + ed4: b001 add sp, #4 + ed6: 46f7 mov pc, lr + ed8: 4859 ldr r0, =0x83ff00 ; via 0x1040 + eda: 6800 ldr r0, [r0, #0] + edc: 7940 ldrb r0, [r0, #5] + ede: 0840 lsr r0, r0, #1 + ee0: d3fa bcc 0xed8 + ee2: 4857 ldr r0, =0x83ff00 ; via 0x1040 + ee4: 6800 ldr r0, [r0, #0] + ee6: 7800 ldrb r0, [r0, #0] + ee8: 4770 bx lr + eea: 46c0 nop (mov r8, r8) + eec: ff00 + eee: 0083 lsl r3, r0, #2 + ef0: 5800 ldr r0, [r0, r0] + ef2: ffff + ef4: b083 sub sp, #12 ; 0xc + ef6: 9000 str r0, [sp, #0] + ef8: 9800 ldr r0, [sp, #0] + efa: 9002 str r0, [sp, #8] + efc: 4850 ldr r0, =0x83ff00 ; via 0x1040 + efe: 6800 ldr r0, [r0, #0] + f00: 7940 ldrb r0, [r0, #5] + f02: 0840 lsr r0, r0, #1 + f04: d20c bcs 0xf20 + f06: 9802 ldr r0, [sp, #8] + f08: 3801 sub r0, #1 + f0a: 9002 str r0, [sp, #8] + f0c: 9802 ldr r0, [sp, #8] + f0e: 2800 cmp r0, #0 + f10: d101 bne 0xf16 + f12: 20ff mov r0, #255 ; 0xff + f14: e007 b 0xf26 + f16: 484a ldr r0, =0x83ff00 ; via 0x1040 + f18: 6800 ldr r0, [r0, #0] + f1a: 7940 ldrb r0, [r0, #5] + f1c: 0840 lsr r0, r0, #1 + f1e: d3f2 bcc 0xf06 + f20: 4847 ldr r0, =0x83ff00 ; via 0x1040 + f22: 6800 ldr r0, [r0, #0] + f24: 7800 ldrb r0, [r0, #0] + f26: b003 add sp, #12 ; 0xc + f28: 4770 bx lr + f2a: b081 sub sp, #4 + f2c: e001 b 0xf32 + f2e: 9800 ldr r0, [sp, #0] + f30: 3801 sub r0, #1 + f32: 9000 str r0, [sp, #0] + f34: 4842 ldr r0, =0x83ff00 ; via 0x1040 + f36: 6800 ldr r0, [r0, #0] + f38: 7940 ldrb r0, [r0, #5] + f3a: 0840 lsr r0, r0, #1 + f3c: d202 bcs 0xf44 + f3e: 9800 ldr r0, [sp, #0] + f40: 2800 cmp r0, #0 + f42: dcf4 bgt 0xf2e + f44: 9800 ldr r0, [sp, #0] + f46: 2800 cmp r0, #0 + f48: dd01 ble 0xf4e + f4a: 2000 mov r0, #0 + f4c: e000 b 0xf50 + f4e: 2001 mov r0, #1 + f50: b001 add sp, #4 + f52: 4770 bx lr + f54: b082 sub sp, #8 + f56: 9000 str r0, [sp, #0] + f58: 4669 mov r1, sp + f5a: 2000 mov r0, #0 + f5c: 7188 strb r0, [r1, #6] + f5e: 9900 ldr r1, [sp, #0] + f60: 4838 ldr r0, =0xfffef000 ; via 0x1044 + f62: 8800 ldrh r0, [r0, #0] + f64: 8008 strh r0, [r1, #0] + f66: b002 add sp, #8 + f68: 4770 bx lr + f6a: 46c0 nop (mov r8, r8) + f6c: 0100 lsl r0, r0, #4 + f6e: 0080 lsl r0, r0, #2 + f70: b081 sub sp, #4 + f72: 466a mov r2, sp + f74: 7051 strb r1, [r2, #1] + f76: 4669 mov r1, sp + f78: 7008 strb r0, [r1, #0] + f7a: 4933 ldr r1, =0xffff6000 ; via 0x1048 + f7c: 2002 mov r0, #2 + f7e: 880a ldrh r2, [r1, #0] + f80: 4310 orr r0, r2 + f82: 8008 strh r0, [r1, #0] + f84: 4830 ldr r0, =0xffff6000 ; via 0x1048 + f86: 8801 ldrh r1, [r0, #0] + f88: 0849 lsr r1, r1, #1 + f8a: 0049 lsl r1, r1, #1 + f8c: 8001 strh r1, [r0, #0] + f8e: 492e ldr r1, =0xffff6000 ; via 0x1048 + f90: 8808 ldrh r0, [r1, #0] + f92: 2202 mov r2, #2 + f94: 4390 bic r0, r2 + f96: 8008 strh r0, [r1, #0] + f98: 4829 ldr r0, =0x83ff00 ; via 0x1040 + f9a: 6801 ldr r1, [r0, #0] + f9c: 2007 mov r0, #7 + f9e: 7208 strb r0, [r1, #8] + fa0: 4827 ldr r0, =0x83ff00 ; via 0x1040 + fa2: 6801 ldr r1, [r0, #0] + fa4: 20bf mov r0, #191 ; 0xbf + fa6: 70c8 strb r0, [r1, #3] + fa8: 4825 ldr r0, =0x83ff00 ; via 0x1040 + faa: 6800 ldr r0, [r0, #0] + fac: 1c80 add r0, r0, #2 + fae: 2110 mov r1, #16 ; 0x10 + fb0: 8802 ldrh r2, [r0, #0] + fb2: 4311 orr r1, r2 + fb4: 8001 strh r1, [r0, #0] + fb6: 4822 ldr r0, =0x83ff00 ; via 0x1040 + fb8: 6801 ldr r1, [r0, #0] + fba: 2080 mov r0, #128 ; 0x80 + fbc: 70c8 strb r0, [r1, #3] + fbe: 4820 ldr r0, =0x83ff00 ; via 0x1040 + fc0: 6800 ldr r0, [r0, #0] + fc2: 2107 mov r1, #7 + fc4: 7081 strb r1, [r0, #2] + fc6: 481e ldr r0, =0x83ff00 ; via 0x1040 + fc8: 6800 ldr r0, [r0, #0] + fca: 21bf mov r1, #191 ; 0xbf + fcc: 70c1 strb r1, [r0, #3] + fce: 481c ldr r0, =0x83ff00 ; via 0x1040 + fd0: 6801 ldr r1, [r0, #0] + fd2: 4668 mov r0, sp + fd4: 7840 ldrb r0, [r0, #1] + fd6: 7008 strb r0, [r1, #0] + fd8: 4819 ldr r0, =0x83ff00 ; via 0x1040 + fda: 6801 ldr r1, [r0, #0] + fdc: 4668 mov r0, sp + fde: 7800 ldrb r0, [r0, #0] + fe0: 7048 strb r0, [r1, #1] + fe2: 4817 ldr r0, =0x83ff00 ; via 0x1040 + fe4: 6801 ldr r1, [r0, #0] + fe6: 2003 mov r0, #3 + fe8: 70c8 strb r0, [r1, #3] + fea: 4815 ldr r0, =0x83ff00 ; via 0x1040 + fec: 6800 ldr r0, [r0, #0] + fee: 2100 mov r1, #0 + ff0: 7201 strb r1, [r0, #8] + ff2: 4813 ldr r0, =0x83ff00 ; via 0x1040 + ff4: 6800 ldr r0, [r0, #0] + ff6: 7940 ldrb r0, [r0, #5] + ff8: 0840 lsr r0, r0, #1 + ffa: d309 bcc 0x1010 + ffc: 4669 mov r1, sp + ffe: 4810 ldr r0, =0x83ff00 ; via 0x1040 + 1000: 6800 ldr r0, [r0, #0] + 1002: 7800 ldrb r0, [r0, #0] + 1004: 7088 strb r0, [r1, #2] + 1006: 480e ldr r0, =0x83ff00 ; via 0x1040 + 1008: 6800 ldr r0, [r0, #0] + 100a: 7940 ldrb r0, [r0, #5] + 100c: 0840 lsr r0, r0, #1 + 100e: d2f5 bcs 0xffc + 1010: b001 add sp, #4 + 1012: 4770 bx lr + 1014: 4809 ldr r0, =0x83ff80 ; via 0x103c + 1016: 7800 ldrb r0, [r0, #0] + 1018: 4770 bx lr + 101a: b500 push {lr} + 101c: b081 sub sp, #4 + 101e: 4669 mov r1, sp + 1020: 7008 strb r0, [r1, #0] + 1022: 4668 mov r0, sp + 1024: 7800 ldrb r0, [r0, #0] + 1026: f7ff ff48 bl 0xeba + 102a: b001 add sp, #4 + 102c: bd00 pop {pc} + 102e: b500 push {lr} + 1030: f7ff ff52 bl 0xed8 + 1034: bd00 pop {pc} + 1036: 46c0 nop (mov r8, r8) + 1038: 0100 lsl r0, r0, #4 + 103a: 0080 lsl r0, r0, #2 + 103c: ff80 + 103e: 0083 lsl r3, r0, #2 + 1040: ff00 + 1042: 0083 lsl r3, r0, #2 + 1044: f000 fffe bl 0x2044 + 1048: 6000 str r0, [r0, #0] + 104a: ffff + 104c: 4700 bx r0 + 104e: 0000 lsl r0, r0, #0 + 1050: b08c sub sp, #48 ; 0x30 + 1052: 9101 str r1, [sp, #4] + 1054: 9000 str r0, [sp, #0] + 1056: 2000 mov r0, #0 + 1058: 9003 str r0, [sp, #12] ; 0xc + 105a: 9800 ldr r0, [sp, #0] + 105c: 7801 ldrb r1, [r0, #0] + 105e: 3001 add r0, #1 + 1060: 9000 str r0, [sp, #0] + 1062: 9105 str r1, [sp, #20] ; 0x14 + 1064: 9800 ldr r0, [sp, #0] + 1066: 7801 ldrb r1, [r0, #0] + 1068: 3001 add r0, #1 + 106a: 9000 str r0, [sp, #0] + 106c: 9801 ldr r0, [sp, #4] + 106e: 7001 strb r1, [r0, #0] + 1070: 2001 mov r0, #1 + 1072: 9004 str r0, [sp, #16] ; 0x10 + 1074: e0a8 b 0x11c8 + 1076: 9804 ldr r0, [sp, #16] ; 0x10 + 1078: 3002 add r0, #2 + 107a: 9004 str r0, [sp, #16] ; 0x10 + 107c: 9800 ldr r0, [sp, #0] + 107e: 7801 ldrb r1, [r0, #0] + 1080: 3001 add r0, #1 + 1082: 9000 str r0, [sp, #0] + 1084: 4668 mov r0, sp + 1086: 8441 strh r1, [r0, #34] ; 0x22 + 1088: 9800 ldr r0, [sp, #0] + 108a: 7801 ldrb r1, [r0, #0] + 108c: 3001 add r0, #1 + 108e: 9000 str r0, [sp, #0] + 1090: 4668 mov r0, sp + 1092: 8401 strh r1, [r0, #32] ; 0x20 + 1094: 8c00 ldrh r0, [r0, #32] ; 0x20 + 1096: 4669 mov r1, sp + 1098: 8c49 ldrh r1, [r1, #34] ; 0x22 + 109a: 0209 lsl r1, r1, #8 + 109c: 1840 add r0, r0, r1 + 109e: 9901 ldr r1, [sp, #4] + 10a0: 8088 strh r0, [r1, #4] + 10a2: 9804 ldr r0, [sp, #16] ; 0x10 + 10a4: 3001 add r0, #1 + 10a6: 9004 str r0, [sp, #16] ; 0x10 + 10a8: 9800 ldr r0, [sp, #0] + 10aa: 7801 ldrb r1, [r0, #0] + 10ac: 3001 add r0, #1 + 10ae: 9000 str r0, [sp, #0] + 10b0: 4668 mov r0, sp + 10b2: 7601 strb r1, [r0, #24] ; 0x18 + 10b4: 9901 ldr r1, [sp, #4] + 10b6: 7e00 ldrb r0, [r0, #24] ; 0x18 + 10b8: 7188 strb r0, [r1, #6] + 10ba: 4668 mov r0, sp + 10bc: 7e00 ldrb r0, [r0, #24] ; 0x18 + 10be: 2840 cmp r0, #64 ; 0x40 + 10c0: dc00 bgt 0x10c4 + 10c2: e09f b 0x1204 + 10c4: 2004 mov r0, #4 + 10c6: 9003 str r0, [sp, #12] ; 0xc + 10c8: e09c b 0x1204 + 10ca: 9804 ldr r0, [sp, #16] ; 0x10 + 10cc: 3002 add r0, #2 + 10ce: 9004 str r0, [sp, #16] ; 0x10 + 10d0: 9800 ldr r0, [sp, #0] + 10d2: 7801 ldrb r1, [r0, #0] + 10d4: 3001 add r0, #1 + 10d6: 9000 str r0, [sp, #0] + 10d8: 4668 mov r0, sp + 10da: 8441 strh r1, [r0, #34] ; 0x22 + 10dc: 9800 ldr r0, [sp, #0] + 10de: 7801 ldrb r1, [r0, #0] + 10e0: 3001 add r0, #1 + 10e2: 9000 str r0, [sp, #0] + 10e4: 4668 mov r0, sp + 10e6: 8401 strh r1, [r0, #32] ; 0x20 + 10e8: 8c00 ldrh r0, [r0, #32] ; 0x20 + 10ea: 4669 mov r1, sp + 10ec: 8c49 ldrh r1, [r1, #34] ; 0x22 + 10ee: 0209 lsl r1, r1, #8 + 10f0: 1841 add r1, r0, r1 + 10f2: 9801 ldr r0, [sp, #4] + 10f4: 8081 strh r1, [r0, #4] + 10f6: 9804 ldr r0, [sp, #16] ; 0x10 + 10f8: 3001 add r0, #1 + 10fa: 9004 str r0, [sp, #16] ; 0x10 + 10fc: 9800 ldr r0, [sp, #0] + 10fe: 7801 ldrb r1, [r0, #0] + 1100: 3001 add r0, #1 + 1102: 9000 str r0, [sp, #0] + 1104: 4668 mov r0, sp + 1106: 7601 strb r1, [r0, #24] ; 0x18 + 1108: 9901 ldr r1, [sp, #4] + 110a: 7e00 ldrb r0, [r0, #24] ; 0x18 + 110c: 7188 strb r0, [r1, #6] + 110e: 4668 mov r0, sp + 1110: 7e00 ldrb r0, [r0, #24] ; 0x18 + 1112: 2840 cmp r0, #64 ; 0x40 + 1114: dcd6 bgt 0x10c4 + 1116: 9801 ldr r0, [sp, #4] + 1118: 3008 add r0, #8 + 111a: 9007 str r0, [sp, #28] ; 0x1c + 111c: 2000 mov r0, #0 + 111e: 9002 str r0, [sp, #8] + 1120: 9902 ldr r1, [sp, #8] + 1122: 4668 mov r0, sp + 1124: 7e00 ldrb r0, [r0, #24] ; 0x18 + 1126: 4281 cmp r1, r0 + 1128: da6c bge 0x1204 + 112a: 9800 ldr r0, [sp, #0] + 112c: 7801 ldrb r1, [r0, #0] + 112e: 3001 add r0, #1 + 1130: 9000 str r0, [sp, #0] + 1132: 4668 mov r0, sp + 1134: 84c1 strh r1, [r0, #38] ; 0x26 + 1136: 9800 ldr r0, [sp, #0] + 1138: 7801 ldrb r1, [r0, #0] + 113a: 3001 add r0, #1 + 113c: 9000 str r0, [sp, #0] + 113e: 4668 mov r0, sp + 1140: 8481 strh r1, [r0, #36] ; 0x24 + 1142: 9807 ldr r0, [sp, #28] ; 0x1c + 1144: 1c81 add r1, r0, #2 + 1146: 9107 str r1, [sp, #28] ; 0x1c + 1148: 4669 mov r1, sp + 114a: 8c89 ldrh r1, [r1, #36] ; 0x24 + 114c: 466a mov r2, sp + 114e: 8cd2 ldrh r2, [r2, #38] ; 0x26 + 1150: 0212 lsl r2, r2, #8 + 1152: 1889 add r1, r1, r2 + 1154: 8001 strh r1, [r0, #0] + 1156: 9804 ldr r0, [sp, #16] ; 0x10 + 1158: 3002 add r0, #2 + 115a: 9004 str r0, [sp, #16] ; 0x10 + 115c: 9802 ldr r0, [sp, #8] + 115e: 3001 add r0, #1 + 1160: 9002 str r0, [sp, #8] + 1162: 9902 ldr r1, [sp, #8] + 1164: 4668 mov r0, sp + 1166: 7e00 ldrb r0, [r0, #24] ; 0x18 + 1168: 4281 cmp r1, r0 + 116a: dbde blt 0x112a + 116c: e04a b 0x1204 + 116e: 9804 ldr r0, [sp, #16] ; 0x10 + 1170: 3002 add r0, #2 + 1172: 9004 str r0, [sp, #16] ; 0x10 + 1174: 9800 ldr r0, [sp, #0] + 1176: 7801 ldrb r1, [r0, #0] + 1178: 3001 add r0, #1 + 117a: 9000 str r0, [sp, #0] + 117c: 4668 mov r0, sp + 117e: 8501 strh r1, [r0, #40] ; 0x28 + 1180: 9800 ldr r0, [sp, #0] + 1182: 7801 ldrb r1, [r0, #0] + 1184: 3001 add r0, #1 + 1186: 9000 str r0, [sp, #0] + 1188: 4668 mov r0, sp + 118a: 8541 strh r1, [r0, #42] ; 0x2a + 118c: 8d41 ldrh r1, [r0, #42] ; 0x2a + 118e: 8d00 ldrh r0, [r0, #40] ; 0x28 + 1190: 0200 lsl r0, r0, #8 + 1192: 1809 add r1, r1, r0 + 1194: 9801 ldr r0, [sp, #4] + 1196: 8081 strh r1, [r0, #4] + 1198: 9804 ldr r0, [sp, #16] ; 0x10 + 119a: 3002 add r0, #2 + 119c: 9004 str r0, [sp, #16] ; 0x10 + 119e: 9800 ldr r0, [sp, #0] + 11a0: 7801 ldrb r1, [r0, #0] + 11a2: 3001 add r0, #1 + 11a4: 9000 str r0, [sp, #0] + 11a6: 4668 mov r0, sp + 11a8: 8581 strh r1, [r0, #44] ; 0x2c + 11aa: 9800 ldr r0, [sp, #0] + 11ac: 7801 ldrb r1, [r0, #0] + 11ae: 3001 add r0, #1 + 11b0: 9000 str r0, [sp, #0] + 11b2: 4668 mov r0, sp + 11b4: 85c1 strh r1, [r0, #46] ; 0x2e + 11b6: 8dc1 ldrh r1, [r0, #46] ; 0x2e + 11b8: 8d80 ldrh r0, [r0, #44] ; 0x2c + 11ba: 0200 lsl r0, r0, #8 + 11bc: 1808 add r0, r1, r0 + 11be: 9901 ldr r1, [sp, #4] + 11c0: 80c8 strh r0, [r1, #6] + 11c2: e01f b 0x1204 + 11c4: 2008 mov r0, #8 + 11c6: e77e b 0x10c6 + 11c8: 9801 ldr r0, [sp, #4] + 11ca: 7801 ldrb r1, [r0, #0] + 11cc: 290a cmp r1, #10 ; 0xa + 11ce: d8f9 bhi 0x11c4 + 11d0: a001 add r0, pc, #4 + 11d2: 0089 lsl r1, r1, #2 + 11d4: 5840 ldr r0, [r0, r1] + 11d6: 4687 mov pc, r0 + 11d8: 1204 asr r4, r0, #8 + 11da: 0000 lsl r0, r0, #0 + 11dc: 1204 asr r4, r0, #8 + 11de: 0000 lsl r0, r0, #0 + 11e0: 1204 asr r4, r0, #8 + 11e2: 0000 lsl r0, r0, #0 + 11e4: 1204 asr r4, r0, #8 + 11e6: 0000 lsl r0, r0, #0 + 11e8: 1204 asr r4, r0, #8 + 11ea: 0000 lsl r0, r0, #0 + 11ec: 1204 asr r4, r0, #8 + 11ee: 0000 lsl r0, r0, #0 + 11f0: 1204 asr r4, r0, #8 + 11f2: 0000 lsl r0, r0, #0 + 11f4: 1076 asr r6, r6, #1 + 11f6: 0000 lsl r0, r0, #0 + 11f8: 10ca asr r2, r1, #3 + 11fa: 0000 lsl r0, r0, #0 + 11fc: 1204 asr r4, r0, #8 + 11fe: 0000 lsl r0, r0, #0 + 1200: 116e asr r6, r5, #5 + 1202: 0000 lsl r0, r0, #0 + 1204: 9905 ldr r1, [sp, #20] ; 0x14 + 1206: 9804 ldr r0, [sp, #16] ; 0x10 + 1208: 4281 cmp r1, r0 + 120a: d001 beq 0x1210 + 120c: 2004 mov r0, #4 + 120e: 9003 str r0, [sp, #12] ; 0xc + 1210: 9803 ldr r0, [sp, #12] ; 0xc + 1212: b00c add sp, #48 ; 0x30 + 1214: 4770 bx lr + 1216: b089 sub sp, #36 ; 0x24 + 1218: 9101 str r1, [sp, #4] + 121a: 9000 str r0, [sp, #0] + 121c: 2000 mov r0, #0 + 121e: 9003 str r0, [sp, #12] ; 0xc + 1220: 9801 ldr r0, [sp, #4] + 1222: 1c41 add r1, r0, #1 + 1224: 9101 str r1, [sp, #4] + 1226: 9005 str r0, [sp, #20] ; 0x14 + 1228: 9801 ldr r0, [sp, #4] + 122a: 1c41 add r1, r0, #1 + 122c: 9101 str r1, [sp, #4] + 122e: 9900 ldr r1, [sp, #0] + 1230: 7809 ldrb r1, [r1, #0] + 1232: 7001 strb r1, [r0, #0] + 1234: 4669 mov r1, sp + 1236: 2001 mov r0, #1 + 1238: 7408 strb r0, [r1, #16] ; 0x10 + 123a: 9801 ldr r0, [sp, #4] + 123c: 1c41 add r1, r0, #1 + 123e: 9101 str r1, [sp, #4] + 1240: 9900 ldr r1, [sp, #0] + 1242: 7849 ldrb r1, [r1, #1] + 1244: 7001 strb r1, [r0, #0] + 1246: 4669 mov r1, sp + 1248: 4668 mov r0, sp + 124a: 7c00 ldrb r0, [r0, #16] ; 0x10 + 124c: 3001 add r0, #1 + 124e: 7408 strb r0, [r1, #16] ; 0x10 + 1250: e0e4 b 0x141c + 1252: 9800 ldr r0, [sp, #0] + 1254: 7840 ldrb r0, [r0, #1] + 1256: 2800 cmp r0, #0 + 1258: d000 beq 0x125c + 125a: e0fd b 0x1458 + 125c: 9801 ldr r0, [sp, #4] + 125e: 1c41 add r1, r0, #1 + 1260: 9101 str r1, [sp, #4] + 1262: 9900 ldr r1, [sp, #0] + 1264: 7909 ldrb r1, [r1, #4] + 1266: 7001 strb r1, [r0, #0] + 1268: 9801 ldr r0, [sp, #4] + 126a: 1c41 add r1, r0, #1 + 126c: 9101 str r1, [sp, #4] + 126e: 9900 ldr r1, [sp, #0] + 1270: 7949 ldrb r1, [r1, #5] + 1272: 7001 strb r1, [r0, #0] + 1274: 9801 ldr r0, [sp, #4] + 1276: 1c41 add r1, r0, #1 + 1278: 9101 str r1, [sp, #4] + 127a: 9900 ldr r1, [sp, #0] + 127c: 7989 ldrb r1, [r1, #6] + 127e: 7001 strb r1, [r0, #0] + 1280: 4668 mov r0, sp + 1282: 7c00 ldrb r0, [r0, #16] ; 0x10 + 1284: 3003 add r0, #3 + 1286: 4669 mov r1, sp + 1288: 7408 strb r0, [r1, #16] ; 0x10 + 128a: e0e5 b 0x1458 + 128c: 9800 ldr r0, [sp, #0] + 128e: 7840 ldrb r0, [r0, #1] + 1290: 2800 cmp r0, #0 + 1292: d000 beq 0x1296 + 1294: e0e0 b 0x1458 + 1296: 9801 ldr r0, [sp, #4] + 1298: 1c41 add r1, r0, #1 + 129a: 9101 str r1, [sp, #4] + 129c: 9900 ldr r1, [sp, #0] + 129e: 7909 ldrb r1, [r1, #4] + 12a0: 7001 strb r1, [r0, #0] + 12a2: 4668 mov r0, sp + 12a4: 7c00 ldrb r0, [r0, #16] ; 0x10 + 12a6: 3001 add r0, #1 + 12a8: e7ed b 0x1286 + 12aa: 9800 ldr r0, [sp, #0] + 12ac: 7840 ldrb r0, [r0, #1] + 12ae: 2800 cmp r0, #0 + 12b0: d000 beq 0x12b4 + 12b2: e0d1 b 0x1458 + 12b4: e7ef b 0x1296 + 12b6: 9800 ldr r0, [sp, #0] + 12b8: 7840 ldrb r0, [r0, #1] + 12ba: 2800 cmp r0, #0 + 12bc: d000 beq 0x12c0 + 12be: e0cb b 0x1458 + 12c0: e7e9 b 0x1296 + 12c2: 9800 ldr r0, [sp, #0] + 12c4: 7840 ldrb r0, [r0, #1] + 12c6: 2800 cmp r0, #0 + 12c8: d000 beq 0x12cc + 12ca: e0c5 b 0x1458 + 12cc: 4669 mov r1, sp + 12ce: 9800 ldr r0, [sp, #0] + 12d0: 8880 ldrh r0, [r0, #4] + 12d2: 8408 strh r0, [r1, #32] ; 0x20 + 12d4: 9801 ldr r0, [sp, #4] + 12d6: 1c41 add r1, r0, #1 + 12d8: 9101 str r1, [sp, #4] + 12da: 4669 mov r1, sp + 12dc: 8c09 ldrh r1, [r1, #32] ; 0x20 + 12de: 0409 lsl r1, r1, #16 + 12e0: 0e09 lsr r1, r1, #24 + 12e2: 0209 lsl r1, r1, #8 + 12e4: 1209 asr r1, r1, #8 + 12e6: 7001 strb r1, [r0, #0] + 12e8: 9801 ldr r0, [sp, #4] + 12ea: 1c41 add r1, r0, #1 + 12ec: 9101 str r1, [sp, #4] + 12ee: 4669 mov r1, sp + 12f0: 8c09 ldrh r1, [r1, #32] ; 0x20 + 12f2: 0609 lsl r1, r1, #24 + 12f4: 0e09 lsr r1, r1, #24 + 12f6: 7001 strb r1, [r0, #0] + 12f8: 4669 mov r1, sp + 12fa: 9800 ldr r0, [sp, #0] + 12fc: 88c0 ldrh r0, [r0, #6] + 12fe: 8408 strh r0, [r1, #32] ; 0x20 + 1300: 9801 ldr r0, [sp, #4] + 1302: 1c41 add r1, r0, #1 + 1304: 9101 str r1, [sp, #4] + 1306: 4669 mov r1, sp + 1308: 8c09 ldrh r1, [r1, #32] ; 0x20 + 130a: 0409 lsl r1, r1, #16 + 130c: 0e09 lsr r1, r1, #24 + 130e: 0209 lsl r1, r1, #8 + 1310: 1209 asr r1, r1, #8 + 1312: 7001 strb r1, [r0, #0] + 1314: 9801 ldr r0, [sp, #4] + 1316: 1c41 add r1, r0, #1 + 1318: 9101 str r1, [sp, #4] + 131a: 4669 mov r1, sp + 131c: 8c09 ldrh r1, [r1, #32] ; 0x20 + 131e: 0609 lsl r1, r1, #24 + 1320: 0e09 lsr r1, r1, #24 + 1322: 7001 strb r1, [r0, #0] + 1324: 4668 mov r0, sp + 1326: 7c00 ldrb r0, [r0, #16] ; 0x10 + 1328: 3004 add r0, #4 + 132a: e7ac b 0x1286 + 132c: 9800 ldr r0, [sp, #0] + 132e: 7840 ldrb r0, [r0, #1] + 1330: 2800 cmp r0, #0 + 1332: d000 beq 0x1336 + 1334: e090 b 0x1458 + 1336: e7ae b 0x1296 + 1338: 9800 ldr r0, [sp, #0] + 133a: 7840 ldrb r0, [r0, #1] + 133c: 2800 cmp r0, #0 + 133e: d000 beq 0x1342 + 1340: e08a b 0x1458 + 1342: 4669 mov r1, sp + 1344: 4668 mov r0, sp + 1346: 7c00 ldrb r0, [r0, #16] ; 0x10 + 1348: 3001 add r0, #1 + 134a: 7408 strb r0, [r1, #16] ; 0x10 + 134c: 4668 mov r0, sp + 134e: 9900 ldr r1, [sp, #0] + 1350: 7909 ldrb r1, [r1, #4] + 1352: 7601 strb r1, [r0, #24] ; 0x18 + 1354: 9801 ldr r0, [sp, #4] + 1356: 1c41 add r1, r0, #1 + 1358: 9101 str r1, [sp, #4] + 135a: 4669 mov r1, sp + 135c: 7e09 ldrb r1, [r1, #24] ; 0x18 + 135e: 7001 strb r1, [r0, #0] + 1360: 4668 mov r0, sp + 1362: 7e00 ldrb r0, [r0, #24] ; 0x18 + 1364: 2840 cmp r0, #64 ; 0x40 + 1366: dd01 ble 0x136c + 1368: 2004 mov r0, #4 + 136a: e055 b 0x1418 + 136c: 9800 ldr r0, [sp, #0] + 136e: 3006 add r0, #6 + 1370: 9007 str r0, [sp, #28] ; 0x1c + 1372: 2000 mov r0, #0 + 1374: 9002 str r0, [sp, #8] + 1376: 9902 ldr r1, [sp, #8] + 1378: 4668 mov r0, sp + 137a: 7e00 ldrb r0, [r0, #24] ; 0x18 + 137c: 4281 cmp r1, r0 + 137e: da6b bge 0x1458 + 1380: 9801 ldr r0, [sp, #4] + 1382: 1c41 add r1, r0, #1 + 1384: 9101 str r1, [sp, #4] + 1386: 9907 ldr r1, [sp, #28] ; 0x1c + 1388: 8809 ldrh r1, [r1, #0] + 138a: 0409 lsl r1, r1, #16 + 138c: 0e09 lsr r1, r1, #24 + 138e: 0209 lsl r1, r1, #8 + 1390: 1209 asr r1, r1, #8 + 1392: 7001 strb r1, [r0, #0] + 1394: 9807 ldr r0, [sp, #28] ; 0x1c + 1396: 8801 ldrh r1, [r0, #0] + 1398: 3002 add r0, #2 + 139a: 9007 str r0, [sp, #28] ; 0x1c + 139c: 0608 lsl r0, r1, #24 + 139e: 0e01 lsr r1, r0, #24 + 13a0: 9801 ldr r0, [sp, #4] + 13a2: 1c42 add r2, r0, #1 + 13a4: 9201 str r2, [sp, #4] + 13a6: 7001 strb r1, [r0, #0] + 13a8: 4669 mov r1, sp + 13aa: 4668 mov r0, sp + 13ac: 7c00 ldrb r0, [r0, #16] ; 0x10 + 13ae: 3002 add r0, #2 + 13b0: 7408 strb r0, [r1, #16] ; 0x10 + 13b2: 9802 ldr r0, [sp, #8] + 13b4: 3001 add r0, #1 + 13b6: 9002 str r0, [sp, #8] + 13b8: 9902 ldr r1, [sp, #8] + 13ba: 4668 mov r0, sp + 13bc: 7e00 ldrb r0, [r0, #24] ; 0x18 + 13be: 4281 cmp r1, r0 + 13c0: dbde blt 0x1380 + 13c2: e049 b 0x1458 + 13c4: 9800 ldr r0, [sp, #0] + 13c6: 7840 ldrb r0, [r0, #1] + 13c8: 2800 cmp r0, #0 + 13ca: d145 bne 0x1458 + 13cc: 4669 mov r1, sp + 13ce: 9800 ldr r0, [sp, #0] + 13d0: 8880 ldrh r0, [r0, #4] + 13d2: 8408 strh r0, [r1, #32] ; 0x20 + 13d4: 9801 ldr r0, [sp, #4] + 13d6: 1c41 add r1, r0, #1 + 13d8: 9101 str r1, [sp, #4] + 13da: 4669 mov r1, sp + 13dc: 8c09 ldrh r1, [r1, #32] ; 0x20 + 13de: 0409 lsl r1, r1, #16 + 13e0: 0e09 lsr r1, r1, #24 + 13e2: 0209 lsl r1, r1, #8 + 13e4: 1209 asr r1, r1, #8 + 13e6: 7001 strb r1, [r0, #0] + 13e8: 9801 ldr r0, [sp, #4] + 13ea: 1c41 add r1, r0, #1 + 13ec: 9101 str r1, [sp, #4] + 13ee: 4669 mov r1, sp + 13f0: 8c09 ldrh r1, [r1, #32] ; 0x20 + 13f2: 0609 lsl r1, r1, #24 + 13f4: 0e09 lsr r1, r1, #24 + 13f6: 7001 strb r1, [r0, #0] + 13f8: 4668 mov r0, sp + 13fa: 9900 ldr r1, [sp, #0] + 13fc: 88c9 ldrh r1, [r1, #6] + 13fe: 8401 strh r1, [r0, #32] ; 0x20 + 1400: 9901 ldr r1, [sp, #4] + 1402: 1c48 add r0, r1, #1 + 1404: 9001 str r0, [sp, #4] + 1406: 4668 mov r0, sp + 1408: 8c00 ldrh r0, [r0, #32] ; 0x20 + 140a: 0400 lsl r0, r0, #16 + 140c: 0e00 lsr r0, r0, #24 + 140e: 0200 lsl r0, r0, #8 + 1410: 1200 asr r0, r0, #8 + 1412: 7008 strb r0, [r1, #0] + 1414: e77e b 0x1314 + 1416: 2008 mov r0, #8 + 1418: 9003 str r0, [sp, #12] ; 0xc + 141a: e01d b 0x1458 + 141c: 9800 ldr r0, [sp, #0] + 141e: 7800 ldrb r0, [r0, #0] + 1420: 280a cmp r0, #10 ; 0xa + 1422: d8f8 bhi 0x1416 + 1424: a101 add r1, pc, #4 + 1426: 0080 lsl r0, r0, #2 + 1428: 5808 ldr r0, [r1, r0] + 142a: 4687 mov pc, r0 + 142c: 1252 asr r2, r2, #9 + 142e: 0000 lsl r0, r0, #0 + 1430: 128c asr r4, r1, #10 + 1432: 0000 lsl r0, r0, #0 + 1434: 12aa asr r2, r5, #10 + 1436: 0000 lsl r0, r0, #0 + 1438: 12b6 asr r6, r6, #10 + 143a: 0000 lsl r0, r0, #0 + 143c: 1458 asr r0, r3, #17 + 143e: 0000 lsl r0, r0, #0 + 1440: 12c2 asr r2, r0, #11 + 1442: 0000 lsl r0, r0, #0 + 1444: 132c asr r4, r5, #12 + 1446: 0000 lsl r0, r0, #0 + 1448: 1338 asr r0, r7, #12 + 144a: 0000 lsl r0, r0, #0 + 144c: 1458 asr r0, r3, #17 + 144e: 0000 lsl r0, r0, #0 + 1450: 13c4 asr r4, r0, #15 + 1452: 0000 lsl r0, r0, #0 + 1454: 1458 asr r0, r3, #17 + 1456: 0000 lsl r0, r0, #0 + 1458: 9805 ldr r0, [sp, #20] ; 0x14 + 145a: 4669 mov r1, sp + 145c: 7c09 ldrb r1, [r1, #16] ; 0x10 + 145e: 7001 strb r1, [r0, #0] + 1460: 9803 ldr r0, [sp, #12] ; 0xc + 1462: b009 add sp, #36 ; 0x24 + 1464: 4770 bx lr + 1466: 0000 lsl r0, r0, #0 + 1468: b500 push {lr} + 146a: b083 sub sp, #12 ; 0xc + 146c: 9101 str r1, [sp, #4] + 146e: 4669 mov r1, sp + 1470: 7008 strb r0, [r1, #0] + 1472: 2000 mov r0, #0 + 1474: 9002 str r0, [sp, #8] + 1476: e073 b 0x1560 + 1478: 4668 mov r0, sp + 147a: 7800 ldrb r0, [r0, #0] + 147c: 28aa cmp r0, #170 ; 0xaa + 147e: d106 bne 0x148e + 1480: 4965 ldr r1, =0x83ff10 ; via 0x1618 + 1482: 4865 ldr r0, =0x83ff10 ; via 0x1618 + 1484: 6800 ldr r0, [r0, #0] + 1486: 3001 add r0, #1 + 1488: 07c0 lsl r0, r0, #31 + 148a: 0fc0 lsr r0, r0, #31 + 148c: e013 b 0x14b6 + 148e: 4862 ldr r0, =0x83ff10 ; via 0x1618 + 1490: 6800 ldr r0, [r0, #0] + 1492: 2800 cmp r0, #0 + 1494: d06b beq 0x156e + 1496: 4961 ldr r1, =0x83ff04 ; via 0x161c + 1498: 9801 ldr r0, [sp, #4] + 149a: 3001 add r0, #1 + 149c: 6008 str r0, [r1, #0] + 149e: 4960 ldr r1, =0x83ff0e ; via 0x1620 + 14a0: 2000 mov r0, #0 + 14a2: 7008 strb r0, [r1, #0] + 14a4: 495f ldr r1, =0x83ff0c ; via 0x1624 + 14a6: 4668 mov r0, sp + 14a8: 7800 ldrb r0, [r0, #0] + 14aa: 8008 strh r0, [r1, #0] + 14ac: 495a ldr r1, =0x83ff10 ; via 0x1618 + 14ae: 2000 mov r0, #0 + 14b0: 6008 str r0, [r1, #0] + 14b2: 495d ldr r1, =0x83ff08 ; via 0x1628 + 14b4: 2001 mov r0, #1 + 14b6: 6008 str r0, [r1, #0] + 14b8: e059 b 0x156e + 14ba: 4668 mov r0, sp + 14bc: 7800 ldrb r0, [r0, #0] + 14be: 28aa cmp r0, #170 ; 0xaa + 14c0: d113 bne 0x14ea + 14c2: 4855 ldr r0, =0x83ff10 ; via 0x1618 + 14c4: 6800 ldr r0, [r0, #0] + 14c6: 2800 cmp r0, #0 + 14c8: d00b beq 0x14e2 + 14ca: 4954 ldr r1, =0x83ff04 ; via 0x161c + 14cc: 6808 ldr r0, [r1, #0] + 14ce: 1c42 add r2, r0, #1 + 14d0: 600a str r2, [r1, #0] + 14d2: 4669 mov r1, sp + 14d4: 7809 ldrb r1, [r1, #0] + 14d6: 7001 strb r1, [r0, #0] + 14d8: 4951 ldr r1, =0x83ff0e ; via 0x1620 + 14da: 7808 ldrb r0, [r1, #0] + 14dc: 3001 add r0, #1 + 14de: 7008 strb r0, [r1, #0] + 14e0: e013 b 0x150a + 14e2: 2101 mov r1, #1 + 14e4: 484c ldr r0, =0x83ff10 ; via 0x1618 + 14e6: 6001 str r1, [r0, #0] + 14e8: e01c b 0x1524 + 14ea: 484b ldr r0, =0x83ff10 ; via 0x1618 + 14ec: 6800 ldr r0, [r0, #0] + 14ee: 2800 cmp r0, #0 + 14f0: d00d beq 0x150e + 14f2: 494a ldr r1, =0x83ff04 ; via 0x161c + 14f4: 9801 ldr r0, [sp, #4] + 14f6: 3001 add r0, #1 + 14f8: 6008 str r0, [r1, #0] + 14fa: 4849 ldr r0, =0x83ff0e ; via 0x1620 + 14fc: 2100 mov r1, #0 + 14fe: 7001 strb r1, [r0, #0] + 1500: 4948 ldr r1, =0x83ff0c ; via 0x1624 + 1502: 4668 mov r0, sp + 1504: 7800 ldrb r0, [r0, #0] + 1506: 3001 add r0, #1 + 1508: 8008 strh r0, [r1, #0] + 150a: 2100 mov r1, #0 + 150c: e7ea b 0x14e4 + 150e: 4843 ldr r0, =0x83ff04 ; via 0x161c + 1510: 6801 ldr r1, [r0, #0] + 1512: 1c4a add r2, r1, #1 + 1514: 6002 str r2, [r0, #0] + 1516: 4668 mov r0, sp + 1518: 7800 ldrb r0, [r0, #0] + 151a: 7008 strb r0, [r1, #0] + 151c: 4940 ldr r1, =0x83ff0e ; via 0x1620 + 151e: 7808 ldrb r0, [r1, #0] + 1520: 3001 add r0, #1 + 1522: 7008 strb r0, [r1, #0] + 1524: 483f ldr r0, =0x83ff0c ; via 0x1624 + 1526: 8801 ldrh r1, [r0, #0] + 1528: 3901 sub r1, #1 + 152a: 8001 strh r1, [r0, #0] + 152c: 483d ldr r0, =0x83ff0c ; via 0x1624 + 152e: 8800 ldrh r0, [r0, #0] + 1530: 2800 cmp r0, #0 + 1532: d11c bne 0x156e + 1534: 9901 ldr r1, [sp, #4] + 1536: 483a ldr r0, =0x83ff0e ; via 0x1620 + 1538: 7800 ldrb r0, [r0, #0] + 153a: 7008 strb r0, [r1, #0] + 153c: 2001 mov r0, #1 + 153e: 9002 str r0, [sp, #8] + 1540: 4839 ldr r0, =0x83ff08 ; via 0x1628 + 1542: 2100 mov r1, #0 + 1544: 6001 str r1, [r0, #0] + 1546: 4834 ldr r0, =0x83ff10 ; via 0x1618 + 1548: 6001 str r1, [r0, #0] + 154a: 9801 ldr r0, [sp, #4] + 154c: 7800 ldrb r0, [r0, #0] + 154e: 2801 cmp r0, #1 + 1550: d10d bne 0x156e + 1552: 9801 ldr r0, [sp, #4] + 1554: 7840 ldrb r0, [r0, #1] + 1556: 28dd cmp r0, #221 ; 0xdd + 1558: d109 bne 0x156e + 155a: f7ff fae3 bl 0xb24 + 155e: e006 b 0x156e + 1560: 4831 ldr r0, =0x83ff08 ; via 0x1628 + 1562: 6800 ldr r0, [r0, #0] + 1564: 2800 cmp r0, #0 + 1566: d087 beq 0x1478 + 1568: 3801 sub r0, #1 + 156a: 2800 cmp r0, #0 + 156c: d0a5 beq 0x14ba + 156e: 9802 ldr r0, [sp, #8] + 1570: b003 add sp, #12 ; 0xc + 1572: bd00 pop {pc} + 1574: b086 sub sp, #24 ; 0x18 + 1576: 9202 str r2, [sp, #8] + 1578: 9101 str r1, [sp, #4] + 157a: 9000 str r0, [sp, #0] + 157c: 9801 ldr r0, [sp, #4] + 157e: 3001 add r0, #1 + 1580: 9004 str r0, [sp, #16] ; 0x10 + 1582: 9800 ldr r0, [sp, #0] + 1584: 1c41 add r1, r0, #1 + 1586: 9100 str r1, [sp, #0] + 1588: 9005 str r0, [sp, #20] ; 0x14 + 158a: 9901 ldr r1, [sp, #4] + 158c: 20aa mov r0, #170 ; 0xaa + 158e: 7008 strb r0, [r1, #0] + 1590: 9801 ldr r0, [sp, #4] + 1592: 3002 add r0, #2 + 1594: 9001 str r0, [sp, #4] + 1596: 9902 ldr r1, [sp, #8] + 1598: 2000 mov r0, #0 + 159a: 8008 strh r0, [r1, #0] + 159c: 4669 mov r1, sp + 159e: 8188 strh r0, [r1, #12] ; 0xc + 15a0: 4668 mov r0, sp + 15a2: 8981 ldrh r1, [r0, #12] ; 0xc + 15a4: 9805 ldr r0, [sp, #20] ; 0x14 + 15a6: 7800 ldrb r0, [r0, #0] + 15a8: 4281 cmp r1, r0 + 15aa: da23 bge 0x15f4 + 15ac: 9800 ldr r0, [sp, #0] + 15ae: 7800 ldrb r0, [r0, #0] + 15b0: 28aa cmp r0, #170 ; 0xaa + 15b2: d108 bne 0x15c6 + 15b4: 9801 ldr r0, [sp, #4] + 15b6: 1c41 add r1, r0, #1 + 15b8: 9101 str r1, [sp, #4] + 15ba: 21aa mov r1, #170 ; 0xaa + 15bc: 7001 strb r1, [r0, #0] + 15be: 9902 ldr r1, [sp, #8] + 15c0: 8808 ldrh r0, [r1, #0] + 15c2: 3001 add r0, #1 + 15c4: 8008 strh r0, [r1, #0] + 15c6: 9800 ldr r0, [sp, #0] + 15c8: 7801 ldrb r1, [r0, #0] + 15ca: 3001 add r0, #1 + 15cc: 9000 str r0, [sp, #0] + 15ce: 9801 ldr r0, [sp, #4] + 15d0: 1c42 add r2, r0, #1 + 15d2: 9201 str r2, [sp, #4] + 15d4: 7001 strb r1, [r0, #0] + 15d6: 9902 ldr r1, [sp, #8] + 15d8: 8808 ldrh r0, [r1, #0] + 15da: 3001 add r0, #1 + 15dc: 8008 strh r0, [r1, #0] + 15de: 4669 mov r1, sp + 15e0: 4668 mov r0, sp + 15e2: 8980 ldrh r0, [r0, #12] ; 0xc + 15e4: 3001 add r0, #1 + 15e6: 8188 strh r0, [r1, #12] ; 0xc + 15e8: 4668 mov r0, sp + 15ea: 8980 ldrh r0, [r0, #12] ; 0xc + 15ec: 9905 ldr r1, [sp, #20] ; 0x14 + 15ee: 7809 ldrb r1, [r1, #0] + 15f0: 4288 cmp r0, r1 + 15f2: dbdb blt 0x15ac + 15f4: 9904 ldr r1, [sp, #16] ; 0x10 + 15f6: 9802 ldr r0, [sp, #8] + 15f8: 7800 ldrb r0, [r0, #0] + 15fa: 7008 strb r0, [r1, #0] + 15fc: 9902 ldr r1, [sp, #8] + 15fe: 8808 ldrh r0, [r1, #0] + 1600: 3002 add r0, #2 + 1602: 8008 strh r0, [r1, #0] + 1604: b006 add sp, #24 ; 0x18 + 1606: 4770 bx lr + 1608: 4907 ldr r1, =0x83ff08 ; via 0x1628 + 160a: 2000 mov r0, #0 + 160c: 6008 str r0, [r1, #0] + 160e: 4802 ldr r0, =0x83ff10 ; via 0x1618 + 1610: 2100 mov r1, #0 + 1612: 6001 str r1, [r0, #0] + 1614: 4770 bx lr + 1616: 46c0 nop (mov r8, r8) + 1618: ff10 + 161a: 0083 lsl r3, r0, #2 + 161c: ff04 + 161e: 0083 lsl r3, r0, #2 + 1620: ff0e + 1622: 0083 lsl r3, r0, #2 + 1624: ff0c + 1626: 0083 lsl r3, r0, #2 + 1628: ff08 + 162a: 0083 lsl r3, r0, #2 + 162c: b082 sub sp, #8 + 162e: 9101 str r1, [sp, #4] + 1630: 9000 str r0, [sp, #0] + 1632: 9901 ldr r1, [sp, #4] + 1634: 2000 mov r0, #0 + 1636: 7008 strb r0, [r1, #0] + 1638: 9801 ldr r0, [sp, #4] + 163a: 2100 mov r1, #0 + 163c: 7041 strb r1, [r0, #1] + 163e: 9801 ldr r0, [sp, #4] + 1640: 2102 mov r1, #2 + 1642: 7101 strb r1, [r0, #4] + 1644: 9801 ldr r0, [sp, #4] + 1646: 2106 mov r1, #6 + 1648: 7141 strb r1, [r0, #5] + 164a: 9801 ldr r0, [sp, #4] + 164c: 2102 mov r1, #2 + 164e: 7181 strb r1, [r0, #6] + 1650: b002 add sp, #8 + 1652: 4770 bx lr + 1654: b500 push {lr} + 1656: b084 sub sp, #16 ; 0x10 + 1658: 466b mov r3, sp + 165a: 721a strb r2, [r3, #8] + 165c: 9101 str r1, [sp, #4] + 165e: 9000 str r0, [sp, #0] + 1660: 9901 ldr r1, [sp, #4] + 1662: 2009 mov r0, #9 + 1664: 7008 strb r0, [r1, #0] + 1666: e015 b 0x1694 + 1668: 9801 ldr r0, [sp, #4] + 166a: 2100 mov r1, #0 + 166c: 7041 strb r1, [r0, #1] + 166e: 9901 ldr r1, [sp, #4] + 1670: 4668 mov r0, sp + 1672: 8940 ldrh r0, [r0, #10] ; 0xa + 1674: 8088 strh r0, [r1, #4] + 1676: 9901 ldr r1, [sp, #4] + 1678: 4668 mov r0, sp + 167a: 8980 ldrh r0, [r0, #12] ; 0xc + 167c: 80c8 strh r0, [r1, #6] + 167e: e01e b 0x16be + 1680: 2101 mov r1, #1 + 1682: e004 b 0x168e + 1684: 2103 mov r1, #3 + 1686: e002 b 0x168e + 1688: 2105 mov r1, #5 + 168a: e000 b 0x168e + 168c: 2106 mov r1, #6 + 168e: 9801 ldr r0, [sp, #4] + 1690: 7041 strb r1, [r0, #1] + 1692: e014 b 0x16be + 1694: 200a mov r0, #10 ; 0xa + 1696: 4468 add r0, sp + 1698: a903 add r1, sp, #12 ; 0xc + 169a: 466a mov r2, sp + 169c: 7a12 ldrb r2, [r2, #8] + 169e: f000 fb71 bl 0x1d84 + 16a2: 2800 cmp r0, #0 + 16a4: d0e0 beq 0x1668 + 16a6: 3801 sub r0, #1 + 16a8: 2800 cmp r0, #0 + 16aa: d0e9 beq 0x1680 + 16ac: 3801 sub r0, #1 + 16ae: 2800 cmp r0, #0 + 16b0: d0e8 beq 0x1684 + 16b2: 3801 sub r0, #1 + 16b4: 2800 cmp r0, #0 + 16b6: d0e7 beq 0x1688 + 16b8: 3801 sub r0, #1 + 16ba: 2800 cmp r0, #0 + 16bc: d0e6 beq 0x168c + 16be: b004 add sp, #16 ; 0x10 + 16c0: bd00 pop {pc} + 16c2: b084 sub sp, #16 ; 0x10 + 16c4: 9101 str r1, [sp, #4] + 16c6: 9000 str r0, [sp, #0] + 16c8: 9901 ldr r1, [sp, #4] + 16ca: 200a mov r0, #10 ; 0xa + 16cc: 7008 strb r0, [r1, #0] + 16ce: 9801 ldr r0, [sp, #4] + 16d0: 2100 mov r1, #0 + 16d2: 7041 strb r1, [r0, #1] + 16d4: 4669 mov r1, sp + 16d6: 9800 ldr r0, [sp, #0] + 16d8: 8880 ldrh r0, [r0, #4] + 16da: 8108 strh r0, [r1, #8] + 16dc: 9800 ldr r0, [sp, #0] + 16de: 88c0 ldrh r0, [r0, #6] + 16e0: 8148 strh r0, [r1, #10] ; 0xa + 16e2: 4668 mov r0, sp + 16e4: 8941 ldrh r1, [r0, #10] ; 0xa + 16e6: 8900 ldrh r0, [r0, #8] + 16e8: 0400 lsl r0, r0, #16 + 16ea: 1808 add r0, r1, r0 + 16ec: 9003 str r0, [sp, #12] ; 0xc + 16ee: 9803 ldr r0, [sp, #12] ; 0xc + 16f0: b004 add sp, #16 ; 0x10 + 16f2: 4770 bx lr + 16f4: b085 sub sp, #20 ; 0x14 + 16f6: 9303 str r3, [sp, #12] ; 0xc + 16f8: 9202 str r2, [sp, #8] + 16fa: 9101 str r1, [sp, #4] + 16fc: 4669 mov r1, sp + 16fe: 7008 strb r0, [r1, #0] + 1700: 48ea ldr r0, =0x83ff19 ; via 0x1aac + 1702: 7809 ldrb r1, [r1, #0] + 1704: 7802 ldrb r2, [r0, #0] + 1706: 1889 add r1, r1, r2 + 1708: 7001 strb r1, [r0, #0] + 170a: 48e9 ldr r0, =0x83ff1a ; via 0x1ab0 + 170c: 7800 ldrb r0, [r0, #0] + 170e: 2800 cmp r0, #0 + 1710: d00e beq 0x1730 + 1712: 48e8 ldr r0, =0x83ff26 ; via 0x1ab4 + 1714: 4669 mov r1, sp + 1716: 780a ldrb r2, [r1, #0] + 1718: 8801 ldrh r1, [r0, #0] + 171a: 1851 add r1, r2, r1 + 171c: 8001 strh r1, [r0, #0] + 171e: 9903 ldr r1, [sp, #12] ; 0xc + 1720: 48e4 ldr r0, =0x83ff26 ; via 0x1ab4 + 1722: 8800 ldrh r0, [r0, #0] + 1724: 8008 strh r0, [r1, #0] + 1726: 9801 ldr r0, [sp, #4] + 1728: 2100 mov r1, #0 + 172a: 6001 str r1, [r0, #0] + 172c: 2000 mov r0, #0 + 172e: e009 b 0x1744 + 1730: 9902 ldr r1, [sp, #8] + 1732: 6808 ldr r0, [r1, #0] + 1734: 3002 add r0, #2 + 1736: 6008 str r0, [r1, #0] + 1738: 49de ldr r1, =0x83ff26 ; via 0x1ab4 + 173a: 4668 mov r0, sp + 173c: 7800 ldrb r0, [r0, #0] + 173e: 0200 lsl r0, r0, #8 + 1740: 8008 strh r0, [r1, #0] + 1742: 2001 mov r0, #1 + 1744: 9004 str r0, [sp, #16] ; 0x10 + 1746: 2001 mov r0, #1 + 1748: 49d9 ldr r1, =0x83ff1a ; via 0x1ab0 + 174a: 7809 ldrb r1, [r1, #0] + 174c: 4388 bic r0, r1 + 174e: 49d8 ldr r1, =0x83ff1a ; via 0x1ab0 + 1750: 7008 strb r0, [r1, #0] + 1752: 48d9 ldr r0, =0x83ff24 ; via 0x1ab8 + 1754: 7801 ldrb r1, [r0, #0] + 1756: 3901 sub r1, #1 + 1758: 7001 strb r1, [r0, #0] + 175a: 48d7 ldr r0, =0x83ff24 ; via 0x1ab8 + 175c: 7800 ldrb r0, [r0, #0] + 175e: 2800 cmp r0, #0 + 1760: d102 bne 0x1768 + 1762: 48d6 ldr r0, =0x83ff20 ; via 0x1abc + 1764: 2106 mov r1, #6 + 1766: 6001 str r1, [r0, #0] + 1768: 9804 ldr r0, [sp, #16] ; 0x10 + 176a: b005 add sp, #20 ; 0x14 + 176c: 46f7 mov pc, lr + 176e: b083 sub sp, #12 ; 0xc + 1770: 9101 str r1, [sp, #4] + 1772: 4669 mov r1, sp + 1774: 7008 strb r0, [r1, #0] + 1776: 2001 mov r0, #1 + 1778: 9002 str r0, [sp, #8] + 177a: 48d1 ldr r0, =0x83ff1b ; via 0x1ac0 + 177c: 7800 ldrb r0, [r0, #0] + 177e: 2800 cmp r0, #0 + 1780: d10a bne 0x1798 + 1782: 4668 mov r0, sp + 1784: 7800 ldrb r0, [r0, #0] + 1786: 2853 cmp r0, #83 ; 0x53 + 1788: d102 bne 0x1790 + 178a: 48cd ldr r0, =0x83ff1b ; via 0x1ac0 + 178c: 2101 mov r1, #1 + 178e: e01a b 0x17c6 + 1790: 2101 mov r1, #1 + 1792: 9801 ldr r0, [sp, #4] + 1794: 6001 str r1, [r0, #0] + 1796: e03b b 0x1810 + 1798: 49c9 ldr r1, =0x83ff1b ; via 0x1ac0 + 179a: 2000 mov r0, #0 + 179c: 7008 strb r0, [r1, #0] + 179e: 4668 mov r0, sp + 17a0: 7800 ldrb r0, [r0, #0] + 17a2: 2830 cmp r0, #48 ; 0x30 + 17a4: d111 bne 0x17ca + 17a6: 48c7 ldr r0, =0x83ff18 ; via 0x1ac4 + 17a8: 7800 ldrb r0, [r0, #0] + 17aa: 2800 cmp r0, #0 + 17ac: d006 beq 0x17bc + 17ae: 9901 ldr r1, [sp, #4] + 17b0: 2001 mov r0, #1 + 17b2: 6008 str r0, [r1, #0] + 17b4: 49c3 ldr r1, =0x83ff18 ; via 0x1ac4 + 17b6: 2000 mov r0, #0 + 17b8: 7008 strb r0, [r1, #0] + 17ba: e02a b 0x1812 + 17bc: 48bf ldr r0, =0x83ff20 ; via 0x1abc + 17be: 2102 mov r1, #2 + 17c0: 6001 str r1, [r0, #0] + 17c2: 48ef ldr r0, =0x83ff1c ; via 0x1b80 + 17c4: 2100 mov r1, #0 + 17c6: 7001 strb r1, [r0, #0] + 17c8: e024 b 0x1814 + 17ca: 4668 mov r0, sp + 17cc: 7800 ldrb r0, [r0, #0] + 17ce: 2833 cmp r0, #51 ; 0x33 + 17d0: d105 bne 0x17de + 17d2: 48bc ldr r0, =0x83ff18 ; via 0x1ac4 + 17d4: 7800 ldrb r0, [r0, #0] + 17d6: 2800 cmp r0, #0 + 17d8: d0da beq 0x1790 + 17da: 2004 mov r0, #4 + 17dc: e00c b 0x17f8 + 17de: 4668 mov r0, sp + 17e0: 7800 ldrb r0, [r0, #0] + 17e2: 2837 cmp r0, #55 ; 0x37 + 17e4: d10e bne 0x1804 + 17e6: 48b7 ldr r0, =0x83ff18 ; via 0x1ac4 + 17e8: 7800 ldrb r0, [r0, #0] + 17ea: 2800 cmp r0, #0 + 17ec: d103 bne 0x17f6 + 17ee: 9901 ldr r1, [sp, #4] + 17f0: 2001 mov r0, #1 + 17f2: 6008 str r0, [r1, #0] + 17f4: e00c b 0x1810 + 17f6: 2003 mov r0, #3 + 17f8: 49b0 ldr r1, =0x83ff20 ; via 0x1abc + 17fa: 6008 str r0, [r1, #0] + 17fc: 2000 mov r0, #0 + 17fe: 49e0 ldr r1, =0x83ff1c ; via 0x1b80 + 1800: 7008 strb r0, [r1, #0] + 1802: e007 b 0x1814 + 1804: 9901 ldr r1, [sp, #4] + 1806: 2001 mov r0, #1 + 1808: 6008 str r0, [r1, #0] + 180a: 48ae ldr r0, =0x83ff18 ; via 0x1ac4 + 180c: 2100 mov r1, #0 + 180e: 7001 strb r1, [r0, #0] + 1810: 2000 mov r0, #0 + 1812: 9002 str r0, [sp, #8] + 1814: 9802 ldr r0, [sp, #8] + 1816: b003 add sp, #12 ; 0xc + 1818: 46f7 mov pc, lr + 181a: b083 sub sp, #12 ; 0xc + 181c: 9101 str r1, [sp, #4] + 181e: 4669 mov r1, sp + 1820: 7008 strb r0, [r1, #0] + 1822: 2001 mov r0, #1 + 1824: 9002 str r0, [sp, #8] + 1826: 49d7 ldr r1, =0x830 ; via 0x1b84 + 1828: 48d5 ldr r0, =0x83ff1c ; via 0x1b80 + 182a: 7800 ldrb r0, [r0, #0] + 182c: 0080 lsl r0, r0, #2 + 182e: 5808 ldr r0, [r1, r0] + 1830: 4669 mov r1, sp + 1832: 7809 ldrb r1, [r1, #0] + 1834: 4281 cmp r1, r0 + 1836: d10d bne 0x1854 + 1838: 49d1 ldr r1, =0x83ff1c ; via 0x1b80 + 183a: 7808 ldrb r0, [r1, #0] + 183c: 3001 add r0, #1 + 183e: 7008 strb r0, [r1, #0] + 1840: 48cf ldr r0, =0x83ff1c ; via 0x1b80 + 1842: 7800 ldrb r0, [r0, #0] + 1844: 2807 cmp r0, #7 + 1846: d10d bne 0x1864 + 1848: 489c ldr r0, =0x83ff20 ; via 0x1abc + 184a: 2101 mov r1, #1 + 184c: 6001 str r1, [r0, #0] + 184e: 489d ldr r0, =0x83ff18 ; via 0x1ac4 + 1850: 7001 strb r1, [r0, #0] + 1852: e007 b 0x1864 + 1854: 9801 ldr r0, [sp, #4] + 1856: 2101 mov r1, #1 + 1858: 6001 str r1, [r0, #0] + 185a: 4998 ldr r1, =0x83ff20 ; via 0x1abc + 185c: 2001 mov r0, #1 + 185e: 6008 str r0, [r1, #0] + 1860: 2000 mov r0, #0 + 1862: 9002 str r0, [sp, #8] + 1864: 9802 ldr r0, [sp, #8] + 1866: b003 add sp, #12 ; 0xc + 1868: 46f7 mov pc, lr + 186a: b083 sub sp, #12 ; 0xc + 186c: 9101 str r1, [sp, #4] + 186e: 4669 mov r1, sp + 1870: 7008 strb r0, [r1, #0] + 1872: 2001 mov r0, #1 + 1874: 9002 str r0, [sp, #8] + 1876: 49c4 ldr r1, =0x84c ; via 0x1b88 + 1878: 48c1 ldr r0, =0x83ff1c ; via 0x1b80 + 187a: 7800 ldrb r0, [r0, #0] + 187c: 0080 lsl r0, r0, #2 + 187e: 5808 ldr r0, [r1, r0] + 1880: 4669 mov r1, sp + 1882: 7809 ldrb r1, [r1, #0] + 1884: 4281 cmp r1, r0 + 1886: d112 bne 0x18ae + 1888: 49bd ldr r1, =0x83ff1c ; via 0x1b80 + 188a: 7808 ldrb r0, [r1, #0] + 188c: 3001 add r0, #1 + 188e: 7008 strb r0, [r1, #0] + 1890: 48bb ldr r0, =0x83ff1c ; via 0x1b80 + 1892: 7800 ldrb r0, [r0, #0] + 1894: 2806 cmp r0, #6 + 1896: d114 bne 0x18c2 + 1898: 9801 ldr r0, [sp, #4] + 189a: 2102 mov r1, #2 + 189c: 6001 str r1, [r0, #0] + 189e: 4887 ldr r0, =0x83ff20 ; via 0x1abc + 18a0: 2101 mov r1, #1 + 18a2: 6001 str r1, [r0, #0] + 18a4: 4887 ldr r0, =0x83ff18 ; via 0x1ac4 + 18a6: 2100 mov r1, #0 + 18a8: 7001 strb r1, [r0, #0] + 18aa: 2000 mov r0, #0 + 18ac: e008 b 0x18c0 + 18ae: 9801 ldr r0, [sp, #4] + 18b0: 2101 mov r1, #1 + 18b2: 6001 str r1, [r0, #0] + 18b4: 4981 ldr r1, =0x83ff20 ; via 0x1abc + 18b6: 2001 mov r0, #1 + 18b8: 6008 str r0, [r1, #0] + 18ba: 4982 ldr r1, =0x83ff18 ; via 0x1ac4 + 18bc: 2000 mov r0, #0 + 18be: 7008 strb r0, [r1, #0] + 18c0: 9002 str r0, [sp, #8] + 18c2: 9802 ldr r0, [sp, #8] + 18c4: b003 add sp, #12 ; 0xc + 18c6: 46f7 mov pc, lr + 18c8: b081 sub sp, #4 + 18ca: 4669 mov r1, sp + 18cc: 7008 strb r0, [r1, #0] + 18ce: 497a ldr r1, =0x83ff24 ; via 0x1ab8 + 18d0: 4668 mov r0, sp + 18d2: 7800 ldrb r0, [r0, #0] + 18d4: 3801 sub r0, #1 + 18d6: 7008 strb r0, [r1, #0] + 18d8: 4874 ldr r0, =0x83ff19 ; via 0x1aac + 18da: 4669 mov r1, sp + 18dc: 7809 ldrb r1, [r1, #0] + 18de: 7001 strb r1, [r0, #0] + 18e0: 48a7 ldr r0, =0x83ff1c ; via 0x1b80 + 18e2: 2100 mov r1, #0 + 18e4: 7001 strb r1, [r0, #0] + 18e6: 48e3 ldr r0, =0x83ff14 ; via 0x1c74 + 18e8: 6001 str r1, [r0, #0] + 18ea: 4874 ldr r0, =0x83ff20 ; via 0x1abc + 18ec: 2105 mov r1, #5 + 18ee: 6001 str r1, [r0, #0] + 18f0: b001 add sp, #4 + 18f2: 46f7 mov pc, lr + 18f4: b084 sub sp, #16 ; 0x10 + 18f6: 9202 str r2, [sp, #8] + 18f8: 9101 str r1, [sp, #4] + 18fa: 4669 mov r1, sp + 18fc: 7008 strb r0, [r1, #0] + 18fe: 2001 mov r0, #1 + 1900: 9003 str r0, [sp, #12] ; 0xc + 1902: 496d ldr r1, =0x83ff24 ; via 0x1ab8 + 1904: 7808 ldrb r0, [r1, #0] + 1906: 3801 sub r0, #1 + 1908: 7008 strb r0, [r1, #0] + 190a: 486b ldr r0, =0x83ff24 ; via 0x1ab8 + 190c: 7800 ldrb r0, [r0, #0] + 190e: 2800 cmp r0, #0 + 1910: d026 beq 0x1960 + 1912: 4866 ldr r0, =0x83ff19 ; via 0x1aac + 1914: 4669 mov r1, sp + 1916: 780a ldrb r2, [r1, #0] + 1918: 7801 ldrb r1, [r0, #0] + 191a: 1851 add r1, r2, r1 + 191c: 7001 strb r1, [r0, #0] + 191e: 4998 ldr r1, =0x83ff1c ; via 0x1b80 + 1920: 7808 ldrb r0, [r1, #0] + 1922: 3001 add r0, #1 + 1924: 7008 strb r0, [r1, #0] + 1926: 49d3 ldr r1, =0x83ff14 ; via 0x1c74 + 1928: 2204 mov r2, #4 + 192a: 4895 ldr r0, =0x83ff1c ; via 0x1b80 + 192c: 7800 ldrb r0, [r0, #0] + 192e: 1a10 sub r0, r2, r0 + 1930: 00c2 lsl r2, r0, #3 + 1932: 4668 mov r0, sp + 1934: 7800 ldrb r0, [r0, #0] + 1936: 4090 lsl r0, r2 + 1938: 680a ldr r2, [r1, #0] + 193a: 1880 add r0, r0, r2 + 193c: 6008 str r0, [r1, #0] + 193e: 4890 ldr r0, =0x83ff1c ; via 0x1b80 + 1940: 7800 ldrb r0, [r0, #0] + 1942: 2804 cmp r0, #4 + 1944: d117 bne 0x1976 + 1946: 9902 ldr r1, [sp, #8] + 1948: 48ca ldr r0, =0x83ff14 ; via 0x1c74 + 194a: 6800 ldr r0, [r0, #0] + 194c: 3802 sub r0, #2 + 194e: 6008 str r0, [r1, #0] + 1950: 485a ldr r0, =0x83ff20 ; via 0x1abc + 1952: 2100 mov r1, #0 + 1954: 6001 str r1, [r0, #0] + 1956: 4856 ldr r0, =0x83ff1a ; via 0x1ab0 + 1958: 7001 strb r1, [r0, #0] + 195a: 4889 ldr r0, =0x83ff1c ; via 0x1b80 + 195c: 7001 strb r1, [r0, #0] + 195e: e00a b 0x1976 + 1960: 9801 ldr r0, [sp, #4] + 1962: 2101 mov r1, #1 + 1964: 6001 str r1, [r0, #0] + 1966: 4955 ldr r1, =0x83ff20 ; via 0x1abc + 1968: 2001 mov r0, #1 + 196a: 6008 str r0, [r1, #0] + 196c: 4855 ldr r0, =0x83ff18 ; via 0x1ac4 + 196e: 2100 mov r1, #0 + 1970: 7001 strb r1, [r0, #0] + 1972: 2000 mov r0, #0 + 1974: 9003 str r0, [sp, #12] ; 0xc + 1976: 9803 ldr r0, [sp, #12] ; 0xc + 1978: b004 add sp, #16 ; 0x10 + 197a: 46f7 mov pc, lr + 197c: b083 sub sp, #12 ; 0xc + 197e: 9101 str r1, [sp, #4] + 1980: 4669 mov r1, sp + 1982: 7008 strb r0, [r1, #0] + 1984: 2001 mov r0, #1 + 1986: 9002 str r0, [sp, #8] + 1988: 494c ldr r1, =0x83ff20 ; via 0x1abc + 198a: 6008 str r0, [r1, #0] + 198c: 20ff mov r0, #255 ; 0xff + 198e: 4669 mov r1, sp + 1990: 7809 ldrb r1, [r1, #0] + 1992: 4388 bic r0, r1 + 1994: 4945 ldr r1, =0x83ff19 ; via 0x1aac + 1996: 7809 ldrb r1, [r1, #0] + 1998: 4281 cmp r1, r0 + 199a: d007 beq 0x19ac + 199c: 9801 ldr r0, [sp, #4] + 199e: 2101 mov r1, #1 + 19a0: 6001 str r1, [r0, #0] + 19a2: 4848 ldr r0, =0x83ff18 ; via 0x1ac4 + 19a4: 2100 mov r1, #0 + 19a6: 7001 strb r1, [r0, #0] + 19a8: 2000 mov r0, #0 + 19aa: 9002 str r0, [sp, #8] + 19ac: 9802 ldr r0, [sp, #8] + 19ae: b003 add sp, #12 ; 0xc + 19b0: 46f7 mov pc, lr + 19b2: b085 sub sp, #20 ; 0x14 + 19b4: 466b mov r3, sp + 19b6: 719a strb r2, [r3, #6] + 19b8: 466a mov r2, sp + 19ba: 8091 strh r1, [r2, #4] + 19bc: 9000 str r0, [sp, #0] + 19be: 9800 ldr r0, [sp, #0] + 19c0: 9002 str r0, [sp, #8] + 19c2: 4669 mov r1, sp + 19c4: 4668 mov r0, sp + 19c6: 8880 ldrh r0, [r0, #4] + 19c8: 8208 strh r0, [r1, #16] ; 0x10 + 19ca: 4668 mov r0, sp + 19cc: 8a00 ldrh r0, [r0, #16] ; 0x10 + 19ce: 2800 cmp r0, #0 + 19d0: d01e beq 0x1a10 + 19d2: 49e3 ldr r1, =0x864 ; via 0x1d60 + 19d4: 4668 mov r0, sp + 19d6: 7980 ldrb r0, [r0, #6] + 19d8: 0080 lsl r0, r0, #2 + 19da: 5808 ldr r0, [r1, r0] + 19dc: 7941 ldrb r1, [r0, #5] + 19de: 4668 mov r0, sp + 19e0: 7301 strb r1, [r0, #12] ; 0xc + 19e2: 7b00 ldrb r0, [r0, #12] ; 0xc + 19e4: 0980 lsr r0, r0, #6 + 19e6: d3f4 bcc 0x19d2 + 19e8: 49dd ldr r1, =0x864 ; via 0x1d60 + 19ea: 4668 mov r0, sp + 19ec: 7980 ldrb r0, [r0, #6] + 19ee: 0080 lsl r0, r0, #2 + 19f0: 5809 ldr r1, [r1, r0] + 19f2: 9802 ldr r0, [sp, #8] + 19f4: 7800 ldrb r0, [r0, #0] + 19f6: 7008 strb r0, [r1, #0] + 19f8: 9802 ldr r0, [sp, #8] + 19fa: 3001 add r0, #1 + 19fc: 9002 str r0, [sp, #8] + 19fe: 4669 mov r1, sp + 1a00: 4668 mov r0, sp + 1a02: 8a00 ldrh r0, [r0, #16] ; 0x10 + 1a04: 3801 sub r0, #1 + 1a06: 8208 strh r0, [r1, #16] ; 0x10 + 1a08: 4668 mov r0, sp + 1a0a: 8a00 ldrh r0, [r0, #16] ; 0x10 + 1a0c: 2800 cmp r0, #0 + 1a0e: d1e0 bne 0x19d2 + 1a10: b005 add sp, #20 ; 0x14 + 1a12: 46f7 mov pc, lr + 1a14: b082 sub sp, #8 + 1a16: 4669 mov r1, sp + 1a18: 7008 strb r0, [r1, #0] + 1a1a: 2000 mov r0, #0 + 1a1c: 8088 strh r0, [r1, #4] + 1a1e: 4668 mov r0, sp + 1a20: 8881 ldrh r1, [r0, #4] + 1a22: 20ff mov r0, #255 ; 0xff + 1a24: 30f5 add r0, #245 ; 0xf5 + 1a26: 4281 cmp r1, r0 + 1a28: da21 bge 0x1a6e + 1a2a: 4669 mov r1, sp + 1a2c: 4668 mov r0, sp + 1a2e: 8880 ldrh r0, [r0, #4] + 1a30: 3001 add r0, #1 + 1a32: 8088 strh r0, [r1, #4] + 1a34: 48ca ldr r0, =0x864 ; via 0x1d60 + 1a36: 7809 ldrb r1, [r1, #0] + 1a38: 0089 lsl r1, r1, #2 + 1a3a: 5840 ldr r0, [r0, r1] + 1a3c: 7940 ldrb r0, [r0, #5] + 1a3e: 4669 mov r1, sp + 1a40: 7048 strb r0, [r1, #1] + 1a42: 4668 mov r0, sp + 1a44: 7840 ldrb r0, [r0, #1] + 1a46: 0840 lsr r0, r0, #1 + 1a48: d30b bcc 0x1a62 + 1a4a: 49c5 ldr r1, =0x864 ; via 0x1d60 + 1a4c: 4668 mov r0, sp + 1a4e: 7800 ldrb r0, [r0, #0] + 1a50: 0080 lsl r0, r0, #2 + 1a52: 5808 ldr r0, [r1, r0] + 1a54: 7800 ldrb r0, [r0, #0] + 1a56: 0600 lsl r0, r0, #24 + 1a58: 0e00 lsr r0, r0, #24 + 1a5a: 4669 mov r1, sp + 1a5c: 7088 strb r0, [r1, #2] + 1a5e: 2000 mov r0, #0 + 1a60: 8088 strh r0, [r1, #4] + 1a62: 4668 mov r0, sp + 1a64: 8881 ldrh r1, [r0, #4] + 1a66: 20ff mov r0, #255 ; 0xff + 1a68: 30f5 add r0, #245 ; 0xf5 + 1a6a: 4281 cmp r1, r0 + 1a6c: dbdd blt 0x1a2a + 1a6e: b002 add sp, #8 + 1a70: 4770 bx lr + 1a72: b500 push {lr} + 1a74: b08c sub sp, #48 ; 0x30 + 1a76: 466a mov r2, sp + 1a78: 7111 strb r1, [r2, #4] + 1a7a: 9000 str r0, [sp, #0] + 1a7c: 2001 mov r0, #1 + 1a7e: 9002 str r0, [sp, #8] + 1a80: 9800 ldr r0, [sp, #0] + 1a82: a904 add r1, sp, #16 ; 0x10 + 1a84: aa03 add r2, sp, #12 ; 0xc + 1a86: f7ff fd75 bl 0x1574 + 1a8a: 4668 mov r0, sp + 1a8c: 8980 ldrh r0, [r0, #12] ; 0xc + 1a8e: 2820 cmp r0, #32 ; 0x20 + 1a90: dd02 ble 0x1a98 + 1a92: 2000 mov r0, #0 + 1a94: 9002 str r0, [sp, #8] + 1a96: e006 b 0x1aa6 + 1a98: a804 add r0, sp, #16 ; 0x10 + 1a9a: 4669 mov r1, sp + 1a9c: 8989 ldrh r1, [r1, #12] ; 0xc + 1a9e: 466a mov r2, sp + 1aa0: 7912 ldrb r2, [r2, #4] + 1aa2: f7ff ff86 bl 0x19b2 + 1aa6: 9802 ldr r0, [sp, #8] + 1aa8: b00c add sp, #48 ; 0x30 + 1aaa: bd00 pop {pc} + 1aac: ff19 + 1aae: 0083 lsl r3, r0, #2 + 1ab0: ff1a + 1ab2: 0083 lsl r3, r0, #2 + 1ab4: ff26 + 1ab6: 0083 lsl r3, r0, #2 + 1ab8: ff24 + 1aba: 0083 lsl r3, r0, #2 + 1abc: ff20 + 1abe: 0083 lsl r3, r0, #2 + 1ac0: ff1b + 1ac2: 0083 lsl r3, r0, #2 + 1ac4: ff18 + 1ac6: 0083 lsl r3, r0, #2 + 1ac8: b500 push {lr} + 1aca: b084 sub sp, #16 ; 0x10 + 1acc: 9101 str r1, [sp, #4] + 1ace: 9000 str r0, [sp, #0] + 1ad0: 4669 mov r1, sp + 1ad2: 20ff mov r0, #255 ; 0xff + 1ad4: 7308 strb r0, [r1, #12] ; 0xc + 1ad6: 2000 mov r0, #0 + 1ad8: 9002 str r0, [sp, #8] + 1ada: 4669 mov r1, sp + 1adc: 48a1 ldr r0, =0xffff5805 ; via 0x1d64 + 1ade: 7800 ldrb r0, [r0, #0] + 1ae0: 7348 strb r0, [r1, #13] ; 0xd + 1ae2: 48a1 ldr r0, =0xffff5005 ; via 0x1d68 + 1ae4: 7800 ldrb r0, [r0, #0] + 1ae6: 7388 strb r0, [r1, #14] ; 0xe + 1ae8: 4668 mov r0, sp + 1aea: 7b40 ldrb r0, [r0, #13] ; 0xd + 1aec: 0840 lsr r0, r0, #1 + 1aee: d206 bcs 0x1afe + 1af0: 4668 mov r0, sp + 1af2: 7b80 ldrb r0, [r0, #14] ; 0xe + 1af4: 0840 lsr r0, r0, #1 + 1af6: d202 bcs 0x1afe + 1af8: 9801 ldr r0, [sp, #4] + 1afa: 2800 cmp r0, #0 + 1afc: d0ed beq 0x1ada + 1afe: 4668 mov r0, sp + 1b00: 7b40 ldrb r0, [r0, #13] ; 0xd + 1b02: 0840 lsr r0, r0, #1 + 1b04: d316 bcc 0x1b34 + 1b06: 4669 mov r1, sp + 1b08: 2000 mov r0, #0 + 1b0a: 7308 strb r0, [r1, #12] ; 0xc + 1b0c: 4994 ldr r1, =0x864 ; via 0x1d60 + 1b0e: 4668 mov r0, sp + 1b10: 7b00 ldrb r0, [r0, #12] ; 0xc + 1b12: 0080 lsl r0, r0, #2 + 1b14: 5808 ldr r0, [r1, r0] + 1b16: 7800 ldrb r0, [r0, #0] + 1b18: 0600 lsl r0, r0, #24 + 1b1a: 0e00 lsr r0, r0, #24 + 1b1c: 4669 mov r1, sp + 1b1e: 73c8 strb r0, [r1, #15] ; 0xf + 1b20: 4668 mov r0, sp + 1b22: 7bc0 ldrb r0, [r0, #15] ; 0xf + 1b24: 9900 ldr r1, [sp, #0] + 1b26: f7ff fc9f bl 0x1468 + 1b2a: 9002 str r0, [sp, #8] + 1b2c: 9802 ldr r0, [sp, #8] + 1b2e: 2800 cmp r0, #0 + 1b30: d11c bne 0x1b6c + 1b32: e018 b 0x1b66 + 1b34: 4668 mov r0, sp + 1b36: 7b80 ldrb r0, [r0, #14] ; 0xe + 1b38: 0840 lsr r0, r0, #1 + 1b3a: d317 bcc 0x1b6c + 1b3c: 4669 mov r1, sp + 1b3e: 2001 mov r0, #1 + 1b40: 7308 strb r0, [r1, #12] ; 0xc + 1b42: 4987 ldr r1, =0x864 ; via 0x1d60 + 1b44: 4668 mov r0, sp + 1b46: 7b00 ldrb r0, [r0, #12] ; 0xc + 1b48: 0080 lsl r0, r0, #2 + 1b4a: 5808 ldr r0, [r1, r0] + 1b4c: 7800 ldrb r0, [r0, #0] + 1b4e: 0600 lsl r0, r0, #24 + 1b50: 0e01 lsr r1, r0, #24 + 1b52: 4668 mov r0, sp + 1b54: 73c1 strb r1, [r0, #15] ; 0xf + 1b56: 7bc0 ldrb r0, [r0, #15] ; 0xf + 1b58: 9900 ldr r1, [sp, #0] + 1b5a: f7ff fc85 bl 0x1468 + 1b5e: 9002 str r0, [sp, #8] + 1b60: 9802 ldr r0, [sp, #8] + 1b62: 2800 cmp r0, #0 + 1b64: d102 bne 0x1b6c + 1b66: 20ff mov r0, #255 ; 0xff + 1b68: 4669 mov r1, sp + 1b6a: 7308 strb r0, [r1, #12] ; 0xc + 1b6c: 9802 ldr r0, [sp, #8] + 1b6e: 2800 cmp r0, #0 + 1b70: d102 bne 0x1b78 + 1b72: 9801 ldr r0, [sp, #4] + 1b74: 2800 cmp r0, #0 + 1b76: d0b0 beq 0x1ada + 1b78: 4668 mov r0, sp + 1b7a: 7b00 ldrb r0, [r0, #12] ; 0xc + 1b7c: b004 add sp, #16 ; 0x10 + 1b7e: bd00 pop {pc} + 1b80: ff1c + 1b82: 0083 lsl r3, r0, #2 + 1b84: 0830 lsr r0, r6, #32 + 1b86: 0000 lsl r0, r0, #0 + 1b88: 084c lsr r4, r1, #1 + 1b8a: 0000 lsl r0, r0, #0 + 1b8c: b500 push {lr} + 1b8e: b086 sub sp, #24 ; 0x18 + 1b90: 466b mov r3, sp + 1b92: 721a strb r2, [r3, #8] + 1b94: 9101 str r1, [sp, #4] + 1b96: 9000 str r0, [sp, #0] + 1b98: 2001 mov r0, #1 + 1b9a: 9004 str r0, [sp, #16] ; 0x10 + 1b9c: 9804 ldr r0, [sp, #16] ; 0x10 + 1b9e: 2800 cmp r0, #0 + 1ba0: d05b beq 0x1c5a + 1ba2: 496f ldr r1, =0x864 ; via 0x1d60 + 1ba4: 4668 mov r0, sp + 1ba6: 7a00 ldrb r0, [r0, #8] + 1ba8: 0080 lsl r0, r0, #2 + 1baa: 5808 ldr r0, [r1, r0] + 1bac: 7941 ldrb r1, [r0, #5] + 1bae: 4668 mov r0, sp + 1bb0: 7301 strb r1, [r0, #12] ; 0xc + 1bb2: 7b00 ldrb r0, [r0, #12] ; 0xc + 1bb4: 0840 lsr r0, r0, #1 + 1bb6: d3f4 bcc 0x1ba2 + 1bb8: 4969 ldr r1, =0x864 ; via 0x1d60 + 1bba: 4668 mov r0, sp + 1bbc: 7a00 ldrb r0, [r0, #8] + 1bbe: 0080 lsl r0, r0, #2 + 1bc0: 5808 ldr r0, [r1, r0] + 1bc2: 7800 ldrb r0, [r0, #0] + 1bc4: 0600 lsl r0, r0, #24 + 1bc6: 0e01 lsr r1, r0, #24 + 1bc8: 4668 mov r0, sp + 1bca: 7341 strb r1, [r0, #13] ; 0xd + 1bcc: e02c b 0x1c28 + 1bce: 4668 mov r0, sp + 1bd0: 7b40 ldrb r0, [r0, #13] ; 0xd + 1bd2: a905 add r1, sp, #20 ; 0x14 + 1bd4: 9a00 ldr r2, [sp, #0] + 1bd6: 9b01 ldr r3, [sp, #4] + 1bd8: f7ff fd8c bl 0x16f4 + 1bdc: 9004 str r0, [sp, #16] ; 0x10 + 1bde: e039 b 0x1c54 + 1be0: 4668 mov r0, sp + 1be2: 7b40 ldrb r0, [r0, #13] ; 0xd + 1be4: a905 add r1, sp, #20 ; 0x14 + 1be6: f7ff fdc2 bl 0x176e + 1bea: e7f7 b 0x1bdc + 1bec: 4668 mov r0, sp + 1bee: 7b40 ldrb r0, [r0, #13] ; 0xd + 1bf0: a905 add r1, sp, #20 ; 0x14 + 1bf2: f7ff fe12 bl 0x181a + 1bf6: e7f1 b 0x1bdc + 1bf8: 4668 mov r0, sp + 1bfa: 7b40 ldrb r0, [r0, #13] ; 0xd + 1bfc: a905 add r1, sp, #20 ; 0x14 + 1bfe: f7ff fe34 bl 0x186a + 1c02: e7eb b 0x1bdc + 1c04: 4668 mov r0, sp + 1c06: 7b40 ldrb r0, [r0, #13] ; 0xd + 1c08: f7ff fe5e bl 0x18c8 + 1c0c: e022 b 0x1c54 + 1c0e: 4668 mov r0, sp + 1c10: 7b40 ldrb r0, [r0, #13] ; 0xd + 1c12: a905 add r1, sp, #20 ; 0x14 + 1c14: 9a00 ldr r2, [sp, #0] + 1c16: f7ff fe6d bl 0x18f4 + 1c1a: e7df b 0x1bdc + 1c1c: 4668 mov r0, sp + 1c1e: 7b40 ldrb r0, [r0, #13] ; 0xd + 1c20: a905 add r1, sp, #20 ; 0x14 + 1c22: f7ff feab bl 0x197c + 1c26: e7d9 b 0x1bdc + 1c28: 4850 ldr r0, =0x83ff20 ; via 0x1d6c + 1c2a: 6800 ldr r0, [r0, #0] + 1c2c: 2800 cmp r0, #0 + 1c2e: d0ce beq 0x1bce + 1c30: 3801 sub r0, #1 + 1c32: 2800 cmp r0, #0 + 1c34: d0d4 beq 0x1be0 + 1c36: 3801 sub r0, #1 + 1c38: 2800 cmp r0, #0 + 1c3a: d0d7 beq 0x1bec + 1c3c: 3801 sub r0, #1 + 1c3e: 2800 cmp r0, #0 + 1c40: d0da beq 0x1bf8 + 1c42: 3801 sub r0, #1 + 1c44: 2800 cmp r0, #0 + 1c46: d0dd beq 0x1c04 + 1c48: 3801 sub r0, #1 + 1c4a: 2800 cmp r0, #0 + 1c4c: d0df beq 0x1c0e + 1c4e: 3801 sub r0, #1 + 1c50: 2800 cmp r0, #0 + 1c52: d0e3 beq 0x1c1c + 1c54: 9804 ldr r0, [sp, #16] ; 0x10 + 1c56: 2800 cmp r0, #0 + 1c58: d1a3 bne 0x1ba2 + 1c5a: 9805 ldr r0, [sp, #20] ; 0x14 + 1c5c: b006 add sp, #24 ; 0x18 + 1c5e: bd00 pop {pc} + 1c60: 4942 ldr r1, =0x83ff20 ; via 0x1d6c + 1c62: 2001 mov r0, #1 + 1c64: 6008 str r0, [r1, #0] + 1c66: 4842 ldr r0, =0x83ff1b ; via 0x1d70 + 1c68: 2100 mov r1, #0 + 1c6a: 7001 strb r1, [r0, #0] + 1c6c: 4841 ldr r0, =0x83ff18 ; via 0x1d74 + 1c6e: 7001 strb r1, [r0, #0] + 1c70: 4770 bx lr + 1c72: 46c0 nop (mov r8, r8) + 1c74: ff14 + 1c76: 0083 lsl r3, r0, #2 + 1c78: b081 sub sp, #4 + 1c7a: 483f ldr r0, =0xffff5800 ; via 0x1d78 + 1c7c: 9000 str r0, [sp, #0] + 1c7e: 493f ldr r1, =0xffff6000 ; via 0x1d7c + 1c80: 2002 mov r0, #2 + 1c82: 880a ldrh r2, [r1, #0] + 1c84: 4310 orr r0, r2 + 1c86: 8008 strh r0, [r1, #0] + 1c88: 483c ldr r0, =0xffff6000 ; via 0x1d7c + 1c8a: 8801 ldrh r1, [r0, #0] + 1c8c: 0849 lsr r1, r1, #1 + 1c8e: 0049 lsl r1, r1, #1 + 1c90: 8001 strh r1, [r0, #0] + 1c92: 493a ldr r1, =0xffff6000 ; via 0x1d7c + 1c94: 8808 ldrh r0, [r1, #0] + 1c96: 2202 mov r2, #2 + 1c98: 4390 bic r0, r2 + 1c9a: 8008 strh r0, [r1, #0] + 1c9c: 9900 ldr r1, [sp, #0] + 1c9e: 2007 mov r0, #7 + 1ca0: 7208 strb r0, [r1, #8] + 1ca2: 9900 ldr r1, [sp, #0] + 1ca4: 20bf mov r0, #191 ; 0xbf + 1ca6: 70c8 strb r0, [r1, #3] + 1ca8: 9800 ldr r0, [sp, #0] + 1caa: 1c81 add r1, r0, #2 + 1cac: 2010 mov r0, #16 ; 0x10 + 1cae: 880a ldrh r2, [r1, #0] + 1cb0: 4310 orr r0, r2 + 1cb2: 8008 strh r0, [r1, #0] + 1cb4: 9800 ldr r0, [sp, #0] + 1cb6: 2180 mov r1, #128 ; 0x80 + 1cb8: 70c1 strb r1, [r0, #3] + 1cba: 9800 ldr r0, [sp, #0] + 1cbc: 2107 mov r1, #7 + 1cbe: 7081 strb r1, [r0, #2] + 1cc0: 9800 ldr r0, [sp, #0] + 1cc2: 21bf mov r1, #191 ; 0xbf + 1cc4: 70c1 strb r1, [r0, #3] + 1cc6: 9800 ldr r0, [sp, #0] + 1cc8: 2107 mov r1, #7 + 1cca: 7001 strb r1, [r0, #0] + 1ccc: 9800 ldr r0, [sp, #0] + 1cce: 2100 mov r1, #0 + 1cd0: 7041 strb r1, [r0, #1] + 1cd2: 9800 ldr r0, [sp, #0] + 1cd4: 2103 mov r1, #3 + 1cd6: 70c1 strb r1, [r0, #3] + 1cd8: 9800 ldr r0, [sp, #0] + 1cda: 2100 mov r1, #0 + 1cdc: 7201 strb r1, [r0, #8] + 1cde: 4828 ldr r0, =0xffff5000 ; via 0x1d80 + 1ce0: 9000 str r0, [sp, #0] + 1ce2: 9800 ldr r0, [sp, #0] + 1ce4: 2107 mov r1, #7 + 1ce6: 7201 strb r1, [r0, #8] + 1ce8: 9900 ldr r1, [sp, #0] + 1cea: 20bf mov r0, #191 ; 0xbf + 1cec: 70c8 strb r0, [r1, #3] + 1cee: 9800 ldr r0, [sp, #0] + 1cf0: 1c80 add r0, r0, #2 + 1cf2: 2110 mov r1, #16 ; 0x10 + 1cf4: 8802 ldrh r2, [r0, #0] + 1cf6: 4311 orr r1, r2 + 1cf8: 8001 strh r1, [r0, #0] + 1cfa: 9800 ldr r0, [sp, #0] + 1cfc: 2180 mov r1, #128 ; 0x80 + 1cfe: 70c1 strb r1, [r0, #3] + 1d00: 9800 ldr r0, [sp, #0] + 1d02: 2107 mov r1, #7 + 1d04: 7081 strb r1, [r0, #2] + 1d06: 9800 ldr r0, [sp, #0] + 1d08: 21bf mov r1, #191 ; 0xbf + 1d0a: 70c1 strb r1, [r0, #3] + 1d0c: 9800 ldr r0, [sp, #0] + 1d0e: 2107 mov r1, #7 + 1d10: 7001 strb r1, [r0, #0] + 1d12: 9800 ldr r0, [sp, #0] + 1d14: 2100 mov r1, #0 + 1d16: 7041 strb r1, [r0, #1] + 1d18: 9900 ldr r1, [sp, #0] + 1d1a: 2003 mov r0, #3 + 1d1c: 70c8 strb r0, [r1, #3] + 1d1e: 9800 ldr r0, [sp, #0] + 1d20: 2100 mov r1, #0 + 1d22: 7201 strb r1, [r0, #8] + 1d24: b001 add sp, #4 + 1d26: 4770 bx lr + 1d28: b081 sub sp, #4 + 1d2a: 4669 mov r1, sp + 1d2c: 7008 strb r0, [r1, #0] + 1d2e: 490c ldr r1, =0x864 ; via 0x1d60 + 1d30: 4668 mov r0, sp + 1d32: 7800 ldrb r0, [r0, #0] + 1d34: 0080 lsl r0, r0, #2 + 1d36: 5808 ldr r0, [r1, r0] + 1d38: 7941 ldrb r1, [r0, #5] + 1d3a: 4668 mov r0, sp + 1d3c: 7041 strb r1, [r0, #1] + 1d3e: 7840 ldrb r0, [r0, #1] + 1d40: 09c0 lsr r0, r0, #7 + 1d42: d20b bcs 0x1d5c + 1d44: 4806 ldr r0, =0x864 ; via 0x1d60 + 1d46: 4669 mov r1, sp + 1d48: 7809 ldrb r1, [r1, #0] + 1d4a: 0089 lsl r1, r1, #2 + 1d4c: 5840 ldr r0, [r0, r1] + 1d4e: 7940 ldrb r0, [r0, #5] + 1d50: 4669 mov r1, sp + 1d52: 7048 strb r0, [r1, #1] + 1d54: 4668 mov r0, sp + 1d56: 7840 ldrb r0, [r0, #1] + 1d58: 09c0 lsr r0, r0, #7 + 1d5a: d3f3 bcc 0x1d44 + 1d5c: b001 add sp, #4 + 1d5e: 4770 bx lr + 1d60: 0864 lsr r4, r4, #1 + 1d62: 0000 lsl r0, r0, #0 + 1d64: 5805 ldr r5, [r0, r0] + 1d66: ffff + 1d68: 5005 str r5, [r0, r0] + 1d6a: ffff + 1d6c: ff20 + 1d6e: 0083 lsl r3, r0, #2 + 1d70: ff1b + 1d72: 0083 lsl r3, r0, #2 + 1d74: ff18 + 1d76: 0083 lsl r3, r0, #2 + 1d78: 5800 ldr r0, [r0, r0] + 1d7a: ffff + 1d7c: 6000 str r0, [r0, #0] + 1d7e: ffff + 1d80: 5000 str r0, [r0, r0] + 1d82: ffff + 1d84: b500 push {lr} + 1d86: b087 sub sp, #28 ; 0x1c + 1d88: 466b mov r3, sp + 1d8a: 721a strb r2, [r3, #8] + 1d8c: 9101 str r1, [sp, #4] + 1d8e: 9000 str r0, [sp, #0] + 1d90: 9900 ldr r1, [sp, #0] + 1d92: 2000 mov r0, #0 + 1d94: 8008 strh r0, [r1, #0] + 1d96: 9801 ldr r0, [sp, #4] + 1d98: 2100 mov r1, #0 + 1d9a: 8001 strh r1, [r0, #0] + 1d9c: 2000 mov r0, #0 + 1d9e: 9003 str r0, [sp, #12] ; 0xc + 1da0: f7ff ff5e bl 0x1c60 + 1da4: a805 add r0, sp, #20 ; 0x14 + 1da6: a906 add r1, sp, #24 ; 0x18 + 1da8: 466a mov r2, sp + 1daa: 7a12 ldrb r2, [r2, #8] + 1dac: f7ff feee bl 0x1b8c + 1db0: 9004 str r0, [sp, #16] ; 0x10 + 1db2: 9804 ldr r0, [sp, #16] ; 0x10 + 1db4: 2800 cmp r0, #0 + 1db6: d11f bne 0x1df8 + 1db8: 9803 ldr r0, [sp, #12] ; 0xc + 1dba: 2800 cmp r0, #0 + 1dbc: d11c bne 0x1df8 + 1dbe: 9800 ldr r0, [sp, #0] + 1dc0: 4669 mov r1, sp + 1dc2: 8b0a ldrh r2, [r1, #24] ; 0x18 + 1dc4: 8801 ldrh r1, [r0, #0] + 1dc6: 1851 add r1, r2, r1 + 1dc8: 8001 strh r1, [r0, #0] + 1dca: 9905 ldr r1, [sp, #20] ; 0x14 + 1dcc: 4668 mov r0, sp + 1dce: 8b00 ldrh r0, [r0, #24] ; 0x18 + 1dd0: 8008 strh r0, [r1, #0] + 1dd2: 9801 ldr r0, [sp, #4] + 1dd4: 9905 ldr r1, [sp, #20] ; 0x14 + 1dd6: 8809 ldrh r1, [r1, #0] + 1dd8: 8802 ldrh r2, [r0, #0] + 1dda: 1889 add r1, r1, r2 + 1ddc: 8001 strh r1, [r0, #0] + 1dde: a805 add r0, sp, #20 ; 0x14 + 1de0: a906 add r1, sp, #24 ; 0x18 + 1de2: 466a mov r2, sp + 1de4: 7a12 ldrb r2, [r2, #8] + 1de6: f7ff fed1 bl 0x1b8c + 1dea: 9004 str r0, [sp, #16] ; 0x10 + 1dec: 9804 ldr r0, [sp, #16] ; 0x10 + 1dee: 2800 cmp r0, #0 + 1df0: d102 bne 0x1df8 + 1df2: 9803 ldr r0, [sp, #12] ; 0xc + 1df4: 2800 cmp r0, #0 + 1df6: d0e2 beq 0x1dbe + 1df8: 9804 ldr r0, [sp, #16] ; 0x10 + 1dfa: 2801 cmp r0, #1 + 1dfc: d101 bne 0x1e02 + 1dfe: 2004 mov r0, #4 + 1e00: 9003 str r0, [sp, #12] ; 0xc + 1e02: 9803 ldr r0, [sp, #12] ; 0xc + 1e04: b007 add sp, #28 ; 0x1c + 1e06: bd00 pop {pc} + 1e08: b089 sub sp, #36 ; 0x24 + 1e0a: 201a mov r0, #26 ; 0x1a + 1e0c: 9005 str r0, [sp, #20] ; 0x14 + 1e0e: 2018 mov r0, #24 ; 0x18 + 1e10: 9006 str r0, [sp, #24] ; 0x18 + 1e12: 2000 mov r0, #0 + 1e14: 9008 str r0, [sp, #32] ; 0x20 + 1e16: 4669 mov r1, sp + 1e18: 9805 ldr r0, [sp, #20] ; 0x14 + 1e1a: 8800 ldrh r0, [r0, #0] + 1e1c: 8008 strh r0, [r1, #0] + 1e1e: 9806 ldr r0, [sp, #24] ; 0x18 + 1e20: 8800 ldrh r0, [r0, #0] + 1e22: 8048 strh r0, [r1, #2] + 1e24: 4668 mov r0, sp + 1e26: 8841 ldrh r1, [r0, #2] + 1e28: 8800 ldrh r0, [r0, #0] + 1e2a: 0400 lsl r0, r0, #16 + 1e2c: 1808 add r0, r1, r0 + 1e2e: 9001 str r0, [sp, #4] + 1e30: 9801 ldr r0, [sp, #4] + 1e32: 0200 lsl r0, r0, #8 + 1e34: 0a00 lsr r0, r0, #8 + 1e36: 0080 lsl r0, r0, #2 + 1e38: 3008 add r0, #8 + 1e3a: 9007 str r0, [sp, #28] ; 0x1c + 1e3c: 9807 ldr r0, [sp, #28] ; 0x1c + 1e3e: 3018 add r0, #24 ; 0x18 + 1e40: 9002 str r0, [sp, #8] + 1e42: 9802 ldr r0, [sp, #8] + 1e44: 9004 str r0, [sp, #16] ; 0x10 + 1e46: 9802 ldr r0, [sp, #8] + 1e48: 3002 add r0, #2 + 1e4a: 9003 str r0, [sp, #12] ; 0xc + 1e4c: 9803 ldr r0, [sp, #12] ; 0xc + 1e4e: 8801 ldrh r1, [r0, #0] + 1e50: 4806 ldr r0, =0xffff ; via 0x1e6c + 1e52: 4281 cmp r1, r0 + 1e54: d104 bne 0x1e60 + 1e56: 9804 ldr r0, [sp, #16] ; 0x10 + 1e58: 8800 ldrh r0, [r0, #0] + 1e5a: 4904 ldr r1, =0xffff ; via 0x1e6c + 1e5c: 4288 cmp r0, r1 + 1e5e: d001 beq 0x1e64 + 1e60: 2001 mov r0, #1 + 1e62: 9008 str r0, [sp, #32] ; 0x20 + 1e64: 9808 ldr r0, [sp, #32] ; 0x20 + 1e66: b009 add sp, #36 ; 0x24 + 1e68: 4770 bx lr + 1e6a: 46c0 nop (mov r8, r8) + + 1e6c: 0000ffff + +; ARM->Thumb call veneer around 0xad2 routine + 1e70: e92d4000 stmdb sp!, {lr} + 1e74: e28fe001 add lr, pc, #1 + 1e78: e12fff1e bx lr + 1e7c: f7fe fe29 bl 0xad2 + 1e80: 4778 bx pc + 1e82: 46c0 nop (mov r8, r8) + 1e84: e8bd8000 ldmia sp!, {pc} + +<1E88-1EFF: all FFs> + + 1f00: 00000001 + +<1F04-end: all FFs> diff -r e5e5ed527cc1 -r 81cda18b0487 compal/boot/c139-boot.90.04.bin Binary file compal/boot/c139-boot.90.04.bin has changed diff -r e5e5ed527cc1 -r 81cda18b0487 compal/boot/c139-boot.disasm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/compal/boot/c139-boot.disasm Sat Jan 14 06:17:56 2023 +0000 @@ -0,0 +1,2736 @@ +RESET entry and exception vectors: + 0: ea000225 b 0x89c + 4: ea000825 b 0x20a0 + 8: ea000825 b 0x20a4 + c: ea000825 b 0x20a8 + 10: ea000825 b 0x20ac + 14: ea000825 b 0x20b0 + 18: ea000825 b 0x20b4 + 1c: ea000825 b 0x20b8 + +; some magic words? + 20: 444efc57 + 24: 444efc58 + 28: 444efc86 + 2c: 444efc87 +; different in the C140 specimen: + 20: 44b1b707 + 24: 44b1b708 + 28: 44b1b735 + 2c: 44b1b736 + +<30-7FF: all FFs> + +00000800: 42 4F 4F 54 2E 39 30 2E 30 34 00 00 00 00 00 00 BOOT.90.04...... +00000810: 31 30 30 33 01 01 00 00 FF FF FF FF FF FF FF FF 1003............ +00000820: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ + + 830: 00000006 + ... + 83c: 00000048 + 840: 00000044 + 844: 00000052 + 848: 0000001b + 84c: 00000005 + ... + 860: 000000fa + 864: ffff5800 + 868: ffff5000 + 86c: fffffb00 + 870: 02a1 + 872: 02a1 + 874: 02a1 + 876: 0283 + 878: 0281 + 87a: 00c0 + 87c: 0040 + 87e: 002a + 880: 00000040 + 884: fffffd00 + 888: ffff9800 + 88c: fffffb10 + 890: ffffff08 + 894: 1081 + 896: 2006 + 898: 0800 + 89a: 0000 + +; RESET entry point +; set VCLKOUT_DIV2 in FFFF:FD02 register + 89c: e51f1020 ldr r1, =0xfffffd00 ; via 0x884 + 8a0: e1d120b2 ldrh r2, [r1, #2] + 8a4: e51f002c ldr r0, =0x40 ; via 0x880 + 8a8: e1800002 orr r0, r0, r2 + 8ac: e1c100b2 strh r0, [r1, #2] +; PLL disable (power-up state) + 8b0: e51f1030 ldr r1, =0xffff9800 ; via 0x888 + 8b4: e15f22b6 ldrh r2, =0x2006 ; via 0x896 + 8b8: e1c120b0 strh r2, [r1] + 8bc: e5912000 ldr r2, [r1] + 8c0: e2022001 and r2, r2, #1 + 8c4: e3520001 cmp r2, #1 + 8c8: 0afffffb beq 0x8bc +; Write power-up default value into FFFF:FD00 + 8cc: e51f1050 ldr r1, =0xfffffd00 ; via 0x884 + 8d0: e15f24b4 ldrh r2, =0x1081 ; via 0x894 + 8d4: e1c120b0 strh r2, [r1] +; Disable DU + 8d8: e51f1054 ldr r1, =0xfffffb10 ; via 0x88c + 8dc: e15f24bc ldrh r2, =0x800 ; via 0x898 + 8e0: e1d100b0 ldrh r0, [r1] + 8e4: e1800002 orr r0, r0, r2 + 8e8: e1c100b0 strh r0, [r1] +; Disable all MPU regions + 8ec: e51f1064 ldr r1, =0xffffff08 ; via 0x890 + 8f0: e15f25be ldrh r2, =0x0 ; via 0x89a + 8f4: e1c120b0 strh r2, [r1] +; Memory timings + 8f8: e51f1094 ldr r1, =0xfffffb00 ; via 0x86c + 8fc: e15f29b4 ldrh r2, =0x2a1 ; via 0x870 + 900: e1c120b0 strh r2, [r1] + 904: e15f29ba ldrh r2, =0x2a1 ; via 0x872 + 908: e1c120b2 strh r2, [r1, #2] + 90c: e15f2ab0 ldrh r2, =0x2a1 ; via 0x874 + 910: e1c120b4 strh r2, [r1, #4] + 914: e15f2ab6 ldrh r2, =0x283 ; via 0x876 + 918: e1c120b6 strh r2, [r1, #6] + 91c: e15f2abc ldrh r2, =0x281 ; via 0x878 + 920: e1c120ba strh r2, [r1, #10] ; 0xa + 924: e15f2bb2 ldrh r2, =0xc0 ; via 0x87a + 928: e1c120bc strh r2, [r1, #12] ; 0xc + 92c: e15f2bb8 ldrh r2, =0x40 ; via 0x87c + 930: e1c120b8 strh r2, [r1, #8] + 934: e15f2bbe ldrh r2, =0x2a ; via 0x87e + 938: e1c120be strh r2, [r1, #14] ; 0xe +; set up stack + 93c: e59f0020 ldr r0, =0x83e574 ; via 0x964 + 940: e3a01b01 mov r1, #1024 ; 0x400 + 944: e2411004 sub r1, r1, #4 + 948: e0802001 add r2, r0, r1 + 94c: e3c22003 bic r2, r2, #3 + 950: e1a0d002 mov sp, r2 +; business logic + 954: e92d100f stmdb sp!, {r0, r1, r2, r3, r12} + 958: eb000534 bl 0x1e30 + 95c: e8bd100f ldmia sp!, {r0, r1, r2, r3, r12} + 960: ea0005e4 b 0x20f8 + +; C139 specimen: + 964: 0083e574 +; different in the C140 specimen: + 964: 0083e55c + +; mask all interrupts in INTH + 968: 4961 ldr r1, =0xfffffa08 ; via 0xaf0 + 96a: 4862 ldr r0, =0xffff ; via 0xaf4 + 96c: 8008 strh r0, [r1, #0] + 96e: 4862 ldr r0, =0xfffffa0a ; via 0xaf8 + 970: 211f mov r1, #31 ; 0x1f + 972: 8001 strh r1, [r0, #0] +; disable watchdog + 974: 4861 ldr r0, =0xfffff804 ; via 0xafc + 976: 21f5 mov r1, #245 ; 0xf5 + 978: 8001 strh r1, [r0, #0] + 97a: 21a0 mov r1, #160 ; 0xa0 + 97c: 8001 strh r1, [r0, #0] +; disable PLL + 97e: 4860 ldr r0, =0xffff9800 ; via 0xb00 + 980: 4960 ldr r1, =0x2002 ; via 0xb04 + 982: 8001 strh r1, [r0, #0] + 984: 485e ldr r0, =0xffff9800 ; via 0xb00 + 986: 8800 ldrh r0, [r0, #0] + 988: 0840 lsr r0, r0, #1 + 98a: d2fb bcs 0x984 +; 0x1001 written into FFFF:FD00 - same as power-up default +; except for one reserved bit + 98c: 495e ldr r1, =0xfffffd00 ; via 0xb08 + 98e: 485f ldr r0, =0x1001 ; via 0xb0c + 990: 8008 strh r0, [r1, #0] + 992: 46f7 mov pc, lr + + 994: b500 push {lr} + 996: b0ff sub sp, #508 ; 0x1fc + 998: b0ca sub sp, #296 ; 0x128 + 99a: 2000 mov r0, #0 + 99c: 9001 str r0, [sp, #4] + 99e: 9801 ldr r0, [sp, #4] + 9a0: 2800 cmp r0, #0 + 9a2: d14e bne 0xa42 + 9a4: a846 add r0, sp, #280 ; 0x118 + 9a6: 2100 mov r1, #0 + 9a8: f001 f86e bl 0x1a88 + 9ac: a9c8 add r1, sp, #800 ; 0x320 + 9ae: 7008 strb r0, [r1, #0] + 9b0: a846 add r0, sp, #280 ; 0x118 + 9b2: a902 add r1, sp, #8 + 9b4: f000 fb2c bl 0x1010 + 9b8: 9000 str r0, [sp, #0] + 9ba: 9800 ldr r0, [sp, #0] + 9bc: 2800 cmp r0, #0 + 9be: d01b beq 0x9f8 + 9c0: a924 add r1, sp, #144 ; 0x90 + 9c2: 4668 mov r0, sp + 9c4: 7a00 ldrb r0, [r0, #8] + 9c6: 7008 strb r0, [r1, #0] + 9c8: 2191 mov r1, #145 ; 0x91 + 9ca: 466a mov r2, sp + 9cc: 4668 mov r0, sp + 9ce: 7800 ldrb r0, [r0, #0] + 9d0: 5488 strb r0, [r1, r2] + 9d2: e01b b 0xa0c + 9d4: a802 add r0, sp, #8 + 9d6: a924 add r1, sp, #144 ; 0x90 + 9d8: f000 fe08 bl 0x15ec + 9dc: e016 b 0xa0c + 9de: a802 add r0, sp, #8 + 9e0: a924 add r1, sp, #144 ; 0x90 + 9e2: aac8 add r2, sp, #800 ; 0x320 + 9e4: 7812 ldrb r2, [r2, #0] + 9e6: f000 fe15 bl 0x1614 + 9ea: e00f b 0xa0c + 9ec: a802 add r0, sp, #8 + 9ee: a924 add r1, sp, #144 ; 0x90 + 9f0: f000 fe47 bl 0x1682 + 9f4: 90c7 str r0, [sp, #796] ; 0x31c + 9f6: e009 b 0xa0c + 9f8: 4668 mov r0, sp + 9fa: 7a00 ldrb r0, [r0, #8] + 9fc: 2800 cmp r0, #0 + 9fe: d0e9 beq 0x9d4 + a00: 3809 sub r0, #9 + a02: 2800 cmp r0, #0 + a04: d0eb beq 0x9de + a06: 3801 sub r0, #1 + a08: 2800 cmp r0, #0 + a0a: d0ef beq 0x9ec + a0c: a824 add r0, sp, #144 ; 0x90 + a0e: a986 add r1, sp, #536 ; 0x218 + a10: f000 fbe1 bl 0x11d6 + a14: 2800 cmp r0, #0 + a16: d111 bne 0xa3c + a18: a886 add r0, sp, #536 ; 0x218 + a1a: a9c8 add r1, sp, #800 ; 0x320 + a1c: 7809 ldrb r1, [r1, #0] + a1e: f001 f808 bl 0x1a32 + a22: 2800 cmp r0, #0 + a24: d00a beq 0xa3c + a26: 4668 mov r0, sp + a28: 7a00 ldrb r0, [r0, #8] + a2a: 280a cmp r0, #10 ; 0xa + a2c: d106 bne 0xa3c + a2e: a8c8 add r0, sp, #800 ; 0x320 + a30: 7800 ldrb r0, [r0, #0] + a32: f001 f959 bl 0x1ce8 + a36: 98c7 ldr r0, [sp, #796] ; 0x31c + a38: f000 fae8 bl 0x100c + a3c: 9801 ldr r0, [sp, #4] + a3e: 2800 cmp r0, #0 + a40: d0b0 beq 0x9a4 + a42: b07f add sp, #508 ; 0x1fc + a44: b04a add sp, #296 ; 0x128 + a46: bd00 pop {pc} + + a48: b500 push {lr} + a4a: b0ff sub sp, #508 ; 0x1fc + a4c: b0c8 sub sp, #288 ; 0x120 + a4e: 2000 mov r0, #0 + a50: 9000 str r0, [sp, #0] + a52: a846 add r0, sp, #280 ; 0x118 + a54: 2101 mov r1, #1 + a56: f001 f817 bl 0x1a88 + a5a: a9c6 add r1, sp, #792 ; 0x318 + a5c: 7008 strb r0, [r1, #0] + a5e: a8c6 add r0, sp, #792 ; 0x318 + a60: 7800 ldrb r0, [r0, #0] + a62: 28ff cmp r0, #255 ; 0xff + a64: d031 beq 0xaca + a66: a846 add r0, sp, #280 ; 0x118 + a68: a902 add r1, sp, #8 + a6a: f000 fad1 bl 0x1010 + a6e: 9001 str r0, [sp, #4] + a70: 9801 ldr r0, [sp, #4] + a72: 2800 cmp r0, #0 + a74: d014 beq 0xaa0 + a76: a924 add r1, sp, #144 ; 0x90 + a78: 4668 mov r0, sp + a7a: 7a00 ldrb r0, [r0, #8] + a7c: 7008 strb r0, [r1, #0] + a7e: 2291 mov r2, #145 ; 0x91 + a80: 4668 mov r0, sp + a82: 4669 mov r1, sp + a84: 7909 ldrb r1, [r1, #4] + a86: 5411 strb r1, [r2, r0] + a88: a824 add r0, sp, #144 ; 0x90 + a8a: a986 add r1, sp, #536 ; 0x218 + a8c: f000 fba3 bl 0x11d6 + a90: 2800 cmp r0, #0 + a92: d11a bne 0xaca + a94: a886 add r0, sp, #536 ; 0x218 + a96: a9c6 add r1, sp, #792 ; 0x318 + a98: 7809 ldrb r1, [r1, #0] + a9a: f000 ffca bl 0x1a32 + a9e: e014 b 0xaca + aa0: 4668 mov r0, sp + aa2: 7a00 ldrb r0, [r0, #8] + aa4: 2800 cmp r0, #0 + aa6: d110 bne 0xaca + aa8: a802 add r0, sp, #8 + aaa: a924 add r1, sp, #144 ; 0x90 + aac: f000 fd9e bl 0x15ec + ab0: a824 add r0, sp, #144 ; 0x90 + ab2: a986 add r1, sp, #536 ; 0x218 + ab4: f000 fb8f bl 0x11d6 + ab8: 2800 cmp r0, #0 + aba: d104 bne 0xac6 + abc: a886 add r0, sp, #536 ; 0x218 + abe: a9c6 add r1, sp, #792 ; 0x318 + ac0: 7809 ldrb r1, [r1, #0] + ac2: f000 ffb6 bl 0x1a32 + ac6: 2001 mov r0, #1 + ac8: 9000 str r0, [sp, #0] + aca: 9800 ldr r0, [sp, #0] + acc: b07f add sp, #508 ; 0x1fc + ace: b048 add sp, #288 ; 0x120 + ad0: bd00 pop {pc} + +; Main entry routine + ad2: b500 push {lr} + ad4: b082 sub sp, #8 + ad6: f7ff ff47 bl 0x968 ; superfluous + ada: f001 f8ad bl 0x1c38 ; UART init + ade: f000 fd73 bl 0x15c8 ; zero a couple of vars + ae2: f000 f81f bl 0xb24 ; serial protocol + ae6: f000 f96a bl 0xdbe ; ftmtool voodoo + aea: b002 add sp, #8 + aec: bd00 pop {pc} + aee: 46c0 nop (mov r8, r8) + + af0: fffffa08 + af4: 0000ffff + af8: fffffa0a + afc: fffff804 + b00: ffff9800 + b04: 00002002 + b08: fffffd00 + b0c: 00001001 + + b10: e3a0d502 mov sp, #8388608 ; 0x800000 + b14: e28dd802 add sp, sp, #131072 ; 0x20000 + b18: e28fe005 add lr, pc, #5 + b1c: e12fff1e bx lr + b20: e1a00000 mov r0, r0 + +; This function (0xb24, called from this bootloader's "main") calls +; 0xbac (serial download attempt) twice, first at 406250 baud, then +; at 115200 baud. Only the MODEM UART is tried, not IrDA. + b24: b500 push {lr} + b26: b082 sub sp, #8 +; select MODEM UART + b28: 49ed ldr r1, =0x83ff00 ; via 0xee0 + b2a: 48ee ldr r0, =0xffff5800 ; via 0xee4 + b2c: 6008 str r0, [r1, #0] +; set it to /2 (406250 baud) + b2e: 2000 mov r0, #0 + b30: 2102 mov r1, #2 + b32: f000 f9fb bl 0xf2c +; delay loop + b36: 2000 mov r0, #0 + b38: 9000 str r0, [sp, #0] + b3a: 9900 ldr r1, [sp, #0] + b3c: 2005 mov r0, #5 + b3e: 0300 lsl r0, r0, #12 + b40: 4281 cmp r1, r0 + b42: d207 bcs 0xb54 + b44: 9800 ldr r0, [sp, #0] + b46: 3001 add r0, #1 + b48: 9000 str r0, [sp, #0] + b4a: 9900 ldr r1, [sp, #0] + b4c: 2005 mov r0, #5 + b4e: 0300 lsl r0, r0, #12 + b50: 4281 cmp r1, r0 + b52: d3f7 bcc 0xb44 +; 0xbac called at 406250 baud + b54: f000 f82a bl 0xbac +; set it to /7 (115200 baud) + b58: 2000 mov r0, #0 + b5a: 2107 mov r1, #7 + b5c: f000 f9e6 bl 0xf2c +; same delay loop again + b60: 2000 mov r0, #0 + b62: 9000 str r0, [sp, #0] + b64: 9900 ldr r1, [sp, #0] + b66: 2005 mov r0, #5 + b68: 0300 lsl r0, r0, #12 + b6a: 4281 cmp r1, r0 + b6c: d207 bcs 0xb7e + b6e: 9800 ldr r0, [sp, #0] + b70: 3001 add r0, #1 + b72: 9000 str r0, [sp, #0] + b74: 9900 ldr r1, [sp, #0] + b76: 2005 mov r0, #5 + b78: 0300 lsl r0, r0, #12 + b7a: 4281 cmp r1, r0 + b7c: d3f7 bcc 0xb6e +; call 0xbac again, this time at 115200 baud + b7e: f000 f815 bl 0xbac +; another (longer) delay loop, then return + b82: 2000 mov r0, #0 + b84: 9001 str r0, [sp, #4] + b86: 9000 str r0, [sp, #0] + b88: 9900 ldr r1, [sp, #0] + b8a: 2005 mov r0, #5 + b8c: 0400 lsl r0, r0, #16 + b8e: 4281 cmp r1, r0 + b90: d20a bcs 0xba8 + b92: 9801 ldr r0, [sp, #4] + b94: 3001 add r0, #1 + b96: 9001 str r0, [sp, #4] + b98: 9800 ldr r0, [sp, #0] + b9a: 3001 add r0, #1 + b9c: 9000 str r0, [sp, #0] + b9e: 9900 ldr r1, [sp, #0] + ba0: 2005 mov r0, #5 + ba2: 0400 lsl r0, r0, #16 + ba4: 4281 cmp r1, r0 + ba6: d3f4 bcc 0xb92 + ba8: b002 add sp, #8 + baa: bd00 pop {pc} + +; This function implements the entirety of the serial download protocol, +; see c139-boot.notes for the details. + bac: b500 push {lr} + bae: b088 sub sp, #32 ; 0x20 + bb0: 48dd ldr r0, =0x800100 ; via 0xf28 + bb2: 9005 str r0, [sp, #20] ; 0x14 + bb4: 201b mov r0, #27 ; 0x1b + bb6: f000 f95f bl 0xe78 + bba: 20f6 mov r0, #246 ; 0xf6 + bbc: f000 f95c bl 0xe78 + bc0: 2002 mov r0, #2 + bc2: f000 f959 bl 0xe78 + bc6: 2000 mov r0, #0 + bc8: f000 f956 bl 0xe78 + bcc: 2041 mov r0, #65 ; 0x41 + bce: f000 f953 bl 0xe78 + bd2: 2001 mov r0, #1 + bd4: f000 f950 bl 0xe78 + bd8: 2040 mov r0, #64 ; 0x40 + bda: f000 f94d bl 0xe78 + bde: 2001 mov r0, #1 + be0: 0300 lsl r0, r0, #12 + be2: f000 f961 bl 0xea8 + be6: 281b cmp r0, #27 ; 0x1b + be8: d000 beq 0xbec + bea: e0e6 b 0xdba + bec: 2001 mov r0, #1 + bee: 0300 lsl r0, r0, #12 + bf0: f000 f95a bl 0xea8 + bf4: 28f6 cmp r0, #246 ; 0xf6 + bf6: d000 beq 0xbfa + bf8: e0df b 0xdba + bfa: 2001 mov r0, #1 + bfc: 0300 lsl r0, r0, #12 + bfe: f000 f953 bl 0xea8 + c02: 2802 cmp r0, #2 + c04: d000 beq 0xc08 + c06: e0d8 b 0xdba + c08: 2001 mov r0, #1 + c0a: 0300 lsl r0, r0, #12 + c0c: f000 f94c bl 0xea8 + c10: 2800 cmp r0, #0 + c12: d000 beq 0xc16 + c14: e0d1 b 0xdba + c16: 2001 mov r0, #1 + c18: 0300 lsl r0, r0, #12 + c1a: f000 f945 bl 0xea8 + c1e: 2852 cmp r0, #82 ; 0x52 + c20: d000 beq 0xc24 + c22: e0ca b 0xdba + c24: 2001 mov r0, #1 + c26: 0300 lsl r0, r0, #12 + c28: f000 f93e bl 0xea8 + c2c: 2801 cmp r0, #1 + c2e: d000 beq 0xc32 + c30: e0c3 b 0xdba + c32: 2001 mov r0, #1 + c34: 0300 lsl r0, r0, #12 + c36: f000 f937 bl 0xea8 + c3a: 2853 cmp r0, #83 ; 0x53 + c3c: d000 beq 0xc40 + c3e: e0bc b 0xdba + c40: 201b mov r0, #27 ; 0x1b + c42: f000 f919 bl 0xe78 + c46: 20f6 mov r0, #246 ; 0xf6 + c48: f000 f916 bl 0xe78 + c4c: 2002 mov r0, #2 + c4e: f000 f913 bl 0xe78 + c52: 2000 mov r0, #0 + c54: f000 f910 bl 0xe78 + c58: 2041 mov r0, #65 ; 0x41 + c5a: f000 f90d bl 0xe78 + c5e: 2002 mov r0, #2 + c60: f000 f90a bl 0xe78 + c64: 2043 mov r0, #67 ; 0x43 + c66: f000 f907 bl 0xe78 + c6a: 2001 mov r0, #1 + c6c: 0300 lsl r0, r0, #12 + c6e: f000 f91b bl 0xea8 + c72: 4669 mov r1, sp + c74: 7208 strb r0, [r1, #8] + c76: 2002 mov r0, #2 + c78: 7448 strb r0, [r1, #17] ; 0x11 + c7a: 2000 mov r0, #0 + c7c: 9000 str r0, [sp, #0] + c7e: 9800 ldr r0, [sp, #0] + c80: 2802 cmp r0, #2 + c82: d215 bcs 0xcb0 + c84: 2001 mov r0, #1 + c86: 0300 lsl r0, r0, #12 + c88: f000 f90e bl 0xea8 + c8c: 4669 mov r1, sp + c8e: 9a00 ldr r2, [sp, #0] + c90: 1a89 sub r1, r1, r2 + c92: 7348 strb r0, [r1, #13] ; 0xd + c94: 4669 mov r1, sp + c96: 9800 ldr r0, [sp, #0] + c98: 1a08 sub r0, r1, r0 + c9a: 7b40 ldrb r0, [r0, #13] ; 0xd + c9c: 7c49 ldrb r1, [r1, #17] ; 0x11 + c9e: 4048 eor r0, r1 + ca0: 4669 mov r1, sp + ca2: 7448 strb r0, [r1, #17] ; 0x11 + ca4: 9800 ldr r0, [sp, #0] + ca6: 3001 add r0, #1 + ca8: 9000 str r0, [sp, #0] + caa: 9800 ldr r0, [sp, #0] + cac: 2802 cmp r0, #2 + cae: d3e9 bcc 0xc84 + cb0: 4668 mov r0, sp + cb2: 8980 ldrh r0, [r0, #12] ; 0xc + cb4: 466a mov r2, sp + cb6: 1e41 sub r1, r0, #1 + cb8: 8191 strh r1, [r2, #12] ; 0xc + cba: 2800 cmp r0, #0 + cbc: d016 beq 0xcec + cbe: 2001 mov r0, #1 + cc0: 0300 lsl r0, r0, #12 + cc2: f000 f8f1 bl 0xea8 + cc6: 9905 ldr r1, [sp, #20] ; 0x14 + cc8: 7008 strb r0, [r1, #0] + cca: 9805 ldr r0, [sp, #20] ; 0x14 + ccc: 7800 ldrb r0, [r0, #0] + cce: 4669 mov r1, sp + cd0: 7c49 ldrb r1, [r1, #17] ; 0x11 + cd2: 4048 eor r0, r1 + cd4: 4669 mov r1, sp + cd6: 7448 strb r0, [r1, #17] ; 0x11 + cd8: 9805 ldr r0, [sp, #20] ; 0x14 + cda: 3001 add r0, #1 + cdc: 9005 str r0, [sp, #20] ; 0x14 + cde: 4668 mov r0, sp + ce0: 8981 ldrh r1, [r0, #12] ; 0xc + ce2: 466a mov r2, sp + ce4: 1e48 sub r0, r1, #1 + ce6: 8190 strh r0, [r2, #12] ; 0xc + ce8: 2900 cmp r1, #0 + cea: d1e8 bne 0xcbe + cec: 2001 mov r0, #1 + cee: 0300 lsl r0, r0, #12 + cf0: f000 f8da bl 0xea8 + cf4: 4669 mov r1, sp + cf6: 7408 strb r0, [r1, #16] ; 0x10 + cf8: 4668 mov r0, sp + cfa: 7c00 ldrb r0, [r0, #16] ; 0x10 + cfc: 7c49 ldrb r1, [r1, #17] ; 0x11 + cfe: 4288 cmp r0, r1 + d00: d015 beq 0xd2e + d02: 201b mov r0, #27 ; 0x1b + d04: f000 f8b8 bl 0xe78 + d08: 20f6 mov r0, #246 ; 0xf6 + d0a: f000 f8b5 bl 0xe78 + d0e: 2002 mov r0, #2 + d10: f000 f8b2 bl 0xe78 + d14: 2000 mov r0, #0 + d16: f000 f8af bl 0xe78 + d1a: 2045 mov r0, #69 ; 0x45 + d1c: f000 f8ac bl 0xe78 + d20: 2053 mov r0, #83 ; 0x53 + d22: f000 f8a9 bl 0xe78 + d26: 2016 mov r0, #22 ; 0x16 + d28: f000 f8a6 bl 0xe78 + d2c: e045 b 0xdba + d2e: 2081 mov r0, #129 ; 0x81 + d30: 0100 lsl r0, r0, #4 + d32: 9006 str r0, [sp, #24] ; 0x18 + d34: 48af ldr r0, =0x803ce0 ; via 0xff4 + d36: 9007 str r0, [sp, #28] ; 0x1c + d38: 2000 mov r0, #0 + d3a: 9000 str r0, [sp, #0] + d3c: 9800 ldr r0, [sp, #0] + d3e: 2804 cmp r0, #4 + d40: d221 bcs 0xd86 + d42: 9900 ldr r1, [sp, #0] + d44: 9806 ldr r0, [sp, #24] ; 0x18 + d46: 5c0a ldrb r2, [r1, r0] + d48: 9900 ldr r1, [sp, #0] + d4a: 9807 ldr r0, [sp, #28] ; 0x1c + d4c: 5c08 ldrb r0, [r1, r0] + d4e: 4282 cmp r2, r0 + d50: dd13 ble 0xd7a + d52: 201b mov r0, #27 ; 0x1b + d54: f000 f890 bl 0xe78 + d58: 20f6 mov r0, #246 ; 0xf6 + d5a: f000 f88d bl 0xe78 + d5e: 2002 mov r0, #2 + d60: f000 f88a bl 0xe78 + d64: 2000 mov r0, #0 + d66: f000 f887 bl 0xe78 + d6a: 2041 mov r0, #65 ; 0x41 + d6c: f000 f884 bl 0xe78 + d70: 2003 mov r0, #3 + d72: f000 f881 bl 0xe78 + d76: 2057 mov r0, #87 ; 0x57 + d78: e7d6 b 0xd28 + d7a: 9800 ldr r0, [sp, #0] + d7c: 3001 add r0, #1 + d7e: 9000 str r0, [sp, #0] + d80: 9800 ldr r0, [sp, #0] + d82: 2804 cmp r0, #4 + d84: d3dd bcc 0xd42 + d86: 201b mov r0, #27 ; 0x1b + d88: f000 f876 bl 0xe78 + d8c: 20f6 mov r0, #246 ; 0xf6 + d8e: f000 f873 bl 0xe78 + d92: 2002 mov r0, #2 + d94: f000 f870 bl 0xe78 + d98: 2000 mov r0, #0 + d9a: f000 f86d bl 0xe78 + d9e: 2041 mov r0, #65 ; 0x41 + da0: f000 f86a bl 0xe78 + da4: 2003 mov r0, #3 + da6: f000 f867 bl 0xe78 + daa: 2042 mov r0, #66 ; 0x42 + dac: f000 f864 bl 0xe78 + db0: 484b ldr r0, =0x83ff00 ; via 0xee0 + db2: 6800 ldr r0, [r0, #0] + db4: 4990 ldr r1, =0x800100 ; via 0xff8 + db6: f000 f85e bl 0xe76 + dba: b008 add sp, #32 ; 0x20 + dbc: bd00 pop {pc} + + dbe: b500 push {lr} + dc0: b081 sub sp, #4 +; transmit "ftmtool" 7 bytes + dc2: 2066 mov r0, #102 ; 0x66 + dc4: f000 f858 bl 0xe78 + dc8: 2074 mov r0, #116 ; 0x74 + dca: f000 f855 bl 0xe78 + dce: 206d mov r0, #109 ; 0x6d + dd0: f000 f852 bl 0xe78 + dd4: 2074 mov r0, #116 ; 0x74 + dd6: f000 f84f bl 0xe78 + dda: 206f mov r0, #111 ; 0x6f + ddc: f000 f84c bl 0xe78 + de0: 206f mov r0, #111 ; 0x6f + de2: f000 f849 bl 0xe78 + de6: 206c mov r0, #108 ; 0x6c + de8: f000 f846 bl 0xe78 + dec: 4983 ldr r1, =0x83ff80 ; via 0xffc + dee: 2000 mov r0, #0 + df0: 7008 strb r0, [r1, #0] +; delay loop + df2: 9000 str r0, [sp, #0] + df4: 9800 ldr r0, [sp, #0] + df6: 0c00 lsr r0, r0, #16 + df8: d105 bne 0xe06 + dfa: 9800 ldr r0, [sp, #0] + dfc: 3001 add r0, #1 + dfe: 9000 str r0, [sp, #0] + e00: 9800 ldr r0, [sp, #0] + e02: 0c00 lsr r0, r0, #16 + e04: d0f9 beq 0xdfa +; call Rx-char: expecting "yes" + e06: 2007 mov r0, #7 + e08: 0400 lsl r0, r0, #16 + e0a: f000 f84d bl 0xea8 + e0e: 2879 cmp r0, #121 ; 0x79 + e10: d10e bne 0xe30 + e12: 2001 mov r0, #1 + e14: 0300 lsl r0, r0, #12 + e16: f000 f847 bl 0xea8 + e1a: 2865 cmp r0, #101 ; 0x65 + e1c: d108 bne 0xe30 + e1e: 2001 mov r0, #1 + e20: 0300 lsl r0, r0, #12 + e22: f000 f841 bl 0xea8 + e26: 2873 cmp r0, #115 ; 0x73 + e28: d102 bne 0xe30 + e2a: 4874 ldr r0, =0x83ff80 ; via 0xffc + e2c: 2101 mov r1, #1 + e2e: 7001 strb r1, [r0, #0] +; "yes" and normal boot code paths merge + e30: f000 f8ce bl 0xfd0 + e34: 2800 cmp r0, #0 + e36: d00d beq 0xe54 + e38: 206d mov r0, #109 ; 0x6d + e3a: f000 f81d bl 0xe78 + e3e: 206f mov r0, #111 ; 0x6f + e40: f000 f81a bl 0xe78 + e44: 2064 mov r0, #100 ; 0x64 + e46: f000 f817 bl 0xe78 + e4a: 2065 mov r0, #101 ; 0x65 + e4c: f000 f814 bl 0xe78 + e50: 206d mov r0, #109 ; 0x6d + e52: e00c b 0xe6e + e54: 2065 mov r0, #101 ; 0x65 + e56: f000 f80f bl 0xe78 + e5a: 2072 mov r0, #114 ; 0x72 + e5c: f000 f80c bl 0xe78 + e60: 2072 mov r0, #114 ; 0x72 + e62: f000 f809 bl 0xe78 + e66: 206f mov r0, #111 ; 0x6f + e68: f000 f806 bl 0xe78 + e6c: 2072 mov r0, #114 ; 0x72 + e6e: f000 f803 bl 0xe78 + e72: b001 add sp, #4 + e74: bd00 pop {pc} + +; Called via Thumb-BL to transfer control to the downloaded image + e76: 4708 bx r1 + +; UART character output routine + e78: b081 sub sp, #4 + e7a: 4669 mov r1, sp + e7c: 7008 strb r0, [r1, #0] + e7e: 4818 ldr r0, =0x83ff00 ; via 0xee0 + e80: 6800 ldr r0, [r0, #0] + e82: 7940 ldrb r0, [r0, #5] + e84: 0980 lsr r0, r0, #6 + e86: d3fa bcc 0xe7e + e88: 4815 ldr r0, =0x83ff00 ; via 0xee0 + e8a: 6800 ldr r0, [r0, #0] + e8c: 4669 mov r1, sp + e8e: 7809 ldrb r1, [r1, #0] + e90: 7001 strb r1, [r0, #0] + e92: b001 add sp, #4 + e94: 46f7 mov pc, lr + + e96: 4812 ldr r0, =0x83ff00 ; via 0xee0 + e98: 6800 ldr r0, [r0, #0] + e9a: 7940 ldrb r0, [r0, #5] + e9c: 0840 lsr r0, r0, #1 + e9e: d3fa bcc 0xe96 + ea0: 480f ldr r0, =0x83ff00 ; via 0xee0 + ea2: 6800 ldr r0, [r0, #0] + ea4: 7800 ldrb r0, [r0, #0] + ea6: 4770 bx lr + +; UART character input with a timeout (number of LSR read tries passed +; in r0). Returns the character read if one was received, or 0xFF +; if timeout. + ea8: b083 sub sp, #12 ; 0xc + eaa: 9000 str r0, [sp, #0] + eac: 9800 ldr r0, [sp, #0] + eae: 9002 str r0, [sp, #8] + eb0: 480b ldr r0, =0x83ff00 ; via 0xee0 + eb2: 6800 ldr r0, [r0, #0] + eb4: 7940 ldrb r0, [r0, #5] + eb6: 0840 lsr r0, r0, #1 + eb8: d20c bcs 0xed4 + eba: 9802 ldr r0, [sp, #8] + ebc: 3801 sub r0, #1 + ebe: 9002 str r0, [sp, #8] + ec0: 9802 ldr r0, [sp, #8] + ec2: 2800 cmp r0, #0 + ec4: d101 bne 0xeca + ec6: 20ff mov r0, #255 ; 0xff + ec8: e007 b 0xeda + eca: 4805 ldr r0, =0x83ff00 ; via 0xee0 + ecc: 6800 ldr r0, [r0, #0] + ece: 7940 ldrb r0, [r0, #5] + ed0: 0840 lsr r0, r0, #1 + ed2: d3f2 bcc 0xeba + ed4: 484a ldr r0, =0x83ff00 ; via 0x1000 + ed6: 6800 ldr r0, [r0, #0] + ed8: 7800 ldrb r0, [r0, #0] + eda: b003 add sp, #12 ; 0xc + edc: 4770 bx lr + ede: 46c0 nop (mov r8, r8) + + ee0: 0083ff00 + ee4: ffff5800 + + ee8: b081 sub sp, #4 + eea: e001 b 0xef0 + eec: 9800 ldr r0, [sp, #0] + eee: 3801 sub r0, #1 + ef0: 9000 str r0, [sp, #0] + ef2: 4843 ldr r0, =0x83ff00 ; via 0x1000 + ef4: 6800 ldr r0, [r0, #0] + ef6: 7940 ldrb r0, [r0, #5] + ef8: 0840 lsr r0, r0, #1 + efa: d202 bcs 0xf02 + efc: 9800 ldr r0, [sp, #0] + efe: 2800 cmp r0, #0 + f00: dcf4 bgt 0xeec + f02: 9800 ldr r0, [sp, #0] + f04: 2800 cmp r0, #0 + f06: dd01 ble 0xf0c + f08: 2000 mov r0, #0 + f0a: e000 b 0xf0e + f0c: 2001 mov r0, #1 + f0e: b001 add sp, #4 + f10: 4770 bx lr + + f12: b082 sub sp, #8 + f14: 9000 str r0, [sp, #0] + f16: 4669 mov r1, sp + f18: 2000 mov r0, #0 + f1a: 7188 strb r0, [r1, #6] + f1c: 9900 ldr r1, [sp, #0] + f1e: 4839 ldr r0, =0xfffef000 ; via 0x1004 + f20: 8800 ldrh r0, [r0, #0] + f22: 8008 strh r0, [r1, #0] + f24: b002 add sp, #8 + f26: 4770 bx lr + + f28: 00800100 + +; This function (0xf2c) reprograms the UART selected by the 83FF00 +; var to the baud rate passed as arguments (div upper byte in R0, +; lower byte in R1) and flushes the Rx FIFO. + f2c: b081 sub sp, #4 + f2e: 466a mov r2, sp + f30: 7051 strb r1, [r2, #1] + f32: 4669 mov r1, sp + f34: 7008 strb r0, [r1, #0] + f36: 4934 ldr r1, =0xffff6000 ; via 0x1008 + f38: 2002 mov r0, #2 + f3a: 880a ldrh r2, [r1, #0] + f3c: 4310 orr r0, r2 + f3e: 8008 strh r0, [r1, #0] + f40: 4831 ldr r0, =0xffff6000 ; via 0x1008 + f42: 8801 ldrh r1, [r0, #0] + f44: 0849 lsr r1, r1, #1 + f46: 0049 lsl r1, r1, #1 + f48: 8001 strh r1, [r0, #0] + f4a: 492f ldr r1, =0xffff6000 ; via 0x1008 + f4c: 8808 ldrh r0, [r1, #0] + f4e: 2202 mov r2, #2 + f50: 4390 bic r0, r2 + f52: 8008 strh r0, [r1, #0] + f54: 482a ldr r0, =0x83ff00 ; via 0x1000 + f56: 6801 ldr r1, [r0, #0] + f58: 2007 mov r0, #7 + f5a: 7208 strb r0, [r1, #8] + f5c: 4828 ldr r0, =0x83ff00 ; via 0x1000 + f5e: 6801 ldr r1, [r0, #0] + f60: 20bf mov r0, #191 ; 0xbf + f62: 70c8 strb r0, [r1, #3] + f64: 4826 ldr r0, =0x83ff00 ; via 0x1000 + f66: 6800 ldr r0, [r0, #0] + f68: 1c80 add r0, r0, #2 + f6a: 2110 mov r1, #16 ; 0x10 + f6c: 8802 ldrh r2, [r0, #0] + f6e: 4311 orr r1, r2 + f70: 8001 strh r1, [r0, #0] + f72: 4823 ldr r0, =0x83ff00 ; via 0x1000 + f74: 6801 ldr r1, [r0, #0] + f76: 2080 mov r0, #128 ; 0x80 + f78: 70c8 strb r0, [r1, #3] + f7a: 4821 ldr r0, =0x83ff00 ; via 0x1000 + f7c: 6800 ldr r0, [r0, #0] + f7e: 2107 mov r1, #7 + f80: 7081 strb r1, [r0, #2] + f82: 481f ldr r0, =0x83ff00 ; via 0x1000 + f84: 6800 ldr r0, [r0, #0] + f86: 21bf mov r1, #191 ; 0xbf + f88: 70c1 strb r1, [r0, #3] + f8a: 481d ldr r0, =0x83ff00 ; via 0x1000 + f8c: 6801 ldr r1, [r0, #0] + f8e: 4668 mov r0, sp + f90: 7840 ldrb r0, [r0, #1] + f92: 7008 strb r0, [r1, #0] + f94: 481a ldr r0, =0x83ff00 ; via 0x1000 + f96: 6801 ldr r1, [r0, #0] + f98: 4668 mov r0, sp + f9a: 7800 ldrb r0, [r0, #0] + f9c: 7048 strb r0, [r1, #1] + f9e: 4818 ldr r0, =0x83ff00 ; via 0x1000 + fa0: 6801 ldr r1, [r0, #0] + fa2: 2003 mov r0, #3 + fa4: 70c8 strb r0, [r1, #3] + fa6: 4816 ldr r0, =0x83ff00 ; via 0x1000 + fa8: 6800 ldr r0, [r0, #0] + faa: 2100 mov r1, #0 + fac: 7201 strb r1, [r0, #8] + fae: 4814 ldr r0, =0x83ff00 ; via 0x1000 + fb0: 6800 ldr r0, [r0, #0] + fb2: 7940 ldrb r0, [r0, #5] + fb4: 0840 lsr r0, r0, #1 + fb6: d309 bcc 0xfcc + fb8: 4669 mov r1, sp + fba: 4811 ldr r0, =0x83ff00 ; via 0x1000 + fbc: 6800 ldr r0, [r0, #0] + fbe: 7800 ldrb r0, [r0, #0] + fc0: 7088 strb r0, [r1, #2] + fc2: 480f ldr r0, =0x83ff00 ; via 0x1000 + fc4: 6800 ldr r0, [r0, #0] + fc6: 7940 ldrb r0, [r0, #5] + fc8: 0840 lsr r0, r0, #1 + fca: d2f5 bcs 0xfb8 + fcc: b001 add sp, #4 + fce: 4770 bx lr + + fd0: 480a ldr r0, =0x83ff80 ; via 0xffc + fd2: 7800 ldrb r0, [r0, #0] + fd4: 4770 bx lr + + fd6: b500 push {lr} + fd8: b081 sub sp, #4 + fda: 4669 mov r1, sp + fdc: 7008 strb r0, [r1, #0] + fde: 4668 mov r0, sp + fe0: 7800 ldrb r0, [r0, #0] + fe2: f7ff ff49 bl 0xe78 + fe6: b001 add sp, #4 + fe8: bd00 pop {pc} + fea: b500 push {lr} + fec: f7ff ff53 bl 0xe96 + ff0: bd00 pop {pc} + ff2: 46c0 nop (mov r8, r8) + ff4: 3ce0 sub r4, #224 ; 0xe0 + ff6: 0080 lsl r0, r0, #2 + ff8: 0100 lsl r0, r0, #4 + ffa: 0080 lsl r0, r0, #2 + ffc: ff80 + ffe: 0083 lsl r3, r0, #2 + 1000: ff00 + 1002: 0083 lsl r3, r0, #2 + 1004: f000 fffe bl 0x2004 + 1008: 6000 str r0, [r0, #0] + 100a: ffff + 100c: 4700 bx r0 + 100e: 0000 lsl r0, r0, #0 + 1010: b08c sub sp, #48 ; 0x30 + 1012: 9101 str r1, [sp, #4] + 1014: 9000 str r0, [sp, #0] + 1016: 2000 mov r0, #0 + 1018: 9003 str r0, [sp, #12] ; 0xc + 101a: 9800 ldr r0, [sp, #0] + 101c: 7801 ldrb r1, [r0, #0] + 101e: 3001 add r0, #1 + 1020: 9000 str r0, [sp, #0] + 1022: 9105 str r1, [sp, #20] ; 0x14 + 1024: 9800 ldr r0, [sp, #0] + 1026: 7801 ldrb r1, [r0, #0] + 1028: 3001 add r0, #1 + 102a: 9000 str r0, [sp, #0] + 102c: 9801 ldr r0, [sp, #4] + 102e: 7001 strb r1, [r0, #0] + 1030: 2001 mov r0, #1 + 1032: 9004 str r0, [sp, #16] ; 0x10 + 1034: e0a8 b 0x1188 + 1036: 9804 ldr r0, [sp, #16] ; 0x10 + 1038: 3002 add r0, #2 + 103a: 9004 str r0, [sp, #16] ; 0x10 + 103c: 9800 ldr r0, [sp, #0] + 103e: 7801 ldrb r1, [r0, #0] + 1040: 3001 add r0, #1 + 1042: 9000 str r0, [sp, #0] + 1044: 4668 mov r0, sp + 1046: 8441 strh r1, [r0, #34] ; 0x22 + 1048: 9800 ldr r0, [sp, #0] + 104a: 7801 ldrb r1, [r0, #0] + 104c: 3001 add r0, #1 + 104e: 9000 str r0, [sp, #0] + 1050: 4668 mov r0, sp + 1052: 8401 strh r1, [r0, #32] ; 0x20 + 1054: 8c00 ldrh r0, [r0, #32] ; 0x20 + 1056: 4669 mov r1, sp + 1058: 8c49 ldrh r1, [r1, #34] ; 0x22 + 105a: 0209 lsl r1, r1, #8 + 105c: 1840 add r0, r0, r1 + 105e: 9901 ldr r1, [sp, #4] + 1060: 8088 strh r0, [r1, #4] + 1062: 9804 ldr r0, [sp, #16] ; 0x10 + 1064: 3001 add r0, #1 + 1066: 9004 str r0, [sp, #16] ; 0x10 + 1068: 9800 ldr r0, [sp, #0] + 106a: 7801 ldrb r1, [r0, #0] + 106c: 3001 add r0, #1 + 106e: 9000 str r0, [sp, #0] + 1070: 4668 mov r0, sp + 1072: 7601 strb r1, [r0, #24] ; 0x18 + 1074: 9901 ldr r1, [sp, #4] + 1076: 7e00 ldrb r0, [r0, #24] ; 0x18 + 1078: 7188 strb r0, [r1, #6] + 107a: 4668 mov r0, sp + 107c: 7e00 ldrb r0, [r0, #24] ; 0x18 + 107e: 2840 cmp r0, #64 ; 0x40 + 1080: dc00 bgt 0x1084 + 1082: e09f b 0x11c4 + 1084: 2004 mov r0, #4 + 1086: 9003 str r0, [sp, #12] ; 0xc + 1088: e09c b 0x11c4 + 108a: 9804 ldr r0, [sp, #16] ; 0x10 + 108c: 3002 add r0, #2 + 108e: 9004 str r0, [sp, #16] ; 0x10 + 1090: 9800 ldr r0, [sp, #0] + 1092: 7801 ldrb r1, [r0, #0] + 1094: 3001 add r0, #1 + 1096: 9000 str r0, [sp, #0] + 1098: 4668 mov r0, sp + 109a: 8441 strh r1, [r0, #34] ; 0x22 + 109c: 9800 ldr r0, [sp, #0] + 109e: 7801 ldrb r1, [r0, #0] + 10a0: 3001 add r0, #1 + 10a2: 9000 str r0, [sp, #0] + 10a4: 4668 mov r0, sp + 10a6: 8401 strh r1, [r0, #32] ; 0x20 + 10a8: 8c00 ldrh r0, [r0, #32] ; 0x20 + 10aa: 4669 mov r1, sp + 10ac: 8c49 ldrh r1, [r1, #34] ; 0x22 + 10ae: 0209 lsl r1, r1, #8 + 10b0: 1841 add r1, r0, r1 + 10b2: 9801 ldr r0, [sp, #4] + 10b4: 8081 strh r1, [r0, #4] + 10b6: 9804 ldr r0, [sp, #16] ; 0x10 + 10b8: 3001 add r0, #1 + 10ba: 9004 str r0, [sp, #16] ; 0x10 + 10bc: 9800 ldr r0, [sp, #0] + 10be: 7801 ldrb r1, [r0, #0] + 10c0: 3001 add r0, #1 + 10c2: 9000 str r0, [sp, #0] + 10c4: 4668 mov r0, sp + 10c6: 7601 strb r1, [r0, #24] ; 0x18 + 10c8: 9901 ldr r1, [sp, #4] + 10ca: 7e00 ldrb r0, [r0, #24] ; 0x18 + 10cc: 7188 strb r0, [r1, #6] + 10ce: 4668 mov r0, sp + 10d0: 7e00 ldrb r0, [r0, #24] ; 0x18 + 10d2: 2840 cmp r0, #64 ; 0x40 + 10d4: dcd6 bgt 0x1084 + 10d6: 9801 ldr r0, [sp, #4] + 10d8: 3008 add r0, #8 + 10da: 9007 str r0, [sp, #28] ; 0x1c + 10dc: 2000 mov r0, #0 + 10de: 9002 str r0, [sp, #8] + 10e0: 9902 ldr r1, [sp, #8] + 10e2: 4668 mov r0, sp + 10e4: 7e00 ldrb r0, [r0, #24] ; 0x18 + 10e6: 4281 cmp r1, r0 + 10e8: da6c bge 0x11c4 + 10ea: 9800 ldr r0, [sp, #0] + 10ec: 7801 ldrb r1, [r0, #0] + 10ee: 3001 add r0, #1 + 10f0: 9000 str r0, [sp, #0] + 10f2: 4668 mov r0, sp + 10f4: 84c1 strh r1, [r0, #38] ; 0x26 + 10f6: 9800 ldr r0, [sp, #0] + 10f8: 7801 ldrb r1, [r0, #0] + 10fa: 3001 add r0, #1 + 10fc: 9000 str r0, [sp, #0] + 10fe: 4668 mov r0, sp + 1100: 8481 strh r1, [r0, #36] ; 0x24 + 1102: 9807 ldr r0, [sp, #28] ; 0x1c + 1104: 1c81 add r1, r0, #2 + 1106: 9107 str r1, [sp, #28] ; 0x1c + 1108: 4669 mov r1, sp + 110a: 8c89 ldrh r1, [r1, #36] ; 0x24 + 110c: 466a mov r2, sp + 110e: 8cd2 ldrh r2, [r2, #38] ; 0x26 + 1110: 0212 lsl r2, r2, #8 + 1112: 1889 add r1, r1, r2 + 1114: 8001 strh r1, [r0, #0] + 1116: 9804 ldr r0, [sp, #16] ; 0x10 + 1118: 3002 add r0, #2 + 111a: 9004 str r0, [sp, #16] ; 0x10 + 111c: 9802 ldr r0, [sp, #8] + 111e: 3001 add r0, #1 + 1120: 9002 str r0, [sp, #8] + 1122: 9902 ldr r1, [sp, #8] + 1124: 4668 mov r0, sp + 1126: 7e00 ldrb r0, [r0, #24] ; 0x18 + 1128: 4281 cmp r1, r0 + 112a: dbde blt 0x10ea + 112c: e04a b 0x11c4 + 112e: 9804 ldr r0, [sp, #16] ; 0x10 + 1130: 3002 add r0, #2 + 1132: 9004 str r0, [sp, #16] ; 0x10 + 1134: 9800 ldr r0, [sp, #0] + 1136: 7801 ldrb r1, [r0, #0] + 1138: 3001 add r0, #1 + 113a: 9000 str r0, [sp, #0] + 113c: 4668 mov r0, sp + 113e: 8501 strh r1, [r0, #40] ; 0x28 + 1140: 9800 ldr r0, [sp, #0] + 1142: 7801 ldrb r1, [r0, #0] + 1144: 3001 add r0, #1 + 1146: 9000 str r0, [sp, #0] + 1148: 4668 mov r0, sp + 114a: 8541 strh r1, [r0, #42] ; 0x2a + 114c: 8d41 ldrh r1, [r0, #42] ; 0x2a + 114e: 8d00 ldrh r0, [r0, #40] ; 0x28 + 1150: 0200 lsl r0, r0, #8 + 1152: 1809 add r1, r1, r0 + 1154: 9801 ldr r0, [sp, #4] + 1156: 8081 strh r1, [r0, #4] + 1158: 9804 ldr r0, [sp, #16] ; 0x10 + 115a: 3002 add r0, #2 + 115c: 9004 str r0, [sp, #16] ; 0x10 + 115e: 9800 ldr r0, [sp, #0] + 1160: 7801 ldrb r1, [r0, #0] + 1162: 3001 add r0, #1 + 1164: 9000 str r0, [sp, #0] + 1166: 4668 mov r0, sp + 1168: 8581 strh r1, [r0, #44] ; 0x2c + 116a: 9800 ldr r0, [sp, #0] + 116c: 7801 ldrb r1, [r0, #0] + 116e: 3001 add r0, #1 + 1170: 9000 str r0, [sp, #0] + 1172: 4668 mov r0, sp + 1174: 85c1 strh r1, [r0, #46] ; 0x2e + 1176: 8dc1 ldrh r1, [r0, #46] ; 0x2e + 1178: 8d80 ldrh r0, [r0, #44] ; 0x2c + 117a: 0200 lsl r0, r0, #8 + 117c: 1808 add r0, r1, r0 + 117e: 9901 ldr r1, [sp, #4] + 1180: 80c8 strh r0, [r1, #6] + 1182: e01f b 0x11c4 + 1184: 2008 mov r0, #8 + 1186: e77e b 0x1086 + 1188: 9801 ldr r0, [sp, #4] + 118a: 7801 ldrb r1, [r0, #0] + 118c: 290a cmp r1, #10 ; 0xa + 118e: d8f9 bhi 0x1184 + 1190: a001 add r0, pc, #4 + 1192: 0089 lsl r1, r1, #2 + 1194: 5840 ldr r0, [r0, r1] + 1196: 4687 mov pc, r0 + 1198: 11c4 asr r4, r0, #7 + 119a: 0000 lsl r0, r0, #0 + 119c: 11c4 asr r4, r0, #7 + 119e: 0000 lsl r0, r0, #0 + 11a0: 11c4 asr r4, r0, #7 + 11a2: 0000 lsl r0, r0, #0 + 11a4: 11c4 asr r4, r0, #7 + 11a6: 0000 lsl r0, r0, #0 + 11a8: 11c4 asr r4, r0, #7 + 11aa: 0000 lsl r0, r0, #0 + 11ac: 11c4 asr r4, r0, #7 + 11ae: 0000 lsl r0, r0, #0 + 11b0: 11c4 asr r4, r0, #7 + 11b2: 0000 lsl r0, r0, #0 + 11b4: 1036 asr r6, r6, #32 + 11b6: 0000 lsl r0, r0, #0 + 11b8: 108a asr r2, r1, #2 + 11ba: 0000 lsl r0, r0, #0 + 11bc: 11c4 asr r4, r0, #7 + 11be: 0000 lsl r0, r0, #0 + 11c0: 112e asr r6, r5, #4 + 11c2: 0000 lsl r0, r0, #0 + 11c4: 9905 ldr r1, [sp, #20] ; 0x14 + 11c6: 9804 ldr r0, [sp, #16] ; 0x10 + 11c8: 4281 cmp r1, r0 + 11ca: d001 beq 0x11d0 + 11cc: 2004 mov r0, #4 + 11ce: 9003 str r0, [sp, #12] ; 0xc + 11d0: 9803 ldr r0, [sp, #12] ; 0xc + 11d2: b00c add sp, #48 ; 0x30 + 11d4: 4770 bx lr + 11d6: b089 sub sp, #36 ; 0x24 + 11d8: 9101 str r1, [sp, #4] + 11da: 9000 str r0, [sp, #0] + 11dc: 2000 mov r0, #0 + 11de: 9003 str r0, [sp, #12] ; 0xc + 11e0: 9801 ldr r0, [sp, #4] + 11e2: 1c41 add r1, r0, #1 + 11e4: 9101 str r1, [sp, #4] + 11e6: 9005 str r0, [sp, #20] ; 0x14 + 11e8: 9801 ldr r0, [sp, #4] + 11ea: 1c41 add r1, r0, #1 + 11ec: 9101 str r1, [sp, #4] + 11ee: 9900 ldr r1, [sp, #0] + 11f0: 7809 ldrb r1, [r1, #0] + 11f2: 7001 strb r1, [r0, #0] + 11f4: 4669 mov r1, sp + 11f6: 2001 mov r0, #1 + 11f8: 7408 strb r0, [r1, #16] ; 0x10 + 11fa: 9801 ldr r0, [sp, #4] + 11fc: 1c41 add r1, r0, #1 + 11fe: 9101 str r1, [sp, #4] + 1200: 9900 ldr r1, [sp, #0] + 1202: 7849 ldrb r1, [r1, #1] + 1204: 7001 strb r1, [r0, #0] + 1206: 4669 mov r1, sp + 1208: 4668 mov r0, sp + 120a: 7c00 ldrb r0, [r0, #16] ; 0x10 + 120c: 3001 add r0, #1 + 120e: 7408 strb r0, [r1, #16] ; 0x10 + 1210: e0e4 b 0x13dc + 1212: 9800 ldr r0, [sp, #0] + 1214: 7840 ldrb r0, [r0, #1] + 1216: 2800 cmp r0, #0 + 1218: d000 beq 0x121c + 121a: e0fd b 0x1418 + 121c: 9801 ldr r0, [sp, #4] + 121e: 1c41 add r1, r0, #1 + 1220: 9101 str r1, [sp, #4] + 1222: 9900 ldr r1, [sp, #0] + 1224: 7909 ldrb r1, [r1, #4] + 1226: 7001 strb r1, [r0, #0] + 1228: 9801 ldr r0, [sp, #4] + 122a: 1c41 add r1, r0, #1 + 122c: 9101 str r1, [sp, #4] + 122e: 9900 ldr r1, [sp, #0] + 1230: 7949 ldrb r1, [r1, #5] + 1232: 7001 strb r1, [r0, #0] + 1234: 9801 ldr r0, [sp, #4] + 1236: 1c41 add r1, r0, #1 + 1238: 9101 str r1, [sp, #4] + 123a: 9900 ldr r1, [sp, #0] + 123c: 7989 ldrb r1, [r1, #6] + 123e: 7001 strb r1, [r0, #0] + 1240: 4668 mov r0, sp + 1242: 7c00 ldrb r0, [r0, #16] ; 0x10 + 1244: 3003 add r0, #3 + 1246: 4669 mov r1, sp + 1248: 7408 strb r0, [r1, #16] ; 0x10 + 124a: e0e5 b 0x1418 + 124c: 9800 ldr r0, [sp, #0] + 124e: 7840 ldrb r0, [r0, #1] + 1250: 2800 cmp r0, #0 + 1252: d000 beq 0x1256 + 1254: e0e0 b 0x1418 + 1256: 9801 ldr r0, [sp, #4] + 1258: 1c41 add r1, r0, #1 + 125a: 9101 str r1, [sp, #4] + 125c: 9900 ldr r1, [sp, #0] + 125e: 7909 ldrb r1, [r1, #4] + 1260: 7001 strb r1, [r0, #0] + 1262: 4668 mov r0, sp + 1264: 7c00 ldrb r0, [r0, #16] ; 0x10 + 1266: 3001 add r0, #1 + 1268: e7ed b 0x1246 + 126a: 9800 ldr r0, [sp, #0] + 126c: 7840 ldrb r0, [r0, #1] + 126e: 2800 cmp r0, #0 + 1270: d000 beq 0x1274 + 1272: e0d1 b 0x1418 + 1274: e7ef b 0x1256 + 1276: 9800 ldr r0, [sp, #0] + 1278: 7840 ldrb r0, [r0, #1] + 127a: 2800 cmp r0, #0 + 127c: d000 beq 0x1280 + 127e: e0cb b 0x1418 + 1280: e7e9 b 0x1256 + 1282: 9800 ldr r0, [sp, #0] + 1284: 7840 ldrb r0, [r0, #1] + 1286: 2800 cmp r0, #0 + 1288: d000 beq 0x128c + 128a: e0c5 b 0x1418 + 128c: 4669 mov r1, sp + 128e: 9800 ldr r0, [sp, #0] + 1290: 8880 ldrh r0, [r0, #4] + 1292: 8408 strh r0, [r1, #32] ; 0x20 + 1294: 9801 ldr r0, [sp, #4] + 1296: 1c41 add r1, r0, #1 + 1298: 9101 str r1, [sp, #4] + 129a: 4669 mov r1, sp + 129c: 8c09 ldrh r1, [r1, #32] ; 0x20 + 129e: 0409 lsl r1, r1, #16 + 12a0: 0e09 lsr r1, r1, #24 + 12a2: 0209 lsl r1, r1, #8 + 12a4: 1209 asr r1, r1, #8 + 12a6: 7001 strb r1, [r0, #0] + 12a8: 9801 ldr r0, [sp, #4] + 12aa: 1c41 add r1, r0, #1 + 12ac: 9101 str r1, [sp, #4] + 12ae: 4669 mov r1, sp + 12b0: 8c09 ldrh r1, [r1, #32] ; 0x20 + 12b2: 0609 lsl r1, r1, #24 + 12b4: 0e09 lsr r1, r1, #24 + 12b6: 7001 strb r1, [r0, #0] + 12b8: 4669 mov r1, sp + 12ba: 9800 ldr r0, [sp, #0] + 12bc: 88c0 ldrh r0, [r0, #6] + 12be: 8408 strh r0, [r1, #32] ; 0x20 + 12c0: 9801 ldr r0, [sp, #4] + 12c2: 1c41 add r1, r0, #1 + 12c4: 9101 str r1, [sp, #4] + 12c6: 4669 mov r1, sp + 12c8: 8c09 ldrh r1, [r1, #32] ; 0x20 + 12ca: 0409 lsl r1, r1, #16 + 12cc: 0e09 lsr r1, r1, #24 + 12ce: 0209 lsl r1, r1, #8 + 12d0: 1209 asr r1, r1, #8 + 12d2: 7001 strb r1, [r0, #0] + 12d4: 9801 ldr r0, [sp, #4] + 12d6: 1c41 add r1, r0, #1 + 12d8: 9101 str r1, [sp, #4] + 12da: 4669 mov r1, sp + 12dc: 8c09 ldrh r1, [r1, #32] ; 0x20 + 12de: 0609 lsl r1, r1, #24 + 12e0: 0e09 lsr r1, r1, #24 + 12e2: 7001 strb r1, [r0, #0] + 12e4: 4668 mov r0, sp + 12e6: 7c00 ldrb r0, [r0, #16] ; 0x10 + 12e8: 3004 add r0, #4 + 12ea: e7ac b 0x1246 + 12ec: 9800 ldr r0, [sp, #0] + 12ee: 7840 ldrb r0, [r0, #1] + 12f0: 2800 cmp r0, #0 + 12f2: d000 beq 0x12f6 + 12f4: e090 b 0x1418 + 12f6: e7ae b 0x1256 + 12f8: 9800 ldr r0, [sp, #0] + 12fa: 7840 ldrb r0, [r0, #1] + 12fc: 2800 cmp r0, #0 + 12fe: d000 beq 0x1302 + 1300: e08a b 0x1418 + 1302: 4669 mov r1, sp + 1304: 4668 mov r0, sp + 1306: 7c00 ldrb r0, [r0, #16] ; 0x10 + 1308: 3001 add r0, #1 + 130a: 7408 strb r0, [r1, #16] ; 0x10 + 130c: 4668 mov r0, sp + 130e: 9900 ldr r1, [sp, #0] + 1310: 7909 ldrb r1, [r1, #4] + 1312: 7601 strb r1, [r0, #24] ; 0x18 + 1314: 9801 ldr r0, [sp, #4] + 1316: 1c41 add r1, r0, #1 + 1318: 9101 str r1, [sp, #4] + 131a: 4669 mov r1, sp + 131c: 7e09 ldrb r1, [r1, #24] ; 0x18 + 131e: 7001 strb r1, [r0, #0] + 1320: 4668 mov r0, sp + 1322: 7e00 ldrb r0, [r0, #24] ; 0x18 + 1324: 2840 cmp r0, #64 ; 0x40 + 1326: dd01 ble 0x132c + 1328: 2004 mov r0, #4 + 132a: e055 b 0x13d8 + 132c: 9800 ldr r0, [sp, #0] + 132e: 3006 add r0, #6 + 1330: 9007 str r0, [sp, #28] ; 0x1c + 1332: 2000 mov r0, #0 + 1334: 9002 str r0, [sp, #8] + 1336: 9902 ldr r1, [sp, #8] + 1338: 4668 mov r0, sp + 133a: 7e00 ldrb r0, [r0, #24] ; 0x18 + 133c: 4281 cmp r1, r0 + 133e: da6b bge 0x1418 + 1340: 9801 ldr r0, [sp, #4] + 1342: 1c41 add r1, r0, #1 + 1344: 9101 str r1, [sp, #4] + 1346: 9907 ldr r1, [sp, #28] ; 0x1c + 1348: 8809 ldrh r1, [r1, #0] + 134a: 0409 lsl r1, r1, #16 + 134c: 0e09 lsr r1, r1, #24 + 134e: 0209 lsl r1, r1, #8 + 1350: 1209 asr r1, r1, #8 + 1352: 7001 strb r1, [r0, #0] + 1354: 9807 ldr r0, [sp, #28] ; 0x1c + 1356: 8801 ldrh r1, [r0, #0] + 1358: 3002 add r0, #2 + 135a: 9007 str r0, [sp, #28] ; 0x1c + 135c: 0608 lsl r0, r1, #24 + 135e: 0e01 lsr r1, r0, #24 + 1360: 9801 ldr r0, [sp, #4] + 1362: 1c42 add r2, r0, #1 + 1364: 9201 str r2, [sp, #4] + 1366: 7001 strb r1, [r0, #0] + 1368: 4669 mov r1, sp + 136a: 4668 mov r0, sp + 136c: 7c00 ldrb r0, [r0, #16] ; 0x10 + 136e: 3002 add r0, #2 + 1370: 7408 strb r0, [r1, #16] ; 0x10 + 1372: 9802 ldr r0, [sp, #8] + 1374: 3001 add r0, #1 + 1376: 9002 str r0, [sp, #8] + 1378: 9902 ldr r1, [sp, #8] + 137a: 4668 mov r0, sp + 137c: 7e00 ldrb r0, [r0, #24] ; 0x18 + 137e: 4281 cmp r1, r0 + 1380: dbde blt 0x1340 + 1382: e049 b 0x1418 + 1384: 9800 ldr r0, [sp, #0] + 1386: 7840 ldrb r0, [r0, #1] + 1388: 2800 cmp r0, #0 + 138a: d145 bne 0x1418 + 138c: 4669 mov r1, sp + 138e: 9800 ldr r0, [sp, #0] + 1390: 8880 ldrh r0, [r0, #4] + 1392: 8408 strh r0, [r1, #32] ; 0x20 + 1394: 9801 ldr r0, [sp, #4] + 1396: 1c41 add r1, r0, #1 + 1398: 9101 str r1, [sp, #4] + 139a: 4669 mov r1, sp + 139c: 8c09 ldrh r1, [r1, #32] ; 0x20 + 139e: 0409 lsl r1, r1, #16 + 13a0: 0e09 lsr r1, r1, #24 + 13a2: 0209 lsl r1, r1, #8 + 13a4: 1209 asr r1, r1, #8 + 13a6: 7001 strb r1, [r0, #0] + 13a8: 9801 ldr r0, [sp, #4] + 13aa: 1c41 add r1, r0, #1 + 13ac: 9101 str r1, [sp, #4] + 13ae: 4669 mov r1, sp + 13b0: 8c09 ldrh r1, [r1, #32] ; 0x20 + 13b2: 0609 lsl r1, r1, #24 + 13b4: 0e09 lsr r1, r1, #24 + 13b6: 7001 strb r1, [r0, #0] + 13b8: 4668 mov r0, sp + 13ba: 9900 ldr r1, [sp, #0] + 13bc: 88c9 ldrh r1, [r1, #6] + 13be: 8401 strh r1, [r0, #32] ; 0x20 + 13c0: 9901 ldr r1, [sp, #4] + 13c2: 1c48 add r0, r1, #1 + 13c4: 9001 str r0, [sp, #4] + 13c6: 4668 mov r0, sp + 13c8: 8c00 ldrh r0, [r0, #32] ; 0x20 + 13ca: 0400 lsl r0, r0, #16 + 13cc: 0e00 lsr r0, r0, #24 + 13ce: 0200 lsl r0, r0, #8 + 13d0: 1200 asr r0, r0, #8 + 13d2: 7008 strb r0, [r1, #0] + 13d4: e77e b 0x12d4 + 13d6: 2008 mov r0, #8 + 13d8: 9003 str r0, [sp, #12] ; 0xc + 13da: e01d b 0x1418 + 13dc: 9800 ldr r0, [sp, #0] + 13de: 7800 ldrb r0, [r0, #0] + 13e0: 280a cmp r0, #10 ; 0xa + 13e2: d8f8 bhi 0x13d6 + 13e4: a101 add r1, pc, #4 + 13e6: 0080 lsl r0, r0, #2 + 13e8: 5808 ldr r0, [r1, r0] + 13ea: 4687 mov pc, r0 + 13ec: 1212 asr r2, r2, #8 + 13ee: 0000 lsl r0, r0, #0 + 13f0: 124c asr r4, r1, #9 + 13f2: 0000 lsl r0, r0, #0 + 13f4: 126a asr r2, r5, #9 + 13f6: 0000 lsl r0, r0, #0 + 13f8: 1276 asr r6, r6, #9 + 13fa: 0000 lsl r0, r0, #0 + 13fc: 1418 asr r0, r3, #16 + 13fe: 0000 lsl r0, r0, #0 + 1400: 1282 asr r2, r0, #10 + 1402: 0000 lsl r0, r0, #0 + 1404: 12ec asr r4, r5, #11 + 1406: 0000 lsl r0, r0, #0 + 1408: 12f8 asr r0, r7, #11 + 140a: 0000 lsl r0, r0, #0 + 140c: 1418 asr r0, r3, #16 + 140e: 0000 lsl r0, r0, #0 + 1410: 1384 asr r4, r0, #14 + 1412: 0000 lsl r0, r0, #0 + 1414: 1418 asr r0, r3, #16 + 1416: 0000 lsl r0, r0, #0 + 1418: 9805 ldr r0, [sp, #20] ; 0x14 + 141a: 4669 mov r1, sp + 141c: 7c09 ldrb r1, [r1, #16] ; 0x10 + 141e: 7001 strb r1, [r0, #0] + 1420: 9803 ldr r0, [sp, #12] ; 0xc + 1422: b009 add sp, #36 ; 0x24 + 1424: 4770 bx lr + 1426: 0000 lsl r0, r0, #0 + 1428: b500 push {lr} + 142a: b083 sub sp, #12 ; 0xc + 142c: 9101 str r1, [sp, #4] + 142e: 4669 mov r1, sp + 1430: 7008 strb r0, [r1, #0] + 1432: 2000 mov r0, #0 + 1434: 9002 str r0, [sp, #8] + 1436: e073 b 0x1520 + 1438: 4668 mov r0, sp + 143a: 7800 ldrb r0, [r0, #0] + 143c: 28aa cmp r0, #170 ; 0xaa + 143e: d106 bne 0x144e + 1440: 4965 ldr r1, =0x83ff10 ; via 0x15d8 + 1442: 4865 ldr r0, =0x83ff10 ; via 0x15d8 + 1444: 6800 ldr r0, [r0, #0] + 1446: 3001 add r0, #1 + 1448: 07c0 lsl r0, r0, #31 + 144a: 0fc0 lsr r0, r0, #31 + 144c: e013 b 0x1476 + 144e: 4862 ldr r0, =0x83ff10 ; via 0x15d8 + 1450: 6800 ldr r0, [r0, #0] + 1452: 2800 cmp r0, #0 + 1454: d06b beq 0x152e + 1456: 4961 ldr r1, =0x83ff04 ; via 0x15dc + 1458: 9801 ldr r0, [sp, #4] + 145a: 3001 add r0, #1 + 145c: 6008 str r0, [r1, #0] + 145e: 4960 ldr r1, =0x83ff0e ; via 0x15e0 + 1460: 2000 mov r0, #0 + 1462: 7008 strb r0, [r1, #0] + 1464: 495f ldr r1, =0x83ff0c ; via 0x15e4 + 1466: 4668 mov r0, sp + 1468: 7800 ldrb r0, [r0, #0] + 146a: 8008 strh r0, [r1, #0] + 146c: 495a ldr r1, =0x83ff10 ; via 0x15d8 + 146e: 2000 mov r0, #0 + 1470: 6008 str r0, [r1, #0] + 1472: 495d ldr r1, =0x83ff08 ; via 0x15e8 + 1474: 2001 mov r0, #1 + 1476: 6008 str r0, [r1, #0] + 1478: e059 b 0x152e + 147a: 4668 mov r0, sp + 147c: 7800 ldrb r0, [r0, #0] + 147e: 28aa cmp r0, #170 ; 0xaa + 1480: d113 bne 0x14aa + 1482: 4855 ldr r0, =0x83ff10 ; via 0x15d8 + 1484: 6800 ldr r0, [r0, #0] + 1486: 2800 cmp r0, #0 + 1488: d00b beq 0x14a2 + 148a: 4954 ldr r1, =0x83ff04 ; via 0x15dc + 148c: 6808 ldr r0, [r1, #0] + 148e: 1c42 add r2, r0, #1 + 1490: 600a str r2, [r1, #0] + 1492: 4669 mov r1, sp + 1494: 7809 ldrb r1, [r1, #0] + 1496: 7001 strb r1, [r0, #0] + 1498: 4951 ldr r1, =0x83ff0e ; via 0x15e0 + 149a: 7808 ldrb r0, [r1, #0] + 149c: 3001 add r0, #1 + 149e: 7008 strb r0, [r1, #0] + 14a0: e013 b 0x14ca + 14a2: 2101 mov r1, #1 + 14a4: 484c ldr r0, =0x83ff10 ; via 0x15d8 + 14a6: 6001 str r1, [r0, #0] + 14a8: e01c b 0x14e4 + 14aa: 484b ldr r0, =0x83ff10 ; via 0x15d8 + 14ac: 6800 ldr r0, [r0, #0] + 14ae: 2800 cmp r0, #0 + 14b0: d00d beq 0x14ce + 14b2: 494a ldr r1, =0x83ff04 ; via 0x15dc + 14b4: 9801 ldr r0, [sp, #4] + 14b6: 3001 add r0, #1 + 14b8: 6008 str r0, [r1, #0] + 14ba: 4849 ldr r0, =0x83ff0e ; via 0x15e0 + 14bc: 2100 mov r1, #0 + 14be: 7001 strb r1, [r0, #0] + 14c0: 4948 ldr r1, =0x83ff0c ; via 0x15e4 + 14c2: 4668 mov r0, sp + 14c4: 7800 ldrb r0, [r0, #0] + 14c6: 3001 add r0, #1 + 14c8: 8008 strh r0, [r1, #0] + 14ca: 2100 mov r1, #0 + 14cc: e7ea b 0x14a4 + 14ce: 4843 ldr r0, =0x83ff04 ; via 0x15dc + 14d0: 6801 ldr r1, [r0, #0] + 14d2: 1c4a add r2, r1, #1 + 14d4: 6002 str r2, [r0, #0] + 14d6: 4668 mov r0, sp + 14d8: 7800 ldrb r0, [r0, #0] + 14da: 7008 strb r0, [r1, #0] + 14dc: 4940 ldr r1, =0x83ff0e ; via 0x15e0 + 14de: 7808 ldrb r0, [r1, #0] + 14e0: 3001 add r0, #1 + 14e2: 7008 strb r0, [r1, #0] + 14e4: 483f ldr r0, =0x83ff0c ; via 0x15e4 + 14e6: 8801 ldrh r1, [r0, #0] + 14e8: 3901 sub r1, #1 + 14ea: 8001 strh r1, [r0, #0] + 14ec: 483d ldr r0, =0x83ff0c ; via 0x15e4 + 14ee: 8800 ldrh r0, [r0, #0] + 14f0: 2800 cmp r0, #0 + 14f2: d11c bne 0x152e + 14f4: 9901 ldr r1, [sp, #4] + 14f6: 483a ldr r0, =0x83ff0e ; via 0x15e0 + 14f8: 7800 ldrb r0, [r0, #0] + 14fa: 7008 strb r0, [r1, #0] + 14fc: 2001 mov r0, #1 + 14fe: 9002 str r0, [sp, #8] + 1500: 4839 ldr r0, =0x83ff08 ; via 0x15e8 + 1502: 2100 mov r1, #0 + 1504: 6001 str r1, [r0, #0] + 1506: 4834 ldr r0, =0x83ff10 ; via 0x15d8 + 1508: 6001 str r1, [r0, #0] + 150a: 9801 ldr r0, [sp, #4] + 150c: 7800 ldrb r0, [r0, #0] + 150e: 2801 cmp r0, #1 + 1510: d10d bne 0x152e + 1512: 9801 ldr r0, [sp, #4] + 1514: 7840 ldrb r0, [r0, #1] + 1516: 28dd cmp r0, #221 ; 0xdd + 1518: d109 bne 0x152e + 151a: f7ff fb03 bl 0xb24 + 151e: e006 b 0x152e + 1520: 4831 ldr r0, =0x83ff08 ; via 0x15e8 + 1522: 6800 ldr r0, [r0, #0] + 1524: 2800 cmp r0, #0 + 1526: d087 beq 0x1438 + 1528: 3801 sub r0, #1 + 152a: 2800 cmp r0, #0 + 152c: d0a5 beq 0x147a + 152e: 9802 ldr r0, [sp, #8] + 1530: b003 add sp, #12 ; 0xc + 1532: bd00 pop {pc} + 1534: b086 sub sp, #24 ; 0x18 + 1536: 9202 str r2, [sp, #8] + 1538: 9101 str r1, [sp, #4] + 153a: 9000 str r0, [sp, #0] + 153c: 9801 ldr r0, [sp, #4] + 153e: 3001 add r0, #1 + 1540: 9004 str r0, [sp, #16] ; 0x10 + 1542: 9800 ldr r0, [sp, #0] + 1544: 1c41 add r1, r0, #1 + 1546: 9100 str r1, [sp, #0] + 1548: 9005 str r0, [sp, #20] ; 0x14 + 154a: 9901 ldr r1, [sp, #4] + 154c: 20aa mov r0, #170 ; 0xaa + 154e: 7008 strb r0, [r1, #0] + 1550: 9801 ldr r0, [sp, #4] + 1552: 3002 add r0, #2 + 1554: 9001 str r0, [sp, #4] + 1556: 9902 ldr r1, [sp, #8] + 1558: 2000 mov r0, #0 + 155a: 8008 strh r0, [r1, #0] + 155c: 4669 mov r1, sp + 155e: 8188 strh r0, [r1, #12] ; 0xc + 1560: 4668 mov r0, sp + 1562: 8981 ldrh r1, [r0, #12] ; 0xc + 1564: 9805 ldr r0, [sp, #20] ; 0x14 + 1566: 7800 ldrb r0, [r0, #0] + 1568: 4281 cmp r1, r0 + 156a: da23 bge 0x15b4 + 156c: 9800 ldr r0, [sp, #0] + 156e: 7800 ldrb r0, [r0, #0] + 1570: 28aa cmp r0, #170 ; 0xaa + 1572: d108 bne 0x1586 + 1574: 9801 ldr r0, [sp, #4] + 1576: 1c41 add r1, r0, #1 + 1578: 9101 str r1, [sp, #4] + 157a: 21aa mov r1, #170 ; 0xaa + 157c: 7001 strb r1, [r0, #0] + 157e: 9902 ldr r1, [sp, #8] + 1580: 8808 ldrh r0, [r1, #0] + 1582: 3001 add r0, #1 + 1584: 8008 strh r0, [r1, #0] + 1586: 9800 ldr r0, [sp, #0] + 1588: 7801 ldrb r1, [r0, #0] + 158a: 3001 add r0, #1 + 158c: 9000 str r0, [sp, #0] + 158e: 9801 ldr r0, [sp, #4] + 1590: 1c42 add r2, r0, #1 + 1592: 9201 str r2, [sp, #4] + 1594: 7001 strb r1, [r0, #0] + 1596: 9902 ldr r1, [sp, #8] + 1598: 8808 ldrh r0, [r1, #0] + 159a: 3001 add r0, #1 + 159c: 8008 strh r0, [r1, #0] + 159e: 4669 mov r1, sp + 15a0: 4668 mov r0, sp + 15a2: 8980 ldrh r0, [r0, #12] ; 0xc + 15a4: 3001 add r0, #1 + 15a6: 8188 strh r0, [r1, #12] ; 0xc + 15a8: 4668 mov r0, sp + 15aa: 8980 ldrh r0, [r0, #12] ; 0xc + 15ac: 9905 ldr r1, [sp, #20] ; 0x14 + 15ae: 7809 ldrb r1, [r1, #0] + 15b0: 4288 cmp r0, r1 + 15b2: dbdb blt 0x156c + 15b4: 9904 ldr r1, [sp, #16] ; 0x10 + 15b6: 9802 ldr r0, [sp, #8] + 15b8: 7800 ldrb r0, [r0, #0] + 15ba: 7008 strb r0, [r1, #0] + 15bc: 9902 ldr r1, [sp, #8] + 15be: 8808 ldrh r0, [r1, #0] + 15c0: 3002 add r0, #2 + 15c2: 8008 strh r0, [r1, #0] + 15c4: b006 add sp, #24 ; 0x18 + 15c6: 4770 bx lr + +; function zeroes out IRAM word vars at 0x83ff08 and 0x83ff10 + 15c8: 4907 ldr r1, =0x83ff08 ; via 0x15e8 + 15ca: 2000 mov r0, #0 + 15cc: 6008 str r0, [r1, #0] + 15ce: 4802 ldr r0, =0x83ff10 ; via 0x15d8 + 15d0: 2100 mov r1, #0 + 15d2: 6001 str r1, [r0, #0] + 15d4: 4770 bx lr + 15d6: 46c0 nop (mov r8, r8) + + 15d8: 0083ff10 + 15dc: 0083ff04 + 15e0: 0083ff0e + 15e4: 0083ff0c + 15e8: 0083ff08 + + 15ec: b082 sub sp, #8 + 15ee: 9101 str r1, [sp, #4] + 15f0: 9000 str r0, [sp, #0] + 15f2: 9901 ldr r1, [sp, #4] + 15f4: 2000 mov r0, #0 + 15f6: 7008 strb r0, [r1, #0] + 15f8: 9801 ldr r0, [sp, #4] + 15fa: 2100 mov r1, #0 + 15fc: 7041 strb r1, [r0, #1] + 15fe: 9801 ldr r0, [sp, #4] + 1600: 2102 mov r1, #2 + 1602: 7101 strb r1, [r0, #4] + 1604: 9801 ldr r0, [sp, #4] + 1606: 2106 mov r1, #6 + 1608: 7141 strb r1, [r0, #5] + 160a: 9801 ldr r0, [sp, #4] + 160c: 2102 mov r1, #2 + 160e: 7181 strb r1, [r0, #6] + 1610: b002 add sp, #8 + 1612: 4770 bx lr + + 1614: b500 push {lr} + 1616: b084 sub sp, #16 ; 0x10 + 1618: 466b mov r3, sp + 161a: 721a strb r2, [r3, #8] + 161c: 9101 str r1, [sp, #4] + 161e: 9000 str r0, [sp, #0] + 1620: 9901 ldr r1, [sp, #4] + 1622: 2009 mov r0, #9 + 1624: 7008 strb r0, [r1, #0] + 1626: e015 b 0x1654 + 1628: 9801 ldr r0, [sp, #4] + 162a: 2100 mov r1, #0 + 162c: 7041 strb r1, [r0, #1] + 162e: 9901 ldr r1, [sp, #4] + 1630: 4668 mov r0, sp + 1632: 8940 ldrh r0, [r0, #10] ; 0xa + 1634: 8088 strh r0, [r1, #4] + 1636: 9901 ldr r1, [sp, #4] + 1638: 4668 mov r0, sp + 163a: 8980 ldrh r0, [r0, #12] ; 0xc + 163c: 80c8 strh r0, [r1, #6] + 163e: e01e b 0x167e + 1640: 2101 mov r1, #1 + 1642: e004 b 0x164e + 1644: 2103 mov r1, #3 + 1646: e002 b 0x164e + 1648: 2105 mov r1, #5 + 164a: e000 b 0x164e + 164c: 2106 mov r1, #6 + 164e: 9801 ldr r0, [sp, #4] + 1650: 7041 strb r1, [r0, #1] + 1652: e014 b 0x167e + 1654: 200a mov r0, #10 ; 0xa + 1656: 4468 add r0, sp + 1658: a903 add r1, sp, #12 ; 0xc + 165a: 466a mov r2, sp + 165c: 7a12 ldrb r2, [r2, #8] + 165e: f000 fb71 bl 0x1d44 + 1662: 2800 cmp r0, #0 + 1664: d0e0 beq 0x1628 + 1666: 3801 sub r0, #1 + 1668: 2800 cmp r0, #0 + 166a: d0e9 beq 0x1640 + 166c: 3801 sub r0, #1 + 166e: 2800 cmp r0, #0 + 1670: d0e8 beq 0x1644 + 1672: 3801 sub r0, #1 + 1674: 2800 cmp r0, #0 + 1676: d0e7 beq 0x1648 + 1678: 3801 sub r0, #1 + 167a: 2800 cmp r0, #0 + 167c: d0e6 beq 0x164c + 167e: b004 add sp, #16 ; 0x10 + 1680: bd00 pop {pc} + 1682: b084 sub sp, #16 ; 0x10 + 1684: 9101 str r1, [sp, #4] + 1686: 9000 str r0, [sp, #0] + 1688: 9901 ldr r1, [sp, #4] + 168a: 200a mov r0, #10 ; 0xa + 168c: 7008 strb r0, [r1, #0] + 168e: 9801 ldr r0, [sp, #4] + 1690: 2100 mov r1, #0 + 1692: 7041 strb r1, [r0, #1] + 1694: 4669 mov r1, sp + 1696: 9800 ldr r0, [sp, #0] + 1698: 8880 ldrh r0, [r0, #4] + 169a: 8108 strh r0, [r1, #8] + 169c: 9800 ldr r0, [sp, #0] + 169e: 88c0 ldrh r0, [r0, #6] + 16a0: 8148 strh r0, [r1, #10] ; 0xa + 16a2: 4668 mov r0, sp + 16a4: 8941 ldrh r1, [r0, #10] ; 0xa + 16a6: 8900 ldrh r0, [r0, #8] + 16a8: 0400 lsl r0, r0, #16 + 16aa: 1808 add r0, r1, r0 + 16ac: 9003 str r0, [sp, #12] ; 0xc + 16ae: 9803 ldr r0, [sp, #12] ; 0xc + 16b0: b004 add sp, #16 ; 0x10 + 16b2: 4770 bx lr + 16b4: b085 sub sp, #20 ; 0x14 + 16b6: 9303 str r3, [sp, #12] ; 0xc + 16b8: 9202 str r2, [sp, #8] + 16ba: 9101 str r1, [sp, #4] + 16bc: 4669 mov r1, sp + 16be: 7008 strb r0, [r1, #0] + 16c0: 48ea ldr r0, =0x83ff19 ; via 0x1a6c + 16c2: 7809 ldrb r1, [r1, #0] + 16c4: 7802 ldrb r2, [r0, #0] + 16c6: 1889 add r1, r1, r2 + 16c8: 7001 strb r1, [r0, #0] + 16ca: 48e9 ldr r0, =0x83ff1a ; via 0x1a70 + 16cc: 7800 ldrb r0, [r0, #0] + 16ce: 2800 cmp r0, #0 + 16d0: d00e beq 0x16f0 + 16d2: 48e8 ldr r0, =0x83ff26 ; via 0x1a74 + 16d4: 4669 mov r1, sp + 16d6: 780a ldrb r2, [r1, #0] + 16d8: 8801 ldrh r1, [r0, #0] + 16da: 1851 add r1, r2, r1 + 16dc: 8001 strh r1, [r0, #0] + 16de: 9903 ldr r1, [sp, #12] ; 0xc + 16e0: 48e4 ldr r0, =0x83ff26 ; via 0x1a74 + 16e2: 8800 ldrh r0, [r0, #0] + 16e4: 8008 strh r0, [r1, #0] + 16e6: 9801 ldr r0, [sp, #4] + 16e8: 2100 mov r1, #0 + 16ea: 6001 str r1, [r0, #0] + 16ec: 2000 mov r0, #0 + 16ee: e009 b 0x1704 + 16f0: 9902 ldr r1, [sp, #8] + 16f2: 6808 ldr r0, [r1, #0] + 16f4: 3002 add r0, #2 + 16f6: 6008 str r0, [r1, #0] + 16f8: 49de ldr r1, =0x83ff26 ; via 0x1a74 + 16fa: 4668 mov r0, sp + 16fc: 7800 ldrb r0, [r0, #0] + 16fe: 0200 lsl r0, r0, #8 + 1700: 8008 strh r0, [r1, #0] + 1702: 2001 mov r0, #1 + 1704: 9004 str r0, [sp, #16] ; 0x10 + 1706: 2001 mov r0, #1 + 1708: 49d9 ldr r1, =0x83ff1a ; via 0x1a70 + 170a: 7809 ldrb r1, [r1, #0] + 170c: 4388 bic r0, r1 + 170e: 49d8 ldr r1, =0x83ff1a ; via 0x1a70 + 1710: 7008 strb r0, [r1, #0] + 1712: 48d9 ldr r0, =0x83ff24 ; via 0x1a78 + 1714: 7801 ldrb r1, [r0, #0] + 1716: 3901 sub r1, #1 + 1718: 7001 strb r1, [r0, #0] + 171a: 48d7 ldr r0, =0x83ff24 ; via 0x1a78 + 171c: 7800 ldrb r0, [r0, #0] + 171e: 2800 cmp r0, #0 + 1720: d102 bne 0x1728 + 1722: 48d6 ldr r0, =0x83ff20 ; via 0x1a7c + 1724: 2106 mov r1, #6 + 1726: 6001 str r1, [r0, #0] + 1728: 9804 ldr r0, [sp, #16] ; 0x10 + 172a: b005 add sp, #20 ; 0x14 + 172c: 46f7 mov pc, lr + 172e: b083 sub sp, #12 ; 0xc + 1730: 9101 str r1, [sp, #4] + 1732: 4669 mov r1, sp + 1734: 7008 strb r0, [r1, #0] + 1736: 2001 mov r0, #1 + 1738: 9002 str r0, [sp, #8] + 173a: 48d1 ldr r0, =0x83ff1b ; via 0x1a80 + 173c: 7800 ldrb r0, [r0, #0] + 173e: 2800 cmp r0, #0 + 1740: d10a bne 0x1758 + 1742: 4668 mov r0, sp + 1744: 7800 ldrb r0, [r0, #0] + 1746: 2853 cmp r0, #83 ; 0x53 + 1748: d102 bne 0x1750 + 174a: 48cd ldr r0, =0x83ff1b ; via 0x1a80 + 174c: 2101 mov r1, #1 + 174e: e01a b 0x1786 + 1750: 2101 mov r1, #1 + 1752: 9801 ldr r0, [sp, #4] + 1754: 6001 str r1, [r0, #0] + 1756: e03b b 0x17d0 + 1758: 49c9 ldr r1, =0x83ff1b ; via 0x1a80 + 175a: 2000 mov r0, #0 + 175c: 7008 strb r0, [r1, #0] + 175e: 4668 mov r0, sp + 1760: 7800 ldrb r0, [r0, #0] + 1762: 2830 cmp r0, #48 ; 0x30 + 1764: d111 bne 0x178a + 1766: 48c7 ldr r0, =0x83ff18 ; via 0x1a84 + 1768: 7800 ldrb r0, [r0, #0] + 176a: 2800 cmp r0, #0 + 176c: d006 beq 0x177c + 176e: 9901 ldr r1, [sp, #4] + 1770: 2001 mov r0, #1 + 1772: 6008 str r0, [r1, #0] + 1774: 49c3 ldr r1, =0x83ff18 ; via 0x1a84 + 1776: 2000 mov r0, #0 + 1778: 7008 strb r0, [r1, #0] + 177a: e02a b 0x17d2 + 177c: 48bf ldr r0, =0x83ff20 ; via 0x1a7c + 177e: 2102 mov r1, #2 + 1780: 6001 str r1, [r0, #0] + 1782: 48ef ldr r0, =0x83ff1c ; via 0x1b40 + 1784: 2100 mov r1, #0 + 1786: 7001 strb r1, [r0, #0] + 1788: e024 b 0x17d4 + 178a: 4668 mov r0, sp + 178c: 7800 ldrb r0, [r0, #0] + 178e: 2833 cmp r0, #51 ; 0x33 + 1790: d105 bne 0x179e + 1792: 48bc ldr r0, =0x83ff18 ; via 0x1a84 + 1794: 7800 ldrb r0, [r0, #0] + 1796: 2800 cmp r0, #0 + 1798: d0da beq 0x1750 + 179a: 2004 mov r0, #4 + 179c: e00c b 0x17b8 + 179e: 4668 mov r0, sp + 17a0: 7800 ldrb r0, [r0, #0] + 17a2: 2837 cmp r0, #55 ; 0x37 + 17a4: d10e bne 0x17c4 + 17a6: 48b7 ldr r0, =0x83ff18 ; via 0x1a84 + 17a8: 7800 ldrb r0, [r0, #0] + 17aa: 2800 cmp r0, #0 + 17ac: d103 bne 0x17b6 + 17ae: 9901 ldr r1, [sp, #4] + 17b0: 2001 mov r0, #1 + 17b2: 6008 str r0, [r1, #0] + 17b4: e00c b 0x17d0 + 17b6: 2003 mov r0, #3 + 17b8: 49b0 ldr r1, =0x83ff20 ; via 0x1a7c + 17ba: 6008 str r0, [r1, #0] + 17bc: 2000 mov r0, #0 + 17be: 49e0 ldr r1, =0x83ff1c ; via 0x1b40 + 17c0: 7008 strb r0, [r1, #0] + 17c2: e007 b 0x17d4 + 17c4: 9901 ldr r1, [sp, #4] + 17c6: 2001 mov r0, #1 + 17c8: 6008 str r0, [r1, #0] + 17ca: 48ae ldr r0, =0x83ff18 ; via 0x1a84 + 17cc: 2100 mov r1, #0 + 17ce: 7001 strb r1, [r0, #0] + 17d0: 2000 mov r0, #0 + 17d2: 9002 str r0, [sp, #8] + 17d4: 9802 ldr r0, [sp, #8] + 17d6: b003 add sp, #12 ; 0xc + 17d8: 46f7 mov pc, lr + 17da: b083 sub sp, #12 ; 0xc + 17dc: 9101 str r1, [sp, #4] + 17de: 4669 mov r1, sp + 17e0: 7008 strb r0, [r1, #0] + 17e2: 2001 mov r0, #1 + 17e4: 9002 str r0, [sp, #8] + 17e6: 49d7 ldr r1, =0x830 ; via 0x1b44 + 17e8: 48d5 ldr r0, =0x83ff1c ; via 0x1b40 + 17ea: 7800 ldrb r0, [r0, #0] + 17ec: 0080 lsl r0, r0, #2 + 17ee: 5808 ldr r0, [r1, r0] + 17f0: 4669 mov r1, sp + 17f2: 7809 ldrb r1, [r1, #0] + 17f4: 4281 cmp r1, r0 + 17f6: d10d bne 0x1814 + 17f8: 49d1 ldr r1, =0x83ff1c ; via 0x1b40 + 17fa: 7808 ldrb r0, [r1, #0] + 17fc: 3001 add r0, #1 + 17fe: 7008 strb r0, [r1, #0] + 1800: 48cf ldr r0, =0x83ff1c ; via 0x1b40 + 1802: 7800 ldrb r0, [r0, #0] + 1804: 2807 cmp r0, #7 + 1806: d10d bne 0x1824 + 1808: 489c ldr r0, =0x83ff20 ; via 0x1a7c + 180a: 2101 mov r1, #1 + 180c: 6001 str r1, [r0, #0] + 180e: 489d ldr r0, =0x83ff18 ; via 0x1a84 + 1810: 7001 strb r1, [r0, #0] + 1812: e007 b 0x1824 + 1814: 9801 ldr r0, [sp, #4] + 1816: 2101 mov r1, #1 + 1818: 6001 str r1, [r0, #0] + 181a: 4998 ldr r1, =0x83ff20 ; via 0x1a7c + 181c: 2001 mov r0, #1 + 181e: 6008 str r0, [r1, #0] + 1820: 2000 mov r0, #0 + 1822: 9002 str r0, [sp, #8] + 1824: 9802 ldr r0, [sp, #8] + 1826: b003 add sp, #12 ; 0xc + 1828: 46f7 mov pc, lr + 182a: b083 sub sp, #12 ; 0xc + 182c: 9101 str r1, [sp, #4] + 182e: 4669 mov r1, sp + 1830: 7008 strb r0, [r1, #0] + 1832: 2001 mov r0, #1 + 1834: 9002 str r0, [sp, #8] + 1836: 49c4 ldr r1, =0x84c ; via 0x1b48 + 1838: 48c1 ldr r0, =0x83ff1c ; via 0x1b40 + 183a: 7800 ldrb r0, [r0, #0] + 183c: 0080 lsl r0, r0, #2 + 183e: 5808 ldr r0, [r1, r0] + 1840: 4669 mov r1, sp + 1842: 7809 ldrb r1, [r1, #0] + 1844: 4281 cmp r1, r0 + 1846: d112 bne 0x186e + 1848: 49bd ldr r1, =0x83ff1c ; via 0x1b40 + 184a: 7808 ldrb r0, [r1, #0] + 184c: 3001 add r0, #1 + 184e: 7008 strb r0, [r1, #0] + 1850: 48bb ldr r0, =0x83ff1c ; via 0x1b40 + 1852: 7800 ldrb r0, [r0, #0] + 1854: 2806 cmp r0, #6 + 1856: d114 bne 0x1882 + 1858: 9801 ldr r0, [sp, #4] + 185a: 2102 mov r1, #2 + 185c: 6001 str r1, [r0, #0] + 185e: 4887 ldr r0, =0x83ff20 ; via 0x1a7c + 1860: 2101 mov r1, #1 + 1862: 6001 str r1, [r0, #0] + 1864: 4887 ldr r0, =0x83ff18 ; via 0x1a84 + 1866: 2100 mov r1, #0 + 1868: 7001 strb r1, [r0, #0] + 186a: 2000 mov r0, #0 + 186c: e008 b 0x1880 + 186e: 9801 ldr r0, [sp, #4] + 1870: 2101 mov r1, #1 + 1872: 6001 str r1, [r0, #0] + 1874: 4981 ldr r1, =0x83ff20 ; via 0x1a7c + 1876: 2001 mov r0, #1 + 1878: 6008 str r0, [r1, #0] + 187a: 4982 ldr r1, =0x83ff18 ; via 0x1a84 + 187c: 2000 mov r0, #0 + 187e: 7008 strb r0, [r1, #0] + 1880: 9002 str r0, [sp, #8] + 1882: 9802 ldr r0, [sp, #8] + 1884: b003 add sp, #12 ; 0xc + 1886: 46f7 mov pc, lr + 1888: b081 sub sp, #4 + 188a: 4669 mov r1, sp + 188c: 7008 strb r0, [r1, #0] + 188e: 497a ldr r1, =0x83ff24 ; via 0x1a78 + 1890: 4668 mov r0, sp + 1892: 7800 ldrb r0, [r0, #0] + 1894: 3801 sub r0, #1 + 1896: 7008 strb r0, [r1, #0] + 1898: 4874 ldr r0, =0x83ff19 ; via 0x1a6c + 189a: 4669 mov r1, sp + 189c: 7809 ldrb r1, [r1, #0] + 189e: 7001 strb r1, [r0, #0] + 18a0: 48a7 ldr r0, =0x83ff1c ; via 0x1b40 + 18a2: 2100 mov r1, #0 + 18a4: 7001 strb r1, [r0, #0] + 18a6: 48e3 ldr r0, =0x83ff14 ; via 0x1c34 + 18a8: 6001 str r1, [r0, #0] + 18aa: 4874 ldr r0, =0x83ff20 ; via 0x1a7c + 18ac: 2105 mov r1, #5 + 18ae: 6001 str r1, [r0, #0] + 18b0: b001 add sp, #4 + 18b2: 46f7 mov pc, lr + 18b4: b084 sub sp, #16 ; 0x10 + 18b6: 9202 str r2, [sp, #8] + 18b8: 9101 str r1, [sp, #4] + 18ba: 4669 mov r1, sp + 18bc: 7008 strb r0, [r1, #0] + 18be: 2001 mov r0, #1 + 18c0: 9003 str r0, [sp, #12] ; 0xc + 18c2: 496d ldr r1, =0x83ff24 ; via 0x1a78 + 18c4: 7808 ldrb r0, [r1, #0] + 18c6: 3801 sub r0, #1 + 18c8: 7008 strb r0, [r1, #0] + 18ca: 486b ldr r0, =0x83ff24 ; via 0x1a78 + 18cc: 7800 ldrb r0, [r0, #0] + 18ce: 2800 cmp r0, #0 + 18d0: d026 beq 0x1920 + 18d2: 4866 ldr r0, =0x83ff19 ; via 0x1a6c + 18d4: 4669 mov r1, sp + 18d6: 780a ldrb r2, [r1, #0] + 18d8: 7801 ldrb r1, [r0, #0] + 18da: 1851 add r1, r2, r1 + 18dc: 7001 strb r1, [r0, #0] + 18de: 4998 ldr r1, =0x83ff1c ; via 0x1b40 + 18e0: 7808 ldrb r0, [r1, #0] + 18e2: 3001 add r0, #1 + 18e4: 7008 strb r0, [r1, #0] + 18e6: 49d3 ldr r1, =0x83ff14 ; via 0x1c34 + 18e8: 2204 mov r2, #4 + 18ea: 4895 ldr r0, =0x83ff1c ; via 0x1b40 + 18ec: 7800 ldrb r0, [r0, #0] + 18ee: 1a10 sub r0, r2, r0 + 18f0: 00c2 lsl r2, r0, #3 + 18f2: 4668 mov r0, sp + 18f4: 7800 ldrb r0, [r0, #0] + 18f6: 4090 lsl r0, r2 + 18f8: 680a ldr r2, [r1, #0] + 18fa: 1880 add r0, r0, r2 + 18fc: 6008 str r0, [r1, #0] + 18fe: 4890 ldr r0, =0x83ff1c ; via 0x1b40 + 1900: 7800 ldrb r0, [r0, #0] + 1902: 2804 cmp r0, #4 + 1904: d117 bne 0x1936 + 1906: 9902 ldr r1, [sp, #8] + 1908: 48ca ldr r0, =0x83ff14 ; via 0x1c34 + 190a: 6800 ldr r0, [r0, #0] + 190c: 3802 sub r0, #2 + 190e: 6008 str r0, [r1, #0] + 1910: 485a ldr r0, =0x83ff20 ; via 0x1a7c + 1912: 2100 mov r1, #0 + 1914: 6001 str r1, [r0, #0] + 1916: 4856 ldr r0, =0x83ff1a ; via 0x1a70 + 1918: 7001 strb r1, [r0, #0] + 191a: 4889 ldr r0, =0x83ff1c ; via 0x1b40 + 191c: 7001 strb r1, [r0, #0] + 191e: e00a b 0x1936 + 1920: 9801 ldr r0, [sp, #4] + 1922: 2101 mov r1, #1 + 1924: 6001 str r1, [r0, #0] + 1926: 4955 ldr r1, =0x83ff20 ; via 0x1a7c + 1928: 2001 mov r0, #1 + 192a: 6008 str r0, [r1, #0] + 192c: 4855 ldr r0, =0x83ff18 ; via 0x1a84 + 192e: 2100 mov r1, #0 + 1930: 7001 strb r1, [r0, #0] + 1932: 2000 mov r0, #0 + 1934: 9003 str r0, [sp, #12] ; 0xc + 1936: 9803 ldr r0, [sp, #12] ; 0xc + 1938: b004 add sp, #16 ; 0x10 + 193a: 46f7 mov pc, lr + 193c: b083 sub sp, #12 ; 0xc + 193e: 9101 str r1, [sp, #4] + 1940: 4669 mov r1, sp + 1942: 7008 strb r0, [r1, #0] + 1944: 2001 mov r0, #1 + 1946: 9002 str r0, [sp, #8] + 1948: 494c ldr r1, =0x83ff20 ; via 0x1a7c + 194a: 6008 str r0, [r1, #0] + 194c: 20ff mov r0, #255 ; 0xff + 194e: 4669 mov r1, sp + 1950: 7809 ldrb r1, [r1, #0] + 1952: 4388 bic r0, r1 + 1954: 4945 ldr r1, =0x83ff19 ; via 0x1a6c + 1956: 7809 ldrb r1, [r1, #0] + 1958: 4281 cmp r1, r0 + 195a: d007 beq 0x196c + 195c: 9801 ldr r0, [sp, #4] + 195e: 2101 mov r1, #1 + 1960: 6001 str r1, [r0, #0] + 1962: 4848 ldr r0, =0x83ff18 ; via 0x1a84 + 1964: 2100 mov r1, #0 + 1966: 7001 strb r1, [r0, #0] + 1968: 2000 mov r0, #0 + 196a: 9002 str r0, [sp, #8] + 196c: 9802 ldr r0, [sp, #8] + 196e: b003 add sp, #12 ; 0xc + 1970: 46f7 mov pc, lr + 1972: b085 sub sp, #20 ; 0x14 + 1974: 466b mov r3, sp + 1976: 719a strb r2, [r3, #6] + 1978: 466a mov r2, sp + 197a: 8091 strh r1, [r2, #4] + 197c: 9000 str r0, [sp, #0] + 197e: 9800 ldr r0, [sp, #0] + 1980: 9002 str r0, [sp, #8] + 1982: 4669 mov r1, sp + 1984: 4668 mov r0, sp + 1986: 8880 ldrh r0, [r0, #4] + 1988: 8208 strh r0, [r1, #16] ; 0x10 + 198a: 4668 mov r0, sp + 198c: 8a00 ldrh r0, [r0, #16] ; 0x10 + 198e: 2800 cmp r0, #0 + 1990: d01e beq 0x19d0 + 1992: 49e3 ldr r1, =0x864 ; via 0x1d20 + 1994: 4668 mov r0, sp + 1996: 7980 ldrb r0, [r0, #6] + 1998: 0080 lsl r0, r0, #2 + 199a: 5808 ldr r0, [r1, r0] + 199c: 7941 ldrb r1, [r0, #5] + 199e: 4668 mov r0, sp + 19a0: 7301 strb r1, [r0, #12] ; 0xc + 19a2: 7b00 ldrb r0, [r0, #12] ; 0xc + 19a4: 0980 lsr r0, r0, #6 + 19a6: d3f4 bcc 0x1992 + 19a8: 49dd ldr r1, =0x864 ; via 0x1d20 + 19aa: 4668 mov r0, sp + 19ac: 7980 ldrb r0, [r0, #6] + 19ae: 0080 lsl r0, r0, #2 + 19b0: 5809 ldr r1, [r1, r0] + 19b2: 9802 ldr r0, [sp, #8] + 19b4: 7800 ldrb r0, [r0, #0] + 19b6: 7008 strb r0, [r1, #0] + 19b8: 9802 ldr r0, [sp, #8] + 19ba: 3001 add r0, #1 + 19bc: 9002 str r0, [sp, #8] + 19be: 4669 mov r1, sp + 19c0: 4668 mov r0, sp + 19c2: 8a00 ldrh r0, [r0, #16] ; 0x10 + 19c4: 3801 sub r0, #1 + 19c6: 8208 strh r0, [r1, #16] ; 0x10 + 19c8: 4668 mov r0, sp + 19ca: 8a00 ldrh r0, [r0, #16] ; 0x10 + 19cc: 2800 cmp r0, #0 + 19ce: d1e0 bne 0x1992 + 19d0: b005 add sp, #20 ; 0x14 + 19d2: 46f7 mov pc, lr + 19d4: b082 sub sp, #8 + 19d6: 4669 mov r1, sp + 19d8: 7008 strb r0, [r1, #0] + 19da: 2000 mov r0, #0 + 19dc: 8088 strh r0, [r1, #4] + 19de: 4668 mov r0, sp + 19e0: 8881 ldrh r1, [r0, #4] + 19e2: 20ff mov r0, #255 ; 0xff + 19e4: 30f5 add r0, #245 ; 0xf5 + 19e6: 4281 cmp r1, r0 + 19e8: da21 bge 0x1a2e + 19ea: 4669 mov r1, sp + 19ec: 4668 mov r0, sp + 19ee: 8880 ldrh r0, [r0, #4] + 19f0: 3001 add r0, #1 + 19f2: 8088 strh r0, [r1, #4] + 19f4: 48ca ldr r0, =0x864 ; via 0x1d20 + 19f6: 7809 ldrb r1, [r1, #0] + 19f8: 0089 lsl r1, r1, #2 + 19fa: 5840 ldr r0, [r0, r1] + 19fc: 7940 ldrb r0, [r0, #5] + 19fe: 4669 mov r1, sp + 1a00: 7048 strb r0, [r1, #1] + 1a02: 4668 mov r0, sp + 1a04: 7840 ldrb r0, [r0, #1] + 1a06: 0840 lsr r0, r0, #1 + 1a08: d30b bcc 0x1a22 + 1a0a: 49c5 ldr r1, =0x864 ; via 0x1d20 + 1a0c: 4668 mov r0, sp + 1a0e: 7800 ldrb r0, [r0, #0] + 1a10: 0080 lsl r0, r0, #2 + 1a12: 5808 ldr r0, [r1, r0] + 1a14: 7800 ldrb r0, [r0, #0] + 1a16: 0600 lsl r0, r0, #24 + 1a18: 0e00 lsr r0, r0, #24 + 1a1a: 4669 mov r1, sp + 1a1c: 7088 strb r0, [r1, #2] + 1a1e: 2000 mov r0, #0 + 1a20: 8088 strh r0, [r1, #4] + 1a22: 4668 mov r0, sp + 1a24: 8881 ldrh r1, [r0, #4] + 1a26: 20ff mov r0, #255 ; 0xff + 1a28: 30f5 add r0, #245 ; 0xf5 + 1a2a: 4281 cmp r1, r0 + 1a2c: dbdd blt 0x19ea + 1a2e: b002 add sp, #8 + 1a30: 4770 bx lr + 1a32: b500 push {lr} + 1a34: b08c sub sp, #48 ; 0x30 + 1a36: 466a mov r2, sp + 1a38: 7111 strb r1, [r2, #4] + 1a3a: 9000 str r0, [sp, #0] + 1a3c: 2001 mov r0, #1 + 1a3e: 9002 str r0, [sp, #8] + 1a40: 9800 ldr r0, [sp, #0] + 1a42: a904 add r1, sp, #16 ; 0x10 + 1a44: aa03 add r2, sp, #12 ; 0xc + 1a46: f7ff fd75 bl 0x1534 + 1a4a: 4668 mov r0, sp + 1a4c: 8980 ldrh r0, [r0, #12] ; 0xc + 1a4e: 2820 cmp r0, #32 ; 0x20 + 1a50: dd02 ble 0x1a58 + 1a52: 2000 mov r0, #0 + 1a54: 9002 str r0, [sp, #8] + 1a56: e006 b 0x1a66 + 1a58: a804 add r0, sp, #16 ; 0x10 + 1a5a: 4669 mov r1, sp + 1a5c: 8989 ldrh r1, [r1, #12] ; 0xc + 1a5e: 466a mov r2, sp + 1a60: 7912 ldrb r2, [r2, #4] + 1a62: f7ff ff86 bl 0x1972 + 1a66: 9802 ldr r0, [sp, #8] + 1a68: b00c add sp, #48 ; 0x30 + 1a6a: bd00 pop {pc} + 1a6c: ff19 + 1a6e: 0083 lsl r3, r0, #2 + 1a70: ff1a + 1a72: 0083 lsl r3, r0, #2 + 1a74: ff26 + 1a76: 0083 lsl r3, r0, #2 + 1a78: ff24 + 1a7a: 0083 lsl r3, r0, #2 + 1a7c: ff20 + 1a7e: 0083 lsl r3, r0, #2 + 1a80: ff1b + 1a82: 0083 lsl r3, r0, #2 + 1a84: ff18 + 1a86: 0083 lsl r3, r0, #2 + 1a88: b500 push {lr} + 1a8a: b084 sub sp, #16 ; 0x10 + 1a8c: 9101 str r1, [sp, #4] + 1a8e: 9000 str r0, [sp, #0] + 1a90: 4669 mov r1, sp + 1a92: 20ff mov r0, #255 ; 0xff + 1a94: 7308 strb r0, [r1, #12] ; 0xc + 1a96: 2000 mov r0, #0 + 1a98: 9002 str r0, [sp, #8] + 1a9a: 4669 mov r1, sp + 1a9c: 48a1 ldr r0, =0xffff5805 ; via 0x1d24 + 1a9e: 7800 ldrb r0, [r0, #0] + 1aa0: 7348 strb r0, [r1, #13] ; 0xd + 1aa2: 48a1 ldr r0, =0xffff5005 ; via 0x1d28 + 1aa4: 7800 ldrb r0, [r0, #0] + 1aa6: 7388 strb r0, [r1, #14] ; 0xe + 1aa8: 4668 mov r0, sp + 1aaa: 7b40 ldrb r0, [r0, #13] ; 0xd + 1aac: 0840 lsr r0, r0, #1 + 1aae: d206 bcs 0x1abe + 1ab0: 4668 mov r0, sp + 1ab2: 7b80 ldrb r0, [r0, #14] ; 0xe + 1ab4: 0840 lsr r0, r0, #1 + 1ab6: d202 bcs 0x1abe + 1ab8: 9801 ldr r0, [sp, #4] + 1aba: 2800 cmp r0, #0 + 1abc: d0ed beq 0x1a9a + 1abe: 4668 mov r0, sp + 1ac0: 7b40 ldrb r0, [r0, #13] ; 0xd + 1ac2: 0840 lsr r0, r0, #1 + 1ac4: d316 bcc 0x1af4 + 1ac6: 4669 mov r1, sp + 1ac8: 2000 mov r0, #0 + 1aca: 7308 strb r0, [r1, #12] ; 0xc + 1acc: 4994 ldr r1, =0x864 ; via 0x1d20 + 1ace: 4668 mov r0, sp + 1ad0: 7b00 ldrb r0, [r0, #12] ; 0xc + 1ad2: 0080 lsl r0, r0, #2 + 1ad4: 5808 ldr r0, [r1, r0] + 1ad6: 7800 ldrb r0, [r0, #0] + 1ad8: 0600 lsl r0, r0, #24 + 1ada: 0e00 lsr r0, r0, #24 + 1adc: 4669 mov r1, sp + 1ade: 73c8 strb r0, [r1, #15] ; 0xf + 1ae0: 4668 mov r0, sp + 1ae2: 7bc0 ldrb r0, [r0, #15] ; 0xf + 1ae4: 9900 ldr r1, [sp, #0] + 1ae6: f7ff fc9f bl 0x1428 + 1aea: 9002 str r0, [sp, #8] + 1aec: 9802 ldr r0, [sp, #8] + 1aee: 2800 cmp r0, #0 + 1af0: d11c bne 0x1b2c + 1af2: e018 b 0x1b26 + 1af4: 4668 mov r0, sp + 1af6: 7b80 ldrb r0, [r0, #14] ; 0xe + 1af8: 0840 lsr r0, r0, #1 + 1afa: d317 bcc 0x1b2c + 1afc: 4669 mov r1, sp + 1afe: 2001 mov r0, #1 + 1b00: 7308 strb r0, [r1, #12] ; 0xc + 1b02: 4987 ldr r1, =0x864 ; via 0x1d20 + 1b04: 4668 mov r0, sp + 1b06: 7b00 ldrb r0, [r0, #12] ; 0xc + 1b08: 0080 lsl r0, r0, #2 + 1b0a: 5808 ldr r0, [r1, r0] + 1b0c: 7800 ldrb r0, [r0, #0] + 1b0e: 0600 lsl r0, r0, #24 + 1b10: 0e01 lsr r1, r0, #24 + 1b12: 4668 mov r0, sp + 1b14: 73c1 strb r1, [r0, #15] ; 0xf + 1b16: 7bc0 ldrb r0, [r0, #15] ; 0xf + 1b18: 9900 ldr r1, [sp, #0] + 1b1a: f7ff fc85 bl 0x1428 + 1b1e: 9002 str r0, [sp, #8] + 1b20: 9802 ldr r0, [sp, #8] + 1b22: 2800 cmp r0, #0 + 1b24: d102 bne 0x1b2c + 1b26: 20ff mov r0, #255 ; 0xff + 1b28: 4669 mov r1, sp + 1b2a: 7308 strb r0, [r1, #12] ; 0xc + 1b2c: 9802 ldr r0, [sp, #8] + 1b2e: 2800 cmp r0, #0 + 1b30: d102 bne 0x1b38 + 1b32: 9801 ldr r0, [sp, #4] + 1b34: 2800 cmp r0, #0 + 1b36: d0b0 beq 0x1a9a + 1b38: 4668 mov r0, sp + 1b3a: 7b00 ldrb r0, [r0, #12] ; 0xc + 1b3c: b004 add sp, #16 ; 0x10 + 1b3e: bd00 pop {pc} + 1b40: ff1c + 1b42: 0083 lsl r3, r0, #2 + 1b44: 0830 lsr r0, r6, #32 + 1b46: 0000 lsl r0, r0, #0 + 1b48: 084c lsr r4, r1, #1 + 1b4a: 0000 lsl r0, r0, #0 + 1b4c: b500 push {lr} + 1b4e: b086 sub sp, #24 ; 0x18 + 1b50: 466b mov r3, sp + 1b52: 721a strb r2, [r3, #8] + 1b54: 9101 str r1, [sp, #4] + 1b56: 9000 str r0, [sp, #0] + 1b58: 2001 mov r0, #1 + 1b5a: 9004 str r0, [sp, #16] ; 0x10 + 1b5c: 9804 ldr r0, [sp, #16] ; 0x10 + 1b5e: 2800 cmp r0, #0 + 1b60: d05b beq 0x1c1a + 1b62: 496f ldr r1, =0x864 ; via 0x1d20 + 1b64: 4668 mov r0, sp + 1b66: 7a00 ldrb r0, [r0, #8] + 1b68: 0080 lsl r0, r0, #2 + 1b6a: 5808 ldr r0, [r1, r0] + 1b6c: 7941 ldrb r1, [r0, #5] + 1b6e: 4668 mov r0, sp + 1b70: 7301 strb r1, [r0, #12] ; 0xc + 1b72: 7b00 ldrb r0, [r0, #12] ; 0xc + 1b74: 0840 lsr r0, r0, #1 + 1b76: d3f4 bcc 0x1b62 + 1b78: 4969 ldr r1, =0x864 ; via 0x1d20 + 1b7a: 4668 mov r0, sp + 1b7c: 7a00 ldrb r0, [r0, #8] + 1b7e: 0080 lsl r0, r0, #2 + 1b80: 5808 ldr r0, [r1, r0] + 1b82: 7800 ldrb r0, [r0, #0] + 1b84: 0600 lsl r0, r0, #24 + 1b86: 0e01 lsr r1, r0, #24 + 1b88: 4668 mov r0, sp + 1b8a: 7341 strb r1, [r0, #13] ; 0xd + 1b8c: e02c b 0x1be8 + 1b8e: 4668 mov r0, sp + 1b90: 7b40 ldrb r0, [r0, #13] ; 0xd + 1b92: a905 add r1, sp, #20 ; 0x14 + 1b94: 9a00 ldr r2, [sp, #0] + 1b96: 9b01 ldr r3, [sp, #4] + 1b98: f7ff fd8c bl 0x16b4 + 1b9c: 9004 str r0, [sp, #16] ; 0x10 + 1b9e: e039 b 0x1c14 + 1ba0: 4668 mov r0, sp + 1ba2: 7b40 ldrb r0, [r0, #13] ; 0xd + 1ba4: a905 add r1, sp, #20 ; 0x14 + 1ba6: f7ff fdc2 bl 0x172e + 1baa: e7f7 b 0x1b9c + 1bac: 4668 mov r0, sp + 1bae: 7b40 ldrb r0, [r0, #13] ; 0xd + 1bb0: a905 add r1, sp, #20 ; 0x14 + 1bb2: f7ff fe12 bl 0x17da + 1bb6: e7f1 b 0x1b9c + 1bb8: 4668 mov r0, sp + 1bba: 7b40 ldrb r0, [r0, #13] ; 0xd + 1bbc: a905 add r1, sp, #20 ; 0x14 + 1bbe: f7ff fe34 bl 0x182a + 1bc2: e7eb b 0x1b9c + 1bc4: 4668 mov r0, sp + 1bc6: 7b40 ldrb r0, [r0, #13] ; 0xd + 1bc8: f7ff fe5e bl 0x1888 + 1bcc: e022 b 0x1c14 + 1bce: 4668 mov r0, sp + 1bd0: 7b40 ldrb r0, [r0, #13] ; 0xd + 1bd2: a905 add r1, sp, #20 ; 0x14 + 1bd4: 9a00 ldr r2, [sp, #0] + 1bd6: f7ff fe6d bl 0x18b4 + 1bda: e7df b 0x1b9c + 1bdc: 4668 mov r0, sp + 1bde: 7b40 ldrb r0, [r0, #13] ; 0xd + 1be0: a905 add r1, sp, #20 ; 0x14 + 1be2: f7ff feab bl 0x193c + 1be6: e7d9 b 0x1b9c + 1be8: 4850 ldr r0, =0x83ff20 ; via 0x1d2c + 1bea: 6800 ldr r0, [r0, #0] + 1bec: 2800 cmp r0, #0 + 1bee: d0ce beq 0x1b8e + 1bf0: 3801 sub r0, #1 + 1bf2: 2800 cmp r0, #0 + 1bf4: d0d4 beq 0x1ba0 + 1bf6: 3801 sub r0, #1 + 1bf8: 2800 cmp r0, #0 + 1bfa: d0d7 beq 0x1bac + 1bfc: 3801 sub r0, #1 + 1bfe: 2800 cmp r0, #0 + 1c00: d0da beq 0x1bb8 + 1c02: 3801 sub r0, #1 + 1c04: 2800 cmp r0, #0 + 1c06: d0dd beq 0x1bc4 + 1c08: 3801 sub r0, #1 + 1c0a: 2800 cmp r0, #0 + 1c0c: d0df beq 0x1bce + 1c0e: 3801 sub r0, #1 + 1c10: 2800 cmp r0, #0 + 1c12: d0e3 beq 0x1bdc + 1c14: 9804 ldr r0, [sp, #16] ; 0x10 + 1c16: 2800 cmp r0, #0 + 1c18: d1a3 bne 0x1b62 + 1c1a: 9805 ldr r0, [sp, #20] ; 0x14 + 1c1c: b006 add sp, #24 ; 0x18 + 1c1e: bd00 pop {pc} + 1c20: 4942 ldr r1, =0x83ff20 ; via 0x1d2c + 1c22: 2001 mov r0, #1 + 1c24: 6008 str r0, [r1, #0] + 1c26: 4842 ldr r0, =0x83ff1b ; via 0x1d30 + 1c28: 2100 mov r1, #0 + 1c2a: 7001 strb r1, [r0, #0] + 1c2c: 4841 ldr r0, =0x83ff18 ; via 0x1d34 + 1c2e: 7001 strb r1, [r0, #0] + 1c30: 4770 bx lr + 1c32: 46c0 nop (mov r8, r8) + + 1c34: 0083ff14 + +; UART initialization routine + 1c38: b081 sub sp, #4 +; MODEM UART + 1c3a: 483f ldr r0, =0xffff5800 ; via 0x1d38 + 1c3c: 9000 str r0, [sp, #0] +; switch to MCU control + 1c3e: 493f ldr r1, =0xffff6000 ; via 0x1d3c + 1c40: 2002 mov r0, #2 + 1c42: 880a ldrh r2, [r1, #0] + 1c44: 4310 orr r0, r2 + 1c46: 8008 strh r0, [r1, #0] + 1c48: 483c ldr r0, =0xffff6000 ; via 0x1d3c + 1c4a: 8801 ldrh r1, [r0, #0] + 1c4c: 0849 lsr r1, r1, #1 + 1c4e: 0049 lsl r1, r1, #1 + 1c50: 8001 strh r1, [r0, #0] + 1c52: 493a ldr r1, =0xffff6000 ; via 0x1d3c + 1c54: 8808 ldrh r0, [r1, #0] + 1c56: 2202 mov r2, #2 + 1c58: 4390 bic r0, r2 + 1c5a: 8008 strh r0, [r1, #0] +; MDR1 = reset/default state + 1c5c: 9900 ldr r1, [sp, #0] + 1c5e: 2007 mov r0, #7 + 1c60: 7208 strb r0, [r1, #8] +; LCR = BF + 1c62: 9900 ldr r1, [sp, #0] + 1c64: 20bf mov r0, #191 ; 0xbf + 1c66: 70c8 strb r0, [r1, #3] +; set ENHANCED_EN bit in EFR + 1c68: 9800 ldr r0, [sp, #0] + 1c6a: 1c81 add r1, r0, #2 + 1c6c: 2010 mov r0, #16 ; 0x10 + 1c6e: 880a ldrh r2, [r1, #0] + 1c70: 4310 orr r0, r2 + 1c72: 8008 strh r0, [r1, #0] +; LCR = 80 + 1c74: 9800 ldr r0, [sp, #0] + 1c76: 2180 mov r1, #128 ; 0x80 + 1c78: 70c1 strb r1, [r0, #3] +; FCR = 07 (enable and clear both FIFOs) + 1c7a: 9800 ldr r0, [sp, #0] + 1c7c: 2107 mov r1, #7 + 1c7e: 7081 strb r1, [r0, #2] +; LCR = BF + 1c80: 9800 ldr r0, [sp, #0] + 1c82: 21bf mov r1, #191 ; 0xbf + 1c84: 70c1 strb r1, [r0, #3] +; baud rate divisor set to 7 (115200 baud) + 1c86: 9800 ldr r0, [sp, #0] + 1c88: 2107 mov r1, #7 + 1c8a: 7001 strb r1, [r0, #0] + 1c8c: 9800 ldr r0, [sp, #0] + 1c8e: 2100 mov r1, #0 + 1c90: 7041 strb r1, [r0, #1] +; LCR = 03 (standard setting) + 1c92: 9800 ldr r0, [sp, #0] + 1c94: 2103 mov r1, #3 + 1c96: 70c1 strb r1, [r0, #3] +; MDR1 = UART mode + 1c98: 9800 ldr r0, [sp, #0] + 1c9a: 2100 mov r1, #0 + 1c9c: 7201 strb r1, [r0, #8] +; IrDA UART - same setup as for MODEM + 1c9e: 4828 ldr r0, =0xffff5000 ; via 0x1d40 + 1ca0: 9000 str r0, [sp, #0] + 1ca2: 9800 ldr r0, [sp, #0] + 1ca4: 2107 mov r1, #7 + 1ca6: 7201 strb r1, [r0, #8] + 1ca8: 9900 ldr r1, [sp, #0] + 1caa: 20bf mov r0, #191 ; 0xbf + 1cac: 70c8 strb r0, [r1, #3] + 1cae: 9800 ldr r0, [sp, #0] + 1cb0: 1c80 add r0, r0, #2 + 1cb2: 2110 mov r1, #16 ; 0x10 + 1cb4: 8802 ldrh r2, [r0, #0] + 1cb6: 4311 orr r1, r2 + 1cb8: 8001 strh r1, [r0, #0] + 1cba: 9800 ldr r0, [sp, #0] + 1cbc: 2180 mov r1, #128 ; 0x80 + 1cbe: 70c1 strb r1, [r0, #3] + 1cc0: 9800 ldr r0, [sp, #0] + 1cc2: 2107 mov r1, #7 + 1cc4: 7081 strb r1, [r0, #2] + 1cc6: 9800 ldr r0, [sp, #0] + 1cc8: 21bf mov r1, #191 ; 0xbf + 1cca: 70c1 strb r1, [r0, #3] + 1ccc: 9800 ldr r0, [sp, #0] + 1cce: 2107 mov r1, #7 + 1cd0: 7001 strb r1, [r0, #0] + 1cd2: 9800 ldr r0, [sp, #0] + 1cd4: 2100 mov r1, #0 + 1cd6: 7041 strb r1, [r0, #1] + 1cd8: 9900 ldr r1, [sp, #0] + 1cda: 2003 mov r0, #3 + 1cdc: 70c8 strb r0, [r1, #3] + 1cde: 9800 ldr r0, [sp, #0] + 1ce0: 2100 mov r1, #0 + 1ce2: 7201 strb r1, [r0, #8] + 1ce4: b001 add sp, #4 + 1ce6: 4770 bx lr + + 1ce8: b081 sub sp, #4 + 1cea: 4669 mov r1, sp + 1cec: 7008 strb r0, [r1, #0] + 1cee: 490c ldr r1, =0x864 ; via 0x1d20 + 1cf0: 4668 mov r0, sp + 1cf2: 7800 ldrb r0, [r0, #0] + 1cf4: 0080 lsl r0, r0, #2 + 1cf6: 5808 ldr r0, [r1, r0] + 1cf8: 7941 ldrb r1, [r0, #5] + 1cfa: 4668 mov r0, sp + 1cfc: 7041 strb r1, [r0, #1] + 1cfe: 7840 ldrb r0, [r0, #1] + 1d00: 09c0 lsr r0, r0, #7 + 1d02: d20b bcs 0x1d1c + 1d04: 4806 ldr r0, =0x864 ; via 0x1d20 + 1d06: 4669 mov r1, sp + 1d08: 7809 ldrb r1, [r1, #0] + 1d0a: 0089 lsl r1, r1, #2 + 1d0c: 5840 ldr r0, [r0, r1] + 1d0e: 7940 ldrb r0, [r0, #5] + 1d10: 4669 mov r1, sp + 1d12: 7048 strb r0, [r1, #1] + 1d14: 4668 mov r0, sp + 1d16: 7840 ldrb r0, [r0, #1] + 1d18: 09c0 lsr r0, r0, #7 + 1d1a: d3f3 bcc 0x1d04 + 1d1c: b001 add sp, #4 + 1d1e: 4770 bx lr + 1d20: 0864 lsr r4, r4, #1 + 1d22: 0000 lsl r0, r0, #0 + 1d24: 5805 ldr r5, [r0, r0] + 1d26: ffff + 1d28: 5005 str r5, [r0, r0] + 1d2a: ffff + 1d2c: ff20 + 1d2e: 0083 lsl r3, r0, #2 + 1d30: ff1b + 1d32: 0083 lsl r3, r0, #2 + 1d34: ff18 + 1d36: 0083 lsl r3, r0, #2 + 1d38: 5800 ldr r0, [r0, r0] + 1d3a: ffff + 1d3c: 6000 str r0, [r0, #0] + 1d3e: ffff + 1d40: 5000 str r0, [r0, r0] + 1d42: ffff + 1d44: b500 push {lr} + 1d46: b087 sub sp, #28 ; 0x1c + 1d48: 466b mov r3, sp + 1d4a: 721a strb r2, [r3, #8] + 1d4c: 9101 str r1, [sp, #4] + 1d4e: 9000 str r0, [sp, #0] + 1d50: 9900 ldr r1, [sp, #0] + 1d52: 2000 mov r0, #0 + 1d54: 8008 strh r0, [r1, #0] + 1d56: 9801 ldr r0, [sp, #4] + 1d58: 2100 mov r1, #0 + 1d5a: 8001 strh r1, [r0, #0] + 1d5c: 2000 mov r0, #0 + 1d5e: 9003 str r0, [sp, #12] ; 0xc + 1d60: f7ff ff5e bl 0x1c20 + 1d64: a805 add r0, sp, #20 ; 0x14 + 1d66: a906 add r1, sp, #24 ; 0x18 + 1d68: 466a mov r2, sp + 1d6a: 7a12 ldrb r2, [r2, #8] + 1d6c: f7ff feee bl 0x1b4c + 1d70: 9004 str r0, [sp, #16] ; 0x10 + 1d72: 9804 ldr r0, [sp, #16] ; 0x10 + 1d74: 2800 cmp r0, #0 + 1d76: d11f bne 0x1db8 + 1d78: 9803 ldr r0, [sp, #12] ; 0xc + 1d7a: 2800 cmp r0, #0 + 1d7c: d11c bne 0x1db8 + 1d7e: 9800 ldr r0, [sp, #0] + 1d80: 4669 mov r1, sp + 1d82: 8b0a ldrh r2, [r1, #24] ; 0x18 + 1d84: 8801 ldrh r1, [r0, #0] + 1d86: 1851 add r1, r2, r1 + 1d88: 8001 strh r1, [r0, #0] + 1d8a: 9905 ldr r1, [sp, #20] ; 0x14 + 1d8c: 4668 mov r0, sp + 1d8e: 8b00 ldrh r0, [r0, #24] ; 0x18 + 1d90: 8008 strh r0, [r1, #0] + 1d92: 9801 ldr r0, [sp, #4] + 1d94: 9905 ldr r1, [sp, #20] ; 0x14 + 1d96: 8809 ldrh r1, [r1, #0] + 1d98: 8802 ldrh r2, [r0, #0] + 1d9a: 1889 add r1, r1, r2 + 1d9c: 8001 strh r1, [r0, #0] + 1d9e: a805 add r0, sp, #20 ; 0x14 + 1da0: a906 add r1, sp, #24 ; 0x18 + 1da2: 466a mov r2, sp + 1da4: 7a12 ldrb r2, [r2, #8] + 1da6: f7ff fed1 bl 0x1b4c + 1daa: 9004 str r0, [sp, #16] ; 0x10 + 1dac: 9804 ldr r0, [sp, #16] ; 0x10 + 1dae: 2800 cmp r0, #0 + 1db0: d102 bne 0x1db8 + 1db2: 9803 ldr r0, [sp, #12] ; 0xc + 1db4: 2800 cmp r0, #0 + 1db6: d0e2 beq 0x1d7e + 1db8: 9804 ldr r0, [sp, #16] ; 0x10 + 1dba: 2801 cmp r0, #1 + 1dbc: d101 bne 0x1dc2 + 1dbe: 2004 mov r0, #4 + 1dc0: 9003 str r0, [sp, #12] ; 0xc + 1dc2: 9803 ldr r0, [sp, #12] ; 0xc + 1dc4: b007 add sp, #28 ; 0x1c + 1dc6: bd00 pop {pc} + 1dc8: b089 sub sp, #36 ; 0x24 + 1dca: 201a mov r0, #26 ; 0x1a + 1dcc: 9005 str r0, [sp, #20] ; 0x14 + 1dce: 2018 mov r0, #24 ; 0x18 + 1dd0: 9006 str r0, [sp, #24] ; 0x18 + 1dd2: 2000 mov r0, #0 + 1dd4: 9008 str r0, [sp, #32] ; 0x20 + 1dd6: 4669 mov r1, sp + 1dd8: 9805 ldr r0, [sp, #20] ; 0x14 + 1dda: 8800 ldrh r0, [r0, #0] + 1ddc: 8008 strh r0, [r1, #0] + 1dde: 9806 ldr r0, [sp, #24] ; 0x18 + 1de0: 8800 ldrh r0, [r0, #0] + 1de2: 8048 strh r0, [r1, #2] + 1de4: 4668 mov r0, sp + 1de6: 8841 ldrh r1, [r0, #2] + 1de8: 8800 ldrh r0, [r0, #0] + 1dea: 0400 lsl r0, r0, #16 + 1dec: 1808 add r0, r1, r0 + 1dee: 9001 str r0, [sp, #4] + 1df0: 9801 ldr r0, [sp, #4] + 1df2: 0200 lsl r0, r0, #8 + 1df4: 0a00 lsr r0, r0, #8 + 1df6: 0080 lsl r0, r0, #2 + 1df8: 3008 add r0, #8 + 1dfa: 9007 str r0, [sp, #28] ; 0x1c + 1dfc: 9807 ldr r0, [sp, #28] ; 0x1c + 1dfe: 3018 add r0, #24 ; 0x18 + 1e00: 9002 str r0, [sp, #8] + 1e02: 9802 ldr r0, [sp, #8] + 1e04: 9004 str r0, [sp, #16] ; 0x10 + 1e06: 9802 ldr r0, [sp, #8] + 1e08: 3002 add r0, #2 + 1e0a: 9003 str r0, [sp, #12] ; 0xc + 1e0c: 9803 ldr r0, [sp, #12] ; 0xc + 1e0e: 8801 ldrh r1, [r0, #0] + 1e10: 4806 ldr r0, =0xffff ; via 0x1e2c + 1e12: 4281 cmp r1, r0 + 1e14: d104 bne 0x1e20 + 1e16: 9804 ldr r0, [sp, #16] ; 0x10 + 1e18: 8800 ldrh r0, [r0, #0] + 1e1a: 4904 ldr r1, =0xffff ; via 0x1e2c + 1e1c: 4288 cmp r0, r1 + 1e1e: d001 beq 0x1e24 + 1e20: 2001 mov r0, #1 + 1e22: 9008 str r0, [sp, #32] ; 0x20 + 1e24: 9808 ldr r0, [sp, #32] ; 0x20 + 1e26: b009 add sp, #36 ; 0x24 + 1e28: 4770 bx lr + 1e2a: 46c0 nop (mov r8, r8) + + 1e2c: 0000ffff + +; ARM->Thumb call veneer around 0xad2 routine + 1e30: e92d4000 stmdb sp!, {lr} + 1e34: e28fe001 add lr, pc, #1 ; 0x1 + 1e38: e12fff1e bx lr + 1e3c: f7fe fe49 bl 0xad2 + 1e40: 4778 bx pc + 1e42: 46c0 nop (mov r8, r8) + 1e44: e8bd8000 ldmia sp!, {pc} + +<1E48-1EFF: all FFs> + + 1f00: 00000001 + +<1F04-end: all FFs> diff -r e5e5ed527cc1 -r 81cda18b0487 compal/boot/c139-boot.notes --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/compal/boot/c139-boot.notes Sat Jan 14 06:17:56 2023 +0000 @@ -0,0 +1,49 @@ +Download protocol, attempted first at 406250 baud, then 115200, only on the +MODEM UART: + +The boot code begins by transmitting 1B F6 02 00 41 01 40, then calls the +Rx-with-timeout function 7 times, expecting this seq: 1B F6 02 00 52 01 53. +Getting anything else or timeout causes the 0xbac function to return, +ending that download attempt. If this seq was received, the boot code then +sends 1B F6 02 00 41 02 43 and expects to receive 3 bytes as follows: + +* one dummy byte (stored into an automatic var, but then not used) +* payload length MSB +* payload length LSB + +The boot code then expects to receive the specified # of bytes [0,65535] +and stores them beginning at 0x800100. Then the Rx-with-timeout function +is called again to receive the XOR checksum byte, not counted in the length. +If the checksum fails to match, 0xbac function sends 1B F6 02 00 45 53 16 +and returns. If this check passes, the "1003" check is performed next: +the 4 bytes starting at 0x803ce0 must match. If the downloaded image was +shorter, the comparison will be made against pre-powerup IRAM content, +i.e., law of chance. Furthermore, the comparison is actually an inequality: +each "signature" byte in the downloaded image needs to be >= (in the signed +sense) than the "1003" reference. (0x7F7F7F7F thus ought to be a passing +value.) + +If this last check passes, the 0xbac function jumps to the downloaded image +instead of returning. Control is transferred to 0x800100 in the ARM state. +If the "1003" check fails, 0xbac function sends 1B F6 02 00 41 03 57 +and returns. + +If the boot process is not diverted to a successful serial download as above, +the boot code does one strange thing before it jumps to 0x20f8 (main app entry +point). The boot code unconditionally transmits "ftmtool" on the MODEM UART +and waits a certain time for a "yes" response. If it receives that "yes", +it responds with "modemerror", otherwise just "error". Either way, it then +proceed to jump to the main app entry point at 0x20f8! There is also a bunch +of "dead" code in the 8 KiB "boot block", code which does not seem to be +reachable from any path. There is no check for whether or not the "main app" +is present; if the flash contains the 8 KiB "boot block" followed by blank +space, the boot code will happily jumps to those FFs - but it will still +provide an opportunity for serial download as usual, so no real problem. + +IRAM variables used by the boot code: + +83FF00 holds UART base addr, set to FFFF5800 (MODEM) +83FF08 32-bit var init to 0 +83FF10 32-bit var init to 0 +83FF80 byte var init to 0 at the beginning of ftmtool function (0xdbe), + set to 1 if "yes" received in response to "ftmtool" diff -r e5e5ed527cc1 -r 81cda18b0487 compal/boot/c139-boot1004.bin Binary file compal/boot/c139-boot1004.bin has changed diff -r e5e5ed527cc1 -r 81cda18b0487 compal/boot/c139-tfboot.bin Binary file compal/boot/c139-tfboot.bin has changed diff -r e5e5ed527cc1 -r 81cda18b0487 compal/boot/c139-tfboot.disasm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/compal/boot/c139-tfboot.disasm Sat Jan 14 06:17:56 2023 +0000 @@ -0,0 +1,2683 @@ +Disassembly of TF's locked C139 bootloader +same as the classic C139 version up to 0x958 + +RESET entry and exception vectors: + 0: ea000225 b 0x89c + 4: ea000825 b 0x20a0 + 8: ea000825 b 0x20a4 + c: ea000825 b 0x20a8 + 10: ea000825 b 0x20ac + 14: ea000825 b 0x20b0 + 18: ea000825 b 0x20b4 + 1c: ea000825 b 0x20b8 + +; ID words or whatever + 20: 449e10f0 + 24: 449e10f1 + 28: 449e1120 + 2c: 449e1121 + +<30-7FF: all FFs> + +00000800: 42 4F 4F 54 2E 39 30 2E 30 34 00 00 00 00 00 00 BOOT.90.04...... +00000810: 31 30 30 33 01 01 00 00 FF FF FF FF FF FF FF FF 1003............ +00000820: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ + + 830: 00000006 + ... + 83c: 00000048 + 840: 00000044 + 844: 00000052 + 848: 0000001b + 84c: 00000005 + ... + 860: 000000fa + 864: ffff5800 + 868: ffff5000 + 86c: fffffb00 + 870: 02a1 + 872: 02a1 + 874: 02a1 + 876: 0283 + 878: 0281 + 87a: 00c0 + 87c: 0040 + 87e: 002a + 880: 00000040 + 884: fffffd00 + 888: ffff9800 + 88c: fffffb10 + 890: ffffff08 + 894: 1081 + 896: 2006 + 898: 0800 + 89a: 0000 + +; RESET entry point, same as classic C139 version + 89c: e51f1020 ldr r1, =0xfffffd00 ; via 0x884 + 8a0: e1d120b2 ldrh r2, [r1, #2] + 8a4: e51f002c ldr r0, =0x40 ; via 0x880 + 8a8: e1800002 orr r0, r0, r2 + 8ac: e1c100b2 strh r0, [r1, #2] + 8b0: e51f1030 ldr r1, =0xffff9800 ; via 0x888 + 8b4: e15f22b6 ldrh r2, =0x2006 ; via 0x896 + 8b8: e1c120b0 strh r2, [r1] + 8bc: e5912000 ldr r2, [r1] + 8c0: e2022001 and r2, r2, #1 + 8c4: e3520001 cmp r2, #1 + 8c8: 0afffffb beq 0x8bc + 8cc: e51f1050 ldr r1, =0xfffffd00 ; via 0x884 + 8d0: e15f24b4 ldrh r2, =0x1081 ; via 0x894 + 8d4: e1c120b0 strh r2, [r1] + 8d8: e51f1054 ldr r1, =0xfffffb10 ; via 0x88c + 8dc: e15f24bc ldrh r2, =0x800 ; via 0x898 + 8e0: e1d100b0 ldrh r0, [r1] + 8e4: e1800002 orr r0, r0, r2 + 8e8: e1c100b0 strh r0, [r1] + 8ec: e51f1064 ldr r1, =0xffffff08 ; via 0x890 + 8f0: e15f25be ldrh r2, =0x0 ; via 0x89a + 8f4: e1c120b0 strh r2, [r1] + 8f8: e51f1094 ldr r1, =0xfffffb00 ; via 0x86c + 8fc: e15f29b4 ldrh r2, =0x2a1 ; via 0x870 + 900: e1c120b0 strh r2, [r1] + 904: e15f29ba ldrh r2, =0x2a1 ; via 0x872 + 908: e1c120b2 strh r2, [r1, #2] + 90c: e15f2ab0 ldrh r2, =0x2a1 ; via 0x874 + 910: e1c120b4 strh r2, [r1, #4] + 914: e15f2ab6 ldrh r2, =0x283 ; via 0x876 + 918: e1c120b6 strh r2, [r1, #6] + 91c: e15f2abc ldrh r2, =0x281 ; via 0x878 + 920: e1c120ba strh r2, [r1, #10] ; 0xa + 924: e15f2bb2 ldrh r2, =0xc0 ; via 0x87a + 928: e1c120bc strh r2, [r1, #12] ; 0xc + 92c: e15f2bb8 ldrh r2, =0x40 ; via 0x87c + 930: e1c120b8 strh r2, [r1, #8] + 934: e15f2bbe ldrh r2, =0x2a ; via 0x87e + 938: e1c120be strh r2, [r1, #14] ; 0xe + 93c: e59f0020 ldr r0, =0x837770 ; via 0x964 + 940: e3a01b01 mov r1, #1024 ; 0x400 + 944: e2411004 sub r1, r1, #4 + 948: e0802001 add r2, r0, r1 + 94c: e3c22003 bic r2, r2, #3 + 950: e1a0d002 mov sp, r2 +; business logic + 954: e92d100f stmdb sp!, {r0, r1, r2, r3, r12} + 958: eb00053a bl 0x1e48 + 95c: e8bd100f ldmia sp!, {r0, r1, r2, r3, r12} + 960: ea0005e4 b 0x20f8 + + 964: 00837770 + + 968: 4961 ldr r1, =0xfffffa08 ; via 0xaf0 + 96a: 4862 ldr r0, =0xffff ; via 0xaf4 + 96c: 8008 strh r0, [r1, #0] + 96e: 4862 ldr r0, =0xfffffa0a ; via 0xaf8 + 970: 211f mov r1, #31 ; 0x1f + 972: 8001 strh r1, [r0, #0] + 974: 4861 ldr r0, =0xfffff804 ; via 0xafc + 976: 21f5 mov r1, #245 ; 0xf5 + 978: 8001 strh r1, [r0, #0] + 97a: 21a0 mov r1, #160 ; 0xa0 + 97c: 8001 strh r1, [r0, #0] + 97e: 4860 ldr r0, =0xffff9800 ; via 0xb00 + 980: 4960 ldr r1, =0x2002 ; via 0xb04 + 982: 8001 strh r1, [r0, #0] + 984: 485e ldr r0, =0xffff9800 ; via 0xb00 + 986: 8800 ldrh r0, [r0, #0] + 988: 0840 lsr r0, r0, #1 + 98a: d2fb bcs 0x984 + 98c: 495e ldr r1, =0xfffffd00 ; via 0xb08 + 98e: 485f ldr r0, =0x1001 ; via 0xb0c + 990: 8008 strh r0, [r1, #0] + 992: 46f7 mov pc, lr + + 994: b500 push {lr} + 996: b0ff sub sp, #508 ; 0x1fc + 998: b0ca sub sp, #296 ; 0x128 + 99a: 2000 mov r0, #0 + 99c: 9001 str r0, [sp, #4] + 99e: 9801 ldr r0, [sp, #4] + 9a0: 2800 cmp r0, #0 + 9a2: d14e bne 0xa42 + 9a4: a846 add r0, sp, #280 ; 0x118 + 9a6: 2100 mov r1, #0 + 9a8: f001 f87a bl 0x1aa0 + 9ac: a9c8 add r1, sp, #800 ; 0x320 + 9ae: 7008 strb r0, [r1, #0] + 9b0: a846 add r0, sp, #280 ; 0x118 + 9b2: a902 add r1, sp, #8 + 9b4: f000 fb38 bl 0x1028 + 9b8: 9000 str r0, [sp, #0] + 9ba: 9800 ldr r0, [sp, #0] + 9bc: 2800 cmp r0, #0 + 9be: d01b beq 0x9f8 + 9c0: a924 add r1, sp, #144 ; 0x90 + 9c2: 4668 mov r0, sp + 9c4: 7a00 ldrb r0, [r0, #8] + 9c6: 7008 strb r0, [r1, #0] + 9c8: 2191 mov r1, #145 ; 0x91 + 9ca: 466a mov r2, sp + 9cc: 4668 mov r0, sp + 9ce: 7800 ldrb r0, [r0, #0] + 9d0: 5488 strb r0, [r1, r2] + 9d2: e01b b 0xa0c + 9d4: a802 add r0, sp, #8 + 9d6: a924 add r1, sp, #144 ; 0x90 + 9d8: f000 fe14 bl 0x1604 + 9dc: e016 b 0xa0c + 9de: a802 add r0, sp, #8 + 9e0: a924 add r1, sp, #144 ; 0x90 + 9e2: aac8 add r2, sp, #800 ; 0x320 + 9e4: 7812 ldrb r2, [r2, #0] + 9e6: f000 fe21 bl 0x162c + 9ea: e00f b 0xa0c + 9ec: a802 add r0, sp, #8 + 9ee: a924 add r1, sp, #144 ; 0x90 + 9f0: f000 fe53 bl 0x169a + 9f4: 90c7 str r0, [sp, #796] ; 0x31c + 9f6: e009 b 0xa0c + 9f8: 4668 mov r0, sp + 9fa: 7a00 ldrb r0, [r0, #8] + 9fc: 2800 cmp r0, #0 + 9fe: d0e9 beq 0x9d4 + a00: 3809 sub r0, #9 + a02: 2800 cmp r0, #0 + a04: d0eb beq 0x9de + a06: 3801 sub r0, #1 + a08: 2800 cmp r0, #0 + a0a: d0ef beq 0x9ec + a0c: a824 add r0, sp, #144 ; 0x90 + a0e: a986 add r1, sp, #536 ; 0x218 + a10: f000 fbed bl 0x11ee + a14: 2800 cmp r0, #0 + a16: d111 bne 0xa3c + a18: a886 add r0, sp, #536 ; 0x218 + a1a: a9c8 add r1, sp, #800 ; 0x320 + a1c: 7809 ldrb r1, [r1, #0] + a1e: f001 f814 bl 0x1a4a + a22: 2800 cmp r0, #0 + a24: d00a beq 0xa3c + a26: 4668 mov r0, sp + a28: 7a00 ldrb r0, [r0, #8] + a2a: 280a cmp r0, #10 ; 0xa + a2c: d106 bne 0xa3c + a2e: a8c8 add r0, sp, #800 ; 0x320 + a30: 7800 ldrb r0, [r0, #0] + a32: f001 f965 bl 0x1d00 + a36: 98c7 ldr r0, [sp, #796] ; 0x31c + a38: f000 faf4 bl 0x1024 + a3c: 9801 ldr r0, [sp, #4] + a3e: 2800 cmp r0, #0 + a40: d0b0 beq 0x9a4 + a42: b07f add sp, #508 ; 0x1fc + a44: b04a add sp, #296 ; 0x128 + a46: bd00 pop {pc} + + a48: b500 push {lr} + a4a: b0ff sub sp, #508 ; 0x1fc + a4c: b0c8 sub sp, #288 ; 0x120 + a4e: 2000 mov r0, #0 + a50: 9000 str r0, [sp, #0] + a52: a846 add r0, sp, #280 ; 0x118 + a54: 2101 mov r1, #1 + a56: f001 f823 bl 0x1aa0 + a5a: a9c6 add r1, sp, #792 ; 0x318 + a5c: 7008 strb r0, [r1, #0] + a5e: a8c6 add r0, sp, #792 ; 0x318 + a60: 7800 ldrb r0, [r0, #0] + a62: 28ff cmp r0, #255 ; 0xff + a64: d031 beq 0xaca + a66: a846 add r0, sp, #280 ; 0x118 + a68: a902 add r1, sp, #8 + a6a: f000 fadd bl 0x1028 + a6e: 9001 str r0, [sp, #4] + a70: 9801 ldr r0, [sp, #4] + a72: 2800 cmp r0, #0 + a74: d014 beq 0xaa0 + a76: a924 add r1, sp, #144 ; 0x90 + a78: 4668 mov r0, sp + a7a: 7a00 ldrb r0, [r0, #8] + a7c: 7008 strb r0, [r1, #0] + a7e: 2291 mov r2, #145 ; 0x91 + a80: 4668 mov r0, sp + a82: 4669 mov r1, sp + a84: 7909 ldrb r1, [r1, #4] + a86: 5411 strb r1, [r2, r0] + a88: a824 add r0, sp, #144 ; 0x90 + a8a: a986 add r1, sp, #536 ; 0x218 + a8c: f000 fbaf bl 0x11ee + a90: 2800 cmp r0, #0 + a92: d11a bne 0xaca + a94: a886 add r0, sp, #536 ; 0x218 + a96: a9c6 add r1, sp, #792 ; 0x318 + a98: 7809 ldrb r1, [r1, #0] + a9a: f000 ffd6 bl 0x1a4a + a9e: e014 b 0xaca + aa0: 4668 mov r0, sp + aa2: 7a00 ldrb r0, [r0, #8] + aa4: 2800 cmp r0, #0 + aa6: d110 bne 0xaca + aa8: a802 add r0, sp, #8 + aaa: a924 add r1, sp, #144 ; 0x90 + aac: f000 fdaa bl 0x1604 + ab0: a824 add r0, sp, #144 ; 0x90 + ab2: a986 add r1, sp, #536 ; 0x218 + ab4: f000 fb9b bl 0x11ee + ab8: 2800 cmp r0, #0 + aba: d104 bne 0xac6 + abc: a886 add r0, sp, #536 ; 0x218 + abe: a9c6 add r1, sp, #792 ; 0x318 + ac0: 7809 ldrb r1, [r1, #0] + ac2: f000 ffc2 bl 0x1a4a + ac6: 2001 mov r0, #1 + ac8: 9000 str r0, [sp, #0] + aca: 9800 ldr r0, [sp, #0] + acc: b07f add sp, #508 ; 0x1fc + ace: b048 add sp, #288 ; 0x120 + ad0: bd00 pop {pc} + + ad2: b500 push {lr} + ad4: b082 sub sp, #8 + ad6: f7ff ff47 bl 0x968 + ada: f001 f8b9 bl 0x1c50 + ade: f000 fd7f bl 0x15e0 + ae2: f000 f81f bl 0xb24 + ae6: f000 f972 bl 0xdce + aea: b002 add sp, #8 + aec: bd00 pop {pc} + aee: 46c0 nop (mov r8, r8) + + af0: fffffa08 + af4: 0000ffff + af8: fffffa0a + afc: fffff804 + b00: ffff9800 + b04: 00002002 + b08: fffffd00 + b0c: 00001001 + + b10: e3a0d502 mov sp, #8388608 ; 0x800000 + b14: e28dd802 add sp, sp, #131072 ; 0x20000 + b18: e28fe005 add lr, pc, #5 + b1c: e12fff1e bx lr + b20: e1a00000 mov r0, r0 + + b24: b500 push {lr} + b26: b082 sub sp, #8 + b28: 49f1 ldr r1, =0x83ff00 ; via 0xef0 + b2a: 48f2 ldr r0, =0xffff5800 ; via 0xef4 + b2c: 6008 str r0, [r1, #0] + b2e: 2000 mov r0, #0 + b30: 2102 mov r1, #2 + b32: f000 fa07 bl 0xf44 + b36: 2000 mov r0, #0 + b38: 9000 str r0, [sp, #0] + b3a: 9900 ldr r1, [sp, #0] + b3c: 2005 mov r0, #5 + b3e: 0300 lsl r0, r0, #12 + b40: 4281 cmp r1, r0 + b42: d207 bcs 0xb54 + b44: 9800 ldr r0, [sp, #0] + b46: 3001 add r0, #1 + b48: 9000 str r0, [sp, #0] + b4a: 9900 ldr r1, [sp, #0] + b4c: 2005 mov r0, #5 + b4e: 0300 lsl r0, r0, #12 + b50: 4281 cmp r1, r0 + b52: d3f7 bcc 0xb44 + b54: f000 f82a bl 0xbac + b58: 2000 mov r0, #0 + b5a: 2107 mov r1, #7 + b5c: f000 f9f2 bl 0xf44 + b60: 2000 mov r0, #0 + b62: 9000 str r0, [sp, #0] + b64: 9900 ldr r1, [sp, #0] + b66: 2005 mov r0, #5 + b68: 0300 lsl r0, r0, #12 + b6a: 4281 cmp r1, r0 + b6c: d207 bcs 0xb7e + b6e: 9800 ldr r0, [sp, #0] + b70: 3001 add r0, #1 + b72: 9000 str r0, [sp, #0] + b74: 9900 ldr r1, [sp, #0] + b76: 2005 mov r0, #5 + b78: 0300 lsl r0, r0, #12 + b7a: 4281 cmp r1, r0 + b7c: d3f7 bcc 0xb6e + b7e: f000 f815 bl 0xbac + b82: 2000 mov r0, #0 + b84: 9001 str r0, [sp, #4] + b86: 9000 str r0, [sp, #0] + b88: 9900 ldr r1, [sp, #0] + b8a: 2005 mov r0, #5 + b8c: 0400 lsl r0, r0, #16 + b8e: 4281 cmp r1, r0 + b90: d20a bcs 0xba8 + b92: 9801 ldr r0, [sp, #4] + b94: 3001 add r0, #1 + b96: 9001 str r0, [sp, #4] + b98: 9800 ldr r0, [sp, #0] + b9a: 3001 add r0, #1 + b9c: 9000 str r0, [sp, #0] + b9e: 9900 ldr r1, [sp, #0] + ba0: 2005 mov r0, #5 + ba2: 0400 lsl r0, r0, #16 + ba4: 4281 cmp r1, r0 + ba6: d3f4 bcc 0xb92 + ba8: b002 add sp, #8 + baa: bd00 pop {pc} + + bac: b500 push {lr} + bae: b089 sub sp, #36 ; 0x24 + bb0: 48e1 ldr r0, =0x800100 ; via 0xf38 + bb2: 9005 str r0, [sp, #20] ; 0x14 + bb4: 48e1 ldr r0, =0x2060 ; via 0xf3c + bb6: 9008 str r0, [sp, #32] ; 0x20 + bb8: 9808 ldr r0, [sp, #32] ; 0x20 + bba: 6801 ldr r1, [r0, #0] + bbc: 48e0 ldr r0, =0xdddddddd ; via 0xf40 + bbe: 4281 cmp r1, r0 + bc0: d000 beq 0xbc4 + bc2: e102 b 0xdca + bc4: 201b mov r0, #27 ; 0x1b + bc6: f000 f95f bl 0xe88 + bca: 20f6 mov r0, #246 ; 0xf6 + bcc: f000 f95c bl 0xe88 + bd0: 2002 mov r0, #2 + bd2: f000 f959 bl 0xe88 + bd6: 2000 mov r0, #0 + bd8: f000 f956 bl 0xe88 + bdc: 2041 mov r0, #65 ; 0x41 + bde: f000 f953 bl 0xe88 + be2: 2001 mov r0, #1 + be4: f000 f950 bl 0xe88 + be8: 2040 mov r0, #64 ; 0x40 + bea: f000 f94d bl 0xe88 + bee: 2001 mov r0, #1 + bf0: 0300 lsl r0, r0, #12 + bf2: f000 f961 bl 0xeb8 + bf6: 281b cmp r0, #27 ; 0x1b + bf8: d000 beq 0xbfc + bfa: e0e6 b 0xdca + bfc: 2001 mov r0, #1 + bfe: 0300 lsl r0, r0, #12 + c00: f000 f95a bl 0xeb8 + c04: 28f6 cmp r0, #246 ; 0xf6 + c06: d000 beq 0xc0a + c08: e0df b 0xdca + c0a: 2001 mov r0, #1 + c0c: 0300 lsl r0, r0, #12 + c0e: f000 f953 bl 0xeb8 + c12: 2802 cmp r0, #2 + c14: d000 beq 0xc18 + c16: e0d8 b 0xdca + c18: 2001 mov r0, #1 + c1a: 0300 lsl r0, r0, #12 + c1c: f000 f94c bl 0xeb8 + c20: 2800 cmp r0, #0 + c22: d000 beq 0xc26 + c24: e0d1 b 0xdca + c26: 2001 mov r0, #1 + c28: 0300 lsl r0, r0, #12 + c2a: f000 f945 bl 0xeb8 + c2e: 2852 cmp r0, #82 ; 0x52 + c30: d000 beq 0xc34 + c32: e0ca b 0xdca + c34: 2001 mov r0, #1 + c36: 0300 lsl r0, r0, #12 + c38: f000 f93e bl 0xeb8 + c3c: 2801 cmp r0, #1 + c3e: d000 beq 0xc42 + c40: e0c3 b 0xdca + c42: 2001 mov r0, #1 + c44: 0300 lsl r0, r0, #12 + c46: f000 f937 bl 0xeb8 + c4a: 2853 cmp r0, #83 ; 0x53 + c4c: d000 beq 0xc50 + c4e: e0bc b 0xdca + c50: 201b mov r0, #27 ; 0x1b + c52: f000 f919 bl 0xe88 + c56: 20f6 mov r0, #246 ; 0xf6 + c58: f000 f916 bl 0xe88 + c5c: 2002 mov r0, #2 + c5e: f000 f913 bl 0xe88 + c62: 2000 mov r0, #0 + c64: f000 f910 bl 0xe88 + c68: 2041 mov r0, #65 ; 0x41 + c6a: f000 f90d bl 0xe88 + c6e: 2002 mov r0, #2 + c70: f000 f90a bl 0xe88 + c74: 2043 mov r0, #67 ; 0x43 + c76: f000 f907 bl 0xe88 + c7a: 2001 mov r0, #1 + c7c: 0300 lsl r0, r0, #12 + c7e: f000 f91b bl 0xeb8 + c82: 4669 mov r1, sp + c84: 7208 strb r0, [r1, #8] + c86: 2002 mov r0, #2 + c88: 7448 strb r0, [r1, #17] ; 0x11 + c8a: 2000 mov r0, #0 + c8c: 9000 str r0, [sp, #0] + c8e: 9800 ldr r0, [sp, #0] + c90: 2802 cmp r0, #2 + c92: d215 bcs 0xcc0 + c94: 2001 mov r0, #1 + c96: 0300 lsl r0, r0, #12 + c98: f000 f90e bl 0xeb8 + c9c: 4669 mov r1, sp + c9e: 9a00 ldr r2, [sp, #0] + ca0: 1a89 sub r1, r1, r2 + ca2: 7348 strb r0, [r1, #13] ; 0xd + ca4: 4669 mov r1, sp + ca6: 9800 ldr r0, [sp, #0] + ca8: 1a08 sub r0, r1, r0 + caa: 7b40 ldrb r0, [r0, #13] ; 0xd + cac: 7c49 ldrb r1, [r1, #17] ; 0x11 + cae: 4048 eor r0, r1 + cb0: 4669 mov r1, sp + cb2: 7448 strb r0, [r1, #17] ; 0x11 + cb4: 9800 ldr r0, [sp, #0] + cb6: 3001 add r0, #1 + cb8: 9000 str r0, [sp, #0] + cba: 9800 ldr r0, [sp, #0] + cbc: 2802 cmp r0, #2 + cbe: d3e9 bcc 0xc94 + cc0: 4668 mov r0, sp + cc2: 8980 ldrh r0, [r0, #12] ; 0xc + cc4: 466a mov r2, sp + cc6: 1e41 sub r1, r0, #1 + cc8: 8191 strh r1, [r2, #12] ; 0xc + cca: 2800 cmp r0, #0 + ccc: d016 beq 0xcfc + cce: 2001 mov r0, #1 + cd0: 0300 lsl r0, r0, #12 + cd2: f000 f8f1 bl 0xeb8 + cd6: 9905 ldr r1, [sp, #20] ; 0x14 + cd8: 7008 strb r0, [r1, #0] + cda: 9805 ldr r0, [sp, #20] ; 0x14 + cdc: 7800 ldrb r0, [r0, #0] + cde: 4669 mov r1, sp + ce0: 7c49 ldrb r1, [r1, #17] ; 0x11 + ce2: 4048 eor r0, r1 + ce4: 4669 mov r1, sp + ce6: 7448 strb r0, [r1, #17] ; 0x11 + ce8: 9805 ldr r0, [sp, #20] ; 0x14 + cea: 3001 add r0, #1 + cec: 9005 str r0, [sp, #20] ; 0x14 + cee: 4668 mov r0, sp + cf0: 8981 ldrh r1, [r0, #12] ; 0xc + cf2: 466a mov r2, sp + cf4: 1e48 sub r0, r1, #1 + cf6: 8190 strh r0, [r2, #12] ; 0xc + cf8: 2900 cmp r1, #0 + cfa: d1e8 bne 0xcce + cfc: 2001 mov r0, #1 + cfe: 0300 lsl r0, r0, #12 + d00: f000 f8da bl 0xeb8 + d04: 4669 mov r1, sp + d06: 7408 strb r0, [r1, #16] ; 0x10 + d08: 4668 mov r0, sp + d0a: 7c01 ldrb r1, [r0, #16] ; 0x10 + d0c: 7c40 ldrb r0, [r0, #17] ; 0x11 + d0e: 4281 cmp r1, r0 + d10: d015 beq 0xd3e + d12: 201b mov r0, #27 ; 0x1b + d14: f000 f8b8 bl 0xe88 + d18: 20f6 mov r0, #246 ; 0xf6 + d1a: f000 f8b5 bl 0xe88 + d1e: 2002 mov r0, #2 + d20: f000 f8b2 bl 0xe88 + d24: 2000 mov r0, #0 + d26: f000 f8af bl 0xe88 + d2a: 2045 mov r0, #69 ; 0x45 + d2c: f000 f8ac bl 0xe88 + d30: 2053 mov r0, #83 ; 0x53 + d32: f000 f8a9 bl 0xe88 + d36: 2016 mov r0, #22 ; 0x16 + d38: f000 f8a6 bl 0xe88 + d3c: e045 b 0xdca + d3e: 2081 mov r0, #129 ; 0x81 + d40: 0100 lsl r0, r0, #4 + d42: 9006 str r0, [sp, #24] ; 0x18 + d44: 48b1 ldr r0, =0x803ce0 ; via 0x100c + d46: 9007 str r0, [sp, #28] ; 0x1c + d48: 2000 mov r0, #0 + d4a: 9000 str r0, [sp, #0] + d4c: 9800 ldr r0, [sp, #0] + d4e: 2804 cmp r0, #4 + d50: d221 bcs 0xd96 + d52: 9900 ldr r1, [sp, #0] + d54: 9806 ldr r0, [sp, #24] ; 0x18 + d56: 5c0a ldrb r2, [r1, r0] + d58: 9900 ldr r1, [sp, #0] + d5a: 9807 ldr r0, [sp, #28] ; 0x1c + d5c: 5c08 ldrb r0, [r1, r0] + d5e: 4282 cmp r2, r0 + d60: dd13 ble 0xd8a + d62: 201b mov r0, #27 ; 0x1b + d64: f000 f890 bl 0xe88 + d68: 20f6 mov r0, #246 ; 0xf6 + d6a: f000 f88d bl 0xe88 + d6e: 2002 mov r0, #2 + d70: f000 f88a bl 0xe88 + d74: 2000 mov r0, #0 + d76: f000 f887 bl 0xe88 + d7a: 2041 mov r0, #65 ; 0x41 + d7c: f000 f884 bl 0xe88 + d80: 2003 mov r0, #3 + d82: f000 f881 bl 0xe88 + d86: 2057 mov r0, #87 ; 0x57 + d88: e7d6 b 0xd38 + d8a: 9800 ldr r0, [sp, #0] + d8c: 3001 add r0, #1 + d8e: 9000 str r0, [sp, #0] + d90: 9800 ldr r0, [sp, #0] + d92: 2804 cmp r0, #4 + d94: d3dd bcc 0xd52 + d96: 201b mov r0, #27 ; 0x1b + d98: f000 f876 bl 0xe88 + d9c: 20f6 mov r0, #246 ; 0xf6 + d9e: f000 f873 bl 0xe88 + da2: 2002 mov r0, #2 + da4: f000 f870 bl 0xe88 + da8: 2000 mov r0, #0 + daa: f000 f86d bl 0xe88 + dae: 2041 mov r0, #65 ; 0x41 + db0: f000 f86a bl 0xe88 + db4: 2003 mov r0, #3 + db6: f000 f867 bl 0xe88 + dba: 2042 mov r0, #66 ; 0x42 + dbc: f000 f864 bl 0xe88 + dc0: 484b ldr r0, =0x83ff00 ; via 0xef0 + dc2: 6800 ldr r0, [r0, #0] + dc4: 4992 ldr r1, =0x800100 ; via 0x1010 + dc6: f000 f85e bl 0xe86 + dca: b009 add sp, #36 ; 0x24 + dcc: bd00 pop {pc} + + dce: b500 push {lr} + dd0: b081 sub sp, #4 + dd2: 2066 mov r0, #102 ; 0x66 + dd4: f000 f858 bl 0xe88 + dd8: 2074 mov r0, #116 ; 0x74 + dda: f000 f855 bl 0xe88 + dde: 206d mov r0, #109 ; 0x6d + de0: f000 f852 bl 0xe88 + de4: 2074 mov r0, #116 ; 0x74 + de6: f000 f84f bl 0xe88 + dea: 206f mov r0, #111 ; 0x6f + dec: f000 f84c bl 0xe88 + df0: 206f mov r0, #111 ; 0x6f + df2: f000 f849 bl 0xe88 + df6: 206c mov r0, #108 ; 0x6c + df8: f000 f846 bl 0xe88 + dfc: 4985 ldr r1, =0x83ff80 ; via 0x1014 + dfe: 2000 mov r0, #0 + e00: 7008 strb r0, [r1, #0] + e02: 9000 str r0, [sp, #0] + e04: 9800 ldr r0, [sp, #0] + e06: 0c00 lsr r0, r0, #16 + e08: d105 bne 0xe16 + e0a: 9800 ldr r0, [sp, #0] + e0c: 3001 add r0, #1 + e0e: 9000 str r0, [sp, #0] + e10: 9800 ldr r0, [sp, #0] + e12: 0c00 lsr r0, r0, #16 + e14: d0f9 beq 0xe0a + e16: 2007 mov r0, #7 + e18: 0400 lsl r0, r0, #16 + e1a: f000 f84d bl 0xeb8 + e1e: 2879 cmp r0, #121 ; 0x79 + e20: d10e bne 0xe40 + e22: 2001 mov r0, #1 + e24: 0300 lsl r0, r0, #12 + e26: f000 f847 bl 0xeb8 + e2a: 2865 cmp r0, #101 ; 0x65 + e2c: d108 bne 0xe40 + e2e: 2001 mov r0, #1 + e30: 0300 lsl r0, r0, #12 + e32: f000 f841 bl 0xeb8 + e36: 2873 cmp r0, #115 ; 0x73 + e38: d102 bne 0xe40 + e3a: 4876 ldr r0, =0x83ff80 ; via 0x1014 + e3c: 2101 mov r1, #1 + e3e: 7001 strb r1, [r0, #0] + e40: f000 f8d2 bl 0xfe8 + e44: 2800 cmp r0, #0 + e46: d00d beq 0xe64 + e48: 206d mov r0, #109 ; 0x6d + e4a: f000 f81d bl 0xe88 + e4e: 206f mov r0, #111 ; 0x6f + e50: f000 f81a bl 0xe88 + e54: 2064 mov r0, #100 ; 0x64 + e56: f000 f817 bl 0xe88 + e5a: 2065 mov r0, #101 ; 0x65 + e5c: f000 f814 bl 0xe88 + e60: 206d mov r0, #109 ; 0x6d + e62: e00c b 0xe7e + e64: 2065 mov r0, #101 ; 0x65 + e66: f000 f80f bl 0xe88 + e6a: 2072 mov r0, #114 ; 0x72 + e6c: f000 f80c bl 0xe88 + e70: 2072 mov r0, #114 ; 0x72 + e72: f000 f809 bl 0xe88 + e76: 206f mov r0, #111 ; 0x6f + e78: f000 f806 bl 0xe88 + e7c: 2072 mov r0, #114 ; 0x72 + e7e: f000 f803 bl 0xe88 + e82: b001 add sp, #4 + e84: bd00 pop {pc} + + e86: 4708 bx r1 + + e88: b081 sub sp, #4 + e8a: 4669 mov r1, sp + e8c: 7008 strb r0, [r1, #0] + e8e: 4818 ldr r0, =0x83ff00 ; via 0xef0 + e90: 6800 ldr r0, [r0, #0] + e92: 7940 ldrb r0, [r0, #5] + e94: 0980 lsr r0, r0, #6 + e96: d3fa bcc 0xe8e + e98: 4815 ldr r0, =0x83ff00 ; via 0xef0 + e9a: 6800 ldr r0, [r0, #0] + e9c: 4669 mov r1, sp + e9e: 7809 ldrb r1, [r1, #0] + ea0: 7001 strb r1, [r0, #0] + ea2: b001 add sp, #4 + ea4: 46f7 mov pc, lr + ea6: 4812 ldr r0, =0x83ff00 ; via 0xef0 + ea8: 6800 ldr r0, [r0, #0] + eaa: 7940 ldrb r0, [r0, #5] + eac: 0840 lsr r0, r0, #1 + eae: d3fa bcc 0xea6 + eb0: 480f ldr r0, =0x83ff00 ; via 0xef0 + eb2: 6800 ldr r0, [r0, #0] + eb4: 7800 ldrb r0, [r0, #0] + eb6: 4770 bx lr + eb8: b083 sub sp, #12 ; 0xc + eba: 9000 str r0, [sp, #0] + ebc: 9800 ldr r0, [sp, #0] + ebe: 9002 str r0, [sp, #8] + ec0: 480b ldr r0, =0x83ff00 ; via 0xef0 + ec2: 6800 ldr r0, [r0, #0] + ec4: 7940 ldrb r0, [r0, #5] + ec6: 0840 lsr r0, r0, #1 + ec8: d20c bcs 0xee4 + eca: 9802 ldr r0, [sp, #8] + ecc: 3801 sub r0, #1 + ece: 9002 str r0, [sp, #8] + ed0: 9802 ldr r0, [sp, #8] + ed2: 2800 cmp r0, #0 + ed4: d101 bne 0xeda + ed6: 20ff mov r0, #255 ; 0xff + ed8: e007 b 0xeea + eda: 484f ldr r0, =0x83ff00 ; via 0x1018 + edc: 6800 ldr r0, [r0, #0] + ede: 7940 ldrb r0, [r0, #5] + ee0: 0840 lsr r0, r0, #1 + ee2: d3f2 bcc 0xeca + ee4: 484c ldr r0, =0x83ff00 ; via 0x1018 + ee6: 6800 ldr r0, [r0, #0] + ee8: 7800 ldrb r0, [r0, #0] + eea: b003 add sp, #12 ; 0xc + eec: 4770 bx lr + eee: 46c0 nop (mov r8, r8) + ef0: ff00 + ef2: 0083 lsl r3, r0, #2 + ef4: 5800 ldr r0, [r0, r0] + ef6: ffff + ef8: b081 sub sp, #4 + efa: e001 b 0xf00 + efc: 9800 ldr r0, [sp, #0] + efe: 3801 sub r0, #1 + f00: 9000 str r0, [sp, #0] + f02: 4845 ldr r0, =0x83ff00 ; via 0x1018 + f04: 6800 ldr r0, [r0, #0] + f06: 7940 ldrb r0, [r0, #5] + f08: 0840 lsr r0, r0, #1 + f0a: d202 bcs 0xf12 + f0c: 9800 ldr r0, [sp, #0] + f0e: 2800 cmp r0, #0 + f10: dcf4 bgt 0xefc + f12: 9800 ldr r0, [sp, #0] + f14: 2800 cmp r0, #0 + f16: dd01 ble 0xf1c + f18: 2000 mov r0, #0 + f1a: e000 b 0xf1e + f1c: 2001 mov r0, #1 + f1e: b001 add sp, #4 + f20: 4770 bx lr + f22: b082 sub sp, #8 + f24: 9000 str r0, [sp, #0] + f26: 4669 mov r1, sp + f28: 2000 mov r0, #0 + f2a: 7188 strb r0, [r1, #6] + f2c: 9900 ldr r1, [sp, #0] + f2e: 483b ldr r0, =0xfffef000 ; via 0x101c + f30: 8800 ldrh r0, [r0, #0] + f32: 8008 strh r0, [r1, #0] + f34: b002 add sp, #8 + f36: 4770 bx lr + f38: 0100 lsl r0, r0, #4 + f3a: 0080 lsl r0, r0, #2 + f3c: 2060 mov r0, #96 ; 0x60 + f3e: 0000 lsl r0, r0, #0 + f40: dddd ble 0xefe + f42: dddd ble 0xf00 + f44: b081 sub sp, #4 + f46: 466a mov r2, sp + f48: 7051 strb r1, [r2, #1] + f4a: 4669 mov r1, sp + f4c: 7008 strb r0, [r1, #0] + f4e: 4934 ldr r1, =0xffff6000 ; via 0x1020 + f50: 2002 mov r0, #2 + f52: 880a ldrh r2, [r1, #0] + f54: 4310 orr r0, r2 + f56: 8008 strh r0, [r1, #0] + f58: 4831 ldr r0, =0xffff6000 ; via 0x1020 + f5a: 8801 ldrh r1, [r0, #0] + f5c: 0849 lsr r1, r1, #1 + f5e: 0049 lsl r1, r1, #1 + f60: 8001 strh r1, [r0, #0] + f62: 492f ldr r1, =0xffff6000 ; via 0x1020 + f64: 8808 ldrh r0, [r1, #0] + f66: 2202 mov r2, #2 + f68: 4390 bic r0, r2 + f6a: 8008 strh r0, [r1, #0] + f6c: 482a ldr r0, =0x83ff00 ; via 0x1018 + f6e: 6801 ldr r1, [r0, #0] + f70: 2007 mov r0, #7 + f72: 7208 strb r0, [r1, #8] + f74: 4828 ldr r0, =0x83ff00 ; via 0x1018 + f76: 6801 ldr r1, [r0, #0] + f78: 20bf mov r0, #191 ; 0xbf + f7a: 70c8 strb r0, [r1, #3] + f7c: 4826 ldr r0, =0x83ff00 ; via 0x1018 + f7e: 6800 ldr r0, [r0, #0] + f80: 1c80 add r0, r0, #2 + f82: 2110 mov r1, #16 ; 0x10 + f84: 8802 ldrh r2, [r0, #0] + f86: 4311 orr r1, r2 + f88: 8001 strh r1, [r0, #0] + f8a: 4823 ldr r0, =0x83ff00 ; via 0x1018 + f8c: 6801 ldr r1, [r0, #0] + f8e: 2080 mov r0, #128 ; 0x80 + f90: 70c8 strb r0, [r1, #3] + f92: 4821 ldr r0, =0x83ff00 ; via 0x1018 + f94: 6800 ldr r0, [r0, #0] + f96: 2107 mov r1, #7 + f98: 7081 strb r1, [r0, #2] + f9a: 481f ldr r0, =0x83ff00 ; via 0x1018 + f9c: 6800 ldr r0, [r0, #0] + f9e: 21bf mov r1, #191 ; 0xbf + fa0: 70c1 strb r1, [r0, #3] + fa2: 481d ldr r0, =0x83ff00 ; via 0x1018 + fa4: 6801 ldr r1, [r0, #0] + fa6: 4668 mov r0, sp + fa8: 7840 ldrb r0, [r0, #1] + faa: 7008 strb r0, [r1, #0] + fac: 481a ldr r0, =0x83ff00 ; via 0x1018 + fae: 6801 ldr r1, [r0, #0] + fb0: 4668 mov r0, sp + fb2: 7800 ldrb r0, [r0, #0] + fb4: 7048 strb r0, [r1, #1] + fb6: 4818 ldr r0, =0x83ff00 ; via 0x1018 + fb8: 6801 ldr r1, [r0, #0] + fba: 2003 mov r0, #3 + fbc: 70c8 strb r0, [r1, #3] + fbe: 4816 ldr r0, =0x83ff00 ; via 0x1018 + fc0: 6800 ldr r0, [r0, #0] + fc2: 2100 mov r1, #0 + fc4: 7201 strb r1, [r0, #8] + fc6: 4814 ldr r0, =0x83ff00 ; via 0x1018 + fc8: 6800 ldr r0, [r0, #0] + fca: 7940 ldrb r0, [r0, #5] + fcc: 0840 lsr r0, r0, #1 + fce: d309 bcc 0xfe4 + fd0: 4669 mov r1, sp + fd2: 4811 ldr r0, =0x83ff00 ; via 0x1018 + fd4: 6800 ldr r0, [r0, #0] + fd6: 7800 ldrb r0, [r0, #0] + fd8: 7088 strb r0, [r1, #2] + fda: 480f ldr r0, =0x83ff00 ; via 0x1018 + fdc: 6800 ldr r0, [r0, #0] + fde: 7940 ldrb r0, [r0, #5] + fe0: 0840 lsr r0, r0, #1 + fe2: d2f5 bcs 0xfd0 + fe4: b001 add sp, #4 + fe6: 4770 bx lr + fe8: 480a ldr r0, =0x83ff80 ; via 0x1014 + fea: 7800 ldrb r0, [r0, #0] + fec: 4770 bx lr + fee: b500 push {lr} + ff0: b081 sub sp, #4 + ff2: 4669 mov r1, sp + ff4: 7008 strb r0, [r1, #0] + ff6: 4668 mov r0, sp + ff8: 7800 ldrb r0, [r0, #0] + ffa: f7ff ff45 bl 0xe88 + ffe: b001 add sp, #4 + 1000: bd00 pop {pc} + 1002: b500 push {lr} + 1004: f7ff ff4f bl 0xea6 + 1008: bd00 pop {pc} + 100a: 46c0 nop (mov r8, r8) + 100c: 3ce0 sub r4, #224 ; 0xe0 + 100e: 0080 lsl r0, r0, #2 + 1010: 0100 lsl r0, r0, #4 + 1012: 0080 lsl r0, r0, #2 + 1014: ff80 + 1016: 0083 lsl r3, r0, #2 + 1018: ff00 + 101a: 0083 lsl r3, r0, #2 + 101c: f000 fffe bl 0x201c + 1020: 6000 str r0, [r0, #0] + 1022: ffff + 1024: 4700 bx r0 + 1026: 0000 lsl r0, r0, #0 + 1028: b08c sub sp, #48 ; 0x30 + 102a: 9101 str r1, [sp, #4] + 102c: 9000 str r0, [sp, #0] + 102e: 2000 mov r0, #0 + 1030: 9003 str r0, [sp, #12] ; 0xc + 1032: 9800 ldr r0, [sp, #0] + 1034: 7801 ldrb r1, [r0, #0] + 1036: 3001 add r0, #1 + 1038: 9000 str r0, [sp, #0] + 103a: 9105 str r1, [sp, #20] ; 0x14 + 103c: 9800 ldr r0, [sp, #0] + 103e: 7801 ldrb r1, [r0, #0] + 1040: 3001 add r0, #1 + 1042: 9000 str r0, [sp, #0] + 1044: 9801 ldr r0, [sp, #4] + 1046: 7001 strb r1, [r0, #0] + 1048: 2001 mov r0, #1 + 104a: 9004 str r0, [sp, #16] ; 0x10 + 104c: e0a8 b 0x11a0 + 104e: 9804 ldr r0, [sp, #16] ; 0x10 + 1050: 3002 add r0, #2 + 1052: 9004 str r0, [sp, #16] ; 0x10 + 1054: 9800 ldr r0, [sp, #0] + 1056: 7801 ldrb r1, [r0, #0] + 1058: 3001 add r0, #1 + 105a: 9000 str r0, [sp, #0] + 105c: 4668 mov r0, sp + 105e: 8441 strh r1, [r0, #34] ; 0x22 + 1060: 9800 ldr r0, [sp, #0] + 1062: 7801 ldrb r1, [r0, #0] + 1064: 3001 add r0, #1 + 1066: 9000 str r0, [sp, #0] + 1068: 4668 mov r0, sp + 106a: 8401 strh r1, [r0, #32] ; 0x20 + 106c: 8c00 ldrh r0, [r0, #32] ; 0x20 + 106e: 4669 mov r1, sp + 1070: 8c49 ldrh r1, [r1, #34] ; 0x22 + 1072: 0209 lsl r1, r1, #8 + 1074: 1840 add r0, r0, r1 + 1076: 9901 ldr r1, [sp, #4] + 1078: 8088 strh r0, [r1, #4] + 107a: 9804 ldr r0, [sp, #16] ; 0x10 + 107c: 3001 add r0, #1 + 107e: 9004 str r0, [sp, #16] ; 0x10 + 1080: 9800 ldr r0, [sp, #0] + 1082: 7801 ldrb r1, [r0, #0] + 1084: 3001 add r0, #1 + 1086: 9000 str r0, [sp, #0] + 1088: 4668 mov r0, sp + 108a: 7601 strb r1, [r0, #24] ; 0x18 + 108c: 9901 ldr r1, [sp, #4] + 108e: 7e00 ldrb r0, [r0, #24] ; 0x18 + 1090: 7188 strb r0, [r1, #6] + 1092: 4668 mov r0, sp + 1094: 7e00 ldrb r0, [r0, #24] ; 0x18 + 1096: 2840 cmp r0, #64 ; 0x40 + 1098: dc00 bgt 0x109c + 109a: e09f b 0x11dc + 109c: 2004 mov r0, #4 + 109e: 9003 str r0, [sp, #12] ; 0xc + 10a0: e09c b 0x11dc + 10a2: 9804 ldr r0, [sp, #16] ; 0x10 + 10a4: 3002 add r0, #2 + 10a6: 9004 str r0, [sp, #16] ; 0x10 + 10a8: 9800 ldr r0, [sp, #0] + 10aa: 7801 ldrb r1, [r0, #0] + 10ac: 3001 add r0, #1 + 10ae: 9000 str r0, [sp, #0] + 10b0: 4668 mov r0, sp + 10b2: 8441 strh r1, [r0, #34] ; 0x22 + 10b4: 9800 ldr r0, [sp, #0] + 10b6: 7801 ldrb r1, [r0, #0] + 10b8: 3001 add r0, #1 + 10ba: 9000 str r0, [sp, #0] + 10bc: 4668 mov r0, sp + 10be: 8401 strh r1, [r0, #32] ; 0x20 + 10c0: 8c00 ldrh r0, [r0, #32] ; 0x20 + 10c2: 4669 mov r1, sp + 10c4: 8c49 ldrh r1, [r1, #34] ; 0x22 + 10c6: 0209 lsl r1, r1, #8 + 10c8: 1841 add r1, r0, r1 + 10ca: 9801 ldr r0, [sp, #4] + 10cc: 8081 strh r1, [r0, #4] + 10ce: 9804 ldr r0, [sp, #16] ; 0x10 + 10d0: 3001 add r0, #1 + 10d2: 9004 str r0, [sp, #16] ; 0x10 + 10d4: 9800 ldr r0, [sp, #0] + 10d6: 7801 ldrb r1, [r0, #0] + 10d8: 3001 add r0, #1 + 10da: 9000 str r0, [sp, #0] + 10dc: 4668 mov r0, sp + 10de: 7601 strb r1, [r0, #24] ; 0x18 + 10e0: 9901 ldr r1, [sp, #4] + 10e2: 7e00 ldrb r0, [r0, #24] ; 0x18 + 10e4: 7188 strb r0, [r1, #6] + 10e6: 4668 mov r0, sp + 10e8: 7e00 ldrb r0, [r0, #24] ; 0x18 + 10ea: 2840 cmp r0, #64 ; 0x40 + 10ec: dcd6 bgt 0x109c + 10ee: 9801 ldr r0, [sp, #4] + 10f0: 3008 add r0, #8 + 10f2: 9007 str r0, [sp, #28] ; 0x1c + 10f4: 2000 mov r0, #0 + 10f6: 9002 str r0, [sp, #8] + 10f8: 9902 ldr r1, [sp, #8] + 10fa: 4668 mov r0, sp + 10fc: 7e00 ldrb r0, [r0, #24] ; 0x18 + 10fe: 4281 cmp r1, r0 + 1100: da6c bge 0x11dc + 1102: 9800 ldr r0, [sp, #0] + 1104: 7801 ldrb r1, [r0, #0] + 1106: 3001 add r0, #1 + 1108: 9000 str r0, [sp, #0] + 110a: 4668 mov r0, sp + 110c: 84c1 strh r1, [r0, #38] ; 0x26 + 110e: 9800 ldr r0, [sp, #0] + 1110: 7801 ldrb r1, [r0, #0] + 1112: 3001 add r0, #1 + 1114: 9000 str r0, [sp, #0] + 1116: 4668 mov r0, sp + 1118: 8481 strh r1, [r0, #36] ; 0x24 + 111a: 9807 ldr r0, [sp, #28] ; 0x1c + 111c: 1c81 add r1, r0, #2 + 111e: 9107 str r1, [sp, #28] ; 0x1c + 1120: 4669 mov r1, sp + 1122: 8c89 ldrh r1, [r1, #36] ; 0x24 + 1124: 466a mov r2, sp + 1126: 8cd2 ldrh r2, [r2, #38] ; 0x26 + 1128: 0212 lsl r2, r2, #8 + 112a: 1889 add r1, r1, r2 + 112c: 8001 strh r1, [r0, #0] + 112e: 9804 ldr r0, [sp, #16] ; 0x10 + 1130: 3002 add r0, #2 + 1132: 9004 str r0, [sp, #16] ; 0x10 + 1134: 9802 ldr r0, [sp, #8] + 1136: 3001 add r0, #1 + 1138: 9002 str r0, [sp, #8] + 113a: 9902 ldr r1, [sp, #8] + 113c: 4668 mov r0, sp + 113e: 7e00 ldrb r0, [r0, #24] ; 0x18 + 1140: 4281 cmp r1, r0 + 1142: dbde blt 0x1102 + 1144: e04a b 0x11dc + 1146: 9804 ldr r0, [sp, #16] ; 0x10 + 1148: 3002 add r0, #2 + 114a: 9004 str r0, [sp, #16] ; 0x10 + 114c: 9800 ldr r0, [sp, #0] + 114e: 7801 ldrb r1, [r0, #0] + 1150: 3001 add r0, #1 + 1152: 9000 str r0, [sp, #0] + 1154: 4668 mov r0, sp + 1156: 8501 strh r1, [r0, #40] ; 0x28 + 1158: 9800 ldr r0, [sp, #0] + 115a: 7801 ldrb r1, [r0, #0] + 115c: 3001 add r0, #1 + 115e: 9000 str r0, [sp, #0] + 1160: 4668 mov r0, sp + 1162: 8541 strh r1, [r0, #42] ; 0x2a + 1164: 8d41 ldrh r1, [r0, #42] ; 0x2a + 1166: 8d00 ldrh r0, [r0, #40] ; 0x28 + 1168: 0200 lsl r0, r0, #8 + 116a: 1809 add r1, r1, r0 + 116c: 9801 ldr r0, [sp, #4] + 116e: 8081 strh r1, [r0, #4] + 1170: 9804 ldr r0, [sp, #16] ; 0x10 + 1172: 3002 add r0, #2 + 1174: 9004 str r0, [sp, #16] ; 0x10 + 1176: 9800 ldr r0, [sp, #0] + 1178: 7801 ldrb r1, [r0, #0] + 117a: 3001 add r0, #1 + 117c: 9000 str r0, [sp, #0] + 117e: 4668 mov r0, sp + 1180: 8581 strh r1, [r0, #44] ; 0x2c + 1182: 9800 ldr r0, [sp, #0] + 1184: 7801 ldrb r1, [r0, #0] + 1186: 3001 add r0, #1 + 1188: 9000 str r0, [sp, #0] + 118a: 4668 mov r0, sp + 118c: 85c1 strh r1, [r0, #46] ; 0x2e + 118e: 8dc1 ldrh r1, [r0, #46] ; 0x2e + 1190: 8d80 ldrh r0, [r0, #44] ; 0x2c + 1192: 0200 lsl r0, r0, #8 + 1194: 1808 add r0, r1, r0 + 1196: 9901 ldr r1, [sp, #4] + 1198: 80c8 strh r0, [r1, #6] + 119a: e01f b 0x11dc + 119c: 2008 mov r0, #8 + 119e: e77e b 0x109e + 11a0: 9801 ldr r0, [sp, #4] + 11a2: 7801 ldrb r1, [r0, #0] + 11a4: 290a cmp r1, #10 ; 0xa + 11a6: d8f9 bhi 0x119c + 11a8: a001 add r0, pc, #4 + 11aa: 0089 lsl r1, r1, #2 + 11ac: 5840 ldr r0, [r0, r1] + 11ae: 4687 mov pc, r0 + 11b0: 11dc asr r4, r3, #7 + 11b2: 0000 lsl r0, r0, #0 + 11b4: 11dc asr r4, r3, #7 + 11b6: 0000 lsl r0, r0, #0 + 11b8: 11dc asr r4, r3, #7 + 11ba: 0000 lsl r0, r0, #0 + 11bc: 11dc asr r4, r3, #7 + 11be: 0000 lsl r0, r0, #0 + 11c0: 11dc asr r4, r3, #7 + 11c2: 0000 lsl r0, r0, #0 + 11c4: 11dc asr r4, r3, #7 + 11c6: 0000 lsl r0, r0, #0 + 11c8: 11dc asr r4, r3, #7 + 11ca: 0000 lsl r0, r0, #0 + 11cc: 104e asr r6, r1, #1 + 11ce: 0000 lsl r0, r0, #0 + 11d0: 10a2 asr r2, r4, #2 + 11d2: 0000 lsl r0, r0, #0 + 11d4: 11dc asr r4, r3, #7 + 11d6: 0000 lsl r0, r0, #0 + 11d8: 1146 asr r6, r0, #5 + 11da: 0000 lsl r0, r0, #0 + 11dc: 9905 ldr r1, [sp, #20] ; 0x14 + 11de: 9804 ldr r0, [sp, #16] ; 0x10 + 11e0: 4281 cmp r1, r0 + 11e2: d001 beq 0x11e8 + 11e4: 2004 mov r0, #4 + 11e6: 9003 str r0, [sp, #12] ; 0xc + 11e8: 9803 ldr r0, [sp, #12] ; 0xc + 11ea: b00c add sp, #48 ; 0x30 + 11ec: 4770 bx lr + 11ee: b089 sub sp, #36 ; 0x24 + 11f0: 9101 str r1, [sp, #4] + 11f2: 9000 str r0, [sp, #0] + 11f4: 2000 mov r0, #0 + 11f6: 9003 str r0, [sp, #12] ; 0xc + 11f8: 9801 ldr r0, [sp, #4] + 11fa: 1c41 add r1, r0, #1 + 11fc: 9101 str r1, [sp, #4] + 11fe: 9005 str r0, [sp, #20] ; 0x14 + 1200: 9801 ldr r0, [sp, #4] + 1202: 1c41 add r1, r0, #1 + 1204: 9101 str r1, [sp, #4] + 1206: 9900 ldr r1, [sp, #0] + 1208: 7809 ldrb r1, [r1, #0] + 120a: 7001 strb r1, [r0, #0] + 120c: 4669 mov r1, sp + 120e: 2001 mov r0, #1 + 1210: 7408 strb r0, [r1, #16] ; 0x10 + 1212: 9801 ldr r0, [sp, #4] + 1214: 1c41 add r1, r0, #1 + 1216: 9101 str r1, [sp, #4] + 1218: 9900 ldr r1, [sp, #0] + 121a: 7849 ldrb r1, [r1, #1] + 121c: 7001 strb r1, [r0, #0] + 121e: 4669 mov r1, sp + 1220: 4668 mov r0, sp + 1222: 7c00 ldrb r0, [r0, #16] ; 0x10 + 1224: 3001 add r0, #1 + 1226: 7408 strb r0, [r1, #16] ; 0x10 + 1228: e0e4 b 0x13f4 + 122a: 9800 ldr r0, [sp, #0] + 122c: 7840 ldrb r0, [r0, #1] + 122e: 2800 cmp r0, #0 + 1230: d000 beq 0x1234 + 1232: e0fd b 0x1430 + 1234: 9801 ldr r0, [sp, #4] + 1236: 1c41 add r1, r0, #1 + 1238: 9101 str r1, [sp, #4] + 123a: 9900 ldr r1, [sp, #0] + 123c: 7909 ldrb r1, [r1, #4] + 123e: 7001 strb r1, [r0, #0] + 1240: 9801 ldr r0, [sp, #4] + 1242: 1c41 add r1, r0, #1 + 1244: 9101 str r1, [sp, #4] + 1246: 9900 ldr r1, [sp, #0] + 1248: 7949 ldrb r1, [r1, #5] + 124a: 7001 strb r1, [r0, #0] + 124c: 9801 ldr r0, [sp, #4] + 124e: 1c41 add r1, r0, #1 + 1250: 9101 str r1, [sp, #4] + 1252: 9900 ldr r1, [sp, #0] + 1254: 7989 ldrb r1, [r1, #6] + 1256: 7001 strb r1, [r0, #0] + 1258: 4668 mov r0, sp + 125a: 7c00 ldrb r0, [r0, #16] ; 0x10 + 125c: 3003 add r0, #3 + 125e: 4669 mov r1, sp + 1260: 7408 strb r0, [r1, #16] ; 0x10 + 1262: e0e5 b 0x1430 + 1264: 9800 ldr r0, [sp, #0] + 1266: 7840 ldrb r0, [r0, #1] + 1268: 2800 cmp r0, #0 + 126a: d000 beq 0x126e + 126c: e0e0 b 0x1430 + 126e: 9801 ldr r0, [sp, #4] + 1270: 1c41 add r1, r0, #1 + 1272: 9101 str r1, [sp, #4] + 1274: 9900 ldr r1, [sp, #0] + 1276: 7909 ldrb r1, [r1, #4] + 1278: 7001 strb r1, [r0, #0] + 127a: 4668 mov r0, sp + 127c: 7c00 ldrb r0, [r0, #16] ; 0x10 + 127e: 3001 add r0, #1 + 1280: e7ed b 0x125e + 1282: 9800 ldr r0, [sp, #0] + 1284: 7840 ldrb r0, [r0, #1] + 1286: 2800 cmp r0, #0 + 1288: d000 beq 0x128c + 128a: e0d1 b 0x1430 + 128c: e7ef b 0x126e + 128e: 9800 ldr r0, [sp, #0] + 1290: 7840 ldrb r0, [r0, #1] + 1292: 2800 cmp r0, #0 + 1294: d000 beq 0x1298 + 1296: e0cb b 0x1430 + 1298: e7e9 b 0x126e + 129a: 9800 ldr r0, [sp, #0] + 129c: 7840 ldrb r0, [r0, #1] + 129e: 2800 cmp r0, #0 + 12a0: d000 beq 0x12a4 + 12a2: e0c5 b 0x1430 + 12a4: 4669 mov r1, sp + 12a6: 9800 ldr r0, [sp, #0] + 12a8: 8880 ldrh r0, [r0, #4] + 12aa: 8408 strh r0, [r1, #32] ; 0x20 + 12ac: 9801 ldr r0, [sp, #4] + 12ae: 1c41 add r1, r0, #1 + 12b0: 9101 str r1, [sp, #4] + 12b2: 4669 mov r1, sp + 12b4: 8c09 ldrh r1, [r1, #32] ; 0x20 + 12b6: 0409 lsl r1, r1, #16 + 12b8: 0e09 lsr r1, r1, #24 + 12ba: 0209 lsl r1, r1, #8 + 12bc: 1209 asr r1, r1, #8 + 12be: 7001 strb r1, [r0, #0] + 12c0: 9801 ldr r0, [sp, #4] + 12c2: 1c41 add r1, r0, #1 + 12c4: 9101 str r1, [sp, #4] + 12c6: 4669 mov r1, sp + 12c8: 8c09 ldrh r1, [r1, #32] ; 0x20 + 12ca: 0609 lsl r1, r1, #24 + 12cc: 0e09 lsr r1, r1, #24 + 12ce: 7001 strb r1, [r0, #0] + 12d0: 4669 mov r1, sp + 12d2: 9800 ldr r0, [sp, #0] + 12d4: 88c0 ldrh r0, [r0, #6] + 12d6: 8408 strh r0, [r1, #32] ; 0x20 + 12d8: 9801 ldr r0, [sp, #4] + 12da: 1c41 add r1, r0, #1 + 12dc: 9101 str r1, [sp, #4] + 12de: 4669 mov r1, sp + 12e0: 8c09 ldrh r1, [r1, #32] ; 0x20 + 12e2: 0409 lsl r1, r1, #16 + 12e4: 0e09 lsr r1, r1, #24 + 12e6: 0209 lsl r1, r1, #8 + 12e8: 1209 asr r1, r1, #8 + 12ea: 7001 strb r1, [r0, #0] + 12ec: 9801 ldr r0, [sp, #4] + 12ee: 1c41 add r1, r0, #1 + 12f0: 9101 str r1, [sp, #4] + 12f2: 4669 mov r1, sp + 12f4: 8c09 ldrh r1, [r1, #32] ; 0x20 + 12f6: 0609 lsl r1, r1, #24 + 12f8: 0e09 lsr r1, r1, #24 + 12fa: 7001 strb r1, [r0, #0] + 12fc: 4668 mov r0, sp + 12fe: 7c00 ldrb r0, [r0, #16] ; 0x10 + 1300: 3004 add r0, #4 + 1302: e7ac b 0x125e + 1304: 9800 ldr r0, [sp, #0] + 1306: 7840 ldrb r0, [r0, #1] + 1308: 2800 cmp r0, #0 + 130a: d000 beq 0x130e + 130c: e090 b 0x1430 + 130e: e7ae b 0x126e + 1310: 9800 ldr r0, [sp, #0] + 1312: 7840 ldrb r0, [r0, #1] + 1314: 2800 cmp r0, #0 + 1316: d000 beq 0x131a + 1318: e08a b 0x1430 + 131a: 4669 mov r1, sp + 131c: 4668 mov r0, sp + 131e: 7c00 ldrb r0, [r0, #16] ; 0x10 + 1320: 3001 add r0, #1 + 1322: 7408 strb r0, [r1, #16] ; 0x10 + 1324: 4668 mov r0, sp + 1326: 9900 ldr r1, [sp, #0] + 1328: 7909 ldrb r1, [r1, #4] + 132a: 7601 strb r1, [r0, #24] ; 0x18 + 132c: 9801 ldr r0, [sp, #4] + 132e: 1c41 add r1, r0, #1 + 1330: 9101 str r1, [sp, #4] + 1332: 4669 mov r1, sp + 1334: 7e09 ldrb r1, [r1, #24] ; 0x18 + 1336: 7001 strb r1, [r0, #0] + 1338: 4668 mov r0, sp + 133a: 7e00 ldrb r0, [r0, #24] ; 0x18 + 133c: 2840 cmp r0, #64 ; 0x40 + 133e: dd01 ble 0x1344 + 1340: 2004 mov r0, #4 + 1342: e055 b 0x13f0 + 1344: 9800 ldr r0, [sp, #0] + 1346: 3006 add r0, #6 + 1348: 9007 str r0, [sp, #28] ; 0x1c + 134a: 2000 mov r0, #0 + 134c: 9002 str r0, [sp, #8] + 134e: 9902 ldr r1, [sp, #8] + 1350: 4668 mov r0, sp + 1352: 7e00 ldrb r0, [r0, #24] ; 0x18 + 1354: 4281 cmp r1, r0 + 1356: da6b bge 0x1430 + 1358: 9801 ldr r0, [sp, #4] + 135a: 1c41 add r1, r0, #1 + 135c: 9101 str r1, [sp, #4] + 135e: 9907 ldr r1, [sp, #28] ; 0x1c + 1360: 8809 ldrh r1, [r1, #0] + 1362: 0409 lsl r1, r1, #16 + 1364: 0e09 lsr r1, r1, #24 + 1366: 0209 lsl r1, r1, #8 + 1368: 1209 asr r1, r1, #8 + 136a: 7001 strb r1, [r0, #0] + 136c: 9807 ldr r0, [sp, #28] ; 0x1c + 136e: 8801 ldrh r1, [r0, #0] + 1370: 3002 add r0, #2 + 1372: 9007 str r0, [sp, #28] ; 0x1c + 1374: 0608 lsl r0, r1, #24 + 1376: 0e01 lsr r1, r0, #24 + 1378: 9801 ldr r0, [sp, #4] + 137a: 1c42 add r2, r0, #1 + 137c: 9201 str r2, [sp, #4] + 137e: 7001 strb r1, [r0, #0] + 1380: 4669 mov r1, sp + 1382: 4668 mov r0, sp + 1384: 7c00 ldrb r0, [r0, #16] ; 0x10 + 1386: 3002 add r0, #2 + 1388: 7408 strb r0, [r1, #16] ; 0x10 + 138a: 9802 ldr r0, [sp, #8] + 138c: 3001 add r0, #1 + 138e: 9002 str r0, [sp, #8] + 1390: 9902 ldr r1, [sp, #8] + 1392: 4668 mov r0, sp + 1394: 7e00 ldrb r0, [r0, #24] ; 0x18 + 1396: 4281 cmp r1, r0 + 1398: dbde blt 0x1358 + 139a: e049 b 0x1430 + 139c: 9800 ldr r0, [sp, #0] + 139e: 7840 ldrb r0, [r0, #1] + 13a0: 2800 cmp r0, #0 + 13a2: d145 bne 0x1430 + 13a4: 4669 mov r1, sp + 13a6: 9800 ldr r0, [sp, #0] + 13a8: 8880 ldrh r0, [r0, #4] + 13aa: 8408 strh r0, [r1, #32] ; 0x20 + 13ac: 9801 ldr r0, [sp, #4] + 13ae: 1c41 add r1, r0, #1 + 13b0: 9101 str r1, [sp, #4] + 13b2: 4669 mov r1, sp + 13b4: 8c09 ldrh r1, [r1, #32] ; 0x20 + 13b6: 0409 lsl r1, r1, #16 + 13b8: 0e09 lsr r1, r1, #24 + 13ba: 0209 lsl r1, r1, #8 + 13bc: 1209 asr r1, r1, #8 + 13be: 7001 strb r1, [r0, #0] + 13c0: 9801 ldr r0, [sp, #4] + 13c2: 1c41 add r1, r0, #1 + 13c4: 9101 str r1, [sp, #4] + 13c6: 4669 mov r1, sp + 13c8: 8c09 ldrh r1, [r1, #32] ; 0x20 + 13ca: 0609 lsl r1, r1, #24 + 13cc: 0e09 lsr r1, r1, #24 + 13ce: 7001 strb r1, [r0, #0] + 13d0: 4668 mov r0, sp + 13d2: 9900 ldr r1, [sp, #0] + 13d4: 88c9 ldrh r1, [r1, #6] + 13d6: 8401 strh r1, [r0, #32] ; 0x20 + 13d8: 9901 ldr r1, [sp, #4] + 13da: 1c48 add r0, r1, #1 + 13dc: 9001 str r0, [sp, #4] + 13de: 4668 mov r0, sp + 13e0: 8c00 ldrh r0, [r0, #32] ; 0x20 + 13e2: 0400 lsl r0, r0, #16 + 13e4: 0e00 lsr r0, r0, #24 + 13e6: 0200 lsl r0, r0, #8 + 13e8: 1200 asr r0, r0, #8 + 13ea: 7008 strb r0, [r1, #0] + 13ec: e77e b 0x12ec + 13ee: 2008 mov r0, #8 + 13f0: 9003 str r0, [sp, #12] ; 0xc + 13f2: e01d b 0x1430 + 13f4: 9800 ldr r0, [sp, #0] + 13f6: 7800 ldrb r0, [r0, #0] + 13f8: 280a cmp r0, #10 ; 0xa + 13fa: d8f8 bhi 0x13ee + 13fc: a101 add r1, pc, #4 + 13fe: 0080 lsl r0, r0, #2 + 1400: 5808 ldr r0, [r1, r0] + 1402: 4687 mov pc, r0 + 1404: 122a asr r2, r5, #8 + 1406: 0000 lsl r0, r0, #0 + 1408: 1264 asr r4, r4, #9 + 140a: 0000 lsl r0, r0, #0 + 140c: 1282 asr r2, r0, #10 + 140e: 0000 lsl r0, r0, #0 + 1410: 128e asr r6, r1, #10 + 1412: 0000 lsl r0, r0, #0 + 1414: 1430 asr r0, r6, #16 + 1416: 0000 lsl r0, r0, #0 + 1418: 129a asr r2, r3, #10 + 141a: 0000 lsl r0, r0, #0 + 141c: 1304 asr r4, r0, #12 + 141e: 0000 lsl r0, r0, #0 + 1420: 1310 asr r0, r2, #12 + 1422: 0000 lsl r0, r0, #0 + 1424: 1430 asr r0, r6, #16 + 1426: 0000 lsl r0, r0, #0 + 1428: 139c asr r4, r3, #14 + 142a: 0000 lsl r0, r0, #0 + 142c: 1430 asr r0, r6, #16 + 142e: 0000 lsl r0, r0, #0 + 1430: 9805 ldr r0, [sp, #20] ; 0x14 + 1432: 4669 mov r1, sp + 1434: 7c09 ldrb r1, [r1, #16] ; 0x10 + 1436: 7001 strb r1, [r0, #0] + 1438: 9803 ldr r0, [sp, #12] ; 0xc + 143a: b009 add sp, #36 ; 0x24 + 143c: 4770 bx lr + 143e: 0000 lsl r0, r0, #0 + 1440: b500 push {lr} + 1442: b083 sub sp, #12 ; 0xc + 1444: 9101 str r1, [sp, #4] + 1446: 4669 mov r1, sp + 1448: 7008 strb r0, [r1, #0] + 144a: 2000 mov r0, #0 + 144c: 9002 str r0, [sp, #8] + 144e: e073 b 0x1538 + 1450: 4668 mov r0, sp + 1452: 7800 ldrb r0, [r0, #0] + 1454: 28aa cmp r0, #170 ; 0xaa + 1456: d106 bne 0x1466 + 1458: 4965 ldr r1, =0x83ff10 ; via 0x15f0 + 145a: 4865 ldr r0, =0x83ff10 ; via 0x15f0 + 145c: 6800 ldr r0, [r0, #0] + 145e: 3001 add r0, #1 + 1460: 07c0 lsl r0, r0, #31 + 1462: 0fc0 lsr r0, r0, #31 + 1464: e013 b 0x148e + 1466: 4862 ldr r0, =0x83ff10 ; via 0x15f0 + 1468: 6800 ldr r0, [r0, #0] + 146a: 2800 cmp r0, #0 + 146c: d06b beq 0x1546 + 146e: 4961 ldr r1, =0x83ff04 ; via 0x15f4 + 1470: 9801 ldr r0, [sp, #4] + 1472: 3001 add r0, #1 + 1474: 6008 str r0, [r1, #0] + 1476: 4960 ldr r1, =0x83ff0e ; via 0x15f8 + 1478: 2000 mov r0, #0 + 147a: 7008 strb r0, [r1, #0] + 147c: 495f ldr r1, =0x83ff0c ; via 0x15fc + 147e: 4668 mov r0, sp + 1480: 7800 ldrb r0, [r0, #0] + 1482: 8008 strh r0, [r1, #0] + 1484: 495a ldr r1, =0x83ff10 ; via 0x15f0 + 1486: 2000 mov r0, #0 + 1488: 6008 str r0, [r1, #0] + 148a: 495d ldr r1, =0x83ff08 ; via 0x1600 + 148c: 2001 mov r0, #1 + 148e: 6008 str r0, [r1, #0] + 1490: e059 b 0x1546 + 1492: 4668 mov r0, sp + 1494: 7800 ldrb r0, [r0, #0] + 1496: 28aa cmp r0, #170 ; 0xaa + 1498: d113 bne 0x14c2 + 149a: 4855 ldr r0, =0x83ff10 ; via 0x15f0 + 149c: 6800 ldr r0, [r0, #0] + 149e: 2800 cmp r0, #0 + 14a0: d00b beq 0x14ba + 14a2: 4954 ldr r1, =0x83ff04 ; via 0x15f4 + 14a4: 6808 ldr r0, [r1, #0] + 14a6: 1c42 add r2, r0, #1 + 14a8: 600a str r2, [r1, #0] + 14aa: 4669 mov r1, sp + 14ac: 7809 ldrb r1, [r1, #0] + 14ae: 7001 strb r1, [r0, #0] + 14b0: 4951 ldr r1, =0x83ff0e ; via 0x15f8 + 14b2: 7808 ldrb r0, [r1, #0] + 14b4: 3001 add r0, #1 + 14b6: 7008 strb r0, [r1, #0] + 14b8: e013 b 0x14e2 + 14ba: 2101 mov r1, #1 + 14bc: 484c ldr r0, =0x83ff10 ; via 0x15f0 + 14be: 6001 str r1, [r0, #0] + 14c0: e01c b 0x14fc + 14c2: 484b ldr r0, =0x83ff10 ; via 0x15f0 + 14c4: 6800 ldr r0, [r0, #0] + 14c6: 2800 cmp r0, #0 + 14c8: d00d beq 0x14e6 + 14ca: 494a ldr r1, =0x83ff04 ; via 0x15f4 + 14cc: 9801 ldr r0, [sp, #4] + 14ce: 3001 add r0, #1 + 14d0: 6008 str r0, [r1, #0] + 14d2: 4849 ldr r0, =0x83ff0e ; via 0x15f8 + 14d4: 2100 mov r1, #0 + 14d6: 7001 strb r1, [r0, #0] + 14d8: 4948 ldr r1, =0x83ff0c ; via 0x15fc + 14da: 4668 mov r0, sp + 14dc: 7800 ldrb r0, [r0, #0] + 14de: 3001 add r0, #1 + 14e0: 8008 strh r0, [r1, #0] + 14e2: 2100 mov r1, #0 + 14e4: e7ea b 0x14bc + 14e6: 4843 ldr r0, =0x83ff04 ; via 0x15f4 + 14e8: 6801 ldr r1, [r0, #0] + 14ea: 1c4a add r2, r1, #1 + 14ec: 6002 str r2, [r0, #0] + 14ee: 4668 mov r0, sp + 14f0: 7800 ldrb r0, [r0, #0] + 14f2: 7008 strb r0, [r1, #0] + 14f4: 4940 ldr r1, =0x83ff0e ; via 0x15f8 + 14f6: 7808 ldrb r0, [r1, #0] + 14f8: 3001 add r0, #1 + 14fa: 7008 strb r0, [r1, #0] + 14fc: 483f ldr r0, =0x83ff0c ; via 0x15fc + 14fe: 8801 ldrh r1, [r0, #0] + 1500: 3901 sub r1, #1 + 1502: 8001 strh r1, [r0, #0] + 1504: 483d ldr r0, =0x83ff0c ; via 0x15fc + 1506: 8800 ldrh r0, [r0, #0] + 1508: 2800 cmp r0, #0 + 150a: d11c bne 0x1546 + 150c: 9901 ldr r1, [sp, #4] + 150e: 483a ldr r0, =0x83ff0e ; via 0x15f8 + 1510: 7800 ldrb r0, [r0, #0] + 1512: 7008 strb r0, [r1, #0] + 1514: 2001 mov r0, #1 + 1516: 9002 str r0, [sp, #8] + 1518: 4839 ldr r0, =0x83ff08 ; via 0x1600 + 151a: 2100 mov r1, #0 + 151c: 6001 str r1, [r0, #0] + 151e: 4834 ldr r0, =0x83ff10 ; via 0x15f0 + 1520: 6001 str r1, [r0, #0] + 1522: 9801 ldr r0, [sp, #4] + 1524: 7800 ldrb r0, [r0, #0] + 1526: 2801 cmp r0, #1 + 1528: d10d bne 0x1546 + 152a: 9801 ldr r0, [sp, #4] + 152c: 7840 ldrb r0, [r0, #1] + 152e: 28dd cmp r0, #221 ; 0xdd + 1530: d109 bne 0x1546 + 1532: f7ff faf7 bl 0xb24 + 1536: e006 b 0x1546 + 1538: 4831 ldr r0, =0x83ff08 ; via 0x1600 + 153a: 6800 ldr r0, [r0, #0] + 153c: 2800 cmp r0, #0 + 153e: d087 beq 0x1450 + 1540: 3801 sub r0, #1 + 1542: 2800 cmp r0, #0 + 1544: d0a5 beq 0x1492 + 1546: 9802 ldr r0, [sp, #8] + 1548: b003 add sp, #12 ; 0xc + 154a: bd00 pop {pc} + 154c: b086 sub sp, #24 ; 0x18 + 154e: 9202 str r2, [sp, #8] + 1550: 9101 str r1, [sp, #4] + 1552: 9000 str r0, [sp, #0] + 1554: 9801 ldr r0, [sp, #4] + 1556: 3001 add r0, #1 + 1558: 9004 str r0, [sp, #16] ; 0x10 + 155a: 9800 ldr r0, [sp, #0] + 155c: 1c41 add r1, r0, #1 + 155e: 9100 str r1, [sp, #0] + 1560: 9005 str r0, [sp, #20] ; 0x14 + 1562: 9901 ldr r1, [sp, #4] + 1564: 20aa mov r0, #170 ; 0xaa + 1566: 7008 strb r0, [r1, #0] + 1568: 9801 ldr r0, [sp, #4] + 156a: 3002 add r0, #2 + 156c: 9001 str r0, [sp, #4] + 156e: 9902 ldr r1, [sp, #8] + 1570: 2000 mov r0, #0 + 1572: 8008 strh r0, [r1, #0] + 1574: 4669 mov r1, sp + 1576: 8188 strh r0, [r1, #12] ; 0xc + 1578: 4668 mov r0, sp + 157a: 8981 ldrh r1, [r0, #12] ; 0xc + 157c: 9805 ldr r0, [sp, #20] ; 0x14 + 157e: 7800 ldrb r0, [r0, #0] + 1580: 4281 cmp r1, r0 + 1582: da23 bge 0x15cc + 1584: 9800 ldr r0, [sp, #0] + 1586: 7800 ldrb r0, [r0, #0] + 1588: 28aa cmp r0, #170 ; 0xaa + 158a: d108 bne 0x159e + 158c: 9801 ldr r0, [sp, #4] + 158e: 1c41 add r1, r0, #1 + 1590: 9101 str r1, [sp, #4] + 1592: 21aa mov r1, #170 ; 0xaa + 1594: 7001 strb r1, [r0, #0] + 1596: 9902 ldr r1, [sp, #8] + 1598: 8808 ldrh r0, [r1, #0] + 159a: 3001 add r0, #1 + 159c: 8008 strh r0, [r1, #0] + 159e: 9800 ldr r0, [sp, #0] + 15a0: 7801 ldrb r1, [r0, #0] + 15a2: 3001 add r0, #1 + 15a4: 9000 str r0, [sp, #0] + 15a6: 9801 ldr r0, [sp, #4] + 15a8: 1c42 add r2, r0, #1 + 15aa: 9201 str r2, [sp, #4] + 15ac: 7001 strb r1, [r0, #0] + 15ae: 9902 ldr r1, [sp, #8] + 15b0: 8808 ldrh r0, [r1, #0] + 15b2: 3001 add r0, #1 + 15b4: 8008 strh r0, [r1, #0] + 15b6: 4669 mov r1, sp + 15b8: 4668 mov r0, sp + 15ba: 8980 ldrh r0, [r0, #12] ; 0xc + 15bc: 3001 add r0, #1 + 15be: 8188 strh r0, [r1, #12] ; 0xc + 15c0: 4668 mov r0, sp + 15c2: 8980 ldrh r0, [r0, #12] ; 0xc + 15c4: 9905 ldr r1, [sp, #20] ; 0x14 + 15c6: 7809 ldrb r1, [r1, #0] + 15c8: 4288 cmp r0, r1 + 15ca: dbdb blt 0x1584 + 15cc: 9904 ldr r1, [sp, #16] ; 0x10 + 15ce: 9802 ldr r0, [sp, #8] + 15d0: 7800 ldrb r0, [r0, #0] + 15d2: 7008 strb r0, [r1, #0] + 15d4: 9902 ldr r1, [sp, #8] + 15d6: 8808 ldrh r0, [r1, #0] + 15d8: 3002 add r0, #2 + 15da: 8008 strh r0, [r1, #0] + 15dc: b006 add sp, #24 ; 0x18 + 15de: 4770 bx lr + 15e0: 4907 ldr r1, =0x83ff08 ; via 0x1600 + 15e2: 2000 mov r0, #0 + 15e4: 6008 str r0, [r1, #0] + 15e6: 4802 ldr r0, =0x83ff10 ; via 0x15f0 + 15e8: 2100 mov r1, #0 + 15ea: 6001 str r1, [r0, #0] + 15ec: 4770 bx lr + 15ee: 46c0 nop (mov r8, r8) + 15f0: ff10 + 15f2: 0083 lsl r3, r0, #2 + 15f4: ff04 + 15f6: 0083 lsl r3, r0, #2 + 15f8: ff0e + 15fa: 0083 lsl r3, r0, #2 + 15fc: ff0c + 15fe: 0083 lsl r3, r0, #2 + 1600: ff08 + 1602: 0083 lsl r3, r0, #2 + 1604: b082 sub sp, #8 + 1606: 9101 str r1, [sp, #4] + 1608: 9000 str r0, [sp, #0] + 160a: 9901 ldr r1, [sp, #4] + 160c: 2000 mov r0, #0 + 160e: 7008 strb r0, [r1, #0] + 1610: 9801 ldr r0, [sp, #4] + 1612: 2100 mov r1, #0 + 1614: 7041 strb r1, [r0, #1] + 1616: 9801 ldr r0, [sp, #4] + 1618: 2102 mov r1, #2 + 161a: 7101 strb r1, [r0, #4] + 161c: 9801 ldr r0, [sp, #4] + 161e: 2106 mov r1, #6 + 1620: 7141 strb r1, [r0, #5] + 1622: 9801 ldr r0, [sp, #4] + 1624: 2102 mov r1, #2 + 1626: 7181 strb r1, [r0, #6] + 1628: b002 add sp, #8 + 162a: 4770 bx lr + 162c: b500 push {lr} + 162e: b084 sub sp, #16 ; 0x10 + 1630: 466b mov r3, sp + 1632: 721a strb r2, [r3, #8] + 1634: 9101 str r1, [sp, #4] + 1636: 9000 str r0, [sp, #0] + 1638: 9901 ldr r1, [sp, #4] + 163a: 2009 mov r0, #9 + 163c: 7008 strb r0, [r1, #0] + 163e: e015 b 0x166c + 1640: 9801 ldr r0, [sp, #4] + 1642: 2100 mov r1, #0 + 1644: 7041 strb r1, [r0, #1] + 1646: 9901 ldr r1, [sp, #4] + 1648: 4668 mov r0, sp + 164a: 8940 ldrh r0, [r0, #10] ; 0xa + 164c: 8088 strh r0, [r1, #4] + 164e: 9901 ldr r1, [sp, #4] + 1650: 4668 mov r0, sp + 1652: 8980 ldrh r0, [r0, #12] ; 0xc + 1654: 80c8 strh r0, [r1, #6] + 1656: e01e b 0x1696 + 1658: 2101 mov r1, #1 + 165a: e004 b 0x1666 + 165c: 2103 mov r1, #3 + 165e: e002 b 0x1666 + 1660: 2105 mov r1, #5 + 1662: e000 b 0x1666 + 1664: 2106 mov r1, #6 + 1666: 9801 ldr r0, [sp, #4] + 1668: 7041 strb r1, [r0, #1] + 166a: e014 b 0x1696 + 166c: 200a mov r0, #10 ; 0xa + 166e: 4468 add r0, sp + 1670: a903 add r1, sp, #12 ; 0xc + 1672: 466a mov r2, sp + 1674: 7a12 ldrb r2, [r2, #8] + 1676: f000 fb71 bl 0x1d5c + 167a: 2800 cmp r0, #0 + 167c: d0e0 beq 0x1640 + 167e: 3801 sub r0, #1 + 1680: 2800 cmp r0, #0 + 1682: d0e9 beq 0x1658 + 1684: 3801 sub r0, #1 + 1686: 2800 cmp r0, #0 + 1688: d0e8 beq 0x165c + 168a: 3801 sub r0, #1 + 168c: 2800 cmp r0, #0 + 168e: d0e7 beq 0x1660 + 1690: 3801 sub r0, #1 + 1692: 2800 cmp r0, #0 + 1694: d0e6 beq 0x1664 + 1696: b004 add sp, #16 ; 0x10 + 1698: bd00 pop {pc} + 169a: b084 sub sp, #16 ; 0x10 + 169c: 9101 str r1, [sp, #4] + 169e: 9000 str r0, [sp, #0] + 16a0: 9901 ldr r1, [sp, #4] + 16a2: 200a mov r0, #10 ; 0xa + 16a4: 7008 strb r0, [r1, #0] + 16a6: 9801 ldr r0, [sp, #4] + 16a8: 2100 mov r1, #0 + 16aa: 7041 strb r1, [r0, #1] + 16ac: 4669 mov r1, sp + 16ae: 9800 ldr r0, [sp, #0] + 16b0: 8880 ldrh r0, [r0, #4] + 16b2: 8108 strh r0, [r1, #8] + 16b4: 9800 ldr r0, [sp, #0] + 16b6: 88c0 ldrh r0, [r0, #6] + 16b8: 8148 strh r0, [r1, #10] ; 0xa + 16ba: 4668 mov r0, sp + 16bc: 8941 ldrh r1, [r0, #10] ; 0xa + 16be: 8900 ldrh r0, [r0, #8] + 16c0: 0400 lsl r0, r0, #16 + 16c2: 1808 add r0, r1, r0 + 16c4: 9003 str r0, [sp, #12] ; 0xc + 16c6: 9803 ldr r0, [sp, #12] ; 0xc + 16c8: b004 add sp, #16 ; 0x10 + 16ca: 4770 bx lr + 16cc: b085 sub sp, #20 ; 0x14 + 16ce: 9303 str r3, [sp, #12] ; 0xc + 16d0: 9202 str r2, [sp, #8] + 16d2: 9101 str r1, [sp, #4] + 16d4: 4669 mov r1, sp + 16d6: 7008 strb r0, [r1, #0] + 16d8: 48ea ldr r0, =0x83ff19 ; via 0x1a84 + 16da: 7809 ldrb r1, [r1, #0] + 16dc: 7802 ldrb r2, [r0, #0] + 16de: 1889 add r1, r1, r2 + 16e0: 7001 strb r1, [r0, #0] + 16e2: 48e9 ldr r0, =0x83ff1a ; via 0x1a88 + 16e4: 7800 ldrb r0, [r0, #0] + 16e6: 2800 cmp r0, #0 + 16e8: d00e beq 0x1708 + 16ea: 48e8 ldr r0, =0x83ff26 ; via 0x1a8c + 16ec: 4669 mov r1, sp + 16ee: 780a ldrb r2, [r1, #0] + 16f0: 8801 ldrh r1, [r0, #0] + 16f2: 1851 add r1, r2, r1 + 16f4: 8001 strh r1, [r0, #0] + 16f6: 9903 ldr r1, [sp, #12] ; 0xc + 16f8: 48e4 ldr r0, =0x83ff26 ; via 0x1a8c + 16fa: 8800 ldrh r0, [r0, #0] + 16fc: 8008 strh r0, [r1, #0] + 16fe: 9801 ldr r0, [sp, #4] + 1700: 2100 mov r1, #0 + 1702: 6001 str r1, [r0, #0] + 1704: 2000 mov r0, #0 + 1706: e009 b 0x171c + 1708: 9902 ldr r1, [sp, #8] + 170a: 6808 ldr r0, [r1, #0] + 170c: 3002 add r0, #2 + 170e: 6008 str r0, [r1, #0] + 1710: 49de ldr r1, =0x83ff26 ; via 0x1a8c + 1712: 4668 mov r0, sp + 1714: 7800 ldrb r0, [r0, #0] + 1716: 0200 lsl r0, r0, #8 + 1718: 8008 strh r0, [r1, #0] + 171a: 2001 mov r0, #1 + 171c: 9004 str r0, [sp, #16] ; 0x10 + 171e: 2001 mov r0, #1 + 1720: 49d9 ldr r1, =0x83ff1a ; via 0x1a88 + 1722: 7809 ldrb r1, [r1, #0] + 1724: 4388 bic r0, r1 + 1726: 49d8 ldr r1, =0x83ff1a ; via 0x1a88 + 1728: 7008 strb r0, [r1, #0] + 172a: 48d9 ldr r0, =0x83ff24 ; via 0x1a90 + 172c: 7801 ldrb r1, [r0, #0] + 172e: 3901 sub r1, #1 + 1730: 7001 strb r1, [r0, #0] + 1732: 48d7 ldr r0, =0x83ff24 ; via 0x1a90 + 1734: 7800 ldrb r0, [r0, #0] + 1736: 2800 cmp r0, #0 + 1738: d102 bne 0x1740 + 173a: 48d6 ldr r0, =0x83ff20 ; via 0x1a94 + 173c: 2106 mov r1, #6 + 173e: 6001 str r1, [r0, #0] + 1740: 9804 ldr r0, [sp, #16] ; 0x10 + 1742: b005 add sp, #20 ; 0x14 + 1744: 46f7 mov pc, lr + 1746: b083 sub sp, #12 ; 0xc + 1748: 9101 str r1, [sp, #4] + 174a: 4669 mov r1, sp + 174c: 7008 strb r0, [r1, #0] + 174e: 2001 mov r0, #1 + 1750: 9002 str r0, [sp, #8] + 1752: 48d1 ldr r0, =0x83ff1b ; via 0x1a98 + 1754: 7800 ldrb r0, [r0, #0] + 1756: 2800 cmp r0, #0 + 1758: d10a bne 0x1770 + 175a: 4668 mov r0, sp + 175c: 7800 ldrb r0, [r0, #0] + 175e: 2853 cmp r0, #83 ; 0x53 + 1760: d102 bne 0x1768 + 1762: 48cd ldr r0, =0x83ff1b ; via 0x1a98 + 1764: 2101 mov r1, #1 + 1766: e01a b 0x179e + 1768: 2101 mov r1, #1 + 176a: 9801 ldr r0, [sp, #4] + 176c: 6001 str r1, [r0, #0] + 176e: e03b b 0x17e8 + 1770: 49c9 ldr r1, =0x83ff1b ; via 0x1a98 + 1772: 2000 mov r0, #0 + 1774: 7008 strb r0, [r1, #0] + 1776: 4668 mov r0, sp + 1778: 7800 ldrb r0, [r0, #0] + 177a: 2830 cmp r0, #48 ; 0x30 + 177c: d111 bne 0x17a2 + 177e: 48c7 ldr r0, =0x83ff18 ; via 0x1a9c + 1780: 7800 ldrb r0, [r0, #0] + 1782: 2800 cmp r0, #0 + 1784: d006 beq 0x1794 + 1786: 9901 ldr r1, [sp, #4] + 1788: 2001 mov r0, #1 + 178a: 6008 str r0, [r1, #0] + 178c: 49c3 ldr r1, =0x83ff18 ; via 0x1a9c + 178e: 2000 mov r0, #0 + 1790: 7008 strb r0, [r1, #0] + 1792: e02a b 0x17ea + 1794: 48bf ldr r0, =0x83ff20 ; via 0x1a94 + 1796: 2102 mov r1, #2 + 1798: 6001 str r1, [r0, #0] + 179a: 48ef ldr r0, =0x83ff1c ; via 0x1b58 + 179c: 2100 mov r1, #0 + 179e: 7001 strb r1, [r0, #0] + 17a0: e024 b 0x17ec + 17a2: 4668 mov r0, sp + 17a4: 7800 ldrb r0, [r0, #0] + 17a6: 2833 cmp r0, #51 ; 0x33 + 17a8: d105 bne 0x17b6 + 17aa: 48bc ldr r0, =0x83ff18 ; via 0x1a9c + 17ac: 7800 ldrb r0, [r0, #0] + 17ae: 2800 cmp r0, #0 + 17b0: d0da beq 0x1768 + 17b2: 2004 mov r0, #4 + 17b4: e00c b 0x17d0 + 17b6: 4668 mov r0, sp + 17b8: 7800 ldrb r0, [r0, #0] + 17ba: 2837 cmp r0, #55 ; 0x37 + 17bc: d10e bne 0x17dc + 17be: 48b7 ldr r0, =0x83ff18 ; via 0x1a9c + 17c0: 7800 ldrb r0, [r0, #0] + 17c2: 2800 cmp r0, #0 + 17c4: d103 bne 0x17ce + 17c6: 9901 ldr r1, [sp, #4] + 17c8: 2001 mov r0, #1 + 17ca: 6008 str r0, [r1, #0] + 17cc: e00c b 0x17e8 + 17ce: 2003 mov r0, #3 + 17d0: 49b0 ldr r1, =0x83ff20 ; via 0x1a94 + 17d2: 6008 str r0, [r1, #0] + 17d4: 2000 mov r0, #0 + 17d6: 49e0 ldr r1, =0x83ff1c ; via 0x1b58 + 17d8: 7008 strb r0, [r1, #0] + 17da: e007 b 0x17ec + 17dc: 9901 ldr r1, [sp, #4] + 17de: 2001 mov r0, #1 + 17e0: 6008 str r0, [r1, #0] + 17e2: 48ae ldr r0, =0x83ff18 ; via 0x1a9c + 17e4: 2100 mov r1, #0 + 17e6: 7001 strb r1, [r0, #0] + 17e8: 2000 mov r0, #0 + 17ea: 9002 str r0, [sp, #8] + 17ec: 9802 ldr r0, [sp, #8] + 17ee: b003 add sp, #12 ; 0xc + 17f0: 46f7 mov pc, lr + 17f2: b083 sub sp, #12 ; 0xc + 17f4: 9101 str r1, [sp, #4] + 17f6: 4669 mov r1, sp + 17f8: 7008 strb r0, [r1, #0] + 17fa: 2001 mov r0, #1 + 17fc: 9002 str r0, [sp, #8] + 17fe: 49d7 ldr r1, =0x830 ; via 0x1b5c + 1800: 48d5 ldr r0, =0x83ff1c ; via 0x1b58 + 1802: 7800 ldrb r0, [r0, #0] + 1804: 0080 lsl r0, r0, #2 + 1806: 5808 ldr r0, [r1, r0] + 1808: 4669 mov r1, sp + 180a: 7809 ldrb r1, [r1, #0] + 180c: 4281 cmp r1, r0 + 180e: d10d bne 0x182c + 1810: 49d1 ldr r1, =0x83ff1c ; via 0x1b58 + 1812: 7808 ldrb r0, [r1, #0] + 1814: 3001 add r0, #1 + 1816: 7008 strb r0, [r1, #0] + 1818: 48cf ldr r0, =0x83ff1c ; via 0x1b58 + 181a: 7800 ldrb r0, [r0, #0] + 181c: 2807 cmp r0, #7 + 181e: d10d bne 0x183c + 1820: 489c ldr r0, =0x83ff20 ; via 0x1a94 + 1822: 2101 mov r1, #1 + 1824: 6001 str r1, [r0, #0] + 1826: 489d ldr r0, =0x83ff18 ; via 0x1a9c + 1828: 7001 strb r1, [r0, #0] + 182a: e007 b 0x183c + 182c: 9801 ldr r0, [sp, #4] + 182e: 2101 mov r1, #1 + 1830: 6001 str r1, [r0, #0] + 1832: 4998 ldr r1, =0x83ff20 ; via 0x1a94 + 1834: 2001 mov r0, #1 + 1836: 6008 str r0, [r1, #0] + 1838: 2000 mov r0, #0 + 183a: 9002 str r0, [sp, #8] + 183c: 9802 ldr r0, [sp, #8] + 183e: b003 add sp, #12 ; 0xc + 1840: 46f7 mov pc, lr + 1842: b083 sub sp, #12 ; 0xc + 1844: 9101 str r1, [sp, #4] + 1846: 4669 mov r1, sp + 1848: 7008 strb r0, [r1, #0] + 184a: 2001 mov r0, #1 + 184c: 9002 str r0, [sp, #8] + 184e: 49c4 ldr r1, =0x84c ; via 0x1b60 + 1850: 48c1 ldr r0, =0x83ff1c ; via 0x1b58 + 1852: 7800 ldrb r0, [r0, #0] + 1854: 0080 lsl r0, r0, #2 + 1856: 5808 ldr r0, [r1, r0] + 1858: 4669 mov r1, sp + 185a: 7809 ldrb r1, [r1, #0] + 185c: 4281 cmp r1, r0 + 185e: d112 bne 0x1886 + 1860: 49bd ldr r1, =0x83ff1c ; via 0x1b58 + 1862: 7808 ldrb r0, [r1, #0] + 1864: 3001 add r0, #1 + 1866: 7008 strb r0, [r1, #0] + 1868: 48bb ldr r0, =0x83ff1c ; via 0x1b58 + 186a: 7800 ldrb r0, [r0, #0] + 186c: 2806 cmp r0, #6 + 186e: d114 bne 0x189a + 1870: 9801 ldr r0, [sp, #4] + 1872: 2102 mov r1, #2 + 1874: 6001 str r1, [r0, #0] + 1876: 4887 ldr r0, =0x83ff20 ; via 0x1a94 + 1878: 2101 mov r1, #1 + 187a: 6001 str r1, [r0, #0] + 187c: 4887 ldr r0, =0x83ff18 ; via 0x1a9c + 187e: 2100 mov r1, #0 + 1880: 7001 strb r1, [r0, #0] + 1882: 2000 mov r0, #0 + 1884: e008 b 0x1898 + 1886: 9801 ldr r0, [sp, #4] + 1888: 2101 mov r1, #1 + 188a: 6001 str r1, [r0, #0] + 188c: 4981 ldr r1, =0x83ff20 ; via 0x1a94 + 188e: 2001 mov r0, #1 + 1890: 6008 str r0, [r1, #0] + 1892: 4982 ldr r1, =0x83ff18 ; via 0x1a9c + 1894: 2000 mov r0, #0 + 1896: 7008 strb r0, [r1, #0] + 1898: 9002 str r0, [sp, #8] + 189a: 9802 ldr r0, [sp, #8] + 189c: b003 add sp, #12 ; 0xc + 189e: 46f7 mov pc, lr + 18a0: b081 sub sp, #4 + 18a2: 4669 mov r1, sp + 18a4: 7008 strb r0, [r1, #0] + 18a6: 497a ldr r1, =0x83ff24 ; via 0x1a90 + 18a8: 4668 mov r0, sp + 18aa: 7800 ldrb r0, [r0, #0] + 18ac: 3801 sub r0, #1 + 18ae: 7008 strb r0, [r1, #0] + 18b0: 4874 ldr r0, =0x83ff19 ; via 0x1a84 + 18b2: 4669 mov r1, sp + 18b4: 7809 ldrb r1, [r1, #0] + 18b6: 7001 strb r1, [r0, #0] + 18b8: 48a7 ldr r0, =0x83ff1c ; via 0x1b58 + 18ba: 2100 mov r1, #0 + 18bc: 7001 strb r1, [r0, #0] + 18be: 48e3 ldr r0, =0x83ff14 ; via 0x1c4c + 18c0: 6001 str r1, [r0, #0] + 18c2: 4874 ldr r0, =0x83ff20 ; via 0x1a94 + 18c4: 2105 mov r1, #5 + 18c6: 6001 str r1, [r0, #0] + 18c8: b001 add sp, #4 + 18ca: 46f7 mov pc, lr + 18cc: b084 sub sp, #16 ; 0x10 + 18ce: 9202 str r2, [sp, #8] + 18d0: 9101 str r1, [sp, #4] + 18d2: 4669 mov r1, sp + 18d4: 7008 strb r0, [r1, #0] + 18d6: 2001 mov r0, #1 + 18d8: 9003 str r0, [sp, #12] ; 0xc + 18da: 496d ldr r1, =0x83ff24 ; via 0x1a90 + 18dc: 7808 ldrb r0, [r1, #0] + 18de: 3801 sub r0, #1 + 18e0: 7008 strb r0, [r1, #0] + 18e2: 486b ldr r0, =0x83ff24 ; via 0x1a90 + 18e4: 7800 ldrb r0, [r0, #0] + 18e6: 2800 cmp r0, #0 + 18e8: d026 beq 0x1938 + 18ea: 4866 ldr r0, =0x83ff19 ; via 0x1a84 + 18ec: 4669 mov r1, sp + 18ee: 780a ldrb r2, [r1, #0] + 18f0: 7801 ldrb r1, [r0, #0] + 18f2: 1851 add r1, r2, r1 + 18f4: 7001 strb r1, [r0, #0] + 18f6: 4998 ldr r1, =0x83ff1c ; via 0x1b58 + 18f8: 7808 ldrb r0, [r1, #0] + 18fa: 3001 add r0, #1 + 18fc: 7008 strb r0, [r1, #0] + 18fe: 49d3 ldr r1, =0x83ff14 ; via 0x1c4c + 1900: 2204 mov r2, #4 + 1902: 4895 ldr r0, =0x83ff1c ; via 0x1b58 + 1904: 7800 ldrb r0, [r0, #0] + 1906: 1a10 sub r0, r2, r0 + 1908: 00c2 lsl r2, r0, #3 + 190a: 4668 mov r0, sp + 190c: 7800 ldrb r0, [r0, #0] + 190e: 4090 lsl r0, r2 + 1910: 680a ldr r2, [r1, #0] + 1912: 1880 add r0, r0, r2 + 1914: 6008 str r0, [r1, #0] + 1916: 4890 ldr r0, =0x83ff1c ; via 0x1b58 + 1918: 7800 ldrb r0, [r0, #0] + 191a: 2804 cmp r0, #4 + 191c: d117 bne 0x194e + 191e: 9902 ldr r1, [sp, #8] + 1920: 48ca ldr r0, =0x83ff14 ; via 0x1c4c + 1922: 6800 ldr r0, [r0, #0] + 1924: 3802 sub r0, #2 + 1926: 6008 str r0, [r1, #0] + 1928: 485a ldr r0, =0x83ff20 ; via 0x1a94 + 192a: 2100 mov r1, #0 + 192c: 6001 str r1, [r0, #0] + 192e: 4856 ldr r0, =0x83ff1a ; via 0x1a88 + 1930: 7001 strb r1, [r0, #0] + 1932: 4889 ldr r0, =0x83ff1c ; via 0x1b58 + 1934: 7001 strb r1, [r0, #0] + 1936: e00a b 0x194e + 1938: 9801 ldr r0, [sp, #4] + 193a: 2101 mov r1, #1 + 193c: 6001 str r1, [r0, #0] + 193e: 4955 ldr r1, =0x83ff20 ; via 0x1a94 + 1940: 2001 mov r0, #1 + 1942: 6008 str r0, [r1, #0] + 1944: 4855 ldr r0, =0x83ff18 ; via 0x1a9c + 1946: 2100 mov r1, #0 + 1948: 7001 strb r1, [r0, #0] + 194a: 2000 mov r0, #0 + 194c: 9003 str r0, [sp, #12] ; 0xc + 194e: 9803 ldr r0, [sp, #12] ; 0xc + 1950: b004 add sp, #16 ; 0x10 + 1952: 46f7 mov pc, lr + 1954: b083 sub sp, #12 ; 0xc + 1956: 9101 str r1, [sp, #4] + 1958: 4669 mov r1, sp + 195a: 7008 strb r0, [r1, #0] + 195c: 2001 mov r0, #1 + 195e: 9002 str r0, [sp, #8] + 1960: 494c ldr r1, =0x83ff20 ; via 0x1a94 + 1962: 6008 str r0, [r1, #0] + 1964: 20ff mov r0, #255 ; 0xff + 1966: 4669 mov r1, sp + 1968: 7809 ldrb r1, [r1, #0] + 196a: 4388 bic r0, r1 + 196c: 4945 ldr r1, =0x83ff19 ; via 0x1a84 + 196e: 7809 ldrb r1, [r1, #0] + 1970: 4281 cmp r1, r0 + 1972: d007 beq 0x1984 + 1974: 9801 ldr r0, [sp, #4] + 1976: 2101 mov r1, #1 + 1978: 6001 str r1, [r0, #0] + 197a: 4848 ldr r0, =0x83ff18 ; via 0x1a9c + 197c: 2100 mov r1, #0 + 197e: 7001 strb r1, [r0, #0] + 1980: 2000 mov r0, #0 + 1982: 9002 str r0, [sp, #8] + 1984: 9802 ldr r0, [sp, #8] + 1986: b003 add sp, #12 ; 0xc + 1988: 46f7 mov pc, lr + 198a: b085 sub sp, #20 ; 0x14 + 198c: 466b mov r3, sp + 198e: 719a strb r2, [r3, #6] + 1990: 466a mov r2, sp + 1992: 8091 strh r1, [r2, #4] + 1994: 9000 str r0, [sp, #0] + 1996: 9800 ldr r0, [sp, #0] + 1998: 9002 str r0, [sp, #8] + 199a: 4669 mov r1, sp + 199c: 4668 mov r0, sp + 199e: 8880 ldrh r0, [r0, #4] + 19a0: 8208 strh r0, [r1, #16] ; 0x10 + 19a2: 4668 mov r0, sp + 19a4: 8a00 ldrh r0, [r0, #16] ; 0x10 + 19a6: 2800 cmp r0, #0 + 19a8: d01e beq 0x19e8 + 19aa: 49e3 ldr r1, =0x864 ; via 0x1d38 + 19ac: 4668 mov r0, sp + 19ae: 7980 ldrb r0, [r0, #6] + 19b0: 0080 lsl r0, r0, #2 + 19b2: 5808 ldr r0, [r1, r0] + 19b4: 7941 ldrb r1, [r0, #5] + 19b6: 4668 mov r0, sp + 19b8: 7301 strb r1, [r0, #12] ; 0xc + 19ba: 7b00 ldrb r0, [r0, #12] ; 0xc + 19bc: 0980 lsr r0, r0, #6 + 19be: d3f4 bcc 0x19aa + 19c0: 49dd ldr r1, =0x864 ; via 0x1d38 + 19c2: 4668 mov r0, sp + 19c4: 7980 ldrb r0, [r0, #6] + 19c6: 0080 lsl r0, r0, #2 + 19c8: 5809 ldr r1, [r1, r0] + 19ca: 9802 ldr r0, [sp, #8] + 19cc: 7800 ldrb r0, [r0, #0] + 19ce: 7008 strb r0, [r1, #0] + 19d0: 9802 ldr r0, [sp, #8] + 19d2: 3001 add r0, #1 + 19d4: 9002 str r0, [sp, #8] + 19d6: 4669 mov r1, sp + 19d8: 4668 mov r0, sp + 19da: 8a00 ldrh r0, [r0, #16] ; 0x10 + 19dc: 3801 sub r0, #1 + 19de: 8208 strh r0, [r1, #16] ; 0x10 + 19e0: 4668 mov r0, sp + 19e2: 8a00 ldrh r0, [r0, #16] ; 0x10 + 19e4: 2800 cmp r0, #0 + 19e6: d1e0 bne 0x19aa + 19e8: b005 add sp, #20 ; 0x14 + 19ea: 46f7 mov pc, lr + 19ec: b082 sub sp, #8 + 19ee: 4669 mov r1, sp + 19f0: 7008 strb r0, [r1, #0] + 19f2: 2000 mov r0, #0 + 19f4: 8088 strh r0, [r1, #4] + 19f6: 4668 mov r0, sp + 19f8: 8881 ldrh r1, [r0, #4] + 19fa: 20ff mov r0, #255 ; 0xff + 19fc: 30f5 add r0, #245 ; 0xf5 + 19fe: 4281 cmp r1, r0 + 1a00: da21 bge 0x1a46 + 1a02: 4669 mov r1, sp + 1a04: 4668 mov r0, sp + 1a06: 8880 ldrh r0, [r0, #4] + 1a08: 3001 add r0, #1 + 1a0a: 8088 strh r0, [r1, #4] + 1a0c: 48ca ldr r0, =0x864 ; via 0x1d38 + 1a0e: 7809 ldrb r1, [r1, #0] + 1a10: 0089 lsl r1, r1, #2 + 1a12: 5840 ldr r0, [r0, r1] + 1a14: 7940 ldrb r0, [r0, #5] + 1a16: 4669 mov r1, sp + 1a18: 7048 strb r0, [r1, #1] + 1a1a: 4668 mov r0, sp + 1a1c: 7840 ldrb r0, [r0, #1] + 1a1e: 0840 lsr r0, r0, #1 + 1a20: d30b bcc 0x1a3a + 1a22: 49c5 ldr r1, =0x864 ; via 0x1d38 + 1a24: 4668 mov r0, sp + 1a26: 7800 ldrb r0, [r0, #0] + 1a28: 0080 lsl r0, r0, #2 + 1a2a: 5808 ldr r0, [r1, r0] + 1a2c: 7800 ldrb r0, [r0, #0] + 1a2e: 0600 lsl r0, r0, #24 + 1a30: 0e00 lsr r0, r0, #24 + 1a32: 4669 mov r1, sp + 1a34: 7088 strb r0, [r1, #2] + 1a36: 2000 mov r0, #0 + 1a38: 8088 strh r0, [r1, #4] + 1a3a: 4668 mov r0, sp + 1a3c: 8881 ldrh r1, [r0, #4] + 1a3e: 20ff mov r0, #255 ; 0xff + 1a40: 30f5 add r0, #245 ; 0xf5 + 1a42: 4281 cmp r1, r0 + 1a44: dbdd blt 0x1a02 + 1a46: b002 add sp, #8 + 1a48: 4770 bx lr + 1a4a: b500 push {lr} + 1a4c: b08c sub sp, #48 ; 0x30 + 1a4e: 466a mov r2, sp + 1a50: 7111 strb r1, [r2, #4] + 1a52: 9000 str r0, [sp, #0] + 1a54: 2001 mov r0, #1 + 1a56: 9002 str r0, [sp, #8] + 1a58: 9800 ldr r0, [sp, #0] + 1a5a: a904 add r1, sp, #16 ; 0x10 + 1a5c: aa03 add r2, sp, #12 ; 0xc + 1a5e: f7ff fd75 bl 0x154c + 1a62: 4668 mov r0, sp + 1a64: 8980 ldrh r0, [r0, #12] ; 0xc + 1a66: 2820 cmp r0, #32 ; 0x20 + 1a68: dd02 ble 0x1a70 + 1a6a: 2000 mov r0, #0 + 1a6c: 9002 str r0, [sp, #8] + 1a6e: e006 b 0x1a7e + 1a70: a804 add r0, sp, #16 ; 0x10 + 1a72: 4669 mov r1, sp + 1a74: 8989 ldrh r1, [r1, #12] ; 0xc + 1a76: 466a mov r2, sp + 1a78: 7912 ldrb r2, [r2, #4] + 1a7a: f7ff ff86 bl 0x198a + 1a7e: 9802 ldr r0, [sp, #8] + 1a80: b00c add sp, #48 ; 0x30 + 1a82: bd00 pop {pc} + 1a84: ff19 + 1a86: 0083 lsl r3, r0, #2 + 1a88: ff1a + 1a8a: 0083 lsl r3, r0, #2 + 1a8c: ff26 + 1a8e: 0083 lsl r3, r0, #2 + 1a90: ff24 + 1a92: 0083 lsl r3, r0, #2 + 1a94: ff20 + 1a96: 0083 lsl r3, r0, #2 + 1a98: ff1b + 1a9a: 0083 lsl r3, r0, #2 + 1a9c: ff18 + 1a9e: 0083 lsl r3, r0, #2 + 1aa0: b500 push {lr} + 1aa2: b084 sub sp, #16 ; 0x10 + 1aa4: 9101 str r1, [sp, #4] + 1aa6: 9000 str r0, [sp, #0] + 1aa8: 4669 mov r1, sp + 1aaa: 20ff mov r0, #255 ; 0xff + 1aac: 7308 strb r0, [r1, #12] ; 0xc + 1aae: 2000 mov r0, #0 + 1ab0: 9002 str r0, [sp, #8] + 1ab2: 4669 mov r1, sp + 1ab4: 48a1 ldr r0, =0xffff5805 ; via 0x1d3c + 1ab6: 7800 ldrb r0, [r0, #0] + 1ab8: 7348 strb r0, [r1, #13] ; 0xd + 1aba: 48a1 ldr r0, =0xffff5005 ; via 0x1d40 + 1abc: 7800 ldrb r0, [r0, #0] + 1abe: 7388 strb r0, [r1, #14] ; 0xe + 1ac0: 4668 mov r0, sp + 1ac2: 7b40 ldrb r0, [r0, #13] ; 0xd + 1ac4: 0840 lsr r0, r0, #1 + 1ac6: d206 bcs 0x1ad6 + 1ac8: 4668 mov r0, sp + 1aca: 7b80 ldrb r0, [r0, #14] ; 0xe + 1acc: 0840 lsr r0, r0, #1 + 1ace: d202 bcs 0x1ad6 + 1ad0: 9801 ldr r0, [sp, #4] + 1ad2: 2800 cmp r0, #0 + 1ad4: d0ed beq 0x1ab2 + 1ad6: 4668 mov r0, sp + 1ad8: 7b40 ldrb r0, [r0, #13] ; 0xd + 1ada: 0840 lsr r0, r0, #1 + 1adc: d316 bcc 0x1b0c + 1ade: 4669 mov r1, sp + 1ae0: 2000 mov r0, #0 + 1ae2: 7308 strb r0, [r1, #12] ; 0xc + 1ae4: 4994 ldr r1, =0x864 ; via 0x1d38 + 1ae6: 4668 mov r0, sp + 1ae8: 7b00 ldrb r0, [r0, #12] ; 0xc + 1aea: 0080 lsl r0, r0, #2 + 1aec: 5808 ldr r0, [r1, r0] + 1aee: 7800 ldrb r0, [r0, #0] + 1af0: 0600 lsl r0, r0, #24 + 1af2: 0e00 lsr r0, r0, #24 + 1af4: 4669 mov r1, sp + 1af6: 73c8 strb r0, [r1, #15] ; 0xf + 1af8: 4668 mov r0, sp + 1afa: 7bc0 ldrb r0, [r0, #15] ; 0xf + 1afc: 9900 ldr r1, [sp, #0] + 1afe: f7ff fc9f bl 0x1440 + 1b02: 9002 str r0, [sp, #8] + 1b04: 9802 ldr r0, [sp, #8] + 1b06: 2800 cmp r0, #0 + 1b08: d11c bne 0x1b44 + 1b0a: e018 b 0x1b3e + 1b0c: 4668 mov r0, sp + 1b0e: 7b80 ldrb r0, [r0, #14] ; 0xe + 1b10: 0840 lsr r0, r0, #1 + 1b12: d317 bcc 0x1b44 + 1b14: 4669 mov r1, sp + 1b16: 2001 mov r0, #1 + 1b18: 7308 strb r0, [r1, #12] ; 0xc + 1b1a: 4987 ldr r1, =0x864 ; via 0x1d38 + 1b1c: 4668 mov r0, sp + 1b1e: 7b00 ldrb r0, [r0, #12] ; 0xc + 1b20: 0080 lsl r0, r0, #2 + 1b22: 5808 ldr r0, [r1, r0] + 1b24: 7800 ldrb r0, [r0, #0] + 1b26: 0600 lsl r0, r0, #24 + 1b28: 0e01 lsr r1, r0, #24 + 1b2a: 4668 mov r0, sp + 1b2c: 73c1 strb r1, [r0, #15] ; 0xf + 1b2e: 7bc0 ldrb r0, [r0, #15] ; 0xf + 1b30: 9900 ldr r1, [sp, #0] + 1b32: f7ff fc85 bl 0x1440 + 1b36: 9002 str r0, [sp, #8] + 1b38: 9802 ldr r0, [sp, #8] + 1b3a: 2800 cmp r0, #0 + 1b3c: d102 bne 0x1b44 + 1b3e: 20ff mov r0, #255 ; 0xff + 1b40: 4669 mov r1, sp + 1b42: 7308 strb r0, [r1, #12] ; 0xc + 1b44: 9802 ldr r0, [sp, #8] + 1b46: 2800 cmp r0, #0 + 1b48: d102 bne 0x1b50 + 1b4a: 9801 ldr r0, [sp, #4] + 1b4c: 2800 cmp r0, #0 + 1b4e: d0b0 beq 0x1ab2 + 1b50: 4668 mov r0, sp + 1b52: 7b00 ldrb r0, [r0, #12] ; 0xc + 1b54: b004 add sp, #16 ; 0x10 + 1b56: bd00 pop {pc} + 1b58: ff1c + 1b5a: 0083 lsl r3, r0, #2 + 1b5c: 0830 lsr r0, r6, #32 + 1b5e: 0000 lsl r0, r0, #0 + 1b60: 084c lsr r4, r1, #1 + 1b62: 0000 lsl r0, r0, #0 + 1b64: b500 push {lr} + 1b66: b086 sub sp, #24 ; 0x18 + 1b68: 466b mov r3, sp + 1b6a: 721a strb r2, [r3, #8] + 1b6c: 9101 str r1, [sp, #4] + 1b6e: 9000 str r0, [sp, #0] + 1b70: 2001 mov r0, #1 + 1b72: 9004 str r0, [sp, #16] ; 0x10 + 1b74: 9804 ldr r0, [sp, #16] ; 0x10 + 1b76: 2800 cmp r0, #0 + 1b78: d05b beq 0x1c32 + 1b7a: 496f ldr r1, =0x864 ; via 0x1d38 + 1b7c: 4668 mov r0, sp + 1b7e: 7a00 ldrb r0, [r0, #8] + 1b80: 0080 lsl r0, r0, #2 + 1b82: 5808 ldr r0, [r1, r0] + 1b84: 7941 ldrb r1, [r0, #5] + 1b86: 4668 mov r0, sp + 1b88: 7301 strb r1, [r0, #12] ; 0xc + 1b8a: 7b00 ldrb r0, [r0, #12] ; 0xc + 1b8c: 0840 lsr r0, r0, #1 + 1b8e: d3f4 bcc 0x1b7a + 1b90: 4969 ldr r1, =0x864 ; via 0x1d38 + 1b92: 4668 mov r0, sp + 1b94: 7a00 ldrb r0, [r0, #8] + 1b96: 0080 lsl r0, r0, #2 + 1b98: 5808 ldr r0, [r1, r0] + 1b9a: 7800 ldrb r0, [r0, #0] + 1b9c: 0600 lsl r0, r0, #24 + 1b9e: 0e01 lsr r1, r0, #24 + 1ba0: 4668 mov r0, sp + 1ba2: 7341 strb r1, [r0, #13] ; 0xd + 1ba4: e02c b 0x1c00 + 1ba6: 4668 mov r0, sp + 1ba8: 7b40 ldrb r0, [r0, #13] ; 0xd + 1baa: a905 add r1, sp, #20 ; 0x14 + 1bac: 9a00 ldr r2, [sp, #0] + 1bae: 9b01 ldr r3, [sp, #4] + 1bb0: f7ff fd8c bl 0x16cc + 1bb4: 9004 str r0, [sp, #16] ; 0x10 + 1bb6: e039 b 0x1c2c + 1bb8: 4668 mov r0, sp + 1bba: 7b40 ldrb r0, [r0, #13] ; 0xd + 1bbc: a905 add r1, sp, #20 ; 0x14 + 1bbe: f7ff fdc2 bl 0x1746 + 1bc2: e7f7 b 0x1bb4 + 1bc4: 4668 mov r0, sp + 1bc6: 7b40 ldrb r0, [r0, #13] ; 0xd + 1bc8: a905 add r1, sp, #20 ; 0x14 + 1bca: f7ff fe12 bl 0x17f2 + 1bce: e7f1 b 0x1bb4 + 1bd0: 4668 mov r0, sp + 1bd2: 7b40 ldrb r0, [r0, #13] ; 0xd + 1bd4: a905 add r1, sp, #20 ; 0x14 + 1bd6: f7ff fe34 bl 0x1842 + 1bda: e7eb b 0x1bb4 + 1bdc: 4668 mov r0, sp + 1bde: 7b40 ldrb r0, [r0, #13] ; 0xd + 1be0: f7ff fe5e bl 0x18a0 + 1be4: e022 b 0x1c2c + 1be6: 4668 mov r0, sp + 1be8: 7b40 ldrb r0, [r0, #13] ; 0xd + 1bea: a905 add r1, sp, #20 ; 0x14 + 1bec: 9a00 ldr r2, [sp, #0] + 1bee: f7ff fe6d bl 0x18cc + 1bf2: e7df b 0x1bb4 + 1bf4: 4668 mov r0, sp + 1bf6: 7b40 ldrb r0, [r0, #13] ; 0xd + 1bf8: a905 add r1, sp, #20 ; 0x14 + 1bfa: f7ff feab bl 0x1954 + 1bfe: e7d9 b 0x1bb4 + 1c00: 4850 ldr r0, =0x83ff20 ; via 0x1d44 + 1c02: 6800 ldr r0, [r0, #0] + 1c04: 2800 cmp r0, #0 + 1c06: d0ce beq 0x1ba6 + 1c08: 3801 sub r0, #1 + 1c0a: 2800 cmp r0, #0 + 1c0c: d0d4 beq 0x1bb8 + 1c0e: 3801 sub r0, #1 + 1c10: 2800 cmp r0, #0 + 1c12: d0d7 beq 0x1bc4 + 1c14: 3801 sub r0, #1 + 1c16: 2800 cmp r0, #0 + 1c18: d0da beq 0x1bd0 + 1c1a: 3801 sub r0, #1 + 1c1c: 2800 cmp r0, #0 + 1c1e: d0dd beq 0x1bdc + 1c20: 3801 sub r0, #1 + 1c22: 2800 cmp r0, #0 + 1c24: d0df beq 0x1be6 + 1c26: 3801 sub r0, #1 + 1c28: 2800 cmp r0, #0 + 1c2a: d0e3 beq 0x1bf4 + 1c2c: 9804 ldr r0, [sp, #16] ; 0x10 + 1c2e: 2800 cmp r0, #0 + 1c30: d1a3 bne 0x1b7a + 1c32: 9805 ldr r0, [sp, #20] ; 0x14 + 1c34: b006 add sp, #24 ; 0x18 + 1c36: bd00 pop {pc} + 1c38: 4942 ldr r1, =0x83ff20 ; via 0x1d44 + 1c3a: 2001 mov r0, #1 + 1c3c: 6008 str r0, [r1, #0] + 1c3e: 4842 ldr r0, =0x83ff1b ; via 0x1d48 + 1c40: 2100 mov r1, #0 + 1c42: 7001 strb r1, [r0, #0] + 1c44: 4841 ldr r0, =0x83ff18 ; via 0x1d4c + 1c46: 7001 strb r1, [r0, #0] + 1c48: 4770 bx lr + 1c4a: 46c0 nop (mov r8, r8) + 1c4c: ff14 + 1c4e: 0083 lsl r3, r0, #2 + 1c50: b081 sub sp, #4 + 1c52: 483f ldr r0, =0xffff5800 ; via 0x1d50 + 1c54: 9000 str r0, [sp, #0] + 1c56: 493f ldr r1, =0xffff6000 ; via 0x1d54 + 1c58: 2002 mov r0, #2 + 1c5a: 880a ldrh r2, [r1, #0] + 1c5c: 4310 orr r0, r2 + 1c5e: 8008 strh r0, [r1, #0] + 1c60: 483c ldr r0, =0xffff6000 ; via 0x1d54 + 1c62: 8801 ldrh r1, [r0, #0] + 1c64: 0849 lsr r1, r1, #1 + 1c66: 0049 lsl r1, r1, #1 + 1c68: 8001 strh r1, [r0, #0] + 1c6a: 493a ldr r1, =0xffff6000 ; via 0x1d54 + 1c6c: 8808 ldrh r0, [r1, #0] + 1c6e: 2202 mov r2, #2 + 1c70: 4390 bic r0, r2 + 1c72: 8008 strh r0, [r1, #0] + 1c74: 9900 ldr r1, [sp, #0] + 1c76: 2007 mov r0, #7 + 1c78: 7208 strb r0, [r1, #8] + 1c7a: 9900 ldr r1, [sp, #0] + 1c7c: 20bf mov r0, #191 ; 0xbf + 1c7e: 70c8 strb r0, [r1, #3] + 1c80: 9800 ldr r0, [sp, #0] + 1c82: 1c81 add r1, r0, #2 + 1c84: 2010 mov r0, #16 ; 0x10 + 1c86: 880a ldrh r2, [r1, #0] + 1c88: 4310 orr r0, r2 + 1c8a: 8008 strh r0, [r1, #0] + 1c8c: 9800 ldr r0, [sp, #0] + 1c8e: 2180 mov r1, #128 ; 0x80 + 1c90: 70c1 strb r1, [r0, #3] + 1c92: 9800 ldr r0, [sp, #0] + 1c94: 2107 mov r1, #7 + 1c96: 7081 strb r1, [r0, #2] + 1c98: 9800 ldr r0, [sp, #0] + 1c9a: 21bf mov r1, #191 ; 0xbf + 1c9c: 70c1 strb r1, [r0, #3] + 1c9e: 9800 ldr r0, [sp, #0] + 1ca0: 2107 mov r1, #7 + 1ca2: 7001 strb r1, [r0, #0] + 1ca4: 9800 ldr r0, [sp, #0] + 1ca6: 2100 mov r1, #0 + 1ca8: 7041 strb r1, [r0, #1] + 1caa: 9800 ldr r0, [sp, #0] + 1cac: 2103 mov r1, #3 + 1cae: 70c1 strb r1, [r0, #3] + 1cb0: 9800 ldr r0, [sp, #0] + 1cb2: 2100 mov r1, #0 + 1cb4: 7201 strb r1, [r0, #8] + 1cb6: 4828 ldr r0, =0xffff5000 ; via 0x1d58 + 1cb8: 9000 str r0, [sp, #0] + 1cba: 9800 ldr r0, [sp, #0] + 1cbc: 2107 mov r1, #7 + 1cbe: 7201 strb r1, [r0, #8] + 1cc0: 9900 ldr r1, [sp, #0] + 1cc2: 20bf mov r0, #191 ; 0xbf + 1cc4: 70c8 strb r0, [r1, #3] + 1cc6: 9800 ldr r0, [sp, #0] + 1cc8: 1c80 add r0, r0, #2 + 1cca: 2110 mov r1, #16 ; 0x10 + 1ccc: 8802 ldrh r2, [r0, #0] + 1cce: 4311 orr r1, r2 + 1cd0: 8001 strh r1, [r0, #0] + 1cd2: 9800 ldr r0, [sp, #0] + 1cd4: 2180 mov r1, #128 ; 0x80 + 1cd6: 70c1 strb r1, [r0, #3] + 1cd8: 9800 ldr r0, [sp, #0] + 1cda: 2107 mov r1, #7 + 1cdc: 7081 strb r1, [r0, #2] + 1cde: 9800 ldr r0, [sp, #0] + 1ce0: 21bf mov r1, #191 ; 0xbf + 1ce2: 70c1 strb r1, [r0, #3] + 1ce4: 9800 ldr r0, [sp, #0] + 1ce6: 2107 mov r1, #7 + 1ce8: 7001 strb r1, [r0, #0] + 1cea: 9800 ldr r0, [sp, #0] + 1cec: 2100 mov r1, #0 + 1cee: 7041 strb r1, [r0, #1] + 1cf0: 9900 ldr r1, [sp, #0] + 1cf2: 2003 mov r0, #3 + 1cf4: 70c8 strb r0, [r1, #3] + 1cf6: 9800 ldr r0, [sp, #0] + 1cf8: 2100 mov r1, #0 + 1cfa: 7201 strb r1, [r0, #8] + 1cfc: b001 add sp, #4 + 1cfe: 4770 bx lr + 1d00: b081 sub sp, #4 + 1d02: 4669 mov r1, sp + 1d04: 7008 strb r0, [r1, #0] + 1d06: 490c ldr r1, =0x864 ; via 0x1d38 + 1d08: 4668 mov r0, sp + 1d0a: 7800 ldrb r0, [r0, #0] + 1d0c: 0080 lsl r0, r0, #2 + 1d0e: 5808 ldr r0, [r1, r0] + 1d10: 7941 ldrb r1, [r0, #5] + 1d12: 4668 mov r0, sp + 1d14: 7041 strb r1, [r0, #1] + 1d16: 7840 ldrb r0, [r0, #1] + 1d18: 09c0 lsr r0, r0, #7 + 1d1a: d20b bcs 0x1d34 + 1d1c: 4806 ldr r0, =0x864 ; via 0x1d38 + 1d1e: 4669 mov r1, sp + 1d20: 7809 ldrb r1, [r1, #0] + 1d22: 0089 lsl r1, r1, #2 + 1d24: 5840 ldr r0, [r0, r1] + 1d26: 7940 ldrb r0, [r0, #5] + 1d28: 4669 mov r1, sp + 1d2a: 7048 strb r0, [r1, #1] + 1d2c: 4668 mov r0, sp + 1d2e: 7840 ldrb r0, [r0, #1] + 1d30: 09c0 lsr r0, r0, #7 + 1d32: d3f3 bcc 0x1d1c + 1d34: b001 add sp, #4 + 1d36: 4770 bx lr + 1d38: 0864 lsr r4, r4, #1 + 1d3a: 0000 lsl r0, r0, #0 + 1d3c: 5805 ldr r5, [r0, r0] + 1d3e: ffff + 1d40: 5005 str r5, [r0, r0] + 1d42: ffff + 1d44: ff20 + 1d46: 0083 lsl r3, r0, #2 + 1d48: ff1b + 1d4a: 0083 lsl r3, r0, #2 + 1d4c: ff18 + 1d4e: 0083 lsl r3, r0, #2 + 1d50: 5800 ldr r0, [r0, r0] + 1d52: ffff + 1d54: 6000 str r0, [r0, #0] + 1d56: ffff + 1d58: 5000 str r0, [r0, r0] + 1d5a: ffff + 1d5c: b500 push {lr} + 1d5e: b087 sub sp, #28 ; 0x1c + 1d60: 466b mov r3, sp + 1d62: 721a strb r2, [r3, #8] + 1d64: 9101 str r1, [sp, #4] + 1d66: 9000 str r0, [sp, #0] + 1d68: 9900 ldr r1, [sp, #0] + 1d6a: 2000 mov r0, #0 + 1d6c: 8008 strh r0, [r1, #0] + 1d6e: 9801 ldr r0, [sp, #4] + 1d70: 2100 mov r1, #0 + 1d72: 8001 strh r1, [r0, #0] + 1d74: 2000 mov r0, #0 + 1d76: 9003 str r0, [sp, #12] ; 0xc + 1d78: f7ff ff5e bl 0x1c38 + 1d7c: a805 add r0, sp, #20 ; 0x14 + 1d7e: a906 add r1, sp, #24 ; 0x18 + 1d80: 466a mov r2, sp + 1d82: 7a12 ldrb r2, [r2, #8] + 1d84: f7ff feee bl 0x1b64 + 1d88: 9004 str r0, [sp, #16] ; 0x10 + 1d8a: 9804 ldr r0, [sp, #16] ; 0x10 + 1d8c: 2800 cmp r0, #0 + 1d8e: d11f bne 0x1dd0 + 1d90: 9803 ldr r0, [sp, #12] ; 0xc + 1d92: 2800 cmp r0, #0 + 1d94: d11c bne 0x1dd0 + 1d96: 9800 ldr r0, [sp, #0] + 1d98: 4669 mov r1, sp + 1d9a: 8b0a ldrh r2, [r1, #24] ; 0x18 + 1d9c: 8801 ldrh r1, [r0, #0] + 1d9e: 1851 add r1, r2, r1 + 1da0: 8001 strh r1, [r0, #0] + 1da2: 9905 ldr r1, [sp, #20] ; 0x14 + 1da4: 4668 mov r0, sp + 1da6: 8b00 ldrh r0, [r0, #24] ; 0x18 + 1da8: 8008 strh r0, [r1, #0] + 1daa: 9801 ldr r0, [sp, #4] + 1dac: 9905 ldr r1, [sp, #20] ; 0x14 + 1dae: 8809 ldrh r1, [r1, #0] + 1db0: 8802 ldrh r2, [r0, #0] + 1db2: 1889 add r1, r1, r2 + 1db4: 8001 strh r1, [r0, #0] + 1db6: a805 add r0, sp, #20 ; 0x14 + 1db8: a906 add r1, sp, #24 ; 0x18 + 1dba: 466a mov r2, sp + 1dbc: 7a12 ldrb r2, [r2, #8] + 1dbe: f7ff fed1 bl 0x1b64 + 1dc2: 9004 str r0, [sp, #16] ; 0x10 + 1dc4: 9804 ldr r0, [sp, #16] ; 0x10 + 1dc6: 2800 cmp r0, #0 + 1dc8: d102 bne 0x1dd0 + 1dca: 9803 ldr r0, [sp, #12] ; 0xc + 1dcc: 2800 cmp r0, #0 + 1dce: d0e2 beq 0x1d96 + 1dd0: 9804 ldr r0, [sp, #16] ; 0x10 + 1dd2: 2801 cmp r0, #1 + 1dd4: d101 bne 0x1dda + 1dd6: 2004 mov r0, #4 + 1dd8: 9003 str r0, [sp, #12] ; 0xc + 1dda: 9803 ldr r0, [sp, #12] ; 0xc + 1ddc: b007 add sp, #28 ; 0x1c + 1dde: bd00 pop {pc} + 1de0: b089 sub sp, #36 ; 0x24 + 1de2: 201a mov r0, #26 ; 0x1a + 1de4: 9005 str r0, [sp, #20] ; 0x14 + 1de6: 2018 mov r0, #24 ; 0x18 + 1de8: 9006 str r0, [sp, #24] ; 0x18 + 1dea: 2000 mov r0, #0 + 1dec: 9008 str r0, [sp, #32] ; 0x20 + 1dee: 4669 mov r1, sp + 1df0: 9805 ldr r0, [sp, #20] ; 0x14 + 1df2: 8800 ldrh r0, [r0, #0] + 1df4: 8008 strh r0, [r1, #0] + 1df6: 9806 ldr r0, [sp, #24] ; 0x18 + 1df8: 8800 ldrh r0, [r0, #0] + 1dfa: 8048 strh r0, [r1, #2] + 1dfc: 4668 mov r0, sp + 1dfe: 8841 ldrh r1, [r0, #2] + 1e00: 8800 ldrh r0, [r0, #0] + 1e02: 0400 lsl r0, r0, #16 + 1e04: 1808 add r0, r1, r0 + 1e06: 9001 str r0, [sp, #4] + 1e08: 9801 ldr r0, [sp, #4] + 1e0a: 0200 lsl r0, r0, #8 + 1e0c: 0a00 lsr r0, r0, #8 + 1e0e: 0080 lsl r0, r0, #2 + 1e10: 3008 add r0, #8 + 1e12: 9007 str r0, [sp, #28] ; 0x1c + 1e14: 9807 ldr r0, [sp, #28] ; 0x1c + 1e16: 3018 add r0, #24 ; 0x18 + 1e18: 9002 str r0, [sp, #8] + 1e1a: 9802 ldr r0, [sp, #8] + 1e1c: 9004 str r0, [sp, #16] ; 0x10 + 1e1e: 9802 ldr r0, [sp, #8] + 1e20: 3002 add r0, #2 + 1e22: 9003 str r0, [sp, #12] ; 0xc + 1e24: 9803 ldr r0, [sp, #12] ; 0xc + 1e26: 8801 ldrh r1, [r0, #0] + 1e28: 4806 ldr r0, =0xffff ; via 0x1e44 + 1e2a: 4281 cmp r1, r0 + 1e2c: d104 bne 0x1e38 + 1e2e: 9804 ldr r0, [sp, #16] ; 0x10 + 1e30: 8800 ldrh r0, [r0, #0] + 1e32: 4904 ldr r1, =0xffff ; via 0x1e44 + 1e34: 4288 cmp r0, r1 + 1e36: d001 beq 0x1e3c + 1e38: 2001 mov r0, #1 + 1e3a: 9008 str r0, [sp, #32] ; 0x20 + 1e3c: 9808 ldr r0, [sp, #32] ; 0x20 + 1e3e: b009 add sp, #36 ; 0x24 + 1e40: 4770 bx lr + 1e42: 46c0 nop (mov r8, r8) + + 1e44: 0000ffff + + 1e48: e92d4000 stmdb sp!, {lr} + 1e4c: e28fe001 add lr, pc, #1 + 1e50: e12fff1e bx lr + 1e54: f7fe fe3d bl 0xad2 + 1e58: 4778 bx pc + 1e5a: 46c0 nop (mov r8, r8) + 1e5c: e8bd8000 ldmia sp!, {pc} + +<1E60-1EFF: all FFs> + + 1f00: 00000001 + +<1F04-end: all FFs> diff -r e5e5ed527cc1 -r 81cda18b0487 compal/boot/c140-boot.bin Binary file compal/boot/c140-boot.bin has changed diff -r e5e5ed527cc1 -r 81cda18b0487 compal/boot/c156-boot.90.05.bin Binary file compal/boot/c156-boot.90.05.bin has changed diff -r e5e5ed527cc1 -r 81cda18b0487 compal/boot/c156-boot.disasm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/compal/boot/c156-boot.disasm Sat Jan 14 06:17:56 2023 +0000 @@ -0,0 +1,543 @@ +RESET entry and exception vectors: + 0: ea000011 b 0x4c + 4: ea008036 b 0x200e4 + 8: ea008036 b 0x200e8 + c: ea008036 b 0x200ec + 10: ea008036 b 0x200f0 + 14: ea008036 b 0x200f4 + 18: ea008036 b 0x200f8 + 1c: ea008036 b 0x200fc + + 20: 02a102a1 + 24: 02a302a1 + 28: 00000040 + 2c: fffffd00 + 30: ffff9800 + 34: fffffb10 + 38: ffffff08 + 3c: 20021081 + 40: 00000800 + 44: 004000c0 + 48: 00000e85 + +; RESET entry point +; same init as in the C139 version + 4c: e51f1028 ldr r1, =0xfffffd00 ; via 0x2c + 50: e1d120b2 ldrh r2, [r1, #2] + 54: e51f0034 ldr r0, =0x40 ; via 0x28 + 58: e1800002 orr r0, r0, r2 + 5c: e1c100b2 strh r0, [r1, #2] +; disable PLL +; diff from C139 version: writing 2002 into FFFF:9800 instead of 2006 +; diff in the BYPASS_DIV field + 60: e51f1038 ldr r1, =0xffff9800 ; via 0x30 + 64: e15f22be ldrh r2, =0x2002 ; via 0x3e + 68: e1c120b0 strh r2, [r1] + 6c: e5912000 ldr r2, [r1] + 70: e2022001 and r2, r2, #1 + 74: e3520001 cmp r2, #1 + 78: 0afffffb beq 0x6c +; FFFF:FD00 write same as C139 + 7c: e51f1058 ldr r1, =0xfffffd00 ; via 0x2c + 80: e15f24bc ldrh r2, =0x1081 ; via 0x3c + 84: e1c120b0 strh r2, [r1] +; disable DU like C139 + 88: e51f105c ldr r1, =0xfffffb10 ; via 0x34 + 8c: e15f25b4 ldrh r2, =0x800 ; via 0x40 + 90: e1d100b0 ldrh r0, [r1] + 94: e1800002 orr r0, r0, r2 + 98: e1c100b0 strh r0, [r1] +; ditto for MPU + 9c: e51f106c ldr r1, =0xffffff08 ; via 0x38 + a0: e15f26b6 ldrh r2, =0x0 ; via 0x42 + a4: e1c120b0 strh r2, [r1] +; Memory timings + a8: e59f1640 ldr r1, =0xfffffb00 ; via 0x6f0 + ac: e15f29b4 ldrh r2, =0x2a1 ; via 0x20 + b0: e1c120b0 strh r2, [r1] + b4: e15f29ba ldrh r2, =0x2a1 ; via 0x22 + b8: e1c120b2 strh r2, [r1, #2] + bc: e15f2ab0 ldrh r2, =0x2a1 ; via 0x24 + c0: e1c120b4 strh r2, [r1, #4] + c4: e15f2ab6 ldrh r2, =0x2a3 ; via 0x26 + c8: e1c120b6 strh r2, [r1, #6] + cc: e15f28bc ldrh r2, =0xe85 ; via 0x48 + d0: e1c120ba strh r2, [r1, #10] ; 0xa + d4: e15f29b8 ldrh r2, =0xc0 ; via 0x44 + d8: e1c120bc strh r2, [r1, #12] ; 0xc + dc: e15f29be ldrh r2, =0x40 ; via 0x46 + e0: e1c120b8 strh r2, [r1, #8] +; enable 8 MiB chip select regions + e4: e59f3630 ldr r3, =0xfffef006 ; via 0x71c + e8: e1d310b0 ldrh r1, [r3] + ec: e3a02008 mov r2, #8 + f0: e1811002 orr r1, r1, r2 + f4: e1c310b0 strh r1, [r3] +; write 0x0110 into FFFE:F00A +; enable I/O(8) and I/O(12) + f8: e59f3604 ldr r3, =0xfffef000 ; via 0x704 + fc: e3a01e11 mov r1, #272 ; 0x110 + 100: e1c310ba strh r1, [r3, #10] ; 0xa +; FFFE:4804: set GPIOs 8 and 12 as outputs + 104: e59f3604 ldr r3, =0xfffe4804 ; via 0x710 + 108: e5931000 ldr r1, [r3] + 10c: e3a030ff mov r3, #255 ; 0xff + 110: e3a02cee mov r2, #60928 ; 0xee00 + 114: e1822003 orr r2, r2, r3 + 118: e0011002 and r1, r1, r2 + 11c: e59f35e4 ldr r3, =0xfffe4800 ; via 0x708 + 120: e1c310b4 strh r1, [r3, #4] +; ARMIO_LATCH_OUT: GPIO 8 set to 0 + 124: e59f35e0 ldr r3, =0xfffe4802 ; via 0x70c + 128: e5931000 ldr r1, [r3] + 12c: e3a030ff mov r3, #255 ; 0xff + 130: e3a02cfe mov r2, #65024 ; 0xfe00 + 134: e1822003 orr r2, r2, r3 + 138: e0011002 and r1, r1, r2 + 13c: e59f35c4 ldr r3, =0xfffe4800 ; via 0x708 + 140: e1c310b2 strh r1, [r3, #2] +; ... and then reset it to 0xF400 + 144: e3a01b3d mov r1, #62464 ; 0xf400 + 148: e59f35b8 ldr r3, =0xfffe4800 ; via 0x708 + 14c: e1c310b2 strh r1, [r3, #2] +; SVC mode, IRQ and FIQ disabled + 150: e10f0000 mrs r0, CPSR + 154: e3c0001f bic r0, r0, #31 ; 0x1f + 158: e3800013 orr r0, r0, #19 ; 0x13 + 15c: e38000c0 orr r0, r0, #192 ; 0xc0 + 160: e129f000 msr CPSR_fc, r0 +; zero all 256 KiB IRAM except last 128 bytes + 164: e3a00502 mov r0, #8388608 ; 0x800000 + 168: e3a02000 mov r2, #0 + 16c: e3a01721 mov r1, #8650752 ; 0x840000 + 170: e2411080 sub r1, r1, #128 ; 0x80 + 174: e4802004 str r2, [r0], #4 + 178: e1500001 cmp r0, r1 + 17c: 1afffffc bne 0x174 +; ditto for 2 MiB XRAM + 180: e3a00401 mov r0, #16777216 ; 0x1000000 + 184: e3a02000 mov r2, #0 + 188: e3a01612 mov r1, #18874368 ; 0x1200000 + 18c: e2411080 sub r1, r1, #128 ; 0x80 + 190: e4802004 str r2, [r0], #4 + 194: e1500001 cmp r0, r1 + 198: 1afffffc bne 0x190 +; MODEM UART + 19c: e59f0550 ldr r0, =0xffff5800 ; via 0x6f4 +; 0 into LCR for IER access + 1a0: e3a01000 mov r1, #0 + 1a4: e5c01003 strb r1, [r0, #3] +; clear IER + 1a8: e3a01000 mov r1, #0 + 1ac: e5c01001 strb r1, [r0, #1] +; BF into LCR + 1b0: e3a010bf mov r1, #191 ; 0xbf + 1b4: e5c01003 strb r1, [r0, #3] +; 0x10 into EFR + 1b8: e3a01010 mov r1, #16 ; 0x10 + 1bc: e5c01002 strb r1, [r0, #2] +; set 115200 baud + 1c0: e59f3534 ldr r3, =0xffff5803 ; via 0x6fc + 1c4: e5931000 ldr r1, [r3] + 1c8: e3811080 orr r1, r1, #128 ; 0x80 + 1cc: e5c31000 strb r1, [r3] + 1d0: e3a01007 mov r1, #7 + 1d4: e5c01000 strb r1, [r0] + 1d8: e3a01000 mov r1, #0 + 1dc: e5c01001 strb r1, [r0, #1] +; LCR will eventually get back to 03 + 1e0: e59f3514 ldr r3, =0xffff5803 ; via 0x6fc + 1e4: e5931000 ldr r1, [r3] + 1e8: e201107f and r1, r1, #127 ; 0x7f + 1ec: e5c31000 strb r1, [r3] + 1f0: e5931000 ldr r1, [r3] + 1f4: e3811003 orr r1, r1, #3 + 1f8: e5c31000 strb r1, [r3] +; 0x40 into MCR: TCR/TLR access + 1fc: e3a01040 mov r1, #64 ; 0x40 + 200: e5c01004 strb r1, [r0, #4] +; TCR=0x0F (same as default) + 204: e3a0100f mov r1, #15 ; 0xf + 208: e5c01006 strb r1, [r0, #6] +; BF into LCR again + 20c: e3a010bf mov r1, #191 ; 0xbf + 210: e5c01003 strb r1, [r0, #3] +; 0x10 into EFR again + 214: e3a01010 mov r1, #16 ; 0x10 + 218: e5c01002 strb r1, [r0, #2] +; finally 03 into LCR + 21c: e3a01003 mov r1, #3 + 220: e5c01003 strb r1, [r0, #3] +; clear SCR (default, all weird stuff disabled) + 224: e3a01000 mov r1, #0 + 228: e5c01010 strb r1, [r0, #16] ; 0x10 +; FCR=06: FIFOs cleared and *disabled* + 22c: e3a01006 mov r1, #6 + 230: e5c01002 strb r1, [r0, #2] +; MCR=0F + 234: e3a0100f mov r1, #15 ; 0xf + 238: e5c01004 strb r1, [r0, #4] +; FCR=F1: enable FIFOs with max trigger levels + 23c: e3a010f1 mov r1, #241 ; 0xf1 + 240: e5c01002 strb r1, [r0, #2] +; MDR1: write 7 for reset, then 0 for UART mode + 244: e3a01007 mov r1, #7 + 248: e5c01008 strb r1, [r0, #8] + 24c: e3a01000 mov r1, #0 + 250: e5c01008 strb r1, [r0, #8] +; IER: enable Rx interrupt + 254: e59f349c ldr r3, =0xffff5801 ; via 0x6f8 + 258: e5931000 ldr r1, [r3] + 25c: e3811001 orr r1, r1, #1 + 260: e5c31000 strb r1, [r3] +; nCS0: WS=3, write enable, DC=1 + 264: e59f1484 ldr r1, =0xfffffb00 ; via 0x6f0 + 268: e59f247c ldr r2, =0x2a3 ; via 0x6ec + 26c: e1c120b0 strh r2, [r1] +; FFFF:FB0E = 0x6A: adapt enabled for RHEA and API, +; all ARM7 cycles visible externally + 270: e59f3488 ldr r3, =0xfffffb00 ; via 0x700 + 274: e3a0106a mov r1, #106 ; 0x6a + 278: e1c310be strh r1, [r3, #14] ; 0xe +; dingle UART FIFOs again, same settings + 27c: e59f0470 ldr r0, =0xffff5800 ; via 0x6f4 + 280: e3a010f7 mov r1, #247 ; 0xf7 + 284: e5c01002 strb r1, [r0, #2] + 288: e3a010f1 mov r1, #241 ; 0xf1 + 28c: e5c01002 strb r1, [r0, #2] +; short delay loop + 290: e3a01f4b mov r1, #300 ; 0x12c + 294: e2411001 sub r1, r1, #1 + 298: e3510000 cmp r1, #0 + 29c: 1afffffc bne 0x294 +; check UART for unsolicited input? + 2a0: e59f044c ldr r0, =0xffff5800 ; via 0x6f4 + 2a4: e3a02064 mov r2, #100 ; 0x64 + 2a8: e3a08801 mov r8, #65536 ; 0x10000 + 2ac: e2488001 sub r8, r8, #1 + 2b0: e3580000 cmp r8, #0 + 2b4: 0a000040 beq 0x3bc + 2b8: e5d01005 ldrb r1, [r0, #5] + 2bc: e2011001 and r1, r1, #1 + 2c0: e3510001 cmp r1, #1 + 2c4: 1afffff8 bne 0x2ac + 2c8: e5d01000 ldrb r1, [r0] +; unsolicited input received +; repeats the whole UART init, but with /2 div for 406250 baud + 2cc: e59f0420 ldr r0, =0xffff5800 ; via 0x6f4 + 2d0: e3a01000 mov r1, #0 + 2d4: e5c01003 strb r1, [r0, #3] + 2d8: e3a01000 mov r1, #0 + 2dc: e5c01001 strb r1, [r0, #1] + 2e0: e3a010bf mov r1, #191 ; 0xbf + 2e4: e5c01003 strb r1, [r0, #3] + 2e8: e3a01010 mov r1, #16 ; 0x10 + 2ec: e5c01002 strb r1, [r0, #2] + 2f0: e59f3404 ldr r3, =0xffff5803 ; via 0x6fc + 2f4: e5931000 ldr r1, [r3] + 2f8: e3811080 orr r1, r1, #128 ; 0x80 + 2fc: e5c31000 strb r1, [r3] + 300: e3a01002 mov r1, #2 + 304: e5c01000 strb r1, [r0] + 308: e3a01000 mov r1, #0 + 30c: e5c01001 strb r1, [r0, #1] + 310: e59f33e4 ldr r3, =0xffff5803 ; via 0x6fc + 314: e5931000 ldr r1, [r3] + 318: e201107f and r1, r1, #127 ; 0x7f + 31c: e5c31000 strb r1, [r3] + 320: e5931000 ldr r1, [r3] + 324: e3811003 orr r1, r1, #3 + 328: e5c31000 strb r1, [r3] + 32c: e3a01040 mov r1, #64 ; 0x40 + 330: e5c01004 strb r1, [r0, #4] + 334: e3a0100f mov r1, #15 ; 0xf + 338: e5c01006 strb r1, [r0, #6] + 33c: e3a010bf mov r1, #191 ; 0xbf + 340: e5c01003 strb r1, [r0, #3] + 344: e3a01010 mov r1, #16 ; 0x10 + 348: e5c01002 strb r1, [r0, #2] + 34c: e3a01003 mov r1, #3 + 350: e5c01003 strb r1, [r0, #3] + 354: e3a01000 mov r1, #0 + 358: e5c01010 strb r1, [r0, #16] ; 0x10 + 35c: e3a01006 mov r1, #6 + 360: e5c01002 strb r1, [r0, #2] + 364: e3a0100f mov r1, #15 ; 0xf + 368: e5c01004 strb r1, [r0, #4] + 36c: e3a010f1 mov r1, #241 ; 0xf1 + 370: e5c01002 strb r1, [r0, #2] + 374: e3a01007 mov r1, #7 + 378: e5c01008 strb r1, [r0, #8] + 37c: e3a01000 mov r1, #0 + 380: e5c01008 strb r1, [r0, #8] + 384: e59f336c ldr r3, =0xffff5801 ; via 0x6f8 + 388: e5931000 ldr r1, [r3] + 38c: e3811001 orr r1, r1, #1 + 390: e5c31000 strb r1, [r3] + 394: e59f0358 ldr r0, =0xffff5800 ; via 0x6f4 + 398: e3a010f7 mov r1, #247 ; 0xf7 + 39c: e5c01002 strb r1, [r0, #2] + 3a0: e3a010f1 mov r1, #241 ; 0xf1 + 3a4: e5c01002 strb r1, [r0, #2] + 3a8: e3a01f4b mov r1, #300 ; 0x12c + 3ac: e2411001 sub r1, r1, #1 + 3b0: e3510000 cmp r1, #0 + 3b4: 1afffffc bne 0x3ac + 3b8: e59f0334 ldr r0, =0xffff5800 ; via 0x6f4 +; normal path continues +; emit 1B F6 02 00 41 01 40 + 3bc: e3a0101b mov r1, #27 ; 0x1b + 3c0: e5c01000 strb r1, [r0] + 3c4: e3a010f6 mov r1, #246 ; 0xf6 + 3c8: e5c01000 strb r1, [r0] + 3cc: e3a01002 mov r1, #2 + 3d0: e5c01000 strb r1, [r0] + 3d4: e3a01000 mov r1, #0 + 3d8: e5c01000 strb r1, [r0] + 3dc: e3a01041 mov r1, #65 ; 0x41 + 3e0: e5c01000 strb r1, [r0] + 3e4: e3a01001 mov r1, #1 + 3e8: e5c01000 strb r1, [r0] + 3ec: e3a01040 mov r1, #64 ; 0x40 + 3f0: e5c01000 strb r1, [r0] +; wait for UART input + 3f4: e3a02064 mov r2, #100 ; 0x64 + 3f8: e3a08701 mov r8, #262144 ; 0x40000 + 3fc: e2488001 sub r8, r8, #1 + 400: e3580000 cmp r8, #0 + 404: 0a0000aa beq 0x6b4 + 408: e5d01005 ldrb r1, [r0, #5] + 40c: e2011001 and r1, r1, #1 + 410: e3510001 cmp r1, #1 + 414: 1afffff8 bne 0x3fc + 418: e5d01000 ldrb r1, [r0] + 41c: e3510000 cmp r1, #0 + 420: 1a000003 bne 0x434 + 424: e2422001 sub r2, r2, #1 + 428: e3520000 cmp r2, #0 + 42c: 0a0000a0 beq 0x6b4 + 430: eafffff1 b 0x3fc + 434: e351001b cmp r1, #27 ; 0x1b + 438: 1affffef bne 0x3fc +; got 1B + 43c: e3a08701 mov r8, #262144 ; 0x40000 + 440: e2488001 sub r8, r8, #1 + 444: e3580000 cmp r8, #0 + 448: 0a000099 beq 0x6b4 + 44c: e5d01005 ldrb r1, [r0, #5] + 450: e2011001 and r1, r1, #1 + 454: e3510001 cmp r1, #1 + 458: 1afffff8 bne 0x440 + 45c: e5d01000 ldrb r1, [r0] + 460: e35100f6 cmp r1, #246 ; 0xf6 + 464: 1a000092 bne 0x6b4 +; got F6 + 468: e3a08801 mov r8, #65536 ; 0x10000 + 46c: e2488001 sub r8, r8, #1 + 470: e3580000 cmp r8, #0 + 474: 0a00008e beq 0x6b4 + 478: e5d01005 ldrb r1, [r0, #5] + 47c: e2011001 and r1, r1, #1 + 480: e3510001 cmp r1, #1 + 484: 1afffff8 bne 0x46c + 488: e5d01000 ldrb r1, [r0] + 48c: e3510002 cmp r1, #2 + 490: 1a000087 bne 0x6b4 +; got 02 + 494: e3a08801 mov r8, #65536 ; 0x10000 + 498: e2488001 sub r8, r8, #1 + 49c: e3580000 cmp r8, #0 + 4a0: 0a000083 beq 0x6b4 + 4a4: e5d01005 ldrb r1, [r0, #5] + 4a8: e2011001 and r1, r1, #1 + 4ac: e3510001 cmp r1, #1 + 4b0: 1afffff8 bne 0x498 + 4b4: e5d01000 ldrb r1, [r0] + 4b8: e3510000 cmp r1, #0 + 4bc: 1a00007c bne 0x6b4 +; got 00 + 4c0: e3a08801 mov r8, #65536 ; 0x10000 + 4c4: e2488001 sub r8, r8, #1 + 4c8: e3580000 cmp r8, #0 + 4cc: 0a000078 beq 0x6b4 + 4d0: e5d01005 ldrb r1, [r0, #5] + 4d4: e2011001 and r1, r1, #1 + 4d8: e3510001 cmp r1, #1 + 4dc: 1afffff8 bne 0x4c4 + 4e0: e5d01000 ldrb r1, [r0] + 4e4: e3510052 cmp r1, #82 ; 0x52 + 4e8: 1a000071 bne 0x6b4 +; got 52 + 4ec: e3a08801 mov r8, #65536 ; 0x10000 + 4f0: e2488001 sub r8, r8, #1 + 4f4: e3580000 cmp r8, #0 + 4f8: 0a00006d beq 0x6b4 + 4fc: e5d01005 ldrb r1, [r0, #5] + 500: e2011001 and r1, r1, #1 + 504: e3510001 cmp r1, #1 + 508: 1afffff8 bne 0x4f0 + 50c: e5d01000 ldrb r1, [r0] + 510: e3510001 cmp r1, #1 + 514: 1a000066 bne 0x6b4 +; got 01 + 518: e3a08801 mov r8, #65536 ; 0x10000 + 51c: e2488001 sub r8, r8, #1 + 520: e3580000 cmp r8, #0 + 524: 0a000062 beq 0x6b4 + 528: e5d01005 ldrb r1, [r0, #5] + 52c: e2011001 and r1, r1, #1 + 530: e3510001 cmp r1, #1 + 534: 1afffff8 bne 0x51c + 538: e59f01b4 ldr r0, =0xffff5800 ; via 0x6f4 + 53c: e5d01000 ldrb r1, [r0] +; emit 1B F6 02 00 41 02 43 before checking the last Rx char! + 540: e3a0201b mov r2, #27 ; 0x1b + 544: e5c02000 strb r2, [r0] + 548: e3a020f6 mov r2, #246 ; 0xf6 + 54c: e5c02000 strb r2, [r0] + 550: e3a02002 mov r2, #2 + 554: e5c02000 strb r2, [r0] + 558: e3a02000 mov r2, #0 + 55c: e5c02000 strb r2, [r0] + 560: e3a02041 mov r2, #65 ; 0x41 + 564: e5c02000 strb r2, [r0] + 568: e3a02002 mov r2, #2 + 56c: e5c02000 strb r2, [r0] + 570: e3a02043 mov r2, #67 ; 0x43 + 574: e5c02000 strb r2, [r0] +; now check for 53 +; if not 53, go back to wait for 01-53 + 578: e3510053 cmp r1, #83 ; 0x53 + 57c: 0a000000 beq 0x584 + 580: eaffffda b 0x4f0 +; got 53 + 584: e3a02000 mov r2, #0 + 588: e59f3190 ldr r3, =0x800100 ; via 0x720 + 58c: e3a04000 mov r4, #0 + 590: e3a05001 mov r5, #1 +; endless wait for Rx byte + 594: e5d01005 ldrb r1, [r0, #5] + 598: e2011001 and r1, r1, #1 + 59c: e3510001 cmp r1, #1 + 5a0: 1afffffb bne 0x594 + 5a4: e5d01000 ldrb r1, [r0] +; state machine dispatch + 5a8: e3520000 cmp r2, #0 + 5ac: 0a000008 beq 0x5d4 + 5b0: e3520001 cmp r2, #1 + 5b4: 0a00000b beq 0x5e8 + 5b8: e3520002 cmp r2, #2 + 5bc: 0a00000d beq 0x5f8 + 5c0: e3520003 cmp r2, #3 + 5c4: 0a00000f beq 0x608 + 5c8: e3520004 cmp r2, #4 + 5cc: 0a000015 beq 0x628 + 5d0: ea000037 b 0x6b4 +; R2=0: must receive 02 first + 5d4: e3510002 cmp r1, #2 + 5d8: 1affffed bne 0x594 + 5dc: e1a06001 mov r6, r1 + 5e0: e2822001 add r2, r2, #1 + 5e4: eaffffea b 0x594 +; R2=1: got MSB of length + 5e8: e1a04401 mov r4, r1, lsl #8 + 5ec: e0266001 eor r6, r6, r1 + 5f0: e2822001 add r2, r2, #1 + 5f4: eaffffe6 b 0x594 +; R2=2: got LSB of length + 5f8: e0844001 add r4, r4, r1 + 5fc: e0266001 eor r6, r6, r1 + 600: e2822001 add r2, r2, #1 + 604: eaffffe2 b 0x594 +; R2=3: payload + 608: e5c31000 strb r1, [r3] + 60c: e0266001 eor r6, r6, r1 + 610: e2833001 add r3, r3, #1 + 614: e2444001 sub r4, r4, #1 + 618: e3540000 cmp r4, #0 + 61c: 1affffdc bne 0x594 + 620: e2822001 add r2, r2, #1 + 624: eaffffda b 0x594 +; R2=4: checksum expected + 628: e1560001 cmp r6, r1 + 62c: 1a000012 bne 0x67c +; checksum good +; emit 1B F6 02 00 41 03 42 + 630: e3a0101b mov r1, #27 ; 0x1b + 634: e5c01000 strb r1, [r0] + 638: e3a010f6 mov r1, #246 ; 0xf6 + 63c: e5c01000 strb r1, [r0] + 640: e3a01002 mov r1, #2 + 644: e5c01000 strb r1, [r0] + 648: e3a01000 mov r1, #0 + 64c: e5c01000 strb r1, [r0] + 650: e3a01041 mov r1, #65 ; 0x41 + 654: e5c01000 strb r1, [r0] + 658: e3a01003 mov r1, #3 + 65c: e5c01000 strb r1, [r0] + 660: e3a01042 mov r1, #66 ; 0x42 + 664: e5c01000 strb r1, [r0] +; SP=0x803FFC + 668: e59f00b4 ldr r0, =0x803ffc ; via 0x724 + 66c: e1a0d000 mov sp, r0 +; jump to 0x800100 in Thumb state + 670: e59f00a8 ldr r0, =0x800100 ; via 0x720 + 674: e280e001 add lr, r0, #1 + 678: e12fff1e bx lr +; checksum mismatch +; emit 1B F6 02 00 45 53 16 + 67c: e3a0101b mov r1, #27 ; 0x1b + 680: e5c01000 strb r1, [r0] + 684: e3a010f6 mov r1, #246 ; 0xf6 + 688: e5c01000 strb r1, [r0] + 68c: e3a01002 mov r1, #2 + 690: e5c01000 strb r1, [r0] + 694: e3a01000 mov r1, #0 + 698: e5c01000 strb r1, [r0] + 69c: e3a01045 mov r1, #69 ; 0x45 + 6a0: e5c01000 strb r1, [r0] + 6a4: e3a01053 mov r1, #83 ; 0x53 + 6a8: e5c01000 strb r1, [r0] + 6ac: e3a01016 mov r1, #22 ; 0x16 + 6b0: e5c01000 strb r1, [r0] +; bail out path +; ARMIO_LATCH_OUT: set GPIO 9 low + 6b4: e59f3050 ldr r3, =0xfffe4802 ; via 0x70c + 6b8: e5931000 ldr r1, [r3] + 6bc: e3a030ff mov r3, #255 ; 0xff + 6c0: e3a02cfd mov r2, #64768 ; 0xfd00 + 6c4: e1822003 orr r2, r2, r3 + 6c8: e0011002 and r1, r1, r2 + 6cc: e59f3034 ldr r3, =0xfffe4800 ; via 0x708 + 6d0: e1c310b2 strh r1, [r3, #2] +; switch GPIO12 back to input + 6d4: e59f3034 ldr r3, =0xfffe4804 ; via 0x710 + 6d8: e5931000 ldr r1, [r3] + 6dc: e3811a01 orr r1, r1, #4096 ; 0x1000 + 6e0: e59f3020 ldr r3, =0xfffe4800 ; via 0x708 + 6e4: e1c310b4 strh r1, [r3, #4] + 6e8: ea007e7c b 0x200e0 + + 6ec: 000002a3 + 6f0: fffffb00 + 6f4: ffff5800 + 6f8: ffff5801 + 6fc: ffff5803 + 700: fffffb00 + 704: fffef000 + 708: fffe4800 + 70c: fffe4802 + 710: fffe4804 + 714: fffe480c + 718: fffe480a + 71c: fffef006 + 720: 00800100 + 724: 00803ffc + +<728-7FF: all FFs> + +00000800: 42 4F 4F 54 2E 39 30 2E 30 35 00 00 00 00 00 00 BOOT.90.05...... +00000810: 31 30 30 33 01 02 00 00 FF FF FF FF FF FF FF FF 1003............ +00000820: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ + +blank flash from here onward, until the main fw image starts at 0x20000 diff -r e5e5ed527cc1 -r 81cda18b0487 compal/c118-2.2.84.N-boot.bin Binary file compal/c118-2.2.84.N-boot.bin has changed diff -r e5e5ed527cc1 -r 81cda18b0487 compal/c118-3.0.81.E-boot.bin Binary file compal/c118-3.0.81.E-boot.bin has changed diff -r e5e5ed527cc1 -r 81cda18b0487 compal/c118-newboot.disasm --- a/compal/c118-newboot.disasm Sat Jan 14 06:09:25 2023 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2626 +0,0 @@ -Everything up to 0x958 is the same as in the C123 and C139 versions - -RESET entry and exception vectors: - 0: ea000225 b 0x89c - 4: ea000825 b 0x20a0 - 8: ea000825 b 0x20a4 - c: ea000825 b 0x20a8 - 10: ea000825 b 0x20ac - 14: ea000825 b 0x20b0 - 18: ea000825 b 0x20b4 - -<20-7FF: all FFs> - -00000800: 42 4F 4F 54 2E 39 30 2E 30 34 00 00 00 00 00 00 BOOT.90.04...... -00000810: 31 30 30 33 01 01 00 00 FF FF FF FF FF FF FF FF 1003............ -00000820: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ - - 830: 00000006 - 834: 00000000 - 838: 00000000 - 83c: 00000048 - 840: 00000044 - 844: 00000052 - 848: 0000001b - 84c: 00000005 - 850: 00000000 - 854: 00000000 - 858: 00000000 - 85c: 00000000 - 860: 000000fa - 864: ffff5800 - 868: ffff5000 - 86c: fffffb00 - 870: 02a102a1 - 874: 028302a1 - 878: 00c00281 - 87c: 002a0040 - 880: 00000040 - 884: fffffd00 - 888: ffff9800 - 88c: fffffb10 - 890: ffffff08 - 894: 20061081 - 898: 00000800 - -; RESET entry point - 89c: e51f1020 ldr r1, =0xfffffd00 ; via 0x884 - 8a0: e1d120b2 ldrh r2, [r1, #2] - 8a4: e51f002c ldr r0, =0x40 ; via 0x880 - 8a8: e1800002 orr r0, r0, r2 - 8ac: e1c100b2 strh r0, [r1, #2] - 8b0: e51f1030 ldr r1, =0xffff9800 ; via 0x888 - 8b4: e15f22b6 ldrh r2, =0x2006 ; via 0x896 - 8b8: e1c120b0 strh r2, [r1] - 8bc: e5912000 ldr r2, [r1] - 8c0: e2022001 and r2, r2, #1 - 8c4: e3520001 cmp r2, #1 - 8c8: 0afffffb beq 0x8bc - 8cc: e51f1050 ldr r1, =0xfffffd00 ; via 0x884 - 8d0: e15f24b4 ldrh r2, =0x1081 ; via 0x894 - 8d4: e1c120b0 strh r2, [r1] - 8d8: e51f1054 ldr r1, =0xfffffb10 ; via 0x88c - 8dc: e15f24bc ldrh r2, =0x800 ; via 0x898 - 8e0: e1d100b0 ldrh r0, [r1] - 8e4: e1800002 orr r0, r0, r2 - 8e8: e1c100b0 strh r0, [r1] - 8ec: e51f1064 ldr r1, =0xffffff08 ; via 0x890 - 8f0: e15f25be ldrh r2, =0x0 ; via 0x89a - 8f4: e1c120b0 strh r2, [r1] - 8f8: e51f1094 ldr r1, =0xfffffb00 ; via 0x86c - 8fc: e15f29b4 ldrh r2, =0x2a1 ; via 0x870 - 900: e1c120b0 strh r2, [r1] - 904: e15f29ba ldrh r2, =0x2a1 ; via 0x872 - 908: e1c120b2 strh r2, [r1, #2] - 90c: e15f2ab0 ldrh r2, =0x2a1 ; via 0x874 - 910: e1c120b4 strh r2, [r1, #4] - 914: e15f2ab6 ldrh r2, =0x283 ; via 0x876 - 918: e1c120b6 strh r2, [r1, #6] - 91c: e15f2abc ldrh r2, =0x281 ; via 0x878 - 920: e1c120ba strh r2, [r1, #10] ; 0xa - 924: e15f2bb2 ldrh r2, =0xc0 ; via 0x87a - 928: e1c120bc strh r2, [r1, #12] ; 0xc - 92c: e15f2bb8 ldrh r2, =0x40 ; via 0x87c - 930: e1c120b8 strh r2, [r1, #8] - 934: e15f2bbe ldrh r2, =0x2a ; via 0x87e - 938: e1c120be strh r2, [r1, #14] ; 0xe - 93c: e59f0020 ldr r0, =0x83e37c ; via 0x964 - 940: e3a01b01 mov r1, #1024 ; 0x400 - 944: e2411004 sub r1, r1, #4 - 948: e0802001 add r2, r0, r1 - 94c: e3c22003 bic r2, r2, #3 - 950: e1a0d002 mov sp, r2 - 954: e92d100f stmdb sp!, {r0, r1, r2, r3, r12} - 958: eb000522 bl 0x1de8 - 95c: e8bd100f ldmia sp!, {r0, r1, r2, r3, r12} - 960: ea0005e4 b 0x20f8 - - 964: 0083e37c - - 968: 4961 ldr r1, =0xfffffa08 ; via 0xaf0 - 96a: 4862 ldr r0, =0xffff ; via 0xaf4 - 96c: 8008 strh r0, [r1, #0] - 96e: 4862 ldr r0, =0xfffffa0a ; via 0xaf8 - 970: 211f mov r1, #31 ; 0x1f - 972: 8001 strh r1, [r0, #0] - 974: 4861 ldr r0, =0xfffff804 ; via 0xafc - 976: 21f5 mov r1, #245 ; 0xf5 - 978: 8001 strh r1, [r0, #0] - 97a: 21a0 mov r1, #160 ; 0xa0 - 97c: 8001 strh r1, [r0, #0] - 97e: 4860 ldr r0, =0xffff9800 ; via 0xb00 - 980: 4960 ldr r1, =0x2002 ; via 0xb04 - 982: 8001 strh r1, [r0, #0] - 984: 485e ldr r0, =0xffff9800 ; via 0xb00 - 986: 8800 ldrh r0, [r0, #0] - 988: 0840 lsr r0, r0, #1 - 98a: d2fb bcs 0x984 - 98c: 495e ldr r1, =0xfffffd00 ; via 0xb08 - 98e: 485f ldr r0, =0x1001 ; via 0xb0c - 990: 8008 strh r0, [r1, #0] - 992: 46f7 mov pc, lr - 994: b500 push {lr} - 996: b0ff sub sp, #508 ; 0x1fc - 998: b0ca sub sp, #296 ; 0x128 - 99a: 2000 mov r0, #0 - 99c: 9001 str r0, [sp, #4] - 99e: 9801 ldr r0, [sp, #4] - 9a0: 2800 cmp r0, #0 - 9a2: d14e bne 0xa42 - 9a4: a846 add r0, sp, #280 ; 0x118 - 9a6: 2100 mov r1, #0 - 9a8: f001 f84a bl 0x1a40 - 9ac: a9c8 add r1, sp, #800 ; 0x320 - 9ae: 7008 strb r0, [r1, #0] - 9b0: a846 add r0, sp, #280 ; 0x118 - 9b2: a902 add r1, sp, #8 - 9b4: f000 fb08 bl 0xfc8 - 9b8: 9000 str r0, [sp, #0] - 9ba: 9800 ldr r0, [sp, #0] - 9bc: 2800 cmp r0, #0 - 9be: d01b beq 0x9f8 - 9c0: a924 add r1, sp, #144 ; 0x90 - 9c2: 4668 mov r0, sp - 9c4: 7a00 ldrb r0, [r0, #8] - 9c6: 7008 strb r0, [r1, #0] - 9c8: 2191 mov r1, #145 ; 0x91 - 9ca: 466a mov r2, sp - 9cc: 4668 mov r0, sp - 9ce: 7800 ldrb r0, [r0, #0] - 9d0: 5488 strb r0, [r1, r2] - 9d2: e01b b 0xa0c - 9d4: a802 add r0, sp, #8 - 9d6: a924 add r1, sp, #144 ; 0x90 - 9d8: f000 fde4 bl 0x15a4 - 9dc: e016 b 0xa0c - 9de: a802 add r0, sp, #8 - 9e0: a924 add r1, sp, #144 ; 0x90 - 9e2: aac8 add r2, sp, #800 ; 0x320 - 9e4: 7812 ldrb r2, [r2, #0] - 9e6: f000 fdf1 bl 0x15cc - 9ea: e00f b 0xa0c - 9ec: a802 add r0, sp, #8 - 9ee: a924 add r1, sp, #144 ; 0x90 - 9f0: f000 fe23 bl 0x163a - 9f4: 90c7 str r0, [sp, #796] ; 0x31c - 9f6: e009 b 0xa0c - 9f8: 4668 mov r0, sp - 9fa: 7a00 ldrb r0, [r0, #8] - 9fc: 2800 cmp r0, #0 - 9fe: d0e9 beq 0x9d4 - a00: 3809 sub r0, #9 - a02: 2800 cmp r0, #0 - a04: d0eb beq 0x9de - a06: 3801 sub r0, #1 - a08: 2800 cmp r0, #0 - a0a: d0ef beq 0x9ec - a0c: a824 add r0, sp, #144 ; 0x90 - a0e: a986 add r1, sp, #536 ; 0x218 - a10: f000 fbbd bl 0x118e - a14: 2800 cmp r0, #0 - a16: d111 bne 0xa3c - a18: a886 add r0, sp, #536 ; 0x218 - a1a: a9c8 add r1, sp, #800 ; 0x320 - a1c: 7809 ldrb r1, [r1, #0] - a1e: f000 ffe4 bl 0x19ea - a22: 2800 cmp r0, #0 - a24: d00a beq 0xa3c - a26: 4668 mov r0, sp - a28: 7a00 ldrb r0, [r0, #8] - a2a: 280a cmp r0, #10 ; 0xa - a2c: d106 bne 0xa3c - a2e: a8c8 add r0, sp, #800 ; 0x320 - a30: 7800 ldrb r0, [r0, #0] - a32: f001 f935 bl 0x1ca0 - a36: 98c7 ldr r0, [sp, #796] ; 0x31c - a38: f000 fac4 bl 0xfc4 - a3c: 9801 ldr r0, [sp, #4] - a3e: 2800 cmp r0, #0 - a40: d0b0 beq 0x9a4 - a42: b07f add sp, #508 ; 0x1fc - a44: b04a add sp, #296 ; 0x128 - a46: bd00 pop {pc} - a48: b500 push {lr} - a4a: b0ff sub sp, #508 ; 0x1fc - a4c: b0c8 sub sp, #288 ; 0x120 - a4e: 2000 mov r0, #0 - a50: 9000 str r0, [sp, #0] - a52: a846 add r0, sp, #280 ; 0x118 - a54: 2101 mov r1, #1 - a56: f000 fff3 bl 0x1a40 - a5a: a9c6 add r1, sp, #792 ; 0x318 - a5c: 7008 strb r0, [r1, #0] - a5e: a8c6 add r0, sp, #792 ; 0x318 - a60: 7800 ldrb r0, [r0, #0] - a62: 28ff cmp r0, #255 ; 0xff - a64: d031 beq 0xaca - a66: a846 add r0, sp, #280 ; 0x118 - a68: a902 add r1, sp, #8 - a6a: f000 faad bl 0xfc8 - a6e: 9001 str r0, [sp, #4] - a70: 9801 ldr r0, [sp, #4] - a72: 2800 cmp r0, #0 - a74: d014 beq 0xaa0 - a76: a924 add r1, sp, #144 ; 0x90 - a78: 4668 mov r0, sp - a7a: 7a00 ldrb r0, [r0, #8] - a7c: 7008 strb r0, [r1, #0] - a7e: 2291 mov r2, #145 ; 0x91 - a80: 4668 mov r0, sp - a82: 4669 mov r1, sp - a84: 7909 ldrb r1, [r1, #4] - a86: 5411 strb r1, [r2, r0] - a88: a824 add r0, sp, #144 ; 0x90 - a8a: a986 add r1, sp, #536 ; 0x218 - a8c: f000 fb7f bl 0x118e - a90: 2800 cmp r0, #0 - a92: d11a bne 0xaca - a94: a886 add r0, sp, #536 ; 0x218 - a96: a9c6 add r1, sp, #792 ; 0x318 - a98: 7809 ldrb r1, [r1, #0] - a9a: f000 ffa6 bl 0x19ea - a9e: e014 b 0xaca - aa0: 4668 mov r0, sp - aa2: 7a00 ldrb r0, [r0, #8] - aa4: 2800 cmp r0, #0 - aa6: d110 bne 0xaca - aa8: a802 add r0, sp, #8 - aaa: a924 add r1, sp, #144 ; 0x90 - aac: f000 fd7a bl 0x15a4 - ab0: a824 add r0, sp, #144 ; 0x90 - ab2: a986 add r1, sp, #536 ; 0x218 - ab4: f000 fb6b bl 0x118e - ab8: 2800 cmp r0, #0 - aba: d104 bne 0xac6 - abc: a886 add r0, sp, #536 ; 0x218 - abe: a9c6 add r1, sp, #792 ; 0x318 - ac0: 7809 ldrb r1, [r1, #0] - ac2: f000 ff92 bl 0x19ea - ac6: 2001 mov r0, #1 - ac8: 9000 str r0, [sp, #0] - aca: 9800 ldr r0, [sp, #0] - acc: b07f add sp, #508 ; 0x1fc - ace: b048 add sp, #288 ; 0x120 - ad0: bd00 pop {pc} - - ad2: b500 push {lr} - ad4: b082 sub sp, #8 - ad6: f7ff ff47 bl 0x968 - ada: f001 f889 bl 0x1bf0 - ade: f000 fd4f bl 0x1580 - ae2: f000 f81f bl 0xb24 - ae6: f000 f945 bl 0xd74 - aea: b002 add sp, #8 - aec: bd00 pop {pc} - aee: 46c0 nop (mov r8, r8) - - af0: fffffa08 - af4: 0000ffff - af8: fffffa0a - afc: fffff804 - b00: ffff9800 - b04: 00002002 - b08: fffffd00 - b0c: 00001001 - - b10: e3a0d502 mov sp, #8388608 ; 0x800000 - b14: e28dd802 add sp, sp, #131072 ; 0x20000 - b18: e28fe005 add lr, pc, #5 - b1c: e12fff1e bx lr - b20: e1a00000 mov r0, r0 - - b24: b500 push {lr} - b26: b082 sub sp, #8 - b28: 49ea ldr r1, =0x83ff00 ; via 0xed4 - b2a: 48eb ldr r0, =0xffff5800 ; via 0xed8 - b2c: 6008 str r0, [r1, #0] - b2e: 2000 mov r0, #0 - b30: 2102 mov r1, #2 - b32: f000 f9d3 bl 0xedc - b36: 2000 mov r0, #0 - b38: 9000 str r0, [sp, #0] - b3a: 9900 ldr r1, [sp, #0] - b3c: 2005 mov r0, #5 - b3e: 0300 lsl r0, r0, #12 - b40: 4281 cmp r1, r0 - b42: d207 bcs 0xb54 - b44: 9800 ldr r0, [sp, #0] - b46: 3001 add r0, #1 - b48: 9000 str r0, [sp, #0] - b4a: 9900 ldr r1, [sp, #0] - b4c: 2005 mov r0, #5 - b4e: 0300 lsl r0, r0, #12 - b50: 4281 cmp r1, r0 - b52: d3f7 bcc 0xb44 - b54: f000 f82a bl 0xbac - b58: 2000 mov r0, #0 - b5a: 2107 mov r1, #7 - b5c: f000 f9be bl 0xedc - b60: 2000 mov r0, #0 - b62: 9000 str r0, [sp, #0] - b64: 9900 ldr r1, [sp, #0] - b66: 2005 mov r0, #5 - b68: 0300 lsl r0, r0, #12 - b6a: 4281 cmp r1, r0 - b6c: d207 bcs 0xb7e - b6e: 9800 ldr r0, [sp, #0] - b70: 3001 add r0, #1 - b72: 9000 str r0, [sp, #0] - b74: 9900 ldr r1, [sp, #0] - b76: 2005 mov r0, #5 - b78: 0300 lsl r0, r0, #12 - b7a: 4281 cmp r1, r0 - b7c: d3f7 bcc 0xb6e - b7e: f000 f815 bl 0xbac - b82: 2000 mov r0, #0 - b84: 9001 str r0, [sp, #4] - b86: 9000 str r0, [sp, #0] - b88: 9900 ldr r1, [sp, #0] - b8a: 2005 mov r0, #5 - b8c: 0400 lsl r0, r0, #16 - b8e: 4281 cmp r1, r0 - b90: d20a bcs 0xba8 - b92: 9801 ldr r0, [sp, #4] - b94: 3001 add r0, #1 - b96: 9001 str r0, [sp, #4] - b98: 9800 ldr r0, [sp, #0] - b9a: 3001 add r0, #1 - b9c: 9000 str r0, [sp, #0] - b9e: 9900 ldr r1, [sp, #0] - ba0: 2005 mov r0, #5 - ba2: 0400 lsl r0, r0, #16 - ba4: 4281 cmp r1, r0 - ba6: d3f4 bcc 0xb92 - ba8: b002 add sp, #8 - baa: bd00 pop {pc} - - bac: b500 push {lr} - bae: b089 sub sp, #36 ; 0x24 - bb0: 48f3 ldr r0, =0x800100 ; via 0xf80 - bb2: 9005 str r0, [sp, #20] ; 0x14 - bb4: 48f3 ldr r0, =0x2060 ; via 0xf84 - bb6: 9008 str r0, [sp, #32] ; 0x20 - bb8: 9808 ldr r0, [sp, #32] ; 0x20 - bba: 6800 ldr r0, [r0, #0] - bbc: 49f2 ldr r1, =0xdddddddd ; via 0xf88 - bbe: 4288 cmp r0, r1 - bc0: d000 beq 0xbc4 - bc2: e0d5 b 0xd70 - bc4: 201b mov r0, #27 ; 0x1b - bc6: f000 f932 bl 0xe2e - bca: 20f6 mov r0, #246 ; 0xf6 - bcc: f000 f92f bl 0xe2e - bd0: 2002 mov r0, #2 - bd2: f000 f92c bl 0xe2e - bd6: 2000 mov r0, #0 - bd8: f000 f929 bl 0xe2e - bdc: 2041 mov r0, #65 ; 0x41 - bde: f000 f926 bl 0xe2e - be2: 2001 mov r0, #1 - be4: f000 f923 bl 0xe2e - be8: 2040 mov r0, #64 ; 0x40 - bea: f000 f920 bl 0xe2e - bee: 2001 mov r0, #1 - bf0: 0300 lsl r0, r0, #12 - bf2: f000 f934 bl 0xe5e - bf6: 281b cmp r0, #27 ; 0x1b - bf8: d000 beq 0xbfc - bfa: e0b9 b 0xd70 - bfc: 2001 mov r0, #1 - bfe: 0300 lsl r0, r0, #12 - c00: f000 f92d bl 0xe5e - c04: 28f6 cmp r0, #246 ; 0xf6 - c06: d000 beq 0xc0a - c08: e0b2 b 0xd70 - c0a: 2001 mov r0, #1 - c0c: 0300 lsl r0, r0, #12 - c0e: f000 f926 bl 0xe5e - c12: 2802 cmp r0, #2 - c14: d000 beq 0xc18 - c16: e0ab b 0xd70 - c18: 2001 mov r0, #1 - c1a: 0300 lsl r0, r0, #12 - c1c: f000 f91f bl 0xe5e - c20: 2800 cmp r0, #0 - c22: d000 beq 0xc26 - c24: e0a4 b 0xd70 - c26: 2001 mov r0, #1 - c28: 0300 lsl r0, r0, #12 - c2a: f000 f918 bl 0xe5e - c2e: 2852 cmp r0, #82 ; 0x52 - c30: d000 beq 0xc34 - c32: e09d b 0xd70 - c34: 2001 mov r0, #1 - c36: 0300 lsl r0, r0, #12 - c38: f000 f911 bl 0xe5e - c3c: 2801 cmp r0, #1 - c3e: d000 beq 0xc42 - c40: e096 b 0xd70 - c42: 2001 mov r0, #1 - c44: 0300 lsl r0, r0, #12 - c46: f000 f90a bl 0xe5e - c4a: 2853 cmp r0, #83 ; 0x53 - c4c: d000 beq 0xc50 - c4e: e08f b 0xd70 - c50: 201b mov r0, #27 ; 0x1b - c52: f000 f8ec bl 0xe2e - c56: 20f6 mov r0, #246 ; 0xf6 - c58: f000 f8e9 bl 0xe2e - c5c: 2002 mov r0, #2 - c5e: f000 f8e6 bl 0xe2e - c62: 2000 mov r0, #0 - c64: f000 f8e3 bl 0xe2e - c68: 2041 mov r0, #65 ; 0x41 - c6a: f000 f8e0 bl 0xe2e - c6e: 2002 mov r0, #2 - c70: f000 f8dd bl 0xe2e - c74: 2043 mov r0, #67 ; 0x43 - c76: f000 f8da bl 0xe2e - c7a: 2001 mov r0, #1 - c7c: 0300 lsl r0, r0, #12 - c7e: f000 f8ee bl 0xe5e - c82: 4669 mov r1, sp - c84: 7208 strb r0, [r1, #8] - c86: 2002 mov r0, #2 - c88: 7448 strb r0, [r1, #17] ; 0x11 - c8a: 2000 mov r0, #0 - c8c: 9000 str r0, [sp, #0] - c8e: 9800 ldr r0, [sp, #0] - c90: 2802 cmp r0, #2 - c92: d215 bcs 0xcc0 - c94: 2001 mov r0, #1 - c96: 0300 lsl r0, r0, #12 - c98: f000 f8e1 bl 0xe5e - c9c: 4669 mov r1, sp - c9e: 9a00 ldr r2, [sp, #0] - ca0: 1a89 sub r1, r1, r2 - ca2: 7348 strb r0, [r1, #13] ; 0xd - ca4: 4669 mov r1, sp - ca6: 9800 ldr r0, [sp, #0] - ca8: 1a08 sub r0, r1, r0 - caa: 7b40 ldrb r0, [r0, #13] ; 0xd - cac: 7c49 ldrb r1, [r1, #17] ; 0x11 - cae: 4048 eor r0, r1 - cb0: 4669 mov r1, sp - cb2: 7448 strb r0, [r1, #17] ; 0x11 - cb4: 9800 ldr r0, [sp, #0] - cb6: 3001 add r0, #1 - cb8: 9000 str r0, [sp, #0] - cba: 9800 ldr r0, [sp, #0] - cbc: 2802 cmp r0, #2 - cbe: d3e9 bcc 0xc94 - cc0: 4668 mov r0, sp - cc2: 8980 ldrh r0, [r0, #12] ; 0xc - cc4: 466a mov r2, sp - cc6: 1e41 sub r1, r0, #1 - cc8: 8191 strh r1, [r2, #12] ; 0xc - cca: 2800 cmp r0, #0 - ccc: d015 beq 0xcfa - cce: 2001 mov r0, #1 - cd0: 0300 lsl r0, r0, #12 - cd2: f000 f8c4 bl 0xe5e - cd6: 9905 ldr r1, [sp, #20] ; 0x14 - cd8: 7008 strb r0, [r1, #0] - cda: 9805 ldr r0, [sp, #20] ; 0x14 - cdc: 7800 ldrb r0, [r0, #0] - cde: 4669 mov r1, sp - ce0: 7c49 ldrb r1, [r1, #17] ; 0x11 - ce2: 4048 eor r0, r1 - ce4: 4669 mov r1, sp - ce6: 7448 strb r0, [r1, #17] ; 0x11 - ce8: 9805 ldr r0, [sp, #20] ; 0x14 - cea: 3001 add r0, #1 - cec: 9005 str r0, [sp, #20] ; 0x14 - cee: 4668 mov r0, sp - cf0: 8982 ldrh r2, [r0, #12] ; 0xc - cf2: 1e50 sub r0, r2, #1 - cf4: 8188 strh r0, [r1, #12] ; 0xc - cf6: 2a00 cmp r2, #0 - cf8: d1e9 bne 0xcce - cfa: 2001 mov r0, #1 - cfc: 0300 lsl r0, r0, #12 - cfe: f000 f8ae bl 0xe5e - d02: 4669 mov r1, sp - d04: 7408 strb r0, [r1, #16] ; 0x10 - d06: 4668 mov r0, sp - d08: 7c01 ldrb r1, [r0, #16] ; 0x10 - d0a: 7c40 ldrb r0, [r0, #17] ; 0x11 - d0c: 4281 cmp r1, r0 - d0e: d015 beq 0xd3c - d10: 201b mov r0, #27 ; 0x1b - d12: f000 f88c bl 0xe2e - d16: 20f6 mov r0, #246 ; 0xf6 - d18: f000 f889 bl 0xe2e - d1c: 2002 mov r0, #2 - d1e: f000 f886 bl 0xe2e - d22: 2000 mov r0, #0 - d24: f000 f883 bl 0xe2e - d28: 2045 mov r0, #69 ; 0x45 - d2a: f000 f880 bl 0xe2e - d2e: 2053 mov r0, #83 ; 0x53 - d30: f000 f87d bl 0xe2e - d34: 2016 mov r0, #22 ; 0x16 - d36: f000 f87a bl 0xe2e - d3a: e019 b 0xd70 - d3c: 201b mov r0, #27 ; 0x1b - d3e: f000 f876 bl 0xe2e - d42: 20f6 mov r0, #246 ; 0xf6 - d44: f000 f873 bl 0xe2e - d48: 2002 mov r0, #2 - d4a: f000 f870 bl 0xe2e - d4e: 2000 mov r0, #0 - d50: f000 f86d bl 0xe2e - d54: 2041 mov r0, #65 ; 0x41 - d56: f000 f86a bl 0xe2e - d5a: 2003 mov r0, #3 - d5c: f000 f867 bl 0xe2e - d60: 2042 mov r0, #66 ; 0x42 - d62: f000 f864 bl 0xe2e - d66: 485b ldr r0, =0x83ff00 ; via 0xed4 - d68: 6800 ldr r0, [r0, #0] - d6a: 4991 ldr r1, =0x800100 ; via 0xfb0 - d6c: f000 f85e bl 0xe2c - d70: b009 add sp, #36 ; 0x24 - d72: bd00 pop {pc} - - d74: b500 push {lr} - d76: b081 sub sp, #4 - d78: 2066 mov r0, #102 ; 0x66 - d7a: f000 f858 bl 0xe2e - d7e: 2074 mov r0, #116 ; 0x74 - d80: f000 f855 bl 0xe2e - d84: 206d mov r0, #109 ; 0x6d - d86: f000 f852 bl 0xe2e - d8a: 2074 mov r0, #116 ; 0x74 - d8c: f000 f84f bl 0xe2e - d90: 206f mov r0, #111 ; 0x6f - d92: f000 f84c bl 0xe2e - d96: 206f mov r0, #111 ; 0x6f - d98: f000 f849 bl 0xe2e - d9c: 206c mov r0, #108 ; 0x6c - d9e: f000 f846 bl 0xe2e - da2: 4984 ldr r1, =0x83ff80 ; via 0xfb4 - da4: 2000 mov r0, #0 - da6: 7008 strb r0, [r1, #0] - da8: 9000 str r0, [sp, #0] - daa: 9800 ldr r0, [sp, #0] - dac: 0c00 lsr r0, r0, #16 - dae: d105 bne 0xdbc - db0: 9800 ldr r0, [sp, #0] - db2: 3001 add r0, #1 - db4: 9000 str r0, [sp, #0] - db6: 9800 ldr r0, [sp, #0] - db8: 0c00 lsr r0, r0, #16 - dba: d0f9 beq 0xdb0 - dbc: 2007 mov r0, #7 - dbe: 0400 lsl r0, r0, #16 - dc0: f000 f84d bl 0xe5e - dc4: 2879 cmp r0, #121 ; 0x79 - dc6: d10e bne 0xde6 - dc8: 2001 mov r0, #1 - dca: 0300 lsl r0, r0, #12 - dcc: f000 f847 bl 0xe5e - dd0: 2865 cmp r0, #101 ; 0x65 - dd2: d108 bne 0xde6 - dd4: 2001 mov r0, #1 - dd6: 0300 lsl r0, r0, #12 - dd8: f000 f841 bl 0xe5e - ddc: 2873 cmp r0, #115 ; 0x73 - dde: d102 bne 0xde6 - de0: 4874 ldr r0, =0x83ff80 ; via 0xfb4 - de2: 2101 mov r1, #1 - de4: 7001 strb r1, [r0, #0] - de6: f000 f8d1 bl 0xf8c - dea: 2800 cmp r0, #0 - dec: d00d beq 0xe0a - dee: 206d mov r0, #109 ; 0x6d - df0: f000 f81d bl 0xe2e - df4: 206f mov r0, #111 ; 0x6f - df6: f000 f81a bl 0xe2e - dfa: 2064 mov r0, #100 ; 0x64 - dfc: f000 f817 bl 0xe2e - e00: 2065 mov r0, #101 ; 0x65 - e02: f000 f814 bl 0xe2e - e06: 206d mov r0, #109 ; 0x6d - e08: e00c b 0xe24 - e0a: 2065 mov r0, #101 ; 0x65 - e0c: f000 f80f bl 0xe2e - e10: 2072 mov r0, #114 ; 0x72 - e12: f000 f80c bl 0xe2e - e16: 2072 mov r0, #114 ; 0x72 - e18: f000 f809 bl 0xe2e - e1c: 206f mov r0, #111 ; 0x6f - e1e: f000 f806 bl 0xe2e - e22: 2072 mov r0, #114 ; 0x72 - e24: f000 f803 bl 0xe2e - e28: b001 add sp, #4 - e2a: bd00 pop {pc} - e2c: 4708 bx r1 - e2e: b081 sub sp, #4 - e30: 4669 mov r1, sp - e32: 7008 strb r0, [r1, #0] - e34: 4827 ldr r0, =0x83ff00 ; via 0xed4 - e36: 6800 ldr r0, [r0, #0] - e38: 7940 ldrb r0, [r0, #5] - e3a: 0980 lsr r0, r0, #6 - e3c: d3fa bcc 0xe34 - e3e: 4825 ldr r0, =0x83ff00 ; via 0xed4 - e40: 6800 ldr r0, [r0, #0] - e42: 4669 mov r1, sp - e44: 7809 ldrb r1, [r1, #0] - e46: 7001 strb r1, [r0, #0] - e48: b001 add sp, #4 - e4a: 46f7 mov pc, lr - e4c: 4821 ldr r0, =0x83ff00 ; via 0xed4 - e4e: 6800 ldr r0, [r0, #0] - e50: 7940 ldrb r0, [r0, #5] - e52: 0840 lsr r0, r0, #1 - e54: d3fa bcc 0xe4c - e56: 481f ldr r0, =0x83ff00 ; via 0xed4 - e58: 6800 ldr r0, [r0, #0] - e5a: 7800 ldrb r0, [r0, #0] - e5c: 4770 bx lr - e5e: b083 sub sp, #12 ; 0xc - e60: 9000 str r0, [sp, #0] - e62: 9800 ldr r0, [sp, #0] - e64: 9002 str r0, [sp, #8] - e66: 481b ldr r0, =0x83ff00 ; via 0xed4 - e68: 6800 ldr r0, [r0, #0] - e6a: 7940 ldrb r0, [r0, #5] - e6c: 0840 lsr r0, r0, #1 - e6e: d20c bcs 0xe8a - e70: 9802 ldr r0, [sp, #8] - e72: 3801 sub r0, #1 - e74: 9002 str r0, [sp, #8] - e76: 9802 ldr r0, [sp, #8] - e78: 2800 cmp r0, #0 - e7a: d101 bne 0xe80 - e7c: 20ff mov r0, #255 ; 0xff - e7e: e007 b 0xe90 - e80: 4814 ldr r0, =0x83ff00 ; via 0xed4 - e82: 6800 ldr r0, [r0, #0] - e84: 7940 ldrb r0, [r0, #5] - e86: 0840 lsr r0, r0, #1 - e88: d3f2 bcc 0xe70 - e8a: 4812 ldr r0, =0x83ff00 ; via 0xed4 - e8c: 6800 ldr r0, [r0, #0] - e8e: 7800 ldrb r0, [r0, #0] - e90: b003 add sp, #12 ; 0xc - e92: 4770 bx lr - e94: b081 sub sp, #4 - e96: e001 b 0xe9c - e98: 9800 ldr r0, [sp, #0] - e9a: 3801 sub r0, #1 - e9c: 9000 str r0, [sp, #0] - e9e: 480d ldr r0, =0x83ff00 ; via 0xed4 - ea0: 6800 ldr r0, [r0, #0] - ea2: 7940 ldrb r0, [r0, #5] - ea4: 0840 lsr r0, r0, #1 - ea6: d202 bcs 0xeae - ea8: 9800 ldr r0, [sp, #0] - eaa: 2800 cmp r0, #0 - eac: dcf4 bgt 0xe98 - eae: 9800 ldr r0, [sp, #0] - eb0: 2800 cmp r0, #0 - eb2: dd01 ble 0xeb8 - eb4: 2000 mov r0, #0 - eb6: e000 b 0xeba - eb8: 2001 mov r0, #1 - eba: b001 add sp, #4 - ebc: 4770 bx lr - ebe: b082 sub sp, #8 - ec0: 9000 str r0, [sp, #0] - ec2: 4669 mov r1, sp - ec4: 2000 mov r0, #0 - ec6: 7188 strb r0, [r1, #6] - ec8: 9900 ldr r1, [sp, #0] - eca: 483b ldr r0, =0xfffef000 ; via 0xfb8 - ecc: 8800 ldrh r0, [r0, #0] - ece: 8008 strh r0, [r1, #0] - ed0: b002 add sp, #8 - ed2: 4770 bx lr - ed4: ff00 - ed6: 0083 lsl r3, r0, #2 - ed8: 5800 ldr r0, [r0, r0] - eda: ffff - edc: b081 sub sp, #4 - ede: 466a mov r2, sp - ee0: 7051 strb r1, [r2, #1] - ee2: 4669 mov r1, sp - ee4: 7008 strb r0, [r1, #0] - ee6: 4935 ldr r1, =0xffff6000 ; via 0xfbc - ee8: 2002 mov r0, #2 - eea: 880a ldrh r2, [r1, #0] - eec: 4310 orr r0, r2 - eee: 8008 strh r0, [r1, #0] - ef0: 4832 ldr r0, =0xffff6000 ; via 0xfbc - ef2: 8801 ldrh r1, [r0, #0] - ef4: 0849 lsr r1, r1, #1 - ef6: 0049 lsl r1, r1, #1 - ef8: 8001 strh r1, [r0, #0] - efa: 4930 ldr r1, =0xffff6000 ; via 0xfbc - efc: 8808 ldrh r0, [r1, #0] - efe: 2202 mov r2, #2 - f00: 4390 bic r0, r2 - f02: 8008 strh r0, [r1, #0] - f04: 482e ldr r0, =0x83ff00 ; via 0xfc0 - f06: 6801 ldr r1, [r0, #0] - f08: 2007 mov r0, #7 - f0a: 7208 strb r0, [r1, #8] - f0c: 482c ldr r0, =0x83ff00 ; via 0xfc0 - f0e: 6801 ldr r1, [r0, #0] - f10: 20bf mov r0, #191 ; 0xbf - f12: 70c8 strb r0, [r1, #3] - f14: 482a ldr r0, =0x83ff00 ; via 0xfc0 - f16: 6800 ldr r0, [r0, #0] - f18: 1c80 add r0, r0, #2 - f1a: 2110 mov r1, #16 ; 0x10 - f1c: 8802 ldrh r2, [r0, #0] - f1e: 4311 orr r1, r2 - f20: 8001 strh r1, [r0, #0] - f22: 4827 ldr r0, =0x83ff00 ; via 0xfc0 - f24: 6801 ldr r1, [r0, #0] - f26: 2080 mov r0, #128 ; 0x80 - f28: 70c8 strb r0, [r1, #3] - f2a: 4825 ldr r0, =0x83ff00 ; via 0xfc0 - f2c: 6800 ldr r0, [r0, #0] - f2e: 2107 mov r1, #7 - f30: 7081 strb r1, [r0, #2] - f32: 4823 ldr r0, =0x83ff00 ; via 0xfc0 - f34: 6800 ldr r0, [r0, #0] - f36: 21bf mov r1, #191 ; 0xbf - f38: 70c1 strb r1, [r0, #3] - f3a: 4821 ldr r0, =0x83ff00 ; via 0xfc0 - f3c: 6801 ldr r1, [r0, #0] - f3e: 4668 mov r0, sp - f40: 7840 ldrb r0, [r0, #1] - f42: 7008 strb r0, [r1, #0] - f44: 481e ldr r0, =0x83ff00 ; via 0xfc0 - f46: 6801 ldr r1, [r0, #0] - f48: 4668 mov r0, sp - f4a: 7800 ldrb r0, [r0, #0] - f4c: 7048 strb r0, [r1, #1] - f4e: 481c ldr r0, =0x83ff00 ; via 0xfc0 - f50: 6801 ldr r1, [r0, #0] - f52: 2003 mov r0, #3 - f54: 70c8 strb r0, [r1, #3] - f56: 481a ldr r0, =0x83ff00 ; via 0xfc0 - f58: 6800 ldr r0, [r0, #0] - f5a: 2100 mov r1, #0 - f5c: 7201 strb r1, [r0, #8] - f5e: 4818 ldr r0, =0x83ff00 ; via 0xfc0 - f60: 6800 ldr r0, [r0, #0] - f62: 7940 ldrb r0, [r0, #5] - f64: 0840 lsr r0, r0, #1 - f66: d309 bcc 0xf7c - f68: 4669 mov r1, sp - f6a: 4815 ldr r0, =0x83ff00 ; via 0xfc0 - f6c: 6800 ldr r0, [r0, #0] - f6e: 7800 ldrb r0, [r0, #0] - f70: 7088 strb r0, [r1, #2] - f72: 4813 ldr r0, =0x83ff00 ; via 0xfc0 - f74: 6800 ldr r0, [r0, #0] - f76: 7940 ldrb r0, [r0, #5] - f78: 0840 lsr r0, r0, #1 - f7a: d2f5 bcs 0xf68 - f7c: b001 add sp, #4 - f7e: 4770 bx lr - f80: 0100 lsl r0, r0, #4 - f82: 0080 lsl r0, r0, #2 - f84: 2060 mov r0, #96 ; 0x60 - f86: 0000 lsl r0, r0, #0 - f88: dddd ble 0xf46 - f8a: dddd ble 0xf48 - f8c: 4809 ldr r0, =0x83ff80 ; via 0xfb4 - f8e: 7800 ldrb r0, [r0, #0] - f90: 4770 bx lr - f92: b500 push {lr} - f94: b081 sub sp, #4 - f96: 4669 mov r1, sp - f98: 7008 strb r0, [r1, #0] - f9a: 4668 mov r0, sp - f9c: 7800 ldrb r0, [r0, #0] - f9e: f7ff ff46 bl 0xe2e - fa2: b001 add sp, #4 - fa4: bd00 pop {pc} - fa6: b500 push {lr} - fa8: f7ff ff50 bl 0xe4c - fac: bd00 pop {pc} - fae: 46c0 nop (mov r8, r8) - fb0: 0100 lsl r0, r0, #4 - fb2: 0080 lsl r0, r0, #2 - fb4: ff80 - fb6: 0083 lsl r3, r0, #2 - fb8: f000 fffe bl 0x1fb8 - fbc: 6000 str r0, [r0, #0] - fbe: ffff - fc0: ff00 - fc2: 0083 lsl r3, r0, #2 - fc4: 4700 bx r0 - fc6: 0000 lsl r0, r0, #0 - fc8: b08c sub sp, #48 ; 0x30 - fca: 9101 str r1, [sp, #4] - fcc: 9000 str r0, [sp, #0] - fce: 2000 mov r0, #0 - fd0: 9003 str r0, [sp, #12] ; 0xc - fd2: 9800 ldr r0, [sp, #0] - fd4: 7801 ldrb r1, [r0, #0] - fd6: 3001 add r0, #1 - fd8: 9000 str r0, [sp, #0] - fda: 9105 str r1, [sp, #20] ; 0x14 - fdc: 9800 ldr r0, [sp, #0] - fde: 7801 ldrb r1, [r0, #0] - fe0: 3001 add r0, #1 - fe2: 9000 str r0, [sp, #0] - fe4: 9801 ldr r0, [sp, #4] - fe6: 7001 strb r1, [r0, #0] - fe8: 2001 mov r0, #1 - fea: 9004 str r0, [sp, #16] ; 0x10 - fec: e0a8 b 0x1140 - fee: 9804 ldr r0, [sp, #16] ; 0x10 - ff0: 3002 add r0, #2 - ff2: 9004 str r0, [sp, #16] ; 0x10 - ff4: 9800 ldr r0, [sp, #0] - ff6: 7801 ldrb r1, [r0, #0] - ff8: 3001 add r0, #1 - ffa: 9000 str r0, [sp, #0] - ffc: 4668 mov r0, sp - ffe: 8441 strh r1, [r0, #34] ; 0x22 - 1000: 9800 ldr r0, [sp, #0] - 1002: 7801 ldrb r1, [r0, #0] - 1004: 3001 add r0, #1 - 1006: 9000 str r0, [sp, #0] - 1008: 4668 mov r0, sp - 100a: 8401 strh r1, [r0, #32] ; 0x20 - 100c: 8c00 ldrh r0, [r0, #32] ; 0x20 - 100e: 4669 mov r1, sp - 1010: 8c49 ldrh r1, [r1, #34] ; 0x22 - 1012: 0209 lsl r1, r1, #8 - 1014: 1840 add r0, r0, r1 - 1016: 9901 ldr r1, [sp, #4] - 1018: 8088 strh r0, [r1, #4] - 101a: 9804 ldr r0, [sp, #16] ; 0x10 - 101c: 3001 add r0, #1 - 101e: 9004 str r0, [sp, #16] ; 0x10 - 1020: 9800 ldr r0, [sp, #0] - 1022: 7801 ldrb r1, [r0, #0] - 1024: 3001 add r0, #1 - 1026: 9000 str r0, [sp, #0] - 1028: 4668 mov r0, sp - 102a: 7601 strb r1, [r0, #24] ; 0x18 - 102c: 9901 ldr r1, [sp, #4] - 102e: 7e00 ldrb r0, [r0, #24] ; 0x18 - 1030: 7188 strb r0, [r1, #6] - 1032: 4668 mov r0, sp - 1034: 7e00 ldrb r0, [r0, #24] ; 0x18 - 1036: 2840 cmp r0, #64 ; 0x40 - 1038: dc00 bgt 0x103c - 103a: e09f b 0x117c - 103c: 2004 mov r0, #4 - 103e: 9003 str r0, [sp, #12] ; 0xc - 1040: e09c b 0x117c - 1042: 9804 ldr r0, [sp, #16] ; 0x10 - 1044: 3002 add r0, #2 - 1046: 9004 str r0, [sp, #16] ; 0x10 - 1048: 9800 ldr r0, [sp, #0] - 104a: 7801 ldrb r1, [r0, #0] - 104c: 3001 add r0, #1 - 104e: 9000 str r0, [sp, #0] - 1050: 4668 mov r0, sp - 1052: 8441 strh r1, [r0, #34] ; 0x22 - 1054: 9800 ldr r0, [sp, #0] - 1056: 7801 ldrb r1, [r0, #0] - 1058: 3001 add r0, #1 - 105a: 9000 str r0, [sp, #0] - 105c: 4668 mov r0, sp - 105e: 8401 strh r1, [r0, #32] ; 0x20 - 1060: 8c00 ldrh r0, [r0, #32] ; 0x20 - 1062: 4669 mov r1, sp - 1064: 8c49 ldrh r1, [r1, #34] ; 0x22 - 1066: 0209 lsl r1, r1, #8 - 1068: 1841 add r1, r0, r1 - 106a: 9801 ldr r0, [sp, #4] - 106c: 8081 strh r1, [r0, #4] - 106e: 9804 ldr r0, [sp, #16] ; 0x10 - 1070: 3001 add r0, #1 - 1072: 9004 str r0, [sp, #16] ; 0x10 - 1074: 9800 ldr r0, [sp, #0] - 1076: 7801 ldrb r1, [r0, #0] - 1078: 3001 add r0, #1 - 107a: 9000 str r0, [sp, #0] - 107c: 4668 mov r0, sp - 107e: 7601 strb r1, [r0, #24] ; 0x18 - 1080: 9901 ldr r1, [sp, #4] - 1082: 7e00 ldrb r0, [r0, #24] ; 0x18 - 1084: 7188 strb r0, [r1, #6] - 1086: 4668 mov r0, sp - 1088: 7e00 ldrb r0, [r0, #24] ; 0x18 - 108a: 2840 cmp r0, #64 ; 0x40 - 108c: dcd6 bgt 0x103c - 108e: 9801 ldr r0, [sp, #4] - 1090: 3008 add r0, #8 - 1092: 9007 str r0, [sp, #28] ; 0x1c - 1094: 2000 mov r0, #0 - 1096: 9002 str r0, [sp, #8] - 1098: 9902 ldr r1, [sp, #8] - 109a: 4668 mov r0, sp - 109c: 7e00 ldrb r0, [r0, #24] ; 0x18 - 109e: 4281 cmp r1, r0 - 10a0: da6c bge 0x117c - 10a2: 9800 ldr r0, [sp, #0] - 10a4: 7801 ldrb r1, [r0, #0] - 10a6: 3001 add r0, #1 - 10a8: 9000 str r0, [sp, #0] - 10aa: 4668 mov r0, sp - 10ac: 84c1 strh r1, [r0, #38] ; 0x26 - 10ae: 9800 ldr r0, [sp, #0] - 10b0: 7801 ldrb r1, [r0, #0] - 10b2: 3001 add r0, #1 - 10b4: 9000 str r0, [sp, #0] - 10b6: 4668 mov r0, sp - 10b8: 8481 strh r1, [r0, #36] ; 0x24 - 10ba: 9807 ldr r0, [sp, #28] ; 0x1c - 10bc: 1c81 add r1, r0, #2 - 10be: 9107 str r1, [sp, #28] ; 0x1c - 10c0: 4669 mov r1, sp - 10c2: 8c89 ldrh r1, [r1, #36] ; 0x24 - 10c4: 466a mov r2, sp - 10c6: 8cd2 ldrh r2, [r2, #38] ; 0x26 - 10c8: 0212 lsl r2, r2, #8 - 10ca: 1889 add r1, r1, r2 - 10cc: 8001 strh r1, [r0, #0] - 10ce: 9804 ldr r0, [sp, #16] ; 0x10 - 10d0: 3002 add r0, #2 - 10d2: 9004 str r0, [sp, #16] ; 0x10 - 10d4: 9802 ldr r0, [sp, #8] - 10d6: 3001 add r0, #1 - 10d8: 9002 str r0, [sp, #8] - 10da: 9902 ldr r1, [sp, #8] - 10dc: 4668 mov r0, sp - 10de: 7e00 ldrb r0, [r0, #24] ; 0x18 - 10e0: 4281 cmp r1, r0 - 10e2: dbde blt 0x10a2 - 10e4: e04a b 0x117c - 10e6: 9804 ldr r0, [sp, #16] ; 0x10 - 10e8: 3002 add r0, #2 - 10ea: 9004 str r0, [sp, #16] ; 0x10 - 10ec: 9800 ldr r0, [sp, #0] - 10ee: 7801 ldrb r1, [r0, #0] - 10f0: 3001 add r0, #1 - 10f2: 9000 str r0, [sp, #0] - 10f4: 4668 mov r0, sp - 10f6: 8501 strh r1, [r0, #40] ; 0x28 - 10f8: 9800 ldr r0, [sp, #0] - 10fa: 7801 ldrb r1, [r0, #0] - 10fc: 3001 add r0, #1 - 10fe: 9000 str r0, [sp, #0] - 1100: 4668 mov r0, sp - 1102: 8541 strh r1, [r0, #42] ; 0x2a - 1104: 8d41 ldrh r1, [r0, #42] ; 0x2a - 1106: 8d00 ldrh r0, [r0, #40] ; 0x28 - 1108: 0200 lsl r0, r0, #8 - 110a: 1809 add r1, r1, r0 - 110c: 9801 ldr r0, [sp, #4] - 110e: 8081 strh r1, [r0, #4] - 1110: 9804 ldr r0, [sp, #16] ; 0x10 - 1112: 3002 add r0, #2 - 1114: 9004 str r0, [sp, #16] ; 0x10 - 1116: 9800 ldr r0, [sp, #0] - 1118: 7801 ldrb r1, [r0, #0] - 111a: 3001 add r0, #1 - 111c: 9000 str r0, [sp, #0] - 111e: 4668 mov r0, sp - 1120: 8581 strh r1, [r0, #44] ; 0x2c - 1122: 9800 ldr r0, [sp, #0] - 1124: 7801 ldrb r1, [r0, #0] - 1126: 3001 add r0, #1 - 1128: 9000 str r0, [sp, #0] - 112a: 4668 mov r0, sp - 112c: 85c1 strh r1, [r0, #46] ; 0x2e - 112e: 8dc1 ldrh r1, [r0, #46] ; 0x2e - 1130: 8d80 ldrh r0, [r0, #44] ; 0x2c - 1132: 0200 lsl r0, r0, #8 - 1134: 1808 add r0, r1, r0 - 1136: 9901 ldr r1, [sp, #4] - 1138: 80c8 strh r0, [r1, #6] - 113a: e01f b 0x117c - 113c: 2008 mov r0, #8 - 113e: e77e b 0x103e - 1140: 9801 ldr r0, [sp, #4] - 1142: 7801 ldrb r1, [r0, #0] - 1144: 290a cmp r1, #10 ; 0xa - 1146: d8f9 bhi 0x113c - 1148: a001 add r0, pc, #4 - 114a: 0089 lsl r1, r1, #2 - 114c: 5840 ldr r0, [r0, r1] - 114e: 4687 mov pc, r0 - 1150: 117c asr r4, r7, #5 - 1152: 0000 lsl r0, r0, #0 - 1154: 117c asr r4, r7, #5 - 1156: 0000 lsl r0, r0, #0 - 1158: 117c asr r4, r7, #5 - 115a: 0000 lsl r0, r0, #0 - 115c: 117c asr r4, r7, #5 - 115e: 0000 lsl r0, r0, #0 - 1160: 117c asr r4, r7, #5 - 1162: 0000 lsl r0, r0, #0 - 1164: 117c asr r4, r7, #5 - 1166: 0000 lsl r0, r0, #0 - 1168: 117c asr r4, r7, #5 - 116a: 0000 lsl r0, r0, #0 - 116c: 0fee lsr r6, r5, #31 - 116e: 0000 lsl r0, r0, #0 - 1170: 1042 asr r2, r0, #1 - 1172: 0000 lsl r0, r0, #0 - 1174: 117c asr r4, r7, #5 - 1176: 0000 lsl r0, r0, #0 - 1178: 10e6 asr r6, r4, #3 - 117a: 0000 lsl r0, r0, #0 - 117c: 9905 ldr r1, [sp, #20] ; 0x14 - 117e: 9804 ldr r0, [sp, #16] ; 0x10 - 1180: 4281 cmp r1, r0 - 1182: d001 beq 0x1188 - 1184: 2004 mov r0, #4 - 1186: 9003 str r0, [sp, #12] ; 0xc - 1188: 9803 ldr r0, [sp, #12] ; 0xc - 118a: b00c add sp, #48 ; 0x30 - 118c: 4770 bx lr - 118e: b089 sub sp, #36 ; 0x24 - 1190: 9101 str r1, [sp, #4] - 1192: 9000 str r0, [sp, #0] - 1194: 2000 mov r0, #0 - 1196: 9003 str r0, [sp, #12] ; 0xc - 1198: 9801 ldr r0, [sp, #4] - 119a: 1c41 add r1, r0, #1 - 119c: 9101 str r1, [sp, #4] - 119e: 9005 str r0, [sp, #20] ; 0x14 - 11a0: 9801 ldr r0, [sp, #4] - 11a2: 1c41 add r1, r0, #1 - 11a4: 9101 str r1, [sp, #4] - 11a6: 9900 ldr r1, [sp, #0] - 11a8: 7809 ldrb r1, [r1, #0] - 11aa: 7001 strb r1, [r0, #0] - 11ac: 4669 mov r1, sp - 11ae: 2001 mov r0, #1 - 11b0: 7408 strb r0, [r1, #16] ; 0x10 - 11b2: 9801 ldr r0, [sp, #4] - 11b4: 1c41 add r1, r0, #1 - 11b6: 9101 str r1, [sp, #4] - 11b8: 9900 ldr r1, [sp, #0] - 11ba: 7849 ldrb r1, [r1, #1] - 11bc: 7001 strb r1, [r0, #0] - 11be: 4669 mov r1, sp - 11c0: 4668 mov r0, sp - 11c2: 7c00 ldrb r0, [r0, #16] ; 0x10 - 11c4: 3001 add r0, #1 - 11c6: 7408 strb r0, [r1, #16] ; 0x10 - 11c8: e0e4 b 0x1394 - 11ca: 9800 ldr r0, [sp, #0] - 11cc: 7840 ldrb r0, [r0, #1] - 11ce: 2800 cmp r0, #0 - 11d0: d000 beq 0x11d4 - 11d2: e0fd b 0x13d0 - 11d4: 9801 ldr r0, [sp, #4] - 11d6: 1c41 add r1, r0, #1 - 11d8: 9101 str r1, [sp, #4] - 11da: 9900 ldr r1, [sp, #0] - 11dc: 7909 ldrb r1, [r1, #4] - 11de: 7001 strb r1, [r0, #0] - 11e0: 9801 ldr r0, [sp, #4] - 11e2: 1c41 add r1, r0, #1 - 11e4: 9101 str r1, [sp, #4] - 11e6: 9900 ldr r1, [sp, #0] - 11e8: 7949 ldrb r1, [r1, #5] - 11ea: 7001 strb r1, [r0, #0] - 11ec: 9801 ldr r0, [sp, #4] - 11ee: 1c41 add r1, r0, #1 - 11f0: 9101 str r1, [sp, #4] - 11f2: 9900 ldr r1, [sp, #0] - 11f4: 7989 ldrb r1, [r1, #6] - 11f6: 7001 strb r1, [r0, #0] - 11f8: 4668 mov r0, sp - 11fa: 7c00 ldrb r0, [r0, #16] ; 0x10 - 11fc: 3003 add r0, #3 - 11fe: 4669 mov r1, sp - 1200: 7408 strb r0, [r1, #16] ; 0x10 - 1202: e0e5 b 0x13d0 - 1204: 9800 ldr r0, [sp, #0] - 1206: 7840 ldrb r0, [r0, #1] - 1208: 2800 cmp r0, #0 - 120a: d000 beq 0x120e - 120c: e0e0 b 0x13d0 - 120e: 9801 ldr r0, [sp, #4] - 1210: 1c41 add r1, r0, #1 - 1212: 9101 str r1, [sp, #4] - 1214: 9900 ldr r1, [sp, #0] - 1216: 7909 ldrb r1, [r1, #4] - 1218: 7001 strb r1, [r0, #0] - 121a: 4668 mov r0, sp - 121c: 7c00 ldrb r0, [r0, #16] ; 0x10 - 121e: 3001 add r0, #1 - 1220: e7ed b 0x11fe - 1222: 9800 ldr r0, [sp, #0] - 1224: 7840 ldrb r0, [r0, #1] - 1226: 2800 cmp r0, #0 - 1228: d000 beq 0x122c - 122a: e0d1 b 0x13d0 - 122c: e7ef b 0x120e - 122e: 9800 ldr r0, [sp, #0] - 1230: 7840 ldrb r0, [r0, #1] - 1232: 2800 cmp r0, #0 - 1234: d000 beq 0x1238 - 1236: e0cb b 0x13d0 - 1238: e7e9 b 0x120e - 123a: 9800 ldr r0, [sp, #0] - 123c: 7840 ldrb r0, [r0, #1] - 123e: 2800 cmp r0, #0 - 1240: d000 beq 0x1244 - 1242: e0c5 b 0x13d0 - 1244: 4669 mov r1, sp - 1246: 9800 ldr r0, [sp, #0] - 1248: 8880 ldrh r0, [r0, #4] - 124a: 8408 strh r0, [r1, #32] ; 0x20 - 124c: 9801 ldr r0, [sp, #4] - 124e: 1c41 add r1, r0, #1 - 1250: 9101 str r1, [sp, #4] - 1252: 4669 mov r1, sp - 1254: 8c09 ldrh r1, [r1, #32] ; 0x20 - 1256: 0409 lsl r1, r1, #16 - 1258: 0e09 lsr r1, r1, #24 - 125a: 0209 lsl r1, r1, #8 - 125c: 1209 asr r1, r1, #8 - 125e: 7001 strb r1, [r0, #0] - 1260: 9801 ldr r0, [sp, #4] - 1262: 1c41 add r1, r0, #1 - 1264: 9101 str r1, [sp, #4] - 1266: 4669 mov r1, sp - 1268: 8c09 ldrh r1, [r1, #32] ; 0x20 - 126a: 0609 lsl r1, r1, #24 - 126c: 0e09 lsr r1, r1, #24 - 126e: 7001 strb r1, [r0, #0] - 1270: 4669 mov r1, sp - 1272: 9800 ldr r0, [sp, #0] - 1274: 88c0 ldrh r0, [r0, #6] - 1276: 8408 strh r0, [r1, #32] ; 0x20 - 1278: 9801 ldr r0, [sp, #4] - 127a: 1c41 add r1, r0, #1 - 127c: 9101 str r1, [sp, #4] - 127e: 4669 mov r1, sp - 1280: 8c09 ldrh r1, [r1, #32] ; 0x20 - 1282: 0409 lsl r1, r1, #16 - 1284: 0e09 lsr r1, r1, #24 - 1286: 0209 lsl r1, r1, #8 - 1288: 1209 asr r1, r1, #8 - 128a: 7001 strb r1, [r0, #0] - 128c: 9801 ldr r0, [sp, #4] - 128e: 1c41 add r1, r0, #1 - 1290: 9101 str r1, [sp, #4] - 1292: 4669 mov r1, sp - 1294: 8c09 ldrh r1, [r1, #32] ; 0x20 - 1296: 0609 lsl r1, r1, #24 - 1298: 0e09 lsr r1, r1, #24 - 129a: 7001 strb r1, [r0, #0] - 129c: 4668 mov r0, sp - 129e: 7c00 ldrb r0, [r0, #16] ; 0x10 - 12a0: 3004 add r0, #4 - 12a2: e7ac b 0x11fe - 12a4: 9800 ldr r0, [sp, #0] - 12a6: 7840 ldrb r0, [r0, #1] - 12a8: 2800 cmp r0, #0 - 12aa: d000 beq 0x12ae - 12ac: e090 b 0x13d0 - 12ae: e7ae b 0x120e - 12b0: 9800 ldr r0, [sp, #0] - 12b2: 7840 ldrb r0, [r0, #1] - 12b4: 2800 cmp r0, #0 - 12b6: d000 beq 0x12ba - 12b8: e08a b 0x13d0 - 12ba: 4669 mov r1, sp - 12bc: 4668 mov r0, sp - 12be: 7c00 ldrb r0, [r0, #16] ; 0x10 - 12c0: 3001 add r0, #1 - 12c2: 7408 strb r0, [r1, #16] ; 0x10 - 12c4: 4668 mov r0, sp - 12c6: 9900 ldr r1, [sp, #0] - 12c8: 7909 ldrb r1, [r1, #4] - 12ca: 7601 strb r1, [r0, #24] ; 0x18 - 12cc: 9801 ldr r0, [sp, #4] - 12ce: 1c41 add r1, r0, #1 - 12d0: 9101 str r1, [sp, #4] - 12d2: 4669 mov r1, sp - 12d4: 7e09 ldrb r1, [r1, #24] ; 0x18 - 12d6: 7001 strb r1, [r0, #0] - 12d8: 4668 mov r0, sp - 12da: 7e00 ldrb r0, [r0, #24] ; 0x18 - 12dc: 2840 cmp r0, #64 ; 0x40 - 12de: dd01 ble 0x12e4 - 12e0: 2004 mov r0, #4 - 12e2: e055 b 0x1390 - 12e4: 9800 ldr r0, [sp, #0] - 12e6: 3006 add r0, #6 - 12e8: 9007 str r0, [sp, #28] ; 0x1c - 12ea: 2000 mov r0, #0 - 12ec: 9002 str r0, [sp, #8] - 12ee: 9902 ldr r1, [sp, #8] - 12f0: 4668 mov r0, sp - 12f2: 7e00 ldrb r0, [r0, #24] ; 0x18 - 12f4: 4281 cmp r1, r0 - 12f6: da6b bge 0x13d0 - 12f8: 9801 ldr r0, [sp, #4] - 12fa: 1c41 add r1, r0, #1 - 12fc: 9101 str r1, [sp, #4] - 12fe: 9907 ldr r1, [sp, #28] ; 0x1c - 1300: 8809 ldrh r1, [r1, #0] - 1302: 0409 lsl r1, r1, #16 - 1304: 0e09 lsr r1, r1, #24 - 1306: 0209 lsl r1, r1, #8 - 1308: 1209 asr r1, r1, #8 - 130a: 7001 strb r1, [r0, #0] - 130c: 9807 ldr r0, [sp, #28] ; 0x1c - 130e: 8801 ldrh r1, [r0, #0] - 1310: 3002 add r0, #2 - 1312: 9007 str r0, [sp, #28] ; 0x1c - 1314: 0608 lsl r0, r1, #24 - 1316: 0e01 lsr r1, r0, #24 - 1318: 9801 ldr r0, [sp, #4] - 131a: 1c42 add r2, r0, #1 - 131c: 9201 str r2, [sp, #4] - 131e: 7001 strb r1, [r0, #0] - 1320: 4669 mov r1, sp - 1322: 4668 mov r0, sp - 1324: 7c00 ldrb r0, [r0, #16] ; 0x10 - 1326: 3002 add r0, #2 - 1328: 7408 strb r0, [r1, #16] ; 0x10 - 132a: 9802 ldr r0, [sp, #8] - 132c: 3001 add r0, #1 - 132e: 9002 str r0, [sp, #8] - 1330: 9902 ldr r1, [sp, #8] - 1332: 4668 mov r0, sp - 1334: 7e00 ldrb r0, [r0, #24] ; 0x18 - 1336: 4281 cmp r1, r0 - 1338: dbde blt 0x12f8 - 133a: e049 b 0x13d0 - 133c: 9800 ldr r0, [sp, #0] - 133e: 7840 ldrb r0, [r0, #1] - 1340: 2800 cmp r0, #0 - 1342: d145 bne 0x13d0 - 1344: 4669 mov r1, sp - 1346: 9800 ldr r0, [sp, #0] - 1348: 8880 ldrh r0, [r0, #4] - 134a: 8408 strh r0, [r1, #32] ; 0x20 - 134c: 9801 ldr r0, [sp, #4] - 134e: 1c41 add r1, r0, #1 - 1350: 9101 str r1, [sp, #4] - 1352: 4669 mov r1, sp - 1354: 8c09 ldrh r1, [r1, #32] ; 0x20 - 1356: 0409 lsl r1, r1, #16 - 1358: 0e09 lsr r1, r1, #24 - 135a: 0209 lsl r1, r1, #8 - 135c: 1209 asr r1, r1, #8 - 135e: 7001 strb r1, [r0, #0] - 1360: 9801 ldr r0, [sp, #4] - 1362: 1c41 add r1, r0, #1 - 1364: 9101 str r1, [sp, #4] - 1366: 4669 mov r1, sp - 1368: 8c09 ldrh r1, [r1, #32] ; 0x20 - 136a: 0609 lsl r1, r1, #24 - 136c: 0e09 lsr r1, r1, #24 - 136e: 7001 strb r1, [r0, #0] - 1370: 4668 mov r0, sp - 1372: 9900 ldr r1, [sp, #0] - 1374: 88c9 ldrh r1, [r1, #6] - 1376: 8401 strh r1, [r0, #32] ; 0x20 - 1378: 9901 ldr r1, [sp, #4] - 137a: 1c48 add r0, r1, #1 - 137c: 9001 str r0, [sp, #4] - 137e: 4668 mov r0, sp - 1380: 8c00 ldrh r0, [r0, #32] ; 0x20 - 1382: 0400 lsl r0, r0, #16 - 1384: 0e00 lsr r0, r0, #24 - 1386: 0200 lsl r0, r0, #8 - 1388: 1200 asr r0, r0, #8 - 138a: 7008 strb r0, [r1, #0] - 138c: e77e b 0x128c - 138e: 2008 mov r0, #8 - 1390: 9003 str r0, [sp, #12] ; 0xc - 1392: e01d b 0x13d0 - 1394: 9800 ldr r0, [sp, #0] - 1396: 7800 ldrb r0, [r0, #0] - 1398: 280a cmp r0, #10 ; 0xa - 139a: d8f8 bhi 0x138e - 139c: a101 add r1, pc, #4 - 139e: 0080 lsl r0, r0, #2 - 13a0: 5808 ldr r0, [r1, r0] - 13a2: 4687 mov pc, r0 - 13a4: 11ca asr r2, r1, #7 - 13a6: 0000 lsl r0, r0, #0 - 13a8: 1204 asr r4, r0, #8 - 13aa: 0000 lsl r0, r0, #0 - 13ac: 1222 asr r2, r4, #8 - 13ae: 0000 lsl r0, r0, #0 - 13b0: 122e asr r6, r5, #8 - 13b2: 0000 lsl r0, r0, #0 - 13b4: 13d0 asr r0, r2, #15 - 13b6: 0000 lsl r0, r0, #0 - 13b8: 123a asr r2, r7, #8 - 13ba: 0000 lsl r0, r0, #0 - 13bc: 12a4 asr r4, r4, #10 - 13be: 0000 lsl r0, r0, #0 - 13c0: 12b0 asr r0, r6, #10 - 13c2: 0000 lsl r0, r0, #0 - 13c4: 13d0 asr r0, r2, #15 - 13c6: 0000 lsl r0, r0, #0 - 13c8: 133c asr r4, r7, #12 - 13ca: 0000 lsl r0, r0, #0 - 13cc: 13d0 asr r0, r2, #15 - 13ce: 0000 lsl r0, r0, #0 - 13d0: 9805 ldr r0, [sp, #20] ; 0x14 - 13d2: 4669 mov r1, sp - 13d4: 7c09 ldrb r1, [r1, #16] ; 0x10 - 13d6: 7001 strb r1, [r0, #0] - 13d8: 9803 ldr r0, [sp, #12] ; 0xc - 13da: b009 add sp, #36 ; 0x24 - 13dc: 4770 bx lr - 13de: 0000 lsl r0, r0, #0 - 13e0: b500 push {lr} - 13e2: b083 sub sp, #12 ; 0xc - 13e4: 9101 str r1, [sp, #4] - 13e6: 4669 mov r1, sp - 13e8: 7008 strb r0, [r1, #0] - 13ea: 2000 mov r0, #0 - 13ec: 9002 str r0, [sp, #8] - 13ee: e073 b 0x14d8 - 13f0: 4668 mov r0, sp - 13f2: 7800 ldrb r0, [r0, #0] - 13f4: 28aa cmp r0, #170 ; 0xaa - 13f6: d106 bne 0x1406 - 13f8: 4965 ldr r1, =0x83ff10 ; via 0x1590 - 13fa: 4865 ldr r0, =0x83ff10 ; via 0x1590 - 13fc: 6800 ldr r0, [r0, #0] - 13fe: 3001 add r0, #1 - 1400: 07c0 lsl r0, r0, #31 - 1402: 0fc0 lsr r0, r0, #31 - 1404: e013 b 0x142e - 1406: 4862 ldr r0, =0x83ff10 ; via 0x1590 - 1408: 6800 ldr r0, [r0, #0] - 140a: 2800 cmp r0, #0 - 140c: d06b beq 0x14e6 - 140e: 4961 ldr r1, =0x83ff04 ; via 0x1594 - 1410: 9801 ldr r0, [sp, #4] - 1412: 3001 add r0, #1 - 1414: 6008 str r0, [r1, #0] - 1416: 4960 ldr r1, =0x83ff0e ; via 0x1598 - 1418: 2000 mov r0, #0 - 141a: 7008 strb r0, [r1, #0] - 141c: 495f ldr r1, =0x83ff0c ; via 0x159c - 141e: 4668 mov r0, sp - 1420: 7800 ldrb r0, [r0, #0] - 1422: 8008 strh r0, [r1, #0] - 1424: 495a ldr r1, =0x83ff10 ; via 0x1590 - 1426: 2000 mov r0, #0 - 1428: 6008 str r0, [r1, #0] - 142a: 495d ldr r1, =0x83ff08 ; via 0x15a0 - 142c: 2001 mov r0, #1 - 142e: 6008 str r0, [r1, #0] - 1430: e059 b 0x14e6 - 1432: 4668 mov r0, sp - 1434: 7800 ldrb r0, [r0, #0] - 1436: 28aa cmp r0, #170 ; 0xaa - 1438: d113 bne 0x1462 - 143a: 4855 ldr r0, =0x83ff10 ; via 0x1590 - 143c: 6800 ldr r0, [r0, #0] - 143e: 2800 cmp r0, #0 - 1440: d00b beq 0x145a - 1442: 4954 ldr r1, =0x83ff04 ; via 0x1594 - 1444: 6808 ldr r0, [r1, #0] - 1446: 1c42 add r2, r0, #1 - 1448: 600a str r2, [r1, #0] - 144a: 4669 mov r1, sp - 144c: 7809 ldrb r1, [r1, #0] - 144e: 7001 strb r1, [r0, #0] - 1450: 4951 ldr r1, =0x83ff0e ; via 0x1598 - 1452: 7808 ldrb r0, [r1, #0] - 1454: 3001 add r0, #1 - 1456: 7008 strb r0, [r1, #0] - 1458: e013 b 0x1482 - 145a: 2101 mov r1, #1 - 145c: 484c ldr r0, =0x83ff10 ; via 0x1590 - 145e: 6001 str r1, [r0, #0] - 1460: e01c b 0x149c - 1462: 484b ldr r0, =0x83ff10 ; via 0x1590 - 1464: 6800 ldr r0, [r0, #0] - 1466: 2800 cmp r0, #0 - 1468: d00d beq 0x1486 - 146a: 494a ldr r1, =0x83ff04 ; via 0x1594 - 146c: 9801 ldr r0, [sp, #4] - 146e: 3001 add r0, #1 - 1470: 6008 str r0, [r1, #0] - 1472: 4849 ldr r0, =0x83ff0e ; via 0x1598 - 1474: 2100 mov r1, #0 - 1476: 7001 strb r1, [r0, #0] - 1478: 4948 ldr r1, =0x83ff0c ; via 0x159c - 147a: 4668 mov r0, sp - 147c: 7800 ldrb r0, [r0, #0] - 147e: 3001 add r0, #1 - 1480: 8008 strh r0, [r1, #0] - 1482: 2100 mov r1, #0 - 1484: e7ea b 0x145c - 1486: 4843 ldr r0, =0x83ff04 ; via 0x1594 - 1488: 6801 ldr r1, [r0, #0] - 148a: 1c4a add r2, r1, #1 - 148c: 6002 str r2, [r0, #0] - 148e: 4668 mov r0, sp - 1490: 7800 ldrb r0, [r0, #0] - 1492: 7008 strb r0, [r1, #0] - 1494: 4940 ldr r1, =0x83ff0e ; via 0x1598 - 1496: 7808 ldrb r0, [r1, #0] - 1498: 3001 add r0, #1 - 149a: 7008 strb r0, [r1, #0] - 149c: 483f ldr r0, =0x83ff0c ; via 0x159c - 149e: 8801 ldrh r1, [r0, #0] - 14a0: 3901 sub r1, #1 - 14a2: 8001 strh r1, [r0, #0] - 14a4: 483d ldr r0, =0x83ff0c ; via 0x159c - 14a6: 8800 ldrh r0, [r0, #0] - 14a8: 2800 cmp r0, #0 - 14aa: d11c bne 0x14e6 - 14ac: 9901 ldr r1, [sp, #4] - 14ae: 483a ldr r0, =0x83ff0e ; via 0x1598 - 14b0: 7800 ldrb r0, [r0, #0] - 14b2: 7008 strb r0, [r1, #0] - 14b4: 2001 mov r0, #1 - 14b6: 9002 str r0, [sp, #8] - 14b8: 4839 ldr r0, =0x83ff08 ; via 0x15a0 - 14ba: 2100 mov r1, #0 - 14bc: 6001 str r1, [r0, #0] - 14be: 4834 ldr r0, =0x83ff10 ; via 0x1590 - 14c0: 6001 str r1, [r0, #0] - 14c2: 9801 ldr r0, [sp, #4] - 14c4: 7800 ldrb r0, [r0, #0] - 14c6: 2801 cmp r0, #1 - 14c8: d10d bne 0x14e6 - 14ca: 9801 ldr r0, [sp, #4] - 14cc: 7840 ldrb r0, [r0, #1] - 14ce: 28dd cmp r0, #221 ; 0xdd - 14d0: d109 bne 0x14e6 - 14d2: f7ff fb27 bl 0xb24 - 14d6: e006 b 0x14e6 - 14d8: 4831 ldr r0, =0x83ff08 ; via 0x15a0 - 14da: 6800 ldr r0, [r0, #0] - 14dc: 2800 cmp r0, #0 - 14de: d087 beq 0x13f0 - 14e0: 3801 sub r0, #1 - 14e2: 2800 cmp r0, #0 - 14e4: d0a5 beq 0x1432 - 14e6: 9802 ldr r0, [sp, #8] - 14e8: b003 add sp, #12 ; 0xc - 14ea: bd00 pop {pc} - 14ec: b086 sub sp, #24 ; 0x18 - 14ee: 9202 str r2, [sp, #8] - 14f0: 9101 str r1, [sp, #4] - 14f2: 9000 str r0, [sp, #0] - 14f4: 9801 ldr r0, [sp, #4] - 14f6: 3001 add r0, #1 - 14f8: 9004 str r0, [sp, #16] ; 0x10 - 14fa: 9800 ldr r0, [sp, #0] - 14fc: 1c41 add r1, r0, #1 - 14fe: 9100 str r1, [sp, #0] - 1500: 9005 str r0, [sp, #20] ; 0x14 - 1502: 9901 ldr r1, [sp, #4] - 1504: 20aa mov r0, #170 ; 0xaa - 1506: 7008 strb r0, [r1, #0] - 1508: 9801 ldr r0, [sp, #4] - 150a: 3002 add r0, #2 - 150c: 9001 str r0, [sp, #4] - 150e: 9902 ldr r1, [sp, #8] - 1510: 2000 mov r0, #0 - 1512: 8008 strh r0, [r1, #0] - 1514: 4669 mov r1, sp - 1516: 8188 strh r0, [r1, #12] ; 0xc - 1518: 4668 mov r0, sp - 151a: 8981 ldrh r1, [r0, #12] ; 0xc - 151c: 9805 ldr r0, [sp, #20] ; 0x14 - 151e: 7800 ldrb r0, [r0, #0] - 1520: 4281 cmp r1, r0 - 1522: da23 bge 0x156c - 1524: 9800 ldr r0, [sp, #0] - 1526: 7800 ldrb r0, [r0, #0] - 1528: 28aa cmp r0, #170 ; 0xaa - 152a: d108 bne 0x153e - 152c: 9801 ldr r0, [sp, #4] - 152e: 1c41 add r1, r0, #1 - 1530: 9101 str r1, [sp, #4] - 1532: 21aa mov r1, #170 ; 0xaa - 1534: 7001 strb r1, [r0, #0] - 1536: 9902 ldr r1, [sp, #8] - 1538: 8808 ldrh r0, [r1, #0] - 153a: 3001 add r0, #1 - 153c: 8008 strh r0, [r1, #0] - 153e: 9800 ldr r0, [sp, #0] - 1540: 7801 ldrb r1, [r0, #0] - 1542: 3001 add r0, #1 - 1544: 9000 str r0, [sp, #0] - 1546: 9801 ldr r0, [sp, #4] - 1548: 1c42 add r2, r0, #1 - 154a: 9201 str r2, [sp, #4] - 154c: 7001 strb r1, [r0, #0] - 154e: 9902 ldr r1, [sp, #8] - 1550: 8808 ldrh r0, [r1, #0] - 1552: 3001 add r0, #1 - 1554: 8008 strh r0, [r1, #0] - 1556: 4669 mov r1, sp - 1558: 4668 mov r0, sp - 155a: 8980 ldrh r0, [r0, #12] ; 0xc - 155c: 3001 add r0, #1 - 155e: 8188 strh r0, [r1, #12] ; 0xc - 1560: 4668 mov r0, sp - 1562: 8980 ldrh r0, [r0, #12] ; 0xc - 1564: 9905 ldr r1, [sp, #20] ; 0x14 - 1566: 7809 ldrb r1, [r1, #0] - 1568: 4288 cmp r0, r1 - 156a: dbdb blt 0x1524 - 156c: 9904 ldr r1, [sp, #16] ; 0x10 - 156e: 9802 ldr r0, [sp, #8] - 1570: 7800 ldrb r0, [r0, #0] - 1572: 7008 strb r0, [r1, #0] - 1574: 9902 ldr r1, [sp, #8] - 1576: 8808 ldrh r0, [r1, #0] - 1578: 3002 add r0, #2 - 157a: 8008 strh r0, [r1, #0] - 157c: b006 add sp, #24 ; 0x18 - 157e: 4770 bx lr - 1580: 4907 ldr r1, =0x83ff08 ; via 0x15a0 - 1582: 2000 mov r0, #0 - 1584: 6008 str r0, [r1, #0] - 1586: 4802 ldr r0, =0x83ff10 ; via 0x1590 - 1588: 2100 mov r1, #0 - 158a: 6001 str r1, [r0, #0] - 158c: 4770 bx lr - 158e: 46c0 nop (mov r8, r8) - 1590: ff10 - 1592: 0083 lsl r3, r0, #2 - 1594: ff04 - 1596: 0083 lsl r3, r0, #2 - 1598: ff0e - 159a: 0083 lsl r3, r0, #2 - 159c: ff0c - 159e: 0083 lsl r3, r0, #2 - 15a0: ff08 - 15a2: 0083 lsl r3, r0, #2 - 15a4: b082 sub sp, #8 - 15a6: 9101 str r1, [sp, #4] - 15a8: 9000 str r0, [sp, #0] - 15aa: 9901 ldr r1, [sp, #4] - 15ac: 2000 mov r0, #0 - 15ae: 7008 strb r0, [r1, #0] - 15b0: 9801 ldr r0, [sp, #4] - 15b2: 2100 mov r1, #0 - 15b4: 7041 strb r1, [r0, #1] - 15b6: 9801 ldr r0, [sp, #4] - 15b8: 2102 mov r1, #2 - 15ba: 7101 strb r1, [r0, #4] - 15bc: 9801 ldr r0, [sp, #4] - 15be: 2106 mov r1, #6 - 15c0: 7141 strb r1, [r0, #5] - 15c2: 9801 ldr r0, [sp, #4] - 15c4: 2102 mov r1, #2 - 15c6: 7181 strb r1, [r0, #6] - 15c8: b002 add sp, #8 - 15ca: 4770 bx lr - 15cc: b500 push {lr} - 15ce: b084 sub sp, #16 ; 0x10 - 15d0: 466b mov r3, sp - 15d2: 721a strb r2, [r3, #8] - 15d4: 9101 str r1, [sp, #4] - 15d6: 9000 str r0, [sp, #0] - 15d8: 9901 ldr r1, [sp, #4] - 15da: 2009 mov r0, #9 - 15dc: 7008 strb r0, [r1, #0] - 15de: e015 b 0x160c - 15e0: 9801 ldr r0, [sp, #4] - 15e2: 2100 mov r1, #0 - 15e4: 7041 strb r1, [r0, #1] - 15e6: 9901 ldr r1, [sp, #4] - 15e8: 4668 mov r0, sp - 15ea: 8940 ldrh r0, [r0, #10] ; 0xa - 15ec: 8088 strh r0, [r1, #4] - 15ee: 9901 ldr r1, [sp, #4] - 15f0: 4668 mov r0, sp - 15f2: 8980 ldrh r0, [r0, #12] ; 0xc - 15f4: 80c8 strh r0, [r1, #6] - 15f6: e01e b 0x1636 - 15f8: 2101 mov r1, #1 - 15fa: e004 b 0x1606 - 15fc: 2103 mov r1, #3 - 15fe: e002 b 0x1606 - 1600: 2105 mov r1, #5 - 1602: e000 b 0x1606 - 1604: 2106 mov r1, #6 - 1606: 9801 ldr r0, [sp, #4] - 1608: 7041 strb r1, [r0, #1] - 160a: e014 b 0x1636 - 160c: 200a mov r0, #10 ; 0xa - 160e: 4468 add r0, sp - 1610: a903 add r1, sp, #12 ; 0xc - 1612: 466a mov r2, sp - 1614: 7a12 ldrb r2, [r2, #8] - 1616: f000 fb71 bl 0x1cfc - 161a: 2800 cmp r0, #0 - 161c: d0e0 beq 0x15e0 - 161e: 3801 sub r0, #1 - 1620: 2800 cmp r0, #0 - 1622: d0e9 beq 0x15f8 - 1624: 3801 sub r0, #1 - 1626: 2800 cmp r0, #0 - 1628: d0e8 beq 0x15fc - 162a: 3801 sub r0, #1 - 162c: 2800 cmp r0, #0 - 162e: d0e7 beq 0x1600 - 1630: 3801 sub r0, #1 - 1632: 2800 cmp r0, #0 - 1634: d0e6 beq 0x1604 - 1636: b004 add sp, #16 ; 0x10 - 1638: bd00 pop {pc} - 163a: b084 sub sp, #16 ; 0x10 - 163c: 9101 str r1, [sp, #4] - 163e: 9000 str r0, [sp, #0] - 1640: 9901 ldr r1, [sp, #4] - 1642: 200a mov r0, #10 ; 0xa - 1644: 7008 strb r0, [r1, #0] - 1646: 9801 ldr r0, [sp, #4] - 1648: 2100 mov r1, #0 - 164a: 7041 strb r1, [r0, #1] - 164c: 4669 mov r1, sp - 164e: 9800 ldr r0, [sp, #0] - 1650: 8880 ldrh r0, [r0, #4] - 1652: 8108 strh r0, [r1, #8] - 1654: 9800 ldr r0, [sp, #0] - 1656: 88c0 ldrh r0, [r0, #6] - 1658: 8148 strh r0, [r1, #10] ; 0xa - 165a: 4668 mov r0, sp - 165c: 8941 ldrh r1, [r0, #10] ; 0xa - 165e: 8900 ldrh r0, [r0, #8] - 1660: 0400 lsl r0, r0, #16 - 1662: 1808 add r0, r1, r0 - 1664: 9003 str r0, [sp, #12] ; 0xc - 1666: 9803 ldr r0, [sp, #12] ; 0xc - 1668: b004 add sp, #16 ; 0x10 - 166a: 4770 bx lr - 166c: b085 sub sp, #20 ; 0x14 - 166e: 9303 str r3, [sp, #12] ; 0xc - 1670: 9202 str r2, [sp, #8] - 1672: 9101 str r1, [sp, #4] - 1674: 4669 mov r1, sp - 1676: 7008 strb r0, [r1, #0] - 1678: 48ea ldr r0, =0x83ff19 ; via 0x1a24 - 167a: 7809 ldrb r1, [r1, #0] - 167c: 7802 ldrb r2, [r0, #0] - 167e: 1889 add r1, r1, r2 - 1680: 7001 strb r1, [r0, #0] - 1682: 48e9 ldr r0, =0x83ff1a ; via 0x1a28 - 1684: 7800 ldrb r0, [r0, #0] - 1686: 2800 cmp r0, #0 - 1688: d00e beq 0x16a8 - 168a: 48e8 ldr r0, =0x83ff26 ; via 0x1a2c - 168c: 4669 mov r1, sp - 168e: 780a ldrb r2, [r1, #0] - 1690: 8801 ldrh r1, [r0, #0] - 1692: 1851 add r1, r2, r1 - 1694: 8001 strh r1, [r0, #0] - 1696: 9903 ldr r1, [sp, #12] ; 0xc - 1698: 48e4 ldr r0, =0x83ff26 ; via 0x1a2c - 169a: 8800 ldrh r0, [r0, #0] - 169c: 8008 strh r0, [r1, #0] - 169e: 9801 ldr r0, [sp, #4] - 16a0: 2100 mov r1, #0 - 16a2: 6001 str r1, [r0, #0] - 16a4: 2000 mov r0, #0 - 16a6: e009 b 0x16bc - 16a8: 9902 ldr r1, [sp, #8] - 16aa: 6808 ldr r0, [r1, #0] - 16ac: 3002 add r0, #2 - 16ae: 6008 str r0, [r1, #0] - 16b0: 49de ldr r1, =0x83ff26 ; via 0x1a2c - 16b2: 4668 mov r0, sp - 16b4: 7800 ldrb r0, [r0, #0] - 16b6: 0200 lsl r0, r0, #8 - 16b8: 8008 strh r0, [r1, #0] - 16ba: 2001 mov r0, #1 - 16bc: 9004 str r0, [sp, #16] ; 0x10 - 16be: 2001 mov r0, #1 - 16c0: 49d9 ldr r1, =0x83ff1a ; via 0x1a28 - 16c2: 7809 ldrb r1, [r1, #0] - 16c4: 4388 bic r0, r1 - 16c6: 49d8 ldr r1, =0x83ff1a ; via 0x1a28 - 16c8: 7008 strb r0, [r1, #0] - 16ca: 48d9 ldr r0, =0x83ff24 ; via 0x1a30 - 16cc: 7801 ldrb r1, [r0, #0] - 16ce: 3901 sub r1, #1 - 16d0: 7001 strb r1, [r0, #0] - 16d2: 48d7 ldr r0, =0x83ff24 ; via 0x1a30 - 16d4: 7800 ldrb r0, [r0, #0] - 16d6: 2800 cmp r0, #0 - 16d8: d102 bne 0x16e0 - 16da: 48d6 ldr r0, =0x83ff20 ; via 0x1a34 - 16dc: 2106 mov r1, #6 - 16de: 6001 str r1, [r0, #0] - 16e0: 9804 ldr r0, [sp, #16] ; 0x10 - 16e2: b005 add sp, #20 ; 0x14 - 16e4: 46f7 mov pc, lr - 16e6: b083 sub sp, #12 ; 0xc - 16e8: 9101 str r1, [sp, #4] - 16ea: 4669 mov r1, sp - 16ec: 7008 strb r0, [r1, #0] - 16ee: 2001 mov r0, #1 - 16f0: 9002 str r0, [sp, #8] - 16f2: 48d1 ldr r0, =0x83ff1b ; via 0x1a38 - 16f4: 7800 ldrb r0, [r0, #0] - 16f6: 2800 cmp r0, #0 - 16f8: d10a bne 0x1710 - 16fa: 4668 mov r0, sp - 16fc: 7800 ldrb r0, [r0, #0] - 16fe: 2853 cmp r0, #83 ; 0x53 - 1700: d102 bne 0x1708 - 1702: 48cd ldr r0, =0x83ff1b ; via 0x1a38 - 1704: 2101 mov r1, #1 - 1706: e01a b 0x173e - 1708: 2101 mov r1, #1 - 170a: 9801 ldr r0, [sp, #4] - 170c: 6001 str r1, [r0, #0] - 170e: e03b b 0x1788 - 1710: 49c9 ldr r1, =0x83ff1b ; via 0x1a38 - 1712: 2000 mov r0, #0 - 1714: 7008 strb r0, [r1, #0] - 1716: 4668 mov r0, sp - 1718: 7800 ldrb r0, [r0, #0] - 171a: 2830 cmp r0, #48 ; 0x30 - 171c: d111 bne 0x1742 - 171e: 48c7 ldr r0, =0x83ff18 ; via 0x1a3c - 1720: 7800 ldrb r0, [r0, #0] - 1722: 2800 cmp r0, #0 - 1724: d006 beq 0x1734 - 1726: 9901 ldr r1, [sp, #4] - 1728: 2001 mov r0, #1 - 172a: 6008 str r0, [r1, #0] - 172c: 49c3 ldr r1, =0x83ff18 ; via 0x1a3c - 172e: 2000 mov r0, #0 - 1730: 7008 strb r0, [r1, #0] - 1732: e02a b 0x178a - 1734: 48bf ldr r0, =0x83ff20 ; via 0x1a34 - 1736: 2102 mov r1, #2 - 1738: 6001 str r1, [r0, #0] - 173a: 48ef ldr r0, =0x83ff1c ; via 0x1af8 - 173c: 2100 mov r1, #0 - 173e: 7001 strb r1, [r0, #0] - 1740: e024 b 0x178c - 1742: 4668 mov r0, sp - 1744: 7800 ldrb r0, [r0, #0] - 1746: 2833 cmp r0, #51 ; 0x33 - 1748: d105 bne 0x1756 - 174a: 48bc ldr r0, =0x83ff18 ; via 0x1a3c - 174c: 7800 ldrb r0, [r0, #0] - 174e: 2800 cmp r0, #0 - 1750: d0da beq 0x1708 - 1752: 2004 mov r0, #4 - 1754: e00c b 0x1770 - 1756: 4668 mov r0, sp - 1758: 7800 ldrb r0, [r0, #0] - 175a: 2837 cmp r0, #55 ; 0x37 - 175c: d10e bne 0x177c - 175e: 48b7 ldr r0, =0x83ff18 ; via 0x1a3c - 1760: 7800 ldrb r0, [r0, #0] - 1762: 2800 cmp r0, #0 - 1764: d103 bne 0x176e - 1766: 9901 ldr r1, [sp, #4] - 1768: 2001 mov r0, #1 - 176a: 6008 str r0, [r1, #0] - 176c: e00c b 0x1788 - 176e: 2003 mov r0, #3 - 1770: 49b0 ldr r1, =0x83ff20 ; via 0x1a34 - 1772: 6008 str r0, [r1, #0] - 1774: 2000 mov r0, #0 - 1776: 49e0 ldr r1, =0x83ff1c ; via 0x1af8 - 1778: 7008 strb r0, [r1, #0] - 177a: e007 b 0x178c - 177c: 9901 ldr r1, [sp, #4] - 177e: 2001 mov r0, #1 - 1780: 6008 str r0, [r1, #0] - 1782: 48ae ldr r0, =0x83ff18 ; via 0x1a3c - 1784: 2100 mov r1, #0 - 1786: 7001 strb r1, [r0, #0] - 1788: 2000 mov r0, #0 - 178a: 9002 str r0, [sp, #8] - 178c: 9802 ldr r0, [sp, #8] - 178e: b003 add sp, #12 ; 0xc - 1790: 46f7 mov pc, lr - 1792: b083 sub sp, #12 ; 0xc - 1794: 9101 str r1, [sp, #4] - 1796: 4669 mov r1, sp - 1798: 7008 strb r0, [r1, #0] - 179a: 2001 mov r0, #1 - 179c: 9002 str r0, [sp, #8] - 179e: 49d7 ldr r1, =0x830 ; via 0x1afc - 17a0: 48d5 ldr r0, =0x83ff1c ; via 0x1af8 - 17a2: 7800 ldrb r0, [r0, #0] - 17a4: 0080 lsl r0, r0, #2 - 17a6: 5808 ldr r0, [r1, r0] - 17a8: 4669 mov r1, sp - 17aa: 7809 ldrb r1, [r1, #0] - 17ac: 4281 cmp r1, r0 - 17ae: d10d bne 0x17cc - 17b0: 49d1 ldr r1, =0x83ff1c ; via 0x1af8 - 17b2: 7808 ldrb r0, [r1, #0] - 17b4: 3001 add r0, #1 - 17b6: 7008 strb r0, [r1, #0] - 17b8: 48cf ldr r0, =0x83ff1c ; via 0x1af8 - 17ba: 7800 ldrb r0, [r0, #0] - 17bc: 2807 cmp r0, #7 - 17be: d10d bne 0x17dc - 17c0: 489c ldr r0, =0x83ff20 ; via 0x1a34 - 17c2: 2101 mov r1, #1 - 17c4: 6001 str r1, [r0, #0] - 17c6: 489d ldr r0, =0x83ff18 ; via 0x1a3c - 17c8: 7001 strb r1, [r0, #0] - 17ca: e007 b 0x17dc - 17cc: 9801 ldr r0, [sp, #4] - 17ce: 2101 mov r1, #1 - 17d0: 6001 str r1, [r0, #0] - 17d2: 4998 ldr r1, =0x83ff20 ; via 0x1a34 - 17d4: 2001 mov r0, #1 - 17d6: 6008 str r0, [r1, #0] - 17d8: 2000 mov r0, #0 - 17da: 9002 str r0, [sp, #8] - 17dc: 9802 ldr r0, [sp, #8] - 17de: b003 add sp, #12 ; 0xc - 17e0: 46f7 mov pc, lr - 17e2: b083 sub sp, #12 ; 0xc - 17e4: 9101 str r1, [sp, #4] - 17e6: 4669 mov r1, sp - 17e8: 7008 strb r0, [r1, #0] - 17ea: 2001 mov r0, #1 - 17ec: 9002 str r0, [sp, #8] - 17ee: 49c4 ldr r1, =0x84c ; via 0x1b00 - 17f0: 48c1 ldr r0, =0x83ff1c ; via 0x1af8 - 17f2: 7800 ldrb r0, [r0, #0] - 17f4: 0080 lsl r0, r0, #2 - 17f6: 5808 ldr r0, [r1, r0] - 17f8: 4669 mov r1, sp - 17fa: 7809 ldrb r1, [r1, #0] - 17fc: 4281 cmp r1, r0 - 17fe: d112 bne 0x1826 - 1800: 49bd ldr r1, =0x83ff1c ; via 0x1af8 - 1802: 7808 ldrb r0, [r1, #0] - 1804: 3001 add r0, #1 - 1806: 7008 strb r0, [r1, #0] - 1808: 48bb ldr r0, =0x83ff1c ; via 0x1af8 - 180a: 7800 ldrb r0, [r0, #0] - 180c: 2806 cmp r0, #6 - 180e: d114 bne 0x183a - 1810: 9801 ldr r0, [sp, #4] - 1812: 2102 mov r1, #2 - 1814: 6001 str r1, [r0, #0] - 1816: 4887 ldr r0, =0x83ff20 ; via 0x1a34 - 1818: 2101 mov r1, #1 - 181a: 6001 str r1, [r0, #0] - 181c: 4887 ldr r0, =0x83ff18 ; via 0x1a3c - 181e: 2100 mov r1, #0 - 1820: 7001 strb r1, [r0, #0] - 1822: 2000 mov r0, #0 - 1824: e008 b 0x1838 - 1826: 9801 ldr r0, [sp, #4] - 1828: 2101 mov r1, #1 - 182a: 6001 str r1, [r0, #0] - 182c: 4981 ldr r1, =0x83ff20 ; via 0x1a34 - 182e: 2001 mov r0, #1 - 1830: 6008 str r0, [r1, #0] - 1832: 4982 ldr r1, =0x83ff18 ; via 0x1a3c - 1834: 2000 mov r0, #0 - 1836: 7008 strb r0, [r1, #0] - 1838: 9002 str r0, [sp, #8] - 183a: 9802 ldr r0, [sp, #8] - 183c: b003 add sp, #12 ; 0xc - 183e: 46f7 mov pc, lr - 1840: b081 sub sp, #4 - 1842: 4669 mov r1, sp - 1844: 7008 strb r0, [r1, #0] - 1846: 497a ldr r1, =0x83ff24 ; via 0x1a30 - 1848: 4668 mov r0, sp - 184a: 7800 ldrb r0, [r0, #0] - 184c: 3801 sub r0, #1 - 184e: 7008 strb r0, [r1, #0] - 1850: 4874 ldr r0, =0x83ff19 ; via 0x1a24 - 1852: 4669 mov r1, sp - 1854: 7809 ldrb r1, [r1, #0] - 1856: 7001 strb r1, [r0, #0] - 1858: 48a7 ldr r0, =0x83ff1c ; via 0x1af8 - 185a: 2100 mov r1, #0 - 185c: 7001 strb r1, [r0, #0] - 185e: 48e3 ldr r0, =0x83ff14 ; via 0x1bec - 1860: 6001 str r1, [r0, #0] - 1862: 4874 ldr r0, =0x83ff20 ; via 0x1a34 - 1864: 2105 mov r1, #5 - 1866: 6001 str r1, [r0, #0] - 1868: b001 add sp, #4 - 186a: 46f7 mov pc, lr - 186c: b084 sub sp, #16 ; 0x10 - 186e: 9202 str r2, [sp, #8] - 1870: 9101 str r1, [sp, #4] - 1872: 4669 mov r1, sp - 1874: 7008 strb r0, [r1, #0] - 1876: 2001 mov r0, #1 - 1878: 9003 str r0, [sp, #12] ; 0xc - 187a: 496d ldr r1, =0x83ff24 ; via 0x1a30 - 187c: 7808 ldrb r0, [r1, #0] - 187e: 3801 sub r0, #1 - 1880: 7008 strb r0, [r1, #0] - 1882: 486b ldr r0, =0x83ff24 ; via 0x1a30 - 1884: 7800 ldrb r0, [r0, #0] - 1886: 2800 cmp r0, #0 - 1888: d026 beq 0x18d8 - 188a: 4866 ldr r0, =0x83ff19 ; via 0x1a24 - 188c: 4669 mov r1, sp - 188e: 780a ldrb r2, [r1, #0] - 1890: 7801 ldrb r1, [r0, #0] - 1892: 1851 add r1, r2, r1 - 1894: 7001 strb r1, [r0, #0] - 1896: 4998 ldr r1, =0x83ff1c ; via 0x1af8 - 1898: 7808 ldrb r0, [r1, #0] - 189a: 3001 add r0, #1 - 189c: 7008 strb r0, [r1, #0] - 189e: 49d3 ldr r1, =0x83ff14 ; via 0x1bec - 18a0: 2204 mov r2, #4 - 18a2: 4895 ldr r0, =0x83ff1c ; via 0x1af8 - 18a4: 7800 ldrb r0, [r0, #0] - 18a6: 1a10 sub r0, r2, r0 - 18a8: 00c2 lsl r2, r0, #3 - 18aa: 4668 mov r0, sp - 18ac: 7800 ldrb r0, [r0, #0] - 18ae: 4090 lsl r0, r2 - 18b0: 680a ldr r2, [r1, #0] - 18b2: 1880 add r0, r0, r2 - 18b4: 6008 str r0, [r1, #0] - 18b6: 4890 ldr r0, =0x83ff1c ; via 0x1af8 - 18b8: 7800 ldrb r0, [r0, #0] - 18ba: 2804 cmp r0, #4 - 18bc: d117 bne 0x18ee - 18be: 9902 ldr r1, [sp, #8] - 18c0: 48ca ldr r0, =0x83ff14 ; via 0x1bec - 18c2: 6800 ldr r0, [r0, #0] - 18c4: 3802 sub r0, #2 - 18c6: 6008 str r0, [r1, #0] - 18c8: 485a ldr r0, =0x83ff20 ; via 0x1a34 - 18ca: 2100 mov r1, #0 - 18cc: 6001 str r1, [r0, #0] - 18ce: 4856 ldr r0, =0x83ff1a ; via 0x1a28 - 18d0: 7001 strb r1, [r0, #0] - 18d2: 4889 ldr r0, =0x83ff1c ; via 0x1af8 - 18d4: 7001 strb r1, [r0, #0] - 18d6: e00a b 0x18ee - 18d8: 9801 ldr r0, [sp, #4] - 18da: 2101 mov r1, #1 - 18dc: 6001 str r1, [r0, #0] - 18de: 4955 ldr r1, =0x83ff20 ; via 0x1a34 - 18e0: 2001 mov r0, #1 - 18e2: 6008 str r0, [r1, #0] - 18e4: 4855 ldr r0, =0x83ff18 ; via 0x1a3c - 18e6: 2100 mov r1, #0 - 18e8: 7001 strb r1, [r0, #0] - 18ea: 2000 mov r0, #0 - 18ec: 9003 str r0, [sp, #12] ; 0xc - 18ee: 9803 ldr r0, [sp, #12] ; 0xc - 18f0: b004 add sp, #16 ; 0x10 - 18f2: 46f7 mov pc, lr - 18f4: b083 sub sp, #12 ; 0xc - 18f6: 9101 str r1, [sp, #4] - 18f8: 4669 mov r1, sp - 18fa: 7008 strb r0, [r1, #0] - 18fc: 2001 mov r0, #1 - 18fe: 9002 str r0, [sp, #8] - 1900: 494c ldr r1, =0x83ff20 ; via 0x1a34 - 1902: 6008 str r0, [r1, #0] - 1904: 20ff mov r0, #255 ; 0xff - 1906: 4669 mov r1, sp - 1908: 7809 ldrb r1, [r1, #0] - 190a: 4388 bic r0, r1 - 190c: 4945 ldr r1, =0x83ff19 ; via 0x1a24 - 190e: 7809 ldrb r1, [r1, #0] - 1910: 4281 cmp r1, r0 - 1912: d007 beq 0x1924 - 1914: 9801 ldr r0, [sp, #4] - 1916: 2101 mov r1, #1 - 1918: 6001 str r1, [r0, #0] - 191a: 4848 ldr r0, =0x83ff18 ; via 0x1a3c - 191c: 2100 mov r1, #0 - 191e: 7001 strb r1, [r0, #0] - 1920: 2000 mov r0, #0 - 1922: 9002 str r0, [sp, #8] - 1924: 9802 ldr r0, [sp, #8] - 1926: b003 add sp, #12 ; 0xc - 1928: 46f7 mov pc, lr - 192a: b085 sub sp, #20 ; 0x14 - 192c: 466b mov r3, sp - 192e: 719a strb r2, [r3, #6] - 1930: 466a mov r2, sp - 1932: 8091 strh r1, [r2, #4] - 1934: 9000 str r0, [sp, #0] - 1936: 9800 ldr r0, [sp, #0] - 1938: 9002 str r0, [sp, #8] - 193a: 4669 mov r1, sp - 193c: 4668 mov r0, sp - 193e: 8880 ldrh r0, [r0, #4] - 1940: 8208 strh r0, [r1, #16] ; 0x10 - 1942: 4668 mov r0, sp - 1944: 8a00 ldrh r0, [r0, #16] ; 0x10 - 1946: 2800 cmp r0, #0 - 1948: d01e beq 0x1988 - 194a: 49e3 ldr r1, =0x864 ; via 0x1cd8 - 194c: 4668 mov r0, sp - 194e: 7980 ldrb r0, [r0, #6] - 1950: 0080 lsl r0, r0, #2 - 1952: 5808 ldr r0, [r1, r0] - 1954: 7941 ldrb r1, [r0, #5] - 1956: 4668 mov r0, sp - 1958: 7301 strb r1, [r0, #12] ; 0xc - 195a: 7b00 ldrb r0, [r0, #12] ; 0xc - 195c: 0980 lsr r0, r0, #6 - 195e: d3f4 bcc 0x194a - 1960: 49dd ldr r1, =0x864 ; via 0x1cd8 - 1962: 4668 mov r0, sp - 1964: 7980 ldrb r0, [r0, #6] - 1966: 0080 lsl r0, r0, #2 - 1968: 5809 ldr r1, [r1, r0] - 196a: 9802 ldr r0, [sp, #8] - 196c: 7800 ldrb r0, [r0, #0] - 196e: 7008 strb r0, [r1, #0] - 1970: 9802 ldr r0, [sp, #8] - 1972: 3001 add r0, #1 - 1974: 9002 str r0, [sp, #8] - 1976: 4669 mov r1, sp - 1978: 4668 mov r0, sp - 197a: 8a00 ldrh r0, [r0, #16] ; 0x10 - 197c: 3801 sub r0, #1 - 197e: 8208 strh r0, [r1, #16] ; 0x10 - 1980: 4668 mov r0, sp - 1982: 8a00 ldrh r0, [r0, #16] ; 0x10 - 1984: 2800 cmp r0, #0 - 1986: d1e0 bne 0x194a - 1988: b005 add sp, #20 ; 0x14 - 198a: 46f7 mov pc, lr - 198c: b082 sub sp, #8 - 198e: 4669 mov r1, sp - 1990: 7008 strb r0, [r1, #0] - 1992: 2000 mov r0, #0 - 1994: 8088 strh r0, [r1, #4] - 1996: 4668 mov r0, sp - 1998: 8881 ldrh r1, [r0, #4] - 199a: 20ff mov r0, #255 ; 0xff - 199c: 30f5 add r0, #245 ; 0xf5 - 199e: 4281 cmp r1, r0 - 19a0: da21 bge 0x19e6 - 19a2: 4669 mov r1, sp - 19a4: 4668 mov r0, sp - 19a6: 8880 ldrh r0, [r0, #4] - 19a8: 3001 add r0, #1 - 19aa: 8088 strh r0, [r1, #4] - 19ac: 48ca ldr r0, =0x864 ; via 0x1cd8 - 19ae: 7809 ldrb r1, [r1, #0] - 19b0: 0089 lsl r1, r1, #2 - 19b2: 5840 ldr r0, [r0, r1] - 19b4: 7940 ldrb r0, [r0, #5] - 19b6: 4669 mov r1, sp - 19b8: 7048 strb r0, [r1, #1] - 19ba: 4668 mov r0, sp - 19bc: 7840 ldrb r0, [r0, #1] - 19be: 0840 lsr r0, r0, #1 - 19c0: d30b bcc 0x19da - 19c2: 49c5 ldr r1, =0x864 ; via 0x1cd8 - 19c4: 4668 mov r0, sp - 19c6: 7800 ldrb r0, [r0, #0] - 19c8: 0080 lsl r0, r0, #2 - 19ca: 5808 ldr r0, [r1, r0] - 19cc: 7800 ldrb r0, [r0, #0] - 19ce: 0600 lsl r0, r0, #24 - 19d0: 0e00 lsr r0, r0, #24 - 19d2: 4669 mov r1, sp - 19d4: 7088 strb r0, [r1, #2] - 19d6: 2000 mov r0, #0 - 19d8: 8088 strh r0, [r1, #4] - 19da: 4668 mov r0, sp - 19dc: 8881 ldrh r1, [r0, #4] - 19de: 20ff mov r0, #255 ; 0xff - 19e0: 30f5 add r0, #245 ; 0xf5 - 19e2: 4281 cmp r1, r0 - 19e4: dbdd blt 0x19a2 - 19e6: b002 add sp, #8 - 19e8: 4770 bx lr - 19ea: b500 push {lr} - 19ec: b08c sub sp, #48 ; 0x30 - 19ee: 466a mov r2, sp - 19f0: 7111 strb r1, [r2, #4] - 19f2: 9000 str r0, [sp, #0] - 19f4: 2001 mov r0, #1 - 19f6: 9002 str r0, [sp, #8] - 19f8: 9800 ldr r0, [sp, #0] - 19fa: a904 add r1, sp, #16 ; 0x10 - 19fc: aa03 add r2, sp, #12 ; 0xc - 19fe: f7ff fd75 bl 0x14ec - 1a02: 4668 mov r0, sp - 1a04: 8980 ldrh r0, [r0, #12] ; 0xc - 1a06: 2820 cmp r0, #32 ; 0x20 - 1a08: dd02 ble 0x1a10 - 1a0a: 2000 mov r0, #0 - 1a0c: 9002 str r0, [sp, #8] - 1a0e: e006 b 0x1a1e - 1a10: a804 add r0, sp, #16 ; 0x10 - 1a12: 4669 mov r1, sp - 1a14: 8989 ldrh r1, [r1, #12] ; 0xc - 1a16: 466a mov r2, sp - 1a18: 7912 ldrb r2, [r2, #4] - 1a1a: f7ff ff86 bl 0x192a - 1a1e: 9802 ldr r0, [sp, #8] - 1a20: b00c add sp, #48 ; 0x30 - 1a22: bd00 pop {pc} - 1a24: ff19 - 1a26: 0083 lsl r3, r0, #2 - 1a28: ff1a - 1a2a: 0083 lsl r3, r0, #2 - 1a2c: ff26 - 1a2e: 0083 lsl r3, r0, #2 - 1a30: ff24 - 1a32: 0083 lsl r3, r0, #2 - 1a34: ff20 - 1a36: 0083 lsl r3, r0, #2 - 1a38: ff1b - 1a3a: 0083 lsl r3, r0, #2 - 1a3c: ff18 - 1a3e: 0083 lsl r3, r0, #2 - 1a40: b500 push {lr} - 1a42: b084 sub sp, #16 ; 0x10 - 1a44: 9101 str r1, [sp, #4] - 1a46: 9000 str r0, [sp, #0] - 1a48: 4669 mov r1, sp - 1a4a: 20ff mov r0, #255 ; 0xff - 1a4c: 7308 strb r0, [r1, #12] ; 0xc - 1a4e: 2000 mov r0, #0 - 1a50: 9002 str r0, [sp, #8] - 1a52: 4669 mov r1, sp - 1a54: 48a1 ldr r0, =0xffff5805 ; via 0x1cdc - 1a56: 7800 ldrb r0, [r0, #0] - 1a58: 7348 strb r0, [r1, #13] ; 0xd - 1a5a: 48a1 ldr r0, =0xffff5005 ; via 0x1ce0 - 1a5c: 7800 ldrb r0, [r0, #0] - 1a5e: 7388 strb r0, [r1, #14] ; 0xe - 1a60: 4668 mov r0, sp - 1a62: 7b40 ldrb r0, [r0, #13] ; 0xd - 1a64: 0840 lsr r0, r0, #1 - 1a66: d206 bcs 0x1a76 - 1a68: 4668 mov r0, sp - 1a6a: 7b80 ldrb r0, [r0, #14] ; 0xe - 1a6c: 0840 lsr r0, r0, #1 - 1a6e: d202 bcs 0x1a76 - 1a70: 9801 ldr r0, [sp, #4] - 1a72: 2800 cmp r0, #0 - 1a74: d0ed beq 0x1a52 - 1a76: 4668 mov r0, sp - 1a78: 7b40 ldrb r0, [r0, #13] ; 0xd - 1a7a: 0840 lsr r0, r0, #1 - 1a7c: d316 bcc 0x1aac - 1a7e: 4669 mov r1, sp - 1a80: 2000 mov r0, #0 - 1a82: 7308 strb r0, [r1, #12] ; 0xc - 1a84: 4994 ldr r1, =0x864 ; via 0x1cd8 - 1a86: 4668 mov r0, sp - 1a88: 7b00 ldrb r0, [r0, #12] ; 0xc - 1a8a: 0080 lsl r0, r0, #2 - 1a8c: 5808 ldr r0, [r1, r0] - 1a8e: 7800 ldrb r0, [r0, #0] - 1a90: 0600 lsl r0, r0, #24 - 1a92: 0e00 lsr r0, r0, #24 - 1a94: 4669 mov r1, sp - 1a96: 73c8 strb r0, [r1, #15] ; 0xf - 1a98: 4668 mov r0, sp - 1a9a: 7bc0 ldrb r0, [r0, #15] ; 0xf - 1a9c: 9900 ldr r1, [sp, #0] - 1a9e: f7ff fc9f bl 0x13e0 - 1aa2: 9002 str r0, [sp, #8] - 1aa4: 9802 ldr r0, [sp, #8] - 1aa6: 2800 cmp r0, #0 - 1aa8: d11c bne 0x1ae4 - 1aaa: e018 b 0x1ade - 1aac: 4668 mov r0, sp - 1aae: 7b80 ldrb r0, [r0, #14] ; 0xe - 1ab0: 0840 lsr r0, r0, #1 - 1ab2: d317 bcc 0x1ae4 - 1ab4: 4669 mov r1, sp - 1ab6: 2001 mov r0, #1 - 1ab8: 7308 strb r0, [r1, #12] ; 0xc - 1aba: 4987 ldr r1, =0x864 ; via 0x1cd8 - 1abc: 4668 mov r0, sp - 1abe: 7b00 ldrb r0, [r0, #12] ; 0xc - 1ac0: 0080 lsl r0, r0, #2 - 1ac2: 5808 ldr r0, [r1, r0] - 1ac4: 7800 ldrb r0, [r0, #0] - 1ac6: 0600 lsl r0, r0, #24 - 1ac8: 0e01 lsr r1, r0, #24 - 1aca: 4668 mov r0, sp - 1acc: 73c1 strb r1, [r0, #15] ; 0xf - 1ace: 7bc0 ldrb r0, [r0, #15] ; 0xf - 1ad0: 9900 ldr r1, [sp, #0] - 1ad2: f7ff fc85 bl 0x13e0 - 1ad6: 9002 str r0, [sp, #8] - 1ad8: 9802 ldr r0, [sp, #8] - 1ada: 2800 cmp r0, #0 - 1adc: d102 bne 0x1ae4 - 1ade: 20ff mov r0, #255 ; 0xff - 1ae0: 4669 mov r1, sp - 1ae2: 7308 strb r0, [r1, #12] ; 0xc - 1ae4: 9802 ldr r0, [sp, #8] - 1ae6: 2800 cmp r0, #0 - 1ae8: d102 bne 0x1af0 - 1aea: 9801 ldr r0, [sp, #4] - 1aec: 2800 cmp r0, #0 - 1aee: d0b0 beq 0x1a52 - 1af0: 4668 mov r0, sp - 1af2: 7b00 ldrb r0, [r0, #12] ; 0xc - 1af4: b004 add sp, #16 ; 0x10 - 1af6: bd00 pop {pc} - 1af8: ff1c - 1afa: 0083 lsl r3, r0, #2 - 1afc: 0830 lsr r0, r6, #32 - 1afe: 0000 lsl r0, r0, #0 - 1b00: 084c lsr r4, r1, #1 - 1b02: 0000 lsl r0, r0, #0 - 1b04: b500 push {lr} - 1b06: b086 sub sp, #24 ; 0x18 - 1b08: 466b mov r3, sp - 1b0a: 721a strb r2, [r3, #8] - 1b0c: 9101 str r1, [sp, #4] - 1b0e: 9000 str r0, [sp, #0] - 1b10: 2001 mov r0, #1 - 1b12: 9004 str r0, [sp, #16] ; 0x10 - 1b14: 9804 ldr r0, [sp, #16] ; 0x10 - 1b16: 2800 cmp r0, #0 - 1b18: d05b beq 0x1bd2 - 1b1a: 496f ldr r1, =0x864 ; via 0x1cd8 - 1b1c: 4668 mov r0, sp - 1b1e: 7a00 ldrb r0, [r0, #8] - 1b20: 0080 lsl r0, r0, #2 - 1b22: 5808 ldr r0, [r1, r0] - 1b24: 7941 ldrb r1, [r0, #5] - 1b26: 4668 mov r0, sp - 1b28: 7301 strb r1, [r0, #12] ; 0xc - 1b2a: 7b00 ldrb r0, [r0, #12] ; 0xc - 1b2c: 0840 lsr r0, r0, #1 - 1b2e: d3f4 bcc 0x1b1a - 1b30: 4969 ldr r1, =0x864 ; via 0x1cd8 - 1b32: 4668 mov r0, sp - 1b34: 7a00 ldrb r0, [r0, #8] - 1b36: 0080 lsl r0, r0, #2 - 1b38: 5808 ldr r0, [r1, r0] - 1b3a: 7800 ldrb r0, [r0, #0] - 1b3c: 0600 lsl r0, r0, #24 - 1b3e: 0e01 lsr r1, r0, #24 - 1b40: 4668 mov r0, sp - 1b42: 7341 strb r1, [r0, #13] ; 0xd - 1b44: e02c b 0x1ba0 - 1b46: 4668 mov r0, sp - 1b48: 7b40 ldrb r0, [r0, #13] ; 0xd - 1b4a: a905 add r1, sp, #20 ; 0x14 - 1b4c: 9a00 ldr r2, [sp, #0] - 1b4e: 9b01 ldr r3, [sp, #4] - 1b50: f7ff fd8c bl 0x166c - 1b54: 9004 str r0, [sp, #16] ; 0x10 - 1b56: e039 b 0x1bcc - 1b58: 4668 mov r0, sp - 1b5a: 7b40 ldrb r0, [r0, #13] ; 0xd - 1b5c: a905 add r1, sp, #20 ; 0x14 - 1b5e: f7ff fdc2 bl 0x16e6 - 1b62: e7f7 b 0x1b54 - 1b64: 4668 mov r0, sp - 1b66: 7b40 ldrb r0, [r0, #13] ; 0xd - 1b68: a905 add r1, sp, #20 ; 0x14 - 1b6a: f7ff fe12 bl 0x1792 - 1b6e: e7f1 b 0x1b54 - 1b70: 4668 mov r0, sp - 1b72: 7b40 ldrb r0, [r0, #13] ; 0xd - 1b74: a905 add r1, sp, #20 ; 0x14 - 1b76: f7ff fe34 bl 0x17e2 - 1b7a: e7eb b 0x1b54 - 1b7c: 4668 mov r0, sp - 1b7e: 7b40 ldrb r0, [r0, #13] ; 0xd - 1b80: f7ff fe5e bl 0x1840 - 1b84: e022 b 0x1bcc - 1b86: 4668 mov r0, sp - 1b88: 7b40 ldrb r0, [r0, #13] ; 0xd - 1b8a: a905 add r1, sp, #20 ; 0x14 - 1b8c: 9a00 ldr r2, [sp, #0] - 1b8e: f7ff fe6d bl 0x186c - 1b92: e7df b 0x1b54 - 1b94: 4668 mov r0, sp - 1b96: 7b40 ldrb r0, [r0, #13] ; 0xd - 1b98: a905 add r1, sp, #20 ; 0x14 - 1b9a: f7ff feab bl 0x18f4 - 1b9e: e7d9 b 0x1b54 - 1ba0: 4850 ldr r0, =0x83ff20 ; via 0x1ce4 - 1ba2: 6800 ldr r0, [r0, #0] - 1ba4: 2800 cmp r0, #0 - 1ba6: d0ce beq 0x1b46 - 1ba8: 3801 sub r0, #1 - 1baa: 2800 cmp r0, #0 - 1bac: d0d4 beq 0x1b58 - 1bae: 3801 sub r0, #1 - 1bb0: 2800 cmp r0, #0 - 1bb2: d0d7 beq 0x1b64 - 1bb4: 3801 sub r0, #1 - 1bb6: 2800 cmp r0, #0 - 1bb8: d0da beq 0x1b70 - 1bba: 3801 sub r0, #1 - 1bbc: 2800 cmp r0, #0 - 1bbe: d0dd beq 0x1b7c - 1bc0: 3801 sub r0, #1 - 1bc2: 2800 cmp r0, #0 - 1bc4: d0df beq 0x1b86 - 1bc6: 3801 sub r0, #1 - 1bc8: 2800 cmp r0, #0 - 1bca: d0e3 beq 0x1b94 - 1bcc: 9804 ldr r0, [sp, #16] ; 0x10 - 1bce: 2800 cmp r0, #0 - 1bd0: d1a3 bne 0x1b1a - 1bd2: 9805 ldr r0, [sp, #20] ; 0x14 - 1bd4: b006 add sp, #24 ; 0x18 - 1bd6: bd00 pop {pc} - 1bd8: 4942 ldr r1, =0x83ff20 ; via 0x1ce4 - 1bda: 2001 mov r0, #1 - 1bdc: 6008 str r0, [r1, #0] - 1bde: 4842 ldr r0, =0x83ff1b ; via 0x1ce8 - 1be0: 2100 mov r1, #0 - 1be2: 7001 strb r1, [r0, #0] - 1be4: 4841 ldr r0, =0x83ff18 ; via 0x1cec - 1be6: 7001 strb r1, [r0, #0] - 1be8: 4770 bx lr - 1bea: 46c0 nop (mov r8, r8) - 1bec: ff14 - 1bee: 0083 lsl r3, r0, #2 - 1bf0: b081 sub sp, #4 - 1bf2: 483f ldr r0, =0xffff5800 ; via 0x1cf0 - 1bf4: 9000 str r0, [sp, #0] - 1bf6: 493f ldr r1, =0xffff6000 ; via 0x1cf4 - 1bf8: 2002 mov r0, #2 - 1bfa: 880a ldrh r2, [r1, #0] - 1bfc: 4310 orr r0, r2 - 1bfe: 8008 strh r0, [r1, #0] - 1c00: 483c ldr r0, =0xffff6000 ; via 0x1cf4 - 1c02: 8801 ldrh r1, [r0, #0] - 1c04: 0849 lsr r1, r1, #1 - 1c06: 0049 lsl r1, r1, #1 - 1c08: 8001 strh r1, [r0, #0] - 1c0a: 493a ldr r1, =0xffff6000 ; via 0x1cf4 - 1c0c: 8808 ldrh r0, [r1, #0] - 1c0e: 2202 mov r2, #2 - 1c10: 4390 bic r0, r2 - 1c12: 8008 strh r0, [r1, #0] - 1c14: 9900 ldr r1, [sp, #0] - 1c16: 2007 mov r0, #7 - 1c18: 7208 strb r0, [r1, #8] - 1c1a: 9900 ldr r1, [sp, #0] - 1c1c: 20bf mov r0, #191 ; 0xbf - 1c1e: 70c8 strb r0, [r1, #3] - 1c20: 9800 ldr r0, [sp, #0] - 1c22: 1c81 add r1, r0, #2 - 1c24: 2010 mov r0, #16 ; 0x10 - 1c26: 880a ldrh r2, [r1, #0] - 1c28: 4310 orr r0, r2 - 1c2a: 8008 strh r0, [r1, #0] - 1c2c: 9800 ldr r0, [sp, #0] - 1c2e: 2180 mov r1, #128 ; 0x80 - 1c30: 70c1 strb r1, [r0, #3] - 1c32: 9800 ldr r0, [sp, #0] - 1c34: 2107 mov r1, #7 - 1c36: 7081 strb r1, [r0, #2] - 1c38: 9800 ldr r0, [sp, #0] - 1c3a: 21bf mov r1, #191 ; 0xbf - 1c3c: 70c1 strb r1, [r0, #3] - 1c3e: 9800 ldr r0, [sp, #0] - 1c40: 2107 mov r1, #7 - 1c42: 7001 strb r1, [r0, #0] - 1c44: 9800 ldr r0, [sp, #0] - 1c46: 2100 mov r1, #0 - 1c48: 7041 strb r1, [r0, #1] - 1c4a: 9800 ldr r0, [sp, #0] - 1c4c: 2103 mov r1, #3 - 1c4e: 70c1 strb r1, [r0, #3] - 1c50: 9800 ldr r0, [sp, #0] - 1c52: 2100 mov r1, #0 - 1c54: 7201 strb r1, [r0, #8] - 1c56: 4828 ldr r0, =0xffff5000 ; via 0x1cf8 - 1c58: 9000 str r0, [sp, #0] - 1c5a: 9800 ldr r0, [sp, #0] - 1c5c: 2107 mov r1, #7 - 1c5e: 7201 strb r1, [r0, #8] - 1c60: 9900 ldr r1, [sp, #0] - 1c62: 20bf mov r0, #191 ; 0xbf - 1c64: 70c8 strb r0, [r1, #3] - 1c66: 9800 ldr r0, [sp, #0] - 1c68: 1c80 add r0, r0, #2 - 1c6a: 2110 mov r1, #16 ; 0x10 - 1c6c: 8802 ldrh r2, [r0, #0] - 1c6e: 4311 orr r1, r2 - 1c70: 8001 strh r1, [r0, #0] - 1c72: 9800 ldr r0, [sp, #0] - 1c74: 2180 mov r1, #128 ; 0x80 - 1c76: 70c1 strb r1, [r0, #3] - 1c78: 9800 ldr r0, [sp, #0] - 1c7a: 2107 mov r1, #7 - 1c7c: 7081 strb r1, [r0, #2] - 1c7e: 9800 ldr r0, [sp, #0] - 1c80: 21bf mov r1, #191 ; 0xbf - 1c82: 70c1 strb r1, [r0, #3] - 1c84: 9800 ldr r0, [sp, #0] - 1c86: 2107 mov r1, #7 - 1c88: 7001 strb r1, [r0, #0] - 1c8a: 9800 ldr r0, [sp, #0] - 1c8c: 2100 mov r1, #0 - 1c8e: 7041 strb r1, [r0, #1] - 1c90: 9900 ldr r1, [sp, #0] - 1c92: 2003 mov r0, #3 - 1c94: 70c8 strb r0, [r1, #3] - 1c96: 9800 ldr r0, [sp, #0] - 1c98: 2100 mov r1, #0 - 1c9a: 7201 strb r1, [r0, #8] - 1c9c: b001 add sp, #4 - 1c9e: 4770 bx lr - 1ca0: b081 sub sp, #4 - 1ca2: 4669 mov r1, sp - 1ca4: 7008 strb r0, [r1, #0] - 1ca6: 490c ldr r1, =0x864 ; via 0x1cd8 - 1ca8: 4668 mov r0, sp - 1caa: 7800 ldrb r0, [r0, #0] - 1cac: 0080 lsl r0, r0, #2 - 1cae: 5808 ldr r0, [r1, r0] - 1cb0: 7941 ldrb r1, [r0, #5] - 1cb2: 4668 mov r0, sp - 1cb4: 7041 strb r1, [r0, #1] - 1cb6: 7840 ldrb r0, [r0, #1] - 1cb8: 09c0 lsr r0, r0, #7 - 1cba: d20b bcs 0x1cd4 - 1cbc: 4806 ldr r0, =0x864 ; via 0x1cd8 - 1cbe: 4669 mov r1, sp - 1cc0: 7809 ldrb r1, [r1, #0] - 1cc2: 0089 lsl r1, r1, #2 - 1cc4: 5840 ldr r0, [r0, r1] - 1cc6: 7940 ldrb r0, [r0, #5] - 1cc8: 4669 mov r1, sp - 1cca: 7048 strb r0, [r1, #1] - 1ccc: 4668 mov r0, sp - 1cce: 7840 ldrb r0, [r0, #1] - 1cd0: 09c0 lsr r0, r0, #7 - 1cd2: d3f3 bcc 0x1cbc - 1cd4: b001 add sp, #4 - 1cd6: 4770 bx lr - 1cd8: 0864 lsr r4, r4, #1 - 1cda: 0000 lsl r0, r0, #0 - 1cdc: 5805 ldr r5, [r0, r0] - 1cde: ffff - 1ce0: 5005 str r5, [r0, r0] - 1ce2: ffff - 1ce4: ff20 - 1ce6: 0083 lsl r3, r0, #2 - 1ce8: ff1b - 1cea: 0083 lsl r3, r0, #2 - 1cec: ff18 - 1cee: 0083 lsl r3, r0, #2 - 1cf0: 5800 ldr r0, [r0, r0] - 1cf2: ffff - 1cf4: 6000 str r0, [r0, #0] - 1cf6: ffff - 1cf8: 5000 str r0, [r0, r0] - 1cfa: ffff - 1cfc: b500 push {lr} - 1cfe: b087 sub sp, #28 ; 0x1c - 1d00: 466b mov r3, sp - 1d02: 721a strb r2, [r3, #8] - 1d04: 9101 str r1, [sp, #4] - 1d06: 9000 str r0, [sp, #0] - 1d08: 9900 ldr r1, [sp, #0] - 1d0a: 2000 mov r0, #0 - 1d0c: 8008 strh r0, [r1, #0] - 1d0e: 9801 ldr r0, [sp, #4] - 1d10: 2100 mov r1, #0 - 1d12: 8001 strh r1, [r0, #0] - 1d14: 2000 mov r0, #0 - 1d16: 9003 str r0, [sp, #12] ; 0xc - 1d18: f7ff ff5e bl 0x1bd8 - 1d1c: a805 add r0, sp, #20 ; 0x14 - 1d1e: a906 add r1, sp, #24 ; 0x18 - 1d20: 466a mov r2, sp - 1d22: 7a12 ldrb r2, [r2, #8] - 1d24: f7ff feee bl 0x1b04 - 1d28: 9004 str r0, [sp, #16] ; 0x10 - 1d2a: 9804 ldr r0, [sp, #16] ; 0x10 - 1d2c: 2800 cmp r0, #0 - 1d2e: d11f bne 0x1d70 - 1d30: 9803 ldr r0, [sp, #12] ; 0xc - 1d32: 2800 cmp r0, #0 - 1d34: d11c bne 0x1d70 - 1d36: 9800 ldr r0, [sp, #0] - 1d38: 4669 mov r1, sp - 1d3a: 8b0a ldrh r2, [r1, #24] ; 0x18 - 1d3c: 8801 ldrh r1, [r0, #0] - 1d3e: 1851 add r1, r2, r1 - 1d40: 8001 strh r1, [r0, #0] - 1d42: 9905 ldr r1, [sp, #20] ; 0x14 - 1d44: 4668 mov r0, sp - 1d46: 8b00 ldrh r0, [r0, #24] ; 0x18 - 1d48: 8008 strh r0, [r1, #0] - 1d4a: 9801 ldr r0, [sp, #4] - 1d4c: 9905 ldr r1, [sp, #20] ; 0x14 - 1d4e: 8809 ldrh r1, [r1, #0] - 1d50: 8802 ldrh r2, [r0, #0] - 1d52: 1889 add r1, r1, r2 - 1d54: 8001 strh r1, [r0, #0] - 1d56: a805 add r0, sp, #20 ; 0x14 - 1d58: a906 add r1, sp, #24 ; 0x18 - 1d5a: 466a mov r2, sp - 1d5c: 7a12 ldrb r2, [r2, #8] - 1d5e: f7ff fed1 bl 0x1b04 - 1d62: 9004 str r0, [sp, #16] ; 0x10 - 1d64: 9804 ldr r0, [sp, #16] ; 0x10 - 1d66: 2800 cmp r0, #0 - 1d68: d102 bne 0x1d70 - 1d6a: 9803 ldr r0, [sp, #12] ; 0xc - 1d6c: 2800 cmp r0, #0 - 1d6e: d0e2 beq 0x1d36 - 1d70: 9804 ldr r0, [sp, #16] ; 0x10 - 1d72: 2801 cmp r0, #1 - 1d74: d101 bne 0x1d7a - 1d76: 2004 mov r0, #4 - 1d78: 9003 str r0, [sp, #12] ; 0xc - 1d7a: 9803 ldr r0, [sp, #12] ; 0xc - 1d7c: b007 add sp, #28 ; 0x1c - 1d7e: bd00 pop {pc} - 1d80: b089 sub sp, #36 ; 0x24 - 1d82: 201a mov r0, #26 ; 0x1a - 1d84: 9005 str r0, [sp, #20] ; 0x14 - 1d86: 2018 mov r0, #24 ; 0x18 - 1d88: 9006 str r0, [sp, #24] ; 0x18 - 1d8a: 2000 mov r0, #0 - 1d8c: 9008 str r0, [sp, #32] ; 0x20 - 1d8e: 4669 mov r1, sp - 1d90: 9805 ldr r0, [sp, #20] ; 0x14 - 1d92: 8800 ldrh r0, [r0, #0] - 1d94: 8008 strh r0, [r1, #0] - 1d96: 9806 ldr r0, [sp, #24] ; 0x18 - 1d98: 8800 ldrh r0, [r0, #0] - 1d9a: 8048 strh r0, [r1, #2] - 1d9c: 4668 mov r0, sp - 1d9e: 8841 ldrh r1, [r0, #2] - 1da0: 8800 ldrh r0, [r0, #0] - 1da2: 0400 lsl r0, r0, #16 - 1da4: 1808 add r0, r1, r0 - 1da6: 9001 str r0, [sp, #4] - 1da8: 9801 ldr r0, [sp, #4] - 1daa: 0200 lsl r0, r0, #8 - 1dac: 0a00 lsr r0, r0, #8 - 1dae: 0080 lsl r0, r0, #2 - 1db0: 3008 add r0, #8 - 1db2: 9007 str r0, [sp, #28] ; 0x1c - 1db4: 9807 ldr r0, [sp, #28] ; 0x1c - 1db6: 3018 add r0, #24 ; 0x18 - 1db8: 9002 str r0, [sp, #8] - 1dba: 9802 ldr r0, [sp, #8] - 1dbc: 9004 str r0, [sp, #16] ; 0x10 - 1dbe: 9802 ldr r0, [sp, #8] - 1dc0: 3002 add r0, #2 - 1dc2: 9003 str r0, [sp, #12] ; 0xc - 1dc4: 9803 ldr r0, [sp, #12] ; 0xc - 1dc6: 8801 ldrh r1, [r0, #0] - 1dc8: 4806 ldr r0, =0xffff ; via 0x1de4 - 1dca: 4281 cmp r1, r0 - 1dcc: d104 bne 0x1dd8 - 1dce: 9804 ldr r0, [sp, #16] ; 0x10 - 1dd0: 8800 ldrh r0, [r0, #0] - 1dd2: 4904 ldr r1, =0xffff ; via 0x1de4 - 1dd4: 4288 cmp r0, r1 - 1dd6: d001 beq 0x1ddc - 1dd8: 2001 mov r0, #1 - 1dda: 9008 str r0, [sp, #32] ; 0x20 - 1ddc: 9808 ldr r0, [sp, #32] ; 0x20 - 1dde: b009 add sp, #36 ; 0x24 - 1de0: 4770 bx lr - 1de2: 46c0 nop (mov r8, r8) - - 1de4: 0000ffff - - 1de8: e92d4000 stmdb sp!, {lr} - 1dec: e28fe001 add lr, pc, #1 - 1df0: e12fff1e bx lr - 1df4: f7fe fe6d bl 0xad2 - 1df8: 4778 bx pc - 1dfa: 46c0 nop (mov r8, r8) - 1dfc: e8bd8000 ldmia sp!, {pc} - -<1E00-1EFF: all FFs> - - 1f00: 00000001 - -<1F04-end: all FFs> diff -r e5e5ed527cc1 -r 81cda18b0487 compal/c123-boot.bin Binary file compal/c123-boot.bin has changed diff -r e5e5ed527cc1 -r 81cda18b0487 compal/c123-boot.disasm --- a/compal/c123-boot.disasm Sat Jan 14 06:09:25 2023 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2647 +0,0 @@ -RESET entry and exception vectors: - 0: ea000225 b 0x89c - 4: ea000825 b 0x20a0 - 8: ea000825 b 0x20a4 - c: ea000825 b 0x20a8 - 10: ea000825 b 0x20ac - 14: ea000825 b 0x20b0 - 18: ea000825 b 0x20b4 - -; magic words, vary by version - 20: 44aa338a - 24: 44aa338b - 28: 44aa33b8 - 2c: 44aa33b9 - -<30-7FF: all FFs> - -00000800: 42 4F 4F 54 2E 39 30 2E 30 34 00 00 00 00 00 00 BOOT.90.04...... -00000810: 31 30 30 33 01 01 00 00 FF FF FF FF FF FF FF FF 1003............ -00000820: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ - -; everything up to 0x958 is the same as in the C139 version - 830: 00000006 - 834: 00000000 - 838: 00000000 - 83c: 00000048 - 840: 00000044 - 844: 00000052 - 848: 0000001b - 84c: 00000005 - 850: 00000000 - 854: 00000000 - 858: 00000000 - 85c: 00000000 - 860: 000000fa - 864: ffff5800 - 868: ffff5000 - 86c: fffffb00 - 870: 02a102a1 - 874: 028302a1 - 878: 00c00281 - 87c: 002a0040 - 880: 00000040 - 884: fffffd00 - 888: ffff9800 - 88c: fffffb10 - 890: ffffff08 - 894: 20061081 - 898: 00000800 - -; RESET entry point - 89c: e51f1020 ldr r1, =0xfffffd00 ; via 0x884 - 8a0: e1d120b2 ldrh r2, [r1, #2] - 8a4: e51f002c ldr r0, =0x40 ; via 0x880 - 8a8: e1800002 orr r0, r0, r2 - 8ac: e1c100b2 strh r0, [r1, #2] - 8b0: e51f1030 ldr r1, =0xffff9800 ; via 0x888 - 8b4: e15f22b6 ldrh r2, =0x2006 ; via 0x896 - 8b8: e1c120b0 strh r2, [r1] - 8bc: e5912000 ldr r2, [r1] - 8c0: e2022001 and r2, r2, #1 - 8c4: e3520001 cmp r2, #1 - 8c8: 0afffffb beq 0x8bc - 8cc: e51f1050 ldr r1, =0xfffffd00 ; via 0x884 - 8d0: e15f24b4 ldrh r2, =0x1081 ; via 0x894 - 8d4: e1c120b0 strh r2, [r1] - 8d8: e51f1054 ldr r1, =0xfffffb10 ; via 0x88c - 8dc: e15f24bc ldrh r2, =0x800 ; via 0x898 - 8e0: e1d100b0 ldrh r0, [r1] - 8e4: e1800002 orr r0, r0, r2 - 8e8: e1c100b0 strh r0, [r1] - 8ec: e51f1064 ldr r1, =0xffffff08 ; via 0x890 - 8f0: e15f25be ldrh r2, =0x0 ; via 0x89a - 8f4: e1c120b0 strh r2, [r1] - 8f8: e51f1094 ldr r1, =0xfffffb00 ; via 0x86c - 8fc: e15f29b4 ldrh r2, =0x2a1 ; via 0x870 - 900: e1c120b0 strh r2, [r1] - 904: e15f29ba ldrh r2, =0x2a1 ; via 0x872 - 908: e1c120b2 strh r2, [r1, #2] - 90c: e15f2ab0 ldrh r2, =0x2a1 ; via 0x874 - 910: e1c120b4 strh r2, [r1, #4] - 914: e15f2ab6 ldrh r2, =0x283 ; via 0x876 - 918: e1c120b6 strh r2, [r1, #6] - 91c: e15f2abc ldrh r2, =0x281 ; via 0x878 - 920: e1c120ba strh r2, [r1, #10] ; 0xa - 924: e15f2bb2 ldrh r2, =0xc0 ; via 0x87a - 928: e1c120bc strh r2, [r1, #12] ; 0xc - 92c: e15f2bb8 ldrh r2, =0x40 ; via 0x87c - 930: e1c120b8 strh r2, [r1, #8] - 934: e15f2bbe ldrh r2, =0x2a ; via 0x87e - 938: e1c120be strh r2, [r1, #14] ; 0xe - 93c: e59f0020 ldr r0, =0x83e424 ; via 0x964 - 940: e3a01b01 mov r1, #1024 ; 0x400 - 944: e2411004 sub r1, r1, #4 - 948: e0802001 add r2, r0, r1 - 94c: e3c22003 bic r2, r2, #3 - 950: e1a0d002 mov sp, r2 -; business logic - 954: e92d100f stmdb sp!, {r0, r1, r2, r3, r12} - 958: eb00051e bl 0x1dd8 - 95c: e8bd100f ldmia sp!, {r0, r1, r2, r3, r12} - 960: ea0005e4 b 0x20f8 - -; stack address, varies by version - 964: 0083e424 - -; 0x968 routine same as in the C139 version - 968: 4961 ldr r1, =0xfffffa08 ; via 0xaf0 - 96a: 4862 ldr r0, =0xffff ; via 0xaf4 - 96c: 8008 strh r0, [r1, #0] - 96e: 4862 ldr r0, =0xfffffa0a ; via 0xaf8 - 970: 211f mov r1, #31 ; 0x1f - 972: 8001 strh r1, [r0, #0] - 974: 4861 ldr r0, =0xfffff804 ; via 0xafc - 976: 21f5 mov r1, #245 ; 0xf5 - 978: 8001 strh r1, [r0, #0] - 97a: 21a0 mov r1, #160 ; 0xa0 - 97c: 8001 strh r1, [r0, #0] - 97e: 4860 ldr r0, =0xffff9800 ; via 0xb00 - 980: 4960 ldr r1, =0x2002 ; via 0xb04 - 982: 8001 strh r1, [r0, #0] - 984: 485e ldr r0, =0xffff9800 ; via 0xb00 - 986: 8800 ldrh r0, [r0, #0] - 988: 0840 lsr r0, r0, #1 - 98a: d2fb bcs 0x984 - 98c: 495e ldr r1, =0xfffffd00 ; via 0xb08 - 98e: 485f ldr r0, =0x1001 ; via 0xb0c - 990: 8008 strh r0, [r1, #0] - 992: 46f7 mov pc, lr - - 994: b500 push {lr} - 996: b0ff sub sp, #508 ; 0x1fc - 998: b0ca sub sp, #296 ; 0x128 - 99a: 2000 mov r0, #0 - 99c: 9001 str r0, [sp, #4] - 99e: 9801 ldr r0, [sp, #4] - 9a0: 2800 cmp r0, #0 - 9a2: d14e bne 0xa42 - 9a4: a846 add r0, sp, #280 ; 0x118 - 9a6: 2100 mov r1, #0 - 9a8: f001 f842 bl 0x1a30 - 9ac: a9c8 add r1, sp, #800 ; 0x320 - 9ae: 7008 strb r0, [r1, #0] - 9b0: a846 add r0, sp, #280 ; 0x118 - 9b2: a902 add r1, sp, #8 - 9b4: f000 fb00 bl 0xfb8 - 9b8: 9000 str r0, [sp, #0] - 9ba: 9800 ldr r0, [sp, #0] - 9bc: 2800 cmp r0, #0 - 9be: d01b beq 0x9f8 - 9c0: a924 add r1, sp, #144 ; 0x90 - 9c2: 4668 mov r0, sp - 9c4: 7a00 ldrb r0, [r0, #8] - 9c6: 7008 strb r0, [r1, #0] - 9c8: 2191 mov r1, #145 ; 0x91 - 9ca: 466a mov r2, sp - 9cc: 4668 mov r0, sp - 9ce: 7800 ldrb r0, [r0, #0] - 9d0: 5488 strb r0, [r1, r2] - 9d2: e01b b 0xa0c - 9d4: a802 add r0, sp, #8 - 9d6: a924 add r1, sp, #144 ; 0x90 - 9d8: f000 fddc bl 0x1594 - 9dc: e016 b 0xa0c - 9de: a802 add r0, sp, #8 - 9e0: a924 add r1, sp, #144 ; 0x90 - 9e2: aac8 add r2, sp, #800 ; 0x320 - 9e4: 7812 ldrb r2, [r2, #0] - 9e6: f000 fde9 bl 0x15bc - 9ea: e00f b 0xa0c - 9ec: a802 add r0, sp, #8 - 9ee: a924 add r1, sp, #144 ; 0x90 - 9f0: f000 fe1b bl 0x162a - 9f4: 90c7 str r0, [sp, #796] ; 0x31c - 9f6: e009 b 0xa0c - 9f8: 4668 mov r0, sp - 9fa: 7a00 ldrb r0, [r0, #8] - 9fc: 2800 cmp r0, #0 - 9fe: d0e9 beq 0x9d4 - a00: 3809 sub r0, #9 - a02: 2800 cmp r0, #0 - a04: d0eb beq 0x9de - a06: 3801 sub r0, #1 - a08: 2800 cmp r0, #0 - a0a: d0ef beq 0x9ec - a0c: a824 add r0, sp, #144 ; 0x90 - a0e: a986 add r1, sp, #536 ; 0x218 - a10: f000 fbb5 bl 0x117e - a14: 2800 cmp r0, #0 - a16: d111 bne 0xa3c - a18: a886 add r0, sp, #536 ; 0x218 - a1a: a9c8 add r1, sp, #800 ; 0x320 - a1c: 7809 ldrb r1, [r1, #0] - a1e: f000 ffdc bl 0x19da - a22: 2800 cmp r0, #0 - a24: d00a beq 0xa3c - a26: 4668 mov r0, sp - a28: 7a00 ldrb r0, [r0, #8] - a2a: 280a cmp r0, #10 ; 0xa - a2c: d106 bne 0xa3c - a2e: a8c8 add r0, sp, #800 ; 0x320 - a30: 7800 ldrb r0, [r0, #0] - a32: f001 f92d bl 0x1c90 - a36: 98c7 ldr r0, [sp, #796] ; 0x31c - a38: f000 fabc bl 0xfb4 - a3c: 9801 ldr r0, [sp, #4] - a3e: 2800 cmp r0, #0 - a40: d0b0 beq 0x9a4 - a42: b07f add sp, #508 ; 0x1fc - a44: b04a add sp, #296 ; 0x128 - a46: bd00 pop {pc} - - a48: b500 push {lr} - a4a: b0ff sub sp, #508 ; 0x1fc - a4c: b0c8 sub sp, #288 ; 0x120 - a4e: 2000 mov r0, #0 - a50: 9000 str r0, [sp, #0] - a52: a846 add r0, sp, #280 ; 0x118 - a54: 2101 mov r1, #1 - a56: f000 ffeb bl 0x1a30 - a5a: a9c6 add r1, sp, #792 ; 0x318 - a5c: 7008 strb r0, [r1, #0] - a5e: a8c6 add r0, sp, #792 ; 0x318 - a60: 7800 ldrb r0, [r0, #0] - a62: 28ff cmp r0, #255 ; 0xff - a64: d031 beq 0xaca - a66: a846 add r0, sp, #280 ; 0x118 - a68: a902 add r1, sp, #8 - a6a: f000 faa5 bl 0xfb8 - a6e: 9001 str r0, [sp, #4] - a70: 9801 ldr r0, [sp, #4] - a72: 2800 cmp r0, #0 - a74: d014 beq 0xaa0 - a76: a924 add r1, sp, #144 ; 0x90 - a78: 4668 mov r0, sp - a7a: 7a00 ldrb r0, [r0, #8] - a7c: 7008 strb r0, [r1, #0] - a7e: 2291 mov r2, #145 ; 0x91 - a80: 4668 mov r0, sp - a82: 4669 mov r1, sp - a84: 7909 ldrb r1, [r1, #4] - a86: 5411 strb r1, [r2, r0] - a88: a824 add r0, sp, #144 ; 0x90 - a8a: a986 add r1, sp, #536 ; 0x218 - a8c: f000 fb77 bl 0x117e - a90: 2800 cmp r0, #0 - a92: d11a bne 0xaca - a94: a886 add r0, sp, #536 ; 0x218 - a96: a9c6 add r1, sp, #792 ; 0x318 - a98: 7809 ldrb r1, [r1, #0] - a9a: f000 ff9e bl 0x19da - a9e: e014 b 0xaca - aa0: 4668 mov r0, sp - aa2: 7a00 ldrb r0, [r0, #8] - aa4: 2800 cmp r0, #0 - aa6: d110 bne 0xaca - aa8: a802 add r0, sp, #8 - aaa: a924 add r1, sp, #144 ; 0x90 - aac: f000 fd72 bl 0x1594 - ab0: a824 add r0, sp, #144 ; 0x90 - ab2: a986 add r1, sp, #536 ; 0x218 - ab4: f000 fb63 bl 0x117e - ab8: 2800 cmp r0, #0 - aba: d104 bne 0xac6 - abc: a886 add r0, sp, #536 ; 0x218 - abe: a9c6 add r1, sp, #792 ; 0x318 - ac0: 7809 ldrb r1, [r1, #0] - ac2: f000 ff8a bl 0x19da - ac6: 2001 mov r0, #1 - ac8: 9000 str r0, [sp, #0] - aca: 9800 ldr r0, [sp, #0] - acc: b07f add sp, #508 ; 0x1fc - ace: b048 add sp, #288 ; 0x120 - ad0: bd00 pop {pc} - -; Main entry routine at the same location as in the C139 version - ad2: b500 push {lr} - ad4: b082 sub sp, #8 - ad6: f7ff ff47 bl 0x968 - ada: f001 f881 bl 0x1be0 - ade: f000 fd47 bl 0x1570 - ae2: f000 f81f bl 0xb24 - ae6: f000 f940 bl 0xd6a - aea: b002 add sp, #8 - aec: bd00 pop {pc} - aee: 46c0 nop (mov r8, r8) - - af0: fffffa08 - af4: 0000ffff - af8: fffffa0a - afc: fffff804 - b00: ffff9800 - b04: 00002002 - b08: fffffd00 - b0c: 00001001 - - b10: e3a0d502 mov sp, #8388608 ; 0x800000 - b14: e28dd802 add sp, sp, #131072 ; 0x20000 - b18: e28fe005 add lr, pc, #5 - b1c: e12fff1e bx lr - b20: e1a00000 mov r0, r0 - -; 0xb24 function appears to be the same as in the C139 version, -; but calls 0xed4 instead of 0xf2c. - b24: b500 push {lr} - b26: b082 sub sp, #8 - b28: 49e8 ldr r1, =0x83ff00 ; via 0xecc - b2a: 48e9 ldr r0, =0xffff5800 ; via 0xed0 - b2c: 6008 str r0, [r1, #0] - b2e: 2000 mov r0, #0 - b30: 2102 mov r1, #2 - b32: f000 f9cf bl 0xed4 - b36: 2000 mov r0, #0 - b38: 9000 str r0, [sp, #0] - b3a: 9900 ldr r1, [sp, #0] - b3c: 2005 mov r0, #5 - b3e: 0300 lsl r0, r0, #12 - b40: 4281 cmp r1, r0 - b42: d207 bcs 0xb54 - b44: 9800 ldr r0, [sp, #0] - b46: 3001 add r0, #1 - b48: 9000 str r0, [sp, #0] - b4a: 9900 ldr r1, [sp, #0] - b4c: 2005 mov r0, #5 - b4e: 0300 lsl r0, r0, #12 - b50: 4281 cmp r1, r0 - b52: d3f7 bcc 0xb44 - b54: f000 f82a bl 0xbac - b58: 2000 mov r0, #0 - b5a: 2107 mov r1, #7 - b5c: f000 f9ba bl 0xed4 - b60: 2000 mov r0, #0 - b62: 9000 str r0, [sp, #0] - b64: 9900 ldr r1, [sp, #0] - b66: 2005 mov r0, #5 - b68: 0300 lsl r0, r0, #12 - b6a: 4281 cmp r1, r0 - b6c: d207 bcs 0xb7e - b6e: 9800 ldr r0, [sp, #0] - b70: 3001 add r0, #1 - b72: 9000 str r0, [sp, #0] - b74: 9900 ldr r1, [sp, #0] - b76: 2005 mov r0, #5 - b78: 0300 lsl r0, r0, #12 - b7a: 4281 cmp r1, r0 - b7c: d3f7 bcc 0xb6e - b7e: f000 f815 bl 0xbac - b82: 2000 mov r0, #0 - b84: 9001 str r0, [sp, #4] - b86: 9000 str r0, [sp, #0] - b88: 9900 ldr r1, [sp, #0] - b8a: 2005 mov r0, #5 - b8c: 0400 lsl r0, r0, #16 - b8e: 4281 cmp r1, r0 - b90: d20a bcs 0xba8 - b92: 9801 ldr r0, [sp, #4] - b94: 3001 add r0, #1 - b96: 9001 str r0, [sp, #4] - b98: 9800 ldr r0, [sp, #0] - b9a: 3001 add r0, #1 - b9c: 9000 str r0, [sp, #0] - b9e: 9900 ldr r1, [sp, #0] - ba0: 2005 mov r0, #5 - ba2: 0400 lsl r0, r0, #16 - ba4: 4281 cmp r1, r0 - ba6: d3f4 bcc 0xb92 - ba8: b002 add sp, #8 - baa: bd00 pop {pc} - -; serial download protocol - bac: b500 push {lr} - bae: b086 sub sp, #24 ; 0x18 - bb0: 48f3 ldr r0, =0x800100 ; via 0xf80 - bb2: 9005 str r0, [sp, #20] ; 0x14 - bb4: 201b mov r0, #27 ; 0x1b - bb6: f000 f935 bl 0xe24 - bba: 20f6 mov r0, #246 ; 0xf6 - bbc: f000 f932 bl 0xe24 - bc0: 2002 mov r0, #2 - bc2: f000 f92f bl 0xe24 - bc6: 2000 mov r0, #0 - bc8: f000 f92c bl 0xe24 - bcc: 2041 mov r0, #65 ; 0x41 - bce: f000 f929 bl 0xe24 - bd2: 2001 mov r0, #1 - bd4: f000 f926 bl 0xe24 - bd8: 2040 mov r0, #64 ; 0x40 - bda: f000 f923 bl 0xe24 - bde: 2001 mov r0, #1 - be0: 0300 lsl r0, r0, #12 - be2: f000 f937 bl 0xe54 - be6: 281b cmp r0, #27 ; 0x1b - be8: d000 beq 0xbec - bea: e0bc b 0xd66 - bec: 2001 mov r0, #1 - bee: 0300 lsl r0, r0, #12 - bf0: f000 f930 bl 0xe54 - bf4: 28f6 cmp r0, #246 ; 0xf6 - bf6: d000 beq 0xbfa - bf8: e0b5 b 0xd66 - bfa: 2001 mov r0, #1 - bfc: 0300 lsl r0, r0, #12 - bfe: f000 f929 bl 0xe54 - c02: 2802 cmp r0, #2 - c04: d000 beq 0xc08 - c06: e0ae b 0xd66 - c08: 2001 mov r0, #1 - c0a: 0300 lsl r0, r0, #12 - c0c: f000 f922 bl 0xe54 - c10: 2800 cmp r0, #0 - c12: d000 beq 0xc16 - c14: e0a7 b 0xd66 - c16: 2001 mov r0, #1 - c18: 0300 lsl r0, r0, #12 - c1a: f000 f91b bl 0xe54 - c1e: 2852 cmp r0, #82 ; 0x52 - c20: d000 beq 0xc24 - c22: e0a0 b 0xd66 - c24: 2001 mov r0, #1 - c26: 0300 lsl r0, r0, #12 - c28: f000 f914 bl 0xe54 - c2c: 2801 cmp r0, #1 - c2e: d000 beq 0xc32 - c30: e099 b 0xd66 - c32: 2001 mov r0, #1 - c34: 0300 lsl r0, r0, #12 - c36: f000 f90d bl 0xe54 - c3a: 2853 cmp r0, #83 ; 0x53 - c3c: d000 beq 0xc40 - c3e: e092 b 0xd66 - c40: 201b mov r0, #27 ; 0x1b - c42: f000 f8ef bl 0xe24 - c46: 20f6 mov r0, #246 ; 0xf6 - c48: f000 f8ec bl 0xe24 - c4c: 2002 mov r0, #2 - c4e: f000 f8e9 bl 0xe24 - c52: 2000 mov r0, #0 - c54: f000 f8e6 bl 0xe24 - c58: 2041 mov r0, #65 ; 0x41 - c5a: f000 f8e3 bl 0xe24 - c5e: 2002 mov r0, #2 - c60: f000 f8e0 bl 0xe24 - c64: 2043 mov r0, #67 ; 0x43 - c66: f000 f8dd bl 0xe24 - c6a: 2001 mov r0, #1 - c6c: 0300 lsl r0, r0, #12 - c6e: f000 f8f1 bl 0xe54 - c72: 4669 mov r1, sp - c74: 7208 strb r0, [r1, #8] - c76: 4668 mov r0, sp - c78: 2102 mov r1, #2 - c7a: 7441 strb r1, [r0, #17] ; 0x11 - c7c: 2000 mov r0, #0 - c7e: 9000 str r0, [sp, #0] - c80: 9800 ldr r0, [sp, #0] - c82: 2802 cmp r0, #2 - c84: d216 bcs 0xcb4 - c86: 2001 mov r0, #1 - c88: 0300 lsl r0, r0, #12 - c8a: f000 f8e3 bl 0xe54 - c8e: 466a mov r2, sp - c90: 9900 ldr r1, [sp, #0] - c92: 1a51 sub r1, r2, r1 - c94: 7348 strb r0, [r1, #13] ; 0xd - c96: 4668 mov r0, sp - c98: 9900 ldr r1, [sp, #0] - c9a: 1a40 sub r0, r0, r1 - c9c: 7b40 ldrb r0, [r0, #13] ; 0xd - c9e: 4669 mov r1, sp - ca0: 7c49 ldrb r1, [r1, #17] ; 0x11 - ca2: 4048 eor r0, r1 - ca4: 4669 mov r1, sp - ca6: 7448 strb r0, [r1, #17] ; 0x11 - ca8: 9800 ldr r0, [sp, #0] - caa: 3001 add r0, #1 - cac: 9000 str r0, [sp, #0] - cae: 9800 ldr r0, [sp, #0] - cb0: 2802 cmp r0, #2 - cb2: d3e8 bcc 0xc86 - cb4: 4668 mov r0, sp - cb6: 8980 ldrh r0, [r0, #12] ; 0xc - cb8: 466a mov r2, sp - cba: 1e41 sub r1, r0, #1 - cbc: 8191 strh r1, [r2, #12] ; 0xc - cbe: 2800 cmp r0, #0 - cc0: d016 beq 0xcf0 - cc2: 2001 mov r0, #1 - cc4: 0300 lsl r0, r0, #12 - cc6: f000 f8c5 bl 0xe54 - cca: 9905 ldr r1, [sp, #20] ; 0x14 - ccc: 7008 strb r0, [r1, #0] - cce: 9805 ldr r0, [sp, #20] ; 0x14 - cd0: 7801 ldrb r1, [r0, #0] - cd2: 4668 mov r0, sp - cd4: 7c40 ldrb r0, [r0, #17] ; 0x11 - cd6: 4041 eor r1, r0 - cd8: 4668 mov r0, sp - cda: 7441 strb r1, [r0, #17] ; 0x11 - cdc: 9805 ldr r0, [sp, #20] ; 0x14 - cde: 3001 add r0, #1 - ce0: 9005 str r0, [sp, #20] ; 0x14 - ce2: 4668 mov r0, sp - ce4: 8982 ldrh r2, [r0, #12] ; 0xc - ce6: 4669 mov r1, sp - ce8: 1e50 sub r0, r2, #1 - cea: 8188 strh r0, [r1, #12] ; 0xc - cec: 2a00 cmp r2, #0 - cee: d1e8 bne 0xcc2 - cf0: 2001 mov r0, #1 - cf2: 0300 lsl r0, r0, #12 - cf4: f000 f8ae bl 0xe54 - cf8: 4669 mov r1, sp - cfa: 7408 strb r0, [r1, #16] ; 0x10 - cfc: 4668 mov r0, sp - cfe: 7c01 ldrb r1, [r0, #16] ; 0x10 - d00: 7c40 ldrb r0, [r0, #17] ; 0x11 - d02: 4281 cmp r1, r0 - d04: d015 beq 0xd32 - d06: 201b mov r0, #27 ; 0x1b - d08: f000 f88c bl 0xe24 - d0c: 20f6 mov r0, #246 ; 0xf6 - d0e: f000 f889 bl 0xe24 - d12: 2002 mov r0, #2 - d14: f000 f886 bl 0xe24 - d18: 2000 mov r0, #0 - d1a: f000 f883 bl 0xe24 - d1e: 2045 mov r0, #69 ; 0x45 - d20: f000 f880 bl 0xe24 - d24: 2053 mov r0, #83 ; 0x53 - d26: f000 f87d bl 0xe24 - d2a: 2016 mov r0, #22 ; 0x16 - d2c: f000 f87a bl 0xe24 - d30: e019 b 0xd66 - d32: 201b mov r0, #27 ; 0x1b - d34: f000 f876 bl 0xe24 - d38: 20f6 mov r0, #246 ; 0xf6 - d3a: f000 f873 bl 0xe24 - d3e: 2002 mov r0, #2 - d40: f000 f870 bl 0xe24 - d44: 2000 mov r0, #0 - d46: f000 f86d bl 0xe24 - d4a: 2041 mov r0, #65 ; 0x41 - d4c: f000 f86a bl 0xe24 - d50: 2003 mov r0, #3 - d52: f000 f867 bl 0xe24 - d56: 2042 mov r0, #66 ; 0x42 - d58: f000 f864 bl 0xe24 - d5c: 485b ldr r0, =0x83ff00 ; via 0xecc - d5e: 6800 ldr r0, [r0, #0] - d60: 498f ldr r1, =0x800100 ; via 0xfa0 - d62: f000 f85e bl 0xe22 - d66: b006 add sp, #24 ; 0x18 - d68: bd00 pop {pc} - - d6a: b500 push {lr} - d6c: b081 sub sp, #4 - d6e: 2066 mov r0, #102 ; 0x66 - d70: f000 f858 bl 0xe24 - d74: 2074 mov r0, #116 ; 0x74 - d76: f000 f855 bl 0xe24 - d7a: 206d mov r0, #109 ; 0x6d - d7c: f000 f852 bl 0xe24 - d80: 2074 mov r0, #116 ; 0x74 - d82: f000 f84f bl 0xe24 - d86: 206f mov r0, #111 ; 0x6f - d88: f000 f84c bl 0xe24 - d8c: 206f mov r0, #111 ; 0x6f - d8e: f000 f849 bl 0xe24 - d92: 206c mov r0, #108 ; 0x6c - d94: f000 f846 bl 0xe24 - d98: 4982 ldr r1, =0x83ff80 ; via 0xfa4 - d9a: 2000 mov r0, #0 - d9c: 7008 strb r0, [r1, #0] - d9e: 9000 str r0, [sp, #0] - da0: 9800 ldr r0, [sp, #0] - da2: 0c00 lsr r0, r0, #16 - da4: d105 bne 0xdb2 - da6: 9800 ldr r0, [sp, #0] - da8: 3001 add r0, #1 - daa: 9000 str r0, [sp, #0] - dac: 9800 ldr r0, [sp, #0] - dae: 0c00 lsr r0, r0, #16 - db0: d0f9 beq 0xda6 - db2: 2007 mov r0, #7 - db4: 0400 lsl r0, r0, #16 - db6: f000 f84d bl 0xe54 - dba: 2879 cmp r0, #121 ; 0x79 - dbc: d10e bne 0xddc - dbe: 2001 mov r0, #1 - dc0: 0300 lsl r0, r0, #12 - dc2: f000 f847 bl 0xe54 - dc6: 2865 cmp r0, #101 ; 0x65 - dc8: d108 bne 0xddc - dca: 2001 mov r0, #1 - dcc: 0300 lsl r0, r0, #12 - dce: f000 f841 bl 0xe54 - dd2: 2873 cmp r0, #115 ; 0x73 - dd4: d102 bne 0xddc - dd6: 4873 ldr r0, =0x83ff80 ; via 0xfa4 - dd8: 2101 mov r1, #1 - dda: 7001 strb r1, [r0, #0] - ddc: f000 f8cc bl 0xf78 - de0: 2800 cmp r0, #0 - de2: d00d beq 0xe00 - de4: 206d mov r0, #109 ; 0x6d - de6: f000 f81d bl 0xe24 - dea: 206f mov r0, #111 ; 0x6f - dec: f000 f81a bl 0xe24 - df0: 2064 mov r0, #100 ; 0x64 - df2: f000 f817 bl 0xe24 - df6: 2065 mov r0, #101 ; 0x65 - df8: f000 f814 bl 0xe24 - dfc: 206d mov r0, #109 ; 0x6d - dfe: e00c b 0xe1a - e00: 2065 mov r0, #101 ; 0x65 - e02: f000 f80f bl 0xe24 - e06: 2072 mov r0, #114 ; 0x72 - e08: f000 f80c bl 0xe24 - e0c: 2072 mov r0, #114 ; 0x72 - e0e: f000 f809 bl 0xe24 - e12: 206f mov r0, #111 ; 0x6f - e14: f000 f806 bl 0xe24 - e18: 2072 mov r0, #114 ; 0x72 - e1a: f000 f803 bl 0xe24 - e1e: b001 add sp, #4 - e20: bd00 pop {pc} - -; corresponds to 0xe76 in the C139 version - e22: 4708 bx r1 - -; UART character output routine, corresponds to 0xe78 in the C139 version - e24: b081 sub sp, #4 - e26: 4669 mov r1, sp - e28: 7008 strb r0, [r1, #0] - e2a: 4828 ldr r0, =0x83ff00 ; via 0xecc - e2c: 6800 ldr r0, [r0, #0] - e2e: 7940 ldrb r0, [r0, #5] - e30: 0980 lsr r0, r0, #6 - e32: d3fa bcc 0xe2a - e34: 4825 ldr r0, =0x83ff00 ; via 0xecc - e36: 6800 ldr r0, [r0, #0] - e38: 4669 mov r1, sp - e3a: 7809 ldrb r1, [r1, #0] - e3c: 7001 strb r1, [r0, #0] - e3e: b001 add sp, #4 - e40: 46f7 mov pc, lr - - e42: 4822 ldr r0, =0x83ff00 ; via 0xecc - e44: 6800 ldr r0, [r0, #0] - e46: 7940 ldrb r0, [r0, #5] - e48: 0840 lsr r0, r0, #1 - e4a: d3fa bcc 0xe42 - e4c: 481f ldr r0, =0x83ff00 ; via 0xecc - e4e: 6800 ldr r0, [r0, #0] - e50: 7800 ldrb r0, [r0, #0] - e52: 4770 bx lr - -; should correspond to 0xea8 in the C139 version - e54: b083 sub sp, #12 ; 0xc - e56: 9000 str r0, [sp, #0] - e58: 9800 ldr r0, [sp, #0] - e5a: 9002 str r0, [sp, #8] - e5c: 481b ldr r0, =0x83ff00 ; via 0xecc - e5e: 6800 ldr r0, [r0, #0] - e60: 7940 ldrb r0, [r0, #5] - e62: 0840 lsr r0, r0, #1 - e64: d20c bcs 0xe80 - e66: 9802 ldr r0, [sp, #8] - e68: 3801 sub r0, #1 - e6a: 9002 str r0, [sp, #8] - e6c: 9802 ldr r0, [sp, #8] - e6e: 2800 cmp r0, #0 - e70: d101 bne 0xe76 - e72: 20ff mov r0, #255 ; 0xff - e74: e007 b 0xe86 - e76: 4815 ldr r0, =0x83ff00 ; via 0xecc - e78: 6800 ldr r0, [r0, #0] - e7a: 7940 ldrb r0, [r0, #5] - e7c: 0840 lsr r0, r0, #1 - e7e: d3f2 bcc 0xe66 - e80: 4812 ldr r0, =0x83ff00 ; via 0xecc - e82: 6800 ldr r0, [r0, #0] - e84: 7800 ldrb r0, [r0, #0] - e86: b003 add sp, #12 ; 0xc - e88: 4770 bx lr - - e8a: b081 sub sp, #4 - e8c: e001 b 0xe92 - e8e: 9800 ldr r0, [sp, #0] - e90: 3801 sub r0, #1 - e92: 9000 str r0, [sp, #0] - e94: 480d ldr r0, =0x83ff00 ; via 0xecc - e96: 6800 ldr r0, [r0, #0] - e98: 7940 ldrb r0, [r0, #5] - e9a: 0840 lsr r0, r0, #1 - e9c: d202 bcs 0xea4 - e9e: 9800 ldr r0, [sp, #0] - ea0: 2800 cmp r0, #0 - ea2: dcf4 bgt 0xe8e - ea4: 9800 ldr r0, [sp, #0] - ea6: 2800 cmp r0, #0 - ea8: dd01 ble 0xeae - eaa: 2000 mov r0, #0 - eac: e000 b 0xeb0 - eae: 2001 mov r0, #1 - eb0: b001 add sp, #4 - eb2: 4770 bx lr - eb4: b082 sub sp, #8 - eb6: 9000 str r0, [sp, #0] - eb8: 4669 mov r1, sp - eba: 2000 mov r0, #0 - ebc: 7188 strb r0, [r1, #6] - ebe: 9900 ldr r1, [sp, #0] - ec0: 4839 ldr r0, =0xfffef000 ; via 0xfa8 - ec2: 8800 ldrh r0, [r0, #0] - ec4: 8008 strh r0, [r1, #0] - ec6: b002 add sp, #8 - ec8: 4770 bx lr - eca: 46c0 nop (mov r8, r8) - - ecc: 0083ff00 - ed0: ffff5800 - -; should be the same as 0xf2c in the C139 version - ed4: b081 sub sp, #4 - ed6: 466a mov r2, sp - ed8: 7051 strb r1, [r2, #1] - eda: 4669 mov r1, sp - edc: 7008 strb r0, [r1, #0] - ede: 4933 ldr r1, =0xffff6000 ; via 0xfac - ee0: 2002 mov r0, #2 - ee2: 880a ldrh r2, [r1, #0] - ee4: 4310 orr r0, r2 - ee6: 8008 strh r0, [r1, #0] - ee8: 4830 ldr r0, =0xffff6000 ; via 0xfac - eea: 8801 ldrh r1, [r0, #0] - eec: 0849 lsr r1, r1, #1 - eee: 0049 lsl r1, r1, #1 - ef0: 8001 strh r1, [r0, #0] - ef2: 492e ldr r1, =0xffff6000 ; via 0xfac - ef4: 8808 ldrh r0, [r1, #0] - ef6: 2202 mov r2, #2 - ef8: 4390 bic r0, r2 - efa: 8008 strh r0, [r1, #0] - efc: 482c ldr r0, =0x83ff00 ; via 0xfb0 - efe: 6801 ldr r1, [r0, #0] - f00: 2007 mov r0, #7 - f02: 7208 strb r0, [r1, #8] - f04: 482a ldr r0, =0x83ff00 ; via 0xfb0 - f06: 6801 ldr r1, [r0, #0] - f08: 20bf mov r0, #191 ; 0xbf - f0a: 70c8 strb r0, [r1, #3] - f0c: 4828 ldr r0, =0x83ff00 ; via 0xfb0 - f0e: 6800 ldr r0, [r0, #0] - f10: 1c80 add r0, r0, #2 - f12: 2110 mov r1, #16 ; 0x10 - f14: 8802 ldrh r2, [r0, #0] - f16: 4311 orr r1, r2 - f18: 8001 strh r1, [r0, #0] - f1a: 4825 ldr r0, =0x83ff00 ; via 0xfb0 - f1c: 6801 ldr r1, [r0, #0] - f1e: 2080 mov r0, #128 ; 0x80 - f20: 70c8 strb r0, [r1, #3] - f22: 4823 ldr r0, =0x83ff00 ; via 0xfb0 - f24: 6800 ldr r0, [r0, #0] - f26: 2107 mov r1, #7 - f28: 7081 strb r1, [r0, #2] - f2a: 4821 ldr r0, =0x83ff00 ; via 0xfb0 - f2c: 6800 ldr r0, [r0, #0] - f2e: 21bf mov r1, #191 ; 0xbf - f30: 70c1 strb r1, [r0, #3] - f32: 481f ldr r0, =0x83ff00 ; via 0xfb0 - f34: 6801 ldr r1, [r0, #0] - f36: 4668 mov r0, sp - f38: 7840 ldrb r0, [r0, #1] - f3a: 7008 strb r0, [r1, #0] - f3c: 481c ldr r0, =0x83ff00 ; via 0xfb0 - f3e: 6801 ldr r1, [r0, #0] - f40: 4668 mov r0, sp - f42: 7800 ldrb r0, [r0, #0] - f44: 7048 strb r0, [r1, #1] - f46: 481a ldr r0, =0x83ff00 ; via 0xfb0 - f48: 6801 ldr r1, [r0, #0] - f4a: 2003 mov r0, #3 - f4c: 70c8 strb r0, [r1, #3] - f4e: 4818 ldr r0, =0x83ff00 ; via 0xfb0 - f50: 6800 ldr r0, [r0, #0] - f52: 2100 mov r1, #0 - f54: 7201 strb r1, [r0, #8] - f56: 4816 ldr r0, =0x83ff00 ; via 0xfb0 - f58: 6800 ldr r0, [r0, #0] - f5a: 7940 ldrb r0, [r0, #5] - f5c: 0840 lsr r0, r0, #1 - f5e: d309 bcc 0xf74 - f60: 4669 mov r1, sp - f62: 4813 ldr r0, =0x83ff00 ; via 0xfb0 - f64: 6800 ldr r0, [r0, #0] - f66: 7800 ldrb r0, [r0, #0] - f68: 7088 strb r0, [r1, #2] - f6a: 4811 ldr r0, =0x83ff00 ; via 0xfb0 - f6c: 6800 ldr r0, [r0, #0] - f6e: 7940 ldrb r0, [r0, #5] - f70: 0840 lsr r0, r0, #1 - f72: d2f5 bcs 0xf60 - f74: b001 add sp, #4 - f76: 4770 bx lr - - f78: 480a ldr r0, =0x83ff80 ; via 0xfa4 - f7a: 7800 ldrb r0, [r0, #0] - f7c: 4770 bx lr - f7e: 46c0 nop (mov r8, r8) - - f80: 00800100 - - f84: b500 push {lr} - f86: b081 sub sp, #4 - f88: 4669 mov r1, sp - f8a: 7008 strb r0, [r1, #0] - f8c: 4668 mov r0, sp - f8e: 7800 ldrb r0, [r0, #0] - f90: f7ff ff48 bl 0xe24 - f94: b001 add sp, #4 - f96: bd00 pop {pc} - f98: b500 push {lr} - f9a: f7ff ff52 bl 0xe42 - f9e: bd00 pop {pc} - fa0: 0100 lsl r0, r0, #4 - fa2: 0080 lsl r0, r0, #2 - fa4: ff80 - fa6: 0083 lsl r3, r0, #2 - fa8: f000 fffe bl 0x1fa8 - fac: 6000 str r0, [r0, #0] - fae: ffff - fb0: ff00 - fb2: 0083 lsl r3, r0, #2 - fb4: 4700 bx r0 - fb6: 0000 lsl r0, r0, #0 - fb8: b08c sub sp, #48 ; 0x30 - fba: 9101 str r1, [sp, #4] - fbc: 9000 str r0, [sp, #0] - fbe: 2000 mov r0, #0 - fc0: 9003 str r0, [sp, #12] ; 0xc - fc2: 9800 ldr r0, [sp, #0] - fc4: 7801 ldrb r1, [r0, #0] - fc6: 3001 add r0, #1 - fc8: 9000 str r0, [sp, #0] - fca: 9105 str r1, [sp, #20] ; 0x14 - fcc: 9800 ldr r0, [sp, #0] - fce: 7801 ldrb r1, [r0, #0] - fd0: 3001 add r0, #1 - fd2: 9000 str r0, [sp, #0] - fd4: 9801 ldr r0, [sp, #4] - fd6: 7001 strb r1, [r0, #0] - fd8: 2001 mov r0, #1 - fda: 9004 str r0, [sp, #16] ; 0x10 - fdc: e0a8 b 0x1130 - fde: 9804 ldr r0, [sp, #16] ; 0x10 - fe0: 3002 add r0, #2 - fe2: 9004 str r0, [sp, #16] ; 0x10 - fe4: 9800 ldr r0, [sp, #0] - fe6: 7801 ldrb r1, [r0, #0] - fe8: 3001 add r0, #1 - fea: 9000 str r0, [sp, #0] - fec: 4668 mov r0, sp - fee: 8441 strh r1, [r0, #34] ; 0x22 - ff0: 9800 ldr r0, [sp, #0] - ff2: 7801 ldrb r1, [r0, #0] - ff4: 3001 add r0, #1 - ff6: 9000 str r0, [sp, #0] - ff8: 4668 mov r0, sp - ffa: 8401 strh r1, [r0, #32] ; 0x20 - ffc: 8c00 ldrh r0, [r0, #32] ; 0x20 - ffe: 4669 mov r1, sp - 1000: 8c49 ldrh r1, [r1, #34] ; 0x22 - 1002: 0209 lsl r1, r1, #8 - 1004: 1840 add r0, r0, r1 - 1006: 9901 ldr r1, [sp, #4] - 1008: 8088 strh r0, [r1, #4] - 100a: 9804 ldr r0, [sp, #16] ; 0x10 - 100c: 3001 add r0, #1 - 100e: 9004 str r0, [sp, #16] ; 0x10 - 1010: 9800 ldr r0, [sp, #0] - 1012: 7801 ldrb r1, [r0, #0] - 1014: 3001 add r0, #1 - 1016: 9000 str r0, [sp, #0] - 1018: 4668 mov r0, sp - 101a: 7601 strb r1, [r0, #24] ; 0x18 - 101c: 9901 ldr r1, [sp, #4] - 101e: 7e00 ldrb r0, [r0, #24] ; 0x18 - 1020: 7188 strb r0, [r1, #6] - 1022: 4668 mov r0, sp - 1024: 7e00 ldrb r0, [r0, #24] ; 0x18 - 1026: 2840 cmp r0, #64 ; 0x40 - 1028: dc00 bgt 0x102c - 102a: e09f b 0x116c - 102c: 2004 mov r0, #4 - 102e: 9003 str r0, [sp, #12] ; 0xc - 1030: e09c b 0x116c - 1032: 9804 ldr r0, [sp, #16] ; 0x10 - 1034: 3002 add r0, #2 - 1036: 9004 str r0, [sp, #16] ; 0x10 - 1038: 9800 ldr r0, [sp, #0] - 103a: 7801 ldrb r1, [r0, #0] - 103c: 3001 add r0, #1 - 103e: 9000 str r0, [sp, #0] - 1040: 4668 mov r0, sp - 1042: 8441 strh r1, [r0, #34] ; 0x22 - 1044: 9800 ldr r0, [sp, #0] - 1046: 7801 ldrb r1, [r0, #0] - 1048: 3001 add r0, #1 - 104a: 9000 str r0, [sp, #0] - 104c: 4668 mov r0, sp - 104e: 8401 strh r1, [r0, #32] ; 0x20 - 1050: 8c00 ldrh r0, [r0, #32] ; 0x20 - 1052: 4669 mov r1, sp - 1054: 8c49 ldrh r1, [r1, #34] ; 0x22 - 1056: 0209 lsl r1, r1, #8 - 1058: 1841 add r1, r0, r1 - 105a: 9801 ldr r0, [sp, #4] - 105c: 8081 strh r1, [r0, #4] - 105e: 9804 ldr r0, [sp, #16] ; 0x10 - 1060: 3001 add r0, #1 - 1062: 9004 str r0, [sp, #16] ; 0x10 - 1064: 9800 ldr r0, [sp, #0] - 1066: 7801 ldrb r1, [r0, #0] - 1068: 3001 add r0, #1 - 106a: 9000 str r0, [sp, #0] - 106c: 4668 mov r0, sp - 106e: 7601 strb r1, [r0, #24] ; 0x18 - 1070: 9901 ldr r1, [sp, #4] - 1072: 7e00 ldrb r0, [r0, #24] ; 0x18 - 1074: 7188 strb r0, [r1, #6] - 1076: 4668 mov r0, sp - 1078: 7e00 ldrb r0, [r0, #24] ; 0x18 - 107a: 2840 cmp r0, #64 ; 0x40 - 107c: dcd6 bgt 0x102c - 107e: 9801 ldr r0, [sp, #4] - 1080: 3008 add r0, #8 - 1082: 9007 str r0, [sp, #28] ; 0x1c - 1084: 2000 mov r0, #0 - 1086: 9002 str r0, [sp, #8] - 1088: 9902 ldr r1, [sp, #8] - 108a: 4668 mov r0, sp - 108c: 7e00 ldrb r0, [r0, #24] ; 0x18 - 108e: 4281 cmp r1, r0 - 1090: da6c bge 0x116c - 1092: 9800 ldr r0, [sp, #0] - 1094: 7801 ldrb r1, [r0, #0] - 1096: 3001 add r0, #1 - 1098: 9000 str r0, [sp, #0] - 109a: 4668 mov r0, sp - 109c: 84c1 strh r1, [r0, #38] ; 0x26 - 109e: 9800 ldr r0, [sp, #0] - 10a0: 7801 ldrb r1, [r0, #0] - 10a2: 3001 add r0, #1 - 10a4: 9000 str r0, [sp, #0] - 10a6: 4668 mov r0, sp - 10a8: 8481 strh r1, [r0, #36] ; 0x24 - 10aa: 9807 ldr r0, [sp, #28] ; 0x1c - 10ac: 1c81 add r1, r0, #2 - 10ae: 9107 str r1, [sp, #28] ; 0x1c - 10b0: 4669 mov r1, sp - 10b2: 8c89 ldrh r1, [r1, #36] ; 0x24 - 10b4: 466a mov r2, sp - 10b6: 8cd2 ldrh r2, [r2, #38] ; 0x26 - 10b8: 0212 lsl r2, r2, #8 - 10ba: 1889 add r1, r1, r2 - 10bc: 8001 strh r1, [r0, #0] - 10be: 9804 ldr r0, [sp, #16] ; 0x10 - 10c0: 3002 add r0, #2 - 10c2: 9004 str r0, [sp, #16] ; 0x10 - 10c4: 9802 ldr r0, [sp, #8] - 10c6: 3001 add r0, #1 - 10c8: 9002 str r0, [sp, #8] - 10ca: 9902 ldr r1, [sp, #8] - 10cc: 4668 mov r0, sp - 10ce: 7e00 ldrb r0, [r0, #24] ; 0x18 - 10d0: 4281 cmp r1, r0 - 10d2: dbde blt 0x1092 - 10d4: e04a b 0x116c - 10d6: 9804 ldr r0, [sp, #16] ; 0x10 - 10d8: 3002 add r0, #2 - 10da: 9004 str r0, [sp, #16] ; 0x10 - 10dc: 9800 ldr r0, [sp, #0] - 10de: 7801 ldrb r1, [r0, #0] - 10e0: 3001 add r0, #1 - 10e2: 9000 str r0, [sp, #0] - 10e4: 4668 mov r0, sp - 10e6: 8501 strh r1, [r0, #40] ; 0x28 - 10e8: 9800 ldr r0, [sp, #0] - 10ea: 7801 ldrb r1, [r0, #0] - 10ec: 3001 add r0, #1 - 10ee: 9000 str r0, [sp, #0] - 10f0: 4668 mov r0, sp - 10f2: 8541 strh r1, [r0, #42] ; 0x2a - 10f4: 8d41 ldrh r1, [r0, #42] ; 0x2a - 10f6: 8d00 ldrh r0, [r0, #40] ; 0x28 - 10f8: 0200 lsl r0, r0, #8 - 10fa: 1809 add r1, r1, r0 - 10fc: 9801 ldr r0, [sp, #4] - 10fe: 8081 strh r1, [r0, #4] - 1100: 9804 ldr r0, [sp, #16] ; 0x10 - 1102: 3002 add r0, #2 - 1104: 9004 str r0, [sp, #16] ; 0x10 - 1106: 9800 ldr r0, [sp, #0] - 1108: 7801 ldrb r1, [r0, #0] - 110a: 3001 add r0, #1 - 110c: 9000 str r0, [sp, #0] - 110e: 4668 mov r0, sp - 1110: 8581 strh r1, [r0, #44] ; 0x2c - 1112: 9800 ldr r0, [sp, #0] - 1114: 7801 ldrb r1, [r0, #0] - 1116: 3001 add r0, #1 - 1118: 9000 str r0, [sp, #0] - 111a: 4668 mov r0, sp - 111c: 85c1 strh r1, [r0, #46] ; 0x2e - 111e: 8dc1 ldrh r1, [r0, #46] ; 0x2e - 1120: 8d80 ldrh r0, [r0, #44] ; 0x2c - 1122: 0200 lsl r0, r0, #8 - 1124: 1808 add r0, r1, r0 - 1126: 9901 ldr r1, [sp, #4] - 1128: 80c8 strh r0, [r1, #6] - 112a: e01f b 0x116c - 112c: 2008 mov r0, #8 - 112e: e77e b 0x102e - 1130: 9801 ldr r0, [sp, #4] - 1132: 7801 ldrb r1, [r0, #0] - 1134: 290a cmp r1, #10 ; 0xa - 1136: d8f9 bhi 0x112c - 1138: a001 add r0, pc, #4 - 113a: 0089 lsl r1, r1, #2 - 113c: 5840 ldr r0, [r0, r1] - 113e: 4687 mov pc, r0 - 1140: 116c asr r4, r5, #5 - 1142: 0000 lsl r0, r0, #0 - 1144: 116c asr r4, r5, #5 - 1146: 0000 lsl r0, r0, #0 - 1148: 116c asr r4, r5, #5 - 114a: 0000 lsl r0, r0, #0 - 114c: 116c asr r4, r5, #5 - 114e: 0000 lsl r0, r0, #0 - 1150: 116c asr r4, r5, #5 - 1152: 0000 lsl r0, r0, #0 - 1154: 116c asr r4, r5, #5 - 1156: 0000 lsl r0, r0, #0 - 1158: 116c asr r4, r5, #5 - 115a: 0000 lsl r0, r0, #0 - 115c: 0fde lsr r6, r3, #31 - 115e: 0000 lsl r0, r0, #0 - 1160: 1032 asr r2, r6, #32 - 1162: 0000 lsl r0, r0, #0 - 1164: 116c asr r4, r5, #5 - 1166: 0000 lsl r0, r0, #0 - 1168: 10d6 asr r6, r2, #3 - 116a: 0000 lsl r0, r0, #0 - 116c: 9905 ldr r1, [sp, #20] ; 0x14 - 116e: 9804 ldr r0, [sp, #16] ; 0x10 - 1170: 4281 cmp r1, r0 - 1172: d001 beq 0x1178 - 1174: 2004 mov r0, #4 - 1176: 9003 str r0, [sp, #12] ; 0xc - 1178: 9803 ldr r0, [sp, #12] ; 0xc - 117a: b00c add sp, #48 ; 0x30 - 117c: 4770 bx lr - 117e: b089 sub sp, #36 ; 0x24 - 1180: 9101 str r1, [sp, #4] - 1182: 9000 str r0, [sp, #0] - 1184: 2000 mov r0, #0 - 1186: 9003 str r0, [sp, #12] ; 0xc - 1188: 9801 ldr r0, [sp, #4] - 118a: 1c41 add r1, r0, #1 - 118c: 9101 str r1, [sp, #4] - 118e: 9005 str r0, [sp, #20] ; 0x14 - 1190: 9801 ldr r0, [sp, #4] - 1192: 1c41 add r1, r0, #1 - 1194: 9101 str r1, [sp, #4] - 1196: 9900 ldr r1, [sp, #0] - 1198: 7809 ldrb r1, [r1, #0] - 119a: 7001 strb r1, [r0, #0] - 119c: 4669 mov r1, sp - 119e: 2001 mov r0, #1 - 11a0: 7408 strb r0, [r1, #16] ; 0x10 - 11a2: 9801 ldr r0, [sp, #4] - 11a4: 1c41 add r1, r0, #1 - 11a6: 9101 str r1, [sp, #4] - 11a8: 9900 ldr r1, [sp, #0] - 11aa: 7849 ldrb r1, [r1, #1] - 11ac: 7001 strb r1, [r0, #0] - 11ae: 4669 mov r1, sp - 11b0: 4668 mov r0, sp - 11b2: 7c00 ldrb r0, [r0, #16] ; 0x10 - 11b4: 3001 add r0, #1 - 11b6: 7408 strb r0, [r1, #16] ; 0x10 - 11b8: e0e4 b 0x1384 - 11ba: 9800 ldr r0, [sp, #0] - 11bc: 7840 ldrb r0, [r0, #1] - 11be: 2800 cmp r0, #0 - 11c0: d000 beq 0x11c4 - 11c2: e0fd b 0x13c0 - 11c4: 9801 ldr r0, [sp, #4] - 11c6: 1c41 add r1, r0, #1 - 11c8: 9101 str r1, [sp, #4] - 11ca: 9900 ldr r1, [sp, #0] - 11cc: 7909 ldrb r1, [r1, #4] - 11ce: 7001 strb r1, [r0, #0] - 11d0: 9801 ldr r0, [sp, #4] - 11d2: 1c41 add r1, r0, #1 - 11d4: 9101 str r1, [sp, #4] - 11d6: 9900 ldr r1, [sp, #0] - 11d8: 7949 ldrb r1, [r1, #5] - 11da: 7001 strb r1, [r0, #0] - 11dc: 9801 ldr r0, [sp, #4] - 11de: 1c41 add r1, r0, #1 - 11e0: 9101 str r1, [sp, #4] - 11e2: 9900 ldr r1, [sp, #0] - 11e4: 7989 ldrb r1, [r1, #6] - 11e6: 7001 strb r1, [r0, #0] - 11e8: 4668 mov r0, sp - 11ea: 7c00 ldrb r0, [r0, #16] ; 0x10 - 11ec: 3003 add r0, #3 - 11ee: 4669 mov r1, sp - 11f0: 7408 strb r0, [r1, #16] ; 0x10 - 11f2: e0e5 b 0x13c0 - 11f4: 9800 ldr r0, [sp, #0] - 11f6: 7840 ldrb r0, [r0, #1] - 11f8: 2800 cmp r0, #0 - 11fa: d000 beq 0x11fe - 11fc: e0e0 b 0x13c0 - 11fe: 9801 ldr r0, [sp, #4] - 1200: 1c41 add r1, r0, #1 - 1202: 9101 str r1, [sp, #4] - 1204: 9900 ldr r1, [sp, #0] - 1206: 7909 ldrb r1, [r1, #4] - 1208: 7001 strb r1, [r0, #0] - 120a: 4668 mov r0, sp - 120c: 7c00 ldrb r0, [r0, #16] ; 0x10 - 120e: 3001 add r0, #1 - 1210: e7ed b 0x11ee - 1212: 9800 ldr r0, [sp, #0] - 1214: 7840 ldrb r0, [r0, #1] - 1216: 2800 cmp r0, #0 - 1218: d000 beq 0x121c - 121a: e0d1 b 0x13c0 - 121c: e7ef b 0x11fe - 121e: 9800 ldr r0, [sp, #0] - 1220: 7840 ldrb r0, [r0, #1] - 1222: 2800 cmp r0, #0 - 1224: d000 beq 0x1228 - 1226: e0cb b 0x13c0 - 1228: e7e9 b 0x11fe - 122a: 9800 ldr r0, [sp, #0] - 122c: 7840 ldrb r0, [r0, #1] - 122e: 2800 cmp r0, #0 - 1230: d000 beq 0x1234 - 1232: e0c5 b 0x13c0 - 1234: 4669 mov r1, sp - 1236: 9800 ldr r0, [sp, #0] - 1238: 8880 ldrh r0, [r0, #4] - 123a: 8408 strh r0, [r1, #32] ; 0x20 - 123c: 9801 ldr r0, [sp, #4] - 123e: 1c41 add r1, r0, #1 - 1240: 9101 str r1, [sp, #4] - 1242: 4669 mov r1, sp - 1244: 8c09 ldrh r1, [r1, #32] ; 0x20 - 1246: 0409 lsl r1, r1, #16 - 1248: 0e09 lsr r1, r1, #24 - 124a: 0209 lsl r1, r1, #8 - 124c: 1209 asr r1, r1, #8 - 124e: 7001 strb r1, [r0, #0] - 1250: 9801 ldr r0, [sp, #4] - 1252: 1c41 add r1, r0, #1 - 1254: 9101 str r1, [sp, #4] - 1256: 4669 mov r1, sp - 1258: 8c09 ldrh r1, [r1, #32] ; 0x20 - 125a: 0609 lsl r1, r1, #24 - 125c: 0e09 lsr r1, r1, #24 - 125e: 7001 strb r1, [r0, #0] - 1260: 4669 mov r1, sp - 1262: 9800 ldr r0, [sp, #0] - 1264: 88c0 ldrh r0, [r0, #6] - 1266: 8408 strh r0, [r1, #32] ; 0x20 - 1268: 9801 ldr r0, [sp, #4] - 126a: 1c41 add r1, r0, #1 - 126c: 9101 str r1, [sp, #4] - 126e: 4669 mov r1, sp - 1270: 8c09 ldrh r1, [r1, #32] ; 0x20 - 1272: 0409 lsl r1, r1, #16 - 1274: 0e09 lsr r1, r1, #24 - 1276: 0209 lsl r1, r1, #8 - 1278: 1209 asr r1, r1, #8 - 127a: 7001 strb r1, [r0, #0] - 127c: 9801 ldr r0, [sp, #4] - 127e: 1c41 add r1, r0, #1 - 1280: 9101 str r1, [sp, #4] - 1282: 4669 mov r1, sp - 1284: 8c09 ldrh r1, [r1, #32] ; 0x20 - 1286: 0609 lsl r1, r1, #24 - 1288: 0e09 lsr r1, r1, #24 - 128a: 7001 strb r1, [r0, #0] - 128c: 4668 mov r0, sp - 128e: 7c00 ldrb r0, [r0, #16] ; 0x10 - 1290: 3004 add r0, #4 - 1292: e7ac b 0x11ee - 1294: 9800 ldr r0, [sp, #0] - 1296: 7840 ldrb r0, [r0, #1] - 1298: 2800 cmp r0, #0 - 129a: d000 beq 0x129e - 129c: e090 b 0x13c0 - 129e: e7ae b 0x11fe - 12a0: 9800 ldr r0, [sp, #0] - 12a2: 7840 ldrb r0, [r0, #1] - 12a4: 2800 cmp r0, #0 - 12a6: d000 beq 0x12aa - 12a8: e08a b 0x13c0 - 12aa: 4669 mov r1, sp - 12ac: 4668 mov r0, sp - 12ae: 7c00 ldrb r0, [r0, #16] ; 0x10 - 12b0: 3001 add r0, #1 - 12b2: 7408 strb r0, [r1, #16] ; 0x10 - 12b4: 4668 mov r0, sp - 12b6: 9900 ldr r1, [sp, #0] - 12b8: 7909 ldrb r1, [r1, #4] - 12ba: 7601 strb r1, [r0, #24] ; 0x18 - 12bc: 9801 ldr r0, [sp, #4] - 12be: 1c41 add r1, r0, #1 - 12c0: 9101 str r1, [sp, #4] - 12c2: 4669 mov r1, sp - 12c4: 7e09 ldrb r1, [r1, #24] ; 0x18 - 12c6: 7001 strb r1, [r0, #0] - 12c8: 4668 mov r0, sp - 12ca: 7e00 ldrb r0, [r0, #24] ; 0x18 - 12cc: 2840 cmp r0, #64 ; 0x40 - 12ce: dd01 ble 0x12d4 - 12d0: 2004 mov r0, #4 - 12d2: e055 b 0x1380 - 12d4: 9800 ldr r0, [sp, #0] - 12d6: 3006 add r0, #6 - 12d8: 9007 str r0, [sp, #28] ; 0x1c - 12da: 2000 mov r0, #0 - 12dc: 9002 str r0, [sp, #8] - 12de: 9902 ldr r1, [sp, #8] - 12e0: 4668 mov r0, sp - 12e2: 7e00 ldrb r0, [r0, #24] ; 0x18 - 12e4: 4281 cmp r1, r0 - 12e6: da6b bge 0x13c0 - 12e8: 9801 ldr r0, [sp, #4] - 12ea: 1c41 add r1, r0, #1 - 12ec: 9101 str r1, [sp, #4] - 12ee: 9907 ldr r1, [sp, #28] ; 0x1c - 12f0: 8809 ldrh r1, [r1, #0] - 12f2: 0409 lsl r1, r1, #16 - 12f4: 0e09 lsr r1, r1, #24 - 12f6: 0209 lsl r1, r1, #8 - 12f8: 1209 asr r1, r1, #8 - 12fa: 7001 strb r1, [r0, #0] - 12fc: 9807 ldr r0, [sp, #28] ; 0x1c - 12fe: 8801 ldrh r1, [r0, #0] - 1300: 3002 add r0, #2 - 1302: 9007 str r0, [sp, #28] ; 0x1c - 1304: 0608 lsl r0, r1, #24 - 1306: 0e01 lsr r1, r0, #24 - 1308: 9801 ldr r0, [sp, #4] - 130a: 1c42 add r2, r0, #1 - 130c: 9201 str r2, [sp, #4] - 130e: 7001 strb r1, [r0, #0] - 1310: 4669 mov r1, sp - 1312: 4668 mov r0, sp - 1314: 7c00 ldrb r0, [r0, #16] ; 0x10 - 1316: 3002 add r0, #2 - 1318: 7408 strb r0, [r1, #16] ; 0x10 - 131a: 9802 ldr r0, [sp, #8] - 131c: 3001 add r0, #1 - 131e: 9002 str r0, [sp, #8] - 1320: 9902 ldr r1, [sp, #8] - 1322: 4668 mov r0, sp - 1324: 7e00 ldrb r0, [r0, #24] ; 0x18 - 1326: 4281 cmp r1, r0 - 1328: dbde blt 0x12e8 - 132a: e049 b 0x13c0 - 132c: 9800 ldr r0, [sp, #0] - 132e: 7840 ldrb r0, [r0, #1] - 1330: 2800 cmp r0, #0 - 1332: d145 bne 0x13c0 - 1334: 4669 mov r1, sp - 1336: 9800 ldr r0, [sp, #0] - 1338: 8880 ldrh r0, [r0, #4] - 133a: 8408 strh r0, [r1, #32] ; 0x20 - 133c: 9801 ldr r0, [sp, #4] - 133e: 1c41 add r1, r0, #1 - 1340: 9101 str r1, [sp, #4] - 1342: 4669 mov r1, sp - 1344: 8c09 ldrh r1, [r1, #32] ; 0x20 - 1346: 0409 lsl r1, r1, #16 - 1348: 0e09 lsr r1, r1, #24 - 134a: 0209 lsl r1, r1, #8 - 134c: 1209 asr r1, r1, #8 - 134e: 7001 strb r1, [r0, #0] - 1350: 9801 ldr r0, [sp, #4] - 1352: 1c41 add r1, r0, #1 - 1354: 9101 str r1, [sp, #4] - 1356: 4669 mov r1, sp - 1358: 8c09 ldrh r1, [r1, #32] ; 0x20 - 135a: 0609 lsl r1, r1, #24 - 135c: 0e09 lsr r1, r1, #24 - 135e: 7001 strb r1, [r0, #0] - 1360: 4668 mov r0, sp - 1362: 9900 ldr r1, [sp, #0] - 1364: 88c9 ldrh r1, [r1, #6] - 1366: 8401 strh r1, [r0, #32] ; 0x20 - 1368: 9901 ldr r1, [sp, #4] - 136a: 1c48 add r0, r1, #1 - 136c: 9001 str r0, [sp, #4] - 136e: 4668 mov r0, sp - 1370: 8c00 ldrh r0, [r0, #32] ; 0x20 - 1372: 0400 lsl r0, r0, #16 - 1374: 0e00 lsr r0, r0, #24 - 1376: 0200 lsl r0, r0, #8 - 1378: 1200 asr r0, r0, #8 - 137a: 7008 strb r0, [r1, #0] - 137c: e77e b 0x127c - 137e: 2008 mov r0, #8 - 1380: 9003 str r0, [sp, #12] ; 0xc - 1382: e01d b 0x13c0 - 1384: 9800 ldr r0, [sp, #0] - 1386: 7800 ldrb r0, [r0, #0] - 1388: 280a cmp r0, #10 ; 0xa - 138a: d8f8 bhi 0x137e - 138c: a101 add r1, pc, #4 - 138e: 0080 lsl r0, r0, #2 - 1390: 5808 ldr r0, [r1, r0] - 1392: 4687 mov pc, r0 - 1394: 11ba asr r2, r7, #6 - 1396: 0000 lsl r0, r0, #0 - 1398: 11f4 asr r4, r6, #7 - 139a: 0000 lsl r0, r0, #0 - 139c: 1212 asr r2, r2, #8 - 139e: 0000 lsl r0, r0, #0 - 13a0: 121e asr r6, r3, #8 - 13a2: 0000 lsl r0, r0, #0 - 13a4: 13c0 asr r0, r0, #15 - 13a6: 0000 lsl r0, r0, #0 - 13a8: 122a asr r2, r5, #8 - 13aa: 0000 lsl r0, r0, #0 - 13ac: 1294 asr r4, r2, #10 - 13ae: 0000 lsl r0, r0, #0 - 13b0: 12a0 asr r0, r4, #10 - 13b2: 0000 lsl r0, r0, #0 - 13b4: 13c0 asr r0, r0, #15 - 13b6: 0000 lsl r0, r0, #0 - 13b8: 132c asr r4, r5, #12 - 13ba: 0000 lsl r0, r0, #0 - 13bc: 13c0 asr r0, r0, #15 - 13be: 0000 lsl r0, r0, #0 - 13c0: 9805 ldr r0, [sp, #20] ; 0x14 - 13c2: 4669 mov r1, sp - 13c4: 7c09 ldrb r1, [r1, #16] ; 0x10 - 13c6: 7001 strb r1, [r0, #0] - 13c8: 9803 ldr r0, [sp, #12] ; 0xc - 13ca: b009 add sp, #36 ; 0x24 - 13cc: 4770 bx lr - 13ce: 0000 lsl r0, r0, #0 - 13d0: b500 push {lr} - 13d2: b083 sub sp, #12 ; 0xc - 13d4: 9101 str r1, [sp, #4] - 13d6: 4669 mov r1, sp - 13d8: 7008 strb r0, [r1, #0] - 13da: 2000 mov r0, #0 - 13dc: 9002 str r0, [sp, #8] - 13de: e073 b 0x14c8 - 13e0: 4668 mov r0, sp - 13e2: 7800 ldrb r0, [r0, #0] - 13e4: 28aa cmp r0, #170 ; 0xaa - 13e6: d106 bne 0x13f6 - 13e8: 4965 ldr r1, =0x83ff10 ; via 0x1580 - 13ea: 4865 ldr r0, =0x83ff10 ; via 0x1580 - 13ec: 6800 ldr r0, [r0, #0] - 13ee: 3001 add r0, #1 - 13f0: 07c0 lsl r0, r0, #31 - 13f2: 0fc0 lsr r0, r0, #31 - 13f4: e013 b 0x141e - 13f6: 4862 ldr r0, =0x83ff10 ; via 0x1580 - 13f8: 6800 ldr r0, [r0, #0] - 13fa: 2800 cmp r0, #0 - 13fc: d06b beq 0x14d6 - 13fe: 4961 ldr r1, =0x83ff04 ; via 0x1584 - 1400: 9801 ldr r0, [sp, #4] - 1402: 3001 add r0, #1 - 1404: 6008 str r0, [r1, #0] - 1406: 4960 ldr r1, =0x83ff0e ; via 0x1588 - 1408: 2000 mov r0, #0 - 140a: 7008 strb r0, [r1, #0] - 140c: 495f ldr r1, =0x83ff0c ; via 0x158c - 140e: 4668 mov r0, sp - 1410: 7800 ldrb r0, [r0, #0] - 1412: 8008 strh r0, [r1, #0] - 1414: 495a ldr r1, =0x83ff10 ; via 0x1580 - 1416: 2000 mov r0, #0 - 1418: 6008 str r0, [r1, #0] - 141a: 495d ldr r1, =0x83ff08 ; via 0x1590 - 141c: 2001 mov r0, #1 - 141e: 6008 str r0, [r1, #0] - 1420: e059 b 0x14d6 - 1422: 4668 mov r0, sp - 1424: 7800 ldrb r0, [r0, #0] - 1426: 28aa cmp r0, #170 ; 0xaa - 1428: d113 bne 0x1452 - 142a: 4855 ldr r0, =0x83ff10 ; via 0x1580 - 142c: 6800 ldr r0, [r0, #0] - 142e: 2800 cmp r0, #0 - 1430: d00b beq 0x144a - 1432: 4954 ldr r1, =0x83ff04 ; via 0x1584 - 1434: 6808 ldr r0, [r1, #0] - 1436: 1c42 add r2, r0, #1 - 1438: 600a str r2, [r1, #0] - 143a: 4669 mov r1, sp - 143c: 7809 ldrb r1, [r1, #0] - 143e: 7001 strb r1, [r0, #0] - 1440: 4951 ldr r1, =0x83ff0e ; via 0x1588 - 1442: 7808 ldrb r0, [r1, #0] - 1444: 3001 add r0, #1 - 1446: 7008 strb r0, [r1, #0] - 1448: e013 b 0x1472 - 144a: 2101 mov r1, #1 - 144c: 484c ldr r0, =0x83ff10 ; via 0x1580 - 144e: 6001 str r1, [r0, #0] - 1450: e01c b 0x148c - 1452: 484b ldr r0, =0x83ff10 ; via 0x1580 - 1454: 6800 ldr r0, [r0, #0] - 1456: 2800 cmp r0, #0 - 1458: d00d beq 0x1476 - 145a: 494a ldr r1, =0x83ff04 ; via 0x1584 - 145c: 9801 ldr r0, [sp, #4] - 145e: 3001 add r0, #1 - 1460: 6008 str r0, [r1, #0] - 1462: 4849 ldr r0, =0x83ff0e ; via 0x1588 - 1464: 2100 mov r1, #0 - 1466: 7001 strb r1, [r0, #0] - 1468: 4948 ldr r1, =0x83ff0c ; via 0x158c - 146a: 4668 mov r0, sp - 146c: 7800 ldrb r0, [r0, #0] - 146e: 3001 add r0, #1 - 1470: 8008 strh r0, [r1, #0] - 1472: 2100 mov r1, #0 - 1474: e7ea b 0x144c - 1476: 4843 ldr r0, =0x83ff04 ; via 0x1584 - 1478: 6801 ldr r1, [r0, #0] - 147a: 1c4a add r2, r1, #1 - 147c: 6002 str r2, [r0, #0] - 147e: 4668 mov r0, sp - 1480: 7800 ldrb r0, [r0, #0] - 1482: 7008 strb r0, [r1, #0] - 1484: 4940 ldr r1, =0x83ff0e ; via 0x1588 - 1486: 7808 ldrb r0, [r1, #0] - 1488: 3001 add r0, #1 - 148a: 7008 strb r0, [r1, #0] - 148c: 483f ldr r0, =0x83ff0c ; via 0x158c - 148e: 8801 ldrh r1, [r0, #0] - 1490: 3901 sub r1, #1 - 1492: 8001 strh r1, [r0, #0] - 1494: 483d ldr r0, =0x83ff0c ; via 0x158c - 1496: 8800 ldrh r0, [r0, #0] - 1498: 2800 cmp r0, #0 - 149a: d11c bne 0x14d6 - 149c: 9901 ldr r1, [sp, #4] - 149e: 483a ldr r0, =0x83ff0e ; via 0x1588 - 14a0: 7800 ldrb r0, [r0, #0] - 14a2: 7008 strb r0, [r1, #0] - 14a4: 2001 mov r0, #1 - 14a6: 9002 str r0, [sp, #8] - 14a8: 4839 ldr r0, =0x83ff08 ; via 0x1590 - 14aa: 2100 mov r1, #0 - 14ac: 6001 str r1, [r0, #0] - 14ae: 4834 ldr r0, =0x83ff10 ; via 0x1580 - 14b0: 6001 str r1, [r0, #0] - 14b2: 9801 ldr r0, [sp, #4] - 14b4: 7800 ldrb r0, [r0, #0] - 14b6: 2801 cmp r0, #1 - 14b8: d10d bne 0x14d6 - 14ba: 9801 ldr r0, [sp, #4] - 14bc: 7840 ldrb r0, [r0, #1] - 14be: 28dd cmp r0, #221 ; 0xdd - 14c0: d109 bne 0x14d6 - 14c2: f7ff fb2f bl 0xb24 - 14c6: e006 b 0x14d6 - 14c8: 4831 ldr r0, =0x83ff08 ; via 0x1590 - 14ca: 6800 ldr r0, [r0, #0] - 14cc: 2800 cmp r0, #0 - 14ce: d087 beq 0x13e0 - 14d0: 3801 sub r0, #1 - 14d2: 2800 cmp r0, #0 - 14d4: d0a5 beq 0x1422 - 14d6: 9802 ldr r0, [sp, #8] - 14d8: b003 add sp, #12 ; 0xc - 14da: bd00 pop {pc} - 14dc: b086 sub sp, #24 ; 0x18 - 14de: 9202 str r2, [sp, #8] - 14e0: 9101 str r1, [sp, #4] - 14e2: 9000 str r0, [sp, #0] - 14e4: 9801 ldr r0, [sp, #4] - 14e6: 3001 add r0, #1 - 14e8: 9004 str r0, [sp, #16] ; 0x10 - 14ea: 9800 ldr r0, [sp, #0] - 14ec: 1c41 add r1, r0, #1 - 14ee: 9100 str r1, [sp, #0] - 14f0: 9005 str r0, [sp, #20] ; 0x14 - 14f2: 9901 ldr r1, [sp, #4] - 14f4: 20aa mov r0, #170 ; 0xaa - 14f6: 7008 strb r0, [r1, #0] - 14f8: 9801 ldr r0, [sp, #4] - 14fa: 3002 add r0, #2 - 14fc: 9001 str r0, [sp, #4] - 14fe: 9902 ldr r1, [sp, #8] - 1500: 2000 mov r0, #0 - 1502: 8008 strh r0, [r1, #0] - 1504: 4669 mov r1, sp - 1506: 8188 strh r0, [r1, #12] ; 0xc - 1508: 4668 mov r0, sp - 150a: 8981 ldrh r1, [r0, #12] ; 0xc - 150c: 9805 ldr r0, [sp, #20] ; 0x14 - 150e: 7800 ldrb r0, [r0, #0] - 1510: 4281 cmp r1, r0 - 1512: da23 bge 0x155c - 1514: 9800 ldr r0, [sp, #0] - 1516: 7800 ldrb r0, [r0, #0] - 1518: 28aa cmp r0, #170 ; 0xaa - 151a: d108 bne 0x152e - 151c: 9801 ldr r0, [sp, #4] - 151e: 1c41 add r1, r0, #1 - 1520: 9101 str r1, [sp, #4] - 1522: 21aa mov r1, #170 ; 0xaa - 1524: 7001 strb r1, [r0, #0] - 1526: 9902 ldr r1, [sp, #8] - 1528: 8808 ldrh r0, [r1, #0] - 152a: 3001 add r0, #1 - 152c: 8008 strh r0, [r1, #0] - 152e: 9800 ldr r0, [sp, #0] - 1530: 7801 ldrb r1, [r0, #0] - 1532: 3001 add r0, #1 - 1534: 9000 str r0, [sp, #0] - 1536: 9801 ldr r0, [sp, #4] - 1538: 1c42 add r2, r0, #1 - 153a: 9201 str r2, [sp, #4] - 153c: 7001 strb r1, [r0, #0] - 153e: 9902 ldr r1, [sp, #8] - 1540: 8808 ldrh r0, [r1, #0] - 1542: 3001 add r0, #1 - 1544: 8008 strh r0, [r1, #0] - 1546: 4669 mov r1, sp - 1548: 4668 mov r0, sp - 154a: 8980 ldrh r0, [r0, #12] ; 0xc - 154c: 3001 add r0, #1 - 154e: 8188 strh r0, [r1, #12] ; 0xc - 1550: 4668 mov r0, sp - 1552: 8980 ldrh r0, [r0, #12] ; 0xc - 1554: 9905 ldr r1, [sp, #20] ; 0x14 - 1556: 7809 ldrb r1, [r1, #0] - 1558: 4288 cmp r0, r1 - 155a: dbdb blt 0x1514 - 155c: 9904 ldr r1, [sp, #16] ; 0x10 - 155e: 9802 ldr r0, [sp, #8] - 1560: 7800 ldrb r0, [r0, #0] - 1562: 7008 strb r0, [r1, #0] - 1564: 9902 ldr r1, [sp, #8] - 1566: 8808 ldrh r0, [r1, #0] - 1568: 3002 add r0, #2 - 156a: 8008 strh r0, [r1, #0] - 156c: b006 add sp, #24 ; 0x18 - 156e: 4770 bx lr - -; same as 0x15c8 in the C139 version - 1570: 4907 ldr r1, =0x83ff08 ; via 0x1590 - 1572: 2000 mov r0, #0 - 1574: 6008 str r0, [r1, #0] - 1576: 4802 ldr r0, =0x83ff10 ; via 0x1580 - 1578: 2100 mov r1, #0 - 157a: 6001 str r1, [r0, #0] - 157c: 4770 bx lr - 157e: 46c0 nop (mov r8, r8) - - 1580: 0083ff10 - 1584: 0083ff04 - 1588: 0083ff0e - 158c: 0083ff0c - 1590: 0083ff08 - - 1594: b082 sub sp, #8 - 1596: 9101 str r1, [sp, #4] - 1598: 9000 str r0, [sp, #0] - 159a: 9901 ldr r1, [sp, #4] - 159c: 2000 mov r0, #0 - 159e: 7008 strb r0, [r1, #0] - 15a0: 9801 ldr r0, [sp, #4] - 15a2: 2100 mov r1, #0 - 15a4: 7041 strb r1, [r0, #1] - 15a6: 9801 ldr r0, [sp, #4] - 15a8: 2102 mov r1, #2 - 15aa: 7101 strb r1, [r0, #4] - 15ac: 9801 ldr r0, [sp, #4] - 15ae: 2106 mov r1, #6 - 15b0: 7141 strb r1, [r0, #5] - 15b2: 9801 ldr r0, [sp, #4] - 15b4: 2102 mov r1, #2 - 15b6: 7181 strb r1, [r0, #6] - 15b8: b002 add sp, #8 - 15ba: 4770 bx lr - 15bc: b500 push {lr} - 15be: b084 sub sp, #16 ; 0x10 - 15c0: 466b mov r3, sp - 15c2: 721a strb r2, [r3, #8] - 15c4: 9101 str r1, [sp, #4] - 15c6: 9000 str r0, [sp, #0] - 15c8: 9901 ldr r1, [sp, #4] - 15ca: 2009 mov r0, #9 - 15cc: 7008 strb r0, [r1, #0] - 15ce: e015 b 0x15fc - 15d0: 9801 ldr r0, [sp, #4] - 15d2: 2100 mov r1, #0 - 15d4: 7041 strb r1, [r0, #1] - 15d6: 9901 ldr r1, [sp, #4] - 15d8: 4668 mov r0, sp - 15da: 8940 ldrh r0, [r0, #10] ; 0xa - 15dc: 8088 strh r0, [r1, #4] - 15de: 9901 ldr r1, [sp, #4] - 15e0: 4668 mov r0, sp - 15e2: 8980 ldrh r0, [r0, #12] ; 0xc - 15e4: 80c8 strh r0, [r1, #6] - 15e6: e01e b 0x1626 - 15e8: 2101 mov r1, #1 - 15ea: e004 b 0x15f6 - 15ec: 2103 mov r1, #3 - 15ee: e002 b 0x15f6 - 15f0: 2105 mov r1, #5 - 15f2: e000 b 0x15f6 - 15f4: 2106 mov r1, #6 - 15f6: 9801 ldr r0, [sp, #4] - 15f8: 7041 strb r1, [r0, #1] - 15fa: e014 b 0x1626 - 15fc: 200a mov r0, #10 ; 0xa - 15fe: 4468 add r0, sp - 1600: a903 add r1, sp, #12 ; 0xc - 1602: 466a mov r2, sp - 1604: 7a12 ldrb r2, [r2, #8] - 1606: f000 fb71 bl 0x1cec - 160a: 2800 cmp r0, #0 - 160c: d0e0 beq 0x15d0 - 160e: 3801 sub r0, #1 - 1610: 2800 cmp r0, #0 - 1612: d0e9 beq 0x15e8 - 1614: 3801 sub r0, #1 - 1616: 2800 cmp r0, #0 - 1618: d0e8 beq 0x15ec - 161a: 3801 sub r0, #1 - 161c: 2800 cmp r0, #0 - 161e: d0e7 beq 0x15f0 - 1620: 3801 sub r0, #1 - 1622: 2800 cmp r0, #0 - 1624: d0e6 beq 0x15f4 - 1626: b004 add sp, #16 ; 0x10 - 1628: bd00 pop {pc} - 162a: b084 sub sp, #16 ; 0x10 - 162c: 9101 str r1, [sp, #4] - 162e: 9000 str r0, [sp, #0] - 1630: 9901 ldr r1, [sp, #4] - 1632: 200a mov r0, #10 ; 0xa - 1634: 7008 strb r0, [r1, #0] - 1636: 9801 ldr r0, [sp, #4] - 1638: 2100 mov r1, #0 - 163a: 7041 strb r1, [r0, #1] - 163c: 4669 mov r1, sp - 163e: 9800 ldr r0, [sp, #0] - 1640: 8880 ldrh r0, [r0, #4] - 1642: 8108 strh r0, [r1, #8] - 1644: 9800 ldr r0, [sp, #0] - 1646: 88c0 ldrh r0, [r0, #6] - 1648: 8148 strh r0, [r1, #10] ; 0xa - 164a: 4668 mov r0, sp - 164c: 8941 ldrh r1, [r0, #10] ; 0xa - 164e: 8900 ldrh r0, [r0, #8] - 1650: 0400 lsl r0, r0, #16 - 1652: 1808 add r0, r1, r0 - 1654: 9003 str r0, [sp, #12] ; 0xc - 1656: 9803 ldr r0, [sp, #12] ; 0xc - 1658: b004 add sp, #16 ; 0x10 - 165a: 4770 bx lr - 165c: b085 sub sp, #20 ; 0x14 - 165e: 9303 str r3, [sp, #12] ; 0xc - 1660: 9202 str r2, [sp, #8] - 1662: 9101 str r1, [sp, #4] - 1664: 4669 mov r1, sp - 1666: 7008 strb r0, [r1, #0] - 1668: 48ea ldr r0, =0x83ff19 ; via 0x1a14 - 166a: 7809 ldrb r1, [r1, #0] - 166c: 7802 ldrb r2, [r0, #0] - 166e: 1889 add r1, r1, r2 - 1670: 7001 strb r1, [r0, #0] - 1672: 48e9 ldr r0, =0x83ff1a ; via 0x1a18 - 1674: 7800 ldrb r0, [r0, #0] - 1676: 2800 cmp r0, #0 - 1678: d00e beq 0x1698 - 167a: 48e8 ldr r0, =0x83ff26 ; via 0x1a1c - 167c: 4669 mov r1, sp - 167e: 780a ldrb r2, [r1, #0] - 1680: 8801 ldrh r1, [r0, #0] - 1682: 1851 add r1, r2, r1 - 1684: 8001 strh r1, [r0, #0] - 1686: 9903 ldr r1, [sp, #12] ; 0xc - 1688: 48e4 ldr r0, =0x83ff26 ; via 0x1a1c - 168a: 8800 ldrh r0, [r0, #0] - 168c: 8008 strh r0, [r1, #0] - 168e: 9801 ldr r0, [sp, #4] - 1690: 2100 mov r1, #0 - 1692: 6001 str r1, [r0, #0] - 1694: 2000 mov r0, #0 - 1696: e009 b 0x16ac - 1698: 9902 ldr r1, [sp, #8] - 169a: 6808 ldr r0, [r1, #0] - 169c: 3002 add r0, #2 - 169e: 6008 str r0, [r1, #0] - 16a0: 49de ldr r1, =0x83ff26 ; via 0x1a1c - 16a2: 4668 mov r0, sp - 16a4: 7800 ldrb r0, [r0, #0] - 16a6: 0200 lsl r0, r0, #8 - 16a8: 8008 strh r0, [r1, #0] - 16aa: 2001 mov r0, #1 - 16ac: 9004 str r0, [sp, #16] ; 0x10 - 16ae: 2001 mov r0, #1 - 16b0: 49d9 ldr r1, =0x83ff1a ; via 0x1a18 - 16b2: 7809 ldrb r1, [r1, #0] - 16b4: 4388 bic r0, r1 - 16b6: 49d8 ldr r1, =0x83ff1a ; via 0x1a18 - 16b8: 7008 strb r0, [r1, #0] - 16ba: 48d9 ldr r0, =0x83ff24 ; via 0x1a20 - 16bc: 7801 ldrb r1, [r0, #0] - 16be: 3901 sub r1, #1 - 16c0: 7001 strb r1, [r0, #0] - 16c2: 48d7 ldr r0, =0x83ff24 ; via 0x1a20 - 16c4: 7800 ldrb r0, [r0, #0] - 16c6: 2800 cmp r0, #0 - 16c8: d102 bne 0x16d0 - 16ca: 48d6 ldr r0, =0x83ff20 ; via 0x1a24 - 16cc: 2106 mov r1, #6 - 16ce: 6001 str r1, [r0, #0] - 16d0: 9804 ldr r0, [sp, #16] ; 0x10 - 16d2: b005 add sp, #20 ; 0x14 - 16d4: 46f7 mov pc, lr - 16d6: b083 sub sp, #12 ; 0xc - 16d8: 9101 str r1, [sp, #4] - 16da: 4669 mov r1, sp - 16dc: 7008 strb r0, [r1, #0] - 16de: 2001 mov r0, #1 - 16e0: 9002 str r0, [sp, #8] - 16e2: 48d1 ldr r0, =0x83ff1b ; via 0x1a28 - 16e4: 7800 ldrb r0, [r0, #0] - 16e6: 2800 cmp r0, #0 - 16e8: d10a bne 0x1700 - 16ea: 4668 mov r0, sp - 16ec: 7800 ldrb r0, [r0, #0] - 16ee: 2853 cmp r0, #83 ; 0x53 - 16f0: d102 bne 0x16f8 - 16f2: 48cd ldr r0, =0x83ff1b ; via 0x1a28 - 16f4: 2101 mov r1, #1 - 16f6: e01a b 0x172e - 16f8: 2101 mov r1, #1 - 16fa: 9801 ldr r0, [sp, #4] - 16fc: 6001 str r1, [r0, #0] - 16fe: e03b b 0x1778 - 1700: 49c9 ldr r1, =0x83ff1b ; via 0x1a28 - 1702: 2000 mov r0, #0 - 1704: 7008 strb r0, [r1, #0] - 1706: 4668 mov r0, sp - 1708: 7800 ldrb r0, [r0, #0] - 170a: 2830 cmp r0, #48 ; 0x30 - 170c: d111 bne 0x1732 - 170e: 48c7 ldr r0, =0x83ff18 ; via 0x1a2c - 1710: 7800 ldrb r0, [r0, #0] - 1712: 2800 cmp r0, #0 - 1714: d006 beq 0x1724 - 1716: 9901 ldr r1, [sp, #4] - 1718: 2001 mov r0, #1 - 171a: 6008 str r0, [r1, #0] - 171c: 49c3 ldr r1, =0x83ff18 ; via 0x1a2c - 171e: 2000 mov r0, #0 - 1720: 7008 strb r0, [r1, #0] - 1722: e02a b 0x177a - 1724: 48bf ldr r0, =0x83ff20 ; via 0x1a24 - 1726: 2102 mov r1, #2 - 1728: 6001 str r1, [r0, #0] - 172a: 48ef ldr r0, =0x83ff1c ; via 0x1ae8 - 172c: 2100 mov r1, #0 - 172e: 7001 strb r1, [r0, #0] - 1730: e024 b 0x177c - 1732: 4668 mov r0, sp - 1734: 7800 ldrb r0, [r0, #0] - 1736: 2833 cmp r0, #51 ; 0x33 - 1738: d105 bne 0x1746 - 173a: 48bc ldr r0, =0x83ff18 ; via 0x1a2c - 173c: 7800 ldrb r0, [r0, #0] - 173e: 2800 cmp r0, #0 - 1740: d0da beq 0x16f8 - 1742: 2004 mov r0, #4 - 1744: e00c b 0x1760 - 1746: 4668 mov r0, sp - 1748: 7800 ldrb r0, [r0, #0] - 174a: 2837 cmp r0, #55 ; 0x37 - 174c: d10e bne 0x176c - 174e: 48b7 ldr r0, =0x83ff18 ; via 0x1a2c - 1750: 7800 ldrb r0, [r0, #0] - 1752: 2800 cmp r0, #0 - 1754: d103 bne 0x175e - 1756: 9901 ldr r1, [sp, #4] - 1758: 2001 mov r0, #1 - 175a: 6008 str r0, [r1, #0] - 175c: e00c b 0x1778 - 175e: 2003 mov r0, #3 - 1760: 49b0 ldr r1, =0x83ff20 ; via 0x1a24 - 1762: 6008 str r0, [r1, #0] - 1764: 2000 mov r0, #0 - 1766: 49e0 ldr r1, =0x83ff1c ; via 0x1ae8 - 1768: 7008 strb r0, [r1, #0] - 176a: e007 b 0x177c - 176c: 9901 ldr r1, [sp, #4] - 176e: 2001 mov r0, #1 - 1770: 6008 str r0, [r1, #0] - 1772: 48ae ldr r0, =0x83ff18 ; via 0x1a2c - 1774: 2100 mov r1, #0 - 1776: 7001 strb r1, [r0, #0] - 1778: 2000 mov r0, #0 - 177a: 9002 str r0, [sp, #8] - 177c: 9802 ldr r0, [sp, #8] - 177e: b003 add sp, #12 ; 0xc - 1780: 46f7 mov pc, lr - 1782: b083 sub sp, #12 ; 0xc - 1784: 9101 str r1, [sp, #4] - 1786: 4669 mov r1, sp - 1788: 7008 strb r0, [r1, #0] - 178a: 2001 mov r0, #1 - 178c: 9002 str r0, [sp, #8] - 178e: 49d7 ldr r1, =0x830 ; via 0x1aec - 1790: 48d5 ldr r0, =0x83ff1c ; via 0x1ae8 - 1792: 7800 ldrb r0, [r0, #0] - 1794: 0080 lsl r0, r0, #2 - 1796: 5808 ldr r0, [r1, r0] - 1798: 4669 mov r1, sp - 179a: 7809 ldrb r1, [r1, #0] - 179c: 4281 cmp r1, r0 - 179e: d10d bne 0x17bc - 17a0: 49d1 ldr r1, =0x83ff1c ; via 0x1ae8 - 17a2: 7808 ldrb r0, [r1, #0] - 17a4: 3001 add r0, #1 - 17a6: 7008 strb r0, [r1, #0] - 17a8: 48cf ldr r0, =0x83ff1c ; via 0x1ae8 - 17aa: 7800 ldrb r0, [r0, #0] - 17ac: 2807 cmp r0, #7 - 17ae: d10d bne 0x17cc - 17b0: 489c ldr r0, =0x83ff20 ; via 0x1a24 - 17b2: 2101 mov r1, #1 - 17b4: 6001 str r1, [r0, #0] - 17b6: 489d ldr r0, =0x83ff18 ; via 0x1a2c - 17b8: 7001 strb r1, [r0, #0] - 17ba: e007 b 0x17cc - 17bc: 9801 ldr r0, [sp, #4] - 17be: 2101 mov r1, #1 - 17c0: 6001 str r1, [r0, #0] - 17c2: 4998 ldr r1, =0x83ff20 ; via 0x1a24 - 17c4: 2001 mov r0, #1 - 17c6: 6008 str r0, [r1, #0] - 17c8: 2000 mov r0, #0 - 17ca: 9002 str r0, [sp, #8] - 17cc: 9802 ldr r0, [sp, #8] - 17ce: b003 add sp, #12 ; 0xc - 17d0: 46f7 mov pc, lr - 17d2: b083 sub sp, #12 ; 0xc - 17d4: 9101 str r1, [sp, #4] - 17d6: 4669 mov r1, sp - 17d8: 7008 strb r0, [r1, #0] - 17da: 2001 mov r0, #1 - 17dc: 9002 str r0, [sp, #8] - 17de: 49c4 ldr r1, =0x84c ; via 0x1af0 - 17e0: 48c1 ldr r0, =0x83ff1c ; via 0x1ae8 - 17e2: 7800 ldrb r0, [r0, #0] - 17e4: 0080 lsl r0, r0, #2 - 17e6: 5808 ldr r0, [r1, r0] - 17e8: 4669 mov r1, sp - 17ea: 7809 ldrb r1, [r1, #0] - 17ec: 4281 cmp r1, r0 - 17ee: d112 bne 0x1816 - 17f0: 49bd ldr r1, =0x83ff1c ; via 0x1ae8 - 17f2: 7808 ldrb r0, [r1, #0] - 17f4: 3001 add r0, #1 - 17f6: 7008 strb r0, [r1, #0] - 17f8: 48bb ldr r0, =0x83ff1c ; via 0x1ae8 - 17fa: 7800 ldrb r0, [r0, #0] - 17fc: 2806 cmp r0, #6 - 17fe: d114 bne 0x182a - 1800: 9801 ldr r0, [sp, #4] - 1802: 2102 mov r1, #2 - 1804: 6001 str r1, [r0, #0] - 1806: 4887 ldr r0, =0x83ff20 ; via 0x1a24 - 1808: 2101 mov r1, #1 - 180a: 6001 str r1, [r0, #0] - 180c: 4887 ldr r0, =0x83ff18 ; via 0x1a2c - 180e: 2100 mov r1, #0 - 1810: 7001 strb r1, [r0, #0] - 1812: 2000 mov r0, #0 - 1814: e008 b 0x1828 - 1816: 9801 ldr r0, [sp, #4] - 1818: 2101 mov r1, #1 - 181a: 6001 str r1, [r0, #0] - 181c: 4981 ldr r1, =0x83ff20 ; via 0x1a24 - 181e: 2001 mov r0, #1 - 1820: 6008 str r0, [r1, #0] - 1822: 4982 ldr r1, =0x83ff18 ; via 0x1a2c - 1824: 2000 mov r0, #0 - 1826: 7008 strb r0, [r1, #0] - 1828: 9002 str r0, [sp, #8] - 182a: 9802 ldr r0, [sp, #8] - 182c: b003 add sp, #12 ; 0xc - 182e: 46f7 mov pc, lr - 1830: b081 sub sp, #4 - 1832: 4669 mov r1, sp - 1834: 7008 strb r0, [r1, #0] - 1836: 497a ldr r1, =0x83ff24 ; via 0x1a20 - 1838: 4668 mov r0, sp - 183a: 7800 ldrb r0, [r0, #0] - 183c: 3801 sub r0, #1 - 183e: 7008 strb r0, [r1, #0] - 1840: 4874 ldr r0, =0x83ff19 ; via 0x1a14 - 1842: 4669 mov r1, sp - 1844: 7809 ldrb r1, [r1, #0] - 1846: 7001 strb r1, [r0, #0] - 1848: 48a7 ldr r0, =0x83ff1c ; via 0x1ae8 - 184a: 2100 mov r1, #0 - 184c: 7001 strb r1, [r0, #0] - 184e: 48e3 ldr r0, =0x83ff14 ; via 0x1bdc - 1850: 6001 str r1, [r0, #0] - 1852: 4874 ldr r0, =0x83ff20 ; via 0x1a24 - 1854: 2105 mov r1, #5 - 1856: 6001 str r1, [r0, #0] - 1858: b001 add sp, #4 - 185a: 46f7 mov pc, lr - 185c: b084 sub sp, #16 ; 0x10 - 185e: 9202 str r2, [sp, #8] - 1860: 9101 str r1, [sp, #4] - 1862: 4669 mov r1, sp - 1864: 7008 strb r0, [r1, #0] - 1866: 2001 mov r0, #1 - 1868: 9003 str r0, [sp, #12] ; 0xc - 186a: 496d ldr r1, =0x83ff24 ; via 0x1a20 - 186c: 7808 ldrb r0, [r1, #0] - 186e: 3801 sub r0, #1 - 1870: 7008 strb r0, [r1, #0] - 1872: 486b ldr r0, =0x83ff24 ; via 0x1a20 - 1874: 7800 ldrb r0, [r0, #0] - 1876: 2800 cmp r0, #0 - 1878: d026 beq 0x18c8 - 187a: 4866 ldr r0, =0x83ff19 ; via 0x1a14 - 187c: 4669 mov r1, sp - 187e: 780a ldrb r2, [r1, #0] - 1880: 7801 ldrb r1, [r0, #0] - 1882: 1851 add r1, r2, r1 - 1884: 7001 strb r1, [r0, #0] - 1886: 4998 ldr r1, =0x83ff1c ; via 0x1ae8 - 1888: 7808 ldrb r0, [r1, #0] - 188a: 3001 add r0, #1 - 188c: 7008 strb r0, [r1, #0] - 188e: 49d3 ldr r1, =0x83ff14 ; via 0x1bdc - 1890: 2204 mov r2, #4 - 1892: 4895 ldr r0, =0x83ff1c ; via 0x1ae8 - 1894: 7800 ldrb r0, [r0, #0] - 1896: 1a10 sub r0, r2, r0 - 1898: 00c2 lsl r2, r0, #3 - 189a: 4668 mov r0, sp - 189c: 7800 ldrb r0, [r0, #0] - 189e: 4090 lsl r0, r2 - 18a0: 680a ldr r2, [r1, #0] - 18a2: 1880 add r0, r0, r2 - 18a4: 6008 str r0, [r1, #0] - 18a6: 4890 ldr r0, =0x83ff1c ; via 0x1ae8 - 18a8: 7800 ldrb r0, [r0, #0] - 18aa: 2804 cmp r0, #4 - 18ac: d117 bne 0x18de - 18ae: 9902 ldr r1, [sp, #8] - 18b0: 48ca ldr r0, =0x83ff14 ; via 0x1bdc - 18b2: 6800 ldr r0, [r0, #0] - 18b4: 3802 sub r0, #2 - 18b6: 6008 str r0, [r1, #0] - 18b8: 485a ldr r0, =0x83ff20 ; via 0x1a24 - 18ba: 2100 mov r1, #0 - 18bc: 6001 str r1, [r0, #0] - 18be: 4856 ldr r0, =0x83ff1a ; via 0x1a18 - 18c0: 7001 strb r1, [r0, #0] - 18c2: 4889 ldr r0, =0x83ff1c ; via 0x1ae8 - 18c4: 7001 strb r1, [r0, #0] - 18c6: e00a b 0x18de - 18c8: 9801 ldr r0, [sp, #4] - 18ca: 2101 mov r1, #1 - 18cc: 6001 str r1, [r0, #0] - 18ce: 4955 ldr r1, =0x83ff20 ; via 0x1a24 - 18d0: 2001 mov r0, #1 - 18d2: 6008 str r0, [r1, #0] - 18d4: 4855 ldr r0, =0x83ff18 ; via 0x1a2c - 18d6: 2100 mov r1, #0 - 18d8: 7001 strb r1, [r0, #0] - 18da: 2000 mov r0, #0 - 18dc: 9003 str r0, [sp, #12] ; 0xc - 18de: 9803 ldr r0, [sp, #12] ; 0xc - 18e0: b004 add sp, #16 ; 0x10 - 18e2: 46f7 mov pc, lr - 18e4: b083 sub sp, #12 ; 0xc - 18e6: 9101 str r1, [sp, #4] - 18e8: 4669 mov r1, sp - 18ea: 7008 strb r0, [r1, #0] - 18ec: 2001 mov r0, #1 - 18ee: 9002 str r0, [sp, #8] - 18f0: 494c ldr r1, =0x83ff20 ; via 0x1a24 - 18f2: 6008 str r0, [r1, #0] - 18f4: 20ff mov r0, #255 ; 0xff - 18f6: 4669 mov r1, sp - 18f8: 7809 ldrb r1, [r1, #0] - 18fa: 4388 bic r0, r1 - 18fc: 4945 ldr r1, =0x83ff19 ; via 0x1a14 - 18fe: 7809 ldrb r1, [r1, #0] - 1900: 4281 cmp r1, r0 - 1902: d007 beq 0x1914 - 1904: 9801 ldr r0, [sp, #4] - 1906: 2101 mov r1, #1 - 1908: 6001 str r1, [r0, #0] - 190a: 4848 ldr r0, =0x83ff18 ; via 0x1a2c - 190c: 2100 mov r1, #0 - 190e: 7001 strb r1, [r0, #0] - 1910: 2000 mov r0, #0 - 1912: 9002 str r0, [sp, #8] - 1914: 9802 ldr r0, [sp, #8] - 1916: b003 add sp, #12 ; 0xc - 1918: 46f7 mov pc, lr - 191a: b085 sub sp, #20 ; 0x14 - 191c: 466b mov r3, sp - 191e: 719a strb r2, [r3, #6] - 1920: 466a mov r2, sp - 1922: 8091 strh r1, [r2, #4] - 1924: 9000 str r0, [sp, #0] - 1926: 9800 ldr r0, [sp, #0] - 1928: 9002 str r0, [sp, #8] - 192a: 4669 mov r1, sp - 192c: 4668 mov r0, sp - 192e: 8880 ldrh r0, [r0, #4] - 1930: 8208 strh r0, [r1, #16] ; 0x10 - 1932: 4668 mov r0, sp - 1934: 8a00 ldrh r0, [r0, #16] ; 0x10 - 1936: 2800 cmp r0, #0 - 1938: d01e beq 0x1978 - 193a: 49e3 ldr r1, =0x864 ; via 0x1cc8 - 193c: 4668 mov r0, sp - 193e: 7980 ldrb r0, [r0, #6] - 1940: 0080 lsl r0, r0, #2 - 1942: 5808 ldr r0, [r1, r0] - 1944: 7941 ldrb r1, [r0, #5] - 1946: 4668 mov r0, sp - 1948: 7301 strb r1, [r0, #12] ; 0xc - 194a: 7b00 ldrb r0, [r0, #12] ; 0xc - 194c: 0980 lsr r0, r0, #6 - 194e: d3f4 bcc 0x193a - 1950: 49dd ldr r1, =0x864 ; via 0x1cc8 - 1952: 4668 mov r0, sp - 1954: 7980 ldrb r0, [r0, #6] - 1956: 0080 lsl r0, r0, #2 - 1958: 5809 ldr r1, [r1, r0] - 195a: 9802 ldr r0, [sp, #8] - 195c: 7800 ldrb r0, [r0, #0] - 195e: 7008 strb r0, [r1, #0] - 1960: 9802 ldr r0, [sp, #8] - 1962: 3001 add r0, #1 - 1964: 9002 str r0, [sp, #8] - 1966: 4669 mov r1, sp - 1968: 4668 mov r0, sp - 196a: 8a00 ldrh r0, [r0, #16] ; 0x10 - 196c: 3801 sub r0, #1 - 196e: 8208 strh r0, [r1, #16] ; 0x10 - 1970: 4668 mov r0, sp - 1972: 8a00 ldrh r0, [r0, #16] ; 0x10 - 1974: 2800 cmp r0, #0 - 1976: d1e0 bne 0x193a - 1978: b005 add sp, #20 ; 0x14 - 197a: 46f7 mov pc, lr - 197c: b082 sub sp, #8 - 197e: 4669 mov r1, sp - 1980: 7008 strb r0, [r1, #0] - 1982: 2000 mov r0, #0 - 1984: 8088 strh r0, [r1, #4] - 1986: 4668 mov r0, sp - 1988: 8881 ldrh r1, [r0, #4] - 198a: 20ff mov r0, #255 ; 0xff - 198c: 30f5 add r0, #245 ; 0xf5 - 198e: 4281 cmp r1, r0 - 1990: da21 bge 0x19d6 - 1992: 4669 mov r1, sp - 1994: 4668 mov r0, sp - 1996: 8880 ldrh r0, [r0, #4] - 1998: 3001 add r0, #1 - 199a: 8088 strh r0, [r1, #4] - 199c: 48ca ldr r0, =0x864 ; via 0x1cc8 - 199e: 7809 ldrb r1, [r1, #0] - 19a0: 0089 lsl r1, r1, #2 - 19a2: 5840 ldr r0, [r0, r1] - 19a4: 7940 ldrb r0, [r0, #5] - 19a6: 4669 mov r1, sp - 19a8: 7048 strb r0, [r1, #1] - 19aa: 4668 mov r0, sp - 19ac: 7840 ldrb r0, [r0, #1] - 19ae: 0840 lsr r0, r0, #1 - 19b0: d30b bcc 0x19ca - 19b2: 49c5 ldr r1, =0x864 ; via 0x1cc8 - 19b4: 4668 mov r0, sp - 19b6: 7800 ldrb r0, [r0, #0] - 19b8: 0080 lsl r0, r0, #2 - 19ba: 5808 ldr r0, [r1, r0] - 19bc: 7800 ldrb r0, [r0, #0] - 19be: 0600 lsl r0, r0, #24 - 19c0: 0e00 lsr r0, r0, #24 - 19c2: 4669 mov r1, sp - 19c4: 7088 strb r0, [r1, #2] - 19c6: 2000 mov r0, #0 - 19c8: 8088 strh r0, [r1, #4] - 19ca: 4668 mov r0, sp - 19cc: 8881 ldrh r1, [r0, #4] - 19ce: 20ff mov r0, #255 ; 0xff - 19d0: 30f5 add r0, #245 ; 0xf5 - 19d2: 4281 cmp r1, r0 - 19d4: dbdd blt 0x1992 - 19d6: b002 add sp, #8 - 19d8: 4770 bx lr - 19da: b500 push {lr} - 19dc: b08c sub sp, #48 ; 0x30 - 19de: 466a mov r2, sp - 19e0: 7111 strb r1, [r2, #4] - 19e2: 9000 str r0, [sp, #0] - 19e4: 2001 mov r0, #1 - 19e6: 9002 str r0, [sp, #8] - 19e8: 9800 ldr r0, [sp, #0] - 19ea: a904 add r1, sp, #16 ; 0x10 - 19ec: aa03 add r2, sp, #12 ; 0xc - 19ee: f7ff fd75 bl 0x14dc - 19f2: 4668 mov r0, sp - 19f4: 8980 ldrh r0, [r0, #12] ; 0xc - 19f6: 2820 cmp r0, #32 ; 0x20 - 19f8: dd02 ble 0x1a00 - 19fa: 2000 mov r0, #0 - 19fc: 9002 str r0, [sp, #8] - 19fe: e006 b 0x1a0e - 1a00: a804 add r0, sp, #16 ; 0x10 - 1a02: 4669 mov r1, sp - 1a04: 8989 ldrh r1, [r1, #12] ; 0xc - 1a06: 466a mov r2, sp - 1a08: 7912 ldrb r2, [r2, #4] - 1a0a: f7ff ff86 bl 0x191a - 1a0e: 9802 ldr r0, [sp, #8] - 1a10: b00c add sp, #48 ; 0x30 - 1a12: bd00 pop {pc} - 1a14: ff19 - 1a16: 0083 lsl r3, r0, #2 - 1a18: ff1a - 1a1a: 0083 lsl r3, r0, #2 - 1a1c: ff26 - 1a1e: 0083 lsl r3, r0, #2 - 1a20: ff24 - 1a22: 0083 lsl r3, r0, #2 - 1a24: ff20 - 1a26: 0083 lsl r3, r0, #2 - 1a28: ff1b - 1a2a: 0083 lsl r3, r0, #2 - 1a2c: ff18 - 1a2e: 0083 lsl r3, r0, #2 - 1a30: b500 push {lr} - 1a32: b084 sub sp, #16 ; 0x10 - 1a34: 9101 str r1, [sp, #4] - 1a36: 9000 str r0, [sp, #0] - 1a38: 4669 mov r1, sp - 1a3a: 20ff mov r0, #255 ; 0xff - 1a3c: 7308 strb r0, [r1, #12] ; 0xc - 1a3e: 2000 mov r0, #0 - 1a40: 9002 str r0, [sp, #8] - 1a42: 4669 mov r1, sp - 1a44: 48a1 ldr r0, =0xffff5805 ; via 0x1ccc - 1a46: 7800 ldrb r0, [r0, #0] - 1a48: 7348 strb r0, [r1, #13] ; 0xd - 1a4a: 48a1 ldr r0, =0xffff5005 ; via 0x1cd0 - 1a4c: 7800 ldrb r0, [r0, #0] - 1a4e: 7388 strb r0, [r1, #14] ; 0xe - 1a50: 4668 mov r0, sp - 1a52: 7b40 ldrb r0, [r0, #13] ; 0xd - 1a54: 0840 lsr r0, r0, #1 - 1a56: d206 bcs 0x1a66 - 1a58: 4668 mov r0, sp - 1a5a: 7b80 ldrb r0, [r0, #14] ; 0xe - 1a5c: 0840 lsr r0, r0, #1 - 1a5e: d202 bcs 0x1a66 - 1a60: 9801 ldr r0, [sp, #4] - 1a62: 2800 cmp r0, #0 - 1a64: d0ed beq 0x1a42 - 1a66: 4668 mov r0, sp - 1a68: 7b40 ldrb r0, [r0, #13] ; 0xd - 1a6a: 0840 lsr r0, r0, #1 - 1a6c: d316 bcc 0x1a9c - 1a6e: 4669 mov r1, sp - 1a70: 2000 mov r0, #0 - 1a72: 7308 strb r0, [r1, #12] ; 0xc - 1a74: 4994 ldr r1, =0x864 ; via 0x1cc8 - 1a76: 4668 mov r0, sp - 1a78: 7b00 ldrb r0, [r0, #12] ; 0xc - 1a7a: 0080 lsl r0, r0, #2 - 1a7c: 5808 ldr r0, [r1, r0] - 1a7e: 7800 ldrb r0, [r0, #0] - 1a80: 0600 lsl r0, r0, #24 - 1a82: 0e00 lsr r0, r0, #24 - 1a84: 4669 mov r1, sp - 1a86: 73c8 strb r0, [r1, #15] ; 0xf - 1a88: 4668 mov r0, sp - 1a8a: 7bc0 ldrb r0, [r0, #15] ; 0xf - 1a8c: 9900 ldr r1, [sp, #0] - 1a8e: f7ff fc9f bl 0x13d0 - 1a92: 9002 str r0, [sp, #8] - 1a94: 9802 ldr r0, [sp, #8] - 1a96: 2800 cmp r0, #0 - 1a98: d11c bne 0x1ad4 - 1a9a: e018 b 0x1ace - 1a9c: 4668 mov r0, sp - 1a9e: 7b80 ldrb r0, [r0, #14] ; 0xe - 1aa0: 0840 lsr r0, r0, #1 - 1aa2: d317 bcc 0x1ad4 - 1aa4: 4669 mov r1, sp - 1aa6: 2001 mov r0, #1 - 1aa8: 7308 strb r0, [r1, #12] ; 0xc - 1aaa: 4987 ldr r1, =0x864 ; via 0x1cc8 - 1aac: 4668 mov r0, sp - 1aae: 7b00 ldrb r0, [r0, #12] ; 0xc - 1ab0: 0080 lsl r0, r0, #2 - 1ab2: 5808 ldr r0, [r1, r0] - 1ab4: 7800 ldrb r0, [r0, #0] - 1ab6: 0600 lsl r0, r0, #24 - 1ab8: 0e01 lsr r1, r0, #24 - 1aba: 4668 mov r0, sp - 1abc: 73c1 strb r1, [r0, #15] ; 0xf - 1abe: 7bc0 ldrb r0, [r0, #15] ; 0xf - 1ac0: 9900 ldr r1, [sp, #0] - 1ac2: f7ff fc85 bl 0x13d0 - 1ac6: 9002 str r0, [sp, #8] - 1ac8: 9802 ldr r0, [sp, #8] - 1aca: 2800 cmp r0, #0 - 1acc: d102 bne 0x1ad4 - 1ace: 20ff mov r0, #255 ; 0xff - 1ad0: 4669 mov r1, sp - 1ad2: 7308 strb r0, [r1, #12] ; 0xc - 1ad4: 9802 ldr r0, [sp, #8] - 1ad6: 2800 cmp r0, #0 - 1ad8: d102 bne 0x1ae0 - 1ada: 9801 ldr r0, [sp, #4] - 1adc: 2800 cmp r0, #0 - 1ade: d0b0 beq 0x1a42 - 1ae0: 4668 mov r0, sp - 1ae2: 7b00 ldrb r0, [r0, #12] ; 0xc - 1ae4: b004 add sp, #16 ; 0x10 - 1ae6: bd00 pop {pc} - 1ae8: ff1c - 1aea: 0083 lsl r3, r0, #2 - 1aec: 0830 lsr r0, r6, #32 - 1aee: 0000 lsl r0, r0, #0 - 1af0: 084c lsr r4, r1, #1 - 1af2: 0000 lsl r0, r0, #0 - 1af4: b500 push {lr} - 1af6: b086 sub sp, #24 ; 0x18 - 1af8: 466b mov r3, sp - 1afa: 721a strb r2, [r3, #8] - 1afc: 9101 str r1, [sp, #4] - 1afe: 9000 str r0, [sp, #0] - 1b00: 2001 mov r0, #1 - 1b02: 9004 str r0, [sp, #16] ; 0x10 - 1b04: 9804 ldr r0, [sp, #16] ; 0x10 - 1b06: 2800 cmp r0, #0 - 1b08: d05b beq 0x1bc2 - 1b0a: 496f ldr r1, =0x864 ; via 0x1cc8 - 1b0c: 4668 mov r0, sp - 1b0e: 7a00 ldrb r0, [r0, #8] - 1b10: 0080 lsl r0, r0, #2 - 1b12: 5808 ldr r0, [r1, r0] - 1b14: 7941 ldrb r1, [r0, #5] - 1b16: 4668 mov r0, sp - 1b18: 7301 strb r1, [r0, #12] ; 0xc - 1b1a: 7b00 ldrb r0, [r0, #12] ; 0xc - 1b1c: 0840 lsr r0, r0, #1 - 1b1e: d3f4 bcc 0x1b0a - 1b20: 4969 ldr r1, =0x864 ; via 0x1cc8 - 1b22: 4668 mov r0, sp - 1b24: 7a00 ldrb r0, [r0, #8] - 1b26: 0080 lsl r0, r0, #2 - 1b28: 5808 ldr r0, [r1, r0] - 1b2a: 7800 ldrb r0, [r0, #0] - 1b2c: 0600 lsl r0, r0, #24 - 1b2e: 0e01 lsr r1, r0, #24 - 1b30: 4668 mov r0, sp - 1b32: 7341 strb r1, [r0, #13] ; 0xd - 1b34: e02c b 0x1b90 - 1b36: 4668 mov r0, sp - 1b38: 7b40 ldrb r0, [r0, #13] ; 0xd - 1b3a: a905 add r1, sp, #20 ; 0x14 - 1b3c: 9a00 ldr r2, [sp, #0] - 1b3e: 9b01 ldr r3, [sp, #4] - 1b40: f7ff fd8c bl 0x165c - 1b44: 9004 str r0, [sp, #16] ; 0x10 - 1b46: e039 b 0x1bbc - 1b48: 4668 mov r0, sp - 1b4a: 7b40 ldrb r0, [r0, #13] ; 0xd - 1b4c: a905 add r1, sp, #20 ; 0x14 - 1b4e: f7ff fdc2 bl 0x16d6 - 1b52: e7f7 b 0x1b44 - 1b54: 4668 mov r0, sp - 1b56: 7b40 ldrb r0, [r0, #13] ; 0xd - 1b58: a905 add r1, sp, #20 ; 0x14 - 1b5a: f7ff fe12 bl 0x1782 - 1b5e: e7f1 b 0x1b44 - 1b60: 4668 mov r0, sp - 1b62: 7b40 ldrb r0, [r0, #13] ; 0xd - 1b64: a905 add r1, sp, #20 ; 0x14 - 1b66: f7ff fe34 bl 0x17d2 - 1b6a: e7eb b 0x1b44 - 1b6c: 4668 mov r0, sp - 1b6e: 7b40 ldrb r0, [r0, #13] ; 0xd - 1b70: f7ff fe5e bl 0x1830 - 1b74: e022 b 0x1bbc - 1b76: 4668 mov r0, sp - 1b78: 7b40 ldrb r0, [r0, #13] ; 0xd - 1b7a: a905 add r1, sp, #20 ; 0x14 - 1b7c: 9a00 ldr r2, [sp, #0] - 1b7e: f7ff fe6d bl 0x185c - 1b82: e7df b 0x1b44 - 1b84: 4668 mov r0, sp - 1b86: 7b40 ldrb r0, [r0, #13] ; 0xd - 1b88: a905 add r1, sp, #20 ; 0x14 - 1b8a: f7ff feab bl 0x18e4 - 1b8e: e7d9 b 0x1b44 - 1b90: 4850 ldr r0, =0x83ff20 ; via 0x1cd4 - 1b92: 6800 ldr r0, [r0, #0] - 1b94: 2800 cmp r0, #0 - 1b96: d0ce beq 0x1b36 - 1b98: 3801 sub r0, #1 - 1b9a: 2800 cmp r0, #0 - 1b9c: d0d4 beq 0x1b48 - 1b9e: 3801 sub r0, #1 - 1ba0: 2800 cmp r0, #0 - 1ba2: d0d7 beq 0x1b54 - 1ba4: 3801 sub r0, #1 - 1ba6: 2800 cmp r0, #0 - 1ba8: d0da beq 0x1b60 - 1baa: 3801 sub r0, #1 - 1bac: 2800 cmp r0, #0 - 1bae: d0dd beq 0x1b6c - 1bb0: 3801 sub r0, #1 - 1bb2: 2800 cmp r0, #0 - 1bb4: d0df beq 0x1b76 - 1bb6: 3801 sub r0, #1 - 1bb8: 2800 cmp r0, #0 - 1bba: d0e3 beq 0x1b84 - 1bbc: 9804 ldr r0, [sp, #16] ; 0x10 - 1bbe: 2800 cmp r0, #0 - 1bc0: d1a3 bne 0x1b0a - 1bc2: 9805 ldr r0, [sp, #20] ; 0x14 - 1bc4: b006 add sp, #24 ; 0x18 - 1bc6: bd00 pop {pc} - 1bc8: 4942 ldr r1, =0x83ff20 ; via 0x1cd4 - 1bca: 2001 mov r0, #1 - 1bcc: 6008 str r0, [r1, #0] - 1bce: 4842 ldr r0, =0x83ff1b ; via 0x1cd8 - 1bd0: 2100 mov r1, #0 - 1bd2: 7001 strb r1, [r0, #0] - 1bd4: 4841 ldr r0, =0x83ff18 ; via 0x1cdc - 1bd6: 7001 strb r1, [r0, #0] - 1bd8: 4770 bx lr - 1bda: 46c0 nop (mov r8, r8) - - 1bdc: 0083ff14 - -; hoping this routine will be the same as 0x1c38 in the C139 version -; same length, looks the same on inspection - 1be0: b081 sub sp, #4 - 1be2: 483f ldr r0, =0xffff5800 ; via 0x1ce0 - 1be4: 9000 str r0, [sp, #0] - 1be6: 493f ldr r1, =0xffff6000 ; via 0x1ce4 - 1be8: 2002 mov r0, #2 - 1bea: 880a ldrh r2, [r1, #0] - 1bec: 4310 orr r0, r2 - 1bee: 8008 strh r0, [r1, #0] - 1bf0: 483c ldr r0, =0xffff6000 ; via 0x1ce4 - 1bf2: 8801 ldrh r1, [r0, #0] - 1bf4: 0849 lsr r1, r1, #1 - 1bf6: 0049 lsl r1, r1, #1 - 1bf8: 8001 strh r1, [r0, #0] - 1bfa: 493a ldr r1, =0xffff6000 ; via 0x1ce4 - 1bfc: 8808 ldrh r0, [r1, #0] - 1bfe: 2202 mov r2, #2 - 1c00: 4390 bic r0, r2 - 1c02: 8008 strh r0, [r1, #0] - 1c04: 9900 ldr r1, [sp, #0] - 1c06: 2007 mov r0, #7 - 1c08: 7208 strb r0, [r1, #8] - 1c0a: 9900 ldr r1, [sp, #0] - 1c0c: 20bf mov r0, #191 ; 0xbf - 1c0e: 70c8 strb r0, [r1, #3] - 1c10: 9800 ldr r0, [sp, #0] - 1c12: 1c81 add r1, r0, #2 - 1c14: 2010 mov r0, #16 ; 0x10 - 1c16: 880a ldrh r2, [r1, #0] - 1c18: 4310 orr r0, r2 - 1c1a: 8008 strh r0, [r1, #0] - 1c1c: 9800 ldr r0, [sp, #0] - 1c1e: 2180 mov r1, #128 ; 0x80 - 1c20: 70c1 strb r1, [r0, #3] - 1c22: 9800 ldr r0, [sp, #0] - 1c24: 2107 mov r1, #7 - 1c26: 7081 strb r1, [r0, #2] - 1c28: 9800 ldr r0, [sp, #0] - 1c2a: 21bf mov r1, #191 ; 0xbf - 1c2c: 70c1 strb r1, [r0, #3] - 1c2e: 9800 ldr r0, [sp, #0] - 1c30: 2107 mov r1, #7 - 1c32: 7001 strb r1, [r0, #0] - 1c34: 9800 ldr r0, [sp, #0] - 1c36: 2100 mov r1, #0 - 1c38: 7041 strb r1, [r0, #1] - 1c3a: 9800 ldr r0, [sp, #0] - 1c3c: 2103 mov r1, #3 - 1c3e: 70c1 strb r1, [r0, #3] - 1c40: 9800 ldr r0, [sp, #0] - 1c42: 2100 mov r1, #0 - 1c44: 7201 strb r1, [r0, #8] - 1c46: 4828 ldr r0, =0xffff5000 ; via 0x1ce8 - 1c48: 9000 str r0, [sp, #0] - 1c4a: 9800 ldr r0, [sp, #0] - 1c4c: 2107 mov r1, #7 - 1c4e: 7201 strb r1, [r0, #8] - 1c50: 9900 ldr r1, [sp, #0] - 1c52: 20bf mov r0, #191 ; 0xbf - 1c54: 70c8 strb r0, [r1, #3] - 1c56: 9800 ldr r0, [sp, #0] - 1c58: 1c80 add r0, r0, #2 - 1c5a: 2110 mov r1, #16 ; 0x10 - 1c5c: 8802 ldrh r2, [r0, #0] - 1c5e: 4311 orr r1, r2 - 1c60: 8001 strh r1, [r0, #0] - 1c62: 9800 ldr r0, [sp, #0] - 1c64: 2180 mov r1, #128 ; 0x80 - 1c66: 70c1 strb r1, [r0, #3] - 1c68: 9800 ldr r0, [sp, #0] - 1c6a: 2107 mov r1, #7 - 1c6c: 7081 strb r1, [r0, #2] - 1c6e: 9800 ldr r0, [sp, #0] - 1c70: 21bf mov r1, #191 ; 0xbf - 1c72: 70c1 strb r1, [r0, #3] - 1c74: 9800 ldr r0, [sp, #0] - 1c76: 2107 mov r1, #7 - 1c78: 7001 strb r1, [r0, #0] - 1c7a: 9800 ldr r0, [sp, #0] - 1c7c: 2100 mov r1, #0 - 1c7e: 7041 strb r1, [r0, #1] - 1c80: 9900 ldr r1, [sp, #0] - 1c82: 2003 mov r0, #3 - 1c84: 70c8 strb r0, [r1, #3] - 1c86: 9800 ldr r0, [sp, #0] - 1c88: 2100 mov r1, #0 - 1c8a: 7201 strb r1, [r0, #8] - 1c8c: b001 add sp, #4 - 1c8e: 4770 bx lr - - 1c90: b081 sub sp, #4 - 1c92: 4669 mov r1, sp - 1c94: 7008 strb r0, [r1, #0] - 1c96: 490c ldr r1, =0x864 ; via 0x1cc8 - 1c98: 4668 mov r0, sp - 1c9a: 7800 ldrb r0, [r0, #0] - 1c9c: 0080 lsl r0, r0, #2 - 1c9e: 5808 ldr r0, [r1, r0] - 1ca0: 7941 ldrb r1, [r0, #5] - 1ca2: 4668 mov r0, sp - 1ca4: 7041 strb r1, [r0, #1] - 1ca6: 7840 ldrb r0, [r0, #1] - 1ca8: 09c0 lsr r0, r0, #7 - 1caa: d20b bcs 0x1cc4 - 1cac: 4806 ldr r0, =0x864 ; via 0x1cc8 - 1cae: 4669 mov r1, sp - 1cb0: 7809 ldrb r1, [r1, #0] - 1cb2: 0089 lsl r1, r1, #2 - 1cb4: 5840 ldr r0, [r0, r1] - 1cb6: 7940 ldrb r0, [r0, #5] - 1cb8: 4669 mov r1, sp - 1cba: 7048 strb r0, [r1, #1] - 1cbc: 4668 mov r0, sp - 1cbe: 7840 ldrb r0, [r0, #1] - 1cc0: 09c0 lsr r0, r0, #7 - 1cc2: d3f3 bcc 0x1cac - 1cc4: b001 add sp, #4 - 1cc6: 4770 bx lr - 1cc8: 0864 lsr r4, r4, #1 - 1cca: 0000 lsl r0, r0, #0 - 1ccc: 5805 ldr r5, [r0, r0] - 1cce: ffff - 1cd0: 5005 str r5, [r0, r0] - 1cd2: ffff - 1cd4: ff20 - 1cd6: 0083 lsl r3, r0, #2 - 1cd8: ff1b - 1cda: 0083 lsl r3, r0, #2 - 1cdc: ff18 - 1cde: 0083 lsl r3, r0, #2 - 1ce0: 5800 ldr r0, [r0, r0] - 1ce2: ffff - 1ce4: 6000 str r0, [r0, #0] - 1ce6: ffff - 1ce8: 5000 str r0, [r0, r0] - 1cea: ffff - 1cec: b500 push {lr} - 1cee: b087 sub sp, #28 ; 0x1c - 1cf0: 466b mov r3, sp - 1cf2: 721a strb r2, [r3, #8] - 1cf4: 9101 str r1, [sp, #4] - 1cf6: 9000 str r0, [sp, #0] - 1cf8: 9900 ldr r1, [sp, #0] - 1cfa: 2000 mov r0, #0 - 1cfc: 8008 strh r0, [r1, #0] - 1cfe: 9801 ldr r0, [sp, #4] - 1d00: 2100 mov r1, #0 - 1d02: 8001 strh r1, [r0, #0] - 1d04: 2000 mov r0, #0 - 1d06: 9003 str r0, [sp, #12] ; 0xc - 1d08: f7ff ff5e bl 0x1bc8 - 1d0c: a805 add r0, sp, #20 ; 0x14 - 1d0e: a906 add r1, sp, #24 ; 0x18 - 1d10: 466a mov r2, sp - 1d12: 7a12 ldrb r2, [r2, #8] - 1d14: f7ff feee bl 0x1af4 - 1d18: 9004 str r0, [sp, #16] ; 0x10 - 1d1a: 9804 ldr r0, [sp, #16] ; 0x10 - 1d1c: 2800 cmp r0, #0 - 1d1e: d11f bne 0x1d60 - 1d20: 9803 ldr r0, [sp, #12] ; 0xc - 1d22: 2800 cmp r0, #0 - 1d24: d11c bne 0x1d60 - 1d26: 9800 ldr r0, [sp, #0] - 1d28: 4669 mov r1, sp - 1d2a: 8b0a ldrh r2, [r1, #24] ; 0x18 - 1d2c: 8801 ldrh r1, [r0, #0] - 1d2e: 1851 add r1, r2, r1 - 1d30: 8001 strh r1, [r0, #0] - 1d32: 9905 ldr r1, [sp, #20] ; 0x14 - 1d34: 4668 mov r0, sp - 1d36: 8b00 ldrh r0, [r0, #24] ; 0x18 - 1d38: 8008 strh r0, [r1, #0] - 1d3a: 9801 ldr r0, [sp, #4] - 1d3c: 9905 ldr r1, [sp, #20] ; 0x14 - 1d3e: 8809 ldrh r1, [r1, #0] - 1d40: 8802 ldrh r2, [r0, #0] - 1d42: 1889 add r1, r1, r2 - 1d44: 8001 strh r1, [r0, #0] - 1d46: a805 add r0, sp, #20 ; 0x14 - 1d48: a906 add r1, sp, #24 ; 0x18 - 1d4a: 466a mov r2, sp - 1d4c: 7a12 ldrb r2, [r2, #8] - 1d4e: f7ff fed1 bl 0x1af4 - 1d52: 9004 str r0, [sp, #16] ; 0x10 - 1d54: 9804 ldr r0, [sp, #16] ; 0x10 - 1d56: 2800 cmp r0, #0 - 1d58: d102 bne 0x1d60 - 1d5a: 9803 ldr r0, [sp, #12] ; 0xc - 1d5c: 2800 cmp r0, #0 - 1d5e: d0e2 beq 0x1d26 - 1d60: 9804 ldr r0, [sp, #16] ; 0x10 - 1d62: 2801 cmp r0, #1 - 1d64: d101 bne 0x1d6a - 1d66: 2004 mov r0, #4 - 1d68: 9003 str r0, [sp, #12] ; 0xc - 1d6a: 9803 ldr r0, [sp, #12] ; 0xc - 1d6c: b007 add sp, #28 ; 0x1c - 1d6e: bd00 pop {pc} - 1d70: b089 sub sp, #36 ; 0x24 - 1d72: 201a mov r0, #26 ; 0x1a - 1d74: 9005 str r0, [sp, #20] ; 0x14 - 1d76: 2018 mov r0, #24 ; 0x18 - 1d78: 9006 str r0, [sp, #24] ; 0x18 - 1d7a: 2000 mov r0, #0 - 1d7c: 9008 str r0, [sp, #32] ; 0x20 - 1d7e: 4669 mov r1, sp - 1d80: 9805 ldr r0, [sp, #20] ; 0x14 - 1d82: 8800 ldrh r0, [r0, #0] - 1d84: 8008 strh r0, [r1, #0] - 1d86: 9806 ldr r0, [sp, #24] ; 0x18 - 1d88: 8800 ldrh r0, [r0, #0] - 1d8a: 8048 strh r0, [r1, #2] - 1d8c: 4668 mov r0, sp - 1d8e: 8841 ldrh r1, [r0, #2] - 1d90: 8800 ldrh r0, [r0, #0] - 1d92: 0400 lsl r0, r0, #16 - 1d94: 1808 add r0, r1, r0 - 1d96: 9001 str r0, [sp, #4] - 1d98: 9801 ldr r0, [sp, #4] - 1d9a: 0200 lsl r0, r0, #8 - 1d9c: 0a00 lsr r0, r0, #8 - 1d9e: 0080 lsl r0, r0, #2 - 1da0: 3008 add r0, #8 - 1da2: 9007 str r0, [sp, #28] ; 0x1c - 1da4: 9807 ldr r0, [sp, #28] ; 0x1c - 1da6: 3018 add r0, #24 ; 0x18 - 1da8: 9002 str r0, [sp, #8] - 1daa: 9802 ldr r0, [sp, #8] - 1dac: 9004 str r0, [sp, #16] ; 0x10 - 1dae: 9802 ldr r0, [sp, #8] - 1db0: 3002 add r0, #2 - 1db2: 9003 str r0, [sp, #12] ; 0xc - 1db4: 9803 ldr r0, [sp, #12] ; 0xc - 1db6: 8801 ldrh r1, [r0, #0] - 1db8: 4806 ldr r0, =0xffff ; via 0x1dd4 - 1dba: 4281 cmp r1, r0 - 1dbc: d104 bne 0x1dc8 - 1dbe: 9804 ldr r0, [sp, #16] ; 0x10 - 1dc0: 8800 ldrh r0, [r0, #0] - 1dc2: 4904 ldr r1, =0xffff ; via 0x1dd4 - 1dc4: 4288 cmp r0, r1 - 1dc6: d001 beq 0x1dcc - 1dc8: 2001 mov r0, #1 - 1dca: 9008 str r0, [sp, #32] ; 0x20 - 1dcc: 9808 ldr r0, [sp, #32] ; 0x20 - 1dce: b009 add sp, #36 ; 0x24 - 1dd0: 4770 bx lr - 1dd2: 46c0 nop (mov r8, r8) - - 1dd4: 0000ffff - -; ARM->Thumb call veneer around 0xad2 routine - 1dd8: e92d4000 stmdb sp!, {lr} - 1ddc: e28fe001 add lr, pc, #1 - 1de0: e12fff1e bx lr - 1de4: f7fe fe75 bl 0xad2 - 1de8: 4778 bx pc - 1dea: 46c0 nop (mov r8, r8) - 1dec: e8bd8000 ldmia sp!, {pc} - -<1DF0-1EFF: all FFs> - - 1f00: 00000001 - -<1F04-end: all FFs> diff -r e5e5ed527cc1 -r 81cda18b0487 compal/c123-newboot.bin Binary file compal/c123-newboot.bin has changed diff -r e5e5ed527cc1 -r 81cda18b0487 compal/c123-newboot.disasm --- a/compal/c123-newboot.disasm Sat Jan 14 06:09:25 2023 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2708 +0,0 @@ -RESET entry and exception vectors: - 0: ea000225 b 0x89c - 4: ea000825 b 0x20a0 - 8: ea000825 b 0x20a4 - c: ea000825 b 0x20a8 - 10: ea000825 b 0x20ac - 14: ea000825 b 0x20b0 - 18: ea000825 b 0x20b4 - 1c: ea000825 b 0x20b8 - -; magic words? - 20: 4491582a - 24: 4491582b - 28: 44915857 - 2c: 44915858 - -<30-7FF: all FFs> - -00000800: 42 4F 4F 54 2E 39 30 2E 30 34 00 00 00 00 00 00 BOOT.90.04...... -00000810: 31 30 30 33 01 04 00 00 FF FF FF FF FF FF FF FF 1003............ -00000820: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ - -; everything up to 0x958 is the same as in the classic versions - 830: 00000006 - 834: 00000000 - 838: 00000000 - 83c: 00000048 - 840: 00000044 - 844: 00000052 - 848: 0000001b - 84c: 00000005 - 850: 00000000 - 854: 00000000 - 858: 00000000 - 85c: 00000000 - 860: 000000fa - 864: ffff5800 - 868: ffff5000 - 86c: fffffb00 - 870: 02a102a1 - 874: 028302a1 - 878: 00c00281 - 87c: 002a0040 - 880: 00000040 - 884: fffffd00 - 888: ffff9800 - 88c: fffffb10 - 890: ffffff08 - 894: 20061081 - 898: 00000800 - -; RESET entry point - 89c: e51f1020 ldr r1, =0xfffffd00 ; via 0x884 - 8a0: e1d120b2 ldrh r2, [r1, #2] - 8a4: e51f002c ldr r0, =0x40 ; via 0x880 - 8a8: e1800002 orr r0, r0, r2 - 8ac: e1c100b2 strh r0, [r1, #2] - 8b0: e51f1030 ldr r1, =0xffff9800 ; via 0x888 - 8b4: e15f22b6 ldrh r2, =0x2006 ; via 0x896 - 8b8: e1c120b0 strh r2, [r1] - 8bc: e5912000 ldr r2, [r1] - 8c0: e2022001 and r2, r2, #1 - 8c4: e3520001 cmp r2, #1 - 8c8: 0afffffb beq 0x8bc - 8cc: e51f1050 ldr r1, =0xfffffd00 ; via 0x884 - 8d0: e15f24b4 ldrh r2, =0x1081 ; via 0x894 - 8d4: e1c120b0 strh r2, [r1] - 8d8: e51f1054 ldr r1, =0xfffffb10 ; via 0x88c - 8dc: e15f24bc ldrh r2, =0x800 ; via 0x898 - 8e0: e1d100b0 ldrh r0, [r1] - 8e4: e1800002 orr r0, r0, r2 - 8e8: e1c100b0 strh r0, [r1] - 8ec: e51f1064 ldr r1, =0xffffff08 ; via 0x890 - 8f0: e15f25be ldrh r2, =0x0 ; via 0x89a - 8f4: e1c120b0 strh r2, [r1] - 8f8: e51f1094 ldr r1, =0xfffffb00 ; via 0x86c - 8fc: e15f29b4 ldrh r2, =0x2a1 ; via 0x870 - 900: e1c120b0 strh r2, [r1] - 904: e15f29ba ldrh r2, =0x2a1 ; via 0x872 - 908: e1c120b2 strh r2, [r1, #2] - 90c: e15f2ab0 ldrh r2, =0x2a1 ; via 0x874 - 910: e1c120b4 strh r2, [r1, #4] - 914: e15f2ab6 ldrh r2, =0x283 ; via 0x876 - 918: e1c120b6 strh r2, [r1, #6] - 91c: e15f2abc ldrh r2, =0x281 ; via 0x878 - 920: e1c120ba strh r2, [r1, #10] ; 0xa - 924: e15f2bb2 ldrh r2, =0xc0 ; via 0x87a - 928: e1c120bc strh r2, [r1, #12] ; 0xc - 92c: e15f2bb8 ldrh r2, =0x40 ; via 0x87c - 930: e1c120b8 strh r2, [r1, #8] - 934: e15f2bbe ldrh r2, =0x2a ; via 0x87e - 938: e1c120be strh r2, [r1, #14] ; 0xe - 93c: e59f0020 ldr r0, =0x83e730 ; via 0x964 - 940: e3a01b01 mov r1, #1024 ; 0x400 - 944: e2411004 sub r1, r1, #4 - 948: e0802001 add r2, r0, r1 - 94c: e3c22003 bic r2, r2, #3 - 950: e1a0d002 mov sp, r2 -; business logic - 954: e92d100f stmdb sp!, {r0, r1, r2, r3, r12} - 958: eb000544 bl 0x1e70 - 95c: e8bd100f ldmia sp!, {r0, r1, r2, r3, r12} - 960: ea0005e4 b 0x20f8 - -; stack address, varies by version - 964: 0083e730 - - 968: 4961 ldr r1, =0xfffffa08 ; via 0xaf0 - 96a: 4862 ldr r0, =0xffff ; via 0xaf4 - 96c: 8008 strh r0, [r1, #0] - 96e: 4862 ldr r0, =0xfffffa0a ; via 0xaf8 - 970: 211f mov r1, #31 ; 0x1f - 972: 8001 strh r1, [r0, #0] - 974: 4861 ldr r0, =0xfffff804 ; via 0xafc - 976: 21f5 mov r1, #245 ; 0xf5 - 978: 8001 strh r1, [r0, #0] - 97a: 21a0 mov r1, #160 ; 0xa0 - 97c: 8001 strh r1, [r0, #0] - 97e: 4860 ldr r0, =0xffff9800 ; via 0xb00 - 980: 4960 ldr r1, =0x2002 ; via 0xb04 - 982: 8001 strh r1, [r0, #0] - 984: 485e ldr r0, =0xffff9800 ; via 0xb00 - 986: 8800 ldrh r0, [r0, #0] - 988: 0840 lsr r0, r0, #1 - 98a: d2fb bcs 0x984 - 98c: 495e ldr r1, =0xfffffd00 ; via 0xb08 - 98e: 485f ldr r0, =0x1001 ; via 0xb0c - 990: 8008 strh r0, [r1, #0] - 992: 46f7 mov pc, lr - - 994: b500 push {lr} - 996: b0ff sub sp, #508 ; 0x1fc - 998: b0ca sub sp, #296 ; 0x128 - 99a: 2000 mov r0, #0 - 99c: 9001 str r0, [sp, #4] - 99e: 9801 ldr r0, [sp, #4] - 9a0: 2800 cmp r0, #0 - 9a2: d14e bne 0xa42 - 9a4: a846 add r0, sp, #280 ; 0x118 - 9a6: 2100 mov r1, #0 - 9a8: f001 f88e bl 0x1ac8 - 9ac: a9c8 add r1, sp, #800 ; 0x320 - 9ae: 7008 strb r0, [r1, #0] - 9b0: a846 add r0, sp, #280 ; 0x118 - 9b2: a902 add r1, sp, #8 - 9b4: f000 fb4c bl 0x1050 - 9b8: 9000 str r0, [sp, #0] - 9ba: 9800 ldr r0, [sp, #0] - 9bc: 2800 cmp r0, #0 - 9be: d01b beq 0x9f8 - 9c0: a924 add r1, sp, #144 ; 0x90 - 9c2: 4668 mov r0, sp - 9c4: 7a00 ldrb r0, [r0, #8] - 9c6: 7008 strb r0, [r1, #0] - 9c8: 2191 mov r1, #145 ; 0x91 - 9ca: 466a mov r2, sp - 9cc: 4668 mov r0, sp - 9ce: 7800 ldrb r0, [r0, #0] - 9d0: 5488 strb r0, [r1, r2] - 9d2: e01b b 0xa0c - 9d4: a802 add r0, sp, #8 - 9d6: a924 add r1, sp, #144 ; 0x90 - 9d8: f000 fe28 bl 0x162c - 9dc: e016 b 0xa0c - 9de: a802 add r0, sp, #8 - 9e0: a924 add r1, sp, #144 ; 0x90 - 9e2: aac8 add r2, sp, #800 ; 0x320 - 9e4: 7812 ldrb r2, [r2, #0] - 9e6: f000 fe35 bl 0x1654 - 9ea: e00f b 0xa0c - 9ec: a802 add r0, sp, #8 - 9ee: a924 add r1, sp, #144 ; 0x90 - 9f0: f000 fe67 bl 0x16c2 - 9f4: 90c7 str r0, [sp, #796] ; 0x31c - 9f6: e009 b 0xa0c - 9f8: 4668 mov r0, sp - 9fa: 7a00 ldrb r0, [r0, #8] - 9fc: 2800 cmp r0, #0 - 9fe: d0e9 beq 0x9d4 - a00: 3809 sub r0, #9 - a02: 2800 cmp r0, #0 - a04: d0eb beq 0x9de - a06: 3801 sub r0, #1 - a08: 2800 cmp r0, #0 - a0a: d0ef beq 0x9ec - a0c: a824 add r0, sp, #144 ; 0x90 - a0e: a986 add r1, sp, #536 ; 0x218 - a10: f000 fc01 bl 0x1216 - a14: 2800 cmp r0, #0 - a16: d111 bne 0xa3c - a18: a886 add r0, sp, #536 ; 0x218 - a1a: a9c8 add r1, sp, #800 ; 0x320 - a1c: 7809 ldrb r1, [r1, #0] - a1e: f001 f828 bl 0x1a72 - a22: 2800 cmp r0, #0 - a24: d00a beq 0xa3c - a26: 4668 mov r0, sp - a28: 7a00 ldrb r0, [r0, #8] - a2a: 280a cmp r0, #10 ; 0xa - a2c: d106 bne 0xa3c - a2e: a8c8 add r0, sp, #800 ; 0x320 - a30: 7800 ldrb r0, [r0, #0] - a32: f001 f979 bl 0x1d28 - a36: 98c7 ldr r0, [sp, #796] ; 0x31c - a38: f000 fb08 bl 0x104c - a3c: 9801 ldr r0, [sp, #4] - a3e: 2800 cmp r0, #0 - a40: d0b0 beq 0x9a4 - a42: b07f add sp, #508 ; 0x1fc - a44: b04a add sp, #296 ; 0x128 - a46: bd00 pop {pc} - - a48: b500 push {lr} - a4a: b0ff sub sp, #508 ; 0x1fc - a4c: b0c8 sub sp, #288 ; 0x120 - a4e: 2000 mov r0, #0 - a50: 9000 str r0, [sp, #0] - a52: a846 add r0, sp, #280 ; 0x118 - a54: 2101 mov r1, #1 - a56: f001 f837 bl 0x1ac8 - a5a: a9c6 add r1, sp, #792 ; 0x318 - a5c: 7008 strb r0, [r1, #0] - a5e: a8c6 add r0, sp, #792 ; 0x318 - a60: 7800 ldrb r0, [r0, #0] - a62: 28ff cmp r0, #255 ; 0xff - a64: d031 beq 0xaca - a66: a846 add r0, sp, #280 ; 0x118 - a68: a902 add r1, sp, #8 - a6a: f000 faf1 bl 0x1050 - a6e: 9001 str r0, [sp, #4] - a70: 9801 ldr r0, [sp, #4] - a72: 2800 cmp r0, #0 - a74: d014 beq 0xaa0 - a76: a924 add r1, sp, #144 ; 0x90 - a78: 4668 mov r0, sp - a7a: 7a00 ldrb r0, [r0, #8] - a7c: 7008 strb r0, [r1, #0] - a7e: 2291 mov r2, #145 ; 0x91 - a80: 4668 mov r0, sp - a82: 4669 mov r1, sp - a84: 7909 ldrb r1, [r1, #4] - a86: 5411 strb r1, [r2, r0] - a88: a824 add r0, sp, #144 ; 0x90 - a8a: a986 add r1, sp, #536 ; 0x218 - a8c: f000 fbc3 bl 0x1216 - a90: 2800 cmp r0, #0 - a92: d11a bne 0xaca - a94: a886 add r0, sp, #536 ; 0x218 - a96: a9c6 add r1, sp, #792 ; 0x318 - a98: 7809 ldrb r1, [r1, #0] - a9a: f000 ffea bl 0x1a72 - a9e: e014 b 0xaca - aa0: 4668 mov r0, sp - aa2: 7a00 ldrb r0, [r0, #8] - aa4: 2800 cmp r0, #0 - aa6: d110 bne 0xaca - aa8: a802 add r0, sp, #8 - aaa: a924 add r1, sp, #144 ; 0x90 - aac: f000 fdbe bl 0x162c - ab0: a824 add r0, sp, #144 ; 0x90 - ab2: a986 add r1, sp, #536 ; 0x218 - ab4: f000 fbaf bl 0x1216 - ab8: 2800 cmp r0, #0 - aba: d104 bne 0xac6 - abc: a886 add r0, sp, #536 ; 0x218 - abe: a9c6 add r1, sp, #792 ; 0x318 - ac0: 7809 ldrb r1, [r1, #0] - ac2: f000 ffd6 bl 0x1a72 - ac6: 2001 mov r0, #1 - ac8: 9000 str r0, [sp, #0] - aca: 9800 ldr r0, [sp, #0] - acc: b07f add sp, #508 ; 0x1fc - ace: b048 add sp, #288 ; 0x120 - ad0: bd00 pop {pc} - -; main function - ad2: b500 push {lr} - ad4: b082 sub sp, #8 - ad6: f7ff ff47 bl 0x968 - ada: f001 f8cd bl 0x1c78 - ade: f000 fd93 bl 0x1608 - ae2: f000 f81f bl 0xb24 - ae6: f000 f98b bl 0xe00 - aea: b002 add sp, #8 - aec: bd00 pop {pc} - aee: 46c0 nop (mov r8, r8) - - af0: fffffa08 - af4: 0000ffff - af8: fffffa0a - afc: fffff804 - b00: ffff9800 - b04: 00002002 - b08: fffffd00 - b0c: 00001001 - - b10: e3a0d502 mov sp, #8388608 ; 0x800000 - b14: e28dd802 add sp, sp, #131072 ; 0x20000 - b18: e28fe005 add lr, pc, #5 - b1c: e12fff1e bx lr - b20: e1a00000 mov r0, r0 - -; same as in the familiar versions - b24: b500 push {lr} - b26: b082 sub sp, #8 - b28: 49f0 ldr r1, =0x83ff00 ; via 0xeec - b2a: 48f1 ldr r0, =0xffff5800 ; via 0xef0 - b2c: 6008 str r0, [r1, #0] - b2e: 2000 mov r0, #0 - b30: 2102 mov r1, #2 - b32: f000 fa1d bl 0xf70 - b36: 2000 mov r0, #0 - b38: 9000 str r0, [sp, #0] - b3a: 9900 ldr r1, [sp, #0] - b3c: 2005 mov r0, #5 - b3e: 0300 lsl r0, r0, #12 - b40: 4281 cmp r1, r0 - b42: d207 bcs 0xb54 - b44: 9800 ldr r0, [sp, #0] - b46: 3001 add r0, #1 - b48: 9000 str r0, [sp, #0] - b4a: 9900 ldr r1, [sp, #0] - b4c: 2005 mov r0, #5 - b4e: 0300 lsl r0, r0, #12 - b50: 4281 cmp r1, r0 - b52: d3f7 bcc 0xb44 - b54: f000 f82a bl 0xbac - b58: 2000 mov r0, #0 - b5a: 2107 mov r1, #7 - b5c: f000 fa08 bl 0xf70 - b60: 2000 mov r0, #0 - b62: 9000 str r0, [sp, #0] - b64: 9900 ldr r1, [sp, #0] - b66: 2005 mov r0, #5 - b68: 0300 lsl r0, r0, #12 - b6a: 4281 cmp r1, r0 - b6c: d207 bcs 0xb7e - b6e: 9800 ldr r0, [sp, #0] - b70: 3001 add r0, #1 - b72: 9000 str r0, [sp, #0] - b74: 9900 ldr r1, [sp, #0] - b76: 2005 mov r0, #5 - b78: 0300 lsl r0, r0, #12 - b7a: 4281 cmp r1, r0 - b7c: d3f7 bcc 0xb6e - b7e: f000 f815 bl 0xbac - b82: 2000 mov r0, #0 - b84: 9001 str r0, [sp, #4] - b86: 9000 str r0, [sp, #0] - b88: 9900 ldr r1, [sp, #0] - b8a: 2005 mov r0, #5 - b8c: 0400 lsl r0, r0, #16 - b8e: 4281 cmp r1, r0 - b90: d20a bcs 0xba8 - b92: 9801 ldr r0, [sp, #4] - b94: 3001 add r0, #1 - b96: 9001 str r0, [sp, #4] - b98: 9800 ldr r0, [sp, #0] - b9a: 3001 add r0, #1 - b9c: 9000 str r0, [sp, #0] - b9e: 9900 ldr r1, [sp, #0] - ba0: 2005 mov r0, #5 - ba2: 0400 lsl r0, r0, #16 - ba4: 4281 cmp r1, r0 - ba6: d3f4 bcc 0xb92 - ba8: b002 add sp, #8 - baa: bd00 pop {pc} - - bac: b500 push {lr} - bae: b08a sub sp, #40 ; 0x28 - bb0: 2000 mov r0, #0 - bb2: 9002 str r0, [sp, #8] - bb4: 4669 mov r1, sp - bb6: 7708 strb r0, [r1, #28] ; 0x1c - bb8: 7748 strb r0, [r1, #29] ; 0x1d - bba: 4668 mov r0, sp - bbc: 2100 mov r1, #0 - bbe: 7781 strb r1, [r0, #30] ; 0x1e - bc0: 2000 mov r0, #0 - bc2: 9008 str r0, [sp, #32] ; 0x20 - bc4: a809 add r0, sp, #36 ; 0x24 - bc6: 7001 strb r1, [r0, #0] - bc8: 2025 mov r0, #37 ; 0x25 - bca: 4669 mov r1, sp - bcc: 2200 mov r2, #0 - bce: 5442 strb r2, [r0, r1] - bd0: 48e6 ldr r0, =0x800100 ; via 0xf6c - bd2: 9006 str r0, [sp, #24] ; 0x18 - bd4: 201b mov r0, #27 ; 0x1b - bd6: f000 f970 bl 0xeba - bda: 20f6 mov r0, #246 ; 0xf6 - bdc: f000 f96d bl 0xeba - be0: 2002 mov r0, #2 - be2: f000 f96a bl 0xeba - be6: 2000 mov r0, #0 - be8: f000 f967 bl 0xeba - bec: 2041 mov r0, #65 ; 0x41 - bee: f000 f964 bl 0xeba - bf2: 2001 mov r0, #1 - bf4: f000 f961 bl 0xeba - bf8: 2040 mov r0, #64 ; 0x40 - bfa: f000 f95e bl 0xeba - bfe: 2001 mov r0, #1 - c00: 0300 lsl r0, r0, #12 - c02: f000 f977 bl 0xef4 - c06: 281b cmp r0, #27 ; 0x1b - c08: d000 beq 0xc0c - c0a: e0f7 b 0xdfc - c0c: 2001 mov r0, #1 - c0e: 0300 lsl r0, r0, #12 - c10: f000 f970 bl 0xef4 - c14: 28f6 cmp r0, #246 ; 0xf6 - c16: d000 beq 0xc1a - c18: e0f0 b 0xdfc - c1a: 2001 mov r0, #1 - c1c: 0300 lsl r0, r0, #12 - c1e: f000 f969 bl 0xef4 - c22: 2802 cmp r0, #2 - c24: d000 beq 0xc28 - c26: e0e9 b 0xdfc - c28: 2001 mov r0, #1 - c2a: 0300 lsl r0, r0, #12 - c2c: f000 f962 bl 0xef4 - c30: 2800 cmp r0, #0 - c32: d000 beq 0xc36 - c34: e0e2 b 0xdfc - c36: 2001 mov r0, #1 - c38: 0300 lsl r0, r0, #12 - c3a: f000 f95b bl 0xef4 - c3e: 2852 cmp r0, #82 ; 0x52 - c40: d000 beq 0xc44 - c42: e0db b 0xdfc - c44: 2001 mov r0, #1 - c46: 0300 lsl r0, r0, #12 - c48: f000 f954 bl 0xef4 - c4c: 2801 cmp r0, #1 - c4e: d000 beq 0xc52 - c50: e0d4 b 0xdfc - c52: 2001 mov r0, #1 - c54: 0300 lsl r0, r0, #12 - c56: f000 f94d bl 0xef4 - c5a: 2853 cmp r0, #83 ; 0x53 - c5c: d000 beq 0xc60 - c5e: e0cd b 0xdfc - c60: 201b mov r0, #27 ; 0x1b - c62: f000 f92a bl 0xeba - c66: 20f6 mov r0, #246 ; 0xf6 - c68: f000 f927 bl 0xeba - c6c: 2002 mov r0, #2 - c6e: f000 f924 bl 0xeba - c72: 2000 mov r0, #0 - c74: f000 f921 bl 0xeba - c78: 2041 mov r0, #65 ; 0x41 - c7a: f000 f91e bl 0xeba - c7e: 2002 mov r0, #2 - c80: f000 f91b bl 0xeba - c84: 2043 mov r0, #67 ; 0x43 - c86: f000 f918 bl 0xeba - c8a: 2001 mov r0, #1 - c8c: 0300 lsl r0, r0, #12 - c8e: f000 f931 bl 0xef4 - c92: 4669 mov r1, sp - c94: 7308 strb r0, [r1, #12] ; 0xc - c96: 2002 mov r0, #2 - c98: 7548 strb r0, [r1, #21] ; 0x15 - c9a: 2000 mov r0, #0 - c9c: 9000 str r0, [sp, #0] - c9e: 9800 ldr r0, [sp, #0] - ca0: 2802 cmp r0, #2 - ca2: d215 bcs 0xcd0 - ca4: 2001 mov r0, #1 - ca6: 0300 lsl r0, r0, #12 - ca8: f000 f924 bl 0xef4 - cac: 4669 mov r1, sp - cae: 9a00 ldr r2, [sp, #0] - cb0: 1a89 sub r1, r1, r2 - cb2: 7448 strb r0, [r1, #17] ; 0x11 - cb4: 4669 mov r1, sp - cb6: 9800 ldr r0, [sp, #0] - cb8: 1a08 sub r0, r1, r0 - cba: 7c40 ldrb r0, [r0, #17] ; 0x11 - cbc: 7d49 ldrb r1, [r1, #21] ; 0x15 - cbe: 4048 eor r0, r1 - cc0: 4669 mov r1, sp - cc2: 7548 strb r0, [r1, #21] ; 0x15 - cc4: 9800 ldr r0, [sp, #0] - cc6: 3001 add r0, #1 - cc8: 9000 str r0, [sp, #0] - cca: 9800 ldr r0, [sp, #0] - ccc: 2802 cmp r0, #2 - cce: d3e9 bcc 0xca4 - cd0: 4668 mov r0, sp - cd2: 8a00 ldrh r0, [r0, #16] ; 0x10 - cd4: 466a mov r2, sp - cd6: 1e41 sub r1, r0, #1 - cd8: 8211 strh r1, [r2, #16] ; 0x10 - cda: 2800 cmp r0, #0 - cdc: d04f beq 0xd7e - cde: 2001 mov r0, #1 - ce0: 0300 lsl r0, r0, #12 - ce2: f000 f907 bl 0xef4 - ce6: 9906 ldr r1, [sp, #24] ; 0x18 - ce8: 7008 strb r0, [r1, #0] - cea: 9802 ldr r0, [sp, #8] - cec: 217d mov r1, #125 ; 0x7d - cee: 00c9 lsl r1, r1, #3 - cf0: f188 f9a8 bl 0x189044 ; U$MOD in main fw!!! - cf4: 2800 cmp r0, #0 - cf6: d12f bne 0xd58 - cf8: 9802 ldr r0, [sp, #8] - cfa: 2800 cmp r0, #0 - cfc: d02c beq 0xd58 - cfe: 9808 ldr r0, [sp, #32] ; 0x20 - d00: 2805 cmp r0, #5 - d02: d226 bcs 0xd52 - d04: e00d b 0xd22 - d06: a909 add r1, sp, #36 ; 0x24 - d08: 20ee mov r0, #238 ; 0xee - d0a: 7008 strb r0, [r1, #0] - d0c: e018 b 0xd40 - d0e: 21a2 mov r1, #162 ; 0xa2 - d10: a809 add r0, sp, #36 ; 0x24 - d12: 7001 strb r1, [r0, #0] - d14: e014 b 0xd40 - d16: 213d mov r1, #61 ; 0x3d - d18: e7fa b 0xd10 - d1a: 215e mov r1, #94 ; 0x5e - d1c: e7f8 b 0xd10 - d1e: 21d6 mov r1, #214 ; 0xd6 - d20: e7f6 b 0xd10 - d22: 9808 ldr r0, [sp, #32] ; 0x20 - d24: 2800 cmp r0, #0 - d26: d0ee beq 0xd06 - d28: 3801 sub r0, #1 - d2a: 2800 cmp r0, #0 - d2c: d0ef beq 0xd0e - d2e: 3801 sub r0, #1 - d30: 2800 cmp r0, #0 - d32: d0f0 beq 0xd16 - d34: 3801 sub r0, #1 - d36: 2800 cmp r0, #0 - d38: d0ef beq 0xd1a - d3a: 3801 sub r0, #1 - d3c: 2800 cmp r0, #0 - d3e: d0ee beq 0xd1e - d40: 4668 mov r0, sp - d42: 7d40 ldrb r0, [r0, #21] ; 0x15 - d44: a909 add r1, sp, #36 ; 0x24 - d46: 7809 ldrb r1, [r1, #0] - d48: 4288 cmp r0, r1 - d4a: d002 beq 0xd52 - d4c: 4668 mov r0, sp - d4e: 2101 mov r1, #1 - d50: 7781 strb r1, [r0, #30] ; 0x1e - d52: 9808 ldr r0, [sp, #32] ; 0x20 - d54: 3001 add r0, #1 - d56: 9008 str r0, [sp, #32] ; 0x20 - d58: 9802 ldr r0, [sp, #8] - d5a: 3001 add r0, #1 - d5c: 9002 str r0, [sp, #8] - d5e: 9806 ldr r0, [sp, #24] ; 0x18 - d60: 7800 ldrb r0, [r0, #0] - d62: 4669 mov r1, sp - d64: 7d49 ldrb r1, [r1, #21] ; 0x15 - d66: 4048 eor r0, r1 - d68: 4669 mov r1, sp - d6a: 7548 strb r0, [r1, #21] ; 0x15 - d6c: 9806 ldr r0, [sp, #24] ; 0x18 - d6e: 3001 add r0, #1 - d70: 9006 str r0, [sp, #24] ; 0x18 - d72: 4668 mov r0, sp - d74: 8a02 ldrh r2, [r0, #16] ; 0x10 - d76: 1e50 sub r0, r2, #1 - d78: 8208 strh r0, [r1, #16] ; 0x10 - d7a: 2a00 cmp r2, #0 - d7c: d1af bne 0xcde - d7e: 2001 mov r0, #1 - d80: 0300 lsl r0, r0, #12 - d82: f000 f8b7 bl 0xef4 - d86: 4669 mov r1, sp - d88: 7508 strb r0, [r1, #20] ; 0x14 - d8a: 4668 mov r0, sp - d8c: 7d01 ldrb r1, [r0, #20] ; 0x14 - d8e: 7d40 ldrb r0, [r0, #21] ; 0x15 - d90: 4281 cmp r1, r0 - d92: d103 bne 0xd9c - d94: 4668 mov r0, sp - d96: 7f80 ldrb r0, [r0, #30] ; 0x1e - d98: 2801 cmp r0, #1 - d9a: d115 bne 0xdc8 - d9c: 201b mov r0, #27 ; 0x1b - d9e: f000 f88c bl 0xeba - da2: 20f6 mov r0, #246 ; 0xf6 - da4: f000 f889 bl 0xeba - da8: 2002 mov r0, #2 - daa: f000 f886 bl 0xeba - dae: 2000 mov r0, #0 - db0: f000 f883 bl 0xeba - db4: 2045 mov r0, #69 ; 0x45 - db6: f000 f880 bl 0xeba - dba: 2053 mov r0, #83 ; 0x53 - dbc: f000 f87d bl 0xeba - dc0: 2016 mov r0, #22 ; 0x16 - dc2: f000 f87a bl 0xeba - dc6: e019 b 0xdfc - dc8: 201b mov r0, #27 ; 0x1b - dca: f000 f876 bl 0xeba - dce: 20f6 mov r0, #246 ; 0xf6 - dd0: f000 f873 bl 0xeba - dd4: 2002 mov r0, #2 - dd6: f000 f870 bl 0xeba - dda: 2000 mov r0, #0 - ddc: f000 f86d bl 0xeba - de0: 2041 mov r0, #65 ; 0x41 - de2: f000 f86a bl 0xeba - de6: 2003 mov r0, #3 - de8: f000 f867 bl 0xeba - dec: 2042 mov r0, #66 ; 0x42 - dee: f000 f864 bl 0xeba - df2: 483e ldr r0, =0x83ff00 ; via 0xeec - df4: 6800 ldr r0, [r0, #0] - df6: 4990 ldr r1, =0x800100 ; via 0x1038 - df8: f000 f85e bl 0xeb8 - dfc: b00a add sp, #40 ; 0x28 - dfe: bd00 pop {pc} - - e00: b500 push {lr} - e02: b081 sub sp, #4 - e04: 2066 mov r0, #102 ; 0x66 - e06: f000 f858 bl 0xeba - e0a: 2074 mov r0, #116 ; 0x74 - e0c: f000 f855 bl 0xeba - e10: 206d mov r0, #109 ; 0x6d - e12: f000 f852 bl 0xeba - e16: 2074 mov r0, #116 ; 0x74 - e18: f000 f84f bl 0xeba - e1c: 206f mov r0, #111 ; 0x6f - e1e: f000 f84c bl 0xeba - e22: 206f mov r0, #111 ; 0x6f - e24: f000 f849 bl 0xeba - e28: 206c mov r0, #108 ; 0x6c - e2a: f000 f846 bl 0xeba - e2e: 4983 ldr r1, =0x83ff80 ; via 0x103c - e30: 2000 mov r0, #0 - e32: 7008 strb r0, [r1, #0] - e34: 9000 str r0, [sp, #0] - e36: 9800 ldr r0, [sp, #0] - e38: 0c00 lsr r0, r0, #16 - e3a: d105 bne 0xe48 - e3c: 9800 ldr r0, [sp, #0] - e3e: 3001 add r0, #1 - e40: 9000 str r0, [sp, #0] - e42: 9800 ldr r0, [sp, #0] - e44: 0c00 lsr r0, r0, #16 - e46: d0f9 beq 0xe3c - e48: 2007 mov r0, #7 - e4a: 0400 lsl r0, r0, #16 - e4c: f000 f852 bl 0xef4 - e50: 2879 cmp r0, #121 ; 0x79 - e52: d10e bne 0xe72 - e54: 2001 mov r0, #1 - e56: 0300 lsl r0, r0, #12 - e58: f000 f84c bl 0xef4 - e5c: 2865 cmp r0, #101 ; 0x65 - e5e: d108 bne 0xe72 - e60: 2001 mov r0, #1 - e62: 0300 lsl r0, r0, #12 - e64: f000 f846 bl 0xef4 - e68: 2873 cmp r0, #115 ; 0x73 - e6a: d102 bne 0xe72 - e6c: 4873 ldr r0, =0x83ff80 ; via 0x103c - e6e: 2101 mov r1, #1 - e70: 7001 strb r1, [r0, #0] - e72: f000 f8cf bl 0x1014 - e76: 2800 cmp r0, #0 - e78: d00d beq 0xe96 - e7a: 206d mov r0, #109 ; 0x6d - e7c: f000 f81d bl 0xeba - e80: 206f mov r0, #111 ; 0x6f - e82: f000 f81a bl 0xeba - e86: 2064 mov r0, #100 ; 0x64 - e88: f000 f817 bl 0xeba - e8c: 2065 mov r0, #101 ; 0x65 - e8e: f000 f814 bl 0xeba - e92: 206d mov r0, #109 ; 0x6d - e94: e00c b 0xeb0 - e96: 2065 mov r0, #101 ; 0x65 - e98: f000 f80f bl 0xeba - e9c: 2072 mov r0, #114 ; 0x72 - e9e: f000 f80c bl 0xeba - ea2: 2072 mov r0, #114 ; 0x72 - ea4: f000 f809 bl 0xeba - ea8: 206f mov r0, #111 ; 0x6f - eaa: f000 f806 bl 0xeba - eae: 2072 mov r0, #114 ; 0x72 - eb0: f000 f803 bl 0xeba - eb4: b001 add sp, #4 - eb6: bd00 pop {pc} - - eb8: 4708 bx r1 - - eba: b081 sub sp, #4 - ebc: 4669 mov r1, sp - ebe: 7008 strb r0, [r1, #0] - ec0: 480a ldr r0, =0x83ff00 ; via 0xeec - ec2: 6800 ldr r0, [r0, #0] - ec4: 7940 ldrb r0, [r0, #5] - ec6: 0980 lsr r0, r0, #6 - ec8: d3fa bcc 0xec0 - eca: 4808 ldr r0, =0x83ff00 ; via 0xeec - ecc: 6800 ldr r0, [r0, #0] - ece: 4669 mov r1, sp - ed0: 7809 ldrb r1, [r1, #0] - ed2: 7001 strb r1, [r0, #0] - ed4: b001 add sp, #4 - ed6: 46f7 mov pc, lr - ed8: 4859 ldr r0, =0x83ff00 ; via 0x1040 - eda: 6800 ldr r0, [r0, #0] - edc: 7940 ldrb r0, [r0, #5] - ede: 0840 lsr r0, r0, #1 - ee0: d3fa bcc 0xed8 - ee2: 4857 ldr r0, =0x83ff00 ; via 0x1040 - ee4: 6800 ldr r0, [r0, #0] - ee6: 7800 ldrb r0, [r0, #0] - ee8: 4770 bx lr - eea: 46c0 nop (mov r8, r8) - eec: ff00 - eee: 0083 lsl r3, r0, #2 - ef0: 5800 ldr r0, [r0, r0] - ef2: ffff - ef4: b083 sub sp, #12 ; 0xc - ef6: 9000 str r0, [sp, #0] - ef8: 9800 ldr r0, [sp, #0] - efa: 9002 str r0, [sp, #8] - efc: 4850 ldr r0, =0x83ff00 ; via 0x1040 - efe: 6800 ldr r0, [r0, #0] - f00: 7940 ldrb r0, [r0, #5] - f02: 0840 lsr r0, r0, #1 - f04: d20c bcs 0xf20 - f06: 9802 ldr r0, [sp, #8] - f08: 3801 sub r0, #1 - f0a: 9002 str r0, [sp, #8] - f0c: 9802 ldr r0, [sp, #8] - f0e: 2800 cmp r0, #0 - f10: d101 bne 0xf16 - f12: 20ff mov r0, #255 ; 0xff - f14: e007 b 0xf26 - f16: 484a ldr r0, =0x83ff00 ; via 0x1040 - f18: 6800 ldr r0, [r0, #0] - f1a: 7940 ldrb r0, [r0, #5] - f1c: 0840 lsr r0, r0, #1 - f1e: d3f2 bcc 0xf06 - f20: 4847 ldr r0, =0x83ff00 ; via 0x1040 - f22: 6800 ldr r0, [r0, #0] - f24: 7800 ldrb r0, [r0, #0] - f26: b003 add sp, #12 ; 0xc - f28: 4770 bx lr - f2a: b081 sub sp, #4 - f2c: e001 b 0xf32 - f2e: 9800 ldr r0, [sp, #0] - f30: 3801 sub r0, #1 - f32: 9000 str r0, [sp, #0] - f34: 4842 ldr r0, =0x83ff00 ; via 0x1040 - f36: 6800 ldr r0, [r0, #0] - f38: 7940 ldrb r0, [r0, #5] - f3a: 0840 lsr r0, r0, #1 - f3c: d202 bcs 0xf44 - f3e: 9800 ldr r0, [sp, #0] - f40: 2800 cmp r0, #0 - f42: dcf4 bgt 0xf2e - f44: 9800 ldr r0, [sp, #0] - f46: 2800 cmp r0, #0 - f48: dd01 ble 0xf4e - f4a: 2000 mov r0, #0 - f4c: e000 b 0xf50 - f4e: 2001 mov r0, #1 - f50: b001 add sp, #4 - f52: 4770 bx lr - f54: b082 sub sp, #8 - f56: 9000 str r0, [sp, #0] - f58: 4669 mov r1, sp - f5a: 2000 mov r0, #0 - f5c: 7188 strb r0, [r1, #6] - f5e: 9900 ldr r1, [sp, #0] - f60: 4838 ldr r0, =0xfffef000 ; via 0x1044 - f62: 8800 ldrh r0, [r0, #0] - f64: 8008 strh r0, [r1, #0] - f66: b002 add sp, #8 - f68: 4770 bx lr - f6a: 46c0 nop (mov r8, r8) - f6c: 0100 lsl r0, r0, #4 - f6e: 0080 lsl r0, r0, #2 - f70: b081 sub sp, #4 - f72: 466a mov r2, sp - f74: 7051 strb r1, [r2, #1] - f76: 4669 mov r1, sp - f78: 7008 strb r0, [r1, #0] - f7a: 4933 ldr r1, =0xffff6000 ; via 0x1048 - f7c: 2002 mov r0, #2 - f7e: 880a ldrh r2, [r1, #0] - f80: 4310 orr r0, r2 - f82: 8008 strh r0, [r1, #0] - f84: 4830 ldr r0, =0xffff6000 ; via 0x1048 - f86: 8801 ldrh r1, [r0, #0] - f88: 0849 lsr r1, r1, #1 - f8a: 0049 lsl r1, r1, #1 - f8c: 8001 strh r1, [r0, #0] - f8e: 492e ldr r1, =0xffff6000 ; via 0x1048 - f90: 8808 ldrh r0, [r1, #0] - f92: 2202 mov r2, #2 - f94: 4390 bic r0, r2 - f96: 8008 strh r0, [r1, #0] - f98: 4829 ldr r0, =0x83ff00 ; via 0x1040 - f9a: 6801 ldr r1, [r0, #0] - f9c: 2007 mov r0, #7 - f9e: 7208 strb r0, [r1, #8] - fa0: 4827 ldr r0, =0x83ff00 ; via 0x1040 - fa2: 6801 ldr r1, [r0, #0] - fa4: 20bf mov r0, #191 ; 0xbf - fa6: 70c8 strb r0, [r1, #3] - fa8: 4825 ldr r0, =0x83ff00 ; via 0x1040 - faa: 6800 ldr r0, [r0, #0] - fac: 1c80 add r0, r0, #2 - fae: 2110 mov r1, #16 ; 0x10 - fb0: 8802 ldrh r2, [r0, #0] - fb2: 4311 orr r1, r2 - fb4: 8001 strh r1, [r0, #0] - fb6: 4822 ldr r0, =0x83ff00 ; via 0x1040 - fb8: 6801 ldr r1, [r0, #0] - fba: 2080 mov r0, #128 ; 0x80 - fbc: 70c8 strb r0, [r1, #3] - fbe: 4820 ldr r0, =0x83ff00 ; via 0x1040 - fc0: 6800 ldr r0, [r0, #0] - fc2: 2107 mov r1, #7 - fc4: 7081 strb r1, [r0, #2] - fc6: 481e ldr r0, =0x83ff00 ; via 0x1040 - fc8: 6800 ldr r0, [r0, #0] - fca: 21bf mov r1, #191 ; 0xbf - fcc: 70c1 strb r1, [r0, #3] - fce: 481c ldr r0, =0x83ff00 ; via 0x1040 - fd0: 6801 ldr r1, [r0, #0] - fd2: 4668 mov r0, sp - fd4: 7840 ldrb r0, [r0, #1] - fd6: 7008 strb r0, [r1, #0] - fd8: 4819 ldr r0, =0x83ff00 ; via 0x1040 - fda: 6801 ldr r1, [r0, #0] - fdc: 4668 mov r0, sp - fde: 7800 ldrb r0, [r0, #0] - fe0: 7048 strb r0, [r1, #1] - fe2: 4817 ldr r0, =0x83ff00 ; via 0x1040 - fe4: 6801 ldr r1, [r0, #0] - fe6: 2003 mov r0, #3 - fe8: 70c8 strb r0, [r1, #3] - fea: 4815 ldr r0, =0x83ff00 ; via 0x1040 - fec: 6800 ldr r0, [r0, #0] - fee: 2100 mov r1, #0 - ff0: 7201 strb r1, [r0, #8] - ff2: 4813 ldr r0, =0x83ff00 ; via 0x1040 - ff4: 6800 ldr r0, [r0, #0] - ff6: 7940 ldrb r0, [r0, #5] - ff8: 0840 lsr r0, r0, #1 - ffa: d309 bcc 0x1010 - ffc: 4669 mov r1, sp - ffe: 4810 ldr r0, =0x83ff00 ; via 0x1040 - 1000: 6800 ldr r0, [r0, #0] - 1002: 7800 ldrb r0, [r0, #0] - 1004: 7088 strb r0, [r1, #2] - 1006: 480e ldr r0, =0x83ff00 ; via 0x1040 - 1008: 6800 ldr r0, [r0, #0] - 100a: 7940 ldrb r0, [r0, #5] - 100c: 0840 lsr r0, r0, #1 - 100e: d2f5 bcs 0xffc - 1010: b001 add sp, #4 - 1012: 4770 bx lr - 1014: 4809 ldr r0, =0x83ff80 ; via 0x103c - 1016: 7800 ldrb r0, [r0, #0] - 1018: 4770 bx lr - 101a: b500 push {lr} - 101c: b081 sub sp, #4 - 101e: 4669 mov r1, sp - 1020: 7008 strb r0, [r1, #0] - 1022: 4668 mov r0, sp - 1024: 7800 ldrb r0, [r0, #0] - 1026: f7ff ff48 bl 0xeba - 102a: b001 add sp, #4 - 102c: bd00 pop {pc} - 102e: b500 push {lr} - 1030: f7ff ff52 bl 0xed8 - 1034: bd00 pop {pc} - 1036: 46c0 nop (mov r8, r8) - 1038: 0100 lsl r0, r0, #4 - 103a: 0080 lsl r0, r0, #2 - 103c: ff80 - 103e: 0083 lsl r3, r0, #2 - 1040: ff00 - 1042: 0083 lsl r3, r0, #2 - 1044: f000 fffe bl 0x2044 - 1048: 6000 str r0, [r0, #0] - 104a: ffff - 104c: 4700 bx r0 - 104e: 0000 lsl r0, r0, #0 - 1050: b08c sub sp, #48 ; 0x30 - 1052: 9101 str r1, [sp, #4] - 1054: 9000 str r0, [sp, #0] - 1056: 2000 mov r0, #0 - 1058: 9003 str r0, [sp, #12] ; 0xc - 105a: 9800 ldr r0, [sp, #0] - 105c: 7801 ldrb r1, [r0, #0] - 105e: 3001 add r0, #1 - 1060: 9000 str r0, [sp, #0] - 1062: 9105 str r1, [sp, #20] ; 0x14 - 1064: 9800 ldr r0, [sp, #0] - 1066: 7801 ldrb r1, [r0, #0] - 1068: 3001 add r0, #1 - 106a: 9000 str r0, [sp, #0] - 106c: 9801 ldr r0, [sp, #4] - 106e: 7001 strb r1, [r0, #0] - 1070: 2001 mov r0, #1 - 1072: 9004 str r0, [sp, #16] ; 0x10 - 1074: e0a8 b 0x11c8 - 1076: 9804 ldr r0, [sp, #16] ; 0x10 - 1078: 3002 add r0, #2 - 107a: 9004 str r0, [sp, #16] ; 0x10 - 107c: 9800 ldr r0, [sp, #0] - 107e: 7801 ldrb r1, [r0, #0] - 1080: 3001 add r0, #1 - 1082: 9000 str r0, [sp, #0] - 1084: 4668 mov r0, sp - 1086: 8441 strh r1, [r0, #34] ; 0x22 - 1088: 9800 ldr r0, [sp, #0] - 108a: 7801 ldrb r1, [r0, #0] - 108c: 3001 add r0, #1 - 108e: 9000 str r0, [sp, #0] - 1090: 4668 mov r0, sp - 1092: 8401 strh r1, [r0, #32] ; 0x20 - 1094: 8c00 ldrh r0, [r0, #32] ; 0x20 - 1096: 4669 mov r1, sp - 1098: 8c49 ldrh r1, [r1, #34] ; 0x22 - 109a: 0209 lsl r1, r1, #8 - 109c: 1840 add r0, r0, r1 - 109e: 9901 ldr r1, [sp, #4] - 10a0: 8088 strh r0, [r1, #4] - 10a2: 9804 ldr r0, [sp, #16] ; 0x10 - 10a4: 3001 add r0, #1 - 10a6: 9004 str r0, [sp, #16] ; 0x10 - 10a8: 9800 ldr r0, [sp, #0] - 10aa: 7801 ldrb r1, [r0, #0] - 10ac: 3001 add r0, #1 - 10ae: 9000 str r0, [sp, #0] - 10b0: 4668 mov r0, sp - 10b2: 7601 strb r1, [r0, #24] ; 0x18 - 10b4: 9901 ldr r1, [sp, #4] - 10b6: 7e00 ldrb r0, [r0, #24] ; 0x18 - 10b8: 7188 strb r0, [r1, #6] - 10ba: 4668 mov r0, sp - 10bc: 7e00 ldrb r0, [r0, #24] ; 0x18 - 10be: 2840 cmp r0, #64 ; 0x40 - 10c0: dc00 bgt 0x10c4 - 10c2: e09f b 0x1204 - 10c4: 2004 mov r0, #4 - 10c6: 9003 str r0, [sp, #12] ; 0xc - 10c8: e09c b 0x1204 - 10ca: 9804 ldr r0, [sp, #16] ; 0x10 - 10cc: 3002 add r0, #2 - 10ce: 9004 str r0, [sp, #16] ; 0x10 - 10d0: 9800 ldr r0, [sp, #0] - 10d2: 7801 ldrb r1, [r0, #0] - 10d4: 3001 add r0, #1 - 10d6: 9000 str r0, [sp, #0] - 10d8: 4668 mov r0, sp - 10da: 8441 strh r1, [r0, #34] ; 0x22 - 10dc: 9800 ldr r0, [sp, #0] - 10de: 7801 ldrb r1, [r0, #0] - 10e0: 3001 add r0, #1 - 10e2: 9000 str r0, [sp, #0] - 10e4: 4668 mov r0, sp - 10e6: 8401 strh r1, [r0, #32] ; 0x20 - 10e8: 8c00 ldrh r0, [r0, #32] ; 0x20 - 10ea: 4669 mov r1, sp - 10ec: 8c49 ldrh r1, [r1, #34] ; 0x22 - 10ee: 0209 lsl r1, r1, #8 - 10f0: 1841 add r1, r0, r1 - 10f2: 9801 ldr r0, [sp, #4] - 10f4: 8081 strh r1, [r0, #4] - 10f6: 9804 ldr r0, [sp, #16] ; 0x10 - 10f8: 3001 add r0, #1 - 10fa: 9004 str r0, [sp, #16] ; 0x10 - 10fc: 9800 ldr r0, [sp, #0] - 10fe: 7801 ldrb r1, [r0, #0] - 1100: 3001 add r0, #1 - 1102: 9000 str r0, [sp, #0] - 1104: 4668 mov r0, sp - 1106: 7601 strb r1, [r0, #24] ; 0x18 - 1108: 9901 ldr r1, [sp, #4] - 110a: 7e00 ldrb r0, [r0, #24] ; 0x18 - 110c: 7188 strb r0, [r1, #6] - 110e: 4668 mov r0, sp - 1110: 7e00 ldrb r0, [r0, #24] ; 0x18 - 1112: 2840 cmp r0, #64 ; 0x40 - 1114: dcd6 bgt 0x10c4 - 1116: 9801 ldr r0, [sp, #4] - 1118: 3008 add r0, #8 - 111a: 9007 str r0, [sp, #28] ; 0x1c - 111c: 2000 mov r0, #0 - 111e: 9002 str r0, [sp, #8] - 1120: 9902 ldr r1, [sp, #8] - 1122: 4668 mov r0, sp - 1124: 7e00 ldrb r0, [r0, #24] ; 0x18 - 1126: 4281 cmp r1, r0 - 1128: da6c bge 0x1204 - 112a: 9800 ldr r0, [sp, #0] - 112c: 7801 ldrb r1, [r0, #0] - 112e: 3001 add r0, #1 - 1130: 9000 str r0, [sp, #0] - 1132: 4668 mov r0, sp - 1134: 84c1 strh r1, [r0, #38] ; 0x26 - 1136: 9800 ldr r0, [sp, #0] - 1138: 7801 ldrb r1, [r0, #0] - 113a: 3001 add r0, #1 - 113c: 9000 str r0, [sp, #0] - 113e: 4668 mov r0, sp - 1140: 8481 strh r1, [r0, #36] ; 0x24 - 1142: 9807 ldr r0, [sp, #28] ; 0x1c - 1144: 1c81 add r1, r0, #2 - 1146: 9107 str r1, [sp, #28] ; 0x1c - 1148: 4669 mov r1, sp - 114a: 8c89 ldrh r1, [r1, #36] ; 0x24 - 114c: 466a mov r2, sp - 114e: 8cd2 ldrh r2, [r2, #38] ; 0x26 - 1150: 0212 lsl r2, r2, #8 - 1152: 1889 add r1, r1, r2 - 1154: 8001 strh r1, [r0, #0] - 1156: 9804 ldr r0, [sp, #16] ; 0x10 - 1158: 3002 add r0, #2 - 115a: 9004 str r0, [sp, #16] ; 0x10 - 115c: 9802 ldr r0, [sp, #8] - 115e: 3001 add r0, #1 - 1160: 9002 str r0, [sp, #8] - 1162: 9902 ldr r1, [sp, #8] - 1164: 4668 mov r0, sp - 1166: 7e00 ldrb r0, [r0, #24] ; 0x18 - 1168: 4281 cmp r1, r0 - 116a: dbde blt 0x112a - 116c: e04a b 0x1204 - 116e: 9804 ldr r0, [sp, #16] ; 0x10 - 1170: 3002 add r0, #2 - 1172: 9004 str r0, [sp, #16] ; 0x10 - 1174: 9800 ldr r0, [sp, #0] - 1176: 7801 ldrb r1, [r0, #0] - 1178: 3001 add r0, #1 - 117a: 9000 str r0, [sp, #0] - 117c: 4668 mov r0, sp - 117e: 8501 strh r1, [r0, #40] ; 0x28 - 1180: 9800 ldr r0, [sp, #0] - 1182: 7801 ldrb r1, [r0, #0] - 1184: 3001 add r0, #1 - 1186: 9000 str r0, [sp, #0] - 1188: 4668 mov r0, sp - 118a: 8541 strh r1, [r0, #42] ; 0x2a - 118c: 8d41 ldrh r1, [r0, #42] ; 0x2a - 118e: 8d00 ldrh r0, [r0, #40] ; 0x28 - 1190: 0200 lsl r0, r0, #8 - 1192: 1809 add r1, r1, r0 - 1194: 9801 ldr r0, [sp, #4] - 1196: 8081 strh r1, [r0, #4] - 1198: 9804 ldr r0, [sp, #16] ; 0x10 - 119a: 3002 add r0, #2 - 119c: 9004 str r0, [sp, #16] ; 0x10 - 119e: 9800 ldr r0, [sp, #0] - 11a0: 7801 ldrb r1, [r0, #0] - 11a2: 3001 add r0, #1 - 11a4: 9000 str r0, [sp, #0] - 11a6: 4668 mov r0, sp - 11a8: 8581 strh r1, [r0, #44] ; 0x2c - 11aa: 9800 ldr r0, [sp, #0] - 11ac: 7801 ldrb r1, [r0, #0] - 11ae: 3001 add r0, #1 - 11b0: 9000 str r0, [sp, #0] - 11b2: 4668 mov r0, sp - 11b4: 85c1 strh r1, [r0, #46] ; 0x2e - 11b6: 8dc1 ldrh r1, [r0, #46] ; 0x2e - 11b8: 8d80 ldrh r0, [r0, #44] ; 0x2c - 11ba: 0200 lsl r0, r0, #8 - 11bc: 1808 add r0, r1, r0 - 11be: 9901 ldr r1, [sp, #4] - 11c0: 80c8 strh r0, [r1, #6] - 11c2: e01f b 0x1204 - 11c4: 2008 mov r0, #8 - 11c6: e77e b 0x10c6 - 11c8: 9801 ldr r0, [sp, #4] - 11ca: 7801 ldrb r1, [r0, #0] - 11cc: 290a cmp r1, #10 ; 0xa - 11ce: d8f9 bhi 0x11c4 - 11d0: a001 add r0, pc, #4 - 11d2: 0089 lsl r1, r1, #2 - 11d4: 5840 ldr r0, [r0, r1] - 11d6: 4687 mov pc, r0 - 11d8: 1204 asr r4, r0, #8 - 11da: 0000 lsl r0, r0, #0 - 11dc: 1204 asr r4, r0, #8 - 11de: 0000 lsl r0, r0, #0 - 11e0: 1204 asr r4, r0, #8 - 11e2: 0000 lsl r0, r0, #0 - 11e4: 1204 asr r4, r0, #8 - 11e6: 0000 lsl r0, r0, #0 - 11e8: 1204 asr r4, r0, #8 - 11ea: 0000 lsl r0, r0, #0 - 11ec: 1204 asr r4, r0, #8 - 11ee: 0000 lsl r0, r0, #0 - 11f0: 1204 asr r4, r0, #8 - 11f2: 0000 lsl r0, r0, #0 - 11f4: 1076 asr r6, r6, #1 - 11f6: 0000 lsl r0, r0, #0 - 11f8: 10ca asr r2, r1, #3 - 11fa: 0000 lsl r0, r0, #0 - 11fc: 1204 asr r4, r0, #8 - 11fe: 0000 lsl r0, r0, #0 - 1200: 116e asr r6, r5, #5 - 1202: 0000 lsl r0, r0, #0 - 1204: 9905 ldr r1, [sp, #20] ; 0x14 - 1206: 9804 ldr r0, [sp, #16] ; 0x10 - 1208: 4281 cmp r1, r0 - 120a: d001 beq 0x1210 - 120c: 2004 mov r0, #4 - 120e: 9003 str r0, [sp, #12] ; 0xc - 1210: 9803 ldr r0, [sp, #12] ; 0xc - 1212: b00c add sp, #48 ; 0x30 - 1214: 4770 bx lr - 1216: b089 sub sp, #36 ; 0x24 - 1218: 9101 str r1, [sp, #4] - 121a: 9000 str r0, [sp, #0] - 121c: 2000 mov r0, #0 - 121e: 9003 str r0, [sp, #12] ; 0xc - 1220: 9801 ldr r0, [sp, #4] - 1222: 1c41 add r1, r0, #1 - 1224: 9101 str r1, [sp, #4] - 1226: 9005 str r0, [sp, #20] ; 0x14 - 1228: 9801 ldr r0, [sp, #4] - 122a: 1c41 add r1, r0, #1 - 122c: 9101 str r1, [sp, #4] - 122e: 9900 ldr r1, [sp, #0] - 1230: 7809 ldrb r1, [r1, #0] - 1232: 7001 strb r1, [r0, #0] - 1234: 4669 mov r1, sp - 1236: 2001 mov r0, #1 - 1238: 7408 strb r0, [r1, #16] ; 0x10 - 123a: 9801 ldr r0, [sp, #4] - 123c: 1c41 add r1, r0, #1 - 123e: 9101 str r1, [sp, #4] - 1240: 9900 ldr r1, [sp, #0] - 1242: 7849 ldrb r1, [r1, #1] - 1244: 7001 strb r1, [r0, #0] - 1246: 4669 mov r1, sp - 1248: 4668 mov r0, sp - 124a: 7c00 ldrb r0, [r0, #16] ; 0x10 - 124c: 3001 add r0, #1 - 124e: 7408 strb r0, [r1, #16] ; 0x10 - 1250: e0e4 b 0x141c - 1252: 9800 ldr r0, [sp, #0] - 1254: 7840 ldrb r0, [r0, #1] - 1256: 2800 cmp r0, #0 - 1258: d000 beq 0x125c - 125a: e0fd b 0x1458 - 125c: 9801 ldr r0, [sp, #4] - 125e: 1c41 add r1, r0, #1 - 1260: 9101 str r1, [sp, #4] - 1262: 9900 ldr r1, [sp, #0] - 1264: 7909 ldrb r1, [r1, #4] - 1266: 7001 strb r1, [r0, #0] - 1268: 9801 ldr r0, [sp, #4] - 126a: 1c41 add r1, r0, #1 - 126c: 9101 str r1, [sp, #4] - 126e: 9900 ldr r1, [sp, #0] - 1270: 7949 ldrb r1, [r1, #5] - 1272: 7001 strb r1, [r0, #0] - 1274: 9801 ldr r0, [sp, #4] - 1276: 1c41 add r1, r0, #1 - 1278: 9101 str r1, [sp, #4] - 127a: 9900 ldr r1, [sp, #0] - 127c: 7989 ldrb r1, [r1, #6] - 127e: 7001 strb r1, [r0, #0] - 1280: 4668 mov r0, sp - 1282: 7c00 ldrb r0, [r0, #16] ; 0x10 - 1284: 3003 add r0, #3 - 1286: 4669 mov r1, sp - 1288: 7408 strb r0, [r1, #16] ; 0x10 - 128a: e0e5 b 0x1458 - 128c: 9800 ldr r0, [sp, #0] - 128e: 7840 ldrb r0, [r0, #1] - 1290: 2800 cmp r0, #0 - 1292: d000 beq 0x1296 - 1294: e0e0 b 0x1458 - 1296: 9801 ldr r0, [sp, #4] - 1298: 1c41 add r1, r0, #1 - 129a: 9101 str r1, [sp, #4] - 129c: 9900 ldr r1, [sp, #0] - 129e: 7909 ldrb r1, [r1, #4] - 12a0: 7001 strb r1, [r0, #0] - 12a2: 4668 mov r0, sp - 12a4: 7c00 ldrb r0, [r0, #16] ; 0x10 - 12a6: 3001 add r0, #1 - 12a8: e7ed b 0x1286 - 12aa: 9800 ldr r0, [sp, #0] - 12ac: 7840 ldrb r0, [r0, #1] - 12ae: 2800 cmp r0, #0 - 12b0: d000 beq 0x12b4 - 12b2: e0d1 b 0x1458 - 12b4: e7ef b 0x1296 - 12b6: 9800 ldr r0, [sp, #0] - 12b8: 7840 ldrb r0, [r0, #1] - 12ba: 2800 cmp r0, #0 - 12bc: d000 beq 0x12c0 - 12be: e0cb b 0x1458 - 12c0: e7e9 b 0x1296 - 12c2: 9800 ldr r0, [sp, #0] - 12c4: 7840 ldrb r0, [r0, #1] - 12c6: 2800 cmp r0, #0 - 12c8: d000 beq 0x12cc - 12ca: e0c5 b 0x1458 - 12cc: 4669 mov r1, sp - 12ce: 9800 ldr r0, [sp, #0] - 12d0: 8880 ldrh r0, [r0, #4] - 12d2: 8408 strh r0, [r1, #32] ; 0x20 - 12d4: 9801 ldr r0, [sp, #4] - 12d6: 1c41 add r1, r0, #1 - 12d8: 9101 str r1, [sp, #4] - 12da: 4669 mov r1, sp - 12dc: 8c09 ldrh r1, [r1, #32] ; 0x20 - 12de: 0409 lsl r1, r1, #16 - 12e0: 0e09 lsr r1, r1, #24 - 12e2: 0209 lsl r1, r1, #8 - 12e4: 1209 asr r1, r1, #8 - 12e6: 7001 strb r1, [r0, #0] - 12e8: 9801 ldr r0, [sp, #4] - 12ea: 1c41 add r1, r0, #1 - 12ec: 9101 str r1, [sp, #4] - 12ee: 4669 mov r1, sp - 12f0: 8c09 ldrh r1, [r1, #32] ; 0x20 - 12f2: 0609 lsl r1, r1, #24 - 12f4: 0e09 lsr r1, r1, #24 - 12f6: 7001 strb r1, [r0, #0] - 12f8: 4669 mov r1, sp - 12fa: 9800 ldr r0, [sp, #0] - 12fc: 88c0 ldrh r0, [r0, #6] - 12fe: 8408 strh r0, [r1, #32] ; 0x20 - 1300: 9801 ldr r0, [sp, #4] - 1302: 1c41 add r1, r0, #1 - 1304: 9101 str r1, [sp, #4] - 1306: 4669 mov r1, sp - 1308: 8c09 ldrh r1, [r1, #32] ; 0x20 - 130a: 0409 lsl r1, r1, #16 - 130c: 0e09 lsr r1, r1, #24 - 130e: 0209 lsl r1, r1, #8 - 1310: 1209 asr r1, r1, #8 - 1312: 7001 strb r1, [r0, #0] - 1314: 9801 ldr r0, [sp, #4] - 1316: 1c41 add r1, r0, #1 - 1318: 9101 str r1, [sp, #4] - 131a: 4669 mov r1, sp - 131c: 8c09 ldrh r1, [r1, #32] ; 0x20 - 131e: 0609 lsl r1, r1, #24 - 1320: 0e09 lsr r1, r1, #24 - 1322: 7001 strb r1, [r0, #0] - 1324: 4668 mov r0, sp - 1326: 7c00 ldrb r0, [r0, #16] ; 0x10 - 1328: 3004 add r0, #4 - 132a: e7ac b 0x1286 - 132c: 9800 ldr r0, [sp, #0] - 132e: 7840 ldrb r0, [r0, #1] - 1330: 2800 cmp r0, #0 - 1332: d000 beq 0x1336 - 1334: e090 b 0x1458 - 1336: e7ae b 0x1296 - 1338: 9800 ldr r0, [sp, #0] - 133a: 7840 ldrb r0, [r0, #1] - 133c: 2800 cmp r0, #0 - 133e: d000 beq 0x1342 - 1340: e08a b 0x1458 - 1342: 4669 mov r1, sp - 1344: 4668 mov r0, sp - 1346: 7c00 ldrb r0, [r0, #16] ; 0x10 - 1348: 3001 add r0, #1 - 134a: 7408 strb r0, [r1, #16] ; 0x10 - 134c: 4668 mov r0, sp - 134e: 9900 ldr r1, [sp, #0] - 1350: 7909 ldrb r1, [r1, #4] - 1352: 7601 strb r1, [r0, #24] ; 0x18 - 1354: 9801 ldr r0, [sp, #4] - 1356: 1c41 add r1, r0, #1 - 1358: 9101 str r1, [sp, #4] - 135a: 4669 mov r1, sp - 135c: 7e09 ldrb r1, [r1, #24] ; 0x18 - 135e: 7001 strb r1, [r0, #0] - 1360: 4668 mov r0, sp - 1362: 7e00 ldrb r0, [r0, #24] ; 0x18 - 1364: 2840 cmp r0, #64 ; 0x40 - 1366: dd01 ble 0x136c - 1368: 2004 mov r0, #4 - 136a: e055 b 0x1418 - 136c: 9800 ldr r0, [sp, #0] - 136e: 3006 add r0, #6 - 1370: 9007 str r0, [sp, #28] ; 0x1c - 1372: 2000 mov r0, #0 - 1374: 9002 str r0, [sp, #8] - 1376: 9902 ldr r1, [sp, #8] - 1378: 4668 mov r0, sp - 137a: 7e00 ldrb r0, [r0, #24] ; 0x18 - 137c: 4281 cmp r1, r0 - 137e: da6b bge 0x1458 - 1380: 9801 ldr r0, [sp, #4] - 1382: 1c41 add r1, r0, #1 - 1384: 9101 str r1, [sp, #4] - 1386: 9907 ldr r1, [sp, #28] ; 0x1c - 1388: 8809 ldrh r1, [r1, #0] - 138a: 0409 lsl r1, r1, #16 - 138c: 0e09 lsr r1, r1, #24 - 138e: 0209 lsl r1, r1, #8 - 1390: 1209 asr r1, r1, #8 - 1392: 7001 strb r1, [r0, #0] - 1394: 9807 ldr r0, [sp, #28] ; 0x1c - 1396: 8801 ldrh r1, [r0, #0] - 1398: 3002 add r0, #2 - 139a: 9007 str r0, [sp, #28] ; 0x1c - 139c: 0608 lsl r0, r1, #24 - 139e: 0e01 lsr r1, r0, #24 - 13a0: 9801 ldr r0, [sp, #4] - 13a2: 1c42 add r2, r0, #1 - 13a4: 9201 str r2, [sp, #4] - 13a6: 7001 strb r1, [r0, #0] - 13a8: 4669 mov r1, sp - 13aa: 4668 mov r0, sp - 13ac: 7c00 ldrb r0, [r0, #16] ; 0x10 - 13ae: 3002 add r0, #2 - 13b0: 7408 strb r0, [r1, #16] ; 0x10 - 13b2: 9802 ldr r0, [sp, #8] - 13b4: 3001 add r0, #1 - 13b6: 9002 str r0, [sp, #8] - 13b8: 9902 ldr r1, [sp, #8] - 13ba: 4668 mov r0, sp - 13bc: 7e00 ldrb r0, [r0, #24] ; 0x18 - 13be: 4281 cmp r1, r0 - 13c0: dbde blt 0x1380 - 13c2: e049 b 0x1458 - 13c4: 9800 ldr r0, [sp, #0] - 13c6: 7840 ldrb r0, [r0, #1] - 13c8: 2800 cmp r0, #0 - 13ca: d145 bne 0x1458 - 13cc: 4669 mov r1, sp - 13ce: 9800 ldr r0, [sp, #0] - 13d0: 8880 ldrh r0, [r0, #4] - 13d2: 8408 strh r0, [r1, #32] ; 0x20 - 13d4: 9801 ldr r0, [sp, #4] - 13d6: 1c41 add r1, r0, #1 - 13d8: 9101 str r1, [sp, #4] - 13da: 4669 mov r1, sp - 13dc: 8c09 ldrh r1, [r1, #32] ; 0x20 - 13de: 0409 lsl r1, r1, #16 - 13e0: 0e09 lsr r1, r1, #24 - 13e2: 0209 lsl r1, r1, #8 - 13e4: 1209 asr r1, r1, #8 - 13e6: 7001 strb r1, [r0, #0] - 13e8: 9801 ldr r0, [sp, #4] - 13ea: 1c41 add r1, r0, #1 - 13ec: 9101 str r1, [sp, #4] - 13ee: 4669 mov r1, sp - 13f0: 8c09 ldrh r1, [r1, #32] ; 0x20 - 13f2: 0609 lsl r1, r1, #24 - 13f4: 0e09 lsr r1, r1, #24 - 13f6: 7001 strb r1, [r0, #0] - 13f8: 4668 mov r0, sp - 13fa: 9900 ldr r1, [sp, #0] - 13fc: 88c9 ldrh r1, [r1, #6] - 13fe: 8401 strh r1, [r0, #32] ; 0x20 - 1400: 9901 ldr r1, [sp, #4] - 1402: 1c48 add r0, r1, #1 - 1404: 9001 str r0, [sp, #4] - 1406: 4668 mov r0, sp - 1408: 8c00 ldrh r0, [r0, #32] ; 0x20 - 140a: 0400 lsl r0, r0, #16 - 140c: 0e00 lsr r0, r0, #24 - 140e: 0200 lsl r0, r0, #8 - 1410: 1200 asr r0, r0, #8 - 1412: 7008 strb r0, [r1, #0] - 1414: e77e b 0x1314 - 1416: 2008 mov r0, #8 - 1418: 9003 str r0, [sp, #12] ; 0xc - 141a: e01d b 0x1458 - 141c: 9800 ldr r0, [sp, #0] - 141e: 7800 ldrb r0, [r0, #0] - 1420: 280a cmp r0, #10 ; 0xa - 1422: d8f8 bhi 0x1416 - 1424: a101 add r1, pc, #4 - 1426: 0080 lsl r0, r0, #2 - 1428: 5808 ldr r0, [r1, r0] - 142a: 4687 mov pc, r0 - 142c: 1252 asr r2, r2, #9 - 142e: 0000 lsl r0, r0, #0 - 1430: 128c asr r4, r1, #10 - 1432: 0000 lsl r0, r0, #0 - 1434: 12aa asr r2, r5, #10 - 1436: 0000 lsl r0, r0, #0 - 1438: 12b6 asr r6, r6, #10 - 143a: 0000 lsl r0, r0, #0 - 143c: 1458 asr r0, r3, #17 - 143e: 0000 lsl r0, r0, #0 - 1440: 12c2 asr r2, r0, #11 - 1442: 0000 lsl r0, r0, #0 - 1444: 132c asr r4, r5, #12 - 1446: 0000 lsl r0, r0, #0 - 1448: 1338 asr r0, r7, #12 - 144a: 0000 lsl r0, r0, #0 - 144c: 1458 asr r0, r3, #17 - 144e: 0000 lsl r0, r0, #0 - 1450: 13c4 asr r4, r0, #15 - 1452: 0000 lsl r0, r0, #0 - 1454: 1458 asr r0, r3, #17 - 1456: 0000 lsl r0, r0, #0 - 1458: 9805 ldr r0, [sp, #20] ; 0x14 - 145a: 4669 mov r1, sp - 145c: 7c09 ldrb r1, [r1, #16] ; 0x10 - 145e: 7001 strb r1, [r0, #0] - 1460: 9803 ldr r0, [sp, #12] ; 0xc - 1462: b009 add sp, #36 ; 0x24 - 1464: 4770 bx lr - 1466: 0000 lsl r0, r0, #0 - 1468: b500 push {lr} - 146a: b083 sub sp, #12 ; 0xc - 146c: 9101 str r1, [sp, #4] - 146e: 4669 mov r1, sp - 1470: 7008 strb r0, [r1, #0] - 1472: 2000 mov r0, #0 - 1474: 9002 str r0, [sp, #8] - 1476: e073 b 0x1560 - 1478: 4668 mov r0, sp - 147a: 7800 ldrb r0, [r0, #0] - 147c: 28aa cmp r0, #170 ; 0xaa - 147e: d106 bne 0x148e - 1480: 4965 ldr r1, =0x83ff10 ; via 0x1618 - 1482: 4865 ldr r0, =0x83ff10 ; via 0x1618 - 1484: 6800 ldr r0, [r0, #0] - 1486: 3001 add r0, #1 - 1488: 07c0 lsl r0, r0, #31 - 148a: 0fc0 lsr r0, r0, #31 - 148c: e013 b 0x14b6 - 148e: 4862 ldr r0, =0x83ff10 ; via 0x1618 - 1490: 6800 ldr r0, [r0, #0] - 1492: 2800 cmp r0, #0 - 1494: d06b beq 0x156e - 1496: 4961 ldr r1, =0x83ff04 ; via 0x161c - 1498: 9801 ldr r0, [sp, #4] - 149a: 3001 add r0, #1 - 149c: 6008 str r0, [r1, #0] - 149e: 4960 ldr r1, =0x83ff0e ; via 0x1620 - 14a0: 2000 mov r0, #0 - 14a2: 7008 strb r0, [r1, #0] - 14a4: 495f ldr r1, =0x83ff0c ; via 0x1624 - 14a6: 4668 mov r0, sp - 14a8: 7800 ldrb r0, [r0, #0] - 14aa: 8008 strh r0, [r1, #0] - 14ac: 495a ldr r1, =0x83ff10 ; via 0x1618 - 14ae: 2000 mov r0, #0 - 14b0: 6008 str r0, [r1, #0] - 14b2: 495d ldr r1, =0x83ff08 ; via 0x1628 - 14b4: 2001 mov r0, #1 - 14b6: 6008 str r0, [r1, #0] - 14b8: e059 b 0x156e - 14ba: 4668 mov r0, sp - 14bc: 7800 ldrb r0, [r0, #0] - 14be: 28aa cmp r0, #170 ; 0xaa - 14c0: d113 bne 0x14ea - 14c2: 4855 ldr r0, =0x83ff10 ; via 0x1618 - 14c4: 6800 ldr r0, [r0, #0] - 14c6: 2800 cmp r0, #0 - 14c8: d00b beq 0x14e2 - 14ca: 4954 ldr r1, =0x83ff04 ; via 0x161c - 14cc: 6808 ldr r0, [r1, #0] - 14ce: 1c42 add r2, r0, #1 - 14d0: 600a str r2, [r1, #0] - 14d2: 4669 mov r1, sp - 14d4: 7809 ldrb r1, [r1, #0] - 14d6: 7001 strb r1, [r0, #0] - 14d8: 4951 ldr r1, =0x83ff0e ; via 0x1620 - 14da: 7808 ldrb r0, [r1, #0] - 14dc: 3001 add r0, #1 - 14de: 7008 strb r0, [r1, #0] - 14e0: e013 b 0x150a - 14e2: 2101 mov r1, #1 - 14e4: 484c ldr r0, =0x83ff10 ; via 0x1618 - 14e6: 6001 str r1, [r0, #0] - 14e8: e01c b 0x1524 - 14ea: 484b ldr r0, =0x83ff10 ; via 0x1618 - 14ec: 6800 ldr r0, [r0, #0] - 14ee: 2800 cmp r0, #0 - 14f0: d00d beq 0x150e - 14f2: 494a ldr r1, =0x83ff04 ; via 0x161c - 14f4: 9801 ldr r0, [sp, #4] - 14f6: 3001 add r0, #1 - 14f8: 6008 str r0, [r1, #0] - 14fa: 4849 ldr r0, =0x83ff0e ; via 0x1620 - 14fc: 2100 mov r1, #0 - 14fe: 7001 strb r1, [r0, #0] - 1500: 4948 ldr r1, =0x83ff0c ; via 0x1624 - 1502: 4668 mov r0, sp - 1504: 7800 ldrb r0, [r0, #0] - 1506: 3001 add r0, #1 - 1508: 8008 strh r0, [r1, #0] - 150a: 2100 mov r1, #0 - 150c: e7ea b 0x14e4 - 150e: 4843 ldr r0, =0x83ff04 ; via 0x161c - 1510: 6801 ldr r1, [r0, #0] - 1512: 1c4a add r2, r1, #1 - 1514: 6002 str r2, [r0, #0] - 1516: 4668 mov r0, sp - 1518: 7800 ldrb r0, [r0, #0] - 151a: 7008 strb r0, [r1, #0] - 151c: 4940 ldr r1, =0x83ff0e ; via 0x1620 - 151e: 7808 ldrb r0, [r1, #0] - 1520: 3001 add r0, #1 - 1522: 7008 strb r0, [r1, #0] - 1524: 483f ldr r0, =0x83ff0c ; via 0x1624 - 1526: 8801 ldrh r1, [r0, #0] - 1528: 3901 sub r1, #1 - 152a: 8001 strh r1, [r0, #0] - 152c: 483d ldr r0, =0x83ff0c ; via 0x1624 - 152e: 8800 ldrh r0, [r0, #0] - 1530: 2800 cmp r0, #0 - 1532: d11c bne 0x156e - 1534: 9901 ldr r1, [sp, #4] - 1536: 483a ldr r0, =0x83ff0e ; via 0x1620 - 1538: 7800 ldrb r0, [r0, #0] - 153a: 7008 strb r0, [r1, #0] - 153c: 2001 mov r0, #1 - 153e: 9002 str r0, [sp, #8] - 1540: 4839 ldr r0, =0x83ff08 ; via 0x1628 - 1542: 2100 mov r1, #0 - 1544: 6001 str r1, [r0, #0] - 1546: 4834 ldr r0, =0x83ff10 ; via 0x1618 - 1548: 6001 str r1, [r0, #0] - 154a: 9801 ldr r0, [sp, #4] - 154c: 7800 ldrb r0, [r0, #0] - 154e: 2801 cmp r0, #1 - 1550: d10d bne 0x156e - 1552: 9801 ldr r0, [sp, #4] - 1554: 7840 ldrb r0, [r0, #1] - 1556: 28dd cmp r0, #221 ; 0xdd - 1558: d109 bne 0x156e - 155a: f7ff fae3 bl 0xb24 - 155e: e006 b 0x156e - 1560: 4831 ldr r0, =0x83ff08 ; via 0x1628 - 1562: 6800 ldr r0, [r0, #0] - 1564: 2800 cmp r0, #0 - 1566: d087 beq 0x1478 - 1568: 3801 sub r0, #1 - 156a: 2800 cmp r0, #0 - 156c: d0a5 beq 0x14ba - 156e: 9802 ldr r0, [sp, #8] - 1570: b003 add sp, #12 ; 0xc - 1572: bd00 pop {pc} - 1574: b086 sub sp, #24 ; 0x18 - 1576: 9202 str r2, [sp, #8] - 1578: 9101 str r1, [sp, #4] - 157a: 9000 str r0, [sp, #0] - 157c: 9801 ldr r0, [sp, #4] - 157e: 3001 add r0, #1 - 1580: 9004 str r0, [sp, #16] ; 0x10 - 1582: 9800 ldr r0, [sp, #0] - 1584: 1c41 add r1, r0, #1 - 1586: 9100 str r1, [sp, #0] - 1588: 9005 str r0, [sp, #20] ; 0x14 - 158a: 9901 ldr r1, [sp, #4] - 158c: 20aa mov r0, #170 ; 0xaa - 158e: 7008 strb r0, [r1, #0] - 1590: 9801 ldr r0, [sp, #4] - 1592: 3002 add r0, #2 - 1594: 9001 str r0, [sp, #4] - 1596: 9902 ldr r1, [sp, #8] - 1598: 2000 mov r0, #0 - 159a: 8008 strh r0, [r1, #0] - 159c: 4669 mov r1, sp - 159e: 8188 strh r0, [r1, #12] ; 0xc - 15a0: 4668 mov r0, sp - 15a2: 8981 ldrh r1, [r0, #12] ; 0xc - 15a4: 9805 ldr r0, [sp, #20] ; 0x14 - 15a6: 7800 ldrb r0, [r0, #0] - 15a8: 4281 cmp r1, r0 - 15aa: da23 bge 0x15f4 - 15ac: 9800 ldr r0, [sp, #0] - 15ae: 7800 ldrb r0, [r0, #0] - 15b0: 28aa cmp r0, #170 ; 0xaa - 15b2: d108 bne 0x15c6 - 15b4: 9801 ldr r0, [sp, #4] - 15b6: 1c41 add r1, r0, #1 - 15b8: 9101 str r1, [sp, #4] - 15ba: 21aa mov r1, #170 ; 0xaa - 15bc: 7001 strb r1, [r0, #0] - 15be: 9902 ldr r1, [sp, #8] - 15c0: 8808 ldrh r0, [r1, #0] - 15c2: 3001 add r0, #1 - 15c4: 8008 strh r0, [r1, #0] - 15c6: 9800 ldr r0, [sp, #0] - 15c8: 7801 ldrb r1, [r0, #0] - 15ca: 3001 add r0, #1 - 15cc: 9000 str r0, [sp, #0] - 15ce: 9801 ldr r0, [sp, #4] - 15d0: 1c42 add r2, r0, #1 - 15d2: 9201 str r2, [sp, #4] - 15d4: 7001 strb r1, [r0, #0] - 15d6: 9902 ldr r1, [sp, #8] - 15d8: 8808 ldrh r0, [r1, #0] - 15da: 3001 add r0, #1 - 15dc: 8008 strh r0, [r1, #0] - 15de: 4669 mov r1, sp - 15e0: 4668 mov r0, sp - 15e2: 8980 ldrh r0, [r0, #12] ; 0xc - 15e4: 3001 add r0, #1 - 15e6: 8188 strh r0, [r1, #12] ; 0xc - 15e8: 4668 mov r0, sp - 15ea: 8980 ldrh r0, [r0, #12] ; 0xc - 15ec: 9905 ldr r1, [sp, #20] ; 0x14 - 15ee: 7809 ldrb r1, [r1, #0] - 15f0: 4288 cmp r0, r1 - 15f2: dbdb blt 0x15ac - 15f4: 9904 ldr r1, [sp, #16] ; 0x10 - 15f6: 9802 ldr r0, [sp, #8] - 15f8: 7800 ldrb r0, [r0, #0] - 15fa: 7008 strb r0, [r1, #0] - 15fc: 9902 ldr r1, [sp, #8] - 15fe: 8808 ldrh r0, [r1, #0] - 1600: 3002 add r0, #2 - 1602: 8008 strh r0, [r1, #0] - 1604: b006 add sp, #24 ; 0x18 - 1606: 4770 bx lr - 1608: 4907 ldr r1, =0x83ff08 ; via 0x1628 - 160a: 2000 mov r0, #0 - 160c: 6008 str r0, [r1, #0] - 160e: 4802 ldr r0, =0x83ff10 ; via 0x1618 - 1610: 2100 mov r1, #0 - 1612: 6001 str r1, [r0, #0] - 1614: 4770 bx lr - 1616: 46c0 nop (mov r8, r8) - 1618: ff10 - 161a: 0083 lsl r3, r0, #2 - 161c: ff04 - 161e: 0083 lsl r3, r0, #2 - 1620: ff0e - 1622: 0083 lsl r3, r0, #2 - 1624: ff0c - 1626: 0083 lsl r3, r0, #2 - 1628: ff08 - 162a: 0083 lsl r3, r0, #2 - 162c: b082 sub sp, #8 - 162e: 9101 str r1, [sp, #4] - 1630: 9000 str r0, [sp, #0] - 1632: 9901 ldr r1, [sp, #4] - 1634: 2000 mov r0, #0 - 1636: 7008 strb r0, [r1, #0] - 1638: 9801 ldr r0, [sp, #4] - 163a: 2100 mov r1, #0 - 163c: 7041 strb r1, [r0, #1] - 163e: 9801 ldr r0, [sp, #4] - 1640: 2102 mov r1, #2 - 1642: 7101 strb r1, [r0, #4] - 1644: 9801 ldr r0, [sp, #4] - 1646: 2106 mov r1, #6 - 1648: 7141 strb r1, [r0, #5] - 164a: 9801 ldr r0, [sp, #4] - 164c: 2102 mov r1, #2 - 164e: 7181 strb r1, [r0, #6] - 1650: b002 add sp, #8 - 1652: 4770 bx lr - 1654: b500 push {lr} - 1656: b084 sub sp, #16 ; 0x10 - 1658: 466b mov r3, sp - 165a: 721a strb r2, [r3, #8] - 165c: 9101 str r1, [sp, #4] - 165e: 9000 str r0, [sp, #0] - 1660: 9901 ldr r1, [sp, #4] - 1662: 2009 mov r0, #9 - 1664: 7008 strb r0, [r1, #0] - 1666: e015 b 0x1694 - 1668: 9801 ldr r0, [sp, #4] - 166a: 2100 mov r1, #0 - 166c: 7041 strb r1, [r0, #1] - 166e: 9901 ldr r1, [sp, #4] - 1670: 4668 mov r0, sp - 1672: 8940 ldrh r0, [r0, #10] ; 0xa - 1674: 8088 strh r0, [r1, #4] - 1676: 9901 ldr r1, [sp, #4] - 1678: 4668 mov r0, sp - 167a: 8980 ldrh r0, [r0, #12] ; 0xc - 167c: 80c8 strh r0, [r1, #6] - 167e: e01e b 0x16be - 1680: 2101 mov r1, #1 - 1682: e004 b 0x168e - 1684: 2103 mov r1, #3 - 1686: e002 b 0x168e - 1688: 2105 mov r1, #5 - 168a: e000 b 0x168e - 168c: 2106 mov r1, #6 - 168e: 9801 ldr r0, [sp, #4] - 1690: 7041 strb r1, [r0, #1] - 1692: e014 b 0x16be - 1694: 200a mov r0, #10 ; 0xa - 1696: 4468 add r0, sp - 1698: a903 add r1, sp, #12 ; 0xc - 169a: 466a mov r2, sp - 169c: 7a12 ldrb r2, [r2, #8] - 169e: f000 fb71 bl 0x1d84 - 16a2: 2800 cmp r0, #0 - 16a4: d0e0 beq 0x1668 - 16a6: 3801 sub r0, #1 - 16a8: 2800 cmp r0, #0 - 16aa: d0e9 beq 0x1680 - 16ac: 3801 sub r0, #1 - 16ae: 2800 cmp r0, #0 - 16b0: d0e8 beq 0x1684 - 16b2: 3801 sub r0, #1 - 16b4: 2800 cmp r0, #0 - 16b6: d0e7 beq 0x1688 - 16b8: 3801 sub r0, #1 - 16ba: 2800 cmp r0, #0 - 16bc: d0e6 beq 0x168c - 16be: b004 add sp, #16 ; 0x10 - 16c0: bd00 pop {pc} - 16c2: b084 sub sp, #16 ; 0x10 - 16c4: 9101 str r1, [sp, #4] - 16c6: 9000 str r0, [sp, #0] - 16c8: 9901 ldr r1, [sp, #4] - 16ca: 200a mov r0, #10 ; 0xa - 16cc: 7008 strb r0, [r1, #0] - 16ce: 9801 ldr r0, [sp, #4] - 16d0: 2100 mov r1, #0 - 16d2: 7041 strb r1, [r0, #1] - 16d4: 4669 mov r1, sp - 16d6: 9800 ldr r0, [sp, #0] - 16d8: 8880 ldrh r0, [r0, #4] - 16da: 8108 strh r0, [r1, #8] - 16dc: 9800 ldr r0, [sp, #0] - 16de: 88c0 ldrh r0, [r0, #6] - 16e0: 8148 strh r0, [r1, #10] ; 0xa - 16e2: 4668 mov r0, sp - 16e4: 8941 ldrh r1, [r0, #10] ; 0xa - 16e6: 8900 ldrh r0, [r0, #8] - 16e8: 0400 lsl r0, r0, #16 - 16ea: 1808 add r0, r1, r0 - 16ec: 9003 str r0, [sp, #12] ; 0xc - 16ee: 9803 ldr r0, [sp, #12] ; 0xc - 16f0: b004 add sp, #16 ; 0x10 - 16f2: 4770 bx lr - 16f4: b085 sub sp, #20 ; 0x14 - 16f6: 9303 str r3, [sp, #12] ; 0xc - 16f8: 9202 str r2, [sp, #8] - 16fa: 9101 str r1, [sp, #4] - 16fc: 4669 mov r1, sp - 16fe: 7008 strb r0, [r1, #0] - 1700: 48ea ldr r0, =0x83ff19 ; via 0x1aac - 1702: 7809 ldrb r1, [r1, #0] - 1704: 7802 ldrb r2, [r0, #0] - 1706: 1889 add r1, r1, r2 - 1708: 7001 strb r1, [r0, #0] - 170a: 48e9 ldr r0, =0x83ff1a ; via 0x1ab0 - 170c: 7800 ldrb r0, [r0, #0] - 170e: 2800 cmp r0, #0 - 1710: d00e beq 0x1730 - 1712: 48e8 ldr r0, =0x83ff26 ; via 0x1ab4 - 1714: 4669 mov r1, sp - 1716: 780a ldrb r2, [r1, #0] - 1718: 8801 ldrh r1, [r0, #0] - 171a: 1851 add r1, r2, r1 - 171c: 8001 strh r1, [r0, #0] - 171e: 9903 ldr r1, [sp, #12] ; 0xc - 1720: 48e4 ldr r0, =0x83ff26 ; via 0x1ab4 - 1722: 8800 ldrh r0, [r0, #0] - 1724: 8008 strh r0, [r1, #0] - 1726: 9801 ldr r0, [sp, #4] - 1728: 2100 mov r1, #0 - 172a: 6001 str r1, [r0, #0] - 172c: 2000 mov r0, #0 - 172e: e009 b 0x1744 - 1730: 9902 ldr r1, [sp, #8] - 1732: 6808 ldr r0, [r1, #0] - 1734: 3002 add r0, #2 - 1736: 6008 str r0, [r1, #0] - 1738: 49de ldr r1, =0x83ff26 ; via 0x1ab4 - 173a: 4668 mov r0, sp - 173c: 7800 ldrb r0, [r0, #0] - 173e: 0200 lsl r0, r0, #8 - 1740: 8008 strh r0, [r1, #0] - 1742: 2001 mov r0, #1 - 1744: 9004 str r0, [sp, #16] ; 0x10 - 1746: 2001 mov r0, #1 - 1748: 49d9 ldr r1, =0x83ff1a ; via 0x1ab0 - 174a: 7809 ldrb r1, [r1, #0] - 174c: 4388 bic r0, r1 - 174e: 49d8 ldr r1, =0x83ff1a ; via 0x1ab0 - 1750: 7008 strb r0, [r1, #0] - 1752: 48d9 ldr r0, =0x83ff24 ; via 0x1ab8 - 1754: 7801 ldrb r1, [r0, #0] - 1756: 3901 sub r1, #1 - 1758: 7001 strb r1, [r0, #0] - 175a: 48d7 ldr r0, =0x83ff24 ; via 0x1ab8 - 175c: 7800 ldrb r0, [r0, #0] - 175e: 2800 cmp r0, #0 - 1760: d102 bne 0x1768 - 1762: 48d6 ldr r0, =0x83ff20 ; via 0x1abc - 1764: 2106 mov r1, #6 - 1766: 6001 str r1, [r0, #0] - 1768: 9804 ldr r0, [sp, #16] ; 0x10 - 176a: b005 add sp, #20 ; 0x14 - 176c: 46f7 mov pc, lr - 176e: b083 sub sp, #12 ; 0xc - 1770: 9101 str r1, [sp, #4] - 1772: 4669 mov r1, sp - 1774: 7008 strb r0, [r1, #0] - 1776: 2001 mov r0, #1 - 1778: 9002 str r0, [sp, #8] - 177a: 48d1 ldr r0, =0x83ff1b ; via 0x1ac0 - 177c: 7800 ldrb r0, [r0, #0] - 177e: 2800 cmp r0, #0 - 1780: d10a bne 0x1798 - 1782: 4668 mov r0, sp - 1784: 7800 ldrb r0, [r0, #0] - 1786: 2853 cmp r0, #83 ; 0x53 - 1788: d102 bne 0x1790 - 178a: 48cd ldr r0, =0x83ff1b ; via 0x1ac0 - 178c: 2101 mov r1, #1 - 178e: e01a b 0x17c6 - 1790: 2101 mov r1, #1 - 1792: 9801 ldr r0, [sp, #4] - 1794: 6001 str r1, [r0, #0] - 1796: e03b b 0x1810 - 1798: 49c9 ldr r1, =0x83ff1b ; via 0x1ac0 - 179a: 2000 mov r0, #0 - 179c: 7008 strb r0, [r1, #0] - 179e: 4668 mov r0, sp - 17a0: 7800 ldrb r0, [r0, #0] - 17a2: 2830 cmp r0, #48 ; 0x30 - 17a4: d111 bne 0x17ca - 17a6: 48c7 ldr r0, =0x83ff18 ; via 0x1ac4 - 17a8: 7800 ldrb r0, [r0, #0] - 17aa: 2800 cmp r0, #0 - 17ac: d006 beq 0x17bc - 17ae: 9901 ldr r1, [sp, #4] - 17b0: 2001 mov r0, #1 - 17b2: 6008 str r0, [r1, #0] - 17b4: 49c3 ldr r1, =0x83ff18 ; via 0x1ac4 - 17b6: 2000 mov r0, #0 - 17b8: 7008 strb r0, [r1, #0] - 17ba: e02a b 0x1812 - 17bc: 48bf ldr r0, =0x83ff20 ; via 0x1abc - 17be: 2102 mov r1, #2 - 17c0: 6001 str r1, [r0, #0] - 17c2: 48ef ldr r0, =0x83ff1c ; via 0x1b80 - 17c4: 2100 mov r1, #0 - 17c6: 7001 strb r1, [r0, #0] - 17c8: e024 b 0x1814 - 17ca: 4668 mov r0, sp - 17cc: 7800 ldrb r0, [r0, #0] - 17ce: 2833 cmp r0, #51 ; 0x33 - 17d0: d105 bne 0x17de - 17d2: 48bc ldr r0, =0x83ff18 ; via 0x1ac4 - 17d4: 7800 ldrb r0, [r0, #0] - 17d6: 2800 cmp r0, #0 - 17d8: d0da beq 0x1790 - 17da: 2004 mov r0, #4 - 17dc: e00c b 0x17f8 - 17de: 4668 mov r0, sp - 17e0: 7800 ldrb r0, [r0, #0] - 17e2: 2837 cmp r0, #55 ; 0x37 - 17e4: d10e bne 0x1804 - 17e6: 48b7 ldr r0, =0x83ff18 ; via 0x1ac4 - 17e8: 7800 ldrb r0, [r0, #0] - 17ea: 2800 cmp r0, #0 - 17ec: d103 bne 0x17f6 - 17ee: 9901 ldr r1, [sp, #4] - 17f0: 2001 mov r0, #1 - 17f2: 6008 str r0, [r1, #0] - 17f4: e00c b 0x1810 - 17f6: 2003 mov r0, #3 - 17f8: 49b0 ldr r1, =0x83ff20 ; via 0x1abc - 17fa: 6008 str r0, [r1, #0] - 17fc: 2000 mov r0, #0 - 17fe: 49e0 ldr r1, =0x83ff1c ; via 0x1b80 - 1800: 7008 strb r0, [r1, #0] - 1802: e007 b 0x1814 - 1804: 9901 ldr r1, [sp, #4] - 1806: 2001 mov r0, #1 - 1808: 6008 str r0, [r1, #0] - 180a: 48ae ldr r0, =0x83ff18 ; via 0x1ac4 - 180c: 2100 mov r1, #0 - 180e: 7001 strb r1, [r0, #0] - 1810: 2000 mov r0, #0 - 1812: 9002 str r0, [sp, #8] - 1814: 9802 ldr r0, [sp, #8] - 1816: b003 add sp, #12 ; 0xc - 1818: 46f7 mov pc, lr - 181a: b083 sub sp, #12 ; 0xc - 181c: 9101 str r1, [sp, #4] - 181e: 4669 mov r1, sp - 1820: 7008 strb r0, [r1, #0] - 1822: 2001 mov r0, #1 - 1824: 9002 str r0, [sp, #8] - 1826: 49d7 ldr r1, =0x830 ; via 0x1b84 - 1828: 48d5 ldr r0, =0x83ff1c ; via 0x1b80 - 182a: 7800 ldrb r0, [r0, #0] - 182c: 0080 lsl r0, r0, #2 - 182e: 5808 ldr r0, [r1, r0] - 1830: 4669 mov r1, sp - 1832: 7809 ldrb r1, [r1, #0] - 1834: 4281 cmp r1, r0 - 1836: d10d bne 0x1854 - 1838: 49d1 ldr r1, =0x83ff1c ; via 0x1b80 - 183a: 7808 ldrb r0, [r1, #0] - 183c: 3001 add r0, #1 - 183e: 7008 strb r0, [r1, #0] - 1840: 48cf ldr r0, =0x83ff1c ; via 0x1b80 - 1842: 7800 ldrb r0, [r0, #0] - 1844: 2807 cmp r0, #7 - 1846: d10d bne 0x1864 - 1848: 489c ldr r0, =0x83ff20 ; via 0x1abc - 184a: 2101 mov r1, #1 - 184c: 6001 str r1, [r0, #0] - 184e: 489d ldr r0, =0x83ff18 ; via 0x1ac4 - 1850: 7001 strb r1, [r0, #0] - 1852: e007 b 0x1864 - 1854: 9801 ldr r0, [sp, #4] - 1856: 2101 mov r1, #1 - 1858: 6001 str r1, [r0, #0] - 185a: 4998 ldr r1, =0x83ff20 ; via 0x1abc - 185c: 2001 mov r0, #1 - 185e: 6008 str r0, [r1, #0] - 1860: 2000 mov r0, #0 - 1862: 9002 str r0, [sp, #8] - 1864: 9802 ldr r0, [sp, #8] - 1866: b003 add sp, #12 ; 0xc - 1868: 46f7 mov pc, lr - 186a: b083 sub sp, #12 ; 0xc - 186c: 9101 str r1, [sp, #4] - 186e: 4669 mov r1, sp - 1870: 7008 strb r0, [r1, #0] - 1872: 2001 mov r0, #1 - 1874: 9002 str r0, [sp, #8] - 1876: 49c4 ldr r1, =0x84c ; via 0x1b88 - 1878: 48c1 ldr r0, =0x83ff1c ; via 0x1b80 - 187a: 7800 ldrb r0, [r0, #0] - 187c: 0080 lsl r0, r0, #2 - 187e: 5808 ldr r0, [r1, r0] - 1880: 4669 mov r1, sp - 1882: 7809 ldrb r1, [r1, #0] - 1884: 4281 cmp r1, r0 - 1886: d112 bne 0x18ae - 1888: 49bd ldr r1, =0x83ff1c ; via 0x1b80 - 188a: 7808 ldrb r0, [r1, #0] - 188c: 3001 add r0, #1 - 188e: 7008 strb r0, [r1, #0] - 1890: 48bb ldr r0, =0x83ff1c ; via 0x1b80 - 1892: 7800 ldrb r0, [r0, #0] - 1894: 2806 cmp r0, #6 - 1896: d114 bne 0x18c2 - 1898: 9801 ldr r0, [sp, #4] - 189a: 2102 mov r1, #2 - 189c: 6001 str r1, [r0, #0] - 189e: 4887 ldr r0, =0x83ff20 ; via 0x1abc - 18a0: 2101 mov r1, #1 - 18a2: 6001 str r1, [r0, #0] - 18a4: 4887 ldr r0, =0x83ff18 ; via 0x1ac4 - 18a6: 2100 mov r1, #0 - 18a8: 7001 strb r1, [r0, #0] - 18aa: 2000 mov r0, #0 - 18ac: e008 b 0x18c0 - 18ae: 9801 ldr r0, [sp, #4] - 18b0: 2101 mov r1, #1 - 18b2: 6001 str r1, [r0, #0] - 18b4: 4981 ldr r1, =0x83ff20 ; via 0x1abc - 18b6: 2001 mov r0, #1 - 18b8: 6008 str r0, [r1, #0] - 18ba: 4982 ldr r1, =0x83ff18 ; via 0x1ac4 - 18bc: 2000 mov r0, #0 - 18be: 7008 strb r0, [r1, #0] - 18c0: 9002 str r0, [sp, #8] - 18c2: 9802 ldr r0, [sp, #8] - 18c4: b003 add sp, #12 ; 0xc - 18c6: 46f7 mov pc, lr - 18c8: b081 sub sp, #4 - 18ca: 4669 mov r1, sp - 18cc: 7008 strb r0, [r1, #0] - 18ce: 497a ldr r1, =0x83ff24 ; via 0x1ab8 - 18d0: 4668 mov r0, sp - 18d2: 7800 ldrb r0, [r0, #0] - 18d4: 3801 sub r0, #1 - 18d6: 7008 strb r0, [r1, #0] - 18d8: 4874 ldr r0, =0x83ff19 ; via 0x1aac - 18da: 4669 mov r1, sp - 18dc: 7809 ldrb r1, [r1, #0] - 18de: 7001 strb r1, [r0, #0] - 18e0: 48a7 ldr r0, =0x83ff1c ; via 0x1b80 - 18e2: 2100 mov r1, #0 - 18e4: 7001 strb r1, [r0, #0] - 18e6: 48e3 ldr r0, =0x83ff14 ; via 0x1c74 - 18e8: 6001 str r1, [r0, #0] - 18ea: 4874 ldr r0, =0x83ff20 ; via 0x1abc - 18ec: 2105 mov r1, #5 - 18ee: 6001 str r1, [r0, #0] - 18f0: b001 add sp, #4 - 18f2: 46f7 mov pc, lr - 18f4: b084 sub sp, #16 ; 0x10 - 18f6: 9202 str r2, [sp, #8] - 18f8: 9101 str r1, [sp, #4] - 18fa: 4669 mov r1, sp - 18fc: 7008 strb r0, [r1, #0] - 18fe: 2001 mov r0, #1 - 1900: 9003 str r0, [sp, #12] ; 0xc - 1902: 496d ldr r1, =0x83ff24 ; via 0x1ab8 - 1904: 7808 ldrb r0, [r1, #0] - 1906: 3801 sub r0, #1 - 1908: 7008 strb r0, [r1, #0] - 190a: 486b ldr r0, =0x83ff24 ; via 0x1ab8 - 190c: 7800 ldrb r0, [r0, #0] - 190e: 2800 cmp r0, #0 - 1910: d026 beq 0x1960 - 1912: 4866 ldr r0, =0x83ff19 ; via 0x1aac - 1914: 4669 mov r1, sp - 1916: 780a ldrb r2, [r1, #0] - 1918: 7801 ldrb r1, [r0, #0] - 191a: 1851 add r1, r2, r1 - 191c: 7001 strb r1, [r0, #0] - 191e: 4998 ldr r1, =0x83ff1c ; via 0x1b80 - 1920: 7808 ldrb r0, [r1, #0] - 1922: 3001 add r0, #1 - 1924: 7008 strb r0, [r1, #0] - 1926: 49d3 ldr r1, =0x83ff14 ; via 0x1c74 - 1928: 2204 mov r2, #4 - 192a: 4895 ldr r0, =0x83ff1c ; via 0x1b80 - 192c: 7800 ldrb r0, [r0, #0] - 192e: 1a10 sub r0, r2, r0 - 1930: 00c2 lsl r2, r0, #3 - 1932: 4668 mov r0, sp - 1934: 7800 ldrb r0, [r0, #0] - 1936: 4090 lsl r0, r2 - 1938: 680a ldr r2, [r1, #0] - 193a: 1880 add r0, r0, r2 - 193c: 6008 str r0, [r1, #0] - 193e: 4890 ldr r0, =0x83ff1c ; via 0x1b80 - 1940: 7800 ldrb r0, [r0, #0] - 1942: 2804 cmp r0, #4 - 1944: d117 bne 0x1976 - 1946: 9902 ldr r1, [sp, #8] - 1948: 48ca ldr r0, =0x83ff14 ; via 0x1c74 - 194a: 6800 ldr r0, [r0, #0] - 194c: 3802 sub r0, #2 - 194e: 6008 str r0, [r1, #0] - 1950: 485a ldr r0, =0x83ff20 ; via 0x1abc - 1952: 2100 mov r1, #0 - 1954: 6001 str r1, [r0, #0] - 1956: 4856 ldr r0, =0x83ff1a ; via 0x1ab0 - 1958: 7001 strb r1, [r0, #0] - 195a: 4889 ldr r0, =0x83ff1c ; via 0x1b80 - 195c: 7001 strb r1, [r0, #0] - 195e: e00a b 0x1976 - 1960: 9801 ldr r0, [sp, #4] - 1962: 2101 mov r1, #1 - 1964: 6001 str r1, [r0, #0] - 1966: 4955 ldr r1, =0x83ff20 ; via 0x1abc - 1968: 2001 mov r0, #1 - 196a: 6008 str r0, [r1, #0] - 196c: 4855 ldr r0, =0x83ff18 ; via 0x1ac4 - 196e: 2100 mov r1, #0 - 1970: 7001 strb r1, [r0, #0] - 1972: 2000 mov r0, #0 - 1974: 9003 str r0, [sp, #12] ; 0xc - 1976: 9803 ldr r0, [sp, #12] ; 0xc - 1978: b004 add sp, #16 ; 0x10 - 197a: 46f7 mov pc, lr - 197c: b083 sub sp, #12 ; 0xc - 197e: 9101 str r1, [sp, #4] - 1980: 4669 mov r1, sp - 1982: 7008 strb r0, [r1, #0] - 1984: 2001 mov r0, #1 - 1986: 9002 str r0, [sp, #8] - 1988: 494c ldr r1, =0x83ff20 ; via 0x1abc - 198a: 6008 str r0, [r1, #0] - 198c: 20ff mov r0, #255 ; 0xff - 198e: 4669 mov r1, sp - 1990: 7809 ldrb r1, [r1, #0] - 1992: 4388 bic r0, r1 - 1994: 4945 ldr r1, =0x83ff19 ; via 0x1aac - 1996: 7809 ldrb r1, [r1, #0] - 1998: 4281 cmp r1, r0 - 199a: d007 beq 0x19ac - 199c: 9801 ldr r0, [sp, #4] - 199e: 2101 mov r1, #1 - 19a0: 6001 str r1, [r0, #0] - 19a2: 4848 ldr r0, =0x83ff18 ; via 0x1ac4 - 19a4: 2100 mov r1, #0 - 19a6: 7001 strb r1, [r0, #0] - 19a8: 2000 mov r0, #0 - 19aa: 9002 str r0, [sp, #8] - 19ac: 9802 ldr r0, [sp, #8] - 19ae: b003 add sp, #12 ; 0xc - 19b0: 46f7 mov pc, lr - 19b2: b085 sub sp, #20 ; 0x14 - 19b4: 466b mov r3, sp - 19b6: 719a strb r2, [r3, #6] - 19b8: 466a mov r2, sp - 19ba: 8091 strh r1, [r2, #4] - 19bc: 9000 str r0, [sp, #0] - 19be: 9800 ldr r0, [sp, #0] - 19c0: 9002 str r0, [sp, #8] - 19c2: 4669 mov r1, sp - 19c4: 4668 mov r0, sp - 19c6: 8880 ldrh r0, [r0, #4] - 19c8: 8208 strh r0, [r1, #16] ; 0x10 - 19ca: 4668 mov r0, sp - 19cc: 8a00 ldrh r0, [r0, #16] ; 0x10 - 19ce: 2800 cmp r0, #0 - 19d0: d01e beq 0x1a10 - 19d2: 49e3 ldr r1, =0x864 ; via 0x1d60 - 19d4: 4668 mov r0, sp - 19d6: 7980 ldrb r0, [r0, #6] - 19d8: 0080 lsl r0, r0, #2 - 19da: 5808 ldr r0, [r1, r0] - 19dc: 7941 ldrb r1, [r0, #5] - 19de: 4668 mov r0, sp - 19e0: 7301 strb r1, [r0, #12] ; 0xc - 19e2: 7b00 ldrb r0, [r0, #12] ; 0xc - 19e4: 0980 lsr r0, r0, #6 - 19e6: d3f4 bcc 0x19d2 - 19e8: 49dd ldr r1, =0x864 ; via 0x1d60 - 19ea: 4668 mov r0, sp - 19ec: 7980 ldrb r0, [r0, #6] - 19ee: 0080 lsl r0, r0, #2 - 19f0: 5809 ldr r1, [r1, r0] - 19f2: 9802 ldr r0, [sp, #8] - 19f4: 7800 ldrb r0, [r0, #0] - 19f6: 7008 strb r0, [r1, #0] - 19f8: 9802 ldr r0, [sp, #8] - 19fa: 3001 add r0, #1 - 19fc: 9002 str r0, [sp, #8] - 19fe: 4669 mov r1, sp - 1a00: 4668 mov r0, sp - 1a02: 8a00 ldrh r0, [r0, #16] ; 0x10 - 1a04: 3801 sub r0, #1 - 1a06: 8208 strh r0, [r1, #16] ; 0x10 - 1a08: 4668 mov r0, sp - 1a0a: 8a00 ldrh r0, [r0, #16] ; 0x10 - 1a0c: 2800 cmp r0, #0 - 1a0e: d1e0 bne 0x19d2 - 1a10: b005 add sp, #20 ; 0x14 - 1a12: 46f7 mov pc, lr - 1a14: b082 sub sp, #8 - 1a16: 4669 mov r1, sp - 1a18: 7008 strb r0, [r1, #0] - 1a1a: 2000 mov r0, #0 - 1a1c: 8088 strh r0, [r1, #4] - 1a1e: 4668 mov r0, sp - 1a20: 8881 ldrh r1, [r0, #4] - 1a22: 20ff mov r0, #255 ; 0xff - 1a24: 30f5 add r0, #245 ; 0xf5 - 1a26: 4281 cmp r1, r0 - 1a28: da21 bge 0x1a6e - 1a2a: 4669 mov r1, sp - 1a2c: 4668 mov r0, sp - 1a2e: 8880 ldrh r0, [r0, #4] - 1a30: 3001 add r0, #1 - 1a32: 8088 strh r0, [r1, #4] - 1a34: 48ca ldr r0, =0x864 ; via 0x1d60 - 1a36: 7809 ldrb r1, [r1, #0] - 1a38: 0089 lsl r1, r1, #2 - 1a3a: 5840 ldr r0, [r0, r1] - 1a3c: 7940 ldrb r0, [r0, #5] - 1a3e: 4669 mov r1, sp - 1a40: 7048 strb r0, [r1, #1] - 1a42: 4668 mov r0, sp - 1a44: 7840 ldrb r0, [r0, #1] - 1a46: 0840 lsr r0, r0, #1 - 1a48: d30b bcc 0x1a62 - 1a4a: 49c5 ldr r1, =0x864 ; via 0x1d60 - 1a4c: 4668 mov r0, sp - 1a4e: 7800 ldrb r0, [r0, #0] - 1a50: 0080 lsl r0, r0, #2 - 1a52: 5808 ldr r0, [r1, r0] - 1a54: 7800 ldrb r0, [r0, #0] - 1a56: 0600 lsl r0, r0, #24 - 1a58: 0e00 lsr r0, r0, #24 - 1a5a: 4669 mov r1, sp - 1a5c: 7088 strb r0, [r1, #2] - 1a5e: 2000 mov r0, #0 - 1a60: 8088 strh r0, [r1, #4] - 1a62: 4668 mov r0, sp - 1a64: 8881 ldrh r1, [r0, #4] - 1a66: 20ff mov r0, #255 ; 0xff - 1a68: 30f5 add r0, #245 ; 0xf5 - 1a6a: 4281 cmp r1, r0 - 1a6c: dbdd blt 0x1a2a - 1a6e: b002 add sp, #8 - 1a70: 4770 bx lr - 1a72: b500 push {lr} - 1a74: b08c sub sp, #48 ; 0x30 - 1a76: 466a mov r2, sp - 1a78: 7111 strb r1, [r2, #4] - 1a7a: 9000 str r0, [sp, #0] - 1a7c: 2001 mov r0, #1 - 1a7e: 9002 str r0, [sp, #8] - 1a80: 9800 ldr r0, [sp, #0] - 1a82: a904 add r1, sp, #16 ; 0x10 - 1a84: aa03 add r2, sp, #12 ; 0xc - 1a86: f7ff fd75 bl 0x1574 - 1a8a: 4668 mov r0, sp - 1a8c: 8980 ldrh r0, [r0, #12] ; 0xc - 1a8e: 2820 cmp r0, #32 ; 0x20 - 1a90: dd02 ble 0x1a98 - 1a92: 2000 mov r0, #0 - 1a94: 9002 str r0, [sp, #8] - 1a96: e006 b 0x1aa6 - 1a98: a804 add r0, sp, #16 ; 0x10 - 1a9a: 4669 mov r1, sp - 1a9c: 8989 ldrh r1, [r1, #12] ; 0xc - 1a9e: 466a mov r2, sp - 1aa0: 7912 ldrb r2, [r2, #4] - 1aa2: f7ff ff86 bl 0x19b2 - 1aa6: 9802 ldr r0, [sp, #8] - 1aa8: b00c add sp, #48 ; 0x30 - 1aaa: bd00 pop {pc} - 1aac: ff19 - 1aae: 0083 lsl r3, r0, #2 - 1ab0: ff1a - 1ab2: 0083 lsl r3, r0, #2 - 1ab4: ff26 - 1ab6: 0083 lsl r3, r0, #2 - 1ab8: ff24 - 1aba: 0083 lsl r3, r0, #2 - 1abc: ff20 - 1abe: 0083 lsl r3, r0, #2 - 1ac0: ff1b - 1ac2: 0083 lsl r3, r0, #2 - 1ac4: ff18 - 1ac6: 0083 lsl r3, r0, #2 - 1ac8: b500 push {lr} - 1aca: b084 sub sp, #16 ; 0x10 - 1acc: 9101 str r1, [sp, #4] - 1ace: 9000 str r0, [sp, #0] - 1ad0: 4669 mov r1, sp - 1ad2: 20ff mov r0, #255 ; 0xff - 1ad4: 7308 strb r0, [r1, #12] ; 0xc - 1ad6: 2000 mov r0, #0 - 1ad8: 9002 str r0, [sp, #8] - 1ada: 4669 mov r1, sp - 1adc: 48a1 ldr r0, =0xffff5805 ; via 0x1d64 - 1ade: 7800 ldrb r0, [r0, #0] - 1ae0: 7348 strb r0, [r1, #13] ; 0xd - 1ae2: 48a1 ldr r0, =0xffff5005 ; via 0x1d68 - 1ae4: 7800 ldrb r0, [r0, #0] - 1ae6: 7388 strb r0, [r1, #14] ; 0xe - 1ae8: 4668 mov r0, sp - 1aea: 7b40 ldrb r0, [r0, #13] ; 0xd - 1aec: 0840 lsr r0, r0, #1 - 1aee: d206 bcs 0x1afe - 1af0: 4668 mov r0, sp - 1af2: 7b80 ldrb r0, [r0, #14] ; 0xe - 1af4: 0840 lsr r0, r0, #1 - 1af6: d202 bcs 0x1afe - 1af8: 9801 ldr r0, [sp, #4] - 1afa: 2800 cmp r0, #0 - 1afc: d0ed beq 0x1ada - 1afe: 4668 mov r0, sp - 1b00: 7b40 ldrb r0, [r0, #13] ; 0xd - 1b02: 0840 lsr r0, r0, #1 - 1b04: d316 bcc 0x1b34 - 1b06: 4669 mov r1, sp - 1b08: 2000 mov r0, #0 - 1b0a: 7308 strb r0, [r1, #12] ; 0xc - 1b0c: 4994 ldr r1, =0x864 ; via 0x1d60 - 1b0e: 4668 mov r0, sp - 1b10: 7b00 ldrb r0, [r0, #12] ; 0xc - 1b12: 0080 lsl r0, r0, #2 - 1b14: 5808 ldr r0, [r1, r0] - 1b16: 7800 ldrb r0, [r0, #0] - 1b18: 0600 lsl r0, r0, #24 - 1b1a: 0e00 lsr r0, r0, #24 - 1b1c: 4669 mov r1, sp - 1b1e: 73c8 strb r0, [r1, #15] ; 0xf - 1b20: 4668 mov r0, sp - 1b22: 7bc0 ldrb r0, [r0, #15] ; 0xf - 1b24: 9900 ldr r1, [sp, #0] - 1b26: f7ff fc9f bl 0x1468 - 1b2a: 9002 str r0, [sp, #8] - 1b2c: 9802 ldr r0, [sp, #8] - 1b2e: 2800 cmp r0, #0 - 1b30: d11c bne 0x1b6c - 1b32: e018 b 0x1b66 - 1b34: 4668 mov r0, sp - 1b36: 7b80 ldrb r0, [r0, #14] ; 0xe - 1b38: 0840 lsr r0, r0, #1 - 1b3a: d317 bcc 0x1b6c - 1b3c: 4669 mov r1, sp - 1b3e: 2001 mov r0, #1 - 1b40: 7308 strb r0, [r1, #12] ; 0xc - 1b42: 4987 ldr r1, =0x864 ; via 0x1d60 - 1b44: 4668 mov r0, sp - 1b46: 7b00 ldrb r0, [r0, #12] ; 0xc - 1b48: 0080 lsl r0, r0, #2 - 1b4a: 5808 ldr r0, [r1, r0] - 1b4c: 7800 ldrb r0, [r0, #0] - 1b4e: 0600 lsl r0, r0, #24 - 1b50: 0e01 lsr r1, r0, #24 - 1b52: 4668 mov r0, sp - 1b54: 73c1 strb r1, [r0, #15] ; 0xf - 1b56: 7bc0 ldrb r0, [r0, #15] ; 0xf - 1b58: 9900 ldr r1, [sp, #0] - 1b5a: f7ff fc85 bl 0x1468 - 1b5e: 9002 str r0, [sp, #8] - 1b60: 9802 ldr r0, [sp, #8] - 1b62: 2800 cmp r0, #0 - 1b64: d102 bne 0x1b6c - 1b66: 20ff mov r0, #255 ; 0xff - 1b68: 4669 mov r1, sp - 1b6a: 7308 strb r0, [r1, #12] ; 0xc - 1b6c: 9802 ldr r0, [sp, #8] - 1b6e: 2800 cmp r0, #0 - 1b70: d102 bne 0x1b78 - 1b72: 9801 ldr r0, [sp, #4] - 1b74: 2800 cmp r0, #0 - 1b76: d0b0 beq 0x1ada - 1b78: 4668 mov r0, sp - 1b7a: 7b00 ldrb r0, [r0, #12] ; 0xc - 1b7c: b004 add sp, #16 ; 0x10 - 1b7e: bd00 pop {pc} - 1b80: ff1c - 1b82: 0083 lsl r3, r0, #2 - 1b84: 0830 lsr r0, r6, #32 - 1b86: 0000 lsl r0, r0, #0 - 1b88: 084c lsr r4, r1, #1 - 1b8a: 0000 lsl r0, r0, #0 - 1b8c: b500 push {lr} - 1b8e: b086 sub sp, #24 ; 0x18 - 1b90: 466b mov r3, sp - 1b92: 721a strb r2, [r3, #8] - 1b94: 9101 str r1, [sp, #4] - 1b96: 9000 str r0, [sp, #0] - 1b98: 2001 mov r0, #1 - 1b9a: 9004 str r0, [sp, #16] ; 0x10 - 1b9c: 9804 ldr r0, [sp, #16] ; 0x10 - 1b9e: 2800 cmp r0, #0 - 1ba0: d05b beq 0x1c5a - 1ba2: 496f ldr r1, =0x864 ; via 0x1d60 - 1ba4: 4668 mov r0, sp - 1ba6: 7a00 ldrb r0, [r0, #8] - 1ba8: 0080 lsl r0, r0, #2 - 1baa: 5808 ldr r0, [r1, r0] - 1bac: 7941 ldrb r1, [r0, #5] - 1bae: 4668 mov r0, sp - 1bb0: 7301 strb r1, [r0, #12] ; 0xc - 1bb2: 7b00 ldrb r0, [r0, #12] ; 0xc - 1bb4: 0840 lsr r0, r0, #1 - 1bb6: d3f4 bcc 0x1ba2 - 1bb8: 4969 ldr r1, =0x864 ; via 0x1d60 - 1bba: 4668 mov r0, sp - 1bbc: 7a00 ldrb r0, [r0, #8] - 1bbe: 0080 lsl r0, r0, #2 - 1bc0: 5808 ldr r0, [r1, r0] - 1bc2: 7800 ldrb r0, [r0, #0] - 1bc4: 0600 lsl r0, r0, #24 - 1bc6: 0e01 lsr r1, r0, #24 - 1bc8: 4668 mov r0, sp - 1bca: 7341 strb r1, [r0, #13] ; 0xd - 1bcc: e02c b 0x1c28 - 1bce: 4668 mov r0, sp - 1bd0: 7b40 ldrb r0, [r0, #13] ; 0xd - 1bd2: a905 add r1, sp, #20 ; 0x14 - 1bd4: 9a00 ldr r2, [sp, #0] - 1bd6: 9b01 ldr r3, [sp, #4] - 1bd8: f7ff fd8c bl 0x16f4 - 1bdc: 9004 str r0, [sp, #16] ; 0x10 - 1bde: e039 b 0x1c54 - 1be0: 4668 mov r0, sp - 1be2: 7b40 ldrb r0, [r0, #13] ; 0xd - 1be4: a905 add r1, sp, #20 ; 0x14 - 1be6: f7ff fdc2 bl 0x176e - 1bea: e7f7 b 0x1bdc - 1bec: 4668 mov r0, sp - 1bee: 7b40 ldrb r0, [r0, #13] ; 0xd - 1bf0: a905 add r1, sp, #20 ; 0x14 - 1bf2: f7ff fe12 bl 0x181a - 1bf6: e7f1 b 0x1bdc - 1bf8: 4668 mov r0, sp - 1bfa: 7b40 ldrb r0, [r0, #13] ; 0xd - 1bfc: a905 add r1, sp, #20 ; 0x14 - 1bfe: f7ff fe34 bl 0x186a - 1c02: e7eb b 0x1bdc - 1c04: 4668 mov r0, sp - 1c06: 7b40 ldrb r0, [r0, #13] ; 0xd - 1c08: f7ff fe5e bl 0x18c8 - 1c0c: e022 b 0x1c54 - 1c0e: 4668 mov r0, sp - 1c10: 7b40 ldrb r0, [r0, #13] ; 0xd - 1c12: a905 add r1, sp, #20 ; 0x14 - 1c14: 9a00 ldr r2, [sp, #0] - 1c16: f7ff fe6d bl 0x18f4 - 1c1a: e7df b 0x1bdc - 1c1c: 4668 mov r0, sp - 1c1e: 7b40 ldrb r0, [r0, #13] ; 0xd - 1c20: a905 add r1, sp, #20 ; 0x14 - 1c22: f7ff feab bl 0x197c - 1c26: e7d9 b 0x1bdc - 1c28: 4850 ldr r0, =0x83ff20 ; via 0x1d6c - 1c2a: 6800 ldr r0, [r0, #0] - 1c2c: 2800 cmp r0, #0 - 1c2e: d0ce beq 0x1bce - 1c30: 3801 sub r0, #1 - 1c32: 2800 cmp r0, #0 - 1c34: d0d4 beq 0x1be0 - 1c36: 3801 sub r0, #1 - 1c38: 2800 cmp r0, #0 - 1c3a: d0d7 beq 0x1bec - 1c3c: 3801 sub r0, #1 - 1c3e: 2800 cmp r0, #0 - 1c40: d0da beq 0x1bf8 - 1c42: 3801 sub r0, #1 - 1c44: 2800 cmp r0, #0 - 1c46: d0dd beq 0x1c04 - 1c48: 3801 sub r0, #1 - 1c4a: 2800 cmp r0, #0 - 1c4c: d0df beq 0x1c0e - 1c4e: 3801 sub r0, #1 - 1c50: 2800 cmp r0, #0 - 1c52: d0e3 beq 0x1c1c - 1c54: 9804 ldr r0, [sp, #16] ; 0x10 - 1c56: 2800 cmp r0, #0 - 1c58: d1a3 bne 0x1ba2 - 1c5a: 9805 ldr r0, [sp, #20] ; 0x14 - 1c5c: b006 add sp, #24 ; 0x18 - 1c5e: bd00 pop {pc} - 1c60: 4942 ldr r1, =0x83ff20 ; via 0x1d6c - 1c62: 2001 mov r0, #1 - 1c64: 6008 str r0, [r1, #0] - 1c66: 4842 ldr r0, =0x83ff1b ; via 0x1d70 - 1c68: 2100 mov r1, #0 - 1c6a: 7001 strb r1, [r0, #0] - 1c6c: 4841 ldr r0, =0x83ff18 ; via 0x1d74 - 1c6e: 7001 strb r1, [r0, #0] - 1c70: 4770 bx lr - 1c72: 46c0 nop (mov r8, r8) - 1c74: ff14 - 1c76: 0083 lsl r3, r0, #2 - 1c78: b081 sub sp, #4 - 1c7a: 483f ldr r0, =0xffff5800 ; via 0x1d78 - 1c7c: 9000 str r0, [sp, #0] - 1c7e: 493f ldr r1, =0xffff6000 ; via 0x1d7c - 1c80: 2002 mov r0, #2 - 1c82: 880a ldrh r2, [r1, #0] - 1c84: 4310 orr r0, r2 - 1c86: 8008 strh r0, [r1, #0] - 1c88: 483c ldr r0, =0xffff6000 ; via 0x1d7c - 1c8a: 8801 ldrh r1, [r0, #0] - 1c8c: 0849 lsr r1, r1, #1 - 1c8e: 0049 lsl r1, r1, #1 - 1c90: 8001 strh r1, [r0, #0] - 1c92: 493a ldr r1, =0xffff6000 ; via 0x1d7c - 1c94: 8808 ldrh r0, [r1, #0] - 1c96: 2202 mov r2, #2 - 1c98: 4390 bic r0, r2 - 1c9a: 8008 strh r0, [r1, #0] - 1c9c: 9900 ldr r1, [sp, #0] - 1c9e: 2007 mov r0, #7 - 1ca0: 7208 strb r0, [r1, #8] - 1ca2: 9900 ldr r1, [sp, #0] - 1ca4: 20bf mov r0, #191 ; 0xbf - 1ca6: 70c8 strb r0, [r1, #3] - 1ca8: 9800 ldr r0, [sp, #0] - 1caa: 1c81 add r1, r0, #2 - 1cac: 2010 mov r0, #16 ; 0x10 - 1cae: 880a ldrh r2, [r1, #0] - 1cb0: 4310 orr r0, r2 - 1cb2: 8008 strh r0, [r1, #0] - 1cb4: 9800 ldr r0, [sp, #0] - 1cb6: 2180 mov r1, #128 ; 0x80 - 1cb8: 70c1 strb r1, [r0, #3] - 1cba: 9800 ldr r0, [sp, #0] - 1cbc: 2107 mov r1, #7 - 1cbe: 7081 strb r1, [r0, #2] - 1cc0: 9800 ldr r0, [sp, #0] - 1cc2: 21bf mov r1, #191 ; 0xbf - 1cc4: 70c1 strb r1, [r0, #3] - 1cc6: 9800 ldr r0, [sp, #0] - 1cc8: 2107 mov r1, #7 - 1cca: 7001 strb r1, [r0, #0] - 1ccc: 9800 ldr r0, [sp, #0] - 1cce: 2100 mov r1, #0 - 1cd0: 7041 strb r1, [r0, #1] - 1cd2: 9800 ldr r0, [sp, #0] - 1cd4: 2103 mov r1, #3 - 1cd6: 70c1 strb r1, [r0, #3] - 1cd8: 9800 ldr r0, [sp, #0] - 1cda: 2100 mov r1, #0 - 1cdc: 7201 strb r1, [r0, #8] - 1cde: 4828 ldr r0, =0xffff5000 ; via 0x1d80 - 1ce0: 9000 str r0, [sp, #0] - 1ce2: 9800 ldr r0, [sp, #0] - 1ce4: 2107 mov r1, #7 - 1ce6: 7201 strb r1, [r0, #8] - 1ce8: 9900 ldr r1, [sp, #0] - 1cea: 20bf mov r0, #191 ; 0xbf - 1cec: 70c8 strb r0, [r1, #3] - 1cee: 9800 ldr r0, [sp, #0] - 1cf0: 1c80 add r0, r0, #2 - 1cf2: 2110 mov r1, #16 ; 0x10 - 1cf4: 8802 ldrh r2, [r0, #0] - 1cf6: 4311 orr r1, r2 - 1cf8: 8001 strh r1, [r0, #0] - 1cfa: 9800 ldr r0, [sp, #0] - 1cfc: 2180 mov r1, #128 ; 0x80 - 1cfe: 70c1 strb r1, [r0, #3] - 1d00: 9800 ldr r0, [sp, #0] - 1d02: 2107 mov r1, #7 - 1d04: 7081 strb r1, [r0, #2] - 1d06: 9800 ldr r0, [sp, #0] - 1d08: 21bf mov r1, #191 ; 0xbf - 1d0a: 70c1 strb r1, [r0, #3] - 1d0c: 9800 ldr r0, [sp, #0] - 1d0e: 2107 mov r1, #7 - 1d10: 7001 strb r1, [r0, #0] - 1d12: 9800 ldr r0, [sp, #0] - 1d14: 2100 mov r1, #0 - 1d16: 7041 strb r1, [r0, #1] - 1d18: 9900 ldr r1, [sp, #0] - 1d1a: 2003 mov r0, #3 - 1d1c: 70c8 strb r0, [r1, #3] - 1d1e: 9800 ldr r0, [sp, #0] - 1d20: 2100 mov r1, #0 - 1d22: 7201 strb r1, [r0, #8] - 1d24: b001 add sp, #4 - 1d26: 4770 bx lr - 1d28: b081 sub sp, #4 - 1d2a: 4669 mov r1, sp - 1d2c: 7008 strb r0, [r1, #0] - 1d2e: 490c ldr r1, =0x864 ; via 0x1d60 - 1d30: 4668 mov r0, sp - 1d32: 7800 ldrb r0, [r0, #0] - 1d34: 0080 lsl r0, r0, #2 - 1d36: 5808 ldr r0, [r1, r0] - 1d38: 7941 ldrb r1, [r0, #5] - 1d3a: 4668 mov r0, sp - 1d3c: 7041 strb r1, [r0, #1] - 1d3e: 7840 ldrb r0, [r0, #1] - 1d40: 09c0 lsr r0, r0, #7 - 1d42: d20b bcs 0x1d5c - 1d44: 4806 ldr r0, =0x864 ; via 0x1d60 - 1d46: 4669 mov r1, sp - 1d48: 7809 ldrb r1, [r1, #0] - 1d4a: 0089 lsl r1, r1, #2 - 1d4c: 5840 ldr r0, [r0, r1] - 1d4e: 7940 ldrb r0, [r0, #5] - 1d50: 4669 mov r1, sp - 1d52: 7048 strb r0, [r1, #1] - 1d54: 4668 mov r0, sp - 1d56: 7840 ldrb r0, [r0, #1] - 1d58: 09c0 lsr r0, r0, #7 - 1d5a: d3f3 bcc 0x1d44 - 1d5c: b001 add sp, #4 - 1d5e: 4770 bx lr - 1d60: 0864 lsr r4, r4, #1 - 1d62: 0000 lsl r0, r0, #0 - 1d64: 5805 ldr r5, [r0, r0] - 1d66: ffff - 1d68: 5005 str r5, [r0, r0] - 1d6a: ffff - 1d6c: ff20 - 1d6e: 0083 lsl r3, r0, #2 - 1d70: ff1b - 1d72: 0083 lsl r3, r0, #2 - 1d74: ff18 - 1d76: 0083 lsl r3, r0, #2 - 1d78: 5800 ldr r0, [r0, r0] - 1d7a: ffff - 1d7c: 6000 str r0, [r0, #0] - 1d7e: ffff - 1d80: 5000 str r0, [r0, r0] - 1d82: ffff - 1d84: b500 push {lr} - 1d86: b087 sub sp, #28 ; 0x1c - 1d88: 466b mov r3, sp - 1d8a: 721a strb r2, [r3, #8] - 1d8c: 9101 str r1, [sp, #4] - 1d8e: 9000 str r0, [sp, #0] - 1d90: 9900 ldr r1, [sp, #0] - 1d92: 2000 mov r0, #0 - 1d94: 8008 strh r0, [r1, #0] - 1d96: 9801 ldr r0, [sp, #4] - 1d98: 2100 mov r1, #0 - 1d9a: 8001 strh r1, [r0, #0] - 1d9c: 2000 mov r0, #0 - 1d9e: 9003 str r0, [sp, #12] ; 0xc - 1da0: f7ff ff5e bl 0x1c60 - 1da4: a805 add r0, sp, #20 ; 0x14 - 1da6: a906 add r1, sp, #24 ; 0x18 - 1da8: 466a mov r2, sp - 1daa: 7a12 ldrb r2, [r2, #8] - 1dac: f7ff feee bl 0x1b8c - 1db0: 9004 str r0, [sp, #16] ; 0x10 - 1db2: 9804 ldr r0, [sp, #16] ; 0x10 - 1db4: 2800 cmp r0, #0 - 1db6: d11f bne 0x1df8 - 1db8: 9803 ldr r0, [sp, #12] ; 0xc - 1dba: 2800 cmp r0, #0 - 1dbc: d11c bne 0x1df8 - 1dbe: 9800 ldr r0, [sp, #0] - 1dc0: 4669 mov r1, sp - 1dc2: 8b0a ldrh r2, [r1, #24] ; 0x18 - 1dc4: 8801 ldrh r1, [r0, #0] - 1dc6: 1851 add r1, r2, r1 - 1dc8: 8001 strh r1, [r0, #0] - 1dca: 9905 ldr r1, [sp, #20] ; 0x14 - 1dcc: 4668 mov r0, sp - 1dce: 8b00 ldrh r0, [r0, #24] ; 0x18 - 1dd0: 8008 strh r0, [r1, #0] - 1dd2: 9801 ldr r0, [sp, #4] - 1dd4: 9905 ldr r1, [sp, #20] ; 0x14 - 1dd6: 8809 ldrh r1, [r1, #0] - 1dd8: 8802 ldrh r2, [r0, #0] - 1dda: 1889 add r1, r1, r2 - 1ddc: 8001 strh r1, [r0, #0] - 1dde: a805 add r0, sp, #20 ; 0x14 - 1de0: a906 add r1, sp, #24 ; 0x18 - 1de2: 466a mov r2, sp - 1de4: 7a12 ldrb r2, [r2, #8] - 1de6: f7ff fed1 bl 0x1b8c - 1dea: 9004 str r0, [sp, #16] ; 0x10 - 1dec: 9804 ldr r0, [sp, #16] ; 0x10 - 1dee: 2800 cmp r0, #0 - 1df0: d102 bne 0x1df8 - 1df2: 9803 ldr r0, [sp, #12] ; 0xc - 1df4: 2800 cmp r0, #0 - 1df6: d0e2 beq 0x1dbe - 1df8: 9804 ldr r0, [sp, #16] ; 0x10 - 1dfa: 2801 cmp r0, #1 - 1dfc: d101 bne 0x1e02 - 1dfe: 2004 mov r0, #4 - 1e00: 9003 str r0, [sp, #12] ; 0xc - 1e02: 9803 ldr r0, [sp, #12] ; 0xc - 1e04: b007 add sp, #28 ; 0x1c - 1e06: bd00 pop {pc} - 1e08: b089 sub sp, #36 ; 0x24 - 1e0a: 201a mov r0, #26 ; 0x1a - 1e0c: 9005 str r0, [sp, #20] ; 0x14 - 1e0e: 2018 mov r0, #24 ; 0x18 - 1e10: 9006 str r0, [sp, #24] ; 0x18 - 1e12: 2000 mov r0, #0 - 1e14: 9008 str r0, [sp, #32] ; 0x20 - 1e16: 4669 mov r1, sp - 1e18: 9805 ldr r0, [sp, #20] ; 0x14 - 1e1a: 8800 ldrh r0, [r0, #0] - 1e1c: 8008 strh r0, [r1, #0] - 1e1e: 9806 ldr r0, [sp, #24] ; 0x18 - 1e20: 8800 ldrh r0, [r0, #0] - 1e22: 8048 strh r0, [r1, #2] - 1e24: 4668 mov r0, sp - 1e26: 8841 ldrh r1, [r0, #2] - 1e28: 8800 ldrh r0, [r0, #0] - 1e2a: 0400 lsl r0, r0, #16 - 1e2c: 1808 add r0, r1, r0 - 1e2e: 9001 str r0, [sp, #4] - 1e30: 9801 ldr r0, [sp, #4] - 1e32: 0200 lsl r0, r0, #8 - 1e34: 0a00 lsr r0, r0, #8 - 1e36: 0080 lsl r0, r0, #2 - 1e38: 3008 add r0, #8 - 1e3a: 9007 str r0, [sp, #28] ; 0x1c - 1e3c: 9807 ldr r0, [sp, #28] ; 0x1c - 1e3e: 3018 add r0, #24 ; 0x18 - 1e40: 9002 str r0, [sp, #8] - 1e42: 9802 ldr r0, [sp, #8] - 1e44: 9004 str r0, [sp, #16] ; 0x10 - 1e46: 9802 ldr r0, [sp, #8] - 1e48: 3002 add r0, #2 - 1e4a: 9003 str r0, [sp, #12] ; 0xc - 1e4c: 9803 ldr r0, [sp, #12] ; 0xc - 1e4e: 8801 ldrh r1, [r0, #0] - 1e50: 4806 ldr r0, =0xffff ; via 0x1e6c - 1e52: 4281 cmp r1, r0 - 1e54: d104 bne 0x1e60 - 1e56: 9804 ldr r0, [sp, #16] ; 0x10 - 1e58: 8800 ldrh r0, [r0, #0] - 1e5a: 4904 ldr r1, =0xffff ; via 0x1e6c - 1e5c: 4288 cmp r0, r1 - 1e5e: d001 beq 0x1e64 - 1e60: 2001 mov r0, #1 - 1e62: 9008 str r0, [sp, #32] ; 0x20 - 1e64: 9808 ldr r0, [sp, #32] ; 0x20 - 1e66: b009 add sp, #36 ; 0x24 - 1e68: 4770 bx lr - 1e6a: 46c0 nop (mov r8, r8) - - 1e6c: 0000ffff - -; ARM->Thumb call veneer around 0xad2 routine - 1e70: e92d4000 stmdb sp!, {lr} - 1e74: e28fe001 add lr, pc, #1 - 1e78: e12fff1e bx lr - 1e7c: f7fe fe29 bl 0xad2 - 1e80: 4778 bx pc - 1e82: 46c0 nop (mov r8, r8) - 1e84: e8bd8000 ldmia sp!, {pc} - -<1E88-1EFF: all FFs> - - 1f00: 00000001 - -<1F04-end: all FFs> diff -r e5e5ed527cc1 -r 81cda18b0487 compal/c139-boot.90.04.bin Binary file compal/c139-boot.90.04.bin has changed diff -r e5e5ed527cc1 -r 81cda18b0487 compal/c139-boot.disasm --- a/compal/c139-boot.disasm Sat Jan 14 06:09:25 2023 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2736 +0,0 @@ -RESET entry and exception vectors: - 0: ea000225 b 0x89c - 4: ea000825 b 0x20a0 - 8: ea000825 b 0x20a4 - c: ea000825 b 0x20a8 - 10: ea000825 b 0x20ac - 14: ea000825 b 0x20b0 - 18: ea000825 b 0x20b4 - 1c: ea000825 b 0x20b8 - -; some magic words? - 20: 444efc57 - 24: 444efc58 - 28: 444efc86 - 2c: 444efc87 -; different in the C140 specimen: - 20: 44b1b707 - 24: 44b1b708 - 28: 44b1b735 - 2c: 44b1b736 - -<30-7FF: all FFs> - -00000800: 42 4F 4F 54 2E 39 30 2E 30 34 00 00 00 00 00 00 BOOT.90.04...... -00000810: 31 30 30 33 01 01 00 00 FF FF FF FF FF FF FF FF 1003............ -00000820: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ - - 830: 00000006 - ... - 83c: 00000048 - 840: 00000044 - 844: 00000052 - 848: 0000001b - 84c: 00000005 - ... - 860: 000000fa - 864: ffff5800 - 868: ffff5000 - 86c: fffffb00 - 870: 02a1 - 872: 02a1 - 874: 02a1 - 876: 0283 - 878: 0281 - 87a: 00c0 - 87c: 0040 - 87e: 002a - 880: 00000040 - 884: fffffd00 - 888: ffff9800 - 88c: fffffb10 - 890: ffffff08 - 894: 1081 - 896: 2006 - 898: 0800 - 89a: 0000 - -; RESET entry point -; set VCLKOUT_DIV2 in FFFF:FD02 register - 89c: e51f1020 ldr r1, =0xfffffd00 ; via 0x884 - 8a0: e1d120b2 ldrh r2, [r1, #2] - 8a4: e51f002c ldr r0, =0x40 ; via 0x880 - 8a8: e1800002 orr r0, r0, r2 - 8ac: e1c100b2 strh r0, [r1, #2] -; PLL disable (power-up state) - 8b0: e51f1030 ldr r1, =0xffff9800 ; via 0x888 - 8b4: e15f22b6 ldrh r2, =0x2006 ; via 0x896 - 8b8: e1c120b0 strh r2, [r1] - 8bc: e5912000 ldr r2, [r1] - 8c0: e2022001 and r2, r2, #1 - 8c4: e3520001 cmp r2, #1 - 8c8: 0afffffb beq 0x8bc -; Write power-up default value into FFFF:FD00 - 8cc: e51f1050 ldr r1, =0xfffffd00 ; via 0x884 - 8d0: e15f24b4 ldrh r2, =0x1081 ; via 0x894 - 8d4: e1c120b0 strh r2, [r1] -; Disable DU - 8d8: e51f1054 ldr r1, =0xfffffb10 ; via 0x88c - 8dc: e15f24bc ldrh r2, =0x800 ; via 0x898 - 8e0: e1d100b0 ldrh r0, [r1] - 8e4: e1800002 orr r0, r0, r2 - 8e8: e1c100b0 strh r0, [r1] -; Disable all MPU regions - 8ec: e51f1064 ldr r1, =0xffffff08 ; via 0x890 - 8f0: e15f25be ldrh r2, =0x0 ; via 0x89a - 8f4: e1c120b0 strh r2, [r1] -; Memory timings - 8f8: e51f1094 ldr r1, =0xfffffb00 ; via 0x86c - 8fc: e15f29b4 ldrh r2, =0x2a1 ; via 0x870 - 900: e1c120b0 strh r2, [r1] - 904: e15f29ba ldrh r2, =0x2a1 ; via 0x872 - 908: e1c120b2 strh r2, [r1, #2] - 90c: e15f2ab0 ldrh r2, =0x2a1 ; via 0x874 - 910: e1c120b4 strh r2, [r1, #4] - 914: e15f2ab6 ldrh r2, =0x283 ; via 0x876 - 918: e1c120b6 strh r2, [r1, #6] - 91c: e15f2abc ldrh r2, =0x281 ; via 0x878 - 920: e1c120ba strh r2, [r1, #10] ; 0xa - 924: e15f2bb2 ldrh r2, =0xc0 ; via 0x87a - 928: e1c120bc strh r2, [r1, #12] ; 0xc - 92c: e15f2bb8 ldrh r2, =0x40 ; via 0x87c - 930: e1c120b8 strh r2, [r1, #8] - 934: e15f2bbe ldrh r2, =0x2a ; via 0x87e - 938: e1c120be strh r2, [r1, #14] ; 0xe -; set up stack - 93c: e59f0020 ldr r0, =0x83e574 ; via 0x964 - 940: e3a01b01 mov r1, #1024 ; 0x400 - 944: e2411004 sub r1, r1, #4 - 948: e0802001 add r2, r0, r1 - 94c: e3c22003 bic r2, r2, #3 - 950: e1a0d002 mov sp, r2 -; business logic - 954: e92d100f stmdb sp!, {r0, r1, r2, r3, r12} - 958: eb000534 bl 0x1e30 - 95c: e8bd100f ldmia sp!, {r0, r1, r2, r3, r12} - 960: ea0005e4 b 0x20f8 - -; C139 specimen: - 964: 0083e574 -; different in the C140 specimen: - 964: 0083e55c - -; mask all interrupts in INTH - 968: 4961 ldr r1, =0xfffffa08 ; via 0xaf0 - 96a: 4862 ldr r0, =0xffff ; via 0xaf4 - 96c: 8008 strh r0, [r1, #0] - 96e: 4862 ldr r0, =0xfffffa0a ; via 0xaf8 - 970: 211f mov r1, #31 ; 0x1f - 972: 8001 strh r1, [r0, #0] -; disable watchdog - 974: 4861 ldr r0, =0xfffff804 ; via 0xafc - 976: 21f5 mov r1, #245 ; 0xf5 - 978: 8001 strh r1, [r0, #0] - 97a: 21a0 mov r1, #160 ; 0xa0 - 97c: 8001 strh r1, [r0, #0] -; disable PLL - 97e: 4860 ldr r0, =0xffff9800 ; via 0xb00 - 980: 4960 ldr r1, =0x2002 ; via 0xb04 - 982: 8001 strh r1, [r0, #0] - 984: 485e ldr r0, =0xffff9800 ; via 0xb00 - 986: 8800 ldrh r0, [r0, #0] - 988: 0840 lsr r0, r0, #1 - 98a: d2fb bcs 0x984 -; 0x1001 written into FFFF:FD00 - same as power-up default -; except for one reserved bit - 98c: 495e ldr r1, =0xfffffd00 ; via 0xb08 - 98e: 485f ldr r0, =0x1001 ; via 0xb0c - 990: 8008 strh r0, [r1, #0] - 992: 46f7 mov pc, lr - - 994: b500 push {lr} - 996: b0ff sub sp, #508 ; 0x1fc - 998: b0ca sub sp, #296 ; 0x128 - 99a: 2000 mov r0, #0 - 99c: 9001 str r0, [sp, #4] - 99e: 9801 ldr r0, [sp, #4] - 9a0: 2800 cmp r0, #0 - 9a2: d14e bne 0xa42 - 9a4: a846 add r0, sp, #280 ; 0x118 - 9a6: 2100 mov r1, #0 - 9a8: f001 f86e bl 0x1a88 - 9ac: a9c8 add r1, sp, #800 ; 0x320 - 9ae: 7008 strb r0, [r1, #0] - 9b0: a846 add r0, sp, #280 ; 0x118 - 9b2: a902 add r1, sp, #8 - 9b4: f000 fb2c bl 0x1010 - 9b8: 9000 str r0, [sp, #0] - 9ba: 9800 ldr r0, [sp, #0] - 9bc: 2800 cmp r0, #0 - 9be: d01b beq 0x9f8 - 9c0: a924 add r1, sp, #144 ; 0x90 - 9c2: 4668 mov r0, sp - 9c4: 7a00 ldrb r0, [r0, #8] - 9c6: 7008 strb r0, [r1, #0] - 9c8: 2191 mov r1, #145 ; 0x91 - 9ca: 466a mov r2, sp - 9cc: 4668 mov r0, sp - 9ce: 7800 ldrb r0, [r0, #0] - 9d0: 5488 strb r0, [r1, r2] - 9d2: e01b b 0xa0c - 9d4: a802 add r0, sp, #8 - 9d6: a924 add r1, sp, #144 ; 0x90 - 9d8: f000 fe08 bl 0x15ec - 9dc: e016 b 0xa0c - 9de: a802 add r0, sp, #8 - 9e0: a924 add r1, sp, #144 ; 0x90 - 9e2: aac8 add r2, sp, #800 ; 0x320 - 9e4: 7812 ldrb r2, [r2, #0] - 9e6: f000 fe15 bl 0x1614 - 9ea: e00f b 0xa0c - 9ec: a802 add r0, sp, #8 - 9ee: a924 add r1, sp, #144 ; 0x90 - 9f0: f000 fe47 bl 0x1682 - 9f4: 90c7 str r0, [sp, #796] ; 0x31c - 9f6: e009 b 0xa0c - 9f8: 4668 mov r0, sp - 9fa: 7a00 ldrb r0, [r0, #8] - 9fc: 2800 cmp r0, #0 - 9fe: d0e9 beq 0x9d4 - a00: 3809 sub r0, #9 - a02: 2800 cmp r0, #0 - a04: d0eb beq 0x9de - a06: 3801 sub r0, #1 - a08: 2800 cmp r0, #0 - a0a: d0ef beq 0x9ec - a0c: a824 add r0, sp, #144 ; 0x90 - a0e: a986 add r1, sp, #536 ; 0x218 - a10: f000 fbe1 bl 0x11d6 - a14: 2800 cmp r0, #0 - a16: d111 bne 0xa3c - a18: a886 add r0, sp, #536 ; 0x218 - a1a: a9c8 add r1, sp, #800 ; 0x320 - a1c: 7809 ldrb r1, [r1, #0] - a1e: f001 f808 bl 0x1a32 - a22: 2800 cmp r0, #0 - a24: d00a beq 0xa3c - a26: 4668 mov r0, sp - a28: 7a00 ldrb r0, [r0, #8] - a2a: 280a cmp r0, #10 ; 0xa - a2c: d106 bne 0xa3c - a2e: a8c8 add r0, sp, #800 ; 0x320 - a30: 7800 ldrb r0, [r0, #0] - a32: f001 f959 bl 0x1ce8 - a36: 98c7 ldr r0, [sp, #796] ; 0x31c - a38: f000 fae8 bl 0x100c - a3c: 9801 ldr r0, [sp, #4] - a3e: 2800 cmp r0, #0 - a40: d0b0 beq 0x9a4 - a42: b07f add sp, #508 ; 0x1fc - a44: b04a add sp, #296 ; 0x128 - a46: bd00 pop {pc} - - a48: b500 push {lr} - a4a: b0ff sub sp, #508 ; 0x1fc - a4c: b0c8 sub sp, #288 ; 0x120 - a4e: 2000 mov r0, #0 - a50: 9000 str r0, [sp, #0] - a52: a846 add r0, sp, #280 ; 0x118 - a54: 2101 mov r1, #1 - a56: f001 f817 bl 0x1a88 - a5a: a9c6 add r1, sp, #792 ; 0x318 - a5c: 7008 strb r0, [r1, #0] - a5e: a8c6 add r0, sp, #792 ; 0x318 - a60: 7800 ldrb r0, [r0, #0] - a62: 28ff cmp r0, #255 ; 0xff - a64: d031 beq 0xaca - a66: a846 add r0, sp, #280 ; 0x118 - a68: a902 add r1, sp, #8 - a6a: f000 fad1 bl 0x1010 - a6e: 9001 str r0, [sp, #4] - a70: 9801 ldr r0, [sp, #4] - a72: 2800 cmp r0, #0 - a74: d014 beq 0xaa0 - a76: a924 add r1, sp, #144 ; 0x90 - a78: 4668 mov r0, sp - a7a: 7a00 ldrb r0, [r0, #8] - a7c: 7008 strb r0, [r1, #0] - a7e: 2291 mov r2, #145 ; 0x91 - a80: 4668 mov r0, sp - a82: 4669 mov r1, sp - a84: 7909 ldrb r1, [r1, #4] - a86: 5411 strb r1, [r2, r0] - a88: a824 add r0, sp, #144 ; 0x90 - a8a: a986 add r1, sp, #536 ; 0x218 - a8c: f000 fba3 bl 0x11d6 - a90: 2800 cmp r0, #0 - a92: d11a bne 0xaca - a94: a886 add r0, sp, #536 ; 0x218 - a96: a9c6 add r1, sp, #792 ; 0x318 - a98: 7809 ldrb r1, [r1, #0] - a9a: f000 ffca bl 0x1a32 - a9e: e014 b 0xaca - aa0: 4668 mov r0, sp - aa2: 7a00 ldrb r0, [r0, #8] - aa4: 2800 cmp r0, #0 - aa6: d110 bne 0xaca - aa8: a802 add r0, sp, #8 - aaa: a924 add r1, sp, #144 ; 0x90 - aac: f000 fd9e bl 0x15ec - ab0: a824 add r0, sp, #144 ; 0x90 - ab2: a986 add r1, sp, #536 ; 0x218 - ab4: f000 fb8f bl 0x11d6 - ab8: 2800 cmp r0, #0 - aba: d104 bne 0xac6 - abc: a886 add r0, sp, #536 ; 0x218 - abe: a9c6 add r1, sp, #792 ; 0x318 - ac0: 7809 ldrb r1, [r1, #0] - ac2: f000 ffb6 bl 0x1a32 - ac6: 2001 mov r0, #1 - ac8: 9000 str r0, [sp, #0] - aca: 9800 ldr r0, [sp, #0] - acc: b07f add sp, #508 ; 0x1fc - ace: b048 add sp, #288 ; 0x120 - ad0: bd00 pop {pc} - -; Main entry routine - ad2: b500 push {lr} - ad4: b082 sub sp, #8 - ad6: f7ff ff47 bl 0x968 ; superfluous - ada: f001 f8ad bl 0x1c38 ; UART init - ade: f000 fd73 bl 0x15c8 ; zero a couple of vars - ae2: f000 f81f bl 0xb24 ; serial protocol - ae6: f000 f96a bl 0xdbe ; ftmtool voodoo - aea: b002 add sp, #8 - aec: bd00 pop {pc} - aee: 46c0 nop (mov r8, r8) - - af0: fffffa08 - af4: 0000ffff - af8: fffffa0a - afc: fffff804 - b00: ffff9800 - b04: 00002002 - b08: fffffd00 - b0c: 00001001 - - b10: e3a0d502 mov sp, #8388608 ; 0x800000 - b14: e28dd802 add sp, sp, #131072 ; 0x20000 - b18: e28fe005 add lr, pc, #5 - b1c: e12fff1e bx lr - b20: e1a00000 mov r0, r0 - -; This function (0xb24, called from this bootloader's "main") calls -; 0xbac (serial download attempt) twice, first at 406250 baud, then -; at 115200 baud. Only the MODEM UART is tried, not IrDA. - b24: b500 push {lr} - b26: b082 sub sp, #8 -; select MODEM UART - b28: 49ed ldr r1, =0x83ff00 ; via 0xee0 - b2a: 48ee ldr r0, =0xffff5800 ; via 0xee4 - b2c: 6008 str r0, [r1, #0] -; set it to /2 (406250 baud) - b2e: 2000 mov r0, #0 - b30: 2102 mov r1, #2 - b32: f000 f9fb bl 0xf2c -; delay loop - b36: 2000 mov r0, #0 - b38: 9000 str r0, [sp, #0] - b3a: 9900 ldr r1, [sp, #0] - b3c: 2005 mov r0, #5 - b3e: 0300 lsl r0, r0, #12 - b40: 4281 cmp r1, r0 - b42: d207 bcs 0xb54 - b44: 9800 ldr r0, [sp, #0] - b46: 3001 add r0, #1 - b48: 9000 str r0, [sp, #0] - b4a: 9900 ldr r1, [sp, #0] - b4c: 2005 mov r0, #5 - b4e: 0300 lsl r0, r0, #12 - b50: 4281 cmp r1, r0 - b52: d3f7 bcc 0xb44 -; 0xbac called at 406250 baud - b54: f000 f82a bl 0xbac -; set it to /7 (115200 baud) - b58: 2000 mov r0, #0 - b5a: 2107 mov r1, #7 - b5c: f000 f9e6 bl 0xf2c -; same delay loop again - b60: 2000 mov r0, #0 - b62: 9000 str r0, [sp, #0] - b64: 9900 ldr r1, [sp, #0] - b66: 2005 mov r0, #5 - b68: 0300 lsl r0, r0, #12 - b6a: 4281 cmp r1, r0 - b6c: d207 bcs 0xb7e - b6e: 9800 ldr r0, [sp, #0] - b70: 3001 add r0, #1 - b72: 9000 str r0, [sp, #0] - b74: 9900 ldr r1, [sp, #0] - b76: 2005 mov r0, #5 - b78: 0300 lsl r0, r0, #12 - b7a: 4281 cmp r1, r0 - b7c: d3f7 bcc 0xb6e -; call 0xbac again, this time at 115200 baud - b7e: f000 f815 bl 0xbac -; another (longer) delay loop, then return - b82: 2000 mov r0, #0 - b84: 9001 str r0, [sp, #4] - b86: 9000 str r0, [sp, #0] - b88: 9900 ldr r1, [sp, #0] - b8a: 2005 mov r0, #5 - b8c: 0400 lsl r0, r0, #16 - b8e: 4281 cmp r1, r0 - b90: d20a bcs 0xba8 - b92: 9801 ldr r0, [sp, #4] - b94: 3001 add r0, #1 - b96: 9001 str r0, [sp, #4] - b98: 9800 ldr r0, [sp, #0] - b9a: 3001 add r0, #1 - b9c: 9000 str r0, [sp, #0] - b9e: 9900 ldr r1, [sp, #0] - ba0: 2005 mov r0, #5 - ba2: 0400 lsl r0, r0, #16 - ba4: 4281 cmp r1, r0 - ba6: d3f4 bcc 0xb92 - ba8: b002 add sp, #8 - baa: bd00 pop {pc} - -; This function implements the entirety of the serial download protocol, -; see c139-boot.notes for the details. - bac: b500 push {lr} - bae: b088 sub sp, #32 ; 0x20 - bb0: 48dd ldr r0, =0x800100 ; via 0xf28 - bb2: 9005 str r0, [sp, #20] ; 0x14 - bb4: 201b mov r0, #27 ; 0x1b - bb6: f000 f95f bl 0xe78 - bba: 20f6 mov r0, #246 ; 0xf6 - bbc: f000 f95c bl 0xe78 - bc0: 2002 mov r0, #2 - bc2: f000 f959 bl 0xe78 - bc6: 2000 mov r0, #0 - bc8: f000 f956 bl 0xe78 - bcc: 2041 mov r0, #65 ; 0x41 - bce: f000 f953 bl 0xe78 - bd2: 2001 mov r0, #1 - bd4: f000 f950 bl 0xe78 - bd8: 2040 mov r0, #64 ; 0x40 - bda: f000 f94d bl 0xe78 - bde: 2001 mov r0, #1 - be0: 0300 lsl r0, r0, #12 - be2: f000 f961 bl 0xea8 - be6: 281b cmp r0, #27 ; 0x1b - be8: d000 beq 0xbec - bea: e0e6 b 0xdba - bec: 2001 mov r0, #1 - bee: 0300 lsl r0, r0, #12 - bf0: f000 f95a bl 0xea8 - bf4: 28f6 cmp r0, #246 ; 0xf6 - bf6: d000 beq 0xbfa - bf8: e0df b 0xdba - bfa: 2001 mov r0, #1 - bfc: 0300 lsl r0, r0, #12 - bfe: f000 f953 bl 0xea8 - c02: 2802 cmp r0, #2 - c04: d000 beq 0xc08 - c06: e0d8 b 0xdba - c08: 2001 mov r0, #1 - c0a: 0300 lsl r0, r0, #12 - c0c: f000 f94c bl 0xea8 - c10: 2800 cmp r0, #0 - c12: d000 beq 0xc16 - c14: e0d1 b 0xdba - c16: 2001 mov r0, #1 - c18: 0300 lsl r0, r0, #12 - c1a: f000 f945 bl 0xea8 - c1e: 2852 cmp r0, #82 ; 0x52 - c20: d000 beq 0xc24 - c22: e0ca b 0xdba - c24: 2001 mov r0, #1 - c26: 0300 lsl r0, r0, #12 - c28: f000 f93e bl 0xea8 - c2c: 2801 cmp r0, #1 - c2e: d000 beq 0xc32 - c30: e0c3 b 0xdba - c32: 2001 mov r0, #1 - c34: 0300 lsl r0, r0, #12 - c36: f000 f937 bl 0xea8 - c3a: 2853 cmp r0, #83 ; 0x53 - c3c: d000 beq 0xc40 - c3e: e0bc b 0xdba - c40: 201b mov r0, #27 ; 0x1b - c42: f000 f919 bl 0xe78 - c46: 20f6 mov r0, #246 ; 0xf6 - c48: f000 f916 bl 0xe78 - c4c: 2002 mov r0, #2 - c4e: f000 f913 bl 0xe78 - c52: 2000 mov r0, #0 - c54: f000 f910 bl 0xe78 - c58: 2041 mov r0, #65 ; 0x41 - c5a: f000 f90d bl 0xe78 - c5e: 2002 mov r0, #2 - c60: f000 f90a bl 0xe78 - c64: 2043 mov r0, #67 ; 0x43 - c66: f000 f907 bl 0xe78 - c6a: 2001 mov r0, #1 - c6c: 0300 lsl r0, r0, #12 - c6e: f000 f91b bl 0xea8 - c72: 4669 mov r1, sp - c74: 7208 strb r0, [r1, #8] - c76: 2002 mov r0, #2 - c78: 7448 strb r0, [r1, #17] ; 0x11 - c7a: 2000 mov r0, #0 - c7c: 9000 str r0, [sp, #0] - c7e: 9800 ldr r0, [sp, #0] - c80: 2802 cmp r0, #2 - c82: d215 bcs 0xcb0 - c84: 2001 mov r0, #1 - c86: 0300 lsl r0, r0, #12 - c88: f000 f90e bl 0xea8 - c8c: 4669 mov r1, sp - c8e: 9a00 ldr r2, [sp, #0] - c90: 1a89 sub r1, r1, r2 - c92: 7348 strb r0, [r1, #13] ; 0xd - c94: 4669 mov r1, sp - c96: 9800 ldr r0, [sp, #0] - c98: 1a08 sub r0, r1, r0 - c9a: 7b40 ldrb r0, [r0, #13] ; 0xd - c9c: 7c49 ldrb r1, [r1, #17] ; 0x11 - c9e: 4048 eor r0, r1 - ca0: 4669 mov r1, sp - ca2: 7448 strb r0, [r1, #17] ; 0x11 - ca4: 9800 ldr r0, [sp, #0] - ca6: 3001 add r0, #1 - ca8: 9000 str r0, [sp, #0] - caa: 9800 ldr r0, [sp, #0] - cac: 2802 cmp r0, #2 - cae: d3e9 bcc 0xc84 - cb0: 4668 mov r0, sp - cb2: 8980 ldrh r0, [r0, #12] ; 0xc - cb4: 466a mov r2, sp - cb6: 1e41 sub r1, r0, #1 - cb8: 8191 strh r1, [r2, #12] ; 0xc - cba: 2800 cmp r0, #0 - cbc: d016 beq 0xcec - cbe: 2001 mov r0, #1 - cc0: 0300 lsl r0, r0, #12 - cc2: f000 f8f1 bl 0xea8 - cc6: 9905 ldr r1, [sp, #20] ; 0x14 - cc8: 7008 strb r0, [r1, #0] - cca: 9805 ldr r0, [sp, #20] ; 0x14 - ccc: 7800 ldrb r0, [r0, #0] - cce: 4669 mov r1, sp - cd0: 7c49 ldrb r1, [r1, #17] ; 0x11 - cd2: 4048 eor r0, r1 - cd4: 4669 mov r1, sp - cd6: 7448 strb r0, [r1, #17] ; 0x11 - cd8: 9805 ldr r0, [sp, #20] ; 0x14 - cda: 3001 add r0, #1 - cdc: 9005 str r0, [sp, #20] ; 0x14 - cde: 4668 mov r0, sp - ce0: 8981 ldrh r1, [r0, #12] ; 0xc - ce2: 466a mov r2, sp - ce4: 1e48 sub r0, r1, #1 - ce6: 8190 strh r0, [r2, #12] ; 0xc - ce8: 2900 cmp r1, #0 - cea: d1e8 bne 0xcbe - cec: 2001 mov r0, #1 - cee: 0300 lsl r0, r0, #12 - cf0: f000 f8da bl 0xea8 - cf4: 4669 mov r1, sp - cf6: 7408 strb r0, [r1, #16] ; 0x10 - cf8: 4668 mov r0, sp - cfa: 7c00 ldrb r0, [r0, #16] ; 0x10 - cfc: 7c49 ldrb r1, [r1, #17] ; 0x11 - cfe: 4288 cmp r0, r1 - d00: d015 beq 0xd2e - d02: 201b mov r0, #27 ; 0x1b - d04: f000 f8b8 bl 0xe78 - d08: 20f6 mov r0, #246 ; 0xf6 - d0a: f000 f8b5 bl 0xe78 - d0e: 2002 mov r0, #2 - d10: f000 f8b2 bl 0xe78 - d14: 2000 mov r0, #0 - d16: f000 f8af bl 0xe78 - d1a: 2045 mov r0, #69 ; 0x45 - d1c: f000 f8ac bl 0xe78 - d20: 2053 mov r0, #83 ; 0x53 - d22: f000 f8a9 bl 0xe78 - d26: 2016 mov r0, #22 ; 0x16 - d28: f000 f8a6 bl 0xe78 - d2c: e045 b 0xdba - d2e: 2081 mov r0, #129 ; 0x81 - d30: 0100 lsl r0, r0, #4 - d32: 9006 str r0, [sp, #24] ; 0x18 - d34: 48af ldr r0, =0x803ce0 ; via 0xff4 - d36: 9007 str r0, [sp, #28] ; 0x1c - d38: 2000 mov r0, #0 - d3a: 9000 str r0, [sp, #0] - d3c: 9800 ldr r0, [sp, #0] - d3e: 2804 cmp r0, #4 - d40: d221 bcs 0xd86 - d42: 9900 ldr r1, [sp, #0] - d44: 9806 ldr r0, [sp, #24] ; 0x18 - d46: 5c0a ldrb r2, [r1, r0] - d48: 9900 ldr r1, [sp, #0] - d4a: 9807 ldr r0, [sp, #28] ; 0x1c - d4c: 5c08 ldrb r0, [r1, r0] - d4e: 4282 cmp r2, r0 - d50: dd13 ble 0xd7a - d52: 201b mov r0, #27 ; 0x1b - d54: f000 f890 bl 0xe78 - d58: 20f6 mov r0, #246 ; 0xf6 - d5a: f000 f88d bl 0xe78 - d5e: 2002 mov r0, #2 - d60: f000 f88a bl 0xe78 - d64: 2000 mov r0, #0 - d66: f000 f887 bl 0xe78 - d6a: 2041 mov r0, #65 ; 0x41 - d6c: f000 f884 bl 0xe78 - d70: 2003 mov r0, #3 - d72: f000 f881 bl 0xe78 - d76: 2057 mov r0, #87 ; 0x57 - d78: e7d6 b 0xd28 - d7a: 9800 ldr r0, [sp, #0] - d7c: 3001 add r0, #1 - d7e: 9000 str r0, [sp, #0] - d80: 9800 ldr r0, [sp, #0] - d82: 2804 cmp r0, #4 - d84: d3dd bcc 0xd42 - d86: 201b mov r0, #27 ; 0x1b - d88: f000 f876 bl 0xe78 - d8c: 20f6 mov r0, #246 ; 0xf6 - d8e: f000 f873 bl 0xe78 - d92: 2002 mov r0, #2 - d94: f000 f870 bl 0xe78 - d98: 2000 mov r0, #0 - d9a: f000 f86d bl 0xe78 - d9e: 2041 mov r0, #65 ; 0x41 - da0: f000 f86a bl 0xe78 - da4: 2003 mov r0, #3 - da6: f000 f867 bl 0xe78 - daa: 2042 mov r0, #66 ; 0x42 - dac: f000 f864 bl 0xe78 - db0: 484b ldr r0, =0x83ff00 ; via 0xee0 - db2: 6800 ldr r0, [r0, #0] - db4: 4990 ldr r1, =0x800100 ; via 0xff8 - db6: f000 f85e bl 0xe76 - dba: b008 add sp, #32 ; 0x20 - dbc: bd00 pop {pc} - - dbe: b500 push {lr} - dc0: b081 sub sp, #4 -; transmit "ftmtool" 7 bytes - dc2: 2066 mov r0, #102 ; 0x66 - dc4: f000 f858 bl 0xe78 - dc8: 2074 mov r0, #116 ; 0x74 - dca: f000 f855 bl 0xe78 - dce: 206d mov r0, #109 ; 0x6d - dd0: f000 f852 bl 0xe78 - dd4: 2074 mov r0, #116 ; 0x74 - dd6: f000 f84f bl 0xe78 - dda: 206f mov r0, #111 ; 0x6f - ddc: f000 f84c bl 0xe78 - de0: 206f mov r0, #111 ; 0x6f - de2: f000 f849 bl 0xe78 - de6: 206c mov r0, #108 ; 0x6c - de8: f000 f846 bl 0xe78 - dec: 4983 ldr r1, =0x83ff80 ; via 0xffc - dee: 2000 mov r0, #0 - df0: 7008 strb r0, [r1, #0] -; delay loop - df2: 9000 str r0, [sp, #0] - df4: 9800 ldr r0, [sp, #0] - df6: 0c00 lsr r0, r0, #16 - df8: d105 bne 0xe06 - dfa: 9800 ldr r0, [sp, #0] - dfc: 3001 add r0, #1 - dfe: 9000 str r0, [sp, #0] - e00: 9800 ldr r0, [sp, #0] - e02: 0c00 lsr r0, r0, #16 - e04: d0f9 beq 0xdfa -; call Rx-char: expecting "yes" - e06: 2007 mov r0, #7 - e08: 0400 lsl r0, r0, #16 - e0a: f000 f84d bl 0xea8 - e0e: 2879 cmp r0, #121 ; 0x79 - e10: d10e bne 0xe30 - e12: 2001 mov r0, #1 - e14: 0300 lsl r0, r0, #12 - e16: f000 f847 bl 0xea8 - e1a: 2865 cmp r0, #101 ; 0x65 - e1c: d108 bne 0xe30 - e1e: 2001 mov r0, #1 - e20: 0300 lsl r0, r0, #12 - e22: f000 f841 bl 0xea8 - e26: 2873 cmp r0, #115 ; 0x73 - e28: d102 bne 0xe30 - e2a: 4874 ldr r0, =0x83ff80 ; via 0xffc - e2c: 2101 mov r1, #1 - e2e: 7001 strb r1, [r0, #0] -; "yes" and normal boot code paths merge - e30: f000 f8ce bl 0xfd0 - e34: 2800 cmp r0, #0 - e36: d00d beq 0xe54 - e38: 206d mov r0, #109 ; 0x6d - e3a: f000 f81d bl 0xe78 - e3e: 206f mov r0, #111 ; 0x6f - e40: f000 f81a bl 0xe78 - e44: 2064 mov r0, #100 ; 0x64 - e46: f000 f817 bl 0xe78 - e4a: 2065 mov r0, #101 ; 0x65 - e4c: f000 f814 bl 0xe78 - e50: 206d mov r0, #109 ; 0x6d - e52: e00c b 0xe6e - e54: 2065 mov r0, #101 ; 0x65 - e56: f000 f80f bl 0xe78 - e5a: 2072 mov r0, #114 ; 0x72 - e5c: f000 f80c bl 0xe78 - e60: 2072 mov r0, #114 ; 0x72 - e62: f000 f809 bl 0xe78 - e66: 206f mov r0, #111 ; 0x6f - e68: f000 f806 bl 0xe78 - e6c: 2072 mov r0, #114 ; 0x72 - e6e: f000 f803 bl 0xe78 - e72: b001 add sp, #4 - e74: bd00 pop {pc} - -; Called via Thumb-BL to transfer control to the downloaded image - e76: 4708 bx r1 - -; UART character output routine - e78: b081 sub sp, #4 - e7a: 4669 mov r1, sp - e7c: 7008 strb r0, [r1, #0] - e7e: 4818 ldr r0, =0x83ff00 ; via 0xee0 - e80: 6800 ldr r0, [r0, #0] - e82: 7940 ldrb r0, [r0, #5] - e84: 0980 lsr r0, r0, #6 - e86: d3fa bcc 0xe7e - e88: 4815 ldr r0, =0x83ff00 ; via 0xee0 - e8a: 6800 ldr r0, [r0, #0] - e8c: 4669 mov r1, sp - e8e: 7809 ldrb r1, [r1, #0] - e90: 7001 strb r1, [r0, #0] - e92: b001 add sp, #4 - e94: 46f7 mov pc, lr - - e96: 4812 ldr r0, =0x83ff00 ; via 0xee0 - e98: 6800 ldr r0, [r0, #0] - e9a: 7940 ldrb r0, [r0, #5] - e9c: 0840 lsr r0, r0, #1 - e9e: d3fa bcc 0xe96 - ea0: 480f ldr r0, =0x83ff00 ; via 0xee0 - ea2: 6800 ldr r0, [r0, #0] - ea4: 7800 ldrb r0, [r0, #0] - ea6: 4770 bx lr - -; UART character input with a timeout (number of LSR read tries passed -; in r0). Returns the character read if one was received, or 0xFF -; if timeout. - ea8: b083 sub sp, #12 ; 0xc - eaa: 9000 str r0, [sp, #0] - eac: 9800 ldr r0, [sp, #0] - eae: 9002 str r0, [sp, #8] - eb0: 480b ldr r0, =0x83ff00 ; via 0xee0 - eb2: 6800 ldr r0, [r0, #0] - eb4: 7940 ldrb r0, [r0, #5] - eb6: 0840 lsr r0, r0, #1 - eb8: d20c bcs 0xed4 - eba: 9802 ldr r0, [sp, #8] - ebc: 3801 sub r0, #1 - ebe: 9002 str r0, [sp, #8] - ec0: 9802 ldr r0, [sp, #8] - ec2: 2800 cmp r0, #0 - ec4: d101 bne 0xeca - ec6: 20ff mov r0, #255 ; 0xff - ec8: e007 b 0xeda - eca: 4805 ldr r0, =0x83ff00 ; via 0xee0 - ecc: 6800 ldr r0, [r0, #0] - ece: 7940 ldrb r0, [r0, #5] - ed0: 0840 lsr r0, r0, #1 - ed2: d3f2 bcc 0xeba - ed4: 484a ldr r0, =0x83ff00 ; via 0x1000 - ed6: 6800 ldr r0, [r0, #0] - ed8: 7800 ldrb r0, [r0, #0] - eda: b003 add sp, #12 ; 0xc - edc: 4770 bx lr - ede: 46c0 nop (mov r8, r8) - - ee0: 0083ff00 - ee4: ffff5800 - - ee8: b081 sub sp, #4 - eea: e001 b 0xef0 - eec: 9800 ldr r0, [sp, #0] - eee: 3801 sub r0, #1 - ef0: 9000 str r0, [sp, #0] - ef2: 4843 ldr r0, =0x83ff00 ; via 0x1000 - ef4: 6800 ldr r0, [r0, #0] - ef6: 7940 ldrb r0, [r0, #5] - ef8: 0840 lsr r0, r0, #1 - efa: d202 bcs 0xf02 - efc: 9800 ldr r0, [sp, #0] - efe: 2800 cmp r0, #0 - f00: dcf4 bgt 0xeec - f02: 9800 ldr r0, [sp, #0] - f04: 2800 cmp r0, #0 - f06: dd01 ble 0xf0c - f08: 2000 mov r0, #0 - f0a: e000 b 0xf0e - f0c: 2001 mov r0, #1 - f0e: b001 add sp, #4 - f10: 4770 bx lr - - f12: b082 sub sp, #8 - f14: 9000 str r0, [sp, #0] - f16: 4669 mov r1, sp - f18: 2000 mov r0, #0 - f1a: 7188 strb r0, [r1, #6] - f1c: 9900 ldr r1, [sp, #0] - f1e: 4839 ldr r0, =0xfffef000 ; via 0x1004 - f20: 8800 ldrh r0, [r0, #0] - f22: 8008 strh r0, [r1, #0] - f24: b002 add sp, #8 - f26: 4770 bx lr - - f28: 00800100 - -; This function (0xf2c) reprograms the UART selected by the 83FF00 -; var to the baud rate passed as arguments (div upper byte in R0, -; lower byte in R1) and flushes the Rx FIFO. - f2c: b081 sub sp, #4 - f2e: 466a mov r2, sp - f30: 7051 strb r1, [r2, #1] - f32: 4669 mov r1, sp - f34: 7008 strb r0, [r1, #0] - f36: 4934 ldr r1, =0xffff6000 ; via 0x1008 - f38: 2002 mov r0, #2 - f3a: 880a ldrh r2, [r1, #0] - f3c: 4310 orr r0, r2 - f3e: 8008 strh r0, [r1, #0] - f40: 4831 ldr r0, =0xffff6000 ; via 0x1008 - f42: 8801 ldrh r1, [r0, #0] - f44: 0849 lsr r1, r1, #1 - f46: 0049 lsl r1, r1, #1 - f48: 8001 strh r1, [r0, #0] - f4a: 492f ldr r1, =0xffff6000 ; via 0x1008 - f4c: 8808 ldrh r0, [r1, #0] - f4e: 2202 mov r2, #2 - f50: 4390 bic r0, r2 - f52: 8008 strh r0, [r1, #0] - f54: 482a ldr r0, =0x83ff00 ; via 0x1000 - f56: 6801 ldr r1, [r0, #0] - f58: 2007 mov r0, #7 - f5a: 7208 strb r0, [r1, #8] - f5c: 4828 ldr r0, =0x83ff00 ; via 0x1000 - f5e: 6801 ldr r1, [r0, #0] - f60: 20bf mov r0, #191 ; 0xbf - f62: 70c8 strb r0, [r1, #3] - f64: 4826 ldr r0, =0x83ff00 ; via 0x1000 - f66: 6800 ldr r0, [r0, #0] - f68: 1c80 add r0, r0, #2 - f6a: 2110 mov r1, #16 ; 0x10 - f6c: 8802 ldrh r2, [r0, #0] - f6e: 4311 orr r1, r2 - f70: 8001 strh r1, [r0, #0] - f72: 4823 ldr r0, =0x83ff00 ; via 0x1000 - f74: 6801 ldr r1, [r0, #0] - f76: 2080 mov r0, #128 ; 0x80 - f78: 70c8 strb r0, [r1, #3] - f7a: 4821 ldr r0, =0x83ff00 ; via 0x1000 - f7c: 6800 ldr r0, [r0, #0] - f7e: 2107 mov r1, #7 - f80: 7081 strb r1, [r0, #2] - f82: 481f ldr r0, =0x83ff00 ; via 0x1000 - f84: 6800 ldr r0, [r0, #0] - f86: 21bf mov r1, #191 ; 0xbf - f88: 70c1 strb r1, [r0, #3] - f8a: 481d ldr r0, =0x83ff00 ; via 0x1000 - f8c: 6801 ldr r1, [r0, #0] - f8e: 4668 mov r0, sp - f90: 7840 ldrb r0, [r0, #1] - f92: 7008 strb r0, [r1, #0] - f94: 481a ldr r0, =0x83ff00 ; via 0x1000 - f96: 6801 ldr r1, [r0, #0] - f98: 4668 mov r0, sp - f9a: 7800 ldrb r0, [r0, #0] - f9c: 7048 strb r0, [r1, #1] - f9e: 4818 ldr r0, =0x83ff00 ; via 0x1000 - fa0: 6801 ldr r1, [r0, #0] - fa2: 2003 mov r0, #3 - fa4: 70c8 strb r0, [r1, #3] - fa6: 4816 ldr r0, =0x83ff00 ; via 0x1000 - fa8: 6800 ldr r0, [r0, #0] - faa: 2100 mov r1, #0 - fac: 7201 strb r1, [r0, #8] - fae: 4814 ldr r0, =0x83ff00 ; via 0x1000 - fb0: 6800 ldr r0, [r0, #0] - fb2: 7940 ldrb r0, [r0, #5] - fb4: 0840 lsr r0, r0, #1 - fb6: d309 bcc 0xfcc - fb8: 4669 mov r1, sp - fba: 4811 ldr r0, =0x83ff00 ; via 0x1000 - fbc: 6800 ldr r0, [r0, #0] - fbe: 7800 ldrb r0, [r0, #0] - fc0: 7088 strb r0, [r1, #2] - fc2: 480f ldr r0, =0x83ff00 ; via 0x1000 - fc4: 6800 ldr r0, [r0, #0] - fc6: 7940 ldrb r0, [r0, #5] - fc8: 0840 lsr r0, r0, #1 - fca: d2f5 bcs 0xfb8 - fcc: b001 add sp, #4 - fce: 4770 bx lr - - fd0: 480a ldr r0, =0x83ff80 ; via 0xffc - fd2: 7800 ldrb r0, [r0, #0] - fd4: 4770 bx lr - - fd6: b500 push {lr} - fd8: b081 sub sp, #4 - fda: 4669 mov r1, sp - fdc: 7008 strb r0, [r1, #0] - fde: 4668 mov r0, sp - fe0: 7800 ldrb r0, [r0, #0] - fe2: f7ff ff49 bl 0xe78 - fe6: b001 add sp, #4 - fe8: bd00 pop {pc} - fea: b500 push {lr} - fec: f7ff ff53 bl 0xe96 - ff0: bd00 pop {pc} - ff2: 46c0 nop (mov r8, r8) - ff4: 3ce0 sub r4, #224 ; 0xe0 - ff6: 0080 lsl r0, r0, #2 - ff8: 0100 lsl r0, r0, #4 - ffa: 0080 lsl r0, r0, #2 - ffc: ff80 - ffe: 0083 lsl r3, r0, #2 - 1000: ff00 - 1002: 0083 lsl r3, r0, #2 - 1004: f000 fffe bl 0x2004 - 1008: 6000 str r0, [r0, #0] - 100a: ffff - 100c: 4700 bx r0 - 100e: 0000 lsl r0, r0, #0 - 1010: b08c sub sp, #48 ; 0x30 - 1012: 9101 str r1, [sp, #4] - 1014: 9000 str r0, [sp, #0] - 1016: 2000 mov r0, #0 - 1018: 9003 str r0, [sp, #12] ; 0xc - 101a: 9800 ldr r0, [sp, #0] - 101c: 7801 ldrb r1, [r0, #0] - 101e: 3001 add r0, #1 - 1020: 9000 str r0, [sp, #0] - 1022: 9105 str r1, [sp, #20] ; 0x14 - 1024: 9800 ldr r0, [sp, #0] - 1026: 7801 ldrb r1, [r0, #0] - 1028: 3001 add r0, #1 - 102a: 9000 str r0, [sp, #0] - 102c: 9801 ldr r0, [sp, #4] - 102e: 7001 strb r1, [r0, #0] - 1030: 2001 mov r0, #1 - 1032: 9004 str r0, [sp, #16] ; 0x10 - 1034: e0a8 b 0x1188 - 1036: 9804 ldr r0, [sp, #16] ; 0x10 - 1038: 3002 add r0, #2 - 103a: 9004 str r0, [sp, #16] ; 0x10 - 103c: 9800 ldr r0, [sp, #0] - 103e: 7801 ldrb r1, [r0, #0] - 1040: 3001 add r0, #1 - 1042: 9000 str r0, [sp, #0] - 1044: 4668 mov r0, sp - 1046: 8441 strh r1, [r0, #34] ; 0x22 - 1048: 9800 ldr r0, [sp, #0] - 104a: 7801 ldrb r1, [r0, #0] - 104c: 3001 add r0, #1 - 104e: 9000 str r0, [sp, #0] - 1050: 4668 mov r0, sp - 1052: 8401 strh r1, [r0, #32] ; 0x20 - 1054: 8c00 ldrh r0, [r0, #32] ; 0x20 - 1056: 4669 mov r1, sp - 1058: 8c49 ldrh r1, [r1, #34] ; 0x22 - 105a: 0209 lsl r1, r1, #8 - 105c: 1840 add r0, r0, r1 - 105e: 9901 ldr r1, [sp, #4] - 1060: 8088 strh r0, [r1, #4] - 1062: 9804 ldr r0, [sp, #16] ; 0x10 - 1064: 3001 add r0, #1 - 1066: 9004 str r0, [sp, #16] ; 0x10 - 1068: 9800 ldr r0, [sp, #0] - 106a: 7801 ldrb r1, [r0, #0] - 106c: 3001 add r0, #1 - 106e: 9000 str r0, [sp, #0] - 1070: 4668 mov r0, sp - 1072: 7601 strb r1, [r0, #24] ; 0x18 - 1074: 9901 ldr r1, [sp, #4] - 1076: 7e00 ldrb r0, [r0, #24] ; 0x18 - 1078: 7188 strb r0, [r1, #6] - 107a: 4668 mov r0, sp - 107c: 7e00 ldrb r0, [r0, #24] ; 0x18 - 107e: 2840 cmp r0, #64 ; 0x40 - 1080: dc00 bgt 0x1084 - 1082: e09f b 0x11c4 - 1084: 2004 mov r0, #4 - 1086: 9003 str r0, [sp, #12] ; 0xc - 1088: e09c b 0x11c4 - 108a: 9804 ldr r0, [sp, #16] ; 0x10 - 108c: 3002 add r0, #2 - 108e: 9004 str r0, [sp, #16] ; 0x10 - 1090: 9800 ldr r0, [sp, #0] - 1092: 7801 ldrb r1, [r0, #0] - 1094: 3001 add r0, #1 - 1096: 9000 str r0, [sp, #0] - 1098: 4668 mov r0, sp - 109a: 8441 strh r1, [r0, #34] ; 0x22 - 109c: 9800 ldr r0, [sp, #0] - 109e: 7801 ldrb r1, [r0, #0] - 10a0: 3001 add r0, #1 - 10a2: 9000 str r0, [sp, #0] - 10a4: 4668 mov r0, sp - 10a6: 8401 strh r1, [r0, #32] ; 0x20 - 10a8: 8c00 ldrh r0, [r0, #32] ; 0x20 - 10aa: 4669 mov r1, sp - 10ac: 8c49 ldrh r1, [r1, #34] ; 0x22 - 10ae: 0209 lsl r1, r1, #8 - 10b0: 1841 add r1, r0, r1 - 10b2: 9801 ldr r0, [sp, #4] - 10b4: 8081 strh r1, [r0, #4] - 10b6: 9804 ldr r0, [sp, #16] ; 0x10 - 10b8: 3001 add r0, #1 - 10ba: 9004 str r0, [sp, #16] ; 0x10 - 10bc: 9800 ldr r0, [sp, #0] - 10be: 7801 ldrb r1, [r0, #0] - 10c0: 3001 add r0, #1 - 10c2: 9000 str r0, [sp, #0] - 10c4: 4668 mov r0, sp - 10c6: 7601 strb r1, [r0, #24] ; 0x18 - 10c8: 9901 ldr r1, [sp, #4] - 10ca: 7e00 ldrb r0, [r0, #24] ; 0x18 - 10cc: 7188 strb r0, [r1, #6] - 10ce: 4668 mov r0, sp - 10d0: 7e00 ldrb r0, [r0, #24] ; 0x18 - 10d2: 2840 cmp r0, #64 ; 0x40 - 10d4: dcd6 bgt 0x1084 - 10d6: 9801 ldr r0, [sp, #4] - 10d8: 3008 add r0, #8 - 10da: 9007 str r0, [sp, #28] ; 0x1c - 10dc: 2000 mov r0, #0 - 10de: 9002 str r0, [sp, #8] - 10e0: 9902 ldr r1, [sp, #8] - 10e2: 4668 mov r0, sp - 10e4: 7e00 ldrb r0, [r0, #24] ; 0x18 - 10e6: 4281 cmp r1, r0 - 10e8: da6c bge 0x11c4 - 10ea: 9800 ldr r0, [sp, #0] - 10ec: 7801 ldrb r1, [r0, #0] - 10ee: 3001 add r0, #1 - 10f0: 9000 str r0, [sp, #0] - 10f2: 4668 mov r0, sp - 10f4: 84c1 strh r1, [r0, #38] ; 0x26 - 10f6: 9800 ldr r0, [sp, #0] - 10f8: 7801 ldrb r1, [r0, #0] - 10fa: 3001 add r0, #1 - 10fc: 9000 str r0, [sp, #0] - 10fe: 4668 mov r0, sp - 1100: 8481 strh r1, [r0, #36] ; 0x24 - 1102: 9807 ldr r0, [sp, #28] ; 0x1c - 1104: 1c81 add r1, r0, #2 - 1106: 9107 str r1, [sp, #28] ; 0x1c - 1108: 4669 mov r1, sp - 110a: 8c89 ldrh r1, [r1, #36] ; 0x24 - 110c: 466a mov r2, sp - 110e: 8cd2 ldrh r2, [r2, #38] ; 0x26 - 1110: 0212 lsl r2, r2, #8 - 1112: 1889 add r1, r1, r2 - 1114: 8001 strh r1, [r0, #0] - 1116: 9804 ldr r0, [sp, #16] ; 0x10 - 1118: 3002 add r0, #2 - 111a: 9004 str r0, [sp, #16] ; 0x10 - 111c: 9802 ldr r0, [sp, #8] - 111e: 3001 add r0, #1 - 1120: 9002 str r0, [sp, #8] - 1122: 9902 ldr r1, [sp, #8] - 1124: 4668 mov r0, sp - 1126: 7e00 ldrb r0, [r0, #24] ; 0x18 - 1128: 4281 cmp r1, r0 - 112a: dbde blt 0x10ea - 112c: e04a b 0x11c4 - 112e: 9804 ldr r0, [sp, #16] ; 0x10 - 1130: 3002 add r0, #2 - 1132: 9004 str r0, [sp, #16] ; 0x10 - 1134: 9800 ldr r0, [sp, #0] - 1136: 7801 ldrb r1, [r0, #0] - 1138: 3001 add r0, #1 - 113a: 9000 str r0, [sp, #0] - 113c: 4668 mov r0, sp - 113e: 8501 strh r1, [r0, #40] ; 0x28 - 1140: 9800 ldr r0, [sp, #0] - 1142: 7801 ldrb r1, [r0, #0] - 1144: 3001 add r0, #1 - 1146: 9000 str r0, [sp, #0] - 1148: 4668 mov r0, sp - 114a: 8541 strh r1, [r0, #42] ; 0x2a - 114c: 8d41 ldrh r1, [r0, #42] ; 0x2a - 114e: 8d00 ldrh r0, [r0, #40] ; 0x28 - 1150: 0200 lsl r0, r0, #8 - 1152: 1809 add r1, r1, r0 - 1154: 9801 ldr r0, [sp, #4] - 1156: 8081 strh r1, [r0, #4] - 1158: 9804 ldr r0, [sp, #16] ; 0x10 - 115a: 3002 add r0, #2 - 115c: 9004 str r0, [sp, #16] ; 0x10 - 115e: 9800 ldr r0, [sp, #0] - 1160: 7801 ldrb r1, [r0, #0] - 1162: 3001 add r0, #1 - 1164: 9000 str r0, [sp, #0] - 1166: 4668 mov r0, sp - 1168: 8581 strh r1, [r0, #44] ; 0x2c - 116a: 9800 ldr r0, [sp, #0] - 116c: 7801 ldrb r1, [r0, #0] - 116e: 3001 add r0, #1 - 1170: 9000 str r0, [sp, #0] - 1172: 4668 mov r0, sp - 1174: 85c1 strh r1, [r0, #46] ; 0x2e - 1176: 8dc1 ldrh r1, [r0, #46] ; 0x2e - 1178: 8d80 ldrh r0, [r0, #44] ; 0x2c - 117a: 0200 lsl r0, r0, #8 - 117c: 1808 add r0, r1, r0 - 117e: 9901 ldr r1, [sp, #4] - 1180: 80c8 strh r0, [r1, #6] - 1182: e01f b 0x11c4 - 1184: 2008 mov r0, #8 - 1186: e77e b 0x1086 - 1188: 9801 ldr r0, [sp, #4] - 118a: 7801 ldrb r1, [r0, #0] - 118c: 290a cmp r1, #10 ; 0xa - 118e: d8f9 bhi 0x1184 - 1190: a001 add r0, pc, #4 - 1192: 0089 lsl r1, r1, #2 - 1194: 5840 ldr r0, [r0, r1] - 1196: 4687 mov pc, r0 - 1198: 11c4 asr r4, r0, #7 - 119a: 0000 lsl r0, r0, #0 - 119c: 11c4 asr r4, r0, #7 - 119e: 0000 lsl r0, r0, #0 - 11a0: 11c4 asr r4, r0, #7 - 11a2: 0000 lsl r0, r0, #0 - 11a4: 11c4 asr r4, r0, #7 - 11a6: 0000 lsl r0, r0, #0 - 11a8: 11c4 asr r4, r0, #7 - 11aa: 0000 lsl r0, r0, #0 - 11ac: 11c4 asr r4, r0, #7 - 11ae: 0000 lsl r0, r0, #0 - 11b0: 11c4 asr r4, r0, #7 - 11b2: 0000 lsl r0, r0, #0 - 11b4: 1036 asr r6, r6, #32 - 11b6: 0000 lsl r0, r0, #0 - 11b8: 108a asr r2, r1, #2 - 11ba: 0000 lsl r0, r0, #0 - 11bc: 11c4 asr r4, r0, #7 - 11be: 0000 lsl r0, r0, #0 - 11c0: 112e asr r6, r5, #4 - 11c2: 0000 lsl r0, r0, #0 - 11c4: 9905 ldr r1, [sp, #20] ; 0x14 - 11c6: 9804 ldr r0, [sp, #16] ; 0x10 - 11c8: 4281 cmp r1, r0 - 11ca: d001 beq 0x11d0 - 11cc: 2004 mov r0, #4 - 11ce: 9003 str r0, [sp, #12] ; 0xc - 11d0: 9803 ldr r0, [sp, #12] ; 0xc - 11d2: b00c add sp, #48 ; 0x30 - 11d4: 4770 bx lr - 11d6: b089 sub sp, #36 ; 0x24 - 11d8: 9101 str r1, [sp, #4] - 11da: 9000 str r0, [sp, #0] - 11dc: 2000 mov r0, #0 - 11de: 9003 str r0, [sp, #12] ; 0xc - 11e0: 9801 ldr r0, [sp, #4] - 11e2: 1c41 add r1, r0, #1 - 11e4: 9101 str r1, [sp, #4] - 11e6: 9005 str r0, [sp, #20] ; 0x14 - 11e8: 9801 ldr r0, [sp, #4] - 11ea: 1c41 add r1, r0, #1 - 11ec: 9101 str r1, [sp, #4] - 11ee: 9900 ldr r1, [sp, #0] - 11f0: 7809 ldrb r1, [r1, #0] - 11f2: 7001 strb r1, [r0, #0] - 11f4: 4669 mov r1, sp - 11f6: 2001 mov r0, #1 - 11f8: 7408 strb r0, [r1, #16] ; 0x10 - 11fa: 9801 ldr r0, [sp, #4] - 11fc: 1c41 add r1, r0, #1 - 11fe: 9101 str r1, [sp, #4] - 1200: 9900 ldr r1, [sp, #0] - 1202: 7849 ldrb r1, [r1, #1] - 1204: 7001 strb r1, [r0, #0] - 1206: 4669 mov r1, sp - 1208: 4668 mov r0, sp - 120a: 7c00 ldrb r0, [r0, #16] ; 0x10 - 120c: 3001 add r0, #1 - 120e: 7408 strb r0, [r1, #16] ; 0x10 - 1210: e0e4 b 0x13dc - 1212: 9800 ldr r0, [sp, #0] - 1214: 7840 ldrb r0, [r0, #1] - 1216: 2800 cmp r0, #0 - 1218: d000 beq 0x121c - 121a: e0fd b 0x1418 - 121c: 9801 ldr r0, [sp, #4] - 121e: 1c41 add r1, r0, #1 - 1220: 9101 str r1, [sp, #4] - 1222: 9900 ldr r1, [sp, #0] - 1224: 7909 ldrb r1, [r1, #4] - 1226: 7001 strb r1, [r0, #0] - 1228: 9801 ldr r0, [sp, #4] - 122a: 1c41 add r1, r0, #1 - 122c: 9101 str r1, [sp, #4] - 122e: 9900 ldr r1, [sp, #0] - 1230: 7949 ldrb r1, [r1, #5] - 1232: 7001 strb r1, [r0, #0] - 1234: 9801 ldr r0, [sp, #4] - 1236: 1c41 add r1, r0, #1 - 1238: 9101 str r1, [sp, #4] - 123a: 9900 ldr r1, [sp, #0] - 123c: 7989 ldrb r1, [r1, #6] - 123e: 7001 strb r1, [r0, #0] - 1240: 4668 mov r0, sp - 1242: 7c00 ldrb r0, [r0, #16] ; 0x10 - 1244: 3003 add r0, #3 - 1246: 4669 mov r1, sp - 1248: 7408 strb r0, [r1, #16] ; 0x10 - 124a: e0e5 b 0x1418 - 124c: 9800 ldr r0, [sp, #0] - 124e: 7840 ldrb r0, [r0, #1] - 1250: 2800 cmp r0, #0 - 1252: d000 beq 0x1256 - 1254: e0e0 b 0x1418 - 1256: 9801 ldr r0, [sp, #4] - 1258: 1c41 add r1, r0, #1 - 125a: 9101 str r1, [sp, #4] - 125c: 9900 ldr r1, [sp, #0] - 125e: 7909 ldrb r1, [r1, #4] - 1260: 7001 strb r1, [r0, #0] - 1262: 4668 mov r0, sp - 1264: 7c00 ldrb r0, [r0, #16] ; 0x10 - 1266: 3001 add r0, #1 - 1268: e7ed b 0x1246 - 126a: 9800 ldr r0, [sp, #0] - 126c: 7840 ldrb r0, [r0, #1] - 126e: 2800 cmp r0, #0 - 1270: d000 beq 0x1274 - 1272: e0d1 b 0x1418 - 1274: e7ef b 0x1256 - 1276: 9800 ldr r0, [sp, #0] - 1278: 7840 ldrb r0, [r0, #1] - 127a: 2800 cmp r0, #0 - 127c: d000 beq 0x1280 - 127e: e0cb b 0x1418 - 1280: e7e9 b 0x1256 - 1282: 9800 ldr r0, [sp, #0] - 1284: 7840 ldrb r0, [r0, #1] - 1286: 2800 cmp r0, #0 - 1288: d000 beq 0x128c - 128a: e0c5 b 0x1418 - 128c: 4669 mov r1, sp - 128e: 9800 ldr r0, [sp, #0] - 1290: 8880 ldrh r0, [r0, #4] - 1292: 8408 strh r0, [r1, #32] ; 0x20 - 1294: 9801 ldr r0, [sp, #4] - 1296: 1c41 add r1, r0, #1 - 1298: 9101 str r1, [sp, #4] - 129a: 4669 mov r1, sp - 129c: 8c09 ldrh r1, [r1, #32] ; 0x20 - 129e: 0409 lsl r1, r1, #16 - 12a0: 0e09 lsr r1, r1, #24 - 12a2: 0209 lsl r1, r1, #8 - 12a4: 1209 asr r1, r1, #8 - 12a6: 7001 strb r1, [r0, #0] - 12a8: 9801 ldr r0, [sp, #4] - 12aa: 1c41 add r1, r0, #1 - 12ac: 9101 str r1, [sp, #4] - 12ae: 4669 mov r1, sp - 12b0: 8c09 ldrh r1, [r1, #32] ; 0x20 - 12b2: 0609 lsl r1, r1, #24 - 12b4: 0e09 lsr r1, r1, #24 - 12b6: 7001 strb r1, [r0, #0] - 12b8: 4669 mov r1, sp - 12ba: 9800 ldr r0, [sp, #0] - 12bc: 88c0 ldrh r0, [r0, #6] - 12be: 8408 strh r0, [r1, #32] ; 0x20 - 12c0: 9801 ldr r0, [sp, #4] - 12c2: 1c41 add r1, r0, #1 - 12c4: 9101 str r1, [sp, #4] - 12c6: 4669 mov r1, sp - 12c8: 8c09 ldrh r1, [r1, #32] ; 0x20 - 12ca: 0409 lsl r1, r1, #16 - 12cc: 0e09 lsr r1, r1, #24 - 12ce: 0209 lsl r1, r1, #8 - 12d0: 1209 asr r1, r1, #8 - 12d2: 7001 strb r1, [r0, #0] - 12d4: 9801 ldr r0, [sp, #4] - 12d6: 1c41 add r1, r0, #1 - 12d8: 9101 str r1, [sp, #4] - 12da: 4669 mov r1, sp - 12dc: 8c09 ldrh r1, [r1, #32] ; 0x20 - 12de: 0609 lsl r1, r1, #24 - 12e0: 0e09 lsr r1, r1, #24 - 12e2: 7001 strb r1, [r0, #0] - 12e4: 4668 mov r0, sp - 12e6: 7c00 ldrb r0, [r0, #16] ; 0x10 - 12e8: 3004 add r0, #4 - 12ea: e7ac b 0x1246 - 12ec: 9800 ldr r0, [sp, #0] - 12ee: 7840 ldrb r0, [r0, #1] - 12f0: 2800 cmp r0, #0 - 12f2: d000 beq 0x12f6 - 12f4: e090 b 0x1418 - 12f6: e7ae b 0x1256 - 12f8: 9800 ldr r0, [sp, #0] - 12fa: 7840 ldrb r0, [r0, #1] - 12fc: 2800 cmp r0, #0 - 12fe: d000 beq 0x1302 - 1300: e08a b 0x1418 - 1302: 4669 mov r1, sp - 1304: 4668 mov r0, sp - 1306: 7c00 ldrb r0, [r0, #16] ; 0x10 - 1308: 3001 add r0, #1 - 130a: 7408 strb r0, [r1, #16] ; 0x10 - 130c: 4668 mov r0, sp - 130e: 9900 ldr r1, [sp, #0] - 1310: 7909 ldrb r1, [r1, #4] - 1312: 7601 strb r1, [r0, #24] ; 0x18 - 1314: 9801 ldr r0, [sp, #4] - 1316: 1c41 add r1, r0, #1 - 1318: 9101 str r1, [sp, #4] - 131a: 4669 mov r1, sp - 131c: 7e09 ldrb r1, [r1, #24] ; 0x18 - 131e: 7001 strb r1, [r0, #0] - 1320: 4668 mov r0, sp - 1322: 7e00 ldrb r0, [r0, #24] ; 0x18 - 1324: 2840 cmp r0, #64 ; 0x40 - 1326: dd01 ble 0x132c - 1328: 2004 mov r0, #4 - 132a: e055 b 0x13d8 - 132c: 9800 ldr r0, [sp, #0] - 132e: 3006 add r0, #6 - 1330: 9007 str r0, [sp, #28] ; 0x1c - 1332: 2000 mov r0, #0 - 1334: 9002 str r0, [sp, #8] - 1336: 9902 ldr r1, [sp, #8] - 1338: 4668 mov r0, sp - 133a: 7e00 ldrb r0, [r0, #24] ; 0x18 - 133c: 4281 cmp r1, r0 - 133e: da6b bge 0x1418 - 1340: 9801 ldr r0, [sp, #4] - 1342: 1c41 add r1, r0, #1 - 1344: 9101 str r1, [sp, #4] - 1346: 9907 ldr r1, [sp, #28] ; 0x1c - 1348: 8809 ldrh r1, [r1, #0] - 134a: 0409 lsl r1, r1, #16 - 134c: 0e09 lsr r1, r1, #24 - 134e: 0209 lsl r1, r1, #8 - 1350: 1209 asr r1, r1, #8 - 1352: 7001 strb r1, [r0, #0] - 1354: 9807 ldr r0, [sp, #28] ; 0x1c - 1356: 8801 ldrh r1, [r0, #0] - 1358: 3002 add r0, #2 - 135a: 9007 str r0, [sp, #28] ; 0x1c - 135c: 0608 lsl r0, r1, #24 - 135e: 0e01 lsr r1, r0, #24 - 1360: 9801 ldr r0, [sp, #4] - 1362: 1c42 add r2, r0, #1 - 1364: 9201 str r2, [sp, #4] - 1366: 7001 strb r1, [r0, #0] - 1368: 4669 mov r1, sp - 136a: 4668 mov r0, sp - 136c: 7c00 ldrb r0, [r0, #16] ; 0x10 - 136e: 3002 add r0, #2 - 1370: 7408 strb r0, [r1, #16] ; 0x10 - 1372: 9802 ldr r0, [sp, #8] - 1374: 3001 add r0, #1 - 1376: 9002 str r0, [sp, #8] - 1378: 9902 ldr r1, [sp, #8] - 137a: 4668 mov r0, sp - 137c: 7e00 ldrb r0, [r0, #24] ; 0x18 - 137e: 4281 cmp r1, r0 - 1380: dbde blt 0x1340 - 1382: e049 b 0x1418 - 1384: 9800 ldr r0, [sp, #0] - 1386: 7840 ldrb r0, [r0, #1] - 1388: 2800 cmp r0, #0 - 138a: d145 bne 0x1418 - 138c: 4669 mov r1, sp - 138e: 9800 ldr r0, [sp, #0] - 1390: 8880 ldrh r0, [r0, #4] - 1392: 8408 strh r0, [r1, #32] ; 0x20 - 1394: 9801 ldr r0, [sp, #4] - 1396: 1c41 add r1, r0, #1 - 1398: 9101 str r1, [sp, #4] - 139a: 4669 mov r1, sp - 139c: 8c09 ldrh r1, [r1, #32] ; 0x20 - 139e: 0409 lsl r1, r1, #16 - 13a0: 0e09 lsr r1, r1, #24 - 13a2: 0209 lsl r1, r1, #8 - 13a4: 1209 asr r1, r1, #8 - 13a6: 7001 strb r1, [r0, #0] - 13a8: 9801 ldr r0, [sp, #4] - 13aa: 1c41 add r1, r0, #1 - 13ac: 9101 str r1, [sp, #4] - 13ae: 4669 mov r1, sp - 13b0: 8c09 ldrh r1, [r1, #32] ; 0x20 - 13b2: 0609 lsl r1, r1, #24 - 13b4: 0e09 lsr r1, r1, #24 - 13b6: 7001 strb r1, [r0, #0] - 13b8: 4668 mov r0, sp - 13ba: 9900 ldr r1, [sp, #0] - 13bc: 88c9 ldrh r1, [r1, #6] - 13be: 8401 strh r1, [r0, #32] ; 0x20 - 13c0: 9901 ldr r1, [sp, #4] - 13c2: 1c48 add r0, r1, #1 - 13c4: 9001 str r0, [sp, #4] - 13c6: 4668 mov r0, sp - 13c8: 8c00 ldrh r0, [r0, #32] ; 0x20 - 13ca: 0400 lsl r0, r0, #16 - 13cc: 0e00 lsr r0, r0, #24 - 13ce: 0200 lsl r0, r0, #8 - 13d0: 1200 asr r0, r0, #8 - 13d2: 7008 strb r0, [r1, #0] - 13d4: e77e b 0x12d4 - 13d6: 2008 mov r0, #8 - 13d8: 9003 str r0, [sp, #12] ; 0xc - 13da: e01d b 0x1418 - 13dc: 9800 ldr r0, [sp, #0] - 13de: 7800 ldrb r0, [r0, #0] - 13e0: 280a cmp r0, #10 ; 0xa - 13e2: d8f8 bhi 0x13d6 - 13e4: a101 add r1, pc, #4 - 13e6: 0080 lsl r0, r0, #2 - 13e8: 5808 ldr r0, [r1, r0] - 13ea: 4687 mov pc, r0 - 13ec: 1212 asr r2, r2, #8 - 13ee: 0000 lsl r0, r0, #0 - 13f0: 124c asr r4, r1, #9 - 13f2: 0000 lsl r0, r0, #0 - 13f4: 126a asr r2, r5, #9 - 13f6: 0000 lsl r0, r0, #0 - 13f8: 1276 asr r6, r6, #9 - 13fa: 0000 lsl r0, r0, #0 - 13fc: 1418 asr r0, r3, #16 - 13fe: 0000 lsl r0, r0, #0 - 1400: 1282 asr r2, r0, #10 - 1402: 0000 lsl r0, r0, #0 - 1404: 12ec asr r4, r5, #11 - 1406: 0000 lsl r0, r0, #0 - 1408: 12f8 asr r0, r7, #11 - 140a: 0000 lsl r0, r0, #0 - 140c: 1418 asr r0, r3, #16 - 140e: 0000 lsl r0, r0, #0 - 1410: 1384 asr r4, r0, #14 - 1412: 0000 lsl r0, r0, #0 - 1414: 1418 asr r0, r3, #16 - 1416: 0000 lsl r0, r0, #0 - 1418: 9805 ldr r0, [sp, #20] ; 0x14 - 141a: 4669 mov r1, sp - 141c: 7c09 ldrb r1, [r1, #16] ; 0x10 - 141e: 7001 strb r1, [r0, #0] - 1420: 9803 ldr r0, [sp, #12] ; 0xc - 1422: b009 add sp, #36 ; 0x24 - 1424: 4770 bx lr - 1426: 0000 lsl r0, r0, #0 - 1428: b500 push {lr} - 142a: b083 sub sp, #12 ; 0xc - 142c: 9101 str r1, [sp, #4] - 142e: 4669 mov r1, sp - 1430: 7008 strb r0, [r1, #0] - 1432: 2000 mov r0, #0 - 1434: 9002 str r0, [sp, #8] - 1436: e073 b 0x1520 - 1438: 4668 mov r0, sp - 143a: 7800 ldrb r0, [r0, #0] - 143c: 28aa cmp r0, #170 ; 0xaa - 143e: d106 bne 0x144e - 1440: 4965 ldr r1, =0x83ff10 ; via 0x15d8 - 1442: 4865 ldr r0, =0x83ff10 ; via 0x15d8 - 1444: 6800 ldr r0, [r0, #0] - 1446: 3001 add r0, #1 - 1448: 07c0 lsl r0, r0, #31 - 144a: 0fc0 lsr r0, r0, #31 - 144c: e013 b 0x1476 - 144e: 4862 ldr r0, =0x83ff10 ; via 0x15d8 - 1450: 6800 ldr r0, [r0, #0] - 1452: 2800 cmp r0, #0 - 1454: d06b beq 0x152e - 1456: 4961 ldr r1, =0x83ff04 ; via 0x15dc - 1458: 9801 ldr r0, [sp, #4] - 145a: 3001 add r0, #1 - 145c: 6008 str r0, [r1, #0] - 145e: 4960 ldr r1, =0x83ff0e ; via 0x15e0 - 1460: 2000 mov r0, #0 - 1462: 7008 strb r0, [r1, #0] - 1464: 495f ldr r1, =0x83ff0c ; via 0x15e4 - 1466: 4668 mov r0, sp - 1468: 7800 ldrb r0, [r0, #0] - 146a: 8008 strh r0, [r1, #0] - 146c: 495a ldr r1, =0x83ff10 ; via 0x15d8 - 146e: 2000 mov r0, #0 - 1470: 6008 str r0, [r1, #0] - 1472: 495d ldr r1, =0x83ff08 ; via 0x15e8 - 1474: 2001 mov r0, #1 - 1476: 6008 str r0, [r1, #0] - 1478: e059 b 0x152e - 147a: 4668 mov r0, sp - 147c: 7800 ldrb r0, [r0, #0] - 147e: 28aa cmp r0, #170 ; 0xaa - 1480: d113 bne 0x14aa - 1482: 4855 ldr r0, =0x83ff10 ; via 0x15d8 - 1484: 6800 ldr r0, [r0, #0] - 1486: 2800 cmp r0, #0 - 1488: d00b beq 0x14a2 - 148a: 4954 ldr r1, =0x83ff04 ; via 0x15dc - 148c: 6808 ldr r0, [r1, #0] - 148e: 1c42 add r2, r0, #1 - 1490: 600a str r2, [r1, #0] - 1492: 4669 mov r1, sp - 1494: 7809 ldrb r1, [r1, #0] - 1496: 7001 strb r1, [r0, #0] - 1498: 4951 ldr r1, =0x83ff0e ; via 0x15e0 - 149a: 7808 ldrb r0, [r1, #0] - 149c: 3001 add r0, #1 - 149e: 7008 strb r0, [r1, #0] - 14a0: e013 b 0x14ca - 14a2: 2101 mov r1, #1 - 14a4: 484c ldr r0, =0x83ff10 ; via 0x15d8 - 14a6: 6001 str r1, [r0, #0] - 14a8: e01c b 0x14e4 - 14aa: 484b ldr r0, =0x83ff10 ; via 0x15d8 - 14ac: 6800 ldr r0, [r0, #0] - 14ae: 2800 cmp r0, #0 - 14b0: d00d beq 0x14ce - 14b2: 494a ldr r1, =0x83ff04 ; via 0x15dc - 14b4: 9801 ldr r0, [sp, #4] - 14b6: 3001 add r0, #1 - 14b8: 6008 str r0, [r1, #0] - 14ba: 4849 ldr r0, =0x83ff0e ; via 0x15e0 - 14bc: 2100 mov r1, #0 - 14be: 7001 strb r1, [r0, #0] - 14c0: 4948 ldr r1, =0x83ff0c ; via 0x15e4 - 14c2: 4668 mov r0, sp - 14c4: 7800 ldrb r0, [r0, #0] - 14c6: 3001 add r0, #1 - 14c8: 8008 strh r0, [r1, #0] - 14ca: 2100 mov r1, #0 - 14cc: e7ea b 0x14a4 - 14ce: 4843 ldr r0, =0x83ff04 ; via 0x15dc - 14d0: 6801 ldr r1, [r0, #0] - 14d2: 1c4a add r2, r1, #1 - 14d4: 6002 str r2, [r0, #0] - 14d6: 4668 mov r0, sp - 14d8: 7800 ldrb r0, [r0, #0] - 14da: 7008 strb r0, [r1, #0] - 14dc: 4940 ldr r1, =0x83ff0e ; via 0x15e0 - 14de: 7808 ldrb r0, [r1, #0] - 14e0: 3001 add r0, #1 - 14e2: 7008 strb r0, [r1, #0] - 14e4: 483f ldr r0, =0x83ff0c ; via 0x15e4 - 14e6: 8801 ldrh r1, [r0, #0] - 14e8: 3901 sub r1, #1 - 14ea: 8001 strh r1, [r0, #0] - 14ec: 483d ldr r0, =0x83ff0c ; via 0x15e4 - 14ee: 8800 ldrh r0, [r0, #0] - 14f0: 2800 cmp r0, #0 - 14f2: d11c bne 0x152e - 14f4: 9901 ldr r1, [sp, #4] - 14f6: 483a ldr r0, =0x83ff0e ; via 0x15e0 - 14f8: 7800 ldrb r0, [r0, #0] - 14fa: 7008 strb r0, [r1, #0] - 14fc: 2001 mov r0, #1 - 14fe: 9002 str r0, [sp, #8] - 1500: 4839 ldr r0, =0x83ff08 ; via 0x15e8 - 1502: 2100 mov r1, #0 - 1504: 6001 str r1, [r0, #0] - 1506: 4834 ldr r0, =0x83ff10 ; via 0x15d8 - 1508: 6001 str r1, [r0, #0] - 150a: 9801 ldr r0, [sp, #4] - 150c: 7800 ldrb r0, [r0, #0] - 150e: 2801 cmp r0, #1 - 1510: d10d bne 0x152e - 1512: 9801 ldr r0, [sp, #4] - 1514: 7840 ldrb r0, [r0, #1] - 1516: 28dd cmp r0, #221 ; 0xdd - 1518: d109 bne 0x152e - 151a: f7ff fb03 bl 0xb24 - 151e: e006 b 0x152e - 1520: 4831 ldr r0, =0x83ff08 ; via 0x15e8 - 1522: 6800 ldr r0, [r0, #0] - 1524: 2800 cmp r0, #0 - 1526: d087 beq 0x1438 - 1528: 3801 sub r0, #1 - 152a: 2800 cmp r0, #0 - 152c: d0a5 beq 0x147a - 152e: 9802 ldr r0, [sp, #8] - 1530: b003 add sp, #12 ; 0xc - 1532: bd00 pop {pc} - 1534: b086 sub sp, #24 ; 0x18 - 1536: 9202 str r2, [sp, #8] - 1538: 9101 str r1, [sp, #4] - 153a: 9000 str r0, [sp, #0] - 153c: 9801 ldr r0, [sp, #4] - 153e: 3001 add r0, #1 - 1540: 9004 str r0, [sp, #16] ; 0x10 - 1542: 9800 ldr r0, [sp, #0] - 1544: 1c41 add r1, r0, #1 - 1546: 9100 str r1, [sp, #0] - 1548: 9005 str r0, [sp, #20] ; 0x14 - 154a: 9901 ldr r1, [sp, #4] - 154c: 20aa mov r0, #170 ; 0xaa - 154e: 7008 strb r0, [r1, #0] - 1550: 9801 ldr r0, [sp, #4] - 1552: 3002 add r0, #2 - 1554: 9001 str r0, [sp, #4] - 1556: 9902 ldr r1, [sp, #8] - 1558: 2000 mov r0, #0 - 155a: 8008 strh r0, [r1, #0] - 155c: 4669 mov r1, sp - 155e: 8188 strh r0, [r1, #12] ; 0xc - 1560: 4668 mov r0, sp - 1562: 8981 ldrh r1, [r0, #12] ; 0xc - 1564: 9805 ldr r0, [sp, #20] ; 0x14 - 1566: 7800 ldrb r0, [r0, #0] - 1568: 4281 cmp r1, r0 - 156a: da23 bge 0x15b4 - 156c: 9800 ldr r0, [sp, #0] - 156e: 7800 ldrb r0, [r0, #0] - 1570: 28aa cmp r0, #170 ; 0xaa - 1572: d108 bne 0x1586 - 1574: 9801 ldr r0, [sp, #4] - 1576: 1c41 add r1, r0, #1 - 1578: 9101 str r1, [sp, #4] - 157a: 21aa mov r1, #170 ; 0xaa - 157c: 7001 strb r1, [r0, #0] - 157e: 9902 ldr r1, [sp, #8] - 1580: 8808 ldrh r0, [r1, #0] - 1582: 3001 add r0, #1 - 1584: 8008 strh r0, [r1, #0] - 1586: 9800 ldr r0, [sp, #0] - 1588: 7801 ldrb r1, [r0, #0] - 158a: 3001 add r0, #1 - 158c: 9000 str r0, [sp, #0] - 158e: 9801 ldr r0, [sp, #4] - 1590: 1c42 add r2, r0, #1 - 1592: 9201 str r2, [sp, #4] - 1594: 7001 strb r1, [r0, #0] - 1596: 9902 ldr r1, [sp, #8] - 1598: 8808 ldrh r0, [r1, #0] - 159a: 3001 add r0, #1 - 159c: 8008 strh r0, [r1, #0] - 159e: 4669 mov r1, sp - 15a0: 4668 mov r0, sp - 15a2: 8980 ldrh r0, [r0, #12] ; 0xc - 15a4: 3001 add r0, #1 - 15a6: 8188 strh r0, [r1, #12] ; 0xc - 15a8: 4668 mov r0, sp - 15aa: 8980 ldrh r0, [r0, #12] ; 0xc - 15ac: 9905 ldr r1, [sp, #20] ; 0x14 - 15ae: 7809 ldrb r1, [r1, #0] - 15b0: 4288 cmp r0, r1 - 15b2: dbdb blt 0x156c - 15b4: 9904 ldr r1, [sp, #16] ; 0x10 - 15b6: 9802 ldr r0, [sp, #8] - 15b8: 7800 ldrb r0, [r0, #0] - 15ba: 7008 strb r0, [r1, #0] - 15bc: 9902 ldr r1, [sp, #8] - 15be: 8808 ldrh r0, [r1, #0] - 15c0: 3002 add r0, #2 - 15c2: 8008 strh r0, [r1, #0] - 15c4: b006 add sp, #24 ; 0x18 - 15c6: 4770 bx lr - -; function zeroes out IRAM word vars at 0x83ff08 and 0x83ff10 - 15c8: 4907 ldr r1, =0x83ff08 ; via 0x15e8 - 15ca: 2000 mov r0, #0 - 15cc: 6008 str r0, [r1, #0] - 15ce: 4802 ldr r0, =0x83ff10 ; via 0x15d8 - 15d0: 2100 mov r1, #0 - 15d2: 6001 str r1, [r0, #0] - 15d4: 4770 bx lr - 15d6: 46c0 nop (mov r8, r8) - - 15d8: 0083ff10 - 15dc: 0083ff04 - 15e0: 0083ff0e - 15e4: 0083ff0c - 15e8: 0083ff08 - - 15ec: b082 sub sp, #8 - 15ee: 9101 str r1, [sp, #4] - 15f0: 9000 str r0, [sp, #0] - 15f2: 9901 ldr r1, [sp, #4] - 15f4: 2000 mov r0, #0 - 15f6: 7008 strb r0, [r1, #0] - 15f8: 9801 ldr r0, [sp, #4] - 15fa: 2100 mov r1, #0 - 15fc: 7041 strb r1, [r0, #1] - 15fe: 9801 ldr r0, [sp, #4] - 1600: 2102 mov r1, #2 - 1602: 7101 strb r1, [r0, #4] - 1604: 9801 ldr r0, [sp, #4] - 1606: 2106 mov r1, #6 - 1608: 7141 strb r1, [r0, #5] - 160a: 9801 ldr r0, [sp, #4] - 160c: 2102 mov r1, #2 - 160e: 7181 strb r1, [r0, #6] - 1610: b002 add sp, #8 - 1612: 4770 bx lr - - 1614: b500 push {lr} - 1616: b084 sub sp, #16 ; 0x10 - 1618: 466b mov r3, sp - 161a: 721a strb r2, [r3, #8] - 161c: 9101 str r1, [sp, #4] - 161e: 9000 str r0, [sp, #0] - 1620: 9901 ldr r1, [sp, #4] - 1622: 2009 mov r0, #9 - 1624: 7008 strb r0, [r1, #0] - 1626: e015 b 0x1654 - 1628: 9801 ldr r0, [sp, #4] - 162a: 2100 mov r1, #0 - 162c: 7041 strb r1, [r0, #1] - 162e: 9901 ldr r1, [sp, #4] - 1630: 4668 mov r0, sp - 1632: 8940 ldrh r0, [r0, #10] ; 0xa - 1634: 8088 strh r0, [r1, #4] - 1636: 9901 ldr r1, [sp, #4] - 1638: 4668 mov r0, sp - 163a: 8980 ldrh r0, [r0, #12] ; 0xc - 163c: 80c8 strh r0, [r1, #6] - 163e: e01e b 0x167e - 1640: 2101 mov r1, #1 - 1642: e004 b 0x164e - 1644: 2103 mov r1, #3 - 1646: e002 b 0x164e - 1648: 2105 mov r1, #5 - 164a: e000 b 0x164e - 164c: 2106 mov r1, #6 - 164e: 9801 ldr r0, [sp, #4] - 1650: 7041 strb r1, [r0, #1] - 1652: e014 b 0x167e - 1654: 200a mov r0, #10 ; 0xa - 1656: 4468 add r0, sp - 1658: a903 add r1, sp, #12 ; 0xc - 165a: 466a mov r2, sp - 165c: 7a12 ldrb r2, [r2, #8] - 165e: f000 fb71 bl 0x1d44 - 1662: 2800 cmp r0, #0 - 1664: d0e0 beq 0x1628 - 1666: 3801 sub r0, #1 - 1668: 2800 cmp r0, #0 - 166a: d0e9 beq 0x1640 - 166c: 3801 sub r0, #1 - 166e: 2800 cmp r0, #0 - 1670: d0e8 beq 0x1644 - 1672: 3801 sub r0, #1 - 1674: 2800 cmp r0, #0 - 1676: d0e7 beq 0x1648 - 1678: 3801 sub r0, #1 - 167a: 2800 cmp r0, #0 - 167c: d0e6 beq 0x164c - 167e: b004 add sp, #16 ; 0x10 - 1680: bd00 pop {pc} - 1682: b084 sub sp, #16 ; 0x10 - 1684: 9101 str r1, [sp, #4] - 1686: 9000 str r0, [sp, #0] - 1688: 9901 ldr r1, [sp, #4] - 168a: 200a mov r0, #10 ; 0xa - 168c: 7008 strb r0, [r1, #0] - 168e: 9801 ldr r0, [sp, #4] - 1690: 2100 mov r1, #0 - 1692: 7041 strb r1, [r0, #1] - 1694: 4669 mov r1, sp - 1696: 9800 ldr r0, [sp, #0] - 1698: 8880 ldrh r0, [r0, #4] - 169a: 8108 strh r0, [r1, #8] - 169c: 9800 ldr r0, [sp, #0] - 169e: 88c0 ldrh r0, [r0, #6] - 16a0: 8148 strh r0, [r1, #10] ; 0xa - 16a2: 4668 mov r0, sp - 16a4: 8941 ldrh r1, [r0, #10] ; 0xa - 16a6: 8900 ldrh r0, [r0, #8] - 16a8: 0400 lsl r0, r0, #16 - 16aa: 1808 add r0, r1, r0 - 16ac: 9003 str r0, [sp, #12] ; 0xc - 16ae: 9803 ldr r0, [sp, #12] ; 0xc - 16b0: b004 add sp, #16 ; 0x10 - 16b2: 4770 bx lr - 16b4: b085 sub sp, #20 ; 0x14 - 16b6: 9303 str r3, [sp, #12] ; 0xc - 16b8: 9202 str r2, [sp, #8] - 16ba: 9101 str r1, [sp, #4] - 16bc: 4669 mov r1, sp - 16be: 7008 strb r0, [r1, #0] - 16c0: 48ea ldr r0, =0x83ff19 ; via 0x1a6c - 16c2: 7809 ldrb r1, [r1, #0] - 16c4: 7802 ldrb r2, [r0, #0] - 16c6: 1889 add r1, r1, r2 - 16c8: 7001 strb r1, [r0, #0] - 16ca: 48e9 ldr r0, =0x83ff1a ; via 0x1a70 - 16cc: 7800 ldrb r0, [r0, #0] - 16ce: 2800 cmp r0, #0 - 16d0: d00e beq 0x16f0 - 16d2: 48e8 ldr r0, =0x83ff26 ; via 0x1a74 - 16d4: 4669 mov r1, sp - 16d6: 780a ldrb r2, [r1, #0] - 16d8: 8801 ldrh r1, [r0, #0] - 16da: 1851 add r1, r2, r1 - 16dc: 8001 strh r1, [r0, #0] - 16de: 9903 ldr r1, [sp, #12] ; 0xc - 16e0: 48e4 ldr r0, =0x83ff26 ; via 0x1a74 - 16e2: 8800 ldrh r0, [r0, #0] - 16e4: 8008 strh r0, [r1, #0] - 16e6: 9801 ldr r0, [sp, #4] - 16e8: 2100 mov r1, #0 - 16ea: 6001 str r1, [r0, #0] - 16ec: 2000 mov r0, #0 - 16ee: e009 b 0x1704 - 16f0: 9902 ldr r1, [sp, #8] - 16f2: 6808 ldr r0, [r1, #0] - 16f4: 3002 add r0, #2 - 16f6: 6008 str r0, [r1, #0] - 16f8: 49de ldr r1, =0x83ff26 ; via 0x1a74 - 16fa: 4668 mov r0, sp - 16fc: 7800 ldrb r0, [r0, #0] - 16fe: 0200 lsl r0, r0, #8 - 1700: 8008 strh r0, [r1, #0] - 1702: 2001 mov r0, #1 - 1704: 9004 str r0, [sp, #16] ; 0x10 - 1706: 2001 mov r0, #1 - 1708: 49d9 ldr r1, =0x83ff1a ; via 0x1a70 - 170a: 7809 ldrb r1, [r1, #0] - 170c: 4388 bic r0, r1 - 170e: 49d8 ldr r1, =0x83ff1a ; via 0x1a70 - 1710: 7008 strb r0, [r1, #0] - 1712: 48d9 ldr r0, =0x83ff24 ; via 0x1a78 - 1714: 7801 ldrb r1, [r0, #0] - 1716: 3901 sub r1, #1 - 1718: 7001 strb r1, [r0, #0] - 171a: 48d7 ldr r0, =0x83ff24 ; via 0x1a78 - 171c: 7800 ldrb r0, [r0, #0] - 171e: 2800 cmp r0, #0 - 1720: d102 bne 0x1728 - 1722: 48d6 ldr r0, =0x83ff20 ; via 0x1a7c - 1724: 2106 mov r1, #6 - 1726: 6001 str r1, [r0, #0] - 1728: 9804 ldr r0, [sp, #16] ; 0x10 - 172a: b005 add sp, #20 ; 0x14 - 172c: 46f7 mov pc, lr - 172e: b083 sub sp, #12 ; 0xc - 1730: 9101 str r1, [sp, #4] - 1732: 4669 mov r1, sp - 1734: 7008 strb r0, [r1, #0] - 1736: 2001 mov r0, #1 - 1738: 9002 str r0, [sp, #8] - 173a: 48d1 ldr r0, =0x83ff1b ; via 0x1a80 - 173c: 7800 ldrb r0, [r0, #0] - 173e: 2800 cmp r0, #0 - 1740: d10a bne 0x1758 - 1742: 4668 mov r0, sp - 1744: 7800 ldrb r0, [r0, #0] - 1746: 2853 cmp r0, #83 ; 0x53 - 1748: d102 bne 0x1750 - 174a: 48cd ldr r0, =0x83ff1b ; via 0x1a80 - 174c: 2101 mov r1, #1 - 174e: e01a b 0x1786 - 1750: 2101 mov r1, #1 - 1752: 9801 ldr r0, [sp, #4] - 1754: 6001 str r1, [r0, #0] - 1756: e03b b 0x17d0 - 1758: 49c9 ldr r1, =0x83ff1b ; via 0x1a80 - 175a: 2000 mov r0, #0 - 175c: 7008 strb r0, [r1, #0] - 175e: 4668 mov r0, sp - 1760: 7800 ldrb r0, [r0, #0] - 1762: 2830 cmp r0, #48 ; 0x30 - 1764: d111 bne 0x178a - 1766: 48c7 ldr r0, =0x83ff18 ; via 0x1a84 - 1768: 7800 ldrb r0, [r0, #0] - 176a: 2800 cmp r0, #0 - 176c: d006 beq 0x177c - 176e: 9901 ldr r1, [sp, #4] - 1770: 2001 mov r0, #1 - 1772: 6008 str r0, [r1, #0] - 1774: 49c3 ldr r1, =0x83ff18 ; via 0x1a84 - 1776: 2000 mov r0, #0 - 1778: 7008 strb r0, [r1, #0] - 177a: e02a b 0x17d2 - 177c: 48bf ldr r0, =0x83ff20 ; via 0x1a7c - 177e: 2102 mov r1, #2 - 1780: 6001 str r1, [r0, #0] - 1782: 48ef ldr r0, =0x83ff1c ; via 0x1b40 - 1784: 2100 mov r1, #0 - 1786: 7001 strb r1, [r0, #0] - 1788: e024 b 0x17d4 - 178a: 4668 mov r0, sp - 178c: 7800 ldrb r0, [r0, #0] - 178e: 2833 cmp r0, #51 ; 0x33 - 1790: d105 bne 0x179e - 1792: 48bc ldr r0, =0x83ff18 ; via 0x1a84 - 1794: 7800 ldrb r0, [r0, #0] - 1796: 2800 cmp r0, #0 - 1798: d0da beq 0x1750 - 179a: 2004 mov r0, #4 - 179c: e00c b 0x17b8 - 179e: 4668 mov r0, sp - 17a0: 7800 ldrb r0, [r0, #0] - 17a2: 2837 cmp r0, #55 ; 0x37 - 17a4: d10e bne 0x17c4 - 17a6: 48b7 ldr r0, =0x83ff18 ; via 0x1a84 - 17a8: 7800 ldrb r0, [r0, #0] - 17aa: 2800 cmp r0, #0 - 17ac: d103 bne 0x17b6 - 17ae: 9901 ldr r1, [sp, #4] - 17b0: 2001 mov r0, #1 - 17b2: 6008 str r0, [r1, #0] - 17b4: e00c b 0x17d0 - 17b6: 2003 mov r0, #3 - 17b8: 49b0 ldr r1, =0x83ff20 ; via 0x1a7c - 17ba: 6008 str r0, [r1, #0] - 17bc: 2000 mov r0, #0 - 17be: 49e0 ldr r1, =0x83ff1c ; via 0x1b40 - 17c0: 7008 strb r0, [r1, #0] - 17c2: e007 b 0x17d4 - 17c4: 9901 ldr r1, [sp, #4] - 17c6: 2001 mov r0, #1 - 17c8: 6008 str r0, [r1, #0] - 17ca: 48ae ldr r0, =0x83ff18 ; via 0x1a84 - 17cc: 2100 mov r1, #0 - 17ce: 7001 strb r1, [r0, #0] - 17d0: 2000 mov r0, #0 - 17d2: 9002 str r0, [sp, #8] - 17d4: 9802 ldr r0, [sp, #8] - 17d6: b003 add sp, #12 ; 0xc - 17d8: 46f7 mov pc, lr - 17da: b083 sub sp, #12 ; 0xc - 17dc: 9101 str r1, [sp, #4] - 17de: 4669 mov r1, sp - 17e0: 7008 strb r0, [r1, #0] - 17e2: 2001 mov r0, #1 - 17e4: 9002 str r0, [sp, #8] - 17e6: 49d7 ldr r1, =0x830 ; via 0x1b44 - 17e8: 48d5 ldr r0, =0x83ff1c ; via 0x1b40 - 17ea: 7800 ldrb r0, [r0, #0] - 17ec: 0080 lsl r0, r0, #2 - 17ee: 5808 ldr r0, [r1, r0] - 17f0: 4669 mov r1, sp - 17f2: 7809 ldrb r1, [r1, #0] - 17f4: 4281 cmp r1, r0 - 17f6: d10d bne 0x1814 - 17f8: 49d1 ldr r1, =0x83ff1c ; via 0x1b40 - 17fa: 7808 ldrb r0, [r1, #0] - 17fc: 3001 add r0, #1 - 17fe: 7008 strb r0, [r1, #0] - 1800: 48cf ldr r0, =0x83ff1c ; via 0x1b40 - 1802: 7800 ldrb r0, [r0, #0] - 1804: 2807 cmp r0, #7 - 1806: d10d bne 0x1824 - 1808: 489c ldr r0, =0x83ff20 ; via 0x1a7c - 180a: 2101 mov r1, #1 - 180c: 6001 str r1, [r0, #0] - 180e: 489d ldr r0, =0x83ff18 ; via 0x1a84 - 1810: 7001 strb r1, [r0, #0] - 1812: e007 b 0x1824 - 1814: 9801 ldr r0, [sp, #4] - 1816: 2101 mov r1, #1 - 1818: 6001 str r1, [r0, #0] - 181a: 4998 ldr r1, =0x83ff20 ; via 0x1a7c - 181c: 2001 mov r0, #1 - 181e: 6008 str r0, [r1, #0] - 1820: 2000 mov r0, #0 - 1822: 9002 str r0, [sp, #8] - 1824: 9802 ldr r0, [sp, #8] - 1826: b003 add sp, #12 ; 0xc - 1828: 46f7 mov pc, lr - 182a: b083 sub sp, #12 ; 0xc - 182c: 9101 str r1, [sp, #4] - 182e: 4669 mov r1, sp - 1830: 7008 strb r0, [r1, #0] - 1832: 2001 mov r0, #1 - 1834: 9002 str r0, [sp, #8] - 1836: 49c4 ldr r1, =0x84c ; via 0x1b48 - 1838: 48c1 ldr r0, =0x83ff1c ; via 0x1b40 - 183a: 7800 ldrb r0, [r0, #0] - 183c: 0080 lsl r0, r0, #2 - 183e: 5808 ldr r0, [r1, r0] - 1840: 4669 mov r1, sp - 1842: 7809 ldrb r1, [r1, #0] - 1844: 4281 cmp r1, r0 - 1846: d112 bne 0x186e - 1848: 49bd ldr r1, =0x83ff1c ; via 0x1b40 - 184a: 7808 ldrb r0, [r1, #0] - 184c: 3001 add r0, #1 - 184e: 7008 strb r0, [r1, #0] - 1850: 48bb ldr r0, =0x83ff1c ; via 0x1b40 - 1852: 7800 ldrb r0, [r0, #0] - 1854: 2806 cmp r0, #6 - 1856: d114 bne 0x1882 - 1858: 9801 ldr r0, [sp, #4] - 185a: 2102 mov r1, #2 - 185c: 6001 str r1, [r0, #0] - 185e: 4887 ldr r0, =0x83ff20 ; via 0x1a7c - 1860: 2101 mov r1, #1 - 1862: 6001 str r1, [r0, #0] - 1864: 4887 ldr r0, =0x83ff18 ; via 0x1a84 - 1866: 2100 mov r1, #0 - 1868: 7001 strb r1, [r0, #0] - 186a: 2000 mov r0, #0 - 186c: e008 b 0x1880 - 186e: 9801 ldr r0, [sp, #4] - 1870: 2101 mov r1, #1 - 1872: 6001 str r1, [r0, #0] - 1874: 4981 ldr r1, =0x83ff20 ; via 0x1a7c - 1876: 2001 mov r0, #1 - 1878: 6008 str r0, [r1, #0] - 187a: 4982 ldr r1, =0x83ff18 ; via 0x1a84 - 187c: 2000 mov r0, #0 - 187e: 7008 strb r0, [r1, #0] - 1880: 9002 str r0, [sp, #8] - 1882: 9802 ldr r0, [sp, #8] - 1884: b003 add sp, #12 ; 0xc - 1886: 46f7 mov pc, lr - 1888: b081 sub sp, #4 - 188a: 4669 mov r1, sp - 188c: 7008 strb r0, [r1, #0] - 188e: 497a ldr r1, =0x83ff24 ; via 0x1a78 - 1890: 4668 mov r0, sp - 1892: 7800 ldrb r0, [r0, #0] - 1894: 3801 sub r0, #1 - 1896: 7008 strb r0, [r1, #0] - 1898: 4874 ldr r0, =0x83ff19 ; via 0x1a6c - 189a: 4669 mov r1, sp - 189c: 7809 ldrb r1, [r1, #0] - 189e: 7001 strb r1, [r0, #0] - 18a0: 48a7 ldr r0, =0x83ff1c ; via 0x1b40 - 18a2: 2100 mov r1, #0 - 18a4: 7001 strb r1, [r0, #0] - 18a6: 48e3 ldr r0, =0x83ff14 ; via 0x1c34 - 18a8: 6001 str r1, [r0, #0] - 18aa: 4874 ldr r0, =0x83ff20 ; via 0x1a7c - 18ac: 2105 mov r1, #5 - 18ae: 6001 str r1, [r0, #0] - 18b0: b001 add sp, #4 - 18b2: 46f7 mov pc, lr - 18b4: b084 sub sp, #16 ; 0x10 - 18b6: 9202 str r2, [sp, #8] - 18b8: 9101 str r1, [sp, #4] - 18ba: 4669 mov r1, sp - 18bc: 7008 strb r0, [r1, #0] - 18be: 2001 mov r0, #1 - 18c0: 9003 str r0, [sp, #12] ; 0xc - 18c2: 496d ldr r1, =0x83ff24 ; via 0x1a78 - 18c4: 7808 ldrb r0, [r1, #0] - 18c6: 3801 sub r0, #1 - 18c8: 7008 strb r0, [r1, #0] - 18ca: 486b ldr r0, =0x83ff24 ; via 0x1a78 - 18cc: 7800 ldrb r0, [r0, #0] - 18ce: 2800 cmp r0, #0 - 18d0: d026 beq 0x1920 - 18d2: 4866 ldr r0, =0x83ff19 ; via 0x1a6c - 18d4: 4669 mov r1, sp - 18d6: 780a ldrb r2, [r1, #0] - 18d8: 7801 ldrb r1, [r0, #0] - 18da: 1851 add r1, r2, r1 - 18dc: 7001 strb r1, [r0, #0] - 18de: 4998 ldr r1, =0x83ff1c ; via 0x1b40 - 18e0: 7808 ldrb r0, [r1, #0] - 18e2: 3001 add r0, #1 - 18e4: 7008 strb r0, [r1, #0] - 18e6: 49d3 ldr r1, =0x83ff14 ; via 0x1c34 - 18e8: 2204 mov r2, #4 - 18ea: 4895 ldr r0, =0x83ff1c ; via 0x1b40 - 18ec: 7800 ldrb r0, [r0, #0] - 18ee: 1a10 sub r0, r2, r0 - 18f0: 00c2 lsl r2, r0, #3 - 18f2: 4668 mov r0, sp - 18f4: 7800 ldrb r0, [r0, #0] - 18f6: 4090 lsl r0, r2 - 18f8: 680a ldr r2, [r1, #0] - 18fa: 1880 add r0, r0, r2 - 18fc: 6008 str r0, [r1, #0] - 18fe: 4890 ldr r0, =0x83ff1c ; via 0x1b40 - 1900: 7800 ldrb r0, [r0, #0] - 1902: 2804 cmp r0, #4 - 1904: d117 bne 0x1936 - 1906: 9902 ldr r1, [sp, #8] - 1908: 48ca ldr r0, =0x83ff14 ; via 0x1c34 - 190a: 6800 ldr r0, [r0, #0] - 190c: 3802 sub r0, #2 - 190e: 6008 str r0, [r1, #0] - 1910: 485a ldr r0, =0x83ff20 ; via 0x1a7c - 1912: 2100 mov r1, #0 - 1914: 6001 str r1, [r0, #0] - 1916: 4856 ldr r0, =0x83ff1a ; via 0x1a70 - 1918: 7001 strb r1, [r0, #0] - 191a: 4889 ldr r0, =0x83ff1c ; via 0x1b40 - 191c: 7001 strb r1, [r0, #0] - 191e: e00a b 0x1936 - 1920: 9801 ldr r0, [sp, #4] - 1922: 2101 mov r1, #1 - 1924: 6001 str r1, [r0, #0] - 1926: 4955 ldr r1, =0x83ff20 ; via 0x1a7c - 1928: 2001 mov r0, #1 - 192a: 6008 str r0, [r1, #0] - 192c: 4855 ldr r0, =0x83ff18 ; via 0x1a84 - 192e: 2100 mov r1, #0 - 1930: 7001 strb r1, [r0, #0] - 1932: 2000 mov r0, #0 - 1934: 9003 str r0, [sp, #12] ; 0xc - 1936: 9803 ldr r0, [sp, #12] ; 0xc - 1938: b004 add sp, #16 ; 0x10 - 193a: 46f7 mov pc, lr - 193c: b083 sub sp, #12 ; 0xc - 193e: 9101 str r1, [sp, #4] - 1940: 4669 mov r1, sp - 1942: 7008 strb r0, [r1, #0] - 1944: 2001 mov r0, #1 - 1946: 9002 str r0, [sp, #8] - 1948: 494c ldr r1, =0x83ff20 ; via 0x1a7c - 194a: 6008 str r0, [r1, #0] - 194c: 20ff mov r0, #255 ; 0xff - 194e: 4669 mov r1, sp - 1950: 7809 ldrb r1, [r1, #0] - 1952: 4388 bic r0, r1 - 1954: 4945 ldr r1, =0x83ff19 ; via 0x1a6c - 1956: 7809 ldrb r1, [r1, #0] - 1958: 4281 cmp r1, r0 - 195a: d007 beq 0x196c - 195c: 9801 ldr r0, [sp, #4] - 195e: 2101 mov r1, #1 - 1960: 6001 str r1, [r0, #0] - 1962: 4848 ldr r0, =0x83ff18 ; via 0x1a84 - 1964: 2100 mov r1, #0 - 1966: 7001 strb r1, [r0, #0] - 1968: 2000 mov r0, #0 - 196a: 9002 str r0, [sp, #8] - 196c: 9802 ldr r0, [sp, #8] - 196e: b003 add sp, #12 ; 0xc - 1970: 46f7 mov pc, lr - 1972: b085 sub sp, #20 ; 0x14 - 1974: 466b mov r3, sp - 1976: 719a strb r2, [r3, #6] - 1978: 466a mov r2, sp - 197a: 8091 strh r1, [r2, #4] - 197c: 9000 str r0, [sp, #0] - 197e: 9800 ldr r0, [sp, #0] - 1980: 9002 str r0, [sp, #8] - 1982: 4669 mov r1, sp - 1984: 4668 mov r0, sp - 1986: 8880 ldrh r0, [r0, #4] - 1988: 8208 strh r0, [r1, #16] ; 0x10 - 198a: 4668 mov r0, sp - 198c: 8a00 ldrh r0, [r0, #16] ; 0x10 - 198e: 2800 cmp r0, #0 - 1990: d01e beq 0x19d0 - 1992: 49e3 ldr r1, =0x864 ; via 0x1d20 - 1994: 4668 mov r0, sp - 1996: 7980 ldrb r0, [r0, #6] - 1998: 0080 lsl r0, r0, #2 - 199a: 5808 ldr r0, [r1, r0] - 199c: 7941 ldrb r1, [r0, #5] - 199e: 4668 mov r0, sp - 19a0: 7301 strb r1, [r0, #12] ; 0xc - 19a2: 7b00 ldrb r0, [r0, #12] ; 0xc - 19a4: 0980 lsr r0, r0, #6 - 19a6: d3f4 bcc 0x1992 - 19a8: 49dd ldr r1, =0x864 ; via 0x1d20 - 19aa: 4668 mov r0, sp - 19ac: 7980 ldrb r0, [r0, #6] - 19ae: 0080 lsl r0, r0, #2 - 19b0: 5809 ldr r1, [r1, r0] - 19b2: 9802 ldr r0, [sp, #8] - 19b4: 7800 ldrb r0, [r0, #0] - 19b6: 7008 strb r0, [r1, #0] - 19b8: 9802 ldr r0, [sp, #8] - 19ba: 3001 add r0, #1 - 19bc: 9002 str r0, [sp, #8] - 19be: 4669 mov r1, sp - 19c0: 4668 mov r0, sp - 19c2: 8a00 ldrh r0, [r0, #16] ; 0x10 - 19c4: 3801 sub r0, #1 - 19c6: 8208 strh r0, [r1, #16] ; 0x10 - 19c8: 4668 mov r0, sp - 19ca: 8a00 ldrh r0, [r0, #16] ; 0x10 - 19cc: 2800 cmp r0, #0 - 19ce: d1e0 bne 0x1992 - 19d0: b005 add sp, #20 ; 0x14 - 19d2: 46f7 mov pc, lr - 19d4: b082 sub sp, #8 - 19d6: 4669 mov r1, sp - 19d8: 7008 strb r0, [r1, #0] - 19da: 2000 mov r0, #0 - 19dc: 8088 strh r0, [r1, #4] - 19de: 4668 mov r0, sp - 19e0: 8881 ldrh r1, [r0, #4] - 19e2: 20ff mov r0, #255 ; 0xff - 19e4: 30f5 add r0, #245 ; 0xf5 - 19e6: 4281 cmp r1, r0 - 19e8: da21 bge 0x1a2e - 19ea: 4669 mov r1, sp - 19ec: 4668 mov r0, sp - 19ee: 8880 ldrh r0, [r0, #4] - 19f0: 3001 add r0, #1 - 19f2: 8088 strh r0, [r1, #4] - 19f4: 48ca ldr r0, =0x864 ; via 0x1d20 - 19f6: 7809 ldrb r1, [r1, #0] - 19f8: 0089 lsl r1, r1, #2 - 19fa: 5840 ldr r0, [r0, r1] - 19fc: 7940 ldrb r0, [r0, #5] - 19fe: 4669 mov r1, sp - 1a00: 7048 strb r0, [r1, #1] - 1a02: 4668 mov r0, sp - 1a04: 7840 ldrb r0, [r0, #1] - 1a06: 0840 lsr r0, r0, #1 - 1a08: d30b bcc 0x1a22 - 1a0a: 49c5 ldr r1, =0x864 ; via 0x1d20 - 1a0c: 4668 mov r0, sp - 1a0e: 7800 ldrb r0, [r0, #0] - 1a10: 0080 lsl r0, r0, #2 - 1a12: 5808 ldr r0, [r1, r0] - 1a14: 7800 ldrb r0, [r0, #0] - 1a16: 0600 lsl r0, r0, #24 - 1a18: 0e00 lsr r0, r0, #24 - 1a1a: 4669 mov r1, sp - 1a1c: 7088 strb r0, [r1, #2] - 1a1e: 2000 mov r0, #0 - 1a20: 8088 strh r0, [r1, #4] - 1a22: 4668 mov r0, sp - 1a24: 8881 ldrh r1, [r0, #4] - 1a26: 20ff mov r0, #255 ; 0xff - 1a28: 30f5 add r0, #245 ; 0xf5 - 1a2a: 4281 cmp r1, r0 - 1a2c: dbdd blt 0x19ea - 1a2e: b002 add sp, #8 - 1a30: 4770 bx lr - 1a32: b500 push {lr} - 1a34: b08c sub sp, #48 ; 0x30 - 1a36: 466a mov r2, sp - 1a38: 7111 strb r1, [r2, #4] - 1a3a: 9000 str r0, [sp, #0] - 1a3c: 2001 mov r0, #1 - 1a3e: 9002 str r0, [sp, #8] - 1a40: 9800 ldr r0, [sp, #0] - 1a42: a904 add r1, sp, #16 ; 0x10 - 1a44: aa03 add r2, sp, #12 ; 0xc - 1a46: f7ff fd75 bl 0x1534 - 1a4a: 4668 mov r0, sp - 1a4c: 8980 ldrh r0, [r0, #12] ; 0xc - 1a4e: 2820 cmp r0, #32 ; 0x20 - 1a50: dd02 ble 0x1a58 - 1a52: 2000 mov r0, #0 - 1a54: 9002 str r0, [sp, #8] - 1a56: e006 b 0x1a66 - 1a58: a804 add r0, sp, #16 ; 0x10 - 1a5a: 4669 mov r1, sp - 1a5c: 8989 ldrh r1, [r1, #12] ; 0xc - 1a5e: 466a mov r2, sp - 1a60: 7912 ldrb r2, [r2, #4] - 1a62: f7ff ff86 bl 0x1972 - 1a66: 9802 ldr r0, [sp, #8] - 1a68: b00c add sp, #48 ; 0x30 - 1a6a: bd00 pop {pc} - 1a6c: ff19 - 1a6e: 0083 lsl r3, r0, #2 - 1a70: ff1a - 1a72: 0083 lsl r3, r0, #2 - 1a74: ff26 - 1a76: 0083 lsl r3, r0, #2 - 1a78: ff24 - 1a7a: 0083 lsl r3, r0, #2 - 1a7c: ff20 - 1a7e: 0083 lsl r3, r0, #2 - 1a80: ff1b - 1a82: 0083 lsl r3, r0, #2 - 1a84: ff18 - 1a86: 0083 lsl r3, r0, #2 - 1a88: b500 push {lr} - 1a8a: b084 sub sp, #16 ; 0x10 - 1a8c: 9101 str r1, [sp, #4] - 1a8e: 9000 str r0, [sp, #0] - 1a90: 4669 mov r1, sp - 1a92: 20ff mov r0, #255 ; 0xff - 1a94: 7308 strb r0, [r1, #12] ; 0xc - 1a96: 2000 mov r0, #0 - 1a98: 9002 str r0, [sp, #8] - 1a9a: 4669 mov r1, sp - 1a9c: 48a1 ldr r0, =0xffff5805 ; via 0x1d24 - 1a9e: 7800 ldrb r0, [r0, #0] - 1aa0: 7348 strb r0, [r1, #13] ; 0xd - 1aa2: 48a1 ldr r0, =0xffff5005 ; via 0x1d28 - 1aa4: 7800 ldrb r0, [r0, #0] - 1aa6: 7388 strb r0, [r1, #14] ; 0xe - 1aa8: 4668 mov r0, sp - 1aaa: 7b40 ldrb r0, [r0, #13] ; 0xd - 1aac: 0840 lsr r0, r0, #1 - 1aae: d206 bcs 0x1abe - 1ab0: 4668 mov r0, sp - 1ab2: 7b80 ldrb r0, [r0, #14] ; 0xe - 1ab4: 0840 lsr r0, r0, #1 - 1ab6: d202 bcs 0x1abe - 1ab8: 9801 ldr r0, [sp, #4] - 1aba: 2800 cmp r0, #0 - 1abc: d0ed beq 0x1a9a - 1abe: 4668 mov r0, sp - 1ac0: 7b40 ldrb r0, [r0, #13] ; 0xd - 1ac2: 0840 lsr r0, r0, #1 - 1ac4: d316 bcc 0x1af4 - 1ac6: 4669 mov r1, sp - 1ac8: 2000 mov r0, #0 - 1aca: 7308 strb r0, [r1, #12] ; 0xc - 1acc: 4994 ldr r1, =0x864 ; via 0x1d20 - 1ace: 4668 mov r0, sp - 1ad0: 7b00 ldrb r0, [r0, #12] ; 0xc - 1ad2: 0080 lsl r0, r0, #2 - 1ad4: 5808 ldr r0, [r1, r0] - 1ad6: 7800 ldrb r0, [r0, #0] - 1ad8: 0600 lsl r0, r0, #24 - 1ada: 0e00 lsr r0, r0, #24 - 1adc: 4669 mov r1, sp - 1ade: 73c8 strb r0, [r1, #15] ; 0xf - 1ae0: 4668 mov r0, sp - 1ae2: 7bc0 ldrb r0, [r0, #15] ; 0xf - 1ae4: 9900 ldr r1, [sp, #0] - 1ae6: f7ff fc9f bl 0x1428 - 1aea: 9002 str r0, [sp, #8] - 1aec: 9802 ldr r0, [sp, #8] - 1aee: 2800 cmp r0, #0 - 1af0: d11c bne 0x1b2c - 1af2: e018 b 0x1b26 - 1af4: 4668 mov r0, sp - 1af6: 7b80 ldrb r0, [r0, #14] ; 0xe - 1af8: 0840 lsr r0, r0, #1 - 1afa: d317 bcc 0x1b2c - 1afc: 4669 mov r1, sp - 1afe: 2001 mov r0, #1 - 1b00: 7308 strb r0, [r1, #12] ; 0xc - 1b02: 4987 ldr r1, =0x864 ; via 0x1d20 - 1b04: 4668 mov r0, sp - 1b06: 7b00 ldrb r0, [r0, #12] ; 0xc - 1b08: 0080 lsl r0, r0, #2 - 1b0a: 5808 ldr r0, [r1, r0] - 1b0c: 7800 ldrb r0, [r0, #0] - 1b0e: 0600 lsl r0, r0, #24 - 1b10: 0e01 lsr r1, r0, #24 - 1b12: 4668 mov r0, sp - 1b14: 73c1 strb r1, [r0, #15] ; 0xf - 1b16: 7bc0 ldrb r0, [r0, #15] ; 0xf - 1b18: 9900 ldr r1, [sp, #0] - 1b1a: f7ff fc85 bl 0x1428 - 1b1e: 9002 str r0, [sp, #8] - 1b20: 9802 ldr r0, [sp, #8] - 1b22: 2800 cmp r0, #0 - 1b24: d102 bne 0x1b2c - 1b26: 20ff mov r0, #255 ; 0xff - 1b28: 4669 mov r1, sp - 1b2a: 7308 strb r0, [r1, #12] ; 0xc - 1b2c: 9802 ldr r0, [sp, #8] - 1b2e: 2800 cmp r0, #0 - 1b30: d102 bne 0x1b38 - 1b32: 9801 ldr r0, [sp, #4] - 1b34: 2800 cmp r0, #0 - 1b36: d0b0 beq 0x1a9a - 1b38: 4668 mov r0, sp - 1b3a: 7b00 ldrb r0, [r0, #12] ; 0xc - 1b3c: b004 add sp, #16 ; 0x10 - 1b3e: bd00 pop {pc} - 1b40: ff1c - 1b42: 0083 lsl r3, r0, #2 - 1b44: 0830 lsr r0, r6, #32 - 1b46: 0000 lsl r0, r0, #0 - 1b48: 084c lsr r4, r1, #1 - 1b4a: 0000 lsl r0, r0, #0 - 1b4c: b500 push {lr} - 1b4e: b086 sub sp, #24 ; 0x18 - 1b50: 466b mov r3, sp - 1b52: 721a strb r2, [r3, #8] - 1b54: 9101 str r1, [sp, #4] - 1b56: 9000 str r0, [sp, #0] - 1b58: 2001 mov r0, #1 - 1b5a: 9004 str r0, [sp, #16] ; 0x10 - 1b5c: 9804 ldr r0, [sp, #16] ; 0x10 - 1b5e: 2800 cmp r0, #0 - 1b60: d05b beq 0x1c1a - 1b62: 496f ldr r1, =0x864 ; via 0x1d20 - 1b64: 4668 mov r0, sp - 1b66: 7a00 ldrb r0, [r0, #8] - 1b68: 0080 lsl r0, r0, #2 - 1b6a: 5808 ldr r0, [r1, r0] - 1b6c: 7941 ldrb r1, [r0, #5] - 1b6e: 4668 mov r0, sp - 1b70: 7301 strb r1, [r0, #12] ; 0xc - 1b72: 7b00 ldrb r0, [r0, #12] ; 0xc - 1b74: 0840 lsr r0, r0, #1 - 1b76: d3f4 bcc 0x1b62 - 1b78: 4969 ldr r1, =0x864 ; via 0x1d20 - 1b7a: 4668 mov r0, sp - 1b7c: 7a00 ldrb r0, [r0, #8] - 1b7e: 0080 lsl r0, r0, #2 - 1b80: 5808 ldr r0, [r1, r0] - 1b82: 7800 ldrb r0, [r0, #0] - 1b84: 0600 lsl r0, r0, #24 - 1b86: 0e01 lsr r1, r0, #24 - 1b88: 4668 mov r0, sp - 1b8a: 7341 strb r1, [r0, #13] ; 0xd - 1b8c: e02c b 0x1be8 - 1b8e: 4668 mov r0, sp - 1b90: 7b40 ldrb r0, [r0, #13] ; 0xd - 1b92: a905 add r1, sp, #20 ; 0x14 - 1b94: 9a00 ldr r2, [sp, #0] - 1b96: 9b01 ldr r3, [sp, #4] - 1b98: f7ff fd8c bl 0x16b4 - 1b9c: 9004 str r0, [sp, #16] ; 0x10 - 1b9e: e039 b 0x1c14 - 1ba0: 4668 mov r0, sp - 1ba2: 7b40 ldrb r0, [r0, #13] ; 0xd - 1ba4: a905 add r1, sp, #20 ; 0x14 - 1ba6: f7ff fdc2 bl 0x172e - 1baa: e7f7 b 0x1b9c - 1bac: 4668 mov r0, sp - 1bae: 7b40 ldrb r0, [r0, #13] ; 0xd - 1bb0: a905 add r1, sp, #20 ; 0x14 - 1bb2: f7ff fe12 bl 0x17da - 1bb6: e7f1 b 0x1b9c - 1bb8: 4668 mov r0, sp - 1bba: 7b40 ldrb r0, [r0, #13] ; 0xd - 1bbc: a905 add r1, sp, #20 ; 0x14 - 1bbe: f7ff fe34 bl 0x182a - 1bc2: e7eb b 0x1b9c - 1bc4: 4668 mov r0, sp - 1bc6: 7b40 ldrb r0, [r0, #13] ; 0xd - 1bc8: f7ff fe5e bl 0x1888 - 1bcc: e022 b 0x1c14 - 1bce: 4668 mov r0, sp - 1bd0: 7b40 ldrb r0, [r0, #13] ; 0xd - 1bd2: a905 add r1, sp, #20 ; 0x14 - 1bd4: 9a00 ldr r2, [sp, #0] - 1bd6: f7ff fe6d bl 0x18b4 - 1bda: e7df b 0x1b9c - 1bdc: 4668 mov r0, sp - 1bde: 7b40 ldrb r0, [r0, #13] ; 0xd - 1be0: a905 add r1, sp, #20 ; 0x14 - 1be2: f7ff feab bl 0x193c - 1be6: e7d9 b 0x1b9c - 1be8: 4850 ldr r0, =0x83ff20 ; via 0x1d2c - 1bea: 6800 ldr r0, [r0, #0] - 1bec: 2800 cmp r0, #0 - 1bee: d0ce beq 0x1b8e - 1bf0: 3801 sub r0, #1 - 1bf2: 2800 cmp r0, #0 - 1bf4: d0d4 beq 0x1ba0 - 1bf6: 3801 sub r0, #1 - 1bf8: 2800 cmp r0, #0 - 1bfa: d0d7 beq 0x1bac - 1bfc: 3801 sub r0, #1 - 1bfe: 2800 cmp r0, #0 - 1c00: d0da beq 0x1bb8 - 1c02: 3801 sub r0, #1 - 1c04: 2800 cmp r0, #0 - 1c06: d0dd beq 0x1bc4 - 1c08: 3801 sub r0, #1 - 1c0a: 2800 cmp r0, #0 - 1c0c: d0df beq 0x1bce - 1c0e: 3801 sub r0, #1 - 1c10: 2800 cmp r0, #0 - 1c12: d0e3 beq 0x1bdc - 1c14: 9804 ldr r0, [sp, #16] ; 0x10 - 1c16: 2800 cmp r0, #0 - 1c18: d1a3 bne 0x1b62 - 1c1a: 9805 ldr r0, [sp, #20] ; 0x14 - 1c1c: b006 add sp, #24 ; 0x18 - 1c1e: bd00 pop {pc} - 1c20: 4942 ldr r1, =0x83ff20 ; via 0x1d2c - 1c22: 2001 mov r0, #1 - 1c24: 6008 str r0, [r1, #0] - 1c26: 4842 ldr r0, =0x83ff1b ; via 0x1d30 - 1c28: 2100 mov r1, #0 - 1c2a: 7001 strb r1, [r0, #0] - 1c2c: 4841 ldr r0, =0x83ff18 ; via 0x1d34 - 1c2e: 7001 strb r1, [r0, #0] - 1c30: 4770 bx lr - 1c32: 46c0 nop (mov r8, r8) - - 1c34: 0083ff14 - -; UART initialization routine - 1c38: b081 sub sp, #4 -; MODEM UART - 1c3a: 483f ldr r0, =0xffff5800 ; via 0x1d38 - 1c3c: 9000 str r0, [sp, #0] -; switch to MCU control - 1c3e: 493f ldr r1, =0xffff6000 ; via 0x1d3c - 1c40: 2002 mov r0, #2 - 1c42: 880a ldrh r2, [r1, #0] - 1c44: 4310 orr r0, r2 - 1c46: 8008 strh r0, [r1, #0] - 1c48: 483c ldr r0, =0xffff6000 ; via 0x1d3c - 1c4a: 8801 ldrh r1, [r0, #0] - 1c4c: 0849 lsr r1, r1, #1 - 1c4e: 0049 lsl r1, r1, #1 - 1c50: 8001 strh r1, [r0, #0] - 1c52: 493a ldr r1, =0xffff6000 ; via 0x1d3c - 1c54: 8808 ldrh r0, [r1, #0] - 1c56: 2202 mov r2, #2 - 1c58: 4390 bic r0, r2 - 1c5a: 8008 strh r0, [r1, #0] -; MDR1 = reset/default state - 1c5c: 9900 ldr r1, [sp, #0] - 1c5e: 2007 mov r0, #7 - 1c60: 7208 strb r0, [r1, #8] -; LCR = BF - 1c62: 9900 ldr r1, [sp, #0] - 1c64: 20bf mov r0, #191 ; 0xbf - 1c66: 70c8 strb r0, [r1, #3] -; set ENHANCED_EN bit in EFR - 1c68: 9800 ldr r0, [sp, #0] - 1c6a: 1c81 add r1, r0, #2 - 1c6c: 2010 mov r0, #16 ; 0x10 - 1c6e: 880a ldrh r2, [r1, #0] - 1c70: 4310 orr r0, r2 - 1c72: 8008 strh r0, [r1, #0] -; LCR = 80 - 1c74: 9800 ldr r0, [sp, #0] - 1c76: 2180 mov r1, #128 ; 0x80 - 1c78: 70c1 strb r1, [r0, #3] -; FCR = 07 (enable and clear both FIFOs) - 1c7a: 9800 ldr r0, [sp, #0] - 1c7c: 2107 mov r1, #7 - 1c7e: 7081 strb r1, [r0, #2] -; LCR = BF - 1c80: 9800 ldr r0, [sp, #0] - 1c82: 21bf mov r1, #191 ; 0xbf - 1c84: 70c1 strb r1, [r0, #3] -; baud rate divisor set to 7 (115200 baud) - 1c86: 9800 ldr r0, [sp, #0] - 1c88: 2107 mov r1, #7 - 1c8a: 7001 strb r1, [r0, #0] - 1c8c: 9800 ldr r0, [sp, #0] - 1c8e: 2100 mov r1, #0 - 1c90: 7041 strb r1, [r0, #1] -; LCR = 03 (standard setting) - 1c92: 9800 ldr r0, [sp, #0] - 1c94: 2103 mov r1, #3 - 1c96: 70c1 strb r1, [r0, #3] -; MDR1 = UART mode - 1c98: 9800 ldr r0, [sp, #0] - 1c9a: 2100 mov r1, #0 - 1c9c: 7201 strb r1, [r0, #8] -; IrDA UART - same setup as for MODEM - 1c9e: 4828 ldr r0, =0xffff5000 ; via 0x1d40 - 1ca0: 9000 str r0, [sp, #0] - 1ca2: 9800 ldr r0, [sp, #0] - 1ca4: 2107 mov r1, #7 - 1ca6: 7201 strb r1, [r0, #8] - 1ca8: 9900 ldr r1, [sp, #0] - 1caa: 20bf mov r0, #191 ; 0xbf - 1cac: 70c8 strb r0, [r1, #3] - 1cae: 9800 ldr r0, [sp, #0] - 1cb0: 1c80 add r0, r0, #2 - 1cb2: 2110 mov r1, #16 ; 0x10 - 1cb4: 8802 ldrh r2, [r0, #0] - 1cb6: 4311 orr r1, r2 - 1cb8: 8001 strh r1, [r0, #0] - 1cba: 9800 ldr r0, [sp, #0] - 1cbc: 2180 mov r1, #128 ; 0x80 - 1cbe: 70c1 strb r1, [r0, #3] - 1cc0: 9800 ldr r0, [sp, #0] - 1cc2: 2107 mov r1, #7 - 1cc4: 7081 strb r1, [r0, #2] - 1cc6: 9800 ldr r0, [sp, #0] - 1cc8: 21bf mov r1, #191 ; 0xbf - 1cca: 70c1 strb r1, [r0, #3] - 1ccc: 9800 ldr r0, [sp, #0] - 1cce: 2107 mov r1, #7 - 1cd0: 7001 strb r1, [r0, #0] - 1cd2: 9800 ldr r0, [sp, #0] - 1cd4: 2100 mov r1, #0 - 1cd6: 7041 strb r1, [r0, #1] - 1cd8: 9900 ldr r1, [sp, #0] - 1cda: 2003 mov r0, #3 - 1cdc: 70c8 strb r0, [r1, #3] - 1cde: 9800 ldr r0, [sp, #0] - 1ce0: 2100 mov r1, #0 - 1ce2: 7201 strb r1, [r0, #8] - 1ce4: b001 add sp, #4 - 1ce6: 4770 bx lr - - 1ce8: b081 sub sp, #4 - 1cea: 4669 mov r1, sp - 1cec: 7008 strb r0, [r1, #0] - 1cee: 490c ldr r1, =0x864 ; via 0x1d20 - 1cf0: 4668 mov r0, sp - 1cf2: 7800 ldrb r0, [r0, #0] - 1cf4: 0080 lsl r0, r0, #2 - 1cf6: 5808 ldr r0, [r1, r0] - 1cf8: 7941 ldrb r1, [r0, #5] - 1cfa: 4668 mov r0, sp - 1cfc: 7041 strb r1, [r0, #1] - 1cfe: 7840 ldrb r0, [r0, #1] - 1d00: 09c0 lsr r0, r0, #7 - 1d02: d20b bcs 0x1d1c - 1d04: 4806 ldr r0, =0x864 ; via 0x1d20 - 1d06: 4669 mov r1, sp - 1d08: 7809 ldrb r1, [r1, #0] - 1d0a: 0089 lsl r1, r1, #2 - 1d0c: 5840 ldr r0, [r0, r1] - 1d0e: 7940 ldrb r0, [r0, #5] - 1d10: 4669 mov r1, sp - 1d12: 7048 strb r0, [r1, #1] - 1d14: 4668 mov r0, sp - 1d16: 7840 ldrb r0, [r0, #1] - 1d18: 09c0 lsr r0, r0, #7 - 1d1a: d3f3 bcc 0x1d04 - 1d1c: b001 add sp, #4 - 1d1e: 4770 bx lr - 1d20: 0864 lsr r4, r4, #1 - 1d22: 0000 lsl r0, r0, #0 - 1d24: 5805 ldr r5, [r0, r0] - 1d26: ffff - 1d28: 5005 str r5, [r0, r0] - 1d2a: ffff - 1d2c: ff20 - 1d2e: 0083 lsl r3, r0, #2 - 1d30: ff1b - 1d32: 0083 lsl r3, r0, #2 - 1d34: ff18 - 1d36: 0083 lsl r3, r0, #2 - 1d38: 5800 ldr r0, [r0, r0] - 1d3a: ffff - 1d3c: 6000 str r0, [r0, #0] - 1d3e: ffff - 1d40: 5000 str r0, [r0, r0] - 1d42: ffff - 1d44: b500 push {lr} - 1d46: b087 sub sp, #28 ; 0x1c - 1d48: 466b mov r3, sp - 1d4a: 721a strb r2, [r3, #8] - 1d4c: 9101 str r1, [sp, #4] - 1d4e: 9000 str r0, [sp, #0] - 1d50: 9900 ldr r1, [sp, #0] - 1d52: 2000 mov r0, #0 - 1d54: 8008 strh r0, [r1, #0] - 1d56: 9801 ldr r0, [sp, #4] - 1d58: 2100 mov r1, #0 - 1d5a: 8001 strh r1, [r0, #0] - 1d5c: 2000 mov r0, #0 - 1d5e: 9003 str r0, [sp, #12] ; 0xc - 1d60: f7ff ff5e bl 0x1c20 - 1d64: a805 add r0, sp, #20 ; 0x14 - 1d66: a906 add r1, sp, #24 ; 0x18 - 1d68: 466a mov r2, sp - 1d6a: 7a12 ldrb r2, [r2, #8] - 1d6c: f7ff feee bl 0x1b4c - 1d70: 9004 str r0, [sp, #16] ; 0x10 - 1d72: 9804 ldr r0, [sp, #16] ; 0x10 - 1d74: 2800 cmp r0, #0 - 1d76: d11f bne 0x1db8 - 1d78: 9803 ldr r0, [sp, #12] ; 0xc - 1d7a: 2800 cmp r0, #0 - 1d7c: d11c bne 0x1db8 - 1d7e: 9800 ldr r0, [sp, #0] - 1d80: 4669 mov r1, sp - 1d82: 8b0a ldrh r2, [r1, #24] ; 0x18 - 1d84: 8801 ldrh r1, [r0, #0] - 1d86: 1851 add r1, r2, r1 - 1d88: 8001 strh r1, [r0, #0] - 1d8a: 9905 ldr r1, [sp, #20] ; 0x14 - 1d8c: 4668 mov r0, sp - 1d8e: 8b00 ldrh r0, [r0, #24] ; 0x18 - 1d90: 8008 strh r0, [r1, #0] - 1d92: 9801 ldr r0, [sp, #4] - 1d94: 9905 ldr r1, [sp, #20] ; 0x14 - 1d96: 8809 ldrh r1, [r1, #0] - 1d98: 8802 ldrh r2, [r0, #0] - 1d9a: 1889 add r1, r1, r2 - 1d9c: 8001 strh r1, [r0, #0] - 1d9e: a805 add r0, sp, #20 ; 0x14 - 1da0: a906 add r1, sp, #24 ; 0x18 - 1da2: 466a mov r2, sp - 1da4: 7a12 ldrb r2, [r2, #8] - 1da6: f7ff fed1 bl 0x1b4c - 1daa: 9004 str r0, [sp, #16] ; 0x10 - 1dac: 9804 ldr r0, [sp, #16] ; 0x10 - 1dae: 2800 cmp r0, #0 - 1db0: d102 bne 0x1db8 - 1db2: 9803 ldr r0, [sp, #12] ; 0xc - 1db4: 2800 cmp r0, #0 - 1db6: d0e2 beq 0x1d7e - 1db8: 9804 ldr r0, [sp, #16] ; 0x10 - 1dba: 2801 cmp r0, #1 - 1dbc: d101 bne 0x1dc2 - 1dbe: 2004 mov r0, #4 - 1dc0: 9003 str r0, [sp, #12] ; 0xc - 1dc2: 9803 ldr r0, [sp, #12] ; 0xc - 1dc4: b007 add sp, #28 ; 0x1c - 1dc6: bd00 pop {pc} - 1dc8: b089 sub sp, #36 ; 0x24 - 1dca: 201a mov r0, #26 ; 0x1a - 1dcc: 9005 str r0, [sp, #20] ; 0x14 - 1dce: 2018 mov r0, #24 ; 0x18 - 1dd0: 9006 str r0, [sp, #24] ; 0x18 - 1dd2: 2000 mov r0, #0 - 1dd4: 9008 str r0, [sp, #32] ; 0x20 - 1dd6: 4669 mov r1, sp - 1dd8: 9805 ldr r0, [sp, #20] ; 0x14 - 1dda: 8800 ldrh r0, [r0, #0] - 1ddc: 8008 strh r0, [r1, #0] - 1dde: 9806 ldr r0, [sp, #24] ; 0x18 - 1de0: 8800 ldrh r0, [r0, #0] - 1de2: 8048 strh r0, [r1, #2] - 1de4: 4668 mov r0, sp - 1de6: 8841 ldrh r1, [r0, #2] - 1de8: 8800 ldrh r0, [r0, #0] - 1dea: 0400 lsl r0, r0, #16 - 1dec: 1808 add r0, r1, r0 - 1dee: 9001 str r0, [sp, #4] - 1df0: 9801 ldr r0, [sp, #4] - 1df2: 0200 lsl r0, r0, #8 - 1df4: 0a00 lsr r0, r0, #8 - 1df6: 0080 lsl r0, r0, #2 - 1df8: 3008 add r0, #8 - 1dfa: 9007 str r0, [sp, #28] ; 0x1c - 1dfc: 9807 ldr r0, [sp, #28] ; 0x1c - 1dfe: 3018 add r0, #24 ; 0x18 - 1e00: 9002 str r0, [sp, #8] - 1e02: 9802 ldr r0, [sp, #8] - 1e04: 9004 str r0, [sp, #16] ; 0x10 - 1e06: 9802 ldr r0, [sp, #8] - 1e08: 3002 add r0, #2 - 1e0a: 9003 str r0, [sp, #12] ; 0xc - 1e0c: 9803 ldr r0, [sp, #12] ; 0xc - 1e0e: 8801 ldrh r1, [r0, #0] - 1e10: 4806 ldr r0, =0xffff ; via 0x1e2c - 1e12: 4281 cmp r1, r0 - 1e14: d104 bne 0x1e20 - 1e16: 9804 ldr r0, [sp, #16] ; 0x10 - 1e18: 8800 ldrh r0, [r0, #0] - 1e1a: 4904 ldr r1, =0xffff ; via 0x1e2c - 1e1c: 4288 cmp r0, r1 - 1e1e: d001 beq 0x1e24 - 1e20: 2001 mov r0, #1 - 1e22: 9008 str r0, [sp, #32] ; 0x20 - 1e24: 9808 ldr r0, [sp, #32] ; 0x20 - 1e26: b009 add sp, #36 ; 0x24 - 1e28: 4770 bx lr - 1e2a: 46c0 nop (mov r8, r8) - - 1e2c: 0000ffff - -; ARM->Thumb call veneer around 0xad2 routine - 1e30: e92d4000 stmdb sp!, {lr} - 1e34: e28fe001 add lr, pc, #1 ; 0x1 - 1e38: e12fff1e bx lr - 1e3c: f7fe fe49 bl 0xad2 - 1e40: 4778 bx pc - 1e42: 46c0 nop (mov r8, r8) - 1e44: e8bd8000 ldmia sp!, {pc} - -<1E48-1EFF: all FFs> - - 1f00: 00000001 - -<1F04-end: all FFs> diff -r e5e5ed527cc1 -r 81cda18b0487 compal/c139-boot.notes --- a/compal/c139-boot.notes Sat Jan 14 06:09:25 2023 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -Download protocol, attempted first at 406250 baud, then 115200, only on the -MODEM UART: - -The boot code begins by transmitting 1B F6 02 00 41 01 40, then calls the -Rx-with-timeout function 7 times, expecting this seq: 1B F6 02 00 52 01 53. -Getting anything else or timeout causes the 0xbac function to return, -ending that download attempt. If this seq was received, the boot code then -sends 1B F6 02 00 41 02 43 and expects to receive 3 bytes as follows: - -* one dummy byte (stored into an automatic var, but then not used) -* payload length MSB -* payload length LSB - -The boot code then expects to receive the specified # of bytes [0,65535] -and stores them beginning at 0x800100. Then the Rx-with-timeout function -is called again to receive the XOR checksum byte, not counted in the length. -If the checksum fails to match, 0xbac function sends 1B F6 02 00 45 53 16 -and returns. If this check passes, the "1003" check is performed next: -the 4 bytes starting at 0x803ce0 must match. If the downloaded image was -shorter, the comparison will be made against pre-powerup IRAM content, -i.e., law of chance. Furthermore, the comparison is actually an inequality: -each "signature" byte in the downloaded image needs to be >= (in the signed -sense) than the "1003" reference. (0x7F7F7F7F thus ought to be a passing -value.) - -If this last check passes, the 0xbac function jumps to the downloaded image -instead of returning. Control is transferred to 0x800100 in the ARM state. -If the "1003" check fails, 0xbac function sends 1B F6 02 00 41 03 57 -and returns. - -If the boot process is not diverted to a successful serial download as above, -the boot code does one strange thing before it jumps to 0x20f8 (main app entry -point). The boot code unconditionally transmits "ftmtool" on the MODEM UART -and waits a certain time for a "yes" response. If it receives that "yes", -it responds with "modemerror", otherwise just "error". Either way, it then -proceed to jump to the main app entry point at 0x20f8! There is also a bunch -of "dead" code in the 8 KiB "boot block", code which does not seem to be -reachable from any path. There is no check for whether or not the "main app" -is present; if the flash contains the 8 KiB "boot block" followed by blank -space, the boot code will happily jumps to those FFs - but it will still -provide an opportunity for serial download as usual, so no real problem. - -IRAM variables used by the boot code: - -83FF00 holds UART base addr, set to FFFF5800 (MODEM) -83FF08 32-bit var init to 0 -83FF10 32-bit var init to 0 -83FF80 byte var init to 0 at the beginning of ftmtool function (0xdbe), - set to 1 if "yes" received in response to "ftmtool" diff -r e5e5ed527cc1 -r 81cda18b0487 compal/c139-boot1004.bin Binary file compal/c139-boot1004.bin has changed diff -r e5e5ed527cc1 -r 81cda18b0487 compal/c139-tfboot.bin Binary file compal/c139-tfboot.bin has changed diff -r e5e5ed527cc1 -r 81cda18b0487 compal/c139-tfboot.disasm --- a/compal/c139-tfboot.disasm Sat Jan 14 06:09:25 2023 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2683 +0,0 @@ -Disassembly of TF's locked C139 bootloader -same as the classic C139 version up to 0x958 - -RESET entry and exception vectors: - 0: ea000225 b 0x89c - 4: ea000825 b 0x20a0 - 8: ea000825 b 0x20a4 - c: ea000825 b 0x20a8 - 10: ea000825 b 0x20ac - 14: ea000825 b 0x20b0 - 18: ea000825 b 0x20b4 - 1c: ea000825 b 0x20b8 - -; ID words or whatever - 20: 449e10f0 - 24: 449e10f1 - 28: 449e1120 - 2c: 449e1121 - -<30-7FF: all FFs> - -00000800: 42 4F 4F 54 2E 39 30 2E 30 34 00 00 00 00 00 00 BOOT.90.04...... -00000810: 31 30 30 33 01 01 00 00 FF FF FF FF FF FF FF FF 1003............ -00000820: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ - - 830: 00000006 - ... - 83c: 00000048 - 840: 00000044 - 844: 00000052 - 848: 0000001b - 84c: 00000005 - ... - 860: 000000fa - 864: ffff5800 - 868: ffff5000 - 86c: fffffb00 - 870: 02a1 - 872: 02a1 - 874: 02a1 - 876: 0283 - 878: 0281 - 87a: 00c0 - 87c: 0040 - 87e: 002a - 880: 00000040 - 884: fffffd00 - 888: ffff9800 - 88c: fffffb10 - 890: ffffff08 - 894: 1081 - 896: 2006 - 898: 0800 - 89a: 0000 - -; RESET entry point, same as classic C139 version - 89c: e51f1020 ldr r1, =0xfffffd00 ; via 0x884 - 8a0: e1d120b2 ldrh r2, [r1, #2] - 8a4: e51f002c ldr r0, =0x40 ; via 0x880 - 8a8: e1800002 orr r0, r0, r2 - 8ac: e1c100b2 strh r0, [r1, #2] - 8b0: e51f1030 ldr r1, =0xffff9800 ; via 0x888 - 8b4: e15f22b6 ldrh r2, =0x2006 ; via 0x896 - 8b8: e1c120b0 strh r2, [r1] - 8bc: e5912000 ldr r2, [r1] - 8c0: e2022001 and r2, r2, #1 - 8c4: e3520001 cmp r2, #1 - 8c8: 0afffffb beq 0x8bc - 8cc: e51f1050 ldr r1, =0xfffffd00 ; via 0x884 - 8d0: e15f24b4 ldrh r2, =0x1081 ; via 0x894 - 8d4: e1c120b0 strh r2, [r1] - 8d8: e51f1054 ldr r1, =0xfffffb10 ; via 0x88c - 8dc: e15f24bc ldrh r2, =0x800 ; via 0x898 - 8e0: e1d100b0 ldrh r0, [r1] - 8e4: e1800002 orr r0, r0, r2 - 8e8: e1c100b0 strh r0, [r1] - 8ec: e51f1064 ldr r1, =0xffffff08 ; via 0x890 - 8f0: e15f25be ldrh r2, =0x0 ; via 0x89a - 8f4: e1c120b0 strh r2, [r1] - 8f8: e51f1094 ldr r1, =0xfffffb00 ; via 0x86c - 8fc: e15f29b4 ldrh r2, =0x2a1 ; via 0x870 - 900: e1c120b0 strh r2, [r1] - 904: e15f29ba ldrh r2, =0x2a1 ; via 0x872 - 908: e1c120b2 strh r2, [r1, #2] - 90c: e15f2ab0 ldrh r2, =0x2a1 ; via 0x874 - 910: e1c120b4 strh r2, [r1, #4] - 914: e15f2ab6 ldrh r2, =0x283 ; via 0x876 - 918: e1c120b6 strh r2, [r1, #6] - 91c: e15f2abc ldrh r2, =0x281 ; via 0x878 - 920: e1c120ba strh r2, [r1, #10] ; 0xa - 924: e15f2bb2 ldrh r2, =0xc0 ; via 0x87a - 928: e1c120bc strh r2, [r1, #12] ; 0xc - 92c: e15f2bb8 ldrh r2, =0x40 ; via 0x87c - 930: e1c120b8 strh r2, [r1, #8] - 934: e15f2bbe ldrh r2, =0x2a ; via 0x87e - 938: e1c120be strh r2, [r1, #14] ; 0xe - 93c: e59f0020 ldr r0, =0x837770 ; via 0x964 - 940: e3a01b01 mov r1, #1024 ; 0x400 - 944: e2411004 sub r1, r1, #4 - 948: e0802001 add r2, r0, r1 - 94c: e3c22003 bic r2, r2, #3 - 950: e1a0d002 mov sp, r2 -; business logic - 954: e92d100f stmdb sp!, {r0, r1, r2, r3, r12} - 958: eb00053a bl 0x1e48 - 95c: e8bd100f ldmia sp!, {r0, r1, r2, r3, r12} - 960: ea0005e4 b 0x20f8 - - 964: 00837770 - - 968: 4961 ldr r1, =0xfffffa08 ; via 0xaf0 - 96a: 4862 ldr r0, =0xffff ; via 0xaf4 - 96c: 8008 strh r0, [r1, #0] - 96e: 4862 ldr r0, =0xfffffa0a ; via 0xaf8 - 970: 211f mov r1, #31 ; 0x1f - 972: 8001 strh r1, [r0, #0] - 974: 4861 ldr r0, =0xfffff804 ; via 0xafc - 976: 21f5 mov r1, #245 ; 0xf5 - 978: 8001 strh r1, [r0, #0] - 97a: 21a0 mov r1, #160 ; 0xa0 - 97c: 8001 strh r1, [r0, #0] - 97e: 4860 ldr r0, =0xffff9800 ; via 0xb00 - 980: 4960 ldr r1, =0x2002 ; via 0xb04 - 982: 8001 strh r1, [r0, #0] - 984: 485e ldr r0, =0xffff9800 ; via 0xb00 - 986: 8800 ldrh r0, [r0, #0] - 988: 0840 lsr r0, r0, #1 - 98a: d2fb bcs 0x984 - 98c: 495e ldr r1, =0xfffffd00 ; via 0xb08 - 98e: 485f ldr r0, =0x1001 ; via 0xb0c - 990: 8008 strh r0, [r1, #0] - 992: 46f7 mov pc, lr - - 994: b500 push {lr} - 996: b0ff sub sp, #508 ; 0x1fc - 998: b0ca sub sp, #296 ; 0x128 - 99a: 2000 mov r0, #0 - 99c: 9001 str r0, [sp, #4] - 99e: 9801 ldr r0, [sp, #4] - 9a0: 2800 cmp r0, #0 - 9a2: d14e bne 0xa42 - 9a4: a846 add r0, sp, #280 ; 0x118 - 9a6: 2100 mov r1, #0 - 9a8: f001 f87a bl 0x1aa0 - 9ac: a9c8 add r1, sp, #800 ; 0x320 - 9ae: 7008 strb r0, [r1, #0] - 9b0: a846 add r0, sp, #280 ; 0x118 - 9b2: a902 add r1, sp, #8 - 9b4: f000 fb38 bl 0x1028 - 9b8: 9000 str r0, [sp, #0] - 9ba: 9800 ldr r0, [sp, #0] - 9bc: 2800 cmp r0, #0 - 9be: d01b beq 0x9f8 - 9c0: a924 add r1, sp, #144 ; 0x90 - 9c2: 4668 mov r0, sp - 9c4: 7a00 ldrb r0, [r0, #8] - 9c6: 7008 strb r0, [r1, #0] - 9c8: 2191 mov r1, #145 ; 0x91 - 9ca: 466a mov r2, sp - 9cc: 4668 mov r0, sp - 9ce: 7800 ldrb r0, [r0, #0] - 9d0: 5488 strb r0, [r1, r2] - 9d2: e01b b 0xa0c - 9d4: a802 add r0, sp, #8 - 9d6: a924 add r1, sp, #144 ; 0x90 - 9d8: f000 fe14 bl 0x1604 - 9dc: e016 b 0xa0c - 9de: a802 add r0, sp, #8 - 9e0: a924 add r1, sp, #144 ; 0x90 - 9e2: aac8 add r2, sp, #800 ; 0x320 - 9e4: 7812 ldrb r2, [r2, #0] - 9e6: f000 fe21 bl 0x162c - 9ea: e00f b 0xa0c - 9ec: a802 add r0, sp, #8 - 9ee: a924 add r1, sp, #144 ; 0x90 - 9f0: f000 fe53 bl 0x169a - 9f4: 90c7 str r0, [sp, #796] ; 0x31c - 9f6: e009 b 0xa0c - 9f8: 4668 mov r0, sp - 9fa: 7a00 ldrb r0, [r0, #8] - 9fc: 2800 cmp r0, #0 - 9fe: d0e9 beq 0x9d4 - a00: 3809 sub r0, #9 - a02: 2800 cmp r0, #0 - a04: d0eb beq 0x9de - a06: 3801 sub r0, #1 - a08: 2800 cmp r0, #0 - a0a: d0ef beq 0x9ec - a0c: a824 add r0, sp, #144 ; 0x90 - a0e: a986 add r1, sp, #536 ; 0x218 - a10: f000 fbed bl 0x11ee - a14: 2800 cmp r0, #0 - a16: d111 bne 0xa3c - a18: a886 add r0, sp, #536 ; 0x218 - a1a: a9c8 add r1, sp, #800 ; 0x320 - a1c: 7809 ldrb r1, [r1, #0] - a1e: f001 f814 bl 0x1a4a - a22: 2800 cmp r0, #0 - a24: d00a beq 0xa3c - a26: 4668 mov r0, sp - a28: 7a00 ldrb r0, [r0, #8] - a2a: 280a cmp r0, #10 ; 0xa - a2c: d106 bne 0xa3c - a2e: a8c8 add r0, sp, #800 ; 0x320 - a30: 7800 ldrb r0, [r0, #0] - a32: f001 f965 bl 0x1d00 - a36: 98c7 ldr r0, [sp, #796] ; 0x31c - a38: f000 faf4 bl 0x1024 - a3c: 9801 ldr r0, [sp, #4] - a3e: 2800 cmp r0, #0 - a40: d0b0 beq 0x9a4 - a42: b07f add sp, #508 ; 0x1fc - a44: b04a add sp, #296 ; 0x128 - a46: bd00 pop {pc} - - a48: b500 push {lr} - a4a: b0ff sub sp, #508 ; 0x1fc - a4c: b0c8 sub sp, #288 ; 0x120 - a4e: 2000 mov r0, #0 - a50: 9000 str r0, [sp, #0] - a52: a846 add r0, sp, #280 ; 0x118 - a54: 2101 mov r1, #1 - a56: f001 f823 bl 0x1aa0 - a5a: a9c6 add r1, sp, #792 ; 0x318 - a5c: 7008 strb r0, [r1, #0] - a5e: a8c6 add r0, sp, #792 ; 0x318 - a60: 7800 ldrb r0, [r0, #0] - a62: 28ff cmp r0, #255 ; 0xff - a64: d031 beq 0xaca - a66: a846 add r0, sp, #280 ; 0x118 - a68: a902 add r1, sp, #8 - a6a: f000 fadd bl 0x1028 - a6e: 9001 str r0, [sp, #4] - a70: 9801 ldr r0, [sp, #4] - a72: 2800 cmp r0, #0 - a74: d014 beq 0xaa0 - a76: a924 add r1, sp, #144 ; 0x90 - a78: 4668 mov r0, sp - a7a: 7a00 ldrb r0, [r0, #8] - a7c: 7008 strb r0, [r1, #0] - a7e: 2291 mov r2, #145 ; 0x91 - a80: 4668 mov r0, sp - a82: 4669 mov r1, sp - a84: 7909 ldrb r1, [r1, #4] - a86: 5411 strb r1, [r2, r0] - a88: a824 add r0, sp, #144 ; 0x90 - a8a: a986 add r1, sp, #536 ; 0x218 - a8c: f000 fbaf bl 0x11ee - a90: 2800 cmp r0, #0 - a92: d11a bne 0xaca - a94: a886 add r0, sp, #536 ; 0x218 - a96: a9c6 add r1, sp, #792 ; 0x318 - a98: 7809 ldrb r1, [r1, #0] - a9a: f000 ffd6 bl 0x1a4a - a9e: e014 b 0xaca - aa0: 4668 mov r0, sp - aa2: 7a00 ldrb r0, [r0, #8] - aa4: 2800 cmp r0, #0 - aa6: d110 bne 0xaca - aa8: a802 add r0, sp, #8 - aaa: a924 add r1, sp, #144 ; 0x90 - aac: f000 fdaa bl 0x1604 - ab0: a824 add r0, sp, #144 ; 0x90 - ab2: a986 add r1, sp, #536 ; 0x218 - ab4: f000 fb9b bl 0x11ee - ab8: 2800 cmp r0, #0 - aba: d104 bne 0xac6 - abc: a886 add r0, sp, #536 ; 0x218 - abe: a9c6 add r1, sp, #792 ; 0x318 - ac0: 7809 ldrb r1, [r1, #0] - ac2: f000 ffc2 bl 0x1a4a - ac6: 2001 mov r0, #1 - ac8: 9000 str r0, [sp, #0] - aca: 9800 ldr r0, [sp, #0] - acc: b07f add sp, #508 ; 0x1fc - ace: b048 add sp, #288 ; 0x120 - ad0: bd00 pop {pc} - - ad2: b500 push {lr} - ad4: b082 sub sp, #8 - ad6: f7ff ff47 bl 0x968 - ada: f001 f8b9 bl 0x1c50 - ade: f000 fd7f bl 0x15e0 - ae2: f000 f81f bl 0xb24 - ae6: f000 f972 bl 0xdce - aea: b002 add sp, #8 - aec: bd00 pop {pc} - aee: 46c0 nop (mov r8, r8) - - af0: fffffa08 - af4: 0000ffff - af8: fffffa0a - afc: fffff804 - b00: ffff9800 - b04: 00002002 - b08: fffffd00 - b0c: 00001001 - - b10: e3a0d502 mov sp, #8388608 ; 0x800000 - b14: e28dd802 add sp, sp, #131072 ; 0x20000 - b18: e28fe005 add lr, pc, #5 - b1c: e12fff1e bx lr - b20: e1a00000 mov r0, r0 - - b24: b500 push {lr} - b26: b082 sub sp, #8 - b28: 49f1 ldr r1, =0x83ff00 ; via 0xef0 - b2a: 48f2 ldr r0, =0xffff5800 ; via 0xef4 - b2c: 6008 str r0, [r1, #0] - b2e: 2000 mov r0, #0 - b30: 2102 mov r1, #2 - b32: f000 fa07 bl 0xf44 - b36: 2000 mov r0, #0 - b38: 9000 str r0, [sp, #0] - b3a: 9900 ldr r1, [sp, #0] - b3c: 2005 mov r0, #5 - b3e: 0300 lsl r0, r0, #12 - b40: 4281 cmp r1, r0 - b42: d207 bcs 0xb54 - b44: 9800 ldr r0, [sp, #0] - b46: 3001 add r0, #1 - b48: 9000 str r0, [sp, #0] - b4a: 9900 ldr r1, [sp, #0] - b4c: 2005 mov r0, #5 - b4e: 0300 lsl r0, r0, #12 - b50: 4281 cmp r1, r0 - b52: d3f7 bcc 0xb44 - b54: f000 f82a bl 0xbac - b58: 2000 mov r0, #0 - b5a: 2107 mov r1, #7 - b5c: f000 f9f2 bl 0xf44 - b60: 2000 mov r0, #0 - b62: 9000 str r0, [sp, #0] - b64: 9900 ldr r1, [sp, #0] - b66: 2005 mov r0, #5 - b68: 0300 lsl r0, r0, #12 - b6a: 4281 cmp r1, r0 - b6c: d207 bcs 0xb7e - b6e: 9800 ldr r0, [sp, #0] - b70: 3001 add r0, #1 - b72: 9000 str r0, [sp, #0] - b74: 9900 ldr r1, [sp, #0] - b76: 2005 mov r0, #5 - b78: 0300 lsl r0, r0, #12 - b7a: 4281 cmp r1, r0 - b7c: d3f7 bcc 0xb6e - b7e: f000 f815 bl 0xbac - b82: 2000 mov r0, #0 - b84: 9001 str r0, [sp, #4] - b86: 9000 str r0, [sp, #0] - b88: 9900 ldr r1, [sp, #0] - b8a: 2005 mov r0, #5 - b8c: 0400 lsl r0, r0, #16 - b8e: 4281 cmp r1, r0 - b90: d20a bcs 0xba8 - b92: 9801 ldr r0, [sp, #4] - b94: 3001 add r0, #1 - b96: 9001 str r0, [sp, #4] - b98: 9800 ldr r0, [sp, #0] - b9a: 3001 add r0, #1 - b9c: 9000 str r0, [sp, #0] - b9e: 9900 ldr r1, [sp, #0] - ba0: 2005 mov r0, #5 - ba2: 0400 lsl r0, r0, #16 - ba4: 4281 cmp r1, r0 - ba6: d3f4 bcc 0xb92 - ba8: b002 add sp, #8 - baa: bd00 pop {pc} - - bac: b500 push {lr} - bae: b089 sub sp, #36 ; 0x24 - bb0: 48e1 ldr r0, =0x800100 ; via 0xf38 - bb2: 9005 str r0, [sp, #20] ; 0x14 - bb4: 48e1 ldr r0, =0x2060 ; via 0xf3c - bb6: 9008 str r0, [sp, #32] ; 0x20 - bb8: 9808 ldr r0, [sp, #32] ; 0x20 - bba: 6801 ldr r1, [r0, #0] - bbc: 48e0 ldr r0, =0xdddddddd ; via 0xf40 - bbe: 4281 cmp r1, r0 - bc0: d000 beq 0xbc4 - bc2: e102 b 0xdca - bc4: 201b mov r0, #27 ; 0x1b - bc6: f000 f95f bl 0xe88 - bca: 20f6 mov r0, #246 ; 0xf6 - bcc: f000 f95c bl 0xe88 - bd0: 2002 mov r0, #2 - bd2: f000 f959 bl 0xe88 - bd6: 2000 mov r0, #0 - bd8: f000 f956 bl 0xe88 - bdc: 2041 mov r0, #65 ; 0x41 - bde: f000 f953 bl 0xe88 - be2: 2001 mov r0, #1 - be4: f000 f950 bl 0xe88 - be8: 2040 mov r0, #64 ; 0x40 - bea: f000 f94d bl 0xe88 - bee: 2001 mov r0, #1 - bf0: 0300 lsl r0, r0, #12 - bf2: f000 f961 bl 0xeb8 - bf6: 281b cmp r0, #27 ; 0x1b - bf8: d000 beq 0xbfc - bfa: e0e6 b 0xdca - bfc: 2001 mov r0, #1 - bfe: 0300 lsl r0, r0, #12 - c00: f000 f95a bl 0xeb8 - c04: 28f6 cmp r0, #246 ; 0xf6 - c06: d000 beq 0xc0a - c08: e0df b 0xdca - c0a: 2001 mov r0, #1 - c0c: 0300 lsl r0, r0, #12 - c0e: f000 f953 bl 0xeb8 - c12: 2802 cmp r0, #2 - c14: d000 beq 0xc18 - c16: e0d8 b 0xdca - c18: 2001 mov r0, #1 - c1a: 0300 lsl r0, r0, #12 - c1c: f000 f94c bl 0xeb8 - c20: 2800 cmp r0, #0 - c22: d000 beq 0xc26 - c24: e0d1 b 0xdca - c26: 2001 mov r0, #1 - c28: 0300 lsl r0, r0, #12 - c2a: f000 f945 bl 0xeb8 - c2e: 2852 cmp r0, #82 ; 0x52 - c30: d000 beq 0xc34 - c32: e0ca b 0xdca - c34: 2001 mov r0, #1 - c36: 0300 lsl r0, r0, #12 - c38: f000 f93e bl 0xeb8 - c3c: 2801 cmp r0, #1 - c3e: d000 beq 0xc42 - c40: e0c3 b 0xdca - c42: 2001 mov r0, #1 - c44: 0300 lsl r0, r0, #12 - c46: f000 f937 bl 0xeb8 - c4a: 2853 cmp r0, #83 ; 0x53 - c4c: d000 beq 0xc50 - c4e: e0bc b 0xdca - c50: 201b mov r0, #27 ; 0x1b - c52: f000 f919 bl 0xe88 - c56: 20f6 mov r0, #246 ; 0xf6 - c58: f000 f916 bl 0xe88 - c5c: 2002 mov r0, #2 - c5e: f000 f913 bl 0xe88 - c62: 2000 mov r0, #0 - c64: f000 f910 bl 0xe88 - c68: 2041 mov r0, #65 ; 0x41 - c6a: f000 f90d bl 0xe88 - c6e: 2002 mov r0, #2 - c70: f000 f90a bl 0xe88 - c74: 2043 mov r0, #67 ; 0x43 - c76: f000 f907 bl 0xe88 - c7a: 2001 mov r0, #1 - c7c: 0300 lsl r0, r0, #12 - c7e: f000 f91b bl 0xeb8 - c82: 4669 mov r1, sp - c84: 7208 strb r0, [r1, #8] - c86: 2002 mov r0, #2 - c88: 7448 strb r0, [r1, #17] ; 0x11 - c8a: 2000 mov r0, #0 - c8c: 9000 str r0, [sp, #0] - c8e: 9800 ldr r0, [sp, #0] - c90: 2802 cmp r0, #2 - c92: d215 bcs 0xcc0 - c94: 2001 mov r0, #1 - c96: 0300 lsl r0, r0, #12 - c98: f000 f90e bl 0xeb8 - c9c: 4669 mov r1, sp - c9e: 9a00 ldr r2, [sp, #0] - ca0: 1a89 sub r1, r1, r2 - ca2: 7348 strb r0, [r1, #13] ; 0xd - ca4: 4669 mov r1, sp - ca6: 9800 ldr r0, [sp, #0] - ca8: 1a08 sub r0, r1, r0 - caa: 7b40 ldrb r0, [r0, #13] ; 0xd - cac: 7c49 ldrb r1, [r1, #17] ; 0x11 - cae: 4048 eor r0, r1 - cb0: 4669 mov r1, sp - cb2: 7448 strb r0, [r1, #17] ; 0x11 - cb4: 9800 ldr r0, [sp, #0] - cb6: 3001 add r0, #1 - cb8: 9000 str r0, [sp, #0] - cba: 9800 ldr r0, [sp, #0] - cbc: 2802 cmp r0, #2 - cbe: d3e9 bcc 0xc94 - cc0: 4668 mov r0, sp - cc2: 8980 ldrh r0, [r0, #12] ; 0xc - cc4: 466a mov r2, sp - cc6: 1e41 sub r1, r0, #1 - cc8: 8191 strh r1, [r2, #12] ; 0xc - cca: 2800 cmp r0, #0 - ccc: d016 beq 0xcfc - cce: 2001 mov r0, #1 - cd0: 0300 lsl r0, r0, #12 - cd2: f000 f8f1 bl 0xeb8 - cd6: 9905 ldr r1, [sp, #20] ; 0x14 - cd8: 7008 strb r0, [r1, #0] - cda: 9805 ldr r0, [sp, #20] ; 0x14 - cdc: 7800 ldrb r0, [r0, #0] - cde: 4669 mov r1, sp - ce0: 7c49 ldrb r1, [r1, #17] ; 0x11 - ce2: 4048 eor r0, r1 - ce4: 4669 mov r1, sp - ce6: 7448 strb r0, [r1, #17] ; 0x11 - ce8: 9805 ldr r0, [sp, #20] ; 0x14 - cea: 3001 add r0, #1 - cec: 9005 str r0, [sp, #20] ; 0x14 - cee: 4668 mov r0, sp - cf0: 8981 ldrh r1, [r0, #12] ; 0xc - cf2: 466a mov r2, sp - cf4: 1e48 sub r0, r1, #1 - cf6: 8190 strh r0, [r2, #12] ; 0xc - cf8: 2900 cmp r1, #0 - cfa: d1e8 bne 0xcce - cfc: 2001 mov r0, #1 - cfe: 0300 lsl r0, r0, #12 - d00: f000 f8da bl 0xeb8 - d04: 4669 mov r1, sp - d06: 7408 strb r0, [r1, #16] ; 0x10 - d08: 4668 mov r0, sp - d0a: 7c01 ldrb r1, [r0, #16] ; 0x10 - d0c: 7c40 ldrb r0, [r0, #17] ; 0x11 - d0e: 4281 cmp r1, r0 - d10: d015 beq 0xd3e - d12: 201b mov r0, #27 ; 0x1b - d14: f000 f8b8 bl 0xe88 - d18: 20f6 mov r0, #246 ; 0xf6 - d1a: f000 f8b5 bl 0xe88 - d1e: 2002 mov r0, #2 - d20: f000 f8b2 bl 0xe88 - d24: 2000 mov r0, #0 - d26: f000 f8af bl 0xe88 - d2a: 2045 mov r0, #69 ; 0x45 - d2c: f000 f8ac bl 0xe88 - d30: 2053 mov r0, #83 ; 0x53 - d32: f000 f8a9 bl 0xe88 - d36: 2016 mov r0, #22 ; 0x16 - d38: f000 f8a6 bl 0xe88 - d3c: e045 b 0xdca - d3e: 2081 mov r0, #129 ; 0x81 - d40: 0100 lsl r0, r0, #4 - d42: 9006 str r0, [sp, #24] ; 0x18 - d44: 48b1 ldr r0, =0x803ce0 ; via 0x100c - d46: 9007 str r0, [sp, #28] ; 0x1c - d48: 2000 mov r0, #0 - d4a: 9000 str r0, [sp, #0] - d4c: 9800 ldr r0, [sp, #0] - d4e: 2804 cmp r0, #4 - d50: d221 bcs 0xd96 - d52: 9900 ldr r1, [sp, #0] - d54: 9806 ldr r0, [sp, #24] ; 0x18 - d56: 5c0a ldrb r2, [r1, r0] - d58: 9900 ldr r1, [sp, #0] - d5a: 9807 ldr r0, [sp, #28] ; 0x1c - d5c: 5c08 ldrb r0, [r1, r0] - d5e: 4282 cmp r2, r0 - d60: dd13 ble 0xd8a - d62: 201b mov r0, #27 ; 0x1b - d64: f000 f890 bl 0xe88 - d68: 20f6 mov r0, #246 ; 0xf6 - d6a: f000 f88d bl 0xe88 - d6e: 2002 mov r0, #2 - d70: f000 f88a bl 0xe88 - d74: 2000 mov r0, #0 - d76: f000 f887 bl 0xe88 - d7a: 2041 mov r0, #65 ; 0x41 - d7c: f000 f884 bl 0xe88 - d80: 2003 mov r0, #3 - d82: f000 f881 bl 0xe88 - d86: 2057 mov r0, #87 ; 0x57 - d88: e7d6 b 0xd38 - d8a: 9800 ldr r0, [sp, #0] - d8c: 3001 add r0, #1 - d8e: 9000 str r0, [sp, #0] - d90: 9800 ldr r0, [sp, #0] - d92: 2804 cmp r0, #4 - d94: d3dd bcc 0xd52 - d96: 201b mov r0, #27 ; 0x1b - d98: f000 f876 bl 0xe88 - d9c: 20f6 mov r0, #246 ; 0xf6 - d9e: f000 f873 bl 0xe88 - da2: 2002 mov r0, #2 - da4: f000 f870 bl 0xe88 - da8: 2000 mov r0, #0 - daa: f000 f86d bl 0xe88 - dae: 2041 mov r0, #65 ; 0x41 - db0: f000 f86a bl 0xe88 - db4: 2003 mov r0, #3 - db6: f000 f867 bl 0xe88 - dba: 2042 mov r0, #66 ; 0x42 - dbc: f000 f864 bl 0xe88 - dc0: 484b ldr r0, =0x83ff00 ; via 0xef0 - dc2: 6800 ldr r0, [r0, #0] - dc4: 4992 ldr r1, =0x800100 ; via 0x1010 - dc6: f000 f85e bl 0xe86 - dca: b009 add sp, #36 ; 0x24 - dcc: bd00 pop {pc} - - dce: b500 push {lr} - dd0: b081 sub sp, #4 - dd2: 2066 mov r0, #102 ; 0x66 - dd4: f000 f858 bl 0xe88 - dd8: 2074 mov r0, #116 ; 0x74 - dda: f000 f855 bl 0xe88 - dde: 206d mov r0, #109 ; 0x6d - de0: f000 f852 bl 0xe88 - de4: 2074 mov r0, #116 ; 0x74 - de6: f000 f84f bl 0xe88 - dea: 206f mov r0, #111 ; 0x6f - dec: f000 f84c bl 0xe88 - df0: 206f mov r0, #111 ; 0x6f - df2: f000 f849 bl 0xe88 - df6: 206c mov r0, #108 ; 0x6c - df8: f000 f846 bl 0xe88 - dfc: 4985 ldr r1, =0x83ff80 ; via 0x1014 - dfe: 2000 mov r0, #0 - e00: 7008 strb r0, [r1, #0] - e02: 9000 str r0, [sp, #0] - e04: 9800 ldr r0, [sp, #0] - e06: 0c00 lsr r0, r0, #16 - e08: d105 bne 0xe16 - e0a: 9800 ldr r0, [sp, #0] - e0c: 3001 add r0, #1 - e0e: 9000 str r0, [sp, #0] - e10: 9800 ldr r0, [sp, #0] - e12: 0c00 lsr r0, r0, #16 - e14: d0f9 beq 0xe0a - e16: 2007 mov r0, #7 - e18: 0400 lsl r0, r0, #16 - e1a: f000 f84d bl 0xeb8 - e1e: 2879 cmp r0, #121 ; 0x79 - e20: d10e bne 0xe40 - e22: 2001 mov r0, #1 - e24: 0300 lsl r0, r0, #12 - e26: f000 f847 bl 0xeb8 - e2a: 2865 cmp r0, #101 ; 0x65 - e2c: d108 bne 0xe40 - e2e: 2001 mov r0, #1 - e30: 0300 lsl r0, r0, #12 - e32: f000 f841 bl 0xeb8 - e36: 2873 cmp r0, #115 ; 0x73 - e38: d102 bne 0xe40 - e3a: 4876 ldr r0, =0x83ff80 ; via 0x1014 - e3c: 2101 mov r1, #1 - e3e: 7001 strb r1, [r0, #0] - e40: f000 f8d2 bl 0xfe8 - e44: 2800 cmp r0, #0 - e46: d00d beq 0xe64 - e48: 206d mov r0, #109 ; 0x6d - e4a: f000 f81d bl 0xe88 - e4e: 206f mov r0, #111 ; 0x6f - e50: f000 f81a bl 0xe88 - e54: 2064 mov r0, #100 ; 0x64 - e56: f000 f817 bl 0xe88 - e5a: 2065 mov r0, #101 ; 0x65 - e5c: f000 f814 bl 0xe88 - e60: 206d mov r0, #109 ; 0x6d - e62: e00c b 0xe7e - e64: 2065 mov r0, #101 ; 0x65 - e66: f000 f80f bl 0xe88 - e6a: 2072 mov r0, #114 ; 0x72 - e6c: f000 f80c bl 0xe88 - e70: 2072 mov r0, #114 ; 0x72 - e72: f000 f809 bl 0xe88 - e76: 206f mov r0, #111 ; 0x6f - e78: f000 f806 bl 0xe88 - e7c: 2072 mov r0, #114 ; 0x72 - e7e: f000 f803 bl 0xe88 - e82: b001 add sp, #4 - e84: bd00 pop {pc} - - e86: 4708 bx r1 - - e88: b081 sub sp, #4 - e8a: 4669 mov r1, sp - e8c: 7008 strb r0, [r1, #0] - e8e: 4818 ldr r0, =0x83ff00 ; via 0xef0 - e90: 6800 ldr r0, [r0, #0] - e92: 7940 ldrb r0, [r0, #5] - e94: 0980 lsr r0, r0, #6 - e96: d3fa bcc 0xe8e - e98: 4815 ldr r0, =0x83ff00 ; via 0xef0 - e9a: 6800 ldr r0, [r0, #0] - e9c: 4669 mov r1, sp - e9e: 7809 ldrb r1, [r1, #0] - ea0: 7001 strb r1, [r0, #0] - ea2: b001 add sp, #4 - ea4: 46f7 mov pc, lr - ea6: 4812 ldr r0, =0x83ff00 ; via 0xef0 - ea8: 6800 ldr r0, [r0, #0] - eaa: 7940 ldrb r0, [r0, #5] - eac: 0840 lsr r0, r0, #1 - eae: d3fa bcc 0xea6 - eb0: 480f ldr r0, =0x83ff00 ; via 0xef0 - eb2: 6800 ldr r0, [r0, #0] - eb4: 7800 ldrb r0, [r0, #0] - eb6: 4770 bx lr - eb8: b083 sub sp, #12 ; 0xc - eba: 9000 str r0, [sp, #0] - ebc: 9800 ldr r0, [sp, #0] - ebe: 9002 str r0, [sp, #8] - ec0: 480b ldr r0, =0x83ff00 ; via 0xef0 - ec2: 6800 ldr r0, [r0, #0] - ec4: 7940 ldrb r0, [r0, #5] - ec6: 0840 lsr r0, r0, #1 - ec8: d20c bcs 0xee4 - eca: 9802 ldr r0, [sp, #8] - ecc: 3801 sub r0, #1 - ece: 9002 str r0, [sp, #8] - ed0: 9802 ldr r0, [sp, #8] - ed2: 2800 cmp r0, #0 - ed4: d101 bne 0xeda - ed6: 20ff mov r0, #255 ; 0xff - ed8: e007 b 0xeea - eda: 484f ldr r0, =0x83ff00 ; via 0x1018 - edc: 6800 ldr r0, [r0, #0] - ede: 7940 ldrb r0, [r0, #5] - ee0: 0840 lsr r0, r0, #1 - ee2: d3f2 bcc 0xeca - ee4: 484c ldr r0, =0x83ff00 ; via 0x1018 - ee6: 6800 ldr r0, [r0, #0] - ee8: 7800 ldrb r0, [r0, #0] - eea: b003 add sp, #12 ; 0xc - eec: 4770 bx lr - eee: 46c0 nop (mov r8, r8) - ef0: ff00 - ef2: 0083 lsl r3, r0, #2 - ef4: 5800 ldr r0, [r0, r0] - ef6: ffff - ef8: b081 sub sp, #4 - efa: e001 b 0xf00 - efc: 9800 ldr r0, [sp, #0] - efe: 3801 sub r0, #1 - f00: 9000 str r0, [sp, #0] - f02: 4845 ldr r0, =0x83ff00 ; via 0x1018 - f04: 6800 ldr r0, [r0, #0] - f06: 7940 ldrb r0, [r0, #5] - f08: 0840 lsr r0, r0, #1 - f0a: d202 bcs 0xf12 - f0c: 9800 ldr r0, [sp, #0] - f0e: 2800 cmp r0, #0 - f10: dcf4 bgt 0xefc - f12: 9800 ldr r0, [sp, #0] - f14: 2800 cmp r0, #0 - f16: dd01 ble 0xf1c - f18: 2000 mov r0, #0 - f1a: e000 b 0xf1e - f1c: 2001 mov r0, #1 - f1e: b001 add sp, #4 - f20: 4770 bx lr - f22: b082 sub sp, #8 - f24: 9000 str r0, [sp, #0] - f26: 4669 mov r1, sp - f28: 2000 mov r0, #0 - f2a: 7188 strb r0, [r1, #6] - f2c: 9900 ldr r1, [sp, #0] - f2e: 483b ldr r0, =0xfffef000 ; via 0x101c - f30: 8800 ldrh r0, [r0, #0] - f32: 8008 strh r0, [r1, #0] - f34: b002 add sp, #8 - f36: 4770 bx lr - f38: 0100 lsl r0, r0, #4 - f3a: 0080 lsl r0, r0, #2 - f3c: 2060 mov r0, #96 ; 0x60 - f3e: 0000 lsl r0, r0, #0 - f40: dddd ble 0xefe - f42: dddd ble 0xf00 - f44: b081 sub sp, #4 - f46: 466a mov r2, sp - f48: 7051 strb r1, [r2, #1] - f4a: 4669 mov r1, sp - f4c: 7008 strb r0, [r1, #0] - f4e: 4934 ldr r1, =0xffff6000 ; via 0x1020 - f50: 2002 mov r0, #2 - f52: 880a ldrh r2, [r1, #0] - f54: 4310 orr r0, r2 - f56: 8008 strh r0, [r1, #0] - f58: 4831 ldr r0, =0xffff6000 ; via 0x1020 - f5a: 8801 ldrh r1, [r0, #0] - f5c: 0849 lsr r1, r1, #1 - f5e: 0049 lsl r1, r1, #1 - f60: 8001 strh r1, [r0, #0] - f62: 492f ldr r1, =0xffff6000 ; via 0x1020 - f64: 8808 ldrh r0, [r1, #0] - f66: 2202 mov r2, #2 - f68: 4390 bic r0, r2 - f6a: 8008 strh r0, [r1, #0] - f6c: 482a ldr r0, =0x83ff00 ; via 0x1018 - f6e: 6801 ldr r1, [r0, #0] - f70: 2007 mov r0, #7 - f72: 7208 strb r0, [r1, #8] - f74: 4828 ldr r0, =0x83ff00 ; via 0x1018 - f76: 6801 ldr r1, [r0, #0] - f78: 20bf mov r0, #191 ; 0xbf - f7a: 70c8 strb r0, [r1, #3] - f7c: 4826 ldr r0, =0x83ff00 ; via 0x1018 - f7e: 6800 ldr r0, [r0, #0] - f80: 1c80 add r0, r0, #2 - f82: 2110 mov r1, #16 ; 0x10 - f84: 8802 ldrh r2, [r0, #0] - f86: 4311 orr r1, r2 - f88: 8001 strh r1, [r0, #0] - f8a: 4823 ldr r0, =0x83ff00 ; via 0x1018 - f8c: 6801 ldr r1, [r0, #0] - f8e: 2080 mov r0, #128 ; 0x80 - f90: 70c8 strb r0, [r1, #3] - f92: 4821 ldr r0, =0x83ff00 ; via 0x1018 - f94: 6800 ldr r0, [r0, #0] - f96: 2107 mov r1, #7 - f98: 7081 strb r1, [r0, #2] - f9a: 481f ldr r0, =0x83ff00 ; via 0x1018 - f9c: 6800 ldr r0, [r0, #0] - f9e: 21bf mov r1, #191 ; 0xbf - fa0: 70c1 strb r1, [r0, #3] - fa2: 481d ldr r0, =0x83ff00 ; via 0x1018 - fa4: 6801 ldr r1, [r0, #0] - fa6: 4668 mov r0, sp - fa8: 7840 ldrb r0, [r0, #1] - faa: 7008 strb r0, [r1, #0] - fac: 481a ldr r0, =0x83ff00 ; via 0x1018 - fae: 6801 ldr r1, [r0, #0] - fb0: 4668 mov r0, sp - fb2: 7800 ldrb r0, [r0, #0] - fb4: 7048 strb r0, [r1, #1] - fb6: 4818 ldr r0, =0x83ff00 ; via 0x1018 - fb8: 6801 ldr r1, [r0, #0] - fba: 2003 mov r0, #3 - fbc: 70c8 strb r0, [r1, #3] - fbe: 4816 ldr r0, =0x83ff00 ; via 0x1018 - fc0: 6800 ldr r0, [r0, #0] - fc2: 2100 mov r1, #0 - fc4: 7201 strb r1, [r0, #8] - fc6: 4814 ldr r0, =0x83ff00 ; via 0x1018 - fc8: 6800 ldr r0, [r0, #0] - fca: 7940 ldrb r0, [r0, #5] - fcc: 0840 lsr r0, r0, #1 - fce: d309 bcc 0xfe4 - fd0: 4669 mov r1, sp - fd2: 4811 ldr r0, =0x83ff00 ; via 0x1018 - fd4: 6800 ldr r0, [r0, #0] - fd6: 7800 ldrb r0, [r0, #0] - fd8: 7088 strb r0, [r1, #2] - fda: 480f ldr r0, =0x83ff00 ; via 0x1018 - fdc: 6800 ldr r0, [r0, #0] - fde: 7940 ldrb r0, [r0, #5] - fe0: 0840 lsr r0, r0, #1 - fe2: d2f5 bcs 0xfd0 - fe4: b001 add sp, #4 - fe6: 4770 bx lr - fe8: 480a ldr r0, =0x83ff80 ; via 0x1014 - fea: 7800 ldrb r0, [r0, #0] - fec: 4770 bx lr - fee: b500 push {lr} - ff0: b081 sub sp, #4 - ff2: 4669 mov r1, sp - ff4: 7008 strb r0, [r1, #0] - ff6: 4668 mov r0, sp - ff8: 7800 ldrb r0, [r0, #0] - ffa: f7ff ff45 bl 0xe88 - ffe: b001 add sp, #4 - 1000: bd00 pop {pc} - 1002: b500 push {lr} - 1004: f7ff ff4f bl 0xea6 - 1008: bd00 pop {pc} - 100a: 46c0 nop (mov r8, r8) - 100c: 3ce0 sub r4, #224 ; 0xe0 - 100e: 0080 lsl r0, r0, #2 - 1010: 0100 lsl r0, r0, #4 - 1012: 0080 lsl r0, r0, #2 - 1014: ff80 - 1016: 0083 lsl r3, r0, #2 - 1018: ff00 - 101a: 0083 lsl r3, r0, #2 - 101c: f000 fffe bl 0x201c - 1020: 6000 str r0, [r0, #0] - 1022: ffff - 1024: 4700 bx r0 - 1026: 0000 lsl r0, r0, #0 - 1028: b08c sub sp, #48 ; 0x30 - 102a: 9101 str r1, [sp, #4] - 102c: 9000 str r0, [sp, #0] - 102e: 2000 mov r0, #0 - 1030: 9003 str r0, [sp, #12] ; 0xc - 1032: 9800 ldr r0, [sp, #0] - 1034: 7801 ldrb r1, [r0, #0] - 1036: 3001 add r0, #1 - 1038: 9000 str r0, [sp, #0] - 103a: 9105 str r1, [sp, #20] ; 0x14 - 103c: 9800 ldr r0, [sp, #0] - 103e: 7801 ldrb r1, [r0, #0] - 1040: 3001 add r0, #1 - 1042: 9000 str r0, [sp, #0] - 1044: 9801 ldr r0, [sp, #4] - 1046: 7001 strb r1, [r0, #0] - 1048: 2001 mov r0, #1 - 104a: 9004 str r0, [sp, #16] ; 0x10 - 104c: e0a8 b 0x11a0 - 104e: 9804 ldr r0, [sp, #16] ; 0x10 - 1050: 3002 add r0, #2 - 1052: 9004 str r0, [sp, #16] ; 0x10 - 1054: 9800 ldr r0, [sp, #0] - 1056: 7801 ldrb r1, [r0, #0] - 1058: 3001 add r0, #1 - 105a: 9000 str r0, [sp, #0] - 105c: 4668 mov r0, sp - 105e: 8441 strh r1, [r0, #34] ; 0x22 - 1060: 9800 ldr r0, [sp, #0] - 1062: 7801 ldrb r1, [r0, #0] - 1064: 3001 add r0, #1 - 1066: 9000 str r0, [sp, #0] - 1068: 4668 mov r0, sp - 106a: 8401 strh r1, [r0, #32] ; 0x20 - 106c: 8c00 ldrh r0, [r0, #32] ; 0x20 - 106e: 4669 mov r1, sp - 1070: 8c49 ldrh r1, [r1, #34] ; 0x22 - 1072: 0209 lsl r1, r1, #8 - 1074: 1840 add r0, r0, r1 - 1076: 9901 ldr r1, [sp, #4] - 1078: 8088 strh r0, [r1, #4] - 107a: 9804 ldr r0, [sp, #16] ; 0x10 - 107c: 3001 add r0, #1 - 107e: 9004 str r0, [sp, #16] ; 0x10 - 1080: 9800 ldr r0, [sp, #0] - 1082: 7801 ldrb r1, [r0, #0] - 1084: 3001 add r0, #1 - 1086: 9000 str r0, [sp, #0] - 1088: 4668 mov r0, sp - 108a: 7601 strb r1, [r0, #24] ; 0x18 - 108c: 9901 ldr r1, [sp, #4] - 108e: 7e00 ldrb r0, [r0, #24] ; 0x18 - 1090: 7188 strb r0, [r1, #6] - 1092: 4668 mov r0, sp - 1094: 7e00 ldrb r0, [r0, #24] ; 0x18 - 1096: 2840 cmp r0, #64 ; 0x40 - 1098: dc00 bgt 0x109c - 109a: e09f b 0x11dc - 109c: 2004 mov r0, #4 - 109e: 9003 str r0, [sp, #12] ; 0xc - 10a0: e09c b 0x11dc - 10a2: 9804 ldr r0, [sp, #16] ; 0x10 - 10a4: 3002 add r0, #2 - 10a6: 9004 str r0, [sp, #16] ; 0x10 - 10a8: 9800 ldr r0, [sp, #0] - 10aa: 7801 ldrb r1, [r0, #0] - 10ac: 3001 add r0, #1 - 10ae: 9000 str r0, [sp, #0] - 10b0: 4668 mov r0, sp - 10b2: 8441 strh r1, [r0, #34] ; 0x22 - 10b4: 9800 ldr r0, [sp, #0] - 10b6: 7801 ldrb r1, [r0, #0] - 10b8: 3001 add r0, #1 - 10ba: 9000 str r0, [sp, #0] - 10bc: 4668 mov r0, sp - 10be: 8401 strh r1, [r0, #32] ; 0x20 - 10c0: 8c00 ldrh r0, [r0, #32] ; 0x20 - 10c2: 4669 mov r1, sp - 10c4: 8c49 ldrh r1, [r1, #34] ; 0x22 - 10c6: 0209 lsl r1, r1, #8 - 10c8: 1841 add r1, r0, r1 - 10ca: 9801 ldr r0, [sp, #4] - 10cc: 8081 strh r1, [r0, #4] - 10ce: 9804 ldr r0, [sp, #16] ; 0x10 - 10d0: 3001 add r0, #1 - 10d2: 9004 str r0, [sp, #16] ; 0x10 - 10d4: 9800 ldr r0, [sp, #0] - 10d6: 7801 ldrb r1, [r0, #0] - 10d8: 3001 add r0, #1 - 10da: 9000 str r0, [sp, #0] - 10dc: 4668 mov r0, sp - 10de: 7601 strb r1, [r0, #24] ; 0x18 - 10e0: 9901 ldr r1, [sp, #4] - 10e2: 7e00 ldrb r0, [r0, #24] ; 0x18 - 10e4: 7188 strb r0, [r1, #6] - 10e6: 4668 mov r0, sp - 10e8: 7e00 ldrb r0, [r0, #24] ; 0x18 - 10ea: 2840 cmp r0, #64 ; 0x40 - 10ec: dcd6 bgt 0x109c - 10ee: 9801 ldr r0, [sp, #4] - 10f0: 3008 add r0, #8 - 10f2: 9007 str r0, [sp, #28] ; 0x1c - 10f4: 2000 mov r0, #0 - 10f6: 9002 str r0, [sp, #8] - 10f8: 9902 ldr r1, [sp, #8] - 10fa: 4668 mov r0, sp - 10fc: 7e00 ldrb r0, [r0, #24] ; 0x18 - 10fe: 4281 cmp r1, r0 - 1100: da6c bge 0x11dc - 1102: 9800 ldr r0, [sp, #0] - 1104: 7801 ldrb r1, [r0, #0] - 1106: 3001 add r0, #1 - 1108: 9000 str r0, [sp, #0] - 110a: 4668 mov r0, sp - 110c: 84c1 strh r1, [r0, #38] ; 0x26 - 110e: 9800 ldr r0, [sp, #0] - 1110: 7801 ldrb r1, [r0, #0] - 1112: 3001 add r0, #1 - 1114: 9000 str r0, [sp, #0] - 1116: 4668 mov r0, sp - 1118: 8481 strh r1, [r0, #36] ; 0x24 - 111a: 9807 ldr r0, [sp, #28] ; 0x1c - 111c: 1c81 add r1, r0, #2 - 111e: 9107 str r1, [sp, #28] ; 0x1c - 1120: 4669 mov r1, sp - 1122: 8c89 ldrh r1, [r1, #36] ; 0x24 - 1124: 466a mov r2, sp - 1126: 8cd2 ldrh r2, [r2, #38] ; 0x26 - 1128: 0212 lsl r2, r2, #8 - 112a: 1889 add r1, r1, r2 - 112c: 8001 strh r1, [r0, #0] - 112e: 9804 ldr r0, [sp, #16] ; 0x10 - 1130: 3002 add r0, #2 - 1132: 9004 str r0, [sp, #16] ; 0x10 - 1134: 9802 ldr r0, [sp, #8] - 1136: 3001 add r0, #1 - 1138: 9002 str r0, [sp, #8] - 113a: 9902 ldr r1, [sp, #8] - 113c: 4668 mov r0, sp - 113e: 7e00 ldrb r0, [r0, #24] ; 0x18 - 1140: 4281 cmp r1, r0 - 1142: dbde blt 0x1102 - 1144: e04a b 0x11dc - 1146: 9804 ldr r0, [sp, #16] ; 0x10 - 1148: 3002 add r0, #2 - 114a: 9004 str r0, [sp, #16] ; 0x10 - 114c: 9800 ldr r0, [sp, #0] - 114e: 7801 ldrb r1, [r0, #0] - 1150: 3001 add r0, #1 - 1152: 9000 str r0, [sp, #0] - 1154: 4668 mov r0, sp - 1156: 8501 strh r1, [r0, #40] ; 0x28 - 1158: 9800 ldr r0, [sp, #0] - 115a: 7801 ldrb r1, [r0, #0] - 115c: 3001 add r0, #1 - 115e: 9000 str r0, [sp, #0] - 1160: 4668 mov r0, sp - 1162: 8541 strh r1, [r0, #42] ; 0x2a - 1164: 8d41 ldrh r1, [r0, #42] ; 0x2a - 1166: 8d00 ldrh r0, [r0, #40] ; 0x28 - 1168: 0200 lsl r0, r0, #8 - 116a: 1809 add r1, r1, r0 - 116c: 9801 ldr r0, [sp, #4] - 116e: 8081 strh r1, [r0, #4] - 1170: 9804 ldr r0, [sp, #16] ; 0x10 - 1172: 3002 add r0, #2 - 1174: 9004 str r0, [sp, #16] ; 0x10 - 1176: 9800 ldr r0, [sp, #0] - 1178: 7801 ldrb r1, [r0, #0] - 117a: 3001 add r0, #1 - 117c: 9000 str r0, [sp, #0] - 117e: 4668 mov r0, sp - 1180: 8581 strh r1, [r0, #44] ; 0x2c - 1182: 9800 ldr r0, [sp, #0] - 1184: 7801 ldrb r1, [r0, #0] - 1186: 3001 add r0, #1 - 1188: 9000 str r0, [sp, #0] - 118a: 4668 mov r0, sp - 118c: 85c1 strh r1, [r0, #46] ; 0x2e - 118e: 8dc1 ldrh r1, [r0, #46] ; 0x2e - 1190: 8d80 ldrh r0, [r0, #44] ; 0x2c - 1192: 0200 lsl r0, r0, #8 - 1194: 1808 add r0, r1, r0 - 1196: 9901 ldr r1, [sp, #4] - 1198: 80c8 strh r0, [r1, #6] - 119a: e01f b 0x11dc - 119c: 2008 mov r0, #8 - 119e: e77e b 0x109e - 11a0: 9801 ldr r0, [sp, #4] - 11a2: 7801 ldrb r1, [r0, #0] - 11a4: 290a cmp r1, #10 ; 0xa - 11a6: d8f9 bhi 0x119c - 11a8: a001 add r0, pc, #4 - 11aa: 0089 lsl r1, r1, #2 - 11ac: 5840 ldr r0, [r0, r1] - 11ae: 4687 mov pc, r0 - 11b0: 11dc asr r4, r3, #7 - 11b2: 0000 lsl r0, r0, #0 - 11b4: 11dc asr r4, r3, #7 - 11b6: 0000 lsl r0, r0, #0 - 11b8: 11dc asr r4, r3, #7 - 11ba: 0000 lsl r0, r0, #0 - 11bc: 11dc asr r4, r3, #7 - 11be: 0000 lsl r0, r0, #0 - 11c0: 11dc asr r4, r3, #7 - 11c2: 0000 lsl r0, r0, #0 - 11c4: 11dc asr r4, r3, #7 - 11c6: 0000 lsl r0, r0, #0 - 11c8: 11dc asr r4, r3, #7 - 11ca: 0000 lsl r0, r0, #0 - 11cc: 104e asr r6, r1, #1 - 11ce: 0000 lsl r0, r0, #0 - 11d0: 10a2 asr r2, r4, #2 - 11d2: 0000 lsl r0, r0, #0 - 11d4: 11dc asr r4, r3, #7 - 11d6: 0000 lsl r0, r0, #0 - 11d8: 1146 asr r6, r0, #5 - 11da: 0000 lsl r0, r0, #0 - 11dc: 9905 ldr r1, [sp, #20] ; 0x14 - 11de: 9804 ldr r0, [sp, #16] ; 0x10 - 11e0: 4281 cmp r1, r0 - 11e2: d001 beq 0x11e8 - 11e4: 2004 mov r0, #4 - 11e6: 9003 str r0, [sp, #12] ; 0xc - 11e8: 9803 ldr r0, [sp, #12] ; 0xc - 11ea: b00c add sp, #48 ; 0x30 - 11ec: 4770 bx lr - 11ee: b089 sub sp, #36 ; 0x24 - 11f0: 9101 str r1, [sp, #4] - 11f2: 9000 str r0, [sp, #0] - 11f4: 2000 mov r0, #0 - 11f6: 9003 str r0, [sp, #12] ; 0xc - 11f8: 9801 ldr r0, [sp, #4] - 11fa: 1c41 add r1, r0, #1 - 11fc: 9101 str r1, [sp, #4] - 11fe: 9005 str r0, [sp, #20] ; 0x14 - 1200: 9801 ldr r0, [sp, #4] - 1202: 1c41 add r1, r0, #1 - 1204: 9101 str r1, [sp, #4] - 1206: 9900 ldr r1, [sp, #0] - 1208: 7809 ldrb r1, [r1, #0] - 120a: 7001 strb r1, [r0, #0] - 120c: 4669 mov r1, sp - 120e: 2001 mov r0, #1 - 1210: 7408 strb r0, [r1, #16] ; 0x10 - 1212: 9801 ldr r0, [sp, #4] - 1214: 1c41 add r1, r0, #1 - 1216: 9101 str r1, [sp, #4] - 1218: 9900 ldr r1, [sp, #0] - 121a: 7849 ldrb r1, [r1, #1] - 121c: 7001 strb r1, [r0, #0] - 121e: 4669 mov r1, sp - 1220: 4668 mov r0, sp - 1222: 7c00 ldrb r0, [r0, #16] ; 0x10 - 1224: 3001 add r0, #1 - 1226: 7408 strb r0, [r1, #16] ; 0x10 - 1228: e0e4 b 0x13f4 - 122a: 9800 ldr r0, [sp, #0] - 122c: 7840 ldrb r0, [r0, #1] - 122e: 2800 cmp r0, #0 - 1230: d000 beq 0x1234 - 1232: e0fd b 0x1430 - 1234: 9801 ldr r0, [sp, #4] - 1236: 1c41 add r1, r0, #1 - 1238: 9101 str r1, [sp, #4] - 123a: 9900 ldr r1, [sp, #0] - 123c: 7909 ldrb r1, [r1, #4] - 123e: 7001 strb r1, [r0, #0] - 1240: 9801 ldr r0, [sp, #4] - 1242: 1c41 add r1, r0, #1 - 1244: 9101 str r1, [sp, #4] - 1246: 9900 ldr r1, [sp, #0] - 1248: 7949 ldrb r1, [r1, #5] - 124a: 7001 strb r1, [r0, #0] - 124c: 9801 ldr r0, [sp, #4] - 124e: 1c41 add r1, r0, #1 - 1250: 9101 str r1, [sp, #4] - 1252: 9900 ldr r1, [sp, #0] - 1254: 7989 ldrb r1, [r1, #6] - 1256: 7001 strb r1, [r0, #0] - 1258: 4668 mov r0, sp - 125a: 7c00 ldrb r0, [r0, #16] ; 0x10 - 125c: 3003 add r0, #3 - 125e: 4669 mov r1, sp - 1260: 7408 strb r0, [r1, #16] ; 0x10 - 1262: e0e5 b 0x1430 - 1264: 9800 ldr r0, [sp, #0] - 1266: 7840 ldrb r0, [r0, #1] - 1268: 2800 cmp r0, #0 - 126a: d000 beq 0x126e - 126c: e0e0 b 0x1430 - 126e: 9801 ldr r0, [sp, #4] - 1270: 1c41 add r1, r0, #1 - 1272: 9101 str r1, [sp, #4] - 1274: 9900 ldr r1, [sp, #0] - 1276: 7909 ldrb r1, [r1, #4] - 1278: 7001 strb r1, [r0, #0] - 127a: 4668 mov r0, sp - 127c: 7c00 ldrb r0, [r0, #16] ; 0x10 - 127e: 3001 add r0, #1 - 1280: e7ed b 0x125e - 1282: 9800 ldr r0, [sp, #0] - 1284: 7840 ldrb r0, [r0, #1] - 1286: 2800 cmp r0, #0 - 1288: d000 beq 0x128c - 128a: e0d1 b 0x1430 - 128c: e7ef b 0x126e - 128e: 9800 ldr r0, [sp, #0] - 1290: 7840 ldrb r0, [r0, #1] - 1292: 2800 cmp r0, #0 - 1294: d000 beq 0x1298 - 1296: e0cb b 0x1430 - 1298: e7e9 b 0x126e - 129a: 9800 ldr r0, [sp, #0] - 129c: 7840 ldrb r0, [r0, #1] - 129e: 2800 cmp r0, #0 - 12a0: d000 beq 0x12a4 - 12a2: e0c5 b 0x1430 - 12a4: 4669 mov r1, sp - 12a6: 9800 ldr r0, [sp, #0] - 12a8: 8880 ldrh r0, [r0, #4] - 12aa: 8408 strh r0, [r1, #32] ; 0x20 - 12ac: 9801 ldr r0, [sp, #4] - 12ae: 1c41 add r1, r0, #1 - 12b0: 9101 str r1, [sp, #4] - 12b2: 4669 mov r1, sp - 12b4: 8c09 ldrh r1, [r1, #32] ; 0x20 - 12b6: 0409 lsl r1, r1, #16 - 12b8: 0e09 lsr r1, r1, #24 - 12ba: 0209 lsl r1, r1, #8 - 12bc: 1209 asr r1, r1, #8 - 12be: 7001 strb r1, [r0, #0] - 12c0: 9801 ldr r0, [sp, #4] - 12c2: 1c41 add r1, r0, #1 - 12c4: 9101 str r1, [sp, #4] - 12c6: 4669 mov r1, sp - 12c8: 8c09 ldrh r1, [r1, #32] ; 0x20 - 12ca: 0609 lsl r1, r1, #24 - 12cc: 0e09 lsr r1, r1, #24 - 12ce: 7001 strb r1, [r0, #0] - 12d0: 4669 mov r1, sp - 12d2: 9800 ldr r0, [sp, #0] - 12d4: 88c0 ldrh r0, [r0, #6] - 12d6: 8408 strh r0, [r1, #32] ; 0x20 - 12d8: 9801 ldr r0, [sp, #4] - 12da: 1c41 add r1, r0, #1 - 12dc: 9101 str r1, [sp, #4] - 12de: 4669 mov r1, sp - 12e0: 8c09 ldrh r1, [r1, #32] ; 0x20 - 12e2: 0409 lsl r1, r1, #16 - 12e4: 0e09 lsr r1, r1, #24 - 12e6: 0209 lsl r1, r1, #8 - 12e8: 1209 asr r1, r1, #8 - 12ea: 7001 strb r1, [r0, #0] - 12ec: 9801 ldr r0, [sp, #4] - 12ee: 1c41 add r1, r0, #1 - 12f0: 9101 str r1, [sp, #4] - 12f2: 4669 mov r1, sp - 12f4: 8c09 ldrh r1, [r1, #32] ; 0x20 - 12f6: 0609 lsl r1, r1, #24 - 12f8: 0e09 lsr r1, r1, #24 - 12fa: 7001 strb r1, [r0, #0] - 12fc: 4668 mov r0, sp - 12fe: 7c00 ldrb r0, [r0, #16] ; 0x10 - 1300: 3004 add r0, #4 - 1302: e7ac b 0x125e - 1304: 9800 ldr r0, [sp, #0] - 1306: 7840 ldrb r0, [r0, #1] - 1308: 2800 cmp r0, #0 - 130a: d000 beq 0x130e - 130c: e090 b 0x1430 - 130e: e7ae b 0x126e - 1310: 9800 ldr r0, [sp, #0] - 1312: 7840 ldrb r0, [r0, #1] - 1314: 2800 cmp r0, #0 - 1316: d000 beq 0x131a - 1318: e08a b 0x1430 - 131a: 4669 mov r1, sp - 131c: 4668 mov r0, sp - 131e: 7c00 ldrb r0, [r0, #16] ; 0x10 - 1320: 3001 add r0, #1 - 1322: 7408 strb r0, [r1, #16] ; 0x10 - 1324: 4668 mov r0, sp - 1326: 9900 ldr r1, [sp, #0] - 1328: 7909 ldrb r1, [r1, #4] - 132a: 7601 strb r1, [r0, #24] ; 0x18 - 132c: 9801 ldr r0, [sp, #4] - 132e: 1c41 add r1, r0, #1 - 1330: 9101 str r1, [sp, #4] - 1332: 4669 mov r1, sp - 1334: 7e09 ldrb r1, [r1, #24] ; 0x18 - 1336: 7001 strb r1, [r0, #0] - 1338: 4668 mov r0, sp - 133a: 7e00 ldrb r0, [r0, #24] ; 0x18 - 133c: 2840 cmp r0, #64 ; 0x40 - 133e: dd01 ble 0x1344 - 1340: 2004 mov r0, #4 - 1342: e055 b 0x13f0 - 1344: 9800 ldr r0, [sp, #0] - 1346: 3006 add r0, #6 - 1348: 9007 str r0, [sp, #28] ; 0x1c - 134a: 2000 mov r0, #0 - 134c: 9002 str r0, [sp, #8] - 134e: 9902 ldr r1, [sp, #8] - 1350: 4668 mov r0, sp - 1352: 7e00 ldrb r0, [r0, #24] ; 0x18 - 1354: 4281 cmp r1, r0 - 1356: da6b bge 0x1430 - 1358: 9801 ldr r0, [sp, #4] - 135a: 1c41 add r1, r0, #1 - 135c: 9101 str r1, [sp, #4] - 135e: 9907 ldr r1, [sp, #28] ; 0x1c - 1360: 8809 ldrh r1, [r1, #0] - 1362: 0409 lsl r1, r1, #16 - 1364: 0e09 lsr r1, r1, #24 - 1366: 0209 lsl r1, r1, #8 - 1368: 1209 asr r1, r1, #8 - 136a: 7001 strb r1, [r0, #0] - 136c: 9807 ldr r0, [sp, #28] ; 0x1c - 136e: 8801 ldrh r1, [r0, #0] - 1370: 3002 add r0, #2 - 1372: 9007 str r0, [sp, #28] ; 0x1c - 1374: 0608 lsl r0, r1, #24 - 1376: 0e01 lsr r1, r0, #24 - 1378: 9801 ldr r0, [sp, #4] - 137a: 1c42 add r2, r0, #1 - 137c: 9201 str r2, [sp, #4] - 137e: 7001 strb r1, [r0, #0] - 1380: 4669 mov r1, sp - 1382: 4668 mov r0, sp - 1384: 7c00 ldrb r0, [r0, #16] ; 0x10 - 1386: 3002 add r0, #2 - 1388: 7408 strb r0, [r1, #16] ; 0x10 - 138a: 9802 ldr r0, [sp, #8] - 138c: 3001 add r0, #1 - 138e: 9002 str r0, [sp, #8] - 1390: 9902 ldr r1, [sp, #8] - 1392: 4668 mov r0, sp - 1394: 7e00 ldrb r0, [r0, #24] ; 0x18 - 1396: 4281 cmp r1, r0 - 1398: dbde blt 0x1358 - 139a: e049 b 0x1430 - 139c: 9800 ldr r0, [sp, #0] - 139e: 7840 ldrb r0, [r0, #1] - 13a0: 2800 cmp r0, #0 - 13a2: d145 bne 0x1430 - 13a4: 4669 mov r1, sp - 13a6: 9800 ldr r0, [sp, #0] - 13a8: 8880 ldrh r0, [r0, #4] - 13aa: 8408 strh r0, [r1, #32] ; 0x20 - 13ac: 9801 ldr r0, [sp, #4] - 13ae: 1c41 add r1, r0, #1 - 13b0: 9101 str r1, [sp, #4] - 13b2: 4669 mov r1, sp - 13b4: 8c09 ldrh r1, [r1, #32] ; 0x20 - 13b6: 0409 lsl r1, r1, #16 - 13b8: 0e09 lsr r1, r1, #24 - 13ba: 0209 lsl r1, r1, #8 - 13bc: 1209 asr r1, r1, #8 - 13be: 7001 strb r1, [r0, #0] - 13c0: 9801 ldr r0, [sp, #4] - 13c2: 1c41 add r1, r0, #1 - 13c4: 9101 str r1, [sp, #4] - 13c6: 4669 mov r1, sp - 13c8: 8c09 ldrh r1, [r1, #32] ; 0x20 - 13ca: 0609 lsl r1, r1, #24 - 13cc: 0e09 lsr r1, r1, #24 - 13ce: 7001 strb r1, [r0, #0] - 13d0: 4668 mov r0, sp - 13d2: 9900 ldr r1, [sp, #0] - 13d4: 88c9 ldrh r1, [r1, #6] - 13d6: 8401 strh r1, [r0, #32] ; 0x20 - 13d8: 9901 ldr r1, [sp, #4] - 13da: 1c48 add r0, r1, #1 - 13dc: 9001 str r0, [sp, #4] - 13de: 4668 mov r0, sp - 13e0: 8c00 ldrh r0, [r0, #32] ; 0x20 - 13e2: 0400 lsl r0, r0, #16 - 13e4: 0e00 lsr r0, r0, #24 - 13e6: 0200 lsl r0, r0, #8 - 13e8: 1200 asr r0, r0, #8 - 13ea: 7008 strb r0, [r1, #0] - 13ec: e77e b 0x12ec - 13ee: 2008 mov r0, #8 - 13f0: 9003 str r0, [sp, #12] ; 0xc - 13f2: e01d b 0x1430 - 13f4: 9800 ldr r0, [sp, #0] - 13f6: 7800 ldrb r0, [r0, #0] - 13f8: 280a cmp r0, #10 ; 0xa - 13fa: d8f8 bhi 0x13ee - 13fc: a101 add r1, pc, #4 - 13fe: 0080 lsl r0, r0, #2 - 1400: 5808 ldr r0, [r1, r0] - 1402: 4687 mov pc, r0 - 1404: 122a asr r2, r5, #8 - 1406: 0000 lsl r0, r0, #0 - 1408: 1264 asr r4, r4, #9 - 140a: 0000 lsl r0, r0, #0 - 140c: 1282 asr r2, r0, #10 - 140e: 0000 lsl r0, r0, #0 - 1410: 128e asr r6, r1, #10 - 1412: 0000 lsl r0, r0, #0 - 1414: 1430 asr r0, r6, #16 - 1416: 0000 lsl r0, r0, #0 - 1418: 129a asr r2, r3, #10 - 141a: 0000 lsl r0, r0, #0 - 141c: 1304 asr r4, r0, #12 - 141e: 0000 lsl r0, r0, #0 - 1420: 1310 asr r0, r2, #12 - 1422: 0000 lsl r0, r0, #0 - 1424: 1430 asr r0, r6, #16 - 1426: 0000 lsl r0, r0, #0 - 1428: 139c asr r4, r3, #14 - 142a: 0000 lsl r0, r0, #0 - 142c: 1430 asr r0, r6, #16 - 142e: 0000 lsl r0, r0, #0 - 1430: 9805 ldr r0, [sp, #20] ; 0x14 - 1432: 4669 mov r1, sp - 1434: 7c09 ldrb r1, [r1, #16] ; 0x10 - 1436: 7001 strb r1, [r0, #0] - 1438: 9803 ldr r0, [sp, #12] ; 0xc - 143a: b009 add sp, #36 ; 0x24 - 143c: 4770 bx lr - 143e: 0000 lsl r0, r0, #0 - 1440: b500 push {lr} - 1442: b083 sub sp, #12 ; 0xc - 1444: 9101 str r1, [sp, #4] - 1446: 4669 mov r1, sp - 1448: 7008 strb r0, [r1, #0] - 144a: 2000 mov r0, #0 - 144c: 9002 str r0, [sp, #8] - 144e: e073 b 0x1538 - 1450: 4668 mov r0, sp - 1452: 7800 ldrb r0, [r0, #0] - 1454: 28aa cmp r0, #170 ; 0xaa - 1456: d106 bne 0x1466 - 1458: 4965 ldr r1, =0x83ff10 ; via 0x15f0 - 145a: 4865 ldr r0, =0x83ff10 ; via 0x15f0 - 145c: 6800 ldr r0, [r0, #0] - 145e: 3001 add r0, #1 - 1460: 07c0 lsl r0, r0, #31 - 1462: 0fc0 lsr r0, r0, #31 - 1464: e013 b 0x148e - 1466: 4862 ldr r0, =0x83ff10 ; via 0x15f0 - 1468: 6800 ldr r0, [r0, #0] - 146a: 2800 cmp r0, #0 - 146c: d06b beq 0x1546 - 146e: 4961 ldr r1, =0x83ff04 ; via 0x15f4 - 1470: 9801 ldr r0, [sp, #4] - 1472: 3001 add r0, #1 - 1474: 6008 str r0, [r1, #0] - 1476: 4960 ldr r1, =0x83ff0e ; via 0x15f8 - 1478: 2000 mov r0, #0 - 147a: 7008 strb r0, [r1, #0] - 147c: 495f ldr r1, =0x83ff0c ; via 0x15fc - 147e: 4668 mov r0, sp - 1480: 7800 ldrb r0, [r0, #0] - 1482: 8008 strh r0, [r1, #0] - 1484: 495a ldr r1, =0x83ff10 ; via 0x15f0 - 1486: 2000 mov r0, #0 - 1488: 6008 str r0, [r1, #0] - 148a: 495d ldr r1, =0x83ff08 ; via 0x1600 - 148c: 2001 mov r0, #1 - 148e: 6008 str r0, [r1, #0] - 1490: e059 b 0x1546 - 1492: 4668 mov r0, sp - 1494: 7800 ldrb r0, [r0, #0] - 1496: 28aa cmp r0, #170 ; 0xaa - 1498: d113 bne 0x14c2 - 149a: 4855 ldr r0, =0x83ff10 ; via 0x15f0 - 149c: 6800 ldr r0, [r0, #0] - 149e: 2800 cmp r0, #0 - 14a0: d00b beq 0x14ba - 14a2: 4954 ldr r1, =0x83ff04 ; via 0x15f4 - 14a4: 6808 ldr r0, [r1, #0] - 14a6: 1c42 add r2, r0, #1 - 14a8: 600a str r2, [r1, #0] - 14aa: 4669 mov r1, sp - 14ac: 7809 ldrb r1, [r1, #0] - 14ae: 7001 strb r1, [r0, #0] - 14b0: 4951 ldr r1, =0x83ff0e ; via 0x15f8 - 14b2: 7808 ldrb r0, [r1, #0] - 14b4: 3001 add r0, #1 - 14b6: 7008 strb r0, [r1, #0] - 14b8: e013 b 0x14e2 - 14ba: 2101 mov r1, #1 - 14bc: 484c ldr r0, =0x83ff10 ; via 0x15f0 - 14be: 6001 str r1, [r0, #0] - 14c0: e01c b 0x14fc - 14c2: 484b ldr r0, =0x83ff10 ; via 0x15f0 - 14c4: 6800 ldr r0, [r0, #0] - 14c6: 2800 cmp r0, #0 - 14c8: d00d beq 0x14e6 - 14ca: 494a ldr r1, =0x83ff04 ; via 0x15f4 - 14cc: 9801 ldr r0, [sp, #4] - 14ce: 3001 add r0, #1 - 14d0: 6008 str r0, [r1, #0] - 14d2: 4849 ldr r0, =0x83ff0e ; via 0x15f8 - 14d4: 2100 mov r1, #0 - 14d6: 7001 strb r1, [r0, #0] - 14d8: 4948 ldr r1, =0x83ff0c ; via 0x15fc - 14da: 4668 mov r0, sp - 14dc: 7800 ldrb r0, [r0, #0] - 14de: 3001 add r0, #1 - 14e0: 8008 strh r0, [r1, #0] - 14e2: 2100 mov r1, #0 - 14e4: e7ea b 0x14bc - 14e6: 4843 ldr r0, =0x83ff04 ; via 0x15f4 - 14e8: 6801 ldr r1, [r0, #0] - 14ea: 1c4a add r2, r1, #1 - 14ec: 6002 str r2, [r0, #0] - 14ee: 4668 mov r0, sp - 14f0: 7800 ldrb r0, [r0, #0] - 14f2: 7008 strb r0, [r1, #0] - 14f4: 4940 ldr r1, =0x83ff0e ; via 0x15f8 - 14f6: 7808 ldrb r0, [r1, #0] - 14f8: 3001 add r0, #1 - 14fa: 7008 strb r0, [r1, #0] - 14fc: 483f ldr r0, =0x83ff0c ; via 0x15fc - 14fe: 8801 ldrh r1, [r0, #0] - 1500: 3901 sub r1, #1 - 1502: 8001 strh r1, [r0, #0] - 1504: 483d ldr r0, =0x83ff0c ; via 0x15fc - 1506: 8800 ldrh r0, [r0, #0] - 1508: 2800 cmp r0, #0 - 150a: d11c bne 0x1546 - 150c: 9901 ldr r1, [sp, #4] - 150e: 483a ldr r0, =0x83ff0e ; via 0x15f8 - 1510: 7800 ldrb r0, [r0, #0] - 1512: 7008 strb r0, [r1, #0] - 1514: 2001 mov r0, #1 - 1516: 9002 str r0, [sp, #8] - 1518: 4839 ldr r0, =0x83ff08 ; via 0x1600 - 151a: 2100 mov r1, #0 - 151c: 6001 str r1, [r0, #0] - 151e: 4834 ldr r0, =0x83ff10 ; via 0x15f0 - 1520: 6001 str r1, [r0, #0] - 1522: 9801 ldr r0, [sp, #4] - 1524: 7800 ldrb r0, [r0, #0] - 1526: 2801 cmp r0, #1 - 1528: d10d bne 0x1546 - 152a: 9801 ldr r0, [sp, #4] - 152c: 7840 ldrb r0, [r0, #1] - 152e: 28dd cmp r0, #221 ; 0xdd - 1530: d109 bne 0x1546 - 1532: f7ff faf7 bl 0xb24 - 1536: e006 b 0x1546 - 1538: 4831 ldr r0, =0x83ff08 ; via 0x1600 - 153a: 6800 ldr r0, [r0, #0] - 153c: 2800 cmp r0, #0 - 153e: d087 beq 0x1450 - 1540: 3801 sub r0, #1 - 1542: 2800 cmp r0, #0 - 1544: d0a5 beq 0x1492 - 1546: 9802 ldr r0, [sp, #8] - 1548: b003 add sp, #12 ; 0xc - 154a: bd00 pop {pc} - 154c: b086 sub sp, #24 ; 0x18 - 154e: 9202 str r2, [sp, #8] - 1550: 9101 str r1, [sp, #4] - 1552: 9000 str r0, [sp, #0] - 1554: 9801 ldr r0, [sp, #4] - 1556: 3001 add r0, #1 - 1558: 9004 str r0, [sp, #16] ; 0x10 - 155a: 9800 ldr r0, [sp, #0] - 155c: 1c41 add r1, r0, #1 - 155e: 9100 str r1, [sp, #0] - 1560: 9005 str r0, [sp, #20] ; 0x14 - 1562: 9901 ldr r1, [sp, #4] - 1564: 20aa mov r0, #170 ; 0xaa - 1566: 7008 strb r0, [r1, #0] - 1568: 9801 ldr r0, [sp, #4] - 156a: 3002 add r0, #2 - 156c: 9001 str r0, [sp, #4] - 156e: 9902 ldr r1, [sp, #8] - 1570: 2000 mov r0, #0 - 1572: 8008 strh r0, [r1, #0] - 1574: 4669 mov r1, sp - 1576: 8188 strh r0, [r1, #12] ; 0xc - 1578: 4668 mov r0, sp - 157a: 8981 ldrh r1, [r0, #12] ; 0xc - 157c: 9805 ldr r0, [sp, #20] ; 0x14 - 157e: 7800 ldrb r0, [r0, #0] - 1580: 4281 cmp r1, r0 - 1582: da23 bge 0x15cc - 1584: 9800 ldr r0, [sp, #0] - 1586: 7800 ldrb r0, [r0, #0] - 1588: 28aa cmp r0, #170 ; 0xaa - 158a: d108 bne 0x159e - 158c: 9801 ldr r0, [sp, #4] - 158e: 1c41 add r1, r0, #1 - 1590: 9101 str r1, [sp, #4] - 1592: 21aa mov r1, #170 ; 0xaa - 1594: 7001 strb r1, [r0, #0] - 1596: 9902 ldr r1, [sp, #8] - 1598: 8808 ldrh r0, [r1, #0] - 159a: 3001 add r0, #1 - 159c: 8008 strh r0, [r1, #0] - 159e: 9800 ldr r0, [sp, #0] - 15a0: 7801 ldrb r1, [r0, #0] - 15a2: 3001 add r0, #1 - 15a4: 9000 str r0, [sp, #0] - 15a6: 9801 ldr r0, [sp, #4] - 15a8: 1c42 add r2, r0, #1 - 15aa: 9201 str r2, [sp, #4] - 15ac: 7001 strb r1, [r0, #0] - 15ae: 9902 ldr r1, [sp, #8] - 15b0: 8808 ldrh r0, [r1, #0] - 15b2: 3001 add r0, #1 - 15b4: 8008 strh r0, [r1, #0] - 15b6: 4669 mov r1, sp - 15b8: 4668 mov r0, sp - 15ba: 8980 ldrh r0, [r0, #12] ; 0xc - 15bc: 3001 add r0, #1 - 15be: 8188 strh r0, [r1, #12] ; 0xc - 15c0: 4668 mov r0, sp - 15c2: 8980 ldrh r0, [r0, #12] ; 0xc - 15c4: 9905 ldr r1, [sp, #20] ; 0x14 - 15c6: 7809 ldrb r1, [r1, #0] - 15c8: 4288 cmp r0, r1 - 15ca: dbdb blt 0x1584 - 15cc: 9904 ldr r1, [sp, #16] ; 0x10 - 15ce: 9802 ldr r0, [sp, #8] - 15d0: 7800 ldrb r0, [r0, #0] - 15d2: 7008 strb r0, [r1, #0] - 15d4: 9902 ldr r1, [sp, #8] - 15d6: 8808 ldrh r0, [r1, #0] - 15d8: 3002 add r0, #2 - 15da: 8008 strh r0, [r1, #0] - 15dc: b006 add sp, #24 ; 0x18 - 15de: 4770 bx lr - 15e0: 4907 ldr r1, =0x83ff08 ; via 0x1600 - 15e2: 2000 mov r0, #0 - 15e4: 6008 str r0, [r1, #0] - 15e6: 4802 ldr r0, =0x83ff10 ; via 0x15f0 - 15e8: 2100 mov r1, #0 - 15ea: 6001 str r1, [r0, #0] - 15ec: 4770 bx lr - 15ee: 46c0 nop (mov r8, r8) - 15f0: ff10 - 15f2: 0083 lsl r3, r0, #2 - 15f4: ff04 - 15f6: 0083 lsl r3, r0, #2 - 15f8: ff0e - 15fa: 0083 lsl r3, r0, #2 - 15fc: ff0c - 15fe: 0083 lsl r3, r0, #2 - 1600: ff08 - 1602: 0083 lsl r3, r0, #2 - 1604: b082 sub sp, #8 - 1606: 9101 str r1, [sp, #4] - 1608: 9000 str r0, [sp, #0] - 160a: 9901 ldr r1, [sp, #4] - 160c: 2000 mov r0, #0 - 160e: 7008 strb r0, [r1, #0] - 1610: 9801 ldr r0, [sp, #4] - 1612: 2100 mov r1, #0 - 1614: 7041 strb r1, [r0, #1] - 1616: 9801 ldr r0, [sp, #4] - 1618: 2102 mov r1, #2 - 161a: 7101 strb r1, [r0, #4] - 161c: 9801 ldr r0, [sp, #4] - 161e: 2106 mov r1, #6 - 1620: 7141 strb r1, [r0, #5] - 1622: 9801 ldr r0, [sp, #4] - 1624: 2102 mov r1, #2 - 1626: 7181 strb r1, [r0, #6] - 1628: b002 add sp, #8 - 162a: 4770 bx lr - 162c: b500 push {lr} - 162e: b084 sub sp, #16 ; 0x10 - 1630: 466b mov r3, sp - 1632: 721a strb r2, [r3, #8] - 1634: 9101 str r1, [sp, #4] - 1636: 9000 str r0, [sp, #0] - 1638: 9901 ldr r1, [sp, #4] - 163a: 2009 mov r0, #9 - 163c: 7008 strb r0, [r1, #0] - 163e: e015 b 0x166c - 1640: 9801 ldr r0, [sp, #4] - 1642: 2100 mov r1, #0 - 1644: 7041 strb r1, [r0, #1] - 1646: 9901 ldr r1, [sp, #4] - 1648: 4668 mov r0, sp - 164a: 8940 ldrh r0, [r0, #10] ; 0xa - 164c: 8088 strh r0, [r1, #4] - 164e: 9901 ldr r1, [sp, #4] - 1650: 4668 mov r0, sp - 1652: 8980 ldrh r0, [r0, #12] ; 0xc - 1654: 80c8 strh r0, [r1, #6] - 1656: e01e b 0x1696 - 1658: 2101 mov r1, #1 - 165a: e004 b 0x1666 - 165c: 2103 mov r1, #3 - 165e: e002 b 0x1666 - 1660: 2105 mov r1, #5 - 1662: e000 b 0x1666 - 1664: 2106 mov r1, #6 - 1666: 9801 ldr r0, [sp, #4] - 1668: 7041 strb r1, [r0, #1] - 166a: e014 b 0x1696 - 166c: 200a mov r0, #10 ; 0xa - 166e: 4468 add r0, sp - 1670: a903 add r1, sp, #12 ; 0xc - 1672: 466a mov r2, sp - 1674: 7a12 ldrb r2, [r2, #8] - 1676: f000 fb71 bl 0x1d5c - 167a: 2800 cmp r0, #0 - 167c: d0e0 beq 0x1640 - 167e: 3801 sub r0, #1 - 1680: 2800 cmp r0, #0 - 1682: d0e9 beq 0x1658 - 1684: 3801 sub r0, #1 - 1686: 2800 cmp r0, #0 - 1688: d0e8 beq 0x165c - 168a: 3801 sub r0, #1 - 168c: 2800 cmp r0, #0 - 168e: d0e7 beq 0x1660 - 1690: 3801 sub r0, #1 - 1692: 2800 cmp r0, #0 - 1694: d0e6 beq 0x1664 - 1696: b004 add sp, #16 ; 0x10 - 1698: bd00 pop {pc} - 169a: b084 sub sp, #16 ; 0x10 - 169c: 9101 str r1, [sp, #4] - 169e: 9000 str r0, [sp, #0] - 16a0: 9901 ldr r1, [sp, #4] - 16a2: 200a mov r0, #10 ; 0xa - 16a4: 7008 strb r0, [r1, #0] - 16a6: 9801 ldr r0, [sp, #4] - 16a8: 2100 mov r1, #0 - 16aa: 7041 strb r1, [r0, #1] - 16ac: 4669 mov r1, sp - 16ae: 9800 ldr r0, [sp, #0] - 16b0: 8880 ldrh r0, [r0, #4] - 16b2: 8108 strh r0, [r1, #8] - 16b4: 9800 ldr r0, [sp, #0] - 16b6: 88c0 ldrh r0, [r0, #6] - 16b8: 8148 strh r0, [r1, #10] ; 0xa - 16ba: 4668 mov r0, sp - 16bc: 8941 ldrh r1, [r0, #10] ; 0xa - 16be: 8900 ldrh r0, [r0, #8] - 16c0: 0400 lsl r0, r0, #16 - 16c2: 1808 add r0, r1, r0 - 16c4: 9003 str r0, [sp, #12] ; 0xc - 16c6: 9803 ldr r0, [sp, #12] ; 0xc - 16c8: b004 add sp, #16 ; 0x10 - 16ca: 4770 bx lr - 16cc: b085 sub sp, #20 ; 0x14 - 16ce: 9303 str r3, [sp, #12] ; 0xc - 16d0: 9202 str r2, [sp, #8] - 16d2: 9101 str r1, [sp, #4] - 16d4: 4669 mov r1, sp - 16d6: 7008 strb r0, [r1, #0] - 16d8: 48ea ldr r0, =0x83ff19 ; via 0x1a84 - 16da: 7809 ldrb r1, [r1, #0] - 16dc: 7802 ldrb r2, [r0, #0] - 16de: 1889 add r1, r1, r2 - 16e0: 7001 strb r1, [r0, #0] - 16e2: 48e9 ldr r0, =0x83ff1a ; via 0x1a88 - 16e4: 7800 ldrb r0, [r0, #0] - 16e6: 2800 cmp r0, #0 - 16e8: d00e beq 0x1708 - 16ea: 48e8 ldr r0, =0x83ff26 ; via 0x1a8c - 16ec: 4669 mov r1, sp - 16ee: 780a ldrb r2, [r1, #0] - 16f0: 8801 ldrh r1, [r0, #0] - 16f2: 1851 add r1, r2, r1 - 16f4: 8001 strh r1, [r0, #0] - 16f6: 9903 ldr r1, [sp, #12] ; 0xc - 16f8: 48e4 ldr r0, =0x83ff26 ; via 0x1a8c - 16fa: 8800 ldrh r0, [r0, #0] - 16fc: 8008 strh r0, [r1, #0] - 16fe: 9801 ldr r0, [sp, #4] - 1700: 2100 mov r1, #0 - 1702: 6001 str r1, [r0, #0] - 1704: 2000 mov r0, #0 - 1706: e009 b 0x171c - 1708: 9902 ldr r1, [sp, #8] - 170a: 6808 ldr r0, [r1, #0] - 170c: 3002 add r0, #2 - 170e: 6008 str r0, [r1, #0] - 1710: 49de ldr r1, =0x83ff26 ; via 0x1a8c - 1712: 4668 mov r0, sp - 1714: 7800 ldrb r0, [r0, #0] - 1716: 0200 lsl r0, r0, #8 - 1718: 8008 strh r0, [r1, #0] - 171a: 2001 mov r0, #1 - 171c: 9004 str r0, [sp, #16] ; 0x10 - 171e: 2001 mov r0, #1 - 1720: 49d9 ldr r1, =0x83ff1a ; via 0x1a88 - 1722: 7809 ldrb r1, [r1, #0] - 1724: 4388 bic r0, r1 - 1726: 49d8 ldr r1, =0x83ff1a ; via 0x1a88 - 1728: 7008 strb r0, [r1, #0] - 172a: 48d9 ldr r0, =0x83ff24 ; via 0x1a90 - 172c: 7801 ldrb r1, [r0, #0] - 172e: 3901 sub r1, #1 - 1730: 7001 strb r1, [r0, #0] - 1732: 48d7 ldr r0, =0x83ff24 ; via 0x1a90 - 1734: 7800 ldrb r0, [r0, #0] - 1736: 2800 cmp r0, #0 - 1738: d102 bne 0x1740 - 173a: 48d6 ldr r0, =0x83ff20 ; via 0x1a94 - 173c: 2106 mov r1, #6 - 173e: 6001 str r1, [r0, #0] - 1740: 9804 ldr r0, [sp, #16] ; 0x10 - 1742: b005 add sp, #20 ; 0x14 - 1744: 46f7 mov pc, lr - 1746: b083 sub sp, #12 ; 0xc - 1748: 9101 str r1, [sp, #4] - 174a: 4669 mov r1, sp - 174c: 7008 strb r0, [r1, #0] - 174e: 2001 mov r0, #1 - 1750: 9002 str r0, [sp, #8] - 1752: 48d1 ldr r0, =0x83ff1b ; via 0x1a98 - 1754: 7800 ldrb r0, [r0, #0] - 1756: 2800 cmp r0, #0 - 1758: d10a bne 0x1770 - 175a: 4668 mov r0, sp - 175c: 7800 ldrb r0, [r0, #0] - 175e: 2853 cmp r0, #83 ; 0x53 - 1760: d102 bne 0x1768 - 1762: 48cd ldr r0, =0x83ff1b ; via 0x1a98 - 1764: 2101 mov r1, #1 - 1766: e01a b 0x179e - 1768: 2101 mov r1, #1 - 176a: 9801 ldr r0, [sp, #4] - 176c: 6001 str r1, [r0, #0] - 176e: e03b b 0x17e8 - 1770: 49c9 ldr r1, =0x83ff1b ; via 0x1a98 - 1772: 2000 mov r0, #0 - 1774: 7008 strb r0, [r1, #0] - 1776: 4668 mov r0, sp - 1778: 7800 ldrb r0, [r0, #0] - 177a: 2830 cmp r0, #48 ; 0x30 - 177c: d111 bne 0x17a2 - 177e: 48c7 ldr r0, =0x83ff18 ; via 0x1a9c - 1780: 7800 ldrb r0, [r0, #0] - 1782: 2800 cmp r0, #0 - 1784: d006 beq 0x1794 - 1786: 9901 ldr r1, [sp, #4] - 1788: 2001 mov r0, #1 - 178a: 6008 str r0, [r1, #0] - 178c: 49c3 ldr r1, =0x83ff18 ; via 0x1a9c - 178e: 2000 mov r0, #0 - 1790: 7008 strb r0, [r1, #0] - 1792: e02a b 0x17ea - 1794: 48bf ldr r0, =0x83ff20 ; via 0x1a94 - 1796: 2102 mov r1, #2 - 1798: 6001 str r1, [r0, #0] - 179a: 48ef ldr r0, =0x83ff1c ; via 0x1b58 - 179c: 2100 mov r1, #0 - 179e: 7001 strb r1, [r0, #0] - 17a0: e024 b 0x17ec - 17a2: 4668 mov r0, sp - 17a4: 7800 ldrb r0, [r0, #0] - 17a6: 2833 cmp r0, #51 ; 0x33 - 17a8: d105 bne 0x17b6 - 17aa: 48bc ldr r0, =0x83ff18 ; via 0x1a9c - 17ac: 7800 ldrb r0, [r0, #0] - 17ae: 2800 cmp r0, #0 - 17b0: d0da beq 0x1768 - 17b2: 2004 mov r0, #4 - 17b4: e00c b 0x17d0 - 17b6: 4668 mov r0, sp - 17b8: 7800 ldrb r0, [r0, #0] - 17ba: 2837 cmp r0, #55 ; 0x37 - 17bc: d10e bne 0x17dc - 17be: 48b7 ldr r0, =0x83ff18 ; via 0x1a9c - 17c0: 7800 ldrb r0, [r0, #0] - 17c2: 2800 cmp r0, #0 - 17c4: d103 bne 0x17ce - 17c6: 9901 ldr r1, [sp, #4] - 17c8: 2001 mov r0, #1 - 17ca: 6008 str r0, [r1, #0] - 17cc: e00c b 0x17e8 - 17ce: 2003 mov r0, #3 - 17d0: 49b0 ldr r1, =0x83ff20 ; via 0x1a94 - 17d2: 6008 str r0, [r1, #0] - 17d4: 2000 mov r0, #0 - 17d6: 49e0 ldr r1, =0x83ff1c ; via 0x1b58 - 17d8: 7008 strb r0, [r1, #0] - 17da: e007 b 0x17ec - 17dc: 9901 ldr r1, [sp, #4] - 17de: 2001 mov r0, #1 - 17e0: 6008 str r0, [r1, #0] - 17e2: 48ae ldr r0, =0x83ff18 ; via 0x1a9c - 17e4: 2100 mov r1, #0 - 17e6: 7001 strb r1, [r0, #0] - 17e8: 2000 mov r0, #0 - 17ea: 9002 str r0, [sp, #8] - 17ec: 9802 ldr r0, [sp, #8] - 17ee: b003 add sp, #12 ; 0xc - 17f0: 46f7 mov pc, lr - 17f2: b083 sub sp, #12 ; 0xc - 17f4: 9101 str r1, [sp, #4] - 17f6: 4669 mov r1, sp - 17f8: 7008 strb r0, [r1, #0] - 17fa: 2001 mov r0, #1 - 17fc: 9002 str r0, [sp, #8] - 17fe: 49d7 ldr r1, =0x830 ; via 0x1b5c - 1800: 48d5 ldr r0, =0x83ff1c ; via 0x1b58 - 1802: 7800 ldrb r0, [r0, #0] - 1804: 0080 lsl r0, r0, #2 - 1806: 5808 ldr r0, [r1, r0] - 1808: 4669 mov r1, sp - 180a: 7809 ldrb r1, [r1, #0] - 180c: 4281 cmp r1, r0 - 180e: d10d bne 0x182c - 1810: 49d1 ldr r1, =0x83ff1c ; via 0x1b58 - 1812: 7808 ldrb r0, [r1, #0] - 1814: 3001 add r0, #1 - 1816: 7008 strb r0, [r1, #0] - 1818: 48cf ldr r0, =0x83ff1c ; via 0x1b58 - 181a: 7800 ldrb r0, [r0, #0] - 181c: 2807 cmp r0, #7 - 181e: d10d bne 0x183c - 1820: 489c ldr r0, =0x83ff20 ; via 0x1a94 - 1822: 2101 mov r1, #1 - 1824: 6001 str r1, [r0, #0] - 1826: 489d ldr r0, =0x83ff18 ; via 0x1a9c - 1828: 7001 strb r1, [r0, #0] - 182a: e007 b 0x183c - 182c: 9801 ldr r0, [sp, #4] - 182e: 2101 mov r1, #1 - 1830: 6001 str r1, [r0, #0] - 1832: 4998 ldr r1, =0x83ff20 ; via 0x1a94 - 1834: 2001 mov r0, #1 - 1836: 6008 str r0, [r1, #0] - 1838: 2000 mov r0, #0 - 183a: 9002 str r0, [sp, #8] - 183c: 9802 ldr r0, [sp, #8] - 183e: b003 add sp, #12 ; 0xc - 1840: 46f7 mov pc, lr - 1842: b083 sub sp, #12 ; 0xc - 1844: 9101 str r1, [sp, #4] - 1846: 4669 mov r1, sp - 1848: 7008 strb r0, [r1, #0] - 184a: 2001 mov r0, #1 - 184c: 9002 str r0, [sp, #8] - 184e: 49c4 ldr r1, =0x84c ; via 0x1b60 - 1850: 48c1 ldr r0, =0x83ff1c ; via 0x1b58 - 1852: 7800 ldrb r0, [r0, #0] - 1854: 0080 lsl r0, r0, #2 - 1856: 5808 ldr r0, [r1, r0] - 1858: 4669 mov r1, sp - 185a: 7809 ldrb r1, [r1, #0] - 185c: 4281 cmp r1, r0 - 185e: d112 bne 0x1886 - 1860: 49bd ldr r1, =0x83ff1c ; via 0x1b58 - 1862: 7808 ldrb r0, [r1, #0] - 1864: 3001 add r0, #1 - 1866: 7008 strb r0, [r1, #0] - 1868: 48bb ldr r0, =0x83ff1c ; via 0x1b58 - 186a: 7800 ldrb r0, [r0, #0] - 186c: 2806 cmp r0, #6 - 186e: d114 bne 0x189a - 1870: 9801 ldr r0, [sp, #4] - 1872: 2102 mov r1, #2 - 1874: 6001 str r1, [r0, #0] - 1876: 4887 ldr r0, =0x83ff20 ; via 0x1a94 - 1878: 2101 mov r1, #1 - 187a: 6001 str r1, [r0, #0] - 187c: 4887 ldr r0, =0x83ff18 ; via 0x1a9c - 187e: 2100 mov r1, #0 - 1880: 7001 strb r1, [r0, #0] - 1882: 2000 mov r0, #0 - 1884: e008 b 0x1898 - 1886: 9801 ldr r0, [sp, #4] - 1888: 2101 mov r1, #1 - 188a: 6001 str r1, [r0, #0] - 188c: 4981 ldr r1, =0x83ff20 ; via 0x1a94 - 188e: 2001 mov r0, #1 - 1890: 6008 str r0, [r1, #0] - 1892: 4982 ldr r1, =0x83ff18 ; via 0x1a9c - 1894: 2000 mov r0, #0 - 1896: 7008 strb r0, [r1, #0] - 1898: 9002 str r0, [sp, #8] - 189a: 9802 ldr r0, [sp, #8] - 189c: b003 add sp, #12 ; 0xc - 189e: 46f7 mov pc, lr - 18a0: b081 sub sp, #4 - 18a2: 4669 mov r1, sp - 18a4: 7008 strb r0, [r1, #0] - 18a6: 497a ldr r1, =0x83ff24 ; via 0x1a90 - 18a8: 4668 mov r0, sp - 18aa: 7800 ldrb r0, [r0, #0] - 18ac: 3801 sub r0, #1 - 18ae: 7008 strb r0, [r1, #0] - 18b0: 4874 ldr r0, =0x83ff19 ; via 0x1a84 - 18b2: 4669 mov r1, sp - 18b4: 7809 ldrb r1, [r1, #0] - 18b6: 7001 strb r1, [r0, #0] - 18b8: 48a7 ldr r0, =0x83ff1c ; via 0x1b58 - 18ba: 2100 mov r1, #0 - 18bc: 7001 strb r1, [r0, #0] - 18be: 48e3 ldr r0, =0x83ff14 ; via 0x1c4c - 18c0: 6001 str r1, [r0, #0] - 18c2: 4874 ldr r0, =0x83ff20 ; via 0x1a94 - 18c4: 2105 mov r1, #5 - 18c6: 6001 str r1, [r0, #0] - 18c8: b001 add sp, #4 - 18ca: 46f7 mov pc, lr - 18cc: b084 sub sp, #16 ; 0x10 - 18ce: 9202 str r2, [sp, #8] - 18d0: 9101 str r1, [sp, #4] - 18d2: 4669 mov r1, sp - 18d4: 7008 strb r0, [r1, #0] - 18d6: 2001 mov r0, #1 - 18d8: 9003 str r0, [sp, #12] ; 0xc - 18da: 496d ldr r1, =0x83ff24 ; via 0x1a90 - 18dc: 7808 ldrb r0, [r1, #0] - 18de: 3801 sub r0, #1 - 18e0: 7008 strb r0, [r1, #0] - 18e2: 486b ldr r0, =0x83ff24 ; via 0x1a90 - 18e4: 7800 ldrb r0, [r0, #0] - 18e6: 2800 cmp r0, #0 - 18e8: d026 beq 0x1938 - 18ea: 4866 ldr r0, =0x83ff19 ; via 0x1a84 - 18ec: 4669 mov r1, sp - 18ee: 780a ldrb r2, [r1, #0] - 18f0: 7801 ldrb r1, [r0, #0] - 18f2: 1851 add r1, r2, r1 - 18f4: 7001 strb r1, [r0, #0] - 18f6: 4998 ldr r1, =0x83ff1c ; via 0x1b58 - 18f8: 7808 ldrb r0, [r1, #0] - 18fa: 3001 add r0, #1 - 18fc: 7008 strb r0, [r1, #0] - 18fe: 49d3 ldr r1, =0x83ff14 ; via 0x1c4c - 1900: 2204 mov r2, #4 - 1902: 4895 ldr r0, =0x83ff1c ; via 0x1b58 - 1904: 7800 ldrb r0, [r0, #0] - 1906: 1a10 sub r0, r2, r0 - 1908: 00c2 lsl r2, r0, #3 - 190a: 4668 mov r0, sp - 190c: 7800 ldrb r0, [r0, #0] - 190e: 4090 lsl r0, r2 - 1910: 680a ldr r2, [r1, #0] - 1912: 1880 add r0, r0, r2 - 1914: 6008 str r0, [r1, #0] - 1916: 4890 ldr r0, =0x83ff1c ; via 0x1b58 - 1918: 7800 ldrb r0, [r0, #0] - 191a: 2804 cmp r0, #4 - 191c: d117 bne 0x194e - 191e: 9902 ldr r1, [sp, #8] - 1920: 48ca ldr r0, =0x83ff14 ; via 0x1c4c - 1922: 6800 ldr r0, [r0, #0] - 1924: 3802 sub r0, #2 - 1926: 6008 str r0, [r1, #0] - 1928: 485a ldr r0, =0x83ff20 ; via 0x1a94 - 192a: 2100 mov r1, #0 - 192c: 6001 str r1, [r0, #0] - 192e: 4856 ldr r0, =0x83ff1a ; via 0x1a88 - 1930: 7001 strb r1, [r0, #0] - 1932: 4889 ldr r0, =0x83ff1c ; via 0x1b58 - 1934: 7001 strb r1, [r0, #0] - 1936: e00a b 0x194e - 1938: 9801 ldr r0, [sp, #4] - 193a: 2101 mov r1, #1 - 193c: 6001 str r1, [r0, #0] - 193e: 4955 ldr r1, =0x83ff20 ; via 0x1a94 - 1940: 2001 mov r0, #1 - 1942: 6008 str r0, [r1, #0] - 1944: 4855 ldr r0, =0x83ff18 ; via 0x1a9c - 1946: 2100 mov r1, #0 - 1948: 7001 strb r1, [r0, #0] - 194a: 2000 mov r0, #0 - 194c: 9003 str r0, [sp, #12] ; 0xc - 194e: 9803 ldr r0, [sp, #12] ; 0xc - 1950: b004 add sp, #16 ; 0x10 - 1952: 46f7 mov pc, lr - 1954: b083 sub sp, #12 ; 0xc - 1956: 9101 str r1, [sp, #4] - 1958: 4669 mov r1, sp - 195a: 7008 strb r0, [r1, #0] - 195c: 2001 mov r0, #1 - 195e: 9002 str r0, [sp, #8] - 1960: 494c ldr r1, =0x83ff20 ; via 0x1a94 - 1962: 6008 str r0, [r1, #0] - 1964: 20ff mov r0, #255 ; 0xff - 1966: 4669 mov r1, sp - 1968: 7809 ldrb r1, [r1, #0] - 196a: 4388 bic r0, r1 - 196c: 4945 ldr r1, =0x83ff19 ; via 0x1a84 - 196e: 7809 ldrb r1, [r1, #0] - 1970: 4281 cmp r1, r0 - 1972: d007 beq 0x1984 - 1974: 9801 ldr r0, [sp, #4] - 1976: 2101 mov r1, #1 - 1978: 6001 str r1, [r0, #0] - 197a: 4848 ldr r0, =0x83ff18 ; via 0x1a9c - 197c: 2100 mov r1, #0 - 197e: 7001 strb r1, [r0, #0] - 1980: 2000 mov r0, #0 - 1982: 9002 str r0, [sp, #8] - 1984: 9802 ldr r0, [sp, #8] - 1986: b003 add sp, #12 ; 0xc - 1988: 46f7 mov pc, lr - 198a: b085 sub sp, #20 ; 0x14 - 198c: 466b mov r3, sp - 198e: 719a strb r2, [r3, #6] - 1990: 466a mov r2, sp - 1992: 8091 strh r1, [r2, #4] - 1994: 9000 str r0, [sp, #0] - 1996: 9800 ldr r0, [sp, #0] - 1998: 9002 str r0, [sp, #8] - 199a: 4669 mov r1, sp - 199c: 4668 mov r0, sp - 199e: 8880 ldrh r0, [r0, #4] - 19a0: 8208 strh r0, [r1, #16] ; 0x10 - 19a2: 4668 mov r0, sp - 19a4: 8a00 ldrh r0, [r0, #16] ; 0x10 - 19a6: 2800 cmp r0, #0 - 19a8: d01e beq 0x19e8 - 19aa: 49e3 ldr r1, =0x864 ; via 0x1d38 - 19ac: 4668 mov r0, sp - 19ae: 7980 ldrb r0, [r0, #6] - 19b0: 0080 lsl r0, r0, #2 - 19b2: 5808 ldr r0, [r1, r0] - 19b4: 7941 ldrb r1, [r0, #5] - 19b6: 4668 mov r0, sp - 19b8: 7301 strb r1, [r0, #12] ; 0xc - 19ba: 7b00 ldrb r0, [r0, #12] ; 0xc - 19bc: 0980 lsr r0, r0, #6 - 19be: d3f4 bcc 0x19aa - 19c0: 49dd ldr r1, =0x864 ; via 0x1d38 - 19c2: 4668 mov r0, sp - 19c4: 7980 ldrb r0, [r0, #6] - 19c6: 0080 lsl r0, r0, #2 - 19c8: 5809 ldr r1, [r1, r0] - 19ca: 9802 ldr r0, [sp, #8] - 19cc: 7800 ldrb r0, [r0, #0] - 19ce: 7008 strb r0, [r1, #0] - 19d0: 9802 ldr r0, [sp, #8] - 19d2: 3001 add r0, #1 - 19d4: 9002 str r0, [sp, #8] - 19d6: 4669 mov r1, sp - 19d8: 4668 mov r0, sp - 19da: 8a00 ldrh r0, [r0, #16] ; 0x10 - 19dc: 3801 sub r0, #1 - 19de: 8208 strh r0, [r1, #16] ; 0x10 - 19e0: 4668 mov r0, sp - 19e2: 8a00 ldrh r0, [r0, #16] ; 0x10 - 19e4: 2800 cmp r0, #0 - 19e6: d1e0 bne 0x19aa - 19e8: b005 add sp, #20 ; 0x14 - 19ea: 46f7 mov pc, lr - 19ec: b082 sub sp, #8 - 19ee: 4669 mov r1, sp - 19f0: 7008 strb r0, [r1, #0] - 19f2: 2000 mov r0, #0 - 19f4: 8088 strh r0, [r1, #4] - 19f6: 4668 mov r0, sp - 19f8: 8881 ldrh r1, [r0, #4] - 19fa: 20ff mov r0, #255 ; 0xff - 19fc: 30f5 add r0, #245 ; 0xf5 - 19fe: 4281 cmp r1, r0 - 1a00: da21 bge 0x1a46 - 1a02: 4669 mov r1, sp - 1a04: 4668 mov r0, sp - 1a06: 8880 ldrh r0, [r0, #4] - 1a08: 3001 add r0, #1 - 1a0a: 8088 strh r0, [r1, #4] - 1a0c: 48ca ldr r0, =0x864 ; via 0x1d38 - 1a0e: 7809 ldrb r1, [r1, #0] - 1a10: 0089 lsl r1, r1, #2 - 1a12: 5840 ldr r0, [r0, r1] - 1a14: 7940 ldrb r0, [r0, #5] - 1a16: 4669 mov r1, sp - 1a18: 7048 strb r0, [r1, #1] - 1a1a: 4668 mov r0, sp - 1a1c: 7840 ldrb r0, [r0, #1] - 1a1e: 0840 lsr r0, r0, #1 - 1a20: d30b bcc 0x1a3a - 1a22: 49c5 ldr r1, =0x864 ; via 0x1d38 - 1a24: 4668 mov r0, sp - 1a26: 7800 ldrb r0, [r0, #0] - 1a28: 0080 lsl r0, r0, #2 - 1a2a: 5808 ldr r0, [r1, r0] - 1a2c: 7800 ldrb r0, [r0, #0] - 1a2e: 0600 lsl r0, r0, #24 - 1a30: 0e00 lsr r0, r0, #24 - 1a32: 4669 mov r1, sp - 1a34: 7088 strb r0, [r1, #2] - 1a36: 2000 mov r0, #0 - 1a38: 8088 strh r0, [r1, #4] - 1a3a: 4668 mov r0, sp - 1a3c: 8881 ldrh r1, [r0, #4] - 1a3e: 20ff mov r0, #255 ; 0xff - 1a40: 30f5 add r0, #245 ; 0xf5 - 1a42: 4281 cmp r1, r0 - 1a44: dbdd blt 0x1a02 - 1a46: b002 add sp, #8 - 1a48: 4770 bx lr - 1a4a: b500 push {lr} - 1a4c: b08c sub sp, #48 ; 0x30 - 1a4e: 466a mov r2, sp - 1a50: 7111 strb r1, [r2, #4] - 1a52: 9000 str r0, [sp, #0] - 1a54: 2001 mov r0, #1 - 1a56: 9002 str r0, [sp, #8] - 1a58: 9800 ldr r0, [sp, #0] - 1a5a: a904 add r1, sp, #16 ; 0x10 - 1a5c: aa03 add r2, sp, #12 ; 0xc - 1a5e: f7ff fd75 bl 0x154c - 1a62: 4668 mov r0, sp - 1a64: 8980 ldrh r0, [r0, #12] ; 0xc - 1a66: 2820 cmp r0, #32 ; 0x20 - 1a68: dd02 ble 0x1a70 - 1a6a: 2000 mov r0, #0 - 1a6c: 9002 str r0, [sp, #8] - 1a6e: e006 b 0x1a7e - 1a70: a804 add r0, sp, #16 ; 0x10 - 1a72: 4669 mov r1, sp - 1a74: 8989 ldrh r1, [r1, #12] ; 0xc - 1a76: 466a mov r2, sp - 1a78: 7912 ldrb r2, [r2, #4] - 1a7a: f7ff ff86 bl 0x198a - 1a7e: 9802 ldr r0, [sp, #8] - 1a80: b00c add sp, #48 ; 0x30 - 1a82: bd00 pop {pc} - 1a84: ff19 - 1a86: 0083 lsl r3, r0, #2 - 1a88: ff1a - 1a8a: 0083 lsl r3, r0, #2 - 1a8c: ff26 - 1a8e: 0083 lsl r3, r0, #2 - 1a90: ff24 - 1a92: 0083 lsl r3, r0, #2 - 1a94: ff20 - 1a96: 0083 lsl r3, r0, #2 - 1a98: ff1b - 1a9a: 0083 lsl r3, r0, #2 - 1a9c: ff18 - 1a9e: 0083 lsl r3, r0, #2 - 1aa0: b500 push {lr} - 1aa2: b084 sub sp, #16 ; 0x10 - 1aa4: 9101 str r1, [sp, #4] - 1aa6: 9000 str r0, [sp, #0] - 1aa8: 4669 mov r1, sp - 1aaa: 20ff mov r0, #255 ; 0xff - 1aac: 7308 strb r0, [r1, #12] ; 0xc - 1aae: 2000 mov r0, #0 - 1ab0: 9002 str r0, [sp, #8] - 1ab2: 4669 mov r1, sp - 1ab4: 48a1 ldr r0, =0xffff5805 ; via 0x1d3c - 1ab6: 7800 ldrb r0, [r0, #0] - 1ab8: 7348 strb r0, [r1, #13] ; 0xd - 1aba: 48a1 ldr r0, =0xffff5005 ; via 0x1d40 - 1abc: 7800 ldrb r0, [r0, #0] - 1abe: 7388 strb r0, [r1, #14] ; 0xe - 1ac0: 4668 mov r0, sp - 1ac2: 7b40 ldrb r0, [r0, #13] ; 0xd - 1ac4: 0840 lsr r0, r0, #1 - 1ac6: d206 bcs 0x1ad6 - 1ac8: 4668 mov r0, sp - 1aca: 7b80 ldrb r0, [r0, #14] ; 0xe - 1acc: 0840 lsr r0, r0, #1 - 1ace: d202 bcs 0x1ad6 - 1ad0: 9801 ldr r0, [sp, #4] - 1ad2: 2800 cmp r0, #0 - 1ad4: d0ed beq 0x1ab2 - 1ad6: 4668 mov r0, sp - 1ad8: 7b40 ldrb r0, [r0, #13] ; 0xd - 1ada: 0840 lsr r0, r0, #1 - 1adc: d316 bcc 0x1b0c - 1ade: 4669 mov r1, sp - 1ae0: 2000 mov r0, #0 - 1ae2: 7308 strb r0, [r1, #12] ; 0xc - 1ae4: 4994 ldr r1, =0x864 ; via 0x1d38 - 1ae6: 4668 mov r0, sp - 1ae8: 7b00 ldrb r0, [r0, #12] ; 0xc - 1aea: 0080 lsl r0, r0, #2 - 1aec: 5808 ldr r0, [r1, r0] - 1aee: 7800 ldrb r0, [r0, #0] - 1af0: 0600 lsl r0, r0, #24 - 1af2: 0e00 lsr r0, r0, #24 - 1af4: 4669 mov r1, sp - 1af6: 73c8 strb r0, [r1, #15] ; 0xf - 1af8: 4668 mov r0, sp - 1afa: 7bc0 ldrb r0, [r0, #15] ; 0xf - 1afc: 9900 ldr r1, [sp, #0] - 1afe: f7ff fc9f bl 0x1440 - 1b02: 9002 str r0, [sp, #8] - 1b04: 9802 ldr r0, [sp, #8] - 1b06: 2800 cmp r0, #0 - 1b08: d11c bne 0x1b44 - 1b0a: e018 b 0x1b3e - 1b0c: 4668 mov r0, sp - 1b0e: 7b80 ldrb r0, [r0, #14] ; 0xe - 1b10: 0840 lsr r0, r0, #1 - 1b12: d317 bcc 0x1b44 - 1b14: 4669 mov r1, sp - 1b16: 2001 mov r0, #1 - 1b18: 7308 strb r0, [r1, #12] ; 0xc - 1b1a: 4987 ldr r1, =0x864 ; via 0x1d38 - 1b1c: 4668 mov r0, sp - 1b1e: 7b00 ldrb r0, [r0, #12] ; 0xc - 1b20: 0080 lsl r0, r0, #2 - 1b22: 5808 ldr r0, [r1, r0] - 1b24: 7800 ldrb r0, [r0, #0] - 1b26: 0600 lsl r0, r0, #24 - 1b28: 0e01 lsr r1, r0, #24 - 1b2a: 4668 mov r0, sp - 1b2c: 73c1 strb r1, [r0, #15] ; 0xf - 1b2e: 7bc0 ldrb r0, [r0, #15] ; 0xf - 1b30: 9900 ldr r1, [sp, #0] - 1b32: f7ff fc85 bl 0x1440 - 1b36: 9002 str r0, [sp, #8] - 1b38: 9802 ldr r0, [sp, #8] - 1b3a: 2800 cmp r0, #0 - 1b3c: d102 bne 0x1b44 - 1b3e: 20ff mov r0, #255 ; 0xff - 1b40: 4669 mov r1, sp - 1b42: 7308 strb r0, [r1, #12] ; 0xc - 1b44: 9802 ldr r0, [sp, #8] - 1b46: 2800 cmp r0, #0 - 1b48: d102 bne 0x1b50 - 1b4a: 9801 ldr r0, [sp, #4] - 1b4c: 2800 cmp r0, #0 - 1b4e: d0b0 beq 0x1ab2 - 1b50: 4668 mov r0, sp - 1b52: 7b00 ldrb r0, [r0, #12] ; 0xc - 1b54: b004 add sp, #16 ; 0x10 - 1b56: bd00 pop {pc} - 1b58: ff1c - 1b5a: 0083 lsl r3, r0, #2 - 1b5c: 0830 lsr r0, r6, #32 - 1b5e: 0000 lsl r0, r0, #0 - 1b60: 084c lsr r4, r1, #1 - 1b62: 0000 lsl r0, r0, #0 - 1b64: b500 push {lr} - 1b66: b086 sub sp, #24 ; 0x18 - 1b68: 466b mov r3, sp - 1b6a: 721a strb r2, [r3, #8] - 1b6c: 9101 str r1, [sp, #4] - 1b6e: 9000 str r0, [sp, #0] - 1b70: 2001 mov r0, #1 - 1b72: 9004 str r0, [sp, #16] ; 0x10 - 1b74: 9804 ldr r0, [sp, #16] ; 0x10 - 1b76: 2800 cmp r0, #0 - 1b78: d05b beq 0x1c32 - 1b7a: 496f ldr r1, =0x864 ; via 0x1d38 - 1b7c: 4668 mov r0, sp - 1b7e: 7a00 ldrb r0, [r0, #8] - 1b80: 0080 lsl r0, r0, #2 - 1b82: 5808 ldr r0, [r1, r0] - 1b84: 7941 ldrb r1, [r0, #5] - 1b86: 4668 mov r0, sp - 1b88: 7301 strb r1, [r0, #12] ; 0xc - 1b8a: 7b00 ldrb r0, [r0, #12] ; 0xc - 1b8c: 0840 lsr r0, r0, #1 - 1b8e: d3f4 bcc 0x1b7a - 1b90: 4969 ldr r1, =0x864 ; via 0x1d38 - 1b92: 4668 mov r0, sp - 1b94: 7a00 ldrb r0, [r0, #8] - 1b96: 0080 lsl r0, r0, #2 - 1b98: 5808 ldr r0, [r1, r0] - 1b9a: 7800 ldrb r0, [r0, #0] - 1b9c: 0600 lsl r0, r0, #24 - 1b9e: 0e01 lsr r1, r0, #24 - 1ba0: 4668 mov r0, sp - 1ba2: 7341 strb r1, [r0, #13] ; 0xd - 1ba4: e02c b 0x1c00 - 1ba6: 4668 mov r0, sp - 1ba8: 7b40 ldrb r0, [r0, #13] ; 0xd - 1baa: a905 add r1, sp, #20 ; 0x14 - 1bac: 9a00 ldr r2, [sp, #0] - 1bae: 9b01 ldr r3, [sp, #4] - 1bb0: f7ff fd8c bl 0x16cc - 1bb4: 9004 str r0, [sp, #16] ; 0x10 - 1bb6: e039 b 0x1c2c - 1bb8: 4668 mov r0, sp - 1bba: 7b40 ldrb r0, [r0, #13] ; 0xd - 1bbc: a905 add r1, sp, #20 ; 0x14 - 1bbe: f7ff fdc2 bl 0x1746 - 1bc2: e7f7 b 0x1bb4 - 1bc4: 4668 mov r0, sp - 1bc6: 7b40 ldrb r0, [r0, #13] ; 0xd - 1bc8: a905 add r1, sp, #20 ; 0x14 - 1bca: f7ff fe12 bl 0x17f2 - 1bce: e7f1 b 0x1bb4 - 1bd0: 4668 mov r0, sp - 1bd2: 7b40 ldrb r0, [r0, #13] ; 0xd - 1bd4: a905 add r1, sp, #20 ; 0x14 - 1bd6: f7ff fe34 bl 0x1842 - 1bda: e7eb b 0x1bb4 - 1bdc: 4668 mov r0, sp - 1bde: 7b40 ldrb r0, [r0, #13] ; 0xd - 1be0: f7ff fe5e bl 0x18a0 - 1be4: e022 b 0x1c2c - 1be6: 4668 mov r0, sp - 1be8: 7b40 ldrb r0, [r0, #13] ; 0xd - 1bea: a905 add r1, sp, #20 ; 0x14 - 1bec: 9a00 ldr r2, [sp, #0] - 1bee: f7ff fe6d bl 0x18cc - 1bf2: e7df b 0x1bb4 - 1bf4: 4668 mov r0, sp - 1bf6: 7b40 ldrb r0, [r0, #13] ; 0xd - 1bf8: a905 add r1, sp, #20 ; 0x14 - 1bfa: f7ff feab bl 0x1954 - 1bfe: e7d9 b 0x1bb4 - 1c00: 4850 ldr r0, =0x83ff20 ; via 0x1d44 - 1c02: 6800 ldr r0, [r0, #0] - 1c04: 2800 cmp r0, #0 - 1c06: d0ce beq 0x1ba6 - 1c08: 3801 sub r0, #1 - 1c0a: 2800 cmp r0, #0 - 1c0c: d0d4 beq 0x1bb8 - 1c0e: 3801 sub r0, #1 - 1c10: 2800 cmp r0, #0 - 1c12: d0d7 beq 0x1bc4 - 1c14: 3801 sub r0, #1 - 1c16: 2800 cmp r0, #0 - 1c18: d0da beq 0x1bd0 - 1c1a: 3801 sub r0, #1 - 1c1c: 2800 cmp r0, #0 - 1c1e: d0dd beq 0x1bdc - 1c20: 3801 sub r0, #1 - 1c22: 2800 cmp r0, #0 - 1c24: d0df beq 0x1be6 - 1c26: 3801 sub r0, #1 - 1c28: 2800 cmp r0, #0 - 1c2a: d0e3 beq 0x1bf4 - 1c2c: 9804 ldr r0, [sp, #16] ; 0x10 - 1c2e: 2800 cmp r0, #0 - 1c30: d1a3 bne 0x1b7a - 1c32: 9805 ldr r0, [sp, #20] ; 0x14 - 1c34: b006 add sp, #24 ; 0x18 - 1c36: bd00 pop {pc} - 1c38: 4942 ldr r1, =0x83ff20 ; via 0x1d44 - 1c3a: 2001 mov r0, #1 - 1c3c: 6008 str r0, [r1, #0] - 1c3e: 4842 ldr r0, =0x83ff1b ; via 0x1d48 - 1c40: 2100 mov r1, #0 - 1c42: 7001 strb r1, [r0, #0] - 1c44: 4841 ldr r0, =0x83ff18 ; via 0x1d4c - 1c46: 7001 strb r1, [r0, #0] - 1c48: 4770 bx lr - 1c4a: 46c0 nop (mov r8, r8) - 1c4c: ff14 - 1c4e: 0083 lsl r3, r0, #2 - 1c50: b081 sub sp, #4 - 1c52: 483f ldr r0, =0xffff5800 ; via 0x1d50 - 1c54: 9000 str r0, [sp, #0] - 1c56: 493f ldr r1, =0xffff6000 ; via 0x1d54 - 1c58: 2002 mov r0, #2 - 1c5a: 880a ldrh r2, [r1, #0] - 1c5c: 4310 orr r0, r2 - 1c5e: 8008 strh r0, [r1, #0] - 1c60: 483c ldr r0, =0xffff6000 ; via 0x1d54 - 1c62: 8801 ldrh r1, [r0, #0] - 1c64: 0849 lsr r1, r1, #1 - 1c66: 0049 lsl r1, r1, #1 - 1c68: 8001 strh r1, [r0, #0] - 1c6a: 493a ldr r1, =0xffff6000 ; via 0x1d54 - 1c6c: 8808 ldrh r0, [r1, #0] - 1c6e: 2202 mov r2, #2 - 1c70: 4390 bic r0, r2 - 1c72: 8008 strh r0, [r1, #0] - 1c74: 9900 ldr r1, [sp, #0] - 1c76: 2007 mov r0, #7 - 1c78: 7208 strb r0, [r1, #8] - 1c7a: 9900 ldr r1, [sp, #0] - 1c7c: 20bf mov r0, #191 ; 0xbf - 1c7e: 70c8 strb r0, [r1, #3] - 1c80: 9800 ldr r0, [sp, #0] - 1c82: 1c81 add r1, r0, #2 - 1c84: 2010 mov r0, #16 ; 0x10 - 1c86: 880a ldrh r2, [r1, #0] - 1c88: 4310 orr r0, r2 - 1c8a: 8008 strh r0, [r1, #0] - 1c8c: 9800 ldr r0, [sp, #0] - 1c8e: 2180 mov r1, #128 ; 0x80 - 1c90: 70c1 strb r1, [r0, #3] - 1c92: 9800 ldr r0, [sp, #0] - 1c94: 2107 mov r1, #7 - 1c96: 7081 strb r1, [r0, #2] - 1c98: 9800 ldr r0, [sp, #0] - 1c9a: 21bf mov r1, #191 ; 0xbf - 1c9c: 70c1 strb r1, [r0, #3] - 1c9e: 9800 ldr r0, [sp, #0] - 1ca0: 2107 mov r1, #7 - 1ca2: 7001 strb r1, [r0, #0] - 1ca4: 9800 ldr r0, [sp, #0] - 1ca6: 2100 mov r1, #0 - 1ca8: 7041 strb r1, [r0, #1] - 1caa: 9800 ldr r0, [sp, #0] - 1cac: 2103 mov r1, #3 - 1cae: 70c1 strb r1, [r0, #3] - 1cb0: 9800 ldr r0, [sp, #0] - 1cb2: 2100 mov r1, #0 - 1cb4: 7201 strb r1, [r0, #8] - 1cb6: 4828 ldr r0, =0xffff5000 ; via 0x1d58 - 1cb8: 9000 str r0, [sp, #0] - 1cba: 9800 ldr r0, [sp, #0] - 1cbc: 2107 mov r1, #7 - 1cbe: 7201 strb r1, [r0, #8] - 1cc0: 9900 ldr r1, [sp, #0] - 1cc2: 20bf mov r0, #191 ; 0xbf - 1cc4: 70c8 strb r0, [r1, #3] - 1cc6: 9800 ldr r0, [sp, #0] - 1cc8: 1c80 add r0, r0, #2 - 1cca: 2110 mov r1, #16 ; 0x10 - 1ccc: 8802 ldrh r2, [r0, #0] - 1cce: 4311 orr r1, r2 - 1cd0: 8001 strh r1, [r0, #0] - 1cd2: 9800 ldr r0, [sp, #0] - 1cd4: 2180 mov r1, #128 ; 0x80 - 1cd6: 70c1 strb r1, [r0, #3] - 1cd8: 9800 ldr r0, [sp, #0] - 1cda: 2107 mov r1, #7 - 1cdc: 7081 strb r1, [r0, #2] - 1cde: 9800 ldr r0, [sp, #0] - 1ce0: 21bf mov r1, #191 ; 0xbf - 1ce2: 70c1 strb r1, [r0, #3] - 1ce4: 9800 ldr r0, [sp, #0] - 1ce6: 2107 mov r1, #7 - 1ce8: 7001 strb r1, [r0, #0] - 1cea: 9800 ldr r0, [sp, #0] - 1cec: 2100 mov r1, #0 - 1cee: 7041 strb r1, [r0, #1] - 1cf0: 9900 ldr r1, [sp, #0] - 1cf2: 2003 mov r0, #3 - 1cf4: 70c8 strb r0, [r1, #3] - 1cf6: 9800 ldr r0, [sp, #0] - 1cf8: 2100 mov r1, #0 - 1cfa: 7201 strb r1, [r0, #8] - 1cfc: b001 add sp, #4 - 1cfe: 4770 bx lr - 1d00: b081 sub sp, #4 - 1d02: 4669 mov r1, sp - 1d04: 7008 strb r0, [r1, #0] - 1d06: 490c ldr r1, =0x864 ; via 0x1d38 - 1d08: 4668 mov r0, sp - 1d0a: 7800 ldrb r0, [r0, #0] - 1d0c: 0080 lsl r0, r0, #2 - 1d0e: 5808 ldr r0, [r1, r0] - 1d10: 7941 ldrb r1, [r0, #5] - 1d12: 4668 mov r0, sp - 1d14: 7041 strb r1, [r0, #1] - 1d16: 7840 ldrb r0, [r0, #1] - 1d18: 09c0 lsr r0, r0, #7 - 1d1a: d20b bcs 0x1d34 - 1d1c: 4806 ldr r0, =0x864 ; via 0x1d38 - 1d1e: 4669 mov r1, sp - 1d20: 7809 ldrb r1, [r1, #0] - 1d22: 0089 lsl r1, r1, #2 - 1d24: 5840 ldr r0, [r0, r1] - 1d26: 7940 ldrb r0, [r0, #5] - 1d28: 4669 mov r1, sp - 1d2a: 7048 strb r0, [r1, #1] - 1d2c: 4668 mov r0, sp - 1d2e: 7840 ldrb r0, [r0, #1] - 1d30: 09c0 lsr r0, r0, #7 - 1d32: d3f3 bcc 0x1d1c - 1d34: b001 add sp, #4 - 1d36: 4770 bx lr - 1d38: 0864 lsr r4, r4, #1 - 1d3a: 0000 lsl r0, r0, #0 - 1d3c: 5805 ldr r5, [r0, r0] - 1d3e: ffff - 1d40: 5005 str r5, [r0, r0] - 1d42: ffff - 1d44: ff20 - 1d46: 0083 lsl r3, r0, #2 - 1d48: ff1b - 1d4a: 0083 lsl r3, r0, #2 - 1d4c: ff18 - 1d4e: 0083 lsl r3, r0, #2 - 1d50: 5800 ldr r0, [r0, r0] - 1d52: ffff - 1d54: 6000 str r0, [r0, #0] - 1d56: ffff - 1d58: 5000 str r0, [r0, r0] - 1d5a: ffff - 1d5c: b500 push {lr} - 1d5e: b087 sub sp, #28 ; 0x1c - 1d60: 466b mov r3, sp - 1d62: 721a strb r2, [r3, #8] - 1d64: 9101 str r1, [sp, #4] - 1d66: 9000 str r0, [sp, #0] - 1d68: 9900 ldr r1, [sp, #0] - 1d6a: 2000 mov r0, #0 - 1d6c: 8008 strh r0, [r1, #0] - 1d6e: 9801 ldr r0, [sp, #4] - 1d70: 2100 mov r1, #0 - 1d72: 8001 strh r1, [r0, #0] - 1d74: 2000 mov r0, #0 - 1d76: 9003 str r0, [sp, #12] ; 0xc - 1d78: f7ff ff5e bl 0x1c38 - 1d7c: a805 add r0, sp, #20 ; 0x14 - 1d7e: a906 add r1, sp, #24 ; 0x18 - 1d80: 466a mov r2, sp - 1d82: 7a12 ldrb r2, [r2, #8] - 1d84: f7ff feee bl 0x1b64 - 1d88: 9004 str r0, [sp, #16] ; 0x10 - 1d8a: 9804 ldr r0, [sp, #16] ; 0x10 - 1d8c: 2800 cmp r0, #0 - 1d8e: d11f bne 0x1dd0 - 1d90: 9803 ldr r0, [sp, #12] ; 0xc - 1d92: 2800 cmp r0, #0 - 1d94: d11c bne 0x1dd0 - 1d96: 9800 ldr r0, [sp, #0] - 1d98: 4669 mov r1, sp - 1d9a: 8b0a ldrh r2, [r1, #24] ; 0x18 - 1d9c: 8801 ldrh r1, [r0, #0] - 1d9e: 1851 add r1, r2, r1 - 1da0: 8001 strh r1, [r0, #0] - 1da2: 9905 ldr r1, [sp, #20] ; 0x14 - 1da4: 4668 mov r0, sp - 1da6: 8b00 ldrh r0, [r0, #24] ; 0x18 - 1da8: 8008 strh r0, [r1, #0] - 1daa: 9801 ldr r0, [sp, #4] - 1dac: 9905 ldr r1, [sp, #20] ; 0x14 - 1dae: 8809 ldrh r1, [r1, #0] - 1db0: 8802 ldrh r2, [r0, #0] - 1db2: 1889 add r1, r1, r2 - 1db4: 8001 strh r1, [r0, #0] - 1db6: a805 add r0, sp, #20 ; 0x14 - 1db8: a906 add r1, sp, #24 ; 0x18 - 1dba: 466a mov r2, sp - 1dbc: 7a12 ldrb r2, [r2, #8] - 1dbe: f7ff fed1 bl 0x1b64 - 1dc2: 9004 str r0, [sp, #16] ; 0x10 - 1dc4: 9804 ldr r0, [sp, #16] ; 0x10 - 1dc6: 2800 cmp r0, #0 - 1dc8: d102 bne 0x1dd0 - 1dca: 9803 ldr r0, [sp, #12] ; 0xc - 1dcc: 2800 cmp r0, #0 - 1dce: d0e2 beq 0x1d96 - 1dd0: 9804 ldr r0, [sp, #16] ; 0x10 - 1dd2: 2801 cmp r0, #1 - 1dd4: d101 bne 0x1dda - 1dd6: 2004 mov r0, #4 - 1dd8: 9003 str r0, [sp, #12] ; 0xc - 1dda: 9803 ldr r0, [sp, #12] ; 0xc - 1ddc: b007 add sp, #28 ; 0x1c - 1dde: bd00 pop {pc} - 1de0: b089 sub sp, #36 ; 0x24 - 1de2: 201a mov r0, #26 ; 0x1a - 1de4: 9005 str r0, [sp, #20] ; 0x14 - 1de6: 2018 mov r0, #24 ; 0x18 - 1de8: 9006 str r0, [sp, #24] ; 0x18 - 1dea: 2000 mov r0, #0 - 1dec: 9008 str r0, [sp, #32] ; 0x20 - 1dee: 4669 mov r1, sp - 1df0: 9805 ldr r0, [sp, #20] ; 0x14 - 1df2: 8800 ldrh r0, [r0, #0] - 1df4: 8008 strh r0, [r1, #0] - 1df6: 9806 ldr r0, [sp, #24] ; 0x18 - 1df8: 8800 ldrh r0, [r0, #0] - 1dfa: 8048 strh r0, [r1, #2] - 1dfc: 4668 mov r0, sp - 1dfe: 8841 ldrh r1, [r0, #2] - 1e00: 8800 ldrh r0, [r0, #0] - 1e02: 0400 lsl r0, r0, #16 - 1e04: 1808 add r0, r1, r0 - 1e06: 9001 str r0, [sp, #4] - 1e08: 9801 ldr r0, [sp, #4] - 1e0a: 0200 lsl r0, r0, #8 - 1e0c: 0a00 lsr r0, r0, #8 - 1e0e: 0080 lsl r0, r0, #2 - 1e10: 3008 add r0, #8 - 1e12: 9007 str r0, [sp, #28] ; 0x1c - 1e14: 9807 ldr r0, [sp, #28] ; 0x1c - 1e16: 3018 add r0, #24 ; 0x18 - 1e18: 9002 str r0, [sp, #8] - 1e1a: 9802 ldr r0, [sp, #8] - 1e1c: 9004 str r0, [sp, #16] ; 0x10 - 1e1e: 9802 ldr r0, [sp, #8] - 1e20: 3002 add r0, #2 - 1e22: 9003 str r0, [sp, #12] ; 0xc - 1e24: 9803 ldr r0, [sp, #12] ; 0xc - 1e26: 8801 ldrh r1, [r0, #0] - 1e28: 4806 ldr r0, =0xffff ; via 0x1e44 - 1e2a: 4281 cmp r1, r0 - 1e2c: d104 bne 0x1e38 - 1e2e: 9804 ldr r0, [sp, #16] ; 0x10 - 1e30: 8800 ldrh r0, [r0, #0] - 1e32: 4904 ldr r1, =0xffff ; via 0x1e44 - 1e34: 4288 cmp r0, r1 - 1e36: d001 beq 0x1e3c - 1e38: 2001 mov r0, #1 - 1e3a: 9008 str r0, [sp, #32] ; 0x20 - 1e3c: 9808 ldr r0, [sp, #32] ; 0x20 - 1e3e: b009 add sp, #36 ; 0x24 - 1e40: 4770 bx lr - 1e42: 46c0 nop (mov r8, r8) - - 1e44: 0000ffff - - 1e48: e92d4000 stmdb sp!, {lr} - 1e4c: e28fe001 add lr, pc, #1 - 1e50: e12fff1e bx lr - 1e54: f7fe fe3d bl 0xad2 - 1e58: 4778 bx pc - 1e5a: 46c0 nop (mov r8, r8) - 1e5c: e8bd8000 ldmia sp!, {pc} - -<1E60-1EFF: all FFs> - - 1f00: 00000001 - -<1F04-end: all FFs> diff -r e5e5ed527cc1 -r 81cda18b0487 compal/c140-boot.bin Binary file compal/c140-boot.bin has changed diff -r e5e5ed527cc1 -r 81cda18b0487 compal/c156-boot.90.05.bin Binary file compal/c156-boot.90.05.bin has changed diff -r e5e5ed527cc1 -r 81cda18b0487 compal/c156-boot.disasm --- a/compal/c156-boot.disasm Sat Jan 14 06:09:25 2023 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,543 +0,0 @@ -RESET entry and exception vectors: - 0: ea000011 b 0x4c - 4: ea008036 b 0x200e4 - 8: ea008036 b 0x200e8 - c: ea008036 b 0x200ec - 10: ea008036 b 0x200f0 - 14: ea008036 b 0x200f4 - 18: ea008036 b 0x200f8 - 1c: ea008036 b 0x200fc - - 20: 02a102a1 - 24: 02a302a1 - 28: 00000040 - 2c: fffffd00 - 30: ffff9800 - 34: fffffb10 - 38: ffffff08 - 3c: 20021081 - 40: 00000800 - 44: 004000c0 - 48: 00000e85 - -; RESET entry point -; same init as in the C139 version - 4c: e51f1028 ldr r1, =0xfffffd00 ; via 0x2c - 50: e1d120b2 ldrh r2, [r1, #2] - 54: e51f0034 ldr r0, =0x40 ; via 0x28 - 58: e1800002 orr r0, r0, r2 - 5c: e1c100b2 strh r0, [r1, #2] -; disable PLL -; diff from C139 version: writing 2002 into FFFF:9800 instead of 2006 -; diff in the BYPASS_DIV field - 60: e51f1038 ldr r1, =0xffff9800 ; via 0x30 - 64: e15f22be ldrh r2, =0x2002 ; via 0x3e - 68: e1c120b0 strh r2, [r1] - 6c: e5912000 ldr r2, [r1] - 70: e2022001 and r2, r2, #1 - 74: e3520001 cmp r2, #1 - 78: 0afffffb beq 0x6c -; FFFF:FD00 write same as C139 - 7c: e51f1058 ldr r1, =0xfffffd00 ; via 0x2c - 80: e15f24bc ldrh r2, =0x1081 ; via 0x3c - 84: e1c120b0 strh r2, [r1] -; disable DU like C139 - 88: e51f105c ldr r1, =0xfffffb10 ; via 0x34 - 8c: e15f25b4 ldrh r2, =0x800 ; via 0x40 - 90: e1d100b0 ldrh r0, [r1] - 94: e1800002 orr r0, r0, r2 - 98: e1c100b0 strh r0, [r1] -; ditto for MPU - 9c: e51f106c ldr r1, =0xffffff08 ; via 0x38 - a0: e15f26b6 ldrh r2, =0x0 ; via 0x42 - a4: e1c120b0 strh r2, [r1] -; Memory timings - a8: e59f1640 ldr r1, =0xfffffb00 ; via 0x6f0 - ac: e15f29b4 ldrh r2, =0x2a1 ; via 0x20 - b0: e1c120b0 strh r2, [r1] - b4: e15f29ba ldrh r2, =0x2a1 ; via 0x22 - b8: e1c120b2 strh r2, [r1, #2] - bc: e15f2ab0 ldrh r2, =0x2a1 ; via 0x24 - c0: e1c120b4 strh r2, [r1, #4] - c4: e15f2ab6 ldrh r2, =0x2a3 ; via 0x26 - c8: e1c120b6 strh r2, [r1, #6] - cc: e15f28bc ldrh r2, =0xe85 ; via 0x48 - d0: e1c120ba strh r2, [r1, #10] ; 0xa - d4: e15f29b8 ldrh r2, =0xc0 ; via 0x44 - d8: e1c120bc strh r2, [r1, #12] ; 0xc - dc: e15f29be ldrh r2, =0x40 ; via 0x46 - e0: e1c120b8 strh r2, [r1, #8] -; enable 8 MiB chip select regions - e4: e59f3630 ldr r3, =0xfffef006 ; via 0x71c - e8: e1d310b0 ldrh r1, [r3] - ec: e3a02008 mov r2, #8 - f0: e1811002 orr r1, r1, r2 - f4: e1c310b0 strh r1, [r3] -; write 0x0110 into FFFE:F00A -; enable I/O(8) and I/O(12) - f8: e59f3604 ldr r3, =0xfffef000 ; via 0x704 - fc: e3a01e11 mov r1, #272 ; 0x110 - 100: e1c310ba strh r1, [r3, #10] ; 0xa -; FFFE:4804: set GPIOs 8 and 12 as outputs - 104: e59f3604 ldr r3, =0xfffe4804 ; via 0x710 - 108: e5931000 ldr r1, [r3] - 10c: e3a030ff mov r3, #255 ; 0xff - 110: e3a02cee mov r2, #60928 ; 0xee00 - 114: e1822003 orr r2, r2, r3 - 118: e0011002 and r1, r1, r2 - 11c: e59f35e4 ldr r3, =0xfffe4800 ; via 0x708 - 120: e1c310b4 strh r1, [r3, #4] -; ARMIO_LATCH_OUT: GPIO 8 set to 0 - 124: e59f35e0 ldr r3, =0xfffe4802 ; via 0x70c - 128: e5931000 ldr r1, [r3] - 12c: e3a030ff mov r3, #255 ; 0xff - 130: e3a02cfe mov r2, #65024 ; 0xfe00 - 134: e1822003 orr r2, r2, r3 - 138: e0011002 and r1, r1, r2 - 13c: e59f35c4 ldr r3, =0xfffe4800 ; via 0x708 - 140: e1c310b2 strh r1, [r3, #2] -; ... and then reset it to 0xF400 - 144: e3a01b3d mov r1, #62464 ; 0xf400 - 148: e59f35b8 ldr r3, =0xfffe4800 ; via 0x708 - 14c: e1c310b2 strh r1, [r3, #2] -; SVC mode, IRQ and FIQ disabled - 150: e10f0000 mrs r0, CPSR - 154: e3c0001f bic r0, r0, #31 ; 0x1f - 158: e3800013 orr r0, r0, #19 ; 0x13 - 15c: e38000c0 orr r0, r0, #192 ; 0xc0 - 160: e129f000 msr CPSR_fc, r0 -; zero all 256 KiB IRAM except last 128 bytes - 164: e3a00502 mov r0, #8388608 ; 0x800000 - 168: e3a02000 mov r2, #0 - 16c: e3a01721 mov r1, #8650752 ; 0x840000 - 170: e2411080 sub r1, r1, #128 ; 0x80 - 174: e4802004 str r2, [r0], #4 - 178: e1500001 cmp r0, r1 - 17c: 1afffffc bne 0x174 -; ditto for 2 MiB XRAM - 180: e3a00401 mov r0, #16777216 ; 0x1000000 - 184: e3a02000 mov r2, #0 - 188: e3a01612 mov r1, #18874368 ; 0x1200000 - 18c: e2411080 sub r1, r1, #128 ; 0x80 - 190: e4802004 str r2, [r0], #4 - 194: e1500001 cmp r0, r1 - 198: 1afffffc bne 0x190 -; MODEM UART - 19c: e59f0550 ldr r0, =0xffff5800 ; via 0x6f4 -; 0 into LCR for IER access - 1a0: e3a01000 mov r1, #0 - 1a4: e5c01003 strb r1, [r0, #3] -; clear IER - 1a8: e3a01000 mov r1, #0 - 1ac: e5c01001 strb r1, [r0, #1] -; BF into LCR - 1b0: e3a010bf mov r1, #191 ; 0xbf - 1b4: e5c01003 strb r1, [r0, #3] -; 0x10 into EFR - 1b8: e3a01010 mov r1, #16 ; 0x10 - 1bc: e5c01002 strb r1, [r0, #2] -; set 115200 baud - 1c0: e59f3534 ldr r3, =0xffff5803 ; via 0x6fc - 1c4: e5931000 ldr r1, [r3] - 1c8: e3811080 orr r1, r1, #128 ; 0x80 - 1cc: e5c31000 strb r1, [r3] - 1d0: e3a01007 mov r1, #7 - 1d4: e5c01000 strb r1, [r0] - 1d8: e3a01000 mov r1, #0 - 1dc: e5c01001 strb r1, [r0, #1] -; LCR will eventually get back to 03 - 1e0: e59f3514 ldr r3, =0xffff5803 ; via 0x6fc - 1e4: e5931000 ldr r1, [r3] - 1e8: e201107f and r1, r1, #127 ; 0x7f - 1ec: e5c31000 strb r1, [r3] - 1f0: e5931000 ldr r1, [r3] - 1f4: e3811003 orr r1, r1, #3 - 1f8: e5c31000 strb r1, [r3] -; 0x40 into MCR: TCR/TLR access - 1fc: e3a01040 mov r1, #64 ; 0x40 - 200: e5c01004 strb r1, [r0, #4] -; TCR=0x0F (same as default) - 204: e3a0100f mov r1, #15 ; 0xf - 208: e5c01006 strb r1, [r0, #6] -; BF into LCR again - 20c: e3a010bf mov r1, #191 ; 0xbf - 210: e5c01003 strb r1, [r0, #3] -; 0x10 into EFR again - 214: e3a01010 mov r1, #16 ; 0x10 - 218: e5c01002 strb r1, [r0, #2] -; finally 03 into LCR - 21c: e3a01003 mov r1, #3 - 220: e5c01003 strb r1, [r0, #3] -; clear SCR (default, all weird stuff disabled) - 224: e3a01000 mov r1, #0 - 228: e5c01010 strb r1, [r0, #16] ; 0x10 -; FCR=06: FIFOs cleared and *disabled* - 22c: e3a01006 mov r1, #6 - 230: e5c01002 strb r1, [r0, #2] -; MCR=0F - 234: e3a0100f mov r1, #15 ; 0xf - 238: e5c01004 strb r1, [r0, #4] -; FCR=F1: enable FIFOs with max trigger levels - 23c: e3a010f1 mov r1, #241 ; 0xf1 - 240: e5c01002 strb r1, [r0, #2] -; MDR1: write 7 for reset, then 0 for UART mode - 244: e3a01007 mov r1, #7 - 248: e5c01008 strb r1, [r0, #8] - 24c: e3a01000 mov r1, #0 - 250: e5c01008 strb r1, [r0, #8] -; IER: enable Rx interrupt - 254: e59f349c ldr r3, =0xffff5801 ; via 0x6f8 - 258: e5931000 ldr r1, [r3] - 25c: e3811001 orr r1, r1, #1 - 260: e5c31000 strb r1, [r3] -; nCS0: WS=3, write enable, DC=1 - 264: e59f1484 ldr r1, =0xfffffb00 ; via 0x6f0 - 268: e59f247c ldr r2, =0x2a3 ; via 0x6ec - 26c: e1c120b0 strh r2, [r1] -; FFFF:FB0E = 0x6A: adapt enabled for RHEA and API, -; all ARM7 cycles visible externally - 270: e59f3488 ldr r3, =0xfffffb00 ; via 0x700 - 274: e3a0106a mov r1, #106 ; 0x6a - 278: e1c310be strh r1, [r3, #14] ; 0xe -; dingle UART FIFOs again, same settings - 27c: e59f0470 ldr r0, =0xffff5800 ; via 0x6f4 - 280: e3a010f7 mov r1, #247 ; 0xf7 - 284: e5c01002 strb r1, [r0, #2] - 288: e3a010f1 mov r1, #241 ; 0xf1 - 28c: e5c01002 strb r1, [r0, #2] -; short delay loop - 290: e3a01f4b mov r1, #300 ; 0x12c - 294: e2411001 sub r1, r1, #1 - 298: e3510000 cmp r1, #0 - 29c: 1afffffc bne 0x294 -; check UART for unsolicited input? - 2a0: e59f044c ldr r0, =0xffff5800 ; via 0x6f4 - 2a4: e3a02064 mov r2, #100 ; 0x64 - 2a8: e3a08801 mov r8, #65536 ; 0x10000 - 2ac: e2488001 sub r8, r8, #1 - 2b0: e3580000 cmp r8, #0 - 2b4: 0a000040 beq 0x3bc - 2b8: e5d01005 ldrb r1, [r0, #5] - 2bc: e2011001 and r1, r1, #1 - 2c0: e3510001 cmp r1, #1 - 2c4: 1afffff8 bne 0x2ac - 2c8: e5d01000 ldrb r1, [r0] -; unsolicited input received -; repeats the whole UART init, but with /2 div for 406250 baud - 2cc: e59f0420 ldr r0, =0xffff5800 ; via 0x6f4 - 2d0: e3a01000 mov r1, #0 - 2d4: e5c01003 strb r1, [r0, #3] - 2d8: e3a01000 mov r1, #0 - 2dc: e5c01001 strb r1, [r0, #1] - 2e0: e3a010bf mov r1, #191 ; 0xbf - 2e4: e5c01003 strb r1, [r0, #3] - 2e8: e3a01010 mov r1, #16 ; 0x10 - 2ec: e5c01002 strb r1, [r0, #2] - 2f0: e59f3404 ldr r3, =0xffff5803 ; via 0x6fc - 2f4: e5931000 ldr r1, [r3] - 2f8: e3811080 orr r1, r1, #128 ; 0x80 - 2fc: e5c31000 strb r1, [r3] - 300: e3a01002 mov r1, #2 - 304: e5c01000 strb r1, [r0] - 308: e3a01000 mov r1, #0 - 30c: e5c01001 strb r1, [r0, #1] - 310: e59f33e4 ldr r3, =0xffff5803 ; via 0x6fc - 314: e5931000 ldr r1, [r3] - 318: e201107f and r1, r1, #127 ; 0x7f - 31c: e5c31000 strb r1, [r3] - 320: e5931000 ldr r1, [r3] - 324: e3811003 orr r1, r1, #3 - 328: e5c31000 strb r1, [r3] - 32c: e3a01040 mov r1, #64 ; 0x40 - 330: e5c01004 strb r1, [r0, #4] - 334: e3a0100f mov r1, #15 ; 0xf - 338: e5c01006 strb r1, [r0, #6] - 33c: e3a010bf mov r1, #191 ; 0xbf - 340: e5c01003 strb r1, [r0, #3] - 344: e3a01010 mov r1, #16 ; 0x10 - 348: e5c01002 strb r1, [r0, #2] - 34c: e3a01003 mov r1, #3 - 350: e5c01003 strb r1, [r0, #3] - 354: e3a01000 mov r1, #0 - 358: e5c01010 strb r1, [r0, #16] ; 0x10 - 35c: e3a01006 mov r1, #6 - 360: e5c01002 strb r1, [r0, #2] - 364: e3a0100f mov r1, #15 ; 0xf - 368: e5c01004 strb r1, [r0, #4] - 36c: e3a010f1 mov r1, #241 ; 0xf1 - 370: e5c01002 strb r1, [r0, #2] - 374: e3a01007 mov r1, #7 - 378: e5c01008 strb r1, [r0, #8] - 37c: e3a01000 mov r1, #0 - 380: e5c01008 strb r1, [r0, #8] - 384: e59f336c ldr r3, =0xffff5801 ; via 0x6f8 - 388: e5931000 ldr r1, [r3] - 38c: e3811001 orr r1, r1, #1 - 390: e5c31000 strb r1, [r3] - 394: e59f0358 ldr r0, =0xffff5800 ; via 0x6f4 - 398: e3a010f7 mov r1, #247 ; 0xf7 - 39c: e5c01002 strb r1, [r0, #2] - 3a0: e3a010f1 mov r1, #241 ; 0xf1 - 3a4: e5c01002 strb r1, [r0, #2] - 3a8: e3a01f4b mov r1, #300 ; 0x12c - 3ac: e2411001 sub r1, r1, #1 - 3b0: e3510000 cmp r1, #0 - 3b4: 1afffffc bne 0x3ac - 3b8: e59f0334 ldr r0, =0xffff5800 ; via 0x6f4 -; normal path continues -; emit 1B F6 02 00 41 01 40 - 3bc: e3a0101b mov r1, #27 ; 0x1b - 3c0: e5c01000 strb r1, [r0] - 3c4: e3a010f6 mov r1, #246 ; 0xf6 - 3c8: e5c01000 strb r1, [r0] - 3cc: e3a01002 mov r1, #2 - 3d0: e5c01000 strb r1, [r0] - 3d4: e3a01000 mov r1, #0 - 3d8: e5c01000 strb r1, [r0] - 3dc: e3a01041 mov r1, #65 ; 0x41 - 3e0: e5c01000 strb r1, [r0] - 3e4: e3a01001 mov r1, #1 - 3e8: e5c01000 strb r1, [r0] - 3ec: e3a01040 mov r1, #64 ; 0x40 - 3f0: e5c01000 strb r1, [r0] -; wait for UART input - 3f4: e3a02064 mov r2, #100 ; 0x64 - 3f8: e3a08701 mov r8, #262144 ; 0x40000 - 3fc: e2488001 sub r8, r8, #1 - 400: e3580000 cmp r8, #0 - 404: 0a0000aa beq 0x6b4 - 408: e5d01005 ldrb r1, [r0, #5] - 40c: e2011001 and r1, r1, #1 - 410: e3510001 cmp r1, #1 - 414: 1afffff8 bne 0x3fc - 418: e5d01000 ldrb r1, [r0] - 41c: e3510000 cmp r1, #0 - 420: 1a000003 bne 0x434 - 424: e2422001 sub r2, r2, #1 - 428: e3520000 cmp r2, #0 - 42c: 0a0000a0 beq 0x6b4 - 430: eafffff1 b 0x3fc - 434: e351001b cmp r1, #27 ; 0x1b - 438: 1affffef bne 0x3fc -; got 1B - 43c: e3a08701 mov r8, #262144 ; 0x40000 - 440: e2488001 sub r8, r8, #1 - 444: e3580000 cmp r8, #0 - 448: 0a000099 beq 0x6b4 - 44c: e5d01005 ldrb r1, [r0, #5] - 450: e2011001 and r1, r1, #1 - 454: e3510001 cmp r1, #1 - 458: 1afffff8 bne 0x440 - 45c: e5d01000 ldrb r1, [r0] - 460: e35100f6 cmp r1, #246 ; 0xf6 - 464: 1a000092 bne 0x6b4 -; got F6 - 468: e3a08801 mov r8, #65536 ; 0x10000 - 46c: e2488001 sub r8, r8, #1 - 470: e3580000 cmp r8, #0 - 474: 0a00008e beq 0x6b4 - 478: e5d01005 ldrb r1, [r0, #5] - 47c: e2011001 and r1, r1, #1 - 480: e3510001 cmp r1, #1 - 484: 1afffff8 bne 0x46c - 488: e5d01000 ldrb r1, [r0] - 48c: e3510002 cmp r1, #2 - 490: 1a000087 bne 0x6b4 -; got 02 - 494: e3a08801 mov r8, #65536 ; 0x10000 - 498: e2488001 sub r8, r8, #1 - 49c: e3580000 cmp r8, #0 - 4a0: 0a000083 beq 0x6b4 - 4a4: e5d01005 ldrb r1, [r0, #5] - 4a8: e2011001 and r1, r1, #1 - 4ac: e3510001 cmp r1, #1 - 4b0: 1afffff8 bne 0x498 - 4b4: e5d01000 ldrb r1, [r0] - 4b8: e3510000 cmp r1, #0 - 4bc: 1a00007c bne 0x6b4 -; got 00 - 4c0: e3a08801 mov r8, #65536 ; 0x10000 - 4c4: e2488001 sub r8, r8, #1 - 4c8: e3580000 cmp r8, #0 - 4cc: 0a000078 beq 0x6b4 - 4d0: e5d01005 ldrb r1, [r0, #5] - 4d4: e2011001 and r1, r1, #1 - 4d8: e3510001 cmp r1, #1 - 4dc: 1afffff8 bne 0x4c4 - 4e0: e5d01000 ldrb r1, [r0] - 4e4: e3510052 cmp r1, #82 ; 0x52 - 4e8: 1a000071 bne 0x6b4 -; got 52 - 4ec: e3a08801 mov r8, #65536 ; 0x10000 - 4f0: e2488001 sub r8, r8, #1 - 4f4: e3580000 cmp r8, #0 - 4f8: 0a00006d beq 0x6b4 - 4fc: e5d01005 ldrb r1, [r0, #5] - 500: e2011001 and r1, r1, #1 - 504: e3510001 cmp r1, #1 - 508: 1afffff8 bne 0x4f0 - 50c: e5d01000 ldrb r1, [r0] - 510: e3510001 cmp r1, #1 - 514: 1a000066 bne 0x6b4 -; got 01 - 518: e3a08801 mov r8, #65536 ; 0x10000 - 51c: e2488001 sub r8, r8, #1 - 520: e3580000 cmp r8, #0 - 524: 0a000062 beq 0x6b4 - 528: e5d01005 ldrb r1, [r0, #5] - 52c: e2011001 and r1, r1, #1 - 530: e3510001 cmp r1, #1 - 534: 1afffff8 bne 0x51c - 538: e59f01b4 ldr r0, =0xffff5800 ; via 0x6f4 - 53c: e5d01000 ldrb r1, [r0] -; emit 1B F6 02 00 41 02 43 before checking the last Rx char! - 540: e3a0201b mov r2, #27 ; 0x1b - 544: e5c02000 strb r2, [r0] - 548: e3a020f6 mov r2, #246 ; 0xf6 - 54c: e5c02000 strb r2, [r0] - 550: e3a02002 mov r2, #2 - 554: e5c02000 strb r2, [r0] - 558: e3a02000 mov r2, #0 - 55c: e5c02000 strb r2, [r0] - 560: e3a02041 mov r2, #65 ; 0x41 - 564: e5c02000 strb r2, [r0] - 568: e3a02002 mov r2, #2 - 56c: e5c02000 strb r2, [r0] - 570: e3a02043 mov r2, #67 ; 0x43 - 574: e5c02000 strb r2, [r0] -; now check for 53 -; if not 53, go back to wait for 01-53 - 578: e3510053 cmp r1, #83 ; 0x53 - 57c: 0a000000 beq 0x584 - 580: eaffffda b 0x4f0 -; got 53 - 584: e3a02000 mov r2, #0 - 588: e59f3190 ldr r3, =0x800100 ; via 0x720 - 58c: e3a04000 mov r4, #0 - 590: e3a05001 mov r5, #1 -; endless wait for Rx byte - 594: e5d01005 ldrb r1, [r0, #5] - 598: e2011001 and r1, r1, #1 - 59c: e3510001 cmp r1, #1 - 5a0: 1afffffb bne 0x594 - 5a4: e5d01000 ldrb r1, [r0] -; state machine dispatch - 5a8: e3520000 cmp r2, #0 - 5ac: 0a000008 beq 0x5d4 - 5b0: e3520001 cmp r2, #1 - 5b4: 0a00000b beq 0x5e8 - 5b8: e3520002 cmp r2, #2 - 5bc: 0a00000d beq 0x5f8 - 5c0: e3520003 cmp r2, #3 - 5c4: 0a00000f beq 0x608 - 5c8: e3520004 cmp r2, #4 - 5cc: 0a000015 beq 0x628 - 5d0: ea000037 b 0x6b4 -; R2=0: must receive 02 first - 5d4: e3510002 cmp r1, #2 - 5d8: 1affffed bne 0x594 - 5dc: e1a06001 mov r6, r1 - 5e0: e2822001 add r2, r2, #1 - 5e4: eaffffea b 0x594 -; R2=1: got MSB of length - 5e8: e1a04401 mov r4, r1, lsl #8 - 5ec: e0266001 eor r6, r6, r1 - 5f0: e2822001 add r2, r2, #1 - 5f4: eaffffe6 b 0x594 -; R2=2: got LSB of length - 5f8: e0844001 add r4, r4, r1 - 5fc: e0266001 eor r6, r6, r1 - 600: e2822001 add r2, r2, #1 - 604: eaffffe2 b 0x594 -; R2=3: payload - 608: e5c31000 strb r1, [r3] - 60c: e0266001 eor r6, r6, r1 - 610: e2833001 add r3, r3, #1 - 614: e2444001 sub r4, r4, #1 - 618: e3540000 cmp r4, #0 - 61c: 1affffdc bne 0x594 - 620: e2822001 add r2, r2, #1 - 624: eaffffda b 0x594 -; R2=4: checksum expected - 628: e1560001 cmp r6, r1 - 62c: 1a000012 bne 0x67c -; checksum good -; emit 1B F6 02 00 41 03 42 - 630: e3a0101b mov r1, #27 ; 0x1b - 634: e5c01000 strb r1, [r0] - 638: e3a010f6 mov r1, #246 ; 0xf6 - 63c: e5c01000 strb r1, [r0] - 640: e3a01002 mov r1, #2 - 644: e5c01000 strb r1, [r0] - 648: e3a01000 mov r1, #0 - 64c: e5c01000 strb r1, [r0] - 650: e3a01041 mov r1, #65 ; 0x41 - 654: e5c01000 strb r1, [r0] - 658: e3a01003 mov r1, #3 - 65c: e5c01000 strb r1, [r0] - 660: e3a01042 mov r1, #66 ; 0x42 - 664: e5c01000 strb r1, [r0] -; SP=0x803FFC - 668: e59f00b4 ldr r0, =0x803ffc ; via 0x724 - 66c: e1a0d000 mov sp, r0 -; jump to 0x800100 in Thumb state - 670: e59f00a8 ldr r0, =0x800100 ; via 0x720 - 674: e280e001 add lr, r0, #1 - 678: e12fff1e bx lr -; checksum mismatch -; emit 1B F6 02 00 45 53 16 - 67c: e3a0101b mov r1, #27 ; 0x1b - 680: e5c01000 strb r1, [r0] - 684: e3a010f6 mov r1, #246 ; 0xf6 - 688: e5c01000 strb r1, [r0] - 68c: e3a01002 mov r1, #2 - 690: e5c01000 strb r1, [r0] - 694: e3a01000 mov r1, #0 - 698: e5c01000 strb r1, [r0] - 69c: e3a01045 mov r1, #69 ; 0x45 - 6a0: e5c01000 strb r1, [r0] - 6a4: e3a01053 mov r1, #83 ; 0x53 - 6a8: e5c01000 strb r1, [r0] - 6ac: e3a01016 mov r1, #22 ; 0x16 - 6b0: e5c01000 strb r1, [r0] -; bail out path -; ARMIO_LATCH_OUT: set GPIO 9 low - 6b4: e59f3050 ldr r3, =0xfffe4802 ; via 0x70c - 6b8: e5931000 ldr r1, [r3] - 6bc: e3a030ff mov r3, #255 ; 0xff - 6c0: e3a02cfd mov r2, #64768 ; 0xfd00 - 6c4: e1822003 orr r2, r2, r3 - 6c8: e0011002 and r1, r1, r2 - 6cc: e59f3034 ldr r3, =0xfffe4800 ; via 0x708 - 6d0: e1c310b2 strh r1, [r3, #2] -; switch GPIO12 back to input - 6d4: e59f3034 ldr r3, =0xfffe4804 ; via 0x710 - 6d8: e5931000 ldr r1, [r3] - 6dc: e3811a01 orr r1, r1, #4096 ; 0x1000 - 6e0: e59f3020 ldr r3, =0xfffe4800 ; via 0x708 - 6e4: e1c310b4 strh r1, [r3, #4] - 6e8: ea007e7c b 0x200e0 - - 6ec: 000002a3 - 6f0: fffffb00 - 6f4: ffff5800 - 6f8: ffff5801 - 6fc: ffff5803 - 700: fffffb00 - 704: fffef000 - 708: fffe4800 - 70c: fffe4802 - 710: fffe4804 - 714: fffe480c - 718: fffe480a - 71c: fffef006 - 720: 00800100 - 724: 00803ffc - -<728-7FF: all FFs> - -00000800: 42 4F 4F 54 2E 39 30 2E 30 35 00 00 00 00 00 00 BOOT.90.05...... -00000810: 31 30 30 33 01 02 00 00 FF FF FF FF FF FF FF FF 1003............ -00000820: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ - -blank flash from here onward, until the main fw image starts at 0x20000