summaryrefslogtreecommitdiff
path: root/asm/field_control_avatar.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/field_control_avatar.s
first commit
Diffstat (limited to 'asm/field_control_avatar.s')
-rw-r--r--asm/field_control_avatar.s3144
1 files changed, 3144 insertions, 0 deletions
diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s
new file mode 100644
index 000000000..a544e5473
--- /dev/null
+++ b/asm/field_control_avatar.s
@@ -0,0 +1,3144 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_806C888
+sub_806C888: @ 806C888
+ push {r4-r6,lr}
+ movs r1, 0x2
+ negs r1, r1
+ movs r3, 0x3
+ negs r3, r3
+ movs r4, 0x5
+ negs r4, r4
+ movs r5, 0x9
+ negs r5, r5
+ movs r6, 0x11
+ negs r6, r6
+ movs r2, 0
+ strb r2, [r0]
+ ldrb r2, [r0, 0x1]
+ ands r1, r2
+ ands r1, r3
+ ands r1, r4
+ ands r1, r5
+ ands r1, r6
+ strb r1, [r0, 0x1]
+ movs r1, 0
+ strb r1, [r0, 0x2]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806C888
+
+ thumb_func_start sub_806C8BC
+sub_806C8BC: @ 806C8BC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ mov r0, sp
+ strh r1, [r0]
+ mov r4, sp
+ adds r4, 0x2
+ strh r2, [r4]
+ ldr r0, _0806CA14 @ =gUnknown_2037078
+ ldrb r1, [r0, 0x2]
+ mov r8, r1
+ ldrb r6, [r0, 0x3]
+ bl sub_806CE74
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8059D70
+ lsls r0, 24
+ lsrs r7, r0, 24
+ bl sub_8069A64
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806C908
+ bl sub_806997C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806C908
+ adds r0, r5, 0
+ mov r1, sp
+ adds r2, r4, 0
+ bl sub_806CA4C
+_0806C908:
+ cmp r6, 0x2
+ bne _0806C910
+ cmp r7, 0
+ beq _0806C914
+_0806C910:
+ cmp r6, 0
+ bne _0806C9D0
+_0806C914:
+ bl sub_80BD674
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ beq _0806C9AC
+ mov r0, sp
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0806C940
+ ldr r0, _0806CA14 @ =gUnknown_2037078
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0806C940
+ ldrb r0, [r5]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r5]
+_0806C940:
+ ldr r0, _0806CA18 @ =gUnknown_203ADFA
+ ldrb r0, [r0]
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _0806C9D0
+ ldr r0, _0806CA14 @ =gUnknown_2037078
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0806C9AC
+ mov r0, sp
+ ldrh r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0806C96E
+ ldrb r0, [r5]
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r5]
+_0806C96E:
+ mov r0, sp
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0806C982
+ ldrb r0, [r5]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r5]
+_0806C982:
+ mov r0, sp
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0806C996
+ ldrb r0, [r5]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r5]
+_0806C996:
+ mov r0, sp
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _0806C9AC
+ ldrb r0, [r5, 0x1]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r5, 0x1]
+_0806C9AC:
+ ldr r0, _0806CA18 @ =gUnknown_203ADFA
+ ldrb r0, [r0]
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _0806C9D0
+ ldrh r1, [r4]
+ movs r0, 0xF0
+ ands r0, r1
+ cmp r0, 0
+ beq _0806C9D0
+ ldrb r0, [r5]
+ movs r1, 0x10
+ orrs r0, r1
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r5]
+_0806C9D0:
+ cmp r7, 0
+ bne _0806C9F6
+ cmp r6, 0x2
+ bne _0806C9E6
+ mov r0, r8
+ cmp r0, 0x2
+ bne _0806C9E6
+ ldrb r0, [r5]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r5]
+_0806C9E6:
+ cmp r7, 0
+ bne _0806C9F6
+ cmp r6, 0x2
+ bne _0806C9F6
+ ldrb r0, [r5]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r5]
+_0806C9F6:
+ ldr r0, _0806CA18 @ =gUnknown_203ADFA
+ ldrb r0, [r0]
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _0806CA40
+ ldrh r1, [r4]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0806CA1C
+ movs r0, 0x2
+ b _0806CA3E
+ .align 2, 0
+_0806CA14: .4byte gUnknown_2037078
+_0806CA18: .4byte gUnknown_203ADFA
+_0806CA1C:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0806CA28
+ movs r0, 0x1
+ b _0806CA3E
+_0806CA28:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0806CA34
+ movs r0, 0x3
+ b _0806CA3E
+_0806CA34:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0806CA40
+ movs r0, 0x4
+_0806CA3E:
+ strb r0, [r5, 0x2]
+_0806CA40:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806C8BC
+
+ thumb_func_start sub_806CA4C
+sub_806CA4C: @ 806CA4C
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ bl sub_80699B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x8
+ bhi _0806CABA
+ lsls r0, 2
+ ldr r1, _0806CA68 @ =_0806CA6C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806CA68: .4byte _0806CA6C
+ .align 2, 0
+_0806CA6C:
+ .4byte _0806CABA
+ .4byte _0806CA90
+ .4byte _0806CA94
+ .4byte _0806CA98
+ .4byte _0806CA9C
+ .4byte _0806CAA0
+ .4byte _0806CAA8
+ .4byte _0806CAB0
+ .4byte _0806CAB4
+_0806CA90:
+ movs r0, 0x40
+ b _0806CAB6
+_0806CA94:
+ movs r0, 0x80
+ b _0806CAB6
+_0806CA98:
+ movs r0, 0x20
+ b _0806CAB6
+_0806CA9C:
+ movs r0, 0x10
+ b _0806CAB6
+_0806CAA0:
+ movs r1, 0x80
+ lsls r1, 2
+ adds r0, r1, 0
+ b _0806CAB6
+_0806CAA8:
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1, 0
+ b _0806CAB6
+_0806CAB0:
+ movs r0, 0x8
+ b _0806CAB6
+_0806CAB4:
+ movs r0, 0x4
+_0806CAB6:
+ strh r0, [r4]
+ strh r0, [r5]
+_0806CABA:
+ bl sub_8069970
+ bl sub_80699A4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806CA4C
+
+ thumb_func_start sub_806CAC8
+sub_806CAC8: @ 806CAC8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ adds r5, r0, 0
+ bl sub_8069A54
+ bl sub_805C6C4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r4, sp
+ mov r0, sp
+ bl sub_806CE20
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ movs r2, 0xFF
+ bl sub_8058F48
+ mov r8, r0
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl sub_8058F78
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r7, _0806CB70 @ =gUnknown_3005078
+ adds r0, r7, 0
+ bl sub_806C888
+ ldrb r0, [r5, 0x2]
+ strb r0, [r7, 0x2]
+ bl sub_8081B30
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806CB6C
+ bl sub_8069C74
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806CB6C
+ ldrb r1, [r5]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0806CB74
+ movs r0, 0x5
+ bl sub_8054E90
+ bl sub_8146CA4
+ bl sub_815D8C8
+ bl sub_80CC918
+ bl sub_80CB054
+ bl sub_80CCFBC
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl sub_806D5E8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806CB74
+ ldrb r0, [r7]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r7]
+_0806CB6C:
+ movs r0, 0x1
+ b _0806CD22
+ .align 2, 0
+_0806CB70: .4byte gUnknown_3005078
+_0806CB74:
+ ldrb r1, [r5]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0806CBFC
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0
+ beq _0806CB88
+ cmp r0, r6
+ bne _0806CBD8
+_0806CB88:
+ mov r7, sp
+ mov r0, sp
+ bl sub_806CE38
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0x2
+ ldrsh r1, [r7, r2]
+ bl sub_8058F78
+ lsls r0, 16
+ lsrs r4, r0, 16
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl sub_806D804
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806CBC0
+ ldr r0, _0806CBBC @ =gUnknown_3005078
+ ldrb r1, [r0]
+ movs r2, 0x2
+ b _0806CD16
+ .align 2, 0
+_0806CBBC: .4byte gUnknown_3005078
+_0806CBC0:
+ mov r0, sp
+ bl sub_806CE20
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0x2
+ ldrsh r1, [r7, r2]
+ bl sub_8058F78
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0806CBD8:
+ ldrb r1, [r5]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0806CBFC
+ mov r0, r8
+ bl sub_806D7F4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806CBFC
+ ldr r0, _0806CBF8 @ =gUnknown_3005078
+ ldrb r1, [r0]
+ movs r2, 0x2
+ b _0806CD16
+ .align 2, 0
+_0806CBF8: .4byte gUnknown_3005078
+_0806CBFC:
+ ldrb r1, [r5]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0806CC2C
+ ldrb r0, [r5, 0x2]
+ cmp r0, r6
+ bne _0806CC2C
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl sub_806D964
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806CC2C
+ ldr r0, _0806CC28 @ =gUnknown_3005078
+ ldrb r1, [r0]
+ movs r2, 0x10
+ b _0806CD16
+ .align 2, 0
+_0806CC28: .4byte gUnknown_3005078
+_0806CC2C:
+ mov r4, sp
+ mov r0, sp
+ bl sub_806CE38
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl sub_8058F78
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldrb r1, [r5]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0806CC74
+ ldrb r0, [r5, 0x2]
+ cmp r0, r6
+ bne _0806CC74
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl sub_806D804
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806CC74
+ ldr r0, _0806CC70 @ =gUnknown_3005078
+ ldrb r1, [r0]
+ movs r2, 0x10
+ b _0806CD16
+ .align 2, 0
+_0806CC70: .4byte gUnknown_3005078
+_0806CC74:
+ ldrb r1, [r5]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0806CC9C
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl sub_806CEA0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806CC9C
+ ldr r0, _0806CC98 @ =gUnknown_3005078
+ ldrb r1, [r0]
+ movs r2, 0x1
+ b _0806CD16
+ .align 2, 0
+_0806CC98: .4byte gUnknown_3005078
+_0806CC9C:
+ ldrb r1, [r5]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0806CCCC
+ ldrb r0, [r5, 0x2]
+ cmp r0, r6
+ bne _0806CCCC
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl sub_806DCD0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806CCCC
+ ldr r0, _0806CCC8 @ =gUnknown_3005078
+ ldrb r1, [r0]
+ movs r2, 0x20
+ b _0806CD16
+ .align 2, 0
+_0806CCC8: .4byte gUnknown_3005078
+_0806CCCC:
+ ldrb r1, [r5]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0806CCFC
+ ldr r2, _0806CCF4 @ =gUnknown_3005078
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0806CCF8 @ =0x0000083e
+ bl sub_806E680
+ movs r0, 0x6
+ bl sub_80722CC
+ bl sub_806F258
+ b _0806CB6C
+ .align 2, 0
+_0806CCF4: .4byte gUnknown_3005078
+_0806CCF8: .4byte 0x0000083e
+_0806CCFC:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0806CD20
+ bl sub_810AD10
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806CD20
+ ldr r0, _0806CD1C @ =gUnknown_3005078
+ ldrb r1, [r0]
+ movs r2, 0x8
+_0806CD16:
+ orrs r1, r2
+ strb r1, [r0]
+ b _0806CB6C
+ .align 2, 0
+_0806CD1C: .4byte gUnknown_3005078
+_0806CD20:
+ movs r0, 0
+_0806CD22:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806CAC8
+
+ thumb_func_start sub_806CD30
+sub_806CD30: @ 806CD30
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8069A64
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806CDEA
+ ldr r1, _0806CD50 @ =gUnknown_20370A0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0806CD54
+ subs r0, 0x1
+ strb r0, [r1]
+ b _0806CDEA
+ .align 2, 0
+_0806CD50: .4byte gUnknown_20370A0
+_0806CD54:
+ bl sub_8069A04
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806CDEA
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0
+ beq _0806CDC0
+ bl sub_805C6C4
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r4, 0x2]
+ cmp r0, r1
+ beq _0806CDC0
+ bl sub_80699D4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806CDEA
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x2
+ bne _0806CD8E
+ movs r0, 0x1
+ bl sub_8069998
+ b _0806CDB0
+_0806CD8E:
+ cmp r0, 0x1
+ bne _0806CD9A
+ movs r0, 0x2
+ bl sub_8069998
+ b _0806CDB0
+_0806CD9A:
+ cmp r0, 0x3
+ bne _0806CDA6
+ movs r0, 0x3
+ bl sub_8069998
+ b _0806CDB0
+_0806CDA6:
+ cmp r0, 0x4
+ bne _0806CDB0
+ movs r0, 0x4
+ bl sub_8069998
+_0806CDB0:
+ ldr r0, _0806CDBC @ =gUnknown_81A7ADB
+ bl sub_8069AE4
+ bl sub_8069940
+ b _0806CDEA
+ .align 2, 0
+_0806CDBC: .4byte gUnknown_81A7ADB
+_0806CDC0:
+ ldrb r1, [r4]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0806CDEA
+ ldr r0, _0806CDF0 @ =gUnknown_81A7ADB
+ bl sub_8069AE4
+ bl sub_8069940
+ ldr r4, _0806CDF4 @ =sub_806CDF8
+ adds r0, r4, 0
+ bl sub_8077650
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806CDEA
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl sub_807741C
+_0806CDEA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806CDF0: .4byte gUnknown_81A7ADB
+_0806CDF4: .4byte sub_806CDF8
+ thumb_func_end sub_806CD30
+
+ thumb_func_start sub_806CDF8
+sub_806CDF8: @ 806CDF8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8069958
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806CE18
+ movs r0, 0x6
+ bl sub_80722CC
+ bl sub_806F258
+ adds r0, r4, 0
+ bl sub_8077508
+_0806CE18:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806CDF8
+
+ thumb_func_start sub_806CE20
+sub_806CE20: @ 806CE20
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r1, r4, 0x2
+ bl sub_805C538
+ bl sub_805C700
+ strb r0, [r4, 0x4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806CE20
+
+ thumb_func_start sub_806CE38
+sub_806CE38: @ 806CE38
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r1, r5, 0x2
+ bl sub_805C4F4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_805C538
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl sub_8058D44
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _0806CE6A
+ bl sub_805C700
+_0806CE6A:
+ strb r0, [r5, 0x4]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806CE38
+
+ thumb_func_start sub_806CE74
+sub_806CE74: @ 806CE74
+ push {r4,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_805C538
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl sub_8058F78
+ lsls r0, 16
+ lsrs r0, 16
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806CE74
+
+ thumb_func_start sub_806CEA0
+sub_806CEA0: @ 806CEA0
+ push {r4,lr}
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_806CEE0
+ adds r4, r0, 0
+ cmp r4, 0
+ bne _0806CEB8
+ movs r0, 0
+ b _0806CED2
+_0806CEB8:
+ ldr r0, _0806CED8 @ =gUnknown_8168CE4
+ cmp r4, r0
+ beq _0806CECA
+ ldr r0, _0806CEDC @ =gUnknown_81A6955
+ cmp r4, r0
+ beq _0806CECA
+ movs r0, 0x5
+ bl sub_80722CC
+_0806CECA:
+ adds r0, r4, 0
+ bl sub_8069AE4
+ movs r0, 0x1
+_0806CED2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806CED8: .4byte gUnknown_8168CE4
+_0806CEDC: .4byte gUnknown_81A6955
+ thumb_func_end sub_806CEA0
+
+ thumb_func_start sub_806CEE0
+sub_806CEE0: @ 806CEE0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ mov r8, r5
+ lsls r2, 24
+ lsrs r4, r2, 24
+ adds r7, r4, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_806CFF4
+ cmp r0, 0
+ bne _0806CF2C
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_806D0E4
+ cmp r0, 0
+ bne _0806CF2C
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_806D1F0
+ cmp r0, 0
+ bne _0806CF2C
+ adds r0, r6, 0
+ mov r1, r8
+ adds r2, r7, 0
+ bl sub_806D548
+ cmp r0, 0
+ bne _0806CF2C
+ movs r0, 0
+_0806CF2C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806CEE0
+
+ thumb_func_start sub_806CF38
+sub_806CF38: @ 806CF38
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r2, 24
+ lsrs r6, r2, 24
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl sub_8058F78
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8059EC4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806CF60
+ ldrh r0, [r4]
+ ldrh r1, [r4, 0x2]
+ b _0806CF7E
+_0806CF60:
+ ldr r1, _0806CFA4 @ =gUnknown_826D2D8
+ lsls r2, r6, 3
+ adds r0, r2, r1
+ ldr r3, [r0]
+ ldrh r0, [r4]
+ adds r0, r3
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, 0x4
+ adds r2, r1
+ ldr r2, [r2]
+ ldrh r1, [r4, 0x2]
+ adds r1, r2
+ lsls r1, 16
+ lsrs r1, 16
+_0806CF7E:
+ ldrb r2, [r4, 0x4]
+ bl sub_805F894
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x10
+ beq _0806CF9E
+ ldr r1, _0806CFA8 @ =gUnknown_2036E38
+ lsls r2, r3, 3
+ adds r0, r2, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ adds r5, r1, 0
+ cmp r0, 0xFF
+ bne _0806CFAC
+_0806CF9E:
+ movs r0, 0
+ b _0806CFDE
+ .align 2, 0
+_0806CFA4: .4byte gUnknown_826D2D8
+_0806CFA8: .4byte gUnknown_2036E38
+_0806CFAC:
+ movs r4, 0
+ ldr r1, _0806CFE4 @ =gUnknown_2031DEC
+_0806CFB0:
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ bne _0806CFBC
+ ldrb r0, [r1, 0x2]
+ cmp r0, r3
+ beq _0806CF9E
+_0806CFBC:
+ adds r1, 0x4
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0806CFB0
+ ldr r0, _0806CFE8 @ =gUnknown_3005074
+ strb r3, [r0]
+ ldr r1, _0806CFEC @ =gUnknown_20370D2
+ adds r0, r2, r3
+ lsls r0, 2
+ adds r0, r5
+ ldrb r0, [r0, 0x8]
+ strh r0, [r1]
+ ldr r0, _0806CFF0 @ =gUnknown_20370D4
+ strh r6, [r0]
+ adds r0, r3, 0
+ bl sub_805FC38
+_0806CFDE:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806CFE4: .4byte gUnknown_2031DEC
+_0806CFE8: .4byte gUnknown_3005074
+_0806CFEC: .4byte gUnknown_20370D2
+_0806CFF0: .4byte gUnknown_20370D4
+ thumb_func_end sub_806CF38
+
+ thumb_func_start sub_806CFF4
+sub_806CFF4: @ 806CFF4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ ldrh r0, [r4]
+ ldrh r1, [r4, 0x2]
+ ldrb r2, [r4, 0x4]
+ bl sub_805F894
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x10
+ beq _0806D02A
+ ldr r2, _0806D098 @ =gUnknown_2036E38
+ lsls r1, r5, 3
+ adds r0, r1, r5
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x8]
+ adds r6, r1, 0
+ cmp r0, 0xFF
+ bne _0806D078
+_0806D02A:
+ adds r0, r7, 0
+ bl sub_8059EC4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D092
+ ldr r1, _0806D09C @ =gUnknown_826D2D8
+ mov r0, r8
+ lsls r2, r0, 3
+ adds r0, r2, r1
+ ldr r3, [r0]
+ ldrh r0, [r4]
+ adds r0, r3
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, 0x4
+ adds r2, r1
+ ldr r2, [r2]
+ ldrh r1, [r4, 0x2]
+ adds r1, r2
+ lsls r1, 16
+ lsrs r1, 16
+ ldrb r2, [r4, 0x4]
+ bl sub_805F894
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x10
+ beq _0806D092
+ ldr r2, _0806D098 @ =gUnknown_2036E38
+ lsls r1, r5, 3
+ adds r0, r1, r5
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x8]
+ adds r6, r1, 0
+ cmp r0, 0xFF
+ beq _0806D092
+_0806D078:
+ bl sub_811B0D0
+ cmp r0, 0x1
+ bne _0806D0A0
+ adds r0, r6, r5
+ lsls r0, 2
+ ldr r1, _0806D098 @ =gUnknown_2036E38
+ adds r0, r1
+ bl sub_8063D68
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806D0A0
+_0806D092:
+ movs r0, 0
+ b _0806D0C8
+ .align 2, 0
+_0806D098: .4byte gUnknown_2036E38
+_0806D09C: .4byte gUnknown_826D2D8
+_0806D0A0:
+ ldr r0, _0806D0D4 @ =gUnknown_3005074
+ strb r5, [r0]
+ ldr r4, _0806D0D8 @ =gUnknown_20370D2
+ ldr r1, _0806D0DC @ =gUnknown_2036E38
+ adds r0, r6, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ strh r0, [r4]
+ ldr r0, _0806D0E0 @ =gUnknown_20370D4
+ mov r1, r8
+ strh r1, [r0]
+ adds r0, r5, 0
+ bl sub_805FC38
+ adds r1, r0, 0
+ ldrb r0, [r4]
+ bl sub_8069D8C
+ adds r1, r0, 0
+_0806D0C8:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806D0D4: .4byte gUnknown_3005074
+_0806D0D8: .4byte gUnknown_20370D2
+_0806D0DC: .4byte gUnknown_2036E38
+_0806D0E0: .4byte gUnknown_20370D4
+ thumb_func_end sub_806CFF4
+
+ thumb_func_start sub_806D0E4
+sub_806D0E4: @ 806D0E4
+ push {r4-r7,lr}
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ ldr r4, _0806D118 @ =gUnknown_2036DFC
+ ldrh r1, [r0]
+ subs r1, 0x7
+ lsls r1, 16
+ lsrs r1, 16
+ ldrh r2, [r0, 0x2]
+ subs r2, 0x7
+ lsls r2, 16
+ lsrs r2, 16
+ ldrb r3, [r0, 0x4]
+ adds r0, r4, 0
+ bl sub_806DEEC
+ adds r5, r0, 0
+ cmp r5, 0
+ beq _0806D164
+ ldr r0, [r5, 0x8]
+ cmp r0, 0
+ bne _0806D120
+ ldr r0, _0806D11C @ =gUnknown_81C555B
+ b _0806D1E6
+ .align 2, 0
+_0806D118: .4byte gUnknown_2036DFC
+_0806D11C: .4byte gUnknown_81C555B
+_0806D120:
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_806D898
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldrb r0, [r5, 0x5]
+ cmp r0, 0x7
+ bhi _0806D1D8
+ lsls r0, 2
+ ldr r1, _0806D13C @ =_0806D140
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806D13C: .4byte _0806D140
+ .align 2, 0
+_0806D140:
+ .4byte _0806D1D8
+ .4byte _0806D160
+ .4byte _0806D168
+ .4byte _0806D16E
+ .4byte _0806D174
+ .4byte _0806D17A
+ .4byte _0806D17A
+ .4byte _0806D17A
+_0806D160:
+ cmp r6, 0x2
+ beq _0806D1D8
+_0806D164:
+ movs r0, 0
+ b _0806D1E6
+_0806D168:
+ cmp r6, 0x1
+ beq _0806D1D8
+ b _0806D164
+_0806D16E:
+ cmp r6, 0x4
+ beq _0806D1D8
+ b _0806D164
+_0806D174:
+ cmp r6, 0x3
+ beq _0806D1D8
+ b _0806D164
+_0806D17A:
+ ldr r0, [r5, 0x8]
+ movs r1, 0x3
+ bl sub_80CC44C
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ beq _0806D164
+ ldr r0, [r5, 0x8]
+ movs r1, 0
+ bl sub_80CC44C
+ ldr r1, _0806D1C4 @ =gUnknown_20370C2
+ strh r0, [r1]
+ ldr r0, [r5, 0x8]
+ movs r1, 0x1
+ bl sub_80CC44C
+ ldr r4, _0806D1C8 @ =gUnknown_20370C0
+ strh r0, [r4]
+ ldr r0, [r5, 0x8]
+ movs r1, 0x2
+ bl sub_80CC44C
+ ldr r1, _0806D1CC @ =gUnknown_20370C4
+ strh r0, [r1]
+ ldrh r0, [r4]
+ bl sub_806E6D0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806D164
+ ldr r0, _0806D1D0 @ =gUnknown_20370D4
+ strh r6, [r0]
+ ldr r0, _0806D1D4 @ =gUnknown_81A6843
+ b _0806D1E6
+ .align 2, 0
+_0806D1C4: .4byte gUnknown_20370C2
+_0806D1C8: .4byte gUnknown_20370C0
+_0806D1CC: .4byte gUnknown_20370C4
+_0806D1D0: .4byte gUnknown_20370D4
+_0806D1D4: .4byte gUnknown_81A6843
+_0806D1D8:
+ cmp r2, 0xFF
+ beq _0806D1E0
+ bl sub_8069A20
+_0806D1E0:
+ ldr r0, _0806D1EC @ =gUnknown_20370D4
+ strh r6, [r0]
+ ldr r0, [r5, 0x8]
+_0806D1E6:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806D1EC: .4byte gUnknown_20370D4
+ thumb_func_end sub_806D0E4
+
+ thumb_func_start sub_806D1F0
+sub_806D1F0: @ 806D1F0
+ push {r4,r5,lr}
+ lsls r1, 24
+ lsrs r4, r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ ldr r0, _0806D210 @ =gUnknown_20370D4
+ strh r5, [r0]
+ adds r0, r4, 0
+ bl sub_8059EF4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D218
+ ldr r0, _0806D214 @ =gUnknown_81A6955
+ b _0806D53E
+ .align 2, 0
+_0806D210: .4byte gUnknown_20370D4
+_0806D214: .4byte gUnknown_81A6955
+_0806D218:
+ adds r0, r4, 0
+ bl sub_805A134
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D230
+ ldr r0, _0806D22C @ =gUnknown_81A6C32
+ b _0806D53E
+ .align 2, 0
+_0806D22C: .4byte gUnknown_81A6C32
+_0806D230:
+ adds r0, r4, 0
+ bl sub_805A24C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D248
+ ldr r0, _0806D244 @ =gUnknown_81A7606
+ b _0806D53E
+ .align 2, 0
+_0806D244: .4byte gUnknown_81A7606
+_0806D248:
+ adds r0, r4, 0
+ bl sub_805A260
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D260
+ ldr r0, _0806D25C @ =gUnknown_81A760F
+ b _0806D53E
+ .align 2, 0
+_0806D25C: .4byte gUnknown_81A760F
+_0806D260:
+ adds r0, r4, 0
+ bl sub_805A44C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D278
+ ldr r0, _0806D274 @ =gUnknown_81A7618
+ b _0806D53E
+ .align 2, 0
+_0806D274: .4byte gUnknown_81A7618
+_0806D278:
+ adds r0, r4, 0
+ bl sub_805A558
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D290
+ ldr r0, _0806D28C @ =gUnknown_81A7633
+ b _0806D53E
+ .align 2, 0
+_0806D28C: .4byte gUnknown_81A7633
+_0806D290:
+ adds r0, r4, 0
+ bl sub_805A474
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D2A8
+ ldr r0, _0806D2A4 @ =gUnknown_81A763C
+ b _0806D53E
+ .align 2, 0
+_0806D2A4: .4byte gUnknown_81A763C
+_0806D2A8:
+ adds r0, r4, 0
+ bl sub_805A56C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D2C0
+ ldr r0, _0806D2BC @ =gUnknown_81A7621
+ b _0806D53E
+ .align 2, 0
+_0806D2BC: .4byte gUnknown_81A7621
+_0806D2C0:
+ adds r0, r4, 0
+ bl sub_805A580
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D2D8
+ ldr r0, _0806D2D4 @ =gUnknown_81A7645
+ b _0806D53E
+ .align 2, 0
+_0806D2D4: .4byte gUnknown_81A7645
+_0806D2D8:
+ adds r0, r4, 0
+ bl sub_805A4C4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D2F0
+ ldr r0, _0806D2EC @ =gUnknown_81A762A
+ b _0806D53E
+ .align 2, 0
+_0806D2EC: .4byte gUnknown_81A762A
+_0806D2F0:
+ adds r0, r4, 0
+ bl sub_805A594
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D308
+ ldr r0, _0806D304 @ =gUnknown_81C549C
+ b _0806D53E
+ .align 2, 0
+_0806D304: .4byte gUnknown_81C549C
+_0806D308:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8059ED8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D320
+ ldr r0, _0806D31C @ =gUnknown_81A764E
+ b _0806D53E
+ .align 2, 0
+_0806D31C: .4byte gUnknown_81A764E
+_0806D320:
+ adds r0, r4, 0
+ bl sub_805A374
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D338
+ ldr r0, _0806D334 @ =gUnknown_81A7657
+ b _0806D53E
+ .align 2, 0
+_0806D334: .4byte gUnknown_81A7657
+_0806D338:
+ adds r0, r4, 0
+ bl sub_805A388
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D350
+ ldr r0, _0806D34C @ =gUnknown_81A7660
+ b _0806D53E
+ .align 2, 0
+_0806D34C: .4byte gUnknown_81A7660
+_0806D350:
+ adds r0, r4, 0
+ bl sub_805A39C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D368
+ ldr r0, _0806D364 @ =gUnknown_81A7669
+ b _0806D53E
+ .align 2, 0
+_0806D364: .4byte gUnknown_81A7669
+_0806D368:
+ adds r0, r4, 0
+ bl sub_805A3B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D380
+ ldr r0, _0806D37C @ =gUnknown_81A7672
+ b _0806D53E
+ .align 2, 0
+_0806D37C: .4byte gUnknown_81A7672
+_0806D380:
+ adds r0, r4, 0
+ bl sub_805A488
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D398
+ ldr r0, _0806D394 @ =gUnknown_81A767B
+ b _0806D53E
+ .align 2, 0
+_0806D394: .4byte gUnknown_81A767B
+_0806D398:
+ adds r0, r4, 0
+ bl sub_805A49C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D3B0
+ ldr r0, _0806D3AC @ =gUnknown_81A7684
+ b _0806D53E
+ .align 2, 0
+_0806D3AC: .4byte gUnknown_81A7684
+_0806D3B0:
+ adds r0, r4, 0
+ bl sub_805A4B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D3C8
+ ldr r0, _0806D3C4 @ =gUnknown_81A768D
+ b _0806D53E
+ .align 2, 0
+_0806D3C4: .4byte gUnknown_81A768D
+_0806D3C8:
+ adds r0, r4, 0
+ bl sub_805A4D8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D3E0
+ ldr r0, _0806D3DC @ =gUnknown_81A7696
+ b _0806D53E
+ .align 2, 0
+_0806D3DC: .4byte gUnknown_81A7696
+_0806D3E0:
+ adds r0, r4, 0
+ bl sub_805A4EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D3F8
+ ldr r0, _0806D3F4 @ =gUnknown_81A769F
+ b _0806D53E
+ .align 2, 0
+_0806D3F4: .4byte gUnknown_81A769F
+_0806D3F8:
+ adds r0, r4, 0
+ bl sub_805A500
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D410
+ ldr r0, _0806D40C @ =gUnknown_81A76A8
+ b _0806D53E
+ .align 2, 0
+_0806D40C: .4byte gUnknown_81A76A8
+_0806D410:
+ adds r0, r4, 0
+ bl sub_805A514
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D428
+ ldr r0, _0806D424 @ =gUnknown_81A76B1
+ b _0806D53E
+ .align 2, 0
+_0806D424: .4byte gUnknown_81A76B1
+_0806D428:
+ adds r0, r4, 0
+ bl sub_805A528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D440
+ ldr r0, _0806D43C @ =gUnknown_81A76BA
+ b _0806D53E
+ .align 2, 0
+_0806D43C: .4byte gUnknown_81A76BA
+_0806D440:
+ adds r0, r4, 0
+ bl sub_805A52C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D458
+ ldr r0, _0806D454 @ =gUnknown_81A76C3
+ b _0806D53E
+ .align 2, 0
+_0806D454: .4byte gUnknown_81A76C3
+_0806D458:
+ adds r0, r4, 0
+ bl sub_805A530
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D470
+ ldr r0, _0806D46C @ =gUnknown_81A76CC
+ b _0806D53E
+ .align 2, 0
+_0806D46C: .4byte gUnknown_81A76CC
+_0806D470:
+ adds r0, r4, 0
+ bl sub_805A544
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D488
+ ldr r0, _0806D484 @ =gUnknown_81A76D5
+ b _0806D53E
+ .align 2, 0
+_0806D484: .4byte gUnknown_81A76D5
+_0806D488:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_805A3D8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D4A0
+ ldr r0, _0806D49C @ =gUnknown_81BBFD8
+ b _0806D53E
+ .align 2, 0
+_0806D49C: .4byte gUnknown_81BBFD8
+_0806D4A0:
+ adds r0, r4, 0
+ bl sub_805A410
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D4B8
+ ldr r0, _0806D4B4 @ =gUnknown_81A7702
+ b _0806D53E
+ .align 2, 0
+_0806D4B4: .4byte gUnknown_81A7702
+_0806D4B8:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_805A3F4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D4D0
+ ldr r0, _0806D4CC @ =gUnknown_81BB8A7
+ b _0806D53E
+ .align 2, 0
+_0806D4CC: .4byte gUnknown_81BB8A7
+_0806D4D0:
+ adds r0, r4, 0
+ bl sub_805A424
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D4EC
+ bl sub_8069A20
+ ldr r0, _0806D4E8 @ =gUnknown_81A76F0
+ b _0806D53E
+ .align 2, 0
+_0806D4E8: .4byte gUnknown_81A76F0
+_0806D4EC:
+ adds r0, r4, 0
+ bl sub_805A438
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D508
+ bl sub_8069A20
+ ldr r0, _0806D504 @ =gUnknown_81A76F9
+ b _0806D53E
+ .align 2, 0
+_0806D504: .4byte gUnknown_81A76F9
+_0806D508:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_805A290
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D524
+ bl sub_8069A20
+ ldr r0, _0806D520 @ =gUnknown_81A76DE
+ b _0806D53E
+ .align 2, 0
+_0806D520: .4byte gUnknown_81A76DE
+_0806D524:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_805A274
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806D538
+ movs r0, 0
+ b _0806D53E
+_0806D538:
+ bl sub_8069A20
+ ldr r0, _0806D544 @ =gUnknown_81A76E7
+_0806D53E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806D544: .4byte gUnknown_81A76E7
+ thumb_func_end sub_806D1F0
+
+ thumb_func_start sub_806D548
+sub_806D548: @ 806D548
+ push {r4,lr}
+ lsls r1, 24
+ lsrs r4, r1, 24
+ adds r0, r4, 0
+ bl sub_8059CC8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D570
+ bl sub_805C83C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D570
+ ldr r0, _0806D56C @ =gUnknown_81A6B0D
+ b _0806D5E2
+ .align 2, 0
+_0806D56C: .4byte gUnknown_81A6B0D
+_0806D570:
+ ldr r0, _0806D59C @ =0x00000824
+ bl sub_806E6D0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D5A4
+ bl sub_805C83C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D5A4
+ bl sub_805C8B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D5A4
+ ldr r0, _0806D5A0 @ =gUnknown_81A6AC8
+ b _0806D5E2
+ .align 2, 0
+_0806D59C: .4byte 0x00000824
+_0806D5A0: .4byte gUnknown_81A6AC8
+_0806D5A4:
+ adds r0, r4, 0
+ bl sub_805A104
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D5E0
+ ldr r0, _0806D5D0 @ =0x00000826
+ bl sub_806E6D0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D5D8
+ bl sub_805C88C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D5D8
+ ldr r0, _0806D5D4 @ =gUnknown_81BE2B7
+ b _0806D5E2
+ .align 2, 0
+_0806D5D0: .4byte 0x00000826
+_0806D5D4: .4byte gUnknown_81BE2B7
+_0806D5D8:
+ ldr r0, _0806D5DC @ =gUnknown_81BE2FF
+ b _0806D5E2
+ .align 2, 0
+_0806D5DC: .4byte gUnknown_81BE2FF
+_0806D5E0:
+ movs r0, 0
+_0806D5E2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806D548
+
+ thumb_func_start sub_806D5E8
+sub_806D5E8: @ 806D5E8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ adds r6, r4, 0
+ bl sub_806D660
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806D650
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_806DA10
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806D650
+ adds r0, r4, 0
+ bl sub_806D694
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806D650
+ adds r0, r4, 0
+ bl sub_806D698
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806D650
+ ldr r0, _0806D654 @ =gUnknown_2037078
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0806D658
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl sub_8059D70
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806D658
+ bl sub_80830B8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D658
+_0806D650:
+ movs r0, 0x1
+ b _0806D65A
+ .align 2, 0
+_0806D654: .4byte gUnknown_2037078
+_0806D658:
+ movs r0, 0
+_0806D65A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806D5E8
+
+ thumb_func_start sub_806D660
+sub_806D660: @ 806D660
+ push {r4,lr}
+ ldr r4, _0806D688 @ =gUnknown_2036DFC
+ ldrh r1, [r0]
+ subs r1, 0x7
+ lsls r1, 16
+ lsrs r1, 16
+ ldrh r2, [r0, 0x2]
+ subs r2, 0x7
+ lsls r2, 16
+ lsrs r2, 16
+ ldrb r3, [r0, 0x4]
+ adds r0, r4, 0
+ bl sub_806DDC0
+ cmp r0, 0
+ beq _0806D68C
+ bl sub_8069AE4
+ movs r0, 0x1
+ b _0806D68E
+ .align 2, 0
+_0806D688: .4byte gUnknown_2036DFC
+_0806D68C:
+ movs r0, 0
+_0806D68E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806D660
+
+ thumb_func_start sub_806D694
+sub_806D694: @ 806D694
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_806D694
+
+ thumb_func_start sub_806D698
+sub_806D698: @ 806D698
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl sub_811B0D0
+ cmp r0, 0x1
+ beq _0806D72C
+ ldr r0, _0806D6E0 @ =gUnknown_203ADFA
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _0806D72C
+ bl sub_806D74C
+ ldr r0, _0806D6E4 @ =gUnknown_2037078
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0806D720
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8059D70
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806D720
+ bl sub_810C4EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D6EC
+ ldr r0, _0806D6E8 @ =gUnknown_81A8CED
+ bl sub_8069AE4
+ b _0806D730
+ .align 2, 0
+_0806D6E0: .4byte gUnknown_203ADFA
+_0806D6E4: .4byte gUnknown_2037078
+_0806D6E8: .4byte gUnknown_81A8CED
+_0806D6EC:
+ bl sub_806D79C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D704
+ ldr r0, _0806D700 @ =gUnknown_81A8DFD
+ bl sub_8069AE4
+ b _0806D730
+ .align 2, 0
+_0806D700: .4byte gUnknown_81A8DFD
+_0806D704:
+ bl sub_80463B8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806D720
+ movs r0, 0xD
+ bl sub_8054E90
+ ldr r0, _0806D71C @ =gUnknown_81BF546
+ bl sub_8069AE4
+ b _0806D730
+ .align 2, 0
+_0806D71C: .4byte gUnknown_81BF546
+_0806D720:
+ bl sub_80A0F0C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806D730
+_0806D72C:
+ movs r0, 0
+ b _0806D732
+_0806D730:
+ movs r0, 0x1
+_0806D732:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806D698
+
+ thumb_func_start sub_806D738
+sub_806D738: @ 806D738
+ push {lr}
+ ldr r0, _0806D748 @ =0x00004021
+ movs r1, 0
+ bl sub_806E584
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D748: .4byte 0x00004021
+ thumb_func_end sub_806D738
+
+ thumb_func_start sub_806D74C
+sub_806D74C: @ 806D74C
+ push {r4,r5,lr}
+ ldr r0, _0806D780 @ =0x00004021
+ bl sub_806E454
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+ ldrh r1, [r0]
+ movs r2, 0x7F
+ ands r1, r2
+ strh r1, [r0]
+ cmp r1, 0
+ bne _0806D77A
+ ldr r5, _0806D784 @ =gUnknown_2024284
+ movs r4, 0x5
+_0806D76A:
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl sub_80436F8
+ adds r5, 0x64
+ subs r4, 0x1
+ cmp r4, 0
+ bge _0806D76A
+_0806D77A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D780: .4byte 0x00004021
+_0806D784: .4byte gUnknown_2024284
+ thumb_func_end sub_806D74C
+
+ thumb_func_start sub_806D788
+sub_806D788: @ 806D788
+ push {lr}
+ ldr r0, _0806D798 @ =0x00004022
+ movs r1, 0
+ bl sub_806E584
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D798: .4byte 0x00004022
+ thumb_func_end sub_806D788
+
+ thumb_func_start sub_806D79C
+sub_806D79C: @ 806D79C
+ push {r4,lr}
+ ldr r0, _0806D7D8 @ =gUnknown_2036DFC
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x9
+ beq _0806D7E0
+ ldr r0, _0806D7DC @ =0x00004022
+ bl sub_806E454
+ adds r4, r0, 0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ ldrh r0, [r4]
+ movs r1, 0x5
+ bl __umodsi3
+ strh r0, [r4]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0806D7E0
+ bl sub_80A0618
+ cmp r0, 0x1
+ beq _0806D7E0
+ cmp r0, 0x1
+ ble _0806D7E0
+ cmp r0, 0x2
+ bne _0806D7E0
+ movs r0, 0x1
+ b _0806D7E2
+ .align 2, 0
+_0806D7D8: .4byte gUnknown_2036DFC
+_0806D7DC: .4byte 0x00004022
+_0806D7E0:
+ movs r0, 0
+_0806D7E2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806D79C
+
+ thumb_func_start sub_806D7E8
+sub_806D7E8: @ 806D7E8
+ push {lr}
+ bl sub_80832D4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806D7E8
+
+ thumb_func_start sub_806D7F4
+sub_806D7F4: @ 806D7F4
+ push {lr}
+ bl sub_80833B0
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806D7F4
+
+ thumb_func_start sub_806D804
+sub_806D804: @ 806D804
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r3, r1, 16
+ lsls r2, 24
+ lsrs r5, r2, 24
+ adds r7, r5, 0
+ ldr r0, _0806D840 @ =gUnknown_30030F0
+ ldrh r1, [r0, 0x2C]
+ movs r0, 0x30
+ ands r0, r1
+ cmp r0, 0
+ bne _0806D890
+ subs r0, r5, 0x3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _0806D890
+ adds r0, r3, 0
+ adds r1, r5, 0
+ bl sub_806D898
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _0806D848
+ ldr r0, _0806D844 @ =gUnknown_81A76E7
+ adds r1, r5, 0
+ b _0806D888
+ .align 2, 0
+_0806D840: .4byte gUnknown_30030F0
+_0806D844: .4byte gUnknown_81A76E7
+_0806D848:
+ cmp r4, 0x1
+ bne _0806D858
+ ldr r0, _0806D854 @ =gUnknown_81A76DE
+ adds r1, r5, 0
+ b _0806D888
+ .align 2, 0
+_0806D854: .4byte gUnknown_81A76DE
+_0806D858:
+ cmp r4, 0x2
+ bne _0806D868
+ ldr r0, _0806D864 @ =gUnknown_81A76F0
+ adds r1, r5, 0
+ b _0806D888
+ .align 2, 0
+_0806D864: .4byte gUnknown_81A76F0
+_0806D868:
+ cmp r4, 0x3
+ bne _0806D878
+ ldr r0, _0806D874 @ =gUnknown_81A76F9
+ adds r1, r5, 0
+ b _0806D888
+ .align 2, 0
+_0806D874: .4byte gUnknown_81A76F9
+_0806D878:
+ adds r0, r6, 0
+ bl sub_806D928
+ cmp r0, 0
+ beq _0806D890
+ cmp r4, 0xF0
+ bne _0806D890
+ adds r1, r7, 0
+_0806D888:
+ bl sub_806D908
+ movs r0, 0x1
+ b _0806D892
+_0806D890:
+ movs r0, 0
+_0806D892:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806D804
+
+ thumb_func_start sub_806D898
+sub_806D898: @ 806D898
+ push {r4,r5,lr}
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_805A274
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D8B6
+ movs r0, 0
+ b _0806D902
+_0806D8B6:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_805A290
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D8CA
+ movs r0, 0x1
+ b _0806D902
+_0806D8CA:
+ adds r0, r4, 0
+ bl sub_805A424
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D8DC
+ movs r0, 0x2
+ b _0806D902
+_0806D8DC:
+ adds r0, r4, 0
+ bl sub_805A438
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D8EE
+ movs r0, 0x3
+ b _0806D902
+_0806D8EE:
+ adds r0, r4, 0
+ bl sub_805A360
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806D900
+ movs r0, 0xFF
+ b _0806D902
+_0806D900:
+ movs r0, 0xF0
+_0806D902:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806D898
+
+ thumb_func_start sub_806D908
+sub_806D908: @ 806D908
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0806D924 @ =gUnknown_20370D4
+ strh r1, [r2]
+ bl sub_8069AE4
+ bl sub_80699E0
+ bl sub_8069A20
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D924: .4byte gUnknown_20370D4
+ thumb_func_end sub_806D908
+
+ thumb_func_start sub_806D928
+sub_806D928: @ 806D928
+ push {r4,lr}
+ ldr r4, _0806D94C @ =gUnknown_2036DFC
+ ldrh r1, [r0]
+ subs r1, 0x7
+ lsls r1, 16
+ lsrs r1, 16
+ ldrh r2, [r0, 0x2]
+ subs r2, 0x7
+ lsls r2, 16
+ lsrs r2, 16
+ ldrb r3, [r0, 0x4]
+ adds r0, r4, 0
+ bl sub_806DEEC
+ cmp r0, 0
+ bne _0806D950
+ movs r0, 0
+ b _0806D958
+ .align 2, 0
+_0806D94C: .4byte gUnknown_2036DFC
+_0806D950:
+ ldr r0, [r0, 0x8]
+ cmp r0, 0
+ bne _0806D958
+ ldr r0, _0806D960 @ =gUnknown_81C555B
+_0806D958:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806D960: .4byte gUnknown_81C555B
+ thumb_func_end sub_806D928
+
+ thumb_func_start sub_806D964
+sub_806D964: @ 806D964
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r7, r0, 0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ mov r10, r4
+ lsls r2, 24
+ lsrs r6, r2, 24
+ mov r9, r6
+ ldr r0, _0806D9B8 @ =gUnknown_2036DFC
+ mov r8, r0
+ adds r1, r7, 0
+ bl sub_806DC30
+ lsls r0, 24
+ asrs r5, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r5, r0
+ beq _0806DA00
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_806DBD8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D9BC
+ bl sub_8055A08
+ mov r0, r8
+ adds r1, r5, 0
+ adds r2, r7, 0
+ bl sub_806DC54
+ bl sub_807E438
+ movs r0, 0x1
+ b _0806DA02
+ .align 2, 0
+_0806D9B8: .4byte gUnknown_2036DFC
+_0806D9BC:
+ adds r0, r4, 0
+ mov r1, r9
+ bl sub_806DB84
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806DA00
+ movs r4, 0
+ ldr r0, _0806D9FC @ =gUnknown_2037078
+ ldrb r1, [r0]
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0
+ beq _0806D9E2
+ movs r0, 0x1
+ bl sub_805BDEC
+ movs r4, 0xC
+_0806D9E2:
+ bl sub_8055A08
+ mov r0, r8
+ adds r1, r5, 0
+ adds r2, r7, 0
+ bl sub_806DC54
+ mov r0, r10
+ adds r1, r4, 0
+ bl sub_807E4A0
+ movs r0, 0x1
+ b _0806DA02
+ .align 2, 0
+_0806D9FC: .4byte gUnknown_2037078
+_0806DA00:
+ movs r0, 0
+_0806DA02:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806D964
+
+ thumb_func_start sub_806DA10
+sub_806DA10: @ 806DA10
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ ldr r7, _0806DA68 @ =gUnknown_2036DFC
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_806DC30
+ lsls r0, 24
+ asrs r4, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ beq _0806DAEC
+ adds r0, r5, 0
+ bl sub_806DAF4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806DAEC
+ bl sub_8055A08
+ adds r0, r7, 0
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl sub_806DC54
+ lsls r0, r5, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8059BF0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806DA6C
+ adds r0, r4, 0
+ bl sub_807E560
+ movs r0, 0x1
+ b _0806DAEE
+ .align 2, 0
+_0806DA68: .4byte gUnknown_2036DFC
+_0806DA6C:
+ adds r0, r4, 0
+ bl sub_805A158
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806DA82
+ bl sub_807E57C
+ movs r0, 0x1
+ b _0806DAEE
+_0806DA82:
+ adds r0, r4, 0
+ bl sub_805A15C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806DA98
+ bl sub_807E58C
+ movs r0, 0x1
+ b _0806DAEE
+_0806DA98:
+ adds r0, r4, 0
+ bl sub_805A170
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806DAAE
+ bl sub_807E59C
+ movs r0, 0x1
+ b _0806DAEE
+_0806DAAE:
+ adds r0, r4, 0
+ bl sub_805A184
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806DAC4
+ bl sub_807E524
+ movs r0, 0x1
+ b _0806DAEE
+_0806DAC4:
+ adds r0, r4, 0
+ bl sub_805A1C4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806DAE4
+ bl sub_80559E4
+ ldr r0, _0806DAE0 @ =gUnknown_81C1361
+ bl sub_8069AE4
+ movs r0, 0x1
+ b _0806DAEE
+ .align 2, 0
+_0806DAE0: .4byte gUnknown_81C1361
+_0806DAE4:
+ bl sub_807E438
+ movs r0, 0x1
+ b _0806DAEE
+_0806DAEC:
+ movs r0, 0
+_0806DAEE:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806DA10
+
+ thumb_func_start sub_806DAF4
+sub_806DAF4: @ 806DAF4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8059BC8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806DB7C
+ adds r0, r4, 0
+ bl sub_8059C78
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806DB7C
+ adds r0, r4, 0
+ bl sub_8059BF0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806DB7C
+ adds r0, r4, 0
+ bl sub_8059C8C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806DB7C
+ adds r0, r4, 0
+ bl sub_805A158
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806DB7C
+ adds r0, r4, 0
+ bl sub_805A15C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806DB7C
+ adds r0, r4, 0
+ bl sub_805A170
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806DB7C
+ adds r0, r4, 0
+ bl sub_805A1C4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806DB7C
+ adds r0, r4, 0
+ bl sub_805A184
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806DB7C
+ movs r0, 0
+ b _0806DB7E
+_0806DB7C:
+ movs r0, 0x1
+_0806DB7E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806DAF4
+
+ thumb_func_start sub_806DB84
+sub_806DB84: @ 806DB84
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x3
+ beq _0806DB98
+ cmp r1, 0x4
+ beq _0806DBB0
+ b _0806DBD0
+_0806DB98:
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8059C20
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806DBCC
+ adds r0, r4, 0
+ bl sub_8059C48
+ b _0806DBC6
+_0806DBB0:
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8059C0C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806DBCC
+ adds r0, r4, 0
+ bl sub_8059C34
+_0806DBC6:
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806DBD0
+_0806DBCC:
+ movs r0, 0x1
+ b _0806DBD2
+_0806DBD0:
+ movs r0, 0
+_0806DBD2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806DB84
+
+ thumb_func_start sub_806DBD8
+sub_806DBD8: @ 806DBD8
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r1, 0
+ cmp r1, 0x2
+ beq _0806DBFC
+ cmp r1, 0x2
+ bgt _0806DBF2
+ cmp r1, 0x1
+ beq _0806DC06
+ b _0806DC28
+_0806DBF2:
+ cmp r2, 0x3
+ beq _0806DC10
+ cmp r2, 0x4
+ beq _0806DC1A
+ b _0806DC28
+_0806DBFC:
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8059D04
+ b _0806DC22
+_0806DC06:
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8059D18
+ b _0806DC22
+_0806DC10:
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8059CF0
+ b _0806DC22
+_0806DC1A:
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8059CDC
+_0806DC22:
+ lsls r0, 24
+ lsrs r0, 24
+ b _0806DC2A
+_0806DC28:
+ movs r0, 0
+_0806DC2A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806DBD8
+
+ thumb_func_start sub_806DC30
+sub_806DC30: @ 806DC30
+ push {lr}
+ adds r3, r1, 0
+ ldrh r1, [r3]
+ subs r1, 0x7
+ lsls r1, 16
+ lsrs r1, 16
+ ldrh r2, [r3, 0x2]
+ subs r2, 0x7
+ lsls r2, 16
+ lsrs r2, 16
+ ldrb r3, [r3, 0x4]
+ bl sub_806DD38
+ lsls r0, 24
+ asrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806DC30
+
+ thumb_func_start sub_806DC54
+sub_806DC54: @ 806DC54
+ push {r4-r7,lr}
+ adds r5, r2, 0
+ ldr r0, _0806DC74 @ =gUnknown_2036DFC
+ ldr r0, [r0, 0x4]
+ lsls r1, 24
+ asrs r7, r1, 24
+ lsls r6, r7, 3
+ ldr r0, [r0, 0x8]
+ adds r4, r0, r6
+ ldrb r0, [r4, 0x6]
+ cmp r0, 0x7F
+ bne _0806DC78
+ ldrb r0, [r4, 0x5]
+ bl sub_8055454
+ b _0806DCC4
+ .align 2, 0
+_0806DC74: .4byte gUnknown_2036DFC
+_0806DC78:
+ movs r0, 0x7
+ ldrsb r0, [r4, r0]
+ movs r1, 0x6
+ ldrsb r1, [r4, r1]
+ movs r2, 0x5
+ ldrsb r2, [r4, r2]
+ bl sub_80553C8
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ movs r2, 0x2
+ ldrsh r1, [r5, r2]
+ bl sub_805550C
+ ldrb r0, [r4, 0x7]
+ ldrb r1, [r4, 0x6]
+ bl sub_8055238
+ ldr r1, [r0, 0x4]
+ ldrb r0, [r4, 0x5]
+ ldr r1, [r1, 0x8]
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0x7F
+ bne _0806DCC4
+ adds r0, r6, r1
+ ldrb r0, [r0, 0x5]
+ ldr r1, _0806DCCC @ =gUnknown_3005008
+ ldr r2, [r1]
+ movs r1, 0x4
+ ldrsb r1, [r2, r1]
+ ldrb r2, [r2, 0x5]
+ lsls r2, 24
+ asrs r2, 24
+ adds r3, r7, 0
+ bl sub_80553E8
+_0806DCC4:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DCCC: .4byte gUnknown_3005008
+ thumb_func_end sub_806DC54
+
+ thumb_func_start sub_806DCD0
+sub_806DCD0: @ 806DCD0
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r2, 0x2
+ bne _0806DD30
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_8059BC8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806DD30
+ ldr r7, _0806DD2C @ =gUnknown_2036DFC
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_806DC30
+ lsls r0, 24
+ asrs r4, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ beq _0806DD30
+ adds r0, r5, 0
+ bl sub_806DAF4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806DD30
+ bl sub_8055A08
+ adds r0, r7, 0
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl sub_806DC54
+ bl sub_807E4DC
+ movs r0, 0x1
+ b _0806DD32
+ .align 2, 0
+_0806DD2C: .4byte gUnknown_2036DFC
+_0806DD30:
+ movs r0, 0
+_0806DD32:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806DCD0
+
+ thumb_func_start sub_806DD38
+sub_806DD38: @ 806DD38
+ push {r4-r6,lr}
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 16
+ lsrs r5, r2, 16
+ lsls r3, 24
+ lsrs r4, r3, 24
+ ldr r0, [r0, 0x4]
+ ldr r1, [r0, 0x8]
+ ldrb r3, [r0, 0x1]
+ movs r2, 0
+ cmp r2, r3
+ bge _0806DD76
+_0806DD52:
+ ldrh r0, [r1]
+ cmp r0, r6
+ bne _0806DD6E
+ ldrh r0, [r1, 0x2]
+ cmp r0, r5
+ bne _0806DD6E
+ ldrb r0, [r1, 0x4]
+ cmp r0, r4
+ beq _0806DD68
+ cmp r0, 0
+ bne _0806DD6E
+_0806DD68:
+ lsls r0, r2, 24
+ asrs r0, 24
+ b _0806DD7A
+_0806DD6E:
+ adds r2, 0x1
+ adds r1, 0x8
+ cmp r2, r3
+ blt _0806DD52
+_0806DD76:
+ movs r0, 0x1
+ negs r0, r0
+_0806DD7A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806DD38
+
+ thumb_func_start sub_806DD80
+sub_806DD80: @ 806DD80
+ push {r4,lr}
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _0806DDB6
+ ldr r1, [r4, 0xC]
+ cmp r1, 0
+ bne _0806DD96
+ ldrb r0, [r4, 0x6]
+ bl sub_806E7DC
+ b _0806DDB6
+_0806DD96:
+ ldrh r0, [r4, 0x6]
+ cmp r0, 0
+ beq _0806DDB0
+ ldrh r0, [r4, 0x6]
+ bl sub_806E568
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r1, [r4, 0x8]
+ cmp r0, r1
+ bne _0806DDB6
+ ldr r0, [r4, 0xC]
+ b _0806DDB8
+_0806DDB0:
+ adds r0, r1, 0
+ bl sub_8069B48
+_0806DDB6:
+ movs r0, 0
+_0806DDB8:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806DD80
+
+ thumb_func_start sub_806DDC0
+sub_806DDC0: @ 806DDC0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r1, 16
+ lsrs r1, 16
+ mov r10, r1
+ lsls r2, 16
+ lsrs r2, 16
+ mov r9, r2
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ ldr r0, [r0, 0x4]
+ ldr r1, [r0, 0xC]
+ ldrb r7, [r0, 0x2]
+ movs r6, 0
+ cmp r6, r7
+ bge _0806DE16
+ adds r5, r1, 0
+ adds r4, r5, 0
+_0806DDEC:
+ ldrh r0, [r4]
+ cmp r0, r10
+ bne _0806DE0C
+ ldrh r0, [r4, 0x2]
+ cmp r0, r9
+ bne _0806DE0C
+ ldrb r0, [r4, 0x4]
+ cmp r0, r8
+ beq _0806DE02
+ cmp r0, 0
+ bne _0806DE0C
+_0806DE02:
+ adds r0, r5, 0
+ bl sub_806DD80
+ cmp r0, 0
+ bne _0806DE18
+_0806DE0C:
+ adds r4, 0x10
+ adds r5, 0x10
+ adds r6, 0x1
+ cmp r6, r7
+ blt _0806DDEC
+_0806DE16:
+ movs r0, 0
+_0806DE18:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806DDC0
+
+ thumb_func_start sub_806DE28
+sub_806DE28: @ 806DE28
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x10
+ ldrsh r0, [r5, r1]
+ movs r2, 0x12
+ ldrsh r1, [r5, r2]
+ bl sub_8058F78
+ cmp r0, 0x66
+ bne _0806DE64
+ movs r0, 0x25
+ bl sub_80722CC
+ ldrb r0, [r5, 0x8]
+ ldr r4, _0806DE6C @ =gUnknown_3005008
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ bl sub_805E4C8
+ ldrb r0, [r5, 0x8]
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ bl sub_805FCD8
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_806E6A8
+_0806DE64:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DE6C: .4byte gUnknown_3005008
+ thumb_func_end sub_806DE28
+
+ thumb_func_start sub_806DE70
+sub_806DE70: @ 806DE70
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsls r1, 16
+ ldr r2, _0806DEC0 @ =gUnknown_2036DFC
+ ldr r2, [r2, 0x4]
+ ldr r4, [r2, 0xC]
+ ldrb r5, [r2, 0x2]
+ lsrs r7, r0, 16
+ asrs r0, 16
+ lsrs r6, r1, 16
+ asrs r1, 16
+ bl sub_8058F78
+ cmp r0, 0x20
+ bne _0806DEB8
+ cmp r5, 0
+ beq _0806DEB8
+_0806DE92:
+ ldrh r0, [r4]
+ adds r0, 0x7
+ cmp r0, r7
+ bne _0806DEB0
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x7
+ cmp r0, r6
+ bne _0806DEB0
+ bl sub_8112364
+ ldr r0, [r4, 0xC]
+ bl sub_8069AE4
+ bl sub_8069940
+_0806DEB0:
+ adds r4, 0x10
+ subs r5, 0x1
+ cmp r5, 0
+ bne _0806DE92
+_0806DEB8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DEC0: .4byte gUnknown_2036DFC
+ thumb_func_end sub_806DE70
+
+ thumb_func_start sub_806DEC4
+sub_806DEC4: @ 806DEC4
+ push {r4,lr}
+ ldr r4, _0806DEE8 @ =gUnknown_2036DFC
+ ldrh r1, [r0]
+ subs r1, 0x7
+ lsls r1, 16
+ lsrs r1, 16
+ ldrh r2, [r0, 0x2]
+ subs r2, 0x7
+ lsls r2, 16
+ lsrs r2, 16
+ ldrb r3, [r0, 0x4]
+ adds r0, r4, 0
+ bl sub_806DDC0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806DEE8: .4byte gUnknown_2036DFC
+ thumb_func_end sub_806DEC4
+
+ thumb_func_start sub_806DEEC
+sub_806DEEC: @ 806DEEC
+ push {r4-r7,lr}
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r2, 16
+ lsrs r6, r2, 16
+ lsls r3, 24
+ lsrs r5, r3, 24
+ ldr r0, [r0, 0x4]
+ ldr r4, [r0, 0x10]
+ ldrb r3, [r0, 0x3]
+ movs r2, 0
+ cmp r2, r3
+ bcs _0806DF32
+_0806DF06:
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r4
+ ldrh r0, [r1]
+ cmp r0, r7
+ bne _0806DF28
+ ldrh r0, [r1, 0x2]
+ cmp r0, r6
+ bne _0806DF28
+ ldrb r0, [r1, 0x4]
+ cmp r0, r5
+ beq _0806DF24
+ cmp r0, 0
+ bne _0806DF28
+_0806DF24:
+ adds r0, r1, 0
+ b _0806DF34
+_0806DF28:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r3
+ bcc _0806DF06
+_0806DF32:
+ movs r0, 0
+_0806DF34:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806DEEC
+
+ thumb_func_start sub_806DF3C
+sub_806DF3C: @ 806DF3C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ ldr r0, _0806DF70 @ =gUnknown_2036DFC
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x5
+ bne _0806DF74
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_8059FCC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806DF74
+ ldrh r0, [r4]
+ subs r0, 0x7
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r4, 0x2]
+ subs r1, 0x7
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_8055824
+ b _0806DF98
+ .align 2, 0
+_0806DF70: .4byte gUnknown_2036DFC
+_0806DF74:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_8059FB0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806DFB0
+ ldrh r0, [r4]
+ subs r0, 0x7
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r4, 0x2]
+ subs r1, 0x7
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_8055844
+_0806DF98:
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806DFB0
+ bl sub_8055A08
+ bl sub_807E470
+ movs r0, 0xE2
+ bl sub_80722CC
+ movs r0, 0x1
+ b _0806DFB2
+_0806DFB0:
+ movs r0, 0
+_0806DFB2:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806DF3C
+
+ thumb_func_start sub_806DFB8
+sub_806DFB8: @ 806DFB8
+ push {r4,r5,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_805C538
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl sub_8058F78
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0806E010 @ =gUnknown_2036DFC
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x5
+ bne _0806E014
+ adds r0, r5, 0
+ bl sub_8059FCC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806E014
+ mov r0, sp
+ ldrh r0, [r0]
+ subs r0, 0x7
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r4]
+ subs r1, 0x7
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_8055824
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E044
+ movs r0, 0x1
+ b _0806E046
+ .align 2, 0
+_0806E010: .4byte gUnknown_2036DFC
+_0806E014:
+ adds r0, r5, 0
+ bl sub_8059FB0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E044
+ mov r0, sp
+ ldrh r0, [r0]
+ subs r0, 0x7
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r4]
+ subs r1, 0x7
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_8055844
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E044
+ movs r0, 0x2
+ b _0806E046
+_0806E044:
+ movs r0, 0
+_0806E046:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806DFB8
+
+ thumb_func_start sub_806E050
+sub_806E050: @ 806E050
+ push {r4,r5,lr}
+ sub sp, 0x8
+ bl sub_805C6E4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r5, sp
+ mov r0, sp
+ bl sub_806CE38
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0x2
+ ldrsh r1, [r5, r2]
+ bl sub_8058F78
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, sp
+ adds r2, r4, 0
+ bl sub_806CFF4
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806E050
+
+ thumb_func_start sub_806E08C
+sub_806E08C: @ 806E08C
+ push {r4,lr}
+ sub sp, 0x8
+ bl sub_805C6E4
+ mov r4, sp
+ mov r0, sp
+ bl sub_806CE20
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl sub_8058F78
+ ldr r4, _0806E0CC @ =gUnknown_2036DFC
+ adds r0, r4, 0
+ mov r1, sp
+ bl sub_806DC30
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ adds r0, r4, 0
+ mov r2, sp
+ bl sub_806DC54
+ movs r0, 0
+ add sp, 0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806E0CC: .4byte gUnknown_2036DFC
+ thumb_func_end sub_806E08C
+
+ .align 2, 0 @ Don't pad with nop.