summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/code_080011C4.s4
-rw-r--r--asm/code_08003FC4.s6
-rw-r--r--asm/code_080041E8.s6
-rw-r--r--asm/code_0801D79C.s11006
-rw-r--r--asm/code_0801EE18.s10563
-rw-r--r--asm/code_08023E10.s2
-rw-r--r--asm/code_08028E40.s2
-rw-r--r--asm/code_0802B234.s12
-rw-r--r--asm/code_08033FFC.s36
-rw-r--r--asm/code_080874A0.s2
-rw-r--r--asm/octorok.s246
-rw-r--r--asm/octorok/sub_0801EBC8.inc28
-rw-r--r--data/data_8.s4
-rw-r--r--linker.ld3
-rw-r--r--src/octorok.c140
15 files changed, 11017 insertions, 11043 deletions
diff --git a/asm/code_080011C4.s b/asm/code_080011C4.s
index 9a13f50a..d6171877 100644
--- a/asm/code_080011C4.s
+++ b/asm/code_080011C4.s
@@ -68,7 +68,7 @@ _08001230:
beq _0800123E
strb r1, [r0, #0xe]
movs r1, #4
- ldr r3, _0800135C @ =sub_08004276
+ ldr r3, _0800135C @ =UpdateSpriteAnimation
bx r3
_0800123E:
ldr r3, _08001360 @ =sub_080043B4
@@ -238,7 +238,7 @@ _08001352:
bx lr
.align 2, 0
_08001358: .4byte gEnemyFunctions
-_0800135C: .4byte sub_08004276
+_0800135C: .4byte UpdateSpriteAnimation
_08001360: .4byte sub_080043B4
_08001364: .4byte 0x00001800
_08001368: .4byte gUnk_080012C8
diff --git a/asm/code_08003FC4.s b/asm/code_08003FC4.s
index 6e093e15..c4a5742f 100644
--- a/asm/code_08003FC4.s
+++ b/asm/code_08003FC4.s
@@ -431,8 +431,8 @@ UpdateSprite: @ 0x08004260
sub_08004274: @ 0x08004274
movs r1, #1
- non_word_aligned_thumb_func_start sub_08004276
-sub_08004276: @ 0x08004276
+ non_word_aligned_thumb_func_start UpdateSpriteAnimation
+UpdateSpriteAnimation: @ 0x08004276
movs r3, #0x59
ldrb r2, [r0, r3]
subs r2, r2, r1
@@ -478,7 +478,7 @@ sub_080042B8: @ 0x080042B8
non_word_aligned_thumb_func_start sub_080042BA
sub_080042BA: @ 0x080042BA
push {lr}
- bl sub_08004276
+ bl UpdateSpriteAnimation
_080042C0:
pop {r1}
mov lr, r1
diff --git a/asm/code_080041E8.s b/asm/code_080041E8.s
index a13ec1f2..822a87a7 100644
--- a/asm/code_080041E8.s
+++ b/asm/code_080041E8.s
@@ -97,8 +97,8 @@ UpdateSprite: @ 0x08004260
sub_08004274: @ 0x08004274
movs r1, #1
- non_word_aligned_thumb_func_start sub_08004276
-sub_08004276: @ 0x08004276
+ non_word_aligned_thumb_func_start UpdateSpriteAnimation
+UpdateSpriteAnimation: @ 0x08004276
movs r3, #0x59
ldrb r2, [r0, r3]
subs r2, r2, r1
@@ -144,7 +144,7 @@ sub_080042B8: @ 0x080042B8
non_word_aligned_thumb_func_start sub_080042BA
sub_080042BA: @ 0x080042BA
push {lr}
- bl sub_08004276
+ bl UpdateSpriteAnimation
_080042C0:
pop {r1}
mov lr, r1
diff --git a/asm/code_0801D79C.s b/asm/code_0801D79C.s
index 790b5f76..2c1c61de 100644
--- a/asm/code_0801D79C.s
+++ b/asm/code_0801D79C.s
@@ -2570,11009 +2570,3 @@ _0801EA9C:
movs r0, #0xf2
_0801EAAE:
pop {r4, r5, r6, pc}
-
- thumb_func_start sub_0801EAB0
-sub_0801EAB0: @ 0x0801EAB0
- push {r4, lr}
- adds r4, r0, #0
- ldr r1, _0801EACC @ =gUnk_080CA130
- bl sub_0800129E
- movs r3, #0x10
- rsbs r3, r3, #0
- adds r0, r4, #0
- movs r1, #0
- movs r2, #1
- bl sub_0804A9AC
- pop {r4, pc}
- .align 2, 0
-_0801EACC: .4byte gUnk_080CA130
-
- thumb_func_start sub_0801EAD0
-sub_0801EAD0: @ 0x0801EAD0
- push {lr}
- ldr r2, _0801EAE4 @ =gUnk_080CA148
- ldrb r1, [r0, #0xc]
- lsls r1, r1, #2
- adds r1, r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {pc}
- .align 2, 0
-_0801EAE4: .4byte gUnk_080CA148
-
- thumb_func_start sub_0801EAE8
-sub_0801EAE8: @ 0x0801EAE8
- push {r4, lr}
- adds r4, r0, #0
- adds r0, #0x43
- ldrb r0, [r0]
- cmp r0, #0
- beq _0801EAFC
- adds r0, r4, #0
- movs r1, #0x1c
- bl sub_0804A9FC
-_0801EAFC:
- ldr r1, _0801EB08 @ =gUnk_080CA130
- adds r0, r4, #0
- bl sub_0804AA30
- pop {r4, pc}
- .align 2, 0
-_0801EB08: .4byte gUnk_080CA130
-
- thumb_func_start sub_0801EB0C
-sub_0801EB0C: @ 0x0801EB0C
- push {lr}
- adds r1, r0, #0
- ldrb r0, [r1, #0xa]
- cmp r0, #0
- bne _0801EB1E
- adds r0, r1, #0
- bl sub_0804A7D4
- b _0801EB28
-_0801EB1E:
- adds r0, r1, #0
- movs r1, #0xf1
- movs r2, #0
- bl sub_0804A7E0
-_0801EB28:
- pop {pc}
- .align 2, 0
-
- thumb_func_start sub_0801EB2C
-sub_0801EB2C: @ 0x0801EB2C
- push {r4, lr}
- adds r4, r0, #0
- ldrb r0, [r4, #0xd]
- cmp r0, #2
- bhi _0801EB50
- adds r0, r4, #0
- bl sub_0806F520
- cmp r0, #0
- bne _0801EB50
- adds r0, r4, #0
- bl sub_0801ECFC
- ldrb r1, [r4, #0x14]
- adds r0, r4, #0
- bl UpdateSprite
- b _0801EB60
-_0801EB50:
- ldr r0, _0801EB64 @ =gUnk_080CA158
- ldrb r1, [r4, #0xd]
- lsls r1, r1, #2
- adds r1, r1, r0
- ldr r1, [r1]
- adds r0, r4, #0
- bl _call_via_r1
-_0801EB60:
- pop {r4, pc}
- .align 2, 0
-_0801EB64: .4byte gUnk_080CA158
-
- thumb_func_start sub_0801EB68
-sub_0801EB68: @ 0x0801EB68
- movs r1, #1
- strb r1, [r0, #0xd]
- movs r1, #0x3c
- strb r1, [r0, #0x1d]
- bx lr
- .align 2, 0
-
- thumb_func_start sub_0801EB74
-sub_0801EB74: @ 0x0801EB74
- push {lr}
- bl sub_0806F4E8
- pop {pc}
-
- thumb_func_start sub_0801EB7C
-sub_0801EB7C: @ 0x0801EB7C
- push {lr}
- bl sub_0806F3E4
- pop {pc}
-
- thumb_func_start sub_0801EB84
-sub_0801EB84: @ 0x0801EB84
- push {lr}
- ldrb r2, [r0, #0x10]
- movs r1, #0x7f
- ands r1, r2
- strb r1, [r0, #0x10]
- movs r1, #2
- bl sub_08004276
- pop {pc}
- .align 2, 0
-
- thumb_func_start nullsub_3
-nullsub_3: @ 0x0801EB98
- bx lr
- .align 2, 0
-
- thumb_func_start sub_0801EB9C
-sub_0801EB9C: @ 0x0801EB9C
- push {lr}
- adds r2, r0, #0
- ldrb r3, [r2, #0x10]
- movs r0, #0x80
- ands r0, r3
- lsls r0, r0, #0x18
- lsrs r1, r0, #0x18
- cmp r1, #0
- beq _0801EBC0
- movs r0, #0x80
- orrs r0, r3
- strb r0, [r2, #0x10]
- adds r2, #0x3a
- ldrb r1, [r2]
- movs r0, #0xfb
- ands r0, r1
- strb r0, [r2]
- b _0801EBC6
-_0801EBC0:
- adds r0, r2, #0
- adds r0, #0x45
- strb r1, [r0]
-_0801EBC6:
- pop {pc}
-
- thumb_func_start sub_0801EBC8
-sub_0801EBC8: @ 0x0801EBC8
- push {r4, lr}
- adds r4, r0, #0
- bl sub_0804A720
- ldrb r0, [r4, #0xa]
- cmp r0, #2
- beq _0801EBDE
- bl Random
- movs r1, #3
- ands r0, r1
-_0801EBDE:
- strb r0, [r4, #0x14]
- movs r0, #0x12
- strb r0, [r4, #0x1c]
- adds r0, r4, #0
- bl sub_0801ECFC
- ldrb r1, [r4, #0x14]
- adds r0, r4, #0
- bl UpdateSprite
- pop {r4, pc}
-
- thumb_func_start sub_0801EBF4
-sub_0801EBF4: @ 0x0801EBF4
- push {r4, lr}
- adds r4, r0, #0
- ldrb r0, [r4, #0xe]
- subs r0, #1
- strb r0, [r4, #0xe]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _0801EC1E
- movs r0, #2
- strb r0, [r4, #0xc]
- bl Random
- ldr r2, _0801EC28 @ =gUnk_080CA170
- movs r1, #3
- ands r1, r0
- adds r1, r1, r2
- ldrb r0, [r1]
- strb r0, [r4, #0xe]
- adds r0, r4, #0
- bl sub_0801ED14
-_0801EC1E:
- adds r0, r4, #0
- bl sub_08004274
- pop {r4, pc}
- .align 2, 0
-_0801EC28: .4byte gUnk_080CA170
-
- thumb_func_start sub_0801EC2C
-sub_0801EC2C: @ 0x0801EC2C
- push {r4, r5, lr}
- adds r5, r0, #0
- bl sub_080AEF88
- adds r0, r5, #0
- bl sub_08004274
- ldrb r0, [r5, #0xe]
- subs r0, #1
- strb r0, [r5, #0xe]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _0801EC7E
- adds r0, r5, #0
- bl sub_0801EDEC
- cmp r0, #0
- beq _0801EC78
- ldr r1, _0801EC74 @ =gUnk_080CA174
- ldrb r0, [r5, #0xa]
- adds r0, r0, r1
- ldrb r4, [r0]
- bl Random
- movs r1, #3
- ands r0, r1
- cmp r4, r0
- bhi _0801EC78
- strb r1, [r5, #0xc]
- ldrb r1, [r5, #0x14]
- adds r1, #4
- adds r0, r5, #0
- bl UpdateSprite
- b _0801EC7E
- .align 2, 0
-_0801EC74: .4byte gUnk_080CA174
-_0801EC78:
- adds r0, r5, #0
- bl sub_0801ECFC
-_0801EC7E:
- pop {r4, r5, pc}
-
- thumb_func_start sub_0801EC80
-sub_0801EC80: @ 0x0801EC80
- push {r4, r5, lr}
- adds r4, r0, #0
- bl sub_08004274
- adds r5, r4, #0
- adds r5, #0x5a
- ldrb r1, [r5]
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- beq _0801ECD8
- adds r0, r4, #0
- movs r1, #1
- movs r2, #0
- bl sub_0804A98C
- adds r2, r0, #0
- cmp r2, #0
- beq _0801ECD8
- ldrb r0, [r4, #0x15]
- strb r0, [r2, #0x15]
- ldrb r1, [r4, #0x15]
- lsrs r1, r1, #2
- ldr r0, _0801ECF0 @ =gUnk_080CA176
- adds r1, r1, r0
- movs r0, #0
- ldrsb r0, [r1, r0]
- ldrh r3, [r2, #0x2e]
- adds r0, r0, r3
- strh r0, [r2, #0x2e]
- movs r0, #1
- ldrsb r0, [r1, r0]
- ldrh r1, [r2, #0x32]
- adds r0, r0, r1
- strh r0, [r2, #0x32]
- ldr r0, _0801ECF4 @ =0x0000FFFD
- strh r0, [r2, #0x36]
- ldrb r1, [r5]
- movs r0, #0xfe
- ands r0, r1
- strb r0, [r5]
- ldr r0, _0801ECF8 @ =0x0000018D
- bl sub_08004488
-_0801ECD8:
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _0801ECEC
- adds r0, r4, #0
- bl sub_0801ECFC
-_0801ECEC:
- pop {r4, r5, pc}
- .align 2, 0
-_0801ECF0: .4byte gUnk_080CA176
-_0801ECF4: .4byte 0x0000FFFD
-_0801ECF8: .4byte 0x0000018D
-
- thumb_func_start sub_0801ECFC
-sub_0801ECFC: @ 0x0801ECFC
- push {r4, lr}
- adds r4, r0, #0
- movs r0, #1
- strb r0, [r4, #0xc]
- bl Random
- movs r1, #0x38
- ands r0, r1
- adds r0, #0x18
- strb r0, [r4, #0xe]
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_0801ED14
-sub_0801ED14: @ 0x0801ED14
- push {r4, r5, lr}
- adds r5, r0, #0
- ldrb r0, [r5, #0xa]
- cmp r0, #2
- beq _0801ED7E
- adds r0, r5, #0
- bl sub_08049FA0
- cmp r0, #0
- beq _0801ED4C
- ldrb r0, [r5, #0xa]
- cmp r0, #1
- bne _0801ED46
- bl Random
- movs r1, #3
- ands r1, r0
- cmp r1, #0
- bne _0801ED46
- adds r0, r5, #0
- movs r1, #1
- bl sub_08049FDC
- cmp r0, #0
- bne _0801EDC4
-_0801ED46:
- bl Random
- b _0801EDD0
-_0801ED4C:
- bl Random
- movs r1, #3
- ands r1, r0
- cmp r1, #0
- beq _0801ED78
- adds r0, r5, #0
- bl sub_08049EE4
- adds r4, r0, #0
- bl Random
- ldr r2, _0801ED74 @ =gUnk_080CA17E
- movs r1, #1
- ands r1, r0
- adds r1, r1, r2
- ldrb r0, [r1]
- adds r0, r0, r4
- b _0801EDD0
- .align 2, 0
-_0801ED74: .4byte gUnk_080CA17E
-_0801ED78:
- bl Random
- b _0801EDD0
-_0801ED7E:
- adds r0, r5, #0
- movs r1, #1
- bl sub_08049FDC
- cmp r0, #0
- bne _0801EDC4
- adds r0, r5, #0
- bl sub_08049FA0
- cmp r0, #0
- beq _0801ED9A
- bl Random
- b _0801EDD0
-_0801ED9A:
- bl Random
- movs r1, #3
- ands r1, r0
- cmp r1, #0
- beq _0801EDC4
- adds r0, r5, #0
- bl sub_08049EE4
- adds r4, r0, #0
- bl Random
- ldr r2, _0801EDC0 @ =gUnk_080CA17E
- movs r1, #1
- ands r1, r0
- adds r1, r1, r2
- ldrb r0, [r1]
- adds r0, r0, r4
- b _0801EDD0
- .align 2, 0
-_0801EDC0: .4byte gUnk_080CA17E
-_0801EDC4:
- ldr r0, _0801EDE8 @ =gUnk_020000B0
- ldr r1, [r0]
- adds r0, r5, #0
- bl sub_080045C4
- adds r0, #4
-_0801EDD0:
- movs r1, #0x18
- ands r0, r1
- strb r0, [r5, #0x15]
- ldrb r0, [r5, #0x15]
- lsrs r0, r0, #3
- strb r0, [r5, #0x14]
- ldrb r1, [r5, #0x14]
- adds r0, r5, #0
- bl UpdateSprite
- pop {r4, r5, pc}
- .align 2, 0
-_0801EDE8: .4byte gUnk_020000B0
-
- thumb_func_start sub_0801EDEC
-sub_0801EDEC: @ 0x0801EDEC
- push {r4, lr}
- adds r4, r0, #0
- movs r0, #1
- bl sub_08049DF4
- adds r1, r0, #0
- cmp r1, #0
- beq _0801EE12
- adds r0, r4, #0
- bl sub_080045C4
- adds r0, #4
- movs r1, #0x18
- ands r0, r1
- ldrb r4, [r4, #0x15]
- cmp r0, r4
- bne _0801EE12
- movs r0, #1
- b _0801EE14
-_0801EE12:
- movs r0, #0
-_0801EE14:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_0801EE18
-sub_0801EE18: @ 0x0801EE18
- push {r4, r5, lr}
- adds r5, r0, #0
- bl sub_080012DC
- adds r4, r0, #0
- cmp r4, #0
- beq _0801EE9E
- cmp r4, #2
- beq _0801EE40
- ldr r0, _0801EE3C @ =gUnk_080012C8
- lsls r1, r4, #2
- adds r1, r1, r0
- ldr r1, [r1]
- adds r0, r5, #0
- bl _call_via_r1
- b _0801EEE0
- .align 2, 0
-_0801EE3C: .4byte gUnk_080012C8
-_0801EE40:
- adds r2, r5, #0
- adds r2, #0x3a
- ldrb r1, [r2]
- movs r0, #0xfe
- ands r0, r1
- strb r0, [r2]
- adds r0, r5, #0
- adds r0, #0x81
- ldrb r0, [r0]
- cmp r4, r0
- beq _0801EE9E
- ldrb r0, [r5, #0xa]
- cmp r0, #1
- beq _0801EE9E
- cmp r0, #1
- bgt _0801EE66
- cmp r0, #0
- beq _0801EE6C
- b _0801EE9E
-_0801EE66:
- cmp r0, #2
- beq _0801EE96
- b _0801EE9E
-_0801EE6C:
- ldrb r1, [r5, #0x10]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _0801EE9E
- movs r0, #6
- strb r0, [r5, #0xc]
- movs r0, #0x7f
- ands r0, r1
- strb r0, [r5, #0x10]
- movs r0, #0x20
- strh r0, [r5, #0x24]
- adds r1, r5, #0
- adds r1, #0x3f
- movs r0, #0x5c
- strb r0, [r1]
- adds r0, r5, #0
- movs r1, #5
- bl UpdateSprite
- b _0801EE9E
-_0801EE96:
- adds r0, r5, #0
- bl sub_080043A8
- b _0801EEE0
-_0801EE9E:
- adds r0, r5, #0
- adds r0, #0x81
- strb r4, [r0]
- ldr r4, _0801EED0 @ =gUnk_080CA21C
- adds r0, r5, #0
- bl sub_0800279C
- lsls r0, r0, #2
- adds r0, r0, r4
- ldr r1, [r0]
- adds r0, r5, #0
- bl _call_via_r1
- ldr r0, [r5, #0x68]
- ldrb r0, [r0, #0xa]
- cmp r0, #0x1c
- bne _0801EED4
- movs r3, #0x10
- rsbs r3, r3, #0
- adds r0, r5, #0
- movs r1, #0
- movs r2, #1
- bl sub_0804A9AC
- b _0801EEE0
- .align 2, 0
-_0801EED0: .4byte gUnk_080CA21C
-_0801EED4:
- ldrb r0, [r5, #0xa]
- cmp r0, #2
- bne _0801EEE0
- adds r0, r5, #0
- bl sub_0801FB34
-_0801EEE0:
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start sub_0801EEE4
-sub_0801EEE4: @ 0x0801EEE4
- push {r4, lr}
- adds r4, r0, #0
- ldrb r0, [r4, #0xa]
- cmp r0, #1
- beq _0801EF0C
- cmp r0, #1
- bgt _0801EEF8
- cmp r0, #0
- beq _0801EEFE
- b _0801EF38
-_0801EEF8:
- cmp r0, #2
- beq _0801EF28
- b _0801EF38
-_0801EEFE:
- adds r0, r4, #0
- bl sub_0801F3AC
- ldr r0, _0801EF08 @ =gUnk_080CA234
- b _0801EF14
- .align 2, 0
-_0801EF08: .4byte gUnk_080CA234
-_0801EF0C:
- adds r0, r4, #0
- bl sub_0801F764
- ldr r0, _0801EF24 @ =gUnk_080CA25C
-_0801EF14:
- ldrb r1, [r4, #0xc]
- lsls r1, r1, #2
- adds r1, r1, r0
- ldr r1, [r1]
- adds r0, r4, #0
- bl _call_via_r1
- b _0801EF38
- .align 2, 0
-_0801EF24: .4byte gUnk_080CA25C
-_0801EF28:
- ldr r0, _0801EF3C @ =gUnk_080CA288
- ldrb r1, [r4, #0xc]
- lsls r1, r1, #2
- adds r1, r1, r0
- ldr r1, [r1]
- adds r0, r4, #0
- bl _call_via_r1
-_0801EF38:
- pop {r4, pc}
- .align 2, 0
-_0801EF3C: .4byte gUnk_080CA288
-
- thumb_func_start sub_0801EF40
-sub_0801EF40: @ 0x0801EF40
- push {r4, r5, r6, r7, lr}
- adds r4, r0, #0
- ldrb r0, [r4, #0xa]
- cmp r0, #2
- bne _0801EF68
- adds r0, r4, #0
- adds r0, #0x41
- ldrb r0, [r0]
- cmp r0, #0x8e
- beq _0801EF58
- cmp r0, #0x95
- bne _0801EF68
-_0801EF58:
- ldrb r0, [r4, #0x10]
- movs r1, #0x7f
- ands r1, r0
- movs r0, #0
- strb r1, [r4, #0x10]
- adds r1, r4, #0
- adds r1, #0x45
- strb r0, [r1]
-_0801EF68:
- adds r0, r4, #0
- adds r0, #0x45
- ldrb r6, [r0]
- adds r7, r0, #0
- cmp r6, #0
- beq _0801EFB0
- subs r0, #4
- ldrb r0, [r0]
- cmp r0, #0x94
- bne _0801EF94
- adds r0, r4, #0
- bl sub_0801FB68
- adds r0, r4, #0
- movs r1, #0x1c
- bl sub_0804A9FC
- adds r0, r4, #0
- movs r1, #6
- bl UpdateSprite
- b _0801EFC0
-_0801EF94:
- adds r0, r4, #0
- adds r0, #0x80
- ldrb r1, [r0]
- adds r5, r0, #0
- cmp r1, r6
- beq _0801EFC4
- adds r0, r4, #0
- bl sub_0801FB68
- adds r0, r4, #0
- movs r1, #6
- bl UpdateSprite
- b _0801EFC4
-_0801EFB0:
- adds r0, r4, #0
- bl sub_0804AA1C
- str r6, [r4, #0x20]
- adds r0, r4, #0
- movs r1, #9
- bl UpdateSprite
-_0801EFC0:
- adds r5, r4, #0
- adds r5, #0x80
-_0801EFC4:
- ldrb r0, [r7]
- strb r0, [r5]
- ldr r1, _0801EFD4 @ =gUnk_080CA21C
- adds r0, r4, #0
- bl sub_0804AA30
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0801EFD4: .4byte gUnk_080CA21C
-
- thumb_func_start sub_0801EFD8
-sub_0801EFD8: @ 0x0801EFD8
- push {r4, lr}
- adds r4, r0, #0
- bl sub_0806F520
- cmp r0, #0
- bne _0801F000
- adds r0, r4, #0
- adds r0, #0x43
- ldrb r0, [r0]
- cmp r0, #0
- beq _0801F000
- adds r0, r4, #0
- movs r1, #0x1c
- bl sub_0804A9FC
- adds r0, r4, #0
- movs r1, #6
- bl UpdateSprite
- b _0801F028
-_0801F000:
- adds r0, r4, #0
- adds r0, #0x58
- ldrb r0, [r0]
- cmp r0, #8
- beq _0801F018
- adds r0, r4, #0
- bl sub_0801FB68
- adds r0, r4, #0
- movs r1, #8
- bl UpdateSprite
-_0801F018:
- movs r1, #0xc0
- lsls r1, r1, #5
- adds r0, r4, #0
- bl sub_08003FC4
- adds r0, r4, #0
- bl sub_08004274
-_0801F028:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_0801F02C
-sub_0801F02C: @ 0x0801F02C
- push {r4, lr}
- adds r4, r0, #0
- adds r0, #0x58
- ldrb r0, [r0]
- cmp r0, #6
- bne _0801F03E
- adds r0, r4, #0
- bl sub_08004274
-_0801F03E:
- adds r0, r4, #0
- bl sub_08001318
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_0801F048
-sub_0801F048: @ 0x0801F048
- push {r4, lr}
- adds r4, r0, #0
- movs r1, #0xc0
- lsls r1, r1, #5
- bl sub_08003FC4
- adds r0, r4, #0
- bl sub_08004274
- ldrb r0, [r4, #0xa]
- cmp r0, #0
- bne _0801F068
- adds r0, r4, #0
- bl sub_0804A7D4
- b _0801F082
-_0801F068:
- cmp r0, #1
- bne _0801F078
- adds r0, r4, #0
- movs r1, #0xf2
- movs r2, #0
- bl sub_0804A7E0
- b _0801F082
-_0801F078:
- adds r0, r4, #0
- movs r1, #0xf1
- movs r2, #0
- bl sub_0804A7E0
-_0801F082:
- pop {r4, pc}
-
- thumb_func_start sub_0801F084
-sub_0801F084: @ 0x0801F084
- push {r4, lr}
- adds r4, r0, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- bne _0801F09A
- adds r0, r4, #0
- bl sub_08004274
-_0801F09A:
- adds r0, r4, #0
- bl sub_08001242
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_0801F0A4
-sub_0801F0A4: @ 0x0801F0A4
- push {r4, lr}
- adds r4, r0, #0
- bl sub_0804A720
- movs r2, #0
- movs r0, #1
- strb r0, [r4, #0xc]
- adds r0, r4, #0
- adds r0, #0x45
- ldrb r1, [r0]
- adds r0, #0x3b
- strb r1, [r0]
- adds r4, #0x82
- strb r2, [r4]
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start nullsub_4
-nullsub_4: @ 0x0801F0C4
- bx lr
- .align 2, 0
-
- thumb_func_start sub_0801F0C8
-sub_0801F0C8: @ 0x0801F0C8
- push {r4, r5, lr}
- adds r5, r0, #0
- bl sub_08004274
- adds r0, r5, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _0801F12A
- movs r4, #3
- movs r0, #3
- strb r0, [r5, #0xc]
- bl Random
- ands r0, r4
- adds r0, #0xc
- strb r0, [r5, #0xe]
- bl Random
- strb r0, [r5, #0xf]
- adds r0, r5, #0
- movs r1, #1
- bl sub_08049F84
- strb r0, [r5, #0x15]
- ldrb r1, [r5, #0x10]
- movs r0, #0x80
- orrs r0, r1
- strb r0, [r5, #0x10]
- adds r2, r5, #0
- adds r2, #0x29
- ldrb r1, [r2]
- movs r0, #8
- rsbs r0, r0, #0
- ands r0, r1
- movs r1, #4
- orrs r0, r1
- movs r1, #0x39
- rsbs r1, r1, #0
- ands r0, r1
- movs r1, #0x18
- orrs r0, r1
- strb r0, [r2]
- adds r0, r5, #0
- movs r1, #2
- bl UpdateSprite
-_0801F12A:
- pop {r4, r5, pc}
-
- thumb_func_start sub_0801F12C
-sub_0801F12C: @ 0x0801F12C
- push {r4, lr}
- adds r4, r0, #0
- bl sub_0801FBD0
- cmp r0, #0
- beq _0801F140
- adds r0, r4, #0
- bl sub_0801F328
- b _0801F1AC
-_0801F140:
- ldrb r1, [r4, #0xf]
- adds r0, r1, #1
- strb r0, [r4, #0xf]
- movs r0, #7
- ands r0, r1
- cmp r0, #0
- bne _0801F158
- adds r0, r4, #0
- movs r1, #1
- bl sub_08049F84
- strb r0, [r4, #0x15]
-_0801F158:
- adds r0, r4, #0
- bl sub_080AEF88
- adds r0, r4, #0
- bl sub_08004274
- ldrb r0, [r4, #0xe]
- subs r0, #1
- strb r0, [r4, #0xe]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _0801F1AC
- adds r0, r4, #0
- movs r1, #1
- movs r2, #0x38
- bl sub_08049F64
- cmp r0, #0
- beq _0801F18A
- movs r0, #4
- strb r0, [r4, #0xc]
- adds r0, r4, #0
- bl sub_0801FBE4
- b _0801F1AC
-_0801F18A:
- adds r0, r4, #0
- movs r1, #1
- movs r2, #0x48
- bl sub_08049F64
- cmp r0, #0
- beq _0801F1A6
- bl Random
- movs r1, #3
- ands r0, r1
- adds r0, #0xc
- strb r0, [r4, #0xe]
- b _0801F1AC
-_0801F1A6:
- adds r0, r4, #0
- bl sub_0801F328
-_0801F1AC:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_0801F1B0
-sub_0801F1B0: @ 0x0801F1B0
- push {r4, lr}
- adds r4, r0, #0
- adds r2, r4, #0
- adds r2, #0x5a
- ldrb r1, [r2]
- movs r0, #0x10
- ands r0, r1
- cmp r0, #0
- beq _0801F1FA
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- beq _0801F1DE
- movs r0, #1
- eors r0, r1
- strb r0, [r2]
- adds r1, r4, #0
- adds r1, #0x3f
- movs r0, #0x5a
- strb r0, [r1]
- adds r0, #0xd1
- bl sub_08004488
-_0801F1DE:
- adds r0, r4, #0
- bl sub_080AEFE0
- movs r1, #0x80
- lsls r1, r1, #7
- adds r0, r4, #0
- bl sub_08003FC4
- cmp r0, #0
- bne _0801F200
- adds r0, r4, #0
- bl sub_08004274
- b _0801F200
-_0801F1FA:
- adds r0, r4, #0
- bl sub_08004274
-_0801F200:
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _0801F226
- adds r0, r4, #0
- bl sub_0801FBD0
- cmp r0, #0
- beq _0801F220
- adds r0, r4, #0
- bl sub_0801F328
- b _0801F226
-_0801F220:
- adds r0, r4, #0
- bl sub_0801F340
-_0801F226:
- pop {r4, pc}
-
- thumb_func_start sub_0801F228
-sub_0801F228: @ 0x0801F228
- push {r4, lr}
- adds r4, r0, #0
- ldrb r0, [r4, #0xe]
- subs r0, #1
- strb r0, [r4, #0xe]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _0801F246
- movs r0, #3
- strb r0, [r4, #0xc]
- adds r0, r4, #0
- movs r1, #1
- bl sub_08049F84
- strb r0, [r4, #0x15]
-_0801F246:
- adds r0, r4, #0
- bl sub_08004274
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_0801F250
-sub_0801F250: @ 0x0801F250
- push {r4, lr}
- adds r4, r0, #0
- bl sub_08004274
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _0801F26C
- adds r0, r4, #0
- bl sub_0801F360
-_0801F26C:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_0801F270
-sub_0801F270: @ 0x0801F270
- push {r4, lr}
- adds r4, r0, #0
- ldrb r1, [r4, #0xf]
- adds r0, r1, #1
- strb r0, [r4, #0xf]
- movs r0, #7
- ands r0, r1
- cmp r0, #0
- bne _0801F28C
- adds r0, r4, #0
- movs r1, #1
- bl sub_08049F84
- strb r0, [r4, #0x15]
-_0801F28C:
- adds r0, r4, #0
- bl sub_080AF160
- adds r0, r4, #0
- bl sub_08004274
- adds r0, r4, #0
- bl sub_0801FBD0
- cmp r0, #0
- bne _0801F2CA
- ldrb r0, [r4, #0xe]
- subs r0, #1
- strb r0, [r4, #0xe]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _0801F2CA
- adds r0, r4, #0
- adds r0, #0x81
- ldrb r0, [r0]
- cmp r0, #0
- bne _0801F2C6
- movs r0, #2
- strb r0, [r4, #0xc]
- adds r0, r4, #0
- movs r1, #4
- bl UpdateSprite
- b _0801F2CA
-_0801F2C6:
- movs r0, #8
- strb r0, [r4, #0xe]
-_0801F2CA:
- pop {r4, pc}
-
- thumb_func_start sub_0801F2CC
-sub_0801F2CC: @ 0x0801F2CC
- push {r4, lr}
- adds r4, r0, #0
- bl sub_08004274
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _0801F2F6
- movs r0, #1
- strb r0, [r4, #0xc]
- ldrb r1, [r4, #0x18]
- subs r0, #5
- ands r0, r1
- strb r0, [r4, #0x18]
- adds r0, r4, #0
- movs r1, #4
- bl UpdateSprite
-_0801F2F6:
- pop {r4, pc}
-
- thumb_func_start sub_0801F2F8
-sub_0801F2F8: @ 0x0801F2F8
- push {r4, lr}
- adds r4, r0, #0
- movs r1, #0xc0
- lsls r1, r1, #5
- bl sub_08003FC4
- adds r0, r4, #0
- bl sub_08004274
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _0801F324
- adds r0, r4, #0
- bl sub_0801F340
- adds r0, r4, #0
- bl sub_0804AA1C
-_0801F324:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_0801F328
-sub_0801F328: @ 0x0801F328
- push {lr}
- movs r1, #6
- strb r1, [r0, #0xc]
- ldrb r2, [r0, #0x10]
- movs r1, #0x7f
- ands r1, r2
- strb r1, [r0, #0x10]
- movs r1, #5
- bl UpdateSprite
- pop {pc}
- .align 2, 0
-
- thumb_func_start sub_0801F340
-sub_0801F340: @ 0x0801F340
- push {lr}
- movs r1, #5
- strb r1, [r0, #0xc]
- movs r1, #0x3c
- strb r1, [r0, #0xe]
- movs r1, #0x20
- strh r1, [r0, #0x24]
- adds r2, r0, #0
- adds r2, #0x3f
- movs r1, #0x5c
- strb r1, [r2]
- movs r1, #2
- bl UpdateSprite
- pop {pc}
- .align 2, 0
-
- thumb_func_start sub_0801F360
-sub_0801F360: @ 0x0801F360
- push {r4, lr}
- adds r4, r0, #0
- movs r0, #7
- strb r0, [r4, #0xc]
- bl Random
- movs r1, #0x38
- ands r0, r1
- adds r0, #0xb4
- strb r0, [r4, #0xe]
- bl Random
- strb r0, [r4, #0xf]
- adds r0, r4, #0
- movs r1, #1
- bl sub_08049F84
- strb r0, [r4, #0x15]
- adds r2, r4, #0
- adds r2, #0x29
- ldrb r1, [r2]
- movs r0, #0x39
- rsbs r0, r0, #0
- ands r0, r1
- movs r1, #0x10
- orrs r0, r1
- movs r1, #8
- rsbs r1, r1, #0
- ands r0, r1
- movs r1, #6
- orrs r0, r1
- strb r0, [r2]
- adds r0, r4, #0
- movs r1, #1
- bl UpdateSprite
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_0801F3AC
-sub_0801F3AC: @ 0x0801F3AC
- push {r4, r5, lr}
- adds r4, r0, #0
- ldrb r0, [r4, #0xc]
- cmp r0, #9
- beq _0801F426
- cmp r0, #0
- beq _0801F426
- adds r0, r4, #0
- movs r1, #1
- bl sub_08049FDC
- cmp r0, #0
- beq _0801F408
- adds r5, r4, #0
- adds r5, #0x82
- ldrb r0, [r5]
- cmp r0, #0
- bne _0801F3DE
- adds r0, r4, #0
- movs r1, #1
- movs r2, #0x48
- bl sub_08049F64
- cmp r0, #0
- beq _0801F400
-_0801F3DE:
- ldrb r2, [r4, #0xc]
- cmp r2, #1
- bne _0801F426
- movs r0, #2
- strb r0, [r4, #0xc]
- ldrb r1, [r4, #0x18]
- subs r0, #6
- ands r0, r1
- movs r1, #1
- orrs r0, r1
- strb r0, [r4, #0x18]
- strb r2, [r5]
- adds r0, r4, #0
- movs r1, #0
- bl UpdateSprite
- b _0801F426
-_0801F400:
- ldrb r0, [r4, #0xc]
- cmp r0, #3
- bne _0801F426
- b _0801F40E
-_0801F408:
- ldrb r0, [r4, #0xc]
- cmp r0, #3
- bne _0801F416
-_0801F40E:
- adds r0, r4, #0
- bl sub_0801F328
- b _0801F426
-_0801F416:
- cmp r0, #7
- bne _0801F426
- movs r0, #8
- strb r0, [r4, #0xc]
- adds r0, r4, #0
- movs r1, #7
- bl UpdateSprite
-_0801F426:
- pop {r4, r5, pc}
-
- thumb_func_start sub_0801F428
-sub_0801F428: @ 0x0801F428
- push {r4, r5, lr}
- adds r5, r0, #0
- bl sub_0804A720
- movs r4, #0
- movs r0, #1
- strb r0, [r5, #0xc]
- bl Random
- strb r0, [r5, #0xe]
- adds r0, r5, #0
- adds r0, #0x45
- ldrb r1, [r0]
- adds r0, #0x3b
- strb r1, [r0]
- adds r0, #2
- strb r4, [r0]
- ldrb r0, [r5, #0xb]
- cmp r0, #0
- beq _0801F488
- movs r0, #3
- strb r0, [r5, #0xc]
- movs r0, #0x1e
- strb r0, [r5, #0xf]
- ldrb r0, [r5, #0x10]
- movs r1, #0x80
- orrs r0, r1
- strb r0, [r5, #0x10]
- adds r2, r5, #0
- adds r2, #0x29
- ldrb r1, [r2]
- movs r0, #0x39
- rsbs r0, r0, #0
- ands r0, r1
- movs r1, #0x18
- orrs r0, r1
- strb r0, [r2]
- ldrb r1, [r5, #0x18]
- movs r0, #4
- rsbs r0, r0, #0
- ands r0, r1
- movs r1, #1
- orrs r0, r1
- strb r0, [r5, #0x18]
- adds r0, r5, #0
- movs r1, #2
- bl UpdateSprite
-_0801F488:
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start sub_0801F48C
-sub_0801F48C: @ 0x0801F48C
- push {lr}
- bl sub_08004274
- pop {pc}
-
- thumb_func_start sub_0801F494
-sub_0801F494: @ 0x0801F494
- push {r4, lr}
- adds r4, r0, #0
- bl sub_08004274
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _0801F4E8
- movs r0, #3
- strb r0, [r4, #0xc]
- movs r0, #0x1e
- strb r0, [r4, #0xf]
- adds r0, r4, #0
- movs r1, #1
- bl sub_08049F84
- strb r0, [r4, #0x15]
- ldrb r1, [r4, #0x10]
- movs r0, #0x80
- orrs r0, r1
- strb r0, [r4, #0x10]
- adds r2, r4, #0
- adds r2, #0x29
- ldrb r1, [r2]
- movs r0, #8
- rsbs r0, r0, #0
- ands r0, r1
- movs r1, #4
- orrs r0, r1
- movs r1, #0x39
- rsbs r1, r1, #0
- ands r0, r1
- movs r1, #0x18
- orrs r0, r1
- strb r0, [r2]
- adds r0, r4, #0
- movs r1, #2
- bl UpdateSprite
-_0801F4E8:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_0801F4EC
-sub_0801F4EC: @ 0x0801F4EC
- push {r4, lr}
- adds r4, r0, #0
- bl sub_08004274
- ldrb r0, [r4, #0xf]
- subs r0, #1
- strb r0, [r4, #0xf]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _0801F504
- movs r0, #4
- strb r0, [r4, #0xc]
-_0801F504:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_0801F508
-sub_0801F508: @ 0x0801F508
- push {r4, r5, lr}
- adds r4, r0, #0
- bl sub_0801FBD0
- cmp r0, #0
- beq _0801F51C
- adds r1, r4, #0
- adds r1, #0x83
- movs r0, #0
- b _0801F55C
-_0801F51C:
- ldrb r0, [r4, #0xe]
- adds r0, #1
- strb r0, [r4, #0xe]
- movs r1, #0xff
- adds r5, r0, #0
- ands r5, r1
- movs r0, #7
- ands r5, r0
- cmp r5, #0
- bne _0801F566
- adds r0, r4, #0
- movs r1, #1
- movs r2, #0x38
- bl sub_08049F64
- cmp r0, #0
- beq _0801F566
- bl Random
- movs r1, #1
- ands r1, r0
- cmp r1, #0
- beq _0801F556
- movs r0, #5
- strb r0, [r4, #0xc]
- adds r0, r4, #0
- bl sub_0801FBE4
- b _0801F580
-_0801F556:
- adds r1, r4, #0
- adds r1, #0x83
- movs r0, #0x78
-_0801F55C:
- strb r0, [r1]
- adds r0, r4, #0
- bl sub_0801F730
- b _0801F580
-_0801F566:
- cmp r5, #4
- bne _0801F574
- adds r0, r4, #0
- movs r1, #1
- bl sub_08049F84
- strb r0, [r4, #0x15]
-_0801F574:
- adds r0, r4, #0
- bl sub_080AEF88
- adds r0, r4, #0
- bl sub_08004274
-_0801F580:
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start sub_0801F584
-sub_0801F584: @ 0x0801F584
- push {r4, lr}
- adds r4, r0, #0
- adds r2, r4, #0
- adds r2, #0x5a
- ldrb r1, [r2]
- movs r0, #0x10
- ands r0, r1
- cmp r0, #0
- beq _0801F5CE
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- beq _0801F5B2
- movs r0, #1
- eors r0, r1
- strb r0, [r2]
- adds r1, r4, #0
- adds r1, #0x3f
- movs r0, #0x5b
- strb r0, [r1]
- adds r0, #0xd0
- bl sub_08004488
-_0801F5B2:
- adds r0, r4, #0
- bl sub_080AEFE0
- movs r1, #0x80
- lsls r1, r1, #7
- adds r0, r4, #0
- bl sub_08003FC4
- cmp r0, #0
- bne _0801F5D4
- adds r0, r4, #0
- bl sub_08004274
- b _0801F5D4
-_0801F5CE:
- adds r0, r4, #0
- bl sub_08004274
-_0801F5D4:
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _0801F618
- adds r0, r4, #0
- bl sub_0801FBD0
- cmp r0, #0
- beq _0801F5FC
- adds r1, r4, #0
- adds r1, #0x83
- movs r0, #0
- strb r0, [r1]
- adds r0, r4, #0
- bl sub_0801F730
- b _0801F618
-_0801F5FC:
- movs r0, #6
- strb r0, [r4, #0xc]
- movs r0, #0x3c
- strb r0, [r4, #0xf]
- movs r0, #0x20
- strh r0, [r4, #0x24]
- adds r1, r4, #0
- adds r1, #0x3f
- movs r0, #0x5c
- strb r0, [r1]
- adds r0, r4, #0
- movs r1, #2
- bl UpdateSprite
-_0801F618:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_0801F61C
-sub_0801F61C: @ 0x0801F61C
- push {lr}
- adds r1, r0, #0
- ldrb r0, [r1, #0xf]
- subs r0, #1
- strb r0, [r1, #0xf]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _0801F630
- movs r0, #4
- strb r0, [r1, #0xc]
-_0801F630:
- adds r0, r1, #0
- bl sub_08004274
- pop {pc}
-
- thumb_func_start sub_0801F638
-sub_0801F638: @ 0x0801F638
- push {r4, lr}
- adds r4, r0, #0
- bl sub_08004274
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _0801F684
- movs r0, #8
- strb r0, [r4, #0xc]
- movs r0, #0x1e
- strb r0, [r4, #0xf]
- adds r0, r4, #0
- movs r1, #1
- bl sub_08049F84
- strb r0, [r4, #0x15]
- adds r2, r4, #0
- adds r2, #0x29
- ldrb r1, [r2]
- movs r0, #0x39
- rsbs r0, r0, #0
- ands r0, r1
- movs r1, #0x10
- orrs r0, r1
- movs r1, #8
- rsbs r1, r1, #0
- ands r0, r1
- movs r1, #6
- orrs r0, r1
- strb r0, [r2]
- adds r0, r4, #0
- movs r1, #1
- bl UpdateSprite
-_0801F684:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_0801F688
-sub_0801F688: @ 0x0801F688
- push {r4, r5, lr}
- adds r4, r0, #0
- adds r5, r4, #0
- adds r5, #0x83
- ldrb r0, [r5]
- cmp r0, #0
- beq _0801F69A
- subs r0, #1
- strb r0, [r5]
-_0801F69A:
- adds r0, r4, #0
- bl sub_0801FBD0
- cmp r0, #0
- bne _0801F6AA
- ldrb r0, [r5]
- cmp r0, #0
- beq _0801F6C2
-_0801F6AA:
- adds r0, r4, #0
- movs r1, #1
- bl sub_08049F84
- strb r0, [r4, #0x15]
- adds r0, r4, #0
- bl sub_080AF160
- adds r0, r4, #0
- bl sub_08004274
- b _0801F6C8
-_0801F6C2:
- adds r0, r4, #0
- bl sub_0801F748
-_0801F6C8:
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start sub_0801F6CC
-sub_0801F6CC: @ 0x0801F6CC
- push {r4, lr}
- adds r4, r0, #0
- bl sub_08004274
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _0801F6F6
- movs r0, #1
- strb r0, [r4, #0xc]
- ldrb r1, [r4, #0x18]
- subs r0, #5
- ands r0, r1
- strb r0, [r4, #0x18]
- adds r0, r4, #0
- movs r1, #4
- bl UpdateSprite
-_0801F6F6:
- pop {r4, pc}
-
- thumb_func_start sub_0801F6F8
-sub_0801F6F8: @ 0x0801F6F8
- push {r4, lr}
- adds r4, r0, #0
- movs r1, #0xc0
- lsls r1, r1, #5
- bl sub_08003FC4
- adds r0, r4, #0
- bl sub_08004274
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _0801F72E
- movs r0, #4
- strb r0, [r4, #0xc]
- movs r0, #0x20
- strh r0, [r4, #0x24]
- adds r0, r4, #0
- bl sub_0804AA1C
- adds r0, r4, #0
- movs r1, #2
- bl UpdateSprite
-_0801F72E:
- pop {r4, pc}
-
- thumb_func_start sub_0801F730
-sub_0801F730: @ 0x0801F730
- push {lr}
- movs r1, #7
- strb r1, [r0, #0xc]
- ldrb r2, [r0, #0x10]
- movs r1, #0x7f
- ands r1, r2
- strb r1, [r0, #0x10]
- movs r1, #5
- bl UpdateSprite
- pop {pc}
- .align 2, 0
-
- thumb_func_start sub_0801F748
-sub_0801F748: @ 0x0801F748
- push {lr}
- movs r1, #2
- strb r1, [r0, #0xc]
- ldrb r2, [r0, #0x18]
- subs r1, #6
- ands r1, r2
- movs r2, #1
- orrs r1, r2
- strb r1, [r0, #0x18]
- movs r1, #4
- bl UpdateSprite
- pop {pc}
- .align 2, 0
-
- thumb_func_start sub_0801F764
-sub_0801F764: @ 0x0801F764
- push {r4, r5, r6, lr}
- adds r4, r0, #0
- ldrb r0, [r4, #0xc]
- cmp r0, #0xa
- beq _0801F7D6
- cmp r0, #0
- beq _0801F7D6
- adds r0, r4, #0
- movs r1, #1
- bl sub_08049FDC
- cmp r0, #0
- beq _0801F7B8
- ldrb r6, [r4, #0xc]
- cmp r6, #1
- bne _0801F7D6
- adds r5, r4, #0
- adds r5, #0x82
- ldrb r0, [r5]
- cmp r0, #0
- bne _0801F79C
- adds r0, r4, #0
- movs r1, #1
- movs r2, #0x48
- bl sub_08049F64
- cmp r0, #0
- beq _0801F7D6
-_0801F79C:
- movs r0, #2
- strb r0, [r4, #0xc]
- ldrb r1, [r4, #0x18]
- subs r0, #6
- ands r0, r1
- movs r1, #1
- orrs r0, r1
- strb r0, [r4, #0x18]
- strb r6, [r5]
- adds r0, r4, #0
- movs r1, #0
- bl UpdateSprite
- b _0801F7D6
-_0801F7B8:
- ldrb r0, [r4, #0xc]
- cmp r0, #4
- bne _0801F7C6
- adds r0, r4, #0
- bl sub_0801F730
- b _0801F7D6
-_0801F7C6:
- cmp r0, #8
- bne _0801F7D6
- movs r0, #9
- strb r0, [r4, #0xc]
- adds r0, r4, #0
- movs r1, #7
- bl UpdateSprite
-_0801F7D6:
- pop {r4, r5, r6, pc}
-
- thumb_func_start sub_0801F7D8
-sub_0801F7D8: @ 0x0801F7D8
- push {r4, r5, lr}
- adds r4, r0, #0
- bl sub_0804A720
- movs r5, #0
- movs r0, #1
- strb r0, [r4, #0xc]
- bl Random
- strb r0, [r4, #0xe]
- adds r0, r4, #0
- adds r0, #0x45
- ldrb r1, [r0]
- adds r0, #0x3b
- strb r1, [r0]
- adds r4, #0x82
- strb r5, [r4]
- pop {r4, r5, pc}
-
- thumb_func_start sub_0801F7FC
-sub_0801F7FC: @ 0x0801F7FC
- push {r4, r5, lr}
- adds r4, r0, #0
- movs r1, #1
- bl sub_08049FDC
- cmp r0, #0
- beq _0801F83E
- adds r5, r4, #0
- adds r5, #0x82
- ldrb r0, [r5]
- cmp r0, #0
- bne _0801F822
- adds r0, r4, #0
- movs r1, #1
- movs r2, #0x48
- bl sub_08049F64
- cmp r0, #0
- beq _0801F83E
-_0801F822:
- movs r0, #2
- strb r0, [r4, #0xc]
- ldrb r1, [r4, #0x18]
- subs r0, #6
- ands r0, r1
- movs r1, #1
- orrs r0, r1
- strb r0, [r4, #0x18]
- movs r0, #1
- strb r0, [r5]
- adds r0, r4, #0
- movs r1, #0
- bl UpdateSprite
-_0801F83E:
- pop {r4, r5, pc}
-
- thumb_func_start sub_0801F840
-sub_0801F840: @ 0x0801F840
- push {r4, lr}
- adds r4, r0, #0
- bl sub_08004274
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _0801F880
- adds r0, r4, #0
- bl sub_0801FB14
- ldrb r1, [r4, #0x10]
- movs r0, #0x80
- orrs r0, r1
- strb r0, [r4, #0x10]
- adds r2, r4, #0
- adds r2, #0x29
- ldrb r1, [r2]
- movs r0, #8
- rsbs r0, r0, #0
- ands r0, r1
- movs r1, #4
- orrs r0, r1
- movs r1, #0x39
- rsbs r1, r1, #0
- ands r0, r1
- movs r1, #0x18
- orrs r0, r1
- strb r0, [r2]
-_0801F880:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_0801F884
-sub_0801F884: @ 0x0801F884
- push {r4, lr}
- adds r4, r0, #0
- bl sub_08004274
- ldrb r0, [r4, #0xf]
- cmp r0, #0
- beq _0801F898
- subs r0, #1
- strb r0, [r4, #0xf]
- b _0801F8BC
-_0801F898:
- adds r0, r4, #0
- movs r1, #0x1b
- bl sub_0804A9FC
- adds r1, r0, #0
- cmp r1, #0
- beq _0801F8BC
- movs r0, #0x40
- strb r0, [r1, #0xb]
- movs r0, #4
- strb r0, [r4, #0xc]
- adds r1, r4, #0
- adds r1, #0x3f
- movs r0, #0xa5
- strb r0, [r1]
- adds r0, #0xee
- bl sub_08004488
-_0801F8BC:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_0801F8C0
-sub_0801F8C0: @ 0x0801F8C0
- push {r4, r5, lr}
- adds r4, r0, #0
- bl sub_0801FBD0
- cmp r0, #0
- beq _0801F8D4
- adds r0, r4, #0
- bl sub_0801FAE0
- b _0801F938
-_0801F8D4:
- adds r0, r4, #0
- movs r1, #1
- bl sub_08049FDC
- cmp r0, #0
- bne _0801F8E8
- adds r0, r4, #0
- bl sub_0801F730
- b _0801F938
-_0801F8E8:
- ldrb r0, [r4, #0xe]
- adds r0, #1
- strb r0, [r4, #0xe]
- movs r1, #0xff
- adds r5, r0, #0
- ands r5, r1
- movs r0, #7
- ands r5, r0
- cmp r5, #0
- bne _0801F91C
- ldr r0, _0801F918 @ =gUnk_020000B0
- ldr r1, [r0]
- adds r0, r4, #0
- movs r2, #0x38
- bl sub_08049F1C
- cmp r0, #0
- beq _0801F91C
- movs r0, #5
- strb r0, [r4, #0xc]
- adds r0, r4, #0
- bl sub_0801FBE4
- b _0801F938
- .align 2, 0
-_0801F918: .4byte gUnk_020000B0
-_0801F91C:
- cmp r5, #4
- bne _0801F92C
- ldr r0, _0801F93C @ =gUnk_020000B0
- ldr r1, [r0]
- adds r0, r4, #0
- bl sub_080045C4
- strb r0, [r4, #0x15]
-_0801F92C:
- adds r0, r4, #0
- bl sub_080AEF88
- adds r0, r4, #0
- bl sub_08004274
-_0801F938:
- pop {r4, r5, pc}
- .align 2, 0
-_0801F93C: .4byte gUnk_020000B0
-
- thumb_func_start sub_0801F940
-sub_0801F940: @ 0x0801F940
- push {r4, lr}
- adds r4, r0, #0
- adds r2, r4, #0
- adds r2, #0x5a
- ldrb r1, [r2]
- movs r0, #0x10
- ands r0, r1
- cmp r0, #0
- beq _0801F988
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- beq _0801F966
- movs r0, #1
- eors r0, r1
- strb r0, [r2]
- ldr r0, _0801F984 @ =0x0000012B
- bl sub_08004488
-_0801F966:
- adds r0, r4, #0
- bl sub_080AEFE0
- movs r1, #0x80
- lsls r1, r1, #7
- adds r0, r4, #0
- bl sub_08003FC4
- cmp r0, #0
- bne _0801F98E
- adds r0, r4, #0
- bl sub_08004274
- b _0801F98E
- .align 2, 0
-_0801F984: .4byte 0x0000012B
-_0801F988:
- adds r0, r4, #0
- bl sub_08004274
-_0801F98E:
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _0801F9C2
- adds r0, r4, #0
- bl sub_0801FBD0
- cmp r0, #0
- beq _0801F9AE
- adds r0, r4, #0
- bl sub_0801FAE0
- b _0801F9C2
-_0801F9AE:
- movs r0, #6
- strb r0, [r4, #0xc]
- movs r0, #0x3c
- strb r0, [r4, #0xf]
- movs r0, #0x20
- strh r0, [r4, #0x24]
- adds r0, r4, #0
- movs r1, #2
- bl UpdateSprite
-_0801F9C2:
- pop {r4, pc}
-
- thumb_func_start sub_0801F9C4
-sub_0801F9C4: @ 0x0801F9C4
- push {lr}
- adds r1, r0, #0
- ldrb r0, [r1, #0xf]
- subs r0, #1
- strb r0, [r1, #0xf]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _0801F9D8
- movs r0, #4
- strb r0, [r1, #0xc]
-_0801F9D8:
- adds r0, r1, #0
- bl sub_08004274
- pop {pc}
-
- thumb_func_start sub_0801F9E0
-sub_0801F9E0: @ 0x0801F9E0
- push {r4, lr}
- adds r4, r0, #0
- bl sub_08004274
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _0801FA2C
- movs r0, #8
- strb r0, [r4, #0xc]
- movs r0, #0x1e
- strb r0, [r4, #0xf]
- adds r0, r4, #0
- movs r1, #1
- bl sub_08049F84
- strb r0, [r4, #0x15]
- adds r2, r4, #0
- adds r2, #0x29
- ldrb r1, [r2]
- movs r0, #0x39
- rsbs r0, r0, #0
- ands r0, r1
- movs r1, #0x10
- orrs r0, r1
- movs r1, #8
- rsbs r1, r1, #0
- ands r0, r1
- movs r1, #6
- orrs r0, r1
- strb r0, [r2]
- adds r0, r4, #0
- movs r1, #1
- bl UpdateSprite
-_0801FA2C:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_0801FA30
-sub_0801FA30: @ 0x0801FA30
- push {r4, lr}
- adds r4, r0, #0
- bl sub_0801FBD0
- cmp r0, #0
- beq _0801FA54
- adds r0, r4, #0
- movs r1, #1
- bl sub_08049F84
- strb r0, [r4, #0x15]
- adds r0, r4, #0
- bl sub_080AF160
- adds r0, r4, #0
- bl sub_08004274
- b _0801FA74
-_0801FA54:
- adds r0, r4, #0
- movs r1, #1
- bl sub_08049FDC
- cmp r0, #0
- bne _0801FA6E
- movs r0, #9
- strb r0, [r4, #0xc]
- adds r0, r4, #0
- movs r1, #7
- bl UpdateSprite
- b _0801FA74
-_0801FA6E:
- adds r0, r4, #0
- bl sub_0801FAF8
-_0801FA74:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_0801FA78
-sub_0801FA78: @ 0x0801FA78
- push {r4, lr}
- adds r4, r0, #0
- bl sub_08004274
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _0801FAA8
- movs r0, #1
- strb r0, [r4, #0xc]
- ldrb r1, [r4, #0x18]
- subs r0, #5
- ands r0, r1
- strb r0, [r4, #0x18]
- adds r0, r4, #0
- movs r1, #4
- bl UpdateSprite
- adds r0, r4, #0
- bl sub_0804AA1C
-_0801FAA8:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_0801FAAC
-sub_0801FAAC: @ 0x0801FAAC
- push {r4, lr}
- adds r4, r0, #0
- movs r1, #0xc0
- lsls r1, r1, #5
- bl sub_08003FC4
- adds r0, r4, #0
- bl sub_08004274
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _0801FADC
- adds r0, r4, #0
- bl sub_0801FB14
- movs r0, #0x20
- strh r0, [r4, #0x24]
- adds r0, r4, #0
- bl sub_0804AA1C
-_0801FADC:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_0801FAE0
-sub_0801FAE0: @ 0x0801FAE0
- push {lr}
- movs r1, #7
- strb r1, [r0, #0xc]
- ldrb r2, [r0, #0x10]
- movs r1, #0x7f
- ands r1, r2
- strb r1, [r0, #0x10]
- movs r1, #5
- bl UpdateSprite
- pop {pc}
- .align 2, 0
-
- thumb_func_start sub_0801FAF8
-sub_0801FAF8: @ 0x0801FAF8
- push {lr}
- movs r1, #2
- strb r1, [r0, #0xc]
- ldrb r2, [r0, #0x18]
- subs r1, #6
- ands r1, r2
- movs r2, #1
- orrs r1, r2
- strb r1, [r0, #0x18]
- movs r1, #4
- bl UpdateSprite
- pop {pc}
- .align 2, 0
-
- thumb_func_start sub_0801FB14
-sub_0801FB14: @ 0x0801FB14
- push {r4, lr}
- adds r4, r0, #0
- movs r0, #3
- strb r0, [r4, #0xc]
- movs r0, #0x1e
- strb r0, [r4, #0xf]
- adds r0, r4, #0
- movs r1, #1
- bl sub_08049F84
- strb r0, [r4, #0x15]
- adds r0, r4, #0
- movs r1, #2
- bl UpdateSprite
- pop {r4, pc}
-
- thumb_func_start sub_0801FB34
-sub_0801FB34: @ 0x0801FB34
- push {r4, lr}
- adds r4, r0, #0
- ldr r3, [r4, #0x68]
- cmp r3, #0
- beq _0801FB62
- ldr r2, _0801FB64 @ =gUnk_080CA2B4
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0xf
- ands r0, r1
- adds r0, r0, r2
- movs r2, #0
- ldrsb r2, [r0, r2]
- adds r0, r4, #0
- adds r1, r3, #0
- movs r3, #1
- bl sub_0806FA90
- ldr r1, [r4, #0x68]
- adds r1, #0x63
- ldrb r0, [r1]
- subs r0, #1
- strb r0, [r1]
-_0801FB62:
- pop {r4, pc}
- .align 2, 0
-_0801FB64: .4byte gUnk_080CA2B4
-
- thumb_func_start sub_0801FB68
-sub_0801FB68: @ 0x0801FB68
- push {r4, lr}
- adds r4, r0, #0
- ldrb r0, [r4, #0xa]
- cmp r0, #1
- beq _0801FB88
- cmp r0, #1
- bgt _0801FB7C
- cmp r0, #0
- beq _0801FB82
- b _0801FBC8
-_0801FB7C:
- cmp r0, #2
- beq _0801FBB6
- b _0801FBC8
-_0801FB82:
- movs r0, #9
- strb r0, [r4, #0xc]
- b _0801FBC8
-_0801FB88:
- movs r0, #0xa
- strb r0, [r4, #0xc]
- ldrb r1, [r4, #0x10]
- movs r0, #0x80
- orrs r0, r1
- strb r0, [r4, #0x10]
- ldrb r1, [r4, #0x18]
- movs r0, #4
- rsbs r0, r0, #0
- ands r0, r1
- movs r1, #1
- orrs r0, r1
- strb r0, [r4, #0x18]
- adds r2, r4, #0
- adds r2, #0x29
- ldrb r1, [r2]
- movs r0, #0x39
- rsbs r0, r0, #0
- ands r0, r1
- movs r1, #0x18
- orrs r0, r1
- strb r0, [r2]
- b _0801FBC8
-_0801FBB6:
- movs r0, #0xa
- strb r0, [r4, #0xc]
- adds r1, r4, #0
- adds r1, #0x3f
- movs r0, #0x5c
- strb r0, [r1]
- adds r0, r4, #0
- bl sub_0804AA1C
-_0801FBC8:
- movs r0, #0
- str r0, [r4, #0x20]
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_0801FBD0
-sub_0801FBD0: @ 0x0801FBD0
- push {lr}
- bl sub_080002B8
- cmp r0, #0x10
- beq _0801FBDE
- movs r0, #0
- b _0801FBE0
-_0801FBDE:
- movs r0, #1
-_0801FBE0:
- pop {pc}
- .align 2, 0
-
- thumb_func_start sub_0801FBE4
-sub_0801FBE4: @ 0x0801FBE4
- push {r4, lr}
- adds r4, r0, #0
- movs r0, #0xc0
- lsls r0, r0, #1
- strh r0, [r4, #0x24]
- movs r0, #0x80
- lsls r0, r0, #0xa
- str r0, [r4, #0x20]
- adds r0, r4, #0
- movs r1, #1
- bl sub_08049F84
- strb r0, [r4, #0x15]
- adds r0, r4, #0
- movs r1, #3
- bl UpdateSprite
- pop {r4, pc}
-
- thumb_func_start sub_0801FC08
-sub_0801FC08: @ 0x0801FC08
- push {r4, lr}
- adds r4, r0, #0
- ldr r1, _0801FC24 @ =gUnk_080CA49C
- bl sub_0800129E
- movs r3, #0x10
- rsbs r3, r3, #0
- adds r0, r4, #0
- movs r1, #0
- movs r2, #1
- bl sub_0804A9AC
- pop {r4, pc}
- .align 2, 0
-_0801FC24: .4byte gUnk_080CA49C
-
- thumb_func_start sub_0801FC28
-sub_0801FC28: @ 0x0801FC28
- push {lr}
- ldr r2, _0801FC3C @ =gUnk_080CA4B4
- ldrb r1, [r0, #0xc]
- lsls r1, r1, #2
- adds r1, r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {pc}
- .align 2, 0
-_0801FC3C: .4byte gUnk_080CA4B4
-
- thumb_func_start sub_0801FC40
-sub_0801FC40: @ 0x0801FC40
- push {r4, lr}
- adds r4, r0, #0
- adds r0, #0x41
- ldrb r0, [r0]
- cmp r0, #0x80
- bne _0801FC5C
- ldrb r0, [r4, #0xc]
- cmp r0, #3
- bne _0801FC6E
- adds r1, r4, #0
- adds r1, #0x74
- movs r0, #1
- strh r0, [r1]
- b _0801FC6E
-_0801FC5C:
- adds r0, r4, #0
- adds r0, #0x43
- ldrb r0, [r0]
- cmp r0, #0
- beq _0801FC6E
- adds r0, r4, #0
- movs r1, #0x1c
- bl sub_0804A9FC
-_0801FC6E:
- ldr r1, _0801FC78 @ =gUnk_080CA49C
- adds r0, r4, #0
- bl sub_0804AA30
- pop {r4, pc}
- .align 2, 0
-_0801FC78: .4byte gUnk_080CA49C
-
- thumb_func_start sub_0801FC7C
-sub_0801FC7C: @ 0x0801FC7C
- push {lr}
- adds r1, r0, #0
- ldrb r0, [r1, #0xa]
- cmp r0, #0
- bne _0801FC8E
- adds r0, r1, #0
- bl sub_0804A7D4
- b _0801FC98
-_0801FC8E:
- adds r0, r1, #0
- movs r1, #0xf1
- movs r2, #0
- bl sub_0804A7E0
-_0801FC98:
- pop {pc}
- .align 2, 0
-
- thumb_func_start sub_0801FC9C
-sub_0801FC9C: @ 0x0801FC9C
- push {r4, lr}
- adds r4, r0, #0
- bl sub_0804A720
- movs r0, #1
- strb r0, [r4, #0xc]
- bl Random
- strb r0, [r4, #0xe]
- pop {r4, pc}
-
- thumb_func_start sub_0801FCB0
-sub_0801FCB0: @ 0x0801FCB0
- push {r4, r5, lr}
- adds r5, r0, #0
- ldrb r0, [r5, #0xe]
- subs r0, #1
- strb r0, [r5, #0xe]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _0801FD28
- bl Random
- movs r1, #0x1f
- ands r1, r0
- adds r0, r5, #0
- bl sub_0801FE68
- cmp r0, #0
- beq _0801FD1C
- movs r0, #2
- strb r0, [r5, #0xc]
- ldrb r1, [r5, #0x18]
- subs r0, #6
- ands r0, r1
- movs r1, #1
- orrs r0, r1
- strb r0, [r5, #0x18]
- ldr r0, _0801FD14 @ =gUnk_020000B0
- ldr r1, [r0]
- adds r0, r5, #0
- bl sub_080045C4
- adds r4, r0, #0
- bl Random
- ldr r2, _0801FD18 @ =gUnk_080CA4C8
- movs r1, #1
- ands r1, r0
- adds r1, r1, r2
- ldrb r0, [r1]
- adds r0, r0, r4
- movs r1, #0x1f
- ands r0, r1
- strb r0, [r5, #0x15]
- adds r0, r5, #0
- movs r1, #0
- bl UpdateSprite
- adds r0, r5, #0
- bl UpdateSpriteOrderAndFlip
- b _0801FD28
- .align 2, 0
-_0801FD14: .4byte gUnk_020000B0
-_0801FD18: .4byte gUnk_080CA4C8
-_0801FD1C:
- bl Random
- movs r1, #0x18
- ands r0, r1
- adds r0, #8
- strb r0, [r5, #0xe]
-_0801FD28:
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start sub_0801FD2C
-sub_0801FD2C: @ 0x0801FD2C
- push {r4, lr}
- adds r4, r0, #0
- bl sub_08004274
- adds r2, r4, #0
- adds r2, #0x5a
- ldrb r1, [r2]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _0801FD66
- movs r0, #3
- strb r0, [r4, #0xc]
- ldrb r0, [r4, #0xa]
- cmp r0, #0
- bne _0801FD54
- adds r1, r4, #0
- adds r1, #0x74
- movs r0, #0xb4
- b _0801FD5A
-_0801FD54:
- adds r1, r4, #0
- adds r1, #0x74
- movs r0, #0x6e
-_0801FD5A:
- strh r0, [r1]
- adds r0, r4, #0
- movs r1, #2
- bl UpdateSprite
- b _0801FD7C
-_0801FD66:
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- beq _0801FD7C
- movs r0, #0xfe
- ands r0, r1
- strb r0, [r2]
- ldrb r0, [r4, #0x10]
- movs r1, #0x80
- orrs r0, r1
- strb r0, [r4, #0x10]
-_0801FD7C:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_0801FD80
-sub_0801FD80: @ 0x0801FD80
- push {r4, lr}
- adds r4, r0, #0
- bl sub_0801FED4
- adds r0, r4, #0
- bl sub_08004274
- adds r1, r4, #0
- adds r1, #0x74
- ldrh r0, [r1]
- subs r0, #1
- strh r0, [r1]
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _0801FDB2
- movs r0, #4
- strb r0, [r4, #0xc]
- ldrb r1, [r4, #0x10]
- movs r0, #0x7f
- ands r0, r1
- strb r0, [r4, #0x10]
- adds r0, r4, #0
- movs r1, #1
- bl UpdateSprite
-_0801FDB2:
- pop {r4, pc}
-
- thumb_func_start sub_0801FDB4
-sub_0801FDB4: @ 0x0801FDB4
- push {r4, lr}
- adds r4, r0, #0
- bl sub_0801FED4
- adds r0, r4, #0
- bl sub_08004274
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _0801FDE0
- movs r0, #1
- strb r0, [r4, #0xc]
- movs r0, #0xf0
- strb r0, [r4, #0xe]
- ldrb r1, [r4, #0x18]
- subs r0, #0xf4
- ands r0, r1
- strb r0, [r4, #0x18]
-_0801FDE0:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_0801FDE4
-sub_0801FDE4: @ 0x0801FDE4
- push {r4, r5, r6, r7, lr}
- adds r6, r0, #0
- adds r4, r1, #0
- adds r5, r2, #0
- ldr r7, _0801FE04 @ =gUnk_020000B0
- ldr r0, [r7]
- adds r0, #0x38
- ldrb r2, [r0]
- adds r0, r4, #0
- adds r1, r5, #0
- bl sub_080002D4
- cmp r0, #0
- beq _0801FE34
- b _0801FE5C
- .align 2, 0
-_0801FE04: .4byte gUnk_020000B0
-_0801FE08:
- movs r0, #0x10
- rsbs r0, r0, #0
- adds r1, r0, #0
- ands r4, r1
- adds r0, r4, #0
- adds r0, #8
- strh r0, [r6, #0x2e]
- ands r5, r1
- adds r0, r5, #0
- adds r0, #8
- strh r0, [r6, #0x32]
- ldr r0, _0801FE30 @ =gUnk_020000B0
- ldr r0, [r0]
- adds r0, #0x38
- ldrb r1, [r0]
- adds r0, r6, #0
- adds r0, #0x38
- strb r1, [r0]
- movs r0, #1
- b _0801FE5E
- .align 2, 0
-_0801FE30: .4byte gUnk_020000B0
-_0801FE34:
- ldr r0, [r7]
- adds r0, #0x38
- ldrb r2, [r0]
- adds r0, r4, #0
- adds r1, r5, #0
- bl sub_080002BC
- adds r3, r0, #0
- ldr r1, _0801FE60 @ =gUnk_080CA4CA
- ldrh r0, [r1]
- ldr r2, _0801FE64 @ =0x0000FFFF
- cmp r0, r2
- beq _0801FE5C
-_0801FE4E:
- ldrh r0, [r1]
- adds r1, #2
- cmp r0, r3
- beq _0801FE08
- ldrh r0, [r1]
- cmp r0, r2
- bne _0801FE4E
-_0801FE5C:
- movs r0, #0
-_0801FE5E:
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0801FE60: .4byte gUnk_080CA4CA
-_0801FE64: .4byte 0x0000FFFF
-
- thumb_func_start sub_0801FE68
-sub_0801FE68: @ 0x0801FE68
- push {r4, r5, r6, r7, lr}
- mov r7, sb
- mov r6, r8
- push {r6, r7}
- adds r7, r0, #0
- adds r6, r1, #0
- movs r1, #1
- bl sub_08049FDC
- cmp r0, #0
- bne _0801FE82
-_0801FE7E:
- movs r0, #0
- b _0801FEC4
-_0801FE82:
- ldr r0, _0801FECC @ =gUnk_020000B0
- ldr r0, [r0]
- ldr r5, [r0, #0x2c]
- ldr r4, [r0, #0x30]
- ldr r1, _0801FED0 @ =gUnk_080C9160
- lsls r0, r6, #4
- adds r0, r0, r1
- movs r2, #0
- ldrsh r0, [r0, r2]
- lsls r0, r0, #0xb
- mov sb, r0
- lsls r0, r6, #4
- adds r0, #0x80
- adds r0, r0, r1
- movs r1, #0
- ldrsh r0, [r0, r1]
- lsls r0, r0, #0xb
- mov r8, r0
- movs r6, #0
-_0801FEA8:
- add r5, sb
- mov r2, r8
- subs r4, r4, r2
- asrs r1, r5, #0x10
- asrs r2, r4, #0x10
- adds r0, r7, #0
- bl sub_0801FDE4
- cmp r0, #0
- beq _0801FE7E
- adds r6, #1
- cmp r6, #7
- bls _0801FEA8
- movs r0, #1
-_0801FEC4:
- pop {r3, r4}
- mov r8, r3
- mov sb, r4
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0801FECC: .4byte gUnk_020000B0
-_0801FED0: .4byte gUnk_080C9160
-
- thumb_func_start sub_0801FED4
-sub_0801FED4: @ 0x0801FED4
- push {r4, lr}
- adds r4, r0, #0
- movs r1, #1
- bl sub_08049FDC
- cmp r0, #0
- bne _0801FEEA
- adds r1, r4, #0
- adds r1, #0x74
- movs r0, #1
- strh r0, [r1]
-_0801FEEA:
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r0, [r0]
- movs r2, #0xf
- adds r1, r2, #0
- ands r1, r0
- lsls r1, r1, #5
- strh r1, [r4, #0x24]
- ldrb r0, [r4, #0xa]
- cmp r0, #0
- bne _0801FF28
- ldrb r1, [r4, #0xf]
- adds r0, r1, #1
- strb r0, [r4, #0xf]
- adds r0, r2, #0
- ands r0, r1
- cmp r0, #0
- bne _0801FF4E
- ldr r0, _0801FF24 @ =gUnk_020000B0
- ldr r1, [r0]
- adds r0, r4, #0
- bl sub_0800132C
- adds r1, r0, #0
- adds r0, r4, #0
- bl sub_08004596
- b _0801FF4E
- .align 2, 0
-_0801FF24: .4byte gUnk_020000B0
-_0801FF28:
- adds r0, r1, #0
- adds r0, #0x40
- strh r0, [r4, #0x24]
- ldrb r1, [r4, #0xf]
- adds r0, r1, #1
- strb r0, [r4, #0xf]
- movs r0, #7
- ands r0, r1
- cmp r0, #0
- bne _0801FF4E
- ldr r0, _0801FF58 @ =gUnk_020000B0
- ldr r1, [r0]
- adds r0, r4, #0
- bl sub_0800132C
- adds r1, r0, #0
- adds r0, r4, #0
- bl sub_08004596
-_0801FF4E:
- adds r0, r4, #0
- bl sub_080AEF88
- pop {r4, pc}
- .align 2, 0
-_0801FF58: .4byte gUnk_020000B0
-
- thumb_func_start sub_0801FF5C
-sub_0801FF5C: @ 0x0801FF5C
- push {r4, lr}
- adds r4, r0, #0
- ldrb r0, [r4, #0xa]
- cmp r0, #0
- bne _0801FF84
- ldr r1, _0801FF80 @ =gUnk_080CA570
- adds r0, r4, #0
- bl sub_0800129E
- movs r3, #0x10
- rsbs r3, r3, #0
- adds r0, r4, #0
- movs r1, #0
- movs r2, #1
- bl sub_0804A9AC
- b _0801FF94
- .align 2, 0
-_0801FF80: .4byte gUnk_080CA570
-_0801FF84:
- ldr r0, _0801FF98 @ =gUnk_080CA588
- ldrb r1, [r4, #0xc]
- lsls r1, r1, #2
- adds r1, r1, r0
- ldr r1, [r1]
- adds r0, r4, #0
- bl _call_via_r1
-_0801FF94:
- pop {r4, pc}
- .align 2, 0
-_0801FF98: .4byte gUnk_080CA588
-
- thumb_func_start sub_0801FF9C
-sub_0801FF9C: @ 0x0801FF9C
- push {r4, lr}
- adds r4, r0, #0
- ldr r1, _0801FFD4 @ =gUnk_080CA590
- ldrb r0, [r4, #0xc]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r1, [r0]
- adds r0, r4, #0
- bl _call_via_r1
- adds r0, r4, #0
- adds r0, #0x81
- ldrb r0, [r0]
- cmp r0, #0
- beq _0801FFD2
- ldr r2, _0801FFD8 @ =gUnk_080CA5B8
- ldrb r1, [r4, #0xf]
- adds r0, r1, #1
- strb r0, [r4, #0xf]
- movs r0, #0x30
- ands r0, r1
- lsrs r0, r0, #4
- adds r0, r0, r2
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- strh r0, [r4, #0x36]
-_0801FFD2:
- pop {r4, pc}
- .align 2, 0
-_0801FFD4: .4byte gUnk_080CA590
-_0801FFD8: .4byte gUnk_080CA5B8
-
- thumb_func_start sub_0801FFDC
-sub_0801FFDC: @ 0x0801FFDC
- push {r4, r5, r6, lr}
- adds r4, r0, #0
- adds r6, r4, #0
- adds r6, #0x82
- ldrb r0, [r6]
- cmp r0, #0
- beq _08020068
- adds r0, r4, #0
- adds r0, #0x41
- ldrb r1, [r0]
- cmp r1, #0x94
- bne _08020018
- movs r0, #3
- movs r1, #1
- bl CreateEnemy
- adds r5, r0, #0
- cmp r5, #0
- beq _08020010
- adds r0, r4, #0
- adds r1, r5, #0
- bl CopyPosition
- ldrh r0, [r5, #0x36]
- subs r0, #8
- strh r0, [r5, #0x36]
-_08020010:
- movs r0, #0
- strb r0, [r6]
- movs r0, #2
- b _0802001E
-_08020018:
- cmp r1, #0x9b
- bne _08020042
- movs r0, #1
-_0802001E:
- strb r0, [r4, #0x14]
- movs r0, #5
- strb r0, [r4, #0xc]
- movs r1, #0
- movs r0, #0x80
- strh r0, [r4, #0x24]
- adds r2, r4, #0
- adds r2, #0x3d
- movs r0, #0xe2
- strb r0, [r2]
- adds r0, r4, #0
- adds r0, #0x81
- strb r1, [r0]
- ldrb r1, [r4, #0x14]
- adds r0, r4, #0
- bl UpdateSprite
- b _08020068
-_08020042:
- cmp r1, #0x80
- bne _08020068
- ldrb r0, [r4, #0x14]
- cmp r0, #0
- bne _08020068
- movs r0, #1
- strb r0, [r4, #0xc]
- movs r0, #0x1e
- strb r0, [r4, #0xe]
- strh r1, [r4, #0x24]
- movs r0, #0xff
- strb r0, [r4, #0x15]
- adds r1, r4, #0
- adds r1, #0x83
- movs r0, #0x78
- strb r0, [r1]
- adds r0, r4, #0
- bl sub_08004274
-_08020068:
- adds r0, r4, #0
- adds r0, #0x43
- ldrb r0, [r0]
- cmp r0, #0
- beq _0802007A
- adds r0, r4, #0
- movs r1, #0x1c
- bl sub_0804A9FC
-_0802007A:
- ldr r1, _08020084 @ =gUnk_080CA570
- adds r0, r4, #0
- bl sub_0804AA30
- pop {r4, r5, r6, pc}
- .align 2, 0
-_08020084: .4byte gUnk_080CA570
-
- thumb_func_start sub_08020088
-sub_08020088: @ 0x08020088
- push {r4, lr}
- adds r4, r0, #0
- ldrb r0, [r4, #0xd]
- cmp r0, #2
- bhi _0802009C
- adds r0, r4, #0
- bl sub_0806F520
- cmp r0, #0
- beq _080200AC
-_0802009C:
- ldr r0, _080200B0 @ =gUnk_080CA5BC
- ldrb r1, [r4, #0xd]
- lsls r1, r1, #2
- adds r1, r1, r0
- ldr r1, [r1]
- adds r0, r4, #0
- bl _call_via_r1
-_080200AC:
- pop {r4, pc}
- .align 2, 0
-_080200B0: .4byte gUnk_080CA5BC
-
- thumb_func_start sub_080200B4
-sub_080200B4: @ 0x080200B4
- push {lr}
- adds r2, r0, #0
- movs r1, #1
- strb r1, [r2, #0xd]
- movs r0, #0x3c
- strb r0, [r2, #0x1d]
- ldrb r3, [r2, #0x14]
- cmp r3, #0
- bne _080200E2
- strb r1, [r2, #0x14]
- movs r0, #5
- strb r0, [r2, #0xc]
- adds r1, r2, #0
- adds r1, #0x3f
- movs r0, #0x71
- strb r0, [r1]
- adds r0, r2, #0
- adds r0, #0x81
- strb r3, [r0]
- ldrb r1, [r2, #0x14]
- adds r0, r2, #0
- bl UpdateSprite
-_080200E2:
- pop {pc}
-
- thumb_func_start sub_080200E4
-sub_080200E4: @ 0x080200E4
- push {lr}
- bl sub_0806F4E8
- pop {pc}
-
- thumb_func_start sub_080200EC
-sub_080200EC: @ 0x080200EC
- push {lr}
- bl sub_0806F3E4
- pop {pc}
-
- thumb_func_start sub_080200F4
-sub_080200F4: @ 0x080200F4
- ldrb r2, [r0, #0x10]
- movs r1, #0x7f
- ands r1, r2
- strb r1, [r0, #0x10]
- bx lr
- .align 2, 0
-
- thumb_func_start nullsub_5
-nullsub_5: @ 0x08020100
- bx lr
- .align 2, 0
-
- thumb_func_start sub_08020104
-sub_08020104: @ 0x08020104
- push {lr}
- adds r2, r0, #0
- ldrb r3, [r2, #0x10]
- movs r0, #0x80
- ands r0, r3
- lsls r0, r0, #0x18
- lsrs r1, r0, #0x18
- cmp r1, #0
- beq _08020128
- movs r0, #0x80
- orrs r0, r3
- strb r0, [r2, #0x10]
- adds r2, #0x3a
- ldrb r1, [r2]
- movs r0, #0xfb
- ands r0, r1
- strb r0, [r2]
- b _0802012E
-_08020128:
- adds r0, r2, #0
- adds r0, #0x45
- strb r1, [r0]
-_0802012E:
- pop {pc}
-
- thumb_func_start sub_08020130
-sub_08020130: @ 0x08020130
- push {r4, r5, lr}
- adds r4, r0, #0
- bl sub_0804A720
- movs r5, #1
- strb r5, [r4, #0xc]
- movs r0, #0x10
- strb r0, [r4, #0xe]
- bl Random
- strb r0, [r4, #0xf]
- bl Random
- movs r1, #0x1f
- ands r0, r1
- strb r0, [r4, #0x15]
- movs r0, #0x12
- strb r0, [r4, #0x1c]
- bl Random
- ands r0, r5
- movs r1, #0xfe
- cmp r0, #0
- beq _08020162
- movs r1, #2
-_08020162:
- adds r0, r4, #0
- adds r0, #0x80
- strb r1, [r0]
- adds r0, #1
- strb r5, [r0]
- adds r0, #1
- strb r5, [r0]
- movs r0, #0
- strb r0, [r4, #0x14]
- adds r0, r4, #0
- movs r1, #0
- bl UpdateSprite
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start sub_08020180
-sub_08020180: @ 0x08020180
- push {r4, r5, lr}
- adds r4, r0, #0
- adds r5, r4, #0
- adds r5, #0x83
- ldrb r0, [r5]
- cmp r0, #0
- beq _08020192
- subs r0, #1
- strb r0, [r5]
-_08020192:
- adds r0, r4, #0
- movs r1, #1
- bl sub_08049FDC
- cmp r0, #0
- beq _080201D4
- ldrb r0, [r5]
- cmp r0, #0
- bne _080201D4
- ldrb r1, [r4, #0xf]
- movs r0, #0xf
- ands r0, r1
- cmp r0, #0
- bne _080201D4
- ldr r0, _0802021C @ =gUnk_020000B0
- ldr r1, [r0]
- adds r0, r4, #0
- movs r2, #0x30
- bl sub_08049F1C
- cmp r0, #0
- beq _080201D4
- movs r0, #2
- strb r0, [r4, #0xc]
- bl Random
- movs r1, #3
- ands r0, r1
- strb r0, [r4, #0xd]
- movs r0, #0x3c
- strb r0, [r4, #0xe]
- movs r0, #0xa0
- strh r0, [r4, #0x24]
-_080201D4:
- ldrb r0, [r4, #0xe]
- subs r0, #1
- strb r0, [r4, #0xe]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _0802020C
- movs r0, #0x10
- strb r0, [r4, #0xe]
- adds r0, r4, #0
- bl sub_08020604
- bl Random
- movs r1, #3
- ands r1, r0
- cmp r1, #0
- bne _0802020C
- bl Random
- movs r1, #1
- ands r1, r0
- movs r2, #0xfe
- cmp r1, #0
- beq _08020206
- movs r2, #2
-_08020206:
- adds r0, r4, #0
- adds r0, #0x80
- strb r2, [r0]
-_0802020C:
- adds r0, r4, #0
- bl sub_080AEFE0
- adds r0, r4, #0
- bl sub_08004274
- pop {r4, r5, pc}
- .align 2, 0
-_0802021C: .4byte gUnk_020000B0
-
- thumb_func_start sub_08020220
-sub_08020220: @ 0x08020220
- push {r4, r5, lr}
- adds r5, r0, #0
- movs r1, #1
- bl sub_08049FDC
- cmp r0, #0
- beq _08020284
- ldrb r0, [r5, #0xe]
- subs r1, r0, #1
- strb r1, [r5, #0xe]
- lsls r0, r1, #0x18
- cmp r0, #0
- beq _0802024C
- lsrs r0, r0, #0x1c
- movs r1, #3
- ands r0, r1
- movs r1, #4
- subs r1, r1, r0
- adds r0, r5, #0
- bl sub_08004276
- b _08020292
-_0802024C:
- movs r0, #3
- strb r0, [r5, #0xc]
- movs r0, #0x78
- strb r0, [r5, #0xe]
- movs r0, #0xc0
- strh r0, [r5, #0x24]
- ldr r0, _0802027C @ =gUnk_020000B0
- ldr r1, [r0]
- adds r0, r5, #0
- bl sub_080045C4
- adds r4, r0, #0
- bl Random
- ldr r2, _08020280 @ =gUnk_080CA5D4
- movs r1, #1
- ands r1, r0
- adds r1, r1, r2
- ldrb r0, [r1]
- adds r0, r0, r4
- movs r1, #0x1f
- ands r0, r1
- strb r0, [r5, #0x15]
- b _0802028A
- .align 2, 0
-_0802027C: .4byte gUnk_020000B0
-_08020280: .4byte gUnk_080CA5D4
-_08020284:
- adds r0, r5, #0
- bl sub_080205F8
-_0802028A:
- adds r0, r5, #0
- movs r1, #4
- bl sub_08004276
-_08020292:
- pop {r4, r5, pc}
-
- thumb_func_start sub_08020294
-sub_08020294: @ 0x08020294
- push {r4, lr}
- adds r4, r0, #0
- movs r1, #1
- bl sub_08049FDC
- cmp r0, #0
- beq _080202F8
- ldrb r0, [r4, #0xe]
- subs r0, #1
- strb r0, [r4, #0xe]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _080202B4
- adds r0, r4, #0
- bl sub_080205F8
-_080202B4:
- ldrb r1, [r4, #0xe]
- cmp r1, #0x3c
- bls _080202E6
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- beq _080202C8
- ldrh r0, [r4, #0x24]
- adds r0, #4
- strh r0, [r4, #0x24]
-_080202C8:
- ldr r0, _080202F0 @ =gUnk_030010A0
- ldr r0, [r0]
- movs r1, #3
- ands r0, r1
- cmp r0, #0
- bne _080202E6
- ldr r0, _080202F4 @ =gUnk_020000B0
- ldr r1, [r0]
- adds r0, r4, #0
- bl sub_080045C4
- adds r1, r0, #0
- adds r0, r4, #0
- bl sub_08004596
-_080202E6:
- adds r0, r4, #0
- bl sub_080AEFE0
- b _080202FE
- .align 2, 0
-_080202F0: .4byte gUnk_030010A0
-_080202F4: .4byte gUnk_020000B0
-_080202F8:
- adds r0, r4, #0
- bl sub_080205F8
-_080202FE:
- adds r0, r4, #0
- movs r1, #4
- bl sub_08004276
- pop {r4, pc}
-
- thumb_func_start sub_08020308
-sub_08020308: @ 0x08020308
- push {r4, lr}
- adds r4, r0, #0
- ldrb r0, [r4, #0xe]
- subs r1, r0, #1
- strb r1, [r4, #0xe]
- lsls r0, r1, #0x18
- cmp r0, #0
- bne _08020332
- movs r0, #1
- strb r0, [r4, #0xc]
- strb r0, [r4, #0xe]
- movs r0, #0x80
- strh r0, [r4, #0x24]
- adds r1, r4, #0
- adds r1, #0x83
- movs r0, #0x78
- strb r0, [r1]
- adds r0, r4, #0
- bl sub_08004274
- b _0802034E
-_08020332:
- movs r0, #1
- ands r1, r0
- cmp r1, #0
- beq _08020340
- ldrh r0, [r4, #0x24]
- subs r0, #8
- strh r0, [r4, #0x24]
-_08020340:
- adds r0, r4, #0
- bl sub_080AEFE0
- adds r0, r4, #0
- movs r1, #4
- bl sub_08004276
-_0802034E:
- pop {r4, pc}
-
- thumb_func_start sub_08020350
-sub_08020350: @ 0x08020350
- push {r4, lr}
- adds r4, r0, #0
- ldrb r0, [r4, #0x14]
- cmp r0, #2
- beq _08020398
- movs r1, #0xc0
- lsls r1, r1, #5
- adds r0, r4, #0
- bl sub_080044EC
- cmp r0, #0
- bne _0802037C
- movs r0, #6
- strb r0, [r4, #0xc]
- movs r0, #0xf0
- strb r0, [r4, #0xe]
- movs r0, #0xa
- strb r0, [r4, #0xf]
- adds r1, r4, #0
- adds r1, #0x3f
- movs r0, #0x71
- strb r0, [r1]
-_0802037C:
- ldrb r0, [r4, #0x15]
- cmp r0, #0xff
- bne _0802038A
- adds r0, r4, #0
- adds r0, #0x3e
- ldrb r0, [r0]
- strb r0, [r4, #0x15]
-_0802038A:
- adds r0, r4, #0
- bl sub_080AEF88
- adds r0, r4, #0
- bl sub_08004274
- b _080203BE
-_08020398:
- movs r1, #0xe0
- lsls r1, r1, #5
- adds r0, r4, #0
- bl sub_08003FC4
- movs r1, #0x36
- ldrsh r0, [r4, r1]
- cmp r0, #0
- bne _080203BE
- movs r0, #7
- strb r0, [r4, #0xc]
- movs r0, #0x96
- strb r0, [r4, #0xe]
- movs r0, #0xa
- strb r0, [r4, #0xf]
- adds r1, r4, #0
- adds r1, #0x3f
- movs r0, #0x71
- strb r0, [r1]
-_080203BE:
- pop {r4, pc}
-
- thumb_func_start sub_080203C0
-sub_080203C0: @ 0x080203C0
- push {r4, lr}
- adds r4, r0, #0
- ldrb r0, [r4, #0xf]
- cmp r0, #0
- beq _080203DC
- subs r0, #1
- strb r0, [r4, #0xf]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _080203DC
- adds r0, r4, #0
- movs r1, #0x1c
- bl sub_0804A9FC
-_080203DC:
- adds r0, r4, #0
- bl sub_0800442E
- cmp r0, #0
- bne _080203F2
- ldrb r0, [r4, #0xe]
- subs r0, #1
- strb r0, [r4, #0xe]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _08020418
-_080203F2:
- movs r0, #9
- strb r0, [r4, #0xc]
- movs r0, #0xc0
- lsls r0, r0, #9
- str r0, [r4, #0x20]
- bl Random
- movs r1, #0x1f
- ands r0, r1
- strb r0, [r4, #0x15]
- adds r0, r4, #0
- bl sub_0804AA1C
- movs r0, #5
- strb r0, [r4, #0x14]
- adds r0, r4, #0
- movs r1, #5
- bl UpdateSprite
-_08020418:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_0802041C
-sub_0802041C: @ 0x0802041C
- push {r4, lr}
- adds r4, r0, #0
- ldrb r0, [r4, #0xf]
- cmp r0, #0
- beq _08020438
- subs r0, #1
- strb r0, [r4, #0xf]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _08020438
- adds r0, r4, #0
- movs r1, #0x1c
- bl sub_0804A9FC
-_08020438:
- adds r0, r4, #0
- bl sub_0800442E
- cmp r0, #0
- bne _0802044E
- ldrb r0, [r4, #0xe]
- subs r0, #1
- strb r0, [r4, #0xe]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _08020466
-_0802044E:
- movs r0, #8
- strb r0, [r4, #0xc]
- movs r0, #0xf0
- strb r0, [r4, #0xe]
- bl Random
- movs r1, #0x1f
- ands r0, r1
- strb r0, [r4, #0x15]
- adds r0, r4, #0
- bl sub_0804AA1C
-_08020466:
- pop {r4, pc}
-
- thumb_func_start sub_08020468
-sub_08020468: @ 0x08020468
- push {r4, r5, lr}
- adds r4, r0, #0
- bl sub_08004274
- ldrb r0, [r4, #0xe]
- subs r0, #1
- strb r0, [r4, #0xe]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _080204A6
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _080204A2
- movs r0, #9
- strb r0, [r4, #0xc]
- movs r0, #0xc0
- lsls r0, r0, #9
- str r0, [r4, #0x20]
- movs r0, #4
- strb r0, [r4, #0x14]
- adds r0, r4, #0
- movs r1, #4
- bl UpdateSprite
- b _080204A6
-_080204A2:
- movs r0, #1
- strb r0, [r4, #0xe]
-_080204A6:
- adds r5, r4, #0
- adds r5, #0x5a
- ldrb r1, [r5]
- movs r0, #2
- ands r0, r1
- cmp r0, #0
- beq _080204C4
- movs r0, #0xfd
- ands r0, r1
- strb r0, [r5]
- bl Random
- movs r1, #0x1f
- ands r0, r1
- strb r0, [r4, #0x15]
-_080204C4:
- ldrb r1, [r5]
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- beq _080204D6
- adds r0, r4, #0
- bl sub_0800442E
- b _080204DC
-_080204D6:
- adds r0, r4, #0
- bl sub_080AEF88
-_080204DC:
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start sub_080204E0
-sub_080204E0: @ 0x080204E0
- push {r4, lr}
- adds r4, r0, #0
- bl sub_08004274
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _0802051A
- movs r2, #0
- movs r1, #1
- strb r1, [r4, #0xc]
- adds r3, r4, #0
- adds r3, #0x3f
- movs r0, #0x70
- strb r0, [r3]
- adds r0, r4, #0
- adds r0, #0x82
- strb r1, [r0]
- subs r0, #1
- strb r1, [r0]
- strb r2, [r4, #0x14]
- adds r0, r4, #0
- movs r1, #0
- bl UpdateSprite
- b _0802053A
-_0802051A:
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- beq _0802052A
- adds r0, r4, #0
- bl sub_0800442E
- b _0802053A
-_0802052A:
- movs r1, #0xe0
- lsls r1, r1, #5
- adds r0, r4, #0
- bl sub_08003FC4
- adds r0, r4, #0
- bl sub_080AEF88
-_0802053A:
- pop {r4, pc}
-
- thumb_func_start sub_0802053C
-sub_0802053C: @ 0x0802053C
- push {r4, lr}
- adds r4, r0, #0
- movs r1, #1
- movs r0, #1
- strb r0, [r4, #0xc]
- movs r0, #0xf0
- strb r0, [r4, #0xe]
- movs r0, #0x28
- strb r0, [r4, #0xf]
- ldrb r0, [r4, #0x18]
- movs r2, #4
- rsbs r2, r2, #0
- ands r2, r0
- orrs r2, r1
- ldrb r3, [r4, #0x19]
- movs r1, #0x3f
- adds r0, r1, #0
- ands r0, r3
- movs r3, #0x40
- orrs r0, r3
- strb r0, [r4, #0x19]
- ldrb r0, [r4, #0x1b]
- ands r1, r0
- orrs r1, r3
- strb r1, [r4, #0x1b]
- movs r0, #0x31
- rsbs r0, r0, #0
- ands r2, r0
- strb r2, [r4, #0x18]
- movs r0, #0x20
- strh r0, [r4, #0x24]
- bl Random
- movs r1, #0x10
- ands r0, r1
- adds r0, #8
- strb r0, [r4, #0x15]
- adds r0, r4, #0
- movs r1, #3
- bl UpdateSprite
- pop {r4, pc}
-
- thumb_func_start sub_08020590
-sub_08020590: @ 0x08020590
- push {r4, r5, lr}
- adds r4, r0, #0
- bl sub_08004274
- ldrb r0, [r4, #0xe]
- subs r1, r0, #1
- strb r1, [r4, #0xe]
- movs r5, #0xff
- lsls r0, r1, #0x18
- cmp r0, #0
- bne _080205AE
- adds r0, r4, #0
- bl sub_0805E7BC
- b _080205F2
-_080205AE:
- lsls r0, r1, #0x18
- lsrs r0, r0, #0x18
- cmp r0, #0x3b
- bhi _080205C8
- ldrb r2, [r4, #0x18]
- lsls r1, r2, #0x1e
- lsrs r1, r1, #0x1e
- movs r0, #1
- eors r1, r0
- subs r0, #5
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, #0x18]
-_080205C8:
- ldr r0, [r4, #0x34]
- ldr r1, _080205F4 @ =0xFFFF4000
- adds r0, r0, r1
- str r0, [r4, #0x34]
- adds r0, r4, #0
- bl sub_0806F69C
- ldrb r0, [r4, #0xf]
- subs r0, #1
- strb r0, [r4, #0xf]
- ands r0, r5
- cmp r0, #0
- bne _080205F2
- movs r0, #0x28
- strb r0, [r4, #0xf]
- bl Random
- movs r1, #0x10
- ands r0, r1
- adds r0, #8
- strb r0, [r4, #0x15]
-_080205F2:
- pop {r4, r5, pc}
- .align 2, 0
-_080205F4: .4byte 0xFFFF4000
-
- thumb_func_start sub_080205F8
-sub_080205F8: @ 0x080205F8
- movs r1, #4
- strb r1, [r0, #0xc]
- movs r1, #0x3c
- strb r1, [r0, #0xe]
- bx lr
- .align 2, 0
-
- thumb_func_start sub_08020604
-sub_08020604: @ 0x08020604
- push {r4, lr}
- adds r4, r0, #0
- bl sub_08049FA0
- cmp r0, #0
- bne _08020624
- bl Random
- movs r1, #3
- ands r1, r0
- cmp r1, #0
- beq _08020624
- adds r0, r4, #0
- bl sub_08049EE4
- b _08020632
-_08020624:
- adds r0, r4, #0
- adds r0, #0x80
- ldrb r0, [r0]
- ldrb r1, [r4, #0x15]
- adds r0, r0, r1
- movs r1, #0x1f
- ands r0, r1
-_08020632:
- strb r0, [r4, #0x15]
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_08020638
-sub_08020638: @ 0x08020638
- push {lr}
- ldr r1, _08020644 @ =gUnk_080CA66C
- bl sub_0800129E
- pop {pc}
- .align 2, 0
-_08020644: .4byte gUnk_080CA66C
-
- thumb_func_start sub_08020648
-sub_08020648: @ 0x08020648
- push {r4, lr}
- adds r4, r0, #0
- bl sub_08020AD0
- ldr r1, _08020664 @ =gUnk_080CA684
- ldrb r0, [r4, #0xc]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r1, [r0]
- adds r0, r4, #0
- bl _call_via_r1
- pop {r4, pc}
- .align 2, 0
-_08020664: .4byte gUnk_080CA684
-
- thumb_func_start sub_08020668
-sub_08020668: @ 0x08020668
- push {r4, r5, lr}
- adds r4, r0, #0
- adds r2, r4, #0
- adds r2, #0x3f
- ldrb r0, [r2]
- cmp r0, #0x22
- bne _080206A2
- adds r1, r4, #0
- adds r1, #0x45
- ldrb r0, [r1]
- cmp r0, #0xff
- beq _080206A2
- movs r0, #4
- strb r0, [r4, #0xc]
- movs r0, #0x80
- lsls r0, r0, #0xa
- str r0, [r4, #0x20]
- movs r0, #0xff
- strb r0, [r4, #0x15]
- movs r0, #1
- rsbs r0, r0, #0
- strb r0, [r1]
- movs r0, #0x23
- strb r0, [r2]
- ldrb r1, [r4, #0x14]
- adds r1, #8
- adds r0, r4, #0
- bl UpdateSprite
-_080206A2:
- adds r0, r4, #0
- adds r0, #0x41
- ldrb r1, [r0]
- adds r5, r0, #0
- cmp r1, #0x80
- beq _080206D0
- ldrb r0, [r4, #0xc]
- subs r0, #4
- lsls r0, r0, #0x18
- lsrs r0, r0, #0x18
- cmp r0, #1
- bhi _080206D0
- movs r0, #4
- strb r0, [r4, #0xc]
- movs r0, #0xb4
- strb r0, [r4, #0xe]
- movs r0, #0xff
- strb r0, [r4, #0x15]
- ldrb r1, [r4, #0x14]
- adds r1, #0x10
- adds r0, r4, #0
- bl UpdateSprite
-_080206D0:
- ldrb r0, [r5]
- cmp r0, #0x93
- bne _080206DC
- adds r0, r4, #0
- bl sub_08020648
-_080206DC:
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start sub_080206E0
-sub_080206E0: @ 0x080206E0
- push {r4, r5, lr}
- adds r4, r0, #0
- bl sub_08020AD0
- cmp r0, #0
- beq _080206F6
- adds r1, r4, #0
- adds r1, #0x42
- movs r0, #0
- strb r0, [r1]
- b _08020730
-_080206F6:
- adds r0, r4, #0
- bl sub_08020B6C
- cmp r0, #0
- beq _0802072A
- adds r1, r4, #0
- adds r1, #0x42
- ldrb r0, [r1]
- subs r0, #1
- strb r0, [r1]
- adds r5, r4, #0
- adds r5, #0x3e
- ldrb r1, [r5]
- adds r0, r4, #0
- movs r2, #0xa
- bl sub_080AE58C
- adds r0, r4, #0
- adds r0, #0x46
- ldrh r1, [r0]
- ldrb r2, [r5]
- adds r0, r4, #0
- movs r3, #0xa
- bl sub_080AE7E8
- b _08020730
-_0802072A:
- adds r0, r4, #0
- bl sub_08001324
-_08020730:
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start sub_08020734
-sub_08020734: @ 0x08020734
- push {r4, lr}
- adds r4, r0, #0
- ldrb r0, [r4, #0xd]
- cmp r0, #2
- bhi _08020764
- adds r0, r4, #0
- bl sub_0806F520
- cmp r0, #0
- bne _08020764
- movs r0, #4
- strb r0, [r4, #0xc]
- ldrb r1, [r4, #0x10]
- movs r0, #0x80
- orrs r0, r1
- strb r0, [r4, #0x10]
- movs r0, #0xff
- strb r0, [r4, #0x15]
- ldrb r1, [r4, #0x14]
- adds r1, #0x10
- adds r0, r4, #0
- bl UpdateSprite
- b _08020774
-_08020764:
- ldr r0, _08020778 @ =gUnk_080CA6A4
- ldrb r1, [r4, #0xd]
- lsls r1, r1, #2
- adds r1, r1, r0
- ldr r1, [r1]
- adds r0, r4, #0
- bl _call_via_r1
-_08020774:
- pop {r4, pc}
- .align 2, 0
-_08020778: .4byte gUnk_080CA6A4
-
- thumb_func_start sub_0802077C
-sub_0802077C: @ 0x0802077C
- movs r1, #1
- strb r1, [r0, #0xd]
- movs r1, #0x3c
- strb r1, [r0, #0x1d]
- bx lr
- .align 2, 0
-
- thumb_func_start sub_08020788
-sub_08020788: @ 0x08020788
- push {lr}
- bl sub_0806F4E8
- pop {pc}
-
- thumb_func_start sub_08020790
-sub_08020790: @ 0x08020790
- push {lr}
- bl sub_0806F3E4
- pop {pc}
-
- thumb_func_start sub_08020798
-sub_08020798: @ 0x08020798
- ldrb r2, [r0, #0x10]
- movs r1, #0x7f
- ands r1, r2
- strb r1, [r0, #0x10]
- bx lr
- .align 2, 0
-
- thumb_func_start nullsub_6
-nullsub_6: @ 0x080207A4
- bx lr
- .align 2, 0
-
- thumb_func_start sub_080207A8
-sub_080207A8: @ 0x080207A8
- push {lr}
- movs r3, #4
- movs r1, #4
- strb r1, [r0, #0xc]
- ldrb r2, [r0, #0x10]
- movs r1, #0x80
- orrs r1, r2
- strb r1, [r0, #0x10]
- movs r1, #0x29
- adds r1, r1, r0
- mov ip, r1
- ldrb r2, [r1]
- movs r1, #8
- rsbs r1, r1, #0
- ands r1, r2
- orrs r1, r3
- mov r2, ip
- strb r1, [r2]
- adds r3, r0, #0
- adds r3, #0x3a
- ldrb r2, [r3]
- movs r1, #0xfb
- ands r1, r2
- strb r1, [r3]
- ldrb r1, [r0, #0x15]
- movs r2, #0x10
- eors r1, r2
- strb r1, [r0, #0x15]
- movs r1, #0xc0
- lsls r1, r1, #9
- str r1, [r0, #0x20]
- movs r1, #0x80
- strh r1, [r0, #0x24]
- ldrb r1, [r0, #0x14]
- adds r1, #0x10
- bl UpdateSprite
- pop {pc}
-
- thumb_func_start sub_080207F4
-sub_080207F4: @ 0x080207F4
- push {r4, lr}
- adds r4, r0, #0
- bl sub_0804A720
- movs r1, #0
- movs r0, #0x30
- strb r0, [r4, #0x16]
- movs r0, #0x12
- strb r0, [r4, #0x1c]
- adds r0, r4, #0
- adds r0, #0x84
- strb r1, [r0]
- bl Random
- movs r1, #0x18
- ands r0, r1
- strb r0, [r4, #0x15]
- adds r0, r4, #0
- bl sub_08020A30
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_08020820
-sub_08020820: @ 0x08020820
- push {r4, r5, lr}
- adds r4, r0, #0
- bl sub_08004274
- adds r2, r4, #0
- adds r2, #0x5a
- ldrb r1, [r2]
- movs r5, #1
- adds r0, r5, #0
- ands r0, r1
- cmp r0, #0
- beq _0802084A
- movs r0, #0xfe
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, #0
- bl sub_080AEF88
- cmp r0, #0
- bne _0802084A
- strb r5, [r4, #0xe]
-_0802084A:
- adds r2, r4, #0
- adds r2, #0x5a
- ldrb r1, [r2]
- movs r0, #0x10
- ands r0, r1
- cmp r0, #0
- beq _08020872
- movs r0, #0xef
- ands r0, r1
- strb r0, [r2]
- ldrb r0, [r4, #0xe]
- subs r0, #1
- strb r0, [r4, #0xe]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _08020872
- movs r0, #3
- strb r0, [r4, #0xc]
- movs r0, #0x3c
- strb r0, [r4, #0xe]
-_08020872:
- pop {r4, r5, pc}
-
- thumb_func_start sub_08020874
-sub_08020874: @ 0x08020874
- push {lr}
- ldr r2, _08020888 @ =gUnk_080CA6BC
- ldrb r1, [r0, #0xd]
- lsls r1, r1, #2
- adds r1, r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {pc}
- .align 2, 0
-_08020888: .4byte gUnk_080CA6BC
-
- thumb_func_start sub_0802088C
-sub_0802088C: @ 0x0802088C
- movs r1, #1
- strb r1, [r0, #0xd]
- ldrb r2, [r0, #0x10]
- movs r1, #0x7f
- ands r1, r2
- strb r1, [r0, #0x10]
- ldr r1, _080208B0 @ =gLinkEntity
- ldrb r1, [r1, #0x14]
- adds r2, r0, #0
- adds r2, #0x85
- strb r1, [r2]
- adds r0, #0x29
- ldrb r2, [r0]
- movs r1, #0x39
- rsbs r1, r1, #0
- ands r1, r2
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080208B0: .4byte gLinkEntity
-
- thumb_func_start sub_080208B4
-sub_080208B4: @ 0x080208B4
- push {r4, r5, lr}
- adds r2, r0, #0
- adds r4, r2, #0
- adds r4, #0x85
- ldrb r0, [r4]
- ldr r5, _080208EC @ =gLinkEntity
- ldrb r1, [r5, #0x14]
- subs r0, r0, r1
- lsrs r1, r0, #0x1f
- adds r0, r0, r1
- asrs r0, r0, #1
- lsls r0, r0, #0x18
- lsrs r1, r0, #0x18
- cmp r0, #0
- beq _080208E6
- ldrb r0, [r2, #0x14]
- adds r0, r0, r1
- movs r1, #3
- ands r0, r1
- strb r0, [r2, #0x14]
- ldrb r1, [r2, #0x14]
- adds r1, #0x10
- adds r0, r2, #0
- bl UpdateSprite
-_080208E6:
- ldrb r0, [r5, #0x14]
- strb r0, [r4]
- pop {r4, r5, pc}
- .align 2, 0
-_080208EC: .4byte gLinkEntity
-
- thumb_func_start sub_080208F0
-sub_080208F0: @ 0x080208F0
- adds r0, #0x29
- ldrb r2, [r0]
- movs r1, #0x39
- rsbs r1, r1, #0
- ands r1, r2
- movs r2, #0x18
- orrs r1, r2
- strb r1, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start sub_08020904
-sub_08020904: @ 0x08020904
- push {lr}
- movs r1, #4
- strb r1, [r0, #0xc]
- ldrb r2, [r0, #0x10]
- movs r1, #0x80
- orrs r1, r2
- strb r1, [r0, #0x10]
- movs r1, #0xff
- strb r1, [r0, #0x15]
- ldrb r1, [r0, #0x14]
- adds r1, #0x10
- bl UpdateSprite
- pop {pc}
-
- thumb_func_start sub_08020920
-sub_08020920: @ 0x08020920
- push {lr}
- adds r1, r0, #0
- ldrb r0, [r1, #0xe]
- subs r0, #1
- strb r0, [r1, #0xe]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _08020936
- adds r0, r1, #0
- bl sub_08020A30
-_08020936:
- pop {pc}
-
- thumb_func_start sub_08020938
-sub_08020938: @ 0x08020938
- push {r4, r5, lr}
- adds r4, r0, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r5, #0x80
- adds r0, r5, #0
- ands r0, r1
- cmp r0, #0
- bne _08020950
- adds r0, r4, #0
- bl sub_08004274
-_08020950:
- movs r1, #0xa0
- lsls r1, r1, #6
- adds r0, r4, #0
- bl sub_080044EC
- cmp r0, #0
- bne _08020980
- ldrb r0, [r4, #0xe]
- subs r0, #1
- strb r0, [r4, #0xe]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _08020978
- movs r0, #5
- strb r0, [r4, #0xc]
- ldrb r1, [r4, #0x14]
- adds r1, #0xc
- adds r0, r4, #0
- bl UpdateSprite
-_08020978:
- adds r0, r4, #0
- bl sub_08078930
- b _0802099C
-_08020980:
- cmp r0, #1
- bne _0802098C
- movs r0, #0x82
- lsls r0, r0, #1
- bl sub_08004488
-_0802098C:
- ldrb r1, [r4, #0x15]
- adds r0, r5, #0
- ands r0, r1
- cmp r0, #0
- bne _0802099C
- adds r0, r4, #0
- bl sub_080AEFE0
-_0802099C:
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start sub_080209A0
-sub_080209A0: @ 0x080209A0
- push {r4, lr}
- adds r4, r0, #0
- bl sub_08004274
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _080209E2
- ldrb r1, [r4, #0x10]
- movs r0, #0x80
- orrs r0, r1
- strb r0, [r4, #0x10]
- movs r0, #0x80
- lsls r0, r0, #1
- strh r0, [r4, #0x24]
- adds r1, r4, #0
- adds r1, #0x3f
- movs r0, #0x22
- strb r0, [r1]
- adds r0, r4, #0
- bl sub_08020A30
- ldrb r0, [r4, #0x14]
- lsls r0, r0, #3
- strb r0, [r4, #0x15]
- ldrb r1, [r4, #0x14]
- adds r0, r4, #0
- bl UpdateSprite
- b _080209F0
-_080209E2:
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- bne _080209F0
- adds r0, r4, #0
- bl sub_08078930
-_080209F0:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_080209F4
-sub_080209F4: @ 0x080209F4
- push {r4, lr}
- adds r4, r0, #0
- movs r1, #0xe0
- lsls r1, r1, #5
- bl sub_08003FC4
- cmp r0, #0
- bne _08020A14
- movs r1, #7
- movs r0, #7
- strb r0, [r4, #0xc]
- adds r2, r4, #0
- adds r2, #0x29
- ldrb r0, [r2]
- orrs r0, r1
- strb r0, [r2]
-_08020A14:
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r0, [r0]
- cmp r0, #0
- bne _08020A24
- adds r0, r4, #0
- bl sub_08004274
-_08020A24:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_08020A28
-sub_08020A28: @ 0x08020A28
- push {lr}
- bl sub_08004274
- pop {pc}
-
- thumb_func_start sub_08020A30
-sub_08020A30: @ 0x08020A30
- push {r4, r5, lr}
- adds r4, r0, #0
- adds r5, r4, #0
- adds r5, #0x84
- ldrb r0, [r5]
- cmp r0, #1
- bhi _08020A68
- bl Random
- ldr r2, _08020A64 @ =gUnk_080CA6CC
- movs r1, #7
- ands r1, r0
- adds r1, r1, r2
- ldrb r0, [r1]
- strb r0, [r4, #0xe]
- cmp r0, #0
- bne _08020A68
- movs r0, #3
- strb r0, [r4, #0xc]
- movs r0, #0x3c
- strb r0, [r4, #0xe]
- ldrb r0, [r5]
- adds r0, #1
- strb r0, [r5]
- b _08020A7A
- .align 2, 0
-_08020A64: .4byte gUnk_080CA6CC
-_08020A68:
- movs r0, #0
- movs r1, #1
- strb r1, [r4, #0xc]
- adds r1, r4, #0
- adds r1, #0x84
- strb r0, [r1]
- adds r0, r4, #0
- bl sub_08020A7C
-_08020A7A:
- pop {r4, r5, pc}
-
- thumb_func_start sub_08020A7C
-sub_08020A7C: @ 0x08020A7C
- push {r4, r5, r6, lr}
- adds r6, r0, #0
- bl Random
- ldrb r5, [r6, #0x15]
- ldr r4, _08020ACC @ =gUnk_080CA6D4
- movs r1, #3
- bl __modsi3
- adds r0, r0, r4
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- adds r5, r5, r0
- movs r4, #0x18
- ands r5, r4
- adds r0, r6, #0
- bl sub_08049FA0
- cmp r0, #0
- bne _08020ABA
- adds r0, r6, #0
- bl sub_08049EE4
- adds r0, #4
- ands r0, r4
- movs r1, #0x10
- eors r1, r5
- cmp r1, r0
- bne _08020ABA
- adds r5, r1, #0
-_08020ABA:
- strb r5, [r6, #0x15]
- lsrs r0, r5, #3
- strb r0, [r6, #0x14]
- ldrb r1, [r6, #0x14]
- adds r0, r6, #0
- bl UpdateSprite
- pop {r4, r5, r6, pc}
- .align 2, 0
-_08020ACC: .4byte gUnk_080CA6D4
-
- thumb_func_start sub_08020AD0
-sub_08020AD0: @ 0x08020AD0
- push {r4, r5, r6, lr}
- adds r4, r0, #0
- bl sub_08020B6C
- cmp r0, #0
- beq _08020B68
- movs r1, #0x36
- ldrsh r0, [r4, r1]
- cmp r0, #0
- bne _08020B68
- movs r1, #0x2e
- ldrsh r0, [r4, r1]
- ldr r3, _08020B5C @ =gRoomControls
- ldrh r1, [r3, #6]
- subs r0, r0, r1
- asrs r5, r0, #4
- movs r2, #0x3f
- ands r5, r2
- movs r1, #0x32
- ldrsh r0, [r4, r1]
- ldrh r1, [r3, #8]
- subs r0, r0, r1
- asrs r0, r0, #4
- ands r0, r2
- lsls r0, r0, #6
- orrs r5, r0
- adds r6, r4, #0
- adds r6, #0x38
- ldrb r1, [r6]
- adds r0, r5, #0
- bl sub_080002B0
- lsls r0, r0, #0x10
- ldr r1, _08020B60 @ =0xFF8F0000
- adds r0, r0, r1
- lsrs r0, r0, #0x10
- cmp r0, #1
- bhi _08020B68
- movs r0, #6
- strb r0, [r4, #0xc]
- ldrb r1, [r4, #0x10]
- movs r0, #0x7f
- ands r0, r1
- strb r0, [r4, #0x10]
- ldrh r2, [r4, #0x2e]
- movs r1, #0x10
- rsbs r1, r1, #0
- adds r0, r1, #0
- ands r0, r2
- adds r0, #8
- strh r0, [r4, #0x2e]
- ldrh r0, [r4, #0x32]
- ands r1, r0
- adds r1, #0xd
- strh r1, [r4, #0x32]
- movs r0, #0x80
- lsls r0, r0, #0xa
- str r0, [r4, #0x20]
- ldrb r1, [r4, #0x14]
- adds r1, #0x14
- adds r0, r4, #0
- bl UpdateSprite
- ldr r0, _08020B64 @ =0x00004034
- ldrb r2, [r6]
- adds r1, r5, #0
- bl UpdateCollisionLayer
- movs r0, #1
- b _08020B6A
- .align 2, 0
-_08020B5C: .4byte gRoomControls
-_08020B60: .4byte 0xFF8F0000
-_08020B64: .4byte 0x00004034
-_08020B68:
- movs r0, #0
-_08020B6A:
- pop {r4, r5, r6, pc}
-
- thumb_func_start sub_08020B6C
-sub_08020B6C: @ 0x08020B6C
- push {lr}
- adds r0, #0x58
- ldrb r0, [r0]
- subs r0, #0x10
- cmp r0, #3
- bls _08020B7C
- movs r0, #0
- b _08020B7E
-_08020B7C:
- movs r0, #1
-_08020B7E:
- pop {pc}
-
- thumb_func_start sub_08020B80
-sub_08020B80: @ 0x08020B80
- push {r4, lr}
- adds r4, r0, #0
- ldr r1, _08020B9C @ =gUnk_080CAA98
- bl sub_0800129E
- movs r3, #0x16
- rsbs r3, r3, #0
- adds r0, r4, #0
- movs r1, #0
- movs r2, #1
- bl sub_0804A9AC
- pop {r4, pc}
- .align 2, 0
-_08020B9C: .4byte gUnk_080CAA98
-
- thumb_func_start sub_08020BA0
-sub_08020BA0: @ 0x08020BA0
- push {lr}
- ldr r2, _08020BB4 @ =gUnk_080CAAB0
- ldrb r1, [r0, #0xc]
- lsls r1, r1, #2
- adds r1, r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {pc}
- .align 2, 0
-_08020BB4: .4byte gUnk_080CAAB0
-
- thumb_func_start sub_08020BB8
-sub_08020BB8: @ 0x08020BB8
- push {r4, r5, r6, lr}
- adds r4, r0, #0
- adds r0, #0x41
- ldrb r0, [r0]
- movs r2, #0x7f
- adds r1, r2, #0
- ands r1, r0
- cmp r1, #0x1c
- beq _08020BE0
- cmp r1, #0x1c
- bgt _08020BD4
- cmp r1, #0x16
- beq _08020C24
- b _08020D32
-_08020BD4:
- cmp r1, #0x4b
- beq _08020C68
- cmp r1, #0x4c
- bne _08020BDE
- b _08020CF0
-_08020BDE:
- b _08020D32
-_08020BE0:
- movs r0, #0xb
- strb r0, [r4, #0xc]
- ldr r1, _08020C20 @ =gUnk_080CAB0C
- ldrb r0, [r4, #0xa]
- adds r0, r0, r1
- ldrb r0, [r0]
- strb r0, [r4, #0xe]
- adds r1, r4, #0
- adds r1, #0x3f
- movs r0, #0x51
- strb r0, [r1]
- adds r0, r4, #0
- adds r0, #0x3e
- ldrb r0, [r0]
- movs r2, #0x10
- eors r2, r0
- adds r2, #4
- movs r0, #0x18
- ands r2, r0
- asrs r2, r2, #3
- adds r0, r4, #0
- movs r1, #8
- bl sub_08021218
- adds r0, r4, #0
- bl sub_08021588
- adds r0, r4, #0
- movs r1, #0x1c
- bl sub_0804A9FC
- b _08020CE2
- .align 2, 0
-_08020C20: .4byte gUnk_080CAB0C
-_08020C24:
- movs r0, #0xb
- strb r0, [r4, #0xc]
- ldr r1, _08020C64 @ =gUnk_080CAB10
- ldrb r0, [r4, #0xa]
- adds r0, r0, r1
- ldrb r0, [r0]
- strb r0, [r4, #0xe]
- adds r1, r4, #0
- adds r1, #0x3f
- movs r0, #0x51
- strb r0, [r1]
- adds r0, r4, #0
- adds r0, #0x3e
- ldrb r0, [r0]
- movs r2, #0x10
- eors r2, r0
- adds r2, #4
- movs r0, #0x18
- ands r2, r0
- asrs r2, r2, #3
- adds r0, r4, #0
- movs r1, #8
- bl sub_08021218
- adds r0, r4, #0
- bl sub_08021588
- adds r0, r4, #0
- movs r1, #0x1c
- bl sub_0804A9FC
- b _08020CE2
- .align 2, 0
-_08020C64: .4byte gUnk_080CAB10
-_08020C68:
- ldrb r0, [r4, #0xc]
- adds r6, r4, #0
- adds r6, #0x45
- adds r5, r4, #0
- adds r5, #0x78
- cmp r0, #0xd
- beq _08020D58
- cmp r0, #0xf
- beq _08020D58
- cmp r0, #0x13
- beq _08020D58
- cmp r0, #0x12
- beq _08020D58
- adds r0, r4, #0
- adds r0, #0x79
- ldrb r0, [r0]
- cmp r0, #4
- blt _08020CC0
- cmp r0, #6
- ble _08020CAC
- cmp r0, #0xc
- bgt _08020CC0
- cmp r0, #8
- blt _08020CC0
- ldr r0, _08020CA8 @ =gUnk_080CAB04
- ldrb r1, [r4, #0xa]
- adds r1, r1, r0
- ldrb r0, [r1]
- adds r1, r4, #0
- adds r1, #0x7a
- b _08020CC6
- .align 2, 0
-_08020CA8: .4byte gUnk_080CAB04
-_08020CAC:
- ldr r0, _08020CBC @ =gUnk_080CAB00
- ldrb r1, [r4, #0xa]
- adds r1, r1, r0
- ldrb r0, [r1]
- adds r1, r4, #0
- adds r1, #0x7a
- b _08020CC6
- .align 2, 0
-_08020CBC: .4byte gUnk_080CAB00
-_08020CC0:
- adds r1, r4, #0
- adds r1, #0x7a
- movs r0, #0
-_08020CC6:
- strb r0, [r1]
- movs r0, #0xa
- strb r0, [r4, #0xc]
- ldrb r2, [r4, #0x14]
- adds r0, r4, #0
- movs r1, #0xb
- bl sub_08021218
- ldr r0, _08020CEC @ =0x0000015D
- bl sub_08004488
- adds r0, r4, #0
- bl sub_08021588
-_08020CE2:
- adds r6, r4, #0
- adds r6, #0x45
- adds r5, r4, #0
- adds r5, #0x78
- b _08020D58
- .align 2, 0
-_08020CEC: .4byte 0x0000015D
-_08020CF0:
- ldrb r0, [r4, #0xc]
- adds r6, r4, #0
- adds r6, #0x45
- adds r5, r4, #0
- adds r5, #0x78
- cmp r0, #0xf
- bne _08020D58
- movs r1, #0xff
- ldr r0, [r4, #0x54]
- cmp r0, #0
- beq _08020D0E
- adds r0, #0x41
- ldrb r0, [r0]
- adds r1, r2, #0
- ands r1, r0
-_08020D0E:
- cmp r1, #2
- bne _08020D28
- ldr r0, _08020D24 @ =gUnk_080CAB08
- ldrb r1, [r4, #0xa]
- adds r1, r1, r0
- ldrb r1, [r1]
- adds r0, r4, #0
- bl sub_080213D0
- b _08020D58
- .align 2, 0
-_08020D24: .4byte gUnk_080CAB08
-_08020D28:
- adds r0, r4, #0
- movs r1, #0
- bl sub_080213D0
- b _08020D58
-_08020D32:
- adds r2, r4, #0
- adds r2, #0x45
- adds r0, r4, #0
- adds r0, #0x78
- ldrb r1, [r2]
- adds r6, r2, #0
- adds r5, r0, #0
- ldrb r0, [r5]
- cmp r1, r0
- beq _08020D58
- adds r0, r4, #0
- bl sub_08021588
- adds r0, r4, #0
- bl sub_08021390
- adds r0, r4, #0
- bl sub_0804AA1C
-_08020D58:
- ldrb r0, [r6]
- strb r0, [r5]
- ldr r1, _08020D68 @ =gUnk_080CAA98
- adds r0, r4, #0
- bl sub_0804AA30
- pop {r4, r5, r6, pc}
- .align 2, 0
-_08020D68: .4byte gUnk_080CAA98
-
- thumb_func_start nullsub_129
-nullsub_129: @ 0x08020D6C
- bx lr
- .align 2, 0
-
- thumb_func_start sub_08020D70
-sub_08020D70: @ 0x08020D70
- push {r4, lr}
- adds r4, r0, #0
- bl sub_0804A720
- movs r1, #0
- movs r0, #1
- strb r0, [r4, #0xc]
- adds r0, r4, #0
- adds r0, #0x75
- strb r1, [r0]
- subs r0, #0x30
- ldrb r1, [r0]
- adds r0, #0x33
- strb r1, [r0]
- movs r0, #0xff
- strb r0, [r4, #0x14]
- adds r0, r4, #0
- movs r1, #0
- movs r2, #2
- bl sub_08021218
- pop {r4, pc}
-
- thumb_func_start sub_08020D9C
-sub_08020D9C: @ 0x08020D9C
- push {r4, lr}
- adds r4, r0, #0
- movs r1, #1
- bl sub_08049FDC
- cmp r0, #0
- beq _08020DB0
- adds r0, r4, #0
- bl sub_080213F0
-_08020DB0:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_08020DB4
-sub_08020DB4: @ 0x08020DB4
- push {r4, lr}
- adds r4, r0, #0
- bl sub_080042B8
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _08020DD0
- adds r0, r4, #0
- bl sub_08021390
-_08020DD0:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_08020DD4
-sub_08020DD4: @ 0x08020DD4
- push {r4, lr}
- adds r4, r0, #0
- bl sub_080214FC
- cmp r0, #0
- beq _08020DE8
- adds r0, r4, #0
- bl sub_080213F0
- b _08020E26
-_08020DE8:
- adds r1, r4, #0
- adds r1, #0x76
- ldrh r0, [r1]
- subs r0, #1
- strh r0, [r1]
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _08020E08
- movs r0, #5
- strb r0, [r4, #0xc]
- ldrb r2, [r4, #0x14]
- adds r0, r4, #0
- movs r1, #5
- bl sub_08021218
- b _08020E26
-_08020E08:
- ldrb r0, [r4, #0xe]
- subs r0, #1
- strb r0, [r4, #0xe]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _08020E1A
- adds r0, r4, #0
- bl sub_08021540
-_08020E1A:
- adds r0, r4, #0
- bl sub_080AEF88
- adds r0, r4, #0
- bl sub_080042B8
-_08020E26:
- pop {r4, pc}
-
- thumb_func_start sub_08020E28
-sub_08020E28: @ 0x08020E28
- push {r4, lr}
- adds r4, r0, #0
- bl sub_080042B8
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _08020E44
- adds r0, r4, #0
- bl sub_080213B0
-_08020E44:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_08020E48
-sub_08020E48: @ 0x08020E48
- push {r4, lr}
- adds r4, r0, #0
- bl sub_080214FC
- cmp r0, #0
- beq _08020E5C
- adds r0, r4, #0
- bl sub_080213F0
- b _08020E76
-_08020E5C:
- adds r0, r4, #0
- bl sub_080042B8
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _08020E76
- adds r0, r4, #0
- bl sub_080213B0
-_08020E76:
- pop {r4, pc}
-
- thumb_func_start sub_08020E78
-sub_08020E78: @ 0x08020E78
- push {r4, lr}
- adds r4, r0, #0
- bl sub_080042B8
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _08020E94
- adds r0, r4, #0
- bl sub_08021390
-_08020E94:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_08020E98
-sub_08020E98: @ 0x08020E98
- push {r4, r5, lr}
- adds r4, r0, #0
- movs r1, #1
- movs r2, #0x38
- bl sub_08049F64
- cmp r0, #0
- beq _08020EF6
- ldr r5, _08020EDC @ =gUnk_020000B0
- ldr r1, [r5]
- adds r0, r4, #0
- bl sub_0802169C
- cmp r0, #0
- bne _08020ECA
- ldr r0, [r5]
- adds r1, r4, #0
- bl sub_080045C4
- strb r0, [r4, #0x15]
- adds r0, r4, #0
- bl sub_080AEF88
- cmp r0, #0
- bne _08020EE0
-_08020ECA:
- movs r0, #8
- strb r0, [r4, #0xc]
- ldrb r2, [r4, #0x14]
- adds r0, r4, #0
- movs r1, #7
- bl sub_08021218
- b _08020F26
- .align 2, 0
-_08020EDC: .4byte gUnk_020000B0
-_08020EE0:
- ldrb r0, [r4, #0x15]
- movs r1, #0x10
- eors r0, r1
- strb r0, [r4, #0x15]
- adds r0, r4, #0
- bl sub_0802124C
- adds r0, r4, #0
- bl sub_08021644
- b _08020F26
-_08020EF6:
- ldr r0, _08020F08 @ =gUnk_020000B0
- ldr r1, [r0]
- cmp r1, #0
- bne _08020F0C
- adds r0, r4, #0
- bl sub_08021414
- b _08020F26
- .align 2, 0
-_08020F08: .4byte gUnk_020000B0
-_08020F0C:
- adds r0, r4, #0
- bl sub_080045C4
- strb r0, [r4, #0x15]
- adds r0, r4, #0
- bl sub_080AEF88
- adds r0, r4, #0
- bl sub_0802124C
- adds r0, r4, #0
- bl sub_08021644
-_08020F26:
- pop {r4, r5, pc}
-
- thumb_func_start sub_08020F28
-sub_08020F28: @ 0x08020F28
- push {r4, lr}
- adds r4, r0, #0
- bl sub_080042B8
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _08020F44
- adds r0, r4, #0
- bl sub_08021400
-_08020F44:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_08020F48
-sub_08020F48: @ 0x08020F48
- push {r4, r5, lr}
- adds r4, r0, #0
- movs r1, #1
- movs r2, #0x48
- bl sub_08049F64
- cmp r0, #0
- beq _08020FA4
- ldr r5, _08020F98 @ =gUnk_020000B0
- ldr r1, [r5]
- adds r0, r4, #0
- bl sub_08021664
- cmp r0, #0
- beq _08020F9C
- ldr r1, [r5]
- adds r0, r4, #0
- movs r2, #9
- bl sub_0804A044
- adds r2, r0, #0
- cmp r2, #0xff
- beq _08020F9C
- movs r0, #0xe
- strb r0, [r4, #0xc]
- lsrs r2, r2, #3
- adds r0, r4, #0
- movs r1, #0xd
- bl sub_08021218
- adds r0, r4, #0
- movs r1, #0
- movs r2, #1
- bl sub_0804A98C
- cmp r0, #0
- beq _08020FAA
- str r4, [r0, #0x50]
- str r0, [r4, #0x54]
- b _08020FAA
- .align 2, 0
-_08020F98: .4byte gUnk_020000B0
-_08020F9C:
- adds r0, r4, #0
- bl sub_08021424
- b _08020FAA
-_08020FA4:
- adds r0, r4, #0
- bl sub_08021390
-_08020FAA:
- pop {r4, r5, pc}
-
- thumb_func_start sub_08020FAC
-sub_08020FAC: @ 0x08020FAC
- push {lr}
- adds r2, r0, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _08020FDC
- adds r1, r2, #0
- adds r1, #0x7a
- ldrb r0, [r1]
- cmp r0, #0
- beq _08020FCC
- subs r0, #1
- strb r0, [r1]
- b _08020FE2
-_08020FCC:
- adds r1, r2, #0
- adds r1, #0x3d
- movs r0, #0xf8
- strb r0, [r1]
- adds r0, r2, #0
- bl sub_08021390
- b _08020FE2
-_08020FDC:
- adds r0, r2, #0
- bl sub_080042B8
-_08020FE2:
- pop {pc}
-
- thumb_func_start sub_08020FE4
-sub_08020FE4: @ 0x08020FE4
- push {r4, lr}
- adds r4, r0, #0
- bl sub_080042B8
- ldrb r0, [r4, #0xe]
- subs r0, #1
- strb r0, [r4, #0xe]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _0802100C
- movs r0, #0xc
- strb r0, [r4, #0xc]
- ldrb r2, [r4, #0x14]
- adds r0, r4, #0
- movs r1, #9
- bl sub_08021218
- adds r0, r4, #0
- bl sub_0804AA1C
-_0802100C:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_08021010
-sub_08021010: @ 0x08021010
- push {r4, lr}
- adds r4, r0, #0
- bl sub_080042B8
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _08021034
- adds r1, r4, #0
- adds r1, #0x3f
- movs r0, #0x56
- strb r0, [r1]
- adds r0, r4, #0
- bl sub_080213F0
-_08021034:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_08021038
-sub_08021038: @ 0x08021038
- push {r4, r5, lr}
- adds r4, r0, #0
- ldr r0, [r4, #0x54]
- cmp r0, #0
- bne _08021066
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r0, [r0]
- cmp r0, #0
- beq _08021066
- adds r0, r4, #0
- movs r1, #0
- movs r2, #0
- bl sub_0804A98C
- cmp r0, #0
- beq _0802105E
- str r4, [r0, #0x50]
- str r0, [r4, #0x54]
-_0802105E:
- movs r0, #0x87
- lsls r0, r0, #1
- bl sub_08004488
-_08021066:
- adds r5, r4, #0
- adds r5, #0x5a
- ldrb r1, [r5]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _08021090
- adds r0, r4, #0
- bl sub_08021588
- adds r1, r4, #0
- adds r1, #0x7c
- ldrb r0, [r1]
- cmp r0, #0
- beq _08021088
- subs r0, #1
- b _080210A2
-_08021088:
- adds r0, r4, #0
- bl sub_08021390
- b _080210A4
-_08021090:
- adds r0, r4, #0
- bl sub_080042B8
- ldrb r0, [r5]
- cmp r0, #4
- bne _080210A4
- adds r1, r4, #0
- adds r1, #0x3f
- movs r0, #0x51
-_080210A2:
- strb r0, [r1]
-_080210A4:
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start sub_080210A8
-sub_080210A8: @ 0x080210A8
- push {r4, lr}
- adds r4, r0, #0
- bl sub_080042B8
- adds r2, r4, #0
- adds r2, #0x5a
- ldrb r1, [r2]
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- beq _080210D4
- movs r0, #0
- strb r0, [r2]
- adds r0, r4, #0
- bl sub_08021588
- ldr r0, _080210D0 @ =0x0000015D
- bl sub_08004488
- b _080210E2
- .align 2, 0
-_080210D0: .4byte 0x0000015D
-_080210D4:
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _080210E2
- adds r0, r4, #0
- bl sub_08021390
-_080210E2:
- pop {r4, pc}
-
- thumb_func_start sub_080210E4
-sub_080210E4: @ 0x080210E4
- push {r4, lr}
- adds r4, r0, #0
- bl sub_080042B8
- adds r2, r4, #0
- adds r2, #0x5a
- ldrb r1, [r2]
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- beq _0802111A
- movs r0, #0xfe
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, #0
- movs r1, #0
- movs r2, #2
- bl sub_0804A98C
- cmp r0, #0
- beq _08021112
- str r4, [r0, #0x50]
- str r0, [r4, #0x54]
-_08021112:
- movs r0, #0x87
- lsls r0, r0, #1
- bl sub_08004488
-_0802111A:
- adds r0, r4, #0
- bl sub_08021644
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x10
- ands r0, r1
- cmp r0, #0
- beq _08021154
- adds r0, r4, #0
- bl sub_080AEF88
- cmp r0, #0
- beq _0802114A
- ldr r0, [r4, #0x54]
- cmp r0, #0
- beq _08021154
- adds r0, #0x41
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _08021154
-_0802114A:
- adds r0, r4, #0
- movs r1, #0
- bl sub_080213D0
- b _0802116C
-_08021154:
- adds r1, r4, #0
- adds r1, #0x76
- ldrh r0, [r1]
- subs r0, #1
- strh r0, [r1]
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _0802116C
- adds r0, r4, #0
- movs r1, #0
- bl sub_080213D0
-_0802116C:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_08021170
-sub_08021170: @ 0x08021170
- push {lr}
- adds r2, r0, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _08021198
- adds r1, r2, #0
- adds r1, #0x7b
- ldrb r0, [r1]
- cmp r0, #0
- beq _08021190
- subs r0, #1
- strb r0, [r1]
- b _0802119E
-_08021190:
- adds r0, r2, #0
- bl sub_08021390
- b _0802119E
-_08021198:
- adds r0, r2, #0
- bl sub_080042B8
-_0802119E:
- pop {pc}
-
- thumb_func_start sub_080211A0
-sub_080211A0: @ 0x080211A0
- push {r4, lr}
- adds r4, r0, #0
- bl sub_080214FC
- cmp r0, #0
- beq _080211B4
- adds r0, r4, #0
- bl sub_08021390
- b _080211CE
-_080211B4:
- adds r0, r4, #0
- bl sub_080042B8
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _080211CE
- adds r0, r4, #0
- bl sub_080213B0
-_080211CE:
- pop {r4, pc}
-
- thumb_func_start sub_080211D0
-sub_080211D0: @ 0x080211D0
- push {r4, lr}
- adds r4, r0, #0
- bl sub_080042B8
- adds r0, r4, #0
- bl sub_0802159C
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _080211F2
- adds r0, r4, #0
- bl sub_08021390
-_080211F2:
- pop {r4, pc}
-
- thumb_func_start sub_080211F4
-sub_080211F4: @ 0x080211F4
- push {r4, lr}
- adds r4, r0, #0
- bl sub_080042B8
- adds r0, r4, #0
- bl sub_08021600
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _08021216
- adds r0, r4, #0
- bl sub_08021390
-_08021216:
- pop {r4, pc}
-
- thumb_func_start sub_08021218
-sub_08021218: @ 0x08021218
- push {r4, lr}
- adds r3, r0, #0
- adds r4, r3, #0
- adds r4, #0x74
- ldrb r0, [r4]
- cmp r0, r1
- bne _0802122C
- ldrb r0, [r3, #0x14]
- cmp r0, r2
- beq _08021244
-_0802122C:
- strb r2, [r3, #0x14]
- strb r1, [r4]
- lsls r0, r1, #1
- ldr r1, _08021248 @ =gUnk_080CAB14
- adds r0, r0, r1
- ldrb r1, [r0, #1]
- strh r1, [r3, #0x12]
- ldrb r1, [r0]
- adds r1, r1, r2
- adds r0, r3, #0
- bl LoadAnimation
-_08021244:
- pop {r4, pc}
- .align 2, 0
-_08021248: .4byte gUnk_080CAB14
-
- thumb_func_start sub_0802124C
-sub_0802124C: @ 0x0802124C
- push {r4, lr}
- adds r4, r0, #0
- ldrb r0, [r4, #0x14]
- ldrb r1, [r4, #0x15]
- bl sub_08021274
- adds r2, r0, #0
- cmp r2, #0xff
- beq _0802126C
- adds r0, r4, #0
- adds r0, #0x74
- ldrb r1, [r0]
- adds r0, r4, #0
- bl sub_08021218
- b _08021272
-_0802126C:
- adds r0, r4, #0
- bl sub_080042B8
-_08021272:
- pop {r4, pc}
-
- thumb_func_start sub_08021274
-sub_08021274: @ 0x08021274
- push {lr}
- adds r2, r0, #0
- movs r0, #7
- ands r0, r1
- subs r0, #3
- cmp r0, #2
- bhi _0802129A
- movs r3, #0x18
- adds r0, r1, #0
- ands r0, r3
- lsrs r0, r0, #3
- cmp r0, r2
- beq _080212AA
- adds r0, r1, #0
- adds r0, #8
- ands r0, r3
- lsrs r0, r0, #3
- cmp r0, r2
- beq _080212AA
-_0802129A:
- adds r0, r1, #4
- movs r1, #0x18
- ands r0, r1
- lsrs r1, r0, #3
- cmp r2, r1
- beq _080212AA
- adds r0, r1, #0
- b _080212AC
-_080212AA:
- movs r0, #0xff
-_080212AC:
- pop {pc}
- .align 2, 0
-
- thumb_func_start sub_080212B0
-sub_080212B0: @ 0x080212B0
- push {r4, r5, lr}
- adds r5, r0, #0
- adds r1, r5, #0
- adds r1, #0x75
- ldrb r0, [r1]
- cmp r0, #1
- beq _080212D0
- cmp r0, #2
- beq _080212DC
- movs r0, #1
- strb r0, [r1]
- ldr r4, _080212CC @ =gUnk_080CAB3A
- b _080212E2
- .align 2, 0
-_080212CC: .4byte gUnk_080CAB3A
-_080212D0:
- movs r0, #2
- strb r0, [r1]
- ldr r4, _080212D8 @ =gUnk_080CAB42
- b _080212E2
- .align 2, 0
-_080212D8: .4byte gUnk_080CAB42
-_080212DC:
- movs r0, #0
- strb r0, [r1]
- ldr r4, _0802131C @ =gUnk_080CAB4A
-_080212E2:
- bl Random
- movs r1, #7
- ands r1, r0
- adds r1, r1, r4
- ldrb r2, [r1]
- ldrb r0, [r5, #0xa]
- cmp r0, #1
- bhi _08021306
- cmp r2, #2
- bne _08021306
- ldr r4, _08021320 @ =gUnk_080CAB52
- bl Random
- movs r1, #3
- ands r1, r0
- adds r1, r1, r4
- ldrb r2, [r1]
-_08021306:
- movs r0, #0
- str r0, [r5, #0x54]
- ldr r1, _08021324 @ =gUnk_080CAB58
- lsls r0, r2, #2
- adds r0, r0, r1
- ldr r1, [r0]
- adds r0, r5, #0
- bl _call_via_r1
- pop {r4, r5, pc}
- .align 2, 0
-_0802131C: .4byte gUnk_080CAB4A
-_08021320: .4byte gUnk_080CAB52
-_08021324: .4byte gUnk_080CAB58
-
- thumb_func_start sub_08021328
-sub_08021328: @ 0x08021328
- push {lr}
- movs r1, #0xd
- strb r1, [r0, #0xc]
- ldr r2, _08021348 @ =gUnk_080CAB68
- ldrb r1, [r0, #0xa]
- adds r1, r1, r2
- ldrb r2, [r1]
- adds r1, r0, #0
- adds r1, #0x7c
- strb r2, [r1]
- ldrb r2, [r0, #0x14]
- movs r1, #0xc
- bl sub_08021218
- pop {pc}
- .align 2, 0
-_08021348: .4byte gUnk_080CAB68
-
- thumb_func_start sub_0802134C
-sub_0802134C: @ 0x0802134C
- push {lr}
- movs r1, #0xf
- strb r1, [r0, #0xc]
- ldrb r1, [r0, #0x14]
- lsls r1, r1, #3
- strb r1, [r0, #0x15]
- movs r1, #0x80
- lsls r1, r1, #2
- strh r1, [r0, #0x24]
- adds r2, r0, #0
- adds r2, #0x76
- movs r1, #0x78
- strh r1, [r2]
- ldrb r2, [r0, #0x14]
- movs r1, #0xe
- bl sub_08021218
- pop {pc}
-
- thumb_func_start sub_08021370
-sub_08021370: @ 0x08021370
- push {lr}
- movs r1, #0x12
- strb r1, [r0, #0xc]
- ldrb r2, [r0, #0x14]
- movs r1, #0x10
- bl sub_08021218
- pop {pc}
-
- thumb_func_start sub_08021380
-sub_08021380: @ 0x08021380
- push {lr}
- movs r1, #0x13
- strb r1, [r0, #0xc]
- ldrb r2, [r0, #0x14]
- movs r1, #0x11
- bl sub_08021218
- pop {pc}
-
- thumb_func_start sub_08021390
-sub_08021390: @ 0x08021390
- push {lr}
- movs r1, #7
- strb r1, [r0, #0xc]
- movs r1, #0x80
- lsls r1, r1, #2
- strh r1, [r0, #0x24]
- adds r2, r0, #0
- adds r2, #0x3f
- movs r1, #0x56
- strb r1, [r2]
- ldrb r2, [r0, #0x14]
- movs r1, #6
- bl sub_08021218
- pop {pc}
- .align 2, 0
-
- thumb_func_start sub_080213B0
-sub_080213B0: @ 0x080213B0
- push {lr}
- movs r1, #3
- strb r1, [r0, #0xc]
- movs r1, #1
- strb r1, [r0, #0xe]
- movs r1, #0xc0
- strh r1, [r0, #0x24]
- adds r2, r0, #0
- adds r2, #0x76
- movs r1, #0xf0
- strh r1, [r2]
- ldrb r2, [r0, #0x14]
- movs r1, #3
- bl sub_08021218
- pop {pc}
-
- thumb_func_start sub_080213D0
-sub_080213D0: @ 0x080213D0
- push {r4, lr}
- adds r4, r0, #0
- movs r0, #0x10
- strb r0, [r4, #0xc]
- adds r0, r4, #0
- adds r0, #0x7b
- strb r1, [r0]
- ldrb r2, [r4, #0x14]
- adds r0, r4, #0
- movs r1, #0xf
- bl sub_08021218
- adds r0, r4, #0
- bl sub_08021588
- pop {r4, pc}
-
- thumb_func_start sub_080213F0
-sub_080213F0: @ 0x080213F0
- push {lr}
- movs r1, #6
- strb r1, [r0, #0xc]
- ldrb r2, [r0, #0x14]
- movs r1, #1
- bl sub_08021218
- pop {pc}
-
- thumb_func_start sub_08021400
-sub_08021400: @ 0x08021400
- push {lr}
- movs r1, #9
- strb r1, [r0, #0xc]
- movs r1, #0x60
- strh r1, [r0, #0x24]
- ldrb r2, [r0, #0x14]
- movs r1, #0xa
- bl sub_08021218
- pop {pc}
-
- thumb_func_start sub_08021414
-sub_08021414: @ 0x08021414
- push {lr}
- movs r1, #0x11
- strb r1, [r0, #0xc]
- ldrb r2, [r0, #0x14]
- movs r1, #5
- bl sub_08021218
- pop {pc}
-
- thumb_func_start sub_08021424
-sub_08021424: @ 0x08021424
- push {r4, r5, lr}
- adds r5, r0, #0
- ldr r0, _08021450 @ =gUnk_020000B0
- ldr r1, [r0]
- adds r0, r5, #0
- bl sub_080045C4
- adds r1, r0, #0
- ldrb r0, [r5, #0x14]
- bl sub_08021274
- adds r4, r0, #0
- cmp r4, #0xff
- beq _08021454
- adds r0, r5, #0
- adds r0, #0x74
- ldrb r1, [r0]
- adds r0, r5, #0
- adds r2, r4, #0
- bl sub_08021218
- b _08021456
- .align 2, 0
-_08021450: .4byte gUnk_020000B0
-_08021454:
- ldrb r4, [r5, #0x14]
-_08021456:
- cmp r4, #1
- beq _08021490
- cmp r4, #1
- blo _08021478
- cmp r4, #2
- beq _080214A8
- ldr r0, _08021474 @ =gUnk_020000B0
- ldr r1, [r0]
- movs r2, #0x2e
- ldrsh r0, [r1, r2]
- adds r2, r0, #0
- adds r2, #0x24
- movs r4, #0x32
- ldrsh r3, [r1, r4]
- b _080214B8
- .align 2, 0
-_08021474: .4byte gUnk_020000B0
-_08021478:
- ldr r0, _0802148C @ =gUnk_020000B0
- ldr r0, [r0]
- movs r1, #0x2e
- ldrsh r2, [r0, r1]
- movs r4, #0x32
- ldrsh r0, [r0, r4]
- adds r3, r0, #0
- adds r3, #0x2c
- b _080214B8
- .align 2, 0
-_0802148C: .4byte gUnk_020000B0
-_08021490:
- ldr r0, _080214A4 @ =gUnk_020000B0
- ldr r1, [r0]
- movs r2, #0x2e
- ldrsh r0, [r1, r2]
- adds r2, r0, #0
- subs r2, #0x24
- movs r4, #0x32
- ldrsh r3, [r1, r4]
- b _080214B8
- .align 2, 0
-_080214A4: .4byte gUnk_020000B0
-_080214A8:
- ldr r0, _080214F0 @ =gUnk_020000B0
- ldr r0, [r0]
- movs r1, #0x2e
- ldrsh r2, [r0, r1]
- movs r4, #0x32
- ldrsh r0, [r0, r4]
- adds r3, r0, #0
- subs r3, #0x1d
-_080214B8:
- movs r1, #0x2e
- ldrsh r0, [r5, r1]
- subs r0, r2, r0
- adds r0, #3
- cmp r0, #6
- bhi _080214D0
- movs r4, #0x32
- ldrsh r0, [r5, r4]
- subs r0, r3, r0
- adds r0, #2
- cmp r0, #4
- bls _080214E8
-_080214D0:
- movs r1, #0x2e
- ldrsh r0, [r5, r1]
- movs r4, #0x32
- ldrsh r1, [r5, r4]
- bl sub_080045D4
- strb r0, [r5, #0x15]
- adds r0, r5, #0
- bl sub_080AEF88
- cmp r0, #0
- bne _080214F4
-_080214E8:
- adds r0, r5, #0
- bl sub_080212B0
- b _080214FA
- .align 2, 0
-_080214F0: .4byte gUnk_020000B0
-_080214F4:
- adds r0, r5, #0
- bl sub_080042B8
-_080214FA:
- pop {r4, r5, pc}
-
- thumb_func_start sub_080214FC
-sub_080214FC: @ 0x080214FC
- push {r4, lr}
- adds r4, r0, #0
- movs r1, #1
- bl sub_08049FDC
- cmp r0, #0
- beq _0802153C
- ldr r0, _08021538 @ =gUnk_020000B0
- ldr r1, [r0]
- adds r0, r4, #0
- bl sub_080045C4
- adds r2, r0, #0
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x1f
- ands r0, r1
- subs r0, r2, r0
- subs r0, #2
- cmp r0, #4
- bhi _0802153C
- adds r0, r2, #4
- movs r1, #0x18
- ands r0, r1
- lsrs r0, r0, #3
- strb r0, [r4, #0x14]
- movs r0, #1
- b _0802153E
- .align 2, 0
-_08021538: .4byte gUnk_020000B0
-_0802153C:
- movs r0, #0
-_0802153E:
- pop {r4, pc}
-
- thumb_func_start sub_08021540
-sub_08021540: @ 0x08021540
- push {r4, r5, lr}
- adds r4, r0, #0
- bl Random
- adds r5, r0, #0
- adds r0, r4, #0
- bl sub_08049FA0
- cmp r0, #0
- bne _08021566
- movs r0, #1
- ands r0, r5
- cmp r0, #0
- beq _08021566
- adds r0, r4, #0
- bl sub_08049EE4
- adds r1, r0, #4
- b _08021568
-_08021566:
- lsrs r1, r5, #0x10
-_08021568:
- movs r0, #0x18
- ands r1, r0
- strb r1, [r4, #0x15]
- ldrb r0, [r4, #0x14]
- bl sub_08021274
- adds r2, r0, #0
- cmp r2, #0xff
- beq _08021582
- adds r0, r4, #0
- movs r1, #3
- bl sub_08021218
-_08021582:
- movs r0, #0x1e
- strb r0, [r4, #0xe]
- pop {r4, r5, pc}
-
- thumb_func_start sub_08021588
-sub_08021588: @ 0x08021588
- push {lr}
- adds r2, r0, #0
- ldr r1, [r2, #0x54]
- cmp r1, #0
- beq _08021598
- movs r0, #0
- str r0, [r1, #0x50]
- str r0, [r2, #0x54]
-_08021598:
- pop {pc}
- .align 2, 0
-
- thumb_func_start sub_0802159C
-sub_0802159C: @ 0x0802159C
- push {r4, lr}
- adds r4, r0, #0
- adds r2, r4, #0
- adds r2, #0x5a
- ldrb r1, [r2]
- adds r0, r1, #0
- cmp r0, #1
- bne _080215D4
- movs r0, #0
- strb r0, [r2]
- adds r1, r4, #0
- adds r1, #0x3f
- movs r0, #0x51
- strb r0, [r1]
- adds r0, r4, #0
- movs r1, #0
- movs r2, #3
- bl sub_0804A98C
- cmp r0, #0
- beq _080215CA
- str r4, [r0, #0x50]
- str r0, [r4, #0x54]
-_080215CA:
- movs r0, #0x8b
- lsls r0, r0, #1
- bl sub_08004488
- b _080215F8
-_080215D4:
- cmp r0, #2
- bne _080215E4
- movs r0, #0
- strb r0, [r2]
- adds r0, r4, #0
- bl sub_08021588
- b _080215F8
-_080215E4:
- movs r0, #0x20
- ands r0, r1
- cmp r0, #0
- beq _080215F8
- movs r0, #0xdf
- ands r0, r1
- strb r0, [r2]
- ldr r0, _080215FC @ =0x00000115
- bl sub_08004488
-_080215F8:
- pop {r4, pc}
- .align 2, 0
-_080215FC: .4byte 0x00000115
-
- thumb_func_start sub_08021600
-sub_08021600: @ 0x08021600
- push {r4, lr}
- adds r4, r0, #0
- adds r1, r4, #0
- adds r1, #0x5a
- ldrb r0, [r1]
- cmp r0, #1
- bne _08021634
- movs r0, #0
- strb r0, [r1]
- subs r1, #0x1b
- movs r0, #0x51
- strb r0, [r1]
- adds r0, r4, #0
- movs r1, #0
- movs r2, #4
- bl sub_0804A98C
- cmp r0, #0
- beq _0802162A
- str r4, [r0, #0x50]
- str r0, [r4, #0x54]
-_0802162A:
- movs r0, #0x87
- lsls r0, r0, #1
- bl sub_08004488
- b _08021642
-_08021634:
- cmp r0, #2
- bne _08021642
- movs r0, #0
- strb r0, [r1]
- adds r0, r4, #0
- bl sub_08021588
-_08021642:
- pop {r4, pc}
-
- thumb_func_start sub_08021644
-sub_08021644: @ 0x08021644
- push {lr}
- adds r2, r0, #0
- adds r2, #0x5a
- ldrb r1, [r2]
- movs r0, #0x20
- ands r0, r1
- cmp r0, #0
- beq _08021660
- movs r0, #0xdf
- ands r0, r1
- strb r0, [r2]
- movs r0, #0x7d
- bl sub_08004488
-_08021660:
- pop {pc}
- .align 2, 0
-
- thumb_func_start sub_08021664
-sub_08021664: @ 0x08021664
- push {lr}
- ldrb r2, [r0, #0x14]
- cmp r2, #1
- beq _08021690
- cmp r2, #1
- bgt _08021676
- cmp r2, #0
- beq _08021680
- b _08021698
-_08021676:
- cmp r2, #2
- beq _08021688
- cmp r2, #3
- beq _08021690
- b _08021698
-_08021680:
- movs r2, #0x22
- bl sub_08049F1C
- b _0802169A
-_08021688:
- movs r2, #0x13
- bl sub_08049F1C
- b _0802169A
-_08021690:
- movs r2, #0x1a
- bl sub_08049F1C
- b _0802169A
-_08021698:
- movs r0, #0
-_0802169A:
- pop {pc}
-
- thumb_func_start sub_0802169C
-sub_0802169C: @ 0x0802169C
- push {lr}
- ldrb r2, [r0, #0x14]
- cmp r2, #1
- beq _080216C0
- cmp r2, #1
- bgt _080216AE
- cmp r2, #0
- beq _080216B8
- b _080216CE
-_080216AE:
- cmp r2, #2
- beq _080216BC
- cmp r2, #3
- beq _080216C0
- b _080216CE
-_080216B8:
- movs r2, #0x2c
- b _080216C2
-_080216BC:
- movs r2, #0x1d
- b _080216C2
-_080216C0:
- movs r2, #0x24
-_080216C2:
- bl sub_08049F1C
- cmp r0, #0
- bne _080216CE
- movs r0, #1
- b _080216D0
-_080216CE:
- movs r0, #0
-_080216D0:
- pop {pc}
- .align 2, 0
-
- thumb_func_start sub_080216D4
-sub_080216D4: @ 0x080216D4
- push {lr}
- ldr r1, _080216E0 @ =gUnk_080CB570
- bl sub_0800129E
- pop {pc}
- .align 2, 0
-_080216E0: .4byte gUnk_080CB570
-
- thumb_func_start sub_080216E4
-sub_080216E4: @ 0x080216E4
- push {lr}
- ldr r2, _080216F8 @ =gUnk_080CB588
- ldrb r1, [r0, #0xc]
- lsls r1, r1, #2
- adds r1, r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {pc}
- .align 2, 0
-_080216F8: .4byte gUnk_080CB588
-
- thumb_func_start sub_080216FC
-sub_080216FC: @ 0x080216FC
- push {lr}
- adds r2, r0, #0
- adds r0, #0x41
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _0802171A
- adds r0, r2, #0
- movs r1, #3
- movs r2, #0x80
- bl CreateFx
- bl sub_0805E780
-_0802171A:
- pop {pc}
-
- thumb_func_start nullsub_7
-nullsub_7: @ 0x0802171C
- bx lr
- .align 2, 0
-
- thumb_func_start sub_08021720
-sub_08021720: @ 0x08021720
- movs r3, #1
- movs r1, #1
- strb r1, [r0, #0xc]
- ldrb r2, [r0, #0x18]
- subs r1, #5
- ands r1, r2
- orrs r1, r3
- strb r1, [r0, #0x18]
- ldrb r1, [r0, #0xa]
- strb r1, [r0, #0x1e]
- ldrb r2, [r0, #0x19]
- movs r1, #0x3f
- ands r1, r2
- movs r2, #0x40
- orrs r1, r2
- strb r1, [r0, #0x19]
- adds r0, #0x29
- ldrb r2, [r0]
- movs r1, #8
- rsbs r1, r1, #0
- ands r1, r2
- movs r2, #3
- orrs r1, r2
- strb r1, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start nullsub_08
-nullsub_08: @ 0x08021754
- bx lr
- .align 2, 0
-
- thumb_func_start sub_08021758
-sub_08021758: @ 0x08021758
- push {lr}
- ldr r1, _08021764 @ =gUnk_080CB590
- bl sub_0800129E
- pop {pc}
- .align 2, 0
-_08021764: .4byte gUnk_080CB590
-
- thumb_func_start sub_08021768
-sub_08021768: @ 0x08021768
- push {lr}
- ldr r2, _0802177C @ =gUnk_080CB5A8
- ldrb r1, [r0, #0xc]
- lsls r1, r1, #2
- adds r1, r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {pc}
- .align 2, 0
-_0802177C: .4byte gUnk_080CB5A8
-
- thumb_func_start sub_08021780
-sub_08021780: @ 0x08021780
- push {r4, lr}
- adds r4, r0, #0
- adds r0, #0x41
- ldrb r0, [r0]
- cmp r0, #0x80
- beq _08021792
- cmp r0, #0x93
- beq _080217F4
- b _080217FA
-_08021792:
- ldr r0, _080217A4 @ =gLinkState
- adds r0, #0xa8
- ldrb r0, [r0]
- cmp r0, #0x18
- bne _080217A8
- adds r0, r4, #0
- bl sub_08021768
- b _080217FA
- .align 2, 0
-_080217A4: .4byte gLinkState
-_080217A8:
- movs r1, #0
- movs r0, #5
- strb r0, [r4, #0xc]
- movs r0, #0xb4
- strb r0, [r4, #0xe]
- strb r1, [r4, #0xf]
- ldrb r1, [r4, #0x10]
- movs r0, #0x7f
- ands r0, r1
- strb r0, [r4, #0x10]
- adds r2, r4, #0
- adds r2, #0x29
- ldrb r1, [r2]
- movs r0, #8
- rsbs r0, r0, #0
- ands r0, r1
- movs r1, #3
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080217EC @ =gLinkEntity
- adds r1, r4, #0
- bl sub_0806FA6C
- ldr r0, _080217F0 @ =0x0000FFFF
- strh r0, [r4, #0x36]
- adds r1, r4, #0
- adds r1, #0x87
- movs r0, #1
- strb r0, [r1]
- adds r0, r4, #0
- movs r1, #6
- bl UpdateSprite
- b _080217FA
- .align 2, 0
-_080217EC: .4byte gLinkEntity
-_080217F0: .4byte 0x0000FFFF
-_080217F4:
- adds r0, r4, #0
- bl sub_08021768
-_080217FA:
- adds r0, r4, #0
- adds r0, #0x45
- ldrb r1, [r0]
- cmp r1, #0
- bne _08021808
- subs r0, #3
- strb r1, [r0]
-_08021808:
- ldr r1, _08021814 @ =gUnk_080CB590
- adds r0, r4, #0
- bl sub_0804AA30
- pop {r4, pc}
- .align 2, 0
-_08021814: .4byte gUnk_080CB590
-
- thumb_func_start sub_08021818
-sub_08021818: @ 0x08021818
- push {lr}
- adds r3, r0, #0
- ldrb r0, [r3, #0xa]
- cmp r0, #0
- bne _0802182A
- adds r0, r3, #0
- bl sub_0804A7D4
- b _08021844
-_0802182A:
- ldr r2, [r3, #0x50]
- cmp r2, #0
- beq _0802183A
- ldrb r0, [r2, #0xf]
- subs r0, #1
- movs r1, #0
- strb r0, [r2, #0xf]
- str r1, [r3, #0x50]
-_0802183A:
- adds r0, r3, #0
- movs r1, #0xf0
- movs r2, #0
- bl sub_0804A7E0
-_08021844:
- pop {pc}
- .align 2, 0
-
- thumb_func_start sub_08021848
-sub_08021848: @ 0x08021848
- push {r4, lr}
- adds r4, r0, #0
- bl sub_0806F520
- adds r1, r0, #0
- cmp r1, #0
- beq _0802186C
- ldr r0, _08021868 @ =gUnk_080CB5C8
- ldrb r1, [r4, #0xd]
- lsls r1, r1, #2
- adds r1, r1, r0
- ldr r1, [r1]
- adds r0, r4, #0
- bl _call_via_r1
- b _0802187A
- .align 2, 0
-_08021868: .4byte gUnk_080CB5C8
-_0802186C:
- movs r0, #3
- strb r0, [r4, #0xc]
- strh r1, [r4, #0x36]
- adds r0, r4, #0
- movs r1, #2
- bl UpdateSprite
-_0802187A:
- pop {r4, pc}
-
- thumb_func_start sub_0802187C
-sub_0802187C: @ 0x0802187C
- movs r1, #2
- strb r1, [r0, #0xd]
- bx lr
- .align 2, 0
-
- thumb_func_start nullsub_130
-nullsub_130: @ 0x08021884
- bx lr
- .align 2, 0
-
- thumb_func_start sub_08021888
-sub_08021888: @ 0x08021888
- push {r4, lr}
- adds r4, r0, #0
- bl sub_0806F3E4
- cmp r0, #0
- beq _0802189A
- adds r0, r4, #0
- bl sub_08021818
-_0802189A:
- pop {r4, pc}
-
- thumb_func_start sub_0802189C
-sub_0802189C: @ 0x0802189C
- push {r4, lr}
- adds r4, r0, #0
- bl sub_0804A720
- movs r0, #1
- strb r0, [r4, #0xc]
- strb r0, [r4, #0x1c]
- adds r0, r4, #0
- movs r1, #3
- bl UpdateSprite
- pop {r4, pc}
-
- thumb_func_start sub_080218B4
-sub_080218B4: @ 0x080218B4
- push {lr}
- ldr r2, _080218C8 @ =gUnk_080CB5D4
- ldrb r1, [r0, #0xb]
- lsls r1, r1, #2
- adds r1, r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {pc}
- .align 2, 0
-_080218C8: .4byte gUnk_080CB5D4
-
- thumb_func_start sub_080218CC
-sub_080218CC: @ 0x080218CC
- push {r4, r5, r6, lr}
- adds r5, r0, #0
- ldrb r0, [r5, #0xd]
- cmp r0, #0
- bne _08021916
- movs r2, #1
- movs r0, #1
- strb r0, [r5, #0xd]
- ldrb r1, [r5, #0x18]
- subs r0, #5
- ands r0, r1
- orrs r0, r2
- strb r0, [r5, #0x18]
- adds r0, r5, #0
- movs r1, #1
- bl sub_08049F84
- adds r4, r0, #0
- bl Random
- movs r1, #0x10
- eors r4, r1
- ldr r2, _08021980 @ =gUnk_080CB5DC
- movs r1, #7
- ands r1, r0
- adds r1, r1, r2
- ldrb r0, [r1]
- adds r0, r0, r4
- movs r1, #0x1f
- ands r0, r1
- strb r0, [r5, #0x15]
- movs r0, #0x80
- lsls r0, r0, #1
- strh r0, [r5, #0x24]
- movs r0, #0x90
- lsls r0, r0, #9
- str r0, [r5, #0x20]
-_08021916:
- adds r0, r5, #0
- bl sub_08004274
- adds r2, r5, #0
- adds r2, #0x5a
- ldrb r1, [r2]
- movs r6, #1
- adds r0, r6, #0
- ands r0, r1
- adds r4, r2, #0
- cmp r0, #0
- beq _08021948
- adds r0, r5, #0
- bl sub_080AEFE0
- movs r1, #0xe0
- lsls r1, r1, #5
- adds r0, r5, #0
- bl sub_080044EC
- cmp r0, #0
- bne _08021948
- adds r0, r5, #0
- adds r0, #0x59
- strb r6, [r0]
-_08021948:
- ldrb r1, [r4]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _0802197C
- movs r0, #2
- strb r0, [r5, #0xc]
- bl Random
- movs r1, #0x38
- ands r0, r1
- adds r0, #8
- strb r0, [r5, #0xe]
- movs r0, #1
- strb r0, [r5, #0xf]
- ldrb r1, [r5, #0x10]
- movs r0, #0x80
- orrs r0, r1
- strb r0, [r5, #0x10]
- movs r0, #0xc0
- lsls r0, r0, #1
- strh r0, [r5, #0x24]
- adds r0, r5, #0
- movs r1, #0
- bl UpdateSprite
-_0802197C:
- pop {r4, r5, r6, pc}
- .align 2, 0
-_08021980: .4byte gUnk_080CB5DC
-
- thumb_func_start sub_08021984
-sub_08021984: @ 0x08021984
- push {r4, lr}
- adds r4, r0, #0
- ldrb r0, [r4, #0xd]
- cmp r0, #0
- bne _080219C2
- movs r0, #1
- strb r0, [r4, #0xd]
- ldrb r1, [r4, #0x10]
- movs r0, #0x80
- orrs r0, r1
- strb r0, [r4, #0x10]
- ldrb r0, [r4, #0x18]
- movs r1, #3
- orrs r0, r1
- strb r0, [r4, #0x18]
- ldr r0, _08021A08 @ =0x0000FF80
- strh r0, [r4, #0x36]
- ldrb r2, [r4, #0x19]
- movs r1, #0x3f
- adds r0, r1, #0
- ands r0, r2
- movs r2, #0x40
- orrs r0, r2
- strb r0, [r4, #0x19]
- ldrb r0, [r4, #0x1b]
- ands r1, r0
- orrs r1, r2
- strb r1, [r4, #0x1b]
- ldr r0, _08021A0C @ =0x0000012D
- bl sub_08004488
-_080219C2:
- movs r1, #0xc0
- lsls r1, r1, #5
- adds r0, r4, #0
- bl sub_08003FC4
- cmp r0, #0
- bne _08021A04
- movs r0, #2
- strb r0, [r4, #0xc]
- movs r0, #0x10
- strb r0, [r4, #0xe]
- movs r2, #1
- movs r0, #1
- strb r0, [r4, #0xf]
- ldrb r1, [r4, #0x18]
- subs r0, #5
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, #0x18]
- movs r0, #0xc0
- lsls r0, r0, #1
- strh r0, [r4, #0x24]
- adds r1, r4, #0
- adds r1, #0x86
- movs r0, #0x3c
- strb r0, [r1]
- adds r0, r4, #0
- movs r1, #0
- bl UpdateSprite
- adds r0, r4, #0
- bl UpdateSpriteOrderAndFlip
-_08021A04:
- pop {r4, pc}
- .align 2, 0
-_08021A08: .4byte 0x0000FF80
-_08021A0C: .4byte 0x0000012D
-
- thumb_func_start sub_08021A10
-sub_08021A10: @ 0x08021A10
- push {r4, lr}
- adds r4, r0, #0
- bl sub_08004274
- ldr r1, _08021A60 @ =gLinkEntity
- adds r0, r4, #0
- movs r2, #0x78
- movs r3, #0x50
- bl sub_080041A0
- cmp r0, #0
- beq _08021A5E
- adds r0, r4, #0
- bl sub_08021D00
- cmp r0, #0
- bne _08021A5E
- ldrb r0, [r4, #0xe]
- subs r0, #1
- strb r0, [r4, #0xe]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _08021A5E
- movs r0, #3
- strb r0, [r4, #0xc]
- bl Random
- movs r1, #0x3f
- ands r0, r1
- adds r0, #0x1e
- strb r0, [r4, #0xe]
- ldrb r1, [r4, #0x15]
- adds r0, r4, #0
- bl sub_08021D44
- adds r0, r4, #0
- movs r1, #2
- bl UpdateSprite
-_08021A5E:
- pop {r4, pc}
- .align 2, 0
-_08021A60: .4byte gLinkEntity
-
- thumb_func_start sub_08021A64
-sub_08021A64: @ 0x08021A64
- push {r4, r5, lr}
- adds r4, r0, #0
- bl sub_08021D00
- cmp r0, #0
- bne _08021AD4
- ldrb r0, [r4, #0xe]
- subs r0, #1
- strb r0, [r4, #0xe]
- movs r5, #0xff
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _08021A96
- movs r0, #2
- strb r0, [r4, #0xc]
- bl Random
- movs r1, #0x1f
- ands r0, r1
- adds r0, #0x1e
- strb r0, [r4, #0xe]
- adds r0, r4, #0
- movs r1, #0
- bl UpdateSprite
-_08021A96:
- ldrb r0, [r4, #0xf]
- subs r0, #1
- strb r0, [r4, #0xf]
- ands r0, r5
- cmp r0, #0
- bne _08021AC8
- movs r0, #8
- strb r0, [r4, #0xf]
- adds r0, r4, #0
- movs r1, #1
- bl sub_08049F84
- adds r1, r0, #0
- cmp r1, #0xff
- bne _08021AC2
- movs r0, #7
- strb r0, [r4, #0xc]
- adds r0, r4, #0
- movs r1, #1
- bl UpdateSprite
- b _08021AD4
-_08021AC2:
- adds r0, r4, #0
- bl sub_08021D44
-_08021AC8:
- adds r0, r4, #0
- bl sub_080AEF88
- adds r0, r4, #0
- bl sub_08004274
-_08021AD4:
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start sub_08021AD8
-sub_08021AD8: @ 0x08021AD8
- push {r4, lr}
- adds r4, r0, #0
- bl sub_08004274
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- beq _08021B3A
- ldrb r0, [r4, #0xe]
- cmp r0, #0
- beq _08021B1E
- movs r0, #0
- strb r0, [r4, #0xe]
- adds r0, r4, #0
- movs r1, #1
- bl sub_08049F84
- cmp r0, #0xff
- bne _08021B16
- movs r0, #2
- strb r0, [r4, #0xc]
- movs r0, #8
- strb r0, [r4, #0xe]
- adds r0, r4, #0
- movs r1, #0
- bl UpdateSprite
- b _08021B60
-_08021B16:
- strb r0, [r4, #0x15]
- movs r0, #0x7c
- bl sub_08004488
-_08021B1E:
- adds r0, r4, #0
- bl sub_080AEFE0
- movs r1, #0xc0
- lsls r1, r1, #5
- adds r0, r4, #0
- bl sub_08003FC4
- cmp r0, #0
- bne _08021B3A
- adds r1, r4, #0
- adds r1, #0x59
- movs r0, #1
- strb r0, [r1]
-_08021B3A:
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _08021B60
- movs r0, #2
- strb r0, [r4, #0xc]
- movs r0, #0x14
- strb r0, [r4, #0xe]
- adds r1, r4, #0
- adds r1, #0x86
- movs r0, #0x3c
- strb r0, [r1]
- adds r0, r4, #0
- movs r1, #0
- bl UpdateSprite
-_08021B60:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_08021B64
-sub_08021B64: @ 0x08021B64
- push {r4, r5, r6, lr}
- adds r4, r0, #0
- ldr r0, _08021B88 @ =gLinkState
- ldr r1, [r0, #0x30]
- movs r2, #4
- ands r1, r2
- adds r6, r0, #0
- cmp r1, #0
- beq _08021B8C
- movs r1, #0
- movs r0, #3
- strb r0, [r4, #0xc]
- str r1, [r4, #0x34]
- adds r0, r4, #0
- movs r1, #2
- bl UpdateSprite
- b _08021C4E
- .align 2, 0
-_08021B88: .4byte gLinkState
-_08021B8C:
- movs r5, #1
- adds r0, r6, #0
- adds r0, #0xa8
- ldrb r0, [r0]
- cmp r0, #0xb
- beq _08021BBA
- cmp r0, #0x14
- beq _08021BBA
- bl sub_0807953C
- cmp r0, #0
- beq _08021BAE
- ldrb r1, [r4, #0xa]
- lsls r0, r1, #1
- adds r0, r0, r1
- adds r5, r0, #0
- adds r5, #8
-_08021BAE:
- ldrb r0, [r4, #0xe]
- subs r5, r0, r5
- cmp r5, #0
- bge _08021BB8
- movs r5, #0
-_08021BB8:
- strb r5, [r4, #0xe]
-_08021BBA:
- ldr r0, [r6, #0x30]
- movs r1, #0x88
- lsls r1, r1, #1
- ands r0, r1
- cmp r0, #0
- beq _08021BC8
- movs r5, #0
-_08021BC8:
- cmp r5, #0
- bne _08021C04
- movs r0, #6
- strb r0, [r4, #0xc]
- movs r0, #0x80
- lsls r0, r0, #9
- str r0, [r4, #0x20]
- adds r0, r4, #0
- adds r0, #0x87
- strb r5, [r0]
- ldr r2, _08021BEC @ =gLinkEntity
- ldrb r1, [r2, #0x15]
- adds r0, r1, #0
- cmp r0, #0xff
- beq _08021BF0
- movs r0, #0x10
- b _08021BF6
- .align 2, 0
-_08021BEC: .4byte gLinkEntity
-_08021BF0:
- ldrb r0, [r2, #0x14]
- lsls r0, r0, #2
- movs r1, #0x10
-_08021BF6:
- eors r0, r1
- strb r0, [r4, #0x15]
- adds r0, r4, #0
- movs r1, #5
- bl UpdateSprite
- b _08021C4E
-_08021C04:
- ldrb r1, [r6, #0x1a]
- movs r0, #0x80
- orrs r0, r1
- strb r0, [r6, #0x1a]
- adds r1, r6, #0
- adds r1, #0x80
- ldrh r0, [r1]
- subs r0, #0x50
- strh r0, [r1]
- adds r1, #0x2a
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- ldr r0, _08021C50 @ =gLinkEntity
- adds r1, r4, #0
- bl sub_0806FA6C
- ldr r2, _08021C54 @ =gUnk_080CB5E4
- ldrb r1, [r4, #0xf]
- adds r0, r1, #1
- strb r0, [r4, #0xf]
- movs r0, #0xe
- ands r0, r1
- lsrs r0, r0, #1
- adds r0, r0, r2
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- ldrh r1, [r4, #0x2e]
- adds r0, r0, r1
- strh r0, [r4, #0x2e]
- ldrh r0, [r4, #0x36]
- subs r0, #1
- strh r0, [r4, #0x36]
- adds r0, r4, #0
- bl sub_08004274
-_08021C4E:
- pop {r4, r5, r6, pc}
- .align 2, 0
-_08021C50: .4byte gLinkEntity
-_08021C54: .4byte gUnk_080CB5E4
-
- thumb_func_start sub_08021C58
-sub_08021C58: @ 0x08021C58
- push {r4, r5, lr}
- adds r4, r0, #0
- bl sub_08004274
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r5, #1
- adds r0, r5, #0
- ands r0, r1
- cmp r0, #0
- beq _08021C8A
- adds r0, r4, #0
- bl sub_080AEFE0
- movs r1, #0xc0
- lsls r1, r1, #5
- adds r0, r4, #0
- bl sub_08003FC4
- cmp r0, #0
- bne _08021C8A
- adds r0, r4, #0
- adds r0, #0x59
- strb r5, [r0]
-_08021C8A:
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _08021CCC
- movs r0, #2
- strb r0, [r4, #0xc]
- movs r2, #0x3c
- strb r2, [r4, #0xe]
- movs r0, #1
- strb r0, [r4, #0xf]
- ldrb r1, [r4, #0x10]
- movs r0, #0x80
- orrs r0, r1
- strb r0, [r4, #0x10]
- adds r3, r4, #0
- adds r3, #0x29
- ldrb r1, [r3]
- movs r0, #8
- rsbs r0, r0, #0
- ands r0, r1
- movs r1, #4
- orrs r0, r1
- strb r0, [r3]
- adds r0, r4, #0
- adds r0, #0x86
- strb r2, [r0]
- adds r0, r4, #0
- movs r1, #0
- bl UpdateSprite
-_08021CCC:
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start sub_08021CD0
-sub_08021CD0: @ 0x08021CD0
- push {r4, lr}
- adds r4, r0, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- bne _08021CE6
- adds r0, r4, #0
- bl sub_08004274
-_08021CE6:
- adds r0, r4, #0
- movs r1, #1
- bl sub_08049F84
- cmp r0, #0xff
- beq _08021CFE
- movs r0, #3
- strb r0, [r4, #0xc]
- adds r0, r4, #0
- movs r1, #2
- bl UpdateSprite
-_08021CFE:
- pop {r4, pc}
-
- thumb_func_start sub_08021D00
-sub_08021D00: @ 0x08021D00
- push {r4, lr}
- adds r4, r0, #0
- adds r1, r4, #0
- adds r1, #0x86
- ldrb r0, [r1]
- cmp r0, #0
- beq _08021D16
- subs r0, #1
- strb r0, [r1]
- movs r0, #0
- b _08021D40
-_08021D16:
- adds r0, r4, #0
- movs r1, #1
- movs r2, #0x10
- bl sub_08049F64
- cmp r0, #0
- bne _08021D28
- movs r0, #0
- b _08021D40
-_08021D28:
- movs r0, #4
- strb r0, [r4, #0xc]
- movs r0, #1
- strb r0, [r4, #0xe]
- movs r0, #0xc0
- lsls r0, r0, #9
- str r0, [r4, #0x20]
- adds r0, r4, #0
- movs r1, #4
- bl UpdateSprite
- movs r0, #1
-_08021D40:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_08021D44
-sub_08021D44: @ 0x08021D44
- push {lr}
- adds r2, r0, #0
- adds r1, #4
- movs r0, #0x18
- ands r1, r0
- strb r1, [r2, #0x15]
- movs r0, #8
- ands r1, r0
- cmp r1, #0
- beq _08021D5E
- movs r0, #0xc0
- lsls r0, r0, #1
- b _08021D60
-_08021D5E:
- movs r0, #0xc0
-_08021D60:
- strh r0, [r2, #0x24]
- pop {pc}
-
- thumb_func_start sub_08021D64
-sub_08021D64: @ 0x08021D64
- push {r4, r5, lr}
- adds r5, r0, #0
- ldr r4, _08021D7C @ =gUnk_080CB69C
- bl sub_0800279C
- lsls r0, r0, #2
- adds r0, r0, r4
- ldr r1, [r0]
- adds r0, r5, #0
- bl _call_via_r1
- pop {r4, r5, pc}
- .align 2, 0
-_08021D7C: .4byte gUnk_080CB69C
-
- thumb_func_start sub_08021D80
-sub_08021D80: @ 0x08021D80
- push {lr}
- ldr r2, _08021D94 @ =gUnk_080CB6B4
- ldrb r1, [r0, #0xc]
- lsls r1, r1, #2
- adds r1, r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {pc}
- .align 2, 0
-_08021D94: .4byte gUnk_080CB6B4
-
- thumb_func_start sub_08021D98
-sub_08021D98: @ 0x08021D98
- push {lr}
- ldr r1, _08021DA4 @ =gUnk_080CB69C
- bl sub_0804AA30
- pop {pc}
- .align 2, 0
-_08021DA4: .4byte gUnk_080CB69C
-
- thumb_func_start sub_08021DA8
-sub_08021DA8: @ 0x08021DA8
- push {r4, lr}
- adds r4, r0, #0
- bl sub_0806F520
- cmp r0, #0
- beq _08021DC4
- ldr r0, _08021DC8 @ =gUnk_080CB6C4
- ldrb r1, [r4, #0xd]
- lsls r1, r1, #2
- adds r1, r1, r0
- ldr r1, [r1]
- adds r0, r4, #0
- bl _call_via_r1
-_08021DC4:
- pop {r4, pc}
- .align 2, 0
-_08021DC8: .4byte gUnk_080CB6C4
-
- thumb_func_start sub_08021DCC
-sub_08021DCC: @ 0x08021DCC
- movs r1, #2
- strb r1, [r0, #0xd]
- bx lr
- .align 2, 0
-
- thumb_func_start sub_08021DD4
-sub_08021DD4: @ 0x08021DD4
- push {lr}
- bl sub_0806F4E8
- pop {pc}
-
- thumb_func_start sub_08021DDC
-sub_08021DDC: @ 0x08021DDC
- push {r4, lr}
- adds r4, r0, #0
- bl sub_0806F3E4
- cmp r0, #0
- beq _08021DEE
- adds r0, r4, #0
- bl sub_0804A7D4
-_08021DEE:
- pop {r4, pc}
-
- thumb_func_start sub_08021DF0
-sub_08021DF0: @ 0x08021DF0
- push {r4, lr}
- adds r4, r0, #0
- bl sub_0804A720
- ldrb r0, [r4, #0xa]
- cmp r0, #0
- beq _08021E14
- adds r2, r4, #0
- adds r2, #0x29
- ldrb r1, [r2]
- movs r0, #0x39
- rsbs r0, r0, #0
- ands r0, r1
- movs r1, #8
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _08021E48 @ =0x0000FFF0
- strh r0, [r4, #0x36]
-_08021E14:
- bl Random
- movs r1, #0x1f
- ands r0, r1
- strb r0, [r4, #0x15]
- movs r0, #1
- strb r0, [r4, #0x1c]
- adds r2, r4, #0
- adds r2, #0x29
- ldrb r1, [r2]
- subs r0, #9
- ands r0, r1
- movs r1, #3
- orrs r0, r1
- strb r0, [r2]
- adds r1, r4, #0
- adds r1, #0x38
- movs r0, #3
- strb r0, [r1]
- adds r0, r4, #0
- bl UpdateSpriteOrderAndFlip
- adds r0, r4, #0
- bl sub_08021EF0
- pop {r4, pc}
- .align 2, 0
-_08021E48: .4byte 0x0000FFF0
-
- thumb_func_start sub_08021E4C
-sub_08021E4C: @ 0x08021E4C
- push {r4, r5, lr}
- adds r4, r0, #0
- adds r1, r4, #0
- adds r1, #0x78
- ldrh r0, [r1]
- cmp r0, #0
- beq _08021E5E
- subs r0, #1
- strh r0, [r1]
-_08021E5E:
- adds r1, r4, #0
- adds r1, #0x7a
- ldrh r0, [r1]
- cmp r0, #0
- beq _08021E6C
- subs r0, #1
- strh r0, [r1]
-_08021E6C:
- adds r0, r4, #0
- bl sub_08004274
- adds r2, r4, #0
- adds r2, #0x5a
- ldrb r1, [r2]
- movs r0, #0x80
- ands r0, r1
- adds r5, r2, #0
- cmp r0, #0
- beq _08021E8A
- adds r0, r4, #0
- bl sub_08021F24
- b _08021E90
-_08021E8A:
- adds r0, r4, #0
- bl sub_080AEFB4
-_08021E90:
- ldr r1, _08021EA0 @ =gUnk_080CB6D0
- ldrb r0, [r5]
- adds r0, r0, r1
- ldrb r1, [r0]
- adds r0, r4, #0
- adds r0, #0x63
- strb r1, [r0]
- pop {r4, r5, pc}
- .align 2, 0
-_08021EA0: .4byte gUnk_080CB6D0
-
- thumb_func_start sub_08021EA4
-sub_08021EA4: @ 0x08021EA4
- push {lr}
- adds r1, r0, #0
- ldrb r0, [r1, #0xe]
- subs r0, #1
- strb r0, [r1, #0xe]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _08021EBA
- adds r0, r1, #0
- bl sub_08021EF0
-_08021EBA:
- pop {pc}
-
- thumb_func_start sub_08021EBC
-sub_08021EBC: @ 0x08021EBC
- push {r4, lr}
- adds r4, r0, #0
- ldrb r0, [r4, #0xe]
- cmp r0, #0
- beq _08021ECC
- subs r0, #1
- strb r0, [r4, #0xe]
- b _08021EE8
-_08021ECC:
- ldr r0, _08021EEC @ =gLinkEntity
- movs r2, #0x2e
- ldrsh r1, [r0, r2]
- movs r3, #0x32
- ldrsh r2, [r0, r3]
- adds r0, r4, #0
- movs r3, #0x70
- bl sub_0806FCB8
- cmp r0, #0
- beq _08021EE8
- adds r0, r4, #0
- bl sub_08021EF0
-_08021EE8:
- pop {r4, pc}
- .align 2, 0
-_08021EEC: .4byte gLinkEntity
-
- thumb_func_start sub_08021EF0
-sub_08021EF0: @ 0x08021EF0
- push {r4, lr}
- adds r4, r0, #0
- movs r0, #1
- strb r0, [r4, #0xc]
- bl Random
- ldr r2, _08021F20 @ =gUnk_080CB6D6
- movs r1, #0xf
- ands r1, r0
- lsls r1, r1, #1
- adds r1, r1, r2
- ldrh r1, [r1]
- adds r0, r4, #0
- adds r0, #0x78
- strh r1, [r0]
- adds r1, r4, #0
- adds r1, #0x7a
- movs r0, #0x3c
- strh r0, [r1]
- adds r0, r4, #0
- movs r1, #0
- bl UpdateSprite
- pop {r4, pc}
- .align 2, 0
-_08021F20: .4byte gUnk_080CB6D6
-
- thumb_func_start sub_08021F24
-sub_08021F24: @ 0x08021F24
- push {r4, lr}
- adds r4, r0, #0
- adds r0, #0x78
- ldrh r0, [r0]
- cmp r0, #0
- bne _08021F48
- movs r0, #2
- strb r0, [r4, #0xc]
- bl Random
- ldr r2, _08021F44 @ =gUnk_080CB6F6
- movs r1, #0xf
- ands r1, r0
- adds r1, r1, r2
- ldrb r0, [r1]
- b _08021F6E
- .align 2, 0
-_08021F44: .4byte gUnk_080CB6F6
-_08021F48:
- adds r0, r4, #0
- adds r0, #0x7a
- ldrh r0, [r0]
- cmp r0, #0
- bne _08021F80
- ldr r0, _08021F7C @ =gLinkEntity
- movs r2, #0x2e
- ldrsh r1, [r0, r2]
- movs r3, #0x32
- ldrsh r2, [r0, r3]
- adds r0, r4, #0
- movs r3, #0x70
- bl sub_0806FCB8
- cmp r0, #0
- bne _08021F80
- movs r0, #3
- strb r0, [r4, #0xc]
- movs r0, #0x1e
-_08021F6E:
- strb r0, [r4, #0xe]
- adds r0, r4, #0
- movs r1, #1
- bl UpdateSprite
- b _08021FA4
- .align 2, 0
-_08021F7C: .4byte gLinkEntity
-_08021F80:
- adds r0, r4, #0
- bl sub_08049FA0
- cmp r0, #0
- beq _08021F94
- bl Random
- movs r1, #0x1f
- ands r0, r1
- b _08021F9A
-_08021F94:
- adds r0, r4, #0
- bl sub_08049EE4
-_08021F9A:
- strb r0, [r4, #0x15]
- adds r0, r4, #0
- movs r1, #0
- bl UpdateSprite
-_08021FA4:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_08021FA8
-sub_08021FA8: @ 0x08021FA8
- push {r4, r5, lr}
- adds r4, r0, #0
- ldr r5, _08021FD4 @ =gUnk_080CB734
- bl sub_0800279C
- lsls r0, r0, #2
- adds r0, r0, r5
- ldr r1, [r0]
- adds r0, r4, #0
- bl _call_via_r1
- ldr r1, _08021FD8 @ =gUnk_080CB8A4
- ldrb r0, [r4, #0xb]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldrb r1, [r4, #0x1e]
- ldr r0, [r0]
- lsls r1, r1, #2
- adds r1, r1, r0
- ldr r0, [r1]
- str r0, [r4, #0x48]
- pop {r4, r5, pc}
- .align 2, 0
-_08021FD4: .4byte gUnk_080CB734
-_08021FD8: .4byte gUnk_080CB8A4
-
- thumb_func_start sub_08021FDC
-sub_08021FDC: @ 0x08021FDC
- push {lr}
- ldr r2, _08021FF0 @ =gUnk_080CB74C
- ldrb r1, [r0, #0xc]
- lsls r1, r1, #2
- adds r1, r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {pc}
- .align 2, 0
-_08021FF0: .4byte gUnk_080CB74C
-
- thumb_func_start sub_08021FF4
-sub_08021FF4: @ 0x08021FF4
- push {lr}
- ldr r1, _08022000 @ =gUnk_080CB734
- bl sub_0804AA30
- pop {pc}
- .align 2, 0
-_08022000: .4byte gUnk_080CB734
-
- thumb_func_start sub_08022004
-sub_08022004: @ 0x08022004
- push {r4, lr}
- adds r4, r0, #0
- adds r0, #0x7c
- ldrh r0, [r0]
- adds r1, r4, #0
- adds r1, #0x7e
- ldrh r1, [r1]
- adds r2, r4, #0
- adds r2, #0x38
- ldrb r2, [r2]
- bl UpdateCollisionLayer
- adds r0, r4, #0
- movs r1, #5
- movs r2, #0
- bl CreateFx
- adds r0, r4, #0
- bl sub_08049CF4
- bl sub_0805E780
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_08022034
-sub_08022034: @ 0x08022034
- push {r4, lr}
- adds r4, r0, #0
- movs r0, #1
- strb r0, [r4, #0xc]
- ldrb r1, [r4, #0xa]
- movs r0, #3
- ands r0, r1
- strb r0, [r4, #0xb]
- adds r2, r4, #0
- adds r2, #0x29
- ldrb r1, [r2]
- movs r0, #8
- rsbs r0, r0, #0
- ands r0, r1
- movs r1, #5
- orrs r0, r1
- strb r0, [r2]
- ldr r2, _08022098 @ =gUnk_080CB764
- ldrb r0, [r4, #0xb]
- lsls r0, r0, #1
- adds r0, r0, r2
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- ldrh r1, [r4, #0x2e]
- adds r0, r0, r1
- adds r1, r4, #0
- adds r1, #0x78
- strh r0, [r1]
- ldrb r0, [r4, #0xb]
- lsls r0, r0, #1
- adds r0, #1
- adds r0, r0, r2
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- ldrh r1, [r4, #0x32]
- adds r0, r0, r1
- adds r1, r4, #0
- adds r1, #0x7a
- strh r0, [r1]
- ldrb r1, [r4, #0xb]
- adds r0, r4, #0
- bl UpdateSprite
- adds r0, r4, #0
- bl sub_080221C0
- pop {r4, pc}
- .align 2, 0
-_08022098: .4byte gUnk_080CB764
-
- thumb_func_start sub_0802209C
-sub_0802209C: @ 0x0802209C
- push {r4, lr}
- adds r4, r0, #0
- ldrb r0, [r4, #0xe]
- cmp r0, #0
- bne _080220D2
- adds r0, r4, #0
- adds r0, #0x78
- ldrh r0, [r0]
- adds r1, r4, #0
- adds r1, #0x7a
- ldrh r1, [r1]
- movs r2, #0x10
- movs r3, #0x10
- bl sub_0806FBFC
- cmp r0, #0
- beq _080220D6
- movs r0, #2
- strb r0, [r4, #0xc]
- movs r0, #0x12
- strb r0, [r4, #0xe]
- ldrb r1, [r4, #0xb]
- adds r1, #4
- adds r0, r4, #0
- bl UpdateSprite
- b _080220D6
-_080220D2:
- subs r0, #1
- strb r0, [r4, #0xe]
-_080220D6:
- pop {r4, pc}
-
- thumb_func_start sub_080220D8
-sub_080220D8: @ 0x080220D8
- push {lr}
- adds r1, r0, #0
- ldrb r0, [r1, #0xe]
- subs r0, #1
- strb r0, [r1, #0xe]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _080220EC
- movs r0, #3
- strb r0, [r1, #0xc]
-_080220EC:
- pop {pc}
- .align 2, 0
-
- thumb_func_start sub_080220F0
-sub_080220F0: @ 0x080220F0
- push {r4, r5, r6, lr}
- adds r5, r0, #0
- bl sub_08004274
- adds r0, r5, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _08022160
- movs r1, #0
- movs r0, #4
- strb r0, [r5, #0xc]
- movs r0, #0x78
- strb r0, [r5, #0xe]
- adds r0, r5, #0
- adds r0, #0x44
- strb r1, [r0]
- ldrb r1, [r5, #0xb]
- lsls r0, r1, #1
- adds r0, r0, r1
- lsls r0, r0, #2
- ldr r1, _0802215C @ =gUnk_080CB76C
- adds r4, r0, r1
- movs r6, #0
-_08022124:
- adds r0, r5, #0
- movs r1, #0x11
- movs r2, #0
- bl CreateFx
- adds r1, r0, #0
- cmp r1, #0
- beq _08022148
- movs r0, #0
- ldrsb r0, [r4, r0]
- ldrh r2, [r1, #0x2e]
- adds r0, r0, r2
- strh r0, [r1, #0x2e]
- movs r0, #1
- ldrsb r0, [r4, r0]
- ldrh r2, [r1, #0x32]
- adds r0, r0, r2
- strh r0, [r1, #0x32]
-_08022148:
- adds r6, #1
- adds r4, #2
- cmp r6, #5
- bls _08022124
- movs r0, #0x82
- lsls r0, r0, #1
- bl sub_08004488
- b _08022170
- .align 2, 0
-_0802215C: .4byte gUnk_080CB76C
-_08022160:
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- beq _08022170
- adds r1, r5, #0
- adds r1, #0x44
- movs r0, #4
- strb r0, [r1]
-_08022170:
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start sub_08022174
-sub_08022174: @ 0x08022174
- push {r4, lr}
- adds r4, r0, #0
- bl sub_0800445C
- ldrb r0, [r4, #0xe]
- subs r0, #1
- strb r0, [r4, #0xe]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _08022196
- movs r0, #5
- strb r0, [r4, #0xc]
- ldrb r1, [r4, #0xb]
- adds r1, #8
- adds r0, r4, #0
- bl UpdateSprite
-_08022196:
- pop {r4, pc}
-
- thumb_func_start sub_08022198
-sub_08022198: @ 0x08022198
- push {r4, lr}
- adds r4, r0, #0
- bl sub_0800445C
- adds r0, r4, #0
- bl sub_08004274
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _080221BC
- movs r0, #1
- strb r0, [r4, #0xc]
- movs r0, #0x5a
- strb r0, [r4, #0xe]
-_080221BC:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_080221C0
-sub_080221C0: @ 0x080221C0
- push {r4, r5, r6, lr}
- adds r6, r0, #0
- movs r0, #0x2e
- ldrsh r4, [r6, r0]
- ldr r1, _08022220 @ =gRoomControls
- ldrh r0, [r1, #6]
- subs r4, r4, r0
- asrs r4, r4, #4
- movs r2, #0x3f
- ands r4, r2
- movs r3, #0x32
- ldrsh r0, [r6, r3]
- ldrh r1, [r1, #8]
- subs r0, r0, r1
- asrs r0, r0, #4
- ands r0, r2
- lsls r0, r0, #6
- orrs r4, r0
- ldr r1, _08022224 @ =gUnk_080B4488
- ldrb r0, [r6, #0xb]
- lsls r0, r0, #1
- adds r0, r0, r1
- movs r1, #0
- ldrsh r0, [r0, r1]
- adds r4, r4, r0
- adds r0, r6, #0
- adds r0, #0x7e
- strh r4, [r0]
- adds r5, r6, #0
- adds r5, #0x38
- ldrb r1, [r5]
- adds r0, r4, #0
- bl sub_080001DA
- adds r1, r6, #0
- adds r1, #0x7c
- strh r0, [r1]
- ldr r1, _08022228 @ =gUnk_080CB79C
- ldrb r0, [r6, #0xb]
- lsls r0, r0, #1
- adds r0, r0, r1
- ldrh r0, [r0]
- ldrb r2, [r5]
- adds r1, r4, #0
- bl UpdateCollisionLayer
- pop {r4, r5, r6, pc}
- .align 2, 0
-_08022220: .4byte gRoomControls
-_08022224: .4byte gUnk_080B4488
-_08022228: .4byte gUnk_080CB79C
-
- thumb_func_start sub_0802222C
-sub_0802222C: @ 0x0802222C
- push {lr}
- ldr r1, _08022238 @ =gUnk_080CB948
- bl sub_0800129E
- pop {pc}
- .align 2, 0
-_08022238: .4byte gUnk_080CB948
-
- thumb_func_start sub_0802223C
-sub_0802223C: @ 0x0802223C
- push {lr}
- ldr r2, _08022250 @ =gUnk_080CB960
- ldrb r1, [r0, #0xc]
- lsls r1, r1, #2
- adds r1, r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {pc}
- .align 2, 0
-_08022250: .4byte gUnk_080CB960
-
- thumb_func_start sub_08022254
-sub_08022254: @ 0x08022254
- push {r4, r5, lr}
- adds r4, r0, #0
- adds r0, #0x45
- ldrb r0, [r0]
- cmp r0, #0
- beq _08022344
- adds r0, r4, #0
- adds r0, #0x41
- ldrb r1, [r0]
- movs r0, #0x7f
- ands r0, r1
- subs r0, #4
- cmp r0, #0x18
- bhi _08022356
- lsls r0, r0, #2
- ldr r1, _0802227C @ =_08022280
- adds r0, r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802227C: .4byte _08022280
-_08022280: @ jump table
- .4byte _080222E4 @ case 0
- .4byte _080222E4 @ case 1
- .4byte _080222E4 @ case 2
- .4byte _08022356 @ case 3
- .4byte _080222E4 @ case 4
- .4byte _080222E4 @ case 5
- .4byte _080222E4 @ case 6
- .4byte _080222E4 @ case 7
- .4byte _080222E4 @ case 8
- .4byte _080222E4 @ case 9
- .4byte _08022356 @ case 10
- .4byte _08022356 @ case 11
- .4byte _080222E4 @ case 12
- .4byte _080222E4 @ case 13
- .4byte _080222E4 @ case 14
- .4byte _08022356 @ case 15
- .4byte _08022356 @ case 16
- .4byte _08022356 @ case 17
- .4byte _080222F2 @ case 18
- .4byte _08022356 @ case 19
- .4byte _080222E4 @ case 20
- .4byte _080222E4 @ case 21
- .4byte _080222E4 @ case 22
- .4byte _08022356 @ case 23
- .4byte _080222F2 @ case 24
-_080222E4:
- ldr r0, _08022340 @ =gLinkState
- adds r0, #0xac
- ldrh r1, [r0]
- movs r0, #8
- ands r0, r1
- cmp r0, #0
- beq _08022356
-_080222F2:
- adds r0, r4, #0
- movs r1, #4
- movs r2, #0
- bl CreateFx
- movs r0, #1
- movs r1, #1
- bl CreateEnemy
- adds r5, r0, #0
- cmp r5, #0
- beq _08022356
- movs r0, #1
- strb r0, [r5, #0xb]
- adds r1, r5, #0
- adds r1, #0x3d
- movs r0, #0xf8
- strb r0, [r1]
- adds r0, r4, #0
- adds r1, r5, #0
- bl sub_0804A4E4
- movs r0, #2
- strb r0, [r4, #0xc]
- ldrb r1, [r4, #0x10]
- movs r0, #0x7f
- ands r0, r1
- strb r0, [r4, #0x10]
- ldrb r1, [r4, #0x18]
- movs r0, #4
- rsbs r0, r0, #0
- ands r0, r1
- strb r0, [r4, #0x18]
- adds r0, r4, #0
- adds r0, #0x3e
- ldrb r0, [r0]
- strb r0, [r4, #0x15]
- str r5, [r4, #0x54]
- b _08022356
- .align 2, 0
-_08022340: .4byte gLinkState
-_08022344:
- adds r0, r4, #0
- adds r0, #0x3f
- ldrb r0, [r0]
- cmp r0, #0x94
- beq _08022356
- adds r0, r4, #0
- movs r1, #2
- bl UpdateSprite
-_08022356:
- ldr r1, _08022360 @ =gUnk_080CB948
- adds r0, r4, #0
- bl sub_0804AA30
- pop {r4, r5, pc}
- .align 2, 0
-_08022360: .4byte gUnk_080CB948
-
- thumb_func_start nullsub_131
-nullsub_131: @ 0x08022364
- bx lr
- .align 2, 0
-
- thumb_func_start sub_08022368
-sub_08022368: @ 0x08022368
- push {r4, lr}
- adds r4, r0, #0
- bl sub_0804A720
- movs r0, #1
- strb r0, [r4, #0xc]
- bl Random
- strb r0, [r4, #0xe]
- adds r0, r4, #0
- movs r1, #1
- bl sub_08049F84
- strb r0, [r4, #0x15]
- adds r0, r4, #0
- movs r1, #0
- bl UpdateSprite
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_08022390
-sub_08022390: @ 0x08022390
- push {r4, lr}
- adds r4, r0, #0
- movs r1, #1
- bl sub_08049FDC
- cmp r0, #0
- beq _080223D4
- ldrb r1, [r4, #0xe]
- adds r0, r1, #1
- strb r0, [r4, #0xe]
- movs r0, #0xf
- ands r0, r1
- cmp r0, #0
- bne _080223C0
- adds r0, r4, #0
- movs r1, #1
- bl sub_08049F84
- strb r0, [r4, #0x15]
- bl Random
- movs r1, #4
- ands r0, r1
- strb r0, [r4, #0xf]
-_080223C0:
- ldrb r0, [r4, #0xf]
- cmp r0, #0
- bne _080223CE
- adds r0, r4, #0
- bl sub_080AEF88
- b _080223DA
-_080223CE:
- subs r0, #1
- strb r0, [r4, #0xf]
- b _080223DA
-_080223D4:
- bl Random
- strb r0, [r4, #0xe]
-_080223DA:
- adds r0, r4, #0
- bl sub_08004274
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_080223E4
-sub_080223E4: @ 0x080223E4
- push {lr}
- adds r3, r0, #0
- ldr r2, [r3, #0x54]
- cmp r2, #0
- beq _0802240A
- adds r1, r2, #0
- adds r1, #0x41
- movs r0, #0x94
- strb r0, [r1]
- subs r1, #4
- movs r0, #0x10
- strb r0, [r1]
- adds r1, #5
- movs r0, #0xc
- strb r0, [r1]
- ldrb r1, [r3, #0x15]
- adds r0, r2, #0
- adds r0, #0x3e
- strb r1, [r0]
-_0802240A:
- adds r0, r3, #0
- bl sub_0805E7BC
- pop {pc}
- .align 2, 0
-
- thumb_func_start sub_08022414
-sub_08022414: @ 0x08022414
- push {r4, lr}
- adds r4, r0, #0
- ldr r1, _08022430 @ =gUnk_080CBA28
- bl sub_0800129E
- movs r3, #0x10
- rsbs r3, r3, #0
- adds r0, r4, #0
- movs r1, #0
- movs r2, #1
- bl sub_0804A9AC
- pop {r4, pc}
- .align 2, 0
-_08022430: .4byte gUnk_080CBA28
-
- thumb_func_start sub_08022434
-sub_08022434: @ 0x08022434
- push {lr}
- ldr r2, _08022448 @ =gUnk_080CBA40
- ldrb r1, [r0, #0xc]
- lsls r1, r1, #2
- adds r1, r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {pc}
- .align 2, 0
-_08022448: .4byte gUnk_080CBA40
-
- thumb_func_start sub_0802244C
-sub_0802244C: @ 0x0802244C
- push {r4, r5, r6, r7, lr}
- adds r4, r0, #0
- adds r5, r4, #0
- adds r5, #0x45
- ldrb r0, [r5]
- cmp r0, #0
- bne _0802245C
- b _08022582
-_0802245C:
- adds r0, r4, #0
- adds r0, #0x3f
- ldrb r1, [r0]
- adds r6, r0, #0
- cmp r1, #0x65
- bne _08022522
- adds r0, #2
- ldrb r1, [r0]
- movs r0, #0x7f
- ands r0, r1
- subs r0, #2
- cmp r0, #0x18
- bhi _08022540
- lsls r0, r0, #2
- ldr r1, _08022480 @ =_08022484
- adds r0, r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08022480: .4byte _08022484
-_08022484: @ jump table
- .4byte _080224E8 @ case 0
- .4byte _080224E8 @ case 1
- .4byte _08022540 @ case 2
- .4byte _08022540 @ case 3
- .4byte _08022540 @ case 4
- .4byte _08022540 @ case 5
- .4byte _08022508 @ case 6
- .4byte _08022508 @ case 7
- .4byte _08022508 @ case 8
- .4byte _08022508 @ case 9
- .4byte _08022508 @ case 10
- .4byte _08022540 @ case 11
- .4byte _08022540 @ case 12
- .4byte _08022540 @ case 13
- .4byte _08022540 @ case 14
- .4byte _08022540 @ case 15
- .4byte _08022540 @ case 16
- .4byte _08022540 @ case 17
- .4byte _08022540 @ case 18
- .4byte _08022540 @ case 19
- .4byte _08022508 @ case 20
- .4byte _08022540 @ case 21
- .4byte _08022508 @ case 22
- .4byte _08022508 @ case 23
- .4byte _08022508 @ case 24
-_080224E8:
- movs r0, #2
- strb r0, [r4, #0xc]
- movs r0, #0x3c
- strb r0, [r4, #0xf]
- movs r0, #0x5c
- strb r0, [r6]
- ldr r0, _08022504 @ =gUnk_080FD468
- str r0, [r4, #0x48]
- adds r0, r4, #0
- movs r1, #0
- bl UpdateSprite
- b _08022540
- .align 2, 0
-_08022504: .4byte gUnk_080FD468
-_08022508:
- adds r0, r4, #0
- movs r1, #0x1c
- bl sub_0804A9FC
- movs r0, #5
- strb r0, [r4, #0xc]
- movs r0, #0x5c
- strb r0, [r6]
- adds r0, r4, #0
- movs r1, #1
- bl UpdateSprite
- b _08022540
-_08022522:
- adds r0, r4, #0
- adds r0, #0x41
- ldrb r0, [r0]
- cmp r0, #0x94
- bne _08022540
- adds r0, r4, #0
- movs r1, #0x1c
- bl sub_0804A9FC
- movs r0, #5
- strb r0, [r4, #0xc]
- adds r0, r4, #0
- movs r1, #1
- bl UpdateSprite
-_08022540:
- adds r0, r4, #0
- adds r0, #0x80
- adds r1, r4, #0
- adds r1, #0x45
- ldrb r2, [r0]
- adds r5, r1, #0
- adds r7, r0, #0
- ldrb r0, [r5]
- cmp r2, r0
- beq _08022566
- movs r0, #5
- strb r0, [r4, #0xc]
- movs r0, #0x5c
- strb r0, [r6]
- adds r0, r4, #0
- movs r1, #1
- bl UpdateSprite
- b _0802258E
-_08022566:
- ldrb r0, [r4, #0xc]
- cmp r0, #3
- bne _0802258E
- movs r0, #4
- strb r0, [r4, #0xc]
- adds r0, r4, #0
- movs r1, #3
- bl UpdateSprite
- movs r0, #0xca
- lsls r0, r0, #1
- bl sub_08004488
- b _0802258E
-_08022582:
- adds r0, r4, #0
- movs r1, #1
- bl UpdateSprite
- adds r7, r4, #0
- adds r7, #0x80
-_0802258E:
- ldrb r0, [r5]
- strb r0, [r7]
- ldr r1, _0802259C @ =gUnk_080CBA28
- adds r0, r4, #0
- bl sub_0804AA30
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0802259C: .4byte gUnk_080CBA28
-
- thumb_func_start sub_080225A0
-sub_080225A0: @ 0x080225A0
- push {r4, lr}
- adds r4, r0, #0
- adds r0, #0x58
- ldrb r0, [r0]
- cmp r0, #1
- bne _080225B2
- adds r0, r4, #0
- bl sub_08004274
-_080225B2:
- adds r0, r4, #0
- bl sub_08001318
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_080225BC
-sub_080225BC: @ 0x080225BC
- push {r4, lr}
- adds r4, r0, #0
- movs r1, #0xc0
- lsls r1, r1, #5
- bl sub_08003FC4
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- beq _080225DE
- adds r0, r4, #0
- bl sub_0804A7D4
- b _080225E4
-_080225DE:
- adds r0, r4, #0
- bl sub_08004274
-_080225E4:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start nullsub_9
-nullsub_9: @ 0x080225E8
- bx lr
- .align 2, 0
-
- thumb_func_start sub_080225EC
-sub_080225EC: @ 0x080225EC
- push {r4, lr}
- adds r4, r0, #0
- bl sub_0804A720
- adds r0, r4, #0
- adds r0, #0x45
- ldrb r1, [r0]
- adds r0, #0x3b
- strb r1, [r0]
- adds r1, r4, #0
- adds r1, #0x81
- movs r0, #0x5a
- strb r0, [r1]
- ldrb r0, [r4, #0xe]
- cmp r0, #0
- bne _0802261A
- movs r0, #2
- strb r0, [r4, #0xc]
- adds r0, r4, #0
- movs r1, #0
- bl UpdateSprite
- b _0802264C
-_0802261A:
- movs r0, #1
- strb r0, [r4, #0xc]
- movs r0, #0x3c
- strb r0, [r4, #0xf]
- ldrb r0, [r4, #0x18]
- movs r1, #3
- orrs r0, r1
- strb r0, [r4, #0x18]
- ldrb r2, [r4, #0x19]
- movs r1, #0x3f
- adds r0, r1, #0
- ands r0, r2
- movs r2, #0x40
- orrs r0, r2
- strb r0, [r4, #0x19]
- ldrb r0, [r4, #0x1b]
- ands r1, r0
- orrs r1, r2
- strb r1, [r4, #0x1b]
- ldr r0, _08022650 @ =0x0000FF80
- strh r0, [r4, #0x36]
- adds r0, r4, #0
- movs r1, #6
- bl UpdateSprite
-_0802264C:
- pop {r4, pc}
- .align 2, 0
-_08022650: .4byte 0x0000FF80
-
- thumb_func_start sub_08022654
-sub_08022654: @ 0x08022654
- push {r4, lr}
- adds r4, r0, #0
- ldrb r0, [r4, #0xd]
- cmp r0, #1
- beq _0802268C
- cmp r0, #1
- bgt _08022668
- cmp r0, #0
- beq _0802266E
- b _080226E4
-_08022668:
- cmp r0, #2
- beq _080226BE
- b _080226E4
-_0802266E:
- ldrb r0, [r4, #0xf]
- subs r0, #1
- strb r0, [r4, #0xf]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _080226E4
- movs r0, #1
- strb r0, [r4, #0xd]
- ldr r0, _080226E8 @ =0x0000012D
- bl PlaySFX
- adds r0, r4, #0
- movs r1, #0
- bl UpdateSprite
-_0802268C:
- movs r1, #0xc0
- lsls r1, r1, #5
- adds r0, r4, #0
- bl sub_08003FC4
- cmp r0, #0
- bne _080226E4
- movs r0, #2
- strb r0, [r4, #0xd]
- ldrb r1, [r4, #0x18]
- subs r0, #6
- ands r0, r1
- movs r1, #1
- orrs r0, r1
- strb r0, [r4, #0x18]
- adds r0, r4, #0
- movs r1, #5
- bl UpdateSprite
- movs r0, #0x7d
- bl sub_08004488
- adds r0, r4, #0
- bl UpdateSpriteOrderAndFlip
-_080226BE:
- adds r0, r4, #0
- bl sub_08004274
- ldrb r0, [r4, #0xe]
- subs r0, #1
- strb r0, [r4, #0xe]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _080226E4
- movs r0, #3
- strb r0, [r4, #0xc]
- adds r1, r4, #0
- adds r1, #0x3f
- movs r0, #0x65
- strb r0, [r1]
- adds r0, r4, #0
- movs r1, #2
- bl UpdateSprite
-_080226E4:
- pop {r4, pc}
- .align 2, 0
-_080226E8: .4byte 0x0000012D
-
- thumb_func_start sub_080226EC
-sub_080226EC: @ 0x080226EC
- push {r4, lr}
- adds r4, r0, #0
- movs r1, #1
- bl sub_08049FDC
- cmp r0, #0
- beq _08022776
- adds r0, r4, #0
- bl sub_080228CC
- cmp r0, #0
- beq _0802271A
- movs r0, #3
- strb r0, [r4, #0xc]
- adds r1, r4, #0
- adds r1, #0x3f
- movs r0, #0x65
- strb r0, [r1]
- adds r0, r4, #0
- movs r1, #2
- bl UpdateSprite
- b _0802277C
-_0802271A:
- adds r0, r4, #0
- bl sub_080228F0
- cmp r0, #0
- beq _08022758
- movs r0, #6
- strb r0, [r4, #0xc]
- movs r0, #0x90
- lsls r0, r0, #9
- str r0, [r4, #0x20]
- movs r0, #0xa0
- lsls r0, r0, #1
- strh r0, [r4, #0x24]
- ldr r0, _08022754 @ =gUnk_020000B0
- ldr r1, [r0]
- adds r0, r4, #0
- bl sub_080045C4
- strb r0, [r4, #0x15]
- adds r1, r4, #0
- adds r1, #0x3f
- movs r0, #0x5a
- strb r0, [r1]
- adds r0, r4, #0
- movs r1, #4
- bl UpdateSprite
- b _0802277C
- .align 2, 0
-_08022754: .4byte gUnk_020000B0
-_08022758:
- ldrb r1, [r4, #0xe]
- adds r0, r1, #1
- strb r0, [r4, #0xe]
- movs r0, #7
- ands r0, r1
- cmp r0, #0
- bne _08022770
- adds r0, r4, #0
- movs r1, #1
- bl sub_08049F84
- strb r0, [r4, #0x15]
-_08022770:
- adds r0, r4, #0
- bl sub_080AEF88
-_08022776:
- adds r0, r4, #0
- bl sub_08004274
-_0802277C:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_08022780
-sub_08022780: @ 0x08022780
- push {r4, lr}
- adds r4, r0, #0
- bl sub_08004274
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _080227AA
- movs r0, #4
- strb r0, [r4, #0xc]
- adds r0, r4, #0
- movs r1, #3
- bl UpdateSprite
- movs r0, #0xca
- lsls r0, r0, #1
- bl sub_08004488
-_080227AA:
- pop {r4, pc}
-
- thumb_func_start sub_080227AC
-sub_080227AC: @ 0x080227AC
- push {r4, lr}
- adds r4, r0, #0
- bl sub_08004274
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- beq _080227CC
- ldr r0, _080227C8 @ =gUnk_080FD470
- b _080227CE
- .align 2, 0
-_080227C8: .4byte gUnk_080FD470
-_080227CC:
- ldr r0, _08022814 @ =gUnk_080FD468
-_080227CE:
- str r0, [r4, #0x48]
- adds r2, r4, #0
- adds r2, #0x5a
- ldrb r1, [r2]
- movs r3, #2
- adds r0, r3, #0
- ands r0, r1
- cmp r0, #0
- beq _080227EE
- movs r0, #0xfd
- ands r0, r1
- strb r0, [r2]
- adds r1, r4, #0
- adds r1, #0x3f
- movs r0, #0x5c
- strb r0, [r1]
-_080227EE:
- ldrb r1, [r2]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _08022812
- strb r3, [r4, #0xc]
- bl Random
- ldr r2, _08022818 @ =gUnk_080CBA60
- movs r1, #3
- ands r1, r0
- adds r1, r1, r2
- ldrb r0, [r1]
- strb r0, [r4, #0xf]
- adds r0, r4, #0
- movs r1, #0
- bl UpdateSprite
-_08022812:
- pop {r4, pc}
- .align 2, 0
-_08022814: .4byte gUnk_080FD468
-_08022818: .4byte gUnk_080CBA60
-
- thumb_func_start sub_0802281C
-sub_0802281C: @ 0x0802281C
- push {r4, lr}
- adds r4, r0, #0
- movs r1, #0xc0
- lsls r1, r1, #5
- bl sub_08003FC4
- adds r0, r4, #0
- bl sub_08004274
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _08022852
- movs r0, #2
- strb r0, [r4, #0xc]
- movs r0, #0x20
- strh r0, [r4, #0x24]
- adds r0, r4, #0
- movs r1, #0
- bl UpdateSprite
- adds r0, r4, #0
- bl sub_0804AA1C
-_08022852:
- pop {r4, pc}
-
- thumb_func_start sub_08022854
-sub_08022854: @ 0x08022854
- push {r4, lr}
- adds r4, r0, #0
- bl sub_08004274
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- beq _08022898
- adds r0, r4, #0
- bl sub_080AEFE0
- movs r1, #0xc0
- lsls r1, r1, #5
- adds r0, r4, #0
- bl sub_08003FC4
- cmp r0, #0
- bne _08022898
- movs r0, #7
- strb r0, [r4, #0xc]
- adds r1, r4, #0
- adds r1, #0x3f
- movs r0, #0x5c
- strb r0, [r1]
- adds r0, r4, #0
- movs r1, #5
- bl UpdateSprite
- movs r0, #0x7d
- bl sub_08004488
-_08022898:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_0802289C
-sub_0802289C: @ 0x0802289C
- push {r4, lr}
- adds r4, r0, #0
- bl sub_08004274
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _080228CA
- movs r0, #2
- strb r0, [r4, #0xc]
- movs r0, #0x20
- strh r0, [r4, #0x24]
- adds r1, r4, #0
- adds r1, #0x81
- movs r0, #0x78
- strb r0, [r1]
- adds r0, r4, #0
- movs r1, #0
- bl UpdateSprite
-_080228CA:
- pop {r4, pc}
-
- thumb_func_start sub_080228CC
-sub_080228CC: @ 0x080228CC
- push {lr}
- adds r1, r0, #0
- ldrb r0, [r1, #0xf]
- cmp r0, #0
- bne _080228E8
- adds r0, r1, #0
- movs r1, #1
- movs r2, #0x28
- bl sub_08049F64
- cmp r0, #0
- beq _080228EC
- movs r0, #1
- b _080228EE
-_080228E8:
- subs r0, #1
- strb r0, [r1, #0xf]
-_080228EC:
- movs r0, #0
-_080228EE:
- pop {pc}
-
- thumb_func_start sub_080228F0
-sub_080228F0: @ 0x080228F0
- push {lr}
- adds r1, r0, #0
- adds r2, r1, #0
- adds r2, #0x81
- ldrb r0, [r2]
- cmp r0, #0
- bne _08022910
- adds r0, r1, #0
- movs r1, #1
- movs r2, #0x40
- bl sub_08049F64
- cmp r0, #0
- beq _08022914
- movs r0, #1
- b _08022916
-_08022910:
- subs r0, #1
- strb r0, [r2]
-_08022914:
- movs r0, #0
-_08022916:
- pop {pc}
-
- thumb_func_start sub_08022918
-sub_08022918: @ 0x08022918
- push {r4, r5, lr}
- adds r5, r0, #0
- ldr r4, _08022930 @ =gUnk_080CBB64
- bl sub_0800279C
- lsls r0, r0, #2
- adds r0, r0, r4
- ldr r1, [r0]
- adds r0, r5, #0
- bl _call_via_r1
- pop {r4, r5, pc}
- .align 2, 0
-_08022930: .4byte gUnk_080CBB64
-
- thumb_func_start sub_08022934
-sub_08022934: @ 0x08022934
- push {lr}
- ldr r2, _08022948 @ =gUnk_080CBB7C
- ldrb r1, [r0, #0xc]
- lsls r1, r1, #2
- adds r1, r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {pc}
- .align 2, 0
-_08022948: .4byte gUnk_080CBB7C
-
- thumb_func_start sub_0802294C
-sub_0802294C: @ 0x0802294C
- push {lr}
- ldr r1, _08022958 @ =gUnk_080CBB64
- bl sub_0804AA30
- pop {pc}
- .align 2, 0
-_08022958: .4byte gUnk_080CBB64
-
- thumb_func_start nullsub_132
-nullsub_132: @ 0x0802295C
- bx lr
- .align 2, 0
-
- thumb_func_start sub_08022960
-sub_08022960: @ 0x08022960
- push {r4, lr}
- adds r4, r0, #0
- bl sub_0804A720
- adds r0, r4, #0
- bl sub_08022A88
- pop {r4, pc}
-
- thumb_func_start sub_08022970
-sub_08022970: @ 0x08022970
- push {lr}
- adds r1, r0, #0
- ldrb r0, [r1, #0xe]
- subs r0, #1
- strb r0, [r1, #0xe]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _08022986
- adds r0, r1, #0
- bl sub_08022AA4
-_08022986:
- pop {pc}
-
- thumb_func_start sub_08022988
-sub_08022988: @ 0x08022988
- push {r4, lr}
- adds r4, r0, #0
- movs r1, #0x36
- ldrsh r0, [r4, r1]
- cmp r0, #0
- bne _080229A6
- adds r0, r4, #0
- bl sub_08022B20
- cmp r0, #0
- beq _080229A6
- adds r0, r4, #0
- bl sub_08022B0C
- b _080229F6
-_080229A6:
- ldrb r0, [r4, #0xf]
- cmp r0, #0
- beq _080229C6
- subs r0, #1
- strb r0, [r4, #0xf]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _080229F6
- movs r0, #1
- strb r0, [r4, #0x1e]
- movs r0, #0x80
- lsls r0, r0, #9
- str r0, [r4, #0x20]
- movs r0, #0xd6
- bl sub_08004488
-_080229C6:
- adds r0, r4, #0
- bl sub_080AEF88
- movs r1, #0x80
- lsls r1, r1, #6
- adds r0, r4, #0
- bl sub_08003FC4
- adds r1, r0, #0
- cmp r1, #0
- bne _080229F6
- ldrb r0, [r4, #0xe]
- subs r0, #1
- strb r0, [r4, #0xe]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _080229F0
- adds r0, r4, #0
- bl sub_08022A88
- b _080229F6
-_080229F0:
- movs r0, #4
- strb r0, [r4, #0xf]
- strb r1, [r4, #0x1e]
-_080229F6:
- pop {r4, pc}
-
- thumb_func_start sub_080229F8
-sub_080229F8: @ 0x080229F8
- push {r4, lr}
- adds r4, r0, #0
- movs r1, #0xa0
- lsls r1, r1, #6
- bl sub_08003FC4
- cmp r0, #0
- bne _08022A3C
- ldrb r0, [r4, #0xe]
- subs r0, #1
- strb r0, [r4, #0xe]
- lsls r0, r0, #0x18
- lsrs r1, r0, #0x18
- cmp r1, #0
- bne _08022A30
- movs r0, #4
- strb r0, [r4, #0xc]
- movs r0, #6
- strb r0, [r4, #0xe]
- movs r0, #8
- strb r0, [r4, #0xf]
- strb r1, [r4, #0x1e]
- movs r0, #0xc0
- strh r0, [r4, #0x24]
- adds r0, r4, #0
- bl sub_08022B44
- b _08022A3C
-_08022A30:
- movs r0, #0x80
- lsls r0, r0, #9
- str r0, [r4, #0x20]
- movs r0, #0xd6
- bl sub_08004488
-_08022A3C:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start sub_08022A40
-sub_08022A40: @ 0x08022A40
- push {r4, lr}
- adds r4, r0, #0
- ldrb r0, [r4, #0xf]
- cmp r0, #0
- beq _08022A58
- subs r0, #1
- strb r0, [r4, #0xf]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _08022A86
- movs r0, #1
- strb r0, [r4, #0x1e]
-_08022A58:
- adds r0, r4, #0
- bl sub_080AEF88
- movs r1, #0x80
- lsls r1, r1, #6
- adds r0, r4, #0
- bl sub_08003FC4
- cmp r0, #0
- bne _08022A86
- ldrb r0, [r4, #0xe]
- subs r0, #1
- strb r0, [r4, #0xe]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _08022A80
- adds r0, r4, #0
- bl sub_08022A88
- b _08022A86
-_08022A80:
- adds r0, r4, #0
- bl sub_08022B44
-_08022A86:
- pop {r4, pc}
-
- thumb_func_start sub_08022A88
-sub_08022A88: @ 0x08022A88
- push {r4, r5, lr}
- adds r4, r0, #0
- movs r5, #0
- movs r0, #1
- strb r0, [r4, #0xc]
- bl Random
- movs r1, #0xf
- ands r0, r1
- adds r0, #8
- strb r0, [r4, #0xe]
- strb r5, [r4, #0x1e]
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start sub_08022AA4
-sub_08022AA4: @ 0x08022AA4
- push {r4, r5, lr}
- adds r4, r0, #0
- bl Random
- adds r5, r0, #0
- movs r0, #2
- strb r0, [r4, #0xc]
- movs r1, #3
- adds r0, r5, #0
- ands r0, r1
- adds r0, #1
- strb r0, [r4, #0xe]
- movs r0, #1
- strb r0, [r4, #0xf]
- movs r0, #0x80
- strh r0, [r4, #0x24]
- adds r0, r4, #0
- bl sub_08049FA0
- cmp r0, #0
- bne _08022AE0
- lsrs r0, r5, #8
- movs r1, #3
- ands r0, r1
- cmp r0, #0
- beq _08022AE0
- adds r0, r4, #0
- bl sub_08049EE4
- b _08022AE6
-_08022AE0:
- lsrs r0, r5, #0x10
- movs r1, #0x1f
- ands r0, r1
-_08022AE6:
- strb r0, [r4, #0x15]
- ldrb r1, [r4, #0x15]
- movs r0, #0xf
- ands r0, r1
- cmp r0, #0
- beq _08022B08
- lsrs r1, r1, #4
- movs r0, #1
- eors r1, r0
- ands r1, r0
- lsls r1, r1, #6
- ldrb r2, [r4, #0x18]
- movs r0, #0x41
- rsbs r0, r0, #0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, #0x18]
-_08022B08:
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start sub_08022B0C
-sub_08022B0C: @ 0x08022B0C
- push {lr}
- movs r1, #3
- strb r1, [r0, #0xc]
- strb r1, [r0, #0xe]
- movs r1, #8
- strb r1, [r0, #0xf]
- bl sub_08022B44
- pop {pc}
- .align 2, 0
-
- thumb_func_start sub_08022B20
-sub_08022B20: @ 0x08022B20
- push {r4, lr}
- adds r4, r0, #0
- movs r0, #2
- bl sub_08049DF4
- cmp r0, #0
- beq _08022B40
- ldr r1, _08022B3C @ =gLinkEntity
- adds r0, r4, #0
- movs r2, #0x24
- movs r3, #0x24
- bl sub_080041A0
- b _08022B42
- .align 2, 0
-_08022B3C: .4byte gLinkEntity
-_08022B40:
- movs r0, #0
-_08022B42:
- pop {r4, pc}
-
- thumb_func_start sub_08022B44
-sub_08022B44: @ 0x08022B44
- push {r4, lr}
- adds r4, r0, #0
- movs r0, #0xc0
- lsls r0, r0, #8
- str r0, [r4, #0x20]
- ldr r1, _08022B84 @ =gLinkEntity
- adds r0, r4, #0
- bl sub_080045C4
- adds r1, r0, #0
- strb r1, [r4, #0x15]
- movs r0, #0xf
- ands r0, r1
- cmp r0, #0
- beq _08022B7A
- lsls r1, r1, #0x18
- lsrs r1, r1, #0x1c
- movs r0, #1
- eors r1, r0
- ands r1, r0
- lsls r1, r1, #6
- ldrb r2, [r4, #0x18]
- movs r0, #0x41
- rsbs r0, r0, #0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, #0x18]
-_08022B7A:
- movs r0, #0xd6
- bl sub_08004488
- pop {r4, pc}
- .align 2, 0
-_08022B84: .4byte gLinkEntity
-
- thumb_func_start sub_08022B88
-sub_08022B88: @ 0x08022B88
- push {lr}
- ldr r2, _08022B9C @ =gUnk_080CBB90
- ldrb r1, [r0, #0xa]
- lsls r1, r1, #2
- adds r1, r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {pc}
- .align 2, 0
-_08022B9C: .4byte gUnk_080CBB90
-
- thumb_func_start sub_08022BA0
-sub_08022BA0: @ 0x08022BA0
- push {r4, lr}
- adds r4, r0, #0
- adds r1, r4, #0
- adds r1, #0x79
- ldrb r0, [r1]
- adds r0, #1
- strb r0, [r1]
- ldrh r1, [r4, #0x2e]
- adds r0, r4, #0
- adds r0, #0x74
- strh r1, [r0]
- ldrh r0, [r4, #0x32]
- adds r1, r4, #0
- adds r1, #0x76
- strh r0, [r1]
- ldr r1, _08022BD0 @ =gUnk_080CBBA0
- adds r0, r4, #0
- bl sub_0800129E
- adds r0, r4, #0
- bl sub_08022EAC
- pop {r4, pc}
- .align 2, 0
-_08022BD0: .4byte gUnk_080CBBA0
-
- thumb_func_start sub_08022BD4
-sub_08022BD4: @ 0x08022BD4
- push {lr}
- ldr r2, _08022BE8 @ =gUnk_080CBBB4
- ldrb r1, [r0, #0xc]
- lsls r1, r1, #2
- adds r1, r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {pc}
- .align 2, 0
-_08022BE8: .4byte gUnk_080CBBB4
-
- thumb_func_start sub_08022BEC
-sub_08022BEC: @ 0x08022BEC
- push {lr}
- adds r2, r0, #0
- movs r0, #0x7a
- adds r0, r0, r2
- mov ip, r0
- adds r3, r2, #0
- adds r3, #0x45
- ldrb r0, [r0]
- ldrb r1, [r3]
- cmp r0, r1
- beq _08022C0A
- adds r1, r2, #0
- adds r1, #0x7b
- movs r0, #0x1e
- strb r0, [r1]
-_08022C0A:
- ldrb r0, [r3]
- mov r1, ip
- strb r0, [r1]
- movs r0, #1
- strb r0, [r2, #0xe]
- adds r0, r2, #0
- adds r0, #0x3e
- ldrb r0, [r0]
- strb r0, [r2, #0x15]
- ldrb r0, [r2, #0x15]
- adds r0, #2
- movs r1, #0x1c
- ands r0, r1
- asrs r0, r0, #2
- strb r0, [r2, #0x14]
- strb r0, [r2, #0x1e]
- ldr r0, [r2, #0x54]
- adds r3, r2, #0
- adds r3, #0x3d
- ldrb r1, [r3]
- adds r0, #0x3d
- strb r1, [r0]
- ldr r0, [r2, #0x7c]
- ldrb r1, [r3]
- adds r0, #0x3d
- strb r1, [r0]
- adds r0, r2, #0
- adds r0, #0x80
- ldr r0, [r0]
- ldrb r1, [r3]
- adds r0, #0x3d
- strb r1, [r0]
- ldr r1, _08022C54 @ =gUnk_080CBBA0
- adds r0, r2, #0
- bl sub_0804AA30
- pop {pc}
- .align 2, 0
-_08022C54: .4byte gUnk_080CBBA0
-
- thumb_func_start sub_08022C58
-sub_08022C58: @ 0x08022C58
- push {r4, r5, r6, r7, lr}
- mov r7, sb
- mov r6, r8
- push {r6, r7}
- adds r7, r0, #0
- ldrb r1, [r7, #0x10]
- movs r0, #0x7f
- ands r0, r1
- strb r0, [r7, #0x10]
- ldr r0, _08022D3C @ =gUnk_03003DBC
- ldrb r0, [r0]
- cmp r0, #0x44
- bhi _08022D34
- movs r0, #0xd
- movs r1, #1
- bl CreateEnemy
- mov sb, r0
- str r0, [r7, #0x54]
- mov r2, sb
- adds r2, #0x29
- ldrb r1, [r2]
- movs r4, #8
- rsbs r4, r4, #0
- adds r0, r4, #0
- ands r0, r1
- movs r1, #5
- mov r8, r1
- mov r1, r8
- orrs r0, r1
- strb r0, [r2]
- mov r0, sb
- str r7, [r0, #0x50]
- adds r0, r7, #0
- mov r1, sb
- bl CopyPosition
- movs r0, #0xd
- movs r1, #2
- bl CreateEnemy
- adds r6, r0, #0
- mov r1, sb
- str r6, [r1, #0x54]
- adds r2, r6, #0
- adds r2, #0x29
- ldrb r1, [r2]
- adds r0, r4, #0
- ands r0, r1
- mov r1, r8
- orrs r0, r1
- strb r0, [r2]
- str r7, [r6, #0x50]
- adds r0, r7, #0
- adds r1, r6, #0
- bl CopyPosition
- movs r0, #0xd
- movs r1, #3
- bl CreateEnemy
- adds r5, r0, #0
- str r5, [r6, #0x54]
- adds r1, r5, #0
- adds r1, #0x29
- ldrb r0, [r1]
- ands r4, r0
- mov r0, r8
- orrs r4, r0
- strb r4, [r1]
- str r7, [r5, #0x50]
- adds r0, r7, #0
- adds r1, r5, #0
- bl CopyPosition
- adds r0, r7, #0
- bl sub_0804A720
- movs r0, #1
- strb r0, [r7, #0xc]
- strb r0, [r7, #0xe]
- strb r0, [r7, #0xf]
- ldrb r0, [r7, #0x10]
- movs r1, #0x80
- orrs r0, r1
- strb r0, [r7, #0x10]
- str r7, [r7, #0x50]
- mov r1, sb
- str r1, [r7, #0x54]
- str r6, [r7, #0x7c]
- adds r0, r7, #0
- adds r0, #0x80
- str r5, [r0]
- bl Random
- movs r1, #0x1f
- ands r0, r1
- strb r0, [r7, #0x15]
- ldrb r0, [r7, #0x15]
- adds r0, #2
- movs r1, #0x1c
- ands r0, r1
- asrs r0, r0, #2
- strb r0, [r7, #0x14]
- strb r0, [r7, #0x1e]
- adds r0, r7, #0
- adds r0, #0x45
- ldrb r1, [r0]
- adds r0, #0x35
- strb r1, [r0]
-_08022D34:
- pop {r3, r4}
- mov r8, r3
- mov sb, r4
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_08022D3C: .4byte gUnk_03003DBC
-
- thumb_func_start sub_08022D40
-sub_08022D40: @ 0x08022D40
- push {r4, lr}
- adds r4, r0, #0
- adds r2, r4, #0
- adds r2, #0x7b
- ldrb r1, [r2]
- cmp r1, #0
- beq _08022D66
- adds r0, r1, #0
- adds r0, #0xff
- strb r0, [r2]
- movs r0, #1
- ands r0, r1
- cmp r0, #0
- beq _08022D8E
- ldrb r0, [r4, #0x14]
- adds r0, #1
- movs r1, #7
- ands r0, r1
- b _08022D8A
-_08022D66:
- adds r0, r4, #0
- bl sub_08022F14
- adds r0, r4, #0
- bl sub_080AEF88
- ldrh r0, [r4, #0x2a]
- cmp r0, #0
- beq _08022D8E
- adds r1, r0, #0
- adds r0, r4, #0
- bl sub_0800417E
- ldrb r0, [r4, #0x15]
- adds r0, #2
- movs r1, #0x1c
- ands r0, r1
- asrs r0, r0, #2
-_08022D8A:
- strb r0, [r4, #0x14]
- strb r0, [r4, #0x1e]
-_08022D8E:
- pop {r4, pc}
-
- thumb_func_start sub_08022D90
-sub_08022D90: @ 0x08022D90
- push {r4, r5, lr}
- adds r5, r0, #0
- ldr r0, [r5, #0x50]
- ldr r0, [r0, #4]
- cmp r0, #0
- beq _08022DE0
- ldr r1, _08022DDC @ =gUnk_080CBBBC
- ldrb r0, [r5, #0xc]
- lsls r0, r0, #2
- adds r0, r0, r1
- ldr r1, [r0]
- adds r0, r5, #0
- bl _call_via_r1
- ldr r4, [r5, #0x50]
- ldrb r2, [r4, #0x1b]
- lsrs r2, r2, #6
- lsls r2, r2, #6
- ldrb r3, [r5, #0x1b]
- movs r1, #0x3f
- adds r0, r1, #0
- ands r0, r3
- orrs r0, r2
- strb r0, [r5, #0x1b]
- ldrb r0, [r4, #0x19]
- lsrs r0, r0, #6
- lsls r0, r0, #6
- ldrb r2, [r5, #0x19]
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, #0x19]
- adds r4, #0x38
- ldrb r1, [r4]
- adds r0, r5, #0
- adds r0, #0x38
- strb r1, [r0]
- b _08022DE6
- .align 2, 0
-_08022DDC: .4byte gUnk_080CBBBC
-_08022DE0:
- adds r0, r5, #0
- bl sub_0805E7BC
-_08022DE6:
- pop {r4, r5, pc}
-
- thumb_func_start sub_08022DE8
-sub_08022DE8: @ 0x08022DE8
- push {lr}
- adds r3, r0, #0
- movs r0, #1
- strb r0, [r3, #0xc]
- adds r0, r3, #0
- adds r0, #0x7c
- movs r1, #0x88
- strb r1, [r0]
- adds r0, #1
- strb r1, [r0]
- adds r0, #1
- strb r1, [r0]
- adds r0, #1
- strb r1, [r0]
- adds r0, #1
- strb r1, [r0]
- adds r0, #1
- strb r1, [r0]
- adds r0, #1
- strb r1, [r0]
- adds r0, #1
- strb r1, [r0]
- ldr r0, [r3, #0x50]
- ldrb r0, [r0, #0x14]
- strb r0, [r3, #0x14]
- adds r2, r3, #0
- adds r2, #0x84
- ldrb r1, [r3, #0x14]
- lsls r0, r1, #4
- adds r0, r0, r1
- lsls r1, r0, #8
- adds r0, r0, r1
- lsls r1, r0, #0x10
- adds r0, r0, r1
- str r0, [r2]
- ldrb r0, [r3, #0xa]
- cmp r0, #3
- beq _08022E38
- adds r0, #7
- b _08022E3C
-_08022E38:
- ldrb r0, [r3, #0x14]
- adds r0, #0xa
-_08022E3C:
- strb r0, [r3, #0x1e]
- pop {pc}
-
- thumb_func_start sub_08022E40
-sub_08022E40: @ 0x08022E40
- push {r4, r5, lr}
- adds r4, r0, #0
- ldrh r1, [r4, #0x2e]
- adds r0, #0x74
- strh r1, [r0]
- ldrh r0, [r4, #0x32]
- adds r1, r4, #0
- adds r1, #0x76
- strh r0, [r1]
- ldr r2, [r4, #0x50]
- adds r2, #0x79
- ldrb r0, [r2]
- adds r0, #1
- movs r3, #7
- ands r0, r3
- adds r0, #0x7c
- adds r0, r4, r0
- ldrb r1, [r0]
- movs r0, #0xf
- ands r0, r1
- subs r0, #8
- lsrs r1, r1, #4
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- ldrh r5, [r4, #0x2e]
- adds r0, r0, r5
- strh r0, [r4, #0x2e]
- subs r1, #8
- ldrh r0, [r4, #0x32]
- adds r1, r1, r0
- strh r1, [r4, #0x32]
- adds r1, r4, #0
- adds r1, #0x84
- ldrb r0, [r2]
- adds r0, #1
- ands r0, r3
- lsls r0, r0, #2
- ldr r1, [r1]
- lsrs r1, r0
- movs r0, #7
- ands r1, r0
- strb r1, [r4, #0x14]
- ldrb r0, [r4, #0xa]
- cmp r0, #3
- bne _08022EA2
- adds r0, r1, #0
- adds r0, #0xa
- strb r0, [r4, #0x1e]
- b _08022EA8
-_08022EA2:
- adds r0, r4, #0
- bl sub_08022EAC
-_08022EA8:
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start sub_08022EAC
-sub_08022EAC: @ 0x08022EAC
- push {r4, r5, lr}
- mov ip, r0
- ldr r1, [r0, #0x54]
- cmp r1, #0
- beq _08022F12
- ldr r0, [r0, #0x50]
- adds r0, #0x79
- ldrb r0, [r0]
- movs r4, #7
- adds r3, r4, #0
- ands r3, r0
- adds r3, r3, r1
- adds r3, #0x7c
- mov r0, ip
- ldrh r1, [r0, #0x2e]
- adds r0, #0x74
- ldrb r0, [r0]
- subs r1, r1, r0
- adds r1, #8
- movs r5, #0xf
- ands r1, r5
- mov r2, ip
- ldrh r0, [r2, #0x32]
- adds r2, #0x76
- ldrb r2, [r2]
- subs r0, r0, r2
- adds r0, #8
- ands r0, r5
- lsls r0, r0, #4
- adds r1, r1, r0
- strb r1, [r3]
- mov r1, ip
- ldr r0, [r1, #0x50]
- adds r0, #0x79
- ldrb r1, [r0]
- adds r0, r4, #0
- ands r0, r1
- lsls r0, r0, #2
- mov r2, ip
- ldrb r1, [r2, #0x14]
- ands r4, r1
- lsls r4, r0
- movs r2, #0xf
- lsls r2, r0
- mov r0, ip
- ldr r1, [r0, #0x54]
- adds r1, #0x84
- ldr r0, [r1]
- bics r0, r2
- orrs r4, r0
- str r4, [r1]
-_08022F12:
- pop {r4, r5, pc}
-
- thumb_func_start sub_08022F14
-sub_08022F14: @ 0x08022F14
- push {r4, r5, lr}
- adds r4, r0, #0
- bl sub_08049FA0
- cmp r0, #0
- bne _08022F4E
- adds r0, r4, #0
- bl sub_08049EE4
- ldrb r1, [r4, #0x15]
- subs r2, r0, r1
- movs r1, #0x1f
- ands r2, r1
- adds r0, r2, #4
- ands r0, r1
- cmp r0, #8
- bls _08022F4E
- movs r0, #8
- strb r0, [r4, #0xf]
- cmp r2, #0xf
- bhi _08022F46
- adds r1, r4, #0
- adds r1, #0x78
- movs r0, #1
- b _08022F4C
-_08022F46:
- adds r1, r4, #0
- adds r1, #0x78
- movs r0, #0xff
-_08022F4C:
- strb r0, [r1]
-_08022F4E:
- ldrb r0, [r4, #0xe]
- subs r0, #1
- strb r0, [r4, #0xe]
- movs r1, #0xff
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _08022F9E
- movs r0, #4
- strb r0, [r4, #0xe]
- ldrb r0, [r4, #0xf]
- subs r0, #1
- strb r0, [r4, #0xf]
- ands r0, r1
- adds r5, r4, #0
- adds r5, #0x78
- cmp r0, #0
- bne _08022F84
- movs r0, #8
- strb r0, [r4, #0xf]
- bl Random
- ldr r2, _08022FA0 @ =gUnk_080CBBC4
- movs r1, #1
- ands r1, r0
- adds r1, r1, r2
- ldrb r0, [r1]
- strb r0, [r5]
-_08022F84:
- ldrb r0, [r5]
- ldrb r1, [r4, #0x15]
- adds r0, r0, r1
- movs r1, #0x1f
- ands r0, r1
- strb r0, [r4, #0x15]
- ldrb r0, [r4, #0x15]
- adds r0, #2
- movs r1, #0x1c
- ands r0, r1
- asrs r0, r0, #2
- strb r0, [r4, #0x14]
- strb r0, [r4, #0x1e]
-_08022F9E:
- pop {r4, r5, pc}
- .align 2, 0
-_08022FA0: .4byte gUnk_080CBBC4
-
- thumb_func_start sub_08022FA4
-sub_08022FA4: @ 0x08022FA4
- push {lr}
- ldr r1, _08022FB0 @ =gUnk_080CBBC8
- bl sub_0800129E
- pop {pc}
- .align 2, 0
-_08022FB0: .4byte gUnk_080CBBC8
-
- thumb_func_start sub_08022FB4
-sub_08022FB4: @ 0x08022FB4
- push {lr}
- ldr r2, _08022FC8 @ =gUnk_080CBBDC
- ldrb r1, [r0, #0xc]
- lsls r1, r1, #2
- adds r1, r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {pc}
- .align 2, 0
-_08022FC8: .4byte gUnk_080CBBDC
-
- thumb_func_start nullsub_133
-nullsub_133: @ 0x08022FCC
- bx lr
- .align 2, 0
-
- thumb_func_start sub_08022FD0
-sub_08022FD0: @ 0x08022FD0
- push {lr}
- movs r3, #1
- movs r1, #1
- strb r1, [r0, #0xc]
- ldrb r2, [r0, #0x18]
- subs r1, #5
- ands r1, r2
- orrs r1, r3
- strb r1, [r0, #0x18]
- movs r1, #0
- bl sub_08023000
- pop {pc}
- .align 2, 0
-
- thumb_func_start sub_08022FEC
-sub_08022FEC: @ 0x08022FEC
- push {lr}
- movs r1, #0x80
- bl sub_08023000
- pop {pc}
- .align 2, 0
-
- thumb_func_start sub_08022FF8
-sub_08022FF8: @ 0x08022FF8
- bx lr
- .align 2, 0
-
- thumb_func_start sub_08022FFC
-sub_08022FFC: @ 0x08022FFC
- bx lr
- .align 2, 0
-
- thumb_func_start sub_08023000
-sub_08023000: @ 0x08023000
- push {r4, lr}
- adds r4, r0, #0
- cmp r1, #0x80
- bne _0802300E
- bl sub_080042B8
- b _08023014
-_0802300E:
- adds r0, r4, #0
- bl LoadAnimation
-_08023014:
- movs r2, #0x80
- adds r0, r4, #0
- adds r0, #0x5b
- ldrb r0, [r0]
- cmp r0, #0x40
- bne _08023022
- rsbs r2, r2, #0
-_08023022:
- ldrb r0, [r4, #0x19]
- movs r1, #3
- orrs r0, r1
- strb r0, [r4, #0x19]
- adds r0, r4, #0
- adds r1, r2, #0
- movs r2, #0x80
- movs r3, #0
- bl sub_0805EC9C
- pop {r4, pc}
-
- thumb_func_start sub_08023038
-sub_08023038: @ 0x08023038
- push {r4, r5, r6, lr}
- adds r4, r0, #0
- ldrh r5, [r4, #0x2e]
- ldrh r6, [r4, #0x32]
- ldrb r1, [r4, #0xa]
- cmp r1, #0
- bne _0802306C
- ldrb r0, [r4, #0xc]
- cmp r0, #0
- beq _08023052
- adds r0, r4, #0
- bl sub_0802390C
-_08023052:
- adds r0, r4, #0
- adds r0, #0x7c
- ldrb r0, [r0]
- adds r1, r4, #0
- adds r1, #0x7d
- strb r0, [r1]
- ldr r1, _08023068 @ =gUnk_080CBC38
- adds r0, r4, #0
- bl sub_0800129E
- b _08023090
- .align 2, 0
-_08023068: .4byte gUnk_080CBC38
-_0802306C:
- ldr r0, [r4, #0x50]
- ldr r0, [r0, #4]
- cmp r0, #0
- beq _08023088
- cmp r1, #8
- beq _08023080
- adds r0, r4, #0
- bl sub_080235BC
- b _08023090
-_08023080:
- adds r0, r4, #0
- bl sub_08023730
- b _08023090
-_08023088:
- adds r0, r4, #0
- bl sub_0805E7BC
- b _080230CA
-_08023090:
- ldr r0, [r4, #0x50]
- adds r2, r0, #0
- adds r2, #0x7c
- adds r0, #0x7d
- ldrb r1, [r2]
- ldrb r0, [r0]
- cmp r1, r0
- beq _080230CA
- ldr r1, [r4, #0x54]
- cmp r1, #0
- beq _080230CA
- ldrb r2, [r2]
- subs r2, #1
- movs r0, #0xf
- ands r2, r0
- adds r2, #0x78
- adds r2, r1, r2
- ldrh r1, [r4, #0x2e]
- subs r1, r1, r5
- adds r1, #8
- movs r3, #0xf
- ands r1, r3
- lsls r1, r1, #4
- ldrh r0, [r4, #0x32]
- subs r0, r0, r6
- adds r0, #8
- ands r0, r3
- orrs r1, r0
- strb r1, [r2]
-_080230CA:
- pop {r4, r5, r6, pc}
-
- thumb_func_start sub_080230CC
-sub_080230CC: @ 0x080230CC
- push {lr}
- ldr r2, _080230E0 @ =gUnk_080CBC50
- ldrb r1, [r0, #0xc]
- lsls r1, r1, #2
- adds r1, r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {pc}
- .align 2, 0
-_080230E0: .4byte gUnk_080CBC50
-
- thumb_func_start sub_080230E4
-sub_080230E4: @ 0x080230E4
- push {r4, r5, lr}
- adds r5, r0, #0
- ldrb r0, [r5, #0xd]
- cmp r0, #0xff
- bne _08023132
- movs r2, #0
- movs r0, #7
- strb r0, [r5, #0xc]
- movs r3, #1
- strb r3, [r5, #0xe]
- strb r2, [r5, #0xd]
- adds r1, r5, #0
- adds r1, #0x3f
- movs r0, #0x85
- strb r0, [r1]
- subs r1, #2
- movs r0, #0xf8
- strb r0, [r1]
- adds r0, r5, #0
- adds r0, #0x7f
- strb r2, [r0]
- subs r0, #4
- strb r2, [r0]
- subs r0, #0x3a
- ldrb r0, [r0]
- cmp r0, #0x80
- beq _0802311E
- cmp r0, #0x9e
- bne _08023128
-_0802311E:
- strb r2, [r5, #0xb]
- adds r1, r5, #0
- adds r1, #0x80
- movs r0, #0x14
- b _08023130
-_08023128:
- strb r3, [r5, #0xb]
- adds r1, r5, #0
- adds r1, #0x80
- movs r0, #8
-_08023130:
- strb r0, [r1]
-_08023132:
- adds r0, r5, #0
- adds r0, #0x45
- ldrb r0, [r0]
- cmp r0, #0
- bne _0802318A
- adds r0, r5, #0
- adds r0, #0x7f
- ldrb r0, [r0]
- cmp r0, #0
- bne _0802318A
- ldrb r0, [r5, #0xc]
- cmp r0, #7
- bne _0802318A
- ldr r4, _08023194 @ =gLinkEntity
- adds r0, r5, #0
- adds r1, r4, #0
- bl CopyPosition
- ldrb r1, [r4, #0x10]
- movs r0, #0x80
- orrs r0, r1
- strb r0, [r4, #0x10]
- ldrb r1, [r4, #0x18]
- movs r0, #4
- rsbs r0, r0, #0
- ands r0, r1
- movs r1, #1
- orrs r0, r1
- strb r0, [r4, #0x18]
- movs r0, #0xc0
- lsls r0, r0, #9
- str r0, [r4, #0x20]
- movs r0, #0xff
- strb r0, [r4, #0x15]
- adds r4, #0x3d
- movs r0, #0xec
- strb r0, [r4]
- ldr r2, _08023198 @ =gLinkState
- movs r0, #0x41
- strb r0, [r2, #2]
- ldr r0, [r2, #0x30]
- ldr r1, _0802319C @ =0xFFF7FFFF
- ands r0, r1
- str r0, [r2, #0x30]
-_0802318A:
- ldr r1, _080231A0 @ =gUnk_080CBC38
- adds r0, r5, #0
- bl sub_0804AA30
- pop {r4, r5, pc}
- .align 2, 0
-_08023194: .4byte gLinkEntity
-_08023198: .4byte gLinkState
-_0802319C: .4byte 0xFFF7FFFF
-_080231A0: .4byte gUnk_080CBC38
-
- thumb_func_start sub_080231A4
-sub_080231A4: @ 0x080231A4
- push {lr}
- adds r2, r0, #0
- adds r2, #0x7c
- ldrb r1, [r2]
- adds r1, #1
- strb r1, [r2]
- bl sub_08001324
-
- thumb_func_start nullsub_134
-nullsub_134: @ 0x080231B4
- pop {pc}
- .align 2, 0
-
- thumb_func_start nullsub_135
-nullsub_135: @ 0x080231B8
- bx lr
- .align 2, 0
-
- thumb_func_start sub_080231BC
-sub_080231BC: @ 0x080231BC
- push {r4, r5, r6, lr}
- adds r6, r0, #0
- ldr r0, _08023280 @ =gUnk_03003DBC
- ldrb r0, [r0]
- cmp r0, #0x3f
- bhi _0802327E
- movs r0, #0xf
- movs r1, #1
- bl CreateEnemy
- adds r4, r0, #0
- str r4, [r6, #0x54]
- str r6, [r4, #0x50]
- movs r0, #0xf
- movs r1, #2
- bl CreateEnemy
- adds r5, r0, #0
- str r5, [r4, #0x54]
- str r6, [r5, #0x50]
- movs r0, #0xf
- movs r1, #3
- bl CreateEnemy
- adds r4, r0, #0
- str r4, [r5, #0x54]
- str r6, [r4, #0x50]
- movs r0, #0xf
- movs r1, #4
- bl CreateEnemy
- adds r5, r0, #0
- str r5, [r4, #0x54]
- str r6, [r5, #0x50]
- movs r0, #0xf
- movs r1, #5
- bl CreateEnemy
- adds r4, r0, #0
- str r4, [r5, #0x54]
- str r6, [r4, #0x50]
- movs r0, #0xf
- movs r1, #6
- bl CreateEnemy
- adds r5, r0, #0
- str r5, [r4, #0x54]
- str r6, [r5, #0x50]
- movs r0, #0xf
- movs r1, #7
- bl CreateEnemy
- adds r4, r0, #0
- str r4, [r5, #0x54]
- str r6, [r4, #0x50]
- movs r0, #0xf
- movs r1, #8
- bl CreateEnemy
- str r0, [r4, #0x54]
- str r4, [r0, #0x74]
- str r6, [r0, #0x50]
- movs r1, #0
- str r1, [r0, #0x54]
- adds r0, r6, #0
- bl sub_0804A720
- movs r0, #6
- strb r0, [r6, #0xc]
- movs r1, #0x1e
- strb r1, [r6, #0xe]
- str r6, [r6, #0x50]
- adds r0, r6, #0
- adds r0, #0x78
- strh r1, [r0]
- ldrb r1, [r6, #0x1a]
- movs r0, #0x10
- rsbs r0, r0, #0
- ands r0, r1
- movs r1, #5
- orrs r0, r1
- strb r0, [r6, #0x1a]
- bl Random
- movs r1, #0x1f
- ands r0, r1
- strb r0, [r6, #0x15]
- ldrb r0, [r6, #0x15]
- adds r0, #2
- movs r1, #0x1c
- ands r0, r1
- asrs r0, r0, #2
- strb r0, [r6, #0x14]
- ldrb r1, [r6, #0x14]
- adds r0, r6, #0
- bl UpdateSprite
-_0802327E:
- pop {r4, r5, r6, pc}
- .align 2, 0
-_08023280: .4byte gUnk_03003DBC
-
- thumb_func_start nullsub_136
-nullsub_136: @ 0x08023284
- bx lr
- .align 2, 0
-
- thumb_func_start sub_08023288
-sub_08023288: @ 0x08023288
- push {r4, r5, r6, r7, lr}
- mov r7, sl
- mov r6, sb
- mov r5, r8
- push {r5, r6, r7}
- adds r7, r0, #0
- movs r1, #1
- bl sub_08049FDC
- cmp r0, #0
- beq _08023324
- ldrb r1, [r7, #0xe]
- adds r0, r1, #1
- strb r0, [r7, #0xe]
- movs r0, #0xf
- ands r0, r1
- cmp r0, #0
- bne _08023324
- bl Random
- adds r4, r0, #0
- movs r0, #0x1e
- ands r4, r0
- movs r0, #0
- mov r8, r0
- ldr r2, _08023308 @ =gLinkEntity
- mov sb, r2
- ldr r0, _0802330C @ =gUnk_080CBC70
- mov sl, r0
-_080232C2:
- mov r2, sb
- movs r0, #0x2e
- ldrsh r1, [r2, r0]
- mov r2, sl
- adds r0, r4, r2
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- adds r6, r1, r0
- mov r0, sb
- movs r2, #0x32
- ldrsh r1, [r0, r2]
- adds r0, r4, #1
- add r0, sl
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- adds r5, r1, r0
- ldr r0, _08023310 @ =gUnk_03001198
- ldrb r2, [r0]
- adds r0, r6, #0
- adds r1, r5, #0
- bl sub_080002A4
- bl sub_08023A38
- cmp r0, #0
- beq _08023314
- adds r0, r7, #0
- adds r1, r6, #0
- adds r2, r5, #0
- bl sub_08023990
- b _08023324
- .align 2, 0
-_08023308: .4byte gLinkEntity
-_0802330C: .4byte gUnk_080CBC70
-_08023310: .4byte gUnk_03001198
-_08023314:
- adds r4, #2
- movs r0, #0x1e
- ands r4, r0
- movs r2, #1
- add r8, r2
- mov r0, r8
- cmp r0, #0xf
- bls _080232C2
-_08023324:
- pop {r3, r4, r5}
- mov r8, r3
- mov sb, r4
- mov sl, r5
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start sub_08023330
-sub_08023330: @ 0x08023330
- push {r4, r5, lr}
- adds r5, r0, #0
- bl sub_08004274
- adds r0, r5, #0
- adds r0, #0x5a
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _08023394
- movs r0, #4
- strb r0, [r5, #0xc]
- movs r0, #0x19
- strb r0, [r5, #0xe]
- ldrb r1, [r5, #0x10]
- movs r0, #0x80
- orrs r0, r1
- strb r0, [r5, #0x10]
- adds r1, r5, #0
- adds r1, #0x78
- movs r4, #0
- movs r0, #0x96
- lsls r0, r0, #2
- strh r0, [r1]
- bl Random
- movs r1, #0x1c
- ands r0, r1
- strb r0, [r5, #0x15]
- lsrs r0, r0, #2
- strb r0, [r5, #0x14]
- adds r0, r5, #0
- adds r0, #0x7b
- strb r4, [r0]
- adds r0, #4
- strb r4, [r0]
- ldrb r1, [r5, #0x14]
- adds r0, r5, #0
- bl sub_08023A88
- ldr r1, [r5, #0x54]
- adds r0, r5, #0
- bl CopyPosition
- adds r0, r5, #0
- movs r1, #4
- movs r2, #0
- bl CreateFx
-_08023394:
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start sub_08023398
-sub_08023398: @ 0x08023398
- push {r4, r5, r6, lr}
- adds r5, r0, #0
- adds r0, #0x7c
- ldrb r1, [r0]
- adds r1, #1
- strb r1, [r0]
- adds r0, #3
- ldrb r0, [r0]
- cmp r0, #0
- beq _080233C0
- adds r0, r5, #0
- movs r1, #1
- bl sub_08049FDC
- cmp r0, #0
- bne _080233C0
- adds r1, r5, #0
- adds r1, #0x78
- movs r0, #1
- strh r0, [r1]
-_080233C0:
- adds r4, r5, #0
- adds r4, #0x78
- ldrh r0, [r4]
- subs r0, #1
- strh r0, [r4]
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _08023416
- adds r0, r5, #0
- bl sub_080002A0
- bl sub_08023A38
- cmp r0, #0
- beq _08023412
- movs r0, #5
- strb r0, [r5, #0xc]
- adds r1, r5, #0
- adds r1, #0x7f
- movs r0, #0
- strb r0, [r1]
- ldrb r1, [r5, #0x10]
- movs r0, #0x7f
- ands r0, r1
- strb r0, [r5, #0x10]
- adds r1, r5, #0
- adds r1, #0x3f
- movs r0, #0x85
- strb r0, [r1]
- ldr r1, [r5, #0x54]
- movs r0, #1
- strb r0, [r1, #0xe]
- adds r0, r5, #0
- bl sub_08023A68
- adds r0, r5, #0
- movs r1, #4
- movs r2, #0
- bl CreateFx
- b _0802349C
-_08023412:
- movs r0, #0x28
- strh r0, [r4]
-_08023416:
- adds r0, r5, #0
- adds r0, #0x7f
- ldrb r0, [r0]
- cmp r0, #0
- beq _08023426
- adds r0, r5, #0
- bl sub_08023AB0
-_08023426:
- ldrb r0, [r5, #0xe]
- subs r1, r0, #1
- strb r1, [r5, #0xe]
- lsls r0, r1, #0x18
- lsrs r0, r0, #0x18
- cmp r0, #2
- bhi _08023440
- lsls r0, r1, #0x18
- cmp r0, #0
- bne _0802349C
- movs r0, #0x19
- strb r0, [r5, #0xe]
- b _0802349C
-_08023440:
- ldr r4, [r5, #0x2c]
- ldr r6, [r5, #0x30]
- adds r0, r5, #0
- bl sub_080AEF88
- ldr r0, [r5, #0x2c]
- cmp r0, r4
- bne _08023460
- ldr r0, [r5, #0x30]
- cmp r0, r6
- bne _08023460
- adds r1, r5, #0
- adds r1, #0x7c
- ldrb r0, [r1]
- subs r0, #1
- strb r0, [r1]
-_08023460:
- ldr r0, _080234A0 @ =gUnk_030010A0
- ldr r0, [r0]
- movs r1, #7
- ands r0, r1
- cmp r0, #0
- bne _0802349C
- adds r0, r5, #0
- movs r1, #1
- bl sub_08049F84
- adds r1, r0, #0
- adds r0, r5, #0
- bl sub_08004596
- ldrb r0, [r5, #0x15]
- adds r0, #2
- movs r1, #0x1c
- ands r0, r1
- asrs r0, r0, #2
- ldrb r1, [r5, #0x14]
- cmp r0, r1
- beq _0802349C
- strb r0, [r5, #0x14]
- adds r1, r5, #0
- adds r1, #0x7b
- ldrb r1, [r1]
- adds r1, r0, r1
- adds r0, r5, #0
- bl UpdateSprite
-_0802349C:
- pop {r4, r5, r6, pc}
- .align 2, 0
-_080234A0: .4byte gUnk_030010A0
-
- thumb_func_start sub_080234A4
-sub_080234A4: @ 0x080234A4
- push {r4, lr}
- adds r4, r0, #0
- adds r0, #0x7c
- ldrb r1, [r0]
- adds r1, #1
- strb r1, [r0]
- adds r0, r4, #0
- bl sub_08004274
- adds r0, r4, #0
- adds r0, #0x7f
- ldrb r0, [r0]
- cmp r0, #0
- beq _080234D6
- movs r0, #6
- strb r0, [r4, #0xc]
- ldrb r1, [r4, #0x18]
- subs r0, #0xa
- ands r0, r1
- strb r0, [r4, #0x18]
- adds r1, r4, #0
- adds r1, #0x78
- movs r0, #0x96
- lsls r0, r0, #1
- strh r0, [r1]
-_080234D6:
- pop {r4, pc}
-
- thumb_func_start sub_080234D8
-sub_080234D8: @ 0x080234D8
- push {r4, lr}
- adds r4, r0, #0
- adds r1, r4, #0
- adds r1, #0x78
- ldrh r0, [r1]
- subs r0, #1
- strh r0, [r1]
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _0802351A
- movs r0, #2
- strb r0, [r4, #0xc]
- ldrb r1, [r4, #0x1a]
- subs r0, #0x12
- ands r0, r1
- movs r1, #5
- orrs r0, r1
- strb r0, [r4, #0x1a]
- bl Random
- movs r1, #0x1f
- ands r0, r1
- strb r0, [r4, #0x15]
- ldrb r0, [r4, #0x15]
- adds r0, #2
- movs r1, #0x1c
- ands r0, r1
- asrs r0, r0, #2
- strb r0, [r4, #0x14]
- ldrb r1, [r4, #0x14]
- adds r0, r4, #0
- bl sub_08023A88
-_0802351A:
- pop {r4, pc}
-
- thumb_func_start sub_0802351C
-sub_0802351C: @ 0x0802351C
- push {r4, r5, r6, r7, lr}
- adds r7, r0, #0
- ldrb r0, [r7, #0xe]
- cmp r0, #0
- beq _0802355A
- ldrb r0, [r7, #0xb]
- cmp r0, #1
- beq _08023534
- ldr r0, _080235A8 @ =gLinkEntity
- ldrb r0, [r0, #0x1e]
- cmp r0, #0xff
- bne _0802355A
-_08023534:
- movs r0, #0
- strb r0, [r7, #0xe]
- ldr r1, [r7, #0x54]
- movs r0, #3
- strb r0, [r1, #0xc]
- ldr r1, [r7, #0x54]
- adds r0, r7, #0
- adds r0, #0x80
- ldrb r0, [r0]
- strb r0, [r1, #0xf]
- ldr r0, [r7, #0x54]
- ldrb r1, [r0, #0x14]
- adds r1, #1
- bl UpdateSprite
- ldrb r1, [r7, #0x14]
- adds r0, r7, #0
- bl UpdateSprite
-_0802355A:
- adds r0, r7, #0
- adds r0, #0x7f
- ldrb r0, [r0]
- cmp r0, #0
- bne _080235B4
- ldrb r0, [r7, #0xb]
- cmp r0, #0
- bne _080235B8
- ldr r5, _080235A8 @ =gLinkEntity
- ldrb r0, [r7, #0x14]
- movs r4, #7
- adds r2, r4, #0
- ands r2, r0
- strb r2, [r5, #0x14]
- ldr r3, _080235AC @ =gLinkState
- ldr r0, [r3, #0x30]
- movs r1, #0x80
- lsls r1, r1, #0xc
- orrs r0, r1
- str r0, [r3, #0x30]
- ldr r6, _080235B0 @ =gUnk_080CBC90
- adds r2, r2, r6
- movs r3, #0
- ldrsb r3, [r2, r3]
- lsls r3, r3, #0x10
- adds r0, r7, #0
- adds r1, r5, #0
- movs r2, #0
- bl PositionRelative
- ldrb r0, [r7, #0x14]
- ands r4, r0
- adds r4, r4, r6
- ldrb r0, [r4]
- rsbs r0, r0, #0
- adds r5, #0x63
- strb r0, [r5]
- b _080235B8
- .align 2, 0
-_080235A8: .4byte gLinkEntity
-_080235AC: .4byte gLinkState
-_080235B0: .4byte gUnk_080CBC90
-_080235B4:
- movs r0, #4
- strb r0, [r7, #0xc]
-_080235B8:
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start sub_080235BC
-sub_080235BC: @ 0x080235BC
- push {lr}
- ldr r2, _080235D0 @ =gUnk_080CBC98
- ldrb r1, [r0, #0xc]
- lsls r1, r1, #2
- adds r1, r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {pc}
- .align 2, 0
-_080235D0: .4byte gUnk_080CBC98
-
- thumb_func_start sub_080235D4
-sub_080235D4: @ 0x080235D4
- push {r4, lr}
- adds r4, r0, #0
- movs r0, #1
- strb r0, [r4, #0xc]
- ldr r1, [r4, #0x50]
- ldrh r0, [r1, #0x2e]
- strh r0, [r4, #0x2e]
- ldrh r0, [r1, #0x32]
- strh r0, [r4, #0x32]
- adds r0, r4, #0
- bl sub_080239F0
- ldrb r0, [r4, #0xa]
- cmp r0, #1
- bne _080235F6
- movs r0, #0x10
- b _080235F8
-_080235F6:
- movs r0, #0x12
-_080235F8:
- strb r0, [r4, #0x14]
- ldrb r1, [r4, #0x14]
- adds r0, r4, #0
- bl UpdateSprite
- pop {r4, pc}
-
- thumb_func_start sub_08023604
-sub_08023604: @ 0x08023604
- push {lr}
- adds r2, r0, #0
- ldr r0, [r2, #0x50]
- adds r0, #0x7c
- ldrb r1, [r0]
- movs r0, #0xf
- ands r0, r1
- adds r0, r0, r2
- adds r0, #0x78
- ldrb r0, [r0]
- cmp r0, #0x88
- beq _08023640
- movs r1, #0
- movs r0, #2
- strb r0, [r2, #0xc]
- strb r1, [r2, #0xe]
- ldrb r1, [r2, #0x10]
- movs r0, #0x80
- orrs r0, r1
- strb r0, [r2, #0x10]
- ldrb r1, [r2, #0x18]
- movs r0, #4
- rsbs r0, r0, #0
- ands r0, r1
- movs r1, #1
- orrs r0, r1
- strb r0, [r2, #0x18]
- adds r0, r2, #0
- bl sub_08023644
-_08023640:
- pop {pc}
- .align 2, 0
-
- thumb_func_start sub_08023644
-sub_08023644: @ 0x08023644
- push {r4, r5, r6, lr}
- adds r4, r0, #0
- ldr r5, [r4, #0x50]
- adds r0, r5, #0
- adds r0, #0x58
- ldrb r0, [r0]
- cmp r0, #0x17
- bne _08023692
- ldrb r0, [r4, #0xe]
- cmp r0, #0
- beq _08023692
- movs r0, #0x2e
- ldrsh r1, [r4, r0]
- movs r2, #0x2e
- ldrsh r0, [r5, r2]
- cmp r1, r0
- bne _08023692
- movs r6, #0x32
- ldrsh r1, [r4, r6]
- movs r2, #0x32
- ldrsh r0, [r5, r2]
- cmp r1, r0
- bne _08023692
- movs r2, #1
- strb r2, [r4, #0xc]
- ldrb r1, [r4, #0x10]
- movs r0, #0x7f
- ands r0, r1
- strb r0, [r4, #0x10]
- ldrb r1, [r4, #0x18]
- movs r0, #4
- rsbs r0, r0, #0
- ands r0, r1
- strb r0, [r4, #0x18]
- ldr r0, [r4, #0x54]
- strb r2, [r0, #0xe]
- adds r0, r4, #0
- bl sub_080239F0
-_08023692:
- adds r0, r5, #0
- adds r0, #0x7c
- adds r1, r5, #0
- adds r1, #0x7d
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- beq _080236F2
- movs r2, #0xf
- adds r1, r2, #0
- ands r1, r0
- adds r1, #0x78
- adds r1, r4, r1
- ldrb r0, [r1]
- lsrs r0, r0, #4
- ldr r3, _080236F4 @ =0x0000FFF8
- adds r0, r0, r3
- ldrh r6, [r4, #0x2e]
- adds r0, r0, r6
- strh r0, [r4, #0x2e]
- ldrb r0, [r1]
- ands r2, r0
- adds r2, r2, r3
- ldrh r0, [r4, #0x32]
- adds r2, r2, r0
- strh r2, [r4, #0x32]
- ldrb r2, [r5, #0x1b]
- lsrs r2, r2, #6
- lsls r2, r2, #6
- ldrb r3, [r4, #0x1b]
- movs r1, #0x3f
- adds r0, r1, #0
- ands r0, r3
- orrs r0, r2
- strb r0, [r4, #0x1b]
- ldrb r0, [r5, #0x19]
- lsrs r0, r0, #6
- lsls r0, r0, #6
- ldrb r2, [r4, #0x19]
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, #0x19]
- adds r0, r5, #0
- adds r0, #0x38
- ldrb r1, [r0]
- adds r0, r4, #0
- adds r0, #0x38
- strb r1, [r0]
-_080236F2:
- pop {r4, r5, r6, pc}
- .align 2, 0
-_080236F4: .4byte 0x0000FFF8
-
- thumb_func_start sub_080236F8
-sub_080236F8: @ 0x080236F8
- push {r4, lr}
- adds r4, r0, #0
- ldrb r0, [r4, #0xf]
- subs r0, #1
- strb r0, [r4, #0xf]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _0802372E
- movs r0, #2
- strb r0, [r4, #0xc]
- ldr r1, [r4, #0x54]
- movs r0, #3
- strb r0, [r1, #0xc]
- ldr r1, [r4, #0x54]
- ldr r0, [r4, #0x50]
- adds r0, #0x80
- ldrb r0, [r0]
- strb r0, [r1, #0xf]
- ldr r0, [r4, #0x54]
- ldrb r1, [r0, #0x14]
- adds r1, #1
- bl UpdateSprite
- ldrb r1, [r4, #0x14]
- adds r0, r4, #0
- bl UpdateSprite
-_0802372E:
- pop {r4, pc}
-
- thumb_func_start sub_08023730
-sub_08023730: @ 0x08023730
- push {lr}
- ldr r2, _08023744 @ =gUnk_080CBCA8
- ldrb r1, [r0, #0xc]
- lsls r1, r1, #2
- adds r1, r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {pc}
- .align 2, 0
-_08023744: .4byte gUnk_080CBCA8
-
- thumb_func_start sub_08023748
-sub_08023748: @ 0x08023748
- push {r4, lr}
- adds r4, r0, #0
- movs r0, #1
- strb r0, [r4, #0xc]
- movs r0, #0x14
- strb r0, [r4, #0x14]
- ldr r1, [r4, #0x50]
- ldrh r0, [r1, #0x2e]
- strh r0, [r4, #0x2e]
- ldrh r0, [r1, #0x32]
- strh r0, [r4, #0x32]
- adds r0, r4, #0
- bl sub_080239F0
- adds r0, r4, #0
- bl sub_08023A68
- pop {r4, pc}
-
- thumb_func_start sub_0802376C
-sub_0802376C: @ 0x0802376C
- push {r4, r5, lr}
- adds r4, r0, #0
- ldr r5, [r4, #0x50]
- ldrb r0, [r5, #0x18]
- lsls r0, r0, #0x1e
- lsrs r0, r0, #0x1e
- cmp r0, #1
- bne _0802379A
- adds r0, r5, #0
- adds r0, #0x58
- ldrb r0, [r0]
- cmp r0, #0xf
- bhi _0802379A
- ldrb r0, [r4, #0x18]
- movs r1, #4
- rsbs r1, r1, #0
- ands r1, r0
- movs r0, #1
- orrs r1, r0
- strb r1, [r4, #0x18]
- adds r0, r4, #0
- bl sub_08004274
-_0802379A:
- adds r0, r5, #0
- adds r0, #0x7c
- ldrb r1, [r0]
- movs r0, #0xf
- ands r0, r1
- adds r0, r0, r4
- adds r0, #0x78
- ldrb r0, [r0]
- cmp r0, #0x88
- beq _080237D4
- movs r1, #0
- movs r0, #2
- strb r0, [r4, #0xc]
- strb r1, [r4, #0xe]
- ldrb r1, [r4, #0x10]
- movs r0, #0x80
- orrs r0, r1
- strb r0, [r4, #0x10]
- ldr r0, [r4, #0x50]
- adds r0, #0x7f
- movs r1, #1
- strb r1, [r0]
- adds r0, r4, #0
- movs r1, #0x14
- bl sub_08023A88
- adds r0, r4, #0
- bl sub_080237D8
-_080237D4:
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start sub_080237D8
-sub_080237D8: @ 0x080237D8
- push {r4, r5, r6, lr}
- adds r4, r0, #0
- ldr r5, [r4, #0x50]
- adds r0, r5, #0
- adds r0, #0x58
- ldrb r0, [r0]
- cmp r0, #0x17
- bne _0802382E
- ldrb r0, [r4, #0xe]
- cmp r0, #0
- beq _0802382E
- movs r0, #0x2e
- ldrsh r1, [r4, r0]
- movs r2, #0x2e
- ldrsh r0, [r5, r2]
- cmp r1, r0
- bne _0802382E
- movs r6, #0x32
- ldrsh r1, [r4, r6]
- movs r2, #0x32
- ldrsh r0, [r5, r2]
- cmp r1, r0
- bne _0802382E
- movs r2, #1
- strb r2, [r4, #0xc]
- ldrb r1, [r4, #0x10]
- movs r0, #0x7f
- ands r0, r1
- strb r0, [r4, #0x10]
- ldrb r1, [r4, #0x18]
- movs r0, #4
- rsbs r0, r0, #0
- ands r0, r1
- strb r0, [r4, #0x18]
- adds r0, r5, #0
- adds r0, #0x7f
- strb r2, [r0]
- adds r0, r4, #0
- bl sub_080239F0
- adds r0, r4, #0
- bl sub_08023A68
-_0802382E:
- adds r0, r5, #0
- adds r0, #0x7c
- adds r1, r5, #0
- adds r1, #0x7d
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- beq _0802388E
- movs r2, #0xf
- adds r1, r2, #0
- ands r1, r0
- adds r1, #0x78
- adds r1, r4, r1
- ldrb r0, [r1]
- lsrs r0, r0, #4
- ldr r3, _08023890 @ =0x0000FFF8
- adds r0, r0, r3
- ldrh r6, [r4, #0x2e]
- adds r0, r0, r6
- strh r0, [r4, #0x2e]
- ldrb r0, [r1]
- ands r2, r0
- adds r2, r2, r3
- ldrh r0, [r4, #0x32]
- adds r2, r2, r0
- strh r2, [r4, #0x32]
- ldrb r2, [r5, #0x1b]
- lsrs r2, r2, #6
- lsls r2, r2, #6
- ldrb r3, [r4, #0x1b]
- movs r1, #0x3f
- adds r0, r1, #0
- ands r0, r3
- orrs r0, r2
- strb r0, [r4, #0x1b]
- ldrb r0, [r5, #0x19]
- lsrs r0, r0, #6
- lsls r0, r0, #6
- ldrb r2, [r4, #0x19]
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, #0x19]
- adds r0, r5, #0
- adds r0, #0x38
- ldrb r1, [r0]
- adds r0, r4, #0
- adds r0, #0x38
- strb r1, [r0]
-_0802388E:
- pop {r4, r5, r6, pc}
- .align 2, 0
-_08023890: .4byte 0x0000FFF8
-
- thumb_func_start sub_08023894
-sub_08023894: @ 0x08023894
- push {r4, r5, lr}
- adds r5, r0, #0
- ldrb r0, [r5, #0xf]
- subs r0, #1
- strb r0, [r5, #0xf]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _08023900
- movs r0, #2
- strb r0, [r5, #0xc]
- ldr r0, [r5, #0x50]
- adds r0, #0x7f
- movs r1, #1
- strb r1, [r0]
- ldrb r1, [r5, #0x14]
- adds r0, r5, #0
- bl UpdateSprite
- ldr r0, [r5, #0x50]
- ldrb r0, [r0, #0xb]
- cmp r0, #0
- bne _08023900
- ldr r2, _08023904 @ =gLinkState
- ldr r0, [r2, #0x30]
- movs r1, #0x80
- lsls r1, r1, #0xe
- orrs r0, r1
- str r0, [r2, #0x30]
- ldr r4, _08023908 @ =gLinkEntity
- ldrh r0, [r5, #0x2e]
- strh r0, [r4, #0x2e]
- ldrh r0, [r5, #0x32]
- strh r0, [r4, #0x32]
- ldr r0, [r5, #0x74]
- adds r1, r5, #0
- bl sub_080045C4
- adds r0, #4
- movs r1, #0x18
- ands r0, r1
- strb r0, [r4, #0x15]
- lsrs r0, r0, #2
- strb r0, [r4, #0x14]
- adds r1, r4, #0
- adds r1, #0x3d
- movs r0, #0xc
- strb r0, [r1]
- subs r0, #0x1c
- bl ModHealth
- adds r0, r4, #0
- movs r1, #0x7a
- bl sub_0800449C
-_08023900:
- pop {r4, r5, pc}
- .align 2, 0
-_08023904: .4byte gLinkState
-_08023908: .4byte gLinkEntity
-
- thumb_func_start sub_0802390C
-sub_0802390C: @ 0x0802390C
- push {r4, r5, lr}
- adds r5, r0, #0
- adds r0, #0x41
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _08023932
- ldr r2, [r5, #0x54]
- adds r3, r5, #0
- adds r3, #0x3d
-_08023922:
- ldrb r0, [r3]
- adds r1, r2, #0
- adds r1, #0x3d
- strb r0, [r1]
- ldr r2, [r2, #0x54]
- cmp r2, #0
- bne _08023922
- b _0802398C
-_08023932:
- ldr r2, [r5, #0x54]
- b _0802393C
-_08023936:
- ldr r2, [r2, #0x54]
- cmp r2, #0
- beq _0802398C
-_0802393C:
- adds r0, r2, #0
- adds r0, #0x41
- ldrb r1, [r0]
- movs r0, #0x80
- ands r0, r1
- cmp r0, #0
- beq _08023936
- movs r0, #0x45
- adds r0, r0, r2
- mov ip, r0
- ldrb r1, [r0]
- movs r4, #0xff
- subs r0, r4, r1
- lsls r0, r0, #0x18
- lsrs r3, r0, #0x18
- cmp r3, #0
- beq _08023936
- adds r0, r1, #0
- orrs r0, r4
- mov r1, ip
- strb r0, [r1]
- adds r0, r2, #0
- adds r0, #0x3d
- ldrb r4, [r0]
- adds r1, r5, #0
- adds r1, #0x45
- ldrb r0, [r1]
- cmp r0, r3
- blo _0802397A
- subs r0, r0, r3
- b _0802397C
-_0802397A:
- movs r0, #0
-_0802397C:
- strb r0, [r1]
- adds r2, r5, #0
-_08023980:
- adds r0, r2, #0
- adds r0, #0x3d
- strb r4, [r0]
- ldr r2, [r2, #0x54]
- cmp r2, #0
- bne _08023980
-_0802398C:
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start sub_08023990
-sub_08023990: @ 0x08023990
- push {r4, r5, lr}
- adds r5, r0, #0
- movs r0, #3
- strb r0, [r5, #0xc]
- ldrb r3, [r5, #0x18]
- subs r0, #7
- ands r0, r3
- movs r3, #1
- orrs r0, r3
- strb r0, [r5, #0x18]
- movs r0, #0x55
- strb r0, [r5, #0x1a]
- adds r4, r5, #0
- adds r4, #0x29
- ldrb r0, [r4]
- movs r3, #7
- orrs r0, r3
- strb r0, [r4]
- strh r1, [r5, #0x2e]
- strh r2, [r5, #0x32]
- ldr r0, _080239EC @ =gLinkEntity
- adds r0, #0x38
- ldrb r1, [r0]
- adds r0, r5, #0
- adds r0, #0x38
- strb r1, [r0]
- adds r0, r5, #0
- bl UpdateSpriteOrderAndFlip
- adds r0, r5, #0
- movs r1, #0x16
- bl UpdateSprite
- ldr r4, [r5, #0x54]
-_080239D4:
- adds r0, r4, #0
- bl sub_080239F0
- adds r0, r5, #0
- adds r1, r4, #0
- bl CopyPosition
- ldr r4, [r4, #0x54]
- cmp r4, #0
- bne _080239D4
- pop {r4, r5, pc}
- .align 2, 0
-_080239EC: .4byte gLinkEntity
-
- thumb_func_start sub_080239F0
-sub_080239F0: @ 0x080239F0
- adds r2, r0, #0
- adds r1, r2, #0
- adds r1, #0x78
- movs r0, #0x88
- strb r0, [r1]
- adds r1, #1
- strb r0, [r1]
- adds r1, #1
- strb r0, [r1]
- adds r1, #1
- strb r0, [r1]
- adds r1, #1
- strb r0, [r1]
- adds r1, #1
- strb r0, [r1]
- adds r1, #1
- strb r0, [r1]
- adds r1, #1
- strb r0, [r1]
- adds r1, #1
- strb r0, [r1]
- adds r1, #1
- strb r0, [r1]
- adds r1, #1
- strb r0, [r1]
- adds r1, #1
- strb r0, [r1]
- adds r1, #1
- strb r0, [r1]
- adds r1, #1
- strb r0, [r1]
- adds r1, #1
- strb r0, [r1]
- adds r1, #1
- strb r0, [r1]
- bx lr
-
- thumb_func_start sub_08023A38
-sub_08023A38: @ 0x08023A38
- push {lr}
- adds r1, r0, #0
- cmp r1, #0x1a
- beq _08023A5A
- cmp r1, #0x29
- beq _08023A5A
- ldr r0, _08023A60 @ =gUnk_080B37A0
- adds r0, r1, r0
- ldrb r1, [r0]
- cmp r1, #9
- beq _08023A5A
- cmp r1, #0xb
- beq _08023A5A
- cmp r1, #0xa
- beq _08023A5A
- cmp r1, #0xc
- bne _08023A64
-_08023A5A:
- movs r0, #1
- b _08023A66
- .align 2, 0
-_08023A60: .4byte gUnk_080B37A0
-_08023A64:
- movs r0, #0
-_08023A66:
- pop {pc}
-
- thumb_func_start sub_08023A68
-sub_08023A68: @ 0x08023A68
- push {r4, lr}
- adds r4, r0, #0
- movs r1, #5
- bl sub_0801D2B4
- adds r2, r4, #0
- adds r2, #0x29
- ldrb r0, [r2]
- movs r1, #7
- orrs r0, r1
- strb r0, [r2]
- adds r0, r4, #0
- movs r1, #0x17
- bl UpdateSprite
- pop {r4, pc}
-
- thumb_func_start sub_08023A88
-sub_08023A88: @ 0x08023A88
- push {r4, r5, lr}
- adds r4, r0, #0
- adds r5, r1, #0
- movs r1, #0x22
- bl sub_0801D2B4
- adds r2, r4, #0
- adds r2, #0x29
- ldrb r1, [r2]
- movs r0, #8
- rsbs r0, r0, #0
- ands r0, r1
- movs r1, #4
- orrs r0, r1
- strb r0, [r2]
- adds r0, r4, #0
- adds r1, r5, #0
- bl UpdateSprite
- pop {r4, r5, pc}
-
- thumb_func_start sub_08023AB0
-sub_08023AB0: @ 0x08023AB0
- push {r4, r5, r6, r7, lr}
- adds r4, r0, #0
- adds r7, r4, #0
- adds r7, #0x7b
- ldrb r0, [r7]
- cmp r0, #8
- bne _08023AF6
- adds r5, r4, #0
- adds r5, #0x7e
- ldrb r0, [r5]
- adds r6, r0, #0
- cmp r6, #0
- bne _08023B00
- adds r0, r4, #0
- bl sub_08023B38
- cmp r0, #0
- beq _08023ADE
- adds r0, r4, #0
- adds r0, #0x78
- ldrh r0, [r0]
- cmp r0, #0x1d
- bhi _08023B34
-_08023ADE:
- adds r1, r4, #0
- adds r1, #0x3f
- movs r0, #0x85
- strb r0, [r1]
- strb r6, [r7]
- movs r0, #0x1e
- strb r0, [r5]
- ldrb r1, [r4, #0x14]
- adds r0, r4, #0
- bl UpdateSprite
- b _08023B34
-_08023AF6:
- adds r5, r4, #0
- adds r5, #0x7e
- ldrb r0, [r5]
- cmp r0, #0
- beq _08023B06
-_08023B00:
- subs r0, #1
- strb r0, [r5]
- b _08023B34
-_08023B06:
- adds r0, r4, #0
- adds r0, #0x78
- ldrh r0, [r0]
- cmp r0, #0x59
- bls _08023B34
- adds r0, r4, #0
- bl sub_08023B38
- cmp r0, #0
- beq _08023B34
- adds r1, r4, #0
- adds r1, #0x3f
- movs r0, #0x87
- strb r0, [r1]
- movs r0, #8
- strb r0, [r7]
- movs r0, #0xa
- strb r0, [r5]
- ldrb r1, [r4, #0x14]
- adds r1, #8
- adds r0, r4, #0
- bl UpdateSprite
-_08023B34:
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start sub_08023B38
-sub_08023B38: @ 0x08023B38
- push {r4, r5, r6, lr}
- adds r4, r0, #0
- movs r0, #1
- bl sub_08049DF4
- adds r5, r0, #0
- cmp r5, #0
- bne _08023B4C
- movs r0, #0
- b _08023B8E
-_08023B4C:
- movs r0, #0x2e
- ldrsh r2, [r4, r0]
- ldr r3, _08023B90 @ =gUnk_080CBCB8
- ldrb r0, [r4, #0x14]
- lsls r0, r0, #1
- adds r1, r0, r3
- ldrb r1, [r1]
- lsls r1, r1, #0x18
- asrs r1, r1, #0x18
- adds r2, r2, r1
- movs r6, #0x32
- ldrsh r1, [r4, r6]
- adds r0, #1
- adds r0, r0, r3
- ldrb r0, [r0]
- lsls r0, r0, #0x18
- asrs r0, r0, #0x18
- adds r1, r1, r0
- movs r3, #0
- movs r4, #0x2e
- ldrsh r0, [r5, r4]
- subs r0, r0, r2
- adds r0, #0x14
- cmp r0, #0x28
- bhi _08023B8C
- movs r6, #0x32
- ldrsh r0, [r5, r6]
- subs r0, r0, r1
- adds r0, #0x14
- cmp r0, #0x28
- bhi _08023B8C
- movs r3, #1
-_08023B8C:
- adds r0, r3, #0
-_08023B8E:
- pop {r4, r5, r6, pc}
- .align 2, 0
-_08023B90: .4byte gUnk_080CBCB8
-
- thumb_func_start sub_08023B94
-sub_08023B94: @ 0x08023B94
- push {r4, r5, lr}
- adds r5, r0, #0
- ldrb r0, [r5, #0xa]
- cmp r0, #1
- bne _08023BAC
- ldr r1, _08023BA8 @ =gUnk_080CBDBC
- adds r0, r5, #0
- bl sub_0800129E
- b _08023BEC
- .align 2, 0
-_08023BA8: .4byte gUnk_080CBDBC
-_08023BAC:
- cmp r0, #0
- bne _08023C00
- movs r1, #0x36
- ldrsh r0, [r5, r1]
- cmp r0, #0
- bne _08023BD8
- adds r0, r5, #0
- bl sub_080012DC
- adds r1, r0, #0
- cmp r1, #0
- beq _08023BD8
- ldr r0, _08023BD4 @ =gUnk_080012C8
- lsls r1, r1, #2
- adds r1, r1, r0
- ldr r1, [r1]
- adds r0, r5, #0
- bl _call_via_r1
- b _08023C06
- .align 2, 0
-_08023BD4: .4byte gUnk_080012C8
-_08023BD8:
- ldr r4, _08023BFC @ =gUnk_080CBDD4
- adds r0, r5, #0
- bl sub_0800279C
- lsls r0, r0, #2
- adds r0, r0, r4
- ldr r1, [r0]
- adds r0, r5, #0
- bl _call_via_r1
-_08023BEC:
- movs r3, #0x10
- rsbs r3, r3, #0
- adds r0, r5, #0
- movs r1, #0
- movs r2, #1
- bl sub_0804A9AC
- b _08023C06
- .align 2, 0
-_08023BFC: .4byte gUnk_080CBDD4
-_08023C00:
- adds r0, r5, #0
- bl sub_08023E10
-_08023C06:
- pop {r4, r5, pc}
-
- thumb_func_start sub_08023C08
-sub_08023C08: @ 0x08023C08
- push {lr}
- ldr r2, _08023C1C @ =gUnk_080CBDEC
- ldrb r1, [r0, #0xc]
- lsls r1, r1, #2
- adds r1, r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {pc}
- .align 2, 0
-_08023C1C: .4byte gUnk_080CBDEC
-
- thumb_func_start sub_08023C20
-sub_08023C20: @ 0x08023C20
- push {r4, lr}
- adds r4, r0, #0
- adds r0, #0x43
- ldrb r0, [r0]
- cmp r0, #0
- beq _08023C34
- adds r0, r4, #0
- movs r1, #0x1c
- bl sub_0804A9FC
-_08023C34:
- ldrb r0, [r4, #0xa]
- cmp r0, #1
- bne _08023C48
- ldr r1, _08023C44 @ =gUnk_080CBDBC
- adds r0, r4, #0
- bl sub_0804AA30
- b _08023C50
- .align 2, 0
-_08023C44: .4byte gUnk_080CBDBC
-_08023C48:
- ldr r1, _08023C54 @ =gUnk_080CBDD4
- adds r0, r4, #0
- bl sub_0804AA30
-_08023C50:
- pop {r4, pc}
- .align 2, 0
-_08023C54: .4byte gUnk_080CBDD4
-
- thumb_func_start nullsub_137
-nullsub_137: @ 0x08023C58
- bx lr
- .align 2, 0
-
- thumb_func_start sub_08023C5C
-sub_08023C5C: @ 0x08023C5C
- push {r4, lr}
- adds r4, r0, #0
- bl sub_0804A720
- movs r0, #1
- strb r0, [r4, #0xc]
- bl Random
- movs r1, #0x30
- ands r0, r1
- adds r0, #0xb4
- strb r0, [r4, #0xe]
- bl Random
- movs r1, #0x18
- ands r0, r1
- strb r0, [r4, #0x15]
- lsrs r0, r0, #3
- strb r0, [r4, #0x14]
- ldrb r1, [r4, #0x14]
- adds r0, r4, #0
- bl UpdateSprite
- pop {r4, pc}
-
- thumb_func_start sub_08023C8C
-sub_08023C8C: @ 0x08023C8C
- push {r4, lr}
- adds r4, r0, #0
- bl sub_080AEF88
- adds r0, r4, #0
- bl sub_08004274
- adds r0, r4, #0
- bl sub_08023E54
- ldrb r0, [r4, #0xe]
- subs r0, #1
- strb r0, [r4, #0xe]
- lsls r0, r0, #0x18
- cmp r0, #0
- bne _08023CDC
- adds r0, r4, #0
- adds r0, #0x5a
- ldrb r0, [r0]
- cmp r0, #1
- beq _08023CBC
- movs r0, #8
- strb r0, [r4, #0xe]
- b _08023CDC
-_08023CBC:
- bl Random
- movs r1, #0x30
- ands r0, r1
- adds r0, #0xb4
- strb r0, [r4, #0xe]
- adds r0, r4, #0
- bl sub_08023E9C
- ldrb r0, [r4, #0x15]
- lsrs r0, r0, #3
- strb r0, [r4, #0x14]
- ldrb r1, [r4, #0x14]
- adds r0, r4, #0
- bl UpdateSprite
-_08023CDC:
- pop {r4, pc}
- .align 2, 0
diff --git a/asm/code_0801EE18.s b/asm/code_0801EE18.s
new file mode 100644
index 00000000..ad7a2a64
--- /dev/null
+++ b/asm/code_0801EE18.s
@@ -0,0 +1,10563 @@
+ .include "asm/macros.inc"
+
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+
+ thumb_func_start sub_0801EE18
+sub_0801EE18: @ 0x0801EE18
+ push {r4, r5, lr}
+ adds r5, r0, #0
+ bl sub_080012DC
+ adds r4, r0, #0
+ cmp r4, #0
+ beq _0801EE9E
+ cmp r4, #2
+ beq _0801EE40
+ ldr r0, _0801EE3C @ =gUnk_080012C8
+ lsls r1, r4, #2
+ adds r1, r1, r0
+ ldr r1, [r1]
+ adds r0, r5, #0
+ bl _call_via_r1
+ b _0801EEE0
+ .align 2, 0
+_0801EE3C: .4byte gUnk_080012C8
+_0801EE40:
+ adds r2, r5, #0
+ adds r2, #0x3a
+ ldrb r1, [r2]
+ movs r0, #0xfe
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r5, #0
+ adds r0, #0x81
+ ldrb r0, [r0]
+ cmp r4, r0
+ beq _0801EE9E
+ ldrb r0, [r5, #0xa]
+ cmp r0, #1
+ beq _0801EE9E
+ cmp r0, #1
+ bgt _0801EE66
+ cmp r0, #0
+ beq _0801EE6C
+ b _0801EE9E
+_0801EE66:
+ cmp r0, #2
+ beq _0801EE96
+ b _0801EE9E
+_0801EE6C:
+ ldrb r1, [r5, #0x10]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0801EE9E
+ movs r0, #6
+ strb r0, [r5, #0xc]
+ movs r0, #0x7f
+ ands r0, r1
+ strb r0, [r5, #0x10]
+ movs r0, #0x20
+ strh r0, [r5, #0x24]
+ adds r1, r5, #0
+ adds r1, #0x3f
+ movs r0, #0x5c
+ strb r0, [r1]
+ adds r0, r5, #0
+ movs r1, #5
+ bl UpdateSprite
+ b _0801EE9E
+_0801EE96:
+ adds r0, r5, #0
+ bl sub_080043A8
+ b _0801EEE0
+_0801EE9E:
+ adds r0, r5, #0
+ adds r0, #0x81
+ strb r4, [r0]
+ ldr r4, _0801EED0 @ =gUnk_080CA21C
+ adds r0, r5, #0
+ bl sub_0800279C
+ lsls r0, r0, #2
+ adds r0, r0, r4
+ ldr r1, [r0]
+ adds r0, r5, #0
+ bl _call_via_r1
+ ldr r0, [r5, #0x68]
+ ldrb r0, [r0, #0xa]
+ cmp r0, #0x1c
+ bne _0801EED4
+ movs r3, #0x10
+ rsbs r3, r3, #0
+ adds r0, r5, #0
+ movs r1, #0
+ movs r2, #1
+ bl sub_0804A9AC
+ b _0801EEE0
+ .align 2, 0
+_0801EED0: .4byte gUnk_080CA21C
+_0801EED4:
+ ldrb r0, [r5, #0xa]
+ cmp r0, #2
+ bne _0801EEE0
+ adds r0, r5, #0
+ bl sub_0801FB34
+_0801EEE0:
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801EEE4
+sub_0801EEE4: @ 0x0801EEE4
+ push {r4, lr}
+ adds r4, r0, #0
+ ldrb r0, [r4, #0xa]
+ cmp r0, #1
+ beq _0801EF0C
+ cmp r0, #1
+ bgt _0801EEF8
+ cmp r0, #0
+ beq _0801EEFE
+ b _0801EF38
+_0801EEF8:
+ cmp r0, #2
+ beq _0801EF28
+ b _0801EF38
+_0801EEFE:
+ adds r0, r4, #0
+ bl sub_0801F3AC
+ ldr r0, _0801EF08 @ =gUnk_080CA234
+ b _0801EF14
+ .align 2, 0
+_0801EF08: .4byte gUnk_080CA234
+_0801EF0C:
+ adds r0, r4, #0
+ bl sub_0801F764
+ ldr r0, _0801EF24 @ =gUnk_080CA25C
+_0801EF14:
+ ldrb r1, [r4, #0xc]
+ lsls r1, r1, #2
+ adds r1, r1, r0
+ ldr r1, [r1]
+ adds r0, r4, #0
+ bl _call_via_r1
+ b _0801EF38
+ .align 2, 0
+_0801EF24: .4byte gUnk_080CA25C
+_0801EF28:
+ ldr r0, _0801EF3C @ =gUnk_080CA288
+ ldrb r1, [r4, #0xc]
+ lsls r1, r1, #2
+ adds r1, r1, r0
+ ldr r1, [r1]
+ adds r0, r4, #0
+ bl _call_via_r1
+_0801EF38:
+ pop {r4, pc}
+ .align 2, 0
+_0801EF3C: .4byte gUnk_080CA288
+
+ thumb_func_start sub_0801EF40
+sub_0801EF40: @ 0x0801EF40
+ push {r4, r5, r6, r7, lr}
+ adds r4, r0, #0
+ ldrb r0, [r4, #0xa]
+ cmp r0, #2
+ bne _0801EF68
+ adds r0, r4, #0
+ adds r0, #0x41
+ ldrb r0, [r0]
+ cmp r0, #0x8e
+ beq _0801EF58
+ cmp r0, #0x95
+ bne _0801EF68
+_0801EF58:
+ ldrb r0, [r4, #0x10]
+ movs r1, #0x7f
+ ands r1, r0
+ movs r0, #0
+ strb r1, [r4, #0x10]
+ adds r1, r4, #0
+ adds r1, #0x45
+ strb r0, [r1]
+_0801EF68:
+ adds r0, r4, #0
+ adds r0, #0x45
+ ldrb r6, [r0]
+ adds r7, r0, #0
+ cmp r6, #0
+ beq _0801EFB0
+ subs r0, #4
+ ldrb r0, [r0]
+ cmp r0, #0x94
+ bne _0801EF94
+ adds r0, r4, #0
+ bl sub_0801FB68
+ adds r0, r4, #0
+ movs r1, #0x1c
+ bl sub_0804A9FC
+ adds r0, r4, #0
+ movs r1, #6
+ bl UpdateSprite
+ b _0801EFC0
+_0801EF94:
+ adds r0, r4, #0
+ adds r0, #0x80
+ ldrb r1, [r0]
+ adds r5, r0, #0
+ cmp r1, r6
+ beq _0801EFC4
+ adds r0, r4, #0
+ bl sub_0801FB68
+ adds r0, r4, #0
+ movs r1, #6
+ bl UpdateSprite
+ b _0801EFC4
+_0801EFB0:
+ adds r0, r4, #0
+ bl sub_0804AA1C
+ str r6, [r4, #0x20]
+ adds r0, r4, #0
+ movs r1, #9
+ bl UpdateSprite
+_0801EFC0:
+ adds r5, r4, #0
+ adds r5, #0x80
+_0801EFC4:
+ ldrb r0, [r7]
+ strb r0, [r5]
+ ldr r1, _0801EFD4 @ =gUnk_080CA21C
+ adds r0, r4, #0
+ bl sub_0804AA30
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0801EFD4: .4byte gUnk_080CA21C
+
+ thumb_func_start sub_0801EFD8
+sub_0801EFD8: @ 0x0801EFD8
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_0806F520
+ cmp r0, #0
+ bne _0801F000
+ adds r0, r4, #0
+ adds r0, #0x43
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0801F000
+ adds r0, r4, #0
+ movs r1, #0x1c
+ bl sub_0804A9FC
+ adds r0, r4, #0
+ movs r1, #6
+ bl UpdateSprite
+ b _0801F028
+_0801F000:
+ adds r0, r4, #0
+ adds r0, #0x58
+ ldrb r0, [r0]
+ cmp r0, #8
+ beq _0801F018
+ adds r0, r4, #0
+ bl sub_0801FB68
+ adds r0, r4, #0
+ movs r1, #8
+ bl UpdateSprite
+_0801F018:
+ movs r1, #0xc0
+ lsls r1, r1, #5
+ adds r0, r4, #0
+ bl sub_08003FC4
+ adds r0, r4, #0
+ bl sub_08004274
+_0801F028:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801F02C
+sub_0801F02C: @ 0x0801F02C
+ push {r4, lr}
+ adds r4, r0, #0
+ adds r0, #0x58
+ ldrb r0, [r0]
+ cmp r0, #6
+ bne _0801F03E
+ adds r0, r4, #0
+ bl sub_08004274
+_0801F03E:
+ adds r0, r4, #0
+ bl sub_08001318
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801F048
+sub_0801F048: @ 0x0801F048
+ push {r4, lr}
+ adds r4, r0, #0
+ movs r1, #0xc0
+ lsls r1, r1, #5
+ bl sub_08003FC4
+ adds r0, r4, #0
+ bl sub_08004274
+ ldrb r0, [r4, #0xa]
+ cmp r0, #0
+ bne _0801F068
+ adds r0, r4, #0
+ bl sub_0804A7D4
+ b _0801F082
+_0801F068:
+ cmp r0, #1
+ bne _0801F078
+ adds r0, r4, #0
+ movs r1, #0xf2
+ movs r2, #0
+ bl CreateDeathFx
+ b _0801F082
+_0801F078:
+ adds r0, r4, #0
+ movs r1, #0xf1
+ movs r2, #0
+ bl CreateDeathFx
+_0801F082:
+ pop {r4, pc}
+
+ thumb_func_start sub_0801F084
+sub_0801F084: @ 0x0801F084
+ push {r4, lr}
+ adds r4, r0, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ bne _0801F09A
+ adds r0, r4, #0
+ bl sub_08004274
+_0801F09A:
+ adds r0, r4, #0
+ bl sub_08001242
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801F0A4
+sub_0801F0A4: @ 0x0801F0A4
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_0804A720
+ movs r2, #0
+ movs r0, #1
+ strb r0, [r4, #0xc]
+ adds r0, r4, #0
+ adds r0, #0x45
+ ldrb r1, [r0]
+ adds r0, #0x3b
+ strb r1, [r0]
+ adds r4, #0x82
+ strb r2, [r4]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start nullsub_4
+nullsub_4: @ 0x0801F0C4
+ bx lr
+ .align 2, 0
+
+ thumb_func_start sub_0801F0C8
+sub_0801F0C8: @ 0x0801F0C8
+ push {r4, r5, lr}
+ adds r5, r0, #0
+ bl sub_08004274
+ adds r0, r5, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0801F12A
+ movs r4, #3
+ movs r0, #3
+ strb r0, [r5, #0xc]
+ bl Random
+ ands r0, r4
+ adds r0, #0xc
+ strb r0, [r5, #0xe]
+ bl Random
+ strb r0, [r5, #0xf]
+ adds r0, r5, #0
+ movs r1, #1
+ bl sub_08049F84
+ strb r0, [r5, #0x15]
+ ldrb r1, [r5, #0x10]
+ movs r0, #0x80
+ orrs r0, r1
+ strb r0, [r5, #0x10]
+ adds r2, r5, #0
+ adds r2, #0x29
+ ldrb r1, [r2]
+ movs r0, #8
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #4
+ orrs r0, r1
+ movs r1, #0x39
+ rsbs r1, r1, #0
+ ands r0, r1
+ movs r1, #0x18
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r5, #0
+ movs r1, #2
+ bl UpdateSprite
+_0801F12A:
+ pop {r4, r5, pc}
+
+ thumb_func_start sub_0801F12C
+sub_0801F12C: @ 0x0801F12C
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_0801FBD0
+ cmp r0, #0
+ beq _0801F140
+ adds r0, r4, #0
+ bl sub_0801F328
+ b _0801F1AC
+_0801F140:
+ ldrb r1, [r4, #0xf]
+ adds r0, r1, #1
+ strb r0, [r4, #0xf]
+ movs r0, #7
+ ands r0, r1
+ cmp r0, #0
+ bne _0801F158
+ adds r0, r4, #0
+ movs r1, #1
+ bl sub_08049F84
+ strb r0, [r4, #0x15]
+_0801F158:
+ adds r0, r4, #0
+ bl sub_080AEF88
+ adds r0, r4, #0
+ bl sub_08004274
+ ldrb r0, [r4, #0xe]
+ subs r0, #1
+ strb r0, [r4, #0xe]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _0801F1AC
+ adds r0, r4, #0
+ movs r1, #1
+ movs r2, #0x38
+ bl sub_08049F64
+ cmp r0, #0
+ beq _0801F18A
+ movs r0, #4
+ strb r0, [r4, #0xc]
+ adds r0, r4, #0
+ bl sub_0801FBE4
+ b _0801F1AC
+_0801F18A:
+ adds r0, r4, #0
+ movs r1, #1
+ movs r2, #0x48
+ bl sub_08049F64
+ cmp r0, #0
+ beq _0801F1A6
+ bl Random
+ movs r1, #3
+ ands r0, r1
+ adds r0, #0xc
+ strb r0, [r4, #0xe]
+ b _0801F1AC
+_0801F1A6:
+ adds r0, r4, #0
+ bl sub_0801F328
+_0801F1AC:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801F1B0
+sub_0801F1B0: @ 0x0801F1B0
+ push {r4, lr}
+ adds r4, r0, #0
+ adds r2, r4, #0
+ adds r2, #0x5a
+ ldrb r1, [r2]
+ movs r0, #0x10
+ ands r0, r1
+ cmp r0, #0
+ beq _0801F1FA
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _0801F1DE
+ movs r0, #1
+ eors r0, r1
+ strb r0, [r2]
+ adds r1, r4, #0
+ adds r1, #0x3f
+ movs r0, #0x5a
+ strb r0, [r1]
+ adds r0, #0xd1
+ bl sub_08004488
+_0801F1DE:
+ adds r0, r4, #0
+ bl sub_080AEFE0
+ movs r1, #0x80
+ lsls r1, r1, #7
+ adds r0, r4, #0
+ bl sub_08003FC4
+ cmp r0, #0
+ bne _0801F200
+ adds r0, r4, #0
+ bl sub_08004274
+ b _0801F200
+_0801F1FA:
+ adds r0, r4, #0
+ bl sub_08004274
+_0801F200:
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0801F226
+ adds r0, r4, #0
+ bl sub_0801FBD0
+ cmp r0, #0
+ beq _0801F220
+ adds r0, r4, #0
+ bl sub_0801F328
+ b _0801F226
+_0801F220:
+ adds r0, r4, #0
+ bl sub_0801F340
+_0801F226:
+ pop {r4, pc}
+
+ thumb_func_start sub_0801F228
+sub_0801F228: @ 0x0801F228
+ push {r4, lr}
+ adds r4, r0, #0
+ ldrb r0, [r4, #0xe]
+ subs r0, #1
+ strb r0, [r4, #0xe]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _0801F246
+ movs r0, #3
+ strb r0, [r4, #0xc]
+ adds r0, r4, #0
+ movs r1, #1
+ bl sub_08049F84
+ strb r0, [r4, #0x15]
+_0801F246:
+ adds r0, r4, #0
+ bl sub_08004274
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801F250
+sub_0801F250: @ 0x0801F250
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_08004274
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0801F26C
+ adds r0, r4, #0
+ bl sub_0801F360
+_0801F26C:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801F270
+sub_0801F270: @ 0x0801F270
+ push {r4, lr}
+ adds r4, r0, #0
+ ldrb r1, [r4, #0xf]
+ adds r0, r1, #1
+ strb r0, [r4, #0xf]
+ movs r0, #7
+ ands r0, r1
+ cmp r0, #0
+ bne _0801F28C
+ adds r0, r4, #0
+ movs r1, #1
+ bl sub_08049F84
+ strb r0, [r4, #0x15]
+_0801F28C:
+ adds r0, r4, #0
+ bl sub_080AF160
+ adds r0, r4, #0
+ bl sub_08004274
+ adds r0, r4, #0
+ bl sub_0801FBD0
+ cmp r0, #0
+ bne _0801F2CA
+ ldrb r0, [r4, #0xe]
+ subs r0, #1
+ strb r0, [r4, #0xe]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _0801F2CA
+ adds r0, r4, #0
+ adds r0, #0x81
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0801F2C6
+ movs r0, #2
+ strb r0, [r4, #0xc]
+ adds r0, r4, #0
+ movs r1, #4
+ bl UpdateSprite
+ b _0801F2CA
+_0801F2C6:
+ movs r0, #8
+ strb r0, [r4, #0xe]
+_0801F2CA:
+ pop {r4, pc}
+
+ thumb_func_start sub_0801F2CC
+sub_0801F2CC: @ 0x0801F2CC
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_08004274
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0801F2F6
+ movs r0, #1
+ strb r0, [r4, #0xc]
+ ldrb r1, [r4, #0x18]
+ subs r0, #5
+ ands r0, r1
+ strb r0, [r4, #0x18]
+ adds r0, r4, #0
+ movs r1, #4
+ bl UpdateSprite
+_0801F2F6:
+ pop {r4, pc}
+
+ thumb_func_start sub_0801F2F8
+sub_0801F2F8: @ 0x0801F2F8
+ push {r4, lr}
+ adds r4, r0, #0
+ movs r1, #0xc0
+ lsls r1, r1, #5
+ bl sub_08003FC4
+ adds r0, r4, #0
+ bl sub_08004274
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0801F324
+ adds r0, r4, #0
+ bl sub_0801F340
+ adds r0, r4, #0
+ bl sub_0804AA1C
+_0801F324:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801F328
+sub_0801F328: @ 0x0801F328
+ push {lr}
+ movs r1, #6
+ strb r1, [r0, #0xc]
+ ldrb r2, [r0, #0x10]
+ movs r1, #0x7f
+ ands r1, r2
+ strb r1, [r0, #0x10]
+ movs r1, #5
+ bl UpdateSprite
+ pop {pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801F340
+sub_0801F340: @ 0x0801F340
+ push {lr}
+ movs r1, #5
+ strb r1, [r0, #0xc]
+ movs r1, #0x3c
+ strb r1, [r0, #0xe]
+ movs r1, #0x20
+ strh r1, [r0, #0x24]
+ adds r2, r0, #0
+ adds r2, #0x3f
+ movs r1, #0x5c
+ strb r1, [r2]
+ movs r1, #2
+ bl UpdateSprite
+ pop {pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801F360
+sub_0801F360: @ 0x0801F360
+ push {r4, lr}
+ adds r4, r0, #0
+ movs r0, #7
+ strb r0, [r4, #0xc]
+ bl Random
+ movs r1, #0x38
+ ands r0, r1
+ adds r0, #0xb4
+ strb r0, [r4, #0xe]
+ bl Random
+ strb r0, [r4, #0xf]
+ adds r0, r4, #0
+ movs r1, #1
+ bl sub_08049F84
+ strb r0, [r4, #0x15]
+ adds r2, r4, #0
+ adds r2, #0x29
+ ldrb r1, [r2]
+ movs r0, #0x39
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #0x10
+ orrs r0, r1
+ movs r1, #8
+ rsbs r1, r1, #0
+ ands r0, r1
+ movs r1, #6
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r4, #0
+ movs r1, #1
+ bl UpdateSprite
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801F3AC
+sub_0801F3AC: @ 0x0801F3AC
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ ldrb r0, [r4, #0xc]
+ cmp r0, #9
+ beq _0801F426
+ cmp r0, #0
+ beq _0801F426
+ adds r0, r4, #0
+ movs r1, #1
+ bl sub_08049FDC
+ cmp r0, #0
+ beq _0801F408
+ adds r5, r4, #0
+ adds r5, #0x82
+ ldrb r0, [r5]
+ cmp r0, #0
+ bne _0801F3DE
+ adds r0, r4, #0
+ movs r1, #1
+ movs r2, #0x48
+ bl sub_08049F64
+ cmp r0, #0
+ beq _0801F400
+_0801F3DE:
+ ldrb r2, [r4, #0xc]
+ cmp r2, #1
+ bne _0801F426
+ movs r0, #2
+ strb r0, [r4, #0xc]
+ ldrb r1, [r4, #0x18]
+ subs r0, #6
+ ands r0, r1
+ movs r1, #1
+ orrs r0, r1
+ strb r0, [r4, #0x18]
+ strb r2, [r5]
+ adds r0, r4, #0
+ movs r1, #0
+ bl UpdateSprite
+ b _0801F426
+_0801F400:
+ ldrb r0, [r4, #0xc]
+ cmp r0, #3
+ bne _0801F426
+ b _0801F40E
+_0801F408:
+ ldrb r0, [r4, #0xc]
+ cmp r0, #3
+ bne _0801F416
+_0801F40E:
+ adds r0, r4, #0
+ bl sub_0801F328
+ b _0801F426
+_0801F416:
+ cmp r0, #7
+ bne _0801F426
+ movs r0, #8
+ strb r0, [r4, #0xc]
+ adds r0, r4, #0
+ movs r1, #7
+ bl UpdateSprite
+_0801F426:
+ pop {r4, r5, pc}
+
+ thumb_func_start sub_0801F428
+sub_0801F428: @ 0x0801F428
+ push {r4, r5, lr}
+ adds r5, r0, #0
+ bl sub_0804A720
+ movs r4, #0
+ movs r0, #1
+ strb r0, [r5, #0xc]
+ bl Random
+ strb r0, [r5, #0xe]
+ adds r0, r5, #0
+ adds r0, #0x45
+ ldrb r1, [r0]
+ adds r0, #0x3b
+ strb r1, [r0]
+ adds r0, #2
+ strb r4, [r0]
+ ldrb r0, [r5, #0xb]
+ cmp r0, #0
+ beq _0801F488
+ movs r0, #3
+ strb r0, [r5, #0xc]
+ movs r0, #0x1e
+ strb r0, [r5, #0xf]
+ ldrb r0, [r5, #0x10]
+ movs r1, #0x80
+ orrs r0, r1
+ strb r0, [r5, #0x10]
+ adds r2, r5, #0
+ adds r2, #0x29
+ ldrb r1, [r2]
+ movs r0, #0x39
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #0x18
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r1, [r5, #0x18]
+ movs r0, #4
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #1
+ orrs r0, r1
+ strb r0, [r5, #0x18]
+ adds r0, r5, #0
+ movs r1, #2
+ bl UpdateSprite
+_0801F488:
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801F48C
+sub_0801F48C: @ 0x0801F48C
+ push {lr}
+ bl sub_08004274
+ pop {pc}
+
+ thumb_func_start sub_0801F494
+sub_0801F494: @ 0x0801F494
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_08004274
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0801F4E8
+ movs r0, #3
+ strb r0, [r4, #0xc]
+ movs r0, #0x1e
+ strb r0, [r4, #0xf]
+ adds r0, r4, #0
+ movs r1, #1
+ bl sub_08049F84
+ strb r0, [r4, #0x15]
+ ldrb r1, [r4, #0x10]
+ movs r0, #0x80
+ orrs r0, r1
+ strb r0, [r4, #0x10]
+ adds r2, r4, #0
+ adds r2, #0x29
+ ldrb r1, [r2]
+ movs r0, #8
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #4
+ orrs r0, r1
+ movs r1, #0x39
+ rsbs r1, r1, #0
+ ands r0, r1
+ movs r1, #0x18
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r4, #0
+ movs r1, #2
+ bl UpdateSprite
+_0801F4E8:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801F4EC
+sub_0801F4EC: @ 0x0801F4EC
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_08004274
+ ldrb r0, [r4, #0xf]
+ subs r0, #1
+ strb r0, [r4, #0xf]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _0801F504
+ movs r0, #4
+ strb r0, [r4, #0xc]
+_0801F504:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801F508
+sub_0801F508: @ 0x0801F508
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ bl sub_0801FBD0
+ cmp r0, #0
+ beq _0801F51C
+ adds r1, r4, #0
+ adds r1, #0x83
+ movs r0, #0
+ b _0801F55C
+_0801F51C:
+ ldrb r0, [r4, #0xe]
+ adds r0, #1
+ strb r0, [r4, #0xe]
+ movs r1, #0xff
+ adds r5, r0, #0
+ ands r5, r1
+ movs r0, #7
+ ands r5, r0
+ cmp r5, #0
+ bne _0801F566
+ adds r0, r4, #0
+ movs r1, #1
+ movs r2, #0x38
+ bl sub_08049F64
+ cmp r0, #0
+ beq _0801F566
+ bl Random
+ movs r1, #1
+ ands r1, r0
+ cmp r1, #0
+ beq _0801F556
+ movs r0, #5
+ strb r0, [r4, #0xc]
+ adds r0, r4, #0
+ bl sub_0801FBE4
+ b _0801F580
+_0801F556:
+ adds r1, r4, #0
+ adds r1, #0x83
+ movs r0, #0x78
+_0801F55C:
+ strb r0, [r1]
+ adds r0, r4, #0
+ bl sub_0801F730
+ b _0801F580
+_0801F566:
+ cmp r5, #4
+ bne _0801F574
+ adds r0, r4, #0
+ movs r1, #1
+ bl sub_08049F84
+ strb r0, [r4, #0x15]
+_0801F574:
+ adds r0, r4, #0
+ bl sub_080AEF88
+ adds r0, r4, #0
+ bl sub_08004274
+_0801F580:
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801F584
+sub_0801F584: @ 0x0801F584
+ push {r4, lr}
+ adds r4, r0, #0
+ adds r2, r4, #0
+ adds r2, #0x5a
+ ldrb r1, [r2]
+ movs r0, #0x10
+ ands r0, r1
+ cmp r0, #0
+ beq _0801F5CE
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _0801F5B2
+ movs r0, #1
+ eors r0, r1
+ strb r0, [r2]
+ adds r1, r4, #0
+ adds r1, #0x3f
+ movs r0, #0x5b
+ strb r0, [r1]
+ adds r0, #0xd0
+ bl sub_08004488
+_0801F5B2:
+ adds r0, r4, #0
+ bl sub_080AEFE0
+ movs r1, #0x80
+ lsls r1, r1, #7
+ adds r0, r4, #0
+ bl sub_08003FC4
+ cmp r0, #0
+ bne _0801F5D4
+ adds r0, r4, #0
+ bl sub_08004274
+ b _0801F5D4
+_0801F5CE:
+ adds r0, r4, #0
+ bl sub_08004274
+_0801F5D4:
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0801F618
+ adds r0, r4, #0
+ bl sub_0801FBD0
+ cmp r0, #0
+ beq _0801F5FC
+ adds r1, r4, #0
+ adds r1, #0x83
+ movs r0, #0
+ strb r0, [r1]
+ adds r0, r4, #0
+ bl sub_0801F730
+ b _0801F618
+_0801F5FC:
+ movs r0, #6
+ strb r0, [r4, #0xc]
+ movs r0, #0x3c
+ strb r0, [r4, #0xf]
+ movs r0, #0x20
+ strh r0, [r4, #0x24]
+ adds r1, r4, #0
+ adds r1, #0x3f
+ movs r0, #0x5c
+ strb r0, [r1]
+ adds r0, r4, #0
+ movs r1, #2
+ bl UpdateSprite
+_0801F618:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801F61C
+sub_0801F61C: @ 0x0801F61C
+ push {lr}
+ adds r1, r0, #0
+ ldrb r0, [r1, #0xf]
+ subs r0, #1
+ strb r0, [r1, #0xf]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _0801F630
+ movs r0, #4
+ strb r0, [r1, #0xc]
+_0801F630:
+ adds r0, r1, #0
+ bl sub_08004274
+ pop {pc}
+
+ thumb_func_start sub_0801F638
+sub_0801F638: @ 0x0801F638
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_08004274
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0801F684
+ movs r0, #8
+ strb r0, [r4, #0xc]
+ movs r0, #0x1e
+ strb r0, [r4, #0xf]
+ adds r0, r4, #0
+ movs r1, #1
+ bl sub_08049F84
+ strb r0, [r4, #0x15]
+ adds r2, r4, #0
+ adds r2, #0x29
+ ldrb r1, [r2]
+ movs r0, #0x39
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #0x10
+ orrs r0, r1
+ movs r1, #8
+ rsbs r1, r1, #0
+ ands r0, r1
+ movs r1, #6
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r4, #0
+ movs r1, #1
+ bl UpdateSprite
+_0801F684:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801F688
+sub_0801F688: @ 0x0801F688
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ adds r5, r4, #0
+ adds r5, #0x83
+ ldrb r0, [r5]
+ cmp r0, #0
+ beq _0801F69A
+ subs r0, #1
+ strb r0, [r5]
+_0801F69A:
+ adds r0, r4, #0
+ bl sub_0801FBD0
+ cmp r0, #0
+ bne _0801F6AA
+ ldrb r0, [r5]
+ cmp r0, #0
+ beq _0801F6C2
+_0801F6AA:
+ adds r0, r4, #0
+ movs r1, #1
+ bl sub_08049F84
+ strb r0, [r4, #0x15]
+ adds r0, r4, #0
+ bl sub_080AF160
+ adds r0, r4, #0
+ bl sub_08004274
+ b _0801F6C8
+_0801F6C2:
+ adds r0, r4, #0
+ bl sub_0801F748
+_0801F6C8:
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801F6CC
+sub_0801F6CC: @ 0x0801F6CC
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_08004274
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0801F6F6
+ movs r0, #1
+ strb r0, [r4, #0xc]
+ ldrb r1, [r4, #0x18]
+ subs r0, #5
+ ands r0, r1
+ strb r0, [r4, #0x18]
+ adds r0, r4, #0
+ movs r1, #4
+ bl UpdateSprite
+_0801F6F6:
+ pop {r4, pc}
+
+ thumb_func_start sub_0801F6F8
+sub_0801F6F8: @ 0x0801F6F8
+ push {r4, lr}
+ adds r4, r0, #0
+ movs r1, #0xc0
+ lsls r1, r1, #5
+ bl sub_08003FC4
+ adds r0, r4, #0
+ bl sub_08004274
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0801F72E
+ movs r0, #4
+ strb r0, [r4, #0xc]
+ movs r0, #0x20
+ strh r0, [r4, #0x24]
+ adds r0, r4, #0
+ bl sub_0804AA1C
+ adds r0, r4, #0
+ movs r1, #2
+ bl UpdateSprite
+_0801F72E:
+ pop {r4, pc}
+
+ thumb_func_start sub_0801F730
+sub_0801F730: @ 0x0801F730
+ push {lr}
+ movs r1, #7
+ strb r1, [r0, #0xc]
+ ldrb r2, [r0, #0x10]
+ movs r1, #0x7f
+ ands r1, r2
+ strb r1, [r0, #0x10]
+ movs r1, #5
+ bl UpdateSprite
+ pop {pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801F748
+sub_0801F748: @ 0x0801F748
+ push {lr}
+ movs r1, #2
+ strb r1, [r0, #0xc]
+ ldrb r2, [r0, #0x18]
+ subs r1, #6
+ ands r1, r2
+ movs r2, #1
+ orrs r1, r2
+ strb r1, [r0, #0x18]
+ movs r1, #4
+ bl UpdateSprite
+ pop {pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801F764
+sub_0801F764: @ 0x0801F764
+ push {r4, r5, r6, lr}
+ adds r4, r0, #0
+ ldrb r0, [r4, #0xc]
+ cmp r0, #0xa
+ beq _0801F7D6
+ cmp r0, #0
+ beq _0801F7D6
+ adds r0, r4, #0
+ movs r1, #1
+ bl sub_08049FDC
+ cmp r0, #0
+ beq _0801F7B8
+ ldrb r6, [r4, #0xc]
+ cmp r6, #1
+ bne _0801F7D6
+ adds r5, r4, #0
+ adds r5, #0x82
+ ldrb r0, [r5]
+ cmp r0, #0
+ bne _0801F79C
+ adds r0, r4, #0
+ movs r1, #1
+ movs r2, #0x48
+ bl sub_08049F64
+ cmp r0, #0
+ beq _0801F7D6
+_0801F79C:
+ movs r0, #2
+ strb r0, [r4, #0xc]
+ ldrb r1, [r4, #0x18]
+ subs r0, #6
+ ands r0, r1
+ movs r1, #1
+ orrs r0, r1
+ strb r0, [r4, #0x18]
+ strb r6, [r5]
+ adds r0, r4, #0
+ movs r1, #0
+ bl UpdateSprite
+ b _0801F7D6
+_0801F7B8:
+ ldrb r0, [r4, #0xc]
+ cmp r0, #4
+ bne _0801F7C6
+ adds r0, r4, #0
+ bl sub_0801F730
+ b _0801F7D6
+_0801F7C6:
+ cmp r0, #8
+ bne _0801F7D6
+ movs r0, #9
+ strb r0, [r4, #0xc]
+ adds r0, r4, #0
+ movs r1, #7
+ bl UpdateSprite
+_0801F7D6:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start sub_0801F7D8
+sub_0801F7D8: @ 0x0801F7D8
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ bl sub_0804A720
+ movs r5, #0
+ movs r0, #1
+ strb r0, [r4, #0xc]
+ bl Random
+ strb r0, [r4, #0xe]
+ adds r0, r4, #0
+ adds r0, #0x45
+ ldrb r1, [r0]
+ adds r0, #0x3b
+ strb r1, [r0]
+ adds r4, #0x82
+ strb r5, [r4]
+ pop {r4, r5, pc}
+
+ thumb_func_start sub_0801F7FC
+sub_0801F7FC: @ 0x0801F7FC
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ movs r1, #1
+ bl sub_08049FDC
+ cmp r0, #0
+ beq _0801F83E
+ adds r5, r4, #0
+ adds r5, #0x82
+ ldrb r0, [r5]
+ cmp r0, #0
+ bne _0801F822
+ adds r0, r4, #0
+ movs r1, #1
+ movs r2, #0x48
+ bl sub_08049F64
+ cmp r0, #0
+ beq _0801F83E
+_0801F822:
+ movs r0, #2
+ strb r0, [r4, #0xc]
+ ldrb r1, [r4, #0x18]
+ subs r0, #6
+ ands r0, r1
+ movs r1, #1
+ orrs r0, r1
+ strb r0, [r4, #0x18]
+ movs r0, #1
+ strb r0, [r5]
+ adds r0, r4, #0
+ movs r1, #0
+ bl UpdateSprite
+_0801F83E:
+ pop {r4, r5, pc}
+
+ thumb_func_start sub_0801F840
+sub_0801F840: @ 0x0801F840
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_08004274
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0801F880
+ adds r0, r4, #0
+ bl sub_0801FB14
+ ldrb r1, [r4, #0x10]
+ movs r0, #0x80
+ orrs r0, r1
+ strb r0, [r4, #0x10]
+ adds r2, r4, #0
+ adds r2, #0x29
+ ldrb r1, [r2]
+ movs r0, #8
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #4
+ orrs r0, r1
+ movs r1, #0x39
+ rsbs r1, r1, #0
+ ands r0, r1
+ movs r1, #0x18
+ orrs r0, r1
+ strb r0, [r2]
+_0801F880:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801F884
+sub_0801F884: @ 0x0801F884
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_08004274
+ ldrb r0, [r4, #0xf]
+ cmp r0, #0
+ beq _0801F898
+ subs r0, #1
+ strb r0, [r4, #0xf]
+ b _0801F8BC
+_0801F898:
+ adds r0, r4, #0
+ movs r1, #0x1b
+ bl sub_0804A9FC
+ adds r1, r0, #0
+ cmp r1, #0
+ beq _0801F8BC
+ movs r0, #0x40
+ strb r0, [r1, #0xb]
+ movs r0, #4
+ strb r0, [r4, #0xc]
+ adds r1, r4, #0
+ adds r1, #0x3f
+ movs r0, #0xa5
+ strb r0, [r1]
+ adds r0, #0xee
+ bl sub_08004488
+_0801F8BC:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801F8C0
+sub_0801F8C0: @ 0x0801F8C0
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ bl sub_0801FBD0
+ cmp r0, #0
+ beq _0801F8D4
+ adds r0, r4, #0
+ bl sub_0801FAE0
+ b _0801F938
+_0801F8D4:
+ adds r0, r4, #0
+ movs r1, #1
+ bl sub_08049FDC
+ cmp r0, #0
+ bne _0801F8E8
+ adds r0, r4, #0
+ bl sub_0801F730
+ b _0801F938
+_0801F8E8:
+ ldrb r0, [r4, #0xe]
+ adds r0, #1
+ strb r0, [r4, #0xe]
+ movs r1, #0xff
+ adds r5, r0, #0
+ ands r5, r1
+ movs r0, #7
+ ands r5, r0
+ cmp r5, #0
+ bne _0801F91C
+ ldr r0, _0801F918 @ =gUnk_020000B0
+ ldr r1, [r0]
+ adds r0, r4, #0
+ movs r2, #0x38
+ bl sub_08049F1C
+ cmp r0, #0
+ beq _0801F91C
+ movs r0, #5
+ strb r0, [r4, #0xc]
+ adds r0, r4, #0
+ bl sub_0801FBE4
+ b _0801F938
+ .align 2, 0
+_0801F918: .4byte gUnk_020000B0
+_0801F91C:
+ cmp r5, #4
+ bne _0801F92C
+ ldr r0, _0801F93C @ =gUnk_020000B0
+ ldr r1, [r0]
+ adds r0, r4, #0
+ bl sub_080045C4
+ strb r0, [r4, #0x15]
+_0801F92C:
+ adds r0, r4, #0
+ bl sub_080AEF88
+ adds r0, r4, #0
+ bl sub_08004274
+_0801F938:
+ pop {r4, r5, pc}
+ .align 2, 0
+_0801F93C: .4byte gUnk_020000B0
+
+ thumb_func_start sub_0801F940
+sub_0801F940: @ 0x0801F940
+ push {r4, lr}
+ adds r4, r0, #0
+ adds r2, r4, #0
+ adds r2, #0x5a
+ ldrb r1, [r2]
+ movs r0, #0x10
+ ands r0, r1
+ cmp r0, #0
+ beq _0801F988
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _0801F966
+ movs r0, #1
+ eors r0, r1
+ strb r0, [r2]
+ ldr r0, _0801F984 @ =0x0000012B
+ bl sub_08004488
+_0801F966:
+ adds r0, r4, #0
+ bl sub_080AEFE0
+ movs r1, #0x80
+ lsls r1, r1, #7
+ adds r0, r4, #0
+ bl sub_08003FC4
+ cmp r0, #0
+ bne _0801F98E
+ adds r0, r4, #0
+ bl sub_08004274
+ b _0801F98E
+ .align 2, 0
+_0801F984: .4byte 0x0000012B
+_0801F988:
+ adds r0, r4, #0
+ bl sub_08004274
+_0801F98E:
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0801F9C2
+ adds r0, r4, #0
+ bl sub_0801FBD0
+ cmp r0, #0
+ beq _0801F9AE
+ adds r0, r4, #0
+ bl sub_0801FAE0
+ b _0801F9C2
+_0801F9AE:
+ movs r0, #6
+ strb r0, [r4, #0xc]
+ movs r0, #0x3c
+ strb r0, [r4, #0xf]
+ movs r0, #0x20
+ strh r0, [r4, #0x24]
+ adds r0, r4, #0
+ movs r1, #2
+ bl UpdateSprite
+_0801F9C2:
+ pop {r4, pc}
+
+ thumb_func_start sub_0801F9C4
+sub_0801F9C4: @ 0x0801F9C4
+ push {lr}
+ adds r1, r0, #0
+ ldrb r0, [r1, #0xf]
+ subs r0, #1
+ strb r0, [r1, #0xf]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _0801F9D8
+ movs r0, #4
+ strb r0, [r1, #0xc]
+_0801F9D8:
+ adds r0, r1, #0
+ bl sub_08004274
+ pop {pc}
+
+ thumb_func_start sub_0801F9E0
+sub_0801F9E0: @ 0x0801F9E0
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_08004274
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0801FA2C
+ movs r0, #8
+ strb r0, [r4, #0xc]
+ movs r0, #0x1e
+ strb r0, [r4, #0xf]
+ adds r0, r4, #0
+ movs r1, #1
+ bl sub_08049F84
+ strb r0, [r4, #0x15]
+ adds r2, r4, #0
+ adds r2, #0x29
+ ldrb r1, [r2]
+ movs r0, #0x39
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #0x10
+ orrs r0, r1
+ movs r1, #8
+ rsbs r1, r1, #0
+ ands r0, r1
+ movs r1, #6
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r4, #0
+ movs r1, #1
+ bl UpdateSprite
+_0801FA2C:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801FA30
+sub_0801FA30: @ 0x0801FA30
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_0801FBD0
+ cmp r0, #0
+ beq _0801FA54
+ adds r0, r4, #0
+ movs r1, #1
+ bl sub_08049F84
+ strb r0, [r4, #0x15]
+ adds r0, r4, #0
+ bl sub_080AF160
+ adds r0, r4, #0
+ bl sub_08004274
+ b _0801FA74
+_0801FA54:
+ adds r0, r4, #0
+ movs r1, #1
+ bl sub_08049FDC
+ cmp r0, #0
+ bne _0801FA6E
+ movs r0, #9
+ strb r0, [r4, #0xc]
+ adds r0, r4, #0
+ movs r1, #7
+ bl UpdateSprite
+ b _0801FA74
+_0801FA6E:
+ adds r0, r4, #0
+ bl sub_0801FAF8
+_0801FA74:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801FA78
+sub_0801FA78: @ 0x0801FA78
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_08004274
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0801FAA8
+ movs r0, #1
+ strb r0, [r4, #0xc]
+ ldrb r1, [r4, #0x18]
+ subs r0, #5
+ ands r0, r1
+ strb r0, [r4, #0x18]
+ adds r0, r4, #0
+ movs r1, #4
+ bl UpdateSprite
+ adds r0, r4, #0
+ bl sub_0804AA1C
+_0801FAA8:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801FAAC
+sub_0801FAAC: @ 0x0801FAAC
+ push {r4, lr}
+ adds r4, r0, #0
+ movs r1, #0xc0
+ lsls r1, r1, #5
+ bl sub_08003FC4
+ adds r0, r4, #0
+ bl sub_08004274
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0801FADC
+ adds r0, r4, #0
+ bl sub_0801FB14
+ movs r0, #0x20
+ strh r0, [r4, #0x24]
+ adds r0, r4, #0
+ bl sub_0804AA1C
+_0801FADC:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801FAE0
+sub_0801FAE0: @ 0x0801FAE0
+ push {lr}
+ movs r1, #7
+ strb r1, [r0, #0xc]
+ ldrb r2, [r0, #0x10]
+ movs r1, #0x7f
+ ands r1, r2
+ strb r1, [r0, #0x10]
+ movs r1, #5
+ bl UpdateSprite
+ pop {pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801FAF8
+sub_0801FAF8: @ 0x0801FAF8
+ push {lr}
+ movs r1, #2
+ strb r1, [r0, #0xc]
+ ldrb r2, [r0, #0x18]
+ subs r1, #6
+ ands r1, r2
+ movs r2, #1
+ orrs r1, r2
+ strb r1, [r0, #0x18]
+ movs r1, #4
+ bl UpdateSprite
+ pop {pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801FB14
+sub_0801FB14: @ 0x0801FB14
+ push {r4, lr}
+ adds r4, r0, #0
+ movs r0, #3
+ strb r0, [r4, #0xc]
+ movs r0, #0x1e
+ strb r0, [r4, #0xf]
+ adds r0, r4, #0
+ movs r1, #1
+ bl sub_08049F84
+ strb r0, [r4, #0x15]
+ adds r0, r4, #0
+ movs r1, #2
+ bl UpdateSprite
+ pop {r4, pc}
+
+ thumb_func_start sub_0801FB34
+sub_0801FB34: @ 0x0801FB34
+ push {r4, lr}
+ adds r4, r0, #0
+ ldr r3, [r4, #0x68]
+ cmp r3, #0
+ beq _0801FB62
+ ldr r2, _0801FB64 @ =gUnk_080CA2B4
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0xf
+ ands r0, r1
+ adds r0, r0, r2
+ movs r2, #0
+ ldrsb r2, [r0, r2]
+ adds r0, r4, #0
+ adds r1, r3, #0
+ movs r3, #1
+ bl sub_0806FA90
+ ldr r1, [r4, #0x68]
+ adds r1, #0x63
+ ldrb r0, [r1]
+ subs r0, #1
+ strb r0, [r1]
+_0801FB62:
+ pop {r4, pc}
+ .align 2, 0
+_0801FB64: .4byte gUnk_080CA2B4
+
+ thumb_func_start sub_0801FB68
+sub_0801FB68: @ 0x0801FB68
+ push {r4, lr}
+ adds r4, r0, #0
+ ldrb r0, [r4, #0xa]
+ cmp r0, #1
+ beq _0801FB88
+ cmp r0, #1
+ bgt _0801FB7C
+ cmp r0, #0
+ beq _0801FB82
+ b _0801FBC8
+_0801FB7C:
+ cmp r0, #2
+ beq _0801FBB6
+ b _0801FBC8
+_0801FB82:
+ movs r0, #9
+ strb r0, [r4, #0xc]
+ b _0801FBC8
+_0801FB88:
+ movs r0, #0xa
+ strb r0, [r4, #0xc]
+ ldrb r1, [r4, #0x10]
+ movs r0, #0x80
+ orrs r0, r1
+ strb r0, [r4, #0x10]
+ ldrb r1, [r4, #0x18]
+ movs r0, #4
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #1
+ orrs r0, r1
+ strb r0, [r4, #0x18]
+ adds r2, r4, #0
+ adds r2, #0x29
+ ldrb r1, [r2]
+ movs r0, #0x39
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #0x18
+ orrs r0, r1
+ strb r0, [r2]
+ b _0801FBC8
+_0801FBB6:
+ movs r0, #0xa
+ strb r0, [r4, #0xc]
+ adds r1, r4, #0
+ adds r1, #0x3f
+ movs r0, #0x5c
+ strb r0, [r1]
+ adds r0, r4, #0
+ bl sub_0804AA1C
+_0801FBC8:
+ movs r0, #0
+ str r0, [r4, #0x20]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801FBD0
+sub_0801FBD0: @ 0x0801FBD0
+ push {lr}
+ bl sub_080002B8
+ cmp r0, #0x10
+ beq _0801FBDE
+ movs r0, #0
+ b _0801FBE0
+_0801FBDE:
+ movs r0, #1
+_0801FBE0:
+ pop {pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801FBE4
+sub_0801FBE4: @ 0x0801FBE4
+ push {r4, lr}
+ adds r4, r0, #0
+ movs r0, #0xc0
+ lsls r0, r0, #1
+ strh r0, [r4, #0x24]
+ movs r0, #0x80
+ lsls r0, r0, #0xa
+ str r0, [r4, #0x20]
+ adds r0, r4, #0
+ movs r1, #1
+ bl sub_08049F84
+ strb r0, [r4, #0x15]
+ adds r0, r4, #0
+ movs r1, #3
+ bl UpdateSprite
+ pop {r4, pc}
+
+ thumb_func_start sub_0801FC08
+sub_0801FC08: @ 0x0801FC08
+ push {r4, lr}
+ adds r4, r0, #0
+ ldr r1, _0801FC24 @ =gUnk_080CA49C
+ bl sub_0800129E
+ movs r3, #0x10
+ rsbs r3, r3, #0
+ adds r0, r4, #0
+ movs r1, #0
+ movs r2, #1
+ bl sub_0804A9AC
+ pop {r4, pc}
+ .align 2, 0
+_0801FC24: .4byte gUnk_080CA49C
+
+ thumb_func_start sub_0801FC28
+sub_0801FC28: @ 0x0801FC28
+ push {lr}
+ ldr r2, _0801FC3C @ =gUnk_080CA4B4
+ ldrb r1, [r0, #0xc]
+ lsls r1, r1, #2
+ adds r1, r1, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {pc}
+ .align 2, 0
+_0801FC3C: .4byte gUnk_080CA4B4
+
+ thumb_func_start sub_0801FC40
+sub_0801FC40: @ 0x0801FC40
+ push {r4, lr}
+ adds r4, r0, #0
+ adds r0, #0x41
+ ldrb r0, [r0]
+ cmp r0, #0x80
+ bne _0801FC5C
+ ldrb r0, [r4, #0xc]
+ cmp r0, #3
+ bne _0801FC6E
+ adds r1, r4, #0
+ adds r1, #0x74
+ movs r0, #1
+ strh r0, [r1]
+ b _0801FC6E
+_0801FC5C:
+ adds r0, r4, #0
+ adds r0, #0x43
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0801FC6E
+ adds r0, r4, #0
+ movs r1, #0x1c
+ bl sub_0804A9FC
+_0801FC6E:
+ ldr r1, _0801FC78 @ =gUnk_080CA49C
+ adds r0, r4, #0
+ bl sub_0804AA30
+ pop {r4, pc}
+ .align 2, 0
+_0801FC78: .4byte gUnk_080CA49C
+
+ thumb_func_start sub_0801FC7C
+sub_0801FC7C: @ 0x0801FC7C
+ push {lr}
+ adds r1, r0, #0
+ ldrb r0, [r1, #0xa]
+ cmp r0, #0
+ bne _0801FC8E
+ adds r0, r1, #0
+ bl sub_0804A7D4
+ b _0801FC98
+_0801FC8E:
+ adds r0, r1, #0
+ movs r1, #0xf1
+ movs r2, #0
+ bl CreateDeathFx
+_0801FC98:
+ pop {pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801FC9C
+sub_0801FC9C: @ 0x0801FC9C
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_0804A720
+ movs r0, #1
+ strb r0, [r4, #0xc]
+ bl Random
+ strb r0, [r4, #0xe]
+ pop {r4, pc}
+
+ thumb_func_start sub_0801FCB0
+sub_0801FCB0: @ 0x0801FCB0
+ push {r4, r5, lr}
+ adds r5, r0, #0
+ ldrb r0, [r5, #0xe]
+ subs r0, #1
+ strb r0, [r5, #0xe]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _0801FD28
+ bl Random
+ movs r1, #0x1f
+ ands r1, r0
+ adds r0, r5, #0
+ bl sub_0801FE68
+ cmp r0, #0
+ beq _0801FD1C
+ movs r0, #2
+ strb r0, [r5, #0xc]
+ ldrb r1, [r5, #0x18]
+ subs r0, #6
+ ands r0, r1
+ movs r1, #1
+ orrs r0, r1
+ strb r0, [r5, #0x18]
+ ldr r0, _0801FD14 @ =gUnk_020000B0
+ ldr r1, [r0]
+ adds r0, r5, #0
+ bl sub_080045C4
+ adds r4, r0, #0
+ bl Random
+ ldr r2, _0801FD18 @ =gUnk_080CA4C8
+ movs r1, #1
+ ands r1, r0
+ adds r1, r1, r2
+ ldrb r0, [r1]
+ adds r0, r0, r4
+ movs r1, #0x1f
+ ands r0, r1
+ strb r0, [r5, #0x15]
+ adds r0, r5, #0
+ movs r1, #0
+ bl UpdateSprite
+ adds r0, r5, #0
+ bl UpdateSpriteOrderAndFlip
+ b _0801FD28
+ .align 2, 0
+_0801FD14: .4byte gUnk_020000B0
+_0801FD18: .4byte gUnk_080CA4C8
+_0801FD1C:
+ bl Random
+ movs r1, #0x18
+ ands r0, r1
+ adds r0, #8
+ strb r0, [r5, #0xe]
+_0801FD28:
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801FD2C
+sub_0801FD2C: @ 0x0801FD2C
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_08004274
+ adds r2, r4, #0
+ adds r2, #0x5a
+ ldrb r1, [r2]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0801FD66
+ movs r0, #3
+ strb r0, [r4, #0xc]
+ ldrb r0, [r4, #0xa]
+ cmp r0, #0
+ bne _0801FD54
+ adds r1, r4, #0
+ adds r1, #0x74
+ movs r0, #0xb4
+ b _0801FD5A
+_0801FD54:
+ adds r1, r4, #0
+ adds r1, #0x74
+ movs r0, #0x6e
+_0801FD5A:
+ strh r0, [r1]
+ adds r0, r4, #0
+ movs r1, #2
+ bl UpdateSprite
+ b _0801FD7C
+_0801FD66:
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _0801FD7C
+ movs r0, #0xfe
+ ands r0, r1
+ strb r0, [r2]
+ ldrb r0, [r4, #0x10]
+ movs r1, #0x80
+ orrs r0, r1
+ strb r0, [r4, #0x10]
+_0801FD7C:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801FD80
+sub_0801FD80: @ 0x0801FD80
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_0801FED4
+ adds r0, r4, #0
+ bl sub_08004274
+ adds r1, r4, #0
+ adds r1, #0x74
+ ldrh r0, [r1]
+ subs r0, #1
+ strh r0, [r1]
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bne _0801FDB2
+ movs r0, #4
+ strb r0, [r4, #0xc]
+ ldrb r1, [r4, #0x10]
+ movs r0, #0x7f
+ ands r0, r1
+ strb r0, [r4, #0x10]
+ adds r0, r4, #0
+ movs r1, #1
+ bl UpdateSprite
+_0801FDB2:
+ pop {r4, pc}
+
+ thumb_func_start sub_0801FDB4
+sub_0801FDB4: @ 0x0801FDB4
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_0801FED4
+ adds r0, r4, #0
+ bl sub_08004274
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0801FDE0
+ movs r0, #1
+ strb r0, [r4, #0xc]
+ movs r0, #0xf0
+ strb r0, [r4, #0xe]
+ ldrb r1, [r4, #0x18]
+ subs r0, #0xf4
+ ands r0, r1
+ strb r0, [r4, #0x18]
+_0801FDE0:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801FDE4
+sub_0801FDE4: @ 0x0801FDE4
+ push {r4, r5, r6, r7, lr}
+ adds r6, r0, #0
+ adds r4, r1, #0
+ adds r5, r2, #0
+ ldr r7, _0801FE04 @ =gUnk_020000B0
+ ldr r0, [r7]
+ adds r0, #0x38
+ ldrb r2, [r0]
+ adds r0, r4, #0
+ adds r1, r5, #0
+ bl sub_080002D4
+ cmp r0, #0
+ beq _0801FE34
+ b _0801FE5C
+ .align 2, 0
+_0801FE04: .4byte gUnk_020000B0
+_0801FE08:
+ movs r0, #0x10
+ rsbs r0, r0, #0
+ adds r1, r0, #0
+ ands r4, r1
+ adds r0, r4, #0
+ adds r0, #8
+ strh r0, [r6, #0x2e]
+ ands r5, r1
+ adds r0, r5, #0
+ adds r0, #8
+ strh r0, [r6, #0x32]
+ ldr r0, _0801FE30 @ =gUnk_020000B0
+ ldr r0, [r0]
+ adds r0, #0x38
+ ldrb r1, [r0]
+ adds r0, r6, #0
+ adds r0, #0x38
+ strb r1, [r0]
+ movs r0, #1
+ b _0801FE5E
+ .align 2, 0
+_0801FE30: .4byte gUnk_020000B0
+_0801FE34:
+ ldr r0, [r7]
+ adds r0, #0x38
+ ldrb r2, [r0]
+ adds r0, r4, #0
+ adds r1, r5, #0
+ bl sub_080002BC
+ adds r3, r0, #0
+ ldr r1, _0801FE60 @ =gUnk_080CA4CA
+ ldrh r0, [r1]
+ ldr r2, _0801FE64 @ =0x0000FFFF
+ cmp r0, r2
+ beq _0801FE5C
+_0801FE4E:
+ ldrh r0, [r1]
+ adds r1, #2
+ cmp r0, r3
+ beq _0801FE08
+ ldrh r0, [r1]
+ cmp r0, r2
+ bne _0801FE4E
+_0801FE5C:
+ movs r0, #0
+_0801FE5E:
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0801FE60: .4byte gUnk_080CA4CA
+_0801FE64: .4byte 0x0000FFFF
+
+ thumb_func_start sub_0801FE68
+sub_0801FE68: @ 0x0801FE68
+ push {r4, r5, r6, r7, lr}
+ mov r7, sb
+ mov r6, r8
+ push {r6, r7}
+ adds r7, r0, #0
+ adds r6, r1, #0
+ movs r1, #1
+ bl sub_08049FDC
+ cmp r0, #0
+ bne _0801FE82
+_0801FE7E:
+ movs r0, #0
+ b _0801FEC4
+_0801FE82:
+ ldr r0, _0801FECC @ =gUnk_020000B0
+ ldr r0, [r0]
+ ldr r5, [r0, #0x2c]
+ ldr r4, [r0, #0x30]
+ ldr r1, _0801FED0 @ =gUnk_080C9160
+ lsls r0, r6, #4
+ adds r0, r0, r1
+ movs r2, #0
+ ldrsh r0, [r0, r2]
+ lsls r0, r0, #0xb
+ mov sb, r0
+ lsls r0, r6, #4
+ adds r0, #0x80
+ adds r0, r0, r1
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ lsls r0, r0, #0xb
+ mov r8, r0
+ movs r6, #0
+_0801FEA8:
+ add r5, sb
+ mov r2, r8
+ subs r4, r4, r2
+ asrs r1, r5, #0x10
+ asrs r2, r4, #0x10
+ adds r0, r7, #0
+ bl sub_0801FDE4
+ cmp r0, #0
+ beq _0801FE7E
+ adds r6, #1
+ cmp r6, #7
+ bls _0801FEA8
+ movs r0, #1
+_0801FEC4:
+ pop {r3, r4}
+ mov r8, r3
+ mov sb, r4
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0801FECC: .4byte gUnk_020000B0
+_0801FED0: .4byte gUnk_080C9160
+
+ thumb_func_start sub_0801FED4
+sub_0801FED4: @ 0x0801FED4
+ push {r4, lr}
+ adds r4, r0, #0
+ movs r1, #1
+ bl sub_08049FDC
+ cmp r0, #0
+ bne _0801FEEA
+ adds r1, r4, #0
+ adds r1, #0x74
+ movs r0, #1
+ strh r0, [r1]
+_0801FEEA:
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r0, [r0]
+ movs r2, #0xf
+ adds r1, r2, #0
+ ands r1, r0
+ lsls r1, r1, #5
+ strh r1, [r4, #0x24]
+ ldrb r0, [r4, #0xa]
+ cmp r0, #0
+ bne _0801FF28
+ ldrb r1, [r4, #0xf]
+ adds r0, r1, #1
+ strb r0, [r4, #0xf]
+ adds r0, r2, #0
+ ands r0, r1
+ cmp r0, #0
+ bne _0801FF4E
+ ldr r0, _0801FF24 @ =gUnk_020000B0
+ ldr r1, [r0]
+ adds r0, r4, #0
+ bl sub_0800132C
+ adds r1, r0, #0
+ adds r0, r4, #0
+ bl sub_08004596
+ b _0801FF4E
+ .align 2, 0
+_0801FF24: .4byte gUnk_020000B0
+_0801FF28:
+ adds r0, r1, #0
+ adds r0, #0x40
+ strh r0, [r4, #0x24]
+ ldrb r1, [r4, #0xf]
+ adds r0, r1, #1
+ strb r0, [r4, #0xf]
+ movs r0, #7
+ ands r0, r1
+ cmp r0, #0
+ bne _0801FF4E
+ ldr r0, _0801FF58 @ =gUnk_020000B0
+ ldr r1, [r0]
+ adds r0, r4, #0
+ bl sub_0800132C
+ adds r1, r0, #0
+ adds r0, r4, #0
+ bl sub_08004596
+_0801FF4E:
+ adds r0, r4, #0
+ bl sub_080AEF88
+ pop {r4, pc}
+ .align 2, 0
+_0801FF58: .4byte gUnk_020000B0
+
+ thumb_func_start sub_0801FF5C
+sub_0801FF5C: @ 0x0801FF5C
+ push {r4, lr}
+ adds r4, r0, #0
+ ldrb r0, [r4, #0xa]
+ cmp r0, #0
+ bne _0801FF84
+ ldr r1, _0801FF80 @ =gUnk_080CA570
+ adds r0, r4, #0
+ bl sub_0800129E
+ movs r3, #0x10
+ rsbs r3, r3, #0
+ adds r0, r4, #0
+ movs r1, #0
+ movs r2, #1
+ bl sub_0804A9AC
+ b _0801FF94
+ .align 2, 0
+_0801FF80: .4byte gUnk_080CA570
+_0801FF84:
+ ldr r0, _0801FF98 @ =gUnk_080CA588
+ ldrb r1, [r4, #0xc]
+ lsls r1, r1, #2
+ adds r1, r1, r0
+ ldr r1, [r1]
+ adds r0, r4, #0
+ bl _call_via_r1
+_0801FF94:
+ pop {r4, pc}
+ .align 2, 0
+_0801FF98: .4byte gUnk_080CA588
+
+ thumb_func_start sub_0801FF9C
+sub_0801FF9C: @ 0x0801FF9C
+ push {r4, lr}
+ adds r4, r0, #0
+ ldr r1, _0801FFD4 @ =gUnk_080CA590
+ ldrb r0, [r4, #0xc]
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r1, [r0]
+ adds r0, r4, #0
+ bl _call_via_r1
+ adds r0, r4, #0
+ adds r0, #0x81
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0801FFD2
+ ldr r2, _0801FFD8 @ =gUnk_080CA5B8
+ ldrb r1, [r4, #0xf]
+ adds r0, r1, #1
+ strb r0, [r4, #0xf]
+ movs r0, #0x30
+ ands r0, r1
+ lsrs r0, r0, #4
+ adds r0, r0, r2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ strh r0, [r4, #0x36]
+_0801FFD2:
+ pop {r4, pc}
+ .align 2, 0
+_0801FFD4: .4byte gUnk_080CA590
+_0801FFD8: .4byte gUnk_080CA5B8
+
+ thumb_func_start sub_0801FFDC
+sub_0801FFDC: @ 0x0801FFDC
+ push {r4, r5, r6, lr}
+ adds r4, r0, #0
+ adds r6, r4, #0
+ adds r6, #0x82
+ ldrb r0, [r6]
+ cmp r0, #0
+ beq _08020068
+ adds r0, r4, #0
+ adds r0, #0x41
+ ldrb r1, [r0]
+ cmp r1, #0x94
+ bne _08020018
+ movs r0, #3
+ movs r1, #1
+ bl CreateEnemy
+ adds r5, r0, #0
+ cmp r5, #0
+ beq _08020010
+ adds r0, r4, #0
+ adds r1, r5, #0
+ bl CopyPosition
+ ldrh r0, [r5, #0x36]
+ subs r0, #8
+ strh r0, [r5, #0x36]
+_08020010:
+ movs r0, #0
+ strb r0, [r6]
+ movs r0, #2
+ b _0802001E
+_08020018:
+ cmp r1, #0x9b
+ bne _08020042
+ movs r0, #1
+_0802001E:
+ strb r0, [r4, #0x14]
+ movs r0, #5
+ strb r0, [r4, #0xc]
+ movs r1, #0
+ movs r0, #0x80
+ strh r0, [r4, #0x24]
+ adds r2, r4, #0
+ adds r2, #0x3d
+ movs r0, #0xe2
+ strb r0, [r2]
+ adds r0, r4, #0
+ adds r0, #0x81
+ strb r1, [r0]
+ ldrb r1, [r4, #0x14]
+ adds r0, r4, #0
+ bl UpdateSprite
+ b _08020068
+_08020042:
+ cmp r1, #0x80
+ bne _08020068
+ ldrb r0, [r4, #0x14]
+ cmp r0, #0
+ bne _08020068
+ movs r0, #1
+ strb r0, [r4, #0xc]
+ movs r0, #0x1e
+ strb r0, [r4, #0xe]
+ strh r1, [r4, #0x24]
+ movs r0, #0xff
+ strb r0, [r4, #0x15]
+ adds r1, r4, #0
+ adds r1, #0x83
+ movs r0, #0x78
+ strb r0, [r1]
+ adds r0, r4, #0
+ bl sub_08004274
+_08020068:
+ adds r0, r4, #0
+ adds r0, #0x43
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0802007A
+ adds r0, r4, #0
+ movs r1, #0x1c
+ bl sub_0804A9FC
+_0802007A:
+ ldr r1, _08020084 @ =gUnk_080CA570
+ adds r0, r4, #0
+ bl sub_0804AA30
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_08020084: .4byte gUnk_080CA570
+
+ thumb_func_start sub_08020088
+sub_08020088: @ 0x08020088
+ push {r4, lr}
+ adds r4, r0, #0
+ ldrb r0, [r4, #0xd]
+ cmp r0, #2
+ bhi _0802009C
+ adds r0, r4, #0
+ bl sub_0806F520
+ cmp r0, #0
+ beq _080200AC
+_0802009C:
+ ldr r0, _080200B0 @ =gUnk_080CA5BC
+ ldrb r1, [r4, #0xd]
+ lsls r1, r1, #2
+ adds r1, r1, r0
+ ldr r1, [r1]
+ adds r0, r4, #0
+ bl _call_via_r1
+_080200AC:
+ pop {r4, pc}
+ .align 2, 0
+_080200B0: .4byte gUnk_080CA5BC
+
+ thumb_func_start sub_080200B4
+sub_080200B4: @ 0x080200B4
+ push {lr}
+ adds r2, r0, #0
+ movs r1, #1
+ strb r1, [r2, #0xd]
+ movs r0, #0x3c
+ strb r0, [r2, #0x1d]
+ ldrb r3, [r2, #0x14]
+ cmp r3, #0
+ bne _080200E2
+ strb r1, [r2, #0x14]
+ movs r0, #5
+ strb r0, [r2, #0xc]
+ adds r1, r2, #0
+ adds r1, #0x3f
+ movs r0, #0x71
+ strb r0, [r1]
+ adds r0, r2, #0
+ adds r0, #0x81
+ strb r3, [r0]
+ ldrb r1, [r2, #0x14]
+ adds r0, r2, #0
+ bl UpdateSprite
+_080200E2:
+ pop {pc}
+
+ thumb_func_start sub_080200E4
+sub_080200E4: @ 0x080200E4
+ push {lr}
+ bl sub_0806F4E8
+ pop {pc}
+
+ thumb_func_start sub_080200EC
+sub_080200EC: @ 0x080200EC
+ push {lr}
+ bl sub_0806F3E4
+ pop {pc}
+
+ thumb_func_start sub_080200F4
+sub_080200F4: @ 0x080200F4
+ ldrb r2, [r0, #0x10]
+ movs r1, #0x7f
+ ands r1, r2
+ strb r1, [r0, #0x10]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start nullsub_5
+nullsub_5: @ 0x08020100
+ bx lr
+ .align 2, 0
+
+ thumb_func_start sub_08020104
+sub_08020104: @ 0x08020104
+ push {lr}
+ adds r2, r0, #0
+ ldrb r3, [r2, #0x10]
+ movs r0, #0x80
+ ands r0, r3
+ lsls r0, r0, #0x18
+ lsrs r1, r0, #0x18
+ cmp r1, #0
+ beq _08020128
+ movs r0, #0x80
+ orrs r0, r3
+ strb r0, [r2, #0x10]
+ adds r2, #0x3a
+ ldrb r1, [r2]
+ movs r0, #0xfb
+ ands r0, r1
+ strb r0, [r2]
+ b _0802012E
+_08020128:
+ adds r0, r2, #0
+ adds r0, #0x45
+ strb r1, [r0]
+_0802012E:
+ pop {pc}
+
+ thumb_func_start sub_08020130
+sub_08020130: @ 0x08020130
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ bl sub_0804A720
+ movs r5, #1
+ strb r5, [r4, #0xc]
+ movs r0, #0x10
+ strb r0, [r4, #0xe]
+ bl Random
+ strb r0, [r4, #0xf]
+ bl Random
+ movs r1, #0x1f
+ ands r0, r1
+ strb r0, [r4, #0x15]
+ movs r0, #0x12
+ strb r0, [r4, #0x1c]
+ bl Random
+ ands r0, r5
+ movs r1, #0xfe
+ cmp r0, #0
+ beq _08020162
+ movs r1, #2
+_08020162:
+ adds r0, r4, #0
+ adds r0, #0x80
+ strb r1, [r0]
+ adds r0, #1
+ strb r5, [r0]
+ adds r0, #1
+ strb r5, [r0]
+ movs r0, #0
+ strb r0, [r4, #0x14]
+ adds r0, r4, #0
+ movs r1, #0
+ bl UpdateSprite
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start sub_08020180
+sub_08020180: @ 0x08020180
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ adds r5, r4, #0
+ adds r5, #0x83
+ ldrb r0, [r5]
+ cmp r0, #0
+ beq _08020192
+ subs r0, #1
+ strb r0, [r5]
+_08020192:
+ adds r0, r4, #0
+ movs r1, #1
+ bl sub_08049FDC
+ cmp r0, #0
+ beq _080201D4
+ ldrb r0, [r5]
+ cmp r0, #0
+ bne _080201D4
+ ldrb r1, [r4, #0xf]
+ movs r0, #0xf
+ ands r0, r1
+ cmp r0, #0
+ bne _080201D4
+ ldr r0, _0802021C @ =gUnk_020000B0
+ ldr r1, [r0]
+ adds r0, r4, #0
+ movs r2, #0x30
+ bl sub_08049F1C
+ cmp r0, #0
+ beq _080201D4
+ movs r0, #2
+ strb r0, [r4, #0xc]
+ bl Random
+ movs r1, #3
+ ands r0, r1
+ strb r0, [r4, #0xd]
+ movs r0, #0x3c
+ strb r0, [r4, #0xe]
+ movs r0, #0xa0
+ strh r0, [r4, #0x24]
+_080201D4:
+ ldrb r0, [r4, #0xe]
+ subs r0, #1
+ strb r0, [r4, #0xe]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _0802020C
+ movs r0, #0x10
+ strb r0, [r4, #0xe]
+ adds r0, r4, #0
+ bl sub_08020604
+ bl Random
+ movs r1, #3
+ ands r1, r0
+ cmp r1, #0
+ bne _0802020C
+ bl Random
+ movs r1, #1
+ ands r1, r0
+ movs r2, #0xfe
+ cmp r1, #0
+ beq _08020206
+ movs r2, #2
+_08020206:
+ adds r0, r4, #0
+ adds r0, #0x80
+ strb r2, [r0]
+_0802020C:
+ adds r0, r4, #0
+ bl sub_080AEFE0
+ adds r0, r4, #0
+ bl sub_08004274
+ pop {r4, r5, pc}
+ .align 2, 0
+_0802021C: .4byte gUnk_020000B0
+
+ thumb_func_start sub_08020220
+sub_08020220: @ 0x08020220
+ push {r4, r5, lr}
+ adds r5, r0, #0
+ movs r1, #1
+ bl sub_08049FDC
+ cmp r0, #0
+ beq _08020284
+ ldrb r0, [r5, #0xe]
+ subs r1, r0, #1
+ strb r1, [r5, #0xe]
+ lsls r0, r1, #0x18
+ cmp r0, #0
+ beq _0802024C
+ lsrs r0, r0, #0x1c
+ movs r1, #3
+ ands r0, r1
+ movs r1, #4
+ subs r1, r1, r0
+ adds r0, r5, #0
+ bl UpdateSpriteAnimation
+ b _08020292
+_0802024C:
+ movs r0, #3
+ strb r0, [r5, #0xc]
+ movs r0, #0x78
+ strb r0, [r5, #0xe]
+ movs r0, #0xc0
+ strh r0, [r5, #0x24]
+ ldr r0, _0802027C @ =gUnk_020000B0
+ ldr r1, [r0]
+ adds r0, r5, #0
+ bl sub_080045C4
+ adds r4, r0, #0
+ bl Random
+ ldr r2, _08020280 @ =gUnk_080CA5D4
+ movs r1, #1
+ ands r1, r0
+ adds r1, r1, r2
+ ldrb r0, [r1]
+ adds r0, r0, r4
+ movs r1, #0x1f
+ ands r0, r1
+ strb r0, [r5, #0x15]
+ b _0802028A
+ .align 2, 0
+_0802027C: .4byte gUnk_020000B0
+_08020280: .4byte gUnk_080CA5D4
+_08020284:
+ adds r0, r5, #0
+ bl sub_080205F8
+_0802028A:
+ adds r0, r5, #0
+ movs r1, #4
+ bl UpdateSpriteAnimation
+_08020292:
+ pop {r4, r5, pc}
+
+ thumb_func_start sub_08020294
+sub_08020294: @ 0x08020294
+ push {r4, lr}
+ adds r4, r0, #0
+ movs r1, #1
+ bl sub_08049FDC
+ cmp r0, #0
+ beq _080202F8
+ ldrb r0, [r4, #0xe]
+ subs r0, #1
+ strb r0, [r4, #0xe]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _080202B4
+ adds r0, r4, #0
+ bl sub_080205F8
+_080202B4:
+ ldrb r1, [r4, #0xe]
+ cmp r1, #0x3c
+ bls _080202E6
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _080202C8
+ ldrh r0, [r4, #0x24]
+ adds r0, #4
+ strh r0, [r4, #0x24]
+_080202C8:
+ ldr r0, _080202F0 @ =gUnk_030010A0
+ ldr r0, [r0]
+ movs r1, #3
+ ands r0, r1
+ cmp r0, #0
+ bne _080202E6
+ ldr r0, _080202F4 @ =gUnk_020000B0
+ ldr r1, [r0]
+ adds r0, r4, #0
+ bl sub_080045C4
+ adds r1, r0, #0
+ adds r0, r4, #0
+ bl sub_08004596
+_080202E6:
+ adds r0, r4, #0
+ bl sub_080AEFE0
+ b _080202FE
+ .align 2, 0
+_080202F0: .4byte gUnk_030010A0
+_080202F4: .4byte gUnk_020000B0
+_080202F8:
+ adds r0, r4, #0
+ bl sub_080205F8
+_080202FE:
+ adds r0, r4, #0
+ movs r1, #4
+ bl UpdateSpriteAnimation
+ pop {r4, pc}
+
+ thumb_func_start sub_08020308
+sub_08020308: @ 0x08020308
+ push {r4, lr}
+ adds r4, r0, #0
+ ldrb r0, [r4, #0xe]
+ subs r1, r0, #1
+ strb r1, [r4, #0xe]
+ lsls r0, r1, #0x18
+ cmp r0, #0
+ bne _08020332
+ movs r0, #1
+ strb r0, [r4, #0xc]
+ strb r0, [r4, #0xe]
+ movs r0, #0x80
+ strh r0, [r4, #0x24]
+ adds r1, r4, #0
+ adds r1, #0x83
+ movs r0, #0x78
+ strb r0, [r1]
+ adds r0, r4, #0
+ bl sub_08004274
+ b _0802034E
+_08020332:
+ movs r0, #1
+ ands r1, r0
+ cmp r1, #0
+ beq _08020340
+ ldrh r0, [r4, #0x24]
+ subs r0, #8
+ strh r0, [r4, #0x24]
+_08020340:
+ adds r0, r4, #0
+ bl sub_080AEFE0
+ adds r0, r4, #0
+ movs r1, #4
+ bl UpdateSpriteAnimation
+_0802034E:
+ pop {r4, pc}
+
+ thumb_func_start sub_08020350
+sub_08020350: @ 0x08020350
+ push {r4, lr}
+ adds r4, r0, #0
+ ldrb r0, [r4, #0x14]
+ cmp r0, #2
+ beq _08020398
+ movs r1, #0xc0
+ lsls r1, r1, #5
+ adds r0, r4, #0
+ bl sub_080044EC
+ cmp r0, #0
+ bne _0802037C
+ movs r0, #6
+ strb r0, [r4, #0xc]
+ movs r0, #0xf0
+ strb r0, [r4, #0xe]
+ movs r0, #0xa
+ strb r0, [r4, #0xf]
+ adds r1, r4, #0
+ adds r1, #0x3f
+ movs r0, #0x71
+ strb r0, [r1]
+_0802037C:
+ ldrb r0, [r4, #0x15]
+ cmp r0, #0xff
+ bne _0802038A
+ adds r0, r4, #0
+ adds r0, #0x3e
+ ldrb r0, [r0]
+ strb r0, [r4, #0x15]
+_0802038A:
+ adds r0, r4, #0
+ bl sub_080AEF88
+ adds r0, r4, #0
+ bl sub_08004274
+ b _080203BE
+_08020398:
+ movs r1, #0xe0
+ lsls r1, r1, #5
+ adds r0, r4, #0
+ bl sub_08003FC4
+ movs r1, #0x36
+ ldrsh r0, [r4, r1]
+ cmp r0, #0
+ bne _080203BE
+ movs r0, #7
+ strb r0, [r4, #0xc]
+ movs r0, #0x96
+ strb r0, [r4, #0xe]
+ movs r0, #0xa
+ strb r0, [r4, #0xf]
+ adds r1, r4, #0
+ adds r1, #0x3f
+ movs r0, #0x71
+ strb r0, [r1]
+_080203BE:
+ pop {r4, pc}
+
+ thumb_func_start sub_080203C0
+sub_080203C0: @ 0x080203C0
+ push {r4, lr}
+ adds r4, r0, #0
+ ldrb r0, [r4, #0xf]
+ cmp r0, #0
+ beq _080203DC
+ subs r0, #1
+ strb r0, [r4, #0xf]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _080203DC
+ adds r0, r4, #0
+ movs r1, #0x1c
+ bl sub_0804A9FC
+_080203DC:
+ adds r0, r4, #0
+ bl sub_0800442E
+ cmp r0, #0
+ bne _080203F2
+ ldrb r0, [r4, #0xe]
+ subs r0, #1
+ strb r0, [r4, #0xe]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _08020418
+_080203F2:
+ movs r0, #9
+ strb r0, [r4, #0xc]
+ movs r0, #0xc0
+ lsls r0, r0, #9
+ str r0, [r4, #0x20]
+ bl Random
+ movs r1, #0x1f
+ ands r0, r1
+ strb r0, [r4, #0x15]
+ adds r0, r4, #0
+ bl sub_0804AA1C
+ movs r0, #5
+ strb r0, [r4, #0x14]
+ adds r0, r4, #0
+ movs r1, #5
+ bl UpdateSprite
+_08020418:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_0802041C
+sub_0802041C: @ 0x0802041C
+ push {r4, lr}
+ adds r4, r0, #0
+ ldrb r0, [r4, #0xf]
+ cmp r0, #0
+ beq _08020438
+ subs r0, #1
+ strb r0, [r4, #0xf]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _08020438
+ adds r0, r4, #0
+ movs r1, #0x1c
+ bl sub_0804A9FC
+_08020438:
+ adds r0, r4, #0
+ bl sub_0800442E
+ cmp r0, #0
+ bne _0802044E
+ ldrb r0, [r4, #0xe]
+ subs r0, #1
+ strb r0, [r4, #0xe]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _08020466
+_0802044E:
+ movs r0, #8
+ strb r0, [r4, #0xc]
+ movs r0, #0xf0
+ strb r0, [r4, #0xe]
+ bl Random
+ movs r1, #0x1f
+ ands r0, r1
+ strb r0, [r4, #0x15]
+ adds r0, r4, #0
+ bl sub_0804AA1C
+_08020466:
+ pop {r4, pc}
+
+ thumb_func_start sub_08020468
+sub_08020468: @ 0x08020468
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ bl sub_08004274
+ ldrb r0, [r4, #0xe]
+ subs r0, #1
+ strb r0, [r4, #0xe]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _080204A6
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _080204A2
+ movs r0, #9
+ strb r0, [r4, #0xc]
+ movs r0, #0xc0
+ lsls r0, r0, #9
+ str r0, [r4, #0x20]
+ movs r0, #4
+ strb r0, [r4, #0x14]
+ adds r0, r4, #0
+ movs r1, #4
+ bl UpdateSprite
+ b _080204A6
+_080204A2:
+ movs r0, #1
+ strb r0, [r4, #0xe]
+_080204A6:
+ adds r5, r4, #0
+ adds r5, #0x5a
+ ldrb r1, [r5]
+ movs r0, #2
+ ands r0, r1
+ cmp r0, #0
+ beq _080204C4
+ movs r0, #0xfd
+ ands r0, r1
+ strb r0, [r5]
+ bl Random
+ movs r1, #0x1f
+ ands r0, r1
+ strb r0, [r4, #0x15]
+_080204C4:
+ ldrb r1, [r5]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _080204D6
+ adds r0, r4, #0
+ bl sub_0800442E
+ b _080204DC
+_080204D6:
+ adds r0, r4, #0
+ bl sub_080AEF88
+_080204DC:
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start sub_080204E0
+sub_080204E0: @ 0x080204E0
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_08004274
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0802051A
+ movs r2, #0
+ movs r1, #1
+ strb r1, [r4, #0xc]
+ adds r3, r4, #0
+ adds r3, #0x3f
+ movs r0, #0x70
+ strb r0, [r3]
+ adds r0, r4, #0
+ adds r0, #0x82
+ strb r1, [r0]
+ subs r0, #1
+ strb r1, [r0]
+ strb r2, [r4, #0x14]
+ adds r0, r4, #0
+ movs r1, #0
+ bl UpdateSprite
+ b _0802053A
+_0802051A:
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _0802052A
+ adds r0, r4, #0
+ bl sub_0800442E
+ b _0802053A
+_0802052A:
+ movs r1, #0xe0
+ lsls r1, r1, #5
+ adds r0, r4, #0
+ bl sub_08003FC4
+ adds r0, r4, #0
+ bl sub_080AEF88
+_0802053A:
+ pop {r4, pc}
+
+ thumb_func_start sub_0802053C
+sub_0802053C: @ 0x0802053C
+ push {r4, lr}
+ adds r4, r0, #0
+ movs r1, #1
+ movs r0, #1
+ strb r0, [r4, #0xc]
+ movs r0, #0xf0
+ strb r0, [r4, #0xe]
+ movs r0, #0x28
+ strb r0, [r4, #0xf]
+ ldrb r0, [r4, #0x18]
+ movs r2, #4
+ rsbs r2, r2, #0
+ ands r2, r0
+ orrs r2, r1
+ ldrb r3, [r4, #0x19]
+ movs r1, #0x3f
+ adds r0, r1, #0
+ ands r0, r3
+ movs r3, #0x40
+ orrs r0, r3
+ strb r0, [r4, #0x19]
+ ldrb r0, [r4, #0x1b]
+ ands r1, r0
+ orrs r1, r3
+ strb r1, [r4, #0x1b]
+ movs r0, #0x31
+ rsbs r0, r0, #0
+ ands r2, r0
+ strb r2, [r4, #0x18]
+ movs r0, #0x20
+ strh r0, [r4, #0x24]
+ bl Random
+ movs r1, #0x10
+ ands r0, r1
+ adds r0, #8
+ strb r0, [r4, #0x15]
+ adds r0, r4, #0
+ movs r1, #3
+ bl UpdateSprite
+ pop {r4, pc}
+
+ thumb_func_start sub_08020590
+sub_08020590: @ 0x08020590
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ bl sub_08004274
+ ldrb r0, [r4, #0xe]
+ subs r1, r0, #1
+ strb r1, [r4, #0xe]
+ movs r5, #0xff
+ lsls r0, r1, #0x18
+ cmp r0, #0
+ bne _080205AE
+ adds r0, r4, #0
+ bl sub_0805E7BC
+ b _080205F2
+_080205AE:
+ lsls r0, r1, #0x18
+ lsrs r0, r0, #0x18
+ cmp r0, #0x3b
+ bhi _080205C8
+ ldrb r2, [r4, #0x18]
+ lsls r1, r2, #0x1e
+ lsrs r1, r1, #0x1e
+ movs r0, #1
+ eors r1, r0
+ subs r0, #5
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, #0x18]
+_080205C8:
+ ldr r0, [r4, #0x34]
+ ldr r1, _080205F4 @ =0xFFFF4000
+ adds r0, r0, r1
+ str r0, [r4, #0x34]
+ adds r0, r4, #0
+ bl sub_0806F69C
+ ldrb r0, [r4, #0xf]
+ subs r0, #1
+ strb r0, [r4, #0xf]
+ ands r0, r5
+ cmp r0, #0
+ bne _080205F2
+ movs r0, #0x28
+ strb r0, [r4, #0xf]
+ bl Random
+ movs r1, #0x10
+ ands r0, r1
+ adds r0, #8
+ strb r0, [r4, #0x15]
+_080205F2:
+ pop {r4, r5, pc}
+ .align 2, 0
+_080205F4: .4byte 0xFFFF4000
+
+ thumb_func_start sub_080205F8
+sub_080205F8: @ 0x080205F8
+ movs r1, #4
+ strb r1, [r0, #0xc]
+ movs r1, #0x3c
+ strb r1, [r0, #0xe]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start sub_08020604
+sub_08020604: @ 0x08020604
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_08049FA0
+ cmp r0, #0
+ bne _08020624
+ bl Random
+ movs r1, #3
+ ands r1, r0
+ cmp r1, #0
+ beq _08020624
+ adds r0, r4, #0
+ bl sub_08049EE4
+ b _08020632
+_08020624:
+ adds r0, r4, #0
+ adds r0, #0x80
+ ldrb r0, [r0]
+ ldrb r1, [r4, #0x15]
+ adds r0, r0, r1
+ movs r1, #0x1f
+ ands r0, r1
+_08020632:
+ strb r0, [r4, #0x15]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_08020638
+sub_08020638: @ 0x08020638
+ push {lr}
+ ldr r1, _08020644 @ =gUnk_080CA66C
+ bl sub_0800129E
+ pop {pc}
+ .align 2, 0
+_08020644: .4byte gUnk_080CA66C
+
+ thumb_func_start sub_08020648
+sub_08020648: @ 0x08020648
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_08020AD0
+ ldr r1, _08020664 @ =gUnk_080CA684
+ ldrb r0, [r4, #0xc]
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r1, [r0]
+ adds r0, r4, #0
+ bl _call_via_r1
+ pop {r4, pc}
+ .align 2, 0
+_08020664: .4byte gUnk_080CA684
+
+ thumb_func_start sub_08020668
+sub_08020668: @ 0x08020668
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ adds r2, r4, #0
+ adds r2, #0x3f
+ ldrb r0, [r2]
+ cmp r0, #0x22
+ bne _080206A2
+ adds r1, r4, #0
+ adds r1, #0x45
+ ldrb r0, [r1]
+ cmp r0, #0xff
+ beq _080206A2
+ movs r0, #4
+ strb r0, [r4, #0xc]
+ movs r0, #0x80
+ lsls r0, r0, #0xa
+ str r0, [r4, #0x20]
+ movs r0, #0xff
+ strb r0, [r4, #0x15]
+ movs r0, #1
+ rsbs r0, r0, #0
+ strb r0, [r1]
+ movs r0, #0x23
+ strb r0, [r2]
+ ldrb r1, [r4, #0x14]
+ adds r1, #8
+ adds r0, r4, #0
+ bl UpdateSprite
+_080206A2:
+ adds r0, r4, #0
+ adds r0, #0x41
+ ldrb r1, [r0]
+ adds r5, r0, #0
+ cmp r1, #0x80
+ beq _080206D0
+ ldrb r0, [r4, #0xc]
+ subs r0, #4
+ lsls r0, r0, #0x18
+ lsrs r0, r0, #0x18
+ cmp r0, #1
+ bhi _080206D0
+ movs r0, #4
+ strb r0, [r4, #0xc]
+ movs r0, #0xb4
+ strb r0, [r4, #0xe]
+ movs r0, #0xff
+ strb r0, [r4, #0x15]
+ ldrb r1, [r4, #0x14]
+ adds r1, #0x10
+ adds r0, r4, #0
+ bl UpdateSprite
+_080206D0:
+ ldrb r0, [r5]
+ cmp r0, #0x93
+ bne _080206DC
+ adds r0, r4, #0
+ bl sub_08020648
+_080206DC:
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start sub_080206E0
+sub_080206E0: @ 0x080206E0
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ bl sub_08020AD0
+ cmp r0, #0
+ beq _080206F6
+ adds r1, r4, #0
+ adds r1, #0x42
+ movs r0, #0
+ strb r0, [r1]
+ b _08020730
+_080206F6:
+ adds r0, r4, #0
+ bl sub_08020B6C
+ cmp r0, #0
+ beq _0802072A
+ adds r1, r4, #0
+ adds r1, #0x42
+ ldrb r0, [r1]
+ subs r0, #1
+ strb r0, [r1]
+ adds r5, r4, #0
+ adds r5, #0x3e
+ ldrb r1, [r5]
+ adds r0, r4, #0
+ movs r2, #0xa
+ bl sub_080AE58C
+ adds r0, r4, #0
+ adds r0, #0x46
+ ldrh r1, [r0]
+ ldrb r2, [r5]
+ adds r0, r4, #0
+ movs r3, #0xa
+ bl sub_080AE7E8
+ b _08020730
+_0802072A:
+ adds r0, r4, #0
+ bl sub_08001324
+_08020730:
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start sub_08020734
+sub_08020734: @ 0x08020734
+ push {r4, lr}
+ adds r4, r0, #0
+ ldrb r0, [r4, #0xd]
+ cmp r0, #2
+ bhi _08020764
+ adds r0, r4, #0
+ bl sub_0806F520
+ cmp r0, #0
+ bne _08020764
+ movs r0, #4
+ strb r0, [r4, #0xc]
+ ldrb r1, [r4, #0x10]
+ movs r0, #0x80
+ orrs r0, r1
+ strb r0, [r4, #0x10]
+ movs r0, #0xff
+ strb r0, [r4, #0x15]
+ ldrb r1, [r4, #0x14]
+ adds r1, #0x10
+ adds r0, r4, #0
+ bl UpdateSprite
+ b _08020774
+_08020764:
+ ldr r0, _08020778 @ =gUnk_080CA6A4
+ ldrb r1, [r4, #0xd]
+ lsls r1, r1, #2
+ adds r1, r1, r0
+ ldr r1, [r1]
+ adds r0, r4, #0
+ bl _call_via_r1
+_08020774:
+ pop {r4, pc}
+ .align 2, 0
+_08020778: .4byte gUnk_080CA6A4
+
+ thumb_func_start sub_0802077C
+sub_0802077C: @ 0x0802077C
+ movs r1, #1
+ strb r1, [r0, #0xd]
+ movs r1, #0x3c
+ strb r1, [r0, #0x1d]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start sub_08020788
+sub_08020788: @ 0x08020788
+ push {lr}
+ bl sub_0806F4E8
+ pop {pc}
+
+ thumb_func_start sub_08020790
+sub_08020790: @ 0x08020790
+ push {lr}
+ bl sub_0806F3E4
+ pop {pc}
+
+ thumb_func_start sub_08020798
+sub_08020798: @ 0x08020798
+ ldrb r2, [r0, #0x10]
+ movs r1, #0x7f
+ ands r1, r2
+ strb r1, [r0, #0x10]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start nullsub_6
+nullsub_6: @ 0x080207A4
+ bx lr
+ .align 2, 0
+
+ thumb_func_start sub_080207A8
+sub_080207A8: @ 0x080207A8
+ push {lr}
+ movs r3, #4
+ movs r1, #4
+ strb r1, [r0, #0xc]
+ ldrb r2, [r0, #0x10]
+ movs r1, #0x80
+ orrs r1, r2
+ strb r1, [r0, #0x10]
+ movs r1, #0x29
+ adds r1, r1, r0
+ mov ip, r1
+ ldrb r2, [r1]
+ movs r1, #8
+ rsbs r1, r1, #0
+ ands r1, r2
+ orrs r1, r3
+ mov r2, ip
+ strb r1, [r2]
+ adds r3, r0, #0
+ adds r3, #0x3a
+ ldrb r2, [r3]
+ movs r1, #0xfb
+ ands r1, r2
+ strb r1, [r3]
+ ldrb r1, [r0, #0x15]
+ movs r2, #0x10
+ eors r1, r2
+ strb r1, [r0, #0x15]
+ movs r1, #0xc0
+ lsls r1, r1, #9
+ str r1, [r0, #0x20]
+ movs r1, #0x80
+ strh r1, [r0, #0x24]
+ ldrb r1, [r0, #0x14]
+ adds r1, #0x10
+ bl UpdateSprite
+ pop {pc}
+
+ thumb_func_start sub_080207F4
+sub_080207F4: @ 0x080207F4
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_0804A720
+ movs r1, #0
+ movs r0, #0x30
+ strb r0, [r4, #0x16]
+ movs r0, #0x12
+ strb r0, [r4, #0x1c]
+ adds r0, r4, #0
+ adds r0, #0x84
+ strb r1, [r0]
+ bl Random
+ movs r1, #0x18
+ ands r0, r1
+ strb r0, [r4, #0x15]
+ adds r0, r4, #0
+ bl sub_08020A30
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_08020820
+sub_08020820: @ 0x08020820
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ bl sub_08004274
+ adds r2, r4, #0
+ adds r2, #0x5a
+ ldrb r1, [r2]
+ movs r5, #1
+ adds r0, r5, #0
+ ands r0, r1
+ cmp r0, #0
+ beq _0802084A
+ movs r0, #0xfe
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r4, #0
+ bl sub_080AEF88
+ cmp r0, #0
+ bne _0802084A
+ strb r5, [r4, #0xe]
+_0802084A:
+ adds r2, r4, #0
+ adds r2, #0x5a
+ ldrb r1, [r2]
+ movs r0, #0x10
+ ands r0, r1
+ cmp r0, #0
+ beq _08020872
+ movs r0, #0xef
+ ands r0, r1
+ strb r0, [r2]
+ ldrb r0, [r4, #0xe]
+ subs r0, #1
+ strb r0, [r4, #0xe]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _08020872
+ movs r0, #3
+ strb r0, [r4, #0xc]
+ movs r0, #0x3c
+ strb r0, [r4, #0xe]
+_08020872:
+ pop {r4, r5, pc}
+
+ thumb_func_start sub_08020874
+sub_08020874: @ 0x08020874
+ push {lr}
+ ldr r2, _08020888 @ =gUnk_080CA6BC
+ ldrb r1, [r0, #0xd]
+ lsls r1, r1, #2
+ adds r1, r1, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {pc}
+ .align 2, 0
+_08020888: .4byte gUnk_080CA6BC
+
+ thumb_func_start sub_0802088C
+sub_0802088C: @ 0x0802088C
+ movs r1, #1
+ strb r1, [r0, #0xd]
+ ldrb r2, [r0, #0x10]
+ movs r1, #0x7f
+ ands r1, r2
+ strb r1, [r0, #0x10]
+ ldr r1, _080208B0 @ =gLinkEntity
+ ldrb r1, [r1, #0x14]
+ adds r2, r0, #0
+ adds r2, #0x85
+ strb r1, [r2]
+ adds r0, #0x29
+ ldrb r2, [r0]
+ movs r1, #0x39
+ rsbs r1, r1, #0
+ ands r1, r2
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_080208B0: .4byte gLinkEntity
+
+ thumb_func_start sub_080208B4
+sub_080208B4: @ 0x080208B4
+ push {r4, r5, lr}
+ adds r2, r0, #0
+ adds r4, r2, #0
+ adds r4, #0x85
+ ldrb r0, [r4]
+ ldr r5, _080208EC @ =gLinkEntity
+ ldrb r1, [r5, #0x14]
+ subs r0, r0, r1
+ lsrs r1, r0, #0x1f
+ adds r0, r0, r1
+ asrs r0, r0, #1
+ lsls r0, r0, #0x18
+ lsrs r1, r0, #0x18
+ cmp r0, #0
+ beq _080208E6
+ ldrb r0, [r2, #0x14]
+ adds r0, r0, r1
+ movs r1, #3
+ ands r0, r1
+ strb r0, [r2, #0x14]
+ ldrb r1, [r2, #0x14]
+ adds r1, #0x10
+ adds r0, r2, #0
+ bl UpdateSprite
+_080208E6:
+ ldrb r0, [r5, #0x14]
+ strb r0, [r4]
+ pop {r4, r5, pc}
+ .align 2, 0
+_080208EC: .4byte gLinkEntity
+
+ thumb_func_start sub_080208F0
+sub_080208F0: @ 0x080208F0
+ adds r0, #0x29
+ ldrb r2, [r0]
+ movs r1, #0x39
+ rsbs r1, r1, #0
+ ands r1, r2
+ movs r2, #0x18
+ orrs r1, r2
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start sub_08020904
+sub_08020904: @ 0x08020904
+ push {lr}
+ movs r1, #4
+ strb r1, [r0, #0xc]
+ ldrb r2, [r0, #0x10]
+ movs r1, #0x80
+ orrs r1, r2
+ strb r1, [r0, #0x10]
+ movs r1, #0xff
+ strb r1, [r0, #0x15]
+ ldrb r1, [r0, #0x14]
+ adds r1, #0x10
+ bl UpdateSprite
+ pop {pc}
+
+ thumb_func_start sub_08020920
+sub_08020920: @ 0x08020920
+ push {lr}
+ adds r1, r0, #0
+ ldrb r0, [r1, #0xe]
+ subs r0, #1
+ strb r0, [r1, #0xe]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _08020936
+ adds r0, r1, #0
+ bl sub_08020A30
+_08020936:
+ pop {pc}
+
+ thumb_func_start sub_08020938
+sub_08020938: @ 0x08020938
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r5, #0x80
+ adds r0, r5, #0
+ ands r0, r1
+ cmp r0, #0
+ bne _08020950
+ adds r0, r4, #0
+ bl sub_08004274
+_08020950:
+ movs r1, #0xa0
+ lsls r1, r1, #6
+ adds r0, r4, #0
+ bl sub_080044EC
+ cmp r0, #0
+ bne _08020980
+ ldrb r0, [r4, #0xe]
+ subs r0, #1
+ strb r0, [r4, #0xe]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _08020978
+ movs r0, #5
+ strb r0, [r4, #0xc]
+ ldrb r1, [r4, #0x14]
+ adds r1, #0xc
+ adds r0, r4, #0
+ bl UpdateSprite
+_08020978:
+ adds r0, r4, #0
+ bl sub_08078930
+ b _0802099C
+_08020980:
+ cmp r0, #1
+ bne _0802098C
+ movs r0, #0x82
+ lsls r0, r0, #1
+ bl sub_08004488
+_0802098C:
+ ldrb r1, [r4, #0x15]
+ adds r0, r5, #0
+ ands r0, r1
+ cmp r0, #0
+ bne _0802099C
+ adds r0, r4, #0
+ bl sub_080AEFE0
+_0802099C:
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start sub_080209A0
+sub_080209A0: @ 0x080209A0
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_08004274
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _080209E2
+ ldrb r1, [r4, #0x10]
+ movs r0, #0x80
+ orrs r0, r1
+ strb r0, [r4, #0x10]
+ movs r0, #0x80
+ lsls r0, r0, #1
+ strh r0, [r4, #0x24]
+ adds r1, r4, #0
+ adds r1, #0x3f
+ movs r0, #0x22
+ strb r0, [r1]
+ adds r0, r4, #0
+ bl sub_08020A30
+ ldrb r0, [r4, #0x14]
+ lsls r0, r0, #3
+ strb r0, [r4, #0x15]
+ ldrb r1, [r4, #0x14]
+ adds r0, r4, #0
+ bl UpdateSprite
+ b _080209F0
+_080209E2:
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ bne _080209F0
+ adds r0, r4, #0
+ bl sub_08078930
+_080209F0:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_080209F4
+sub_080209F4: @ 0x080209F4
+ push {r4, lr}
+ adds r4, r0, #0
+ movs r1, #0xe0
+ lsls r1, r1, #5
+ bl sub_08003FC4
+ cmp r0, #0
+ bne _08020A14
+ movs r1, #7
+ movs r0, #7
+ strb r0, [r4, #0xc]
+ adds r2, r4, #0
+ adds r2, #0x29
+ ldrb r0, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+_08020A14:
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _08020A24
+ adds r0, r4, #0
+ bl sub_08004274
+_08020A24:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_08020A28
+sub_08020A28: @ 0x08020A28
+ push {lr}
+ bl sub_08004274
+ pop {pc}
+
+ thumb_func_start sub_08020A30
+sub_08020A30: @ 0x08020A30
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ adds r5, r4, #0
+ adds r5, #0x84
+ ldrb r0, [r5]
+ cmp r0, #1
+ bhi _08020A68
+ bl Random
+ ldr r2, _08020A64 @ =gUnk_080CA6CC
+ movs r1, #7
+ ands r1, r0
+ adds r1, r1, r2
+ ldrb r0, [r1]
+ strb r0, [r4, #0xe]
+ cmp r0, #0
+ bne _08020A68
+ movs r0, #3
+ strb r0, [r4, #0xc]
+ movs r0, #0x3c
+ strb r0, [r4, #0xe]
+ ldrb r0, [r5]
+ adds r0, #1
+ strb r0, [r5]
+ b _08020A7A
+ .align 2, 0
+_08020A64: .4byte gUnk_080CA6CC
+_08020A68:
+ movs r0, #0
+ movs r1, #1
+ strb r1, [r4, #0xc]
+ adds r1, r4, #0
+ adds r1, #0x84
+ strb r0, [r1]
+ adds r0, r4, #0
+ bl sub_08020A7C
+_08020A7A:
+ pop {r4, r5, pc}
+
+ thumb_func_start sub_08020A7C
+sub_08020A7C: @ 0x08020A7C
+ push {r4, r5, r6, lr}
+ adds r6, r0, #0
+ bl Random
+ ldrb r5, [r6, #0x15]
+ ldr r4, _08020ACC @ =gUnk_080CA6D4
+ movs r1, #3
+ bl __modsi3
+ adds r0, r0, r4
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ adds r5, r5, r0
+ movs r4, #0x18
+ ands r5, r4
+ adds r0, r6, #0
+ bl sub_08049FA0
+ cmp r0, #0
+ bne _08020ABA
+ adds r0, r6, #0
+ bl sub_08049EE4
+ adds r0, #4
+ ands r0, r4
+ movs r1, #0x10
+ eors r1, r5
+ cmp r1, r0
+ bne _08020ABA
+ adds r5, r1, #0
+_08020ABA:
+ strb r5, [r6, #0x15]
+ lsrs r0, r5, #3
+ strb r0, [r6, #0x14]
+ ldrb r1, [r6, #0x14]
+ adds r0, r6, #0
+ bl UpdateSprite
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_08020ACC: .4byte gUnk_080CA6D4
+
+ thumb_func_start sub_08020AD0
+sub_08020AD0: @ 0x08020AD0
+ push {r4, r5, r6, lr}
+ adds r4, r0, #0
+ bl sub_08020B6C
+ cmp r0, #0
+ beq _08020B68
+ movs r1, #0x36
+ ldrsh r0, [r4, r1]
+ cmp r0, #0
+ bne _08020B68
+ movs r1, #0x2e
+ ldrsh r0, [r4, r1]
+ ldr r3, _08020B5C @ =gRoomControls
+ ldrh r1, [r3, #6]
+ subs r0, r0, r1
+ asrs r5, r0, #4
+ movs r2, #0x3f
+ ands r5, r2
+ movs r1, #0x32
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r3, #8]
+ subs r0, r0, r1
+ asrs r0, r0, #4
+ ands r0, r2
+ lsls r0, r0, #6
+ orrs r5, r0
+ adds r6, r4, #0
+ adds r6, #0x38
+ ldrb r1, [r6]
+ adds r0, r5, #0
+ bl sub_080002B0
+ lsls r0, r0, #0x10
+ ldr r1, _08020B60 @ =0xFF8F0000
+ adds r0, r0, r1
+ lsrs r0, r0, #0x10
+ cmp r0, #1
+ bhi _08020B68
+ movs r0, #6
+ strb r0, [r4, #0xc]
+ ldrb r1, [r4, #0x10]
+ movs r0, #0x7f
+ ands r0, r1
+ strb r0, [r4, #0x10]
+ ldrh r2, [r4, #0x2e]
+ movs r1, #0x10
+ rsbs r1, r1, #0
+ adds r0, r1, #0
+ ands r0, r2
+ adds r0, #8
+ strh r0, [r4, #0x2e]
+ ldrh r0, [r4, #0x32]
+ ands r1, r0
+ adds r1, #0xd
+ strh r1, [r4, #0x32]
+ movs r0, #0x80
+ lsls r0, r0, #0xa
+ str r0, [r4, #0x20]
+ ldrb r1, [r4, #0x14]
+ adds r1, #0x14
+ adds r0, r4, #0
+ bl UpdateSprite
+ ldr r0, _08020B64 @ =0x00004034
+ ldrb r2, [r6]
+ adds r1, r5, #0
+ bl UpdateCollisionLayer
+ movs r0, #1
+ b _08020B6A
+ .align 2, 0
+_08020B5C: .4byte gRoomControls
+_08020B60: .4byte 0xFF8F0000
+_08020B64: .4byte 0x00004034
+_08020B68:
+ movs r0, #0
+_08020B6A:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start sub_08020B6C
+sub_08020B6C: @ 0x08020B6C
+ push {lr}
+ adds r0, #0x58
+ ldrb r0, [r0]
+ subs r0, #0x10
+ cmp r0, #3
+ bls _08020B7C
+ movs r0, #0
+ b _08020B7E
+_08020B7C:
+ movs r0, #1
+_08020B7E:
+ pop {pc}
+
+ thumb_func_start sub_08020B80
+sub_08020B80: @ 0x08020B80
+ push {r4, lr}
+ adds r4, r0, #0
+ ldr r1, _08020B9C @ =gUnk_080CAA98
+ bl sub_0800129E
+ movs r3, #0x16
+ rsbs r3, r3, #0
+ adds r0, r4, #0
+ movs r1, #0
+ movs r2, #1
+ bl sub_0804A9AC
+ pop {r4, pc}
+ .align 2, 0
+_08020B9C: .4byte gUnk_080CAA98
+
+ thumb_func_start sub_08020BA0
+sub_08020BA0: @ 0x08020BA0
+ push {lr}
+ ldr r2, _08020BB4 @ =gUnk_080CAAB0
+ ldrb r1, [r0, #0xc]
+ lsls r1, r1, #2
+ adds r1, r1, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {pc}
+ .align 2, 0
+_08020BB4: .4byte gUnk_080CAAB0
+
+ thumb_func_start sub_08020BB8
+sub_08020BB8: @ 0x08020BB8
+ push {r4, r5, r6, lr}
+ adds r4, r0, #0
+ adds r0, #0x41
+ ldrb r0, [r0]
+ movs r2, #0x7f
+ adds r1, r2, #0
+ ands r1, r0
+ cmp r1, #0x1c
+ beq _08020BE0
+ cmp r1, #0x1c
+ bgt _08020BD4
+ cmp r1, #0x16
+ beq _08020C24
+ b _08020D32
+_08020BD4:
+ cmp r1, #0x4b
+ beq _08020C68
+ cmp r1, #0x4c
+ bne _08020BDE
+ b _08020CF0
+_08020BDE:
+ b _08020D32
+_08020BE0:
+ movs r0, #0xb
+ strb r0, [r4, #0xc]
+ ldr r1, _08020C20 @ =gUnk_080CAB0C
+ ldrb r0, [r4, #0xa]
+ adds r0, r0, r1
+ ldrb r0, [r0]
+ strb r0, [r4, #0xe]
+ adds r1, r4, #0
+ adds r1, #0x3f
+ movs r0, #0x51
+ strb r0, [r1]
+ adds r0, r4, #0
+ adds r0, #0x3e
+ ldrb r0, [r0]
+ movs r2, #0x10
+ eors r2, r0
+ adds r2, #4
+ movs r0, #0x18
+ ands r2, r0
+ asrs r2, r2, #3
+ adds r0, r4, #0
+ movs r1, #8
+ bl sub_08021218
+ adds r0, r4, #0
+ bl sub_08021588
+ adds r0, r4, #0
+ movs r1, #0x1c
+ bl sub_0804A9FC
+ b _08020CE2
+ .align 2, 0
+_08020C20: .4byte gUnk_080CAB0C
+_08020C24:
+ movs r0, #0xb
+ strb r0, [r4, #0xc]
+ ldr r1, _08020C64 @ =gUnk_080CAB10
+ ldrb r0, [r4, #0xa]
+ adds r0, r0, r1
+ ldrb r0, [r0]
+ strb r0, [r4, #0xe]
+ adds r1, r4, #0
+ adds r1, #0x3f
+ movs r0, #0x51
+ strb r0, [r1]
+ adds r0, r4, #0
+ adds r0, #0x3e
+ ldrb r0, [r0]
+ movs r2, #0x10
+ eors r2, r0
+ adds r2, #4
+ movs r0, #0x18
+ ands r2, r0
+ asrs r2, r2, #3
+ adds r0, r4, #0
+ movs r1, #8
+ bl sub_08021218
+ adds r0, r4, #0
+ bl sub_08021588
+ adds r0, r4, #0
+ movs r1, #0x1c
+ bl sub_0804A9FC
+ b _08020CE2
+ .align 2, 0
+_08020C64: .4byte gUnk_080CAB10
+_08020C68:
+ ldrb r0, [r4, #0xc]
+ adds r6, r4, #0
+ adds r6, #0x45
+ adds r5, r4, #0
+ adds r5, #0x78
+ cmp r0, #0xd
+ beq _08020D58
+ cmp r0, #0xf
+ beq _08020D58
+ cmp r0, #0x13
+ beq _08020D58
+ cmp r0, #0x12
+ beq _08020D58
+ adds r0, r4, #0
+ adds r0, #0x79
+ ldrb r0, [r0]
+ cmp r0, #4
+ blt _08020CC0
+ cmp r0, #6
+ ble _08020CAC
+ cmp r0, #0xc
+ bgt _08020CC0
+ cmp r0, #8
+ blt _08020CC0
+ ldr r0, _08020CA8 @ =gUnk_080CAB04
+ ldrb r1, [r4, #0xa]
+ adds r1, r1, r0
+ ldrb r0, [r1]
+ adds r1, r4, #0
+ adds r1, #0x7a
+ b _08020CC6
+ .align 2, 0
+_08020CA8: .4byte gUnk_080CAB04
+_08020CAC:
+ ldr r0, _08020CBC @ =gUnk_080CAB00
+ ldrb r1, [r4, #0xa]
+ adds r1, r1, r0
+ ldrb r0, [r1]
+ adds r1, r4, #0
+ adds r1, #0x7a
+ b _08020CC6
+ .align 2, 0
+_08020CBC: .4byte gUnk_080CAB00
+_08020CC0:
+ adds r1, r4, #0
+ adds r1, #0x7a
+ movs r0, #0
+_08020CC6:
+ strb r0, [r1]
+ movs r0, #0xa
+ strb r0, [r4, #0xc]
+ ldrb r2, [r4, #0x14]
+ adds r0, r4, #0
+ movs r1, #0xb
+ bl sub_08021218
+ ldr r0, _08020CEC @ =0x0000015D
+ bl sub_08004488
+ adds r0, r4, #0
+ bl sub_08021588
+_08020CE2:
+ adds r6, r4, #0
+ adds r6, #0x45
+ adds r5, r4, #0
+ adds r5, #0x78
+ b _08020D58
+ .align 2, 0
+_08020CEC: .4byte 0x0000015D
+_08020CF0:
+ ldrb r0, [r4, #0xc]
+ adds r6, r4, #0
+ adds r6, #0x45
+ adds r5, r4, #0
+ adds r5, #0x78
+ cmp r0, #0xf
+ bne _08020D58
+ movs r1, #0xff
+ ldr r0, [r4, #0x54]
+ cmp r0, #0
+ beq _08020D0E
+ adds r0, #0x41
+ ldrb r0, [r0]
+ adds r1, r2, #0
+ ands r1, r0
+_08020D0E:
+ cmp r1, #2
+ bne _08020D28
+ ldr r0, _08020D24 @ =gUnk_080CAB08
+ ldrb r1, [r4, #0xa]
+ adds r1, r1, r0
+ ldrb r1, [r1]
+ adds r0, r4, #0
+ bl sub_080213D0
+ b _08020D58
+ .align 2, 0
+_08020D24: .4byte gUnk_080CAB08
+_08020D28:
+ adds r0, r4, #0
+ movs r1, #0
+ bl sub_080213D0
+ b _08020D58
+_08020D32:
+ adds r2, r4, #0
+ adds r2, #0x45
+ adds r0, r4, #0
+ adds r0, #0x78
+ ldrb r1, [r2]
+ adds r6, r2, #0
+ adds r5, r0, #0
+ ldrb r0, [r5]
+ cmp r1, r0
+ beq _08020D58
+ adds r0, r4, #0
+ bl sub_08021588
+ adds r0, r4, #0
+ bl sub_08021390
+ adds r0, r4, #0
+ bl sub_0804AA1C
+_08020D58:
+ ldrb r0, [r6]
+ strb r0, [r5]
+ ldr r1, _08020D68 @ =gUnk_080CAA98
+ adds r0, r4, #0
+ bl sub_0804AA30
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_08020D68: .4byte gUnk_080CAA98
+
+ thumb_func_start nullsub_129
+nullsub_129: @ 0x08020D6C
+ bx lr
+ .align 2, 0
+
+ thumb_func_start sub_08020D70
+sub_08020D70: @ 0x08020D70
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_0804A720
+ movs r1, #0
+ movs r0, #1
+ strb r0, [r4, #0xc]
+ adds r0, r4, #0
+ adds r0, #0x75
+ strb r1, [r0]
+ subs r0, #0x30
+ ldrb r1, [r0]
+ adds r0, #0x33
+ strb r1, [r0]
+ movs r0, #0xff
+ strb r0, [r4, #0x14]
+ adds r0, r4, #0
+ movs r1, #0
+ movs r2, #2
+ bl sub_08021218
+ pop {r4, pc}
+
+ thumb_func_start sub_08020D9C
+sub_08020D9C: @ 0x08020D9C
+ push {r4, lr}
+ adds r4, r0, #0
+ movs r1, #1
+ bl sub_08049FDC
+ cmp r0, #0
+ beq _08020DB0
+ adds r0, r4, #0
+ bl sub_080213F0
+_08020DB0:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_08020DB4
+sub_08020DB4: @ 0x08020DB4
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_080042B8
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _08020DD0
+ adds r0, r4, #0
+ bl sub_08021390
+_08020DD0:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_08020DD4
+sub_08020DD4: @ 0x08020DD4
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_080214FC
+ cmp r0, #0
+ beq _08020DE8
+ adds r0, r4, #0
+ bl sub_080213F0
+ b _08020E26
+_08020DE8:
+ adds r1, r4, #0
+ adds r1, #0x76
+ ldrh r0, [r1]
+ subs r0, #1
+ strh r0, [r1]
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bne _08020E08
+ movs r0, #5
+ strb r0, [r4, #0xc]
+ ldrb r2, [r4, #0x14]
+ adds r0, r4, #0
+ movs r1, #5
+ bl sub_08021218
+ b _08020E26
+_08020E08:
+ ldrb r0, [r4, #0xe]
+ subs r0, #1
+ strb r0, [r4, #0xe]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _08020E1A
+ adds r0, r4, #0
+ bl sub_08021540
+_08020E1A:
+ adds r0, r4, #0
+ bl sub_080AEF88
+ adds r0, r4, #0
+ bl sub_080042B8
+_08020E26:
+ pop {r4, pc}
+
+ thumb_func_start sub_08020E28
+sub_08020E28: @ 0x08020E28
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_080042B8
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _08020E44
+ adds r0, r4, #0
+ bl sub_080213B0
+_08020E44:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_08020E48
+sub_08020E48: @ 0x08020E48
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_080214FC
+ cmp r0, #0
+ beq _08020E5C
+ adds r0, r4, #0
+ bl sub_080213F0
+ b _08020E76
+_08020E5C:
+ adds r0, r4, #0
+ bl sub_080042B8
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _08020E76
+ adds r0, r4, #0
+ bl sub_080213B0
+_08020E76:
+ pop {r4, pc}
+
+ thumb_func_start sub_08020E78
+sub_08020E78: @ 0x08020E78
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_080042B8
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _08020E94
+ adds r0, r4, #0
+ bl sub_08021390
+_08020E94:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_08020E98
+sub_08020E98: @ 0x08020E98
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ movs r1, #1
+ movs r2, #0x38
+ bl sub_08049F64
+ cmp r0, #0
+ beq _08020EF6
+ ldr r5, _08020EDC @ =gUnk_020000B0
+ ldr r1, [r5]
+ adds r0, r4, #0
+ bl sub_0802169C
+ cmp r0, #0
+ bne _08020ECA
+ ldr r0, [r5]
+ adds r1, r4, #0
+ bl sub_080045C4
+ strb r0, [r4, #0x15]
+ adds r0, r4, #0
+ bl sub_080AEF88
+ cmp r0, #0
+ bne _08020EE0
+_08020ECA:
+ movs r0, #8
+ strb r0, [r4, #0xc]
+ ldrb r2, [r4, #0x14]
+ adds r0, r4, #0
+ movs r1, #7
+ bl sub_08021218
+ b _08020F26
+ .align 2, 0
+_08020EDC: .4byte gUnk_020000B0
+_08020EE0:
+ ldrb r0, [r4, #0x15]
+ movs r1, #0x10
+ eors r0, r1
+ strb r0, [r4, #0x15]
+ adds r0, r4, #0
+ bl sub_0802124C
+ adds r0, r4, #0
+ bl sub_08021644
+ b _08020F26
+_08020EF6:
+ ldr r0, _08020F08 @ =gUnk_020000B0
+ ldr r1, [r0]
+ cmp r1, #0
+ bne _08020F0C
+ adds r0, r4, #0
+ bl sub_08021414
+ b _08020F26
+ .align 2, 0
+_08020F08: .4byte gUnk_020000B0
+_08020F0C:
+ adds r0, r4, #0
+ bl sub_080045C4
+ strb r0, [r4, #0x15]
+ adds r0, r4, #0
+ bl sub_080AEF88
+ adds r0, r4, #0
+ bl sub_0802124C
+ adds r0, r4, #0
+ bl sub_08021644
+_08020F26:
+ pop {r4, r5, pc}
+
+ thumb_func_start sub_08020F28
+sub_08020F28: @ 0x08020F28
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_080042B8
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _08020F44
+ adds r0, r4, #0
+ bl sub_08021400
+_08020F44:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_08020F48
+sub_08020F48: @ 0x08020F48
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ movs r1, #1
+ movs r2, #0x48
+ bl sub_08049F64
+ cmp r0, #0
+ beq _08020FA4
+ ldr r5, _08020F98 @ =gUnk_020000B0
+ ldr r1, [r5]
+ adds r0, r4, #0
+ bl sub_08021664
+ cmp r0, #0
+ beq _08020F9C
+ ldr r1, [r5]
+ adds r0, r4, #0
+ movs r2, #9
+ bl sub_0804A044
+ adds r2, r0, #0
+ cmp r2, #0xff
+ beq _08020F9C
+ movs r0, #0xe
+ strb r0, [r4, #0xc]
+ lsrs r2, r2, #3
+ adds r0, r4, #0
+ movs r1, #0xd
+ bl sub_08021218
+ adds r0, r4, #0
+ movs r1, #0
+ movs r2, #1
+ bl sub_0804A98C
+ cmp r0, #0
+ beq _08020FAA
+ str r4, [r0, #0x50]
+ str r0, [r4, #0x54]
+ b _08020FAA
+ .align 2, 0
+_08020F98: .4byte gUnk_020000B0
+_08020F9C:
+ adds r0, r4, #0
+ bl sub_08021424
+ b _08020FAA
+_08020FA4:
+ adds r0, r4, #0
+ bl sub_08021390
+_08020FAA:
+ pop {r4, r5, pc}
+
+ thumb_func_start sub_08020FAC
+sub_08020FAC: @ 0x08020FAC
+ push {lr}
+ adds r2, r0, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _08020FDC
+ adds r1, r2, #0
+ adds r1, #0x7a
+ ldrb r0, [r1]
+ cmp r0, #0
+ beq _08020FCC
+ subs r0, #1
+ strb r0, [r1]
+ b _08020FE2
+_08020FCC:
+ adds r1, r2, #0
+ adds r1, #0x3d
+ movs r0, #0xf8
+ strb r0, [r1]
+ adds r0, r2, #0
+ bl sub_08021390
+ b _08020FE2
+_08020FDC:
+ adds r0, r2, #0
+ bl sub_080042B8
+_08020FE2:
+ pop {pc}
+
+ thumb_func_start sub_08020FE4
+sub_08020FE4: @ 0x08020FE4
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_080042B8
+ ldrb r0, [r4, #0xe]
+ subs r0, #1
+ strb r0, [r4, #0xe]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _0802100C
+ movs r0, #0xc
+ strb r0, [r4, #0xc]
+ ldrb r2, [r4, #0x14]
+ adds r0, r4, #0
+ movs r1, #9
+ bl sub_08021218
+ adds r0, r4, #0
+ bl sub_0804AA1C
+_0802100C:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_08021010
+sub_08021010: @ 0x08021010
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_080042B8
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _08021034
+ adds r1, r4, #0
+ adds r1, #0x3f
+ movs r0, #0x56
+ strb r0, [r1]
+ adds r0, r4, #0
+ bl sub_080213F0
+_08021034:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_08021038
+sub_08021038: @ 0x08021038
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ ldr r0, [r4, #0x54]
+ cmp r0, #0
+ bne _08021066
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _08021066
+ adds r0, r4, #0
+ movs r1, #0
+ movs r2, #0
+ bl sub_0804A98C
+ cmp r0, #0
+ beq _0802105E
+ str r4, [r0, #0x50]
+ str r0, [r4, #0x54]
+_0802105E:
+ movs r0, #0x87
+ lsls r0, r0, #1
+ bl sub_08004488
+_08021066:
+ adds r5, r4, #0
+ adds r5, #0x5a
+ ldrb r1, [r5]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _08021090
+ adds r0, r4, #0
+ bl sub_08021588
+ adds r1, r4, #0
+ adds r1, #0x7c
+ ldrb r0, [r1]
+ cmp r0, #0
+ beq _08021088
+ subs r0, #1
+ b _080210A2
+_08021088:
+ adds r0, r4, #0
+ bl sub_08021390
+ b _080210A4
+_08021090:
+ adds r0, r4, #0
+ bl sub_080042B8
+ ldrb r0, [r5]
+ cmp r0, #4
+ bne _080210A4
+ adds r1, r4, #0
+ adds r1, #0x3f
+ movs r0, #0x51
+_080210A2:
+ strb r0, [r1]
+_080210A4:
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start sub_080210A8
+sub_080210A8: @ 0x080210A8
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_080042B8
+ adds r2, r4, #0
+ adds r2, #0x5a
+ ldrb r1, [r2]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _080210D4
+ movs r0, #0
+ strb r0, [r2]
+ adds r0, r4, #0
+ bl sub_08021588
+ ldr r0, _080210D0 @ =0x0000015D
+ bl sub_08004488
+ b _080210E2
+ .align 2, 0
+_080210D0: .4byte 0x0000015D
+_080210D4:
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _080210E2
+ adds r0, r4, #0
+ bl sub_08021390
+_080210E2:
+ pop {r4, pc}
+
+ thumb_func_start sub_080210E4
+sub_080210E4: @ 0x080210E4
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_080042B8
+ adds r2, r4, #0
+ adds r2, #0x5a
+ ldrb r1, [r2]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _0802111A
+ movs r0, #0xfe
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r4, #0
+ movs r1, #0
+ movs r2, #2
+ bl sub_0804A98C
+ cmp r0, #0
+ beq _08021112
+ str r4, [r0, #0x50]
+ str r0, [r4, #0x54]
+_08021112:
+ movs r0, #0x87
+ lsls r0, r0, #1
+ bl sub_08004488
+_0802111A:
+ adds r0, r4, #0
+ bl sub_08021644
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x10
+ ands r0, r1
+ cmp r0, #0
+ beq _08021154
+ adds r0, r4, #0
+ bl sub_080AEF88
+ cmp r0, #0
+ beq _0802114A
+ ldr r0, [r4, #0x54]
+ cmp r0, #0
+ beq _08021154
+ adds r0, #0x41
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _08021154
+_0802114A:
+ adds r0, r4, #0
+ movs r1, #0
+ bl sub_080213D0
+ b _0802116C
+_08021154:
+ adds r1, r4, #0
+ adds r1, #0x76
+ ldrh r0, [r1]
+ subs r0, #1
+ strh r0, [r1]
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bne _0802116C
+ adds r0, r4, #0
+ movs r1, #0
+ bl sub_080213D0
+_0802116C:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_08021170
+sub_08021170: @ 0x08021170
+ push {lr}
+ adds r2, r0, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _08021198
+ adds r1, r2, #0
+ adds r1, #0x7b
+ ldrb r0, [r1]
+ cmp r0, #0
+ beq _08021190
+ subs r0, #1
+ strb r0, [r1]
+ b _0802119E
+_08021190:
+ adds r0, r2, #0
+ bl sub_08021390
+ b _0802119E
+_08021198:
+ adds r0, r2, #0
+ bl sub_080042B8
+_0802119E:
+ pop {pc}
+
+ thumb_func_start sub_080211A0
+sub_080211A0: @ 0x080211A0
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_080214FC
+ cmp r0, #0
+ beq _080211B4
+ adds r0, r4, #0
+ bl sub_08021390
+ b _080211CE
+_080211B4:
+ adds r0, r4, #0
+ bl sub_080042B8
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _080211CE
+ adds r0, r4, #0
+ bl sub_080213B0
+_080211CE:
+ pop {r4, pc}
+
+ thumb_func_start sub_080211D0
+sub_080211D0: @ 0x080211D0
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_080042B8
+ adds r0, r4, #0
+ bl sub_0802159C
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _080211F2
+ adds r0, r4, #0
+ bl sub_08021390
+_080211F2:
+ pop {r4, pc}
+
+ thumb_func_start sub_080211F4
+sub_080211F4: @ 0x080211F4
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_080042B8
+ adds r0, r4, #0
+ bl sub_08021600
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _08021216
+ adds r0, r4, #0
+ bl sub_08021390
+_08021216:
+ pop {r4, pc}
+
+ thumb_func_start sub_08021218
+sub_08021218: @ 0x08021218
+ push {r4, lr}
+ adds r3, r0, #0
+ adds r4, r3, #0
+ adds r4, #0x74
+ ldrb r0, [r4]
+ cmp r0, r1
+ bne _0802122C
+ ldrb r0, [r3, #0x14]
+ cmp r0, r2
+ beq _08021244
+_0802122C:
+ strb r2, [r3, #0x14]
+ strb r1, [r4]
+ lsls r0, r1, #1
+ ldr r1, _08021248 @ =gUnk_080CAB14
+ adds r0, r0, r1
+ ldrb r1, [r0, #1]
+ strh r1, [r3, #0x12]
+ ldrb r1, [r0]
+ adds r1, r1, r2
+ adds r0, r3, #0
+ bl LoadAnimation
+_08021244:
+ pop {r4, pc}
+ .align 2, 0
+_08021248: .4byte gUnk_080CAB14
+
+ thumb_func_start sub_0802124C
+sub_0802124C: @ 0x0802124C
+ push {r4, lr}
+ adds r4, r0, #0
+ ldrb r0, [r4, #0x14]
+ ldrb r1, [r4, #0x15]
+ bl sub_08021274
+ adds r2, r0, #0
+ cmp r2, #0xff
+ beq _0802126C
+ adds r0, r4, #0
+ adds r0, #0x74
+ ldrb r1, [r0]
+ adds r0, r4, #0
+ bl sub_08021218
+ b _08021272
+_0802126C:
+ adds r0, r4, #0
+ bl sub_080042B8
+_08021272:
+ pop {r4, pc}
+
+ thumb_func_start sub_08021274
+sub_08021274: @ 0x08021274
+ push {lr}
+ adds r2, r0, #0
+ movs r0, #7
+ ands r0, r1
+ subs r0, #3
+ cmp r0, #2
+ bhi _0802129A
+ movs r3, #0x18
+ adds r0, r1, #0
+ ands r0, r3
+ lsrs r0, r0, #3
+ cmp r0, r2
+ beq _080212AA
+ adds r0, r1, #0
+ adds r0, #8
+ ands r0, r3
+ lsrs r0, r0, #3
+ cmp r0, r2
+ beq _080212AA
+_0802129A:
+ adds r0, r1, #4
+ movs r1, #0x18
+ ands r0, r1
+ lsrs r1, r0, #3
+ cmp r2, r1
+ beq _080212AA
+ adds r0, r1, #0
+ b _080212AC
+_080212AA:
+ movs r0, #0xff
+_080212AC:
+ pop {pc}
+ .align 2, 0
+
+ thumb_func_start sub_080212B0
+sub_080212B0: @ 0x080212B0
+ push {r4, r5, lr}
+ adds r5, r0, #0
+ adds r1, r5, #0
+ adds r1, #0x75
+ ldrb r0, [r1]
+ cmp r0, #1
+ beq _080212D0
+ cmp r0, #2
+ beq _080212DC
+ movs r0, #1
+ strb r0, [r1]
+ ldr r4, _080212CC @ =gUnk_080CAB3A
+ b _080212E2
+ .align 2, 0
+_080212CC: .4byte gUnk_080CAB3A
+_080212D0:
+ movs r0, #2
+ strb r0, [r1]
+ ldr r4, _080212D8 @ =gUnk_080CAB42
+ b _080212E2
+ .align 2, 0
+_080212D8: .4byte gUnk_080CAB42
+_080212DC:
+ movs r0, #0
+ strb r0, [r1]
+ ldr r4, _0802131C @ =gUnk_080CAB4A
+_080212E2:
+ bl Random
+ movs r1, #7
+ ands r1, r0
+ adds r1, r1, r4
+ ldrb r2, [r1]
+ ldrb r0, [r5, #0xa]
+ cmp r0, #1
+ bhi _08021306
+ cmp r2, #2
+ bne _08021306
+ ldr r4, _08021320 @ =gUnk_080CAB52
+ bl Random
+ movs r1, #3
+ ands r1, r0
+ adds r1, r1, r4
+ ldrb r2, [r1]
+_08021306:
+ movs r0, #0
+ str r0, [r5, #0x54]
+ ldr r1, _08021324 @ =gUnk_080CAB58
+ lsls r0, r2, #2
+ adds r0, r0, r1
+ ldr r1, [r0]
+ adds r0, r5, #0
+ bl _call_via_r1
+ pop {r4, r5, pc}
+ .align 2, 0
+_0802131C: .4byte gUnk_080CAB4A
+_08021320: .4byte gUnk_080CAB52
+_08021324: .4byte gUnk_080CAB58
+
+ thumb_func_start sub_08021328
+sub_08021328: @ 0x08021328
+ push {lr}
+ movs r1, #0xd
+ strb r1, [r0, #0xc]
+ ldr r2, _08021348 @ =gUnk_080CAB68
+ ldrb r1, [r0, #0xa]
+ adds r1, r1, r2
+ ldrb r2, [r1]
+ adds r1, r0, #0
+ adds r1, #0x7c
+ strb r2, [r1]
+ ldrb r2, [r0, #0x14]
+ movs r1, #0xc
+ bl sub_08021218
+ pop {pc}
+ .align 2, 0
+_08021348: .4byte gUnk_080CAB68
+
+ thumb_func_start sub_0802134C
+sub_0802134C: @ 0x0802134C
+ push {lr}
+ movs r1, #0xf
+ strb r1, [r0, #0xc]
+ ldrb r1, [r0, #0x14]
+ lsls r1, r1, #3
+ strb r1, [r0, #0x15]
+ movs r1, #0x80
+ lsls r1, r1, #2
+ strh r1, [r0, #0x24]
+ adds r2, r0, #0
+ adds r2, #0x76
+ movs r1, #0x78
+ strh r1, [r2]
+ ldrb r2, [r0, #0x14]
+ movs r1, #0xe
+ bl sub_08021218
+ pop {pc}
+
+ thumb_func_start sub_08021370
+sub_08021370: @ 0x08021370
+ push {lr}
+ movs r1, #0x12
+ strb r1, [r0, #0xc]
+ ldrb r2, [r0, #0x14]
+ movs r1, #0x10
+ bl sub_08021218
+ pop {pc}
+
+ thumb_func_start sub_08021380
+sub_08021380: @ 0x08021380
+ push {lr}
+ movs r1, #0x13
+ strb r1, [r0, #0xc]
+ ldrb r2, [r0, #0x14]
+ movs r1, #0x11
+ bl sub_08021218
+ pop {pc}
+
+ thumb_func_start sub_08021390
+sub_08021390: @ 0x08021390
+ push {lr}
+ movs r1, #7
+ strb r1, [r0, #0xc]
+ movs r1, #0x80
+ lsls r1, r1, #2
+ strh r1, [r0, #0x24]
+ adds r2, r0, #0
+ adds r2, #0x3f
+ movs r1, #0x56
+ strb r1, [r2]
+ ldrb r2, [r0, #0x14]
+ movs r1, #6
+ bl sub_08021218
+ pop {pc}
+ .align 2, 0
+
+ thumb_func_start sub_080213B0
+sub_080213B0: @ 0x080213B0
+ push {lr}
+ movs r1, #3
+ strb r1, [r0, #0xc]
+ movs r1, #1
+ strb r1, [r0, #0xe]
+ movs r1, #0xc0
+ strh r1, [r0, #0x24]
+ adds r2, r0, #0
+ adds r2, #0x76
+ movs r1, #0xf0
+ strh r1, [r2]
+ ldrb r2, [r0, #0x14]
+ movs r1, #3
+ bl sub_08021218
+ pop {pc}
+
+ thumb_func_start sub_080213D0
+sub_080213D0: @ 0x080213D0
+ push {r4, lr}
+ adds r4, r0, #0
+ movs r0, #0x10
+ strb r0, [r4, #0xc]
+ adds r0, r4, #0
+ adds r0, #0x7b
+ strb r1, [r0]
+ ldrb r2, [r4, #0x14]
+ adds r0, r4, #0
+ movs r1, #0xf
+ bl sub_08021218
+ adds r0, r4, #0
+ bl sub_08021588
+ pop {r4, pc}
+
+ thumb_func_start sub_080213F0
+sub_080213F0: @ 0x080213F0
+ push {lr}
+ movs r1, #6
+ strb r1, [r0, #0xc]
+ ldrb r2, [r0, #0x14]
+ movs r1, #1
+ bl sub_08021218
+ pop {pc}
+
+ thumb_func_start sub_08021400
+sub_08021400: @ 0x08021400
+ push {lr}
+ movs r1, #9
+ strb r1, [r0, #0xc]
+ movs r1, #0x60
+ strh r1, [r0, #0x24]
+ ldrb r2, [r0, #0x14]
+ movs r1, #0xa
+ bl sub_08021218
+ pop {pc}
+
+ thumb_func_start sub_08021414
+sub_08021414: @ 0x08021414
+ push {lr}
+ movs r1, #0x11
+ strb r1, [r0, #0xc]
+ ldrb r2, [r0, #0x14]
+ movs r1, #5
+ bl sub_08021218
+ pop {pc}
+
+ thumb_func_start sub_08021424
+sub_08021424: @ 0x08021424
+ push {r4, r5, lr}
+ adds r5, r0, #0
+ ldr r0, _08021450 @ =gUnk_020000B0
+ ldr r1, [r0]
+ adds r0, r5, #0
+ bl sub_080045C4
+ adds r1, r0, #0
+ ldrb r0, [r5, #0x14]
+ bl sub_08021274
+ adds r4, r0, #0
+ cmp r4, #0xff
+ beq _08021454
+ adds r0, r5, #0
+ adds r0, #0x74
+ ldrb r1, [r0]
+ adds r0, r5, #0
+ adds r2, r4, #0
+ bl sub_08021218
+ b _08021456
+ .align 2, 0
+_08021450: .4byte gUnk_020000B0
+_08021454:
+ ldrb r4, [r5, #0x14]
+_08021456:
+ cmp r4, #1
+ beq _08021490
+ cmp r4, #1
+ blo _08021478
+ cmp r4, #2
+ beq _080214A8
+ ldr r0, _08021474 @ =gUnk_020000B0
+ ldr r1, [r0]
+ movs r2, #0x2e
+ ldrsh r0, [r1, r2]
+ adds r2, r0, #0
+ adds r2, #0x24
+ movs r4, #0x32
+ ldrsh r3, [r1, r4]
+ b _080214B8
+ .align 2, 0
+_08021474: .4byte gUnk_020000B0
+_08021478:
+ ldr r0, _0802148C @ =gUnk_020000B0
+ ldr r0, [r0]
+ movs r1, #0x2e
+ ldrsh r2, [r0, r1]
+ movs r4, #0x32
+ ldrsh r0, [r0, r4]
+ adds r3, r0, #0
+ adds r3, #0x2c
+ b _080214B8
+ .align 2, 0
+_0802148C: .4byte gUnk_020000B0
+_08021490:
+ ldr r0, _080214A4 @ =gUnk_020000B0
+ ldr r1, [r0]
+ movs r2, #0x2e
+ ldrsh r0, [r1, r2]
+ adds r2, r0, #0
+ subs r2, #0x24
+ movs r4, #0x32
+ ldrsh r3, [r1, r4]
+ b _080214B8
+ .align 2, 0
+_080214A4: .4byte gUnk_020000B0
+_080214A8:
+ ldr r0, _080214F0 @ =gUnk_020000B0
+ ldr r0, [r0]
+ movs r1, #0x2e
+ ldrsh r2, [r0, r1]
+ movs r4, #0x32
+ ldrsh r0, [r0, r4]
+ adds r3, r0, #0
+ subs r3, #0x1d
+_080214B8:
+ movs r1, #0x2e
+ ldrsh r0, [r5, r1]
+ subs r0, r2, r0
+ adds r0, #3
+ cmp r0, #6
+ bhi _080214D0
+ movs r4, #0x32
+ ldrsh r0, [r5, r4]
+ subs r0, r3, r0
+ adds r0, #2
+ cmp r0, #4
+ bls _080214E8
+_080214D0:
+ movs r1, #0x2e
+ ldrsh r0, [r5, r1]
+ movs r4, #0x32
+ ldrsh r1, [r5, r4]
+ bl sub_080045D4
+ strb r0, [r5, #0x15]
+ adds r0, r5, #0
+ bl sub_080AEF88
+ cmp r0, #0
+ bne _080214F4
+_080214E8:
+ adds r0, r5, #0
+ bl sub_080212B0
+ b _080214FA
+ .align 2, 0
+_080214F0: .4byte gUnk_020000B0
+_080214F4:
+ adds r0, r5, #0
+ bl sub_080042B8
+_080214FA:
+ pop {r4, r5, pc}
+
+ thumb_func_start sub_080214FC
+sub_080214FC: @ 0x080214FC
+ push {r4, lr}
+ adds r4, r0, #0
+ movs r1, #1
+ bl sub_08049FDC
+ cmp r0, #0
+ beq _0802153C
+ ldr r0, _08021538 @ =gUnk_020000B0
+ ldr r1, [r0]
+ adds r0, r4, #0
+ bl sub_080045C4
+ adds r2, r0, #0
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x1f
+ ands r0, r1
+ subs r0, r2, r0
+ subs r0, #2
+ cmp r0, #4
+ bhi _0802153C
+ adds r0, r2, #4
+ movs r1, #0x18
+ ands r0, r1
+ lsrs r0, r0, #3
+ strb r0, [r4, #0x14]
+ movs r0, #1
+ b _0802153E
+ .align 2, 0
+_08021538: .4byte gUnk_020000B0
+_0802153C:
+ movs r0, #0
+_0802153E:
+ pop {r4, pc}
+
+ thumb_func_start sub_08021540
+sub_08021540: @ 0x08021540
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ bl Random
+ adds r5, r0, #0
+ adds r0, r4, #0
+ bl sub_08049FA0
+ cmp r0, #0
+ bne _08021566
+ movs r0, #1
+ ands r0, r5
+ cmp r0, #0
+ beq _08021566
+ adds r0, r4, #0
+ bl sub_08049EE4
+ adds r1, r0, #4
+ b _08021568
+_08021566:
+ lsrs r1, r5, #0x10
+_08021568:
+ movs r0, #0x18
+ ands r1, r0
+ strb r1, [r4, #0x15]
+ ldrb r0, [r4, #0x14]
+ bl sub_08021274
+ adds r2, r0, #0
+ cmp r2, #0xff
+ beq _08021582
+ adds r0, r4, #0
+ movs r1, #3
+ bl sub_08021218
+_08021582:
+ movs r0, #0x1e
+ strb r0, [r4, #0xe]
+ pop {r4, r5, pc}
+
+ thumb_func_start sub_08021588
+sub_08021588: @ 0x08021588
+ push {lr}
+ adds r2, r0, #0
+ ldr r1, [r2, #0x54]
+ cmp r1, #0
+ beq _08021598
+ movs r0, #0
+ str r0, [r1, #0x50]
+ str r0, [r2, #0x54]
+_08021598:
+ pop {pc}
+ .align 2, 0
+
+ thumb_func_start sub_0802159C
+sub_0802159C: @ 0x0802159C
+ push {r4, lr}
+ adds r4, r0, #0
+ adds r2, r4, #0
+ adds r2, #0x5a
+ ldrb r1, [r2]
+ adds r0, r1, #0
+ cmp r0, #1
+ bne _080215D4
+ movs r0, #0
+ strb r0, [r2]
+ adds r1, r4, #0
+ adds r1, #0x3f
+ movs r0, #0x51
+ strb r0, [r1]
+ adds r0, r4, #0
+ movs r1, #0
+ movs r2, #3
+ bl sub_0804A98C
+ cmp r0, #0
+ beq _080215CA
+ str r4, [r0, #0x50]
+ str r0, [r4, #0x54]
+_080215CA:
+ movs r0, #0x8b
+ lsls r0, r0, #1
+ bl sub_08004488
+ b _080215F8
+_080215D4:
+ cmp r0, #2
+ bne _080215E4
+ movs r0, #0
+ strb r0, [r2]
+ adds r0, r4, #0
+ bl sub_08021588
+ b _080215F8
+_080215E4:
+ movs r0, #0x20
+ ands r0, r1
+ cmp r0, #0
+ beq _080215F8
+ movs r0, #0xdf
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _080215FC @ =0x00000115
+ bl sub_08004488
+_080215F8:
+ pop {r4, pc}
+ .align 2, 0
+_080215FC: .4byte 0x00000115
+
+ thumb_func_start sub_08021600
+sub_08021600: @ 0x08021600
+ push {r4, lr}
+ adds r4, r0, #0
+ adds r1, r4, #0
+ adds r1, #0x5a
+ ldrb r0, [r1]
+ cmp r0, #1
+ bne _08021634
+ movs r0, #0
+ strb r0, [r1]
+ subs r1, #0x1b
+ movs r0, #0x51
+ strb r0, [r1]
+ adds r0, r4, #0
+ movs r1, #0
+ movs r2, #4
+ bl sub_0804A98C
+ cmp r0, #0
+ beq _0802162A
+ str r4, [r0, #0x50]
+ str r0, [r4, #0x54]
+_0802162A:
+ movs r0, #0x87
+ lsls r0, r0, #1
+ bl sub_08004488
+ b _08021642
+_08021634:
+ cmp r0, #2
+ bne _08021642
+ movs r0, #0
+ strb r0, [r1]
+ adds r0, r4, #0
+ bl sub_08021588
+_08021642:
+ pop {r4, pc}
+
+ thumb_func_start sub_08021644
+sub_08021644: @ 0x08021644
+ push {lr}
+ adds r2, r0, #0
+ adds r2, #0x5a
+ ldrb r1, [r2]
+ movs r0, #0x20
+ ands r0, r1
+ cmp r0, #0
+ beq _08021660
+ movs r0, #0xdf
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, #0x7d
+ bl sub_08004488
+_08021660:
+ pop {pc}
+ .align 2, 0
+
+ thumb_func_start sub_08021664
+sub_08021664: @ 0x08021664
+ push {lr}
+ ldrb r2, [r0, #0x14]
+ cmp r2, #1
+ beq _08021690
+ cmp r2, #1
+ bgt _08021676
+ cmp r2, #0
+ beq _08021680
+ b _08021698
+_08021676:
+ cmp r2, #2
+ beq _08021688
+ cmp r2, #3
+ beq _08021690
+ b _08021698
+_08021680:
+ movs r2, #0x22
+ bl sub_08049F1C
+ b _0802169A
+_08021688:
+ movs r2, #0x13
+ bl sub_08049F1C
+ b _0802169A
+_08021690:
+ movs r2, #0x1a
+ bl sub_08049F1C
+ b _0802169A
+_08021698:
+ movs r0, #0
+_0802169A:
+ pop {pc}
+
+ thumb_func_start sub_0802169C
+sub_0802169C: @ 0x0802169C
+ push {lr}
+ ldrb r2, [r0, #0x14]
+ cmp r2, #1
+ beq _080216C0
+ cmp r2, #1
+ bgt _080216AE
+ cmp r2, #0
+ beq _080216B8
+ b _080216CE
+_080216AE:
+ cmp r2, #2
+ beq _080216BC
+ cmp r2, #3
+ beq _080216C0
+ b _080216CE
+_080216B8:
+ movs r2, #0x2c
+ b _080216C2
+_080216BC:
+ movs r2, #0x1d
+ b _080216C2
+_080216C0:
+ movs r2, #0x24
+_080216C2:
+ bl sub_08049F1C
+ cmp r0, #0
+ bne _080216CE
+ movs r0, #1
+ b _080216D0
+_080216CE:
+ movs r0, #0
+_080216D0:
+ pop {pc}
+ .align 2, 0
+
+ thumb_func_start sub_080216D4
+sub_080216D4: @ 0x080216D4
+ push {lr}
+ ldr r1, _080216E0 @ =gUnk_080CB570
+ bl sub_0800129E
+ pop {pc}
+ .align 2, 0
+_080216E0: .4byte gUnk_080CB570
+
+ thumb_func_start sub_080216E4
+sub_080216E4: @ 0x080216E4
+ push {lr}
+ ldr r2, _080216F8 @ =gUnk_080CB588
+ ldrb r1, [r0, #0xc]
+ lsls r1, r1, #2
+ adds r1, r1, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {pc}
+ .align 2, 0
+_080216F8: .4byte gUnk_080CB588
+
+ thumb_func_start sub_080216FC
+sub_080216FC: @ 0x080216FC
+ push {lr}
+ adds r2, r0, #0
+ adds r0, #0x41
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0802171A
+ adds r0, r2, #0
+ movs r1, #3
+ movs r2, #0x80
+ bl CreateFx
+ bl sub_0805E780
+_0802171A:
+ pop {pc}
+
+ thumb_func_start nullsub_7
+nullsub_7: @ 0x0802171C
+ bx lr
+ .align 2, 0
+
+ thumb_func_start sub_08021720
+sub_08021720: @ 0x08021720
+ movs r3, #1
+ movs r1, #1
+ strb r1, [r0, #0xc]
+ ldrb r2, [r0, #0x18]
+ subs r1, #5
+ ands r1, r2
+ orrs r1, r3
+ strb r1, [r0, #0x18]
+ ldrb r1, [r0, #0xa]
+ strb r1, [r0, #0x1e]
+ ldrb r2, [r0, #0x19]
+ movs r1, #0x3f
+ ands r1, r2
+ movs r2, #0x40
+ orrs r1, r2
+ strb r1, [r0, #0x19]
+ adds r0, #0x29
+ ldrb r2, [r0]
+ movs r1, #8
+ rsbs r1, r1, #0
+ ands r1, r2
+ movs r2, #3
+ orrs r1, r2
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start nullsub_08
+nullsub_08: @ 0x08021754
+ bx lr
+ .align 2, 0
+
+ thumb_func_start sub_08021758
+sub_08021758: @ 0x08021758
+ push {lr}
+ ldr r1, _08021764 @ =gUnk_080CB590
+ bl sub_0800129E
+ pop {pc}
+ .align 2, 0
+_08021764: .4byte gUnk_080CB590
+
+ thumb_func_start sub_08021768
+sub_08021768: @ 0x08021768
+ push {lr}
+ ldr r2, _0802177C @ =gUnk_080CB5A8
+ ldrb r1, [r0, #0xc]
+ lsls r1, r1, #2
+ adds r1, r1, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {pc}
+ .align 2, 0
+_0802177C: .4byte gUnk_080CB5A8
+
+ thumb_func_start sub_08021780
+sub_08021780: @ 0x08021780
+ push {r4, lr}
+ adds r4, r0, #0
+ adds r0, #0x41
+ ldrb r0, [r0]
+ cmp r0, #0x80
+ beq _08021792
+ cmp r0, #0x93
+ beq _080217F4
+ b _080217FA
+_08021792:
+ ldr r0, _080217A4 @ =gLinkState
+ adds r0, #0xa8
+ ldrb r0, [r0]
+ cmp r0, #0x18
+ bne _080217A8
+ adds r0, r4, #0
+ bl sub_08021768
+ b _080217FA
+ .align 2, 0
+_080217A4: .4byte gLinkState
+_080217A8:
+ movs r1, #0
+ movs r0, #5
+ strb r0, [r4, #0xc]
+ movs r0, #0xb4
+ strb r0, [r4, #0xe]
+ strb r1, [r4, #0xf]
+ ldrb r1, [r4, #0x10]
+ movs r0, #0x7f
+ ands r0, r1
+ strb r0, [r4, #0x10]
+ adds r2, r4, #0
+ adds r2, #0x29
+ ldrb r1, [r2]
+ movs r0, #8
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #3
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080217EC @ =gLinkEntity
+ adds r1, r4, #0
+ bl sub_0806FA6C
+ ldr r0, _080217F0 @ =0x0000FFFF
+ strh r0, [r4, #0x36]
+ adds r1, r4, #0
+ adds r1, #0x87
+ movs r0, #1
+ strb r0, [r1]
+ adds r0, r4, #0
+ movs r1, #6
+ bl UpdateSprite
+ b _080217FA
+ .align 2, 0
+_080217EC: .4byte gLinkEntity
+_080217F0: .4byte 0x0000FFFF
+_080217F4:
+ adds r0, r4, #0
+ bl sub_08021768
+_080217FA:
+ adds r0, r4, #0
+ adds r0, #0x45
+ ldrb r1, [r0]
+ cmp r1, #0
+ bne _08021808
+ subs r0, #3
+ strb r1, [r0]
+_08021808:
+ ldr r1, _08021814 @ =gUnk_080CB590
+ adds r0, r4, #0
+ bl sub_0804AA30
+ pop {r4, pc}
+ .align 2, 0
+_08021814: .4byte gUnk_080CB590
+
+ thumb_func_start sub_08021818
+sub_08021818: @ 0x08021818
+ push {lr}
+ adds r3, r0, #0
+ ldrb r0, [r3, #0xa]
+ cmp r0, #0
+ bne _0802182A
+ adds r0, r3, #0
+ bl sub_0804A7D4
+ b _08021844
+_0802182A:
+ ldr r2, [r3, #0x50]
+ cmp r2, #0
+ beq _0802183A
+ ldrb r0, [r2, #0xf]
+ subs r0, #1
+ movs r1, #0
+ strb r0, [r2, #0xf]
+ str r1, [r3, #0x50]
+_0802183A:
+ adds r0, r3, #0
+ movs r1, #0xf0
+ movs r2, #0
+ bl CreateDeathFx
+_08021844:
+ pop {pc}
+ .align 2, 0
+
+ thumb_func_start sub_08021848
+sub_08021848: @ 0x08021848
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_0806F520
+ adds r1, r0, #0
+ cmp r1, #0
+ beq _0802186C
+ ldr r0, _08021868 @ =gUnk_080CB5C8
+ ldrb r1, [r4, #0xd]
+ lsls r1, r1, #2
+ adds r1, r1, r0
+ ldr r1, [r1]
+ adds r0, r4, #0
+ bl _call_via_r1
+ b _0802187A
+ .align 2, 0
+_08021868: .4byte gUnk_080CB5C8
+_0802186C:
+ movs r0, #3
+ strb r0, [r4, #0xc]
+ strh r1, [r4, #0x36]
+ adds r0, r4, #0
+ movs r1, #2
+ bl UpdateSprite
+_0802187A:
+ pop {r4, pc}
+
+ thumb_func_start sub_0802187C
+sub_0802187C: @ 0x0802187C
+ movs r1, #2
+ strb r1, [r0, #0xd]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start nullsub_130
+nullsub_130: @ 0x08021884
+ bx lr
+ .align 2, 0
+
+ thumb_func_start sub_08021888
+sub_08021888: @ 0x08021888
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_0806F3E4
+ cmp r0, #0
+ beq _0802189A
+ adds r0, r4, #0
+ bl sub_08021818
+_0802189A:
+ pop {r4, pc}
+
+ thumb_func_start sub_0802189C
+sub_0802189C: @ 0x0802189C
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_0804A720
+ movs r0, #1
+ strb r0, [r4, #0xc]
+ strb r0, [r4, #0x1c]
+ adds r0, r4, #0
+ movs r1, #3
+ bl UpdateSprite
+ pop {r4, pc}
+
+ thumb_func_start sub_080218B4
+sub_080218B4: @ 0x080218B4
+ push {lr}
+ ldr r2, _080218C8 @ =gUnk_080CB5D4
+ ldrb r1, [r0, #0xb]
+ lsls r1, r1, #2
+ adds r1, r1, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {pc}
+ .align 2, 0
+_080218C8: .4byte gUnk_080CB5D4
+
+ thumb_func_start sub_080218CC
+sub_080218CC: @ 0x080218CC
+ push {r4, r5, r6, lr}
+ adds r5, r0, #0
+ ldrb r0, [r5, #0xd]
+ cmp r0, #0
+ bne _08021916
+ movs r2, #1
+ movs r0, #1
+ strb r0, [r5, #0xd]
+ ldrb r1, [r5, #0x18]
+ subs r0, #5
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r5, #0x18]
+ adds r0, r5, #0
+ movs r1, #1
+ bl sub_08049F84
+ adds r4, r0, #0
+ bl Random
+ movs r1, #0x10
+ eors r4, r1
+ ldr r2, _08021980 @ =gUnk_080CB5DC
+ movs r1, #7
+ ands r1, r0
+ adds r1, r1, r2
+ ldrb r0, [r1]
+ adds r0, r0, r4
+ movs r1, #0x1f
+ ands r0, r1
+ strb r0, [r5, #0x15]
+ movs r0, #0x80
+ lsls r0, r0, #1
+ strh r0, [r5, #0x24]
+ movs r0, #0x90
+ lsls r0, r0, #9
+ str r0, [r5, #0x20]
+_08021916:
+ adds r0, r5, #0
+ bl sub_08004274
+ adds r2, r5, #0
+ adds r2, #0x5a
+ ldrb r1, [r2]
+ movs r6, #1
+ adds r0, r6, #0
+ ands r0, r1
+ adds r4, r2, #0
+ cmp r0, #0
+ beq _08021948
+ adds r0, r5, #0
+ bl sub_080AEFE0
+ movs r1, #0xe0
+ lsls r1, r1, #5
+ adds r0, r5, #0
+ bl sub_080044EC
+ cmp r0, #0
+ bne _08021948
+ adds r0, r5, #0
+ adds r0, #0x59
+ strb r6, [r0]
+_08021948:
+ ldrb r1, [r4]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0802197C
+ movs r0, #2
+ strb r0, [r5, #0xc]
+ bl Random
+ movs r1, #0x38
+ ands r0, r1
+ adds r0, #8
+ strb r0, [r5, #0xe]
+ movs r0, #1
+ strb r0, [r5, #0xf]
+ ldrb r1, [r5, #0x10]
+ movs r0, #0x80
+ orrs r0, r1
+ strb r0, [r5, #0x10]
+ movs r0, #0xc0
+ lsls r0, r0, #1
+ strh r0, [r5, #0x24]
+ adds r0, r5, #0
+ movs r1, #0
+ bl UpdateSprite
+_0802197C:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_08021980: .4byte gUnk_080CB5DC
+
+ thumb_func_start sub_08021984
+sub_08021984: @ 0x08021984
+ push {r4, lr}
+ adds r4, r0, #0
+ ldrb r0, [r4, #0xd]
+ cmp r0, #0
+ bne _080219C2
+ movs r0, #1
+ strb r0, [r4, #0xd]
+ ldrb r1, [r4, #0x10]
+ movs r0, #0x80
+ orrs r0, r1
+ strb r0, [r4, #0x10]
+ ldrb r0, [r4, #0x18]
+ movs r1, #3
+ orrs r0, r1
+ strb r0, [r4, #0x18]
+ ldr r0, _08021A08 @ =0x0000FF80
+ strh r0, [r4, #0x36]
+ ldrb r2, [r4, #0x19]
+ movs r1, #0x3f
+ adds r0, r1, #0
+ ands r0, r2
+ movs r2, #0x40
+ orrs r0, r2
+ strb r0, [r4, #0x19]
+ ldrb r0, [r4, #0x1b]
+ ands r1, r0
+ orrs r1, r2
+ strb r1, [r4, #0x1b]
+ ldr r0, _08021A0C @ =0x0000012D
+ bl sub_08004488
+_080219C2:
+ movs r1, #0xc0
+ lsls r1, r1, #5
+ adds r0, r4, #0
+ bl sub_08003FC4
+ cmp r0, #0
+ bne _08021A04
+ movs r0, #2
+ strb r0, [r4, #0xc]
+ movs r0, #0x10
+ strb r0, [r4, #0xe]
+ movs r2, #1
+ movs r0, #1
+ strb r0, [r4, #0xf]
+ ldrb r1, [r4, #0x18]
+ subs r0, #5
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, #0x18]
+ movs r0, #0xc0
+ lsls r0, r0, #1
+ strh r0, [r4, #0x24]
+ adds r1, r4, #0
+ adds r1, #0x86
+ movs r0, #0x3c
+ strb r0, [r1]
+ adds r0, r4, #0
+ movs r1, #0
+ bl UpdateSprite
+ adds r0, r4, #0
+ bl UpdateSpriteOrderAndFlip
+_08021A04:
+ pop {r4, pc}
+ .align 2, 0
+_08021A08: .4byte 0x0000FF80
+_08021A0C: .4byte 0x0000012D
+
+ thumb_func_start sub_08021A10
+sub_08021A10: @ 0x08021A10
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_08004274
+ ldr r1, _08021A60 @ =gLinkEntity
+ adds r0, r4, #0
+ movs r2, #0x78
+ movs r3, #0x50
+ bl sub_080041A0
+ cmp r0, #0
+ beq _08021A5E
+ adds r0, r4, #0
+ bl sub_08021D00
+ cmp r0, #0
+ bne _08021A5E
+ ldrb r0, [r4, #0xe]
+ subs r0, #1
+ strb r0, [r4, #0xe]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _08021A5E
+ movs r0, #3
+ strb r0, [r4, #0xc]
+ bl Random
+ movs r1, #0x3f
+ ands r0, r1
+ adds r0, #0x1e
+ strb r0, [r4, #0xe]
+ ldrb r1, [r4, #0x15]
+ adds r0, r4, #0
+ bl sub_08021D44
+ adds r0, r4, #0
+ movs r1, #2
+ bl UpdateSprite
+_08021A5E:
+ pop {r4, pc}
+ .align 2, 0
+_08021A60: .4byte gLinkEntity
+
+ thumb_func_start sub_08021A64
+sub_08021A64: @ 0x08021A64
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ bl sub_08021D00
+ cmp r0, #0
+ bne _08021AD4
+ ldrb r0, [r4, #0xe]
+ subs r0, #1
+ strb r0, [r4, #0xe]
+ movs r5, #0xff
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _08021A96
+ movs r0, #2
+ strb r0, [r4, #0xc]
+ bl Random
+ movs r1, #0x1f
+ ands r0, r1
+ adds r0, #0x1e
+ strb r0, [r4, #0xe]
+ adds r0, r4, #0
+ movs r1, #0
+ bl UpdateSprite
+_08021A96:
+ ldrb r0, [r4, #0xf]
+ subs r0, #1
+ strb r0, [r4, #0xf]
+ ands r0, r5
+ cmp r0, #0
+ bne _08021AC8
+ movs r0, #8
+ strb r0, [r4, #0xf]
+ adds r0, r4, #0
+ movs r1, #1
+ bl sub_08049F84
+ adds r1, r0, #0
+ cmp r1, #0xff
+ bne _08021AC2
+ movs r0, #7
+ strb r0, [r4, #0xc]
+ adds r0, r4, #0
+ movs r1, #1
+ bl UpdateSprite
+ b _08021AD4
+_08021AC2:
+ adds r0, r4, #0
+ bl sub_08021D44
+_08021AC8:
+ adds r0, r4, #0
+ bl sub_080AEF88
+ adds r0, r4, #0
+ bl sub_08004274
+_08021AD4:
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start sub_08021AD8
+sub_08021AD8: @ 0x08021AD8
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_08004274
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _08021B3A
+ ldrb r0, [r4, #0xe]
+ cmp r0, #0
+ beq _08021B1E
+ movs r0, #0
+ strb r0, [r4, #0xe]
+ adds r0, r4, #0
+ movs r1, #1
+ bl sub_08049F84
+ cmp r0, #0xff
+ bne _08021B16
+ movs r0, #2
+ strb r0, [r4, #0xc]
+ movs r0, #8
+ strb r0, [r4, #0xe]
+ adds r0, r4, #0
+ movs r1, #0
+ bl UpdateSprite
+ b _08021B60
+_08021B16:
+ strb r0, [r4, #0x15]
+ movs r0, #0x7c
+ bl sub_08004488
+_08021B1E:
+ adds r0, r4, #0
+ bl sub_080AEFE0
+ movs r1, #0xc0
+ lsls r1, r1, #5
+ adds r0, r4, #0
+ bl sub_08003FC4
+ cmp r0, #0
+ bne _08021B3A
+ adds r1, r4, #0
+ adds r1, #0x59
+ movs r0, #1
+ strb r0, [r1]
+_08021B3A:
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _08021B60
+ movs r0, #2
+ strb r0, [r4, #0xc]
+ movs r0, #0x14
+ strb r0, [r4, #0xe]
+ adds r1, r4, #0
+ adds r1, #0x86
+ movs r0, #0x3c
+ strb r0, [r1]
+ adds r0, r4, #0
+ movs r1, #0
+ bl UpdateSprite
+_08021B60:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_08021B64
+sub_08021B64: @ 0x08021B64
+ push {r4, r5, r6, lr}
+ adds r4, r0, #0
+ ldr r0, _08021B88 @ =gLinkState
+ ldr r1, [r0, #0x30]
+ movs r2, #4
+ ands r1, r2
+ adds r6, r0, #0
+ cmp r1, #0
+ beq _08021B8C
+ movs r1, #0
+ movs r0, #3
+ strb r0, [r4, #0xc]
+ str r1, [r4, #0x34]
+ adds r0, r4, #0
+ movs r1, #2
+ bl UpdateSprite
+ b _08021C4E
+ .align 2, 0
+_08021B88: .4byte gLinkState
+_08021B8C:
+ movs r5, #1
+ adds r0, r6, #0
+ adds r0, #0xa8
+ ldrb r0, [r0]
+ cmp r0, #0xb
+ beq _08021BBA
+ cmp r0, #0x14
+ beq _08021BBA
+ bl sub_0807953C
+ cmp r0, #0
+ beq _08021BAE
+ ldrb r1, [r4, #0xa]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ adds r5, r0, #0
+ adds r5, #8
+_08021BAE:
+ ldrb r0, [r4, #0xe]
+ subs r5, r0, r5
+ cmp r5, #0
+ bge _08021BB8
+ movs r5, #0
+_08021BB8:
+ strb r5, [r4, #0xe]
+_08021BBA:
+ ldr r0, [r6, #0x30]
+ movs r1, #0x88
+ lsls r1, r1, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _08021BC8
+ movs r5, #0
+_08021BC8:
+ cmp r5, #0
+ bne _08021C04
+ movs r0, #6
+ strb r0, [r4, #0xc]
+ movs r0, #0x80
+ lsls r0, r0, #9
+ str r0, [r4, #0x20]
+ adds r0, r4, #0
+ adds r0, #0x87
+ strb r5, [r0]
+ ldr r2, _08021BEC @ =gLinkEntity
+ ldrb r1, [r2, #0x15]
+ adds r0, r1, #0
+ cmp r0, #0xff
+ beq _08021BF0
+ movs r0, #0x10
+ b _08021BF6
+ .align 2, 0
+_08021BEC: .4byte gLinkEntity
+_08021BF0:
+ ldrb r0, [r2, #0x14]
+ lsls r0, r0, #2
+ movs r1, #0x10
+_08021BF6:
+ eors r0, r1
+ strb r0, [r4, #0x15]
+ adds r0, r4, #0
+ movs r1, #5
+ bl UpdateSprite
+ b _08021C4E
+_08021C04:
+ ldrb r1, [r6, #0x1a]
+ movs r0, #0x80
+ orrs r0, r1
+ strb r0, [r6, #0x1a]
+ adds r1, r6, #0
+ adds r1, #0x80
+ ldrh r0, [r1]
+ subs r0, #0x50
+ strh r0, [r1]
+ adds r1, #0x2a
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ ldr r0, _08021C50 @ =gLinkEntity
+ adds r1, r4, #0
+ bl sub_0806FA6C
+ ldr r2, _08021C54 @ =gUnk_080CB5E4
+ ldrb r1, [r4, #0xf]
+ adds r0, r1, #1
+ strb r0, [r4, #0xf]
+ movs r0, #0xe
+ ands r0, r1
+ lsrs r0, r0, #1
+ adds r0, r0, r2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ ldrh r1, [r4, #0x2e]
+ adds r0, r0, r1
+ strh r0, [r4, #0x2e]
+ ldrh r0, [r4, #0x36]
+ subs r0, #1
+ strh r0, [r4, #0x36]
+ adds r0, r4, #0
+ bl sub_08004274
+_08021C4E:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_08021C50: .4byte gLinkEntity
+_08021C54: .4byte gUnk_080CB5E4
+
+ thumb_func_start sub_08021C58
+sub_08021C58: @ 0x08021C58
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ bl sub_08004274
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r5, #1
+ adds r0, r5, #0
+ ands r0, r1
+ cmp r0, #0
+ beq _08021C8A
+ adds r0, r4, #0
+ bl sub_080AEFE0
+ movs r1, #0xc0
+ lsls r1, r1, #5
+ adds r0, r4, #0
+ bl sub_08003FC4
+ cmp r0, #0
+ bne _08021C8A
+ adds r0, r4, #0
+ adds r0, #0x59
+ strb r5, [r0]
+_08021C8A:
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _08021CCC
+ movs r0, #2
+ strb r0, [r4, #0xc]
+ movs r2, #0x3c
+ strb r2, [r4, #0xe]
+ movs r0, #1
+ strb r0, [r4, #0xf]
+ ldrb r1, [r4, #0x10]
+ movs r0, #0x80
+ orrs r0, r1
+ strb r0, [r4, #0x10]
+ adds r3, r4, #0
+ adds r3, #0x29
+ ldrb r1, [r3]
+ movs r0, #8
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #4
+ orrs r0, r1
+ strb r0, [r3]
+ adds r0, r4, #0
+ adds r0, #0x86
+ strb r2, [r0]
+ adds r0, r4, #0
+ movs r1, #0
+ bl UpdateSprite
+_08021CCC:
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start sub_08021CD0
+sub_08021CD0: @ 0x08021CD0
+ push {r4, lr}
+ adds r4, r0, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ bne _08021CE6
+ adds r0, r4, #0
+ bl sub_08004274
+_08021CE6:
+ adds r0, r4, #0
+ movs r1, #1
+ bl sub_08049F84
+ cmp r0, #0xff
+ beq _08021CFE
+ movs r0, #3
+ strb r0, [r4, #0xc]
+ adds r0, r4, #0
+ movs r1, #2
+ bl UpdateSprite
+_08021CFE:
+ pop {r4, pc}
+
+ thumb_func_start sub_08021D00
+sub_08021D00: @ 0x08021D00
+ push {r4, lr}
+ adds r4, r0, #0
+ adds r1, r4, #0
+ adds r1, #0x86
+ ldrb r0, [r1]
+ cmp r0, #0
+ beq _08021D16
+ subs r0, #1
+ strb r0, [r1]
+ movs r0, #0
+ b _08021D40
+_08021D16:
+ adds r0, r4, #0
+ movs r1, #1
+ movs r2, #0x10
+ bl sub_08049F64
+ cmp r0, #0
+ bne _08021D28
+ movs r0, #0
+ b _08021D40
+_08021D28:
+ movs r0, #4
+ strb r0, [r4, #0xc]
+ movs r0, #1
+ strb r0, [r4, #0xe]
+ movs r0, #0xc0
+ lsls r0, r0, #9
+ str r0, [r4, #0x20]
+ adds r0, r4, #0
+ movs r1, #4
+ bl UpdateSprite
+ movs r0, #1
+_08021D40:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_08021D44
+sub_08021D44: @ 0x08021D44
+ push {lr}
+ adds r2, r0, #0
+ adds r1, #4
+ movs r0, #0x18
+ ands r1, r0
+ strb r1, [r2, #0x15]
+ movs r0, #8
+ ands r1, r0
+ cmp r1, #0
+ beq _08021D5E
+ movs r0, #0xc0
+ lsls r0, r0, #1
+ b _08021D60
+_08021D5E:
+ movs r0, #0xc0
+_08021D60:
+ strh r0, [r2, #0x24]
+ pop {pc}
+
+ thumb_func_start sub_08021D64
+sub_08021D64: @ 0x08021D64
+ push {r4, r5, lr}
+ adds r5, r0, #0
+ ldr r4, _08021D7C @ =gUnk_080CB69C
+ bl sub_0800279C
+ lsls r0, r0, #2
+ adds r0, r0, r4
+ ldr r1, [r0]
+ adds r0, r5, #0
+ bl _call_via_r1
+ pop {r4, r5, pc}
+ .align 2, 0
+_08021D7C: .4byte gUnk_080CB69C
+
+ thumb_func_start sub_08021D80
+sub_08021D80: @ 0x08021D80
+ push {lr}
+ ldr r2, _08021D94 @ =gUnk_080CB6B4
+ ldrb r1, [r0, #0xc]
+ lsls r1, r1, #2
+ adds r1, r1, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {pc}
+ .align 2, 0
+_08021D94: .4byte gUnk_080CB6B4
+
+ thumb_func_start sub_08021D98
+sub_08021D98: @ 0x08021D98
+ push {lr}
+ ldr r1, _08021DA4 @ =gUnk_080CB69C
+ bl sub_0804AA30
+ pop {pc}
+ .align 2, 0
+_08021DA4: .4byte gUnk_080CB69C
+
+ thumb_func_start sub_08021DA8
+sub_08021DA8: @ 0x08021DA8
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_0806F520
+ cmp r0, #0
+ beq _08021DC4
+ ldr r0, _08021DC8 @ =gUnk_080CB6C4
+ ldrb r1, [r4, #0xd]
+ lsls r1, r1, #2
+ adds r1, r1, r0
+ ldr r1, [r1]
+ adds r0, r4, #0
+ bl _call_via_r1
+_08021DC4:
+ pop {r4, pc}
+ .align 2, 0
+_08021DC8: .4byte gUnk_080CB6C4
+
+ thumb_func_start sub_08021DCC
+sub_08021DCC: @ 0x08021DCC
+ movs r1, #2
+ strb r1, [r0, #0xd]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start sub_08021DD4
+sub_08021DD4: @ 0x08021DD4
+ push {lr}
+ bl sub_0806F4E8
+ pop {pc}
+
+ thumb_func_start sub_08021DDC
+sub_08021DDC: @ 0x08021DDC
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_0806F3E4
+ cmp r0, #0
+ beq _08021DEE
+ adds r0, r4, #0
+ bl sub_0804A7D4
+_08021DEE:
+ pop {r4, pc}
+
+ thumb_func_start sub_08021DF0
+sub_08021DF0: @ 0x08021DF0
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_0804A720
+ ldrb r0, [r4, #0xa]
+ cmp r0, #0
+ beq _08021E14
+ adds r2, r4, #0
+ adds r2, #0x29
+ ldrb r1, [r2]
+ movs r0, #0x39
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #8
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _08021E48 @ =0x0000FFF0
+ strh r0, [r4, #0x36]
+_08021E14:
+ bl Random
+ movs r1, #0x1f
+ ands r0, r1
+ strb r0, [r4, #0x15]
+ movs r0, #1
+ strb r0, [r4, #0x1c]
+ adds r2, r4, #0
+ adds r2, #0x29
+ ldrb r1, [r2]
+ subs r0, #9
+ ands r0, r1
+ movs r1, #3
+ orrs r0, r1
+ strb r0, [r2]
+ adds r1, r4, #0
+ adds r1, #0x38
+ movs r0, #3
+ strb r0, [r1]
+ adds r0, r4, #0
+ bl UpdateSpriteOrderAndFlip
+ adds r0, r4, #0
+ bl sub_08021EF0
+ pop {r4, pc}
+ .align 2, 0
+_08021E48: .4byte 0x0000FFF0
+
+ thumb_func_start sub_08021E4C
+sub_08021E4C: @ 0x08021E4C
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ adds r1, r4, #0
+ adds r1, #0x78
+ ldrh r0, [r1]
+ cmp r0, #0
+ beq _08021E5E
+ subs r0, #1
+ strh r0, [r1]
+_08021E5E:
+ adds r1, r4, #0
+ adds r1, #0x7a
+ ldrh r0, [r1]
+ cmp r0, #0
+ beq _08021E6C
+ subs r0, #1
+ strh r0, [r1]
+_08021E6C:
+ adds r0, r4, #0
+ bl sub_08004274
+ adds r2, r4, #0
+ adds r2, #0x5a
+ ldrb r1, [r2]
+ movs r0, #0x80
+ ands r0, r1
+ adds r5, r2, #0
+ cmp r0, #0
+ beq _08021E8A
+ adds r0, r4, #0
+ bl sub_08021F24
+ b _08021E90
+_08021E8A:
+ adds r0, r4, #0
+ bl sub_080AEFB4
+_08021E90:
+ ldr r1, _08021EA0 @ =gUnk_080CB6D0
+ ldrb r0, [r5]
+ adds r0, r0, r1
+ ldrb r1, [r0]
+ adds r0, r4, #0
+ adds r0, #0x63
+ strb r1, [r0]
+ pop {r4, r5, pc}
+ .align 2, 0
+_08021EA0: .4byte gUnk_080CB6D0
+
+ thumb_func_start sub_08021EA4
+sub_08021EA4: @ 0x08021EA4
+ push {lr}
+ adds r1, r0, #0
+ ldrb r0, [r1, #0xe]
+ subs r0, #1
+ strb r0, [r1, #0xe]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _08021EBA
+ adds r0, r1, #0
+ bl sub_08021EF0
+_08021EBA:
+ pop {pc}
+
+ thumb_func_start sub_08021EBC
+sub_08021EBC: @ 0x08021EBC
+ push {r4, lr}
+ adds r4, r0, #0
+ ldrb r0, [r4, #0xe]
+ cmp r0, #0
+ beq _08021ECC
+ subs r0, #1
+ strb r0, [r4, #0xe]
+ b _08021EE8
+_08021ECC:
+ ldr r0, _08021EEC @ =gLinkEntity
+ movs r2, #0x2e
+ ldrsh r1, [r0, r2]
+ movs r3, #0x32
+ ldrsh r2, [r0, r3]
+ adds r0, r4, #0
+ movs r3, #0x70
+ bl sub_0806FCB8
+ cmp r0, #0
+ beq _08021EE8
+ adds r0, r4, #0
+ bl sub_08021EF0
+_08021EE8:
+ pop {r4, pc}
+ .align 2, 0
+_08021EEC: .4byte gLinkEntity
+
+ thumb_func_start sub_08021EF0
+sub_08021EF0: @ 0x08021EF0
+ push {r4, lr}
+ adds r4, r0, #0
+ movs r0, #1
+ strb r0, [r4, #0xc]
+ bl Random
+ ldr r2, _08021F20 @ =gUnk_080CB6D6
+ movs r1, #0xf
+ ands r1, r0
+ lsls r1, r1, #1
+ adds r1, r1, r2
+ ldrh r1, [r1]
+ adds r0, r4, #0
+ adds r0, #0x78
+ strh r1, [r0]
+ adds r1, r4, #0
+ adds r1, #0x7a
+ movs r0, #0x3c
+ strh r0, [r1]
+ adds r0, r4, #0
+ movs r1, #0
+ bl UpdateSprite
+ pop {r4, pc}
+ .align 2, 0
+_08021F20: .4byte gUnk_080CB6D6
+
+ thumb_func_start sub_08021F24
+sub_08021F24: @ 0x08021F24
+ push {r4, lr}
+ adds r4, r0, #0
+ adds r0, #0x78
+ ldrh r0, [r0]
+ cmp r0, #0
+ bne _08021F48
+ movs r0, #2
+ strb r0, [r4, #0xc]
+ bl Random
+ ldr r2, _08021F44 @ =gUnk_080CB6F6
+ movs r1, #0xf
+ ands r1, r0
+ adds r1, r1, r2
+ ldrb r0, [r1]
+ b _08021F6E
+ .align 2, 0
+_08021F44: .4byte gUnk_080CB6F6
+_08021F48:
+ adds r0, r4, #0
+ adds r0, #0x7a
+ ldrh r0, [r0]
+ cmp r0, #0
+ bne _08021F80
+ ldr r0, _08021F7C @ =gLinkEntity
+ movs r2, #0x2e
+ ldrsh r1, [r0, r2]
+ movs r3, #0x32
+ ldrsh r2, [r0, r3]
+ adds r0, r4, #0
+ movs r3, #0x70
+ bl sub_0806FCB8
+ cmp r0, #0
+ bne _08021F80
+ movs r0, #3
+ strb r0, [r4, #0xc]
+ movs r0, #0x1e
+_08021F6E:
+ strb r0, [r4, #0xe]
+ adds r0, r4, #0
+ movs r1, #1
+ bl UpdateSprite
+ b _08021FA4
+ .align 2, 0
+_08021F7C: .4byte gLinkEntity
+_08021F80:
+ adds r0, r4, #0
+ bl sub_08049FA0
+ cmp r0, #0
+ beq _08021F94
+ bl Random
+ movs r1, #0x1f
+ ands r0, r1
+ b _08021F9A
+_08021F94:
+ adds r0, r4, #0
+ bl sub_08049EE4
+_08021F9A:
+ strb r0, [r4, #0x15]
+ adds r0, r4, #0
+ movs r1, #0
+ bl UpdateSprite
+_08021FA4:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_08021FA8
+sub_08021FA8: @ 0x08021FA8
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ ldr r5, _08021FD4 @ =gUnk_080CB734
+ bl sub_0800279C
+ lsls r0, r0, #2
+ adds r0, r0, r5
+ ldr r1, [r0]
+ adds r0, r4, #0
+ bl _call_via_r1
+ ldr r1, _08021FD8 @ =gUnk_080CB8A4
+ ldrb r0, [r4, #0xb]
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldrb r1, [r4, #0x1e]
+ ldr r0, [r0]
+ lsls r1, r1, #2
+ adds r1, r1, r0
+ ldr r0, [r1]
+ str r0, [r4, #0x48]
+ pop {r4, r5, pc}
+ .align 2, 0
+_08021FD4: .4byte gUnk_080CB734
+_08021FD8: .4byte gUnk_080CB8A4
+
+ thumb_func_start sub_08021FDC
+sub_08021FDC: @ 0x08021FDC
+ push {lr}
+ ldr r2, _08021FF0 @ =gUnk_080CB74C
+ ldrb r1, [r0, #0xc]
+ lsls r1, r1, #2
+ adds r1, r1, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {pc}
+ .align 2, 0
+_08021FF0: .4byte gUnk_080CB74C
+
+ thumb_func_start sub_08021FF4
+sub_08021FF4: @ 0x08021FF4
+ push {lr}
+ ldr r1, _08022000 @ =gUnk_080CB734
+ bl sub_0804AA30
+ pop {pc}
+ .align 2, 0
+_08022000: .4byte gUnk_080CB734
+
+ thumb_func_start sub_08022004
+sub_08022004: @ 0x08022004
+ push {r4, lr}
+ adds r4, r0, #0
+ adds r0, #0x7c
+ ldrh r0, [r0]
+ adds r1, r4, #0
+ adds r1, #0x7e
+ ldrh r1, [r1]
+ adds r2, r4, #0
+ adds r2, #0x38
+ ldrb r2, [r2]
+ bl UpdateCollisionLayer
+ adds r0, r4, #0
+ movs r1, #5
+ movs r2, #0
+ bl CreateFx
+ adds r0, r4, #0
+ bl sub_08049CF4
+ bl sub_0805E780
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_08022034
+sub_08022034: @ 0x08022034
+ push {r4, lr}
+ adds r4, r0, #0
+ movs r0, #1
+ strb r0, [r4, #0xc]
+ ldrb r1, [r4, #0xa]
+ movs r0, #3
+ ands r0, r1
+ strb r0, [r4, #0xb]
+ adds r2, r4, #0
+ adds r2, #0x29
+ ldrb r1, [r2]
+ movs r0, #8
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #5
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r2, _08022098 @ =gUnk_080CB764
+ ldrb r0, [r4, #0xb]
+ lsls r0, r0, #1
+ adds r0, r0, r2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ ldrh r1, [r4, #0x2e]
+ adds r0, r0, r1
+ adds r1, r4, #0
+ adds r1, #0x78
+ strh r0, [r1]
+ ldrb r0, [r4, #0xb]
+ lsls r0, r0, #1
+ adds r0, #1
+ adds r0, r0, r2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ ldrh r1, [r4, #0x32]
+ adds r0, r0, r1
+ adds r1, r4, #0
+ adds r1, #0x7a
+ strh r0, [r1]
+ ldrb r1, [r4, #0xb]
+ adds r0, r4, #0
+ bl UpdateSprite
+ adds r0, r4, #0
+ bl sub_080221C0
+ pop {r4, pc}
+ .align 2, 0
+_08022098: .4byte gUnk_080CB764
+
+ thumb_func_start sub_0802209C
+sub_0802209C: @ 0x0802209C
+ push {r4, lr}
+ adds r4, r0, #0
+ ldrb r0, [r4, #0xe]
+ cmp r0, #0
+ bne _080220D2
+ adds r0, r4, #0
+ adds r0, #0x78
+ ldrh r0, [r0]
+ adds r1, r4, #0
+ adds r1, #0x7a
+ ldrh r1, [r1]
+ movs r2, #0x10
+ movs r3, #0x10
+ bl sub_0806FBFC
+ cmp r0, #0
+ beq _080220D6
+ movs r0, #2
+ strb r0, [r4, #0xc]
+ movs r0, #0x12
+ strb r0, [r4, #0xe]
+ ldrb r1, [r4, #0xb]
+ adds r1, #4
+ adds r0, r4, #0
+ bl UpdateSprite
+ b _080220D6
+_080220D2:
+ subs r0, #1
+ strb r0, [r4, #0xe]
+_080220D6:
+ pop {r4, pc}
+
+ thumb_func_start sub_080220D8
+sub_080220D8: @ 0x080220D8
+ push {lr}
+ adds r1, r0, #0
+ ldrb r0, [r1, #0xe]
+ subs r0, #1
+ strb r0, [r1, #0xe]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _080220EC
+ movs r0, #3
+ strb r0, [r1, #0xc]
+_080220EC:
+ pop {pc}
+ .align 2, 0
+
+ thumb_func_start sub_080220F0
+sub_080220F0: @ 0x080220F0
+ push {r4, r5, r6, lr}
+ adds r5, r0, #0
+ bl sub_08004274
+ adds r0, r5, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _08022160
+ movs r1, #0
+ movs r0, #4
+ strb r0, [r5, #0xc]
+ movs r0, #0x78
+ strb r0, [r5, #0xe]
+ adds r0, r5, #0
+ adds r0, #0x44
+ strb r1, [r0]
+ ldrb r1, [r5, #0xb]
+ lsls r0, r1, #1
+ adds r0, r0, r1
+ lsls r0, r0, #2
+ ldr r1, _0802215C @ =gUnk_080CB76C
+ adds r4, r0, r1
+ movs r6, #0
+_08022124:
+ adds r0, r5, #0
+ movs r1, #0x11
+ movs r2, #0
+ bl CreateFx
+ adds r1, r0, #0
+ cmp r1, #0
+ beq _08022148
+ movs r0, #0
+ ldrsb r0, [r4, r0]
+ ldrh r2, [r1, #0x2e]
+ adds r0, r0, r2
+ strh r0, [r1, #0x2e]
+ movs r0, #1
+ ldrsb r0, [r4, r0]
+ ldrh r2, [r1, #0x32]
+ adds r0, r0, r2
+ strh r0, [r1, #0x32]
+_08022148:
+ adds r6, #1
+ adds r4, #2
+ cmp r6, #5
+ bls _08022124
+ movs r0, #0x82
+ lsls r0, r0, #1
+ bl sub_08004488
+ b _08022170
+ .align 2, 0
+_0802215C: .4byte gUnk_080CB76C
+_08022160:
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _08022170
+ adds r1, r5, #0
+ adds r1, #0x44
+ movs r0, #4
+ strb r0, [r1]
+_08022170:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start sub_08022174
+sub_08022174: @ 0x08022174
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_0800445C
+ ldrb r0, [r4, #0xe]
+ subs r0, #1
+ strb r0, [r4, #0xe]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _08022196
+ movs r0, #5
+ strb r0, [r4, #0xc]
+ ldrb r1, [r4, #0xb]
+ adds r1, #8
+ adds r0, r4, #0
+ bl UpdateSprite
+_08022196:
+ pop {r4, pc}
+
+ thumb_func_start sub_08022198
+sub_08022198: @ 0x08022198
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_0800445C
+ adds r0, r4, #0
+ bl sub_08004274
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _080221BC
+ movs r0, #1
+ strb r0, [r4, #0xc]
+ movs r0, #0x5a
+ strb r0, [r4, #0xe]
+_080221BC:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_080221C0
+sub_080221C0: @ 0x080221C0
+ push {r4, r5, r6, lr}
+ adds r6, r0, #0
+ movs r0, #0x2e
+ ldrsh r4, [r6, r0]
+ ldr r1, _08022220 @ =gRoomControls
+ ldrh r0, [r1, #6]
+ subs r4, r4, r0
+ asrs r4, r4, #4
+ movs r2, #0x3f
+ ands r4, r2
+ movs r3, #0x32
+ ldrsh r0, [r6, r3]
+ ldrh r1, [r1, #8]
+ subs r0, r0, r1
+ asrs r0, r0, #4
+ ands r0, r2
+ lsls r0, r0, #6
+ orrs r4, r0
+ ldr r1, _08022224 @ =gUnk_080B4488
+ ldrb r0, [r6, #0xb]
+ lsls r0, r0, #1
+ adds r0, r0, r1
+ movs r1, #0
+ ldrsh r0, [r0, r1]
+ adds r4, r4, r0
+ adds r0, r6, #0
+ adds r0, #0x7e
+ strh r4, [r0]
+ adds r5, r6, #0
+ adds r5, #0x38
+ ldrb r1, [r5]
+ adds r0, r4, #0
+ bl sub_080001DA
+ adds r1, r6, #0
+ adds r1, #0x7c
+ strh r0, [r1]
+ ldr r1, _08022228 @ =gUnk_080CB79C
+ ldrb r0, [r6, #0xb]
+ lsls r0, r0, #1
+ adds r0, r0, r1
+ ldrh r0, [r0]
+ ldrb r2, [r5]
+ adds r1, r4, #0
+ bl UpdateCollisionLayer
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_08022220: .4byte gRoomControls
+_08022224: .4byte gUnk_080B4488
+_08022228: .4byte gUnk_080CB79C
+
+ thumb_func_start sub_0802222C
+sub_0802222C: @ 0x0802222C
+ push {lr}
+ ldr r1, _08022238 @ =gUnk_080CB948
+ bl sub_0800129E
+ pop {pc}
+ .align 2, 0
+_08022238: .4byte gUnk_080CB948
+
+ thumb_func_start sub_0802223C
+sub_0802223C: @ 0x0802223C
+ push {lr}
+ ldr r2, _08022250 @ =gUnk_080CB960
+ ldrb r1, [r0, #0xc]
+ lsls r1, r1, #2
+ adds r1, r1, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {pc}
+ .align 2, 0
+_08022250: .4byte gUnk_080CB960
+
+ thumb_func_start sub_08022254
+sub_08022254: @ 0x08022254
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ adds r0, #0x45
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _08022344
+ adds r0, r4, #0
+ adds r0, #0x41
+ ldrb r1, [r0]
+ movs r0, #0x7f
+ ands r0, r1
+ subs r0, #4
+ cmp r0, #0x18
+ bhi _08022356
+ lsls r0, r0, #2
+ ldr r1, _0802227C @ =_08022280
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0802227C: .4byte _08022280
+_08022280: @ jump table
+ .4byte _080222E4 @ case 0
+ .4byte _080222E4 @ case 1
+ .4byte _080222E4 @ case 2
+ .4byte _08022356 @ case 3
+ .4byte _080222E4 @ case 4
+ .4byte _080222E4 @ case 5
+ .4byte _080222E4 @ case 6
+ .4byte _080222E4 @ case 7
+ .4byte _080222E4 @ case 8
+ .4byte _080222E4 @ case 9
+ .4byte _08022356 @ case 10
+ .4byte _08022356 @ case 11
+ .4byte _080222E4 @ case 12
+ .4byte _080222E4 @ case 13
+ .4byte _080222E4 @ case 14
+ .4byte _08022356 @ case 15
+ .4byte _08022356 @ case 16
+ .4byte _08022356 @ case 17
+ .4byte _080222F2 @ case 18
+ .4byte _08022356 @ case 19
+ .4byte _080222E4 @ case 20
+ .4byte _080222E4 @ case 21
+ .4byte _080222E4 @ case 22
+ .4byte _08022356 @ case 23
+ .4byte _080222F2 @ case 24
+_080222E4:
+ ldr r0, _08022340 @ =gLinkState
+ adds r0, #0xac
+ ldrh r1, [r0]
+ movs r0, #8
+ ands r0, r1
+ cmp r0, #0
+ beq _08022356
+_080222F2:
+ adds r0, r4, #0
+ movs r1, #4
+ movs r2, #0
+ bl CreateFx
+ movs r0, #1
+ movs r1, #1
+ bl CreateEnemy
+ adds r5, r0, #0
+ cmp r5, #0
+ beq _08022356
+ movs r0, #1
+ strb r0, [r5, #0xb]
+ adds r1, r5, #0
+ adds r1, #0x3d
+ movs r0, #0xf8
+ strb r0, [r1]
+ adds r0, r4, #0
+ adds r1, r5, #0
+ bl sub_0804A4E4
+ movs r0, #2
+ strb r0, [r4, #0xc]
+ ldrb r1, [r4, #0x10]
+ movs r0, #0x7f
+ ands r0, r1
+ strb r0, [r4, #0x10]
+ ldrb r1, [r4, #0x18]
+ movs r0, #4
+ rsbs r0, r0, #0
+ ands r0, r1
+ strb r0, [r4, #0x18]
+ adds r0, r4, #0
+ adds r0, #0x3e
+ ldrb r0, [r0]
+ strb r0, [r4, #0x15]
+ str r5, [r4, #0x54]
+ b _08022356
+ .align 2, 0
+_08022340: .4byte gLinkState
+_08022344:
+ adds r0, r4, #0
+ adds r0, #0x3f
+ ldrb r0, [r0]
+ cmp r0, #0x94
+ beq _08022356
+ adds r0, r4, #0
+ movs r1, #2
+ bl UpdateSprite
+_08022356:
+ ldr r1, _08022360 @ =gUnk_080CB948
+ adds r0, r4, #0
+ bl sub_0804AA30
+ pop {r4, r5, pc}
+ .align 2, 0
+_08022360: .4byte gUnk_080CB948
+
+ thumb_func_start nullsub_131
+nullsub_131: @ 0x08022364
+ bx lr
+ .align 2, 0
+
+ thumb_func_start sub_08022368
+sub_08022368: @ 0x08022368
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_0804A720
+ movs r0, #1
+ strb r0, [r4, #0xc]
+ bl Random
+ strb r0, [r4, #0xe]
+ adds r0, r4, #0
+ movs r1, #1
+ bl sub_08049F84
+ strb r0, [r4, #0x15]
+ adds r0, r4, #0
+ movs r1, #0
+ bl UpdateSprite
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_08022390
+sub_08022390: @ 0x08022390
+ push {r4, lr}
+ adds r4, r0, #0
+ movs r1, #1
+ bl sub_08049FDC
+ cmp r0, #0
+ beq _080223D4
+ ldrb r1, [r4, #0xe]
+ adds r0, r1, #1
+ strb r0, [r4, #0xe]
+ movs r0, #0xf
+ ands r0, r1
+ cmp r0, #0
+ bne _080223C0
+ adds r0, r4, #0
+ movs r1, #1
+ bl sub_08049F84
+ strb r0, [r4, #0x15]
+ bl Random
+ movs r1, #4
+ ands r0, r1
+ strb r0, [r4, #0xf]
+_080223C0:
+ ldrb r0, [r4, #0xf]
+ cmp r0, #0
+ bne _080223CE
+ adds r0, r4, #0
+ bl sub_080AEF88
+ b _080223DA
+_080223CE:
+ subs r0, #1
+ strb r0, [r4, #0xf]
+ b _080223DA
+_080223D4:
+ bl Random
+ strb r0, [r4, #0xe]
+_080223DA:
+ adds r0, r4, #0
+ bl sub_08004274
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_080223E4
+sub_080223E4: @ 0x080223E4
+ push {lr}
+ adds r3, r0, #0
+ ldr r2, [r3, #0x54]
+ cmp r2, #0
+ beq _0802240A
+ adds r1, r2, #0
+ adds r1, #0x41
+ movs r0, #0x94
+ strb r0, [r1]
+ subs r1, #4
+ movs r0, #0x10
+ strb r0, [r1]
+ adds r1, #5
+ movs r0, #0xc
+ strb r0, [r1]
+ ldrb r1, [r3, #0x15]
+ adds r0, r2, #0
+ adds r0, #0x3e
+ strb r1, [r0]
+_0802240A:
+ adds r0, r3, #0
+ bl sub_0805E7BC
+ pop {pc}
+ .align 2, 0
+
+ thumb_func_start sub_08022414
+sub_08022414: @ 0x08022414
+ push {r4, lr}
+ adds r4, r0, #0
+ ldr r1, _08022430 @ =gUnk_080CBA28
+ bl sub_0800129E
+ movs r3, #0x10
+ rsbs r3, r3, #0
+ adds r0, r4, #0
+ movs r1, #0
+ movs r2, #1
+ bl sub_0804A9AC
+ pop {r4, pc}
+ .align 2, 0
+_08022430: .4byte gUnk_080CBA28
+
+ thumb_func_start sub_08022434
+sub_08022434: @ 0x08022434
+ push {lr}
+ ldr r2, _08022448 @ =gUnk_080CBA40
+ ldrb r1, [r0, #0xc]
+ lsls r1, r1, #2
+ adds r1, r1, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {pc}
+ .align 2, 0
+_08022448: .4byte gUnk_080CBA40
+
+ thumb_func_start sub_0802244C
+sub_0802244C: @ 0x0802244C
+ push {r4, r5, r6, r7, lr}
+ adds r4, r0, #0
+ adds r5, r4, #0
+ adds r5, #0x45
+ ldrb r0, [r5]
+ cmp r0, #0
+ bne _0802245C
+ b _08022582
+_0802245C:
+ adds r0, r4, #0
+ adds r0, #0x3f
+ ldrb r1, [r0]
+ adds r6, r0, #0
+ cmp r1, #0x65
+ bne _08022522
+ adds r0, #2
+ ldrb r1, [r0]
+ movs r0, #0x7f
+ ands r0, r1
+ subs r0, #2
+ cmp r0, #0x18
+ bhi _08022540
+ lsls r0, r0, #2
+ ldr r1, _08022480 @ =_08022484
+ adds r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08022480: .4byte _08022484
+_08022484: @ jump table
+ .4byte _080224E8 @ case 0
+ .4byte _080224E8 @ case 1
+ .4byte _08022540 @ case 2
+ .4byte _08022540 @ case 3
+ .4byte _08022540 @ case 4
+ .4byte _08022540 @ case 5
+ .4byte _08022508 @ case 6
+ .4byte _08022508 @ case 7
+ .4byte _08022508 @ case 8
+ .4byte _08022508 @ case 9
+ .4byte _08022508 @ case 10
+ .4byte _08022540 @ case 11
+ .4byte _08022540 @ case 12
+ .4byte _08022540 @ case 13
+ .4byte _08022540 @ case 14
+ .4byte _08022540 @ case 15
+ .4byte _08022540 @ case 16
+ .4byte _08022540 @ case 17
+ .4byte _08022540 @ case 18
+ .4byte _08022540 @ case 19
+ .4byte _08022508 @ case 20
+ .4byte _08022540 @ case 21
+ .4byte _08022508 @ case 22
+ .4byte _08022508 @ case 23
+ .4byte _08022508 @ case 24
+_080224E8:
+ movs r0, #2
+ strb r0, [r4, #0xc]
+ movs r0, #0x3c
+ strb r0, [r4, #0xf]
+ movs r0, #0x5c
+ strb r0, [r6]
+ ldr r0, _08022504 @ =gUnk_080FD468
+ str r0, [r4, #0x48]
+ adds r0, r4, #0
+ movs r1, #0
+ bl UpdateSprite
+ b _08022540
+ .align 2, 0
+_08022504: .4byte gUnk_080FD468
+_08022508:
+ adds r0, r4, #0
+ movs r1, #0x1c
+ bl sub_0804A9FC
+ movs r0, #5
+ strb r0, [r4, #0xc]
+ movs r0, #0x5c
+ strb r0, [r6]
+ adds r0, r4, #0
+ movs r1, #1
+ bl UpdateSprite
+ b _08022540
+_08022522:
+ adds r0, r4, #0
+ adds r0, #0x41
+ ldrb r0, [r0]
+ cmp r0, #0x94
+ bne _08022540
+ adds r0, r4, #0
+ movs r1, #0x1c
+ bl sub_0804A9FC
+ movs r0, #5
+ strb r0, [r4, #0xc]
+ adds r0, r4, #0
+ movs r1, #1
+ bl UpdateSprite
+_08022540:
+ adds r0, r4, #0
+ adds r0, #0x80
+ adds r1, r4, #0
+ adds r1, #0x45
+ ldrb r2, [r0]
+ adds r5, r1, #0
+ adds r7, r0, #0
+ ldrb r0, [r5]
+ cmp r2, r0
+ beq _08022566
+ movs r0, #5
+ strb r0, [r4, #0xc]
+ movs r0, #0x5c
+ strb r0, [r6]
+ adds r0, r4, #0
+ movs r1, #1
+ bl UpdateSprite
+ b _0802258E
+_08022566:
+ ldrb r0, [r4, #0xc]
+ cmp r0, #3
+ bne _0802258E
+ movs r0, #4
+ strb r0, [r4, #0xc]
+ adds r0, r4, #0
+ movs r1, #3
+ bl UpdateSprite
+ movs r0, #0xca
+ lsls r0, r0, #1
+ bl sub_08004488
+ b _0802258E
+_08022582:
+ adds r0, r4, #0
+ movs r1, #1
+ bl UpdateSprite
+ adds r7, r4, #0
+ adds r7, #0x80
+_0802258E:
+ ldrb r0, [r5]
+ strb r0, [r7]
+ ldr r1, _0802259C @ =gUnk_080CBA28
+ adds r0, r4, #0
+ bl sub_0804AA30
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0802259C: .4byte gUnk_080CBA28
+
+ thumb_func_start sub_080225A0
+sub_080225A0: @ 0x080225A0
+ push {r4, lr}
+ adds r4, r0, #0
+ adds r0, #0x58
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _080225B2
+ adds r0, r4, #0
+ bl sub_08004274
+_080225B2:
+ adds r0, r4, #0
+ bl sub_08001318
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_080225BC
+sub_080225BC: @ 0x080225BC
+ push {r4, lr}
+ adds r4, r0, #0
+ movs r1, #0xc0
+ lsls r1, r1, #5
+ bl sub_08003FC4
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _080225DE
+ adds r0, r4, #0
+ bl sub_0804A7D4
+ b _080225E4
+_080225DE:
+ adds r0, r4, #0
+ bl sub_08004274
+_080225E4:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start nullsub_9
+nullsub_9: @ 0x080225E8
+ bx lr
+ .align 2, 0
+
+ thumb_func_start sub_080225EC
+sub_080225EC: @ 0x080225EC
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_0804A720
+ adds r0, r4, #0
+ adds r0, #0x45
+ ldrb r1, [r0]
+ adds r0, #0x3b
+ strb r1, [r0]
+ adds r1, r4, #0
+ adds r1, #0x81
+ movs r0, #0x5a
+ strb r0, [r1]
+ ldrb r0, [r4, #0xe]
+ cmp r0, #0
+ bne _0802261A
+ movs r0, #2
+ strb r0, [r4, #0xc]
+ adds r0, r4, #0
+ movs r1, #0
+ bl UpdateSprite
+ b _0802264C
+_0802261A:
+ movs r0, #1
+ strb r0, [r4, #0xc]
+ movs r0, #0x3c
+ strb r0, [r4, #0xf]
+ ldrb r0, [r4, #0x18]
+ movs r1, #3
+ orrs r0, r1
+ strb r0, [r4, #0x18]
+ ldrb r2, [r4, #0x19]
+ movs r1, #0x3f
+ adds r0, r1, #0
+ ands r0, r2
+ movs r2, #0x40
+ orrs r0, r2
+ strb r0, [r4, #0x19]
+ ldrb r0, [r4, #0x1b]
+ ands r1, r0
+ orrs r1, r2
+ strb r1, [r4, #0x1b]
+ ldr r0, _08022650 @ =0x0000FF80
+ strh r0, [r4, #0x36]
+ adds r0, r4, #0
+ movs r1, #6
+ bl UpdateSprite
+_0802264C:
+ pop {r4, pc}
+ .align 2, 0
+_08022650: .4byte 0x0000FF80
+
+ thumb_func_start sub_08022654
+sub_08022654: @ 0x08022654
+ push {r4, lr}
+ adds r4, r0, #0
+ ldrb r0, [r4, #0xd]
+ cmp r0, #1
+ beq _0802268C
+ cmp r0, #1
+ bgt _08022668
+ cmp r0, #0
+ beq _0802266E
+ b _080226E4
+_08022668:
+ cmp r0, #2
+ beq _080226BE
+ b _080226E4
+_0802266E:
+ ldrb r0, [r4, #0xf]
+ subs r0, #1
+ strb r0, [r4, #0xf]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _080226E4
+ movs r0, #1
+ strb r0, [r4, #0xd]
+ ldr r0, _080226E8 @ =0x0000012D
+ bl PlaySFX
+ adds r0, r4, #0
+ movs r1, #0
+ bl UpdateSprite
+_0802268C:
+ movs r1, #0xc0
+ lsls r1, r1, #5
+ adds r0, r4, #0
+ bl sub_08003FC4
+ cmp r0, #0
+ bne _080226E4
+ movs r0, #2
+ strb r0, [r4, #0xd]
+ ldrb r1, [r4, #0x18]
+ subs r0, #6
+ ands r0, r1
+ movs r1, #1
+ orrs r0, r1
+ strb r0, [r4, #0x18]
+ adds r0, r4, #0
+ movs r1, #5
+ bl UpdateSprite
+ movs r0, #0x7d
+ bl sub_08004488
+ adds r0, r4, #0
+ bl UpdateSpriteOrderAndFlip
+_080226BE:
+ adds r0, r4, #0
+ bl sub_08004274
+ ldrb r0, [r4, #0xe]
+ subs r0, #1
+ strb r0, [r4, #0xe]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _080226E4
+ movs r0, #3
+ strb r0, [r4, #0xc]
+ adds r1, r4, #0
+ adds r1, #0x3f
+ movs r0, #0x65
+ strb r0, [r1]
+ adds r0, r4, #0
+ movs r1, #2
+ bl UpdateSprite
+_080226E4:
+ pop {r4, pc}
+ .align 2, 0
+_080226E8: .4byte 0x0000012D
+
+ thumb_func_start sub_080226EC
+sub_080226EC: @ 0x080226EC
+ push {r4, lr}
+ adds r4, r0, #0
+ movs r1, #1
+ bl sub_08049FDC
+ cmp r0, #0
+ beq _08022776
+ adds r0, r4, #0
+ bl sub_080228CC
+ cmp r0, #0
+ beq _0802271A
+ movs r0, #3
+ strb r0, [r4, #0xc]
+ adds r1, r4, #0
+ adds r1, #0x3f
+ movs r0, #0x65
+ strb r0, [r1]
+ adds r0, r4, #0
+ movs r1, #2
+ bl UpdateSprite
+ b _0802277C
+_0802271A:
+ adds r0, r4, #0
+ bl sub_080228F0
+ cmp r0, #0
+ beq _08022758
+ movs r0, #6
+ strb r0, [r4, #0xc]
+ movs r0, #0x90
+ lsls r0, r0, #9
+ str r0, [r4, #0x20]
+ movs r0, #0xa0
+ lsls r0, r0, #1
+ strh r0, [r4, #0x24]
+ ldr r0, _08022754 @ =gUnk_020000B0
+ ldr r1, [r0]
+ adds r0, r4, #0
+ bl sub_080045C4
+ strb r0, [r4, #0x15]
+ adds r1, r4, #0
+ adds r1, #0x3f
+ movs r0, #0x5a
+ strb r0, [r1]
+ adds r0, r4, #0
+ movs r1, #4
+ bl UpdateSprite
+ b _0802277C
+ .align 2, 0
+_08022754: .4byte gUnk_020000B0
+_08022758:
+ ldrb r1, [r4, #0xe]
+ adds r0, r1, #1
+ strb r0, [r4, #0xe]
+ movs r0, #7
+ ands r0, r1
+ cmp r0, #0
+ bne _08022770
+ adds r0, r4, #0
+ movs r1, #1
+ bl sub_08049F84
+ strb r0, [r4, #0x15]
+_08022770:
+ adds r0, r4, #0
+ bl sub_080AEF88
+_08022776:
+ adds r0, r4, #0
+ bl sub_08004274
+_0802277C:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_08022780
+sub_08022780: @ 0x08022780
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_08004274
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _080227AA
+ movs r0, #4
+ strb r0, [r4, #0xc]
+ adds r0, r4, #0
+ movs r1, #3
+ bl UpdateSprite
+ movs r0, #0xca
+ lsls r0, r0, #1
+ bl sub_08004488
+_080227AA:
+ pop {r4, pc}
+
+ thumb_func_start sub_080227AC
+sub_080227AC: @ 0x080227AC
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_08004274
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _080227CC
+ ldr r0, _080227C8 @ =gUnk_080FD470
+ b _080227CE
+ .align 2, 0
+_080227C8: .4byte gUnk_080FD470
+_080227CC:
+ ldr r0, _08022814 @ =gUnk_080FD468
+_080227CE:
+ str r0, [r4, #0x48]
+ adds r2, r4, #0
+ adds r2, #0x5a
+ ldrb r1, [r2]
+ movs r3, #2
+ adds r0, r3, #0
+ ands r0, r1
+ cmp r0, #0
+ beq _080227EE
+ movs r0, #0xfd
+ ands r0, r1
+ strb r0, [r2]
+ adds r1, r4, #0
+ adds r1, #0x3f
+ movs r0, #0x5c
+ strb r0, [r1]
+_080227EE:
+ ldrb r1, [r2]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _08022812
+ strb r3, [r4, #0xc]
+ bl Random
+ ldr r2, _08022818 @ =gUnk_080CBA60
+ movs r1, #3
+ ands r1, r0
+ adds r1, r1, r2
+ ldrb r0, [r1]
+ strb r0, [r4, #0xf]
+ adds r0, r4, #0
+ movs r1, #0
+ bl UpdateSprite
+_08022812:
+ pop {r4, pc}
+ .align 2, 0
+_08022814: .4byte gUnk_080FD468
+_08022818: .4byte gUnk_080CBA60
+
+ thumb_func_start sub_0802281C
+sub_0802281C: @ 0x0802281C
+ push {r4, lr}
+ adds r4, r0, #0
+ movs r1, #0xc0
+ lsls r1, r1, #5
+ bl sub_08003FC4
+ adds r0, r4, #0
+ bl sub_08004274
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _08022852
+ movs r0, #2
+ strb r0, [r4, #0xc]
+ movs r0, #0x20
+ strh r0, [r4, #0x24]
+ adds r0, r4, #0
+ movs r1, #0
+ bl UpdateSprite
+ adds r0, r4, #0
+ bl sub_0804AA1C
+_08022852:
+ pop {r4, pc}
+
+ thumb_func_start sub_08022854
+sub_08022854: @ 0x08022854
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_08004274
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _08022898
+ adds r0, r4, #0
+ bl sub_080AEFE0
+ movs r1, #0xc0
+ lsls r1, r1, #5
+ adds r0, r4, #0
+ bl sub_08003FC4
+ cmp r0, #0
+ bne _08022898
+ movs r0, #7
+ strb r0, [r4, #0xc]
+ adds r1, r4, #0
+ adds r1, #0x3f
+ movs r0, #0x5c
+ strb r0, [r1]
+ adds r0, r4, #0
+ movs r1, #5
+ bl UpdateSprite
+ movs r0, #0x7d
+ bl sub_08004488
+_08022898:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_0802289C
+sub_0802289C: @ 0x0802289C
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_08004274
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _080228CA
+ movs r0, #2
+ strb r0, [r4, #0xc]
+ movs r0, #0x20
+ strh r0, [r4, #0x24]
+ adds r1, r4, #0
+ adds r1, #0x81
+ movs r0, #0x78
+ strb r0, [r1]
+ adds r0, r4, #0
+ movs r1, #0
+ bl UpdateSprite
+_080228CA:
+ pop {r4, pc}
+
+ thumb_func_start sub_080228CC
+sub_080228CC: @ 0x080228CC
+ push {lr}
+ adds r1, r0, #0
+ ldrb r0, [r1, #0xf]
+ cmp r0, #0
+ bne _080228E8
+ adds r0, r1, #0
+ movs r1, #1
+ movs r2, #0x28
+ bl sub_08049F64
+ cmp r0, #0
+ beq _080228EC
+ movs r0, #1
+ b _080228EE
+_080228E8:
+ subs r0, #1
+ strb r0, [r1, #0xf]
+_080228EC:
+ movs r0, #0
+_080228EE:
+ pop {pc}
+
+ thumb_func_start sub_080228F0
+sub_080228F0: @ 0x080228F0
+ push {lr}
+ adds r1, r0, #0
+ adds r2, r1, #0
+ adds r2, #0x81
+ ldrb r0, [r2]
+ cmp r0, #0
+ bne _08022910
+ adds r0, r1, #0
+ movs r1, #1
+ movs r2, #0x40
+ bl sub_08049F64
+ cmp r0, #0
+ beq _08022914
+ movs r0, #1
+ b _08022916
+_08022910:
+ subs r0, #1
+ strb r0, [r2]
+_08022914:
+ movs r0, #0
+_08022916:
+ pop {pc}
+
+ thumb_func_start sub_08022918
+sub_08022918: @ 0x08022918
+ push {r4, r5, lr}
+ adds r5, r0, #0
+ ldr r4, _08022930 @ =gUnk_080CBB64
+ bl sub_0800279C
+ lsls r0, r0, #2
+ adds r0, r0, r4
+ ldr r1, [r0]
+ adds r0, r5, #0
+ bl _call_via_r1
+ pop {r4, r5, pc}
+ .align 2, 0
+_08022930: .4byte gUnk_080CBB64
+
+ thumb_func_start sub_08022934
+sub_08022934: @ 0x08022934
+ push {lr}
+ ldr r2, _08022948 @ =gUnk_080CBB7C
+ ldrb r1, [r0, #0xc]
+ lsls r1, r1, #2
+ adds r1, r1, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {pc}
+ .align 2, 0
+_08022948: .4byte gUnk_080CBB7C
+
+ thumb_func_start sub_0802294C
+sub_0802294C: @ 0x0802294C
+ push {lr}
+ ldr r1, _08022958 @ =gUnk_080CBB64
+ bl sub_0804AA30
+ pop {pc}
+ .align 2, 0
+_08022958: .4byte gUnk_080CBB64
+
+ thumb_func_start nullsub_132
+nullsub_132: @ 0x0802295C
+ bx lr
+ .align 2, 0
+
+ thumb_func_start sub_08022960
+sub_08022960: @ 0x08022960
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_0804A720
+ adds r0, r4, #0
+ bl sub_08022A88
+ pop {r4, pc}
+
+ thumb_func_start sub_08022970
+sub_08022970: @ 0x08022970
+ push {lr}
+ adds r1, r0, #0
+ ldrb r0, [r1, #0xe]
+ subs r0, #1
+ strb r0, [r1, #0xe]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _08022986
+ adds r0, r1, #0
+ bl sub_08022AA4
+_08022986:
+ pop {pc}
+
+ thumb_func_start sub_08022988
+sub_08022988: @ 0x08022988
+ push {r4, lr}
+ adds r4, r0, #0
+ movs r1, #0x36
+ ldrsh r0, [r4, r1]
+ cmp r0, #0
+ bne _080229A6
+ adds r0, r4, #0
+ bl sub_08022B20
+ cmp r0, #0
+ beq _080229A6
+ adds r0, r4, #0
+ bl sub_08022B0C
+ b _080229F6
+_080229A6:
+ ldrb r0, [r4, #0xf]
+ cmp r0, #0
+ beq _080229C6
+ subs r0, #1
+ strb r0, [r4, #0xf]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _080229F6
+ movs r0, #1
+ strb r0, [r4, #0x1e]
+ movs r0, #0x80
+ lsls r0, r0, #9
+ str r0, [r4, #0x20]
+ movs r0, #0xd6
+ bl sub_08004488
+_080229C6:
+ adds r0, r4, #0
+ bl sub_080AEF88
+ movs r1, #0x80
+ lsls r1, r1, #6
+ adds r0, r4, #0
+ bl sub_08003FC4
+ adds r1, r0, #0
+ cmp r1, #0
+ bne _080229F6
+ ldrb r0, [r4, #0xe]
+ subs r0, #1
+ strb r0, [r4, #0xe]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _080229F0
+ adds r0, r4, #0
+ bl sub_08022A88
+ b _080229F6
+_080229F0:
+ movs r0, #4
+ strb r0, [r4, #0xf]
+ strb r1, [r4, #0x1e]
+_080229F6:
+ pop {r4, pc}
+
+ thumb_func_start sub_080229F8
+sub_080229F8: @ 0x080229F8
+ push {r4, lr}
+ adds r4, r0, #0
+ movs r1, #0xa0
+ lsls r1, r1, #6
+ bl sub_08003FC4
+ cmp r0, #0
+ bne _08022A3C
+ ldrb r0, [r4, #0xe]
+ subs r0, #1
+ strb r0, [r4, #0xe]
+ lsls r0, r0, #0x18
+ lsrs r1, r0, #0x18
+ cmp r1, #0
+ bne _08022A30
+ movs r0, #4
+ strb r0, [r4, #0xc]
+ movs r0, #6
+ strb r0, [r4, #0xe]
+ movs r0, #8
+ strb r0, [r4, #0xf]
+ strb r1, [r4, #0x1e]
+ movs r0, #0xc0
+ strh r0, [r4, #0x24]
+ adds r0, r4, #0
+ bl sub_08022B44
+ b _08022A3C
+_08022A30:
+ movs r0, #0x80
+ lsls r0, r0, #9
+ str r0, [r4, #0x20]
+ movs r0, #0xd6
+ bl sub_08004488
+_08022A3C:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_08022A40
+sub_08022A40: @ 0x08022A40
+ push {r4, lr}
+ adds r4, r0, #0
+ ldrb r0, [r4, #0xf]
+ cmp r0, #0
+ beq _08022A58
+ subs r0, #1
+ strb r0, [r4, #0xf]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _08022A86
+ movs r0, #1
+ strb r0, [r4, #0x1e]
+_08022A58:
+ adds r0, r4, #0
+ bl sub_080AEF88
+ movs r1, #0x80
+ lsls r1, r1, #6
+ adds r0, r4, #0
+ bl sub_08003FC4
+ cmp r0, #0
+ bne _08022A86
+ ldrb r0, [r4, #0xe]
+ subs r0, #1
+ strb r0, [r4, #0xe]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _08022A80
+ adds r0, r4, #0
+ bl sub_08022A88
+ b _08022A86
+_08022A80:
+ adds r0, r4, #0
+ bl sub_08022B44
+_08022A86:
+ pop {r4, pc}
+
+ thumb_func_start sub_08022A88
+sub_08022A88: @ 0x08022A88
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ movs r5, #0
+ movs r0, #1
+ strb r0, [r4, #0xc]
+ bl Random
+ movs r1, #0xf
+ ands r0, r1
+ adds r0, #8
+ strb r0, [r4, #0xe]
+ strb r5, [r4, #0x1e]
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start sub_08022AA4
+sub_08022AA4: @ 0x08022AA4
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ bl Random
+ adds r5, r0, #0
+ movs r0, #2
+ strb r0, [r4, #0xc]
+ movs r1, #3
+ adds r0, r5, #0
+ ands r0, r1
+ adds r0, #1
+ strb r0, [r4, #0xe]
+ movs r0, #1
+ strb r0, [r4, #0xf]
+ movs r0, #0x80
+ strh r0, [r4, #0x24]
+ adds r0, r4, #0
+ bl sub_08049FA0
+ cmp r0, #0
+ bne _08022AE0
+ lsrs r0, r5, #8
+ movs r1, #3
+ ands r0, r1
+ cmp r0, #0
+ beq _08022AE0
+ adds r0, r4, #0
+ bl sub_08049EE4
+ b _08022AE6
+_08022AE0:
+ lsrs r0, r5, #0x10
+ movs r1, #0x1f
+ ands r0, r1
+_08022AE6:
+ strb r0, [r4, #0x15]
+ ldrb r1, [r4, #0x15]
+ movs r0, #0xf
+ ands r0, r1
+ cmp r0, #0
+ beq _08022B08
+ lsrs r1, r1, #4
+ movs r0, #1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, r1, #6
+ ldrb r2, [r4, #0x18]
+ movs r0, #0x41
+ rsbs r0, r0, #0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, #0x18]
+_08022B08:
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start sub_08022B0C
+sub_08022B0C: @ 0x08022B0C
+ push {lr}
+ movs r1, #3
+ strb r1, [r0, #0xc]
+ strb r1, [r0, #0xe]
+ movs r1, #8
+ strb r1, [r0, #0xf]
+ bl sub_08022B44
+ pop {pc}
+ .align 2, 0
+
+ thumb_func_start sub_08022B20
+sub_08022B20: @ 0x08022B20
+ push {r4, lr}
+ adds r4, r0, #0
+ movs r0, #2
+ bl sub_08049DF4
+ cmp r0, #0
+ beq _08022B40
+ ldr r1, _08022B3C @ =gLinkEntity
+ adds r0, r4, #0
+ movs r2, #0x24
+ movs r3, #0x24
+ bl sub_080041A0
+ b _08022B42
+ .align 2, 0
+_08022B3C: .4byte gLinkEntity
+_08022B40:
+ movs r0, #0
+_08022B42:
+ pop {r4, pc}
+
+ thumb_func_start sub_08022B44
+sub_08022B44: @ 0x08022B44
+ push {r4, lr}
+ adds r4, r0, #0
+ movs r0, #0xc0
+ lsls r0, r0, #8
+ str r0, [r4, #0x20]
+ ldr r1, _08022B84 @ =gLinkEntity
+ adds r0, r4, #0
+ bl sub_080045C4
+ adds r1, r0, #0
+ strb r1, [r4, #0x15]
+ movs r0, #0xf
+ ands r0, r1
+ cmp r0, #0
+ beq _08022B7A
+ lsls r1, r1, #0x18
+ lsrs r1, r1, #0x1c
+ movs r0, #1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, r1, #6
+ ldrb r2, [r4, #0x18]
+ movs r0, #0x41
+ rsbs r0, r0, #0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, #0x18]
+_08022B7A:
+ movs r0, #0xd6
+ bl sub_08004488
+ pop {r4, pc}
+ .align 2, 0
+_08022B84: .4byte gLinkEntity
+
+ thumb_func_start sub_08022B88
+sub_08022B88: @ 0x08022B88
+ push {lr}
+ ldr r2, _08022B9C @ =gUnk_080CBB90
+ ldrb r1, [r0, #0xa]
+ lsls r1, r1, #2
+ adds r1, r1, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {pc}
+ .align 2, 0
+_08022B9C: .4byte gUnk_080CBB90
+
+ thumb_func_start sub_08022BA0
+sub_08022BA0: @ 0x08022BA0
+ push {r4, lr}
+ adds r4, r0, #0
+ adds r1, r4, #0
+ adds r1, #0x79
+ ldrb r0, [r1]
+ adds r0, #1
+ strb r0, [r1]
+ ldrh r1, [r4, #0x2e]
+ adds r0, r4, #0
+ adds r0, #0x74
+ strh r1, [r0]
+ ldrh r0, [r4, #0x32]
+ adds r1, r4, #0
+ adds r1, #0x76
+ strh r0, [r1]
+ ldr r1, _08022BD0 @ =gUnk_080CBBA0
+ adds r0, r4, #0
+ bl sub_0800129E
+ adds r0, r4, #0
+ bl sub_08022EAC
+ pop {r4, pc}
+ .align 2, 0
+_08022BD0: .4byte gUnk_080CBBA0
+
+ thumb_func_start sub_08022BD4
+sub_08022BD4: @ 0x08022BD4
+ push {lr}
+ ldr r2, _08022BE8 @ =gUnk_080CBBB4
+ ldrb r1, [r0, #0xc]
+ lsls r1, r1, #2
+ adds r1, r1, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {pc}
+ .align 2, 0
+_08022BE8: .4byte gUnk_080CBBB4
+
+ thumb_func_start sub_08022BEC
+sub_08022BEC: @ 0x08022BEC
+ push {lr}
+ adds r2, r0, #0
+ movs r0, #0x7a
+ adds r0, r0, r2
+ mov ip, r0
+ adds r3, r2, #0
+ adds r3, #0x45
+ ldrb r0, [r0]
+ ldrb r1, [r3]
+ cmp r0, r1
+ beq _08022C0A
+ adds r1, r2, #0
+ adds r1, #0x7b
+ movs r0, #0x1e
+ strb r0, [r1]
+_08022C0A:
+ ldrb r0, [r3]
+ mov r1, ip
+ strb r0, [r1]
+ movs r0, #1
+ strb r0, [r2, #0xe]
+ adds r0, r2, #0
+ adds r0, #0x3e
+ ldrb r0, [r0]
+ strb r0, [r2, #0x15]
+ ldrb r0, [r2, #0x15]
+ adds r0, #2
+ movs r1, #0x1c
+ ands r0, r1
+ asrs r0, r0, #2
+ strb r0, [r2, #0x14]
+ strb r0, [r2, #0x1e]
+ ldr r0, [r2, #0x54]
+ adds r3, r2, #0
+ adds r3, #0x3d
+ ldrb r1, [r3]
+ adds r0, #0x3d
+ strb r1, [r0]
+ ldr r0, [r2, #0x7c]
+ ldrb r1, [r3]
+ adds r0, #0x3d
+ strb r1, [r0]
+ adds r0, r2, #0
+ adds r0, #0x80
+ ldr r0, [r0]
+ ldrb r1, [r3]
+ adds r0, #0x3d
+ strb r1, [r0]
+ ldr r1, _08022C54 @ =gUnk_080CBBA0
+ adds r0, r2, #0
+ bl sub_0804AA30
+ pop {pc}
+ .align 2, 0
+_08022C54: .4byte gUnk_080CBBA0
+
+ thumb_func_start sub_08022C58
+sub_08022C58: @ 0x08022C58
+ push {r4, r5, r6, r7, lr}
+ mov r7, sb
+ mov r6, r8
+ push {r6, r7}
+ adds r7, r0, #0
+ ldrb r1, [r7, #0x10]
+ movs r0, #0x7f
+ ands r0, r1
+ strb r0, [r7, #0x10]
+ ldr r0, _08022D3C @ =gUnk_03003DBC
+ ldrb r0, [r0]
+ cmp r0, #0x44
+ bhi _08022D34
+ movs r0, #0xd
+ movs r1, #1
+ bl CreateEnemy
+ mov sb, r0
+ str r0, [r7, #0x54]
+ mov r2, sb
+ adds r2, #0x29
+ ldrb r1, [r2]
+ movs r4, #8
+ rsbs r4, r4, #0
+ adds r0, r4, #0
+ ands r0, r1
+ movs r1, #5
+ mov r8, r1
+ mov r1, r8
+ orrs r0, r1
+ strb r0, [r2]
+ mov r0, sb
+ str r7, [r0, #0x50]
+ adds r0, r7, #0
+ mov r1, sb
+ bl CopyPosition
+ movs r0, #0xd
+ movs r1, #2
+ bl CreateEnemy
+ adds r6, r0, #0
+ mov r1, sb
+ str r6, [r1, #0x54]
+ adds r2, r6, #0
+ adds r2, #0x29
+ ldrb r1, [r2]
+ adds r0, r4, #0
+ ands r0, r1
+ mov r1, r8
+ orrs r0, r1
+ strb r0, [r2]
+ str r7, [r6, #0x50]
+ adds r0, r7, #0
+ adds r1, r6, #0
+ bl CopyPosition
+ movs r0, #0xd
+ movs r1, #3
+ bl CreateEnemy
+ adds r5, r0, #0
+ str r5, [r6, #0x54]
+ adds r1, r5, #0
+ adds r1, #0x29
+ ldrb r0, [r1]
+ ands r4, r0
+ mov r0, r8
+ orrs r4, r0
+ strb r4, [r1]
+ str r7, [r5, #0x50]
+ adds r0, r7, #0
+ adds r1, r5, #0
+ bl CopyPosition
+ adds r0, r7, #0
+ bl sub_0804A720
+ movs r0, #1
+ strb r0, [r7, #0xc]
+ strb r0, [r7, #0xe]
+ strb r0, [r7, #0xf]
+ ldrb r0, [r7, #0x10]
+ movs r1, #0x80
+ orrs r0, r1
+ strb r0, [r7, #0x10]
+ str r7, [r7, #0x50]
+ mov r1, sb
+ str r1, [r7, #0x54]
+ str r6, [r7, #0x7c]
+ adds r0, r7, #0
+ adds r0, #0x80
+ str r5, [r0]
+ bl Random
+ movs r1, #0x1f
+ ands r0, r1
+ strb r0, [r7, #0x15]
+ ldrb r0, [r7, #0x15]
+ adds r0, #2
+ movs r1, #0x1c
+ ands r0, r1
+ asrs r0, r0, #2
+ strb r0, [r7, #0x14]
+ strb r0, [r7, #0x1e]
+ adds r0, r7, #0
+ adds r0, #0x45
+ ldrb r1, [r0]
+ adds r0, #0x35
+ strb r1, [r0]
+_08022D34:
+ pop {r3, r4}
+ mov r8, r3
+ mov sb, r4
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_08022D3C: .4byte gUnk_03003DBC
+
+ thumb_func_start sub_08022D40
+sub_08022D40: @ 0x08022D40
+ push {r4, lr}
+ adds r4, r0, #0
+ adds r2, r4, #0
+ adds r2, #0x7b
+ ldrb r1, [r2]
+ cmp r1, #0
+ beq _08022D66
+ adds r0, r1, #0
+ adds r0, #0xff
+ strb r0, [r2]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _08022D8E
+ ldrb r0, [r4, #0x14]
+ adds r0, #1
+ movs r1, #7
+ ands r0, r1
+ b _08022D8A
+_08022D66:
+ adds r0, r4, #0
+ bl sub_08022F14
+ adds r0, r4, #0
+ bl sub_080AEF88
+ ldrh r0, [r4, #0x2a]
+ cmp r0, #0
+ beq _08022D8E
+ adds r1, r0, #0
+ adds r0, r4, #0
+ bl sub_0800417E
+ ldrb r0, [r4, #0x15]
+ adds r0, #2
+ movs r1, #0x1c
+ ands r0, r1
+ asrs r0, r0, #2
+_08022D8A:
+ strb r0, [r4, #0x14]
+ strb r0, [r4, #0x1e]
+_08022D8E:
+ pop {r4, pc}
+
+ thumb_func_start sub_08022D90
+sub_08022D90: @ 0x08022D90
+ push {r4, r5, lr}
+ adds r5, r0, #0
+ ldr r0, [r5, #0x50]
+ ldr r0, [r0, #4]
+ cmp r0, #0
+ beq _08022DE0
+ ldr r1, _08022DDC @ =gUnk_080CBBBC
+ ldrb r0, [r5, #0xc]
+ lsls r0, r0, #2
+ adds r0, r0, r1
+ ldr r1, [r0]
+ adds r0, r5, #0
+ bl _call_via_r1
+ ldr r4, [r5, #0x50]
+ ldrb r2, [r4, #0x1b]
+ lsrs r2, r2, #6
+ lsls r2, r2, #6
+ ldrb r3, [r5, #0x1b]
+ movs r1, #0x3f
+ adds r0, r1, #0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r5, #0x1b]
+ ldrb r0, [r4, #0x19]
+ lsrs r0, r0, #6
+ lsls r0, r0, #6
+ ldrb r2, [r5, #0x19]
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5, #0x19]
+ adds r4, #0x38
+ ldrb r1, [r4]
+ adds r0, r5, #0
+ adds r0, #0x38
+ strb r1, [r0]
+ b _08022DE6
+ .align 2, 0
+_08022DDC: .4byte gUnk_080CBBBC
+_08022DE0:
+ adds r0, r5, #0
+ bl sub_0805E7BC
+_08022DE6:
+ pop {r4, r5, pc}
+
+ thumb_func_start sub_08022DE8
+sub_08022DE8: @ 0x08022DE8
+ push {lr}
+ adds r3, r0, #0
+ movs r0, #1
+ strb r0, [r3, #0xc]
+ adds r0, r3, #0
+ adds r0, #0x7c
+ movs r1, #0x88
+ strb r1, [r0]
+ adds r0, #1
+ strb r1, [r0]
+ adds r0, #1
+ strb r1, [r0]
+ adds r0, #1
+ strb r1, [r0]
+ adds r0, #1
+ strb r1, [r0]
+ adds r0, #1
+ strb r1, [r0]
+ adds r0, #1
+ strb r1, [r0]
+ adds r0, #1
+ strb r1, [r0]
+ ldr r0, [r3, #0x50]
+ ldrb r0, [r0, #0x14]
+ strb r0, [r3, #0x14]
+ adds r2, r3, #0
+ adds r2, #0x84
+ ldrb r1, [r3, #0x14]
+ lsls r0, r1, #4
+ adds r0, r0, r1
+ lsls r1, r0, #8
+ adds r0, r0, r1
+ lsls r1, r0, #0x10
+ adds r0, r0, r1
+ str r0, [r2]
+ ldrb r0, [r3, #0xa]
+ cmp r0, #3
+ beq _08022E38
+ adds r0, #7
+ b _08022E3C
+_08022E38:
+ ldrb r0, [r3, #0x14]
+ adds r0, #0xa
+_08022E3C:
+ strb r0, [r3, #0x1e]
+ pop {pc}
+
+ thumb_func_start sub_08022E40
+sub_08022E40: @ 0x08022E40
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ ldrh r1, [r4, #0x2e]
+ adds r0, #0x74
+ strh r1, [r0]
+ ldrh r0, [r4, #0x32]
+ adds r1, r4, #0
+ adds r1, #0x76
+ strh r0, [r1]
+ ldr r2, [r4, #0x50]
+ adds r2, #0x79
+ ldrb r0, [r2]
+ adds r0, #1
+ movs r3, #7
+ ands r0, r3
+ adds r0, #0x7c
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ movs r0, #0xf
+ ands r0, r1
+ subs r0, #8
+ lsrs r1, r1, #4
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ ldrh r5, [r4, #0x2e]
+ adds r0, r0, r5
+ strh r0, [r4, #0x2e]
+ subs r1, #8
+ ldrh r0, [r4, #0x32]
+ adds r1, r1, r0
+ strh r1, [r4, #0x32]
+ adds r1, r4, #0
+ adds r1, #0x84
+ ldrb r0, [r2]
+ adds r0, #1
+ ands r0, r3
+ lsls r0, r0, #2
+ ldr r1, [r1]
+ lsrs r1, r0
+ movs r0, #7
+ ands r1, r0
+ strb r1, [r4, #0x14]
+ ldrb r0, [r4, #0xa]
+ cmp r0, #3
+ bne _08022EA2
+ adds r0, r1, #0
+ adds r0, #0xa
+ strb r0, [r4, #0x1e]
+ b _08022EA8
+_08022EA2:
+ adds r0, r4, #0
+ bl sub_08022EAC
+_08022EA8:
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start sub_08022EAC
+sub_08022EAC: @ 0x08022EAC
+ push {r4, r5, lr}
+ mov ip, r0
+ ldr r1, [r0, #0x54]
+ cmp r1, #0
+ beq _08022F12
+ ldr r0, [r0, #0x50]
+ adds r0, #0x79
+ ldrb r0, [r0]
+ movs r4, #7
+ adds r3, r4, #0
+ ands r3, r0
+ adds r3, r3, r1
+ adds r3, #0x7c
+ mov r0, ip
+ ldrh r1, [r0, #0x2e]
+ adds r0, #0x74
+ ldrb r0, [r0]
+ subs r1, r1, r0
+ adds r1, #8
+ movs r5, #0xf
+ ands r1, r5
+ mov r2, ip
+ ldrh r0, [r2, #0x32]
+ adds r2, #0x76
+ ldrb r2, [r2]
+ subs r0, r0, r2
+ adds r0, #8
+ ands r0, r5
+ lsls r0, r0, #4
+ adds r1, r1, r0
+ strb r1, [r3]
+ mov r1, ip
+ ldr r0, [r1, #0x50]
+ adds r0, #0x79
+ ldrb r1, [r0]
+ adds r0, r4, #0
+ ands r0, r1
+ lsls r0, r0, #2
+ mov r2, ip
+ ldrb r1, [r2, #0x14]
+ ands r4, r1
+ lsls r4, r0
+ movs r2, #0xf
+ lsls r2, r0
+ mov r0, ip
+ ldr r1, [r0, #0x54]
+ adds r1, #0x84
+ ldr r0, [r1]
+ bics r0, r2
+ orrs r4, r0
+ str r4, [r1]
+_08022F12:
+ pop {r4, r5, pc}
+
+ thumb_func_start sub_08022F14
+sub_08022F14: @ 0x08022F14
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ bl sub_08049FA0
+ cmp r0, #0
+ bne _08022F4E
+ adds r0, r4, #0
+ bl sub_08049EE4
+ ldrb r1, [r4, #0x15]
+ subs r2, r0, r1
+ movs r1, #0x1f
+ ands r2, r1
+ adds r0, r2, #4
+ ands r0, r1
+ cmp r0, #8
+ bls _08022F4E
+ movs r0, #8
+ strb r0, [r4, #0xf]
+ cmp r2, #0xf
+ bhi _08022F46
+ adds r1, r4, #0
+ adds r1, #0x78
+ movs r0, #1
+ b _08022F4C
+_08022F46:
+ adds r1, r4, #0
+ adds r1, #0x78
+ movs r0, #0xff
+_08022F4C:
+ strb r0, [r1]
+_08022F4E:
+ ldrb r0, [r4, #0xe]
+ subs r0, #1
+ strb r0, [r4, #0xe]
+ movs r1, #0xff
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _08022F9E
+ movs r0, #4
+ strb r0, [r4, #0xe]
+ ldrb r0, [r4, #0xf]
+ subs r0, #1
+ strb r0, [r4, #0xf]
+ ands r0, r1
+ adds r5, r4, #0
+ adds r5, #0x78
+ cmp r0, #0
+ bne _08022F84
+ movs r0, #8
+ strb r0, [r4, #0xf]
+ bl Random
+ ldr r2, _08022FA0 @ =gUnk_080CBBC4
+ movs r1, #1
+ ands r1, r0
+ adds r1, r1, r2
+ ldrb r0, [r1]
+ strb r0, [r5]
+_08022F84:
+ ldrb r0, [r5]
+ ldrb r1, [r4, #0x15]
+ adds r0, r0, r1
+ movs r1, #0x1f
+ ands r0, r1
+ strb r0, [r4, #0x15]
+ ldrb r0, [r4, #0x15]
+ adds r0, #2
+ movs r1, #0x1c
+ ands r0, r1
+ asrs r0, r0, #2
+ strb r0, [r4, #0x14]
+ strb r0, [r4, #0x1e]
+_08022F9E:
+ pop {r4, r5, pc}
+ .align 2, 0
+_08022FA0: .4byte gUnk_080CBBC4
+
+ thumb_func_start sub_08022FA4
+sub_08022FA4: @ 0x08022FA4
+ push {lr}
+ ldr r1, _08022FB0 @ =gUnk_080CBBC8
+ bl sub_0800129E
+ pop {pc}
+ .align 2, 0
+_08022FB0: .4byte gUnk_080CBBC8
+
+ thumb_func_start sub_08022FB4
+sub_08022FB4: @ 0x08022FB4
+ push {lr}
+ ldr r2, _08022FC8 @ =gUnk_080CBBDC
+ ldrb r1, [r0, #0xc]
+ lsls r1, r1, #2
+ adds r1, r1, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {pc}
+ .align 2, 0
+_08022FC8: .4byte gUnk_080CBBDC
+
+ thumb_func_start nullsub_133
+nullsub_133: @ 0x08022FCC
+ bx lr
+ .align 2, 0
+
+ thumb_func_start sub_08022FD0
+sub_08022FD0: @ 0x08022FD0
+ push {lr}
+ movs r3, #1
+ movs r1, #1
+ strb r1, [r0, #0xc]
+ ldrb r2, [r0, #0x18]
+ subs r1, #5
+ ands r1, r2
+ orrs r1, r3
+ strb r1, [r0, #0x18]
+ movs r1, #0
+ bl sub_08023000
+ pop {pc}
+ .align 2, 0
+
+ thumb_func_start sub_08022FEC
+sub_08022FEC: @ 0x08022FEC
+ push {lr}
+ movs r1, #0x80
+ bl sub_08023000
+ pop {pc}
+ .align 2, 0
+
+ thumb_func_start sub_08022FF8
+sub_08022FF8: @ 0x08022FF8
+ bx lr
+ .align 2, 0
+
+ thumb_func_start sub_08022FFC
+sub_08022FFC: @ 0x08022FFC
+ bx lr
+ .align 2, 0
+
+ thumb_func_start sub_08023000
+sub_08023000: @ 0x08023000
+ push {r4, lr}
+ adds r4, r0, #0
+ cmp r1, #0x80
+ bne _0802300E
+ bl sub_080042B8
+ b _08023014
+_0802300E:
+ adds r0, r4, #0
+ bl LoadAnimation
+_08023014:
+ movs r2, #0x80
+ adds r0, r4, #0
+ adds r0, #0x5b
+ ldrb r0, [r0]
+ cmp r0, #0x40
+ bne _08023022
+ rsbs r2, r2, #0
+_08023022:
+ ldrb r0, [r4, #0x19]
+ movs r1, #3
+ orrs r0, r1
+ strb r0, [r4, #0x19]
+ adds r0, r4, #0
+ adds r1, r2, #0
+ movs r2, #0x80
+ movs r3, #0
+ bl sub_0805EC9C
+ pop {r4, pc}
+
+ thumb_func_start sub_08023038
+sub_08023038: @ 0x08023038
+ push {r4, r5, r6, lr}
+ adds r4, r0, #0
+ ldrh r5, [r4, #0x2e]
+ ldrh r6, [r4, #0x32]
+ ldrb r1, [r4, #0xa]
+ cmp r1, #0
+ bne _0802306C
+ ldrb r0, [r4, #0xc]
+ cmp r0, #0
+ beq _08023052
+ adds r0, r4, #0
+ bl sub_0802390C
+_08023052:
+ adds r0, r4, #0
+ adds r0, #0x7c
+ ldrb r0, [r0]
+ adds r1, r4, #0
+ adds r1, #0x7d
+ strb r0, [r1]
+ ldr r1, _08023068 @ =gUnk_080CBC38
+ adds r0, r4, #0
+ bl sub_0800129E
+ b _08023090
+ .align 2, 0
+_08023068: .4byte gUnk_080CBC38
+_0802306C:
+ ldr r0, [r4, #0x50]
+ ldr r0, [r0, #4]
+ cmp r0, #0
+ beq _08023088
+ cmp r1, #8
+ beq _08023080
+ adds r0, r4, #0
+ bl sub_080235BC
+ b _08023090
+_08023080:
+ adds r0, r4, #0
+ bl sub_08023730
+ b _08023090
+_08023088:
+ adds r0, r4, #0
+ bl sub_0805E7BC
+ b _080230CA
+_08023090:
+ ldr r0, [r4, #0x50]
+ adds r2, r0, #0
+ adds r2, #0x7c
+ adds r0, #0x7d
+ ldrb r1, [r2]
+ ldrb r0, [r0]
+ cmp r1, r0
+ beq _080230CA
+ ldr r1, [r4, #0x54]
+ cmp r1, #0
+ beq _080230CA
+ ldrb r2, [r2]
+ subs r2, #1
+ movs r0, #0xf
+ ands r2, r0
+ adds r2, #0x78
+ adds r2, r1, r2
+ ldrh r1, [r4, #0x2e]
+ subs r1, r1, r5
+ adds r1, #8
+ movs r3, #0xf
+ ands r1, r3
+ lsls r1, r1, #4
+ ldrh r0, [r4, #0x32]
+ subs r0, r0, r6
+ adds r0, #8
+ ands r0, r3
+ orrs r1, r0
+ strb r1, [r2]
+_080230CA:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start sub_080230CC
+sub_080230CC: @ 0x080230CC
+ push {lr}
+ ldr r2, _080230E0 @ =gUnk_080CBC50
+ ldrb r1, [r0, #0xc]
+ lsls r1, r1, #2
+ adds r1, r1, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {pc}
+ .align 2, 0
+_080230E0: .4byte gUnk_080CBC50
+
+ thumb_func_start sub_080230E4
+sub_080230E4: @ 0x080230E4
+ push {r4, r5, lr}
+ adds r5, r0, #0
+ ldrb r0, [r5, #0xd]
+ cmp r0, #0xff
+ bne _08023132
+ movs r2, #0
+ movs r0, #7
+ strb r0, [r5, #0xc]
+ movs r3, #1
+ strb r3, [r5, #0xe]
+ strb r2, [r5, #0xd]
+ adds r1, r5, #0
+ adds r1, #0x3f
+ movs r0, #0x85
+ strb r0, [r1]
+ subs r1, #2
+ movs r0, #0xf8
+ strb r0, [r1]
+ adds r0, r5, #0
+ adds r0, #0x7f
+ strb r2, [r0]
+ subs r0, #4
+ strb r2, [r0]
+ subs r0, #0x3a
+ ldrb r0, [r0]
+ cmp r0, #0x80
+ beq _0802311E
+ cmp r0, #0x9e
+ bne _08023128
+_0802311E:
+ strb r2, [r5, #0xb]
+ adds r1, r5, #0
+ adds r1, #0x80
+ movs r0, #0x14
+ b _08023130
+_08023128:
+ strb r3, [r5, #0xb]
+ adds r1, r5, #0
+ adds r1, #0x80
+ movs r0, #8
+_08023130:
+ strb r0, [r1]
+_08023132:
+ adds r0, r5, #0
+ adds r0, #0x45
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0802318A
+ adds r0, r5, #0
+ adds r0, #0x7f
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0802318A
+ ldrb r0, [r5, #0xc]
+ cmp r0, #7
+ bne _0802318A
+ ldr r4, _08023194 @ =gLinkEntity
+ adds r0, r5, #0
+ adds r1, r4, #0
+ bl CopyPosition
+ ldrb r1, [r4, #0x10]
+ movs r0, #0x80
+ orrs r0, r1
+ strb r0, [r4, #0x10]
+ ldrb r1, [r4, #0x18]
+ movs r0, #4
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #1
+ orrs r0, r1
+ strb r0, [r4, #0x18]
+ movs r0, #0xc0
+ lsls r0, r0, #9
+ str r0, [r4, #0x20]
+ movs r0, #0xff
+ strb r0, [r4, #0x15]
+ adds r4, #0x3d
+ movs r0, #0xec
+ strb r0, [r4]
+ ldr r2, _08023198 @ =gLinkState
+ movs r0, #0x41
+ strb r0, [r2, #2]
+ ldr r0, [r2, #0x30]
+ ldr r1, _0802319C @ =0xFFF7FFFF
+ ands r0, r1
+ str r0, [r2, #0x30]
+_0802318A:
+ ldr r1, _080231A0 @ =gUnk_080CBC38
+ adds r0, r5, #0
+ bl sub_0804AA30
+ pop {r4, r5, pc}
+ .align 2, 0
+_08023194: .4byte gLinkEntity
+_08023198: .4byte gLinkState
+_0802319C: .4byte 0xFFF7FFFF
+_080231A0: .4byte gUnk_080CBC38
+
+ thumb_func_start sub_080231A4
+sub_080231A4: @ 0x080231A4
+ push {lr}
+ adds r2, r0, #0
+ adds r2, #0x7c
+ ldrb r1, [r2]
+ adds r1, #1
+ strb r1, [r2]
+ bl sub_08001324
+
+ thumb_func_start nullsub_134
+nullsub_134: @ 0x080231B4
+ pop {pc}
+ .align 2, 0
+
+ thumb_func_start nullsub_135
+nullsub_135: @ 0x080231B8
+ bx lr
+ .align 2, 0
+
+ thumb_func_start sub_080231BC
+sub_080231BC: @ 0x080231BC
+ push {r4, r5, r6, lr}
+ adds r6, r0, #0
+ ldr r0, _08023280 @ =gUnk_03003DBC
+ ldrb r0, [r0]
+ cmp r0, #0x3f
+ bhi _0802327E
+ movs r0, #0xf
+ movs r1, #1
+ bl CreateEnemy
+ adds r4, r0, #0
+ str r4, [r6, #0x54]
+ str r6, [r4, #0x50]
+ movs r0, #0xf
+ movs r1, #2
+ bl CreateEnemy
+ adds r5, r0, #0
+ str r5, [r4, #0x54]
+ str r6, [r5, #0x50]
+ movs r0, #0xf
+ movs r1, #3
+ bl CreateEnemy
+ adds r4, r0, #0
+ str r4, [r5, #0x54]
+ str r6, [r4, #0x50]
+ movs r0, #0xf
+ movs r1, #4
+ bl CreateEnemy
+ adds r5, r0, #0
+ str r5, [r4, #0x54]
+ str r6, [r5, #0x50]
+ movs r0, #0xf
+ movs r1, #5
+ bl CreateEnemy
+ adds r4, r0, #0
+ str r4, [r5, #0x54]
+ str r6, [r4, #0x50]
+ movs r0, #0xf
+ movs r1, #6
+ bl CreateEnemy
+ adds r5, r0, #0
+ str r5, [r4, #0x54]
+ str r6, [r5, #0x50]
+ movs r0, #0xf
+ movs r1, #7
+ bl CreateEnemy
+ adds r4, r0, #0
+ str r4, [r5, #0x54]
+ str r6, [r4, #0x50]
+ movs r0, #0xf
+ movs r1, #8
+ bl CreateEnemy
+ str r0, [r4, #0x54]
+ str r4, [r0, #0x74]
+ str r6, [r0, #0x50]
+ movs r1, #0
+ str r1, [r0, #0x54]
+ adds r0, r6, #0
+ bl sub_0804A720
+ movs r0, #6
+ strb r0, [r6, #0xc]
+ movs r1, #0x1e
+ strb r1, [r6, #0xe]
+ str r6, [r6, #0x50]
+ adds r0, r6, #0
+ adds r0, #0x78
+ strh r1, [r0]
+ ldrb r1, [r6, #0x1a]
+ movs r0, #0x10
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #5
+ orrs r0, r1
+ strb r0, [r6, #0x1a]
+ bl Random
+ movs r1, #0x1f
+ ands r0, r1
+ strb r0, [r6, #0x15]
+ ldrb r0, [r6, #0x15]
+ adds r0, #2
+ movs r1, #0x1c
+ ands r0, r1
+ asrs r0, r0, #2
+ strb r0, [r6, #0x14]
+ ldrb r1, [r6, #0x14]
+ adds r0, r6, #0
+ bl UpdateSprite
+_0802327E:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_08023280: .4byte gUnk_03003DBC
+
+ thumb_func_start nullsub_136
+nullsub_136: @ 0x08023284
+ bx lr
+ .align 2, 0
+
+ thumb_func_start sub_08023288
+sub_08023288: @ 0x08023288
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, sb
+ mov r5, r8
+ push {r5, r6, r7}
+ adds r7, r0, #0
+ movs r1, #1
+ bl sub_08049FDC
+ cmp r0, #0
+ beq _08023324
+ ldrb r1, [r7, #0xe]
+ adds r0, r1, #1
+ strb r0, [r7, #0xe]
+ movs r0, #0xf
+ ands r0, r1
+ cmp r0, #0
+ bne _08023324
+ bl Random
+ adds r4, r0, #0
+ movs r0, #0x1e
+ ands r4, r0
+ movs r0, #0
+ mov r8, r0
+ ldr r2, _08023308 @ =gLinkEntity
+ mov sb, r2
+ ldr r0, _0802330C @ =gUnk_080CBC70
+ mov sl, r0
+_080232C2:
+ mov r2, sb
+ movs r0, #0x2e
+ ldrsh r1, [r2, r0]
+ mov r2, sl
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ adds r6, r1, r0
+ mov r0, sb
+ movs r2, #0x32
+ ldrsh r1, [r0, r2]
+ adds r0, r4, #1
+ add r0, sl
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ adds r5, r1, r0
+ ldr r0, _08023310 @ =gUnk_03001198
+ ldrb r2, [r0]
+ adds r0, r6, #0
+ adds r1, r5, #0
+ bl sub_080002A4
+ bl sub_08023A38
+ cmp r0, #0
+ beq _08023314
+ adds r0, r7, #0
+ adds r1, r6, #0
+ adds r2, r5, #0
+ bl sub_08023990
+ b _08023324
+ .align 2, 0
+_08023308: .4byte gLinkEntity
+_0802330C: .4byte gUnk_080CBC70
+_08023310: .4byte gUnk_03001198
+_08023314:
+ adds r4, #2
+ movs r0, #0x1e
+ ands r4, r0
+ movs r2, #1
+ add r8, r2
+ mov r0, r8
+ cmp r0, #0xf
+ bls _080232C2
+_08023324:
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov sb, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start sub_08023330
+sub_08023330: @ 0x08023330
+ push {r4, r5, lr}
+ adds r5, r0, #0
+ bl sub_08004274
+ adds r0, r5, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _08023394
+ movs r0, #4
+ strb r0, [r5, #0xc]
+ movs r0, #0x19
+ strb r0, [r5, #0xe]
+ ldrb r1, [r5, #0x10]
+ movs r0, #0x80
+ orrs r0, r1
+ strb r0, [r5, #0x10]
+ adds r1, r5, #0
+ adds r1, #0x78
+ movs r4, #0
+ movs r0, #0x96
+ lsls r0, r0, #2
+ strh r0, [r1]
+ bl Random
+ movs r1, #0x1c
+ ands r0, r1
+ strb r0, [r5, #0x15]
+ lsrs r0, r0, #2
+ strb r0, [r5, #0x14]
+ adds r0, r5, #0
+ adds r0, #0x7b
+ strb r4, [r0]
+ adds r0, #4
+ strb r4, [r0]
+ ldrb r1, [r5, #0x14]
+ adds r0, r5, #0
+ bl sub_08023A88
+ ldr r1, [r5, #0x54]
+ adds r0, r5, #0
+ bl CopyPosition
+ adds r0, r5, #0
+ movs r1, #4
+ movs r2, #0
+ bl CreateFx
+_08023394:
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start sub_08023398
+sub_08023398: @ 0x08023398
+ push {r4, r5, r6, lr}
+ adds r5, r0, #0
+ adds r0, #0x7c
+ ldrb r1, [r0]
+ adds r1, #1
+ strb r1, [r0]
+ adds r0, #3
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _080233C0
+ adds r0, r5, #0
+ movs r1, #1
+ bl sub_08049FDC
+ cmp r0, #0
+ bne _080233C0
+ adds r1, r5, #0
+ adds r1, #0x78
+ movs r0, #1
+ strh r0, [r1]
+_080233C0:
+ adds r4, r5, #0
+ adds r4, #0x78
+ ldrh r0, [r4]
+ subs r0, #1
+ strh r0, [r4]
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bne _08023416
+ adds r0, r5, #0
+ bl sub_080002A0
+ bl sub_08023A38
+ cmp r0, #0
+ beq _08023412
+ movs r0, #5
+ strb r0, [r5, #0xc]
+ adds r1, r5, #0
+ adds r1, #0x7f
+ movs r0, #0
+ strb r0, [r1]
+ ldrb r1, [r5, #0x10]
+ movs r0, #0x7f
+ ands r0, r1
+ strb r0, [r5, #0x10]
+ adds r1, r5, #0
+ adds r1, #0x3f
+ movs r0, #0x85
+ strb r0, [r1]
+ ldr r1, [r5, #0x54]
+ movs r0, #1
+ strb r0, [r1, #0xe]
+ adds r0, r5, #0
+ bl sub_08023A68
+ adds r0, r5, #0
+ movs r1, #4
+ movs r2, #0
+ bl CreateFx
+ b _0802349C
+_08023412:
+ movs r0, #0x28
+ strh r0, [r4]
+_08023416:
+ adds r0, r5, #0
+ adds r0, #0x7f
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _08023426
+ adds r0, r5, #0
+ bl sub_08023AB0
+_08023426:
+ ldrb r0, [r5, #0xe]
+ subs r1, r0, #1
+ strb r1, [r5, #0xe]
+ lsls r0, r1, #0x18
+ lsrs r0, r0, #0x18
+ cmp r0, #2
+ bhi _08023440
+ lsls r0, r1, #0x18
+ cmp r0, #0
+ bne _0802349C
+ movs r0, #0x19
+ strb r0, [r5, #0xe]
+ b _0802349C
+_08023440:
+ ldr r4, [r5, #0x2c]
+ ldr r6, [r5, #0x30]
+ adds r0, r5, #0
+ bl sub_080AEF88
+ ldr r0, [r5, #0x2c]
+ cmp r0, r4
+ bne _08023460
+ ldr r0, [r5, #0x30]
+ cmp r0, r6
+ bne _08023460
+ adds r1, r5, #0
+ adds r1, #0x7c
+ ldrb r0, [r1]
+ subs r0, #1
+ strb r0, [r1]
+_08023460:
+ ldr r0, _080234A0 @ =gUnk_030010A0
+ ldr r0, [r0]
+ movs r1, #7
+ ands r0, r1
+ cmp r0, #0
+ bne _0802349C
+ adds r0, r5, #0
+ movs r1, #1
+ bl sub_08049F84
+ adds r1, r0, #0
+ adds r0, r5, #0
+ bl sub_08004596
+ ldrb r0, [r5, #0x15]
+ adds r0, #2
+ movs r1, #0x1c
+ ands r0, r1
+ asrs r0, r0, #2
+ ldrb r1, [r5, #0x14]
+ cmp r0, r1
+ beq _0802349C
+ strb r0, [r5, #0x14]
+ adds r1, r5, #0
+ adds r1, #0x7b
+ ldrb r1, [r1]
+ adds r1, r0, r1
+ adds r0, r5, #0
+ bl UpdateSprite
+_0802349C:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_080234A0: .4byte gUnk_030010A0
+
+ thumb_func_start sub_080234A4
+sub_080234A4: @ 0x080234A4
+ push {r4, lr}
+ adds r4, r0, #0
+ adds r0, #0x7c
+ ldrb r1, [r0]
+ adds r1, #1
+ strb r1, [r0]
+ adds r0, r4, #0
+ bl sub_08004274
+ adds r0, r4, #0
+ adds r0, #0x7f
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _080234D6
+ movs r0, #6
+ strb r0, [r4, #0xc]
+ ldrb r1, [r4, #0x18]
+ subs r0, #0xa
+ ands r0, r1
+ strb r0, [r4, #0x18]
+ adds r1, r4, #0
+ adds r1, #0x78
+ movs r0, #0x96
+ lsls r0, r0, #1
+ strh r0, [r1]
+_080234D6:
+ pop {r4, pc}
+
+ thumb_func_start sub_080234D8
+sub_080234D8: @ 0x080234D8
+ push {r4, lr}
+ adds r4, r0, #0
+ adds r1, r4, #0
+ adds r1, #0x78
+ ldrh r0, [r1]
+ subs r0, #1
+ strh r0, [r1]
+ lsls r0, r0, #0x10
+ cmp r0, #0
+ bne _0802351A
+ movs r0, #2
+ strb r0, [r4, #0xc]
+ ldrb r1, [r4, #0x1a]
+ subs r0, #0x12
+ ands r0, r1
+ movs r1, #5
+ orrs r0, r1
+ strb r0, [r4, #0x1a]
+ bl Random
+ movs r1, #0x1f
+ ands r0, r1
+ strb r0, [r4, #0x15]
+ ldrb r0, [r4, #0x15]
+ adds r0, #2
+ movs r1, #0x1c
+ ands r0, r1
+ asrs r0, r0, #2
+ strb r0, [r4, #0x14]
+ ldrb r1, [r4, #0x14]
+ adds r0, r4, #0
+ bl sub_08023A88
+_0802351A:
+ pop {r4, pc}
+
+ thumb_func_start sub_0802351C
+sub_0802351C: @ 0x0802351C
+ push {r4, r5, r6, r7, lr}
+ adds r7, r0, #0
+ ldrb r0, [r7, #0xe]
+ cmp r0, #0
+ beq _0802355A
+ ldrb r0, [r7, #0xb]
+ cmp r0, #1
+ beq _08023534
+ ldr r0, _080235A8 @ =gLinkEntity
+ ldrb r0, [r0, #0x1e]
+ cmp r0, #0xff
+ bne _0802355A
+_08023534:
+ movs r0, #0
+ strb r0, [r7, #0xe]
+ ldr r1, [r7, #0x54]
+ movs r0, #3
+ strb r0, [r1, #0xc]
+ ldr r1, [r7, #0x54]
+ adds r0, r7, #0
+ adds r0, #0x80
+ ldrb r0, [r0]
+ strb r0, [r1, #0xf]
+ ldr r0, [r7, #0x54]
+ ldrb r1, [r0, #0x14]
+ adds r1, #1
+ bl UpdateSprite
+ ldrb r1, [r7, #0x14]
+ adds r0, r7, #0
+ bl UpdateSprite
+_0802355A:
+ adds r0, r7, #0
+ adds r0, #0x7f
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _080235B4
+ ldrb r0, [r7, #0xb]
+ cmp r0, #0
+ bne _080235B8
+ ldr r5, _080235A8 @ =gLinkEntity
+ ldrb r0, [r7, #0x14]
+ movs r4, #7
+ adds r2, r4, #0
+ ands r2, r0
+ strb r2, [r5, #0x14]
+ ldr r3, _080235AC @ =gLinkState
+ ldr r0, [r3, #0x30]
+ movs r1, #0x80
+ lsls r1, r1, #0xc
+ orrs r0, r1
+ str r0, [r3, #0x30]
+ ldr r6, _080235B0 @ =gUnk_080CBC90
+ adds r2, r2, r6
+ movs r3, #0
+ ldrsb r3, [r2, r3]
+ lsls r3, r3, #0x10
+ adds r0, r7, #0
+ adds r1, r5, #0
+ movs r2, #0
+ bl PositionRelative
+ ldrb r0, [r7, #0x14]
+ ands r4, r0
+ adds r4, r4, r6
+ ldrb r0, [r4]
+ rsbs r0, r0, #0
+ adds r5, #0x63
+ strb r0, [r5]
+ b _080235B8
+ .align 2, 0
+_080235A8: .4byte gLinkEntity
+_080235AC: .4byte gLinkState
+_080235B0: .4byte gUnk_080CBC90
+_080235B4:
+ movs r0, #4
+ strb r0, [r7, #0xc]
+_080235B8:
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start sub_080235BC
+sub_080235BC: @ 0x080235BC
+ push {lr}
+ ldr r2, _080235D0 @ =gUnk_080CBC98
+ ldrb r1, [r0, #0xc]
+ lsls r1, r1, #2
+ adds r1, r1, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {pc}
+ .align 2, 0
+_080235D0: .4byte gUnk_080CBC98
+
+ thumb_func_start sub_080235D4
+sub_080235D4: @ 0x080235D4
+ push {r4, lr}
+ adds r4, r0, #0
+ movs r0, #1
+ strb r0, [r4, #0xc]
+ ldr r1, [r4, #0x50]
+ ldrh r0, [r1, #0x2e]
+ strh r0, [r4, #0x2e]
+ ldrh r0, [r1, #0x32]
+ strh r0, [r4, #0x32]
+ adds r0, r4, #0
+ bl sub_080239F0
+ ldrb r0, [r4, #0xa]
+ cmp r0, #1
+ bne _080235F6
+ movs r0, #0x10
+ b _080235F8
+_080235F6:
+ movs r0, #0x12
+_080235F8:
+ strb r0, [r4, #0x14]
+ ldrb r1, [r4, #0x14]
+ adds r0, r4, #0
+ bl UpdateSprite
+ pop {r4, pc}
+
+ thumb_func_start sub_08023604
+sub_08023604: @ 0x08023604
+ push {lr}
+ adds r2, r0, #0
+ ldr r0, [r2, #0x50]
+ adds r0, #0x7c
+ ldrb r1, [r0]
+ movs r0, #0xf
+ ands r0, r1
+ adds r0, r0, r2
+ adds r0, #0x78
+ ldrb r0, [r0]
+ cmp r0, #0x88
+ beq _08023640
+ movs r1, #0
+ movs r0, #2
+ strb r0, [r2, #0xc]
+ strb r1, [r2, #0xe]
+ ldrb r1, [r2, #0x10]
+ movs r0, #0x80
+ orrs r0, r1
+ strb r0, [r2, #0x10]
+ ldrb r1, [r2, #0x18]
+ movs r0, #4
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #1
+ orrs r0, r1
+ strb r0, [r2, #0x18]
+ adds r0, r2, #0
+ bl sub_08023644
+_08023640:
+ pop {pc}
+ .align 2, 0
+
+ thumb_func_start sub_08023644
+sub_08023644: @ 0x08023644
+ push {r4, r5, r6, lr}
+ adds r4, r0, #0
+ ldr r5, [r4, #0x50]
+ adds r0, r5, #0
+ adds r0, #0x58
+ ldrb r0, [r0]
+ cmp r0, #0x17
+ bne _08023692
+ ldrb r0, [r4, #0xe]
+ cmp r0, #0
+ beq _08023692
+ movs r0, #0x2e
+ ldrsh r1, [r4, r0]
+ movs r2, #0x2e
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bne _08023692
+ movs r6, #0x32
+ ldrsh r1, [r4, r6]
+ movs r2, #0x32
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bne _08023692
+ movs r2, #1
+ strb r2, [r4, #0xc]
+ ldrb r1, [r4, #0x10]
+ movs r0, #0x7f
+ ands r0, r1
+ strb r0, [r4, #0x10]
+ ldrb r1, [r4, #0x18]
+ movs r0, #4
+ rsbs r0, r0, #0
+ ands r0, r1
+ strb r0, [r4, #0x18]
+ ldr r0, [r4, #0x54]
+ strb r2, [r0, #0xe]
+ adds r0, r4, #0
+ bl sub_080239F0
+_08023692:
+ adds r0, r5, #0
+ adds r0, #0x7c
+ adds r1, r5, #0
+ adds r1, #0x7d
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080236F2
+ movs r2, #0xf
+ adds r1, r2, #0
+ ands r1, r0
+ adds r1, #0x78
+ adds r1, r4, r1
+ ldrb r0, [r1]
+ lsrs r0, r0, #4
+ ldr r3, _080236F4 @ =0x0000FFF8
+ adds r0, r0, r3
+ ldrh r6, [r4, #0x2e]
+ adds r0, r0, r6
+ strh r0, [r4, #0x2e]
+ ldrb r0, [r1]
+ ands r2, r0
+ adds r2, r2, r3
+ ldrh r0, [r4, #0x32]
+ adds r2, r2, r0
+ strh r2, [r4, #0x32]
+ ldrb r2, [r5, #0x1b]
+ lsrs r2, r2, #6
+ lsls r2, r2, #6
+ ldrb r3, [r4, #0x1b]
+ movs r1, #0x3f
+ adds r0, r1, #0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r4, #0x1b]
+ ldrb r0, [r5, #0x19]
+ lsrs r0, r0, #6
+ lsls r0, r0, #6
+ ldrb r2, [r4, #0x19]
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, #0x19]
+ adds r0, r5, #0
+ adds r0, #0x38
+ ldrb r1, [r0]
+ adds r0, r4, #0
+ adds r0, #0x38
+ strb r1, [r0]
+_080236F2:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_080236F4: .4byte 0x0000FFF8
+
+ thumb_func_start sub_080236F8
+sub_080236F8: @ 0x080236F8
+ push {r4, lr}
+ adds r4, r0, #0
+ ldrb r0, [r4, #0xf]
+ subs r0, #1
+ strb r0, [r4, #0xf]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _0802372E
+ movs r0, #2
+ strb r0, [r4, #0xc]
+ ldr r1, [r4, #0x54]
+ movs r0, #3
+ strb r0, [r1, #0xc]
+ ldr r1, [r4, #0x54]
+ ldr r0, [r4, #0x50]
+ adds r0, #0x80
+ ldrb r0, [r0]
+ strb r0, [r1, #0xf]
+ ldr r0, [r4, #0x54]
+ ldrb r1, [r0, #0x14]
+ adds r1, #1
+ bl UpdateSprite
+ ldrb r1, [r4, #0x14]
+ adds r0, r4, #0
+ bl UpdateSprite
+_0802372E:
+ pop {r4, pc}
+
+ thumb_func_start sub_08023730
+sub_08023730: @ 0x08023730
+ push {lr}
+ ldr r2, _08023744 @ =gUnk_080CBCA8
+ ldrb r1, [r0, #0xc]
+ lsls r1, r1, #2
+ adds r1, r1, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {pc}
+ .align 2, 0
+_08023744: .4byte gUnk_080CBCA8
+
+ thumb_func_start sub_08023748
+sub_08023748: @ 0x08023748
+ push {r4, lr}
+ adds r4, r0, #0
+ movs r0, #1
+ strb r0, [r4, #0xc]
+ movs r0, #0x14
+ strb r0, [r4, #0x14]
+ ldr r1, [r4, #0x50]
+ ldrh r0, [r1, #0x2e]
+ strh r0, [r4, #0x2e]
+ ldrh r0, [r1, #0x32]
+ strh r0, [r4, #0x32]
+ adds r0, r4, #0
+ bl sub_080239F0
+ adds r0, r4, #0
+ bl sub_08023A68
+ pop {r4, pc}
+
+ thumb_func_start sub_0802376C
+sub_0802376C: @ 0x0802376C
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ ldr r5, [r4, #0x50]
+ ldrb r0, [r5, #0x18]
+ lsls r0, r0, #0x1e
+ lsrs r0, r0, #0x1e
+ cmp r0, #1
+ bne _0802379A
+ adds r0, r5, #0
+ adds r0, #0x58
+ ldrb r0, [r0]
+ cmp r0, #0xf
+ bhi _0802379A
+ ldrb r0, [r4, #0x18]
+ movs r1, #4
+ rsbs r1, r1, #0
+ ands r1, r0
+ movs r0, #1
+ orrs r1, r0
+ strb r1, [r4, #0x18]
+ adds r0, r4, #0
+ bl sub_08004274
+_0802379A:
+ adds r0, r5, #0
+ adds r0, #0x7c
+ ldrb r1, [r0]
+ movs r0, #0xf
+ ands r0, r1
+ adds r0, r0, r4
+ adds r0, #0x78
+ ldrb r0, [r0]
+ cmp r0, #0x88
+ beq _080237D4
+ movs r1, #0
+ movs r0, #2
+ strb r0, [r4, #0xc]
+ strb r1, [r4, #0xe]
+ ldrb r1, [r4, #0x10]
+ movs r0, #0x80
+ orrs r0, r1
+ strb r0, [r4, #0x10]
+ ldr r0, [r4, #0x50]
+ adds r0, #0x7f
+ movs r1, #1
+ strb r1, [r0]
+ adds r0, r4, #0
+ movs r1, #0x14
+ bl sub_08023A88
+ adds r0, r4, #0
+ bl sub_080237D8
+_080237D4:
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start sub_080237D8
+sub_080237D8: @ 0x080237D8
+ push {r4, r5, r6, lr}
+ adds r4, r0, #0
+ ldr r5, [r4, #0x50]
+ adds r0, r5, #0
+ adds r0, #0x58
+ ldrb r0, [r0]
+ cmp r0, #0x17
+ bne _0802382E
+ ldrb r0, [r4, #0xe]
+ cmp r0, #0
+ beq _0802382E
+ movs r0, #0x2e
+ ldrsh r1, [r4, r0]
+ movs r2, #0x2e
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bne _0802382E
+ movs r6, #0x32
+ ldrsh r1, [r4, r6]
+ movs r2, #0x32
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bne _0802382E
+ movs r2, #1
+ strb r2, [r4, #0xc]
+ ldrb r1, [r4, #0x10]
+ movs r0, #0x7f
+ ands r0, r1
+ strb r0, [r4, #0x10]
+ ldrb r1, [r4, #0x18]
+ movs r0, #4
+ rsbs r0, r0, #0
+ ands r0, r1
+ strb r0, [r4, #0x18]
+ adds r0, r5, #0
+ adds r0, #0x7f
+ strb r2, [r0]
+ adds r0, r4, #0
+ bl sub_080239F0
+ adds r0, r4, #0
+ bl sub_08023A68
+_0802382E:
+ adds r0, r5, #0
+ adds r0, #0x7c
+ adds r1, r5, #0
+ adds r1, #0x7d
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _0802388E
+ movs r2, #0xf
+ adds r1, r2, #0
+ ands r1, r0
+ adds r1, #0x78
+ adds r1, r4, r1
+ ldrb r0, [r1]
+ lsrs r0, r0, #4
+ ldr r3, _08023890 @ =0x0000FFF8
+ adds r0, r0, r3
+ ldrh r6, [r4, #0x2e]
+ adds r0, r0, r6
+ strh r0, [r4, #0x2e]
+ ldrb r0, [r1]
+ ands r2, r0
+ adds r2, r2, r3
+ ldrh r0, [r4, #0x32]
+ adds r2, r2, r0
+ strh r2, [r4, #0x32]
+ ldrb r2, [r5, #0x1b]
+ lsrs r2, r2, #6
+ lsls r2, r2, #6
+ ldrb r3, [r4, #0x1b]
+ movs r1, #0x3f
+ adds r0, r1, #0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r4, #0x1b]
+ ldrb r0, [r5, #0x19]
+ lsrs r0, r0, #6
+ lsls r0, r0, #6
+ ldrb r2, [r4, #0x19]
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, #0x19]
+ adds r0, r5, #0
+ adds r0, #0x38
+ ldrb r1, [r0]
+ adds r0, r4, #0
+ adds r0, #0x38
+ strb r1, [r0]
+_0802388E:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_08023890: .4byte 0x0000FFF8
+
+ thumb_func_start sub_08023894
+sub_08023894: @ 0x08023894
+ push {r4, r5, lr}
+ adds r5, r0, #0
+ ldrb r0, [r5, #0xf]
+ subs r0, #1
+ strb r0, [r5, #0xf]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _08023900
+ movs r0, #2
+ strb r0, [r5, #0xc]
+ ldr r0, [r5, #0x50]
+ adds r0, #0x7f
+ movs r1, #1
+ strb r1, [r0]
+ ldrb r1, [r5, #0x14]
+ adds r0, r5, #0
+ bl UpdateSprite
+ ldr r0, [r5, #0x50]
+ ldrb r0, [r0, #0xb]
+ cmp r0, #0
+ bne _08023900
+ ldr r2, _08023904 @ =gLinkState
+ ldr r0, [r2, #0x30]
+ movs r1, #0x80
+ lsls r1, r1, #0xe
+ orrs r0, r1
+ str r0, [r2, #0x30]
+ ldr r4, _08023908 @ =gLinkEntity
+ ldrh r0, [r5, #0x2e]
+ strh r0, [r4, #0x2e]
+ ldrh r0, [r5, #0x32]
+ strh r0, [r4, #0x32]
+ ldr r0, [r5, #0x74]
+ adds r1, r5, #0
+ bl sub_080045C4
+ adds r0, #4
+ movs r1, #0x18
+ ands r0, r1
+ strb r0, [r4, #0x15]
+ lsrs r0, r0, #2
+ strb r0, [r4, #0x14]
+ adds r1, r4, #0
+ adds r1, #0x3d
+ movs r0, #0xc
+ strb r0, [r1]
+ subs r0, #0x1c
+ bl ModHealth
+ adds r0, r4, #0
+ movs r1, #0x7a
+ bl sub_0800449C
+_08023900:
+ pop {r4, r5, pc}
+ .align 2, 0
+_08023904: .4byte gLinkState
+_08023908: .4byte gLinkEntity
+
+ thumb_func_start sub_0802390C
+sub_0802390C: @ 0x0802390C
+ push {r4, r5, lr}
+ adds r5, r0, #0
+ adds r0, #0x41
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _08023932
+ ldr r2, [r5, #0x54]
+ adds r3, r5, #0
+ adds r3, #0x3d
+_08023922:
+ ldrb r0, [r3]
+ adds r1, r2, #0
+ adds r1, #0x3d
+ strb r0, [r1]
+ ldr r2, [r2, #0x54]
+ cmp r2, #0
+ bne _08023922
+ b _0802398C
+_08023932:
+ ldr r2, [r5, #0x54]
+ b _0802393C
+_08023936:
+ ldr r2, [r2, #0x54]
+ cmp r2, #0
+ beq _0802398C
+_0802393C:
+ adds r0, r2, #0
+ adds r0, #0x41
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _08023936
+ movs r0, #0x45
+ adds r0, r0, r2
+ mov ip, r0
+ ldrb r1, [r0]
+ movs r4, #0xff
+ subs r0, r4, r1
+ lsls r0, r0, #0x18
+ lsrs r3, r0, #0x18
+ cmp r3, #0
+ beq _08023936
+ adds r0, r1, #0
+ orrs r0, r4
+ mov r1, ip
+ strb r0, [r1]
+ adds r0, r2, #0
+ adds r0, #0x3d
+ ldrb r4, [r0]
+ adds r1, r5, #0
+ adds r1, #0x45
+ ldrb r0, [r1]
+ cmp r0, r3
+ blo _0802397A
+ subs r0, r0, r3
+ b _0802397C
+_0802397A:
+ movs r0, #0
+_0802397C:
+ strb r0, [r1]
+ adds r2, r5, #0
+_08023980:
+ adds r0, r2, #0
+ adds r0, #0x3d
+ strb r4, [r0]
+ ldr r2, [r2, #0x54]
+ cmp r2, #0
+ bne _08023980
+_0802398C:
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start sub_08023990
+sub_08023990: @ 0x08023990
+ push {r4, r5, lr}
+ adds r5, r0, #0
+ movs r0, #3
+ strb r0, [r5, #0xc]
+ ldrb r3, [r5, #0x18]
+ subs r0, #7
+ ands r0, r3
+ movs r3, #1
+ orrs r0, r3
+ strb r0, [r5, #0x18]
+ movs r0, #0x55
+ strb r0, [r5, #0x1a]
+ adds r4, r5, #0
+ adds r4, #0x29
+ ldrb r0, [r4]
+ movs r3, #7
+ orrs r0, r3
+ strb r0, [r4]
+ strh r1, [r5, #0x2e]
+ strh r2, [r5, #0x32]
+ ldr r0, _080239EC @ =gLinkEntity
+ adds r0, #0x38
+ ldrb r1, [r0]
+ adds r0, r5, #0
+ adds r0, #0x38
+ strb r1, [r0]
+ adds r0, r5, #0
+ bl UpdateSpriteOrderAndFlip
+ adds r0, r5, #0
+ movs r1, #0x16
+ bl UpdateSprite
+ ldr r4, [r5, #0x54]
+_080239D4:
+ adds r0, r4, #0
+ bl sub_080239F0
+ adds r0, r5, #0
+ adds r1, r4, #0
+ bl CopyPosition
+ ldr r4, [r4, #0x54]
+ cmp r4, #0
+ bne _080239D4
+ pop {r4, r5, pc}
+ .align 2, 0
+_080239EC: .4byte gLinkEntity
+
+ thumb_func_start sub_080239F0
+sub_080239F0: @ 0x080239F0
+ adds r2, r0, #0
+ adds r1, r2, #0
+ adds r1, #0x78
+ movs r0, #0x88
+ strb r0, [r1]
+ adds r1, #1
+ strb r0, [r1]
+ adds r1, #1
+ strb r0, [r1]
+ adds r1, #1
+ strb r0, [r1]
+ adds r1, #1
+ strb r0, [r1]
+ adds r1, #1
+ strb r0, [r1]
+ adds r1, #1
+ strb r0, [r1]
+ adds r1, #1
+ strb r0, [r1]
+ adds r1, #1
+ strb r0, [r1]
+ adds r1, #1
+ strb r0, [r1]
+ adds r1, #1
+ strb r0, [r1]
+ adds r1, #1
+ strb r0, [r1]
+ adds r1, #1
+ strb r0, [r1]
+ adds r1, #1
+ strb r0, [r1]
+ adds r1, #1
+ strb r0, [r1]
+ adds r1, #1
+ strb r0, [r1]
+ bx lr
+
+ thumb_func_start sub_08023A38
+sub_08023A38: @ 0x08023A38
+ push {lr}
+ adds r1, r0, #0
+ cmp r1, #0x1a
+ beq _08023A5A
+ cmp r1, #0x29
+ beq _08023A5A
+ ldr r0, _08023A60 @ =gUnk_080B37A0
+ adds r0, r1, r0
+ ldrb r1, [r0]
+ cmp r1, #9
+ beq _08023A5A
+ cmp r1, #0xb
+ beq _08023A5A
+ cmp r1, #0xa
+ beq _08023A5A
+ cmp r1, #0xc
+ bne _08023A64
+_08023A5A:
+ movs r0, #1
+ b _08023A66
+ .align 2, 0
+_08023A60: .4byte gUnk_080B37A0
+_08023A64:
+ movs r0, #0
+_08023A66:
+ pop {pc}
+
+ thumb_func_start sub_08023A68
+sub_08023A68: @ 0x08023A68
+ push {r4, lr}
+ adds r4, r0, #0
+ movs r1, #5
+ bl sub_0801D2B4
+ adds r2, r4, #0
+ adds r2, #0x29
+ ldrb r0, [r2]
+ movs r1, #7
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r4, #0
+ movs r1, #0x17
+ bl UpdateSprite
+ pop {r4, pc}
+
+ thumb_func_start sub_08023A88
+sub_08023A88: @ 0x08023A88
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ adds r5, r1, #0
+ movs r1, #0x22
+ bl sub_0801D2B4
+ adds r2, r4, #0
+ adds r2, #0x29
+ ldrb r1, [r2]
+ movs r0, #8
+ rsbs r0, r0, #0
+ ands r0, r1
+ movs r1, #4
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r4, #0
+ adds r1, r5, #0
+ bl UpdateSprite
+ pop {r4, r5, pc}
+
+ thumb_func_start sub_08023AB0
+sub_08023AB0: @ 0x08023AB0
+ push {r4, r5, r6, r7, lr}
+ adds r4, r0, #0
+ adds r7, r4, #0
+ adds r7, #0x7b
+ ldrb r0, [r7]
+ cmp r0, #8
+ bne _08023AF6
+ adds r5, r4, #0
+ adds r5, #0x7e
+ ldrb r0, [r5]
+ adds r6, r0, #0
+ cmp r6, #0
+ bne _08023B00
+ adds r0, r4, #0
+ bl sub_08023B38
+ cmp r0, #0
+ beq _08023ADE
+ adds r0, r4, #0
+ adds r0, #0x78
+ ldrh r0, [r0]
+ cmp r0, #0x1d
+ bhi _08023B34
+_08023ADE:
+ adds r1, r4, #0
+ adds r1, #0x3f
+ movs r0, #0x85
+ strb r0, [r1]
+ strb r6, [r7]
+ movs r0, #0x1e
+ strb r0, [r5]
+ ldrb r1, [r4, #0x14]
+ adds r0, r4, #0
+ bl UpdateSprite
+ b _08023B34
+_08023AF6:
+ adds r5, r4, #0
+ adds r5, #0x7e
+ ldrb r0, [r5]
+ cmp r0, #0
+ beq _08023B06
+_08023B00:
+ subs r0, #1
+ strb r0, [r5]
+ b _08023B34
+_08023B06:
+ adds r0, r4, #0
+ adds r0, #0x78
+ ldrh r0, [r0]
+ cmp r0, #0x59
+ bls _08023B34
+ adds r0, r4, #0
+ bl sub_08023B38
+ cmp r0, #0
+ beq _08023B34
+ adds r1, r4, #0
+ adds r1, #0x3f
+ movs r0, #0x87
+ strb r0, [r1]
+ movs r0, #8
+ strb r0, [r7]
+ movs r0, #0xa
+ strb r0, [r5]
+ ldrb r1, [r4, #0x14]
+ adds r1, #8
+ adds r0, r4, #0
+ bl UpdateSprite
+_08023B34:
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start sub_08023B38
+sub_08023B38: @ 0x08023B38
+ push {r4, r5, r6, lr}
+ adds r4, r0, #0
+ movs r0, #1
+ bl sub_08049DF4
+ adds r5, r0, #0
+ cmp r5, #0
+ bne _08023B4C
+ movs r0, #0
+ b _08023B8E
+_08023B4C:
+ movs r0, #0x2e
+ ldrsh r2, [r4, r0]
+ ldr r3, _08023B90 @ =gUnk_080CBCB8
+ ldrb r0, [r4, #0x14]
+ lsls r0, r0, #1
+ adds r1, r0, r3
+ ldrb r1, [r1]
+ lsls r1, r1, #0x18
+ asrs r1, r1, #0x18
+ adds r2, r2, r1
+ movs r6, #0x32
+ ldrsh r1, [r4, r6]
+ adds r0, #1
+ adds r0, r0, r3
+ ldrb r0, [r0]
+ lsls r0, r0, #0x18
+ asrs r0, r0, #0x18
+ adds r1, r1, r0
+ movs r3, #0
+ movs r4, #0x2e
+ ldrsh r0, [r5, r4]
+ subs r0, r0, r2
+ adds r0, #0x14
+ cmp r0, #0x28
+ bhi _08023B8C
+ movs r6, #0x32
+ ldrsh r0, [r5, r6]
+ subs r0, r0, r1
+ adds r0, #0x14
+ cmp r0, #0x28
+ bhi _08023B8C
+ movs r3, #1
+_08023B8C:
+ adds r0, r3, #0
+_08023B8E:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_08023B90: .4byte gUnk_080CBCB8
+
+ thumb_func_start sub_08023B94
+sub_08023B94: @ 0x08023B94
+ push {r4, r5, lr}
+ adds r5, r0, #0
+ ldrb r0, [r5, #0xa]
+ cmp r0, #1
+ bne _08023BAC
+ ldr r1, _08023BA8 @ =gUnk_080CBDBC
+ adds r0, r5, #0
+ bl sub_0800129E
+ b _08023BEC
+ .align 2, 0
+_08023BA8: .4byte gUnk_080CBDBC
+_08023BAC:
+ cmp r0, #0
+ bne _08023C00
+ movs r1, #0x36
+ ldrsh r0, [r5, r1]
+ cmp r0, #0
+ bne _08023BD8
+ adds r0, r5, #0
+ bl sub_080012DC
+ adds r1, r0, #0
+ cmp r1, #0
+ beq _08023BD8
+ ldr r0, _08023BD4 @ =gUnk_080012C8
+ lsls r1, r1, #2
+ adds r1, r1, r0
+ ldr r1, [r1]
+ adds r0, r5, #0
+ bl _call_via_r1
+ b _08023C06
+ .align 2, 0
+_08023BD4: .4byte gUnk_080012C8
+_08023BD8:
+ ldr r4, _08023BFC @ =gUnk_080CBDD4
+ adds r0, r5, #0
+ bl sub_0800279C
+ lsls r0, r0, #2
+ adds r0, r0, r4
+ ldr r1, [r0]
+ adds r0, r5, #0
+ bl _call_via_r1
+_08023BEC:
+ movs r3, #0x10
+ rsbs r3, r3, #0
+ adds r0, r5, #0
+ movs r1, #0
+ movs r2, #1
+ bl sub_0804A9AC
+ b _08023C06
+ .align 2, 0
+_08023BFC: .4byte gUnk_080CBDD4
+_08023C00:
+ adds r0, r5, #0
+ bl sub_08023E10
+_08023C06:
+ pop {r4, r5, pc}
+
+ thumb_func_start sub_08023C08
+sub_08023C08: @ 0x08023C08
+ push {lr}
+ ldr r2, _08023C1C @ =gUnk_080CBDEC
+ ldrb r1, [r0, #0xc]
+ lsls r1, r1, #2
+ adds r1, r1, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {pc}
+ .align 2, 0
+_08023C1C: .4byte gUnk_080CBDEC
+
+ thumb_func_start sub_08023C20
+sub_08023C20: @ 0x08023C20
+ push {r4, lr}
+ adds r4, r0, #0
+ adds r0, #0x43
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _08023C34
+ adds r0, r4, #0
+ movs r1, #0x1c
+ bl sub_0804A9FC
+_08023C34:
+ ldrb r0, [r4, #0xa]
+ cmp r0, #1
+ bne _08023C48
+ ldr r1, _08023C44 @ =gUnk_080CBDBC
+ adds r0, r4, #0
+ bl sub_0804AA30
+ b _08023C50
+ .align 2, 0
+_08023C44: .4byte gUnk_080CBDBC
+_08023C48:
+ ldr r1, _08023C54 @ =gUnk_080CBDD4
+ adds r0, r4, #0
+ bl sub_0804AA30
+_08023C50:
+ pop {r4, pc}
+ .align 2, 0
+_08023C54: .4byte gUnk_080CBDD4
+
+ thumb_func_start nullsub_137
+nullsub_137: @ 0x08023C58
+ bx lr
+ .align 2, 0
+
+ thumb_func_start sub_08023C5C
+sub_08023C5C: @ 0x08023C5C
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_0804A720
+ movs r0, #1
+ strb r0, [r4, #0xc]
+ bl Random
+ movs r1, #0x30
+ ands r0, r1
+ adds r0, #0xb4
+ strb r0, [r4, #0xe]
+ bl Random
+ movs r1, #0x18
+ ands r0, r1
+ strb r0, [r4, #0x15]
+ lsrs r0, r0, #3
+ strb r0, [r4, #0x14]
+ ldrb r1, [r4, #0x14]
+ adds r0, r4, #0
+ bl UpdateSprite
+ pop {r4, pc}
+
+ thumb_func_start sub_08023C8C
+sub_08023C8C: @ 0x08023C8C
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_080AEF88
+ adds r0, r4, #0
+ bl sub_08004274
+ adds r0, r4, #0
+ bl sub_08023E54
+ ldrb r0, [r4, #0xe]
+ subs r0, #1
+ strb r0, [r4, #0xe]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _08023CDC
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r0, [r0]
+ cmp r0, #1
+ beq _08023CBC
+ movs r0, #8
+ strb r0, [r4, #0xe]
+ b _08023CDC
+_08023CBC:
+ bl Random
+ movs r1, #0x30
+ ands r0, r1
+ adds r0, #0xb4
+ strb r0, [r4, #0xe]
+ adds r0, r4, #0
+ bl sub_08023E9C
+ ldrb r0, [r4, #0x15]
+ lsrs r0, r0, #3
+ strb r0, [r4, #0x14]
+ ldrb r1, [r4, #0x14]
+ adds r0, r4, #0
+ bl UpdateSprite
+_08023CDC:
+ pop {r4, pc}
+ .align 2, 0 \ No newline at end of file
diff --git a/asm/code_08023E10.s b/asm/code_08023E10.s
index c822d24a..36f8e890 100644
--- a/asm/code_08023E10.s
+++ b/asm/code_08023E10.s
@@ -8802,7 +8802,7 @@ sub_0802805C: @ 0x0802805C
push {r4, r5, lr}
adds r5, r0, #0
movs r1, #2
- bl sub_08004276
+ bl UpdateSpriteAnimation
bl sub_0807953C
cmp r0, #0
beq _0802807E
diff --git a/asm/code_08028E40.s b/asm/code_08028E40.s
index 600782fe..8eb740f3 100644
--- a/asm/code_08028E40.s
+++ b/asm/code_08028E40.s
@@ -769,7 +769,7 @@ sub_080293B4: @ 0x080293B4
adds r1, r1, r3
ldrb r2, [r1]
movs r1, #0xff
- bl sub_0804A7E0
+ bl CreateDeathFx
pop {pc}
.align 2, 0
_080293D4: .4byte gUnk_080CCC34
diff --git a/asm/code_0802B234.s b/asm/code_0802B234.s
index c9d3a844..0bb54b1f 100644
--- a/asm/code_0802B234.s
+++ b/asm/code_0802B234.s
@@ -1490,7 +1490,7 @@ sub_0802BD10: @ 0x0802BD10
ands r1, r2
strb r1, [r0, #0x10]
movs r1, #2
- bl sub_08004276
+ bl UpdateSpriteAnimation
pop {pc}
.align 2, 0
@@ -1632,7 +1632,7 @@ sub_0802BE18: @ 0x0802BE18
push {r4, lr}
adds r4, r0, #0
movs r1, #2
- bl sub_08004276
+ bl UpdateSpriteAnimation
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
@@ -8613,7 +8613,7 @@ sub_0802F284: @ 0x0802F284
bls _0802F298
adds r0, r4, #0
movs r1, #2
- bl sub_08004276
+ bl UpdateSpriteAnimation
b _0802F29E
_0802F298:
adds r0, r4, #0
@@ -10809,7 +10809,7 @@ sub_08030338: @ 0x08030338
_0803034C:
adds r0, r4, #0
movs r1, #3
- bl sub_08004276
+ bl UpdateSpriteAnimation
adds r0, r4, #0
adds r0, #0x84
ldr r0, [r0]
@@ -13287,7 +13287,7 @@ sub_080315BC: @ 0x080315BC
strb r0, [r4, #0xe]
adds r0, r4, #0
movs r1, #2
- bl sub_08004276
+ bl UpdateSpriteAnimation
b _080315FC
_080315D4:
adds r0, r4, #0
@@ -18505,7 +18505,7 @@ sub_08033C94: @ 0x08033C94
push {r4, lr}
adds r4, r0, #0
movs r1, #3
- bl sub_08004276
+ bl UpdateSpriteAnimation
adds r1, r4, #0
adds r1, #0x79
ldrb r0, [r1]
diff --git a/asm/code_08033FFC.s b/asm/code_08033FFC.s
index 5973bf86..8d072ff6 100644
--- a/asm/code_08033FFC.s
+++ b/asm/code_08033FFC.s
@@ -8116,7 +8116,7 @@ _08037CD6:
adds r0, r4, #0
movs r1, #0xff
movs r2, #0x58
- bl sub_0804A7E0
+ bl CreateDeathFx
pop {r4, pc}
.align 2, 0
@@ -8158,7 +8158,7 @@ _08037D1C:
_08037D26:
adds r0, r4, #0
movs r1, #2
- bl sub_08004276
+ bl UpdateSpriteAnimation
adds r0, r4, #0
bl sub_080AEF88
cmp r0, #0
@@ -8183,7 +8183,7 @@ sub_08037D54: @ 0x08037D54
push {r4, lr}
adds r4, r0, #0
movs r1, #2
- bl sub_08004276
+ bl UpdateSpriteAnimation
adds r2, r4, #0
adds r2, #0x5a
ldrb r1, [r2]
@@ -8457,7 +8457,7 @@ _08037F6E:
_08037F78:
adds r0, r4, #0
movs r1, #0xff
- bl sub_0804A7E0
+ bl CreateDeathFx
pop {r4, pc}
.align 2, 0
@@ -8513,7 +8513,7 @@ sub_08037FE0: @ 0x08037FE0
push {r4, lr}
adds r4, r0, #0
movs r1, #2
- bl sub_08004276
+ bl UpdateSpriteAnimation
ldrb r0, [r4, #0xe]
adds r2, r0, #0
cmp r2, #0
@@ -8567,7 +8567,7 @@ sub_08038048: @ 0x08038048
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r1, #2
- bl sub_08004276
+ bl UpdateSpriteAnimation
adds r0, r4, #0
bl sub_080AEF88
movs r0, #0x36
@@ -8669,7 +8669,7 @@ sub_08038110: @ 0x08038110
push {r4, lr}
adds r4, r0, #0
movs r1, #2
- bl sub_08004276
+ bl UpdateSpriteAnimation
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
@@ -8829,7 +8829,7 @@ _0803824A:
adds r0, r4, #0
movs r1, #0xff
movs r2, #0x58
- bl sub_0804A7E0
+ bl CreateDeathFx
pop {r4, pc}
.align 2, 0
@@ -8887,7 +8887,7 @@ _080382B8: .4byte gLinkEntity
_080382BC:
adds r0, r4, #0
movs r1, #2
- bl sub_08004276
+ bl UpdateSpriteAnimation
adds r0, r4, #0
bl sub_080AEF88
cmp r0, #0
@@ -8929,7 +8929,7 @@ sub_08038304: @ 0x08038304
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r1, #2
- bl sub_08004276
+ bl UpdateSpriteAnimation
adds r0, r4, #0
bl sub_080AEF88
cmp r0, #0
@@ -11182,7 +11182,7 @@ sub_08039418: @ 0x08039418
adds r0, r1, #0
movs r1, #0xf3
movs r2, #0
- bl sub_0804A7E0
+ bl CreateDeathFx
b _08039434
_0803942E:
adds r0, r1, #0
@@ -22035,7 +22035,7 @@ sub_0803E570: @ 0x0803E570
push {lr}
movs r1, #0xff
movs r2, #0x57
- bl sub_0804A7E0
+ bl CreateDeathFx
pop {pc}
thumb_func_start nullsub_20
@@ -22824,7 +22824,7 @@ sub_0803EB34: @ 0x0803EB34
push {lr}
movs r1, #0xff
movs r2, #0x57
- bl sub_0804A7E0
+ bl CreateDeathFx
pop {pc}
thumb_func_start nullsub_21
@@ -44329,7 +44329,7 @@ _08048C6C:
bl UpdateSprite
adds r0, r4, #0
movs r1, #7
- bl sub_08004276
+ bl UpdateSpriteAnimation
adds r1, r6, #0
ldrb r4, [r4, #0xa]
lsls r1, r4
@@ -44357,7 +44357,7 @@ _08048CBC:
movs r1, #0x1c
ands r1, r0
adds r0, r4, #0
- bl sub_08004276
+ bl UpdateSpriteAnimation
_08048CE4:
adds r0, r4, #0
bl sub_08004274
@@ -47976,11 +47976,11 @@ sub_0804A7D4: @ 0x0804A7D4
push {lr}
ldrb r1, [r0, #9]
movs r2, #0
- bl sub_0804A7E0
+ bl CreateDeathFx
pop {pc}
- thumb_func_start sub_0804A7E0
-sub_0804A7E0: @ 0x0804A7E0
+ thumb_func_start CreateDeathFx
+CreateDeathFx: @ 0x0804A7E0
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
diff --git a/asm/code_080874A0.s b/asm/code_080874A0.s
index 06d4285e..44d25eac 100644
--- a/asm/code_080874A0.s
+++ b/asm/code_080874A0.s
@@ -4732,7 +4732,7 @@ sub_08089848: @ 0x08089848
ands r1, r0
adds r1, #1
adds r0, r4, #0
- bl sub_08004276
+ bl UpdateSpriteAnimation
pop {r4, pc}
.align 2, 0
_08089870: .4byte gUnk_08120D90
diff --git a/asm/octorok.s b/asm/octorok.s
new file mode 100644
index 00000000..41b9f72d
--- /dev/null
+++ b/asm/octorok.s
@@ -0,0 +1,246 @@
+ .include "asm/macros.inc"
+
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_0801EC2C
+sub_0801EC2C: @ 0x0801EC2C
+ push {r4, r5, lr}
+ adds r5, r0, #0
+ bl sub_080AEF88
+ adds r0, r5, #0
+ bl sub_08004274
+ ldrb r0, [r5, #0xe]
+ subs r0, #1
+ strb r0, [r5, #0xe]
+ lsls r0, r0, #0x18
+ cmp r0, #0
+ bne _0801EC7E
+ adds r0, r5, #0
+ bl sub_0801EDEC
+ cmp r0, #0
+ beq _0801EC78
+ ldr r1, _0801EC74 @ =gUnk_080CA174
+ ldrb r0, [r5, #0xa]
+ adds r0, r0, r1
+ ldrb r4, [r0]
+ bl Random
+ movs r1, #3
+ ands r0, r1
+ cmp r4, r0
+ bhi _0801EC78
+ strb r1, [r5, #0xc]
+ ldrb r1, [r5, #0x14]
+ adds r1, #4
+ adds r0, r5, #0
+ bl UpdateSprite
+ b _0801EC7E
+ .align 2, 0
+_0801EC74: .4byte gUnk_080CA174
+_0801EC78:
+ adds r0, r5, #0
+ bl sub_0801ECFC
+_0801EC7E:
+ pop {r4, r5, pc}
+
+ thumb_func_start sub_0801EC80
+sub_0801EC80: @ 0x0801EC80
+ push {r4, r5, lr}
+ adds r4, r0, #0
+ bl sub_08004274
+ adds r5, r4, #0
+ adds r5, #0x5a
+ ldrb r1, [r5]
+ movs r0, #1
+ ands r0, r1
+ cmp r0, #0
+ beq _0801ECD8
+ adds r0, r4, #0
+ movs r1, #1
+ movs r2, #0
+ bl sub_0804A98C
+ adds r2, r0, #0
+ cmp r2, #0
+ beq _0801ECD8
+ ldrb r0, [r4, #0x15]
+ strb r0, [r2, #0x15]
+ ldrb r1, [r4, #0x15]
+ lsrs r1, r1, #2
+ ldr r0, _0801ECF0 @ =gUnk_080CA176
+ adds r1, r1, r0
+ movs r0, #0
+ ldrsb r0, [r1, r0]
+ ldrh r3, [r2, #0x2e]
+ adds r0, r0, r3
+ strh r0, [r2, #0x2e]
+ movs r0, #1
+ ldrsb r0, [r1, r0]
+ ldrh r1, [r2, #0x32]
+ adds r0, r0, r1
+ strh r0, [r2, #0x32]
+ ldr r0, _0801ECF4 @ =0x0000FFFD
+ strh r0, [r2, #0x36]
+ ldrb r1, [r5]
+ movs r0, #0xfe
+ ands r0, r1
+ strb r0, [r5]
+ ldr r0, _0801ECF8 @ =0x0000018D
+ bl sub_08004488
+_0801ECD8:
+ adds r0, r4, #0
+ adds r0, #0x5a
+ ldrb r1, [r0]
+ movs r0, #0x80
+ ands r0, r1
+ cmp r0, #0
+ beq _0801ECEC
+ adds r0, r4, #0
+ bl sub_0801ECFC
+_0801ECEC:
+ pop {r4, r5, pc}
+ .align 2, 0
+_0801ECF0: .4byte gUnk_080CA176
+_0801ECF4: .4byte 0x0000FFFD
+_0801ECF8: .4byte 0x0000018D
+
+ thumb_func_start sub_0801ECFC
+sub_0801ECFC: @ 0x0801ECFC
+ push {r4, lr}
+ adds r4, r0, #0
+ movs r0, #1
+ strb r0, [r4, #0xc]
+ bl Random
+ movs r1, #0x38
+ ands r0, r1
+ adds r0, #0x18
+ strb r0, [r4, #0xe]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start sub_0801ED14
+sub_0801ED14: @ 0x0801ED14
+ push {r4, r5, lr}
+ adds r5, r0, #0
+ ldrb r0, [r5, #0xa]
+ cmp r0, #2
+ beq _0801ED7E
+ adds r0, r5, #0
+ bl sub_08049FA0
+ cmp r0, #0
+ beq _0801ED4C
+ ldrb r0, [r5, #0xa]
+ cmp r0, #1
+ bne _0801ED46
+ bl Random
+ movs r1, #3
+ ands r1, r0
+ cmp r1, #0
+ bne _0801ED46
+ adds r0, r5, #0
+ movs r1, #1
+ bl sub_08049FDC
+ cmp r0, #0
+ bne _0801EDC4
+_0801ED46:
+ bl Random
+ b _0801EDD0
+_0801ED4C:
+ bl Random
+ movs r1, #3
+ ands r1, r0
+ cmp r1, #0
+ beq _0801ED78
+ adds r0, r5, #0
+ bl sub_08049EE4
+ adds r4, r0, #0
+ bl Random
+ ldr r2, _0801ED74 @ =gUnk_080CA17E
+ movs r1, #1
+ ands r1, r0
+ adds r1, r1, r2
+ ldrb r0, [r1]
+ adds r0, r0, r4
+ b _0801EDD0
+ .align 2, 0
+_0801ED74: .4byte gUnk_080CA17E
+_0801ED78:
+ bl Random
+ b _0801EDD0
+_0801ED7E:
+ adds r0, r5, #0
+ movs r1, #1
+ bl sub_08049FDC
+ cmp r0, #0
+ bne _0801EDC4
+ adds r0, r5, #0
+ bl sub_08049FA0
+ cmp r0, #0
+ beq _0801ED9A
+ bl Random
+ b _0801EDD0
+_0801ED9A:
+ bl Random
+ movs r1, #3
+ ands r1, r0
+ cmp r1, #0
+ beq _0801EDC4
+ adds r0, r5, #0
+ bl sub_08049EE4
+ adds r4, r0, #0
+ bl Random
+ ldr r2, _0801EDC0 @ =gUnk_080CA17E
+ movs r1, #1
+ ands r1, r0
+ adds r1, r1, r2
+ ldrb r0, [r1]
+ adds r0, r0, r4
+ b _0801EDD0
+ .align 2, 0
+_0801EDC0: .4byte gUnk_080CA17E
+_0801EDC4:
+ ldr r0, _0801EDE8 @ =gUnk_020000B0
+ ldr r1, [r0]
+ adds r0, r5, #0
+ bl sub_080045C4
+ adds r0, #4
+_0801EDD0:
+ movs r1, #0x18
+ ands r0, r1
+ strb r0, [r5, #0x15]
+ ldrb r0, [r5, #0x15]
+ lsrs r0, r0, #3
+ strb r0, [r5, #0x14]
+ ldrb r1, [r5, #0x14]
+ adds r0, r5, #0
+ bl UpdateSprite
+ pop {r4, r5, pc}
+ .align 2, 0
+_0801EDE8: .4byte gUnk_020000B0
+
+ thumb_func_start sub_0801EDEC
+sub_0801EDEC: @ 0x0801EDEC
+ push {r4, lr}
+ adds r4, r0, #0
+ movs r0, #1
+ bl sub_08049DF4
+ adds r1, r0, #0
+ cmp r1, #0
+ beq _0801EE12
+ adds r0, r4, #0
+ bl sub_080045C4
+ adds r0, #4
+ movs r1, #0x18
+ ands r0, r1
+ ldrb r4, [r4, #0x15]
+ cmp r0, r4
+ bne _0801EE12
+ movs r0, #1
+ b _0801EE14
+_0801EE12:
+ movs r0, #0
+_0801EE14:
+ pop {r4, pc}
+ .align 2, 0
diff --git a/asm/octorok/sub_0801EBC8.inc b/asm/octorok/sub_0801EBC8.inc
new file mode 100644
index 00000000..75fbd75a
--- /dev/null
+++ b/asm/octorok/sub_0801EBC8.inc
@@ -0,0 +1,28 @@
+ .include "asm/macros.inc"
+
+ .include "constants/constants.inc"
+
+ .text
+
+ .syntax unified
+ push {r4, lr}
+ adds r4, r0, #0
+ bl sub_0804A720
+ ldrb r0, [r4, #0xa]
+ cmp r0, #2
+ beq _0801EBDE
+ bl Random
+ movs r1, #3
+ ands r0, r1
+_0801EBDE:
+ strb r0, [r4, #0x14]
+ movs r0, #0x12
+ strb r0, [r4, #0x1c]
+ adds r0, r4, #0
+ bl sub_0801ECFC
+ ldrb r1, [r4, #0x14]
+ adds r0, r4, #0
+ bl UpdateSprite
+ pop {r4, pc}
+ .syntax divided
+ \ No newline at end of file
diff --git a/data/data_8.s b/data/data_8.s
index 7c14db37..6906ad0e 100644
--- a/data/data_8.s
+++ b/data/data_8.s
@@ -3304,10 +3304,10 @@ gUnk_080CA06C:: @ 080CA06C
gUnk_080CA11C:: @ 080CA11C
.incbin "baserom.gba", 0x0CA11C, 0x0000014
-gUnk_080CA130:: @ 080CA130
+gOctorok:: @ 080CA130
.incbin "baserom.gba", 0x0CA130, 0x0000018
-gUnk_080CA148:: @ 080CA148
+gOctorokIdle:: @ 080CA148
.incbin "baserom.gba", 0x0CA148, 0x0000010
gUnk_080CA158:: @ 080CA158
diff --git a/linker.ld b/linker.ld
index be33e671..466b1e0b 100644
--- a/linker.ld
+++ b/linker.ld
@@ -317,6 +317,9 @@ SECTIONS {
asm/readKeyInput.o(.text);
asm/code_0801D714.o(.text);
asm/code_0801D79C.o(.text);
+ src/octorok.o(.text);
+ asm/octorok.o(.text);
+ asm/code_0801EE18.o(.text);
asm/createSluggula.o(.text);
asm/code_08023E10.o(.text);
asm/doItemTrade.o(.text);
diff --git a/src/octorok.c b/src/octorok.c
new file mode 100644
index 00000000..64ceb622
--- /dev/null
+++ b/src/octorok.c
@@ -0,0 +1,140 @@
+#include "global.h"
+#include "entity.h"
+
+extern void sub_0800129E();
+extern void sub_0804A9AC();
+extern void sub_0804AA30();
+extern void sub_0804A9FC();
+extern void sub_0804A7D4();
+extern void CreateDeathFx();
+extern void sub_0801ECFC();
+extern u32 sub_0806F520();
+extern void UpdateSprite();
+extern void sub_0806F4E8();
+extern void sub_0806F3E4();
+extern void UpdateSpriteAnimation();
+extern void sub_0804A720();
+extern u32 Random();
+extern void sub_0801ED14();
+extern void sub_08004274();
+
+extern void (*gOctorok[2]);
+extern void (*gOctorokIdle[4])(Entity *);
+extern void (*gUnk_080CA158[4])(Entity *);
+
+extern u8 gUnk_080CA170[8];
+//Main
+void sub_0801EAB0(Entity *ent)
+{
+ sub_0800129E(ent, gOctorok);
+ sub_0804A9AC(ent, 0, 1, -16);
+}
+
+//Idle
+void sub_0801EAD0(Entity *ent)
+{
+ gOctorokIdle[ent->action](ent);
+}
+
+//Touch player
+void sub_0801EAE8(Entity *ent)
+{
+ if (ent->field_0x43 != 0) {
+ sub_0804A9FC(ent, 28);
+ }
+ sub_0804AA30(ent, gOctorok);
+}
+
+//Death
+void sub_0801EB0C(Entity *ent)
+{
+ if ((ent->entityType).parameter1 == 0) {
+ sub_0804A7D4(ent);
+ }
+ else {
+ CreateDeathFx(ent, 241, 0);
+ }
+}
+
+void sub_0801EB2C(Entity *ent)
+{
+ s32 iVar1;
+
+ if ((ent->previousActionFlag < 3) && (iVar1 = sub_0806F520(ent), iVar1 == 0)) {
+ sub_0801ECFC(ent);
+ UpdateSprite(ent, ent->animationState);
+ }
+ else {
+ gUnk_080CA158[ent->previousActionFlag](ent);
+ }
+}
+
+void sub_0801EB68(Entity *ent)
+{
+ ent->previousActionFlag = 1;
+ ent->filler[1] = 60;
+}
+
+void sub_0801EB74(Entity *ent)
+{
+ sub_0806F4E8(ent);
+}
+
+void sub_0801EB7C(Entity *ent)
+{
+ sub_0806F3E4(ent);
+}
+
+void sub_0801EB84(Entity *ent)
+{
+ ent->flags = ent->flags & 127;
+ UpdateSpriteAnimation(ent, 2);
+}
+
+void nullsub_3()
+{
+}
+
+void sub_0801EB9C(Entity *ent)
+{
+ if ((ent->flags & 128) != 0) {
+ ent->flags = ent->flags | 128;
+ ent->field_0x3a = ent->field_0x3a & 251;
+ }
+ else {
+ ent->currentHealth = 0;
+ }
+}
+
+//Init
+#ifdef NON_MATCHING
+void sub_0801EBC8(Entity *ent)
+{
+ sub_0804A720();
+ ent->animationState = (ent->entityType).parameter1 == 2 ? (ent->entityType).parameter1 : Random() & 3;
+ ent->filler[0] = 18;
+ sub_0801ECFC(ent);
+ UpdateSprite(ent,ent->animationState);
+}
+#else
+NAKED
+void sub_0801EBC8(Entity *ent)
+{
+ asm(".include \"asm/octorok/sub_0801EBC8.inc\"");
+}
+#endif
+
+void sub_0801EBF4(Entity *ent)
+{
+ u8 bVar1;
+ u32 uVar2;
+
+ bVar1 = ent->parameter3 -= 1;
+ if (bVar1 == 0) {
+ ent->action = 2;
+ uVar2 = Random();
+ ent->parameter3 = gUnk_080CA170[uVar2 & 3];
+ sub_0801ED14(ent);
+ }
+ sub_08004274(ent);
+} \ No newline at end of file