summaryrefslogtreecommitdiff
path: root/asm/battle_util.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/battle_util.s
first commit
Diffstat (limited to 'asm/battle_util.s')
-rw-r--r--asm/battle_util.s12796
1 files changed, 12796 insertions, 0 deletions
diff --git a/asm/battle_util.s b/asm/battle_util.s
new file mode 100644
index 000000000..89255c1e5
--- /dev/null
+++ b/asm/battle_util.s
@@ -0,0 +1,12796 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8016E24
+sub_8016E24: @ 8016E24
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0
+ cmp r0, 0xC
+ bhi _08016EC2
+ lsls r0, 2
+ ldr r1, _08016E3C @ =_08016E40
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08016E3C: .4byte _08016E40
+ .align 2, 0
+_08016E40:
+ .4byte _08016E74
+ .4byte _08016E80
+ .4byte _08016E8C
+ .4byte _08016EA8
+ .4byte _08016EC2
+ .4byte _08016EA8
+ .4byte _08016EC2
+ .4byte _08016E98
+ .4byte _08016EC2
+ .4byte _08016EC2
+ .4byte _08016E9C
+ .4byte _08016EB4
+ .4byte _08016EB8
+_08016E74:
+ ldr r0, _08016E7C @ =gUnknown_2023D6C
+ ldrb r2, [r0]
+ b _08016EC2
+ .align 2, 0
+_08016E7C: .4byte gUnknown_2023D6C
+_08016E80:
+ ldr r0, _08016E88 @ =gUnknown_2023D6B
+ ldrb r2, [r0]
+ b _08016EC2
+ .align 2, 0
+_08016E88: .4byte gUnknown_2023D6B
+_08016E8C:
+ ldr r0, _08016E94 @ =gUnknown_2023D6E
+ ldrb r2, [r0]
+ b _08016EC2
+ .align 2, 0
+_08016E94: .4byte gUnknown_2023D6E
+_08016E98:
+ movs r2, 0
+ b _08016EC2
+_08016E9C:
+ ldr r0, _08016EA4 @ =gUnknown_2023FC4
+ ldrb r2, [r0, 0x17]
+ b _08016EC2
+ .align 2, 0
+_08016EA4: .4byte gUnknown_2023FC4
+_08016EA8:
+ ldr r0, _08016EB0 @ =gUnknown_2023D6D
+ ldrb r2, [r0]
+ b _08016EC2
+ .align 2, 0
+_08016EB0: .4byte gUnknown_2023D6D
+_08016EB4:
+ movs r0, 0
+ b _08016EBA
+_08016EB8:
+ movs r0, 0x1
+_08016EBA:
+ bl sub_80751E8
+ lsls r0, 24
+ lsrs r2, r0, 24
+_08016EC2:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8016E24
+
+ thumb_func_start sub_8016EC8
+sub_8016EC8: @ 8016EC8
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r1, _08016EF8 @ =gUnknown_2023BE4
+ movs r4, 0x58
+ muls r0, r4
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+ mov r12, r1
+ cmp r0, 0x2E
+ bne _08016F7A
+ movs r3, 0
+ adds r0, r5, 0
+ muls r0, r4
+ adds r1, 0xC
+ adds r1, r0, r1
+ b _08016F04
+ .align 2, 0
+_08016EF8: .4byte gUnknown_2023BE4
+_08016EFC:
+ adds r1, 0x2
+ adds r3, 0x1
+ cmp r3, 0x3
+ bgt _08016F0A
+_08016F04:
+ ldrh r0, [r1]
+ cmp r0, r2
+ bne _08016EFC
+_08016F0A:
+ cmp r3, 0x4
+ beq _08016F7A
+ movs r7, 0x58
+ adds r2, r5, 0
+ muls r2, r7
+ adds r0, r3, r2
+ mov r6, r12
+ adds r6, 0x24
+ adds r1, r0, r6
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08016F26
+ subs r0, 0x1
+ strb r0, [r1]
+_08016F26:
+ mov r0, r12
+ adds r0, 0x50
+ adds r0, r2, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _08016F7A
+ ldr r1, _08016F84 @ =gUnknown_2023E0C
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _08016F88 @ =gUnknown_825E45C
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _08016F7A
+ ldr r4, _08016F8C @ =gUnknown_2023BC4
+ strb r5, [r4]
+ adds r1, r3, 0
+ adds r1, 0x9
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r4]
+ muls r0, r7
+ adds r0, r6
+ adds r0, r3
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_800DFF0
+ ldrb r0, [r4]
+ bl sub_8017248
+_08016F7A:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08016F84: .4byte gUnknown_2023E0C
+_08016F88: .4byte gUnknown_825E45C
+_08016F8C: .4byte gUnknown_2023BC4
+ thumb_func_end sub_8016EC8
+
+ thumb_func_start sub_8016F90
+sub_8016F90: @ 8016F90
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x4
+ mov r8, r0
+ adds r0, r5, 0
+ bl sub_80751C4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r4, 0
+ ldr r0, _080170B0 @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r4, r0
+ bge _08017038
+ ldr r1, _080170B4 @ =gUnknown_2023BE4
+ movs r0, 0x58
+ adds r7, r5, 0
+ muls r7, r0
+ adds r1, 0xC
+ mov r10, r1
+_08016FC6:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80751C4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r4, 0x1
+ cmp r9, r0
+ beq _0801702E
+ ldr r0, _080170B4 @ =gUnknown_2023BE4
+ movs r3, 0x58
+ adds r1, r4, 0
+ muls r1, r3
+ adds r1, r0
+ adds r1, 0x20
+ ldrb r1, [r1]
+ adds r4, r0, 0
+ cmp r1, 0x2E
+ bne _0801702E
+ movs r2, 0
+ adds r0, r5, 0
+ muls r0, r3
+ adds r1, r4, 0
+ adds r1, 0xC
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0x8F
+ lsls r1, 1
+ cmp r0, r1
+ beq _08017016
+ adds r3, r1, 0
+ mov r0, r10
+ adds r1, r7, r0
+_08017008:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _08017016
+ ldrh r0, [r1]
+ cmp r0, r3
+ bne _08017008
+_08017016:
+ cmp r2, 0x4
+ beq _0801702E
+ mov r8, r2
+ adds r1, r2, r7
+ adds r0, r4, 0
+ adds r0, 0x24
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0801702E
+ subs r0, 0x1
+ strb r0, [r1]
+_0801702E:
+ adds r4, r6, 0
+ ldr r0, _080170B0 @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08016FC6
+_08017038:
+ mov r1, r8
+ cmp r1, 0x4
+ beq _080170A0
+ ldr r6, _080170B4 @ =gUnknown_2023BE4
+ movs r3, 0x58
+ adds r0, r5, 0
+ muls r0, r3
+ adds r1, r6, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _080170A0
+ ldr r1, _080170B8 @ =gUnknown_2023E0C
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _080170BC @ =gUnknown_825E45C
+ mov r4, r8
+ lsls r0, r4, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _080170A0
+ ldr r4, _080170C0 @ =gUnknown_2023BC4
+ strb r5, [r4]
+ mov r1, r8
+ adds r1, 0x9
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r4]
+ muls r0, r3
+ adds r2, r6, 0
+ adds r2, 0x24
+ adds r0, r2
+ add r0, r8
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_800DFF0
+ ldrb r0, [r4]
+ bl sub_8017248
+_080170A0:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080170B0: .4byte gUnknown_2023BCC
+_080170B4: .4byte gUnknown_2023BE4
+_080170B8: .4byte gUnknown_2023E0C
+_080170BC: .4byte gUnknown_825E45C
+_080170C0: .4byte gUnknown_2023BC4
+ thumb_func_end sub_8016F90
+
+ thumb_func_start sub_80170C4
+sub_80170C4: @ 80170C4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r3, r0, 24
+ movs r6, 0x4
+ movs r1, 0
+ ldr r0, _080171BC @ =gUnknown_2023BCC
+ mov r8, r0
+ ldrb r0, [r0]
+ cmp r1, r0
+ bge _08017146
+ ldr r7, _080171C0 @ =gUnknown_2023BE4
+ movs r2, 0x58
+ mov r12, r2
+ mov r5, r12
+ muls r5, r3
+ adds r0, r7, 0
+ adds r0, 0xC
+ adds r2, r5, r0
+ mov r10, r2
+ mov r9, r5
+_080170F6:
+ mov r0, r12
+ muls r0, r1
+ adds r0, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r4, r1, 0x1
+ cmp r0, 0x2E
+ bne _0801713C
+ cmp r1, r3
+ beq _0801713C
+ movs r2, 0
+ mov r1, r10
+ ldrh r0, [r1]
+ cmp r0, 0xC3
+ beq _08017126
+ ldr r1, _080171C4 @ =gUnknown_2023BF0
+ add r1, r9
+_08017118:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _08017126
+ ldrh r0, [r1]
+ cmp r0, 0xC3
+ bne _08017118
+_08017126:
+ cmp r2, 0x4
+ beq _0801713C
+ adds r6, r2, 0
+ adds r0, r6, r5
+ ldr r2, _080171C8 @ =gUnknown_2023C08
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0801713C
+ subs r0, 0x1
+ strb r0, [r1]
+_0801713C:
+ adds r1, r4, 0
+ mov r0, r8
+ ldrb r0, [r0]
+ cmp r1, r0
+ blt _080170F6
+_08017146:
+ cmp r6, 0x4
+ beq _080171AA
+ ldr r7, _080171C0 @ =gUnknown_2023BE4
+ movs r5, 0x58
+ adds r0, r3, 0
+ muls r0, r5
+ adds r1, r7, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _080171AA
+ ldr r1, _080171CC @ =gUnknown_2023E0C
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _080171D0 @ =gUnknown_825E45C
+ lsls r0, r6, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _080171AA
+ ldr r4, _080171D4 @ =gUnknown_2023BC4
+ strb r3, [r4]
+ adds r1, r6, 0
+ adds r1, 0x9
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r2, r7, 0
+ adds r2, 0x24
+ adds r0, r2
+ adds r0, r6
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_800DFF0
+ ldrb r0, [r4]
+ bl sub_8017248
+_080171AA:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080171BC: .4byte gUnknown_2023BCC
+_080171C0: .4byte gUnknown_2023BE4
+_080171C4: .4byte gUnknown_2023BF0
+_080171C8: .4byte gUnknown_2023C08
+_080171CC: .4byte gUnknown_2023E0C
+_080171D0: .4byte gUnknown_825E45C
+_080171D4: .4byte gUnknown_2023BC4
+ thumb_func_end sub_80170C4
+
+ thumb_func_start sub_80171D8
+sub_80171D8: @ 80171D8
+ push {r4,r5,lr}
+ ldr r0, _08017208 @ =gUnknown_2022B4C
+ ldr r0, [r0]
+ movs r1, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08017218
+ movs r2, 0
+ ldr r4, _0801720C @ =gUnknown_2023BCC
+ ldrb r0, [r4]
+ cmp r2, r0
+ bge _08017236
+ ldr r3, _08017210 @ =gUnknown_2023BC8
+ ldr r5, _08017214 @ =gUnknown_825E45C
+_080171F4:
+ ldm r5!, {r1}
+ lsls r1, 28
+ ldr r0, [r3]
+ orrs r0, r1
+ str r0, [r3]
+ adds r2, 0x1
+ ldrb r0, [r4]
+ cmp r2, r0
+ blt _080171F4
+ b _08017236
+ .align 2, 0
+_08017208: .4byte gUnknown_2022B4C
+_0801720C: .4byte gUnknown_2023BCC
+_08017210: .4byte gUnknown_2023BC8
+_08017214: .4byte gUnknown_825E45C
+_08017218:
+ movs r2, 0
+ ldr r4, _0801723C @ =gUnknown_2023BCC
+ ldrb r0, [r4]
+ cmp r2, r0
+ bge _08017236
+ ldr r3, _08017240 @ =gUnknown_2023BC8
+ ldr r5, _08017244 @ =gUnknown_825E45C
+_08017226:
+ ldr r0, [r3]
+ ldm r5!, {r1}
+ orrs r0, r1
+ str r0, [r3]
+ adds r2, 0x1
+ ldrb r0, [r4]
+ cmp r2, r0
+ blt _08017226
+_08017236:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801723C: .4byte gUnknown_2023BCC
+_08017240: .4byte gUnknown_2023BC8
+_08017244: .4byte gUnknown_825E45C
+ thumb_func_end sub_80171D8
+
+ thumb_func_start sub_8017248
+sub_8017248: @ 8017248
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _08017270 @ =gUnknown_2022B4C
+ ldr r0, [r0]
+ movs r1, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0801727C
+ ldr r2, _08017274 @ =gUnknown_2023BC8
+ ldr r1, _08017278 @ =gUnknown_825E45C
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ b _0801728C
+ .align 2, 0
+_08017270: .4byte gUnknown_2022B4C
+_08017274: .4byte gUnknown_2023BC8
+_08017278: .4byte gUnknown_825E45C
+_0801727C:
+ ldr r2, _08017290 @ =gUnknown_2023BC8
+ ldr r1, _08017294 @ =gUnknown_825E45C
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r2]
+ ldr r0, [r0]
+ orrs r1, r0
+ str r1, [r2]
+_0801728C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08017290: .4byte gUnknown_2023BC8
+_08017294: .4byte gUnknown_825E45C
+ thumb_func_end sub_8017248
+
+ thumb_func_start sub_8017298
+sub_8017298: @ 8017298
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r4, 0
+ ldr r5, _080172AC @ =gUnknown_2023BC8
+ ldr r1, _080172B0 @ =gUnknown_825E45C
+ lsls r0, r7, 2
+ adds r6, r0, r1
+ b _080172C2
+ .align 2, 0
+_080172AC: .4byte gUnknown_2023BC8
+_080172B0: .4byte gUnknown_825E45C
+_080172B4:
+ lsls r0, r4, 2
+ ldr r1, [r6]
+ lsls r1, r0
+ ldr r0, [r5]
+ orrs r0, r1
+ str r0, [r5]
+ adds r4, 0x1
+_080172C2:
+ bl sub_800A088
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ blt _080172B4
+ ldr r2, _080172E4 @ =gUnknown_2023BC8
+ movs r1, 0x80
+ lsls r1, 21
+ lsls r1, r7
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080172E4: .4byte gUnknown_2023BC8
+ thumb_func_end sub_8017298
+
+ thumb_func_start sub_80172E8
+sub_80172E8: @ 80172E8
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08017338 @ =gUnknown_2023BE4
+ movs r2, 0x58
+ adds r3, r0, 0
+ muls r3, r2
+ adds r1, 0x50
+ adds r3, r1
+ ldr r1, [r3]
+ ldr r2, _0801733C @ =0xffffefff
+ ands r1, r2
+ ldr r2, _08017340 @ =0xfffff3ff
+ ands r1, r2
+ movs r2, 0x71
+ negs r2, r2
+ ands r1, r2
+ ldr r2, _08017344 @ =0xfffffcff
+ ands r1, r2
+ str r1, [r3]
+ ldr r1, _08017348 @ =gUnknown_2023DFC
+ lsls r2, r0, 2
+ adds r2, r1
+ ldr r1, [r2]
+ ldr r3, _0801734C @ =0xfffbff3f
+ ands r1, r3
+ str r1, [r2]
+ ldr r2, _08017350 @ =gUnknown_2023E0C
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r2, [r1, 0x11]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x11]
+ movs r0, 0
+ strb r0, [r1, 0x10]
+ bx lr
+ .align 2, 0
+_08017338: .4byte gUnknown_2023BE4
+_0801733C: .4byte 0xffffefff
+_08017340: .4byte 0xfffff3ff
+_08017344: .4byte 0xfffffcff
+_08017348: .4byte gUnknown_2023DFC
+_0801734C: .4byte 0xfffbff3f
+_08017350: .4byte gUnknown_2023E0C
+ thumb_func_end sub_80172E8
+
+ thumb_func_start sub_8017354
+sub_8017354: @ 8017354
+ push {lr}
+ lsls r0, 24
+ ldr r1, _080173A0 @ =gUnknown_2023E8C
+ lsrs r0, 20
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ lsrs r0, 7
+ cmp r0, 0
+ bne _0801739A
+ ldrb r2, [r1, 0x1]
+ lsls r0, r2, 30
+ cmp r0, 0
+ blt _0801739A
+ lsls r0, r2, 26
+ cmp r0, 0
+ blt _0801739A
+ lsls r0, r2, 25
+ cmp r0, 0
+ blt _0801739A
+ lsrs r0, r2, 7
+ cmp r0, 0
+ bne _0801739A
+ ldrb r1, [r1, 0x2]
+ lsls r0, r1, 31
+ cmp r0, 0
+ bne _0801739A
+ lsls r0, r1, 30
+ cmp r0, 0
+ blt _0801739A
+ lsls r0, r1, 29
+ cmp r0, 0
+ blt _0801739A
+ lsls r0, r2, 31
+ cmp r0, 0
+ beq _080173A4
+_0801739A:
+ movs r0, 0x1
+ b _080173A6
+ .align 2, 0
+_080173A0: .4byte gUnknown_2023E8C
+_080173A4:
+ movs r0, 0
+_080173A6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8017354
+
+ thumb_func_start sub_80173AC
+sub_80173AC: @ 80173AC
+ push {r4,lr}
+ adds r2, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r4, _080173CC @ =gUnknown_2023BC4
+ strb r1, [r4]
+ movs r0, 0
+ adds r1, r2, 0
+ bl sub_800E2D4
+ ldrb r0, [r4]
+ bl sub_8017248
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080173CC: .4byte gUnknown_2023BC4
+ thumb_func_end sub_80173AC
+
+ thumb_func_start sub_80173D0
+sub_80173D0: @ 80173D0
+ push {r4-r6,lr}
+ movs r3, 0
+ ldr r0, _08017424 @ =gUnknown_2023F4E
+ strb r3, [r0]
+ strb r3, [r0, 0x1]
+ movs r1, 0
+ ldr r0, _08017428 @ =gUnknown_2023BCC
+ ldrb r2, [r0]
+ adds r6, r0, 0
+ cmp r1, r2
+ bge _080173FE
+ ldr r5, _0801742C @ =gUnknown_825E45C
+ adds r4, r2, 0
+ ldr r2, _08017430 @ =gUnknown_2023BCE
+_080173EC:
+ ldrh r0, [r2]
+ lsls r0, 2
+ adds r0, r5
+ ldr r0, [r0]
+ orrs r3, r0
+ adds r2, 0x4
+ adds r1, 0x2
+ cmp r1, r4
+ blt _080173EC
+_080173FE:
+ movs r1, 0x1
+ adds r2, r6, 0
+ ldrb r0, [r2]
+ cmp r1, r0
+ bge _0801741E
+ ldr r5, _08017424 @ =gUnknown_2023F4E
+ movs r4, 0x2
+_0801740C:
+ adds r0, r1, 0
+ ands r0, r4
+ asrs r0, 1
+ adds r0, r5
+ strb r3, [r0]
+ adds r1, 0x2
+ ldrb r0, [r2]
+ cmp r1, r0
+ blt _0801740C
+_0801741E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08017424: .4byte gUnknown_2023F4E
+_08017428: .4byte gUnknown_2023BCC
+_0801742C: .4byte gUnknown_825E45C
+_08017430: .4byte gUnknown_2023BCE
+ thumb_func_end sub_80173D0
+
+ thumb_func_start sub_8017434
+sub_8017434: @ 8017434
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ adds r0, r5, 0
+ bl sub_80751C4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08017498
+ movs r0, 0x2
+ ands r0, r5
+ lsls r0, 24
+ lsrs r0, 25
+ mov r12, r0
+ ldr r1, _080174A4 @ =gUnknown_2023F4E
+ adds r0, r1
+ strb r4, [r0]
+ adds r5, r4, 0
+ ldr r0, _080174A8 @ =gUnknown_2023BCC
+ ldrb r2, [r0]
+ mov r8, r1
+ cmp r4, r2
+ bge _08017492
+ ldr r0, _080174AC @ =gUnknown_2023D70
+ ldrb r7, [r0]
+ ldr r1, _080174B0 @ =gUnknown_825E45C
+ adds r6, r2, 0
+ ldr r3, _080174B4 @ =gUnknown_2023BCE
+ adds r2, r1, 0
+_08017476:
+ ldr r0, [r2]
+ ands r0, r7
+ cmp r0, 0
+ bne _08017488
+ ldrh r0, [r3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ orrs r4, r0
+_08017488:
+ adds r3, 0x4
+ adds r2, 0x8
+ adds r5, 0x2
+ cmp r5, r6
+ blt _08017476
+_08017492:
+ mov r0, r12
+ add r0, r8
+ strb r4, [r0]
+_08017498:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080174A4: .4byte gUnknown_2023F4E
+_080174A8: .4byte gUnknown_2023BCC
+_080174AC: .4byte gUnknown_2023D70
+_080174B0: .4byte gUnknown_825E45C
+_080174B4: .4byte gUnknown_2023BCE
+ thumb_func_end sub_8017434
+
+ thumb_func_start sub_80174B8
+sub_80174B8: @ 80174B8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80751C4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080174D4
+ adds r0, r4, 0
+ bl sub_8017434
+ b _0801750A
+_080174D4:
+ movs r3, 0x1
+ ldr r5, _08017510 @ =gUnknown_2023BCC
+ ldrb r0, [r5]
+ cmp r3, r0
+ bge _0801750A
+ ldr r0, _08017514 @ =gUnknown_2023F4E
+ mov r12, r0
+ movs r7, 0x2
+ ldr r6, _08017518 @ =gUnknown_825E45C
+ ldr r1, _0801751C @ =gUnknown_2023BCE
+ lsls r0, r4, 1
+ adds r4, r0, r1
+_080174EC:
+ adds r2, r3, 0
+ ands r2, r7
+ asrs r2, 1
+ add r2, r12
+ ldrh r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ adds r3, 0x1
+ ldrb r0, [r5]
+ cmp r3, r0
+ blt _080174EC
+_0801750A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08017510: .4byte gUnknown_2023BCC
+_08017514: .4byte gUnknown_2023F4E
+_08017518: .4byte gUnknown_825E45C
+_0801751C: .4byte gUnknown_2023BCE
+ thumb_func_end sub_80174B8
+
+ thumb_func_start sub_8017520
+sub_8017520: @ 8017520
+ push {r4,lr}
+ ldr r1, _08017540 @ =gUnknown_2023FF4
+ ldr r1, [r1]
+ ldr r3, [r1, 0x8]
+ adds r4, r3, 0
+ adds r4, 0x20
+ ldrb r1, [r4]
+ adds r2, r1, 0x1
+ strb r2, [r4]
+ lsls r1, 24
+ lsrs r1, 22
+ adds r3, r1
+ str r0, [r3]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08017540: .4byte gUnknown_2023FF4
+ thumb_func_end sub_8017520
+
+ thumb_func_start sub_8017544
+sub_8017544: @ 8017544
+ ldr r0, _08017564 @ =gUnknown_2023FF4
+ ldr r0, [r0]
+ ldr r2, [r0, 0x8]
+ adds r3, r2, 0
+ adds r3, 0x20
+ ldrb r0, [r3]
+ adds r1, r0, 0x1
+ strb r1, [r3]
+ lsls r0, 24
+ lsrs r0, 22
+ adds r2, r0
+ ldr r0, _08017568 @ =gUnknown_2023D74
+ ldr r0, [r0]
+ str r0, [r2]
+ bx lr
+ .align 2, 0
+_08017564: .4byte gUnknown_2023FF4
+_08017568: .4byte gUnknown_2023D74
+ thumb_func_end sub_8017544
+
+ thumb_func_start sub_801756C
+sub_801756C: @ 801756C
+ ldr r3, _0801758C @ =gUnknown_2023D74
+ ldr r0, _08017590 @ =gUnknown_2023FF4
+ ldr r0, [r0]
+ ldr r1, [r0, 0x8]
+ adds r2, r1, 0
+ adds r2, 0x20
+ ldrb r0, [r2]
+ subs r0, 0x1
+ strb r0, [r2]
+ lsls r0, 24
+ lsrs r0, 22
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r3]
+ bx lr
+ .align 2, 0
+_0801758C: .4byte gUnknown_2023D74
+_08017590: .4byte gUnknown_2023FF4
+ thumb_func_end sub_801756C
+
+ thumb_func_start sub_8017594
+sub_8017594: @ 8017594
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0
+ ldr r2, _080176AC @ =gUnknown_2023BE4
+ ldr r1, _080176B0 @ =gUnknown_20233C4
+ ldr r5, _080176B4 @ =gUnknown_2023BC4
+ ldrb r3, [r5]
+ lsls r0, r3, 9
+ adds r1, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 1
+ movs r1, 0x58
+ muls r1, r3
+ adds r0, r1
+ adds r2, 0xC
+ adds r0, r2
+ ldrh r4, [r0]
+ ldr r1, _080176B8 @ =gUnknown_2023FE8
+ lsls r0, r3, 1
+ adds r0, 0xC8
+ ldr r1, [r1]
+ adds r1, r0
+ mov r8, r1
+ ldr r1, _080176BC @ =gUnknown_2023E0C
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0, 0x4]
+ cmp r0, r4
+ bne _080175F0
+ cmp r4, 0
+ beq _080175F0
+ ldr r0, _080176C0 @ =gUnknown_2023FC4
+ strb r3, [r0, 0x17]
+ ldr r0, _080176C4 @ =gUnknown_2023D4A
+ strh r4, [r0]
+ ldr r1, _080176C8 @ =gUnknown_2023D80
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080176CC @ =gUnknown_81D8C5A
+ str r1, [r0]
+ movs r6, 0x1
+_080175F0:
+ ldr r1, _080176D0 @ =gUnknown_2023D98
+ ldr r5, _080176B4 @ =gUnknown_2023BC4
+ ldrb r2, [r5]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r4, r0
+ bne _0801762C
+ cmp r4, 0xA5
+ beq _0801762C
+ ldr r1, _080176AC @ =gUnknown_2023BE4
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ bge _0801762C
+ adds r0, r2, 0
+ bl sub_80172E8
+ ldr r1, _080176C8 @ =gUnknown_2023D80
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080176D4 @ =gUnknown_81D8EB7
+ str r1, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0801762C:
+ ldr r2, _080176BC @ =gUnknown_2023E0C
+ ldr r3, _080176B4 @ =gUnknown_2023BC4
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x13]
+ lsls r0, 28
+ cmp r0, 0
+ beq _08017668
+ ldr r0, _080176D8 @ =gUnknown_8250C04
+ lsls r1, r4, 1
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _08017668
+ ldr r0, _080176C4 @ =gUnknown_2023D4A
+ strh r4, [r0]
+ ldr r1, _080176C8 @ =gUnknown_2023D80
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080176DC @ =gUnknown_81D8EC6
+ str r1, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_08017668:
+ ldr r5, _080176B4 @ =gUnknown_2023BC4
+ ldrb r0, [r5]
+ adds r1, r4, 0
+ bl sub_8017A64
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801768E
+ ldr r0, _080176C4 @ =gUnknown_2023D4A
+ strh r4, [r0]
+ ldr r1, _080176C8 @ =gUnknown_2023D80
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080176E0 @ =gUnknown_81D8F9F
+ str r1, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0801768E:
+ ldr r1, _080176AC @ =gUnknown_2023BE4
+ ldrb r2, [r5]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _080176E8
+ ldr r1, _080176E4 @ =gUnknown_2023F54
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r3, [r0, 0x7]
+ b _080176F2
+ .align 2, 0
+_080176AC: .4byte gUnknown_2023BE4
+_080176B0: .4byte gUnknown_20233C4
+_080176B4: .4byte gUnknown_2023BC4
+_080176B8: .4byte gUnknown_2023FE8
+_080176BC: .4byte gUnknown_2023E0C
+_080176C0: .4byte gUnknown_2023FC4
+_080176C4: .4byte gUnknown_2023D4A
+_080176C8: .4byte gUnknown_2023D80
+_080176CC: .4byte gUnknown_81D8C5A
+_080176D0: .4byte gUnknown_2023D98
+_080176D4: .4byte gUnknown_81D8EB7
+_080176D8: .4byte gUnknown_8250C04
+_080176DC: .4byte gUnknown_81D8EC6
+_080176E0: .4byte gUnknown_81D8F9F
+_080176E4: .4byte gUnknown_2023F54
+_080176E8:
+ ldrh r0, [r1, 0x2E]
+ bl sub_809A924
+ lsls r0, 24
+ lsrs r3, r0, 24
+_080176F2:
+ ldr r2, _08017774 @ =gUnknown_2023D6F
+ ldr r1, _08017778 @ =gUnknown_2023BC4
+ ldrb r0, [r1]
+ strb r0, [r2]
+ ldr r7, _0801777C @ =gUnknown_2023BE4
+ adds r5, r1, 0
+ cmp r3, 0x1D
+ bne _0801773A
+ mov r0, r8
+ ldrh r1, [r0]
+ adds r2, r1, 0
+ cmp r2, 0
+ beq _0801773A
+ ldr r0, _08017780 @ =0x0000ffff
+ cmp r2, r0
+ beq _0801773A
+ cmp r2, r4
+ beq _0801773A
+ ldr r0, _08017784 @ =gUnknown_2023D4A
+ strh r1, [r0]
+ ldr r2, _08017788 @ =gUnknown_2023D68
+ ldrb r1, [r5]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r2]
+ ldr r1, _0801778C @ =gUnknown_2023D80
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08017790 @ =gUnknown_81D963D
+ str r1, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0801773A:
+ ldr r0, _08017794 @ =gUnknown_20233C4
+ ldrb r2, [r5]
+ lsls r1, r2, 9
+ adds r0, 0x2
+ adds r1, r0
+ movs r0, 0x58
+ muls r0, r2
+ ldrb r1, [r1]
+ adds r0, r1
+ adds r1, r7, 0
+ adds r1, 0x24
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08017768
+ ldr r1, _0801778C @ =gUnknown_2023D80
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r1, _08017798 @ =gUnknown_81D8EA4
+ str r1, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_08017768:
+ adds r0, r6, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08017774: .4byte gUnknown_2023D6F
+_08017778: .4byte gUnknown_2023BC4
+_0801777C: .4byte gUnknown_2023BE4
+_08017780: .4byte 0x0000ffff
+_08017784: .4byte gUnknown_2023D4A
+_08017788: .4byte gUnknown_2023D68
+_0801778C: .4byte gUnknown_2023D80
+_08017790: .4byte gUnknown_81D963D
+_08017794: .4byte gUnknown_20233C4
+_08017798: .4byte gUnknown_81D8EA4
+ thumb_func_end sub_8017594
+
+ thumb_func_start sub_801779C
+sub_801779C: @ 801779C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ lsls r2, 24
+ lsrs r3, r2, 24
+ ldr r1, _080177E0 @ =gUnknown_2023FE8
+ lsls r0, r7, 1
+ adds r0, 0xC8
+ ldr r1, [r1]
+ adds r1, r0
+ str r1, [sp, 0x4]
+ ldr r1, _080177E4 @ =gUnknown_2023BE4
+ movs r0, 0x58
+ muls r0, r7
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _080177EC
+ ldr r2, _080177E8 @ =gUnknown_2023F54
+ lsls r1, r7, 3
+ subs r0, r1, r7
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x7]
+ str r0, [sp]
+ b _080177FE
+ .align 2, 0
+_080177E0: .4byte gUnknown_2023FE8
+_080177E4: .4byte gUnknown_2023BE4
+_080177E8: .4byte gUnknown_2023F54
+_080177EC:
+ ldrh r0, [r1, 0x2E]
+ str r3, [sp, 0x14]
+ bl sub_809A924
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ lsls r1, r7, 3
+ ldr r3, [sp, 0x14]
+_080177FE:
+ ldr r0, _08017978 @ =gUnknown_2023D6F
+ strb r7, [r0]
+ movs r0, 0
+ mov r9, r0
+ lsls r2, r7, 1
+ str r2, [sp, 0xC]
+ ldr r5, _0801797C @ =gUnknown_2023E0C
+ mov r12, r5
+ ldr r0, _08017980 @ =gUnknown_2023BE4
+ movs r2, 0x58
+ adds r6, r7, 0
+ muls r6, r2
+ str r6, [sp, 0x8]
+ ldr r2, _08017984 @ =gUnknown_2023BF0
+ adds r5, r6, r2
+ movs r6, 0
+ str r6, [sp, 0x10]
+ mov r10, r0
+ subs r0, r1, r7
+ lsls r0, 2
+ mov r8, r0
+ ldr r6, _08017988 @ =gUnknown_825E45C
+_0801782A:
+ ldrh r0, [r5]
+ cmp r0, 0
+ bne _08017840
+ movs r0, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _08017840
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_08017840:
+ ldr r0, [sp, 0x8]
+ add r0, r9
+ mov r1, r10
+ adds r1, 0x24
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08017860
+ movs r0, 0x2
+ ands r0, r3
+ cmp r0, 0
+ beq _08017860
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_08017860:
+ mov r1, r8
+ add r1, r12
+ ldrh r0, [r5]
+ ldrh r1, [r1, 0x4]
+ cmp r0, r1
+ bne _0801787C
+ movs r0, 0x4
+ ands r0, r3
+ cmp r0, 0
+ beq _0801787C
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_0801787C:
+ movs r0, 0x58
+ adds r2, r7, 0
+ muls r2, r0
+ ldr r1, [sp, 0x10]
+ adds r0, r1, r2
+ ldr r1, _08017984 @ =gUnknown_2023BF0
+ adds r0, r1
+ mov r12, r0
+ ldr r1, _0801798C @ =gUnknown_2023D98
+ ldr r0, [sp, 0xC]
+ adds r1, r0, r1
+ str r1, [sp, 0x18]
+ mov r1, r12
+ ldrh r1, [r1]
+ mov r12, r1
+ ldr r0, [sp, 0x18]
+ ldrh r0, [r0]
+ cmp r12, r0
+ bne _080178BE
+ movs r0, 0x8
+ ands r0, r3
+ cmp r0, 0
+ beq _080178BE
+ mov r0, r10
+ adds r0, 0x50
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bge _080178BE
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_080178BE:
+ ldr r0, _0801797C @ =gUnknown_2023E0C
+ add r0, r8
+ ldrb r0, [r0, 0x13]
+ lsls r0, 28
+ cmp r0, 0
+ beq _080178EC
+ movs r0, 0x10
+ ands r0, r3
+ cmp r0, 0
+ beq _080178EC
+ ldr r2, _08017990 @ =gUnknown_8250C04
+ ldrh r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _080178EC
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_080178EC:
+ ldrh r1, [r5]
+ adds r0, r7, 0
+ str r3, [sp, 0x14]
+ bl sub_8017A64
+ lsls r0, 24
+ ldr r3, [sp, 0x14]
+ cmp r0, 0
+ beq _0801790E
+ movs r0, 0x20
+ ands r0, r3
+ cmp r0, 0
+ beq _0801790E
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_0801790E:
+ ldr r1, _0801797C @ =gUnknown_2023E0C
+ mov r0, r8
+ adds r2, r0, r1
+ ldrb r0, [r2, 0xE]
+ lsls r0, 28
+ mov r12, r1
+ cmp r0, 0
+ beq _0801792E
+ ldrh r0, [r2, 0x6]
+ ldrh r1, [r5]
+ cmp r0, r1
+ beq _0801792E
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_0801792E:
+ ldr r2, [sp]
+ cmp r2, 0x1D
+ bne _08017950
+ ldr r0, [sp, 0x4]
+ ldrh r1, [r0]
+ cmp r1, 0
+ beq _08017950
+ ldr r0, _08017994 @ =0x0000ffff
+ cmp r1, r0
+ beq _08017950
+ ldrh r2, [r5]
+ cmp r1, r2
+ beq _08017950
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_08017950:
+ adds r6, 0x4
+ adds r5, 0x2
+ ldr r0, [sp, 0x10]
+ adds r0, 0x2
+ str r0, [sp, 0x10]
+ movs r1, 0x1
+ add r9, r1
+ mov r2, r9
+ cmp r2, 0x3
+ bgt _08017966
+ b _0801782A
+_08017966:
+ adds r0, r4, 0
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08017978: .4byte gUnknown_2023D6F
+_0801797C: .4byte gUnknown_2023E0C
+_08017980: .4byte gUnknown_2023BE4
+_08017984: .4byte gUnknown_2023BF0
+_08017988: .4byte gUnknown_825E45C
+_0801798C: .4byte gUnknown_2023D98
+_08017990: .4byte gUnknown_8250C04
+_08017994: .4byte 0x0000ffff
+ thumb_func_end sub_801779C
+
+ thumb_func_start sub_8017998
+sub_8017998: @ 8017998
+ push {r4-r6,lr}
+ ldr r5, _08017A04 @ =gUnknown_2023BC4
+ ldrb r0, [r5]
+ movs r1, 0
+ movs r2, 0xFF
+ bl sub_801779C
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0xF
+ bne _08017A40
+ ldr r0, _08017A08 @ =gUnknown_2023E8C
+ ldrb r1, [r5]
+ lsls r1, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r1, _08017A0C @ =gUnknown_2023D80
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08017A10 @ =gUnknown_81D8EA0
+ str r1, [r0]
+ ldr r0, _08017A14 @ =gUnknown_2022B4C
+ ldr r0, [r0]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08017A1C
+ ldrb r0, [r5]
+ bl sub_80751D8
+ adds r4, r0, 0
+ bl sub_8044EC8
+ movs r1, 0x1
+ eors r4, r1
+ movs r1, 0x2
+ ands r1, r0
+ orrs r4, r1
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_80751E8
+ ldr r2, _08017A18 @ =gUnknown_20233C4
+ ldrb r1, [r5]
+ lsls r1, 9
+ adds r2, 0x3
+ adds r1, r2
+ b _08017A50
+ .align 2, 0
+_08017A04: .4byte gUnknown_2023BC4
+_08017A08: .4byte gUnknown_2023E8C
+_08017A0C: .4byte gUnknown_2023D80
+_08017A10: .4byte gUnknown_81D8EA0
+_08017A14: .4byte gUnknown_2022B4C
+_08017A18: .4byte gUnknown_20233C4
+_08017A1C:
+ ldrb r0, [r5]
+ bl sub_80751D8
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80751E8
+ ldr r2, _08017A3C @ =gUnknown_20233C4
+ ldrb r1, [r5]
+ lsls r1, 9
+ adds r2, 0x3
+ adds r1, r2
+ b _08017A50
+ .align 2, 0
+_08017A3C: .4byte gUnknown_20233C4
+_08017A40:
+ ldr r0, _08017A60 @ =gUnknown_2023E8C
+ ldrb r1, [r5]
+ lsls r1, 4
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+_08017A50:
+ strb r0, [r1]
+ movs r0, 0
+ cmp r6, 0xF
+ bne _08017A5A
+ movs r0, 0x1
+_08017A5A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08017A60: .4byte gUnknown_2023E8C
+ thumb_func_end sub_8017998
+
+ thumb_func_start sub_8017A64
+sub_8017A64: @ 8017A64
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r5, r1, 16
+ movs r6, 0
+ bl sub_80751C4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r4, 0
+ ldr r0, _08017AF8 @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r6, r0
+ bge _08017AE8
+ ldr r7, _08017AFC @ =gUnknown_2023BF0
+ mov r8, r7
+_08017A8E:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80751C4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r4, 0x1
+ cmp r9, r0
+ beq _08017ADE
+ ldr r1, _08017B00 @ =gUnknown_2023DFC
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 6
+ ands r0, r1
+ cmp r0, 0
+ beq _08017ADE
+ movs r2, 0
+ movs r0, 0x58
+ adds r1, r4, 0
+ muls r1, r0
+ adds r0, r1, r7
+ ldrh r0, [r0]
+ cmp r5, r0
+ beq _08017AD4
+ mov r4, r8
+ adds r0, r1, r4
+_08017AC6:
+ adds r0, 0x2
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _08017ADE
+ ldrh r1, [r0]
+ cmp r5, r1
+ bne _08017AC6
+_08017AD4:
+ cmp r2, 0x3
+ bgt _08017ADE
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_08017ADE:
+ adds r4, r3, 0
+ ldr r0, _08017AF8 @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08017A8E
+_08017AE8:
+ adds r0, r6, 0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08017AF8: .4byte gUnknown_2023BCC
+_08017AFC: .4byte gUnknown_2023BF0
+_08017B00: .4byte gUnknown_2023DFC
+ thumb_func_end sub_8017A64
+
+ thumb_func_start sub_8017B04
+sub_8017B04: @ 8017B04
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r0, 0
+ mov r9, r0
+ ldr r1, _08017BA8 @ =gUnknown_2023D6B
+ mov r2, r9
+ strb r2, [r1]
+ ldr r0, _08017BAC @ =gUnknown_2023BCC
+ ldrb r4, [r0]
+ adds r6, r1, 0
+ mov r10, r0
+ ldr r7, _08017BB0 @ =gUnknown_2023D6C
+ ldr r3, _08017BB4 @ =gUnknown_2023FE8
+ mov r12, r3
+ cmp r9, r4
+ bcs _08017B58
+ ldr r2, _08017BB8 @ =gUnknown_2023D70
+ ldrb r1, [r2]
+ ldr r5, _08017BBC @ =gUnknown_825E45C
+ ldr r0, [r5]
+ ands r1, r0
+ cmp r1, 0
+ beq _08017B58
+ adds r3, r6, 0
+_08017B3A:
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r4
+ bcs _08017B58
+ ldrb r0, [r2]
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r5
+ ldr r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ bne _08017B3A
+_08017B58:
+ movs r0, 0
+ strb r0, [r7]
+ mov r0, r10
+ ldrb r4, [r0]
+ cmp r4, 0
+ beq _08017B92
+ ldr r2, _08017BB8 @ =gUnknown_2023D70
+ ldrb r1, [r2]
+ ldr r5, _08017BBC @ =gUnknown_825E45C
+ ldr r0, [r5]
+ ands r1, r0
+ cmp r1, 0
+ beq _08017B92
+ adds r3, r7, 0
+_08017B74:
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r4
+ bcs _08017B92
+ ldrb r0, [r2]
+ ldrb r1, [r7]
+ lsls r1, 2
+ adds r1, r5
+ ldr r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ bne _08017B74
+_08017B92:
+ mov r1, r12
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x3]
+ cmp r0, 0xA
+ bls _08017B9E
+ b _0801822A
+_08017B9E:
+ lsls r0, 2
+ ldr r1, _08017BC0 @ =_08017BC4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08017BA8: .4byte gUnknown_2023D6B
+_08017BAC: .4byte gUnknown_2023BCC
+_08017BB0: .4byte gUnknown_2023D6C
+_08017BB4: .4byte gUnknown_2023FE8
+_08017BB8: .4byte gUnknown_2023D70
+_08017BBC: .4byte gUnknown_825E45C
+_08017BC0: .4byte _08017BC4
+ .align 2, 0
+_08017BC4:
+ .4byte _08017BF0
+ .4byte _08017C76
+ .4byte _08017D3C
+ .4byte _08017E08
+ .4byte _08017EE4
+ .4byte _08017F9C
+ .4byte _08018050
+ .4byte _080180D4
+ .4byte _08018144
+ .4byte _0801819C
+ .4byte _08018220
+_08017BF0:
+ movs r5, 0
+ ldr r1, _08017C10 @ =gUnknown_2023BCC
+ mov r10, r1
+ ldrb r2, [r1]
+ cmp r5, r2
+ bge _08017C0A
+ ldr r2, _08017C14 @ =gUnknown_2023BDE
+_08017BFE:
+ adds r0, r5, r2
+ strb r5, [r0]
+ adds r5, 0x1
+ ldrb r3, [r1]
+ cmp r5, r3
+ blt _08017BFE
+_08017C0A:
+ movs r5, 0
+ b _08017C58
+ .align 2, 0
+_08017C10: .4byte gUnknown_2023BCC
+_08017C14: .4byte gUnknown_2023BDE
+_08017C18:
+ adds r4, r5, 0x1
+ adds r6, r4, 0
+ ldrb r1, [r1]
+ cmp r6, r1
+ bge _08017C56
+ ldr r7, _08017D14 @ =gUnknown_2023BDE
+ ldr r0, _08017D18 @ =gUnknown_2023BCC
+ mov r10, r0
+ lsls r1, r5, 24
+ mov r8, r1
+_08017C2C:
+ adds r0, r5, r7
+ ldrb r0, [r0]
+ adds r1, r4, r7
+ ldrb r1, [r1]
+ movs r2, 0
+ bl sub_8014CD8
+ lsls r0, 24
+ cmp r0, 0
+ beq _08017C4C
+ lsls r1, r4, 24
+ lsrs r1, 24
+ mov r2, r8
+ lsrs r0, r2, 24
+ bl sub_8014CA4
+_08017C4C:
+ adds r4, 0x1
+ ldr r0, _08017D18 @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08017C2C
+_08017C56:
+ adds r5, r6, 0
+_08017C58:
+ mov r1, r10
+ ldrb r0, [r1]
+ subs r0, 0x1
+ cmp r5, r0
+ blt _08017C18
+ ldr r2, _08017D1C @ =gUnknown_2023FE8
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x3]
+ adds r0, 0x1
+ strb r0, [r1, 0x3]
+ ldr r0, [r2]
+ adds r0, 0xDB
+ movs r1, 0
+ strb r1, [r0]
+ mov r12, r2
+_08017C76:
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, 0xDB
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bls _08017C84
+ b _08017F60
+_08017C84:
+ ldr r3, _08017D20 @ =gUnknown_2023BC4
+ mov r8, r3
+ movs r7, 0
+ ldr r6, _08017D24 @ =gUnknown_2023D6B
+ ldr r5, _08017D28 @ =gUnknown_2022AB8
+_08017C8E:
+ ldr r0, [r1]
+ adds r0, 0xDB
+ ldrb r4, [r0]
+ ldr r2, _08017D2C @ =gUnknown_2023DE4
+ lsls r1, r4, 1
+ adds r0, r1, r4
+ lsls r0, 2
+ adds r2, r0, r2
+ ldrb r0, [r2, 0x1]
+ strb r0, [r6]
+ mov r3, r8
+ strb r0, [r3]
+ ldr r0, _08017D30 @ =gUnknown_2023DDE
+ adds r3, r1, r0
+ ldrh r1, [r3]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08017CF0
+ ldrb r0, [r2]
+ subs r0, 0x1
+ strb r0, [r2]
+ movs r4, 0xFF
+ lsls r0, 24
+ cmp r0, 0
+ bne _08017CF0
+ ldrh r0, [r3]
+ ldr r2, _08017D34 @ =0x0000fffe
+ adds r1, r2, 0
+ ands r0, r1
+ strh r0, [r3]
+ ldr r0, _08017D38 @ =gUnknown_81D8B32
+ bl sub_801BBE4
+ movs r0, 0xFD
+ strb r0, [r5]
+ movs r0, 0x2
+ strb r0, [r5, 0x1]
+ movs r0, 0x73
+ strb r0, [r5, 0x2]
+ strb r7, [r5, 0x3]
+ ldrb r0, [r5, 0x4]
+ orrs r0, r4
+ strb r0, [r5, 0x4]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08017CF0:
+ ldr r2, _08017D1C @ =gUnknown_2023FE8
+ ldr r1, [r2]
+ adds r1, 0xDB
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ mov r12, r2
+ mov r3, r9
+ cmp r3, 0
+ beq _08017D06
+ b _08018232
+_08017D06:
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, 0xDB
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bls _08017C8E
+ b _08017F60
+ .align 2, 0
+_08017D14: .4byte gUnknown_2023BDE
+_08017D18: .4byte gUnknown_2023BCC
+_08017D1C: .4byte gUnknown_2023FE8
+_08017D20: .4byte gUnknown_2023BC4
+_08017D24: .4byte gUnknown_2023D6B
+_08017D28: .4byte gUnknown_2022AB8
+_08017D2C: .4byte gUnknown_2023DE4
+_08017D30: .4byte gUnknown_2023DDE
+_08017D34: .4byte 0x0000fffe
+_08017D38: .4byte gUnknown_81D8B32
+_08017D3C:
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, 0xDB
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bls _08017D4A
+ b _08017EA4
+_08017D4A:
+ movs r0, 0x2
+ mov r10, r0
+ movs r2, 0
+ mov r8, r2
+ ldr r7, _08017DE4 @ =gUnknown_2023D6B
+ ldr r5, _08017DE8 @ =gUnknown_2022AB8
+_08017D56:
+ ldr r0, [r1]
+ adds r0, 0xDB
+ ldrb r4, [r0]
+ ldr r2, _08017DEC @ =gUnknown_2023DE4
+ lsls r1, r4, 1
+ adds r0, r1, r4
+ lsls r0, 2
+ adds r2, r0, r2
+ ldrb r0, [r2, 0x3]
+ strb r0, [r7]
+ ldr r3, _08017DF0 @ =gUnknown_2023BC4
+ strb r0, [r3]
+ ldr r0, _08017DF4 @ =gUnknown_2023DDE
+ adds r3, r1, r0
+ ldrh r1, [r3]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08017DBE
+ ldrb r0, [r2, 0x2]
+ subs r0, 0x1
+ strb r0, [r2, 0x2]
+ movs r6, 0xFF
+ lsls r0, 24
+ cmp r0, 0
+ bne _08017DBE
+ ldrh r0, [r3]
+ ldr r2, _08017DF8 @ =0x0000fffd
+ adds r1, r2, 0
+ ands r0, r1
+ strh r0, [r3]
+ ldr r0, _08017DFC @ =gUnknown_81D8B32
+ bl sub_801BBE4
+ ldr r0, _08017E00 @ =gUnknown_2023E82
+ strb r4, [r0, 0x5]
+ movs r0, 0xFD
+ strb r0, [r5]
+ mov r3, r10
+ strb r3, [r5, 0x1]
+ movs r0, 0x71
+ strb r0, [r5, 0x2]
+ mov r0, r8
+ strb r0, [r5, 0x3]
+ ldrb r0, [r5, 0x4]
+ orrs r0, r6
+ strb r0, [r5, 0x4]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08017DBE:
+ ldr r2, _08017E04 @ =gUnknown_2023FE8
+ ldr r1, [r2]
+ adds r1, 0xDB
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ mov r12, r2
+ mov r1, r9
+ cmp r1, 0
+ beq _08017DD4
+ b _08018232
+_08017DD4:
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, 0xDB
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bls _08017D56
+ b _08017EA4
+ .align 2, 0
+_08017DE4: .4byte gUnknown_2023D6B
+_08017DE8: .4byte gUnknown_2022AB8
+_08017DEC: .4byte gUnknown_2023DE4
+_08017DF0: .4byte gUnknown_2023BC4
+_08017DF4: .4byte gUnknown_2023DDE
+_08017DF8: .4byte 0x0000fffd
+_08017DFC: .4byte gUnknown_81D8B32
+_08017E00: .4byte gUnknown_2023E82
+_08017E04: .4byte gUnknown_2023FE8
+_08017E08:
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, 0xDB
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bhi _08017EA4
+ ldr r0, _08017EC0 @ =gUnknown_2023BC4
+ mov r10, r0
+ movs r2, 0
+ mov r8, r2
+ ldr r7, _08017EC4 @ =gUnknown_2023D6B
+ ldr r5, _08017EC8 @ =gUnknown_2022AB8
+_08017E20:
+ ldr r0, [r1]
+ adds r0, 0xDB
+ ldrb r4, [r0]
+ ldr r1, _08017ECC @ =gUnknown_2023DE4
+ lsls r3, r4, 1
+ adds r0, r3, r4
+ lsls r0, 2
+ adds r1, r0, r1
+ ldrb r0, [r1, 0x5]
+ strb r0, [r7]
+ mov r2, r10
+ strb r0, [r2]
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _08017E82
+ subs r0, 0x1
+ strb r0, [r1, 0x4]
+ movs r6, 0xFF
+ lsls r0, 24
+ cmp r0, 0
+ bne _08017E82
+ ldr r2, _08017ED0 @ =gUnknown_2023DDE
+ adds r2, r3, r2
+ ldrh r0, [r2]
+ ldr r3, _08017ED4 @ =0x0000feff
+ adds r1, r3, 0
+ ands r0, r1
+ strh r0, [r2]
+ ldr r0, _08017ED8 @ =gUnknown_81D8B32
+ bl sub_801BBE4
+ ldr r0, _08017EDC @ =gUnknown_2023E82
+ strb r4, [r0, 0x5]
+ movs r0, 0xFD
+ strb r0, [r5]
+ movs r0, 0x2
+ strb r0, [r5, 0x1]
+ movs r0, 0x36
+ strb r0, [r5, 0x2]
+ mov r0, r8
+ strb r0, [r5, 0x3]
+ ldrb r0, [r5, 0x4]
+ orrs r0, r6
+ strb r0, [r5, 0x4]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08017E82:
+ ldr r2, _08017EE0 @ =gUnknown_2023FE8
+ ldr r1, [r2]
+ adds r1, 0xDB
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ mov r12, r2
+ mov r1, r9
+ cmp r1, 0
+ beq _08017E98
+ b _08018232
+_08017E98:
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, 0xDB
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bls _08017E20
+_08017EA4:
+ mov r2, r9
+ cmp r2, 0
+ beq _08017EAC
+ b _08018232
+_08017EAC:
+ mov r3, r12
+ ldr r0, [r3]
+ ldrb r1, [r0, 0x3]
+ adds r1, 0x1
+ strb r1, [r0, 0x3]
+ ldr r0, [r3]
+ adds r0, 0xDB
+ strb r2, [r0]
+ b _0801822A
+ .align 2, 0
+_08017EC0: .4byte gUnknown_2023BC4
+_08017EC4: .4byte gUnknown_2023D6B
+_08017EC8: .4byte gUnknown_2022AB8
+_08017ECC: .4byte gUnknown_2023DE4
+_08017ED0: .4byte gUnknown_2023DDE
+_08017ED4: .4byte 0x0000feff
+_08017ED8: .4byte gUnknown_81D8B32
+_08017EDC: .4byte gUnknown_2023E82
+_08017EE0: .4byte gUnknown_2023FE8
+_08017EE4:
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, 0xDB
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bhi _08017F60
+ ldr r6, _08017F80 @ =gUnknown_2023BC4
+ ldr r5, _08017F84 @ =gUnknown_2023D6B
+_08017EF4:
+ ldr r0, [r1]
+ adds r0, 0xDB
+ ldrb r4, [r0]
+ ldr r2, _08017F88 @ =gUnknown_2023DE4
+ lsls r1, r4, 1
+ adds r0, r1, r4
+ lsls r0, 2
+ adds r2, r0, r2
+ ldrb r0, [r2, 0x7]
+ strb r0, [r5]
+ strb r0, [r6]
+ ldr r0, _08017F8C @ =gUnknown_2023DDE
+ adds r3, r1, r0
+ ldrh r1, [r3]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08017F3E
+ ldrb r0, [r2, 0x6]
+ subs r0, 0x1
+ strb r0, [r2, 0x6]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08017F3E
+ ldrh r0, [r3]
+ ldr r2, _08017F90 @ =0x0000ffdf
+ adds r1, r2, 0
+ ands r0, r1
+ strh r0, [r3]
+ ldr r0, _08017F94 @ =gUnknown_81D8B43
+ bl sub_801BBE4
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08017F3E:
+ ldr r2, _08017F98 @ =gUnknown_2023FE8
+ ldr r1, [r2]
+ adds r1, 0xDB
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ mov r12, r2
+ mov r3, r9
+ cmp r3, 0
+ beq _08017F54
+ b _08018232
+_08017F54:
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, 0xDB
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bls _08017EF4
+_08017F60:
+ mov r0, r9
+ cmp r0, 0
+ beq _08017F68
+ b _08018232
+_08017F68:
+ mov r1, r12
+ ldr r0, [r1]
+ ldrb r1, [r0, 0x3]
+ adds r1, 0x1
+ strb r1, [r0, 0x3]
+ mov r2, r12
+ ldr r0, [r2]
+ adds r0, 0xDB
+ mov r3, r9
+ strb r3, [r0]
+ b _0801822A
+ .align 2, 0
+_08017F80: .4byte gUnknown_2023BC4
+_08017F84: .4byte gUnknown_2023D6B
+_08017F88: .4byte gUnknown_2023DE4
+_08017F8C: .4byte gUnknown_2023DDE
+_08017F90: .4byte 0x0000ffdf
+_08017F94: .4byte gUnknown_81D8B43
+_08017F98: .4byte gUnknown_2023FE8
+_08017F9C:
+ mov r2, r12
+ ldr r0, [r2]
+ adds r0, 0xDB
+ ldr r1, _08018030 @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _0801801C
+ ldr r4, _08018034 @ =gUnknown_2023BC4
+ ldr r5, _08018038 @ =gUnknown_2023BDE
+_08017FB0:
+ ldr r0, [r2]
+ adds r0, 0xDB
+ ldrb r0, [r0]
+ adds r0, r5
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldr r0, _0801803C @ =gUnknown_2023F20
+ adds r0, 0x20
+ ldrb r2, [r4]
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08017FF8
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08017FF8
+ ldr r1, _08018040 @ =gUnknown_2023BE4
+ ldrb r2, [r4]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _08017FF8
+ ldr r0, _08018044 @ =gUnknown_2023D6C
+ strb r2, [r0]
+ ldr r0, _08018048 @ =gUnknown_81D8ED5
+ bl sub_801BBE4
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08017FF8:
+ ldr r2, _0801804C @ =gUnknown_2023FE8
+ ldr r1, [r2]
+ adds r1, 0xDB
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ mov r12, r2
+ mov r3, r9
+ cmp r3, 0
+ beq _0801800E
+ b _08018232
+_0801800E:
+ ldr r0, [r2]
+ adds r0, 0xDB
+ ldr r1, _08018030 @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08017FB0
+_0801801C:
+ mov r0, r9
+ cmp r0, 0
+ beq _08018024
+ b _08018232
+_08018024:
+ mov r2, r12
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x3]
+ adds r0, 0x1
+ strb r0, [r1, 0x3]
+ b _0801822A
+ .align 2, 0
+_08018030: .4byte gUnknown_2023BCC
+_08018034: .4byte gUnknown_2023BC4
+_08018038: .4byte gUnknown_2023BDE
+_0801803C: .4byte gUnknown_2023F20
+_08018040: .4byte gUnknown_2023BE4
+_08018044: .4byte gUnknown_2023D6C
+_08018048: .4byte gUnknown_81D8ED5
+_0801804C: .4byte gUnknown_2023FE8
+_08018050:
+ ldr r3, _08018088 @ =gUnknown_2023F1C
+ ldrh r2, [r3]
+ movs r0, 0x7
+ ands r0, r2
+ cmp r0, 0
+ bne _0801805E
+ b _080181FC
+_0801805E:
+ movs r0, 0x4
+ ands r0, r2
+ cmp r0, 0
+ bne _080180AA
+ ldr r1, _0801808C @ =gUnknown_2023F20
+ adds r1, 0x28
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801809C
+ ldr r0, _08018090 @ =0x0000fffe
+ ands r0, r2
+ ldr r1, _08018094 @ =0x0000fffd
+ ands r0, r1
+ strh r0, [r3]
+ ldr r1, _08018098 @ =gUnknown_2023E82
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ b _080180C8
+ .align 2, 0
+_08018088: .4byte gUnknown_2023F1C
+_0801808C: .4byte gUnknown_2023F20
+_08018090: .4byte 0x0000fffe
+_08018094: .4byte 0x0000fffd
+_08018098: .4byte gUnknown_2023E82
+_0801809C:
+ movs r0, 0x2
+ ands r0, r2
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _080180B6
+ b _080180C4
+_080180AA:
+ movs r0, 0x2
+ ands r0, r2
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _080180C4
+_080180B6:
+ ldr r1, _080180C0 @ =gUnknown_2023E82
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _080180C8
+ .align 2, 0
+_080180C0: .4byte gUnknown_2023E82
+_080180C4:
+ ldr r0, _080180CC @ =gUnknown_2023E82
+ strb r1, [r0, 0x5]
+_080180C8:
+ ldr r0, _080180D0 @ =gUnknown_81D8A64
+ b _080181EE
+ .align 2, 0
+_080180CC: .4byte gUnknown_2023E82
+_080180D0: .4byte gUnknown_81D8A64
+_080180D4:
+ ldr r3, _08018108 @ =gUnknown_2023F1C
+ ldrh r2, [r3]
+ movs r0, 0x18
+ ands r0, r2
+ cmp r0, 0
+ bne _080180E2
+ b _080181FC
+_080180E2:
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ bne _0801811C
+ ldr r1, _0801810C @ =gUnknown_2023F20
+ adds r1, 0x28
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801811C
+ ldr r0, _08018110 @ =0x0000fff7
+ ands r0, r2
+ strh r0, [r3]
+ ldr r1, _08018114 @ =gUnknown_2023D74
+ ldr r0, _08018118 @ =gUnknown_81D8B01
+ b _08018120
+ .align 2, 0
+_08018108: .4byte gUnknown_2023F1C
+_0801810C: .4byte gUnknown_2023F20
+_08018110: .4byte 0x0000fff7
+_08018114: .4byte gUnknown_2023D74
+_08018118: .4byte gUnknown_81D8B01
+_0801811C:
+ ldr r1, _08018134 @ =gUnknown_2023D74
+ ldr r0, _08018138 @ =gUnknown_81D8A7F
+_08018120:
+ str r0, [r1]
+ adds r3, r1, 0
+ ldr r1, _0801813C @ =gUnknown_2023FC4
+ movs r2, 0
+ movs r0, 0xC
+ strb r0, [r1, 0x10]
+ ldr r0, _08018140 @ =gUnknown_2023E82
+ strb r2, [r0, 0x5]
+ b _080181EC
+ .align 2, 0
+_08018134: .4byte gUnknown_2023D74
+_08018138: .4byte gUnknown_81D8A7F
+_0801813C: .4byte gUnknown_2023FC4
+_08018140: .4byte gUnknown_2023E82
+_08018144:
+ ldr r3, _08018174 @ =gUnknown_2023F1C
+ ldrh r2, [r3]
+ movs r0, 0x60
+ ands r0, r2
+ cmp r0, 0
+ beq _080181FC
+ movs r0, 0x40
+ ands r0, r2
+ cmp r0, 0
+ bne _08018188
+ ldr r1, _08018178 @ =gUnknown_2023F20
+ adds r1, 0x28
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08018188
+ ldr r0, _0801817C @ =0x0000ffdf
+ ands r0, r2
+ strh r0, [r3]
+ ldr r1, _08018180 @ =gUnknown_2023D74
+ ldr r0, _08018184 @ =gUnknown_81D8B18
+ b _0801818C
+ .align 2, 0
+_08018174: .4byte gUnknown_2023F1C
+_08018178: .4byte gUnknown_2023F20
+_0801817C: .4byte 0x0000ffdf
+_08018180: .4byte gUnknown_2023D74
+_08018184: .4byte gUnknown_81D8B18
+_08018188:
+ ldr r1, _08018194 @ =gUnknown_2023D74
+ ldr r0, _08018198 @ =gUnknown_81D8B0A
+_0801818C:
+ str r0, [r1]
+ adds r3, r1, 0
+ b _080181EC
+ .align 2, 0
+_08018194: .4byte gUnknown_2023D74
+_08018198: .4byte gUnknown_81D8B0A
+_0801819C:
+ ldr r3, _080181C4 @ =gUnknown_2023F1C
+ ldrh r2, [r3]
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _080181FC
+ ldr r1, _080181C8 @ =gUnknown_2023F20
+ adds r1, 0x28
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _080181D8
+ ldr r0, _080181CC @ =0x0000ff7f
+ ands r0, r2
+ strh r0, [r3]
+ ldr r1, _080181D0 @ =gUnknown_2023D74
+ ldr r0, _080181D4 @ =gUnknown_81D8B01
+ b _080181DC
+ .align 2, 0
+_080181C4: .4byte gUnknown_2023F1C
+_080181C8: .4byte gUnknown_2023F20
+_080181CC: .4byte 0x0000ff7f
+_080181D0: .4byte gUnknown_2023D74
+_080181D4: .4byte gUnknown_81D8B01
+_080181D8:
+ ldr r1, _0801820C @ =gUnknown_2023D74
+ ldr r0, _08018210 @ =gUnknown_81D8A7F
+_080181DC:
+ str r0, [r1]
+ adds r3, r1, 0
+ ldr r1, _08018214 @ =gUnknown_2023FC4
+ movs r0, 0xD
+ strb r0, [r1, 0x10]
+ ldr r1, _08018218 @ =gUnknown_2023E82
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+_080181EC:
+ ldr r0, [r3]
+_080181EE:
+ bl sub_801BBE4
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_080181FC:
+ ldr r2, _0801821C @ =gUnknown_2023FE8
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x3]
+ adds r0, 0x1
+ strb r0, [r1, 0x3]
+ mov r12, r2
+ b _0801822A
+ .align 2, 0
+_0801820C: .4byte gUnknown_2023D74
+_08018210: .4byte gUnknown_81D8A7F
+_08018214: .4byte gUnknown_2023FC4
+_08018218: .4byte gUnknown_2023E82
+_0801821C: .4byte gUnknown_2023FE8
+_08018220:
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801822A:
+ mov r3, r9
+ cmp r3, 0
+ bne _08018232
+ b _08017B92
+_08018232:
+ ldr r0, _08018250 @ =gUnknown_3004F84
+ ldr r1, [r0]
+ ldr r0, _08018254 @ =sub_8013BD4
+ eors r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08018250: .4byte gUnknown_3004F84
+_08018254: .4byte sub_8013BD4
+ thumb_func_end sub_8017B04
+
+ thumb_func_start sub_8018258
+sub_8018258: @ 8018258
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r0, 0
+ mov r9, r0
+ ldr r2, _0801828C @ =gUnknown_2023DD0
+ ldr r0, [r2]
+ ldr r1, _08018290 @ =0x01000020
+ orrs r0, r1
+ str r0, [r2]
+ ldr r5, _08018294 @ =gUnknown_2023FE8
+ ldr r2, [r5]
+ ldr r0, _08018298 @ =gUnknown_2023BCC
+ ldrb r1, [r2, 0x1]
+ adds r7, r5, 0
+ mov r8, r0
+ ldrb r3, [r0]
+ cmp r1, r3
+ bcc _08018288
+ bl _08018C6C
+_08018288:
+ bl _08018C62
+ .align 2, 0
+_0801828C: .4byte gUnknown_2023DD0
+_08018290: .4byte 0x01000020
+_08018294: .4byte gUnknown_2023FE8
+_08018298: .4byte gUnknown_2023BCC
+_0801829C:
+ ldr r3, _080182D0 @ =gUnknown_2023BC4
+ ldr r4, _080182D4 @ =gUnknown_2023D6B
+ ldr r1, _080182D8 @ =gUnknown_2023BDE
+ ldr r5, [r5]
+ ldrb r0, [r5, 0x1]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r4]
+ strb r0, [r3]
+ ldr r0, _080182DC @ =gUnknown_2023D70
+ ldrb r1, [r0]
+ ldr r2, _080182E0 @ =gUnknown_825E45C
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ adds r6, r3, 0
+ cmp r1, 0
+ beq _080182E4
+ ldrb r0, [r5, 0x1]
+ adds r0, 0x1
+ strb r0, [r5, 0x1]
+ bl _08018C50
+ .align 2, 0
+_080182D0: .4byte gUnknown_2023BC4
+_080182D4: .4byte gUnknown_2023D6B
+_080182D8: .4byte gUnknown_2023BDE
+_080182DC: .4byte gUnknown_2023D70
+_080182E0: .4byte gUnknown_825E45C
+_080182E4:
+ ldrb r0, [r5]
+ cmp r0, 0x13
+ bls _080182EE
+ bl _08018C46
+_080182EE:
+ lsls r0, 2
+ ldr r1, _080182F8 @ =_080182FC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080182F8: .4byte _080182FC
+ .align 2, 0
+_080182FC:
+ .4byte _0801834C
+ .4byte _080183AC
+ .4byte _080183CA
+ .4byte _080183FA
+ .4byte _08018478
+ .4byte _080184C0
+ .4byte _08018540
+ .4byte _08018588
+ .4byte _080185EC
+ .4byte _08018634
+ .4byte _08018794
+ .4byte _080188B0
+ .4byte _08018958
+ .4byte _08018A1C
+ .4byte _08018AD0
+ .4byte _08018AF0
+ .4byte _08018B3C
+ .4byte _08018B6C
+ .4byte _080183E2
+ .4byte _08018C38
+_0801834C:
+ ldr r1, _0801839C @ =gUnknown_2023DFC
+ ldrb r3, [r6]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 3
+ ands r0, r1
+ cmp r0, 0
+ bne _08018364
+ bl _08018C12
+_08018364:
+ ldr r0, _080183A0 @ =gUnknown_2023BE4
+ movs r1, 0x58
+ muls r1, r3
+ adds r0, r1, r0
+ ldrh r2, [r0, 0x28]
+ ldrh r5, [r0, 0x2C]
+ cmp r2, r5
+ bne _08018378
+ bl _08018C12
+_08018378:
+ cmp r2, 0
+ bne _08018380
+ bl _08018C12
+_08018380:
+ ldr r1, _080183A4 @ =gUnknown_2023D50
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 4
+ str r0, [r1]
+ cmp r0, 0
+ bne _08018390
+ movs r0, 0x1
+ str r0, [r1]
+_08018390:
+ ldr r0, [r1]
+ negs r0, r0
+ str r0, [r1]
+ ldr r0, _080183A8 @ =gUnknown_81D8F0C
+ bl _08018C04
+ .align 2, 0
+_0801839C: .4byte gUnknown_2023DFC
+_080183A0: .4byte gUnknown_2023BE4
+_080183A4: .4byte gUnknown_2023D50
+_080183A8: .4byte gUnknown_81D8F0C
+_080183AC:
+ ldrb r1, [r6]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl sub_8019F18
+ lsls r0, 24
+ cmp r0, 0
+ bne _080183C6
+ bl _08018C12
+_080183C6:
+ bl _08018C08
+_080183CA:
+ ldrb r1, [r6]
+ movs r0, 0x1
+ movs r2, 0
+ bl sub_801BC68
+ lsls r0, 24
+ cmp r0, 0
+ bne _080183DE
+ bl _08018C12
+_080183DE:
+ bl _08018C08
+_080183E2:
+ ldrb r1, [r6]
+ movs r0, 0x1
+ movs r2, 0x1
+ bl sub_801BC68
+ lsls r0, 24
+ cmp r0, 0
+ bne _080183F6
+ bl _08018C12
+_080183F6:
+ bl _08018C08
+_080183FA:
+ ldr r0, _08018460 @ =gUnknown_2023DFC
+ ldrb r2, [r6]
+ lsls r1, r2, 2
+ adds r1, r0
+ ldr r1, [r1]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _08018410
+ bl _08018C12
+_08018410:
+ ldr r3, _08018464 @ =gUnknown_2023BE4
+ movs r5, 0x3
+ ands r5, r1
+ movs r1, 0x58
+ adds r0, r5, 0
+ muls r0, r1
+ adds r0, r3
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _08018428
+ bl _08018C12
+_08018428:
+ adds r0, r2, 0
+ muls r0, r1
+ adds r0, r3
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _08018438
+ bl _08018C12
+_08018438:
+ ldr r0, _08018468 @ =gUnknown_2023D6C
+ strb r5, [r0]
+ ldr r2, _0801846C @ =gUnknown_2023D50
+ ldrb r0, [r6]
+ muls r0, r1
+ adds r0, r3
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 3
+ str r0, [r2]
+ cmp r0, 0
+ bne _08018452
+ movs r0, 0x1
+ str r0, [r2]
+_08018452:
+ ldr r1, _08018470 @ =gUnknown_2023FC4
+ strb r5, [r1, 0x10]
+ ldrb r0, [r4]
+ strb r0, [r1, 0x11]
+ ldr r0, _08018474 @ =gUnknown_81D8B4D
+ b _08018C04
+ .align 2, 0
+_08018460: .4byte gUnknown_2023DFC
+_08018464: .4byte gUnknown_2023BE4
+_08018468: .4byte gUnknown_2023D6C
+_0801846C: .4byte gUnknown_2023D50
+_08018470: .4byte gUnknown_2023FC4
+_08018474: .4byte gUnknown_81D8B4D
+_08018478:
+ ldr r2, _080184B4 @ =gUnknown_2023BE4
+ ldrb r1, [r6]
+ movs r0, 0x58
+ adds r3, r1, 0
+ muls r3, r0
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _08018494
+ b _08018C12
+_08018494:
+ adds r1, r3, r2
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ bne _0801849E
+ b _08018C12
+_0801849E:
+ ldr r2, _080184B8 @ =gUnknown_2023D50
+ ldrh r0, [r1, 0x2C]
+ lsrs r0, 3
+ str r0, [r2]
+ cmp r0, 0
+ bne _080184AE
+ movs r0, 0x1
+ str r0, [r2]
+_080184AE:
+ ldr r0, _080184BC @ =gUnknown_81D9053
+ b _08018C04
+ .align 2, 0
+_080184B4: .4byte gUnknown_2023BE4
+_080184B8: .4byte gUnknown_2023D50
+_080184BC: .4byte gUnknown_81D9053
+_080184C0:
+ ldr r4, _08018534 @ =gUnknown_2023BE4
+ ldrb r0, [r6]
+ movs r7, 0x58
+ mov r8, r7
+ mov r2, r8
+ muls r2, r0
+ adds r3, r4, 0
+ adds r3, 0x4C
+ adds r0, r2, r3
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080184DE
+ b _08018C12
+_080184DE:
+ adds r1, r2, r4
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ bne _080184E8
+ b _08018C12
+_080184E8:
+ ldr r5, _08018538 @ =gUnknown_2023D50
+ ldrh r0, [r1, 0x2C]
+ lsrs r0, 4
+ str r0, [r5]
+ cmp r0, 0
+ bne _080184F8
+ movs r0, 0x1
+ str r0, [r5]
+_080184F8:
+ ldrb r0, [r6]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r2, r0, r3
+ ldr r1, [r2]
+ movs r4, 0xF0
+ lsls r4, 4
+ adds r0, r1, 0
+ ands r0, r4
+ cmp r0, r4
+ beq _08018518
+ movs r7, 0x80
+ lsls r7, 1
+ adds r0, r1, r7
+ str r0, [r2]
+_08018518:
+ ldrb r0, [r6]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r3
+ ldr r0, [r0]
+ ands r0, r4
+ lsrs r0, 8
+ ldr r1, [r5]
+ muls r0, r1
+ str r0, [r5]
+ ldr r0, _0801853C @ =gUnknown_81D9053
+ b _08018C04
+ .align 2, 0
+_08018534: .4byte gUnknown_2023BE4
+_08018538: .4byte gUnknown_2023D50
+_0801853C: .4byte gUnknown_81D9053
+_08018540:
+ ldr r2, _0801857C @ =gUnknown_2023BE4
+ ldrb r1, [r6]
+ movs r0, 0x58
+ adds r3, r1, 0
+ muls r3, r0
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0801855C
+ b _08018C12
+_0801855C:
+ adds r1, r3, r2
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ bne _08018566
+ b _08018C12
+_08018566:
+ ldr r2, _08018580 @ =gUnknown_2023D50
+ ldrh r0, [r1, 0x2C]
+ lsrs r0, 3
+ str r0, [r2]
+ cmp r0, 0
+ bne _08018576
+ movs r0, 0x1
+ str r0, [r2]
+_08018576:
+ ldr r0, _08018584 @ =gUnknown_81D9075
+ b _08018C04
+ .align 2, 0
+_0801857C: .4byte gUnknown_2023BE4
+_08018580: .4byte gUnknown_2023D50
+_08018584: .4byte gUnknown_81D9075
+_08018588:
+ ldr r4, _080185D4 @ =gUnknown_2023BE4
+ ldrb r1, [r6]
+ movs r0, 0x58
+ muls r1, r0
+ adds r0, r4, 0
+ adds r0, 0x50
+ adds r5, r1, r0
+ ldr r2, [r5]
+ movs r0, 0x80
+ lsls r0, 20
+ ands r0, r2
+ cmp r0, 0
+ bne _080185A4
+ b _08018C12
+_080185A4:
+ adds r3, r1, r4
+ ldrh r0, [r3, 0x28]
+ cmp r0, 0
+ bne _080185AE
+ b _08018C12
+_080185AE:
+ adds r0, r4, 0
+ adds r0, 0x4C
+ adds r0, r1, r0
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _080185E0
+ ldr r1, _080185D8 @ =gUnknown_2023D50
+ ldrh r0, [r3, 0x2C]
+ lsrs r0, 2
+ str r0, [r1]
+ cmp r0, 0
+ bne _080185CE
+ movs r0, 0x1
+ str r0, [r1]
+_080185CE:
+ ldr r0, _080185DC @ =gUnknown_81D9155
+ b _08018C04
+ .align 2, 0
+_080185D4: .4byte gUnknown_2023BE4
+_080185D8: .4byte gUnknown_2023D50
+_080185DC: .4byte gUnknown_81D9155
+_080185E0:
+ ldr r0, _080185E8 @ =0xf7ffffff
+ ands r2, r0
+ str r2, [r5]
+ b _08018C12
+ .align 2, 0
+_080185E8: .4byte 0xf7ffffff
+_080185EC:
+ ldr r2, _08018628 @ =gUnknown_2023BE4
+ ldrb r1, [r6]
+ movs r0, 0x58
+ adds r3, r1, 0
+ muls r3, r0
+ adds r0, r2, 0
+ adds r0, 0x50
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 21
+ ands r0, r1
+ cmp r0, 0
+ bne _0801860A
+ b _08018C12
+_0801860A:
+ adds r1, r3, r2
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ bne _08018614
+ b _08018C12
+_08018614:
+ ldr r2, _0801862C @ =gUnknown_2023D50
+ ldrh r0, [r1, 0x2C]
+ lsrs r0, 2
+ str r0, [r2]
+ cmp r0, 0
+ bne _08018624
+ movs r0, 0x1
+ str r0, [r2]
+_08018624:
+ ldr r0, _08018630 @ =gUnknown_81D9166
+ b _08018C04
+ .align 2, 0
+_08018628: .4byte gUnknown_2023BE4
+_0801862C: .4byte gUnknown_2023D50
+_08018630: .4byte gUnknown_81D9166
+_08018634:
+ ldr r3, _080186D4 @ =gUnknown_2023BE4
+ mov r8, r3
+ ldrb r0, [r6]
+ movs r3, 0x58
+ adds r1, r0, 0
+ muls r1, r3
+ movs r5, 0x50
+ add r5, r8
+ mov r10, r5
+ adds r4, r1, r5
+ ldr r2, [r4]
+ movs r5, 0xE0
+ lsls r5, 8
+ adds r0, r2, 0
+ ands r0, r5
+ cmp r0, 0
+ bne _08018658
+ b _08018C12
+_08018658:
+ mov r7, r8
+ adds r0, r1, r7
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _08018664
+ b _08018C12
+_08018664:
+ ldr r1, _080186D8 @ =0xffffe000
+ adds r0, r2, r1
+ str r0, [r4]
+ ldrb r4, [r6]
+ adds r0, r4, 0
+ muls r0, r3
+ add r0, r10
+ ldr r0, [r0]
+ ands r0, r5
+ cmp r0, 0
+ beq _080186F4
+ ldr r1, _080186DC @ =gUnknown_2023FC4
+ ldr r0, _080186E0 @ =gUnknown_2023FE8
+ ldr r2, [r0]
+ lsls r0, r4, 1
+ adds r0, r2
+ ldrb r0, [r0, 0x4]
+ strb r0, [r1, 0x10]
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r0, r2
+ ldrb r0, [r0, 0x5]
+ strb r0, [r1, 0x11]
+ ldr r1, _080186E4 @ =gUnknown_2022AB8
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r0, r2
+ ldrb r0, [r0, 0x4]
+ strb r0, [r1, 0x2]
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r0, r2
+ ldrb r0, [r0, 0x5]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _080186E8 @ =gUnknown_2023D74
+ ldr r0, _080186EC @ =gUnknown_81D9124
+ str r0, [r1]
+ ldr r2, _080186F0 @ =gUnknown_2023D50
+ ldrb r0, [r6]
+ muls r0, r3
+ add r0, r8
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 4
+ str r0, [r2]
+ cmp r0, 0
+ bne _08018720
+ movs r0, 0x1
+ str r0, [r2]
+ b _08018720
+ .align 2, 0
+_080186D4: .4byte gUnknown_2023BE4
+_080186D8: .4byte 0xffffe000
+_080186DC: .4byte gUnknown_2023FC4
+_080186E0: .4byte gUnknown_2023FE8
+_080186E4: .4byte gUnknown_2022AB8
+_080186E8: .4byte gUnknown_2023D74
+_080186EC: .4byte gUnknown_81D9124
+_080186F0: .4byte gUnknown_2023D50
+_080186F4:
+ ldr r2, _08018724 @ =gUnknown_2022AB8
+ movs r0, 0xFD
+ strb r0, [r2]
+ movs r0, 0x2
+ strb r0, [r2, 0x1]
+ ldrb r1, [r6]
+ ldr r0, _08018728 @ =gUnknown_2023FE8
+ ldr r3, [r0]
+ lsls r1, 1
+ adds r1, r3
+ ldrb r0, [r1, 0x4]
+ strb r0, [r2, 0x2]
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r0, r3
+ ldrb r0, [r0, 0x5]
+ strb r0, [r2, 0x3]
+ movs r0, 0xFF
+ strb r0, [r2, 0x4]
+ ldr r1, _0801872C @ =gUnknown_2023D74
+ ldr r0, _08018730 @ =gUnknown_81D9136
+ str r0, [r1]
+_08018720:
+ ldr r0, [r1]
+ b _08018C04
+ .align 2, 0
+_08018724: .4byte gUnknown_2022AB8
+_08018728: .4byte gUnknown_2023FE8
+_0801872C: .4byte gUnknown_2023D74
+_08018730: .4byte gUnknown_81D9136
+_08018734:
+ movs r0, 0x8
+ negs r0, r0
+ ands r3, r0
+ str r3, [r2]
+ ldrb r0, [r6]
+ mov r2, r8
+ muls r2, r0
+ mov r0, r10
+ adds r0, 0x50
+ adds r2, r0
+ ldr r0, [r2]
+ ldr r1, _08018784 @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r1, _08018788 @ =gUnknown_2023E82
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ ldr r0, _0801878C @ =gUnknown_81D904A
+ bl sub_801BBE4
+ ldr r4, _08018790 @ =gUnknown_2023BC4
+ ldrb r0, [r6]
+ strb r0, [r4]
+ ldrb r0, [r4]
+ mov r3, r8
+ muls r3, r0
+ adds r0, r3, 0
+ add r0, r9
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl sub_800DFF0
+ ldrb r0, [r4]
+ bl sub_8017248
+ b _080187FC
+ .align 2, 0
+_08018784: .4byte 0xf7ffffff
+_08018788: .4byte gUnknown_2023E82
+_0801878C: .4byte gUnknown_81D904A
+_08018790: .4byte gUnknown_2023BC4
+_08018794:
+ ldr r2, _08018810 @ =gUnknown_2023BE4
+ ldrb r1, [r6]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r2, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0x70
+ ands r1, r0
+ adds r7, r2, 0
+ cmp r1, 0
+ beq _0801889E
+ movs r0, 0
+ strb r0, [r4]
+ mov r5, r8
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _080187FC
+ mov r10, r7
+ adds r6, r4, 0
+ movs r1, 0x58
+ mov r8, r1
+ movs r3, 0x4C
+ adds r3, r7
+ mov r9, r3
+ str r0, [sp, 0x4]
+ movs r5, 0x7
+ mov r12, r5
+_080187CE:
+ ldrb r4, [r6]
+ mov r1, r8
+ muls r1, r4
+ mov r0, r9
+ adds r2, r1, r0
+ ldr r3, [r2]
+ adds r0, r3, 0
+ mov r5, r12
+ ands r0, r5
+ cmp r0, 0
+ beq _080187EE
+ adds r0, r1, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x2B
+ bne _08018734
+_080187EE:
+ adds r0, r4, 0x1
+ strb r0, [r6]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [sp, 0x4]
+ cmp r0, r1
+ bcc _080187CE
+_080187FC:
+ ldr r2, _08018814 @ =gUnknown_2023D6B
+ ldr r1, _08018818 @ =gUnknown_2023BCC
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _0801881C
+ movs r3, 0x2
+ mov r9, r3
+ b _08018C4C
+ .align 2, 0
+_08018810: .4byte gUnknown_2023BE4
+_08018814: .4byte gUnknown_2023D6B
+_08018818: .4byte gUnknown_2023BCC
+_0801881C:
+ ldr r5, _08018854 @ =gUnknown_2023BC4
+ ldrb r0, [r5]
+ strb r0, [r2]
+ ldr r2, _08018858 @ =gUnknown_2023BE4
+ ldrb r0, [r5]
+ movs r7, 0x58
+ adds r1, r0, 0
+ muls r1, r7
+ adds r6, r2, 0
+ adds r6, 0x50
+ adds r1, r6
+ ldr r0, [r1]
+ subs r0, 0x10
+ str r0, [r1]
+ ldrb r0, [r5]
+ bl sub_8017354
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _08018860
+ ldrb r0, [r5]
+ bl sub_80172E8
+ ldr r1, _0801885C @ =gUnknown_2023E82
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _08018894
+ .align 2, 0
+_08018854: .4byte gUnknown_2023BC4
+_08018858: .4byte gUnknown_2023BE4
+_0801885C: .4byte gUnknown_2023E82
+_08018860:
+ ldrb r3, [r5]
+ adds r0, r3, 0
+ muls r0, r7
+ adds r2, r0, r6
+ ldr r0, [r2]
+ movs r1, 0x70
+ ands r0, r1
+ cmp r0, 0
+ beq _08018888
+ ldr r0, _08018884 @ =gUnknown_2023E82
+ strb r4, [r0, 0x5]
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 5
+ orrs r0, r1
+ str r0, [r2]
+ b _08018894
+ .align 2, 0
+_08018884: .4byte gUnknown_2023E82
+_08018888:
+ ldr r1, _080188A8 @ =gUnknown_2023E82
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ adds r0, r3, 0
+ bl sub_80172E8
+_08018894:
+ ldr r0, _080188AC @ =gUnknown_81D90BC
+ bl sub_801BBE4
+ movs r5, 0x1
+ mov r9, r5
+_0801889E:
+ mov r7, r9
+ cmp r7, 0x2
+ bne _080188A6
+ b _08018C46
+_080188A6:
+ b _08018C12
+ .align 2, 0
+_080188A8: .4byte gUnknown_2023E82
+_080188AC: .4byte gUnknown_81D90BC
+_080188B0:
+ ldr r1, _080188E8 @ =gUnknown_2023BE4
+ ldrb r0, [r6]
+ movs r7, 0x58
+ muls r0, r7
+ adds r5, r1, 0
+ adds r5, 0x50
+ adds r2, r0, r5
+ ldr r1, [r2]
+ movs r4, 0xC0
+ lsls r4, 4
+ adds r0, r1, 0
+ ands r0, r4
+ cmp r0, 0
+ bne _080188CE
+ b _08018C12
+_080188CE:
+ ldr r3, _080188EC @ =0xfffffc00
+ adds r0, r1, r3
+ str r0, [r2]
+ ldrb r0, [r6]
+ bl sub_8017354
+ lsls r0, 24
+ cmp r0, 0
+ beq _080188F0
+ ldrb r0, [r6]
+ bl sub_80172E8
+ b _08018C12
+ .align 2, 0
+_080188E8: .4byte gUnknown_2023BE4
+_080188EC: .4byte 0xfffffc00
+_080188F0:
+ ldrb r0, [r6]
+ muls r0, r7
+ adds r2, r0, r5
+ ldr r1, [r2]
+ adds r0, r1, 0
+ ands r0, r4
+ cmp r0, 0
+ beq _08018902
+ b _08018C12
+_08018902:
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ bne _0801890E
+ b _08018C12
+_0801890E:
+ ldr r0, _0801894C @ =0xffffefff
+ ands r1, r0
+ str r1, [r2]
+ ldrb r0, [r6]
+ muls r0, r7
+ adds r0, r5
+ ldr r0, [r0]
+ movs r4, 0x7
+ ands r0, r4
+ cmp r0, 0
+ beq _08018926
+ b _08018C12
+_08018926:
+ ldr r1, _08018950 @ =gUnknown_2023E82
+ movs r0, 0x47
+ strb r0, [r1, 0x3]
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_801FF20
+ ldrb r0, [r6]
+ muls r0, r7
+ adds r0, r5
+ ldr r0, [r0]
+ ands r0, r4
+ cmp r0, 0
+ bne _08018944
+ b _08018C08
+_08018944:
+ ldr r0, _08018954 @ =gUnknown_81D90C5
+ bl sub_801BBE4
+ b _08018C08
+ .align 2, 0
+_0801894C: .4byte 0xffffefff
+_08018950: .4byte gUnknown_2023E82
+_08018954: .4byte gUnknown_81D90C5
+_08018958:
+ ldr r0, _080189D8 @ =gUnknown_2023E0C
+ ldrb r3, [r6]
+ lsls r1, r3, 3
+ subs r1, r3
+ lsls r1, 2
+ adds r5, r1, r0
+ ldrb r1, [r5, 0xB]
+ lsls r1, 28
+ adds r7, r0, 0
+ cmp r1, 0
+ bne _08018970
+ b _08018C12
+_08018970:
+ movs r4, 0
+ ldr r2, _080189DC @ =gUnknown_2023BE4
+ movs r0, 0x58
+ adds r1, r3, 0
+ muls r1, r0
+ adds r2, 0xC
+ adds r1, r2
+ ldrh r0, [r5, 0x4]
+ ldrh r1, [r1]
+ cmp r0, r1
+ beq _080189AE
+ mov r12, r7
+ mov r8, r2
+ adds r5, r6, 0
+ movs r3, 0x58
+_0801898E:
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _080189AE
+ ldrb r2, [r5]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ add r1, r12
+ lsls r0, r4, 1
+ muls r2, r3
+ adds r0, r2
+ add r0, r8
+ ldrh r1, [r1, 0x4]
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _0801898E
+_080189AE:
+ cmp r4, 0x4
+ bne _080189E0
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r7
+ movs r1, 0
+ strh r1, [r0, 0x4]
+ ldrb r0, [r6]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r7
+ ldrb r2, [r1, 0xB]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0xB]
+ b _08018C12
+ .align 2, 0
+_080189D8: .4byte gUnknown_2023E0C
+_080189DC: .4byte gUnknown_2023BE4
+_080189E0:
+ ldrb r0, [r6]
+ lsls r2, r0, 3
+ subs r2, r0
+ lsls r2, 2
+ adds r2, r7
+ ldrb r3, [r2, 0xB]
+ lsls r1, r3, 28
+ lsrs r1, 28
+ subs r1, 0x1
+ movs r0, 0xF
+ ands r1, r0
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0xB]
+ adds r2, r1, 0
+ cmp r2, 0
+ beq _08018A08
+ b _08018C12
+_08018A08:
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r7
+ strh r2, [r0, 0x4]
+ ldr r0, _08018A18 @ =gUnknown_81D8C5E
+ b _08018C04
+ .align 2, 0
+_08018A18: .4byte gUnknown_81D8C5E
+_08018A1C:
+ ldr r3, _08018A68 @ =gUnknown_2023E0C
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r2, r0, r3
+ ldrb r5, [r2, 0xE]
+ lsls r4, r5, 28
+ cmp r4, 0
+ bne _08018A32
+ b _08018C12
+_08018A32:
+ ldr r7, _08018A6C @ =gUnknown_2023BE4
+ mov r8, r7
+ ldrb r0, [r2, 0xC]
+ lsls r0, 1
+ movs r7, 0x58
+ muls r1, r7
+ adds r0, r1
+ mov r1, r8
+ adds r1, 0xC
+ adds r0, r1
+ ldrh r0, [r0]
+ ldrh r1, [r2, 0x6]
+ cmp r0, r1
+ beq _08018A70
+ movs r0, 0
+ strh r0, [r2, 0x6]
+ ldrb r0, [r6]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r1, 0xE]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0xE]
+ b _08018C12
+ .align 2, 0
+_08018A68: .4byte gUnknown_2023E0C
+_08018A6C: .4byte gUnknown_2023BE4
+_08018A70:
+ lsrs r1, r4, 28
+ subs r1, 0x1
+ movs r0, 0xF
+ ands r1, r0
+ movs r4, 0x10
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r5
+ orrs r0, r1
+ strb r0, [r2, 0xE]
+ cmp r1, 0
+ beq _08018AA6
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ muls r1, r7
+ ldrb r0, [r0, 0xC]
+ adds r1, r0
+ mov r0, r8
+ adds r0, 0x24
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08018AA6
+ b _08018C12
+_08018AA6:
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0
+ strh r1, [r0, 0x6]
+ ldrb r0, [r6]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r1, 0xE]
+ adds r0, r4, 0
+ ands r0, r2
+ strb r0, [r1, 0xE]
+ ldr r0, _08018ACC @ =gUnknown_81D8C65
+ b _08018C04
+ .align 2, 0
+_08018ACC: .4byte gUnknown_81D8C65
+_08018AD0:
+ ldr r0, _08018AEC @ =gUnknown_2023DFC
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x18
+ ands r0, r2
+ cmp r0, 0
+ beq _08018AE8
+ adds r0, r2, 0
+ subs r0, 0x8
+ str r0, [r1]
+_08018AE8:
+ ldr r1, [r7]
+ b _08018C16
+ .align 2, 0
+_08018AEC: .4byte gUnknown_2023DFC
+_08018AF0:
+ ldr r2, _08018B30 @ =gUnknown_2023E0C
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r3, r0, r2
+ ldrb r2, [r3, 0x12]
+ lsls r1, r2, 28
+ cmp r1, 0
+ beq _08018B2A
+ lsrs r1, 28
+ subs r1, 0x1
+ movs r0, 0xF
+ ands r1, r0
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x12]
+ cmp r1, 0
+ bne _08018B2A
+ ldr r0, _08018B34 @ =gUnknown_2023DFC
+ ldrb r2, [r6]
+ lsls r2, 2
+ adds r2, r0
+ ldr r0, [r2]
+ ldr r1, _08018B38 @ =0xfffffdff
+ ands r0, r1
+ str r0, [r2]
+_08018B2A:
+ ldr r1, [r7]
+ b _08018C16
+ .align 2, 0
+_08018B30: .4byte gUnknown_2023E0C
+_08018B34: .4byte gUnknown_2023DFC
+_08018B38: .4byte 0xfffffdff
+_08018B3C:
+ ldr r2, _08018B68 @ =gUnknown_2023E0C
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r3, r0, r2
+ ldrb r2, [r3, 0x13]
+ lsls r1, r2, 28
+ cmp r1, 0
+ beq _08018B62
+ lsrs r1, 28
+ subs r1, 0x1
+ movs r0, 0xF
+ ands r1, r0
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x13]
+_08018B62:
+ ldr r1, [r7]
+ b _08018C16
+ .align 2, 0
+_08018B68: .4byte gUnknown_2023E0C
+_08018B6C:
+ ldr r4, _08018C20 @ =gUnknown_2023DFC
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r2, r0, r4
+ ldr r1, [r2]
+ movs r3, 0xC0
+ lsls r3, 5
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _08018C12
+ ldr r5, _08018C24 @ =0xfffff800
+ adds r0, r1, r5
+ str r0, [r2]
+ ldrb r2, [r6]
+ lsls r0, r2, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ands r0, r3
+ cmp r0, 0
+ bne _08018C12
+ ldr r3, _08018C28 @ =gUnknown_2023BE4
+ movs r5, 0x58
+ adds r1, r2, 0
+ muls r1, r5
+ adds r4, r3, 0
+ adds r4, 0x4C
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08018C12
+ adds r0, r1, r3
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x48
+ beq _08018C12
+ cmp r0, 0xF
+ beq _08018C12
+ adds r0, r2, 0
+ bl sub_8027830
+ lsls r0, 24
+ cmp r0, 0
+ bne _08018C12
+ ldrb r0, [r6]
+ bl sub_80172E8
+ bl sub_8044EC8
+ ldrb r1, [r6]
+ adds r2, r1, 0
+ muls r2, r5
+ adds r2, r4
+ movs r1, 0x3
+ ands r1, r0
+ adds r1, 0x2
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl sub_800DFF0
+ ldrb r0, [r6]
+ bl sub_8017248
+ ldr r1, _08018C2C @ =gUnknown_2023D6E
+ ldrb r0, [r6]
+ strb r0, [r1]
+ ldr r0, _08018C30 @ =gUnknown_81D91C7
+_08018C04:
+ bl sub_801BBE4
+_08018C08:
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08018C12:
+ ldr r0, _08018C34 @ =gUnknown_2023FE8
+ ldr r1, [r0]
+_08018C16:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08018C46
+ .align 2, 0
+_08018C20: .4byte gUnknown_2023DFC
+_08018C24: .4byte 0xfffff800
+_08018C28: .4byte gUnknown_2023BE4
+_08018C2C: .4byte gUnknown_2023D6E
+_08018C30: .4byte gUnknown_81D91C7
+_08018C34: .4byte gUnknown_2023FE8
+_08018C38:
+ ldr r1, [r7]
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, [r7]
+ ldrb r0, [r1, 0x1]
+ adds r0, 0x1
+ strb r0, [r1, 0x1]
+_08018C46:
+ mov r7, r9
+ cmp r7, 0
+ beq _08018C50
+_08018C4C:
+ mov r0, r9
+ b _08018C78
+_08018C50:
+ ldr r5, _08018C88 @ =gUnknown_2023FE8
+ ldr r2, [r5]
+ ldr r0, _08018C8C @ =gUnknown_2023BCC
+ ldrb r1, [r2, 0x1]
+ adds r7, r5, 0
+ mov r8, r0
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcs _08018C6C
+_08018C62:
+ ldrb r0, [r2]
+ cmp r0, 0x13
+ bhi _08018C6C
+ bl _0801829C
+_08018C6C:
+ ldr r0, _08018C90 @ =gUnknown_2023DD0
+ ldr r1, [r0]
+ ldr r2, _08018C94 @ =0xfeffffdf
+ ands r1, r2
+ str r1, [r0]
+ movs r0, 0
+_08018C78:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08018C88: .4byte gUnknown_2023FE8
+_08018C8C: .4byte gUnknown_2023BCC
+_08018C90: .4byte gUnknown_2023DD0
+_08018C94: .4byte 0xfeffffdf
+ thumb_func_end sub_8018258
+
+ thumb_func_start sub_8018C98
+sub_8018C98: @ 8018C98
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r2, _08018CC8 @ =gUnknown_2023DD0
+ ldr r0, [r2]
+ ldr r1, _08018CCC @ =0x01000020
+ orrs r0, r1
+ str r0, [r2]
+ ldr r1, _08018CD0 @ =gUnknown_2023FE8
+ ldr r3, [r1]
+ movs r4, 0xC0
+ lsls r4, 1
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ adds r7, r1, 0
+ cmp r0, 0
+ beq _08018CD4
+ cmp r0, 0x1
+ bne _08018CC4
+ b _08018E2C
+_08018CC4:
+ b _08018F68
+ .align 2, 0
+_08018CC8: .4byte gUnknown_2023DD0
+_08018CCC: .4byte 0x01000020
+_08018CD0: .4byte gUnknown_2023FE8
+_08018CD4:
+ ldr r2, _08018D20 @ =0x00000181
+ adds r0, r3, r2
+ ldr r1, _08018D24 @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ mov r8, r1
+ ldrb r6, [r1]
+ cmp r0, r6
+ bcc _08018CE6
+ b _08018E16
+_08018CE6:
+ ldr r4, _08018D28 @ =gUnknown_2023BC4
+ ldr r5, _08018D2C @ =gUnknown_2022AB8
+ ldr r6, _08018D30 @ =gUnknown_2023F20
+ movs r0, 0x8
+ adds r0, r6
+ mov r10, r0
+ movs r1, 0x18
+ adds r1, r6
+ mov r12, r1
+ ldr r3, _08018D34 @ =gUnknown_2023D6C
+ mov r9, r3
+_08018CFC:
+ ldr r0, [r7]
+ adds r3, r0, r2
+ ldrb r0, [r3]
+ strb r0, [r4]
+ ldr r0, _08018D38 @ =gUnknown_2023D70
+ ldrb r1, [r0]
+ ldr r2, _08018D3C @ =gUnknown_825E45C
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08018D40
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ b _08018E04
+ .align 2, 0
+_08018D20: .4byte 0x00000181
+_08018D24: .4byte gUnknown_2023BCC
+_08018D28: .4byte gUnknown_2023BC4
+_08018D2C: .4byte gUnknown_2022AB8
+_08018D30: .4byte gUnknown_2023F20
+_08018D34: .4byte gUnknown_2023D6C
+_08018D38: .4byte gUnknown_2023D70
+_08018D3C: .4byte gUnknown_825E45C
+_08018D40:
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ ldr r1, _08018D80 @ =gUnknown_2023F20
+ ldrb r0, [r4]
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08018E04
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ bne _08018E04
+ ldr r1, _08018D84 @ =gUnknown_2023BE4
+ ldrb r2, [r4]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _08018E04
+ lsls r0, r2, 1
+ add r0, r12
+ ldrh r0, [r0]
+ cmp r0, 0xF8
+ bne _08018D8C
+ ldr r0, _08018D88 @ =gUnknown_2023E82
+ strb r3, [r0, 0x5]
+ b _08018D92
+ .align 2, 0
+_08018D80: .4byte gUnknown_2023F20
+_08018D84: .4byte gUnknown_2023BE4
+_08018D88: .4byte gUnknown_2023E82
+_08018D8C:
+ ldr r1, _08018DEC @ =gUnknown_2023E82
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+_08018D92:
+ movs r0, 0xFD
+ strb r0, [r5]
+ movs r0, 0x2
+ strb r0, [r5, 0x1]
+ ldrb r0, [r4]
+ lsls r0, 1
+ add r0, r12
+ ldrh r0, [r0]
+ strb r0, [r5, 0x2]
+ ldrb r0, [r4]
+ lsls r0, 1
+ add r0, r12
+ ldrh r0, [r0]
+ lsrs r0, 8
+ strb r0, [r5, 0x3]
+ movs r0, 0xFF
+ strb r0, [r5, 0x4]
+ ldrb r0, [r4]
+ mov r1, r9
+ strb r0, [r1]
+ ldr r1, _08018DF0 @ =gUnknown_2023D6B
+ adds r0, r6, 0x4
+ ldrb r2, [r4]
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r1, _08018DF4 @ =gUnknown_2023D50
+ ldrb r0, [r4]
+ lsls r0, 2
+ add r0, r10
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r2, _08018DF8 @ =gUnknown_2023ECC
+ mov r3, r9
+ ldrb r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x4
+ adds r0, r2
+ ldr r1, _08018DFC @ =0x0000ffff
+ str r1, [r0]
+ ldr r0, _08018E00 @ =gUnknown_81D8E12
+ b _08018F44
+ .align 2, 0
+_08018DEC: .4byte gUnknown_2023E82
+_08018DF0: .4byte gUnknown_2023D6B
+_08018DF4: .4byte gUnknown_2023D50
+_08018DF8: .4byte gUnknown_2023ECC
+_08018DFC: .4byte 0x0000ffff
+_08018E00: .4byte gUnknown_81D8E12
+_08018E04:
+ ldr r0, [r7]
+ ldr r2, _08018E7C @ =0x00000181
+ adds r0, r2
+ ldrb r0, [r0]
+ mov r1, r8
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _08018E16
+ b _08018CFC
+_08018E16:
+ ldr r0, [r7]
+ movs r2, 0xC0
+ lsls r2, 1
+ adds r0, r2
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r7]
+ ldr r3, _08018E7C @ =0x00000181
+ adds r1, r0, r3
+ movs r0, 0
+ strb r0, [r1]
+_08018E2C:
+ adds r3, r7, 0
+ ldr r0, [r3]
+ ldr r2, _08018E7C @ =0x00000181
+ adds r0, r2
+ ldr r1, _08018E80 @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ mov r8, r1
+ ldrb r4, [r1]
+ cmp r0, r4
+ bcc _08018E42
+ b _08018F68
+_08018E42:
+ ldr r5, _08018E84 @ =gUnknown_2023BC4
+ ldr r4, _08018E88 @ =gUnknown_2022AB8
+ ldr r6, _08018E8C @ =gUnknown_2023E0C
+ mov r12, r6
+ ldr r0, _08018E90 @ =gUnknown_2023D6B
+ mov r9, r0
+_08018E4E:
+ ldr r1, _08018E94 @ =gUnknown_2023BDE
+ ldr r0, [r3]
+ adds r3, r0, r2
+ ldrb r0, [r3]
+ adds r0, r1
+ ldrb r0, [r0]
+ mov r1, r9
+ strb r0, [r1]
+ strb r0, [r5]
+ ldr r0, _08018E98 @ =gUnknown_2023D70
+ ldrb r1, [r0]
+ ldr r2, _08018E9C @ =gUnknown_825E45C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08018EA0
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ b _08018F54
+ .align 2, 0
+_08018E7C: .4byte 0x00000181
+_08018E80: .4byte gUnknown_2023BCC
+_08018E84: .4byte gUnknown_2023BC4
+_08018E88: .4byte gUnknown_2022AB8
+_08018E8C: .4byte gUnknown_2023E0C
+_08018E90: .4byte gUnknown_2023D6B
+_08018E94: .4byte gUnknown_2023BDE
+_08018E98: .4byte gUnknown_2023D70
+_08018E9C: .4byte gUnknown_825E45C
+_08018EA0:
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ ldr r6, _08018F14 @ =gUnknown_2023DFC
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08018F54
+ movs r0, 0xFD
+ strb r0, [r4]
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ strb r0, [r4, 0x2]
+ strb r0, [r4, 0x3]
+ ldrb r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r12
+ ldrb r0, [r0, 0xF]
+ lsls r0, 28
+ lsrs r0, 28
+ strb r0, [r4, 0x4]
+ movs r0, 0xFF
+ strb r0, [r4, 0x5]
+ ldrb r2, [r5]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ mov r3, r12
+ adds r4, r0, r3
+ ldrb r3, [r4, 0xF]
+ lsls r1, r3, 28
+ cmp r1, 0
+ bne _08018F28
+ lsls r2, 2
+ adds r2, r6
+ ldr r0, [r2]
+ movs r1, 0x21
+ negs r1, r1
+ ands r0, r1
+ str r0, [r2]
+ ldr r3, _08018F18 @ =gUnknown_2023D50
+ ldr r2, _08018F1C @ =gUnknown_2023BE4
+ ldrb r1, [r5]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x28]
+ str r0, [r3]
+ ldr r1, _08018F20 @ =gUnknown_2023D74
+ ldr r0, _08018F24 @ =gUnknown_81D8D33
+ b _08018F40
+ .align 2, 0
+_08018F14: .4byte gUnknown_2023DFC
+_08018F18: .4byte gUnknown_2023D50
+_08018F1C: .4byte gUnknown_2023BE4
+_08018F20: .4byte gUnknown_2023D74
+_08018F24: .4byte gUnknown_81D8D33
+_08018F28:
+ lsrs r1, 28
+ subs r1, 0x1
+ movs r0, 0xF
+ ands r1, r0
+ movs r6, 0x10
+ negs r6, r6
+ adds r0, r6, 0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r4, 0xF]
+ ldr r1, _08018F4C @ =gUnknown_2023D74
+ ldr r0, _08018F50 @ =gUnknown_81D8D4E
+_08018F40:
+ str r0, [r1]
+ ldr r0, [r1]
+_08018F44:
+ bl sub_801BBE4
+ movs r0, 0x1
+ b _08018F74
+ .align 2, 0
+_08018F4C: .4byte gUnknown_2023D74
+_08018F50: .4byte gUnknown_81D8D4E
+_08018F54:
+ adds r3, r7, 0
+ ldr r0, [r3]
+ ldr r2, _08018F84 @ =0x00000181
+ adds r0, r2
+ ldrb r0, [r0]
+ mov r1, r8
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _08018F68
+ b _08018E4E
+_08018F68:
+ ldr r2, _08018F88 @ =gUnknown_2023DD0
+ ldr r0, [r2]
+ ldr r1, _08018F8C @ =0xfeffffdf
+ ands r0, r1
+ str r0, [r2]
+ movs r0, 0
+_08018F74:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08018F84: .4byte 0x00000181
+_08018F88: .4byte gUnknown_2023DD0
+_08018F8C: .4byte 0xfeffffdf
+ thumb_func_end sub_8018C98
+
+ thumb_func_start sub_8018F90
+sub_8018F90: @ 8018F90
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ ldr r0, _08018FA8 @ =gUnknown_2022B4C
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08018FD8
+ b _08019272
+ .align 2, 0
+_08018FA8: .4byte gUnknown_2022B4C
+_08018FAC:
+ ldr r0, _08018FBC @ =gUnknown_81D8694
+ bl sub_801BBE4
+ ldr r0, [r5]
+ adds r0, 0x4D
+ movs r1, 0x2
+ b _08018FCC
+ .align 2, 0
+_08018FBC: .4byte gUnknown_81D8694
+_08018FC0:
+ ldr r0, _08018FD4 @ =gUnknown_81D869D
+ bl sub_801BBE4
+ ldr r0, [r5]
+ adds r0, 0x4D
+ movs r1, 0x5
+_08018FCC:
+ strb r1, [r0]
+_08018FCE:
+ movs r0, 0x1
+ b _08019274
+ .align 2, 0
+_08018FD4: .4byte gUnknown_81D869D
+_08018FD8:
+ ldr r0, _08018FF4 @ =gUnknown_2023FE8
+ mov r8, r0
+_08018FDC:
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0x4D
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bls _08018FEA
+ b _08019264
+_08018FEA:
+ lsls r0, 2
+ ldr r1, _08018FF8 @ =_08018FFC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08018FF4: .4byte gUnknown_2023FE8
+_08018FF8: .4byte _08018FFC
+ .align 2, 0
+_08018FFC:
+ .4byte _0801901C
+ .4byte _0801906E
+ .4byte _08019108
+ .4byte _0801914A
+ .4byte _0801915E
+ .4byte _080191C8
+ .4byte _080191FC
+ .4byte _08019264
+_0801901C:
+ mov r4, r8
+ ldr r0, [r4]
+ adds r0, 0x4E
+ movs r1, 0
+ strb r1, [r0]
+ ldr r1, [r4]
+ adds r1, 0x4D
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r5, 0
+ ldr r0, _080190E8 @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r5, r0
+ bge _0801906E
+ ldr r6, _080190EC @ =gUnknown_2023D70
+_0801903C:
+ ldrb r0, [r6]
+ ldr r2, _080190F0 @ =gUnknown_825E45C
+ lsls r1, r5, 2
+ adds r1, r2
+ ldr r4, [r1]
+ ands r0, r4
+ cmp r0, 0
+ beq _08019064
+ lsls r0, r5, 24
+ lsrs r0, 24
+ movs r1, 0x6
+ movs r2, 0x6
+ bl sub_8019C10
+ lsls r0, 24
+ cmp r0, 0
+ bne _08019064
+ ldrb r0, [r6]
+ bics r0, r4
+ strb r0, [r6]
+_08019064:
+ adds r5, 0x1
+ ldr r0, _080190E8 @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _0801903C
+_0801906E:
+ ldr r0, _080190F4 @ =gUnknown_2023FE8
+ mov r8, r0
+ ldr r1, _080190F8 @ =gUnknown_2023D6D
+ mov r12, r1
+ ldr r2, _080190FC @ =gUnknown_2023D6C
+ mov r5, r8
+ ldr r7, _08019100 @ =gUnknown_2023BE4
+ ldr r6, _08019104 @ =gUnknown_2023BCE
+_0801907E:
+ ldr r3, [r5]
+ adds r1, r3, 0
+ adds r1, 0x4E
+ ldrb r0, [r1]
+ strb r0, [r2]
+ mov r4, r12
+ strb r0, [r4]
+ ldrb r4, [r1]
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r7
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _080190C6
+ adds r0, r3, 0
+ adds r0, 0xDF
+ ldrb r1, [r0]
+ ldr r3, _080190F0 @ =gUnknown_825E45C
+ lsls r0, r4, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _080190C6
+ ldr r0, _080190EC @ =gUnknown_2023D70
+ ldrb r1, [r0]
+ lsls r0, r4, 2
+ adds r0, r3
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _080190C6
+ b _08018FAC
+_080190C6:
+ ldr r0, [r5]
+ adds r0, 0x4E
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ ldr r0, _080190E8 @ =gUnknown_2023BCC
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0801907E
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0x4D
+ movs r1, 0x3
+ strb r1, [r0]
+ b _08019264
+ .align 2, 0
+_080190E8: .4byte gUnknown_2023BCC
+_080190EC: .4byte gUnknown_2023D70
+_080190F0: .4byte gUnknown_825E45C
+_080190F4: .4byte gUnknown_2023FE8
+_080190F8: .4byte gUnknown_2023D6D
+_080190FC: .4byte gUnknown_2023D6C
+_08019100: .4byte gUnknown_2023BE4
+_08019104: .4byte gUnknown_2023BCE
+_08019108:
+ ldr r0, _08019134 @ =gUnknown_2023D6D
+ ldrb r0, [r0]
+ bl sub_8017434
+ ldr r2, _08019138 @ =gUnknown_2023FE8
+ ldr r1, [r2]
+ adds r1, 0x4E
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r1, _0801913C @ =gUnknown_2023BCC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08019140
+ ldr r0, [r2]
+ adds r0, 0x4D
+ movs r1, 0x3
+ strb r1, [r0]
+ b _08019262
+ .align 2, 0
+_08019134: .4byte gUnknown_2023D6D
+_08019138: .4byte gUnknown_2023FE8
+_0801913C: .4byte gUnknown_2023BCC
+_08019140:
+ ldr r0, [r2]
+ adds r0, 0x4D
+ movs r1, 0x1
+ strb r1, [r0]
+ b _08019262
+_0801914A:
+ mov r4, r8
+ ldr r0, [r4]
+ adds r0, 0x4E
+ movs r1, 0
+ strb r1, [r0]
+ ldr r1, [r4]
+ adds r1, 0x4D
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_0801915E:
+ ldr r0, _080191AC @ =gUnknown_2023D6D
+ mov r12, r0
+ ldr r7, _080191B0 @ =gUnknown_2023D6C
+ ldr r5, _080191B4 @ =gUnknown_2023FE8
+ ldr r2, _080191B8 @ =gUnknown_2023BE4
+ ldr r6, _080191BC @ =gUnknown_825E45C
+_0801916A:
+ ldr r0, [r5]
+ adds r4, r0, 0
+ adds r4, 0x4E
+ ldrb r0, [r4]
+ strb r0, [r7]
+ mov r1, r12
+ strb r0, [r1]
+ ldrb r3, [r4]
+ movs r0, 0x58
+ muls r0, r3
+ adds r0, r2
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _08019198
+ ldr r0, _080191C0 @ =gUnknown_2023D70
+ ldrb r1, [r0]
+ lsls r0, r3, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _08019198
+ b _08018FC0
+_08019198:
+ adds r0, r3, 0x1
+ strb r0, [r4]
+ ldr r1, _080191C4 @ =gUnknown_2023BCC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _0801916A
+ b _080191E0
+ .align 2, 0
+_080191AC: .4byte gUnknown_2023D6D
+_080191B0: .4byte gUnknown_2023D6C
+_080191B4: .4byte gUnknown_2023FE8
+_080191B8: .4byte gUnknown_2023BE4
+_080191BC: .4byte gUnknown_825E45C
+_080191C0: .4byte gUnknown_2023D70
+_080191C4: .4byte gUnknown_2023BCC
+_080191C8:
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0x4E
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ ldr r0, _080191EC @ =gUnknown_2023BCC
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _080191F0
+_080191E0:
+ mov r4, r8
+ ldr r0, [r4]
+ adds r0, 0x4D
+ movs r1, 0x6
+ strb r1, [r0]
+ b _08019264
+ .align 2, 0
+_080191EC: .4byte gUnknown_2023BCC
+_080191F0:
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0x4D
+ movs r1, 0x4
+ strb r1, [r0]
+ b _08019264
+_080191FC:
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x9
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8019F18
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08019216
+ b _08018FCE
+_08019216:
+ str r0, [sp]
+ movs r0, 0xB
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8019F18
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801922C
+ b _08018FCE
+_0801922C:
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_801BC68
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08019240
+ b _08018FCE
+_08019240:
+ str r0, [sp]
+ movs r0, 0x6
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8019F18
+ lsls r0, 24
+ cmp r0, 0
+ beq _08019256
+ b _08018FCE
+_08019256:
+ ldr r2, _08019280 @ =gUnknown_2023FE8
+ ldr r1, [r2]
+ adds r1, 0x4D
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08019262:
+ mov r8, r2
+_08019264:
+ mov r4, r8
+ ldr r0, [r4]
+ adds r0, 0x4D
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ beq _08019272
+ b _08018FDC
+_08019272:
+ movs r0, 0
+_08019274:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08019280: .4byte gUnknown_2023FE8
+ thumb_func_end sub_8018F90
+
+ thumb_func_start sub_8019284
+sub_8019284: @ 8019284
+ push {r4-r6,lr}
+ movs r3, 0
+ ldr r0, _080192C4 @ =gUnknown_2023BCC
+ adds r5, r0, 0
+ ldrb r0, [r5]
+ cmp r3, r0
+ bge _080192BC
+ ldr r4, _080192C8 @ =gUnknown_2023DC4
+ movs r6, 0x80
+ lsls r6, 16
+ ldr r2, _080192CC @ =gUnknown_2023C34
+_0801929A:
+ ldr r1, [r2]
+ adds r0, r1, 0
+ ands r0, r6
+ cmp r0, 0
+ beq _080192B0
+ ldrh r0, [r4]
+ cmp r0, 0x63
+ beq _080192B0
+ ldr r0, _080192D0 @ =0xff7fffff
+ ands r1, r0
+ str r1, [r2]
+_080192B0:
+ adds r4, 0x2
+ adds r2, 0x58
+ adds r3, 0x1
+ ldrb r0, [r5]
+ cmp r3, r0
+ blt _0801929A
+_080192BC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080192C4: .4byte gUnknown_2023BCC
+_080192C8: .4byte gUnknown_2023DC4
+_080192CC: .4byte gUnknown_2023C34
+_080192D0: .4byte 0xff7fffff
+ thumb_func_end sub_8019284
+
+ thumb_func_start sub_80192D4
+sub_80192D4: @ 80192D4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ movs r0, 0
+ mov r9, r0
+ ldr r1, _080192F0 @ =gUnknown_2023FC8
+ mov r10, r1
+ ldr r2, _080192F4 @ =gUnknown_2023FE8
+ mov r8, r2
+ b _08019302
+ .align 2, 0
+_080192F0: .4byte gUnknown_2023FC8
+_080192F4: .4byte gUnknown_2023FE8
+_080192F8:
+ mov r4, r9
+ cmp r4, 0
+ beq _08019302
+ bl _08019BA8
+_08019302:
+ mov r7, r8
+ ldr r0, [r7]
+ adds r0, 0xB7
+ ldrb r0, [r0]
+ cmp r0, 0xF
+ bls _08019312
+ bl _08019B98
+_08019312:
+ lsls r0, 2
+ ldr r1, _0801931C @ =_08019320
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801931C: .4byte _08019320
+ .align 2, 0
+_08019320:
+ .4byte _08019360
+ .4byte _080193A4
+ .4byte _080194E0
+ .4byte _08019598
+ .4byte _0801960C
+ .4byte _08019678
+ .4byte _080196E0
+ .4byte _08019754
+ .4byte _080197B8
+ .4byte _08019814
+ .4byte _080198F8
+ .4byte _08019974
+ .4byte _080199C8
+ .4byte _08019A60
+ .4byte _08019B40
+ .4byte _08019B98
+_08019360:
+ ldr r1, _08019390 @ =gUnknown_2023BE4
+ ldr r3, _08019394 @ =gUnknown_2023D6B
+ ldrb r2, [r3]
+ movs r0, 0x58
+ muls r2, r0
+ adds r1, 0x50
+ adds r2, r1
+ ldr r0, [r2]
+ ldr r1, _08019398 @ =0xfdffffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r0, _0801939C @ =gUnknown_2023DFC
+ ldrb r2, [r3]
+ lsls r2, 2
+ adds r2, r0
+ ldr r0, [r2]
+ ldr r1, _080193A0 @ =0xffffbfff
+ ands r0, r1
+ str r0, [r2]
+ mov r0, r8
+ ldr r1, [r0]
+ bl _08019B90
+ .align 2, 0
+_08019390: .4byte gUnknown_2023BE4
+_08019394: .4byte gUnknown_2023D6B
+_08019398: .4byte 0xfdffffff
+_0801939C: .4byte gUnknown_2023DFC
+_080193A0: .4byte 0xffffbfff
+_080193A4:
+ ldr r7, _0801940C @ =gUnknown_2023BE4
+ ldr r4, _08019410 @ =gUnknown_2023D6B
+ ldrb r1, [r4]
+ movs r5, 0x58
+ adds r0, r1, 0
+ muls r0, r5
+ adds r6, r7, 0
+ adds r6, 0x4C
+ adds r0, r6
+ ldr r0, [r0]
+ movs r2, 0x7
+ mov r8, r2
+ ands r0, r2
+ cmp r0, 0
+ bne _080193C4
+ b _08019946
+_080193C4:
+ adds r0, r1, 0
+ bl sub_8027830
+ lsls r0, 24
+ cmp r0, 0
+ beq _08019424
+ ldrb r0, [r4]
+ adds r2, r0, 0
+ muls r2, r5
+ adds r2, r6
+ ldr r0, [r2]
+ movs r1, 0x8
+ negs r1, r1
+ ands r0, r1
+ str r0, [r2]
+ ldrb r0, [r4]
+ adds r2, r0, 0
+ muls r2, r5
+ adds r0, r7, 0
+ adds r0, 0x50
+ adds r2, r0
+ ldr r0, [r2]
+ ldr r1, _08019414 @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+ bl sub_8017544
+ ldr r1, _08019418 @ =gUnknown_2023E82
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ ldr r1, _0801941C @ =gUnknown_2023D74
+ ldr r0, _08019420 @ =gUnknown_81D9036
+ str r0, [r1]
+ movs r4, 0x2
+ mov r9, r4
+ b _08019946
+ .align 2, 0
+_0801940C: .4byte gUnknown_2023BE4
+_08019410: .4byte gUnknown_2023D6B
+_08019414: .4byte 0xf7ffffff
+_08019418: .4byte gUnknown_2023E82
+_0801941C: .4byte gUnknown_2023D74
+_08019420: .4byte gUnknown_81D9036
+_08019424:
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ muls r1, r5
+ adds r0, r1, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ movs r3, 0x1
+ cmp r0, 0x30
+ bne _08019438
+ movs r3, 0x2
+_08019438:
+ adds r2, r1, r6
+ ldr r1, [r2]
+ adds r0, r1, 0
+ mov r7, r8
+ ands r0, r7
+ cmp r0, r3
+ bcs _08019450
+ movs r0, 0x8
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+ b _08019454
+_08019450:
+ subs r0, r1, r3
+ str r0, [r2]
+_08019454:
+ ldr r2, _08019498 @ =gUnknown_2023BE4
+ ldr r0, _0801949C @ =gUnknown_2023D6B
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r1, r0
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r0, r1, r0
+ ldr r4, [r0]
+ movs r0, 0x7
+ ands r4, r0
+ cmp r4, 0
+ beq _080194B0
+ ldr r0, _080194A0 @ =gUnknown_2023D4A
+ ldrh r0, [r0]
+ cmp r0, 0xAD
+ bne _08019478
+ b _08019946
+_08019478:
+ cmp r0, 0xD6
+ bne _0801947E
+ b _08019946
+_0801947E:
+ ldr r1, _080194A4 @ =gUnknown_2023D74
+ ldr r0, _080194A8 @ =gUnknown_81D9029
+ str r0, [r1]
+ ldr r2, _080194AC @ =gUnknown_2023DD0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+ movs r0, 0x2
+ mov r9, r0
+ b _08019946
+ .align 2, 0
+_08019498: .4byte gUnknown_2023BE4
+_0801949C: .4byte gUnknown_2023D6B
+_080194A0: .4byte gUnknown_2023D4A
+_080194A4: .4byte gUnknown_2023D74
+_080194A8: .4byte gUnknown_81D9029
+_080194AC: .4byte gUnknown_2023DD0
+_080194B0:
+ adds r2, 0x50
+ adds r2, r1, r2
+ ldr r0, [r2]
+ ldr r1, _080194D0 @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+ bl sub_8017544
+ ldr r0, _080194D4 @ =gUnknown_2023E82
+ strb r4, [r0, 0x5]
+ ldr r1, _080194D8 @ =gUnknown_2023D74
+ ldr r0, _080194DC @ =gUnknown_81D9036
+ str r0, [r1]
+ movs r1, 0x2
+ mov r9, r1
+ b _08019946
+ .align 2, 0
+_080194D0: .4byte 0xf7ffffff
+_080194D4: .4byte gUnknown_2023E82
+_080194D8: .4byte gUnknown_2023D74
+_080194DC: .4byte gUnknown_81D9036
+_080194E0:
+ ldr r1, _0801953C @ =gUnknown_2023BE4
+ ldr r7, _08019540 @ =gUnknown_2023D6B
+ ldrb r0, [r7]
+ movs r6, 0x58
+ muls r0, r6
+ adds r5, r1, 0
+ adds r5, 0x4C
+ adds r0, r5
+ ldr r0, [r0]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08019580
+ bl sub_8044EC8
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x5
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _08019558
+ ldr r2, _08019544 @ =gUnknown_8250C04
+ ldr r0, _08019548 @ =gUnknown_2023D4A
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x7D
+ bne _08019526
+ b _08019946
+_08019526:
+ ldr r1, _0801954C @ =gUnknown_2023D74
+ ldr r0, _08019550 @ =gUnknown_81D9080
+ str r0, [r1]
+ ldr r2, _08019554 @ =gUnknown_2023DD0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 2
+ orrs r0, r1
+ str r0, [r2]
+ b _08019578
+ .align 2, 0
+_0801953C: .4byte gUnknown_2023BE4
+_08019540: .4byte gUnknown_2023D6B
+_08019544: .4byte gUnknown_8250C04
+_08019548: .4byte gUnknown_2023D4A
+_0801954C: .4byte gUnknown_2023D74
+_08019550: .4byte gUnknown_81D9080
+_08019554: .4byte gUnknown_2023DD0
+_08019558:
+ ldrb r0, [r7]
+ adds r2, r0, 0
+ muls r2, r6
+ adds r2, r5
+ ldr r0, [r2]
+ movs r1, 0x21
+ negs r1, r1
+ ands r0, r1
+ str r0, [r2]
+ bl sub_8017544
+ ldr r1, _08019588 @ =gUnknown_2023D74
+ ldr r0, _0801958C @ =gUnknown_81D908D
+ str r0, [r1]
+ ldr r0, _08019590 @ =gUnknown_2023E82
+ strb r4, [r0, 0x5]
+_08019578:
+ movs r2, 0x2
+ mov r9, r2
+ ldr r4, _08019594 @ =gUnknown_2023FE8
+ mov r8, r4
+_08019580:
+ mov r7, r8
+ ldr r1, [r7]
+ b _08019B90
+ .align 2, 0
+_08019588: .4byte gUnknown_2023D74
+_0801958C: .4byte gUnknown_81D908D
+_08019590: .4byte gUnknown_2023E82
+_08019594: .4byte gUnknown_2023FE8
+_08019598:
+ ldr r1, _080195EC @ =gUnknown_2023BE4
+ ldr r0, _080195F0 @ =gUnknown_2023D6B
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x36
+ beq _080195AE
+ b _08019946
+_080195AE:
+ ldr r0, _080195F4 @ =gUnknown_2023E0C
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x18]
+ lsls r0, 31
+ cmp r0, 0
+ bne _080195C2
+ b _08019946
+_080195C2:
+ adds r0, r2, 0
+ bl sub_80172E8
+ ldr r2, _080195F8 @ =gUnknown_2023DD0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+ ldr r1, _080195FC @ =gUnknown_2023E82
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ ldr r1, _08019600 @ =gUnknown_2023D74
+ ldr r0, _08019604 @ =gUnknown_81D94F2
+ str r0, [r1]
+ ldr r2, _08019608 @ =gUnknown_2023DCC
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ b _080197F4
+ .align 2, 0
+_080195EC: .4byte gUnknown_2023BE4
+_080195F0: .4byte gUnknown_2023D6B
+_080195F4: .4byte gUnknown_2023E0C
+_080195F8: .4byte gUnknown_2023DD0
+_080195FC: .4byte gUnknown_2023E82
+_08019600: .4byte gUnknown_2023D74
+_08019604: .4byte gUnknown_81D94F2
+_08019608: .4byte gUnknown_2023DCC
+_0801960C:
+ ldr r1, _0801965C @ =gUnknown_2023BE4
+ ldr r3, _08019660 @ =gUnknown_2023D6B
+ ldrb r2, [r3]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x80
+ lsls r0, 15
+ ands r0, r1
+ cmp r0, 0
+ bne _08019628
+ b _08019946
+_08019628:
+ ldr r0, _08019664 @ =0xffbfffff
+ ands r1, r0
+ str r1, [r2]
+ ldr r2, _08019668 @ =gUnknown_2023E0C
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strb r1, [r0, 0x19]
+ ldrb r0, [r3]
+ bl sub_80172E8
+ ldr r1, _0801966C @ =gUnknown_2023D74
+ ldr r0, _08019670 @ =gUnknown_81D7342
+ str r0, [r1]
+ ldr r2, _08019674 @ =gUnknown_2023DD0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+ movs r1, 0x1
+ mov r9, r1
+ b _08019946
+ .align 2, 0
+_0801965C: .4byte gUnknown_2023BE4
+_08019660: .4byte gUnknown_2023D6B
+_08019664: .4byte 0xffbfffff
+_08019668: .4byte gUnknown_2023E0C
+_0801966C: .4byte gUnknown_2023D74
+_08019670: .4byte gUnknown_81D7342
+_08019674: .4byte gUnknown_2023DD0
+_08019678:
+ ldr r1, _080196C8 @ =gUnknown_2023BE4
+ ldr r3, _080196CC @ =gUnknown_2023D6B
+ ldrb r2, [r3]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _08019692
+ b _08019946
+_08019692:
+ movs r0, 0x9
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+ ldr r0, _080196D0 @ =gUnknown_2023E8C
+ ldrb r2, [r3]
+ lsls r2, 4
+ adds r2, r0
+ ldrb r0, [r2, 0x2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2, 0x2]
+ ldrb r0, [r3]
+ bl sub_80172E8
+ ldr r1, _080196D4 @ =gUnknown_2023D74
+ ldr r0, _080196D8 @ =gUnknown_81D90B1
+ str r0, [r1]
+ ldr r2, _080196DC @ =gUnknown_2023DD0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+ movs r2, 0x1
+ mov r9, r2
+ b _08019946
+ .align 2, 0
+_080196C8: .4byte gUnknown_2023BE4
+_080196CC: .4byte gUnknown_2023D6B
+_080196D0: .4byte gUnknown_2023E8C
+_080196D4: .4byte gUnknown_2023D74
+_080196D8: .4byte gUnknown_81D90B1
+_080196DC: .4byte gUnknown_2023DD0
+_080196E0:
+ ldr r0, _08019734 @ =gUnknown_2023E0C
+ ldr r3, _08019738 @ =gUnknown_2023D6B
+ ldrb r2, [r3]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _0801973C @ =gUnknown_2023D4A
+ ldrh r1, [r1, 0x4]
+ ldrh r0, [r0]
+ cmp r1, r0
+ beq _080196FA
+ b _08019946
+_080196FA:
+ cmp r1, 0
+ bne _08019700
+ b _08019946
+_08019700:
+ ldr r0, _08019740 @ =gUnknown_2023E8C
+ lsls r2, 4
+ adds r2, r0
+ ldrb r0, [r2, 0x1]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldr r1, _08019744 @ =gUnknown_2023FC4
+ ldrb r0, [r3]
+ strb r0, [r1, 0x17]
+ ldrb r0, [r3]
+ bl sub_80172E8
+ ldr r1, _08019748 @ =gUnknown_2023D74
+ ldr r0, _0801974C @ =gUnknown_81D8C4F
+ str r0, [r1]
+ ldr r2, _08019750 @ =gUnknown_2023DD0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+ movs r4, 0x1
+ mov r9, r4
+ b _08019946
+ .align 2, 0
+_08019734: .4byte gUnknown_2023E0C
+_08019738: .4byte gUnknown_2023D6B
+_0801973C: .4byte gUnknown_2023D4A
+_08019740: .4byte gUnknown_2023E8C
+_08019744: .4byte gUnknown_2023FC4
+_08019748: .4byte gUnknown_2023D74
+_0801974C: .4byte gUnknown_81D8C4F
+_08019750: .4byte gUnknown_2023DD0
+_08019754:
+ ldr r0, _0801979C @ =gUnknown_2023E0C
+ ldr r4, _080197A0 @ =gUnknown_2023D6B
+ ldrb r3, [r4]
+ lsls r1, r3, 3
+ subs r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x13]
+ lsls r0, 28
+ cmp r0, 0
+ bne _0801976C
+ b _08019946
+_0801976C:
+ ldr r2, _080197A4 @ =gUnknown_8250C04
+ ldr r0, _080197A8 @ =gUnknown_2023D4A
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _08019782
+ b _08019946
+_08019782:
+ ldr r0, _080197AC @ =gUnknown_2023E8C
+ lsls r2, r3, 4
+ adds r2, r0
+ ldrb r0, [r2, 0x2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x2]
+ ldrb r0, [r4]
+ bl sub_80172E8
+ ldr r1, _080197B0 @ =gUnknown_2023D74
+ ldr r0, _080197B4 @ =gUnknown_81D8ECA
+ b _08019934
+ .align 2, 0
+_0801979C: .4byte gUnknown_2023E0C
+_080197A0: .4byte gUnknown_2023D6B
+_080197A4: .4byte gUnknown_8250C04
+_080197A8: .4byte gUnknown_2023D4A
+_080197AC: .4byte gUnknown_2023E8C
+_080197B0: .4byte gUnknown_2023D74
+_080197B4: .4byte gUnknown_81D8ECA
+_080197B8:
+ ldr r4, _080197FC @ =gUnknown_2023D6B
+ ldrb r0, [r4]
+ ldr r1, _08019800 @ =gUnknown_2023D4A
+ ldrh r1, [r1]
+ bl sub_8017A64
+ lsls r0, 24
+ cmp r0, 0
+ bne _080197CC
+ b _08019946
+_080197CC:
+ ldr r0, _08019804 @ =gUnknown_2023E8C
+ ldrb r2, [r4]
+ lsls r2, 4
+ adds r2, r0
+ ldrb r0, [r2, 0x1]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldrb r0, [r4]
+ bl sub_80172E8
+ ldr r1, _08019808 @ =gUnknown_2023D74
+ ldr r0, _0801980C @ =gUnknown_81D8F94
+ str r0, [r1]
+ ldr r2, _08019810 @ =gUnknown_2023DD0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+_080197F4:
+ movs r0, 0x1
+ mov r9, r0
+ b _08019946
+ .align 2, 0
+_080197FC: .4byte gUnknown_2023D6B
+_08019800: .4byte gUnknown_2023D4A
+_08019804: .4byte gUnknown_2023E8C
+_08019808: .4byte gUnknown_2023D74
+_0801980C: .4byte gUnknown_81D8F94
+_08019810: .4byte gUnknown_2023DD0
+_08019814:
+ ldr r7, _0801985C @ =gUnknown_2023BE4
+ ldr r5, _08019860 @ =gUnknown_2023D6B
+ ldrb r0, [r5]
+ movs r6, 0x58
+ muls r0, r6
+ adds r4, r7, 0
+ adds r4, 0x50
+ adds r2, r0, r4
+ ldr r1, [r2]
+ movs r3, 0x7
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _080198E6
+ subs r0, r1, 0x1
+ str r0, [r2]
+ ldrb r0, [r5]
+ muls r0, r6
+ adds r0, r4
+ ldr r0, [r0]
+ ands r0, r3
+ cmp r0, 0
+ beq _080198D4
+ bl sub_8044EC8
+ movs r1, 0x1
+ movs r2, 0x1
+ ands r2, r0
+ cmp r2, 0
+ beq _08019868
+ ldr r1, _08019864 @ =gUnknown_2023E82
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ bl sub_8017544
+ b _080198B2
+ .align 2, 0
+_0801985C: .4byte gUnknown_2023BE4
+_08019860: .4byte gUnknown_2023D6B
+_08019864: .4byte gUnknown_2023E82
+_08019868:
+ ldr r0, _080198B8 @ =gUnknown_2023E82
+ movs r4, 0x1
+ strb r1, [r0, 0x5]
+ ldr r1, _080198BC @ =gUnknown_2023D6C
+ ldrb r0, [r5]
+ strb r0, [r1]
+ ldrb r0, [r5]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r7
+ movs r0, 0x28
+ str r0, [sp]
+ str r2, [sp, 0x4]
+ ldrb r0, [r5]
+ str r0, [sp, 0x8]
+ ldrb r0, [r5]
+ str r0, [sp, 0xC]
+ adds r0, r1, 0
+ movs r2, 0x1
+ movs r3, 0
+ bl sub_803ECEC
+ ldr r1, _080198C0 @ =gUnknown_2023D50
+ str r0, [r1]
+ ldr r0, _080198C4 @ =gUnknown_2023E8C
+ ldrb r1, [r5]
+ lsls r1, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ orrs r0, r4
+ strb r0, [r1, 0x1]
+ ldr r2, _080198C8 @ =gUnknown_2023DD0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+_080198B2:
+ ldr r1, _080198CC @ =gUnknown_2023D74
+ ldr r0, _080198D0 @ =gUnknown_81D90D3
+ b _080198DC
+ .align 2, 0
+_080198B8: .4byte gUnknown_2023E82
+_080198BC: .4byte gUnknown_2023D6C
+_080198C0: .4byte gUnknown_2023D50
+_080198C4: .4byte gUnknown_2023E8C
+_080198C8: .4byte gUnknown_2023DD0
+_080198CC: .4byte gUnknown_2023D74
+_080198D0: .4byte gUnknown_81D90D3
+_080198D4:
+ bl sub_8017544
+ ldr r1, _080198EC @ =gUnknown_2023D74
+ ldr r0, _080198F0 @ =gUnknown_81D9116
+_080198DC:
+ str r0, [r1]
+ movs r1, 0x1
+ mov r9, r1
+ ldr r2, _080198F4 @ =gUnknown_2023FE8
+ mov r8, r2
+_080198E6:
+ mov r4, r8
+ ldr r1, [r4]
+ b _08019B90
+ .align 2, 0
+_080198EC: .4byte gUnknown_2023D74
+_080198F0: .4byte gUnknown_81D9116
+_080198F4: .4byte gUnknown_2023FE8
+_080198F8:
+ ldr r1, _08019958 @ =gUnknown_2023BE4
+ ldr r4, _0801995C @ =gUnknown_2023D6B
+ ldrb r2, [r4]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08019946
+ bl sub_8044EC8
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r0
+ cmp r1, 0
+ bne _08019946
+ ldr r0, _08019960 @ =gUnknown_2023E8C
+ ldrb r2, [r4]
+ lsls r2, 4
+ adds r2, r0
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _08019964 @ =gUnknown_2023D74
+ ldr r0, _08019968 @ =gUnknown_81D90A1
+_08019934:
+ str r0, [r1]
+ ldr r2, _0801996C @ =gUnknown_2023DD0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+ movs r7, 0x1
+ mov r9, r7
+_08019946:
+ ldr r2, _08019970 @ =gUnknown_2023FE8
+ ldr r1, [r2]
+ adds r1, 0xB7
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ mov r8, r2
+ b _08019B98
+ .align 2, 0
+_08019958: .4byte gUnknown_2023BE4
+_0801995C: .4byte gUnknown_2023D6B
+_08019960: .4byte gUnknown_2023E8C
+_08019964: .4byte gUnknown_2023D74
+_08019968: .4byte gUnknown_81D90A1
+_0801996C: .4byte gUnknown_2023DD0
+_08019970: .4byte gUnknown_2023FE8
+_08019974:
+ ldr r0, _0801999C @ =gUnknown_2022B4C
+ ldr r1, [r0]
+ movs r0, 0xA0
+ lsls r0, 8
+ ands r1, r0
+ movs r0, 0x80
+ lsls r0, 8
+ cmp r1, r0
+ beq _08019988
+ b _08019B8C
+_08019988:
+ ldr r0, _080199A0 @ =gUnknown_2023D6B
+ ldrb r0, [r0]
+ bl sub_80751C4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080199AC
+ ldr r1, _080199A4 @ =gUnknown_2023D74
+ ldr r0, _080199A8 @ =gUnknown_81D9180
+ b _080199B0
+ .align 2, 0
+_0801999C: .4byte gUnknown_2022B4C
+_080199A0: .4byte gUnknown_2023D6B
+_080199A4: .4byte gUnknown_2023D74
+_080199A8: .4byte gUnknown_81D9180
+_080199AC:
+ ldr r1, _080199BC @ =gUnknown_2023D74
+ ldr r0, _080199C0 @ =gUnknown_81D9192
+_080199B0:
+ str r0, [r1]
+ ldr r1, _080199C4 @ =gUnknown_2023E82
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ movs r0, 0x1
+ b _08019B86
+ .align 2, 0
+_080199BC: .4byte gUnknown_2023D74
+_080199C0: .4byte gUnknown_81D9192
+_080199C4: .4byte gUnknown_2023E82
+_080199C8:
+ ldr r1, _08019A00 @ =gUnknown_2023BE4
+ ldr r4, _08019A04 @ =gUnknown_2023D6B
+ ldrb r2, [r4]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0xF0
+ lsls r0, 12
+ ands r1, r0
+ cmp r1, 0
+ beq _08019A42
+ lsrs r0, r1, 16
+ bl sub_8045190
+ ldr r1, _08019A08 @ =gUnknown_2023FC4
+ strb r0, [r1, 0x17]
+ bl sub_8044EC8
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _08019A0C
+ bl sub_8017544
+ b _08019A34
+ .align 2, 0
+_08019A00: .4byte gUnknown_2023BE4
+_08019A04: .4byte gUnknown_2023D6B
+_08019A08: .4byte gUnknown_2023FC4
+_08019A0C:
+ ldr r0, _08019A48 @ =gUnknown_81D914A
+ bl sub_8017520
+ ldr r2, _08019A4C @ =gUnknown_2023DD0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+ ldr r0, _08019A50 @ =gUnknown_2023E8C
+ ldrb r2, [r4]
+ lsls r2, 4
+ adds r2, r0
+ ldrb r0, [r2, 0x1]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldrb r0, [r4]
+ bl sub_80172E8
+_08019A34:
+ ldr r1, _08019A54 @ =gUnknown_2023D74
+ ldr r0, _08019A58 @ =gUnknown_81D913D
+ str r0, [r1]
+ movs r4, 0x1
+ mov r9, r4
+ ldr r7, _08019A5C @ =gUnknown_2023FE8
+ mov r8, r7
+_08019A42:
+ mov r0, r8
+ ldr r1, [r0]
+ b _08019B90
+ .align 2, 0
+_08019A48: .4byte gUnknown_81D914A
+_08019A4C: .4byte gUnknown_2023DD0
+_08019A50: .4byte gUnknown_2023E8C
+_08019A54: .4byte gUnknown_2023D74
+_08019A58: .4byte gUnknown_81D913D
+_08019A5C: .4byte gUnknown_2023FE8
+_08019A60:
+ ldr r1, _08019A98 @ =gUnknown_2023BE4
+ ldr r6, _08019A9C @ =gUnknown_2023D6B
+ ldrb r0, [r6]
+ movs r5, 0x58
+ muls r0, r5
+ adds r1, 0x50
+ adds r3, r0, r1
+ ldr r2, [r3]
+ movs r4, 0xC0
+ lsls r4, 2
+ adds r0, r2, 0
+ ands r0, r4
+ cmp r0, 0
+ beq _08019B32
+ ldr r7, _08019AA0 @ =0xffffff00
+ adds r0, r2, r7
+ str r0, [r3]
+ ldrb r2, [r6]
+ adds r0, r2, 0
+ muls r0, r5
+ adds r0, r1
+ ldr r0, [r0]
+ ands r0, r4
+ cmp r0, 0
+ beq _08019AAC
+ ldr r1, _08019AA4 @ =gUnknown_2023D74
+ ldr r0, _08019AA8 @ =gUnknown_81D8BA9
+ b _08019B2C
+ .align 2, 0
+_08019A98: .4byte gUnknown_2023BE4
+_08019A9C: .4byte gUnknown_2023D6B
+_08019AA0: .4byte 0xffffff00
+_08019AA4: .4byte gUnknown_2023D74
+_08019AA8: .4byte gUnknown_81D8BA9
+_08019AAC:
+ ldr r3, _08019B04 @ =gUnknown_2023D58
+ lsls r0, r2, 2
+ adds r0, r3
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08019B28
+ ldr r1, _08019B08 @ =gUnknown_2023D4A
+ movs r0, 0x75
+ strh r0, [r1]
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ lsls r0, 1
+ mov r1, r10
+ str r0, [r1]
+ ldr r4, _08019B0C @ =gUnknown_2023D6C
+ ldr r1, _08019B10 @ =gUnknown_2023DD8
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldr r0, _08019B14 @ =gUnknown_2023D70
+ ldrb r1, [r0]
+ ldr r2, _08019B18 @ =gUnknown_825E45C
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08019AF6
+ movs r0, 0x75
+ movs r1, 0x1
+ bl sub_801D05C
+ strb r0, [r4]
+_08019AF6:
+ ldr r1, _08019B1C @ =gUnknown_2023D74
+ ldr r0, _08019B20 @ =gUnknown_81D8BB4
+ str r0, [r1]
+ ldr r2, _08019B24 @ =gUnknown_2023FE8
+ mov r8, r2
+ b _08019B2E
+ .align 2, 0
+_08019B04: .4byte gUnknown_2023D58
+_08019B08: .4byte gUnknown_2023D4A
+_08019B0C: .4byte gUnknown_2023D6C
+_08019B10: .4byte gUnknown_2023DD8
+_08019B14: .4byte gUnknown_2023D70
+_08019B18: .4byte gUnknown_825E45C
+_08019B1C: .4byte gUnknown_2023D74
+_08019B20: .4byte gUnknown_81D8BB4
+_08019B24: .4byte gUnknown_2023FE8
+_08019B28:
+ ldr r1, _08019B38 @ =gUnknown_2023D74
+ ldr r0, _08019B3C @ =gUnknown_81D8BFC
+_08019B2C:
+ str r0, [r1]
+_08019B2E:
+ movs r4, 0x1
+ mov r9, r4
+_08019B32:
+ mov r7, r8
+ ldr r1, [r7]
+ b _08019B90
+ .align 2, 0
+_08019B38: .4byte gUnknown_2023D74
+_08019B3C: .4byte gUnknown_81D8BFC
+_08019B40:
+ ldr r1, _08019BE8 @ =gUnknown_2023BE4
+ ldr r0, _08019BEC @ =gUnknown_2023D6B
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x4C
+ adds r4, r0, r1
+ ldr r3, [r4]
+ movs r0, 0x20
+ ands r0, r3
+ cmp r0, 0
+ beq _08019B8C
+ ldr r2, _08019BF0 @ =gUnknown_8250C04
+ ldr r0, _08019BF4 @ =gUnknown_2023D4A
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x7D
+ bne _08019B84
+ movs r0, 0x21
+ negs r0, r0
+ ands r3, r0
+ str r3, [r4]
+ bl sub_8017544
+ ldr r1, _08019BF8 @ =gUnknown_2023D74
+ ldr r0, _08019BFC @ =gUnknown_81D908D
+ str r0, [r1]
+ ldr r1, _08019C00 @ =gUnknown_2023E82
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+_08019B84:
+ movs r0, 0x2
+_08019B86:
+ mov r9, r0
+ ldr r1, _08019C04 @ =gUnknown_2023FE8
+ mov r8, r1
+_08019B8C:
+ mov r2, r8
+ ldr r1, [r2]
+_08019B90:
+ adds r1, 0xB7
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08019B98:
+ mov r4, r8
+ ldr r0, [r4]
+ adds r0, 0xB7
+ ldrb r0, [r0]
+ cmp r0, 0xF
+ beq _08019BA8
+ bl _080192F8
+_08019BA8:
+ mov r7, r9
+ cmp r7, 0x2
+ bne _08019BD4
+ ldr r4, _08019C08 @ =gUnknown_2023BC4
+ ldr r0, _08019BEC @ =gUnknown_2023D6B
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ ldr r1, _08019C0C @ =gUnknown_2023C30
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl sub_800DFF0
+ ldrb r0, [r4]
+ bl sub_8017248
+_08019BD4:
+ mov r0, r9
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08019BE8: .4byte gUnknown_2023BE4
+_08019BEC: .4byte gUnknown_2023D6B
+_08019BF0: .4byte gUnknown_8250C04
+_08019BF4: .4byte gUnknown_2023D4A
+_08019BF8: .4byte gUnknown_2023D74
+_08019BFC: .4byte gUnknown_81D908D
+_08019C00: .4byte gUnknown_2023E82
+_08019C04: .4byte gUnknown_2023FE8
+_08019C08: .4byte gUnknown_2023BC4
+_08019C0C: .4byte gUnknown_2023C30
+ thumb_func_end sub_80192D4
+
+ thumb_func_start sub_8019C10
+sub_8019C10: @ 8019C10
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r3, r4, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ ldr r0, _08019C3C @ =gUnknown_2022B4C
+ ldr r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08019C40
+ movs r0, 0
+ b _08019D90
+ .align 2, 0
+_08019C3C: .4byte gUnknown_2022B4C
+_08019C40:
+ movs r0, 0x40
+ ands r1, r0
+ cmp r1, 0
+ beq _08019CCC
+ adds r0, r4, 0
+ bl sub_8043658
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r4, 0
+ bl sub_80751C4
+ lsls r0, 24
+ ldr r1, _08019CC4 @ =gUnknown_202402C
+ mov r8, r1
+ cmp r0, 0
+ bne _08019C66
+ ldr r0, _08019CC8 @ =gUnknown_2024284
+ mov r8, r0
+_08019C66:
+ adds r0, r7, 0
+ bl sub_8043620
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 1
+ adds r5, r0, r6
+ adds r0, r5, 0x3
+ cmp r5, r0
+ bge _08019CB2
+ adds r7, r0, 0
+_08019C7C:
+ movs r0, 0x64
+ muls r0, r5
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl sub_803FBE8
+ cmp r0, 0
+ beq _08019CAC
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl sub_803FBE8
+ cmp r0, 0
+ beq _08019CAC
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl sub_803FBE8
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ bne _08019CB2
+_08019CAC:
+ adds r5, 0x1
+ cmp r5, r7
+ blt _08019C7C
+_08019CB2:
+ movs r1, 0
+ lsls r0, r6, 1
+ adds r0, r6
+ adds r0, 0x3
+ cmp r5, r0
+ bne _08019CC0
+ movs r1, 0x1
+_08019CC0:
+ adds r0, r1, 0
+ b _08019D90
+ .align 2, 0
+_08019CC4: .4byte gUnknown_202402C
+_08019CC8: .4byte gUnknown_2024284
+_08019CCC:
+ adds r0, r3, 0
+ bl sub_80751C4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08019CF8
+ movs r0, 0x1
+ bl sub_80751E8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r0, 0x3
+ bl sub_80751E8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _08019CF4 @ =gUnknown_202402C
+ mov r8, r0
+ b _08019D10
+ .align 2, 0
+_08019CF4: .4byte gUnknown_202402C
+_08019CF8:
+ movs r0, 0
+ bl sub_80751E8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r0, 0x2
+ bl sub_80751E8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _08019DA0 @ =gUnknown_2024284
+ mov r8, r1
+_08019D10:
+ mov r0, r10
+ cmp r0, 0x6
+ bne _08019D20
+ ldr r1, _08019DA4 @ =gUnknown_2023BCE
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ mov r10, r0
+_08019D20:
+ mov r1, r9
+ cmp r1, 0x6
+ bne _08019D30
+ ldr r1, _08019DA4 @ =gUnknown_2023BCE
+ lsls r0, r6, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ mov r9, r0
+_08019D30:
+ movs r5, 0
+_08019D32:
+ movs r0, 0x64
+ muls r0, r5
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl sub_803FBE8
+ cmp r0, 0
+ beq _08019D82
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl sub_803FBE8
+ cmp r0, 0
+ beq _08019D82
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl sub_803FBE8
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _08019D82
+ cmp r5, r10
+ beq _08019D82
+ cmp r5, r9
+ beq _08019D82
+ ldr r0, _08019DA8 @ =gUnknown_2023FE8
+ ldr r1, [r0]
+ adds r0, r7, r1
+ adds r0, 0x5C
+ ldrb r0, [r0]
+ cmp r5, r0
+ beq _08019D82
+ adds r0, r6, r1
+ adds r0, 0x5C
+ ldrb r0, [r0]
+ cmp r5, r0
+ bne _08019D88
+_08019D82:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _08019D32
+_08019D88:
+ movs r0, 0
+ cmp r5, 0x6
+ bne _08019D90
+ movs r0, 0x1
+_08019D90:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08019DA0: .4byte gUnknown_2024284
+_08019DA4: .4byte gUnknown_2023BCE
+_08019DA8: .4byte gUnknown_2023FE8
+ thumb_func_end sub_8019C10
+
+ thumb_func_start sub_8019DAC
+sub_8019DAC: @ 8019DAC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ ldr r1, _08019E1C @ =gUnknown_2023BE4
+ movs r0, 0x58
+ muls r0, r6
+ adds r4, r0, r1
+ ldrh r1, [r4]
+ ldr r0, _08019E20 @ =0x00000181
+ cmp r1, r0
+ bne _08019E50
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x3B
+ bne _08019E50
+ ldrh r0, [r4, 0x28]
+ cmp r0, 0
+ beq _08019E50
+ str r5, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl sub_8019F18
+ lsls r0, 24
+ cmp r0, 0
+ bne _08019DFE
+ str r5, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl sub_8019F18
+ lsls r0, 24
+ cmp r0, 0
+ beq _08019E24
+_08019DFE:
+ adds r2, r4, 0
+ adds r2, 0x21
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _08019E24
+ adds r1, r4, 0
+ adds r1, 0x22
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08019E24
+ strb r5, [r2]
+ strb r5, [r1]
+ movs r0, 0x1
+ b _08019F08
+ .align 2, 0
+_08019E1C: .4byte gUnknown_2023BE4
+_08019E20: .4byte 0x00000181
+_08019E24:
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl sub_8019F18
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _08019E50
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl sub_8019F18
+ lsls r0, 24
+ cmp r0, 0
+ beq _08019E54
+_08019E50:
+ movs r0, 0
+ b _08019F08
+_08019E54:
+ ldr r1, _08019F10 @ =gUnknown_2023F1C
+ ldrh r0, [r1]
+ movs r2, 0xE7
+ ands r2, r0
+ adds r4, r1, 0
+ cmp r2, 0
+ bne _08019E82
+ ldr r1, _08019F14 @ =gUnknown_2023BE4
+ movs r0, 0x58
+ muls r0, r6
+ adds r1, r0, r1
+ adds r3, r1, 0
+ adds r3, 0x21
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _08019E82
+ adds r1, 0x22
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08019E82
+ strb r2, [r3]
+ strb r2, [r1]
+ movs r5, 0x1
+_08019E82:
+ ldrh r1, [r4]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ beq _08019EAE
+ ldr r1, _08019F14 @ =gUnknown_2023BE4
+ movs r0, 0x58
+ muls r0, r6
+ adds r1, r0, r1
+ adds r2, r1, 0
+ adds r2, 0x21
+ ldrb r0, [r2]
+ cmp r0, 0xA
+ beq _08019EAE
+ adds r1, 0x22
+ ldrb r0, [r1]
+ cmp r0, 0xA
+ beq _08019EAE
+ movs r0, 0xA
+ strb r0, [r2]
+ strb r0, [r1]
+ movs r5, 0x2
+_08019EAE:
+ ldrh r1, [r4]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _08019EDA
+ ldr r1, _08019F14 @ =gUnknown_2023BE4
+ movs r0, 0x58
+ muls r0, r6
+ adds r1, r0, r1
+ adds r2, r1, 0
+ adds r2, 0x21
+ ldrb r0, [r2]
+ cmp r0, 0xB
+ beq _08019EDA
+ adds r1, 0x22
+ ldrb r0, [r1]
+ cmp r0, 0xB
+ beq _08019EDA
+ movs r0, 0xB
+ strb r0, [r2]
+ strb r0, [r1]
+ movs r5, 0x3
+_08019EDA:
+ ldrh r1, [r4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08019F06
+ ldr r1, _08019F14 @ =gUnknown_2023BE4
+ movs r0, 0x58
+ muls r0, r6
+ adds r1, r0, r1
+ adds r2, r1, 0
+ adds r2, 0x21
+ ldrb r0, [r2]
+ cmp r0, 0xF
+ beq _08019F06
+ adds r1, 0x22
+ ldrb r0, [r1]
+ cmp r0, 0xF
+ beq _08019F06
+ movs r0, 0xF
+ strb r0, [r2]
+ strb r0, [r1]
+ movs r5, 0x4
+_08019F06:
+ adds r0, r5, 0
+_08019F08:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08019F10: .4byte gUnknown_2023F1C
+_08019F14: .4byte gUnknown_2023BE4
+ thumb_func_end sub_8019DAC
+
+ thumb_func_start sub_8019F18
+sub_8019F18: @ 8019F18
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x28
+ ldr r4, [sp, 0x48]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r7, r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ lsls r4, 16
+ lsrs r4, 16
+ movs r0, 0
+ mov r9, r0
+ ldr r5, _08019F74 @ =gUnknown_2023D6B
+ ldr r1, _08019F78 @ =gUnknown_2023BCC
+ ldrb r0, [r5]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08019F54
+ mov r1, r10
+ strb r1, [r5]
+_08019F54:
+ ldrb r0, [r5]
+ bl sub_80751C4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08019F84
+ ldr r1, _08019F7C @ =gUnknown_2023BCE
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08019F80 @ =gUnknown_2024284
+ b _08019F94
+ .align 2, 0
+_08019F74: .4byte gUnknown_2023D6B
+_08019F78: .4byte gUnknown_2023BCC
+_08019F7C: .4byte gUnknown_2023BCE
+_08019F80: .4byte gUnknown_2024284
+_08019F84:
+ ldr r1, _08019FC4 @ =gUnknown_2023BCE
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08019FC8 @ =gUnknown_202402C
+_08019F94:
+ adds r6, r1, r0
+ ldr r5, _08019FCC @ =gUnknown_2023D6C
+ ldr r1, _08019FD0 @ =gUnknown_2023BCC
+ ldrb r0, [r5]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08019FA6
+ mov r2, r10
+ strb r2, [r5]
+_08019FA6:
+ ldrb r0, [r5]
+ bl sub_80751C4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08019FD8
+ ldr r1, _08019FC4 @ =gUnknown_2023BCE
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08019FD4 @ =gUnknown_2024284
+ b _08019FE8
+ .align 2, 0
+_08019FC4: .4byte gUnknown_2023BCE
+_08019FC8: .4byte gUnknown_202402C
+_08019FCC: .4byte gUnknown_2023D6C
+_08019FD0: .4byte gUnknown_2023BCC
+_08019FD4: .4byte gUnknown_2024284
+_08019FD8:
+ ldr r1, _0801A038 @ =gUnknown_2023BCE
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _0801A03C @ =gUnknown_202402C
+_08019FE8:
+ adds r5, r1, r0
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl sub_803FBE8
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_803FBE8
+ str r0, [sp, 0x10]
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl sub_803FBE8
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0xC]
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_803FBE8
+ str r0, [sp, 0x14]
+ ldr r0, _0801A040 @ =gUnknown_2022B4C
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0801A02A
+ bl _0801BBC6
+_0801A02A:
+ mov r3, r8
+ cmp r3, 0
+ beq _0801A048
+ ldr r0, _0801A044 @ =gUnknown_2023D6A
+ strb r3, [r0]
+ mov r8, r0
+ b _0801A05E
+ .align 2, 0
+_0801A038: .4byte gUnknown_2023BCE
+_0801A03C: .4byte gUnknown_202402C
+_0801A040: .4byte gUnknown_2022B4C
+_0801A044: .4byte gUnknown_2023D6A
+_0801A048:
+ ldr r2, _0801A078 @ =gUnknown_2023D6A
+ ldr r1, _0801A07C @ =gUnknown_2023BE4
+ movs r0, 0x58
+ mov r3, r10
+ muls r3, r0
+ adds r0, r3, 0
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+ strb r0, [r2]
+ mov r8, r2
+_0801A05E:
+ cmp r4, 0
+ bne _0801A066
+ ldr r0, _0801A080 @ =gUnknown_2023D4A
+ ldrh r4, [r0]
+_0801A066:
+ ldr r1, _0801A084 @ =gUnknown_2023FE8
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x13]
+ adds r6, r1, 0
+ cmp r0, 0
+ beq _0801A088
+ movs r5, 0x3F
+ ands r5, r0
+ b _0801A094
+ .align 2, 0
+_0801A078: .4byte gUnknown_2023D6A
+_0801A07C: .4byte gUnknown_2023BE4
+_0801A080: .4byte gUnknown_2023D4A
+_0801A084: .4byte gUnknown_2023FE8
+_0801A088:
+ ldr r1, _0801A0D0 @ =gUnknown_8250C04
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrb r5, [r0, 0x2]
+_0801A094:
+ ldr r0, _0801A0D4 @ =gUnknown_2022B4C
+ ldr r0, [r0]
+ movs r1, 0xA0
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 8
+ cmp r0, r1
+ bne _0801A0BA
+ mov r1, r8
+ ldrb r0, [r1]
+ cmp r0, 0x16
+ bne _0801A0B2
+ bl _0801BBC6
+_0801A0B2:
+ cmp r0, 0x24
+ bne _0801A0BA
+ bl _0801BBC6
+_0801A0BA:
+ ldr r2, [sp, 0x4]
+ cmp r2, 0x13
+ bls _0801A0C4
+ bl _0801BBAA
+_0801A0C4:
+ lsls r0, r2, 2
+ ldr r1, _0801A0D8 @ =_0801A0DC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801A0D0: .4byte gUnknown_8250C04
+_0801A0D4: .4byte gUnknown_2022B4C
+_0801A0D8: .4byte _0801A0DC
+ .align 2, 0
+_0801A0DC:
+ .4byte _0801A12C
+ .4byte _0801A3E0
+ .4byte _0801A600
+ .4byte _0801A698
+ .4byte _0801A8B8
+ .4byte _0801B010
+ .4byte _0801B374
+ .4byte _0801B3C8
+ .4byte _0801B450
+ .4byte _0801B4D4
+ .4byte _0801B6FC
+ .4byte _0801B518
+ .4byte _0801B740
+ .4byte _0801B79C
+ .4byte _0801B7F8
+ .4byte _0801B90C
+ .4byte _0801B9A8
+ .4byte _0801BA04
+ .4byte _0801BB78
+ .4byte _0801B8B4
+_0801A12C:
+ ldr r2, _0801A160 @ =gUnknown_2023D6B
+ ldr r0, _0801A164 @ =gUnknown_2023BCC
+ ldrb r1, [r2]
+ adds r3, r0, 0
+ ldrb r4, [r3]
+ cmp r1, r4
+ bcc _0801A13E
+ mov r0, r10
+ strb r0, [r2]
+_0801A13E:
+ mov r1, r8
+ ldrb r0, [r1]
+ cmp r0, 0x2D
+ bne _0801A148
+ b _0801A2AC
+_0801A148:
+ cmp r0, 0x2D
+ bgt _0801A178
+ cmp r0, 0xD
+ bne _0801A152
+ b _0801A3A8
+_0801A152:
+ cmp r0, 0xD
+ bgt _0801A168
+ cmp r0, 0x2
+ bne _0801A15C
+ b _0801A27C
+_0801A15C:
+ bl _0801BBAA
+ .align 2, 0
+_0801A160: .4byte gUnknown_2023D6B
+_0801A164: .4byte gUnknown_2023BCC
+_0801A168:
+ cmp r0, 0x16
+ bne _0801A16E
+ b _0801A30C
+_0801A16E:
+ cmp r0, 0x24
+ bne _0801A174
+ b _0801A36C
+_0801A174:
+ bl _0801BBAA
+_0801A178:
+ cmp r0, 0x46
+ bne _0801A17E
+ b _0801A2DC
+_0801A17E:
+ cmp r0, 0x46
+ bgt _0801A18C
+ cmp r0, 0x3B
+ bne _0801A188
+ b _0801A340
+_0801A188:
+ bl _0801BBAA
+_0801A18C:
+ cmp r0, 0x4D
+ bne _0801A192
+ b _0801A3A8
+_0801A192:
+ cmp r0, 0xFF
+ beq _0801A19A
+ bl _0801BBAA
+_0801A19A:
+ bl sub_807AF98
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x3
+ cmp r0, 0xA
+ bhi _0801A250
+ lsls r0, 2
+ ldr r1, _0801A1B4 @ =_0801A1B8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801A1B4: .4byte _0801A1B8
+ .align 2, 0
+_0801A1B8:
+ .4byte _0801A1E4
+ .4byte _0801A250
+ .4byte _0801A1E4
+ .4byte _0801A250
+ .4byte _0801A250
+ .4byte _0801A208
+ .4byte _0801A250
+ .4byte _0801A250
+ .4byte _0801A250
+ .4byte _0801A22C
+ .4byte _0801A1E4
+_0801A1E4:
+ ldr r2, _0801A200 @ =gUnknown_2023F1C
+ ldrh r1, [r2]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801A250
+ movs r0, 0x5
+ strh r0, [r2]
+ ldr r1, _0801A204 @ =gUnknown_2023FC4
+ movs r0, 0xA
+ strb r0, [r1, 0x10]
+ mov r2, r10
+ strb r2, [r1, 0x17]
+ b _0801A246
+ .align 2, 0
+_0801A200: .4byte gUnknown_2023F1C
+_0801A204: .4byte gUnknown_2023FC4
+_0801A208:
+ ldr r3, _0801A224 @ =gUnknown_2023F1C
+ ldrh r1, [r3]
+ movs r2, 0x18
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0801A250
+ strh r2, [r3]
+ ldr r1, _0801A228 @ =gUnknown_2023FC4
+ movs r0, 0xC
+ strb r0, [r1, 0x10]
+ mov r3, r10
+ strb r3, [r1, 0x17]
+ b _0801A246
+ .align 2, 0
+_0801A224: .4byte gUnknown_2023F1C
+_0801A228: .4byte gUnknown_2023FC4
+_0801A22C:
+ ldr r3, _0801A26C @ =gUnknown_2023F1C
+ ldrh r1, [r3]
+ movs r2, 0x60
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0801A250
+ strh r2, [r3]
+ ldr r1, _0801A270 @ =gUnknown_2023FC4
+ movs r0, 0xB
+ strb r0, [r1, 0x10]
+ mov r4, r10
+ strb r4, [r1, 0x17]
+_0801A246:
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801A250:
+ mov r0, r9
+ cmp r0, 0
+ bne _0801A25A
+ bl _0801BBC6
+_0801A25A:
+ bl sub_807AF98
+ ldr r1, _0801A274 @ =gUnknown_2023E82
+ strb r0, [r1, 0x5]
+ ldr r0, _0801A278 @ =gUnknown_81D8B1F
+ bl sub_801BC24
+ bl _0801BBAA
+ .align 2, 0
+_0801A26C: .4byte gUnknown_2023F1C
+_0801A270: .4byte gUnknown_2023FC4
+_0801A274: .4byte gUnknown_2023E82
+_0801A278: .4byte gUnknown_81D8B1F
+_0801A27C:
+ ldr r2, _0801A2A0 @ =gUnknown_2023F1C
+ ldrh r1, [r2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0801A28C
+ bl _0801BBAA
+_0801A28C:
+ movs r0, 0x5
+ strh r0, [r2]
+ ldr r0, _0801A2A4 @ =gUnknown_81D927F
+ bl sub_801BC24
+ ldr r0, _0801A2A8 @ =gUnknown_2023FC4
+ mov r1, r10
+ strb r1, [r0, 0x17]
+ bl _0801BB5A
+ .align 2, 0
+_0801A2A0: .4byte gUnknown_2023F1C
+_0801A2A4: .4byte gUnknown_81D927F
+_0801A2A8: .4byte gUnknown_2023FC4
+_0801A2AC:
+ ldr r2, _0801A2D0 @ =gUnknown_2023F1C
+ ldrh r1, [r2]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0801A2BC
+ bl _0801BBAA
+_0801A2BC:
+ movs r0, 0x18
+ strh r0, [r2]
+ ldr r0, _0801A2D4 @ =gUnknown_81D92BF
+ bl sub_801BC24
+ ldr r0, _0801A2D8 @ =gUnknown_2023FC4
+ mov r2, r10
+ strb r2, [r0, 0x17]
+ bl _0801BB5A
+ .align 2, 0
+_0801A2D0: .4byte gUnknown_2023F1C
+_0801A2D4: .4byte gUnknown_81D92BF
+_0801A2D8: .4byte gUnknown_2023FC4
+_0801A2DC:
+ ldr r2, _0801A300 @ =gUnknown_2023F1C
+ ldrh r1, [r2]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0801A2EC
+ bl _0801BBAA
+_0801A2EC:
+ movs r0, 0x60
+ strh r0, [r2]
+ ldr r0, _0801A304 @ =gUnknown_81D9379
+ bl sub_801BC24
+ ldr r0, _0801A308 @ =gUnknown_2023FC4
+ mov r3, r10
+ strb r3, [r0, 0x17]
+ bl _0801BB5A
+ .align 2, 0
+_0801A300: .4byte gUnknown_2023F1C
+_0801A304: .4byte gUnknown_81D9379
+_0801A308: .4byte gUnknown_2023FC4
+_0801A30C:
+ ldr r0, _0801A338 @ =gUnknown_2023ECC
+ mov r4, r10
+ lsls r2, r4, 2
+ adds r1, r2, r4
+ lsls r1, 2
+ adds r3, r1, r0
+ ldrb r0, [r3]
+ lsls r0, 28
+ cmp r0, 0
+ bge _0801A324
+ bl _0801BBAA
+_0801A324:
+ ldr r1, _0801A33C @ =gUnknown_2023DFC
+ adds r1, r2, r1
+ ldr r0, [r1]
+ movs r2, 0x80
+ lsls r2, 12
+ orrs r0, r2
+ str r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x8
+ b _0801A396
+ .align 2, 0
+_0801A338: .4byte gUnknown_2023ECC
+_0801A33C: .4byte gUnknown_2023DFC
+_0801A340:
+ mov r0, r10
+ bl sub_8019DAC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ cmp r0, 0
+ bne _0801A354
+ bl _0801BBC6
+_0801A354:
+ ldr r0, _0801A364 @ =gUnknown_81D92F8
+ bl sub_801BC24
+ ldr r0, _0801A368 @ =gUnknown_2023FC4
+ mov r1, r10
+ strb r1, [r0, 0x17]
+ bl _0801BA6A
+ .align 2, 0
+_0801A364: .4byte gUnknown_81D92F8
+_0801A368: .4byte gUnknown_2023FC4
+_0801A36C:
+ ldr r0, _0801A3A0 @ =gUnknown_2023ECC
+ mov r3, r10
+ lsls r2, r3, 2
+ adds r1, r2, r3
+ lsls r1, 2
+ adds r3, r1, r0
+ ldrb r0, [r3]
+ lsls r0, 27
+ cmp r0, 0
+ bge _0801A384
+ bl _0801BBAA
+_0801A384:
+ ldr r1, _0801A3A4 @ =gUnknown_2023DFC
+ adds r1, r2, r1
+ ldr r0, [r1]
+ movs r2, 0x80
+ lsls r2, 13
+ orrs r0, r2
+ str r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x10
+_0801A396:
+ orrs r0, r1
+ strb r0, [r3]
+ bl _0801BBAA
+ .align 2, 0
+_0801A3A0: .4byte gUnknown_2023ECC
+_0801A3A4: .4byte gUnknown_2023DFC
+_0801A3A8:
+ movs r4, 0
+ ldrb r3, [r3]
+ cmp r4, r3
+ bcc _0801A3B4
+ bl _0801BBAA
+_0801A3B4:
+ adds r0, r4, 0
+ bl sub_8019DAC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ cmp r0, 0
+ beq _0801A3C8
+ bl _0801BA60
+_0801A3C8:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0801A3DC @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _0801A3B4
+ bl _0801BBAA
+ .align 2, 0
+_0801A3DC: .4byte gUnknown_2023BCC
+_0801A3E0:
+ ldr r7, _0801A410 @ =gUnknown_2023BE4
+ movs r0, 0x58
+ mov r6, r10
+ muls r6, r0
+ adds r4, r6, r7
+ ldrh r0, [r4, 0x28]
+ cmp r0, 0
+ bne _0801A3F4
+ bl _0801BBAA
+_0801A3F4:
+ ldr r0, _0801A414 @ =gUnknown_2023D6B
+ mov r1, r10
+ strb r1, [r0]
+ mov r2, r8
+ ldrb r5, [r2]
+ cmp r5, 0x2C
+ beq _0801A426
+ cmp r5, 0x2C
+ bgt _0801A418
+ cmp r5, 0x3
+ bne _0801A40C
+ b _0801A58C
+_0801A40C:
+ bl _0801BBAA
+ .align 2, 0
+_0801A410: .4byte gUnknown_2023BE4
+_0801A414: .4byte gUnknown_2023D6B
+_0801A418:
+ cmp r5, 0x36
+ bne _0801A41E
+ b _0801A5D8
+_0801A41E:
+ cmp r5, 0x3D
+ beq _0801A4A8
+ bl _0801BBAA
+_0801A426:
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl sub_8019F18
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _0801A442
+ bl _0801BBAA
+_0801A442:
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl sub_8019F18
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801A45A
+ bl _0801BBAA
+_0801A45A:
+ ldr r0, _0801A49C @ =gUnknown_2023F1C
+ ldrh r1, [r0]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801A46A
+ bl _0801BBAA
+_0801A46A:
+ ldrh r0, [r4, 0x2C]
+ ldrh r3, [r4, 0x28]
+ cmp r0, r3
+ bhi _0801A476
+ bl _0801BBAA
+_0801A476:
+ mov r0, r8
+ strb r5, [r0]
+ ldr r0, _0801A4A0 @ =gUnknown_81D92AB
+ bl sub_801BC24
+ ldr r1, _0801A4A4 @ =gUnknown_2023D50
+ ldrh r0, [r4, 0x2C]
+ lsrs r0, 4
+ str r0, [r1]
+ cmp r0, 0
+ bne _0801A490
+ movs r0, 0x1
+ str r0, [r1]
+_0801A490:
+ ldr r0, [r1]
+ negs r0, r0
+ str r0, [r1]
+ bl _0801BB5A
+ .align 2, 0
+_0801A49C: .4byte gUnknown_2023F1C
+_0801A4A0: .4byte gUnknown_81D92AB
+_0801A4A4: .4byte gUnknown_2023D50
+_0801A4A8:
+ adds r0, r7, 0
+ adds r0, 0x4C
+ adds r5, r6, r0
+ ldrb r0, [r5]
+ cmp r0, 0
+ bne _0801A4B8
+ bl _0801BBAA
+_0801A4B8:
+ bl sub_8044EC8
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _0801A4D2
+ bl _0801BBAA
+_0801A4D2:
+ ldr r0, [r5]
+ movs r1, 0x88
+ ands r0, r1
+ cmp r0, 0
+ beq _0801A4E4
+ ldr r0, _0801A564 @ =gUnknown_2022AB8
+ ldr r1, _0801A568 @ =gUnknown_8250094
+ bl sub_8008D84
+_0801A4E4:
+ ldr r0, [r5]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _0801A4F6
+ ldr r0, _0801A564 @ =gUnknown_2022AB8
+ ldr r1, _0801A56C @ =gUnknown_825009C
+ bl sub_8008D84
+_0801A4F6:
+ ldr r0, [r5]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0801A508
+ ldr r0, _0801A564 @ =gUnknown_2022AB8
+ ldr r1, _0801A570 @ =gUnknown_82500A4
+ bl sub_8008D84
+_0801A508:
+ ldr r0, [r5]
+ movs r1, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0801A51A
+ ldr r0, _0801A564 @ =gUnknown_2022AB8
+ ldr r1, _0801A574 @ =gUnknown_82500AC
+ bl sub_8008D84
+_0801A51A:
+ ldr r0, [r5]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0801A52C
+ ldr r0, _0801A564 @ =gUnknown_2022AB8
+ ldr r1, _0801A578 @ =gUnknown_82500B4
+ bl sub_8008D84
+_0801A52C:
+ str r4, [r5]
+ adds r1, r7, 0
+ adds r1, 0x50
+ adds r1, r6, r1
+ ldr r0, [r1]
+ ldr r2, _0801A57C @ =0xf7ffffff
+ ands r0, r2
+ str r0, [r1]
+ ldr r0, _0801A580 @ =gUnknown_2023FC4
+ ldr r4, _0801A584 @ =gUnknown_2023BC4
+ mov r1, r10
+ strb r1, [r4]
+ strb r1, [r0, 0x17]
+ ldr r0, _0801A588 @ =gUnknown_81D92D3
+ bl sub_801BC24
+ str r5, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl sub_800DFF0
+ ldrb r0, [r4]
+ bl sub_8017248
+ bl _0801BB5A
+ .align 2, 0
+_0801A564: .4byte gUnknown_2022AB8
+_0801A568: .4byte gUnknown_8250094
+_0801A56C: .4byte gUnknown_825009C
+_0801A570: .4byte gUnknown_82500A4
+_0801A574: .4byte gUnknown_82500AC
+_0801A578: .4byte gUnknown_82500B4
+_0801A57C: .4byte 0xf7ffffff
+_0801A580: .4byte gUnknown_2023FC4
+_0801A584: .4byte gUnknown_2023BC4
+_0801A588: .4byte gUnknown_81D92D3
+_0801A58C:
+ ldrb r2, [r4, 0x1B]
+ movs r0, 0x1B
+ ldrsb r0, [r4, r0]
+ cmp r0, 0xB
+ ble _0801A59A
+ bl _0801BBAA
+_0801A59A:
+ ldr r0, _0801A5CC @ =gUnknown_2023E0C
+ mov r3, r10
+ lsls r1, r3, 3
+ subs r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x16]
+ cmp r0, 0x2
+ bne _0801A5B0
+ bl _0801BBAA
+_0801A5B0:
+ adds r0, r2, 0x1
+ movs r1, 0
+ strb r0, [r4, 0x1B]
+ ldr r4, _0801A5D0 @ =gUnknown_2023FC4
+ movs r0, 0x11
+ strb r0, [r4, 0x10]
+ strb r1, [r4, 0x11]
+ ldr r0, _0801A5D4 @ =gUnknown_81D9293
+ bl sub_801BC24
+ mov r0, r10
+ strb r0, [r4, 0x17]
+ bl _0801BB5A
+ .align 2, 0
+_0801A5CC: .4byte gUnknown_2023E0C
+_0801A5D0: .4byte gUnknown_2023FC4
+_0801A5D4: .4byte gUnknown_81D9293
+_0801A5D8:
+ ldr r2, _0801A5FC @ =gUnknown_2023E0C
+ ldrb r0, [r0]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r3, [r1, 0x18]
+ lsls r0, r3, 31
+ lsrs r0, 31
+ movs r2, 0x1
+ eors r2, r0
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0x18]
+ bl _0801BBAA
+ .align 2, 0
+_0801A5FC: .4byte gUnknown_2023E0C
+_0801A600:
+ mov r1, r8
+ ldrb r0, [r1]
+ cmp r0, 0x2B
+ beq _0801A60C
+ bl _0801BBAA
+_0801A60C:
+ movs r5, 0
+ ldr r0, _0801A67C @ =gUnknown_8250104
+ ldrh r2, [r0]
+ ldr r3, _0801A680 @ =0x0000ffff
+ adds r1, r0, 0
+ cmp r2, r3
+ bne _0801A61E
+ bl _0801BBAA
+_0801A61E:
+ cmp r2, r4
+ beq _0801A636
+ adds r2, r1, 0
+_0801A624:
+ adds r2, 0x2
+ adds r5, 0x1
+ ldrh r0, [r2]
+ cmp r0, r3
+ bne _0801A632
+ bl _0801BBAA
+_0801A632:
+ cmp r0, r4
+ bne _0801A624
+_0801A636:
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r0, _0801A680 @ =0x0000ffff
+ cmp r1, r0
+ bne _0801A646
+ bl _0801BBAA
+_0801A646:
+ ldr r1, _0801A684 @ =gUnknown_2023BE4
+ ldr r0, _0801A688 @ =gUnknown_2023D6B
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _0801A66C
+ ldr r0, _0801A68C @ =gUnknown_2023DD0
+ ldr r1, [r0]
+ movs r2, 0x80
+ lsls r2, 4
+ orrs r1, r2
+ str r1, [r0]
+_0801A66C:
+ ldr r1, _0801A690 @ =gUnknown_2023D74
+ ldr r0, _0801A694 @ =gUnknown_81D946E
+ str r0, [r1]
+ movs r2, 0x1
+ mov r9, r2
+ bl _0801BBB0
+ .align 2, 0
+_0801A67C: .4byte gUnknown_8250104
+_0801A680: .4byte 0x0000ffff
+_0801A684: .4byte gUnknown_2023BE4
+_0801A688: .4byte gUnknown_2023D6B
+_0801A68C: .4byte gUnknown_2023DD0
+_0801A690: .4byte gUnknown_2023D74
+_0801A694: .4byte gUnknown_81D946E
+_0801A698:
+ cmp r4, 0
+ bne _0801A6A0
+ bl _0801BBAA
+_0801A6A0:
+ mov r3, r8
+ ldrb r0, [r3]
+ cmp r0, 0xB
+ beq _0801A710
+ cmp r0, 0xB
+ bgt _0801A6B2
+ cmp r0, 0xA
+ beq _0801A6B8
+ b _0801A832
+_0801A6B2:
+ cmp r0, 0x12
+ beq _0801A768
+ b _0801A832
+_0801A6B8:
+ cmp r5, 0xD
+ beq _0801A6BE
+ b _0801A832
+_0801A6BE:
+ ldr r0, _0801A6E8 @ =gUnknown_8250C04
+ lsls r1, r4, 1
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _0801A6D0
+ b _0801A832
+_0801A6D0:
+ ldr r1, _0801A6EC @ =gUnknown_2023E8C
+ ldr r0, _0801A6F0 @ =gUnknown_2023D6B
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ lsls r0, 28
+ cmp r0, 0
+ bge _0801A6FC
+ ldr r1, _0801A6F4 @ =gUnknown_2023D74
+ ldr r0, _0801A6F8 @ =gUnknown_81D93BE
+ b _0801A700
+ .align 2, 0
+_0801A6E8: .4byte gUnknown_8250C04
+_0801A6EC: .4byte gUnknown_2023E8C
+_0801A6F0: .4byte gUnknown_2023D6B
+_0801A6F4: .4byte gUnknown_2023D74
+_0801A6F8: .4byte gUnknown_81D93BE
+_0801A6FC:
+ ldr r1, _0801A708 @ =gUnknown_2023D74
+ ldr r0, _0801A70C @ =gUnknown_81D93BD
+_0801A700:
+ str r0, [r1]
+ movs r4, 0x1
+ mov r9, r4
+ b _0801A832
+ .align 2, 0
+_0801A708: .4byte gUnknown_2023D74
+_0801A70C: .4byte gUnknown_81D93BD
+_0801A710:
+ cmp r5, 0xB
+ beq _0801A716
+ b _0801A832
+_0801A716:
+ ldr r0, _0801A740 @ =gUnknown_8250C04
+ lsls r1, r4, 1
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _0801A728
+ b _0801A832
+_0801A728:
+ ldr r1, _0801A744 @ =gUnknown_2023E8C
+ ldr r0, _0801A748 @ =gUnknown_2023D6B
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ lsls r0, 28
+ cmp r0, 0
+ bge _0801A754
+ ldr r1, _0801A74C @ =gUnknown_2023D74
+ ldr r0, _0801A750 @ =gUnknown_81D93BE
+ b _0801A758
+ .align 2, 0
+_0801A740: .4byte gUnknown_8250C04
+_0801A744: .4byte gUnknown_2023E8C
+_0801A748: .4byte gUnknown_2023D6B
+_0801A74C: .4byte gUnknown_2023D74
+_0801A750: .4byte gUnknown_81D93BE
+_0801A754:
+ ldr r1, _0801A760 @ =gUnknown_2023D74
+ ldr r0, _0801A764 @ =gUnknown_81D93BD
+_0801A758:
+ str r0, [r1]
+ movs r0, 0x1
+ b _0801A830
+ .align 2, 0
+_0801A760: .4byte gUnknown_2023D74
+_0801A764: .4byte gUnknown_81D93BD
+_0801A768:
+ cmp r5, 0xA
+ bne _0801A832
+ ldr r1, _0801A7B8 @ =gUnknown_2023BE4
+ movs r0, 0x58
+ mov r2, r10
+ muls r2, r0
+ adds r0, r2, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0801A832
+ ldr r2, _0801A7BC @ =gUnknown_2023FF4
+ ldr r0, [r2]
+ ldr r0, [r0, 0x4]
+ mov r3, r10
+ lsls r1, r3, 2
+ adds r0, r1
+ ldr r3, [r0]
+ movs r4, 0x1
+ ands r3, r4
+ adds r5, r1, 0
+ cmp r3, 0
+ bne _0801A7F8
+ ldr r0, _0801A7C0 @ =gUnknown_2023E82
+ strb r3, [r0, 0x5]
+ ldr r1, _0801A7C4 @ =gUnknown_2023E8C
+ ldr r0, _0801A7C8 @ =gUnknown_2023D6B
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ lsls r0, 28
+ cmp r0, 0
+ bge _0801A7D4
+ ldr r1, _0801A7CC @ =gUnknown_2023D74
+ ldr r0, _0801A7D0 @ =gUnknown_81D93F7
+ b _0801A7D8
+ .align 2, 0
+_0801A7B8: .4byte gUnknown_2023BE4
+_0801A7BC: .4byte gUnknown_2023FF4
+_0801A7C0: .4byte gUnknown_2023E82
+_0801A7C4: .4byte gUnknown_2023E8C
+_0801A7C8: .4byte gUnknown_2023D6B
+_0801A7CC: .4byte gUnknown_2023D74
+_0801A7D0: .4byte gUnknown_81D93F7
+_0801A7D4:
+ ldr r1, _0801A7F0 @ =gUnknown_2023D74
+ ldr r0, _0801A7F4 @ =gUnknown_81D93F6
+_0801A7D8:
+ str r0, [r1]
+ ldr r0, [r2]
+ ldr r1, [r0, 0x4]
+ adds r1, r5
+ ldr r0, [r1]
+ movs r2, 0x1
+ orrs r0, r2
+ str r0, [r1]
+ movs r4, 0x2
+ mov r9, r4
+ b _0801A832
+ .align 2, 0
+_0801A7F0: .4byte gUnknown_2023D74
+_0801A7F4: .4byte gUnknown_81D93F6
+_0801A7F8:
+ ldr r0, _0801A814 @ =gUnknown_2023E82
+ strb r4, [r0, 0x5]
+ ldr r1, _0801A818 @ =gUnknown_2023E8C
+ ldr r0, _0801A81C @ =gUnknown_2023D6B
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ lsls r0, 28
+ cmp r0, 0
+ bge _0801A828
+ ldr r1, _0801A820 @ =gUnknown_2023D74
+ ldr r0, _0801A824 @ =gUnknown_81D93F7
+ b _0801A82C
+ .align 2, 0
+_0801A814: .4byte gUnknown_2023E82
+_0801A818: .4byte gUnknown_2023E8C
+_0801A81C: .4byte gUnknown_2023D6B
+_0801A820: .4byte gUnknown_2023D74
+_0801A824: .4byte gUnknown_81D93F7
+_0801A828:
+ ldr r1, _0801A86C @ =gUnknown_2023D74
+ ldr r0, _0801A870 @ =gUnknown_81D93F6
+_0801A82C:
+ str r0, [r1]
+ movs r0, 0x2
+_0801A830:
+ mov r9, r0
+_0801A832:
+ mov r1, r9
+ cmp r1, 0x1
+ beq _0801A83C
+ bl _0801BBAA
+_0801A83C:
+ ldr r1, _0801A874 @ =gUnknown_2023BE4
+ movs r0, 0x58
+ mov r2, r10
+ muls r2, r0
+ adds r0, r2, 0
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2C]
+ ldrh r3, [r1, 0x28]
+ cmp r0, r3
+ bne _0801A898
+ ldr r1, _0801A878 @ =gUnknown_2023E8C
+ ldr r0, _0801A87C @ =gUnknown_2023D6B
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ lsls r0, 28
+ cmp r0, 0
+ bge _0801A884
+ ldr r1, _0801A86C @ =gUnknown_2023D74
+ ldr r0, _0801A880 @ =gUnknown_81D93E1
+ str r0, [r1]
+ bl _0801BBAA
+ .align 2, 0
+_0801A86C: .4byte gUnknown_2023D74
+_0801A870: .4byte gUnknown_81D93F6
+_0801A874: .4byte gUnknown_2023BE4
+_0801A878: .4byte gUnknown_2023E8C
+_0801A87C: .4byte gUnknown_2023D6B
+_0801A880: .4byte gUnknown_81D93E1
+_0801A884:
+ ldr r1, _0801A890 @ =gUnknown_2023D74
+ ldr r0, _0801A894 @ =gUnknown_81D93E0
+ str r0, [r1]
+ bl _0801BBAA
+ .align 2, 0
+_0801A890: .4byte gUnknown_2023D74
+_0801A894: .4byte gUnknown_81D93E0
+_0801A898:
+ ldr r2, _0801A8B4 @ =gUnknown_2023D50
+ ldrh r0, [r1, 0x2C]
+ lsrs r0, 2
+ str r0, [r2]
+ cmp r0, 0
+ bne _0801A8A8
+ mov r4, r9
+ str r4, [r2]
+_0801A8A8:
+ ldr r0, [r2]
+ negs r0, r0
+ str r0, [r2]
+ bl _0801BBAA
+ .align 2, 0
+_0801A8B4: .4byte gUnknown_2023D50
+_0801A8B8:
+ mov r1, r8
+ ldrb r0, [r1]
+ subs r0, 0x9
+ cmp r0, 0x2F
+ bls _0801A8C6
+ bl _0801BBAA
+_0801A8C6:
+ lsls r0, 2
+ ldr r1, _0801A8D0 @ =_0801A8D4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801A8D0: .4byte _0801A8D4
+ .align 2, 0
+_0801A8D4:
+ .4byte _0801ACF0
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801A994
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801AA5C
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801AB1C
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801AC14
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801ADCC
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801BBAA
+ .4byte _0801AEA8
+_0801A994:
+ ldr r0, _0801AA3C @ =gUnknown_2023DCC
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _0801A9A4
+ bl _0801BBAA
+_0801A9A4:
+ cmp r4, 0xA5
+ bne _0801A9AC
+ bl _0801BBAA
+_0801A9AC:
+ ldr r0, _0801AA40 @ =gUnknown_8250C04
+ lsls r1, r4, 1
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _0801A9C0
+ bl _0801BBAA
+_0801A9C0:
+ ldr r2, _0801AA44 @ =gUnknown_2023ECC
+ ldr r0, _0801AA48 @ =gUnknown_2023D6C
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r1, r0, 2
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801A9E8
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801A9E8
+ bl _0801BBAA
+_0801A9E8:
+ ldr r1, _0801AA4C @ =gUnknown_2023BE4
+ movs r0, 0x58
+ mov r2, r10
+ muls r2, r0
+ adds r0, r2, 0
+ adds r1, r0, r1
+ adds r3, r1, 0
+ adds r3, 0x21
+ ldrb r0, [r3]
+ cmp r0, r5
+ bne _0801AA02
+ bl _0801BBAA
+_0801AA02:
+ adds r2, r1, 0
+ adds r2, 0x22
+ ldrb r0, [r2]
+ cmp r0, r5
+ bne _0801AA10
+ bl _0801BBAA
+_0801AA10:
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ bne _0801AA1A
+ bl _0801BBAA
+_0801AA1A:
+ strb r5, [r3]
+ strb r5, [r2]
+ ldr r1, _0801AA50 @ =gUnknown_2022AB8
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x3
+ strb r0, [r1, 0x1]
+ strb r5, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ bl sub_8017544
+ ldr r1, _0801AA54 @ =gUnknown_2023D74
+ ldr r0, _0801AA58 @ =gUnknown_81D949C
+ str r0, [r1]
+ bl _0801BB5A
+ .align 2, 0
+_0801AA3C: .4byte gUnknown_2023DCC
+_0801AA40: .4byte gUnknown_8250C04
+_0801AA44: .4byte gUnknown_2023ECC
+_0801AA48: .4byte gUnknown_2023D6C
+_0801AA4C: .4byte gUnknown_2023BE4
+_0801AA50: .4byte gUnknown_2022AB8
+_0801AA54: .4byte gUnknown_2023D74
+_0801AA58: .4byte gUnknown_81D949C
+_0801AA5C:
+ ldr r0, _0801AAF4 @ =gUnknown_2023DCC
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _0801AA6C
+ bl _0801BBAA
+_0801AA6C:
+ ldr r1, _0801AAF8 @ =gUnknown_2023BE4
+ ldr r0, _0801AAFC @ =gUnknown_2023D6B
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r3, r0, r1
+ ldrh r0, [r3, 0x28]
+ cmp r0, 0
+ bne _0801AA82
+ bl _0801BBAA
+_0801AA82:
+ ldr r0, _0801AB00 @ =gUnknown_2023E8C
+ lsls r1, r2, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 31
+ cmp r0, 0
+ beq _0801AA94
+ bl _0801BBAA
+_0801AA94:
+ ldr r2, _0801AB04 @ =gUnknown_2023ECC
+ ldr r0, _0801AB08 @ =gUnknown_2023D6C
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r1, r0, 2
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801AABC
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801AABC
+ bl _0801BBAA
+_0801AABC:
+ ldr r1, _0801AB0C @ =gUnknown_8250C04
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0801AAD6
+ bl _0801BBAA
+_0801AAD6:
+ ldr r1, _0801AB10 @ =gUnknown_2023D50
+ ldrh r0, [r3, 0x2C]
+ lsrs r0, 4
+ str r0, [r1]
+ cmp r0, 0
+ bne _0801AAE4
+ str r2, [r1]
+_0801AAE4:
+ bl sub_8017544
+ ldr r1, _0801AB14 @ =gUnknown_2023D74
+ ldr r0, _0801AB18 @ =gUnknown_81D94A3
+ str r0, [r1]
+ bl _0801BB5A
+ .align 2, 0
+_0801AAF4: .4byte gUnknown_2023DCC
+_0801AAF8: .4byte gUnknown_2023BE4
+_0801AAFC: .4byte gUnknown_2023D6B
+_0801AB00: .4byte gUnknown_2023E8C
+_0801AB04: .4byte gUnknown_2023ECC
+_0801AB08: .4byte gUnknown_2023D6C
+_0801AB0C: .4byte gUnknown_8250C04
+_0801AB10: .4byte gUnknown_2023D50
+_0801AB14: .4byte gUnknown_2023D74
+_0801AB18: .4byte gUnknown_81D94A3
+_0801AB1C:
+ ldr r0, _0801ABE8 @ =gUnknown_2023DCC
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _0801AB2C
+ bl _0801BBAA
+_0801AB2C:
+ ldr r1, _0801ABEC @ =gUnknown_2023BE4
+ ldr r0, _0801ABF0 @ =gUnknown_2023D6B
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _0801AB42
+ bl _0801BBAA
+_0801AB42:
+ ldr r0, _0801ABF4 @ =gUnknown_2023E8C
+ lsls r1, r2, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 31
+ cmp r0, 0
+ beq _0801AB54
+ bl _0801BBAA
+_0801AB54:
+ ldr r2, _0801ABF8 @ =gUnknown_2023ECC
+ ldr r0, _0801ABFC @ =gUnknown_2023D6C
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r1, r0, 2
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801AB7C
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801AB7C
+ bl _0801BBAA
+_0801AB7C:
+ ldr r1, _0801AC00 @ =gUnknown_8250C04
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0801AB94
+ bl _0801BBAA
+_0801AB94:
+ bl sub_8044EC8
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _0801ABAC
+ bl _0801BBAA
+_0801ABAC:
+ ldr r5, _0801AC04 @ =gUnknown_2023E82
+ movs r4, 0x3
+_0801ABB0:
+ bl sub_8044EC8
+ ands r0, r4
+ strb r0, [r5, 0x3]
+ cmp r0, 0
+ beq _0801ABB0
+ ldr r1, _0801AC04 @ =gUnknown_2023E82
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0x3
+ bne _0801ABC8
+ adds r0, 0x2
+ strb r0, [r1, 0x3]
+_0801ABC8:
+ ldrb r0, [r1, 0x3]
+ adds r0, 0x40
+ strb r0, [r1, 0x3]
+ bl sub_8017544
+ ldr r1, _0801AC08 @ =gUnknown_2023D74
+ ldr r0, _0801AC0C @ =gUnknown_81D94CB
+ str r0, [r1]
+ ldr r2, _0801AC10 @ =gUnknown_2023DD0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 6
+ orrs r0, r1
+ str r0, [r2]
+ bl _0801BB5A
+ .align 2, 0
+_0801ABE8: .4byte gUnknown_2023DCC
+_0801ABEC: .4byte gUnknown_2023BE4
+_0801ABF0: .4byte gUnknown_2023D6B
+_0801ABF4: .4byte gUnknown_2023E8C
+_0801ABF8: .4byte gUnknown_2023ECC
+_0801ABFC: .4byte gUnknown_2023D6C
+_0801AC00: .4byte gUnknown_8250C04
+_0801AC04: .4byte gUnknown_2023E82
+_0801AC08: .4byte gUnknown_2023D74
+_0801AC0C: .4byte gUnknown_81D94CB
+_0801AC10: .4byte gUnknown_2023DD0
+_0801AC14:
+ ldr r0, _0801ACC4 @ =gUnknown_2023DCC
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _0801AC24
+ bl _0801BBAA
+_0801AC24:
+ ldr r1, _0801ACC8 @ =gUnknown_2023BE4
+ ldr r0, _0801ACCC @ =gUnknown_2023D6B
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _0801AC3A
+ bl _0801BBAA
+_0801AC3A:
+ ldr r0, _0801ACD0 @ =gUnknown_2023E8C
+ lsls r1, r2, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 31
+ cmp r0, 0
+ beq _0801AC4C
+ bl _0801BBAA
+_0801AC4C:
+ ldr r2, _0801ACD4 @ =gUnknown_2023ECC
+ ldr r0, _0801ACD8 @ =gUnknown_2023D6C
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r1, r0, 2
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801AC74
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801AC74
+ bl _0801BBAA
+_0801AC74:
+ ldr r1, _0801ACDC @ =gUnknown_8250C04
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0801AC8C
+ bl _0801BBAA
+_0801AC8C:
+ bl sub_8044EC8
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _0801ACA4
+ bl _0801BBAA
+_0801ACA4:
+ ldr r1, _0801ACE0 @ =gUnknown_2023E82
+ movs r0, 0x42
+ strb r0, [r1, 0x3]
+ bl sub_8017544
+ ldr r1, _0801ACE4 @ =gUnknown_2023D74
+ ldr r0, _0801ACE8 @ =gUnknown_81D94CB
+ str r0, [r1]
+ ldr r2, _0801ACEC @ =gUnknown_2023DD0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 6
+ orrs r0, r1
+ str r0, [r2]
+ bl _0801BB5A
+ .align 2, 0
+_0801ACC4: .4byte gUnknown_2023DCC
+_0801ACC8: .4byte gUnknown_2023BE4
+_0801ACCC: .4byte gUnknown_2023D6B
+_0801ACD0: .4byte gUnknown_2023E8C
+_0801ACD4: .4byte gUnknown_2023ECC
+_0801ACD8: .4byte gUnknown_2023D6C
+_0801ACDC: .4byte gUnknown_8250C04
+_0801ACE0: .4byte gUnknown_2023E82
+_0801ACE4: .4byte gUnknown_2023D74
+_0801ACE8: .4byte gUnknown_81D94CB
+_0801ACEC: .4byte gUnknown_2023DD0
+_0801ACF0:
+ ldr r0, _0801ADA0 @ =gUnknown_2023DCC
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _0801AD00
+ bl _0801BBAA
+_0801AD00:
+ ldr r1, _0801ADA4 @ =gUnknown_2023BE4
+ ldr r0, _0801ADA8 @ =gUnknown_2023D6B
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _0801AD16
+ bl _0801BBAA
+_0801AD16:
+ ldr r0, _0801ADAC @ =gUnknown_2023E8C
+ lsls r1, r2, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 31
+ cmp r0, 0
+ beq _0801AD28
+ bl _0801BBAA
+_0801AD28:
+ ldr r2, _0801ADB0 @ =gUnknown_2023ECC
+ ldr r0, _0801ADB4 @ =gUnknown_2023D6C
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r1, r0, 2
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801AD50
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801AD50
+ bl _0801BBAA
+_0801AD50:
+ ldr r1, _0801ADB8 @ =gUnknown_8250C04
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0801AD68
+ bl _0801BBAA
+_0801AD68:
+ bl sub_8044EC8
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _0801AD80
+ bl _0801BBAA
+_0801AD80:
+ ldr r1, _0801ADBC @ =gUnknown_2023E82
+ movs r0, 0x45
+ strb r0, [r1, 0x3]
+ bl sub_8017544
+ ldr r1, _0801ADC0 @ =gUnknown_2023D74
+ ldr r0, _0801ADC4 @ =gUnknown_81D94CB
+ str r0, [r1]
+ ldr r2, _0801ADC8 @ =gUnknown_2023DD0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 6
+ orrs r0, r1
+ str r0, [r2]
+ bl _0801BB5A
+ .align 2, 0
+_0801ADA0: .4byte gUnknown_2023DCC
+_0801ADA4: .4byte gUnknown_2023BE4
+_0801ADA8: .4byte gUnknown_2023D6B
+_0801ADAC: .4byte gUnknown_2023E8C
+_0801ADB0: .4byte gUnknown_2023ECC
+_0801ADB4: .4byte gUnknown_2023D6C
+_0801ADB8: .4byte gUnknown_8250C04
+_0801ADBC: .4byte gUnknown_2023E82
+_0801ADC0: .4byte gUnknown_2023D74
+_0801ADC4: .4byte gUnknown_81D94CB
+_0801ADC8: .4byte gUnknown_2023DD0
+_0801ADCC:
+ ldr r0, _0801AE7C @ =gUnknown_2023DCC
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _0801ADDC
+ bl _0801BBAA
+_0801ADDC:
+ ldr r1, _0801AE80 @ =gUnknown_2023BE4
+ ldr r0, _0801AE84 @ =gUnknown_2023D6B
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _0801ADF2
+ bl _0801BBAA
+_0801ADF2:
+ ldr r0, _0801AE88 @ =gUnknown_2023E8C
+ lsls r1, r2, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 31
+ cmp r0, 0
+ beq _0801AE04
+ bl _0801BBAA
+_0801AE04:
+ ldr r1, _0801AE8C @ =gUnknown_8250C04
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0801AE1C
+ bl _0801BBAA
+_0801AE1C:
+ ldr r2, _0801AE90 @ =gUnknown_2023ECC
+ ldr r0, _0801AE94 @ =gUnknown_2023D6C
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r1, r0, 2
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801AE44
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801AE44
+ bl _0801BBAA
+_0801AE44:
+ bl sub_8044EC8
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _0801AE5C
+ bl _0801BBAA
+_0801AE5C:
+ ldr r1, _0801AE98 @ =gUnknown_2023E82
+ movs r0, 0x43
+ strb r0, [r1, 0x3]
+ bl sub_8017544
+ ldr r1, _0801AE9C @ =gUnknown_2023D74
+ ldr r0, _0801AEA0 @ =gUnknown_81D94CB
+ str r0, [r1]
+ ldr r2, _0801AEA4 @ =gUnknown_2023DD0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 6
+ orrs r0, r1
+ str r0, [r2]
+ bl _0801BB5A
+ .align 2, 0
+_0801AE7C: .4byte gUnknown_2023DCC
+_0801AE80: .4byte gUnknown_2023BE4
+_0801AE84: .4byte gUnknown_2023D6B
+_0801AE88: .4byte gUnknown_2023E8C
+_0801AE8C: .4byte gUnknown_8250C04
+_0801AE90: .4byte gUnknown_2023ECC
+_0801AE94: .4byte gUnknown_2023D6C
+_0801AE98: .4byte gUnknown_2023E82
+_0801AE9C: .4byte gUnknown_2023D74
+_0801AEA0: .4byte gUnknown_81D94CB
+_0801AEA4: .4byte gUnknown_2023DD0
+_0801AEA8:
+ ldr r0, _0801AFE8 @ =gUnknown_2023DCC
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _0801AEB8
+ bl _0801BBAA
+_0801AEB8:
+ ldr r5, _0801AFEC @ =gUnknown_2023BE4
+ ldr r7, _0801AFF0 @ =gUnknown_2023D6B
+ ldrb r1, [r7]
+ movs r6, 0x58
+ adds r0, r1, 0
+ muls r0, r6
+ adds r0, r5
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _0801AED0
+ bl _0801BBAA
+_0801AED0:
+ ldr r0, _0801AFF4 @ =gUnknown_2023E8C
+ lsls r1, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 31
+ cmp r0, 0
+ beq _0801AEE2
+ bl _0801BBAA
+_0801AEE2:
+ ldr r1, _0801AFF8 @ =gUnknown_8250C04
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0801AEFA
+ bl _0801BBAA
+_0801AEFA:
+ ldr r3, _0801AFFC @ =gUnknown_2023ECC
+ ldr r4, _0801B000 @ =gUnknown_2023D6C
+ mov r8, r4
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r2, r0, 2
+ adds r0, r3, 0
+ adds r0, 0x8
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801AF24
+ adds r0, r3, 0
+ adds r0, 0xC
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801AF24
+ bl _0801BBAA
+_0801AF24:
+ adds r0, r1, 0
+ muls r0, r6
+ adds r0, r5
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _0801AF34
+ bl _0801BBAA
+_0801AF34:
+ bl sub_8044EC8
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _0801AF4C
+ bl _0801BBAA
+_0801AF4C:
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0xC
+ bne _0801AF5E
+ bl _0801BBAA
+_0801AF5E:
+ ldr r0, [sp, 0x8]
+ ldr r1, [sp, 0x10]
+ bl sub_803F78C
+ adds r4, r0, 0
+ ldr r0, [sp, 0xC]
+ ldr r1, [sp, 0x14]
+ bl sub_803F78C
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _0801AF7C
+ bl _0801BBAA
+_0801AF7C:
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r4, r5, 0
+ adds r4, 0x50
+ adds r0, r4
+ ldr r0, [r0]
+ movs r1, 0xF0
+ lsls r1, 12
+ ands r0, r1
+ cmp r0, 0
+ beq _0801AF96
+ bl _0801BBAA
+_0801AF96:
+ ldr r0, [sp, 0x8]
+ ldr r1, [sp, 0x10]
+ bl sub_803F78C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0801AFAA
+ bl _0801BBAA
+_0801AFAA:
+ ldr r0, [sp, 0xC]
+ ldr r1, [sp, 0x14]
+ bl sub_803F78C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0801AFBE
+ bl _0801BBAA
+_0801AFBE:
+ ldrb r0, [r7]
+ adds r2, r0, 0
+ muls r2, r6
+ adds r2, r4
+ ldr r1, _0801B004 @ =gUnknown_825E45C
+ mov r3, r8
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r1, 16
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ bl sub_8017544
+ ldr r1, _0801B008 @ =gUnknown_2023D74
+ ldr r0, _0801B00C @ =gUnknown_81D94BE
+ str r0, [r1]
+ bl _0801BB5A
+ .align 2, 0
+_0801AFE8: .4byte gUnknown_2023DCC
+_0801AFEC: .4byte gUnknown_2023BE4
+_0801AFF0: .4byte gUnknown_2023D6B
+_0801AFF4: .4byte gUnknown_2023E8C
+_0801AFF8: .4byte gUnknown_8250C04
+_0801AFFC: .4byte gUnknown_2023ECC
+_0801B000: .4byte gUnknown_2023D6C
+_0801B004: .4byte gUnknown_825E45C
+_0801B008: .4byte gUnknown_2023D74
+_0801B00C: .4byte gUnknown_81D94BE
+_0801B010:
+ movs r4, 0
+ mov r10, r4
+ ldr r0, _0801B044 @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r10, r0
+ bcc _0801B020
+ bl _0801BBAA
+_0801B020:
+ ldr r1, _0801B048 @ =gUnknown_2023BE4
+ movs r0, 0x58
+ mov r2, r10
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+ subs r0, 0x7
+ adds r2, r1, 0
+ cmp r0, 0x41
+ bls _0801B03A
+ b _0801B29E
+_0801B03A:
+ lsls r0, 2
+ ldr r1, _0801B04C @ =_0801B050
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801B044: .4byte gUnknown_2023BCC
+_0801B048: .4byte gUnknown_2023BE4
+_0801B04C: .4byte _0801B050
+ .align 2, 0
+_0801B050:
+ .4byte _0801B1B4
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B278
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B1DC
+ .4byte _0801B29E
+ .4byte _0801B158
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B184
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B248
+ .4byte _0801B218
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B29E
+ .4byte _0801B1DC
+_0801B158:
+ movs r0, 0x58
+ mov r3, r10
+ muls r3, r0
+ adds r0, r3, 0
+ adds r1, r2, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _0801B178 @ =0x00000f88
+ ands r0, r1
+ cmp r0, 0
+ bne _0801B172
+ b _0801B29E
+_0801B172:
+ ldr r0, _0801B17C @ =gUnknown_2022AB8
+ ldr r1, _0801B180 @ =gUnknown_8250094
+ b _0801B264
+ .align 2, 0
+_0801B178: .4byte 0x00000f88
+_0801B17C: .4byte gUnknown_2022AB8
+_0801B180: .4byte gUnknown_8250094
+_0801B184:
+ movs r0, 0x58
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ adds r1, r2, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801B19E
+ b _0801B29E
+_0801B19E:
+ ldr r0, _0801B1AC @ =gUnknown_2022AB8
+ ldr r1, _0801B1B0 @ =gUnknown_82500BC
+ bl sub_8008D84
+ movs r2, 0x2
+ mov r9, r2
+ b _0801B2A4
+ .align 2, 0
+_0801B1AC: .4byte gUnknown_2022AB8
+_0801B1B0: .4byte gUnknown_82500BC
+_0801B1B4:
+ movs r0, 0x58
+ mov r3, r10
+ muls r3, r0
+ adds r0, r3, 0
+ adds r1, r2, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B29E
+ ldr r0, _0801B1D4 @ =gUnknown_2022AB8
+ ldr r1, _0801B1D8 @ =gUnknown_82500A4
+ b _0801B264
+ .align 2, 0
+_0801B1D4: .4byte gUnknown_2022AB8
+_0801B1D8: .4byte gUnknown_82500A4
+_0801B1DC:
+ movs r0, 0x58
+ mov r3, r10
+ muls r3, r0
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B29E
+ adds r2, 0x50
+ adds r2, r3, r2
+ ldr r0, [r2]
+ ldr r1, _0801B20C @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r0, _0801B210 @ =gUnknown_2022AB8
+ ldr r1, _0801B214 @ =gUnknown_825009C
+ bl sub_8008D84
+ movs r0, 0x1
+ mov r9, r0
+ b _0801B2A4
+ .align 2, 0
+_0801B20C: .4byte 0xf7ffffff
+_0801B210: .4byte gUnknown_2022AB8
+_0801B214: .4byte gUnknown_825009C
+_0801B218:
+ movs r0, 0x58
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ adds r1, r2, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B29E
+ ldr r0, _0801B240 @ =gUnknown_2022AB8
+ ldr r1, _0801B244 @ =gUnknown_82500AC
+ bl sub_8008D84
+ movs r2, 0x1
+ mov r9, r2
+ b _0801B2A4
+ .align 2, 0
+_0801B240: .4byte gUnknown_2022AB8
+_0801B244: .4byte gUnknown_82500AC
+_0801B248:
+ movs r0, 0x58
+ mov r3, r10
+ muls r3, r0
+ adds r0, r3, 0
+ adds r1, r2, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B29E
+ ldr r0, _0801B270 @ =gUnknown_2022AB8
+ ldr r1, _0801B274 @ =gUnknown_82500B4
+_0801B264:
+ bl sub_8008D84
+ movs r4, 0x1
+ mov r9, r4
+ b _0801B2A4
+ .align 2, 0
+_0801B270: .4byte gUnknown_2022AB8
+_0801B274: .4byte gUnknown_82500B4
+_0801B278:
+ movs r0, 0x58
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ adds r1, r2, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0xF0
+ lsls r1, 12
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B29E
+ ldr r0, _0801B2B4 @ =gUnknown_2022AB8
+ ldr r1, _0801B2B8 @ =gUnknown_82500C4
+ bl sub_8008D84
+ movs r2, 0x3
+ mov r9, r2
+_0801B29E:
+ mov r3, r9
+ cmp r3, 0
+ beq _0801B358
+_0801B2A4:
+ mov r4, r9
+ cmp r4, 0x2
+ beq _0801B2D8
+ cmp r4, 0x2
+ bgt _0801B2BC
+ cmp r4, 0x1
+ beq _0801B2C4
+ b _0801B304
+ .align 2, 0
+_0801B2B4: .4byte gUnknown_2022AB8
+_0801B2B8: .4byte gUnknown_82500C4
+_0801B2BC:
+ mov r0, r9
+ cmp r0, 0x3
+ beq _0801B2F0
+ b _0801B304
+_0801B2C4:
+ ldr r1, _0801B2D4 @ =gUnknown_2023BE4
+ movs r0, 0x58
+ mov r2, r10
+ muls r2, r0
+ adds r1, 0x4C
+ adds r2, r1
+ movs r0, 0
+ b _0801B302
+ .align 2, 0
+_0801B2D4: .4byte gUnknown_2023BE4
+_0801B2D8:
+ ldr r1, _0801B2EC @ =gUnknown_2023BE4
+ movs r0, 0x58
+ mov r2, r10
+ muls r2, r0
+ adds r1, 0x50
+ adds r2, r1
+ ldr r0, [r2]
+ movs r1, 0x8
+ negs r1, r1
+ b _0801B300
+ .align 2, 0
+_0801B2EC: .4byte gUnknown_2023BE4
+_0801B2F0:
+ ldr r1, _0801B33C @ =gUnknown_2023BE4
+ movs r0, 0x58
+ mov r2, r10
+ muls r2, r0
+ adds r1, 0x50
+ adds r2, r1
+ ldr r0, [r2]
+ ldr r1, _0801B340 @ =0xfff0ffff
+_0801B300:
+ ands r0, r1
+_0801B302:
+ str r0, [r2]
+_0801B304:
+ bl sub_8017544
+ ldr r1, _0801B344 @ =gUnknown_2023D74
+ ldr r0, _0801B348 @ =gUnknown_81D94D1
+ str r0, [r1]
+ ldr r0, _0801B34C @ =gUnknown_2023FC4
+ mov r1, r10
+ strb r1, [r0, 0x17]
+ ldr r4, _0801B350 @ =gUnknown_2023BC4
+ strb r1, [r4]
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ ldr r1, _0801B354 @ =gUnknown_2023C30
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl sub_800DFF0
+ ldrb r0, [r4]
+ bl sub_8017248
+ bl _0801BBC6
+ .align 2, 0
+_0801B33C: .4byte gUnknown_2023BE4
+_0801B340: .4byte 0xfff0ffff
+_0801B344: .4byte gUnknown_2023D74
+_0801B348: .4byte gUnknown_81D94D1
+_0801B34C: .4byte gUnknown_2023FC4
+_0801B350: .4byte gUnknown_2023BC4
+_0801B354: .4byte gUnknown_2023C30
+_0801B358:
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r0, _0801B370 @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r10, r0
+ bcs _0801B36C
+ b _0801B020
+_0801B36C:
+ bl _0801BBAA
+ .align 2, 0
+_0801B370: .4byte gUnknown_2023BCC
+_0801B374:
+ movs r2, 0
+ mov r10, r2
+ ldr r0, _0801B3C0 @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r10, r0
+ bcc _0801B384
+ bl _0801BBAA
+_0801B384:
+ ldr r4, _0801B3C4 @ =gUnknown_2023BE4
+_0801B386:
+ movs r0, 0x58
+ mov r3, r10
+ muls r3, r0
+ adds r0, r3, 0
+ adds r0, r4
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x3B
+ bne _0801B3AA
+ mov r0, r10
+ bl sub_8019DAC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ cmp r0, 0
+ beq _0801B3AA
+ b _0801BA84
+_0801B3AA:
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r0, _0801B3C0 @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r10, r0
+ bcc _0801B386
+ bl _0801BBAA
+ .align 2, 0
+_0801B3C0: .4byte gUnknown_2023BCC
+_0801B3C4: .4byte gUnknown_2023BE4
+_0801B3C8:
+ mov r4, r8
+ ldrb r0, [r4]
+ cmp r0, 0x1C
+ beq _0801B3D4
+ bl _0801BBAA
+_0801B3D4:
+ ldr r4, _0801B434 @ =gUnknown_2023DD0
+ ldr r1, [r4]
+ movs r0, 0x80
+ lsls r0, 7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801B3E6
+ bl _0801BBAA
+_0801B3E6:
+ ldr r0, _0801B438 @ =0xffffbfff
+ ands r1, r0
+ str r1, [r4]
+ ldr r1, [r6]
+ adds r1, 0xB4
+ ldrb r2, [r1]
+ movs r0, 0x3F
+ ands r0, r2
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r1, r0, 0
+ adds r1, 0xB4
+ ldrb r0, [r1]
+ cmp r0, 0x6
+ bne _0801B408
+ movs r0, 0x2
+ strb r0, [r1]
+_0801B408:
+ ldr r1, _0801B43C @ =gUnknown_2023E82
+ ldr r0, [r6]
+ adds r0, 0xB4
+ ldrb r0, [r0]
+ adds r0, 0x40
+ strb r0, [r1, 0x3]
+ ldr r1, _0801B440 @ =gUnknown_2023FC4
+ ldr r0, _0801B444 @ =gUnknown_2023D6C
+ ldrb r0, [r0]
+ strb r0, [r1, 0x17]
+ bl sub_8017544
+ ldr r1, _0801B448 @ =gUnknown_2023D74
+ ldr r0, _0801B44C @ =gUnknown_81D94CE
+ str r0, [r1]
+ ldr r0, [r4]
+ movs r1, 0x80
+ lsls r1, 6
+ orrs r0, r1
+ str r0, [r4]
+ b _0801BB5A
+ .align 2, 0
+_0801B434: .4byte gUnknown_2023DD0
+_0801B438: .4byte 0xffffbfff
+_0801B43C: .4byte gUnknown_2023E82
+_0801B440: .4byte gUnknown_2023FC4
+_0801B444: .4byte gUnknown_2023D6C
+_0801B448: .4byte gUnknown_2023D74
+_0801B44C: .4byte gUnknown_81D94CE
+_0801B450:
+ mov r1, r8
+ ldrb r0, [r1]
+ cmp r0, 0x1C
+ beq _0801B45A
+ b _0801BBAA
+_0801B45A:
+ ldr r4, _0801B4B8 @ =gUnknown_2023DD0
+ ldr r1, [r4]
+ movs r0, 0x80
+ lsls r0, 7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801B46A
+ b _0801BBAA
+_0801B46A:
+ ldr r0, _0801B4BC @ =0xffffbfff
+ ands r1, r0
+ str r1, [r4]
+ adds r3, r6, 0
+ ldr r1, [r3]
+ adds r1, 0xB4
+ ldrb r2, [r1]
+ movs r0, 0x3F
+ ands r0, r2
+ strb r0, [r1]
+ ldr r0, [r3]
+ adds r1, r0, 0
+ adds r1, 0xB4
+ ldrb r0, [r1]
+ cmp r0, 0x6
+ bne _0801B48E
+ movs r0, 0x2
+ strb r0, [r1]
+_0801B48E:
+ ldr r1, _0801B4C0 @ =gUnknown_2023E82
+ ldr r0, [r6]
+ adds r0, 0xB4
+ ldrb r0, [r0]
+ strb r0, [r1, 0x3]
+ ldr r1, _0801B4C4 @ =gUnknown_2023FC4
+ ldr r0, _0801B4C8 @ =gUnknown_2023D6B
+ ldrb r0, [r0]
+ strb r0, [r1, 0x17]
+ bl sub_8017544
+ ldr r1, _0801B4CC @ =gUnknown_2023D74
+ ldr r0, _0801B4D0 @ =gUnknown_81D94CE
+ str r0, [r1]
+ ldr r0, [r4]
+ movs r1, 0x80
+ lsls r1, 6
+ orrs r0, r1
+ str r0, [r4]
+ b _0801BB5A
+ .align 2, 0
+_0801B4B8: .4byte gUnknown_2023DD0
+_0801B4BC: .4byte 0xffffbfff
+_0801B4C0: .4byte gUnknown_2023E82
+_0801B4C4: .4byte gUnknown_2023FC4
+_0801B4C8: .4byte gUnknown_2023D6B
+_0801B4CC: .4byte gUnknown_2023D74
+_0801B4D0: .4byte gUnknown_81D94CE
+_0801B4D4:
+ movs r5, 0
+ ldr r0, _0801B50C @ =gUnknown_2023BCC
+ ldrb r1, [r0]
+ cmp r5, r1
+ blt _0801B4E0
+ b _0801BBAA
+_0801B4E0:
+ ldr r0, _0801B510 @ =gUnknown_2023BE4
+ adds r4, r1, 0
+ ldr r2, _0801B514 @ =gUnknown_2023DFC
+ adds r3, r0, 0
+ adds r3, 0x20
+ movs r6, 0x80
+ lsls r6, 12
+_0801B4EE:
+ ldrb r1, [r3]
+ cmp r1, 0x16
+ bne _0801B4FE
+ ldr r0, [r2]
+ ands r0, r6
+ cmp r0, 0
+ beq _0801B4FE
+ b _0801BAAC
+_0801B4FE:
+ adds r2, 0x4
+ adds r3, 0x58
+ adds r5, 0x1
+ cmp r5, r4
+ blt _0801B4EE
+ b _0801BBAA
+ .align 2, 0
+_0801B50C: .4byte gUnknown_2023BCC
+_0801B510: .4byte gUnknown_2023BE4
+_0801B514: .4byte gUnknown_2023DFC
+_0801B518:
+ movs r5, 0
+ ldr r0, _0801B5F4 @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _0801B524
+ b _0801BBAA
+_0801B524:
+ ldr r2, _0801B5F8 @ =gUnknown_2023BC4
+ mov r8, r2
+ ldr r3, _0801B5FC @ =gUnknown_2023BE4
+ adds r3, 0x20
+ str r3, [sp, 0x1C]
+ movs r4, 0
+ str r4, [sp, 0x20]
+_0801B532:
+ ldr r1, [sp, 0x1C]
+ ldrb r0, [r1]
+ cmp r0, 0x24
+ beq _0801B53C
+ b _0801B6D6
+_0801B53C:
+ ldr r0, _0801B600 @ =gUnknown_2023DFC
+ ldr r2, [sp, 0x20]
+ adds r0, r2, r0
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 13
+ ands r1, r0
+ str r2, [sp, 0x18]
+ cmp r1, 0
+ bne _0801B552
+ b _0801B6D6
+_0801B552:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_80751D8
+ movs r1, 0x1
+ adds r6, r0, 0
+ eors r6, r1
+ ands r6, r1
+ adds r0, r6, 0
+ bl sub_80751E8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r6, 0x2
+ bl sub_80751E8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _0801B604 @ =gUnknown_2022B4C
+ ldr r0, [r0]
+ movs r2, 0x1
+ ands r0, r2
+ cmp r0, 0
+ bne _0801B584
+ b _0801B69C
+_0801B584:
+ movs r3, 0x58
+ adds r0, r4, 0
+ muls r0, r3
+ ldr r3, _0801B5FC @ =gUnknown_2023BE4
+ adds r1, r0, r3
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0801B658
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _0801B60C
+ movs r1, 0x58
+ adds r0, r7, 0
+ muls r0, r1
+ adds r1, r0, r3
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0801B60C
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _0801B60C
+ str r2, [sp, 0x24]
+ bl sub_8044EC8
+ ldr r2, [sp, 0x24]
+ adds r1, r2, 0
+ ands r1, r0
+ lsls r1, 1
+ orrs r6, r1
+ adds r0, r6, 0
+ bl sub_80751E8
+ mov r2, r8
+ strb r0, [r2]
+ ldrb r0, [r2]
+ movs r3, 0x58
+ muls r0, r3
+ ldr r4, _0801B5FC @ =gUnknown_2023BE4
+ adds r0, r4
+ adds r0, 0x20
+ ldrb r0, [r0]
+ ldr r1, [sp, 0x1C]
+ strb r0, [r1]
+ ldrb r0, [r2]
+ muls r0, r3
+ adds r0, r4
+ adds r0, 0x20
+ ldrb r0, [r0]
+ ldr r2, _0801B608 @ =gUnknown_2023D6A
+ strb r0, [r2]
+ b _0801B6C4
+ .align 2, 0
+_0801B5F4: .4byte gUnknown_2023BCC
+_0801B5F8: .4byte gUnknown_2023BC4
+_0801B5FC: .4byte gUnknown_2023BE4
+_0801B600: .4byte gUnknown_2023DFC
+_0801B604: .4byte gUnknown_2022B4C
+_0801B608: .4byte gUnknown_2023D6A
+_0801B60C:
+ ldr r3, _0801B650 @ =gUnknown_2023BE4
+ movs r2, 0x58
+ adds r0, r4, 0
+ muls r0, r2
+ adds r1, r0, r3
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0801B658
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _0801B658
+ mov r0, r8
+ strb r4, [r0]
+ adds r1, r5, 0
+ muls r1, r2
+ adds r1, r3
+ ldrb r0, [r0]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r1, 0x20
+ strb r0, [r1]
+ mov r1, r8
+ ldrb r0, [r1]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x20
+ ldrb r0, [r0]
+ ldr r2, _0801B654 @ =gUnknown_2023D6A
+ strb r0, [r2]
+ b _0801B6C4
+ .align 2, 0
+_0801B650: .4byte gUnknown_2023BE4
+_0801B654: .4byte gUnknown_2023D6A
+_0801B658:
+ ldr r3, _0801B698 @ =gUnknown_2023BE4
+ movs r2, 0x58
+ adds r0, r7, 0
+ muls r0, r2
+ adds r1, r0, r3
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0801B6CE
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _0801B6CE
+ mov r4, r8
+ strb r7, [r4]
+ adds r1, r5, 0
+ muls r1, r2
+ adds r1, r3
+ ldrb r0, [r4]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r1, 0x20
+ strb r0, [r1]
+ ldrb r0, [r4]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x20
+ ldrb r0, [r0]
+ b _0801B6C0
+ .align 2, 0
+_0801B698: .4byte gUnknown_2023BE4
+_0801B69C:
+ mov r2, r8
+ strb r4, [r2]
+ movs r3, 0x58
+ adds r0, r4, 0
+ muls r0, r3
+ ldr r4, _0801B6F0 @ =gUnknown_2023BE4
+ adds r0, r4
+ adds r2, r0, 0
+ adds r2, 0x20
+ ldrb r1, [r2]
+ cmp r1, 0
+ beq _0801B6CE
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801B6CE
+ ldr r0, [sp, 0x1C]
+ strb r1, [r0]
+ ldrb r0, [r2]
+_0801B6C0:
+ ldr r1, _0801B6F4 @ =gUnknown_2023D6A
+ strb r0, [r1]
+_0801B6C4:
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801B6CE:
+ mov r2, r9
+ cmp r2, 0
+ beq _0801B6D6
+ b _0801BAC8
+_0801B6D6:
+ ldr r3, [sp, 0x1C]
+ adds r3, 0x58
+ str r3, [sp, 0x1C]
+ ldr r4, [sp, 0x20]
+ adds r4, 0x4
+ str r4, [sp, 0x20]
+ adds r5, 0x1
+ ldr r0, _0801B6F8 @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r5, r0
+ bge _0801B6EE
+ b _0801B532
+_0801B6EE:
+ b _0801BBAA
+ .align 2, 0
+_0801B6F0: .4byte gUnknown_2023BE4
+_0801B6F4: .4byte gUnknown_2023D6A
+_0801B6F8: .4byte gUnknown_2023BCC
+_0801B6FC:
+ movs r5, 0
+ ldr r0, _0801B734 @ =gUnknown_2023BCC
+ ldrb r1, [r0]
+ cmp r5, r1
+ blt _0801B708
+ b _0801BBAA
+_0801B708:
+ ldr r0, _0801B738 @ =gUnknown_2023BE4
+ adds r4, r1, 0
+ ldr r2, _0801B73C @ =gUnknown_2023DFC
+ adds r3, r0, 0
+ adds r3, 0x20
+ movs r6, 0x80
+ lsls r6, 12
+_0801B716:
+ ldrb r1, [r3]
+ cmp r1, 0x16
+ bne _0801B726
+ ldr r0, [r2]
+ ands r0, r6
+ cmp r0, 0
+ beq _0801B726
+ b _0801BB3C
+_0801B726:
+ adds r2, 0x4
+ adds r3, 0x58
+ adds r5, 0x1
+ cmp r5, r4
+ blt _0801B716
+ b _0801BBAA
+ .align 2, 0
+_0801B734: .4byte gUnknown_2023BCC
+_0801B738: .4byte gUnknown_2023BE4
+_0801B73C: .4byte gUnknown_2023DFC
+_0801B740:
+ mov r0, r10
+ bl sub_80751C4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ ldr r0, _0801B790 @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _0801B756
+ b _0801BBAA
+_0801B756:
+ ldr r0, _0801B794 @ =gUnknown_2023BE4
+ mov r8, r0
+_0801B75A:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_80751C4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r5, 0x1
+ cmp r0, r6
+ beq _0801B784
+ movs r0, 0x58
+ muls r0, r5
+ add r0, r8
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, r7
+ bne _0801B784
+ ldr r0, _0801B798 @ =gUnknown_2023D6A
+ strb r7, [r0]
+ lsls r0, r4, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801B784:
+ adds r5, r4, 0
+ ldr r0, _0801B790 @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _0801B75A
+ b _0801BBAA
+ .align 2, 0
+_0801B790: .4byte gUnknown_2023BCC
+_0801B794: .4byte gUnknown_2023BE4
+_0801B798: .4byte gUnknown_2023D6A
+_0801B79C:
+ mov r0, r10
+ bl sub_80751C4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ ldr r0, _0801B7EC @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _0801B7B2
+ b _0801BBAA
+_0801B7B2:
+ ldr r1, _0801B7F0 @ =gUnknown_2023BE4
+ mov r8, r1
+_0801B7B6:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_80751C4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r5, 0x1
+ cmp r0, r6
+ bne _0801B7E0
+ movs r0, 0x58
+ muls r0, r5
+ add r0, r8
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, r7
+ bne _0801B7E0
+ ldr r0, _0801B7F4 @ =gUnknown_2023D6A
+ strb r7, [r0]
+ lsls r0, r4, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801B7E0:
+ adds r5, r4, 0
+ ldr r0, _0801B7EC @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _0801B7B6
+ b _0801BBAA
+ .align 2, 0
+_0801B7EC: .4byte gUnknown_2023BCC
+_0801B7F0: .4byte gUnknown_2023BE4
+_0801B7F4: .4byte gUnknown_2023D6A
+_0801B7F8:
+ mov r2, r8
+ ldrb r0, [r2]
+ cmp r0, 0xFD
+ beq _0801B820
+ cmp r0, 0xFE
+ beq _0801B858
+ movs r5, 0
+ ldr r0, _0801B818 @ =gUnknown_2023BCC
+ adds r3, r0, 0
+ ldrb r4, [r3]
+ cmp r5, r4
+ blt _0801B812
+ b _0801BBAA
+_0801B812:
+ ldr r2, _0801B81C @ =gUnknown_2023BE4
+ b _0801B890
+ .align 2, 0
+_0801B818: .4byte gUnknown_2023BCC
+_0801B81C: .4byte gUnknown_2023BE4
+_0801B820:
+ movs r5, 0
+ ldr r0, _0801B850 @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _0801B82C
+ b _0801BBAA
+_0801B82C:
+ ldr r3, _0801B854 @ =gUnknown_2023DFC
+ movs r2, 0x80
+ lsls r2, 9
+ adds r1, r0, 0
+_0801B834:
+ lsls r0, r5, 2
+ adds r0, r3
+ ldr r0, [r0]
+ ands r0, r2
+ adds r4, r5, 0x1
+ cmp r0, 0
+ beq _0801B848
+ lsls r0, r4, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801B848:
+ adds r5, r4, 0
+ cmp r5, r1
+ blt _0801B834
+ b _0801BBAA
+ .align 2, 0
+_0801B850: .4byte gUnknown_2023BCC
+_0801B854: .4byte gUnknown_2023DFC
+_0801B858:
+ movs r5, 0
+ ldr r0, _0801B888 @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _0801B864
+ b _0801BBAA
+_0801B864:
+ ldr r3, _0801B88C @ =gUnknown_2023DFC
+ movs r2, 0x80
+ lsls r2, 10
+ adds r1, r0, 0
+_0801B86C:
+ lsls r0, r5, 2
+ adds r0, r3
+ ldr r0, [r0]
+ ands r0, r2
+ adds r4, r5, 0x1
+ cmp r0, 0
+ beq _0801B880
+ lsls r0, r4, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801B880:
+ adds r5, r4, 0
+ cmp r5, r1
+ blt _0801B86C
+ b _0801BBAA
+ .align 2, 0
+_0801B888: .4byte gUnknown_2023BCC
+_0801B88C: .4byte gUnknown_2023DFC
+_0801B890:
+ movs r0, 0x58
+ muls r0, r5
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r4, r5, 0x1
+ cmp r0, r7
+ bne _0801B8AA
+ mov r0, r8
+ strb r7, [r0]
+ lsls r0, r4, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801B8AA:
+ adds r5, r4, 0
+ ldrb r1, [r3]
+ cmp r5, r1
+ blt _0801B890
+ b _0801BBAA
+_0801B8B4:
+ movs r5, 0
+ ldr r0, _0801B8F0 @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _0801B8C0
+ b _0801BBAA
+_0801B8C0:
+ ldr r6, _0801B8F4 @ =gUnknown_2023BE4
+ adds r2, r0, 0
+ movs r3, 0x58
+_0801B8C6:
+ adds r0, r5, 0
+ muls r0, r3
+ adds r1, r0, r6
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r4, r5, 0x1
+ cmp r0, r7
+ bne _0801B8E8
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _0801B8E8
+ mov r0, r8
+ strb r7, [r0]
+ lsls r0, r4, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801B8E8:
+ adds r5, r4, 0
+ cmp r5, r2
+ blt _0801B8C6
+ b _0801BBAA
+ .align 2, 0
+_0801B8F0: .4byte gUnknown_2023BCC
+_0801B8F4: .4byte gUnknown_2023BE4
+_0801B8F8:
+ ldr r0, _0801B908 @ =gUnknown_2023D6A
+ strb r7, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ b _0801B94A
+ .align 2, 0
+_0801B908: .4byte gUnknown_2023D6A
+_0801B90C:
+ mov r0, r10
+ bl sub_80751C4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ ldr r0, _0801B99C @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r5, r0
+ bge _0801B94A
+ ldr r4, _0801B9A0 @ =gUnknown_2023BE4
+_0801B922:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_80751C4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r6
+ beq _0801B940
+ movs r0, 0x58
+ muls r0, r5
+ adds r0, r4
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, r7
+ beq _0801B8F8
+_0801B940:
+ adds r5, 0x1
+ ldr r0, _0801B99C @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _0801B922
+_0801B94A:
+ mov r1, r9
+ cmp r1, 0
+ beq _0801B952
+ b _0801BBB0
+_0801B952:
+ movs r5, 0
+ ldr r0, _0801B99C @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r9, r0
+ blt _0801B95E
+ b _0801BBAA
+_0801B95E:
+ ldr r2, _0801B9A0 @ =gUnknown_2023BE4
+ mov r8, r2
+_0801B962:
+ movs r0, 0x58
+ muls r0, r5
+ add r0, r8
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r4, r5, 0x1
+ cmp r0, r7
+ bne _0801B990
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_80751C4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r6
+ bne _0801B990
+ cmp r5, r10
+ beq _0801B990
+ ldr r0, _0801B9A4 @ =gUnknown_2023D6A
+ strb r7, [r0]
+ lsls r0, r4, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801B990:
+ adds r5, r4, 0
+ ldr r0, _0801B99C @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _0801B962
+ b _0801BBAA
+ .align 2, 0
+_0801B99C: .4byte gUnknown_2023BCC
+_0801B9A0: .4byte gUnknown_2023BE4
+_0801B9A4: .4byte gUnknown_2023D6A
+_0801B9A8:
+ mov r0, r10
+ bl sub_80751C4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ ldr r0, _0801B9F8 @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _0801B9BE
+ b _0801BBAA
+_0801B9BE:
+ ldr r4, _0801B9FC @ =gUnknown_2023BE4
+_0801B9C0:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_80751C4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r6
+ beq _0801B9EC
+ movs r0, 0x58
+ muls r0, r5
+ adds r0, r4
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, r7
+ bne _0801B9EC
+ ldr r0, _0801BA00 @ =gUnknown_2023D6A
+ strb r7, [r0]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801B9EC:
+ adds r5, 0x1
+ ldr r0, _0801B9F8 @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _0801B9C0
+ b _0801BBAA
+ .align 2, 0
+_0801B9F8: .4byte gUnknown_2023BCC
+_0801B9FC: .4byte gUnknown_2023BE4
+_0801BA00: .4byte gUnknown_2023D6A
+_0801BA04:
+ mov r0, r10
+ bl sub_80751C4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ ldr r0, _0801BA54 @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _0801BA1A
+ b _0801BBAA
+_0801BA1A:
+ ldr r4, _0801BA58 @ =gUnknown_2023BE4
+_0801BA1C:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_80751C4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r6
+ bne _0801BA48
+ movs r0, 0x58
+ muls r0, r5
+ adds r0, r4
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, r7
+ bne _0801BA48
+ ldr r0, _0801BA5C @ =gUnknown_2023D6A
+ strb r7, [r0]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801BA48:
+ adds r5, 0x1
+ ldr r0, _0801BA54 @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _0801BA1C
+ b _0801BBAA
+ .align 2, 0
+_0801BA54: .4byte gUnknown_2023BCC
+_0801BA58: .4byte gUnknown_2023BE4
+_0801BA5C: .4byte gUnknown_2023D6A
+_0801BA60:
+ ldr r0, _0801BA78 @ =gUnknown_81D92F8
+ bl sub_801BC24
+ ldr r0, _0801BA7C @ =gUnknown_2023FC4
+ strb r4, [r0, 0x17]
+_0801BA6A:
+ ldr r0, _0801BA80 @ =gUnknown_2023FE8
+ ldr r0, [r0]
+ adds r0, 0x7F
+ mov r1, r9
+ subs r1, 0x1
+ strb r1, [r0]
+ b _0801BBAA
+ .align 2, 0
+_0801BA78: .4byte gUnknown_81D92F8
+_0801BA7C: .4byte gUnknown_2023FC4
+_0801BA80: .4byte gUnknown_2023FE8
+_0801BA84:
+ ldr r0, _0801BAA0 @ =gUnknown_81D92F8
+ bl sub_801BC24
+ ldr r0, _0801BAA4 @ =gUnknown_2023FC4
+ mov r3, r10
+ strb r3, [r0, 0x17]
+ ldr r0, _0801BAA8 @ =gUnknown_2023FE8
+ ldr r0, [r0]
+ adds r0, 0x7F
+ mov r1, r9
+ subs r1, 0x1
+ strb r1, [r0]
+ b _0801BBC6
+ .align 2, 0
+_0801BAA0: .4byte gUnknown_81D92F8
+_0801BAA4: .4byte gUnknown_2023FC4
+_0801BAA8: .4byte gUnknown_2023FE8
+_0801BAAC:
+ mov r4, r8
+ strb r1, [r4]
+ ldr r0, [r2]
+ ldr r1, _0801BAC0 @ =0xfff7ffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r0, _0801BAC4 @ =gUnknown_81D9307
+ bl sub_801BC24
+ b _0801BB52
+ .align 2, 0
+_0801BAC0: .4byte 0xfff7ffff
+_0801BAC4: .4byte gUnknown_81D9307
+_0801BAC8:
+ ldr r0, _0801BB18 @ =gUnknown_81D92A1
+ bl sub_801BC24
+ ldr r1, _0801BB1C @ =gUnknown_2023DFC
+ ldr r0, [sp, 0x18]
+ adds r1, r0, r1
+ ldr r0, [r1]
+ ldr r2, _0801BB20 @ =0xffefffff
+ ands r0, r2
+ str r0, [r1]
+ ldr r0, _0801BB24 @ =gUnknown_2023FC4
+ strb r5, [r0, 0x17]
+ ldr r1, _0801BB28 @ =gUnknown_2022AB8
+ movs r4, 0xFD
+ strb r4, [r1]
+ movs r0, 0x4
+ strb r0, [r1, 0x1]
+ ldr r2, _0801BB2C @ =gUnknown_2023BC4
+ ldrb r0, [r2]
+ strb r0, [r1, 0x2]
+ ldr r3, _0801BB30 @ =gUnknown_2023BCE
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _0801BB34 @ =gUnknown_2022AC8
+ strb r4, [r1]
+ movs r0, 0x9
+ strb r0, [r1, 0x1]
+ ldr r0, _0801BB38 @ =gUnknown_2023D6A
+ ldrb r0, [r0]
+ strb r0, [r1, 0x2]
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r1, 0x3]
+ b _0801BBAA
+ .align 2, 0
+_0801BB18: .4byte gUnknown_81D92A1
+_0801BB1C: .4byte gUnknown_2023DFC
+_0801BB20: .4byte 0xffefffff
+_0801BB24: .4byte gUnknown_2023FC4
+_0801BB28: .4byte gUnknown_2022AB8
+_0801BB2C: .4byte gUnknown_2023BC4
+_0801BB30: .4byte gUnknown_2023BCE
+_0801BB34: .4byte gUnknown_2022AC8
+_0801BB38: .4byte gUnknown_2023D6A
+_0801BB3C:
+ mov r3, r8
+ strb r1, [r3]
+ ldr r0, [r2]
+ ldr r1, _0801BB68 @ =0xfff7ffff
+ ands r0, r1
+ str r0, [r2]
+ bl sub_8017544
+ ldr r1, _0801BB6C @ =gUnknown_2023D74
+ ldr r0, _0801BB70 @ =gUnknown_81D9310
+ str r0, [r1]
+_0801BB52:
+ ldr r0, _0801BB74 @ =gUnknown_2023FE8
+ ldr r0, [r0]
+ adds r0, 0xD8
+ strb r5, [r0]
+_0801BB5A:
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ b _0801BBAA
+ .align 2, 0
+_0801BB68: .4byte 0xfff7ffff
+_0801BB6C: .4byte gUnknown_2023D74
+_0801BB70: .4byte gUnknown_81D9310
+_0801BB74: .4byte gUnknown_2023FE8
+_0801BB78:
+ movs r5, 0
+ ldr r0, _0801BBD8 @ =gUnknown_2023BCC
+ ldrb r1, [r0]
+ cmp r5, r1
+ bge _0801BBAA
+ ldr r0, _0801BBDC @ =gUnknown_2023BE4
+ adds r2, r1, 0
+ adds r1, r0, 0
+ adds r1, 0x20
+ ldr r3, _0801BBE0 @ =gUnknown_2023D6A
+_0801BB8C:
+ ldrb r0, [r1]
+ cmp r0, r7
+ bne _0801BBA2
+ cmp r5, r10
+ beq _0801BBA2
+ strb r7, [r3]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801BBA2:
+ adds r1, 0x58
+ adds r5, 0x1
+ cmp r5, r2
+ blt _0801BB8C
+_0801BBAA:
+ mov r4, r9
+ cmp r4, 0
+ beq _0801BBC6
+_0801BBB0:
+ ldr r0, [sp, 0x4]
+ cmp r0, 0xB
+ bhi _0801BBC6
+ ldr r1, _0801BBE0 @ =gUnknown_2023D6A
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _0801BBC6
+ adds r1, r0, 0
+ mov r0, r10
+ bl sub_80C71D0
+_0801BBC6:
+ mov r0, r9
+ add sp, 0x28
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801BBD8: .4byte gUnknown_2023BCC
+_0801BBDC: .4byte gUnknown_2023BE4
+_0801BBE0: .4byte gUnknown_2023D6A
+ thumb_func_end sub_8019F18
+
+ thumb_func_start sub_801BBE4
+sub_801BBE4: @ 801BBE4
+ ldr r1, _0801BC10 @ =gUnknown_2023D74
+ str r0, [r1]
+ ldr r0, _0801BC14 @ =gUnknown_2023FF4
+ ldr r0, [r0]
+ ldr r2, [r0, 0xC]
+ adds r3, r2, 0
+ adds r3, 0x20
+ ldrb r0, [r3]
+ adds r1, r0, 0x1
+ strb r1, [r3]
+ lsls r0, 24
+ lsrs r0, 22
+ adds r2, r0
+ ldr r1, _0801BC18 @ =gUnknown_3004F84
+ ldr r0, [r1]
+ str r0, [r2]
+ ldr r0, _0801BC1C @ =sub_8015C00
+ str r0, [r1]
+ ldr r1, _0801BC20 @ =gUnknown_2023BE3
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_0801BC10: .4byte gUnknown_2023D74
+_0801BC14: .4byte gUnknown_2023FF4
+_0801BC18: .4byte gUnknown_3004F84
+_0801BC1C: .4byte sub_8015C00
+_0801BC20: .4byte gUnknown_2023BE3
+ thumb_func_end sub_801BBE4
+
+ thumb_func_start sub_801BC24
+sub_801BC24: @ 801BC24
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8017544
+ ldr r0, _0801BC58 @ =gUnknown_2023D74
+ str r4, [r0]
+ ldr r0, _0801BC5C @ =gUnknown_2023FF4
+ ldr r0, [r0]
+ ldr r2, [r0, 0xC]
+ adds r3, r2, 0
+ adds r3, 0x20
+ ldrb r0, [r3]
+ adds r1, r0, 0x1
+ strb r1, [r3]
+ lsls r0, 24
+ lsrs r0, 22
+ adds r2, r0
+ ldr r1, _0801BC60 @ =gUnknown_3004F84
+ ldr r0, [r1]
+ str r0, [r2]
+ ldr r0, _0801BC64 @ =sub_8015C74
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801BC58: .4byte gUnknown_2023D74
+_0801BC5C: .4byte gUnknown_2023FF4
+_0801BC60: .4byte gUnknown_3004F84
+_0801BC64: .4byte sub_8015C74
+ thumb_func_end sub_801BC24
+
+ thumb_func_start sub_801BC68
+sub_801BC68: @ 801BC68
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ movs r0, 0
+ mov r10, r0
+ movs r1, 0
+ str r1, [sp, 0xC]
+ add r0, sp, 0x4
+ strb r1, [r0]
+ ldr r4, _0801BCB4 @ =gUnknown_2023D68
+ ldr r1, _0801BCB8 @ =gUnknown_2023BE4
+ movs r0, 0x58
+ muls r0, r7
+ adds r0, r1
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _0801BCC0
+ ldr r1, _0801BCBC @ =gUnknown_2023F54
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r0, r1
+ ldrb r5, [r0, 0x7]
+ ldrb r0, [r0, 0x1A]
+ b _0801BCD4
+ .align 2, 0
+_0801BCB4: .4byte gUnknown_2023D68
+_0801BCB8: .4byte gUnknown_2023BE4
+_0801BCBC: .4byte gUnknown_2023F54
+_0801BCC0:
+ ldrh r0, [r4]
+ bl sub_809A924
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrh r0, [r4]
+ bl sub_809A948
+ lsls r0, 24
+ lsrs r0, 24
+_0801BCD4:
+ mov r9, r0
+ ldr r1, _0801BCFC @ =gUnknown_2023BE4
+ ldr r0, _0801BD00 @ =gUnknown_2023D6B
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x2E]
+ str r0, [sp, 0x14]
+ cmp r0, 0xAF
+ bne _0801BD08
+ ldr r1, _0801BD04 @ =gUnknown_2023F54
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r3, [r0, 0x7]
+ mov r8, r3
+ ldrb r0, [r0, 0x1A]
+ b _0801BD1E
+ .align 2, 0
+_0801BCFC: .4byte gUnknown_2023BE4
+_0801BD00: .4byte gUnknown_2023D6B
+_0801BD04: .4byte gUnknown_2023F54
+_0801BD08:
+ ldr r0, [sp, 0x14]
+ bl sub_809A924
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, [sp, 0x14]
+ bl sub_809A948
+ lsls r0, 24
+ lsrs r0, 24
+_0801BD1E:
+ str r0, [sp, 0x10]
+ ldr r2, _0801BD54 @ =gUnknown_2023BE4
+ ldr r0, _0801BD58 @ =gUnknown_2023D6C
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r4, [r0, 0x2E]
+ cmp r4, 0xAF
+ beq _0801BD3E
+ adds r0, r4, 0
+ bl sub_809A924
+ adds r0, r4, 0
+ bl sub_809A948
+_0801BD3E:
+ ldr r0, [sp, 0x8]
+ cmp r0, 0x4
+ bls _0801BD48
+ bl _0801CFA6
+_0801BD48:
+ lsls r0, 2
+ ldr r1, _0801BD5C @ =_0801BD60
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801BD54: .4byte gUnknown_2023BE4
+_0801BD58: .4byte gUnknown_2023D6C
+_0801BD5C: .4byte _0801BD60
+ .align 2, 0
+_0801BD60:
+ .4byte _0801BD74
+ .4byte _0801BE04
+ .4byte _0801CFA6
+ .4byte _0801C9FC
+ .4byte _0801CE4C
+_0801BD74:
+ cmp r5, 0x17
+ beq _0801BD94
+ cmp r5, 0x20
+ beq _0801BD80
+ bl _0801CFA6
+_0801BD80:
+ ldr r0, _0801BD90 @ =gUnknown_2023FE8
+ ldr r0, [r0]
+ adds r0, 0x4A
+ movs r1, 0x2
+ strb r1, [r0]
+ bl _0801CFA6
+ .align 2, 0
+_0801BD90: .4byte gUnknown_2023FE8
+_0801BD94:
+ ldr r1, _0801BDEC @ =gUnknown_2023BE4
+ mov r8, r1
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x18
+ adds r1, r0
+ movs r2, 0x6
+ movs r3, 0x7
+ mov r10, r3
+_0801BDAA:
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x5
+ bgt _0801BDB8
+ strb r2, [r1]
+ movs r5, 0x5
+ str r5, [sp, 0xC]
+_0801BDB8:
+ adds r1, 0x1
+ movs r0, 0x1
+ negs r0, r0
+ add r10, r0
+ mov r3, r10
+ cmp r3, 0
+ bge _0801BDAA
+ ldr r5, [sp, 0xC]
+ cmp r5, 0
+ bne _0801BDD0
+ bl _0801CFA6
+_0801BDD0:
+ ldr r0, _0801BDF0 @ =gUnknown_2023FC4
+ strb r7, [r0, 0x17]
+ ldr r0, _0801BDF4 @ =gUnknown_2023D6F
+ strb r7, [r0]
+ ldr r1, _0801BDF8 @ =gUnknown_2023BC4
+ ldr r0, _0801BDFC @ =gUnknown_2023D6B
+ strb r7, [r0]
+ strb r7, [r1]
+ ldr r0, _0801BE00 @ =gUnknown_81D95D9
+ bl sub_801BBE4
+ bl _0801CFA6
+ .align 2, 0
+_0801BDEC: .4byte gUnknown_2023BE4
+_0801BDF0: .4byte gUnknown_2023FC4
+_0801BDF4: .4byte gUnknown_2023D6F
+_0801BDF8: .4byte gUnknown_2023BC4
+_0801BDFC: .4byte gUnknown_2023D6B
+_0801BE00: .4byte gUnknown_81D95D9
+_0801BE04:
+ ldr r1, _0801BE2C @ =gUnknown_2023BE4
+ movs r0, 0x58
+ muls r0, r7
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ mov r8, r1
+ cmp r0, 0
+ bne _0801BE18
+ bl _0801CFA6
+_0801BE18:
+ subs r0, r5, 0x1
+ cmp r0, 0x2A
+ bls _0801BE22
+ bl _0801C952
+_0801BE22:
+ lsls r0, 2
+ ldr r1, _0801BE30 @ =_0801BE34
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801BE2C: .4byte gUnknown_2023BE4
+_0801BE30: .4byte _0801BE34
+ .align 2, 0
+_0801BE34:
+ .4byte _0801BEE0
+ .4byte _0801C6C0
+ .4byte _0801C784
+ .4byte _0801C6F0
+ .4byte _0801C724
+ .4byte _0801C754
+ .4byte _0801BF2C
+ .4byte _0801C7C0
+ .4byte _0801C7F0
+ .4byte _0801C0F8
+ .4byte _0801C178
+ .4byte _0801C1F4
+ .4byte _0801C288
+ .4byte _0801C31C
+ .4byte _0801C3B0
+ .4byte _0801C418
+ .4byte _0801C46C
+ .4byte _0801C4C0
+ .4byte _0801C528
+ .4byte _0801C58C
+ .4byte _0801C5D8
+ .4byte _0801C952
+ .4byte _0801C02C
+ .4byte _0801C952
+ .4byte _0801C952
+ .4byte _0801C952
+ .4byte _0801C952
+ .4byte _0801C91C
+ .4byte _0801C952
+ .4byte _0801C952
+ .4byte _0801C952
+ .4byte _0801C952
+ .4byte _0801C952
+ .4byte _0801C952
+ .4byte _0801C952
+ .4byte _0801C952
+ .4byte _0801C952
+ .4byte _0801C952
+ .4byte _0801C952
+ .4byte _0801C952
+ .4byte _0801C952
+ .4byte _0801C952
+ .4byte _0801C098
+_0801BEE0:
+ movs r0, 0x58
+ muls r0, r7
+ mov r1, r8
+ adds r2, r0, r1
+ ldrh r0, [r2, 0x2C]
+ ldrh r1, [r2, 0x28]
+ lsrs r0, 1
+ cmp r1, r0
+ bls _0801BEF6
+ bl _0801C952
+_0801BEF6:
+ cmp r6, 0
+ beq _0801BEFE
+ bl _0801C952
+_0801BEFE:
+ ldr r4, _0801BF24 @ =gUnknown_2023D50
+ mov r3, r9
+ str r3, [r4]
+ ldrh r3, [r2, 0x28]
+ mov r5, r9
+ adds r0, r3, r5
+ ldrh r1, [r2, 0x2C]
+ cmp r0, r1
+ ble _0801BF14
+ subs r0, r1, r3
+ str r0, [r4]
+_0801BF14:
+ ldr r0, [r4]
+ negs r0, r0
+ str r0, [r4]
+ ldr r0, _0801BF28 @ =gUnknown_81D95EF
+ bl sub_801BBE4
+ b _0801C27E
+ .align 2, 0
+_0801BF24: .4byte gUnknown_2023D50
+_0801BF28: .4byte gUnknown_81D95EF
+_0801BF2C:
+ cmp r6, 0
+ beq _0801BF34
+ bl _0801C952
+_0801BF34:
+ adds r0, r7, 0
+ bl sub_80751C4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801BF58
+ ldr r1, _0801BF50 @ =gUnknown_2023BCE
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _0801BF54 @ =gUnknown_2024284
+ b _0801BF66
+ .align 2, 0
+_0801BF50: .4byte gUnknown_2023BCE
+_0801BF54: .4byte gUnknown_2024284
+_0801BF58:
+ ldr r1, _0801BFD4 @ =gUnknown_2023BCE
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _0801BFD8 @ =gUnknown_202402C
+_0801BF66:
+ adds r4, r1, r0
+ movs r1, 0
+ mov r10, r1
+ add r5, sp, 0x4
+_0801BF6E:
+ mov r1, r10
+ adds r1, 0xD
+ adds r0, r4, 0
+ bl sub_803FBE8
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r1, r10
+ adds r1, 0x11
+ adds r0, r4, 0
+ bl sub_803FBE8
+ strb r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0x15
+ bl sub_803FBE8
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r6, 0
+ beq _0801BF9E
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _0801BFA8
+_0801BF9E:
+ movs r2, 0x1
+ add r10, r2
+ mov r3, r10
+ cmp r3, 0x3
+ ble _0801BF6E
+_0801BFA8:
+ mov r5, r10
+ cmp r5, 0x4
+ bne _0801BFB2
+ bl _0801C952
+_0801BFB2:
+ lsls r2, r5, 24
+ lsrs r2, 24
+ adds r0, r6, 0
+ bl sub_804101C
+ lsls r0, 24
+ lsrs r2, r0, 24
+ add r0, sp, 0x4
+ ldrb r0, [r0]
+ mov r3, r9
+ adds r1, r0, r3
+ cmp r1, r2
+ ble _0801BFDC
+ add r0, sp, 0x4
+ strb r2, [r0]
+ b _0801BFE0
+ .align 2, 0
+_0801BFD4: .4byte gUnknown_2023BCE
+_0801BFD8: .4byte gUnknown_202402C
+_0801BFDC:
+ add r0, sp, 0x4
+ strb r1, [r0]
+_0801BFE0:
+ ldr r1, _0801C020 @ =gUnknown_2022AB8
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ strb r6, [r1, 0x2]
+ lsrs r0, r6, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r0, _0801C024 @ =gUnknown_81D960C
+ bl sub_801BBE4
+ mov r1, r10
+ adds r1, 0x9
+ lsls r1, 24
+ lsrs r1, 24
+ add r5, sp, 0x4
+ str r5, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_800DFF0
+ ldr r0, _0801C028 @ =gUnknown_2023BC4
+ ldrb r0, [r0]
+ bl sub_8017248
+ movs r0, 0x3
+ str r0, [sp, 0xC]
+ bl _0801C95A
+ .align 2, 0
+_0801C020: .4byte gUnknown_2022AB8
+_0801C024: .4byte gUnknown_81D960C
+_0801C028: .4byte gUnknown_2023BC4
+_0801C02C:
+ ldr r0, _0801C080 @ =gUnknown_2023BE4
+ movs r1, 0x58
+ muls r1, r7
+ adds r0, 0x18
+ adds r1, r0
+ movs r2, 0x6
+ movs r3, 0x7
+ mov r10, r3
+_0801C03C:
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x5
+ bgt _0801C04A
+ strb r2, [r1]
+ movs r5, 0x5
+ str r5, [sp, 0xC]
+_0801C04A:
+ adds r1, 0x1
+ movs r0, 0x1
+ negs r0, r0
+ add r10, r0
+ mov r3, r10
+ cmp r3, 0
+ bge _0801C03C
+ movs r5, 0x8
+ mov r10, r5
+ ldr r0, [sp, 0xC]
+ cmp r0, 0
+ bne _0801C066
+ bl _0801CFA6
+_0801C066:
+ ldr r0, _0801C084 @ =gUnknown_2023FC4
+ strb r7, [r0, 0x17]
+ ldr r0, _0801C088 @ =gUnknown_2023D6F
+ strb r7, [r0]
+ ldr r1, _0801C08C @ =gUnknown_2023BC4
+ ldr r0, _0801C090 @ =gUnknown_2023D6B
+ strb r7, [r0]
+ strb r7, [r1]
+ ldr r0, _0801C094 @ =gUnknown_81D95D9
+ bl sub_801BBE4
+ bl _0801C952
+ .align 2, 0
+_0801C080: .4byte gUnknown_2023BE4
+_0801C084: .4byte gUnknown_2023FC4
+_0801C088: .4byte gUnknown_2023D6F
+_0801C08C: .4byte gUnknown_2023BC4
+_0801C090: .4byte gUnknown_2023D6B
+_0801C094: .4byte gUnknown_81D95D9
+_0801C098:
+ movs r0, 0x58
+ muls r0, r7
+ mov r2, r8
+ adds r1, r0, r2
+ ldrh r0, [r1, 0x28]
+ ldrh r3, [r1, 0x2C]
+ cmp r0, r3
+ bcc _0801C0AC
+ bl _0801C952
+_0801C0AC:
+ cmp r6, 0
+ beq _0801C0B4
+ bl _0801C952
+_0801C0B4:
+ ldr r3, _0801C0F0 @ =gUnknown_2023D50
+ ldrh r0, [r1, 0x2C]
+ lsrs r0, 4
+ str r0, [r3]
+ cmp r0, 0
+ bne _0801C0C4
+ movs r0, 0x1
+ str r0, [r3]
+_0801C0C4:
+ ldrh r2, [r1, 0x28]
+ ldr r0, [r3]
+ adds r0, r2, r0
+ ldrh r1, [r1, 0x2C]
+ cmp r0, r1
+ ble _0801C0D4
+ subs r0, r1, r2
+ str r0, [r3]
+_0801C0D4:
+ ldr r0, [r3]
+ negs r0, r0
+ str r0, [r3]
+ ldr r0, _0801C0F4 @ =gUnknown_81D961C
+ bl sub_801BBE4
+ movs r0, 0x4
+ str r0, [sp, 0xC]
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl sub_80C7208
+ bl _0801C952
+ .align 2, 0
+_0801C0F0: .4byte gUnknown_2023D50
+_0801C0F4: .4byte gUnknown_81D961C
+_0801C0F8:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ str r1, [sp, 0x18]
+ adds r4, r1, 0
+ add r4, r8
+ ldrh r0, [r4, 0x2C]
+ ldrh r1, [r4, 0x28]
+ lsrs r0, 1
+ cmp r1, r0
+ bls _0801C112
+ bl _0801C952
+_0801C112:
+ cmp r6, 0
+ beq _0801C11A
+ bl _0801C952
+_0801C11A:
+ ldr r1, _0801C170 @ =gUnknown_2022AB8
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x8
+ strb r0, [r1, 0x1]
+ strb r6, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r5, _0801C174 @ =gUnknown_2023D50
+ ldrh r0, [r4, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ str r0, [r5]
+ cmp r0, 0
+ bne _0801C13E
+ movs r0, 0x1
+ str r0, [r5]
+_0801C13E:
+ ldrh r2, [r4, 0x28]
+ ldr r0, [r5]
+ adds r0, r2, r0
+ ldrh r1, [r4, 0x2C]
+ cmp r0, r1
+ ble _0801C14E
+ subs r0, r1, r2
+ str r0, [r5]
+_0801C14E:
+ ldr r0, [r5]
+ negs r0, r0
+ str r0, [r5]
+ mov r0, r8
+ adds r0, 0x48
+ ldr r2, [sp, 0x18]
+ adds r0, r2, r0
+ ldr r0, [r0]
+ movs r1, 0
+ bl sub_8044234
+ lsls r0, 24
+ cmp r0, 0
+ bge _0801C16C
+ b _0801C2F8
+_0801C16C:
+ b _0801C30C
+ .align 2, 0
+_0801C170: .4byte gUnknown_2022AB8
+_0801C174: .4byte gUnknown_2023D50
+_0801C178:
+ movs r0, 0x58
+ adds r5, r7, 0
+ muls r5, r0
+ str r5, [sp, 0x1C]
+ add r5, r8
+ ldrh r0, [r5, 0x2C]
+ ldrh r1, [r5, 0x28]
+ lsrs r0, 1
+ cmp r1, r0
+ bls _0801C190
+ bl _0801C952
+_0801C190:
+ cmp r6, 0
+ beq _0801C198
+ bl _0801C952
+_0801C198:
+ ldr r1, _0801C1EC @ =gUnknown_2022AB8
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x8
+ strb r0, [r1, 0x1]
+ movs r6, 0x1
+ strb r6, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r4, _0801C1F0 @ =gUnknown_2023D50
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _0801C1BC
+ str r6, [r4]
+_0801C1BC:
+ ldrh r2, [r5, 0x28]
+ ldr r0, [r4]
+ adds r0, r2, r0
+ ldrh r1, [r5, 0x2C]
+ cmp r0, r1
+ ble _0801C1CC
+ subs r0, r1, r2
+ str r0, [r4]
+_0801C1CC:
+ ldr r0, [r4]
+ negs r0, r0
+ str r0, [r4]
+ mov r0, r8
+ adds r0, 0x48
+ ldr r1, [sp, 0x1C]
+ adds r0, r1, r0
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl sub_8044234
+ lsls r0, 24
+ cmp r0, 0
+ bge _0801C1EA
+ b _0801C38A
+_0801C1EA:
+ b _0801C3A0
+ .align 2, 0
+_0801C1EC: .4byte gUnknown_2022AB8
+_0801C1F0: .4byte gUnknown_2023D50
+_0801C1F4:
+ movs r0, 0x58
+ adds r3, r7, 0
+ muls r3, r0
+ str r3, [sp, 0x20]
+ adds r5, r3, 0
+ add r5, r8
+ ldrh r0, [r5, 0x2C]
+ ldrh r1, [r5, 0x28]
+ lsrs r0, 1
+ cmp r1, r0
+ bls _0801C20C
+ b _0801C952
+_0801C20C:
+ cmp r6, 0
+ beq _0801C212
+ b _0801C952
+_0801C212:
+ ldr r1, _0801C26C @ =gUnknown_2022AB8
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x8
+ strb r0, [r1, 0x1]
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r4, _0801C270 @ =gUnknown_2023D50
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _0801C238
+ movs r0, 0x1
+ str r0, [r4]
+_0801C238:
+ ldrh r2, [r5, 0x28]
+ ldr r0, [r4]
+ adds r0, r2, r0
+ ldrh r1, [r5, 0x2C]
+ cmp r0, r1
+ ble _0801C248
+ subs r0, r1, r2
+ str r0, [r4]
+_0801C248:
+ ldr r0, [r4]
+ negs r0, r0
+ str r0, [r4]
+ mov r0, r8
+ adds r0, 0x48
+ ldr r5, [sp, 0x20]
+ adds r0, r5, r0
+ ldr r0, [r0]
+ movs r1, 0x2
+ bl sub_8044234
+ lsls r0, 24
+ cmp r0, 0
+ bge _0801C278
+ ldr r0, _0801C274 @ =gUnknown_81D964F
+ bl sub_801BBE4
+ b _0801C27E
+ .align 2, 0
+_0801C26C: .4byte gUnknown_2022AB8
+_0801C270: .4byte gUnknown_2023D50
+_0801C274: .4byte gUnknown_81D964F
+_0801C278:
+ ldr r0, _0801C284 @ =gUnknown_81D95EF
+ bl sub_801BBE4
+_0801C27E:
+ movs r0, 0x4
+ str r0, [sp, 0xC]
+ b _0801C95A
+ .align 2, 0
+_0801C284: .4byte gUnknown_81D95EF
+_0801C288:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ str r1, [sp, 0x24]
+ adds r5, r1, 0
+ add r5, r8
+ ldrh r0, [r5, 0x2C]
+ ldrh r1, [r5, 0x28]
+ lsrs r0, 1
+ cmp r1, r0
+ bls _0801C2A0
+ b _0801C952
+_0801C2A0:
+ cmp r6, 0
+ beq _0801C2A6
+ b _0801C952
+_0801C2A6:
+ ldr r1, _0801C300 @ =gUnknown_2022AB8
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x8
+ strb r0, [r1, 0x1]
+ movs r0, 0x3
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r4, _0801C304 @ =gUnknown_2023D50
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _0801C2CC
+ movs r0, 0x1
+ str r0, [r4]
+_0801C2CC:
+ ldrh r2, [r5, 0x28]
+ ldr r0, [r4]
+ adds r0, r2, r0
+ ldrh r1, [r5, 0x2C]
+ cmp r0, r1
+ ble _0801C2DC
+ subs r0, r1, r2
+ str r0, [r4]
+_0801C2DC:
+ ldr r0, [r4]
+ negs r0, r0
+ str r0, [r4]
+ mov r0, r8
+ adds r0, 0x48
+ ldr r2, [sp, 0x24]
+ adds r0, r2, r0
+ ldr r0, [r0]
+ movs r1, 0x3
+ bl sub_8044234
+ lsls r0, 24
+ cmp r0, 0
+ bge _0801C30C
+_0801C2F8:
+ ldr r0, _0801C308 @ =gUnknown_81D964F
+ bl sub_801BBE4
+ b _0801C312
+ .align 2, 0
+_0801C300: .4byte gUnknown_2022AB8
+_0801C304: .4byte gUnknown_2023D50
+_0801C308: .4byte gUnknown_81D964F
+_0801C30C:
+ ldr r0, _0801C318 @ =gUnknown_81D95EF
+ bl sub_801BBE4
+_0801C312:
+ movs r3, 0x4
+ str r3, [sp, 0xC]
+ b _0801C95A
+ .align 2, 0
+_0801C318: .4byte gUnknown_81D95EF
+_0801C31C:
+ movs r0, 0x58
+ adds r5, r7, 0
+ muls r5, r0
+ str r5, [sp, 0x28]
+ add r5, r8
+ ldrh r0, [r5, 0x2C]
+ ldrh r1, [r5, 0x28]
+ lsrs r0, 1
+ cmp r1, r0
+ bls _0801C332
+ b _0801C952
+_0801C332:
+ cmp r6, 0
+ beq _0801C338
+ b _0801C952
+_0801C338:
+ ldr r1, _0801C394 @ =gUnknown_2022AB8
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x8
+ strb r0, [r1, 0x1]
+ movs r0, 0x4
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r4, _0801C398 @ =gUnknown_2023D50
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _0801C35E
+ movs r0, 0x1
+ str r0, [r4]
+_0801C35E:
+ ldrh r2, [r5, 0x28]
+ ldr r0, [r4]
+ adds r0, r2, r0
+ ldrh r1, [r5, 0x2C]
+ cmp r0, r1
+ ble _0801C36E
+ subs r0, r1, r2
+ str r0, [r4]
+_0801C36E:
+ ldr r0, [r4]
+ negs r0, r0
+ str r0, [r4]
+ mov r0, r8
+ adds r0, 0x48
+ ldr r1, [sp, 0x28]
+ adds r0, r1, r0
+ ldr r0, [r0]
+ movs r1, 0x4
+ bl sub_8044234
+ lsls r0, 24
+ cmp r0, 0
+ bge _0801C3A0
+_0801C38A:
+ ldr r0, _0801C39C @ =gUnknown_81D964F
+ bl sub_801BBE4
+ b _0801C3A6
+ .align 2, 0
+_0801C394: .4byte gUnknown_2022AB8
+_0801C398: .4byte gUnknown_2023D50
+_0801C39C: .4byte gUnknown_81D964F
+_0801C3A0:
+ ldr r0, _0801C3AC @ =gUnknown_81D95EF
+ bl sub_801BBE4
+_0801C3A6:
+ movs r2, 0x4
+ str r2, [sp, 0xC]
+ b _0801C95A
+ .align 2, 0
+_0801C3AC: .4byte gUnknown_81D95EF
+_0801C3B0:
+ movs r0, 0x58
+ muls r0, r7
+ mov r3, r8
+ adds r5, r0, r3
+ ldrh r4, [r5, 0x28]
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ cmp r4, r0
+ ble _0801C3C8
+ b _0801C952
+_0801C3C8:
+ cmp r6, 0
+ beq _0801C3CE
+ b _0801C952
+_0801C3CE:
+ movs r0, 0x19
+ ldrsb r0, [r5, r0]
+ cmp r0, 0xB
+ ble _0801C3D8
+ b _0801C952
+_0801C3D8:
+ ldr r1, _0801C408 @ =gUnknown_2022AB8
+ movs r2, 0xFD
+ strb r2, [r1]
+ movs r0, 0x5
+ strb r0, [r1, 0x1]
+ movs r0, 0x1
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r1, _0801C40C @ =gUnknown_2022AC8
+ strb r2, [r1]
+ strb r6, [r1, 0x1]
+ movs r0, 0xD2
+ strb r0, [r1, 0x2]
+ strb r6, [r1, 0x3]
+ subs r0, 0xD3
+ strb r0, [r1, 0x4]
+ ldr r0, _0801C410 @ =gUnknown_2023D6E
+ strb r7, [r0]
+ ldr r1, _0801C414 @ =gUnknown_2023FC4
+ movs r0, 0x11
+ strb r0, [r1, 0x1A]
+ movs r0, 0xF
+ b _0801C56C
+ .align 2, 0
+_0801C408: .4byte gUnknown_2022AB8
+_0801C40C: .4byte gUnknown_2022AC8
+_0801C410: .4byte gUnknown_2023D6E
+_0801C414: .4byte gUnknown_2023FC4
+_0801C418:
+ movs r0, 0x58
+ muls r0, r7
+ mov r1, r8
+ adds r5, r0, r1
+ ldrh r4, [r5, 0x28]
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ cmp r4, r0
+ ble _0801C430
+ b _0801C952
+_0801C430:
+ cmp r6, 0
+ beq _0801C436
+ b _0801C952
+_0801C436:
+ movs r0, 0x1A
+ ldrsb r0, [r5, r0]
+ cmp r0, 0xB
+ ble _0801C440
+ b _0801C952
+_0801C440:
+ ldr r1, _0801C460 @ =gUnknown_2022AB8
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x5
+ strb r0, [r1, 0x1]
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r0, _0801C464 @ =gUnknown_2023D6E
+ strb r7, [r0]
+ ldr r1, _0801C468 @ =gUnknown_2023FC4
+ movs r0, 0x12
+ strb r0, [r1, 0x1A]
+ movs r0, 0x10
+ b _0801C506
+ .align 2, 0
+_0801C460: .4byte gUnknown_2022AB8
+_0801C464: .4byte gUnknown_2023D6E
+_0801C468: .4byte gUnknown_2023FC4
+_0801C46C:
+ movs r0, 0x58
+ muls r0, r7
+ mov r3, r8
+ adds r5, r0, r3
+ ldrh r4, [r5, 0x28]
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ cmp r4, r0
+ ble _0801C484
+ b _0801C952
+_0801C484:
+ cmp r6, 0
+ beq _0801C48A
+ b _0801C952
+_0801C48A:
+ movs r0, 0x1B
+ ldrsb r0, [r5, r0]
+ cmp r0, 0xB
+ ble _0801C494
+ b _0801C952
+_0801C494:
+ ldr r1, _0801C4B4 @ =gUnknown_2022AB8
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x5
+ strb r0, [r1, 0x1]
+ movs r0, 0x3
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r0, _0801C4B8 @ =gUnknown_2023D6E
+ strb r7, [r0]
+ ldr r1, _0801C4BC @ =gUnknown_2023FC4
+ movs r0, 0x13
+ strb r0, [r1, 0x1A]
+ movs r0, 0x11
+ b _0801C56C
+ .align 2, 0
+_0801C4B4: .4byte gUnknown_2022AB8
+_0801C4B8: .4byte gUnknown_2023D6E
+_0801C4BC: .4byte gUnknown_2023FC4
+_0801C4C0:
+ movs r0, 0x58
+ muls r0, r7
+ mov r1, r8
+ adds r5, r0, r1
+ ldrh r4, [r5, 0x28]
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ cmp r4, r0
+ ble _0801C4D8
+ b _0801C952
+_0801C4D8:
+ cmp r6, 0
+ beq _0801C4DE
+ b _0801C952
+_0801C4DE:
+ movs r0, 0x1C
+ ldrsb r0, [r5, r0]
+ cmp r0, 0xB
+ ble _0801C4E8
+ b _0801C952
+_0801C4E8:
+ ldr r1, _0801C518 @ =gUnknown_2022AB8
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x5
+ strb r0, [r1, 0x1]
+ movs r0, 0x4
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r0, _0801C51C @ =gUnknown_2023D6E
+ strb r7, [r0]
+ ldr r1, _0801C520 @ =gUnknown_2023FC4
+ movs r0, 0x14
+ strb r0, [r1, 0x1A]
+ movs r0, 0x12
+_0801C506:
+ strb r0, [r1, 0x10]
+ strb r6, [r1, 0x11]
+ ldr r0, _0801C524 @ =gUnknown_81D9679
+ bl sub_801BBE4
+ movs r2, 0x5
+ str r2, [sp, 0xC]
+ b _0801C95A
+ .align 2, 0
+_0801C518: .4byte gUnknown_2022AB8
+_0801C51C: .4byte gUnknown_2023D6E
+_0801C520: .4byte gUnknown_2023FC4
+_0801C524: .4byte gUnknown_81D9679
+_0801C528:
+ movs r0, 0x58
+ muls r0, r7
+ mov r3, r8
+ adds r5, r0, r3
+ ldrh r4, [r5, 0x28]
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ cmp r4, r0
+ ble _0801C540
+ b _0801C952
+_0801C540:
+ cmp r6, 0
+ beq _0801C546
+ b _0801C952
+_0801C546:
+ movs r0, 0x1D
+ ldrsb r0, [r5, r0]
+ cmp r0, 0xB
+ ble _0801C550
+ b _0801C952
+_0801C550:
+ ldr r1, _0801C57C @ =gUnknown_2022AB8
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x5
+ strb r0, [r1, 0x1]
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r0, _0801C580 @ =gUnknown_2023D6E
+ strb r7, [r0]
+ ldr r1, _0801C584 @ =gUnknown_2023FC4
+ movs r0, 0x15
+ strb r0, [r1, 0x1A]
+ movs r0, 0x13
+_0801C56C:
+ strb r0, [r1, 0x10]
+ strb r6, [r1, 0x11]
+ ldr r0, _0801C588 @ =gUnknown_81D9679
+ bl sub_801BBE4
+ movs r5, 0x5
+ str r5, [sp, 0xC]
+ b _0801C95A
+ .align 2, 0
+_0801C57C: .4byte gUnknown_2022AB8
+_0801C580: .4byte gUnknown_2023D6E
+_0801C584: .4byte gUnknown_2023FC4
+_0801C588: .4byte gUnknown_81D9679
+_0801C58C:
+ movs r0, 0x58
+ adds r5, r7, 0
+ muls r5, r0
+ mov r1, r8
+ adds r0, r5, r1
+ ldrh r4, [r0, 0x28]
+ ldrh r0, [r0, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ cmp r4, r0
+ ble _0801C5A6
+ b _0801C952
+_0801C5A6:
+ cmp r6, 0
+ beq _0801C5AC
+ b _0801C952
+_0801C5AC:
+ mov r0, r8
+ adds r0, 0x50
+ adds r1, r5, r0
+ ldr r2, [r1]
+ movs r3, 0x80
+ lsls r3, 13
+ adds r0, r2, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _0801C5C2
+ b _0801C952
+_0801C5C2:
+ orrs r2, r3
+ str r2, [r1]
+ ldr r0, _0801C5D4 @ =gUnknown_81D9694
+ bl sub_801BBE4
+ movs r2, 0x2
+ str r2, [sp, 0xC]
+ b _0801C95A
+ .align 2, 0
+_0801C5D4: .4byte gUnknown_81D9694
+_0801C5D8:
+ cmp r6, 0
+ beq _0801C5DE
+ b _0801C952
+_0801C5DE:
+ movs r0, 0x58
+ adds r5, r7, 0
+ muls r5, r0
+ mov r3, r8
+ adds r0, r5, r3
+ ldrh r4, [r0, 0x28]
+ ldrh r0, [r0, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ cmp r4, r0
+ ble _0801C5F8
+ b _0801C952
+_0801C5F8:
+ movs r0, 0
+ mov r10, r0
+ adds r0, r5, 0x1
+ mov r1, r8
+ adds r1, 0x18
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0xB
+ ble _0801C628
+ mov r0, r8
+ adds r0, 0x19
+ adds r1, r5, r0
+_0801C614:
+ adds r1, 0x1
+ movs r2, 0x1
+ add r10, r2
+ mov r3, r10
+ cmp r3, 0x4
+ bgt _0801C628
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xB
+ bgt _0801C614
+_0801C628:
+ mov r5, r10
+ cmp r5, 0x5
+ bne _0801C630
+ b _0801C952
+_0801C630:
+ movs r0, 0x58
+ muls r0, r7
+ adds r4, r0, 0x1
+ ldr r5, _0801C6A8 @ =gUnknown_2023BFC
+_0801C638:
+ bl sub_8044EC8
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x5
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ adds r0, r4
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0xC
+ beq _0801C638
+ ldr r1, _0801C6AC @ =gUnknown_2022AB8
+ movs r2, 0
+ movs r3, 0xFD
+ strb r3, [r1]
+ movs r0, 0x5
+ strb r0, [r1, 0x1]
+ mov r0, r10
+ adds r0, 0x1
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r0, _0801C6B0 @ =gUnknown_2022AC8
+ strb r3, [r0]
+ strb r2, [r0, 0x1]
+ movs r1, 0xD1
+ strb r1, [r0, 0x2]
+ strb r2, [r0, 0x3]
+ strb r2, [r0, 0x4]
+ movs r1, 0xD2
+ strb r1, [r0, 0x5]
+ strb r2, [r0, 0x6]
+ subs r1, 0xD3
+ strb r1, [r0, 0x7]
+ ldr r0, _0801C6B4 @ =gUnknown_2023D6E
+ strb r7, [r0]
+ ldr r1, _0801C6B8 @ =gUnknown_2023FC4
+ mov r0, r10
+ adds r0, 0x21
+ strb r0, [r1, 0x1A]
+ adds r0, 0x6
+ strb r0, [r1, 0x10]
+ strb r2, [r1, 0x11]
+ ldr r0, _0801C6BC @ =gUnknown_81D9679
+ bl sub_801BBE4
+ movs r0, 0x5
+ str r0, [sp, 0xC]
+ b _0801C95A
+ .align 2, 0
+_0801C6A8: .4byte gUnknown_2023BFC
+_0801C6AC: .4byte gUnknown_2022AB8
+_0801C6B0: .4byte gUnknown_2022AC8
+_0801C6B4: .4byte gUnknown_2023D6E
+_0801C6B8: .4byte gUnknown_2023FC4
+_0801C6BC: .4byte gUnknown_81D9679
+_0801C6C0:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x4C
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x40
+ ands r0, r2
+ cmp r0, 0
+ bne _0801C6D8
+ b _0801C952
+_0801C6D8:
+ movs r0, 0x41
+ negs r0, r0
+ ands r2, r0
+ str r2, [r1]
+ ldr r0, _0801C6EC @ =gUnknown_81D9531
+ bl sub_801BBE4
+ movs r1, 0x1
+ str r1, [sp, 0xC]
+ b _0801C95A
+ .align 2, 0
+_0801C6EC: .4byte gUnknown_81D9531
+_0801C6F0:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x4C
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x88
+ ands r0, r2
+ cmp r0, 0
+ bne _0801C708
+ b _0801C952
+_0801C708:
+ ldr r0, _0801C71C @ =0xfffff077
+ ands r2, r0
+ str r2, [r1]
+ ldr r0, _0801C720 @ =gUnknown_81D9549
+ bl sub_801BBE4
+ movs r2, 0x1
+ str r2, [sp, 0xC]
+ b _0801C95A
+ .align 2, 0
+_0801C71C: .4byte 0xfffff077
+_0801C720: .4byte gUnknown_81D9549
+_0801C724:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x4C
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ bne _0801C73C
+ b _0801C952
+_0801C73C:
+ movs r0, 0x11
+ negs r0, r0
+ ands r2, r0
+ str r2, [r1]
+ ldr r0, _0801C750 @ =gUnknown_81D9561
+ bl sub_801BBE4
+ movs r3, 0x1
+ str r3, [sp, 0xC]
+ b _0801C95A
+ .align 2, 0
+_0801C750: .4byte gUnknown_81D9561
+_0801C754:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x4C
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ bne _0801C76C
+ b _0801C952
+_0801C76C:
+ movs r0, 0x21
+ negs r0, r0
+ ands r2, r0
+ str r2, [r1]
+ ldr r0, _0801C780 @ =gUnknown_81D9579
+ bl sub_801BBE4
+ movs r5, 0x1
+ str r5, [sp, 0xC]
+ b _0801C95A
+ .align 2, 0
+_0801C780: .4byte gUnknown_81D9579
+_0801C784:
+ movs r0, 0x58
+ adds r3, r7, 0
+ muls r3, r0
+ mov r0, r8
+ adds r0, 0x4C
+ adds r2, r3, r0
+ ldr r1, [r2]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801C79C
+ b _0801C952
+_0801C79C:
+ movs r0, 0x8
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+ mov r1, r8
+ adds r1, 0x50
+ adds r1, r3, r1
+ ldr r0, [r1]
+ ldr r2, _0801C7B8 @ =0xf7ffffff
+ ands r0, r2
+ str r0, [r1]
+ ldr r0, _0801C7BC @ =gUnknown_81D9591
+ b _0801C906
+ .align 2, 0
+_0801C7B8: .4byte 0xf7ffffff
+_0801C7BC: .4byte gUnknown_81D9591
+_0801C7C0:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x50
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x7
+ ands r0, r2
+ cmp r0, 0
+ bne _0801C7D8
+ b _0801C952
+_0801C7D8:
+ movs r0, 0x8
+ negs r0, r0
+ ands r2, r0
+ str r2, [r1]
+ ldr r0, _0801C7EC @ =gUnknown_81D95A9
+ bl sub_801BBE4
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ b _0801C95A
+ .align 2, 0
+_0801C7EC: .4byte gUnknown_81D95A9
+_0801C7F0:
+ movs r0, 0x58
+ adds r5, r7, 0
+ muls r5, r0
+ mov r0, r8
+ adds r0, 0x4C
+ adds r4, r5, r0
+ ldr r2, [r4]
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _0801C816
+ mov r0, r8
+ adds r0, 0x50
+ adds r0, r5, r0
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801C816
+ b _0801C952
+_0801C816:
+ movs r3, 0
+ mov r10, r3
+ movs r0, 0x88
+ ands r2, r0
+ cmp r2, 0
+ beq _0801C82E
+ ldr r0, _0801C8BC @ =gUnknown_2022AB8
+ ldr r1, _0801C8C0 @ =gUnknown_8250094
+ bl sub_8008D84
+ movs r0, 0x1
+ mov r10, r0
+_0801C82E:
+ ldr r0, [r4]
+ movs r1, 0x7
+ mov r9, r1
+ ands r0, r1
+ mov r6, r8
+ adds r6, 0x50
+ cmp r0, 0
+ beq _0801C854
+ adds r2, r5, r6
+ ldr r0, [r2]
+ ldr r1, _0801C8C4 @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r0, _0801C8BC @ =gUnknown_2022AB8
+ ldr r1, _0801C8C8 @ =gUnknown_825009C
+ bl sub_8008D84
+ movs r2, 0x1
+ add r10, r2
+_0801C854:
+ ldr r0, [r4]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C86A
+ ldr r0, _0801C8BC @ =gUnknown_2022AB8
+ ldr r1, _0801C8CC @ =gUnknown_82500A4
+ bl sub_8008D84
+ movs r3, 0x1
+ add r10, r3
+_0801C86A:
+ ldr r0, [r4]
+ movs r1, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C880
+ ldr r0, _0801C8BC @ =gUnknown_2022AB8
+ ldr r1, _0801C8D0 @ =gUnknown_82500AC
+ bl sub_8008D84
+ movs r0, 0x1
+ add r10, r0
+_0801C880:
+ ldr r0, [r4]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C896
+ ldr r0, _0801C8BC @ =gUnknown_2022AB8
+ ldr r1, _0801C8D4 @ =gUnknown_82500B4
+ bl sub_8008D84
+ movs r1, 0x1
+ add r10, r1
+_0801C896:
+ adds r0, r5, r6
+ ldr r0, [r0]
+ mov r2, r9
+ ands r0, r2
+ cmp r0, 0
+ beq _0801C8AE
+ ldr r0, _0801C8BC @ =gUnknown_2022AB8
+ ldr r1, _0801C8D8 @ =gUnknown_82500BC
+ bl sub_8008D84
+ movs r3, 0x1
+ add r10, r3
+_0801C8AE:
+ mov r5, r10
+ cmp r5, 0x1
+ bgt _0801C8E0
+ ldr r1, _0801C8DC @ =gUnknown_2023E82
+ movs r0, 0
+ b _0801C8E4
+ .align 2, 0
+_0801C8BC: .4byte gUnknown_2022AB8
+_0801C8C0: .4byte gUnknown_8250094
+_0801C8C4: .4byte 0xf7ffffff
+_0801C8C8: .4byte gUnknown_825009C
+_0801C8CC: .4byte gUnknown_82500A4
+_0801C8D0: .4byte gUnknown_82500AC
+_0801C8D4: .4byte gUnknown_82500B4
+_0801C8D8: .4byte gUnknown_82500BC
+_0801C8DC: .4byte gUnknown_2023E82
+_0801C8E0:
+ ldr r1, _0801C910 @ =gUnknown_2023E82
+ movs r0, 0x1
+_0801C8E4:
+ strb r0, [r1, 0x5]
+ ldr r2, _0801C914 @ =gUnknown_2023BE4
+ movs r0, 0x58
+ adds r3, r7, 0
+ muls r3, r0
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r0, r3, r0
+ movs r1, 0
+ str r1, [r0]
+ adds r2, 0x50
+ adds r3, r2
+ ldr r0, [r3]
+ subs r1, 0x8
+ ands r0, r1
+ str r0, [r3]
+ ldr r0, _0801C918 @ =gUnknown_81D95BF
+_0801C906:
+ bl sub_801BBE4
+ movs r0, 0x1
+ str r0, [sp, 0xC]
+ b _0801C95A
+ .align 2, 0
+_0801C910: .4byte gUnknown_2023E82
+_0801C914: .4byte gUnknown_2023BE4
+_0801C918: .4byte gUnknown_81D95BF
+_0801C91C:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x50
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0xF0
+ lsls r0, 12
+ ands r0, r2
+ cmp r0, 0
+ beq _0801C952
+ ldr r0, _0801C978 @ =0xfff0ffff
+ ands r2, r0
+ str r2, [r1]
+ ldr r0, _0801C97C @ =gUnknown_2022AB8
+ ldr r1, _0801C980 @ =gUnknown_82500C4
+ bl sub_8008D84
+ ldr r0, _0801C984 @ =gUnknown_81D95BF
+ bl sub_801BBE4
+ ldr r1, _0801C988 @ =gUnknown_2023E82
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+_0801C952:
+ ldr r2, [sp, 0xC]
+ cmp r2, 0
+ bne _0801C95A
+ b _0801CFA6
+_0801C95A:
+ ldr r0, _0801C98C @ =gUnknown_2023FC4
+ strb r7, [r0, 0x17]
+ ldr r0, _0801C990 @ =gUnknown_2023D6F
+ strb r7, [r0]
+ ldr r4, _0801C994 @ =gUnknown_2023BC4
+ ldr r0, _0801C998 @ =gUnknown_2023D6B
+ strb r7, [r0]
+ strb r7, [r4]
+ ldr r3, [sp, 0xC]
+ cmp r3, 0x1
+ beq _0801C99C
+ cmp r3, 0x3
+ beq _0801C9A2
+ b _0801CFA6
+ .align 2, 0
+_0801C978: .4byte 0xfff0ffff
+_0801C97C: .4byte gUnknown_2022AB8
+_0801C980: .4byte gUnknown_82500C4
+_0801C984: .4byte gUnknown_81D95BF
+_0801C988: .4byte gUnknown_2023E82
+_0801C98C: .4byte gUnknown_2023FC4
+_0801C990: .4byte gUnknown_2023D6F
+_0801C994: .4byte gUnknown_2023BC4
+_0801C998: .4byte gUnknown_2023D6B
+_0801C99C:
+ movs r0, 0x58
+ muls r0, r7
+ b _0801CE08
+_0801C9A2:
+ ldr r4, _0801C9F0 @ =gUnknown_2023BE4
+ movs r0, 0x58
+ adds r3, r7, 0
+ muls r3, r0
+ adds r0, r4, 0
+ adds r0, 0x50
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C9BE
+ b _0801CFA6
+_0801C9BE:
+ ldr r1, _0801C9F4 @ =gUnknown_2023E0C
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _0801C9F8 @ =gUnknown_825E45C
+ mov r5, r10
+ lsls r0, r5, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0801C9DE
+ b _0801CFA6
+_0801C9DE:
+ adds r1, r5, r3
+ adds r0, r4, 0
+ adds r0, 0x24
+ adds r1, r0
+ add r0, sp, 0x4
+ ldrb r0, [r0]
+ strb r0, [r1]
+ b _0801CFA6
+ .align 2, 0
+_0801C9F0: .4byte gUnknown_2023BE4
+_0801C9F4: .4byte gUnknown_2023E0C
+_0801C9F8: .4byte gUnknown_825E45C
+_0801C9FC:
+ movs r7, 0
+ ldr r0, _0801CA2C @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcc _0801CA08
+ b _0801CFA6
+_0801CA08:
+ ldr r4, _0801CA30 @ =gUnknown_2023D68
+ ldr r1, _0801CA34 @ =gUnknown_2023BE4
+ movs r0, 0x58
+ muls r0, r7
+ adds r0, r1
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _0801CA3C
+ ldr r1, _0801CA38 @ =gUnknown_2023F54
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r0, r1
+ ldrb r5, [r0, 0x7]
+ b _0801CA4C
+ .align 2, 0
+_0801CA2C: .4byte gUnknown_2023BCC
+_0801CA30: .4byte gUnknown_2023D68
+_0801CA34: .4byte gUnknown_2023BE4
+_0801CA38: .4byte gUnknown_2023F54
+_0801CA3C:
+ ldrh r0, [r4]
+ bl sub_809A924
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrh r0, [r4]
+ bl sub_809A948
+_0801CA4C:
+ subs r0, r5, 0x2
+ cmp r0, 0x1A
+ bls _0801CA54
+ b _0801CDF0
+_0801CA54:
+ lsls r0, 2
+ ldr r1, _0801CA60 @ =_0801CA64
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801CA60: .4byte _0801CA64
+ .align 2, 0
+_0801CA64:
+ .4byte _0801CAD0
+ .4byte _0801CBC0
+ .4byte _0801CB0C
+ .4byte _0801CB48
+ .4byte _0801CB84
+ .4byte _0801CDF0
+ .4byte _0801CC08
+ .4byte _0801CC9C
+ .4byte _0801CDF0
+ .4byte _0801CDF0
+ .4byte _0801CDF0
+ .4byte _0801CDF0
+ .4byte _0801CDF0
+ .4byte _0801CDF0
+ .4byte _0801CDF0
+ .4byte _0801CDF0
+ .4byte _0801CDF0
+ .4byte _0801CDF0
+ .4byte _0801CDF0
+ .4byte _0801CDF0
+ .4byte _0801CDF0
+ .4byte _0801CD90
+ .4byte _0801CDF0
+ .4byte _0801CDF0
+ .4byte _0801CDF0
+ .4byte _0801CDF0
+ .4byte _0801CC44
+_0801CAD0:
+ ldr r1, _0801CB00 @ =gUnknown_2023BE4
+ movs r0, 0x58
+ muls r0, r7
+ adds r1, 0x4C
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0801CAE6
+ b _0801CDF0
+_0801CAE6:
+ movs r0, 0x41
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+ bl sub_8017544
+ ldr r1, _0801CB04 @ =gUnknown_2023D74
+ ldr r0, _0801CB08 @ =gUnknown_81D9537
+ str r0, [r1]
+ movs r0, 0x1
+ str r0, [sp, 0xC]
+ b _0801CDF6
+ .align 2, 0
+_0801CB00: .4byte gUnknown_2023BE4
+_0801CB04: .4byte gUnknown_2023D74
+_0801CB08: .4byte gUnknown_81D9537
+_0801CB0C:
+ ldr r1, _0801CB38 @ =gUnknown_2023BE4
+ movs r0, 0x58
+ muls r0, r7
+ adds r1, 0x4C
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x88
+ ands r0, r1
+ cmp r0, 0
+ bne _0801CB22
+ b _0801CDF0
+_0801CB22:
+ ldr r0, _0801CB3C @ =0xfffff077
+ ands r1, r0
+ str r1, [r2]
+ bl sub_8017544
+ ldr r1, _0801CB40 @ =gUnknown_2023D74
+ ldr r0, _0801CB44 @ =gUnknown_81D954F
+ str r0, [r1]
+ movs r1, 0x1
+ str r1, [sp, 0xC]
+ b _0801CDF6
+ .align 2, 0
+_0801CB38: .4byte gUnknown_2023BE4
+_0801CB3C: .4byte 0xfffff077
+_0801CB40: .4byte gUnknown_2023D74
+_0801CB44: .4byte gUnknown_81D954F
+_0801CB48:
+ ldr r1, _0801CB78 @ =gUnknown_2023BE4
+ movs r0, 0x58
+ muls r0, r7
+ adds r1, 0x4C
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0801CB5E
+ b _0801CDF0
+_0801CB5E:
+ movs r0, 0x11
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+ bl sub_8017544
+ ldr r1, _0801CB7C @ =gUnknown_2023D74
+ ldr r0, _0801CB80 @ =gUnknown_81D9567
+ str r0, [r1]
+ movs r2, 0x1
+ str r2, [sp, 0xC]
+ b _0801CDF6
+ .align 2, 0
+_0801CB78: .4byte gUnknown_2023BE4
+_0801CB7C: .4byte gUnknown_2023D74
+_0801CB80: .4byte gUnknown_81D9567
+_0801CB84:
+ ldr r1, _0801CBB4 @ =gUnknown_2023BE4
+ movs r0, 0x58
+ muls r0, r7
+ adds r1, 0x4C
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0801CB9A
+ b _0801CDF0
+_0801CB9A:
+ movs r0, 0x21
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+ bl sub_8017544
+ ldr r1, _0801CBB8 @ =gUnknown_2023D74
+ ldr r0, _0801CBBC @ =gUnknown_81D957F
+ str r0, [r1]
+ movs r3, 0x1
+ str r3, [sp, 0xC]
+ b _0801CDF6
+ .align 2, 0
+_0801CBB4: .4byte gUnknown_2023BE4
+_0801CBB8: .4byte gUnknown_2023D74
+_0801CBBC: .4byte gUnknown_81D957F
+_0801CBC0:
+ ldr r2, _0801CBF8 @ =gUnknown_2023BE4
+ movs r0, 0x58
+ adds r4, r7, 0
+ muls r4, r0
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r3, r4, r0
+ ldr r1, [r3]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801CBDA
+ b _0801CDF0
+_0801CBDA:
+ movs r0, 0x8
+ negs r0, r0
+ ands r1, r0
+ str r1, [r3]
+ adds r2, 0x50
+ adds r2, r4, r2
+ ldr r0, [r2]
+ ldr r1, _0801CBFC @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+ bl sub_8017544
+ ldr r1, _0801CC00 @ =gUnknown_2023D74
+ ldr r0, _0801CC04 @ =gUnknown_81D9597
+ b _0801CD58
+ .align 2, 0
+_0801CBF8: .4byte gUnknown_2023BE4
+_0801CBFC: .4byte 0xf7ffffff
+_0801CC00: .4byte gUnknown_2023D74
+_0801CC04: .4byte gUnknown_81D9597
+_0801CC08:
+ ldr r1, _0801CC38 @ =gUnknown_2023BE4
+ movs r0, 0x58
+ muls r0, r7
+ adds r1, 0x50
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801CC1E
+ b _0801CDF0
+_0801CC1E:
+ movs r0, 0x8
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+ bl sub_8017544
+ ldr r1, _0801CC3C @ =gUnknown_2023D74
+ ldr r0, _0801CC40 @ =gUnknown_81D95AF
+ str r0, [r1]
+ movs r0, 0x2
+ str r0, [sp, 0xC]
+ b _0801CDF6
+ .align 2, 0
+_0801CC38: .4byte gUnknown_2023BE4
+_0801CC3C: .4byte gUnknown_2023D74
+_0801CC40: .4byte gUnknown_81D95AF
+_0801CC44:
+ ldr r1, _0801CC80 @ =gUnknown_2023BE4
+ movs r0, 0x58
+ muls r0, r7
+ adds r1, 0x50
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0xF0
+ lsls r0, 12
+ ands r0, r1
+ cmp r0, 0
+ bne _0801CC5C
+ b _0801CDF0
+_0801CC5C:
+ ldr r0, _0801CC84 @ =0xfff0ffff
+ ands r1, r0
+ str r1, [r2]
+ ldr r0, _0801CC88 @ =gUnknown_2022AB8
+ ldr r1, _0801CC8C @ =gUnknown_82500C4
+ bl sub_8008D84
+ bl sub_8017544
+ ldr r1, _0801CC90 @ =gUnknown_2023E82
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ ldr r1, _0801CC94 @ =gUnknown_2023D74
+ ldr r0, _0801CC98 @ =gUnknown_81D95C5
+ str r0, [r1]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ b _0801CDF6
+ .align 2, 0
+_0801CC80: .4byte gUnknown_2023BE4
+_0801CC84: .4byte 0xfff0ffff
+_0801CC88: .4byte gUnknown_2022AB8
+_0801CC8C: .4byte gUnknown_82500C4
+_0801CC90: .4byte gUnknown_2023E82
+_0801CC94: .4byte gUnknown_2023D74
+_0801CC98: .4byte gUnknown_81D95C5
+_0801CC9C:
+ ldr r4, _0801CD60 @ =gUnknown_2023BE4
+ movs r0, 0x58
+ adds r5, r7, 0
+ muls r5, r0
+ adds r0, r4, 0
+ adds r0, 0x4C
+ adds r6, r5, r0
+ ldr r2, [r6]
+ ldrb r0, [r6]
+ cmp r0, 0
+ bne _0801CCC4
+ adds r0, r4, 0
+ adds r0, 0x50
+ adds r0, r5, r0
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801CCC4
+ b _0801CDF0
+_0801CCC4:
+ movs r0, 0x88
+ ands r2, r0
+ cmp r2, 0
+ beq _0801CCD4
+ ldr r0, _0801CD64 @ =gUnknown_2022AB8
+ ldr r1, _0801CD68 @ =gUnknown_8250094
+ bl sub_8008D84
+_0801CCD4:
+ ldr r0, [r6]
+ movs r2, 0x7
+ mov r8, r2
+ ands r0, r2
+ adds r4, 0x50
+ cmp r0, 0
+ beq _0801CCF4
+ adds r2, r5, r4
+ ldr r0, [r2]
+ ldr r1, _0801CD6C @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r0, _0801CD64 @ =gUnknown_2022AB8
+ ldr r1, _0801CD70 @ =gUnknown_825009C
+ bl sub_8008D84
+_0801CCF4:
+ ldr r0, [r6]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0801CD06
+ ldr r0, _0801CD64 @ =gUnknown_2022AB8
+ ldr r1, _0801CD74 @ =gUnknown_82500A4
+ bl sub_8008D84
+_0801CD06:
+ ldr r0, [r6]
+ movs r1, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0801CD18
+ ldr r0, _0801CD64 @ =gUnknown_2022AB8
+ ldr r1, _0801CD78 @ =gUnknown_82500AC
+ bl sub_8008D84
+_0801CD18:
+ ldr r0, [r6]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0801CD2A
+ ldr r0, _0801CD64 @ =gUnknown_2022AB8
+ ldr r1, _0801CD7C @ =gUnknown_82500B4
+ bl sub_8008D84
+_0801CD2A:
+ adds r5, r4
+ ldr r0, [r5]
+ mov r3, r8
+ ands r0, r3
+ cmp r0, 0
+ beq _0801CD3E
+ ldr r0, _0801CD64 @ =gUnknown_2022AB8
+ ldr r1, _0801CD80 @ =gUnknown_82500BC
+ bl sub_8008D84
+_0801CD3E:
+ movs r4, 0
+ str r4, [r6]
+ ldr r0, [r5]
+ movs r1, 0x8
+ negs r1, r1
+ ands r0, r1
+ str r0, [r5]
+ bl sub_8017544
+ ldr r0, _0801CD84 @ =gUnknown_2023E82
+ strb r4, [r0, 0x5]
+ ldr r1, _0801CD88 @ =gUnknown_2023D74
+ ldr r0, _0801CD8C @ =gUnknown_81D95C5
+_0801CD58:
+ str r0, [r1]
+ movs r5, 0x1
+ str r5, [sp, 0xC]
+ b _0801CDF6
+ .align 2, 0
+_0801CD60: .4byte gUnknown_2023BE4
+_0801CD64: .4byte gUnknown_2022AB8
+_0801CD68: .4byte gUnknown_8250094
+_0801CD6C: .4byte 0xf7ffffff
+_0801CD70: .4byte gUnknown_825009C
+_0801CD74: .4byte gUnknown_82500A4
+_0801CD78: .4byte gUnknown_82500AC
+_0801CD7C: .4byte gUnknown_82500B4
+_0801CD80: .4byte gUnknown_82500BC
+_0801CD84: .4byte gUnknown_2023E82
+_0801CD88: .4byte gUnknown_2023D74
+_0801CD8C: .4byte gUnknown_81D95C5
+_0801CD90:
+ ldr r0, _0801CDDC @ =gUnknown_2023BE4
+ mov r8, r0
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x18
+ adds r1, r0
+ movs r2, 0x6
+ movs r3, 0x7
+ mov r10, r3
+_0801CDA6:
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x5
+ bgt _0801CDB4
+ strb r2, [r1]
+ movs r5, 0x5
+ str r5, [sp, 0xC]
+_0801CDB4:
+ adds r1, 0x1
+ movs r0, 0x1
+ negs r0, r0
+ add r10, r0
+ mov r3, r10
+ cmp r3, 0
+ bge _0801CDA6
+ ldr r5, [sp, 0xC]
+ cmp r5, 0
+ beq _0801CE34
+ ldr r0, _0801CDE0 @ =gUnknown_2023FC4
+ strb r7, [r0, 0x17]
+ ldr r0, _0801CDE4 @ =gUnknown_2023D6F
+ strb r7, [r0]
+ bl sub_8017544
+ ldr r1, _0801CDE8 @ =gUnknown_2023D74
+ ldr r0, _0801CDEC @ =gUnknown_81D95DF
+ str r0, [r1]
+ b _0801CFA6
+ .align 2, 0
+_0801CDDC: .4byte gUnknown_2023BE4
+_0801CDE0: .4byte gUnknown_2023FC4
+_0801CDE4: .4byte gUnknown_2023D6F
+_0801CDE8: .4byte gUnknown_2023D74
+_0801CDEC: .4byte gUnknown_81D95DF
+_0801CDF0:
+ ldr r0, [sp, 0xC]
+ cmp r0, 0
+ beq _0801CE34
+_0801CDF6:
+ ldr r0, _0801CE24 @ =gUnknown_2023FC4
+ strb r7, [r0, 0x17]
+ ldr r0, _0801CE28 @ =gUnknown_2023D6F
+ strb r7, [r0]
+ ldr r4, _0801CE2C @ =gUnknown_2023BC4
+ strb r7, [r4]
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+_0801CE08:
+ ldr r1, _0801CE30 @ =gUnknown_2023C30
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl sub_800DFF0
+ ldrb r0, [r4]
+ bl sub_8017248
+ b _0801CFA6
+ .align 2, 0
+_0801CE24: .4byte gUnknown_2023FC4
+_0801CE28: .4byte gUnknown_2023D6F
+_0801CE2C: .4byte gUnknown_2023BC4
+_0801CE30: .4byte gUnknown_2023C30
+_0801CE34:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _0801CE48 @ =gUnknown_2023BCC
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcs _0801CE44
+ b _0801CA08
+_0801CE44:
+ b _0801CFA6
+ .align 2, 0
+_0801CE48: .4byte gUnknown_2023BCC
+_0801CE4C:
+ ldr r7, _0801CE64 @ =gUnknown_2023D50
+ ldr r0, [r7]
+ cmp r0, 0
+ bne _0801CE56
+ b _0801CFA6
+_0801CE56:
+ mov r1, r8
+ cmp r1, 0x1E
+ beq _0801CE68
+ cmp r1, 0x3E
+ beq _0801CF10
+ b _0801CFA6
+ .align 2, 0
+_0801CE64: .4byte gUnknown_2023D50
+_0801CE68:
+ ldr r0, _0801CEF4 @ =gUnknown_2023DCC
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _0801CE76
+ b _0801CFA6
+_0801CE76:
+ ldr r2, _0801CEF8 @ =gUnknown_2023ECC
+ ldr r4, _0801CEFC @ =gUnknown_2023D6C
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r1, r0, 2
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801CE9C
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801CE9C
+ b _0801CFA6
+_0801CE9C:
+ bl sub_8044EC8
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r9
+ bcs _0801CFA6
+ ldr r2, _0801CF00 @ =gUnknown_8250C04
+ ldr r0, _0801CF04 @ =gUnknown_2023D4A
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0801CFA6
+ ldr r2, _0801CF08 @ =gUnknown_2023BE4
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801CFA6
+ ldr r1, _0801CF0C @ =gUnknown_2023E82
+ movs r0, 0x8
+ strb r0, [r1, 0x3]
+ bl sub_8017544
+ movs r0, 0
+ movs r1, 0
+ bl sub_801FF20
+ bl sub_801756C
+ b _0801CFA6
+ .align 2, 0
+_0801CEF4: .4byte gUnknown_2023DCC
+_0801CEF8: .4byte gUnknown_2023ECC
+_0801CEFC: .4byte gUnknown_2023D6C
+_0801CF00: .4byte gUnknown_8250C04
+_0801CF04: .4byte gUnknown_2023D4A
+_0801CF08: .4byte gUnknown_2023BE4
+_0801CF0C: .4byte gUnknown_2023E82
+_0801CF10:
+ ldr r0, _0801CFB8 @ =gUnknown_2023DCC
+ ldrb r0, [r0]
+ movs r5, 0x29
+ ands r5, r0
+ cmp r5, 0
+ bne _0801CFA6
+ ldr r1, _0801CFBC @ =gUnknown_2023ECC
+ ldr r4, _0801CFC0 @ =gUnknown_2023D6C
+ ldrb r2, [r4]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 2
+ adds r6, r1, 0x4
+ adds r0, r6
+ ldr r1, [r0]
+ cmp r1, 0
+ beq _0801CFA6
+ ldr r0, _0801CFC4 @ =0x0000ffff
+ cmp r1, r0
+ beq _0801CFA6
+ ldr r0, _0801CFC8 @ =gUnknown_2023D6B
+ ldrb r3, [r0]
+ cmp r3, r2
+ beq _0801CFA6
+ ldr r2, _0801CFCC @ =gUnknown_2023BE4
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r1, [r0, 0x28]
+ ldrh r0, [r0, 0x2C]
+ cmp r1, r0
+ beq _0801CFA6
+ cmp r1, 0
+ beq _0801CFA6
+ ldr r0, _0801CFD0 @ =gUnknown_2023D68
+ mov r2, sp
+ ldrh r2, [r2, 0x14]
+ strh r2, [r0]
+ ldr r0, _0801CFD4 @ =gUnknown_2023D6F
+ strb r3, [r0]
+ ldr r0, _0801CFD8 @ =gUnknown_2023FC4
+ strb r3, [r0, 0x17]
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ldr r1, [sp, 0x10]
+ bl __divsi3
+ negs r0, r0
+ str r0, [r7]
+ ldrb r1, [r4]
+ cmp r0, 0
+ bne _0801CF88
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [r7]
+_0801CF88:
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ str r5, [r0]
+ bl sub_8017544
+ ldr r1, _0801CFDC @ =gUnknown_2023D74
+ ldr r0, _0801CFE0 @ =gUnknown_81D9622
+ str r0, [r1]
+ ldr r0, [sp, 0xC]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0xC]
+_0801CFA6:
+ ldr r0, [sp, 0xC]
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801CFB8: .4byte gUnknown_2023DCC
+_0801CFBC: .4byte gUnknown_2023ECC
+_0801CFC0: .4byte gUnknown_2023D6C
+_0801CFC4: .4byte 0x0000ffff
+_0801CFC8: .4byte gUnknown_2023D6B
+_0801CFCC: .4byte gUnknown_2023BE4
+_0801CFD0: .4byte gUnknown_2023D68
+_0801CFD4: .4byte gUnknown_2023D6F
+_0801CFD8: .4byte gUnknown_2023FC4
+_0801CFDC: .4byte gUnknown_2023D74
+_0801CFE0: .4byte gUnknown_81D9622
+ thumb_func_end sub_801BC68
+
+ thumb_func_start sub_801CFE4
+sub_801CFE4: @ 801CFE4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0801D01C @ =gUnknown_2023E0C
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r2, 0
+ strb r2, [r1, 0x10]
+ ldr r1, _0801D020 @ =gUnknown_2023BE4
+ movs r2, 0x58
+ adds r3, r0, 0
+ muls r3, r2
+ adds r1, 0x50
+ adds r3, r1
+ ldr r1, [r3]
+ ldr r2, _0801D024 @ =0xfdffffff
+ ands r1, r2
+ str r1, [r3]
+ ldr r1, _0801D028 @ =gUnknown_2023DFC
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r2, _0801D02C @ =0xffffbfff
+ ands r1, r2
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_0801D01C: .4byte gUnknown_2023E0C
+_0801D020: .4byte gUnknown_2023BE4
+_0801D024: .4byte 0xfdffffff
+_0801D028: .4byte gUnknown_2023DFC
+_0801D02C: .4byte 0xffffbfff
+ thumb_func_end sub_801CFE4
+
+ thumb_func_start sub_801D030
+sub_801D030: @ 801D030
+ push {lr}
+ ldr r0, _0801D050 @ =gUnknown_2023BC8
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801D04C
+ ldr r1, _0801D054 @ =gUnknown_825011C
+ ldr r0, _0801D058 @ =gUnknown_2023D74
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+_0801D04C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801D050: .4byte gUnknown_2023BC8
+_0801D054: .4byte gUnknown_825011C
+_0801D058: .4byte gUnknown_2023D74
+ thumb_func_end sub_801D030
+
+ thumb_func_start sub_801D05C
+sub_801D05C: @ 801D05C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r7, r0, 16
+ lsls r1, 24
+ lsrs r0, r1, 24
+ movs r5, 0
+ cmp r0, 0
+ beq _0801D07A
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ b _0801D086
+_0801D07A:
+ ldr r1, _0801D098 @ =gUnknown_8250C04
+ lsls r0, r7, 1
+ adds r0, r7
+ lsls r0, 2
+ adds r0, r1
+ ldrb r6, [r0, 0x6]
+_0801D086:
+ cmp r6, 0x40
+ bls _0801D08C
+ b _0801D39C
+_0801D08C:
+ lsls r0, r6, 2
+ ldr r1, _0801D09C @ =_0801D0A0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801D098: .4byte gUnknown_8250C04
+_0801D09C: .4byte _0801D0A0
+ .align 2, 0
+_0801D0A0:
+ .4byte _0801D1A4
+ .4byte _0801D2A4
+ .4byte _0801D398
+ .4byte _0801D39C
+ .4byte _0801D2BC
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D2A4
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D398
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D2A4
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D39C
+ .4byte _0801D2A4
+_0801D1A4:
+ ldr r0, _0801D284 @ =gUnknown_2023D6B
+ ldrb r0, [r0]
+ bl sub_80751C4
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _0801D288 @ =gUnknown_2023DE4
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r2, r0, r1
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ beq _0801D1D6
+ ldr r1, _0801D28C @ =gUnknown_2023BE4
+ ldrb r4, [r2, 0x9]
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801D1D6
+ b _0801D2EC
+_0801D1D6:
+ ldr r0, _0801D284 @ =gUnknown_2023D6B
+ ldrb r0, [r0]
+ bl sub_80751C4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r7, 1
+ mov r8, r0
+_0801D1E6:
+ bl sub_8044EC8
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0801D290 @ =gUnknown_2023BCC
+ ldrb r1, [r1]
+ bl __modsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r6, _0801D284 @ =gUnknown_2023D6B
+ ldrb r3, [r6]
+ cmp r5, r3
+ beq _0801D1E6
+ adds r0, r5, 0
+ bl sub_80751C4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ beq _0801D1E6
+ ldr r0, _0801D294 @ =gUnknown_2023D70
+ ldrb r2, [r0]
+ ldr r1, _0801D298 @ =gUnknown_825E45C
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ands r2, r0
+ cmp r2, 0
+ bne _0801D1E6
+ ldr r0, _0801D29C @ =gUnknown_8250C04
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0xD
+ beq _0801D234
+ b _0801D39C
+_0801D234:
+ ldrb r1, [r6]
+ str r2, [sp]
+ movs r0, 0x10
+ movs r2, 0x1F
+ movs r3, 0
+ bl sub_8019F18
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801D24A
+ b _0801D39C
+_0801D24A:
+ ldr r2, _0801D28C @ =gUnknown_2023BE4
+ movs r1, 0x58
+ adds r0, r5, 0
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x1F
+ bne _0801D25E
+ b _0801D39C
+_0801D25E:
+ movs r4, 0x2
+ eors r5, r4
+ adds r0, r5, 0
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_80C71D0
+ ldr r1, _0801D2A0 @ =gUnknown_2023ECC
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ orrs r1, r4
+ strb r1, [r0]
+ b _0801D39C
+ .align 2, 0
+_0801D284: .4byte gUnknown_2023D6B
+_0801D288: .4byte gUnknown_2023DE4
+_0801D28C: .4byte gUnknown_2023BE4
+_0801D290: .4byte gUnknown_2023BCC
+_0801D294: .4byte gUnknown_2023D70
+_0801D298: .4byte gUnknown_825E45C
+_0801D29C: .4byte gUnknown_8250C04
+_0801D2A0: .4byte gUnknown_2023ECC
+_0801D2A4:
+ ldr r0, _0801D2B8 @ =gUnknown_2023D6B
+ ldrb r0, [r0]
+ bl sub_80751D8
+ adds r1, r0, 0
+ movs r2, 0x1
+ movs r0, 0x1
+ ands r0, r1
+ eors r0, r2
+ b _0801D34E
+ .align 2, 0
+_0801D2B8: .4byte gUnknown_2023D6B
+_0801D2BC:
+ ldr r0, _0801D2F0 @ =gUnknown_2023D6B
+ ldrb r0, [r0]
+ bl sub_80751C4
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _0801D2F4 @ =gUnknown_2023DE4
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r2, r0, r1
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ beq _0801D2FC
+ ldr r1, _0801D2F8 @ =gUnknown_2023BE4
+ ldrb r4, [r2, 0x9]
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801D2FC
+_0801D2EC:
+ adds r5, r4, 0
+ b _0801D39C
+ .align 2, 0
+_0801D2F0: .4byte gUnknown_2023D6B
+_0801D2F4: .4byte gUnknown_2023DE4
+_0801D2F8: .4byte gUnknown_2023BE4
+_0801D2FC:
+ ldr r0, _0801D330 @ =gUnknown_2022B4C
+ ldr r0, [r0]
+ movs r4, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _0801D378
+ movs r0, 0x4
+ ands r6, r0
+ cmp r6, 0
+ beq _0801D378
+ ldr r0, _0801D334 @ =gUnknown_2023D6B
+ ldrb r0, [r0]
+ bl sub_80751C4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801D33C
+ bl sub_8044EC8
+ adds r1, r4, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _0801D338
+ movs r0, 0x1
+ b _0801D34E
+ .align 2, 0
+_0801D330: .4byte gUnknown_2022B4C
+_0801D334: .4byte gUnknown_2023D6B
+_0801D338:
+ movs r0, 0x3
+ b _0801D34E
+_0801D33C:
+ bl sub_8044EC8
+ adds r1, r4, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _0801D34C
+ movs r0, 0
+ b _0801D34E
+_0801D34C:
+ movs r0, 0x2
+_0801D34E:
+ bl sub_80751E8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0801D370 @ =gUnknown_2023D70
+ ldrb r1, [r0]
+ ldr r2, _0801D374 @ =gUnknown_825E45C
+ lsls r0, r5, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0801D39C
+ movs r0, 0x2
+ eors r5, r0
+ b _0801D39C
+ .align 2, 0
+_0801D370: .4byte gUnknown_2023D70
+_0801D374: .4byte gUnknown_825E45C
+_0801D378:
+ ldr r0, _0801D394 @ =gUnknown_2023D6B
+ ldrb r0, [r0]
+ bl sub_80751D8
+ adds r1, r0, 0
+ movs r2, 0x1
+ movs r0, 0x1
+ ands r0, r1
+ eors r0, r2
+ bl sub_80751E8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ b _0801D39C
+ .align 2, 0
+_0801D394: .4byte gUnknown_2023D6B
+_0801D398:
+ ldr r0, _0801D3B8 @ =gUnknown_2023D6B
+ ldrb r5, [r0]
+_0801D39C:
+ ldr r0, _0801D3B8 @ =gUnknown_2023D6B
+ ldrb r0, [r0]
+ ldr r1, _0801D3BC @ =gUnknown_2023FE8
+ ldr r1, [r1]
+ adds r0, r1
+ strb r5, [r0, 0xC]
+ adds r0, r5, 0
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801D3B8: .4byte gUnknown_2023D6B
+_0801D3BC: .4byte gUnknown_2023FE8
+ thumb_func_end sub_801D05C
+
+ thumb_func_start sub_801D3C0
+sub_801D3C0: @ 801D3C0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80751C4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0801D406
+ ldr r0, _0801D40C @ =gUnknown_2023BCE
+ lsls r4, 1
+ adds r5, r4, r0
+ ldrh r0, [r5]
+ movs r7, 0x64
+ muls r0, r7
+ ldr r6, _0801D410 @ =gUnknown_2024284
+ adds r0, r6
+ movs r1, 0xB
+ movs r2, 0
+ bl sub_803FBE8
+ movs r1, 0xCD
+ lsls r1, 1
+ cmp r0, r1
+ beq _0801D414
+ ldrh r0, [r5]
+ muls r0, r7
+ adds r0, r6
+ movs r1, 0xB
+ movs r2, 0
+ bl sub_803FBE8
+ cmp r0, 0x97
+ beq _0801D414
+_0801D406:
+ movs r0, 0x1
+ b _0801D42A
+ .align 2, 0
+_0801D40C: .4byte gUnknown_2023BCE
+_0801D410: .4byte gUnknown_2024284
+_0801D414:
+ ldr r0, _0801D430 @ =gUnknown_2023BCE
+ adds r0, r4, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0801D434 @ =gUnknown_2024284
+ adds r0, r1
+ movs r1, 0x50
+ movs r2, 0
+ bl sub_803FBE8
+_0801D42A:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801D430: .4byte gUnknown_2023BCE
+_0801D434: .4byte gUnknown_2024284
+ thumb_func_end sub_801D3C0
+
+ thumb_func_start sub_801D438
+sub_801D438: @ 801D438
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ movs r6, 0
+ ldr r0, _0801D4F8 @ =gUnknown_2022B4C
+ ldr r0, [r0]
+ ldr r1, _0801D4FC @ =0x00010002
+ ands r0, r1
+ cmp r0, 0
+ bne _0801D4F4
+ ldr r4, _0801D500 @ =gUnknown_2023D6B
+ ldrb r0, [r4]
+ bl sub_80751C4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0801D4F4
+ ldrb r0, [r4]
+ bl sub_801D3C0
+ cmp r0, 0
+ beq _0801D4BE
+ ldr r2, _0801D504 @ =gUnknown_2023BE4
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r1, r0
+ adds r0, r2, 0
+ adds r0, 0x54
+ adds r0, r1, r0
+ ldr r0, [r0]
+ adds r2, 0x3C
+ adds r1, r2
+ bl sub_8044288
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801D4F4
+ ldr r0, _0801D508 @ =0x00000827
+ bl sub_806E6D0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801D4F4
+ movs r6, 0xA
+ ldr r0, _0801D50C @ =0x00000821
+ bl sub_806E6D0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801D4A2
+ movs r6, 0x1E
+_0801D4A2:
+ ldr r0, _0801D510 @ =0x00000823
+ bl sub_806E6D0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801D4B0
+ movs r6, 0x32
+_0801D4B0:
+ ldr r0, _0801D514 @ =0x00000825
+ bl sub_806E6D0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801D4BE
+ movs r6, 0x46
+_0801D4BE:
+ ldr r5, _0801D504 @ =gUnknown_2023BE4
+ ldr r0, _0801D500 @ =gUnknown_2023D6B
+ mov r8, r0
+ ldrb r0, [r0]
+ movs r7, 0x58
+ muls r0, r7
+ adds r0, r5
+ adds r0, 0x2A
+ ldrb r0, [r0]
+ cmp r0, r6
+ bls _0801D4F4
+ bl sub_8044EC8
+ movs r1, 0xFF
+ ands r1, r0
+ mov r2, r8
+ ldrb r0, [r2]
+ adds r2, r0, 0
+ muls r2, r7
+ adds r0, r2, r5
+ adds r0, 0x2A
+ ldrb r0, [r0]
+ adds r0, r6
+ muls r0, r1
+ asrs r4, r0, 8
+ cmp r4, r6
+ bge _0801D518
+_0801D4F4:
+ movs r0, 0
+ b _0801D738
+ .align 2, 0
+_0801D4F8: .4byte gUnknown_2022B4C
+_0801D4FC: .4byte 0x00010002
+_0801D500: .4byte gUnknown_2023D6B
+_0801D504: .4byte gUnknown_2023BE4
+_0801D508: .4byte 0x00000827
+_0801D50C: .4byte 0x00000821
+_0801D510: .4byte 0x00000823
+_0801D514: .4byte 0x00000825
+_0801D518:
+ ldr r3, _0801D554 @ =gUnknown_2023D4A
+ ldrh r0, [r3]
+ cmp r0, 0x63
+ bne _0801D52E
+ adds r0, r5, 0
+ adds r0, 0x50
+ adds r0, r2, r0
+ ldr r1, [r0]
+ ldr r2, _0801D558 @ =0xff7fffff
+ ands r1, r2
+ str r1, [r0]
+_0801D52E:
+ mov r1, r8
+ ldrb r0, [r1]
+ muls r0, r7
+ adds r1, r5, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _0801D564
+ ldrh r0, [r3]
+ cmp r0, 0xAD
+ beq _0801D54E
+ cmp r0, 0xD6
+ bne _0801D564
+_0801D54E:
+ ldr r1, _0801D55C @ =gUnknown_2023D74
+ ldr r0, _0801D560 @ =gUnknown_81D94DA
+ b _0801D6E2
+ .align 2, 0
+_0801D554: .4byte gUnknown_2023D4A
+_0801D558: .4byte 0xff7fffff
+_0801D55C: .4byte gUnknown_2023D74
+_0801D560: .4byte gUnknown_81D94DA
+_0801D564:
+ bl sub_8044EC8
+ movs r1, 0xFF
+ ands r1, r0
+ ldr r2, _0801D608 @ =gUnknown_2023BE4
+ ldr r0, _0801D60C @ =gUnknown_2023D6B
+ ldrb r3, [r0]
+ movs r0, 0x58
+ muls r0, r3
+ adds r0, r2
+ adds r0, 0x2A
+ ldrb r0, [r0]
+ adds r0, r6
+ muls r0, r1
+ asrs r4, r0, 8
+ cmp r4, r6
+ bge _0801D634
+ ldr r0, _0801D610 @ =gUnknown_2023D4A
+ ldrh r1, [r0]
+ movs r0, 0x84
+ lsls r0, 1
+ cmp r1, r0
+ beq _0801D634
+ ldr r6, _0801D614 @ =gUnknown_825E45C
+ ldr r5, _0801D618 @ =gUnknown_2023D48
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0]
+ adds r0, r3, 0
+ movs r2, 0xFF
+ bl sub_801779C
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xF
+ bne _0801D5B0
+ b _0801D6D2
+_0801D5B0:
+ ldr r2, _0801D61C @ =gUnknown_2023D49
+ mov r8, r2
+ movs r7, 0x3
+_0801D5B6:
+ bl sub_8044EC8
+ ands r0, r7
+ mov r1, r8
+ strb r0, [r1]
+ strb r0, [r5]
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ands r0, r4
+ cmp r0, 0
+ bne _0801D5B6
+ ldr r4, _0801D620 @ =gUnknown_2023D4E
+ ldr r3, _0801D608 @ =gUnknown_2023BE4
+ ldr r0, _0801D618 @ =gUnknown_2023D48
+ ldrb r0, [r0]
+ lsls r0, 1
+ ldr r1, _0801D60C @ =gUnknown_2023D6B
+ ldrb r2, [r1]
+ movs r1, 0x58
+ muls r1, r2
+ adds r0, r1
+ adds r3, 0xC
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r4]
+ ldr r1, _0801D624 @ =gUnknown_2023D74
+ ldr r0, _0801D628 @ =gUnknown_81D94EA
+ str r0, [r1]
+ ldrh r0, [r4]
+ movs r1, 0
+ bl sub_801D05C
+ ldr r1, _0801D62C @ =gUnknown_2023D6C
+ strb r0, [r1]
+ ldr r2, _0801D630 @ =gUnknown_2023DD0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 14
+ b _0801D732
+ .align 2, 0
+_0801D608: .4byte gUnknown_2023BE4
+_0801D60C: .4byte gUnknown_2023D6B
+_0801D610: .4byte gUnknown_2023D4A
+_0801D614: .4byte gUnknown_825E45C
+_0801D618: .4byte gUnknown_2023D48
+_0801D61C: .4byte gUnknown_2023D49
+_0801D620: .4byte gUnknown_2023D4E
+_0801D624: .4byte gUnknown_2023D74
+_0801D628: .4byte gUnknown_81D94EA
+_0801D62C: .4byte gUnknown_2023D6C
+_0801D630: .4byte gUnknown_2023DD0
+_0801D634:
+ ldr r5, _0801D6B8 @ =gUnknown_2023BE4
+ ldr r2, _0801D6BC @ =gUnknown_2023D6B
+ mov r8, r2
+ ldrb r0, [r2]
+ movs r7, 0x58
+ muls r0, r7
+ adds r0, r5
+ adds r0, 0x2A
+ ldrb r0, [r0]
+ subs r0, r6
+ lsls r0, 24
+ lsrs r6, r0, 24
+ bl sub_8044EC8
+ movs r2, 0xFF
+ adds r4, r2, 0
+ ands r4, r0
+ cmp r4, r6
+ bge _0801D6CC
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r1, r0, 0
+ muls r1, r7
+ adds r0, r5, 0
+ adds r0, 0x4C
+ adds r0, r1, r0
+ ldr r0, [r0]
+ ands r0, r2
+ cmp r0, 0
+ bne _0801D6CC
+ adds r0, r1, r5
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x48
+ beq _0801D6CC
+ cmp r0, 0xF
+ beq _0801D6CC
+ movs r2, 0
+ ldr r0, _0801D6C0 @ =gUnknown_2023BCC
+ ldrb r3, [r0]
+ adds r7, r0, 0
+ cmp r2, r3
+ bge _0801D6AA
+ ldr r0, [r5, 0x50]
+ movs r1, 0x70
+ ands r0, r1
+ cmp r0, 0
+ bne _0801D6AA
+ adds r1, r5, 0
+ adds r1, 0x50
+ movs r5, 0x70
+_0801D69A:
+ adds r1, 0x58
+ adds r2, 0x1
+ cmp r2, r3
+ bge _0801D6AA
+ ldr r0, [r1]
+ ands r0, r5
+ cmp r0, 0
+ beq _0801D69A
+_0801D6AA:
+ ldrb r7, [r7]
+ cmp r2, r7
+ bne _0801D6CC
+ ldr r1, _0801D6C4 @ =gUnknown_2023D74
+ ldr r0, _0801D6C8 @ =gUnknown_81D9504
+ b _0801D6E2
+ .align 2, 0
+_0801D6B8: .4byte gUnknown_2023BE4
+_0801D6BC: .4byte gUnknown_2023D6B
+_0801D6C0: .4byte gUnknown_2023BCC
+_0801D6C4: .4byte gUnknown_2023D74
+_0801D6C8: .4byte gUnknown_81D9504
+_0801D6CC:
+ subs r4, r6
+ cmp r4, r6
+ blt _0801D6F4
+_0801D6D2:
+ bl sub_8044EC8
+ ldr r2, _0801D6E8 @ =gUnknown_2023E82
+ movs r1, 0x3
+ ands r1, r0
+ strb r1, [r2, 0x5]
+ ldr r1, _0801D6EC @ =gUnknown_2023D74
+ ldr r0, _0801D6F0 @ =gUnknown_81D94F2
+_0801D6E2:
+ str r0, [r1]
+ movs r0, 0x1
+ b _0801D738
+ .align 2, 0
+_0801D6E8: .4byte gUnknown_2023E82
+_0801D6EC: .4byte gUnknown_2023D74
+_0801D6F0: .4byte gUnknown_81D94F2
+_0801D6F4:
+ ldr r4, _0801D744 @ =gUnknown_2023D6B
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r1, r0
+ ldr r0, _0801D748 @ =gUnknown_2023BE4
+ adds r1, r0
+ movs r0, 0x28
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ ldrb r0, [r4]
+ str r0, [sp, 0x8]
+ ldrb r0, [r4]
+ str r0, [sp, 0xC]
+ adds r0, r1, 0
+ movs r2, 0x1
+ movs r3, 0
+ bl sub_803ECEC
+ ldr r1, _0801D74C @ =gUnknown_2023D50
+ str r0, [r1]
+ ldr r1, _0801D750 @ =gUnknown_2023D6C
+ ldrb r0, [r4]
+ strb r0, [r1]
+ ldr r1, _0801D754 @ =gUnknown_2023D74
+ ldr r0, _0801D758 @ =gUnknown_81D951B
+ str r0, [r1]
+ ldr r2, _0801D75C @ =gUnknown_2023DD0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+_0801D732:
+ orrs r0, r1
+ str r0, [r2]
+ movs r0, 0x2
+_0801D738:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801D744: .4byte gUnknown_2023D6B
+_0801D748: .4byte gUnknown_2023BE4
+_0801D74C: .4byte gUnknown_2023D50
+_0801D750: .4byte gUnknown_2023D6C
+_0801D754: .4byte gUnknown_2023D74
+_0801D758: .4byte gUnknown_81D951B
+_0801D75C: .4byte gUnknown_2023DD0
+ thumb_func_end sub_801D438
+
+ .align 2, 0 @ Don't pad with nop.