mirror of https://github.com/zeldaret/tmc.git
4357 lines
71 KiB
ArmAsm
4357 lines
71 KiB
ArmAsm
.include "asm/macros.inc"
|
|
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
|
|
thumb_func_start ChuchuBoss
|
|
ChuchuBoss: @ 0x08025CA0
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
ldr r4, _08025CB8 @ =gUnk_080CC19C
|
|
bl GetNextFunction
|
|
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 InitAnimationForceUpdate
|
|
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 DeleteThisEntity
|
|
_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 InitAnimationForceUpdate
|
|
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 InitializeAnimation
|
|
_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 DeleteThisEntity
|
|
_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 SetTile
|
|
_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 InitAnimationForceUpdate
|
|
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 InitAnimationForceUpdate
|
|
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 InitAnimationForceUpdate
|
|
_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 InitAnimationForceUpdate
|
|
_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 InitAnimationForceUpdate
|
|
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 InitAnimationForceUpdate
|
|
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 InitAnimationForceUpdate
|
|
_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 InitAnimationForceUpdate
|
|
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 InitAnimationForceUpdate
|
|
_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 InitAnimationForceUpdate
|
|
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 InitAnimationForceUpdate
|
|
_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 InitAnimationForceUpdate
|
|
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 InitAnimationForceUpdate
|
|
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 InitAnimationForceUpdate
|
|
_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 InitAnimationForceUpdate
|
|
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 InitAnimationForceUpdate
|
|
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 InitAnimationForceUpdate
|
|
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 UpdateAnimationSingleFrame
|
|
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
|