tmc/asm/code_0801EE18.s

10563 lines
171 KiB
ArmAsm

.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