tmc/asm/code_0806FA6C.s

7234 lines
123 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_0806FA6C
sub_0806FA6C: @ 0x0806FA6C
push {lr}
adds r2, r0, #0
adds r2, #0x62
ldrb r2, [r2]
adds r3, r1, #0
adds r3, #0x62
strb r2, [r3]
adds r2, r0, #0
adds r2, #0x63
ldrb r2, [r2]
adds r3, #1
strb r2, [r3]
movs r2, #0
movs r3, #0
bl PositionRelative
pop {pc}
.align 2, 0
thumb_func_start sub_0806FA90
sub_0806FA90: @ 0x0806FA90
push {r4, r5, lr}
adds r4, r0, #0
adds r4, #0x62
ldrb r4, [r4]
movs r5, #0x62
strb r4, [r5, r1]
adds r4, r0, #0
adds r4, #0x63
ldrb r4, [r4]
movs r5, #0x63
strb r4, [r5, r1]
lsls r2, r2, #0x10
lsls r3, r3, #0x10
bl PositionRelative
pop {r4, r5, pc}
thumb_func_start sub_0806FAB0
sub_0806FAB0: @ 0x0806FAB0
ldr r2, _0806FAD4 @ =gUnk_08114F78
adds r0, #0x29
ldrb r0, [r0]
lsls r0, r0, #0x1d
lsrs r0, r0, #0x1d
adds r0, r0, r2
ldrb r0, [r0]
adds r1, #0x29
movs r2, #7
ands r2, r0
ldrb r3, [r1]
movs r0, #8
rsbs r0, r0, #0
ands r0, r3
orrs r0, r2
strb r0, [r1]
bx lr
.align 2, 0
_0806FAD4: .4byte gUnk_08114F78
thumb_func_start sub_0806FAD8
sub_0806FAD8: @ 0x0806FAD8
ldr r2, _0806FAFC @ =gUnk_08114F80
adds r0, #0x29
ldrb r0, [r0]
lsls r0, r0, #0x1d
lsrs r0, r0, #0x1d
adds r0, r0, r2
ldrb r0, [r0]
adds r1, #0x29
movs r2, #7
ands r2, r0
ldrb r3, [r1]
movs r0, #8
rsbs r0, r0, #0
ands r0, r3
orrs r0, r2
strb r0, [r1]
bx lr
.align 2, 0
_0806FAFC: .4byte gUnk_08114F80
thumb_func_start sub_0806FB00
sub_0806FB00: @ 0x0806FB00
push {r4, lr}
mov ip, r0
adds r4, r1, #0
cmp r3, #0
bne _0806FB0C
movs r3, #1
_0806FB0C:
mov r1, ip
adds r1, #0x7e
movs r0, #0
strb r0, [r1]
mov r0, ip
adds r0, #0x7f
strb r3, [r0]
mov r0, ip
ldrh r1, [r0, #0x2e]
adds r0, #0x80
strh r1, [r0]
mov r1, ip
ldrh r0, [r1, #0x32]
adds r1, #0x82
strh r0, [r1]
mov r0, ip
adds r0, #0x84
strh r4, [r0]
adds r0, #2
strh r2, [r0]
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0806FB38
sub_0806FB38: @ 0x0806FB38
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
adds r6, r5, #0
adds r6, #0x7e
adds r7, r5, #0
adds r7, #0x7f
ldrb r0, [r6]
ldrb r1, [r7]
cmp r0, r1
bhs _0806FBA0
adds r0, #1
strb r0, [r6]
adds r0, r5, #0
adds r0, #0x84
movs r2, #0
ldrsh r1, [r0, r2]
adds r4, r5, #0
adds r4, #0x80
movs r2, #0
ldrsh r0, [r4, r2]
subs r1, r1, r0
ldrb r0, [r6]
muls r0, r1, r0
lsls r0, r0, #8
ldrb r1, [r7]
bl __divsi3
asrs r0, r0, #8
ldrh r4, [r4]
adds r0, r0, r4
strh r0, [r5, #0x2e]
adds r0, r5, #0
adds r0, #0x86
movs r2, #0
ldrsh r1, [r0, r2]
adds r4, r5, #0
adds r4, #0x82
movs r2, #0
ldrsh r0, [r4, r2]
subs r1, r1, r0
ldrb r0, [r6]
muls r0, r1, r0
lsls r0, r0, #8
ldrb r1, [r7]
bl __divsi3
asrs r0, r0, #8
ldrh r4, [r4]
adds r0, r0, r4
strh r0, [r5, #0x32]
movs r0, #0
b _0806FBB2
_0806FBA0:
adds r0, r5, #0
adds r0, #0x84
ldrh r0, [r0]
strh r0, [r5, #0x2e]
adds r0, r5, #0
adds r0, #0x86
ldrh r0, [r0]
strh r0, [r5, #0x32]
movs r0, #1
_0806FBB2:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0806FBB4
sub_0806FBB4: @ 0x0806FBB4
push {lr}
adds r1, r0, #0
ldr r0, _0806FBD0 @ =gUnk_030010A0
ldrb r0, [r0, #5]
cmp r0, #0
bne _0806FBC8
ldr r0, _0806FBD4 @ =gLinkState
ldrb r0, [r0, #5]
cmp r0, #0
bne _0806FBCC
_0806FBC8:
movs r0, #6
strb r0, [r1, #0xd]
_0806FBCC:
pop {pc}
.align 2, 0
_0806FBD0: .4byte gUnk_030010A0
_0806FBD4: .4byte gLinkState
thumb_func_start sub_0806FBD8
sub_0806FBD8: @ 0x0806FBD8
push {r4, lr}
adds r4, r0, #0
bl sub_0806FBEC
movs r0, #0xc
bl sub_0801D8E0
str r0, [r4, #0x48]
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0806FBEC
sub_0806FBEC: @ 0x0806FBEC
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x48]
bl sub_0801DA0C
movs r0, #0
str r0, [r4, #0x48]
pop {r4, pc}
thumb_func_start sub_0806FBFC
sub_0806FBFC: @ 0x0806FBFC
push {r4, r5, r6, lr}
adds r5, r3, #0
ldr r4, _0806FC20 @ =gLinkEntity
movs r6, #0x2e
ldrsh r3, [r4, r6]
subs r3, r3, r0
movs r6, #0x32
ldrsh r0, [r4, r6]
subs r0, r0, r1
movs r1, #0
cmp r3, r2
bhs _0806FC1A
cmp r0, r5
bhs _0806FC1A
movs r1, #1
_0806FC1A:
adds r0, r1, #0
pop {r4, r5, r6, pc}
.align 2, 0
_0806FC20: .4byte gLinkEntity
thumb_func_start sub_0806FC24
sub_0806FC24: @ 0x0806FC24
push {r4, lr}
adds r4, r1, #0
ldr r1, _0806FC44 @ =gUnk_080046A4
bl sub_08007DD6
cmp r0, #0
beq _0806FC4C
lsls r0, r0, #3
ldr r1, _0806FC48 @ =gUnk_080047F6
adds r0, r0, r1
ldrh r0, [r0]
asrs r0, r4
movs r1, #1
ands r0, r1
b _0806FC4E
.align 2, 0
_0806FC44: .4byte gUnk_080046A4
_0806FC48: .4byte gUnk_080047F6
_0806FC4C:
movs r0, #0
_0806FC4E:
pop {r4, pc}
thumb_func_start sub_0806FC50
sub_0806FC50: @ 0x0806FC50
push {r4, lr}
adds r4, r1, #0
ldr r1, _0806FC74 @ =gUnk_080046A4
bl sub_08007DD6
cmp r0, #0
beq _0806FC70
ldr r1, _0806FC78 @ =gUnk_080047F6
lsls r0, r0, #3
adds r2, r0, r1
ldrh r0, [r2]
asrs r0, r4
movs r1, #1
ands r0, r1
cmp r0, #0
bne _0806FC7C
_0806FC70:
movs r0, #0
b _0806FC7E
.align 2, 0
_0806FC74: .4byte gUnk_080046A4
_0806FC78: .4byte gUnk_080047F6
_0806FC7C:
adds r0, r2, #0
_0806FC7E:
pop {r4, pc}
thumb_func_start sub_0806FC80
sub_0806FC80: @ 0x0806FC80
push {r4, r5, lr}
lsls r4, r2, #4
movs r2, #0x2e
ldrsh r3, [r1, r2]
movs r5, #0x32
ldrsh r2, [r1, r5]
adds r1, r3, #0
bl sub_080041DC
cmp r4, r0
bhs _0806FC9A
movs r0, #0
b _0806FC9C
_0806FC9A:
movs r0, #1
_0806FC9C:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0806FCA0
sub_0806FCA0: @ 0x0806FCA0
push {lr}
bl sub_080045C4
bl sub_0806F5A4
pop {pc}
thumb_func_start sub_0806FCAC
sub_0806FCAC: @ 0x0806FCAC
push {lr}
bl sub_080045C4
bl sub_0806F5B0
pop {pc}
thumb_func_start sub_0806FCB8
sub_0806FCB8: @ 0x0806FCB8
push {r4, r5, lr}
adds r4, r0, #0
movs r5, #0x2e
ldrsh r0, [r4, r5]
subs r0, r0, r1
movs r5, #0x32
ldrsh r1, [r4, r5]
subs r1, r1, r2
adds r2, r3, #0
bl sub_0806FCD0
pop {r4, r5, pc}
thumb_func_start sub_0806FCD0
sub_0806FCD0: @ 0x0806FCD0
push {r4, lr}
movs r3, #0
adds r4, r2, #0
muls r4, r2, r4
adds r2, r4, #0
adds r4, r0, #0
muls r4, r0, r4
adds r0, r4, #0
adds r4, r1, #0
muls r4, r1, r4
adds r1, r4, #0
adds r0, r0, r1
cmp r2, r0
blt _0806FCEE
movs r3, #1
_0806FCEE:
adds r0, r3, #0
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0806FCF4
sub_0806FCF4: @ 0x0806FCF4
push {r4, r5, r6, lr}
adds r6, r0, #0
adds r4, r2, #0
adds r5, r3, #0
movs r2, #0
cmp r1, #0
bge _0806FD04
rsbs r1, r1, #0
_0806FD04:
cmp r4, #0
beq _0806FD1A
movs r0, #0x80
lsls r0, r0, #9
bl __divsi3
adds r1, r0, #0
adds r0, r4, #0
muls r0, r1, r0
lsrs r1, r0, #8
subs r2, r4, r1
_0806FD1A:
cmp r5, #0
beq _0806FD22
cmp r5, #3
bne _0806FD24
_0806FD22:
rsbs r2, r2, #0
_0806FD24:
cmp r5, #0
beq _0806FD2C
cmp r5, #2
bne _0806FD32
_0806FD2C:
adds r0, r6, #0
adds r0, #0x63
b _0806FD36
_0806FD32:
adds r0, r6, #0
adds r0, #0x62
_0806FD36:
strb r2, [r0]
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0806FD3C
sub_0806FD3C: @ 0x0806FD3C
ldrb r2, [r0, #0x18]
movs r1, #0x31
rsbs r1, r1, #0
ands r1, r2
strb r1, [r0, #0x18]
adds r0, #0x29
ldrb r2, [r0]
movs r1, #0x39
rsbs r1, r1, #0
ands r1, r2
strb r1, [r0]
bx lr
thumb_func_start sub_0806FD54
sub_0806FD54: @ 0x0806FD54
push {r4, lr}
adds r3, r0, #0
ldr r0, _0806FD6C @ =gLinkState
ldr r0, [r0, #0x30]
movs r1, #0x80
lsls r1, r1, #0x10
ands r0, r1
cmp r0, #0
bne _0806FD70
movs r0, #0
b _0806FD84
.align 2, 0
_0806FD6C: .4byte gLinkState
_0806FD70:
ldr r0, _0806FD88 @ =gLinkEntity
movs r2, #0x2e
ldrsh r1, [r0, r2]
movs r4, #0x32
ldrsh r2, [r0, r4]
subs r2, #9
adds r0, r3, #0
movs r3, #0x48
bl sub_0806FCB8
_0806FD84:
pop {r4, pc}
.align 2, 0
_0806FD88: .4byte gLinkEntity
thumb_func_start sub_0806FD8C
sub_0806FD8C: @ 0x0806FD8C
push {lr}
ldr r0, _0806FD9C @ =gUnk_020000C0
movs r1, #0xc0
lsls r1, r1, #4
bl sub_0801D630
pop {pc}
.align 2, 0
_0806FD9C: .4byte gUnk_020000C0
thumb_func_start sub_0806FDA0
sub_0806FDA0: @ 0x0806FDA0
push {r4, lr}
movs r3, #1
ldr r1, _0806FDD8 @ =gUnk_020000C0
movs r4, #0xff
movs r2, #0x61
adds r2, r2, r1
mov ip, r2
adds r2, r1, #0
adds r2, #0x40
adds r1, r0, #0
adds r1, #0x28
_0806FDB6:
ldrb r0, [r2]
lsls r0, r0, #0x1f
cmp r0, #0
bne _0806FDDC
strb r3, [r1]
ldrb r0, [r2]
movs r1, #1
orrs r0, r1
strb r0, [r2]
strb r4, [r2, #1]
strb r4, [r2, #0x11]
mov r0, ip
strb r4, [r0]
strb r4, [r0, #0x10]
movs r0, #1
b _0806FDEA
.align 2, 0
_0806FDD8: .4byte gUnk_020000C0
_0806FDDC:
movs r0, #0x40
add ip, r0
adds r2, #0x40
adds r3, #1
cmp r3, #0x2f
bls _0806FDB6
movs r0, #0
_0806FDEA:
pop {r4, pc}
thumb_func_start sub_0806FDEC
sub_0806FDEC: @ 0x0806FDEC
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r6, r0, #0
adds r4, r1, #0
bl sub_0806FDA0
cmp r0, #0
bne _0806FE02
movs r0, #0
b _0806FE74
_0806FE02:
adds r0, r6, #0
bl sub_0801D230
adds r0, r6, #0
adds r0, #0x28
ldrb r0, [r0]
lsls r0, r0, #6
ldr r1, _0806FE7C @ =gUnk_020000C0
adds r5, r0, r1
movs r7, #0
ldrh r1, [r4, #2]
ldr r0, _0806FE80 @ =0x000003FF
ands r0, r1
movs r1, #0x27
adds r1, r1, r6
mov r8, r1
cmp r0, #0
beq _0806FE6C
_0806FE26:
ldr r1, [r4]
lsls r1, r1, #0x16
lsrs r1, r1, #0x16
adds r0, r6, #0
bl sub_0801D040
adds r2, r0, #0
ldr r3, [r4]
lsls r1, r3, #6
lsrs r1, r1, #0x16
lsls r3, r3, #0x10
lsrs r3, r3, #0x1a
adds r0, r5, #0
bl sub_0806FEE8
ldrb r1, [r4, #3]
movs r0, #4
ands r0, r1
cmp r0, #0
beq _0806FE56
adds r0, r5, #0
adds r1, r6, #0
bl sub_0806FEFC
_0806FE56:
adds r5, #0x10
adds r4, #4
adds r7, #1
cmp r7, #3
bhi _0806FE6C
ldrh r1, [r4, #2]
ldr r2, _0806FE80 @ =0x000003FF
adds r0, r2, #0
ands r0, r1
cmp r0, #0
bne _0806FE26
_0806FE6C:
movs r0, #0
mov r1, r8
strb r0, [r1]
movs r0, #1
_0806FE74:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0806FE7C: .4byte gUnk_020000C0
_0806FE80: .4byte 0x000003FF
thumb_func_start sub_0806FE84
sub_0806FE84: @ 0x0806FE84
push {r4, r5, r6, lr}
adds r0, #0x28
ldrb r2, [r0]
movs r1, #0
strb r1, [r0]
subs r0, r2, #1
cmp r0, #0x7e
bhi _0806FEB4
lsls r1, r2, #6
ldr r0, _0806FEB8 @ =gUnk_020000C0
adds r6, r1, r0
movs r5, #0
adds r4, r6, #0
_0806FE9E:
ldrb r0, [r4, #5]
bl sub_0801D244
adds r4, #0x10
adds r5, #1
cmp r5, #3
bls _0806FE9E
adds r0, r6, #0
movs r1, #0x40
bl sub_0801D630
_0806FEB4:
pop {r4, r5, r6, pc}
.align 2, 0
_0806FEB8: .4byte gUnk_020000C0
thumb_func_start sub_0806FEBC
sub_0806FEBC: @ 0x0806FEBC
adds r0, #0x28
ldrb r3, [r0]
lsls r3, r3, #6
lsls r1, r1, #4
ldr r0, _0806FEE4 @ =gUnk_020000C0
adds r1, r1, r0
adds r3, r3, r1
movs r0, #0
str r0, [r3]
str r0, [r3, #4]
str r0, [r3, #8]
str r2, [r3, #0xc]
ldrb r0, [r3]
movs r1, #1
orrs r0, r1
movs r1, #2
orrs r0, r1
strb r0, [r3]
bx lr
.align 2, 0
_0806FEE4: .4byte gUnk_020000C0
thumb_func_start sub_0806FEE8
sub_0806FEE8: @ 0x0806FEE8
strb r3, [r0, #8]
strh r1, [r0, #2]
strb r2, [r0, #5]
ldrb r1, [r0]
movs r2, #8
orrs r1, r2
movs r2, #1
orrs r1, r2
strb r1, [r0]
bx lr
thumb_func_start sub_0806FEFC
sub_0806FEFC: @ 0x0806FEFC
adds r1, #0x60
ldrh r1, [r1]
ldrb r2, [r0, #8]
adds r1, r1, r2
strh r1, [r0, #0xa]
ldrb r1, [r0]
movs r2, #4
orrs r1, r2
strb r1, [r0]
bx lr
thumb_func_start sub_0806FF10
sub_0806FF10: @ 0x0806FF10
push {r4, r5, r6, lr}
adds r6, r0, #0
adds r5, r2, #0
adds r0, #0x28
ldrb r2, [r0]
lsls r2, r2, #6
lsls r1, r1, #4
ldr r0, _0806FF44 @ =gUnk_020000C0
adds r1, r1, r0
adds r4, r2, r1
adds r0, r5, #0
bl sub_0801D108
ldrb r1, [r4, #5]
cmp r1, r0
beq _0806FF40
adds r0, r1, #0
bl sub_0801D244
adds r0, r6, #0
adds r1, r5, #0
bl sub_0801D040
strb r0, [r4, #5]
_0806FF40:
pop {r4, r5, r6, pc}
.align 2, 0
_0806FF44: .4byte gUnk_020000C0
thumb_func_start sub_0806FF48
sub_0806FF48: @ 0x0806FF48
adds r0, #0x28
ldrb r0, [r0]
lsls r0, r0, #6
lsls r1, r1, #4
ldr r3, _0806FF5C @ =gUnk_020000C0
adds r1, r1, r3
adds r0, r0, r1
strb r2, [r0, #4]
bx lr
.align 2, 0
_0806FF5C: .4byte gUnk_020000C0
thumb_func_start sub_0806FF60
sub_0806FF60: @ 0x0806FF60
push {lr}
adds r3, r2, #0
adds r0, #0x28
ldrb r0, [r0]
lsls r0, r0, #6
ldr r2, _0806FF84 @ =gUnk_020000C0
adds r0, r0, r2
lsls r1, r1, #4
adds r2, r0, r1
ldrb r0, [r2, #1]
cmp r0, r3
beq _0806FF82
strb r3, [r2, #1]
ldrb r0, [r2]
movs r1, #8
orrs r0, r1
strb r0, [r2]
_0806FF82:
pop {pc}
.align 2, 0
_0806FF84: .4byte gUnk_020000C0
thumb_func_start sub_0806FF88
sub_0806FF88: @ 0x0806FF88
push {r4, r5, lr}
adds r5, r1, #0
adds r0, #0x28
ldrb r4, [r0]
lsls r4, r4, #6
ldr r0, _0806FFB8 @ =gUnk_020000C0
adds r4, r4, r0
lsls r5, r5, #4
adds r5, r4, r5
lsls r2, r2, #4
adds r4, r4, r2
ldrh r0, [r5, #2]
ldrb r1, [r5, #1]
bl sub_080700C8
ldrb r1, [r5, #6]
ldrb r2, [r0]
adds r1, r1, r2
strb r1, [r4, #6]
ldrb r1, [r5, #7]
ldrb r0, [r0, #1]
adds r1, r1, r0
strb r1, [r4, #7]
pop {r4, r5, pc}
.align 2, 0
_0806FFB8: .4byte gUnk_020000C0
thumb_func_start sub_0806FFBC
sub_0806FFBC: @ 0x0806FFBC
push {r4, lr}
adds r0, #0x28
ldrb r0, [r0]
lsls r0, r0, #6
lsls r1, r1, #4
ldr r4, _0806FFD4 @ =gUnk_020000C0
adds r1, r1, r4
adds r0, r0, r1
strb r2, [r0, #6]
strb r3, [r0, #7]
pop {r4, pc}
.align 2, 0
_0806FFD4: .4byte gUnk_020000C0
thumb_func_start sub_0806FFD8
sub_0806FFD8: @ 0x0806FFD8
push {r4, r5, lr}
adds r5, r1, #0
adds r0, #0x28
ldrb r4, [r0]
lsls r4, r4, #6
ldr r0, _08070008 @ =gUnk_020000C0
adds r4, r4, r0
lsls r5, r5, #4
adds r5, r4, r5
lsls r2, r2, #4
adds r4, r4, r2
ldrh r0, [r5, #2]
ldrb r1, [r5, #1]
bl sub_080700C8
ldrb r1, [r5, #6]
ldrb r2, [r0, #2]
adds r1, r1, r2
strb r1, [r4, #6]
ldrb r1, [r5, #7]
ldrb r0, [r0, #3]
adds r1, r1, r0
strb r1, [r4, #7]
pop {r4, r5, pc}
.align 2, 0
_08070008: .4byte gUnk_020000C0
thumb_func_start sub_0807000C
sub_0807000C: @ 0x0807000C
push {r4, r5, r6, r7, lr}
adds r6, r0, #0
adds r7, r6, #0
adds r7, #0x28
ldrb r4, [r7]
lsls r4, r4, #6
ldr r0, _08070074 @ =gUnk_020000C0
adds r4, r4, r0
adds r0, r4, #0
movs r1, #0
bl sub_0807007C
adds r5, r0, #0
adds r0, r4, #0
movs r1, #1
bl sub_0807007C
orrs r5, r0
adds r0, r4, #0
movs r1, #2
bl sub_0807007C
orrs r5, r0
adds r0, r4, #0
movs r1, #3
bl sub_0807007C
orrs r5, r0
cmp r5, #0
beq _08070072
ldr r3, _08070078 @ =gUnk_02024490
adds r2, r6, #0
adds r2, #0x26
ldrb r1, [r2]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r3
ldrb r1, [r7]
strb r1, [r0, #7]
ldrb r1, [r2]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r3
ldrb r2, [r0, #4]
movs r1, #0xf
ands r1, r2
movs r2, #0x30
orrs r1, r2
strb r1, [r0, #4]
_08070072:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08070074: .4byte gUnk_020000C0
_08070078: .4byte gUnk_02024490
thumb_func_start sub_0807007C
sub_0807007C: @ 0x0807007C
push {lr}
lsls r1, r1, #4
adds r2, r0, r1
ldrb r1, [r2]
movs r0, #8
ands r0, r1
cmp r0, #0
beq _080700C4
movs r0, #4
ands r0, r1
cmp r0, #0
beq _080700C4
ldrb r0, [r2, #1]
cmp r0, #0xff
beq _080700C4
ldrh r0, [r2, #2]
lsls r0, r0, #4
ldr r1, _080700C0 @ =gUnk_080029B4
adds r3, r0, r1
ldr r1, [r3, #4]
cmp r1, #0
beq _080700C4
ldrb r0, [r2, #1]
lsls r0, r0, #2
adds r0, r1, r0
ldrb r1, [r0]
strb r1, [r2, #9]
ldrh r1, [r0, #2]
lsls r1, r1, #5
ldr r0, [r3, #8]
adds r0, r0, r1
str r0, [r2, #0xc]
movs r0, #1
b _080700C6
.align 2, 0
_080700C0: .4byte gUnk_080029B4
_080700C4:
movs r0, #0
_080700C6:
pop {pc}
thumb_func_start sub_080700C8
sub_080700C8: @ 0x080700C8
lsls r0, r0, #1
ldr r2, _080700E4 @ =gUnk_089FB780
adds r0, r0, r2
ldrh r0, [r0]
subs r2, #0x10
adds r0, r0, r2
adds r1, r0, r1
ldrb r0, [r1]
lsls r0, r0, #2
adds r0, r0, r2
ldr r1, [r2]
adds r0, r1, r0
bx lr
.align 2, 0
_080700E4: .4byte gUnk_089FB780
thumb_func_start sub_080700E8
sub_080700E8: @ 0x080700E8
push {lr}
ldr r2, _080700FC @ =gUnk_0811B98C
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080700FC: .4byte gUnk_0811B98C
thumb_func_start sub_08070100
sub_08070100: @ 0x08070100
push {r4, r5, lr}
adds r5, r0, #0
movs r2, #1
movs r3, #1
strb r3, [r5, #0xc]
ldrb r1, [r5, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
orrs r0, r2
strb r0, [r5, #0x18]
ldrb r1, [r5, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r5, #0x10]
ldrb r0, [r5, #0x14]
lsls r0, r0, #2
strb r0, [r5, #0x15]
movs r0, #0x80
lsls r0, r0, #2
strh r0, [r5, #0x24]
movs r0, #0x40
str r0, [r5, #0x74]
movs r0, #0xf0
lsls r0, r0, #1
str r0, [r5, #0x78]
ldr r2, _0807017C @ =gLinkEntity
ldr r1, _08070180 @ =gUnk_0811B9A0
ldrb r0, [r5, #0x14]
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r4, [r2, #0x2e]
adds r0, r0, r4
strh r0, [r5, #0x2e]
ldrb r0, [r5, #0x14]
adds r0, #1
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r1, [r2, #0x32]
adds r0, r0, r1
strh r0, [r5, #0x32]
adds r1, r5, #0
adds r1, #0x3c
movs r0, #7
strb r0, [r1]
subs r1, #1
movs r0, #0x8a
strb r0, [r1]
ldr r0, _08070184 @ =gUnk_0811B9D0
str r0, [r5, #0x48]
adds r0, r5, #0
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #2
bne _08070188
strb r3, [r5, #0xa]
b _0807018C
.align 2, 0
_0807017C: .4byte gLinkEntity
_08070180: .4byte gUnk_0811B9A0
_08070184: .4byte gUnk_0811B9D0
_08070188:
movs r0, #0
strb r0, [r5, #0xa]
_0807018C:
ldrb r1, [r2, #0x1b]
lsrs r1, r1, #6
lsls r1, r1, #6
ldrb r2, [r5, #0x1b]
movs r0, #0x3f
ands r0, r2
orrs r0, r1
strb r0, [r5, #0x1b]
ldrb r3, [r5, #0x14]
lsrs r3, r3, #1
lsls r3, r3, #3
ldr r0, _080701F0 @ =gUnk_0811B9A8
adds r3, r3, r0
ldrb r1, [r3]
movs r0, #1
ands r1, r0
lsls r1, r1, #6
ldrb r2, [r5, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r5, #0x18]
ldrb r1, [r3, #1]
lsls r1, r1, #7
movs r2, #0x7f
ands r0, r2
orrs r0, r1
strb r0, [r5, #0x18]
ldrb r0, [r3, #4]
adds r4, r5, #0
adds r4, #0x58
strb r0, [r4]
movs r0, #2
ldrsb r0, [r3, r0]
str r0, [r5, #0x6c]
movs r0, #3
ldrsb r0, [r3, r0]
str r0, [r5, #0x70]
adds r0, r5, #0
bl sub_0801766C
ldrb r1, [r4]
adds r0, r5, #0
bl sub_08004260
ldr r0, _080701F4 @ =0x000001DD
bl PlaySFX
pop {r4, r5, pc}
.align 2, 0
_080701F0: .4byte gUnk_0811B9A8
_080701F4: .4byte 0x000001DD
thumb_func_start sub_080701F8
sub_080701F8: @ 0x080701F8
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
ldr r0, _08070244 @ =gUnk_0811B9C8
ldrb r1, [r5, #0x14]
adds r2, r1, r0
movs r6, #0
ldrsb r6, [r2, r6]
adds r1, #1
adds r1, r1, r0
movs r7, #0
ldrsb r7, [r1, r7]
adds r0, r5, #0
movs r1, #0xa
adds r2, r6, #0
adds r3, r7, #0
bl sub_08008782
adds r4, r0, #0
cmp r4, #0
beq _08070248
ldrb r1, [r4, #5]
ldrb r2, [r4, #2]
movs r0, #0x53
bl CreateObject
adds r1, r0, #0
cmp r1, #0
beq _08070260
ldrb r0, [r4, #3]
strb r0, [r1, #0xe]
ldrh r0, [r5, #0x2e]
adds r0, r0, r6
strh r0, [r1, #0x2e]
ldrh r0, [r5, #0x32]
adds r0, r0, r7
strh r0, [r1, #0x32]
b _08070260
.align 2, 0
_08070244: .4byte gUnk_0811B9C8
_08070248:
ldr r0, [r5, #0x74]
subs r0, #1
str r0, [r5, #0x74]
movs r1, #1
rsbs r1, r1, #0
cmp r0, r1
beq _08070260
ldr r0, [r5, #0x78]
subs r0, #1
str r0, [r5, #0x78]
cmp r0, r1
bne _08070268
_08070260:
adds r0, r5, #0
bl sub_08070458
b _0807037A
_08070268:
adds r0, r5, #0
bl sub_08004274
adds r0, r5, #0
bl sub_0806F69C
ldrb r0, [r5, #0xa]
cmp r0, #0
bne _08070280
adds r0, r5, #0
bl sub_0800451C
_08070280:
movs r1, #0x2e
ldrsh r0, [r5, r1]
ldr r7, _08070354 @ =gRoomControls
ldrh r1, [r7, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r6, #0x3f
ands r0, r6
movs r2, #0x32
ldrsh r1, [r5, r2]
ldrh r2, [r7, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r6
lsls r1, r1, #6
orrs r0, r1
ldr r1, _08070358 @ =gLinkEntity
adds r1, #0x38
ldrb r1, [r1]
movs r2, #0x80
bl sub_080002F0
cmp r0, #0
bne _0807036A
ldr r1, _0807035C @ =gUnk_08003E44
movs r3, #0x2e
ldrsh r2, [r5, r3]
movs r0, #0x32
ldrsh r3, [r5, r0]
adds r0, r5, #0
bl sub_080040D8
cmp r0, #0
bne _08070364
adds r0, r5, #0
bl sub_080002B8
cmp r0, #0x19
bne _0807036A
movs r0, #4
strb r0, [r5, #0xc]
ldrb r1, [r5, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r5, #0x10]
ldrh r2, [r5, #0x2e]
movs r1, #0x10
rsbs r1, r1, #0
adds r0, r1, #0
ands r0, r2
movs r2, #8
orrs r0, r2
strh r0, [r5, #0x2e]
ldrh r0, [r5, #0x32]
ands r1, r0
orrs r1, r2
strh r1, [r5, #0x32]
adds r2, r5, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
movs r1, #0x2e
ldrsh r0, [r5, r1]
ldrh r1, [r7, #6]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r6
movs r2, #0x32
ldrsh r1, [r5, r2]
ldrh r2, [r7, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r6
lsls r1, r1, #6
orrs r0, r1
adds r4, r5, #0
adds r4, #0x38
ldrb r1, [r4]
bl sub_080001DA
str r0, [r5, #0x7c]
adds r0, r5, #0
movs r1, #0x14
bl sub_08004260
ldr r0, _08070360 @ =0x00004020
movs r3, #0x2e
ldrsh r1, [r5, r3]
ldrh r2, [r7, #6]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r6
movs r3, #0x32
ldrsh r2, [r5, r3]
ldrh r3, [r7, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r6
lsls r2, r2, #6
orrs r1, r2
ldrb r2, [r4]
bl sub_0800015E
b _0807037A
.align 2, 0
_08070354: .4byte gRoomControls
_08070358: .4byte gLinkEntity
_0807035C: .4byte gUnk_08003E44
_08070360: .4byte 0x00004020
_08070364:
adds r0, r5, #0
bl sub_08070458
_0807036A:
adds r0, r5, #0
adds r0, #0x41
ldrb r0, [r0]
cmp r0, #0
beq _0807037A
adds r0, r5, #0
bl sub_08070458
_0807037A:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0807037C
sub_0807037C: @ 0x0807037C
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r4, #0x5a
ldrb r1, [r4]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08070394
bl sub_0805E780
_08070394:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08070398
sub_08070398: @ 0x08070398
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r0, r4, #0
bl sub_0806F69C
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
bne _080703B8
bl sub_0805E780
_080703B8:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080703BC
sub_080703BC: @ 0x080703BC
push {r4, r5, lr}
adds r4, r0, #0
bl sub_08004274
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldr r2, _08070404 @ =gRoomControls
ldrh r1, [r2, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r5, #0x32
ldrsh r1, [r4, r5]
ldrh r2, [r2, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
adds r1, r4, #0
adds r1, #0x38
ldrb r1, [r1]
bl sub_080001DA
adds r1, r0, #0
ldr r0, _08070408 @ =0x00004021
cmp r1, r0
beq _0807042E
cmp r1, r0
bhi _0807040C
subs r0, #1
cmp r1, r0
beq _08070420
b _08070412
.align 2, 0
_08070404: .4byte gRoomControls
_08070408: .4byte 0x00004021
_0807040C:
ldr r0, _08070418 @ =0x00004070
cmp r1, r0
beq _0807041C
_08070412:
movs r0, #0
str r0, [r4, #0x7c]
b _0807042E
.align 2, 0
_08070418: .4byte 0x00004070
_0807041C:
movs r0, #0xff
str r0, [r4, #0x78]
_08070420:
ldr r0, [r4, #0x78]
subs r0, #1
str r0, [r4, #0x78]
movs r1, #1
rsbs r1, r1, #0
cmp r0, r1
bne _08070436
_0807042E:
adds r0, r4, #0
bl sub_08070458
b _08070454
_08070436:
adds r0, r4, #0
adds r0, #0x41
ldrb r1, [r0]
cmp r1, #0
beq _08070454
movs r0, #0x7f
ands r0, r1
cmp r0, #0
bne _0807044E
ldrb r0, [r4, #0xc]
cmp r0, #0x1a
bne _08070454
_0807044E:
adds r0, r4, #0
bl sub_08070458
_08070454:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08070458
sub_08070458: @ 0x08070458
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r2, #0
movs r0, #2
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
strh r2, [r4, #0x24]
ldr r5, [r4, #0x7c]
cmp r5, #0
beq _0807049E
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _080704B4 @ =gRoomControls
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r6, #0x32
ldrsh r0, [r4, r6]
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, #0x38
ldrb r2, [r0]
adds r0, r5, #0
bl sub_0800015E
_0807049E:
adds r0, r4, #0
movs r1, #0x13
bl sub_08004260
adds r0, r4, #0
bl sub_08017744
ldr r0, _080704B8 @ =0x00000199
bl PlaySFX
pop {r4, r5, r6, pc}
.align 2, 0
_080704B4: .4byte gRoomControls
_080704B8: .4byte 0x00000199
thumb_func_start sub_080704BC
sub_080704BC: @ 0x080704BC
push {lr}
ldr r2, _080704D0 @ =gUnk_0811B9D8
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080704D0: .4byte gUnk_0811B9D8
thumb_func_start sub_080704D4
sub_080704D4: @ 0x080704D4
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0xff
strb r0, [r4, #0x1e]
adds r0, r4, #0
movs r1, #1
movs r2, #3
bl sub_080AE008
movs r0, #0x87
lsls r0, r0, #1
bl PlaySFX
adds r0, r4, #0
bl sub_080704FC
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080704FC
sub_080704FC: @ 0x080704FC
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, _0807052C @ =gLinkEntity
adds r0, r5, #0
adds r0, #0x5a
ldrb r2, [r0]
movs r0, #0x80
ands r0, r2
ldr r1, _08070530 @ =gLinkState
cmp r0, #0
bne _08070518
ldr r0, [r1, #0x2c]
cmp r4, r0
beq _08070534
_08070518:
ldr r0, [r1, #0x2c]
cmp r4, r0
bne _08070522
movs r0, #0
str r0, [r1, #0x2c]
_08070522:
adds r0, r4, #0
bl sub_0805E7BC
b _08070566
.align 2, 0
_0807052C: .4byte gLinkEntity
_08070530: .4byte gLinkState
_08070534:
movs r0, #0xf
ands r0, r2
cmp r0, #0xf
beq _08070562
ldrb r1, [r5, #0x1e]
adds r0, #0x91
subs r0, r1, r0
ldrb r2, [r4, #0x1e]
cmp r0, r2
beq _08070558
adds r0, r1, #0
adds r0, #0x6f
strb r0, [r4, #0x1e]
ldrb r1, [r4, #0x1e]
ldrh r2, [r4, #0x12]
adds r0, r4, #0
bl sub_080042D0
_08070558:
adds r0, r4, #0
adds r1, r5, #0
bl sub_08078E84
b _08070566
_08070562:
movs r0, #0xff
strb r0, [r4, #0x1e]
_08070566:
ldr r2, _08070580 @ =gLinkEntity
ldrb r1, [r2, #0x14]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _08070584
ldrb r0, [r2, #0x18]
lsls r0, r0, #0x19
lsrs r2, r0, #0x1f
movs r0, #1
eors r2, r0
b _0807058A
.align 2, 0
_08070580: .4byte gLinkEntity
_08070584:
ldrb r0, [r2, #0x18]
lsls r0, r0, #0x19
lsrs r2, r0, #0x1f
_0807058A:
lsls r2, r2, #6
ldrb r1, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0807059C
sub_0807059C: @ 0x0807059C
push {lr}
ldr r0, _080705A8 @ =gUnk_02034490
movs r1, #0x18
bl sub_0801D630
pop {pc}
.align 2, 0
_080705A8: .4byte gUnk_02034490
thumb_func_start sub_080705AC
sub_080705AC: @ 0x080705AC
push {lr}
ldr r0, _08070614 @ =gUnk_03000FF0
ldrh r1, [r0, #2]
movs r0, #8
ands r0, r1
cmp r0, #0
beq _08070674
ldr r0, _08070618 @ =gUnk_03000FD0
ldrb r0, [r0]
cmp r0, #0
bne _08070674
ldr r0, _0807061C @ =gUnk_02034490
ldrb r0, [r0]
cmp r0, #0
bne _08070674
ldr r0, _08070620 @ =gTextBox
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
bne _08070674
ldr r1, _08070624 @ =gUnk_02002A40
adds r0, r1, #0
adds r0, #0xaa
ldrb r0, [r0]
cmp r0, #0
beq _08070674
adds r0, r1, #0
adds r0, #0xf2
ldrb r0, [r0]
cmp r0, #0
beq _08070674
ldr r1, _08070628 @ =gLinkState
adds r0, r1, #0
adds r0, #0x8b
ldrb r0, [r0]
cmp r0, #0
bne _08070674
ldr r0, _0807062C @ =gUnk_03003DC0
ldrh r0, [r0, #8]
cmp r0, #0
bne _08070674
adds r2, r1, #0
adds r2, #0xa8
ldrb r0, [r2]
cmp r0, #0
bne _08070630
adds r0, r1, #0
adds r0, #0xa9
ldrb r0, [r0]
b _08070632
.align 2, 0
_08070614: .4byte gUnk_03000FF0
_08070618: .4byte gUnk_03000FD0
_0807061C: .4byte gUnk_02034490
_08070620: .4byte gTextBox
_08070624: .4byte gUnk_02002A40
_08070628: .4byte gLinkState
_0807062C: .4byte gUnk_03003DC0
_08070630:
ldrb r0, [r2]
_08070632:
subs r0, #0x12
cmp r0, #0xa
bhi _08070678
lsls r0, r0, #2
ldr r1, _08070644 @ =_08070648
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08070644: .4byte _08070648
_08070648: @ jump table
.4byte _08070674 @ case 0
.4byte _08070674 @ case 1
.4byte _08070678 @ case 2
.4byte _08070674 @ case 3
.4byte _08070674 @ case 4
.4byte _08070678 @ case 5
.4byte _08070678 @ case 6
.4byte _08070678 @ case 7
.4byte _08070678 @ case 8
.4byte _08070678 @ case 9
.4byte _08070674 @ case 10
_08070674:
movs r0, #0
b _0807067E
_08070678:
bl sub_080A4D88
movs r0, #1
_0807067E:
pop {pc}
thumb_func_start sub_08070680
sub_08070680: @ 0x08070680
push {lr}
ldr r2, _08070694 @ =gUnk_0811B9E0
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08070694: .4byte gUnk_0811B9E0
thumb_func_start sub_08070698
sub_08070698: @ 0x08070698
push {r4, r5, r6, lr}
sub sp, #4
adds r4, r0, #0
ldr r6, _08070788 @ =gLinkState
movs r0, #0xff
strb r0, [r6]
ldr r1, _0807078C @ =gLinkEntity
ldrh r0, [r1, #0x2e]
strh r0, [r6, #0x16]
ldrh r0, [r1, #0x32]
strh r0, [r6, #0x18]
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #4
orrs r0, r1
movs r1, #0x39
rsbs r1, r1, #0
ands r0, r1
movs r1, #8
orrs r0, r1
strb r0, [r2]
ldrb r1, [r4, #0x18]
movs r0, #0x31
rsbs r0, r0, #0
ands r0, r1
movs r1, #0x10
orrs r0, r1
strb r0, [r4, #0x18]
movs r0, #0x20
strb r0, [r4, #0x16]
adds r1, r4, #0
adds r1, #0x3b
movs r0, #8
strb r0, [r1]
adds r1, #4
movs r0, #0x79
strb r0, [r1]
ldr r0, _08070790 @ =gUnk_08114F88
str r0, [r4, #0x48]
movs r0, #1
strh r0, [r4, #0x12]
adds r0, #0xff
strh r0, [r6, #8]
adds r0, r4, #0
bl sub_0806FDA0
adds r0, r4, #0
movs r1, #1
movs r2, #2
bl sub_080AE008
adds r0, r4, #0
movs r1, #2
bl sub_080042AC
adds r0, r4, #0
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #0
bne _08070726
adds r0, r4, #0
bl sub_08016A30
_08070726:
movs r0, #0x10
bl sub_0805436C
cmp r0, #2
beq _08070734
bl sub_08077728
_08070734:
bl sub_0807A108
bl sub_0807AEE4
bl sub_08078EFC
adds r5, r0, #0
cmp r5, #0
bne _08070784
bl sub_0807921C
bl sub_0807A1B8
adds r1, r6, #0
adds r1, #0x26
ldrb r0, [r1]
cmp r0, #0
beq _08070784
movs r0, #1
strb r0, [r1]
bl sub_08079938
adds r1, r6, #0
adds r1, #0xa8
movs r0, #7
strb r0, [r1]
adds r0, r4, #0
bl sub_0807ACCC
str r5, [sp]
movs r0, #6
movs r1, #0xf
movs r2, #6
movs r3, #0xb
bl sub_0805EB2C
cmp r0, #0
beq _08070784
bl sub_0805E7BC
_08070784:
add sp, #4
pop {r4, r5, r6, pc}
.align 2, 0
_08070788: .4byte gLinkState
_0807078C: .4byte gLinkEntity
_08070790: .4byte gUnk_08114F88
thumb_func_start sub_08070794
sub_08070794: @ 0x08070794
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
ldr r6, _080707F0 @ =gLinkState
adds r3, r6, #0
adds r3, #0xa8
movs r4, #0
strb r4, [r3]
ldr r1, [r6, #0x30]
movs r7, #0x10
adds r0, r1, #0
ands r0, r7
mov ip, r6
cmp r0, #0
beq _08070818
adds r2, r5, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
adds r0, r5, #0
adds r0, #0x42
strb r4, [r0]
movs r0, #0xa0
lsls r0, r0, #1
strh r0, [r5, #0x24]
movs r0, #0x80
strb r0, [r6, #6]
strb r7, [r3]
ldrb r0, [r5, #0x14]
lsrs r0, r0, #1
adds r0, #0x5c
adds r1, r5, #0
adds r1, #0x58
ldrb r1, [r1]
cmp r0, r1
bne _080707F8
ldrh r0, [r5, #0x12]
cmp r0, #2
bne _080707F8
ldr r0, _080707F4 @ =gLinkEntity
bl sub_080042B8
b _08070800
.align 2, 0
_080707F0: .4byte gLinkState
_080707F4: .4byte gLinkEntity
_080707F8:
movs r0, #0x97
lsls r0, r0, #2
mov r1, ip
strh r0, [r1, #8]
_08070800:
ldr r0, _08070814 @ =gLinkEntity
bl sub_0806F948
bl sub_08077B2C
adds r0, r5, #0
bl sub_08077698
b _08070BE4
.align 2, 0
_08070814: .4byte gLinkEntity
_08070818:
movs r0, #0x80
lsls r0, r0, #5
ands r0, r1
cmp r0, #0
beq _08070842
adds r1, r5, #0
adds r1, #0x40
movs r0, #0x1e
strb r0, [r1]
movs r0, #0xc
strb r0, [r3]
movs r1, #0
movs r2, #0x24
ldrsh r0, [r5, r2]
cmp r0, #0
bne _0807083A
movs r1, #1
_0807083A:
adds r0, r5, #0
bl sub_08070BEC
b _08070BE4
_08070842:
movs r4, #0x80
lsls r4, r4, #0xc
ands r4, r1
cmp r4, #0
beq _08070852
bl sub_08079938
b _08070BE4
_08070852:
adds r0, r5, #0
bl sub_080085B0
adds r0, r5, #0
adds r0, #0x40
strb r4, [r0]
bl sub_08078EFC
cmp r0, #0
beq _08070868
b _08070BE4
_08070868:
adds r0, r6, #0
adds r0, #0x26
ldrb r0, [r0]
cmp r0, #0
bne _080708AC
ldrb r1, [r6, #2]
movs r2, #0xc0
adds r0, r2, #0
ands r0, r1
cmp r0, #0
bne _080708AC
ldrb r0, [r6, #3]
cmp r0, #0
bne _0807088E
adds r0, r6, #0
adds r0, #0x21
ldrb r0, [r0]
cmp r0, #0
beq _08070892
_0807088E:
strh r2, [r5, #0x24]
b _080708AC
_08070892:
ldrb r0, [r6, #0x1b]
cmp r0, #0
beq _0807089C
movs r0, #0xe0
b _080708AA
_0807089C:
ldrb r0, [r6, #0x1c]
cmp r0, #0
beq _080708A6
movs r0, #0x80
b _080708AA
_080708A6:
movs r0, #0xa0
lsls r0, r0, #1
_080708AA:
strh r0, [r5, #0x24]
_080708AC:
ldr r4, _08070918 @ =gLinkState
ldrb r0, [r4, #6]
movs r1, #0x80
orrs r1, r0
strb r1, [r4, #6]
ldr r0, [r4, #0x30]
ldr r6, _0807091C @ =0x10000002
ands r0, r6
cmp r0, #0
bne _080708C4
bl sub_0807A1B8
_080708C4:
bl sub_08078EFC
cmp r0, #0
beq _080708CE
b _08070BE4
_080708CE:
ldrb r0, [r4, #2]
cmp r0, #0
beq _080708D6
b _080709D8
_080708D6:
ldr r0, [r4, #0x30]
movs r1, #0x80
lsls r1, r1, #3
ands r0, r1
cmp r0, #0
beq _080708E4
b _080709D8
_080708E4:
adds r0, r5, #0
adds r0, #0x42
ldrb r0, [r0]
cmp r0, #0
bne _08070924
bl sub_080782C0
cmp r0, #0
beq _08070924
ldr r0, _08070920 @ =gUnk_02034350
ldrb r0, [r0, #6]
cmp r0, #0
bne _08070902
bl sub_08077B2C
_08070902:
ldr r0, [r4, #0x30]
ands r0, r6
cmp r0, #0
beq _0807090C
b _08070BE4
_0807090C:
bl sub_0807A1B8
bl sub_08078EFC
b _08070BE4
.align 2, 0
_08070918: .4byte gLinkState
_0807091C: .4byte 0x10000002
_08070920: .4byte gUnk_02034350
_08070924:
ldr r0, _0807094C @ =gLinkState
ldr r1, [r0, #0x30]
ldr r2, _08070950 @ =0x00041635
ands r1, r2
adds r0, #0xaa
ldrb r0, [r0]
orrs r1, r0
cmp r1, #0
bne _080709D8
bl sub_08019840
cmp r0, #0xf
bls _08070940
b _08070BE4
_08070940:
lsls r0, r0, #2
ldr r1, _08070954 @ =_08070958
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0807094C: .4byte gLinkState
_08070950: .4byte 0x00041635
_08070954: .4byte _08070958
_08070958: @ jump table
.4byte _08070998 @ case 0
.4byte _08070BE4 @ case 1
.4byte _08070BE4 @ case 2
.4byte _080709A8 @ case 3
.4byte _080709C2 @ case 4
.4byte _08070BE4 @ case 5
.4byte _08070BE4 @ case 6
.4byte _08070BE4 @ case 7
.4byte _08070BE4 @ case 8
.4byte _08070BE4 @ case 9
.4byte _08070BE4 @ case 10
.4byte _08070BE4 @ case 11
.4byte _08070BE4 @ case 12
.4byte _08070BE4 @ case 13
.4byte _08070BE4 @ case 14
.4byte _080709B4 @ case 15
_08070998:
ldr r0, _080709A4 @ =gLinkState
ldrb r1, [r0, #6]
movs r2, #0x80
eors r1, r2
strb r1, [r0, #6]
b _080709D8
.align 2, 0
_080709A4: .4byte gLinkState
_080709A8:
ldr r1, _080709B0 @ =gLinkState
movs r0, #0x80
strb r0, [r1, #6]
b _080709D8
.align 2, 0
_080709B0: .4byte gLinkState
_080709B4:
ldrb r1, [r5, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r5, #0x10]
bl sub_080797EC
b _08070BE4
_080709C2:
ldr r0, _080709D4 @ =gLinkState
ldrb r1, [r0, #6]
movs r2, #0x80
eors r1, r2
strb r1, [r0, #6]
bl sub_080797EC
b _08070BE4
.align 2, 0
_080709D4: .4byte gLinkState
_080709D8:
adds r1, r5, #0
adds r1, #0x3c
movs r0, #0
strb r0, [r1]
adds r6, r5, #0
adds r6, #0x29
ldrb r1, [r6]
subs r0, #8
ands r0, r1
movs r1, #4
orrs r0, r1
strb r0, [r6]
adds r0, r5, #0
bl sub_0807AC54
cmp r0, #0
beq _080709FC
b _08070BE4
_080709FC:
adds r0, r5, #0
bl sub_08077698
bl sub_08078EFC
cmp r0, #0
beq _08070A0C
b _08070BE4
_08070A0C:
bl sub_080792D8
ldr r4, _08070A78 @ =gLinkState
ldrb r1, [r4, #2]
ldrb r0, [r4, #0xa]
orrs r0, r1
cmp r0, #0
bne _08070A32
bl sub_08079550
cmp r0, #0
beq _08070A26
b _08070BE4
_08070A26:
adds r0, r5, #0
bl sub_08078F74
cmp r0, #0
beq _08070A32
b _08070BE4
_08070A32:
adds r0, r5, #0
bl sub_08073904
bl sub_08078EFC
cmp r0, #0
beq _08070A42
b _08070BE4
_08070A42:
ldrb r2, [r4, #2]
cmp r2, #0
beq _08070AAC
adds r1, r4, #0
adds r1, #0xa8
movs r0, #0x14
strb r0, [r1]
movs r0, #0xc0
ands r0, r2
cmp r0, #0
bne _08070A80
movs r0, #7
ands r0, r2
cmp r0, #3
beq _08070A7C
movs r0, #0x20
ands r0, r2
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0
bne _08070A7C
strh r0, [r5, #0x24]
adds r0, r5, #0
bl sub_08008926
b _08070A80
.align 2, 0
_08070A78: .4byte gLinkState
_08070A7C:
movs r0, #0xff
strb r0, [r5, #0x15]
_08070A80:
bl sub_08079E08
adds r0, r5, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _08070A94
b _08070BE4
_08070A94:
ldr r0, _08070AA8 @ =gLinkState
ldrb r0, [r0, #4]
cmp r0, #0
beq _08070A9E
b _08070BE4
_08070A9E:
adds r0, r5, #0
bl sub_080042B8
b _08070BE4
.align 2, 0
_08070AA8: .4byte gLinkState
_08070AAC:
adds r0, r5, #0
adds r0, #0x42
ldrb r1, [r0]
adds r7, r0, #0
cmp r1, #0
beq _08070ABA
b _08070BBC
_08070ABA:
adds r0, r4, #0
adds r0, #0x26
ldrb r0, [r0]
cmp r0, #0
beq _08070AD4
adds r1, r4, #0
adds r1, #0xa8
movs r0, #7
strb r0, [r1]
adds r0, r5, #0
bl sub_0807ACCC
b _08070B56
_08070AD4:
ldr r0, [r4, #0x30]
movs r1, #0x80
lsls r1, r1, #0x12
ands r0, r1
cmp r0, #0
bne _08070AEE
ldrb r0, [r6]
movs r1, #0x39
rsbs r1, r1, #0
ands r1, r0
movs r0, #8
orrs r1, r0
strb r1, [r6]
_08070AEE:
ldrb r1, [r4, #0x1e]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _08070B00
adds r0, r5, #0
bl sub_08008AA0
b _08070B1E
_08070B00:
ldrb r0, [r4, #0x12]
cmp r0, #0x17
bne _08070B0E
adds r0, r5, #0
bl sub_08008926
b _08070B1E
_08070B0E:
cmp r0, #1
bne _08070B18
bl sub_08078F60
b _08070B1E
_08070B18:
adds r0, r5, #0
bl sub_08008AA0
_08070B1E:
ldr r2, _08070BB8 @ =gLinkState
ldrb r1, [r2, #0x1b]
movs r0, #0x10
ands r0, r1
cmp r0, #0
bne _08070B56
ldrb r3, [r2, #0xd]
strb r3, [r5, #0x15]
ldr r0, [r2, #0x30]
movs r1, #0x80
lsls r1, r1, #3
ands r0, r1
cmp r0, #0
beq _08070B56
movs r0, #0xc0
lsls r0, r0, #2
strh r0, [r5, #0x24]
movs r0, #0x80
ands r0, r3
cmp r0, #0
beq _08070B52
ldrb r1, [r5, #0x14]
movs r0, #0xe
ands r0, r1
lsls r0, r0, #2
strb r0, [r5, #0x15]
_08070B52:
bl sub_0807A108
_08070B56:
movs r4, #0
ldr r3, _08070BB8 @ =gLinkState
ldrb r2, [r3, #7]
ldrb r0, [r5, #0x15]
orrs r0, r2
movs r1, #0x80
ands r0, r1
ldrb r1, [r3, #0xa]
orrs r0, r1
cmp r0, #0
bne _08070B8E
movs r0, #0x10
ands r0, r2
cmp r0, #0
bne _08070B8E
movs r4, #1
ldrb r0, [r7]
cmp r0, #0
bne _08070B8E
ldrb r1, [r3, #0x1e]
movs r0, #0x40
ands r0, r1
cmp r0, #0
bne _08070B8C
ldrb r0, [r3, #0x12]
cmp r0, #0x17
beq _08070B8E
_08070B8C:
movs r4, #3
_08070B8E:
adds r0, r5, #0
adds r1, r4, #0
bl sub_08070BEC
adds r0, r5, #0
bl sub_08008AC6
ldrb r0, [r7]
cmp r0, #0
bne _08070BE4
ldr r1, _08070BB8 @ =gLinkState
ldrb r0, [r1, #0xb]
cmp r0, #0
bne _08070BE4
ldrb r0, [r1, #0x12]
cmp r0, #0x1e
beq _08070BE4
adds r0, r5, #0
bl sub_0806F948
b _08070BE4
.align 2, 0
_08070BB8: .4byte gLinkState
_08070BBC:
ldr r0, [r4, #0x2c]
cmp r0, #0
bne _08070BC8
adds r0, r5, #0
bl sub_080042B8
_08070BC8:
adds r0, r4, #0
adds r0, #0x26
ldrb r0, [r0]
cmp r0, #0
beq _08070BE4
ldr r0, _08070BE8 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #7
ands r0, r1
cmp r0, #0
bne _08070BE4
adds r0, r5, #0
bl sub_080A2A64
_08070BE4:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08070BE8: .4byte gUnk_030010A0
thumb_func_start sub_08070BEC
sub_08070BEC: @ 0x08070BEC
push {r4, lr}
adds r4, r1, #0
movs r0, #1
ands r0, r4
cmp r0, #0
beq _08070BFE
bl sub_080797EC
b _08070C02
_08070BFE:
bl sub_08079938
_08070C02:
movs r0, #2
ands r0, r4
cmp r0, #0
beq _08070C0E
bl sub_08079E08
_08070C0E:
pop {r4, pc}
thumb_func_start sub_08070C10
sub_08070C10: @ 0x08070C10
push {lr}
ldr r2, _08070C34 @ =gLinkState
movs r1, #0xff
strb r1, [r2, #0xd]
movs r1, #0x80
strb r1, [r2, #6]
adds r2, #0xa8
movs r1, #0xa
strb r1, [r2]
ldr r2, _08070C38 @ =gUnk_0811BA60
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08070C34: .4byte gLinkState
_08070C38: .4byte gUnk_0811BA60
thumb_func_start sub_08070C3C
sub_08070C3C: @ 0x08070C3C
push {r4, lr}
adds r4, r0, #0
bl sub_08004168
ldr r2, _08070C64 @ =gLinkState
ldr r1, [r2, #0x30]
movs r0, #5
orrs r1, r0
ldr r0, _08070C68 @ =0xFFFFFBFF
ands r1, r0
str r1, [r2, #0x30]
movs r0, #0
strb r0, [r2, #2]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08070C6C
movs r0, #0xdd
lsls r0, r0, #1
b _08070C7E
.align 2, 0
_08070C64: .4byte gLinkState
_08070C68: .4byte 0xFFFFFBFF
_08070C6C:
movs r0, #8
ands r1, r0
cmp r1, #0
beq _08070C7A
movs r0, #0x8b
lsls r0, r0, #3
b _08070C7E
_08070C7A:
movs r0, #0xdc
lsls r0, r0, #1
_08070C7E:
strh r0, [r2, #8]
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
bl sub_08077B2C
bl sub_0807A108
movs r0, #0x7b
bl PlaySFX
movs r0, #0x85
bl PlaySFX
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08070CB4
sub_08070CB4: @ 0x08070CB4
push {r4, r5, lr}
adds r5, r0, #0
bl sub_080042B8
adds r0, r5, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08070D1A
ldr r0, _08070CF4 @ =gUnk_02002A40
adds r0, #0xaa
ldrb r0, [r0]
ldr r4, _08070CF8 @ =gLinkState
cmp r0, #0
beq _08070CFC
ldr r1, [r4, #0x30]
movs r0, #0x80
lsls r0, r0, #8
ands r0, r1
cmp r0, #0
beq _08070CFC
movs r0, #6
rsbs r0, r0, #0
ands r1, r0
str r1, [r4, #0x30]
ldrb r1, [r5, #0x18]
adds r0, #2
ands r0, r1
strb r0, [r5, #0x18]
b _08070D1A
.align 2, 0
_08070CF4: .4byte gUnk_02002A40
_08070CF8: .4byte gLinkState
_08070CFC:
ldr r0, [r4, #0x30]
ldr r1, _08070D1C @ =0xFFFF7FFB
ands r0, r1
str r0, [r4, #0x30]
bl sub_08079458
movs r0, #0
strb r0, [r4, #0xa]
adds r1, r5, #0
adds r1, #0x3d
movs r0, #0x20
strb r0, [r1]
subs r0, #0x22
bl ModHealth
_08070D1A:
pop {r4, r5, pc}
.align 2, 0
_08070D1C: .4byte 0xFFFF7FFB
thumb_func_start sub_08070D20
sub_08070D20: @ 0x08070D20
push {lr}
ldr r2, _08070D34 @ =gUnk_0811BA68
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08070D34: .4byte gUnk_0811BA68
thumb_func_start sub_08070D38
sub_08070D38: @ 0x08070D38
push {r4, lr}
adds r2, r0, #0
ldrb r1, [r2, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r2, #0x10]
ldrb r1, [r2, #0x14]
movs r0, #0xe
ands r0, r1
lsls r0, r0, #2
movs r1, #0x10
eors r0, r1
strb r0, [r2, #0x15]
movs r4, #0
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r2, #0x24]
adds r0, r2, #0
adds r0, #0x42
strb r4, [r0]
ldrb r0, [r2, #0xd]
adds r0, #1
strb r0, [r2, #0xd]
ldr r3, _08070D94 @ =gLinkState
adds r0, r3, #0
adds r0, #0x38
ldrb r0, [r0]
strb r0, [r2, #0xe]
movs r0, #1
strh r0, [r2, #0x12]
ldr r0, [r3, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _08070D98
movs r0, #0x80
lsls r0, r0, #0xa
str r0, [r2, #0x20]
movs r0, #0x8a
lsls r0, r0, #1
strh r0, [r3, #8]
movs r0, #0x10
movs r1, #0
bl sub_08080964
b _08070DA2
.align 2, 0
_08070D94: .4byte gLinkState
_08070D98:
ldr r0, _08070DBC @ =0x00000C18
strh r0, [r3, #8]
movs r0, #0xc0
lsls r0, r0, #9
str r0, [r2, #0x20]
_08070DA2:
ldr r0, _08070DC0 @ =gLinkState
movs r1, #0x80
strb r1, [r0, #2]
movs r0, #0xa6
lsls r0, r0, #1
bl PlaySFX
bl sub_08077B2C
bl sub_08078F60
pop {r4, pc}
.align 2, 0
_08070DBC: .4byte 0x00000C18
_08070DC0: .4byte gLinkState
thumb_func_start sub_08070DC4
sub_08070DC4: @ 0x08070DC4
push {r4, r5, r6, lr}
adds r4, r0, #0
bl sub_080042B8
adds r0, r4, #0
bl sub_080085B0
bl sub_08079E08
bl sub_0807A1B8
bl sub_08078EFC
cmp r0, #0
bne _08070E76
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
bne _08070E76
ldr r6, _08070E18 @ =gLinkState
strb r0, [r6, #2]
bl sub_08078EFC
adds r5, r0, #0
cmp r5, #0
bne _08070E76
bl sub_08079D48
cmp r0, #0
bne _08070E10
adds r0, r6, #0
adds r0, #0x26
ldrb r0, [r0]
cmp r0, #0
beq _08070E1C
_08070E10:
strb r5, [r6, #2]
bl sub_080791D0
b _08070E76
.align 2, 0
_08070E18: .4byte gLinkState
_08070E1C:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
beq _08070E32
movs r0, #0x80
lsls r0, r0, #9
str r0, [r4, #0x20]
b _08070E76
_08070E32:
ldrb r0, [r4, #0x10]
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
ldrb r0, [r6, #0x14]
cmp r0, #0
bne _08070E56
bl sub_08008B22
cmp r0, #0
beq _08070E56
movs r0, #7
strb r0, [r6, #0x11]
bl sub_08079938
bl sub_080791BC
b _08070E76
_08070E56:
movs r0, #1
strh r0, [r4, #0x12]
movs r0, #8
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
ldr r2, _08070E78 @ =gLinkState
ldr r0, [r2, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _08070E76
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r2, #8]
_08070E76:
pop {r4, r5, r6, pc}
.align 2, 0
_08070E78: .4byte gLinkState
thumb_func_start sub_08070E7C
sub_08070E7C: @ 0x08070E7C
push {lr}
ldrb r1, [r0, #0xe]
subs r1, #1
strb r1, [r0, #0xe]
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
cmp r1, #0
bne _08070E94
ldr r0, _08070E98 @ =gLinkState
strb r1, [r0, #2]
bl sub_080791D0
_08070E94:
pop {pc}
.align 2, 0
_08070E98: .4byte gLinkState
thumb_func_start sub_08070E9C
sub_08070E9C: @ 0x08070E9C
push {r4, lr}
adds r4, r0, #0
bl sub_08078EFC
cmp r0, #0
beq _08070EAE
bl sub_08056360
b _08070ED2
_08070EAE:
ldr r1, _08070ED4 @ =gLinkState
adds r2, r1, #0
adds r2, #0x27
movs r0, #4
strb r0, [r2]
adds r1, #0xa8
movs r0, #0x13
strb r0, [r1]
bl sub_0807A1B8
ldr r1, _08070ED8 @ =gUnk_0811BA74
ldrb r0, [r4, #0xd]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
_08070ED2:
pop {r4, pc}
.align 2, 0
_08070ED4: .4byte gLinkState
_08070ED8: .4byte gUnk_0811BA74
thumb_func_start sub_08070EDC
sub_08070EDC: @ 0x08070EDC
push {lr}
adds r2, r0, #0
ldrb r1, [r2, #0x11]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #2
orrs r0, r1
strb r0, [r2, #0x11]
ldr r0, _08070F10 @ =gTextBox
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
beq _08070EFE
movs r0, #1
strb r0, [r2, #0xd]
_08070EFE:
ldr r2, _08070F14 @ =gLinkState
ldr r0, [r2, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _08070F18
bl sub_08079938
b _08070F1C
.align 2, 0
_08070F10: .4byte gTextBox
_08070F14: .4byte gLinkState
_08070F18:
ldr r0, _08070F20 @ =0x00000C18
strh r0, [r2, #8]
_08070F1C:
pop {pc}
.align 2, 0
_08070F20: .4byte 0x00000C18
thumb_func_start sub_08070F24
sub_08070F24: @ 0x08070F24
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
ldr r0, _08070F4C @ =gTextBox
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
bne _08070F4A
ldrb r0, [r4, #0x11]
lsrs r2, r0, #4
movs r1, #0x10
rsbs r1, r1, #0
ands r1, r0
orrs r1, r2
strb r1, [r4, #0x11]
bl sub_080791D0
_08070F4A:
pop {r4, pc}
.align 2, 0
_08070F4C: .4byte gTextBox
thumb_func_start sub_08070F50
sub_08070F50: @ 0x08070F50
push {r4, r5, lr}
adds r4, r0, #0
ldr r0, _08070F9C @ =gLinkState
adds r0, #0xa8
movs r1, #0x15
strb r1, [r0]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
ldr r1, _08070FA0 @ =gUnk_0811BA7C
ldrb r0, [r4, #0xd]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
ldr r5, [r4, #0x54]
cmp r5, #0
beq _08070F9A
adds r0, r4, #0
adds r1, r5, #0
bl sub_0806FA30
ldrh r0, [r4, #0x12]
ldrb r1, [r4, #0x1e]
bl sub_080700C8
ldrb r1, [r0]
adds r2, r5, #0
adds r2, #0x62
strb r1, [r2]
ldrb r1, [r0, #1]
adds r0, r5, #0
adds r0, #0x63
strb r1, [r0]
_08070F9A:
pop {r4, r5, pc}
.align 2, 0
_08070F9C: .4byte gLinkState
_08070FA0: .4byte gUnk_0811BA7C
thumb_func_start sub_08070FA4
sub_08070FA4: @ 0x08070FA4
push {r4, lr}
adds r4, r0, #0
ldrb r1, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
movs r1, #0
movs r0, #4
strb r0, [r4, #0x14]
ldr r3, _08070FE8 @ =gLinkState
ldr r2, [r3, #0x30]
movs r0, #1
orrs r2, r0
str r2, [r3, #0x30]
strb r1, [r3, #2]
movs r0, #0x80
ands r0, r2
cmp r0, #0
bne _08071008
movs r0, #8
ands r2, r0
cmp r2, #0
beq _08070FF0
adds r0, r3, #0
adds r0, #0x38
ldrb r0, [r0]
bl sub_080542AC
ldr r1, _08070FEC @ =0x0000045B
cmp r0, #0
beq _08071004
adds r1, #3
b _08071004
.align 2, 0
_08070FE8: .4byte gLinkState
_08070FEC: .4byte 0x0000045B
_08070FF0:
adds r0, r3, #0
adds r0, #0x38
ldrb r0, [r0]
bl sub_080542AC
ldr r1, _08071018 @ =0x000001B9
cmp r0, #0
beq _08071004
movs r1, #0xb8
lsls r1, r1, #2
_08071004:
ldr r0, _0807101C @ =gLinkState
strh r1, [r0, #8]
_08071008:
movs r0, #1
strb r0, [r4, #0xd]
bl sub_08077B2C
bl sub_08078F60
pop {r4, pc}
.align 2, 0
_08071018: .4byte 0x000001B9
_0807101C: .4byte gLinkState
thumb_func_start sub_08071020
sub_08071020: @ 0x08071020
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
adds r0, r4, #0
adds r0, #0x5a
ldrb r0, [r0]
cmp r0, #0
beq _08071036
movs r0, #2
strb r0, [r4, #0xd]
_08071036:
pop {r4, pc}
thumb_func_start sub_08071038
sub_08071038: @ 0x08071038
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
bl sub_08078EFC
cmp r0, #0
bne _08071078
ldr r0, _0807107C @ =gTextBox
ldrb r0, [r0]
movs r2, #0x7f
ands r2, r0
cmp r2, #0
bne _08071078
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08071078
str r2, [r4, #0x54]
adds r0, r4, #0
adds r0, #0x42
strb r2, [r0]
subs r0, #5
movs r1, #0xf8
strb r1, [r0]
ldr r0, _08071080 @ =gLinkState
strb r2, [r0, #2]
bl sub_080791D0
_08071078:
pop {r4, pc}
.align 2, 0
_0807107C: .4byte gTextBox
_08071080: .4byte gLinkState
thumb_func_start sub_08071084
sub_08071084: @ 0x08071084
push {lr}
ldr r1, _080710A0 @ =gLinkState
adds r1, #0xa8
movs r2, #0xb
strb r2, [r1]
ldr r2, _080710A4 @ =gUnk_0811BA88
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080710A0: .4byte gLinkState
_080710A4: .4byte gUnk_0811BA88
thumb_func_start sub_080710A8
sub_080710A8: @ 0x080710A8
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xd]
adds r0, #1
movs r2, #0
strb r0, [r4, #0xd]
ldr r1, _080710EC @ =gLinkState
ldr r3, [r1, #0x30]
movs r0, #1
orrs r3, r0
ldr r0, _080710F0 @ =0xFFFFF3FF
ands r3, r0
str r3, [r1, #0x30]
strb r2, [r1, #0xc]
ldrb r2, [r1, #5]
ldrb r0, [r1, #0x1b]
orrs r0, r2
adds r5, r1, #0
cmp r0, #0
bne _080710FA
movs r0, #0x80
ands r3, r0
cmp r3, #0
bne _080710FA
bl sub_08077B2C
ldr r0, [r5, #0x30]
movs r1, #8
ands r0, r1
cmp r0, #0
beq _080710F4
movs r0, #0x84
lsls r0, r0, #3
b _080710F8
.align 2, 0
_080710EC: .4byte gLinkState
_080710F0: .4byte 0xFFFFF3FF
_080710F4:
movs r0, #0x81
lsls r0, r0, #4
_080710F8:
strh r0, [r5, #8]
_080710FA:
movs r0, #0
strb r0, [r5, #0x1e]
ldrb r1, [r4, #0x14]
movs r0, #0xe
ands r0, r1
lsls r0, r0, #2
strb r0, [r4, #0x15]
movs r0, #1
bl sub_08079FC4
lsls r0, r0, #4
subs r0, #4
lsls r0, r0, #0xc
str r0, [r4, #0x20]
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r4, #0x24]
bl sub_0807A108
movs r0, #0x7c
bl PlaySFX
movs r0, #0x78
bl PlaySFX
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08071130
sub_08071130: @ 0x08071130
push {r4, r5, r6, lr}
adds r5, r0, #0
bl sub_08078EFC
cmp r0, #0
bne _08071206
ldr r6, _080711B4 @ =gLinkState
ldrb r0, [r6, #0x1b]
cmp r0, #0
bne _08071158
adds r0, r5, #0
bl sub_080042B8
adds r0, r5, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _08071206
_08071158:
adds r0, r5, #0
bl sub_0806F69C
movs r1, #0x80
lsls r1, r1, #6
adds r0, r5, #0
bl sub_08003FC4
cmp r0, #0
bne _08071206
strb r0, [r6, #2]
adds r0, r5, #0
bl sub_0800455E
ldr r0, [r5, #0x74]
cmp r0, #0
beq _0807117E
bl sub_0800455E
_0807117E:
adds r0, r5, #0
movs r1, #7
bl sub_08008790
ldrb r0, [r6, #0x14]
cmp r0, #0
bne _08071206
bl sub_0807A1B8
bl sub_08078EFC
adds r4, r0, #0
cmp r4, #0
bne _08071206
bl sub_08079D48
cmp r0, #0
beq _080711AC
adds r0, r6, #0
adds r0, #0x26
ldrb r0, [r0]
cmp r0, #0
beq _080711B8
_080711AC:
strb r4, [r6, #2]
bl sub_080791D0
b _08071206
.align 2, 0
_080711B4: .4byte gLinkState
_080711B8:
movs r0, #6
strb r0, [r5, #0xe]
ldrb r1, [r6, #5]
ldrb r0, [r6, #0xb]
orrs r0, r1
cmp r0, #0
bne _080711EE
ldr r1, [r6, #0x30]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _080711EE
movs r0, #8
ands r1, r0
cmp r1, #0
beq _080711E0
ldr r0, _080711DC @ =0x00000424
b _080711E4
.align 2, 0
_080711DC: .4byte 0x00000424
_080711E0:
movs r0, #0x82
lsls r0, r0, #4
_080711E4:
strh r0, [r6, #8]
adds r1, r5, #0
adds r1, #0x58
movs r0, #0xff
strb r0, [r1]
_080711EE:
ldrb r0, [r5, #0xd]
adds r0, #1
movs r4, #0
strb r0, [r5, #0xd]
bl sub_08078F60
adds r0, r5, #0
adds r0, #0x42
strb r4, [r0]
movs r0, #0x7d
bl PlaySFX
_08071206:
pop {r4, r5, r6, pc}
thumb_func_start sub_08071208
sub_08071208: @ 0x08071208
push {r4, lr}
adds r4, r0, #0
ldr r2, _08071244 @ =gLinkState
ldrb r1, [r2, #5]
ldrb r0, [r2, #0xb]
orrs r0, r1
cmp r0, #0
bne _08071228
ldr r0, [r2, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _08071228
adds r0, r4, #0
bl sub_080042B8
_08071228:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _08071240
ldr r1, _08071244 @ =gLinkState
movs r0, #0
strb r0, [r1, #2]
bl sub_080791D0
_08071240:
pop {r4, pc}
.align 2, 0
_08071244: .4byte gLinkState
thumb_func_start sub_08071248
sub_08071248: @ 0x08071248
push {lr}
ldr r3, _08071274 @ =gLinkState
adds r2, r3, #0
adds r2, #0xa8
movs r1, #0x16
strb r1, [r2]
ldr r1, [r3, #0x30]
movs r2, #4
orrs r1, r2
str r1, [r3, #0x30]
ldrb r2, [r0, #0x10]
movs r1, #0x7f
ands r1, r2
strb r1, [r0, #0x10]
ldr r2, _08071278 @ =gUnk_0811BA94
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08071274: .4byte gLinkState
_08071278: .4byte gUnk_0811BA94
thumb_func_start sub_0807127C
sub_0807127C: @ 0x0807127C
push {r4, r5, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xd]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
subs r0, #0x3a
ands r0, r1
strb r0, [r2]
ldr r5, _080712AC @ =gLinkState
ldr r1, [r5, #0x30]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080712B4
movs r0, #0x3c
strb r0, [r4, #0xe]
ldr r0, _080712B0 @ =0x00000C19
strh r0, [r5, #8]
movs r0, #0x84
bl PlaySFX
b _080712E4
.align 2, 0
_080712AC: .4byte gLinkState
_080712B0: .4byte 0x00000C19
_080712B4:
movs r0, #0x80
lsls r0, r0, #9
ands r1, r0
cmp r1, #0
bne _080712C4
adds r0, r4, #0
bl sub_08004168
_080712C4:
adds r0, r4, #0
movs r1, #0xb
movs r2, #0
bl CreateFX
ldr r0, [r5, #0x30]
movs r1, #8
ands r0, r1
cmp r0, #0
bne _080712E0
ldr r0, _080712DC @ =0x0000072C
b _080712E2
.align 2, 0
_080712DC: .4byte 0x0000072C
_080712E0:
ldr r0, _080712EC @ =0x0000044C
_080712E2:
strh r0, [r5, #8]
_080712E4:
bl sub_08077B2C
pop {r4, r5, pc}
.align 2, 0
_080712EC: .4byte 0x0000044C
thumb_func_start sub_080712F0
sub_080712F0: @ 0x080712F0
push {r4, r5, lr}
adds r4, r0, #0
bl sub_080042B8
movs r5, #0
ldr r3, _08071314 @ =gLinkState
ldr r0, [r3, #0x30]
movs r2, #0x80
ands r0, r2
cmp r0, #0
beq _08071318
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0807133E
b _08071342
.align 2, 0
_08071314: .4byte gLinkState
_08071318:
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
adds r0, r2, #0
ands r0, r1
cmp r0, #0
beq _0807133E
adds r0, r4, #0
adds r0, #0x58
ldrb r0, [r0]
cmp r0, #0xce
beq _0807133C
ldr r0, _08071338 @ =0x000002CE
strh r0, [r3, #8]
b _0807133E
.align 2, 0
_08071338: .4byte 0x000002CE
_0807133C:
movs r5, #1
_0807133E:
cmp r5, #0
beq _0807137A
_08071342:
adds r1, r4, #0
adds r1, #0x42
movs r0, #0
strb r0, [r1]
subs r1, #5
movs r0, #0x20
strb r0, [r1]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
subs r0, #0x59
ands r0, r1
movs r1, #8
orrs r0, r1
strb r0, [r2]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
ldr r2, _0807137C @ =gLinkState
ldr r0, [r2, #0x30]
movs r1, #5
rsbs r1, r1, #0
ands r0, r1
str r0, [r2, #0x30]
bl sub_08079458
_0807137A:
pop {r4, r5, pc}
.align 2, 0
_0807137C: .4byte gLinkState
thumb_func_start sub_08071380
sub_08071380: @ 0x08071380
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, _080713E8 @ =gLinkState
adds r1, r5, #0
adds r1, #0xa8
movs r0, #0xe
strb r0, [r1]
ldr r1, _080713EC @ =gUnk_0811BA9C
ldrb r0, [r4, #0xd]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
ldrb r0, [r4, #0xd]
cmp r0, #7
beq _080713FC
cmp r0, #2
bls _080713FC
ldr r0, [r5, #0x30]
movs r1, #0x20
ands r0, r1
cmp r0, #0
beq _080713FC
ldr r0, _080713F0 @ =gUnk_03000FF0
ldrh r1, [r0, #2]
movs r0, #0x81
lsls r0, r0, #1
ands r0, r1
cmp r0, #0
beq _080713FC
bl sub_08052660
cmp r0, #0
bne _080713D0
ldr r0, _080713F4 @ =gUnk_02033A90
ldrb r0, [r0, #0x17]
cmp r0, #3
bne _080713F8
_080713D0:
movs r0, #7
strb r0, [r4, #0xd]
movs r0, #0x1e
strb r0, [r4, #0xe]
movs r0, #7
movs r1, #0x10
bl DoFade
movs r0, #0xf8
bl PlaySFX
b _080713FC
.align 2, 0
_080713E8: .4byte gLinkState
_080713EC: .4byte gUnk_0811BA9C
_080713F0: .4byte gUnk_03000FF0
_080713F4: .4byte gUnk_02033A90
_080713F8:
bl sub_0804ACF8
_080713FC:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08071400
sub_08071400: @ 0x08071400
push {r4, r5, lr}
adds r4, r0, #0
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
movs r1, #0
strb r0, [r4, #0x10]
adds r0, r4, #0
adds r0, #0x42
strb r1, [r0]
ldr r0, _0807149C @ =gUnk_02033A90
ldrh r3, [r0, #0x12]
ldrh r5, [r0, #0x14]
movs r0, #0x2e
ldrsh r2, [r4, r0]
cmp r2, r3
bne _0807142A
movs r1, #0x32
ldrsh r0, [r4, r1]
cmp r0, r5
beq _08071444
_0807142A:
movs r0, #0x32
ldrsh r1, [r4, r0]
adds r0, r2, #0
adds r2, r3, #0
adds r3, r5, #0
bl sub_080045D4
strb r0, [r4, #0x15]
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r4, #0x24]
bl sub_08079E08
_08071444:
adds r0, r4, #0
bl sub_08073904
adds r0, r4, #0
bl sub_080042B8
ldr r2, _080714A0 @ =gLinkState
ldrb r0, [r2, #2]
cmp r0, #0
bne _0807147C
ldr r0, [r2, #0x30]
movs r1, #0x20
orrs r0, r1
str r0, [r2, #0x30]
movs r0, #1
strb r0, [r4, #0xd]
movs r0, #4
strb r0, [r4, #0x14]
ldrb r1, [r4, #0x18]
subs r0, #0x45
ands r0, r1
strb r0, [r4, #0x18]
ldr r0, _0807149C @ =gUnk_02033A90
ldrb r0, [r0, #0x17]
cmp r0, #4
bne _0807147C
ldr r0, _080714A4 @ =0x0000052C
strh r0, [r2, #8]
_0807147C:
movs r0, #8
strb r0, [r4, #0xe]
ldr r0, _0807149C @ =gUnk_02033A90
ldrb r0, [r0, #0x17]
cmp r0, #3
beq _0807149A
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r2]
_0807149A:
pop {r4, r5, pc}
.align 2, 0
_0807149C: .4byte gUnk_02033A90
_080714A0: .4byte gLinkState
_080714A4: .4byte 0x0000052C
thumb_func_start sub_080714A8
sub_080714A8: @ 0x080714A8
push {r4, lr}
adds r4, r0, #0
ldr r0, _08071524 @ =gUnk_02033A90
ldrb r0, [r0, #0x17]
cmp r0, #5
bgt _080714BE
cmp r0, #4
blt _080714BE
ldr r0, _08071528 @ =gLinkEntity
bl sub_0806F948
_080714BE:
ldr r3, _0807152C @ =gLinkState
ldrb r1, [r3, #0xd]
movs r0, #0x84
ands r0, r1
cmp r0, #0
bne _0807153E
ldrb r0, [r4, #0x15]
cmp r0, r1
beq _080714D4
movs r0, #8
strb r0, [r4, #0xe]
_080714D4:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _08071538
ldrb r0, [r3, #0xd]
strb r0, [r4, #0x15]
lsls r0, r0, #0x18
lsrs r0, r0, #0x1a
strb r0, [r4, #0x14]
movs r0, #0x80
lsls r0, r0, #0xa
str r0, [r4, #0x20]
movs r1, #0
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r4, #0x24]
movs r0, #9
strb r0, [r4, #0xc]
movs r0, #7
strb r0, [r4, #0xd]
strb r1, [r4, #0xf]
ldr r1, [r3, #0x30]
movs r0, #8
ands r0, r1
ldr r4, _08071530 @ =0x0000080C
adds r2, r4, #0
cmp r0, #0
beq _08071516
ldr r0, _08071534 @ =0x0000041C
adds r2, r0, #0
_08071516:
strh r2, [r3, #8]
movs r0, #0x21
rsbs r0, r0, #0
ands r1, r0
str r1, [r3, #0x30]
b _0807156A
.align 2, 0
_08071524: .4byte gUnk_02033A90
_08071528: .4byte gLinkEntity
_0807152C: .4byte gLinkState
_08071530: .4byte 0x0000080C
_08071534: .4byte 0x0000041C
_08071538:
ldrb r0, [r3, #0xd]
strb r0, [r4, #0x15]
b _08071542
_0807153E:
movs r0, #8
strb r0, [r4, #0xe]
_08071542:
ldr r0, _0807155C @ =gUnk_02033A90
ldrb r0, [r0, #0x17]
cmp r0, #4
bne _08071560
adds r0, r4, #0
adds r0, #0x5a
ldrb r0, [r0]
cmp r0, #0
bne _08071566
adds r0, r4, #0
bl sub_080042B8
b _0807156A
.align 2, 0
_0807155C: .4byte gUnk_02033A90
_08071560:
adds r0, r4, #0
bl sub_08077698
_08071566:
bl sub_08079938
_0807156A:
pop {r4, pc}
thumb_func_start sub_0807156C
sub_0807156C: @ 0x0807156C
push {lr}
ldr r2, _080715A0 @ =gRoomControls
movs r1, #0
str r1, [r2, #0x30]
ldr r2, _080715A4 @ =gUnk_02034490
movs r1, #1
strb r1, [r2]
movs r1, #3
strb r1, [r0, #0xd]
movs r1, #0x1e
strb r1, [r0, #0xf]
ldr r2, _080715A8 @ =gLinkState
movs r1, #0xe7
lsls r1, r1, #3
strh r1, [r2, #8]
movs r1, #6
movs r2, #1
movs r3, #0
bl CreateObjectWithParent
bl sub_08077B20
bl sub_0805E544
pop {pc}
.align 2, 0
_080715A0: .4byte gRoomControls
_080715A4: .4byte gUnk_02034490
_080715A8: .4byte gLinkState
thumb_func_start sub_080715AC
sub_080715AC: @ 0x080715AC
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xf]
cmp r0, #0
bne _080715CC
adds r0, r4, #0
bl sub_080042B8
ldr r0, _080715D0 @ =gLinkState
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
beq _080715CC
movs r0, #4
strb r0, [r4, #0xd]
_080715CC:
pop {r4, pc}
.align 2, 0
_080715D0: .4byte gLinkState
thumb_func_start sub_080715D4
sub_080715D4: @ 0x080715D4
push {lr}
adds r3, r0, #0
movs r2, #0
movs r0, #5
strb r0, [r3, #0xd]
movs r0, #0x29
adds r0, r0, r3
mov ip, r0
ldrb r1, [r0]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
mov r1, ip
strb r0, [r1]
strb r2, [r3, #0xf]
ldrb r0, [r3, #0x19]
movs r1, #3
orrs r0, r1
strb r0, [r3, #0x19]
adds r0, r3, #0
adds r0, #0x80
movs r2, #0x80
lsls r2, r2, #1
str r2, [r0]
adds r0, #4
str r2, [r0]
adds r0, r3, #0
adds r1, r2, #0
movs r3, #0
bl sub_0805EC9C
ldr r2, _08071628 @ =gLinkState
ldr r0, _0807162C @ =0x000002C3
strh r0, [r2, #8]
ldr r0, [r2, #0x30]
movs r1, #0x80
orrs r0, r1
str r0, [r2, #0x30]
ldr r0, _08071630 @ =0x0000016F
bl PlaySFX
pop {pc}
.align 2, 0
_08071628: .4byte gLinkState
_0807162C: .4byte 0x000002C3
_08071630: .4byte 0x0000016F
thumb_func_start sub_08071634
sub_08071634: @ 0x08071634
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r5, r0, #0
adds r0, #0x81
ldrb r0, [r0]
cmp r0, #0
beq _08071654
adds r1, r5, #0
adds r1, #0x80
ldr r0, [r1]
adds r0, #0x80
lsls r0, r0, #0x14
lsrs r7, r0, #0x17
adds r4, r1, #0
b _0807166A
_08071654:
adds r4, r5, #0
adds r4, #0x80
ldrb r1, [r4]
lsrs r1, r1, #6
movs r0, #3
eors r1, r0
adds r1, #1
movs r0, #0x10
bl __divsi3
asrs r7, r0, #1
_0807166A:
adds r0, r5, #0
adds r0, #0x84
ldr r3, [r0]
movs r1, #0x80
lsls r1, r1, #1
adds r2, r0, #0
cmp r3, r1
bls _08071684
adds r0, r3, #0
adds r0, #0x80
lsls r0, r0, #0x14
lsrs r3, r0, #0x17
b _08071694
_08071684:
cmp r3, r1
bne _0807168C
movs r3, #0x10
b _08071694
_0807168C:
ldr r1, _080716B0 @ =gUnk_0811BABC
lsrs r0, r3, #5
adds r0, r0, r1
ldrb r3, [r0]
_08071694:
movs r0, #0x80
lsls r0, r0, #9
mov r8, r0
adds r0, r5, #0
adds r0, #0x5a
ldrb r0, [r0]
cmp r0, #2
beq _080716EA
cmp r0, #2
bgt _080716B4
cmp r0, #1
beq _080716BA
b _08071754
.align 2, 0
_080716B0: .4byte gUnk_0811BABC
_080716B4:
cmp r0, #3
beq _0807171E
b _08071754
_080716BA:
movs r1, #0x29
adds r1, r1, r5
mov ip, r1
ldrb r1, [r1]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
mov r1, ip
strb r0, [r1]
ldr r0, [r4]
cmp r0, #0x80
bls _080716D6
subs r0, r0, r7
str r0, [r4]
_080716D6:
lsls r1, r3, #1
ldr r0, [r2]
adds r0, r0, r1
str r0, [r2]
mov r0, r8
lsls r1, r0, #1
ldr r0, [r5, #0x30]
adds r0, r0, r1
str r0, [r5, #0x30]
b _08071754
_080716EA:
ldr r0, [r4]
adds r0, r0, r7
str r0, [r4]
ldr r1, [r2]
movs r6, #0x80
lsls r6, r6, #1
cmp r1, r6
bls _08071710
ldr r0, _0807170C @ =0x0000017F
cmp r1, r0
bhi _08071702
lsrs r3, r3, #1
_08071702:
subs r0, r1, r3
cmp r0, #0xff
bhi _08071716
str r6, [r2]
b _08071718
.align 2, 0
_0807170C: .4byte 0x0000017F
_08071710:
cmp r1, #0x80
bls _08071718
subs r0, r1, r3
_08071716:
str r0, [r2]
_08071718:
ldr r0, [r5, #0x34]
mov r1, r8
b _08071750
_0807171E:
ldr r0, [r4]
ldr r6, _08071740 @ =0x0000033F
cmp r0, r6
bhi _0807172A
adds r0, r0, r7
str r0, [r4]
_0807172A:
ldr r1, [r2]
cmp r1, r6
bls _08071744
movs r0, #8
strb r0, [r5, #0xe]
movs r0, #0x1e
strb r0, [r5, #0xf]
movs r0, #6
strb r0, [r5, #0xd]
b _0807174A
.align 2, 0
_08071740: .4byte 0x0000033F
_08071744:
lsls r0, r3, #1
adds r0, r1, r0
str r0, [r2]
_0807174A:
mov r0, r8
lsls r1, r0, #1
ldr r0, [r5, #0x34]
_08071750:
subs r0, r0, r1
str r0, [r5, #0x34]
_08071754:
ldr r1, [r4]
ldr r2, [r2]
adds r0, r5, #0
movs r3, #0
bl sub_0805EC9C
adds r0, r5, #0
bl sub_080042B8
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0807176C
sub_0807176C: @ 0x0807176C
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
cmp r0, #0
bne _080717C6
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
bne _080717CA
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
ldr r1, _080717AC @ =gUnk_02033A90
ldrb r0, [r1, #0x17]
cmp r0, #3
bne _080717B0
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _080717CA
adds r0, r4, #0
bl sub_080717F8
b _080717CA
.align 2, 0
_080717AC: .4byte gUnk_02033A90
_080717B0:
cmp r0, #6
bne _080717C0
ldr r0, _080717BC @ =gUnk_0813AB58
bl sub_08080840
b _080717CA
.align 2, 0
_080717BC: .4byte gUnk_0813AB58
_080717C0:
movs r0, #1
strb r0, [r1, #0x19]
b _080717CA
_080717C6:
subs r0, #1
strb r0, [r4, #0xe]
_080717CA:
pop {r4, pc}
thumb_func_start sub_080717CC
sub_080717CC: @ 0x080717CC
push {lr}
adds r1, r0, #0
ldr r0, _080717E4 @ =gUnk_03000FD0
ldrb r0, [r0]
cmp r0, #0
bne _080717F4
ldrb r0, [r1, #0xe]
cmp r0, #0
beq _080717E8
subs r0, #1
strb r0, [r1, #0xe]
b _080717F4
.align 2, 0
_080717E4: .4byte gUnk_03000FD0
_080717E8:
adds r0, r1, #0
bl sub_080717F8
movs r0, #0x10
bl sub_080500F4
_080717F4:
pop {pc}
.align 2, 0
thumb_func_start sub_080717F8
sub_080717F8: @ 0x080717F8
push {r4, lr}
ldr r2, _08071850 @ =gUnk_02033A90
ldrb r1, [r2, #0x16]
lsls r1, r1, #1
strb r1, [r0, #0x14]
ldr r3, _08071854 @ =gUnk_0811BAC4
ldrb r1, [r2, #0x16]
lsls r1, r1, #2
adds r1, r1, r3
ldrh r1, [r1]
ldrh r4, [r2, #0x12]
adds r1, r1, r4
movs r4, #0
strh r1, [r0, #0x2e]
ldrb r1, [r2, #0x16]
lsls r1, r1, #1
adds r1, #1
lsls r1, r1, #1
adds r1, r1, r3
ldrh r1, [r1]
ldrh r3, [r2, #0x14]
adds r1, r1, r3
strh r1, [r0, #0x32]
movs r1, #0xb4
strb r1, [r2, #0x1a]
ldr r1, _08071858 @ =gUnk_02034490
strb r4, [r1]
movs r1, #9
strb r1, [r0, #0xc]
strb r4, [r0, #0xd]
ldr r3, _0807185C @ =gLinkState
ldr r1, [r3, #0x30]
movs r2, #0x21
rsbs r2, r2, #0
ands r1, r2
movs r2, #0x80
orrs r1, r2
str r1, [r3, #0x30]
bl sub_0805EC60
bl UnfreezeTime
pop {r4, pc}
.align 2, 0
_08071850: .4byte gUnk_02033A90
_08071854: .4byte gUnk_0811BAC4
_08071858: .4byte gUnk_02034490
_0807185C: .4byte gLinkState
thumb_func_start sub_08071860
sub_08071860: @ 0x08071860
push {r4, lr}
adds r4, r0, #0
bl sub_08078EFC
cmp r0, #0
beq _08071876
bl sub_08056360
bl sub_08071A6C
b _08071896
_08071876:
ldr r0, _08071898 @ =gLinkState
adds r0, #0xa8
movs r1, #0x13
strb r1, [r0]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
ldr r1, _0807189C @ =gUnk_0811BAD4
ldrb r0, [r4, #0xd]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
_08071896:
pop {r4, pc}
.align 2, 0
_08071898: .4byte gLinkState
_0807189C: .4byte gUnk_0811BAD4
thumb_func_start sub_080718A0
sub_080718A0: @ 0x080718A0
push {r4, r5, lr}
adds r4, r0, #0
bl sub_08077B2C
ldr r0, _080718EC @ =gUnk_03000B80
adds r0, #0x63
movs r1, #0
strb r1, [r0]
adds r0, r4, #0
adds r0, #0x3d
strb r1, [r0]
ldr r1, _080718F0 @ =gUnk_03003DC0
movs r2, #6
movs r0, #6
strb r0, [r1]
ldrb r1, [r4, #0x11]
subs r0, #0x16
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x11]
ldr r5, _080718F4 @ =gLinkState
ldr r0, [r5, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
beq _080718F8
movs r0, #2
strb r0, [r4, #0xd]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
subs r0, #0x3b
ands r0, r1
strb r0, [r2]
bl sub_08052BB8
b _08071938
.align 2, 0
_080718EC: .4byte gUnk_03000B80
_080718F0: .4byte gUnk_03003DC0
_080718F4: .4byte gLinkState
_080718F8:
ldrb r0, [r5, #2]
cmp r0, #0
bne _08071928
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
ldrb r0, [r4, #0x14]
cmp r0, #2
bne _08071914
ldr r0, _08071910 @ =0x000003CA
b _08071916
.align 2, 0
_08071910: .4byte 0x000003CA
_08071914:
ldr r0, _08071924 @ =0x000003C6
_08071916:
strh r0, [r5, #8]
ldrb r1, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
b _08071938
.align 2, 0
_08071924: .4byte 0x000003C6
_08071928:
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
bne _08071938
strb r0, [r5, #2]
_08071938:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0807193C
sub_0807193C: @ 0x0807193C
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08071986
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
adds r0, r4, #0
movs r1, #6
movs r2, #0
movs r3, #0
bl CreateObjectWithParent
str r0, [r4, #0x54]
cmp r0, #0
beq _08071986
ldrb r0, [r4, #0x14]
cmp r0, #2
bne _0807197C
ldr r1, _08071978 @ =gLinkState
movs r0, #0xf3
lsls r0, r0, #2
b _08071980
.align 2, 0
_08071978: .4byte gLinkState
_0807197C:
ldr r1, _08071988 @ =gLinkState
ldr r0, _0807198C @ =0x000003C7
_08071980:
strh r0, [r1, #8]
bl sub_08052BB8
_08071986:
pop {r4, pc}
.align 2, 0
_08071988: .4byte gLinkState
_0807198C: .4byte 0x000003C7
thumb_func_start sub_08071990
sub_08071990: @ 0x08071990
push {r4, lr}
adds r2, r0, #0
ldr r0, _080719C0 @ =gTextBox
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
bne _080719E2
ldrb r0, [r2, #0xd]
adds r0, #1
strb r0, [r2, #0xd]
ldr r3, _080719C4 @ =gLinkState
ldr r0, [r3, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _080719D8
ldrb r0, [r2, #0x14]
cmp r0, #2
bne _080719CC
ldr r0, _080719C8 @ =0x000003CD
strh r0, [r3, #8]
b _08071A4A
.align 2, 0
_080719C0: .4byte gTextBox
_080719C4: .4byte gLinkState
_080719C8: .4byte 0x000003CD
_080719CC:
ldr r0, _080719D4 @ =0x000003C9
strh r0, [r3, #8]
b _08071A4A
.align 2, 0
_080719D4: .4byte 0x000003C9
_080719D8:
bl sub_08071A6C
bl sub_08079258
b _08071A4A
_080719E2:
ldr r4, _08071A20 @ =gLinkState
ldr r0, [r4, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _08071A4A
ldrb r0, [r2, #0x14]
movs r3, #0
cmp r0, #2
bne _080719F8
movs r3, #4
_080719F8:
ldr r0, [r2, #0x54]
ldrb r0, [r0, #0xe]
cmp r0, #0
beq _08071A24
adds r0, r3, #0
adds r0, #0xc8
adds r1, r2, #0
adds r1, #0x58
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldrb r1, [r1]
cmp r0, r1
beq _08071A44
movs r1, #0xf2
lsls r1, r1, #2
adds r0, r1, #0
adds r0, r3, r0
strh r0, [r4, #8]
b _08071A4A
.align 2, 0
_08071A20: .4byte gLinkState
_08071A24:
adds r0, r3, #0
adds r0, #0xc7
adds r1, r2, #0
adds r1, #0x58
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldrb r1, [r1]
cmp r0, r1
beq _08071A44
ldr r1, _08071A40 @ =0x000003C7
adds r0, r3, r1
strh r0, [r4, #8]
b _08071A4A
.align 2, 0
_08071A40: .4byte 0x000003C7
_08071A44:
adds r0, r2, #0
bl sub_080042B8
_08071A4A:
pop {r4, pc}
thumb_func_start sub_08071A4C
sub_08071A4C: @ 0x08071A4C
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
adds r4, #0x5a
ldrb r1, [r4]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08071A68
bl sub_08071A6C
bl sub_0807921C
_08071A68:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08071A6C
sub_08071A6C: @ 0x08071A6C
ldr r1, _08071A84 @ =gUnk_03003DC0
movs r0, #0
strb r0, [r1]
ldr r3, _08071A88 @ =gLinkEntity
ldrb r1, [r3, #0x11]
lsrs r2, r1, #4
subs r0, #0x10
ands r0, r1
orrs r0, r2
strb r0, [r3, #0x11]
bx lr
.align 2, 0
_08071A84: .4byte gUnk_03003DC0
_08071A88: .4byte gLinkEntity
thumb_func_start sub_08071A8C
sub_08071A8C: @ 0x08071A8C
push {lr}
ldr r1, _08071AA8 @ =gLinkState
adds r1, #0xa8
movs r2, #0x19
strb r2, [r1]
ldr r2, _08071AAC @ =gUnk_0811BAE4
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08071AA8: .4byte gLinkState
_08071AAC: .4byte gUnk_0811BAE4
thumb_func_start sub_08071AB0
sub_08071AB0: @ 0x08071AB0
push {r4, lr}
adds r3, r0, #0
ldrb r0, [r3, #0xd]
adds r0, #1
strb r0, [r3, #0xd]
ldr r1, _08071AD8 @ =gLinkState
ldr r2, [r1, #0x30]
movs r0, #1
orrs r2, r0
str r2, [r1, #0x30]
ldrb r4, [r3, #0xa]
cmp r4, #1
bne _08071ADC
movs r1, #0
movs r0, #0
strh r0, [r3, #0x24]
strb r1, [r3, #0xe]
strb r4, [r3, #0xf]
b _08071AE8
.align 2, 0
_08071AD8: .4byte gLinkState
_08071ADC:
movs r0, #0x80
ands r2, r0
cmp r2, #0
beq _08071AE6
movs r0, #0x40
_08071AE6:
strh r0, [r3, #0x24]
_08071AE8:
adds r0, r3, #0
bl sub_08071AF0
pop {r4, pc}
thumb_func_start sub_08071AF0
sub_08071AF0: @ 0x08071AF0
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, _08071B34 @ =gLinkState
adds r0, r5, #0
adds r0, #0x80
movs r1, #0
strh r1, [r0]
adds r0, r4, #0
bl sub_080042B8
ldrb r0, [r4, #0xa]
cmp r0, #1
bne _08071B44
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _08071B58
ldr r0, _08071B38 @ =gUnk_0811BAF0
ldrb r1, [r4, #0xe]
lsls r1, r1, #2
adds r1, r1, r0
ldrb r2, [r1]
adds r0, r2, #0
cmp r0, #0xff
beq _08071B3C
strb r2, [r4, #0xf]
ldrh r0, [r1, #2]
strh r0, [r4, #0x24]
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
b _08071B58
.align 2, 0
_08071B34: .4byte gLinkState
_08071B38: .4byte gUnk_0811BAF0
_08071B3C:
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
b _08071B5C
_08071B44:
ldrb r0, [r5, #6]
subs r0, #1
strb r0, [r5, #6]
movs r1, #0x7f
ands r0, r1
cmp r0, #0
bne _08071B58
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
_08071B58:
bl sub_08079E08
_08071B5C:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08071B60
sub_08071B60: @ 0x08071B60
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, _08071BAC @ =gLinkState
movs r2, #0
movs r0, #2
strb r0, [r5, #6]
ldr r0, [r5, #0x30]
movs r1, #2
rsbs r1, r1, #0
ands r0, r1
str r0, [r5, #0x30]
strb r2, [r4, #0xa]
adds r0, r4, #0
adds r0, #0x42
strb r2, [r0]
adds r0, r4, #0
bl sub_080728AC
movs r0, #6
strb r0, [r4, #0xf]
ldr r0, [r5, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _08071BA8
movs r0, #0x82
lsls r0, r0, #1
strh r0, [r5, #8]
movs r0, #3
strh r0, [r4, #0x12]
ldrb r1, [r4, #0x14]
lsrs r1, r1, #1
adds r1, #0x3c
adds r0, r4, #0
bl sub_080042AC
_08071BA8:
pop {r4, r5, pc}
.align 2, 0
_08071BAC: .4byte gLinkState
thumb_func_start sub_08071BB0
sub_08071BB0: @ 0x08071BB0
push {lr}
ldrb r2, [r0, #0x10]
movs r1, #0x7f
ands r1, r2
strb r1, [r0, #0x10]
ldr r2, _08071BD4 @ =gUnk_0811BB2C
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
ldr r0, _08071BD8 @ =gLinkState
adds r0, #0xa8
movs r1, #0x12
strb r1, [r0]
pop {pc}
.align 2, 0
_08071BD4: .4byte gUnk_0811BB2C
_08071BD8: .4byte gLinkState
thumb_func_start sub_08071BDC
sub_08071BDC: @ 0x08071BDC
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, _08071C10 @ =gLinkState
ldr r0, [r5, #0x30]
movs r1, #0x88
lsls r1, r1, #1
ands r0, r1
cmp r0, #0
bne _08071C9C
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
beq _08071C1C
ldr r0, [r5, #0x30]
movs r1, #8
ands r0, r1
cmp r0, #0
beq _08071C14
movs r0, #0x84
lsls r0, r0, #3
strh r0, [r5, #8]
b _08071C9C
.align 2, 0
_08071C10: .4byte gLinkState
_08071C14:
movs r0, #0x81
lsls r0, r0, #4
strh r0, [r5, #8]
b _08071C9C
_08071C1C:
strb r0, [r5, #0xc]
ldr r1, [r5, #0x30]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08071C4C
ldrb r0, [r5, #0x12]
subs r0, #8
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #2
bhi _08071C42
adds r0, r4, #0
bl sub_0807A298
bl sub_08079458
movs r0, #0xa
strb r0, [r4, #0xc]
_08071C42:
ldr r0, _08071C48 @ =0x00000C1A
b _08071C5A
.align 2, 0
_08071C48: .4byte 0x00000C1A
_08071C4C:
movs r0, #8
ands r1, r0
movs r0, #0xde
lsls r0, r0, #1
cmp r1, #0
beq _08071C5A
ldr r0, _08071CA0 @ =0x00000459
_08071C5A:
ldr r2, _08071CA4 @ =gLinkState
movs r3, #0
strh r0, [r2, #8]
ldr r0, [r2, #0x30]
ldr r1, _08071CA8 @ =0xFEDBF2FE
ands r0, r1
str r0, [r2, #0x30]
movs r0, #1
strb r0, [r4, #0xd]
movs r0, #4
strb r0, [r4, #0x14]
adds r5, r4, #0
adds r5, #0x29
ldrb r1, [r5]
subs r0, #0x3d
ands r0, r1
movs r1, #8
orrs r0, r1
strb r0, [r5]
ldrb r0, [r4, #0x18]
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x18]
strb r3, [r2, #2]
strb r3, [r2, #6]
adds r0, r4, #0
bl sub_0800451C
bl sub_08077B2C
movs r0, #0x87
bl PlaySFX
_08071C9C:
pop {r4, r5, pc}
.align 2, 0
_08071CA0: .4byte 0x00000459
_08071CA4: .4byte gLinkState
_08071CA8: .4byte 0xFEDBF2FE
thumb_func_start sub_08071CAC
sub_08071CAC: @ 0x08071CAC
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r3, #0x80
adds r0, r3, #0
ands r0, r1
cmp r0, #0
beq _08071CFE
ldr r1, _08071CE0 @ =gLinkState
ldr r2, [r1, #0x30]
adds r0, r2, #0
ands r0, r3
cmp r0, #0
bne _08071CEC
movs r0, #8
ands r2, r0
ldr r0, _08071CE4 @ =0x000002BD
cmp r2, #0
beq _08071CEE
ldr r0, _08071CE8 @ =0x0000045A
b _08071CEE
.align 2, 0
_08071CE0: .4byte gLinkState
_08071CE4: .4byte 0x000002BD
_08071CE8: .4byte 0x0000045A
_08071CEC:
ldr r0, _08071D00 @ =0x00000C1B
_08071CEE:
strh r0, [r1, #8]
movs r0, #2
strb r0, [r4, #0xd]
movs r0, #0xf0
strb r0, [r4, #0xe]
movs r0, #0x7b
bl PlaySFX
_08071CFE:
pop {r4, pc}
.align 2, 0
_08071D00: .4byte 0x00000C1B
thumb_func_start sub_08071D04
sub_08071D04: @ 0x08071D04
push {r4, r5, lr}
adds r5, r0, #0
bl sub_080042B8
adds r0, r5, #0
adds r0, #0x5a
ldrb r0, [r0]
cmp r0, #0
beq _08071D7A
movs r4, #0
movs r0, #0x28
bl sub_080544DC
adds r1, r0, #0
cmp r1, #0
beq _08071D3A
ldr r0, _08071D6C @ =gUnk_02002A40
adds r0, r0, r1
adds r0, #0xb5
movs r1, #0x20
strb r1, [r0]
movs r0, #0x40
movs r1, #0x60
movs r2, #2
bl CreateObject
movs r4, #0x20
_08071D3A:
cmp r4, #0
beq _08071D74
adds r0, r4, #0
bl ModHealth
movs r2, #0
movs r0, #3
strb r0, [r5, #0xd]
ldr r1, _08071D70 @ =gLinkState
adds r0, r1, #0
adds r0, #0x3c
strb r2, [r0]
movs r0, #0xff
strb r0, [r5, #0x15]
movs r3, #0
strh r2, [r5, #0x24]
movs r0, #0xc0
lsls r0, r0, #9
str r0, [r5, #0x20]
movs r0, #1
strb r0, [r1, #2]
adds r1, #0x26
strb r3, [r1]
b _08071D7A
.align 2, 0
_08071D6C: .4byte gUnk_02002A40
_08071D70: .4byte gLinkState
_08071D74:
ldr r1, _08071D7C @ =gUnk_030010A0
movs r0, #1
strb r0, [r1, #5]
_08071D7A:
pop {r4, r5, pc}
.align 2, 0
_08071D7C: .4byte gUnk_030010A0
thumb_func_start sub_08071D80
sub_08071D80: @ 0x08071D80
push {r4, r5, lr}
adds r4, r0, #0
bl sub_080042B8
ldr r5, _08071DB4 @ =gLinkState
movs r0, #1
strb r0, [r5, #0x14]
adds r0, r4, #0
bl sub_08073904
ldrb r1, [r5, #2]
movs r0, #7
ands r0, r1
cmp r0, #3
bne _08071DB2
movs r0, #0
strb r0, [r5, #2]
adds r1, r4, #0
adds r1, #0x3d
movs r0, #0xe2
strb r0, [r1]
bl UnfreezeTime
bl sub_080791D0
_08071DB2:
pop {r4, r5, pc}
.align 2, 0
_08071DB4: .4byte gLinkState
thumb_func_start sub_08071DB8
sub_08071DB8: @ 0x08071DB8
push {lr}
ldr r2, _08071DCC @ =gUnk_0811BB3C
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08071DCC: .4byte gUnk_0811BB3C
thumb_func_start sub_08071DD0
sub_08071DD0: @ 0x08071DD0
push {lr}
adds r2, r0, #0
ldr r1, _08071DF4 @ =gLinkState
adds r0, r1, #0
adds r0, #0x38
ldrb r0, [r0]
strb r0, [r2, #0xe]
adds r3, r1, #0
adds r3, #0x39
ldrb r0, [r3]
cmp r0, #0
beq _08071DF8
movs r0, #0
strb r0, [r3]
movs r0, #2
strb r0, [r2, #0xd]
adds r0, #0xfe
b _08071E00
.align 2, 0
_08071DF4: .4byte gLinkState
_08071DF8:
movs r0, #1
strb r0, [r2, #0xd]
movs r0, #0x8a
lsls r0, r0, #1
_08071E00:
strh r0, [r1, #8]
pop {pc}
thumb_func_start sub_08071E04
sub_08071E04: @ 0x08071E04
push {r4, r5, lr}
adds r4, r0, #0
ldr r0, [r4, #0x34]
cmp r0, #0
beq _08071E38
ldr r5, _08071E34 @ =gLinkState
ldrb r0, [r5, #0x14]
cmp r0, #0
bne _08071E38
bl sub_0807A1B8
ldrb r0, [r5, #0x12]
cmp r0, #1
bne _08071E38
movs r0, #7
strb r0, [r5, #0x11]
ldr r0, [r5, #0x30]
movs r1, #0x80
lsls r1, r1, #2
orrs r0, r1
str r0, [r5, #0x30]
bl sub_080791BC
b _08071E72
.align 2, 0
_08071E34: .4byte gLinkState
_08071E38:
adds r0, r4, #0
bl sub_080042B8
bl sub_08079B24
cmp r0, #0
bne _08071E4E
adds r0, r4, #0
bl sub_08079708
b _08071E72
_08071E4E:
bl sub_080792D8
bl sub_0807953C
cmp r0, #0
beq _08071E60
ldrb r0, [r4, #0xe]
subs r0, #2
b _08071E64
_08071E60:
ldrb r0, [r4, #0xe]
subs r0, #1
_08071E64:
strb r0, [r4, #0xe]
movs r0, #0xe
ldrsb r0, [r4, r0]
cmp r0, #0
bgt _08071E72
bl sub_080791BC
_08071E72:
pop {r4, r5, pc}
thumb_func_start sub_08071E74
sub_08071E74: @ 0x08071E74
push {r4, lr}
adds r4, r0, #0
movs r1, #0x80
lsls r1, r1, #6
bl sub_08003FC4
bl sub_08079E08
ldrb r0, [r4, #0xe]
adds r1, r0, #0
adds r1, #0xff
strb r1, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08071E96
bl sub_080791BC
_08071E96:
pop {r4, pc}
thumb_func_start sub_08071E98
sub_08071E98: @ 0x08071E98
push {lr}
ldr r2, _08071EAC @ =gUnk_0811BB48
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08071EAC: .4byte gUnk_0811BB48
thumb_func_start sub_08071EB0
sub_08071EB0: @ 0x08071EB0
push {r4, lr}
adds r4, r0, #0
bl sub_08077B2C
adds r0, r4, #0
movs r1, #0xe
bl sub_08077C3C
cmp r0, #0
beq _08071F12
ldr r3, _08071EE4 @ =gLinkState
adds r2, r3, #0
adds r2, #0x38
ldrb r1, [r2]
adds r0, #0x68
strb r1, [r0]
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
ldrb r0, [r2]
cmp r0, #0x20
bne _08071EEC
ldr r0, _08071EE8 @ =0x00000614
strh r0, [r3, #8]
b _08071F12
.align 2, 0
_08071EE4: .4byte gLinkState
_08071EE8: .4byte 0x00000614
_08071EEC:
cmp r0, #0x20
blt _08071F00
cmp r0, #0x25
bgt _08071F00
ldr r0, _08071EFC @ =0x000002DF
strh r0, [r3, #8]
b _08071F12
.align 2, 0
_08071EFC: .4byte 0x000002DF
_08071F00:
movs r0, #0xc2
lsls r0, r0, #3
strh r0, [r3, #8]
adds r0, r3, #0
adds r0, #0x38
ldrb r0, [r0]
movs r1, #2
bl sub_0807CAA0
_08071F12:
pop {r4, pc}
thumb_func_start sub_08071F14
sub_08071F14: @ 0x08071F14
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
adds r4, #0x5a
ldrb r1, [r4]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08071F32
ldr r1, _08071F34 @ =gLinkState
movs r0, #0
str r0, [r1, #0x2c]
bl sub_0807921C
_08071F32:
pop {r4, pc}
.align 2, 0
_08071F34: .4byte gLinkState
thumb_func_start sub_08071F38
sub_08071F38: @ 0x08071F38
push {lr}
ldr r2, _08071F4C @ =gUnk_0811BB50
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08071F4C: .4byte gUnk_0811BB50
thumb_func_start sub_08071F50
sub_08071F50: @ 0x08071F50
push {lr}
ldrb r2, [r0, #0x10]
movs r1, #0x7f
ands r1, r2
strb r1, [r0, #0x10]
movs r1, #0x78
strb r1, [r0, #0xe]
ldrb r1, [r0, #0xd]
adds r1, #1
strb r1, [r0, #0xd]
ldr r1, _08071F78 @ =gLinkState
movs r0, #0xa5
lsls r0, r0, #2
strh r0, [r1, #8]
bl sub_08077B20
ldr r0, _08071F7C @ =0x00000195
bl PlaySFX
pop {pc}
.align 2, 0
_08071F78: .4byte gLinkState
_08071F7C: .4byte 0x00000195
thumb_func_start sub_08071F80
sub_08071F80: @ 0x08071F80
push {r4, r5, lr}
adds r4, r0, #0
movs r1, #0x80
lsls r1, r1, #6
bl sub_08003FC4
adds r5, r0, #0
cmp r5, #0
bne _08071FB8
adds r0, r4, #0
bl UpdateSpriteOrderAndFlip
ldr r0, _08071FB4 @ =gLinkState
strb r5, [r0, #2]
ldrb r0, [r0, #0x14]
cmp r0, #0
bne _08071FB8
bl sub_08079D48
cmp r0, #0
bne _08071FB8
adds r0, r4, #0
bl sub_08072008
b _08072004
.align 2, 0
_08071FB4: .4byte gLinkState
_08071FB8:
bl sub_08079B24
cmp r0, #0
bne _08071FC8
adds r0, r4, #0
bl sub_08079708
b _08071FFE
_08071FC8:
ldr r0, _08071FEC @ =gLinkState
ldr r0, [r0, #0x30]
movs r1, #0x80
lsls r1, r1, #4
ands r0, r1
cmp r0, #0
beq _08071FFE
bl sub_0807953C
cmp r0, #0
beq _08071FF0
ldrb r0, [r4, #0xe]
subs r0, #3
strb r0, [r4, #0xe]
adds r1, r4, #0
adds r1, #0x62
movs r0, #2
b _08071FF4
.align 2, 0
_08071FEC: .4byte gLinkState
_08071FF0:
adds r1, r4, #0
adds r1, #0x62
_08071FF4:
strb r0, [r1]
movs r0, #0xe
ldrsb r0, [r4, r0]
cmp r0, #0
bgt _08072004
_08071FFE:
adds r0, r4, #0
bl sub_08072008
_08072004:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08072008
sub_08072008: @ 0x08072008
push {lr}
adds r3, r0, #0
adds r1, r3, #0
adds r1, #0x3d
movs r2, #0
movs r0, #0xa0
strb r0, [r1]
adds r0, r3, #0
adds r0, #0x42
strb r2, [r0]
ldrb r1, [r3, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r3, #0x10]
adds r0, r3, #0
adds r0, #0x62
strb r2, [r0]
ldr r2, _08072044 @ =gLinkState
ldr r0, [r2, #0x30]
ldr r1, _08072048 @ =0xFFFFF7FE
ands r0, r1
str r0, [r2, #0x30]
adds r0, r3, #0
movs r1, #0xd
movs r2, #0
bl CreateFX
bl sub_080791BC
pop {pc}
.align 2, 0
_08072044: .4byte gLinkState
_08072048: .4byte 0xFFFFF7FE
thumb_func_start sub_0807204C
sub_0807204C: @ 0x0807204C
push {lr}
ldr r2, _08072060 @ =gUnk_0811BB58
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08072060: .4byte gUnk_0811BB58
thumb_func_start sub_08072064
sub_08072064: @ 0x08072064
push {lr}
movs r1, #1
strb r1, [r0, #0xd]
ldrb r2, [r0, #0x10]
movs r1, #0x7f
ands r1, r2
strb r1, [r0, #0x10]
ldr r2, _08072094 @ =gLinkState
adds r1, r2, #0
adds r1, #0x3a
ldrb r1, [r1]
strb r1, [r0, #0xe]
adds r0, r2, #0
adds r0, #0x38
ldrb r1, [r0]
adds r0, #1
ldrb r0, [r0]
lsls r0, r0, #8
orrs r1, r0
strh r1, [r2, #8]
bl sub_08077B2C
pop {pc}
.align 2, 0
_08072094: .4byte gLinkState
thumb_func_start sub_08072098
sub_08072098: @ 0x08072098
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _080720B4
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _080720D8
b _080720C2
_080720B4:
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080720D8
_080720C2:
adds r0, r4, #0
adds r0, #0x45
ldrb r0, [r0]
cmp r0, #0
beq _080720D4
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
_080720D4:
bl sub_080791BC
_080720D8:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080720DC
sub_080720DC: @ 0x080720DC
push {r4, lr}
adds r4, r0, #0
bl sub_08078EFC
cmp r0, #0
bne _080720F8
ldr r0, _080720FC @ =gUnk_0811BB60
ldrb r1, [r4, #0xd]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
_080720F8:
pop {r4, pc}
.align 2, 0
_080720FC: .4byte gUnk_0811BB60
thumb_func_start sub_08072100
sub_08072100: @ 0x08072100
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0x18]
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x18]
movs r0, #0xa0
lsls r0, r0, #1
strh r0, [r4, #0x24]
ldr r0, _08072148 @ =gUnk_08114F88
str r0, [r4, #0x48]
ldr r2, _0807214C @ =gLinkState
adds r0, r2, #0
adds r0, #0x38
ldrb r0, [r0]
strb r0, [r4, #0xe]
movs r0, #1
strb r0, [r4, #0xd]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
adds r0, r2, #0
adds r0, #0x39
ldrb r0, [r0]
cmp r0, #0
beq _0807213A
movs r0, #0xff
strb r0, [r4, #0x15]
_0807213A:
ldr r0, [r2, #0x30]
movs r1, #8
ands r0, r1
cmp r0, #0
beq _08072154
ldr r0, _08072150 @ =0x00000404
b _08072158
.align 2, 0
_08072148: .4byte gUnk_08114F88
_0807214C: .4byte gLinkState
_08072150: .4byte 0x00000404
_08072154:
movs r0, #0x82
lsls r0, r0, #1
_08072158:
strh r0, [r2, #8]
bl sub_08077B2C
adds r0, r4, #0
bl sub_08072168
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08072168
sub_08072168: @ 0x08072168
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
movs r2, #0xc
rsbs r2, r2, #0
adds r0, r4, #0
movs r1, #0
bl sub_0806F854
lsls r0, r0, #0x10
movs r1, #0x80
lsls r1, r1, #6
cmp r0, #0
beq _0807218A
movs r1, #0x80
lsls r1, r1, #7
_0807218A:
adds r0, r4, #0
bl sub_08003FC4
ldr r0, _080721A4 @ =gLinkState
adds r0, #0x3a
ldrb r0, [r0]
cmp r0, #0
beq _080721A8
adds r0, r4, #0
bl sub_0806F69C
b _080721AC
.align 2, 0
_080721A4: .4byte gLinkState
_080721A8:
bl sub_08079E08
_080721AC:
ldr r1, _080721E0 @ =gLinkState
ldrb r0, [r4, #0x15]
strb r0, [r1, #0xd]
bl sub_08019840
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _080721DE
adds r1, r4, #0
adds r1, #0x42
movs r0, #0
strb r0, [r1]
ldrb r0, [r4, #0x10]
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
adds r0, r4, #0
bl UpdateSpriteOrderAndFlip
bl sub_080791BC
_080721DE:
pop {r4, pc}
.align 2, 0
_080721E0: .4byte gLinkState
thumb_func_start sub_080721E4
sub_080721E4: @ 0x080721E4
push {lr}
ldr r1, _08072208 @ =gLinkState
adds r1, #0xa8
movs r2, #0x1a
strb r2, [r1]
ldr r2, _0807220C @ =gUnk_0811BB68
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
ldr r0, _08072210 @ =gUnk_0200AF00
adds r0, #0x2e
movs r1, #8
strb r1, [r0]
pop {pc}
.align 2, 0
_08072208: .4byte gLinkState
_0807220C: .4byte gUnk_0811BB68
_08072210: .4byte gUnk_0200AF00
thumb_func_start sub_08072214
sub_08072214: @ 0x08072214
push {lr}
adds r3, r0, #0
movs r0, #1
strb r0, [r3, #0xd]
movs r0, #0x80
strh r0, [r3, #0x24]
ldr r2, _08072244 @ =gLinkState
adds r0, r2, #0
adds r0, #0x38
ldrb r0, [r0]
strb r0, [r3, #0xe]
ldrb r0, [r3, #0x14]
movs r1, #4
eors r0, r1
lsls r0, r0, #2
strb r0, [r3, #0x15]
ldr r0, [r2, #0x30]
movs r1, #8
ands r0, r1
cmp r0, #0
bne _08072248
movs r0, #0xd3
lsls r0, r0, #2
b _0807224A
.align 2, 0
_08072244: .4byte gLinkState
_08072248:
ldr r0, _0807225C @ =0x00000944
_0807224A:
strh r0, [r2, #8]
ldr r0, [r2, #0x30]
movs r1, #1
orrs r0, r1
str r0, [r2, #0x30]
adds r0, r3, #0
bl sub_08072260
pop {pc}
.align 2, 0
_0807225C: .4byte 0x00000944
thumb_func_start sub_08072260
sub_08072260: @ 0x08072260
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, _0807229C @ =gLinkState
adds r1, r5, #0
adds r1, #0x80
movs r0, #0
strh r0, [r1]
bl sub_08079E08
adds r0, r4, #0
bl sub_080042B8
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080722B0
ldr r0, [r5, #0x30]
movs r1, #2
rsbs r1, r1, #0
ands r0, r1
str r0, [r5, #0x30]
movs r1, #8
ands r0, r1
cmp r0, #0
bne _080722A0
movs r0, #0xd3
lsls r0, r0, #2
b _080722A2
.align 2, 0
_0807229C: .4byte gLinkState
_080722A0:
ldr r0, _080722B4 @ =0x00000944
_080722A2:
strh r0, [r5, #8]
adds r1, r4, #0
adds r1, #0x42
movs r0, #0
strb r0, [r1]
bl sub_080791BC
_080722B0:
pop {r4, r5, pc}
.align 2, 0
_080722B4: .4byte 0x00000944
thumb_func_start sub_080722B8
sub_080722B8: @ 0x080722B8
push {lr}
ldr r1, _080722D4 @ =gLinkState
adds r1, #0xa8
movs r2, #0xa
strb r2, [r1]
ldr r2, _080722D8 @ =gUnk_0811BB70
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080722D4: .4byte gLinkState
_080722D8: .4byte gUnk_0811BB70
thumb_func_start sub_080722DC
sub_080722DC: @ 0x080722DC
push {r4, r5, lr}
adds r4, r0, #0
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
ldr r2, _08072318 @ =gLinkState
ldr r0, [r2, #0x30]
movs r1, #0x80
ands r0, r1
adds r5, r2, #0
cmp r0, #0
bne _0807231C
movs r0, #1
strb r0, [r4, #0xd]
movs r0, #0xa0
lsls r0, r0, #0xa
str r0, [r4, #0x20]
movs r0, #0x42
movs r2, #0
bl CreateObject
cmp r0, #0
beq _0807230E
str r4, [r0, #0x54]
_0807230E:
movs r0, #0x8a
lsls r0, r0, #1
strh r0, [r5, #8]
b _08072332
.align 2, 0
_08072318: .4byte gLinkState
_0807231C:
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
movs r0, #3
strb r0, [r4, #0xd]
adds r1, r4, #0
adds r1, #0x42
movs r0, #0xa
strb r0, [r1]
_08072332:
ldr r0, [r5, #0x30]
ldr r1, _08072350 @ =0x00000401
orrs r0, r1
str r0, [r5, #0x30]
bl sub_08077B2C
movs r0, #0x92
lsls r0, r0, #1
bl PlaySFX
movs r0, #0x7a
bl PlaySFX
pop {r4, r5, pc}
.align 2, 0
_08072350: .4byte 0x00000401
thumb_func_start sub_08072354
sub_08072354: @ 0x08072354
push {r4, lr}
adds r4, r0, #0
movs r2, #0xc
rsbs r2, r2, #0
movs r1, #0
bl sub_0806F854
adds r0, r4, #0
bl sub_080042B8
adds r0, r4, #0
bl sub_08079744
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
adds r3, r0, #0
cmp r3, #0
bne _080723C0
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
adds r0, r4, #0
adds r0, #0x42
strb r3, [r0]
movs r0, #2
strb r0, [r4, #0xd]
movs r0, #0x3c
strb r0, [r4, #0xe]
ldr r2, _080723C4 @ =gLinkState
ldr r0, _080723C8 @ =0x000002C1
strh r0, [r2, #8]
ldr r0, [r2, #0x30]
ldr r1, _080723CC @ =0xFFFFFBFF
ands r0, r1
str r0, [r2, #0x30]
adds r0, r4, #0
bl UpdateSpriteOrderAndFlip
adds r0, r4, #0
movs r1, #0xc
movs r2, #0
bl CreateFX
movs r0, #0xd3
lsls r0, r0, #1
bl PlaySFX
_080723C0:
pop {r4, pc}
.align 2, 0
_080723C4: .4byte gLinkState
_080723C8: .4byte 0x000002C1
_080723CC: .4byte 0xFFFFFBFF
thumb_func_start sub_080723D0
sub_080723D0: @ 0x080723D0
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _0807240A
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]
adds r1, r4, #0
adds r1, #0x3d
movs r0, #0x14
strb r0, [r1]
subs r0, #0x16
bl ModHealth
bl sub_08079458
_0807240A:
pop {r4, pc}
thumb_func_start sub_0807240C
sub_0807240C: @ 0x0807240C
push {lr}
adds r2, r0, #0
adds r1, r2, #0
adds r1, #0x42
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _08072448
ldrb r0, [r2, #0x18]
movs r1, #3
orrs r0, r1
strb r0, [r2, #0x18]
adds r1, r2, #0
adds r1, #0x3d
movs r0, #0x14
strb r0, [r1]
ldr r2, _0807244C @ =gLinkState
ldr r0, [r2, #0x30]
ldr r1, _08072450 @ =0xFFFFFBFF
ands r0, r1
str r0, [r2, #0x30]
movs r0, #2
rsbs r0, r0, #0
bl ModHealth
bl sub_08079458
_08072448:
pop {pc}
.align 2, 0
_0807244C: .4byte gLinkState
_08072450: .4byte 0xFFFFFBFF
thumb_func_start sub_08072454
sub_08072454: @ 0x08072454
push {lr}
ldr r2, _08072468 @ =gUnk_0811BB80
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08072468: .4byte gUnk_0811BB80
thumb_func_start sub_0807246C
sub_0807246C: @ 0x0807246C
push {lr}
movs r1, #1
strb r1, [r0, #0xd]
ldr r2, _0807248C @ =gLinkState
adds r1, r2, #0
adds r1, #0x38
ldrb r1, [r1]
strb r1, [r0, #0xe]
movs r0, #0xf0
lsls r0, r0, #2
strh r0, [r2, #8]
movs r0, #0x7b
bl PlaySFX
pop {pc}
.align 2, 0
_0807248C: .4byte gLinkState
thumb_func_start sub_08072490
sub_08072490: @ 0x08072490
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xe]
subs r0, #1
strb r0, [r1, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
beq _080724AE
adds r0, r1, #0
bl sub_080042B8
bl sub_08079E08
b _080724C2
_080724AE:
adds r0, r1, #0
adds r0, #0x3d
movs r1, #0x3c
strb r1, [r0]
movs r0, #8
rsbs r0, r0, #0
bl ModHealth
bl sub_080791D0
_080724C2:
pop {pc}
thumb_func_start sub_080724C4
sub_080724C4: @ 0x080724C4
push {lr}
ldr r2, _080724D8 @ =gUnk_0811BB88
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080724D8: .4byte gUnk_0811BB88
thumb_func_start sub_080724DC
sub_080724DC: @ 0x080724DC
push {r4, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x42
movs r0, #0
strb r0, [r1]
bl sub_0807A108
adds r0, r4, #0
bl sub_080002B8
cmp r0, #0x29
beq _0807254C
ldr r1, _08072530 @ =gLinkState
adds r0, r1, #0
adds r0, #0x89
ldrb r0, [r0]
cmp r0, #0
bne _08072512
adds r0, r1, #0
adds r0, #0x26
ldrb r0, [r0]
cmp r0, #0
beq _08072512
adds r0, r4, #0
bl sub_0807AE20
_08072512:
ldr r0, _08072534 @ =gRoomControls
ldrh r0, [r0]
cmp r0, #0
bne _08072538
ldrb r0, [r4, #0x11]
lsrs r2, r0, #4
movs r1, #0x10
rsbs r1, r1, #0
ands r1, r0
orrs r1, r2
strb r1, [r4, #0x11]
adds r0, r4, #0
bl sub_080728AC
b _08072588
.align 2, 0
_08072530: .4byte gLinkState
_08072534: .4byte gRoomControls
_08072538:
ldr r0, _08072548 @ =gLinkState
ldrb r0, [r0, #0x1c]
cmp r0, #0
bne _08072588
adds r0, r4, #0
bl sub_080042B8
b _08072588
.align 2, 0
_08072548: .4byte gLinkState
_0807254C:
ldrb r0, [r4, #0x18]
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x18]
movs r0, #1
strb r0, [r4, #0xd]
ldr r0, _08072570 @ =gUnk_02034350
ldrb r0, [r0]
cmp r0, #0
bne _08072588
ldr r2, _08072574 @ =gLinkState
ldr r0, [r2, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
beq _0807257C
ldr r0, _08072578 @ =0x00000C18
b _08072580
.align 2, 0
_08072570: .4byte gUnk_02034350
_08072574: .4byte gLinkState
_08072578: .4byte 0x00000C18
_0807257C:
movs r0, #0x82
lsls r0, r0, #1
_08072580:
strh r0, [r2, #8]
ldrb r0, [r4, #0x14]
lsls r0, r0, #2
strb r0, [r4, #0x15]
_08072588:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0807258C
sub_0807258C: @ 0x0807258C
push {r4, lr}
adds r4, r0, #0
ldr r0, _080725D0 @ =gRoomControls
ldrh r0, [r0]
cmp r0, #0
bne _08072604
adds r0, r4, #0
bl sub_0807A894
cmp r0, #0x29
bne _080725E4
bl sub_08079E08
bl sub_080797C4
cmp r0, #0
beq _080725DC
ldr r2, _080725D4 @ =gLinkState
ldr r1, _080725D8 @ =gLinkEntity
ldrh r0, [r1, #0x2e]
strh r0, [r2, #0x16]
ldrh r0, [r1, #0x32]
strh r0, [r2, #0x18]
ldrb r1, [r4, #0x11]
lsrs r2, r1, #4
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x11]
adds r0, r4, #0
bl sub_080728AC
b _08072604
.align 2, 0
_080725D0: .4byte gRoomControls
_080725D4: .4byte gLinkState
_080725D8: .4byte gLinkEntity
_080725DC:
adds r0, r4, #0
bl sub_080042B8
b _08072604
_080725E4:
ldr r2, _08072624 @ =gLinkState
ldr r1, _08072628 @ =gLinkEntity
ldrh r0, [r1, #0x2e]
strh r0, [r2, #0x16]
ldrh r0, [r1, #0x32]
strh r0, [r2, #0x18]
ldrb r1, [r4, #0x11]
lsrs r2, r1, #4
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x11]
adds r0, r4, #0
bl sub_080728AC
_08072604:
ldr r1, _08072624 @ =gLinkState
adds r0, r1, #0
adds r0, #0x89
ldrb r0, [r0]
cmp r0, #0
bne _08072620
adds r0, r1, #0
adds r0, #0x26
ldrb r0, [r0]
cmp r0, #0
beq _08072620
adds r0, r4, #0
bl sub_0807AE20
_08072620:
pop {r4, pc}
.align 2, 0
_08072624: .4byte gLinkState
_08072628: .4byte gLinkEntity
thumb_func_start sub_0807262C
sub_0807262C: @ 0x0807262C
push {lr}
ldr r1, _08072648 @ =gLinkState
adds r1, #0xa8
movs r2, #9
strb r2, [r1]
ldr r2, _0807264C @ =gUnk_0811BB90
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08072648: .4byte gLinkState
_0807264C: .4byte gUnk_0811BB90
thumb_func_start sub_08072650
sub_08072650: @ 0x08072650
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, _08072698 @ =gLinkState
ldr r0, [r5, #0x30]
movs r1, #0x80
lsls r1, r1, #0xe
ands r0, r1
cmp r0, #0
bne _0807266E
ldr r0, _0807269C @ =gLinkEntity
bl sub_0806F948
ldrb r0, [r4, #0x14]
lsls r0, r0, #2
strb r0, [r4, #0x15]
_0807266E:
movs r1, #0
movs r0, #1
strb r0, [r4, #0xd]
strb r1, [r4, #0xe]
bl sub_08077B2C
ldr r3, [r5, #0x30]
movs r0, #0x80
ands r0, r3
cmp r0, #0
beq _080726A4
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
ldr r0, _080726A0 @ =0x00000C08
b _080726BE
.align 2, 0
_08072698: .4byte gLinkState
_0807269C: .4byte gLinkEntity
_080726A0: .4byte 0x00000C08
_080726A4:
adds r0, r4, #0
adds r0, #0x40
movs r1, #0x1e
strb r1, [r0]
movs r0, #8
ands r3, r0
cmp r3, #0
beq _080726BA
movs r0, #0x87
lsls r0, r0, #3
b _080726BE
_080726BA:
movs r0, #0xab
lsls r0, r0, #2
_080726BE:
strh r0, [r5, #8]
ldr r2, _080726E0 @ =gLinkState
ldr r0, [r2, #0x30]
movs r1, #0x80
lsls r1, r1, #0xb
orrs r0, r1
str r0, [r2, #0x30]
bl Random
movs r1, #1
ands r1, r0
cmp r1, #0
beq _080726E4
movs r0, #0x79
bl PlaySFX
b _080726EA
.align 2, 0
_080726E0: .4byte gLinkState
_080726E4:
movs r0, #0x78
bl PlaySFX
_080726EA:
movs r0, #0x7e
bl PlaySFX
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_080726F4
sub_080726F4: @ 0x080726F4
push {r4, r5, lr}
adds r4, r0, #0
ldr r3, _08072744 @ =gLinkState
ldr r2, [r3, #0x30]
movs r0, #0xc0
lsls r0, r0, #0xc
ands r0, r2
movs r1, #0x80
lsls r1, r1, #0xb
cmp r0, r1
bne _08072730
movs r0, #0x80
lsls r0, r0, #0xe
ands r0, r2
cmp r0, #0
bne _0807274C
adds r0, r4, #0
adds r0, #0x3d
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0807274C
adds r0, r4, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0807274C
_08072730:
ldr r0, _08072748 @ =0xFFFBFFFF
ands r2, r0
str r2, [r3, #0x30]
bl sub_08078EFC
cmp r0, #0
beq _08072740
b _080728A0
_08072740:
b _080727E0
.align 2, 0
_08072744: .4byte gLinkState
_08072748: .4byte 0xFFFBFFFF
_0807274C:
ldrb r1, [r4, #0x14]
movs r0, #6
ands r0, r1
lsls r0, r0, #2
strb r0, [r4, #0x15]
ldr r0, _080727A0 @ =gLinkState
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _0807277E
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _0807277E
ldr r0, _080727A4 @ =gLinkEntity
movs r1, #0x11
movs r2, #0x40
bl CreateFX
movs r0, #4
strb r0, [r4, #0xe]
_0807277E:
ldr r5, _080727A0 @ =gLinkState
ldr r0, [r5, #0x30]
movs r1, #2
ands r0, r1
cmp r0, #0
bne _0807278E
bl sub_0807A1B8
_0807278E:
bl sub_08078EFC
cmp r0, #0
beq _080727AC
ldr r0, [r5, #0x30]
ldr r1, _080727A8 @ =0xFFFBFFFF
ands r0, r1
str r0, [r5, #0x30]
b _080728A0
.align 2, 0
_080727A0: .4byte gLinkState
_080727A4: .4byte gLinkEntity
_080727A8: .4byte 0xFFFBFFFF
_080727AC:
ldr r1, [r5, #0x30]
movs r0, #0x80
lsls r0, r0, #0xc
ands r0, r1
cmp r0, #0
beq _080727C4
ldr r0, _080727C0 @ =0xFFFBFFFF
ands r1, r0
str r1, [r5, #0x30]
b _080728A0
.align 2, 0
_080727C0: .4byte 0xFFFBFFFF
_080727C4:
adds r0, r4, #0
bl sub_0807AC54
cmp r0, #0
bne _080728A0
ldr r1, [r5, #0x30]
movs r3, #0x94
lsls r3, r3, #2
ands r3, r1
cmp r3, #0
beq _080727EC
ldr r0, _080727E8 @ =0xFFFBFFFF
ands r1, r0
str r1, [r5, #0x30]
_080727E0:
adds r0, r4, #0
bl sub_080728AC
b _080728A0
.align 2, 0
_080727E8: .4byte 0xFFFBFFFF
_080727EC:
ldrb r0, [r5, #0x12]
cmp r0, #0x17
bne _080727FE
adds r0, r4, #0
bl sub_0800892E
adds r5, r4, #0
adds r5, #0x5a
b _08072844
_080727FE:
adds r1, r4, #0
adds r1, #0x5a
ldrb r0, [r1]
movs r2, #0xf
ands r2, r0
adds r5, r1, #0
cmp r2, #1
beq _0807282A
cmp r2, #1
bgt _08072818
cmp r2, #0
beq _08072822
b _0807283C
_08072818:
cmp r2, #2
beq _08072832
cmp r2, #3
beq _0807283A
b _0807283C
_08072822:
movs r0, #0x80
lsls r0, r0, #2
strh r0, [r4, #0x24]
b _0807283C
_0807282A:
ldrh r0, [r4, #0x24]
adds r0, #0x20
strh r0, [r4, #0x24]
b _0807283C
_08072832:
movs r0, #0xc0
lsls r0, r0, #2
strh r0, [r4, #0x24]
b _0807283C
_0807283A:
strh r3, [r4, #0x24]
_0807283C:
bl sub_08078F24
bl sub_08079E08
_08072844:
ldrb r1, [r5]
movs r0, #0x10
ands r0, r1
cmp r0, #0
bne _08072860
ldr r0, _080728A4 @ =gLinkState
ldr r1, [r0, #0x30]
movs r0, #0x80
ands r1, r0
cmp r1, #0
bne _08072860
adds r0, r4, #0
adds r0, #0x40
strb r1, [r0]
_08072860:
ldrb r1, [r5]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _08072870
adds r0, r4, #0
bl sub_08077698
_08072870:
ldrb r1, [r5]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _08072882
ldr r0, _080728A4 @ =gLinkState
ldrb r0, [r0, #4]
cmp r0, #0
beq _08072886
_08072882:
bl sub_080791D0
_08072886:
ldrb r1, [r5]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0807289A
ldr r0, _080728A4 @ =gLinkState
ldr r1, [r0, #0x30]
ldr r2, _080728A8 @ =0xFFDBFFFF
ands r1, r2
str r1, [r0, #0x30]
_0807289A:
adds r0, r4, #0
bl sub_080042B8
_080728A0:
pop {r4, r5, pc}
.align 2, 0
_080728A4: .4byte gLinkState
_080728A8: .4byte 0xFFDBFFFF
thumb_func_start sub_080728AC
sub_080728AC: @ 0x080728AC
push {r4, r5, lr}
adds r4, r0, #0
bl sub_08079938
ldr r0, _080728C8 @ =gLinkState
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
beq _080728CC
adds r0, r4, #0
bl sub_0807B068
b _080728D0
.align 2, 0
_080728C8: .4byte gLinkState
_080728CC:
bl sub_08078F60
_080728D0:
ldr r1, _08072940 @ =gLinkState
adds r0, r1, #0
adds r0, #0x26
ldrb r0, [r0]
cmp r0, #0
beq _080728E0
movs r0, #0
strh r0, [r4, #0x24]
_080728E0:
ldr r0, [r1, #0x30]
movs r5, #0x40
ands r5, r0
adds r3, r0, #0
cmp r5, #0
bne _080728F6
ldr r0, _08072944 @ =gLinkEntity
ldrb r1, [r0, #0x18]
movs r2, #3
orrs r1, r2
strb r1, [r0, #0x18]
_080728F6:
movs r0, #0x80
ands r0, r3
cmp r0, #0
bne _08072910
ldr r2, _08072944 @ =gLinkEntity
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]
_08072910:
ldr r0, _08072948 @ =gRoomControls
ldrb r1, [r0, #0xf]
movs r0, #4
ands r0, r1
cmp r0, #0
bne _0807292C
cmp r5, #0
beq _08072928
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
_08072928:
bl sub_080791D0
_0807292C:
ldr r0, _08072940 @ =gLinkState
ldr r0, [r0, #0x30]
movs r1, #2
ands r0, r1
cmp r0, #0
bne _0807293C
bl sub_0807A1B8
_0807293C:
pop {r4, r5, pc}
.align 2, 0
_08072940: .4byte gLinkState
_08072944: .4byte gLinkEntity
_08072948: .4byte gRoomControls
thumb_func_start sub_0807294C
sub_0807294C: @ 0x0807294C
push {lr}
ldr r1, _08072968 @ =gLinkState
adds r1, #0xa8
movs r2, #0x17
strb r2, [r1]
ldr r2, _0807296C @ =gUnk_0811BB98
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08072968: .4byte gLinkState
_0807296C: .4byte gUnk_0811BB98
thumb_func_start sub_08072970
sub_08072970: @ 0x08072970
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
adds r0, #0x45
ldrb r0, [r0]
cmp r0, #0
beq _08072A4C
movs r7, #1
strb r7, [r5, #0xd]
ldrh r2, [r5, #0x2e]
movs r1, #0x10
rsbs r1, r1, #0
adds r0, r1, #0
ands r0, r2
movs r2, #8
orrs r0, r2
strh r0, [r5, #0x2e]
ldrh r0, [r5, #0x32]
ands r1, r0
movs r0, #0xa
movs r3, #0
orrs r1, r0
strh r1, [r5, #0x32]
ldrb r1, [r5, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r5, #0x10]
adds r2, r5, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
movs r1, #0x39
rsbs r1, r1, #0
ands r0, r1
strb r0, [r2]
strb r3, [r5, #0xe]
ldr r2, _080729D8 @ =gLinkState
ldr r0, [r2, #0x30]
movs r1, #0x80
lsls r1, r1, #0xd
orrs r0, r1
str r0, [r2, #0x30]
movs r1, #8
ands r0, r1
cmp r0, #0
beq _080729DC
movs r0, #0x95
lsls r0, r0, #4
strh r0, [r2, #8]
adds r6, r5, #0
adds r6, #0x38
b _08072A14
.align 2, 0
_080729D8: .4byte gLinkState
_080729DC:
ldr r0, _08072A50 @ =0x0000061C
strh r0, [r2, #8]
movs r1, #0x2e
ldrsh r0, [r5, r1]
ldr r2, _08072A54 @ =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
adds r4, r5, #0
adds r4, #0x38
ldrb r1, [r4]
bl sub_080001DA
ldr r1, _08072A58 @ =0x00004020
adds r6, r4, #0
cmp r0, r1
bne _08072A14
strb r7, [r5, #0xe]
_08072A14:
ldr r0, _08072A5C @ =0x00004070
movs r7, #0x2e
ldrsh r1, [r5, r7]
ldr r3, _08072A54 @ =gRoomControls
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r7, #0x32
ldrsh r2, [r5, r7]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
ldrb r2, [r6]
bl sub_0800015E
bl sub_08077B2C
adds r0, r5, #0
bl sub_08072A60
movs r0, #0x81
bl PlaySFX
_08072A4C:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08072A50: .4byte 0x0000061C
_08072A54: .4byte gRoomControls
_08072A58: .4byte 0x00004020
_08072A5C: .4byte 0x00004070
thumb_func_start sub_08072A60
sub_08072A60: @ 0x08072A60
push {lr}
adds r2, r0, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08072AC4
ldrb r0, [r2, #0xe]
cmp r0, #1
bne _08072A9C
movs r0, #3
strb r0, [r2, #0xd]
movs r0, #0x28
strb r0, [r2, #0xe]
adds r2, #0x29
ldrb r1, [r2]
subs r0, #0x61
ands r0, r1
movs r1, #8
orrs r0, r1
strb r0, [r2]
ldr r1, _08072A94 @ =gLinkState
ldr r0, _08072A98 @ =0x00000624
strh r0, [r1, #8]
b _08072ACA
.align 2, 0
_08072A94: .4byte gLinkState
_08072A98: .4byte 0x00000624
_08072A9C:
movs r0, #2
strb r0, [r2, #0xd]
ldr r2, _08072AB4 @ =gLinkState
ldr r0, [r2, #0x30]
movs r1, #8
ands r0, r1
cmp r0, #0
beq _08072ABC
ldr r0, _08072AB8 @ =0x00000954
strh r0, [r2, #8]
b _08072ACA
.align 2, 0
_08072AB4: .4byte gLinkState
_08072AB8: .4byte 0x00000954
_08072ABC:
movs r0, #0xc4
lsls r0, r0, #3
strh r0, [r2, #8]
b _08072ACA
_08072AC4:
adds r0, r2, #0
bl sub_080042B8
_08072ACA:
pop {pc}
thumb_func_start sub_08072ACC
sub_08072ACC: @ 0x08072ACC
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, _08072AE0 @ =gLinkState
ldrb r3, [r5, #0xd]
lsls r2, r3, #0x18
lsrs r0, r2, #0x18
cmp r0, #0xff
bne _08072AE4
movs r0, #0
b _08072B56
.align 2, 0
_08072AE0: .4byte gLinkState
_08072AE4:
ldrb r1, [r4, #0xf]
cmp r1, #7
bls _08072B50
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
strb r3, [r4, #0x15]
movs r0, #0xd0
lsls r0, r0, #9
str r0, [r4, #0x20]
movs r0, #0x78
strh r0, [r4, #0x24]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
subs r0, #0x80
ands r0, r1
movs r1, #4
orrs r0, r1
movs r1, #0x39
rsbs r1, r1, #0
ands r0, r1
movs r1, #8
orrs r0, r1
strb r0, [r2]
movs r0, #0x41
strb r0, [r5, #2]
bl sub_0807921C
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldr r2, _08072B4C @ =gRoomControls
ldrh r1, [r2, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r5, #0x32
ldrsh r1, [r4, r5]
ldrh r2, [r2, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
adds r1, r4, #0
adds r1, #0x38
ldrb r1, [r1]
bl sub_0807BA8C
b _08072B58
.align 2, 0
_08072B4C: .4byte gRoomControls
_08072B50:
lsrs r0, r2, #0x1a
strb r0, [r4, #0x14]
adds r0, r1, #1
_08072B56:
strb r0, [r4, #0xf]
_08072B58:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08072B5C
sub_08072B5C: @ 0x08072B5C
push {r4, r5, r6, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xe]
movs r1, #0x28
subs r1, r1, r0
asrs r1, r1, #4
adds r1, #1
adds r0, r5, #0
bl sub_080042BA
adds r0, r5, #0
bl sub_0806F948
ldrb r0, [r5, #0xe]
cmp r0, #0
beq _08072B82
subs r0, #1
strb r0, [r5, #0xe]
b _08072C40
_08072B82:
ldr r0, _08072C04 @ =0x00004021
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldr r3, _08072C08 @ =gRoomControls
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r5, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r5, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
ldrb r0, [r5, #0x14]
lsls r0, r0, #2
strb r0, [r5, #0x15]
movs r0, #1
bl sub_0807A2F8
adds r4, r0, #0
cmp r4, #0
bne _08072C10
ldrb r0, [r5, #0x10]
movs r1, #0x80
orrs r0, r1
strb r0, [r5, #0x10]
adds r2, r5, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #4
orrs r0, r1
strb r0, [r2]
movs r0, #0x40
strh r0, [r5, #0x24]
movs r0, #0xe4
lsls r0, r0, #0xa
str r0, [r5, #0x20]
ldr r0, [r5, #0x34]
subs r0, #1
str r0, [r5, #0x34]
ldr r1, _08072C0C @ =gLinkState
movs r0, #0x41
strb r0, [r1, #2]
movs r2, #0xc
rsbs r2, r2, #0
adds r0, r5, #0
movs r1, #0
bl sub_0806F854
bl sub_0807921C
b _08072C40
.align 2, 0
_08072C04: .4byte 0x00004021
_08072C08: .4byte gRoomControls
_08072C0C: .4byte gLinkState
_08072C10:
bl sub_08052620
cmp r0, #0
bne _08072C1E
adds r0, r5, #0
bl sub_08004542
_08072C1E:
ldrb r0, [r5, #0xd]
adds r0, #1
strb r0, [r5, #0xd]
lsls r4, r4, #4
subs r4, #4
lsls r4, r4, #0xc
str r4, [r5, #0x20]
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r5, #0x24]
ldr r1, _08072C44 @ =gLinkState
movs r0, #0x81
lsls r0, r0, #4
strh r0, [r1, #8]
movs r0, #0x7c
bl PlaySFX
_08072C40:
pop {r4, r5, r6, pc}
.align 2, 0
_08072C44: .4byte gLinkState
thumb_func_start sub_08072C48
sub_08072C48: @ 0x08072C48
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
adds r0, r4, #0
bl sub_0806F69C
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
bne _08072C98
adds r0, r4, #0
movs r1, #7
bl sub_08008790
ldr r4, _08072C90 @ =gLinkState
ldrb r0, [r4, #0x14]
cmp r0, #0
beq _08072C94
bl sub_08008B22
cmp r0, #0
beq _08072C98
movs r0, #7
strb r0, [r4, #0x11]
ldr r0, [r4, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _08072C98
bl sub_080791BC
b _08072C98
.align 2, 0
_08072C90: .4byte gLinkState
_08072C94:
bl sub_0807921C
_08072C98:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08072C9C
sub_08072C9C: @ 0x08072C9C
push {lr}
ldr r1, _08072CB8 @ =gLinkState
adds r1, #0xa8
movs r2, #0x11
strb r2, [r1]
ldr r2, _08072CBC @ =gUnk_0811BBAC
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08072CB8: .4byte gLinkState
_08072CBC: .4byte gUnk_0811BBAC
thumb_func_start sub_08072CC0
sub_08072CC0: @ 0x08072CC0
movs r1, #1
strb r1, [r0, #0xd]
ldrb r2, [r0, #0x10]
movs r1, #0x7f
ands r1, r2
strb r1, [r0, #0x10]
ldr r3, _08072CF4 @ =gLinkState
adds r1, r3, #0
adds r1, #0x3a
ldrb r1, [r1]
lsrs r1, r1, #2
adds r1, #1
strb r1, [r0, #0xf]
adds r1, r3, #0
adds r1, #0x39
ldrb r1, [r1]
strb r1, [r0, #0x15]
movs r2, #0
movs r1, #0x80
lsls r1, r1, #3
strh r1, [r0, #0x24]
ldr r0, _08072CF8 @ =0x00000524
strh r0, [r3, #8]
strb r2, [r3, #5]
bx lr
.align 2, 0
_08072CF4: .4byte gLinkState
_08072CF8: .4byte 0x00000524
thumb_func_start sub_08072CFC
sub_08072CFC: @ 0x08072CFC
push {r4, lr}
adds r4, r0, #0
movs r1, #2
bl sub_080042BA
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
beq _08072D1C
adds r0, r4, #0
bl sub_0806F69C
b _08072D4E
_08072D1C:
movs r0, #2
strb r0, [r4, #0xd]
ldr r2, _08072D50 @ =gLinkState
adds r1, r2, #0
adds r1, #0x38
ldrb r0, [r1]
cmp r0, #7
bhi _08072D30
movs r0, #8
strb r0, [r1]
_08072D30:
ldrb r0, [r1]
lsls r0, r0, #0xc
str r0, [r4, #0x20]
movs r1, #0
movs r0, #0x80
lsls r0, r0, #2
strh r0, [r4, #0x24]
movs r0, #0x81
lsls r0, r0, #4
strh r0, [r2, #8]
movs r0, #5
strb r0, [r4, #0xe]
strb r1, [r4, #0xf]
bl sub_08077B2C
_08072D4E:
pop {r4, pc}
.align 2, 0
_08072D50: .4byte gLinkState
thumb_func_start sub_08072D54
sub_08072D54: @ 0x08072D54
push {r4, r5, lr}
adds r4, r0, #0
bl sub_080042B8
movs r2, #0xc
rsbs r2, r2, #0
adds r0, r4, #0
movs r1, #0
bl sub_0806F854
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _08072D7A
adds r0, r4, #0
bl sub_0806F69C
ldrb r0, [r4, #0xe]
subs r0, #1
b _08072E80
_08072D7A:
adds r0, r4, #0
bl sub_0806F730
adds r1, r4, #0
adds r1, #0x38
ldrb r1, [r1]
bl sub_080002B0
adds r2, r0, #0
ldrb r5, [r4, #0xf]
cmp r5, #1
beq _08072DD0
cmp r5, #1
bgt _08072D9C
cmp r5, #0
beq _08072DA6
b _08072E6C
_08072D9C:
cmp r5, #2
beq _08072DFA
cmp r5, #3
beq _08072E30
b _08072E6C
_08072DA6:
ldr r1, _08072DC8 @ =gUnk_0811BBD4
ldr r0, _08072DCC @ =gLinkEntity
ldrb r0, [r0, #0x14]
lsrs r0, r0, #1
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r2, #0
bl sub_08007DD6
cmp r0, #0
beq _08072E6C
movs r0, #1
strb r0, [r4, #0xe]
strb r0, [r4, #0xf]
b _08072E6C
.align 2, 0
_08072DC8: .4byte gUnk_0811BBD4
_08072DCC: .4byte gLinkEntity
_08072DD0:
ldr r1, _08072DEC @ =gUnk_0811BBD4
ldr r0, _08072DF0 @ =gLinkEntity
ldrb r0, [r0, #0x14]
lsrs r0, r0, #1
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r2, #0
bl sub_08007DD6
cmp r0, #0
beq _08072DF4
strb r5, [r4, #0xe]
b _08072E6C
.align 2, 0
_08072DEC: .4byte gUnk_0811BBD4
_08072DF0: .4byte gLinkEntity
_08072DF4:
movs r0, #2
strb r0, [r4, #0xf]
b _08072E6C
_08072DFA:
ldrb r0, [r4, #0x14]
movs r5, #4
eors r0, r5
strb r0, [r4, #0x14]
ldr r1, _08072E28 @ =gUnk_0811BBD4
ldr r0, _08072E2C @ =gLinkEntity
ldrb r0, [r0, #0x14]
lsrs r0, r0, #1
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r2, #0
bl sub_08007DD6
cmp r0, #0
beq _08072E22
movs r0, #1
strb r0, [r4, #0xe]
movs r0, #3
strb r0, [r4, #0xf]
_08072E22:
ldrb r0, [r4, #0x14]
eors r0, r5
b _08072E6A
.align 2, 0
_08072E28: .4byte gUnk_0811BBD4
_08072E2C: .4byte gLinkEntity
_08072E30:
ldrb r0, [r4, #0x14]
movs r1, #4
eors r0, r1
strb r0, [r4, #0x14]
ldr r1, _08072E58 @ =gUnk_0811BBD4
ldr r0, _08072E5C @ =gLinkEntity
ldrb r0, [r0, #0x14]
lsrs r0, r0, #1
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r2, #0
bl sub_08007DD6
cmp r0, #0
beq _08072E60
movs r0, #1
strb r0, [r4, #0xe]
b _08072E64
.align 2, 0
_08072E58: .4byte gUnk_0811BBD4
_08072E5C: .4byte gLinkEntity
_08072E60:
movs r0, #4
strb r0, [r4, #0xf]
_08072E64:
ldrb r0, [r4, #0x14]
movs r1, #4
eors r0, r1
_08072E6A:
strb r0, [r4, #0x14]
_08072E6C:
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _08072E7A
adds r0, r4, #0
bl sub_0806F69C
b _08072E7E
_08072E7A:
bl sub_08079E08
_08072E7E:
movs r0, #0
_08072E80:
strb r0, [r4, #0xe]
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
bne _08072F10
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
adds r0, r4, #0
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #1
bne _08072EAA
adds r0, r4, #0
bl sub_0800455E
b _08072EB0
_08072EAA:
adds r0, r4, #0
bl sub_08004542
_08072EB0:
adds r0, r4, #0
movs r1, #7
bl sub_08008790
ldr r5, _08072EDC @ =gLinkState
ldrb r0, [r5, #0x14]
cmp r0, #0
beq _08072EE0
bl sub_08008B22
cmp r0, #0
beq _08072F10
movs r0, #7
strb r0, [r5, #0x11]
ldr r0, [r5, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _08072F10
bl sub_080791BC
b _08072F10
.align 2, 0
_08072EDC: .4byte gLinkState
_08072EE0:
ldr r0, [r5, #0x30]
movs r1, #8
ands r0, r1
cmp r0, #0
beq _08072EF4
ldr r0, _08072EF0 @ =0x00000424
b _08072EF8
.align 2, 0
_08072EF0: .4byte 0x00000424
_08072EF4:
movs r0, #0x82
lsls r0, r0, #4
_08072EF8:
strh r0, [r5, #8]
movs r1, #0
movs r0, #6
strb r0, [r4, #0xe]
movs r0, #3
strb r0, [r4, #0xd]
adds r0, r4, #0
adds r0, #0x42
strb r1, [r0]
movs r0, #0x7d
bl PlaySFX
_08072F10:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08072F14
sub_08072F14: @ 0x08072F14
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xe]
subs r0, #1
strb r0, [r1, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
beq _08072F2C
bl sub_0807921C
b _08072F32
_08072F2C:
adds r0, r1, #0
bl sub_080042B8
_08072F32:
pop {pc}
thumb_func_start sub_08072F34
sub_08072F34: @ 0x08072F34
push {r4, r5, r6, lr}
adds r4, r0, #0
bl sub_08078EFC
cmp r0, #0
bne _08072F86
ldr r6, _08072F88 @ =gLinkState
adds r1, r6, #0
adds r1, #0xa8
movs r0, #0x18
strb r0, [r1]
adds r0, r4, #0
movs r1, #0
movs r2, #0
bl sub_0807A1E8
strb r0, [r6, #0x12]
ldr r1, _08072F8C @ =gUnk_0811BBE4
ldrb r0, [r4, #0xd]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
adds r5, r4, #0
adds r5, #0x42
ldrb r0, [r5]
cmp r0, #0
beq _08072F86
bl sub_080792D8
ldrb r1, [r5]
cmp r1, #0
bne _08072F86
movs r0, #0x1d
strb r0, [r4, #0xc]
strb r1, [r4, #0xd]
strh r1, [r4, #0x30]
ldr r0, _08072F90 @ =0x000002CF
strh r0, [r6, #8]
_08072F86:
pop {r4, r5, r6, pc}
.align 2, 0
_08072F88: .4byte gLinkState
_08072F8C: .4byte gUnk_0811BBE4
_08072F90: .4byte 0x000002CF
thumb_func_start sub_08072F94
sub_08072F94: @ 0x08072F94
push {r4, lr}
adds r4, r0, #0
ldr r0, _08072FB4 @ =gLinkState
ldrb r1, [r0, #0x12]
adds r3, r0, #0
cmp r1, #0x1e
beq _08072FB8
cmp r1, #0x1e
blt _08072FAE
cmp r1, #0x2c
bgt _08072FAE
cmp r1, #0x2a
bge _08072FB8
_08072FAE:
bl sub_0807921C
b _0807308C
.align 2, 0
_08072FB4: .4byte gLinkState
_08072FB8:
adds r2, r4, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #0x39
rsbs r1, r1, #0
ands r1, r0
strb r1, [r2]
adds r2, r3, #0
ldrb r1, [r2, #0xd]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _08073072
strb r1, [r4, #0x15]
ldrb r0, [r2, #0xd]
cmp r0, #8
beq _08072FDE
cmp r0, #0x18
bne _08073008
_08072FDE:
ldrb r0, [r2, #0x12]
cmp r0, #0x1e
beq _0807308C
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _08072FF8
movs r0, #0xb5
lsls r0, r0, #2
b _08072FFA
_08072FF8:
ldr r0, _08073004 @ =0x000002D5
_08072FFA:
strh r0, [r2, #8]
adds r0, r4, #0
bl sub_08073094
b _0807306A
.align 2, 0
_08073004: .4byte 0x000002D5
_08073008:
ldrb r0, [r2, #0x12]
cmp r0, #0x1e
bne _08073020
movs r0, #7
ands r0, r1
cmp r0, #0
beq _08073020
adds r0, r1, #0
adds r0, #8
movs r1, #0x10
ands r0, r1
strb r0, [r4, #0x15]
_08073020:
ldrb r1, [r4, #0x15]
movs r2, #0x10
adds r0, r2, #0
ands r0, r1
cmp r0, #0
beq _0807304C
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
adds r0, r2, #0
ands r0, r1
cmp r0, #0
beq _08073044
ldr r0, _08073040 @ =0x000002D1
b _08073068
.align 2, 0
_08073040: .4byte 0x000002D1
_08073044:
ldr r0, _08073048 @ =0x000002D2
b _08073068
.align 2, 0
_08073048: .4byte 0x000002D2
_0807304C:
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
adds r0, r2, #0
ands r0, r1
cmp r0, #0
beq _08073064
ldr r0, _08073060 @ =0x000002CF
b _08073068
.align 2, 0
_08073060: .4byte 0x000002CF
_08073064:
movs r0, #0xb4
lsls r0, r0, #2
_08073068:
strh r0, [r3, #8]
_0807306A:
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
b _0807308C
_08073072:
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _08073088
movs r0, #0xb5
lsls r0, r0, #2
strh r0, [r2, #8]
b _0807308C
_08073088:
ldr r0, _08073090 @ =0x000002D5
strh r0, [r3, #8]
_0807308C:
pop {r4, pc}
.align 2, 0
_08073090: .4byte 0x000002D5
thumb_func_start sub_08073094
sub_08073094: @ 0x08073094
push {r4, lr}
adds r4, r0, #0
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
ldr r2, _080730FC @ =gUnk_0811BBEC
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0xf
ands r0, r1
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
strh r0, [r4, #0x24]
bl sub_08079E08
bl sub_08019840
cmp r0, #0
bne _080731A4
ldr r0, _08073100 @ =gLinkState
ldrb r1, [r0, #6]
movs r2, #0x80
eors r1, r2
strb r1, [r0, #6]
ldrb r0, [r0, #0x12]
cmp r0, #0x2a
beq _080730DE
cmp r0, #0x2c
beq _080730DE
bl sub_0807A1B8
_080730DE:
bl sub_08078EFC
cmp r0, #0
bne _080731A4
ldr r1, _08073100 @ =gLinkState
ldrb r0, [r1, #0x12]
subs r0, #0x19
adds r2, r1, #0
cmp r0, #0x13
bhi _08073178
lsls r0, r0, #2
ldr r1, _08073104 @ =_08073108
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080730FC: .4byte gUnk_0811BBEC
_08073100: .4byte gLinkState
_08073104: .4byte _08073108
_08073108: @ jump table
.4byte _0807316C @ case 0
.4byte _08073178 @ case 1
.4byte _08073178 @ case 2
.4byte _08073178 @ case 3
.4byte _08073178 @ case 4
.4byte _0807317E @ case 5
.4byte _08073178 @ case 6
.4byte _08073178 @ case 7
.4byte _08073178 @ case 8
.4byte _08073178 @ case 9
.4byte _08073178 @ case 10
.4byte _08073178 @ case 11
.4byte _08073178 @ case 12
.4byte _08073178 @ case 13
.4byte _08073178 @ case 14
.4byte _08073178 @ case 15
.4byte _08073178 @ case 16
.4byte _08073158 @ case 17
.4byte _0807317E @ case 18
.4byte _08073158 @ case 19
_08073158:
adds r1, r4, #0
adds r1, #0x42
movs r0, #0
strb r0, [r1]
ldr r0, [r2, #0x30]
movs r1, #0x80
lsls r1, r1, #0x16
orrs r0, r1
str r0, [r2, #0x30]
b _0807317E
_0807316C:
adds r0, r4, #0
bl sub_08074808
bl sub_080791D0
b _080731A4
_08073178:
bl sub_0807921C
b _080731A4
_0807317E:
adds r0, r4, #0
bl sub_080042B8
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _080731A4
bl sub_0807A1B8
bl sub_08078EFC
cmp r0, #0
bne _080731A4
ldrb r0, [r4, #0xd]
subs r0, #1
strb r0, [r4, #0xd]
_080731A4:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080731A8
sub_080731A8: @ 0x080731A8
push {r4, lr}
adds r4, r0, #0
ldr r0, _080731D0 @ =gLinkState
adds r0, #0xa8
movs r1, #0x1c
strb r1, [r0]
movs r0, #0
movs r1, #8
bl sub_0805E4E0
ldr r1, _080731D4 @ =gUnk_0811BBF8
ldrb r0, [r4, #0xd]
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
_080731D0: .4byte gLinkState
_080731D4: .4byte gUnk_0811BBF8