summaryrefslogtreecommitdiff
path: root/asm/text.s
diff options
context:
space:
mode:
authorsceptillion <33798691+sceptillion@users.noreply.github.com>2017-12-16 23:54:22 -0800
committersceptillion <33798691+sceptillion@users.noreply.github.com>2017-12-16 23:54:22 -0800
commit670fef77ac4d9116d5fdc28c0da40622919a062b (patch)
tree61c0e925f059404473826ac775305ba5e2706ab1 /asm/text.s
first commit
Diffstat (limited to 'asm/text.s')
-rw-r--r--asm/text.s3091
1 files changed, 3091 insertions, 0 deletions
diff --git a/asm/text.s b/asm/text.s
new file mode 100644
index 000000000..7532ec0b9
--- /dev/null
+++ b/asm/text.s
@@ -0,0 +1,3091 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_800537C
+sub_800537C: @ 800537C
+ push {lr}
+ adds r2, r0, 0
+ adds r3, r2, 0
+ adds r3, 0x14
+ ldrb r1, [r3, 0x1]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080053A0
+ ldrb r1, [r2, 0x14]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x14]
+ ldrb r0, [r3, 0x1]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r3, 0x1]
+_080053A0:
+ adds r0, r2, 0
+ bl sub_8005790
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800537C
+
+ thumb_func_start sub_80053B0
+sub_80053B0: @ 80053B0
+ push {lr}
+ adds r2, r0, 0
+ adds r3, r2, 0
+ adds r3, 0x14
+ ldrb r1, [r3, 0x1]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080053D8
+ ldrb r1, [r2, 0x14]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x14]
+ ldrb r0, [r3, 0x1]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r3, 0x1]
+_080053D8:
+ adds r0, r2, 0
+ bl sub_8005790
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80053B0
+
+ thumb_func_start sub_80053E8
+sub_80053E8: @ 80053E8
+ push {lr}
+ adds r2, r0, 0
+ adds r3, r2, 0
+ adds r3, 0x14
+ ldrb r1, [r3, 0x1]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08005410
+ ldrb r1, [r2, 0x14]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2, 0x14]
+ ldrb r0, [r3, 0x1]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r3, 0x1]
+_08005410:
+ adds r0, r2, 0
+ bl sub_8005790
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80053E8
+
+ thumb_func_start sub_8005420
+sub_8005420: @ 8005420
+ push {lr}
+ adds r2, r0, 0
+ adds r3, r2, 0
+ adds r3, 0x14
+ ldrb r1, [r3, 0x1]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08005448
+ ldrb r1, [r2, 0x14]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r2, 0x14]
+ ldrb r0, [r3, 0x1]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r3, 0x1]
+_08005448:
+ adds r0, r2, 0
+ bl sub_8005790
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8005420
+
+ thumb_func_start sub_8005458
+sub_8005458: @ 8005458
+ push {lr}
+ adds r2, r0, 0
+ adds r3, r2, 0
+ adds r3, 0x14
+ ldrb r1, [r3, 0x1]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08005480
+ ldrb r1, [r2, 0x14]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2, 0x14]
+ ldrb r0, [r3, 0x1]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r3, 0x1]
+_08005480:
+ adds r0, r2, 0
+ bl sub_8005790
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8005458
+
+ thumb_func_start sub_8005490
+sub_8005490: @ 8005490
+ push {lr}
+ adds r2, r0, 0
+ adds r3, r2, 0
+ adds r3, 0x14
+ ldrb r1, [r3, 0x1]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080054B8
+ ldrb r1, [r2, 0x14]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x5
+ orrs r0, r1
+ strb r0, [r2, 0x14]
+ ldrb r0, [r3, 0x1]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r3, 0x1]
+_080054B8:
+ adds r0, r2, 0
+ bl sub_8005790
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8005490
+
+ thumb_func_start sub_80054C8
+sub_80054C8: @ 80054C8
+ push {lr}
+ adds r2, r0, 0
+ adds r2, 0x14
+ ldr r0, _080054E0 @ =gUnknown_3003E50
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080054E4
+ movs r0, 0
+ strb r0, [r2, 0x2]
+ b _080054F4
+ .align 2, 0
+_080054E0: .4byte gUnknown_3003E50
+_080054E4:
+ ldrb r0, [r2, 0x1]
+ movs r1, 0x61
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x20
+ negs r0, r0
+ ands r1, r0
+ strb r1, [r2, 0x1]
+_080054F4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80054C8
+
+ thumb_func_start sub_80054F8
+sub_80054F8: @ 80054F8
+ push {r4-r7,lr}
+ sub sp, 0x18
+ adds r5, r0, 0
+ adds r6, r5, 0
+ adds r6, 0x14
+ ldr r7, _0800552C @ =gUnknown_3003E50
+ ldrb r1, [r7]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _080055C2
+ ldrb r2, [r6, 0x1]
+ movs r0, 0x1F
+ ands r0, r2
+ cmp r0, 0
+ beq _08005530
+ ldr r0, [r5, 0x14]
+ lsls r0, 19
+ lsrs r0, 27
+ subs r0, 0x1
+ movs r1, 0x1F
+ ands r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ b _080055BC
+ .align 2, 0
+_0800552C: .4byte gUnknown_3003E50
+_08005530:
+ ldrb r0, [r5, 0x4]
+ ldrb r2, [r5, 0xD]
+ lsls r2, 28
+ lsrs r1, r2, 4
+ orrs r1, r2
+ lsrs r1, 24
+ ldrb r2, [r5, 0x8]
+ ldrb r3, [r5, 0x9]
+ movs r4, 0xA
+ str r4, [sp]
+ movs r4, 0xC
+ str r4, [sp, 0x4]
+ bl sub_8004378
+ ldr r0, [r7]
+ lsls r0, 30
+ lsrs r0, 31
+ cmp r0, 0
+ beq _0800555A
+ cmp r0, 0x1
+ beq _08005564
+_0800555A:
+ ldr r3, _08005560 @ =gUnknown_81EA14C
+ b _08005566
+ .align 2, 0
+_08005560: .4byte gUnknown_81EA14C
+_08005564:
+ ldr r3, _080055CC @ =gUnknown_81EA24C
+_08005566:
+ ldrb r0, [r5, 0x4]
+ ldr r2, _080055D0 @ =gUnknown_81EA64C
+ ldr r1, [r6]
+ lsls r1, 17
+ lsrs r1, 30
+ adds r1, r2
+ ldrb r2, [r1]
+ movs r1, 0x80
+ str r1, [sp]
+ movs r1, 0x10
+ str r1, [sp, 0x4]
+ ldrb r1, [r5, 0x8]
+ str r1, [sp, 0x8]
+ ldrb r1, [r5, 0x9]
+ str r1, [sp, 0xC]
+ movs r1, 0xA
+ str r1, [sp, 0x10]
+ movs r1, 0xC
+ str r1, [sp, 0x14]
+ adds r1, r3, 0
+ movs r3, 0
+ bl sub_80041F0
+ ldrb r0, [r5, 0x4]
+ movs r1, 0x2
+ bl sub_8003F20
+ ldrb r0, [r6, 0x1]
+ movs r1, 0x20
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x8
+ orrs r1, r0
+ strb r1, [r6, 0x1]
+ ldr r0, [r6]
+ lsls r0, 17
+ lsrs r0, 30
+ adds r0, 0x1
+ movs r2, 0x3
+ ands r0, r2
+ lsls r0, 5
+ movs r2, 0x61
+ negs r2, r2
+_080055BC:
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r6, 0x1]
+_080055C2:
+ add sp, 0x18
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080055CC: .4byte gUnknown_81EA24C
+_080055D0: .4byte gUnknown_81EA64C
+ thumb_func_end sub_80054F8
+
+ thumb_func_start sub_80055D4
+sub_80055D4: @ 80055D4
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ ldrb r0, [r5, 0x4]
+ ldrb r2, [r5, 0xD]
+ lsls r2, 28
+ lsrs r1, r2, 4
+ orrs r1, r2
+ lsrs r1, 24
+ ldrb r2, [r5, 0x8]
+ ldrb r3, [r5, 0x9]
+ movs r4, 0xA
+ str r4, [sp]
+ movs r4, 0xC
+ str r4, [sp, 0x4]
+ bl sub_8004378
+ ldrb r0, [r5, 0x4]
+ movs r1, 0x2
+ bl sub_8003F20
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80055D4
+
+ thumb_func_start sub_8005608
+sub_8005608: @ 8005608
+ push {lr}
+ adds r1, r0, 0
+ adds r1, 0x14
+ ldr r0, _08005628 @ =gUnknown_203ADFA
+ ldrb r0, [r0]
+ movs r2, 0x78
+ cmp r0, 0x2
+ bne _0800561A
+ movs r2, 0x32
+_0800561A:
+ ldrb r0, [r1, 0x2]
+ cmp r0, r2
+ beq _0800562C
+ adds r0, 0x1
+ strb r0, [r1, 0x2]
+ movs r0, 0
+ b _0800562E
+ .align 2, 0
+_08005628: .4byte gUnknown_203ADFA
+_0800562C:
+ movs r0, 0x1
+_0800562E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8005608
+
+ thumb_func_start sub_8005634
+sub_8005634: @ 8005634
+ push {r4,lr}
+ adds r2, r0, 0
+ movs r4, 0
+ ldr r0, _08005654 @ =gUnknown_3003E50
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08005658
+ adds r0, r2, 0
+ bl sub_8005608
+ lsls r0, 24
+ lsrs r4, r0, 24
+ b _08005672
+ .align 2, 0
+_08005654: .4byte gUnknown_3003E50
+_08005658:
+ adds r0, r2, 0
+ bl sub_80054F8
+ ldr r0, _0800567C @ =gUnknown_30030F0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08005672
+ movs r4, 0x1
+ movs r0, 0x5
+ bl sub_80722CC
+_08005672:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0800567C: .4byte gUnknown_30030F0
+ thumb_func_end sub_8005634
+
+ thumb_func_start sub_8005680
+sub_8005680: @ 8005680
+ push {r4,lr}
+ adds r2, r0, 0
+ movs r4, 0
+ ldr r0, _080056A0 @ =gUnknown_3003E50
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080056A4
+ adds r0, r2, 0
+ bl sub_8005608
+ lsls r0, 24
+ lsrs r4, r0, 24
+ b _080056B8
+ .align 2, 0
+_080056A0: .4byte gUnknown_3003E50
+_080056A4:
+ ldr r0, _080056C0 @ =gUnknown_30030F0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _080056B8
+ movs r4, 0x1
+ movs r0, 0x5
+ bl sub_80722CC
+_080056B8:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080056C0: .4byte gUnknown_30030F0
+ thumb_func_end sub_8005680
+
+ thumb_func_start sub_80056C4
+sub_80056C4: @ 80056C4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x18
+ ldr r4, [sp, 0x34]
+ ldr r5, [sp, 0x38]
+ mov r8, r5
+ ldr r5, [sp, 0x3C]
+ mov r9, r5
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r2, 16
+ lsrs r6, r2, 16
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ mov r1, r8
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080056FA
+ subs r0, 0x1
+ strb r0, [r1]
+ b _08005778
+_080056FA:
+ lsls r1, r3, 4
+ orrs r1, r3
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0xA
+ str r0, [sp]
+ movs r0, 0xC
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ adds r2, r7, 0
+ adds r3, r6, 0
+ bl sub_8004378
+ cmp r4, 0
+ bne _08005778
+ ldr r0, _0800572C @ =gUnknown_3003E50
+ ldr r0, [r0]
+ lsls r0, 30
+ lsrs r0, 31
+ cmp r0, 0
+ beq _08005728
+ cmp r0, 0x1
+ beq _08005734
+_08005728:
+ ldr r3, _08005730 @ =gUnknown_81EA14C
+ b _08005736
+ .align 2, 0
+_0800572C: .4byte gUnknown_3003E50
+_08005730: .4byte gUnknown_81EA14C
+_08005734:
+ ldr r3, _08005788 @ =gUnknown_81EA24C
+_08005736:
+ ldr r2, _0800578C @ =gUnknown_81EA64C
+ mov r0, r9
+ ldrb r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ adds r0, r2
+ ldrb r2, [r0]
+ movs r0, 0x80
+ str r0, [sp]
+ movs r0, 0x10
+ str r0, [sp, 0x4]
+ str r7, [sp, 0x8]
+ str r6, [sp, 0xC]
+ movs r0, 0xA
+ str r0, [sp, 0x10]
+ movs r0, 0xC
+ str r0, [sp, 0x14]
+ adds r0, r5, 0
+ adds r1, r3, 0
+ movs r3, 0
+ bl sub_80041F0
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_8003F20
+ movs r0, 0x8
+ mov r1, r8
+ strb r0, [r1]
+ mov r5, r9
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+_08005778:
+ add sp, 0x18
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08005788: .4byte gUnknown_81EA24C
+_0800578C: .4byte gUnknown_81EA64C
+ thumb_func_end sub_80056C4
+
+ thumb_func_start sub_8005790
+sub_8005790: @ 8005790
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r4, r6, 0
+ adds r4, 0x14
+ ldrb r0, [r6, 0x1C]
+ cmp r0, 0x6
+ bls _080057A0
+ b _08005D68
+_080057A0:
+ lsls r0, 2
+ ldr r1, _080057AC @ =_080057B0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080057AC: .4byte _080057B0
+ .align 2, 0
+_080057B0:
+ .4byte _080057CC
+ .4byte _08005C58
+ .4byte _08005C6C
+ .4byte _08005C98
+ .4byte _08005CD0
+ .4byte _08005D44
+ .4byte _08005D56
+_080057CC:
+ ldr r2, _08005820 @ =gUnknown_30030F0
+ ldrh r1, [r2, 0x2C]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _080057E6
+ ldrb r1, [r4]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080057E6
+ movs r0, 0
+ strb r0, [r6, 0x1E]
+_080057E6:
+ ldrb r1, [r6, 0x1E]
+ cmp r1, 0
+ beq _08005828
+ ldrb r0, [r6, 0x1D]
+ cmp r0, 0
+ beq _08005828
+ subs r0, r1, 0x1
+ strb r0, [r6, 0x1E]
+ ldr r0, _08005824 @ =gUnknown_3003E50
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08005804
+ b _08005B30
+_08005804:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08005810
+ b _08005B30
+_08005810:
+ ldrb r0, [r4]
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r4]
+ movs r0, 0
+ strb r0, [r6, 0x1E]
+ b _08005B30
+ .align 2, 0
+_08005820: .4byte gUnknown_30030F0
+_08005824: .4byte gUnknown_3003E50
+_08005828:
+ ldr r2, _08005838 @ =gUnknown_3003E50
+ ldrb r1, [r2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0800583C
+ movs r0, 0x1
+ b _0800583E
+ .align 2, 0
+_08005838: .4byte gUnknown_3003E50
+_0800583C:
+ ldrb r0, [r6, 0x1D]
+_0800583E:
+ strb r0, [r6, 0x1E]
+ ldr r0, [r6]
+ ldrb r3, [r0]
+ adds r0, 0x1
+ str r0, [r6]
+ adds r0, r3, 0
+ subs r0, 0xF8
+ cmp r0, 0x7
+ bls _08005852
+ b _08005B6C
+_08005852:
+ lsls r0, 2
+ ldr r1, _0800585C @ =_08005860
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0800585C: .4byte _08005860
+ .align 2, 0
+_08005860:
+ .4byte _08005B46
+ .4byte _08005B34
+ .4byte _08005B26
+ .4byte _08005B22
+ .4byte _080058AC
+ .4byte _080058A8
+ .4byte _08005880
+ .4byte _08005D68
+_08005880:
+ ldrb r0, [r6, 0x6]
+ strb r0, [r6, 0x8]
+ ldrb r1, [r6, 0x5]
+ ldr r0, _080058A4 @ =gUnknown_3003D90
+ ldr r2, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r6, 0xB]
+ ldrb r0, [r0, 0x5]
+ adds r1, r0
+ ldrb r0, [r6, 0x9]
+ adds r0, r1
+ strb r0, [r6, 0x9]
+_0800589E:
+ movs r0, 0x2
+ b _08005D6A
+ .align 2, 0
+_080058A4: .4byte gUnknown_3003D90
+_080058A8:
+ ldr r0, [r6]
+ b _08005B0A
+_080058AC:
+ ldr r0, [r6]
+ ldrb r3, [r0]
+ adds r0, 0x1
+ str r0, [r6]
+ subs r0, r3, 0x1
+ cmp r0, 0x17
+ bls _080058BC
+ b _08005B6C
+_080058BC:
+ lsls r0, 2
+ ldr r1, _080058C8 @ =_080058CC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080058C8: .4byte _080058CC
+ .align 2, 0
+_080058CC:
+ .4byte _0800592C
+ .4byte _0800594E
+ .4byte _08005972
+ .4byte _0800598C
+ .4byte _080059D8
+ .4byte _080059DC
+ .4byte _0800589E
+ .4byte _080059F4
+ .4byte _08005A04
+ .4byte _08005A1A
+ .4byte _08005A1E
+ .4byte _08005A66
+ .4byte _08005A70
+ .4byte _08005A78
+ .4byte _08005A84
+ .4byte _08005A4C
+ .4byte _08005AB0
+ .4byte _08005ACC
+ .4byte _08005ADC
+ .4byte _08005B00
+ .4byte _08005B10
+ .4byte _08005B18
+ .4byte _08005A96
+ .4byte _08005AA4
+_0800592C:
+ ldr r2, [r6]
+ ldrb r1, [r2]
+ lsls r1, 4
+ ldrb r3, [r6, 0xC]
+ movs r0, 0xF
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r6, 0xC]
+ adds r2, 0x1
+ str r2, [r6]
+ lsls r0, 24
+ lsrs r0, 28
+ ldrb r2, [r6, 0xD]
+ lsls r1, r2, 28
+ lsrs r1, 28
+ lsrs r2, 4
+ b _080059D2
+_0800594E:
+ ldr r1, [r6]
+ ldrb r2, [r1]
+ movs r0, 0xF
+ ands r0, r2
+ ldrb r3, [r6, 0xD]
+ movs r2, 0x10
+ negs r2, r2
+ ands r2, r3
+ orrs r2, r0
+ strb r2, [r6, 0xD]
+ adds r1, 0x1
+ str r1, [r6]
+ ldrb r0, [r6, 0xC]
+ lsrs r0, 4
+ lsls r1, r2, 28
+ lsrs r1, 28
+ lsrs r2, 4
+ b _080059D2
+_08005972:
+ ldr r1, [r6]
+ ldrb r0, [r1]
+ lsls r0, 4
+ ldrb r3, [r6, 0xD]
+ movs r2, 0xF
+ ands r2, r3
+ orrs r2, r0
+ strb r2, [r6, 0xD]
+ adds r1, 0x1
+ str r1, [r6]
+ ldrb r0, [r6, 0xC]
+ lsrs r0, 4
+ b _080059CA
+_0800598C:
+ ldr r3, [r6]
+ ldrb r1, [r3]
+ lsls r1, 4
+ ldrb r4, [r6, 0xC]
+ movs r2, 0xF
+ adds r0, r2, 0
+ ands r0, r4
+ orrs r0, r1
+ strb r0, [r6, 0xC]
+ adds r5, r3, 0x1
+ str r5, [r6]
+ ldrb r3, [r3, 0x1]
+ adds r1, r2, 0
+ ands r1, r3
+ ldrb r4, [r6, 0xD]
+ movs r3, 0x10
+ negs r3, r3
+ ands r3, r4
+ orrs r3, r1
+ strb r3, [r6, 0xD]
+ adds r4, r5, 0x1
+ str r4, [r6]
+ ldrb r1, [r5, 0x1]
+ lsls r1, 4
+ ands r2, r3
+ orrs r2, r1
+ strb r2, [r6, 0xD]
+ adds r4, 0x1
+ str r4, [r6]
+ lsls r0, 24
+ lsrs r0, 28
+_080059CA:
+ lsls r1, r2, 28
+ lsrs r1, 28
+ lsls r2, 24
+ lsrs r2, 28
+_080059D2:
+ bl sub_8002EA8
+ b _0800589E
+_080059D8:
+ ldr r0, [r6]
+ b _08005B0A
+_080059DC:
+ ldr r0, [r6]
+ ldrb r0, [r0]
+ movs r1, 0xF
+ ands r1, r0
+ ldrb r2, [r4]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4]
+ ldr r0, [r6]
+ b _08005B0A
+_080059F4:
+ ldr r0, [r6]
+ ldrb r1, [r0]
+ strb r1, [r6, 0x1E]
+ adds r0, 0x1
+ str r0, [r6]
+ movs r0, 0x6
+ strb r0, [r6, 0x1C]
+ b _0800589E
+_08005A04:
+ movs r0, 0x1
+ strb r0, [r6, 0x1C]
+ ldrb r1, [r2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _08005A14
+ b _08005B30
+_08005A14:
+ movs r0, 0
+ strb r0, [r4, 0x2]
+ b _08005B30
+_08005A1A:
+ movs r0, 0x5
+ b _08005D52
+_08005A1E:
+ ldr r0, [r6]
+ ldrb r3, [r0]
+ adds r1, r0, 0x1
+ str r1, [r6]
+ ldrb r0, [r0, 0x1]
+ lsls r0, 8
+ orrs r3, r0
+ adds r1, 0x1
+ str r1, [r6]
+ ldr r0, _08005A48 @ =gUnknown_203ADFA
+ ldrb r0, [r0]
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _08005A40
+ b _0800589E
+_08005A40:
+ adds r0, r3, 0
+ bl sub_80722A0
+ b _0800589E
+ .align 2, 0
+_08005A48: .4byte gUnknown_203ADFA
+_08005A4C:
+ ldr r0, [r6]
+ ldrb r3, [r0]
+ adds r1, r0, 0x1
+ str r1, [r6]
+ ldrb r0, [r0, 0x1]
+ lsls r0, 8
+ orrs r3, r0
+ adds r1, 0x1
+ str r1, [r6]
+ adds r0, r3, 0
+ bl sub_80722CC
+ b _0800589E
+_08005A66:
+ ldr r1, [r6]
+ adds r0, r1, 0x1
+ str r0, [r6]
+ ldrb r3, [r1, 0x1]
+ b _08005B6C
+_08005A70:
+ ldr r1, [r6]
+ ldrb r0, [r1]
+ ldrb r2, [r6, 0x6]
+ b _08005AD2
+_08005A78:
+ ldr r1, [r6]
+ ldrb r0, [r1]
+ ldrb r3, [r6, 0x7]
+ adds r0, r3
+ strb r0, [r6, 0x9]
+ b _08005AD6
+_08005A84:
+ ldrb r0, [r6, 0x4]
+ ldrb r2, [r6, 0xD]
+ lsls r2, 28
+ lsrs r1, r2, 4
+ orrs r1, r2
+ lsrs r1, 24
+ bl sub_800445C
+ b _0800589E
+_08005A96:
+ ldr r0, _08005AA0 @ =gMPlay_BGM
+ bl m4aMPlayStop
+ b _0800589E
+ .align 2, 0
+_08005AA0: .4byte gMPlay_BGM
+_08005AA4:
+ ldr r0, _08005AAC @ =gMPlay_BGM
+ bl m4aMPlayContinue
+ b _0800589E
+ .align 2, 0
+_08005AAC: .4byte gMPlay_BGM
+_08005AB0:
+ ldr r0, [r6]
+ ldrb r4, [r0]
+ adds r0, 0x1
+ str r0, [r6]
+ cmp r4, 0
+ bgt _08005ABE
+ b _0800589E
+_08005ABE:
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl nullsub_5
+ ldrb r0, [r6, 0x8]
+ adds r0, r4
+ b _08005C4E
+_08005ACC:
+ ldr r1, [r6]
+ ldrb r0, [r6, 0x6]
+ ldrb r2, [r1]
+_08005AD2:
+ adds r0, r2
+ strb r0, [r6, 0x8]
+_08005AD6:
+ adds r1, 0x1
+ str r1, [r6]
+ b _0800589E
+_08005ADC:
+ ldr r0, [r6]
+ ldrb r2, [r0]
+ ldrb r1, [r6, 0x6]
+ adds r2, r1
+ adds r0, 0x1
+ str r0, [r6]
+ ldrb r0, [r6, 0x8]
+ subs r4, r2, r0
+ cmp r4, 0
+ bgt _08005AF2
+ b _0800589E
+_08005AF2:
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl nullsub_5
+ ldrb r0, [r6, 0x8]
+ adds r0, r4
+ b _08005C4E
+_08005B00:
+ ldr r0, [r6]
+ ldrb r2, [r0]
+ adds r1, r6, 0
+ adds r1, 0x20
+ strb r2, [r1]
+_08005B0A:
+ adds r0, 0x1
+ str r0, [r6]
+ b _0800589E
+_08005B10:
+ adds r1, r6, 0
+ adds r1, 0x21
+ movs r0, 0x1
+ b _08005B1E
+_08005B18:
+ adds r1, r6, 0
+ adds r1, 0x21
+ movs r0, 0
+_08005B1E:
+ strb r0, [r1]
+ b _0800589E
+_08005B22:
+ movs r0, 0x2
+ b _08005B28
+_08005B26:
+ movs r0, 0x3
+_08005B28:
+ strb r0, [r6, 0x1C]
+ adds r0, r6, 0
+ bl sub_80054C8
+_08005B30:
+ movs r0, 0x3
+ b _08005D6A
+_08005B34:
+ ldr r0, [r6]
+ ldrb r3, [r0]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ orrs r3, r1
+ adds r0, 0x1
+ str r0, [r6]
+ b _08005B6C
+_08005B46:
+ ldr r0, [r6]
+ ldrb r3, [r0]
+ adds r0, 0x1
+ str r0, [r6]
+ ldrb r0, [r6, 0x4]
+ adds r1, r3, 0
+ ldrb r2, [r6, 0x8]
+ ldrb r3, [r6, 0x9]
+ bl sub_80063C8
+ ldr r1, _08005B68 @ =gUnknown_3003DA0
+ adds r1, 0x80
+ strb r0, [r1]
+ ldrb r3, [r6, 0xA]
+ adds r0, r3
+ b _08005C4A
+ .align 2, 0
+_08005B68: .4byte gUnknown_3003DA0
+_08005B6C:
+ ldr r0, [r4]
+ lsls r0, 28
+ lsrs r0, 28
+ cmp r0, 0x5
+ bhi _08005BEE
+ lsls r0, 2
+ ldr r1, _08005B80 @ =_08005B84
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08005B80: .4byte _08005B84
+ .align 2, 0
+_08005B84:
+ .4byte _08005B9C
+ .4byte _08005BAA
+ .4byte _08005BB8
+ .4byte _08005BC6
+ .4byte _08005BD4
+ .4byte _08005BE2
+_08005B9C:
+ adds r0, r6, 0
+ adds r0, 0x21
+ ldrb r1, [r0]
+ adds r0, r3, 0
+ bl sub_8006448
+ b _08005BEE
+_08005BAA:
+ adds r0, r6, 0
+ adds r0, 0x21
+ ldrb r1, [r0]
+ adds r0, r3, 0
+ bl sub_80064F0
+ b _08005BEE
+_08005BB8:
+ adds r0, r6, 0
+ adds r0, 0x21
+ ldrb r1, [r0]
+ adds r0, r3, 0
+ bl sub_80065B8
+ b _08005BEE
+_08005BC6:
+ adds r0, r6, 0
+ adds r0, 0x21
+ ldrb r1, [r0]
+ adds r0, r3, 0
+ bl sub_8006724
+ b _08005BEE
+_08005BD4:
+ adds r0, r6, 0
+ adds r0, 0x21
+ ldrb r1, [r0]
+ adds r0, r3, 0
+ bl sub_80067EC
+ b _08005BEE
+_08005BE2:
+ adds r0, r6, 0
+ adds r0, 0x21
+ ldrb r1, [r0]
+ adds r0, r3, 0
+ bl sub_8006958
+_08005BEE:
+ adds r0, r6, 0
+ bl sub_8003014
+ adds r2, r6, 0
+ adds r2, 0x20
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _08005C28
+ ldr r1, _08005C24 @ =gUnknown_3003DA0
+ adds r1, 0x80
+ ldrb r0, [r1]
+ ldrb r3, [r6, 0x8]
+ adds r0, r3
+ strb r0, [r6, 0x8]
+ ldrb r2, [r2]
+ ldrb r0, [r1]
+ subs r4, r2, r0
+ cmp r4, 0
+ ble _08005C50
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl nullsub_5
+ ldrb r0, [r6, 0x8]
+ adds r0, r4
+ b _08005C4E
+ .align 2, 0
+_08005C24: .4byte gUnknown_3003DA0
+_08005C28:
+ adds r0, r6, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08005C44
+ ldr r0, _08005C40 @ =gUnknown_3003DA0
+ adds r0, 0x80
+ ldrb r1, [r6, 0xA]
+ ldrb r0, [r0]
+ adds r1, r0
+ ldrb r0, [r6, 0x8]
+ b _08005C4C
+ .align 2, 0
+_08005C40: .4byte gUnknown_3003DA0
+_08005C44:
+ ldr r0, _08005C54 @ =gUnknown_3003DA0
+ adds r0, 0x80
+ ldrb r0, [r0]
+_08005C4A:
+ ldrb r1, [r6, 0x8]
+_08005C4C:
+ adds r0, r1
+_08005C4E:
+ strb r0, [r6, 0x8]
+_08005C50:
+ movs r0, 0
+ b _08005D6A
+ .align 2, 0
+_08005C54: .4byte gUnknown_3003DA0
+_08005C58:
+ adds r0, r6, 0
+ bl sub_8005680
+ lsls r0, 16
+ cmp r0, 0
+ bne _08005C66
+ b _08005B30
+_08005C66:
+ movs r0, 0
+ strb r0, [r6, 0x1C]
+ b _08005B30
+_08005C6C:
+ adds r0, r6, 0
+ bl sub_8005634
+ lsls r0, 16
+ cmp r0, 0
+ bne _08005C7A
+ b _08005B30
+_08005C7A:
+ ldrb r0, [r6, 0x4]
+ ldrb r2, [r6, 0xD]
+ lsls r2, 28
+ lsrs r1, r2, 4
+ orrs r1, r2
+ lsrs r1, 24
+ bl sub_800445C
+ ldrb r0, [r6, 0x6]
+ movs r1, 0
+ strb r0, [r6, 0x8]
+ ldrb r0, [r6, 0x7]
+ strb r0, [r6, 0x9]
+ strb r1, [r6, 0x1C]
+ b _08005B30
+_08005C98:
+ adds r0, r6, 0
+ bl sub_8005634
+ lsls r0, 16
+ cmp r0, 0
+ bne _08005CA6
+ b _08005B30
+_08005CA6:
+ adds r0, r6, 0
+ bl sub_80055D4
+ ldrb r1, [r6, 0x5]
+ ldr r0, _08005CCC @ =gUnknown_3003D90
+ ldr r2, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r6, 0xB]
+ ldrb r0, [r0, 0x5]
+ adds r1, r0
+ strb r1, [r6, 0x1F]
+ ldrb r0, [r6, 0x6]
+ strb r0, [r6, 0x8]
+ movs r0, 0x4
+ strb r0, [r6, 0x1C]
+ b _08005B30
+ .align 2, 0
+_08005CCC: .4byte gUnknown_3003D90
+_08005CD0:
+ ldrb r2, [r6, 0x1F]
+ cmp r2, 0
+ beq _08005D40
+ ldr r4, _08005D04 @ =gUnknown_81EA650
+ ldr r5, _08005D08 @ =gUnknown_300500C
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x14]
+ lsls r1, r0, 29
+ lsrs r0, r1, 29
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _08005D0C
+ ldrb r0, [r6, 0x4]
+ ldrb r1, [r6, 0xD]
+ lsls r1, 28
+ lsrs r3, r1, 4
+ orrs r3, r1
+ lsrs r3, 24
+ movs r1, 0
+ bl sub_80044A8
+ movs r0, 0
+ strb r0, [r6, 0x1F]
+ b _08005D36
+ .align 2, 0
+_08005D04: .4byte gUnknown_81EA650
+_08005D08: .4byte gUnknown_300500C
+_08005D0C:
+ ldrb r0, [r6, 0x4]
+ lsrs r1, 29
+ adds r1, r4
+ ldrb r2, [r1]
+ ldrb r1, [r6, 0xD]
+ lsls r1, 28
+ lsrs r3, r1, 4
+ orrs r3, r1
+ lsrs r3, 24
+ movs r1, 0
+ bl sub_80044A8
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x14]
+ lsls r0, 29
+ lsrs r0, 29
+ adds r0, r4
+ ldrb r1, [r6, 0x1F]
+ ldrb r0, [r0]
+ subs r1, r0
+ strb r1, [r6, 0x1F]
+_08005D36:
+ ldrb r0, [r6, 0x4]
+ movs r1, 0x2
+ bl sub_8003F20
+ b _08005B30
+_08005D40:
+ strb r2, [r6, 0x1C]
+ b _08005B30
+_08005D44:
+ bl sub_80723E0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08005D52
+ b _08005B30
+_08005D52:
+ strb r0, [r6, 0x1C]
+ b _08005B30
+_08005D56:
+ ldrb r0, [r6, 0x1E]
+ adds r1, r0, 0
+ cmp r1, 0
+ beq _08005D64
+ subs r0, 0x1
+ strb r0, [r6, 0x1E]
+ b _08005B30
+_08005D64:
+ strb r1, [r6, 0x1C]
+ b _08005B30
+_08005D68:
+ movs r0, 0x1
+_08005D6A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8005790
+
+ thumb_func_start sub_8005D70
+sub_8005D70: @ 8005D70
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ movs r2, 0
+ mov r1, sp
+ adds r1, 0x7
+_08005D88:
+ strb r2, [r1]
+ subs r1, 0x1
+ cmp r1, sp
+ bge _08005D88
+ movs r5, 0
+ movs r6, 0
+ adds r4, r0, 0
+ movs r2, 0
+_08005D98:
+ adds r0, r4, r2
+ ldrb r3, [r0]
+ adds r2, 0x1
+ adds r0, r3, 0
+ subs r0, 0xF7
+ cmp r0, 0x8
+ bhi _08005E66
+ lsls r0, 2
+ ldr r1, _08005DB0 @ =_08005DB4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08005DB0: .4byte _08005DB4
+ .align 2, 0
+_08005DB4:
+ .4byte _08005E60
+ .4byte _08005E64
+ .4byte _08005E64
+ .4byte _08005E6C
+ .4byte _08005E6C
+ .4byte _08005DE8
+ .4byte _08005E60
+ .4byte _08005DD8
+ .4byte _08005DD8
+_08005DD8:
+ mov r1, sp
+ adds r0, r1, r6
+ strb r5, [r0]
+ movs r5, 0
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ b _08005E6C
+_08005DE8:
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ adds r2, 0x1
+ subs r0, 0x1
+ cmp r0, 0x15
+ bhi _08005E6C
+ lsls r0, 2
+ ldr r1, _08005E00 @ =_08005E04
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08005E00: .4byte _08005E04
+ .align 2, 0
+_08005E04:
+ .4byte _08005E60
+ .4byte _08005E60
+ .4byte _08005E60
+ .4byte _08005E5C
+ .4byte _08005E60
+ .4byte _08005E60
+ .4byte _08005E6C
+ .4byte _08005E60
+ .4byte _08005E6C
+ .4byte _08005E6C
+ .4byte _08005E5E
+ .4byte _08005E60
+ .4byte _08005E60
+ .4byte _08005E60
+ .4byte _08005E6C
+ .4byte _08005E5E
+ .4byte _08005E60
+ .4byte _08005E60
+ .4byte _08005E60
+ .4byte _08005E60
+ .4byte _08005E6C
+ .4byte _08005E6C
+_08005E5C:
+ adds r2, 0x1
+_08005E5E:
+ adds r2, 0x1
+_08005E60:
+ adds r2, 0x1
+ b _08005E6C
+_08005E64:
+ adds r2, 0x1
+_08005E66:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_08005E6C:
+ cmp r3, 0xFF
+ bne _08005D98
+ movs r5, 0
+ movs r2, 0
+_08005E74:
+ mov r1, sp
+ adds r0, r1, r2
+ ldrb r1, [r0]
+ cmp r5, r1
+ bcs _08005E80
+ ldrb r5, [r0]
+_08005E80:
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _08005E74
+ adds r0, r7, 0
+ movs r1, 0
+ bl sub_80F79D8
+ add r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ muls r0, r5
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8005D70
+
+ thumb_func_start sub_8005EA4
+sub_8005EA4: @ 8005EA4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r3, 0
+ ldr r0, _08005EBC @ =gUnknown_81EA654
+ adds r2, r0, 0x4
+ adds r1, r0, 0
+_08005EB2:
+ ldr r0, [r1]
+ cmp r4, r0
+ bne _08005EC0
+ ldr r0, [r2]
+ b _08005ECC
+ .align 2, 0
+_08005EBC: .4byte gUnknown_81EA654
+_08005EC0:
+ adds r2, 0x8
+ adds r1, 0x8
+ adds r3, 0x1
+ cmp r3, 0x6
+ bls _08005EB2
+ movs r0, 0
+_08005ECC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8005EA4
+
+ thumb_func_start sub_8005ED4
+sub_8005ED4: @ 8005ED4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ lsls r2, 16
+ lsrs r5, r2, 16
+ movs r0, 0
+ mov r9, r0
+ movs r7, 0
+ ldr r0, [sp]
+ bl sub_8005EA4
+ mov r8, r0
+ cmp r0, 0
+ bne _08005F02
+_08005EFE:
+ movs r0, 0
+ b _08006112
+_08005F02:
+ lsls r0, r5, 16
+ asrs r2, r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ str r0, [sp, 0x8]
+ cmp r2, r1
+ bne _08005F20
+ ldr r0, [sp]
+ movs r1, 0x2
+ bl sub_80F79D8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ b _08005F22
+_08005F20:
+ mov r10, r2
+_08005F22:
+ movs r1, 0
+ str r1, [sp, 0x4]
+ movs r5, 0
+ movs r6, 0
+ b _080060FE
+_08005F2C:
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ subs r0, 0xF7
+ cmp r0, 0x7
+ bls _08005F38
+ b _080060E0
+_08005F38:
+ lsls r0, 2
+ ldr r1, _08005F44 @ =_08005F48
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08005F44: .4byte _08005F48
+ .align 2, 0
+_08005F48:
+ .4byte _08005F9E
+ .4byte _080060AE
+ .4byte _080060AE
+ .4byte _080060FC
+ .4byte _080060FC
+ .4byte _08005FDE
+ .4byte _08005F74
+ .4byte _08005F68
+_08005F68:
+ ldr r2, [sp, 0x4]
+ cmp r5, r2
+ bls _08005F70
+ str r5, [sp, 0x4]
+_08005F70:
+ movs r5, 0
+ b _080060FC
+_08005F74:
+ adds r4, 0x1
+ ldrb r0, [r4]
+ cmp r0, 0x3
+ beq _08005F94
+ cmp r0, 0x3
+ bgt _08005F86
+ cmp r0, 0x2
+ beq _08005F8C
+ b _08005EFE
+_08005F86:
+ cmp r0, 0x4
+ beq _08005F9C
+ b _08005EFE
+_08005F8C:
+ ldr r6, _08005F90 @ =gUnknown_2021CD0
+ b _08005F9E
+ .align 2, 0
+_08005F90: .4byte gUnknown_2021CD0
+_08005F94:
+ ldr r6, _08005F98 @ =gUnknown_2021CF0
+ b _08005F9E
+ .align 2, 0
+_08005F98: .4byte gUnknown_2021CF0
+_08005F9C:
+ ldr r6, _08005FB0 @ =gUnknown_2021D04
+_08005F9E:
+ cmp r6, 0
+ bne _08005FD4
+ adds r4, 0x1
+ ldrb r0, [r4]
+ bl sub_813CD14
+ adds r6, r0, 0
+ b _08005FD4
+ .align 2, 0
+_08005FB0: .4byte gUnknown_2021D04
+_08005FB4:
+ ldrb r0, [r6]
+ adds r6, 0x1
+ mov r1, r9
+ bl _call_via_r8
+ cmp r7, 0
+ ble _08005FCA
+ cmp r0, r7
+ bge _08005FD2
+ adds r0, r7, 0
+ b _08005FD2
+_08005FCA:
+ mov r1, r9
+ cmp r1, 0
+ beq _08005FD2
+ add r0, r10
+_08005FD2:
+ adds r5, r0
+_08005FD4:
+ ldrb r0, [r6]
+ cmp r0, 0xFF
+ bne _08005FB4
+ movs r6, 0
+ b _080060FC
+_08005FDE:
+ adds r4, 0x1
+ ldrb r0, [r4]
+ subs r0, 0x1
+ cmp r0, 0x15
+ bls _08005FEA
+ b _080060FC
+_08005FEA:
+ lsls r0, 2
+ ldr r1, _08005FF4 @ =_08005FF8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08005FF4: .4byte _08005FF8
+ .align 2, 0
+_08005FF8:
+ .4byte _08006054
+ .4byte _08006054
+ .4byte _08006054
+ .4byte _08006050
+ .4byte _08006054
+ .4byte _08006058
+ .4byte _080060FC
+ .4byte _08006054
+ .4byte _080060FC
+ .4byte _080060FC
+ .4byte _08006052
+ .4byte _08006054
+ .4byte _08006054
+ .4byte _08006054
+ .4byte _080060FC
+ .4byte _08006052
+ .4byte _08006084
+ .4byte _0800608A
+ .4byte _08006090
+ .4byte _0800609C
+ .4byte _080060A2
+ .4byte _080060A8
+_08006050:
+ adds r4, 0x1
+_08006052:
+ adds r4, 0x1
+_08006054:
+ adds r4, 0x1
+ b _080060FC
+_08006058:
+ adds r4, 0x1
+ ldrb r0, [r4]
+ bl sub_8005EA4
+ mov r8, r0
+ cmp r0, 0
+ bne _08006068
+ b _08005EFE
+_08006068:
+ ldr r2, [sp, 0x8]
+ asrs r1, r2, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080060FC
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_80F79D8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ b _080060FC
+_08006084:
+ adds r4, 0x1
+ ldrb r0, [r4]
+ b _080060FA
+_0800608A:
+ adds r4, 0x1
+ ldrb r5, [r4]
+ b _080060FC
+_08006090:
+ adds r4, 0x1
+ ldrb r0, [r4]
+ cmp r0, r5
+ bls _080060FC
+ adds r5, r0, 0
+ b _080060FC
+_0800609C:
+ adds r4, 0x1
+ ldrb r7, [r4]
+ b _080060FC
+_080060A2:
+ movs r0, 0x1
+ mov r9, r0
+ b _080060FC
+_080060A8:
+ movs r1, 0
+ mov r9, r1
+ b _080060FC
+_080060AE:
+ ldrb r0, [r4]
+ cmp r0, 0xF9
+ bne _080060C8
+ adds r4, 0x1
+ ldrb r0, [r4]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ orrs r0, r1
+ mov r1, r9
+ bl _call_via_r8
+ b _080060D4
+_080060C8:
+ adds r4, 0x1
+ ldrb r0, [r4]
+ bl sub_8006428
+ lsls r0, 24
+ lsrs r0, 24
+_080060D4:
+ cmp r7, 0
+ ble _080060F2
+_080060D8:
+ cmp r0, r7
+ bge _080060FA
+ adds r0, r7, 0
+ b _080060FA
+_080060E0:
+ adds r0, r1, 0
+ mov r1, r9
+ bl _call_via_r8
+ cmp r7, 0
+ bgt _080060D8
+ ldr r2, [sp]
+ cmp r2, 0x6
+ beq _080060FA
+_080060F2:
+ mov r1, r9
+ cmp r1, 0
+ beq _080060FA
+ add r0, r10
+_080060FA:
+ adds r5, r0
+_080060FC:
+ adds r4, 0x1
+_080060FE:
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _08006106
+ b _08005F2C
+_08006106:
+ ldr r2, [sp, 0x4]
+ cmp r5, r2
+ bhi _08006110
+ adds r0, r2, 0
+ b _08006112
+_08006110:
+ adds r0, r5, 0
+_08006112:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8005ED4
+
+ thumb_func_start sub_8006124
+sub_8006124: @ 8006124
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ mov r9, r0
+ adds r4, r2, 0
+ mov r5, sp
+ adds r5, 0x1
+ mov r6, sp
+ adds r6, 0x2
+ mov r0, sp
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_8002F5C
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r0, 0x3
+ mov r10, r0
+ movs r0, 0x1
+ movs r2, 0x3
+ bl sub_8002EA8
+ mov r8, r4
+ movs r7, 0
+_0800615E:
+ mov r1, r8
+ adds r0, r1, r7
+ ldrb r6, [r0]
+ adds r7, 0x1
+ adds r0, r6, 0
+ subs r0, 0xF7
+ cmp r0, 0x8
+ bhi _0800625A
+ lsls r0, 2
+ ldr r1, _08006178 @ =_0800617C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08006178: .4byte _0800617C
+ .align 2, 0
+_0800617C:
+ .4byte _08006256
+ .4byte _08006256
+ .4byte _08006256
+ .4byte _08006280
+ .4byte _08006280
+ .4byte _080061A0
+ .4byte _08006256
+ .4byte _08006280
+ .4byte _08006280
+_080061A0:
+ mov r1, r8
+ adds r0, r1, r7
+ ldrb r0, [r0]
+ adds r7, 0x1
+ subs r0, 0x1
+ cmp r0, 0x15
+ bhi _08006280
+ lsls r0, 2
+ ldr r1, _080061B8 @ =_080061BC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080061B8: .4byte _080061BC
+ .align 2, 0
+_080061BC:
+ .4byte _08006228
+ .4byte _08006234
+ .4byte _0800623E
+ .4byte _08006214
+ .4byte _08006256
+ .4byte _08006256
+ .4byte _08006280
+ .4byte _08006256
+ .4byte _08006280
+ .4byte _08006280
+ .4byte _08006254
+ .4byte _08006256
+ .4byte _08006256
+ .4byte _08006256
+ .4byte _08006280
+ .4byte _08006254
+ .4byte _08006256
+ .4byte _08006256
+ .4byte _08006256
+ .4byte _08006256
+ .4byte _08006280
+ .4byte _08006280
+_08006214:
+ mov r1, r8
+ adds r0, r1, r7
+ ldrb r0, [r0]
+ str r0, [sp, 0x4]
+ adds r7, 0x1
+ adds r0, r1, r7
+ ldrb r0, [r0]
+ str r0, [sp, 0x8]
+ adds r7, 0x1
+ b _08006240
+_08006228:
+ mov r1, r8
+ adds r0, r1, r7
+ ldrb r0, [r0]
+ str r0, [sp, 0x4]
+ adds r7, 0x1
+ b _0800624A
+_08006234:
+ mov r1, r8
+ adds r0, r1, r7
+ ldrb r0, [r0]
+ str r0, [sp, 0x8]
+ b _08006246
+_0800623E:
+ mov r1, r8
+_08006240:
+ adds r0, r1, r7
+ ldrb r0, [r0]
+ mov r10, r0
+_08006246:
+ adds r7, 0x1
+ ldr r0, [sp, 0x4]
+_0800624A:
+ ldr r1, [sp, 0x8]
+ mov r2, r10
+ bl sub_8002EA8
+ b _08006280
+_08006254:
+ adds r7, 0x1
+_08006256:
+ adds r7, 0x1
+ b _08006280
+_0800625A:
+ adds r0, r6, 0
+ bl sub_8006AC4
+ ldr r4, _080062A8 @ =gUnknown_3003DA0
+ ldr r5, _080062AC @ =0x04000008
+ adds r0, r4, 0
+ mov r1, r9
+ adds r2, r5, 0
+ bl CpuSet
+ adds r4, 0x40
+ mov r1, r9
+ adds r1, 0x20
+ adds r0, r4, 0
+ adds r2, r5, 0
+ bl CpuSet
+ movs r0, 0x40
+ add r9, r0
+_08006280:
+ cmp r6, 0xFF
+ beq _08006286
+ b _0800615E
+_08006286:
+ mov r0, sp
+ mov r1, sp
+ adds r1, 0x1
+ mov r2, sp
+ adds r2, 0x2
+ bl sub_8002F7C
+ movs r0, 0x1
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080062A8: .4byte gUnknown_3003DA0
+_080062AC: .4byte 0x04000008
+ thumb_func_end sub_8006124
+
+ thumb_func_start sub_80062B0
+sub_80062B0: @ 80062B0
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x2E]
+ movs r3, 0x2E
+ ldrsh r2, [r1, r3]
+ cmp r2, 0
+ beq _080062C4
+ subs r0, 0x1
+ strh r0, [r1, 0x2E]
+ b _080062FA
+_080062C4:
+ movs r0, 0x8
+ strh r0, [r1, 0x2E]
+ movs r3, 0x30
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x1
+ beq _080062E8
+ cmp r0, 0x1
+ bgt _080062DA
+ cmp r0, 0
+ beq _080062E4
+ b _080062F4
+_080062DA:
+ cmp r0, 0x2
+ beq _080062E8
+ cmp r0, 0x3
+ beq _080062EC
+ b _080062F4
+_080062E4:
+ strh r2, [r1, 0x26]
+ b _080062F4
+_080062E8:
+ strh r0, [r1, 0x26]
+ b _080062F4
+_080062EC:
+ movs r0, 0x1
+ strh r0, [r1, 0x26]
+ strh r2, [r1, 0x30]
+ b _080062FA
+_080062F4:
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+_080062FA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80062B0
+
+ thumb_func_start sub_8006300
+sub_8006300: @ 8006300
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ ldr r1, [sp, 0x14]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ movs r1, 0x1
+ ands r0, r1
+ lsls r0, 3
+ ldr r1, _08006388 @ =gUnknown_81EA68C
+ adds r0, r1
+ bl sub_80086DC
+ ldr r0, _0800638C @ =gUnknown_81EA6A4
+ bl sub_8008928
+ ldr r0, _08006390 @ =gUnknown_81EA6B4
+ adds r4, 0x3
+ lsls r4, 16
+ asrs r4, 16
+ adds r5, 0x4
+ lsls r5, 16
+ asrs r5, 16
+ adds r1, r4, 0
+ adds r2, r5, 0
+ mov r3, r8
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08006394 @ =gUnknown_202063C
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ movs r1, 0x3
+ ands r6, r1
+ lsls r6, 2
+ ldrb r3, [r2, 0x5]
+ subs r1, 0x10
+ ands r1, r3
+ orrs r1, r6
+ strb r1, [r2, 0x5]
+ ldrb r3, [r2, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r3
+ strb r1, [r2, 0x3]
+ movs r1, 0x8
+ strh r1, [r2, 0x2E]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08006388: .4byte gUnknown_81EA68C
+_0800638C: .4byte gUnknown_81EA6A4
+_08006390: .4byte gUnknown_81EA6B4
+_08006394: .4byte gUnknown_202063C
+ thumb_func_end sub_8006300
+
+ thumb_func_start sub_8006398
+sub_8006398: @ 8006398
+ push {r4,lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080063C4 @ =gUnknown_202063C
+ adds r0, r1
+ bl sub_8007280
+ movs r4, 0x80
+ lsls r4, 8
+ adds r0, r4, 0
+ bl sub_800874C
+ adds r0, r4, 0
+ bl sub_8008A30
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080063C4: .4byte gUnknown_202063C
+ thumb_func_end sub_8006398
+
+ thumb_func_start sub_80063C8
+sub_80063C8: @ 80063C8
+ push {r4,r5,lr}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ ldr r4, _08006410 @ =gUnknown_81EA6CC
+ lsrs r1, 22
+ adds r1, r4
+ ldrh r5, [r1]
+ lsls r5, 5
+ ldr r4, _08006414 @ =gUnknown_81EA700
+ adds r5, r4
+ movs r4, 0x80
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r2, [sp, 0x8]
+ str r3, [sp, 0xC]
+ ldrb r4, [r1, 0x2]
+ str r4, [sp, 0x10]
+ ldrb r1, [r1, 0x3]
+ str r1, [sp, 0x14]
+ adds r1, r5, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80041F0
+ adds r0, r4, 0
+ add sp, 0x18
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08006410: .4byte gUnknown_81EA6CC
+_08006414: .4byte gUnknown_81EA700
+ thumb_func_end sub_80063C8
+
+ thumb_func_start sub_8006418
+sub_8006418: @ 8006418
+ lsls r0, 24
+ ldr r1, _08006424 @ =gUnknown_81EA6CC
+ lsrs r0, 22
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_08006424: .4byte gUnknown_81EA6CC
+ thumb_func_end sub_8006418
+
+ thumb_func_start sub_8006428
+sub_8006428: @ 8006428
+ lsls r0, 24
+ ldr r1, _08006434 @ =gUnknown_81EA6CC
+ lsrs r0, 22
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ bx lr
+ .align 2, 0
+_08006434: .4byte gUnknown_81EA6CC
+ thumb_func_end sub_8006428
+
+ thumb_func_start sub_8006438
+sub_8006438: @ 8006438
+ lsls r0, 24
+ ldr r1, _08006444 @ =gUnknown_81EA6CC
+ lsrs r0, 22
+ adds r0, r1
+ ldrb r0, [r0, 0x3]
+ bx lr
+ .align 2, 0
+_08006444: .4byte gUnknown_81EA6CC
+ thumb_func_end sub_8006438
+
+ thumb_func_start sub_8006448
+sub_8006448: @ 8006448
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r1, 0x1
+ bne _08006490
+ lsrs r2, r0, 20
+ lsls r2, 9
+ movs r0, 0xF
+ ands r0, r6
+ lsls r0, 4
+ ldr r1, _08006488 @ =gUnknown_81EF100
+ adds r0, r1
+ adds r5, r2, r0
+ ldr r4, _0800648C @ =gUnknown_3003DA0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8002F8C
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r5, r1
+ adds r1, r4, 0
+ adds r1, 0x40
+ bl sub_8002F8C
+ adds r1, r4, 0
+ adds r1, 0x80
+ movs r0, 0x8
+ strb r0, [r1]
+ adds r4, 0x81
+ movs r0, 0xC
+ b _080064BC
+ .align 2, 0
+_08006488: .4byte gUnknown_81EF100
+_0800648C: .4byte gUnknown_3003DA0
+_08006490:
+ lsls r1, r6, 5
+ ldr r0, _080064C4 @ =gUnknown_81EAF00
+ adds r5, r1, r0
+ ldr r4, _080064C8 @ =gUnknown_3003DA0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8002F8C
+ adds r0, r5, 0
+ adds r0, 0x10
+ adds r1, r4, 0
+ adds r1, 0x40
+ bl sub_8002F8C
+ ldr r0, _080064CC @ =gUnknown_81EEF00
+ adds r0, r6, r0
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ adds r0, 0x80
+ strb r1, [r0]
+ adds r4, 0x81
+ movs r0, 0xD
+_080064BC:
+ strb r0, [r4]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080064C4: .4byte gUnknown_81EAF00
+_080064C8: .4byte gUnknown_3003DA0
+_080064CC: .4byte gUnknown_81EEF00
+ thumb_func_end sub_8006448
+
+ thumb_func_start sub_80064D0
+sub_80064D0: @ 80064D0
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r1, 0x1
+ beq _080064E8
+ ldr r0, _080064E4 @ =gUnknown_81EEF00
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ b _080064EA
+ .align 2, 0
+_080064E4: .4byte gUnknown_81EEF00
+_080064E8:
+ movs r0, 0x8
+_080064EA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80064D0
+
+ thumb_func_start sub_80064F0
+sub_80064F0: @ 80064F0
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r1, 0x1
+ bne _0800653C
+ lsrs r2, r0, 20
+ lsls r2, 9
+ movs r0, 0xF
+ ands r0, r6
+ lsls r0, 4
+ ldr r1, _08006534 @ =gUnknown_81FB300
+ adds r0, r1
+ adds r5, r2, r0
+ ldr r4, _08006538 @ =gUnknown_3003DA0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8002F8C
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r5, r1
+ adds r1, r4, 0
+ adds r1, 0x40
+ bl sub_8002F8C
+ adds r1, r4, 0
+ adds r1, 0x80
+ movs r0, 0x8
+ strb r0, [r1]
+ adds r4, 0x81
+ movs r0, 0x10
+ strb r0, [r4]
+ b _08006584
+ .align 2, 0
+_08006534: .4byte gUnknown_81FB300
+_08006538: .4byte gUnknown_3003DA0
+_0800653C:
+ lsls r1, r6, 6
+ ldr r0, _0800658C @ =gUnknown_81F3100
+ adds r5, r1, r0
+ ldr r4, _08006590 @ =gUnknown_3003DA0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8002F8C
+ adds r0, r5, 0
+ adds r0, 0x10
+ adds r1, r4, 0
+ adds r1, 0x20
+ bl sub_8002F8C
+ adds r0, r5, 0
+ adds r0, 0x20
+ adds r1, r4, 0
+ adds r1, 0x40
+ bl sub_8002F8C
+ adds r0, r5, 0
+ adds r0, 0x30
+ adds r1, r4, 0
+ adds r1, 0x60
+ bl sub_8002F8C
+ ldr r0, _08006594 @ =gUnknown_81FB100
+ adds r0, r6, r0
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ adds r0, 0x80
+ strb r1, [r0]
+ adds r1, r4, 0
+ adds r1, 0x81
+ movs r0, 0xE
+ strb r0, [r1]
+_08006584:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800658C: .4byte gUnknown_81F3100
+_08006590: .4byte gUnknown_3003DA0
+_08006594: .4byte gUnknown_81FB100
+ thumb_func_end sub_80064F0
+
+ thumb_func_start sub_8006598
+sub_8006598: @ 8006598
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r1, 0x1
+ beq _080065B0
+ ldr r0, _080065AC @ =gUnknown_81FB100
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ b _080065B2
+ .align 2, 0
+_080065AC: .4byte gUnknown_81FB100
+_080065B0:
+ movs r0, 0x8
+_080065B2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8006598
+
+ thumb_func_start sub_80065B8
+sub_80065B8: @ 80065B8
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r1, 0x1
+ bne _0800665C
+ cmp r6, 0
+ bne _080065F8
+ movs r0, 0x2
+ bl sub_8002FCC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ ldr r3, _080065F4 @ =gUnknown_3003DA0
+ lsls r2, r0, 4
+ orrs r2, r0
+ adds r7, r3, 0
+ adds r7, 0x80
+ movs r6, 0xA
+ adds r5, r3, 0
+ adds r5, 0x81
+ movs r4, 0xC
+_080065E4:
+ adds r0, r1, r3
+ strb r2, [r0]
+ strb r6, [r7]
+ strb r4, [r5]
+ adds r1, 0x1
+ cmp r1, 0x7F
+ ble _080065E4
+ b _080066E4
+ .align 2, 0
+_080065F4: .4byte gUnknown_3003DA0
+_080065F8:
+ lsrs r2, r0, 19
+ lsls r2, 9
+ movs r0, 0x7
+ ands r0, r6
+ lsls r0, 5
+ ldr r1, _08006650 @ =gUnknown_8207500
+ adds r0, r1
+ adds r4, r2, r0
+ ldr r5, _08006654 @ =gUnknown_3003DA0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8002F8C
+ adds r0, r4, 0
+ adds r0, 0x10
+ adds r1, r5, 0
+ adds r1, 0x20
+ bl sub_8002F8C
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r4, r1
+ adds r1, r5, 0
+ adds r1, 0x40
+ bl sub_8002F8C
+ movs r1, 0x88
+ lsls r1, 1
+ adds r0, r4, r1
+ adds r1, r5, 0
+ adds r1, 0x60
+ bl sub_8002F8C
+ ldr r0, _08006658 @ =gUnknown_820F500
+ adds r0, r6, r0
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ adds r0, 0x80
+ strb r1, [r0]
+ adds r1, r5, 0
+ adds r1, 0x81
+ movs r0, 0xC
+ b _080066E2
+ .align 2, 0
+_08006650: .4byte gUnknown_8207500
+_08006654: .4byte gUnknown_3003DA0
+_08006658: .4byte gUnknown_820F500
+_0800665C:
+ cmp r6, 0
+ bne _0800669C
+ movs r0, 0x2
+ bl sub_8002FCC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ ldr r3, _08006694 @ =gUnknown_3003DA0
+ lsls r2, r0, 4
+ orrs r2, r0
+ ldr r0, _08006698 @ =gUnknown_8207300
+ ldrb r4, [r0]
+ movs r0, 0x81
+ adds r0, r3
+ mov r12, r0
+ adds r6, r3, 0
+ adds r6, 0x80
+ movs r5, 0xE
+_08006682:
+ adds r0, r1, r3
+ strb r2, [r0]
+ strb r4, [r6]
+ mov r0, r12
+ strb r5, [r0]
+ adds r1, 0x1
+ cmp r1, 0x7F
+ ble _08006682
+ b _080066E4
+ .align 2, 0
+_08006694: .4byte gUnknown_3003DA0
+_08006698: .4byte gUnknown_8207300
+_0800669C:
+ lsls r1, r6, 6
+ ldr r0, _080066EC @ =gUnknown_81FF300
+ adds r4, r1, r0
+ ldr r5, _080066F0 @ =gUnknown_3003DA0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8002F8C
+ adds r0, r4, 0
+ adds r0, 0x10
+ adds r1, r5, 0
+ adds r1, 0x20
+ bl sub_8002F8C
+ adds r0, r4, 0
+ adds r0, 0x20
+ adds r1, r5, 0
+ adds r1, 0x40
+ bl sub_8002F8C
+ adds r0, r4, 0
+ adds r0, 0x30
+ adds r1, r5, 0
+ adds r1, 0x60
+ bl sub_8002F8C
+ ldr r0, _080066F4 @ =gUnknown_8207300
+ adds r0, r6, r0
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ adds r0, 0x80
+ strb r1, [r0]
+ adds r1, r5, 0
+ adds r1, 0x81
+ movs r0, 0xE
+_080066E2:
+ strb r0, [r1]
+_080066E4:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080066EC: .4byte gUnknown_81FF300
+_080066F0: .4byte gUnknown_3003DA0
+_080066F4: .4byte gUnknown_8207300
+ thumb_func_end sub_80065B8
+
+ thumb_func_start sub_80066F8
+sub_80066F8: @ 80066F8
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r1, 0x1
+ bne _08006714
+ cmp r2, 0
+ bne _0800670A
+ movs r0, 0xA
+ b _0800671A
+_0800670A:
+ ldr r0, _08006710 @ =gUnknown_820F500
+ b _08006716
+ .align 2, 0
+_08006710: .4byte gUnknown_820F500
+_08006714:
+ ldr r0, _08006720 @ =gUnknown_8207300
+_08006716:
+ adds r0, r2, r0
+ ldrb r0, [r0]
+_0800671A:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08006720: .4byte gUnknown_8207300
+ thumb_func_end sub_80066F8
+
+ thumb_func_start sub_8006724
+sub_8006724: @ 8006724
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r1, 0x1
+ bne _080067C0
+ cmp r3, 0
+ bne _08006764
+ movs r0, 0x2
+ bl sub_8002FCC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ ldr r3, _08006760 @ =gUnknown_3003DA0
+ lsls r2, r0, 4
+ orrs r2, r0
+ adds r7, r3, 0
+ adds r7, 0x80
+ movs r6, 0xA
+ adds r5, r3, 0
+ adds r5, 0x81
+ movs r4, 0xC
+_08006750:
+ adds r0, r1, r3
+ strb r2, [r0]
+ strb r6, [r7]
+ strb r4, [r5]
+ adds r1, 0x1
+ cmp r1, 0x7F
+ ble _08006750
+ b _080067C6
+ .align 2, 0
+_08006760: .4byte gUnknown_3003DA0
+_08006764:
+ lsrs r2, r0, 19
+ lsls r2, 9
+ movs r0, 0x7
+ ands r0, r3
+ lsls r0, 5
+ ldr r1, _080067B8 @ =gUnknown_8207500
+ adds r0, r1
+ adds r5, r2, r0
+ ldr r4, _080067BC @ =gUnknown_3003DA0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8002F8C
+ adds r0, r5, 0
+ adds r0, 0x10
+ adds r1, r4, 0
+ adds r1, 0x20
+ bl sub_8002F8C
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r5, r1
+ adds r1, r4, 0
+ adds r1, 0x40
+ bl sub_8002F8C
+ movs r1, 0x88
+ lsls r1, 1
+ adds r0, r5, r1
+ adds r1, r4, 0
+ adds r1, 0x60
+ bl sub_8002F8C
+ adds r1, r4, 0
+ adds r1, 0x80
+ movs r0, 0xA
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0xC
+ strb r0, [r1]
+ b _080067C6
+ .align 2, 0
+_080067B8: .4byte gUnknown_8207500
+_080067BC: .4byte gUnknown_3003DA0
+_080067C0:
+ adds r0, r3, 0
+ bl sub_80065B8
+_080067C6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8006724
+
+ thumb_func_start sub_80067CC
+sub_80067CC: @ 80067CC
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r1, 0x1
+ beq _080067E4
+ ldr r0, _080067E0 @ =gUnknown_8207300
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ b _080067E6
+ .align 2, 0
+_080067E0: .4byte gUnknown_8207300
+_080067E4:
+ movs r0, 0xA
+_080067E6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80067CC
+
+ thumb_func_start sub_80067EC
+sub_80067EC: @ 80067EC
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r1, 0x1
+ bne _08006890
+ cmp r6, 0
+ bne _0800682C
+ movs r0, 0x2
+ bl sub_8002FCC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ ldr r3, _08006828 @ =gUnknown_3003DA0
+ lsls r2, r0, 4
+ orrs r2, r0
+ adds r7, r3, 0
+ adds r7, 0x80
+ movs r6, 0xA
+ adds r5, r3, 0
+ adds r5, 0x81
+ movs r4, 0xC
+_08006818:
+ adds r0, r1, r3
+ strb r2, [r0]
+ strb r6, [r7]
+ strb r4, [r5]
+ adds r1, 0x1
+ cmp r1, 0x7F
+ ble _08006818
+ b _08006918
+ .align 2, 0
+_08006828: .4byte gUnknown_3003DA0
+_0800682C:
+ lsrs r2, r0, 19
+ lsls r2, 9
+ movs r0, 0x7
+ ands r0, r6
+ lsls r0, 5
+ ldr r1, _08006884 @ =gUnknown_8217818
+ adds r0, r1
+ adds r4, r2, r0
+ ldr r5, _08006888 @ =gUnknown_3003DA0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8002F8C
+ adds r0, r4, 0
+ adds r0, 0x10
+ adds r1, r5, 0
+ adds r1, 0x20
+ bl sub_8002F8C
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r4, r1
+ adds r1, r5, 0
+ adds r1, 0x40
+ bl sub_8002F8C
+ movs r1, 0x88
+ lsls r1, 1
+ adds r0, r4, r1
+ adds r1, r5, 0
+ adds r1, 0x60
+ bl sub_8002F8C
+ ldr r0, _0800688C @ =gUnknown_821F818
+ adds r0, r6, r0
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ adds r0, 0x80
+ strb r1, [r0]
+ adds r1, r5, 0
+ adds r1, 0x81
+ movs r0, 0xC
+ b _08006916
+ .align 2, 0
+_08006884: .4byte gUnknown_8217818
+_08006888: .4byte gUnknown_3003DA0
+_0800688C: .4byte gUnknown_821F818
+_08006890:
+ cmp r6, 0
+ bne _080068D0
+ movs r0, 0x2
+ bl sub_8002FCC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ ldr r3, _080068C8 @ =gUnknown_3003DA0
+ lsls r2, r0, 4
+ orrs r2, r0
+ ldr r0, _080068CC @ =gUnknown_8217618
+ ldrb r4, [r0]
+ movs r0, 0x81
+ adds r0, r3
+ mov r12, r0
+ adds r6, r3, 0
+ adds r6, 0x80
+ movs r5, 0xE
+_080068B6:
+ adds r0, r1, r3
+ strb r2, [r0]
+ strb r4, [r6]
+ mov r0, r12
+ strb r5, [r0]
+ adds r1, 0x1
+ cmp r1, 0x7F
+ ble _080068B6
+ b _08006918
+ .align 2, 0
+_080068C8: .4byte gUnknown_3003DA0
+_080068CC: .4byte gUnknown_8217618
+_080068D0:
+ lsls r1, r6, 6
+ ldr r0, _08006920 @ =gUnknown_820F618
+ adds r4, r1, r0
+ ldr r5, _08006924 @ =gUnknown_3003DA0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8002F8C
+ adds r0, r4, 0
+ adds r0, 0x10
+ adds r1, r5, 0
+ adds r1, 0x20
+ bl sub_8002F8C
+ adds r0, r4, 0
+ adds r0, 0x20
+ adds r1, r5, 0
+ adds r1, 0x40
+ bl sub_8002F8C
+ adds r0, r4, 0
+ adds r0, 0x30
+ adds r1, r5, 0
+ adds r1, 0x60
+ bl sub_8002F8C
+ ldr r0, _08006928 @ =gUnknown_8217618
+ adds r0, r6, r0
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ adds r0, 0x80
+ strb r1, [r0]
+ adds r1, r5, 0
+ adds r1, 0x81
+ movs r0, 0xE
+_08006916:
+ strb r0, [r1]
+_08006918:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08006920: .4byte gUnknown_820F618
+_08006924: .4byte gUnknown_3003DA0
+_08006928: .4byte gUnknown_8217618
+ thumb_func_end sub_80067EC
+
+ thumb_func_start sub_800692C
+sub_800692C: @ 800692C
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r1, 0x1
+ bne _08006948
+ cmp r2, 0
+ bne _0800693E
+ movs r0, 0xA
+ b _0800694E
+_0800693E:
+ ldr r0, _08006944 @ =gUnknown_821F818
+ b _0800694A
+ .align 2, 0
+_08006944: .4byte gUnknown_821F818
+_08006948:
+ ldr r0, _08006954 @ =gUnknown_8217618
+_0800694A:
+ adds r0, r2, r0
+ ldrb r0, [r0]
+_0800694E:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08006954: .4byte gUnknown_8217618
+ thumb_func_end sub_800692C
+
+ thumb_func_start sub_8006958
+sub_8006958: @ 8006958
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r1, 0x1
+ bne _080069FC
+ cmp r6, 0
+ bne _08006998
+ movs r0, 0x2
+ bl sub_8002FCC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ ldr r3, _08006994 @ =gUnknown_3003DA0
+ lsls r2, r0, 4
+ orrs r2, r0
+ adds r7, r3, 0
+ adds r7, 0x80
+ movs r6, 0xA
+ adds r5, r3, 0
+ adds r5, 0x81
+ movs r4, 0xC
+_08006984:
+ adds r0, r1, r3
+ strb r2, [r0]
+ strb r6, [r7]
+ strb r4, [r5]
+ adds r1, 0x1
+ cmp r1, 0x7F
+ ble _08006984
+ b _08006A84
+ .align 2, 0
+_08006994: .4byte gUnknown_3003DA0
+_08006998:
+ lsrs r2, r0, 19
+ lsls r2, 9
+ movs r0, 0x7
+ ands r0, r6
+ lsls r0, 5
+ ldr r1, _080069F0 @ =gUnknown_8227B30
+ adds r0, r1
+ adds r4, r2, r0
+ ldr r5, _080069F4 @ =gUnknown_3003DA0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8002F8C
+ adds r0, r4, 0
+ adds r0, 0x10
+ adds r1, r5, 0
+ adds r1, 0x20
+ bl sub_8002F8C
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r4, r1
+ adds r1, r5, 0
+ adds r1, 0x40
+ bl sub_8002F8C
+ movs r1, 0x88
+ lsls r1, 1
+ adds r0, r4, r1
+ adds r1, r5, 0
+ adds r1, 0x60
+ bl sub_8002F8C
+ ldr r0, _080069F8 @ =gUnknown_822FB30
+ adds r0, r6, r0
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ adds r0, 0x80
+ strb r1, [r0]
+ adds r1, r5, 0
+ adds r1, 0x81
+ movs r0, 0xC
+ b _08006A82
+ .align 2, 0
+_080069F0: .4byte gUnknown_8227B30
+_080069F4: .4byte gUnknown_3003DA0
+_080069F8: .4byte gUnknown_822FB30
+_080069FC:
+ cmp r6, 0
+ bne _08006A3C
+ movs r0, 0x2
+ bl sub_8002FCC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ ldr r3, _08006A34 @ =gUnknown_3003DA0
+ lsls r2, r0, 4
+ orrs r2, r0
+ ldr r0, _08006A38 @ =gUnknown_8227930
+ ldrb r4, [r0]
+ movs r0, 0x81
+ adds r0, r3
+ mov r12, r0
+ adds r6, r3, 0
+ adds r6, 0x80
+ movs r5, 0xE
+_08006A22:
+ adds r0, r1, r3
+ strb r2, [r0]
+ strb r4, [r6]
+ mov r0, r12
+ strb r5, [r0]
+ adds r1, 0x1
+ cmp r1, 0x7F
+ ble _08006A22
+ b _08006A84
+ .align 2, 0
+_08006A34: .4byte gUnknown_3003DA0
+_08006A38: .4byte gUnknown_8227930
+_08006A3C:
+ lsls r1, r6, 6
+ ldr r0, _08006A8C @ =gUnknown_821F930
+ adds r4, r1, r0
+ ldr r5, _08006A90 @ =gUnknown_3003DA0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8002F8C
+ adds r0, r4, 0
+ adds r0, 0x10
+ adds r1, r5, 0
+ adds r1, 0x20
+ bl sub_8002F8C
+ adds r0, r4, 0
+ adds r0, 0x20
+ adds r1, r5, 0
+ adds r1, 0x40
+ bl sub_8002F8C
+ adds r0, r4, 0
+ adds r0, 0x30
+ adds r1, r5, 0
+ adds r1, 0x60
+ bl sub_8002F8C
+ ldr r0, _08006A94 @ =gUnknown_8227930
+ adds r0, r6, r0
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ adds r0, 0x80
+ strb r1, [r0]
+ adds r1, r5, 0
+ adds r1, 0x81
+ movs r0, 0xE
+_08006A82:
+ strb r0, [r1]
+_08006A84:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08006A8C: .4byte gUnknown_821F930
+_08006A90: .4byte gUnknown_3003DA0
+_08006A94: .4byte gUnknown_8227930
+ thumb_func_end sub_8006958
+
+ thumb_func_start sub_8006A98
+sub_8006A98: @ 8006A98
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r1, 0x1
+ bne _08006AB4
+ cmp r2, 0
+ bne _08006AAA
+ movs r0, 0xA
+ b _08006ABA
+_08006AAA:
+ ldr r0, _08006AB0 @ =gUnknown_822FB30
+ b _08006AB6
+ .align 2, 0
+_08006AB0: .4byte gUnknown_822FB30
+_08006AB4:
+ ldr r0, _08006AC0 @ =gUnknown_8227930
+_08006AB6:
+ adds r0, r2, r0
+ ldrb r0, [r0]
+_08006ABA:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08006AC0: .4byte gUnknown_8227930
+ thumb_func_end sub_8006A98
+
+ thumb_func_start sub_8006AC4
+sub_8006AC4: @ 8006AC4
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 20
+ lsls r4, 9
+ movs r1, 0xF0
+ lsls r1, 12
+ ands r1, r0
+ lsrs r1, 12
+ ldr r0, _08006B08 @ =gUnknown_822FC48
+ adds r1, r0
+ adds r4, r1
+ ldr r5, _08006B0C @ =gUnknown_3003DA0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8002F8C
+ movs r0, 0x80
+ lsls r0, 1
+ adds r4, r0
+ adds r1, r5, 0
+ adds r1, 0x40
+ adds r0, r4, 0
+ bl sub_8002F8C
+ adds r1, r5, 0
+ adds r1, 0x80
+ movs r0, 0x8
+ strb r0, [r1]
+ adds r5, 0x81
+ movs r0, 0xC
+ strb r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08006B08: .4byte gUnknown_822FC48
+_08006B0C: .4byte gUnknown_3003DA0
+ thumb_func_end sub_8006AC4
+
+ .align 2, 0 @ Don't pad with nop.