summaryrefslogtreecommitdiff
path: root/asm/code_8006218.s
diff options
context:
space:
mode:
authorsceptillion <33798691+sceptillion@users.noreply.github.com>2017-12-11 00:18:19 -0800
committersceptillion <33798691+sceptillion@users.noreply.github.com>2017-12-11 00:18:19 -0800
commit7c4bc430c2997e80683612229cfa6b10d08cf512 (patch)
treeac1b2d0cd7a16fb83e8c0466c2f9c16c17570fde /asm/code_8006218.s
parentd07afbc0818370f03ef840419e0bf4f654753ab8 (diff)
split random.s
Diffstat (limited to 'asm/code_8006218.s')
-rw-r--r--asm/code_8006218.s11289
1 files changed, 11289 insertions, 0 deletions
diff --git a/asm/code_8006218.s b/asm/code_8006218.s
new file mode 100644
index 0000000..3983a60
--- /dev/null
+++ b/asm/code_8006218.s
@@ -0,0 +1,11289 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8006218
+sub_8006218:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r1, _080062F4
+ movs r0, 0
+ str r0, [r1]
+ ldr r0, _080062F8
+ ldr r5, _080062FC
+ adds r1, r5, 0
+ bl sub_800A9EC
+ ldr r4, _08006300
+ str r0, [r4]
+ ldr r0, _08006304
+ adds r1, r5, 0
+ bl sub_800A9EC
+ str r0, [r4, 0x4]
+ ldr r2, _08006308
+ ldr r1, [r4]
+ ldr r1, [r1, 0x4]
+ str r1, [r2]
+ ldr r0, [r0, 0x4]
+ str r0, [r2, 0x4]
+ ldr r1, _0800630C
+ movs r0, 0xB
+ str r0, [r1]
+ movs r0, 0xC
+ str r0, [r1, 0x4]
+ ldr r0, _08006310
+ movs r4, 0
+ movs r3, 0
+ adds r2, r0, 0
+ adds r2, 0x46
+ adds r0, 0x4
+ movs r1, 0x3
+_08006264:
+ strh r3, [r0]
+ strh r3, [r0, 0x4]
+ strb r4, [r2]
+ adds r2, 0x48
+ adds r0, 0x48
+ subs r1, 0x1
+ cmp r1, 0
+ bge _08006264
+ ldr r1, _08006314
+ movs r0, 0
+ strh r0, [r1]
+ movs r3, 0
+ ldr r0, _08006318
+ mov r9, r0
+ ldr r1, _0800631C
+ mov r10, r1
+ ldr r7, _08006320
+ ldr r2, _08006324
+ mov r8, r2
+ movs r0, 0x80
+ lsls r0, 4
+ adds r6, r7, r0
+ ldr r4, _08006328
+ movs r5, 0
+ mov r12, r6
+_08006296:
+ lsls r0, r3, 6
+ adds r2, r0, r7
+ mov r1, r8
+ strh r1, [r2]
+ adds r1, r0, r6
+ strh r4, [r1]
+ adds r3, 0x1
+ add r0, r12
+ adds r0, 0x2
+ adds r2, 0x2
+ movs r1, 0x1E
+_080062AC:
+ strh r5, [r2]
+ strh r4, [r0]
+ adds r0, 0x2
+ adds r2, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080062AC
+ cmp r3, 0x13
+ ble _08006296
+ movs r1, 0
+ movs r0, 0x1
+ mov r2, r9
+ strb r0, [r2]
+ ldr r0, _0800632C
+ mov r2, r10
+ str r0, [r2]
+ ldr r0, _08006330
+ str r1, [r0]
+ ldr r2, _08006334
+ strb r1, [r2]
+ movs r0, 0x1
+ ldr r1, _08006338
+ str r0, [r1]
+ movs r0, 0x14
+ ldr r2, _0800633C
+ str r0, [r2]
+ movs r0, 0
+ bl xxx_update_some_bg_tiles
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080062F4: .4byte gUnknown_20274AC
+_080062F8: .4byte gUnknown_80B87B4
+_080062FC: .4byte gUnknown_8300500
+_08006300: .4byte gUnknown_202AFB4
+_08006304: .4byte gUnknown_80B87BC
+_08006308: .4byte gUnknown_2027490
+_0800630C: .4byte gUnknown_202B028
+_08006310: .4byte gUnknown_2027370
+_08006314: .4byte gUnknown_2027498
+_08006318: .4byte gUnknown_202B034
+_0800631C: .4byte gUnknown_202B030
+_08006320: .4byte gUnknown_202B038
+_08006324: .4byte 0x0000f279
+_08006328: .4byte 0x0000f27a
+_0800632C: .4byte 0x88888888
+_08006330: .4byte gUnknown_203B078
+_08006334: .4byte gUnknown_20274A5
+_08006338: .4byte gUnknown_202B020
+_0800633C: .4byte gUnknown_202B024
+ thumb_func_end sub_8006218
+
+ thumb_func_start xxx_update_some_bg_tiles
+xxx_update_some_bg_tiles:
+ push {r4,r5,lr}
+ adds r1, r0, 0
+ ldr r0, _08006360
+ ldr r5, [r0]
+ ldr r4, _08006364
+ str r1, [r0]
+ cmp r1, 0
+ beq _08006354
+ cmp r1, 0x2
+ bne _0800636C
+_08006354:
+ movs r0, 0x2
+ bl sub_800CDA8
+ ldr r2, _08006368
+ b _08006374
+ .align 2, 0
+_08006360: .4byte gUnknown_20274B0
+_08006364: .4byte 0x06004f40
+_08006368: .4byte gUnknown_80B87C4
+_0800636C:
+ movs r0, 0x1
+ bl sub_800CDA8
+ ldr r2, _080063A4
+_08006374:
+ ldr r1, _080063A8
+ ldr r0, _080063AC
+ str r0, [r1]
+ ldm r2!, {r0}
+ stm r4!, {r0}
+ ldm r2!, {r0}
+ stm r4!, {r0}
+ ldm r2!, {r0}
+ stm r4!, {r0}
+ ldm r2!, {r0}
+ stm r4!, {r0}
+ ldm r2!, {r0}
+ stm r4!, {r0}
+ ldm r2!, {r0}
+ stm r4!, {r0}
+ ldm r2!, {r0}
+ stm r4!, {r0}
+ ldr r0, [r2]
+ str r0, [r4]
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080063A4: .4byte gUnknown_80B87E4
+_080063A8: .4byte gUnknown_202B030
+_080063AC: .4byte 0x88888888
+ thumb_func_end xxx_update_some_bg_tiles
+
+ thumb_func_start sub_80063B0
+sub_80063B0:
+ ldr r0, _080063B8
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_080063B8: .4byte gUnknown_20274B0
+ thumb_func_end sub_80063B0
+
+ thumb_func_start sub_80063BC
+sub_80063BC:
+ ldr r1, _080063C8
+ ldrb r2, [r1]
+ strb r0, [r1]
+ adds r0, r2, 0
+ bx lr
+ .align 2, 0
+_080063C8: .4byte gUnknown_202B034
+ thumb_func_end sub_80063BC
+
+ thumb_func_start sub_80063CC
+sub_80063CC:
+ ldr r1, _080063D4
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080063D4: .4byte gUnknown_20274AC
+ thumb_func_end sub_80063CC
+
+ thumb_func_start sub_80063D8
+sub_80063D8:
+ push {lr}
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _080063F0
+ ldr r0, _080063E8
+ ldr r0, [r0]
+ ldr r2, _080063EC
+ b _08006410
+ .align 2, 0
+_080063E8: .4byte gUnknown_20274B0
+_080063EC: .4byte 0x88888888
+_080063F0:
+ movs r0, 0xF
+ ands r0, r1
+ lsls r2, r0, 4
+ orrs r2, r0
+ lsls r1, r0, 8
+ orrs r2, r1
+ lsls r1, r0, 12
+ orrs r2, r1
+ lsls r1, r0, 16
+ orrs r2, r1
+ lsls r1, r0, 20
+ orrs r2, r1
+ lsls r1, r0, 24
+ orrs r2, r1
+ lsls r0, 28
+ orrs r2, r0
+_08006410:
+ ldr r0, _08006418
+ str r2, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08006418: .4byte gUnknown_202B030
+ thumb_func_end sub_80063D8
+
+ thumb_func_start sub_800641C
+sub_800641C:
+ push {lr}
+ sub sp, 0x4
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ movs r3, 0
+ str r3, [sp]
+ mov r3, sp
+ bl sub_8006438
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_800641C
+
+ thumb_func_start sub_8006438
+sub_8006438:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ adds r4, r0, 0
+ mov r8, r3
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ movs r0, 0x2
+ mov r9, r0
+ cmp r4, 0
+ bne _0800645C
+ ldr r4, _080064F0
+_0800645C:
+ cmp r2, 0
+ beq _08006464
+ bl sub_8009388
+_08006464:
+ bl sub_800898C
+ movs r6, 0
+ adds r5, r4, 0
+ adds r5, 0xC
+ ldr r1, _080064F4
+ str r1, [sp, 0x18]
+_08006472:
+ ldr r0, [sp, 0x18]
+ adds r1, r4, 0
+ ldm r1!, {r2,r3,r7}
+ stm r0!, {r2,r3,r7}
+ ldm r1!, {r2,r3,r7}
+ stm r0!, {r2,r3,r7}
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080064C4
+ ldr r1, _080064F8
+ lsls r0, r6, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r10
+ str r2, [sp, 0x8]
+ mov r3, r9
+ str r3, [sp, 0xC]
+ mov r7, r8
+ str r7, [sp, 0x10]
+ movs r0, 0
+ str r0, [sp, 0x14]
+ ldr r0, _080064FC
+ movs r1, 0xC0
+ lsls r1, 19
+ ldr r2, _08006500
+ ldr r3, _08006504
+ bl sub_8006554
+ adds r0, r4, 0
+ mov r1, r8
+ bl sub_80089AC
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ movs r2, 0x4
+ ldrsh r0, [r5, r2]
+ muls r0, r1
+ add r9, r0
+_080064C4:
+ adds r5, 0x18
+ adds r4, 0x18
+ ldr r3, [sp, 0x18]
+ adds r3, 0x18
+ str r3, [sp, 0x18]
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _08006472
+ ldr r2, _08006508
+ ldr r0, _0800650C
+ ldr r1, _08006510
+ str r0, [r2]
+ movs r0, 0x1
+ strb r0, [r1]
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080064F0: .4byte gUnknown_80B857C
+_080064F4: .4byte gUnknown_202AFC0
+_080064F8: .4byte gUnknown_80B8804
+_080064FC: .4byte gUnknown_2027370
+_08006500: .4byte gUnknown_20274B4
+_08006504: .4byte gUnknown_202B038
+_08006508: .4byte gUnknown_203B078
+_0800650C: .4byte gUnknown_3000E94
+_08006510: .4byte gUnknown_20274A5
+ thumb_func_end sub_8006438
+
+ thumb_func_start nullsub_152
+nullsub_152:
+ bx lr
+ thumb_func_end nullsub_152
+
+ thumb_func_start sub_8006518
+sub_8006518:
+ push {r4-r7,lr}
+ ldr r4, _0800653C
+ adds r2, r0, 0
+ movs r3, 0x3
+_08006520:
+ adds r1, r2, 0
+ adds r0, r4, 0
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ adds r4, 0x18
+ adds r2, 0x18
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08006520
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800653C: .4byte gUnknown_202AFC0
+ thumb_func_end sub_8006518
+
+ thumb_func_start nullsub_153
+nullsub_153:
+ bx lr
+ thumb_func_end nullsub_153
+
+ thumb_func_start sub_8006544
+sub_8006544:
+ ldr r1, _08006550
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_08006550: .4byte gUnknown_80B8814
+ thumb_func_end sub_8006544
+
+ thumb_func_start sub_8006554
+sub_8006554:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ str r0, [sp, 0x4]
+ adds r7, r1, 0
+ adds r6, r2, 0
+ str r3, [sp, 0x8]
+ ldr r1, [sp, 0x4C]
+ ldr r3, [sp, 0x50]
+ ldr r2, [sp, 0x54]
+ ldr r0, [sp, 0x58]
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0xC]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x10]
+ ldr r1, [sp, 0x44]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 3
+ ldr r4, [sp, 0x4]
+ adds r5, r4, r0
+ ldr r0, [sp, 0x48]
+ movs r4, 0x8
+ ldrsh r1, [r0, r4]
+ movs r4, 0
+ ldrsh r0, [r2, r4]
+ adds r1, r0
+ str r1, [sp, 0x14]
+ ldr r0, [sp, 0x48]
+ movs r4, 0xA
+ ldrsh r1, [r0, r4]
+ movs r4, 0x2
+ ldrsh r0, [r2, r4]
+ adds r4, r1, r0
+ mov r0, sp
+ ldrh r0, [r0, 0x14]
+ strh r0, [r5]
+ strh r4, [r5, 0x2]
+ ldr r1, [sp, 0x48]
+ ldrh r0, [r1, 0xC]
+ strh r0, [r5, 0x4]
+ ldrh r0, [r1, 0x10]
+ strh r0, [r5, 0x8]
+ ldrh r0, [r1, 0xE]
+ strh r0, [r5, 0x6]
+ ldr r0, [r1, 0x4]
+ str r0, [r5, 0xC]
+ str r3, [r5, 0x10]
+ cmp r0, 0x6
+ bne _080065C6
+ str r3, [r5, 0x14]
+ b _080065D6
+_080065C6:
+ ldr r2, [sp, 0x48]
+ movs r0, 0x12
+ ldrsh r1, [r2, r0]
+ movs r2, 0x4
+ ldrsh r0, [r5, r2]
+ muls r0, r1
+ adds r0, r3, r0
+ str r0, [r5, 0x14]
+_080065D6:
+ ldr r0, [r5, 0x10]
+ lsls r0, 5
+ adds r0, r6, r0
+ str r0, [r5, 0x18]
+ ldr r0, [r5, 0x14]
+ lsls r0, 5
+ adds r1, r6, r0
+ str r1, [r5, 0x1C]
+ ldr r3, [sp, 0x48]
+ movs r6, 0x12
+ ldrsh r1, [r3, r6]
+ str r1, [r5, 0x24]
+ adds r0, r7, r0
+ str r0, [r5, 0x28]
+ ldr r3, [r5, 0xC]
+ cmp r3, 0x6
+ bne _0800660C
+ movs r7, 0x4
+ ldrsh r2, [r5, r7]
+ movs r1, 0x6
+ ldrsh r0, [r5, r1]
+ ldr r6, [sp, 0x48]
+ movs r7, 0x12
+ ldrsh r1, [r6, r7]
+ adds r0, r1
+ muls r0, r2
+ b _08006616
+_0800660C:
+ movs r0, 0x4
+ ldrsh r1, [r5, r0]
+ movs r2, 0x6
+ ldrsh r0, [r5, r2]
+ muls r0, r1
+_08006616:
+ lsls r0, 5
+ str r0, [r5, 0x2C]
+ movs r0, 0
+ str r0, [r5, 0x30]
+ str r0, [r5, 0x34]
+ str r0, [r5, 0x38]
+ movs r6, 0x4
+ ldrsh r0, [r5, r6]
+ lsls r0, 3
+ subs r0, 0x8
+ str r0, [r5, 0x20]
+ movs r1, 0
+ cmp r3, 0
+ bne _08006634
+ movs r1, 0x1
+_08006634:
+ adds r0, r5, 0
+ adds r0, 0x45
+ strb r1, [r0]
+ movs r7, 0x8
+ ldrsh r0, [r5, r7]
+ cmp r0, 0
+ bne _08006644
+ b _0800676C
+_08006644:
+ ldr r0, [sp, 0x48]
+ ldrb r1, [r0]
+ movs r0, 0xA0
+ ands r0, r1
+ adds r1, r5, 0
+ adds r1, 0x46
+ str r1, [sp, 0x1C]
+ cmp r0, 0x80
+ beq _08006752
+ subs r7, r4, 0x1
+ ldr r0, [r5, 0xC]
+ cmp r0, 0x6
+ bne _080066A8
+ movs r2, 0
+ mov r8, r2
+ ldr r3, [sp, 0xC]
+ cmp r3, 0
+ beq _0800666C
+ ldr r6, [r5, 0x14]
+ mov r8, r6
+_0800666C:
+ ldr r0, [sp, 0x48]
+ ldr r3, [r0, 0x14]
+ ldr r1, [sp, 0x8]
+ str r1, [sp]
+ adds r0, r5, 0
+ adds r1, r7, 0
+ mov r2, r8
+ bl sub_8006E94
+ adds r7, r4, 0x2
+ ldr r2, [sp, 0xC]
+ cmp r2, 0
+ beq _0800669A
+ movs r3, 0x4
+ ldrsh r1, [r5, r3]
+ ldr r4, [sp, 0x48]
+ movs r6, 0x12
+ ldrsh r0, [r4, r6]
+ adds r0, 0x2
+ muls r1, r0
+ ldr r0, [r5, 0x14]
+ adds r0, r1
+ b _0800669C
+_0800669A:
+ movs r0, 0
+_0800669C:
+ mov r8, r0
+ movs r1, 0x6
+ ldrsh r0, [r5, r1]
+ subs r0, 0x2
+ str r0, [sp, 0x18]
+ b _080066CA
+_080066A8:
+ adds r0, r5, 0
+ adds r1, r7, 0
+ ldr r2, [sp, 0x8]
+ ldr r3, [sp, 0x10]
+ bl sub_800677C
+ adds r7, r4, 0
+ movs r2, 0
+ mov r8, r2
+ ldr r3, [sp, 0xC]
+ cmp r3, 0
+ beq _080066C4
+ ldr r4, [r5, 0x14]
+ mov r8, r4
+_080066C4:
+ movs r0, 0x6
+ ldrsh r6, [r5, r0]
+ str r6, [sp, 0x18]
+_080066CA:
+ movs r1, 0
+ mov r9, r1
+ adds r2, r5, 0
+ adds r2, 0x46
+ str r2, [sp, 0x1C]
+ ldr r3, [sp, 0x18]
+ cmp r9, r3
+ bge _08006746
+_080066DA:
+ ldr r4, [sp, 0x14]
+ subs r4, 0x1
+ ldr r6, [sp, 0x8]
+ str r6, [sp]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ adds r2, r7, 0
+ mov r3, r9
+ bl sub_80069CC
+ ldr r4, [sp, 0x14]
+ movs r6, 0
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ adds r2, r7, 0x1
+ mov r10, r2
+ mov r3, r9
+ adds r3, 0x1
+ str r3, [sp, 0x20]
+ cmp r6, r0
+ bge _0800672A
+_08006704:
+ ldr r0, [sp, 0x8]
+ str r0, [sp]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ adds r2, r7, 0
+ mov r3, r8
+ bl sub_8006AC4
+ adds r4, 0x1
+ ldr r1, [sp, 0xC]
+ cmp r1, 0
+ beq _08006720
+ movs r2, 0x1
+ add r8, r2
+_08006720:
+ adds r6, 0x1
+ movs r3, 0x4
+ ldrsh r0, [r5, r3]
+ cmp r6, r0
+ blt _08006704
+_0800672A:
+ ldr r6, [sp, 0x8]
+ str r6, [sp]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ adds r2, r7, 0
+ mov r3, r9
+ bl sub_8006B70
+ mov r7, r10
+ ldr r0, [sp, 0x20]
+ mov r9, r0
+ ldr r1, [sp, 0x18]
+ cmp r9, r1
+ blt _080066DA
+_08006746:
+ adds r0, r5, 0
+ adds r1, r7, 0
+ ldr r2, [sp, 0x8]
+ ldr r3, [sp, 0x10]
+ bl sub_8006C44
+_08006752:
+ ldr r2, [sp, 0x48]
+ ldrb r1, [r2]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08006766
+ ldr r0, [sp, 0x4]
+ ldr r1, [sp, 0x44]
+ bl sub_8008C6C
+_08006766:
+ movs r0, 0
+ ldr r3, [sp, 0x1C]
+ strb r0, [r3]
+_0800676C:
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8006554
+
+ thumb_func_start sub_800677C
+sub_800677C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r6, r0, 0
+ adds r4, r1, 0
+ str r2, [sp]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r9, r3
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ subs r3, r0, 0x1
+ cmp r4, 0x1C
+ ble _080067A0
+ b _080069AE
+_080067A0:
+ cmp r4, 0
+ bge _080067A6
+ b _080069AE
+_080067A6:
+ ldr r0, [r6, 0xC]
+ cmp r0, 0x7
+ bls _080067AE
+ b _080069AE
+_080067AE:
+ lsls r0, 2
+ ldr r1, _080067B8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080067B8: .4byte _080067BC
+ .align 2, 0
+_080067BC:
+ .4byte _080069AE
+ .4byte _080069AE
+ .4byte _080069AE
+ .4byte _080067DC
+ .4byte _0800689C
+ .4byte _08006920
+ .4byte _080069AE
+ .4byte _0800696C
+_080067DC:
+ lsls r1, r3, 1
+ lsls r2, r4, 6
+ ldr r4, [sp]
+ adds r0, r2, r4
+ adds r1, r0
+ ldr r7, _08006800
+ adds r0, r7, 0
+ strh r0, [r1]
+ adds r5, r2, 0
+ mov r0, r9
+ cmp r0, 0
+ beq _08006808
+ movs r2, 0x80
+ lsls r2, 4
+ adds r1, r2
+ ldr r4, _08006804
+ adds r0, r4, 0
+ b _08006812
+ .align 2, 0
+_08006800: .4byte 0x0000f2d8
+_08006804: .4byte 0x0000f293
+_08006808:
+ movs r7, 0x80
+ lsls r7, 4
+ adds r1, r7
+ ldr r2, _08006878
+ adds r0, r2, 0
+_08006812:
+ strh r0, [r1]
+ adds r3, 0x1
+ movs r4, 0
+ movs r7, 0x4
+ ldrsh r0, [r6, r7]
+ cmp r4, r0
+ bge _08006856
+ ldr r0, _0800687C
+ mov r8, r0
+ lsls r0, r3, 1
+ ldr r2, [sp]
+ movs r7, 0x80
+ lsls r7, 4
+ adds r1, r2, r7
+ adds r1, r5, r1
+ adds r2, r0, r1
+ ldr r7, [sp]
+ adds r1, r5, r7
+ adds r1, r0, r1
+ ldr r0, _08006878
+ mov r12, r0
+_0800683C:
+ mov r7, r8
+ strh r7, [r1]
+ mov r0, r12
+ strh r0, [r2]
+ adds r2, 0x2
+ adds r1, 0x2
+ adds r3, 0x1
+ adds r4, 0x1
+ movs r0, 0x4
+ ldrsh r7, [r6, r0]
+ mov r10, r7
+ cmp r4, r10
+ blt _0800683C
+_08006856:
+ lsls r0, r3, 1
+ ldr r2, [sp]
+ adds r1, r5, r2
+ adds r1, r0, r1
+ ldr r4, _08006880
+ adds r0, r4, 0
+ strh r0, [r1]
+ mov r7, r9
+ cmp r7, 0
+ beq _08006888
+ movs r0, 0x80
+ lsls r0, 4
+ adds r1, r0
+ ldr r2, _08006884
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _080069AE
+ .align 2, 0
+_08006878: .4byte 0x0000f2db
+_0800687C: .4byte 0x0000f2d9
+_08006880: .4byte 0x0000f6d8
+_08006884: .4byte 0x0000f693
+_08006888:
+ movs r4, 0x80
+ lsls r4, 4
+ adds r1, r4
+ ldr r7, _08006898
+ adds r0, r7, 0
+ strh r0, [r1]
+ b _080069AE
+ .align 2, 0
+_08006898: .4byte 0x0000f2db
+_0800689C:
+ lsls r1, r3, 1
+ lsls r2, r4, 6
+ ldr r0, [sp]
+ adds r0, r2
+ mov r12, r0
+ add r1, r12
+ ldr r4, _08006910
+ adds r0, r4, 0
+ strh r0, [r1]
+ movs r7, 0x80
+ lsls r7, 4
+ mov r8, r7
+ add r1, r8
+ ldr r0, _08006914
+ mov r9, r0
+ strh r0, [r1]
+ adds r3, 0x1
+ movs r4, 0
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ adds r5, r2, 0
+ cmp r4, r0
+ bge _080068F6
+ ldr r2, _08006918
+ mov r10, r2
+ lsls r1, r3, 1
+ ldr r0, [sp]
+ add r0, r8
+ adds r0, r5, r0
+ adds r2, r1, r0
+ add r1, r12
+ mov r12, r9
+_080068DC:
+ mov r7, r10
+ strh r7, [r1]
+ mov r0, r12
+ strh r0, [r2]
+ adds r2, 0x2
+ adds r1, 0x2
+ adds r3, 0x1
+ adds r4, 0x1
+ movs r0, 0x4
+ ldrsh r7, [r6, r0]
+ mov r8, r7
+ cmp r4, r8
+ blt _080068DC
+_080068F6:
+ lsls r0, r3, 1
+ ldr r2, [sp]
+ adds r1, r5, r2
+ adds r0, r1
+ ldr r4, _0800691C
+ adds r1, r4, 0
+ strh r1, [r0]
+ movs r7, 0x80
+ lsls r7, 4
+ adds r0, r7
+ ldr r2, _08006914
+ adds r1, r2, 0
+ b _080069AC
+ .align 2, 0
+_08006910: .4byte 0x0000f2e8
+_08006914: .4byte 0x0000f2db
+_08006918: .4byte 0x0000f2e9
+_0800691C: .4byte 0x0000f6e8
+_08006920:
+ lsls r0, r3, 1
+ lsls r2, r4, 6
+ ldr r4, [sp]
+ adds r4, r2
+ mov r12, r4
+ add r0, r12
+ ldr r7, _08006960
+ adds r1, r7, 0
+ strh r1, [r0]
+ adds r3, 0x1
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ adds r5, r2, 0
+ cmp r0, 0
+ ble _08006954
+ ldr r2, _08006964
+ adds r1, r2, 0
+ adds r4, r0, 0
+ lsls r0, r3, 1
+ add r0, r12
+_08006948:
+ strh r1, [r0]
+ adds r0, 0x2
+ adds r3, 0x1
+ subs r4, 0x1
+ cmp r4, 0
+ bne _08006948
+_08006954:
+ lsls r0, r3, 1
+ ldr r4, [sp]
+ adds r1, r5, r4
+ adds r0, r1
+ ldr r7, _08006968
+ b _080069AA
+ .align 2, 0
+_08006960: .4byte 0x0000f2dc
+_08006964: .4byte 0x0000f2dd
+_08006968: .4byte 0x0000f6dc
+_0800696C:
+ lsls r0, r3, 1
+ lsls r2, r4, 6
+ ldr r1, [sp]
+ adds r1, r2
+ mov r12, r1
+ add r0, r12
+ ldr r4, _080069C0
+ adds r1, r4, 0
+ strh r1, [r0]
+ adds r3, 0x1
+ movs r7, 0x4
+ ldrsh r0, [r6, r7]
+ adds r5, r2, 0
+ cmp r0, 0
+ ble _080069A0
+ ldr r2, _080069C4
+ adds r1, r2, 0
+ adds r4, r0, 0
+ lsls r0, r3, 1
+ add r0, r12
+_08006994:
+ strh r1, [r0]
+ adds r0, 0x2
+ adds r3, 0x1
+ subs r4, 0x1
+ cmp r4, 0
+ bne _08006994
+_080069A0:
+ lsls r0, r3, 1
+ ldr r4, [sp]
+ adds r1, r5, r4
+ adds r0, r1
+ ldr r7, _080069C8
+_080069AA:
+ adds r1, r7, 0
+_080069AC:
+ strh r1, [r0]
+_080069AE:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080069C0: .4byte 0x0000f293
+_080069C4: .4byte 0x0000f297
+_080069C8: .4byte 0x0000f693
+ thumb_func_end sub_800677C
+
+ thumb_func_start sub_80069CC
+sub_80069CC:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ adds r5, r3, 0
+ ldr r3, [sp, 0x10]
+ cmp r2, 0x1C
+ bgt _08006ABA
+ cmp r2, 0
+ blt _08006ABA
+ ldr r0, [r6, 0xC]
+ cmp r0, 0x7
+ bhi _08006ABA
+ lsls r0, 2
+ ldr r1, _080069F0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080069F0: .4byte _080069F4
+ .align 2, 0
+_080069F4:
+ .4byte _08006A14
+ .4byte _08006ABA
+ .4byte _08006ABA
+ .4byte _08006A60
+ .4byte _08006A7C
+ .4byte _08006A9C
+ .4byte _08006A60
+ .4byte _08006AAC
+_08006A14:
+ cmp r5, 0
+ bne _08006A34
+ lsls r1, r4, 1
+ lsls r0, r2, 6
+ adds r0, r3
+ adds r1, r0
+ ldr r2, _08006A30
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0x80
+ lsls r0, 4
+ adds r1, r0
+ adds r2, 0x44
+ b _08006A92
+ .align 2, 0
+_08006A30: .4byte 0x0000f297
+_08006A34:
+ movs r1, 0x6
+ ldrsh r0, [r6, r1]
+ subs r0, 0x1
+ cmp r5, r0
+ bne _08006A60
+ lsls r1, r4, 1
+ lsls r0, r2, 6
+ adds r0, r3
+ adds r1, r0
+ ldr r2, _08006A58
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0x80
+ lsls r0, 4
+ adds r1, r0
+ ldr r2, _08006A5C
+ b _08006A92
+ .align 2, 0
+_08006A58: .4byte 0x0000fa97
+_08006A5C: .4byte 0x0000f2db
+_08006A60:
+ lsls r1, r4, 1
+ lsls r0, r2, 6
+ adds r0, r3
+ adds r1, r0
+ ldr r2, _08006A78
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0x80
+ lsls r0, 4
+ adds r1, r0
+ adds r2, 0x1
+ b _08006A92
+ .align 2, 0
+_08006A78: .4byte 0x0000f2da
+_08006A7C:
+ lsls r1, r4, 1
+ lsls r0, r2, 6
+ adds r0, r3
+ adds r1, r0
+ ldr r2, _08006A98
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0x80
+ lsls r0, 4
+ adds r1, r0
+ subs r2, 0xF
+_08006A92:
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _08006ABA
+ .align 2, 0
+_08006A98: .4byte 0x0000f2ea
+_08006A9C:
+ lsls r0, r4, 1
+ lsls r1, r2, 6
+ adds r1, r3
+ adds r0, r1
+ ldr r2, _08006AA8
+ b _08006AB6
+ .align 2, 0
+_08006AA8: .4byte 0x0000f2de
+_08006AAC:
+ lsls r0, r4, 1
+ lsls r1, r2, 6
+ adds r1, r3
+ adds r0, r1
+ ldr r2, _08006AC0
+_08006AB6:
+ adds r1, r2, 0
+ strh r1, [r0]
+_08006ABA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08006AC0: .4byte 0x0000f2b6
+ thumb_func_end sub_80069CC
+
+ thumb_func_start sub_8006AC4
+sub_8006AC4:
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ ldr r5, [sp, 0xC]
+ cmp r2, 0x1C
+ bgt _08006B64
+ cmp r2, 0
+ blt _08006B64
+ ldr r0, [r0, 0xC]
+ cmp r0, 0x7
+ bhi _08006B64
+ lsls r0, 2
+ ldr r1, _08006AE4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08006AE4: .4byte _08006AE8
+ .align 2, 0
+_08006AE8:
+ .4byte _08006B2C
+ .4byte _08006B2C
+ .4byte _08006B08
+ .4byte _08006B2C
+ .4byte _08006B2C
+ .4byte _08006B54
+ .4byte _08006B2C
+ .4byte _08006B54
+_08006B08:
+ lsls r1, r4, 1
+ lsls r0, r2, 6
+ adds r0, r5
+ adds r1, r0
+ ldr r2, _08006B24
+ adds r0, r2, 0
+ orrs r3, r0
+ strh r3, [r1]
+ movs r0, 0x80
+ lsls r0, 4
+ adds r1, r0
+ ldr r2, _08006B28
+ b _08006B44
+ .align 2, 0
+_08006B24: .4byte 0xfffff000
+_08006B28: .4byte 0x0000f278
+_08006B2C:
+ lsls r1, r4, 1
+ lsls r0, r2, 6
+ adds r0, r5
+ adds r1, r0
+ ldr r2, _08006B4C
+ adds r0, r2, 0
+ orrs r3, r0
+ strh r3, [r1]
+ movs r0, 0x80
+ lsls r0, 4
+ adds r1, r0
+ ldr r2, _08006B50
+_08006B44:
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _08006B64
+ .align 2, 0
+_08006B4C: .4byte 0xfffff000
+_08006B50: .4byte 0x0000f2db
+_08006B54:
+ lsls r0, r4, 1
+ lsls r1, r2, 6
+ adds r1, r5
+ adds r0, r1
+ ldr r2, _08006B6C
+ adds r1, r2, 0
+ orrs r3, r1
+ strh r3, [r0]
+_08006B64:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08006B6C: .4byte 0xfffff000
+ thumb_func_end sub_8006AC4
+
+ thumb_func_start sub_8006B70
+sub_8006B70:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ adds r5, r3, 0
+ ldr r3, [sp, 0x10]
+ cmp r2, 0x1C
+ bgt _08006C3A
+ cmp r2, 0
+ blt _08006C3A
+ ldr r0, [r6, 0xC]
+ cmp r0, 0x7
+ bhi _08006C3A
+ lsls r0, 2
+ ldr r1, _08006B94
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08006B94: .4byte _08006B98
+ .align 2, 0
+_08006B98:
+ .4byte _08006BB8
+ .4byte _08006C3A
+ .4byte _08006C3A
+ .4byte _08006BE8
+ .4byte _08006BF8
+ .4byte _08006C1C
+ .4byte _08006BE8
+ .4byte _08006C2C
+_08006BB8:
+ cmp r5, 0
+ bne _08006BCC
+ lsls r1, r4, 1
+ lsls r0, r2, 6
+ adds r0, r3
+ adds r1, r0
+ ldr r2, _08006BC8
+ b _08006C02
+ .align 2, 0
+_08006BC8: .4byte 0x0000f697
+_08006BCC:
+ movs r1, 0x6
+ ldrsh r0, [r6, r1]
+ subs r0, 0x1
+ cmp r5, r0
+ bne _08006BE8
+ lsls r1, r4, 1
+ lsls r0, r2, 6
+ adds r0, r3
+ adds r1, r0
+ ldr r2, _08006BE4
+ b _08006C02
+ .align 2, 0
+_08006BE4: .4byte 0x0000fe97
+_08006BE8:
+ lsls r1, r4, 1
+ lsls r0, r2, 6
+ adds r0, r3
+ adds r1, r0
+ ldr r2, _08006BF4
+ b _08006C02
+ .align 2, 0
+_08006BF4: .4byte 0x0000f6da
+_08006BF8:
+ lsls r1, r4, 1
+ lsls r0, r2, 6
+ adds r0, r3
+ adds r1, r0
+ ldr r2, _08006C14
+_08006C02:
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0x80
+ lsls r0, 4
+ adds r1, r0
+ ldr r2, _08006C18
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _08006C3A
+ .align 2, 0
+_08006C14: .4byte 0x0000f6ea
+_08006C18: .4byte 0x0000f2db
+_08006C1C:
+ lsls r0, r4, 1
+ lsls r1, r2, 6
+ adds r1, r3
+ adds r0, r1
+ ldr r2, _08006C28
+ b _08006C36
+ .align 2, 0
+_08006C28: .4byte 0x0000f6de
+_08006C2C:
+ lsls r0, r4, 1
+ lsls r1, r2, 6
+ adds r1, r3
+ adds r0, r1
+ ldr r2, _08006C40
+_08006C36:
+ adds r1, r2, 0
+ strh r1, [r0]
+_08006C3A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08006C40: .4byte 0x0000f6b6
+ thumb_func_end sub_8006B70
+
+ thumb_func_start sub_8006C44
+sub_8006C44:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r6, r0, 0
+ adds r4, r1, 0
+ str r2, [sp]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r9, r3
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ subs r3, r0, 0x1
+ cmp r4, 0x1C
+ ble _08006C68
+ b _08006E76
+_08006C68:
+ cmp r4, 0
+ bge _08006C6E
+ b _08006E76
+_08006C6E:
+ ldr r0, [r6, 0xC]
+ cmp r0, 0x7
+ bls _08006C76
+ b _08006E76
+_08006C76:
+ lsls r0, 2
+ ldr r1, _08006C80
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08006C80: .4byte _08006C84
+ .align 2, 0
+_08006C84:
+ .4byte _08006E76
+ .4byte _08006E76
+ .4byte _08006E76
+ .4byte _08006CA4
+ .4byte _08006D64
+ .4byte _08006DE8
+ .4byte _08006CA4
+ .4byte _08006E34
+_08006CA4:
+ lsls r1, r3, 1
+ lsls r2, r4, 6
+ ldr r4, [sp]
+ adds r0, r2, r4
+ adds r1, r0
+ ldr r7, _08006CC8
+ adds r0, r7, 0
+ strh r0, [r1]
+ adds r5, r2, 0
+ mov r0, r9
+ cmp r0, 0
+ beq _08006CD0
+ movs r2, 0x80
+ lsls r2, 4
+ adds r1, r2
+ ldr r4, _08006CCC
+ adds r0, r4, 0
+ b _08006CDA
+ .align 2, 0
+_08006CC8: .4byte 0x0000fad8
+_08006CCC: .4byte 0x0000fa93
+_08006CD0:
+ movs r7, 0x80
+ lsls r7, 4
+ adds r1, r7
+ ldr r2, _08006D40
+ adds r0, r2, 0
+_08006CDA:
+ strh r0, [r1]
+ adds r3, 0x1
+ movs r4, 0
+ movs r7, 0x4
+ ldrsh r0, [r6, r7]
+ cmp r4, r0
+ bge _08006D1E
+ ldr r0, _08006D44
+ mov r8, r0
+ lsls r0, r3, 1
+ ldr r2, [sp]
+ movs r7, 0x80
+ lsls r7, 4
+ adds r1, r2, r7
+ adds r1, r5, r1
+ adds r2, r0, r1
+ ldr r7, [sp]
+ adds r1, r5, r7
+ adds r1, r0, r1
+ ldr r0, _08006D40
+ mov r12, r0
+_08006D04:
+ mov r7, r8
+ strh r7, [r1]
+ mov r0, r12
+ strh r0, [r2]
+ adds r2, 0x2
+ adds r1, 0x2
+ adds r3, 0x1
+ adds r4, 0x1
+ movs r0, 0x4
+ ldrsh r7, [r6, r0]
+ mov r10, r7
+ cmp r4, r10
+ blt _08006D04
+_08006D1E:
+ lsls r0, r3, 1
+ ldr r2, [sp]
+ adds r1, r5, r2
+ adds r1, r0, r1
+ ldr r4, _08006D48
+ adds r0, r4, 0
+ strh r0, [r1]
+ mov r7, r9
+ cmp r7, 0
+ beq _08006D50
+ movs r0, 0x80
+ lsls r0, 4
+ adds r1, r0
+ ldr r2, _08006D4C
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _08006E76
+ .align 2, 0
+_08006D40: .4byte 0x0000f2db
+_08006D44: .4byte 0x0000fad9
+_08006D48: .4byte 0x0000fed8
+_08006D4C: .4byte 0x0000fe93
+_08006D50:
+ movs r4, 0x80
+ lsls r4, 4
+ adds r1, r4
+ ldr r7, _08006D60
+ adds r0, r7, 0
+ strh r0, [r1]
+ b _08006E76
+ .align 2, 0
+_08006D60: .4byte 0x0000f2db
+_08006D64:
+ lsls r1, r3, 1
+ lsls r2, r4, 6
+ ldr r0, [sp]
+ adds r0, r2
+ mov r12, r0
+ add r1, r12
+ ldr r4, _08006DD8
+ adds r0, r4, 0
+ strh r0, [r1]
+ movs r7, 0x80
+ lsls r7, 4
+ mov r8, r7
+ add r1, r8
+ ldr r0, _08006DDC
+ mov r9, r0
+ strh r0, [r1]
+ adds r3, 0x1
+ movs r4, 0
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ adds r5, r2, 0
+ cmp r4, r0
+ bge _08006DBE
+ ldr r2, _08006DE0
+ mov r10, r2
+ lsls r1, r3, 1
+ ldr r0, [sp]
+ add r0, r8
+ adds r0, r5, r0
+ adds r2, r1, r0
+ add r1, r12
+ mov r12, r9
+_08006DA4:
+ mov r7, r10
+ strh r7, [r1]
+ mov r0, r12
+ strh r0, [r2]
+ adds r2, 0x2
+ adds r1, 0x2
+ adds r3, 0x1
+ adds r4, 0x1
+ movs r0, 0x4
+ ldrsh r7, [r6, r0]
+ mov r8, r7
+ cmp r4, r8
+ blt _08006DA4
+_08006DBE:
+ lsls r0, r3, 1
+ ldr r2, [sp]
+ adds r1, r5, r2
+ adds r0, r1
+ ldr r4, _08006DE4
+ adds r1, r4, 0
+ strh r1, [r0]
+ movs r7, 0x80
+ lsls r7, 4
+ adds r0, r7
+ ldr r2, _08006DDC
+ adds r1, r2, 0
+ b _08006E74
+ .align 2, 0
+_08006DD8: .4byte 0x0000fae8
+_08006DDC: .4byte 0x0000f2db
+_08006DE0: .4byte 0x0000fae9
+_08006DE4: .4byte 0x0000fee8
+_08006DE8:
+ lsls r0, r3, 1
+ lsls r2, r4, 6
+ ldr r4, [sp]
+ adds r4, r2
+ mov r12, r4
+ add r0, r12
+ ldr r7, _08006E28
+ adds r1, r7, 0
+ strh r1, [r0]
+ adds r3, 0x1
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ adds r5, r2, 0
+ cmp r0, 0
+ ble _08006E1C
+ ldr r2, _08006E2C
+ adds r1, r2, 0
+ adds r4, r0, 0
+ lsls r0, r3, 1
+ add r0, r12
+_08006E10:
+ strh r1, [r0]
+ adds r0, 0x2
+ adds r3, 0x1
+ subs r4, 0x1
+ cmp r4, 0
+ bne _08006E10
+_08006E1C:
+ lsls r0, r3, 1
+ ldr r4, [sp]
+ adds r1, r5, r4
+ adds r0, r1
+ ldr r7, _08006E30
+ b _08006E72
+ .align 2, 0
+_08006E28: .4byte 0x0000fadc
+_08006E2C: .4byte 0x0000fadd
+_08006E30: .4byte 0x0000fedc
+_08006E34:
+ lsls r0, r3, 1
+ lsls r2, r4, 6
+ ldr r1, [sp]
+ adds r1, r2
+ mov r12, r1
+ add r0, r12
+ ldr r4, _08006E88
+ adds r1, r4, 0
+ strh r1, [r0]
+ adds r3, 0x1
+ movs r7, 0x4
+ ldrsh r0, [r6, r7]
+ adds r5, r2, 0
+ cmp r0, 0
+ ble _08006E68
+ ldr r2, _08006E8C
+ adds r1, r2, 0
+ adds r4, r0, 0
+ lsls r0, r3, 1
+ add r0, r12
+_08006E5C:
+ strh r1, [r0]
+ adds r0, 0x2
+ adds r3, 0x1
+ subs r4, 0x1
+ cmp r4, 0
+ bne _08006E5C
+_08006E68:
+ lsls r0, r3, 1
+ ldr r4, [sp]
+ adds r1, r5, r4
+ adds r0, r1
+ ldr r7, _08006E90
+_08006E72:
+ adds r1, r7, 0
+_08006E74:
+ strh r1, [r0]
+_08006E76:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08006E88: .4byte 0x0000fa93
+_08006E8C: .4byte 0x0000fa97
+_08006E90: .4byte 0x0000fe93
+ thumb_func_end sub_8006C44
+
+ thumb_func_start sub_8006E94
+sub_8006E94:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x30
+ str r0, [sp]
+ adds r4, r1, 0
+ adds r7, r2, 0
+ str r3, [sp, 0x4]
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ mov r10, r0
+ movs r2, 0x1
+ negs r2, r2
+ add r2, r10
+ movs r3, 0
+ str r3, [sp, 0x8]
+ cmp r4, 0x1C
+ ble _08006EBE
+ b _080072FE
+_08006EBE:
+ cmp r4, 0
+ bge _08006EC4
+ b _080072FE
+_08006EC4:
+ lsls r1, r2, 1
+ lsls r4, 6
+ ldr r6, [sp, 0x50]
+ adds r5, r4, r6
+ adds r1, r5
+ ldr r0, _08006F9C
+ adds r3, r0, 0
+ strh r3, [r1]
+ movs r2, 0x80
+ lsls r2, 4
+ adds r0, r1, r2
+ ldr r6, _08006FA0
+ adds r2, r6, 0
+ strh r2, [r0]
+ adds r0, r1, 0
+ adds r0, 0x40
+ strh r3, [r0]
+ movs r0, 0x84
+ lsls r0, 4
+ adds r0, r1, r0
+ strh r2, [r0]
+ adds r2, r1, 0
+ adds r2, 0x80
+ ldr r3, _08006FA4
+ adds r0, r3, 0
+ strh r0, [r2]
+ movs r6, 0x88
+ lsls r6, 4
+ adds r1, r6
+ ldr r2, _08006FA8
+ adds r0, r2, 0
+ strh r0, [r1]
+ mov r12, r10
+ movs r3, 0
+ str r4, [sp, 0x18]
+ ldr r4, [sp, 0x4]
+ ldrb r4, [r4]
+ cmp r3, r4
+ blt _08006F14
+ b _08007238
+_08006F14:
+ adds r2, r5, 0
+ mov r5, r12
+ lsls r1, r5, 1
+ ldr r0, [sp, 0x50]
+ adds r0, 0x80
+ ldr r6, [sp, 0x18]
+ adds r0, r6, r0
+ adds r0, r1
+ mov r9, r0
+ ldr r0, [sp, 0x50]
+ adds r0, 0x40
+ adds r0, r6, r0
+ adds r0, r1
+ mov r8, r0
+ ldr r4, [sp, 0x50]
+ movs r5, 0x80
+ lsls r5, 4
+ adds r0, r4, r5
+ adds r0, r6, r0
+ adds r0, r1, r0
+ str r0, [sp, 0x20]
+ movs r6, 0x84
+ lsls r6, 4
+ adds r0, r4, r6
+ ldr r4, [sp, 0x18]
+ adds r0, r4, r0
+ adds r0, r1
+ mov r10, r0
+ adds r4, r1, r2
+ ldr r5, [sp, 0x18]
+ str r5, [sp, 0x10]
+ str r2, [sp, 0x1C]
+ str r1, [sp, 0x24]
+_08006F56:
+ ldr r6, [sp, 0x4]
+ ldrb r6, [r6, 0x1]
+ cmp r3, r6
+ bne _08006F60
+ b _080070C8
+_08006F60:
+ ldr r0, [sp, 0x8]
+ cmp r0, 0
+ bne _08007008
+ ldr r1, [sp, 0x4]
+ ldrb r0, [r1, 0x3]
+ asrs r0, r3
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08006FB8
+ movs r1, 0x1F
+ cmp r3, 0
+ bne _08006F7C
+ movs r1, 0x1B
+_08006F7C:
+ movs r2, 0x9E
+ lsls r2, 2
+ adds r0, r1, r2
+ ldr r5, _08006FAC
+ adds r1, r5, 0
+ orrs r0, r1
+ strh r0, [r4]
+ ldr r6, _08006FB0
+ adds r0, r6, 0
+ mov r1, r8
+ strh r0, [r1]
+ ldr r5, _08006FB4
+ mov r2, r9
+ strh r5, [r2]
+ b _08006FDC
+ .align 2, 0
+_08006F9C: .4byte 0x0000f278
+_08006FA0: .4byte 0x0000f27a
+_08006FA4: .4byte 0x0000f2d8
+_08006FA8: .4byte 0x0000f2db
+_08006FAC: .4byte 0xfffff400
+_08006FB0: .4byte 0x0000f2b6
+_08006FB4: .4byte 0x0000f2d9
+_08006FB8:
+ movs r1, 0x6B
+ cmp r3, 0
+ bne _08006FC0
+ movs r1, 0x67
+_08006FC0:
+ movs r6, 0x9E
+ lsls r6, 2
+ adds r0, r1, r6
+ ldr r2, _08006FF4
+ adds r1, r2, 0
+ orrs r0, r1
+ strh r0, [r4]
+ ldr r5, _08006FF8
+ adds r0, r5, 0
+ mov r6, r8
+ strh r0, [r6]
+ ldr r1, _08006FFC
+ mov r0, r9
+ strh r1, [r0]
+_08006FDC:
+ ldr r2, _08007000
+ adds r0, r2, 0
+ ldr r5, [sp, 0x20]
+ strh r0, [r5]
+ ldr r0, _08007004
+ mov r6, r10
+ strh r0, [r6]
+ movs r1, 0x88
+ lsls r1, 4
+ adds r0, r4, r1
+ adds r2, 0x61
+ b _0800708E
+ .align 2, 0
+_08006FF4: .4byte 0xfffff400
+_08006FF8: .4byte 0x0000f2ef
+_08006FFC: .4byte 0x0000f2d9
+_08007000: .4byte 0x0000f27a
+_08007004: .4byte 0x0000f2db
+_08007008:
+ ldr r5, [sp, 0x4]
+ ldrb r0, [r5, 0x3]
+ asrs r0, r3
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0800704C
+ ldrb r0, [r5]
+ subs r0, 0x1
+ movs r1, 0x1F
+ cmp r3, r0
+ bne _08007022
+ movs r1, 0x1B
+_08007022:
+ movs r6, 0x9E
+ lsls r6, 2
+ adds r0, r1, r6
+ ldr r2, _08007040
+ adds r1, r2, 0
+ orrs r0, r1
+ strh r0, [r4]
+ ldr r5, _08007044
+ adds r0, r5, 0
+ mov r6, r8
+ strh r0, [r6]
+ ldr r1, _08007048
+ mov r0, r9
+ strh r1, [r0]
+ b _08007076
+ .align 2, 0
+_08007040: .4byte 0xfffff000
+_08007044: .4byte 0x0000f6b6
+_08007048: .4byte 0x0000f2d9
+_0800704C:
+ ldr r2, [sp, 0x4]
+ ldrb r0, [r2]
+ subs r0, 0x1
+ movs r1, 0x6B
+ cmp r3, r0
+ bne _0800705A
+ movs r1, 0x67
+_0800705A:
+ movs r5, 0x9E
+ lsls r5, 2
+ adds r0, r1, r5
+ ldr r6, _080070B0
+ adds r1, r6, 0
+ orrs r0, r1
+ strh r0, [r4]
+ ldr r1, _080070B4
+ adds r0, r1, 0
+ mov r2, r8
+ strh r0, [r2]
+ ldr r6, _080070B8
+ mov r5, r9
+ strh r6, [r5]
+_08007076:
+ ldr r1, _080070BC
+ adds r0, r1, 0
+ ldr r2, [sp, 0x20]
+ strh r0, [r2]
+ ldr r5, _080070C0
+ adds r0, r5, 0
+ mov r6, r10
+ strh r0, [r6]
+ movs r1, 0x88
+ lsls r1, 4
+ adds r0, r4, r1
+ ldr r2, _080070C4
+_0800708E:
+ strh r2, [r0]
+ movs r5, 0x2
+ add r9, r5
+ add r8, r5
+ ldr r6, [sp, 0x20]
+ adds r6, 0x2
+ str r6, [sp, 0x20]
+ add r10, r5
+ adds r4, 0x2
+ ldr r0, [sp, 0x24]
+ adds r0, 0x2
+ str r0, [sp, 0x24]
+ movs r1, 0x1
+ add r12, r1
+ adds r3, 0x1
+ str r3, [sp, 0x14]
+ b _08007226
+ .align 2, 0
+_080070B0: .4byte 0xfffff000
+_080070B4: .4byte 0x0000f6ef
+_080070B8: .4byte 0x0000f2d9
+_080070BC: .4byte 0x0000f27a
+_080070C0: .4byte 0x0000f6db
+_080070C4: .4byte 0x0000f2db
+_080070C8:
+ movs r2, 0x1
+ str r2, [sp, 0x8]
+ ldr r5, _08007128
+ adds r0, r5, 0
+ strh r0, [r4]
+ ldr r6, _0800712C
+ adds r0, r6, 0
+ ldr r1, [sp, 0x20]
+ strh r0, [r1]
+ ldr r2, _08007130
+ adds r0, r2, 0
+ mov r5, r8
+ strh r0, [r5]
+ ldr r0, _08007134
+ mov r6, r10
+ strh r0, [r6]
+ ldr r1, _08007138
+ adds r0, r1, 0
+ mov r2, r9
+ strh r0, [r2]
+ movs r5, 0x88
+ lsls r5, 4
+ adds r0, r4, r5
+ ldr r6, _08007134
+ strh r6, [r0]
+ movs r0, 0x2
+ add r9, r0
+ add r8, r0
+ ldr r1, [sp, 0x20]
+ adds r1, 0x2
+ str r1, [sp, 0x20]
+ add r10, r0
+ adds r4, 0x2
+ ldr r2, [sp, 0x24]
+ adds r2, 0x2
+ str r2, [sp, 0x24]
+ movs r5, 0x1
+ add r12, r5
+ cmp r7, 0
+ beq _0800713C
+ adds r7, 0x1
+ cmp r7, 0
+ beq _0800713C
+ ldr r6, [sp]
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ adds r2, r7, r0
+ b _0800713E
+ .align 2, 0
+_08007128: .4byte 0x0000f2e0
+_0800712C: .4byte 0x0000f2e2
+_08007130: .4byte 0x0000f2da
+_08007134: .4byte 0x0000f2db
+_08007138: .4byte 0x0000f6e7
+_0800713C:
+ movs r2, 0
+_0800713E:
+ movs r5, 0
+ str r5, [sp, 0xC]
+ adds r3, 0x1
+ str r3, [sp, 0x14]
+ ldr r6, [sp, 0x4]
+ ldrb r6, [r6, 0x2]
+ cmp r5, r6
+ bge _080071E0
+ ldr r0, [sp, 0x50]
+ adds r0, 0x80
+ ldr r1, [sp, 0x10]
+ adds r0, r1, r0
+ ldr r3, [sp, 0x24]
+ adds r0, r3, r0
+ str r0, [sp, 0x2C]
+ ldr r0, [sp, 0x50]
+ adds r0, 0x40
+ adds r0, r1, r0
+ adds r5, r3, r0
+ ldr r6, [sp, 0x1C]
+ adds r3, r6
+_08007168:
+ ldr r1, _08007310
+ adds r0, r1, 0
+ strh r0, [r3]
+ movs r6, 0x80
+ lsls r6, 4
+ adds r6, r3, r6
+ str r6, [sp, 0x28]
+ adds r1, 0x1
+ adds r0, r1, 0
+ strh r0, [r6]
+ adds r0, r7, 0
+ ldr r6, _08007314
+ orrs r0, r6
+ strh r0, [r5]
+ movs r1, 0x84
+ lsls r1, 4
+ adds r0, r3, r1
+ ldr r6, _08007318
+ strh r6, [r0]
+ adds r0, r2, 0
+ ldr r1, _08007314
+ orrs r0, r1
+ ldr r6, [sp, 0x2C]
+ strh r0, [r6]
+ movs r1, 0x88
+ lsls r1, 4
+ adds r0, r3, r1
+ ldr r6, _08007318
+ strh r6, [r0]
+ ldr r0, [sp, 0x2C]
+ adds r0, 0x2
+ str r0, [sp, 0x2C]
+ adds r5, 0x2
+ adds r3, 0x2
+ movs r1, 0x2
+ add r9, r1
+ add r8, r1
+ ldr r6, [sp, 0x20]
+ adds r6, 0x2
+ str r6, [sp, 0x20]
+ add r10, r1
+ adds r4, 0x2
+ ldr r0, [sp, 0x24]
+ adds r0, 0x2
+ str r0, [sp, 0x24]
+ movs r1, 0x1
+ add r12, r1
+ cmp r7, 0
+ beq _080071CC
+ adds r7, 0x1
+_080071CC:
+ cmp r2, 0
+ beq _080071D2
+ adds r2, 0x1
+_080071D2:
+ ldr r6, [sp, 0xC]
+ adds r6, 0x1
+ str r6, [sp, 0xC]
+ ldr r0, [sp, 0x4]
+ ldrb r0, [r0, 0x2]
+ cmp r6, r0
+ blt _08007168
+_080071E0:
+ ldr r1, _0800731C
+ adds r0, r1, 0
+ strh r0, [r4]
+ ldr r2, _08007320
+ adds r0, r2, 0
+ ldr r3, [sp, 0x20]
+ strh r0, [r3]
+ ldr r5, _08007324
+ adds r0, r5, 0
+ mov r6, r8
+ strh r0, [r6]
+ ldr r1, _08007318
+ mov r0, r10
+ strh r1, [r0]
+ adds r2, 0x5
+ adds r0, r2, 0
+ mov r3, r9
+ strh r0, [r3]
+ movs r5, 0x88
+ lsls r5, 4
+ adds r0, r4, r5
+ strh r1, [r0]
+ movs r6, 0x2
+ add r9, r6
+ add r8, r6
+ ldr r0, [sp, 0x20]
+ adds r0, 0x2
+ str r0, [sp, 0x20]
+ add r10, r6
+ adds r4, 0x2
+ ldr r1, [sp, 0x24]
+ adds r1, 0x2
+ str r1, [sp, 0x24]
+ movs r2, 0x1
+ add r12, r2
+_08007226:
+ cmp r7, 0
+ beq _0800722C
+ adds r7, 0x1
+_0800722C:
+ ldr r3, [sp, 0x14]
+ ldr r5, [sp, 0x4]
+ ldrb r5, [r5]
+ cmp r3, r5
+ bge _08007238
+ b _08006F56
+_08007238:
+ ldr r6, [sp]
+ movs r0, 0
+ ldrsh r1, [r6, r0]
+ movs r2, 0x4
+ ldrsh r0, [r6, r2]
+ adds r0, r1, r0
+ cmp r12, r0
+ bge _080072BC
+ ldr r3, _08007328
+ adds r4, r3, 0
+ mov r8, r0
+ mov r5, r12
+ lsls r1, r5, 1
+ ldr r0, [sp, 0x50]
+ adds r0, 0x80
+ ldr r6, [sp, 0x18]
+ adds r0, r6, r0
+ adds r5, r1, r0
+ ldr r0, [sp, 0x50]
+ adds r0, 0x40
+ adds r0, r6, r0
+ adds r3, r1, r0
+ ldr r0, [sp, 0x50]
+ adds r6, r0
+ adds r2, r1, r6
+ movs r1, 0x80
+ lsls r1, 4
+ mov r10, r1
+ movs r6, 0x84
+ lsls r6, 4
+ mov r9, r6
+ mov r0, r8
+ mov r1, r12
+ subs r0, r1
+ mov r12, r0
+_0800727E:
+ strh r4, [r2]
+ mov r6, r10
+ adds r0, r2, r6
+ ldr r1, _0800732C
+ strh r1, [r0]
+ strh r4, [r3]
+ mov r6, r9
+ adds r0, r2, r6
+ strh r1, [r0]
+ adds r1, 0x5F
+ adds r0, r1, 0
+ strh r0, [r5]
+ movs r6, 0x88
+ lsls r6, 4
+ adds r1, r2, r6
+ ldr r6, _08007318
+ adds r0, r6, 0
+ strh r0, [r1]
+ adds r5, 0x2
+ adds r3, 0x2
+ adds r2, 0x2
+ movs r0, 0x1
+ negs r0, r0
+ add r12, r0
+ cmp r7, 0
+ beq _080072B4
+ adds r7, 0x1
+_080072B4:
+ mov r1, r12
+ cmp r1, 0
+ bne _0800727E
+ mov r12, r8
+_080072BC:
+ mov r2, r12
+ lsls r1, r2, 1
+ ldr r3, [sp, 0x18]
+ ldr r4, [sp, 0x50]
+ adds r0, r3, r4
+ adds r1, r0
+ ldr r5, _08007328
+ adds r3, r5, 0
+ strh r3, [r1]
+ movs r6, 0x80
+ lsls r6, 4
+ adds r0, r1, r6
+ ldr r4, _0800732C
+ adds r2, r4, 0
+ strh r2, [r0]
+ adds r0, r1, 0
+ adds r0, 0x40
+ strh r3, [r0]
+ movs r5, 0x84
+ lsls r5, 4
+ adds r0, r1, r5
+ strh r2, [r0]
+ adds r2, r1, 0
+ adds r2, 0x80
+ ldr r6, _08007330
+ adds r0, r6, 0
+ strh r0, [r2]
+ movs r0, 0x88
+ lsls r0, 4
+ adds r1, r0
+ ldr r2, _08007318
+ adds r0, r2, 0
+ strh r0, [r1]
+_080072FE:
+ add sp, 0x30
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08007310: .4byte 0x0000f2e1
+_08007314: .4byte 0xfffff000
+_08007318: .4byte 0x0000f2db
+_0800731C: .4byte 0x0000f6e0
+_08007320: .4byte 0x0000f2e2
+_08007324: .4byte 0x0000f6da
+_08007328: .4byte 0x0000f278
+_0800732C: .4byte 0x0000f27a
+_08007330: .4byte 0x0000f6d8
+ thumb_func_end sub_8006E94
+
+ thumb_func_start sub_8007334
+sub_8007334:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080073AC
+ adds r3, r1, r0
+ ldr r5, [r3, 0x14]
+ movs r0, 0x2
+ ldrsh r6, [r3, r0]
+ movs r2, 0
+ movs r1, 0x6
+ ldrsh r0, [r3, r1]
+ cmp r2, r0
+ bge _080073A0
+ ldr r7, _080073B0
+ mov r9, r7
+_0800735A:
+ movs r0, 0
+ ldrsh r1, [r3, r0]
+ movs r4, 0
+ movs r7, 0x4
+ ldrsh r0, [r3, r7]
+ adds r7, r6, 0x1
+ adds r2, 0x1
+ mov r12, r2
+ cmp r4, r0
+ bge _08007394
+ movs r0, 0xFC
+ lsls r0, 8
+ mov r8, r0
+ lsls r1, 1
+ lsls r0, r6, 6
+ add r0, r9
+ adds r2, r1, r0
+_0800737C:
+ ldrh r0, [r2]
+ mov r1, r8
+ ands r1, r0
+ orrs r1, r5
+ strh r1, [r2]
+ adds r2, 0x2
+ adds r5, 0x1
+ adds r4, 0x1
+ movs r1, 0x4
+ ldrsh r0, [r3, r1]
+ cmp r4, r0
+ blt _0800737C
+_08007394:
+ adds r6, r7, 0
+ mov r2, r12
+ movs r7, 0x6
+ ldrsh r0, [r3, r7]
+ cmp r2, r0
+ blt _0800735A
+_080073A0:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080073AC: .4byte gUnknown_2027370
+_080073B0: .4byte gUnknown_202B038
+ thumb_func_end sub_8007334
+
+ thumb_func_start nullsub_154
+nullsub_154:
+ bx lr
+ thumb_func_end nullsub_154
+
+ thumb_func_start sub_80073B8
+sub_80073B8:
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080073D8
+ adds r1, r0
+ ldr r0, [r1, 0x2C]
+ lsrs r0, 2
+ lsls r0, 2
+ ldr r2, [r1, 0x1C]
+ adds r0, r2, r0
+ str r0, [r1, 0x3C]
+ str r2, [r1, 0x40]
+ adds r1, 0x46
+ movs r0, 0x1
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080073D8: .4byte gUnknown_2027370
+ thumb_func_end sub_80073B8
+
+ thumb_func_start nullsub_155
+nullsub_155:
+ bx lr
+ thumb_func_end nullsub_155
+
+ thumb_func_start sub_80073E0
+sub_80073E0:
+ push {r4,lr}
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08007434
+ adds r3, r1, r0
+ adds r0, r3, 0
+ adds r0, 0x44
+ ldrb r4, [r0]
+ cmp r4, 0
+ bne _08007424
+ ldr r2, [r3, 0x3C]
+ ldr r0, [r3, 0x1C]
+ subs r0, r2, r0
+ asrs r0, 2
+ lsls r0, 2
+ ldr r1, [r3, 0x28]
+ adds r1, r0
+ str r1, [r3, 0x30]
+ str r2, [r3, 0x34]
+ ldr r0, [r3, 0x40]
+ subs r0, r2
+ asrs r0, 2
+ adds r0, 0x1
+ lsls r0, 2
+ str r0, [r3, 0x38]
+ ldr r1, [r3, 0x2C]
+ cmp r0, r1
+ blt _0800741C
+ str r1, [r3, 0x38]
+_0800741C:
+ ldr r0, [r3, 0x38]
+ cmp r0, 0
+ bge _08007424
+ str r4, [r3, 0x38]
+_08007424:
+ adds r1, r3, 0
+ adds r1, 0x46
+ movs r0, 0
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08007434: .4byte gUnknown_2027370
+ thumb_func_end sub_80073E0
+
+ thumb_func_start nullsub_156
+nullsub_156:
+ bx lr
+ thumb_func_end nullsub_156
+
+ thumb_func_start sub_800743C
+sub_800743C:
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ ldr r1, [sp, 0x18]
+ ldr r0, _08007460
+ str r3, [sp]
+ str r1, [sp, 0x4]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl xxx_draw_char
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08007460: .4byte gUnknown_2027370
+ thumb_func_end sub_800743C
+
+ thumb_func_start sub_8007464
+sub_8007464:
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_8007464
+
+ thumb_func_start xxx_draw_char
+xxx_draw_char:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x28
+ adds r6, r1, 0
+ mov r10, r2
+ adds r4, r3, 0
+ ldr r2, [sp, 0x48]
+ ldr r3, [sp, 0x4C]
+ lsls r1, r3, 3
+ adds r1, r3
+ lsls r1, 3
+ adds r5, r0, r1
+ ldr r1, _080074B8
+ movs r0, 0xF
+ ands r2, r0
+ lsls r2, 2
+ adds r2, r1
+ ldr r2, [r2]
+ str r2, [sp, 0x18]
+ ldr r0, _080074BC
+ ldr r0, [r0]
+ cmp r0, 0x1
+ bne _080074CC
+ cmp r4, 0x70
+ beq _080074B0
+ cmp r4, 0x6A
+ beq _080074B0
+ cmp r4, 0x71
+ beq _080074B0
+ cmp r4, 0x79
+ beq _080074B0
+ cmp r4, 0x67
+ bne _080074C0
+_080074B0:
+ movs r0, 0x2
+ add r10, r0
+ b _080074CC
+ .align 2, 0
+_080074B8: .4byte gUnknown_80B853C
+_080074BC: .4byte gUnknown_20274AC
+_080074C0:
+ ldr r0, _080074F8
+ cmp r4, r0
+ bne _080074CC
+ movs r1, 0x2
+ negs r1, r1
+ add r10, r1
+_080074CC:
+ adds r0, r4, 0
+ bl sub_8008584
+ str r0, [sp]
+ ldr r2, [r0]
+ str r2, [sp, 0x4]
+ str r2, [sp, 0xC]
+ adds r3, r2, 0
+ subs r3, 0x6
+ str r3, [sp, 0x8]
+ ldr r0, _080074FC
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08007500
+ ldr r4, [sp]
+ ldrb r1, [r4, 0xA]
+ lsrs r7, r1, 1
+ movs r0, 0x1
+ adds r2, r7, 0
+ ands r2, r0
+ str r2, [sp, 0x1C]
+ b _08007508
+ .align 2, 0
+_080074F8: .4byte 0x00008199
+_080074FC: .4byte gUnknown_202B034
+_08007500:
+ movs r3, 0
+ str r3, [sp, 0x1C]
+ ldr r4, [sp]
+ ldrb r1, [r4, 0xA]
+_08007508:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08007512
+ b _08007670
+_08007512:
+ mov r0, r10
+ cmp r0, 0
+ bge _0800751A
+ adds r0, 0x7
+_0800751A:
+ asrs r4, r0, 3
+ movs r7, 0x4
+ ldrsh r0, [r5, r7]
+ muls r0, r4
+ adds r2, r6, 0
+ cmp r6, 0
+ bge _0800752A
+ adds r2, r6, 0x7
+_0800752A:
+ asrs r2, 3
+ adds r0, r2
+ lsls r0, 5
+ ldr r1, [r5, 0x18]
+ adds r3, r1, r0
+ lsls r0, r4, 3
+ mov r1, r10
+ subs r0, r1, r0
+ lsls r0, 2
+ adds r3, r0
+ lsls r0, r2, 3
+ subs r0, r6, r0
+ lsls r0, 4
+ ldr r1, _08007664
+ adds r0, r1
+ mov r12, r0
+ mov r9, r2
+ str r4, [sp, 0x14]
+ movs r2, 0x8
+ ldrsh r0, [r5, r2]
+ cmp r4, r0
+ blt _08007558
+ b _0800786C
+_08007558:
+ movs r4, 0
+ str r4, [sp, 0x10]
+ ldr r2, _08007668
+ ldr r1, _0800766C
+ ldr r0, [r1]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r4, r0
+ blt _0800756E
+ b _0800786C
+_0800756E:
+ adds r4, r2, 0
+_08007570:
+ ldr r6, [sp, 0x4]
+ ldrh r0, [r6, 0x2]
+ lsls r2, r0, 16
+ ldrh r0, [r6]
+ orrs r2, r0
+ cmp r2, 0
+ beq _080075CC
+ movs r7, 0x4
+ ldrsh r0, [r5, r7]
+ cmp r9, r0
+ bge _080075A6
+ mov r0, r12
+ ldr r1, [r0]
+ ands r1, r2
+ ldr r0, [r0, 0x8]
+ lsls r1, r0
+ ldr r0, [r3]
+ orrs r0, r1
+ str r0, [r3]
+ ldr r0, [r5, 0x3C]
+ cmp r0, r3
+ bls _0800759E
+ str r3, [r5, 0x3C]
+_0800759E:
+ ldr r0, [r5, 0x40]
+ cmp r0, r3
+ bcs _080075A6
+ str r3, [r5, 0x40]
+_080075A6:
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ subs r0, 0x1
+ cmp r9, r0
+ bge _080075CC
+ adds r3, 0x20
+ mov r6, r12
+ ldr r0, [r6, 0x4]
+ ands r2, r0
+ ldr r0, [r6, 0xC]
+ lsrs r2, r0
+ ldr r0, [r3]
+ orrs r0, r2
+ str r0, [r3]
+ ldr r0, [r5, 0x40]
+ cmp r0, r3
+ bcs _080075CA
+ str r3, [r5, 0x40]
+_080075CA:
+ subs r3, 0x20
+_080075CC:
+ ldr r7, [sp, 0x4]
+ ldrh r2, [r7, 0x4]
+ cmp r2, 0
+ beq _08007620
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ subs r0, 0x1
+ cmp r9, r0
+ bge _080075FA
+ adds r3, 0x20
+ mov r6, r12
+ ldr r1, [r6]
+ ands r1, r2
+ ldr r0, [r6, 0x8]
+ lsls r1, r0
+ ldr r0, [r3]
+ orrs r0, r1
+ str r0, [r3]
+ ldr r0, [r5, 0x40]
+ cmp r0, r3
+ bcs _080075F8
+ str r3, [r5, 0x40]
+_080075F8:
+ subs r3, 0x20
+_080075FA:
+ movs r7, 0x4
+ ldrsh r0, [r5, r7]
+ subs r0, 0x2
+ cmp r9, r0
+ bge _08007620
+ adds r3, 0x40
+ mov r1, r12
+ ldr r0, [r1, 0x4]
+ ands r2, r0
+ ldr r0, [r1, 0xC]
+ lsrs r2, r0
+ ldr r0, [r3]
+ orrs r0, r2
+ str r0, [r3]
+ ldr r0, [r5, 0x40]
+ cmp r0, r3
+ bcs _0800761E
+ str r3, [r5, 0x40]
+_0800761E:
+ subs r3, 0x40
+_08007620:
+ ldr r2, [sp, 0x4]
+ adds r2, 0x6
+ str r2, [sp, 0x4]
+ adds r3, 0x4
+ movs r6, 0x1
+ add r10, r6
+ movs r0, 0x7
+ mov r7, r10
+ ands r0, r7
+ cmp r0, 0
+ bne _0800764E
+ ldr r0, [r5, 0x20]
+ lsls r0, 2
+ adds r3, r0
+ ldr r0, [sp, 0x14]
+ adds r0, 0x1
+ str r0, [sp, 0x14]
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ ldr r2, [sp, 0x14]
+ cmp r2, r0
+ blt _0800764E
+ b _0800786C
+_0800764E:
+ ldr r6, [sp, 0x10]
+ adds r6, 0x1
+ str r6, [sp, 0x10]
+ ldr r7, _0800766C
+ ldr r0, [r7]
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ cmp r6, r0
+ blt _08007570
+ b _0800786C
+ .align 2, 0
+_08007664: .4byte gUnknown_80B85DC
+_08007668: .4byte gUnknown_202B028
+_0800766C: .4byte gUnknown_20274AC
+_08007670:
+ movs r0, 0
+ str r0, [sp, 0x20]
+ mov r0, r10
+ cmp r0, 0
+ bge _0800767C
+ adds r0, 0x7
+_0800767C:
+ asrs r4, r0, 3
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ adds r1, r4, 0
+ muls r1, r0
+ adds r0, r6, 0
+ cmp r6, 0
+ bge _0800768E
+ adds r0, r6, 0x7
+_0800768E:
+ asrs r2, r0, 3
+ adds r0, r1, r2
+ lsls r0, 5
+ ldr r1, [r5, 0x18]
+ adds r3, r1, r0
+ lsls r0, r4, 3
+ mov r7, r10
+ subs r0, r7, r0
+ lsls r0, 2
+ adds r3, r0
+ lsls r0, r2, 3
+ subs r0, r6, r0
+ lsls r0, 4
+ ldr r1, _0800788C
+ adds r0, r1
+ mov r12, r0
+ mov r9, r2
+ str r4, [sp, 0x14]
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r4, r0
+ blt _080076BC
+ b _0800786C
+_080076BC:
+ movs r2, 0
+ str r2, [sp, 0x10]
+ ldr r2, _08007890
+ ldr r1, _08007894
+ ldr r0, [r1]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ldr r4, [sp, 0x10]
+ cmp r4, r0
+ blt _080076D4
+ b _0800786C
+_080076D4:
+ ldr r6, [sp, 0x4]
+ ldrh r0, [r6, 0x2]
+ lsls r4, r0, 16
+ ldrh r0, [r6]
+ orrs r4, r0
+ ldr r1, _08007898
+ ands r1, r4
+ ldr r0, [sp, 0x18]
+ ands r0, r4
+ adds r2, r1, r0
+ ldr r7, [sp, 0x1C]
+ cmp r7, 0
+ beq _08007724
+ ldr r1, [sp, 0xC]
+ ldrh r0, [r1, 0x2]
+ lsls r0, 16
+ ldrh r1, [r1]
+ orrs r0, r1
+ lsls r1, r0, 4
+ mvns r6, r4
+ mov r8, r6
+ bics r1, r4
+ ldr r7, _0800789C
+ ldr r6, [r7]
+ ands r1, r6
+ orrs r2, r1
+ ldr r0, [sp, 0x20]
+ cmp r0, 0
+ beq _08007724
+ ldr r1, [sp, 0x8]
+ ldrh r0, [r1, 0x2]
+ lsls r0, 16
+ ldrh r1, [r1]
+ orrs r0, r1
+ lsls r1, r0, 4
+ eors r1, r4
+ mov r4, r8
+ ands r1, r4
+ ands r1, r6
+ orrs r2, r1
+_08007724:
+ cmp r2, 0
+ beq _08007776
+ movs r6, 0x4
+ ldrsh r0, [r5, r6]
+ cmp r9, r0
+ bge _08007750
+ mov r7, r12
+ ldr r1, [r7]
+ ands r1, r2
+ ldr r0, [r7, 0x8]
+ lsls r1, r0
+ ldr r0, [r3]
+ orrs r0, r1
+ str r0, [r3]
+ ldr r0, [r5, 0x3C]
+ cmp r0, r3
+ bls _08007748
+ str r3, [r5, 0x3C]
+_08007748:
+ ldr r0, [r5, 0x40]
+ cmp r0, r3
+ bcs _08007750
+ str r3, [r5, 0x40]
+_08007750:
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ subs r0, 0x1
+ cmp r9, r0
+ bge _08007776
+ adds r3, 0x20
+ mov r4, r12
+ ldr r0, [r4, 0x4]
+ ands r2, r0
+ ldr r0, [r4, 0xC]
+ lsrs r2, r0
+ ldr r0, [r3]
+ orrs r0, r2
+ str r0, [r3]
+ ldr r0, [r5, 0x40]
+ cmp r0, r3
+ bcs _08007774
+ str r3, [r5, 0x40]
+_08007774:
+ subs r3, 0x20
+_08007776:
+ ldr r6, [sp, 0x4]
+ ldrh r4, [r6, 0x4]
+ ldr r1, _08007898
+ ands r1, r4
+ ldr r0, [sp, 0x18]
+ ands r0, r4
+ adds r2, r1, r0
+ ldr r7, [sp, 0x1C]
+ cmp r7, 0
+ beq _080077CC
+ ldr r1, [sp, 0xC]
+ ldrh r0, [r1, 0x4]
+ lsls r1, r0, 4
+ ldr r6, [sp, 0xC]
+ ldrh r0, [r6, 0x2]
+ movs r7, 0xF
+ mov r8, r7
+ lsrs r0, 12
+ orrs r1, r0
+ mvns r0, r4
+ str r0, [sp, 0x24]
+ bics r1, r4
+ ldr r7, _0800789C
+ ldr r6, [r7]
+ ands r1, r6
+ orrs r2, r1
+ ldr r0, [sp, 0x20]
+ cmp r0, 0
+ beq _080077CC
+ ldr r1, [sp, 0x8]
+ ldrh r0, [r1, 0x4]
+ lsls r1, r0, 4
+ ldr r7, [sp, 0x8]
+ ldrh r0, [r7, 0x2]
+ lsrs r0, 12
+ mov r7, r8
+ ands r0, r7
+ orrs r1, r0
+ eors r1, r4
+ ldr r0, [sp, 0x24]
+ ands r1, r0
+ ands r1, r6
+ orrs r2, r1
+_080077CC:
+ cmp r2, 0
+ beq _0800781C
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ subs r0, 0x1
+ cmp r9, r0
+ bge _080077F6
+ adds r3, 0x20
+ mov r4, r12
+ ldr r1, [r4]
+ ands r1, r2
+ ldr r0, [r4, 0x8]
+ lsls r1, r0
+ ldr r0, [r3]
+ orrs r0, r1
+ str r0, [r3]
+ ldr r0, [r5, 0x40]
+ cmp r0, r3
+ bcs _080077F4
+ str r3, [r5, 0x40]
+_080077F4:
+ subs r3, 0x20
+_080077F6:
+ movs r6, 0x4
+ ldrsh r0, [r5, r6]
+ subs r0, 0x2
+ cmp r9, r0
+ bge _0800781C
+ adds r3, 0x40
+ mov r7, r12
+ ldr r0, [r7, 0x4]
+ ands r2, r0
+ ldr r0, [r7, 0xC]
+ lsrs r2, r0
+ ldr r0, [r3]
+ orrs r0, r2
+ str r0, [r3]
+ ldr r0, [r5, 0x40]
+ cmp r0, r3
+ bcs _0800781A
+ str r3, [r5, 0x40]
+_0800781A:
+ subs r3, 0x40
+_0800781C:
+ movs r0, 0x1
+ str r0, [sp, 0x20]
+ ldr r1, [sp, 0x4]
+ adds r1, 0x6
+ str r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ adds r2, 0x6
+ str r2, [sp, 0x8]
+ ldr r4, [sp, 0xC]
+ adds r4, 0x6
+ str r4, [sp, 0xC]
+ adds r3, 0x4
+ add r10, r0
+ movs r0, 0x7
+ mov r6, r10
+ ands r0, r6
+ cmp r0, 0
+ bne _08007854
+ ldr r0, [r5, 0x20]
+ lsls r0, 2
+ adds r3, r0
+ ldr r7, [sp, 0x14]
+ adds r7, 0x1
+ str r7, [sp, 0x14]
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r7, r0
+ bge _0800786C
+_08007854:
+ ldr r2, [sp, 0x10]
+ adds r2, 0x1
+ str r2, [sp, 0x10]
+ ldr r4, _08007894
+ ldr r0, [r4]
+ lsls r0, 2
+ ldr r6, _08007890
+ adds r0, r6
+ ldr r0, [r0]
+ cmp r2, r0
+ bge _0800786C
+ b _080076D4
+_0800786C:
+ ldr r7, [sp]
+ movs r1, 0x6
+ ldrsh r0, [r7, r1]
+ ldr r2, _080078A0
+ movs r3, 0
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ add sp, 0x28
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0800788C: .4byte gUnknown_80B85DC
+_08007890: .4byte gUnknown_202B028
+_08007894: .4byte gUnknown_20274AC
+_08007898: .4byte 0x11111111
+_0800789C: .4byte gUnknown_202B030
+_080078A0: .4byte gUnknown_2027498
+ thumb_func_end xxx_draw_char
+
+ thumb_func_start sub_80078A4
+sub_80078A4:
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r6, r1, 0
+ adds r4, r2, 0
+ mov r8, r3
+ ldr r0, [sp, 0x18]
+ str r0, [sp]
+ adds r0, r5, 0
+ bl sub_800792C
+ adds r4, 0x1
+ ldr r0, _080078E4
+ ldr r0, [r0]
+ movs r1, 0xF
+ ands r0, r1
+ str r0, [sp]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ mov r3, r8
+ bl sub_800792C
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080078E4: .4byte gUnknown_202B030
+ thumb_func_end sub_80078A4
+
+ thumb_func_start sub_80078E8
+sub_80078E8:
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r6, r1, 0
+ adds r4, r2, 0
+ mov r8, r3
+ ldr r0, [sp, 0x18]
+ str r0, [sp]
+ adds r0, r5, 0
+ bl nullsub_129
+ adds r4, 0x1
+ ldr r0, _08007928
+ ldr r0, [r0]
+ movs r1, 0xF
+ ands r0, r1
+ str r0, [sp]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ mov r3, r8
+ bl nullsub_129
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08007928: .4byte gUnknown_202B030
+ thumb_func_end sub_80078E8
+
+ thumb_func_start sub_800792C
+sub_800792C:
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ ldr r1, [sp, 0x18]
+ ldr r0, _08007950
+ str r3, [sp]
+ str r1, [sp, 0x4]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_8007958
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08007950: .4byte gUnknown_2027370
+ thumb_func_end sub_800792C
+
+ thumb_func_start nullsub_129
+nullsub_129:
+ bx lr
+ thumb_func_end nullsub_129
+
+ thumb_func_start sub_8007958
+sub_8007958:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x24
+ mov r8, r2
+ adds r7, r3, 0
+ ldr r2, [sp, 0x40]
+ mov r12, r2
+ ldr r3, [sp, 0x44]
+ lsls r2, r1, 3
+ adds r2, r1
+ lsls r2, 3
+ adds r5, r0, r2
+ ldr r1, _08007A68
+ movs r0, 0xF
+ ands r3, r0
+ lsls r3, 2
+ adds r3, r1
+ ldr r3, [r3]
+ mov r9, r3
+ adds r0, r7, 0
+ cmp r7, 0
+ bge _0800798A
+ adds r0, r7, 0x7
+_0800798A:
+ asrs r4, r0, 3
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ muls r0, r4
+ mov r2, r8
+ cmp r2, 0
+ bge _0800799A
+ adds r2, 0x7
+_0800799A:
+ asrs r2, 3
+ adds r0, r2
+ lsls r0, 5
+ ldr r1, [r5, 0x18]
+ adds r3, r1, r0
+ lsls r0, r4, 3
+ subs r0, r7, r0
+ lsls r0, 2
+ adds r3, r0
+ adds r6, r2, 0
+ movs r2, 0x8
+ ldrsh r0, [r5, r2]
+ cmp r4, r0
+ bge _08007A58
+ mov r1, sp
+ ldr r0, _08007A6C
+ ldm r0!, {r2,r4,r7}
+ stm r1!, {r2,r4,r7}
+ ldm r0!, {r2,r4,r7}
+ stm r1!, {r2,r4,r7}
+ ldm r0!, {r2,r4,r7}
+ stm r1!, {r2,r4,r7}
+ mov r4, r12
+ cmp r4, 0
+ ble _08007A58
+ ldr r7, _08007A70
+_080079CE:
+ mov r1, r12
+ cmp r1, 0x7
+ ble _080079D6
+ movs r1, 0x8
+_080079D6:
+ mov r0, r8
+ cmp r0, 0
+ bge _080079DE
+ adds r0, 0x7
+_080079DE:
+ asrs r0, 3
+ lsls r0, 3
+ mov r2, r8
+ subs r0, r2, r0
+ lsls r0, 4
+ adds r4, r0, r7
+ lsls r0, r1, 2
+ add r0, sp
+ ldr r2, [r0]
+ ldr r1, _08007A74
+ ands r1, r2
+ mov r0, r9
+ ands r0, r2
+ adds r2, r1, r0
+ cmp r2, 0
+ beq _08007A48
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r6, r0
+ bge _08007A24
+ ldr r1, [r4]
+ ands r1, r2
+ ldr r0, [r4, 0x8]
+ lsls r1, r0
+ ldr r0, [r3]
+ orrs r0, r1
+ str r0, [r3]
+ ldr r0, [r5, 0x3C]
+ cmp r0, r3
+ bls _08007A1C
+ str r3, [r5, 0x3C]
+_08007A1C:
+ ldr r0, [r5, 0x40]
+ cmp r0, r3
+ bcs _08007A24
+ str r3, [r5, 0x40]
+_08007A24:
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ subs r0, 0x1
+ cmp r6, r0
+ bge _08007A48
+ adds r3, 0x20
+ ldr r0, [r4, 0x4]
+ ands r2, r0
+ ldr r0, [r4, 0xC]
+ lsrs r2, r0
+ ldr r0, [r3]
+ orrs r0, r2
+ str r0, [r3]
+ ldr r0, [r5, 0x40]
+ cmp r0, r3
+ bcs _08007A46
+ str r3, [r5, 0x40]
+_08007A46:
+ subs r3, 0x20
+_08007A48:
+ adds r6, 0x1
+ adds r3, 0x20
+ movs r2, 0x8
+ negs r2, r2
+ add r12, r2
+ mov r4, r12
+ cmp r4, 0
+ bgt _080079CE
+_08007A58:
+ add sp, 0x24
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08007A68: .4byte gUnknown_80B853C
+_08007A6C: .4byte gUnknown_80B8824
+_08007A70: .4byte gUnknown_80B85DC
+_08007A74: .4byte 0x11111111
+ thumb_func_end sub_8007958
+
+ thumb_func_start sub_8007A78
+sub_8007A78:
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ ldr r1, [sp, 0x18]
+ ldr r0, _08007A9C
+ str r3, [sp]
+ str r1, [sp, 0x4]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_8007AA4
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08007A9C: .4byte gUnknown_2027370
+ thumb_func_end sub_8007A78
+
+ thumb_func_start nullsub_157
+nullsub_157:
+ bx lr
+ thumb_func_end nullsub_157
+
+ thumb_func_start sub_8007AA4
+sub_8007AA4:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x20
+ mov r9, r2
+ adds r5, r3, 0
+ ldr r7, [sp, 0x3C]
+ ldr r3, [sp, 0x40]
+ lsls r2, r1, 3
+ adds r2, r1
+ lsls r2, 3
+ adds r4, r0, r2
+ ldr r1, _08007B28
+ movs r0, 0xF
+ ands r3, r0
+ lsls r3, 2
+ adds r3, r1
+ ldr r0, [r3]
+ ldr r1, _08007B2C
+ adds r1, r0
+ mov r12, r1
+ mov r1, sp
+ ldr r0, _08007B30
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ ldm r0!, {r2,r3}
+ stm r1!, {r2,r3}
+ adds r0, r5, 0
+ cmp r5, 0
+ bge _08007AE8
+ adds r0, r5, 0x7
+_08007AE8:
+ asrs r3, r0, 3
+ movs r0, 0x4
+ ldrsh r6, [r4, r0]
+ mov r8, r6
+ mov r0, r8
+ muls r0, r3
+ mov r2, r9
+ cmp r2, 0
+ bge _08007AFC
+ adds r2, 0x7
+_08007AFC:
+ asrs r2, 3
+ adds r0, r2
+ lsls r0, 5
+ ldr r1, [r4, 0x18]
+ adds r1, r0
+ lsls r0, r3, 3
+ subs r0, r5, r0
+ lsls r0, 2
+ adds r1, r0
+ movs r0, 0x7
+ mov r6, r9
+ ands r0, r6
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ mov r6, r12
+ ands r6, r0
+ mov r12, r6
+ cmp r2, r8
+ bge _08007B6E
+ b _08007B48
+ .align 2, 0
+_08007B28: .4byte gUnknown_80B853C
+_08007B2C: .4byte 0x11111111
+_08007B30: .4byte gUnknown_80B8848
+_08007B34:
+ adds r5, 0x1
+ adds r1, 0x4
+ movs r0, 0x7
+ ands r0, r5
+ cmp r0, 0
+ bne _08007B46
+ ldr r0, [r4, 0x20]
+ lsls r0, 2
+ adds r1, r0
+_08007B46:
+ subs r7, 0x1
+_08007B48:
+ cmp r7, 0
+ ble _08007B6E
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ cmp r3, r0
+ bge _08007B6E
+ ldr r0, [r1]
+ mov r6, r12
+ orrs r0, r6
+ str r0, [r1]
+ ldr r0, [r4, 0x3C]
+ cmp r0, r1
+ bls _08007B64
+ str r1, [r4, 0x3C]
+_08007B64:
+ ldr r0, [r4, 0x40]
+ cmp r0, r1
+ bcs _08007B34
+ str r1, [r4, 0x40]
+ b _08007B34
+_08007B6E:
+ add sp, 0x20
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8007AA4
+
+ thumb_func_start sub_8007B7C
+sub_8007B7C:
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ ldr r1, [sp, 0x18]
+ ldr r0, _08007BA0
+ str r3, [sp]
+ str r1, [sp, 0x4]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_8007BA8
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08007BA0: .4byte gUnknown_2027370
+ thumb_func_end sub_8007B7C
+
+ thumb_func_start nullsub_158
+nullsub_158:
+ bx lr
+ thumb_func_end nullsub_158
+
+ thumb_func_start sub_8007BA8
+sub_8007BA8:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ str r2, [sp]
+ lsls r2, r1, 3
+ adds r2, r1
+ lsls r2, 3
+ adds r0, r2
+ mov r12, r0
+ adds r0, r3, 0
+ cmp r3, 0
+ bge _08007BC8
+ adds r0, r3, 0x7
+_08007BC8:
+ asrs r0, 3
+ str r0, [sp, 0x8]
+ mov r1, r12
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ ldr r4, [sp, 0x8]
+ cmp r4, r0
+ bge _08007CC4
+ movs r7, 0x4
+ ldrsh r0, [r1, r7]
+ adds r1, r4, 0
+ muls r1, r0
+ ldr r0, [sp]
+ cmp r0, 0
+ bge _08007BE8
+ adds r0, 0x7
+_08007BE8:
+ asrs r0, 3
+ adds r0, r1, r0
+ lsls r0, 5
+ mov r2, r12
+ ldr r1, [r2, 0x18]
+ adds r4, r1, r0
+ ldr r7, [sp, 0x8]
+ lsls r0, r7, 3
+ subs r0, r3, r0
+ lsls r0, 2
+ adds r4, r0
+ movs r0, 0
+ str r0, [sp, 0x4]
+ ldr r1, [sp, 0x44]
+ cmp r0, r1
+ bge _08007CC4
+_08007C08:
+ adds r2, r4, 0
+ ldr r0, [sp]
+ cmp r0, 0
+ bge _08007C12
+ adds r0, 0x7
+_08007C12:
+ asrs r1, r0, 3
+ movs r7, 0
+ mov r8, r7
+ adds r3, 0x1
+ str r3, [sp, 0xC]
+ adds r4, 0x4
+ str r4, [sp, 0x14]
+ ldr r0, [sp, 0x40]
+ cmp r8, r0
+ bge _08007C94
+_08007C26:
+ mov r3, r12
+ movs r4, 0x4
+ ldrsh r0, [r3, r4]
+ cmp r1, r0
+ bge _08007C94
+ movs r6, 0xF0
+ lsls r6, 24
+ movs r5, 0xE0
+ lsls r5, 24
+ movs r7, 0
+ str r7, [sp, 0x1C]
+ ldr r4, [r2]
+ adds r3, r4, 0
+ mov r0, r12
+ ldr r0, [r0, 0x3C]
+ mov r9, r0
+ mov r7, r12
+ ldr r7, [r7, 0x40]
+ mov r10, r7
+ adds r1, 0x1
+ str r1, [sp, 0x10]
+ adds r0, r2, 0
+ adds r0, 0x20
+ str r0, [sp, 0x18]
+ movs r1, 0x8
+ add r8, r1
+ movs r1, 0x7
+_08007C5C:
+ adds r0, r4, 0
+ ands r0, r6
+ cmp r0, 0
+ bne _08007C6A
+ ldr r7, [sp, 0x1C]
+ orrs r7, r5
+ str r7, [sp, 0x1C]
+_08007C6A:
+ lsrs r6, 4
+ lsrs r5, 4
+ subs r1, 0x1
+ cmp r1, 0
+ bge _08007C5C
+ ldr r0, [sp, 0x1C]
+ orrs r3, r0
+ str r3, [r2]
+ cmp r9, r2
+ bls _08007C82
+ mov r1, r12
+ str r2, [r1, 0x3C]
+_08007C82:
+ cmp r10, r2
+ bcs _08007C8A
+ mov r3, r12
+ str r2, [r3, 0x40]
+_08007C8A:
+ ldr r1, [sp, 0x10]
+ ldr r2, [sp, 0x18]
+ ldr r4, [sp, 0x40]
+ cmp r8, r4
+ blt _08007C26
+_08007C94:
+ ldr r3, [sp, 0xC]
+ ldr r4, [sp, 0x14]
+ movs r0, 0x7
+ ands r0, r3
+ cmp r0, 0
+ bne _08007CB8
+ mov r7, r12
+ ldr r0, [r7, 0x20]
+ lsls r0, 2
+ adds r4, r0
+ ldr r0, [sp, 0x8]
+ adds r0, 0x1
+ str r0, [sp, 0x8]
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ ldr r2, [sp, 0x8]
+ cmp r2, r0
+ bge _08007CC4
+_08007CB8:
+ ldr r7, [sp, 0x4]
+ adds r7, 0x1
+ str r7, [sp, 0x4]
+ ldr r0, [sp, 0x44]
+ cmp r7, r0
+ blt _08007C08
+_08007CC4:
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8007BA8
+
+ thumb_func_start sub_8007CD4
+sub_8007CD4:
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ ldr r1, [sp, 0x18]
+ ldr r0, _08007CF8
+ str r3, [sp]
+ str r1, [sp, 0x4]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_8007D00
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08007CF8: .4byte gUnknown_2027370
+ thumb_func_end sub_8007CD4
+
+ thumb_func_start nullsub_159
+nullsub_159:
+ bx lr
+ thumb_func_end nullsub_159
+
+ thumb_func_start sub_8007D00
+sub_8007D00:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ str r2, [sp]
+ lsls r2, r1, 3
+ adds r2, r1
+ lsls r2, 3
+ adds r0, r2
+ mov r12, r0
+ adds r0, r3, 0
+ cmp r3, 0
+ bge _08007D20
+ adds r0, r3, 0x7
+_08007D20:
+ asrs r0, 3
+ str r0, [sp, 0x8]
+ mov r1, r12
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ ldr r4, [sp, 0x8]
+ cmp r4, r0
+ bge _08007E0E
+ movs r5, 0x4
+ ldrsh r0, [r1, r5]
+ adds r1, r4, 0
+ muls r1, r0
+ ldr r0, [sp]
+ cmp r0, 0
+ bge _08007D40
+ adds r0, 0x7
+_08007D40:
+ asrs r0, 3
+ adds r0, r1, r0
+ lsls r0, 5
+ mov r2, r12
+ ldr r1, [r2, 0x18]
+ adds r4, r1, r0
+ ldr r5, [sp, 0x8]
+ lsls r0, r5, 3
+ subs r0, r3, r0
+ lsls r0, 2
+ adds r4, r0
+ movs r0, 0
+ b _08007E06
+_08007D5A:
+ adds r2, r4, 0
+ ldr r0, [sp]
+ cmp r0, 0
+ bge _08007D64
+ adds r0, 0x7
+_08007D64:
+ asrs r1, r0, 3
+ movs r5, 0
+ mov r8, r5
+ adds r3, 0x1
+ str r3, [sp, 0xC]
+ adds r4, 0x4
+ str r4, [sp, 0x14]
+ ldr r0, [sp, 0x40]
+ cmp r8, r0
+ bge _08007DE0
+_08007D78:
+ mov r3, r12
+ movs r4, 0x4
+ ldrsh r0, [r3, r4]
+ cmp r1, r0
+ bge _08007DE0
+ movs r4, 0xF0
+ lsls r4, 24
+ movs r6, 0xE0
+ lsls r6, 24
+ movs r7, 0
+ ldr r5, [r2]
+ str r5, [sp, 0x1C]
+ adds r3, r5, 0
+ mov r0, r12
+ ldr r0, [r0, 0x3C]
+ mov r9, r0
+ mov r5, r12
+ ldr r5, [r5, 0x40]
+ mov r10, r5
+ adds r1, 0x1
+ str r1, [sp, 0x10]
+ adds r0, r2, 0
+ adds r0, 0x20
+ str r0, [sp, 0x18]
+ movs r1, 0x8
+ add r8, r1
+ movs r1, 0x7
+_08007DAE:
+ ldr r0, [sp, 0x1C]
+ ands r0, r4
+ cmp r0, r6
+ bne _08007DB8
+ orrs r7, r4
+_08007DB8:
+ lsrs r4, 4
+ lsrs r6, 4
+ subs r1, 0x1
+ cmp r1, 0
+ bge _08007DAE
+ bics r3, r7
+ str r3, [r2]
+ cmp r9, r2
+ bls _08007DCE
+ mov r3, r12
+ str r2, [r3, 0x3C]
+_08007DCE:
+ cmp r10, r2
+ bcs _08007DD6
+ mov r4, r12
+ str r2, [r4, 0x40]
+_08007DD6:
+ ldr r1, [sp, 0x10]
+ ldr r2, [sp, 0x18]
+ ldr r5, [sp, 0x40]
+ cmp r8, r5
+ blt _08007D78
+_08007DE0:
+ ldr r3, [sp, 0xC]
+ ldr r4, [sp, 0x14]
+ movs r0, 0x7
+ ands r0, r3
+ cmp r0, 0
+ bne _08007E02
+ mov r1, r12
+ ldr r0, [r1, 0x20]
+ lsls r0, 2
+ adds r4, r0
+ ldr r2, [sp, 0x8]
+ adds r2, 0x1
+ str r2, [sp, 0x8]
+ movs r5, 0x8
+ ldrsh r0, [r1, r5]
+ cmp r2, r0
+ bge _08007E0E
+_08007E02:
+ ldr r0, [sp, 0x4]
+ adds r0, 0x1
+_08007E06:
+ str r0, [sp, 0x4]
+ ldr r1, [sp, 0x44]
+ cmp r0, r1
+ blt _08007D5A
+_08007E0E:
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8007D00
+
+ thumb_func_start sub_8007E20
+sub_8007E20:
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x14
+ mov r8, r0
+ mov r9, r1
+ ldr r4, [sp, 0x2C]
+ ldr r5, [sp, 0x30]
+ ldr r6, [sp, 0x34]
+ ldr r0, _08007E58
+ ldr r1, _08007E5C
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r5, [sp, 0xC]
+ str r6, [sp, 0x10]
+ mov r2, r8
+ mov r3, r9
+ bl sub_8007E64
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08007E58: .4byte gUnknown_2027370
+_08007E5C: .4byte gUnknown_202B038
+ thumb_func_end sub_8007E20
+
+ thumb_func_start nullsub_160
+nullsub_160:
+ bx lr
+ thumb_func_end nullsub_160
+
+ thumb_func_start sub_8007E64
+sub_8007E64:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ str r1, [sp]
+ str r3, [sp, 0x4]
+ ldr r7, [sp, 0x30]
+ ldr r1, [sp, 0x34]
+ mov r9, r1
+ ldr r1, [sp, 0x38]
+ mov r10, r1
+ ldr r5, [sp, 0x3C]
+ lsls r1, r2, 3
+ adds r1, r2
+ lsls r1, 3
+ adds r4, r0, r1
+ adds r0, r3, 0
+ cmp r0, 0
+ bge _08007E90
+ adds r0, 0x7
+_08007E90:
+ asrs r0, 3
+ str r0, [sp, 0x4]
+ adds r0, r7, 0
+ cmp r7, 0
+ bge _08007E9C
+ adds r0, r7, 0x7
+_08007E9C:
+ asrs r7, r0, 3
+ mov r0, r9
+ cmp r0, 0
+ bge _08007EA6
+ adds r0, 0x7
+_08007EA6:
+ asrs r0, 3
+ mov r9, r0
+ mov r0, r10
+ cmp r0, 0
+ bge _08007EB2
+ adds r0, 0x7
+_08007EB2:
+ asrs r0, 3
+ mov r10, r0
+ ldr r2, [sp, 0x40]
+ lsls r2, 12
+ str r2, [sp, 0x40]
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r7, r0
+ bge _08007F98
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ muls r0, r7
+ ldr r1, [sp, 0x4]
+ adds r0, r1
+ lsls r0, 5
+ ldr r1, [r4, 0x18]
+ adds r1, r0
+ mov r8, r1
+ movs r2, 0
+ b _08007F92
+_08007EDA:
+ ldr r6, [sp, 0x4]
+ mov r3, r8
+ adds r0, r7, 0x1
+ str r0, [sp, 0xC]
+ mov r1, r9
+ cmp r1, 0
+ ble _08007F7A
+ mov r12, r9
+_08007EEA:
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ cmp r6, r0
+ bge _08007F68
+ ldr r0, [r4, 0x3C]
+ cmp r0, r3
+ bls _08007EFA
+ str r3, [r4, 0x3C]
+_08007EFA:
+ ldm r5!, {r0}
+ stm r3!, {r0}
+ ldm r5!, {r0}
+ stm r3!, {r0}
+ ldm r5!, {r0}
+ stm r3!, {r0}
+ ldm r5!, {r0}
+ stm r3!, {r0}
+ ldm r5!, {r0}
+ stm r3!, {r0}
+ ldm r5!, {r0}
+ stm r3!, {r0}
+ ldm r5!, {r0}
+ stm r3!, {r0}
+ ldr r0, [r5]
+ stm r3!, {r0}
+ ldr r0, [r4, 0x40]
+ cmp r0, r3
+ bcs _08007F22
+ str r3, [r4, 0x40]
+_08007F22:
+ adds r5, 0x4
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ adds r0, r7
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ adds r1, r6
+ lsls r1, 1
+ lsls r0, 6
+ ldr r2, [sp]
+ adds r0, r2
+ adds r1, r0
+ ldrh r2, [r1]
+ ldr r0, _08007F64
+ ands r0, r2
+ strh r0, [r1]
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ adds r0, r7
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ adds r1, r6
+ lsls r1, 1
+ lsls r0, 6
+ ldr r2, [sp]
+ adds r0, r2
+ adds r1, r0
+ ldrh r2, [r1]
+ ldr r0, [sp, 0x40]
+ orrs r0, r2
+ strh r0, [r1]
+ b _08007F6C
+ .align 2, 0
+_08007F64: .4byte 0x00000fff
+_08007F68:
+ adds r3, 0x20
+ adds r5, 0x20
+_08007F6C:
+ adds r6, 0x1
+ movs r0, 0x1
+ negs r0, r0
+ add r12, r0
+ mov r1, r12
+ cmp r1, 0
+ bne _08007EEA
+_08007F7A:
+ ldr r7, [sp, 0xC]
+ ldr r0, [r4, 0x20]
+ lsls r0, 2
+ add r8, r0
+ movs r2, 0x20
+ add r8, r2
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r7, r0
+ bge _08007F98
+ ldr r2, [sp, 0x8]
+ adds r2, 0x1
+_08007F92:
+ str r2, [sp, 0x8]
+ cmp r2, r10
+ blt _08007EDA
+_08007F98:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8007E64
+
+ thumb_func_start sub_8007FA8
+sub_8007FA8:
+ adds r3, r0, 0
+ lsrs r0, r3, 28
+ lsrs r1, r3, 20
+ movs r2, 0xF0
+ ands r1, r2
+ orrs r0, r1
+ lsrs r1, r3, 12
+ movs r2, 0xF0
+ lsls r2, 4
+ ands r1, r2
+ orrs r0, r1
+ lsrs r1, r3, 4
+ movs r2, 0xF0
+ lsls r2, 8
+ ands r1, r2
+ orrs r0, r1
+ lsls r1, r3, 4
+ movs r2, 0xF0
+ lsls r2, 12
+ ands r1, r2
+ orrs r0, r1
+ lsls r1, r3, 12
+ movs r2, 0xF0
+ lsls r2, 16
+ ands r1, r2
+ orrs r0, r1
+ lsls r1, r3, 20
+ movs r2, 0xF0
+ lsls r2, 20
+ ands r1, r2
+ orrs r0, r1
+ lsls r3, 28
+ orrs r0, r3
+ bx lr
+ thumb_func_end sub_8007FA8
+
+ thumb_func_start sub_8007FEC
+sub_8007FEC:
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x14
+ mov r8, r0
+ mov r9, r1
+ ldr r4, [sp, 0x2C]
+ ldr r5, [sp, 0x30]
+ ldr r6, [sp, 0x34]
+ ldr r0, _08008024
+ ldr r1, _08008028
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r5, [sp, 0xC]
+ str r6, [sp, 0x10]
+ mov r2, r8
+ mov r3, r9
+ bl sub_8008030
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08008024: .4byte gUnknown_2027370
+_08008028: .4byte gUnknown_202B038
+ thumb_func_end sub_8007FEC
+
+ thumb_func_start nullsub_161
+nullsub_161:
+ bx lr
+ thumb_func_end nullsub_161
+
+ thumb_func_start sub_8008030
+sub_8008030:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ str r1, [sp]
+ ldr r1, [sp, 0x30]
+ mov r8, r1
+ ldr r6, [sp, 0x3C]
+ lsls r1, r2, 3
+ adds r1, r2
+ lsls r1, 3
+ adds r5, r0, r1
+ adds r0, r3, 0
+ cmp r3, 0
+ bge _08008054
+ adds r0, r3, 0x7
+_08008054:
+ asrs r3, r0, 3
+ mov r0, r8
+ cmp r0, 0
+ bge _0800805E
+ adds r0, 0x7
+_0800805E:
+ asrs r0, 3
+ mov r8, r0
+ ldr r0, [sp, 0x34]
+ cmp r0, 0
+ bge _0800806A
+ adds r0, 0x7
+_0800806A:
+ asrs r0, 3
+ str r0, [sp, 0x34]
+ ldr r0, [sp, 0x38]
+ cmp r0, 0
+ bge _08008076
+ adds r0, 0x7
+_08008076:
+ asrs r0, 3
+ str r0, [sp, 0x38]
+ ldr r2, [sp, 0x40]
+ lsls r2, 12
+ str r2, [sp, 0x40]
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r8, r0
+ blt _0800808A
+ b _08008194
+_0800808A:
+ movs r2, 0x4
+ ldrsh r0, [r5, r2]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r1, [sp, 0x34]
+ adds r2, r3, r1
+ adds r0, r2
+ lsls r0, 5
+ ldr r1, [r5, 0x18]
+ adds r1, r0
+ mov r10, r1
+ movs r3, 0
+ str r3, [sp, 0x4]
+ str r2, [sp, 0xC]
+ ldr r0, [sp, 0x38]
+ cmp r3, r0
+ bge _08008194
+_080080AE:
+ ldr r7, [sp, 0xC]
+ mov r4, r10
+ mov r1, r8
+ adds r1, 0x1
+ str r1, [sp, 0x8]
+ ldr r2, [sp, 0x34]
+ cmp r2, 0
+ ble _08008172
+ mov r9, r2
+_080080C0:
+ subs r7, 0x1
+ subs r4, 0x20
+ movs r3, 0x4
+ ldrsh r0, [r5, r3]
+ cmp r7, r0
+ bge _08008164
+ ldr r0, [r5, 0x3C]
+ cmp r0, r4
+ bls _080080D4
+ str r4, [r5, 0x3C]
+_080080D4:
+ ldm r6!, {r0}
+ bl sub_8007FA8
+ str r0, [r4]
+ ldm r6!, {r0}
+ bl sub_8007FA8
+ str r0, [r4, 0x4]
+ ldm r6!, {r0}
+ bl sub_8007FA8
+ str r0, [r4, 0x8]
+ ldm r6!, {r0}
+ bl sub_8007FA8
+ str r0, [r4, 0xC]
+ ldm r6!, {r0}
+ bl sub_8007FA8
+ str r0, [r4, 0x10]
+ ldm r6!, {r0}
+ bl sub_8007FA8
+ str r0, [r4, 0x14]
+ ldm r6!, {r0}
+ bl sub_8007FA8
+ str r0, [r4, 0x18]
+ ldm r6!, {r0}
+ bl sub_8007FA8
+ str r0, [r4, 0x1C]
+ adds r1, r4, 0
+ adds r1, 0x20
+ ldr r0, [r5, 0x40]
+ cmp r0, r1
+ bcs _08008120
+ str r1, [r5, 0x40]
+_08008120:
+ movs r1, 0x2
+ ldrsh r0, [r5, r1]
+ add r0, r8
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ adds r1, r7
+ lsls r1, 1
+ lsls r0, 6
+ ldr r3, [sp]
+ adds r0, r3
+ adds r1, r0
+ ldrh r0, [r1]
+ ldr r3, _08008160
+ adds r2, r3, 0
+ ands r0, r2
+ strh r0, [r1]
+ movs r1, 0x2
+ ldrsh r0, [r5, r1]
+ add r0, r8
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ adds r1, r7
+ lsls r1, 1
+ lsls r0, 6
+ ldr r3, [sp]
+ adds r0, r3
+ adds r1, r0
+ ldrh r2, [r1]
+ ldr r0, [sp, 0x40]
+ orrs r0, r2
+ strh r0, [r1]
+ b _08008166
+ .align 2, 0
+_08008160: .4byte 0x00000fff
+_08008164:
+ adds r6, 0x20
+_08008166:
+ movs r0, 0x1
+ negs r0, r0
+ add r9, r0
+ mov r1, r9
+ cmp r1, 0
+ bne _080080C0
+_08008172:
+ ldr r2, [sp, 0x8]
+ mov r8, r2
+ ldr r0, [r5, 0x20]
+ lsls r0, 2
+ add r10, r0
+ movs r3, 0x20
+ add r10, r3
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r8, r0
+ bge _08008194
+ ldr r2, [sp, 0x4]
+ adds r2, 0x1
+ str r2, [sp, 0x4]
+ ldr r3, [sp, 0x38]
+ cmp r2, r3
+ blt _080080AE
+_08008194:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8008030
+
+ thumb_func_start sub_80081A4
+sub_80081A4:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ str r1, [sp]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08008234
+ adds r6, r1, r0
+ lsls r3, 7
+ ldr r0, _08008238
+ adds r3, r0
+ ldr r0, [sp]
+ cmp r0, 0
+ bge _080081CA
+ adds r0, 0x7
+_080081CA:
+ asrs r0, 3
+ str r0, [sp]
+ adds r0, r2, 0
+ cmp r2, 0
+ bge _080081D6
+ adds r0, r2, 0x7
+_080081D6:
+ asrs r2, r0, 3
+ movs r0, 0x2
+ mov r9, r0
+ mov r10, r0
+ movs r1, 0x8
+ ldrsh r0, [r6, r1]
+ cmp r2, r0
+ bge _08008262
+ movs r7, 0x4
+ ldrsh r0, [r6, r7]
+ muls r0, r2
+ ldr r1, [sp]
+ adds r0, r1
+ lsls r0, 5
+ ldr r1, [r6, 0x28]
+ adds r5, r1, r0
+ movs r7, 0
+ mov r8, r7
+_080081FA:
+ ldr r4, [sp]
+ adds r1, r5, 0
+ adds r2, 0x1
+ mov r12, r2
+ mov r0, r9
+ cmp r0, 0
+ beq _08008248
+ mov r2, r9
+_0800820A:
+ movs r7, 0x4
+ ldrsh r0, [r6, r7]
+ cmp r4, r0
+ bge _0800823C
+ ldm r3!, {r0}
+ stm r1!, {r0}
+ ldm r3!, {r0}
+ stm r1!, {r0}
+ ldm r3!, {r0}
+ stm r1!, {r0}
+ ldm r3!, {r0}
+ stm r1!, {r0}
+ ldm r3!, {r0}
+ stm r1!, {r0}
+ ldm r3!, {r0}
+ stm r1!, {r0}
+ ldm r3!, {r0}
+ stm r1!, {r0}
+ ldm r3!, {r0}
+ stm r1!, {r0}
+ b _08008240
+ .align 2, 0
+_08008234: .4byte gUnknown_2027370
+_08008238: .4byte gUnknown_80B86B4
+_0800823C:
+ adds r1, 0x20
+ adds r3, 0x20
+_08008240:
+ adds r4, 0x1
+ subs r2, 0x1
+ cmp r2, 0
+ bne _0800820A
+_08008248:
+ mov r2, r12
+ ldr r0, [r6, 0x20]
+ lsls r0, 2
+ adds r5, r0
+ adds r5, 0x20
+ movs r1, 0x8
+ ldrsh r0, [r6, r1]
+ cmp r2, r0
+ bge _08008262
+ movs r7, 0x1
+ add r8, r7
+ cmp r8, r10
+ blt _080081FA
+_08008262:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80081A4
+
+ thumb_func_start sub_8008274
+sub_8008274:
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r3, r1, 0
+ ldr r0, _08008290
+ ldr r1, _08008294
+ str r2, [sp]
+ adds r2, r4, 0
+ bl sub_800829C
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08008290: .4byte gUnknown_2027370
+_08008294: .4byte gUnknown_202B038
+ thumb_func_end sub_8008274
+
+ thumb_func_start nullsub_162
+nullsub_162:
+ bx lr
+ thumb_func_end nullsub_162
+
+ thumb_func_start sub_800829C
+sub_800829C:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r1
+ ldr r7, [sp, 0x18]
+ lsls r1, r2, 3
+ adds r1, r2
+ lsls r1, 3
+ adds r4, r0, r1
+ lsls r7, 12
+ ldr r0, [r4, 0x18]
+ movs r1, 0x4
+ ldrsh r2, [r4, r1]
+ movs r5, 0x8
+ ldrsh r1, [r4, r5]
+ lsls r1, 5
+ muls r1, r2
+ adds r2, r3, 0
+ bl sub_800AAB4
+ movs r2, 0
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r2, r0
+ bge _08008312
+ movs r0, 0x4
+ ldrsh r5, [r4, r0]
+ mov r12, r5
+_080082D4:
+ adds r5, r2, 0x1
+ mov r1, r12
+ cmp r1, 0
+ ble _08008308
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ adds r1, r2
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ lsls r1, 6
+ ldr r6, _08008330
+ lsls r0, 1
+ adds r0, r1
+ mov r1, r8
+ adds r2, r0, r1
+ movs r0, 0x4
+ ldrsh r3, [r4, r0]
+_080082F6:
+ ldrh r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ orrs r0, r7
+ strh r0, [r2]
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bne _080082F6
+_08008308:
+ adds r2, r5, 0
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r2, r0
+ blt _080082D4
+_08008312:
+ ldr r0, [r4, 0x28]
+ str r0, [r4, 0x30]
+ ldr r0, [r4, 0x1C]
+ str r0, [r4, 0x34]
+ ldr r0, [r4, 0x2C]
+ str r0, [r4, 0x38]
+ adds r1, r4, 0
+ adds r1, 0x44
+ movs r0, 0x1
+ strb r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08008330: .4byte 0x00000fff
+ thumb_func_end sub_800829C
+
+ thumb_func_start sub_8008334
+sub_8008334:
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ mov r12, r1
+ ldr r4, [r7]
+ ldr r1, [r1]
+ movs r3, 0
+ movs r2, 0
+ movs r6, 0xF
+ movs r5, 0x1C
+_08008346:
+ lsls r2, 4
+ lsls r3, 4
+ adds r0, r4, 0
+ ands r0, r6
+ orrs r2, r0
+ adds r0, r1, 0
+ ands r0, r6
+ orrs r3, r0
+ lsrs r4, 4
+ lsrs r1, 4
+ subs r5, 0x4
+ cmp r5, 0
+ bge _08008346
+ str r3, [r7]
+ mov r0, r12
+ str r2, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8008334
+
+ thumb_func_start sub_800836C
+sub_800836C:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r3, r2, 0
+ ldr r0, _08008384
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_800838C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08008384: .4byte gUnknown_2027370
+ thumb_func_end sub_800836C
+
+ thumb_func_start nullsub_163
+nullsub_163:
+ bx lr
+ thumb_func_end nullsub_163
+
+ thumb_func_start sub_800838C
+sub_800838C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r4, r1, 3
+ adds r4, r1
+ lsls r4, 3
+ adds r7, r0, r4
+ adds r0, r1, 0
+ adds r1, r2, 0
+ adds r2, r3, 0
+ bl sub_8008274
+ movs r0, 0
+ mov r9, r0
+ b _08008452
+_080083AE:
+ movs r1, 0x4
+ ldrsh r0, [r7, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ mov r8, r0
+ ldrh r1, [r7, 0x4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080083C8
+ movs r0, 0x1
+ add r8, r0
+_080083C8:
+ movs r6, 0
+ movs r1, 0x1
+ add r1, r9
+ mov r10, r1
+ cmp r6, r8
+ bge _08008450
+_080083D4:
+ movs r0, 0x4
+ ldrsh r1, [r7, r0]
+ mov r0, r9
+ muls r0, r1
+ adds r4, r0, r6
+ lsls r4, 5
+ ldr r5, [r7, 0x18]
+ adds r4, r5, r4
+ subs r0, 0x1
+ subs r1, r6
+ adds r0, r1
+ lsls r0, 5
+ adds r5, r0
+ adds r0, r4, 0
+ adds r4, 0x4
+ adds r1, r5, 0
+ adds r5, 0x4
+ bl sub_8008334
+ adds r0, r4, 0
+ adds r4, 0x4
+ adds r1, r5, 0
+ adds r5, 0x4
+ bl sub_8008334
+ adds r0, r4, 0
+ adds r4, 0x4
+ adds r1, r5, 0
+ adds r5, 0x4
+ bl sub_8008334
+ adds r0, r4, 0
+ adds r4, 0x4
+ adds r1, r5, 0
+ adds r5, 0x4
+ bl sub_8008334
+ adds r0, r4, 0
+ adds r4, 0x4
+ adds r1, r5, 0
+ adds r5, 0x4
+ bl sub_8008334
+ adds r0, r4, 0
+ adds r4, 0x4
+ adds r1, r5, 0
+ adds r5, 0x4
+ bl sub_8008334
+ adds r0, r4, 0
+ adds r4, 0x4
+ adds r1, r5, 0
+ adds r5, 0x4
+ bl sub_8008334
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8008334
+ adds r6, 0x1
+ cmp r6, r8
+ blt _080083D4
+_08008450:
+ mov r9, r10
+_08008452:
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ cmp r9, r0
+ blt _080083AE
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_800838C
+
+ thumb_func_start sub_8008468
+sub_8008468:
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x10
+ adds r6, r0, 0
+ mov r8, r1
+ ldr r4, [sp, 0x24]
+ ldr r5, [sp, 0x28]
+ ldr r0, _08008498
+ ldr r1, _0800849C
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r5, [sp, 0xC]
+ adds r2, r6, 0
+ mov r3, r8
+ bl sub_80084A4
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08008498: .4byte gUnknown_2027370
+_0800849C: .4byte gUnknown_202B038
+ thumb_func_end sub_8008468
+
+ thumb_func_start nullsub_164
+nullsub_164:
+ bx lr
+ thumb_func_end nullsub_164
+
+ thumb_func_start sub_80084A4
+sub_80084A4:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ str r1, [sp]
+ mov r10, r3
+ ldr r6, [sp, 0x24]
+ ldr r7, [sp, 0x28]
+ ldr r1, [sp, 0x2C]
+ mov r12, r1
+ lsls r1, r2, 3
+ adds r1, r2
+ lsls r1, 3
+ adds r4, r0, r1
+ mov r0, r10
+ cmp r0, 0
+ bge _080084CC
+ adds r0, 0x7
+_080084CC:
+ asrs r0, 3
+ mov r10, r0
+ adds r0, r6, 0
+ cmp r6, 0
+ bge _080084D8
+ adds r0, r6, 0x7
+_080084D8:
+ asrs r6, r0, 3
+ adds r0, r7, 0
+ cmp r7, 0
+ bge _080084E2
+ adds r0, r7, 0x7
+_080084E2:
+ asrs r7, r0, 3
+ mov r0, r12
+ cmp r0, 0
+ bge _080084EC
+ adds r0, 0x7
+_080084EC:
+ asrs r0, 3
+ mov r12, r0
+ ldr r2, [sp, 0x30]
+ lsls r2, 12
+ str r2, [sp, 0x30]
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r6, r0
+ bge _08008570
+ movs r2, 0
+ mov r8, r2
+ cmp r8, r12
+ bge _08008570
+_08008506:
+ mov r3, r10
+ adds r0, r6, 0x1
+ mov r9, r0
+ cmp r7, 0
+ ble _0800855E
+ adds r5, r7, 0
+_08008512:
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r3, r0
+ bge _08008556
+ movs r2, 0x2
+ ldrsh r0, [r4, r2]
+ adds r0, r6
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ adds r1, r3
+ lsls r1, 1
+ lsls r0, 6
+ ldr r2, [sp]
+ adds r0, r2
+ adds r1, r0
+ ldrh r2, [r1]
+ ldr r0, _08008580
+ ands r0, r2
+ strh r0, [r1]
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ adds r0, r6
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ adds r1, r3
+ lsls r1, 1
+ lsls r0, 6
+ ldr r2, [sp]
+ adds r0, r2
+ adds r1, r0
+ ldrh r2, [r1]
+ ldr r0, [sp, 0x30]
+ orrs r0, r2
+ strh r0, [r1]
+_08008556:
+ adds r3, 0x1
+ subs r5, 0x1
+ cmp r5, 0
+ bne _08008512
+_0800855E:
+ mov r6, r9
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r6, r0
+ bge _08008570
+ movs r2, 0x1
+ add r8, r2
+ cmp r8, r12
+ blt _08008506
+_08008570:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08008580: .4byte 0x00000fff
+ thumb_func_end sub_80084A4
+
+ thumb_func_start sub_8008584
+sub_8008584:
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ ldr r1, _080085C4
+ ldr r0, _080085C8
+ ldr r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r2, [r0]
+ ldr r5, [r2, 0x4]
+ ldr r0, _080085CC
+ adds r1, r3, r0
+ ldr r0, _080085D0
+ cmp r1, r0
+ bhi _080085D4
+ movs r2, 0xFF
+ ands r2, r3
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r1, r3
+ asrs r1, 8
+ subs r2, 0x20
+ subs r1, 0xF8
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 5
+ adds r0, r2
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5, r1
+ b _08008624
+ .align 2, 0
+_080085C4: .4byte gUnknown_2027490
+_080085C8: .4byte gUnknown_20274AC
+_080085CC: .4byte 0xffff0800
+_080085D0: .4byte 0x000007fe
+_080085D4:
+ movs r4, 0
+ ldr r0, [r2]
+ subs r2, r0, 0x1
+ cmp r4, r2
+ bge _08008614
+ lsrs r0, r2, 31
+ adds r0, r2, r0
+ b _08008602
+_080085E4:
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r0, [r0, 0x4]
+ cmp r0, r3
+ bge _080085F6
+ adds r4, r1, 0x1
+ b _080085F8
+_080085F6:
+ adds r2, r1, 0
+_080085F8:
+ cmp r4, r2
+ bge _08008614
+ adds r0, r4, r2
+ lsrs r1, r0, 31
+ adds r0, r1
+_08008602:
+ asrs r1, r0, 1
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r0, [r0, 0x4]
+ cmp r0, r3
+ bne _080085E4
+ adds r4, r1, 0
+_08008614:
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r1, r5, r0
+ ldrh r0, [r1, 0x4]
+ cmp r0, r3
+ beq _08008624
+ ldr r1, _0800862C
+_08008624:
+ adds r0, r1, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0800862C: .4byte gUnknown_80B86A4
+ thumb_func_end sub_8008584
+
+ thumb_func_start sub_8008630
+sub_8008630:
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r3, r1, 0
+ adds r2, r1, 0
+ subs r2, 0x30
+ lsls r0, r2, 24
+ lsrs r0, 24
+ cmp r0, 0x9
+ bhi _08008648
+ adds r0, r2, 0
+ b _0800865C
+_08008648:
+ adds r0, r1, 0
+ subs r0, 0x61
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bls _08008658
+ movs r0, 0x1
+ b _0800865C
+_08008658:
+ adds r0, r3, 0
+ subs r0, 0x57
+_0800865C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8008630
+
+ thumb_func_start xxx_get_next_char_from_string
+xxx_get_next_char_from_string:
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ ldrb r1, [r5]
+ cmp r1, 0x7E
+ bne _08008696
+ adds r5, 0x1
+ ldrb r0, [r5]
+ bl sub_8008630
+ adds r4, r0, 0
+ ldrb r0, [r5, 0x1]
+ bl sub_8008630
+ lsls r4, 4
+ adds r4, r0
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _08008690
+ adds r5, 0x1
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _08008690
+ adds r5, 0x1
+_08008690:
+ str r4, [r6]
+ adds r0, r5, 0
+ b _080086B2
+_08008696:
+ adds r0, r1, 0
+ subs r0, 0x81
+ cmp r0, 0x3
+ bls _080086A2
+ cmp r1, 0x87
+ bne _080086AE
+_080086A2:
+ ldrb r0, [r5, 0x1]
+ lsls r1, 8
+ orrs r0, r1
+ str r0, [r6]
+ adds r0, r5, 0x2
+ b _080086B2
+_080086AE:
+ str r1, [r6]
+ adds r0, r5, 0x1
+_080086B2:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end xxx_get_next_char_from_string
+
+ thumb_func_start nullsub_165
+nullsub_165:
+ bx lr
+ thumb_func_end nullsub_165
+
+ thumb_func_start nullsub_166
+nullsub_166:
+ bx lr
+ thumb_func_end nullsub_166
+
+ thumb_func_start nullsub_167
+nullsub_167:
+ bx lr
+ thumb_func_end nullsub_167
+
+ thumb_func_start nullsub_168
+nullsub_168:
+ bx lr
+ thumb_func_end nullsub_168
+
+ thumb_func_start sub_80086C8
+sub_80086C8:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ mov r9, r2
+ ldr r7, [sp, 0x30]
+ lsls r2, r1, 3
+ adds r2, r1
+ lsls r2, 3
+ adds r0, r2
+ mov r12, r0
+ mov r0, r9
+ cmp r0, 0
+ bge _080086F2
+ ldr r1, [sp, 0x2C]
+ add r1, r9
+ str r1, [sp, 0x2C]
+ movs r2, 0
+ mov r9, r2
+_080086F2:
+ cmp r3, 0
+ bge _080086FA
+ adds r7, r3
+ movs r3, 0
+_080086FA:
+ ldr r0, [sp, 0x2C]
+ add r0, r9
+ mov r4, r12
+ movs r5, 0x4
+ ldrsh r2, [r4, r5]
+ lsls r1, r2, 3
+ cmp r0, r1
+ ble _08008710
+ mov r0, r9
+ subs r0, r1, r0
+ str r0, [sp, 0x2C]
+_08008710:
+ adds r1, r3, r7
+ mov r4, r12
+ movs r5, 0x8
+ ldrsh r0, [r4, r5]
+ lsls r0, 3
+ cmp r1, r0
+ ble _08008720
+ subs r7, r0, r3
+_08008720:
+ adds r1, r3, 0
+ cmp r3, 0
+ bge _08008728
+ adds r1, r3, 0x7
+_08008728:
+ asrs r1, 3
+ muls r2, r1
+ mov r0, r9
+ cmp r0, 0
+ bge _08008734
+ adds r0, 0x7
+_08008734:
+ asrs r0, 3
+ adds r0, r2, r0
+ lsls r0, 3
+ lsls r1, 3
+ subs r1, r3, r1
+ adds r0, r1
+ lsls r0, 2
+ mov r2, r12
+ ldr r1, [r2, 0x18]
+ b _080087D6
+_08008748:
+ adds r2, r5, 0
+ ldr r4, [sp, 0x2C]
+ mov r6, r9
+ mov r1, r12
+ ldr r0, [r1, 0x3C]
+ cmp r0, r5
+ bls _08008758
+ str r5, [r1, 0x3C]
+_08008758:
+ subs r0, r7, 0x1
+ str r0, [sp, 0x4]
+ adds r3, 0x1
+ str r3, [sp, 0x8]
+ mov r1, r12
+ ldr r1, [r1, 0x40]
+ str r1, [sp]
+ adds r0, r5, 0x4
+ mov r10, r0
+ cmp r4, 0
+ ble _080087B6
+ ldr r1, _0800878C
+ mov r8, r1
+ movs r7, 0x7
+_08008774:
+ cmp r4, 0x7
+ bgt _08008790
+ adds r3, r4, 0
+ adds r0, r4, 0
+ ands r0, r7
+ adds r0, 0x8
+ lsls r0, 2
+ add r0, r8
+ ldr r1, [r2]
+ ldr r0, [r0]
+ ands r1, r0
+ b _080087AA
+ .align 2, 0
+_0800878C: .4byte gUnknown_80B8868
+_08008790:
+ adds r1, r6, 0
+ ands r1, r7
+ cmp r1, 0
+ beq _080087A8
+ movs r0, 0x8
+ subs r3, r0, r1
+ lsls r0, r1, 2
+ add r0, r8
+ ldr r1, [r2]
+ ldr r0, [r0]
+ ands r1, r0
+ b _080087AA
+_080087A8:
+ movs r3, 0x8
+_080087AA:
+ str r1, [r2]
+ adds r2, 0x20
+ subs r4, r3
+ adds r6, r3
+ cmp r4, 0
+ bgt _08008774
+_080087B6:
+ ldr r7, [sp, 0x4]
+ ldr r3, [sp, 0x8]
+ ldr r2, [sp]
+ cmp r2, r5
+ bcs _080087C4
+ mov r4, r12
+ str r5, [r4, 0x40]
+_080087C4:
+ mov r5, r10
+ movs r0, 0x7
+ ands r0, r3
+ cmp r0, 0
+ bne _080087D8
+ mov r5, r12
+ ldr r0, [r5, 0x20]
+ lsls r0, 2
+ mov r1, r10
+_080087D6:
+ adds r5, r1, r0
+_080087D8:
+ cmp r7, 0
+ bgt _08008748
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80086C8
+
+ thumb_func_start sub_80087EC
+sub_80087EC:
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ ldr r1, [sp, 0x18]
+ ldr r0, _08008810
+ str r3, [sp]
+ str r1, [sp, 0x4]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_8008818
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08008810: .4byte gUnknown_2027370
+ thumb_func_end sub_80087EC
+
+ thumb_func_start nullsub_176
+nullsub_176:
+ bx lr
+ thumb_func_end nullsub_176
+
+ thumb_func_start sub_8008818
+sub_8008818:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r3, 0
+ ldr r7, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ mov r12, r3
+ lsls r3, r1, 3
+ adds r3, r1
+ lsls r3, 3
+ adds r4, r0, r3
+ cmp r2, 0
+ bge _08008834
+ adds r2, 0x7
+_08008834:
+ asrs r2, 3
+ mov r8, r2
+ adds r3, r5, 0
+ cmp r3, 0
+ bge _08008840
+ adds r3, 0x7
+_08008840:
+ asrs r3, 3
+ movs r2, 0
+ cmp r2, r12
+ bge _08008892
+_08008848:
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ muls r0, r3
+ add r0, r8
+ lsls r0, 5
+ ldr r1, [r4, 0x18]
+ adds r1, r0
+ movs r5, 0
+ adds r3, 0x1
+ adds r6, r2, 0
+ adds r6, 0x8
+ cmp r5, r7
+ bge _0800888C
+ movs r2, 0
+_08008864:
+ ldr r0, [r4, 0x3C]
+ cmp r0, r1
+ bls _0800886C
+ str r1, [r4, 0x3C]
+_0800886C:
+ stm r1!, {r2}
+ stm r1!, {r2}
+ stm r1!, {r2}
+ stm r1!, {r2}
+ stm r1!, {r2}
+ stm r1!, {r2}
+ stm r1!, {r2}
+ str r2, [r1]
+ ldr r0, [r4, 0x40]
+ cmp r0, r1
+ bcs _08008884
+ str r1, [r4, 0x40]
+_08008884:
+ adds r1, 0x4
+ adds r5, 0x8
+ cmp r5, r7
+ blt _08008864
+_0800888C:
+ adds r2, r6, 0
+ cmp r2, r12
+ blt _08008848
+_08008892:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8008818
+
+ thumb_func_start xxx_call_update_bg_vram
+xxx_call_update_bg_vram:
+ push {lr}
+ movs r1, 0
+ ldr r2, _080088C0
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _080088AE
+ strb r1, [r2]
+ bl sub_80099C0
+_080088AE:
+ ldr r0, _080088C4
+ bl xxx_update_bg_vram
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080088C0: .4byte gUnknown_20274A5
+_080088C4: .4byte gUnknown_2027370
+ thumb_func_end xxx_call_update_bg_vram
+
+ thumb_func_start xxx_update_bg_vram
+xxx_update_bg_vram:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r0
+ movs r2, 0
+ movs r1, 0
+ movs r7, 0xD0
+ lsls r7, 4
+_080088D8:
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 3
+ mov r3, r8
+ adds r4, r3, r0
+ movs r5, 0x4
+ ldrsh r0, [r4, r5]
+ adds r6, r1, 0x1
+ cmp r0, 0
+ beq _0800897A
+ ldr r5, [r4, 0x38]
+ cmp r5, 0
+ beq _0800897A
+ adds r0, r4, 0
+ adds r0, 0x45
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0800894C
+ ldr r0, [r4, 0x28]
+ ldr r1, [r4, 0x18]
+ adds r2, r7, 0
+ bl CpuCopy
+ ldr r0, [r4, 0x18]
+ adds r2, r0, r7
+ ldr r0, [r4, 0x28]
+ adds r1, r0, r7
+ movs r3, 0
+ b _08008938
+_08008912:
+ ldm r2!, {r0}
+ stm r1!, {r0}
+ ldm r2!, {r0}
+ stm r1!, {r0}
+ ldm r2!, {r0}
+ stm r1!, {r0}
+ ldm r2!, {r0}
+ stm r1!, {r0}
+ ldm r2!, {r0}
+ stm r1!, {r0}
+ ldr r0, _08008944
+ stm r1!, {r0}
+ ldr r0, _08008948
+ stm r1!, {r0}
+ movs r0, 0x1
+ negs r0, r0
+ stm r1!, {r0}
+ adds r2, 0xC
+ adds r3, 0x1
+_08008938:
+ movs r5, 0x4
+ ldrsh r0, [r4, r5]
+ cmp r3, r0
+ blt _08008912
+ movs r0, 0
+ b _0800896A
+ .align 2, 0
+_08008944: .4byte 0xdddddddd
+_08008948: .4byte 0xeeeeeeee
+_0800894C:
+ ldr r0, [r4, 0x30]
+ ldr r1, [r4, 0x34]
+ adds r2, r5, 0
+ bl CpuCopy
+ lsrs r1, r5, 2
+ lsls r1, 2
+ ldr r0, [r4, 0x34]
+ adds r0, r1
+ str r0, [r4, 0x34]
+ ldr r0, [r4, 0x30]
+ adds r0, r5
+ str r0, [r4, 0x30]
+ ldr r0, [r4, 0x38]
+ subs r0, r5
+_0800896A:
+ str r0, [r4, 0x38]
+ ldr r1, [r4, 0x38]
+ cmp r1, 0
+ bne _08008978
+ adds r0, r4, 0
+ adds r0, 0x44
+ strb r1, [r0]
+_08008978:
+ movs r2, 0x1
+_0800897A:
+ adds r1, r6, 0
+ cmp r1, 0x3
+ ble _080088D8
+ adds r0, r2, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end xxx_update_bg_vram
+
+ thumb_func_start sub_800898C
+sub_800898C:
+ push {lr}
+ ldr r1, _080089A4
+ ldr r2, _080089A8
+ movs r3, 0xA0
+ lsls r3, 1
+ adds r0, r1, r3
+_08008998:
+ strh r2, [r0]
+ subs r0, 0x2
+ cmp r0, r1
+ bge _08008998
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080089A4: .4byte gUnknown_3000E94
+_080089A8: .4byte 0x0000f0f0
+ thumb_func_end sub_800898C
+
+ thumb_func_start sub_80089AC
+sub_80089AC:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldrb r1, [r4]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080089C8
+ b _08008C44
+_080089C8:
+ ldr r6, _08008A3C
+ ldr r7, [r4, 0x4]
+ cmp r7, 0x1
+ bne _08008A60
+ movs r0, 0x8
+ ldrsh r2, [r4, r0]
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ adds r2, r0
+ lsls r3, r2, 3
+ mov r12, r3
+ movs r7, 0xA
+ ldrsh r1, [r4, r7]
+ movs r3, 0x2
+ ldrsh r0, [r5, r3]
+ adds r1, r0
+ lsls r5, r1, 3
+ movs r7, 0xC
+ ldrsh r0, [r4, r7]
+ adds r2, r0
+ lsls r7, r2, 3
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ adds r1, r0
+ lsls r2, r1, 3
+ cmp r0, 0
+ bne _08008A00
+ b _08008C44
+_08008A00:
+ cmp r5, 0
+ bge _08008A06
+ movs r5, 0
+_08008A06:
+ cmp r2, 0
+ bge _08008A0C
+ movs r2, 0
+_08008A0C:
+ cmp r5, 0xA0
+ ble _08008A12
+ movs r5, 0xA0
+_08008A12:
+ cmp r2, 0xA0
+ ble _08008A18
+ movs r2, 0xA0
+_08008A18:
+ cmp r5, r2
+ blt _08008A1E
+ b _08008C44
+_08008A1E:
+ lsls r3, r5, 1
+ adds r1, r6, r3
+ ldrb r0, [r1]
+ cmp r0, 0xF0
+ bne _08008A40
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0xF0
+ bne _08008A40
+ strb r7, [r1]
+ adds r3, 0x1
+ adds r0, r6, r3
+ mov r1, r12
+ strb r1, [r0]
+ b _08008A58
+ .align 2, 0
+_08008A3C: .4byte gUnknown_3000E94
+_08008A40:
+ adds r1, r6, r3
+ ldrb r0, [r1]
+ cmp r0, r7
+ bge _08008A4A
+ strb r7, [r1]
+_08008A4A:
+ adds r3, 0x1
+ adds r3, r6, r3
+ ldrb r0, [r3]
+ cmp r0, r12
+ ble _08008A58
+ mov r0, r12
+ strb r0, [r3]
+_08008A58:
+ adds r5, 0x1
+ cmp r5, r2
+ blt _08008A1E
+ b _08008C44
+_08008A60:
+ cmp r7, 0x6
+ beq _08008A66
+ b _08008BA8
+_08008A66:
+ movs r2, 0x8
+ ldrsh r1, [r4, r2]
+ movs r3, 0
+ ldrsh r0, [r5, r3]
+ adds r1, r0
+ lsls r3, r1, 3
+ subs r7, r3, 0x5
+ mov r9, r7
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ movs r7, 0x2
+ ldrsh r2, [r5, r7]
+ adds r0, r2
+ lsls r2, r0, 3
+ subs r5, r2, 0x4
+ movs r7, 0xC
+ ldrsh r2, [r4, r7]
+ adds r1, r2
+ lsls r1, 3
+ adds r1, 0x5
+ str r1, [sp]
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ lsls r0, 3
+ adds r0, 0x5
+ mov r8, r0
+ adds r3, 0x3
+ mov r12, r3
+ ldr r2, [r4, 0x14]
+ ldrb r1, [r2, 0x2]
+ subs r0, r1, 0x1
+ ldrb r3, [r2]
+ adds r0, r3
+ adds r0, 0x2
+ lsls r0, 3
+ add r0, r12
+ subs r0, 0x4
+ mov r10, r0
+ ldrb r0, [r2, 0x1]
+ adds r0, 0x1
+ lsls r0, 3
+ mov r7, r9
+ adds r4, r7, r0
+ adds r1, 0x2
+ lsls r1, 3
+ adds r1, r4, r1
+ subs r7, r1, 0x4
+ cmp r5, 0
+ bge _08008ACC
+ movs r5, 0
+_08008ACC:
+ mov r0, r8
+ cmp r0, 0
+ bge _08008AD6
+ movs r1, 0
+ mov r8, r1
+_08008AD6:
+ cmp r5, 0xA0
+ ble _08008ADC
+ movs r5, 0xA0
+_08008ADC:
+ mov r2, r8
+ cmp r2, 0xA0
+ ble _08008AE6
+ movs r3, 0xA0
+ mov r8, r3
+_08008AE6:
+ movs r3, 0x3
+_08008AE8:
+ lsls r2, r5, 1
+ adds r1, r6, r2
+ ldrb r0, [r1]
+ cmp r0, 0xF0
+ bne _08008B02
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0xF0
+ bne _08008B02
+ strb r7, [r1]
+ adds r2, 0x1
+ adds r0, r6, r2
+ strb r4, [r0]
+ b _08008B18
+_08008B02:
+ adds r1, r6, r2
+ ldrb r0, [r1]
+ cmp r0, r7
+ bge _08008B0C
+ strb r7, [r1]
+_08008B0C:
+ adds r2, 0x1
+ adds r2, r6, r2
+ ldrb r0, [r2]
+ cmp r0, r4
+ ble _08008B18
+ strb r4, [r2]
+_08008B18:
+ adds r5, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08008AE8
+ movs r3, 0x7
+_08008B22:
+ lsls r1, r5, 1
+ adds r2, r6, r1
+ ldrb r0, [r2]
+ cmp r0, 0xF0
+ bne _08008B40
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0xF0
+ bne _08008B40
+ mov r7, r10
+ strb r7, [r2]
+ adds r1, 0x1
+ adds r0, r6, r1
+ mov r1, r12
+ strb r1, [r0]
+ b _08008B5A
+_08008B40:
+ adds r2, r6, r1
+ ldrb r0, [r2]
+ cmp r0, r10
+ bge _08008B4C
+ mov r7, r10
+ strb r7, [r2]
+_08008B4C:
+ adds r1, 0x1
+ adds r1, r6, r1
+ ldrb r0, [r1]
+ cmp r0, r12
+ ble _08008B5A
+ mov r0, r12
+ strb r0, [r1]
+_08008B5A:
+ adds r5, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08008B22
+ cmp r5, r8
+ bge _08008C44
+_08008B66:
+ lsls r1, r5, 1
+ adds r2, r6, r1
+ ldrb r0, [r2]
+ cmp r0, 0xF0
+ bne _08008B86
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0xF0
+ bne _08008B86
+ mov r3, sp
+ ldrb r3, [r3]
+ strb r3, [r2]
+ adds r1, 0x1
+ adds r0, r6, r1
+ mov r7, r9
+ strb r7, [r0]
+ b _08008BA0
+_08008B86:
+ adds r2, r6, r1
+ ldrb r0, [r2]
+ ldr r3, [sp]
+ cmp r0, r3
+ bge _08008B92
+ strb r3, [r2]
+_08008B92:
+ adds r1, 0x1
+ adds r1, r6, r1
+ ldrb r0, [r1]
+ cmp r0, r9
+ ble _08008BA0
+ mov r0, r9
+ strb r0, [r1]
+_08008BA0:
+ adds r5, 0x1
+ cmp r5, r8
+ blt _08008B66
+ b _08008C44
+_08008BA8:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ adds r0, r1
+ lsls r1, r0, 3
+ subs r1, 0x5
+ mov r8, r1
+ movs r3, 0xA
+ ldrsh r2, [r4, r3]
+ movs r3, 0x2
+ ldrsh r1, [r5, r3]
+ adds r2, r1
+ lsls r5, r2, 3
+ mov r9, r5
+ mov r3, r9
+ subs r3, 0x5
+ movs r5, 0xC
+ ldrsh r1, [r4, r5]
+ adds r0, r1
+ lsls r0, 3
+ adds r0, 0x5
+ mov r12, r0
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ adds r2, r0
+ lsls r1, r2, 3
+ adds r5, r1, 0x5
+ cmp r0, 0
+ beq _08008C44
+ cmp r7, 0
+ bne _08008BEC
+ adds r3, 0x8
+ subs r5, r1, 0x3
+_08008BEC:
+ cmp r3, 0
+ bge _08008BF2
+ movs r3, 0
+_08008BF2:
+ cmp r5, 0
+ bge _08008BF8
+ movs r5, 0
+_08008BF8:
+ cmp r3, 0xA0
+ ble _08008BFE
+ movs r3, 0xA0
+_08008BFE:
+ cmp r5, 0xA0
+ ble _08008C40
+ movs r5, 0xA0
+ b _08008C40
+_08008C06:
+ lsls r1, r3, 1
+ adds r2, r6, r1
+ ldrb r0, [r2]
+ cmp r0, 0xF0
+ bne _08008C24
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0xF0
+ bne _08008C24
+ mov r7, r12
+ strb r7, [r2]
+ adds r1, 0x1
+ adds r0, r6, r1
+ mov r1, r8
+ strb r1, [r0]
+ b _08008C3E
+_08008C24:
+ adds r2, r6, r1
+ ldrb r0, [r2]
+ cmp r0, r12
+ bge _08008C30
+ mov r7, r12
+ strb r7, [r2]
+_08008C30:
+ adds r1, 0x1
+ adds r1, r6, r1
+ ldrb r0, [r1]
+ cmp r0, r8
+ ble _08008C3E
+ mov r0, r8
+ strb r0, [r1]
+_08008C3E:
+ adds r3, 0x1
+_08008C40:
+ cmp r3, r5
+ blt _08008C06
+_08008C44:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80089AC
+
+ thumb_func_start sub_8008C54
+sub_8008C54:
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, _08008C64
+ bl sub_8008C6C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08008C64: .4byte gUnknown_2027370
+ thumb_func_end sub_8008C54
+
+ thumb_func_start nullsub_169
+nullsub_169:
+ bx lr
+ thumb_func_end nullsub_169
+
+ thumb_func_start sub_8008C6C
+sub_8008C6C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ mov r9, r0
+ mov r8, r1
+ lsls r0, r1, 3
+ add r0, r8
+ lsls r0, 3
+ mov r1, r9
+ adds r6, r1, r0
+ adds r0, r6, 0
+ adds r0, 0x45
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08008CBE
+ movs r2, 0x4
+ ldrsh r0, [r6, r2]
+ movs r7, 0x8
+ ldrsh r1, [r6, r7]
+ muls r0, r1
+ lsls r4, r0, 5
+ movs r5, 0
+ movs r0, 0x44
+ adds r0, r6
+ mov r10, r0
+ cmp r5, r4
+ bge _08008D1E
+_08008CA8:
+ lsrs r1, r5, 2
+ lsls r1, 2
+ ldr r0, [r6, 0x18]
+ adds r0, r1
+ movs r1, 0x20
+ bl CpuClear
+ adds r5, 0x20
+ cmp r5, r4
+ blt _08008CA8
+ b _08008D1E
+_08008CBE:
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ movs r2, 0x8
+ ldrsh r1, [r6, r2]
+ subs r1, 0x1
+ muls r1, r0
+ lsls r1, 5
+ str r1, [sp, 0x8]
+ ldr r4, [r6, 0x18]
+ movs r5, 0
+ movs r7, 0x44
+ adds r7, r6
+ mov r10, r7
+ cmp r5, r0
+ bge _08008D04
+ movs r0, 0x1
+ negs r0, r0
+ mov r12, r0
+ movs r1, 0
+ ldr r3, _08008D84
+ ldr r2, _08008D88
+_08008CE8:
+ mov r7, r12
+ stm r4!, {r7}
+ stm r4!, {r3}
+ stm r4!, {r2}
+ stm r4!, {r1}
+ stm r4!, {r1}
+ stm r4!, {r1}
+ stm r4!, {r1}
+ stm r4!, {r1}
+ adds r5, 0x1
+ movs r7, 0x4
+ ldrsh r0, [r6, r7]
+ cmp r5, r0
+ blt _08008CE8
+_08008D04:
+ movs r5, 0
+ ldr r0, [sp, 0x8]
+ cmp r5, r0
+ bge _08008D1E
+_08008D0C:
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl CpuClear
+ adds r4, 0x20
+ adds r5, 0x20
+ ldr r1, [sp, 0x8]
+ cmp r5, r1
+ blt _08008D0C
+_08008D1E:
+ ldr r0, [r6, 0xC]
+ cmp r0, 0x6
+ bne _08008D60
+ adds r5, r6, 0
+ adds r5, 0x46
+ movs r4, 0
+ movs r0, 0x1
+ strb r0, [r5]
+ movs r2, 0x4
+ ldrsh r0, [r6, r2]
+ lsls r0, 3
+ str r0, [sp]
+ movs r0, 0xE
+ str r0, [sp, 0x4]
+ mov r0, r9
+ mov r1, r8
+ movs r2, 0
+ movs r3, 0xA
+ bl sub_8007958
+ movs r7, 0x4
+ ldrsh r0, [r6, r7]
+ lsls r0, 3
+ str r0, [sp]
+ movs r0, 0xD
+ str r0, [sp, 0x4]
+ mov r0, r9
+ mov r1, r8
+ movs r2, 0
+ movs r3, 0xB
+ bl sub_8007958
+ strb r4, [r5]
+_08008D60:
+ ldr r0, [r6, 0x28]
+ str r0, [r6, 0x30]
+ ldr r0, [r6, 0x1C]
+ str r0, [r6, 0x34]
+ ldr r0, [r6, 0x2C]
+ str r0, [r6, 0x38]
+ movs r0, 0x1
+ mov r1, r10
+ strb r0, [r1]
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08008D84: .4byte 0xeeeeeeee
+_08008D88: .4byte 0xdddddddd
+ thumb_func_end sub_8008C6C
+
+ thumb_func_start sub_8008D8C
+sub_8008D8C:
+ push {lr}
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08008DA4
+ adds r1, r0
+ ldr r0, [r1, 0x38]
+ cmp r0, 0
+ beq _08008DA0
+ movs r0, 0x1
+_08008DA0:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08008DA4: .4byte gUnknown_2027370
+ thumb_func_end sub_8008D8C
+
+ thumb_func_start sub_8008DA8
+sub_8008DA8:
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_8008DA8
+
+ thumb_func_start sub_8008DAC
+sub_8008DAC:
+ ldr r3, _08008DC0
+ lsls r0, 1
+ lsls r1, 6
+ adds r0, r1
+ adds r0, r3
+ strh r2, [r0]
+ ldr r1, _08008DC4
+ movs r0, 0x1
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_08008DC0: .4byte gUnknown_202B038
+_08008DC4: .4byte gUnknown_20274A5
+ thumb_func_end sub_8008DAC
+
+ thumb_func_start sub_8008DC8
+sub_8008DC8:
+ push {r4,lr}
+ ldr r4, _08008DEC
+ lsls r0, 1
+ lsls r1, 6
+ adds r0, r1
+ adds r1, r0, r4
+ strh r2, [r1]
+ movs r1, 0x80
+ lsls r1, 4
+ adds r4, r1
+ adds r0, r4
+ strh r3, [r0]
+ ldr r1, _08008DF0
+ movs r0, 0x1
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08008DEC: .4byte gUnknown_202B038
+_08008DF0: .4byte gUnknown_20274A5
+ thumb_func_end sub_8008DC8
+
+ thumb_func_start sub_8008DF4
+sub_8008DF4:
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r3, r2, 0
+ ldrb r0, [r3]
+ ldr r1, _08008E4C
+ mov r12, r1
+ cmp r0, 0
+ beq _08008E3E
+ ldr r6, _08008E50
+_08008E08:
+ ldrb r1, [r3]
+ adds r0, r1, 0
+ subs r0, 0x61
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x19
+ bhi _08008E1E
+ adds r0, r1, 0
+ subs r0, 0x20
+ lsls r0, 24
+ lsrs r1, r0, 24
+_08008E1E:
+ lsls r2, r4, 1
+ lsls r0, r5, 6
+ adds r2, r0
+ adds r2, r6
+ movs r7, 0x96
+ lsls r7, 2
+ adds r0, r1, r7
+ ldr r7, _08008E54
+ adds r1, r7, 0
+ orrs r0, r1
+ strh r0, [r2]
+ adds r3, 0x1
+ adds r4, 0x1
+ ldrb r0, [r3]
+ cmp r0, 0
+ bne _08008E08
+_08008E3E:
+ movs r0, 0x1
+ mov r1, r12
+ strb r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08008E4C: .4byte gUnknown_20274A5
+_08008E50: .4byte gUnknown_202B038
+_08008E54: .4byte 0xfffff000
+ thumb_func_end sub_8008DF4
+
+ thumb_func_start sub_8008E58
+sub_8008E58:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ mov r8, r1
+ adds r4, r2, 0
+ ldrb r0, [r4]
+ ldr r7, _08008EC4
+ cmp r0, 0
+ beq _08008EB4
+ adds r1, r0, 0
+ cmp r3, 0
+ beq _08008EB4
+ ldr r0, _08008EC8
+ mov r12, r0
+_08008E76:
+ adds r0, r1, 0
+ subs r0, 0x61
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x19
+ bhi _08008E8A
+ adds r0, r1, 0
+ subs r0, 0x20
+ lsls r0, 24
+ lsrs r1, r0, 24
+_08008E8A:
+ lsls r2, r5, 1
+ mov r6, r8
+ lsls r0, r6, 6
+ adds r2, r0
+ add r2, r12
+ movs r6, 0x96
+ lsls r6, 2
+ adds r0, r1, r6
+ ldr r6, _08008ECC
+ adds r1, r6, 0
+ orrs r0, r1
+ strh r0, [r2]
+ adds r4, 0x1
+ adds r5, 0x1
+ subs r3, 0x1
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08008EB4
+ adds r1, r0, 0
+ cmp r3, 0
+ bne _08008E76
+_08008EB4:
+ movs r0, 0x1
+ strb r0, [r7]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08008EC4: .4byte gUnknown_20274A5
+_08008EC8: .4byte gUnknown_202B038
+_08008ECC: .4byte 0xfffff000
+ thumb_func_end sub_8008E58
+
+ thumb_func_start sub_8008ED0
+sub_8008ED0:
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r5, 0
+ b _08008F64
+_08008EDA:
+ ldr r0, _08008F18
+ cmp r1, r0
+ beq _08008F64
+ adds r0, 0x2
+ cmp r1, r0
+ beq _08008F64
+ cmp r1, 0x1B
+ beq _08008F7E
+ cmp r1, 0x23
+ bne _08008F44
+ ldrb r0, [r2]
+ cmp r0, 0x6E
+ beq _08008F7E
+ cmp r0, 0x5B
+ beq _08008F7E
+ cmp r0, 0x50
+ beq _08008F7E
+ cmp r0, 0x57
+ beq _08008F40
+ cmp r0, 0x57
+ bgt _08008F22
+ cmp r0, 0x43
+ beq _08008F38
+ cmp r0, 0x43
+ bgt _08008F1C
+ cmp r0, 0x2B
+ beq _08008F40
+ cmp r0, 0x3D
+ beq _08008F34
+ b _08008F64
+ .align 2, 0
+_08008F18: .4byte 0x000082a0
+_08008F1C:
+ cmp r0, 0x52
+ beq _08008F3C
+ b _08008F64
+_08008F22:
+ cmp r0, 0x72
+ beq _08008F3C
+ cmp r0, 0x72
+ bgt _08008F30
+ cmp r0, 0x63
+ beq _08008F38
+ b _08008F64
+_08008F30:
+ cmp r0, 0x7E
+ bne _08008F64
+_08008F34:
+ adds r4, r2, 0x2
+ b _08008F64
+_08008F38:
+ adds r4, 0x2
+ b _08008F64
+_08008F3C:
+ adds r4, 0x1
+ b _08008F64
+_08008F40:
+ adds r4, r2, 0x1
+ b _08008F64
+_08008F44:
+ cmp r1, 0x60
+ bne _08008F4C
+ adds r5, 0x6
+ b _08008F64
+_08008F4C:
+ adds r0, r1, 0
+ bl sub_8008584
+ cmp r0, 0
+ beq _08008F64
+ movs r1, 0x6
+ ldrsh r0, [r0, r1]
+ ldr r1, _08008F88
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ adds r0, r1
+ adds r5, r0
+_08008F64:
+ adds r0, r4, 0
+ mov r1, sp
+ bl xxx_get_next_char_from_string
+ adds r2, r0, 0
+ adds r4, r2, 0
+ ldr r1, [sp]
+ cmp r1, 0
+ beq _08008F7E
+ cmp r1, 0xD
+ beq _08008F7E
+ cmp r1, 0xA
+ bne _08008EDA
+_08008F7E:
+ adds r0, r5, 0
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08008F88: .4byte gUnknown_2027498
+ thumb_func_end sub_8008ED0
+
+ thumb_func_start sub_8008F8C
+sub_8008F8C:
+ push {r4-r6,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ ldr r1, [sp, 0x20]
+ ldr r2, [sp, 0x24]
+ ldr r0, _08008FB8
+ str r3, [sp]
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ str r2, [sp, 0xC]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl xxx_draw_string
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08008FB8: .4byte gUnknown_2027370
+ thumb_func_end sub_8008F8C
+
+ thumb_func_start xxx_call_draw_string
+xxx_call_draw_string:
+ push {r4-r6,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ ldr r1, [sp, 0x20]
+ ldr r0, _08008FE8
+ str r3, [sp]
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0xD
+ str r1, [sp, 0xC]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl xxx_draw_string
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08008FE8: .4byte gUnknown_2027370
+ thumb_func_end xxx_call_draw_string
+
+ thumb_func_start nullsub_170
+nullsub_170:
+ bx lr
+ thumb_func_end nullsub_170
+
+ thumb_func_start sub_8008FF0
+sub_8008FF0:
+ push {r4-r6,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ ldr r1, [sp, 0x20]
+ ldr r0, _0800901C
+ str r3, [sp]
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0xD
+ str r1, [sp, 0xC]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl xxx_draw_string
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800901C: .4byte gUnknown_2027370
+ thumb_func_end sub_8008FF0
+
+ thumb_func_start nullsub_171
+nullsub_171:
+ bx lr
+ thumb_func_end nullsub_171
+
+ thumb_func_start xxx_draw_string
+xxx_draw_string:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x40
+ adds r5, r0, 0
+ adds r4, r3, 0
+ ldr r0, [sp, 0x5C]
+ mov r8, r0
+ ldr r7, [sp, 0x64]
+ add r0, sp, 0x8
+ strh r1, [r0]
+ strh r2, [r0, 0x2]
+ str r1, [sp, 0x14]
+ movs r0, 0x7
+ str r0, [sp, 0x18]
+ add r2, sp, 0x3C
+ mov r9, r2
+ b _08009128
+_0800904A:
+ ldr r0, _08009058
+ cmp r3, r0
+ bne _08009060
+ ldr r1, _0800905C
+ movs r0, 0
+ str r0, [r1]
+ b _08009128
+ .align 2, 0
+_08009058: .4byte 0x000082a0
+_0800905C: .4byte gUnknown_20274AC
+_08009060:
+ ldr r0, _08009070
+ cmp r3, r0
+ bne _08009078
+ ldr r1, _08009074
+ movs r0, 0x1
+ str r0, [r1]
+ b _08009128
+ .align 2, 0
+_08009070: .4byte 0x000082a2
+_08009074: .4byte gUnknown_20274AC
+_08009078:
+ cmp r3, 0x1B
+ beq _0800914A
+ cmp r3, 0xD
+ beq _08009084
+ cmp r3, 0xA
+ bne _08009096
+_08009084:
+ add r1, sp, 0x8
+ ldr r0, [sp, 0x14]
+ strh r0, [r1]
+ adds r0, r1, 0
+ ldrh r0, [r0, 0x2]
+ ldr r3, [sp, 0x68]
+ adds r0, r3
+ strh r0, [r1, 0x2]
+ b _08009128
+_08009096:
+ cmp r3, 0x1D
+ bne _080090AA
+ add r1, sp, 0x8
+ ldr r0, [sp, 0x14]
+ strh r0, [r1]
+ adds r0, r1, 0
+ ldrh r0, [r0, 0x2]
+ adds r0, 0x5
+ strh r0, [r1, 0x2]
+ b _08009128
+_080090AA:
+ cmp r3, 0x60
+ bne _080090B8
+ add r1, sp, 0x8
+ adds r0, r1, 0
+ ldrh r0, [r0]
+ adds r0, 0x6
+ b _08009126
+_080090B8:
+ cmp r7, 0
+ bne _080090E0
+ add r0, sp, 0x8
+ movs r6, 0
+ ldrsh r1, [r0, r6]
+ movs r6, 0x2
+ ldrsh r2, [r0, r6]
+ ldr r0, [sp, 0x18]
+ str r0, [sp]
+ mov r0, r8
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ bl xxx_draw_char
+ add r2, sp, 0x8
+ adds r1, r2, 0
+ ldrh r1, [r1]
+ adds r1, r0
+ strh r1, [r2]
+ b _08009128
+_080090E0:
+ adds r0, r3, 0
+ bl sub_8008584
+ adds r2, r0, 0
+ cmp r2, 0
+ beq _08009128
+ add r0, sp, 0x8
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ ldr r0, _08009158
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ adds r0, 0xA
+ movs r3, 0x6
+ ldrsh r2, [r2, r3]
+ subs r0, r2
+ lsrs r2, r0, 31
+ adds r0, r2
+ asrs r0, 1
+ adds r1, r0
+ add r0, sp, 0x8
+ movs r6, 0x2
+ ldrsh r2, [r0, r6]
+ ldr r3, [sp, 0x3C]
+ ldr r0, [sp, 0x18]
+ str r0, [sp]
+ mov r0, r8
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ bl xxx_draw_char
+ add r1, sp, 0x8
+ adds r0, r1, 0
+ ldrh r0, [r0]
+ adds r0, r7
+_08009126:
+ strh r0, [r1]
+_08009128:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ add r2, sp, 0x8
+ bl sub_80091AC
+ adds r4, r0, 0
+ mov r1, r9
+ bl xxx_get_next_char_from_string
+ adds r4, r0, 0
+ ldr r3, [sp, 0x3C]
+ cmp r3, 0
+ beq _0800914A
+ ldr r2, [sp, 0x60]
+ cmp r3, r2
+ beq _0800914A
+ b _0800904A
+_0800914A:
+ add sp, 0x40
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08009158: .4byte gUnknown_2027498
+ thumb_func_end xxx_draw_string
+
+ thumb_func_start sub_800915C
+sub_800915C:
+ push {r4,lr}
+ adds r3, r0, 0
+ movs r2, 0
+_08009162:
+ ldrb r0, [r1]
+ cmp r0, 0x2E
+ beq _08009184
+ subs r0, 0x30
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x9
+ bhi _08009186
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r2, r0, 1
+ adds r0, r2, 0
+ subs r0, 0x30
+ ldrb r4, [r1]
+ adds r2, r0, r4
+ adds r1, 0x1
+ b _08009162
+_08009184:
+ adds r1, 0x1
+_08009186:
+ strh r2, [r3]
+ adds r0, r1, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800915C
+
+ thumb_func_start sub_8009190
+sub_8009190:
+ push {lr}
+ adds r3, r0, 0
+ adds r2, r1, 0
+ ldr r0, _080091A4
+ adds r1, r3, 0
+ bl sub_80091AC
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080091A4: .4byte gUnknown_2027370
+ thumb_func_end sub_8009190
+
+ thumb_func_start sub_80091A8
+sub_80091A8:
+ adds r0, 0x1
+ bx lr
+ thumb_func_end sub_80091A8
+
+ thumb_func_start sub_80091AC
+sub_80091AC:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r8, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ movs r0, 0
+ mov r9, r0
+ movs r7, 0x1
+_080091C0:
+ ldrb r0, [r4]
+ cmp r0, 0x23
+ beq _080091C8
+ b _0800937A
+_080091C8:
+ ldrb r0, [r4, 0x1]
+ adds r1, r0, 0
+ cmp r1, 0x5B
+ bne _08009216
+ adds r2, r4, 0
+ adds r4, 0x2
+ adds r0, r5, 0
+ adds r0, 0x21
+ mov r1, r9
+ strb r1, [r0]
+ ldrb r1, [r4]
+ adds r6, r0, 0
+ cmp r1, 0
+ beq _080091F6
+ cmp r1, 0x5D
+ beq _080091F4
+_080091E8:
+ adds r4, 0x1
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080091F6
+ cmp r0, 0x5D
+ bne _080091E8
+_080091F4:
+ adds r4, 0x1
+_080091F6:
+ ldr r3, [r5, 0x24]
+ cmp r3, 0
+ beq _0800920C
+ adds r0, r2, 0
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl _call_via_r3
+ cmp r0, 0
+ beq _0800920C
+ adds r4, r0, 0
+_0800920C:
+ ldrb r0, [r6]
+ cmp r0, 0
+ beq _08009214
+ b _0800937A
+_08009214:
+ b _080091C0
+_08009216:
+ cmp r1, 0x3D
+ bne _08009220
+ ldrb r0, [r4, 0x2]
+ strh r0, [r5]
+ b _080092BA
+_08009220:
+ cmp r1, 0x79
+ bne _0800922A
+ ldrb r0, [r4, 0x2]
+ strh r0, [r5, 0x2]
+ b _080092BA
+_0800922A:
+ cmp r1, 0x3E
+ bne _0800923A
+ adds r1, r4, 0x2
+ adds r0, r5, 0
+ bl sub_800915C
+ adds r4, r0, 0
+ b _080091C0
+_0800923A:
+ cmp r1, 0x2E
+ bne _08009246
+ ldrh r0, [r5]
+ ldrb r2, [r4, 0x2]
+ adds r0, r2
+ b _0800926E
+_08009246:
+ cmp r1, 0x6E
+ bne _08009258
+ ldr r0, [r5, 0xC]
+ strh r0, [r5]
+ ldrh r0, [r5, 0x2]
+ adds r0, 0xB
+ strh r0, [r5, 0x2]
+ adds r4, 0x2
+ b _080091C0
+_08009258:
+ cmp r1, 0x3A
+ bne _08009264
+ ldrh r0, [r5]
+ strh r0, [r5, 0x4]
+ adds r4, 0x2
+ b _080091C0
+_08009264:
+ cmp r1, 0x3B
+ bne _08009274
+ ldrh r0, [r5, 0x4]
+ ldrb r3, [r4, 0x2]
+ adds r0, r3
+_0800926E:
+ strh r0, [r5]
+ adds r4, 0x3
+ b _080091C0
+_08009274:
+ cmp r1, 0x2B
+ bne _0800929A
+ adds r4, 0x2
+ adds r0, r4, 0
+ bl sub_8008ED0
+ mov r2, r8
+ movs r3, 0x4
+ ldrsh r1, [r2, r3]
+ lsls r1, 3
+ subs r1, r0
+ strh r1, [r5]
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r5]
+ b _080091C0
+_0800929A:
+ cmp r1, 0x43
+ bne _080092A4
+ ldr r0, [r5, 0x10]
+ str r0, [r5, 0x14]
+ b _080092DC
+_080092A4:
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5F
+ bne _080092CC
+ ldr r0, [r5, 0x10]
+ str r0, [r5, 0x14]
+ ldr r1, _080092C8
+ ldrb r0, [r4, 0x2]
+ adds r0, r1
+ ldrb r0, [r0]
+ str r0, [r5, 0x10]
+_080092BA:
+ adds r4, 0x3
+ ldrb r0, [r4]
+ cmp r0, 0x2E
+ beq _080092C4
+ b _080091C0
+_080092C4:
+ adds r4, 0x1
+ b _080091C0
+ .align 2, 0
+_080092C8: .4byte gUnknown_202749A
+_080092CC:
+ cmp r0, 0x52
+ bne _080092D4
+ ldr r0, [r5, 0x14]
+ b _080092EE
+_080092D4:
+ cmp r0, 0x63
+ bne _080092E8
+ ldr r0, [r5, 0x10]
+ str r0, [r5, 0x18]
+_080092DC:
+ ldrb r0, [r4, 0x2]
+ bl sub_800963C
+ str r0, [r5, 0x10]
+ adds r4, 0x3
+ b _080091C0
+_080092E8:
+ cmp r0, 0x72
+ bne _080092F4
+ ldr r0, [r5, 0x18]
+_080092EE:
+ str r0, [r5, 0x10]
+ adds r4, 0x2
+ b _080091C0
+_080092F4:
+ cmp r0, 0x53
+ bne _08009314
+ ldr r3, _08009310
+ ldrb r2, [r4, 0x2]
+ movs r0, 0x7F
+ adds r1, r0, 0
+ ands r1, r2
+ adds r1, r3
+ ldrb r2, [r4, 0x3]
+ ands r0, r2
+ strb r0, [r1]
+ adds r4, 0x4
+ b _080091C0
+ .align 2, 0
+_08009310: .4byte gUnknown_20274A6
+_08009314:
+ cmp r0, 0x57
+ bne _0800933A
+ adds r4, 0x2
+ mov r2, r8
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ lsls r0, 3
+ ldrh r1, [r5]
+ adds r0, r1
+ subs r0, 0x2
+ strh r0, [r5, 0x8]
+ movs r3, 0x2
+ ldrsh r0, [r2, r3]
+ lsls r0, 3
+ ldrh r1, [r5, 0x2]
+ adds r0, r1
+ adds r0, 0x3
+ strh r0, [r5, 0xA]
+ b _0800935C
+_0800933A:
+ cmp r0, 0x50
+ bne _08009350
+ adds r4, 0x2
+ ldr r0, _0800934C
+ strh r0, [r5, 0x2]
+ mov r2, r9
+ str r2, [r5, 0x1C]
+ b _0800935C
+ .align 2, 0
+_0800934C: .4byte 0x0000270f
+_08009350:
+ cmp r0, 0x70
+ bne _08009368
+ adds r4, 0x2
+ ldr r0, _08009364
+ strh r0, [r5, 0x2]
+ str r7, [r5, 0x1C]
+_0800935C:
+ adds r0, r5, 0
+ adds r0, 0x20
+ strb r7, [r0]
+ b _0800937A
+ .align 2, 0
+_08009364: .4byte 0x0000270f
+_08009368:
+ cmp r0, 0x7E
+ bne _0800937A
+ ldrb r0, [r4, 0x2]
+ str r0, [r5, 0x2C]
+ adds r0, r5, 0
+ adds r0, 0x21
+ strb r7, [r0]
+ adds r4, 0x3
+ b _080091C0
+_0800937A:
+ adds r0, r4, 0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80091AC
+
+ thumb_func_start sub_8009388
+sub_8009388:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r2, _080093F4
+ ldr r6, _080093F8
+ strh r6, [r2]
+ movs r0, 0x80
+ lsls r0, 4
+ adds r5, r2, r0
+ ldr r4, _080093FC
+ strh r4, [r5]
+ ldr r0, _08009400
+ ldr r3, [r0]
+ ldr r0, _08009404
+ ldr r1, [r0]
+ mov r9, r0
+ cmp r3, r1
+ bge _080093E6
+ mov r8, r2
+ mov r12, r6
+ adds r6, r5, 0
+ movs r5, 0
+ adds r7, r6, 0
+_080093B8:
+ lsls r0, r3, 6
+ mov r1, r8
+ adds r2, r0, r1
+ mov r1, r12
+ strh r1, [r2]
+ adds r1, r0, r6
+ strh r4, [r1]
+ adds r3, 0x1
+ adds r0, r7
+ adds r0, 0x2
+ adds r2, 0x2
+ movs r1, 0x1E
+_080093D0:
+ strh r5, [r2]
+ strh r4, [r0]
+ adds r0, 0x2
+ adds r2, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080093D0
+ mov r1, r9
+ ldr r0, [r1]
+ cmp r3, r0
+ blt _080093B8
+_080093E6:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080093F4: .4byte gUnknown_202B038
+_080093F8: .4byte 0x0000f279
+_080093FC: .4byte 0x0000f27a
+_08009400: .4byte gUnknown_202B020
+_08009404: .4byte gUnknown_202B024
+ thumb_func_end sub_8009388
+
+ thumb_func_start sub_8009408
+sub_8009408:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r5, r1, 0
+ ldr r1, _08009478
+ ldr r6, _0800947C
+ strh r6, [r1]
+ movs r2, 0x80
+ lsls r2, 4
+ adds r4, r1, r2
+ ldr r2, _08009480
+ strh r2, [r4]
+ adds r3, r0, 0
+ ldr r0, _08009484
+ mov r10, r0
+ cmp r3, r5
+ bge _08009464
+ mov r9, r1
+ mov r8, r6
+ adds r7, r4, 0
+ adds r4, r2, 0
+ movs r6, 0
+ mov r12, r7
+_0800943A:
+ lsls r0, r3, 6
+ mov r1, r9
+ adds r2, r0, r1
+ mov r1, r8
+ strh r1, [r2]
+ adds r1, r0, r7
+ strh r4, [r1]
+ adds r3, 0x1
+ add r0, r12
+ adds r0, 0x2
+ adds r2, 0x2
+ movs r1, 0x1E
+_08009452:
+ strh r6, [r2]
+ strh r4, [r0]
+ adds r0, 0x2
+ adds r2, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _08009452
+ cmp r3, r5
+ blt _0800943A
+_08009464:
+ movs r0, 0x1
+ mov r2, r10
+ strb r0, [r2]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08009478: .4byte gUnknown_202B038
+_0800947C: .4byte 0x0000f279
+_08009480: .4byte 0x0000f27a
+_08009484: .4byte gUnknown_20274A5
+ thumb_func_end sub_8009408
+
+ thumb_func_start sub_8009488
+sub_8009488:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08009514
+ adds r4, r1, r0
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ movs r3, 0
+ movs r2, 0x6
+ ldrsh r0, [r4, r2]
+ cmp r3, r0
+ bge _08009506
+ ldr r6, _08009518
+ mov r9, r6
+ ldr r0, _0800951C
+ mov r8, r0
+ movs r2, 0x80
+ lsls r2, 4
+ add r2, r8
+ mov r10, r2
+_080094BA:
+ movs r6, 0
+ ldrsh r2, [r4, r6]
+ movs r5, 0
+ movs r6, 0x4
+ ldrsh r0, [r4, r6]
+ adds r6, r1, 0x1
+ adds r7, r3, 0x1
+ cmp r5, r0
+ bge _080094FA
+ movs r0, 0xFC
+ lsls r0, 8
+ mov r12, r0
+ lsls r2, 1
+ lsls r1, 6
+ mov r3, r10
+ adds r0, r1, r3
+ adds r3, r2, r0
+ add r1, r8
+ adds r2, r1
+_080094E0:
+ ldrh r0, [r2]
+ mov r1, r12
+ ands r1, r0
+ strh r1, [r2]
+ mov r0, r9
+ strh r0, [r3]
+ adds r3, 0x2
+ adds r2, 0x2
+ adds r5, 0x1
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r5, r0
+ blt _080094E0
+_080094FA:
+ adds r1, r6, 0
+ adds r3, r7, 0
+ movs r2, 0x6
+ ldrsh r0, [r4, r2]
+ cmp r3, r0
+ blt _080094BA
+_08009506:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08009514: .4byte gUnknown_2027370
+_08009518: .4byte 0x0000f27a
+_0800951C: .4byte gUnknown_202B038
+ thumb_func_end sub_8009488
+
+ thumb_func_start nullsub_172
+nullsub_172:
+ bx lr
+ thumb_func_end nullsub_172
+
+ thumb_func_start sub_8009524
+sub_8009524:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080095BC
+ adds r4, r1, r0
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ subs r1, r0, 0x1
+ movs r3, 0
+ movs r2, 0x6
+ ldrsh r0, [r4, r2]
+ adds r0, 0x2
+ cmp r3, r0
+ bge _080095AE
+ ldr r6, _080095C0
+ mov r9, r6
+ ldr r0, _080095C4
+ mov r8, r0
+ movs r2, 0x80
+ lsls r2, 4
+ add r2, r8
+ mov r10, r2
+_0800955A:
+ movs r6, 0
+ ldrsh r0, [r4, r6]
+ subs r2, r0, 0x1
+ movs r5, 0
+ movs r6, 0x4
+ ldrsh r0, [r4, r6]
+ adds r0, 0x2
+ adds r6, r1, 0x1
+ adds r7, r3, 0x1
+ cmp r5, r0
+ bge _080095A0
+ movs r0, 0xFC
+ lsls r0, 8
+ mov r12, r0
+ lsls r2, 1
+ lsls r1, 6
+ mov r3, r10
+ adds r0, r1, r3
+ adds r3, r2, r0
+ add r1, r8
+ adds r2, r1
+_08009584:
+ ldrh r0, [r2]
+ mov r1, r12
+ ands r1, r0
+ strh r1, [r2]
+ mov r0, r9
+ strh r0, [r3]
+ adds r3, 0x2
+ adds r2, 0x2
+ adds r5, 0x1
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ adds r0, 0x2
+ cmp r5, r0
+ blt _08009584
+_080095A0:
+ adds r1, r6, 0
+ adds r3, r7, 0
+ movs r2, 0x6
+ ldrsh r0, [r4, r2]
+ adds r0, 0x2
+ cmp r3, r0
+ blt _0800955A
+_080095AE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080095BC: .4byte gUnknown_2027370
+_080095C0: .4byte 0x0000f27a
+_080095C4: .4byte gUnknown_202B038
+ thumb_func_end sub_8009524
+
+ thumb_func_start nullsub_173
+nullsub_173:
+ bx lr
+ thumb_func_end nullsub_173
+
+ thumb_func_start sub_80095CC
+sub_80095CC:
+ ldr r2, _080095D8
+ str r0, [r2]
+ ldr r0, _080095DC
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_080095D8: .4byte gUnknown_202B020
+_080095DC: .4byte gUnknown_202B024
+ thumb_func_end sub_80095CC
+
+ thumb_func_start nullsub_174
+nullsub_174:
+ bx lr
+ thumb_func_end nullsub_174
+
+ thumb_func_start sub_80095E4
+sub_80095E4:
+ push {lr}
+ cmp r1, 0
+ bne _080095EC
+ movs r1, 0xA
+_080095EC:
+ muls r1, r0
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _08009604
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _080095FE
+ adds r0, r1, 0x7
+_080095FE:
+ asrs r0, 3
+ adds r0, 0x1
+ b _0800960E
+_08009604:
+ adds r0, r1, 0
+ cmp r0, 0
+ bge _0800960C
+ adds r0, 0x7
+_0800960C:
+ asrs r0, 3
+_0800960E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80095E4
+
+ thumb_func_start sub_8009614
+sub_8009614:
+ push {lr}
+ muls r1, r0
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _0800962E
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _08009628
+ adds r0, r1, 0x7
+_08009628:
+ asrs r0, 3
+ adds r0, 0x1
+ b _08009638
+_0800962E:
+ adds r0, r1, 0
+ cmp r0, 0
+ bge _08009636
+ adds r0, 0x7
+_08009636:
+ asrs r0, 3
+_08009638:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8009614
+
+ thumb_func_start sub_800963C
+sub_800963C:
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ cmp r0, 0xF
+ bls _080096DA
+ adds r1, r0, 0
+ subs r1, 0x30
+ lsls r0, r1, 24
+ lsrs r0, 24
+ cmp r0, 0xF
+ bhi _08009658
+ adds r0, r1, 0
+ b _080096DA
+_08009658:
+ adds r0, r2, 0
+ subs r0, 0x43
+ cmp r0, 0x14
+ bhi _080096D8
+ lsls r0, 2
+ ldr r1, _0800966C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0800966C: .4byte _08009670
+ .align 2, 0
+_08009670:
+ .4byte _080096D0
+ .4byte _080096D0
+ .4byte _080096C8
+ .4byte _080096D8
+ .4byte _080096CC
+ .4byte _080096C4
+ .4byte _080096C4
+ .4byte _080096D8
+ .4byte _080096D8
+ .4byte _080096D8
+ .4byte _080096CC
+ .4byte _080096D0
+ .4byte _080096D8
+ .4byte _080096D8
+ .4byte _080096D8
+ .4byte _080096D8
+ .4byte _080096C8
+ .4byte _080096C8
+ .4byte _080096D8
+ .4byte _080096D8
+ .4byte _080096D4
+_080096C4:
+ movs r0, 0x4
+ b _080096DA
+_080096C8:
+ movs r0, 0xF
+ b _080096DA
+_080096CC:
+ movs r0, 0x5
+ b _080096DA
+_080096D0:
+ movs r0, 0x6
+ b _080096DA
+_080096D4:
+ movs r0, 0x2
+ b _080096DA
+_080096D8:
+ movs r0, 0x7
+_080096DA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800963C
+
+ thumb_func_start sub_80096E0
+sub_80096E0:
+ push {r4-r6,lr}
+ ldr r1, _0800978C
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r1, 0xC0
+ lsls r1, 19
+ movs r5, 0
+ ldr r3, _08009790
+ ldr r0, _08009794
+ movs r2, 0
+_080096F4:
+ stm r1!, {r2}
+ adds r5, 0x1
+ cmp r5, r3
+ bls _080096F4
+ movs r1, 0xA0
+ lsls r1, 19
+ movs r5, 0
+ movs r2, 0
+_08009704:
+ stm r1!, {r2}
+ adds r5, 0x1
+ cmp r5, 0xFF
+ bls _08009704
+ movs r1, 0xE0
+ lsls r1, 19
+ movs r5, 0
+ ldr r2, _08009798
+_08009714:
+ stm r1!, {r2}
+ adds r5, 0x1
+ cmp r5, 0xFF
+ bls _08009714
+ ldr r4, _0800979C
+ adds r1, r4, 0
+ bl sub_800A9EC
+ adds r6, r0, 0
+ ldr r1, [r6, 0x4]
+ ldm r1!, {r5}
+ ldr r0, _080097A0
+ lsls r2, r5, 5
+ bl CpuCopy
+ adds r0, r6, 0
+ bl sub_800AA14
+ ldr r0, _080097A4
+ adds r1, r4, 0
+ bl sub_800A9EC
+ adds r6, r0, 0
+ ldr r1, [r6, 0x4]
+ ldm r1!, {r5}
+ ldr r0, _080097A8
+ lsls r2, r5, 5
+ bl CpuCopy
+ adds r0, r6, 0
+ bl sub_800AA14
+ bl sub_80097B0
+ ldr r0, _080097AC
+ adds r1, r4, 0
+ bl sub_800A9EC
+ adds r6, r0, 0
+ ldr r4, [r6, 0x4]
+ movs r5, 0
+_08009766:
+ movs r1, 0xF8
+ lsls r1, 1
+ adds r0, r5, r1
+ adds r1, r4, 0
+ bl SetBGPaletteBufferColorArray
+ adds r4, 0x4
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _08009766
+ adds r0, r6, 0
+ bl sub_800AA14
+ bl TransferBGPaletteBuffer
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800978C: .4byte gUnknown_203B090
+_08009790: .4byte 0x00005fff
+_08009794: .4byte gUnknown_80B88B0
+_08009798: .4byte 0x00a000a0
+_0800979C: .4byte gUnknown_8300500
+_080097A0: .4byte 0x06004f00
+_080097A4: .4byte gUnknown_80B88B8
+_080097A8: .4byte 0x06017e00
+_080097AC: .4byte gUnknown_80B88C0
+ thumb_func_end sub_80096E0
+
+ thumb_func_start sub_80097B0
+sub_80097B0:
+ push {r4-r6,lr}
+ ldr r0, _080097F8
+ ldr r1, _080097FC
+ bl sub_800A9EC
+ adds r6, r0, 0
+ ldr r4, _08009800
+ ldr r1, [r6, 0x4]
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r4, 0
+ bl CpuCopy
+ bl sub_80063B0
+ adds r5, r4, 0
+ adds r5, 0x40
+ cmp r0, 0x1
+ bne _080097D8
+ adds r5, r4, 0
+_080097D8:
+ movs r4, 0
+_080097DA:
+ adds r0, r4, 0
+ adds r0, 0xF0
+ adds r1, r5, 0
+ bl SetBGPaletteBufferColorArray
+ adds r5, 0x4
+ adds r4, 0x1
+ cmp r4, 0xF
+ ble _080097DA
+ adds r0, r6, 0
+ bl sub_800AA14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080097F8: .4byte gUnknown_80B88CC
+_080097FC: .4byte gUnknown_8300500
+_08009800: .4byte gUnknown_202D038
+ thumb_func_end sub_80097B0
+
+ thumb_func_start sub_8009804
+sub_8009804:
+ push {lr}
+ movs r1, 0xC0
+ lsls r1, 19
+ movs r0, 0
+ ldr r3, _0800987C
+ movs r2, 0
+_08009810:
+ stm r1!, {r2}
+ adds r0, 0x1
+ cmp r0, r3
+ bls _08009810
+ ldr r1, _08009880
+ movs r0, 0
+ ldr r3, _08009884
+ movs r2, 0
+_08009820:
+ stm r1!, {r2}
+ adds r0, 0x1
+ cmp r0, r3
+ bls _08009820
+ ldr r1, _08009888
+ movs r0, 0
+ ldr r3, _0800988C
+ movs r2, 0
+_08009830:
+ stm r1!, {r2}
+ adds r0, 0x1
+ cmp r0, r3
+ bls _08009830
+ ldr r1, _08009890
+ movs r0, 0
+ ldr r3, _08009894
+ movs r2, 0
+_08009840:
+ stm r1!, {r2}
+ adds r0, 0x1
+ cmp r0, r3
+ bls _08009840
+ movs r1, 0xA0
+ lsls r1, 19
+ movs r0, 0
+ movs r2, 0
+_08009850:
+ stm r1!, {r2}
+ adds r0, 0x1
+ cmp r0, 0x77
+ bls _08009850
+ ldr r1, _08009898
+ movs r0, 0
+ movs r2, 0
+_0800985E:
+ stm r1!, {r2}
+ adds r0, 0x1
+ cmp r0, 0x77
+ bls _0800985E
+ movs r1, 0xE0
+ lsls r1, 19
+ movs r0, 0
+ ldr r2, _0800989C
+_0800986E:
+ stm r1!, {r2}
+ adds r0, 0x1
+ cmp r0, 0xFF
+ bls _0800986E
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800987C: .4byte 0x000013bf
+_08009880: .4byte 0x06007000
+_08009884: .4byte 0x000003ff
+_08009888: .4byte 0x06008000
+_0800988C: .4byte 0x00001fff
+_08009890: .4byte 0x06010000
+_08009894: .4byte 0x00001f7f
+_08009898: .4byte 0x05000200
+_0800989C: .4byte 0x00a000a0
+ thumb_func_end sub_8009804
+
+ thumb_func_start sub_80098A0
+sub_80098A0:
+ ldr r0, _080098B4
+ movs r1, 0
+ str r1, [r0]
+ ldr r0, _080098B8
+ strb r1, [r0]
+ strb r1, [r0, 0x1]
+ strb r1, [r0, 0x2]
+ strb r1, [r0, 0x3]
+ bx lr
+ .align 2, 0
+_080098B4: .4byte gUnknown_202D23C
+_080098B8: .4byte gUnknown_202D238
+ thumb_func_end sub_80098A0
+
+ thumb_func_start sub_80098BC
+sub_80098BC:
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ ldr r7, _080098F0
+ ldr r3, [r7]
+ cmp r3, 0x7
+ bgt _080098E8
+ ldr r2, _080098F4
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 2
+ adds r0, r1, r2
+ str r4, [r0]
+ adds r0, r2, 0x4
+ adds r0, r1, r0
+ str r5, [r0]
+ adds r2, 0x8
+ adds r1, r2
+ str r6, [r1]
+ adds r0, r3, 0x1
+ str r0, [r7]
+_080098E8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080098F0: .4byte gUnknown_202D23C
+_080098F4: .4byte gUnknown_202D240
+ thumb_func_end sub_80098BC
+
+ thumb_func_start sub_80098F8
+sub_80098F8:
+ ldr r1, _08009904
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_08009904: .4byte gUnknown_202D238
+ thumb_func_end sub_80098F8
+
+ thumb_func_start sub_8009908
+sub_8009908:
+ push {r4-r7,lr}
+ movs r5, 0
+ ldr r0, _08009994
+ ldr r0, [r0]
+ cmp r5, r0
+ bge _08009936
+ ldr r4, _08009998
+ adds r7, r4, 0
+ movs r6, 0
+_0800991A:
+ ldr r0, [r4]
+ adds r1, r7, 0x4
+ adds r1, r6, r1
+ ldr r1, [r1]
+ ldr r2, [r4, 0x8]
+ bl CpuCopy
+ adds r4, 0xC
+ adds r6, 0xC
+ adds r5, 0x1
+ ldr r0, _08009994
+ ldr r0, [r0]
+ cmp r5, r0
+ blt _0800991A
+_08009936:
+ ldr r0, _08009994
+ movs r5, 0
+ str r5, [r0]
+ ldr r4, _0800999C
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08009952
+ strb r5, [r4]
+ ldr r0, _080099A0
+ ldr r1, _080099A4
+ movs r2, 0x80
+ lsls r2, 4
+ bl CpuCopy
+_08009952:
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ beq _08009966
+ strb r5, [r4, 0x1]
+ ldr r0, _080099A8
+ ldr r1, _080099AC
+ movs r2, 0x80
+ lsls r2, 4
+ bl CpuCopy
+_08009966:
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0
+ beq _0800997A
+ strb r5, [r4, 0x2]
+ ldr r0, _080099B0
+ ldr r1, _080099B4
+ movs r2, 0x80
+ lsls r2, 4
+ bl CpuCopy
+_0800997A:
+ ldrb r0, [r4, 0x3]
+ cmp r0, 0
+ beq _0800998E
+ strb r5, [r4, 0x3]
+ ldr r0, _080099B8
+ ldr r1, _080099BC
+ movs r2, 0x80
+ lsls r2, 4
+ bl CpuCopy
+_0800998E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08009994: .4byte gUnknown_202D23C
+_08009998: .4byte gUnknown_202D240
+_0800999C: .4byte gUnknown_202D238
+_080099A0: .4byte 0x06006000
+_080099A4: .4byte gUnknown_202B038
+_080099A8: .4byte 0x06006800
+_080099AC: .4byte gUnknown_202B838
+_080099B0: .4byte 0x06007000
+_080099B4: .4byte gUnknown_202C038
+_080099B8: .4byte 0x06007800
+_080099BC: .4byte gUnknown_202C838
+ thumb_func_end sub_8009908
+
+ thumb_func_start sub_80099C0
+sub_80099C0:
+ push {r4,r5,lr}
+ ldr r0, _080099E4
+ ldr r4, _080099E8
+ movs r5, 0x80
+ lsls r5, 4
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl CpuCopy
+ ldr r0, _080099EC
+ adds r4, r5
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl CpuCopy
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080099E4: .4byte 0x06006000
+_080099E8: .4byte gUnknown_202B038
+_080099EC: .4byte 0x06006800
+ thumb_func_end sub_80099C0
+
+ thumb_func_start sub_80099F0
+sub_80099F0:
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _08009A0C
+ movs r1, 0x7
+ movs r3, 0xE2
+ lsls r3, 1
+ adds r0, r3
+_080099FE:
+ str r2, [r0]
+ subs r0, 0x40
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080099FE
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08009A0C: .4byte gUnknown_202D038
+ thumb_func_end sub_80099F0
+
+ thumb_func_start sub_8009A10
+sub_8009A10:
+ push {lr}
+ ldr r0, [r0, 0x4]
+ bl sub_8009A1C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8009A10
+
+ thumb_func_start sub_8009A1C
+sub_8009A1C:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r0, _08009A30
+ str r3, [r0]
+ ldr r3, [r6, 0xC]
+ movs r0, 0xC0
+ lsls r0, 19
+ adds r2, r0
+ movs r5, 0
+ b _08009A56
+ .align 2, 0
+_08009A30: .4byte gUnknown_202D2A0
+_08009A34:
+ ldm r3!, {r0}
+ stm r2!, {r0}
+ ldm r3!, {r0}
+ stm r2!, {r0}
+ ldm r3!, {r0}
+ stm r2!, {r0}
+ ldm r3!, {r0}
+ stm r2!, {r0}
+ ldm r3!, {r0}
+ stm r2!, {r0}
+ ldm r3!, {r0}
+ stm r2!, {r0}
+ ldm r3!, {r0}
+ stm r2!, {r0}
+ ldm r3!, {r0}
+ stm r2!, {r0}
+ adds r5, 0x1
+_08009A56:
+ ldr r0, [r6, 0x8]
+ cmp r5, r0
+ ble _08009A34
+ movs r5, 0
+ lsls r4, r1, 6
+_08009A60:
+ adds r0, r5, 0
+ adds r0, 0xE0
+ ldr r1, [r6, 0x10]
+ adds r1, r4
+ bl SetBGPaletteBufferColorArray
+ adds r4, 0x4
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _08009A60
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8009A1C
+
+ thumb_func_start sub_8009A7C
+sub_8009A7C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ str r0, [sp]
+ adds r5, r1, 0
+ str r2, [sp, 0x4]
+ str r3, [sp, 0x8]
+ ldr r0, [sp, 0x38]
+ ldr r3, [sp, 0x40]
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08009AB4
+ ldr r1, [r0]
+ movs r2, 0
+ str r2, [sp, 0x10]
+ cmp r1, 0
+ bne _08009AA8
+ movs r7, 0x1
+ str r7, [sp, 0x10]
+_08009AA8:
+ ldr r1, [sp]
+ ldr r0, [r1]
+ cmp r5, r0
+ blt _08009AB8
+ movs r0, 0
+ b _08009BCE
+ .align 2, 0
+_08009AB4: .4byte gUnknown_202D2A0
+_08009AB8:
+ lsls r5, 2
+ mov r8, r5
+ cmp r4, 0
+ beq _08009AFA
+ movs r0, 0
+ ldr r2, _08009B74
+ mov r10, r2
+ ldr r4, _08009B78
+ mov r9, r4
+ ldr r1, [sp, 0x10]
+ lsls r7, r1, 1
+_08009ACE:
+ ldr r2, [sp, 0x10]
+ adds r4, r0, 0x1
+ mov r12, r4
+ cmp r2, 0x1D
+ bgt _08009AF4
+ mov r6, r10
+ mov r5, r9
+ movs r4, 0
+ lsls r0, 6
+ adds r1, r7, r0
+_08009AE2:
+ ldr r0, [r5]
+ lsls r0, 11
+ adds r0, r1, r0
+ adds r0, r6
+ strh r4, [r0]
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, 0x1D
+ ble _08009AE2
+_08009AF4:
+ mov r0, r12
+ cmp r0, 0x13
+ ble _08009ACE
+_08009AFA:
+ ldr r7, [sp]
+ ldr r0, [r7, 0x4]
+ add r0, r8
+ ldr r5, [r0]
+ ldrh r0, [r5, 0x4]
+ mov r9, r0
+ ldrh r1, [r5, 0x6]
+ str r1, [sp, 0xC]
+ ldr r2, [sp, 0x3C]
+ cmp r2, 0
+ beq _08009B14
+ ldrh r0, [r5, 0x8]
+ str r0, [r2]
+_08009B14:
+ cmp r3, 0
+ beq _08009B28
+ ldrh r0, [r5, 0xA]
+ strh r0, [r3]
+ ldrh r0, [r5, 0xC]
+ strh r0, [r3, 0x2]
+ ldrh r0, [r5, 0xE]
+ strh r0, [r3, 0x4]
+ ldrh r0, [r5, 0x10]
+ strh r0, [r3, 0x6]
+_08009B28:
+ adds r5, 0x14
+ ldr r4, [sp, 0x8]
+ str r4, [sp, 0x14]
+ movs r6, 0
+ movs r0, 0
+ ldr r7, [sp, 0xC]
+ cmp r0, r7
+ bge _08009BC4
+ cmp r4, 0x13
+ bgt _08009BC4
+_08009B3C:
+ ldr r3, [sp, 0x4]
+ adds r0, 0x1
+ mov r12, r0
+ ldr r0, [sp, 0x14]
+ adds r0, 0x1
+ mov r8, r0
+ mov r1, r9
+ cmp r1, 0
+ beq _08009BB4
+ ldr r2, _08009B74
+ mov r10, r2
+ mov r2, r9
+_08009B54:
+ cmp r6, 0
+ bne _08009B80
+ ldrh r1, [r5]
+ adds r5, 0x2
+ adds r0, r1, 0
+ movs r4, 0xF0
+ lsls r4, 8
+ ands r0, r4
+ cmp r0, 0
+ bne _08009B6E
+ ldr r6, _08009B7C
+ ands r6, r1
+ movs r1, 0
+_08009B6E:
+ adds r4, r1, 0
+ b _08009B82
+ .align 2, 0
+_08009B74: .4byte gUnknown_202B038
+_08009B78: .4byte gUnknown_202D2A0
+_08009B7C: .4byte 0x000003ff
+_08009B80:
+ movs r4, 0
+_08009B82:
+ cmp r6, 0
+ beq _08009B88
+ subs r6, 0x1
+_08009B88:
+ ldr r7, [sp, 0x10]
+ cmp r3, r7
+ blt _08009BAC
+ cmp r3, 0x1D
+ bgt _08009BAC
+ ldr r0, [sp, 0x14]
+ cmp r0, 0
+ blt _08009BAC
+ lsls r0, r3, 1
+ ldr r7, [sp, 0x14]
+ lsls r1, r7, 6
+ adds r0, r1
+ ldr r7, _08009BE0
+ ldr r1, [r7]
+ lsls r1, 11
+ adds r0, r1
+ add r0, r10
+ strh r4, [r0]
+_08009BAC:
+ subs r2, 0x1
+ adds r3, 0x1
+ cmp r2, 0
+ bne _08009B54
+_08009BB4:
+ mov r0, r12
+ mov r1, r8
+ str r1, [sp, 0x14]
+ ldr r2, [sp, 0xC]
+ cmp r0, r2
+ bge _08009BC4
+ cmp r1, 0x13
+ ble _08009B3C
+_08009BC4:
+ ldr r4, _08009BE0
+ ldr r0, [r4]
+ bl sub_80098F8
+ movs r0, 0x1
+_08009BCE:
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08009BE0: .4byte gUnknown_202D2A0
+ thumb_func_end sub_8009A7C
+
+ thumb_func_start sub_8009BE4
+sub_8009BE4:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r0, 0x20
+ mov r12, r0
+ ldr r0, _08009C54
+ ldr r1, [r0]
+ movs r2, 0
+ mov r10, r2
+ mov r9, r0
+ cmp r1, 0
+ bne _08009C04
+ movs r7, 0x1
+ mov r10, r7
+_08009C04:
+ movs r0, 0
+ mov r1, r10
+ lsls r1, 1
+ mov r8, r1
+_08009C0C:
+ mov r1, r10
+ adds r3, r0, 0x1
+ cmp r1, r12
+ bge _08009C36
+ ldr r6, _08009C58
+ ldr r5, _08009C54
+ movs r4, 0
+ lsls r0, 6
+ mov r7, r8
+ adds r2, r7, r0
+ mov r0, r12
+ subs r1, r0, r1
+_08009C24:
+ ldr r0, [r5]
+ lsls r0, 11
+ adds r0, r2, r0
+ adds r0, r6
+ strh r4, [r0]
+ adds r2, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bne _08009C24
+_08009C36:
+ adds r0, r3, 0
+ cmp r0, 0x1F
+ ble _08009C0C
+ mov r1, r9
+ ldr r0, [r1]
+ bl sub_80098F8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08009C54: .4byte gUnknown_202D2A0
+_08009C58: .4byte gUnknown_202B038
+ thumb_func_end sub_8009BE4
+
+ thumb_func_start sub_8009C5C
+sub_8009C5C:
+ push {lr}
+ adds r1, r0, 0
+ cmp r1, 0xFF
+ ble _08009C6C
+ movs r1, 0x3
+ bl __modsi3
+ b _08009C72
+_08009C6C:
+ ldr r0, _08009C78
+ adds r0, r1, r0
+ ldrb r0, [r0]
+_08009C72:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08009C78: .4byte gUnknown_80B88E4
+ thumb_func_end sub_8009C5C
+
+ thumb_func_start sub_8009C7C
+sub_8009C7C:
+ push {lr}
+ adds r2, r0, 0
+ movs r3, 0xC0
+ lsls r3, 4
+ adds r1, r2, 0
+ ands r1, r3
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ beq _08009CB8
+ cmp r1, r0
+ bgt _08009C9A
+ cmp r1, 0
+ beq _08009CA8
+ b _08009CFC
+_08009C9A:
+ movs r0, 0x80
+ lsls r0, 4
+ cmp r1, r0
+ beq _08009CD0
+ cmp r1, r3
+ beq _08009CE0
+ b _08009CFC
+_08009CA8:
+ ldr r0, _08009CB0
+ ldr r1, _08009CB4
+ ands r1, r2
+ b _08009CBE
+ .align 2, 0
+_08009CB0: .4byte gUnknown_80B8AE4
+_08009CB4: .4byte 0x000003ff
+_08009CB8:
+ ldr r0, _08009CC8
+ ldr r1, _08009CCC
+ bics r1, r2
+_08009CBE:
+ lsls r1, 1
+ adds r1, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ b _08009CFE
+ .align 2, 0
+_08009CC8: .4byte gUnknown_80B8AE4
+_08009CCC: .4byte 0x000003ff
+_08009CD0:
+ ldr r0, _08009CD8
+ ldr r1, _08009CDC
+ ands r1, r2
+ b _08009CE6
+ .align 2, 0
+_08009CD8: .4byte gUnknown_80B8AE4
+_08009CDC: .4byte 0x000003ff
+_08009CE0:
+ ldr r0, _08009CF4
+ ldr r1, _08009CF8
+ bics r1, r2
+_08009CE6:
+ lsls r1, 1
+ adds r1, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ b _08009CFE
+ .align 2, 0
+_08009CF4: .4byte gUnknown_80B8AE4
+_08009CF8: .4byte 0x000003ff
+_08009CFC:
+ movs r0, 0
+_08009CFE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8009C7C
+
+ thumb_func_start sub_8009D04
+sub_8009D04:
+ push {lr}
+ adds r2, r0, 0
+ movs r3, 0xC0
+ lsls r3, 4
+ adds r1, r2, 0
+ ands r1, r3
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ beq _08009D40
+ cmp r1, r0
+ bgt _08009D22
+ cmp r1, 0
+ beq _08009D30
+ b _08009D84
+_08009D22:
+ movs r0, 0x80
+ lsls r0, 4
+ cmp r1, r0
+ beq _08009D50
+ cmp r1, r3
+ beq _08009D6C
+ b _08009D84
+_08009D30:
+ ldr r0, _08009D38
+ ldr r1, _08009D3C
+ bics r1, r2
+ b _08009D72
+ .align 2, 0
+_08009D38: .4byte gUnknown_80B8AE4
+_08009D3C: .4byte 0x000003ff
+_08009D40:
+ ldr r0, _08009D48
+ ldr r1, _08009D4C
+ ands r1, r2
+ b _08009D56
+ .align 2, 0
+_08009D48: .4byte gUnknown_80B8AE4
+_08009D4C: .4byte 0x000003ff
+_08009D50:
+ ldr r0, _08009D64
+ ldr r1, _08009D68
+ bics r1, r2
+_08009D56:
+ lsls r1, 1
+ adds r1, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ b _08009D86
+ .align 2, 0
+_08009D64: .4byte gUnknown_80B8AE4
+_08009D68: .4byte 0x000003ff
+_08009D6C:
+ ldr r0, _08009D7C
+ ldr r1, _08009D80
+ ands r1, r2
+_08009D72:
+ lsls r1, 1
+ adds r1, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ b _08009D86
+ .align 2, 0
+_08009D7C: .4byte gUnknown_80B8AE4
+_08009D80: .4byte 0x000003ff
+_08009D84:
+ movs r0, 0
+_08009D86:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8009D04
+
+ thumb_func_start sub_8009D8C
+sub_8009D8C:
+ push {lr}
+ cmp r0, r2
+ bcc _08009D9A
+ cmp r0, r2
+ bhi _08009D9E
+ cmp r1, r3
+ bcs _08009D9E
+_08009D9A:
+ movs r0, 0x1
+ b _08009DA0
+_08009D9E:
+ movs r0, 0
+_08009DA0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8009D8C
+
+ thumb_func_start sub_8009DA4
+sub_8009DA4:
+ push {r4,r5,lr}
+ lsrs r2, r0, 31
+ adds r5, r2, 0
+ lsrs r3, r1, 31
+ adds r4, r3, 0
+ cmp r0, 0
+ beq _08009DB6
+ cmp r1, 0
+ bne _08009DBA
+_08009DB6:
+ movs r0, 0
+ b _08009DD0
+_08009DBA:
+ cmp r2, 0
+ beq _08009DC0
+ negs r0, r0
+_08009DC0:
+ cmp r3, 0
+ beq _08009DC6
+ negs r1, r1
+_08009DC6:
+ bl sub_8009E14
+ cmp r5, r4
+ beq _08009DD0
+ negs r0, r0
+_08009DD0:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8009DA4
+
+ thumb_func_start sub_8009DD8
+sub_8009DD8:
+ push {r4,r5,lr}
+ lsrs r2, r0, 31
+ adds r5, r2, 0
+ lsrs r3, r1, 31
+ adds r4, r3, 0
+ cmp r1, 0
+ bne _08009DF0
+ ldr r0, _08009DEC
+ b _08009E0E
+ .align 2, 0
+_08009DEC: .4byte 0x7fffffff
+_08009DF0:
+ cmp r0, 0
+ bne _08009DF8
+ movs r0, 0
+ b _08009E0E
+_08009DF8:
+ cmp r2, 0
+ beq _08009DFE
+ negs r0, r0
+_08009DFE:
+ cmp r3, 0
+ beq _08009E04
+ negs r1, r1
+_08009E04:
+ bl sub_8009EA0
+ cmp r5, r4
+ beq _08009E0E
+ negs r0, r0
+_08009E0E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8009DD8
+
+ thumb_func_start sub_8009E14
+sub_8009E14:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ cmp r0, 0
+ beq _08009E24
+ cmp r1, 0
+ bne _08009E28
+_08009E24:
+ movs r0, 0
+ b _08009E94
+_08009E28:
+ movs r5, 0
+ adds r3, r0, 0
+ mov r12, r5
+ movs r6, 0
+ movs r4, 0
+ movs r0, 0x80
+ lsls r0, 24
+ mov r8, r0
+ movs r7, 0x3F
+ mov r9, r7
+_08009E3C:
+ adds r2, r4, 0
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08009E50
+ adds r4, r3
+ adds r6, r5
+ cmp r2, r4
+ bls _08009E50
+ adds r6, 0x1
+_08009E50:
+ lsrs r1, 1
+ movs r2, 0x1
+ mov r0, r12
+ ands r0, r2
+ cmp r0, 0
+ beq _08009E60
+ mov r0, r8
+ orrs r1, r0
+_08009E60:
+ mov r7, r12
+ lsrs r7, 1
+ mov r12, r7
+ lsls r5, 1
+ adds r0, r3, 0
+ mov r7, r8
+ ands r0, r7
+ cmp r0, 0
+ beq _08009E74
+ orrs r5, r2
+_08009E74:
+ lsls r3, 1
+ movs r0, 0x1
+ negs r0, r0
+ add r9, r0
+ mov r7, r9
+ cmp r7, 0
+ bge _08009E3C
+ lsrs r1, r4, 7
+ ands r1, r2
+ lsrs r4, 8
+ lsls r0, r6, 24
+ orrs r4, r0
+ cmp r1, 0
+ beq _08009E92
+ adds r4, 0x1
+_08009E92:
+ adds r0, r4, 0
+_08009E94:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8009E14
+
+ thumb_func_start sub_8009EA0
+sub_8009EA0:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ cmp r1, 0
+ bne _08009EB8
+ ldr r0, _08009EB4
+ b _08009F58
+ .align 2, 0
+_08009EB4: .4byte 0x7fffffff
+_08009EB8:
+ cmp r0, 0
+ bne _08009EC0
+ movs r0, 0
+ b _08009F58
+_08009EC0:
+ lsrs r7, r0, 24
+ lsls r6, r0, 8
+ mov r10, r1
+ movs r0, 0
+ mov r9, r0
+ movs r5, 0
+ movs r4, 0
+ movs r1, 0x1
+ mov r8, r1
+ movs r2, 0x3F
+ str r2, [sp]
+_08009ED6:
+ lsls r5, 1
+ adds r0, r4, 0
+ movs r1, 0x80
+ lsls r1, 24
+ ands r0, r1
+ cmp r0, 0
+ beq _08009EE8
+ mov r2, r8
+ orrs r5, r2
+_08009EE8:
+ movs r1, 0x2
+ negs r1, r1
+ lsls r4, 1
+ adds r0, r7, 0
+ movs r2, 0x80
+ lsls r2, 24
+ ands r0, r2
+ cmp r0, 0
+ beq _08009EFE
+ mov r0, r8
+ orrs r4, r0
+_08009EFE:
+ lsls r7, 1
+ adds r0, r6, 0
+ movs r2, 0x80
+ lsls r2, 24
+ ands r0, r2
+ cmp r0, 0
+ beq _08009F10
+ mov r0, r8
+ orrs r7, r0
+_08009F10:
+ lsls r6, 1
+ ands r6, r1
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0
+ mov r3, r10
+ bl sub_8009D8C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08009F3A
+ adds r0, r4, 0
+ movs r1, 0x1
+ mov r2, r10
+ subs r4, r2
+ movs r2, 0
+ subs r5, r2
+ cmp r0, r4
+ bcs _08009F3C
+ subs r5, 0x1
+ b _08009F3C
+_08009F3A:
+ movs r1, 0
+_08009F3C:
+ mov r0, r9
+ lsls r0, 1
+ mov r9, r0
+ cmp r1, 0
+ beq _08009F4C
+ mov r1, r8
+ orrs r0, r1
+ mov r9, r0
+_08009F4C:
+ ldr r2, [sp]
+ subs r2, 0x1
+ str r2, [sp]
+ cmp r2, 0
+ bge _08009ED6
+ mov r0, r9
+_08009F58:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8009EA0
+
+ thumb_func_start sub_8009F68
+sub_8009F68:
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ adds r4, r6, 0
+ cmp r6, 0
+ bge _08009F76
+ negs r4, r6
+_08009F76:
+ movs r7, 0x80
+ lsls r7, 1
+ cmp r4, 0
+ beq _08009FA0
+_08009F7E:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _08009F90
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl sub_8009DA4
+ adds r7, r0, 0
+_08009F90:
+ adds r0, r5, 0
+ adds r1, r5, 0
+ bl sub_8009DA4
+ adds r5, r0, 0
+ asrs r4, 1
+ cmp r4, 0
+ bne _08009F7E
+_08009FA0:
+ cmp r6, 0
+ bge _08009FB0
+ movs r0, 0x80
+ lsls r0, 1
+ adds r1, r7, 0
+ bl sub_8009DD8
+ b _08009FB2
+_08009FB0:
+ adds r0, r7, 0
+_08009FB2:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8009F68
+
+ thumb_func_start sub_8009FB8
+sub_8009FB8:
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ cmp r5, 0
+ bge _08009FC4
+ negs r5, r5
+_08009FC4:
+ cmp r6, 0
+ bge _08009FCA
+ negs r6, r6
+_08009FCA:
+ cmp r5, r6
+ bge _08009FD4
+ adds r4, r5, 0
+ adds r5, r6, 0
+ adds r6, r4, 0
+_08009FD4:
+ cmp r6, 0
+ beq _0800A016
+ movs r7, 0x2
+_08009FDA:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_8009DD8
+ adds r4, r0, 0
+ adds r1, r4, 0
+ bl sub_8009DA4
+ adds r4, r0, 0
+ movs r0, 0x80
+ lsls r0, 3
+ adds r1, r4, r0
+ adds r0, r4, 0
+ bl sub_8009DD8
+ adds r4, r0, 0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8009DA4
+ lsls r0, 1
+ adds r5, r0
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_8009DA4
+ adds r6, r0, 0
+ subs r7, 0x1
+ cmp r7, 0
+ bge _08009FDA
+_0800A016:
+ adds r0, r5, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8009FB8
+
+ thumb_func_start sub_800A020
+sub_800A020:
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r4, _0800A044
+ lsrs r2, r1, 16
+ str r2, [r3]
+ lsls r0, r1, 16
+ str r0, [r3, 0x4]
+ movs r0, 0x80
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _0800A03C
+ orrs r2, r4
+ str r2, [r3]
+_0800A03C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800A044: .4byte 0xffff0000
+ thumb_func_end sub_800A020
+
+ thumb_func_start sub_800A048
+sub_800A048:
+ push {lr}
+ ldrh r1, [r0]
+ lsls r2, r1, 16
+ ldr r0, [r0, 0x4]
+ lsrs r1, r0, 16
+ orrs r2, r1
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _0800A060
+ adds r2, 0x1
+_0800A060:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800A048
+
+ thumb_func_start sub_800A068
+sub_800A068:
+ push {lr}
+ ldrb r1, [r0]
+ lsls r2, r1, 24
+ ldr r0, [r0, 0x4]
+ lsrs r1, r0, 8
+ orrs r2, r1
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _0800A080
+ adds r2, 0x1
+_0800A080:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800A068
+
+ thumb_func_start sub_800A088
+sub_800A088:
+ push {lr}
+ adds r2, r0, 0
+ lsls r0, r1, 8
+ str r0, [r2, 0x4]
+ asrs r1, 24
+ str r1, [r2]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0800A0A4
+ movs r0, 0x80
+ negs r0, r0
+ orrs r1, r0
+ b _0800A0A8
+_0800A0A4:
+ movs r0, 0x7F
+ ands r1, r0
+_0800A0A8:
+ str r1, [r2]
+ pop {r0}
+ bx r0
+ thumb_func_end sub_800A088
+
+ thumb_func_start sub_800A0B0
+sub_800A0B0:
+ push {lr}
+ ldr r2, [r0, 0x4]
+ ldr r3, [r0]
+ cmp r2, 0
+ bne _0800A0C2
+ cmp r3, 0
+ bne _0800A0C2
+ movs r0, 0
+ b _0800A254
+_0800A0C2:
+ cmp r2, 0
+ ble _0800A18C
+ cmp r3, 0
+ ble _0800A124
+ cmp r2, r3
+ bge _0800A0F0
+ asrs r1, r3, 8
+ cmp r1, 0
+ beq _0800A0FE
+ adds r0, r2, 0
+ bl __divsi3
+ adds r2, r0, 0
+ cmp r2, 0xFF
+ ble _0800A0E2
+ movs r2, 0xFF
+_0800A0E2:
+ ldr r0, _0800A0EC
+ lsls r1, r2, 2
+ adds r1, r0
+ ldr r0, [r1]
+ b _0800A252
+ .align 2, 0
+_0800A0EC: .4byte gUnknown_80B92E4
+_0800A0F0:
+ adds r1, r2, 0
+ cmp r2, 0
+ bge _0800A0F8
+ adds r1, 0xFF
+_0800A0F8:
+ asrs r1, 8
+ cmp r1, 0
+ bne _0800A104
+_0800A0FE:
+ movs r0, 0x80
+ lsls r0, 2
+ b _0800A254
+_0800A104:
+ adds r0, r3, 0
+ bl __divsi3
+ adds r2, r0, 0
+ cmp r2, 0xFF
+ ble _0800A112
+ movs r2, 0xFF
+_0800A112:
+ ldr r1, _0800A120
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0x40
+ b _0800A250
+ .align 2, 0
+_0800A120: .4byte gUnknown_80B92E4
+_0800A124:
+ negs r3, r3
+ cmp r2, r3
+ bge _0800A158
+ adds r1, r3, 0
+ cmp r3, 0
+ bge _0800A132
+ adds r1, 0xFF
+_0800A132:
+ asrs r1, 8
+ cmp r1, 0
+ beq _0800A166
+ adds r0, r2, 0
+ bl __divsi3
+ adds r2, r0, 0
+ cmp r2, 0xFF
+ ble _0800A146
+ movs r2, 0xFF
+_0800A146:
+ ldr r1, _0800A154
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0x80
+ b _0800A250
+ .align 2, 0
+_0800A154: .4byte gUnknown_80B92E4
+_0800A158:
+ adds r1, r2, 0
+ cmp r2, 0
+ bge _0800A160
+ adds r1, 0xFF
+_0800A160:
+ asrs r1, 8
+ cmp r1, 0
+ bne _0800A16C
+_0800A166:
+ movs r0, 0xC0
+ lsls r0, 3
+ b _0800A254
+_0800A16C:
+ adds r0, r3, 0
+ bl __divsi3
+ adds r2, r0, 0
+ cmp r2, 0xFF
+ ble _0800A17A
+ movs r2, 0xFF
+_0800A17A:
+ ldr r0, _0800A188
+ lsls r1, r2, 2
+ adds r1, r0
+ ldr r0, [r1]
+ adds r0, 0x40
+ b _0800A252
+ .align 2, 0
+_0800A188: .4byte gUnknown_80B92E4
+_0800A18C:
+ negs r2, r2
+ cmp r3, 0
+ ble _0800A1F0
+ cmp r2, r3
+ bge _0800A1BC
+ asrs r1, r3, 8
+ cmp r1, 0
+ beq _0800A1CA
+ adds r0, r2, 0
+ bl __divsi3
+ adds r2, r0, 0
+ cmp r2, 0xFF
+ ble _0800A1AA
+ movs r2, 0xFF
+_0800A1AA:
+ ldr r1, _0800A1B8
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 1
+ b _0800A250
+ .align 2, 0
+_0800A1B8: .4byte gUnknown_80B92E4
+_0800A1BC:
+ adds r1, r2, 0
+ cmp r2, 0
+ bge _0800A1C4
+ adds r1, 0xFF
+_0800A1C4:
+ asrs r1, 8
+ cmp r1, 0
+ bne _0800A1D0
+_0800A1CA:
+ movs r0, 0xE0
+ lsls r0, 4
+ b _0800A254
+_0800A1D0:
+ adds r0, r3, 0
+ bl __divsi3
+ adds r2, r0, 0
+ cmp r2, 0xFF
+ ble _0800A1DE
+ movs r2, 0xFF
+_0800A1DE:
+ ldr r0, _0800A1EC
+ lsls r1, r2, 2
+ adds r1, r0
+ ldr r0, [r1]
+ adds r0, 0xC0
+ b _0800A252
+ .align 2, 0
+_0800A1EC: .4byte gUnknown_80B92E4
+_0800A1F0:
+ negs r3, r3
+ cmp r2, r3
+ bge _0800A224
+ adds r1, r3, 0
+ cmp r3, 0
+ bge _0800A1FE
+ adds r1, 0xFF
+_0800A1FE:
+ asrs r1, 8
+ cmp r1, 0
+ beq _0800A232
+ adds r0, r2, 0
+ bl __divsi3
+ adds r2, r0, 0
+ cmp r2, 0xFF
+ ble _0800A212
+ movs r2, 0xFF
+_0800A212:
+ ldr r0, _0800A220
+ lsls r1, r2, 2
+ adds r1, r0
+ ldr r0, [r1]
+ adds r0, 0x80
+ b _0800A252
+ .align 2, 0
+_0800A220: .4byte gUnknown_80B92E4
+_0800A224:
+ adds r0, r2, 0
+ cmp r0, 0
+ bge _0800A22C
+ adds r0, 0xFF
+_0800A22C:
+ asrs r1, r0, 8
+ cmp r1, 0
+ bne _0800A238
+_0800A232:
+ movs r0, 0xA0
+ lsls r0, 4
+ b _0800A254
+_0800A238:
+ adds r0, r3, 0
+ bl __divsi3
+ adds r2, r0, 0
+ cmp r2, 0xFF
+ ble _0800A246
+ movs r2, 0xFF
+_0800A246:
+ ldr r1, _0800A258
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0xC0
+_0800A250:
+ subs r0, r1
+_0800A252:
+ lsls r0, 4
+_0800A254:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0800A258: .4byte gUnknown_80B92E4
+ thumb_func_end sub_800A0B0
+
+ thumb_func_start sub_800A25C
+sub_800A25C:
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, [r1]
+ mvns r2, r0
+ str r2, [r1]
+ ldr r0, [r1, 0x4]
+ mvns r0, r0
+ adds r0, 0x1
+ str r0, [r1, 0x4]
+ cmp r0, 0
+ bne _0800A276
+ adds r0, r2, 0x1
+ str r0, [r1]
+_0800A276:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_800A25C
+
+ thumb_func_start sub_800A27C
+sub_800A27C:
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, [r1]
+ cmp r0, 0
+ bge _0800A29A
+ mvns r2, r0
+ str r2, [r1]
+ ldr r0, [r1, 0x4]
+ mvns r0, r0
+ adds r0, 0x1
+ str r0, [r1, 0x4]
+ cmp r0, 0
+ bne _0800A29A
+ adds r0, r2, 0x1
+ str r0, [r1]
+_0800A29A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_800A27C
+
+ thumb_func_start sub_800A2A0
+sub_800A2A0:
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, [r1]
+ cmp r0, 0
+ bne _0800A2B4
+ ldr r0, [r1, 0x4]
+ cmp r0, 0
+ bne _0800A2B4
+ movs r0, 0x1
+ b _0800A2B6
+_0800A2B4:
+ movs r0, 0
+_0800A2B6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800A2A0
+
+ thumb_func_start sub_800A2BC
+sub_800A2BC:
+ push {lr}
+ adds r2, r0, 0
+ adds r3, r1, 0
+ ldr r1, [r2]
+ ldr r0, [r3]
+ cmp r1, r0
+ bne _0800A2D6
+ ldr r1, [r2, 0x4]
+ ldr r0, [r3, 0x4]
+ cmp r1, r0
+ bne _0800A2D6
+ movs r0, 0x1
+ b _0800A2D8
+_0800A2D6:
+ movs r0, 0
+_0800A2D8:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800A2BC
+
+ thumb_func_start sub_800A2DC
+sub_800A2DC:
+ push {lr}
+ ldr r0, [r0]
+ cmp r0, 0
+ blt _0800A2E8
+ movs r0, 0
+ b _0800A2EA
+_0800A2E8:
+ movs r0, 0x1
+_0800A2EA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800A2DC
+
+ thumb_func_start sub_800A2F0
+sub_800A2F0:
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ adds r2, r1, 0
+ ldr r4, [r3]
+ lsrs r1, r4, 31
+ ldr r5, [r2]
+ cmp r5, 0
+ bge _0800A304
+ movs r0, 0x2
+ orrs r1, r0
+_0800A304:
+ cmp r1, 0x1
+ beq _0800A326
+ cmp r1, 0x1
+ ble _0800A314
+ cmp r1, 0x2
+ beq _0800A32A
+ cmp r1, 0x3
+ beq _0800A32E
+_0800A314:
+ ldr r1, [r3, 0x4]
+ ldr r3, [r2, 0x4]
+ adds r0, r4, 0
+ adds r2, r5, 0
+ bl sub_8009D8C
+ lsls r0, 24
+ lsrs r0, 24
+ b _0800A346
+_0800A326:
+ movs r0, 0x1
+ b _0800A346
+_0800A32A:
+ movs r0, 0
+ b _0800A346
+_0800A32E:
+ ldr r1, [r3, 0x4]
+ ldr r3, [r2, 0x4]
+ adds r0, r4, 0
+ adds r2, r5, 0
+ bl sub_8009D8C
+ movs r1, 0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0800A344
+ movs r1, 0x1
+_0800A344:
+ adds r0, r1, 0
+_0800A346:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800A2F0
+
+ thumb_func_start sub_800A34C
+sub_800A34C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ adds r6, r0, 0
+ ldr r0, [r1]
+ str r0, [sp]
+ ldr r0, [r1, 0x4]
+ str r0, [sp, 0x4]
+ ldr r0, [r2]
+ str r0, [sp, 0x8]
+ ldr r0, [r2, 0x4]
+ add r5, sp, 0x8
+ str r0, [r5, 0x4]
+ mov r0, sp
+ bl sub_800A2DC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ mov r10, r8
+ adds r0, r5, 0
+ bl sub_800A2DC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ mov r9, r7
+ mov r0, sp
+ bl sub_800A2A0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _0800A39A
+ movs r0, 0
+ str r0, [r6]
+ b _0800A3DE
+_0800A39A:
+ adds r0, r5, 0
+ bl sub_800A2A0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0800A3AC
+ str r4, [r6]
+ str r4, [r6, 0x4]
+ b _0800A3E0
+_0800A3AC:
+ mov r0, r8
+ cmp r0, 0
+ beq _0800A3B8
+ mov r0, sp
+ bl sub_800A25C
+_0800A3B8:
+ cmp r7, 0
+ beq _0800A3C2
+ adds r0, r5, 0
+ bl sub_800A25C
+_0800A3C2:
+ add r4, sp, 0x10
+ adds r0, r4, 0
+ mov r1, sp
+ adds r2, r5, 0
+ bl sub_800A4E4
+ cmp r10, r9
+ beq _0800A3D8
+ adds r0, r4, 0
+ bl sub_800A25C
+_0800A3D8:
+ ldr r0, [sp, 0x10]
+ str r0, [r6]
+ ldr r0, [r4, 0x4]
+_0800A3DE:
+ str r0, [r6, 0x4]
+_0800A3E0:
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_800A34C
+
+ thumb_func_start sub_800A3F0
+sub_800A3F0:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ adds r6, r0, 0
+ ldr r0, [r1]
+ str r0, [sp]
+ ldr r0, [r1, 0x4]
+ str r0, [sp, 0x4]
+ ldr r0, [r2]
+ str r0, [sp, 0x8]
+ ldr r0, [r2, 0x4]
+ add r5, sp, 0x8
+ str r0, [r5, 0x4]
+ mov r0, sp
+ bl sub_800A2DC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ mov r10, r8
+ adds r0, r5, 0
+ bl sub_800A2DC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ mov r9, r7
+ adds r0, r5, 0
+ bl sub_800A2A0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _0800A448
+ ldr r0, _0800A444
+ str r0, [r6]
+ movs r0, 0x1
+ negs r0, r0
+ b _0800A48C
+ .align 2, 0
+_0800A444: .4byte 0x7fffffff
+_0800A448:
+ mov r0, sp
+ bl sub_800A2A0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0800A45A
+ str r4, [r6]
+ str r4, [r6, 0x4]
+ b _0800A48E
+_0800A45A:
+ mov r0, r8
+ cmp r0, 0
+ beq _0800A466
+ mov r0, sp
+ bl sub_800A25C
+_0800A466:
+ cmp r7, 0
+ beq _0800A470
+ adds r0, r5, 0
+ bl sub_800A25C
+_0800A470:
+ add r4, sp, 0x10
+ adds r0, r4, 0
+ mov r1, sp
+ adds r2, r5, 0
+ bl sub_800A5A4
+ cmp r10, r9
+ beq _0800A486
+ adds r0, r4, 0
+ bl sub_800A25C
+_0800A486:
+ ldr r0, [sp, 0x10]
+ str r0, [r6]
+ ldr r0, [r4, 0x4]
+_0800A48C:
+ str r0, [r6, 0x4]
+_0800A48E:
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_800A3F0
+
+ thumb_func_start sub_800A4A0
+sub_800A4A0:
+ push {r4,r5,lr}
+ sub sp, 0x10
+ adds r5, r0, 0
+ ldr r0, [r5]
+ str r0, [sp]
+ ldr r0, [r5, 0x4]
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl sub_800A2A0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0800A4C0
+ movs r0, 0
+ str r0, [r5]
+ b _0800A4D8
+_0800A4C0:
+ mov r0, sp
+ bl sub_800A27C
+ add r4, sp, 0x8
+ adds r0, r4, 0
+ mov r1, sp
+ mov r2, sp
+ bl sub_800A4E4
+ ldr r0, [sp, 0x8]
+ str r0, [r5]
+ ldr r0, [r4, 0x4]
+_0800A4D8:
+ str r0, [r5, 0x4]
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_800A4A0
+
+ thumb_func_start sub_800A4E4
+sub_800A4E4:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r8, r0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ adds r0, r5, 0
+ bl sub_800A2A0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _0800A50C
+ movs r0, 0
+ mov r1, r8
+ str r0, [r1]
+ str r0, [r1, 0x4]
+ b _0800A596
+_0800A50C:
+ adds r0, r6, 0
+ bl sub_800A2A0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0800A520
+ mov r7, r8
+ str r4, [r7]
+ str r4, [r7, 0x4]
+ b _0800A596
+_0800A520:
+ ldr r1, [r5]
+ ldr r4, [r5, 0x4]
+ ldr r0, [r6]
+ mov r10, r0
+ ldr r2, [r6, 0x4]
+ movs r6, 0
+ movs r5, 0
+ movs r7, 0x80
+ lsls r7, 24
+ mov r9, r7
+ movs r0, 0x3F
+ mov r12, r0
+_0800A538:
+ adds r3, r5, 0
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _0800A54C
+ adds r5, r4
+ adds r6, r1
+ cmp r3, r5
+ bls _0800A54C
+ adds r6, 0x1
+_0800A54C:
+ lsrs r2, 1
+ movs r3, 0x1
+ mov r0, r10
+ ands r0, r3
+ cmp r0, 0
+ beq _0800A55C
+ mov r7, r9
+ orrs r2, r7
+_0800A55C:
+ mov r0, r10
+ lsrs r0, 1
+ mov r10, r0
+ lsls r1, 1
+ adds r0, r4, 0
+ mov r7, r9
+ ands r0, r7
+ cmp r0, 0
+ beq _0800A570
+ orrs r1, r3
+_0800A570:
+ lsls r4, 1
+ movs r0, 0x1
+ negs r0, r0
+ add r12, r0
+ mov r7, r12
+ cmp r7, 0
+ bge _0800A538
+ lsrs r1, r5, 15
+ ands r1, r3
+ lsrs r5, 16
+ lsls r0, r6, 16
+ orrs r5, r0
+ lsrs r6, 16
+ cmp r1, 0
+ beq _0800A590
+ adds r5, 0x1
+_0800A590:
+ mov r0, r8
+ str r6, [r0]
+ str r5, [r0, 0x4]
+_0800A596:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_800A4E4
+
+ thumb_func_start sub_800A5A4
+sub_800A5A4:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ str r0, [sp]
+ adds r5, r1, 0
+ mov r8, r2
+ mov r0, r8
+ bl sub_800A2A0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _0800A5D8
+ ldr r0, _0800A5D4
+ ldr r1, [sp]
+ str r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [r1, 0x4]
+ b _0800A6BE
+ .align 2, 0
+_0800A5D4: .4byte 0x7fffffff
+_0800A5D8:
+ adds r0, r5, 0
+ bl sub_800A2A0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0800A5EC
+ ldr r2, [sp]
+ str r4, [r2]
+ str r4, [r2, 0x4]
+ b _0800A6BE
+_0800A5EC:
+ ldr r0, [r5]
+ lsls r7, r0, 16
+ ldr r1, [r5, 0x4]
+ lsrs r0, r1, 16
+ orrs r7, r0
+ lsls r6, r1, 16
+ movs r0, 0x80
+ lsls r0, 8
+ orrs r6, r0
+ mov r0, r8
+ ldr r0, [r0]
+ str r0, [sp, 0x4]
+ mov r1, r8
+ ldr r1, [r1, 0x4]
+ str r1, [sp, 0x8]
+ movs r2, 0
+ str r2, [sp, 0xC]
+ mov r9, r2
+ movs r5, 0
+ movs r4, 0
+ movs r0, 0x80
+ lsls r0, 24
+ mov r10, r0
+ movs r1, 0x1
+ mov r8, r1
+ movs r2, 0x3F
+ str r2, [sp, 0x10]
+_0800A622:
+ lsls r5, 1
+ adds r0, r4, 0
+ mov r1, r10
+ ands r0, r1
+ cmp r0, 0
+ beq _0800A632
+ mov r2, r8
+ orrs r5, r2
+_0800A632:
+ movs r1, 0x2
+ negs r1, r1
+ lsls r4, 1
+ adds r0, r7, 0
+ mov r2, r10
+ ands r0, r2
+ cmp r0, 0
+ beq _0800A646
+ mov r0, r8
+ orrs r4, r0
+_0800A646:
+ lsls r7, 1
+ adds r0, r6, 0
+ mov r2, r10
+ ands r0, r2
+ cmp r0, 0
+ beq _0800A656
+ mov r0, r8
+ orrs r7, r0
+_0800A656:
+ lsls r6, 1
+ ands r6, r1
+ adds r0, r5, 0
+ adds r1, r4, 0
+ ldr r2, [sp, 0x4]
+ ldr r3, [sp, 0x8]
+ bl sub_8009D8C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0800A680
+ adds r0, r4, 0
+ movs r1, 0x1
+ ldr r2, [sp, 0x8]
+ subs r4, r2
+ ldr r2, [sp, 0x4]
+ subs r5, r2
+ cmp r0, r4
+ bcs _0800A682
+ subs r5, 0x1
+ b _0800A682
+_0800A680:
+ movs r1, 0
+_0800A682:
+ ldr r0, [sp, 0xC]
+ lsls r0, 1
+ str r0, [sp, 0xC]
+ mov r0, r9
+ mov r2, r10
+ ands r0, r2
+ cmp r0, 0
+ beq _0800A69A
+ ldr r0, [sp, 0xC]
+ mov r2, r8
+ orrs r0, r2
+ str r0, [sp, 0xC]
+_0800A69A:
+ mov r0, r9
+ lsls r0, 1
+ mov r9, r0
+ cmp r1, 0
+ beq _0800A6AA
+ mov r1, r8
+ orrs r0, r1
+ mov r9, r0
+_0800A6AA:
+ ldr r2, [sp, 0x10]
+ subs r2, 0x1
+ str r2, [sp, 0x10]
+ cmp r2, 0
+ bge _0800A622
+ ldr r0, [sp, 0xC]
+ ldr r1, [sp]
+ str r0, [r1]
+ mov r2, r9
+ str r2, [r1, 0x4]
+_0800A6BE:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_800A5A4
+
+ thumb_func_start sub_800A6D0
+sub_800A6D0:
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r3, [r1]
+ ldr r0, [r2]
+ adds r3, r0
+ ldr r1, [r1, 0x4]
+ ldr r0, [r2, 0x4]
+ adds r0, r1, r0
+ cmp r0, r1
+ bcs _0800A6E6
+ adds r3, 0x1
+_0800A6E6:
+ str r3, [r4]
+ str r0, [r4, 0x4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_800A6D0
+
+ thumb_func_start sub_800A6F0
+sub_800A6F0:
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r3, [r1]
+ ldr r0, [r2]
+ subs r3, r0
+ ldr r1, [r1, 0x4]
+ ldr r0, [r2, 0x4]
+ subs r0, r1, r0
+ cmp r0, r1
+ bls _0800A706
+ subs r3, 0x1
+_0800A706:
+ str r3, [r4]
+ str r0, [r4, 0x4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_800A6F0
+
+ thumb_func_start sub_800A710
+sub_800A710:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x18
+ mov r8, r0
+ adds r6, r2, 0
+ ldr r0, [r1]
+ str r0, [sp]
+ ldr r0, [r1, 0x4]
+ str r0, [sp, 0x4]
+ adds r4, r6, 0
+ cmp r6, 0
+ bge _0800A72C
+ negs r4, r6
+_0800A72C:
+ movs r0, 0
+ str r0, [sp, 0x8]
+ movs r1, 0x80
+ lsls r1, 9
+ add r0, sp, 0x8
+ str r1, [r0, 0x4]
+ adds r7, r0, 0
+ cmp r4, 0
+ beq _0800A75E
+ adds r5, r7, 0
+_0800A740:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _0800A752
+ adds r0, r5, 0
+ adds r1, r5, 0
+ mov r2, sp
+ bl sub_800A34C
+_0800A752:
+ mov r0, sp
+ bl sub_800A4A0
+ asrs r4, 1
+ cmp r4, 0
+ bne _0800A740
+_0800A75E:
+ cmp r6, 0
+ bge _0800A776
+ movs r0, 0
+ str r0, [sp, 0x10]
+ movs r0, 0x80
+ lsls r0, 9
+ add r1, sp, 0x10
+ str r0, [r1, 0x4]
+ adds r0, r7, 0
+ adds r2, r7, 0
+ bl sub_800A3F0
+_0800A776:
+ ldr r0, [sp, 0x8]
+ mov r1, r8
+ str r0, [r1]
+ ldr r0, [r7, 0x4]
+ str r0, [r1, 0x4]
+ add sp, 0x18
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_800A710
+
+ thumb_func_start sub_800A78C
+sub_800A78C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ mov r10, r0
+ ldr r0, [r1]
+ ldr r1, [r1, 0x4]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ ldr r0, [r2]
+ ldr r1, [r2, 0x4]
+ str r0, [sp, 0x8]
+ str r1, [sp, 0xC]
+ mov r0, sp
+ bl sub_800A27C
+ add r4, sp, 0x8
+ adds r0, r4, 0
+ bl sub_800A27C
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_800A2F0
+ lsls r0, 24
+ mov r8, r4
+ cmp r0, 0
+ beq _0800A7DC
+ ldr r2, [sp]
+ ldr r3, [sp, 0x4]
+ str r2, [sp, 0x10]
+ str r3, [sp, 0x14]
+ ldr r0, [sp, 0x8]
+ ldr r1, [sp, 0xC]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ str r3, [sp, 0xC]
+_0800A7DC:
+ mov r0, r8
+ bl sub_800A2A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0800A878
+ movs r0, 0
+ mov r9, r0
+ add r7, sp, 0x10
+ add r6, sp, 0x18
+ b _0800A800
+_0800A7F2:
+ mov r0, r8
+ mov r1, r8
+ adds r2, r7, 0
+ bl sub_800A34C
+ movs r2, 0x1
+ add r9, r2
+_0800A800:
+ adds r4, r7, 0
+ mov r1, r8
+ adds r0, r4, 0
+ mov r2, sp
+ bl sub_800A3F0
+ adds r0, r4, 0
+ bl sub_800A4A0
+ ldr r0, [sp, 0x10]
+ str r0, [sp, 0x18]
+ ldr r1, [r4, 0x4]
+ movs r0, 0x80
+ lsls r0, 11
+ adds r1, r0
+ adds r5, r6, 0
+ str r1, [r5, 0x4]
+ ldr r0, [r4, 0x4]
+ cmp r1, r0
+ bcs _0800A82E
+ ldr r0, [sp, 0x18]
+ adds r0, 0x1
+ str r0, [sp, 0x18]
+_0800A82E:
+ adds r0, r4, 0
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_800A3F0
+ adds r0, r5, 0
+ mov r1, sp
+ adds r2, r4, 0
+ bl sub_800A34C
+ ldr r0, [sp, 0x18]
+ lsls r1, r0, 1
+ str r1, [sp, 0x18]
+ ldr r0, [r5, 0x4]
+ cmp r0, 0
+ bge _0800A854
+ movs r0, 0x1
+ orrs r1, r0
+ str r1, [sp, 0x18]
+_0800A854:
+ ldr r0, [r6, 0x4]
+ lsls r0, 1
+ str r0, [r6, 0x4]
+ ldr r2, [sp, 0x4]
+ ldr r1, [sp]
+ ldr r0, [sp, 0x18]
+ adds r1, r0
+ str r1, [sp]
+ ldr r0, [r6, 0x4]
+ adds r0, r2, r0
+ str r0, [sp, 0x4]
+ cmp r2, r0
+ bls _0800A872
+ adds r0, r1, 0x1
+ str r0, [sp]
+_0800A872:
+ mov r2, r9
+ cmp r2, 0x2
+ bne _0800A7F2
+_0800A878:
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ mov r2, r10
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_800A78C
+
+ thumb_func_start sub_800A894
+sub_800A894:
+ push {lr}
+ adds r2, r0, 0
+ adds r0, r1, 0
+ cmp r0, 0
+ bgt _0800A8A0
+ movs r0, 0x1
+_0800A8A0:
+ ldr r1, _0800A8BC
+ cmp r0, r1
+ ble _0800A8A8
+ adds r0, r1, 0
+_0800A8A8:
+ ldr r1, _0800A8C0
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2, 0x4]
+ movs r0, 0
+ str r0, [r2]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800A8BC: .4byte 0x0000012b
+_0800A8C0: .4byte gUnknown_80B96E4
+ thumb_func_end sub_800A894
+
+ thumb_func_start sub_800A8C4
+sub_800A8C4:
+ push {r4,lr}
+ ldr r3, _0800A8EC
+ ldr r4, _0800A8F0
+ movs r2, 0
+ ldr r0, _0800A8F4
+ movs r1, 0x3F
+_0800A8D0:
+ str r2, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ subs r1, 0x1
+ cmp r1, 0
+ bge _0800A8D0
+ movs r0, 0
+ str r0, [r3]
+ movs r0, 0x1
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800A8EC: .4byte gUnknown_203B094
+_0800A8F0: .4byte gUnknown_202D2A4
+_0800A8F4: .4byte gUnknown_202D2A8
+ thumb_func_end sub_800A8C4
+
+ thumb_func_start sub_800A8F8
+sub_800A8F8:
+ ldr r1, _0800A904
+ ldr r2, [r1]
+ str r0, [r1]
+ adds r0, r2, 0
+ bx lr
+ .align 2, 0
+_0800A904: .4byte gUnknown_202D2A4
+ thumb_func_end sub_800A8F8
+
+ thumb_func_start sub_800A908
+sub_800A908:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x12C
+ mov r8, r0
+ adds r4, r1, 0
+ ldr r1, _0800A93C
+ adds r0, r4, 0
+ bl strcmp
+ cmp r0, 0
+ beq _0800A922
+ movs r0, 0x1
+_0800A922:
+ movs r1, 0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0800A92C
+ movs r1, 0x1
+_0800A92C:
+ cmp r1, 0
+ beq _0800A9B6
+ ldr r7, [r4, 0xC]
+ movs r6, 0
+ ldr r0, [r4, 0x8]
+ subs r5, r0, 0x1
+ b _0800A94A
+ .align 2, 0
+_0800A93C: .4byte gUnknown_80B9B94
+_0800A940:
+ cmp r0, 0
+ bge _0800A948
+ adds r6, r4, 0x1
+ b _0800A94A
+_0800A948:
+ adds r5, r4, 0
+_0800A94A:
+ cmp r6, r5
+ bge _0800A968
+ adds r0, r6, r5
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r4, r0, 1
+ lsls r0, r4, 3
+ adds r0, r7
+ ldr r0, [r0]
+ mov r1, r8
+ bl strcmp
+ cmp r0, 0
+ bne _0800A940
+ adds r6, r4, 0
+_0800A968:
+ lsls r0, r6, 3
+ adds r6, r7, r0
+ ldr r0, [r6]
+ mov r1, r8
+ bl strcmp
+ cmp r0, 0
+ beq _0800A994
+ ldr r1, _0800A984
+ mov r0, sp
+ mov r2, r8
+ bl sprintf
+ b _0800A9B6
+ .align 2, 0
+_0800A984: .4byte gUnknown_80B9B9C
+_0800A988:
+ str r6, [r2]
+ adds r0, r7, 0x4
+ adds r0, r3, r0
+ str r1, [r0]
+ adds r0, r2, 0
+ b _0800A9B8
+_0800A994:
+ ldr r0, _0800A9C4
+ ldr r0, [r0]
+ movs r4, 0
+ ldr r5, _0800A9C8
+ adds r7, r5, 0
+_0800A99E:
+ adds r0, 0x1
+ cmp r0, 0x3F
+ ble _0800A9A6
+ movs r0, 0
+_0800A9A6:
+ lsls r3, r0, 3
+ adds r2, r3, r5
+ ldr r1, [r2]
+ cmp r1, 0
+ beq _0800A988
+ adds r4, 0x1
+ cmp r4, 0x3F
+ ble _0800A99E
+_0800A9B6:
+ movs r0, 0
+_0800A9B8:
+ add sp, 0x12C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0800A9C4: .4byte gUnknown_203B094
+_0800A9C8: .4byte gUnknown_202D2A8
+ thumb_func_end sub_800A908
+
+ thumb_func_start sub_800A9CC
+sub_800A9CC:
+ ldr r1, [r0]
+ ldr r1, [r1, 0x4]
+ str r1, [r0, 0x4]
+ adds r0, r1, 0
+ bx lr
+ thumb_func_end sub_800A9CC
+
+ thumb_func_start sub_800A9D8
+sub_800A9D8:
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_800A9CC
+ adds r0, r4, 0
+ bl sub_800AA48
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800A9D8
+
+ thumb_func_start sub_800A9EC
+sub_800A9EC:
+ push {r4,lr}
+ bl sub_800A908
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _0800A9FE
+ movs r1, 0
+ bl sub_800A9D8
+_0800A9FE:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800A9EC
+
+ thumb_func_start sub_800AA08
+sub_800AA08:
+ push {lr}
+ bl sub_800A9EC
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800AA08
+
+ thumb_func_start sub_800AA14
+sub_800AA14:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ ldr r0, _0800AA30
+ movs r3, 0
+ ldr r5, _0800AA34
+ adds r2, r0, 0x4
+_0800AA22:
+ cmp r0, r4
+ bne _0800AA38
+ str r3, [r0]
+ str r3, [r2]
+ str r1, [r5]
+ b _0800AA42
+ .align 2, 0
+_0800AA30: .4byte gUnknown_202D2A8
+_0800AA34: .4byte gUnknown_203B094
+_0800AA38:
+ adds r2, 0x8
+ adds r0, 0x8
+ adds r1, 0x1
+ cmp r1, 0x3F
+ ble _0800AA22
+_0800AA42:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_800AA14
+
+ thumb_func_start sub_800AA48
+sub_800AA48:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, [r5, 0x4]
+ ldr r1, [r4]
+ ldr r0, _0800AA60
+ cmp r1, r0
+ beq _0800AA68
+ ldr r0, _0800AA64
+ cmp r1, r0
+ beq _0800AA6E
+ adds r0, r4, 0
+ b _0800AA72
+ .align 2, 0
+_0800AA60: .4byte 0x30524953
+_0800AA64: .4byte 0x4f524953
+_0800AA68:
+ adds r0, r4, 0
+ bl nullsub_15
+_0800AA6E:
+ ldr r0, [r4, 0x4]
+ str r0, [r5, 0x4]
+_0800AA72:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800AA48
+
+ thumb_func_start sub_800AA78
+sub_800AA78:
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, [r4]
+ ldr r0, _0800AA90
+ cmp r1, r0
+ bne _0800AA94
+ adds r0, r4, 0
+ bl nullsub_15
+ ldr r0, [r4, 0x4]
+ b _0800AA96
+ .align 2, 0
+_0800AA90: .4byte 0x30524953
+_0800AA94:
+ adds r0, r4, 0
+_0800AA96:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800AA78
+
+ thumb_func_start nullsub_15
+nullsub_15:
+ bx lr
+ thumb_func_end nullsub_15
+
+ thumb_func_start nullsub_16
+nullsub_16:
+ bx lr
+ thumb_func_end nullsub_16
+
+ thumb_func_start nullsub_175
+nullsub_175:
+ bx lr
+ thumb_func_end nullsub_175
+
+ thumb_func_start sub_800AAA8
+sub_800AAA8:
+ push {lr}
+ ldr r2, [r2, 0x4]
+ bl sub_800AAB4
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800AAA8
+
+ thumb_func_start sub_800AAB4
+sub_800AAB4:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ mov r12, r0
+ str r1, [sp, 0x24]
+ mov r8, r2
+ ldrb r0, [r2, 0x5]
+ ldrb r1, [r2, 0x6]
+ lsls r1, 8
+ adds r0, r1
+ str r0, [sp, 0x28]
+ movs r6, 0
+ mov r10, r6
+ movs r0, 0x8
+ mov r9, r0
+ ldrb r0, [r2]
+ cmp r0, 0x41
+ bne _0800AB04
+ ldrb r0, [r2, 0x1]
+ adds r1, r0, 0
+ cmp r1, 0x54
+ bne _0800AB0C
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0x34
+ bne _0800AB0C
+ ldrb r0, [r2, 0x3]
+ cmp r0, 0x50
+ bne _0800AB0C
+ ldrb r1, [r2, 0x10]
+ ldrb r0, [r2, 0x11]
+ lsls r0, 8
+ adds r1, r0
+ ldr r2, [sp, 0x24]
+ cmp r2, 0
+ beq _0800AB08
+ cmp r2, r1
+ beq _0800AB08
+_0800AB04:
+ movs r0, 0
+ b _0800AE16
+_0800AB08:
+ movs r1, 0x12
+ b _0800AB26
+_0800AB0C:
+ mov r3, r8
+ ldrb r0, [r3]
+ cmp r0, 0x41
+ bne _0800AB04
+ cmp r1, 0x54
+ bne _0800AB04
+ ldrb r0, [r3, 0x2]
+ cmp r0, 0x33
+ bne _0800AB04
+ ldrb r0, [r3, 0x3]
+ cmp r0, 0x50
+ bne _0800AB04
+ movs r1, 0x10
+_0800AB26:
+ mov r2, r8
+ ldrb r0, [r2, 0x4]
+ cmp r0, 0x4E
+ bne _0800AB4A
+ movs r7, 0
+ b _0800AB40
+_0800AB32:
+ mov r1, r12
+ adds r0, r1, r7
+ mov r2, r8
+ adds r1, r7, r2
+ ldrb r1, [r1, 0x7]
+ strb r1, [r0]
+ adds r7, 0x1
+_0800AB40:
+ ldr r3, [sp, 0x28]
+ cmp r7, r3
+ blt _0800AB32
+ adds r0, r7, 0
+ b _0800AE16
+_0800AB4A:
+ mov r2, r8
+ ldrb r0, [r2, 0x7]
+ adds r0, 0x3
+ str r0, [sp]
+ ldrb r0, [r2, 0x8]
+ adds r0, 0x3
+ str r0, [sp, 0x4]
+ ldrb r0, [r2, 0x9]
+ adds r0, 0x3
+ str r0, [sp, 0x8]
+ ldrb r0, [r2, 0xA]
+ adds r0, 0x3
+ str r0, [sp, 0xC]
+ ldrb r0, [r2, 0xB]
+ adds r0, 0x3
+ str r0, [sp, 0x10]
+ ldrb r0, [r2, 0xC]
+ adds r0, 0x3
+ str r0, [sp, 0x14]
+ ldrb r0, [r2, 0xD]
+ adds r0, 0x3
+ str r0, [sp, 0x18]
+ ldrb r0, [r2, 0xE]
+ adds r0, 0x3
+ str r0, [sp, 0x1C]
+ ldrb r0, [r2, 0xF]
+ adds r0, 0x3
+ str r0, [sp, 0x20]
+ adds r7, r1, 0
+ ldr r3, [sp, 0x28]
+ cmp r7, r3
+ blt _0800AB8C
+ b _0800AE14
+_0800AB8C:
+ ldr r0, [sp, 0x24]
+ cmp r0, 0
+ beq _0800AB96
+ cmp r6, r0
+ bge _0800AB04
+_0800AB96:
+ mov r1, r9
+ cmp r1, 0x8
+ bne _0800ABAA
+ mov r2, r8
+ adds r0, r2, r7
+ ldrb r0, [r0]
+ mov r10, r0
+ adds r7, 0x1
+ movs r3, 0
+ mov r9, r3
+_0800ABAA:
+ movs r0, 0x80
+ mov r1, r10
+ ands r0, r1
+ cmp r0, 0
+ beq _0800ABB6
+ b _0800ADF0
+_0800ABB6:
+ mov r3, r8
+ adds r2, r3, r7
+ ldrb r1, [r2]
+ lsrs r0, r1, 4
+ adds r3, r0, 0x3
+ movs r0, 0xF
+ ands r0, r1
+ lsls r5, r0, 8
+ ldr r0, [sp]
+ cmp r3, r0
+ bne _0800ABCE
+ movs r3, 0x1F
+_0800ABCE:
+ ldr r0, [sp, 0x4]
+ cmp r3, r0
+ bne _0800ABD6
+ movs r3, 0x1E
+_0800ABD6:
+ ldr r0, [sp, 0x8]
+ cmp r3, r0
+ bne _0800ABDE
+ movs r3, 0x1D
+_0800ABDE:
+ ldr r0, [sp, 0xC]
+ cmp r3, r0
+ bne _0800ABE6
+ movs r3, 0x1C
+_0800ABE6:
+ ldr r0, [sp, 0x10]
+ cmp r3, r0
+ bne _0800ABEE
+ movs r3, 0x1B
+_0800ABEE:
+ ldr r0, [sp, 0x14]
+ cmp r3, r0
+ bne _0800ABF6
+ movs r3, 0x1A
+_0800ABF6:
+ ldr r0, [sp, 0x18]
+ cmp r3, r0
+ bne _0800ABFE
+ movs r3, 0x19
+_0800ABFE:
+ ldr r0, [sp, 0x1C]
+ cmp r3, r0
+ bne _0800AC06
+ movs r3, 0x18
+_0800AC06:
+ ldr r0, [sp, 0x20]
+ cmp r3, r0
+ bne _0800AC0E
+ movs r3, 0x17
+_0800AC0E:
+ adds r0, r3, 0
+ subs r0, 0x17
+ cmp r0, 0x8
+ bls _0800AC18
+ b _0800ADB0
+_0800AC18:
+ lsls r0, 2
+ ldr r1, _0800AC24
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0800AC24: .4byte _0800AC28
+ .align 2, 0
+_0800AC28:
+ .4byte _0800AD7C
+ .4byte _0800AD48
+ .4byte _0800AD20
+ .4byte _0800ACFA
+ .4byte _0800ACD6
+ .4byte _0800ACB4
+ .4byte _0800AC8C
+ .4byte _0800AC66
+ .4byte _0800AC4C
+_0800AC4C:
+ ldrb r1, [r2]
+ movs r0, 0xF
+ adds r7, 0x1
+ mov r3, r12
+ adds r2, r3, r6
+ ands r0, r1
+ lsls r1, r0, 4
+ orrs r1, r0
+ strb r1, [r2]
+ adds r6, 0x1
+ adds r0, r3, r6
+ strb r1, [r0]
+ b _0800ADA4
+_0800AC66:
+ ldrb r0, [r2]
+ movs r5, 0xF
+ ands r5, r0
+ adds r7, 0x1
+ mov r1, r12
+ adds r3, r1, r6
+ movs r2, 0xF
+ lsls r0, r5, 4
+ adds r1, r5, 0x1
+ ands r1, r2
+ orrs r0, r1
+ strb r0, [r3]
+ adds r6, 0x1
+ mov r3, r12
+ adds r2, r3, r6
+ lsls r0, r1, 4
+ orrs r0, r1
+ strb r0, [r2]
+ b _0800ADA4
+_0800AC8C:
+ ldrb r0, [r2]
+ movs r3, 0xF
+ movs r5, 0xF
+ ands r5, r0
+ adds r7, 0x1
+ mov r1, r12
+ adds r4, r1, r6
+ adds r2, r5, 0
+ ands r2, r3
+ lsls r1, r2, 4
+ subs r0, r5, 0x1
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r4]
+ adds r6, 0x1
+ mov r3, r12
+ adds r0, r3, r6
+ orrs r1, r2
+ strb r1, [r0]
+ b _0800ADA4
+_0800ACB4:
+ ldrb r0, [r2]
+ movs r3, 0xF
+ movs r5, 0xF
+ ands r5, r0
+ adds r7, 0x1
+ mov r1, r12
+ adds r2, r1, r6
+ adds r1, r5, 0
+ ands r1, r3
+ lsls r0, r1, 4
+ orrs r0, r1
+ strb r0, [r2]
+ adds r6, 0x1
+ mov r0, r12
+ adds r2, r0, r6
+ subs r0, r5, 0x1
+ b _0800AD68
+_0800ACD6:
+ ldrb r0, [r2]
+ movs r4, 0xF
+ movs r5, 0xF
+ ands r5, r0
+ adds r7, 0x1
+ mov r2, r12
+ adds r3, r2, r6
+ adds r1, r5, 0
+ ands r1, r4
+ lsls r2, r1, 4
+ adds r0, r2, 0
+ orrs r0, r1
+ strb r0, [r3]
+ adds r6, 0x1
+ mov r3, r12
+ adds r1, r3, r6
+ subs r0, r5, 0x1
+ b _0800AD9E
+_0800ACFA:
+ ldrb r0, [r2]
+ movs r5, 0xF
+ ands r5, r0
+ adds r7, 0x1
+ mov r1, r12
+ adds r3, r1, r6
+ movs r2, 0xF
+ lsls r0, r5, 4
+ subs r1, r5, 0x1
+ ands r1, r2
+ orrs r0, r1
+ strb r0, [r3]
+ adds r6, 0x1
+ mov r3, r12
+ adds r2, r3, r6
+ lsls r0, r1, 4
+ orrs r0, r1
+ strb r0, [r2]
+ b _0800ADA4
+_0800AD20:
+ ldrb r0, [r2]
+ movs r3, 0xF
+ movs r5, 0xF
+ ands r5, r0
+ adds r7, 0x1
+ mov r1, r12
+ adds r4, r1, r6
+ adds r2, r5, 0
+ ands r2, r3
+ lsls r1, r2, 4
+ adds r0, r5, 0x1
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r4]
+ adds r6, 0x1
+ mov r3, r12
+ adds r0, r3, r6
+ orrs r1, r2
+ strb r1, [r0]
+ b _0800ADA4
+_0800AD48:
+ ldrb r0, [r2]
+ movs r3, 0xF
+ movs r5, 0xF
+ ands r5, r0
+ adds r7, 0x1
+ mov r1, r12
+ adds r2, r1, r6
+ adds r1, r5, 0
+ ands r1, r3
+ lsls r0, r1, 4
+ orrs r0, r1
+ strb r0, [r2]
+ adds r6, 0x1
+ mov r0, r12
+ adds r2, r0, r6
+ adds r0, r5, 0x1
+_0800AD68:
+ ands r0, r3
+ lsls r0, 4
+ orrs r0, r1
+ strb r0, [r2]
+ adds r6, 0x1
+ mov r4, r9
+ adds r4, 0x1
+ mov r1, r10
+ lsls r2, r1, 1
+ b _0800AE08
+_0800AD7C:
+ ldrb r0, [r2]
+ movs r4, 0xF
+ movs r5, 0xF
+ ands r5, r0
+ adds r7, 0x1
+ mov r2, r12
+ adds r3, r2, r6
+ adds r1, r5, 0
+ ands r1, r4
+ lsls r2, r1, 4
+ adds r0, r2, 0
+ orrs r0, r1
+ strb r0, [r3]
+ adds r6, 0x1
+ mov r3, r12
+ adds r1, r3, r6
+ adds r0, r5, 0x1
+_0800AD9E:
+ ands r0, r4
+ orrs r2, r0
+ strb r2, [r1]
+_0800ADA4:
+ adds r6, 0x1
+ mov r4, r9
+ adds r4, 0x1
+ mov r0, r10
+ lsls r2, r0, 1
+ b _0800AE08
+_0800ADB0:
+ adds r7, 0x1
+ mov r1, r8
+ adds r0, r1, r7
+ ldrb r0, [r0]
+ adds r5, r0
+ adds r7, 0x1
+ ldr r2, _0800ADEC
+ adds r0, r5, r2
+ adds r5, r0, r6
+ mov r4, r9
+ adds r4, 0x1
+ mov r0, r10
+ lsls r2, r0, 1
+ cmp r3, 0
+ beq _0800AE08
+_0800ADCE:
+ mov r1, r12
+ adds r1, r6
+ mov r10, r1
+ mov r0, r12
+ adds r0, r5
+ ldrb r1, [r0]
+ mov r0, r10
+ strb r1, [r0]
+ adds r6, 0x1
+ adds r5, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bne _0800ADCE
+ b _0800AE08
+ .align 2, 0
+_0800ADEC: .4byte 0xfffff000
+_0800ADF0:
+ mov r1, r12
+ adds r0, r1, r6
+ mov r2, r8
+ adds r1, r2, r7
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ adds r7, 0x1
+ mov r4, r9
+ adds r4, 0x1
+ mov r3, r10
+ lsls r2, r3, 1
+_0800AE08:
+ mov r9, r4
+ mov r10, r2
+ ldr r0, [sp, 0x28]
+ cmp r7, r0
+ bge _0800AE14
+ b _0800AB8C
+_0800AE14:
+ adds r0, r6, 0
+_0800AE16:
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800AAB4
+
+ thumb_func_start sub_800AE28
+sub_800AE28:
+ push {lr}
+ ldr r2, [r2, 0x4]
+ bl sub_800AE34
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800AE28
+
+ thumb_func_start sub_800AE34
+sub_800AE34:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x34
+ str r1, [sp, 0x24]
+ mov r10, r2
+ ldrb r2, [r2, 0x5]
+ mov r3, r10
+ ldrb r1, [r3, 0x6]
+ lsls r1, 8
+ adds r2, r1
+ str r2, [sp, 0x28]
+ movs r1, 0
+ mov r9, r1
+ movs r2, 0
+ str r2, [sp, 0x2C]
+ movs r3, 0x8
+ str r3, [sp, 0x30]
+ bl sub_800B1BC
+ mov r1, r10
+ ldrb r0, [r1]
+ cmp r0, 0x41
+ bne _0800AE90
+ ldrb r0, [r1, 0x1]
+ adds r1, r0, 0
+ cmp r1, 0x54
+ bne _0800AE98
+ mov r2, r10
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0x34
+ bne _0800AE98
+ ldrb r0, [r2, 0x3]
+ cmp r0, 0x50
+ bne _0800AE98
+ ldrb r1, [r2, 0x10]
+ ldrb r0, [r2, 0x11]
+ lsls r0, 8
+ adds r1, r0
+ ldr r3, [sp, 0x24]
+ cmp r3, 0
+ beq _0800AE94
+ cmp r3, r1
+ beq _0800AE94
+_0800AE90:
+ movs r0, 0
+ b _0800B1AA
+_0800AE94:
+ movs r1, 0x12
+ b _0800AEB2
+_0800AE98:
+ mov r2, r10
+ ldrb r0, [r2]
+ cmp r0, 0x41
+ bne _0800AE90
+ cmp r1, 0x54
+ bne _0800AE90
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0x33
+ bne _0800AE90
+ ldrb r0, [r2, 0x3]
+ cmp r0, 0x50
+ bne _0800AE90
+ movs r1, 0x10
+_0800AEB2:
+ mov r3, r10
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0x4E
+ bne _0800AEE0
+ movs r0, 0
+ mov r8, r0
+ ldr r1, [sp, 0x28]
+ cmp r8, r1
+ bge _0800AED8
+_0800AEC4:
+ mov r0, r8
+ add r0, r10
+ ldrb r0, [r0, 0x7]
+ bl sub_800B220
+ movs r2, 0x1
+ add r8, r2
+ ldr r3, [sp, 0x28]
+ cmp r8, r3
+ blt _0800AEC4
+_0800AED8:
+ bl sub_800B270
+ mov r0, r8
+ b _0800B1AA
+_0800AEE0:
+ mov r2, r10
+ ldrb r0, [r2, 0x7]
+ adds r0, 0x3
+ str r0, [sp]
+ ldrb r0, [r2, 0x8]
+ adds r0, 0x3
+ str r0, [sp, 0x4]
+ ldrb r0, [r2, 0x9]
+ adds r0, 0x3
+ str r0, [sp, 0x8]
+ ldrb r0, [r2, 0xA]
+ adds r0, 0x3
+ str r0, [sp, 0xC]
+ ldrb r0, [r2, 0xB]
+ adds r0, 0x3
+ str r0, [sp, 0x10]
+ ldrb r0, [r2, 0xC]
+ adds r0, 0x3
+ str r0, [sp, 0x14]
+ ldrb r0, [r2, 0xD]
+ adds r0, 0x3
+ str r0, [sp, 0x18]
+ ldrb r0, [r2, 0xE]
+ adds r0, 0x3
+ str r0, [sp, 0x1C]
+ ldrb r0, [r2, 0xF]
+ adds r0, 0x3
+ str r0, [sp, 0x20]
+ mov r8, r1
+ ldr r3, [sp, 0x28]
+ cmp r8, r3
+ blt _0800AF22
+ b _0800B1A4
+_0800AF22:
+ ldr r0, [sp, 0x24]
+ cmp r0, 0
+ beq _0800AF2C
+ cmp r9, r0
+ bge _0800AE90
+_0800AF2C:
+ ldr r1, [sp, 0x30]
+ cmp r1, 0x8
+ bne _0800AF42
+ mov r0, r10
+ add r0, r8
+ ldrb r0, [r0]
+ str r0, [sp, 0x2C]
+ movs r2, 0x1
+ add r8, r2
+ movs r3, 0
+ str r3, [sp, 0x30]
+_0800AF42:
+ movs r0, 0x80
+ ldr r1, [sp, 0x2C]
+ ands r0, r1
+ cmp r0, 0
+ beq _0800AF4E
+ b _0800B180
+_0800AF4E:
+ mov r2, r10
+ add r2, r8
+ ldrb r1, [r2]
+ lsrs r0, r1, 4
+ adds r3, r0, 0x3
+ movs r0, 0xF
+ ands r0, r1
+ lsls r7, r0, 8
+ ldr r0, [sp]
+ cmp r3, r0
+ bne _0800AF66
+ movs r3, 0x1F
+_0800AF66:
+ ldr r0, [sp, 0x4]
+ cmp r3, r0
+ bne _0800AF6E
+ movs r3, 0x1E
+_0800AF6E:
+ ldr r0, [sp, 0x8]
+ cmp r3, r0
+ bne _0800AF76
+ movs r3, 0x1D
+_0800AF76:
+ ldr r0, [sp, 0xC]
+ cmp r3, r0
+ bne _0800AF7E
+ movs r3, 0x1C
+_0800AF7E:
+ ldr r0, [sp, 0x10]
+ cmp r3, r0
+ bne _0800AF86
+ movs r3, 0x1B
+_0800AF86:
+ ldr r0, [sp, 0x14]
+ cmp r3, r0
+ bne _0800AF8E
+ movs r3, 0x1A
+_0800AF8E:
+ ldr r0, [sp, 0x18]
+ cmp r3, r0
+ bne _0800AF96
+ movs r3, 0x19
+_0800AF96:
+ ldr r0, [sp, 0x1C]
+ cmp r3, r0
+ bne _0800AF9E
+ movs r3, 0x18
+_0800AF9E:
+ ldr r0, [sp, 0x20]
+ cmp r3, r0
+ bne _0800AFA6
+ movs r3, 0x17
+_0800AFA6:
+ adds r0, r3, 0
+ subs r0, 0x17
+ cmp r0, 0x8
+ bls _0800AFB0
+ b _0800B13C
+_0800AFB0:
+ lsls r0, 2
+ ldr r1, _0800AFBC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0800AFBC: .4byte _0800AFC0
+ .align 2, 0
+_0800AFC0:
+ .4byte _0800B104
+ .4byte _0800B0DE
+ .4byte _0800B0BA
+ .4byte _0800B090
+ .4byte _0800B06E
+ .4byte _0800B048
+ .4byte _0800B024
+ .4byte _0800AFFE
+ .4byte _0800AFE4
+_0800AFE4:
+ ldrb r0, [r2]
+ movs r1, 0xF
+ movs r2, 0x1
+ add r8, r2
+ ands r1, r0
+ lsls r4, r1, 4
+ orrs r4, r1
+ adds r0, r4, 0
+ bl sub_800B220
+ movs r3, 0x1
+ add r9, r3
+ b _0800B128
+_0800AFFE:
+ ldrb r0, [r2]
+ movs r6, 0xF
+ ands r6, r0
+ movs r2, 0x1
+ add r8, r2
+ movs r1, 0xF
+ lsls r0, r6, 4
+ adds r4, r6, 0x1
+ ands r4, r1
+ orrs r0, r4
+ bl sub_800B220
+ movs r3, 0x1
+ add r9, r3
+ lsls r0, r4, 4
+ orrs r0, r4
+ lsls r0, 24
+ lsrs r0, 24
+ b _0800B12A
+_0800B024:
+ ldrb r0, [r2]
+ movs r1, 0xF
+ movs r6, 0xF
+ ands r6, r0
+ movs r2, 0x1
+ add r8, r2
+ adds r5, r6, 0
+ ands r5, r1
+ lsls r4, r5, 4
+ subs r0, r6, 0x1
+ ands r0, r1
+ orrs r0, r4
+ bl sub_800B220
+ movs r3, 0x1
+ add r9, r3
+ orrs r4, r5
+ b _0800B128
+_0800B048:
+ ldrb r0, [r2]
+ movs r5, 0xF
+ movs r6, 0xF
+ ands r6, r0
+ movs r2, 0x1
+ add r8, r2
+ adds r4, r6, 0
+ ands r4, r5
+ lsls r0, r4, 4
+ orrs r0, r4
+ bl sub_800B220
+ movs r3, 0x1
+ add r9, r3
+ subs r0, r6, 0x1
+ ands r0, r5
+ lsls r0, 4
+ orrs r0, r4
+ b _0800B12A
+_0800B06E:
+ ldrb r0, [r2]
+ movs r5, 0xF
+ movs r6, 0xF
+ ands r6, r0
+ movs r2, 0x1
+ add r8, r2
+ adds r1, r6, 0
+ ands r1, r5
+ lsls r4, r1, 4
+ adds r0, r4, 0
+ orrs r0, r1
+ bl sub_800B220
+ movs r3, 0x1
+ add r9, r3
+ subs r0, r6, 0x1
+ b _0800B124
+_0800B090:
+ ldrb r0, [r2]
+ movs r6, 0xF
+ ands r6, r0
+ movs r2, 0x1
+ add r8, r2
+ movs r1, 0xF
+ lsls r0, r6, 4
+ subs r4, r6, 0x1
+ ands r4, r1
+ orrs r0, r4
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_800B220
+ movs r3, 0x1
+ add r9, r3
+ lsls r0, r4, 4
+ orrs r0, r4
+ lsls r0, 24
+ lsrs r0, 24
+ b _0800B12A
+_0800B0BA:
+ ldrb r0, [r2]
+ movs r1, 0xF
+ movs r6, 0xF
+ ands r6, r0
+ movs r2, 0x1
+ add r8, r2
+ adds r5, r6, 0
+ ands r5, r1
+ lsls r4, r5, 4
+ adds r0, r6, 0x1
+ ands r0, r1
+ orrs r0, r4
+ bl sub_800B220
+ movs r3, 0x1
+ add r9, r3
+ orrs r4, r5
+ b _0800B128
+_0800B0DE:
+ ldrb r0, [r2]
+ movs r5, 0xF
+ movs r6, 0xF
+ ands r6, r0
+ movs r2, 0x1
+ add r8, r2
+ adds r4, r6, 0
+ ands r4, r5
+ lsls r0, r4, 4
+ orrs r0, r4
+ bl sub_800B220
+ movs r3, 0x1
+ add r9, r3
+ adds r0, r6, 0x1
+ ands r0, r5
+ lsls r0, 4
+ orrs r0, r4
+ b _0800B12A
+_0800B104:
+ ldrb r0, [r2]
+ movs r5, 0xF
+ movs r6, 0xF
+ ands r6, r0
+ movs r2, 0x1
+ add r8, r2
+ adds r1, r6, 0
+ ands r1, r5
+ lsls r4, r1, 4
+ adds r0, r4, 0
+ orrs r0, r1
+ bl sub_800B220
+ movs r3, 0x1
+ add r9, r3
+ adds r0, r6, 0x1
+_0800B124:
+ ands r0, r5
+ orrs r4, r0
+_0800B128:
+ adds r0, r4, 0
+_0800B12A:
+ bl sub_800B220
+ movs r0, 0x1
+ add r9, r0
+ ldr r5, [sp, 0x30]
+ adds r5, 0x1
+ ldr r1, [sp, 0x2C]
+ lsls r4, r1, 1
+ b _0800B198
+_0800B13C:
+ movs r2, 0x1
+ add r8, r2
+ mov r0, r10
+ add r0, r8
+ ldrb r0, [r0]
+ adds r7, r0
+ add r8, r2
+ ldr r1, _0800B17C
+ adds r0, r7, r1
+ mov r2, r9
+ adds r7, r0, r2
+ ldr r5, [sp, 0x30]
+ adds r5, 0x1
+ ldr r0, [sp, 0x2C]
+ lsls r4, r0, 1
+ cmp r3, 0
+ beq _0800B198
+ adds r6, r3, 0
+_0800B160:
+ adds r0, r7, 0
+ bl sub_800B1E0
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_800B220
+ movs r1, 0x1
+ add r9, r1
+ adds r7, 0x1
+ subs r6, 0x1
+ cmp r6, 0
+ bne _0800B160
+ b _0800B198
+ .align 2, 0
+_0800B17C: .4byte 0xfffff000
+_0800B180:
+ mov r0, r10
+ add r0, r8
+ ldrb r0, [r0]
+ bl sub_800B220
+ movs r2, 0x1
+ add r9, r2
+ add r8, r2
+ ldr r5, [sp, 0x30]
+ adds r5, 0x1
+ ldr r3, [sp, 0x2C]
+ lsls r4, r3, 1
+_0800B198:
+ str r5, [sp, 0x30]
+ str r4, [sp, 0x2C]
+ ldr r0, [sp, 0x28]
+ cmp r8, r0
+ bge _0800B1A4
+ b _0800AF22
+_0800B1A4:
+ bl sub_800B270
+ mov r0, r9
+_0800B1AA:
+ add sp, 0x34
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800AE34
+
+ thumb_func_start sub_800B1BC
+sub_800B1BC:
+ ldr r1, _0800B1D0
+ str r0, [r1]
+ ldr r1, _0800B1D4
+ str r0, [r1]
+ ldr r0, _0800B1D8
+ movs r1, 0
+ str r1, [r0]
+ ldr r0, _0800B1DC
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_0800B1D0: .4byte gUnknown_202D4A8
+_0800B1D4: .4byte gUnknown_202D4AC
+_0800B1D8: .4byte gUnknown_202D4B0
+_0800B1DC: .4byte gUnknown_202D4B4
+ thumb_func_end sub_800B1BC
+
+ thumb_func_start sub_800B1E0
+sub_800B1E0:
+ push {lr}
+ adds r2, r0, 0
+ cmp r2, 0
+ bge _0800B1EA
+ adds r0, r2, 0x3
+_0800B1EA:
+ asrs r0, 2
+ ldr r1, _0800B20C
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x3
+ ands r1, r2
+ cmp r1, 0x1
+ beq _0800B210
+ cmp r1, 0x1
+ ble _0800B216
+ cmp r1, 0x2
+ beq _0800B214
+ cmp r1, 0x3
+ beq _0800B218
+ b _0800B216
+ .align 2, 0
+_0800B20C: .4byte gUnknown_202D4AC
+_0800B210:
+ lsrs r0, 8
+ b _0800B216
+_0800B214:
+ lsrs r0, 16
+_0800B216:
+ lsls r0, 24
+_0800B218:
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800B1E0
+
+ thumb_func_start sub_800B220
+sub_800B220:
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _0800B260
+ ldr r2, _0800B264
+ ldr r3, _0800B268
+ ldr r1, [r3]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ lsls r0, r1
+ ldr r1, [r4]
+ orrs r1, r0
+ str r1, [r4]
+ ldr r2, _0800B26C
+ ldr r0, [r2]
+ str r1, [r0]
+ ldr r0, [r3]
+ adds r0, 0x1
+ str r0, [r3]
+ cmp r0, 0x4
+ bne _0800B258
+ ldr r0, [r2]
+ adds r0, 0x4
+ str r0, [r2]
+ movs r0, 0
+ str r0, [r4]
+ str r0, [r3]
+_0800B258:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800B260: .4byte gUnknown_202D4B0
+_0800B264: .4byte gUnknown_80B9BB8
+_0800B268: .4byte gUnknown_202D4B4
+_0800B26C: .4byte gUnknown_202D4A8
+ thumb_func_end sub_800B220
+
+ thumb_func_start sub_800B270
+sub_800B270:
+ push {lr}
+ ldr r0, _0800B288
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0800B284
+ ldr r0, _0800B28C
+ ldr r1, [r0]
+ ldr r0, _0800B290
+ ldr r0, [r0]
+ str r0, [r1]
+_0800B284:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800B288: .4byte gUnknown_202D4B4
+_0800B28C: .4byte gUnknown_202D4A8
+_0800B290: .4byte gUnknown_202D4B0
+ thumb_func_end sub_800B270
+
+ thumb_func_start sub_800B294
+sub_800B294:
+ push {lr}
+ adds r1, r0, 0
+ ldrb r0, [r1]
+ cmp r0, 0x41
+ bne _0800B2CC
+ ldrb r0, [r1, 0x1]
+ adds r2, r0, 0
+ cmp r2, 0x54
+ bne _0800B2B2
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0x34
+ bne _0800B2B2
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0x50
+ beq _0800B2C8
+_0800B2B2:
+ ldrb r0, [r1]
+ cmp r0, 0x41
+ bne _0800B2CC
+ cmp r2, 0x54
+ bne _0800B2CC
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0x33
+ bne _0800B2CC
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0x50
+ bne _0800B2CC
+_0800B2C8:
+ movs r0, 0x1
+ b _0800B2CE
+_0800B2CC:
+ movs r0, 0
+_0800B2CE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800B294
+
+ thumb_func_start sub_800B2D4
+sub_800B2D4:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r5, r1, 0
+ adds r4, r2, 0
+ movs r2, 0
+ cmp r2, r4
+ bge _0800B324
+_0800B2E2:
+ adds r0, r6, r2
+ ldrb r1, [r0]
+ adds r0, r5, r2
+ ldrb r3, [r0]
+ adds r0, r1, 0
+ subs r0, 0x41
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x19
+ bhi _0800B2FE
+ adds r0, r1, 0
+ adds r0, 0x20
+ lsls r0, 24
+ lsrs r1, r0, 24
+_0800B2FE:
+ adds r0, r3, 0
+ subs r0, 0x41
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x19
+ bhi _0800B312
+ adds r0, r3, 0
+ adds r0, 0x20
+ lsls r0, 24
+ lsrs r3, r0, 24
+_0800B312:
+ cmp r1, r3
+ beq _0800B31A
+ movs r0, 0x1
+ b _0800B326
+_0800B31A:
+ cmp r1, 0
+ beq _0800B324
+ adds r2, 0x1
+ cmp r2, r4
+ blt _0800B2E2
+_0800B324:
+ movs r0, 0
+_0800B326:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800B2D4
+
+ .align 2, 0 @ Don't pad with nop.