summaryrefslogtreecommitdiff
path: root/asm/naming_screen.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/naming_screen.s
first commit
Diffstat (limited to 'asm/naming_screen.s')
-rw-r--r--asm/naming_screen.s4594
1 files changed, 4594 insertions, 0 deletions
diff --git a/asm/naming_screen.s b/asm/naming_screen.s
new file mode 100644
index 000000000..9854e147d
--- /dev/null
+++ b/asm/naming_screen.s
@@ -0,0 +1,4594 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_809D954
+sub_809D954: @ 809D954
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r2, 16
+ lsrs r5, r2, 16
+ lsls r3, 16
+ lsrs r6, r3, 16
+ ldr r4, _0809D980 @ =gUnknown_203998C
+ movs r0, 0xF2
+ lsls r0, 5
+ bl sub_8002B9C
+ str r0, [r4]
+ cmp r0, 0
+ bne _0809D984
+ ldr r0, [sp, 0x1C]
+ bl sub_8000544
+ b _0809D9BE
+ .align 2, 0
+_0809D980: .4byte gUnknown_203998C
+_0809D984:
+ ldr r1, _0809D9C8 @ =0x00001e2c
+ adds r0, r1
+ strb r7, [r0]
+ ldr r0, [r4]
+ ldr r2, _0809D9CC @ =0x00001e34
+ adds r1, r0, r2
+ strh r5, [r1]
+ adds r2, 0x2
+ adds r1, r0, r2
+ strh r6, [r1]
+ ldr r1, _0809D9D0 @ =0x00001e38
+ adds r2, r0, r1
+ ldr r1, [sp, 0x18]
+ str r1, [r2]
+ ldr r2, _0809D9D4 @ =0x00001e30
+ adds r1, r0, r2
+ mov r2, r8
+ str r2, [r1]
+ ldr r1, _0809D9D8 @ =0x00001e3c
+ adds r0, r1
+ ldr r2, [sp, 0x1C]
+ str r2, [r0]
+ cmp r7, 0
+ bne _0809D9B8
+ bl sub_8000558
+_0809D9B8:
+ ldr r0, _0809D9DC @ =sub_809D9E0
+ bl sub_8000544
+_0809D9BE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D9C8: .4byte 0x00001e2c
+_0809D9CC: .4byte 0x00001e34
+_0809D9D0: .4byte 0x00001e38
+_0809D9D4: .4byte 0x00001e30
+_0809D9D8: .4byte 0x00001e3c
+_0809D9DC: .4byte sub_809D9E0
+ thumb_func_end sub_809D954
+
+ thumb_func_start sub_809D9E0
+sub_809D9E0: @ 809D9E0
+ push {lr}
+ ldr r0, _0809D9FC @ =gUnknown_30030F0
+ movs r1, 0x87
+ lsls r1, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bhi _0809DA78
+ lsls r0, 2
+ ldr r1, _0809DA00 @ =_0809DA04
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809D9FC: .4byte gUnknown_30030F0
+_0809DA00: .4byte _0809DA04
+ .align 2, 0
+_0809DA04:
+ .4byte _0809DA24
+ .4byte _0809DA2E
+ .4byte _0809DA34
+ .4byte _0809DA3A
+ .4byte _0809DA44
+ .4byte _0809DA4A
+ .4byte _0809DA50
+ .4byte _0809DA56
+_0809DA24:
+ bl sub_809FB88
+ bl sub_809DA84
+ b _0809DA62
+_0809DA2E:
+ bl sub_809DBB0
+ b _0809DA62
+_0809DA34:
+ bl sub_8070528
+ b _0809DA62
+_0809DA3A:
+ bl sub_8006B10
+ bl sub_80088F0
+ b _0809DA62
+_0809DA44:
+ bl sub_80773BC
+ b _0809DA62
+_0809DA4A:
+ bl sub_809F8D0
+ b _0809DA62
+_0809DA50:
+ bl sub_809F85C
+ b _0809DA62
+_0809DA56:
+ bl sub_809E898
+ bl sub_80704D0
+ bl sub_809FC34
+_0809DA62:
+ ldr r1, _0809DA74 @ =gUnknown_30030F0
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0809DA80
+ .align 2, 0
+_0809DA74: .4byte gUnknown_30030F0
+_0809DA78:
+ bl sub_809F8C0
+ bl sub_809DD60
+_0809DA80:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809D9E0
+
+ thumb_func_start sub_809DA84
+sub_809DA84: @ 809DA84
+ push {r4-r6,lr}
+ ldr r4, _0809DB3C @ =gUnknown_203998C
+ ldr r0, [r4]
+ ldr r1, _0809DB40 @ =0x00001e10
+ adds r0, r1
+ movs r2, 0
+ strb r2, [r0]
+ ldr r1, [r4]
+ ldr r3, _0809DB44 @ =0x00001e18
+ adds r0, r1, r3
+ movs r5, 0
+ strh r2, [r0]
+ ldr r6, _0809DB48 @ =0x00001e1a
+ adds r0, r1, r6
+ strh r2, [r0]
+ ldr r0, _0809DB4C @ =0x00001e1c
+ adds r2, r1, r0
+ movs r3, 0x1
+ movs r0, 0x1
+ strh r0, [r2]
+ adds r6, 0x4
+ adds r2, r1, r6
+ movs r0, 0x2
+ strh r0, [r2]
+ movs r0, 0xF1
+ lsls r0, 5
+ adds r1, r0
+ strb r5, [r1]
+ ldr r0, [r4]
+ ldr r1, _0809DB50 @ =0x00001e21
+ adds r0, r1
+ strb r3, [r0]
+ ldr r1, [r4]
+ ldr r5, _0809DB54 @ =0x00001e28
+ adds r3, r1, r5
+ ldr r2, _0809DB58 @ =gUnknown_83E248C
+ adds r6, 0xE
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [r3]
+ ldrb r0, [r0, 0x4]
+ ldr r2, _0809DB5C @ =0x00001e22
+ adds r1, r2
+ strb r0, [r1]
+ ldr r2, [r4]
+ adds r0, r2, r5
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x1]
+ lsls r1, 3
+ movs r0, 0xF0
+ subs r0, r1
+ asrs r0, 1
+ adds r0, 0x6
+ ldr r3, _0809DB60 @ =0x00001e16
+ adds r1, r2, r3
+ strh r0, [r1]
+ ldr r6, _0809DB64 @ =gUnknown_30030E0
+ ldrh r0, [r6]
+ ldr r1, _0809DB68 @ =0x00001e25
+ adds r2, r1
+ strb r0, [r2]
+ ldr r0, [r4]
+ movs r2, 0xC0
+ lsls r2, 5
+ adds r0, r2
+ movs r1, 0xFF
+ movs r2, 0x10
+ bl memset
+ ldr r1, [r4]
+ adds r5, r1, r5
+ ldr r0, [r5]
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809DB30
+ movs r3, 0xC0
+ lsls r3, 5
+ adds r0, r1, r3
+ ldr r2, _0809DB6C @ =0x00001e30
+ adds r1, r2
+ ldr r1, [r1]
+ bl sub_8008D84
+_0809DB30:
+ movs r0, 0x10
+ strh r0, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809DB3C: .4byte gUnknown_203998C
+_0809DB40: .4byte 0x00001e10
+_0809DB44: .4byte 0x00001e18
+_0809DB48: .4byte 0x00001e1a
+_0809DB4C: .4byte 0x00001e1c
+_0809DB50: .4byte 0x00001e21
+_0809DB54: .4byte 0x00001e28
+_0809DB58: .4byte gUnknown_83E248C
+_0809DB5C: .4byte 0x00001e22
+_0809DB60: .4byte 0x00001e16
+_0809DB64: .4byte gUnknown_30030E0
+_0809DB68: .4byte 0x00001e25
+_0809DB6C: .4byte 0x00001e30
+ thumb_func_end sub_809DA84
+
+ thumb_func_start sub_809DB70
+sub_809DB70: @ 809DB70
+ push {r4,r5,lr}
+ movs r3, 0
+ ldr r4, _0809DBAC @ =gUnknown_202063C
+ movs r5, 0x5
+ negs r5, r5
+_0809DB7A:
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r4
+ adds r2, r0, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ lsls r0, r1, 31
+ cmp r0, 0
+ beq _0809DB94
+ adds r0, r5, 0
+ ands r0, r1
+ strb r0, [r2]
+_0809DB94:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3F
+ bls _0809DB7A
+ movs r0, 0
+ bl sub_809EA0C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809DBAC: .4byte gUnknown_202063C
+ thumb_func_end sub_809DB70
+
+ thumb_func_start sub_809DBB0
+sub_809DBB0: @ 809DBB0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ movs r3, 0xC0
+ lsls r3, 19
+ movs r4, 0xC0
+ lsls r4, 9
+ add r0, sp, 0xC
+ mov r8, r0
+ add r2, sp, 0x8
+ movs r6, 0
+ ldr r1, _0809DD44 @ =0x040000d4
+ movs r5, 0x80
+ lsls r5, 5
+ ldr r7, _0809DD48 @ =0x81000800
+ movs r0, 0x81
+ lsls r0, 24
+ mov r12, r0
+_0809DBD6:
+ strh r6, [r2]
+ add r0, sp, 0x8
+ str r0, [r1]
+ str r3, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r3, r5
+ subs r4, r5
+ cmp r4, r5
+ bhi _0809DBD6
+ strh r6, [r2]
+ add r2, sp, 0x8
+ str r2, [r1]
+ str r3, [r1, 0x4]
+ lsrs r0, r4, 1
+ mov r2, r12
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r0, 0xE0
+ lsls r0, 19
+ movs r3, 0x80
+ lsls r3, 3
+ movs r4, 0
+ str r4, [sp, 0xC]
+ ldr r2, _0809DD44 @ =0x040000d4
+ mov r1, r8
+ str r1, [r2]
+ str r0, [r2, 0x4]
+ lsrs r0, r3, 2
+ movs r1, 0x85
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ movs r1, 0xA0
+ lsls r1, 19
+ add r0, sp, 0x8
+ strh r4, [r0]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ lsrs r3, 1
+ movs r0, 0x81
+ lsls r0, 24
+ orrs r3, r0
+ str r3, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ movs r0, 0
+ movs r1, 0
+ bl sub_8000A38
+ movs r0, 0
+ bl sub_8001618
+ ldr r1, _0809DD4C @ =gUnknown_83E2290
+ movs r0, 0
+ movs r2, 0x4
+ bl sub_8001658
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001B90
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001D08
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001B90
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001D08
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001B90
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001D08
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001B90
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001D08
+ bl sub_80F6C6C
+ bl sub_80F6C98
+_0809DCA4:
+ lsls r0, r4, 3
+ ldr r1, _0809DD50 @ =gUnknown_83E22A0
+ adds r0, r1
+ bl sub_8003CE4
+ ldr r5, _0809DD54 @ =gUnknown_203998C
+ ldr r1, [r5]
+ ldr r2, _0809DD58 @ =0x00001e11
+ adds r1, r2
+ adds r1, r4
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _0809DCA4
+ movs r1, 0x82
+ lsls r1, 5
+ movs r0, 0
+ bl sub_8000A38
+ movs r1, 0xC8
+ lsls r1, 3
+ movs r0, 0x50
+ bl sub_8000A38
+ ldr r1, _0809DD5C @ =0x0000080c
+ movs r0, 0x52
+ bl sub_8000A38
+ ldr r1, [r5]
+ movs r0, 0x1
+ bl sub_8001FA0
+ ldr r1, [r5]
+ movs r0, 0x80
+ lsls r0, 4
+ adds r1, r0
+ movs r0, 0x2
+ bl sub_8001FA0
+ ldr r1, [r5]
+ movs r2, 0x80
+ lsls r2, 5
+ adds r1, r2
+ movs r0, 0x3
+ bl sub_8001FA0
+ movs r4, 0x20
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8002454
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8002454
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8002454
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809DD44: .4byte 0x040000d4
+_0809DD48: .4byte 0x81000800
+_0809DD4C: .4byte gUnknown_83E2290
+_0809DD50: .4byte gUnknown_83E22A0
+_0809DD54: .4byte gUnknown_203998C
+_0809DD58: .4byte 0x00001e11
+_0809DD5C: .4byte 0x0000080c
+ thumb_func_end sub_809DBB0
+
+ thumb_func_start sub_809DD60
+sub_809DD60: @ 809DD60
+ push {lr}
+ ldr r0, _0809DD80 @ =sub_809DD88
+ movs r1, 0x2
+ bl sub_807741C
+ ldr r0, _0809DD84 @ =sub_809FB70
+ bl sub_8000544
+ bl sub_812B234
+ movs r0, 0x3
+ bl sub_812B1F0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809DD80: .4byte sub_809DD88
+_0809DD84: .4byte sub_809FB70
+ thumb_func_end sub_809DD60
+
+ thumb_func_start sub_809DD88
+sub_809DD88: @ 809DD88
+ push {lr}
+ ldr r0, _0809DDA4 @ =gUnknown_203998C
+ ldr r0, [r0]
+ ldr r1, _0809DDA8 @ =0x00001e10
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ bhi _0809DE1A
+ lsls r0, 2
+ ldr r1, _0809DDAC @ =_0809DDB0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809DDA4: .4byte gUnknown_203998C
+_0809DDA8: .4byte 0x00001e10
+_0809DDAC: .4byte _0809DDB0
+ .align 2, 0
+_0809DDB0:
+ .4byte _0809DDD8
+ .4byte _0809DDE6
+ .4byte _0809DDEC
+ .4byte _0809DDF2
+ .4byte _0809DDF8
+ .4byte _0809DDFE
+ .4byte _0809DE04
+ .4byte _0809DE0A
+ .4byte _0809DE10
+ .4byte _0809DE16
+_0809DDD8:
+ bl sub_809DE70
+ bl sub_809DB70
+ bl sub_809FB9C
+ b _0809DE1A
+_0809DDE6:
+ bl sub_809DF28
+ b _0809DE1A
+_0809DDEC:
+ bl sub_809DF64
+ b _0809DE1A
+_0809DDF2:
+ bl sub_809DF74
+ b _0809DE1A
+_0809DDF8:
+ bl sub_809E210
+ b _0809DE1A
+_0809DDFE:
+ bl sub_809E250
+ b _0809DE1A
+_0809DE04:
+ bl sub_809DFA4
+ b _0809DE1A
+_0809DE0A:
+ bl sub_809E1D4
+ b _0809DE1A
+_0809DE10:
+ bl sub_809E014
+ b _0809DE1A
+_0809DE16:
+ bl sub_809E048
+_0809DE1A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809DD88
+
+ thumb_func_start sub_809DE20
+sub_809DE20: @ 809DE20
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0809DE2C @ =gUnknown_83E234B
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_0809DE2C: .4byte gUnknown_83E234B
+ thumb_func_end sub_809DE20
+
+ thumb_func_start sub_809DE30
+sub_809DE30: @ 809DE30
+ ldr r1, _0809DE44 @ =gUnknown_83E234E
+ ldr r0, _0809DE48 @ =gUnknown_203998C
+ ldr r0, [r0]
+ ldr r2, _0809DE4C @ =0x00001e22
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_0809DE44: .4byte gUnknown_83E234E
+_0809DE48: .4byte gUnknown_203998C
+_0809DE4C: .4byte 0x00001e22
+ thumb_func_end sub_809DE30
+
+ thumb_func_start sub_809DE50
+sub_809DE50: @ 809DE50
+ ldr r1, _0809DE64 @ =gUnknown_83E2351
+ ldr r0, _0809DE68 @ =gUnknown_203998C
+ ldr r0, [r0]
+ ldr r2, _0809DE6C @ =0x00001e22
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_0809DE64: .4byte gUnknown_83E2351
+_0809DE68: .4byte gUnknown_203998C
+_0809DE6C: .4byte 0x00001e22
+ thumb_func_end sub_809DE50
+
+ thumb_func_start sub_809DE70
+sub_809DE70: @ 809DE70
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r1, _0809DF08 @ =gUnknown_8E982BC
+ movs r0, 0x3
+ bl sub_809F900
+ ldr r5, _0809DF0C @ =gUnknown_203998C
+ ldr r0, [r5]
+ ldr r1, _0809DF10 @ =0x00001e22
+ adds r0, r1
+ movs r6, 0
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r1, _0809DF14 @ =gUnknown_8E98458
+ movs r0, 0x2
+ bl sub_809F900
+ ldr r1, _0809DF18 @ =gUnknown_8E98398
+ movs r0, 0x1
+ bl sub_809F900
+ ldr r0, [r5]
+ ldr r1, _0809DF1C @ =0x00001e12
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_809F9E8
+ ldr r0, [r5]
+ ldr r1, _0809DF20 @ =0x00001e11
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_809F9E8
+ bl sub_809F914
+ bl sub_809F56C
+ bl sub_809FAE4
+ movs r0, 0x1
+ bl sub_80020BC
+ movs r0, 0x2
+ bl sub_80020BC
+ movs r0, 0x3
+ bl sub_80020BC
+ movs r4, 0x1
+ negs r4, r4
+ adds r0, r4, 0
+ movs r1, 0x10
+ movs r2, 0
+ bl sub_80714D4
+ str r6, [sp]
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl sub_8070588
+ ldr r1, [r5]
+ ldr r0, _0809DF24 @ =0x00001e10
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809DF08: .4byte gUnknown_8E982BC
+_0809DF0C: .4byte gUnknown_203998C
+_0809DF10: .4byte 0x00001e22
+_0809DF14: .4byte gUnknown_8E98458
+_0809DF18: .4byte gUnknown_8E98398
+_0809DF1C: .4byte 0x00001e12
+_0809DF20: .4byte 0x00001e11
+_0809DF24: .4byte 0x00001e10
+ thumb_func_end sub_809DE70
+
+ thumb_func_start sub_809DF28
+sub_809DF28: @ 809DF28
+ push {lr}
+ ldr r0, _0809DF58 @ =gUnknown_2037AB8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0809DF50
+ movs r0, 0x1
+ bl sub_809F240
+ movs r0, 0x1
+ bl sub_809EA64
+ ldr r0, _0809DF5C @ =gUnknown_203998C
+ ldr r1, [r0]
+ ldr r0, _0809DF60 @ =0x00001e10
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_0809DF50:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809DF58: .4byte gUnknown_2037AB8
+_0809DF5C: .4byte gUnknown_203998C
+_0809DF60: .4byte 0x00001e10
+ thumb_func_end sub_809DF28
+
+ thumb_func_start sub_809DF64
+sub_809DF64: @ 809DF64
+ push {lr}
+ bl sub_809F0CC
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809DF64
+
+ thumb_func_start sub_809DF74
+sub_809DF74: @ 809DF74
+ push {lr}
+ bl sub_809EAD4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809DF96
+ movs r0, 0x1
+ bl sub_809F240
+ bl sub_809E9F8
+ ldr r0, _0809DF9C @ =gUnknown_203998C
+ ldr r0, [r0]
+ ldr r1, _0809DFA0 @ =0x00001e10
+ adds r0, r1
+ movs r1, 0x2
+ strb r1, [r0]
+_0809DF96:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809DF9C: .4byte gUnknown_203998C
+_0809DFA0: .4byte 0x00001e10
+ thumb_func_end sub_809DF74
+
+ thumb_func_start sub_809DFA4
+sub_809DFA4: @ 809DFA4
+ push {r4,lr}
+ bl sub_809F7EC
+ movs r0, 0
+ bl sub_809F240
+ movs r0, 0
+ bl sub_809EA64
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_809E518
+ ldr r4, _0809DFEC @ =gUnknown_203998C
+ ldr r0, [r4]
+ ldr r1, _0809DFF0 @ =0x00001e2c
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _0809DFF8
+ bl sub_8040C3C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bls _0809DFF8
+ bl sub_809E0B4
+ ldr r0, [r4]
+ ldr r1, _0809DFF4 @ =0x00001e10
+ adds r0, r1
+ movs r1, 0x7
+ strb r1, [r0]
+ movs r0, 0
+ b _0809E006
+ .align 2, 0
+_0809DFEC: .4byte gUnknown_203998C
+_0809DFF0: .4byte 0x00001e2c
+_0809DFF4: .4byte 0x00001e10
+_0809DFF8:
+ ldr r0, _0809E00C @ =gUnknown_203998C
+ ldr r0, [r0]
+ ldr r1, _0809E010 @ =0x00001e10
+ adds r0, r1
+ movs r1, 0x8
+ strb r1, [r0]
+ movs r0, 0x1
+_0809E006:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809E00C: .4byte gUnknown_203998C
+_0809E010: .4byte 0x00001e10
+ thumb_func_end sub_809DFA4
+
+ thumb_func_start sub_809E014
+sub_809E014: @ 809E014
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl sub_8070588
+ ldr r0, _0809E040 @ =gUnknown_203998C
+ ldr r1, [r0]
+ ldr r0, _0809E044 @ =0x00001e10
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809E040: .4byte gUnknown_203998C
+_0809E044: .4byte 0x00001e10
+ thumb_func_end sub_809E014
+
+ thumb_func_start sub_809E048
+sub_809E048: @ 809E048
+ push {r4,r5,lr}
+ ldr r0, _0809E0A0 @ =gUnknown_2037AB8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _0809E096
+ ldr r4, _0809E0A4 @ =gUnknown_203998C
+ ldr r0, [r4]
+ ldr r1, _0809E0A8 @ =0x00001e2c
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809E06C
+ bl sub_8000564
+_0809E06C:
+ ldr r0, [r4]
+ ldr r1, _0809E0AC @ =0x00001e3c
+ adds r0, r1
+ ldr r0, [r0]
+ bl sub_8000544
+ ldr r0, _0809E0B0 @ =sub_809DD88
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8077508
+ bl sub_8003ECC
+ ldr r0, [r4]
+ bl sub_8002BC4
+ str r5, [r4]
+ bl sub_812B248
+_0809E096:
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809E0A0: .4byte gUnknown_2037AB8
+_0809E0A4: .4byte gUnknown_203998C
+_0809E0A8: .4byte 0x00001e2c
+_0809E0AC: .4byte 0x00001e3c
+_0809E0B0: .4byte sub_809DD88
+ thumb_func_end sub_809E048
+
+ thumb_func_start sub_809E0B4
+sub_809E0B4: @ 809E0B4
+ push {r4,r5,lr}
+ sub sp, 0x10
+ movs r5, 0
+ bl sub_80CC7F8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809E104
+ ldr r4, _0809E0F0 @ =gUnknown_2021CD0
+ ldr r0, _0809E0F4 @ =0x00004037
+ bl sub_806E568
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_808BD6C
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl sub_8008D84
+ ldr r0, _0809E0F8 @ =gUnknown_2021CF0
+ ldr r1, _0809E0FC @ =gUnknown_203998C
+ ldr r1, [r1]
+ ldr r2, _0809E100 @ =0x00001e30
+ adds r1, r2
+ ldr r1, [r1]
+ bl sub_8008D84
+ b _0809E144
+ .align 2, 0
+_0809E0F0: .4byte gUnknown_2021CD0
+_0809E0F4: .4byte 0x00004037
+_0809E0F8: .4byte gUnknown_2021CF0
+_0809E0FC: .4byte gUnknown_203998C
+_0809E100: .4byte 0x00001e30
+_0809E104:
+ ldr r4, _0809E1AC @ =gUnknown_2021CD0
+ ldr r0, _0809E1B0 @ =0x00004037
+ bl sub_806E568
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_808BD6C
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl sub_8008D84
+ ldr r0, _0809E1B4 @ =gUnknown_2021CF0
+ ldr r1, _0809E1B8 @ =gUnknown_203998C
+ ldr r1, [r1]
+ ldr r2, _0809E1BC @ =0x00001e30
+ adds r1, r2
+ ldr r1, [r1]
+ bl sub_8008D84
+ ldr r4, _0809E1C0 @ =gUnknown_2021D04
+ bl sub_80CC7A8
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_808BD6C
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl sub_8008D84
+ movs r5, 0x2
+_0809E144:
+ ldr r0, _0809E1C4 @ =0x00000834
+ bl sub_806E6D0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809E156
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_0809E156:
+ ldr r4, _0809E1C8 @ =gUnknown_2021D18
+ ldr r1, _0809E1CC @ =gUnknown_83E2280
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl sub_8008FCC
+ movs r0, 0
+ movs r1, 0
+ bl sub_80F6EE4
+ ldr r2, _0809E1D0 @ =gUnknown_3003E50
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ bl sub_80F78A8
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ movs r0, 0x3
+ str r0, [sp, 0xC]
+ movs r0, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl sub_80F6CD0
+ movs r0, 0
+ movs r1, 0x3
+ bl sub_8003F20
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E1AC: .4byte gUnknown_2021CD0
+_0809E1B0: .4byte 0x00004037
+_0809E1B4: .4byte gUnknown_2021CF0
+_0809E1B8: .4byte gUnknown_203998C
+_0809E1BC: .4byte 0x00001e30
+_0809E1C0: .4byte gUnknown_2021D04
+_0809E1C4: .4byte 0x00000834
+_0809E1C8: .4byte gUnknown_2021D18
+_0809E1CC: .4byte gUnknown_83E2280
+_0809E1D0: .4byte gUnknown_3003E50
+ thumb_func_end sub_809E0B4
+
+ thumb_func_start sub_809E1D4
+sub_809E1D4: @ 809E1D4
+ push {lr}
+ bl sub_8002DE8
+ movs r0, 0
+ bl sub_8002E64
+ lsls r0, 16
+ cmp r0, 0
+ bne _0809E1FE
+ ldr r0, _0809E204 @ =gUnknown_30030F0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E1FE
+ ldr r0, _0809E208 @ =gUnknown_203998C
+ ldr r0, [r0]
+ ldr r1, _0809E20C @ =0x00001e10
+ adds r0, r1
+ movs r1, 0x8
+ strb r1, [r0]
+_0809E1FE:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809E204: .4byte gUnknown_30030F0
+_0809E208: .4byte gUnknown_203998C
+_0809E20C: .4byte 0x00001e10
+ thumb_func_end sub_809E1D4
+
+ thumb_func_start sub_809E210
+sub_809E210: @ 809E210
+ push {lr}
+ movs r0, 0
+ bl sub_809F240
+ bl sub_809EC20
+ bl sub_809E30C
+ movs r0, 0x1
+ bl sub_809EA0C
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_809E518
+ movs r0, 0x6
+ bl sub_80722CC
+ ldr r0, _0809E248 @ =gUnknown_203998C
+ ldr r0, [r0]
+ ldr r1, _0809E24C @ =0x00001e10
+ adds r0, r1
+ movs r1, 0x5
+ strb r1, [r0]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809E248: .4byte gUnknown_203998C
+_0809E24C: .4byte 0x00001e10
+ thumb_func_end sub_809E210
+
+ thumb_func_start sub_809E250
+sub_809E250: @ 809E250
+ push {r4-r6,lr}
+ sub sp, 0x4
+ bl sub_809E364
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809E302
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_809E9CC
+ bl sub_809EB40
+ movs r5, 0
+ mov r1, sp
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r4, 0
+ cmp r1, r0
+ bne _0809E282
+ movs r5, 0x1
+_0809E282:
+ ldr r2, _0809E2B8 @ =gUnknown_203998C
+ ldr r0, [r2]
+ ldr r1, _0809E2BC @ =0x00001e10
+ adds r0, r1
+ movs r1, 0x2
+ strb r1, [r0]
+ ldr r1, [r2]
+ ldr r3, _0809E2C0 @ =0x00001e22
+ adds r1, r3
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r4, [r2]
+ adds r4, r3
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl __umodsi3
+ strb r0, [r4]
+ cmp r5, 0
+ beq _0809E2C4
+ mov r4, sp
+ bl sub_809EB40
+ lsls r0, 24
+ lsrs r0, 24
+ b _0809E2E2
+ .align 2, 0
+_0809E2B8: .4byte gUnknown_203998C
+_0809E2BC: .4byte 0x00001e10
+_0809E2C0: .4byte 0x00001e22
+_0809E2C4:
+ mov r0, sp
+ movs r2, 0
+ ldrsh r4, [r0, r2]
+ bl sub_809EB40
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ blt _0809E2E4
+ mov r4, sp
+ bl sub_809EB40
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+_0809E2E2:
+ strh r0, [r4]
+_0809E2E4:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r6, r2]
+ bl sub_809E948
+ bl sub_809FA60
+ movs r0, 0x1
+ bl sub_809F240
+ movs r0, 0
+ bl sub_809EA0C
+_0809E302:
+ movs r0, 0
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809E250
+
+ thumb_func_start sub_809E30C
+sub_809E30C: @ 809E30C
+ push {r4,lr}
+ ldr r4, _0809E328 @ =sub_809E32C
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_807741C
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E328: .4byte sub_809E32C
+ thumb_func_end sub_809E30C
+
+ thumb_func_start sub_809E32C
+sub_809E32C: @ 809E32C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0809E35C @ =gUnknown_83E2354
+ ldr r2, _0809E360 @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0809E33E:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809E33E
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E35C: .4byte gUnknown_83E2354
+_0809E360: .4byte gUnknown_3005090
+ thumb_func_end sub_809E32C
+
+ thumb_func_start sub_809E364
+sub_809E364: @ 809E364
+ push {lr}
+ ldr r0, _0809E378 @ =sub_809E32C
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _0809E37C
+ movs r0, 0
+ b _0809E37E
+ .align 2, 0
+_0809E378: .4byte sub_809E32C
+_0809E37C:
+ movs r0, 0x1
+_0809E37E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809E364
+
+ thumb_func_start sub_809E384
+sub_809E384: @ 809E384
+ ldr r1, _0809E3A0 @ =gUnknown_203998C
+ ldr r1, [r1]
+ ldr r3, _0809E3A4 @ =0x00001e18
+ adds r2, r1, r3
+ movs r3, 0
+ strh r3, [r2]
+ ldr r2, _0809E3A8 @ =0x00001e1a
+ adds r1, r2
+ strh r3, [r1]
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ movs r0, 0
+ bx lr
+ .align 2, 0
+_0809E3A0: .4byte gUnknown_203998C
+_0809E3A4: .4byte 0x00001e18
+_0809E3A8: .4byte 0x00001e1a
+ thumb_func_end sub_809E384
+
+ thumb_func_start sub_809E3AC
+sub_809E3AC: @ 809E3AC
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r5, _0809E42C @ =gUnknown_203998C
+ ldr r0, [r5]
+ ldr r2, _0809E430 @ =0x00001e1a
+ adds r1, r0, r2
+ str r1, [sp]
+ ldr r1, _0809E434 @ =0x00001e18
+ adds r0, r1
+ str r0, [sp, 0x4]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x4
+ strh r0, [r4, 0xA]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ movs r1, 0x28
+ bl sub_8044E30
+ ldr r1, [r5]
+ movs r2, 0xF1
+ lsls r2, 5
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 2
+ add r1, sp
+ ldr r1, [r1]
+ strh r0, [r1]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x80
+ movs r1, 0xFF
+ ands r0, r1
+ movs r1, 0x28
+ bl sub_8044E30
+ ldr r1, [r5]
+ ldr r2, _0809E438 @ =0x00001e21
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 2
+ add r1, sp
+ ldr r1, [r1]
+ strh r0, [r1]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3F
+ ble _0809E422
+ ldr r0, [r5]
+ ldr r1, _0809E43C @ =0x00001e1c
+ adds r2, r0, r1
+ ldrb r3, [r2]
+ adds r1, 0x2
+ adds r0, r1
+ ldrh r1, [r0]
+ strh r1, [r2]
+ strh r3, [r0]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_0809E422:
+ movs r0, 0
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809E42C: .4byte gUnknown_203998C
+_0809E430: .4byte 0x00001e1a
+_0809E434: .4byte 0x00001e18
+_0809E438: .4byte 0x00001e21
+_0809E43C: .4byte 0x00001e1c
+ thumb_func_end sub_809E3AC
+
+ thumb_func_start sub_809E440
+sub_809E440: @ 809E440
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r5, _0809E4C4 @ =gUnknown_203998C
+ ldr r0, [r5]
+ ldr r2, _0809E4C8 @ =0x00001e1a
+ adds r1, r0, r2
+ str r1, [sp]
+ ldr r3, _0809E4CC @ =0x00001e18
+ adds r0, r3
+ str r0, [sp, 0x4]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x4
+ strh r0, [r4, 0xA]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r1, 0x28
+ bl sub_8044E30
+ ldr r1, [r5]
+ movs r2, 0xF1
+ lsls r2, 5
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 2
+ add r1, sp
+ ldr r1, [r1]
+ strh r0, [r1]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x80
+ movs r1, 0xFF
+ ands r0, r1
+ movs r1, 0x28
+ bl sub_8044E30
+ ldr r1, [r5]
+ ldr r3, _0809E4D0 @ =0x00001e21
+ adds r1, r3
+ ldrb r1, [r1]
+ lsls r1, 2
+ add r1, sp
+ ldr r1, [r1]
+ strh r0, [r1]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7F
+ ble _0809E4BA
+ ldr r0, [r5]
+ movs r2, 0xF1
+ lsls r2, 5
+ adds r1, r0, r2
+ ldrb r2, [r1]
+ adds r0, r3
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, [r5]
+ adds r0, r3
+ strb r2, [r0]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_0809E4BA:
+ movs r0, 0
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809E4C4: .4byte gUnknown_203998C
+_0809E4C8: .4byte 0x00001e1a
+_0809E4CC: .4byte 0x00001e18
+_0809E4D0: .4byte 0x00001e21
+ thumb_func_end sub_809E440
+
+ thumb_func_start sub_809E4D4
+sub_809E4D4: @ 809E4D4
+ push {lr}
+ ldr r0, _0809E4EC @ =sub_809E32C
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8077508
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809E4EC: .4byte sub_809E32C
+ thumb_func_end sub_809E4D4
+
+ thumb_func_start sub_809E4F0
+sub_809E4F0: @ 809E4F0
+ push {lr}
+ ldr r0, _0809E510 @ =sub_809E58C
+ movs r1, 0x3
+ bl sub_807741C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0809E514 @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0x3
+ strh r0, [r1, 0x8]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E510: .4byte sub_809E58C
+_0809E514: .4byte gUnknown_3005090
+ thumb_func_end sub_809E4F0
+
+ thumb_func_start sub_809E518
+sub_809E518: @ 809E518
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ ldr r0, _0809E550 @ =sub_809E58C
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _0809E554 @ =gUnknown_3005090
+ adds r4, r1, r0
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r5, r0
+ bne _0809E558
+ cmp r6, 0
+ bne _0809E558
+ strh r7, [r4, 0xA]
+ movs r0, 0x1
+ strh r0, [r4, 0xC]
+ b _0809E584
+ .align 2, 0
+_0809E550: .4byte sub_809E58C
+_0809E554: .4byte gUnknown_3005090
+_0809E558:
+ cmp r5, 0x3
+ bne _0809E568
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _0809E568
+ cmp r6, 0
+ beq _0809E584
+_0809E568:
+ ldrh r1, [r4, 0x8]
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3
+ beq _0809E57A
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl sub_809E6B8
+_0809E57A:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r7, 0
+ bl sub_809E6E0
+_0809E584:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809E518
+
+ thumb_func_start sub_809E58C
+sub_809E58C: @ 809E58C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _0809E5F4 @ =gUnknown_3005090
+ adds r4, r1, r0
+ ldrh r1, [r4, 0x8]
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3
+ beq _0809E63E
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _0809E63E
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl sub_809E644
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r3, [r4, 0xE]
+ adds r1, r3, 0
+ adds r2, r3, 0
+ bl sub_8083A88
+ ldrh r1, [r4, 0x12]
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _0809E5D8
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0809E63E
+_0809E5D8:
+ movs r0, 0x2
+ strh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x10]
+ movs r3, 0x10
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ blt _0809E602
+ ldrh r2, [r4, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r4, r3]
+ cmp r0, 0xD
+ bgt _0809E5F8
+ adds r0, r2, r1
+ b _0809E606
+ .align 2, 0
+_0809E5F4: .4byte gUnknown_3005090
+_0809E5F8:
+ movs r0, 0x10
+ strh r0, [r4, 0xE]
+ ldrh r0, [r4, 0x14]
+ adds r0, 0x1
+ b _0809E60C
+_0809E602:
+ ldrh r3, [r4, 0xE]
+ adds r0, r1, r3
+_0809E606:
+ strh r0, [r4, 0xE]
+ ldrh r2, [r4, 0x14]
+ adds r0, r1, r2
+_0809E60C:
+ strh r0, [r4, 0x14]
+ movs r3, 0xE
+ ldrsh r0, [r4, r3]
+ ldrh r1, [r4, 0xE]
+ cmp r0, 0x10
+ bne _0809E62C
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x16
+ bne _0809E62C
+ ldr r0, _0809E628 @ =0x0000fffc
+ strh r0, [r4, 0x10]
+ b _0809E63E
+ .align 2, 0
+_0809E628: .4byte 0x0000fffc
+_0809E62C:
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ bne _0809E63E
+ ldrh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ movs r0, 0x2
+ strh r0, [r4, 0x10]
+ strh r1, [r4, 0x14]
+_0809E63E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809E58C
+
+ thumb_func_start sub_809E644
+sub_809E644: @ 809E644
+ push {r4-r6,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x4
+ bl sub_80089E8
+ lsls r0, 24
+ lsrs r0, 20
+ movs r1, 0x87
+ lsls r1, 1
+ adds r5, r1, 0
+ adds r0, r5
+ add r6, sp, 0x8
+ strh r0, [r6]
+ movs r0, 0x6
+ bl sub_80089E8
+ lsls r0, 24
+ lsrs r0, 20
+ adds r0, r5
+ mov r1, sp
+ adds r1, 0xA
+ strh r0, [r1]
+ movs r0, 0x7
+ bl sub_80089E8
+ lsls r0, 24
+ lsrs r0, 20
+ adds r0, r5
+ add r1, sp, 0xC
+ strh r0, [r1]
+ movs r0, 0x7
+ bl sub_80089E8
+ lsls r0, 24
+ lsrs r0, 20
+ ldr r1, _0809E6B4 @ =0x00000101
+ adds r0, r1
+ mov r1, sp
+ adds r1, 0xE
+ strh r0, [r1]
+ mov r0, sp
+ adds r1, r6, 0
+ movs r2, 0x8
+ bl memcpy
+ lsls r4, 1
+ mov r1, sp
+ adds r0, r1, r4
+ ldrh r0, [r0]
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809E6B4: .4byte 0x00000101
+ thumb_func_end sub_809E644
+
+ thumb_func_start sub_809E6B8
+sub_809E6B8: @ 809E6B8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_809E644
+ lsls r0, 16
+ ldr r2, _0809E6D8 @ =gUnknown_20375F8
+ lsrs r0, 15
+ adds r2, r0, r2
+ ldr r1, _0809E6DC @ =gUnknown_20371F8
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E6D8: .4byte gUnknown_20375F8
+_0809E6DC: .4byte gUnknown_20371F8
+ thumb_func_end sub_809E6B8
+
+ thumb_func_start sub_809E6E0
+sub_809E6E0: @ 809E6E0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ movs r3, 0
+ strh r1, [r0, 0x8]
+ strh r2, [r0, 0xA]
+ movs r1, 0x1
+ strh r1, [r0, 0xC]
+ movs r2, 0x4
+ strh r2, [r0, 0xE]
+ movs r1, 0x2
+ strh r1, [r0, 0x10]
+ strh r3, [r0, 0x12]
+ strh r2, [r0, 0x14]
+ bx lr
+ thumb_func_end sub_809E6E0
+
+ thumb_func_start sub_809E700
+sub_809E700: @ 809E700
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E718
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_800838C
+_0809E718:
+ ldrh r0, [r5, 0x36]
+ movs r1, 0xFF
+ ands r1, r0
+ adds r6, r5, 0
+ adds r6, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r6]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6]
+ movs r0, 0x2E
+ ldrsh r4, [r5, r0]
+ bl sub_809EB40
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bne _0809E74C
+ ldrb r0, [r6]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r6]
+_0809E74C:
+ ldrb r1, [r6]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _0809E77C
+ movs r1, 0x36
+ ldrsh r0, [r5, r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E77C
+ movs r2, 0x2E
+ ldrsh r1, [r5, r2]
+ movs r2, 0x32
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bne _0809E77C
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ movs r2, 0x34
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ beq _0809E786
+_0809E77C:
+ movs r0, 0
+ strh r0, [r5, 0x38]
+ movs r0, 0x2
+ strh r0, [r5, 0x3A]
+ strh r0, [r5, 0x3C]
+_0809E786:
+ ldrh r0, [r5, 0x3C]
+ subs r0, 0x1
+ strh r0, [r5, 0x3C]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0809E7AE
+ ldrh r1, [r5, 0x3A]
+ ldrh r2, [r5, 0x38]
+ adds r0, r1, r2
+ strh r0, [r5, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ beq _0809E7A6
+ cmp r0, 0
+ bne _0809E7AA
+_0809E7A6:
+ negs r0, r1
+ strh r0, [r5, 0x3A]
+_0809E7AA:
+ movs r0, 0x2
+ strh r0, [r5, 0x3C]
+_0809E7AE:
+ movs r1, 0x36
+ ldrsh r0, [r5, r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E7E4
+ ldrh r4, [r5, 0x38]
+ lsls r5, r4, 24
+ lsrs r5, 24
+ lsls r4, 16
+ asrs r4, 17
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl sub_80089E8
+ lsls r0, 24
+ lsrs r0, 4
+ ldr r2, _0809E7EC @ =0x01010000
+ adds r0, r2
+ lsrs r0, 16
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r5, 0
+ bl sub_8083A88
+_0809E7E4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E7EC: .4byte 0x01010000
+ thumb_func_end sub_809E700
+
+ thumb_func_start sub_809E7F0
+sub_809E7F0: @ 809E7F0
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r1, _0809E838 @ =gUnknown_83E2364
+ mov r0, sp
+ movs r2, 0x8
+ bl memcpy
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _0809E814
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0809E822
+_0809E814:
+ movs r0, 0x8
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ strh r0, [r4, 0x30]
+_0809E822:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x24]
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E838: .4byte gUnknown_83E2364
+ thumb_func_end sub_809E7F0
+
+ thumb_func_start sub_809E83C
+sub_809E83C: @ 809E83C
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r1, _0809E864 @ =gUnknown_83E236C
+ mov r0, sp
+ movs r2, 0x8
+ bl memcpy
+ bl sub_809F668
+ lsls r0, 24
+ ldrh r1, [r4, 0x2E]
+ lsls r1, 24
+ cmp r0, r1
+ beq _0809E868
+ movs r0, 0
+ strh r0, [r4, 0x26]
+ strh r0, [r4, 0x30]
+ b _0809E88E
+ .align 2, 0
+_0809E864: .4byte gUnknown_83E236C
+_0809E868:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _0809E890
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ movs r0, 0
+_0809E88E:
+ strh r0, [r4, 0x32]
+_0809E890:
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809E83C
+
+ thumb_func_start sub_809E898
+sub_809E898: @ 809E898
+ push {lr}
+ bl sub_809E8B4
+ bl sub_809EB5C
+ bl sub_809EDE8
+ bl sub_809EE60
+ bl sub_809EF24
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809E898
+
+ thumb_func_start sub_809E8B4
+sub_809E8B4: @ 809E8B4
+ push {r4-r6,lr}
+ ldr r0, _0809E938 @ =gUnknown_83E25EC
+ movs r1, 0x26
+ movs r2, 0x58
+ movs r3, 0x1
+ bl sub_8006F8C
+ ldr r5, _0809E93C @ =gUnknown_203998C
+ ldr r1, [r5]
+ ldr r4, _0809E940 @ =0x00001e23
+ adds r1, r4
+ strb r0, [r1]
+ movs r0, 0x1
+ bl sub_809EA0C
+ ldr r6, _0809E944 @ =gUnknown_202063C
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r3, [r1, 0x5]
+ movs r2, 0xD
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ movs r3, 0x4
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0, 0x1]
+ ands r2, r1
+ orrs r2, r3
+ strb r2, [r0, 0x1]
+ ldr r2, [r5]
+ adds r2, r4
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x1
+ strh r1, [r0, 0x3A]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x2
+ strh r1, [r0, 0x3A]
+ movs r0, 0
+ movs r1, 0
+ bl sub_809E948
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E938: .4byte gUnknown_83E25EC
+_0809E93C: .4byte gUnknown_203998C
+_0809E940: .4byte 0x00001e23
+_0809E944: .4byte gUnknown_202063C
+ thumb_func_end sub_809E8B4
+
+ thumb_func_start sub_809E948
+sub_809E948: @ 809E948
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r7, r1, 16
+ ldr r1, _0809E994 @ =gUnknown_203998C
+ ldr r1, [r1]
+ ldr r2, _0809E998 @ =0x00001e23
+ adds r1, r2
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ ldr r2, _0809E99C @ =gUnknown_202063C
+ adds r5, r1, r2
+ lsrs r1, r0, 16
+ mov r8, r1
+ asrs r6, r0, 16
+ ldr r4, _0809E9A0 @ =gUnknown_83E2330
+ bl sub_809DE50
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r6, r0
+ bge _0809E9A8
+ bl sub_809DE50
+ ldr r1, _0809E9A4 @ =gUnknown_83E2333
+ lsls r0, 24
+ lsrs r0, 21
+ adds r0, r6, r0
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r0, 0x26
+ b _0809E9AA
+ .align 2, 0
+_0809E994: .4byte gUnknown_203998C
+_0809E998: .4byte 0x00001e23
+_0809E99C: .4byte gUnknown_202063C
+_0809E9A0: .4byte gUnknown_83E2330
+_0809E9A4: .4byte gUnknown_83E2333
+_0809E9A8:
+ movs r0, 0
+_0809E9AA:
+ strh r0, [r5, 0x20]
+ lsls r0, r7, 16
+ asrs r0, 12
+ adds r0, 0x58
+ strh r0, [r5, 0x22]
+ ldrh r0, [r5, 0x2E]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x30]
+ strh r0, [r5, 0x34]
+ mov r2, r8
+ strh r2, [r5, 0x2E]
+ strh r7, [r5, 0x30]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809E948
+
+ thumb_func_start sub_809E9CC
+sub_809E9CC: @ 809E9CC
+ ldr r2, _0809E9EC @ =gUnknown_203998C
+ ldr r2, [r2]
+ ldr r3, _0809E9F0 @ =0x00001e23
+ adds r2, r3
+ ldrb r3, [r2]
+ lsls r2, r3, 4
+ adds r2, r3
+ lsls r2, 2
+ ldr r3, _0809E9F4 @ =gUnknown_202063C
+ adds r2, r3
+ ldrh r3, [r2, 0x2E]
+ strh r3, [r0]
+ ldrh r0, [r2, 0x30]
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_0809E9EC: .4byte gUnknown_203998C
+_0809E9F0: .4byte 0x00001e23
+_0809E9F4: .4byte gUnknown_202063C
+ thumb_func_end sub_809E9CC
+
+ thumb_func_start sub_809E9F8
+sub_809E9F8: @ 809E9F8
+ push {lr}
+ bl sub_809EB40
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+ bl sub_809E948
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809E9F8
+
+ thumb_func_start sub_809EA0C
+sub_809EA0C: @ 809EA0C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0809EA54 @ =gUnknown_202063C
+ ldr r1, _0809EA58 @ =gUnknown_203998C
+ ldr r4, [r1]
+ ldr r1, _0809EA5C @ =0x00001e23
+ adds r4, r1
+ ldrb r1, [r4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r5
+ ldrh r3, [r2, 0x36]
+ ldr r1, _0809EA60 @ =0xffffff00
+ ands r1, r3
+ strh r1, [r2, 0x36]
+ ldrb r2, [r4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r5
+ ldrh r2, [r1, 0x36]
+ orrs r0, r2
+ strh r0, [r1, 0x36]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0
+ bl sub_800838C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EA54: .4byte gUnknown_202063C
+_0809EA58: .4byte gUnknown_203998C
+_0809EA5C: .4byte 0x00001e23
+_0809EA60: .4byte 0xffffff00
+ thumb_func_end sub_809EA0C
+
+ thumb_func_start sub_809EA64
+sub_809EA64: @ 809EA64
+ push {r4,r5,lr}
+ lsls r0, 24
+ ldr r5, _0809EA9C @ =gUnknown_202063C
+ ldr r1, _0809EAA0 @ =gUnknown_203998C
+ ldr r4, [r1]
+ ldr r1, _0809EAA4 @ =0x00001e23
+ adds r4, r1
+ ldrb r1, [r4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r5
+ ldrh r3, [r2, 0x36]
+ movs r1, 0xFF
+ ands r1, r3
+ strh r1, [r2, 0x36]
+ ldrb r2, [r4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r5
+ lsrs r0, 16
+ ldrh r2, [r1, 0x36]
+ orrs r0, r2
+ strh r0, [r1, 0x36]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EA9C: .4byte gUnknown_202063C
+_0809EAA0: .4byte gUnknown_203998C
+_0809EAA4: .4byte 0x00001e23
+ thumb_func_end sub_809EA64
+
+ thumb_func_start sub_809EAA8
+sub_809EAA8: @ 809EAA8
+ push {lr}
+ ldr r0, _0809EAC8 @ =gUnknown_203998C
+ ldr r0, [r0]
+ ldr r1, _0809EACC @ =0x00001e23
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0809EAD0 @ =gUnknown_202063C
+ adds r0, r1
+ movs r1, 0x1
+ bl sub_800838C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EAC8: .4byte gUnknown_203998C
+_0809EACC: .4byte 0x00001e23
+_0809EAD0: .4byte gUnknown_202063C
+ thumb_func_end sub_809EAA8
+
+ thumb_func_start sub_809EAD4
+sub_809EAD4: @ 809EAD4
+ ldr r2, _0809EAF4 @ =gUnknown_202063C
+ ldr r0, _0809EAF8 @ =gUnknown_203998C
+ ldr r0, [r0]
+ ldr r1, _0809EAFC @ =0x00001e23
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 27
+ lsrs r0, 31
+ bx lr
+ .align 2, 0
+_0809EAF4: .4byte gUnknown_202063C
+_0809EAF8: .4byte gUnknown_203998C
+_0809EAFC: .4byte 0x00001e23
+ thumb_func_end sub_809EAD4
+
+ thumb_func_start sub_809EB00
+sub_809EB00: @ 809EB00
+ push {r4,r5,lr}
+ sub sp, 0x4
+ mov r5, sp
+ adds r5, 0x2
+ mov r0, sp
+ adds r1, r5, 0
+ bl sub_809E9CC
+ mov r0, sp
+ movs r1, 0
+ ldrsh r4, [r0, r1]
+ bl sub_809EB40
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ blt _0809EB34
+ ldr r0, _0809EB30 @ =gUnknown_83E2374
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ adds r1, r0
+ ldrb r0, [r1]
+ b _0809EB36
+ .align 2, 0
+_0809EB30: .4byte gUnknown_83E2374
+_0809EB34:
+ movs r0, 0
+_0809EB36:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809EB00
+
+ thumb_func_start sub_809EB40
+sub_809EB40: @ 809EB40
+ push {r4,lr}
+ ldr r4, _0809EB58 @ =gUnknown_83E2330
+ bl sub_809DE50
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ ldrb r0, [r0]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809EB58: .4byte gUnknown_83E2330
+ thumb_func_end sub_809EB40
+
+ thumb_func_start sub_809EB5C
+sub_809EB5C: @ 809EB5C
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r0, _0809EC00 @ =gUnknown_83E2574
+ movs r1, 0xCC
+ movs r2, 0x58
+ movs r3, 0
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0809EC04 @ =gUnknown_203998C
+ ldr r1, [r1]
+ ldr r2, _0809EC08 @ =0x00001e24
+ adds r1, r2
+ strb r0, [r1]
+ lsls r5, r0, 4
+ adds r5, r0
+ lsls r5, 2
+ ldr r0, _0809EC0C @ =gUnknown_202063C
+ mov r8, r0
+ add r5, r8
+ ldr r1, _0809EC10 @ =gUnknown_83E2504
+ adds r0, r5, 0
+ bl sub_8008A58
+ adds r1, r5, 0
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r6, 0x4
+ orrs r0, r6
+ strb r0, [r1]
+ ldr r0, _0809EC14 @ =gUnknown_83E25A4
+ movs r1, 0xCC
+ movs r2, 0x54
+ movs r3, 0x1
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x3A]
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ add r4, r8
+ ldr r1, _0809EC18 @ =gUnknown_83E250C
+ adds r0, r4, 0
+ bl sub_8008A58
+ adds r4, 0x3E
+ ldrb r0, [r4]
+ orrs r0, r6
+ strb r0, [r4]
+ ldr r0, _0809EC1C @ =gUnknown_83E258C
+ movs r1, 0xCC
+ movs r2, 0x53
+ movs r3, 0x2
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ add r2, r8
+ ldrb r3, [r2, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r6
+ strb r1, [r2, 0x5]
+ strh r0, [r5, 0x3C]
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ orrs r0, r6
+ strb r0, [r2]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EC00: .4byte gUnknown_83E2574
+_0809EC04: .4byte gUnknown_203998C
+_0809EC08: .4byte 0x00001e24
+_0809EC0C: .4byte gUnknown_202063C
+_0809EC10: .4byte gUnknown_83E2504
+_0809EC14: .4byte gUnknown_83E25A4
+_0809EC18: .4byte gUnknown_83E250C
+_0809EC1C: .4byte gUnknown_83E258C
+ thumb_func_end sub_809EB5C
+
+ thumb_func_start sub_809EC20
+sub_809EC20: @ 809EC20
+ ldr r0, _0809EC44 @ =gUnknown_203998C
+ ldr r2, [r0]
+ ldr r1, _0809EC48 @ =0x00001e24
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0809EC4C @ =gUnknown_202063C
+ adds r0, r1
+ movs r1, 0x2
+ strh r1, [r0, 0x2E]
+ ldr r1, _0809EC50 @ =0x00001e22
+ adds r2, r1
+ ldrb r1, [r2]
+ strh r1, [r0, 0x30]
+ bx lr
+ .align 2, 0
+_0809EC44: .4byte gUnknown_203998C
+_0809EC48: .4byte 0x00001e24
+_0809EC4C: .4byte gUnknown_202063C
+_0809EC50: .4byte 0x00001e22
+ thumb_func_end sub_809EC20
+
+ thumb_func_start sub_809EC54
+sub_809EC54: @ 809EC54
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _0809EC78 @ =gUnknown_83E2378
+_0809EC5A:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809EC5A
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EC78: .4byte gUnknown_83E2378
+ thumb_func_end sub_809EC54
+
+ thumb_func_start sub_809EC7C
+sub_809EC7C: @ 809EC7C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ lsls r5, r0, 4
+ adds r5, r0
+ lsls r5, 2
+ ldr r1, _0809ECC4 @ =gUnknown_202063C
+ adds r5, r1
+ movs r2, 0x3C
+ ldrsh r0, [r6, r2]
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r4, r1
+ ldr r0, _0809ECC8 @ =gUnknown_203998C
+ ldr r0, [r0]
+ ldr r1, _0809ECCC @ =0x00001e22
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_809DE20
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_809ED88
+ ldrh r0, [r6, 0x2E]
+ adds r0, 0x1
+ strh r0, [r6, 0x2E]
+ movs r0, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809ECC4: .4byte gUnknown_202063C
+_0809ECC8: .4byte gUnknown_203998C
+_0809ECCC: .4byte 0x00001e22
+ thumb_func_end sub_809EC7C
+
+ thumb_func_start sub_809ECD0
+sub_809ECD0: @ 809ECD0
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_809ECD0
+
+ thumb_func_start sub_809ECD4
+sub_809ECD4: @ 809ECD4
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ movs r0, 0x3A
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r2, _0809ED40 @ =gUnknown_202063C
+ adds r4, r0, r2
+ movs r0, 0x3C
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r5, r0, r2
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _0809ED38
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ ldr r0, _0809ED44 @ =0x0000fffc
+ strh r0, [r4, 0x26]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r3, 0x30]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_809DE20
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_809ED88
+_0809ED38:
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809ED40: .4byte gUnknown_202063C
+_0809ED44: .4byte 0x0000fffc
+ thumb_func_end sub_809ECD4
+
+ thumb_func_start sub_809ED48
+sub_809ED48: @ 809ED48
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0809ED84 @ =gUnknown_202063C
+ adds r2, r0, r1
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldrh r0, [r2, 0x26]
+ adds r0, 0x1
+ strh r0, [r2, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ blt _0809ED7C
+ movs r0, 0
+ strh r0, [r2, 0x26]
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+_0809ED7C:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809ED84: .4byte gUnknown_202063C
+ thumb_func_end sub_809ED48
+
+ thumb_func_start sub_809ED88
+sub_809ED88: @ 809ED88
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _0809EDE0 @ =gUnknown_83E2388
+ lsls r4, r5, 1
+ adds r0, r4, r0
+ ldrh r0, [r0]
+ bl sub_80089E8
+ lsls r0, 4
+ mov r1, r8
+ ldrb r2, [r1, 0x5]
+ movs r1, 0xF
+ ands r1, r2
+ orrs r1, r0
+ mov r0, r8
+ strb r1, [r0, 0x5]
+ ldr r0, _0809EDE4 @ =gUnknown_83E238E
+ adds r4, r0
+ ldrh r0, [r4]
+ bl sub_8008804
+ adds r1, r6, 0
+ adds r1, 0x40
+ strh r0, [r1]
+ adds r6, 0x42
+ movs r1, 0x3F
+ ands r1, r5
+ ldrb r2, [r6]
+ movs r0, 0x40
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EDE0: .4byte gUnknown_83E2388
+_0809EDE4: .4byte gUnknown_83E238E
+ thumb_func_end sub_809ED88
+
+ thumb_func_start sub_809EDE8
+sub_809EDE8: @ 809EDE8
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r0, _0809EE50 @ =gUnknown_83E25BC
+ movs r1, 0xCC
+ movs r2, 0x74
+ movs r3, 0
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r6, _0809EE54 @ =gUnknown_202063C
+ adds r4, r6
+ ldr r0, _0809EE58 @ =gUnknown_83E2524
+ mov r8, r0
+ adds r0, r4, 0
+ mov r1, r8
+ bl sub_8008A58
+ adds r4, 0x3E
+ ldrb r0, [r4]
+ movs r5, 0x4
+ orrs r0, r5
+ strb r0, [r4]
+ ldr r0, _0809EE5C @ =gUnknown_83E25D4
+ movs r1, 0xCC
+ movs r2, 0x8C
+ movs r3, 0
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r4, r6
+ adds r0, r4, 0
+ mov r1, r8
+ bl sub_8008A58
+ adds r4, 0x3E
+ ldrb r0, [r4]
+ orrs r0, r5
+ strb r0, [r4]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EE50: .4byte gUnknown_83E25BC
+_0809EE54: .4byte gUnknown_202063C
+_0809EE58: .4byte gUnknown_83E2524
+_0809EE5C: .4byte gUnknown_83E25D4
+ thumb_func_end sub_809EDE8
+
+ thumb_func_start sub_809EE60
+sub_809EE60: @ 809EE60
+ push {r4-r6,lr}
+ ldr r5, _0809EF0C @ =gUnknown_203998C
+ ldr r0, [r5]
+ ldr r4, _0809EF10 @ =0x00001e16
+ adds r0, r4
+ ldrh r1, [r0]
+ subs r1, 0x5
+ ldr r0, _0809EF14 @ =gUnknown_83E2604
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0x38
+ movs r3, 0
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r3, _0809EF18 @ =gUnknown_202063C
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xC
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, [r5]
+ adds r4, r0, r4
+ ldrh r1, [r4]
+ movs r5, 0
+ ldr r2, _0809EF1C @ =0x00001e28
+ adds r0, r2
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r5, r0
+ bcs _0809EF04
+ adds r6, r3, 0
+_0809EEB2:
+ lsls r1, 16
+ asrs r4, r1, 16
+ movs r0, 0xC0
+ lsls r0, 10
+ adds r1, r0
+ asrs r1, 16
+ ldr r0, _0809EF20 @ =gUnknown_83E261C
+ movs r2, 0x3C
+ movs r3, 0
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xC
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ strh r5, [r0, 0x2E]
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x8
+ lsls r4, 16
+ lsrs r1, r4, 16
+ ldr r0, _0809EF0C @ =gUnknown_203998C
+ ldr r0, [r0]
+ ldr r2, _0809EF1C @ =0x00001e28
+ adds r0, r2
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r5, r0
+ bcc _0809EEB2
+_0809EF04:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EF0C: .4byte gUnknown_203998C
+_0809EF10: .4byte 0x00001e16
+_0809EF14: .4byte gUnknown_83E2604
+_0809EF18: .4byte gUnknown_202063C
+_0809EF1C: .4byte 0x00001e28
+_0809EF20: .4byte gUnknown_83E261C
+ thumb_func_end sub_809EE60
+
+ thumb_func_start sub_809EF24
+sub_809EF24: @ 809EF24
+ push {lr}
+ ldr r1, _0809EF44 @ =gUnknown_83E2394
+ ldr r0, _0809EF48 @ =gUnknown_203998C
+ ldr r0, [r0]
+ ldr r2, _0809EF4C @ =0x00001e28
+ adds r0, r2
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EF44: .4byte gUnknown_83E2394
+_0809EF48: .4byte gUnknown_203998C
+_0809EF4C: .4byte 0x00001e28
+ thumb_func_end sub_809EF24
+
+ thumb_func_start nullsub_54
+nullsub_54: @ 809EF50
+ bx lr
+ thumb_func_end nullsub_54
+
+ thumb_func_start sub_809EF54
+sub_809EF54: @ 809EF54
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _0809EFA0 @ =gUnknown_203998C
+ ldr r0, [r0]
+ ldr r1, _0809EFA4 @ =0x00001e34
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0
+ bl sub_805C7C8
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0809EFA8 @ =nullsub_8
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x38
+ movs r3, 0x25
+ bl sub_805E978
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0809EFAC @ =gUnknown_202063C
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xC
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ movs r1, 0x4
+ bl sub_800838C
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EFA0: .4byte gUnknown_203998C
+_0809EFA4: .4byte 0x00001e34
+_0809EFA8: .4byte nullsub_8
+_0809EFAC: .4byte gUnknown_202063C
+ thumb_func_end sub_809EF54
+
+ thumb_func_start sub_809EFB0
+sub_809EFB0: @ 809EFB0
+ push {r4,lr}
+ ldr r0, _0809EFE4 @ =gUnknown_83E2634
+ movs r1, 0x38
+ movs r2, 0x29
+ movs r3, 0
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _0809EFE8 @ =gUnknown_202063C
+ adds r4, r0
+ ldr r1, _0809EFEC @ =gUnknown_83E252C
+ adds r0, r4, 0
+ bl sub_8008A58
+ ldrb r0, [r4, 0x5]
+ movs r1, 0xC
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EFE4: .4byte gUnknown_83E2634
+_0809EFE8: .4byte gUnknown_202063C
+_0809EFEC: .4byte gUnknown_83E252C
+ thumb_func_end sub_809EFB0
+
+ thumb_func_start sub_809EFF0
+sub_809EFF0: @ 809EFF0
+ push {lr}
+ sub sp, 0xC
+ bl sub_809707C
+ ldr r0, _0809F038 @ =gUnknown_203998C
+ ldr r3, [r0]
+ ldr r1, _0809F03C @ =0x00001e34
+ adds r0, r3, r1
+ ldrh r0, [r0]
+ ldr r1, _0809F040 @ =nullsub_8
+ movs r2, 0
+ str r2, [sp]
+ ldr r2, _0809F044 @ =0x00001e38
+ adds r3, r2
+ ldr r2, [r3]
+ str r2, [sp, 0x4]
+ movs r2, 0x1
+ str r2, [sp, 0x8]
+ movs r2, 0x38
+ movs r3, 0x28
+ bl sub_8096E18
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0809F048 @ =gUnknown_202063C
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x5]
+ movs r2, 0xC
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F038: .4byte gUnknown_203998C
+_0809F03C: .4byte 0x00001e34
+_0809F040: .4byte nullsub_8
+_0809F044: .4byte 0x00001e38
+_0809F048: .4byte gUnknown_202063C
+ thumb_func_end sub_809EFF0
+
+ thumb_func_start sub_809F04C
+sub_809F04C: @ 809F04C
+ push {r4,lr}
+ sub sp, 0x2C
+ ldr r0, _0809F0B8 @ =gUnknown_83E23C0
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x1C]
+ str r1, [sp, 0x20]
+ ldr r0, _0809F0BC @ =gUnknown_83E23C8
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x24]
+ str r1, [sp, 0x28]
+ ldr r1, _0809F0C0 @ =nullsub_8
+ add r3, sp, 0x18
+ movs r0, 0
+ mov r2, sp
+ bl sub_805E8E8
+ mov r2, sp
+ add r0, sp, 0x1C
+ ldrh r1, [r0, 0x6]
+ strh r1, [r2]
+ add r4, sp, 0x24
+ ldrh r1, [r4, 0x4]
+ strh r1, [r2, 0x2]
+ ldr r1, _0809F0C4 @ =gUnknown_83E23BC
+ str r1, [sp, 0x8]
+ bl sub_80086DC
+ adds r0, r4, 0
+ bl sub_8008928
+ mov r0, sp
+ movs r1, 0x38
+ movs r2, 0x25
+ movs r3, 0
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0809F0C8 @ =gUnknown_202063C
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x5]
+ movs r2, 0xC
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ add sp, 0x2C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F0B8: .4byte gUnknown_83E23C0
+_0809F0BC: .4byte gUnknown_83E23C8
+_0809F0C0: .4byte nullsub_8
+_0809F0C4: .4byte gUnknown_83E23BC
+_0809F0C8: .4byte gUnknown_202063C
+ thumb_func_end sub_809F04C
+
+ thumb_func_start sub_809F0CC
+sub_809F0CC: @ 809F0CC
+ push {r4,r5,lr}
+ bl sub_809F21C
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl sub_809EB00
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, 0x8
+ bne _0809F0EA
+ bl sub_809F1F0
+ b _0809F106
+_0809F0EA:
+ cmp r4, 0x6
+ bne _0809F0F4
+ bl sub_809F700
+ b _0809F114
+_0809F0F4:
+ cmp r5, 0x9
+ beq _0809F110
+ ldr r1, _0809F10C @ =gUnknown_83E23D0
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl _call_via_r1
+_0809F106:
+ lsls r0, 24
+ lsrs r0, 24
+ b _0809F116
+ .align 2, 0
+_0809F10C: .4byte gUnknown_83E23D0
+_0809F110:
+ bl sub_809E9F8
+_0809F114:
+ movs r0, 0
+_0809F116:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F0CC
+
+ thumb_func_start sub_809F11C
+sub_809F11C: @ 809F11C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl sub_809E518
+ cmp r4, 0x5
+ bne _0809F156
+ bl sub_809F75C
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_809EAA8
+ cmp r4, 0
+ beq _0809F156
+ movs r0, 0
+ bl sub_809F240
+ ldr r0, _0809F160 @ =gUnknown_203998C
+ ldr r0, [r0]
+ ldr r1, _0809F164 @ =0x00001e10
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0]
+_0809F156:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809F160: .4byte gUnknown_203998C
+_0809F164: .4byte 0x00001e10
+ thumb_func_end sub_809F11C
+
+ thumb_func_start sub_809F168
+sub_809F168: @ 809F168
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_809E518
+ cmp r4, 0x5
+ beq _0809F182
+ movs r0, 0
+ b _0809F18A
+_0809F182:
+ bl sub_809F1F0
+ lsls r0, 24
+ lsrs r0, 24
+_0809F18A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F168
+
+ thumb_func_start sub_809F190
+sub_809F190: @ 809F190
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_809E518
+ cmp r4, 0x5
+ bne _0809F1AA
+ bl sub_809F700
+_0809F1AA:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F190
+
+ thumb_func_start sub_809F1B4
+sub_809F1B4: @ 809F1B4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_809E518
+ cmp r4, 0x5
+ beq _0809F1CE
+ movs r0, 0
+ b _0809F1E2
+_0809F1CE:
+ movs r0, 0x5
+ bl sub_80722CC
+ ldr r0, _0809F1E8 @ =gUnknown_203998C
+ ldr r0, [r0]
+ ldr r1, _0809F1EC @ =0x00001e10
+ adds r0, r1
+ movs r1, 0x6
+ strb r1, [r0]
+ movs r0, 0x1
+_0809F1E2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809F1E8: .4byte gUnknown_203998C
+_0809F1EC: .4byte 0x00001e10
+ thumb_func_end sub_809F1B4
+
+ thumb_func_start sub_809F1F0
+sub_809F1F0: @ 809F1F0
+ ldr r0, _0809F200 @ =gUnknown_203998C
+ ldr r0, [r0]
+ ldr r1, _0809F204 @ =0x00001e10
+ adds r0, r1
+ movs r1, 0x4
+ strb r1, [r0]
+ movs r0, 0x1
+ bx lr
+ .align 2, 0
+_0809F200: .4byte gUnknown_203998C
+_0809F204: .4byte 0x00001e10
+ thumb_func_end sub_809F1F0
+
+ thumb_func_start sub_809F208
+sub_809F208: @ 809F208
+ push {lr}
+ ldr r0, _0809F218 @ =sub_809F26C
+ movs r1, 0x1
+ bl sub_807741C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F218: .4byte sub_809F26C
+ thumb_func_end sub_809F208
+
+ thumb_func_start sub_809F21C
+sub_809F21C: @ 809F21C
+ push {lr}
+ ldr r0, _0809F238 @ =sub_809F26C
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0809F23C @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrb r0, [r1, 0xA]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809F238: .4byte sub_809F26C
+_0809F23C: .4byte gUnknown_3005090
+ thumb_func_end sub_809F21C
+
+ thumb_func_start sub_809F240
+sub_809F240: @ 809F240
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0809F264 @ =sub_809F26C
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0809F268 @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F264: .4byte sub_809F26C
+_0809F268: .4byte gUnknown_3005090
+ thumb_func_end sub_809F240
+
+ thumb_func_start sub_809F26C
+sub_809F26C: @ 809F26C
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _0809F294 @ =gUnknown_83E23E0
+ ldr r2, _0809F298 @ =gUnknown_3005090
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x8
+ ldrsh r1, [r0, r2]
+ lsls r1, 2
+ adds r1, r3
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F294: .4byte gUnknown_83E23E0
+_0809F298: .4byte gUnknown_3005090
+ thumb_func_end sub_809F26C
+
+ thumb_func_start sub_809F29C
+sub_809F29C: @ 809F29C
+ movs r1, 0
+ strh r1, [r0, 0xA]
+ bx lr
+ thumb_func_end sub_809F29C
+
+ thumb_func_start sub_809F2A4
+sub_809F2A4: @ 809F2A4
+ push {lr}
+ adds r2, r0, 0
+ movs r0, 0
+ strh r0, [r2, 0xA]
+ ldr r0, _0809F2C0 @ =gUnknown_30030F0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809F2C4
+ movs r0, 0x5
+ strh r0, [r2, 0xA]
+ b _0809F2F4
+ .align 2, 0
+_0809F2C0: .4byte gUnknown_30030F0
+_0809F2C4:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809F2D2
+ movs r0, 0x6
+ strh r0, [r2, 0xA]
+ b _0809F2F4
+_0809F2D2:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0809F2E0
+ movs r0, 0x8
+ strh r0, [r2, 0xA]
+ b _0809F2F4
+_0809F2E0:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0809F2EE
+ movs r0, 0x9
+ strh r0, [r2, 0xA]
+ b _0809F2F4
+_0809F2EE:
+ adds r0, r2, 0
+ bl sub_809F2F8
+_0809F2F4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809F2A4
+
+ thumb_func_start sub_809F2F8
+sub_809F2F8: @ 809F2F8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x34
+ mov r9, r0
+ ldr r1, _0809F3E4 @ =gUnknown_83E23E8
+ mov r0, sp
+ movs r2, 0xA
+ bl memcpy
+ add r0, sp, 0xC
+ mov r10, r0
+ ldr r1, _0809F3E8 @ =gUnknown_83E23F2
+ movs r2, 0xA
+ bl memcpy
+ mov r1, sp
+ adds r1, 0x18
+ str r1, [sp, 0x2C]
+ ldr r1, _0809F3EC @ =gUnknown_83E23FC
+ ldr r0, [sp, 0x2C]
+ movs r2, 0x8
+ bl memcpy
+ mov r2, sp
+ adds r2, 0x20
+ str r2, [sp, 0x30]
+ ldr r1, _0809F3F0 @ =gUnknown_83E2404
+ adds r0, r2, 0
+ movs r2, 0x6
+ bl memcpy
+ add r4, sp, 0x28
+ mov r5, sp
+ adds r5, 0x2A
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_809E9CC
+ ldr r0, _0809F3F4 @ =gUnknown_30030F0
+ ldrh r2, [r0, 0x30]
+ movs r0, 0x40
+ ands r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ negs r0, r0
+ lsrs r1, r0, 31
+ movs r0, 0x80
+ ands r0, r2
+ adds r6, r4, 0
+ cmp r0, 0
+ beq _0809F366
+ movs r1, 0x2
+_0809F366:
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ beq _0809F370
+ movs r1, 0x3
+_0809F370:
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ beq _0809F37A
+ movs r1, 0x4
+_0809F37A:
+ ldrh r0, [r6]
+ mov r8, r0
+ lsls r1, 1
+ mov r2, sp
+ adds r7, r2, r1
+ ldrh r0, [r7]
+ add r0, r8
+ strh r0, [r6]
+ add r1, r10
+ ldrh r0, [r1]
+ ldrh r1, [r5]
+ adds r0, r1
+ strh r0, [r5]
+ movs r2, 0
+ ldrsh r0, [r6, r2]
+ cmp r0, 0
+ bge _0809F3A6
+ bl sub_809EB40
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6]
+_0809F3A6:
+ movs r0, 0
+ ldrsh r4, [r6, r0]
+ bl sub_809EB40
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ ble _0809F3BA
+ movs r0, 0
+ strh r0, [r6]
+_0809F3BA:
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ beq _0809F426
+ movs r2, 0
+ ldrsh r4, [r6, r2]
+ bl sub_809EB40
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bne _0809F3F8
+ ldrh r0, [r5]
+ mov r1, r9
+ strh r0, [r1, 0xC]
+ movs r2, 0
+ ldrsh r0, [r5, r2]
+ lsls r0, 1
+ ldr r1, [sp, 0x2C]
+ adds r0, r1, r0
+ b _0809F422
+ .align 2, 0
+_0809F3E4: .4byte gUnknown_83E23E8
+_0809F3E8: .4byte gUnknown_83E23F2
+_0809F3EC: .4byte gUnknown_83E23FC
+_0809F3F0: .4byte gUnknown_83E2404
+_0809F3F4: .4byte gUnknown_30030F0
+_0809F3F8:
+ mov r2, r8
+ lsls r4, r2, 16
+ asrs r4, 16
+ bl sub_809EB40
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bne _0809F426
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _0809F418
+ mov r2, r9
+ ldrh r0, [r2, 0xC]
+ b _0809F424
+_0809F418:
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ lsls r0, 1
+ ldr r2, [sp, 0x30]
+ adds r0, r2, r0
+_0809F422:
+ ldrh r0, [r0]
+_0809F424:
+ strh r0, [r5]
+_0809F426:
+ movs r0, 0
+ ldrsh r4, [r6, r0]
+ bl sub_809EB40
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bne _0809F468
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bge _0809F442
+ movs r0, 0x2
+ strh r0, [r5]
+_0809F442:
+ movs r2, 0
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x2
+ ble _0809F44E
+ movs r0, 0
+ strh r0, [r5]
+_0809F44E:
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0809F45E
+ movs r0, 0x1
+ mov r2, r9
+ strh r0, [r2, 0xC]
+ b _0809F480
+_0809F45E:
+ cmp r0, 0x2
+ bne _0809F480
+ mov r1, r9
+ strh r0, [r1, 0xC]
+ b _0809F480
+_0809F468:
+ movs r2, 0
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ bge _0809F474
+ movs r0, 0x3
+ strh r0, [r5]
+_0809F474:
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x3
+ ble _0809F480
+ movs r0, 0
+ strh r0, [r5]
+_0809F480:
+ movs r2, 0
+ ldrsh r0, [r6, r2]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ bl sub_809E948
+ add sp, 0x34
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809F2F8
+
+ thumb_func_start sub_809F49C
+sub_809F49C: @ 809F49C
+ push {r4,r5,lr}
+ sub sp, 0xC
+ ldr r5, _0809F4E4 @ =gUnknown_203998C
+ ldr r0, [r5]
+ ldr r4, _0809F4E8 @ =0x00001e14
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r1, 0x11
+ bl sub_800445C
+ ldr r1, [r5]
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ ldr r2, _0809F4EC @ =0x00001e28
+ adds r1, r2
+ ldr r1, [r1]
+ ldr r2, [r1, 0x8]
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x1
+ bl sub_8002C48
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_8003FA0
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F4E4: .4byte gUnknown_203998C
+_0809F4E8: .4byte 0x00001e14
+_0809F4EC: .4byte 0x00001e28
+ thumb_func_end sub_809F49C
+
+ thumb_func_start sub_809F4F0
+sub_809F4F0: @ 809F4F0
+ push {r4,r5,lr}
+ sub sp, 0x2C
+ ldr r5, _0809F558 @ =gUnknown_203998C
+ ldr r0, [r5]
+ ldr r1, _0809F55C @ =0x00001e34
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, _0809F560 @ =gUnknown_8245EE0
+ adds r1, r0
+ add r0, sp, 0xC
+ bl sub_8008D84
+ ldr r0, [r5]
+ ldr r1, _0809F564 @ =0x00001e28
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, [r0, 0x8]
+ add r0, sp, 0xC
+ movs r2, 0xF
+ bl sub_8008DEC
+ ldr r0, [r5]
+ ldr r4, _0809F568 @ =0x00001e14
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r1, 0x11
+ bl sub_800445C
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ add r2, sp, 0xC
+ movs r3, 0x1
+ bl sub_8002C48
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_8003FA0
+ add sp, 0x2C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F558: .4byte gUnknown_203998C
+_0809F55C: .4byte 0x00001e34
+_0809F560: .4byte gUnknown_8245EE0
+_0809F564: .4byte 0x00001e28
+_0809F568: .4byte 0x00001e14
+ thumb_func_end sub_809F4F0
+
+ thumb_func_start sub_809F56C
+sub_809F56C: @ 809F56C
+ push {lr}
+ ldr r1, _0809F588 @ =gUnknown_83E240C
+ ldr r0, _0809F58C @ =gUnknown_203998C
+ ldr r0, [r0]
+ ldr r2, _0809F590 @ =0x00001e2c
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F588: .4byte gUnknown_83E240C
+_0809F58C: .4byte gUnknown_203998C
+_0809F590: .4byte 0x00001e2c
+ thumb_func_end sub_809F56C
+
+ thumb_func_start sub_809F594
+sub_809F594: @ 809F594
+ push {lr}
+ ldr r1, _0809F5B4 @ =gUnknown_83E2420
+ ldr r0, _0809F5B8 @ =gUnknown_203998C
+ ldr r0, [r0]
+ ldr r2, _0809F5BC @ =0x00001e28
+ adds r0, r2
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F5B4: .4byte gUnknown_83E2420
+_0809F5B8: .4byte gUnknown_203998C
+_0809F5BC: .4byte 0x00001e28
+ thumb_func_end sub_809F594
+
+ thumb_func_start nullsub_55
+nullsub_55: @ 809F5C0
+ bx lr
+ thumb_func_end nullsub_55
+
+ thumb_func_start sub_809F5C4
+sub_809F5C4: @ 809F5C4
+ push {r4,r5,lr}
+ sub sp, 0x10
+ movs r4, 0
+ ldr r1, _0809F61C @ =gUnknown_841621F
+ add r0, sp, 0xC
+ bl sub_8008D84
+ ldr r5, _0809F620 @ =gUnknown_203998C
+ ldr r0, [r5]
+ ldr r1, _0809F624 @ =0x00001e36
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0xFF
+ beq _0809F614
+ cmp r0, 0xFE
+ bne _0809F5EE
+ ldr r1, _0809F628 @ =gUnknown_8416221
+ add r0, sp, 0xC
+ bl sub_8008D84
+ movs r4, 0x1
+_0809F5EE:
+ ldr r0, [r5]
+ ldr r1, _0809F62C @ =0x00001e13
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r1, r4, 1
+ adds r1, r4
+ ldr r2, _0809F630 @ =gUnknown_83E2428
+ adds r1, r2
+ str r1, [sp]
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [sp, 0x4]
+ add r1, sp, 0xC
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ movs r2, 0x68
+ movs r3, 0x1
+ bl sub_812E51C
+_0809F614:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F61C: .4byte gUnknown_841621F
+_0809F620: .4byte gUnknown_203998C
+_0809F624: .4byte 0x00001e36
+_0809F628: .4byte gUnknown_8416221
+_0809F62C: .4byte 0x00001e13
+_0809F630: .4byte gUnknown_83E2428
+ thumb_func_end sub_809F5C4
+
+ thumb_func_start sub_809F634
+sub_809F634: @ 809F634
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r6, _0809F664 @ =gUnknown_83E22D0
+ bl sub_809DE50
+ lsls r4, 16
+ asrs r4, 16
+ lsls r5, 16
+ asrs r5, 13
+ adds r4, r5
+ lsls r0, 24
+ lsrs r0, 19
+ adds r4, r0
+ adds r4, r6
+ ldrb r0, [r4]
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809F664: .4byte gUnknown_83E22D0
+ thumb_func_end sub_809F634
+
+ thumb_func_start sub_809F668
+sub_809F668: @ 809F668
+ push {r4,r5,lr}
+ movs r2, 0
+ ldr r0, _0809F690 @ =gUnknown_203998C
+ ldr r4, [r0]
+ ldr r3, _0809F694 @ =0x00001e28
+ adds r1, r4, r3
+ ldr r1, [r1]
+ ldrb r3, [r1, 0x1]
+ adds r5, r0, 0
+ cmp r2, r3
+ bcs _0809F6A2
+ movs r0, 0xC0
+ lsls r0, 5
+ adds r1, r4, r0
+_0809F684:
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _0809F698
+ adds r0, r2, 0
+ b _0809F6B2
+ .align 2, 0
+_0809F690: .4byte gUnknown_203998C
+_0809F694: .4byte 0x00001e28
+_0809F698:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r3
+ bcc _0809F684
+_0809F6A2:
+ ldr r0, [r5]
+ ldr r1, _0809F6B8 @ =0x00001e28
+ adds r0, r1
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+_0809F6B2:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809F6B8: .4byte 0x00001e28
+ thumb_func_end sub_809F668
+
+ thumb_func_start sub_809F6BC
+sub_809F6BC: @ 809F6BC
+ push {lr}
+ ldr r0, _0809F6E8 @ =gUnknown_203998C
+ ldr r2, [r0]
+ ldr r1, _0809F6EC @ =0x00001e28
+ adds r0, r2, r1
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ subs r0, 0x1
+ lsls r1, r0, 24
+ cmp r1, 0
+ ble _0809F6F8
+ movs r0, 0xC0
+ lsls r0, 5
+ adds r3, r2, r0
+_0809F6D8:
+ asrs r2, r1, 24
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _0809F6F0
+ lsrs r0, r1, 24
+ b _0809F6FA
+ .align 2, 0
+_0809F6E8: .4byte gUnknown_203998C
+_0809F6EC: .4byte 0x00001e28
+_0809F6F0:
+ subs r0, r2, 0x1
+ lsls r1, r0, 24
+ cmp r1, 0
+ bgt _0809F6D8
+_0809F6F8:
+ movs r0, 0
+_0809F6FA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F6BC
+
+ thumb_func_start sub_809F700
+sub_809F700: @ 809F700
+ push {r4-r6,lr}
+ bl sub_809F6BC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r6, _0809F758 @ =gUnknown_203998C
+ ldr r0, [r6]
+ movs r5, 0xC0
+ lsls r5, 5
+ adds r0, r5
+ adds r0, r4
+ movs r1, 0
+ strb r1, [r0]
+ bl sub_809F914
+ movs r0, 0x3
+ bl sub_80020BC
+ ldr r0, [r6]
+ adds r0, r5
+ adds r0, r4
+ movs r1, 0xFF
+ strb r1, [r0]
+ bl sub_809EB00
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _0809F740
+ cmp r0, 0x2
+ bne _0809F74A
+_0809F740:
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_809E518
+_0809F74A:
+ movs r0, 0x17
+ bl sub_80722CC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F758: .4byte gUnknown_203998C
+ thumb_func_end sub_809F700
+
+ thumb_func_start sub_809F75C
+sub_809F75C: @ 809F75C
+ push {r4,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_809E9CC
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl sub_809F634
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_809F7C4
+ bl sub_809F914
+ movs r0, 0x3
+ bl sub_80020BC
+ movs r0, 0x5
+ bl sub_80722CC
+ bl sub_809F6BC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0809F7B0 @ =gUnknown_203998C
+ ldr r1, [r1]
+ ldr r2, _0809F7B4 @ =0x00001e28
+ adds r1, r2
+ ldr r1, [r1]
+ ldrb r1, [r1, 0x1]
+ subs r1, 0x1
+ cmp r0, r1
+ bne _0809F7B8
+ movs r0, 0x1
+ b _0809F7BA
+ .align 2, 0
+_0809F7B0: .4byte gUnknown_203998C
+_0809F7B4: .4byte 0x00001e28
+_0809F7B8:
+ movs r0, 0
+_0809F7BA:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F75C
+
+ thumb_func_start sub_809F7C4
+sub_809F7C4: @ 809F7C4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_809F668
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0809F7E8 @ =gUnknown_203998C
+ ldr r1, [r1]
+ movs r2, 0xC0
+ lsls r2, 5
+ adds r1, r2
+ adds r1, r0
+ strb r4, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F7E8: .4byte gUnknown_203998C
+ thumb_func_end sub_809F7C4
+
+ thumb_func_start sub_809F7EC
+sub_809F7EC: @ 809F7EC
+ push {r4,r5,lr}
+ movs r2, 0
+ ldr r1, _0809F800 @ =gUnknown_203998C
+ ldr r0, [r1]
+ ldr r4, _0809F804 @ =0x00001e28
+ adds r0, r4
+ ldr r0, [r0]
+ adds r5, r1, 0
+ b _0809F84C
+ .align 2, 0
+_0809F800: .4byte gUnknown_203998C
+_0809F804: .4byte 0x00001e28
+_0809F808:
+ ldr r1, [r1]
+ movs r0, 0xC0
+ lsls r0, 5
+ adds r3, r1, r0
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809F83C
+ cmp r0, 0xFF
+ beq _0809F83C
+ ldr r2, _0809F838 @ =0x00001e30
+ adds r0, r1, r2
+ ldr r0, [r0]
+ adds r1, r4
+ ldr r1, [r1]
+ ldrb r2, [r1, 0x1]
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ adds r1, r3, 0
+ bl sub_8008DBC
+ b _0809F852
+ .align 2, 0
+_0809F838: .4byte 0x00001e30
+_0809F83C:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r1, r5, 0
+ ldr r0, [r1]
+ ldr r4, _0809F858 @ =0x00001e28
+ adds r0, r4
+ ldr r0, [r0]
+_0809F84C:
+ ldrb r0, [r0, 0x1]
+ cmp r2, r0
+ bcc _0809F808
+_0809F852:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F858: .4byte 0x00001e28
+ thumb_func_end sub_809F7EC
+
+ thumb_func_start sub_809F85C
+sub_809F85C: @ 809F85C
+ push {r4-r6,lr}
+ ldr r0, _0809F8AC @ =gUnknown_8E980E4
+ ldr r6, _0809F8B0 @ =gUnknown_203998C
+ ldr r1, [r6]
+ ldr r4, _0809F8B4 @ =0x00001810
+ adds r1, r4
+ bl LZ77UnCompWram
+ ldr r1, [r6]
+ adds r1, r4
+ movs r5, 0xC0
+ lsls r5, 3
+ movs r0, 0x1
+ adds r2, r5, 0
+ movs r3, 0
+ bl sub_80017D0
+ ldr r1, [r6]
+ adds r1, r4
+ movs r0, 0x2
+ adds r2, r5, 0
+ movs r3, 0
+ bl sub_80017D0
+ ldr r1, [r6]
+ adds r1, r4
+ movs r0, 0x3
+ adds r2, r5, 0
+ movs r3, 0
+ bl sub_80017D0
+ ldr r0, _0809F8B8 @ =gUnknown_83E267C
+ bl sub_8008720
+ ldr r0, _0809F8BC @ =gUnknown_83E26E4
+ bl sub_8008974
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F8AC: .4byte gUnknown_8E980E4
+_0809F8B0: .4byte gUnknown_203998C
+_0809F8B4: .4byte 0x00001810
+_0809F8B8: .4byte gUnknown_83E267C
+_0809F8BC: .4byte gUnknown_83E26E4
+ thumb_func_end sub_809F85C
+
+ thumb_func_start sub_809F8C0
+sub_809F8C0: @ 809F8C0
+ push {lr}
+ bl sub_809F208
+ bl sub_809E4F0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809F8C0
+
+ thumb_func_start sub_809F8D0
+sub_809F8D0: @ 809F8D0
+ push {lr}
+ ldr r0, _0809F8F8 @ =gUnknown_8E98024
+ movs r1, 0
+ movs r2, 0xC0
+ bl sub_80703EC
+ ldr r0, _0809F8FC @ =gUnknown_8E97FE4
+ movs r1, 0xA0
+ movs r2, 0x20
+ bl sub_80703EC
+ movs r0, 0x2
+ bl sub_8150408
+ movs r1, 0xB0
+ movs r2, 0x20
+ bl sub_80703EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F8F8: .4byte gUnknown_8E98024
+_0809F8FC: .4byte gUnknown_8E97FE4
+ thumb_func_end sub_809F8D0
+
+ thumb_func_start sub_809F900
+sub_809F900: @ 809F900
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0
+ movs r3, 0
+ bl sub_8002040
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809F900
+
+ thumb_func_start sub_809F914
+sub_809F914: @ 809F914
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ ldr r7, _0809F9D8 @ =gUnknown_203998C
+ ldr r1, [r7]
+ ldr r2, _0809F9DC @ =0x00001e28
+ adds r0, r1, r2
+ ldr r0, [r0]
+ ldrb r6, [r0, 0x1]
+ subs r2, 0x12
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ ldr r0, _0809F9E0 @ =0x00001e13
+ adds r1, r0
+ ldrb r0, [r1]
+ movs r1, 0x11
+ bl sub_800445C
+ movs r4, 0
+ cmp r4, r6
+ bcs _0809F9AA
+ add r5, sp, 0xC
+ mov r10, r4
+ ldr r0, _0809F9E4 @ =gUnknown_8415A20
+ ldrb r0, [r0]
+ mov r8, r0
+_0809F956:
+ ldr r0, [r7]
+ movs r1, 0xC0
+ lsls r1, 5
+ adds r0, r1
+ adds r0, r4
+ ldrb r0, [r0]
+ strb r0, [r5]
+ mov r2, r8
+ strb r2, [r5, 0x1]
+ ldrb r0, [r5]
+ bl sub_809FC54
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ cmp r0, 0x1
+ bne _0809F97A
+ movs r1, 0x2
+_0809F97A:
+ ldr r0, [r7]
+ ldr r2, _0809F9E0 @ =0x00001e13
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r3, r4, 3
+ add r3, r9
+ adds r3, r1
+ lsls r3, 24
+ lsrs r3, 24
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ mov r1, r10
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ add r2, sp, 0xC
+ bl sub_8002C48
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r6
+ bcc _0809F956
+_0809F9AA:
+ bl sub_809F594
+ ldr r5, _0809F9D8 @ =gUnknown_203998C
+ ldr r0, [r5]
+ ldr r4, _0809F9E0 @ =0x00001e13
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8003F20
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_8003FA0
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F9D8: .4byte gUnknown_203998C
+_0809F9DC: .4byte 0x00001e28
+_0809F9E0: .4byte 0x00001e13
+_0809F9E4: .4byte gUnknown_8415A20
+ thumb_func_end sub_809F914
+
+ thumb_func_start sub_809F9E8
+sub_809F9E8: @ 809F9E8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, _0809FA54 @ =gUnknown_83E243C
+ adds r0, r5, r0
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ bl sub_800445C
+ movs r4, 0
+ ldr r1, _0809FA58 @ =gUnknown_83E2440
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r7, [r0]
+ ldr r0, _0809FA5C @ =gUnknown_83E264C
+ mov r8, r0
+_0809FA12:
+ lsls r3, r4, 4
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ str r7, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ lsls r0, r4, 2
+ lsls r1, r5, 4
+ adds r0, r1
+ add r0, r8
+ ldr r0, [r0]
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_812E51C
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _0809FA12
+ adds r0, r6, 0
+ bl sub_8003FA0
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FA54: .4byte gUnknown_83E243C
+_0809FA58: .4byte gUnknown_83E2440
+_0809FA5C: .4byte gUnknown_83E264C
+ thumb_func_end sub_809F9E8
+
+ thumb_func_start sub_809FA60
+sub_809FA60: @ 809FA60
+ push {r4,r5,lr}
+ movs r0, 0xA
+ bl sub_8000AC4
+ adds r4, r0, 0
+ movs r5, 0x3
+ ands r4, r5
+ movs r0, 0xC
+ bl sub_8000AC4
+ ands r0, r5
+ cmp r4, r0
+ bls _0809FA90
+ movs r2, 0x1
+ movs r5, 0x1
+ ldr r1, _0809FA88 @ =gUnknown_203998C
+ ldr r0, [r1]
+ ldr r3, _0809FA8C @ =0x00001e11
+ b _0809FA9A
+ .align 2, 0
+_0809FA88: .4byte gUnknown_203998C
+_0809FA8C: .4byte 0x00001e11
+_0809FA90:
+ movs r2, 0x2
+ movs r5, 0x2
+ ldr r1, _0809FAD4 @ =gUnknown_203998C
+ ldr r0, [r1]
+ ldr r3, _0809FAD8 @ =0x00001e12
+_0809FA9A:
+ adds r0, r3
+ ldrb r4, [r0]
+ adds r0, r1, 0
+ ldr r1, _0809FADC @ =gUnknown_83E244C
+ ldr r0, [r0]
+ ldr r3, _0809FAE0 @ =0x00001e22
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl sub_809F900
+ bl sub_809DE30
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_809F9E8
+ adds r0, r5, 0
+ bl sub_80020BC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FAD4: .4byte gUnknown_203998C
+_0809FAD8: .4byte 0x00001e12
+_0809FADC: .4byte gUnknown_83E244C
+_0809FAE0: .4byte 0x00001e22
+ thumb_func_end sub_809FA60
+
+ thumb_func_start sub_809FAE4
+sub_809FAE4: @ 809FAE4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x10
+ ldr r1, _0809FB60 @ =gUnknown_83E2458
+ add r0, sp, 0xC
+ movs r2, 0x3
+ bl memcpy
+ ldr r0, _0809FB64 @ =gUnknown_8418E77
+ mov r8, r0
+ movs r0, 0
+ mov r1, r8
+ movs r2, 0
+ bl sub_8005ED4
+ adds r6, r0, 0
+ ldr r5, _0809FB68 @ =gUnknown_203998C
+ ldr r0, [r5]
+ ldr r4, _0809FB6C @ =0x00001e15
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r1, 0xFF
+ bl sub_800445C
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r1, 0x14
+ negs r1, r1
+ adds r2, r1, 0
+ subs r2, r6
+ lsls r2, 24
+ lsrs r2, 24
+ add r1, sp, 0xC
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ mov r1, r8
+ str r1, [sp, 0x8]
+ movs r1, 0
+ movs r3, 0
+ bl sub_812E51C
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_8003FA0
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8003F20
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FB60: .4byte gUnknown_83E2458
+_0809FB64: .4byte gUnknown_8418E77
+_0809FB68: .4byte gUnknown_203998C
+_0809FB6C: .4byte 0x00001e15
+ thumb_func_end sub_809FAE4
+
+ thumb_func_start sub_809FB70
+sub_809FB70: @ 809FB70
+ push {lr}
+ bl sub_8077578
+ bl sub_8006B5C
+ bl sub_8006BA8
+ bl sub_80704D0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809FB70
+
+ thumb_func_start sub_809FB88
+sub_809FB88: @ 809FB88
+ push {lr}
+ movs r0, 0
+ bl sub_80006F4
+ movs r0, 0
+ bl sub_8000700
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809FB88
+
+ thumb_func_start sub_809FB9C
+sub_809FB9C: @ 809FB9C
+ push {lr}
+ ldr r0, _0809FBA8 @ =sub_809FBAC
+ bl sub_80006F4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FBA8: .4byte sub_809FBAC
+ thumb_func_end sub_809FB9C
+
+ thumb_func_start sub_809FBAC
+sub_809FBAC: @ 809FBAC
+ push {r4,r5,lr}
+ bl sub_8007320
+ bl sub_8007610
+ bl sub_8070474
+ ldr r5, _0809FC1C @ =gUnknown_203998C
+ ldr r0, [r5]
+ ldr r1, _0809FC20 @ =0x00001e18
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x16
+ bl sub_8000A38
+ ldr r0, [r5]
+ ldr r1, _0809FC24 @ =0x00001e1a
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x1A
+ bl sub_8000A38
+ movs r0, 0xA
+ bl sub_8000AC4
+ ldr r4, _0809FC28 @ =0x0000fffc
+ adds r1, r4, 0
+ ands r1, r0
+ movs r0, 0xA
+ bl sub_8000A38
+ ldr r0, [r5]
+ ldr r1, _0809FC2C @ =0x00001e1c
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0xA
+ bl sub_8000AF4
+ movs r0, 0xC
+ bl sub_8000AC4
+ ands r4, r0
+ movs r0, 0xC
+ adds r1, r4, 0
+ bl sub_8000A38
+ ldr r0, [r5]
+ ldr r1, _0809FC30 @ =0x00001e1e
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0xC
+ bl sub_8000AF4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FC1C: .4byte gUnknown_203998C
+_0809FC20: .4byte 0x00001e18
+_0809FC24: .4byte 0x00001e1a
+_0809FC28: .4byte 0x0000fffc
+_0809FC2C: .4byte 0x00001e1c
+_0809FC30: .4byte 0x00001e1e
+ thumb_func_end sub_809FBAC
+
+ thumb_func_start sub_809FC34
+sub_809FC34: @ 809FC34
+ push {lr}
+ movs r0, 0
+ bl sub_80019BC
+ movs r0, 0x1
+ bl sub_80019BC
+ movs r0, 0x2
+ bl sub_80019BC
+ movs r0, 0x3
+ bl sub_80019BC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809FC34
+
+ thumb_func_start sub_809FC54
+sub_809FC54: @ 809FC54
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r2, 0
+ ldr r0, _0809FC74 @ =gUnknown_8418E8A
+ ldrb r1, [r0]
+ adds r3, r0, 0
+ cmp r1, 0xFF
+ beq _0809FC86
+ adds r1, r3, 0
+_0809FC68:
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r4, r0
+ bne _0809FC78
+ movs r0, 0x1
+ b _0809FC88
+ .align 2, 0
+_0809FC74: .4byte gUnknown_8418E8A
+_0809FC78:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _0809FC68
+_0809FC86:
+ movs r0, 0
+_0809FC88:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809FC54
+
+ thumb_func_start sub_809FC90
+sub_809FC90: @ 809FC90
+ push {lr}
+ sub sp, 0x8
+ ldr r0, _0809FCB0 @ =gUnknown_300500C
+ ldr r1, [r0]
+ ldrb r2, [r1, 0x8]
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, _0809FCB4 @ =sub_80568A8
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r3, 0
+ bl sub_809D954
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FCB0: .4byte gUnknown_300500C
+_0809FCB4: .4byte sub_80568A8
+ thumb_func_end sub_809FC90
+
+ thumb_func_start sub_809FCB8
+sub_809FCB8: @ 809FCB8
+ push {lr}
+ sub sp, 0x8
+ ldr r0, _0809FCD8 @ =gUnknown_300500C
+ ldr r1, [r0]
+ ldrb r2, [r1, 0x8]
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, _0809FCDC @ =sub_80568A8
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ movs r3, 0
+ bl sub_809D954
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FCD8: .4byte gUnknown_300500C
+_0809FCDC: .4byte sub_80568A8
+ thumb_func_end sub_809FCB8
+
+ thumb_func_start sub_809FCE0
+sub_809FCE0: @ 809FCE0
+ push {lr}
+ sub sp, 0x8
+ ldr r0, _0809FD00 @ =gUnknown_300500C
+ ldr r1, [r0]
+ ldrb r2, [r1, 0x8]
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, _0809FD04 @ =sub_80568A8
+ str r0, [sp, 0x4]
+ movs r0, 0x2
+ movs r3, 0
+ bl sub_809D954
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FD00: .4byte gUnknown_300500C
+_0809FD04: .4byte sub_80568A8
+ thumb_func_end sub_809FCE0
+
+ thumb_func_start sub_809FD08
+sub_809FD08: @ 809FD08
+ push {lr}
+ sub sp, 0x8
+ ldr r0, _0809FD28 @ =gUnknown_300500C
+ ldr r1, [r0]
+ ldrb r2, [r1, 0x8]
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, _0809FD2C @ =sub_80568A8
+ str r0, [sp, 0x4]
+ movs r0, 0x3
+ movs r3, 0
+ bl sub_809D954
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FD28: .4byte gUnknown_300500C
+_0809FD2C: .4byte sub_80568A8
+ thumb_func_end sub_809FD08
+
+ thumb_func_start sub_809FD30
+sub_809FD30: @ 809FD30
+ push {lr}
+ sub sp, 0x8
+ ldr r0, _0809FD50 @ =gUnknown_300500C
+ ldr r1, [r0]
+ ldrb r2, [r1, 0x8]
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, _0809FD54 @ =sub_80568A8
+ str r0, [sp, 0x4]
+ movs r0, 0x4
+ movs r3, 0
+ bl sub_809D954
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FD50: .4byte gUnknown_300500C
+_0809FD54: .4byte sub_80568A8
+ thumb_func_end sub_809FD30
+
+ .align 2, 0 @ Don't pad with nop.