summaryrefslogtreecommitdiff
path: root/asm/menu.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/menu.s
first commit
Diffstat (limited to 'asm/menu.s')
-rw-r--r--asm/menu.s3455
1 files changed, 3455 insertions, 0 deletions
diff --git a/asm/menu.s b/asm/menu.s
new file mode 100644
index 000000000..4ac8d7eb9
--- /dev/null
+++ b/asm/menu.s
@@ -0,0 +1,3455 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_810EDC4
+sub_810EDC4: @ 810EDC4
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0810EE00 @ =gUnknown_203ADF0
+ strh r2, [r0]
+ ldr r0, _0810EE04 @ =gUnknown_203ADF2
+ strb r3, [r0]
+ ldr r1, _0810EE08 @ =sub_810EE5C
+ adds r0, r5, 0
+ bl sub_800486C
+ adds r0, r5, 0
+ movs r1, 0x11
+ bl sub_800445C
+ adds r0, r5, 0
+ bl sub_8003FA0
+ cmp r4, 0x1
+ bne _0810EDFA
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8003F20
+_0810EDFA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810EE00: .4byte gUnknown_203ADF0
+_0810EE04: .4byte gUnknown_203ADF2
+_0810EE08: .4byte sub_810EE5C
+ thumb_func_end sub_810EDC4
+
+ thumb_func_start sub_810EE0C
+sub_810EE0C: @ 810EE0C
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0810EE50 @ =gUnknown_203ADF0
+ strh r2, [r0]
+ ldr r5, _0810EE54 @ =gUnknown_203ADF2
+ adds r0, r6, 0
+ movs r1, 0x5
+ bl sub_8004950
+ strb r0, [r5]
+ ldr r1, _0810EE58 @ =sub_810EE5C
+ adds r0, r6, 0
+ bl sub_800486C
+ adds r0, r6, 0
+ movs r1, 0x11
+ bl sub_800445C
+ adds r0, r6, 0
+ bl sub_8003FA0
+ cmp r4, 0x1
+ bne _0810EE4A
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl sub_8003F20
+_0810EE4A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810EE50: .4byte gUnknown_203ADF0
+_0810EE54: .4byte gUnknown_203ADF2
+_0810EE58: .4byte sub_810EE5C
+ thumb_func_end sub_810EE0C
+
+ thumb_func_start sub_810EE5C
+sub_810EE5C: @ 810EE5C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ adds r6, r0, 0
+ adds r5, r2, 0
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r0, r1, 24
+ lsls r5, 24
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0x10]
+ ldr r1, _0810F228 @ =gUnknown_203ADF0
+ mov r9, r1
+ ldrh r1, [r1]
+ lsrs r2, r0, 24
+ str r2, [sp, 0xC]
+ movs r3, 0xFE
+ lsls r3, 24
+ adds r2, r0, r3
+ lsrs r2, 24
+ str r2, [sp, 0x14]
+ lsrs r0, r5, 24
+ mov r10, r0
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r5, r2
+ lsrs r5, 24
+ movs r4, 0x1
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ ldr r3, _0810F22C @ =gUnknown_203ADF2
+ mov r8, r3
+ ldrb r0, [r3]
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ ldr r2, [sp, 0x14]
+ adds r3, r5, 0
+ bl sub_8002554
+ mov r0, r9
+ ldrh r1, [r0]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, [sp, 0xC]
+ subs r0, 0x1
+ lsls r2, r0, 24
+ lsrs r2, 24
+ str r2, [sp, 0x18]
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r8
+ ldrb r0, [r2]
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ ldr r2, [sp, 0x18]
+ adds r3, r5, 0
+ bl sub_8002554
+ mov r3, r9
+ ldrh r1, [r3]
+ adds r1, 0x2
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, [sp, 0x10]
+ str r0, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r8
+ ldrb r0, [r2]
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ ldr r2, [sp, 0xC]
+ adds r3, r5, 0
+ bl sub_8002554
+ mov r3, r9
+ ldrh r1, [r3]
+ adds r1, 0x3
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, [sp, 0xC]
+ ldr r2, [sp, 0x10]
+ adds r7, r0, r2
+ lsls r2, r7, 24
+ lsrs r2, 24
+ str r2, [sp, 0x1C]
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r3, r8
+ ldrb r0, [r3]
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ adds r3, r5, 0
+ bl sub_8002554
+ mov r0, r9
+ ldrh r1, [r0]
+ adds r1, 0x4
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r7, 0x1
+ lsls r2, r0, 24
+ lsrs r7, r2, 24
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r8
+ ldrb r0, [r2]
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ adds r2, r7, 0
+ adds r3, r5, 0
+ bl sub_8002554
+ mov r3, r9
+ ldrh r1, [r3]
+ adds r1, 0x5
+ lsls r1, 16
+ lsrs r1, 16
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r8
+ ldrb r0, [r2]
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ ldr r2, [sp, 0x14]
+ mov r3, r10
+ bl sub_8002554
+ mov r3, r9
+ ldrh r1, [r3]
+ adds r1, 0x6
+ lsls r1, 16
+ lsrs r1, 16
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r8
+ ldrb r0, [r2]
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ ldr r2, [sp, 0x18]
+ mov r3, r10
+ bl sub_8002554
+ mov r3, r9
+ ldrh r1, [r3]
+ adds r1, 0x8
+ lsls r1, 16
+ lsrs r1, 16
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r8
+ ldrb r0, [r2]
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ ldr r2, [sp, 0x1C]
+ mov r3, r10
+ bl sub_8002554
+ mov r3, r9
+ ldrh r1, [r3]
+ adds r1, 0x9
+ lsls r1, 16
+ lsrs r1, 16
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r8
+ ldrb r0, [r2]
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ adds r2, r7, 0
+ mov r3, r10
+ bl sub_8002554
+ mov r3, r9
+ ldrh r1, [r3]
+ adds r1, 0xA
+ lsls r1, 16
+ lsrs r1, 16
+ mov r5, r10
+ adds r5, 0x1
+ lsls r5, 24
+ lsrs r5, 24
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r8
+ ldrb r0, [r2]
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ ldr r2, [sp, 0x14]
+ adds r3, r5, 0
+ bl sub_8002554
+ mov r3, r9
+ ldrh r1, [r3]
+ adds r1, 0xB
+ lsls r1, 16
+ lsrs r1, 16
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r8
+ ldrb r0, [r2]
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ ldr r2, [sp, 0x18]
+ adds r3, r5, 0
+ bl sub_8002554
+ mov r3, r9
+ ldrh r1, [r3]
+ adds r1, 0xC
+ lsls r1, 16
+ lsrs r1, 16
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r8
+ ldrb r0, [r2]
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ ldr r2, [sp, 0x1C]
+ adds r3, r5, 0
+ bl sub_8002554
+ mov r3, r9
+ ldrh r1, [r3]
+ adds r1, 0xD
+ lsls r1, 16
+ lsrs r1, 16
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r8
+ ldrb r0, [r2]
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ adds r2, r7, 0
+ adds r3, r5, 0
+ bl sub_8002554
+ ldr r3, _0810F230 @ =0x0000080a
+ adds r1, r3, 0
+ mov r0, r9
+ ldrh r0, [r0]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r5, r10
+ adds r5, 0x2
+ lsls r5, 24
+ lsrs r5, 24
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r8
+ ldrb r0, [r2]
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ ldr r2, [sp, 0x14]
+ adds r3, r5, 0
+ bl sub_8002554
+ ldr r3, _0810F234 @ =0x0000080b
+ adds r1, r3, 0
+ mov r0, r9
+ ldrh r0, [r0]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r8
+ ldrb r0, [r2]
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ ldr r2, [sp, 0x18]
+ adds r3, r5, 0
+ bl sub_8002554
+ ldr r3, _0810F238 @ =0x0000080c
+ adds r1, r3, 0
+ mov r0, r9
+ ldrh r0, [r0]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r8
+ ldrb r0, [r2]
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ ldr r2, [sp, 0x1C]
+ adds r3, r5, 0
+ bl sub_8002554
+ ldr r3, _0810F23C @ =0x0000080d
+ adds r1, r3, 0
+ mov r0, r9
+ ldrh r0, [r0]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r8
+ ldrb r0, [r2]
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ adds r2, r7, 0
+ adds r3, r5, 0
+ bl sub_8002554
+ ldr r3, _0810F240 @ =0x00000805
+ adds r1, r3, 0
+ mov r0, r9
+ ldrh r0, [r0]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r5, r10
+ adds r5, 0x3
+ lsls r5, 24
+ lsrs r5, 24
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r8
+ ldrb r0, [r2]
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ ldr r2, [sp, 0x14]
+ adds r3, r5, 0
+ bl sub_8002554
+ ldr r3, _0810F244 @ =0x00000806
+ adds r1, r3, 0
+ mov r0, r9
+ ldrh r0, [r0]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r8
+ ldrb r0, [r2]
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ ldr r2, [sp, 0x18]
+ adds r3, r5, 0
+ bl sub_8002554
+ ldr r3, _0810F248 @ =0x00000808
+ adds r1, r3, 0
+ mov r0, r9
+ ldrh r0, [r0]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r8
+ ldrb r0, [r2]
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ ldr r2, [sp, 0x1C]
+ adds r3, r5, 0
+ bl sub_8002554
+ ldr r3, _0810F24C @ =0x00000809
+ adds r1, r3, 0
+ mov r0, r9
+ ldrh r0, [r0]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r8
+ ldrb r0, [r2]
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ adds r2, r7, 0
+ adds r3, r5, 0
+ bl sub_8002554
+ movs r3, 0x80
+ lsls r3, 4
+ adds r1, r3, 0
+ mov r0, r9
+ ldrh r0, [r0]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r2, 0x4
+ add r10, r2
+ mov r3, r10
+ lsls r3, 24
+ lsrs r3, 24
+ mov r10, r3
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r8
+ ldrb r0, [r2]
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ ldr r2, [sp, 0x14]
+ bl sub_8002554
+ ldr r3, _0810F250 @ =0x00000801
+ adds r1, r3, 0
+ mov r0, r9
+ ldrh r0, [r0]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r8
+ ldrb r0, [r2]
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ ldr r2, [sp, 0x18]
+ mov r3, r10
+ bl sub_8002554
+ ldr r3, _0810F254 @ =0x00000802
+ adds r1, r3, 0
+ mov r0, r9
+ ldrh r0, [r0]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r2, [sp, 0x10]
+ str r2, [sp]
+ str r4, [sp, 0x4]
+ mov r3, r8
+ ldrb r0, [r3]
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ ldr r2, [sp, 0xC]
+ mov r3, r10
+ bl sub_8002554
+ ldr r0, _0810F258 @ =0x00000803
+ adds r1, r0, 0
+ mov r2, r9
+ ldrh r2, [r2]
+ adds r1, r2
+ lsls r1, 16
+ lsrs r1, 16
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r3, r8
+ ldrb r0, [r3]
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ ldr r2, [sp, 0x1C]
+ mov r3, r10
+ bl sub_8002554
+ ldr r0, _0810F25C @ =0x00000804
+ adds r1, r0, 0
+ mov r2, r9
+ ldrh r2, [r2]
+ adds r1, r2
+ lsls r1, 16
+ lsrs r1, 16
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r3, r8
+ ldrb r0, [r3]
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ adds r2, r7, 0
+ mov r3, r10
+ bl sub_8002554
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F228: .4byte gUnknown_203ADF0
+_0810F22C: .4byte gUnknown_203ADF2
+_0810F230: .4byte 0x0000080a
+_0810F234: .4byte 0x0000080b
+_0810F238: .4byte 0x0000080c
+_0810F23C: .4byte 0x0000080d
+_0810F240: .4byte 0x00000805
+_0810F244: .4byte 0x00000806
+_0810F248: .4byte 0x00000808
+_0810F24C: .4byte 0x00000809
+_0810F250: .4byte 0x00000801
+_0810F254: .4byte 0x00000802
+_0810F258: .4byte 0x00000803
+_0810F25C: .4byte 0x00000804
+ thumb_func_end sub_810EE5C
+
+ thumb_func_start sub_810F260
+sub_810F260: @ 810F260
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _0810F294 @ =sub_810F298
+ adds r0, r5, 0
+ bl sub_800486C
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_800445C
+ adds r0, r5, 0
+ bl sub_80040B8
+ cmp r4, 0x1
+ bne _0810F28E
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8003F20
+_0810F28E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F294: .4byte sub_810F298
+ thumb_func_end sub_810F260
+
+ thumb_func_start sub_810F298
+sub_810F298: @ 810F298
+ push {r4,r5,lr}
+ sub sp, 0xC
+ adds r4, r1, 0
+ adds r5, r2, 0
+ ldr r1, [sp, 0x18]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsls r5, 24
+ lsls r3, 24
+ lsls r1, 24
+ movs r2, 0xFE
+ lsls r2, 24
+ adds r4, r2
+ lsrs r4, 24
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r5, r2
+ lsrs r5, 24
+ movs r2, 0x80
+ lsls r2, 19
+ adds r3, r2
+ lsrs r3, 24
+ str r3, [sp]
+ movs r2, 0x80
+ lsls r2, 18
+ adds r1, r2
+ lsrs r1, 24
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl sub_8002554
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810F298
+
+ thumb_func_start sub_810F2E8
+sub_810F2E8: @ 810F2E8
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0810F324 @ =gUnknown_203ADF0
+ strh r2, [r0]
+ ldr r0, _0810F328 @ =gUnknown_203ADF2
+ strb r3, [r0]
+ ldr r1, _0810F32C @ =sub_810F380
+ adds r0, r5, 0
+ bl sub_800486C
+ adds r0, r5, 0
+ movs r1, 0x11
+ bl sub_800445C
+ adds r0, r5, 0
+ bl sub_8003FA0
+ cmp r4, 0x1
+ bne _0810F31E
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8003F20
+_0810F31E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F324: .4byte gUnknown_203ADF0
+_0810F328: .4byte gUnknown_203ADF2
+_0810F32C: .4byte sub_810F380
+ thumb_func_end sub_810F2E8
+
+ thumb_func_start sub_810F330
+sub_810F330: @ 810F330
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0810F374 @ =gUnknown_203ADF0
+ strh r2, [r0]
+ ldr r5, _0810F378 @ =gUnknown_203ADF2
+ adds r0, r6, 0
+ movs r1, 0x5
+ bl sub_8004950
+ strb r0, [r5]
+ ldr r1, _0810F37C @ =sub_810F380
+ adds r0, r6, 0
+ bl sub_800486C
+ adds r0, r6, 0
+ movs r1, 0x11
+ bl sub_800445C
+ adds r0, r6, 0
+ bl sub_8003FA0
+ cmp r4, 0x1
+ bne _0810F36E
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl sub_8003F20
+_0810F36E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F374: .4byte gUnknown_203ADF0
+_0810F378: .4byte gUnknown_203ADF2
+_0810F37C: .4byte sub_810F380
+ thumb_func_end sub_810F330
+
+ thumb_func_start sub_810F380
+sub_810F380: @ 810F380
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ mov r9, r0
+ adds r6, r1, 0
+ adds r4, r2, 0
+ ldr r0, [sp, 0x38]
+ mov r1, r9
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r6, 24
+ lsls r4, 24
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0x10]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x14]
+ ldr r2, _0810F4D0 @ =gUnknown_203ADF0
+ ldrh r1, [r2]
+ lsrs r0, r6, 24
+ str r0, [sp, 0xC]
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r6, r2
+ lsrs r6, 24
+ lsrs r0, r4, 24
+ mov r8, r0
+ adds r4, r2
+ lsrs r4, 24
+ movs r5, 0x1
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ ldr r7, _0810F4D4 @ =gUnknown_203ADF2
+ ldrb r0, [r7]
+ str r0, [sp, 0x8]
+ mov r0, r9
+ adds r2, r6, 0
+ adds r3, r4, 0
+ bl sub_8002554
+ ldr r2, _0810F4D0 @ =gUnknown_203ADF0
+ ldrh r1, [r2]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, [sp, 0x10]
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ ldrb r0, [r7]
+ str r0, [sp, 0x8]
+ mov r0, r9
+ ldr r2, [sp, 0xC]
+ adds r3, r4, 0
+ bl sub_8002554
+ ldr r2, _0810F4D0 @ =gUnknown_203ADF0
+ ldrh r1, [r2]
+ adds r1, 0x2
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, [sp, 0xC]
+ ldr r2, [sp, 0x10]
+ adds r0, r2
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ ldrb r0, [r7]
+ str r0, [sp, 0x8]
+ mov r0, r9
+ mov r2, r10
+ adds r3, r4, 0
+ bl sub_8002554
+ ldr r0, _0810F4D0 @ =gUnknown_203ADF0
+ ldrh r1, [r0]
+ adds r1, 0x3
+ lsls r1, 16
+ lsrs r1, 16
+ str r5, [sp]
+ ldr r2, [sp, 0x14]
+ str r2, [sp, 0x4]
+ ldrb r0, [r7]
+ str r0, [sp, 0x8]
+ mov r0, r9
+ adds r2, r6, 0
+ mov r3, r8
+ bl sub_8002554
+ ldr r0, _0810F4D0 @ =gUnknown_203ADF0
+ ldrh r1, [r0]
+ adds r1, 0x5
+ lsls r1, 16
+ lsrs r1, 16
+ str r5, [sp]
+ ldr r2, [sp, 0x14]
+ str r2, [sp, 0x4]
+ ldrb r0, [r7]
+ str r0, [sp, 0x8]
+ mov r0, r9
+ mov r2, r10
+ mov r3, r8
+ bl sub_8002554
+ ldr r0, _0810F4D0 @ =gUnknown_203ADF0
+ ldrh r1, [r0]
+ adds r1, 0x6
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r2, [sp, 0x14]
+ add r8, r2
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ ldrb r0, [r7]
+ str r0, [sp, 0x8]
+ mov r0, r9
+ adds r2, r6, 0
+ mov r3, r8
+ bl sub_8002554
+ ldr r2, _0810F4D0 @ =gUnknown_203ADF0
+ ldrh r1, [r2]
+ adds r1, 0x7
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, [sp, 0x10]
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ ldrb r0, [r7]
+ str r0, [sp, 0x8]
+ mov r0, r9
+ ldr r2, [sp, 0xC]
+ mov r3, r8
+ bl sub_8002554
+ ldr r2, _0810F4D0 @ =gUnknown_203ADF0
+ ldrh r1, [r2]
+ adds r1, 0x8
+ lsls r1, 16
+ lsrs r1, 16
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ ldrb r0, [r7]
+ str r0, [sp, 0x8]
+ mov r0, r9
+ mov r2, r10
+ mov r3, r8
+ bl sub_8002554
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F4D0: .4byte gUnknown_203ADF0
+_0810F4D4: .4byte gUnknown_203ADF2
+ thumb_func_end sub_810F380
+
+ thumb_func_start sub_810F4D8
+sub_810F4D8: @ 810F4D8
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _0810F50C @ =sub_810F510
+ adds r0, r5, 0
+ bl sub_800486C
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_800445C
+ adds r0, r5, 0
+ bl sub_80040B8
+ cmp r4, 0x1
+ bne _0810F506
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8003F20
+_0810F506:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F50C: .4byte sub_810F510
+ thumb_func_end sub_810F4D8
+
+ thumb_func_start sub_810F510
+sub_810F510: @ 810F510
+ push {r4,r5,lr}
+ sub sp, 0xC
+ adds r4, r1, 0
+ adds r5, r2, 0
+ ldr r1, [sp, 0x18]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsls r5, 24
+ lsls r3, 24
+ lsls r1, 24
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r4, r2
+ lsrs r4, 24
+ adds r5, r2
+ lsrs r5, 24
+ movs r2, 0x80
+ lsls r2, 18
+ adds r3, r2
+ lsrs r3, 24
+ str r3, [sp]
+ adds r1, r2
+ lsrs r1, 24
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl sub_8002554
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810F510
+
+ thumb_func_start sub_810F558
+sub_810F558: @ 810F558
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ ldr r4, [sp, 0x20]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ lsls r3, 24
+ lsrs r5, r3, 24
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ cmp r6, 0x3
+ bls _0810F58E
+ movs r1, 0
+ mov r0, sp
+ strb r1, [r0]
+ b _0810F592
+_0810F58E:
+ mov r0, sp
+ strb r6, [r0]
+_0810F592:
+ mov r1, sp
+ mov r0, r8
+ strb r0, [r1, 0x2]
+ movs r0, 0x2
+ strb r0, [r1, 0x4]
+ movs r0, 0x1E
+ subs r0, r7
+ strb r0, [r1, 0x1]
+ strb r7, [r1, 0x3]
+ strb r5, [r1, 0x5]
+ strh r4, [r1, 0x6]
+ ldr r4, _0810F5BC @ =gUnknown_203ADF4
+ mov r0, sp
+ bl sub_8003CE4
+ strb r0, [r4]
+ cmp r5, 0xF
+ bls _0810F5C0
+ movs r5, 0xF0
+ b _0810F5C4
+ .align 2, 0
+_0810F5BC: .4byte gUnknown_203ADF4
+_0810F5C0:
+ lsls r0, r5, 28
+ lsrs r5, r0, 24
+_0810F5C4:
+ movs r0, 0x2
+ bl sub_8150408
+ adds r1, r5, 0
+ movs r2, 0x20
+ bl sub_80703EC
+ ldr r0, _0810F5E4 @ =gUnknown_203ADF4
+ ldrb r0, [r0]
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810F5E4: .4byte gUnknown_203ADF4
+ thumb_func_end sub_810F558
+
+ thumb_func_start sub_810F5E8
+sub_810F5E8: @ 810F5E8
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r5, r0, 0
+ lsls r2, 24
+ lsrs r6, r2, 24
+ ldr r4, _0810F648 @ =gUnknown_203ADF4
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _0810F63E
+ bl sub_8003FA0
+ ldrb r0, [r4]
+ movs r1, 0xFF
+ bl sub_800445C
+ movs r0, 0
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_8005ED4
+ ldrb r1, [r4]
+ movs r3, 0x14
+ negs r3, r3
+ adds r2, r3, 0
+ subs r2, r0
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, _0810F64C @ =gUnknown_8456618
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r5, [sp, 0x8]
+ adds r0, r1, 0
+ movs r1, 0
+ movs r3, 0x1
+ bl sub_812E51C
+ cmp r6, 0
+ beq _0810F63E
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8003F20
+_0810F63E:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F648: .4byte gUnknown_203ADF4
+_0810F64C: .4byte gUnknown_8456618
+ thumb_func_end sub_810F5E8
+
+ thumb_func_start sub_810F650
+sub_810F650: @ 810F650
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x18
+ mov r8, r0
+ adds r5, r1, 0
+ ldr r0, [sp, 0x30]
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _0810F67C @ =gUnknown_203ADF4
+ ldrb r1, [r0]
+ adds r6, r0, 0
+ cmp r1, 0xFF
+ beq _0810F6F6
+ cmp r2, 0
+ beq _0810F680
+ add r1, sp, 0x14
+ movs r0, 0
+ b _0810F684
+ .align 2, 0
+_0810F67C: .4byte gUnknown_203ADF4
+_0810F680:
+ add r1, sp, 0x14
+ movs r0, 0xF
+_0810F684:
+ strb r0, [r1]
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+ adds r4, r6, 0
+ ldrb r0, [r4]
+ bl sub_8003FA0
+ ldrb r0, [r4]
+ movs r1, 0xFF
+ bl sub_800445C
+ cmp r5, 0
+ beq _0810F6CE
+ movs r0, 0
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_8005ED4
+ ldrb r1, [r4]
+ movs r3, 0x14
+ negs r3, r3
+ adds r2, r3, 0
+ subs r2, r0
+ lsls r2, 24
+ lsrs r2, 24
+ add r0, sp, 0x14
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r5, [sp, 0x8]
+ adds r0, r1, 0
+ movs r1, 0
+ movs r3, 0x1
+ bl sub_812E51C
+_0810F6CE:
+ ldrb r0, [r6]
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ add r2, sp, 0x14
+ str r2, [sp, 0x8]
+ str r1, [sp, 0xC]
+ mov r3, r8
+ str r3, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0x4
+ movs r3, 0x1
+ bl sub_812E5A4
+ cmp r7, 0
+ beq _0810F6F6
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8003F20
+_0810F6F6:
+ add sp, 0x18
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810F650
+
+ thumb_func_start sub_810F704
+sub_810F704: @ 810F704
+ push {lr}
+ ldr r1, _0810F718 @ =gUnknown_203ADF4
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _0810F714
+ movs r1, 0x3
+ bl sub_8003F20
+_0810F714:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F718: .4byte gUnknown_203ADF4
+ thumb_func_end sub_810F704
+
+ thumb_func_start sub_810F71C
+sub_810F71C: @ 810F71C
+ push {r4,lr}
+ ldr r4, _0810F73C @ =gUnknown_203ADF4
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _0810F734
+ movs r1, 0xFF
+ bl sub_800445C
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8003F20
+_0810F734:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F73C: .4byte gUnknown_203ADF4
+ thumb_func_end sub_810F71C
+
+ thumb_func_start sub_810F740
+sub_810F740: @ 810F740
+ push {r4,lr}
+ ldr r4, _0810F770 @ =gUnknown_203ADF4
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _0810F768
+ movs r1, 0
+ bl sub_800445C
+ ldrb r0, [r4]
+ bl sub_80040B8
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8003F20
+ ldrb r0, [r4]
+ bl sub_8003E3C
+ movs r0, 0xFF
+ strb r0, [r4]
+_0810F768:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F770: .4byte gUnknown_203ADF4
+ thumb_func_end sub_810F740
+
+ thumb_func_start sub_810F774
+sub_810F774: @ 810F774
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r4, [sp, 0x18]
+ mov r8, r4
+ ldr r4, [sp, 0x1C]
+ ldr r5, [sp, 0x20]
+ ldr r6, [sp, 0x24]
+ mov r12, r6
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r7, r5, 24
+ ldr r5, _0810F7B8 @ =gUnknown_203ADE4
+ movs r6, 0
+ strb r2, [r5]
+ strb r3, [r5, 0x1]
+ strb r6, [r5, 0x3]
+ subs r4, 0x1
+ strb r4, [r5, 0x4]
+ strb r0, [r5, 0x5]
+ strb r1, [r5, 0x6]
+ mov r0, r8
+ strb r0, [r5, 0x8]
+ mov r4, r12
+ strb r4, [r5, 0xB]
+ cmp r7, 0
+ blt _0810F7B4
+ movs r0, 0x4
+ ldrsb r0, [r5, r0]
+ cmp r7, r0
+ ble _0810F7BC
+_0810F7B4:
+ strb r6, [r5, 0x2]
+ b _0810F7BE
+ .align 2, 0
+_0810F7B8: .4byte gUnknown_203ADE4
+_0810F7BC:
+ strb r7, [r5, 0x2]
+_0810F7BE:
+ movs r0, 0
+ bl sub_810F904
+ ldr r0, _0810F7D4 @ =gUnknown_203ADE4
+ ldrb r0, [r0, 0x2]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810F7D4: .4byte gUnknown_203ADE4
+ thumb_func_end sub_810F774
+
+ thumb_func_start sub_810F7D8
+sub_810F7D8: @ 810F7D8
+ push {r4-r6,lr}
+ sub sp, 0x10
+ ldr r4, [sp, 0x20]
+ ldr r5, [sp, 0x24]
+ ldr r6, [sp, 0x28]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r4, 0
+ str r4, [sp, 0xC]
+ bl sub_810F774
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F7D8
+
+ thumb_func_start sub_810F818
+sub_810F818: @ 810F818
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x14
+ mov r8, r0
+ adds r6, r1, 0
+ ldr r4, [sp, 0x28]
+ ldr r5, [sp, 0x2C]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ movs r1, 0x1
+ str r2, [sp, 0xC]
+ str r3, [sp, 0x10]
+ bl sub_80F7AC0
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ str r4, [sp, 0x4]
+ str r5, [sp, 0x8]
+ mov r0, r8
+ adds r1, r6, 0
+ ldr r2, [sp, 0xC]
+ ldr r3, [sp, 0x10]
+ bl sub_810F7D8
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F818
+
+ thumb_func_start sub_810F874
+sub_810F874: @ 810F874
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0xC
+ adds r6, r0, 0
+ mov r8, r1
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r5, _0810F8FC @ =gUnknown_203ADE4
+ ldrb r0, [r5, 0x6]
+ movs r1, 0
+ bl sub_80F7AC0
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r5, 0x6]
+ movs r1, 0x1
+ bl sub_80F7AC0
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r5, 0x5]
+ mov r9, r1
+ ldrb r2, [r5]
+ ldrb r1, [r5, 0x8]
+ adds r3, r1, 0
+ muls r3, r6
+ ldrb r6, [r5, 0x1]
+ adds r3, r6
+ lsls r3, 16
+ lsrs r3, 16
+ str r4, [sp]
+ str r0, [sp, 0x4]
+ mov r0, r9
+ movs r1, 0x1
+ bl sub_8004378
+ ldrb r0, [r5, 0x5]
+ ldrb r1, [r5, 0x6]
+ ldr r2, _0810F900 @ =gUnknown_841623B
+ ldrb r3, [r5]
+ ldrb r4, [r5, 0x8]
+ mov r6, r8
+ muls r6, r4
+ adds r4, r6, 0
+ ldrb r5, [r5, 0x1]
+ adds r4, r5
+ lsls r4, 24
+ lsrs r4, 24
+ str r4, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ bl sub_8002C48
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F8FC: .4byte gUnknown_203ADE4
+_0810F900: .4byte gUnknown_841623B
+ thumb_func_end sub_810F874
+
+ thumb_func_start sub_810F904
+sub_810F904: @ 810F904
+ push {r4,r5,lr}
+ ldr r1, _0810F924 @ =gUnknown_203ADE4
+ ldrb r5, [r1, 0x2]
+ movs r2, 0x2
+ ldrsb r2, [r1, r2]
+ lsls r0, 24
+ asrs r3, r0, 24
+ adds r2, r3
+ movs r0, 0x3
+ ldrsb r0, [r1, r0]
+ adds r4, r1, 0
+ cmp r2, r0
+ bge _0810F928
+ ldrb r0, [r4, 0x4]
+ b _0810F936
+ .align 2, 0
+_0810F924: .4byte gUnknown_203ADE4
+_0810F928:
+ movs r0, 0x4
+ ldrsb r0, [r4, r0]
+ cmp r2, r0
+ ble _0810F934
+ ldrb r0, [r4, 0x3]
+ b _0810F936
+_0810F934:
+ adds r0, r3, r5
+_0810F936:
+ strb r0, [r4, 0x2]
+ ldrb r1, [r4, 0x2]
+ adds r0, r5, 0
+ bl sub_810F874
+ ldrb r0, [r4, 0x2]
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F904
+
+ thumb_func_start sub_810F948
+sub_810F948: @ 810F948
+ push {r4,r5,lr}
+ ldr r1, _0810F968 @ =gUnknown_203ADE4
+ ldrb r5, [r1, 0x2]
+ movs r2, 0x2
+ ldrsb r2, [r1, r2]
+ lsls r0, 24
+ asrs r3, r0, 24
+ adds r2, r3
+ movs r0, 0x3
+ ldrsb r0, [r1, r0]
+ adds r4, r1, 0
+ cmp r2, r0
+ bge _0810F96C
+ ldrb r0, [r4, 0x3]
+ b _0810F97A
+ .align 2, 0
+_0810F968: .4byte gUnknown_203ADE4
+_0810F96C:
+ movs r0, 0x4
+ ldrsb r0, [r4, r0]
+ cmp r2, r0
+ ble _0810F978
+ ldrb r0, [r4, 0x4]
+ b _0810F97A
+_0810F978:
+ adds r0, r3, r5
+_0810F97A:
+ strb r0, [r4, 0x2]
+ ldrb r1, [r4, 0x2]
+ adds r0, r5, 0
+ bl sub_810F874
+ ldrb r0, [r4, 0x2]
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F948
+
+ thumb_func_start sub_810F98C
+sub_810F98C: @ 810F98C
+ ldr r0, _0810F994 @ =gUnknown_203ADE4
+ ldrb r0, [r0, 0x2]
+ bx lr
+ .align 2, 0
+_0810F994: .4byte gUnknown_203ADE4
+ thumb_func_end sub_810F98C
+
+ thumb_func_start sub_810F998
+sub_810F998: @ 810F998
+ push {r4,lr}
+ ldr r0, _0810F9BC @ =gUnknown_30030F0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810F9C4
+ ldr r4, _0810F9C0 @ =gUnknown_203ADE4
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0
+ bne _0810F9B4
+ movs r0, 0x5
+ bl sub_80722CC
+_0810F9B4:
+ movs r0, 0x2
+ ldrsb r0, [r4, r0]
+ b _0810F9FE
+ .align 2, 0
+_0810F9BC: .4byte gUnknown_30030F0
+_0810F9C0: .4byte gUnknown_203ADE4
+_0810F9C4:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0810F9D2
+ movs r0, 0x1
+ negs r0, r0
+ b _0810F9FE
+_0810F9D2:
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0810F9E6
+ movs r0, 0x5
+ bl sub_80722CC
+ movs r0, 0x1
+ negs r0, r0
+ b _0810F9F6
+_0810F9E6:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0810F9FA
+ movs r0, 0x5
+ bl sub_80722CC
+ movs r0, 0x1
+_0810F9F6:
+ bl sub_810F904
+_0810F9FA:
+ movs r0, 0x2
+ negs r0, r0
+_0810F9FE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F998
+
+ thumb_func_start sub_810FA04
+sub_810FA04: @ 810FA04
+ push {r4-r6,lr}
+ ldr r4, _0810FA2C @ =gUnknown_203ADE4
+ ldrb r5, [r4, 0x2]
+ adds r6, r5, 0
+ ldr r0, _0810FA30 @ =gUnknown_30030F0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810FA34
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0
+ bne _0810FA24
+ movs r0, 0x5
+ bl sub_80722CC
+_0810FA24:
+ movs r0, 0x2
+ ldrsb r0, [r4, r0]
+ b _0810FA7C
+ .align 2, 0
+_0810FA2C: .4byte gUnknown_203ADE4
+_0810FA30: .4byte gUnknown_30030F0
+_0810FA34:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0810FA42
+ movs r0, 0x1
+ negs r0, r0
+ b _0810FA7C
+_0810FA42:
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0810FA5C
+ movs r0, 0x1
+ negs r0, r0
+ bl sub_810F948
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ beq _0810FA78
+ b _0810FA72
+_0810FA5C:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0810FA78
+ movs r0, 0x1
+ bl sub_810F948
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r6, r0
+ beq _0810FA78
+_0810FA72:
+ movs r0, 0x5
+ bl sub_80722CC
+_0810FA78:
+ movs r0, 0x2
+ negs r0, r0
+_0810FA7C:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810FA04
+
+ thumb_func_start sub_810FA84
+sub_810FA84: @ 810FA84
+ push {r4,lr}
+ ldr r2, _0810FAA8 @ =gUnknown_30030F0
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810FAB0
+ ldr r4, _0810FAAC @ =gUnknown_203ADE4
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0
+ bne _0810FAA0
+ movs r0, 0x5
+ bl sub_80722CC
+_0810FAA0:
+ movs r0, 0x2
+ ldrsb r0, [r4, r0]
+ b _0810FAE8
+ .align 2, 0
+_0810FAA8: .4byte gUnknown_30030F0
+_0810FAAC: .4byte gUnknown_203ADE4
+_0810FAB0:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0810FABE
+ movs r0, 0x1
+ negs r0, r0
+ b _0810FAE8
+_0810FABE:
+ ldrh r0, [r2, 0x30]
+ movs r1, 0xF0
+ ands r1, r0
+ cmp r1, 0x40
+ bne _0810FAD4
+ movs r0, 0x5
+ bl sub_80722CC
+ movs r0, 0x1
+ negs r0, r0
+ b _0810FAE0
+_0810FAD4:
+ cmp r1, 0x80
+ bne _0810FAE4
+ movs r0, 0x5
+ bl sub_80722CC
+ movs r0, 0x1
+_0810FAE0:
+ bl sub_810F904
+_0810FAE4:
+ movs r0, 0x2
+ negs r0, r0
+_0810FAE8:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810FA84
+
+ thumb_func_start sub_810FAF0
+sub_810FAF0: @ 810FAF0
+ push {r4-r6,lr}
+ ldr r4, _0810FB18 @ =gUnknown_203ADE4
+ ldrb r5, [r4, 0x2]
+ adds r6, r5, 0
+ ldr r2, _0810FB1C @ =gUnknown_30030F0
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810FB20
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0
+ bne _0810FB10
+ movs r0, 0x5
+ bl sub_80722CC
+_0810FB10:
+ movs r0, 0x2
+ ldrsb r0, [r4, r0]
+ b _0810FB66
+ .align 2, 0
+_0810FB18: .4byte gUnknown_203ADE4
+_0810FB1C: .4byte gUnknown_30030F0
+_0810FB20:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0810FB2E
+ movs r0, 0x1
+ negs r0, r0
+ b _0810FB66
+_0810FB2E:
+ ldrh r0, [r2, 0x30]
+ movs r1, 0xF0
+ ands r1, r0
+ cmp r1, 0x40
+ bne _0810FB4A
+ movs r0, 0x1
+ negs r0, r0
+ bl sub_810F948
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ beq _0810FB62
+ b _0810FB5C
+_0810FB4A:
+ cmp r1, 0x80
+ bne _0810FB62
+ movs r0, 0x1
+ bl sub_810F948
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r6, r0
+ beq _0810FB62
+_0810FB5C:
+ movs r0, 0x5
+ bl sub_80722CC
+_0810FB62:
+ movs r0, 0x2
+ negs r0, r0
+_0810FB66:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810FAF0
+
+ thumb_func_start sub_810FB6C
+sub_810FB6C: @ 810FB6C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ ldr r4, [sp, 0x2C]
+ ldr r5, [sp, 0x30]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ lsls r4, 24
+ lsrs r7, r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ movs r4, 0
+ cmp r4, r5
+ bcs _0810FBD0
+_0810FBA0:
+ lsls r0, r4, 3
+ ldr r1, [sp, 0x34]
+ adds r0, r1
+ ldr r2, [r0]
+ adds r0, r7, 0
+ muls r0, r4
+ add r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ mov r1, r10
+ mov r3, r9
+ bl sub_8002C48
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _0810FBA0
+_0810FBD0:
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_8003F20
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810FB6C
+
+ thumb_func_start sub_810FBE8
+sub_810FBE8: @ 810FBE8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ ldr r4, [sp, 0x40]
+ ldr r5, [sp, 0x44]
+ ldr r6, [sp, 0x4C]
+ ldr r7, [sp, 0x50]
+ mov r8, r7
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x14]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x18]
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0x1C]
+ lsls r4, 24
+ lsrs r4, 24
+ mov r10, r4
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ mov r9, r6
+ mov r0, r8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ cmp r4, r5
+ bcs _0810FC68
+_0810FC30:
+ lsls r0, r4, 3
+ ldr r1, [sp, 0x48]
+ adds r0, r1
+ ldr r2, [r0]
+ mov r0, r10
+ muls r0, r4
+ ldr r1, [sp, 0x1C]
+ adds r0, r1, r0
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ mov r0, r9
+ str r0, [sp, 0xC]
+ str r6, [sp, 0x10]
+ adds r0, r7, 0
+ ldr r1, [sp, 0x14]
+ ldr r3, [sp, 0x18]
+ bl sub_812E62C
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _0810FC30
+_0810FC68:
+ adds r0, r7, 0
+ movs r1, 0x2
+ bl sub_8003F20
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810FBE8
+
+ thumb_func_start sub_810FC80
+sub_810FC80: @ 810FC80
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ mov r8, r0
+ adds r6, r1, 0
+ adds r4, r2, 0
+ adds r5, r3, 0
+ ldr r7, [sp, 0x24]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_80F7AC0
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ str r7, [sp, 0x8]
+ mov r0, r8
+ adds r1, r6, 0
+ movs r3, 0
+ bl sub_810FB6C
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810FC80
+
+ thumb_func_start sub_810FCD0
+sub_810FCD0: @ 810FCD0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ adds r6, r1, 0
+ mov r8, r2
+ ldr r1, [sp, 0x38]
+ mov r9, r1
+ ldr r1, [sp, 0x3C]
+ ldr r2, [sp, 0x40]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x10]
+ lsls r6, 24
+ lsrs r6, 24
+ mov r4, r8
+ lsls r4, 24
+ lsrs r4, 24
+ mov r8, r4
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0x14]
+ mov r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r7, r2, 24
+ mov r0, sp
+ ldrb r1, [r0, 0x10]
+ strb r1, [r0, 0x4]
+ strb r6, [r0, 0x5]
+ adds r0, r6, 0
+ movs r1, 0x5
+ bl sub_80F79D8
+ mov r3, sp
+ lsls r0, 4
+ ldrb r2, [r3, 0xC]
+ movs r5, 0xF
+ adds r1, r5, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xC]
+ adds r0, r6, 0
+ movs r1, 0x6
+ bl sub_80F79D8
+ mov r3, sp
+ adds r1, r5, 0
+ ands r1, r0
+ ldrb r2, [r3, 0xD]
+ movs r4, 0x10
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0xD]
+ adds r0, r6, 0
+ movs r1, 0x7
+ bl sub_80F79D8
+ mov r3, sp
+ lsls r0, 4
+ ldrb r2, [r3, 0xD]
+ adds r1, r5, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xD]
+ adds r0, r6, 0
+ movs r1, 0x4
+ bl sub_80F79D8
+ mov r1, sp
+ ands r5, r0
+ ldrb r0, [r1, 0xC]
+ ands r4, r0
+ orrs r4, r5
+ strb r4, [r1, 0xC]
+ mov r0, sp
+ mov r2, r9
+ strb r2, [r0, 0xA]
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl sub_80F79D8
+ mov r1, sp
+ strb r0, [r1, 0xB]
+ mov r0, sp
+ mov r4, r8
+ strb r4, [r0, 0x6]
+ strb r4, [r0, 0x8]
+ movs r4, 0
+ cmp r4, r7
+ bcs _0810FDCA
+ mov r5, sp
+_0810FD9A:
+ ldr r1, [sp, 0x48]
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ lsls r0, 3
+ ldr r2, [sp, 0x44]
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [sp]
+ mov r0, r10
+ muls r0, r4
+ ldr r1, [sp, 0x14]
+ adds r0, r1, r0
+ strb r0, [r5, 0x7]
+ strb r0, [r5, 0x9]
+ mov r0, sp
+ movs r1, 0xFF
+ movs r2, 0
+ bl sub_8002CF4
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r7
+ bcc _0810FD9A
+_0810FDCA:
+ ldr r0, [sp, 0x10]
+ movs r1, 0x2
+ bl sub_8003F20
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810FCD0
+
+ thumb_func_start sub_810FDE4
+sub_810FDE4: @ 810FDE4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ mov r9, r0
+ adds r4, r1, 0
+ adds r6, r2, 0
+ mov r8, r3
+ ldr r7, [sp, 0x30]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80F79D8
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_80F79D8
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ mov r0, r8
+ str r0, [sp, 0x8]
+ str r7, [sp, 0xC]
+ ldr r0, [sp, 0x34]
+ str r0, [sp, 0x10]
+ mov r0, r9
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0
+ bl sub_810FCD0
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810FDE4
+
+ thumb_func_start sub_810FE50
+sub_810FE50: @ 810FE50
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ ldr r4, [sp, 0x28]
+ mov r12, r4
+ ldr r4, [sp, 0x2C]
+ mov r9, r4
+ ldr r4, [sp, 0x30]
+ mov r10, r4
+ ldr r7, [sp, 0x34]
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsls r3, 24
+ mov r4, r9
+ lsls r4, 24
+ lsrs r4, 24
+ mov r9, r4
+ mov r4, r10
+ lsls r4, 24
+ mov r10, r4
+ ldr r4, _0810FEF0 @ =0xffffff00
+ mov r8, r4
+ mov r5, r8
+ ldr r4, [sp]
+ ands r5, r4
+ orrs r5, r1
+ str r5, [sp]
+ lsrs r2, 16
+ ldr r6, _0810FEF4 @ =0xffff00ff
+ adds r4, r6, 0
+ ands r4, r5
+ orrs r4, r2
+ str r4, [sp]
+ lsrs r3, 8
+ ldr r1, _0810FEF8 @ =0xff00ffff
+ ands r1, r4
+ orrs r1, r3
+ str r1, [sp]
+ mov r2, r12
+ lsls r2, 24
+ mov r12, r2
+ ldr r2, _0810FEFC @ =0x00ffffff
+ ands r1, r2
+ mov r4, r12
+ orrs r4, r1
+ str r4, [sp]
+ ldr r1, [sp, 0x4]
+ mov r2, r8
+ ands r1, r2
+ mov r4, r9
+ orrs r1, r4
+ mov r8, r1
+ str r1, [sp, 0x4]
+ mov r1, r10
+ lsrs r1, 16
+ mov r2, r8
+ ands r6, r2
+ orrs r6, r1
+ str r6, [sp, 0x4]
+ lsls r2, r7, 16
+ ldr r1, _0810FF00 @ =0x0000ffff
+ ands r6, r1
+ orrs r6, r2
+ str r6, [sp, 0x4]
+ ldr r1, [sp]
+ ldr r2, [sp, 0x4]
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r2}
+ bx r2
+ .align 2, 0
+_0810FEF0: .4byte 0xffffff00
+_0810FEF4: .4byte 0xffff00ff
+_0810FEF8: .4byte 0xff00ffff
+_0810FEFC: .4byte 0x00ffffff
+_0810FF00: .4byte 0x0000ffff
+ thumb_func_end sub_810FE50
+
+ thumb_func_start sub_810FF04
+sub_810FF04: @ 810FF04
+ push {r4-r6,lr}
+ sub sp, 0x20
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ ldr r0, [sp, 0x30]
+ ldr r1, [sp, 0x34]
+ ldr r2, [sp, 0x38]
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 16
+ lsrs r2, 16
+ str r3, [sp]
+ str r0, [sp, 0x4]
+ str r1, [sp, 0x8]
+ str r2, [sp, 0xC]
+ add r0, sp, 0x10
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_810FE50
+ ldr r0, [sp, 0x10]
+ ldr r1, [sp, 0x14]
+ str r0, [sp, 0x18]
+ str r1, [sp, 0x1C]
+ add r0, sp, 0x18
+ bl sub_8003CE4
+ lsls r0, 16
+ lsrs r0, 16
+ add sp, 0x20
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810FF04
+
+ thumb_func_start sub_810FF60
+sub_810FF60: @ 810FF60
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ adds r6, r1, 0
+ mov r8, r2
+ mov r9, r3
+ ldr r4, [sp, 0x3C]
+ ldr r5, [sp, 0x40]
+ ldr r1, [sp, 0x44]
+ mov r10, r1
+ lsls r6, 24
+ lsrs r6, 24
+ mov r1, r8
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ mov r1, r9
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ mov r1, r10
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ ldr r7, _0811009C @ =gUnknown_203ADF3
+ bl sub_8003CE4
+ strb r0, [r7]
+ ldrb r0, [r7]
+ movs r1, 0x1
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl sub_810F2E8
+ ldr r0, _081100A0 @ =gUnknown_841623D
+ str r0, [sp, 0xC]
+ add r1, sp, 0xC
+ ldrb r0, [r7]
+ strb r0, [r1, 0x4]
+ adds r0, r1, 0
+ strb r6, [r0, 0x5]
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_80F7AC0
+ add r1, sp, 0xC
+ add r0, r8
+ strb r0, [r1, 0x6]
+ adds r0, r1, 0
+ mov r1, r9
+ strb r1, [r0, 0x7]
+ adds r1, r0, 0
+ ldrb r0, [r0, 0x6]
+ strb r0, [r1, 0x8]
+ adds r0, r1, 0
+ ldrb r0, [r0, 0x7]
+ strb r0, [r1, 0x9]
+ adds r0, r6, 0
+ movs r1, 0x5
+ bl sub_80F79D8
+ add r3, sp, 0xC
+ lsls r0, 4
+ ldrb r2, [r3, 0xC]
+ movs r5, 0xF
+ adds r1, r5, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xC]
+ adds r0, r6, 0
+ movs r1, 0x6
+ bl sub_80F79D8
+ add r3, sp, 0xC
+ adds r1, r5, 0
+ ands r1, r0
+ ldrb r2, [r3, 0xD]
+ movs r4, 0x10
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0xD]
+ adds r0, r6, 0
+ movs r1, 0x7
+ bl sub_80F79D8
+ add r3, sp, 0xC
+ lsls r0, 4
+ ldrb r2, [r3, 0xD]
+ adds r1, r5, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xD]
+ adds r0, r6, 0
+ movs r1, 0x4
+ bl sub_80F79D8
+ add r1, sp, 0xC
+ ands r5, r0
+ ldrb r0, [r1, 0xC]
+ ands r4, r0
+ orrs r4, r5
+ strb r4, [r1, 0xC]
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_80F79D8
+ add r1, sp, 0xC
+ strb r0, [r1, 0xA]
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl sub_80F79D8
+ add r1, sp, 0xC
+ strb r0, [r1, 0xB]
+ adds r0, r1, 0
+ movs r1, 0xFF
+ movs r2, 0
+ bl sub_8002CF4
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl sub_80F79D8
+ add r1, sp, 0xC
+ ldrb r1, [r1, 0xB]
+ adds r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r7]
+ str r0, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ mov r0, r10
+ str r0, [sp, 0x8]
+ adds r0, r1, 0
+ adds r1, r6, 0
+ mov r2, r8
+ mov r3, r9
+ bl sub_810F7D8
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811009C: .4byte gUnknown_203ADF3
+_081100A0: .4byte gUnknown_841623D
+ thumb_func_end sub_810FF60
+
+ thumb_func_start sub_81100A4
+sub_81100A4: @ 81100A4
+ push {lr}
+ sub sp, 0xC
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r3, 24
+ lsrs r3, 24
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ movs r2, 0
+ str r2, [sp, 0x8]
+ movs r3, 0
+ bl sub_810FF60
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81100A4
+
+ thumb_func_start sub_81100C8
+sub_81100C8: @ 81100C8
+ push {r4,lr}
+ bl sub_810FA04
+ lsls r0, 24
+ asrs r4, r0, 24
+ movs r0, 0x2
+ negs r0, r0
+ cmp r4, r0
+ beq _081100DE
+ bl sub_81100E8
+_081100DE:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81100C8
+
+ thumb_func_start sub_81100E8
+sub_81100E8: @ 81100E8
+ push {r4,lr}
+ ldr r4, _08110100 @ =gUnknown_203ADF3
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_810F4D8
+ ldrb r0, [r4]
+ bl sub_8003E3C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08110100: .4byte gUnknown_203ADF3
+ thumb_func_end sub_81100E8
+
+ thumb_func_start sub_8110104
+sub_8110104: @ 8110104
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ ldr r4, [sp, 0x40]
+ ldr r5, [sp, 0x44]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0xC]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x10]
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0x14]
+ lsls r4, 24
+ lsrs r6, r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ str r5, [sp, 0x18]
+ mov r0, r9
+ movs r1, 0
+ bl sub_80F79D8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ mov r0, r9
+ movs r1, 0x1
+ bl sub_80F79D8
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x10
+ subs r1, r0
+ lsrs r0, r1, 31
+ adds r1, r0
+ asrs r1, 1
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x1C]
+ movs r5, 0
+ b _081101B8
+_08110164:
+ movs r4, 0
+ adds r1, r5, 0x1
+ mov r8, r1
+ cmp r4, r6
+ bcs _081101B2
+ ldr r1, [sp, 0x14]
+ adds r0, r1, 0
+ muls r0, r5
+ ldr r1, [sp, 0x1C]
+ adds r0, r1, r0
+ lsls r0, 24
+ lsrs r7, r0, 24
+_0811017C:
+ adds r0, r5, 0
+ muls r0, r6
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, [sp, 0x48]
+ adds r0, r1
+ ldr r2, [r0]
+ ldr r0, [sp, 0x10]
+ adds r3, r0, 0
+ muls r3, r4
+ add r3, r10
+ lsls r3, 24
+ lsrs r3, 24
+ str r7, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ ldr r0, [sp, 0xC]
+ mov r1, r9
+ bl sub_8002C48
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r6
+ bcc _0811017C
+_081101B2:
+ mov r1, r8
+ lsls r0, r1, 24
+ lsrs r5, r0, 24
+_081101B8:
+ ldr r0, [sp, 0x18]
+ cmp r5, r0
+ bcc _08110164
+ ldr r0, [sp, 0xC]
+ movs r1, 0x2
+ bl sub_8003F20
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8110104
+
+ thumb_func_start sub_81101D8
+sub_81101D8: @ 81101D8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ ldr r4, [sp, 0x3C]
+ ldr r5, [sp, 0x40]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0xC]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x10]
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0x14]
+ lsls r4, 24
+ lsrs r6, r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ str r5, [sp, 0x18]
+ mov r0, r10
+ movs r1, 0
+ bl sub_80F79D8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r5, 0
+ b _08110272
+_0811021C:
+ movs r4, 0
+ adds r1, r5, 0x1
+ mov r8, r1
+ cmp r4, r6
+ bcs _0811026C
+ ldr r1, [sp, 0x14]
+ adds r0, r1, 0
+ muls r0, r5
+ lsls r0, 24
+ lsrs r7, r0, 24
+_08110230:
+ adds r0, r5, 0
+ muls r0, r6
+ adds r0, r4
+ ldr r1, [sp, 0x48]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ lsls r0, 3
+ ldr r1, [sp, 0x44]
+ adds r0, r1
+ ldr r2, [r0]
+ ldr r0, [sp, 0x10]
+ adds r3, r0, 0
+ muls r3, r4
+ add r3, r9
+ lsls r3, 24
+ lsrs r3, 24
+ str r7, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ ldr r0, [sp, 0xC]
+ mov r1, r10
+ bl sub_8002C48
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r6
+ bcc _08110230
+_0811026C:
+ mov r1, r8
+ lsls r0, r1, 24
+ lsrs r5, r0, 24
+_08110272:
+ ldr r0, [sp, 0x18]
+ cmp r5, r0
+ bcc _0811021C
+ ldr r0, [sp, 0xC]
+ movs r1, 0x2
+ bl sub_8003F20
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81101D8
+
+ thumb_func_start sub_8110290
+sub_8110290: @ 8110290
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, [sp, 0x20]
+ mov r12, r4
+ ldr r4, [sp, 0x24]
+ mov r8, r4
+ ldr r4, [sp, 0x28]
+ mov r9, r4
+ ldr r4, [sp, 0x2C]
+ mov r10, r4
+ ldr r4, [sp, 0x30]
+ ldr r5, [sp, 0x34]
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r7, r5, 24
+ ldr r5, _081102E8 @ =gUnknown_203ADE4
+ movs r6, 0
+ strb r2, [r5]
+ strb r3, [r5, 0x1]
+ strb r6, [r5, 0x3]
+ subs r4, 0x1
+ strb r4, [r5, 0x4]
+ strb r0, [r5, 0x5]
+ strb r1, [r5, 0x6]
+ mov r0, r12
+ strb r0, [r5, 0x7]
+ mov r4, r8
+ strb r4, [r5, 0x8]
+ mov r0, r9
+ strb r0, [r5, 0x9]
+ mov r4, r10
+ strb r4, [r5, 0xA]
+ cmp r7, 0
+ blt _081102E4
+ movs r0, 0x4
+ ldrsb r0, [r5, r0]
+ cmp r7, r0
+ ble _081102EC
+_081102E4:
+ strb r6, [r5, 0x2]
+ b _081102EE
+ .align 2, 0
+_081102E8: .4byte gUnknown_203ADE4
+_081102EC:
+ strb r7, [r5, 0x2]
+_081102EE:
+ movs r0, 0
+ movs r1, 0
+ bl sub_8110450
+ ldr r0, _08110308 @ =gUnknown_203ADE4
+ ldrb r0, [r0, 0x2]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08110308: .4byte gUnknown_203ADE4
+ thumb_func_end sub_8110290
+
+ thumb_func_start sub_811030C
+sub_811030C: @ 811030C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ ldr r4, [sp, 0x38]
+ ldr r5, [sp, 0x3C]
+ ldr r6, [sp, 0x40]
+ ldr r7, [sp, 0x44]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ mov r8, r4
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r7, 24
+ adds r4, r7, 0
+ lsrs r4, 24
+ mov r9, r4
+ movs r7, 0x10
+ mov r10, r7
+ adds r4, r5, 0
+ muls r4, r6
+ lsls r4, 24
+ lsrs r4, 24
+ mov r7, r8
+ str r7, [sp]
+ mov r7, r10
+ str r7, [sp, 0x4]
+ str r5, [sp, 0x8]
+ str r6, [sp, 0xC]
+ str r4, [sp, 0x10]
+ mov r4, r9
+ str r4, [sp, 0x14]
+ bl sub_8110290
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811030C
+
+ thumb_func_start sub_811037C
+sub_811037C: @ 811037C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ mov r8, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r0, r1, 24
+ lsrs r7, r0, 24
+ ldr r5, _08110448 @ =gUnknown_203ADE4
+ ldrb r0, [r5, 0x6]
+ movs r1, 0
+ bl sub_80F7AC0
+ mov r9, r0
+ mov r1, r9
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ ldrb r0, [r5, 0x6]
+ movs r1, 0x1
+ bl sub_80F7AC0
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldrb r0, [r5, 0x9]
+ mov r10, r0
+ mov r0, r8
+ mov r1, r10
+ bl __umodsi3
+ ldrb r1, [r5, 0x7]
+ adds r4, r1, 0
+ muls r4, r0
+ ldrb r1, [r5]
+ adds r4, r1
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, r8
+ mov r1, r10
+ bl __udivsi3
+ ldrb r1, [r5, 0x8]
+ adds r3, r1, 0
+ muls r3, r0
+ ldrb r0, [r5, 0x1]
+ adds r3, r0
+ lsls r3, 24
+ lsrs r3, 24
+ ldrb r0, [r5, 0x5]
+ mov r1, r9
+ str r1, [sp]
+ str r6, [sp, 0x4]
+ movs r1, 0x11
+ adds r2, r4, 0
+ bl sub_8004378
+ ldrb r6, [r5, 0x9]
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl __umodsi3
+ ldrb r1, [r5, 0x7]
+ adds r4, r1, 0
+ muls r4, r0
+ ldrb r0, [r5]
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl __udivsi3
+ ldrb r1, [r5, 0x8]
+ adds r3, r1, 0
+ muls r3, r0
+ ldrb r1, [r5, 0x1]
+ adds r3, r1
+ lsls r3, 24
+ lsrs r3, 24
+ ldrb r0, [r5, 0x5]
+ ldrb r1, [r5, 0x6]
+ ldr r2, _0811044C @ =gUnknown_841623B
+ str r3, [sp]
+ movs r3, 0
+ str r3, [sp, 0x4]
+ str r3, [sp, 0x8]
+ adds r3, r4, 0
+ bl sub_8002C48
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08110448: .4byte gUnknown_203ADE4
+_0811044C: .4byte gUnknown_841623B
+ thumb_func_end sub_811037C
+
+ thumb_func_start sub_8110450
+sub_8110450: @ 8110450
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ ldr r1, _0811048C @ =gUnknown_203ADE4
+ ldrb r2, [r1, 0x2]
+ mov r8, r2
+ lsls r0, 24
+ asrs r6, r0, 24
+ adds r5, r1, 0
+ cmp r6, 0
+ beq _081104A6
+ movs r7, 0x2
+ ldrsb r7, [r5, r7]
+ ldrb r4, [r5, 0x9]
+ adds r0, r7, 0
+ adds r1, r4, 0
+ bl __modsi3
+ adds r0, r6
+ cmp r0, 0
+ bge _08110490
+ adds r0, r4, 0
+ adds r0, 0xFF
+ add r0, r8
+ b _081104A4
+ .align 2, 0
+_0811048C: .4byte gUnknown_203ADE4
+_08110490:
+ cmp r0, r4
+ blt _081104A0
+ adds r0, r7, 0
+ adds r1, r4, 0
+ bl __divsi3
+ muls r0, r4
+ b _081104A4
+_081104A0:
+ mov r1, r8
+ adds r0, r6, r1
+_081104A4:
+ strb r0, [r5, 0x2]
+_081104A6:
+ mov r2, r9
+ lsls r0, r2, 24
+ asrs r6, r0, 24
+ cmp r6, 0
+ beq _081104EA
+ movs r0, 0x2
+ ldrsb r0, [r5, r0]
+ ldrb r4, [r5, 0x9]
+ adds r1, r4, 0
+ bl __divsi3
+ adds r1, r0, r6
+ cmp r1, 0
+ bge _081104CE
+ ldrb r0, [r5, 0xA]
+ subs r0, 0x1
+ muls r0, r4
+ ldrb r1, [r5, 0x2]
+ adds r0, r1
+ b _081104E8
+_081104CE:
+ ldrb r0, [r5, 0xA]
+ cmp r1, r0
+ blt _081104E0
+ subs r0, 0x1
+ adds r1, r4, 0
+ muls r1, r0
+ ldrb r0, [r5, 0x2]
+ subs r0, r1
+ b _081104E8
+_081104E0:
+ adds r0, r4, 0
+ muls r0, r6
+ ldrb r2, [r5, 0x2]
+ adds r0, r2
+_081104E8:
+ strb r0, [r5, 0x2]
+_081104EA:
+ movs r1, 0x2
+ ldrsb r1, [r5, r1]
+ movs r0, 0x4
+ ldrsb r0, [r5, r0]
+ cmp r1, r0
+ bgt _08110500
+ ldrb r1, [r5, 0x2]
+ mov r0, r8
+ bl sub_811037C
+ b _08110504
+_08110500:
+ mov r0, r8
+ strb r0, [r5, 0x2]
+_08110504:
+ ldrb r0, [r5, 0x2]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8110450
+
+ thumb_func_start sub_8110514
+sub_8110514: @ 8110514
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ ldr r1, _0811058C @ =gUnknown_203ADE4
+ ldrb r7, [r1, 0x2]
+ lsls r0, 24
+ asrs r4, r0, 24
+ adds r5, r1, 0
+ cmp r4, 0
+ beq _08110548
+ movs r0, 0x2
+ ldrsb r0, [r5, r0]
+ ldrb r6, [r5, 0x9]
+ adds r1, r6, 0
+ bl __modsi3
+ adds r0, r4
+ cmp r0, 0
+ blt _08110548
+ cmp r0, r6
+ bge _08110548
+ adds r0, r4, r7
+ strb r0, [r5, 0x2]
+_08110548:
+ mov r1, r8
+ lsls r0, r1, 24
+ asrs r4, r0, 24
+ cmp r4, 0
+ beq _08110574
+ movs r0, 0x2
+ ldrsb r0, [r5, r0]
+ ldrb r6, [r5, 0x9]
+ adds r1, r6, 0
+ bl __divsi3
+ adds r0, r4
+ cmp r0, 0
+ blt _08110574
+ ldrb r1, [r5, 0xA]
+ cmp r0, r1
+ bge _08110574
+ adds r0, r6, 0
+ muls r0, r4
+ ldrb r1, [r5, 0x2]
+ adds r0, r1
+ strb r0, [r5, 0x2]
+_08110574:
+ movs r1, 0x2
+ ldrsb r1, [r5, r1]
+ movs r0, 0x4
+ ldrsb r0, [r5, r0]
+ cmp r1, r0
+ bgt _08110590
+ ldrb r1, [r5, 0x2]
+ adds r0, r7, 0
+ bl sub_811037C
+ b _08110592
+ .align 2, 0
+_0811058C: .4byte gUnknown_203ADE4
+_08110590:
+ strb r7, [r5, 0x2]
+_08110592:
+ ldrb r0, [r5, 0x2]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8110514
+
+ thumb_func_start sub_81105A0
+sub_81105A0: @ 81105A0
+ push {r4,lr}
+ ldr r4, _081105C0 @ =gUnknown_30030F0
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081105C8
+ movs r0, 0x5
+ bl sub_80722CC
+ ldr r0, _081105C4 @ =gUnknown_203ADE4
+ ldrb r0, [r0, 0x2]
+ lsls r0, 24
+ asrs r0, 24
+ b _08110648
+ .align 2, 0
+_081105C0: .4byte gUnknown_30030F0
+_081105C4: .4byte gUnknown_203ADE4
+_081105C8:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081105D6
+ movs r0, 0x1
+ negs r0, r0
+ b _08110648
+_081105D6:
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _081105EC
+ movs r0, 0x5
+ bl sub_80722CC
+ movs r1, 0x1
+ negs r1, r1
+ movs r0, 0
+ b _08110640
+_081105EC:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08110600
+ movs r0, 0x5
+ bl sub_80722CC
+ movs r0, 0
+ movs r1, 0x1
+ b _08110640
+_08110600:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _08110614
+ bl sub_80BF630
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08110620
+_08110614:
+ movs r0, 0x5
+ bl sub_80722CC
+ movs r0, 0x1
+ negs r0, r0
+ b _0811063E
+_08110620:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _08110636
+ bl sub_80BF630
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08110644
+_08110636:
+ movs r0, 0x5
+ bl sub_80722CC
+ movs r0, 0x1
+_0811063E:
+ movs r1, 0
+_08110640:
+ bl sub_8110450
+_08110644:
+ movs r0, 0x2
+ negs r0, r0
+_08110648:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81105A0
+
+ thumb_func_start sub_8110650
+sub_8110650: @ 8110650
+ push {r4-r6,lr}
+ ldr r5, _08110670 @ =gUnknown_203ADE4
+ ldrb r4, [r5, 0x2]
+ ldr r6, _08110674 @ =gUnknown_30030F0
+ ldrh r1, [r6, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08110678
+ movs r0, 0x5
+ bl sub_80722CC
+ movs r0, 0x2
+ ldrsb r0, [r5, r0]
+ b _081106EE
+ .align 2, 0
+_08110670: .4byte gUnknown_203ADE4
+_08110674: .4byte gUnknown_30030F0
+_08110678:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08110686
+ movs r0, 0x1
+ negs r0, r0
+ b _081106EE
+_08110686:
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08110696
+ movs r1, 0x1
+ negs r1, r1
+ movs r0, 0
+ b _081106D8
+_08110696:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081106A4
+ movs r0, 0
+ movs r1, 0x1
+ b _081106D8
+_081106A4:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _081106B8
+ bl sub_80BF630
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081106BE
+_081106B8:
+ movs r0, 0x1
+ negs r0, r0
+ b _081106D6
+_081106BE:
+ ldrh r1, [r6, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _081106D4
+ bl sub_80BF630
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _081106EA
+_081106D4:
+ movs r0, 0x1
+_081106D6:
+ movs r1, 0
+_081106D8:
+ bl sub_8110514
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ beq _081106EA
+ movs r0, 0x5
+ bl sub_80722CC
+_081106EA:
+ movs r0, 0x2
+ negs r0, r0
+_081106EE:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8110650
+
+ thumb_func_start sub_81106F4
+sub_81106F4: @ 81106F4
+ push {r4,r5,lr}
+ ldr r4, _08110714 @ =gUnknown_30030F0
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0811071C
+ movs r0, 0x5
+ bl sub_80722CC
+ ldr r0, _08110718 @ =gUnknown_203ADE4
+ ldrb r0, [r0, 0x2]
+ lsls r0, 24
+ asrs r0, 24
+ b _08110798
+ .align 2, 0
+_08110714: .4byte gUnknown_30030F0
+_08110718: .4byte gUnknown_203ADE4
+_0811071C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0811072A
+ movs r0, 0x1
+ negs r0, r0
+ b _08110798
+_0811072A:
+ ldrh r0, [r4, 0x30]
+ movs r5, 0xF0
+ adds r1, r5, 0
+ ands r1, r0
+ cmp r1, 0x40
+ bne _08110744
+ movs r0, 0x5
+ bl sub_80722CC
+ movs r1, 0x1
+ negs r1, r1
+ movs r0, 0
+ b _08110790
+_08110744:
+ cmp r1, 0x80
+ bne _08110754
+ movs r0, 0x5
+ bl sub_80722CC
+ movs r0, 0
+ movs r1, 0x1
+ b _08110790
+_08110754:
+ cmp r1, 0x20
+ beq _08110764
+ bl sub_80BF66C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08110770
+_08110764:
+ movs r0, 0x5
+ bl sub_80722CC
+ movs r0, 0x1
+ negs r0, r0
+ b _0811078E
+_08110770:
+ ldrh r1, [r4, 0x30]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0x10
+ beq _08110786
+ bl sub_80BF66C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08110794
+_08110786:
+ movs r0, 0x5
+ bl sub_80722CC
+ movs r0, 0x1
+_0811078E:
+ movs r1, 0
+_08110790:
+ bl sub_8110450
+_08110794:
+ movs r0, 0x2
+ negs r0, r0
+_08110798:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81106F4
+
+ thumb_func_start sub_81107A0
+sub_81107A0: @ 81107A0
+ push {r4-r6,lr}
+ ldr r6, _081107C0 @ =gUnknown_203ADE4
+ ldrb r4, [r6, 0x2]
+ ldr r5, _081107C4 @ =gUnknown_30030F0
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081107C8
+ movs r0, 0x5
+ bl sub_80722CC
+ movs r0, 0x2
+ ldrsb r0, [r6, r0]
+ b _0811083A
+ .align 2, 0
+_081107C0: .4byte gUnknown_203ADE4
+_081107C4: .4byte gUnknown_30030F0
+_081107C8:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081107D6
+ movs r0, 0x1
+ negs r0, r0
+ b _0811083A
+_081107D6:
+ ldrh r0, [r5, 0x30]
+ movs r6, 0xF0
+ adds r1, r6, 0
+ ands r1, r0
+ cmp r1, 0x40
+ bne _081107EA
+ movs r1, 0x1
+ negs r1, r1
+ movs r0, 0
+ b _08110824
+_081107EA:
+ cmp r1, 0x80
+ bne _081107F4
+ movs r0, 0
+ movs r1, 0x1
+ b _08110824
+_081107F4:
+ cmp r1, 0x20
+ beq _08110804
+ bl sub_80BF66C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0811080A
+_08110804:
+ movs r0, 0x1
+ negs r0, r0
+ b _08110822
+_0811080A:
+ ldrh r1, [r5, 0x30]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0x10
+ beq _08110820
+ bl sub_80BF66C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08110836
+_08110820:
+ movs r0, 0x1
+_08110822:
+ movs r1, 0
+_08110824:
+ bl sub_8110514
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ beq _08110836
+ movs r0, 0x5
+ bl sub_80722CC
+_08110836:
+ movs r0, 0x2
+ negs r0, r0
+_0811083A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81107A0
+
+ .align 2, 0 @ Don't pad with nop.