summaryrefslogtreecommitdiff
path: root/asm/code_80035F0.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/code_80035F0.s')
-rw-r--r--asm/code_80035F0.s6004
1 files changed, 6004 insertions, 0 deletions
diff --git a/asm/code_80035F0.s b/asm/code_80035F0.s
new file mode 100644
index 0000000..951ac89
--- /dev/null
+++ b/asm/code_80035F0.s
@@ -0,0 +1,6004 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start nullsub_141
+nullsub_141:
+ bx lr
+ thumb_func_end nullsub_141
+
+ thumb_func_start nullsub_142
+nullsub_142:
+ bx lr
+ thumb_func_end nullsub_142
+
+ thumb_func_start sub_80035F8
+sub_80035F8:
+ push {lr}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80035F8
+
+ thumb_func_start sub_8003600
+sub_8003600:
+ push {r4-r6,lr}
+ ldr r1, _08003650
+ ldr r6, _08003654
+ movs r2, 0
+ ldr r0, _08003658
+ movs r3, 0x80
+ lsls r3, 2
+_0800360E:
+ strb r2, [r0]
+ strb r2, [r0, 0x1]
+ strb r2, [r0, 0x2]
+ strb r2, [r0, 0x3]
+ adds r0, 0x4
+ subs r3, 0x1
+ cmp r3, 0
+ bne _0800360E
+ movs r0, 0
+ movs r5, 0x80
+ lsls r5, 1
+ ldr r4, _0800365C
+ movs r3, 0x20
+ ldr r2, _08003660
+_0800362A:
+ strb r0, [r1]
+ strh r5, [r1, 0x2]
+ strb r0, [r1, 0x4]
+ strb r0, [r1, 0x5]
+ strb r0, [r1, 0x6]
+ strb r0, [r1, 0x7]
+ str r0, [r1, 0x8]
+ str r4, [r1, 0xC]
+ str r2, [r1, 0x10]
+ subs r3, 0x1
+ adds r1, 0x14
+ cmp r3, 0
+ bge _0800362A
+ movs r0, 0x1
+ strb r0, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08003650: .4byte gUnknown_3000C00
+_08003654: .4byte gUnknown_3001B58
+_08003658: .4byte gUnknown_3000400
+_0800365C: .4byte sub_8003A34
+_08003660: .4byte sub_8003A74
+ thumb_func_end sub_8003600
+
+ thumb_func_start sub_8003664
+sub_8003664:
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _0800369C
+ adds r2, r0
+ movs r3, 0
+ movs r4, 0x1
+ strb r4, [r2]
+ movs r0, 0
+ strh r1, [r2, 0x2]
+ strb r0, [r2, 0x4]
+ strb r0, [r2, 0x5]
+ strb r0, [r2, 0x6]
+ strb r0, [r2, 0x7]
+ str r3, [r2, 0x8]
+ ldr r0, _080036A0
+ str r0, [r2, 0xC]
+ ldr r0, _080036A4
+ str r0, [r2, 0x10]
+ ldr r0, _080036A8
+ strb r4, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800369C: .4byte gUnknown_3000C00
+_080036A0: .4byte sub_8003AC0
+_080036A4: .4byte sub_8003B50
+_080036A8: .4byte gUnknown_3001B58
+ thumb_func_end sub_8003664
+
+ thumb_func_start sub_80036AC
+sub_80036AC:
+ push {r4,lr}
+ sub sp, 0x4
+ str r2, [sp]
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _080036E4
+ adds r2, r0
+ movs r3, 0
+ movs r4, 0x1
+ strb r4, [r2]
+ strh r1, [r2, 0x2]
+ ldr r0, [sp]
+ str r0, [r2, 0x4]
+ str r3, [r2, 0x8]
+ ldr r0, _080036E8
+ str r0, [r2, 0xC]
+ ldr r0, _080036EC
+ str r0, [r2, 0x10]
+ ldr r0, _080036F0
+ strb r4, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080036E4: .4byte gUnknown_3000C00
+_080036E8: .4byte sub_8003C18
+_080036EC: .4byte sub_8003D00
+_080036F0: .4byte gUnknown_3001B58
+ thumb_func_end sub_80036AC
+
+ thumb_func_start sub_80036F4
+sub_80036F4:
+ push {r4,lr}
+ sub sp, 0x4
+ str r2, [sp]
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _0800372C
+ adds r2, r0
+ movs r3, 0
+ movs r4, 0x1
+ strb r4, [r2]
+ strh r1, [r2, 0x2]
+ ldr r0, [sp]
+ str r0, [r2, 0x4]
+ str r3, [r2, 0x8]
+ ldr r0, _08003730
+ str r0, [r2, 0xC]
+ ldr r0, _08003734
+ str r0, [r2, 0x10]
+ ldr r0, _08003738
+ strb r4, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800372C: .4byte gUnknown_3000C00
+_08003730: .4byte sub_8003E2C
+_08003734: .4byte sub_8003EC0
+_08003738: .4byte gUnknown_3001B58
+ thumb_func_end sub_80036F4
+
+ thumb_func_start sub_800373C
+sub_800373C:
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r3, r0, 2
+ adds r3, r0
+ lsls r3, 2
+ ldr r0, _08003770
+ adds r3, r0
+ movs r4, 0x1
+ strb r4, [r3]
+ movs r0, 0
+ strh r1, [r3, 0x2]
+ strb r0, [r3, 0x4]
+ strb r0, [r3, 0x5]
+ strb r0, [r3, 0x6]
+ strb r0, [r3, 0x7]
+ str r2, [r3, 0x8]
+ ldr r0, _08003774
+ str r0, [r3, 0xC]
+ ldr r0, _08003778
+ str r0, [r3, 0x10]
+ ldr r0, _0800377C
+ strb r4, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08003770: .4byte gUnknown_3000C00
+_08003774: .4byte sub_8003F60
+_08003778: .4byte sub_8004034
+_0800377C: .4byte gUnknown_3001B58
+ thumb_func_end sub_800373C
+
+ thumb_func_start sub_8003780
+sub_8003780:
+ push {r4,lr}
+ sub sp, 0x4
+ str r2, [sp]
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _080037B8
+ adds r2, r0
+ movs r3, 0
+ movs r4, 0x1
+ strb r4, [r2]
+ strh r1, [r2, 0x2]
+ ldr r0, [sp]
+ str r0, [r2, 0x4]
+ str r3, [r2, 0x8]
+ ldr r0, _080037BC
+ str r0, [r2, 0xC]
+ ldr r0, _080037C0
+ str r0, [r2, 0x10]
+ ldr r0, _080037C4
+ strb r4, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080037B8: .4byte gUnknown_3000C00
+_080037BC: .4byte sub_8004170
+_080037C0: .4byte sub_8004264
+_080037C4: .4byte gUnknown_3001B58
+ thumb_func_end sub_8003780
+
+ thumb_func_start sub_80037C8
+sub_80037C8:
+ push {r4,lr}
+ sub sp, 0x4
+ str r2, [sp]
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _08003800
+ adds r2, r0
+ movs r3, 0
+ movs r4, 0x1
+ strb r4, [r2]
+ strh r1, [r2, 0x2]
+ ldr r0, [sp]
+ str r0, [r2, 0x4]
+ str r3, [r2, 0x8]
+ ldr r0, _08003804
+ str r0, [r2, 0xC]
+ ldr r0, _08003808
+ str r0, [r2, 0x10]
+ ldr r0, _0800380C
+ strb r4, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08003800: .4byte gUnknown_3000C00
+_08003804: .4byte sub_8004388
+_08003808: .4byte sub_8004434
+_0800380C: .4byte gUnknown_3001B58
+ thumb_func_end sub_80037C8
+
+ thumb_func_start sub_8003810
+sub_8003810:
+ sub sp, 0x4
+ str r1, [sp]
+ lsls r0, 16
+ lsrs r2, r0, 20
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 2
+ ldr r2, _08003838
+ adds r1, r2
+ movs r2, 0x1
+ strb r2, [r1]
+ ldr r1, _0800383C
+ lsrs r0, 14
+ adds r0, r1
+ ldr r1, [sp]
+ str r1, [r0]
+ ldr r0, _08003840
+ strb r2, [r0]
+ add sp, 0x4
+ bx lr
+ .align 2, 0
+_08003838: .4byte gUnknown_3000C00
+_0800383C: .4byte gUnknown_3000400
+_08003840: .4byte gUnknown_3001B58
+ thumb_func_end sub_8003810
+
+ thumb_func_start sub_8003844
+sub_8003844:
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ lsrs r0, 20
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _08003880
+ adds r2, r0
+ movs r5, 0x1
+ strb r5, [r2]
+ adds r0, r1, 0
+ bl sub_80027A0
+ str r0, [sp]
+ ldr r0, _08003884
+ lsls r4, 2
+ adds r4, r0
+ ldr r0, [sp]
+ str r0, [r4]
+ ldr r0, _08003888
+ strb r5, [r0]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08003880: .4byte gUnknown_3000C00
+_08003884: .4byte gUnknown_3000400
+_08003888: .4byte gUnknown_3001B58
+ thumb_func_end sub_8003844
+
+ thumb_func_start sub_800388C
+sub_800388C:
+ push {r4-r7,lr}
+ adds r6, r1, 0
+ lsls r0, 16
+ lsrs r1, r0, 16
+ lsrs r4, r0, 20
+ adds r3, r1, r2
+ subs r0, r3, 0x1
+ cmp r0, 0
+ bge _080038A0
+ adds r0, 0xF
+_080038A0:
+ lsls r0, 12
+ lsrs r3, r0, 16
+ lsls r1, 2
+ ldr r0, _080038E4
+ adds r1, r0
+ lsls r5, r4, 2
+ ldr r7, _080038E8
+ ldr r0, _080038EC
+ mov r12, r0
+ cmp r2, 0
+ ble _080038C0
+_080038B6:
+ ldm r6!, {r0}
+ stm r1!, {r0}
+ subs r2, 0x1
+ cmp r2, 0
+ bne _080038B6
+_080038C0:
+ adds r0, r5, r4
+ lsls r0, 2
+ adds r0, r7
+ adds r2, r4, 0
+ cmp r2, r3
+ bgt _080038D8
+ movs r1, 0x1
+_080038CE:
+ strb r1, [r0]
+ adds r2, 0x1
+ adds r0, 0x14
+ cmp r2, r3
+ ble _080038CE
+_080038D8:
+ movs r0, 0x1
+ mov r1, r12
+ strb r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080038E4: .4byte gUnknown_3000400
+_080038E8: .4byte gUnknown_3000C00
+_080038EC: .4byte gUnknown_3001B58
+ thumb_func_end sub_800388C
+
+ thumb_func_start sub_80038F0
+sub_80038F0:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ adds r5, r1, 0
+ lsls r0, 16
+ lsrs r1, r0, 16
+ lsrs r6, r0, 20
+ adds r3, r1, r2
+ subs r0, r3, 0x1
+ cmp r0, 0
+ bge _0800390C
+ adds r0, 0xF
+_0800390C:
+ lsls r0, 12
+ lsrs r7, r0, 16
+ lsls r1, 2
+ ldr r0, _0800396C
+ adds r1, r0
+ mov r8, r1
+ lsls r0, r6, 2
+ mov r9, r0
+ cmp r2, 0
+ ble _0800393C
+ adds r4, r2, 0
+_08003922:
+ ldrh r0, [r5]
+ adds r5, 0x2
+ bl sub_80027A0
+ str r0, [sp]
+ mov r1, r8
+ adds r1, 0x4
+ mov r8, r1
+ subs r1, 0x4
+ stm r1!, {r0}
+ subs r4, 0x1
+ cmp r4, 0
+ bne _08003922
+_0800393C:
+ mov r1, r9
+ adds r0, r1, r6
+ lsls r0, 2
+ ldr r1, _08003970
+ adds r0, r1
+ adds r4, r6, 0
+ ldr r2, _08003974
+ cmp r4, r7
+ bgt _0800395A
+ movs r1, 0x1
+_08003950:
+ strb r1, [r0]
+ adds r4, 0x1
+ adds r0, 0x14
+ cmp r4, r7
+ ble _08003950
+_0800395A:
+ movs r0, 0x1
+ strb r0, [r2]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800396C: .4byte gUnknown_3000400
+_08003970: .4byte gUnknown_3000C00
+_08003974: .4byte gUnknown_3001B58
+ thumb_func_end sub_80038F0
+
+ thumb_func_start sub_8003978
+sub_8003978:
+ lsls r0, 16
+ ldr r1, _08003984
+ lsrs r0, 14
+ adds r0, r1
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_08003984: .4byte gUnknown_3000400
+ thumb_func_end sub_8003978
+
+ thumb_func_start sub_8003988
+sub_8003988:
+ push {lr}
+ lsls r0, 16
+ ldr r1, _080039A0
+ lsrs r0, 14
+ adds r0, r1
+ ldr r0, [r0]
+ bl sub_8002774
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080039A0: .4byte gUnknown_3000400
+ thumb_func_end sub_8003988
+
+ thumb_func_start sub_80039A4
+sub_80039A4:
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _080039B4
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_080039B4: .4byte gUnknown_3001B5A
+ thumb_func_end sub_80039A4
+
+ thumb_func_start sub_80039B8
+sub_80039B8:
+ push {r4,r5,lr}
+ ldr r0, _08003A28
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08003A20
+ ldr r4, _08003A2C
+ movs r1, 0x96
+ lsls r1, 1
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080039DA
+ movs r0, 0xA0
+ lsls r0, 2
+ adds r1, r4, r0
+ movs r0, 0x1
+ strb r0, [r1]
+_080039DA:
+ movs r5, 0
+_080039DC:
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080039F0
+ lsls r0, r5, 16
+ lsrs r0, 16
+ ldr r1, [r4, 0x10]
+ bl _call_via_r1
+ movs r0, 0
+ strb r0, [r4]
+_080039F0:
+ adds r5, 0x1
+ adds r4, 0x14
+ cmp r5, 0x1F
+ ble _080039DC
+ ldr r0, _08003A2C
+ movs r1, 0xA0
+ lsls r1, 2
+ adds r5, r0, r1
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _08003A14
+ ldr r2, [r4, 0xC]
+ movs r0, 0x20
+ movs r1, 0xF0
+ bl _call_via_r2
+ movs r0, 0
+ strb r0, [r5]
+_08003A14:
+ ldr r1, _08003A30
+ movs r0, 0x3
+ strh r0, [r1]
+ ldr r1, _08003A28
+ movs r0, 0
+ strb r0, [r1]
+_08003A20:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08003A28: .4byte gUnknown_3001B58
+_08003A2C: .4byte gUnknown_3000C00
+_08003A30: .4byte gUnknown_3001B5A
+ thumb_func_end sub_80039B8
+
+ thumb_func_start sub_8003A34
+sub_8003A34:
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, r1, 16
+ lsrs r0, 16
+ lsls r5, r0, 2
+ ldr r1, _08003A70
+ adds r5, r1
+ ldrb r1, [r5, 0x2]
+ movs r2, 0xF8
+ adds r3, r2, 0
+ ands r3, r1
+ lsls r3, 7
+ ldrb r4, [r5, 0x1]
+ adds r1, r2, 0
+ ands r1, r4
+ lsls r1, 2
+ orrs r3, r1
+ ldrb r1, [r5]
+ ands r2, r1
+ lsrs r2, 3
+ orrs r2, r3
+ mov r1, sp
+ strh r2, [r1]
+ bl SetBGPaletteBufferColor
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08003A70: .4byte gUnknown_3000400
+ thumb_func_end sub_8003A34
+
+ thumb_func_start sub_8003A74
+sub_8003A74:
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 20
+ lsrs r6, r0, 16
+ lsls r1, r6, 2
+ ldr r0, _08003ABC
+ adds r4, r1, r0
+ movs r5, 0
+ movs r7, 0xF8
+_08003A86:
+ ldrb r0, [r4, 0x2]
+ adds r1, r7, 0
+ ands r1, r0
+ lsls r1, 7
+ ldrb r2, [r4, 0x1]
+ adds r0, r7, 0
+ ands r0, r2
+ lsls r0, 2
+ orrs r1, r0
+ ldrb r2, [r4]
+ adds r0, r7, 0
+ ands r0, r2
+ lsrs r0, 3
+ orrs r0, r1
+ mov r1, sp
+ strh r0, [r1]
+ adds r0, r6, r5
+ bl SetBGPaletteBufferColor
+ adds r4, 0x4
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _08003A86
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08003ABC: .4byte gUnknown_3000400
+ thumb_func_end sub_8003A74
+
+ thumb_func_start sub_8003AC0
+sub_8003AC0:
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08003B04
+ adds r1, r0
+ ldrh r2, [r1, 0x2]
+ adds r6, r2, 0
+ lsls r1, r7, 2
+ ldr r0, _08003B08
+ adds r4, r1, r0
+ cmp r2, 0xFF
+ bls _08003B0C
+ ldrb r0, [r4, 0x2]
+ movs r1, 0xF8
+ adds r2, r1, 0
+ ands r2, r0
+ lsls r2, 7
+ ldrb r3, [r4, 0x1]
+ adds r0, r1, 0
+ ands r0, r3
+ lsls r0, 2
+ orrs r2, r0
+ ldrb r0, [r4]
+ ands r1, r0
+ lsrs r1, 3
+ orrs r1, r2
+ b _08003B3A
+ .align 2, 0
+_08003B04: .4byte gUnknown_3000C00
+_08003B08: .4byte gUnknown_3000400
+_08003B0C:
+ cmp r2, 0
+ bne _08003B16
+ mov r0, sp
+ strh r2, [r0]
+ b _08003B3E
+_08003B16:
+ ldrb r0, [r4, 0x2]
+ muls r0, r2
+ asrs r0, 8
+ movs r3, 0xF8
+ ands r0, r3
+ lsls r5, r0, 7
+ ldrb r0, [r4, 0x1]
+ muls r0, r2
+ asrs r0, 8
+ ands r0, r3
+ lsls r1, r0, 2
+ orrs r1, r5
+ ldrb r0, [r4]
+ muls r0, r6
+ asrs r0, 8
+ ands r0, r3
+ lsrs r0, 3
+ orrs r1, r0
+_08003B3A:
+ mov r0, sp
+ strh r1, [r0]
+_08003B3E:
+ adds r0, r7, 0
+ mov r1, sp
+ bl SetBGPaletteBufferColor
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8003AC0
+
+ thumb_func_start sub_8003B50
+sub_8003B50:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, _08003BAC
+ adds r1, r2
+ ldrh r6, [r1, 0x2]
+ lsls r0, 20
+ lsrs r7, r0, 16
+ lsls r1, r7, 2
+ ldr r0, _08003BB0
+ adds r4, r1, r0
+ cmp r6, 0xFF
+ bls _08003BB4
+ movs r5, 0
+ movs r6, 0xF8
+_08003B7A:
+ ldrb r0, [r4, 0x2]
+ adds r1, r6, 0
+ ands r1, r0
+ lsls r1, 7
+ ldrb r2, [r4, 0x1]
+ adds r0, r6, 0
+ ands r0, r2
+ lsls r0, 2
+ orrs r1, r0
+ ldrb r2, [r4]
+ adds r0, r6, 0
+ ands r0, r2
+ lsrs r0, 3
+ orrs r0, r1
+ mov r1, sp
+ strh r0, [r1]
+ adds r0, r7, r5
+ bl SetBGPaletteBufferColor
+ adds r4, 0x4
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _08003B7A
+ b _08003C0A
+ .align 2, 0
+_08003BAC: .4byte gUnknown_3000C00
+_08003BB0: .4byte gUnknown_3000400
+_08003BB4:
+ cmp r6, 0
+ bne _08003BCE
+ mov r0, sp
+ strh r6, [r0]
+ movs r5, 0
+_08003BBE:
+ adds r0, r7, r5
+ mov r1, sp
+ bl SetBGPaletteBufferColor
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _08003BBE
+ b _08003C0A
+_08003BCE:
+ movs r5, 0
+ mov r8, sp
+_08003BD2:
+ ldrb r0, [r4, 0x2]
+ muls r0, r6
+ asrs r0, 8
+ movs r3, 0xF8
+ ands r0, r3
+ lsls r2, r0, 7
+ ldrb r0, [r4, 0x1]
+ muls r0, r6
+ asrs r0, 8
+ ands r0, r3
+ lsls r1, r0, 2
+ orrs r1, r2
+ ldrb r0, [r4]
+ muls r0, r6
+ asrs r0, 8
+ ands r0, r3
+ lsrs r0, 3
+ orrs r1, r0
+ mov r0, r8
+ strh r1, [r0]
+ adds r0, r7, r5
+ mov r1, sp
+ bl SetBGPaletteBufferColor
+ adds r4, 0x4
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _08003BD2
+_08003C0A:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8003B50
+
+ thumb_func_start sub_8003C18
+sub_8003C18:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ mov r8, r1
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08003C68
+ adds r1, r0
+ ldrh r2, [r1, 0x2]
+ mov r12, r2
+ ldr r0, [r1, 0x4]
+ str r0, [sp]
+ mov r0, r8
+ lsls r1, r0, 2
+ ldr r0, _08003C6C
+ adds r4, r1, r0
+ cmp r2, 0xFF
+ bls _08003C70
+ ldrb r0, [r4, 0x2]
+ movs r1, 0xF8
+ adds r2, r1, 0
+ ands r2, r0
+ lsls r2, 7
+ ldrb r3, [r4, 0x1]
+ adds r0, r1, 0
+ ands r0, r3
+ lsls r0, 2
+ orrs r2, r0
+ ldrb r0, [r4]
+ ands r1, r0
+ lsrs r1, 3
+ orrs r1, r2
+ b _08003CE8
+ .align 2, 0
+_08003C68: .4byte gUnknown_3000C00
+_08003C6C: .4byte gUnknown_3000400
+_08003C70:
+ cmp r2, 0
+ bne _08003C98
+ mov r0, sp
+ ldrb r0, [r0, 0x2]
+ movs r1, 0xF8
+ adds r2, r1, 0
+ ands r2, r0
+ lsls r2, 7
+ mov r0, sp
+ ldrb r3, [r0, 0x1]
+ adds r0, r1, 0
+ ands r0, r3
+ lsls r0, 2
+ orrs r2, r0
+ mov r0, sp
+ ldrb r0, [r0]
+ ands r1, r0
+ lsrs r1, 3
+ orrs r1, r2
+ b _08003CE8
+_08003C98:
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1, 0
+ subs r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r1, sp
+ ldrb r1, [r1]
+ adds r7, r1, 0
+ muls r7, r0
+ mov r1, sp
+ ldrb r1, [r1, 0x1]
+ adds r6, r1, 0
+ muls r6, r0
+ mov r1, sp
+ ldrb r1, [r1, 0x2]
+ muls r1, r0
+ ldrb r0, [r4, 0x2]
+ muls r0, r2
+ adds r0, r1
+ asrs r0, 8
+ movs r3, 0xF8
+ ands r0, r3
+ lsls r5, r0, 7
+ ldrb r0, [r4, 0x1]
+ muls r0, r2
+ adds r0, r6
+ asrs r0, 8
+ ands r0, r3
+ lsls r1, r0, 2
+ orrs r1, r5
+ ldrb r0, [r4]
+ mov r2, r12
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r7
+ asrs r0, 8
+ ands r0, r3
+ lsrs r0, 3
+ orrs r1, r0
+_08003CE8:
+ add r0, sp, 0x4
+ strh r1, [r0]
+ adds r1, r0, 0
+ mov r0, r8
+ bl SetBGPaletteBufferColor
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8003C18
+
+ thumb_func_start sub_8003D00
+sub_8003D00:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, _08003D68
+ adds r1, r2
+ ldrh r6, [r1, 0x2]
+ ldr r1, [r1, 0x4]
+ str r1, [sp]
+ lsls r0, 20
+ lsrs r0, 16
+ mov r8, r0
+ lsls r1, r0, 2
+ ldr r0, _08003D6C
+ adds r4, r1, r0
+ cmp r6, 0xFF
+ bls _08003D70
+ movs r5, 0
+ movs r7, 0xF8
+ add r6, sp, 0x4
+_08003D36:
+ ldrb r0, [r4, 0x2]
+ adds r1, r7, 0
+ ands r1, r0
+ lsls r1, 7
+ ldrb r2, [r4, 0x1]
+ adds r0, r7, 0
+ ands r0, r2
+ lsls r0, 2
+ orrs r1, r0
+ ldrb r2, [r4]
+ adds r0, r7, 0
+ ands r0, r2
+ lsrs r0, 3
+ orrs r0, r1
+ strh r0, [r6]
+ mov r1, r8
+ adds r0, r1, r5
+ adds r1, r6, 0
+ bl SetBGPaletteBufferColor
+ adds r4, 0x4
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _08003D36
+ b _08003E1C
+ .align 2, 0
+_08003D68: .4byte gUnknown_3000C00
+_08003D6C: .4byte gUnknown_3000400
+_08003D70:
+ cmp r6, 0
+ bne _08003DAE
+ add r4, sp, 0x4
+ mov r0, sp
+ ldrb r0, [r0, 0x2]
+ movs r1, 0xF8
+ adds r2, r1, 0
+ ands r2, r0
+ lsls r2, 7
+ mov r0, sp
+ ldrb r3, [r0, 0x1]
+ adds r0, r1, 0
+ ands r0, r3
+ lsls r0, 2
+ orrs r2, r0
+ mov r0, sp
+ ldrb r0, [r0]
+ ands r1, r0
+ lsrs r1, 3
+ orrs r1, r2
+ strh r1, [r4]
+ movs r5, 0
+_08003D9C:
+ mov r2, r8
+ adds r0, r2, r5
+ adds r1, r4, 0
+ bl SetBGPaletteBufferColor
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _08003D9C
+ b _08003E1C
+_08003DAE:
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1, 0
+ subs r0, r6
+ lsls r0, 16
+ lsrs r0, 16
+ mov r1, sp
+ ldrb r1, [r1]
+ adds r2, r1, 0
+ muls r2, r0
+ str r2, [sp, 0x8]
+ mov r1, sp
+ ldrb r1, [r1, 0x1]
+ adds r2, r1, 0
+ muls r2, r0
+ mov r10, r2
+ mov r1, sp
+ ldrb r1, [r1, 0x2]
+ adds r2, r1, 0
+ muls r2, r0
+ mov r9, r2
+ movs r5, 0
+ add r7, sp, 0x4
+_08003DDC:
+ ldrb r0, [r4, 0x2]
+ muls r0, r6
+ add r0, r9
+ asrs r0, 8
+ movs r3, 0xF8
+ ands r0, r3
+ lsls r2, r0, 7
+ ldrb r0, [r4, 0x1]
+ muls r0, r6
+ add r0, r10
+ asrs r0, 8
+ ands r0, r3
+ lsls r1, r0, 2
+ orrs r1, r2
+ ldrb r0, [r4]
+ muls r0, r6
+ ldr r2, [sp, 0x8]
+ adds r0, r2
+ asrs r0, 8
+ ands r0, r3
+ lsrs r0, 3
+ orrs r1, r0
+ strh r1, [r7]
+ mov r1, r8
+ adds r0, r1, r5
+ adds r1, r7, 0
+ bl SetBGPaletteBufferColor
+ adds r4, 0x4
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _08003DDC
+_08003E1C:
+ 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_8003D00
+
+ thumb_func_start sub_8003E2C
+sub_8003E2C:
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08003E74
+ adds r1, r0
+ ldrh r2, [r1, 0x2]
+ adds r5, r2, 0
+ ldr r0, [r1, 0x4]
+ str r0, [sp]
+ cmp r2, 0xFF
+ bls _08003E78
+ mov r0, sp
+ ldrb r0, [r0, 0x2]
+ movs r1, 0xF8
+ adds r2, r1, 0
+ ands r2, r0
+ lsls r2, 7
+ mov r0, sp
+ ldrb r3, [r0, 0x1]
+ adds r0, r1, 0
+ ands r0, r3
+ lsls r0, 2
+ orrs r2, r0
+ mov r0, sp
+ ldrb r0, [r0]
+ ands r1, r0
+ lsrs r1, 3
+ orrs r1, r2
+ b _08003EAC
+ .align 2, 0
+_08003E74: .4byte gUnknown_3000C00
+_08003E78:
+ cmp r2, 0
+ bne _08003E82
+ add r0, sp, 0x4
+ strh r2, [r0]
+ b _08003EB0
+_08003E82:
+ mov r0, sp
+ ldrb r0, [r0, 0x2]
+ muls r0, r2
+ asrs r0, 8
+ movs r3, 0xF8
+ ands r0, r3
+ lsls r4, r0, 7
+ mov r0, sp
+ ldrb r0, [r0, 0x1]
+ muls r0, r2
+ asrs r0, 8
+ ands r0, r3
+ lsls r1, r0, 2
+ orrs r1, r4
+ mov r0, sp
+ ldrb r0, [r0]
+ muls r0, r5
+ asrs r0, 8
+ ands r0, r3
+ lsrs r0, 3
+ orrs r1, r0
+_08003EAC:
+ add r0, sp, 0x4
+ strh r1, [r0]
+_08003EB0:
+ adds r1, r0, 0
+ adds r0, r6, 0
+ bl SetBGPaletteBufferColor
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8003E2C
+
+ thumb_func_start sub_8003EC0
+sub_8003EC0:
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, _08003F08
+ adds r1, r2
+ ldrh r2, [r1, 0x2]
+ adds r5, r2, 0
+ ldr r1, [r1, 0x4]
+ str r1, [sp]
+ lsls r0, 20
+ lsrs r6, r0, 16
+ cmp r2, 0xFF
+ bls _08003F0C
+ mov r0, sp
+ ldrb r0, [r0, 0x2]
+ movs r1, 0xF8
+ adds r2, r1, 0
+ ands r2, r0
+ lsls r2, 7
+ mov r0, sp
+ ldrb r3, [r0, 0x1]
+ adds r0, r1, 0
+ ands r0, r3
+ lsls r0, 2
+ orrs r2, r0
+ mov r0, sp
+ ldrb r0, [r0]
+ ands r1, r0
+ lsrs r1, 3
+ orrs r1, r2
+ b _08003F40
+ .align 2, 0
+_08003F08: .4byte gUnknown_3000C00
+_08003F0C:
+ cmp r2, 0
+ bne _08003F16
+ add r0, sp, 0x4
+ strh r2, [r0]
+ b _08003F44
+_08003F16:
+ mov r0, sp
+ ldrb r0, [r0, 0x2]
+ muls r0, r2
+ asrs r0, 8
+ movs r3, 0xF8
+ ands r0, r3
+ lsls r4, r0, 7
+ mov r0, sp
+ ldrb r0, [r0, 0x1]
+ muls r0, r2
+ asrs r0, 8
+ ands r0, r3
+ lsls r1, r0, 2
+ orrs r1, r4
+ mov r0, sp
+ ldrb r0, [r0]
+ muls r0, r5
+ asrs r0, 8
+ ands r0, r3
+ lsrs r0, 3
+ orrs r1, r0
+_08003F40:
+ add r0, sp, 0x4
+ strh r1, [r0]
+_08003F44:
+ adds r5, r0, 0
+ movs r4, 0
+_08003F48:
+ adds r0, r6, r4
+ adds r1, r5, 0
+ bl SetBGPaletteBufferColor
+ adds r4, 0x1
+ cmp r4, 0xF
+ ble _08003F48
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8003EC0
+
+ thumb_func_start sub_8003F60
+sub_8003F60:
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08003FA8
+ adds r1, r0
+ ldrh r2, [r1, 0x2]
+ adds r3, r2, 0
+ movs r0, 0xF
+ ands r0, r7
+ lsls r0, 2
+ ldr r1, [r1, 0x8]
+ adds r5, r1, r0
+ lsls r1, r7, 2
+ ldr r0, _08003FAC
+ adds r4, r1, r0
+ cmp r2, 0xFF
+ bls _08003FB0
+ ldrb r0, [r4, 0x2]
+ movs r1, 0xF8
+ adds r2, r1, 0
+ ands r2, r0
+ lsls r2, 7
+ ldrb r3, [r4, 0x1]
+ adds r0, r1, 0
+ ands r0, r3
+ lsls r0, 2
+ orrs r2, r0
+ ldrb r0, [r4]
+ b _08003FCA
+ .align 2, 0
+_08003FA8: .4byte gUnknown_3000C00
+_08003FAC: .4byte gUnknown_3000400
+_08003FB0:
+ cmp r2, 0
+ bne _08003FD6
+ ldrb r0, [r5, 0x2]
+ movs r1, 0xF8
+ adds r2, r1, 0
+ ands r2, r0
+ lsls r2, 7
+ ldrb r3, [r5, 0x1]
+ adds r0, r1, 0
+ ands r0, r3
+ lsls r0, 2
+ orrs r2, r0
+ ldrb r0, [r5]
+_08003FCA:
+ ands r1, r0
+ lsrs r1, 3
+ orrs r1, r2
+ mov r0, sp
+ strh r1, [r0]
+ b _08004024
+_08003FD6:
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1, 0
+ subs r0, r3
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r1, [r5]
+ adds r2, r1, 0
+ muls r2, r0
+ ldrb r1, [r4]
+ muls r1, r3
+ adds r6, r2, r1
+ ldrb r1, [r5, 0x1]
+ adds r2, r1, 0
+ muls r2, r0
+ ldrb r1, [r4, 0x1]
+ muls r1, r3
+ adds r2, r1
+ ldrb r1, [r5, 0x2]
+ muls r1, r0
+ ldrb r0, [r4, 0x2]
+ muls r0, r3
+ adds r0, r1, r0
+ asrs r0, 8
+ movs r3, 0xF8
+ ands r0, r3
+ lsls r1, r0, 7
+ adds r0, r2, 0
+ asrs r0, 8
+ ands r0, r3
+ lsls r2, r0, 2
+ orrs r2, r1
+ adds r0, r6, 0
+ asrs r0, 8
+ ands r0, r3
+ lsrs r0, 3
+ orrs r2, r0
+ mov r0, sp
+ strh r2, [r0]
+_08004024:
+ adds r0, r7, 0
+ mov r1, sp
+ bl SetBGPaletteBufferColor
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8003F60
+
+ thumb_func_start sub_8004034
+sub_8004034:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, _0800409C
+ adds r1, r2
+ ldrh r2, [r1, 0x2]
+ mov r8, r2
+ ldr r5, [r1, 0x8]
+ lsls r0, 20
+ lsrs r0, 16
+ mov r10, r0
+ lsls r1, r0, 2
+ ldr r0, _080040A0
+ adds r4, r1, r0
+ cmp r2, 0xFF
+ bls _080040A4
+ movs r7, 0
+ movs r5, 0xF8
+_08004068:
+ ldrb r0, [r4, 0x2]
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r1, 7
+ ldrb r2, [r4, 0x1]
+ adds r0, r5, 0
+ ands r0, r2
+ lsls r0, 2
+ orrs r1, r0
+ ldrb r2, [r4]
+ adds r0, r5, 0
+ ands r0, r2
+ lsrs r0, 3
+ orrs r0, r1
+ mov r1, sp
+ strh r0, [r1]
+ mov r1, r10
+ adds r0, r1, r7
+ mov r1, sp
+ bl SetBGPaletteBufferColor
+ adds r4, 0x4
+ adds r7, 0x1
+ cmp r7, 0xF
+ ble _08004068
+ b _0800415E
+ .align 2, 0
+_0800409C: .4byte gUnknown_3000C00
+_080040A0: .4byte gUnknown_3000400
+_080040A4:
+ mov r2, r8
+ cmp r2, 0
+ bne _080040E2
+ movs r7, 0
+ mov r6, sp
+ movs r4, 0xF8
+_080040B0:
+ ldrb r0, [r5, 0x2]
+ adds r1, r4, 0
+ ands r1, r0
+ lsls r1, 7
+ ldrb r2, [r5, 0x1]
+ adds r0, r4, 0
+ ands r0, r2
+ lsls r0, 2
+ orrs r1, r0
+ ldrb r2, [r5]
+ adds r0, r4, 0
+ ands r0, r2
+ lsrs r0, 3
+ orrs r0, r1
+ strh r0, [r6]
+ mov r1, r10
+ adds r0, r1, r7
+ mov r1, sp
+ bl SetBGPaletteBufferColor
+ adds r5, 0x4
+ adds r7, 0x1
+ cmp r7, 0xF
+ ble _080040B0
+ b _0800415E
+_080040E2:
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ mov r1, r8
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ movs r7, 0
+ mov r2, sp
+ str r2, [sp, 0x4]
+_080040F8:
+ ldrb r0, [r5]
+ mov r1, r9
+ muls r1, r0
+ ldrb r0, [r4]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ adds r1, r0
+ mov r12, r1
+ ldrb r0, [r5, 0x1]
+ mov r1, r9
+ muls r1, r0
+ ldrb r0, [r4, 0x1]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ adds r6, r1, r0
+ ldrb r0, [r5, 0x2]
+ mov r1, r9
+ muls r1, r0
+ ldrb r0, [r4, 0x2]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r1, r0
+ asrs r0, 8
+ movs r3, 0xF8
+ ands r0, r3
+ lsls r2, r0, 7
+ adds r0, r6, 0
+ asrs r0, 8
+ ands r0, r3
+ lsls r1, r0, 2
+ orrs r1, r2
+ mov r0, r12
+ asrs r0, 8
+ ands r0, r3
+ lsrs r0, 3
+ orrs r1, r0
+ ldr r0, [sp, 0x4]
+ strh r1, [r0]
+ mov r1, r10
+ adds r0, r1, r7
+ mov r1, sp
+ bl SetBGPaletteBufferColor
+ adds r4, 0x4
+ adds r5, 0x4
+ adds r7, 0x1
+ cmp r7, 0xF
+ ble _080040F8
+_0800415E:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8004034
+
+ thumb_func_start sub_8004170
+sub_8004170:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _080041C4
+ adds r1, r0
+ ldrh r2, [r1, 0x2]
+ adds r4, r2, 0
+ ldr r0, [r1, 0x4]
+ str r0, [sp]
+ mov r0, r9
+ lsls r1, r0, 2
+ ldr r0, _080041C8
+ adds r6, r1, r0
+ cmp r2, 0xFF
+ bls _080041CC
+ ldrb r0, [r6, 0x2]
+ movs r1, 0xF8
+ adds r2, r1, 0
+ ands r2, r0
+ lsls r2, 7
+ ldrb r3, [r6, 0x1]
+ adds r0, r1, 0
+ ands r0, r3
+ lsls r0, 2
+ orrs r2, r0
+ ldrb r0, [r6]
+ ands r1, r0
+ lsrs r1, 3
+ orrs r1, r2
+ add r0, sp, 0x4
+ strh r1, [r0]
+ b _0800424C
+ .align 2, 0
+_080041C4: .4byte gUnknown_3000C00
+_080041C8: .4byte gUnknown_3000400
+_080041CC:
+ mov r0, sp
+ ldrb r1, [r0]
+ movs r3, 0xFF
+ subs r0, r3, r1
+ muls r0, r2
+ cmp r0, 0
+ bge _080041DC
+ adds r0, 0xFF
+_080041DC:
+ asrs r0, 8
+ adds r0, r1, r0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ mov r0, sp
+ ldrb r1, [r0, 0x1]
+ subs r0, r3, r1
+ muls r0, r2
+ cmp r0, 0
+ bge _080041F4
+ adds r0, 0xFF
+_080041F4:
+ asrs r0, 8
+ adds r0, r1, r0
+ lsls r0, 16
+ lsrs r7, r0, 16
+ mov r0, sp
+ ldrb r1, [r0, 0x2]
+ subs r0, r3, r1
+ muls r0, r4
+ cmp r0, 0
+ bge _0800420A
+ adds r0, 0xFF
+_0800420A:
+ asrs r0, 8
+ adds r0, r1, r0
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r1, [r6, 0x2]
+ muls r0, r1
+ movs r1, 0xFF
+ bl __divsi3
+ adds r4, r0, 0
+ movs r5, 0xF8
+ ands r4, r5
+ lsls r4, 7
+ ldrb r0, [r6, 0x1]
+ muls r0, r7
+ movs r1, 0xFF
+ bl __divsi3
+ ands r0, r5
+ lsls r0, 2
+ orrs r4, r0
+ ldrb r0, [r6]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ movs r1, 0xFF
+ bl __divsi3
+ ands r0, r5
+ lsrs r0, 3
+ orrs r4, r0
+ add r0, sp, 0x4
+ strh r4, [r0]
+_0800424C:
+ adds r1, r0, 0
+ mov r0, r9
+ bl SetBGPaletteBufferColor
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8004170
+
+ thumb_func_start sub_8004264
+sub_8004264:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, _080042CC
+ adds r1, r2
+ ldrh r2, [r1, 0x2]
+ ldr r1, [r1, 0x4]
+ str r1, [sp]
+ lsls r0, 20
+ lsrs r0, 16
+ mov r9, r0
+ lsls r1, r0, 2
+ ldr r0, _080042D0
+ adds r5, r1, r0
+ cmp r2, 0xFF
+ bls _080042D4
+ movs r6, 0
+ movs r7, 0xF8
+ add r4, sp, 0x4
+_0800429A:
+ ldrb r0, [r5, 0x2]
+ adds r1, r7, 0
+ ands r1, r0
+ lsls r1, 7
+ ldrb r2, [r5, 0x1]
+ adds r0, r7, 0
+ ands r0, r2
+ lsls r0, 2
+ orrs r1, r0
+ ldrb r2, [r5]
+ adds r0, r7, 0
+ ands r0, r2
+ lsrs r0, 3
+ orrs r0, r1
+ strh r0, [r4]
+ mov r1, r9
+ adds r0, r1, r6
+ adds r1, r4, 0
+ bl SetBGPaletteBufferColor
+ adds r5, 0x4
+ adds r6, 0x1
+ cmp r6, 0xF
+ ble _0800429A
+ b _08004378
+ .align 2, 0
+_080042CC: .4byte gUnknown_3000C00
+_080042D0: .4byte gUnknown_3000400
+_080042D4:
+ mov r0, sp
+ ldrb r1, [r0]
+ movs r3, 0xFF
+ subs r0, r3, r1
+ muls r0, r2
+ cmp r0, 0
+ bge _080042E4
+ adds r0, 0xFF
+_080042E4:
+ asrs r0, 8
+ adds r0, r1, r0
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x8]
+ mov r0, sp
+ ldrb r1, [r0, 0x1]
+ subs r0, r3, r1
+ muls r0, r2
+ cmp r0, 0
+ bge _080042FC
+ adds r0, 0xFF
+_080042FC:
+ asrs r0, 8
+ adds r0, r1, r0
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0xC]
+ mov r0, sp
+ ldrb r1, [r0, 0x2]
+ subs r0, r3, r1
+ muls r0, r2
+ cmp r0, 0
+ bge _08004314
+ adds r0, 0xFF
+_08004314:
+ asrs r0, 8
+ adds r0, r1, r0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ movs r6, 0
+ add r7, sp, 0x4
+ movs r0, 0xF8
+ mov r8, r0
+_08004326:
+ ldrb r0, [r5, 0x2]
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ movs r1, 0xFF
+ bl __divsi3
+ adds r4, r0, 0
+ mov r0, r8
+ ands r4, r0
+ lsls r4, 7
+ ldrb r0, [r5, 0x1]
+ ldr r1, [sp, 0xC]
+ muls r0, r1
+ movs r1, 0xFF
+ bl __divsi3
+ mov r1, r8
+ ands r0, r1
+ lsls r0, 2
+ orrs r4, r0
+ ldrb r0, [r5]
+ ldr r1, [sp, 0x8]
+ muls r0, r1
+ movs r1, 0xFF
+ bl __divsi3
+ mov r1, r8
+ ands r0, r1
+ lsrs r0, 3
+ orrs r4, r0
+ strh r4, [r7]
+ mov r1, r9
+ adds r0, r1, r6
+ adds r1, r7, 0
+ bl SetBGPaletteBufferColor
+ adds r5, 0x4
+ adds r6, 0x1
+ cmp r6, 0xF
+ ble _08004326
+_08004378:
+ 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_8004264
+
+ thumb_func_start sub_8004388
+sub_8004388:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0800442C
+ adds r1, r0
+ ldrh r2, [r1, 0x2]
+ ldr r0, [r1, 0x4]
+ str r0, [sp]
+ mov r0, r9
+ lsls r1, r0, 2
+ ldr r0, _08004430
+ adds r6, r1, r0
+ cmp r2, 0xFF
+ bls _080043BC
+ movs r2, 0x80
+ lsls r2, 1
+_080043BC:
+ mov r0, sp
+ ldrb r0, [r0]
+ muls r0, r2
+ lsls r0, 8
+ lsrs r0, 16
+ mov r8, r0
+ mov r0, sp
+ ldrb r0, [r0, 0x1]
+ muls r0, r2
+ lsls r0, 8
+ lsrs r7, r0, 16
+ mov r0, sp
+ ldrb r0, [r0, 0x2]
+ muls r0, r2
+ lsls r0, 8
+ lsrs r0, 16
+ ldrb r1, [r6, 0x2]
+ muls r0, r1
+ movs r1, 0xFF
+ bl __divsi3
+ adds r4, r0, 0
+ movs r5, 0xF8
+ ands r4, r5
+ lsls r4, 7
+ ldrb r0, [r6, 0x1]
+ muls r0, r7
+ movs r1, 0xFF
+ bl __divsi3
+ ands r0, r5
+ lsls r0, 2
+ orrs r4, r0
+ ldrb r0, [r6]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ movs r1, 0xFF
+ bl __divsi3
+ ands r0, r5
+ lsrs r0, 3
+ orrs r4, r0
+ add r1, sp, 0x4
+ strh r4, [r1]
+ mov r0, r9
+ bl SetBGPaletteBufferColor
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800442C: .4byte gUnknown_3000C00
+_08004430: .4byte gUnknown_3000400
+ thumb_func_end sub_8004388
+
+ thumb_func_start sub_8004434
+sub_8004434:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, _080044F8
+ adds r1, r2
+ ldrh r2, [r1, 0x2]
+ ldr r1, [r1, 0x4]
+ str r1, [sp]
+ lsls r0, 20
+ lsrs r0, 16
+ mov r9, r0
+ lsls r1, r0, 2
+ ldr r0, _080044FC
+ adds r5, r1, r0
+ cmp r2, 0xFF
+ bls _08004468
+ movs r2, 0x80
+ lsls r2, 1
+_08004468:
+ mov r0, sp
+ ldrb r0, [r0]
+ muls r0, r2
+ lsls r0, 8
+ lsrs r0, 16
+ str r0, [sp, 0x8]
+ mov r0, sp
+ ldrb r0, [r0, 0x1]
+ muls r0, r2
+ lsls r0, 8
+ lsrs r0, 16
+ str r0, [sp, 0xC]
+ mov r0, sp
+ ldrb r0, [r0, 0x2]
+ muls r0, r2
+ lsls r0, 8
+ lsrs r0, 16
+ mov r10, r0
+ movs r6, 0
+ movs r0, 0xF8
+ mov r8, r0
+ add r7, sp, 0x4
+_08004494:
+ ldrb r0, [r5, 0x2]
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ movs r1, 0xFF
+ bl __divsi3
+ adds r4, r0, 0
+ mov r0, r8
+ ands r4, r0
+ lsls r4, 7
+ ldrb r0, [r5, 0x1]
+ ldr r1, [sp, 0xC]
+ muls r0, r1
+ movs r1, 0xFF
+ bl __divsi3
+ mov r1, r8
+ ands r0, r1
+ lsls r0, 2
+ orrs r4, r0
+ ldrb r0, [r5]
+ ldr r1, [sp, 0x8]
+ muls r0, r1
+ movs r1, 0xFF
+ bl __divsi3
+ mov r1, r8
+ ands r0, r1
+ lsrs r0, 3
+ orrs r4, r0
+ strh r4, [r7]
+ mov r1, r9
+ adds r0, r1, r6
+ adds r1, r7, 0
+ bl SetBGPaletteBufferColor
+ adds r5, 0x4
+ adds r6, 0x1
+ cmp r6, 0xF
+ ble _08004494
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080044F8: .4byte gUnknown_3000C00
+_080044FC: .4byte gUnknown_3000400
+ thumb_func_end sub_8004434
+
+ thumb_func_start sub_8004500
+sub_8004500:
+ ldr r1, _08004514
+ ldrh r2, [r1]
+ movs r0, 0x6D
+ muls r0, r2
+ ldr r2, _08004518
+ adds r0, r2
+ strh r0, [r1]
+ ldrh r0, [r1]
+ bx lr
+ .align 2, 0
+_08004514: .4byte gUnknown_203B070
+_08004518: .4byte 0x000003fd
+ thumb_func_end sub_8004500
+
+ thumb_func_start sub_800451C
+sub_800451C:
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8004500
+ muls r0, r4
+ asrs r0, 16
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800451C
+
+ thumb_func_start sub_8004530
+sub_8004530:
+ push {r4,lr}
+ adds r4, r0, 0
+ subs r0, r1, r4
+ bl sub_800451C
+ adds r0, r4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8004530
+
+ thumb_func_start sub_8004544
+sub_8004544:
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ subs r4, r1, 0x1
+ adds r2, r3, r4
+ movs r5, 0
+ cmp r5, r4
+ bge _08004566
+_08004552:
+ ldrb r1, [r3]
+ ldrb r0, [r2]
+ strb r0, [r3]
+ adds r3, 0x1
+ strb r1, [r2]
+ subs r2, 0x1
+ adds r5, 0x1
+ subs r4, 0x1
+ cmp r5, r4
+ blt _08004552
+_08004566:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8004544
+
+ thumb_func_start sub_800456C
+sub_800456C:
+ push {r4-r7,lr}
+ adds r4, r1, 0
+ cmp r4, 0
+ ble _08004578
+ movs r7, 0x1
+ b _0800457E
+_08004578:
+ negs r4, r4
+ movs r7, 0x1
+ negs r7, r7
+_0800457E:
+ cmp r2, 0
+ ble _080045A0
+ adds r6, r0, 0
+ adds r5, r2, 0
+_08004586:
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __modsi3
+ stm r6!, {r0}
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __divsi3
+ adds r4, r0, 0
+ subs r5, 0x1
+ cmp r5, 0
+ bne _08004586
+_080045A0:
+ adds r0, r7, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800456C
+
+ thumb_func_start sub_80045A8
+sub_80045A8:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldm r4!, {r1}
+ movs r3, 0xA
+ cmp r2, 0x1
+ ble _080045CA
+ subs r2, 0x1
+_080045B8:
+ ldm r4!, {r0}
+ muls r0, r3
+ adds r1, r0
+ subs r2, 0x1
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r3, r0, 1
+ cmp r2, 0
+ bne _080045B8
+_080045CA:
+ adds r0, r1, 0
+ cmp r5, 0
+ bge _080045D2
+ negs r0, r0
+_080045D2:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80045A8
+
+ thumb_func_start ConvertFromBCD
+ConvertFromBCD:
+ push {r4,lr}
+ adds r1, r0, 0
+ movs r2, 0x1
+ movs r3, 0
+ cmp r1, 0
+ ble _080045FA
+ movs r4, 0xF
+_080045E6:
+ adds r0, r1, 0
+ ands r0, r4
+ muls r0, r2
+ adds r3, r0
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r2, r0, 1
+ asrs r1, 4
+ cmp r1, 0
+ bgt _080045E6
+_080045FA:
+ adds r0, r3, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end ConvertFromBCD
+
+ thumb_func_start ConvertToBCD
+ConvertToBCD:
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r5, 0
+ movs r6, 0
+ cmp r4, 0
+ ble _0800462C
+_08004610:
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __modsi3
+ lsls r0, r5
+ adds r6, r0
+ adds r5, 0x4
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __divsi3
+ adds r4, r0, 0
+ cmp r4, 0
+ bgt _08004610
+_0800462C:
+ adds r0, r6, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end ConvertToBCD
+
+ thumb_func_start InitBGPaletteBuffer
+InitBGPaletteBuffer:
+ push {lr}
+ movs r2, 0
+ ldr r1, _0800465C
+ movs r0, 0x80
+ lsls r0, 2
+_0800463E:
+ strh r2, [r1]
+ adds r1, 0x2
+ subs r0, 0x1
+ cmp r0, 0
+ bne _0800463E
+ ldr r1, _08004660
+ movs r2, 0x1
+ adds r0, r1, 0
+ adds r0, 0x1F
+_08004650:
+ strb r2, [r0]
+ subs r0, 0x1
+ cmp r0, r1
+ bge _08004650
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800465C: .4byte gUnknown_20251F0
+_08004660: .4byte gUnknown_20251D0
+ thumb_func_end InitBGPaletteBuffer
+
+ thumb_func_start SetBGPaletteBufferColorRGB
+SetBGPaletteBufferColorRGB:
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ cmp r2, 0
+ bge _08004670
+ movs r2, 0
+_08004670:
+ cmp r2, 0x1F
+ ble _08004676
+ movs r2, 0x1F
+_08004676:
+ ldr r1, _080046CC
+ adds r0, r4, 0
+ cmp r4, 0
+ bge _08004680
+ adds r0, 0xF
+_08004680:
+ asrs r0, 4
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ cmp r3, 0
+ bne _080046D4
+ ldr r0, _080046D0
+ lsls r1, r4, 1
+ adds r6, r1, r0
+ ldrb r0, [r5, 0x2]
+ muls r0, r2
+ cmp r0, 0
+ bge _0800469C
+ adds r0, 0xFF
+_0800469C:
+ asrs r0, 8
+ movs r3, 0x1F
+ ands r0, r3
+ lsls r4, r0, 10
+ ldrb r0, [r5, 0x1]
+ muls r0, r2
+ cmp r0, 0
+ bge _080046AE
+ adds r0, 0xFF
+_080046AE:
+ asrs r0, 8
+ ands r0, r3
+ lsls r1, r0, 5
+ orrs r1, r4
+ ldrb r0, [r5]
+ muls r0, r2
+ cmp r0, 0
+ bge _080046C0
+ adds r0, 0xFF
+_080046C0:
+ asrs r0, 8
+ ands r0, r3
+ orrs r1, r0
+ strh r1, [r6]
+ b _08004722
+ .align 2, 0
+_080046CC: .4byte gUnknown_20251D0
+_080046D0: .4byte gUnknown_20251F0
+_080046D4:
+ ldr r1, _08004728
+ lsls r0, r4, 1
+ adds r7, r0, r1
+ ldrb r0, [r5, 0x2]
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x2]
+ muls r0, r2
+ cmp r0, 0
+ bge _080046EA
+ adds r0, 0xFF
+_080046EA:
+ asrs r0, 8
+ movs r4, 0x1F
+ ands r0, r4
+ lsls r6, r0, 10
+ ldrb r0, [r5, 0x1]
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x1]
+ muls r0, r2
+ cmp r0, 0
+ bge _08004702
+ adds r0, 0xFF
+_08004702:
+ asrs r0, 8
+ ands r0, r4
+ lsls r1, r0, 5
+ orrs r1, r6
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0]
+ muls r0, r2
+ cmp r0, 0
+ bge _0800471A
+ adds r0, 0xFF
+_0800471A:
+ asrs r0, 8
+ ands r0, r4
+ orrs r1, r0
+ strh r1, [r7]
+_08004722:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004728: .4byte gUnknown_20251F0
+ thumb_func_end SetBGPaletteBufferColorRGB
+
+ thumb_func_start SetBGPaletteBufferColorArray
+SetBGPaletteBufferColorArray:
+ push {lr}
+ adds r2, r0, 0
+ adds r3, r1, 0
+ ldr r1, _08004764
+ cmp r2, 0
+ bge _0800473A
+ adds r0, 0xF
+_0800473A:
+ asrs r0, 4
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08004768
+ lsls r2, 1
+ adds r2, r0
+ ldrb r1, [r3, 0x2]
+ lsrs r1, 3
+ lsls r1, 10
+ ldrb r0, [r3, 0x1]
+ lsrs r0, 3
+ lsls r0, 5
+ orrs r1, r0
+ ldrb r0, [r3]
+ lsrs r0, 3
+ orrs r0, r1
+ strh r0, [r2]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004764: .4byte gUnknown_20251D0
+_08004768: .4byte gUnknown_20251F0
+ thumb_func_end SetBGPaletteBufferColorArray
+
+ thumb_func_start SetBGPaletteBufferColor
+SetBGPaletteBufferColor:
+ push {lr}
+ adds r2, r0, 0
+ adds r3, r1, 0
+ ldr r1, _08004790
+ cmp r2, 0
+ bge _0800477A
+ adds r0, 0xF
+_0800477A:
+ asrs r0, 4
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r1, _08004794
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r3]
+ strh r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004790: .4byte gUnknown_20251D0
+_08004794: .4byte gUnknown_20251F0
+ thumb_func_end SetBGPaletteBufferColor
+
+ thumb_func_start nullsub_4
+nullsub_4:
+ bx lr
+ thumb_func_end nullsub_4
+
+ thumb_func_start nullsub_5
+nullsub_5:
+ bx lr
+ thumb_func_end nullsub_5
+
+ thumb_func_start nullsub_143
+nullsub_143:
+ bx lr
+ thumb_func_end nullsub_143
+
+ thumb_func_start TransferBGPaletteBuffer
+TransferBGPaletteBuffer:
+ push {r4-r6,lr}
+ movs r6, 0
+ movs r4, 0
+ movs r5, 0xA0
+ lsls r5, 19
+_080047AE:
+ ldr r0, _080047DC
+ adds r1, r6, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080047CA
+ movs r0, 0
+ strb r0, [r1]
+ lsls r1, r4, 1
+ ldr r0, _080047E0
+ adds r1, r0
+ adds r0, r5, 0
+ movs r2, 0x20
+ bl CpuCopy
+_080047CA:
+ adds r6, 0x1
+ adds r5, 0x20
+ adds r4, 0x10
+ ldr r0, _080047E4
+ cmp r4, r0
+ ble _080047AE
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080047DC: .4byte gUnknown_20251D0
+_080047E0: .4byte gUnknown_20251F0
+_080047E4: .4byte 0x000001ff
+ thumb_func_end TransferBGPaletteBuffer
+
+ thumb_func_start sub_80047E8
+sub_80047E8:
+ ldr r0, _08004840
+ movs r3, 0
+ movs r2, 0
+ strh r2, [r0]
+ strh r2, [r0, 0x2]
+ strh r2, [r0, 0x4]
+ strh r2, [r0, 0x6]
+ ldr r0, _08004844
+ strh r2, [r0]
+ strh r2, [r0, 0x2]
+ strh r2, [r0, 0x4]
+ strh r2, [r0, 0x6]
+ ldr r1, _08004848
+ ldr r0, _0800484C
+ str r0, [r1]
+ ldr r0, _08004850
+ str r2, [r0, 0x20]
+ ldr r1, _08004854
+ strh r1, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ strh r1, [r0, 0x2]
+ strh r1, [r0, 0x4]
+ strh r1, [r0, 0x6]
+ strh r1, [r0, 0x1C]
+ strh r1, [r0, 0x1E]
+ strh r1, [r0, 0x8]
+ strh r1, [r0, 0xA]
+ strh r1, [r0, 0xC]
+ strh r1, [r0, 0xE]
+ strh r1, [r0, 0x10]
+ strh r1, [r0, 0x12]
+ strh r1, [r0, 0x14]
+ strh r1, [r0, 0x16]
+ adds r1, r0, 0
+ adds r1, 0x28
+ strb r3, [r1]
+ adds r0, 0x29
+ strb r3, [r0]
+ ldr r0, _08004858
+ strh r2, [r0]
+ strh r2, [r0, 0x2]
+ bx lr
+ .align 2, 0
+_08004840: .4byte gUnknown_20255F0
+_08004844: .4byte gUnknown_2025638
+_08004848: .4byte gUnknown_202562C
+_0800484C: .4byte 0x004a14c1
+_08004850: .4byte gUnknown_2025600
+_08004854: .4byte 0x0000ffff
+_08004858: .4byte gUnknown_2025668
+ thumb_func_end sub_80047E8
+
+ thumb_func_start sub_800485C
+sub_800485C:
+ push {r4,r5,lr}
+ ldr r2, _080048A8
+ ldr r1, _080048AC
+ adds r0, r2, 0
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ ldr r0, [r0]
+ str r0, [r1]
+ movs r3, 0
+ movs r0, 0
+ strh r0, [r2]
+ strh r0, [r2, 0x2]
+ strh r0, [r2, 0x4]
+ strh r0, [r2, 0x6]
+ ldr r0, _080048B0
+ ldr r1, _080048B4
+ strh r1, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ strh r1, [r0, 0x2]
+ strh r1, [r0, 0x4]
+ strh r1, [r0, 0x6]
+ strh r1, [r0, 0x8]
+ strh r1, [r0, 0xA]
+ strh r1, [r0, 0xC]
+ strh r1, [r0, 0xE]
+ strh r1, [r0, 0x10]
+ strh r1, [r0, 0x12]
+ strh r1, [r0, 0x14]
+ strh r1, [r0, 0x16]
+ adds r1, r0, 0
+ adds r1, 0x28
+ strb r3, [r1]
+ adds r0, 0x29
+ strb r3, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080048A8: .4byte gUnknown_2025638
+_080048AC: .4byte gUnknown_20255F0
+_080048B0: .4byte gUnknown_2025600
+_080048B4: .4byte 0x0000ffff
+ thumb_func_end sub_800485C
+
+ thumb_func_start sub_80048B8
+sub_80048B8:
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80048B8
+
+ thumb_func_start sub_80048BC
+sub_80048BC:
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80048BC
+
+ thumb_func_start sub_80048C0
+sub_80048C0:
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80048C0
+
+ thumb_func_start sub_80048C4
+sub_80048C4:
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80048C4
+
+ thumb_func_start sub_80048C8
+sub_80048C8:
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80048C8
+
+ thumb_func_start sub_80048CC
+sub_80048CC:
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80048CC
+
+ thumb_func_start sub_80048D0
+sub_80048D0:
+ ldr r1, _080048E8
+ movs r0, 0
+ strh r0, [r1, 0x4]
+ ldr r1, _080048EC
+ str r0, [r1, 0xC]
+ strh r0, [r1, 0x8]
+ ldr r1, _080048F0
+ ldr r0, _080048F4
+ strh r0, [r1]
+ strh r0, [r1, 0x2]
+ bx lr
+ .align 2, 0
+_080048E8: .4byte gUnknown_20255F0
+_080048EC: .4byte gUnknown_2025648
+_080048F0: .4byte gUnknown_2025668
+_080048F4: .4byte 0x000003e7
+ thumb_func_end sub_80048D0
+
+ thumb_func_start sub_80048F8
+sub_80048F8:
+ ldr r0, _08004908
+ movs r1, 0
+ strh r1, [r0, 0x2]
+ ldr r0, _0800490C
+ strh r1, [r0, 0x2]
+ ldr r0, _08004910
+ strh r1, [r0, 0x2]
+ bx lr
+ .align 2, 0
+_08004908: .4byte gUnknown_20255F0
+_0800490C: .4byte gUnknown_2025638
+_08004910: .4byte gUnknown_2025648
+ thumb_func_end sub_80048F8
+
+ thumb_func_start sub_8004914
+sub_8004914:
+ ldr r0, _0800494C
+ movs r1, 0x5
+ str r1, [r0, 0x20]
+ movs r2, 0
+ movs r1, 0
+ strh r1, [r0, 0x24]
+ ldr r1, _08004950
+ strh r1, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ strh r1, [r0, 0x2]
+ strh r1, [r0, 0x4]
+ strh r1, [r0, 0x6]
+ strh r1, [r0, 0x8]
+ strh r1, [r0, 0xA]
+ strh r1, [r0, 0xC]
+ strh r1, [r0, 0xE]
+ strh r1, [r0, 0x10]
+ strh r1, [r0, 0x12]
+ strh r1, [r0, 0x14]
+ strh r1, [r0, 0x16]
+ adds r1, r0, 0
+ adds r1, 0x28
+ strb r2, [r1]
+ adds r0, 0x29
+ strb r2, [r0]
+ bx lr
+ .align 2, 0
+_0800494C: .4byte gUnknown_2025600
+_08004950: .4byte 0x0000ffff
+ thumb_func_end sub_8004914
+
+ thumb_func_start UpdateInput
+UpdateInput:
+ push {r4-r6,lr}
+ ldr r4, _08004998
+ ldr r5, _0800499C
+ adds r1, r4, 0
+ adds r0, r5, 0
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r0, r5, 0
+ bl ReadKeyInput
+ ldrh r0, [r4]
+ ldrh r3, [r5]
+ eors r0, r3
+ ands r0, r3
+ strh r0, [r5, 0x2]
+ lsls r0, r3, 16
+ lsrs r0, 16
+ cmp r0, 0
+ beq _080049A8
+ ldrh r1, [r5, 0x8]
+ movs r0, 0xF0
+ adds r2, r0, 0
+ ands r2, r3
+ ands r0, r1
+ cmp r0, r2
+ bne _080049A0
+ ldr r0, [r5, 0xC]
+ cmp r0, 0x31
+ bgt _080049AC
+ adds r0, 0x1
+ str r0, [r5, 0xC]
+ b _080049AC
+ .align 2, 0
+_08004998: .4byte gUnknown_2025658
+_0800499C: .4byte gUnknown_2025648
+_080049A0:
+ strh r2, [r5, 0x8]
+ movs r0, 0x1
+ str r0, [r5, 0xC]
+ b _080049AC
+_080049A8:
+ str r0, [r5, 0xC]
+ strh r0, [r5, 0x8]
+_080049AC:
+ ldr r0, _080049C4
+ ldr r2, [r0, 0xC]
+ adds r3, r0, 0
+ cmp r2, 0x1
+ bne _080049C8
+ ldrh r0, [r3, 0x8]
+ movs r1, 0xF0
+ ands r1, r0
+ ldrh r0, [r3, 0x2]
+ orrs r1, r0
+ strh r1, [r3, 0x4]
+ b _080049E0
+ .align 2, 0
+_080049C4: .4byte gUnknown_2025648
+_080049C8:
+ cmp r2, 0x30
+ bne _080049DC
+ movs r0, 0x2B
+ str r0, [r3, 0xC]
+ ldrh r1, [r3, 0x8]
+ movs r0, 0xF0
+ ands r0, r1
+ ldrh r1, [r3, 0x2]
+ orrs r0, r1
+ b _080049DE
+_080049DC:
+ movs r0, 0
+_080049DE:
+ strh r0, [r3, 0x4]
+_080049E0:
+ movs r0, 0
+ strh r0, [r3, 0x6]
+ ldrh r1, [r3]
+ movs r5, 0x2
+ adds r0, r5, 0
+ ands r0, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _08004A0C
+ ldr r0, _08004A08
+ ldrh r2, [r0]
+ movs r4, 0
+ ldrsh r1, [r0, r4]
+ adds r4, r0, 0
+ cmp r1, 0x63
+ bgt _08004A20
+ adds r0, r2, 0x1
+ strh r0, [r4]
+ b _08004A20
+ .align 2, 0
+_08004A08: .4byte gUnknown_2025668
+_08004A0C:
+ ldr r1, _08004A44
+ ldrh r0, [r1]
+ subs r0, 0x2
+ lsls r0, 16
+ lsrs r0, 16
+ adds r4, r1, 0
+ cmp r0, 0x9
+ bhi _08004A1E
+ strh r5, [r3, 0x6]
+_08004A1E:
+ strh r2, [r4]
+_08004A20:
+ ldrh r1, [r3]
+ movs r5, 0x80
+ lsls r5, 1
+ adds r0, r5, 0
+ ands r0, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _08004A48
+ ldrh r1, [r4, 0x2]
+ movs r6, 0x2
+ ldrsh r0, [r4, r6]
+ cmp r0, 0x63
+ bgt _08004A5E
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x2]
+ b _08004A5E
+ .align 2, 0
+_08004A44: .4byte gUnknown_2025668
+_08004A48:
+ ldrh r0, [r4, 0x2]
+ subs r0, 0x2
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x9
+ bhi _08004A5C
+ ldrh r1, [r3, 0x6]
+ adds r0, r5, 0
+ orrs r0, r1
+ strh r0, [r3, 0x6]
+_08004A5C:
+ strh r2, [r4, 0x2]
+_08004A5E:
+ ldr r2, _08004A94
+ ldrh r0, [r2]
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r3, 0x2]
+ orrs r0, r1
+ strh r0, [r2, 0x2]
+ ldrh r0, [r2, 0x4]
+ ldrh r1, [r3, 0x4]
+ orrs r0, r1
+ strh r0, [r2, 0x4]
+ ldrh r0, [r2, 0x6]
+ ldrh r1, [r3, 0x6]
+ orrs r0, r1
+ strh r0, [r2, 0x6]
+ ldr r2, _08004A98
+ ldrh r0, [r3]
+ ldr r1, _08004A9C
+ orrs r0, r1
+ ldr r1, [r2]
+ muls r0, r1
+ str r0, [r2]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004A94: .4byte gUnknown_2025638
+_08004A98: .4byte gUnknown_202562C
+_08004A9C: .4byte 0x054a1c41
+ thumb_func_end UpdateInput
+
+ thumb_func_start nullsub_6
+nullsub_6:
+ bx lr
+ thumb_func_end nullsub_6
+
+ thumb_func_start sub_8004AA4
+sub_8004AA4:
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ ldr r4, [r1, 0x4]
+ cmp r2, 0
+ ble _08004AE8
+_08004AAE:
+ ldm r4!, {r1}
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r0, 0
+ beq _08004ADE
+ movs r0, 0x80
+ lsls r0, 24
+ str r0, [r3]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r3, 0x6]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r3, 0x4]
+ adds r0, r1, 0x4
+ str r0, [r3, 0x8]
+ str r0, [r3, 0xC]
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ lsls r0, 2
+ adds r0, 0x4
+ adds r0, r1, r0
+ str r0, [r3, 0x10]
+ ldr r0, [r1, 0x4]
+ str r0, [r3, 0x14]
+ b _08004AE0
+_08004ADE:
+ str r0, [r3]
+_08004AE0:
+ adds r3, 0x18
+ subs r2, 0x1
+ cmp r2, 0
+ bne _08004AAE
+_08004AE8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8004AA4
+
+ thumb_func_start sub_8004AF0
+sub_8004AF0:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r1, 0
+ adds r6, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r7, 0
+ cmp r7, r3
+ bge _08004B6A
+ adds r5, r3, 0
+_08004B08:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8004D14
+ lsls r0, 24
+ cmp r0, 0
+ beq _08004B60
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8004D40
+ lsls r0, 24
+ cmp r0, 0
+ bne _08004B60
+ mov r1, r8
+ ldrh r0, [r4, 0x6]
+ subs r0, 0x1
+ strh r0, [r4, 0x6]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _08004B4E
+ ldrh r0, [r4, 0x4]
+ strh r0, [r4, 0x6]
+ ldr r1, [r4, 0xC]
+ ldr r0, [r4, 0x10]
+ cmp r1, r0
+ bcc _08004B42
+ ldr r0, [r4, 0x8]
+ str r0, [r4, 0xC]
+_08004B42:
+ ldr r1, [r4, 0xC]
+ ldm r1!, {r0}
+ str r0, [r4, 0x14]
+ str r1, [r4, 0xC]
+ movs r1, 0x1
+ movs r7, 0x1
+_08004B4E:
+ cmp r1, 0
+ beq _08004B60
+ adds r1, r4, 0
+ adds r1, 0x14
+ adds r0, r6, 0
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ bl SetBGPaletteBufferColorRGB
+_08004B60:
+ subs r5, 0x1
+ adds r4, 0x18
+ adds r6, 0x1
+ cmp r5, 0
+ bne _08004B08
+_08004B6A:
+ adds r0, r7, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8004AF0
+
+ thumb_func_start sub_8004B78
+sub_8004B78:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r1, 0
+ adds r6, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r7, 0
+ cmp r7, r3
+ bge _08004BF2
+ adds r5, r3, 0
+_08004B90:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8004D14
+ lsls r0, 24
+ cmp r0, 0
+ beq _08004BE8
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8004D40
+ lsls r0, 24
+ cmp r0, 0
+ bne _08004BE8
+ mov r1, r8
+ ldrh r0, [r4, 0x6]
+ subs r0, 0x1
+ strh r0, [r4, 0x6]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _08004BD6
+ ldrh r0, [r4, 0x4]
+ strh r0, [r4, 0x6]
+ ldr r1, [r4, 0xC]
+ ldr r0, [r4, 0x10]
+ cmp r1, r0
+ bcc _08004BCA
+ ldr r0, [r4, 0x8]
+ str r0, [r4, 0xC]
+_08004BCA:
+ ldr r1, [r4, 0xC]
+ ldm r1!, {r0}
+ str r0, [r4, 0x14]
+ str r1, [r4, 0xC]
+ movs r1, 0x1
+ movs r7, 0x1
+_08004BD6:
+ cmp r1, 0
+ beq _08004BE8
+ adds r1, r4, 0
+ adds r1, 0x14
+ adds r0, r6, 0
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ bl nullsub_4
+_08004BE8:
+ subs r5, 0x1
+ adds r4, 0x18
+ adds r6, 0x1
+ cmp r5, 0
+ bne _08004B90
+_08004BF2:
+ adds r0, r7, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8004B78
+
+ thumb_func_start sub_8004C00
+sub_8004C00:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r7, r1, 0
+ mov r10, r3
+ ldr r0, [sp, 0x28]
+ mov r8, r0
+ movs r1, 0
+ mov r9, r1
+ cmp r9, r2
+ bge _08004CDC
+ adds r6, r2, 0
+_08004C20:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8004D14
+ lsls r0, 24
+ cmp r0, 0
+ beq _08004CD2
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8004D40
+ lsls r0, 24
+ cmp r0, 0
+ bne _08004CD2
+ ldrh r0, [r4, 0x6]
+ subs r0, 0x1
+ strh r0, [r4, 0x6]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _08004C64
+ ldrh r0, [r4, 0x4]
+ strh r0, [r4, 0x6]
+ ldr r1, [r4, 0xC]
+ ldr r0, [r4, 0x10]
+ cmp r1, r0
+ bcc _08004C58
+ ldr r0, [r4, 0x8]
+ str r0, [r4, 0xC]
+_08004C58:
+ ldr r1, [r4, 0xC]
+ ldm r1!, {r0}
+ str r0, [r4, 0x14]
+ str r1, [r4, 0xC]
+ movs r2, 0x1
+ mov r9, r2
+_08004C64:
+ mov r3, r8
+ movs r5, 0
+ ldrsh r0, [r3, r5]
+ ldrb r2, [r4, 0x14]
+ adds r1, r0, r2
+ movs r5, 0x2
+ ldrsh r0, [r3, r5]
+ ldrb r2, [r4, 0x15]
+ adds r3, r0, r2
+ mov r5, r8
+ movs r2, 0x4
+ ldrsh r0, [r5, r2]
+ ldrb r2, [r4, 0x16]
+ adds r5, r0, r2
+ cmp r1, 0xFF
+ ble _08004C86
+ movs r1, 0xFF
+_08004C86:
+ cmp r3, 0xFF
+ ble _08004C8C
+ movs r3, 0xFF
+_08004C8C:
+ cmp r5, 0xFF
+ ble _08004C92
+ movs r5, 0xFF
+_08004C92:
+ cmp r1, 0
+ bge _08004C98
+ movs r1, 0
+_08004C98:
+ cmp r3, 0
+ bge _08004C9E
+ movs r3, 0
+_08004C9E:
+ cmp r5, 0
+ bge _08004CA4
+ movs r5, 0
+_08004CA4:
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _08004CF0
+ ldr r0, [sp]
+ ands r0, r2
+ orrs r0, r1
+ lsls r2, r3, 24
+ lsrs r2, 16
+ ldr r1, _08004CF4
+ ands r0, r1
+ orrs r0, r2
+ lsls r2, r5, 24
+ lsrs r2, 8
+ ldr r1, _08004CF8
+ ands r0, r1
+ orrs r0, r2
+ str r0, [sp]
+ adds r0, r7, 0
+ mov r1, sp
+ mov r2, r10
+ ldr r3, [sp, 0x24]
+ bl SetBGPaletteBufferColorRGB
+_08004CD2:
+ subs r6, 0x1
+ adds r4, 0x18
+ adds r7, 0x1
+ cmp r6, 0
+ bne _08004C20
+_08004CDC:
+ mov r0, r9
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08004CF0: .4byte 0xffffff00
+_08004CF4: .4byte 0xffff00ff
+_08004CF8: .4byte 0xff00ffff
+ thumb_func_end sub_8004C00
+
+ thumb_func_start sub_8004CFC
+sub_8004CFC:
+ push {lr}
+ cmp r1, 0
+ ble _08004D0E
+ movs r2, 0
+_08004D04:
+ str r2, [r0]
+ adds r0, 0x18
+ subs r1, 0x1
+ cmp r1, 0
+ bne _08004D04
+_08004D0E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8004CFC
+
+ thumb_func_start sub_8004D14
+sub_8004D14:
+ push {r4,lr}
+ adds r2, r0, 0
+ movs r3, 0
+ cmp r3, r1
+ bge _08004D36
+ movs r4, 0x80
+ lsls r4, 24
+_08004D22:
+ ldr r0, [r2]
+ ands r0, r4
+ cmp r0, 0
+ beq _08004D2E
+ movs r0, 0x1
+ b _08004D38
+_08004D2E:
+ adds r2, 0x18
+ adds r3, 0x1
+ cmp r3, r1
+ blt _08004D22
+_08004D36:
+ movs r0, 0
+_08004D38:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8004D14
+
+ thumb_func_start sub_8004D40
+sub_8004D40:
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ adds r4, r1, 0
+ movs r1, 0
+ cmp r1, r4
+ bge _08004D70
+ movs r6, 0x80
+ lsls r6, 24
+ movs r5, 0x80
+ lsls r5, 22
+_08004D54:
+ ldr r2, [r3]
+ adds r0, r2, 0
+ ands r0, r6
+ cmp r0, 0
+ beq _08004D6A
+ ands r2, r5
+ cmp r2, 0
+ bne _08004D68
+ movs r0, 0
+ b _08004D72
+_08004D68:
+ adds r3, 0x18
+_08004D6A:
+ adds r1, 0x1
+ cmp r1, r4
+ blt _08004D54
+_08004D70:
+ movs r0, 0x1
+_08004D72:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8004D40
+
+ thumb_func_start sub_8004D78
+sub_8004D78:
+ push {lr}
+ movs r0, 0x1
+ bl sub_8004D8C
+ movs r0, 0
+ bl SetSavingIconCoords
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8004D78
+
+ thumb_func_start sub_8004D8C
+sub_8004D8C:
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _08004E68
+ movs r0, 0
+ str r0, [r1]
+ ldr r1, _08004E6C
+ ldr r0, _08004E70
+ str r0, [r1]
+ ldr r1, _08004E74
+ ldr r0, _08004E78
+ str r0, [r1]
+ ldr r0, _08004E7C
+ adds r1, r0, 0
+ adds r1, 0x8
+ adds r5, r0, 0
+ movs r2, 0
+ movs r3, 0xF0
+_08004DB0:
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ subs r3, 0x10
+ cmp r3, 0
+ bge _08004DB0
+ cmp r4, 0
+ beq _08004E50
+ movs r2, 0
+ ldr r1, _08004E80
+ ldr r0, _08004E84
+ movs r3, 0x7F
+_08004E42:
+ str r2, [r0]
+ str r1, [r0, 0x4]
+ adds r1, 0x8
+ adds r0, 0x8
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08004E42
+_08004E50:
+ movs r1, 0x80
+ lsls r1, 4
+ adds r0, r5, r1
+ movs r1, 0
+ str r1, [r0]
+ ldr r2, _08004E88
+ adds r0, r5, r2
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004E68: .4byte gUnknown_20266A8
+_08004E6C: .4byte gUnknown_2026E30
+_08004E70: .4byte 0x06010000
+_08004E74: .4byte gUnknown_203B074
+_08004E78: .4byte gUnknown_20266B0
+_08004E7C: .4byte gUnknown_20256A0
+_08004E80: .4byte gUnknown_20262A8
+_08004E84: .4byte gUnknown_2025EA8
+_08004E88: .4byte 0x00000804
+ thumb_func_end sub_8004D8C
+
+ thumb_func_start sub_8004E8C
+sub_8004E8C:
+ ldr r1, _08004EA4
+ strh r1, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ strh r1, [r0, 0x2]
+ strh r1, [r0, 0x4]
+ movs r1, 0
+ strh r1, [r0, 0x6]
+ strh r1, [r0, 0x8]
+ strh r1, [r0, 0xA]
+ bx lr
+ .align 2, 0
+_08004EA4: .4byte 0x0000ffff
+ thumb_func_end sub_8004E8C
+
+ thumb_func_start sub_8004EA8
+sub_8004EA8:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xC
+ adds r5, r0, 0
+ mov r8, r1
+ adds r0, r2, 0
+ adds r6, r3, 0
+ cmp r0, 0
+ beq _08004EC2
+ bl sub_80052BC
+_08004EC2:
+ ldr r0, _08004F40
+ ldr r7, [r0]
+ mov r12, r0
+ cmp r7, 0x7F
+ ble _08004ECE
+ b _08005082
+_08004ECE:
+ mov r2, sp
+ ldrh r0, [r5]
+ strh r0, [r2]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r2, 0x2]
+ ldrh r4, [r5, 0x4]
+ ldr r0, _08004F44
+ ands r0, r4
+ strh r0, [r2, 0x4]
+ ldrh r3, [r5, 0x6]
+ ldr r0, _08004F48
+ ands r0, r3
+ strh r0, [r2, 0x6]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r2, 0x8]
+ movs r1, 0xE0
+ lsls r1, 4
+ ands r1, r3
+ lsrs r1, 9
+ ldr r0, _08004F4C
+ ands r0, r4
+ lsls r0, 4
+ orrs r1, r0
+ strh r1, [r2, 0xA]
+ lsls r1, r7, 3
+ ldr r0, _08004F50
+ adds r3, r1, r0
+ mov r0, r8
+ movs r2, 0x16
+ ldrsh r1, [r0, r2]
+ mov r0, sp
+ ldrb r0, [r0, 0x3]
+ lsls r0, 24
+ asrs r0, 24
+ adds r7, r1, r0
+ cmp r7, 0
+ bge _08004F1A
+ movs r7, 0
+_08004F1A:
+ cmp r7, 0xFF
+ ble _08004F20
+ movs r7, 0xFF
+_08004F20:
+ cmp r6, 0
+ bne _08004F54
+ add r2, sp, 0x4
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3, 0x2]
+ adds r2, 0x2
+ adds r1, r3, 0x4
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ ldrh r0, [r2]
+ strh r0, [r1, 0x2]
+ b _08004F86
+ .align 2, 0
+_08004F40: .4byte gUnknown_20266A8
+_08004F44: .4byte 0x0000fcff
+_08004F48: .4byte 0x0000f1ff
+_08004F4C: .4byte 0x000003ff
+_08004F50: .4byte gUnknown_20262A8
+_08004F54:
+ add r4, sp, 0x4
+ ldrh r1, [r4]
+ ldrh r0, [r6]
+ ands r0, r1
+ ldrh r1, [r6, 0x6]
+ orrs r0, r1
+ strh r0, [r3]
+ adds r4, 0x2
+ ldrh r1, [r4]
+ ldrh r0, [r6, 0x2]
+ ands r0, r1
+ ldrh r1, [r6, 0x8]
+ orrs r0, r1
+ strh r0, [r3, 0x2]
+ adds r4, 0x2
+ adds r2, r3, 0x4
+ ldrh r1, [r4]
+ ldrh r0, [r6, 0x4]
+ ands r0, r1
+ ldrh r1, [r6, 0xA]
+ orrs r0, r1
+ strh r0, [r2]
+ adds r4, 0x2
+ ldrh r0, [r4]
+ strh r0, [r2, 0x2]
+_08004F86:
+ mov r0, sp
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0
+ beq _08004FB0
+ ldr r1, _08004FA8
+ mov r0, sp
+ ldrb r0, [r0, 0x2]
+ lsls r0, 1
+ adds r1, r0, r1
+ movs r4, 0
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ beq _08004FB0
+ adds r1, r0, 0
+ ldr r0, _08004FAC
+ ands r1, r0
+ b _08004FC0
+ .align 2, 0
+_08004FA8: .4byte gUnknown_2025672
+_08004FAC: .4byte 0x000003ff
+_08004FB0:
+ ldrh r1, [r3, 0x4]
+ ldr r2, _08005090
+ ands r1, r2
+ mov r6, r8
+ movs r4, 0x14
+ ldrsh r0, [r6, r4]
+ adds r1, r0
+ ands r1, r2
+_08004FC0:
+ ldrh r2, [r3, 0x4]
+ movs r0, 0xFC
+ lsls r0, 8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ ldrh r4, [r3, 0x2]
+ ldr r5, _08005094
+ adds r2, r5, 0
+ ands r2, r4
+ ldr r6, _08005098
+ adds r1, r2, r6
+ mov r2, r8
+ movs r6, 0
+ ldrsh r0, [r2, r6]
+ adds r2, r1, r0
+ movs r0, 0x40
+ negs r0, r0
+ mov r9, r0
+ cmp r2, r9
+ blt _08005082
+ cmp r2, 0xEF
+ bgt _08005082
+ ands r2, r5
+ movs r0, 0xFE
+ lsls r0, 8
+ ands r0, r4
+ orrs r0, r2
+ strh r0, [r3, 0x2]
+ ldrh r0, [r3, 0x6]
+ lsls r4, r0, 16
+ ldr r1, _0800509C
+ adds r5, r1, 0
+ lsrs r2, r4, 20
+ ldr r6, _080050A0
+ adds r1, r2, r6
+ mov r2, r8
+ movs r6, 0x2
+ ldrsh r0, [r2, r6]
+ adds r2, r1, r0
+ cmp r2, r9
+ blt _08005082
+ cmp r2, 0x9F
+ bgt _08005082
+ movs r0, 0xFF
+ ands r2, r0
+ ldrh r1, [r3]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ orrs r0, r2
+ strh r0, [r3]
+ lsrs r0, r4, 17
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08005044
+ mov r0, r8
+ ldrb r1, [r0, 0x1E]
+ movs r0, 0xF
+ ands r1, r0
+ lsls r1, 12
+ ldrh r0, [r3, 0x4]
+ ands r0, r5
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+_08005044:
+ mov r0, sp
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0
+ beq _08005068
+ ldr r1, _080050A4
+ mov r0, sp
+ ldrb r0, [r0, 0x2]
+ lsls r0, 1
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r0, 0xF
+ ands r1, r0
+ lsls r1, 12
+ ldrh r0, [r3, 0x4]
+ ands r0, r5
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+_08005068:
+ ldr r0, _080050A8
+ mov r4, r12
+ ldr r3, [r4]
+ lsls r2, r3, 3
+ adds r2, r0
+ ldr r1, _080050AC
+ lsls r0, r7, 3
+ adds r0, r1
+ ldr r1, [r0]
+ str r1, [r2]
+ str r2, [r0]
+ adds r3, 0x1
+ str r3, [r4]
+_08005082:
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08005090: .4byte 0x000003ff
+_08005094: .4byte 0x000001ff
+_08005098: .4byte 0xffffff00
+_0800509C: .4byte 0x00000fff
+_080050A0: .4byte 0xfffffe00
+_080050A4: .4byte gUnknown_2025682
+_080050A8: .4byte gUnknown_2025EA8
+_080050AC: .4byte gUnknown_20256A0
+ thumb_func_end sub_8004EA8
+
+ thumb_func_start AddSprite
+AddSprite:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ adds r7, r1, 0
+ mov r8, r2
+ adds r4, r3, 0
+ ldr r0, _080050F4
+ ldr r0, [r0]
+ cmp r0, 0x7F
+ bgt _08005168
+ lsls r1, r0, 3
+ ldr r0, _080050F8
+ adds r5, r1, r0
+ cmp r7, 0
+ bge _080050D2
+ movs r7, 0
+_080050D2:
+ cmp r7, 0xFF
+ ble _080050D8
+ movs r7, 0xFF
+_080050D8:
+ cmp r4, 0
+ bne _080050FC
+ ldrh r0, [r6]
+ strh r0, [r5]
+ ldrh r0, [r6, 0x2]
+ strh r0, [r5, 0x2]
+ adds r1, r6, 0x4
+ adds r2, r5, 0x4
+ ldrh r0, [r1]
+ strh r0, [r2]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r2, 0x2]
+ b _08005128
+ .align 2, 0
+_080050F4: .4byte gUnknown_20266A8
+_080050F8: .4byte gUnknown_20262A8
+_080050FC:
+ ldrh r1, [r6]
+ ldrh r0, [r4]
+ ands r0, r1
+ ldrh r1, [r4, 0x6]
+ orrs r0, r1
+ strh r0, [r5]
+ ldrh r1, [r6, 0x2]
+ ldrh r0, [r4, 0x2]
+ ands r0, r1
+ ldrh r1, [r4, 0x8]
+ orrs r0, r1
+ strh r0, [r5, 0x2]
+ adds r2, r6, 0x4
+ adds r3, r5, 0x4
+ ldrh r1, [r2]
+ ldrh r0, [r4, 0x4]
+ ands r0, r1
+ ldrh r1, [r4, 0xA]
+ orrs r0, r1
+ strh r0, [r3]
+ ldrh r0, [r2, 0x2]
+ strh r0, [r3, 0x2]
+_08005128:
+ ldrh r4, [r5, 0x6]
+ lsrs r4, 4
+ adds r0, r4, 0
+ movs r1, 0
+ bl nullsub_3
+ movs r0, 0xFF
+ ands r4, r0
+ ldrh r1, [r5]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ orrs r0, r4
+ strh r0, [r5]
+ mov r0, r8
+ cmp r0, 0
+ beq _0800514E
+ bl sub_80052BC
+_0800514E:
+ ldr r0, _08005174
+ ldr r4, _08005178
+ ldr r3, [r4]
+ lsls r2, r3, 3
+ adds r2, r0
+ ldr r1, _0800517C
+ lsls r0, r7, 3
+ adds r0, r1
+ ldr r1, [r0]
+ str r1, [r2]
+ str r2, [r0]
+ adds r3, 0x1
+ str r3, [r4]
+_08005168:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08005174: .4byte gUnknown_2025EA8
+_08005178: .4byte gUnknown_20266A8
+_0800517C: .4byte gUnknown_20256A0
+ thumb_func_end AddSprite
+
+ thumb_func_start sub_8005180
+sub_8005180:
+ push {lr}
+ ldr r2, _080051A8
+ adds r1, r2, 0
+ cmp r2, 0
+ beq _0800519E
+_0800518A:
+ ldr r0, [r1, 0x4]
+ cmp r0, 0
+ beq _08005198
+ cmp r2, 0
+ beq _08005196
+ str r1, [r2]
+_08005196:
+ adds r2, r1, 0
+_08005198:
+ ldr r1, [r1]
+ cmp r1, 0
+ bne _0800518A
+_0800519E:
+ movs r0, 0
+ str r0, [r2]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080051A8: .4byte gUnknown_20256A0
+ thumb_func_end sub_8005180
+
+ thumb_func_start CopySpritesToOam
+CopySpritesToOam:
+ push {r4-r6,lr}
+ ldr r3, _08005204
+ ldr r2, _08005208
+ movs r4, 0
+ ldr r6, _0800520C
+ cmp r3, 0
+ beq _080051E0
+ ldr r5, _08005210
+_080051BC:
+ ldr r1, [r3, 0x4]
+ cmp r1, 0
+ beq _080051D6
+ subs r2, 0x4
+ ldrh r0, [r1, 0x4]
+ strh r0, [r2]
+ subs r2, 0x2
+ ldrh r0, [r1, 0x2]
+ strh r0, [r2]
+ subs r2, 0x2
+ ldrh r0, [r1]
+ strh r0, [r2]
+ adds r4, 0x1
+_080051D6:
+ ldr r3, [r3]
+ cmp r3, 0
+ beq _080051E0
+ cmp r2, r5
+ bhi _080051BC
+_080051E0:
+ ldr r1, _08005210
+ cmp r2, r1
+ bls _080051FA
+ movs r0, 0
+ movs r3, 0xA0
+_080051EA:
+ subs r2, 0x4
+ strh r0, [r2]
+ subs r2, 0x2
+ strh r0, [r2]
+ subs r2, 0x2
+ strh r3, [r2]
+ cmp r2, r1
+ bhi _080051EA
+_080051FA:
+ strh r4, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08005204: .4byte gUnknown_20256A0
+_08005208: .4byte 0x07000400
+_0800520C: .4byte gUnknown_2025670
+_08005210: .4byte 0x07000008
+ thumb_func_end CopySpritesToOam
+
+ thumb_func_start SetSavingIconCoords
+SetSavingIconCoords:
+ push {lr}
+ adds r3, r0, 0
+ cmp r3, 0
+ bne _0800522C
+ ldr r1, _08005228
+ strh r3, [r1]
+ movs r0, 0xA0
+ strh r0, [r1, 0x2]
+ b _0800523C
+ .align 2, 0
+_08005228: .4byte gUnknown_2025694
+_0800522C:
+ ldr r1, _08005240
+ ldrh r0, [r3]
+ movs r2, 0
+ strh r0, [r1]
+ ldrh r0, [r3, 0x2]
+ strh r0, [r1, 0x2]
+ ldr r0, _08005244
+ str r2, [r0]
+_0800523C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08005240: .4byte gUnknown_2025694
+_08005244: .4byte gUnknown_2025698
+ thumb_func_end SetSavingIconCoords
+
+ thumb_func_start BlinkSavingIcon
+BlinkSavingIcon:
+ push {r4,lr}
+ movs r2, 0xE0
+ lsls r2, 19
+ ldr r0, _08005280
+ ldr r1, [r0]
+ adds r3, r1, 0
+ adds r1, 0x1
+ str r1, [r0]
+ movs r0, 0x10
+ ands r3, r0
+ cmp r3, 0
+ beq _08005288
+ movs r0, 0xA0
+ strh r0, [r2]
+ adds r2, 0x2
+ movs r1, 0x80
+ lsls r1, 7
+ adds r0, r1, 0
+ strh r0, [r2]
+ adds r2, 0x2
+ ldr r4, _08005284
+ adds r0, r4, 0
+ strh r0, [r2]
+ adds r2, 0x2
+ movs r0, 0
+ strh r0, [r2]
+ b _080052A8
+ .align 2, 0
+_08005280: .4byte gUnknown_2025698
+_08005284: .4byte 0x0000f3fc
+_08005288:
+ ldr r1, _080052B0
+ ldrh r0, [r1, 0x2]
+ strh r0, [r2]
+ ldr r2, _080052B4
+ movs r4, 0x80
+ lsls r4, 7
+ adds r0, r4, 0
+ ldrh r1, [r1]
+ adds r0, r1
+ strh r0, [r2]
+ adds r2, 0x2
+ ldr r1, _080052B8
+ adds r0, r1, 0
+ strh r0, [r2]
+ adds r2, 0x2
+ strh r3, [r2]
+_080052A8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080052B0: .4byte gUnknown_2025694
+_080052B4: .4byte 0x07000002
+_080052B8: .4byte 0x0000f3fc
+ thumb_func_end BlinkSavingIcon
+
+ thumb_func_start sub_80052BC
+sub_80052BC:
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ ldr r0, [r3, 0x4]
+ cmp r0, 0
+ beq _080052F2
+ ldr r5, _080052F8
+ ldr r6, _080052FC
+ ldr r4, _08005300
+_080052CC:
+ ldr r2, [r5]
+ cmp r2, r6
+ bcs _080052F2
+ ldr r0, [r3, 0x4]
+ str r0, [r2]
+ ldr r0, [r3]
+ str r0, [r2, 0x4]
+ ldr r1, [r4]
+ str r1, [r2, 0x8]
+ ldr r0, [r3, 0x4]
+ adds r1, r0
+ str r1, [r4]
+ adds r0, r2, 0
+ adds r0, 0xC
+ str r0, [r5]
+ adds r3, 0x8
+ ldr r0, [r3, 0x4]
+ cmp r0, 0
+ bne _080052CC
+_080052F2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080052F8: .4byte gUnknown_203B074
+_080052FC: .4byte gUnknown_2026E30
+_08005300: .4byte gUnknown_2026E30
+ thumb_func_end sub_80052BC
+
+ thumb_func_start sub_8005304
+sub_8005304:
+ push {r4,lr}
+ ldr r4, _0800530C
+ b _0800532A
+ .align 2, 0
+_0800530C: .4byte gUnknown_20266B0
+_08005310:
+ ldr r1, [r4, 0x4]
+ cmp r1, 0
+ beq _08005320
+ ldr r0, [r4, 0x8]
+ ldr r2, [r4]
+ bl CpuCopy
+ b _08005328
+_08005320:
+ ldr r0, [r4, 0x8]
+ ldr r1, [r4]
+ bl CpuClear
+_08005328:
+ adds r4, 0xC
+_0800532A:
+ ldr r0, _08005338
+ ldr r0, [r0]
+ cmp r4, r0
+ bcc _08005310
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08005338: .4byte gUnknown_203B074
+ thumb_func_end sub_8005304
+
+ thumb_func_start sub_800533C
+sub_800533C:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r1
+ adds r5, r2, 0
+ adds r7, r3, 0
+ ldr r1, [sp, 0x18]
+ lsls r1, 24
+ lsrs r6, r1, 24
+ movs r2, 0x18
+ ldrsh r1, [r5, r2]
+ lsls r1, 2
+ adds r1, r0
+ ldr r4, [r1]
+ ldr r1, _08005368
+ movs r2, 0x14
+ ldrsh r0, [r5, r2]
+ lsls r0, 5
+ ldr r2, _0800536C
+ adds r0, r2
+ str r0, [r1]
+ b _0800538E
+ .align 2, 0
+_08005368: .4byte gUnknown_2026E30
+_0800536C: .4byte 0x06010000
+_08005370:
+ cmp r6, 0
+ beq _08005382
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ blt _08005382
+ lsls r0, 2
+ add r0, r8
+ ldr r2, [r0]
+_08005382:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r3, r7, 0
+ bl sub_8004EA8
+ adds r4, 0xA
+_0800538E:
+ movs r2, 0
+ ldrh r1, [r4]
+ ldr r0, _080053A8
+ cmp r1, r0
+ bne _08005370
+ ldrh r0, [r4, 0x2]
+ cmp r0, r1
+ bne _08005370
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080053A8: .4byte 0x0000ffff
+ thumb_func_end sub_800533C
+
+ thumb_func_start sub_80053AC
+sub_80053AC:
+ push {r4-r6,lr}
+ sub sp, 0xC
+ ldr r5, [sp, 0x1C]
+ ldr r6, [sp, 0x20]
+ ldr r4, [sp, 0x24]
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, [r1, 0x4]
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ str r4, [sp, 0x8]
+ bl sub_80053D0
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80053AC
+
+ thumb_func_start sub_80053D0
+sub_80053D0:
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ adds r7, r3, 0
+ ldr r0, [sp, 0x1C]
+ lsls r0, 24
+ movs r2, 0
+ movs r3, 0x80
+ lsls r3, 8
+ strh r3, [r4]
+ cmp r0, 0
+ beq _080053F6
+ movs r0, 0x80
+ lsls r0, 5
+ adds r1, r0, 0
+ adds r0, r3, 0
+ orrs r0, r1
+ strh r0, [r4]
+_080053F6:
+ strh r2, [r4, 0x2]
+ ldr r0, [sp, 0x18]
+ strh r0, [r4, 0x4]
+ strh r2, [r4, 0xC]
+ strh r2, [r4, 0xE]
+ ldr r0, [sp, 0x14]
+ strh r0, [r4, 0x1C]
+ ldr r0, _08005438
+ strh r0, [r4, 0x20]
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r4, 0x22]
+ str r2, [r4, 0x14]
+ str r2, [r4, 0x18]
+ strh r2, [r4, 0x6]
+ ldr r1, [r5, 0x4]
+ lsls r0, r6, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r0, r7, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r4, 0x28]
+ str r0, [r4, 0x2C]
+ ldr r0, [r5]
+ str r0, [r4, 0x34]
+ ldr r0, [r5, 0xC]
+ str r0, [r4, 0x38]
+ ldr r0, [r5, 0x10]
+ str r0, [r4, 0x30]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08005438: .4byte 0x0000ffff
+ thumb_func_end sub_80053D0
+
+ thumb_func_start sub_800543C
+sub_800543C:
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r5, [sp, 0x14]
+ ldr r4, [sp, 0x18]
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, [r1, 0x4]
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ bl sub_800545C
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_800543C
+
+ thumb_func_start sub_800545C
+sub_800545C:
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r6, r1, 0
+ adds r7, r2, 0
+ adds r5, r3, 0
+ ldr r0, [sp, 0x18]
+ lsls r0, 24
+ movs r2, 0
+ movs r3, 0x80
+ lsls r3, 8
+ strh r3, [r4]
+ cmp r0, 0
+ beq _08005482
+ movs r0, 0x80
+ lsls r0, 5
+ adds r1, r0, 0
+ adds r0, r3, 0
+ orrs r0, r1
+ strh r0, [r4]
+_08005482:
+ strh r2, [r4, 0x2]
+ ldr r0, [sp, 0x14]
+ strh r0, [r4, 0x4]
+ strh r2, [r4, 0xC]
+ strh r2, [r4, 0xE]
+ strh r5, [r4, 0x1C]
+ ldr r0, _080054B8
+ strh r0, [r4, 0x20]
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r4, 0x22]
+ str r2, [r4, 0x14]
+ str r2, [r4, 0x18]
+ strh r2, [r4, 0x6]
+ ldr r1, [r6, 0x4]
+ lsls r0, r7, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r0, [r0]
+ str r0, [r4, 0x28]
+ str r0, [r4, 0x2C]
+ ldr r0, [r6]
+ str r0, [r4, 0x34]
+ str r2, [r4, 0x30]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080054B8: .4byte 0x0000ffff
+ thumb_func_end sub_800545C
+
+ thumb_func_start sub_80054BC
+sub_80054BC:
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4]
+ movs r0, 0x80
+ lsls r0, 6
+ ands r0, r1
+ cmp r0, 0
+ beq _080054D0
+ movs r0, 0
+ b _080054D2
+_080054D0:
+ lsrs r0, r1, 15
+_080054D2:
+ cmp r0, 0
+ beq _08005586
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ ldrh r3, [r4]
+ cmp r0, 0
+ blt _08005524
+ movs r0, 0x80
+ lsls r0, 7
+ ands r0, r3
+ cmp r0, 0
+ bne _08005586
+ ldrh r2, [r4, 0x6]
+ movs r0, 0x6
+ ldrsh r1, [r4, r0]
+ ldr r0, _0800550C
+ cmp r1, r0
+ bgt _080054FA
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x6]
+_080054FA:
+ ldrh r1, [r4, 0x4]
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _08005510
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x4]
+ b _08005586
+ .align 2, 0
+_0800550C: .4byte 0x0000752f
+_08005510:
+ ldrh r1, [r4, 0x2]
+ movs r2, 0x2
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _08005524
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _08005586
+_08005524:
+ ldr r0, [r4, 0x2C]
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08005550
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r3
+ cmp r0, 0
+ bne _08005542
+ movs r1, 0x80
+ lsls r1, 6
+ adds r0, r1, 0
+ orrs r0, r3
+ strh r0, [r4]
+ b _08005586
+_08005542:
+ ldr r0, [r4, 0x28]
+ str r0, [r4, 0x2C]
+ bl Random
+ movs r1, 0x1
+ ands r0, r1
+ strh r0, [r4, 0x4]
+_08005550:
+ ldrh r1, [r4]
+ movs r2, 0x80
+ lsls r2, 4
+ adds r0, r2, 0
+ orrs r0, r1
+ strh r0, [r4]
+ ldr r1, [r4, 0x2C]
+ ldrb r0, [r1]
+ strh r0, [r4, 0x2]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0xC]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0xE]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x10]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x12]
+ ldrb r0, [r1, 0x1]
+ str r0, [r4, 0x14]
+ ldrb r2, [r1, 0x1]
+ ldr r0, [r4, 0x18]
+ orrs r0, r2
+ str r0, [r4, 0x18]
+ adds r1, 0xC
+ str r1, [r4, 0x2C]
+_08005586:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80054BC
+
+ thumb_func_start sub_800558C
+sub_800558C:
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r4, r1, 0
+ adds r6, r2, 0
+ adds r7, r3, 0
+ ldrh r0, [r5]
+ lsrs r0, 15
+ cmp r0, 0
+ beq _08005602
+ movs r1, 0x20
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bge _080055AE
+ adds r0, r5, 0
+ bl sub_80054BC
+_080055AE:
+ ldrh r0, [r5]
+ lsrs r0, 15
+ cmp r0, 0
+ beq _08005602
+ ldrh r0, [r5, 0xC]
+ adds r0, r4
+ strh r0, [r5, 0x8]
+ ldrh r0, [r5, 0xE]
+ adds r0, r6
+ strh r0, [r5, 0xA]
+ adds r1, r5, 0
+ adds r1, 0x26
+ ldr r0, [sp, 0x18]
+ strb r0, [r1]
+ strh r7, [r5, 0x1E]
+ ldr r0, [r5, 0x34]
+ ldr r1, [r5, 0x38]
+ adds r2, r5, 0
+ adds r2, 0x8
+ movs r3, 0x22
+ ldrsh r4, [r5, r3]
+ movs r6, 0x20
+ ldrsh r3, [r5, r6]
+ eors r4, r3
+ negs r3, r4
+ orrs r3, r4
+ lsrs r3, 31
+ str r3, [sp]
+ ldr r3, [sp, 0x1C]
+ bl sub_800533C
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x22]
+ ldrh r1, [r5]
+ movs r0, 0x80
+ lsls r0, 4
+ ands r0, r1
+ cmp r0, 0
+ beq _08005602
+ ldr r0, _0800560C
+ ands r0, r1
+ strh r0, [r5]
+_08005602:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800560C: .4byte 0x0000f7ff
+ thumb_func_end sub_800558C
+
+ thumb_func_start sub_8005610
+sub_8005610:
+ push {lr}
+ ldr r0, [r0, 0x4]
+ bl sub_800561C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8005610
+
+ thumb_func_start sub_800561C
+sub_800561C:
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r0, r1, 0
+ adds r7, r2, 0
+ adds r6, r3, 0
+ ldr r1, [r5, 0x14]
+ cmp r1, 0
+ beq _0800563A
+ lsls r0, 5
+ ldr r2, _08005664
+ adds r0, r2
+ ldr r2, [r5, 0x1C]
+ lsls r2, 5
+ bl CpuCopy
+_0800563A:
+ ldr r0, [r5, 0x18]
+ cmp r0, 0
+ beq _0800565C
+ movs r4, 0
+_08005642:
+ movs r1, 0xF0
+ lsls r1, 1
+ adds r0, r4, r1
+ lsls r2, r4, 2
+ ldr r1, [r5, 0x18]
+ adds r1, r2
+ adds r2, r7, 0
+ adds r3, r6, 0
+ bl SetBGPaletteBufferColorRGB
+ adds r4, 0x1
+ cmp r4, 0xF
+ ble _08005642
+_0800565C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08005664: .4byte 0x06010000
+ thumb_func_end sub_800561C
+
+ thumb_func_start sub_8005668
+sub_8005668:
+ push {lr}
+ ldr r0, [r0, 0x4]
+ bl sub_8005674
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8005668
+
+ thumb_func_start sub_8005674
+sub_8005674:
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r3, [r4, 0x14]
+ cmp r3, 0
+ beq _0800568E
+ lsls r0, r1, 5
+ ldr r1, _08005698
+ adds r0, r1
+ ldr r2, [r4, 0x1C]
+ lsls r2, 5
+ adds r1, r3, 0
+ bl CpuCopy
+_0800568E:
+ ldr r0, [r4, 0x18]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08005698: .4byte 0x06010000
+ thumb_func_end sub_8005674
+
+ thumb_func_start sub_800569C
+sub_800569C:
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ adds r4, r1, 0
+ lsls r2, 24
+ lsrs r2, 24
+ movs r0, 0
+ strh r0, [r3]
+ strh r0, [r3, 0x2]
+ ldrh r0, [r4]
+ lsrs r0, 15
+ cmp r0, 0
+ beq _080056F8
+ cmp r2, 0x3
+ bhi _080056F8
+ ldr r1, [r4, 0x30]
+ cmp r1, 0
+ beq _080056F2
+ movs r5, 0x20
+ ldrsh r0, [r4, r5]
+ lsls r0, 4
+ adds r5, r1, r0
+ lsls r0, r2, 2
+ adds r2, r5, r0
+ movs r6, 0
+ ldrsh r1, [r2, r6]
+ cmp r1, 0x63
+ bne _080056E0
+ movs r6, 0x2
+ ldrsh r1, [r2, r6]
+ cmp r1, 0x63
+ bne _080056E0
+ strh r1, [r3]
+ strh r1, [r3, 0x2]
+ b _080056F8
+_080056E0:
+ adds r0, r5, r0
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0xC]
+ adds r1, r2
+ strh r1, [r3]
+ ldrh r0, [r0, 0x2]
+ ldrh r4, [r4, 0xE]
+ adds r0, r4
+ b _080056F6
+_080056F2:
+ movs r0, 0x63
+ strh r0, [r3]
+_080056F6:
+ strh r0, [r3, 0x2]
+_080056F8:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_800569C
+
+ thumb_func_start sub_8005700
+sub_8005700:
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ ldrh r0, [r1]
+ lsrs r0, 15
+ cmp r0, 0
+ beq _0800575C
+ ldr r2, [r1, 0x30]
+ cmp r2, 0
+ beq _0800574C
+ movs r4, 0x20
+ ldrsh r0, [r1, r4]
+ lsls r0, 4
+ adds r2, r0
+ adds r4, r2, 0
+ adds r4, 0xC
+_0800571E:
+ movs r5, 0
+ ldrsh r0, [r2, r5]
+ cmp r0, 0x63
+ bne _08005732
+ movs r5, 0x2
+ ldrsh r0, [r2, r5]
+ cmp r0, 0x63
+ bne _08005732
+ strh r0, [r3]
+ b _08005740
+_08005732:
+ ldrh r0, [r2]
+ ldrh r5, [r1, 0xC]
+ adds r0, r5
+ strh r0, [r3]
+ ldrh r0, [r2, 0x2]
+ ldrh r5, [r1, 0xE]
+ adds r0, r5
+_08005740:
+ strh r0, [r3, 0x2]
+ adds r3, 0x4
+ adds r2, 0x4
+ cmp r2, r4
+ ble _0800571E
+ b _0800575C
+_0800574C:
+ movs r1, 0x63
+ movs r0, 0x3
+_08005750:
+ strh r1, [r3]
+ strh r1, [r3, 0x2]
+ adds r3, 0x4
+ subs r0, 0x1
+ cmp r0, 0
+ bge _08005750
+_0800575C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8005700
+
+ thumb_func_start sub_8005764
+sub_8005764:
+ push {lr}
+ ldr r1, [r1, 0x4]
+ bl sub_8005770
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8005764
+
+ thumb_func_start sub_8005770
+sub_8005770:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r2
+ adds r7, r3, 0
+ movs r5, 0
+ adds r0, 0x10
+ lsls r6, r0, 4
+ adds r4, r1, 0
+_08005782:
+ adds r0, r6, r5
+ adds r1, r4, 0
+ mov r2, r8
+ adds r3, r7, 0
+ bl SetBGPaletteBufferColorRGB
+ adds r4, 0x4
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _08005782
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8005770
+
+ thumb_func_start nullsub_7
+nullsub_7:
+ bx lr
+ thumb_func_end nullsub_7
+
+ thumb_func_start nullsub_8
+nullsub_8:
+ bx lr
+ thumb_func_end nullsub_8
+
+ thumb_func_start nullsub_9
+nullsub_9:
+ bx lr
+ thumb_func_end nullsub_9
+
+ thumb_func_start nullsub_10
+nullsub_10:
+ bx lr
+ thumb_func_end nullsub_10
+
+ thumb_func_start nullsub_144
+nullsub_144:
+ bx lr
+ thumb_func_end nullsub_144
+
+ thumb_func_start nullsub_11
+nullsub_11:
+ bx lr
+ thumb_func_end nullsub_11
+
+ thumb_func_start nullsub_12
+nullsub_12:
+ bx lr
+ thumb_func_end nullsub_12
+
+ thumb_func_start nullsub_13
+nullsub_13:
+ bx lr
+ thumb_func_end nullsub_13
+
+ thumb_func_start nullsub_145
+nullsub_145:
+ bx lr
+ thumb_func_end nullsub_145
+
+ thumb_func_start nullsub_14
+nullsub_14:
+ bx lr
+ thumb_func_end nullsub_14
+
+ thumb_func_start nullsub_146
+nullsub_146:
+ bx lr
+ thumb_func_end nullsub_146
+
+ thumb_func_start nullsub_147
+nullsub_147:
+ bx lr
+ thumb_func_end nullsub_147
+
+ thumb_func_start nullsub_148
+nullsub_148:
+ bx lr
+ thumb_func_end nullsub_148
+
+ thumb_func_start nullsub_149
+nullsub_149:
+ bx lr
+ thumb_func_end nullsub_149
+
+ thumb_func_start sub_80057D8
+sub_80057D8:
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80057D8
+
+ thumb_func_start sub_80057DC
+sub_80057DC:
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80057DC
+
+ thumb_func_start nullsub_150
+nullsub_150:
+ bx lr
+ thumb_func_end nullsub_150
+
+ thumb_func_start nullsub_151
+nullsub_151:
+ bx lr
+ thumb_func_end nullsub_151
+
+ thumb_func_start sub_80057E8
+sub_80057E8:
+ ldr r1, _08005814
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _08005818
+ movs r2, 0
+ str r2, [r0]
+ ldr r1, _0800581C
+ movs r0, 0x1
+ str r0, [r1]
+ ldr r0, _08005820
+ str r2, [r0]
+ ldr r0, _08005824
+ str r2, [r0]
+ ldr r0, _08005828
+ strb r2, [r0]
+ ldr r1, _0800582C
+ ldr r3, _08005830
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _08005834
+ str r2, [r0]
+ bx lr
+ .align 2, 0
+_08005814: .4byte gUnknown_2026E4C
+_08005818: .4byte gUnknown_2026E54
+_0800581C: .4byte gUnknown_2026E50
+_08005820: .4byte gUnknown_2026E58
+_08005824: .4byte gUnknown_2026E3C
+_08005828: .4byte gUnknown_2026E38
+_0800582C: .4byte gUnknown_2026E4E
+_08005830: .4byte 0x0000060c
+_08005834: .4byte gUnknown_203B078
+ thumb_func_end sub_80057E8
+
+ thumb_func_start sub_8005838
+sub_8005838:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _08005880
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08005854
+ movs r1, 0
+_08005854:
+ ldr r0, _08005884
+ ldr r0, [r0]
+ ldr r3, _08005888
+ cmp r0, 0
+ bne _08005860
+ ldr r3, _0800588C
+_08005860:
+ ldr r0, _08005890
+ ldr r2, [r0]
+ cmp r2, 0
+ bne _0800586A
+ ldr r2, _08005894
+_0800586A:
+ ldr r0, _08005898
+ str r3, [r0]
+ cmp r1, 0x5
+ bls _08005876
+ bl _08006094
+_08005876:
+ lsls r0, r1, 2
+ ldr r1, _0800589C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08005880: .4byte gUnknown_2026E4C
+_08005884: .4byte gUnknown_2026E54
+_08005888: .4byte gUnknown_20270E8
+_0800588C: .4byte gUnknown_2026E60
+_08005890: .4byte gUnknown_203B078
+_08005894: .4byte gUnknown_80B83EA
+_08005898: .4byte gUnknown_2026E58
+_0800589C: .4byte _080058A0
+ .align 2, 0
+_080058A0:
+ .4byte _080058B8
+ .4byte _08005984
+ .4byte _08005A98
+ .4byte _08005BAC
+ .4byte _08005D46
+ .4byte _08005E58
+_080058B8:
+ movs r1, 0
+ movs r7, 0x9
+_080058BC:
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ subs r7, 0x1
+ cmp r7, 0
+ bge _080058BC
+ b _08006094
+_08005984:
+ ldr r1, _08005A94
+ movs r7, 0x9
+_08005988:
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ subs r7, 0x1
+ cmp r7, 0
+ blt _08005A90
+ b _08005988
+_08005A90:
+ b _08006094
+ .align 2, 0
+_08005A94: .4byte gUnknown_80B816A
+_08005A98:
+ ldr r1, _08005BA8
+ movs r7, 0x9
+_08005A9C:
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ subs r7, 0x1
+ cmp r7, 0
+ blt _08005BA4
+ b _08005A9C
+_08005BA4:
+ b _08006094
+ .align 2, 0
+_08005BA8: .4byte gUnknown_80B802A
+_08005BAC:
+ ldr r0, [r5]
+ mov r10, r0
+ cmp r0, 0
+ bge _08005BBA
+ ldr r0, [r5, 0x8]
+ cmp r0, 0
+ blt _08005BDC
+_08005BBA:
+ ldr r1, [r5, 0x4]
+ cmp r1, 0
+ bge _08005BC6
+ ldr r0, [r5, 0xC]
+ cmp r0, 0
+ blt _08005BDC
+_08005BC6:
+ mov r4, r10
+ cmp r4, 0xEF
+ ble _08005BD2
+ ldr r0, [r5, 0x8]
+ cmp r0, 0xEF
+ bgt _08005BDC
+_08005BD2:
+ cmp r1, 0x9F
+ ble _08005CA8
+ ldr r0, [r5, 0xC]
+ cmp r0, 0x9F
+ ble _08005CA8
+_08005BDC:
+ movs r1, 0xF0
+ movs r7, 0x9
+_08005BE0:
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ subs r7, 0x1
+ cmp r7, 0
+ bge _08005BE0
+ b _08006094
+_08005CA8:
+ movs r7, 0
+ mov r8, r1
+ movs r6, 0x80
+ lsls r6, 1
+ mov r12, r6
+ lsls r0, r1, 1
+ ldr r1, _08005CCC
+ subs r6, r1, r0
+ mov r9, r10
+_08005CBA:
+ cmp r8, r7
+ ble _08005CD0
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ mov r4, r12
+ strh r4, [r3]
+ b _08005D3A
+ .align 2, 0
+_08005CCC: .4byte gUnknown_80B8008
+_08005CD0:
+ ldr r1, [r5, 0xC]
+ cmp r1, r7
+ bgt _08005CE2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ mov r0, r12
+ b _08005D38
+_08005CE2:
+ mov r4, r8
+ subs r0, r7, r4
+ cmp r0, 0xF
+ bgt _08005CF0
+ movs r0, 0
+ ldrsh r1, [r6, r0]
+ b _08005D00
+_08005CF0:
+ subs r0, r1, r7
+ cmp r0, 0xF
+ bgt _08005D10
+ lsls r0, 1
+ ldr r1, _08005D0C
+ adds r0, r1
+ movs r4, 0
+ ldrsh r1, [r0, r4]
+_08005D00:
+ mov r0, r9
+ adds r4, r0, r1
+ ldr r0, [r5, 0x8]
+ subs r1, r0, r1
+ b _08005D14
+ .align 2, 0
+_08005D0C: .4byte gUnknown_80B8008
+_08005D10:
+ mov r4, r10
+ ldr r1, [r5, 0x8]
+_08005D14:
+ cmp r4, 0
+ bge _08005D1A
+ movs r4, 0
+_08005D1A:
+ cmp r4, 0xEF
+ ble _08005D20
+ movs r4, 0xEF
+_08005D20:
+ cmp r1, 0
+ bgt _08005D26
+ movs r1, 0x1
+_08005D26:
+ cmp r1, 0xF0
+ ble _08005D2C
+ movs r1, 0xF0
+_08005D2C:
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ lsls r0, r1, 8
+ orrs r0, r4
+_08005D38:
+ strh r0, [r3]
+_08005D3A:
+ adds r3, 0x2
+ adds r6, 0x2
+ adds r7, 0x1
+ cmp r7, 0x9F
+ ble _08005CBA
+ b _08006094
+_08005D46:
+ ldr r1, _08005E54
+ movs r7, 0xE
+_08005D4A:
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ subs r7, 0x1
+ cmp r7, 0
+ blt _08005E52
+ b _08005D4A
+_08005E52:
+ b _08006094
+ .align 2, 0
+_08005E54: .4byte gUnknown_80B82AA
+_08005E58:
+ ldr r4, _08005FF4
+ ldr r5, _08005FF8
+ ldr r6, _08005FFC
+ movs r0, 0x80
+ lsls r0, 1
+ adds r1, r0, 0
+ movs r7, 0xE
+_08005E66:
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ subs r7, 0x1
+ cmp r7, 0
+ bge _08005E66
+ ldr r4, [r4]
+ str r4, [sp]
+ ldr r5, [r5]
+ str r5, [sp, 0x4]
+ ldr r6, [r6]
+ str r6, [sp, 0x8]
+ adds r1, r6, 0
+ cmp r6, 0
+ bge _08005F40
+ adds r1, 0xFF
+_08005F40:
+ asrs r1, 8
+ adds r1, 0x1
+ movs r0, 0x80
+ lsls r0, 3
+ bl __divsi3
+ str r0, [sp, 0xC]
+ ldr r0, [sp, 0x4]
+ cmp r0, 0
+ bge _08005F56
+ adds r0, 0xFF
+_08005F56:
+ asrs r4, r0, 8
+ adds r5, r4, 0
+ movs r3, 0
+ lsls r0, r4, 2
+ adds r7, r0, 0x2
+ mov r9, r7
+_08005F62:
+ adds r0, r3, 0
+ str r3, [sp, 0x10]
+ bl sub_8009C7C
+ ldr r1, [sp, 0x8]
+ muls r0, r1
+ ldr r3, [sp, 0x10]
+ cmp r0, 0
+ bge _08005F76
+ adds r0, 0xFF
+_08005F76:
+ asrs r0, 8
+ ldr r2, [sp, 0x4]
+ adds r1, r2, r0
+ cmp r1, 0
+ bge _08005F82
+ adds r1, 0xFF
+_08005F82:
+ asrs r1, 8
+ str r1, [sp, 0x14]
+ ldr r6, [sp, 0x4]
+ subs r0, r6, r0
+ cmp r0, 0
+ bge _08005F90
+ adds r0, 0xFF
+_08005F90:
+ asrs r0, 8
+ mov r8, r0
+ ldr r0, [sp, 0x14]
+ cmp r5, r0
+ blt _08005FA4
+ ldr r1, [sp, 0xC]
+ adds r1, r3
+ mov r10, r1
+ cmp r4, r8
+ ble _0800608A
+_08005FA4:
+ adds r0, r3, 0
+ str r3, [sp, 0x10]
+ bl sub_8009D04
+ ldr r2, [sp, 0x8]
+ muls r0, r2
+ ldr r3, [sp, 0x10]
+ cmp r0, 0
+ bge _08005FB8
+ adds r0, 0xFF
+_08005FB8:
+ asrs r0, 8
+ ldr r6, [sp]
+ subs r1, r6, r0
+ cmp r1, 0
+ bge _08005FC4
+ adds r1, 0xFF
+_08005FC4:
+ asrs r1, 8
+ ldr r2, [sp]
+ adds r0, r2, r0
+ cmp r0, 0
+ bge _08005FD0
+ adds r0, 0xFF
+_08005FD0:
+ asrs r0, 8
+ cmp r1, 0
+ bge _08005FD8
+ movs r1, 0
+_08005FD8:
+ cmp r0, 0
+ bge _08005FDE
+ movs r0, 0
+_08005FDE:
+ cmp r1, 0xEF
+ ble _08005FE4
+ movs r1, 0x9F
+_08005FE4:
+ cmp r0, 0xEF
+ ble _08005FEA
+ movs r0, 0x9F
+_08005FEA:
+ cmp r1, r0
+ ble _08006000
+ lsls r2, r1, 8
+ orrs r2, r0
+ b _08006004
+ .align 2, 0
+_08005FF4: .4byte gUnknown_2026E40
+_08005FF8: .4byte gUnknown_2026E44
+_08005FFC: .4byte gUnknown_2026E48
+_08006000:
+ lsls r2, r0, 8
+ orrs r2, r1
+_08006004:
+ ldr r6, [sp, 0xC]
+ adds r3, r6
+ mov r10, r3
+ ldr r0, [sp, 0x14]
+ cmp r5, r0
+ bge _0800604E
+ ldr r1, _08006030
+ mov r12, r1
+ ldr r3, _08006034
+ add r3, r9
+ ldr r1, _08006038
+ add r1, r9
+_0800601C:
+ cmp r5, 0
+ blt _0800603E
+ cmp r5, 0x9F
+ bgt _0800603E
+ mov r6, r12
+ ldr r0, [r6]
+ cmp r0, 0
+ bne _0800603C
+ strh r2, [r1]
+ b _0800603E
+ .align 2, 0
+_08006030: .4byte gUnknown_2026E54
+_08006034: .4byte gUnknown_20270E8
+_08006038: .4byte gUnknown_2026E60
+_0800603C:
+ strh r2, [r3]
+_0800603E:
+ adds r3, 0x4
+ adds r1, 0x4
+ movs r0, 0x4
+ add r9, r0
+ adds r5, 0x1
+ ldr r6, [sp, 0x14]
+ cmp r5, r6
+ blt _0800601C
+_0800604E:
+ cmp r4, r8
+ ble _0800608A
+ ldr r6, _08006070
+ ldr r0, _08006074
+ adds r3, r7, r0
+ ldr r0, _08006078
+ adds r1, r7, r0
+_0800605C:
+ cmp r4, 0
+ blt _0800607E
+ cmp r4, 0x9F
+ bgt _0800607E
+ ldr r0, [r6]
+ cmp r0, 0
+ bne _0800607C
+ strh r2, [r1]
+ b _0800607E
+ .align 2, 0
+_08006070: .4byte gUnknown_2026E54
+_08006074: .4byte gUnknown_20270E8
+_08006078: .4byte gUnknown_2026E60
+_0800607C:
+ strh r2, [r3]
+_0800607E:
+ subs r3, 0x4
+ subs r1, 0x4
+ subs r7, 0x4
+ subs r4, 0x1
+ cmp r4, r8
+ bgt _0800605C
+_0800608A:
+ mov r3, r10
+ ldr r0, _080060A4
+ cmp r3, r0
+ bgt _08006094
+ b _08005F62
+_08006094:
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080060A4: .4byte 0x000003ff
+ thumb_func_end sub_8005838
+
+ thumb_func_start sub_80060A8
+sub_80060A8:
+ push {lr}
+ ldr r1, _080060D8
+ ldr r0, _080060DC
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r2, _080060E0
+ movs r1, 0
+ ldr r0, [r2]
+ cmp r0, 0
+ bne _080060BE
+ movs r1, 0x1
+_080060BE:
+ str r1, [r2]
+ ldr r2, _080060E4
+ movs r1, 0
+ ldr r0, [r2]
+ cmp r0, 0
+ bne _080060CC
+ movs r1, 0x1
+_080060CC:
+ str r1, [r2]
+ ldr r1, _080060E8
+ movs r0, 0
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080060D8: .4byte gUnknown_2026E3C
+_080060DC: .4byte gUnknown_2026E58
+_080060E0: .4byte gUnknown_2026E54
+_080060E4: .4byte gUnknown_2026E50
+_080060E8: .4byte gUnknown_2026E38
+ thumb_func_end sub_80060A8
+
+ thumb_func_start sub_80060EC
+sub_80060EC:
+ push {lr}
+ ldr r1, _08006130
+ ldr r0, _08006134
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r2, _08006138
+ movs r1, 0
+ ldr r0, [r2]
+ cmp r0, 0
+ bne _08006102
+ movs r1, 0x1
+_08006102:
+ str r1, [r2]
+ ldr r2, _0800613C
+ movs r1, 0
+ ldr r0, [r2]
+ cmp r0, 0
+ bne _08006110
+ movs r1, 0x1
+_08006110:
+ str r1, [r2]
+ ldr r0, _08006140
+ ldrh r2, [r0]
+ movs r0, 0xF8
+ lsls r0, 5
+ ands r0, r2
+ lsrs r0, 8
+ movs r1, 0x1F
+ ands r1, r2
+ bl sub_800CC44
+ ldr r1, _08006144
+ movs r0, 0x1
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08006130: .4byte gUnknown_2026E3C
+_08006134: .4byte gUnknown_2026E58
+_08006138: .4byte gUnknown_2026E54
+_0800613C: .4byte gUnknown_2026E50
+_08006140: .4byte gUnknown_2026E4E
+_08006144: .4byte gUnknown_2026E38
+ thumb_func_end sub_80060EC
+
+ .align 2, 0 @ Don't pad with nop.