mirror of https://github.com/zeldaret/tmc.git
10455 lines
169 KiB
ArmAsm
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
|