summaryrefslogtreecommitdiff
path: root/asm/help_system.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/help_system.s
first commit
Diffstat (limited to 'asm/help_system.s')
-rw-r--r--asm/help_system.s2254
1 files changed, 2254 insertions, 0 deletions
diff --git a/asm/help_system.s b/asm/help_system.s
new file mode 100644
index 000000000..9eba9e037
--- /dev/null
+++ b/asm/help_system.s
@@ -0,0 +1,2254 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_813B870
+sub_813B870: @ 813B870
+ push {r4,r5,lr}
+ ldr r0, _0813B888 @ =gUnknown_203F178
+ ldrb r0, [r0, 0x15]
+ cmp r0, 0x8
+ bls _0813B87C
+ b _0813BB24
+_0813B87C:
+ lsls r0, 2
+ ldr r1, _0813B88C @ =_0813B890
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0813B888: .4byte gUnknown_203F178
+_0813B88C: .4byte _0813B890
+ .align 2, 0
+_0813B890:
+ .4byte _0813B8B4
+ .4byte _0813B968
+ .4byte _0813B994
+ .4byte _0813B9D8
+ .4byte _0813BA40
+ .4byte _0813BA78
+ .4byte _0813BAA0
+ .4byte _0813BAE0
+ .4byte _0813BB14
+_0813B8B4:
+ ldr r1, _0813B904 @ =gUnknown_203F177
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _0813B908 @ =gUnknown_300500C
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0
+ bne _0813B900
+ ldr r2, _0813B90C @ =gUnknown_30030F0
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _0813B8DA
+ ldr r0, _0813B910 @ =gUnknown_203F175
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0813B900
+_0813B8DA:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0xC0
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ bne _0813B8E8
+ b _0813BB24
+_0813B8E8:
+ bl sub_812B45C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0813B8FA
+ ldr r0, _0813B914 @ =gUnknown_3005ECC
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0813B918
+_0813B8FA:
+ movs r0, 0xFC
+ bl sub_80722CC
+_0813B900:
+ movs r0, 0
+ b _0813BB28
+ .align 2, 0
+_0813B904: .4byte gUnknown_203F177
+_0813B908: .4byte gUnknown_300500C
+_0813B90C: .4byte gUnknown_30030F0
+_0813B910: .4byte gUnknown_203F175
+_0813B914: .4byte gUnknown_3005ECC
+_0813B918:
+ ldr r0, _0813B94C @ =gMPlay_SE1
+ bl m4aMPlayStop
+ ldr r0, _0813B950 @ =gMPlay_SE2
+ bl m4aMPlayStop
+ movs r0, 0xFA
+ bl sub_80722CC
+ ldr r0, _0813B954 @ =gUnknown_203F174
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0813B93C
+ ldr r0, _0813B958 @ =gMPlay_BGM
+ ldr r1, _0813B95C @ =0x0000ffff
+ movs r2, 0x80
+ bl m4aMPlayVolumeControl
+_0813B93C:
+ bl sub_813BB38
+ ldr r1, _0813B960 @ =gUnknown_203F177
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _0813B964 @ =gUnknown_203F178
+ movs r0, 0x1
+ b _0813BB22
+ .align 2, 0
+_0813B94C: .4byte gMPlay_SE1
+_0813B950: .4byte gMPlay_SE2
+_0813B954: .4byte gUnknown_203F174
+_0813B958: .4byte gMPlay_BGM
+_0813B95C: .4byte 0x0000ffff
+_0813B960: .4byte gUnknown_203F177
+_0813B964: .4byte gUnknown_203F178
+_0813B968:
+ bl sub_813BBAC
+ bl sub_813BB74
+ bl sub_813BBC8
+ movs r1, 0xA0
+ lsls r1, 19
+ ldr r0, _0813B98C @ =gUnknown_8464128
+ ldrh r0, [r0, 0x1E]
+ strh r0, [r1]
+ movs r0, 0
+ movs r1, 0
+ bl sub_8000A38
+ ldr r1, _0813B990 @ =gUnknown_203F178
+ movs r0, 0x2
+ b _0813BB22
+ .align 2, 0
+_0813B98C: .4byte gUnknown_8464128
+_0813B990: .4byte gUnknown_203F178
+_0813B994:
+ ldr r1, _0813B9C4 @ =0x0600c000
+ movs r2, 0x80
+ lsls r2, 7
+ movs r0, 0
+ movs r3, 0
+ bl sub_8000F44
+ ldr r0, _0813B9C8 @ =gUnknown_8464128
+ movs r1, 0xA0
+ lsls r1, 19
+ movs r2, 0x20
+ movs r3, 0
+ bl sub_8000EAC
+ ldr r0, _0813B9CC @ =gUnknown_8464008
+ ldr r1, _0813B9D0 @ =gUnknown_201FEE0
+ movs r2, 0x90
+ lsls r2, 1
+ movs r3, 0
+ bl sub_8000EAC
+ ldr r1, _0813B9D4 @ =gUnknown_203F178
+ movs r0, 0x3
+ b _0813BB22
+ .align 2, 0
+_0813B9C4: .4byte 0x0600c000
+_0813B9C8: .4byte gUnknown_8464128
+_0813B9CC: .4byte gUnknown_8464008
+_0813B9D0: .4byte gUnknown_201FEE0
+_0813B9D4: .4byte gUnknown_203F178
+_0813B9D8:
+ bl sub_813BCF4
+ bl sub_813C5D4
+ bl sub_813C5FC
+ ldr r0, _0813BA08 @ =gUnknown_841CB49
+ bl sub_813C454
+ movs r0, 0x1
+ bl sub_813BD14
+ bl sub_812B40C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0813BA14
+ ldr r0, _0813BA0C @ =gUnknown_203F190
+ ldr r1, _0813BA10 @ =gUnknown_203F1AC
+ bl sub_812BC54
+ b _0813BA1C
+ .align 2, 0
+_0813BA08: .4byte gUnknown_841CB49
+_0813BA0C: .4byte gUnknown_203F190
+_0813BA10: .4byte gUnknown_203F1AC
+_0813BA14:
+ ldr r0, _0813BA34 @ =gUnknown_203F190
+ ldr r1, _0813BA38 @ =gUnknown_203F1AC
+ bl sub_812BCA8
+_0813BA1C:
+ movs r0, 0x1
+ bl sub_813BE78
+ movs r0, 0x1
+ bl sub_813BF50
+ bl sub_813BC5C
+ ldr r1, _0813BA3C @ =gUnknown_203F178
+ movs r0, 0x4
+ b _0813BB22
+ .align 2, 0
+_0813BA34: .4byte gUnknown_203F190
+_0813BA38: .4byte gUnknown_203F1AC
+_0813BA3C: .4byte gUnknown_203F178
+_0813BA40:
+ movs r0, 0x50
+ movs r1, 0
+ bl sub_8000A38
+ movs r0, 0x10
+ movs r1, 0
+ bl sub_8000A38
+ movs r0, 0x12
+ movs r1, 0
+ bl sub_8000A38
+ ldr r1, _0813BA70 @ =0x00001f0c
+ movs r0, 0x8
+ bl sub_8000A38
+ movs r1, 0x80
+ lsls r1, 1
+ movs r0, 0
+ bl sub_8000A38
+ ldr r1, _0813BA74 @ =gUnknown_203F178
+ movs r0, 0x5
+ b _0813BB22
+ .align 2, 0
+_0813BA70: .4byte 0x00001f0c
+_0813BA74: .4byte gUnknown_203F178
+_0813BA78:
+ ldr r0, _0813BA94 @ =gUnknown_203F190
+ ldr r1, _0813BA98 @ =gUnknown_203F1AC
+ bl sub_812BB9C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813BB24
+ movs r0, 0xFB
+ bl sub_80722CC
+ ldr r1, _0813BA9C @ =gUnknown_203F178
+ movs r0, 0x6
+ b _0813BB22
+ .align 2, 0
+_0813BA94: .4byte gUnknown_203F190
+_0813BA98: .4byte gUnknown_203F1AC
+_0813BA9C: .4byte gUnknown_203F178
+_0813BAA0:
+ movs r0, 0
+ movs r1, 0
+ bl sub_8000A38
+ bl sub_813BC2C
+ movs r1, 0
+ ldr r5, _0813BAD0 @ =0x000001ff
+ movs r4, 0xA0
+ lsls r4, 19
+ ldr r0, _0813BAD4 @ =gUnknown_8464128
+ ldrh r2, [r0, 0x1E]
+ ldr r3, _0813BAD8 @ =0x05000200
+_0813BABA:
+ adds r0, r1, r4
+ strh r2, [r0]
+ adds r0, r1, r3
+ strh r2, [r0]
+ adds r1, 0x2
+ cmp r1, r5
+ ble _0813BABA
+ ldr r1, _0813BADC @ =gUnknown_203F178
+ movs r0, 0x7
+ b _0813BB22
+ .align 2, 0
+_0813BAD0: .4byte 0x000001ff
+_0813BAD4: .4byte gUnknown_8464128
+_0813BAD8: .4byte 0x05000200
+_0813BADC: .4byte gUnknown_203F178
+_0813BAE0:
+ ldr r0, _0813BB04 @ =gUnknown_203F174
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0813BAF4
+ ldr r0, _0813BB08 @ =gMPlay_BGM
+ ldr r1, _0813BB0C @ =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+_0813BAF4:
+ bl sub_813BC48
+ bl sub_813BBF4
+ ldr r1, _0813BB10 @ =gUnknown_203F178
+ movs r0, 0x8
+ b _0813BB22
+ .align 2, 0
+_0813BB04: .4byte gUnknown_203F174
+_0813BB08: .4byte gMPlay_BGM
+_0813BB0C: .4byte 0x0000ffff
+_0813BB10: .4byte gUnknown_203F178
+_0813BB14:
+ bl sub_813BBDC
+ ldr r1, _0813BB30 @ =gUnknown_203F177
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _0813BB34 @ =gUnknown_203F178
+ movs r0, 0
+_0813BB22:
+ strb r0, [r1, 0x15]
+_0813BB24:
+ ldr r0, _0813BB34 @ =gUnknown_203F178
+ ldrb r0, [r0, 0x15]
+_0813BB28:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0813BB30: .4byte gUnknown_203F177
+_0813BB34: .4byte gUnknown_203F178
+ thumb_func_end sub_813B870
+
+ thumb_func_start sub_813BB38
+sub_813BB38: @ 813BB38
+ ldr r2, _0813BB60 @ =gUnknown_203F178
+ ldr r1, _0813BB64 @ =gUnknown_30030F0
+ ldr r0, [r1, 0xC]
+ str r0, [r2]
+ ldr r0, [r1, 0x10]
+ str r0, [r2, 0x4]
+ movs r0, 0
+ str r0, [r1, 0xC]
+ str r0, [r1, 0x10]
+ ldr r1, _0813BB68 @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0813BB6C @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0813BB70 @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ bx lr
+ .align 2, 0
+_0813BB60: .4byte gUnknown_203F178
+_0813BB64: .4byte gUnknown_30030F0
+_0813BB68: .4byte 0x040000b0
+_0813BB6C: .4byte 0x0000c5ff
+_0813BB70: .4byte 0x00007fff
+ thumb_func_end sub_813BB38
+
+ thumb_func_start sub_813BB74
+sub_813BB74: @ 813BB74
+ push {r4,lr}
+ movs r0, 0
+ bl sub_8000AC4
+ ldr r4, _0813BBA8 @ =gUnknown_203F178
+ strh r0, [r4, 0x8]
+ movs r0, 0x8
+ bl sub_8000AC4
+ strh r0, [r4, 0xA]
+ movs r0, 0x10
+ bl sub_8000AC4
+ strh r0, [r4, 0xC]
+ movs r0, 0x12
+ bl sub_8000AC4
+ strh r0, [r4, 0xE]
+ movs r0, 0x50
+ bl sub_8000AC4
+ strh r0, [r4, 0x10]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813BBA8: .4byte gUnknown_203F178
+ thumb_func_end sub_813BB74
+
+ thumb_func_start sub_813BBAC
+sub_813BBAC: @ 813BBAC
+ push {lr}
+ ldr r0, _0813BBC0 @ =0x0600c000
+ ldr r1, _0813BBC4 @ =gUnknown_203B174
+ movs r2, 0x80
+ lsls r2, 7
+ movs r3, 0
+ bl sub_8000EAC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813BBC0: .4byte 0x0600c000
+_0813BBC4: .4byte gUnknown_203B174
+ thumb_func_end sub_813BBAC
+
+ thumb_func_start sub_813BBC8
+sub_813BBC8: @ 813BBC8
+ push {lr}
+ ldr r0, _0813BBD8 @ =gUnknown_203F18A
+ adds r1, r0, 0x1
+ adds r2, r0, 0x2
+ bl sub_8002F5C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813BBD8: .4byte gUnknown_203F18A
+ thumb_func_end sub_813BBC8
+
+ thumb_func_start sub_813BBDC
+sub_813BBDC: @ 813BBDC
+ ldr r2, _0813BBEC @ =gUnknown_30030F0
+ ldr r1, _0813BBF0 @ =gUnknown_203F178
+ ldr r0, [r1]
+ str r0, [r2, 0xC]
+ ldr r0, [r1, 0x4]
+ str r0, [r2, 0x10]
+ bx lr
+ .align 2, 0
+_0813BBEC: .4byte gUnknown_30030F0
+_0813BBF0: .4byte gUnknown_203F178
+ thumb_func_end sub_813BBDC
+
+ thumb_func_start sub_813BBF4
+sub_813BBF4: @ 813BBF4
+ push {r4,lr}
+ ldr r4, _0813BC28 @ =gUnknown_203F178
+ ldrh r1, [r4, 0x10]
+ movs r0, 0x50
+ bl sub_8000A38
+ ldrh r1, [r4, 0xC]
+ movs r0, 0x10
+ bl sub_8000A38
+ ldrh r1, [r4, 0xE]
+ movs r0, 0x12
+ bl sub_8000A38
+ ldrh r1, [r4, 0xA]
+ movs r0, 0x8
+ bl sub_8000A38
+ ldrh r1, [r4, 0x8]
+ movs r0, 0
+ bl sub_8000A38
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813BC28: .4byte gUnknown_203F178
+ thumb_func_end sub_813BBF4
+
+ thumb_func_start sub_813BC2C
+sub_813BC2C: @ 813BC2C
+ push {lr}
+ ldr r0, _0813BC40 @ =gUnknown_203B174
+ ldr r1, _0813BC44 @ =0x0600c000
+ movs r2, 0x80
+ lsls r2, 7
+ movs r3, 0
+ bl sub_8000EAC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813BC40: .4byte gUnknown_203B174
+_0813BC44: .4byte 0x0600c000
+ thumb_func_end sub_813BC2C
+
+ thumb_func_start sub_813BC48
+sub_813BC48: @ 813BC48
+ push {lr}
+ ldr r0, _0813BC58 @ =gUnknown_203F18A
+ adds r1, r0, 0x1
+ adds r2, r0, 0x2
+ bl sub_8002F7C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813BC58: .4byte gUnknown_203F18A
+ thumb_func_end sub_813BC48
+
+ thumb_func_start sub_813BC5C
+sub_813BC5C: @ 813BC5C
+ push {lr}
+ ldr r0, _0813BC70 @ =gUnknown_201C000
+ ldr r1, _0813BC74 @ =0x0600c000
+ movs r2, 0x80
+ lsls r2, 7
+ movs r3, 0
+ bl sub_8000EAC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813BC70: .4byte gUnknown_201C000
+_0813BC74: .4byte 0x0600c000
+ thumb_func_end sub_813BC5C
+
+ thumb_func_start sub_813BC78
+sub_813BC78: @ 813BC78
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, [sp, 0x20]
+ ldr r5, [sp, 0x24]
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 16
+ lsrs r7, r5, 16
+ lsrs r0, r2, 24
+ adds r2, r0, r4
+ cmp r0, r2
+ bge _0813BCDE
+ mov r12, r2
+ ldr r1, _0813BCF0 @ =gUnknown_201F800
+ mov r10, r1
+_0813BCAE:
+ mov r4, r9
+ mov r2, r8
+ adds r1, r4, r2
+ adds r3, r0, 0x1
+ cmp r4, r1
+ bge _0813BCD6
+ lsls r2, r0, 6
+ mov r5, r10
+_0813BCBE:
+ lsls r0, r4, 1
+ adds r0, r2, r0
+ adds r0, r5
+ strh r6, [r0]
+ adds r0, r6, r7
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r1
+ blt _0813BCBE
+_0813BCD6:
+ lsls r0, r3, 16
+ lsrs r0, 16
+ cmp r0, r12
+ blt _0813BCAE
+_0813BCDE:
+ bl sub_813BC5C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813BCF0: .4byte gUnknown_201F800
+ thumb_func_end sub_813BC78
+
+ thumb_func_start sub_813BCF4
+sub_813BCF4: @ 813BCF4
+ push {lr}
+ sub sp, 0x8
+ ldr r0, _0813BD10 @ =0x000001ff
+ movs r1, 0x14
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0x1E
+ bl sub_813BC78
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813BD10: .4byte 0x000001ff
+ thumb_func_end sub_813BCF4
+
+ thumb_func_start sub_813BD14
+sub_813BD14: @ 813BD14
+ push {lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _0813BD26
+ cmp r2, 0x1
+ beq _0813BD40
+ b _0813BD54
+_0813BD26:
+ ldr r0, _0813BD3C @ =0x000001ff
+ movs r1, 0x2
+ str r1, [sp]
+ str r2, [sp, 0x4]
+ movs r1, 0x1
+ movs r2, 0
+ movs r3, 0x7
+ bl sub_813BC78
+ b _0813BD54
+ .align 2, 0
+_0813BD3C: .4byte 0x000001ff
+_0813BD40:
+ movs r0, 0xF4
+ lsls r0, 1
+ movs r1, 0x2
+ str r1, [sp]
+ str r2, [sp, 0x4]
+ movs r1, 0x1
+ movs r2, 0
+ movs r3, 0x7
+ bl sub_813BC78
+_0813BD54:
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813BD14
+
+ thumb_func_start sub_813BD5C
+sub_813BD5C: @ 813BD5C
+ push {lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _0813BD6E
+ cmp r2, 0x1
+ beq _0813BD88
+ b _0813BD9C
+_0813BD6E:
+ ldr r0, _0813BD84 @ =0x000001ff
+ movs r1, 0x2
+ str r1, [sp]
+ str r2, [sp, 0x4]
+ movs r1, 0xD
+ movs r2, 0
+ movs r3, 0x10
+ bl sub_813BC78
+ b _0813BD9C
+ .align 2, 0
+_0813BD84: .4byte 0x000001ff
+_0813BD88:
+ movs r0, 0xD0
+ lsls r0, 1
+ movs r1, 0x2
+ str r1, [sp]
+ str r2, [sp, 0x4]
+ movs r1, 0xD
+ movs r2, 0
+ movs r3, 0x10
+ bl sub_813BC78
+_0813BD9C:
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813BD5C
+
+ thumb_func_start sub_813BDA4
+sub_813BDA4: @ 813BDA4
+ push {lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _0813BDB6
+ cmp r2, 0x1
+ beq _0813BDD0
+ b _0813BDE2
+_0813BDB6:
+ ldr r0, _0813BDCC @ =0x000001ff
+ movs r1, 0x10
+ str r1, [sp]
+ str r2, [sp, 0x4]
+ movs r1, 0x2
+ movs r2, 0x3
+ movs r3, 0x1A
+ bl sub_813BC78
+ b _0813BDE2
+ .align 2, 0
+_0813BDCC: .4byte 0x000001ff
+_0813BDD0:
+ movs r0, 0x10
+ str r0, [sp]
+ str r2, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x2
+ movs r2, 0x3
+ movs r3, 0x1A
+ bl sub_813BC78
+_0813BDE2:
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813BDA4
+
+ thumb_func_start sub_813BDE8
+sub_813BDE8: @ 813BDE8
+ push {lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _0813BDFA
+ cmp r2, 0x1
+ beq _0813BE14
+ b _0813BE2A
+_0813BDFA:
+ ldr r0, _0813BE10 @ =0x000001ff
+ movs r1, 0x10
+ str r1, [sp]
+ str r2, [sp, 0x4]
+ movs r1, 0x1
+ movs r2, 0x3
+ movs r3, 0x1C
+ bl sub_813BC78
+ b _0813BE2A
+ .align 2, 0
+_0813BE10: .4byte 0x000001ff
+_0813BE14:
+ movs r0, 0xFD
+ lsls r0, 1
+ movs r1, 0x11
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ movs r1, 0x1
+ movs r2, 0x3
+ movs r3, 0x1C
+ bl sub_813BC78
+_0813BE2A:
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813BDE8
+
+ thumb_func_start sub_813BE30
+sub_813BE30: @ 813BE30
+ push {lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _0813BE42
+ cmp r2, 0x1
+ beq _0813BE5C
+ b _0813BE70
+_0813BE42:
+ ldr r0, _0813BE58 @ =0x000001ff
+ movs r1, 0x5
+ str r1, [sp]
+ str r2, [sp, 0x4]
+ movs r1, 0x2
+ movs r2, 0xE
+ movs r3, 0x1A
+ bl sub_813BC78
+ b _0813BE70
+ .align 2, 0
+_0813BE58: .4byte 0x000001ff
+_0813BE5C:
+ movs r0, 0x8F
+ lsls r0, 1
+ movs r1, 0x5
+ str r1, [sp]
+ str r2, [sp, 0x4]
+ movs r1, 0x2
+ movs r2, 0xE
+ movs r3, 0x1A
+ bl sub_813BC78
+_0813BE70:
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813BE30
+
+ thumb_func_start sub_813BE78
+sub_813BE78: @ 813BE78
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ beq _0813BE8A
+ cmp r6, 0x1
+ beq _0813BEB4
+ b _0813BED8
+_0813BE8A:
+ ldr r5, _0813BEB0 @ =0x000001ff
+ movs r4, 0x1
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0x2
+ movs r3, 0x1C
+ bl sub_813BC78
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0x13
+ movs r3, 0x1C
+ bl sub_813BC78
+ b _0813BED8
+ .align 2, 0
+_0813BEB0: .4byte 0x000001ff
+_0813BEB4:
+ ldr r0, _0813BEE0 @ =0x000001f7
+ str r6, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ movs r1, 0x1
+ movs r2, 0x2
+ movs r3, 0x1C
+ bl sub_813BC78
+ movs r0, 0xFC
+ lsls r0, 1
+ str r6, [sp]
+ str r4, [sp, 0x4]
+ movs r1, 0x1
+ movs r2, 0x13
+ movs r3, 0x1C
+ bl sub_813BC78
+_0813BED8:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813BEE0: .4byte 0x000001f7
+ thumb_func_end sub_813BE78
+
+ thumb_func_start sub_813BEE4
+sub_813BEE4: @ 813BEE4
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ beq _0813BEF6
+ cmp r6, 0x1
+ beq _0813BF20
+ b _0813BF44
+_0813BEF6:
+ ldr r5, _0813BF1C @ =0x000001ff
+ movs r4, 0x1
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0x2
+ movs r3, 0x1C
+ bl sub_813BC78
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0x13
+ movs r3, 0x1C
+ bl sub_813BC78
+ b _0813BF44
+ .align 2, 0
+_0813BF1C: .4byte 0x000001ff
+_0813BF20:
+ ldr r0, _0813BF4C @ =0x000001fb
+ str r6, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ movs r1, 0x1
+ movs r2, 0x2
+ movs r3, 0x1C
+ bl sub_813BC78
+ movs r0, 0xFE
+ lsls r0, 1
+ str r6, [sp]
+ str r4, [sp, 0x4]
+ movs r1, 0x1
+ movs r2, 0x13
+ movs r3, 0x1C
+ bl sub_813BC78
+_0813BF44:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813BF4C: .4byte 0x000001fb
+ thumb_func_end sub_813BEE4
+
+ thumb_func_start sub_813BF50
+sub_813BF50: @ 813BF50
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ beq _0813BF62
+ cmp r6, 0x1
+ beq _0813BF8C
+ b _0813BFB2
+_0813BF62:
+ ldr r5, _0813BF88 @ =0x000001ff
+ movs r4, 0x14
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_813BC78
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ adds r0, r5, 0
+ movs r1, 0x1D
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_813BC78
+ b _0813BFB2
+ .align 2, 0
+_0813BF88: .4byte 0x000001ff
+_0813BF8C:
+ ldr r6, _0813BFBC @ =0x000001f9
+ movs r5, 0x14
+ str r5, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ adds r0, r6, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_813BC78
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ adds r0, r6, 0
+ movs r1, 0x1D
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_813BC78
+_0813BFB2:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813BFBC: .4byte 0x000001f9
+ thumb_func_end sub_813BF50
+
+ thumb_func_start sub_813BFC0
+sub_813BFC0: @ 813BFC0
+ push {lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _0813BFD2
+ cmp r2, 0x1
+ beq _0813BFE8
+ b _0813BFFC
+_0813BFD2:
+ ldr r0, _0813BFE4 @ =0x000001ff
+ movs r1, 0x1
+ str r1, [sp]
+ str r2, [sp, 0x4]
+ movs r2, 0x5
+ movs r3, 0x1C
+ bl sub_813BC78
+ b _0813BFFC
+ .align 2, 0
+_0813BFE4: .4byte 0x000001ff
+_0813BFE8:
+ movs r0, 0xFE
+ lsls r0, 1
+ str r2, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ movs r1, 0x1
+ movs r2, 0x5
+ movs r3, 0x1C
+ bl sub_813BC78
+_0813BFFC:
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813BFC0
+
+ thumb_func_start sub_813C004
+sub_813C004: @ 813C004
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ cmp r6, 0
+ beq _0813C01A
+ cmp r6, 0x1
+ beq _0813C040
+ b _0813C06A
+_0813C01A:
+ ldr r5, _0813C03C @ =0x000001ff
+ movs r4, 0x1
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ adds r0, r5, 0
+ movs r1, 0x1C
+ movs r2, 0x3
+ movs r3, 0x1
+ bl sub_813BC78
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ adds r0, r5, 0
+ movs r1, 0x1C
+ movs r2, 0x12
+ b _0813C050
+ .align 2, 0
+_0813C03C: .4byte 0x000001ff
+_0813C040:
+ cmp r2, 0
+ bne _0813C058
+ movs r0, 0xFF
+ lsls r0, 1
+ str r6, [sp]
+ str r2, [sp, 0x4]
+ movs r1, 0x1C
+ movs r2, 0x3
+_0813C050:
+ movs r3, 0x1
+ bl sub_813BC78
+ b _0813C06A
+_0813C058:
+ ldr r0, _0813C074 @ =0x000001fd
+ str r6, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ movs r1, 0x1C
+ movs r2, 0x12
+ movs r3, 0x1
+ bl sub_813BC78
+_0813C06A:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813C074: .4byte 0x000001fd
+ thumb_func_end sub_813C004
+
+ thumb_func_start sub_813C078
+sub_813C078: @ 813C078
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x38
+ str r1, [sp, 0x28]
+ mov r9, r2
+ ldr r1, [sp, 0x58]
+ ldr r2, [sp, 0x5C]
+ ldr r4, [sp, 0x60]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x24]
+ lsls r3, 24
+ lsrs r7, r3, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x2C]
+ lsls r4, 24
+ lsrs r4, 24
+ str r4, [sp, 0x30]
+ str r7, [sp, 0x34]
+_0813C0AC:
+ mov r0, r9
+ ldrb r1, [r0]
+ movs r2, 0x1
+ add r9, r2
+ adds r0, r1, 0
+ subs r0, 0xF8
+ cmp r0, 0x7
+ bls _0813C0BE
+ b _0813C358
+_0813C0BE:
+ lsls r0, 2
+ ldr r1, _0813C0C8 @ =_0813C0CC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0813C0C8: .4byte _0813C0CC
+ .align 2, 0
+_0813C0CC:
+ .4byte _0813C2D4
+ .4byte _0813C348
+ .4byte _0813C1E4
+ .4byte _0813C1E4
+ .4byte _0813C200
+ .4byte _0813C0EC
+ .4byte _0813C1E4
+ .4byte _0813C39C
+_0813C0EC:
+ mov r0, r9
+ ldrb r1, [r0]
+ movs r2, 0x1
+ add r9, r2
+ cmp r1, 0x1
+ bne _0813C154
+ movs r4, 0
+ ldr r0, _0813C14C @ =gUnknown_300500C
+ ldr r1, [r0]
+ ldrb r1, [r1]
+ cmp r1, 0xFF
+ beq _0813C0AC
+ ldr r5, _0813C150 @ =gUnknown_3003E20
+_0813C106:
+ ldr r0, [r0]
+ adds r0, r4
+ ldrb r1, [r0]
+ ldr r0, [sp, 0x28]
+ str r0, [sp]
+ str r7, [sp, 0x4]
+ mov r2, r10
+ str r2, [sp, 0x8]
+ ldr r0, [sp, 0x2C]
+ str r0, [sp, 0xC]
+ ldr r2, [sp, 0x30]
+ str r2, [sp, 0x10]
+ ldr r0, [sp, 0x24]
+ add r2, sp, 0x14
+ add r3, sp, 0x1C
+ bl sub_813C3AC
+ ldr r0, [sp, 0x24]
+ ldrb r0, [r5]
+ adds r0, r7, r0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x9
+ bhi _0813C0AC
+ ldr r0, _0813C14C @ =gUnknown_300500C
+ ldr r1, [r0]
+ adds r1, r4
+ ldrb r1, [r1]
+ cmp r1, 0xFF
+ bne _0813C106
+ b _0813C0AC
+ .align 2, 0
+_0813C14C: .4byte gUnknown_300500C
+_0813C150: .4byte gUnknown_3003E20
+_0813C154:
+ cmp r1, 0x2
+ bne _0813C0AC
+ movs r4, 0
+ ldr r5, _0813C160 @ =gUnknown_3003E20
+ b _0813C1BC
+ .align 2, 0
+_0813C160: .4byte gUnknown_3003E20
+_0813C164:
+ ldrb r1, [r1]
+ ldr r2, [sp, 0x28]
+ str r2, [sp]
+ str r7, [sp, 0x4]
+ mov r0, r10
+ str r0, [sp, 0x8]
+ ldr r2, [sp, 0x2C]
+ str r2, [sp, 0xC]
+ ldr r0, [sp, 0x30]
+ str r0, [sp, 0x10]
+ ldr r0, [sp, 0x24]
+ add r2, sp, 0x14
+ add r3, sp, 0x1C
+ bl sub_813C3AC
+ b _0813C1AC
+_0813C184:
+ ldr r0, _0813C1D8 @ =gUnknown_841CB41
+ adds r1, r4, r0
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _0813C0AC
+ adds r1, r0, 0
+ ldr r2, [sp, 0x28]
+ str r2, [sp]
+ str r7, [sp, 0x4]
+ mov r0, r10
+ str r0, [sp, 0x8]
+ ldr r2, [sp, 0x2C]
+ str r2, [sp, 0xC]
+ ldr r0, [sp, 0x30]
+ str r0, [sp, 0x10]
+ ldr r0, [sp, 0x24]
+ add r2, sp, 0x14
+ add r3, sp, 0x1C
+ bl sub_813C3AC
+_0813C1AC:
+ ldr r1, [sp, 0x24]
+ ldrb r0, [r5]
+ adds r0, r7, r0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0813C1BC:
+ ldr r0, _0813C1DC @ =0x00000834
+ bl sub_806E6D0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0813C184
+ ldr r0, _0813C1E0 @ =gUnknown_841CB3C
+ adds r1, r4, r0
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _0813C164
+ b _0813C0AC
+ .align 2, 0
+_0813C1D8: .4byte gUnknown_841CB41
+_0813C1DC: .4byte 0x00000834
+_0813C1E0: .4byte gUnknown_841CB3C
+_0813C1E4:
+ ldr r7, [sp, 0x34]
+ ldr r1, _0813C1FC @ =gUnknown_3003DA0
+ adds r1, 0x81
+ mov r0, r10
+ adds r0, 0x1
+ ldrb r1, [r1]
+ adds r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ b _0813C0AC
+ .align 2, 0
+_0813C1FC: .4byte gUnknown_3003DA0
+_0813C200:
+ mov r2, r9
+ ldrb r1, [r2]
+ movs r0, 0x1
+ add r9, r0
+ subs r0, r1, 0x1
+ cmp r0, 0x15
+ bls _0813C210
+ b _0813C0AC
+_0813C210:
+ lsls r0, 2
+ ldr r1, _0813C21C @ =_0813C220
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0813C21C: .4byte _0813C220
+ .align 2, 0
+_0813C220:
+ .4byte _0813C2C8
+ .4byte _0813C2C8
+ .4byte _0813C2C8
+ .4byte _0813C278
+ .4byte _0813C2C8
+ .4byte _0813C2C8
+ .4byte _0813C0AC
+ .4byte _0813C2C8
+ .4byte _0813C0AC
+ .4byte _0813C0AC
+ .4byte _0813C27C
+ .4byte _0813C2C8
+ .4byte _0813C2C8
+ .4byte _0813C2C8
+ .4byte _0813C0AC
+ .4byte _0813C27C
+ .4byte _0813C2CE
+ .4byte _0813C2CE
+ .4byte _0813C282
+ .4byte _0813C2CE
+ .4byte _0813C0AC
+ .4byte _0813C0AC
+_0813C278:
+ movs r1, 0x1
+ add r9, r1
+_0813C27C:
+ movs r2, 0x1
+ add r9, r2
+ b _0813C2C8
+_0813C282:
+ mov r2, r9
+ ldrb r0, [r2]
+ ldr r1, [sp, 0x34]
+ adds r0, r1
+ subs r6, r0, r7
+ cmp r6, 0
+ ble _0813C2C8
+ ldr r2, [sp, 0x28]
+ str r2, [sp, 0x1C]
+ ldr r1, [sp, 0x2C]
+ lsls r0, r1, 3
+ add r4, sp, 0x1C
+ movs r5, 0
+ strh r0, [r4, 0x4]
+ ldr r2, [sp, 0x30]
+ lsls r0, r2, 3
+ strh r0, [r4, 0x6]
+ ldr r0, [sp, 0x24]
+ movs r1, 0x1
+ bl sub_80F79D8
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r3, r6, 16
+ lsrs r3, 16
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ adds r0, r4, 0
+ adds r1, r7, 0
+ mov r2, r10
+ bl sub_8004C84
+ adds r0, r7, r6
+ lsls r0, 24
+ lsrs r7, r0, 24
+_0813C2C8:
+ movs r0, 0x1
+ add r9, r0
+ b _0813C0AC
+_0813C2CE:
+ movs r1, 0x1
+ add r9, r1
+ b _0813C0AC
+_0813C2D4:
+ mov r2, r9
+ ldrb r1, [r2]
+ movs r0, 0x1
+ add r9, r0
+ adds r6, r1, 0
+ adds r0, r6, 0
+ bl sub_8006418
+ lsls r0, 24
+ lsrs r0, 19
+ ldr r1, _0813C344 @ =gUnknown_81EA700
+ adds r0, r1
+ str r0, [sp, 0x14]
+ add r1, sp, 0x14
+ movs r2, 0
+ mov r8, r2
+ movs r0, 0x80
+ strh r0, [r1, 0x4]
+ strh r0, [r1, 0x6]
+ ldr r0, [sp, 0x28]
+ str r0, [sp, 0x1C]
+ ldr r1, [sp, 0x2C]
+ lsls r0, r1, 3
+ add r5, sp, 0x1C
+ strh r0, [r5, 0x4]
+ ldr r2, [sp, 0x30]
+ lsls r0, r2, 3
+ strh r0, [r5, 0x6]
+ adds r0, r6, 0
+ bl sub_8006428
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ bl sub_8006438
+ lsls r0, 24
+ lsrs r0, 24
+ str r7, [sp]
+ mov r1, r10
+ str r1, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r0, [sp, 0xC]
+ mov r2, r8
+ str r2, [sp, 0x10]
+ add r0, sp, 0x14
+ adds r1, r5, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8004AA4
+ adds r0, r6, 0
+ bl sub_8006428
+ b _0813C38E
+ .align 2, 0
+_0813C344: .4byte gUnknown_81EA700
+_0813C348:
+ mov r0, r9
+ ldrb r1, [r0]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ orrs r1, r0
+ movs r0, 0x1
+ add r9, r0
+_0813C358:
+ cmp r1, 0
+ bne _0813C36A
+ ldr r1, [sp, 0x24]
+ cmp r1, 0
+ bne _0813C366
+ adds r0, r7, 0x5
+ b _0813C390
+_0813C366:
+ adds r0, r7, 0x4
+ b _0813C390
+_0813C36A:
+ add r3, sp, 0x1C
+ ldr r2, [sp, 0x28]
+ str r2, [sp]
+ str r7, [sp, 0x4]
+ mov r0, r10
+ str r0, [sp, 0x8]
+ ldr r2, [sp, 0x2C]
+ str r2, [sp, 0xC]
+ ldr r0, [sp, 0x30]
+ str r0, [sp, 0x10]
+ ldr r0, [sp, 0x24]
+ add r2, sp, 0x14
+ bl sub_813C3AC
+ ldr r1, [sp, 0x24]
+ ldr r0, _0813C398 @ =gUnknown_3003DA0
+ adds r0, 0x80
+ ldrb r0, [r0]
+_0813C38E:
+ adds r0, r7, r0
+_0813C390:
+ lsls r0, 24
+ lsrs r7, r0, 24
+ b _0813C0AC
+ .align 2, 0
+_0813C398: .4byte gUnknown_3003DA0
+_0813C39C:
+ add sp, 0x38
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813C078
+
+ thumb_func_start sub_813C3AC
+sub_813C3AC: @ 813C3AC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ adds r7, r2, 0
+ mov r8, r3
+ ldr r2, [sp, 0x38]
+ ldr r3, [sp, 0x3C]
+ ldr r4, [sp, 0x40]
+ ldr r5, [sp, 0x44]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 16
+ lsrs r0, r1, 16
+ adds r1, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ lsls r3, 24
+ lsrs r3, 24
+ mov r9, r3
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ cmp r6, 0
+ bne _0813C3EE
+ movs r1, 0
+ bl sub_8006448
+ b _0813C402
+_0813C3EE:
+ cmp r6, 0x5
+ bne _0813C3FA
+ movs r1, 0
+ bl sub_8006958
+ b _0813C402
+_0813C3FA:
+ adds r0, r1, 0
+ movs r1, 0
+ bl sub_80065B8
+_0813C402:
+ ldr r1, _0813C450 @ =gUnknown_3003DA0
+ str r1, [r7]
+ movs r2, 0
+ movs r0, 0x10
+ strh r0, [r7, 0x4]
+ strh r0, [r7, 0x6]
+ ldr r0, [sp, 0x34]
+ mov r3, r8
+ str r0, [r3]
+ lsls r0, r4, 3
+ strh r0, [r3, 0x4]
+ lsls r0, r5, 3
+ strh r0, [r3, 0x6]
+ mov r0, r10
+ str r0, [sp]
+ mov r3, r9
+ str r3, [sp, 0x4]
+ adds r0, r1, 0
+ adds r0, 0x80
+ ldrb r0, [r0]
+ str r0, [sp, 0x8]
+ adds r1, 0x81
+ ldrb r0, [r1]
+ str r0, [sp, 0xC]
+ str r2, [sp, 0x10]
+ adds r0, r7, 0
+ mov r1, r8
+ movs r3, 0
+ bl sub_8004AA4
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813C450: .4byte gUnknown_3003DA0
+ thumb_func_end sub_813C3AC
+
+ thumb_func_start sub_813C454
+sub_813C454: @ 813C454
+ push {r4,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ movs r0, 0x1
+ movs r1, 0xF
+ movs r2, 0x2
+ bl sub_8002EA8
+ ldr r1, _0813C484 @ =gUnknown_201FD00
+ movs r2, 0x2
+ str r2, [sp]
+ movs r0, 0x7
+ str r0, [sp, 0x4]
+ str r2, [sp, 0x8]
+ movs r0, 0x5
+ adds r2, r4, 0
+ movs r3, 0x6
+ bl sub_813C078
+ add sp, 0xC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813C484: .4byte gUnknown_201FD00
+ thumb_func_end sub_813C454
+
+ thumb_func_start sub_813C488
+sub_813C488: @ 813C488
+ push {r4,r5,lr}
+ sub sp, 0xC
+ adds r5, r0, 0
+ movs r0, 0
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_8005ED4
+ movs r4, 0x7C
+ subs r4, r0
+ movs r0, 0x1
+ movs r1, 0xF
+ movs r2, 0x2
+ bl sub_8002EA8
+ ldr r1, _0813C4C8 @ =gUnknown_201F400
+ lsls r4, 24
+ lsrs r4, 24
+ movs r2, 0x2
+ str r2, [sp]
+ movs r0, 0x10
+ str r0, [sp, 0x4]
+ str r2, [sp, 0x8]
+ movs r0, 0
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl sub_813C078
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813C4C8: .4byte gUnknown_201F400
+ thumb_func_end sub_813C488
+
+ thumb_func_start sub_813C4CC
+sub_813C4CC: @ 813C4CC
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r6, r0, 0
+ adds r5, r1, 0
+ adds r4, r2, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ movs r1, 0xF
+ movs r2, 0x2
+ bl sub_8002EA8
+ ldr r1, _0813C508 @ =gUnknown_201C000
+ str r4, [sp]
+ movs r0, 0x1A
+ str r0, [sp, 0x4]
+ movs r0, 0x10
+ str r0, [sp, 0x8]
+ movs r0, 0x2
+ adds r2, r6, 0
+ adds r3, r5, 0
+ bl sub_813C078
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813C508: .4byte gUnknown_201C000
+ thumb_func_end sub_813C4CC
+
+ thumb_func_start sub_813C50C
+sub_813C50C: @ 813C50C
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x10
+ mov r8, r0
+ mov r9, r1
+ add r1, sp, 0xC
+ ldr r2, _0813C578 @ =0x0000eeee
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, _0813C57C @ =gUnknown_201C000
+ ldr r2, _0813C580 @ =0x01001a00
+ adds r0, r1, 0
+ adds r1, r4, 0
+ bl CpuSet
+ movs r0, 0x1
+ movs r1, 0xE
+ movs r2, 0x2
+ bl sub_8002EA8
+ movs r6, 0
+ str r6, [sp]
+ movs r5, 0x1A
+ str r5, [sp, 0x4]
+ movs r0, 0x10
+ str r0, [sp, 0x8]
+ movs r0, 0x2
+ adds r1, r4, 0
+ mov r2, r8
+ movs r3, 0
+ bl sub_813C078
+ movs r0, 0x9C
+ lsls r0, 4
+ adds r4, r0
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ movs r0, 0xD
+ str r0, [sp, 0x8]
+ movs r0, 0x2
+ adds r1, r4, 0
+ mov r2, r9
+ movs r3, 0
+ bl sub_813C078
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813C578: .4byte 0x0000eeee
+_0813C57C: .4byte gUnknown_201C000
+_0813C580: .4byte 0x01001a00
+ thumb_func_end sub_813C50C
+
+ thumb_func_start sub_813C584
+sub_813C584: @ 813C584
+ push {r4,r5,lr}
+ sub sp, 0x10
+ adds r5, r0, 0
+ add r1, sp, 0xC
+ ldr r2, _0813C5C8 @ =0x00001111
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, _0813C5CC @ =gUnknown_201E3C0
+ ldr r2, _0813C5D0 @ =0x01000820
+ adds r0, r1, 0
+ adds r1, r4, 0
+ bl CpuSet
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0x3
+ bl sub_8002EA8
+ movs r0, 0x6
+ str r0, [sp]
+ movs r0, 0x1A
+ str r0, [sp, 0x4]
+ movs r0, 0x5
+ str r0, [sp, 0x8]
+ movs r0, 0x2
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x2
+ bl sub_813C078
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813C5C8: .4byte 0x00001111
+_0813C5CC: .4byte gUnknown_201E3C0
+_0813C5D0: .4byte 0x01000820
+ thumb_func_end sub_813C584
+
+ thumb_func_start sub_813C5D4
+sub_813C5D4: @ 813C5D4
+ push {lr}
+ sub sp, 0x4
+ mov r1, sp
+ ldr r2, _0813C5F0 @ =0x0000ffff
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _0813C5F4 @ =gUnknown_201FD00
+ ldr r2, _0813C5F8 @ =0x010000e0
+ mov r0, sp
+ bl CpuSet
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813C5F0: .4byte 0x0000ffff
+_0813C5F4: .4byte gUnknown_201FD00
+_0813C5F8: .4byte 0x010000e0
+ thumb_func_end sub_813C5D4
+
+ thumb_func_start sub_813C5FC
+sub_813C5FC: @ 813C5FC
+ push {lr}
+ sub sp, 0x4
+ mov r1, sp
+ ldr r2, _0813C618 @ =0x0000ffff
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _0813C61C @ =gUnknown_201F400
+ ldr r2, _0813C620 @ =0x01000200
+ mov r0, sp
+ bl CpuSet
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813C618: .4byte 0x0000ffff
+_0813C61C: .4byte gUnknown_201F400
+_0813C620: .4byte 0x01000200
+ thumb_func_end sub_813C5FC
+
+ thumb_func_start sub_813C624
+sub_813C624: @ 813C624
+ push {lr}
+ sub sp, 0x4
+ mov r1, sp
+ ldr r2, _0813C640 @ =0x0000ffff
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _0813C644 @ =gUnknown_201C000
+ ldr r2, _0813C648 @ =0x01001a00
+ mov r0, sp
+ bl CpuSet
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813C640: .4byte 0x0000ffff
+_0813C644: .4byte gUnknown_201C000
+_0813C648: .4byte 0x01001a00
+ thumb_func_end sub_813C624
+
+ thumb_func_start sub_813C64C
+sub_813C64C: @ 813C64C
+ push {r4-r7,lr}
+ ldr r4, _0813C680 @ =gUnknown_203F190
+ adds r3, r4, 0
+ ldm r0!, {r5-r7}
+ stm r3!, {r5-r7}
+ movs r0, 0
+ strb r1, [r4, 0xC]
+ strb r2, [r4, 0xD]
+ strb r0, [r4, 0xE]
+ ldrh r0, [r4, 0x4]
+ ldrh r1, [r4, 0x6]
+ cmp r0, r1
+ bcs _0813C668
+ strh r0, [r4, 0x6]
+_0813C668:
+ movs r0, 0
+ bl sub_813BDA4
+ bl sub_813C624
+ bl sub_813C7CC
+ bl sub_813C828
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813C680: .4byte gUnknown_203F190
+ thumb_func_end sub_813C64C
+
+ thumb_func_start sub_813C684
+sub_813C684: @ 813C684
+ ldr r1, _0813C68C @ =gUnknown_203F176
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_0813C68C: .4byte gUnknown_203F176
+ thumb_func_end sub_813C684
+
+ thumb_func_start sub_813C690
+sub_813C690: @ 813C690
+ push {lr}
+ ldr r1, _0813C6A0 @ =gUnknown_203F176
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0813C6A4
+ subs r0, 0x1
+ strb r0, [r1]
+ b _0813C752
+ .align 2, 0
+_0813C6A0: .4byte gUnknown_203F176
+_0813C6A4:
+ ldr r2, _0813C6C8 @ =gUnknown_30030F0
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0813C6D0
+ movs r0, 0x5
+ bl sub_80722CC
+ ldr r1, _0813C6CC @ =gUnknown_203F190
+ ldrb r0, [r1, 0xC]
+ ldrb r2, [r1, 0xD]
+ adds r0, r2
+ ldr r1, [r1]
+ lsls r0, 3
+ adds r0, r1
+ ldr r0, [r0, 0x4]
+ b _0813C756
+ .align 2, 0
+_0813C6C8: .4byte gUnknown_30030F0
+_0813C6CC: .4byte gUnknown_203F190
+_0813C6D0:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0813C6E4
+ movs r0, 0x5
+ bl sub_80722CC
+ movs r0, 0x2
+ negs r0, r0
+ b _0813C756
+_0813C6E4:
+ movs r0, 0xC0
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _0813C6F4
+ movs r0, 0x6
+ negs r0, r0
+ b _0813C756
+_0813C6F4:
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0813C702
+ movs r0, 0x1
+ b _0813C718
+_0813C702:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0813C70E
+ movs r0, 0x1
+ b _0813C73A
+_0813C70E:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0813C730
+ movs r0, 0x7
+_0813C718:
+ movs r1, 0
+ bl sub_813C944
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813C72A
+ movs r0, 0x5
+ bl sub_80722CC
+_0813C72A:
+ movs r0, 0x4
+ negs r0, r0
+ b _0813C756
+_0813C730:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0813C752
+ movs r0, 0x7
+_0813C73A:
+ movs r1, 0x1
+ bl sub_813C944
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813C74C
+ movs r0, 0x5
+ bl sub_80722CC
+_0813C74C:
+ movs r0, 0x5
+ negs r0, r0
+ b _0813C756
+_0813C752:
+ movs r0, 0x1
+ negs r0, r0
+_0813C756:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_813C690
+
+ thumb_func_start sub_813C75C
+sub_813C75C: @ 813C75C
+ push {r4-r6,lr}
+ ldr r5, _0813C784 @ =gUnknown_203F190
+ ldrh r1, [r5, 0x4]
+ subs r0, r1, 0x7
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r1, 0x7
+ bls _0813C7C4
+ ldrb r4, [r5, 0xC]
+ ldrb r0, [r5, 0xD]
+ adds r4, r0
+ movs r0, 0
+ movs r1, 0
+ bl sub_813C004
+ cmp r4, 0
+ bne _0813C788
+ movs r0, 0x1
+ b _0813C7A2
+ .align 2, 0
+_0813C784: .4byte gUnknown_203F190
+_0813C788:
+ ldrb r0, [r5, 0xC]
+ cmp r0, 0
+ bne _0813C798
+ ldrb r0, [r5, 0xD]
+ cmp r0, 0
+ beq _0813C798
+ movs r0, 0x1
+ b _0813C7A2
+_0813C798:
+ ldr r0, _0813C7AC @ =gUnknown_203F190
+ ldrb r0, [r0, 0xC]
+ cmp r0, r6
+ bne _0813C7B0
+ movs r0, 0
+_0813C7A2:
+ movs r1, 0x1
+ bl sub_813C004
+ b _0813C7C4
+ .align 2, 0
+_0813C7AC: .4byte gUnknown_203F190
+_0813C7B0:
+ cmp r0, 0
+ beq _0813C7C4
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_813C004
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_813C004
+_0813C7C4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813C75C
+
+ thumb_func_start sub_813C7CC
+sub_813C7CC: @ 813C7CC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r0, 0x2
+ movs r1, 0x1
+ bl sub_80F79D8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r3, _0813C824 @ =gUnknown_203F190
+ ldrb r5, [r3, 0xC]
+ movs r6, 0
+ ldrh r0, [r3, 0x6]
+ cmp r6, r0
+ bge _0813C81A
+ adds r4, r3, 0
+ movs r7, 0
+_0813C7F2:
+ ldrb r1, [r4, 0x8]
+ adds r1, 0x8
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r4, 0x9]
+ adds r2, r7
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, [r4]
+ lsls r0, r5, 3
+ adds r0, r3
+ ldr r0, [r0]
+ bl sub_813C4CC
+ adds r5, 0x1
+ add r7, r8
+ adds r6, 0x1
+ ldrh r0, [r4, 0x6]
+ cmp r6, r0
+ blt _0813C7F2
+_0813C81A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813C824: .4byte gUnknown_203F190
+ thumb_func_end sub_813C7CC
+
+ thumb_func_start sub_813C828
+sub_813C828: @ 813C828
+ push {r4,lr}
+ movs r0, 0x2
+ movs r1, 0x1
+ bl sub_80F79D8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0813C858 @ =gUnknown_203F190
+ ldrb r1, [r3, 0x8]
+ ldrb r2, [r3, 0xD]
+ adds r4, r2, 0
+ muls r4, r0
+ adds r2, r4, 0
+ ldrb r3, [r3, 0x9]
+ adds r2, r3
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, _0813C85C @ =gUnknown_841623B
+ bl sub_813C4CC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813C858: .4byte gUnknown_203F190
+_0813C85C: .4byte gUnknown_841623B
+ thumb_func_end sub_813C828
+
+ thumb_func_start sub_813C860
+sub_813C860: @ 813C860
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x2
+ movs r1, 0x1
+ bl sub_80F79D8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0813C894 @ =gUnknown_203F190
+ ldrb r1, [r3, 0x8]
+ adds r2, r4, 0
+ muls r2, r0
+ ldrb r3, [r3, 0x9]
+ adds r2, r3
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, _0813C898 @ =gUnknown_841CB4E
+ bl sub_813C4CC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813C894: .4byte gUnknown_203F190
+_0813C898: .4byte gUnknown_841CB4E
+ thumb_func_end sub_813C860
+
+ thumb_func_start sub_813C89C
+sub_813C89C: @ 813C89C
+ push {r4,r5,lr}
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813C8EC
+ ldr r0, _0813C8B4 @ =gUnknown_203F190
+ ldrh r1, [r0, 0x6]
+ adds r5, r0, 0
+ cmp r1, 0x1
+ bne _0813C8B8
+ movs r4, 0
+ b _0813C8CA
+ .align 2, 0
+_0813C8B4: .4byte gUnknown_203F190
+_0813C8B8:
+ ldrh r0, [r5, 0x6]
+ lsrs r2, r0, 1
+ movs r1, 0x1
+ ands r1, r0
+ adds r2, r1
+ subs r0, r2
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0813C8CA:
+ ldrb r1, [r5, 0xC]
+ cmp r1, 0
+ bne _0813C8DA
+ ldrb r0, [r5, 0xD]
+ cmp r0, 0
+ beq _0813C926
+ subs r0, 0x1
+ b _0813C93A
+_0813C8DA:
+ ldrb r0, [r5, 0xD]
+ cmp r0, r4
+ bls _0813C8E4
+ subs r0, 0x1
+ b _0813C93A
+_0813C8E4:
+ subs r0, r1, 0x1
+ strb r0, [r5, 0xC]
+ movs r0, 0x2
+ b _0813C93E
+_0813C8EC:
+ ldr r0, _0813C8FC @ =gUnknown_203F190
+ ldrh r1, [r0, 0x6]
+ adds r5, r0, 0
+ cmp r1, 0x1
+ bne _0813C900
+ movs r4, 0
+ b _0813C90A
+ .align 2, 0
+_0813C8FC: .4byte gUnknown_203F190
+_0813C900:
+ ldrh r0, [r5, 0x6]
+ lsrs r2, r0, 1
+ movs r1, 0x1
+ ands r0, r1
+ adds r4, r2, r0
+_0813C90A:
+ adds r1, r5, 0
+ ldrb r2, [r1, 0xC]
+ ldrh r0, [r1, 0x4]
+ ldrh r3, [r1, 0x6]
+ subs r0, r3
+ cmp r2, r0
+ bne _0813C92A
+ ldrb r2, [r1, 0xD]
+ subs r0, r3, 0x1
+ cmp r2, r0
+ bge _0813C926
+ adds r0, r2, 0x1
+ strb r0, [r1, 0xD]
+ b _0813C93C
+_0813C926:
+ movs r0, 0
+ b _0813C93E
+_0813C92A:
+ ldrb r0, [r1, 0xD]
+ cmp r0, r4
+ bcc _0813C938
+ adds r0, r2, 0x1
+ strb r0, [r1, 0xC]
+ movs r0, 0x2
+ b _0813C93E
+_0813C938:
+ adds r0, 0x1
+_0813C93A:
+ strb r0, [r5, 0xD]
+_0813C93C:
+ movs r0, 0x1
+_0813C93E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_813C89C
+
+ thumb_func_start sub_813C944
+sub_813C944: @ 813C944
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ ldr r0, _0813C97C @ =gUnknown_203F190
+ ldrb r7, [r0, 0xD]
+ movs r5, 0
+ cmp r5, r2
+ bge _0813C96C
+ adds r4, r2, 0
+_0813C95A:
+ adds r0, r6, 0
+ bl sub_813C89C
+ orrs r5, r0
+ lsls r0, r5, 24
+ lsrs r5, r0, 24
+ subs r4, 0x1
+ cmp r4, 0
+ bne _0813C95A
+_0813C96C:
+ cmp r5, 0x1
+ beq _0813C980
+ cmp r5, 0x1
+ ble _0813C978
+ cmp r5, 0x3
+ ble _0813C990
+_0813C978:
+ movs r0, 0x1
+ b _0813C9D6
+ .align 2, 0
+_0813C97C: .4byte gUnknown_203F190
+_0813C980:
+ adds r0, r7, 0
+ bl sub_813C860
+ bl sub_813C828
+ bl sub_813BC5C
+ b _0813C9D4
+_0813C990:
+ bl sub_812BF88
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0813C9B8
+ movs r0, 0x2
+ bl sub_813C684
+ bl sub_813C624
+ bl sub_813C7CC
+ bl sub_813C828
+ bl sub_812BDEC
+ bl sub_813C75C
+ b _0813C9D0
+_0813C9B8:
+ movs r0, 0
+ bl sub_813BDA4
+ bl sub_813C624
+ bl sub_813C7CC
+ bl sub_813C828
+ movs r0, 0x1
+ bl sub_813BDA4
+_0813C9D0:
+ bl sub_813BC5C
+_0813C9D4:
+ movs r0, 0
+_0813C9D6:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_813C944
+
+ .align 2, 0 @ Don't pad with nop.