tmc/asm/code_08023E10.s

10455 lines
169 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_08023E10
sub_08023E10: @ 0x08023E10
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _08023E36
movs r0, #1
strb r0, [r4, #0xc]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
subs r0, #9
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r2]
adds r0, r4, #0
movs r1, #5
bl sub_08004260
_08023E36:
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 _08023E50
adds r0, r4, #0
bl sub_0805E7BC
_08023E50:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08023E54
sub_08023E54: @ 0x08023E54
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xf]
adds r1, r0, #1
strb r1, [r4, #0xf]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x1b
bls _08023E94
movs r0, #0
strb r0, [r4, #0xf]
movs r0, #0x10
movs r1, #2
bl CreateEnemy
adds r5, r0, #0
cmp r5, #0
beq _08023E94
ldrb r0, [r4, #0x14]
lsls r0, r0, #1
ldr r1, _08023E98 @ =gUnk_080CBDF7
adds r0, r0, r1
movs r2, #0
ldrsb r2, [r0, r2]
lsls r2, r2, #0x10
movs r3, #1
ldrsb r3, [r0, r3]
lsls r3, r3, #0x10
adds r0, r4, #0
adds r1, r5, #0
bl PositionRelative
_08023E94:
pop {r4, r5, pc}
.align 2, 0
_08023E98: .4byte gUnk_080CBDF7
thumb_func_start sub_08023E9C
sub_08023E9C: @ 0x08023E9C
push {r4, r5, r6, lr}
adds r5, r0, #0
bl Random
adds r6, r0, #0
adds r0, r5, #0
bl sub_08049FA0
cmp r0, #0
bne _08023EC2
movs r0, #1
ands r0, r6
cmp r0, #0
beq _08023EC2
adds r0, r5, #0
bl sub_08049EE4
adds r0, #4
b _08023F1C
_08023EC2:
adds r0, r5, #0
movs r1, #1
bl sub_08049FDC
cmp r0, #0
beq _08023F0A
movs r0, #6
ands r0, r6
cmp r0, #0
beq _08023F0A
ldr r0, _08023F00 @ =gUnk_020000B0
ldr r1, [r0]
adds r0, r5, #0
bl sub_080045C4
ldrb r2, [r5, #0x15]
subs r1, r0, r2
cmp r1, #0
beq _08023F22
adds r0, r1, #4
movs r3, #0x1f
ands r0, r3
cmp r0, #8
bls _08023F22
ands r1, r3
cmp r1, #0xf
bhi _08023F04
adds r0, r2, #0
adds r0, #8
b _08023F1C
.align 2, 0
_08023F00: .4byte gUnk_020000B0
_08023F04:
adds r0, r2, #0
subs r0, #8
b _08023F1C
_08023F0A:
ldr r4, _08023F24 @ =gUnk_080CBDFF
lsrs r0, r6, #4
movs r1, #3
bl __modsi3
adds r0, r0, r4
ldrb r0, [r0]
ldrb r1, [r5, #0x15]
adds r0, r0, r1
_08023F1C:
movs r1, #0x18
ands r0, r1
strb r0, [r5, #0x15]
_08023F22:
pop {r4, r5, r6, pc}
.align 2, 0
_08023F24: .4byte gUnk_080CBDFF
thumb_func_start sub_08023F28
sub_08023F28: @ 0x08023F28
push {r4, r5, lr}
adds r5, r0, #0
ldr r4, _08023F40 @ =gUnk_080CBEC4
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
_08023F40: .4byte gUnk_080CBEC4
thumb_func_start sub_08023F44
sub_08023F44: @ 0x08023F44
push {lr}
ldr r2, _08023F58 @ =gUnk_080CBEDC
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08023F58: .4byte gUnk_080CBEDC
thumb_func_start sub_08023F5C
sub_08023F5C: @ 0x08023F5C
push {r4, lr}
mov ip, r0
adds r0, #0x3f
ldrb r0, [r0]
cmp r0, #0x6e
beq _08023FC8
mov r0, ip
adds r0, #0x41
ldrb r0, [r0]
cmp r0, #0x80
bne _08023FD0
mov r1, ip
adds r1, #0x86
movs r0, #0x30
strb r0, [r1]
mov r2, ip
adds r2, #0x83
ldrb r1, [r2]
movs r0, #0xf
ands r0, r1
adds r4, r2, #0
cmp r0, #3
bne _08023FD0
mov r1, ip
ldrb r0, [r1, #0xc]
cmp r0, #6
bne _08023FD0
subs r2, #3
ldrb r0, [r2]
cmp r0, #1
beq _08023FA0
cmp r0, #2
beq _08023FB8
b _08023FD0
_08023FA0:
movs r0, #0
ldr r1, _08023FC4 @ =0x0000FFF0
mov r3, ip
strh r1, [r3, #0x36]
adds r3, #0x82
strb r0, [r3]
mov r0, ip
adds r0, #0x78
strh r1, [r0]
ldrb r0, [r2]
adds r0, #1
strb r0, [r2]
_08023FB8:
ldrb r1, [r4]
movs r0, #0x7f
ands r0, r1
strb r0, [r4]
b _08023FD0
.align 2, 0
_08023FC4: .4byte 0x0000FFF0
_08023FC8:
mov r1, ip
adds r1, #0x45
movs r0, #0
strb r0, [r1]
_08023FD0:
ldr r1, _08023FDC @ =gUnk_080CBEC4
mov r0, ip
bl sub_0804AA30
pop {r4, pc}
.align 2, 0
_08023FDC: .4byte gUnk_080CBEC4
thumb_func_start sub_08023FE0
sub_08023FE0: @ 0x08023FE0
push {r4, lr}
adds r4, r0, #0
bl sub_08001324
thumb_func_start sub_08023FE8
sub_08023FE8: @ 0x08023FE8
adds r0, r4, #0
bl sub_08004274
pop {r4, pc}
thumb_func_start sub_08023FF0
sub_08023FF0: @ 0x08023FF0
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xd]
cmp r0, #2
bhi _08024022
adds r0, r4, #0
bl sub_0806F520
cmp r0, #0
bne _08024022
movs r2, #1
strb r2, [r4, #0xc]
strb r0, [r4, #0xd]
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
adds r1, r4, #0
adds r1, #0x3f
movs r0, #0x77
strb r0, [r1]
strb r2, [r4, #0xe]
movs r0, #0x40
strh r0, [r4, #0x24]
b _08024032
_08024022:
ldr r0, _08024034 @ =gUnk_080CBEF8
ldrb r1, [r4, #0xd]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
_08024032:
pop {r4, pc}
.align 2, 0
_08024034: .4byte gUnk_080CBEF8
thumb_func_start sub_08024038
sub_08024038: @ 0x08024038
push {lr}
movs r1, #1
strb r1, [r0, #0xd]
movs r1, #0x3c
strb r1, [r0, #0x1d]
bl sub_08004274
pop {pc}
thumb_func_start sub_08024048
sub_08024048: @ 0x08024048
push {r4, lr}
adds r4, r0, #0
bl sub_0806F4E8
adds r0, r4, #0
bl sub_08004274
pop {r4, pc}
thumb_func_start sub_08024058
sub_08024058: @ 0x08024058
push {lr}
bl sub_0806F3E4
pop {pc}
thumb_func_start sub_08024060
sub_08024060: @ 0x08024060
push {lr}
adds r3, r0, #0
adds r2, r3, #0
adds r2, #0x3f
ldrb r0, [r2]
cmp r0, #0x6e
beq _0802408C
ldrb r1, [r3, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r3, #0x10]
movs r0, #0x6e
strb r0, [r2]
ldr r0, _08024094 @ =gLinkEntity
ldrb r1, [r0, #0x19]
lsrs r1, r1, #6
lsls r1, r1, #6
ldrb r2, [r3, #0x19]
movs r0, #0x3f
ands r0, r2
orrs r0, r1
strb r0, [r3, #0x19]
_0802408C:
adds r0, r3, #0
bl sub_08004274
pop {pc}
.align 2, 0
_08024094: .4byte gLinkEntity
thumb_func_start nullsub_138
nullsub_138: @ 0x08024098
bx lr
.align 2, 0
thumb_func_start sub_0802409C
sub_0802409C: @ 0x0802409C
push {r4, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x45
movs r0, #0
strb r0, [r1]
ldrb r1, [r4, #0x14]
adds r0, r4, #0
bl sub_08004260
adds r0, r4, #0
bl sub_080A29BC
pop {r4, pc}
thumb_func_start sub_080240B8
sub_080240B8: @ 0x080240B8
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
bl Random
movs r1, #0xc0
ands r1, r0
lsrs r7, r1, #3
adds r0, r4, #0
bl sub_0804A720
movs r1, #0
movs r0, #1
strb r0, [r4, #0xc]
strb r1, [r4, #0xd]
adds r0, r4, #0
adds r0, #0x80
strb r1, [r0]
movs r0, #8
ands r0, r7
cmp r0, #0
beq _080240FC
movs r0, #0x32
ldrsh r1, [r4, r0]
movs r0, #0x10
ands r0, r7
cmp r0, #0
beq _080240F4
adds r0, r1, #0
subs r0, #0x20
b _080240F8
_080240F4:
adds r0, r1, #0
adds r0, #0x20
_080240F8:
strh r0, [r4, #0x32]
b _08024114
_080240FC:
movs r0, #0x2e
ldrsh r1, [r4, r0]
movs r0, #0x10
ands r0, r7
cmp r0, #0
beq _0802410E
adds r0, r1, #0
subs r0, #0x20
b _08024112
_0802410E:
adds r0, r1, #0
adds r0, #0x20
_08024112:
strh r0, [r4, #0x2e]
_08024114:
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _08024120
cmp r0, #1
beq _0802412C
b _08024136
_08024120:
adds r1, r4, #0
adds r1, #0x78
ldr r0, _08024128 @ =0x0000FFF0
b _08024132
.align 2, 0
_08024128: .4byte 0x0000FFF0
_0802412C:
adds r1, r4, #0
adds r1, #0x78
ldr r0, _080241BC @ =0x0000FFD0
_08024132:
strh r0, [r1]
strh r0, [r4, #0x36]
_08024136:
adds r0, r4, #0
bl UpdateSpriteOrderAndFlip
bl sub_08052660
cmp r0, #0
beq _08024150
ldrb r0, [r4, #0x1b]
movs r1, #0x3f
ands r1, r0
movs r0, #0x40
orrs r1, r0
strb r1, [r4, #0x1b]
_08024150:
bl Random
movs r1, #0x40
ands r0, r1
adds r1, r4, #0
adds r1, #0x81
movs r6, #0
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x82
strb r6, [r0]
adds r5, r4, #0
adds r5, #0x83
movs r0, #0x80
strb r0, [r5]
adds r0, r4, #0
adds r0, #0x86
strb r6, [r0]
adds r0, #1
strb r6, [r0]
strb r6, [r4, #0xe]
movs r0, #0x20
strb r0, [r4, #0xf]
adds r2, r4, #0
adds r2, #0x3c
ldrb r1, [r2]
movs r0, #0x10
orrs r0, r1
strb r0, [r2]
movs r0, #2
strb r0, [r4, #0x1c]
strb r7, [r4, #0x15]
adds r0, r4, #0
bl sub_080249DC
ldrb r0, [r4, #0xa]
cmp r0, #1
bne _080241B8
strb r6, [r5]
ldrb r2, [r5]
adds r0, r4, #0
movs r1, #6
bl sub_0804A98C
adds r1, r0, #0
cmp r1, #0
beq _080241B8
str r1, [r4, #0x54]
str r4, [r1, #0x50]
ldrh r0, [r1, #0x32]
adds r0, #0x10
strh r0, [r1, #0x32]
_080241B8:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080241BC: .4byte 0x0000FFD0
thumb_func_start sub_080241C0
sub_080241C0: @ 0x080241C0
push {r4, r5, r6, lr}
adds r4, r0, #0
bl sub_08024940
adds r6, r4, #0
adds r6, #0x80
ldrb r5, [r6]
cmp r5, #0
beq _080241D8
cmp r5, #1
beq _08024238
b _08024296
_080241D8:
ldr r0, _08024218 @ =gLinkState
ldrb r0, [r0, #0xf]
movs r2, #0x40
cmp r0, #0
beq _080241E4
movs r2, #0xa0
_080241E4:
adds r0, r4, #0
movs r1, #3
bl sub_08049F64
cmp r0, #0
beq _08024220
adds r0, r4, #0
movs r1, #3
bl sub_08049FDC
cmp r0, #0
beq _08024220
ldr r0, _0802421C @ =gLinkEntity
ldrb r0, [r0, #0xc]
cmp r0, #0x1e
beq _08024220
ldrb r0, [r6]
adds r0, #1
strb r0, [r6]
strh r5, [r4, #0x24]
adds r0, r4, #0
movs r1, #3
movs r2, #0xa
bl sub_08024A14
b _08024296
.align 2, 0
_08024218: .4byte gLinkState
_0802421C: .4byte gLinkEntity
_08024220:
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _08024296
adds r0, r4, #0
movs r1, #0
movs r2, #0x20
bl sub_08024A14
b _08024296
_08024238:
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _08024296
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _08024290
adds r5, r4, #0
adds r5, #0x83
ldrb r1, [r5]
movs r0, #0x80
ands r0, r1
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
beq _0802426C
adds r0, r4, #0
bl sub_08024C94
ldrb r0, [r5]
movs r1, #0x40
orrs r0, r1
strb r0, [r5]
b _08024296
_0802426C:
movs r0, #3
strb r0, [r4, #0xc]
strb r1, [r6]
movs r0, #0xa
strb r0, [r4, #0xf]
adds r0, r4, #0
movs r1, #0
bl sub_08024E00
adds r0, r4, #0
bl sub_08024E1C
ldrb r2, [r4, #0xf]
adds r0, r4, #0
movs r1, #3
bl sub_08024A14
b _08024296
_08024290:
adds r0, r4, #0
bl sub_08024C94
_08024296:
pop {r4, r5, r6, pc}
thumb_func_start sub_08024298
sub_08024298: @ 0x08024298
push {lr}
bl sub_08024D00
pop {pc}
thumb_func_start sub_080242A0
sub_080242A0: @ 0x080242A0
push {r4, r5, lr}
adds r4, r0, #0
bl sub_08024940
adds r0, r4, #0
bl sub_08024CC0
cmp r0, #0
beq _08024334
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
movs r1, #0xff
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
cmp r5, #0
bne _080242F0
ldr r0, _080242E4 @ =gUnk_020000B0
ldr r1, [r0]
adds r0, r4, #0
bl sub_080045C4
strb r0, [r4, #0x15]
adds r0, r4, #0
movs r1, #1
bl sub_08024E00
movs r1, #0x24
ldrsh r0, [r4, r1]
cmp r0, #0
beq _080242E8
strh r5, [r4, #0x24]
b _08024306
.align 2, 0
_080242E4: .4byte gUnk_020000B0
_080242E8:
adds r0, r4, #0
bl sub_08024E1C
b _08024306
_080242F0:
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
ands r0, r1
cmp r0, #0
bne _08024306
adds r0, r4, #0
movs r1, #3
movs r2, #0xa
bl sub_08024A14
_08024306:
ldr r0, _08024338 @ =gUnk_020000B0
ldr r1, [r0]
adds r0, r4, #0
movs r2, #0x20
bl sub_08049F1C
cmp r0, #0
beq _08024334
adds r0, r4, #0
movs r1, #3
bl sub_08049FDC
cmp r0, #0
beq _08024334
movs r1, #0
movs r0, #4
strb r0, [r4, #0xc]
adds r0, r4, #0
adds r0, #0x80
strb r1, [r0]
movs r0, #0x10
strb r0, [r4, #0xe]
strh r1, [r4, #0x24]
_08024334:
pop {r4, r5, pc}
.align 2, 0
_08024338: .4byte gUnk_020000B0
thumb_func_start sub_0802433C
sub_0802433C: @ 0x0802433C
push {r4, lr}
adds r4, r0, #0
bl sub_08024940
adds r2, r4, #0
adds r2, #0x80
ldrb r0, [r2]
cmp r0, #0
beq _08024354
cmp r0, #1
beq _0802437A
b _080243B6
_08024354:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080243B6
ldrb r0, [r2]
adds r0, #1
strb r0, [r2]
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r4, #0x24]
movs r0, #8
strb r0, [r4, #0xf]
adds r0, r4, #0
movs r1, #1
bl sub_08024E00
b _080243B6
_0802437A:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
movs r3, #0xff
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
bne _080243A0
movs r0, #5
strb r0, [r4, #0xc]
strb r1, [r2]
movs r0, #0xa0
lsls r0, r0, #1
strh r0, [r4, #0x24]
movs r0, #0xc0
strb r0, [r4, #0xe]
movs r0, #8
strb r0, [r4, #0xf]
b _080243B6
_080243A0:
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
ands r0, r3
cmp r0, #0
bne _080243B6
adds r0, r4, #0
movs r1, #2
movs r2, #4
bl sub_08024A14
_080243B6:
pop {r4, pc}
thumb_func_start sub_080243B8
sub_080243B8: @ 0x080243B8
push {r4, r5, lr}
adds r4, r0, #0
bl sub_08024940
adds r5, r4, #0
adds r5, #0x80
ldrb r0, [r5]
cmp r0, #1
beq _0802446A
cmp r0, #1
bgt _080243D4
cmp r0, #0
beq _080243DA
b _080244E4
_080243D4:
cmp r0, #2
beq _08024486
b _080244E4
_080243DA:
adds r0, r4, #0
movs r1, #1
bl sub_08024C48
cmp r0, #0
beq _08024462
ldr r0, [r4, #0x54]
cmp r0, #0
beq _080243F2
ldr r0, [r0, #4]
cmp r0, #0
bne _08024406
_080243F2:
movs r0, #2
strb r0, [r5]
movs r0, #0x20
strb r0, [r4, #0xe]
movs r1, #0x80
strh r1, [r4, #0x24]
adds r0, r4, #0
adds r0, #0x83
strb r1, [r0]
b _080244E4
_08024406:
ldr r0, _08024434 @ =gUnk_020000B0
ldr r1, [r0]
adds r0, r4, #0
movs r2, #0xe
bl sub_08049F1C
cmp r0, #0
beq _08024438
ldrb r0, [r5]
adds r0, #1
strb r0, [r5]
movs r0, #0x1e
strb r0, [r4, #0xe]
adds r0, #0xe2
strh r0, [r4, #0x24]
adds r1, r4, #0
adds r1, #0x83
movs r0, #0x80
strb r0, [r1]
ldr r1, [r4, #0x54]
movs r0, #2
strb r0, [r1, #0xc]
b _080244E4
.align 2, 0
_08024434: .4byte gUnk_020000B0
_08024438:
ldrb r0, [r4, #0xe]
subs r2, r0, #1
strb r2, [r4, #0xe]
movs r1, #0xff
lsls r0, r2, #0x18
cmp r0, #0
beq _08024462
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
ands r0, r1
cmp r0, #0
bne _080244E4
lsls r2, r2, #0x18
lsrs r2, r2, #0x1e
adds r2, #1
adds r0, r4, #0
movs r1, #2
bl sub_08024A14
b _080244E4
_08024462:
adds r0, r4, #0
bl sub_08024C7C
b _080244E4
_0802446A:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080244E4
ldrb r0, [r5]
adds r0, #1
strb r0, [r5]
movs r0, #0x20
strb r0, [r4, #0xe]
movs r0, #0x80
strh r0, [r4, #0x24]
b _080244E4
_08024486:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
bne _080244E4
movs r0, #6
strb r0, [r4, #0xc]
strb r1, [r5]
movs r0, #0x80
strh r0, [r4, #0x24]
adds r0, r4, #0
bl sub_08024B38
adds r0, r4, #0
adds r0, #0x83
ldrb r1, [r0]
movs r2, #0x40
adds r0, r2, #0
ands r0, r1
cmp r0, #0
bne _080244D8
movs r0, #0x3f
ands r0, r1
cmp r0, #1
beq _080244C4
cmp r0, #3
bne _080244C8
movs r0, #4
b _080244CA
_080244C4:
movs r0, #0x14
b _080244CA
_080244C8:
movs r0, #0x30
_080244CA:
strb r0, [r4, #0xe]
adds r0, r4, #0
movs r1, #2
movs r2, #8
bl sub_08024A14
b _080244E4
_080244D8:
strb r2, [r4, #0xe]
adds r0, r4, #0
movs r1, #0
movs r2, #8
bl sub_08024A14
_080244E4:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_080244E8
sub_080244E8: @ 0x080244E8
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
adds r5, r0, #0
bl sub_08024940
adds r0, r5, #0
adds r0, #0x80
ldrb r0, [r0]
cmp r0, #7
bls _08024502
b _08024924
_08024502:
lsls r0, r0, #2
ldr r1, _0802450C @ =_08024510
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802450C: .4byte _08024510
_08024510: @ jump table
.4byte _08024530 @ case 0
.4byte _080245A6 @ case 1
.4byte _080245E4 @ case 2
.4byte _080247F4 @ case 3
.4byte _08024818 @ case 4
.4byte _08024836 @ case 5
.4byte _080248AE @ case 6
.4byte _0802490A @ case 7
_08024530:
ldrb r0, [r5, #0xe]
subs r0, #1
strb r0, [r5, #0xe]
movs r1, #0xff
lsls r0, r0, #0x18
cmp r0, #0
bne _08024592
movs r1, #0x2e
ldrsh r0, [r5, r1]
ldr r2, _08024584 @ =gRoomControls
ldrh r1, [r2, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r4, #0x32
ldrsh r1, [r5, r4]
ldrh r2, [r2, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
movs r1, #1
bl sub_080002E0
adds r2, r0, #0
cmp r2, #0
bne _08024588
adds r0, r5, #0
adds r0, #0x80
ldrb r1, [r0]
adds r1, #1
strb r1, [r0]
adds r1, r5, #0
adds r1, #0x82
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
strb r2, [r5, #0xf]
strh r2, [r5, #0x24]
b _08024924
.align 2, 0
_08024584: .4byte gRoomControls
_08024588:
movs r0, #0x30
strb r0, [r5, #0xe]
movs r0, #4
strb r0, [r5, #0xf]
b _08024924
_08024592:
ldrb r0, [r5, #0xf]
subs r0, #1
strb r0, [r5, #0xf]
ands r0, r1
cmp r0, #0
beq _080245A0
b _08024924
_080245A0:
adds r0, r5, #0
movs r1, #1
b _08024902
_080245A6:
ldrh r0, [r5, #0x36]
adds r0, #1
strh r0, [r5, #0x36]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r2, #0x10
rsbs r2, r2, #0
cmp r0, r2
bge _080245BA
b _08024924
_080245BA:
adds r1, r5, #0
adds r1, #0x82
movs r0, #0
strb r0, [r1]
adds r0, r5, #0
adds r0, #0x78
strh r2, [r0]
adds r0, r5, #0
bl sub_08024AD8
cmp r0, #0
beq _080245D4
b _0802482A
_080245D4:
adds r0, r5, #0
bl sub_08024C94
adds r2, r5, #0
adds r2, #0x83
ldrb r0, [r2]
movs r1, #0x40
b _080247EE
_080245E4:
adds r0, r5, #0
bl sub_08024AD8
cmp r0, #0
bne _080245F0
b _080247E0
_080245F0:
ldrb r0, [r5, #0xe]
subs r0, #1
strb r0, [r5, #0xe]
movs r2, #0xff
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
bne _0802462C
movs r7, #0x24
ldrsh r0, [r5, r7]
cmp r0, #0
beq _0802460C
strh r1, [r5, #0x24]
b _08024612
_0802460C:
adds r0, r5, #0
bl sub_08024E1C
_08024612:
ldr r1, [r5, #0x54]
adds r0, r5, #0
bl sub_080045C4
strb r0, [r5, #0x15]
adds r0, r5, #0
movs r1, #0
bl sub_08024E00
adds r0, r5, #0
bl sub_080249DC
b _08024642
_0802462C:
ldrb r0, [r5, #0xf]
subs r0, #1
strb r0, [r5, #0xf]
ands r0, r2
cmp r0, #0
bne _08024642
adds r0, r5, #0
movs r1, #1
movs r2, #8
bl sub_08024A14
_08024642:
adds r6, r5, #0
adds r6, #0x83
ldrb r1, [r6]
movs r0, #0x3f
mov sb, r0
ands r0, r1
cmp r0, #2
beq _0802474C
cmp r0, #2
bgt _0802465C
cmp r0, #1
beq _080246E4
b _08024924
_0802465C:
cmp r0, #3
beq _08024662
b _08024924
_08024662:
movs r0, #0x80
ands r0, r1
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
cmp r2, #0
beq _08024670
b _08024924
_08024670:
adds r1, r5, #0
adds r1, #0x80
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
movs r0, #0xc
strb r0, [r5, #0xe]
movs r0, #0x10
strb r0, [r5, #0x15]
movs r4, #0
strh r2, [r5, #0x24]
adds r0, r5, #0
adds r0, #0x84
strb r4, [r0]
adds r2, r5, #0
adds r2, #0x3b
ldrb r1, [r2]
movs r0, #0xfc
ands r0, r1
strb r0, [r2]
adds r0, r5, #0
bl sub_080249DC
ldr r2, _080246DC @ =gLinkEntity
adds r0, r2, #0
adds r0, #0x29
ldrb r0, [r0]
lsls r0, r0, #0x1a
lsrs r0, r0, #0x1d
adds r1, r5, #0
adds r1, #0x85
strb r0, [r1]
ldrb r1, [r2, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r2, #0x10]
ldr r2, _080246E0 @ =gLinkState
ldr r0, [r2, #0x30]
movs r1, #0x80
lsls r1, r1, #1
orrs r0, r1
str r0, [r2, #0x30]
ldrb r1, [r2, #0xa]
movs r0, #0x80
orrs r0, r1
strb r0, [r2, #0xa]
adds r2, #0x26
ldrb r0, [r2]
cmp r0, #0
bne _080246D6
b _08024924
_080246D6:
strb r4, [r2]
b _08024924
.align 2, 0
_080246DC: .4byte gLinkEntity
_080246E0: .4byte gLinkState
_080246E4:
ldr r1, [r5, #0x54]
adds r0, r5, #0
movs r2, #6
movs r3, #6
bl sub_080041A0
cmp r0, #0
bne _080246F6
b _08024924
_080246F6:
adds r1, r5, #0
adds r1, #0x80
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
movs r0, #0xc
strb r0, [r5, #0xe]
ldrb r1, [r6]
movs r0, #0x7f
ands r0, r1
strb r0, [r6]
ldr r0, [r5, #0x54]
adds r1, r5, #0
bl CopyPosition
ldrh r0, [r5, #0x36]
subs r0, #0xe
strh r0, [r5, #0x36]
adds r1, r5, #0
adds r1, #0x78
ldrh r0, [r1]
subs r0, #0xe
strh r0, [r1]
ldrb r2, [r6]
adds r0, r5, #0
movs r1, #6
bl sub_0804A98C
adds r4, r0, #0
cmp r4, #0
bne _08024736
b _08024924
_08024736:
str r5, [r4, #0x50]
ldrh r0, [r4, #0x36]
adds r0, #0xe
strh r0, [r4, #0x36]
ldr r1, [r5, #0x54]
str r1, [r4, #0x54]
adds r0, r4, #0
bl CopyPosition
str r4, [r5, #0x54]
b _08024924
_0802474C:
ldr r1, [r5, #0x54]
adds r0, r5, #0
movs r2, #6
movs r3, #6
bl sub_080041A0
cmp r0, #0
bne _0802475E
b _08024924
_0802475E:
adds r1, r5, #0
adds r1, #0x80
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
movs r0, #0xc
strb r0, [r5, #0xe]
ldrb r1, [r6]
movs r0, #0x7f
ands r0, r1
strb r0, [r6]
ldr r4, [r5, #0x54]
adds r0, r4, #0
adds r0, #0x70
ldrh r0, [r0]
movs r2, #0x2e
ldrsh r1, [r4, r2]
ldr r3, _080247DC @ =gRoomControls
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
mov r7, sb
ands r1, r7
movs r7, #0x32
ldrsh r2, [r4, r7]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
mov r3, sb
ands r2, r3
lsls r2, r2, #6
orrs r1, r2
adds r2, r4, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
adds r0, r4, #0
bl sub_0805E7BC
ldrh r0, [r5, #0x36]
subs r0, #0xe
strh r0, [r5, #0x36]
adds r1, r5, #0
adds r1, #0x78
ldrh r0, [r1]
subs r0, #0xe
strh r0, [r1]
ldrb r2, [r6]
adds r0, r5, #0
movs r1, #6
bl sub_0804A98C
adds r4, r0, #0
cmp r4, #0
bne _080247D0
b _08024924
_080247D0:
str r5, [r4, #0x50]
ldrh r0, [r4, #0x36]
adds r0, #0xe
strh r0, [r4, #0x36]
str r4, [r5, #0x54]
b _08024924
.align 2, 0
_080247DC: .4byte gRoomControls
_080247E0:
adds r0, r5, #0
bl sub_08024C94
adds r2, r5, #0
adds r2, #0x83
ldrb r1, [r2]
movs r0, #0x40
_080247EE:
orrs r0, r1
strb r0, [r2]
b _08024924
_080247F4:
ldrb r0, [r5, #0xe]
subs r0, #1
strb r0, [r5, #0xe]
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
cmp r2, #0
beq _08024804
b _08024924
_08024804:
adds r0, r5, #0
adds r0, #0x80
ldrb r1, [r0]
adds r1, #1
strb r1, [r0]
strb r2, [r5, #0xf]
strh r2, [r5, #0x24]
adds r1, r5, #0
adds r1, #0x82
b _0802482E
_08024818:
ldrh r0, [r5, #0x36]
subs r0, #2
strh r0, [r5, #0x36]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0x3c
rsbs r1, r1, #0
cmp r0, r1
bge _08024924
_0802482A:
adds r1, r5, #0
adds r1, #0x80
_0802482E:
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b _08024924
_08024836:
ldrh r2, [r5, #0x36]
movs r4, #0x36
ldrsh r1, [r5, r4]
movs r0, #0x30
rsbs r0, r0, #0
cmp r1, r0
bge _0802484A
adds r0, r2, #1
strh r0, [r5, #0x36]
b _08024924
_0802484A:
adds r1, r5, #0
adds r1, #0x82
ldrb r0, [r1]
cmp r0, #0
beq _0802485E
movs r0, #0
strb r0, [r1]
subs r1, #0xa
ldr r0, _08024884 @ =0x0000FFD0
strh r0, [r1]
_0802485E:
adds r0, r5, #0
adds r0, #0x83
ldrb r0, [r0]
cmp r0, #1
blt _080248A6
cmp r0, #2
ble _08024888
cmp r0, #3
bne _080248A6
adds r0, r5, #0
adds r0, #0x84
ldrb r0, [r0]
cmp r0, #0x2f
bls _08024924
adds r0, r5, #0
bl sub_08024F50
b _08024924
.align 2, 0
_08024884: .4byte 0x0000FFD0
_08024888:
adds r1, r5, #0
adds r1, #0x80
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
movs r0, #0xc0
strb r0, [r5, #0xe]
movs r0, #8
strb r0, [r5, #0xf]
movs r0, #0x80
strh r0, [r5, #0x24]
adds r0, r5, #0
bl sub_080249DC
b _08024924
_080248A6:
adds r0, r5, #0
bl sub_08024C7C
b _08024924
_080248AE:
ldrb r0, [r5, #0xe]
subs r0, #1
strb r0, [r5, #0xe]
movs r1, #0xff
lsls r0, r0, #0x18
lsrs r3, r0, #0x18
cmp r3, #0
bne _080248F2
adds r2, r5, #0
adds r2, #0x83
ldrb r1, [r2]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080248E8
movs r0, #0xc0
strb r0, [r2]
adds r0, r5, #0
adds r0, #0x80
strb r3, [r0]
movs r1, #0x40
movs r0, #0x40
strh r0, [r5, #0x24]
strb r1, [r5, #0xe]
movs r0, #8
strb r0, [r5, #0xf]
adds r0, r5, #0
movs r1, #0
b _08024902
_080248E8:
movs r0, #0x40
strb r0, [r5, #0xe]
movs r0, #8
strb r0, [r5, #0xf]
b _08024924
_080248F2:
ldrb r0, [r5, #0xf]
subs r0, #1
strb r0, [r5, #0xf]
ands r0, r1
cmp r0, #0
bne _08024924
adds r0, r5, #0
movs r1, #2
_08024902:
movs r2, #8
bl sub_08024A14
b _08024924
_0802490A:
ldr r0, _0802493C @ =gLinkEntity
movs r7, #0x36
ldrsh r1, [r0, r7]
cmp r1, #0
bne _08024924
adds r0, r5, #0
adds r0, #0x80
strb r1, [r0]
movs r0, #0x80
strh r0, [r5, #0x24]
adds r0, r5, #0
bl sub_08024B38
_08024924:
adds r0, r5, #0
adds r0, #0x83
ldrb r0, [r0]
cmp r0, #3
bne _08024934
adds r0, r5, #0
bl sub_08024E4C
_08024934:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0802493C: .4byte gLinkEntity
thumb_func_start sub_08024940
sub_08024940: @ 0x08024940
push {r4, r5, lr}
adds r4, r0, #0
bl Random
adds r5, r0, #0
movs r0, #0x70
ands r5, r0
ldrh r0, [r4, #0x2a]
cmp r0, #0
beq _08024962
adds r1, r0, #0
adds r0, r4, #0
bl sub_0800417E
adds r0, r4, #0
bl sub_080249F4
_08024962:
adds r0, r4, #0
adds r0, #0x82
ldrb r0, [r0]
cmp r0, #0
bne _0802497C
adds r0, r4, #0
adds r0, #0x78
ldrh r0, [r0]
strh r0, [r4, #0x36]
cmp r5, #0
beq _0802497C
adds r0, #2
strh r0, [r4, #0x36]
_0802497C:
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _0802498A
bl sub_08052660
cmp r0, #0
beq _080249CE
_0802498A:
adds r0, r4, #0
bl sub_08049FA0
cmp r0, #0
bne _080249A2
adds r0, r4, #0
bl sub_08049EE4
strb r0, [r4, #0x15]
adds r0, r4, #0
bl sub_080249F4
_080249A2:
movs r0, #0x36
ldrsh r1, [r4, r0]
movs r0, #0x20
rsbs r0, r0, #0
cmp r1, r0
bge _080249BC
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
adds r0, #0x18
ands r0, r1
strb r0, [r2]
b _080249CE
_080249BC:
adds r2, r4, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #8
rsbs r1, r1, #0
ands r1, r0
movs r0, #1
orrs r1, r0
strb r1, [r2]
_080249CE:
adds r0, r4, #0
bl sub_080AEFB4
adds r0, r4, #0
bl sub_08004274
pop {r4, r5, pc}
thumb_func_start sub_080249DC
sub_080249DC: @ 0x080249DC
push {lr}
ldrb r1, [r0, #0x15]
adds r1, #2
movs r2, #0x1c
ands r1, r2
lsrs r1, r1, #2
strb r1, [r0, #0x14]
ldrb r1, [r0, #0x14]
bl sub_08004260
pop {pc}
.align 2, 0
thumb_func_start sub_080249F4
sub_080249F4: @ 0x080249F4
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0x15]
adds r1, r0, #2
movs r0, #0x1f
ands r1, r0
lsrs r1, r1, #2
ldrb r0, [r2, #0x14]
cmp r1, r0
beq _08024A12
strb r1, [r2, #0x14]
ldrb r1, [r2, #0x14]
adds r0, r2, #0
bl sub_08004260
_08024A12:
pop {pc}
thumb_func_start sub_08024A14
sub_08024A14: @ 0x08024A14
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
adds r5, r1, #0
adds r7, r2, #0
movs r6, #0
cmp r5, #1
beq _08024A40
cmp r5, #1
blo _08024A30
cmp r5, #2
beq _08024A5E
cmp r5, #3
beq _08024A84
b _08024A9E
_08024A30:
adds r0, r4, #0
bl sub_08049EE4
adds r1, r0, #0
adds r0, r4, #0
bl sub_08004596
b _08024A9C
_08024A40:
adds r0, r4, #0
movs r1, #0
bl sub_08024C48
cmp r0, #0
beq _08024A9E
ldr r1, [r4, #0x54]
adds r0, r4, #0
bl sub_080045C4
adds r1, r0, #0
adds r0, r4, #0
bl sub_08004596
b _08024A9C
_08024A5E:
adds r0, r4, #0
movs r1, #1
bl sub_08024C48
cmp r0, #0
beq _08024A9E
ldr r0, _08024A80 @ =gUnk_020000B0
ldr r1, [r0]
adds r0, r4, #0
bl sub_080045C4
adds r1, r0, #0
adds r0, r4, #0
bl sub_08004596
b _08024A9C
.align 2, 0
_08024A80: .4byte gUnk_020000B0
_08024A84:
adds r0, r4, #0
movs r1, #1
bl sub_08024C48
cmp r0, #0
beq _08024A9E
ldr r0, _08024AD4 @ =gUnk_020000B0
ldr r1, [r0]
adds r0, r4, #0
bl sub_080045C4
strb r0, [r4, #0x15]
_08024A9C:
movs r6, #1
_08024A9E:
cmp r5, #0
beq _08024ABA
adds r0, r4, #0
bl sub_08049FA0
cmp r0, #0
bne _08024ABA
bl Random
movs r1, #3
ands r1, r0
cmp r1, #0
beq _08024ABA
movs r6, #0
_08024ABA:
cmp r6, #0
bne _08024AC8
adds r0, r4, #0
movs r1, #0
adds r2, r7, #0
bl sub_08024A14
_08024AC8:
adds r0, r4, #0
bl sub_080249DC
strb r7, [r4, #0xf]
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08024AD4: .4byte gUnk_020000B0
thumb_func_start sub_08024AD8
sub_08024AD8: @ 0x08024AD8
push {r4, lr}
adds r4, r0, #0
adds r3, r4, #0
adds r3, #0x83
ldrb r2, [r3]
movs r0, #0x40
ands r0, r2
cmp r0, #0
bne _08024B2A
movs r1, #0
movs r0, #0x3f
ands r0, r2
cmp r0, #3
bne _08024B12
ldr r0, _08024B0C @ =gLinkState
ldrb r0, [r0, #0xf]
cmp r0, #0
bne _08024B10
ldr r0, [r4, #0x54]
str r1, [r0, #0x50]
str r1, [r4, #0x54]
movs r0, #0xc0
strb r0, [r3]
movs r0, #0
b _08024B34
.align 2, 0
_08024B0C: .4byte gLinkState
_08024B10:
movs r1, #1
_08024B12:
adds r0, r4, #0
bl sub_08024C48
cmp r0, #0
bne _08024B32
str r0, [r4, #0x54]
adds r1, r4, #0
adds r1, #0x83
movs r0, #0xc0
strb r0, [r1]
movs r0, #0
b _08024B34
_08024B2A:
adds r0, r4, #0
bl sub_08024B38
b _08024B34
_08024B32:
movs r0, #1
_08024B34:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08024B38
sub_08024B38: @ 0x08024B38
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
movs r7, #0
ldr r0, _08024B5C @ =gLinkState
ldrb r3, [r0, #0xf]
adds r2, r3, #0
adds r1, r0, #0
cmp r2, #0
beq _08024BA0
adds r0, #0x26
ldrb r0, [r0]
cmp r0, #1
bne _08024B62
cmp r2, #3
bls _08024B60
subs r0, r3, #3
strb r0, [r1, #0xf]
b _08024B62
.align 2, 0
_08024B5C: .4byte gLinkState
_08024B60:
strb r7, [r1, #0xf]
_08024B62:
ldrb r0, [r1, #0xf]
cmp r0, #0
beq _08024BA0
adds r0, r5, #0
movs r1, #1
bl sub_08024C48
cmp r0, #0
beq _08024C3C
ldr r4, _08024B9C @ =gUnk_020000B0
ldr r1, [r4]
adds r0, r5, #0
movs r2, #0xa0
bl sub_08049F1C
cmp r0, #0
beq _08024C3C
movs r7, #1
ldr r0, [r4]
str r0, [r5, #0x54]
adds r2, r5, #0
adds r2, #0x83
ldrb r1, [r2]
movs r0, #3
orrs r0, r1
movs r1, #0xbf
ands r0, r1
strb r0, [r2]
b _08024C3C
.align 2, 0
_08024B9C: .4byte gUnk_020000B0
_08024BA0:
movs r0, #8
movs r1, #2
movs r2, #2
bl sub_0805EB00
adds r4, r0, #0
cmp r4, #0
beq _08024BF0
adds r6, r5, #0
adds r6, #0x83
b _08024BC4
_08024BB6:
adds r0, r4, #0
movs r1, #2
bl sub_0805EB64
adds r4, r0, #0
cmp r4, #0
beq _08024BF0
_08024BC4:
ldrb r0, [r4, #0xc]
cmp r0, #2
beq _08024BB6
movs r1, #0x36
ldrsh r0, [r4, r1]
cmp r0, #0
bne _08024BB6
adds r0, r5, #0
adds r1, r4, #0
movs r2, #0xa0
bl sub_08049F1C
cmp r0, #0
beq _08024BB6
movs r7, #1
str r4, [r5, #0x54]
ldrb r0, [r6]
movs r1, #1
orrs r1, r0
movs r0, #0xbf
ands r1, r0
strb r1, [r6]
_08024BF0:
cmp r7, #0
bne _08024C42
movs r0, #6
movs r1, #5
movs r2, #6
bl sub_0805EB00
adds r4, r0, #0
cmp r4, #0
beq _08024C3C
adds r6, r5, #0
adds r6, #0x83
b _08024C18
_08024C0A:
adds r0, r4, #0
movs r1, #6
bl sub_0805EB64
adds r4, r0, #0
cmp r4, #0
beq _08024C3C
_08024C18:
ldrb r0, [r4, #0xc]
cmp r0, #1
bne _08024C0A
adds r0, r5, #0
adds r1, r4, #0
movs r2, #0xa0
bl sub_08049F1C
cmp r0, #0
beq _08024C0A
movs r7, #1
str r4, [r5, #0x54]
ldrb r0, [r6]
movs r1, #2
orrs r1, r0
movs r0, #0xbf
ands r1, r0
strb r1, [r6]
_08024C3C:
cmp r7, #0
bne _08024C42
str r7, [r5, #0x54]
_08024C42:
adds r0, r7, #0
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_08024C48
sub_08024C48: @ 0x08024C48
push {r4, r5, lr}
adds r3, r0, #0
movs r4, #1
cmp r1, #0
beq _08024C60
movs r0, #3
bl sub_08049DF4
rsbs r1, r0, #0
orrs r1, r0
lsrs r4, r1, #0x1f
b _08024C78
_08024C60:
ldr r2, [r3, #0x54]
cmp r2, #0
beq _08024C74
ldr r0, [r2, #4]
cmp r0, #0
beq _08024C74
movs r5, #0x36
ldrsh r0, [r2, r5]
cmp r0, #0
bge _08024C78
_08024C74:
str r1, [r3, #0x54]
movs r4, #0
_08024C78:
adds r0, r4, #0
pop {r4, r5, pc}
thumb_func_start sub_08024C7C
sub_08024C7C: @ 0x08024C7C
push {lr}
movs r1, #1
strb r1, [r0, #0xc]
movs r2, #0
movs r1, #0x40
strh r1, [r0, #0x24]
strb r2, [r0, #0xe]
movs r1, #0
movs r2, #0x20
bl sub_08024A14
pop {pc}
thumb_func_start sub_08024C94
sub_08024C94: @ 0x08024C94
push {lr}
movs r2, #0
movs r1, #2
strb r1, [r0, #0xc]
adds r1, r0, #0
adds r1, #0x80
strb r2, [r1]
movs r1, #0x40
strb r1, [r0, #0xe]
strb r2, [r0, #0xf]
movs r1, #0xc0
strh r1, [r0, #0x24]
adds r2, r0, #0
adds r2, #0x83
movs r1, #0x80
strb r1, [r2]
ldrb r2, [r0, #0xf]
movs r1, #3
bl sub_08024A14
pop {pc}
.align 2, 0
thumb_func_start sub_08024CC0
sub_08024CC0: @ 0x08024CC0
push {r4, r5, lr}
adds r4, r0, #0
movs r5, #1
movs r1, #1
bl sub_08024C48
cmp r0, #0
bne _08024CD4
movs r5, #0
b _08024CF8
_08024CD4:
ldr r0, _08024CFC @ =gUnk_020000B0
ldr r1, [r0]
adds r0, r4, #0
movs r2, #0x50
bl sub_08049F1C
cmp r0, #0
beq _08024CF0
adds r0, r4, #0
movs r1, #3
bl sub_08049FDC
cmp r0, #0
bne _08024CF8
_08024CF0:
movs r5, #0
adds r0, r4, #0
bl sub_08024C7C
_08024CF8:
adds r0, r5, #0
pop {r4, r5, pc}
.align 2, 0
_08024CFC: .4byte gUnk_020000B0
thumb_func_start sub_08024D00
sub_08024D00: @ 0x08024D00
push {r4, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x86
ldrb r0, [r1]
cmp r0, #0
beq _08024D1A
subs r0, #1
strb r0, [r1]
adds r0, r4, #0
bl sub_08004274
b _08024D20
_08024D1A:
adds r0, r4, #0
bl sub_08024940
_08024D20:
adds r0, r4, #0
adds r0, #0x83
ldrb r1, [r0]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _08024D46
adds r0, r4, #0
bl sub_08024B38
cmp r0, #0
beq _08024D46
movs r0, #6
strb r0, [r4, #0xc]
adds r1, r4, #0
adds r1, #0x80
movs r0, #2
strb r0, [r1]
b _08024DFC
_08024D46:
adds r0, r4, #0
bl sub_08024CC0
cmp r0, #0
beq _08024DFC
adds r1, r4, #0
adds r1, #0x80
ldrb r0, [r1]
cmp r0, #0
beq _08024D60
cmp r0, #1
beq _08024DAE
b _08024DFC
_08024D60:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08024DFC
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
bl Random
movs r1, #0xf
ands r0, r1
adds r0, #0x20
strb r0, [r4, #0xe]
ldrb r2, [r4, #0x15]
adds r0, r4, #0
adds r0, #0x81
ldrb r1, [r0]
adds r3, r0, #0
cmp r1, #0
beq _08024D90
adds r1, r2, #4
b _08024D94
_08024D90:
adds r1, r2, #0
adds r1, #0x1c
_08024D94:
movs r0, #0x1f
ands r0, r1
strb r0, [r4, #0x15]
ldrb r0, [r3]
movs r1, #0x40
eors r0, r1
strb r0, [r3]
adds r0, r4, #0
movs r1, #3
movs r2, #0x10
bl sub_08024A14
b _08024DFC
_08024DAE:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
movs r2, #0xff
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0
bne _08024DCE
strb r0, [r1]
bl Random
movs r1, #0x1f
ands r0, r1
adds r0, #0x20
strb r0, [r4, #0xe]
b _08024DFC
_08024DCE:
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
ands r0, r2
cmp r0, #0
bne _08024DFC
ldrb r1, [r4, #0x15]
adds r0, r4, #0
adds r0, #0x81
ldrb r0, [r0]
cmp r0, #0
beq _08024DEA
adds r1, #1
b _08024DEC
_08024DEA:
adds r1, #0x1f
_08024DEC:
movs r0, #0x1f
ands r0, r1
strb r0, [r4, #0x15]
movs r0, #0x10
strb r0, [r4, #0xf]
adds r0, r4, #0
bl sub_080249DC
_08024DFC:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08024E00
sub_08024E00: @ 0x08024E00
push {r4, r5, lr}
adds r5, r0, #0
adds r4, r1, #0
bl sub_08024E34
ldr r1, _08024E18 @ =gUnk_080CBF10
lsls r0, r0, #1
orrs r0, r4
adds r0, r0, r1
ldrb r0, [r0]
strb r0, [r5, #0xe]
pop {r4, r5, pc}
.align 2, 0
_08024E18: .4byte gUnk_080CBF10
thumb_func_start sub_08024E1C
sub_08024E1C: @ 0x08024E1C
push {r4, lr}
adds r4, r0, #0
bl sub_08024E34
ldr r1, _08024E30 @ =gUnk_080CBF18
lsls r0, r0, #1
adds r0, r0, r1
ldrh r0, [r0]
strh r0, [r4, #0x24]
pop {r4, pc}
.align 2, 0
_08024E30: .4byte gUnk_080CBF18
thumb_func_start sub_08024E34
sub_08024E34: @ 0x08024E34
push {lr}
bl Random
movs r1, #0x3c
ands r1, r0
lsrs r1, r1, #2
ldr r0, _08024E48 @ =gUnk_080CBF20
adds r1, r1, r0
ldrb r0, [r1]
pop {pc}
.align 2, 0
_08024E48: .4byte gUnk_080CBF20
thumb_func_start sub_08024E4C
sub_08024E4C: @ 0x08024E4C
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
adds r0, #0x83
ldrb r0, [r0]
cmp r0, #3
bne _08024F46
ldrb r0, [r4, #0xf]
adds r0, #1
movs r7, #0
movs r1, #0xff
ands r0, r1
movs r1, #0x1f
ands r0, r1
strb r0, [r4, #0xf]
bl sub_0807953C
cmp r0, #0
beq _08024E84
bl Random
adds r3, r4, #0
adds r3, #0x84
ldrb r2, [r3]
adds r2, #1
movs r1, #1
ands r1, r0
adds r2, r2, r1
strb r2, [r3]
_08024E84:
ldr r0, _08024EC8 @ =gUnk_02002A40
adds r0, #0xaa
ldrb r0, [r0]
adds r2, r4, #0
adds r2, #0x87
cmp r0, #0
beq _08024E9A
adds r5, r2, #0
ldrb r0, [r5]
cmp r0, #4
bne _08024ECC
_08024E9A:
adds r1, r4, #0
adds r1, #0x84
movs r0, #0x30
strb r0, [r1]
strb r7, [r2]
adds r0, r4, #0
bl sub_08024F50
adds r0, r4, #0
adds r0, #0x80
strb r7, [r0]
movs r1, #0x40
movs r0, #0x40
strh r0, [r4, #0x24]
strb r1, [r4, #0xe]
movs r0, #8
strb r0, [r4, #0xf]
adds r0, r4, #0
movs r1, #0
movs r2, #8
bl sub_08024A14
b _08024F46
.align 2, 0
_08024EC8: .4byte gUnk_02002A40
_08024ECC:
ldr r6, _08024F48 @ =gLinkEntity
bl sub_08077B2C
ldr r2, _08024F4C @ =gLinkState
ldr r0, [r2, #0x30]
movs r1, #0x80
lsls r1, r1, #1
orrs r0, r1
str r0, [r2, #0x30]
ldrb r0, [r2, #0xa]
movs r1, #0x80
orrs r0, r1
strb r0, [r2, #0xa]
movs r0, #0xe
strb r0, [r2, #0xc]
adds r1, r2, #0
adds r1, #0x38
movs r0, #0x14
strb r0, [r1]
adds r1, #1
movs r0, #1
strb r0, [r1]
adds r0, r2, #0
adds r0, #0x3a
strb r7, [r0]
movs r3, #0x80
lsls r3, r3, #9
adds r0, r4, #0
adds r1, r6, #0
movs r2, #0
bl PositionRelative
adds r1, r6, #0
adds r1, #0x63
movs r0, #0x1a
strb r0, [r1]
movs r0, #4
strb r0, [r6, #0x14]
adds r2, r6, #0
adds r2, #0x29
ldrb r1, [r2]
subs r0, #0x3d
ands r0, r1
strb r0, [r2]
ldrb r0, [r4, #0xf]
cmp r0, #0
bne _08024F46
ldrb r0, [r5]
adds r0, #1
strb r0, [r5]
adds r1, r6, #0
adds r1, #0x3d
movs r0, #8
strb r0, [r1]
subs r0, #0xa
bl ModHealth
adds r0, r6, #0
movs r1, #0x7a
bl sub_0800449C
_08024F46:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08024F48: .4byte gLinkEntity
_08024F4C: .4byte gLinkState
thumb_func_start sub_08024F50
sub_08024F50: @ 0x08024F50
push {r4, r5, r6, lr}
adds r6, r0, #0
ldr r2, _08024FDC @ =gLinkState
movs r4, #0
strb r4, [r2, #0xa]
ldr r0, [r2, #0x30]
ldr r1, _08024FE0 @ =0xFFFFFEFF
ands r0, r1
str r0, [r2, #0x30]
ldr r5, _08024FE4 @ =gLinkEntity
adds r0, r6, #0
adds r1, r5, #0
bl CopyPosition
movs r0, #1
strb r0, [r5, #0xc]
ldrb r0, [r5, #0x10]
movs r1, #0x80
orrs r0, r1
strb r0, [r5, #0x10]
adds r1, r5, #0
adds r1, #0x3d
movs r0, #0xc4
strb r0, [r1]
ldrb r0, [r5, #0x14]
lsls r0, r0, #2
strb r0, [r5, #0x15]
movs r3, #0
strh r4, [r5, #0x24]
adds r0, r6, #0
adds r0, #0x85
ldrb r0, [r0]
adds r4, r5, #0
adds r4, #0x29
movs r1, #7
ands r1, r0
lsls r1, r1, #3
ldrb r2, [r4]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4]
adds r1, r5, #0
adds r1, #0x63
movs r0, #0
ldrsb r0, [r1, r0]
strh r0, [r5, #0x36]
strb r3, [r1]
adds r2, r6, #0
adds r2, #0x3b
ldrb r1, [r2]
movs r0, #3
orrs r0, r1
strb r0, [r2]
adds r1, r6, #0
adds r1, #0x83
movs r0, #0xc0
strb r0, [r1]
subs r1, #3
ldrb r0, [r1]
adds r0, #2
strb r0, [r1]
adds r0, r6, #0
adds r0, #0x84
strb r3, [r0]
movs r0, #0x80
strh r0, [r6, #0x24]
pop {r4, r5, r6, pc}
.align 2, 0
_08024FDC: .4byte gLinkState
_08024FE0: .4byte 0xFFFFFEFF
_08024FE4: .4byte gLinkEntity
thumb_func_start sub_08024FE8
sub_08024FE8: @ 0x08024FE8
push {r4, lr}
adds r4, r0, #0
ldr r1, _08025004 @ =gUnk_080CBF9C
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
_08025004: .4byte gUnk_080CBF9C
thumb_func_start sub_08025008
sub_08025008: @ 0x08025008
push {lr}
ldr r2, _0802501C @ =gUnk_080CBFB4
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0802501C: .4byte gUnk_080CBFB4
thumb_func_start sub_08025020
sub_08025020: @ 0x08025020
push {r4, r5, lr}
adds r4, r0, #0
adds r0, #0x41
ldrb r0, [r0]
movs r1, #0x7f
ands r1, r0
cmp r1, #0
blt _080250C2
cmp r1, #3
ble _0802510C
cmp r1, #0x1b
bne _080250C2
adds r0, r4, #0
bl sub_0804AA1C
ldr r1, _08025058 @ =gUnk_080CBFE8
ldr r0, [r4, #0x4c]
ldrb r0, [r0, #0xa]
adds r0, r0, r1
ldrb r1, [r0]
adds r3, r4, #0
adds r3, #0x82
ldrb r0, [r3]
cmp r1, r0
bhs _0802505C
subs r0, r0, r1
strb r0, [r3]
b _08025078
.align 2, 0
_08025058: .4byte gUnk_080CBFE8
_0802505C:
adds r1, r4, #0
adds r1, #0x84
movs r2, #0
movs r0, #0xa5
lsls r0, r0, #2
strh r0, [r1]
subs r1, #0x45
movs r0, #0x83
strb r0, [r1]
strb r2, [r3]
adds r0, r4, #0
movs r1, #0x7c
bl sub_0801D2B4
_08025078:
movs r2, #0
movs r0, #7
strb r0, [r4, #0xc]
movs r0, #0x3c
strb r0, [r4, #0xe]
ldr r0, [r4, #0x20]
cmp r0, #0
ble _0802508A
str r2, [r4, #0x20]
_0802508A:
adds r1, r4, #0
adds r1, #0x3d
movs r0, #0xf4
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x42
strb r2, [r0]
adds r5, r4, #0
adds r5, #0x80
ldrb r0, [r5]
cmp r0, #0
bne _0802510C
ldr r0, [r4, #0x4c]
ldrb r0, [r0, #0x15]
lsrs r0, r0, #3
strb r0, [r4, #0x14]
ldrb r1, [r4, #0x14]
adds r1, #4
adds r0, r4, #0
bl sub_08004260
adds r1, r4, #0
adds r1, #0x59
movs r0, #6
strb r0, [r1]
movs r0, #1
strb r0, [r5]
b _0802510C
_080250C2:
adds r0, r4, #0
adds r0, #0x3f
ldrb r0, [r0]
cmp r0, #0x82
bne _0802510C
adds r0, r4, #0
adds r0, #0x3d
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bge _0802510C
movs r0, #0x21
movs r1, #2
movs r2, #0
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _08025104
adds r3, r2, #0
adds r3, #0x29
ldrb r0, [r3]
movs r1, #8
rsbs r1, r1, #0
ands r1, r0
movs r0, #3
orrs r1, r0
strb r1, [r3]
adds r0, r4, #0
adds r1, r2, #0
bl CopyPosition
_08025104:
movs r0, #0xc3
lsls r0, r0, #1
bl sub_08004488
_0802510C:
ldr r1, _08025118 @ =gUnk_080CBF9C
adds r0, r4, #0
bl sub_0804AA30
pop {r4, r5, pc}
.align 2, 0
_08025118: .4byte gUnk_080CBF9C
thumb_func_start sub_0802511C
sub_0802511C: @ 0x0802511C
push {r4, lr}
adds r4, r0, #0
adds r0, #0x3a
ldrb r1, [r0]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _08025142
ldrb r0, [r4, #0xe]
cmp r0, #1
bne _08025142
adds r0, r4, #0
adds r0, #0x82
ldrb r0, [r0]
cmp r0, #0
beq _08025142
adds r0, r4, #0
bl sub_08025B18
_08025142:
adds r0, r4, #0
bl sub_0804A7D4
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0802514C
sub_0802514C: @ 0x0802514C
push {r4, lr}
adds r4, r0, #0
movs r1, #0x80
lsls r1, r1, #6
bl sub_08003FC4
adds r0, r4, #0
bl sub_0806F520
cmp r0, #0
beq _08025178
ldr r0, _08025174 @ =gUnk_080CBFEC
ldrb r1, [r4, #0xd]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
b _0802517E
.align 2, 0
_08025174: .4byte gUnk_080CBFEC
_08025178:
adds r0, r4, #0
bl sub_08025C2C
_0802517E:
pop {r4, pc}
thumb_func_start sub_08025180
sub_08025180: @ 0x08025180
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xd]
bl Random
strb r0, [r4, #0xe]
ldr r0, [r4, #0x4c]
ldrb r0, [r0, #0x15]
movs r1, #0x10
eors r0, r1
lsrs r0, r0, #3
strb r0, [r4, #0x14]
ldrb r1, [r4, #0x14]
adds r1, #4
adds r0, r4, #0
bl sub_08004260
adds r0, r4, #0
bl sub_0804AA1C
pop {r4, pc}
thumb_func_start sub_080251AC
sub_080251AC: @ 0x080251AC
push {r4, lr}
adds r4, r0, #0
adds r3, r4, #0
adds r3, #0x82
ldrb r0, [r3]
cmp r0, #3
bls _080251D8
subs r0, #3
strb r0, [r3]
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
movs r1, #0xff
ands r0, r1
movs r1, #3
ands r0, r1
cmp r0, #0
bne _080251F4
adds r0, r4, #0
bl sub_08025BD4
b _080251F4
_080251D8:
adds r1, r4, #0
adds r1, #0x84
movs r2, #0
movs r0, #0xa5
lsls r0, r0, #2
strh r0, [r1]
subs r1, #0x45
movs r0, #0x83
strb r0, [r1]
strb r2, [r3]
adds r0, r4, #0
movs r1, #0x7c
bl sub_0801D2B4
_080251F4:
adds r0, r4, #0
bl sub_08004274
pop {r4, pc}
thumb_func_start sub_080251FC
sub_080251FC: @ 0x080251FC
push {r4, r5, lr}
adds r4, r0, #0
bl sub_0804A720
adds r1, r4, #0
adds r1, #0x82
movs r5, #0
movs r0, #0xf0
strb r0, [r1]
bl Random
movs r1, #0x1c
ands r0, r1
strb r0, [r4, #0x15]
adds r0, r4, #0
adds r0, #0x80
strb r5, [r0]
adds r0, r4, #0
bl sub_080256B4
adds r0, r4, #0
movs r1, #0
bl sub_08004260
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08025230
sub_08025230: @ 0x08025230
push {r4, r5, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x81
ldrb r0, [r1]
cmp r0, #0
beq _08025242
subs r0, #1
strb r0, [r1]
_08025242:
adds r0, r4, #0
bl sub_08025C44
adds r0, r4, #0
bl sub_08004274
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
movs r5, #0xff
lsls r0, r0, #0x18
cmp r0, #0
bne _08025270
bl Random
movs r1, #3
ands r0, r1
adds r0, #4
strb r0, [r4, #0xe]
adds r0, r4, #0
bl sub_08025C60
strb r0, [r4, #0x15]
_08025270:
ldrh r0, [r4, #0x2a]
cmp r0, #0
beq _0802528C
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
ands r0, r5
cmp r0, #0
bne _08025290
ldrh r1, [r4, #0x2a]
adds r0, r4, #0
bl sub_0800417E
b _08025290
_0802528C:
movs r0, #0x1e
strb r0, [r4, #0xf]
_08025290:
adds r1, r4, #0
adds r1, #0x78
ldrh r0, [r1]
cmp r0, #0
bne _080252D8
adds r0, r4, #0
bl sub_0802571C
cmp r0, #0
beq _080252DC
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0xf0
strb r0, [r4, #0xe]
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _080252D4 @ =gRoomControls
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r5, #0x32
ldrsh r0, [r4, r5]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r0, r4, #0
adds r0, #0x86
strh r1, [r0]
b _080252DC
.align 2, 0
_080252D4: .4byte gRoomControls
_080252D8:
subs r0, #1
strh r0, [r1]
_080252DC:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_080252E0
sub_080252E0: @ 0x080252E0
push {r4, r5, lr}
adds r4, r0, #0
movs r1, #0x2e
ldrsh r0, [r4, r1]
movs r2, #0x32
ldrsh r1, [r4, r2]
adds r2, r4, #0
adds r2, #0x7c
ldrh r2, [r2]
adds r3, r4, #0
adds r3, #0x7e
ldrh r3, [r3]
bl sub_080045D4
strb r0, [r4, #0x15]
adds r0, r4, #0
bl sub_08025C44
adds r0, r4, #0
bl sub_08004274
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldr r3, _08025348 @ =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 r0, r4, #0
adds r0, #0x86
ldrh r2, [r0]
cmp r5, r2
bne _0802534C
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08025352
adds r0, r4, #0
bl sub_080256B4
b _08025352
.align 2, 0
_08025348: .4byte gRoomControls
_0802534C:
strh r5, [r0]
movs r0, #0xf0
strb r0, [r4, #0xe]
_08025352:
movs r0, #0x2e
ldrsh r1, [r4, r0]
adds r0, r4, #0
adds r0, #0x7c
ldrh r0, [r0]
cmp r1, r0
bne _08025388
movs r1, #0x32
ldrsh r0, [r4, r1]
adds r1, r4, #0
adds r1, #0x7e
ldrh r1, [r1]
cmp r0, r1
bne _08025388
movs r1, #0
movs r0, #3
strb r0, [r4, #0xc]
movs r0, #0x1e
strb r0, [r4, #0xe]
strb r1, [r4, #0xf]
movs r0, #0xc0
lsls r0, r0, #9
str r0, [r4, #0x20]
adds r0, r4, #0
movs r1, #1
bl sub_08004260
_08025388:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0802538C
sub_0802538C: @ 0x0802538C
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _0802539C
subs r0, #1
strb r0, [r4, #0xe]
b _080253CC
_0802539C:
adds r0, r4, #0
adds r0, #0x5a
ldrb r0, [r0]
cmp r0, #0
bne _080253AE
adds r0, r4, #0
bl sub_08004274
b _080253CC
_080253AE:
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
ldr r1, [r4, #0x20]
ldr r0, _080253D0 @ =0x00001FFF
cmp r1, r0
bgt _080253CC
movs r0, #4
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #2
bl sub_08004260
_080253CC:
pop {r4, pc}
.align 2, 0
_080253D0: .4byte 0x00001FFF
thumb_func_start sub_080253D4
sub_080253D4: @ 0x080253D4
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
bne _0802541A
ldrb r0, [r4, #0xf]
cmp r0, #0
bne _080253FE
movs r0, #5
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #3
bl sub_08004260
b _0802541A
_080253FE:
movs r0, #6
strb r0, [r4, #0xc]
movs r0, #0x1e
strb r0, [r4, #0xe]
adds r0, r4, #0
movs r1, #3
bl sub_08004260
adds r0, r4, #0
bl sub_08025A54
adds r0, r4, #0
bl sub_08025AE8
_0802541A:
pop {r4, pc}
thumb_func_start sub_0802541C
sub_0802541C: @ 0x0802541C
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 _08025448
movs r0, #3
strb r0, [r4, #0xc]
movs r0, #1
strb r0, [r4, #0xf]
movs r0, #0x80
lsls r0, r0, #0xa
str r0, [r4, #0x20]
adds r0, r4, #0
movs r1, #1
bl sub_08004260
_08025448:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0802544C
sub_0802544C: @ 0x0802544C
push {r4, lr}
adds r4, r0, #0
adds r0, #0x5a
ldrb r0, [r0]
cmp r0, #0
bne _08025460
adds r0, r4, #0
bl sub_08004274
b _0802547A
_08025460:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0802547A
adds r0, r4, #0
bl sub_080256B4
adds r0, r4, #0
movs r1, #0
bl sub_08004260
_0802547A:
pop {r4, pc}
thumb_func_start sub_0802547C
sub_0802547C: @ 0x0802547C
push {r4, lr}
adds r4, r0, #0
movs r1, #0x80
lsls r1, r1, #6
bl sub_08003FC4
adds r0, r4, #0
bl sub_08004274
ldrb r1, [r4, #0xe]
movs r0, #7
ands r0, r1
cmp r0, #0
bne _0802549E
adds r0, r4, #0
bl sub_08025BD4
_0802549E:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080254B0
adds r0, r4, #0
bl sub_08025C2C
_080254B0:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080254B4
sub_080254B4: @ 0x080254B4
push {r4, lr}
adds r4, r0, #0
movs r1, #0x80
lsls r1, r1, #6
bl sub_08003FC4
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0802550C
movs r1, #0x36
ldrsh r0, [r4, r1]
cmp r0, #0
bne _08025512
adds r0, r4, #0
adds r0, #0x84
ldrh r0, [r0]
cmp r0, #0
bne _080254F6
adds r1, r4, #0
adds r1, #0x3f
movs r0, #0x82
strb r0, [r1]
adds r1, #0x43
movs r0, #0xf0
strb r0, [r1]
adds r0, r4, #0
bl sub_080256B4
b _08025502
_080254F6:
movs r0, #0xc
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #0x1c
bl sub_0804A9FC
_08025502:
adds r0, r4, #0
movs r1, #0
bl sub_08004260
b _08025512
_0802550C:
adds r0, r4, #0
bl sub_08004274
_08025512:
pop {r4, pc}
thumb_func_start sub_08025514
sub_08025514: @ 0x08025514
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
ldrb r1, [r4, #0xe]
adds r0, r1, #1
strb r0, [r4, #0xe]
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
adds r0, r4, #0
bl sub_0802594C
cmp r0, #0
beq _08025542
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0xf0
strb r0, [r4, #0xe]
adds r1, r4, #0
adds r1, #0x81
movs r0, #0x78
strb r0, [r1]
b _08025550
_08025542:
ldrb r0, [r4, #0xe]
cmp r0, #3
bls _08025550
movs r0, #0xa
strb r0, [r4, #0xc]
movs r0, #0x20
strb r0, [r4, #0xe]
_08025550:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08025554
sub_08025554: @ 0x08025554
push {r4, lr}
adds r4, r0, #0
movs r0, #1
bl sub_08049DF4
adds r2, r0, #0
cmp r2, #0
bne _0802556C
adds r0, r4, #0
bl sub_080256B4
b _080255A8
_0802556C:
ldrb r1, [r4, #0xe]
movs r0, #3
ands r0, r1
cmp r0, #0
bne _08025580
adds r0, r2, #0
adds r1, r4, #0
bl sub_080045C4
strb r0, [r4, #0x15]
_08025580:
adds r0, r4, #0
bl sub_08025C44
adds r0, r4, #0
bl sub_08004274
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _08025598
subs r0, #1
strb r0, [r4, #0xe]
b _080255A8
_08025598:
adds r0, r4, #0
bl sub_080258C4
cmp r0, #0
bne _080255A8
adds r0, r4, #0
bl sub_080256B4
_080255A8:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080255AC
sub_080255AC: @ 0x080255AC
push {r4, r5, r6, lr}
adds r5, r0, #0
movs r0, #1
bl sub_08049DF4
adds r6, r0, #0
cmp r6, #0
bne _080255C4
adds r0, r5, #0
bl sub_080256B4
b _08025638
_080255C4:
adds r1, r5, #0
adds r1, #0x81
ldrb r0, [r1]
cmp r0, #0
beq _080255D2
subs r0, #1
strb r0, [r1]
_080255D2:
ldrb r0, [r5, #0xe]
subs r0, #1
strb r0, [r5, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0802560C
bl Random
movs r1, #3
ands r0, r1
adds r0, #4
strb r0, [r5, #0xe]
bl Random
adds r4, r0, #0
movs r0, #0xf
ands r4, r0
cmp r4, #7
bgt _080255FA
subs r4, #1
_080255FA:
subs r4, #7
adds r0, r6, #0
adds r1, r5, #0
bl sub_080045C4
adds r0, r0, r4
movs r1, #0x1f
ands r0, r1
strb r0, [r5, #0x15]
_0802560C:
adds r1, r5, #0
adds r1, #0x78
ldrh r0, [r1]
cmp r0, #0
bne _08025628
adds r0, r5, #0
bl sub_080258C4
cmp r0, #0
bne _0802562C
adds r0, r5, #0
bl sub_080256B4
b _0802562C
_08025628:
subs r0, #1
strh r0, [r1]
_0802562C:
adds r0, r5, #0
bl sub_08025C44
adds r0, r5, #0
bl sub_08004274
_08025638:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0802563C
sub_0802563C: @ 0x0802563C
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r2, r4, #0
adds r2, #0x84
ldrh r0, [r2]
subs r1, r0, #1
strh r1, [r2]
lsls r0, r1, #0x10
cmp r0, #0
bne _08025678
adds r0, r4, #0
movs r1, #0x28
bl sub_0801D2B4
adds r1, r4, #0
adds r1, #0x3f
movs r0, #0x82
strb r0, [r1]
adds r1, #0x43
movs r0, #0xf0
strb r0, [r1]
adds r0, r4, #0
bl sub_080256B4
adds r0, r4, #0
bl sub_0804AA1C
b _080256B0
_08025678:
lsls r1, r1, #0x10
lsrs r0, r1, #0x10
cmp r0, #0x77
bhi _080256B0
ldr r0, _080256A4 @ =gUnk_080CBFF8
lsrs r1, r1, #0x14
adds r1, r1, r0
ldrb r1, [r1]
ldrh r2, [r2]
adds r0, r2, #0
ands r0, r1
cmp r0, #0
bne _080256B0
adds r0, r1, #1
ands r2, r0
cmp r2, #0
beq _080256A8
adds r0, r4, #0
movs r1, #0x7c
bl sub_0801D2B4
b _080256B0
.align 2, 0
_080256A4: .4byte gUnk_080CBFF8
_080256A8:
adds r0, r4, #0
movs r1, #0x28
bl sub_0801D2B4
_080256B0:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080256B4
sub_080256B4: @ 0x080256B4
push {r4, r5, lr}
adds r5, r0, #0
movs r0, #1
strb r0, [r5, #0xc]
bl Random
movs r1, #3
ands r0, r1
adds r0, #4
strb r0, [r5, #0xe]
movs r0, #0x1e
strb r0, [r5, #0xf]
bl Random
ldrb r4, [r5, #0x15]
adds r4, #7
movs r1, #7
bl __modsi3
lsls r0, r0, #2
adds r4, r4, r0
movs r0, #0x1c
ands r4, r0
strb r4, [r5, #0x15]
bl Random
ldr r2, _08025718 @ =gUnk_080CC000
movs r1, #0xf
ands r1, r0
lsls r1, r1, #1
adds r1, r1, r2
ldrh r1, [r1]
adds r0, r5, #0
adds r0, #0x78
movs r4, #0
strh r1, [r0]
bl Random
movs r1, #0x18
bl __modsi3
lsls r0, r0, #1
adds r1, r5, #0
adds r1, #0x7a
strb r0, [r1]
adds r0, r5, #0
adds r0, #0x7b
strb r4, [r0]
pop {r4, r5, pc}
.align 2, 0
_08025718: .4byte gUnk_080CC000
thumb_func_start sub_0802571C
sub_0802571C: @ 0x0802571C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
adds r7, r0, #0
ldr r0, _080257B0 @ =gRoomControls
mov sb, r0
ldrh r0, [r7, #0x2e]
mov r2, sb
ldrh r1, [r2, #6]
subs r0, r0, r1
adds r0, #8
movs r3, #0x10
rsbs r3, r3, #0
adds r2, r3, #0
ands r0, r2
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
str r0, [sp]
ldrh r0, [r7, #0x32]
mov r3, sb
ldrh r1, [r3, #8]
subs r0, r0, r1
adds r0, #8
ands r0, r2
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov sl, r0
adds r0, r7, #0
adds r0, #0x7a
ldrb r4, [r0]
movs r3, #0
ldr r0, _080257B4 @ =gUnk_080CC020
mov r8, r0
_08025764:
mov r1, r8
adds r0, r4, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldr r2, [sp]
adds r0, r2, r0
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
adds r0, r4, #1
add r0, r8
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
add r0, sl
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
adds r0, r7, #0
adds r1, r6, #0
adds r2, r5, #0
str r3, [sp, #4]
bl sub_080257EC
ldr r3, [sp, #4]
cmp r0, #0
beq _080257B8
mov r3, sb
ldrh r0, [r3, #6]
adds r0, r6, r0
adds r1, r7, #0
adds r1, #0x7c
strh r0, [r1]
ldrh r0, [r3, #8]
adds r0, r5, r0
adds r1, #2
strh r0, [r1]
movs r0, #1
b _080257E0
.align 2, 0
_080257B0: .4byte gRoomControls
_080257B4: .4byte gUnk_080CC020
_080257B8:
adds r0, r4, #2
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
cmp r4, #0x2f
bls _080257C4
movs r4, #0
_080257C4:
adds r0, r3, #1
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
cmp r3, #3
bls _08025764
adds r0, r7, #0
adds r0, #0x7a
strb r4, [r0]
adds r1, r7, #0
adds r1, #0x7b
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
movs r0, #0
_080257E0:
add sp, #8
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_080257EC
sub_080257EC: @ 0x080257EC
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r4, r0, #0
adds r7, r1, #0
adds r6, r2, #0
adds r0, #0x38
ldrb r2, [r0]
adds r0, r7, #0
adds r1, r6, #0
bl sub_080002A8
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
ldr r0, _080258B0 @ =0x00000312
cmp r2, r0
beq _08025822
ldr r0, _080258B4 @ =gUnk_080B37A0
adds r0, r2, r0
ldrb r0, [r0]
cmp r0, #0x16
beq _08025822
ldr r0, _080258B8 @ =gUnk_080B3E80
adds r0, r2, r0
ldrb r0, [r0]
cmp r0, #0
beq _080258AA
_08025822:
adds r5, r7, #0
subs r5, #0x10
adds r4, #0x38
ldrb r2, [r4]
adds r0, r5, #0
adds r1, r6, #0
bl sub_080002A8
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
ldr r0, _080258B0 @ =0x00000312
mov r8, r4
cmp r2, r0
beq _08025852
ldr r0, _080258B4 @ =gUnk_080B37A0
adds r0, r2, r0
ldrb r0, [r0]
cmp r0, #0x16
beq _08025852
ldr r0, _080258B8 @ =gUnk_080B3E80
adds r0, r2, r0
ldrb r0, [r0]
cmp r0, #0
beq _080258AA
_08025852:
adds r4, r6, #0
subs r4, #0x10
mov r0, r8
ldrb r2, [r0]
adds r0, r7, #0
adds r1, r4, #0
bl sub_080002A8
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
ldr r0, _080258B0 @ =0x00000312
adds r1, r4, #0
cmp r2, r0
beq _08025882
ldr r0, _080258B4 @ =gUnk_080B37A0
adds r0, r2, r0
ldrb r0, [r0]
cmp r0, #0x16
beq _08025882
ldr r0, _080258B8 @ =gUnk_080B3E80
adds r0, r2, r0
ldrb r0, [r0]
cmp r0, #0
beq _080258AA
_08025882:
mov r0, r8
ldrb r2, [r0]
adds r0, r5, #0
bl sub_080002A8
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
ldr r0, _080258B0 @ =0x00000312
cmp r2, r0
beq _080258BC
ldr r0, _080258B4 @ =gUnk_080B37A0
adds r0, r2, r0
ldrb r0, [r0]
cmp r0, #0x16
beq _080258BC
ldr r0, _080258B8 @ =gUnk_080B3E80
adds r0, r2, r0
ldrb r0, [r0]
cmp r0, #0
bne _080258BC
_080258AA:
movs r0, #1
b _080258BE
.align 2, 0
_080258B0: .4byte 0x00000312
_080258B4: .4byte gUnk_080B37A0
_080258B8: .4byte gUnk_080B3E80
_080258BC:
movs r0, #0
_080258BE:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_080258C4
sub_080258C4: @ 0x080258C4
push {r4, lr}
adds r4, r0, #0
movs r0, #1
bl sub_08049DF4
adds r2, r0, #0
cmp r2, #0
beq _08025922
movs r0, #0x2e
ldrsh r1, [r2, r0]
movs r3, #0x2e
ldrsh r0, [r4, r3]
subs r3, r1, r0
adds r0, r3, #0
muls r0, r3, r0
adds r3, r0, #0
movs r1, #0x32
ldrsh r0, [r2, r1]
movs r2, #0x32
ldrsh r1, [r4, r2]
subs r0, r0, r1
adds r1, r0, #0
muls r1, r0, r1
adds r0, r1, #0
adds r3, r3, r0
adds r0, r4, #0
adds r0, #0x84
ldrh r0, [r0]
cmp r0, #0
bne _0802591A
adds r0, r4, #0
adds r0, #0x81
ldrb r1, [r0]
cmp r1, #0
bne _0802591A
movs r0, #0x80
lsls r0, r0, #3
cmp r3, r0
bgt _0802591A
movs r0, #9
strb r0, [r4, #0xc]
strb r1, [r4, #0xe]
b _08025942
_0802591A:
movs r0, #0x90
lsls r0, r0, #4
cmp r3, r0
ble _08025926
_08025922:
movs r0, #0
b _08025944
_08025926:
movs r0, #0xb
strb r0, [r4, #0xc]
movs r0, #1
strb r0, [r4, #0xe]
bl Random
ldr r2, _08025948 @ =gUnk_080CC050
movs r1, #0xf
ands r1, r0
adds r1, r1, r2
ldrb r1, [r1]
adds r0, r4, #0
adds r0, #0x78
strh r1, [r0]
_08025942:
movs r0, #1
_08025944:
pop {r4, pc}
.align 2, 0
_08025948: .4byte gUnk_080CC050
thumb_func_start sub_0802594C
sub_0802594C: @ 0x0802594C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x14
mov sl, r0
ldr r0, _08025A20 @ =gUnk_080CC090
lsls r1, r1, #2
adds r1, r1, r0
ldr r7, [r1]
mov r0, sl
adds r0, #0x38
ldrb r0, [r0]
mov sb, r0
ldr r3, _08025A24 @ =gRoomControls
mov r1, sl
ldrh r0, [r1, #0x2e]
ldrh r1, [r3, #6]
subs r0, r0, r1
adds r0, #8
movs r1, #0x10
rsbs r1, r1, #0
adds r2, r1, #0
ands r0, r2
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
str r0, [sp]
mov r1, sl
ldrh r0, [r1, #0x32]
ldrh r1, [r3, #8]
subs r0, r0, r1
adds r0, #8
ands r0, r2
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
str r0, [sp, #4]
_08025996:
movs r0, #0
ldrsb r0, [r7, r0]
ldr r1, [sp]
lsls r4, r1, #0x10
asrs r4, r4, #0x10
adds r4, r4, r0
lsls r4, r4, #0x10
movs r0, #1
ldrsb r0, [r7, r0]
ldr r1, [sp, #4]
lsls r5, r1, #0x10
asrs r5, r5, #0x10
adds r5, r5, r0
lsls r5, r5, #0x10
lsrs r0, r4, #0x10
str r0, [sp, #8]
asrs r4, r4, #0x10
lsrs r1, r5, #0x10
str r1, [sp, #0xc]
asrs r5, r5, #0x10
adds r0, r4, #0
adds r1, r5, #0
mov r2, sb
bl sub_080002D4
adds r6, r0, #0
lsls r6, r6, #0x18
lsrs r6, r6, #0x18
movs r0, #0x10
rsbs r0, r0, #0
adds r0, r0, r4
mov r8, r0
adds r1, r5, #0
mov r2, sb
bl sub_080002D4
adds r3, r0, #0
lsls r3, r3, #0x18
lsrs r3, r3, #0x18
subs r5, #0x10
adds r0, r4, #0
adds r1, r5, #0
mov r2, sb
str r3, [sp, #0x10]
bl sub_080002D4
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
mov r0, r8
adds r1, r5, #0
mov r2, sb
bl sub_080002D4
ldr r3, [sp, #0x10]
orrs r6, r3
orrs r4, r6
orrs r4, r0
lsls r4, r4, #0x18
cmp r4, #0
beq _08025A28
adds r7, #2
movs r0, #0
ldrsb r0, [r7, r0]
cmp r0, #0x7f
bne _08025996
movs r0, #0
b _08025A44
.align 2, 0
_08025A20: .4byte gUnk_080CC090
_08025A24: .4byte gRoomControls
_08025A28:
ldr r2, _08025A50 @ =gRoomControls
ldrh r0, [r2, #6]
ldr r1, [sp, #8]
adds r0, r0, r1
mov r1, sl
adds r1, #0x7c
strh r0, [r1]
ldrh r0, [r2, #8]
ldr r1, [sp, #0xc]
adds r0, r0, r1
mov r1, sl
adds r1, #0x7e
strh r0, [r1]
movs r0, #1
_08025A44:
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
_08025A50: .4byte gRoomControls
thumb_func_start sub_08025A54
sub_08025A54: @ 0x08025A54
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
adds r1, r0, #0
adds r1, #0x38
ldrb r1, [r1]
mov sb, r1
ldr r3, _08025AB0 @ =gRoomControls
ldrh r2, [r0, #0x2e]
ldrh r1, [r3, #6]
subs r2, r2, r1
ldrh r1, [r0, #0x32]
ldrh r0, [r3, #8]
subs r1, r1, r0
ldr r4, _08025AB4 @ =gUnk_080CC0A0
movs r5, #0
lsls r2, r2, #0x10
asrs r2, r2, #0x10
mov r8, r2
movs r6, #0x3f
lsls r1, r1, #0x10
asrs r7, r1, #0x10
_08025A82:
movs r0, #0
ldrsb r0, [r4, r0]
add r0, r8
asrs r0, r0, #4
ands r0, r6
movs r1, #1
ldrsb r1, [r4, r1]
adds r1, r7, r1
asrs r1, r1, #4
ands r1, r6
lsls r1, r1, #6
orrs r0, r1
mov r1, sb
bl sub_08025AB8
adds r5, #1
adds r4, #2
cmp r5, #3
bls _08025A82
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08025AB0: .4byte gRoomControls
_08025AB4: .4byte gUnk_080CC0A0
thumb_func_start sub_08025AB8
sub_08025AB8: @ 0x08025AB8
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
bl sub_080002E0
cmp r0, #0
bne _08025AD6
lsls r0, r4, #0x10
lsrs r0, r0, #0x10
lsls r1, r5, #0x18
lsrs r1, r1, #0x18
bl sub_080002C8
cmp r0, #0xa
beq _08025ADA
_08025AD6:
movs r0, #0
b _08025AE6
_08025ADA:
movs r0, #0x61
adds r1, r4, #0
adds r2, r5, #0
bl sub_0807B7D8
movs r0, #1
_08025AE6:
pop {r4, r5, pc}
thumb_func_start sub_08025AE8
sub_08025AE8: @ 0x08025AE8
push {r4, lr}
adds r4, r0, #0
movs r1, #0x22
movs r2, #0
bl CreateFX
adds r1, r0, #0
cmp r1, #0
beq _08025B00
ldr r0, [r1, #0x30]
subs r0, #1
str r0, [r1, #0x30]
_08025B00:
adds r0, r4, #0
movs r1, #0x23
movs r2, #0
bl CreateFX
adds r1, r0, #0
cmp r1, #0
beq _08025B16
ldr r0, [r1, #0x30]
adds r0, #1
str r0, [r1, #0x30]
_08025B16:
pop {r4, pc}
thumb_func_start sub_08025B18
sub_08025B18: @ 0x08025B18
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
adds r6, r0, #0
movs r0, #0x2e
ldrsh r1, [r6, r0]
ldr r2, _08025BC8 @ =gRoomControls
ldrh r0, [r2, #6]
subs r1, r1, r0
str r1, [sp]
movs r0, #0x32
ldrsh r1, [r6, r0]
ldrh r0, [r2, #8]
subs r1, r1, r0
str r1, [sp, #4]
adds r0, r6, #0
adds r0, #0x38
ldrb r0, [r0]
mov sl, r0
ldr r5, _08025BCC @ =gUnk_080CC0A8
movs r7, #0
movs r1, #0x3f
mov r8, r1
movs r2, #0x10
rsbs r2, r2, #0
mov sb, r2
_08025B52:
movs r0, #0
ldrsb r0, [r5, r0]
ldr r1, [sp]
adds r0, r1, r0
asrs r0, r0, #4
mov r2, r8
ands r0, r2
movs r1, #1
ldrsb r1, [r5, r1]
ldr r2, [sp, #4]
adds r1, r2, r1
asrs r1, r1, #4
mov r2, r8
ands r1, r2
lsls r1, r1, #6
orrs r0, r1
mov r1, sl
bl sub_08025AB8
movs r0, #0x21
movs r1, #2
movs r2, #0
bl CreateObject
adds r4, r0, #0
cmp r4, #0
beq _08025BB4
movs r2, #0
ldrsb r2, [r5, r2]
lsls r2, r2, #0x10
movs r3, #1
ldrsb r3, [r5, r3]
lsls r3, r3, #0x10
adds r0, r6, #0
adds r1, r4, #0
bl PositionRelative
ldrh r1, [r4, #0x2e]
mov r0, sb
ands r0, r1
adds r0, #8
strh r0, [r4, #0x2e]
ldrh r1, [r4, #0x32]
mov r0, sb
ands r0, r1
adds r0, #8
strh r0, [r4, #0x32]
ldr r0, _08025BD0 @ =0x0000FFFF
strh r0, [r4, #0x36]
_08025BB4:
adds r7, #1
adds r5, #2
cmp r7, #8
bls _08025B52
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
_08025BC8: .4byte gRoomControls
_08025BCC: .4byte gUnk_080CC0A8
_08025BD0: .4byte 0x0000FFFF
thumb_func_start sub_08025BD4
sub_08025BD4: @ 0x08025BD4
push {r4, r5, lr}
adds r5, r0, #0
adds r0, #0x82
ldrb r0, [r0]
cmp r0, #0
beq _08025C22
adds r0, r5, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _08025C22
movs r0, #0x21
movs r1, #0
movs r2, #0
bl CreateObject
adds r4, r0, #0
cmp r4, #0
beq _08025C22
ldr r3, _08025C24 @ =gUnk_080CC0BA
ldrb r0, [r5, #0x14]
lsls r0, r0, #1
adds r1, r0, r3
movs r2, #0
ldrsb r2, [r1, r2]
lsls r2, r2, #0x10
adds r0, #1
adds r0, r0, r3
movs r3, #0
ldrsb r3, [r0, r3]
lsls r3, r3, #0x10
adds r0, r5, #0
adds r1, r4, #0
bl PositionRelative
ldr r0, _08025C28 @ =0x0000FFF6
strh r0, [r4, #0x36]
_08025C22:
pop {r4, r5, pc}
.align 2, 0
_08025C24: .4byte gUnk_080CC0BA
_08025C28: .4byte 0x0000FFF6
thumb_func_start sub_08025C2C
sub_08025C2C: @ 0x08025C2C
push {lr}
movs r2, #0
movs r1, #8
strb r1, [r0, #0xc]
adds r1, r0, #0
adds r1, #0x80
strb r2, [r1]
movs r1, #8
bl sub_08004260
pop {pc}
.align 2, 0
thumb_func_start sub_08025C44
sub_08025C44: @ 0x08025C44
push {lr}
adds r2, r0, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _08025C58
movs r0, #0
b _08025C5E
_08025C58:
adds r0, r2, #0
bl sub_080AEF88
_08025C5E:
pop {pc}
thumb_func_start sub_08025C60
sub_08025C60: @ 0x08025C60
push {r4, lr}
adds r4, r0, #0
bl sub_08049FA0
cmp r0, #0
bne _08025C80
bl Random
movs r1, #1
ands r1, r0
cmp r1, #0
beq _08025C80
adds r0, r4, #0
bl sub_08049EE4
b _08025C98
_08025C80:
bl Random
ldr r2, _08025C9C @ =gUnk_080CC0C2
movs r1, #7
ands r1, r0
adds r1, r1, r2
movs r0, #0
ldrsb r0, [r1, r0]
ldrb r4, [r4, #0x15]
adds r0, r0, r4
movs r1, #0x1f
ands r0, r1
_08025C98:
pop {r4, pc}
.align 2, 0
_08025C9C: .4byte gUnk_080CC0C2
thumb_func_start sub_08025CA0
sub_08025CA0: @ 0x08025CA0
push {r4, r5, lr}
adds r5, r0, #0
ldr r4, _08025CB8 @ =gUnk_080CC19C
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
_08025CB8: .4byte gUnk_080CC19C
thumb_func_start sub_08025CBC
sub_08025CBC: @ 0x08025CBC
push {r4, lr}
adds r4, r0, #0
bl sub_08001324
thumb_func_start sub_08025CC4
sub_08025CC4: @ 0x08025CC4
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _08025CD0
adds r0, r4, #0
bl sub_08027870
_08025CD0:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08025CD4
sub_08025CD4: @ 0x08025CD4
push {r4, r5, lr}
adds r4, r0, #0
bl sub_08078B48
ldrb r3, [r4, #0xa]
cmp r3, #0
bne _08025DA4
ldrb r0, [r4, #0xd]
cmp r0, #0xc
beq _08025CFE
movs r0, #0xc
strb r0, [r4, #0xd]
adds r0, r4, #0
adds r0, #0x84
ldr r0, [r0]
strb r3, [r0, #3]
ldr r0, [r4, #0x54]
movs r1, #9
bl sub_080042AC
b _08025D9C
_08025CFE:
adds r5, r4, #0
adds r5, #0x84
ldr r0, [r5]
ldrb r0, [r0, #3]
cmp r0, #0
beq _08025D10
cmp r0, #1
beq _08025D28
b _08025D9C
_08025D10:
adds r0, r4, #0
movs r1, #0x3f
bl sub_08027C7C
ldr r0, [r5]
movs r1, #1
strb r1, [r0, #3]
adds r1, r4, #0
adds r1, #0x7d
movs r0, #0x78
strb r0, [r1]
b _08025D9C
_08025D28:
adds r2, r4, #0
adds r2, #0x7d
ldrb r0, [r2]
subs r1, r0, #1
strb r1, [r2]
lsls r0, r1, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _08025D84
ldr r1, [r4, #0x54]
adds r1, #0x6d
ldrb r0, [r1]
movs r2, #2
orrs r0, r2
strb r0, [r1]
ldr r1, [r4, #0x68]
adds r1, #0x6d
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
ldr r1, [r4, #0x50]
adds r1, #0x6d
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
ldr r2, [r4, #0x54]
ldr r1, [r4, #0x50]
ldr r0, [r4, #0x68]
adds r0, #0x45
strb r3, [r0]
adds r1, #0x45
strb r3, [r1]
adds r2, #0x45
strb r3, [r2]
ldr r0, _08025D80 @ =gUnk_02034490
strb r3, [r0]
movs r0, #0x94
lsls r0, r0, #1
bl PlaySFX
adds r0, r4, #0
bl sub_0804A7D4
b _08025D9C
.align 2, 0
_08025D80: .4byte gUnk_02034490
_08025D84:
lsls r0, r1, #0x18
lsrs r0, r0, #0x18
movs r1, #0x3f
cmp r0, #0x50
bhi _08025D96
movs r1, #0xf
cmp r0, #0x1e
bls _08025D96
movs r1, #0x1f
_08025D96:
adds r0, r4, #0
bl sub_08027C7C
_08025D9C:
adds r0, r4, #0
bl sub_08027870
b _08025DBC
_08025DA4:
adds r2, r4, #0
adds r2, #0x6d
ldrb r1, [r2]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _08025DBC
movs r0, #2
orrs r0, r1
strb r0, [r2]
bl sub_0805E780
_08025DBC:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08025DC0
sub_08025DC0: @ 0x08025DC0
push {lr}
ldr r2, _08025DD4 @ =gUnk_080CC1B0
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08025DD4: .4byte gUnk_080CC1B0
thumb_func_start sub_08025DD8
sub_08025DD8: @ 0x08025DD8
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
movs r0, #1
strb r0, [r5, #0xc]
ldrb r1, [r5, #0xa]
cmp r1, #8
bne _08025DF2
movs r0, #4
strb r0, [r5, #0xa]
ldr r0, [r5, #0x54]
ldr r0, [r0, #0x48]
str r0, [r5, #0x48]
b _0802605E
_08025DF2:
ldr r6, _08025E48 @ =gUnk_080CC1B8
movs r4, #3
movs r3, #3
adds r0, r3, #0
ands r0, r1
lsls r0, r0, #2
adds r0, r0, r6
ldrb r0, [r0, #1]
movs r1, #0x29
adds r1, r1, r5
mov ip, r1
movs r1, #7
ands r1, r0
mov r0, ip
ldrb r2, [r0]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
mov r1, ip
strb r0, [r1]
adds r1, r5, #0
adds r1, #0x76
movs r0, #0xa0
strh r0, [r1]
adds r1, #4
strh r0, [r1]
adds r1, #4
movs r0, #0
strh r0, [r1]
ldrb r0, [r5, #0x19]
orrs r0, r4
strb r0, [r5, #0x19]
ldrb r0, [r5, #0xa]
ands r3, r0
cmp r3, #1
bne _08025E4C
adds r0, r5, #0
movs r1, #0
bl sub_080042AC
b _08025E58
.align 2, 0
_08025E48: .4byte gUnk_080CC1B8
_08025E4C:
lsls r0, r3, #2
adds r0, r0, r6
ldrb r1, [r0]
adds r0, r5, #0
bl sub_08004260
_08025E58:
ldrb r0, [r5, #0xa]
movs r6, #3
ands r6, r0
cmp r6, #0
beq _08025E86
cmp r6, #0
bge _08025E68
b _08026050
_08025E68:
cmp r6, #3
ble _08025E6E
b _08026050
_08025E6E:
ldr r4, [r5, #0x48]
adds r0, r5, #0
bl sub_0806FBD8
adds r1, r0, #0
cmp r1, #0
beq _08025E7E
b _08026020
_08025E7E:
ldr r0, [r5, #0x68]
adds r0, #0x45
strb r1, [r0]
b _0802605E
_08025E86:
strb r0, [r5, #0xb]
movs r0, #0x10
bl sub_0801D8E0
adds r4, r5, #0
adds r4, #0x84
str r0, [r4]
cmp r0, #0
beq _08025EA2
adds r0, r5, #0
bl sub_0806FBD8
cmp r0, #0
bne _08025EAA
_08025EA2:
adds r0, r5, #0
bl sub_0804A7D4
b _0802605E
_08025EAA:
ldr r0, [r4]
str r0, [r5, #0x64]
ldr r2, [r5, #0x48]
ldr r1, _0802601C @ =gUnk_080FD238
ldrb r0, [r1]
strb r0, [r2]
ldr r2, [r5, #0x48]
ldrb r0, [r1, #1]
strb r0, [r2, #1]
ldr r2, [r5, #0x48]
ldrb r0, [r1, #2]
strb r0, [r2, #2]
ldr r2, [r5, #0x48]
ldrb r0, [r1, #3]
strb r0, [r2, #3]
ldr r2, [r5, #0x48]
ldrb r0, [r1, #4]
strb r0, [r2, #4]
ldr r2, [r5, #0x48]
ldrb r0, [r1, #5]
strb r0, [r2, #5]
ldr r2, [r5, #0x48]
ldrb r0, [r1, #6]
strb r0, [r2, #6]
ldr r2, [r5, #0x48]
ldrb r0, [r1, #7]
strb r0, [r2, #7]
strb r6, [r5, #0xd]
adds r1, r5, #0
adds r1, #0x6d
ldrb r0, [r1]
movs r7, #1
orrs r0, r7
strb r0, [r1]
ldr r0, [r4]
strb r6, [r0, #6]
ldr r0, [r4]
strb r6, [r0, #5]
ldr r1, [r4]
movs r0, #0xf
strb r0, [r1, #1]
ldr r0, [r4]
strb r6, [r0, #3]
ldr r0, [r4]
strb r6, [r0, #4]
ldr r1, [r4]
ldrh r0, [r5, #0x2e]
strh r0, [r1, #0xe]
ldrb r0, [r5, #0xa]
movs r1, #3
orrs r1, r0
movs r0, #0x13
bl CreateEnemy
adds r2, r0, #0
str r2, [r5, #0x68]
cmp r2, #0
beq _08025F46
adds r0, r5, #0
adds r0, #0x38
ldrb r1, [r0]
adds r0, r2, #0
adds r0, #0x38
strb r1, [r0]
ldr r1, [r5, #0x68]
ldrh r0, [r5, #0x2e]
strh r0, [r1, #0x2e]
ldr r1, [r5, #0x68]
ldrh r0, [r5, #0x32]
subs r0, #0xe
strh r0, [r1, #0x32]
ldr r1, [r5, #0x68]
movs r0, #0xe
strb r0, [r1, #0xe]
ldr r0, [r5, #0x68]
str r5, [r0, #0x50]
ldr r0, [r5, #0x68]
str r5, [r0, #0x68]
_08025F46:
ldrb r0, [r5, #0xa]
movs r1, #2
orrs r1, r0
movs r0, #0x13
bl CreateEnemy
adds r2, r0, #0
str r2, [r5, #0x50]
cmp r2, #0
beq _08025F8C
adds r0, r5, #0
adds r0, #0x38
ldrb r1, [r0]
adds r0, r2, #0
adds r0, #0x38
strb r1, [r0]
ldr r1, [r5, #0x50]
ldrh r0, [r5, #0x2e]
strh r0, [r1, #0x2e]
ldr r1, [r5, #0x50]
ldr r0, [r5, #0x68]
ldrh r0, [r0, #0x32]
subs r0, #0x12
strh r0, [r1, #0x32]
ldr r1, [r5, #0x50]
movs r0, #0x12
strb r0, [r1, #0xe]
ldr r1, [r5, #0x50]
ldr r0, [r5, #0x68]
str r0, [r1, #0x50]
ldr r1, [r5, #0x68]
ldr r0, [r5, #0x50]
str r0, [r1, #0x54]
ldr r0, [r5, #0x50]
str r5, [r0, #0x68]
_08025F8C:
ldrb r0, [r5, #0xa]
adds r1, r7, #0
orrs r1, r0
movs r0, #0x13
bl CreateEnemy
adds r2, r0, #0
str r2, [r5, #0x54]
cmp r2, #0
beq _08025FD6
adds r0, r5, #0
adds r0, #0x38
ldrb r1, [r0]
adds r0, r2, #0
adds r0, #0x38
strb r1, [r0]
ldr r1, [r5, #0x54]
ldrh r0, [r5, #0x2e]
strh r0, [r1, #0x2e]
ldr r1, [r5, #0x54]
ldr r0, [r5, #0x50]
ldrh r0, [r0, #0x32]
subs r0, #0xe
strh r0, [r1, #0x32]
ldr r1, [r5, #0x54]
movs r0, #0xe
strb r0, [r1, #0xe]
ldr r1, [r5, #0x54]
ldr r0, [r5, #0x50]
str r0, [r1, #0x50]
ldr r0, [r5, #0x54]
str r5, [r0, #0x54]
ldr r1, [r5, #0x50]
ldr r0, [r5, #0x54]
str r0, [r1, #0x54]
ldr r0, [r5, #0x54]
str r5, [r0, #0x68]
_08025FD6:
movs r0, #0x13
movs r1, #8
bl CreateEnemy
adds r1, r0, #0
cmp r1, #0
beq _08025FE6
str r5, [r1, #0x54]
_08025FE6:
adds r0, r5, #0
movs r1, #0x49
movs r2, #1
movs r3, #0
bl CreateObjectWithParent
adds r1, r0, #0
cmp r1, #0
beq _08025FFC
ldr r0, [r5, #0x54]
str r0, [r1, #0x54]
_08025FFC:
ldrb r0, [r5, #0xa]
cmp r0, #0
beq _08026050
adds r0, r5, #0
movs r1, #0x49
movs r2, #3
movs r3, #0
bl CreateObjectWithParent
adds r1, r0, #0
cmp r1, #0
beq _08026050
ldr r0, [r5, #0x54]
str r0, [r1, #0x54]
b _08026050
.align 2, 0
_0802601C: .4byte gUnk_080FD238
_08026020:
ldr r1, [r5, #0x48]
ldrb r0, [r4]
strb r0, [r1]
ldr r1, [r5, #0x48]
ldrb r0, [r4, #1]
strb r0, [r1, #1]
ldr r1, [r5, #0x48]
ldrb r0, [r4, #2]
strb r0, [r1, #2]
ldr r1, [r5, #0x48]
ldrb r0, [r4, #3]
strb r0, [r1, #3]
ldr r1, [r5, #0x48]
ldrb r0, [r4, #4]
strb r0, [r1, #4]
ldr r1, [r5, #0x48]
ldrb r0, [r4, #5]
strb r0, [r1, #5]
ldr r1, [r5, #0x48]
ldrb r0, [r4, #6]
strb r0, [r1, #6]
ldr r1, [r5, #0x48]
ldrb r0, [r4, #7]
strb r0, [r1, #7]
_08026050:
ldrb r1, [r5, #0xa]
movs r0, #3
ands r0, r1
strb r0, [r5, #0xa]
adds r0, r5, #0
bl sub_08026060
_0802605E:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_08026060
sub_08026060: @ 0x08026060
push {r4, lr}
adds r4, r0, #0
ldr r1, _0802608C @ =gUnk_080CC1C8
ldrb r0, [r4, #0xa]
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, #0x76
ldrh r1, [r0]
adds r0, #4
ldrh r2, [r0]
adds r0, #4
ldrh r3, [r0]
adds r0, r4, #0
bl sub_0805EC9C
pop {r4, pc}
.align 2, 0
_0802608C: .4byte gUnk_080CC1C8
thumb_func_start sub_08026090
sub_08026090: @ 0x08026090
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xd]
cmp r0, #0
bne _080260EA
ldr r0, [r4, #0x54]
adds r0, #0x45
ldrb r0, [r0]
cmp r0, #0
bne _080260B8
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
movs r0, #1
strb r0, [r4, #0xd]
movs r0, #0xfa
strb r0, [r4, #0xe]
ldr r0, _080260D4 @ =gRoomControls
str r4, [r0, #0x30]
_080260B8:
ldr r0, [r4, #0x54]
ldrb r1, [r0, #0x10]
strb r1, [r4, #0x10]
ldr r1, [r0, #0x48]
str r1, [r4, #0x48]
adds r0, #0x3f
ldrb r1, [r0]
cmp r1, #0x7e
bne _080260D8
adds r0, r4, #0
adds r0, #0x3f
strb r1, [r0]
b _080260E0
.align 2, 0
_080260D4: .4byte gRoomControls
_080260D8:
adds r1, r4, #0
adds r1, #0x3f
movs r0, #0x7c
strb r0, [r1]
_080260E0:
ldr r0, [r4, #0x54]
adds r1, r4, #0
bl CopyPosition
b _08026106
_080260EA:
bl sub_08078B48
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _08026106
ldr r1, _08026108 @ =gRoomControls
ldr r0, _0802610C @ =gLinkEntity
str r0, [r1, #0x30]
bl sub_0805E780
_08026106:
pop {r4, pc}
.align 2, 0
_08026108: .4byte gRoomControls
_0802610C: .4byte gLinkEntity
thumb_func_start sub_08026110
sub_08026110: @ 0x08026110
push {r4, r5, r6, r7, lr}
adds r6, r0, #0
ldr r1, _08026144 @ =gUnk_080CC1DC
ldrb r0, [r6, #0xd]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r6, #0
bl _call_via_r1
adds r0, r6, #0
adds r0, #0x84
ldr r2, [r0]
ldr r0, [r2, #8]
cmp r0, #0
bne _08026160
ldrb r1, [r2, #5]
cmp r1, #0
beq _08026160
ldrb r0, [r6, #0xd]
cmp r0, #8
bne _08026148
adds r0, r1, #0
subs r0, #0x40
b _0802614C
.align 2, 0
_08026144: .4byte gUnk_080CC1DC
_08026148:
adds r0, r1, #0
subs r0, #0x20
_0802614C:
strb r0, [r2, #5]
adds r0, r6, #0
adds r0, #0x84
ldr r1, [r0]
movs r0, #5
ldrsb r0, [r1, r0]
cmp r0, #0
bge _08026160
movs r0, #0
strb r0, [r1, #5]
_08026160:
adds r2, r6, #0
adds r2, #0x80
ldrb r0, [r2]
movs r1, #0x76
adds r1, r1, r6
mov ip, r1
adds r7, r6, #0
adds r7, #0x7a
cmp r0, #0
beq _08026230
ldrb r0, [r6, #0xe]
cmp r0, #0
bne _080261D2
ldrb r1, [r2]
lsls r1, r1, #0xc
ldr r0, [r6, #0x74]
subs r0, r0, r1
str r0, [r6, #0x74]
ldrb r1, [r2]
lsls r1, r1, #0xc
ldr r0, [r6, #0x78]
subs r0, r0, r1
str r0, [r6, #0x78]
mov r0, ip
ldrh r2, [r0]
adds r4, r6, #0
adds r4, #0x82
ldrb r1, [r4]
adds r3, r6, #0
adds r3, #0x84
ldr r0, [r3]
ldrb r0, [r0, #5]
adds r1, r1, r0
cmp r2, r1
bgt _080261AA
mov r0, ip
strh r1, [r0]
_080261AA:
ldrh r2, [r7]
ldrb r1, [r4]
ldr r0, [r3]
ldrb r0, [r0, #5]
adds r1, r1, r0
cmp r2, r1
bgt _080261BA
strh r1, [r7]
_080261BA:
mov r1, ip
ldrh r2, [r1]
ldrb r1, [r4]
ldr r0, [r3]
ldrb r0, [r0, #5]
adds r1, r1, r0
cmp r2, r1
bgt _08026230
ldrh r0, [r7]
cmp r0, r1
bgt _08026230
b _08026228
_080261D2:
ldrb r1, [r2]
lsls r1, r1, #0xc
ldr r0, [r6, #0x74]
adds r0, r0, r1
str r0, [r6, #0x74]
ldrb r1, [r2]
lsls r1, r1, #0xc
ldr r0, [r6, #0x78]
adds r0, r0, r1
str r0, [r6, #0x78]
mov r0, ip
ldrh r2, [r0]
adds r4, r6, #0
adds r4, #0x81
ldrb r1, [r4]
adds r3, r6, #0
adds r3, #0x84
ldr r0, [r3]
ldrb r0, [r0, #5]
adds r1, r1, r0
cmp r2, r1
blt _08026202
mov r0, ip
strh r1, [r0]
_08026202:
ldrh r2, [r7]
ldrb r1, [r4]
ldr r0, [r3]
ldrb r0, [r0, #5]
adds r1, r1, r0
cmp r2, r1
blt _08026212
strh r1, [r7]
_08026212:
mov r1, ip
ldrh r2, [r1]
ldrb r1, [r4]
ldr r0, [r3]
ldrb r0, [r0, #5]
adds r1, r1, r0
cmp r2, r1
blt _08026230
ldrh r0, [r7]
cmp r0, r1
blt _08026230
_08026228:
ldrb r0, [r6, #0xe]
movs r1, #1
eors r0, r1
strb r0, [r6, #0xe]
_08026230:
ldr r5, [r6, #0x48]
mov r0, ip
ldrh r1, [r0]
movs r4, #0x80
lsls r4, r4, #9
adds r0, r4, #0
bl __divsi3
lsls r1, r0, #3
subs r1, r1, r0
lsrs r1, r1, #7
strb r1, [r5, #6]
ldr r5, [r6, #0x48]
ldrh r1, [r7]
adds r0, r4, #0
bl __divsi3
lsls r1, r0, #1
adds r1, r1, r0
lsrs r1, r1, #7
strb r1, [r5, #7]
movs r1, #0x36
ldrsh r0, [r6, r1]
cmp r0, #0
bne _08026268
adds r0, r6, #0
bl sub_0800445C
_08026268:
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_0802626C
sub_0802626C: @ 0x0802626C
push {lr}
ldr r2, _0802629C @ =gUnk_02034490
movs r1, #1
strb r1, [r2]
ldr r2, _080262A0 @ =gUnk_080CC20C
adds r1, r0, #0
adds r1, #0x84
ldr r1, [r1]
ldrb r1, [r1, #3]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
ldr r0, _080262A4 @ =gLinkEntity
ldrb r0, [r0, #0xc]
cmp r0, #0x17
beq _08026298
cmp r0, #0xf
beq _08026298
bl sub_08078B48
_08026298:
pop {pc}
.align 2, 0
_0802629C: .4byte gUnk_02034490
_080262A0: .4byte gUnk_080CC20C
_080262A4: .4byte gLinkEntity
thumb_func_start sub_080262A8
sub_080262A8: @ 0x080262A8
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x82
movs r6, #0
movs r0, #0x90
strb r0, [r1]
subs r1, #1
movs r0, #0xb0
strb r0, [r1]
subs r1, #1
movs r0, #8
strb r0, [r1]
movs r5, #1
strb r5, [r4, #0xe]
adds r0, r4, #0
movs r1, #6
movs r2, #1
bl sub_080276F4
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _080262EC
ldr r1, _080262E8 @ =gLinkState
movs r0, #0x82
lsls r0, r0, #1
strh r0, [r1, #8]
adds r0, r4, #0
adds r0, #0x84
ldr r0, [r0]
strb r5, [r0, #3]
b _0802631A
.align 2, 0
_080262E8: .4byte gLinkState
_080262EC:
adds r0, r4, #0
adds r0, #0x7c
strb r6, [r0]
adds r1, r4, #0
adds r1, #0x7d
movs r0, #0x1e
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x84
ldr r1, [r0]
movs r0, #3
strb r0, [r1, #3]
ldr r0, _0802631C @ =gLinkEntity
strb r6, [r0, #0x14]
ldr r0, _08026320 @ =gRoomControls
str r4, [r0, #0x30]
strb r5, [r0, #0xe]
ldr r0, _08026324 @ =0x00004022
movs r1, #0xb2
lsls r1, r1, #2
movs r2, #1
bl sub_0800015E
_0802631A:
pop {r4, r5, r6, pc}
.align 2, 0
_0802631C: .4byte gLinkEntity
_08026320: .4byte gRoomControls
_08026324: .4byte 0x00004022
thumb_func_start sub_08026328
sub_08026328: @ 0x08026328
push {lr}
adds r2, r0, #0
ldr r0, _08026354 @ =gLinkEntity
ldrb r0, [r0, #0xc]
cmp r0, #0x17
beq _08026352
adds r1, r2, #0
adds r1, #0x7d
movs r0, #0x78
strb r0, [r1]
adds r0, r2, #0
adds r0, #0x84
ldr r1, [r0]
ldrb r0, [r1, #3]
adds r0, #1
strb r0, [r1, #3]
movs r0, #0xa
movs r1, #0
movs r2, #0
bl sub_08078AC0
_08026352:
pop {pc}
.align 2, 0
_08026354: .4byte gLinkEntity
thumb_func_start sub_08026358
sub_08026358: @ 0x08026358
push {r4, lr}
adds r3, r0, #0
ldr r4, _08026398 @ =gLinkEntity
ldrb r0, [r4, #0xc]
cmp r0, #0xf
beq _080263B0
adds r1, r3, #0
adds r1, #0x7d
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
cmp r2, #0
bne _080263A0
adds r0, r3, #0
adds r0, #0x7c
strb r2, [r0]
movs r0, #0x1e
strb r0, [r1]
adds r0, r3, #0
adds r0, #0x84
ldr r1, [r0]
ldrb r0, [r1, #3]
adds r0, #1
strb r0, [r1, #3]
strb r2, [r4, #0x14]
ldr r1, _0802639C @ =gRoomControls
str r3, [r1, #0x30]
movs r0, #1
strb r0, [r1, #0xe]
b _080263B0
.align 2, 0
_08026398: .4byte gLinkEntity
_0802639C: .4byte gRoomControls
_080263A0:
cmp r2, #0x60
bhi _080263B0
cmp r2, #0x5b
bhi _080263AC
movs r0, #4
b _080263AE
_080263AC:
movs r0, #2
_080263AE:
strb r0, [r4, #0x14]
_080263B0:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080263B4
sub_080263B4: @ 0x080263B4
push {r4, r5, lr}
adds r4, r0, #0
movs r0, #0x7d
adds r0, r0, r4
mov ip, r0
ldrb r0, [r0]
subs r0, #1
mov r1, ip
strb r0, [r1]
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
cmp r5, #0xff
bne _08026410
ldr r2, _08026400 @ =gUnk_080CC234
adds r3, r4, #0
adds r3, #0x7c
ldrb r0, [r3]
adds r1, r0, #1
strb r1, [r3]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
adds r0, r0, r2
ldrb r1, [r0]
mov r0, ip
strb r1, [r0]
adds r0, r5, #0
ands r0, r1
cmp r0, #0xff
bne _08026404
movs r0, #0x78
strb r0, [r3]
adds r0, r4, #0
adds r0, #0x84
ldr r1, [r0]
ldrb r0, [r1, #3]
adds r0, #1
strb r0, [r1, #3]
b _08026410
.align 2, 0
_08026400: .4byte gUnk_080CC234
_08026404:
ldrb r2, [r4, #0xb]
adds r0, r4, #0
movs r1, #0x49
movs r3, #0
bl CreateObjectWithParent
_08026410:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08026414
sub_08026414: @ 0x08026414
push {r4, r5, r6, r7, lr}
adds r7, r0, #0
adds r1, r7, #0
adds r1, #0x7c
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _08026474
ldr r0, _08026478 @ =0x0000FF40
strh r0, [r7, #0x36]
ldr r6, [r7, #0x54]
ldr r5, [r7, #0x50]
ldr r4, [r7, #0x68]
ldrb r2, [r4, #0x18]
movs r1, #4
rsbs r1, r1, #0
adds r0, r1, #0
ands r0, r2
movs r3, #1
orrs r0, r3
strb r0, [r4, #0x18]
ldrb r2, [r5, #0x18]
adds r0, r1, #0
ands r0, r2
orrs r0, r3
strb r0, [r5, #0x18]
ldrb r2, [r6, #0x18]
adds r0, r1, #0
ands r0, r2
orrs r0, r3
strb r0, [r6, #0x18]
ldrb r0, [r7, #0x18]
ands r1, r0
orrs r1, r3
strb r1, [r7, #0x18]
adds r0, r7, #0
adds r0, #0x84
ldr r1, [r0]
ldrb r0, [r1, #3]
adds r0, #1
strb r0, [r1, #3]
movs r0, #0xd1
lsls r0, r0, #1
bl PlaySFX
_08026474:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08026478: .4byte 0x0000FF40
thumb_func_start sub_0802647C
sub_0802647C: @ 0x0802647C
push {r4, lr}
adds r4, r0, #0
movs r1, #0x80
lsls r1, r1, #7
bl sub_08003FC4
cmp r0, #0
bne _080264A6
movs r0, #0x10
movs r1, #0
bl sub_08080964
ldr r0, _080264A8 @ =0x000001A1
bl PlaySFX
adds r0, r4, #0
adds r0, #0x84
ldr r1, [r0]
ldrb r0, [r1, #3]
adds r0, #1
strb r0, [r1, #3]
_080264A6:
pop {r4, pc}
.align 2, 0
_080264A8: .4byte 0x000001A1
thumb_func_start sub_080264AC
sub_080264AC: @ 0x080264AC
push {r4, lr}
adds r4, r0, #0
movs r1, #0xd0
movs r2, #8
bl sub_080277B8
adds r0, r4, #0
adds r0, #0x84
ldr r0, [r0]
ldrb r0, [r0, #3]
cmp r0, #6
beq _080264D2
ldr r0, [r4, #0x54]
movs r1, #4
bl sub_080042AC
adds r0, r4, #0
bl sub_08027D20
_080264D2:
pop {r4, pc}
thumb_func_start sub_080264D4
sub_080264D4: @ 0x080264D4
push {r4, lr}
adds r4, r0, #0
bl sub_080279E8
cmp r0, #0
beq _08026504
adds r0, r4, #0
adds r0, #0x84
ldr r1, [r0]
ldrb r0, [r1, #3]
adds r0, #1
strb r0, [r1, #3]
adds r1, r4, #0
adds r1, #0x7d
movs r0, #0x3c
strb r0, [r1]
adds r0, r4, #0
movs r1, #5
movs r2, #0
bl sub_080276F4
movs r0, #0x2e
bl PlaySFX
_08026504:
adds r0, r4, #0
bl sub_080277F8
pop {r4, pc}
thumb_func_start sub_0802650C
sub_0802650C: @ 0x0802650C
push {lr}
adds r2, r0, #0
ldr r0, [r2, #0x54]
adds r0, #0x81
ldrb r0, [r0]
cmp r0, #0
bne _0802652C
adds r0, r2, #0
adds r0, #0x84
ldr r1, [r0]
ldrb r0, [r1, #3]
adds r0, #1
strb r0, [r1, #3]
ldr r1, _08026534 @ =gRoomControls
ldr r0, _08026538 @ =gLinkEntity
str r0, [r1, #0x30]
_0802652C:
adds r0, r2, #0
bl sub_08027870
pop {pc}
.align 2, 0
_08026534: .4byte gRoomControls
_08026538: .4byte gLinkEntity
thumb_func_start sub_0802653C
sub_0802653C: @ 0x0802653C
push {r4, r5, lr}
sub sp, #4
adds r4, r0, #0
ldr r1, _08026578 @ =gRoomControls
ldrh r5, [r1]
cmp r5, #0
bne _08026572
movs r0, #4
strb r0, [r1, #0xe]
movs r0, #0xff
str r0, [sp]
adds r0, r4, #0
movs r1, #0x90
movs r2, #0xb0
movs r3, #4
bl sub_08027B98
adds r0, r4, #0
movs r1, #0
bl sub_08027548
ldr r0, [r4, #0x54]
movs r1, #0
bl sub_080042AC
ldr r0, _0802657C @ =gUnk_02034490
strb r5, [r0]
_08026572:
add sp, #4
pop {r4, r5, pc}
.align 2, 0
_08026578: .4byte gRoomControls
_0802657C: .4byte gUnk_02034490
thumb_func_start sub_08026580
sub_08026580: @ 0x08026580
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
bl sub_08027AA4
adds r7, r5, #0
adds r7, #0x84
ldr r0, [r7]
ldrb r0, [r0, #1]
cmp r0, #0x40
bne _0802659C
adds r0, r5, #0
bl sub_08027BBC
b _0802662C
_0802659C:
adds r1, r5, #0
adds r1, #0x7d
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
adds r6, r1, #0
cmp r0, #0xff
bne _08026626
movs r0, #0
strh r0, [r5, #0x24]
movs r0, #2
strb r0, [r5, #0xd]
adds r4, r5, #0
adds r4, #0x7c
movs r0, #0x3c
strb r0, [r4]
ldr r1, _080265E4 @ =gLinkEntity
adds r0, r5, #0
bl sub_080045C4
strb r0, [r5, #0x15]
ldr r0, [r7]
ldrb r0, [r0, #4]
adds r2, r4, #0
cmp r0, #2
bne _080265E8
adds r1, r5, #0
adds r1, #0x80
movs r0, #0x48
strb r0, [r1]
adds r1, #1
ldrb r0, [r1]
adds r0, #0x10
b _080265EE
.align 2, 0
_080265E4: .4byte gLinkEntity
_080265E8:
adds r1, r5, #0
adds r1, #0x80
movs r0, #0x10
_080265EE:
strb r0, [r1]
adds r4, r5, #0
adds r4, #0x84
ldr r0, [r4]
ldrb r1, [r0, #1]
movs r0, #0xa0
ands r0, r1
cmp r0, #0
beq _08026608
movs r0, #0
strb r0, [r6]
strb r0, [r2]
b _08026626
_08026608:
bl Random
ldr r2, _08026630 @ =gUnk_080CC24F
movs r1, #7
ands r1, r0
adds r1, r1, r2
ldrb r0, [r1]
adds r1, r0, #1
strb r1, [r6]
ldr r0, [r4]
ldrb r0, [r0, #4]
cmp r0, #2
bne _08026626
lsls r0, r1, #1
strb r0, [r6]
_08026626:
adds r0, r5, #0
bl sub_08027870
_0802662C:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08026630: .4byte gUnk_080CC24F
thumb_func_start sub_08026634
sub_08026634: @ 0x08026634
push {r4, r5, lr}
sub sp, #4
adds r4, r0, #0
bl sub_08027AA4
cmp r0, #0
beq _08026644
b _08026748
_08026644:
adds r0, r4, #0
adds r0, #0x7d
ldrb r1, [r0]
adds r5, r0, #0
cmp r1, #0
bne _080266D6
adds r1, r4, #0
adds r1, #0x7c
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _08026748
adds r1, #8
ldr r2, [r1]
ldrb r3, [r2, #1]
movs r0, #0x40
ands r0, r3
adds r5, r1, #0
cmp r0, #0
bne _080266B0
movs r0, #0x80
ands r0, r3
cmp r0, #0
beq _0802668C
ldrb r0, [r2]
subs r0, #1
strb r0, [r2]
ldr r1, [r5]
ldrb r0, [r1]
cmp r0, #0
bne _080266B0
movs r0, #1
b _080266AE
_0802668C:
movs r0, #1
strb r0, [r2, #1]
ldr r0, [r5]
ldrb r0, [r0, #4]
cmp r0, #2
bne _080266B0
bl Random
movs r1, #3
ands r1, r0
cmp r1, #0
beq _080266B0
ldr r1, [r5]
movs r0, #4
strb r0, [r1]
ldr r1, [r5]
movs r0, #0x81
_080266AE:
strb r0, [r1, #1]
_080266B0:
movs r1, #0
movs r0, #3
strb r0, [r4, #0xd]
ldr r0, [r5]
strb r1, [r0, #3]
str r1, [sp]
adds r0, r4, #0
movs r1, #0x90
movs r2, #0x90
movs r3, #0xc
bl sub_08027B98
movs r0, #0xe0
lsls r0, r0, #0xb
str r0, [r4, #0x20]
movs r0, #0xc0
lsls r0, r0, #1
strh r0, [r4, #0x24]
b _08026742
_080266D6:
ldr r0, _08026700 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #0x7f
ands r0, r1
cmp r0, #0
bne _080266EC
ldr r1, _08026704 @ =gLinkEntity
adds r0, r4, #0
bl sub_080045C4
strb r0, [r4, #0x15]
_080266EC:
adds r0, r4, #0
adds r0, #0x84
ldr r0, [r0]
ldrb r0, [r0, #4]
cmp r0, #2
bne _08026708
movs r0, #0x80
lsls r0, r0, #1
b _0802670A
.align 2, 0
_08026700: .4byte gUnk_030010A0
_08026704: .4byte gLinkEntity
_08026708:
movs r0, #0xc0
_0802670A:
strh r0, [r4, #0x24]
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _0802672C
ldr r0, _0802674C @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #7
ands r0, r1
cmp r0, #0
bne _08026726
movs r0, #0xcf
lsls r0, r0, #1
bl PlaySFX
_08026726:
adds r0, r4, #0
bl sub_080AEF88
_0802672C:
adds r0, r4, #0
adds r0, #0x76
adds r1, r4, #0
adds r1, #0x81
ldrh r0, [r0]
ldrb r1, [r1]
cmp r0, r1
bne _08026742
ldrb r0, [r5]
subs r0, #1
strb r0, [r5]
_08026742:
adds r0, r4, #0
bl sub_08027870
_08026748:
add sp, #4
pop {r4, r5, pc}
.align 2, 0
_0802674C: .4byte gUnk_030010A0
thumb_func_start sub_08026750
sub_08026750: @ 0x08026750
push {r4, lr}
adds r4, r0, #0
bl sub_08027AA4
ldr r1, _08026770 @ =gUnk_080CC258
adds r0, r4, #0
adds r0, #0x84
ldr r0, [r0]
ldrb r0, [r0, #3]
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
_08026770: .4byte gUnk_080CC258
thumb_func_start sub_08026774
sub_08026774: @ 0x08026774
push {r4, lr}
sub sp, #4
adds r4, r0, #0
ldr r1, [r4, #0x54]
adds r1, #0x83
ldr r0, [r4, #0x50]
adds r0, #0x83
ldrb r1, [r1]
ldrb r0, [r0]
orrs r1, r0
ldr r0, [r4, #0x68]
adds r0, #0x83
ldrb r0, [r0]
orrs r1, r0
cmp r1, #0
bne _080267C6
adds r2, r4, #0
adds r2, #0x7d
ldrb r0, [r2]
subs r0, #1
strb r0, [r2]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _080267CC
str r1, [sp]
adds r0, r4, #0
movs r1, #0x80
movs r2, #0x80
movs r3, #0x40
bl sub_08027B98
adds r0, r4, #0
adds r0, #0x84
ldr r1, [r0]
movs r0, #1
strb r0, [r1, #3]
ldr r0, [r4, #0x54]
movs r1, #1
bl sub_080042AC
_080267C6:
adds r0, r4, #0
bl sub_080277F8
_080267CC:
add sp, #4
pop {r4, pc}
thumb_func_start sub_080267D0
sub_080267D0: @ 0x080267D0
push {r4, lr}
sub sp, #4
adds r4, r0, #0
movs r1, #0xf0
movs r2, #8
bl sub_080277B8
adds r0, r4, #0
adds r0, #0x84
ldr r0, [r0]
ldrb r0, [r0, #3]
cmp r0, #1
beq _08026802
movs r0, #0xff
str r0, [sp]
adds r0, r4, #0
movs r1, #0xe0
movs r2, #0xc0
movs r3, #0x20
bl sub_08027B98
ldr r0, [r4, #0x54]
movs r1, #2
bl sub_080042AC
_08026802:
add sp, #4
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08026808
sub_08026808: @ 0x08026808
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
ldr r2, [r4, #0x54]
ldr r7, [r4, #0x68]
ldr r6, [r4, #0x50]
adds r1, r2, #0
adds r1, #0x76
ldrh r0, [r1]
cmp r0, #0xbf
bhi _08026820
adds r0, #4
strh r0, [r1]
_08026820:
adds r5, r2, #0
adds r5, #0x7a
ldrh r0, [r5]
cmp r0, #0xb0
bls _08026830
subs r0, #8
strh r0, [r5]
b _08026860
_08026830:
ldr r1, _08026868 @ =gLinkEntity
adds r0, r4, #0
bl sub_080045C4
strb r0, [r4, #0x15]
movs r0, #4
strb r0, [r4, #0xd]
movs r1, #0xa0
strh r1, [r5]
adds r0, r6, #0
adds r0, #0x7a
strh r1, [r0]
adds r0, r7, #0
adds r0, #0x7a
strh r1, [r0]
adds r0, r4, #0
movs r1, #1
movs r2, #0
bl sub_080276F4
movs r0, #0xd1
lsls r0, r0, #1
bl PlaySFX
_08026860:
adds r0, r4, #0
bl sub_080277F8
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08026868: .4byte gLinkEntity
thumb_func_start sub_0802686C
sub_0802686C: @ 0x0802686C
push {r4, r5, lr}
sub sp, #4
adds r4, r0, #0
movs r1, #0x80
lsls r1, r1, #7
bl sub_08003FC4
adds r5, r0, #0
cmp r5, #0
beq _08026888
adds r0, r4, #0
bl sub_080AEF88
b _080268BE
_08026888:
movs r0, #0x10
movs r1, #0
bl sub_08080964
movs r0, #5
strb r0, [r4, #0xd]
adds r0, r4, #0
adds r0, #0x84
ldr r0, [r0]
strb r5, [r0, #3]
str r5, [sp]
adds r0, r4, #0
movs r1, #0x80
movs r2, #0x80
movs r3, #0x80
bl sub_08027B98
adds r0, r4, #0
bl sub_08027870
ldr r0, [r4, #0x54]
movs r1, #3
bl sub_080042AC
ldr r0, _080268C4 @ =0x000001A1
bl PlaySFX
_080268BE:
add sp, #4
pop {r4, r5, pc}
.align 2, 0
_080268C4: .4byte 0x000001A1
thumb_func_start sub_080268C8
sub_080268C8: @ 0x080268C8
push {r4, lr}
adds r4, r0, #0
bl sub_08027AA4
ldr r1, _080268E8 @ =gUnk_080CC264
adds r0, r4, #0
adds r0, #0x84
ldr r0, [r0]
ldrb r0, [r0, #3]
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
_080268E8: .4byte gUnk_080CC264
thumb_func_start sub_080268EC
sub_080268EC: @ 0x080268EC
push {r4, lr}
adds r4, r0, #0
movs r1, #0xd0
movs r2, #8
bl sub_080277B8
adds r0, r4, #0
adds r0, #0x84
ldr r0, [r0]
ldrb r0, [r0, #3]
cmp r0, #0
beq _08026912
ldr r0, [r4, #0x54]
movs r1, #4
bl sub_080042AC
adds r0, r4, #0
bl sub_08027D20
_08026912:
pop {r4, pc}
thumb_func_start sub_08026914
sub_08026914: @ 0x08026914
push {r4, lr}
sub sp, #4
adds r4, r0, #0
bl sub_080279E8
cmp r0, #0
beq _08026942
movs r0, #0xff
str r0, [sp]
adds r0, r4, #0
movs r1, #0x90
movs r2, #0xb0
movs r3, #4
bl sub_08027B98
adds r0, r4, #0
movs r1, #0
bl sub_08027548
ldr r0, [r4, #0x54]
movs r1, #0
bl sub_080042AC
_08026942:
adds r0, r4, #0
bl sub_080277F8
add sp, #4
pop {r4, pc}
thumb_func_start sub_0802694C
sub_0802694C: @ 0x0802694C
push {lr}
ldr r2, _08026964 @ =gUnk_080CC26C
adds r1, r0, #0
adds r1, #0x84
ldr r1, [r1]
ldrb r1, [r1, #3]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08026964: .4byte gUnk_080CC26C
thumb_func_start sub_08026968
sub_08026968: @ 0x08026968
push {r4, r5, r6, lr}
adds r2, r0, #0
adds r1, r2, #0
adds r1, #0x7d
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _0802698C
adds r0, r2, #0
adds r0, #0x84
ldr r1, [r0]
ldrb r0, [r1, #3]
adds r0, #1
strb r0, [r1, #3]
b _080269C0
_0802698C:
ldr r6, [r2, #0x54]
ldr r4, [r2, #0x68]
ldr r5, [r2, #0x50]
ldrb r1, [r2, #0x15]
movs r0, #0x10
ands r0, r1
ldr r3, _080269C8 @ =0xFFFFFF00
cmp r0, #0
beq _080269A2
movs r3, #0x80
lsls r3, r3, #1
_080269A2:
adds r1, r4, #0
adds r1, #0x82
ldrh r0, [r1]
adds r0, r0, r3
strh r0, [r1]
adds r1, r5, #0
adds r1, #0x82
ldrh r0, [r1]
adds r0, r0, r3
strh r0, [r1]
adds r1, r6, #0
adds r1, #0x82
ldrh r0, [r1]
adds r0, r0, r3
strh r0, [r1]
_080269C0:
adds r0, r2, #0
bl sub_08027870
pop {r4, r5, r6, pc}
.align 2, 0
_080269C8: .4byte 0xFFFFFF00
thumb_func_start sub_080269CC
sub_080269CC: @ 0x080269CC
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
adds r6, r0, #0
movs r7, #0
ldr r5, [r6, #0x54]
ldr r0, [r6, #0x68]
mov sl, r0
ldr r1, [r6, #0x50]
mov sb, r1
ldrb r1, [r6, #0x15]
movs r0, #0x10
ands r0, r1
movs r1, #0xc0
lsls r1, r1, #2
mov r8, r1
cmp r0, #0
beq _080269F8
ldr r0, _08026A18 @ =0xFFFFFD00
mov r8, r0
_080269F8:
mov r0, sl
adds r0, #0x83
ldrb r0, [r0]
adds r4, r0, #0
adds r4, #0x20
lsls r0, r4, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x3f
bhi _08026A1C
mov r1, sl
adds r1, #0x82
ldrh r0, [r1]
add r0, r8
strh r0, [r1]
b _08026A1E
.align 2, 0
_08026A18: .4byte 0xFFFFFD00
_08026A1C:
movs r7, #1
_08026A1E:
mov r0, sb
adds r0, #0x83
ldrb r0, [r0]
adds r4, r0, #0
adds r4, #0x44
lsls r0, r4, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x87
bhi _08026A3C
mov r1, sb
adds r1, #0x82
ldrh r0, [r1]
add r0, r8
strh r0, [r1]
b _08026A3E
_08026A3C:
adds r7, #1
_08026A3E:
adds r0, r5, #0
adds r0, #0x83
ldrb r0, [r0]
adds r4, r0, #0
adds r4, #0x40
adds r0, #0x20
cmp r0, #0x40
bls _08026A7E
ldrb r1, [r6, #0x15]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _08026A6C
adds r0, r5, #0
adds r0, #0x58
ldrb r0, [r0]
cmp r0, #6
beq _08026A7E
adds r0, r5, #0
movs r1, #6
bl sub_080042AC
b _08026A7E
_08026A6C:
adds r0, r5, #0
adds r0, #0x58
ldrb r0, [r0]
cmp r0, #5
beq _08026A7E
adds r0, r5, #0
movs r1, #5
bl sub_080042AC
_08026A7E:
lsls r0, r4, #0x18
cmp r0, #0
blt _08026A90
adds r1, r5, #0
adds r1, #0x82
ldrh r0, [r1]
add r0, r8
strh r0, [r1]
b _08026A92
_08026A90:
adds r7, #1
_08026A92:
cmp r7, #3
beq _08026A98
b _08026BB8
_08026A98:
ldrb r1, [r6, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r6, #0x10]
ldrb r1, [r5, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r5, #0x10]
adds r1, r5, #0
adds r1, #0x76
ldrh r0, [r1]
adds r0, #3
strh r0, [r1]
movs r0, #0x20
movs r1, #0
bl sub_08080964
ldr r0, _08026B24 @ =0x0000010B
bl PlaySFX
adds r0, r6, #0
movs r1, #0x15
movs r2, #0
movs r3, #0
bl CreateObjectWithParent
adds r4, r0, #0
cmp r4, #0
beq _08026B4E
movs r0, #0xc9
strh r0, [r4, #0x12]
adds r1, r4, #0
adds r1, #0x58
movs r0, #1
strb r0, [r1]
ldrh r0, [r4, #0x32]
adds r0, #0x10
strh r0, [r4, #0x32]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
ldrb r2, [r5, #0x19]
lsrs r2, r2, #6
lsls r2, r2, #6
ldrb r3, [r4, #0x19]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r3
orrs r0, r2
strb r0, [r4, #0x19]
ldrb r0, [r5, #0x1b]
lsrs r0, r0, #6
lsls r0, r0, #6
ldrb r2, [r4, #0x1b]
ands r1, r2
orrs r1, r0
strb r1, [r4, #0x1b]
ldrb r1, [r6, #0x15]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _08026B28
ldrh r0, [r4, #0x2e]
subs r0, #0x38
b _08026B2C
.align 2, 0
_08026B24: .4byte 0x0000010B
_08026B28:
ldrh r0, [r4, #0x2e]
adds r0, #0x38
_08026B2C:
strh r0, [r4, #0x2e]
adds r0, r4, #0
movs r1, #0x3e
bl sub_080ADF80
ldrb r0, [r6, #0xb]
cmp r0, #0
bne _08026B46
adds r0, r4, #0
movs r1, #0x2b
bl sub_0801D040
b _08026B4E
_08026B46:
adds r0, r4, #0
movs r1, #0x2c
bl sub_0801D040
_08026B4E:
ldr r3, [r6, #0x50]
ldr r2, [r6, #0x54]
ldr r0, [r6, #0x68]
adds r0, #0x84
movs r1, #1
strb r1, [r0]
adds r2, #0x84
strb r1, [r2]
adds r3, #0x84
strb r1, [r3]
mov r0, sb
adds r0, #0x7a
movs r1, #0x98
strh r1, [r0]
mov r0, sl
adds r0, #0x7a
strh r1, [r0]
adds r0, r5, #0
adds r0, #0x7a
strh r1, [r0]
bl Random
ldr r2, _08026BB4 @ =gUnk_080CC278
movs r1, #3
ands r1, r0
adds r1, r1, r2
ldrb r0, [r1]
adds r7, r6, #0
adds r7, #0x7c
strb r0, [r7]
adds r0, r6, #0
adds r0, #0x84
ldr r1, [r0]
ldrb r0, [r1, #3]
adds r0, #1
strb r0, [r1, #3]
adds r0, r5, #0
movs r1, #0x49
movs r2, #0xa
movs r3, #0
bl CreateObjectWithParent
adds r4, r0, #0
cmp r4, #0
beq _08026BD4
adds r1, r4, #0
adds r1, #0x84
ldrb r0, [r7]
str r0, [r1]
b _08026BD4
.align 2, 0
_08026BB4: .4byte gUnk_080CC278
_08026BB8:
adds r0, r5, #0
adds r0, #0x76
ldrh r0, [r0]
cmp r0, #0xef
bhi _08026BD4
ldr r0, [r5, #0x74]
movs r1, #0x80
lsls r1, r1, #0xb
adds r0, r0, r1
str r0, [r5, #0x74]
ldr r0, [r5, #0x78]
ldr r1, _08026BE4 @ =0xFFFF8000
adds r0, r0, r1
str r0, [r5, #0x78]
_08026BD4:
adds r0, r6, #0
bl sub_08027870
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08026BE4: .4byte 0xFFFF8000
thumb_func_start sub_08026BE8
sub_08026BE8: @ 0x08026BE8
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, [r4, #0x54]
adds r3, r5, #0
adds r3, #0x3b
ldrb r1, [r3]
movs r0, #0xfe
ands r0, r1
strb r0, [r3]
adds r1, r4, #0
adds r1, #0x7c
ldrb r0, [r1]
adds r2, r0, #0
cmp r2, #0
bne _08026C34
movs r0, #7
strb r0, [r4, #0xd]
adds r0, r4, #0
adds r0, #0x84
ldr r0, [r0]
strb r2, [r0, #3]
adds r1, #1
movs r0, #0x2d
strb r0, [r1]
ldrb r1, [r5, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r5, #0x10]
ldrb r0, [r3]
movs r1, #1
orrs r0, r1
strb r0, [r3]
ldr r0, _08026C30 @ =0x00000155
bl PlaySFX
b _08026C38
.align 2, 0
_08026C30: .4byte 0x00000155
_08026C34:
subs r0, #1
strb r0, [r1]
_08026C38:
adds r0, r4, #0
bl sub_08027870
pop {r4, r5, pc}
thumb_func_start sub_08026C40
sub_08026C40: @ 0x08026C40
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #4
adds r5, r0, #0
ldr r4, [r5, #0x54]
ldr r7, [r5, #0x68]
ldr r6, [r5, #0x50]
adds r2, r5, #0
adds r2, #0x7d
ldrb r0, [r2]
cmp r0, #0
beq _08026CCC
subs r1, r0, #1
strb r1, [r2]
lsls r0, r1, #0x18
cmp r0, #0
beq _08026C9C
movs r0, #8
ands r1, r0
cmp r1, #0
beq _08026C82
ldr r0, [r4, #0x74]
movs r1, #0x80
lsls r1, r1, #0xa
adds r0, r0, r1
str r0, [r4, #0x74]
ldr r0, [r4, #0x78]
movs r2, #0x80
lsls r2, r2, #9
adds r0, r0, r2
str r0, [r4, #0x78]
b _08026E12
_08026C82:
ldr r0, [r4, #0x74]
ldr r3, _08026C94 @ =0xFFFE0000
adds r0, r0, r3
str r0, [r4, #0x74]
ldr r0, [r4, #0x78]
ldr r1, _08026C98 @ =0xFFFF0000
adds r0, r0, r1
str r0, [r4, #0x78]
b _08026E12
.align 2, 0
_08026C94: .4byte 0xFFFE0000
_08026C98: .4byte 0xFFFF0000
_08026C9C:
ldrb r1, [r5, #0x15]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _08026CBA
adds r0, r4, #0
adds r0, #0x58
ldrb r0, [r0]
cmp r0, #8
beq _08026CCC
adds r0, r4, #0
movs r1, #8
bl sub_080042AC
b _08026CCC
_08026CBA:
adds r0, r4, #0
adds r0, #0x58
ldrb r0, [r0]
cmp r0, #7
beq _08026CCC
adds r0, r4, #0
movs r1, #7
bl sub_080042AC
_08026CCC:
adds r0, r5, #0
adds r0, #0x7c
ldrb r1, [r0]
mov r8, r0
cmp r1, #0
bne _08026CF0
ldrb r1, [r5, #0x15]
movs r0, #0x10
ands r0, r1
ldr r2, _08026CEC @ =0xFFFFFD00
cmp r0, #0
beq _08026D00
movs r2, #0xc0
lsls r2, r2, #2
b _08026D00
.align 2, 0
_08026CEC: .4byte 0xFFFFFD00
_08026CF0:
ldrb r1, [r5, #0x15]
movs r0, #0x10
ands r0, r1
ldr r2, _08026D30 @ =0xFFFFFB80
cmp r0, #0
beq _08026D00
movs r2, #0x90
lsls r2, r2, #3
_08026D00:
adds r0, r7, #0
adds r0, #0x83
ldrb r0, [r0]
adds r0, #6
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xc
bls _08026D34
adds r1, r7, #0
adds r1, #0x82
lsls r0, r2, #1
ldrh r3, [r1]
adds r0, r0, r3
strh r0, [r1]
adds r1, r6, #0
adds r1, #0x82
ldrh r0, [r1]
adds r0, r0, r2
strh r0, [r1]
adds r1, r4, #0
adds r1, #0x82
ldrh r0, [r1]
b _08026D7E
.align 2, 0
_08026D30: .4byte 0xFFFFFB80
_08026D34:
adds r0, r7, #0
adds r0, #0x82
movs r1, #0
strh r1, [r0]
adds r0, r6, #0
adds r0, #0x83
ldrb r0, [r0]
adds r0, #6
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xc
bls _08026D60
adds r1, r6, #0
adds r1, #0x82
lsls r0, r2, #1
ldrh r3, [r1]
adds r0, r0, r3
strh r0, [r1]
adds r1, r4, #0
adds r1, #0x82
ldrh r0, [r1]
b _08026D7E
_08026D60:
adds r0, r6, #0
adds r0, #0x82
strh r1, [r0]
adds r0, r4, #0
adds r0, #0x83
ldrb r0, [r0]
adds r0, #6
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xc
bls _08026D84
adds r1, r4, #0
adds r1, #0x82
lsls r0, r2, #1
ldrh r2, [r1]
_08026D7E:
adds r0, r0, r2
strh r0, [r1]
b _08026D8A
_08026D84:
adds r0, r4, #0
adds r0, #0x82
strh r1, [r0]
_08026D8A:
adds r1, r4, #0
adds r1, #0x76
ldrh r0, [r1]
cmp r0, #0xa0
bls _08026DA4
ldr r0, [r4, #0x74]
ldr r3, _08026DA0 @ =0xFFFC0000
adds r0, r0, r3
str r0, [r4, #0x74]
b _08026DA8
.align 2, 0
_08026DA0: .4byte 0xFFFC0000
_08026DA4:
movs r0, #0xa0
strh r0, [r1]
_08026DA8:
adds r0, r4, #0
adds r0, #0x7a
ldrh r0, [r0]
cmp r0, #0x9f
bhi _08026DBE
ldr r0, [r4, #0x78]
movs r1, #0x80
lsls r1, r1, #8
adds r0, r0, r1
str r0, [r4, #0x78]
b _08026E0C
_08026DBE:
adds r0, r5, #0
movs r1, #3
movs r2, #0
bl sub_080276F4
adds r0, r4, #0
adds r0, #0x7d
movs r2, #0
strb r2, [r0]
ldrb r1, [r5, #0x15]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _08026DEE
adds r1, r6, #0
adds r1, #0x85
movs r0, #1
strb r0, [r1]
adds r1, r7, #0
adds r1, #0x85
strb r0, [r1]
adds r1, r4, #0
adds r1, #0x85
strb r0, [r1]
_08026DEE:
movs r0, #8
strb r0, [r5, #0xd]
movs r0, #4
mov r3, r8
strb r0, [r3]
strb r2, [r6, #0xf]
strb r2, [r7, #0xf]
strb r2, [r4, #0xf]
str r2, [sp]
adds r0, r5, #0
movs r1, #0x90
movs r2, #0xb0
movs r3, #0x10
bl sub_08027B98
_08026E0C:
adds r0, r5, #0
bl sub_08027870
_08026E12:
add sp, #4
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_08026E1C
sub_08026E1C: @ 0x08026E1C
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #4
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x7c
ldrb r0, [r1]
adds r6, r0, #0
cmp r6, #0
bne _08026EE0
ldr r0, [r4, #0x54]
ldrb r0, [r0, #0xf]
ldr r1, [r4, #0x50]
ldrb r1, [r1, #0xf]
ldr r2, [r4, #0x68]
adds r0, r0, r1
ldrb r2, [r2, #0xf]
adds r0, r0, r2
cmp r0, #0xa
ble _08026EF2
ldrb r0, [r4, #0x10]
movs r1, #0x80
mov r8, r1
movs r7, #0
mov r1, r8
orrs r0, r1
strb r0, [r4, #0x10]
adds r0, r4, #0
bl sub_08027C54
adds r5, r4, #0
adds r5, #0x84
cmp r0, #0
beq _08026E72
ldr r1, [r5]
ldrb r0, [r1, #4]
adds r0, #1
strb r0, [r1, #4]
ldr r0, [r4, #0x54]
adds r0, #0x45
movs r1, #0xff
strb r1, [r0]
_08026E72:
ldr r1, [r5]
ldrb r0, [r1, #4]
cmp r0, #3
bne _08026EA0
adds r0, r4, #0
adds r0, #0x45
strb r6, [r0]
ldrb r0, [r4, #0x10]
movs r1, #0x7f
ands r1, r0
strb r1, [r4, #0x10]
ldr r3, [r4, #0x54]
ldr r2, [r4, #0x50]
ldr r0, [r4, #0x68]
strb r1, [r0, #0x10]
ldrb r0, [r4, #0x10]
strb r0, [r2, #0x10]
strb r0, [r3, #0x10]
adds r1, r4, #0
adds r1, #0x3d
movs r0, #0xc4
strb r0, [r1]
b _08026F14
_08026EA0:
movs r0, #4
strb r0, [r1]
ldr r1, [r5]
movs r0, #0x81
strb r0, [r1, #1]
ldrb r0, [r4, #0x10]
mov r1, r8
orrs r0, r1
strb r0, [r4, #0x10]
adds r1, r4, #0
adds r1, #0x3f
movs r0, #0x7d
strb r0, [r1]
movs r0, #0xb
strb r0, [r4, #0xd]
ldr r0, [r5]
strb r6, [r0, #3]
ldr r0, [r4, #0x54]
movs r1, #0
bl sub_080042AC
str r6, [sp]
adds r0, r4, #0
movs r1, #0x80
movs r2, #0x80
movs r3, #0x80
bl sub_08027B98
ldr r1, [r5]
movs r0, #0x21
strb r0, [r1, #1]
b _08026EF2
_08026EE0:
subs r0, #1
movs r2, #0
strb r0, [r1]
adds r1, r4, #0
adds r1, #0x84
ldr r0, [r1]
str r2, [r0, #8]
ldr r0, [r1]
strb r2, [r0, #6]
_08026EF2:
adds r0, r4, #0
bl sub_08027C54
cmp r0, #0
beq _08026F14
adds r0, r4, #0
adds r0, #0x84
ldr r0, [r0]
ldrb r0, [r0, #4]
cmp r0, #2
bne _08026F14
adds r0, r4, #0
movs r1, #0x3f
bl sub_08027C7C
bl sub_08078B48
_08026F14:
add sp, #4
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_08026F1C
sub_08026F1C: @ 0x08026F1C
push {r4, r5, lr}
sub sp, #4
adds r4, r0, #0
adds r5, r4, #0
adds r5, #0x7c
ldrb r1, [r5]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08026F70
adds r0, r4, #0
bl sub_080279E8
cmp r0, #0
beq _08026F68
adds r0, r4, #0
adds r0, #0x84
ldr r0, [r0]
movs r2, #0
strb r2, [r0, #3]
ldrb r1, [r5]
movs r0, #0xf
ands r0, r1
strb r0, [r5]
str r2, [sp]
adds r0, r4, #0
movs r1, #0x80
movs r2, #0x80
movs r3, #0x80
bl sub_08027B98
ldrb r0, [r5]
cmp r0, #2
bne _08026F68
adds r0, r4, #0
movs r1, #0
bl sub_08027548
_08026F68:
adds r0, r4, #0
bl sub_080277F8
b _08026FA0
_08026F70:
adds r0, r4, #0
movs r1, #0xf0
movs r2, #0x10
bl sub_080277B8
adds r0, r4, #0
adds r0, #0x84
ldr r0, [r0]
ldrb r0, [r0, #3]
cmp r0, #0
beq _08026FA0
ldrb r0, [r5]
adds r0, #1
movs r1, #0x80
orrs r0, r1
strb r0, [r5]
movs r0, #1
str r0, [sp]
adds r0, r4, #0
movs r1, #0xc0
movs r2, #0xc0
movs r3, #0x20
bl sub_08027B98
_08026FA0:
add sp, #4
pop {r4, r5, pc}
thumb_func_start sub_08026FA4
sub_08026FA4: @ 0x08026FA4
push {r4, r5, lr}
adds r4, r0, #0
bl sub_08078B48
ldrb r0, [r4, #0x10]
movs r5, #0x7f
adds r1, r5, #0
ands r1, r0
strb r1, [r4, #0x10]
ldr r3, [r4, #0x54]
ldr r2, [r4, #0x50]
ldr r0, [r4, #0x68]
strb r1, [r0, #0x10]
ldrb r0, [r4, #0x10]
strb r0, [r2, #0x10]
strb r0, [r3, #0x10]
adds r3, r4, #0
adds r3, #0x7c
ldrb r0, [r3]
cmp r0, #0
beq _08026FD2
movs r0, #1
strb r0, [r3]
_08026FD2:
ldr r2, [r4, #0x54]
adds r0, r2, #0
adds r0, #0x7a
ldrh r0, [r0]
cmp r0, #0x97
bhi _08026FFE
movs r1, #0x80
lsls r1, r1, #9
ldrb r0, [r3]
lsls r1, r0
ldr r0, [r2, #0x78]
adds r0, r0, r1
str r0, [r2, #0x78]
ldr r2, [r4, #0x54]
movs r1, #0x80
lsls r1, r1, #0xa
ldrb r3, [r3]
lsls r1, r3
ldr r0, [r2, #0x74]
subs r0, r0, r1
str r0, [r2, #0x74]
b _0802705C
_08026FFE:
movs r0, #7
strb r0, [r4, #0xd]
ldrb r1, [r2, #0x10]
adds r0, r5, #0
ands r0, r1
strb r0, [r2, #0x10]
adds r0, r4, #0
adds r0, #0x84
ldr r1, [r0]
movs r0, #0
strb r0, [r1, #3]
adds r1, r4, #0
adds r1, #0x7d
movs r0, #0x2d
strb r0, [r1]
ldr r0, _08027044 @ =0x00000155
bl PlaySFX
ldrb r1, [r4, #0x15]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _08027048
ldr r1, [r4, #0x54]
adds r0, r1, #0
adds r0, #0x58
ldrb r0, [r0]
cmp r0, #8
beq _0802705C
adds r0, r1, #0
movs r1, #8
bl sub_080042AC
b _0802705C
.align 2, 0
_08027044: .4byte 0x00000155
_08027048:
ldr r1, [r4, #0x54]
adds r0, r1, #0
adds r0, #0x58
ldrb r0, [r0]
cmp r0, #7
beq _0802705C
adds r0, r1, #0
movs r1, #7
bl sub_080042AC
_0802705C:
adds r0, r4, #0
bl sub_08027870
pop {r4, r5, pc}
thumb_func_start sub_08027064
sub_08027064: @ 0x08027064
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
adds r5, r0, #0
ldr r6, [r5, #0x54]
ldr r0, [r5, #0x68]
mov sb, r0
ldr r1, [r5, #0x50]
mov r8, r1
movs r0, #0x60
strh r0, [r5, #0x24]
adds r0, r6, #0
adds r0, #0x58
ldrb r0, [r0]
cmp r0, #0xa
beq _08027098
ldr r0, _080270C8 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #0xf
ands r0, r1
cmp r0, #0
bne _08027098
movs r0, #0x7c
bl PlaySFX
_08027098:
adds r0, r5, #0
adds r0, #0x84
ldr r3, [r0]
ldrb r1, [r3, #3]
adds r7, r0, #0
cmp r1, #0
beq _080270E0
ldr r0, _080270CC @ =gLinkEntity
movs r2, #0x32
ldrsh r4, [r5, r2]
movs r1, #0x32
ldrsh r2, [r0, r1]
cmp r4, r2
beq _080270E0
ldr r0, _080270C8 @ =gUnk_030010A0
ldr r1, [r0]
movs r0, #0xf
ands r1, r0
cmp r1, #0
bne _080270D4
cmp r4, r2
ble _080270D0
strb r1, [r3, #0xc]
b _080270D4
.align 2, 0
_080270C8: .4byte gUnk_030010A0
_080270CC: .4byte gLinkEntity
_080270D0:
movs r0, #0x10
strb r0, [r3, #0xc]
_080270D4:
ldr r0, [r7]
ldrb r0, [r0, #0xc]
strb r0, [r5, #0x15]
adds r0, r5, #0
bl sub_080AEF88
_080270E0:
adds r0, r6, #0
adds r0, #0x85
ldrb r0, [r0]
cmp r0, #1
bne _080270FC
adds r0, r6, #0
adds r0, #0x83
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bgt _0802710E
movs r0, #0x18
b _08027110
_080270FC:
adds r0, r6, #0
adds r0, #0x83
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bge _0802710E
movs r0, #0x18
b _08027110
_0802710E:
movs r0, #8
_08027110:
strb r0, [r5, #0x15]
ldr r1, [r7]
ldrb r0, [r1, #3]
cmp r0, #0
bne _08027152
movs r2, #0x2e
ldrsh r0, [r5, r2]
ldrh r1, [r1, #0xe]
cmp r0, r1
bne _0802714A
mov r0, r8
adds r0, #0x84
movs r1, #1
strb r1, [r0]
mov r0, sb
adds r0, #0x84
strb r1, [r0]
adds r0, r6, #0
adds r0, #0x84
strb r1, [r0]
adds r1, r5, #0
adds r1, #0x7c
movs r0, #0x1e
strb r0, [r1]
ldr r1, [r7]
ldrb r0, [r1, #3]
adds r0, #1
strb r0, [r1, #3]
b _080271FE
_0802714A:
adds r0, r5, #0
bl sub_080AEF88
b _080271FE
_08027152:
adds r0, r6, #0
adds r0, #0x7d
ldrb r0, [r0]
cmp r0, #0
beq _080271E6
mov r0, sb
adds r0, #0x7d
ldrb r0, [r0]
cmp r0, #0
beq _080271E6
mov r0, r8
adds r0, #0x7d
ldrb r0, [r0]
cmp r0, #0
beq _080271E6
adds r1, r5, #0
adds r1, #0x7c
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _080271FE
mov r0, r8
adds r0, #0x84
movs r1, #1
strb r1, [r0]
mov r0, sb
adds r0, #0x84
strb r1, [r0]
adds r0, r6, #0
adds r0, #0x84
strb r1, [r0]
movs r3, #0
ldr r0, [r7]
ldrb r0, [r0, #3]
cmp r0, #1
bls _080271B2
ldr r0, _080271DC @ =gLinkEntity
movs r2, #0x2e
ldrsh r1, [r5, r2]
movs r2, #0x2e
ldrsh r0, [r0, r2]
movs r3, #8
cmp r1, r0
ble _080271B2
movs r3, #0x18
_080271B2:
ldr r2, [r7]
ldrb r1, [r2, #3]
cmp r1, #5
beq _080271C0
ldrb r0, [r5, #0x15]
cmp r0, r3
bne _080271E0
_080271C0:
movs r4, #0
movs r0, #6
strb r0, [r5, #0xd]
adds r0, r5, #0
movs r1, #7
movs r2, #1
bl sub_080276F4
ldr r0, [r7]
strb r4, [r0, #3]
adds r1, r5, #0
adds r1, #0x7d
movs r0, #0xf
b _080271FC
.align 2, 0
_080271DC: .4byte gLinkEntity
_080271E0:
adds r0, r1, #1
strb r0, [r2, #3]
b _080271FE
_080271E6:
ldr r0, [r7]
ldrb r0, [r0, #3]
cmp r0, #4
beq _080271F6
adds r1, r5, #0
adds r1, #0x7c
movs r0, #0x1e
b _080271FC
_080271F6:
adds r1, r5, #0
adds r1, #0x7c
movs r0, #0x3c
_080271FC:
strb r0, [r1]
_080271FE:
adds r0, r5, #0
bl sub_08027870
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0802720C
sub_0802720C: @ 0x0802720C
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x50]
ldrb r0, [r0, #0xd]
strb r0, [r4, #0xd]
ldrb r0, [r4, #0xd]
cmp r0, #0xc
bhi _080272CA
lsls r0, r0, #2
ldr r1, _08027228 @ =_0802722C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08027228: .4byte _0802722C
_0802722C: @ jump table
.4byte _080272C4 @ case 0
.4byte _08027260 @ case 1
.4byte _08027260 @ case 2
.4byte _0802726E @ case 3
.4byte _080272AA @ case 4
.4byte _0802726E @ case 5
.4byte _080272CA @ case 6
.4byte _080272CA @ case 7
.4byte _08027282 @ case 8
.4byte _080272CA @ case 9
.4byte _080272A0 @ case 10
.4byte _080272CA @ case 11
.4byte _08027260 @ case 12
_08027260:
adds r1, r4, #0
adds r1, #0x7a
movs r0, #0xa0
strh r0, [r1]
subs r1, #4
strh r0, [r1]
b _080272AA
_0802726E:
adds r0, r4, #0
adds r0, #0x83
ldrb r0, [r0]
cmp r0, #0
beq _080272CA
adds r1, r4, #0
adds r1, #0x7d
movs r0, #0
strb r0, [r1]
b _080272AA
_08027282:
ldrb r0, [r4, #0xf]
cmp r0, #3
bhi _080272CA
adds r0, r4, #0
bl sub_0802757C
adds r0, r4, #0
adds r0, #0x83
ldrb r0, [r0]
cmp r0, #0
bne _080272CA
ldrb r0, [r4, #0xf]
adds r0, #1
strb r0, [r4, #0xf]
b _080272CA
_080272A0:
adds r2, r4, #0
adds r2, #0x7d
ldrb r0, [r2]
cmp r0, #0
bne _080272B2
_080272AA:
adds r0, r4, #0
bl sub_0802757C
b _080272CA
_080272B2:
adds r1, r4, #0
adds r1, #0x84
ldrb r0, [r1]
cmp r0, #0
beq _080272CA
movs r0, #0
strb r0, [r2]
strb r0, [r1]
b _080272CA
_080272C4:
adds r0, r4, #0
bl sub_0802757C
_080272CA:
ldr r0, [r4, #0x50]
ldr r0, [r0, #0x34]
str r0, [r4, #0x34]
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080272D4
sub_080272D4: @ 0x080272D4
push {r4, r5, r6, lr}
adds r6, r0, #0
ldr r0, [r6, #0x50]
ldrb r0, [r0, #0xd]
cmp r0, #0xc
bls _080272E2
b _08027532
_080272E2:
lsls r0, r0, #2
ldr r1, _080272EC @ =_080272F0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080272EC: .4byte _080272F0
_080272F0: @ jump table
.4byte _08027508 @ case 0
.4byte _08027324 @ case 1
.4byte _08027324 @ case 2
.4byte _08027332 @ case 3
.4byte _0802733E @ case 4
.4byte _08027332 @ case 5
.4byte _08027368 @ case 6
.4byte _08027532 @ case 7
.4byte _08027346 @ case 8
.4byte _08027454 @ case 9
.4byte _0802748C @ case 10
.4byte _08027532 @ case 11
.4byte _08027324 @ case 12
_08027324:
adds r1, r6, #0
adds r1, #0x7a
movs r0, #0xa0
strh r0, [r1]
subs r1, #4
strh r0, [r1]
b _0802733E
_08027332:
adds r0, r6, #0
adds r0, #0x83
ldrb r0, [r0]
cmp r0, #0
bne _0802733E
b _08027532
_0802733E:
adds r0, r6, #0
bl sub_0802757C
b _08027532
_08027346:
ldrb r0, [r6, #0xf]
cmp r0, #2
bls _0802734E
b _08027532
_0802734E:
adds r0, r6, #0
bl sub_0802757C
adds r0, r6, #0
adds r0, #0x83
ldrb r0, [r0]
cmp r0, #0
beq _08027360
b _08027532
_08027360:
ldrb r0, [r6, #0xf]
adds r0, #1
strb r0, [r6, #0xf]
b _08027532
_08027368:
ldr r5, [r6, #0x48]
adds r0, r6, #0
adds r0, #0x7a
ldrh r1, [r0]
movs r4, #0x80
lsls r4, r4, #9
adds r0, r4, #0
bl __divsi3
lsls r1, r0, #3
adds r1, r1, r0
lsrs r1, r1, #7
strb r1, [r5, #6]
ldr r5, [r6, #0x48]
adds r0, r6, #0
adds r0, #0x76
ldrh r1, [r0]
adds r0, r4, #0
bl __divsi3
lsls r1, r0, #2
adds r1, r1, r0
lsrs r1, r1, #6
strb r1, [r5, #7]
adds r0, r6, #0
adds r0, #0x84
ldrb r0, [r0]
cmp r0, #0
bne _080273A4
b _08027532
_080273A4:
adds r0, r6, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08027444
adds r2, r6, #0
adds r2, #0x3d
ldrb r1, [r2]
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #0
beq _08027444
ldr r0, [r6, #0x54]
ldr r0, [r0, #0x68]
adds r0, #0x3d
strb r1, [r0]
ldr r0, [r6, #0x54]
ldr r0, [r0, #0x50]
ldrb r1, [r2]
adds r0, #0x3d
strb r1, [r0]
ldr r0, [r6, #0x54]
ldrb r1, [r2]
adds r0, #0x3d
strb r1, [r0]
ldr r0, [r6, #0x54]
bl sub_08027D20
adds r2, r0, #0
cmp r2, #0
beq _08027406
ldrh r0, [r6, #0x2e]
adds r0, #1
strh r0, [r2, #0x2e]
adds r0, r6, #0
adds r0, #0x63
ldrb r0, [r0]
adds r0, #0x20
adds r1, r2, #0
adds r1, #0x63
strb r0, [r1]
adds r0, r6, #0
adds r0, #0x62
ldrb r1, [r0]
adds r0, r2, #0
adds r0, #0x62
strb r1, [r0]
_08027406:
ldr r0, [r6, #0x54]
bl sub_08027C54
cmp r0, #0
beq _0802741C
ldr r0, [r6, #0x54]
adds r0, #0x84
ldr r0, [r0]
ldrb r0, [r0, #4]
cmp r0, #2
beq _08027428
_0802741C:
ldr r0, _08027424 @ =0x00000127
bl PlaySFX
b _08027444
.align 2, 0
_08027424: .4byte 0x00000127
_08027428:
bl sub_08078B48
ldr r0, _0802744C @ =gRoomControls
ldr r2, [r6, #0x54]
str r2, [r0, #0x30]
ldr r1, _08027450 @ =gUnk_02034490
movs r0, #1
strb r0, [r1]
movs r0, #9
strb r0, [r2, #0xd]
movs r0, #0x94
lsls r0, r0, #1
bl PlaySFX
_08027444:
adds r0, r6, #0
bl sub_08027A60
b _08027484
.align 2, 0
_0802744C: .4byte gRoomControls
_08027450: .4byte gUnk_02034490
_08027454:
ldr r5, [r6, #0x48]
adds r0, r6, #0
adds r0, #0x7a
ldrh r1, [r0]
movs r4, #0x80
lsls r4, r4, #9
adds r0, r4, #0
bl __divsi3
lsls r1, r0, #3
adds r1, r1, r0
lsrs r1, r1, #7
strb r1, [r5, #6]
ldr r5, [r6, #0x48]
adds r0, r6, #0
adds r0, #0x76
ldrh r1, [r0]
adds r0, r4, #0
bl __divsi3
lsls r1, r0, #2
adds r1, r1, r0
lsrs r1, r1, #6
strb r1, [r5, #7]
_08027484:
adds r0, r6, #0
bl sub_0800445C
b _08027532
_0802748C:
adds r2, r6, #0
adds r2, #0x7d
ldrb r0, [r2]
cmp r0, #0
bne _0802749E
adds r0, r6, #0
bl sub_0802757C
b _080274AE
_0802749E:
adds r1, r6, #0
adds r1, #0x84
ldrb r0, [r1]
cmp r0, #0
beq _080274AE
movs r0, #0
strb r0, [r2]
strb r0, [r1]
_080274AE:
adds r2, r6, #0
adds r2, #0x83
adds r0, r6, #0
adds r0, #0x81
ldrb r1, [r0]
lsrs r0, r1, #1
ldrb r2, [r2]
adds r0, r2, r0
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, r1
bls _080274F4
lsls r0, r2, #0x18
cmp r0, #0
ble _080274E0
adds r0, r6, #0
adds r0, #0x58
ldrb r0, [r0]
cmp r0, #0xc
beq _08027532
adds r0, r6, #0
movs r1, #0xc
bl sub_080042AC
b _08027532
_080274E0:
adds r0, r6, #0
adds r0, #0x58
ldrb r0, [r0]
cmp r0, #0xb
beq _08027532
adds r0, r6, #0
movs r1, #0xb
bl sub_080042AC
b _08027532
_080274F4:
adds r0, r6, #0
adds r0, #0x58
ldrb r0, [r0]
cmp r0, #0xa
beq _08027532
adds r0, r6, #0
movs r1, #0xa
bl sub_080042AC
b _08027532
_08027508:
ldr r0, [r6, #0x54]
adds r0, #0x84
ldr r0, [r0]
ldrb r0, [r0, #3]
cmp r0, #8
bne _08027532
adds r0, r6, #0
bl sub_0802757C
adds r0, r6, #0
adds r0, #0x7d
ldrb r0, [r0]
cmp r0, #1
bne _08027532
adds r1, r6, #0
adds r1, #0x81
ldrb r0, [r1]
cmp r0, #0
beq _08027532
subs r0, #4
strb r0, [r1]
_08027532:
ldr r0, [r6, #0x50]
ldr r0, [r0, #0x34]
str r0, [r6, #0x34]
adds r1, r6, #0
adds r1, #0x41
movs r0, #0
strb r0, [r1]
adds r0, r6, #0
bl sub_080042B8
pop {r4, r5, r6, pc}
thumb_func_start sub_08027548
sub_08027548: @ 0x08027548
push {r4, r5, r6, lr}
sub sp, #4
adds r4, r0, #0
adds r6, r1, #0
movs r5, #0
movs r0, #1
strb r0, [r4, #0xd]
movs r0, #0xff
str r0, [sp]
adds r0, r4, #0
movs r1, #0x90
movs r2, #0xb0
movs r3, #8
bl sub_08027B98
adds r0, r4, #0
adds r0, #0x7d
strb r5, [r0]
adds r0, r4, #0
movs r1, #0
adds r2, r6, #0
bl sub_080276F4
add sp, #4
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0802757C
sub_0802757C: @ 0x0802757C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
adds r5, r0, #0
adds r6, r5, #0
adds r6, #0x7d
ldrb r1, [r6]
cmp r1, #0
beq _080275BA
ldrb r0, [r5, #0xa]
cmp r0, #1
beq _080275AE
ldr r0, [r5, #0x54]
adds r0, #0x7d
ldrb r0, [r0]
movs r1, #0x83
adds r1, r1, r5
mov sl, r1
cmp r0, #0
beq _08027676
movs r0, #0
strb r0, [r6]
b _08027676
_080275AE:
subs r0, r1, #1
strb r0, [r6]
movs r2, #0x83
adds r2, r2, r5
mov sl, r2
b _08027676
_080275BA:
movs r0, #0x85
adds r0, r0, r5
mov ip, r0
ldrb r1, [r0]
mov sb, r1
cmp r1, #1
bne _0802761E
adds r1, r5, #0
adds r1, #0x82
adds r0, r5, #0
adds r0, #0x86
ldrh r0, [r0]
ldrh r2, [r1]
adds r0, r0, r2
strh r0, [r1]
adds r0, r5, #0
adds r0, #0x83
adds r2, r5, #0
adds r2, #0x81
movs r4, #0
ldrsb r4, [r0, r4]
movs r3, #0
ldrsb r3, [r2, r3]
mov r8, r1
mov sl, r0
adds r7, r2, #0
cmp r4, r3
blt _08027676
movs r0, #0
mov r1, ip
strb r0, [r1]
ldrb r0, [r5, #0xa]
cmp r0, #1
bne _08027616
ldr r1, [r5, #0x50]
adds r0, r1, #0
adds r0, #0x81
ldrb r0, [r0]
lsls r0, r0, #8
adds r1, #0x86
ldrh r1, [r1]
bl __divsi3
adds r0, #1
strb r0, [r6]
b _0802761A
_08027616:
mov r2, sb
strb r2, [r6]
_0802761A:
ldrb r0, [r7]
b _08027670
_0802761E:
adds r2, r5, #0
adds r2, #0x82
adds r1, r5, #0
adds r1, #0x86
ldrh r0, [r2]
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r2]
adds r1, r5, #0
adds r1, #0x83
movs r4, #0
ldrsb r4, [r1, r4]
adds r0, r5, #0
adds r0, #0x81
ldrb r3, [r0]
mov r8, r2
mov sl, r1
adds r7, r0, #0
cmn r4, r3
bgt _08027676
movs r1, #1
mov r2, ip
strb r1, [r2]
ldrb r0, [r5, #0xa]
cmp r0, #1
bne _0802766A
ldr r1, [r5, #0x50]
adds r0, r1, #0
adds r0, #0x81
ldrb r0, [r0]
lsls r0, r0, #8
adds r1, #0x86
ldrh r1, [r1]
bl __divsi3
adds r0, #1
strb r0, [r6]
b _0802766C
_0802766A:
strb r1, [r6]
_0802766C:
ldrb r0, [r7]
rsbs r0, r0, #0
_08027670:
lsls r0, r0, #8
mov r1, r8
strh r0, [r1]
_08027676:
ldr r2, [r5, #0x50]
adds r0, r2, #0
adds r0, #0x63
movs r1, #0
ldrsb r1, [r0, r1]
lsls r1, r1, #0x10
ldr r0, [r2, #0x30]
adds r0, r0, r1
str r0, [r5, #0x30]
adds r0, r2, #0
adds r0, #0x62
movs r1, #0
ldrsb r1, [r0, r1]
lsls r1, r1, #0x10
ldr r0, [r2, #0x2c]
adds r0, r0, r1
str r0, [r5, #0x2c]
ldrb r1, [r5, #0xe]
lsls r1, r1, #8
mov r0, sl
ldrb r2, [r0]
adds r0, r5, #0
bl sub_0806F62C
ldrb r0, [r5, #0xa]
cmp r0, #1
beq _080276D2
ldr r1, [r5, #0x54]
ldr r0, [r5, #0x30]
str r0, [r1, #0x30]
ldr r1, [r5, #0x54]
ldr r0, [r5, #0x2c]
str r0, [r1, #0x2c]
ldr r0, [r5, #0x54]
ldrb r1, [r0, #0xe]
lsls r1, r1, #8
adds r2, r0, #0
adds r2, #0x83
ldrb r2, [r2]
bl sub_0806F62C
ldr r0, [r5, #0x68]
ldr r1, [r5, #0x54]
ldrb r2, [r1, #0xa]
bl sub_080279AC
_080276D2:
ldr r0, [r5, #0x68]
ldrb r2, [r5, #0xa]
adds r1, r5, #0
bl sub_080279AC
mov r1, sl
ldrb r0, [r1]
rsbs r0, r0, #0
adds r1, r5, #0
adds r1, #0x7f
strb r0, [r1]
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_080276F4
sub_080276F4: @ 0x080276F4
push {r4, r5, r6, r7, lr}
adds r6, r2, #0
ldr r5, [r0, #0x54]
ldr r4, [r0, #0x68]
ldr r0, [r0, #0x50]
mov ip, r0
adds r0, #0x84
movs r2, #0
strb r2, [r0]
adds r0, r4, #0
adds r0, #0x84
strb r2, [r0]
adds r0, r5, #0
adds r0, #0x84
strb r2, [r0]
mov r0, ip
adds r0, #0x7e
movs r7, #0
strh r2, [r0]
adds r0, r4, #0
adds r0, #0x7e
strh r2, [r0]
adds r0, r5, #0
adds r0, #0x7e
strh r2, [r0]
mov r0, ip
adds r0, #0x7d
strb r7, [r0]
adds r0, r4, #0
adds r0, #0x7d
strb r7, [r0]
ldr r0, _080277AC @ =gUnk_080CC27C
lsls r1, r1, #2
adds r0, r1, r0
ldrh r2, [r0]
adds r3, r5, #0
adds r3, #0x86
strh r2, [r3]
ldrb r0, [r0, #2]
adds r2, r5, #0
adds r2, #0x81
strb r0, [r2]
ldr r0, _080277B0 @ =gUnk_080CC2BC
adds r0, r1, r0
ldrh r2, [r0]
adds r3, r4, #0
adds r3, #0x86
strh r2, [r3]
ldrb r0, [r0, #2]
adds r2, r4, #0
adds r2, #0x81
strb r0, [r2]
ldr r0, _080277B4 @ =gUnk_080CC29C
adds r1, r1, r0
ldrh r0, [r1]
mov r2, ip
adds r2, #0x86
strh r0, [r2]
ldrb r0, [r1, #2]
mov r1, ip
adds r1, #0x81
strb r0, [r1]
cmp r6, #0
bne _080277AA
mov r0, ip
adds r0, #0x85
strb r7, [r0]
adds r0, r4, #0
adds r0, #0x85
strb r7, [r0]
adds r0, r5, #0
adds r0, #0x85
strb r7, [r0]
mov r0, ip
adds r0, #0x82
strh r6, [r0]
adds r0, r4, #0
adds r0, #0x82
strh r6, [r0]
adds r0, r5, #0
adds r0, #0x82
strh r6, [r0]
ldrb r0, [r1]
lsls r0, r0, #7
ldrh r1, [r2]
bl __divsi3
adds r0, #1
adds r1, r5, #0
adds r1, #0x7d
strb r0, [r1]
_080277AA:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080277AC: .4byte gUnk_080CC27C
_080277B0: .4byte gUnk_080CC2BC
_080277B4: .4byte gUnk_080CC29C
thumb_func_start sub_080277B8
sub_080277B8: @ 0x080277B8
push {r4, r5, lr}
adds r5, r0, #0
adds r4, r1, #0
ldr r1, [r5, #0x54]
adds r3, r1, #0
adds r3, #0x7a
ldrh r0, [r3]
cmp r4, r0
bls _080277DC
adds r0, r0, r2
strh r0, [r3]
ldr r0, [r1, #0x74]
ldr r2, _080277D8 @ =0xFFFE8000
adds r0, r0, r2
str r0, [r1, #0x74]
b _080277F0
.align 2, 0
_080277D8: .4byte 0xFFFE8000
_080277DC:
strh r4, [r3]
adds r1, #0x7c
movs r0, #8
strb r0, [r1]
adds r0, r5, #0
adds r0, #0x84
ldr r1, [r0]
ldrb r0, [r1, #3]
adds r0, #1
strb r0, [r1, #3]
_080277F0:
adds r0, r5, #0
bl sub_080277F8
pop {r4, r5, pc}
thumb_func_start sub_080277F8
sub_080277F8: @ 0x080277F8
push {r4, r5, r6, r7, lr}
adds r6, r0, #0
ldr r3, [r6, #0x54]
ldr r5, [r6, #0x68]
ldr r4, [r6, #0x50]
ldrh r2, [r6, #0x2e]
strh r2, [r5, #0x2e]
movs r7, #0xe
strb r7, [r5, #0xe]
ldrh r0, [r6, #0x32]
subs r0, #0xe
strh r0, [r5, #0x32]
strh r2, [r4, #0x2e]
movs r0, #0x7a
adds r0, r0, r3
mov ip, r0
ldrh r1, [r0]
subs r1, #0xa0
asrs r1, r1, #4
movs r0, #0x12
subs r0, r0, r1
strb r0, [r4, #0xe]
ldrb r1, [r4, #0xe]
ldrh r0, [r5, #0x32]
subs r0, r0, r1
strh r0, [r4, #0x32]
strh r2, [r3, #0x2e]
mov r1, ip
ldrh r0, [r1]
cmp r0, #0xa0
bls _0802784E
subs r0, #0xa0
asrs r0, r0, #2
movs r1, #0xe
subs r1, r1, r0
strb r1, [r3, #0xe]
movs r0, #0x80
ands r1, r0
cmp r1, #0
beq _08027850
movs r0, #0
strb r0, [r3, #0xe]
b _08027850
_0802784E:
strb r7, [r3, #0xe]
_08027850:
ldrb r1, [r3, #0xe]
ldrh r0, [r4, #0x32]
subs r0, r0, r1
strh r0, [r3, #0x32]
ldr r0, [r3, #0x74]
str r0, [r4, #0x74]
ldr r0, [r3, #0x78]
str r0, [r4, #0x78]
ldr r0, [r3, #0x74]
str r0, [r5, #0x74]
ldr r0, [r3, #0x78]
str r0, [r5, #0x78]
adds r0, r6, #0
bl sub_08027984
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_08027870
sub_08027870: @ 0x08027870
push {r4, r5, r6, r7, lr}
adds r7, r0, #0
ldr r4, [r7, #0x54]
ldr r5, [r7, #0x68]
ldr r6, [r7, #0x50]
ldr r0, [r4, #0x74]
str r0, [r6, #0x74]
ldr r0, [r4, #0x78]
str r0, [r6, #0x78]
ldr r0, [r4, #0x74]
str r0, [r5, #0x74]
ldr r0, [r4, #0x78]
str r0, [r5, #0x78]
adds r0, r4, #0
adds r0, #0x83
ldrb r0, [r0]
rsbs r0, r0, #0
adds r1, r4, #0
adds r1, #0x7f
strb r0, [r1]
adds r0, r5, #0
adds r0, #0x83
ldrb r0, [r0]
rsbs r0, r0, #0
adds r1, r5, #0
adds r1, #0x7f
strb r0, [r1]
adds r0, r6, #0
adds r0, #0x83
ldrb r0, [r0]
rsbs r0, r0, #0
adds r1, r6, #0
adds r1, #0x7f
strb r0, [r1]
adds r1, r5, #0
adds r1, #0x7a
ldrh r0, [r1]
cmp r0, #0xa0
bls _080278C2
movs r0, #0xe
b _080278CC
_080278C2:
ldrh r1, [r1]
movs r0, #0xa0
subs r0, r0, r1
asrs r0, r0, #3
adds r0, #0xe
_080278CC:
strb r0, [r5, #0xe]
adds r1, r6, #0
adds r1, #0x7a
ldrh r0, [r1]
cmp r0, #0xa0
bls _080278EA
adds r2, r4, #0
adds r2, #0x7a
ldrh r1, [r2]
subs r1, #0xa0
asrs r1, r1, #4
movs r0, #0x12
subs r0, r0, r1
strb r0, [r6, #0xe]
b _080278FA
_080278EA:
ldrh r1, [r1]
movs r0, #0xa0
subs r0, r0, r1
asrs r0, r0, #2
adds r0, #0x12
strb r0, [r6, #0xe]
adds r2, r4, #0
adds r2, #0x7a
_080278FA:
adds r0, r2, #0
ldrh r1, [r0]
cmp r1, #0xa0
bls _0802791A
adds r0, r1, #0
subs r0, #0xa0
asrs r0, r0, #2
movs r1, #0xe
subs r1, r1, r0
strb r1, [r4, #0xe]
movs r0, #0x80
ands r1, r0
cmp r1, #0
beq _08027934
movs r0, #0
b _08027932
_0802791A:
cmp r1, #0x7f
bhi _08027928
ldrh r1, [r0]
movs r0, #0xa0
subs r0, r0, r1
asrs r0, r0, #2
b _08027930
_08027928:
ldrh r1, [r2]
movs r0, #0xa0
subs r0, r0, r1
asrs r0, r0, #1
_08027930:
adds r0, #0xe
_08027932:
strb r0, [r4, #0xe]
_08027934:
ldr r0, [r7, #0x2c]
str r0, [r5, #0x2c]
ldr r0, [r7, #0x30]
str r0, [r5, #0x30]
ldrb r1, [r5, #0xe]
lsls r1, r1, #8
adds r0, r5, #0
adds r0, #0x83
ldrb r2, [r0]
adds r0, r5, #0
bl sub_0806F62C
ldr r0, [r5, #0x2c]
str r0, [r6, #0x2c]
ldr r0, [r5, #0x30]
str r0, [r6, #0x30]
ldrb r1, [r6, #0xe]
lsls r1, r1, #8
adds r0, r6, #0
adds r0, #0x83
ldrb r2, [r0]
adds r0, r6, #0
bl sub_0806F62C
ldr r0, [r6, #0x2c]
str r0, [r4, #0x2c]
ldr r0, [r6, #0x30]
str r0, [r4, #0x30]
ldrb r1, [r4, #0xe]
lsls r1, r1, #8
adds r0, r4, #0
adds r0, #0x83
ldrb r2, [r0]
adds r0, r4, #0
bl sub_0806F62C
adds r0, r7, #0
bl sub_08027984
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_08027984
sub_08027984: @ 0x08027984
push {r4, r5, r6, lr}
adds r4, r0, #0
ldr r1, [r4, #0x54]
ldr r5, [r4, #0x68]
ldr r6, [r4, #0x50]
ldrb r2, [r1, #0xa]
bl sub_080279AC
ldrb r2, [r5, #0xa]
adds r0, r4, #0
adds r1, r5, #0
bl sub_080279AC
ldrb r2, [r6, #0xa]
adds r0, r4, #0
adds r1, r6, #0
bl sub_080279AC
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_080279AC
sub_080279AC: @ 0x080279AC
push {r4, r5, r6, lr}
mov ip, r1
movs r3, #4
subs r3, r3, r2
ldrh r1, [r1, #0x2e]
ldrh r4, [r0, #0x2e]
subs r1, r1, r4
mov r6, ip
adds r6, #0x62
strb r1, [r6]
mov r2, ip
ldrh r1, [r2, #0x32]
ldrh r2, [r0, #0x32]
adds r0, r2, r3
subs r1, r1, r0
mov r5, ip
adds r5, #0x63
strb r1, [r5]
mov r0, ip
strh r4, [r0, #0x2e]
adds r2, r2, r3
strh r2, [r0, #0x32]
ldr r1, [r0, #0x48]
ldrb r0, [r6]
strb r0, [r1]
mov r2, ip
ldr r1, [r2, #0x48]
ldrb r0, [r5]
strb r0, [r1, #1]
pop {r4, r5, r6, pc}
thumb_func_start sub_080279E8
sub_080279E8: @ 0x080279E8
push {r4, lr}
sub sp, #4
adds r2, r0, #0
ldr r4, [r2, #0x54]
adds r0, #0x81
ldrb r0, [r0]
cmp r0, #0x80
bne _08027A20
adds r0, r2, #0
adds r0, #0x76
ldrh r1, [r0]
adds r0, #0xe
ldr r0, [r0]
ldrb r0, [r0, #5]
subs r1, r1, r0
cmp r1, #0x80
bne _08027A58
adds r0, r2, #0
adds r0, #0x82
ldrb r1, [r0]
movs r0, #1
str r0, [sp]
adds r0, r2, #0
movs r2, #0xa0
movs r3, #0x20
bl sub_08027B98
b _08027A58
_08027A20:
adds r0, r4, #0
adds r0, #0x76
ldrh r1, [r0]
adds r3, r0, #0
cmp r1, #0xa0
bls _08027A30
subs r0, r1, #4
b _08027A32
_08027A30:
movs r0, #0xa0
_08027A32:
strh r0, [r3]
adds r0, r4, #0
adds r0, #0x7a
ldrh r2, [r0]
adds r1, r0, #0
cmp r2, #0xa0
bls _08027A44
subs r0, r2, #4
b _08027A46
_08027A44:
movs r0, #0xa0
_08027A46:
strh r0, [r1]
ldrh r0, [r3]
cmp r0, #0xa0
bne _08027A58
ldrh r0, [r1]
cmp r0, #0xa0
bne _08027A58
movs r0, #1
b _08027A5A
_08027A58:
movs r0, #0
_08027A5A:
add sp, #4
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08027A60
sub_08027A60: @ 0x08027A60
push {lr}
adds r2, r0, #0
adds r0, #0x7c
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08027A78
ldr r0, [r2, #0x74]
movs r1, #0x80
lsls r1, r1, #7
b _08027A7C
_08027A78:
ldr r0, [r2, #0x74]
ldr r1, _08027AA0 @ =0xFFFFC000
_08027A7C:
adds r0, r0, r1
str r0, [r2, #0x74]
adds r3, r2, #0
adds r3, #0x7c
ldrb r0, [r3]
adds r2, r0, #1
strb r2, [r3]
movs r0, #0x7f
ands r0, r2
cmp r0, #0x28
bne _08027A9C
movs r1, #0x80
movs r0, #0x80
ands r2, r0
eors r2, r1
strb r2, [r3]
_08027A9C:
pop {pc}
.align 2, 0
_08027AA0: .4byte 0xFFFFC000
thumb_func_start sub_08027AA4
sub_08027AA4: @ 0x08027AA4
push {r4, r5, lr}
adds r5, r0, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08027B94
movs r0, #0x7f
ands r0, r1
cmp r0, #0x13
beq _08027AC2
cmp r0, #0x1b
beq _08027B44
b _08027B94
_08027AC2:
movs r0, #0x84
bl PlaySFX
ldrb r3, [r5, #0xb]
adds r0, r5, #0
movs r1, #0x49
movs r2, #9
bl CreateObjectWithParent
ldr r0, _08027B3C @ =0x00000155
bl PlaySFX
adds r0, r5, #0
adds r0, #0x84
ldr r4, [r0]
adds r1, r5, #0
adds r1, #0x3d
movs r0, #3
strb r0, [r1]
ldrb r0, [r4, #6]
adds r0, #1
strb r0, [r4, #6]
ldrb r0, [r4, #6]
movs r1, #3
bl __divsi3
adds r1, r0, #0
lsls r0, r1, #0x18
lsrs r0, r0, #0x15
ldrb r2, [r4, #5]
cmp r0, r2
beq _08027B06
lsls r0, r1, #3
strb r0, [r4, #5]
_08027B06:
movs r0, #0xb4
str r0, [r4, #8]
movs r0, #5
ldrsb r0, [r4, r0]
cmp r0, #0
bge _08027B94
movs r0, #0x40
strb r0, [r4, #1]
adds r1, r5, #0
adds r1, #0x3f
movs r0, #0
strb r0, [r1]
ldrb r0, [r5, #0xd]
cmp r0, #2
bne _08027B2A
adds r0, r5, #0
bl sub_08027BBC
_08027B2A:
adds r0, r5, #0
bl sub_08027D20
ldr r0, _08027B40 @ =0x00000127
bl PlaySFX
_08027B36:
movs r0, #1
b _08027B96
.align 2, 0
_08027B3C: .4byte 0x00000155
_08027B40: .4byte 0x00000127
_08027B44:
adds r1, r5, #0
adds r1, #0x3d
movs r0, #0xe2
strb r0, [r1]
ldr r0, [r5, #0x4c]
ldrb r0, [r0, #0xa]
adds r0, #1
cmp r0, #2
beq _08027B74
cmp r0, #2
bgt _08027B60
cmp r0, #1
beq _08027B84
b _08027B36
_08027B60:
cmp r0, #3
bne _08027B36
adds r1, r5, #0
adds r1, #0x42
movs r0, #0x1a
strb r0, [r1]
adds r1, #4
movs r0, #0xe0
lsls r0, r0, #1
b _08027B90
_08027B74:
adds r1, r5, #0
adds r1, #0x42
movs r0, #0x14
strb r0, [r1]
adds r1, #4
movs r0, #0xc0
lsls r0, r0, #1
b _08027B90
_08027B84:
adds r1, r5, #0
adds r1, #0x42
movs r0, #0x10
strb r0, [r1]
adds r1, #4
adds r0, #0xf0
_08027B90:
strh r0, [r1]
b _08027B36
_08027B94:
movs r0, #0
_08027B96:
pop {r4, r5, pc}
thumb_func_start sub_08027B98
sub_08027B98: @ 0x08027B98
push {r4, lr}
mov ip, r0
ldr r4, [sp, #8]
adds r0, #0x82
strb r1, [r0]
subs r0, #1
strb r2, [r0]
subs r0, #1
strb r3, [r0]
cmp r4, #0xff
beq _08027BB4
mov r0, ip
strb r4, [r0, #0xe]
b _08027BBA
_08027BB4:
movs r0, #1
mov r1, ip
strb r0, [r1, #0xe]
_08027BBA:
pop {r4, pc}
thumb_func_start sub_08027BBC
sub_08027BBC: @ 0x08027BBC
push {r4, r5, r6, lr}
adds r6, r0, #0
movs r4, #0
movs r0, #0xa
strb r0, [r6, #0xd]
adds r5, r6, #0
adds r5, #0x84
ldr r0, [r5]
strb r4, [r0, #1]
adds r0, r6, #0
movs r1, #7
movs r2, #1
bl sub_080276F4
ldr r0, [r6, #0x54]
adds r0, #0x7d
strb r4, [r0]
movs r3, #0
strh r4, [r6, #0x24]
ldr r0, [r5]
strb r3, [r0, #3]
movs r0, #0x2e
ldrsh r1, [r6, r0]
ldr r0, [r5]
ldrh r0, [r0, #0xe]
cmp r1, r0
ble _08027C0A
movs r0, #0x18
strb r0, [r6, #0x15]
ldr r2, [r6, #0x54]
ldr r1, [r6, #0x50]
ldr r0, [r6, #0x68]
adds r0, #0x85
strb r3, [r0]
adds r1, #0x85
strb r3, [r1]
adds r2, #0x85
strb r3, [r2]
b _08027C22
_08027C0A:
movs r0, #8
strb r0, [r6, #0x15]
ldr r3, [r6, #0x54]
ldr r2, [r6, #0x50]
ldr r0, [r6, #0x68]
adds r0, #0x85
movs r1, #1
strb r1, [r0]
adds r2, #0x85
strb r1, [r2]
adds r3, #0x85
strb r1, [r3]
_08027C22:
ldrb r0, [r6, #0x15]
lsrs r0, r0, #2
strb r0, [r6, #0x14]
ldr r0, _08027C44 @ =gLinkEntity
movs r2, #0x32
ldrsh r1, [r6, r2]
movs r2, #0x32
ldrsh r0, [r0, r2]
cmp r1, r0
beq _08027C52
cmp r1, r0
ble _08027C48
adds r0, r6, #0
adds r0, #0x84
ldr r1, [r0]
movs r0, #0
b _08027C50
.align 2, 0
_08027C44: .4byte gLinkEntity
_08027C48:
adds r0, r6, #0
adds r0, #0x84
ldr r1, [r0]
movs r0, #0x10
_08027C50:
strb r0, [r1, #0xc]
_08027C52:
pop {r4, r5, r6, pc}
thumb_func_start sub_08027C54
sub_08027C54: @ 0x08027C54
push {lr}
ldr r2, _08027C74 @ =gUnk_080CC2DC
adds r1, r0, #0
adds r1, #0x84
ldr r1, [r1]
ldrb r1, [r1, #4]
adds r1, r1, r2
ldr r0, [r0, #0x54]
adds r0, #0x45
ldrb r1, [r1]
ldrb r0, [r0]
cmp r1, r0
bhi _08027C78
movs r0, #0
b _08027C7A
.align 2, 0
_08027C74: .4byte gUnk_080CC2DC
_08027C78:
movs r0, #1
_08027C7A:
pop {pc}
thumb_func_start sub_08027C7C
sub_08027C7C: @ 0x08027C7C
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
ldr r0, [r4, #0x54]
bl sub_08027C9C
ldr r0, [r4, #0x68]
adds r1, r5, #0
bl sub_08027C9C
ldr r0, [r4, #0x50]
adds r1, r5, #0
bl sub_08027C9C
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08027C9C
sub_08027C9C: @ 0x08027C9C
push {r4, r5, lr}
adds r5, r0, #0
adds r4, r1, #0
bl Random
ands r0, r4
cmp r0, #0
bne _08027D1E
adds r0, r5, #0
movs r1, #0x48
movs r2, #0
bl CreateFX
adds r4, r0, #0
cmp r4, #0
beq _08027D1E
adds r0, r5, #0
adds r0, #0x62
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldr r1, [r5, #0x48]
ldrb r1, [r1, #6]
subs r0, r0, r1
ldrh r1, [r4, #0x2e]
adds r0, r0, r1
strh r0, [r4, #0x2e]
bl Random
ldr r1, [r5, #0x48]
ldrb r1, [r1, #6]
lsls r1, r1, #1
bl __modsi3
ldrh r1, [r4, #0x2e]
adds r1, r1, r0
strh r1, [r4, #0x2e]
adds r0, r5, #0
adds r0, #0x63
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldr r1, [r5, #0x48]
ldrb r1, [r1, #7]
subs r0, r0, r1
ldrh r1, [r4, #0x32]
adds r0, r0, r1
strh r0, [r4, #0x32]
bl Random
ldr r1, [r5, #0x48]
ldrb r1, [r1, #7]
lsls r1, r1, #1
bl __modsi3
ldrh r1, [r4, #0x32]
adds r1, r1, r0
strh r1, [r4, #0x32]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
_08027D1E:
pop {r4, r5, pc}
thumb_func_start sub_08027D20
sub_08027D20: @ 0x08027D20
push {r4, r5, lr}
adds r5, r0, #0
movs r1, #0x15
movs r2, #0
movs r3, #0
bl CreateObjectWithParent
adds r4, r0, #0
cmp r4, #0
beq _08027D66
movs r0, #0xc9
strh r0, [r4, #0x12]
ldrh r0, [r4, #0x32]
adds r0, #1
strh r0, [r4, #0x32]
adds r1, r4, #0
adds r1, #0x63
movs r0, #8
strb r0, [r1]
adds r0, r4, #0
movs r1, #0x3e
bl sub_080ADF80
ldrb r0, [r5, #0xb]
cmp r0, #0
bne _08027D5E
adds r0, r4, #0
movs r1, #0x2b
bl sub_0801D040
b _08027D66
_08027D5E:
adds r0, r4, #0
movs r1, #0x2c
bl sub_0801D040
_08027D66:
adds r0, r4, #0
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08027D6C
sub_08027D6C: @ 0x08027D6C
push {r4, lr}
adds r4, r0, #0
ldr r1, _08027D88 @ =gUnk_080CC6FC
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
_08027D88: .4byte gUnk_080CC6FC
thumb_func_start sub_08027D8C
sub_08027D8C: @ 0x08027D8C
push {lr}
ldr r2, _08027DA0 @ =gUnk_080CC714
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08027DA0: .4byte gUnk_080CC714
thumb_func_start sub_08027DA4
sub_08027DA4: @ 0x08027DA4
push {r4, lr}
adds r4, r0, #0
adds r2, r4, #0
adds r2, #0x3f
ldrb r0, [r2]
cmp r0, #1
bne _08027DC4
movs r0, #3
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
movs r0, #0x8c
strb r0, [r2]
b _08027E0E
_08027DC4:
ldrb r0, [r4, #0xc]
cmp r0, #7
bne _08027DD2
adds r0, r4, #0
bl sub_0802810C
b _08027E0E
_08027DD2:
adds r0, r4, #0
adds r0, #0x41
ldrb r2, [r0]
movs r0, #0x80
ands r0, r2
cmp r0, #0
beq _08027E0E
movs r1, #0x7f
ands r1, r2
cmp r1, #0
bne _08027E0E
movs r0, #7
strb r0, [r4, #0xc]
movs r0, #0x5f
strb r0, [r4, #0xe]
strb r1, [r4, #0xf]
adds r2, r4, #0
adds r2, #0x3b
ldrb r1, [r2]
movs r0, #0xfc
ands r0, r1
strb r0, [r2]
ldr r0, _08027E38 @ =gLinkEntity
adds r0, #0x29
ldrb r0, [r0]
lsls r0, r0, #0x1a
lsrs r0, r0, #0x1d
adds r1, r4, #0
adds r1, #0x83
strb r0, [r1]
_08027E0E:
adds r0, r4, #0
adds r0, #0x45
ldrb r0, [r0]
cmp r0, #0
bne _08027E1C
movs r0, #0x20
strb r0, [r4, #0xe]
_08027E1C:
adds r0, r4, #0
adds r0, #0x43
ldrb r0, [r0]
cmp r0, #0
beq _08027E2E
adds r0, r4, #0
movs r1, #0x1c
bl sub_0804A9FC
_08027E2E:
ldr r1, _08027E3C @ =gUnk_080CC6FC
adds r0, r4, #0
bl sub_0804AA30
pop {r4, pc}
.align 2, 0
_08027E38: .4byte gLinkEntity
_08027E3C: .4byte gUnk_080CC6FC
thumb_func_start sub_08027E40
sub_08027E40: @ 0x08027E40
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
cmp r0, #2
bne _08027E62
adds r5, r4, #0
adds r5, #0x80
ldrb r0, [r5]
cmp r0, #0xff
beq _08027E62
adds r0, r4, #0
movs r1, #3
bl sub_0805E3A0
ldrb r0, [r5]
bl sub_08028224
_08027E62:
adds r0, r4, #0
bl sub_0804A7D4
pop {r4, r5, pc}
.align 2, 0
thumb_func_start nullsub_139
nullsub_139: @ 0x08027E6C
bx lr
.align 2, 0
thumb_func_start sub_08027E70
sub_08027E70: @ 0x08027E70
push {r4, lr}
adds r4, r0, #0
bl sub_0804A720
ldrb r3, [r4, #0xa]
cmp r3, #1
beq _08027EA6
cmp r3, #1
bgt _08027E88
cmp r3, #0
beq _08027E8E
b _08027EE4
_08027E88:
cmp r3, #2
beq _08027EC4
b _08027EE4
_08027E8E:
movs r0, #3
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #7
ands r0, r1
strb r0, [r4, #0x18]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
strb r3, [r4, #0xe]
b _08027EE4
_08027EA6:
movs r2, #1
strb r3, [r4, #0xc]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
movs r0, #8
strb r0, [r4, #0xe]
adds r0, r4, #0
movs r1, #1
bl sub_08004260
b _08027EE4
_08027EC4:
movs r3, #0
movs r2, #1
strb r2, [r4, #0xc]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
strb r3, [r4, #0xe]
adds r0, r4, #0
adds r0, #0x3f
strb r2, [r0]
adds r0, r4, #0
movs r1, #0
bl sub_08004260
_08027EE4:
movs r0, #0
strb r0, [r4, #0x15]
adds r1, r4, #0
adds r1, #0x82
strb r0, [r1]
strb r0, [r4, #0x14]
adds r1, #1
strb r0, [r1]
subs r1, #3
movs r0, #0xff
strb r0, [r1]
pop {r4, pc}
thumb_func_start sub_08027EFC
sub_08027EFC: @ 0x08027EFC
push {r4, lr}
adds r4, r0, #0
adds r0, #0x3f
ldrb r0, [r0]
cmp r0, #1
beq _08027F7C
adds r0, r4, #0
movs r1, #1
bl sub_08049FDC
cmp r0, #0
beq _08027F68
adds r0, r4, #0
bl sub_08049FA0
cmp r0, #0
bne _08027F32
bl Random
movs r1, #0x30
ands r1, r0
cmp r1, #0
beq _08027F32
adds r0, r4, #0
bl sub_08049EE4
b _08027F38
_08027F32:
adds r0, r4, #0
adds r0, #0x82
ldrb r0, [r0]
_08027F38:
strb r0, [r4, #0x15]
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08027F5A
adds r0, r4, #0
movs r1, #1
bl sub_08049F84
strb r0, [r4, #0x15]
adds r1, r4, #0
adds r1, #0x82
strb r0, [r1]
movs r0, #8
strb r0, [r4, #0xe]
_08027F5A:
adds r0, r4, #0
bl sub_080AEF88
adds r0, r4, #0
bl sub_08004274
b _08027F7C
_08027F68:
movs r0, #6
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
adds r0, r4, #0
movs r1, #2
bl sub_08004260
_08027F7C:
pop {r4, pc}
.align 2, 0
thumb_func_start nullsub_12
nullsub_12: @ 0x08027F80
bx lr
.align 2, 0
thumb_func_start sub_08027F84
sub_08027F84: @ 0x08027F84
push {r4, lr}
adds r4, r0, #0
movs r1, #1
bl sub_08049FDC
cmp r0, #0
beq _08027FB0
movs r0, #5
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #9
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
adds r0, r4, #0
movs r1, #0
bl sub_08004260
adds r0, r4, #0
bl sub_080A29BC
_08027FB0:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08027FB4
sub_08027FB4: @ 0x08027FB4
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xe]
subs r0, #1
strb r0, [r2, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08027FD6
movs r1, #1
movs r0, #1
strb r0, [r2, #0xc]
strb r0, [r2, #0xe]
adds r3, r2, #0
adds r3, #0x3b
ldrb r0, [r3]
orrs r0, r1
strb r0, [r3]
_08027FD6:
adds r0, r2, #0
bl sub_08004274
pop {pc}
.align 2, 0
thumb_func_start sub_08027FE0
sub_08027FE0: @ 0x08027FE0
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r2, #1
adds r0, r2, #0
ands r0, r1
cmp r0, #0
beq _08028028
strb r2, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
adds r0, r4, #0
movs r1, #1
bl sub_08049F84
strb r0, [r4, #0x15]
movs r2, #8
movs r0, #8
strb r0, [r4, #0xe]
adds r3, r4, #0
adds r3, #0x29
ldrb r1, [r3]
subs r0, #0x41
ands r0, r1
orrs r0, r2
strb r0, [r3]
adds r0, r4, #0
movs r1, #1
bl sub_08004260
_08028028:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0802802C
sub_0802802C: @ 0x0802802C
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 _0802805A
movs r2, #0
movs r0, #3
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #7
ands r0, r1
strb r0, [r4, #0x18]
strb r2, [r4, #0x15]
strb r2, [r4, #0xe]
adds r0, r4, #0
bl sub_080A29BC
_0802805A:
pop {r4, pc}
thumb_func_start sub_0802805C
sub_0802805C: @ 0x0802805C
push {r4, r5, lr}
adds r5, r0, #0
movs r1, #2
bl sub_08004276
bl sub_0807953C
cmp r0, #0
beq _0802807E
bl Random
ldrb r2, [r5, #0xf]
adds r2, #1
movs r1, #1
ands r1, r0
adds r2, r2, r1
strb r2, [r5, #0xf]
_0802807E:
ldrb r0, [r5, #0xf]
cmp r0, #0x18
bhi _0802808E
ldr r0, _08028098 @ =gUnk_02002A40
adds r0, #0xaa
ldrb r0, [r0]
cmp r0, #0
bne _0802809C
_0802808E:
adds r0, r5, #0
bl sub_0802810C
b _08028102
.align 2, 0
_08028098: .4byte gUnk_02002A40
_0802809C:
bl sub_08077B2C
ldr r2, _08028104 @ =gLinkState
ldrb r1, [r2, #0x1a]
movs r0, #0x80
orrs r0, r1
strb r0, [r2, #0x1a]
ldr r4, _08028108 @ =gLinkEntity
movs r3, #0x80
lsls r3, r3, #9
adds r0, r5, #0
adds r1, r4, #0
movs r2, #0
bl PositionRelative
ldrh r0, [r5, #0x12]
ldrb r1, [r5, #0x1e]
bl sub_080700C8
ldrb r1, [r0]
adds r2, r4, #0
adds r2, #0x62
strb r1, [r2]
ldrb r0, [r0, #1]
adds r1, r4, #0
adds r1, #0x63
strb r0, [r1]
adds r4, #0x29
ldrb r1, [r4]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4]
ldrb r0, [r5, #0xe]
subs r0, #1
strb r0, [r5, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080280F0
adds r0, r5, #0
bl sub_080281A0
_080280F0:
ldrb r1, [r5, #0xe]
movs r0, #3
ands r0, r1
cmp r0, #0
bne _08028102
movs r0, #0x82
lsls r0, r0, #1
bl sub_08004488
_08028102:
pop {r4, r5, pc}
.align 2, 0
_08028104: .4byte gLinkState
_08028108: .4byte gLinkEntity
thumb_func_start sub_0802810C
sub_0802810C: @ 0x0802810C
push {r4, r5, lr}
adds r4, r0, #0
ldr r2, _08028198 @ =gLinkState
movs r1, #0
movs r0, #0x41
strb r0, [r2, #2]
strb r1, [r2, #0xa]
ldr r0, [r2, #0x30]
subs r1, #0x11
ands r0, r1
str r0, [r2, #0x30]
ldr r0, _0802819C @ =gLinkEntity
mov ip, r0
ldrb r0, [r0, #0x10]
movs r1, #0x80
orrs r0, r1
mov r1, ip
strb r0, [r1, #0x10]
movs r0, #0xc0
lsls r0, r0, #9
str r0, [r1, #0x20]
adds r1, #0x3d
movs r0, #0xc4
strb r0, [r1]
movs r3, #0
mov r2, ip
ldrb r0, [r2, #0x14]
lsls r0, r0, #2
strb r0, [r2, #0x15]
adds r0, r4, #0
adds r0, #0x83
ldrb r0, [r0]
mov r5, ip
adds r5, #0x29
movs r1, #7
ands r1, r0
lsls r1, r1, #3
ldrb r2, [r5]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r5]
mov r1, ip
adds r1, #0x63
movs r0, #0
ldrsb r0, [r1, r0]
mov r2, ip
strh r0, [r2, #0x36]
strb r3, [r1]
movs r0, #4
strb r0, [r4, #0xc]
movs r0, #0x50
strb r0, [r4, #0xe]
strb r3, [r4, #0xf]
adds r2, r4, #0
adds r2, #0x3b
ldrb r1, [r2]
movs r0, #2
orrs r0, r1
strb r0, [r2]
adds r1, r4, #0
adds r1, #0x3d
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
bne _08028196
movs r0, #0xee
strb r0, [r1]
_08028196:
pop {r4, r5, pc}
.align 2, 0
_08028198: .4byte gLinkState
_0802819C: .4byte gLinkEntity
thumb_func_start sub_080281A0
sub_080281A0: @ 0x080281A0
push {r4, lr}
adds r4, r0, #0
movs r0, #0x19
strb r0, [r4, #0xf]
movs r0, #0xe
bl sub_080281E0
cmp r0, #0
beq _080281BA
adds r0, r4, #0
adds r0, #0x80
movs r1, #0xe
b _080281CA
_080281BA:
movs r0, #0xd
bl sub_080281E0
cmp r0, #0
beq _080281D6
adds r0, r4, #0
adds r0, #0x80
movs r1, #0xd
_080281CA:
strb r1, [r0]
movs r0, #0xaf
lsls r0, r0, #3
bl TextboxTryNoOverlap
b _080281DE
_080281D6:
movs r0, #1
rsbs r0, r0, #0
bl ModHealth
_080281DE:
pop {r4, pc}
thumb_func_start sub_080281E0
sub_080281E0: @ 0x080281E0
push {r4, r5, r6, r7, lr}
adds r7, r0, #0
movs r4, #0
bl GetInventoryValue
cmp r0, #1
bne _0802821A
ldr r6, _08028220 @ =gUnk_02002A40
adds r5, r6, #0
adds r5, #0xb4
ldrb r0, [r5]
bl sub_080544B4
cmp r0, #0
beq _08028200
strb r4, [r5]
_08028200:
adds r5, r6, #0
adds r5, #0xb5
ldrb r0, [r5]
bl sub_080544B4
cmp r0, #0
beq _08028210
strb r4, [r5]
_08028210:
adds r0, r7, #0
movs r1, #0
bl sub_0807CAA0
movs r4, #1
_0802821A:
adds r0, r4, #0
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08028220: .4byte gUnk_02002A40
thumb_func_start sub_08028224
sub_08028224: @ 0x08028224
push {lr}
movs r1, #0
movs r2, #1
bl sub_080A7C18
ldr r0, _08028238 @ =0x00000579
bl TextboxTryNoOverlap
pop {pc}
.align 2, 0
_08028238: .4byte 0x00000579
thumb_func_start sub_0802823C
sub_0802823C: @ 0x0802823C
push {r4, lr}
adds r4, r0, #0
ldr r1, _08028268 @ =gUnk_080CC790
bl sub_0800129E
movs r3, #0x20
rsbs r3, r3, #0
adds r0, r4, #0
movs r1, #0
movs r2, #1
bl sub_0804A9AC
ldr r1, [r4, #0x54]
cmp r1, #0
beq _08028266
ldr r0, [r1, #4]
cmp r0, #0
beq _08028266
adds r0, r4, #0
bl CopyPosition
_08028266:
pop {r4, pc}
.align 2, 0
_08028268: .4byte gUnk_080CC790
thumb_func_start sub_0802826C
sub_0802826C: @ 0x0802826C
push {lr}
ldr r2, _08028280 @ =gUnk_080CC7A8
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08028280: .4byte gUnk_080CC7A8
thumb_func_start sub_08028284
sub_08028284: @ 0x08028284
push {r4, r5, lr}
adds r4, r0, #0
adds r0, #0x43
ldrb r0, [r0]
cmp r0, #0
beq _08028298
adds r0, r4, #0
movs r1, #0x1c
bl sub_0804A9FC
_08028298:
ldr r1, _080282BC @ =gUnk_080CC790
adds r0, r4, #0
bl sub_0804AA30
adds r0, r4, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080282DE
ldrb r0, [r4, #0xc]
cmp r0, #4
beq _080282C0
adds r0, r4, #0
bl sub_08028754
b _080282DE
.align 2, 0
_080282BC: .4byte gUnk_080CC790
_080282C0:
movs r0, #0x3f
ands r0, r1
cmp r0, #0
bne _080282DE
adds r1, r4, #0
adds r1, #0x7a
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
adds r1, #7
movs r0, #0x16
strb r0, [r1]
adds r0, r4, #0
bl sub_08028784
_080282DE:
ldr r0, [r4, #0x54]
adds r1, r4, #0
adds r1, #0x3d
ldrb r1, [r1]
adds r0, #0x3d
strb r1, [r0]
adds r0, r4, #0
adds r0, #0x45
ldrb r5, [r0]
cmp r5, #0
bne _0802830C
movs r0, #0
strh r5, [r4, #0x24]
adds r1, r4, #0
adds r1, #0x82
strb r0, [r1]
adds r0, r4, #0
bl sub_080287E0
ldr r0, [r4, #0x54]
bl sub_0805E7BC
str r5, [r4, #0x54]
_0802830C:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start nullsub_13
nullsub_13: @ 0x08028310
bx lr
.align 2, 0
thumb_func_start sub_08028314
sub_08028314: @ 0x08028314
push {r4, lr}
adds r4, r0, #0
bl sub_0804A720
movs r1, #0
movs r2, #1
strb r2, [r4, #0xc]
strb r1, [r4, #0x14]
adds r0, r4, #0
adds r0, #0x7b
strb r1, [r0]
adds r0, #5
strb r1, [r0]
adds r0, #3
strb r1, [r0]
subs r0, #2
strb r1, [r0]
subs r0, #7
strb r1, [r0]
adds r0, #8
strb r2, [r0]
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _0802835E
ldrb r1, [r4, #0xb]
lsls r0, r1, #1
strb r0, [r4, #0x14]
movs r0, #0x1e
strb r0, [r4, #0xe]
movs r0, #0x80
strh r0, [r4, #0x24]
lsls r1, r1, #3
strb r1, [r4, #0x15]
adds r0, r4, #0
bl sub_080287E0
b _08028368
_0802835E:
movs r0, #0x10
strb r0, [r4, #0x14]
adds r0, r4, #0
bl sub_08028604
_08028368:
movs r0, #3
bl sub_080A7EE0
cmp r0, #0
beq _08028376
str r4, [r0, #0x50]
str r0, [r4, #0x54]
_08028376:
pop {r4, pc}
thumb_func_start sub_08028378
sub_08028378: @ 0x08028378
push {r4, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x81
ldrb r0, [r1]
cmp r0, #0
beq _0802838A
subs r0, #1
strb r0, [r1]
_0802838A:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
movs r2, #0xff
lsls r0, r0, #0x18
cmp r0, #0
bne _080283B8
adds r1, r4, #0
adds r1, #0x80
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ands r0, r2
cmp r0, #0xf
bls _080283B0
adds r0, r4, #0
bl sub_08028728
b _080283FC
_080283B0:
adds r0, r4, #0
bl sub_08028604
b _080283FC
_080283B8:
adds r0, r4, #0
bl sub_080286CC
cmp r0, #0
beq _080283CE
adds r2, r4, #0
adds r2, #0x7b
ldrb r0, [r2]
movs r1, #1
orrs r0, r1
strb r0, [r2]
_080283CE:
adds r0, r4, #0
bl sub_080288A4
cmp r0, #0
beq _080283FC
ldrh r1, [r4, #0x2a]
adds r0, r4, #0
bl sub_0800417E
ldrb r0, [r4, #0x15]
adds r0, #4
movs r1, #0x18
ands r0, r1
asrs r0, r0, #2
strb r0, [r4, #0x14]
adds r1, r4, #0
adds r1, #0x83
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
adds r0, r4, #0
bl sub_080287E0
_080283FC:
ldrb r0, [r4, #0xf]
cmp r0, #0xb
bls _08028414
adds r0, r4, #0
adds r0, #0x7b
ldrb r0, [r0]
cmp r0, #0
beq _08028418
adds r0, r4, #0
bl sub_08028754
b _08028418
_08028414:
adds r0, #1
strb r0, [r4, #0xf]
_08028418:
adds r0, r4, #0
bl sub_08028858
pop {r4, pc}
thumb_func_start sub_08028420
sub_08028420: @ 0x08028420
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
bne _0802844C
movs r0, #3
strb r0, [r4, #0xc]
adds r0, r4, #0
adds r0, #0x82
strb r1, [r0]
subs r0, #2
strb r1, [r0]
movs r0, #0x10
strb r0, [r4, #0x14]
adds r0, r4, #0
bl sub_08028604
b _08028462
_0802844C:
adds r0, r4, #0
bl sub_080286CC
cmp r0, #0
beq _08028462
adds r2, r4, #0
adds r2, #0x7b
ldrb r0, [r2]
movs r1, #1
orrs r0, r1
strb r0, [r2]
_08028462:
ldrb r0, [r4, #0xf]
cmp r0, #0xb
bls _0802847A
adds r0, r4, #0
adds r0, #0x7b
ldrb r0, [r0]
cmp r0, #0
beq _0802847E
adds r0, r4, #0
bl sub_08028754
b _0802847E
_0802847A:
adds r0, #1
strb r0, [r4, #0xf]
_0802847E:
adds r0, r4, #0
bl sub_08028858
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08028488
sub_08028488: @ 0x08028488
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
cmp r2, #0
bne _08028520
adds r0, r4, #0
adds r0, #0x82
ldrb r1, [r0]
adds r3, r0, #0
cmp r1, #2
beq _080284D2
cmp r1, #2
ble _080284F0
cmp r1, #3
beq _080284B4
cmp r1, #4
beq _080284E6
b _080284F0
_080284B4:
movs r0, #4
strb r0, [r4, #0xc]
movs r0, #0xc0
lsls r0, r0, #1
strh r0, [r4, #0x24]
adds r0, r4, #0
movs r1, #1
bl sub_08049F84
strb r0, [r4, #0x15]
movs r0, #0x8f
lsls r0, r0, #1
bl sub_08004488
b _0802850A
_080284D2:
strb r1, [r4, #0xc]
strh r2, [r4, #0x24]
bl Random
movs r1, #7
ands r0, r1
lsls r1, r0, #1
adds r1, r1, r0
adds r1, #0x40
b _08028508
_080284E6:
ldrb r0, [r4, #0x15]
adds r0, #0x10
movs r1, #0x18
ands r0, r1
strb r0, [r4, #0x15]
_080284F0:
movs r0, #1
strb r0, [r4, #0xc]
strb r0, [r3]
movs r0, #0x80
strh r0, [r4, #0x24]
bl Random
movs r1, #7
ands r0, r1
lsls r1, r0, #1
adds r1, r1, r0
adds r1, #0x22
_08028508:
strb r1, [r4, #0xe]
_0802850A:
movs r0, #0
strb r0, [r4, #0xf]
ldrb r0, [r4, #0x15]
adds r0, #4
movs r1, #0x18
ands r0, r1
asrs r0, r0, #2
strb r0, [r4, #0x14]
adds r0, r4, #0
bl sub_080287E0
_08028520:
adds r0, r4, #0
bl sub_08028858
pop {r4, pc}
thumb_func_start sub_08028528
sub_08028528: @ 0x08028528
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r0, #1
bl sub_08049DF4
adds r5, r0, #0
cmp r5, #0
bne _08028542
strb r5, [r4, #0xf]
adds r0, r4, #0
bl sub_08028728
b _08028600
_08028542:
adds r0, r4, #0
bl sub_080288C0
ldr r1, _08028590 @ =gUnk_080CC944
ldrb r0, [r4, #0x14]
lsrs r0, r0, #1
lsls r0, r0, #2
adds r0, r0, r1
ldr r2, [r0]
ldr r1, [r4, #0x48]
ldrb r0, [r2]
strb r0, [r1]
ldr r1, [r4, #0x48]
ldrb r0, [r2, #1]
strb r0, [r1, #1]
ldr r1, [r4, #0x48]
ldrb r0, [r2, #6]
strb r0, [r1, #6]
ldr r1, [r4, #0x48]
ldrb r0, [r2, #7]
strb r0, [r1, #7]
adds r0, r4, #0
adds r0, #0x7a
ldrb r1, [r0]
adds r6, r0, #0
cmp r1, #0
beq _08028594
movs r0, #0
strb r0, [r6]
adds r1, r4, #0
adds r1, #0x81
movs r0, #0x16
strb r0, [r1]
adds r0, r4, #0
bl sub_08028784
adds r1, r4, #0
adds r1, #0x7b
b _080285EE
.align 2, 0
_08028590: .4byte gUnk_080CC944
_08028594:
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x20
bne _080285BC
strb r1, [r4, #0xe]
adds r0, r4, #0
adds r1, r5, #0
bl sub_080045C4
adds r5, r0, #0
ldrb r0, [r4, #0x15]
adds r1, r5, #0
bl sub_08028828
cmp r0, #0
beq _080285BC
strb r5, [r4, #0x15]
_080285BC:
ldrb r1, [r4, #0xe]
movs r0, #7
ands r0, r1
cmp r0, #0
bne _080285D6
movs r0, #0xf0
bl sub_08004488
adds r0, r4, #0
movs r1, #2
movs r2, #0x40
bl CreateFX
_080285D6:
adds r1, r4, #0
adds r1, #0x7b
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x80
bne _080285EE
ldrb r0, [r6]
adds r0, #1
strb r0, [r6]
_080285EE:
ldrb r0, [r1]
cmp r0, #0x20
bls _080285FA
adds r0, r4, #0
bl sub_080AEF88
_080285FA:
adds r0, r4, #0
bl sub_08004274
_08028600:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_08028604
sub_08028604: @ 0x08028604
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r1, #0
strb r1, [r4, #0xf]
adds r0, #0x82
ldrb r0, [r0]
cmp r0, #1
bne _080286B0
bl Random
ldr r2, _08028650 @ =gUnk_080CC7BC
movs r1, #3
ands r1, r0
adds r1, r1, r2
ldrb r0, [r1]
strb r0, [r4, #0xe]
movs r0, #0x80
strh r0, [r4, #0x24]
adds r0, r4, #0
bl sub_08049FA0
cmp r0, #0
beq _08028658
bl Random
ldr r2, _08028654 @ =gUnk_080CC7D0
movs r1, #7
ands r1, r0
adds r1, r1, r2
movs r0, #0
ldrsb r0, [r1, r0]
adds r0, #0x18
ldrb r1, [r4, #0x15]
adds r0, r0, r1
movs r1, #0x18
ands r0, r1
strb r0, [r4, #0x15]
b _080286B8
.align 2, 0
_08028650: .4byte gUnk_080CC7BC
_08028654: .4byte gUnk_080CC7D0
_08028658:
adds r0, r4, #0
bl sub_08049EE4
adds r5, r0, #0
adds r6, r4, #0
adds r6, #0x83
ldrb r0, [r6]
cmp r0, #0
bne _08028684
bl Random
ldr r2, _08028680 @ =gUnk_080CC7C0
movs r1, #0xf
ands r1, r0
adds r1, r1, r2
movs r0, #0
ldrsb r0, [r1, r0]
adds r5, r5, r0
b _080286A2
.align 2, 0
_08028680: .4byte gUnk_080CC7C0
_08028684:
bl Random
ldr r2, _080286AC @ =gUnk_080CC7C0
movs r1, #7
ands r1, r0
adds r1, r1, r2
movs r0, #0
ldrsb r0, [r1, r0]
adds r5, r5, r0
ldrb r0, [r4, #0xe]
adds r0, #0x10
strb r0, [r4, #0xe]
ldrb r0, [r6]
subs r0, #1
strb r0, [r6]
_080286A2:
adds r0, r5, #4
movs r1, #0x18
ands r0, r1
strb r0, [r4, #0x15]
b _080286B8
.align 2, 0
_080286AC: .4byte gUnk_080CC7C0
_080286B0:
movs r0, #0xc
strb r0, [r4, #0xe]
strh r1, [r4, #0x24]
ldrb r0, [r4, #0x15]
_080286B8:
lsrs r5, r0, #2
ldrb r0, [r4, #0x14]
cmp r5, r0
beq _080286C8
strb r5, [r4, #0x14]
adds r0, r4, #0
bl sub_080287E0
_080286C8:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_080286CC
sub_080286CC: @ 0x080286CC
push {r4, r5, lr}
adds r5, r0, #0
adds r0, #0x81
ldrb r0, [r0]
cmp r0, #0
bne _08028724
movs r0, #1
bl sub_08049DF4
adds r4, r0, #0
cmp r4, #0
beq _08028724
adds r0, r5, #0
adds r0, #0x82
ldrb r0, [r0]
cmp r0, #2
bne _080286FC
adds r0, r5, #0
adds r1, r4, #0
movs r2, #0x30
bl sub_0806FC80
cmp r0, #0
bne _08028720
_080286FC:
adds r0, r5, #0
adds r1, r4, #0
movs r2, #0x40
bl sub_0806FC80
cmp r0, #0
beq _08028724
adds r0, r5, #0
adds r1, r4, #0
bl sub_080045C4
adds r0, #4
movs r1, #0x18
ands r0, r1
lsrs r0, r0, #2
ldrb r5, [r5, #0x14]
cmp r0, r5
bne _08028724
_08028720:
movs r0, #1
b _08028726
_08028724:
movs r0, #0
_08028726:
pop {r4, r5, pc}
thumb_func_start sub_08028728
sub_08028728: @ 0x08028728
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0x15]
adds r0, #4
movs r1, #0x18
ands r0, r1
asrs r0, r0, #2
strb r0, [r4, #0x14]
lsls r0, r0, #2
strb r0, [r4, #0x15]
adds r1, r4, #0
adds r1, #0x83
ldrb r0, [r1]
lsrs r0, r0, #1
strb r0, [r1]
adds r0, r4, #0
bl sub_080287B4
adds r4, #0x82
movs r0, #2
strb r0, [r4]
pop {r4, pc}
thumb_func_start sub_08028754
sub_08028754: @ 0x08028754
push {r4, lr}
adds r4, r0, #0
movs r1, #1
bl sub_08049F84
movs r2, #0
strb r0, [r4, #0x15]
ldrb r0, [r4, #0x15]
adds r0, #4
movs r1, #0x18
ands r0, r1
asrs r0, r0, #2
strb r0, [r4, #0x14]
adds r0, r4, #0
adds r0, #0x83
strb r2, [r0]
adds r0, r4, #0
bl sub_080287B4
adds r4, #0x82
movs r0, #3
strb r0, [r4]
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08028784
sub_08028784: @ 0x08028784
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0x15]
adds r0, #4
movs r1, #0x18
ands r0, r1
asrs r0, r0, #2
movs r1, #0
strb r0, [r4, #0x14]
lsls r0, r0, #2
strb r0, [r4, #0x15]
adds r0, r4, #0
adds r0, #0x83
strb r1, [r0]
adds r0, r4, #0
bl sub_080287B4
ldrb r0, [r4, #0xe]
lsls r0, r0, #1
strb r0, [r4, #0xe]
adds r4, #0x82
movs r0, #4
strb r0, [r4]
pop {r4, pc}
thumb_func_start sub_080287B4
sub_080287B4: @ 0x080287B4
push {lr}
adds r2, r0, #0
movs r1, #0
movs r0, #3
strb r0, [r2, #0xc]
movs r0, #0x20
strb r0, [r2, #0xe]
strb r1, [r2, #0xf]
adds r0, r2, #0
adds r0, #0x80
strb r1, [r0]
subs r0, #5
strb r1, [r0]
movs r0, #0
strh r1, [r2, #0x24]
adds r1, r2, #0
adds r1, #0x82
strb r0, [r1]
adds r0, r2, #0
bl sub_080287E0
pop {pc}
thumb_func_start sub_080287E0
sub_080287E0: @ 0x080287E0
push {lr}
adds r3, r0, #0
ldrb r0, [r3, #0x14]
lsrs r2, r0, #1
adds r0, r3, #0
adds r0, #0x82
ldrb r0, [r0]
cmp r0, #4
bhi _0802881E
lsls r0, r0, #2
ldr r1, _080287FC @ =_08028800
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080287FC: .4byte _08028800
_08028800: @ jump table
.4byte _0802881E @ case 0
.4byte _08028814 @ case 1
.4byte _0802881C @ case 2
.4byte _08028818 @ case 3
.4byte _08028814 @ case 4
_08028814:
adds r2, #4
b _0802881E
_08028818:
adds r2, #8
b _0802881E
_0802881C:
adds r2, #0xc
_0802881E:
adds r0, r3, #0
adds r1, r2, #0
bl sub_08004260
pop {pc}
thumb_func_start sub_08028828
sub_08028828: @ 0x08028828
push {r4, lr}
adds r4, r0, #0
adds r3, r1, #0
adds r0, r3, #4
movs r2, #0x18
ands r0, r2
adds r1, r4, #4
ands r1, r2
cmp r0, r1
bne _08028852
adds r0, r3, #5
movs r1, #7
ands r0, r1
adds r2, r4, #5
ands r2, r1
cmp r0, #2
bhi _08028852
cmp r2, #2
bhi _08028852
movs r0, #1
b _08028854
_08028852:
movs r0, #0
_08028854:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08028858
sub_08028858: @ 0x08028858
push {r4, lr}
adds r4, r0, #0
bl sub_080288C0
ldr r1, _080288A0 @ =gUnk_080CC944
ldrb r0, [r4, #0x14]
lsrs r0, r0, #1
lsls r0, r0, #2
adds r0, r0, r1
ldr r2, [r0]
ldr r1, [r4, #0x48]
ldrb r0, [r2]
strb r0, [r1]
ldr r1, [r4, #0x48]
ldrb r0, [r2, #1]
strb r0, [r1, #1]
ldr r1, [r4, #0x48]
ldrb r0, [r2, #6]
strb r0, [r1, #6]
ldr r1, [r4, #0x48]
ldrb r0, [r2, #7]
strb r0, [r1, #7]
adds r0, r4, #0
adds r0, #0x82
ldrb r0, [r0]
cmp r0, #0
bne _08028890
strh r0, [r4, #0x24]
_08028890:
adds r0, r4, #0
bl sub_080AEF88
adds r0, r4, #0
bl sub_08004274
pop {r4, pc}
.align 2, 0
_080288A0: .4byte gUnk_080CC944
thumb_func_start sub_080288A4
sub_080288A4: @ 0x080288A4
ldr r2, _080288BC @ =gUnk_080CC7D8
ldrb r1, [r0, #0x14]
lsrs r1, r1, #1
lsls r1, r1, #1
adds r1, r1, r2
ldrh r0, [r0, #0x2a]
ldrh r1, [r1]
ands r1, r0
rsbs r0, r1, #0
orrs r0, r1
lsrs r0, r0, #0x1f
bx lr
.align 2, 0
_080288BC: .4byte gUnk_080CC7D8
thumb_func_start sub_080288C0
sub_080288C0: @ 0x080288C0
push {lr}
mov ip, r0
ldr r2, [r0, #0x54]
cmp r2, #0
beq _08028908
adds r0, r2, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08028908
adds r0, r2, #0
adds r0, #0x3e
ldrb r0, [r0]
mov r1, ip
adds r1, #0x3e
strb r0, [r1]
adds r0, r2, #0
adds r0, #0x3d
ldrb r0, [r0]
rsbs r0, r0, #0
subs r1, #1
strb r0, [r1]
adds r0, r2, #0
adds r0, #0x46
ldrh r0, [r0]
adds r1, #9
movs r3, #0
strh r0, [r1]
adds r2, #0x42
ldrb r1, [r2]
mov r0, ip
adds r0, #0x42
strb r1, [r0]
strb r3, [r2]
_08028908:
pop {pc}
.align 2, 0
thumb_func_start sub_0802890C
sub_0802890C: @ 0x0802890C
push {lr}
ldr r1, _08028918 @ =gUnk_080CC9C8
bl sub_0800129E
pop {pc}
.align 2, 0
_08028918: .4byte gUnk_080CC9C8
thumb_func_start sub_0802891C
sub_0802891C: @ 0x0802891C
push {lr}
ldr r2, _08028930 @ =gUnk_080CC9E0
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08028930: .4byte gUnk_080CC9E0
thumb_func_start sub_08028934
sub_08028934: @ 0x08028934
push {r4, lr}
adds r4, r0, #0
adds r0, #0x3f
ldrb r0, [r0]
cmp r0, #1
bne _08028988
adds r0, r4, #0
adds r0, #0x41
ldrb r1, [r0]
movs r2, #0x7f
adds r0, r2, #0
ands r0, r1
cmp r0, #0x42
bne _08028988
movs r1, #0
movs r0, #3
strb r0, [r4, #0xc]
strb r1, [r4, #0xd]
movs r0, #0x28
strb r0, [r4, #0xe]
ldrb r1, [r4, #0x10]
adds r0, r2, #0
ands r0, r1
strb r0, [r4, #0x10]
adds r0, r4, #0
movs r1, #4
bl sub_080290E0
adds r0, r4, #0
movs r1, #3
movs r2, #0
bl CreateFX
adds r1, r0, #0
cmp r1, #0
beq _08028982
ldrh r0, [r1, #0x36]
subs r0, #8
strh r0, [r1, #0x36]
_08028982:
ldr r0, _0802898C @ =0x000001BB
bl sub_08004488
_08028988:
pop {r4, pc}
.align 2, 0
_0802898C: .4byte 0x000001BB
thumb_func_start nullsub_140
nullsub_140: @ 0x08028990
bx lr
.align 2, 0
thumb_func_start sub_08028994
sub_08028994: @ 0x08028994
push {r4, r5, lr}
adds r4, r0, #0
movs r0, #0
strb r0, [r4, #0xf]
ldrh r1, [r4, #0x2e]
adds r0, r4, #0
adds r0, #0x78
movs r5, #0
strh r1, [r0]
ldrh r0, [r4, #0x32]
adds r1, r4, #0
adds r1, #0x7a
strh r0, [r1]
strb r5, [r4, #0x14]
movs r0, #0x10
strb r0, [r4, #0x15]
adds r0, r4, #0
bl sub_08028E9C
ldr r0, [r4, #0x7c]
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _080289D4
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _080289FC
_080289D4:
movs r0, #4
strb r0, [r4, #0xc]
movs r0, #0x78
strb r0, [r4, #0xe]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
subs r0, #0xb1
ands r0, r1
movs r1, #8
orrs r0, r1
strb r0, [r2]
adds r0, r4, #0
bl sub_0802925C
adds r0, r4, #0
movs r1, #0
bl sub_080290E0
b _08028A42
_080289FC:
strb r5, [r4, #0xe]
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _08028A44 @ =gRoomControls
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r5, #0x32
ldrsh r0, [r4, r5]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r0, r4, #0
adds r0, #0x76
strh r1, [r0]
ldrh r0, [r0]
adds r1, r4, #0
adds r1, #0x38
ldrb r1, [r1]
bl sub_080001DA
adds r1, r4, #0
adds r1, #0x74
strh r0, [r1]
subs r1, #0x34
movs r0, #0x41
strb r0, [r1]
adds r0, r4, #0
bl sub_08028FFC
_08028A42:
pop {r4, r5, pc}
.align 2, 0
_08028A44: .4byte gRoomControls
thumb_func_start sub_08028A48
sub_08028A48: @ 0x08028A48
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
adds r5, r0, #0
cmp r5, #0
beq _08028A5A
subs r0, #1
strb r0, [r4, #0xe]
b _08028A72
_08028A5A:
adds r0, r4, #0
movs r1, #0
bl sub_08028F98
cmp r0, #0
beq _08028A72
adds r0, r4, #0
bl sub_08029078
strb r5, [r4, #0xd]
movs r0, #1
strb r0, [r4, #0xf]
_08028A72:
pop {r4, r5, pc}
thumb_func_start sub_08028A74
sub_08028A74: @ 0x08028A74
push {r4, r5, r6, lr}
adds r4, r0, #0
bl sub_08004274
ldrb r0, [r4, #0xd]
cmp r0, #4
bls _08028A84
b _08028BA6
_08028A84:
lsls r0, r0, #2
ldr r1, _08028A90 @ =_08028A94
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08028A90: .4byte _08028A94
_08028A94: @ jump table
.4byte _08028AA8 @ case 0
.4byte _08028ACA @ case 1
.4byte _08028B1A @ case 2
.4byte _08028B54 @ case 3
.4byte _08028B76 @ case 4
_08028AA8:
movs r6, #1
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08028BA6
strb r6, [r4, #0xd]
movs r0, #0x3c
strb r0, [r4, #0xe]
movs r0, #0x10
strb r0, [r4, #0xf]
adds r0, r4, #0
bl sub_08028FDC
b _08028B6C
_08028ACA:
movs r6, #1
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
movs r2, #0xff
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
bne _08028AF6
movs r0, #2
strb r0, [r4, #0xd]
movs r0, #0x20
strb r0, [r4, #0xe]
strb r1, [r4, #0xf]
adds r0, r4, #0
bl sub_08028FDC
adds r0, r4, #0
movs r1, #2
bl sub_080290E0
b _08028BA6
_08028AF6:
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
ands r0, r2
cmp r0, #0
bne _08028BA6
adds r0, r4, #0
bl sub_08028FDC
cmp r0, #0
beq _08028B14
adds r0, r4, #0
movs r1, #1
bl sub_080290E0
_08028B14:
movs r0, #0x10
strb r0, [r4, #0xf]
b _08028BA6
_08028B1A:
movs r6, #1
adds r0, r4, #0
bl sub_080290FC
adds r5, r4, #0
adds r5, #0x5a
ldrb r1, [r5]
adds r0, r6, #0
ands r0, r1
cmp r0, #0
beq _08028BA6
adds r0, r4, #0
movs r1, #4
movs r2, #0
bl sub_0804A98C
adds r1, r0, #0
cmp r1, #0
beq _08028BA6
str r4, [r1, #0x50]
ldrb r0, [r4, #0x15]
strb r0, [r1, #0x15]
ldrb r1, [r5]
movs r0, #0xfe
ands r0, r1
strb r0, [r5]
movs r0, #3
strb r0, [r4, #0xd]
b _08028BA6
_08028B54:
movs r6, #2
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08028BA6
movs r0, #4
strb r0, [r4, #0xd]
movs r0, #0x50
strb r0, [r4, #0xe]
_08028B6C:
adds r0, r4, #0
movs r1, #1
bl sub_080290E0
b _08028BA6
_08028B76:
movs r6, #2
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08028BA6
adds r0, r4, #0
movs r1, #0
bl sub_08028F98
adds r5, r0, #0
cmp r5, #0
beq _08028BB4
movs r0, #1
strb r0, [r4, #0xd]
movs r0, #0x3c
strb r0, [r4, #0xe]
movs r0, #0x10
strb r0, [r4, #0xf]
adds r0, r4, #0
bl sub_08028FDC
b _08028BC2
_08028BA6:
adds r0, r4, #0
adds r1, r6, #0
bl sub_08028F98
adds r5, r0, #0
cmp r5, #0
bne _08028BC2
_08028BB4:
adds r0, r4, #0
bl sub_08028FFC
strb r5, [r4, #0xd]
movs r0, #0x50
strb r0, [r4, #0xe]
strb r5, [r4, #0xf]
_08028BC2:
pop {r4, r5, r6, pc}
thumb_func_start sub_08028BC4
sub_08028BC4: @ 0x08028BC4
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xd]
cmp r0, #0
beq _08028BD4
cmp r0, #1
beq _08028C14
b _08028C76
_08028BD4:
ldrb r0, [r4, #0xe]
cmp r0, #0
bne _08028C0E
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08028C76
movs r0, #1
strb r0, [r4, #0xd]
adds r0, r4, #0
bl sub_08028FDC
adds r0, r4, #0
movs r1, #5
bl sub_080290E0
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]
b _08028C76
_08028C0E:
subs r0, #1
strb r0, [r4, #0xe]
b _08028C76
_08028C14:
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08028C76
movs r1, #0
movs r0, #4
strb r0, [r4, #0xc]
strb r1, [r4, #0xd]
movs r0, #0x1e
strb r0, [r4, #0xe]
movs r0, #5
strb r0, [r4, #0xf]
adds r0, r4, #0
bl sub_080290E0
adds r0, r4, #0
movs r1, #0x1c
bl sub_0804A9FC
adds r2, r0, #0
cmp r2, #0
beq _08028C66
adds r3, r2, #0
adds r3, #0x29
ldrb r1, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r3]
ldrh r0, [r2, #0x36]
subs r0, #0xc
strh r0, [r2, #0x36]
adds r0, r2, #0
movs r1, #2
bl sub_0805E3A0
_08028C66:
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CCC8
adds r0, r4, #0
bl sub_0802925C
_08028C76:
adds r0, r4, #0
bl sub_08004274
adds r0, r4, #0
bl sub_0800445C
pop {r4, pc}
thumb_func_start sub_08028C84
sub_08028C84: @ 0x08028C84
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
movs r1, #0xff
lsls r0, r0, #0x18
cmp r0, #0
bne _08028CD2
movs r0, #0x30
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xf]
adds r5, r0, #0
cmp r5, #0
beq _08028CB4
subs r0, #1
strb r0, [r4, #0xf]
ands r0, r1
cmp r0, #0
bne _08028CD2
adds r0, r4, #0
bl sub_0804AA1C
b _08028CD2
_08028CB4:
adds r0, r4, #0
bl sub_08028FDC
adds r1, r4, #0
adds r1, #0x80
cmp r0, #0
bne _08028CC8
ldrb r0, [r1]
cmp r0, #0
beq _08028CD2
_08028CC8:
strb r5, [r1]
adds r0, r4, #0
movs r1, #0
bl sub_080290E0
_08028CD2:
adds r0, r4, #0
bl sub_08004274
adds r0, r4, #0
bl sub_0800445C
adds r0, r4, #0
bl sub_08028F0C
pop {r4, r5, pc}
.align 2, 0