tmc/asm/code_0801D79C.s

13579 lines
222 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_0801D79C
sub_0801D79C: @ 0x0801D79C
ldr r3, _0801D7B4 @ =gUnk_020176A0
lsls r2, r0, #1
adds r2, r2, r3
strh r1, [r2]
ldr r2, _0801D7B8 @ =gUnk_0200B644
lsrs r0, r0, #4
movs r1, #1
lsls r1, r0
ldr r0, [r2]
orrs r0, r1
str r0, [r2]
bx lr
.align 2, 0
_0801D7B4: .4byte gUnk_020176A0
_0801D7B8: .4byte gUnk_0200B644
thumb_func_start sub_0801D7BC
sub_0801D7BC: @ 0x0801D7BC
push {lr}
adds r2, r0, #0
cmp r1, #0
beq _0801D7D4
ldr r1, _0801D7CC @ =gLCDControls
ldr r0, _0801D7D0 @ =0x0000E0FF
b _0801D7D8
.align 2, 0
_0801D7CC: .4byte gLCDControls
_0801D7D0: .4byte 0x0000E0FF
_0801D7D4:
ldr r1, _0801D7E4 @ =gLCDControls
ldr r0, _0801D7E8 @ =0x0000FFFF
_0801D7D8:
strh r0, [r1, #6]
movs r0, #0
adds r1, r2, #0
bl sub_0801D79C
pop {pc}
.align 2, 0
_0801D7E4: .4byte gLCDControls
_0801D7E8: .4byte 0x0000FFFF
thumb_func_start sub_0801D7EC
sub_0801D7EC: @ 0x0801D7EC
push {r4, r5, r6, lr}
ldr r1, _0801D814 @ =gUnk_08100AA8
lsls r0, r0, #2
adds r0, r0, r1
ldr r4, [r0]
movs r6, #0x80
lsls r6, r6, #0x12
ldr r5, _0801D818 @ =0x040000D4
_0801D7FC:
movs r2, #0
ldrb r1, [r4, #3]
movs r0, #0xf
ands r1, r0
cmp r1, #0xd
beq _0801D894
cmp r1, #0xd
bhi _0801D81C
cmp r1, #7
beq _0801D842
b _0801D836
.align 2, 0
_0801D814: .4byte gUnk_08100AA8
_0801D818: .4byte 0x040000D4
_0801D81C:
cmp r1, #0xe
beq _0801D826
cmp r1, #0xf
beq _0801D82E
b _0801D836
_0801D826:
ldrb r0, [r6, #7]
cmp r0, #1
bls _0801D83E
b _0801D842
_0801D82E:
ldrb r0, [r6, #7]
cmp r0, #0
beq _0801D83E
b _0801D842
_0801D836:
ldrb r0, [r6, #7]
cmp r1, r0
bne _0801D83E
movs r2, #1
_0801D83E:
cmp r2, #0
beq _0801D888
_0801D842:
ldr r0, [r4]
ldr r1, _0801D868 @ =0x00FFFFFF
ands r0, r1
ldr r1, _0801D86C @ =gUnk_085A2E80
adds r2, r0, r1
ldr r1, [r4, #4]
ldr r0, [r4, #8]
movs r3, #0x80
lsls r3, r3, #0x18
cmp r0, #0
bge _0801D87C
ldr r0, _0801D870 @ =0x05FFFFFF
cmp r1, r0
bls _0801D874
adds r0, r2, #0
bl LZ77UnCompVram
b _0801D888
.align 2, 0
_0801D868: .4byte 0x00FFFFFF
_0801D86C: .4byte gUnk_085A2E80
_0801D870: .4byte 0x05FFFFFF
_0801D874:
adds r0, r2, #0
bl LZ77UnCompWram
b _0801D888
_0801D87C:
str r2, [r5]
str r1, [r5, #4]
lsrs r0, r0, #1
orrs r0, r3
str r0, [r5, #8]
ldr r0, [r5, #8]
_0801D888:
ldrb r1, [r4, #3]
movs r0, #0x80
ands r1, r0
adds r4, #0xc
cmp r1, #0
bne _0801D7FC
_0801D894:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0801D898
sub_0801D898: @ 0x0801D898
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
adds r4, r1, #0
adds r6, r2, #0
movs r0, #0x80
lsls r0, r0, #8
ands r0, r3
movs r1, #0x20
mov ip, r1
cmp r0, #0
beq _0801D8B2
movs r0, #0x40
mov ip, r0
_0801D8B2:
ldr r0, _0801D8D8 @ =0x00007FFF
ands r3, r0
ldr r1, _0801D8DC @ =0x040000D4
movs r2, #0x80
lsls r2, r2, #0x18
orrs r2, r6
lsls r7, r6, #1
mov r0, ip
lsls r6, r0, #1
_0801D8C4:
str r4, [r1]
str r5, [r1, #4]
str r2, [r1, #8]
ldr r0, [r1, #8]
adds r4, r4, r7
adds r5, r5, r6
subs r3, #1
cmp r3, #0
bne _0801D8C4
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0801D8D8: .4byte 0x00007FFF
_0801D8DC: .4byte 0x040000D4
thumb_func_start sub_0801D8E0
sub_0801D8E0: @ 0x0801D8E0
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
mov ip, r0
movs r0, #3
add ip, r0
subs r0, #7
mov r1, ip
ands r1, r0
mov ip, r1
ldr r6, _0801D90C @ =gUnk_02035540
mov sb, r6
ldrh r7, [r6]
movs r5, #1
movs r3, #0x80
lsls r3, r3, #5
add r3, sb
subs r4, r3, r1
movs r2, #0
b _0801D926
.align 2, 0
_0801D90C: .4byte gUnk_02035540
_0801D910:
cmp r1, r4
bhi _0801D918
cmp r3, r0
bls _0801D952
_0801D918:
cmp r4, r1
bhi _0801D920
cmp r0, r3
bls _0801D952
_0801D920:
adds r0, r2, #1
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
_0801D926:
cmp r2, r7
bhs _0801D94A
lsls r0, r2, #2
add r0, sb
ldrh r1, [r0, #2]
ldr r6, _0801D95C @ =gUnk_02035540
adds r1, r1, r6
ldrh r0, [r0, #4]
adds r0, r0, r6
cmp r1, r4
bhi _0801D940
cmp r4, r0
bls _0801D952
_0801D940:
cmp r1, r3
bhi _0801D910
cmp r3, r0
bhi _0801D910
movs r5, #0
_0801D94A:
lsls r0, r7, #2
mov sl, r0
cmp r5, #0
bne _0801D9D8
_0801D952:
movs r1, #0
mov r8, r1
lsls r6, r7, #2
mov sl, r6
b _0801D970
.align 2, 0
_0801D95C: .4byte gUnk_02035540
_0801D960:
movs r5, #0
_0801D962:
mov r0, r8
adds r0, #1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov r8, r0
cmp r8, r7
bhs _0801D9D4
_0801D970:
mov r1, r8
lsls r0, r1, #2
add r0, sb
ldrh r0, [r0, #2]
ldr r6, _0801D994 @ =gUnk_02035540
adds r3, r0, r6
mov r0, ip
subs r4, r3, r0
movs r5, #0
mov r0, sl
adds r0, #2
add r0, sb
adds r0, #4
cmp r4, r0
blo _0801D962
movs r5, #1
movs r2, #0
b _0801D9AE
.align 2, 0
_0801D994: .4byte gUnk_02035540
_0801D998:
cmp r1, r4
bhi _0801D9A0
cmp r3, r0
bls _0801D960
_0801D9A0:
cmp r4, r1
bhi _0801D9A8
cmp r0, r3
bls _0801D960
_0801D9A8:
adds r0, r2, #1
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
_0801D9AE:
cmp r2, r7
bhs _0801D9D0
lsls r0, r2, #2
add r0, sb
ldrh r1, [r0, #2]
adds r1, r1, r6
ldrh r0, [r0, #4]
adds r0, r0, r6
cmp r1, r4
bhi _0801D9C6
cmp r4, r0
blo _0801D960
_0801D9C6:
cmp r1, r3
bhs _0801D998
cmp r3, r0
bhi _0801D998
movs r5, #0
_0801D9D0:
cmp r5, #0
beq _0801D962
_0801D9D4:
cmp r5, #0
beq _0801DA00
_0801D9D8:
ldr r0, _0801D9FC @ =gUnk_02035542
mov r1, sl
adds r2, r1, r0
subs r3, r0, #2
subs r1, r4, r3
strh r1, [r2]
adds r0, #2
add r0, sl
add r1, ip
strh r1, [r0]
adds r0, r7, #1
strh r0, [r3]
adds r0, r4, #0
mov r1, ip
bl sub_0801D630
adds r0, r4, #0
b _0801DA02
.align 2, 0
_0801D9FC: .4byte gUnk_02035542
_0801DA00:
movs r0, #0
_0801DA02:
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0801DA0C
sub_0801DA0C: @ 0x0801DA0C
push {r4, r5, lr}
ldr r3, _0801DA44 @ =gUnk_02035540
subs r1, r0, r3
ldr r0, _0801DA48 @ =0x00000FFF
cmp r1, r0
bhi _0801DA74
adds r4, r3, #0
ldrh r5, [r4]
adds r4, #2
movs r2, #0
cmp r2, r5
bhs _0801DA74
ldrh r0, [r4]
cmp r0, r1
bne _0801DA4C
lsls r0, r5, #2
subs r1, r3, #2
adds r0, r0, r1
ldrh r1, [r0]
strh r1, [r4]
strh r2, [r0]
adds r0, #2
ldrh r1, [r0]
strh r1, [r4, #2]
strh r2, [r0]
subs r0, r5, #1
strh r0, [r3]
b _0801DA74
.align 2, 0
_0801DA44: .4byte gUnk_02035540
_0801DA48: .4byte 0x00000FFF
_0801DA4C:
adds r4, #4
adds r2, #1
cmp r2, r5
bhs _0801DA74
ldrh r0, [r4]
cmp r0, r1
bne _0801DA4C
lsls r1, r5, #2
ldr r3, _0801DA78 @ =gUnk_0203553E
adds r1, r1, r3
ldrh r0, [r1]
strh r0, [r4]
movs r2, #0
strh r2, [r1]
adds r1, #2
ldrh r0, [r1]
strh r0, [r4, #2]
strh r2, [r1]
subs r0, r5, #1
strh r0, [r3, #2]
_0801DA74:
pop {r4, r5, pc}
.align 2, 0
_0801DA78: .4byte gUnk_0203553E
thumb_func_start sub_0801DA7C
sub_0801DA7C: @ 0x0801DA7C
push {lr}
ldr r0, _0801DA8C @ =gUnk_02035540
movs r1, #0x80
lsls r1, r1, #5
bl sub_0801D630
pop {pc}
.align 2, 0
_0801DA8C: .4byte gUnk_02035540
thumb_func_start sub_0801DA90
sub_0801DA90: @ 0x0801DA90
push {r4, r5, lr}
adds r4, r0, #0
ldr r1, _0801DAEC @ =gUnk_03001000
ldrb r0, [r1]
movs r3, #0
movs r0, #1
strb r0, [r1]
ldr r0, _0801DAF0 @ =gUnk_03003DE0
strb r3, [r0]
ldr r0, _0801DAF4 @ =gUnk_03000FD0
strb r3, [r0]
ldr r5, _0801DAF8 @ =gLCDControls
adds r0, r5, #0
adds r0, #0x6d
strb r3, [r0]
subs r0, #1
strb r3, [r0]
ldr r1, _0801DAFC @ =0x040000B0
ldrh r2, [r1, #0xa]
ldr r0, _0801DB00 @ =0x0000C5FF
ands r0, r2
strh r0, [r1, #0xa]
ldrh r2, [r1, #0xa]
ldr r0, _0801DB04 @ =0x00007FFF
ands r0, r2
strh r0, [r1, #0xa]
ldrh r0, [r1, #0xa]
movs r0, #0x80
lsls r0, r0, #0x13
strh r3, [r0]
bl sub_0801DB10
bl sub_0801DB34
ldr r0, _0801DB08 @ =0x0600C000
movs r1, #0x20
bl sub_0801D630
ldr r0, _0801DB0C @ =gUnk_02034CB0
movs r1, #0x80
lsls r1, r1, #4
bl sub_0801D630
strh r4, [r5, #0xe]
pop {r4, r5, pc}
.align 2, 0
_0801DAEC: .4byte gUnk_03001000
_0801DAF0: .4byte gUnk_03003DE0
_0801DAF4: .4byte gUnk_03000FD0
_0801DAF8: .4byte gLCDControls
_0801DAFC: .4byte 0x040000B0
_0801DB00: .4byte 0x0000C5FF
_0801DB04: .4byte 0x00007FFF
_0801DB08: .4byte 0x0600C000
_0801DB0C: .4byte gUnk_02034CB0
thumb_func_start sub_0801DB10
sub_0801DB10: @ 0x0801DB10
push {r4, lr}
ldr r3, _0801DB30 @ =gUnk_03000020
movs r1, #0xe0
lsls r1, r1, #0x13
movs r0, #0x80
movs r4, #0xa8
lsls r4, r4, #2
adds r2, r4, #0
_0801DB20:
strh r2, [r3]
adds r3, #8
strh r2, [r1]
adds r1, #8
subs r0, #1
cmp r0, #0
bne _0801DB20
pop {r4, pc}
.align 2, 0
_0801DB30: .4byte gUnk_03000020
thumb_func_start sub_0801DB34
sub_0801DB34: @ 0x0801DB34
push {r4, lr}
ldr r4, _0801DB6C @ =gLCDControls
adds r0, r4, #0
movs r1, #0x7c
bl sub_0801D630
ldr r0, _0801DB70 @ =gUnk_02034CB0
str r0, [r4, #0x10]
ldr r0, _0801DB74 @ =0x00001F0C
strh r0, [r4, #8]
ldr r0, _0801DB78 @ =gUnk_02021F30
str r0, [r4, #0x1c]
ldr r0, _0801DB7C @ =0x00001C01
strh r0, [r4, #0x14]
ldr r0, _0801DB80 @ =gUnk_020344B0
str r0, [r4, #0x28]
ldr r0, _0801DB84 @ =0x00001D02
strh r0, [r4, #0x20]
ldr r0, _0801DB88 @ =gUnk_02001A40
str r0, [r4, #0x34]
ldr r0, _0801DB8C @ =0x00001E03
strh r0, [r4, #0x2c]
movs r0, #0xa0
lsls r0, r0, #1
strh r0, [r4]
ldr r0, _0801DB90 @ =0x0000FFFF
strh r0, [r4, #6]
pop {r4, pc}
.align 2, 0
_0801DB6C: .4byte gLCDControls
_0801DB70: .4byte gUnk_02034CB0
_0801DB74: .4byte 0x00001F0C
_0801DB78: .4byte gUnk_02021F30
_0801DB7C: .4byte 0x00001C01
_0801DB80: .4byte gUnk_020344B0
_0801DB84: .4byte 0x00001D02
_0801DB88: .4byte gUnk_02001A40
_0801DB8C: .4byte 0x00001E03
_0801DB90: .4byte 0x0000FFFF
thumb_func_start sub_0801DB94
sub_0801DB94: @ 0x0801DB94
ldr r0, _0801DB9C @ =gUnk_030010A0
ldrh r0, [r0, #0x1e]
lsrs r0, r0, #0xb
bx lr
.align 2, 0
_0801DB9C: .4byte gUnk_030010A0
thumb_func_start sub_0801DBA0
sub_0801DBA0: @ 0x0801DBA0
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #4
adds r4, r0, #0
adds r5, r1, #0
adds r1, r2, #0
adds r0, r5, #0
bl sub_0801D630
movs r0, #1
strb r0, [r5]
ldr r2, _0801DBE4 @ =gUnk_030010A0
ldrh r0, [r2, #0x1c]
lsrs r0, r0, #4
movs r1, #0x7f
ands r0, r1
strb r0, [r5, #1]
ldrh r0, [r2, #0x1e]
lsrs r0, r0, #4
ands r0, r1
strb r0, [r5, #2]
adds r5, #3
ldr r1, _0801DBE8 @ =gUnk_080C9C50
ldr r0, _0801DBEC @ =gUnk_02033A90
ldrb r0, [r0, #3]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
lsls r4, r4, #2
adds r4, r4, r0
ldr r6, [r4]
b _0801DD3A
.align 2, 0
_0801DBE4: .4byte gUnk_030010A0
_0801DBE8: .4byte gUnk_080C9C50
_0801DBEC: .4byte gUnk_02033A90
_0801DBF0:
ldrb r0, [r6]
ldrb r1, [r6, #1]
movs r2, #3
bl sub_0804B0FC
adds r4, r0, #0
cmp r4, #0
bne _0801DC04
adds r6, #8
b _0801DD3A
_0801DC04:
adds r0, r6, #0
bl sub_0801DF10
mov r8, r0
bl sub_0805279C
movs r1, #8
adds r1, r1, r6
mov sb, r1
cmp r0, #0
beq _0801DCAE
ldrb r0, [r4]
cmp r0, #0
beq _0801DCAE
movs r3, #0xfc
lsls r3, r3, #2
ldr r7, _0801DC84 @ =0x000007FF
_0801DC26:
ldrb r0, [r4]
cmp r0, #3
bgt _0801DCA6
cmp r0, #2
blt _0801DCA6
ldrb r1, [r4, #1]
mov r0, r8
str r3, [sp]
bl GetProgressFlagWithOffset
ldr r3, [sp]
cmp r0, #0
bne _0801DCA6
ldr r0, _0801DC88 @ =gUnk_0811E214
ldrb r2, [r6]
lsls r2, r2, #2
adds r2, r2, r0
ldrb r1, [r6, #1]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #1
ldr r1, [r2]
adds r2, r1, r0
movs r0, #2
strb r0, [r5]
ldrb r0, [r4]
cmp r0, #2
bne _0801DC8C
ldrh r0, [r4, #4]
lsls r0, r0, #4
ands r0, r3
movs r1, #8
orrs r0, r1
ldrh r1, [r2]
ands r1, r7
adds r0, r0, r1
asrs r0, r0, #4
strb r0, [r5, #1]
ldrh r0, [r4, #4]
lsrs r0, r0, #2
ands r0, r3
movs r1, #8
orrs r0, r1
ldrh r1, [r2, #2]
ands r1, r7
b _0801DC9E
.align 2, 0
_0801DC84: .4byte 0x000007FF
_0801DC88: .4byte gUnk_0811E214
_0801DC8C:
ldrh r0, [r2]
ands r0, r7
ldrh r1, [r4, #4]
adds r0, r0, r1
asrs r0, r0, #4
strb r0, [r5, #1]
ldrh r0, [r2, #2]
ands r0, r7
ldrh r1, [r4, #6]
_0801DC9E:
adds r0, r0, r1
asrs r0, r0, #4
strb r0, [r5, #2]
adds r5, #3
_0801DCA6:
adds r4, #8
ldrb r0, [r4]
cmp r0, #0
bne _0801DC26
_0801DCAE:
bl sub_0805279C
cmp r0, #0
beq _0801DD16
ldrb r1, [r6, #2]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0801DD16
ldr r0, _0801DD4C @ =gUnk_02033A90
ldrb r0, [r0, #3]
adds r0, #1
bl GetProgressFlag
cmp r0, #0
bne _0801DD16
ldr r0, _0801DD50 @ =gUnk_0811E214
ldrb r2, [r6]
lsls r2, r2, #2
adds r2, r2, r0
ldrb r1, [r6, #1]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #1
ldr r1, [r2]
adds r2, r1, r0
movs r0, #4
strb r0, [r5]
ldrh r0, [r2, #4]
lsrs r0, r0, #1
ldrh r1, [r2]
adds r0, r0, r1
asrs r1, r0, #4
adds r0, r1, #0
cmp r1, #0
bge _0801DCF8
adds r0, #0x7f
_0801DCF8:
asrs r0, r0, #7
lsls r0, r0, #7
subs r0, r1, r0
strb r0, [r5, #1]
ldrh r0, [r2, #6]
lsrs r0, r0, #1
ldrh r2, [r2, #2]
adds r0, r0, r2
asrs r1, r0, #4
adds r0, r1, #0
asrs r0, r0, #7
lsls r0, r0, #7
subs r0, r1, r0
strb r0, [r5, #2]
adds r5, #3
_0801DD16:
ldr r2, _0801DD54 @ =gUnk_030010A0
ldrh r0, [r6]
ldrh r1, [r2, #0x16]
cmp r0, r1
bne _0801DD38
movs r0, #3
strb r0, [r5]
ldrh r0, [r2, #0x18]
lsrs r0, r0, #4
movs r1, #0x7f
ands r0, r1
strb r0, [r5, #1]
ldrh r0, [r2, #0x1a]
lsrs r0, r0, #4
ands r0, r1
strb r0, [r5, #2]
adds r5, #3
_0801DD38:
mov r6, sb
_0801DD3A:
ldrb r0, [r6]
cmp r0, #0
beq _0801DD42
b _0801DBF0
_0801DD42:
add sp, #4
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0801DD4C: .4byte gUnk_02033A90
_0801DD50: .4byte gUnk_0811E214
_0801DD54: .4byte gUnk_030010A0
thumb_func_start sub_0801DD58
sub_0801DD58: @ 0x0801DD58
ldr r2, _0801DD7C @ =gUnk_0811E214
lsls r0, r0, #2
adds r0, r0, r2
lsls r2, r1, #2
adds r2, r2, r1
lsls r2, r2, #1
ldr r3, [r0]
adds r3, r3, r2
ldr r0, _0801DD80 @ =gUnk_02033A90
ldr r1, _0801DD84 @ =0x0000085C
adds r0, r0, r1
ldr r2, [r0]
ldrh r1, [r3]
strh r1, [r2, #4]
ldr r1, [r0]
ldrh r0, [r3, #2]
strh r0, [r1, #6]
bx lr
.align 2, 0
_0801DD7C: .4byte gUnk_0811E214
_0801DD80: .4byte gUnk_02033A90
_0801DD84: .4byte 0x0000085C
thumb_func_start sub_0801DD88
sub_0801DD88: @ 0x0801DD88
push {lr}
ldr r0, _0801DD98 @ =gUnk_0201AEE0
ldr r1, _0801DD9C @ =0x06006000
movs r2, #0x80
lsls r2, r2, #6
bl sub_08000E96
pop {pc}
.align 2, 0
_0801DD98: .4byte gUnk_0201AEE0
_0801DD9C: .4byte 0x06006000
thumb_func_start sub_0801DDA0
sub_0801DDA0: @ 0x0801DDA0
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x14
adds r4, r0, #0
bl sub_08052690
cmp r0, #0
bne _0801DDB8
b _0801DEEA
_0801DDB8:
ldr r1, _0801DDD8 @ =gUnk_080C9C50
ldr r0, _0801DDDC @ =gUnk_02033A90
ldrb r0, [r0, #3]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
lsls r0, r4, #2
adds r0, r0, r1
ldr r4, [r0]
ldr r0, _0801DDE0 @ =gUnk_02019EE0
movs r1, #0x80
lsls r1, r1, #8
bl sub_0801D630
b _0801DEE2
.align 2, 0
_0801DDD8: .4byte gUnk_080C9C50
_0801DDDC: .4byte gUnk_02033A90
_0801DDE0: .4byte gUnk_02019EE0
_0801DDE4:
ldrb r0, [r4]
ldrb r1, [r4, #1]
movs r2, #3
bl sub_0804B0FC
adds r6, r0, #0
adds r0, r4, #0
bl sub_0801DF10
adds r5, r0, #0
movs r0, #0
str r0, [sp, #0xc]
ldrh r2, [r4]
ldr r0, _0801DE14 @ =gUnk_02032EC0
ldrh r3, [r0, #0x20]
ldr r1, _0801DE18 @ =0x0000FFFF
ands r1, r2
ldr r0, _0801DE18 @ =0x0000FFFF
ands r0, r3
cmp r1, r0
bne _0801DE1C
movs r3, #8
b _0801DE36
.align 2, 0
_0801DE14: .4byte gUnk_02032EC0
_0801DE18: .4byte 0x0000FFFF
_0801DE1C:
bl sub_080527CC
cmp r0, #0
beq _0801DE28
movs r0, #2
str r0, [sp, #0xc]
_0801DE28:
adds r0, r6, #0
adds r1, r5, #0
bl sub_0801DF90
cmp r0, #0
beq _0801DE38
movs r3, #3
_0801DE36:
str r3, [sp, #0xc]
_0801DE38:
ldrb r1, [r4, #2]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0801DE46
movs r0, #0
str r0, [sp, #0xc]
_0801DE46:
adds r3, r4, #0
adds r3, #8
str r3, [sp, #0x10]
ldr r0, [sp, #0xc]
cmp r0, #0
beq _0801DEE0
ldr r2, _0801DEF8 @ =0x040000D4
ldr r0, [r4, #4]
ldr r1, _0801DEFC @ =gUnk_08324AE4
adds r0, r0, r1
str r0, [r2]
ldr r0, _0801DF00 @ =gUnk_02019EE0
str r0, [r2, #4]
ldr r0, _0801DF04 @ =0x84000100
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r0, _0801DF08 @ =gUnk_0811E214
ldrb r2, [r4]
lsls r2, r2, #2
adds r2, r2, r0
ldrb r1, [r4, #1]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #1
ldr r2, [r2]
adds r2, r2, r0
ldrh r0, [r2]
lsrs r0, r0, #4
str r0, [sp]
ldrh r0, [r2, #2]
ldr r1, _0801DF0C @ =0x000007FF
ands r0, r1
lsrs r0, r0, #4
str r0, [sp, #4]
ldrh r0, [r2, #4]
lsrs r7, r0, #4
ldrh r0, [r2, #6]
lsrs r0, r0, #4
mov sl, r0
adds r0, r7, #3
lsrs r0, r0, #2
str r0, [sp, #8]
movs r6, #0
cmp r6, sl
bhs _0801DEE0
_0801DEA0:
ldr r3, [sp, #8]
adds r1, r6, #0
muls r1, r3, r1
ldr r0, _0801DF00 @ =gUnk_02019EE0
adds r1, r1, r0
mov r8, r1
movs r5, #0
adds r0, r6, #1
mov sb, r0
cmp r5, r7
bhs _0801DEDA
_0801DEB6:
ldr r3, [sp]
adds r4, r3, r5
adds r0, r5, #0
mov r1, r8
bl sub_0801DF60
ldr r1, [sp, #0xc]
bl sub_0801DF78
adds r2, r0, #0
adds r0, r4, #0
ldr r3, [sp, #4]
adds r1, r3, r6
bl sub_0801DF28
adds r5, #1
cmp r5, r7
blo _0801DEB6
_0801DEDA:
mov r6, sb
cmp r6, sl
blo _0801DEA0
_0801DEE0:
ldr r4, [sp, #0x10]
_0801DEE2:
ldrb r0, [r4]
cmp r0, #0
beq _0801DEEA
b _0801DDE4
_0801DEEA:
add sp, #0x14
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0801DEF8: .4byte 0x040000D4
_0801DEFC: .4byte gUnk_08324AE4
_0801DF00: .4byte gUnk_02019EE0
_0801DF04: .4byte 0x84000100
_0801DF08: .4byte gUnk_0811E214
_0801DF0C: .4byte 0x000007FF
thumb_func_start sub_0801DF10
sub_0801DF10: @ 0x0801DF10
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #3]
cmp r0, #1
bne _0801DF20
movs r0, #0xc0
lsls r0, r0, #2
b _0801DF26
_0801DF20:
ldrb r0, [r1]
bl sub_08052D58
_0801DF26:
pop {pc}
thumb_func_start sub_0801DF28
sub_0801DF28: @ 0x0801DF28
push {r4, lr}
lsrs r4, r1, #3
lsls r4, r4, #4
lsrs r3, r0, #3
adds r4, r4, r3
lsls r4, r4, #5
ldr r3, _0801DF58 @ =gUnk_0201AEE0
adds r4, r4, r3
movs r3, #7
ands r1, r3
lsls r1, r1, #2
adds r4, r4, r1
ands r0, r3
lsls r0, r0, #2
lsls r2, r0
ldr r1, _0801DF5C @ =gUnk_080C9460
adds r0, r0, r1
ldr r1, [r4]
ldr r0, [r0]
ands r1, r0
orrs r1, r2
str r1, [r4]
pop {r4, pc}
.align 2, 0
_0801DF58: .4byte gUnk_0201AEE0
_0801DF5C: .4byte gUnk_080C9460
thumb_func_start sub_0801DF60
sub_0801DF60: @ 0x0801DF60
adds r3, r0, #0
lsrs r0, r3, #2
adds r0, r0, r1
ldrb r0, [r0]
movs r2, #3
adds r1, r2, #0
bics r1, r3
lsls r1, r1, #1
asrs r0, r1
ands r0, r2
bx lr
.align 2, 0
thumb_func_start sub_0801DF78
sub_0801DF78: @ 0x0801DF78
push {lr}
cmp r0, #2
beq _0801DF88
cmp r0, #2
blo _0801DF8E
cmp r0, #3
beq _0801DF8C
b _0801DF8E
_0801DF88:
adds r0, r1, #0
b _0801DF8E
_0801DF8C:
movs r0, #7
_0801DF8E:
pop {pc}
thumb_func_start sub_0801DF90
sub_0801DF90: @ 0x0801DF90
push {lr}
adds r2, r1, #0
cmp r0, #0
bne _0801DFAA
b _0801DFB0
_0801DF9A:
ldrb r1, [r0, #1]
adds r0, r2, #0
bl GetProgressFlagWithOffset
b _0801DFB2
_0801DFA4:
cmp r1, #1
beq _0801DF9A
adds r0, #8
_0801DFAA:
ldrb r1, [r0]
cmp r1, #0
bne _0801DFA4
_0801DFB0:
movs r0, #0
_0801DFB2:
pop {pc}
thumb_func_start sub_0801DFB4
sub_0801DFB4: @ 0x0801DFB4
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
mov r8, r0
adds r4, r1, #0
adds r5, r2, #0
adds r6, r3, #0
ldr r7, _0801E004 @ =gUnk_02022740
adds r0, r7, #0
movs r1, #0x10
bl sub_0801D630
strh r4, [r7, #6]
strh r5, [r7, #8]
strh r6, [r7, #0xa]
mov r0, r8
str r0, [r7, #0xc]
ldr r0, _0801E008 @ =gUnk_03003DF0
ldrb r0, [r0, #2]
strb r0, [r7, #3]
mov r1, r8
cmp r1, #0
beq _0801DFF8
ldrb r1, [r1, #0x11]
lsls r0, r1, #0x1c
lsrs r0, r0, #0x1c
strb r0, [r7, #4]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #2
orrs r0, r1
mov r1, r8
strb r0, [r1, #0x11]
_0801DFF8:
movs r0, #0
strb r0, [r7]
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0801E004: .4byte gUnk_02022740
_0801E008: .4byte gUnk_03003DF0
thumb_func_start sub_0801E00C
sub_0801E00C: @ 0x0801E00C
push {r4, lr}
ldr r1, _0801E024 @ =gUnk_080C9CAC
ldr r4, _0801E028 @ =gUnk_02022740
ldrb r0, [r4, #1]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl _call_via_r0
ldrb r0, [r4]
pop {r4, pc}
.align 2, 0
_0801E024: .4byte gUnk_080C9CAC
_0801E028: .4byte gUnk_02022740
thumb_func_start sub_0801E02C
sub_0801E02C: @ 0x0801E02C
push {r4, lr}
ldr r4, _0801E040 @ =gUnk_02022740
ldrh r0, [r4, #6]
bl sub_0801E0E0
movs r0, #3
strb r0, [r4]
movs r0, #1
strb r0, [r4, #1]
pop {r4, pc}
.align 2, 0
_0801E040: .4byte gUnk_02022740
thumb_func_start sub_0801E044
sub_0801E044: @ 0x0801E044
push {lr}
ldr r0, _0801E06C @ =gTextBox
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
bne _0801E06A
movs r0, #4
movs r1, #0
bl sub_080A7138
ldr r0, _0801E070 @ =gUnk_02022740
movs r1, #4
strb r1, [r0]
movs r1, #2
strb r1, [r0, #1]
movs r0, #0x6b
bl PlaySFX
_0801E06A:
pop {pc}
.align 2, 0
_0801E06C: .4byte gTextBox
_0801E070: .4byte gUnk_02022740
thumb_func_start sub_0801E074
sub_0801E074: @ 0x0801E074
push {lr}
ldr r0, _0801E084 @ =gUnk_02022740
ldrb r1, [r0]
cmp r1, #5
beq _0801E088
cmp r1, #6
beq _0801E08C
b _0801E098
.align 2, 0
_0801E084: .4byte gUnk_02022740
_0801E088:
ldrh r0, [r0, #8]
b _0801E08E
_0801E08C:
ldrh r0, [r0, #0xa]
_0801E08E:
bl sub_0801E0E0
ldr r1, _0801E09C @ =gUnk_02022740
movs r0, #3
strb r0, [r1, #1]
_0801E098:
pop {pc}
.align 2, 0
_0801E09C: .4byte gUnk_02022740
thumb_func_start sub_0801E0A0
sub_0801E0A0: @ 0x0801E0A0
push {r4, lr}
ldr r0, _0801E0D8 @ =gTextBox
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
bne _0801E0D4
ldr r4, _0801E0DC @ =gUnk_02022740
ldr r3, [r4, #0xc]
cmp r3, #0
beq _0801E0C8
ldrb r0, [r4, #4]
movs r1, #0xf
ands r1, r0
ldrb r2, [r3, #0x11]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3, #0x11]
_0801E0C8:
ldrb r0, [r4]
movs r1, #1
cmp r0, #6
bne _0801E0D2
movs r1, #2
_0801E0D2:
strb r1, [r4]
_0801E0D4:
pop {r4, pc}
.align 2, 0
_0801E0D8: .4byte gTextBox
_0801E0DC: .4byte gUnk_02022740
thumb_func_start sub_0801E0E0
sub_0801E0E0: @ 0x0801E0E0
push {lr}
adds r2, r0, #0
cmp r2, #0
beq _0801E102
ldr r0, _0801E0F8 @ =gUnk_02022740
ldr r1, [r0, #0xc]
cmp r1, #0
beq _0801E0FC
adds r0, r2, #0
bl TextboxNoOverlap
b _0801E102
.align 2, 0
_0801E0F8: .4byte gUnk_02022740
_0801E0FC:
adds r0, r2, #0
bl TextboxTryNoOverlap
_0801E102:
pop {pc}
thumb_func_start sub_0801E104
sub_0801E104: @ 0x0801E104
ldr r1, _0801E118 @ =gLCDControls
ldrh r2, [r1]
ldr r0, _0801E11C @ =0x00009FFF
ands r0, r2
movs r2, #0
strh r0, [r1]
adds r1, #0x6c
strb r2, [r1]
bx lr
.align 2, 0
_0801E118: .4byte gLCDControls
_0801E11C: .4byte 0x00009FFF
thumb_func_start sub_0801E120
sub_0801E120: @ 0x0801E120
ldr r3, _0801E14C @ =gLCDControls
ldrh r1, [r3]
movs r2, #0x80
lsls r2, r2, #6
adds r0, r2, #0
movs r2, #0
orrs r0, r1
strh r0, [r3]
adds r1, r3, #0
adds r1, #0x60
ldr r0, _0801E150 @ =0x00003F37
strh r0, [r1]
adds r1, #2
movs r0, #0x3f
strh r0, [r1]
adds r0, r3, #0
adds r0, #0x58
strh r2, [r0]
subs r1, #6
movs r0, #0xa0
strh r0, [r1]
bx lr
.align 2, 0
_0801E14C: .4byte gLCDControls
_0801E150: .4byte 0x00003F37
thumb_func_start sub_0801E154
sub_0801E154: @ 0x0801E154
push {lr}
movs r1, #0
bl sub_0801E24C
pop {pc}
.align 2, 0
thumb_func_start sub_0801E160
sub_0801E160: @ 0x0801E160
push {r4, r5, r6, lr}
mov r6, sb
mov r5, r8
push {r5, r6}
adds r6, r0, #0
mov r8, r1
mov sb, r2
ldr r5, _0801E1A8 @ =gUnk_03003DE4
ldrb r1, [r5]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #9
ldr r4, _0801E1AC @ =gUnk_02017AA0
adds r0, r0, r4
movs r1, #0xa0
lsls r1, r1, #4
bl sub_0801D630
adds r0, r6, #0
mov r1, r8
mov r2, sb
bl sub_0801E290
ldrb r1, [r5]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #9
adds r0, r0, r4
ldr r1, _0801E1B0 @ =0x04000040
ldr r2, _0801E1B4 @ =0xA2600001
bl sub_0805622C
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, pc}
.align 2, 0
_0801E1A8: .4byte gUnk_03003DE4
_0801E1AC: .4byte gUnk_02017AA0
_0801E1B0: .4byte 0x04000040
_0801E1B4: .4byte 0xA2600001
thumb_func_start sub_0801E1B8
sub_0801E1B8: @ 0x0801E1B8
push {r4, lr}
ldr r2, _0801E1E8 @ =gLCDControls
mov ip, r2
ldrh r3, [r2]
movs r4, #0x80
lsls r4, r4, #6
adds r2, r4, #0
movs r4, #0
orrs r2, r3
mov r3, ip
strh r2, [r3]
mov r2, ip
adds r2, #0x60
strh r0, [r2]
mov r0, ip
adds r0, #0x62
strh r1, [r0]
subs r0, #0xa
strh r4, [r0]
mov r1, ip
adds r1, #0x5c
movs r0, #0xa0
strh r0, [r1]
pop {r4, pc}
.align 2, 0
_0801E1E8: .4byte gLCDControls
thumb_func_start sub_0801E1EC
sub_0801E1EC: @ 0x0801E1EC
push {r4, r5, r6, lr}
mov r6, sb
mov r5, r8
push {r5, r6}
mov r8, r0
mov sb, r1
adds r4, r2, #0
ldr r6, _0801E23C @ =gUnk_03003DE4
ldrb r1, [r6]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #9
ldr r5, _0801E240 @ =gUnk_02017AA0
adds r0, r0, r5
movs r1, #0xa0
lsls r1, r1, #4
bl sub_0801D630
adds r0, r4, #0
movs r1, #0
bl sub_0801E24C
mov r0, r8
mov r1, sb
adds r2, r4, #0
bl sub_0801E290
ldrb r1, [r6]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #9
adds r0, r0, r5
ldr r1, _0801E244 @ =0x04000040
ldr r2, _0801E248 @ =0xA2600001
bl sub_0805622C
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, pc}
.align 2, 0
_0801E23C: .4byte gUnk_03003DE4
_0801E240: .4byte gUnk_02017AA0
_0801E244: .4byte 0x04000040
_0801E248: .4byte 0xA2600001
thumb_func_start sub_0801E24C
sub_0801E24C: @ 0x0801E24C
push {r4, r5, lr}
lsls r1, r1, #1
ldr r2, _0801E278 @ =gUnk_02018EE0
adds r5, r1, r2
movs r3, #0
adds r2, r0, #0
lsls r4, r2, #1
movs r0, #3
subs r1, r0, r4
cmp r3, r2
bgt _0801E28E
adds r4, r4, r5
_0801E264:
lsls r0, r3, #1
adds r0, r0, r5
strh r2, [r0]
strh r3, [r4]
cmp r1, #0
bge _0801E27C
adds r1, #6
lsls r0, r3, #2
adds r1, r1, r0
b _0801E288
.align 2, 0
_0801E278: .4byte gUnk_02018EE0
_0801E27C:
adds r1, #0xa
subs r0, r3, r2
lsls r0, r0, #2
adds r1, r1, r0
subs r4, #2
subs r2, #1
_0801E288:
adds r3, #1
cmp r3, r2
ble _0801E264
_0801E28E:
pop {r4, r5, pc}
thumb_func_start sub_0801E290
sub_0801E290: @ 0x0801E290
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
mov ip, r0
adds r6, r2, #0
ldr r0, _0801E2BC @ =gUnk_03003DE4
ldrb r0, [r0]
lsls r2, r0, #2
adds r2, r2, r0
lsls r2, r2, #9
lsls r0, r1, #1
ldr r3, _0801E2C0 @ =gUnk_02017AA0
adds r0, r0, r3
adds r2, r2, r0
adds r4, r2, #0
adds r5, r1, #0
mov sb, r5
ldr r0, _0801E2C4 @ =gUnk_02018EE0
mov r8, r0
b _0801E30A
.align 2, 0
_0801E2BC: .4byte gUnk_03003DE4
_0801E2C0: .4byte gUnk_02017AA0
_0801E2C4: .4byte gUnk_02018EE0
_0801E2C8:
mov r1, r8
movs r3, #0
ldrsh r0, [r1, r3]
movs r7, #2
add r8, r7
mov r3, ip
subs r1, r3, r0
adds r3, r3, r0
cmp r1, #0
bge _0801E2DE
movs r1, #0
_0801E2DE:
cmp r3, #0xef
ble _0801E2E4
movs r3, #0xf0
_0801E2E4:
mov r7, sb
lsls r0, r7, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x9f
bhi _0801E2F2
strb r3, [r4]
strb r1, [r4, #1]
_0801E2F2:
lsls r0, r5, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x9f
bhi _0801E2FE
strb r3, [r2]
strb r1, [r2, #1]
_0801E2FE:
subs r4, #2
adds r2, #2
movs r0, #1
rsbs r0, r0, #0
add sb, r0
adds r5, #1
_0801E30A:
adds r0, r6, #0
subs r6, #1
cmp r0, #0
bne _0801E2C8
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_0801E31C
sub_0801E31C: @ 0x0801E31C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x20
str r0, [sp]
str r1, [sp, #4]
mov sl, r2
mov sb, r3
ldr r0, _0801E3AC @ =gUnk_03003DE4
ldrb r1, [r0]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #9
ldr r1, _0801E3B0 @ =gUnk_02017AA0
adds r0, r0, r1
movs r1, #0xa0
lsls r1, r1, #4
bl sub_0801D630
cmp sl, sb
bge _0801E3DC
movs r6, #0
mov r8, sl
mov r7, r8
mov r0, r8
lsls r1, r0, #1
movs r0, #3
subs r5, r0, r1
cmp r6, r8
ble _0801E35E
b _0801E45E
_0801E35E:
mov r1, r8
lsls r0, r1, #2
ldr r4, _0801E3B4 @ =gUnk_02018EE0
adds r0, r0, r4
str r0, [sp, #0x10]
mov r1, sb
mov r0, r8
muls r0, r1, r0
str r0, [sp, #0x14]
movs r3, #0
_0801E372:
adds r0, r3, #0
mov r1, sl
str r3, [sp, #0x18]
bl Div
adds r4, r0, #0
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
str r4, [sp, #0x1c]
ldr r0, [sp, #0x14]
mov r1, sl
bl Div
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
lsls r2, r6, #2
ldr r4, _0801E3B4 @ =gUnk_02018EE0
adds r1, r2, r4
str r0, [r1]
ldr r0, [sp, #0x1c]
ldr r1, [sp, #0x10]
str r0, [r1]
ldr r3, [sp, #0x18]
cmp r5, #0
bge _0801E3B8
adds r0, r5, #6
adds r5, r0, r2
b _0801E3D2
.align 2, 0
_0801E3AC: .4byte gUnk_03003DE4
_0801E3B0: .4byte gUnk_02017AA0
_0801E3B4: .4byte gUnk_02018EE0
_0801E3B8:
adds r1, r5, #0
adds r1, #0xa
subs r0, r6, r7
lsls r0, r0, #2
adds r5, r1, r0
ldr r4, [sp, #0x10]
subs r4, #4
str r4, [sp, #0x10]
ldr r0, [sp, #0x14]
mov r1, sb
subs r0, r0, r1
str r0, [sp, #0x14]
subs r7, #1
_0801E3D2:
add r3, sb
adds r6, #1
cmp r6, r7
ble _0801E372
b _0801E45E
_0801E3DC:
movs r6, #0
mov r8, sb
mov r7, r8
mov r4, r8
lsls r1, r4, #1
movs r0, #3
subs r5, r0, r1
cmp r6, r8
bgt _0801E45E
lsls r0, r4, #2
ldr r1, _0801E438 @ =gUnk_02018EE0
adds r0, r0, r1
str r0, [sp, #8]
mov r0, sl
mov r4, r8
muls r4, r0, r4
str r4, [sp, #0xc]
movs r3, #0
_0801E400:
adds r0, r3, #0
mov r1, sb
str r3, [sp, #0x18]
bl Div
adds r4, r0, #0
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
str r4, [sp, #0x1c]
ldr r0, [sp, #0xc]
mov r1, sb
bl Div
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
lsls r2, r6, #2
ldr r4, _0801E438 @ =gUnk_02018EE0
adds r1, r2, r4
str r0, [r1]
ldr r0, [sp, #0x1c]
ldr r1, [sp, #8]
str r0, [r1]
ldr r3, [sp, #0x18]
cmp r5, #0
bge _0801E43C
adds r0, r5, #6
adds r5, r0, r2
b _0801E456
.align 2, 0
_0801E438: .4byte gUnk_02018EE0
_0801E43C:
adds r1, r5, #0
adds r1, #0xa
subs r0, r6, r7
lsls r0, r0, #2
adds r5, r1, r0
ldr r4, [sp, #8]
subs r4, #4
str r4, [sp, #8]
ldr r0, [sp, #0xc]
mov r1, sl
subs r0, r0, r1
str r0, [sp, #0xc]
subs r7, #1
_0801E456:
add r3, sl
adds r6, #1
cmp r6, r7
ble _0801E400
_0801E45E:
ldr r0, [sp]
ldr r1, [sp, #4]
mov r2, r8
bl sub_0801E290
ldr r0, _0801E48C @ =gUnk_03003DE4
ldrb r1, [r0]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #9
ldr r1, _0801E490 @ =gUnk_02017AA0
adds r0, r0, r1
ldr r1, _0801E494 @ =0x04000040
ldr r2, _0801E498 @ =0xA2600001
bl sub_0805622C
add sp, #0x20
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0801E48C: .4byte gUnk_03003DE4
_0801E490: .4byte gUnk_02017AA0
_0801E494: .4byte 0x04000040
_0801E498: .4byte 0xA2600001
thumb_func_start sub_0801E49C
sub_0801E49C: @ 0x0801E49C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
mov r8, r0
str r1, [sp, #4]
mov sb, r2
adds r5, r3, #0
ldr r0, _0801E5E4 @ =0x0000FFFF
movs r2, #0xf0
lsls r2, r2, #3
ldr r1, _0801E5E8 @ =gUnk_02018EE0
bl sub_0801D5EC
adds r3, r5, #0
subs r3, #0x40
movs r2, #0xff
ands r3, r2
ldr r1, _0801E5EC @ =gUnk_080C9160
adds r0, r3, #0
adds r0, #0x40
lsls r0, r0, #1
adds r0, r0, r1
movs r4, #0
ldrsh r0, [r0, r4]
mov r4, sb
muls r4, r0, r4
adds r0, r4, #0
asrs r0, r0, #8
mov r4, r8
adds r7, r4, r0
lsls r0, r3, #1
adds r0, r0, r1
movs r3, #0
ldrsh r0, [r0, r3]
mov r4, sb
muls r4, r0, r4
adds r0, r4, #0
asrs r0, r0, #8
ldr r3, [sp, #4]
adds r3, r3, r0
mov sl, r3
adds r3, r5, #0
adds r3, #0x68
ands r3, r2
adds r0, r3, #0
adds r0, #0x40
lsls r0, r0, #1
adds r0, r0, r1
movs r4, #0
ldrsh r0, [r0, r4]
mov r4, sb
muls r4, r0, r4
adds r0, r4, #0
asrs r0, r0, #8
mov r4, r8
adds r6, r4, r0
lsls r0, r3, #1
adds r0, r0, r1
movs r3, #0
ldrsh r0, [r0, r3]
mov r4, sb
muls r4, r0, r4
adds r0, r4, #0
asrs r0, r0, #8
ldr r3, [sp, #4]
adds r4, r3, r0
adds r3, r5, #0
subs r3, #0xe8
ands r3, r2
adds r0, r3, #0
adds r0, #0x40
lsls r0, r0, #1
adds r0, r0, r1
movs r2, #0
ldrsh r0, [r0, r2]
mov r2, sb
muls r2, r0, r2
adds r0, r2, #0
asrs r0, r0, #8
mov r2, r8
adds r5, r2, r0
lsls r0, r3, #1
adds r0, r0, r1
movs r3, #0
ldrsh r0, [r0, r3]
mov r1, sb
muls r1, r0, r1
adds r0, r1, #0
asrs r0, r0, #8
ldr r2, [sp, #4]
adds r2, r2, r0
mov r8, r2
movs r0, #0
str r0, [sp]
adds r0, r7, #0
mov r1, sl
adds r2, r6, #0
adds r3, r4, #0
bl sub_0801E64C
movs r0, #1
str r0, [sp]
adds r0, r7, #0
mov r1, sl
adds r2, r5, #0
mov r3, r8
bl sub_0801E64C
movs r0, #2
str r0, [sp]
adds r0, r6, #0
adds r1, r4, #0
adds r2, r5, #0
mov r3, r8
bl sub_0801E64C
ldr r5, _0801E5F0 @ =gUnk_03003DE4
ldrb r1, [r5]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #9
ldr r6, _0801E5F4 @ =gUnk_02017AA0
adds r0, r0, r6
movs r1, #0xa0
lsls r1, r1, #4
bl sub_0801D630
ldr r2, _0801E5E8 @ =gUnk_02018EE0
ldrb r1, [r5]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #9
adds r1, r0, r6
movs r3, #0xa0
mov sl, r3
_0801E5B0:
ldr r7, [r2]
ldr r6, [r2, #4]
ldr r5, [r2, #8]
adds r2, #0xc
cmp r7, r6
ble _0801E5C2
adds r4, r7, #0
adds r7, r6, #0
adds r6, r4, #0
_0801E5C2:
cmp r7, r5
ble _0801E5CC
adds r4, r7, #0
adds r7, r5, #0
adds r5, r4, #0
_0801E5CC:
cmp r6, r5
ble _0801E5D6
adds r4, r6, #0
adds r6, r5, #0
adds r5, r4, #0
_0801E5D6:
movs r0, #1
rsbs r0, r0, #0
cmp r7, r0
beq _0801E5F8
strb r5, [r1]
strb r7, [r1, #1]
b _0801E60A
.align 2, 0
_0801E5E4: .4byte 0x0000FFFF
_0801E5E8: .4byte gUnk_02018EE0
_0801E5EC: .4byte gUnk_080C9160
_0801E5F0: .4byte gUnk_03003DE4
_0801E5F4: .4byte gUnk_02017AA0
_0801E5F8:
cmp r6, r7
beq _0801E602
strb r5, [r1]
strb r6, [r1, #1]
b _0801E60A
_0801E602:
cmp r5, r7
beq _0801E60A
strb r7, [r1, #1]
strb r7, [r1]
_0801E60A:
movs r4, #1
rsbs r4, r4, #0
add sl, r4
adds r1, #2
mov r0, sl
cmp r0, #0
bgt _0801E5B0
ldr r0, _0801E63C @ =gUnk_03003DE4
ldrb r1, [r0]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #9
ldr r1, _0801E640 @ =gUnk_02017AA0
adds r0, r0, r1
ldr r1, _0801E644 @ =0x04000040
ldr r2, _0801E648 @ =0xA2600001
bl sub_0805622C
add sp, #8
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0801E63C: .4byte gUnk_03003DE4
_0801E640: .4byte gUnk_02017AA0
_0801E644: .4byte 0x04000040
_0801E648: .4byte 0xA2600001
thumb_func_start sub_0801E64C
sub_0801E64C: @ 0x0801E64C
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
adds r4, r1, #0
adds r6, r3, #0
ldr r7, _0801E6C4 @ =gUnk_02018EE0
cmp r4, #0
bge _0801E65E
cmp r6, #0
blt _0801E6C2
_0801E65E:
cmp r4, #0x9f
ble _0801E666
cmp r6, #0x9f
bgt _0801E6C2
_0801E666:
cmp r4, r6
ble _0801E676
adds r1, r4, #0
adds r4, r6, #0
adds r6, r1, #0
adds r1, r5, #0
adds r5, r2, #0
adds r2, r1, #0
_0801E676:
cmp r4, r6
beq _0801E6C2
subs r0, r2, r5
lsls r0, r0, #0x10
subs r1, r6, r4
bl Div
adds r3, r0, #0
cmp r4, #0
bge _0801E694
rsbs r0, r4, #0
muls r0, r3, r0
asrs r0, r0, #0x10
adds r5, r5, r0
movs r4, #0
_0801E694:
cmp r6, #0x9f
ble _0801E69A
movs r6, #0x9f
_0801E69A:
lsls r2, r5, #0x10
lsls r0, r4, #1
adds r0, r0, r4
ldr r1, [sp, #0x14]
adds r0, r0, r1
lsls r0, r0, #2
adds r7, r0, r7
_0801E6A8:
cmp r5, #0
bge _0801E6AE
movs r5, #0
_0801E6AE:
cmp r5, #0xf0
ble _0801E6B4
movs r5, #0xf0
_0801E6B4:
str r5, [r7]
adds r2, r2, r3
asrs r5, r2, #0x10
adds r4, #1
adds r7, #0xc
cmp r4, r6
ble _0801E6A8
_0801E6C2:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0801E6C4: .4byte gUnk_02018EE0
thumb_func_start sub_0801E6C8
sub_0801E6C8: @ 0x0801E6C8
push {r4, r5, r6, lr}
adds r4, r0, #0
subs r0, r4, #1
cmp r0, #0x63
bhi _0801E722
movs r1, #0
ldr r5, _0801E724 @ =gUnk_02022740
ldr r3, _0801E728 @ =gUnk_02002C01
movs r2, #0xf1
_0801E6DA:
adds r0, r1, r3
ldrb r6, [r0]
cmp r4, r6
bne _0801E6E4
strb r2, [r0]
_0801E6E4:
adds r1, #1
cmp r1, #0x7f
bls _0801E6DA
ldr r0, [r5, #0xc]
bl sub_08002632
adds r1, r0, #0
subs r0, r1, #1
cmp r0, #0x7e
bhi _0801E70A
ldr r0, _0801E72C @ =gUnk_02002A40
ldr r2, _0801E730 @ =0x000001C1
adds r0, r0, r2
adds r1, r1, r0
ldrb r0, [r1]
cmp r0, #0xf1
bne _0801E70A
movs r0, #0xf2
strb r0, [r1]
_0801E70A:
movs r1, #0
ldr r0, _0801E734 @ =gUnk_03003DF0
movs r2, #0xf1
adds r0, #0xb
_0801E712:
ldrb r3, [r0]
cmp r4, r3
bne _0801E71A
strb r2, [r0]
_0801E71A:
adds r0, #0xc
adds r1, #1
cmp r1, #0x1f
bls _0801E712
_0801E722:
pop {r4, r5, r6, pc}
.align 2, 0
_0801E724: .4byte gUnk_02022740
_0801E728: .4byte gUnk_02002C01
_0801E72C: .4byte gUnk_02002A40
_0801E730: .4byte 0x000001C1
_0801E734: .4byte gUnk_03003DF0
thumb_func_start sub_0801E738
sub_0801E738: @ 0x0801E738
push {r4, lr}
adds r4, r0, #0
bl sub_0801E82C
adds r0, r4, #0
subs r0, #0x65
cmp r0, #0x10
bhi _0801E790
adds r0, r4, #0
bl sub_0801E8B0
adds r1, r0, #0
cmp r1, #0
bge _0801E76E
movs r1, #0
ldr r0, _0801E794 @ =gUnk_02002A40
movs r3, #0x8c
lsls r3, r3, #1
adds r2, r0, r3
ldrb r0, [r2]
cmp r0, #0
beq _0801E76E
_0801E764:
adds r1, #1
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, #0
bne _0801E764
_0801E76E:
cmp r1, #0x11
bhi _0801E790
ldr r2, _0801E794 @ =gUnk_02002A40
movs r3, #0x8c
lsls r3, r3, #1
adds r0, r2, r3
adds r0, r1, r0
strb r4, [r0]
adds r3, #0x13
adds r0, r2, r3
adds r1, r1, r0
ldrb r0, [r1]
adds r0, #1
cmp r0, #0x63
ble _0801E78E
movs r0, #0x63
_0801E78E:
strb r0, [r1]
_0801E790:
pop {r4, pc}
.align 2, 0
_0801E794: .4byte gUnk_02002A40
thumb_func_start sub_0801E798
sub_0801E798: @ 0x0801E798
push {r4, lr}
bl sub_0801E8B0
adds r1, r0, #0
cmp r1, #0
blt _0801E7C4
ldr r2, _0801E7C8 @ =gUnk_02002A40
ldr r3, _0801E7CC @ =0x0000012B
adds r0, r2, r3
adds r3, r1, r0
ldrb r0, [r3]
subs r0, #1
cmp r0, #0
bgt _0801E7C2
movs r4, #0x8c
lsls r4, r4, #1
adds r0, r2, r4
adds r0, r1, r0
movs r1, #0
strb r1, [r0]
movs r0, #0
_0801E7C2:
strb r0, [r3]
_0801E7C4:
pop {r4, pc}
.align 2, 0
_0801E7C8: .4byte gUnk_02002A40
_0801E7CC: .4byte 0x0000012B
thumb_func_start sub_0801E7D0
sub_0801E7D0: @ 0x0801E7D0
push {lr}
bl sub_0801E8B0
adds r1, r0, #0
cmp r1, #0
blt _0801E7F0
ldr r0, _0801E7E8 @ =gUnk_02002A40
ldr r2, _0801E7EC @ =0x0000012B
adds r0, r0, r2
adds r0, r1, r0
ldrb r0, [r0]
b _0801E7F2
.align 2, 0
_0801E7E8: .4byte gUnk_02002A40
_0801E7EC: .4byte 0x0000012B
_0801E7F0:
movs r0, #0
_0801E7F2:
pop {pc}
thumb_func_start sub_0801E7F4
sub_0801E7F4: @ 0x0801E7F4
push {lr}
adds r1, r0, #0
subs r0, r1, #1
cmp r0, #0x63
bhi _0801E80C
ldr r0, _0801E808 @ =gUnk_02002C81
bl sub_0801D5A8
b _0801E80E
.align 2, 0
_0801E808: .4byte gUnk_02002C81
_0801E80C:
movs r0, #0
_0801E80E:
pop {pc}
thumb_func_start sub_0801E810
sub_0801E810: @ 0x0801E810
push {lr}
adds r1, r0, #0
subs r0, r1, #1
cmp r0, #0x63
bhi _0801E828
ldr r0, _0801E824 @ =gUnk_02002C8E
bl sub_0801D5A8
b _0801E82A
.align 2, 0
_0801E824: .4byte gUnk_02002C8E
_0801E828:
movs r0, #0
_0801E82A:
pop {pc}
thumb_func_start sub_0801E82C
sub_0801E82C: @ 0x0801E82C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r1, _0801E8AC @ =gUnk_02002B54
movs r5, #0
adds r2, r1, #4
_0801E83C:
ldrb r0, [r2, #0x13]
adds r3, r1, #4
mov sl, r3
cmp r0, #0
bne _0801E848
strb r0, [r2]
_0801E848:
adds r2, #1
adds r5, #1
cmp r5, #0x12
bls _0801E83C
movs r0, #0
strb r0, [r1, #0x16]
adds r2, r1, #0
adds r2, #0x29
strb r0, [r2]
movs r5, #0
movs r0, #0x17
adds r0, r0, r1
mov sb, r0
movs r3, #0x18
adds r3, r3, r1
mov r8, r3
adds r7, r1, #4
adds r6, r1, #5
_0801E86C:
mov r1, sl
adds r0, r1, r5
ldrb r0, [r0]
subs r0, #0x65
cmp r0, #0x10
bls _0801E890
movs r4, #0x12
subs r4, r4, r5
adds r0, r6, #0
adds r1, r7, #0
adds r2, r4, #0
bl sub_0801D66C
mov r0, r8
mov r1, sb
adds r2, r4, #0
bl sub_0801D66C
_0801E890:
movs r3, #1
add sb, r3
add r8, r3
adds r7, #1
adds r6, #1
adds r5, #1
cmp r5, #0x11
bls _0801E86C
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0801E8AC: .4byte gUnk_02002B54
thumb_func_start sub_0801E8B0
sub_0801E8B0: @ 0x0801E8B0
push {lr}
adds r2, r0, #0
movs r1, #0
ldr r3, _0801E8C4 @ =gUnk_02002B58
_0801E8B8:
adds r0, r1, r3
ldrb r0, [r0]
cmp r2, r0
bne _0801E8C8
adds r0, r1, #0
b _0801E8D2
.align 2, 0
_0801E8C4: .4byte gUnk_02002B58
_0801E8C8:
adds r1, #1
cmp r1, #0x11
bls _0801E8B8
movs r0, #1
rsbs r0, r0, #0
_0801E8D2:
pop {pc}
thumb_func_start sub_0801E8D4
sub_0801E8D4: @ 0x0801E8D4
push {r4, r5, lr}
movs r5, #0xa
_0801E8D8:
adds r0, r5, #0
bl sub_0801E7F4
cmp r0, #0
beq _0801E990
adds r0, r5, #0
bl sub_0801E810
cmp r0, #0
bne _0801E990
ldr r1, _0801E910 @ =gUnk_080C9CBC
lsls r0, r5, #3
adds r0, r0, r1
ldrb r1, [r0, #4]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _0801E914 @ =gUnk_080FE320
adds r2, r0, r1
ldrh r3, [r2, #0x12]
ldrb r0, [r2, #0x10]
cmp r0, #0xa
bhi _0801E97C
lsls r0, r0, #2
ldr r1, _0801E918 @ =_0801E91C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801E910: .4byte gUnk_080C9CBC
_0801E914: .4byte gUnk_080FE320
_0801E918: .4byte _0801E91C
_0801E91C: @ jump table
.4byte _0801E948 @ case 0
.4byte _0801E94C @ case 1
.4byte _0801E950 @ case 2
.4byte _0801E954 @ case 3
.4byte _0801E958 @ case 4
.4byte _0801E95C @ case 5
.4byte _0801E962 @ case 6
.4byte _0801E968 @ case 7
.4byte _0801E96E @ case 8
.4byte _0801E972 @ case 9
.4byte _0801E978 @ case 10
_0801E948:
movs r4, #0
b _0801E97C
_0801E94C:
ldrb r4, [r2, #0x11]
b _0801E97C
_0801E950:
movs r4, #0xf
b _0801E97C
_0801E954:
movs r4, #0x10
b _0801E97C
_0801E958:
movs r4, #0x11
b _0801E97C
_0801E95C:
movs r4, #4
movs r3, #0x83
b _0801E97C
_0801E962:
movs r4, #4
movs r3, #0x84
b _0801E97C
_0801E968:
movs r4, #4
movs r3, #0x87
b _0801E97C
_0801E96E:
movs r4, #4
b _0801E97A
_0801E972:
movs r4, #4
movs r3, #0x8b
b _0801E97C
_0801E978:
movs r4, #5
_0801E97A:
movs r3, #0x88
_0801E97C:
adds r0, r4, #0
adds r1, r3, #0
bl sub_0807CB24
cmp r0, #0
beq _0801E990
ldr r0, _0801E998 @ =gUnk_02002C8E
adds r1, r5, #0
bl sub_0801D5BC
_0801E990:
adds r5, #1
cmp r5, #0x64
bls _0801E8D8
pop {r4, r5, pc}
.align 2, 0
_0801E998: .4byte gUnk_02002C8E
thumb_func_start sub_0801E99C
sub_0801E99C: @ 0x0801E99C
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
bl sub_08002632
mov r8, r0
ldr r1, _0801E9E4 @ =gUnk_08001DCC
lsls r0, r0, #2
adds r0, r0, r1
ldr r7, [r0]
movs r0, #0x67
bl GetInventoryValue
cmp r0, #0
beq _0801EA56
ldr r1, _0801E9E8 @ =gUnk_02002A40
ldrb r0, [r7]
ldrb r2, [r1, #8]
cmp r0, r2
bhi _0801EA56
ldr r2, _0801E9EC @ =0x000001C1
adds r0, r1, r2
add r0, r8
ldrb r5, [r0]
subs r2, #0x80
adds r0, r1, r2
add r0, r8
ldrb r6, [r0]
adds r4, r6, r7
_0801E9D6:
cmp r5, #0xf1
beq _0801E9F6
cmp r5, #0xf1
bhi _0801E9F0
cmp r5, #0
beq _0801E9F6
b _0801EA10
.align 2, 0
_0801E9E4: .4byte gUnk_08001DCC
_0801E9E8: .4byte gUnk_02002A40
_0801E9EC: .4byte 0x000001C1
_0801E9F0:
cmp r5, #0xf2
beq _0801EA0A
b _0801EA10
_0801E9F6:
ldrb r5, [r4, #5]
cmp r5, #0
beq _0801EA10
cmp r5, #0xff
beq _0801EA14
adds r0, r5, #0
bl sub_0801E7F4
cmp r0, #0
beq _0801EA10
_0801EA0A:
adds r4, #1
adds r6, #1
ldrb r5, [r4, #5]
_0801EA10:
cmp r5, #0xff
bne _0801EA1C
_0801EA14:
adds r0, r7, #0
bl sub_0801EA74
adds r5, r0, #0
_0801EA1C:
cmp r5, #0
beq _0801EA32
cmp r5, #0xf2
beq _0801E9D6
adds r0, r5, #0
bl sub_0801E7F4
cmp r0, #0
beq _0801EA34
movs r5, #0xf1
b _0801E9D6
_0801EA32:
movs r5, #0xf3
_0801EA34:
ldr r1, _0801EA5C @ =gUnk_02002A40
ldr r2, _0801EA60 @ =0x000001C1
adds r0, r1, r2
add r0, r8
strb r5, [r0]
subs r2, #0x80
adds r0, r1, r2
add r0, r8
strb r6, [r0]
bl Random
ldrb r4, [r7, #1]
movs r1, #0x64
bl __modsi3
cmp r4, r0
bhi _0801EA64
_0801EA56:
movs r0, #0
b _0801EA6E
.align 2, 0
_0801EA5C: .4byte gUnk_02002A40
_0801EA60: .4byte 0x000001C1
_0801EA64:
subs r0, r5, #1
cmp r0, #0x63
bls _0801EA6C
movs r5, #0
_0801EA6C:
adds r0, r5, #0
_0801EA6E:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0801EA74
sub_0801EA74: @ 0x0801EA74
push {r4, r5, r6, lr}
bl Random
movs r1, #0x12
bl __modsi3
adds r5, r0, #0
movs r6, #0
_0801EA84:
ldr r0, _0801EA98 @ =gUnk_080CA11C
adds r0, r5, r0
ldrb r4, [r0]
adds r0, r4, #0
bl sub_0801E7F4
cmp r0, #0
bne _0801EA9C
adds r0, r4, #0
b _0801EAAE
.align 2, 0
_0801EA98: .4byte gUnk_080CA11C
_0801EA9C:
adds r0, r5, #1
movs r1, #0x12
bl __modsi3
adds r5, r0, #0
adds r6, #1
cmp r6, #0x11
bls _0801EA84
movs r0, #0xf2
_0801EAAE:
pop {r4, r5, r6, pc}
thumb_func_start sub_0801EAB0
sub_0801EAB0: @ 0x0801EAB0
push {r4, lr}
adds r4, r0, #0
ldr r1, _0801EACC @ =gUnk_080CA130
bl sub_0800129E
movs r3, #0x10
rsbs r3, r3, #0
adds r0, r4, #0
movs r1, #0
movs r2, #1
bl sub_0804A9AC
pop {r4, pc}
.align 2, 0
_0801EACC: .4byte gUnk_080CA130
thumb_func_start sub_0801EAD0
sub_0801EAD0: @ 0x0801EAD0
push {lr}
ldr r2, _0801EAE4 @ =gUnk_080CA148
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0801EAE4: .4byte gUnk_080CA148
thumb_func_start sub_0801EAE8
sub_0801EAE8: @ 0x0801EAE8
push {r4, lr}
adds r4, r0, #0
adds r0, #0x43
ldrb r0, [r0]
cmp r0, #0
beq _0801EAFC
adds r0, r4, #0
movs r1, #0x1c
bl sub_0804A9FC
_0801EAFC:
ldr r1, _0801EB08 @ =gUnk_080CA130
adds r0, r4, #0
bl sub_0804AA30
pop {r4, pc}
.align 2, 0
_0801EB08: .4byte gUnk_080CA130
thumb_func_start sub_0801EB0C
sub_0801EB0C: @ 0x0801EB0C
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xa]
cmp r0, #0
bne _0801EB1E
adds r0, r1, #0
bl sub_0804A7D4
b _0801EB28
_0801EB1E:
adds r0, r1, #0
movs r1, #0xf1
movs r2, #0
bl sub_0804A7E0
_0801EB28:
pop {pc}
.align 2, 0
thumb_func_start sub_0801EB2C
sub_0801EB2C: @ 0x0801EB2C
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xd]
cmp r0, #2
bhi _0801EB50
adds r0, r4, #0
bl sub_0806F520
cmp r0, #0
bne _0801EB50
adds r0, r4, #0
bl sub_0801ECFC
ldrb r1, [r4, #0x14]
adds r0, r4, #0
bl sub_08004260
b _0801EB60
_0801EB50:
ldr r0, _0801EB64 @ =gUnk_080CA158
ldrb r1, [r4, #0xd]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
_0801EB60:
pop {r4, pc}
.align 2, 0
_0801EB64: .4byte gUnk_080CA158
thumb_func_start sub_0801EB68
sub_0801EB68: @ 0x0801EB68
movs r1, #1
strb r1, [r0, #0xd]
movs r1, #0x3c
strb r1, [r0, #0x1d]
bx lr
.align 2, 0
thumb_func_start sub_0801EB74
sub_0801EB74: @ 0x0801EB74
push {lr}
bl sub_0806F4E8
pop {pc}
thumb_func_start sub_0801EB7C
sub_0801EB7C: @ 0x0801EB7C
push {lr}
bl sub_0806F3E4
pop {pc}
thumb_func_start sub_0801EB84
sub_0801EB84: @ 0x0801EB84
push {lr}
ldrb r2, [r0, #0x10]
movs r1, #0x7f
ands r1, r2
strb r1, [r0, #0x10]
movs r1, #2
bl sub_08004276
pop {pc}
.align 2, 0
thumb_func_start nullsub_3
nullsub_3: @ 0x0801EB98
bx lr
.align 2, 0
thumb_func_start sub_0801EB9C
sub_0801EB9C: @ 0x0801EB9C
push {lr}
adds r2, r0, #0
ldrb r3, [r2, #0x10]
movs r0, #0x80
ands r0, r3
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
beq _0801EBC0
movs r0, #0x80
orrs r0, r3
strb r0, [r2, #0x10]
adds r2, #0x3a
ldrb r1, [r2]
movs r0, #0xfb
ands r0, r1
strb r0, [r2]
b _0801EBC6
_0801EBC0:
adds r0, r2, #0
adds r0, #0x45
strb r1, [r0]
_0801EBC6:
pop {pc}
thumb_func_start sub_0801EBC8
sub_0801EBC8: @ 0x0801EBC8
push {r4, lr}
adds r4, r0, #0
bl sub_0804A720
ldrb r0, [r4, #0xa]
cmp r0, #2
beq _0801EBDE
bl Random
movs r1, #3
ands r0, r1
_0801EBDE:
strb r0, [r4, #0x14]
movs r0, #0x12
strb r0, [r4, #0x1c]
adds r0, r4, #0
bl sub_0801ECFC
ldrb r1, [r4, #0x14]
adds r0, r4, #0
bl sub_08004260
pop {r4, pc}
thumb_func_start sub_0801EBF4
sub_0801EBF4: @ 0x0801EBF4
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0801EC1E
movs r0, #2
strb r0, [r4, #0xc]
bl Random
ldr r2, _0801EC28 @ =gUnk_080CA170
movs r1, #3
ands r1, r0
adds r1, r1, r2
ldrb r0, [r1]
strb r0, [r4, #0xe]
adds r0, r4, #0
bl sub_0801ED14
_0801EC1E:
adds r0, r4, #0
bl sub_08004274
pop {r4, pc}
.align 2, 0
_0801EC28: .4byte gUnk_080CA170
thumb_func_start sub_0801EC2C
sub_0801EC2C: @ 0x0801EC2C
push {r4, r5, lr}
adds r5, r0, #0
bl sub_080AEF88
adds r0, r5, #0
bl sub_08004274
ldrb r0, [r5, #0xe]
subs r0, #1
strb r0, [r5, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0801EC7E
adds r0, r5, #0
bl sub_0801EDEC
cmp r0, #0
beq _0801EC78
ldr r1, _0801EC74 @ =gUnk_080CA174
ldrb r0, [r5, #0xa]
adds r0, r0, r1
ldrb r4, [r0]
bl Random
movs r1, #3
ands r0, r1
cmp r4, r0
bhi _0801EC78
strb r1, [r5, #0xc]
ldrb r1, [r5, #0x14]
adds r1, #4
adds r0, r5, #0
bl sub_08004260
b _0801EC7E
.align 2, 0
_0801EC74: .4byte gUnk_080CA174
_0801EC78:
adds r0, r5, #0
bl sub_0801ECFC
_0801EC7E:
pop {r4, r5, pc}
thumb_func_start sub_0801EC80
sub_0801EC80: @ 0x0801EC80
push {r4, r5, lr}
adds r4, r0, #0
bl sub_08004274
adds r5, r4, #0
adds r5, #0x5a
ldrb r1, [r5]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0801ECD8
adds r0, r4, #0
movs r1, #1
movs r2, #0
bl sub_0804A98C
adds r2, r0, #0
cmp r2, #0
beq _0801ECD8
ldrb r0, [r4, #0x15]
strb r0, [r2, #0x15]
ldrb r1, [r4, #0x15]
lsrs r1, r1, #2
ldr r0, _0801ECF0 @ =gUnk_080CA176
adds r1, r1, r0
movs r0, #0
ldrsb r0, [r1, r0]
ldrh r3, [r2, #0x2e]
adds r0, r0, r3
strh r0, [r2, #0x2e]
movs r0, #1
ldrsb r0, [r1, r0]
ldrh r1, [r2, #0x32]
adds r0, r0, r1
strh r0, [r2, #0x32]
ldr r0, _0801ECF4 @ =0x0000FFFD
strh r0, [r2, #0x36]
ldrb r1, [r5]
movs r0, #0xfe
ands r0, r1
strb r0, [r5]
ldr r0, _0801ECF8 @ =0x0000018D
bl sub_08004488
_0801ECD8:
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0801ECEC
adds r0, r4, #0
bl sub_0801ECFC
_0801ECEC:
pop {r4, r5, pc}
.align 2, 0
_0801ECF0: .4byte gUnk_080CA176
_0801ECF4: .4byte 0x0000FFFD
_0801ECF8: .4byte 0x0000018D
thumb_func_start sub_0801ECFC
sub_0801ECFC: @ 0x0801ECFC
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
bl Random
movs r1, #0x38
ands r0, r1
adds r0, #0x18
strb r0, [r4, #0xe]
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0801ED14
sub_0801ED14: @ 0x0801ED14
push {r4, r5, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xa]
cmp r0, #2
beq _0801ED7E
adds r0, r5, #0
bl sub_08049FA0
cmp r0, #0
beq _0801ED4C
ldrb r0, [r5, #0xa]
cmp r0, #1
bne _0801ED46
bl Random
movs r1, #3
ands r1, r0
cmp r1, #0
bne _0801ED46
adds r0, r5, #0
movs r1, #1
bl sub_08049FDC
cmp r0, #0
bne _0801EDC4
_0801ED46:
bl Random
b _0801EDD0
_0801ED4C:
bl Random
movs r1, #3
ands r1, r0
cmp r1, #0
beq _0801ED78
adds r0, r5, #0
bl sub_08049EE4
adds r4, r0, #0
bl Random
ldr r2, _0801ED74 @ =gUnk_080CA17E
movs r1, #1
ands r1, r0
adds r1, r1, r2
ldrb r0, [r1]
adds r0, r0, r4
b _0801EDD0
.align 2, 0
_0801ED74: .4byte gUnk_080CA17E
_0801ED78:
bl Random
b _0801EDD0
_0801ED7E:
adds r0, r5, #0
movs r1, #1
bl sub_08049FDC
cmp r0, #0
bne _0801EDC4
adds r0, r5, #0
bl sub_08049FA0
cmp r0, #0
beq _0801ED9A
bl Random
b _0801EDD0
_0801ED9A:
bl Random
movs r1, #3
ands r1, r0
cmp r1, #0
beq _0801EDC4
adds r0, r5, #0
bl sub_08049EE4
adds r4, r0, #0
bl Random
ldr r2, _0801EDC0 @ =gUnk_080CA17E
movs r1, #1
ands r1, r0
adds r1, r1, r2
ldrb r0, [r1]
adds r0, r0, r4
b _0801EDD0
.align 2, 0
_0801EDC0: .4byte gUnk_080CA17E
_0801EDC4:
ldr r0, _0801EDE8 @ =gUnk_020000B0
ldr r1, [r0]
adds r0, r5, #0
bl sub_080045C4
adds r0, #4
_0801EDD0:
movs r1, #0x18
ands r0, r1
strb r0, [r5, #0x15]
ldrb r0, [r5, #0x15]
lsrs r0, r0, #3
strb r0, [r5, #0x14]
ldrb r1, [r5, #0x14]
adds r0, r5, #0
bl sub_08004260
pop {r4, r5, pc}
.align 2, 0
_0801EDE8: .4byte gUnk_020000B0
thumb_func_start sub_0801EDEC
sub_0801EDEC: @ 0x0801EDEC
push {r4, lr}
adds r4, r0, #0
movs r0, #1
bl sub_08049DF4
adds r1, r0, #0
cmp r1, #0
beq _0801EE12
adds r0, r4, #0
bl sub_080045C4
adds r0, #4
movs r1, #0x18
ands r0, r1
ldrb r4, [r4, #0x15]
cmp r0, r4
bne _0801EE12
movs r0, #1
b _0801EE14
_0801EE12:
movs r0, #0
_0801EE14:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0801EE18
sub_0801EE18: @ 0x0801EE18
push {r4, r5, lr}
adds r5, r0, #0
bl sub_080012DC
adds r4, r0, #0
cmp r4, #0
beq _0801EE9E
cmp r4, #2
beq _0801EE40
ldr r0, _0801EE3C @ =gUnk_080012C8
lsls r1, r4, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r5, #0
bl _call_via_r1
b _0801EEE0
.align 2, 0
_0801EE3C: .4byte gUnk_080012C8
_0801EE40:
adds r2, r5, #0
adds r2, #0x3a
ldrb r1, [r2]
movs r0, #0xfe
ands r0, r1
strb r0, [r2]
adds r0, r5, #0
adds r0, #0x81
ldrb r0, [r0]
cmp r4, r0
beq _0801EE9E
ldrb r0, [r5, #0xa]
cmp r0, #1
beq _0801EE9E
cmp r0, #1
bgt _0801EE66
cmp r0, #0
beq _0801EE6C
b _0801EE9E
_0801EE66:
cmp r0, #2
beq _0801EE96
b _0801EE9E
_0801EE6C:
ldrb r1, [r5, #0x10]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0801EE9E
movs r0, #6
strb r0, [r5, #0xc]
movs r0, #0x7f
ands r0, r1
strb r0, [r5, #0x10]
movs r0, #0x20
strh r0, [r5, #0x24]
adds r1, r5, #0
adds r1, #0x3f
movs r0, #0x5c
strb r0, [r1]
adds r0, r5, #0
movs r1, #5
bl sub_08004260
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 sub_08004260
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 sub_08004260
b _0801EFC4
_0801EFB0:
adds r0, r4, #0
bl sub_0804AA1C
str r6, [r4, #0x20]
adds r0, r4, #0
movs r1, #9
bl sub_08004260
_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 sub_08004260
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 sub_08004260
_0801F018:
movs r1, #0xc0
lsls r1, r1, #5
adds r0, r4, #0
bl sub_08003FC4
adds r0, r4, #0
bl sub_08004274
_0801F028:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0801F02C
sub_0801F02C: @ 0x0801F02C
push {r4, lr}
adds r4, r0, #0
adds r0, #0x58
ldrb r0, [r0]
cmp r0, #6
bne _0801F03E
adds r0, r4, #0
bl sub_08004274
_0801F03E:
adds r0, r4, #0
bl sub_08001318
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0801F048
sub_0801F048: @ 0x0801F048
push {r4, lr}
adds r4, r0, #0
movs r1, #0xc0
lsls r1, r1, #5
bl sub_08003FC4
adds r0, r4, #0
bl sub_08004274
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _0801F068
adds r0, r4, #0
bl sub_0804A7D4
b _0801F082
_0801F068:
cmp r0, #1
bne _0801F078
adds r0, r4, #0
movs r1, #0xf2
movs r2, #0
bl sub_0804A7E0
b _0801F082
_0801F078:
adds r0, r4, #0
movs r1, #0xf1
movs r2, #0
bl sub_0804A7E0
_0801F082:
pop {r4, pc}
thumb_func_start sub_0801F084
sub_0801F084: @ 0x0801F084
push {r4, lr}
adds r4, r0, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _0801F09A
adds r0, r4, #0
bl sub_08004274
_0801F09A:
adds r0, r4, #0
bl sub_08001242
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0801F0A4
sub_0801F0A4: @ 0x0801F0A4
push {r4, lr}
adds r4, r0, #0
bl sub_0804A720
movs r2, #0
movs r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
adds r0, #0x45
ldrb r1, [r0]
adds r0, #0x3b
strb r1, [r0]
adds r4, #0x82
strb r2, [r4]
pop {r4, pc}
.align 2, 0
thumb_func_start nullsub_4
nullsub_4: @ 0x0801F0C4
bx lr
.align 2, 0
thumb_func_start sub_0801F0C8
sub_0801F0C8: @ 0x0801F0C8
push {r4, r5, lr}
adds r5, r0, #0
bl sub_08004274
adds r0, r5, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0801F12A
movs r4, #3
movs r0, #3
strb r0, [r5, #0xc]
bl Random
ands r0, r4
adds r0, #0xc
strb r0, [r5, #0xe]
bl Random
strb r0, [r5, #0xf]
adds r0, r5, #0
movs r1, #1
bl sub_08049F84
strb r0, [r5, #0x15]
ldrb r1, [r5, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r5, #0x10]
adds r2, r5, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #4
orrs r0, r1
movs r1, #0x39
rsbs r1, r1, #0
ands r0, r1
movs r1, #0x18
orrs r0, r1
strb r0, [r2]
adds r0, r5, #0
movs r1, #2
bl sub_08004260
_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 sub_08004260
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 sub_08004260
_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 sub_08004260
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 sub_08004260
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 sub_08004260
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 sub_08004260
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 sub_08004260
_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 sub_08004260
_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 sub_08004260
_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 sub_08004260
_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 sub_08004260
_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 sub_08004260
_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 sub_08004260
_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 sub_08004260
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 sub_08004260
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 sub_08004260
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 sub_08004260
_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 sub_08004260
_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 sub_08004260
_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 sub_08004260
_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 sub_08004260
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 sub_08004260
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 sub_08004260
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 sub_08004260
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 sub_08004260
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 sub_08004260
pop {r4, pc}
thumb_func_start sub_0801FC08
sub_0801FC08: @ 0x0801FC08
push {r4, lr}
adds r4, r0, #0
ldr r1, _0801FC24 @ =gUnk_080CA49C
bl sub_0800129E
movs r3, #0x10
rsbs r3, r3, #0
adds r0, r4, #0
movs r1, #0
movs r2, #1
bl sub_0804A9AC
pop {r4, pc}
.align 2, 0
_0801FC24: .4byte gUnk_080CA49C
thumb_func_start sub_0801FC28
sub_0801FC28: @ 0x0801FC28
push {lr}
ldr r2, _0801FC3C @ =gUnk_080CA4B4
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0801FC3C: .4byte gUnk_080CA4B4
thumb_func_start sub_0801FC40
sub_0801FC40: @ 0x0801FC40
push {r4, lr}
adds r4, r0, #0
adds r0, #0x41
ldrb r0, [r0]
cmp r0, #0x80
bne _0801FC5C
ldrb r0, [r4, #0xc]
cmp r0, #3
bne _0801FC6E
adds r1, r4, #0
adds r1, #0x74
movs r0, #1
strh r0, [r1]
b _0801FC6E
_0801FC5C:
adds r0, r4, #0
adds r0, #0x43
ldrb r0, [r0]
cmp r0, #0
beq _0801FC6E
adds r0, r4, #0
movs r1, #0x1c
bl sub_0804A9FC
_0801FC6E:
ldr r1, _0801FC78 @ =gUnk_080CA49C
adds r0, r4, #0
bl sub_0804AA30
pop {r4, pc}
.align 2, 0
_0801FC78: .4byte gUnk_080CA49C
thumb_func_start sub_0801FC7C
sub_0801FC7C: @ 0x0801FC7C
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xa]
cmp r0, #0
bne _0801FC8E
adds r0, r1, #0
bl sub_0804A7D4
b _0801FC98
_0801FC8E:
adds r0, r1, #0
movs r1, #0xf1
movs r2, #0
bl sub_0804A7E0
_0801FC98:
pop {pc}
.align 2, 0
thumb_func_start sub_0801FC9C
sub_0801FC9C: @ 0x0801FC9C
push {r4, lr}
adds r4, r0, #0
bl sub_0804A720
movs r0, #1
strb r0, [r4, #0xc]
bl Random
strb r0, [r4, #0xe]
pop {r4, pc}
thumb_func_start sub_0801FCB0
sub_0801FCB0: @ 0x0801FCB0
push {r4, r5, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xe]
subs r0, #1
strb r0, [r5, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0801FD28
bl Random
movs r1, #0x1f
ands r1, r0
adds r0, r5, #0
bl sub_0801FE68
cmp r0, #0
beq _0801FD1C
movs r0, #2
strb r0, [r5, #0xc]
ldrb r1, [r5, #0x18]
subs r0, #6
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r5, #0x18]
ldr r0, _0801FD14 @ =gUnk_020000B0
ldr r1, [r0]
adds r0, r5, #0
bl sub_080045C4
adds r4, r0, #0
bl Random
ldr r2, _0801FD18 @ =gUnk_080CA4C8
movs r1, #1
ands r1, r0
adds r1, r1, r2
ldrb r0, [r1]
adds r0, r0, r4
movs r1, #0x1f
ands r0, r1
strb r0, [r5, #0x15]
adds r0, r5, #0
movs r1, #0
bl sub_08004260
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 sub_08004260
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 sub_08004260
_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 sub_08004260
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 sub_08004260
_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 sub_08004260
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08020180
sub_08020180: @ 0x08020180
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r4, #0
adds r5, #0x83
ldrb r0, [r5]
cmp r0, #0
beq _08020192
subs r0, #1
strb r0, [r5]
_08020192:
adds r0, r4, #0
movs r1, #1
bl sub_08049FDC
cmp r0, #0
beq _080201D4
ldrb r0, [r5]
cmp r0, #0
bne _080201D4
ldrb r1, [r4, #0xf]
movs r0, #0xf
ands r0, r1
cmp r0, #0
bne _080201D4
ldr r0, _0802021C @ =gUnk_020000B0
ldr r1, [r0]
adds r0, r4, #0
movs r2, #0x30
bl sub_08049F1C
cmp r0, #0
beq _080201D4
movs r0, #2
strb r0, [r4, #0xc]
bl Random
movs r1, #3
ands r0, r1
strb r0, [r4, #0xd]
movs r0, #0x3c
strb r0, [r4, #0xe]
movs r0, #0xa0
strh r0, [r4, #0x24]
_080201D4:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0802020C
movs r0, #0x10
strb r0, [r4, #0xe]
adds r0, r4, #0
bl sub_08020604
bl Random
movs r1, #3
ands r1, r0
cmp r1, #0
bne _0802020C
bl Random
movs r1, #1
ands r1, r0
movs r2, #0xfe
cmp r1, #0
beq _08020206
movs r2, #2
_08020206:
adds r0, r4, #0
adds r0, #0x80
strb r2, [r0]
_0802020C:
adds r0, r4, #0
bl sub_080AEFE0
adds r0, r4, #0
bl sub_08004274
pop {r4, r5, pc}
.align 2, 0
_0802021C: .4byte gUnk_020000B0
thumb_func_start sub_08020220
sub_08020220: @ 0x08020220
push {r4, r5, lr}
adds r5, r0, #0
movs r1, #1
bl sub_08049FDC
cmp r0, #0
beq _08020284
ldrb r0, [r5, #0xe]
subs r1, r0, #1
strb r1, [r5, #0xe]
lsls r0, r1, #0x18
cmp r0, #0
beq _0802024C
lsrs r0, r0, #0x1c
movs r1, #3
ands r0, r1
movs r1, #4
subs r1, r1, r0
adds r0, r5, #0
bl sub_08004276
b _08020292
_0802024C:
movs r0, #3
strb r0, [r5, #0xc]
movs r0, #0x78
strb r0, [r5, #0xe]
movs r0, #0xc0
strh r0, [r5, #0x24]
ldr r0, _0802027C @ =gUnk_020000B0
ldr r1, [r0]
adds r0, r5, #0
bl sub_080045C4
adds r4, r0, #0
bl Random
ldr r2, _08020280 @ =gUnk_080CA5D4
movs r1, #1
ands r1, r0
adds r1, r1, r2
ldrb r0, [r1]
adds r0, r0, r4
movs r1, #0x1f
ands r0, r1
strb r0, [r5, #0x15]
b _0802028A
.align 2, 0
_0802027C: .4byte gUnk_020000B0
_08020280: .4byte gUnk_080CA5D4
_08020284:
adds r0, r5, #0
bl sub_080205F8
_0802028A:
adds r0, r5, #0
movs r1, #4
bl sub_08004276
_08020292:
pop {r4, r5, pc}
thumb_func_start sub_08020294
sub_08020294: @ 0x08020294
push {r4, lr}
adds r4, r0, #0
movs r1, #1
bl sub_08049FDC
cmp r0, #0
beq _080202F8
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080202B4
adds r0, r4, #0
bl sub_080205F8
_080202B4:
ldrb r1, [r4, #0xe]
cmp r1, #0x3c
bls _080202E6
movs r0, #1
ands r0, r1
cmp r0, #0
beq _080202C8
ldrh r0, [r4, #0x24]
adds r0, #4
strh r0, [r4, #0x24]
_080202C8:
ldr r0, _080202F0 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #3
ands r0, r1
cmp r0, #0
bne _080202E6
ldr r0, _080202F4 @ =gUnk_020000B0
ldr r1, [r0]
adds r0, r4, #0
bl sub_080045C4
adds r1, r0, #0
adds r0, r4, #0
bl sub_08004596
_080202E6:
adds r0, r4, #0
bl sub_080AEFE0
b _080202FE
.align 2, 0
_080202F0: .4byte gUnk_030010A0
_080202F4: .4byte gUnk_020000B0
_080202F8:
adds r0, r4, #0
bl sub_080205F8
_080202FE:
adds r0, r4, #0
movs r1, #4
bl sub_08004276
pop {r4, pc}
thumb_func_start sub_08020308
sub_08020308: @ 0x08020308
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
subs r1, r0, #1
strb r1, [r4, #0xe]
lsls r0, r1, #0x18
cmp r0, #0
bne _08020332
movs r0, #1
strb r0, [r4, #0xc]
strb r0, [r4, #0xe]
movs r0, #0x80
strh r0, [r4, #0x24]
adds r1, r4, #0
adds r1, #0x83
movs r0, #0x78
strb r0, [r1]
adds r0, r4, #0
bl sub_08004274
b _0802034E
_08020332:
movs r0, #1
ands r1, r0
cmp r1, #0
beq _08020340
ldrh r0, [r4, #0x24]
subs r0, #8
strh r0, [r4, #0x24]
_08020340:
adds r0, r4, #0
bl sub_080AEFE0
adds r0, r4, #0
movs r1, #4
bl sub_08004276
_0802034E:
pop {r4, pc}
thumb_func_start sub_08020350
sub_08020350: @ 0x08020350
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0x14]
cmp r0, #2
beq _08020398
movs r1, #0xc0
lsls r1, r1, #5
adds r0, r4, #0
bl sub_080044EC
cmp r0, #0
bne _0802037C
movs r0, #6
strb r0, [r4, #0xc]
movs r0, #0xf0
strb r0, [r4, #0xe]
movs r0, #0xa
strb r0, [r4, #0xf]
adds r1, r4, #0
adds r1, #0x3f
movs r0, #0x71
strb r0, [r1]
_0802037C:
ldrb r0, [r4, #0x15]
cmp r0, #0xff
bne _0802038A
adds r0, r4, #0
adds r0, #0x3e
ldrb r0, [r0]
strb r0, [r4, #0x15]
_0802038A:
adds r0, r4, #0
bl sub_080AEF88
adds r0, r4, #0
bl sub_08004274
b _080203BE
_08020398:
movs r1, #0xe0
lsls r1, r1, #5
adds r0, r4, #0
bl sub_08003FC4
movs r1, #0x36
ldrsh r0, [r4, r1]
cmp r0, #0
bne _080203BE
movs r0, #7
strb r0, [r4, #0xc]
movs r0, #0x96
strb r0, [r4, #0xe]
movs r0, #0xa
strb r0, [r4, #0xf]
adds r1, r4, #0
adds r1, #0x3f
movs r0, #0x71
strb r0, [r1]
_080203BE:
pop {r4, pc}
thumb_func_start sub_080203C0
sub_080203C0: @ 0x080203C0
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xf]
cmp r0, #0
beq _080203DC
subs r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _080203DC
adds r0, r4, #0
movs r1, #0x1c
bl sub_0804A9FC
_080203DC:
adds r0, r4, #0
bl sub_0800442E
cmp r0, #0
bne _080203F2
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08020418
_080203F2:
movs r0, #9
strb r0, [r4, #0xc]
movs r0, #0xc0
lsls r0, r0, #9
str r0, [r4, #0x20]
bl Random
movs r1, #0x1f
ands r0, r1
strb r0, [r4, #0x15]
adds r0, r4, #0
bl sub_0804AA1C
movs r0, #5
strb r0, [r4, #0x14]
adds r0, r4, #0
movs r1, #5
bl sub_08004260
_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 sub_08004260
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 sub_08004260
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 sub_08004260
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 sub_08004260
_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 sub_08004260
_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 sub_08004260
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 sub_08004260
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 sub_08004260
_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 sub_08004260
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 sub_08004260
_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 sub_08004260
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 sub_08004260
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 sub_08004260
ldr r0, _08020B64 @ =0x00004034
ldrb r2, [r6]
adds r1, r5, #0
bl sub_0800015E
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 sub_080042AC
_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 sub_08004260
b _080217FA
.align 2, 0
_080217EC: .4byte gLinkEntity
_080217F0: .4byte 0x0000FFFF
_080217F4:
adds r0, r4, #0
bl sub_08021768
_080217FA:
adds r0, r4, #0
adds r0, #0x45
ldrb r1, [r0]
cmp r1, #0
bne _08021808
subs r0, #3
strb r1, [r0]
_08021808:
ldr r1, _08021814 @ =gUnk_080CB590
adds r0, r4, #0
bl sub_0804AA30
pop {r4, pc}
.align 2, 0
_08021814: .4byte gUnk_080CB590
thumb_func_start sub_08021818
sub_08021818: @ 0x08021818
push {lr}
adds r3, r0, #0
ldrb r0, [r3, #0xa]
cmp r0, #0
bne _0802182A
adds r0, r3, #0
bl sub_0804A7D4
b _08021844
_0802182A:
ldr r2, [r3, #0x50]
cmp r2, #0
beq _0802183A
ldrb r0, [r2, #0xf]
subs r0, #1
movs r1, #0
strb r0, [r2, #0xf]
str r1, [r3, #0x50]
_0802183A:
adds r0, r3, #0
movs r1, #0xf0
movs r2, #0
bl sub_0804A7E0
_08021844:
pop {pc}
.align 2, 0
thumb_func_start sub_08021848
sub_08021848: @ 0x08021848
push {r4, lr}
adds r4, r0, #0
bl sub_0806F520
adds r1, r0, #0
cmp r1, #0
beq _0802186C
ldr r0, _08021868 @ =gUnk_080CB5C8
ldrb r1, [r4, #0xd]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
b _0802187A
.align 2, 0
_08021868: .4byte gUnk_080CB5C8
_0802186C:
movs r0, #3
strb r0, [r4, #0xc]
strh r1, [r4, #0x36]
adds r0, r4, #0
movs r1, #2
bl sub_08004260
_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 sub_08004260
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 sub_08004260
_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 sub_08004260
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 sub_08004260
_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 sub_08004260
_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 sub_08004260
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 sub_08004260
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 sub_08004260
_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 sub_08004260
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 sub_08004260
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 sub_08004260
_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 sub_08004260
_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 sub_08004260
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 sub_08004260
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 sub_08004260
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 sub_08004260
_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 sub_0800015E
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 sub_08004260
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 sub_08004260
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 sub_08004260
_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 sub_0800015E
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 sub_08004260
_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 sub_08004260
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 sub_08004260
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 sub_08004260
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 sub_08004260
_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 sub_08004260
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 sub_08004260
movs r0, #0xca
lsls r0, r0, #1
bl sub_08004488
b _0802258E
_08022582:
adds r0, r4, #0
movs r1, #1
bl sub_08004260
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 sub_08004260
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 sub_08004260
_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 sub_08004260
_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 sub_08004260
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 sub_08004260
_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 sub_08004260
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 sub_08004260
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 sub_08004260
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 sub_08004260
_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 sub_08004260
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 sub_08004260
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 sub_08004260
_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 sub_080042AC
_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 sub_08004260
_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 sub_08004260
_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 sub_08004260
ldrb r1, [r7, #0x14]
adds r0, r7, #0
bl sub_08004260
_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 sub_08004260
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 sub_08004260
ldrb r1, [r4, #0x14]
adds r0, r4, #0
bl sub_08004260
_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 sub_08004260
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 sub_08004260
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 sub_08004260
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 sub_08004260
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 sub_08004260
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 sub_08004260
_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 sub_08004260
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 sub_08004260
_08023CDC:
pop {r4, pc}
.align 2, 0