summaryrefslogtreecommitdiff
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
parentd07afbc0818370f03ef840419e0bf4f654753ab8 (diff)
split random.s
-rw-r--r--asm/code.s11403
-rw-r--r--asm/code_8006218.s11289
-rw-r--r--asm/random.s130
-rw-r--r--ld_script.txt2
4 files changed, 11421 insertions, 11403 deletions
diff --git a/asm/code.s b/asm/code.s
index d78fb77..633eb5b 100644
--- a/asm/code.s
+++ b/asm/code.s
@@ -12752,11407 +12752,4 @@ _08006140: .4byte gUnknown_2026E4E
_08006144: .4byte gUnknown_2026E38
thumb_func_end sub_80060EC
- thumb_func_start SeedRng
-SeedRng:
- push {r4,lr}
- ldr r4, _08006170
- ldrb r2, [r0]
- ldrb r1, [r0, 0x1]
- muls r2, r1
- ldrb r3, [r0, 0x2]
- ldrb r1, [r0, 0x3]
- muls r1, r3
- ldr r3, _08006174
- adds r1, r3
- adds r2, r1
- ldrb r1, [r0, 0x4]
- ldrb r0, [r0, 0x5]
- muls r0, r1
- adds r2, r0
- str r2, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08006170: .4byte gUnknown_203B07C
-_08006174: .4byte 0x0000d305
- thumb_func_end SeedRng
-
- thumb_func_start Random16
-Random16:
- ldr r2, _08006188
- ldr r1, [r2]
- ldr r0, _0800618C
- muls r0, r1
- adds r0, 0x1
- str r0, [r2]
- asrs r0, 16
- bx lr
- .align 2, 0
-_08006188: .4byte gUnknown_203B07C
-_0800618C: .4byte 0x5d588b65
- thumb_func_end Random16
-
- thumb_func_start Random
-Random:
- push {r4,lr}
- bl Random16
- adds r4, r0, 0
- lsls r4, 16
- asrs r4, 16
- bl Random16
- lsls r0, 16
- asrs r0, 16
- lsls r4, 16
- orrs r4, r0
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end Random
-
- thumb_func_start RandomCapped
-RandomCapped:
- push {r4,lr}
- adds r4, r0, 0
- bl Random
- ldr r1, _080061C8
- ands r0, r1
- muls r0, r4
- asrs r0, 16
- ands r0, r1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080061C8: .4byte 0x0000ffff
- thumb_func_end RandomCapped
-
- thumb_func_start RandomRange
-RandomRange:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- cmp r5, r4
- beq _080061EC
- cmp r5, r4
- blt _080061E4
- subs r0, r5, r4
- bl RandomCapped
- adds r0, r4
- b _080061EC
-_080061E4:
- subs r0, r4, r5
- bl RandomCapped
- adds r0, r5
-_080061EC:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end RandomRange
-
- thumb_func_start GetRngState
-GetRngState:
- ldr r0, _080061FC
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_080061FC: .4byte gUnknown_203B07C
- thumb_func_end GetRngState
-
- thumb_func_start ReseedRng
-ReseedRng:
- push {r4,lr}
- ldr r4, _08006214
- str r0, [r4]
- bl Random
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08006214: .4byte gUnknown_203B07C
- thumb_func_end ReseedRng
-
- 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.
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.
diff --git a/asm/random.s b/asm/random.s
new file mode 100644
index 0000000..d09ba0a
--- /dev/null
+++ b/asm/random.s
@@ -0,0 +1,130 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start SeedRng
+SeedRng:
+ push {r4,lr}
+ ldr r4, _08006170
+ ldrb r2, [r0]
+ ldrb r1, [r0, 0x1]
+ muls r2, r1
+ ldrb r3, [r0, 0x2]
+ ldrb r1, [r0, 0x3]
+ muls r1, r3
+ ldr r3, _08006174
+ adds r1, r3
+ adds r2, r1
+ ldrb r1, [r0, 0x4]
+ ldrb r0, [r0, 0x5]
+ muls r0, r1
+ adds r2, r0
+ str r2, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08006170: .4byte gUnknown_203B07C
+_08006174: .4byte 0x0000d305
+ thumb_func_end SeedRng
+
+ thumb_func_start Random16
+Random16:
+ ldr r2, _08006188
+ ldr r1, [r2]
+ ldr r0, _0800618C
+ muls r0, r1
+ adds r0, 0x1
+ str r0, [r2]
+ asrs r0, 16
+ bx lr
+ .align 2, 0
+_08006188: .4byte gUnknown_203B07C
+_0800618C: .4byte 0x5d588b65
+ thumb_func_end Random16
+
+ thumb_func_start Random
+Random:
+ push {r4,lr}
+ bl Random16
+ adds r4, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ bl Random16
+ lsls r0, 16
+ asrs r0, 16
+ lsls r4, 16
+ orrs r4, r0
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end Random
+
+ thumb_func_start RandomCapped
+RandomCapped:
+ push {r4,lr}
+ adds r4, r0, 0
+ bl Random
+ ldr r1, _080061C8
+ ands r0, r1
+ muls r0, r4
+ asrs r0, 16
+ ands r0, r1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080061C8: .4byte 0x0000ffff
+ thumb_func_end RandomCapped
+
+ thumb_func_start RandomRange
+RandomRange:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ cmp r5, r4
+ beq _080061EC
+ cmp r5, r4
+ blt _080061E4
+ subs r0, r5, r4
+ bl RandomCapped
+ adds r0, r4
+ b _080061EC
+_080061E4:
+ subs r0, r4, r5
+ bl RandomCapped
+ adds r0, r5
+_080061EC:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end RandomRange
+
+ thumb_func_start GetRngState
+GetRngState:
+ ldr r0, _080061FC
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_080061FC: .4byte gUnknown_203B07C
+ thumb_func_end GetRngState
+
+ thumb_func_start ReseedRng
+ReseedRng:
+ push {r4,lr}
+ ldr r4, _08006214
+ str r0, [r4]
+ bl Random
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08006214: .4byte gUnknown_203B07C
+ thumb_func_end ReseedRng
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/ld_script.txt b/ld_script.txt
index dd4aeed..3dc21ff 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -35,6 +35,8 @@ SECTIONS {
{
asm/crt0.o(.text);
asm/code.o(.text);
+ asm/random.o(.text);
+ asm/code_8006218.o(.text);
src/main.o(.text);
asm/code_800B540.o(.text);
asm/m4a.o(.text);