Files
tmc/asm/code_0806FA6C.s
T
2020-05-24 21:34:18 -07:00

27152 lines
463 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 @ =gUnk_03003F80
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 gUnk_03003F80
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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 sub_080A3268
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 @ =gUnk_03000BF0
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 gUnk_03000BF0
_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 @ =gUnk_03000BF0
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 gUnk_03000BF0
_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 @ =gUnk_03000BF0
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 sub_080A3268
pop {r4, r5, r6, pc}
.align 2, 0
_080704B4: .4byte gUnk_03000BF0
_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 sub_080A3268
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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_02000050
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 @ =gUnk_03003F80
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 gUnk_02000050
_08070624: .4byte gUnk_02002A40
_08070628: .4byte gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_0807091C: .4byte 0x10000002
_08070920: .4byte gUnk_02034350
_08070924:
ldr r0, _0807094C @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
ldrb r1, [r0, #6]
movs r2, #0x80
eors r1, r2
strb r1, [r0, #6]
b _080709D8
.align 2, 0
_080709A4: .4byte gUnk_03003F80
_080709A8:
ldr r1, _080709B0 @ =gUnk_03003F80
movs r0, #0x80
strb r0, [r1, #6]
b _080709D8
.align 2, 0
_080709B0: .4byte gUnk_03003F80
_080709B4:
ldrb r1, [r5, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r5, #0x10]
bl sub_080797EC
b _08070BE4
_080709C2:
ldr r0, _080709D4 @ =gUnk_03003F80
ldrb r1, [r0, #6]
movs r2, #0x80
eors r1, r2
strb r1, [r0, #6]
bl sub_080797EC
b _08070BE4
.align 2, 0
_080709D4: .4byte gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 @ =gUnk_03003F80
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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 sub_080A3268
movs r0, #0x85
bl sub_080A3268
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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_08070D98:
ldr r0, _08070DBC @ =0x00000C18
strh r0, [r3, #8]
movs r0, #0xc0
lsls r0, r0, #9
str r0, [r2, #0x20]
_08070DA2:
ldr r0, _08070DC0 @ =gUnk_03003F80
movs r1, #0x80
strb r1, [r0, #2]
movs r0, #0xa6
lsls r0, r0, #1
bl sub_080A3268
bl sub_08077B2C
bl sub_08078F60
pop {r4, pc}
.align 2, 0
_08070DBC: .4byte 0x00000C18
_08070DC0: .4byte gUnk_03003F80
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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
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 @ =gUnk_03003F80
strb r1, [r0, #2]
bl sub_080791D0
_08070E94:
pop {pc}
.align 2, 0
_08070E98: .4byte gUnk_03003F80
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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_02000050
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 @ =gUnk_03003F80
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 gUnk_02000050
_08070F14: .4byte gUnk_03003F80
_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 @ =gUnk_02000050
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 gUnk_02000050
thumb_func_start sub_08070F50
sub_08070F50: @ 0x08070F50
push {r4, r5, lr}
adds r4, r0, #0
ldr r0, _08070F9C @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
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 @ =gUnk_02000050
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 @ =gUnk_03003F80
strb r2, [r0, #2]
bl sub_080791D0
_08071078:
pop {r4, pc}
.align 2, 0
_0807107C: .4byte gUnk_02000050
_08071080: .4byte gUnk_03003F80
thumb_func_start sub_08071084
sub_08071084: @ 0x08071084
push {lr}
ldr r1, _080710A0 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 sub_080A3268
movs r0, #0x78
bl sub_080A3268
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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 sub_080A3268
_08071206:
pop {r4, r5, r6, pc}
thumb_func_start sub_08071208
sub_08071208: @ 0x08071208
push {r4, lr}
adds r4, r0, #0
ldr r2, _08071244 @ =gUnk_03003F80
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 @ =gUnk_03003F80
movs r0, #0
strb r0, [r1, #2]
bl sub_080791D0
_08071240:
pop {r4, pc}
.align 2, 0
_08071244: .4byte gUnk_03003F80
thumb_func_start sub_08071248
sub_08071248: @ 0x08071248
push {lr}
ldr r3, _08071274 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 sub_080A3268
b _080712E4
.align 2, 0
_080712AC: .4byte gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
thumb_func_start sub_08071380
sub_08071380: @ 0x08071380
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, _080713E8 @ =gUnk_03003F80
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 sub_08050054
movs r0, #0xf8
bl sub_080A3268
b _080713FC
.align 2, 0
_080713E8: .4byte gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03000BF0
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 @ =gUnk_03003F80
movs r1, #0xe7
lsls r1, r1, #3
strh r1, [r2, #8]
movs r1, #6
movs r2, #1
movs r3, #0
bl sub_080A2988
bl sub_08077B20
bl sub_0805E544
pop {pc}
.align 2, 0
_080715A0: .4byte gUnk_03000BF0
_080715A4: .4byte gUnk_02034490
_080715A8: .4byte gUnk_03003F80
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 @ =gUnk_03003F80
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 gUnk_03003F80
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 @ =gUnk_03003F80
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 sub_080A3268
pop {pc}
.align 2, 0
_08071628: .4byte gUnk_03003F80
_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 @ =gUnk_03003F80
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 sub_0805E564
pop {r4, pc}
.align 2, 0
_08071850: .4byte gUnk_02033A90
_08071854: .4byte gUnk_0811BAC4
_08071858: .4byte gUnk_02034490
_0807185C: .4byte gUnk_03003F80
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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 sub_080A2988
str r0, [r4, #0x54]
cmp r0, #0
beq _08071986
ldrb r0, [r4, #0x14]
cmp r0, #2
bne _0807197C
ldr r1, _08071978 @ =gUnk_03003F80
movs r0, #0xf3
lsls r0, r0, #2
b _08071980
.align 2, 0
_08071978: .4byte gUnk_03003F80
_0807197C:
ldr r1, _08071988 @ =gUnk_03003F80
ldr r0, _0807198C @ =0x000003C7
_08071980:
strh r0, [r1, #8]
bl sub_08052BB8
_08071986:
pop {r4, pc}
.align 2, 0
_08071988: .4byte gUnk_03003F80
_0807198C: .4byte 0x000003C7
thumb_func_start sub_08071990
sub_08071990: @ 0x08071990
push {r4, lr}
adds r2, r0, #0
ldr r0, _080719C0 @ =gUnk_02000050
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 @ =gUnk_03003F80
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 gUnk_02000050
_080719C4: .4byte gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
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 @ =gUnk_03003F80
adds r0, #0xa8
movs r1, #0x12
strb r1, [r0]
pop {pc}
.align 2, 0
_08071BD4: .4byte gUnk_0811BB2C
_08071BD8: .4byte gUnk_03003F80
thumb_func_start sub_08071BDC
sub_08071BDC: @ 0x08071BDC
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, _08071C10 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 sub_080A3268
_08071C9C:
pop {r4, r5, pc}
.align 2, 0
_08071CA0: .4byte 0x00000459
_08071CA4: .4byte gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 sub_080A3268
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 sub_0805E564
bl sub_080791D0
_08071DB2:
pop {r4, r5, pc}
.align 2, 0
_08071DB4: .4byte gUnk_03003F80
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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
movs r0, #0
str r0, [r1, #0x2c]
bl sub_0807921C
_08071F32:
pop {r4, pc}
.align 2, 0
_08071F34: .4byte gUnk_03003F80
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 @ =gUnk_03003F80
movs r0, #0xa5
lsls r0, r0, #2
strh r0, [r1, #8]
bl sub_08077B20
ldr r0, _08071F7C @ =0x00000195
bl sub_080A3268
pop {pc}
.align 2, 0
_08071F78: .4byte gUnk_03003F80
_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 sub_08016A04
ldr r0, _08071FB4 @ =gUnk_03003F80
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 gUnk_03003F80
_08071FB8:
bl sub_08079B24
cmp r0, #0
bne _08071FC8
adds r0, r4, #0
bl sub_08079708
b _08071FFE
_08071FC8:
ldr r0, _08071FEC @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_080721A8:
bl sub_08079E08
_080721AC:
ldr r1, _080721E0 @ =gUnk_03003F80
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 sub_08016A04
bl sub_080791BC
_080721DE:
pop {r4, pc}
.align 2, 0
_080721E0: .4byte gUnk_03003F80
thumb_func_start sub_080721E4
sub_080721E4: @ 0x080721E4
push {lr}
ldr r1, _08072208 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 sub_080A3268
movs r0, #0x7a
bl sub_080A3268
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 @ =gUnk_03003F80
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 sub_08016A04
adds r0, r4, #0
movs r1, #0xc
movs r2, #0
bl CreateFX
movs r0, #0xd3
lsls r0, r0, #1
bl sub_080A3268
_080723C0:
pop {r4, pc}
.align 2, 0
_080723C4: .4byte gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 sub_080A3268
pop {pc}
.align 2, 0
_0807248C: .4byte gUnk_03003F80
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 @ =gUnk_03003F80
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 @ =gUnk_03000BF0
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 gUnk_03003F80
_08072534: .4byte gUnk_03000BF0
_08072538:
ldr r0, _08072548 @ =gUnk_03003F80
ldrb r0, [r0, #0x1c]
cmp r0, #0
bne _08072588
adds r0, r4, #0
bl sub_080042B8
b _08072588
.align 2, 0
_08072548: .4byte gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03000BF0
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 @ =gUnk_03003F80
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 gUnk_03000BF0
_080725D4: .4byte gUnk_03003F80
_080725D8: .4byte gLinkEntity
_080725DC:
adds r0, r4, #0
bl sub_080042B8
b _08072604
_080725E4:
ldr r2, _08072624 @ =gUnk_03003F80
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 @ =gUnk_03003F80
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 gUnk_03003F80
_08072628: .4byte gLinkEntity
thumb_func_start sub_0807262C
sub_0807262C: @ 0x0807262C
push {lr}
ldr r1, _08072648 @ =gUnk_03003F80
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 gUnk_03003F80
_0807264C: .4byte gUnk_0811BB90
thumb_func_start sub_08072650
sub_08072650: @ 0x08072650
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, _08072698 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
ldr r0, [r2, #0x30]
movs r1, #0x80
lsls r1, r1, #0xb
orrs r0, r1
str r0, [r2, #0x30]
bl sub_08000E50
movs r1, #1
ands r1, r0
cmp r1, #0
beq _080726E4
movs r0, #0x79
bl sub_080A3268
b _080726EA
.align 2, 0
_080726E0: .4byte gUnk_03003F80
_080726E4:
movs r0, #0x78
bl sub_080A3268
_080726EA:
movs r0, #0x7e
bl sub_080A3268
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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 @ =gUnk_03003F80
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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_080728CC:
bl sub_08078F60
_080728D0:
ldr r1, _08072940 @ =gUnk_03003F80
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 @ =gUnk_03000BF0
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 @ =gUnk_03003F80
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 gUnk_03003F80
_08072944: .4byte gLinkEntity
_08072948: .4byte gUnk_03000BF0
thumb_func_start sub_0807294C
sub_0807294C: @ 0x0807294C
push {lr}
ldr r1, _08072968 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_080729DC:
ldr r0, _08072A50 @ =0x0000061C
strh r0, [r2, #8]
movs r1, #0x2e
ldrsh r0, [r5, r1]
ldr r2, _08072A54 @ =gUnk_03000BF0
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 @ =gUnk_03000BF0
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 sub_080A3268
_08072A4C:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08072A50: .4byte 0x0000061C
_08072A54: .4byte gUnk_03000BF0
_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 @ =gUnk_03003F80
ldr r0, _08072A98 @ =0x00000624
strh r0, [r1, #8]
b _08072ACA
.align 2, 0
_08072A94: .4byte gUnk_03003F80
_08072A98: .4byte 0x00000624
_08072A9C:
movs r0, #2
strb r0, [r2, #0xd]
ldr r2, _08072AB4 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03000BF0
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 gUnk_03000BF0
_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 @ =gUnk_03000BF0
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 @ =gUnk_03003F80
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 gUnk_03000BF0
_08072C0C: .4byte gUnk_03003F80
_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 @ =gUnk_03003F80
movs r0, #0x81
lsls r0, r0, #4
strh r0, [r1, #8]
movs r0, #0x7c
bl sub_080A3268
_08072C40:
pop {r4, r5, r6, pc}
.align 2, 0
_08072C44: .4byte gUnk_03003F80
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 @ =gUnk_03003F80
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 gUnk_03003F80
_08072C94:
bl sub_0807921C
_08072C98:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08072C9C
sub_08072C9C: @ 0x08072C9C
push {lr}
ldr r1, _08072CB8 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 sub_080A3268
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 @ =gUnk_03003F80
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 gUnk_03003F80
_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 @ =gUnk_03003F80
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 gUnk_03003F80
_080731D4: .4byte gUnk_0811BBF8
thumb_func_start sub_080731D8
sub_080731D8: @ 0x080731D8
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
movs r2, #0
strb r0, [r4, #0x10]
movs r1, #0
movs r0, #0x40
strh r0, [r4, #0x24]
strb r1, [r4, #0x14]
ldrh r1, [r4, #0x2e]
movs r5, #0x10
rsbs r5, r5, #0
adds r0, r5, #0
ands r0, r1
movs r7, #8
orrs r0, r7
strh r0, [r4, #0x2e]
strh r2, [r4, #0x2c]
ldr r6, _08073214 @ =gUnk_03003F80
adds r0, r6, #0
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #0
bne _08073218
movs r0, #1
strb r0, [r4, #0xd]
b _0807329A
.align 2, 0
_08073214: .4byte gUnk_03003F80
_08073218:
ldrb r0, [r4, #0x18]
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x18]
movs r0, #3
strb r0, [r4, #0xd]
ldrh r0, [r4, #0x32]
adds r1, r4, #0
adds r1, #0x7e
strh r0, [r1]
ldrh r0, [r4, #0x32]
subs r0, #0x10
strh r0, [r4, #0x32]
adds r0, r4, #0
movs r1, #0x70
movs r2, #1
movs r3, #0
bl sub_080A2988
str r0, [r4, #0x54]
adds r0, r6, #0
adds r0, #0x39
ldrb r0, [r0]
cmp r0, #7
bne _08073270
ldrh r1, [r4, #0x32]
adds r0, r5, #0
ands r0, r1
adds r0, #8
strh r0, [r4, #0x32]
ldrh r1, [r4, #0x2e]
adds r0, r5, #0
ands r0, r1
strh r0, [r4, #0x2e]
strb r7, [r4, #0x15]
movs r0, #2
strb r0, [r4, #0x14]
ldr r0, _0807326C @ =0x00000187
bl sub_080A3268
b _08073294
.align 2, 0
_0807326C: .4byte 0x00000187
_08073270:
ldrh r1, [r4, #0x32]
adds r0, r5, #0
ands r0, r1
adds r0, #2
strh r0, [r4, #0x32]
ldrh r1, [r4, #0x2e]
adds r0, r5, #0
ands r0, r1
adds r0, #0xf
strh r0, [r4, #0x2e]
movs r0, #0x18
strb r0, [r4, #0x15]
movs r0, #6
strb r0, [r4, #0x14]
movs r0, #0xc4
lsls r0, r0, #1
bl sub_080A3268
_08073294:
adds r0, r4, #0
bl sub_08066DE4
_0807329A:
ldr r2, _080732AC @ =gUnk_03003F80
ldr r0, [r2, #0x30]
movs r1, #8
ands r0, r1
cmp r0, #0
beq _080732B4
ldr r0, _080732B0 @ =0x00000404
b _080732B8
.align 2, 0
_080732AC: .4byte gUnk_03003F80
_080732B0: .4byte 0x00000404
_080732B4:
movs r0, #0x82
lsls r0, r0, #1
_080732B8:
strh r0, [r2, #8]
ldr r1, _080732CC @ =gUnk_03000BF0
movs r0, #0
str r0, [r1, #0x30]
bl sub_0807A108
bl sub_08077B2C
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080732CC: .4byte gUnk_03000BF0
thumb_func_start sub_080732D0
sub_080732D0: @ 0x080732D0
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
adds r0, r4, #0
bl sub_080002B8
cmp r0, #0x28
beq _080732EE
movs r0, #0
strb r0, [r4, #0x15]
adds r0, r4, #0
bl sub_0806F69C
b _08073328
_080732EE:
ldrb r0, [r4, #0xd]
adds r0, #1
movs r1, #0
strb r0, [r4, #0xd]
strh r1, [r4, #0x30]
adds r0, r4, #0
movs r1, #0x70
movs r2, #1
movs r3, #0
bl sub_080A2988
ldr r0, _08073318 @ =gUnk_03003F80
adds r0, #0x39
ldrb r0, [r0]
cmp r0, #7
bne _08073320
ldr r0, _0807331C @ =0x00000187
bl sub_080A3268
b _08073328
.align 2, 0
_08073318: .4byte gUnk_03003F80
_0807331C: .4byte 0x00000187
_08073320:
movs r0, #0xc4
lsls r0, r0, #1
bl sub_080A3268
_08073328:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0807332C
sub_0807332C: @ 0x0807332C
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
ldr r0, _08073344 @ =gUnk_03003F80
adds r0, #0x39
ldrb r0, [r0]
cmp r0, #7
bne _08073348
movs r0, #0
b _0807334A
.align 2, 0
_08073344: .4byte gUnk_03003F80
_08073348:
movs r0, #0x1c
_0807334A:
strb r0, [r4, #0x15]
ldrh r1, [r4, #0x2e]
movs r0, #0xf
ands r0, r1
cmp r0, #0xf
beq _08073386
ldr r0, _08073368 @ =gUnk_03003F80
adds r0, #0x39
ldrb r0, [r0]
cmp r0, #7
bne _0807336C
movs r0, #2
strb r0, [r4, #0x14]
movs r0, #4
b _0807337C
.align 2, 0
_08073368: .4byte gUnk_03003F80
_0807336C:
movs r0, #6
strb r0, [r4, #0x14]
ldrb r0, [r4, #0x15]
cmp r0, #0x18
bls _0807337E
subs r0, #1
movs r1, #0x1f
ands r0, r1
_0807337C:
strb r0, [r4, #0x15]
_0807337E:
adds r0, r4, #0
bl sub_0806F69C
b _080733B6
_08073386:
ldr r0, _0807339C @ =gUnk_03003F80
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #0
beq _080733A4
ldr r0, _080733A0 @ =gUnk_03000BF0
str r4, [r0, #0x30]
bl sub_080791BC
b _080733B6
.align 2, 0
_0807339C: .4byte gUnk_03003F80
_080733A0: .4byte gUnk_03000BF0
_080733A4:
ldr r0, _080733B8 @ =gUnk_03001000
movs r1, #3
strb r1, [r0, #4]
movs r1, #1
strb r1, [r0, #0xb]
movs r0, #5
movs r1, #8
bl sub_08050054
_080733B6:
pop {r4, pc}
.align 2, 0
_080733B8: .4byte gUnk_03001000
thumb_func_start sub_080733BC
sub_080733BC: @ 0x080733BC
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
ldrh r1, [r4, #0x2e]
movs r0, #0xf
ands r0, r1
cmp r0, #8
bne _080733FC
movs r0, #0x10
strb r0, [r4, #0x15]
movs r0, #4
strb r0, [r4, #0x14]
ldr r0, [r4, #0x54]
cmp r0, #0
beq _080733FC
bl sub_0805E7BC
movs r0, #0
str r0, [r4, #0x54]
adds r0, r4, #0
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #1
bne _080733F6
adds r0, r4, #0
bl sub_0807AABC
b _080733FC
_080733F6:
adds r0, r4, #0
bl sub_0807AA80
_080733FC:
adds r0, r4, #0
bl sub_0806F69C
adds r0, r4, #0
adds r0, #0x7e
ldrh r1, [r0]
movs r2, #0x32
ldrsh r0, [r4, r2]
cmp r1, r0
bne _08073418
ldr r0, _0807341C @ =gUnk_03000BF0
str r4, [r0, #0x30]
bl sub_0807921C
_08073418:
pop {r4, pc}
.align 2, 0
_0807341C: .4byte gUnk_03000BF0
thumb_func_start sub_08073420
sub_08073420: @ 0x08073420
push {r4, lr}
adds r4, r0, #0
bl sub_08078EFC
cmp r0, #0
bne _0807345E
bl sub_0807A1B8
ldrb r2, [r4, #0x1b]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r2
movs r2, #0x40
orrs r0, r2
strb r0, [r4, #0x1b]
ldrb r0, [r4, #0x19]
ands r1, r0
orrs r1, r2
strb r1, [r4, #0x19]
ldr r0, _08073460 @ =gUnk_03003F80
adds r0, #0xa8
movs r1, #8
strb r1, [r0]
ldr r1, _08073464 @ =gUnk_0811BC08
ldrb r0, [r4, #0xd]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
_0807345E:
pop {r4, pc}
.align 2, 0
_08073460: .4byte gUnk_03003F80
_08073464: .4byte gUnk_0811BC08
thumb_func_start sub_08073468
sub_08073468: @ 0x08073468
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, _080734CC @ =gUnk_03003F80
movs r1, #0
movs r0, #0xe0
lsls r0, r0, #3
strh r0, [r5, #8]
strb r1, [r5, #2]
ldr r0, _080734D0 @ =0xFFFF0000
str r0, [r4, #0x20]
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
movs r0, #0xf0
lsls r0, r0, #1
str r0, [r4, #0x7c]
ldrb r0, [r4, #0x14]
lsls r0, r0, #2
strb r0, [r4, #0x15]
ldr r1, [r5, #0x30]
movs r2, #0x80
lsls r2, r2, #0x11
adds r0, r1, #0
ands r0, r2
cmp r0, #0
bne _080734AC
orrs r1, r2
str r1, [r5, #0x30]
adds r0, r4, #0
movs r1, #0x61
movs r2, #0
movs r3, #0
bl sub_080A2988
_080734AC:
bl sub_08077B2C
ldr r0, [r4, #0x20]
cmp r0, #0
bgt _080734C0
adds r0, r5, #0
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #1
bne _080734C8
_080734C0:
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
_080734C8:
pop {r4, r5, pc}
.align 2, 0
_080734CC: .4byte gUnk_03003F80
_080734D0: .4byte 0xFFFF0000
thumb_func_start sub_080734D4
sub_080734D4: @ 0x080734D4
push {r4, lr}
adds r4, r0, #0
ldr r1, _080734FC @ =0xFFFFF000
bl sub_08003FC4
ldr r0, [r4, #0x20]
cmp r0, #0
bgt _080734EE
ldr r0, _08073500 @ =gUnk_03003F80
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #1
bne _080734FA
_080734EE:
movs r0, #0x92
lsls r0, r0, #0xb
str r0, [r4, #0x20]
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
_080734FA:
pop {r4, pc}
.align 2, 0
_080734FC: .4byte 0xFFFFF000
_08073500: .4byte gUnk_03003F80
thumb_func_start sub_08073504
sub_08073504: @ 0x08073504
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x20]
movs r1, #0x80
lsls r1, r1, #7
cmp r0, #0
bge _08073516
movs r1, #0x80
lsls r1, r1, #4
_08073516:
adds r0, r4, #0
bl sub_08003FC4
ldr r0, [r4, #0x20]
cmp r0, #0
bge _08073576
movs r0, #0x36
ldrsh r1, [r4, r0]
movs r0, #0x20
rsbs r0, r0, #0
cmp r1, r0
ble _08073576
ldrb r0, [r4, #0xd]
adds r0, #1
movs r2, #0
strb r0, [r4, #0xd]
adds r1, r4, #0
adds r1, #0x80
ldrb r0, [r4, #0x15]
lsls r0, r0, #8
str r0, [r1]
adds r0, r4, #0
adds r0, #0x87
strb r2, [r0]
subs r0, #1
strb r2, [r0]
ldr r0, _08073580 @ =gUnk_03003F80
movs r1, #0xe1
lsls r1, r1, #3
strh r1, [r0, #8]
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #1
bne _08073576
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
movs r0, #6
strb r0, [r4, #0xd]
movs r0, #0x10
strh r0, [r4, #0x24]
movs r0, #0x1e
strb r0, [r4, #0xe]
movs r0, #0xa9
lsls r0, r0, #1
bl sub_080A3268
_08073576:
adds r0, r4, #0
bl sub_080042B8
pop {r4, pc}
.align 2, 0
_08073580: .4byte gUnk_03003F80
thumb_func_start sub_08073584
sub_08073584: @ 0x08073584
push {r4, r5, r6, lr}
adds r4, r0, #0
ldr r2, _080735DC @ =gUnk_03003F80
adds r0, r2, #0
adds r0, #0x92
ldrh r1, [r0]
movs r5, #0x80
adds r0, r5, #0
ands r0, r1
adds r6, r2, #0
cmp r0, #0
bne _080735C0
adds r0, r4, #0
adds r0, #0x3d
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bgt _080735C0
adds r0, r6, #0
adds r0, #0x3c
ldrb r0, [r0]
cmp r0, #0
bne _080735C0
ldr r0, [r6, #0x30]
movs r1, #0x80
lsls r1, r1, #0x11
ands r0, r1
cmp r0, #0
bne _080735E0
_080735C0:
ldrb r0, [r6, #2]
movs r1, #0x40
orrs r1, r0
strb r1, [r6, #2]
bl sub_0807921C
adds r0, r4, #0
bl sub_08073904
movs r0, #0xe6
lsls r0, r0, #3
strh r0, [r6, #8]
b _08073794
.align 2, 0
_080735DC: .4byte gUnk_03003F80
_080735E0:
ldr r0, _0807360C @ =gUnk_0200AF00
adds r0, #0x2f
movs r1, #1
strb r1, [r0]
movs r0, #0
bl sub_0807A2F8
cmp r0, #0
beq _08073610
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
ldrb r1, [r4, #0x14]
movs r0, #6
ands r0, r1
lsls r0, r0, #2
strb r0, [r4, #0x15]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
b _08073794
.align 2, 0
_0807360C: .4byte gUnk_0200AF00
_08073610:
ldr r0, _08073620 @ =gUnk_02033A90
ldrb r0, [r0, #1]
cmp r0, #0x10
bne _08073624
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r4, #0x24]
b _08073626
.align 2, 0
_08073620: .4byte gUnk_02033A90
_08073624:
strh r5, [r4, #0x24]
_08073626:
ldr r3, _08073650 @ =gUnk_03003F80
ldrb r1, [r3, #0xd]
movs r0, #0x80
ands r0, r1
adds r2, r4, #0
adds r2, #0x80
cmp r0, #0
bne _0807365A
ldrb r0, [r4, #0x15]
cmp r0, r1
beq _0807365A
ldrb r1, [r3, #0xd]
subs r0, r0, r1
movs r1, #0x1f
ands r0, r1
cmp r0, #0xf
bgt _08073654
ldr r0, [r2]
subs r0, #0x20
b _08073658
.align 2, 0
_08073650: .4byte gUnk_03003F80
_08073654:
ldr r0, [r2]
adds r0, #0x20
_08073658:
str r0, [r2]
_0807365A:
ldr r0, [r2]
lsrs r0, r0, #8
movs r1, #0x1f
ands r0, r1
strb r0, [r4, #0x15]
bl sub_08079E08
ldrb r2, [r4, #0x14]
lsls r3, r2, #2
ldrb r1, [r4, #0x15]
cmp r2, #0
bne _0807367C
adds r3, #8
movs r0, #0x1f
ands r3, r0
adds r1, #8
ands r1, r0
_0807367C:
subs r0, r3, #7
cmp r0, r1
bls _08073686
subs r3, r2, #2
b _0807368E
_08073686:
adds r0, r3, #7
cmp r0, r1
bhs _08073694
adds r3, r2, #2
_0807368E:
movs r0, #7
ands r3, r0
b _08073696
_08073694:
adds r3, r2, #0
_08073696:
movs r0, #0x87
adds r0, r0, r4
mov ip, r0
ldrb r1, [r4, #0x14]
cmp r3, r1
beq _080736A8
movs r0, #0x14
mov r2, ip
strb r0, [r2]
_080736A8:
strb r3, [r4, #0x14]
movs r5, #0
ldr r1, _080736E4 @ =gUnk_03003F80
ldrb r2, [r1, #0xd]
lsrs r3, r2, #2
mov r6, ip
ldrb r0, [r6]
adds r6, r1, #0
cmp r0, #0
beq _080736CA
movs r0, #0x80
ands r0, r2
cmp r0, #0
bne _08073736
ldrb r0, [r4, #0x14]
cmp r0, r3
beq _08073736
_080736CA:
movs r0, #0x80
ands r0, r2
cmp r0, #0
bne _080736FA
ldrb r2, [r4, #0x14]
cmp r2, r3
beq _080736FA
movs r0, #4
eors r0, r3
cmp r2, r0
bne _080736E8
movs r5, #2
b _080736FA
.align 2, 0
_080736E4: .4byte gUnk_03003F80
_080736E8:
movs r0, #6
ands r0, r3
adds r0, #2
movs r1, #7
ands r0, r1
movs r5, #3
cmp r2, r0
bne _080736FA
movs r5, #1
_080736FA:
ldr r1, _0807371C @ =gUnk_0811BC28
lsls r0, r5, #1
adds r0, r0, r1
ldrh r0, [r0]
ldrh r1, [r6, #8]
cmp r0, r1
bne _0807372C
ldr r0, _08073720 @ =gUnk_02033A90
ldrb r0, [r0, #1]
cmp r0, #0x10
bne _08073724
adds r0, r4, #0
movs r1, #2
bl sub_080042BA
b _0807372E
.align 2, 0
_0807371C: .4byte gUnk_0811BC28
_08073720: .4byte gUnk_02033A90
_08073724:
adds r0, r4, #0
bl sub_080042B8
b _0807372E
_0807372C:
strh r0, [r6, #8]
_0807372E:
adds r0, r4, #0
adds r0, #0x86
strb r5, [r0]
b _08073762
_08073736:
mov r2, ip
ldrb r0, [r2]
subs r0, #1
strb r0, [r2]
ldr r1, _0807375C @ =gUnk_0811BC30
adds r0, r4, #0
adds r0, #0x86
ldrb r0, [r0]
lsls r0, r0, #1
adds r0, r0, r1
ldrh r0, [r0]
ldrh r1, [r6, #8]
cmp r0, r1
bne _08073760
adds r0, r4, #0
bl sub_080042B8
b _08073762
.align 2, 0
_0807375C: .4byte gUnk_0811BC30
_08073760:
strh r0, [r6, #8]
_08073762:
ldr r0, [r4, #0x7c]
subs r1, r0, #1
str r1, [r4, #0x7c]
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
bne _08073784
ldr r2, _08073780 @ =gUnk_03003F80
ldrb r1, [r2, #2]
movs r0, #0x40
orrs r0, r1
strb r0, [r2, #2]
bl sub_0807921C
b _08073794
.align 2, 0
_08073780: .4byte gUnk_03003F80
_08073784:
adds r0, r1, #0
movs r1, #0x14
bl __divsi3
ldr r2, _08073798 @ =0x0000FFF8
adds r1, r2, #0
subs r1, r1, r0
strh r1, [r4, #0x36]
_08073794:
pop {r4, r5, r6, pc}
.align 2, 0
_08073798: .4byte 0x0000FFF8
thumb_func_start sub_0807379C
sub_0807379C: @ 0x0807379C
push {lr}
adds r2, r0, #0
ldrh r3, [r2, #0x36]
movs r0, #0x36
ldrsh r1, [r2, r0]
movs r0, #0x20
rsbs r0, r0, #0
cmp r1, r0
ble _080737B4
subs r0, r3, #1
strh r0, [r2, #0x36]
b _080737BA
_080737B4:
ldrb r0, [r2, #0xd]
adds r0, #1
strb r0, [r2, #0xd]
_080737BA:
pop {pc}
thumb_func_start sub_080737BC
sub_080737BC: @ 0x080737BC
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
adds r0, r4, #0
bl sub_0806F69C
ldr r0, [r4, #0x34]
movs r1, #0x98
lsls r1, r1, #7
adds r0, r0, r1
str r0, [r4, #0x34]
ldrb r1, [r4, #0x15]
movs r0, #8
ands r0, r1
cmp r0, #0
beq _080737E2
ldrh r1, [r4, #0x2e]
b _080737E4
_080737E2:
ldrh r1, [r4, #0x32]
_080737E4:
movs r0, #0xf
ands r0, r1
cmp r0, #8
bne _08073804
adds r0, r4, #0
bl sub_080002D0
cmp r0, #0
bne _08073804
ldr r2, _08073808 @ =gUnk_03003F80
ldrb r1, [r2, #2]
movs r0, #0x40
orrs r0, r1
strb r0, [r2, #2]
bl sub_0807921C
_08073804:
pop {r4, pc}
.align 2, 0
_08073808: .4byte gUnk_03003F80
thumb_func_start sub_0807380C
sub_0807380C: @ 0x0807380C
push {r4, lr}
adds r4, r0, #0
ldr r0, _08073854 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #3
ands r0, r1
cmp r0, #0
bne _0807382A
ldrb r0, [r4, #0x14]
adds r0, #2
movs r1, #6
ands r0, r1
strb r0, [r4, #0x14]
lsls r0, r0, #2
strb r0, [r4, #0x15]
_0807382A:
ldr r2, _08073858 @ =gUnk_03003F80
ldr r1, _0807385C @ =gUnk_0811BC38
ldrb r0, [r4, #0x14]
lsrs r0, r0, #1
lsls r0, r0, #1
adds r0, r0, r1
ldrh r0, [r0]
strh r0, [r2, #8]
movs r0, #0x36
ldrsh r1, [r4, r0]
movs r0, #0x10
rsbs r0, r0, #0
cmp r1, r0
bge _08073860
movs r1, #0x80
lsls r1, r1, #2
adds r0, r4, #0
bl sub_08003FC4
b _0807387A
.align 2, 0
_08073854: .4byte gUnk_030010A0
_08073858: .4byte gUnk_03003F80
_0807385C: .4byte gUnk_0811BC38
_08073860:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0807387A
movs r0, #7
strb r0, [r4, #0xd]
movs r0, #0x3c
strb r0, [r4, #0xe]
movs r0, #0x80
lsls r0, r0, #0xa
str r0, [r4, #0x20]
_0807387A:
adds r0, r4, #0
bl sub_080042B8
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08073884
sub_08073884: @ 0x08073884
push {r4, lr}
adds r4, r0, #0
ldr r0, _080738DC @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #1
ands r0, r1
cmp r0, #0
bne _080738A2
ldrb r0, [r4, #0x14]
adds r0, #2
movs r1, #6
ands r0, r1
strb r0, [r4, #0x14]
lsls r0, r0, #2
strb r0, [r4, #0x15]
_080738A2:
ldr r2, _080738E0 @ =gUnk_03003F80
ldr r1, _080738E4 @ =gUnk_0811BC40
ldrb r0, [r4, #0x14]
lsrs r0, r0, #1
lsls r0, r0, #1
adds r0, r0, r1
ldrh r0, [r0]
strh r0, [r2, #8]
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080738F0
adds r1, r2, #0
adds r1, #0x39
ldrb r0, [r1]
cmp r0, #0xff
beq _080738EC
adds r1, r0, #0
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _080738E8 @ =gUnk_0813AD88
adds r0, r0, r1
bl sub_08080840
b _080738F0
.align 2, 0
_080738DC: .4byte gUnk_030010A0
_080738E0: .4byte gUnk_03003F80
_080738E4: .4byte gUnk_0811BC40
_080738E8: .4byte gUnk_0813AD88
_080738EC:
bl sub_08052A4C
_080738F0:
ldr r1, _08073900 @ =0xFFFFE800
adds r0, r4, #0
bl sub_08003FC4
adds r0, r4, #0
bl sub_080042B8
pop {r4, pc}
.align 2, 0
_08073900: .4byte 0xFFFFE800
thumb_func_start sub_08073904
sub_08073904: @ 0x08073904
push {lr}
ldr r3, _0807391C @ =gUnk_0811BC48
ldr r1, _08073920 @ =gUnk_03003F80
ldrb r2, [r1, #2]
movs r1, #7
ands r1, r2
lsls r1, r1, #2
adds r1, r1, r3
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0807391C: .4byte gUnk_0811BC48
_08073920: .4byte gUnk_03003F80
thumb_func_start sub_08073924
sub_08073924: @ 0x08073924
push {r4, lr}
adds r4, r0, #0
ldr r2, _08073964 @ =gUnk_03003F80
ldr r0, [r2, #0x30]
movs r1, #0x80
lsls r1, r1, #0xb
ands r0, r1
cmp r0, #0
bne _08073962
movs r1, #0x36
ldrsh r0, [r4, r1]
movs r1, #0x80
lsls r1, r1, #8
ands r0, r1
cmp r0, #0
beq _08073962
ldrb r0, [r2, #0xa]
cmp r0, #0
bne _08073962
movs r0, #0x40
strb r0, [r2, #2]
movs r0, #0xff
strb r0, [r2, #0xd]
movs r0, #1
rsbs r0, r0, #0
strb r0, [r4, #0x15]
bl sub_08077B20
adds r0, r4, #0
bl sub_08073968
_08073962:
pop {r4, pc}
.align 2, 0
_08073964: .4byte gUnk_03003F80
thumb_func_start sub_08073968
sub_08073968: @ 0x08073968
push {r4, r5, lr}
adds r5, r0, #0
ldr r4, _08073998 @ =gUnk_03003F80
ldrb r1, [r4, #2]
movs r0, #0xc0
ands r0, r1
cmp r0, #0
bne _0807397C
ldrb r0, [r4, #0xd]
strb r0, [r5, #0x15]
_0807397C:
bl sub_08078F24
ldrb r1, [r4, #5]
ldrb r0, [r4, #0xb]
orrs r0, r1
cmp r0, #0
bne _080739D4
ldr r1, [r4, #0x30]
movs r0, #8
ands r0, r1
cmp r0, #0
beq _080739A0
ldr r0, _0807399C @ =0x0000041C
b _080739BA
.align 2, 0
_08073998: .4byte gUnk_03003F80
_0807399C: .4byte 0x0000041C
_080739A0:
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _080739BC
movs r0, #0x80
lsls r0, r0, #0x13
ands r1, r0
cmp r1, #0
beq _080739B8
movs r0, #0x81
lsls r0, r0, #4
b _080739BA
_080739B8:
ldr r0, _080739E4 @ =0x0000080C
_080739BA:
strh r0, [r4, #8]
_080739BC:
ldr r0, _080739E8 @ =gUnk_03003F80
ldrb r1, [r0, #2]
movs r0, #0xc0
ands r0, r1
cmp r0, #0
bne _080739CE
adds r0, r5, #0
bl sub_0806F948
_080739CE:
movs r0, #0x7c
bl sub_080A3268
_080739D4:
ldr r2, _080739E8 @ =gUnk_03003F80
ldrb r1, [r2, #2]
movs r0, #0xf8
ands r0, r1
movs r1, #2
orrs r0, r1
strb r0, [r2, #2]
pop {r4, r5, pc}
.align 2, 0
_080739E4: .4byte 0x0000080C
_080739E8: .4byte gUnk_03003F80
thumb_func_start sub_080739EC
sub_080739EC: @ 0x080739EC
push {r4, r5, lr}
adds r4, r0, #0
ldr r1, _08073A14 @ =gUnk_03003F80
ldrb r2, [r1, #2]
movs r0, #0xc0
ands r0, r2
adds r5, r1, #0
cmp r0, #0
beq _08073A18
ldrb r0, [r4, #0x15]
strb r0, [r5, #0xd]
movs r0, #0x80
ands r0, r2
cmp r0, #0
beq _08073A0E
movs r0, #0
strh r0, [r4, #0x2a]
_08073A0E:
movs r2, #0x80
lsls r2, r2, #6
b _08073A48
.align 2, 0
_08073A14: .4byte gUnk_03003F80
_08073A18:
movs r2, #0xc
rsbs r2, r2, #0
adds r0, r4, #0
movs r1, #0
bl sub_0806F854
lsls r0, r0, #0x10
cmp r0, #0
beq _08073A38
ldrb r1, [r5, #2]
movs r0, #8
orrs r0, r1
strb r0, [r5, #2]
movs r2, #0x80
lsls r2, r2, #7
b _08073A48
_08073A38:
movs r2, #0x80
lsls r2, r2, #6
ldrb r1, [r5, #2]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _08073A48
lsrs r2, r2, #1
_08073A48:
ldrb r1, [r5, #2]
movs r0, #0xc0
ands r0, r1
cmp r0, #0
bne _08073A7E
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq _08073A7E
ldr r0, [r4, #0x20]
cmp r0, #0
bne _08073A7E
movs r0, #0xa0
lsls r0, r0, #0xa
str r0, [r4, #0x20]
movs r0, #0xa
strb r0, [r4, #0xe]
movs r0, #0xff
strb r0, [r4, #0x15]
adds r0, r1, #2
strb r0, [r5, #2]
movs r0, #0xba
lsls r0, r0, #1
strh r0, [r5, #8]
bl sub_08078F60
b _08073A90
_08073A7E:
adds r0, r4, #0
adds r1, r2, #0
bl sub_08003FC4
cmp r0, #0
bne _08073A90
adds r0, r4, #0
bl sub_08073AD4
_08073A90:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08073A94
sub_08073A94: @ 0x08073A94
push {r4, lr}
adds r4, r0, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _08073AAE
adds r0, r4, #0
adds r0, #0x42
ldrb r0, [r0]
cmp r0, #0
beq _08073AB4
_08073AAE:
adds r0, r4, #0
bl sub_08073B60
_08073AB4:
ldr r0, _08073ACC @ =gLinkEntity
ldr r0, [r0, #0x34]
cmp r0, #0
beq _08073AC8
ldr r1, _08073AD0 @ =gUnk_03003F80
movs r0, #0
strb r0, [r1, #2]
adds r0, r4, #0
bl sub_08073924
_08073AC8:
pop {r4, pc}
.align 2, 0
_08073ACC: .4byte gLinkEntity
_08073AD0: .4byte gUnk_03003F80
thumb_func_start sub_08073AD4
sub_08073AD4: @ 0x08073AD4
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r0, #0x38
ldrb r1, [r0]
movs r0, #2
ands r0, r1
cmp r0, #0
bne _08073AFA
ldrb r2, [r4, #0x1b]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r2
movs r2, #0x80
orrs r0, r2
strb r0, [r4, #0x1b]
ldrb r0, [r4, #0x19]
ands r1, r0
orrs r1, r2
strb r1, [r4, #0x19]
_08073AFA:
ldr r6, _08073B48 @ =gUnk_03003F80
ldrb r5, [r6, #2]
movs r0, #0xc1
rsbs r0, r0, #0
ands r5, r0
ldrb r0, [r4, #0xc]
cmp r0, #0xa
beq _08073B32
bl sub_0807A2B8
movs r0, #0
strb r0, [r6, #2]
bl sub_0807A1B8
ldrb r0, [r6, #0xc]
cmp r0, #0
bne _08073B5C
adds r0, r6, #0
adds r0, #0x26
ldrb r0, [r0]
cmp r0, #0
bne _08073B5C
ldrb r0, [r6, #4]
cmp r0, #0
beq _08073B32
adds r0, r4, #0
bl sub_08073B60
_08073B32:
ldr r2, _08073B48 @ =gUnk_03003F80
adds r0, r5, #1
strb r0, [r2, #2]
ldr r0, [r2, #0x30]
movs r1, #8
ands r0, r1
cmp r0, #0
beq _08073B50
ldr r0, _08073B4C @ =0x00000424
b _08073B54
.align 2, 0
_08073B48: .4byte gUnk_03003F80
_08073B4C: .4byte 0x00000424
_08073B50:
movs r0, #0x82
lsls r0, r0, #4
_08073B54:
strh r0, [r2, #8]
movs r0, #0x7d
bl sub_080A3268
_08073B5C:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_08073B60
sub_08073B60: @ 0x08073B60
push {r4, r5, lr}
adds r5, r0, #0
ldr r4, _08073B88 @ =gUnk_03003F80
movs r0, #0
strb r0, [r4, #0x1b]
strb r0, [r4, #4]
strb r0, [r4, #2]
bl sub_08079938
adds r0, r5, #0
bl sub_080085B0
ldr r0, [r4, #0x30]
movs r1, #0x20
ands r0, r1
cmp r0, #0
bne _08073B86
bl sub_080791BC
_08073B86:
pop {r4, r5, pc}
.align 2, 0
_08073B88: .4byte gUnk_03003F80
thumb_func_start sub_08073B8C
sub_08073B8C: @ 0x08073B8C
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, _08073BCC @ =gUnk_03003F80
ldrb r0, [r5, #4]
cmp r0, #0
beq _08073C04
movs r2, #0xc
rsbs r2, r2, #0
adds r0, r4, #0
movs r1, #0
bl sub_0806F854
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _08073BB8
adds r0, r4, #0
bl sub_080042B8
_08073BB8:
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _08073BD0
subs r0, #1
strb r0, [r4, #0xe]
b _08073C28
.align 2, 0
_08073BCC: .4byte gUnk_03003F80
_08073BD0:
movs r1, #0x80
lsls r1, r1, #7
adds r0, r4, #0
bl sub_08003FC4
movs r0, #0x36
ldrsh r1, [r4, r0]
movs r0, #8
rsbs r0, r0, #0
cmp r1, r0
blt _08073C28
ldrb r0, [r5, #0x14]
cmp r0, #0
bne _08073C0C
bl sub_0807A2B8
cmp r0, #0
bne _08073BFC
bl sub_08079D48
cmp r0, #0
bne _08073C0C
_08073BFC:
ldrb r0, [r4, #0x10]
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
_08073C04:
adds r0, r4, #0
bl sub_08073B60
b _08073C28
_08073C0C:
ldr r1, _08073C2C @ =gUnk_03003F80
ldrb r0, [r1, #2]
adds r0, #1
strb r0, [r1, #2]
movs r0, #0xf
strb r0, [r4, #0xe]
movs r0, #0x10
movs r1, #0
bl sub_08080964
movs r0, #0xa6
lsls r0, r0, #1
bl sub_080A3268
_08073C28:
pop {r4, r5, pc}
.align 2, 0
_08073C2C: .4byte gUnk_03003F80
thumb_func_start sub_08073C30
sub_08073C30: @ 0x08073C30
push {lr}
adds r2, r0, #0
ldr r0, _08073C54 @ =gUnk_03003F80
ldrb r0, [r0, #4]
cmp r0, #0
beq _08073C4A
ldrb r0, [r2, #0xe]
subs r0, #1
strb r0, [r2, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _08073C58
_08073C4A:
adds r0, r2, #0
bl sub_08073B60
b _08073C66
.align 2, 0
_08073C54: .4byte gUnk_03003F80
_08073C58:
ldrb r0, [r2, #0x10]
movs r1, #0x80
orrs r0, r1
strb r0, [r2, #0x10]
adds r0, r2, #0
bl sub_080042B8
_08073C66:
pop {pc}
thumb_func_start sub_08073C68
sub_08073C68: @ 0x08073C68
push {lr}
ldr r2, _08073C7C @ =gUnk_0811BC60
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08073C7C: .4byte gUnk_0811BC60
thumb_func_start sub_08073C80
sub_08073C80: @ 0x08073C80
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
ldr r2, _08073D00 @ =gUnk_03003F80
ldr r0, [r2, #0x30]
movs r1, #0x80
orrs r0, r1
str r0, [r2, #0x30]
movs r5, #0
ldr r0, _08073D04 @ =0x00000C18
strh r0, [r2, #8]
ldrb r0, [r4, #0x18]
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x18]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
movs r1, #0x18
orrs r0, r1
strb r0, [r2]
ldrb r1, [r4, #0x18]
movs r0, #0x31
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
ldrb r1, [r4, #0x19]
movs r7, #4
rsbs r7, r7, #0
adds r0, r7, #0
ands r0, r1
strb r0, [r4, #0x19]
ldr r0, _08073D08 @ =gUnk_0811BC80
str r0, [r4, #0x48]
strb r5, [r4, #0xe]
movs r6, #2
strb r6, [r4, #0xf]
adds r0, r4, #0
adds r0, #0x42
strb r5, [r0]
movs r0, #1
strb r0, [r4, #0xd]
adds r0, r4, #0
movs r1, #1
movs r2, #2
bl sub_080AE008
ldr r0, _08073D0C @ =gUnk_03000BF0
str r4, [r0, #0x30]
bl sub_080809D4
ldr r1, _08073D10 @ =gUnk_030010A0
ldrb r0, [r1, #0xf]
cmp r0, #9
bne _08073D14
strb r5, [r1, #0xf]
ldrb r1, [r4, #0x18]
adds r0, r7, #0
ands r0, r1
strb r0, [r4, #0x18]
strb r6, [r4, #0xd]
b _08073D1E
.align 2, 0
_08073D00: .4byte gUnk_03003F80
_08073D04: .4byte 0x00000C18
_08073D08: .4byte gUnk_0811BC80
_08073D0C: .4byte gUnk_03000BF0
_08073D10: .4byte gUnk_030010A0
_08073D14:
movs r0, #4
movs r1, #0
movs r2, #0
bl CreateObject
_08073D1E:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_08073D20
sub_08073D20: @ 0x08073D20
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r4, r0, #0
ldr r5, _08073D70 @ =gUnk_03003F80
movs r0, #0xa8
adds r0, r0, r5
mov r8, r0
movs r0, #0
mov r1, r8
strb r0, [r1]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
subs r0, #0x39
ands r0, r1
movs r1, #0x18
orrs r0, r1
strb r0, [r2]
adds r1, r4, #0
adds r1, #0x40
movs r0, #1
strb r0, [r1]
bl sub_08078F60
adds r7, r5, #0
adds r7, #0x26
ldrb r0, [r7]
cmp r0, #0
bne _08073D60
movs r0, #0xc0
strh r0, [r4, #0x24]
_08073D60:
bl sub_08079B24
cmp r0, #0
bne _08073D74
adds r0, r4, #0
bl sub_08079708
b _08073EFC
.align 2, 0
_08073D70: .4byte gUnk_03003F80
_08073D74:
bl sub_08078EFC
adds r6, r0, #0
cmp r6, #0
beq _08073D80
b _08073EFC
_08073D80:
adds r0, r4, #0
bl sub_08073904
bl sub_0807A1B8
ldrb r0, [r5, #2]
cmp r0, #0
beq _08073D96
movs r0, #0x14
mov r1, r8
strb r0, [r1]
_08073D96:
ldrb r0, [r5, #0x12]
subs r0, #0x18
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bls _08073DB0
strb r6, [r7]
adds r2, r4, #0
adds r2, #0x3c
ldrb r1, [r2]
movs r0, #0xfb
ands r0, r1
strb r0, [r2]
_08073DB0:
bl sub_08078EFC
cmp r0, #0
beq _08073DBA
b _08073EFC
_08073DBA:
ldrb r0, [r4, #0xd]
cmp r0, #2
bne _08073DC2
b _08073EFC
_08073DC2:
ldr r0, [r5, #0x30]
movs r1, #0x40
ands r0, r1
cmp r0, #0
bne _08073E10
adds r0, r4, #0
bl sub_080085B0
bl sub_080792D8
ldrb r0, [r5, #0xa]
cmp r0, #0
bne _08073DE6
bl sub_08079550
cmp r0, #0
beq _08073DE6
b _08073EFC
_08073DE6:
adds r0, r4, #0
adds r0, #0x42
ldrb r0, [r0]
cmp r0, #0
beq _08073DFA
adds r0, r4, #0
adds r0, #0x3e
ldrb r0, [r0]
strb r0, [r4, #0x15]
b _08073EFC
_08073DFA:
bl sub_080782C0
cmp r0, #0
beq _08073E08
bl sub_08078EFC
b _08073EFC
_08073E08:
ldrb r0, [r4, #0x10]
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
_08073E10:
bl sub_08019840
cmp r0, #0
bne _08073EFC
adds r0, r4, #0
bl sub_08077698
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
adds r1, r0, #0
cmp r1, #0
bne _08073E32
ldr r0, _08073E74 @ =gUnk_03003F80
strb r1, [r0, #2]
_08073E32:
ldr r2, _08073E74 @ =gUnk_03003F80
ldrb r1, [r2, #7]
movs r3, #0x80
adds r0, r3, #0
ands r0, r1
cmp r0, #0
bne _08073EFC
ldrb r0, [r2, #0xa]
cmp r0, #0
bne _08073EFC
adds r0, r4, #0
adds r0, #0x3d
movs r1, #0
ldrsb r1, [r0, r1]
adds r6, r0, #0
cmp r1, #8
bgt _08073E90
adds r0, r2, #0
adds r0, #0x26
ldrb r0, [r0]
cmp r0, #0
beq _08073E78
adds r1, r2, #0
adds r1, #0xa8
movs r0, #7
strb r0, [r1]
adds r0, r4, #0
bl sub_0807ACCC
bl sub_08079E08
b _08073E90
.align 2, 0
_08073E74: .4byte gUnk_03003F80
_08073E78:
ldrb r1, [r2, #0xd]
strb r1, [r4, #0x15]
adds r0, r3, #0
ands r0, r1
cmp r0, #0
bne _08073E90
adds r1, r2, #0
adds r1, #0xa8
movs r0, #1
strb r0, [r1]
bl sub_08079E08
_08073E90:
ldr r5, _08073EF0 @ =gUnk_03003F80
ldrb r0, [r5, #0xb]
cmp r0, #0
bne _08073E9E
adds r0, r4, #0
bl sub_0806F948
_08073E9E:
adds r0, r4, #0
bl sub_080042B8
adds r0, r4, #0
bl sub_0807B068
movs r0, #0x10
bl sub_080793E4
cmp r0, #0
beq _08073EDC
movs r0, #0x14
strb r0, [r6]
adds r1, r4, #0
adds r1, #0x42
movs r0, #4
strb r0, [r1]
ldrb r0, [r4, #0x14]
lsls r0, r0, #2
movs r1, #0x10
eors r0, r1
adds r1, r4, #0
adds r1, #0x3e
strb r0, [r1]
movs r0, #2
rsbs r0, r0, #0
bl ModHealth
movs r0, #0x7a
bl sub_080A3268
_08073EDC:
ldr r0, [r5, #0x30]
movs r1, #0x40
ands r0, r1
cmp r0, #0
bne _08073EF4
adds r0, r4, #0
bl sub_08008AC6
b _08073EFC
.align 2, 0
_08073EF0: .4byte gUnk_03003F80
_08073EF4:
adds r1, r5, #0
adds r1, #0xa8
movs r0, #0xd
strb r0, [r1]
_08073EFC:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_08073F04
sub_08073F04: @ 0x08073F04
push {lr}
adds r3, r0, #0
adds r3, #0x29
ldrb r2, [r3]
movs r1, #0x39
rsbs r1, r1, #0
ands r1, r2
movs r2, #0x10
orrs r1, r2
strb r1, [r3]
ldrb r2, [r0, #0x18]
movs r1, #4
rsbs r1, r1, #0
ands r1, r2
strb r1, [r0, #0x18]
ldrb r1, [r0, #0xd]
adds r1, #1
strb r1, [r0, #0xd]
movs r1, #0xa0
lsls r1, r1, #0xa
str r1, [r0, #0x20]
movs r1, #0x80
lsls r1, r1, #1
strh r1, [r0, #0x24]
ldr r2, _08073F48 @ =gUnk_03003F80
ldr r0, [r2, #0x30]
movs r1, #0x81
rsbs r1, r1, #0
ands r0, r1
str r0, [r2, #0x30]
bl sub_08077B2C
pop {pc}
.align 2, 0
_08073F48: .4byte gUnk_03003F80
thumb_func_start sub_08073F4C
sub_08073F4C: @ 0x08073F4C
push {r4, r5, lr}
adds r4, r0, #0
ldr r0, _08073F84 @ =gUnk_02033A90
ldrh r3, [r0, #0x12]
ldrh r5, [r0, #0x14]
movs r0, #0x2e
ldrsh r2, [r4, r0]
cmp r2, r3
bne _08073F66
movs r1, #0x32
ldrsh r0, [r4, r1]
cmp r0, r5
beq _08073F88
_08073F66:
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]
adds r0, r4, #0
bl sub_0806F69C
b _08073FC6
.align 2, 0
_08073F84: .4byte gUnk_02033A90
_08073F88:
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
movs r0, #0x1e
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
ldrb r1, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
adds r0, r4, #0
adds r0, #0x80
movs r1, #0x90
lsls r1, r1, #3
str r1, [r0]
adds r0, #4
str r1, [r0]
ldrb r0, [r4, #0x19]
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x19]
adds r0, r4, #0
bl sub_08074018
ldr r1, _08073FC8 @ =gUnk_03003F80
ldr r0, _08073FCC @ =0x0000073C
strh r0, [r1, #8]
_08073FC6:
pop {r4, r5, pc}
.align 2, 0
_08073FC8: .4byte gUnk_03003F80
_08073FCC: .4byte 0x0000073C
thumb_func_start sub_08073FD0
sub_08073FD0: @ 0x08073FD0
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _08073FF8
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08074016
ldrb r1, [r4, #0x18]
lsls r0, r1, #0x1e
cmp r0, #0
bne _08073FF8
movs r0, #3
orrs r0, r1
strb r0, [r4, #0x18]
movs r0, #0x7c
bl sub_080A3268
_08073FF8:
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
ldr r0, [r4, #0x20]
cmp r0, #0
bne _08074016
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
movs r0, #0xb8
lsls r0, r0, #1
bl sub_080A3268
_08074016:
pop {r4, pc}
thumb_func_start sub_08074018
sub_08074018: @ 0x08074018
push {r4, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x80
ldr r0, [r1]
movs r3, #0x80
lsls r3, r3, #1
cmp r0, r3
bls _0807402E
subs r0, #0x20
str r0, [r1]
_0807402E:
adds r0, r4, #0
adds r0, #0x84
ldr r1, [r0]
adds r2, r0, #0
cmp r1, r3
bls _08074042
adds r0, r1, #0
subs r0, #0x20
str r0, [r2]
b _08074048
_08074042:
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
_08074048:
adds r0, r4, #0
adds r0, #0x80
ldr r1, [r0]
ldr r2, [r2]
adds r0, r4, #0
movs r3, #0
bl sub_0805EC9C
adds r0, r4, #0
bl sub_080042B8
pop {r4, pc}
thumb_func_start sub_08074060
sub_08074060: @ 0x08074060
push {r4, lr}
adds r4, r0, #0
movs r1, #0x80
lsls r1, r1, #6
bl sub_08003FC4
cmp r0, #0
bne _080740D0
ldr r0, _080740C4 @ =gUnk_08114F88
str r0, [r4, #0x48]
movs r3, #0x10
movs r0, #0x10
strb r0, [r4, #0x15]
movs r0, #4
strb r0, [r4, #0x14]
movs r2, #0
adds r0, #0xfc
strh r0, [r4, #0x24]
movs r0, #0x29
adds r0, r0, r4
mov ip, r0
ldrb r1, [r0]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
movs r1, #8
orrs r0, r1
mov r1, ip
strb r0, [r1]
ldrb r1, [r4, #0x18]
movs r0, #0x31
rsbs r0, r0, #0
ands r0, r1
orrs r0, r3
strb r0, [r4, #0x18]
strb r2, [r4, #0xf]
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
movs r0, #0x80
lsls r0, r0, #0xa
str r0, [r4, #0x20]
ldr r1, _080740C8 @ =gUnk_03003F80
ldr r0, _080740CC @ =0x0000080C
strh r0, [r1, #8]
adds r0, r4, #0
bl sub_0805EC60
b _080740D6
.align 2, 0
_080740C4: .4byte gUnk_08114F88
_080740C8: .4byte gUnk_03003F80
_080740CC: .4byte 0x0000080C
_080740D0:
adds r0, r4, #0
bl sub_080042B8
_080740D6:
pop {r4, pc}
thumb_func_start sub_080740D8
sub_080740D8: @ 0x080740D8
push {r4, r5, r6, lr}
adds r4, r0, #0
bl sub_080042B8
ldrb r0, [r4, #0xf]
cmp r0, #0
bne _080740EA
ldrb r0, [r4, #0x15]
b _080740F0
_080740EA:
ldrb r1, [r4, #0x15]
movs r0, #0x10
eors r0, r1
_080740F0:
cmp r0, #8
beq _08074128
cmp r0, #8
bhi _080740FE
cmp r0, #0
beq _08074168
b _0807418C
_080740FE:
cmp r0, #0x10
beq _08074148
cmp r0, #0x18
bne _0807418C
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, [r4, #0x48]
ldrb r0, [r2, #2]
subs r1, r1, r0
movs r0, #0
ldrsb r0, [r2, r0]
adds r1, r1, r0
ldr r3, _08074124 @ =gUnk_03000BF0
ldrh r0, [r3, #6]
subs r6, r1, r0
movs r1, #0x32
ldrsh r0, [r4, r1]
b _08074182
.align 2, 0
_08074124: .4byte gUnk_03000BF0
_08074128:
ldr r2, [r4, #0x48]
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldrb r1, [r2, #2]
adds r0, r0, r1
movs r1, #0
ldrsb r1, [r2, r1]
adds r0, r0, r1
ldr r3, _08074144 @ =gUnk_03000BF0
ldrh r1, [r3, #6]
subs r6, r0, r1
movs r1, #0x32
ldrsh r0, [r4, r1]
b _08074182
.align 2, 0
_08074144: .4byte gUnk_03000BF0
_08074148:
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, [r4, #0x48]
movs r0, #0
ldrsb r0, [r2, r0]
adds r1, r1, r0
ldr r3, _08074164 @ =gUnk_03000BF0
ldrh r0, [r3, #6]
subs r6, r1, r0
movs r1, #0x32
ldrsh r0, [r4, r1]
ldrb r1, [r2, #5]
adds r0, r0, r1
b _08074182
.align 2, 0
_08074164: .4byte gUnk_03000BF0
_08074168:
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, [r4, #0x48]
movs r0, #0
ldrsb r0, [r2, r0]
adds r1, r1, r0
ldr r3, _080741A4 @ =gUnk_03000BF0
ldrh r0, [r3, #6]
subs r6, r1, r0
movs r1, #0x32
ldrsh r0, [r4, r1]
ldrb r1, [r2, #5]
subs r0, r0, r1
_08074182:
movs r1, #1
ldrsb r1, [r2, r1]
adds r0, r0, r1
ldrh r1, [r3, #8]
subs r5, r0, r1
_0807418C:
ldr r2, _080741A8 @ =gUnk_080082DC
adds r0, r6, #0
adds r1, r5, #0
bl sub_080086B4
cmp r0, #0
beq _080741AC
adds r0, r4, #0
bl sub_0806F69C
b _080741B0
.align 2, 0
_080741A4: .4byte gUnk_03000BF0
_080741A8: .4byte gUnk_080082DC
_080741AC:
movs r0, #1
strb r0, [r4, #0xf]
_080741B0:
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
bne _080741C2
bl sub_0807921C
_080741C2:
pop {r4, r5, r6, pc}
thumb_func_start sub_080741C4
sub_080741C4: @ 0x080741C4
push {lr}
ldr r0, _080741F0 @ =gUnk_03003F80
ldrb r1, [r0, #2]
adds r2, r0, #0
cmp r1, #0
beq _080741D8
movs r0, #7
ands r0, r1
cmp r0, #3
bne _080741E0
_080741D8:
ldr r0, _080741F4 @ =gLinkEntity
ldr r0, [r0, #0x34]
cmp r0, #0
beq _080741F8
_080741E0:
movs r1, #0
strb r1, [r2, #0x11]
adds r0, r2, #0
adds r0, #0x37
strb r1, [r0]
movs r0, #1
b _080741FA
.align 2, 0
_080741F0: .4byte gUnk_03003F80
_080741F4: .4byte gLinkEntity
_080741F8:
movs r0, #0
_080741FA:
pop {pc}
thumb_func_start nullsub_112
nullsub_112: @ 0x080741FC
bx lr
.align 2, 0
thumb_func_start sub_08074200
sub_08074200: @ 0x08074200
push {r4, lr}
adds r4, r0, #0
bl sub_080741C4
cmp r0, #0
bne _08074226
adds r0, r4, #0
bl sub_08079C30
cmp r0, #0
beq _08074226
ldrb r0, [r4, #0xc]
cmp r0, #3
beq _08074226
bl sub_08077B2C
ldr r1, _08074228 @ =gUnk_03003F80
movs r0, #3
strb r0, [r1, #0xc]
_08074226:
pop {r4, pc}
.align 2, 0
_08074228: .4byte gUnk_03003F80
thumb_func_start sub_0807422C
sub_0807422C: @ 0x0807422C
push {lr}
movs r1, #8
movs r2, #0x18
bl sub_08074244
pop {pc}
thumb_func_start sub_08074238
sub_08074238: @ 0x08074238
push {lr}
movs r1, #0
movs r2, #0x10
bl sub_08074244
pop {pc}
thumb_func_start sub_08074244
sub_08074244: @ 0x08074244
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
adds r6, r1, #0
adds r7, r2, #0
ldr r5, _0807428C @ =gUnk_03003F80
ldrb r0, [r5, #0x12]
subs r0, #0x28
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bls _08074278
adds r1, r4, #0
adds r1, #0x38
movs r0, #3
strb r0, [r1]
ldrb r2, [r4, #0x1b]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r2
movs r2, #0x40
orrs r0, r2
strb r0, [r4, #0x1b]
ldrb r0, [r4, #0x19]
ands r1, r0
orrs r1, r2
strb r1, [r4, #0x19]
_08074278:
bl sub_080741C4
cmp r0, #0
bne _080742A6
ldrb r0, [r5, #0x1e]
cmp r0, #0
bne _08074290
ldrb r0, [r5, #0xd]
b _08074294
.align 2, 0
_0807428C: .4byte gUnk_03003F80
_08074290:
ldrb r0, [r4, #0x14]
lsls r0, r0, #2
_08074294:
cmp r6, r0
bne _0807429C
cmp r7, r0
beq _080742A6
_0807429C:
ldr r1, _080742A8 @ =gUnk_03003F80
adds r1, #0x80
ldrh r0, [r1]
subs r0, #0x50
strh r0, [r1]
_080742A6:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080742A8: .4byte gUnk_03003F80
thumb_func_start sub_080742AC
sub_080742AC: @ 0x080742AC
push {lr}
adds r2, r0, #0
ldr r0, _080742E0 @ =gUnk_03003F80
adds r1, r0, #0
adds r1, #0x26
ldrb r0, [r1]
cmp r0, #0
beq _080742C0
movs r0, #0
strb r0, [r1]
_080742C0:
adds r3, r2, #0
adds r3, #0x29
ldrb r1, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #4
orrs r0, r1
strb r0, [r3]
adds r2, #0x3c
ldrb r1, [r2]
movs r0, #0xfb
ands r0, r1
strb r0, [r2]
pop {pc}
.align 2, 0
_080742E0: .4byte gUnk_03003F80
thumb_func_start sub_080742E4
sub_080742E4: @ 0x080742E4
push {r4, lr}
adds r4, r0, #0
bl sub_080741C4
cmp r0, #0
bne _0807430E
ldr r2, _08074310 @ =gUnk_03003F80
ldr r0, [r2, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _0807430E
ldrb r0, [r2, #0x11]
cmp r0, #0xf
bne _0807430E
adds r0, r4, #0
movs r1, #0xe
movs r2, #0
movs r3, #0
bl sub_080A2988
_0807430E:
pop {r4, pc}
.align 2, 0
_08074310: .4byte gUnk_03003F80
thumb_func_start sub_08074314
sub_08074314: @ 0x08074314
push {lr}
adds r2, r0, #0
ldrh r1, [r2, #0x32]
movs r0, #0xf
ands r0, r1
cmp r0, #0xd
bgt _08074330
movs r0, #0xcc
lsls r0, r0, #7
strh r0, [r2, #0x2a]
adds r0, r2, #0
bl sub_080743A4
b _08074336
_08074330:
adds r0, r2, #0
bl sub_0807A298
_08074336:
pop {pc}
thumb_func_start sub_08074338
sub_08074338: @ 0x08074338
push {lr}
adds r2, r0, #0
ldrh r1, [r2, #0x32]
movs r0, #0xf
ands r0, r1
cmp r0, #1
ble _08074354
movs r0, #0xcc
lsls r0, r0, #7
strh r0, [r2, #0x2a]
adds r0, r2, #0
bl sub_080743A4
b _0807435A
_08074354:
adds r0, r2, #0
bl sub_0807A298
_0807435A:
pop {pc}
thumb_func_start sub_0807435C
sub_0807435C: @ 0x0807435C
push {lr}
adds r2, r0, #0
ldrh r1, [r2, #0x2e]
movs r0, #0xf
ands r0, r1
cmp r0, #0xb
bgt _08074376
movs r0, #0x66
strh r0, [r2, #0x2a]
adds r0, r2, #0
bl sub_080743A4
b _0807437C
_08074376:
adds r0, r2, #0
bl sub_0807A298
_0807437C:
pop {pc}
.align 2, 0
thumb_func_start sub_08074380
sub_08074380: @ 0x08074380
push {lr}
adds r2, r0, #0
ldrh r1, [r2, #0x2e]
movs r0, #0xf
ands r0, r1
cmp r0, #4
ble _0807439A
movs r0, #0x66
strh r0, [r2, #0x2a]
adds r0, r2, #0
bl sub_080743A4
b _080743A0
_0807439A:
adds r0, r2, #0
bl sub_0807A298
_080743A0:
pop {pc}
.align 2, 0
thumb_func_start sub_080743A4
sub_080743A4: @ 0x080743A4
push {lr}
ldr r3, _080743D0 @ =gUnk_03003F80
ldr r1, [r3, #0x30]
movs r2, #0x40
orrs r1, r2
str r1, [r3, #0x30]
movs r3, #0
movs r1, #0x80
strb r1, [r0, #0xb]
ldrb r2, [r0, #0x18]
subs r1, #0x84
ands r1, r2
strb r1, [r0, #0x18]
ldrb r2, [r0, #0x10]
movs r1, #0x7f
ands r1, r2
strb r1, [r0, #0x10]
adds r0, #0x42
strb r3, [r0]
bl sub_08077B2C
pop {pc}
.align 2, 0
_080743D0: .4byte gUnk_03003F80
thumb_func_start sub_080743D4
sub_080743D4: @ 0x080743D4
push {r4, r5, lr}
adds r5, r0, #0
bl sub_080741C4
cmp r0, #0
bne _08074416
adds r0, r5, #0
bl sub_08079C30
cmp r0, #0
beq _08074416
adds r0, r5, #0
bl sub_0807AABC
adds r0, r5, #0
bl sub_08074808
movs r0, #0x24
ldrsh r4, [r5, r0]
movs r0, #0xc0
lsls r0, r0, #2
strh r0, [r5, #0x24]
movs r0, #0x10
strb r0, [r5, #0x15]
ldr r2, _08074418 @ =gUnk_03003F80
ldrb r1, [r2, #0xa]
movs r0, #0x80
orrs r0, r1
strb r0, [r2, #0xa]
adds r0, r5, #0
bl sub_0806F69C
strh r4, [r5, #0x24]
_08074416:
pop {r4, r5, pc}
.align 2, 0
_08074418: .4byte gUnk_03003F80
thumb_func_start sub_0807441C
sub_0807441C: @ 0x0807441C
push {r4, r5, r6, r7, lr}
adds r7, r0, #0
ldr r0, _08074440 @ =gUnk_03003F80
adds r0, #0xa0
ldrb r0, [r0]
cmp r0, #4
bne _08074502
ldr r6, _08074444 @ =gUnk_02002A40
adds r4, r6, #0
adds r4, #0xb4
ldrb r0, [r4]
bl sub_0805449C
cmp r0, #0
beq _08074448
ldrb r0, [r4]
b _0807444E
.align 2, 0
_08074440: .4byte gUnk_03003F80
_08074444: .4byte gUnk_02002A40
_08074448:
adds r0, r6, #0
adds r0, #0xb5
ldrb r0, [r0]
_0807444E:
subs r0, #1
cmp r0, #5
bhi _0807448A
lsls r0, r0, #2
ldr r1, _08074460 @ =_08074464
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08074460: .4byte _08074464
_08074464: @ jump table
.4byte _0807447C @ case 0
.4byte _0807447C @ case 1
.4byte _08074480 @ case 2
.4byte _08074484 @ case 3
.4byte _0807448A @ case 4
.4byte _08074488 @ case 5
_0807447C:
movs r5, #0
b _0807448A
_08074480:
movs r5, #1
b _0807448A
_08074484:
movs r5, #2
b _0807448A
_08074488:
movs r5, #3
_0807448A:
movs r4, #0
cmp r4, r5
bhs _080744A6
ldr r1, _08074494 @ =gUnk_03004040
b _080744A0
.align 2, 0
_08074494: .4byte gUnk_03004040
_08074498:
adds r1, #4
adds r4, #1
cmp r4, r5
bhs _080744A6
_080744A0:
ldr r0, [r1]
cmp r0, #0
bne _08074498
_080744A6:
cmp r5, r4
bls _080744D4
adds r0, r7, #0
movs r1, #0x10
adds r2, r4, #0
movs r3, #0
bl sub_080A2988
adds r3, r0, #0
ldr r1, _080744D0 @ =gUnk_03004040
lsls r0, r4, #2
adds r0, r0, r1
str r3, [r0]
cmp r3, #0
beq _08074502
adds r0, r7, #0
adds r1, r3, #0
bl sub_0806FA24
b _08074502
.align 2, 0
_080744D0: .4byte gUnk_03004040
_080744D4:
ldr r2, _08074504 @ =gUnk_03003F80
ldrb r1, [r2, #0x1b]
movs r0, #0x80
orrs r0, r1
strb r0, [r2, #0x1b]
ldr r0, [r2, #0x30]
movs r1, #0x80
lsls r1, r1, #0xf
orrs r0, r1
str r0, [r2, #0x30]
ldr r0, [r7, #0x2c]
ldr r2, _08074508 @ =0xFFF00000
ands r0, r2
movs r1, #0x80
lsls r1, r1, #0xc
orrs r0, r1
str r0, [r7, #0x2c]
ldr r0, [r7, #0x30]
ands r0, r2
orrs r0, r1
str r0, [r7, #0x30]
bl sub_08077AEC
_08074502:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08074504: .4byte gUnk_03003F80
_08074508: .4byte 0xFFF00000
thumb_func_start sub_0807450C
sub_0807450C: @ 0x0807450C
push {r4, r5, r6, r7, lr}
adds r6, r0, #0
bl sub_080741C4
cmp r0, #0
bne _0807457A
ldr r7, _0807457C @ =gUnk_03003F80
ldrb r0, [r7, #0x14]
cmp r0, #0
bne _0807457A
adds r4, r6, #0
adds r4, #0x3d
movs r0, #0
ldrsb r0, [r4, r0]
cmp r0, #0
bne _08074568
movs r0, #2
rsbs r0, r0, #0
bl ModHealth
movs r0, #0x7a
bl sub_080A3268
movs r0, #0x18
strb r0, [r4]
adds r1, r6, #0
adds r1, #0x42
movs r0, #4
strb r0, [r1]
movs r0, #0x2e
ldrsh r2, [r6, r0]
ldr r5, _08074580 @ =0x0000FFF0
adds r0, r2, #0
ands r0, r5
movs r4, #8
orrs r0, r4
movs r1, #0x32
ldrsh r3, [r6, r1]
adds r1, r3, #0
ands r1, r5
orrs r1, r4
bl sub_080045D4
adds r1, r6, #0
adds r1, #0x3e
strb r0, [r1]
_08074568:
ldr r0, [r7, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _0807457A
adds r0, r6, #0
movs r1, #7
bl sub_08008790
_0807457A:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0807457C: .4byte gUnk_03003F80
_08074580: .4byte 0x0000FFF0
thumb_func_start sub_08074584
sub_08074584: @ 0x08074584
push {r4, lr}
adds r4, r0, #0
bl sub_080741C4
cmp r0, #0
bne _080745AC
ldr r0, _080745B0 @ =gUnk_03003F80
adds r0, #0x35
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080745A8
adds r0, r4, #0
adds r0, #0x42
ldrb r0, [r0]
cmp r0, #0
beq _080745AC
_080745A8:
bl sub_08078F60
_080745AC:
pop {r4, pc}
.align 2, 0
_080745B0: .4byte gUnk_03003F80
thumb_func_start sub_080745B4
sub_080745B4: @ 0x080745B4
push {r4, r5, lr}
adds r4, r0, #0
bl sub_080741C4
cmp r0, #0
bne _08074636
ldr r0, _080745E4 @ =gUnk_03003F80
mov ip, r0
ldr r3, [r0, #0x30]
movs r0, #0x80
ands r3, r0
cmp r3, #0
beq _080745E8
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
subs r0, #0xb9
ands r0, r1
strb r0, [r2]
adds r0, r4, #0
bl sub_0807479C
b _08074636
.align 2, 0
_080745E4: .4byte gUnk_03003F80
_080745E8:
mov r5, ip
adds r5, #0x26
ldrb r0, [r5]
cmp r0, #0
beq _08074618
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
adds r2, r4, #0
adds r2, #0x3c
ldrb r1, [r2]
movs r0, #0xfb
ands r0, r1
strb r0, [r2]
subs r2, #0x13
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #4
orrs r0, r1
strb r0, [r2]
strb r3, [r5]
_08074618:
mov r0, ip
adds r0, #0x92
ldrh r1, [r0]
movs r0, #0xf0
lsls r0, r0, #4
ands r0, r1
cmp r0, #0
bne _08074630
mov r1, ip
ldrb r0, [r1, #0x11]
cmp r0, #1
bne _08074636
_08074630:
movs r0, #0x83
bl sub_080A3268
_08074636:
pop {r4, r5, pc}
thumb_func_start sub_08074638
sub_08074638: @ 0x08074638
push {r4, r5, lr}
adds r4, r0, #0
ldr r0, _08074674 @ =gUnk_03003F80
adds r5, r0, #0
adds r5, #0x26
ldrb r0, [r5]
cmp r0, #0
beq _08074670
ldrb r1, [r4, #0x10]
movs r0, #0x80
movs r3, #0
orrs r0, r1
strb r0, [r4, #0x10]
adds r2, r4, #0
adds r2, #0x3c
ldrb r1, [r2]
movs r0, #0xfb
ands r0, r1
strb r0, [r2]
subs r2, #0x13
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #4
orrs r0, r1
strb r0, [r2]
strb r3, [r5]
_08074670:
pop {r4, r5, pc}
.align 2, 0
_08074674: .4byte gUnk_03003F80
thumb_func_start sub_08074678
sub_08074678: @ 0x08074678
push {r4, lr}
adds r4, r0, #0
bl sub_080741C4
cmp r0, #0
beq _08074690
ldr r0, _0807468C @ =gUnk_03003F80
movs r1, #0
strb r1, [r0, #0x11]
b _080746CE
.align 2, 0
_0807468C: .4byte gUnk_03003F80
_08074690:
adds r0, r4, #0
adds r0, #0x45
ldrb r0, [r0]
cmp r0, #0
beq _0807476C
adds r0, r4, #0
bl sub_08079C30
adds r1, r0, #0
cmp r1, #0
bne _080746B0
ldr r0, _080746AC @ =gUnk_03003F80
strb r1, [r0, #0x11]
b _080746CE
.align 2, 0
_080746AC: .4byte gUnk_03003F80
_080746B0:
ldr r3, _080746D4 @ =gUnk_03003F80
ldr r1, [r3, #0x30]
movs r0, #0x80
ands r1, r0
cmp r1, #0
bne _0807476C
ldrb r2, [r3, #0x1e]
cmp r2, #0
beq _080746D8
movs r0, #0x40
ands r0, r2
cmp r0, #0
beq _080746DC
strb r1, [r3, #0x11]
adds r0, r3, #0
_080746CE:
adds r0, #0x37
strb r1, [r0]
b _08074792
.align 2, 0
_080746D4: .4byte gUnk_03003F80
_080746D8:
bl sub_08077B20
_080746DC:
ldr r1, _08074700 @ =gUnk_03003F80
adds r0, r1, #0
adds r0, #0x37
ldrb r0, [r0]
cmp r0, #1
bne _08074704
adds r0, r4, #0
movs r1, #0x70
movs r2, #0
movs r3, #0
bl sub_080A2988
adds r0, r4, #0
movs r1, #0x52
movs r2, #0
bl CreateFX
b _08074714
.align 2, 0
_08074700: .4byte gUnk_03003F80
_08074704:
adds r0, r1, #0
adds r0, #0x92
ldrh r1, [r0]
movs r0, #0xf0
lsls r0, r0, #4
ands r0, r1
cmp r0, #0
beq _08074720
_08074714:
ldr r0, _0807471C @ =0x00000161
bl sub_080A3268
b _08074732
.align 2, 0
_0807471C: .4byte 0x00000161
_08074720:
ldr r0, _08074760 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #0xf
ands r0, r1
cmp r0, #0
bne _08074732
ldr r0, _08074764 @ =0x00000161
bl sub_080A3268
_08074732:
ldr r2, _08074768 @ =gUnk_03003F80
adds r1, r2, #0
adds r1, #0x80
ldrh r0, [r1]
subs r0, #0xf0
strh r0, [r1]
adds r1, #0x28
movs r0, #0x1b
strb r0, [r1]
adds r0, r2, #0
adds r0, #0x37
ldrb r0, [r0]
lsls r3, r0, #0x18
lsrs r0, r3, #0x18
cmp r0, #0xef
bhi _0807476C
subs r1, #0x69
lsrs r0, r3, #0x1d
adds r0, #4
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
b _08074792
.align 2, 0
_08074760: .4byte gUnk_030010A0
_08074764: .4byte 0x00000161
_08074768: .4byte gUnk_03003F80
_0807476C:
ldr r2, _08074794 @ =gUnk_03003F80
ldr r0, [r2, #0x30]
ldr r1, _08074798 @ =0xFFFBFFFF
ands r0, r1
str r0, [r2, #0x30]
adds r0, r4, #0
movs r1, #0x52
movs r2, #0
bl CreateFX
adds r1, r4, #0
adds r1, #0x3d
movs r0, #0x20
strb r0, [r1]
subs r0, #0x24
bl ModHealth
bl sub_08079458
_08074792:
pop {r4, pc}
.align 2, 0
_08074794: .4byte gUnk_03003F80
_08074798: .4byte 0xFFFBFFFF
thumb_func_start sub_0807479C
sub_0807479C: @ 0x0807479C
push {r4, lr}
adds r4, r0, #0
bl sub_080741C4
adds r2, r0, #0
cmp r2, #0
bne _08074804
ldr r1, _080747C0 @ =gUnk_03003F80
ldrb r0, [r1, #0x14]
adds r3, r1, #0
cmp r0, #0
bne _080747C4
adds r1, #0x3f
ldrb r0, [r1]
adds r0, #2
strb r0, [r1]
b _080747E6
.align 2, 0
_080747C0: .4byte gUnk_03003F80
_080747C4:
adds r0, r3, #0
adds r0, #0x26
strb r2, [r0]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #4
orrs r0, r1
strb r0, [r2]
adds r2, #0x13
ldrb r1, [r2]
movs r0, #0xfb
ands r0, r1
strb r0, [r2]
_080747E6:
adds r0, r3, #0
adds r0, #0x26
ldrb r1, [r0]
movs r0, #0xf
ands r0, r1
cmp r0, #0
bne _080747FE
adds r0, r4, #0
bl sub_08079C30
cmp r0, #0
beq _08074804
_080747FE:
adds r0, r4, #0
bl sub_08074808
_08074804:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08074808
sub_08074808: @ 0x08074808
push {r4, r5, r6, r7, lr}
adds r6, r0, #0
bl sub_08077AEC
movs r0, #0x46
bl GetInventoryValue
adds r3, r0, #0
cmp r3, #1
bne _080748B8
ldr r1, _08074838 @ =gUnk_03003F80
adds r2, r1, #0
adds r2, #0x26
ldrb r0, [r2]
cmp r0, #0
bne _0807486C
ldr r0, [r1, #0x30]
movs r1, #0x80
lsls r1, r1, #9
ands r0, r1
cmp r0, #0
beq _0807483C
strb r3, [r2]
b _08074840
.align 2, 0
_08074838: .4byte gUnk_03003F80
_0807483C:
movs r0, #8
strb r0, [r2]
_08074840:
movs r1, #0
movs r0, #0
strh r0, [r6, #0x24]
ldr r0, _080748AC @ =gUnk_03003F80
adds r2, r0, #0
adds r2, #0x89
strb r1, [r2]
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _08074862
adds r0, r6, #0
movs r1, #0xb
movs r2, #0
bl CreateFX
_08074862:
ldr r0, _080748B0 @ =0x000001A5
bl sub_080A3268
bl sub_08077B2C
_0807486C:
ldr r5, _080748AC @ =gUnk_03003F80
adds r4, r5, #0
adds r4, #0x26
ldrb r1, [r4]
movs r7, #0xf
adds r0, r7, #0
ands r0, r1
cmp r0, #1
beq _0807488A
adds r0, r6, #0
bl sub_08079744
ldrb r0, [r4]
subs r0, #1
strb r0, [r4]
_0807488A:
ldr r0, [r5, #0x30]
ldr r1, _080748B4 @ =0xFFFFF3FF
ands r0, r1
str r0, [r5, #0x30]
movs r1, #0x80
lsls r1, r1, #7
ands r0, r1
cmp r0, #0
beq _080748BE
adds r1, r6, #0
adds r1, #0x7a
ldrh r0, [r1]
cmp r0, #0xe
bhi _080748BE
strh r7, [r1]
b _080748BE
.align 2, 0
_080748AC: .4byte gUnk_03003F80
_080748B0: .4byte 0x000001A5
_080748B4: .4byte 0xFFFFF3FF
_080748B8:
ldr r1, _080748C0 @ =gUnk_03003F80
movs r0, #0x14
strb r0, [r1, #0xc]
_080748BE:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080748C0: .4byte gUnk_03003F80
thumb_func_start sub_080748C4
sub_080748C4: @ 0x080748C4
ldr r1, _080748D0 @ =gUnk_03003F80
adds r1, #0x3f
ldrb r0, [r1]
subs r0, #2
strb r0, [r1]
bx lr
.align 2, 0
_080748D0: .4byte gUnk_03003F80
thumb_func_start sub_080748D4
sub_080748D4: @ 0x080748D4
push {lr}
bl sub_080741C4
pop {pc}
thumb_func_start sub_080748DC
sub_080748DC: @ 0x080748DC
push {r4, lr}
adds r4, r0, #0
bl sub_080741C4
cmp r0, #0
bne _08074910
adds r0, r4, #0
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #1
beq _0807490A
ldrh r0, [r4, #0x32]
adds r0, #0xc
strh r0, [r4, #0x32]
ldr r0, _08074914 @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _0807490A
ldrh r0, [r4, #0x36]
subs r0, #0xc
strh r0, [r4, #0x36]
_0807490A:
adds r0, r4, #0
bl sub_0807AABC
_08074910:
pop {r4, pc}
.align 2, 0
_08074914: .4byte gUnk_03003F80
thumb_func_start sub_08074918
sub_08074918: @ 0x08074918
push {r4, lr}
adds r4, r0, #0
bl sub_080741C4
cmp r0, #0
bne _08074934
adds r0, r4, #0
bl sub_08079C30
cmp r0, #0
beq _08074934
ldr r1, _08074938 @ =gUnk_03003F80
movs r0, #0x11
strb r0, [r1, #0xc]
_08074934:
pop {r4, pc}
.align 2, 0
_08074938: .4byte gUnk_03003F80
thumb_func_start sub_0807493C
sub_0807493C: @ 0x0807493C
push {r4, lr}
adds r4, r0, #0
movs r0, #0x44
bl GetInventoryValue
cmp r0, #1
bne _08074952
adds r0, r4, #0
bl sub_0807496C
b _08074966
_08074952:
ldrh r1, [r4, #0x32]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #0xf
movs r2, #0
orrs r0, r1
strh r0, [r4, #0x32]
ldr r0, _08074968 @ =gUnk_03003F80
strb r2, [r0, #0x12]
_08074966:
pop {r4, pc}
.align 2, 0
_08074968: .4byte gUnk_03003F80
thumb_func_start sub_0807496C
sub_0807496C: @ 0x0807496C
push {r4, lr}
adds r4, r0, #0
bl sub_080741C4
adds r3, r0, #0
cmp r3, #0
bne _080749A2
ldr r0, _080749A4 @ =gUnk_03003F80
strb r3, [r0, #2]
ldrb r2, [r4, #0x19]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r2
movs r2, #0x40
orrs r0, r2
strb r0, [r4, #0x19]
ldrb r0, [r4, #0x1b]
ands r1, r0
orrs r1, r2
strb r1, [r4, #0x1b]
strb r3, [r4, #0x14]
adds r1, r4, #0
adds r1, #0x38
movs r0, #3
strb r0, [r1]
bl sub_08077B2C
_080749A2:
pop {r4, pc}
.align 2, 0
_080749A4: .4byte gUnk_03003F80
thumb_func_start sub_080749A8
sub_080749A8: @ 0x080749A8
push {r4, lr}
adds r4, r0, #0
movs r0, #0x44
bl GetInventoryValue
cmp r0, #1
bne _080749BE
adds r0, r4, #0
bl sub_080749D4
b _080749CE
_080749BE:
ldrh r1, [r4, #0x32]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #0
strh r0, [r4, #0x32]
ldr r0, _080749D0 @ =gUnk_03003F80
strb r1, [r0, #0x12]
_080749CE:
pop {r4, pc}
.align 2, 0
_080749D0: .4byte gUnk_03003F80
thumb_func_start sub_080749D4
sub_080749D4: @ 0x080749D4
push {r4, r5, lr}
adds r4, r0, #0
bl sub_080741C4
adds r3, r0, #0
cmp r3, #0
bne _08074A40
ldrb r2, [r4, #0x19]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r2
movs r2, #0x40
orrs r0, r2
strb r0, [r4, #0x19]
ldrb r0, [r4, #0x1b]
ands r1, r0
orrs r1, r2
strb r1, [r4, #0x1b]
strb r3, [r4, #0x14]
adds r1, r4, #0
adds r1, #0x38
movs r0, #3
strb r0, [r1]
ldr r5, _08074A2C @ =gUnk_03003F80
adds r0, r5, #0
adds r0, #0x26
strb r3, [r0]
adds r2, r4, #0
adds r2, #0x3c
ldrb r1, [r2]
movs r0, #0xfb
ands r0, r1
strb r0, [r2]
ldrh r1, [r4, #0x32]
movs r0, #0xf
ands r0, r1
cmp r0, #7
bgt _08074A34
ldr r0, _08074A30 @ =0x000002D3
strh r0, [r5, #8]
movs r0, #0x10
strb r0, [r4, #0x15]
b _08074A3C
.align 2, 0
_08074A2C: .4byte gUnk_03003F80
_08074A30: .4byte 0x000002D3
_08074A34:
movs r1, #0
ldr r0, _08074A44 @ =0x000002D6
strh r0, [r5, #8]
strb r1, [r4, #0x15]
_08074A3C:
bl sub_08077B2C
_08074A40:
pop {r4, r5, pc}
.align 2, 0
_08074A44: .4byte 0x000002D6
thumb_func_start sub_08074A48
sub_08074A48: @ 0x08074A48
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, _08074A90 @ =gUnk_03003F80
adds r0, r5, #0
adds r0, #0x26
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08074A86
ldr r0, _08074A94 @ =gLinkEntity
movs r1, #0
movs r2, #0x54
movs r3, #0
bl sub_080A2988
adds r1, r0, #0
cmp r1, #0
beq _08074A86
movs r0, #1
strb r0, [r1, #0xe]
adds r0, r1, #0
bl sub_08016A04
ldrh r1, [r5, #0x22]
adds r0, r4, #0
adds r0, #0x38
ldrb r2, [r0]
movs r0, #0x39
bl sub_08000152
_08074A86:
adds r0, r4, #0
bl sub_0807479C
pop {r4, r5, pc}
.align 2, 0
_08074A90: .4byte gUnk_03003F80
_08074A94: .4byte gLinkEntity
thumb_func_start nullsub_504
nullsub_504: @ 0x08074A98
bx lr
.align 2, 0
thumb_func_start sub_08074A9C
sub_08074A9C: @ 0x08074A9C
push {r4, lr}
adds r4, r0, #0
bl sub_080741C4
cmp r0, #0
bne _08074AF0
ldr r2, _08074AE0 @ =gUnk_03003F80
adds r0, r2, #0
adds r0, #0x80
ldrh r1, [r0]
subs r1, #0x80
strh r1, [r0]
ldrb r0, [r2, #0x11]
cmp r0, #1
beq _08074ACA
adds r0, r2, #0
adds r0, #0x92
ldrh r1, [r0]
movs r0, #0xf0
lsls r0, r0, #4
ands r0, r1
cmp r0, #0
beq _08074AF0
_08074ACA:
ldrb r0, [r2, #0x12]
cmp r0, #0x25
bne _08074AE4
adds r0, r4, #0
movs r1, #0x21
movs r2, #1
movs r3, #0
bl sub_080A2988
b _08074AF0
.align 2, 0
_08074AE0: .4byte gUnk_03003F80
_08074AE4:
adds r0, r4, #0
movs r1, #0x21
movs r2, #1
movs r3, #1
bl sub_080A2988
_08074AF0:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08074AF4
sub_08074AF4: @ 0x08074AF4
push {lr}
adds r3, r0, #0
ldr r1, _08074B04 @ =gUnk_03003F80
ldrb r0, [r1, #0x1e]
cmp r0, #0
bne _08074B08
ldrb r2, [r1, #0xd]
b _08074B0C
.align 2, 0
_08074B04: .4byte gUnk_03003F80
_08074B08:
ldrb r0, [r3, #0x14]
lsls r2, r0, #2
_08074B0C:
adds r0, r3, #0
adds r1, r2, #0
bl sub_08074244
pop {pc}
.align 2, 0
thumb_func_start sub_08074B18
sub_08074B18: @ 0x08074B18
push {r4, r5, lr}
adds r5, r0, #0
ldr r4, _08074B40 @ =gUnk_03003F80
ldrb r0, [r4, #0x14]
cmp r0, #0
bne _08074B48
bl sub_080741C4
cmp r0, #0
bne _08074B48
ldr r0, [r4, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
beq _08074B44
adds r0, r5, #0
bl sub_08074200
b _08074B48
.align 2, 0
_08074B40: .4byte gUnk_03003F80
_08074B44:
movs r0, #0x1a
strb r0, [r4, #0xc]
_08074B48:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08074B4C
sub_08074B4C: @ 0x08074B4C
push {r4, lr}
adds r4, r0, #0
bl sub_080741C4
cmp r0, #0
bne _08074B6E
ldr r0, _08074B70 @ =gUnk_03003F80
ldr r1, [r0, #0x30]
movs r0, #0x80
ands r1, r0
cmp r1, #0
bne _08074B6E
strb r1, [r4, #0x14]
strb r1, [r4, #0x15]
adds r0, r4, #0
bl sub_08074BF8
_08074B6E:
pop {r4, pc}
.align 2, 0
_08074B70: .4byte gUnk_03003F80
thumb_func_start sub_08074B74
sub_08074B74: @ 0x08074B74
push {r4, lr}
adds r4, r0, #0
bl sub_080741C4
cmp r0, #0
bne _08074B9A
ldr r0, _08074B9C @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _08074B9A
movs r0, #4
strb r0, [r4, #0x14]
movs r0, #0x10
strb r0, [r4, #0x15]
adds r0, r4, #0
bl sub_08074BF8
_08074B9A:
pop {r4, pc}
.align 2, 0
_08074B9C: .4byte gUnk_03003F80
thumb_func_start sub_08074BA0
sub_08074BA0: @ 0x08074BA0
push {r4, lr}
adds r4, r0, #0
bl sub_080741C4
cmp r0, #0
bne _08074BC6
ldr r0, _08074BC8 @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _08074BC6
movs r0, #6
strb r0, [r4, #0x14]
movs r0, #0x18
strb r0, [r4, #0x15]
adds r0, r4, #0
bl sub_08074BF8
_08074BC6:
pop {r4, pc}
.align 2, 0
_08074BC8: .4byte gUnk_03003F80
thumb_func_start sub_08074BCC
sub_08074BCC: @ 0x08074BCC
push {r4, lr}
adds r4, r0, #0
bl sub_080741C4
cmp r0, #0
bne _08074BF2
ldr r0, _08074BF4 @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _08074BF2
movs r0, #2
strb r0, [r4, #0x14]
movs r0, #8
strb r0, [r4, #0x15]
adds r0, r4, #0
bl sub_08074BF8
_08074BF2:
pop {r4, pc}
.align 2, 0
_08074BF4: .4byte gUnk_03003F80
thumb_func_start sub_08074BF8
sub_08074BF8: @ 0x08074BF8
push {r4, lr}
adds r4, r0, #0
bl sub_08077B2C
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
movs r0, #0xa0
lsls r0, r0, #1
strh r0, [r4, #0x24]
ldr r1, _08074C40 @ =gUnk_03003F80
ldr r0, [r1, #0x30]
movs r2, #0x80
lsls r2, r2, #0x12
orrs r0, r2
str r0, [r1, #0x30]
ldrb r2, [r1, #0xa]
movs r0, #0x80
orrs r2, r0
strb r2, [r1, #0xa]
ldrb r2, [r1, #0x1a]
orrs r0, r2
strb r0, [r1, #0x1a]
adds r1, #0x27
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
adds r0, r4, #0
bl sub_0806F69C
pop {r4, pc}
.align 2, 0
_08074C40: .4byte gUnk_03003F80
thumb_func_start sub_08074C44
sub_08074C44: @ 0x08074C44
push {r4, lr}
adds r4, r0, #0
bl sub_08078EFC
cmp r0, #0
bne _08074C60
ldr r0, _08074C64 @ =gUnk_0811BC88
ldrb r1, [r4, #0xd]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
_08074C60:
pop {r4, pc}
.align 2, 0
_08074C64: .4byte gUnk_0811BC88
thumb_func_start sub_08074C68
sub_08074C68: @ 0x08074C68
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r6, r4, #0
adds r6, #0x68
movs r2, #0
strb r2, [r6]
ldr r5, _08074CA0 @ =gUnk_03003F80
adds r0, r5, #0
adds r0, #0x38
ldrb r3, [r0]
cmp r3, #1
beq _08074CA8
adds r0, r4, #0
adds r0, #0x84
ldr r1, [r0]
ldr r0, _08074CA4 @ =gUnk_02022750
cmp r1, r0
bne _08074CF2
movs r0, #1
strb r0, [r4, #0xd]
adds r0, r4, #0
bl sub_0807DD64
adds r0, r4, #0
bl sub_08074CF8
b _08074CF2
.align 2, 0
_08074CA0: .4byte gUnk_03003F80
_08074CA4: .4byte gUnk_02022750
_08074CA8:
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
strb r2, [r4, #0x14]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
movs r0, #2
strb r0, [r4, #0xd]
strb r3, [r6]
adds r0, r4, #0
bl sub_0807DD64
adds r0, r5, #0
adds r0, #0x39
ldrb r0, [r0]
cmp r0, #0
bne _08074CE4
ldr r0, _08074CE0 @ =0x0000073A
b _08074CE6
.align 2, 0
_08074CE0: .4byte 0x0000073A
_08074CE4:
ldr r0, _08074CF4 @ =0x00000736
_08074CE6:
strh r0, [r5, #8]
movs r1, #0x80
lsls r1, r1, #1
movs r0, #5
bl sub_08050054
_08074CF2:
pop {r4, r5, r6, pc}
.align 2, 0
_08074CF4: .4byte 0x00000736
thumb_func_start sub_08074CF8
sub_08074CF8: @ 0x08074CF8
push {r4, r5, r6, lr}
adds r5, r0, #0
ldrb r6, [r5, #0x14]
adds r4, r5, #0
adds r4, #0x84
ldr r1, [r4]
bl sub_0807DF74
ldr r1, [r4]
adds r0, r5, #0
bl sub_08074D34
adds r0, r5, #0
adds r0, #0x82
ldrh r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _08074D20
strb r6, [r5, #0x14]
_08074D20:
movs r1, #0x80
lsls r1, r1, #6
adds r0, r5, #0
bl sub_08003FC4
adds r0, r5, #0
bl sub_080042B8
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_08074D34
sub_08074D34: @ 0x08074D34
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r4, r0, #0
adds r6, r1, #0
ldr r0, [r6, #8]
cmp r0, #0
bne _08074D46
b _08074EF8
_08074D46:
movs r7, #0x80
lsls r7, r7, #1
adds r5, r4, #0
adds r5, #0x82
_08074D4E:
ldr r1, [r6, #8]
mvns r0, r1
adds r2, r0, #1
ands r2, r1
eors r1, r2
str r1, [r6, #8]
cmp r2, r7
bne _08074D60
b _08074E82
_08074D60:
cmp r2, r7
bhi _08074D90
cmp r2, #8
beq _08074E2C
cmp r2, #8
bhi _08074D7C
cmp r2, #2
beq _08074E08
cmp r2, #2
bls _08074D76
b _08074EF0
_08074D76:
cmp r2, #1
beq _08074DEC
b _08074EF0
_08074D7C:
cmp r2, #0x20
beq _08074E62
cmp r2, #0x20
bhi _08074D8A
cmp r2, #0x10
beq _08074E54
b _08074EF0
_08074D8A:
cmp r2, #0x80
beq _08074E70
b _08074EF0
_08074D90:
movs r0, #0x80
lsls r0, r0, #7
cmp r2, r0
bne _08074D9A
b _08074EAE
_08074D9A:
cmp r2, r0
bhi _08074DBE
movs r0, #0x80
lsls r0, r0, #5
cmp r2, r0
beq _08074E96
cmp r2, r0
bhi _08074DB4
movs r0, #0x80
lsls r0, r0, #2
cmp r2, r0
beq _08074E90
b _08074EF0
_08074DB4:
movs r0, #0x80
lsls r0, r0, #6
cmp r2, r0
beq _08074EA8
b _08074EF0
_08074DBE:
movs r0, #0x80
lsls r0, r0, #0xa
cmp r2, r0
bne _08074DC8
b _08074EBE
_08074DC8:
cmp r2, r0
bhi _08074DD6
movs r0, #0x80
lsls r0, r0, #8
cmp r2, r0
beq _08074EB4
b _08074EF0
_08074DD6:
movs r0, #0x80
lsls r0, r0, #0xd
cmp r2, r0
bne _08074DE0
b _08074ED8
_08074DE0:
movs r0, #0x80
lsls r0, r0, #0xe
cmp r2, r0
bne _08074DEA
b _08074EE4
_08074DEA:
b _08074EF0
_08074DEC:
ldr r2, _08074E00 @ =gUnk_03003F80
ldr r0, [r2, #0x30]
movs r1, #8
ands r0, r1
cmp r0, #0
beq _08074E04
movs r0, #0x80
lsls r0, r0, #3
strh r0, [r2, #8]
b _08074EF0
.align 2, 0
_08074E00: .4byte gUnk_03003F80
_08074E04:
strh r7, [r2, #8]
b _08074EF0
_08074E08:
ldr r2, _08074E1C @ =gUnk_03003F80
ldr r0, [r2, #0x30]
movs r1, #8
ands r0, r1
cmp r0, #0
beq _08074E24
ldr r0, _08074E20 @ =0x00000404
strh r0, [r2, #8]
b _08074EF0
.align 2, 0
_08074E1C: .4byte gUnk_03003F80
_08074E20: .4byte 0x00000404
_08074E24:
movs r0, #0x82
lsls r0, r0, #1
strh r0, [r2, #8]
b _08074EF0
_08074E2C:
ldr r1, _08074E3C @ =gUnk_03003F80
ldr r0, [r1, #0x30]
ands r0, r2
cmp r0, #0
beq _08074E44
ldr r0, _08074E40 @ =0x0000041C
b _08074E46
.align 2, 0
_08074E3C: .4byte gUnk_03003F80
_08074E40: .4byte 0x0000041C
_08074E44:
ldr r0, _08074E50 @ =0x0000080C
_08074E46:
strh r0, [r1, #8]
movs r0, #0xc0
lsls r0, r0, #9
str r0, [r4, #0x20]
b _08074EF0
.align 2, 0
_08074E50: .4byte 0x0000080C
_08074E54:
adds r0, r4, #0
movs r1, #8
movs r2, #0x18
rsbs r2, r2, #0
bl sub_080A2CFC
b _08074EF0
_08074E62:
adds r0, r4, #0
movs r1, #8
movs r2, #0x18
rsbs r2, r2, #0
bl sub_080A2D0C
b _08074EF0
_08074E70:
ldrb r0, [r4, #0x18]
movs r2, #4
rsbs r2, r2, #0
adds r1, r2, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
b _08074EF0
_08074E82:
ldrb r0, [r4, #0x18]
movs r3, #4
rsbs r3, r3, #0
adds r1, r3, #0
ands r0, r1
strb r0, [r4, #0x18]
b _08074EF0
_08074E90:
movs r0, #0
strh r0, [r5]
b _08074EF0
_08074E96:
ldrh r0, [r5]
ldr r2, _08074EA4 @ =0x0000FFFE
adds r1, r2, #0
ands r0, r1
strh r0, [r5]
b _08074EF0
.align 2, 0
_08074EA4: .4byte 0x0000FFFE
_08074EA8:
ldrh r0, [r5]
movs r1, #1
b _08074EB8
_08074EAE:
ldrh r0, [r5]
movs r1, #8
b _08074EB8
_08074EB4:
ldrh r0, [r5]
movs r1, #4
_08074EB8:
orrs r0, r1
strh r0, [r5]
b _08074EF0
_08074EBE:
ldrb r2, [r4, #0x18]
lsls r0, r2, #0x19
lsrs r0, r0, #0x1f
movs r1, #1
eors r0, r1
lsls r0, r0, #6
movs r3, #0x41
rsbs r3, r3, #0
adds r1, r3, #0
ands r2, r1
orrs r2, r0
strb r2, [r4, #0x18]
b _08074EF0
_08074ED8:
movs r1, #2
strb r1, [r4, #0xd]
adds r0, r4, #0
adds r0, #0x68
strb r1, [r0]
b _08074EF0
_08074EE4:
movs r0, #0
movs r1, #3
strb r1, [r4, #0xd]
adds r1, r4, #0
adds r1, #0x68
strb r0, [r1]
_08074EF0:
ldr r0, [r6, #8]
cmp r0, #0
beq _08074EF8
b _08074D4E
_08074EF8:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_08074F00
sub_08074F00: @ 0x08074F00
push {lr}
ldr r2, _08074F18 @ =gUnk_0811BC98
adds r1, r0, #0
adds r1, #0x68
ldrb r1, [r1]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08074F18: .4byte gUnk_0811BC98
thumb_func_start sub_08074F1C
sub_08074F1C: @ 0x08074F1C
adds r2, r0, #0
adds r2, #0x68
movs r3, #0
movs r1, #1
strb r1, [r2]
strb r3, [r0, #0x14]
bx lr
.align 2, 0
thumb_func_start sub_08074F2C
sub_08074F2C: @ 0x08074F2C
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r4, #0
adds r5, #0x84
ldr r1, [r5]
bl sub_0807DF74
ldr r1, [r5]
adds r0, r4, #0
bl sub_08074D34
pop {r4, r5, pc}
thumb_func_start sub_08074F44
sub_08074F44: @ 0x08074F44
push {lr}
adds r0, #0x68
ldrb r1, [r0]
adds r1, #1
strb r1, [r0]
ldr r0, _08074F74 @ =gLinkEntity
ldr r0, [r0, #0x6c]
cmp r0, #0
beq _08074F5A
bl sub_0805E7BC
_08074F5A:
ldr r2, _08074F78 @ =gUnk_03003F80
adds r0, r2, #0
adds r0, #0x39
ldrb r0, [r0]
cmp r0, #0
bne _08074F80
ldr r0, _08074F7C @ =0x0000073B
strh r0, [r2, #8]
ldr r0, [r2, #0x30]
movs r1, #8
orrs r0, r1
str r0, [r2, #0x30]
b _08074F84
.align 2, 0
_08074F74: .4byte gLinkEntity
_08074F78: .4byte gUnk_03003F80
_08074F7C: .4byte 0x0000073B
_08074F80:
ldr r0, _08074F88 @ =0x00000737
strh r0, [r2, #8]
_08074F84:
pop {pc}
.align 2, 0
_08074F88: .4byte 0x00000737
thumb_func_start sub_08074F8C
sub_08074F8C: @ 0x08074F8C
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
adds r3, r4, #0
adds r3, #0x5a
ldrb r0, [r3]
cmp r0, #1
bne _08074FAC
movs r0, #0
strb r0, [r3]
ldr r2, _08074FDC @ =gUnk_02033280
ldr r0, [r2]
movs r1, #4
orrs r0, r1
str r0, [r2]
_08074FAC:
ldrb r1, [r3]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08074FEA
adds r1, r4, #0
adds r1, #0x68
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
movs r0, #8
strb r0, [r4, #0xe]
movs r0, #4
strb r0, [r4, #0x14]
ldr r1, _08074FE0 @ =gUnk_03003F80
adds r0, r1, #0
adds r0, #0x39
ldrb r0, [r0]
cmp r0, #0
bne _08074FE4
movs r0, #0x80
lsls r0, r0, #3
b _08074FE8
.align 2, 0
_08074FDC: .4byte gUnk_02033280
_08074FE0: .4byte gUnk_03003F80
_08074FE4:
movs r0, #0x80
lsls r0, r0, #1
_08074FE8:
strh r0, [r1, #8]
_08074FEA:
pop {r4, pc}
thumb_func_start sub_08074FEC
sub_08074FEC: @ 0x08074FEC
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08075016
adds r1, r4, #0
adds r1, #0x68
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
movs r0, #4
strb r0, [r4, #0xe]
ldr r0, _08075018 @ =gUnk_03003F80
adds r0, #0x3a
ldrb r0, [r0]
strb r0, [r4, #0x14]
_08075016:
pop {r4, pc}
.align 2, 0
_08075018: .4byte gUnk_03003F80
thumb_func_start sub_0807501C
sub_0807501C: @ 0x0807501C
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xe]
subs r0, #1
strb r0, [r2, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08075086
ldr r1, _08075044 @ =gUnk_03003F80
adds r0, r1, #0
adds r0, #0x3a
ldrb r0, [r0]
strb r0, [r2, #0x14]
adds r0, r1, #0
adds r0, #0x39
ldrb r0, [r0]
cmp r0, #0
bne _0807504C
ldr r0, _08075048 @ =0x0000041C
b _0807504E
.align 2, 0
_08075044: .4byte gUnk_03003F80
_08075048: .4byte 0x0000041C
_0807504C:
ldr r0, _08075088 @ =0x0000080C
_0807504E:
strh r0, [r1, #8]
adds r3, r2, #0
adds r3, #0x29
ldrb r1, [r3]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
movs r1, #8
orrs r0, r1
strb r0, [r3]
ldrb r0, [r2, #0x14]
lsls r0, r0, #2
strb r0, [r2, #0x15]
movs r0, #0xc8
strh r0, [r2, #0x24]
movs r0, #0x80
lsls r0, r0, #0xa
str r0, [r2, #0x20]
movs r0, #8
strb r0, [r2, #0xe]
adds r1, r2, #0
adds r1, #0x68
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
movs r0, #0x7c
bl sub_080A3268
_08075086:
pop {pc}
.align 2, 0
_08075088: .4byte 0x0000080C
thumb_func_start sub_0807508C
sub_0807508C: @ 0x0807508C
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
beq _080750AA
adds r0, r4, #0
bl sub_0806F69C
b _080750F2
_080750AA:
ldr r2, _080750BC @ =gUnk_03003F80
adds r0, r2, #0
adds r0, #0x39
ldrb r0, [r0]
cmp r0, #0
bne _080750C0
movs r0, #0x80
lsls r0, r0, #3
b _080750CE
.align 2, 0
_080750BC: .4byte gUnk_03003F80
_080750C0:
ldr r0, [r2, #0x30]
movs r1, #9
rsbs r1, r1, #0
ands r0, r1
str r0, [r2, #0x30]
movs r0, #0x80
lsls r0, r0, #1
_080750CE:
strh r0, [r2, #8]
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
bne _080750F2
movs r0, #4
strb r0, [r4, #0x14]
movs r0, #1
strb r0, [r4, #0xd]
adds r0, r4, #0
adds r0, #0x68
strb r1, [r0]
movs r0, #0x7d
bl sub_080A3268
_080750F2:
pop {r4, pc}
thumb_func_start sub_080750F4
sub_080750F4: @ 0x080750F4
push {lr}
ldr r2, _0807510C @ =gUnk_0811BCB4
adds r1, r0, #0
adds r1, #0x68
ldrb r1, [r1]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0807510C: .4byte gUnk_0811BCB4
thumb_func_start sub_08075110
sub_08075110: @ 0x08075110
adds r2, r0, #0
adds r2, #0x68
ldrb r1, [r2]
adds r1, #1
movs r3, #0
strb r1, [r2]
ldrb r1, [r0, #0x14]
strb r1, [r0, #0xf]
strb r3, [r0, #0x14]
ldr r2, _08075134 @ =gUnk_03003F80
ldr r0, _08075138 @ =0x00000734
strh r0, [r2, #8]
ldr r0, [r2, #0x30]
movs r1, #9
rsbs r1, r1, #0
ands r0, r1
str r0, [r2, #0x30]
bx lr
.align 2, 0
_08075134: .4byte gUnk_03003F80
_08075138: .4byte 0x00000734
thumb_func_start sub_0807513C
sub_0807513C: @ 0x0807513C
push {r4, r5, lr}
adds r5, r0, #0
bl sub_080042B8
adds r4, r5, #0
adds r4, #0x5a
ldrb r0, [r4]
cmp r0, #1
bne _08075158
movs r0, #0
strb r0, [r4]
movs r0, #0x7c
bl sub_080A3268
_08075158:
ldrb r0, [r4]
cmp r0, #2
bne _0807516E
movs r0, #0
strb r0, [r4]
ldr r0, _08075188 @ =0x0000014B
bl sub_080A3268
movs r0, #0x7a
bl sub_080A3268
_0807516E:
ldrb r1, [r4]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08075186
adds r0, r5, #0
adds r0, #0x68
ldrb r1, [r0]
adds r1, #1
strb r1, [r0]
movs r0, #0x3c
strb r0, [r5, #0xe]
_08075186:
pop {r4, r5, pc}
.align 2, 0
_08075188: .4byte 0x0000014B
thumb_func_start sub_0807518C
sub_0807518C: @ 0x0807518C
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xe]
subs r0, #1
strb r0, [r1, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080751AA
adds r1, #0x68
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r1, _080751AC @ =gUnk_03003F80
ldr r0, _080751B0 @ =0x000003C9
strh r0, [r1, #8]
_080751AA:
pop {pc}
.align 2, 0
_080751AC: .4byte gUnk_03003F80
_080751B0: .4byte 0x000003C9
thumb_func_start sub_080751B4
sub_080751B4: @ 0x080751B4
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 _080751E2
movs r1, #0
movs r0, #4
strb r0, [r4, #0x14]
movs r0, #1
strb r0, [r4, #0xd]
adds r0, r4, #0
adds r0, #0x68
strb r1, [r0]
ldr r1, _080751E4 @ =gUnk_03003F80
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r1, #8]
_080751E2:
pop {r4, pc}
.align 2, 0
_080751E4: .4byte gUnk_03003F80
thumb_func_start sub_080751E8
sub_080751E8: @ 0x080751E8
push {r4, r5, r6, r7, lr}
adds r7, r0, #0
adds r5, r1, #0
adds r6, r2, #0
ldr r4, _08075230 @ =gUnk_02022750
adds r0, r4, #0
movs r1, #0x24
bl sub_0801D630
str r6, [r4]
ldr r0, _08075234 @ =gLinkEntity
adds r0, #0x84
str r4, [r0]
ldr r2, _08075238 @ =gUnk_03003F80
movs r1, #0
movs r0, #0x1c
strb r0, [r2, #0xc]
adds r0, r2, #0
adds r0, #0x38
movs r4, #1
strb r4, [r0]
adds r3, r2, #0
adds r3, #0x39
strb r1, [r3]
adds r0, #2
strb r5, [r0]
ldr r0, [r2, #0x30]
movs r1, #8
orrs r0, r1
str r0, [r2, #0x30]
cmp r7, #0
bne _08075240
strb r7, [r3]
ldr r6, _0807523C @ =gUnk_08009ECC
b _08075244
.align 2, 0
_08075230: .4byte gUnk_02022750
_08075234: .4byte gLinkEntity
_08075238: .4byte gUnk_03003F80
_0807523C: .4byte gUnk_08009ECC
_08075240:
strb r4, [r3]
ldr r6, _08075290 @ =gUnk_08009EF0
_08075244:
ldr r0, _08075294 @ =gUnk_03003F80
adds r0, #0x39
ldrb r0, [r0]
movs r1, #0
cmp r0, #0
bne _08075252
movs r1, #2
_08075252:
movs r0, #0x5b
movs r2, #0
bl CreateObject
adds r4, r0, #0
cmp r4, #0
beq _08075270
ldr r0, _08075298 @ =gLinkEntity
adds r1, r4, #0
bl sub_0806FA24
adds r0, r4, #0
adds r1, r6, #0
bl sub_0807DAD0
_08075270:
ldr r4, _08075298 @ =gLinkEntity
movs r1, #0xe
rsbs r1, r1, #0
movs r2, #0x1c
rsbs r2, r2, #0
adds r0, r4, #0
bl sub_080A2D1C
str r0, [r4, #0x6c]
cmp r0, #0
beq _0807528C
movs r1, #3
bl sub_0805E3A0
_0807528C:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08075290: .4byte gUnk_08009EF0
_08075294: .4byte gUnk_03003F80
_08075298: .4byte gLinkEntity
thumb_func_start sub_0807529C
sub_0807529C: @ 0x0807529C
push {lr}
movs r2, #0x20
rsbs r2, r2, #0
movs r1, #8
bl sub_080A2D0C
pop {pc}
.align 2, 0
thumb_func_start sub_080752AC
sub_080752AC: @ 0x080752AC
push {r4, r5, lr}
adds r5, r0, #0
adds r4, r1, #0
bl sub_0806F69C
ldrb r0, [r4, #0x18]
cmp r0, #0
bne _080752D0
adds r0, r5, #0
bl sub_080002B8
cmp r0, #0x29
beq _080752DC
movs r0, #1
strb r0, [r4, #0x18]
movs r0, #6
strb r0, [r4, #0x19]
b _080752DC
_080752D0:
ldrb r0, [r4, #0x19]
subs r0, #1
strb r0, [r4, #0x19]
lsls r0, r0, #0x18
cmp r0, #0
beq _080752E2
_080752DC:
ldr r1, _080752E4 @ =gUnk_02033280
movs r0, #0
strb r0, [r1, #6]
_080752E2:
pop {r4, r5, pc}
.align 2, 0
_080752E4: .4byte gUnk_02033280
thumb_func_start sub_080752E8
sub_080752E8: @ 0x080752E8
push {lr}
ldr r3, _080752FC @ =gUnk_0811BCC4
ldrb r2, [r0, #1]
lsls r2, r2, #2
adds r2, r2, r3
ldr r2, [r2]
bl _call_via_r2
pop {pc}
.align 2, 0
_080752FC: .4byte gUnk_0811BCC4
thumb_func_start sub_08075300
sub_08075300: @ 0x08075300
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
bl sub_08077BD4
adds r0, r4, #0
adds r1, r5, #0
bl sub_08077E78
pop {r4, r5, pc}
thumb_func_start sub_08075314
sub_08075314: @ 0x08075314
push {lr}
ldr r2, _08075330 @ =gUnk_03003F80
adds r2, #0xa8
movs r3, #2
strb r3, [r2]
ldr r3, _08075334 @ =gUnk_0811BD44
ldrb r2, [r0, #4]
lsls r2, r2, #2
adds r2, r2, r3
ldr r2, [r2]
bl _call_via_r2
pop {pc}
.align 2, 0
_08075330: .4byte gUnk_03003F80
_08075334: .4byte gUnk_0811BD44
thumb_func_start sub_08075338
sub_08075338: @ 0x08075338
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
adds r7, r1, #0
ldr r4, _0807536C @ =gUnk_03003F80
ldr r1, [r4, #0x30]
movs r3, #0x80
adds r0, r1, #0
ands r0, r3
cmp r0, #0
beq _08075370
ldrb r0, [r5, #9]
movs r1, #0x80
orrs r1, r0
strb r1, [r5, #9]
adds r0, r5, #0
adds r1, r7, #0
bl sub_08077D38
movs r0, #0xc0
lsls r0, r0, #4
strh r0, [r4, #8]
movs r0, #0x75
bl sub_080A3268
b _080754B4
.align 2, 0
_0807536C: .4byte gUnk_03003F80
_08075370:
ldrb r2, [r4, #2]
cmp r2, #0
beq _080753DC
movs r6, #7
adds r0, r6, #0
ands r0, r2
cmp r0, #3
beq _080753E4
movs r0, #0x78
ands r0, r2
cmp r0, #0
bne _080753E4
ldr r3, _080753D4 @ =gLinkEntity
ldr r1, [r3, #0x20]
ldr r0, _080753D8 @ =0x00017FFF
cmp r1, r0
bhi _080753E4
adds r0, r4, #0
adds r0, #0xac
ldrh r1, [r0]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _080753E4
ldr r0, [r3, #0x34]
cmp r0, #0
beq _080753E4
movs r0, #0x20
orrs r0, r2
strb r0, [r4, #2]
adds r0, r4, #0
adds r0, #0xab
strb r6, [r0]
movs r0, #8
asrs r0, r7
lsls r1, r0, #4
orrs r0, r1
ldrb r1, [r4, #4]
orrs r0, r1
strb r0, [r4, #4]
adds r0, r5, #0
bl sub_08077B98
movs r0, #6
strb r0, [r5, #4]
adds r0, r5, #0
adds r1, r7, #0
bl sub_08075898
b _080754B4
.align 2, 0
_080753D4: .4byte gLinkEntity
_080753D8: .4byte 0x00017FFF
_080753DC:
ldr r2, _080753F0 @ =gLinkEntity
ldr r0, [r2, #0x34]
cmp r0, #0
beq _080753F4
_080753E4:
adds r0, r5, #0
adds r1, r7, #0
bl sub_080759B8
b _080754B4
.align 2, 0
_080753F0: .4byte gLinkEntity
_080753F4:
movs r6, #0x80
lsls r6, r6, #0xb
ands r6, r1
cmp r6, #0
beq _08075480
adds r0, r4, #0
adds r0, #0xac
ldrh r1, [r0]
movs r0, #2
ands r0, r1
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
cmp r6, #0
bne _0807541E
ldr r0, [r4, #0x2c]
cmp r0, #0
beq _080754B4
bl sub_0805E7BC
str r6, [r4, #0x2c]
b _080754B4
_0807541E:
adds r0, r5, #0
adds r1, r7, #0
bl sub_08077D38
adds r0, r5, #0
bl sub_08077B98
movs r3, #8
adds r1, r3, #0
asrs r1, r7
lsls r0, r1, #4
orrs r0, r1
ldrb r2, [r4, #4]
orrs r0, r2
strb r0, [r4, #4]
ldrb r2, [r4, #0xa]
adds r0, r1, #0
orrs r0, r2
strb r0, [r4, #0xa]
ldrb r0, [r4, #0xb]
orrs r1, r0
strb r1, [r4, #0xb]
strb r3, [r5, #4]
movs r0, #0x14
strb r0, [r5, #7]
movs r0, #6
strb r0, [r5, #0xf]
ldrb r1, [r5, #9]
movs r0, #0x80
orrs r0, r1
strb r0, [r5, #9]
adds r1, r4, #0
adds r1, #0xab
movs r0, #2
strb r0, [r1]
ldr r0, [r4, #0x30]
movs r1, #0x80
lsls r1, r1, #0x14
orrs r0, r1
str r0, [r4, #0x30]
movs r1, #0x98
lsls r1, r1, #1
adds r0, r5, #0
bl sub_08077DF4
movs r0, #0x77
bl sub_080A3268
b _080754B4
_08075480:
ldrb r1, [r4, #0x1b]
adds r0, r3, #0
ands r0, r1
cmp r0, #0
bne _08075492
strb r6, [r4, #0x1b]
adds r0, r2, #0
bl sub_0806F948
_08075492:
ldr r1, [r4, #0x2c]
cmp r1, #0
beq _080754A6
ldrb r0, [r1, #9]
cmp r0, #1
beq _080754A6
adds r0, r1, #0
bl sub_0805E7BC
str r6, [r4, #0x2c]
_080754A6:
adds r0, r5, #0
adds r1, r7, #0
bl sub_08077D38
adds r0, r5, #0
bl sub_08077B98
_080754B4:
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_080754B8
sub_080754B8: @ 0x080754B8
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
adds r6, r1, #0
ldr r7, _080754D4 @ =gUnk_03003F80
ldrb r1, [r7, #0x1b]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080754D8
adds r0, r4, #0
adds r1, r6, #0
bl sub_08075694
b _0807557E
.align 2, 0
_080754D4: .4byte gUnk_03003F80
_080754D8:
ldrb r0, [r7, #4]
cmp r0, #0
beq _08075576
adds r0, r4, #0
bl sub_08077E24
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _080754F2
ldrb r1, [r4, #9]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #9]
_080754F2:
ldr r0, _0807552C @ =gLinkEntity
adds r0, #0x5b
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _08075538
bl sub_0807B014
adds r5, r0, #0
cmp r5, #0
beq _08075538
movs r0, #8
movs r1, #0xf
movs r2, #2
bl sub_0805EB00
cmp r0, #0
bne _08075538
adds r0, r4, #0
movs r1, #0xf
bl sub_08077C3C
cmp r5, #0xf
bne _08075530
adds r1, r7, #0
adds r1, #0xab
movs r0, #5
b _08075536
.align 2, 0
_0807552C: .4byte gLinkEntity
_08075530:
adds r1, r7, #0
adds r1, #0xab
movs r0, #8
_08075536:
strb r0, [r1]
_08075538:
ldrb r1, [r4, #0xe]
movs r2, #0x80
adds r0, r2, #0
ands r0, r1
cmp r0, #0
beq _0807557E
ldr r1, _08075568 @ =gUnk_03003F80
ldr r0, [r1, #0x30]
ands r0, r2
cmp r0, #0
bne _0807555C
adds r0, r1, #0
adds r0, #0xac
ldrh r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _0807556C
_0807555C:
adds r0, r4, #0
adds r1, r6, #0
bl sub_080759B8
b _0807557E
.align 2, 0
_08075568: .4byte gUnk_03003F80
_0807556C:
adds r0, r4, #0
adds r1, r6, #0
bl sub_08075580
b _0807557E
_08075576:
adds r0, r4, #0
adds r1, r6, #0
bl sub_080759B8
_0807557E:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_08075580
sub_08075580: @ 0x08075580
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
bl sub_08077EFC
cmp r0, #0
beq _080755E6
ldr r2, _080755C8 @ =gUnk_03003F80
ldrb r3, [r2, #2]
cmp r3, #0
bne _080755E6
movs r1, #8
asrs r1, r5
ldrb r0, [r2, #0xa]
bics r0, r1
strb r0, [r2, #0xa]
movs r0, #1
strb r0, [r2, #0x1b]
ldr r0, [r2, #0x2c]
adds r0, #0x40
movs r1, #0xd
strb r1, [r0]
strb r3, [r4, #0xf]
movs r0, #2
strb r0, [r4, #4]
adds r0, r2, #0
adds r0, #0xac
ldrh r1, [r0]
movs r0, #0x80
lsls r0, r0, #2
ands r0, r1
cmp r0, #0
beq _080755CC
movs r0, #0x28
b _080755CE
.align 2, 0
_080755C8: .4byte gUnk_03003F80
_080755CC:
movs r0, #0x50
_080755CE:
strb r0, [r4, #7]
movs r1, #0xb4
lsls r1, r1, #1
adds r0, r4, #0
bl sub_08077DF4
movs r0, #0x43
movs r1, #0
movs r2, #0
bl CreateObject
b _080755EE
_080755E6:
adds r0, r4, #0
adds r1, r5, #0
bl sub_080759B8
_080755EE:
pop {r4, r5, pc}
thumb_func_start sub_080755F0
sub_080755F0: @ 0x080755F0
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
bl sub_08077EFC
cmp r0, #0
beq _08075642
adds r0, r4, #0
bl sub_08077EC8
cmp r0, #0
bne _0807564A
ldr r2, _08075634 @ =gUnk_03003F80
ldrb r3, [r2, #0x1b]
ldrb r0, [r2, #4]
orrs r0, r3
cmp r0, #0
beq _08075638
ldrb r0, [r4, #7]
subs r0, #1
strb r0, [r4, #7]
lsls r0, r0, #0x18
cmp r0, #0
bne _0807564A
movs r0, #3
strb r0, [r4, #4]
ldrb r0, [r4, #9]
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #9]
movs r0, #0x20
orrs r0, r3
strb r0, [r2, #0x1b]
b _0807564A
.align 2, 0
_08075634: .4byte gUnk_03003F80
_08075638:
adds r0, r4, #0
adds r1, r5, #0
bl sub_080759B8
b _0807564A
_08075642:
adds r0, r4, #0
adds r1, r5, #0
bl sub_080759B8
_0807564A:
pop {r4, r5, pc}
thumb_func_start sub_0807564C
sub_0807564C: @ 0x0807564C
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r6, r1, #0
ldr r5, _08075668 @ =gUnk_03003F80
ldrb r1, [r5, #0x1b]
ldrb r0, [r5, #4]
orrs r0, r1
cmp r0, #0
bne _0807566C
adds r0, r4, #0
adds r1, r6, #0
bl sub_080759B8
b _08075692
.align 2, 0
_08075668: .4byte gUnk_03003F80
_0807566C:
adds r0, r4, #0
bl sub_08077EC8
cmp r0, #0
bne _08075692
adds r0, r4, #0
bl sub_08077EFC
cmp r0, #0
beq _0807568A
ldrb r1, [r5, #0x1b]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08075692
_0807568A:
adds r0, r4, #0
adds r1, r6, #0
bl sub_08075694
_08075692:
pop {r4, r5, r6, pc}
thumb_func_start sub_08075694
sub_08075694: @ 0x08075694
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
movs r3, #1
strb r3, [r4, #7]
ldr r2, _080756C4 @ =gUnk_03003F80
ldr r1, [r2, #0x30]
movs r0, #0x80
lsls r0, r0, #0x14
ands r0, r1
cmp r0, #0
beq _080756D0
ldr r0, _080756C8 @ =0xF7FFFFFF
ands r1, r0
ldr r0, _080756CC @ =0xFFFBFFFF
ands r1, r0
str r1, [r2, #0x30]
movs r1, #0x96
lsls r1, r1, #1
adds r0, r4, #0
bl sub_08077DF4
b _080756E0
.align 2, 0
_080756C4: .4byte gUnk_03003F80
_080756C8: .4byte 0xF7FFFFFF
_080756CC: .4byte 0xFFFBFFFF
_080756D0:
adds r0, r2, #0
adds r0, #0xab
strb r3, [r0]
movs r1, #0x92
lsls r1, r1, #1
adds r0, r4, #0
bl sub_08077DF4
_080756E0:
ldr r2, _08075730 @ =gUnk_03003F80
movs r0, #8
asrs r0, r5
ldrb r1, [r2, #0xa]
orrs r0, r1
strb r0, [r2, #0xa]
movs r0, #4
strb r0, [r4, #4]
movs r0, #6
strb r0, [r4, #0xf]
ldr r0, _08075734 @ =gLinkEntity
adds r0, #0x40
movs r1, #0x1e
strb r1, [r0]
ldrb r1, [r2, #0x1b]
movs r0, #0x40
orrs r0, r1
movs r1, #0xdf
ands r0, r1
strb r0, [r2, #0x1b]
adds r3, r2, #0
adds r3, #0xa0
ldrb r0, [r3]
cmp r0, #4
bne _08075726
ldr r0, [r2, #0x30]
movs r1, #0x80
lsls r1, r1, #0xf
ands r0, r1
cmp r0, #0
bne _08075726
movs r0, #1
strb r0, [r3]
bl sub_0807A108
_08075726:
movs r0, #0x76
bl sub_080A3268
pop {r4, r5, pc}
.align 2, 0
_08075730: .4byte gUnk_03003F80
_08075734: .4byte gLinkEntity
thumb_func_start sub_08075738
sub_08075738: @ 0x08075738
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
adds r6, r1, #0
ldr r5, _08075750 @ =gUnk_03003F80
ldrb r0, [r5, #4]
cmp r0, #0
bne _08075754
adds r0, r4, #0
bl sub_080759B8
b _0807588C
.align 2, 0
_08075750: .4byte gUnk_03003F80
_08075754:
adds r0, r4, #0
bl sub_08077E24
adds r0, r4, #0
bl sub_08077F10
cmp r0, #0
beq _08075768
movs r0, #2
strb r0, [r4, #7]
_08075768:
ldrb r2, [r5, #0x1b]
movs r0, #0x10
ands r0, r2
cmp r0, #0
beq _080757D4
ldrb r1, [r5, #0xd]
movs r2, #0x80
adds r0, r2, #0
ands r0, r1
cmp r0, #0
bne _08075780
strb r1, [r4, #0xb]
_08075780:
ldr r1, _080757D0 @ =gLinkEntity
ldrb r0, [r4, #0xb]
strb r0, [r1, #0x15]
movs r0, #0xc0
lsls r0, r0, #1
strh r0, [r1, #0x24]
ldrb r1, [r4, #0xe]
adds r0, r2, #0
ands r0, r1
cmp r0, #0
beq _0807588C
movs r2, #0xa
adds r0, r5, #0
adds r0, #0xac
ldrh r1, [r0]
movs r0, #0x80
lsls r0, r0, #4
ands r0, r1
cmp r0, #0
beq _080757AA
movs r2, #0xf
_080757AA:
ldrb r0, [r4, #8]
adds r0, #1
strb r0, [r4, #8]
movs r1, #0xff
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r2, r0
bls _080757C6
ldrb r0, [r4, #7]
subs r0, #1
strb r0, [r4, #7]
ands r0, r1
cmp r0, #0
bne _0807588C
_080757C6:
adds r0, r4, #0
adds r1, r6, #0
bl sub_080759B8
b _0807588C
.align 2, 0
_080757D0: .4byte gLinkEntity
_080757D4:
ldr r7, _08075890 @ =gLinkEntity
adds r0, r7, #0
adds r0, #0x5b
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _08075816
movs r0, #0x80
ands r0, r2
cmp r0, #0
bne _08075816
adds r0, r5, #0
adds r0, #0xac
ldrh r1, [r0]
movs r0, #0x80
lsls r0, r0, #1
ands r0, r1
cmp r0, #0
beq _08075816
adds r0, r4, #0
movs r1, #0x14
bl sub_08077C3C
adds r2, r0, #0
cmp r2, #0
beq _08075816
ldrb r0, [r7, #0x14]
movs r1, #6
ands r1, r0
movs r0, #0x80
orrs r1, r0
strb r1, [r2, #0x14]
_08075816:
ldr r5, _08075890 @ =gLinkEntity
adds r0, r5, #0
adds r0, #0x5b
ldrb r1, [r0]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0807587A
ldr r2, _08075894 @ =gUnk_03003F80
ldrb r3, [r2, #0x1b]
movs r0, #0x80
ands r0, r3
cmp r0, #0
bne _0807587A
adds r0, r2, #0
adds r0, #0xac
ldrh r1, [r0]
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq _0807587A
ldrb r0, [r4, #7]
subs r0, #1
strb r0, [r4, #7]
lsls r0, r0, #0x18
cmp r0, #0
beq _0807587A
movs r0, #0x10
orrs r0, r3
strb r0, [r2, #0x1b]
adds r1, r2, #0
adds r1, #0xab
movs r0, #6
strb r0, [r1]
ldrb r0, [r5, #0x14]
lsls r0, r0, #2
strb r0, [r4, #0xb]
movs r0, #1
strb r0, [r4, #7]
strb r0, [r4, #8]
movs r1, #8
asrs r1, r6
ldrb r0, [r2, #0xa]
bics r0, r1
strb r0, [r2, #0xa]
movs r1, #0x94
lsls r1, r1, #1
adds r0, r4, #0
bl sub_08077DF4
_0807587A:
ldrb r1, [r4, #0xe]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0807588C
adds r0, r4, #0
adds r1, r6, #0
bl sub_080759B8
_0807588C:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08075890: .4byte gLinkEntity
_08075894: .4byte gUnk_03003F80
thumb_func_start sub_08075898
sub_08075898: @ 0x08075898
push {lr}
adds r2, r0, #0
ldr r0, _080758AC @ =gUnk_03003F80
ldrb r0, [r0, #4]
cmp r0, #0
bne _080758AA
adds r0, r2, #0
bl sub_080759B8
_080758AA:
pop {pc}
.align 2, 0
_080758AC: .4byte gUnk_03003F80
thumb_func_start sub_080758B0
sub_080758B0: @ 0x080758B0
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, _080758C4 @ =gUnk_03003F80
ldrb r0, [r5, #4]
cmp r0, #0
bne _080758C8
adds r0, r4, #0
bl sub_080759B8
b _080758F8
.align 2, 0
_080758C4: .4byte gUnk_03003F80
_080758C8:
adds r0, r4, #0
bl sub_08077E24
ldrb r1, [r4, #0xe]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080758F8
movs r0, #0
strb r0, [r4, #0xf]
ldrb r1, [r5, #0x1b]
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq _080758EA
movs r0, #3
b _080758EC
_080758EA:
movs r0, #5
_080758EC:
strb r0, [r4, #4]
ldr r2, _080758FC @ =gUnk_03003F80
ldrb r1, [r2, #0x1b]
movs r0, #0xf7
ands r0, r1
strb r0, [r2, #0x1b]
_080758F8:
pop {r4, r5, pc}
.align 2, 0
_080758FC: .4byte gUnk_03003F80
thumb_func_start sub_08075900
sub_08075900: @ 0x08075900
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r6, r1, #0
ldr r5, _08075920 @ =gUnk_03003F80
ldrb r0, [r5, #0x12]
cmp r0, #0x11
bne _08075928
ldr r0, [r5, #0x30]
ldr r1, _08075924 @ =0xFFFBFFFF
ands r0, r1
str r0, [r5, #0x30]
adds r0, r4, #0
adds r1, r6, #0
bl sub_080759B8
b _080759B2
.align 2, 0
_08075920: .4byte gUnk_03003F80
_08075924: .4byte 0xFFFBFFFF
_08075928:
adds r0, r4, #0
bl sub_08077E24
ldrb r1, [r5, #0x1b]
movs r2, #0x80
adds r0, r2, #0
ands r0, r1
cmp r0, #0
beq _08075948
movs r0, #0xa0
strb r0, [r5, #0x1b]
adds r0, r4, #0
adds r1, r6, #0
bl sub_0807564C
b _080759B2
_08075948:
ldrb r0, [r4, #7]
cmp r0, #0
beq _08075998
subs r0, #1
strb r0, [r4, #7]
lsls r0, r0, #0x18
cmp r0, #0
bne _08075962
movs r1, #0x9a
lsls r1, r1, #1
adds r0, r4, #0
bl sub_08077DF4
_08075962:
ldr r4, _08075990 @ =gLinkEntity
ldrb r0, [r4, #0x14]
lsrs r0, r0, #1
lsls r0, r0, #3
strb r0, [r4, #0x15]
movs r0, #0xc0
lsls r0, r0, #2
strh r0, [r4, #0x24]
bl sub_08079E08
ldr r0, _08075994 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #3
ands r0, r1
cmp r0, #0
bne _080759B2
adds r0, r4, #0
movs r1, #0x11
movs r2, #0x40
bl CreateFX
b _080759B2
.align 2, 0
_08075990: .4byte gLinkEntity
_08075994: .4byte gUnk_030010A0
_08075998:
ldrb r1, [r4, #0xe]
adds r0, r2, #0
ands r0, r1
cmp r0, #0
beq _080759B2
ldr r0, [r5, #0x30]
ldr r1, _080759B4 @ =0xFFFBFFFF
ands r0, r1
str r0, [r5, #0x30]
adds r0, r4, #0
adds r1, r6, #0
bl sub_080759B8
_080759B2:
pop {r4, r5, r6, pc}
.align 2, 0
_080759B4: .4byte 0xFFFBFFFF
thumb_func_start sub_080759B8
sub_080759B8: @ 0x080759B8
push {r4, lr}
adds r3, r0, #0
adds r4, r1, #0
ldr r2, _080759E8 @ =gUnk_03003F80
ldr r1, [r2, #0x30]
movs r0, #0x80
ands r1, r0
cmp r1, #0
bne _080759D0
ldr r0, _080759EC @ =gLinkEntity
adds r0, #0x40
strb r1, [r0]
_080759D0:
ldr r0, [r2, #0x30]
ldr r1, _080759F0 @ =0xF7FFFFFF
ands r0, r1
str r0, [r2, #0x30]
movs r0, #0
strb r0, [r2, #0x1b]
str r0, [r2, #0x2c]
adds r0, r3, #0
adds r1, r4, #0
bl sub_08077E78
pop {r4, pc}
.align 2, 0
_080759E8: .4byte gUnk_03003F80
_080759EC: .4byte gLinkEntity
_080759F0: .4byte 0xF7FFFFFF
thumb_func_start sub_080759F4
sub_080759F4: @ 0x080759F4
push {lr}
ldr r3, _08075A08 @ =gUnk_0811BD68
ldrb r2, [r0, #4]
lsls r2, r2, #2
adds r2, r2, r3
ldr r2, [r2]
bl _call_via_r2
pop {pc}
.align 2, 0
_08075A08: .4byte gUnk_0811BD68
thumb_func_start sub_08075A0C
sub_08075A0C: @ 0x08075A0C
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r5, r1, #0
ldrb r0, [r4, #1]
bl sub_0805436C
adds r6, r0, #0
ldr r1, _08075A64 @ =gUnk_03003F80
ldrb r0, [r1, #5]
cmp r0, #0
bne _08075A3E
ldrb r0, [r1, #0xc]
cmp r0, #0x18
beq _08075A3E
ldrb r0, [r1, #2]
cmp r0, #0
bne _08075A3E
ldr r0, [r1, #0x2c]
cmp r0, #0
bne _08075A3E
ldr r0, [r1, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
beq _08075A6C
_08075A3E:
movs r0, #0xf
adds r1, r6, #0
bl sub_08054414
ldr r0, _08075A64 @ =gUnk_03003F80
ldr r1, [r0, #0x30]
ldr r2, _08075A68 @ =0xFF7FFFFF
ands r1, r2
str r1, [r0, #0x30]
movs r0, #0xf
adds r1, r6, #0
bl sub_08054414
adds r0, r4, #0
adds r1, r5, #0
bl sub_08077E78
b _08075AD0
.align 2, 0
_08075A64: .4byte gUnk_03003F80
_08075A68: .4byte 0xFF7FFFFF
_08075A6C:
ldrb r1, [r4, #9]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #9]
adds r0, r4, #0
adds r1, r5, #0
bl sub_08077D38
adds r0, r4, #0
bl sub_08077BD4
ldr r5, _08075AD4 @ =gLinkEntity
adds r0, r5, #0
bl sub_0806F948
movs r0, #0x10
strb r0, [r4, #1]
adds r1, r6, #0
bl sub_08054414
ldrb r1, [r5, #0x14]
movs r0, #6
ands r0, r1
ldr r1, _08075AD8 @ =gUnk_08126EEC
adds r4, r0, r1
adds r0, r5, #0
movs r1, #0x45
movs r2, #1
movs r3, #0
bl sub_080A2988
adds r2, r0, #0
cmp r2, #0
beq _08075AD0
adds r0, r5, #0
adds r0, #0x60
ldrh r1, [r0]
adds r0, r2, #0
adds r0, #0x60
strh r1, [r0]
movs r0, #0
ldrsb r0, [r4, r0]
ldrh r1, [r2, #0x2e]
adds r0, r0, r1
strh r0, [r2, #0x2e]
movs r0, #1
ldrsb r0, [r4, r0]
ldrh r1, [r2, #0x32]
adds r0, r0, r1
strh r0, [r2, #0x32]
_08075AD0:
pop {r4, r5, r6, pc}
.align 2, 0
_08075AD4: .4byte gLinkEntity
_08075AD8: .4byte gUnk_08126EEC
thumb_func_start sub_08075ADC
sub_08075ADC: @ 0x08075ADC
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
ldr r2, _08075B44 @ =gUnk_03003F80
ldr r0, [r2, #0x2c]
cmp r0, #0
bne _08075B08
ldrb r1, [r4, #0xe]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _08075B08
ldr r0, [r2, #0x30]
movs r1, #0x88
lsls r1, r1, #1
ands r0, r1
cmp r0, #0
bne _08075B08
bl sub_08079D48
cmp r0, #0
bne _08075B4C
_08075B08:
movs r0, #0
strb r0, [r4, #0xf]
ldrb r0, [r4, #4]
adds r0, #1
strb r0, [r4, #4]
ldr r3, _08075B44 @ =gUnk_03003F80
ldr r0, [r3, #0x30]
movs r1, #0x80
lsls r1, r1, #0x10
orrs r0, r1
str r0, [r3, #0x30]
movs r2, #8
asrs r2, r5
lsls r1, r2, #4
orrs r1, r2
ldrb r0, [r3, #4]
bics r0, r1
strb r0, [r3, #4]
mvns r2, r2
ldrb r1, [r3, #0xa]
adds r0, r2, #0
ands r0, r1
strb r0, [r3, #0xa]
ldrb r0, [r3, #0xb]
ands r2, r0
strb r2, [r3, #0xb]
ldr r0, _08075B48 @ =0x0000013D
bl sub_080A3268
b _08075B52
.align 2, 0
_08075B44: .4byte gUnk_03003F80
_08075B48: .4byte 0x0000013D
_08075B4C:
adds r0, r4, #0
bl sub_08077E24
_08075B52:
pop {r4, r5, pc}
thumb_func_start sub_08075B54
sub_08075B54: @ 0x08075B54
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
adds r6, r0, #0
mov sb, r1
ldr r5, _08075BB0 @ =gUnk_03003F80
ldr r0, [r5, #0x30]
movs r1, #0x88
lsls r1, r1, #1
ands r0, r1
cmp r0, #0
beq _08075B70
b _08075C80
_08075B70:
ldrb r0, [r6, #1]
bl sub_0805436C
adds r4, r0, #0
adds r0, r6, #0
bl sub_08077F10
cmp r0, #0
bne _08075B86
cmp r4, #1
bls _08075BB8
_08075B86:
ldrb r0, [r5, #2]
cmp r0, #0
bne _08075BB8
movs r0, #0xf
adds r1, r4, #0
bl sub_08054414
ldr r0, [r5, #0x30]
ldr r1, _08075BB4 @ =0xFF7FFFFF
ands r0, r1
str r0, [r5, #0x30]
adds r0, r6, #0
mov r1, sb
bl sub_08077E78
movs r0, #0x9f
lsls r0, r0, #1
bl sub_080A3268
b _08075C80
.align 2, 0
_08075BB0: .4byte gUnk_03003F80
_08075BB4: .4byte 0xFF7FFFFF
_08075BB8:
ldr r0, _08075C88 @ =gUnk_03003F80
mov r8, r0
ldrb r0, [r0, #0xc]
cmp r0, #0x18
beq _08075C80
ldr r5, _08075C8C @ =gLinkEntity
ldrb r0, [r5, #0x1e]
cmp r0, #0x36
bhi _08075C80
ldrh r1, [r5, #0x12]
cmp r1, #6
bne _08075C80
ldrb r0, [r5, #0x14]
ands r1, r0
ldr r0, _08075C90 @ =gUnk_08126EEC
adds r7, r1, r0
mov r1, r8
ldrb r0, [r1, #2]
cmp r0, #0
bne _08075C80
movs r2, #0x2e
ldrsh r0, [r5, r2]
movs r1, #0
ldrsb r1, [r7, r1]
adds r0, r0, r1
ldr r4, _08075C94 @ =gUnk_03000BF0
ldrh r1, [r4, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r2, #0x32
ldrsh r1, [r5, r2]
movs r2, #1
ldrsb r2, [r7, r2]
adds r1, r1, r2
ldrh r2, [r4, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
adds r1, r5, #0
adds r1, #0x38
ldrb r1, [r1]
movs r2, #0x40
bl sub_080002F0
cmp r0, #0
beq _08075C80
movs r0, #0xf
strb r0, [r6, #0xf]
ldrb r0, [r6, #4]
adds r0, #1
strb r0, [r6, #4]
adds r1, r5, #0
adds r1, #0x7a
movs r0, #2
strh r0, [r1]
adds r0, r5, #0
movs r1, #0x45
movs r2, #1
movs r3, #0
bl sub_080A2988
adds r2, r0, #0
cmp r2, #0
beq _08075C60
adds r0, r5, #0
adds r0, #0x60
ldrh r1, [r0]
adds r0, r2, #0
adds r0, #0x60
strh r1, [r0]
movs r0, #0
ldrsb r0, [r7, r0]
ldrh r1, [r2, #0x2e]
adds r0, r0, r1
strh r0, [r2, #0x2e]
movs r0, #1
ldrsb r0, [r7, r0]
ldrh r1, [r2, #0x32]
adds r0, r0, r1
strh r0, [r2, #0x32]
_08075C60:
ldr r1, _08075C98 @ =0x0000060C
adds r0, r6, #0
bl sub_08077DF4
movs r1, #8
mov r2, sb
asrs r1, r2
mov r0, r8
ldrb r2, [r0, #0xa]
adds r0, r1, #0
orrs r0, r2
mov r2, r8
strb r0, [r2, #0xa]
ldrb r0, [r2, #0xb]
orrs r1, r0
strb r1, [r2, #0xb]
_08075C80:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08075C88: .4byte gUnk_03003F80
_08075C8C: .4byte gLinkEntity
_08075C90: .4byte gUnk_08126EEC
_08075C94: .4byte gUnk_03000BF0
_08075C98: .4byte 0x0000060C
thumb_func_start sub_08075C9C
sub_08075C9C: @ 0x08075C9C
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
bl sub_08077E24
ldrb r1, [r4, #0xe]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _08075CCA
ldr r0, _08075CF8 @ =gLinkEntity
ldrb r1, [r0, #0x14]
movs r2, #6
ands r2, r1
ldr r1, _08075CFC @ =gUnk_08126EEC
adds r2, r2, r1
movs r1, #0
ldrsb r1, [r2, r1]
ldrb r2, [r2, #1]
lsls r2, r2, #0x18
asrs r2, r2, #0x18
bl sub_0807AB44
_08075CCA:
ldrb r1, [r4, #0xe]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08075D04
movs r0, #0
strb r0, [r4, #0xf]
ldrb r0, [r4, #4]
subs r0, #1
strb r0, [r4, #4]
ldr r2, _08075D00 @ =gUnk_03003F80
movs r1, #8
asrs r1, r5
mvns r1, r1
ldrb r3, [r2, #0xa]
adds r0, r1, #0
ands r0, r3
strb r0, [r2, #0xa]
ldrb r0, [r2, #0xb]
ands r1, r0
strb r1, [r2, #0xb]
b _08075D0E
.align 2, 0
_08075CF8: .4byte gLinkEntity
_08075CFC: .4byte gUnk_08126EEC
_08075D00: .4byte gUnk_03003F80
_08075D04:
ldr r1, _08075D10 @ =gLinkEntity
adds r1, #0x7a
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_08075D0E:
pop {r4, r5, pc}
.align 2, 0
_08075D10: .4byte gLinkEntity
thumb_func_start sub_08075D14
sub_08075D14: @ 0x08075D14
push {lr}
ldr r3, _08075D28 @ =gUnk_0811BD78
ldrb r2, [r0, #4]
lsls r2, r2, #2
adds r2, r2, r3
ldr r2, [r2]
bl _call_via_r2
pop {pc}
.align 2, 0
_08075D28: .4byte gUnk_0811BD78
thumb_func_start sub_08075D2C
sub_08075D2C: @ 0x08075D2C
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r6, r1, #0
ldr r5, _08075D74 @ =gUnk_03003F80
ldrb r1, [r5, #4]
movs r0, #8
ands r0, r1
cmp r0, #0
bne _08075D7C
ldrb r1, [r4, #1]
adds r0, r4, #0
bl sub_08077C94
cmp r0, #0
bne _08075D7C
ldrb r1, [r4, #9]
movs r0, #0xf
orrs r0, r1
strb r0, [r4, #9]
ldr r0, _08075D78 @ =gLinkEntity
bl sub_0806F948
adds r0, r4, #0
movs r1, #0xb
bl sub_08077C0C
adds r0, r4, #0
adds r1, r6, #0
bl sub_08077D38
ldrb r1, [r5, #4]
movs r0, #8
orrs r0, r1
strb r0, [r5, #4]
b _08075D84
.align 2, 0
_08075D74: .4byte gUnk_03003F80
_08075D78: .4byte gLinkEntity
_08075D7C:
adds r0, r4, #0
adds r1, r6, #0
bl sub_08077E78
_08075D84:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_08075D88
sub_08075D88: @ 0x08075D88
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
ldr r2, _08075DBC @ =gUnk_03003F80
ldrb r1, [r2, #4]
movs r3, #0x80
adds r0, r3, #0
ands r0, r1
cmp r0, #0
bne _08075DD0
ldrb r0, [r4, #1]
cmp r0, #0xc
bne _08075DC0
ldrb r1, [r2, #0xa]
adds r0, r3, #0
ands r0, r1
cmp r0, #0
beq _08075DC0
ldrb r1, [r4, #0xe]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _08075DC0
bl sub_08078F60
b _08075DD8
.align 2, 0
_08075DBC: .4byte gUnk_03003F80
_08075DC0:
adds r0, r4, #0
bl sub_08077E24
ldrb r1, [r4, #0xe]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08075DD8
_08075DD0:
adds r0, r4, #0
adds r1, r5, #0
bl sub_08077E78
_08075DD8:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08075DDC
sub_08075DDC: @ 0x08075DDC
push {lr}
ldr r3, _08075DF0 @ =gUnk_0811BD80
ldrb r2, [r0, #4]
lsls r2, r2, #2
adds r2, r2, r3
ldr r2, [r2]
bl _call_via_r2
pop {pc}
.align 2, 0
_08075DF0: .4byte gUnk_0811BD80
thumb_func_start sub_08075DF4
sub_08075DF4: @ 0x08075DF4
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r5, r1, #0
ldr r6, _08075E2C @ =gUnk_03003F80
ldrb r1, [r6, #4]
movs r0, #8
ands r0, r1
cmp r0, #0
bne _08075E34
ldrb r1, [r4, #9]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #9]
ldr r0, _08075E30 @ =gLinkEntity
bl sub_0806F948
adds r0, r4, #0
bl sub_08077BB8
adds r0, r4, #0
adds r1, r5, #0
bl sub_08077D38
adds r1, r6, #0
adds r1, #0x21
movs r0, #1
strb r0, [r1]
b _08075E3C
.align 2, 0
_08075E2C: .4byte gUnk_03003F80
_08075E30: .4byte gLinkEntity
_08075E34:
adds r0, r4, #0
adds r1, r5, #0
bl sub_08077E78
_08075E3C:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_08075E40
sub_08075E40: @ 0x08075E40
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r4, r0, #0
mov r8, r1
ldr r0, _08075EA0 @ =gUnk_03003F80
adds r1, r0, #0
adds r1, #0x21
ldrb r1, [r1]
adds r6, r0, #0
cmp r1, #0
beq _08075EA8
ldrb r1, [r6, #4]
movs r5, #0x80
adds r0, r5, #0
ands r0, r1
lsls r0, r0, #0x18
lsrs r7, r0, #0x18
cmp r7, #0
bne _08075EA8
adds r0, r4, #0
bl sub_08077E24
ldrb r1, [r4, #0xe]
adds r0, r5, #0
ands r0, r1
cmp r0, #0
beq _08075EB8
movs r0, #2
strb r0, [r4, #4]
ldrb r1, [r4, #9]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #9]
ldr r0, _08075EA4 @ =gUnk_02002A40
adds r0, #0xad
ldrb r0, [r0]
cmp r0, #0
beq _08075EB8
strb r7, [r4, #0xf]
movs r1, #8
mov r0, r8
asrs r1, r0
ldrb r0, [r6, #0xa]
bics r0, r1
strb r0, [r6, #0xa]
b _08075EB8
.align 2, 0
_08075EA0: .4byte gUnk_03003F80
_08075EA4: .4byte gUnk_02002A40
_08075EA8:
adds r1, r6, #0
adds r1, #0x21
movs r0, #0
strb r0, [r1]
adds r0, r4, #0
mov r1, r8
bl sub_08077E78
_08075EB8:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_08075EC0
sub_08075EC0: @ 0x08075EC0
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r6, r1, #0
ldr r0, _08075F04 @ =gUnk_02002A40
adds r0, #0xad
ldrb r5, [r0]
adds r0, r4, #0
bl sub_08077EFC
cmp r0, #0
beq _08075F0C
cmp r5, #0
beq _08075F0C
ldr r2, _08075F08 @ =gUnk_03003F80
ldrb r1, [r2, #4]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _08075EF0
adds r0, r2, #0
adds r0, #0x21
ldrb r0, [r0]
cmp r0, #0
bne _08075F32
_08075EF0:
adds r1, r2, #0
adds r1, #0x21
movs r0, #0
strb r0, [r1]
adds r0, r4, #0
adds r1, r6, #0
bl sub_08077E78
b _08075F32
.align 2, 0
_08075F04: .4byte gUnk_02002A40
_08075F08: .4byte gUnk_03003F80
_08075F0C:
ldr r2, _08075F34 @ =gUnk_03003F80
movs r0, #8
asrs r0, r6
ldrb r1, [r2, #0xa]
orrs r0, r1
strb r0, [r2, #0xa]
movs r1, #0x9f
lsls r1, r1, #2
adds r0, r4, #0
bl sub_08077DF4
movs r1, #0xf
movs r0, #0xf
strb r0, [r4, #0xf]
ldrb r0, [r4, #9]
orrs r1, r0
strb r1, [r4, #9]
movs r0, #3
strb r0, [r4, #4]
_08075F32:
pop {r4, r5, r6, pc}
.align 2, 0
_08075F34: .4byte gUnk_03003F80
thumb_func_start sub_08075F38
sub_08075F38: @ 0x08075F38
push {r4, lr}
adds r4, r0, #0
adds r3, r1, #0
ldr r2, _08075F6C @ =gUnk_03003F80
ldrb r1, [r2, #4]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _08075F70
adds r0, r2, #0
adds r0, #0x21
ldrb r0, [r0]
cmp r0, #0
beq _08075F70
adds r0, r4, #0
bl sub_08077E24
ldrb r1, [r4, #0xe]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _08075F80
movs r0, #4
strb r0, [r4, #4]
b _08075F80
.align 2, 0
_08075F6C: .4byte gUnk_03003F80
_08075F70:
adds r1, r2, #0
adds r1, #0x21
movs r0, #0
strb r0, [r1]
adds r0, r4, #0
adds r1, r3, #0
bl sub_08077E78
_08075F80:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08075F84
sub_08075F84: @ 0x08075F84
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
ldr r2, _08075FB4 @ =gUnk_03003F80
ldrb r1, [r2, #4]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _08075FC8
adds r0, r2, #0
adds r0, #0x21
ldrb r0, [r0]
cmp r0, #0
beq _08075FC8
movs r0, #0x70
bl GetInventoryValue
cmp r0, #1
bne _08075FB8
adds r0, r4, #0
movs r1, #5
bl sub_08077E3C
b _08075FBE
.align 2, 0
_08075FB4: .4byte gUnk_03003F80
_08075FB8:
adds r0, r4, #0
bl sub_08077E24
_08075FBE:
ldrb r1, [r4, #0xe]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08075FD8
_08075FC8:
ldr r0, _08075FDC @ =gUnk_03003F80
adds r0, #0x21
movs r1, #0
strb r1, [r0]
adds r0, r4, #0
adds r1, r5, #0
bl sub_08077E78
_08075FD8:
pop {r4, r5, pc}
.align 2, 0
_08075FDC: .4byte gUnk_03003F80
thumb_func_start sub_08075FE0
sub_08075FE0: @ 0x08075FE0
push {lr}
ldr r3, _08075FF4 @ =gUnk_0811BD98
ldrb r2, [r0, #4]
lsls r2, r2, #2
adds r2, r2, r3
ldr r2, [r2]
bl _call_via_r2
pop {pc}
.align 2, 0
_08075FF4: .4byte gUnk_0811BD98
thumb_func_start sub_08075FF8
sub_08075FF8: @ 0x08075FF8
push {r4, r5, r6, r7, lr}
adds r6, r0, #0
adds r7, r1, #0
ldr r0, _08076018 @ =gUnk_03003F80
ldrb r1, [r0, #2]
ldrb r0, [r0, #4]
orrs r0, r1
cmp r0, #0
bne _08076076
movs r5, #0
movs r0, #8
movs r1, #2
movs r2, #2
bl sub_0805EB00
b _08076026
.align 2, 0
_08076018: .4byte gUnk_03003F80
_0807601C:
adds r5, #1
adds r0, r4, #0
movs r1, #2
bl sub_0805EB64
_08076026:
adds r4, r0, #0
cmp r4, #0
bne _0807601C
ldrb r0, [r6, #1]
movs r1, #1
cmp r0, #7
bne _08076036
movs r1, #3
_08076036:
cmp r1, r5
bls _08076076
adds r0, r6, #0
movs r1, #2
bl sub_08077C3C
adds r4, r0, #0
cmp r4, #0
beq _08076076
ldr r0, _08076080 @ =gLinkEntity
ldrb r2, [r0, #0x14]
movs r1, #6
ands r1, r2
ldr r2, _08076084 @ =gUnk_0811BDAC
adds r1, r1, r2
movs r2, #0
ldrsb r2, [r1, r2]
lsls r2, r2, #0x10
movs r3, #1
ldrsb r3, [r1, r3]
lsls r3, r3, #0x10
adds r1, r4, #0
bl PositionRelative
movs r0, #1
rsbs r0, r0, #0
bl sub_080542F4
movs r0, #0x82
lsls r0, r0, #1
bl sub_080A3268
_08076076:
adds r0, r6, #0
adds r1, r7, #0
bl sub_08077E78
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08076080: .4byte gLinkEntity
_08076084: .4byte gUnk_0811BDAC
thumb_func_start sub_08076088
sub_08076088: @ 0x08076088
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r4, r0, #0
adds r3, r1, #0
adds r5, r2, #0
cmp r3, #0
beq _080760AA
ldrb r0, [r3, #0x16]
movs r1, #1
ands r1, r0
cmp r1, #0
beq _080760A4
b _080761A0
_080760A4:
movs r0, #2
strb r0, [r3, #0xc]
strb r1, [r3, #0xd]
_080760AA:
str r3, [r4, #0x18]
ldr r0, _080760C4 @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #8
ands r0, r1
cmp r0, #0
beq _080760CC
ldr r1, _080760C8 @ =0x00000928
adds r0, r4, #0
bl sub_08077DF4
b _080760D6
.align 2, 0
_080760C4: .4byte gUnk_03003F80
_080760C8: .4byte 0x00000928
_080760CC:
movs r1, #0xce
lsls r1, r1, #2
adds r0, r4, #0
bl sub_08077DF4
_080760D6:
ldr r3, _08076130 @ =gUnk_03003F80
movs r0, #0
mov r8, r0
movs r7, #3
strb r7, [r3, #5]
adds r0, r3, #0
adds r0, #0xa8
movs r6, #4
strb r6, [r0]
movs r0, #2
strb r0, [r4, #4]
movs r0, #0xf
strb r0, [r4, #0xf]
ldr r2, _08076134 @ =gLinkEntity
movs r1, #0x79
adds r1, r1, r2
mov ip, r1
ldrb r1, [r1]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08076138
mov r1, r8
mov r0, ip
strb r1, [r0]
ldrb r0, [r2, #0x10]
movs r1, #0x80
orrs r0, r1
strb r0, [r2, #0x10]
strb r6, [r3, #5]
movs r1, #8
asrs r1, r5
mvns r1, r1
ldrb r2, [r3, #0xb]
adds r0, r1, #0
ands r0, r2
strb r0, [r3, #0xb]
ldrb r0, [r3, #0xa]
ands r1, r0
strb r1, [r3, #0xa]
strb r7, [r4, #4]
mov r0, r8
strb r0, [r4, #0xf]
b _0807614A
.align 2, 0
_08076130: .4byte gUnk_03003F80
_08076134: .4byte gLinkEntity
_08076138:
movs r1, #8
asrs r1, r5
ldrb r2, [r3, #0xa]
adds r0, r1, #0
orrs r0, r2
strb r0, [r3, #0xa]
ldrb r0, [r3, #0xb]
orrs r1, r0
strb r1, [r3, #0xb]
_0807614A:
adds r0, r4, #0
movs r1, #0x13
bl sub_08077C3C
adds r3, r0, #0
cmp r3, #0
bne _08076162
adds r0, r4, #0
adds r1, r5, #0
bl sub_08077F50
b _080761A0
_08076162:
ldr r1, _08076194 @ =gLinkEntity
str r3, [r1, #0x74]
movs r2, #0
strb r2, [r1, #0xf]
ldr r0, [r4, #0x18]
str r0, [r3, #0x54]
ldrb r0, [r1, #0x16]
strb r0, [r3, #0x16]
str r4, [r3, #0x50]
str r3, [r4, #0x18]
ldrb r0, [r4, #3]
strb r0, [r3, #0xb]
ldrb r0, [r4, #7]
strb r0, [r3, #0xe]
ldrb r0, [r4, #8]
strb r0, [r3, #0xf]
ldr r0, [r4, #0x18]
ldrb r1, [r0, #0x16]
movs r0, #0xf0
ands r0, r1
cmp r0, #0x10
bne _08076198
movs r0, #8
strb r0, [r4, #7]
b _0807619A
.align 2, 0
_08076194: .4byte gLinkEntity
_08076198:
strb r2, [r4, #7]
_0807619A:
movs r0, #0x7f
bl sub_080A3268
_080761A0:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_080761A8
sub_080761A8: @ 0x080761A8
push {lr}
ldr r3, _080761BC @ =gUnk_0811BDB4
ldrb r2, [r0, #4]
lsls r2, r2, #2
adds r2, r2, r3
ldr r2, [r2]
bl _call_via_r2
pop {pc}
.align 2, 0
_080761BC: .4byte gUnk_0811BDB4
thumb_func_start sub_080761C0
sub_080761C0: @ 0x080761C0
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r6, r1, #0
ldr r5, _08076220 @ =gUnk_03003F80
ldrb r0, [r5, #4]
cmp r0, #0
bne _080762B8
ldrb r0, [r5, #2]
cmp r0, #0
beq _080761DE
ldr r0, [r5, #0x30]
ldr r1, _08076224 @ =0x00001201
ands r0, r1
cmp r0, #0
beq _080762B8
_080761DE:
ldr r1, _08076228 @ =gLinkEntity
ldrb r2, [r1, #0x14]
movs r0, #0x80
orrs r0, r2
strb r0, [r5, #1]
adds r1, #0x3d
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #8
bgt _080762B8
bl sub_080789A8
adds r3, r0, #0
cmp r3, #1
beq _08076258
cmp r3, #1
blo _0807626E
cmp r3, #2
bne _080762C0
ldr r0, _0807622C @ =gUnk_03003BE0
ldr r2, [r0, #8]
ldrb r1, [r2, #0x16]
movs r0, #0xf
ands r0, r1
cmp r0, #0
bne _08076230
adds r0, r4, #0
adds r1, r2, #0
adds r2, r6, #0
bl sub_08076088
b _080762C0
.align 2, 0
_08076220: .4byte gUnk_03003F80
_08076224: .4byte 0x00001201
_08076228: .4byte gLinkEntity
_0807622C: .4byte gUnk_03003BE0
_08076230:
str r2, [r4, #0x18]
strb r3, [r2, #0xc]
movs r1, #5
strb r1, [r2, #0xd]
adds r0, r5, #0
adds r0, #0xa8
strb r1, [r0]
adds r0, r4, #0
adds r1, r2, #0
movs r2, #2
adds r3, r6, #0
bl sub_080762C4
ldr r0, _08076254 @ =gUnk_0200AF00
adds r0, #0x2e
movs r1, #8
strb r1, [r0]
b _08076264
.align 2, 0
_08076254: .4byte gUnk_0200AF00
_08076258:
adds r0, r4, #0
movs r1, #0
movs r2, #1
adds r3, r6, #0
bl sub_080762C4
_08076264:
movs r0, #0x81
lsls r0, r0, #1
bl sub_080A3268
b _080762C0
_0807626E:
movs r0, #5
strb r0, [r4, #4]
movs r0, #0xf
strb r0, [r4, #7]
movs r0, #6
strb r0, [r4, #0xf]
movs r3, #8
adds r1, r3, #0
asrs r1, r6
ldrb r2, [r5, #0xa]
adds r0, r1, #0
orrs r0, r2
strb r0, [r5, #0xa]
ldrb r0, [r5, #0xb]
orrs r1, r0
strb r1, [r5, #0xb]
ldr r0, [r5, #0x30]
ands r0, r3
cmp r0, #0
bne _080762A2
movs r1, #0xde
lsls r1, r1, #2
adds r0, r4, #0
bl sub_08077DF4
b _080762AA
_080762A2:
ldr r1, _080762B4 @ =0x00000948
adds r0, r4, #0
bl sub_08077DF4
_080762AA:
movs r0, #0x88
bl sub_080A3268
b _080762C0
.align 2, 0
_080762B4: .4byte 0x00000948
_080762B8:
adds r0, r4, #0
adds r1, r6, #0
bl sub_08077F50
_080762C0:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_080762C4
sub_080762C4: @ 0x080762C4
push {lr}
str r1, [r0, #0x18]
ldr r1, _080762D4 @ =gUnk_03003F80
strb r2, [r1, #5]
adds r1, r3, #0
bl sub_08077D38
pop {pc}
.align 2, 0
_080762D4: .4byte gUnk_03003F80
thumb_func_start sub_080762D8
sub_080762D8: @ 0x080762D8
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
adds r6, r1, #0
ldr r4, _08076334 @ =gUnk_03003F80
ldrb r0, [r4, #5]
movs r1, #0xcf
ands r1, r0
strb r1, [r4, #5]
adds r0, r5, #0
adds r1, r6, #0
bl sub_08077F64
cmp r0, #0
bne _080762F6
b _08076486
_080762F6:
ldr r0, _08076338 @ =gLinkEntity
adds r1, r0, #0
adds r1, #0x3d
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
adds r3, r0, #0
cmp r1, #8
bgt _0807636C
adds r0, #0x42
ldrb r0, [r0]
cmp r0, #0
bne _0807636C
ldr r2, [r5, #0x18]
cmp r2, #0
beq _08076340
ldrh r1, [r2, #0xc]
ldr r0, _0807633C @ =0x00000502
cmp r1, r0
bne _08076376
adds r0, r4, #0
adds r0, #0x90
ldrh r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _08076340
movs r0, #6
strb r0, [r2, #0xd]
b _08076376
.align 2, 0
_08076334: .4byte gUnk_03003F80
_08076338: .4byte gLinkEntity
_0807633C: .4byte 0x00000502
_08076340:
ldr r2, _08076364 @ =gUnk_03003F80
adds r1, r2, #0
adds r1, #0xa8
movs r0, #5
strb r0, [r1]
ldr r0, _08076368 @ =gUnk_0200AF00
adds r0, #0x2e
movs r1, #8
strb r1, [r0]
ldrb r0, [r2, #2]
cmp r0, #0
beq _0807635A
b _0807647E
_0807635A:
ldrb r0, [r2, #5]
cmp r0, #1
bne _08076394
b _08076380
.align 2, 0
_08076364: .4byte gUnk_03003F80
_08076368: .4byte gUnk_0200AF00
_0807636C:
ldr r1, [r5, #0x18]
cmp r1, #0
beq _08076376
movs r0, #6
strb r0, [r1, #0xd]
_08076376:
adds r0, r5, #0
adds r1, r6, #0
bl sub_08077F50
b _08076486
_08076380:
adds r0, r3, #0
movs r1, #6
adds r2, r5, #0
bl sub_0800875A
cmp r0, #0
beq _08076394
adds r0, r5, #0
movs r1, #0
b _080763EC
_08076394:
ldr r1, _080763F4 @ =gUnk_0811BE38
ldr r7, _080763F8 @ =gLinkEntity
ldrb r0, [r7, #0x14]
lsrs r0, r0, #1
lsls r3, r0, #1
adds r1, r3, r1
ldr r4, _080763FC @ =gUnk_03003F80
adds r2, r4, #0
adds r2, #0x90
ldrh r0, [r1]
ldrh r2, [r2]
ands r0, r2
cmp r0, #0
beq _08076400
adds r0, r5, #0
bl sub_08077E24
ldr r0, [r4, #0x30]
movs r1, #8
ands r0, r1
movs r1, #0x94
lsls r1, r1, #4
cmp r0, #0
bne _080763C8
movs r1, #0xd0
lsls r1, r1, #2
_080763C8:
ldrh r0, [r5, #0x10]
cmp r1, r0
beq _080763D4
adds r0, r5, #0
bl sub_08077DF4
_080763D4:
ldrb r0, [r4, #5]
movs r1, #0x10
orrs r1, r0
strb r1, [r4, #5]
adds r2, r4, #0
adds r2, #0xa8
movs r0, #0x1a
strb r0, [r2]
cmp r1, #1
beq _08076486
ldr r1, [r5, #0x18]
adds r0, r5, #0
_080763EC:
adds r2, r6, #0
bl sub_08076088
b _08076486
.align 2, 0
_080763F4: .4byte gUnk_0811BE38
_080763F8: .4byte gLinkEntity
_080763FC: .4byte gUnk_03003F80
_08076400:
ldr r0, _08076418 @ =gUnk_0811BE40
adds r0, r3, r0
ldrh r0, [r0]
ands r0, r2
cmp r0, #0
beq _08076460
ldrb r0, [r7, #0xf]
cmp r0, #5
bhi _0807641C
adds r0, #1
strb r0, [r7, #0xf]
b _08076486
.align 2, 0
_08076418: .4byte gUnk_0811BE40
_0807641C:
ldrb r0, [r5, #0xa]
adds r1, r4, #0
adds r1, #0x35
strb r0, [r1]
ldrb r0, [r4, #6]
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #6]
ldrb r1, [r4, #5]
movs r0, #0x20
orrs r0, r1
strb r0, [r4, #5]
adds r1, r4, #0
adds r1, #0xa8
movs r0, #0x19
strb r0, [r1]
ldr r0, [r4, #0x30]
movs r1, #8
ands r0, r1
ldr r1, _0807645C @ =0x0000093C
cmp r0, #0
bne _0807644C
movs r1, #0xcf
lsls r1, r1, #2
_0807644C:
ldrh r0, [r5, #0x10]
cmp r1, r0
bne _08076476
adds r0, r5, #0
bl sub_08077E24
b _08076486
.align 2, 0
_0807645C: .4byte 0x0000093C
_08076460:
strb r0, [r7, #0xf]
ldr r0, [r4, #0x30]
movs r1, #8
ands r0, r1
cmp r0, #0
bne _08076472
movs r1, #0xd0
lsls r1, r1, #2
b _08076476
_08076472:
movs r1, #0x94
lsls r1, r1, #4
_08076476:
adds r0, r5, #0
bl sub_08077DF4
b _08076486
_0807647E:
adds r0, r5, #0
adds r1, r6, #0
bl sub_08077F50
_08076486:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_08076488
sub_08076488: @ 0x08076488
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r5, r1, #0
ldrb r0, [r4, #7]
adds r6, r0, #0
cmp r6, #0
bne _08076504
adds r0, r4, #0
bl sub_08077F64
cmp r0, #0
beq _08076508
ldr r0, [r4, #0x18]
ldrb r1, [r0, #0x16]
movs r0, #0xf0
ands r0, r1
cmp r0, #0x10
bne _080764B8
ldr r0, _080764F8 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #1
ands r0, r1
cmp r0, #0
bne _08076510
_080764B8:
adds r0, r4, #0
bl sub_08077E24
ldrb r1, [r4, #0xe]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08076508
ldr r2, _080764FC @ =gLinkEntity
ldrb r1, [r2, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r2, #0x10]
ldr r2, _08076500 @ =gUnk_03003F80
movs r0, #4
strb r0, [r2, #5]
movs r1, #8
asrs r1, r5
mvns r1, r1
ldrb r3, [r2, #0xb]
adds r0, r1, #0
ands r0, r3
strb r0, [r2, #0xb]
ldrb r0, [r2, #0xa]
ands r1, r0
strb r1, [r2, #0xa]
ldrb r0, [r4, #4]
adds r0, #1
strb r0, [r4, #4]
strb r6, [r4, #0xf]
b _08076508
.align 2, 0
_080764F8: .4byte gUnk_030010A0
_080764FC: .4byte gLinkEntity
_08076500: .4byte gUnk_03003F80
_08076504:
subs r0, #1
strb r0, [r4, #7]
_08076508:
ldr r0, _08076514 @ =gUnk_03003F80
adds r0, #0xa8
movs r1, #4
strb r1, [r0]
_08076510:
pop {r4, r5, r6, pc}
.align 2, 0
_08076514: .4byte gUnk_03003F80
thumb_func_start sub_08076518
sub_08076518: @ 0x08076518
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r4, r0, #0
mov r8, r1
bl sub_08077F64
cmp r0, #0
beq _080765D4
ldr r5, _0807655C @ =gUnk_03003F80
adds r1, r5, #0
adds r1, #0xa8
movs r0, #4
strb r0, [r1]
ldrb r1, [r5, #2]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _080765D4
ldrb r0, [r5, #0x1f]
cmp r0, #0
bne _080765D4
ldr r6, _08076560 @ =gLinkEntity
adds r0, r6, #0
adds r0, #0x42
ldrb r7, [r0]
cmp r7, #0
beq _08076564
adds r0, r4, #0
mov r1, r8
bl sub_08077F50
b _080765D4
.align 2, 0
_0807655C: .4byte gUnk_03003F80
_08076560: .4byte gLinkEntity
_08076564:
adds r0, r5, #0
adds r0, #0x92
ldrh r1, [r0]
ldr r0, _080765B0 @ =0x00008018
ands r0, r1
cmp r0, #0
beq _080765D4
adds r0, r6, #0
bl sub_0806F948
movs r0, #5
strb r0, [r5, #5]
ldr r1, [r4, #0x18]
movs r0, #2
strb r0, [r1, #0xd]
ldr r2, [r4, #0x18]
ldrb r1, [r6, #0x14]
movs r0, #0xe
ands r0, r1
lsls r0, r0, #2
strb r0, [r2, #0x15]
str r7, [r4, #0x18]
ldrb r0, [r4, #4]
adds r0, #1
strb r0, [r4, #4]
movs r0, #0xf
strb r0, [r4, #0xf]
ldr r0, [r5, #0x30]
movs r1, #8
ands r0, r1
cmp r0, #0
beq _080765B4
movs r1, #0x93
lsls r1, r1, #4
adds r0, r4, #0
bl sub_08077DF4
b _080765BE
.align 2, 0
_080765B0: .4byte 0x00008018
_080765B4:
movs r1, #0xd1
lsls r1, r1, #2
adds r0, r4, #0
bl sub_08077DF4
_080765BE:
ldr r2, _080765DC @ =gUnk_03003F80
movs r1, #8
mov r0, r8
asrs r1, r0
ldrb r3, [r2, #0xa]
adds r0, r1, #0
orrs r0, r3
strb r0, [r2, #0xa]
ldrb r0, [r2, #0xb]
orrs r1, r0
strb r1, [r2, #0xb]
_080765D4:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080765DC: .4byte gUnk_03003F80
thumb_func_start sub_080765E0
sub_080765E0: @ 0x080765E0
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
bl sub_08077F64
cmp r0, #0
beq _08076608
ldrb r1, [r4, #0xe]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08076602
adds r0, r4, #0
adds r1, r5, #0
bl sub_08077F50
b _08076608
_08076602:
adds r0, r4, #0
bl sub_08077E24
_08076608:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0807660C
sub_0807660C: @ 0x0807660C
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
bl sub_08077E24
ldrb r0, [r4, #7]
subs r0, #1
strb r0, [r4, #7]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
beq _0807662C
ldr r0, _0807663C @ =gUnk_03003F80
ldrb r0, [r0, #1]
cmp r0, #0
bne _0807663A
_0807662C:
ldr r1, _0807663C @ =gUnk_03003F80
movs r0, #0
strb r0, [r1, #1]
adds r0, r4, #0
adds r1, r5, #0
bl sub_08077E78
_0807663A:
pop {r4, r5, pc}
.align 2, 0
_0807663C: .4byte gUnk_03003F80
thumb_func_start sub_08076640
sub_08076640: @ 0x08076640
push {r4, r5, lr}
adds r3, r0, #0
adds r4, r1, #0
ldrb r0, [r3, #4]
cmp r0, #0
beq _08076654
adds r0, r3, #0
bl sub_08076758
b _08076754
_08076654:
ldr r0, _080766BC @ =gUnk_03003F80
ldr r1, [r0, #0x2c]
adds r2, r0, #0
cmp r1, #0
bne _0807674C
ldrb r0, [r2, #1]
cmp r0, #0
beq _080766C4
ldrb r1, [r2, #4]
ldrb r0, [r2, #5]
orrs r0, r1
cmp r0, #0
bne _0807674C
ldrb r0, [r2, #0x12]
cmp r0, #0x12
beq _08076678
cmp r0, #1
bne _08076686
_08076678:
ldr r0, _080766C0 @ =gLinkEntity
ldr r0, [r0, #0x34]
cmp r0, #0
bne _08076686
ldrb r0, [r2, #0x14]
cmp r0, #0
beq _0807674C
_08076686:
ldrb r1, [r2, #2]
cmp r1, #0
beq _08076694
movs r0, #7
ands r0, r1
cmp r0, #3
bne _08076710
_08076694:
ldr r5, _080766C0 @ =gLinkEntity
ldr r0, [r5, #0x34]
cmp r0, #0
blt _0807674C
movs r1, #0
strb r1, [r2, #1]
ldrb r0, [r3, #4]
adds r0, #1
strb r0, [r3, #4]
strb r1, [r2, #0xb]
movs r0, #1
strb r0, [r2, #2]
movs r0, #0xff
strb r0, [r2, #0xe]
str r1, [r2, #0x2c]
movs r0, #0x80
lsls r0, r0, #0xa
str r0, [r5, #0x20]
b _0807673C
.align 2, 0
_080766BC: .4byte gUnk_03003F80
_080766C0: .4byte gLinkEntity
_080766C4:
ldrb r0, [r2, #0x1b]
ldrb r1, [r2, #0xa]
orrs r0, r1
ldrb r1, [r2, #4]
orrs r0, r1
ldrb r1, [r2, #5]
orrs r0, r1
ldrb r1, [r2, #0x1c]
orrs r0, r1
adds r1, r2, #0
adds r1, #0x3d
ldrb r1, [r1]
orrs r0, r1
cmp r0, #0
bne _0807674C
ldrb r1, [r2, #0x12]
adds r0, r1, #0
subs r0, #0x12
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bls _080766F4
cmp r1, #1
bne _08076702
_080766F4:
ldr r0, _0807671C @ =gLinkEntity
ldr r0, [r0, #0x34]
cmp r0, #0
bne _08076702
ldrb r0, [r2, #0x14]
cmp r0, #0
beq _0807674C
_08076702:
ldrb r1, [r2, #2]
cmp r1, #0
beq _08076720
movs r0, #7
ands r0, r1
cmp r0, #3
beq _08076720
_08076710:
adds r0, r3, #0
adds r1, r4, #0
bl sub_08076758
b _08076754
.align 2, 0
_0807671C: .4byte gLinkEntity
_08076720:
ldr r1, _08076748 @ =gLinkEntity
ldr r0, [r1, #0x34]
cmp r0, #0
blt _0807674C
movs r0, #0x80
lsls r0, r0, #0xa
str r0, [r1, #0x20]
movs r1, #0
movs r0, #1
strb r0, [r2, #2]
str r1, [r2, #0x2c]
ldrb r0, [r3, #4]
adds r0, #1
strb r0, [r3, #4]
_0807673C:
bl sub_08077F84
movs r0, #0x78
bl sub_080A3268
b _08076754
.align 2, 0
_08076748: .4byte gLinkEntity
_0807674C:
adds r0, r3, #0
adds r1, r4, #0
bl sub_08077E78
_08076754:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08076758
sub_08076758: @ 0x08076758
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, _080767C0 @ =gUnk_03003F80
movs r0, #0
strb r0, [r5, #0xe]
ldrb r2, [r5, #2]
movs r0, #0x28
ands r0, r2
cmp r0, #0
bne _080767F8
cmp r2, #0
beq _080767F8
movs r0, #7
ands r0, r2
cmp r0, #3
beq _080767F8
adds r0, r4, #0
bl sub_08077EFC
cmp r0, #0
beq _080767D8
ldrb r0, [r4, #4]
cmp r0, #1
bhi _080767C8
ldr r2, _080767C4 @ =gLinkEntity
ldr r0, [r2, #0x20]
cmp r0, #0
bgt _080767FE
ldrb r3, [r5, #2]
movs r0, #0x10
ands r0, r3
cmp r0, #0
bne _080767FE
movs r0, #2
strb r0, [r4, #4]
adds r1, r2, #0
adds r1, #0x7a
strh r0, [r1]
movs r0, #0x80
lsls r0, r0, #0xa
str r0, [r2, #0x20]
movs r0, #0x10
orrs r0, r3
strb r0, [r5, #2]
movs r0, #0xa2
lsls r0, r0, #2
strh r0, [r5, #8]
movs r0, #0xb9
lsls r0, r0, #1
bl sub_080A3268
b _080767FE
.align 2, 0
_080767C0: .4byte gUnk_03003F80
_080767C4: .4byte gLinkEntity
_080767C8:
ldr r1, _080767D4 @ =gLinkEntity
adds r1, #0x7a
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _080767FE
.align 2, 0
_080767D4: .4byte gLinkEntity
_080767D8:
ldrb r0, [r4, #4]
cmp r0, #1
bls _080767FE
ldr r1, _080767F4 @ =gLinkEntity
adds r1, #0x7a
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
ldrb r1, [r5, #2]
movs r0, #0xef
ands r0, r1
strb r0, [r5, #2]
b _080767FE
.align 2, 0
_080767F4: .4byte gLinkEntity
_080767F8:
adds r0, r4, #0
bl sub_08077E78
_080767FE:
pop {r4, r5, pc}
thumb_func_start sub_08076800
sub_08076800: @ 0x08076800
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
adds r6, r0, #0
mov sb, r1
ldr r4, _0807682C @ =gLinkEntity
adds r0, r4, #0
adds r0, #0x7a
ldrh r0, [r0]
cmp r0, #0
beq _08076834
ldr r1, _08076830 @ =gUnk_03003F80
movs r0, #0
strb r0, [r1, #0x1e]
strb r0, [r1, #0xe]
adds r0, r6, #0
mov r1, sb
bl sub_08077E78
b _080768EC
.align 2, 0
_0807682C: .4byte gLinkEntity
_08076830: .4byte gUnk_03003F80
_08076834:
ldrb r0, [r6, #7]
subs r0, #1
strb r0, [r6, #7]
movs r1, #7
mov r8, r1
ands r0, r1
cmp r0, #0
bne _0807684A
movs r0, #0x7d
bl sub_080A3268
_0807684A:
ldr r2, _08076880 @ =gUnk_03003F80
ldr r0, [r2, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _080768DA
ldrb r1, [r6, #7]
mov r0, r8
ands r0, r1
cmp r0, #0
bne _080768DA
ldrb r0, [r2, #0x12]
cmp r0, #0x11
bne _08076884
adds r0, r4, #0
adds r0, #0x63
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _080768DA
adds r0, r4, #0
movs r1, #0x52
movs r2, #0
bl CreateFX
b _080768DA
.align 2, 0
_08076880: .4byte gUnk_03003F80
_08076884:
adds r0, r4, #0
movs r1, #0x11
movs r2, #0x40
bl CreateFX
adds r5, r0, #0
cmp r5, #0
beq _080768DA
ldrh r0, [r5, #0x32]
adds r0, #2
strh r0, [r5, #0x32]
ldrb r0, [r6, #4]
cmp r0, #2
beq _080768DA
bl sub_08000E50
adds r4, r0, #0
movs r0, #3
ands r4, r0
bl sub_08000E50
movs r7, #1
ands r0, r7
cmp r0, #0
beq _080768B8
rsbs r4, r4, #0
_080768B8:
ldrh r0, [r5, #0x32]
adds r0, r0, r4
strh r0, [r5, #0x32]
bl sub_08000E50
adds r4, r0, #0
mov r0, r8
ands r4, r0
bl sub_08000E50
ands r0, r7
cmp r0, #0
beq _080768D4
rsbs r4, r4, #0
_080768D4:
ldrh r0, [r5, #0x2e]
adds r0, r0, r4
strh r0, [r5, #0x2e]
_080768DA:
ldr r0, _080768F4 @ =gUnk_0811BDCC
ldrb r1, [r6, #4]
lsls r1, r1, #2
adds r1, r1, r0
ldr r2, [r1]
adds r0, r6, #0
mov r1, sb
bl _call_via_r2
_080768EC:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080768F4: .4byte gUnk_0811BDCC
thumb_func_start sub_080768F8
sub_080768F8: @ 0x080768F8
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
ldr r3, _08076934 @ =gUnk_03003F80
ldrb r1, [r3, #0x1c]
ldrb r0, [r3, #4]
orrs r1, r0
ldrb r0, [r3, #5]
orrs r1, r0
ldrb r0, [r3, #2]
orrs r1, r0
ldr r2, [r3, #0x30]
movs r0, #0x80
lsls r0, r0, #5
ands r0, r2
orrs r1, r0
cmp r1, #0
bne _08076954
movs r0, #1
strb r0, [r3, #0x1e]
adds r0, r3, #0
adds r0, #0x21
strb r1, [r0]
movs r0, #0x80
ands r2, r0
cmp r2, #0
bne _08076938
movs r0, #0x10
strb r0, [r4, #7]
b _0807693C
.align 2, 0
_08076934: .4byte gUnk_03003F80
_08076938:
ldr r0, _08076950 @ =0x00000C14
strh r0, [r3, #8]
_0807693C:
adds r0, r4, #0
adds r1, r5, #0
bl sub_08077D38
adds r0, r4, #0
adds r1, r5, #0
bl sub_08076964
b _08076962
.align 2, 0
_08076950: .4byte 0x00000C14
_08076954:
movs r0, #0
strb r0, [r3, #0x1e]
strb r0, [r3, #0xe]
adds r0, r4, #0
adds r1, r5, #0
bl sub_08077E78
_08076962:
pop {r4, r5, pc}
thumb_func_start sub_08076964
sub_08076964: @ 0x08076964
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r4, r0, #0
adds r6, r1, #0
bl sub_08077EFC
cmp r0, #0
bne _08076978
b _08076A70
_08076978:
ldr r0, _080769C4 @ =gLinkEntity
ldr r7, [r0, #0x34]
cmp r7, #0
bne _08076A70
ldr r5, _080769C8 @ =gUnk_03003F80
ldrb r0, [r5, #0x1e]
cmp r0, #0
beq _08076A70
adds r0, r4, #0
bl sub_08077E24
ldr r0, [r5, #0x30]
movs r1, #0x80
mov r8, r1
ands r0, r1
cmp r0, #0
bne _080769A0
adds r0, r4, #0
bl sub_08077E24
_080769A0:
ldrb r0, [r5, #0x1e]
adds r0, #1
strb r0, [r5, #0x1e]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x1e
bne _08076A7E
ldr r0, [r5, #0x30]
movs r1, #2
ands r0, r1
cmp r0, #0
beq _080769CC
strb r7, [r5, #0x1e]
adds r0, r4, #0
adds r1, r6, #0
bl sub_08077E78
b _08076A7E
.align 2, 0
_080769C4: .4byte gLinkEntity
_080769C8: .4byte gUnk_03003F80
_080769CC:
movs r0, #0x40
strb r0, [r5, #0x1e]
movs r1, #8
asrs r1, r6
ldrb r0, [r5, #0xa]
bics r0, r1
strb r0, [r5, #0xa]
ldrb r0, [r4, #4]
adds r0, #1
strb r0, [r4, #4]
bl sub_0807A158
cmp r0, #0
beq _08076A46
ldr r0, [r5, #0x30]
mov r1, r8
ands r0, r1
cmp r0, #0
bne _08076A60
adds r0, r5, #0
adds r0, #0xac
ldrh r1, [r0]
movs r0, #4
ands r0, r1
cmp r0, #0
beq _08076A46
adds r0, r5, #0
adds r0, #0xab
movs r1, #3
strb r1, [r0]
movs r1, #0xa6
lsls r1, r1, #2
adds r0, r4, #0
bl sub_08077DF4
adds r0, r4, #0
movs r1, #0xc
bl sub_08077C3C
adds r5, r0, #0
cmp r5, #0
beq _08076A70
ldr r6, _08076A34 @ =gUnk_02002A40
adds r4, r6, #0
adds r4, #0xb4
ldrb r0, [r4]
bl sub_0805449C
cmp r0, #0
beq _08076A38
ldrb r1, [r4]
b _08076A3E
.align 2, 0
_08076A34: .4byte gUnk_02002A40
_08076A38:
adds r0, r6, #0
adds r0, #0xb5
ldrb r1, [r0]
_08076A3E:
adds r0, r5, #0
adds r0, #0x68
strb r1, [r0]
b _08076A7E
_08076A46:
ldr r0, _08076A5C @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _08076A60
adds r1, #0x84
adds r0, r4, #0
bl sub_08077DF4
b _08076A7E
.align 2, 0
_08076A5C: .4byte gUnk_03003F80
_08076A60:
ldr r1, _08076A6C @ =gUnk_03003F80
movs r0, #0xc1
lsls r0, r0, #4
strh r0, [r1, #8]
b _08076A7E
.align 2, 0
_08076A6C: .4byte gUnk_03003F80
_08076A70:
ldr r1, _08076A84 @ =gUnk_03003F80
movs r0, #0
strb r0, [r1, #0x1e]
adds r0, r4, #0
adds r1, r6, #0
bl sub_08077E78
_08076A7E:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08076A84: .4byte gUnk_03003F80
thumb_func_start sub_08076A88
sub_08076A88: @ 0x08076A88
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
adds r7, r1, #0
bl sub_08077EFC
cmp r0, #0
beq _08076B64
ldr r1, _08076AB4 @ =gUnk_03003F80
ldrb r0, [r1, #0x1e]
adds r3, r1, #0
cmp r0, #0
beq _08076B64
ldr r0, [r3, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _08076ABC
ldr r1, _08076AB8 @ =gLinkEntity
movs r0, #0xc0
lsls r0, r0, #2
b _08076AC2
.align 2, 0
_08076AB4: .4byte gUnk_03003F80
_08076AB8: .4byte gLinkEntity
_08076ABC:
ldr r1, _08076B00 @ =gLinkEntity
movs r0, #0xa0
lsls r0, r0, #2
_08076AC2:
strh r0, [r1, #0x24]
adds r5, r1, #0
ldr r1, _08076B04 @ =gUnk_0800275C
ldrb r2, [r5, #0x14]
movs r6, #0xe
adds r0, r6, #0
ands r0, r2
lsls r0, r0, #3
adds r0, r0, r1
ldrh r1, [r0]
ldrh r0, [r5, #0x2a]
ands r0, r1
cmp r1, r0
bne _08076B0E
ldrb r0, [r4, #8]
cmp r0, #0
beq _08076B08
movs r2, #0
movs r0, #6
strb r0, [r5, #0xc]
strb r2, [r5, #0xd]
ldrb r1, [r5, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r5, #0x10]
adds r0, r3, #0
adds r0, #0x38
strb r2, [r0]
movs r0, #0xff
strb r0, [r3, #0xd]
b _08076B72
.align 2, 0
_08076B00: .4byte gLinkEntity
_08076B04: .4byte gUnk_0800275C
_08076B08:
movs r0, #1
strb r0, [r4, #8]
b _08076B72
_08076B0E:
ldr r1, _08076B60 @ =gUnk_0811BE38
movs r0, #0xfe
ands r0, r2
adds r0, r0, r1
adds r1, r3, #0
adds r1, #0x90
ldrh r2, [r0]
ldrh r0, [r1]
ands r0, r2
cmp r0, #0
bne _08076B64
ldrb r0, [r4, #0xa]
adds r1, r6, #0
ands r1, r0
lsls r0, r1, #2
strb r0, [r4, #0xb]
ldrb r2, [r3, #0xd]
cmp r2, #0xff
beq _08076B52
cmp r2, r0
beq _08076B52
adds r0, r2, #0
ldrb r1, [r4, #0xb]
subs r0, r0, r1
movs r2, #0x1f
ands r0, r2
cmp r0, #0xf
bgt _08076B4A
adds r0, r1, #2
strb r0, [r4, #0xb]
_08076B4A:
ldrb r0, [r4, #0xb]
subs r0, #1
ands r0, r2
strb r0, [r4, #0xb]
_08076B52:
ldrb r0, [r4, #0xb]
strb r0, [r3, #0xd]
adds r0, r4, #0
bl sub_08077E24
b _08076B72
.align 2, 0
_08076B60: .4byte gUnk_0811BE38
_08076B64:
ldr r1, _08076B74 @ =gUnk_03003F80
movs r0, #0
strb r0, [r1, #0x1e]
adds r0, r4, #0
adds r1, r7, #0
bl sub_08077E78
_08076B72:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08076B74: .4byte gUnk_03003F80
thumb_func_start sub_08076B78
sub_08076B78: @ 0x08076B78
push {lr}
ldr r3, _08076B94 @ =gUnk_0811BDD8
ldrb r2, [r0, #4]
lsls r2, r2, #2
adds r2, r2, r3
ldr r2, [r2]
bl _call_via_r2
ldr r1, _08076B98 @ =gLinkEntity
adds r1, #0x7a
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
pop {pc}
.align 2, 0
_08076B94: .4byte gUnk_0811BDD8
_08076B98: .4byte gLinkEntity
thumb_func_start sub_08076B9C
sub_08076B9C: @ 0x08076B9C
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
ldr r3, _08076BB4 @ =gUnk_03003F80
ldrb r0, [r3, #0xc]
cmp r0, #0x18
bne _08076BB8
adds r0, r4, #0
bl sub_08077E78
b _08076C1C
.align 2, 0
_08076BB4: .4byte gUnk_03003F80
_08076BB8:
ldrb r1, [r4, #9]
movs r0, #0xf
orrs r0, r1
strb r0, [r4, #9]
ldr r1, _08076C20 @ =gLinkEntity
movs r0, #4
strb r0, [r1, #0x14]
ldrb r2, [r1, #0x18]
subs r0, #0x45
ands r0, r2
strb r0, [r1, #0x18]
ldrb r2, [r1, #0x10]
movs r0, #0x7f
ands r0, r2
strb r0, [r1, #0x10]
adds r1, #0x7a
movs r0, #2
strh r0, [r1]
ldr r0, [r3, #0x30]
movs r1, #0x80
lsls r1, r1, #0x15
orrs r0, r1
str r0, [r3, #0x30]
adds r1, r3, #0
adds r1, #0x27
movs r0, #0xff
strb r0, [r1]
ldr r1, _08076C24 @ =gUnk_02034490
movs r0, #1
strb r0, [r1]
movs r1, #8
asrs r1, r5
ldrb r2, [r3, #0xa]
adds r0, r1, #0
orrs r0, r2
strb r0, [r3, #0xa]
ldrb r0, [r3, #0xb]
orrs r1, r0
strb r1, [r3, #0xb]
bl sub_08078F60
adds r0, r4, #0
adds r1, r5, #0
bl sub_08077D38
ldr r0, _08076C28 @ =0x00000216
bl sub_080A3268
bl sub_0805E544
_08076C1C:
pop {r4, r5, pc}
.align 2, 0
_08076C20: .4byte gLinkEntity
_08076C24: .4byte gUnk_02034490
_08076C28: .4byte 0x00000216
thumb_func_start sub_08076C2C
sub_08076C2C: @ 0x08076C2C
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r6, r1, #0
bl sub_08077E24
ldrb r1, [r5, #0xe]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08076C6E
ldr r0, _08076C70 @ =gLinkEntity
ldrb r2, [r0, #0x10]
movs r4, #0
movs r1, #0x80
orrs r1, r2
strb r1, [r0, #0x10]
ldr r2, _08076C74 @ =gUnk_03003F80
ldr r1, [r2, #0x30]
ldr r3, _08076C78 @ =0xEFFFFFFF
ands r1, r3
str r1, [r2, #0x30]
adds r2, #0x27
strb r4, [r2]
ldr r1, _08076C7C @ =gUnk_02034490
strb r4, [r1]
bl sub_0809D700
bl sub_0805E564
adds r0, r5, #0
adds r1, r6, #0
bl sub_08077E78
_08076C6E:
pop {r4, r5, r6, pc}
.align 2, 0
_08076C70: .4byte gLinkEntity
_08076C74: .4byte gUnk_03003F80
_08076C78: .4byte 0xEFFFFFFF
_08076C7C: .4byte gUnk_02034490
thumb_func_start sub_08076C80
sub_08076C80: @ 0x08076C80
push {lr}
ldr r3, _08076C94 @ =gUnk_0811BDE0
ldrb r2, [r0, #4]
lsls r2, r2, #2
adds r2, r2, r3
ldr r2, [r2]
bl _call_via_r2
pop {pc}
.align 2, 0
_08076C94: .4byte gUnk_0811BDE0
thumb_func_start sub_08076C98
sub_08076C98: @ 0x08076C98
push {r4, lr}
adds r4, r0, #0
ldrb r2, [r4, #9]
movs r0, #0xf
orrs r0, r2
strb r0, [r4, #9]
adds r0, r4, #0
bl sub_08077D38
ldr r0, _08076CB8 @ =gLinkEntity
bl sub_0806F948
adds r0, r4, #0
bl sub_08077BB8
pop {r4, pc}
.align 2, 0
_08076CB8: .4byte gLinkEntity
thumb_func_start sub_08076CBC
sub_08076CBC: @ 0x08076CBC
push {r4, lr}
adds r4, r0, #0
ldrb r2, [r4, #0xe]
movs r0, #0x80
ands r0, r2
cmp r0, #0
beq _08076CD2
adds r0, r4, #0
bl sub_08077E78
b _08076CE8
_08076CD2:
movs r0, #0x40
ands r0, r2
cmp r0, #0
beq _08076CE2
adds r0, r4, #0
movs r1, #0x12
bl sub_08077C3C
_08076CE2:
adds r0, r4, #0
bl sub_08077E24
_08076CE8:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08076CEC
sub_08076CEC: @ 0x08076CEC
push {lr}
ldr r3, _08076D00 @ =gUnk_0811BDE8
ldrb r2, [r0, #4]
lsls r2, r2, #2
adds r2, r2, r3
ldr r2, [r2]
bl _call_via_r2
pop {pc}
.align 2, 0
_08076D00: .4byte gUnk_0811BDE8
thumb_func_start sub_08076D04
sub_08076D04: @ 0x08076D04
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
ldr r1, _08076D2C @ =gUnk_03003F80
movs r0, #0x81
strb r0, [r1, #3]
movs r0, #2
strb r0, [r4, #9]
ldr r0, _08076D30 @ =gLinkEntity
bl sub_0806F948
adds r0, r4, #0
adds r1, r5, #0
bl sub_08077D38
adds r0, r4, #0
bl sub_08077BB8
pop {r4, r5, pc}
.align 2, 0
_08076D2C: .4byte gUnk_03003F80
_08076D30: .4byte gLinkEntity
thumb_func_start sub_08076D34
sub_08076D34: @ 0x08076D34
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r6, r1, #0
bl sub_08077EFC
adds r1, r0, #0
cmp r1, #0
beq _08076D80
ldr r5, _08076D78 @ =gUnk_03003F80
ldrb r0, [r5, #3]
movs r1, #1
orrs r1, r0
strb r1, [r5, #3]
adds r0, r4, #0
bl sub_08077E24
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _08076D8C
ldrb r0, [r4, #4]
adds r0, #1
strb r0, [r4, #4]
movs r0, #0
strb r0, [r4, #0xf]
movs r1, #8
asrs r1, r6
ldrb r0, [r5, #0xa]
bics r0, r1
strb r0, [r5, #0xa]
ldr r0, _08076D7C @ =0x0000015D
bl sub_080A3268
b _08076D8C
.align 2, 0
_08076D78: .4byte gUnk_03003F80
_08076D7C: .4byte 0x0000015D
_08076D80:
ldr r0, _08076D90 @ =gUnk_03003F80
strb r1, [r0, #3]
adds r0, r4, #0
adds r1, r6, #0
bl sub_08077E78
_08076D8C:
pop {r4, r5, r6, pc}
.align 2, 0
_08076D90: .4byte gUnk_03003F80
thumb_func_start sub_08076D94
sub_08076D94: @ 0x08076D94
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
bl sub_08077EFC
adds r1, r0, #0
cmp r1, #0
beq _08076DBC
ldr r2, _08076DB8 @ =gUnk_03003F80
ldrb r1, [r2, #3]
movs r0, #1
orrs r0, r1
strb r0, [r2, #3]
adds r0, r4, #0
bl sub_08077E24
b _08076DC8
.align 2, 0
_08076DB8: .4byte gUnk_03003F80
_08076DBC:
ldr r0, _08076DCC @ =gUnk_03003F80
strb r1, [r0, #3]
adds r0, r4, #0
adds r1, r5, #0
bl sub_08077E78
_08076DC8:
pop {r4, r5, pc}
.align 2, 0
_08076DCC: .4byte gUnk_03003F80
thumb_func_start sub_08076DD0
sub_08076DD0: @ 0x08076DD0
push {lr}
ldr r2, _08076DEC @ =gUnk_03003F80
adds r2, #0xa8
movs r3, #3
strb r3, [r2]
ldr r3, _08076DF0 @ =gUnk_0811BDF4
ldrb r2, [r0, #4]
lsls r2, r2, #2
adds r2, r2, r3
ldr r2, [r2]
bl _call_via_r2
pop {pc}
.align 2, 0
_08076DEC: .4byte gUnk_03003F80
_08076DF0: .4byte gUnk_0811BDF4
thumb_func_start sub_08076DF4
sub_08076DF4: @ 0x08076DF4
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r4, r0, #0
adds r7, r1, #0
ldr r0, _08076E48 @ =gLinkEntity
mov r8, r0
bl sub_0807A894
cmp r0, #0x29
beq _08076E50
ldr r6, _08076E4C @ =gUnk_03003F80
ldrb r0, [r6, #0x12]
cmp r0, #0x12
beq _08076E50
cmp r0, #0x13
beq _08076E50
ldrb r5, [r6, #2]
cmp r5, #0
bne _08076E50
adds r0, r4, #0
adds r1, r7, #0
bl sub_08077D38
strb r5, [r4, #7]
mov r1, r8
ldrb r0, [r1, #0x14]
strb r0, [r4, #0xa]
ldrb r1, [r4, #9]
movs r0, #0x80
orrs r0, r1
adds r0, #1
strb r0, [r4, #9]
movs r0, #1
strb r0, [r6, #0x1d]
mov r1, r8
str r5, [r1, #0x74]
strb r0, [r6, #0x1c]
adds r0, r4, #0
bl sub_08077BB8
b _08076E58
.align 2, 0
_08076E48: .4byte gLinkEntity
_08076E4C: .4byte gUnk_03003F80
_08076E50:
adds r0, r4, #0
adds r1, r7, #0
bl sub_08077E78
_08076E58:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_08076E60
sub_08076E60: @ 0x08076E60
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r6, r1, #0
ldr r5, _08076EB4 @ =gUnk_03003F80
ldrb r1, [r5, #0x1c]
movs r0, #0xf
ands r0, r1
cmp r0, #0
bne _08076E7A
adds r0, r4, #0
adds r1, r6, #0
bl sub_08077E78
_08076E7A:
ldrb r1, [r4, #0xe]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08076EC0
movs r0, #2
strb r0, [r4, #4]
ldr r1, _08076EB8 @ =0x00000504
adds r0, r4, #0
bl sub_08077DF4
movs r1, #8
asrs r1, r6
ldrb r0, [r5, #0xa]
bics r0, r1
strb r0, [r5, #0xa]
movs r0, #0x10
movs r1, #0
movs r2, #0
movs r3, #0
bl sub_08077CB8
adds r1, r0, #0
cmp r1, #0
beq _08076EC6
ldr r0, _08076EBC @ =gLinkEntity
str r0, [r1, #0x50]
b _08076EC6
.align 2, 0
_08076EB4: .4byte gUnk_03003F80
_08076EB8: .4byte 0x00000504
_08076EBC: .4byte gLinkEntity
_08076EC0:
adds r0, r4, #0
bl sub_08077E24
_08076EC6:
pop {r4, r5, r6, pc}
thumb_func_start sub_08076EC8
sub_08076EC8: @ 0x08076EC8
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r6, r1, #0
ldr r5, _08076EE4 @ =gUnk_03003F80
ldrb r1, [r5, #0x1c]
movs r0, #0xf
ands r0, r1
cmp r0, #0
bne _08076EE8
adds r0, r4, #0
adds r1, r6, #0
bl sub_08077E78
b _08076F60
.align 2, 0
_08076EE4: .4byte gUnk_03003F80
_08076EE8:
adds r0, r4, #0
bl sub_08077EFC
cmp r0, #0
beq _08076F50
ldrb r0, [r4, #7]
cmp r0, #0xef
bls _08076EFC
movs r0, #3
b _08076F0E
_08076EFC:
adds r0, #1
strb r0, [r4, #7]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x77
bls _08076F0C
movs r0, #2
b _08076F0E
_08076F0C:
movs r0, #1
_08076F0E:
strb r0, [r5, #0x1d]
ldr r0, _08076F1C @ =gLinkEntity
ldrb r0, [r0, #0xd]
cmp r0, #0x1b
bne _08076F24
ldr r1, _08076F20 @ =0x00000524
b _08076F36
.align 2, 0
_08076F1C: .4byte gLinkEntity
_08076F20: .4byte 0x00000524
_08076F24:
ldr r0, _08076F44 @ =gUnk_03003F80
ldrb r1, [r0, #0xd]
movs r0, #0x80
ands r0, r1
movs r1, #0xa3
lsls r1, r1, #3
cmp r0, #0
beq _08076F36
subs r1, #0x14
_08076F36:
ldrh r0, [r4, #0x10]
cmp r1, r0
beq _08076F48
adds r0, r4, #0
bl sub_08077DF4
b _08076F60
.align 2, 0
_08076F44: .4byte gUnk_03003F80
_08076F48:
adds r0, r4, #0
bl sub_08077E24
b _08076F60
_08076F50:
ldrb r0, [r4, #4]
adds r0, #1
strb r0, [r4, #4]
movs r0, #8
asrs r0, r6
ldrb r1, [r5, #0xa]
orrs r0, r1
strb r0, [r5, #0xa]
_08076F60:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_08076F64
sub_08076F64: @ 0x08076F64
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r6, r1, #0
ldr r1, _08076F84 @ =gUnk_03003F80
ldrb r0, [r1, #0x1c]
movs r2, #0xf
ands r2, r0
adds r3, r1, #0
cmp r2, #7
bls _08076F7A
b _080770EC
_08076F7A:
lsls r0, r2, #2
ldr r1, _08076F88 @ =_08076F8C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08076F84: .4byte gUnk_03003F80
_08076F88: .4byte _08076F8C
_08076F8C: @ jump table
.4byte _08077100 @ case 0
.4byte _080770EC @ case 1
.4byte _080770EC @ case 2
.4byte _0807704C @ case 3
.4byte _08077052 @ case 4
.4byte _08076FAC @ case 5
.4byte _080770B8 @ case 6
.4byte _080770D0 @ case 7
_08076FAC:
ldrb r1, [r4, #0xe]
movs r5, #0x80
adds r0, r5, #0
ands r0, r1
cmp r0, #0
beq _0807700E
ldrb r0, [r4, #8]
cmp r0, #0
beq _08077004
movs r0, #0
strb r0, [r4, #8]
strb r0, [r4, #7]
movs r1, #1
strb r1, [r3, #0x1d]
ldr r5, _08076FFC @ =gLinkEntity
str r0, [r5, #0x74]
strb r1, [r3, #0x1c]
movs r1, #8
asrs r1, r6
ldrb r0, [r3, #0xa]
bics r0, r1
strb r0, [r3, #0xa]
movs r0, #2
strb r0, [r4, #4]
ldr r1, _08077000 @ =0x00000504
adds r0, r4, #0
bl sub_08077DF4
movs r0, #0x10
movs r1, #0
movs r2, #0
movs r3, #0
bl sub_08077CB8
cmp r0, #0
bne _08076FF6
b _08077110
_08076FF6:
str r5, [r0, #0x50]
b _08077110
.align 2, 0
_08076FFC: .4byte gLinkEntity
_08077000: .4byte 0x00000504
_08077004:
movs r0, #6
strb r0, [r3, #0x1c]
movs r1, #0xa2
lsls r1, r1, #3
b _080770F2
_0807700E:
adds r0, r4, #0
bl sub_08077EFC
cmp r0, #0
beq _0807701C
movs r0, #1
strb r0, [r4, #8]
_0807701C:
adds r0, r4, #0
bl sub_08077E24
ldr r0, _08077044 @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #2
ands r0, r1
cmp r0, #0
bne _08077110
ldr r0, _08077048 @ =gLinkEntity
ldrb r1, [r0, #0x14]
lsls r1, r1, #2
movs r2, #0x10
eors r1, r2
strb r1, [r0, #0x15]
strh r5, [r0, #0x24]
bl sub_08079E08
b _08077110
.align 2, 0
_08077044: .4byte gUnk_03003F80
_08077048: .4byte gLinkEntity
_0807704C:
ldr r1, _080770B0 @ =gUnk_03003F80
movs r0, #4
strb r0, [r1, #0x1c]
_08077052:
adds r0, r4, #0
bl sub_08077EFC
cmp r0, #0
beq _08077060
movs r0, #1
strb r0, [r4, #8]
_08077060:
adds r0, r4, #0
bl sub_08077E24
ldrb r1, [r4, #0xe]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0807708C
ldr r1, _080770B0 @ =gUnk_03003F80
movs r2, #0
movs r0, #5
strb r0, [r1, #0x1c]
ldr r0, _080770B4 @ =gLinkEntity
str r2, [r0, #0x70]
ldrb r0, [r1, #0x1d]
cmp r0, #0
beq _0807708C
movs r0, #0x11
movs r1, #0
movs r3, #0
bl sub_08077CB8
_0807708C:
ldr r0, _080770B0 @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #2
ands r0, r1
cmp r0, #0
bne _08077110
ldr r2, _080770B4 @ =gLinkEntity
ldrb r0, [r2, #0x14]
lsls r0, r0, #2
movs r1, #0x10
eors r0, r1
strb r0, [r2, #0x15]
movs r0, #0x80
strh r0, [r2, #0x24]
bl sub_08079E08
b _08077110
.align 2, 0
_080770B0: .4byte gUnk_03003F80
_080770B4: .4byte gLinkEntity
_080770B8:
adds r0, r4, #0
bl sub_08077E24
ldrb r1, [r4, #0xe]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08077110
ldr r3, _080770CC @ =gUnk_03003F80
b _08077100
.align 2, 0
_080770CC: .4byte gUnk_03003F80
_080770D0:
ldr r1, _080770E4 @ =0x00000514
adds r0, r4, #0
bl sub_08077DF4
ldr r1, _080770E8 @ =gUnk_03003F80
movs r2, #0
movs r0, #3
strb r0, [r1, #0x1c]
strb r2, [r1, #0x1d]
b _08077110
.align 2, 0
_080770E4: .4byte 0x00000514
_080770E8: .4byte gUnk_03003F80
_080770EC:
movs r0, #3
strb r0, [r3, #0x1c]
ldr r1, _080770FC @ =0x00000514
_080770F2:
adds r0, r4, #0
bl sub_08077DF4
b _08077110
.align 2, 0
_080770FC: .4byte 0x00000514
_08077100:
movs r1, #0
strb r1, [r3, #0x1c]
ldr r0, _08077114 @ =gLinkEntity
str r1, [r0, #0x70]
adds r0, r4, #0
adds r1, r6, #0
bl sub_08077E78
_08077110:
pop {r4, r5, r6, pc}
.align 2, 0
_08077114: .4byte gLinkEntity
thumb_func_start sub_08077118
sub_08077118: @ 0x08077118
push {lr}
ldr r3, _0807712C @ =gUnk_0811BE04
ldrb r2, [r0, #4]
lsls r2, r2, #2
adds r2, r2, r3
ldr r2, [r2]
bl _call_via_r2
pop {pc}
.align 2, 0
_0807712C: .4byte gUnk_0811BE04
thumb_func_start sub_08077130
sub_08077130: @ 0x08077130
push {r4, r5, r6, lr}
adds r4, r0, #0
ldr r5, _0807718C @ =gUnk_03003F80
ldrb r0, [r5, #2]
cmp r0, #0
bne _080771B6
adds r0, r4, #0
bl sub_08077D38
adds r0, r5, #0
adds r0, #0x3d
movs r6, #1
strb r6, [r0]
ldrb r1, [r4, #9]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #9]
bl sub_080774A0
adds r5, r0, #0
cmp r5, #0
beq _080771A8
ldrb r0, [r4, #7]
cmp r0, #0
bne _080771C4
ldr r1, _08077190 @ =0x0000050C
adds r0, r4, #0
bl sub_08077DF4
movs r0, #2
strb r0, [r4, #4]
cmp r5, #0x56
bne _080771C4
ldr r2, _08077194 @ =gLinkEntity
ldrb r1, [r2, #0x14]
ands r0, r1
cmp r0, #0
beq _08077198
ldrh r0, [r2, #0x32]
movs r1, #0x10
rsbs r1, r1, #0
ands r1, r0
movs r0, #6
orrs r1, r0
strh r1, [r2, #0x32]
b _080771C4
.align 2, 0
_0807718C: .4byte gUnk_03003F80
_08077190: .4byte 0x0000050C
_08077194: .4byte gLinkEntity
_08077198:
ldrh r0, [r2, #0x2e]
movs r1, #0x10
rsbs r1, r1, #0
ands r1, r0
movs r0, #8
orrs r1, r0
strh r1, [r2, #0x2e]
b _080771C4
_080771A8:
movs r1, #0xa1
lsls r1, r1, #3
adds r0, r4, #0
bl sub_08077DF4
strb r6, [r4, #4]
b _080771C4
_080771B6:
adds r0, r4, #0
bl sub_08077E78
adds r1, r5, #0
adds r1, #0x3d
movs r0, #0
strb r0, [r1]
_080771C4:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_080771C8
sub_080771C8: @ 0x080771C8
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
bl sub_08077E24
ldrb r1, [r4, #0xe]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080771F4
adds r0, r4, #0
adds r1, r5, #0
bl sub_08077E78
ldr r0, _080771F0 @ =gUnk_03003F80
adds r0, #0x3d
movs r1, #0
strb r1, [r0]
b _080772A4
.align 2, 0
_080771F0: .4byte gUnk_03003F80
_080771F4:
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq _0807720E
ldrb r0, [r4, #8]
cmp r0, #0xff
bne _0807720E
ldr r0, _08077240 @ =gLinkEntity
ldrb r2, [r4, #0xe]
movs r1, #0x1e
movs r3, #1
bl sub_080A2988
_0807720E:
ldrb r1, [r4, #0xe]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _080772A4
ldr r5, _08077240 @ =gLinkEntity
adds r0, r5, #0
movs r1, #0xd
adds r2, r4, #0
bl sub_0800875A
cmp r0, #0
bne _08077248
movs r1, #0xa4
lsls r1, r1, #3
adds r0, r4, #0
bl sub_08077DF4
movs r0, #3
strb r0, [r4, #4]
ldr r0, _08077244 @ =0x00000107
bl sub_080A3268
b _080772A4
.align 2, 0
_08077240: .4byte gLinkEntity
_08077244: .4byte 0x00000107
_08077248:
ldrb r0, [r4, #8]
cmp r0, #0xff
beq _0807728C
ldrb r3, [r4, #3]
adds r0, r5, #0
movs r1, #0x1f
movs r2, #0
bl sub_080A2988
adds r3, r0, #0
cmp r3, #0
beq _0807729C
ldrb r0, [r4, #7]
movs r2, #0
strb r0, [r3, #0xe]
ldrb r0, [r4, #8]
strb r0, [r3, #0xf]
ldrb r1, [r5, #0x14]
movs r0, #6
ands r0, r1
strb r0, [r3, #0x14]
adds r0, r5, #0
adds r0, #0x5a
strb r2, [r0]
ldr r1, _08077288 @ =gUnk_0811BE14
ldrb r0, [r4, #8]
adds r0, r0, r1
ldrb r1, [r0]
adds r0, r5, #0
adds r0, #0x59
strb r1, [r0]
b _0807729C
.align 2, 0
_08077288: .4byte gUnk_0811BE14
_0807728C:
ldrb r0, [r4, #3]
cmp r0, #0xf
bne _0807729C
ldrb r0, [r4, #7]
cmp r0, #0x17
bne _0807729C
movs r0, #0
strb r0, [r4, #8]
_0807729C:
movs r0, #0x84
lsls r0, r0, #1
bl sub_080A3268
_080772A4:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_080772A8
sub_080772A8: @ 0x080772A8
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r6, r1, #0
ldrb r1, [r4, #0xe]
movs r0, #8
ands r0, r1
cmp r0, #0
beq _080772C6
adds r0, r4, #0
bl sub_08077F10
cmp r0, #0
beq _080772C6
movs r0, #1
strb r0, [r4, #7]
_080772C6:
movs r0, #0x71
bl GetInventoryValue
cmp r0, #1
bne _08077318
ldrb r1, [r4, #0xe]
movs r5, #7
adds r0, r5, #0
ands r0, r1
cmp r0, #3
beq _08077300
adds r0, r4, #0
movs r1, #2
bl sub_08077E3C
ldr r3, _080772F8 @ =gLinkEntity
ldr r2, _080772FC @ =gUnk_0811BE16
ldrb r1, [r4, #0xe]
adds r0, r5, #0
ands r0, r1
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
lsls r0, r0, #1
b _0807732E
.align 2, 0
_080772F8: .4byte gLinkEntity
_080772FC: .4byte gUnk_0811BE16
_08077300:
adds r0, r4, #0
bl sub_08077E24
ldr r3, _08077310 @ =gLinkEntity
ldr r2, _08077314 @ =gUnk_0811BE16
ldrb r1, [r4, #0xe]
adds r0, r5, #0
b _08077326
.align 2, 0
_08077310: .4byte gLinkEntity
_08077314: .4byte gUnk_0811BE16
_08077318:
adds r0, r4, #0
bl sub_08077E24
ldr r3, _0807736C @ =gLinkEntity
ldr r2, _08077370 @ =gUnk_0811BE16
ldrb r1, [r4, #0xe]
movs r0, #7
_08077326:
ands r0, r1
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
_0807732E:
strh r0, [r3, #0x24]
ldr r5, _0807736C @ =gLinkEntity
ldrb r0, [r5, #0x14]
lsls r0, r0, #2
strb r0, [r5, #0x15]
movs r1, #0x24
ldrsh r0, [r5, r1]
cmp r0, #0
beq _08077344
bl sub_08079E08
_08077344:
ldrb r1, [r4, #0xe]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _0807738C
ldrb r0, [r4, #7]
cmp r0, #0
beq _08077374
adds r0, r5, #0
adds r0, #0x59
movs r1, #1
strb r1, [r0]
bl sub_080774A0
cmp r0, #0
beq _08077374
movs r0, #0
strb r0, [r4, #7]
b _0807743E
.align 2, 0
_0807736C: .4byte gLinkEntity
_08077370: .4byte gUnk_0811BE16
_08077374:
adds r0, r4, #0
adds r1, r6, #0
bl sub_08077E78
ldr r0, _08077388 @ =gUnk_03003F80
adds r0, #0x3d
movs r1, #0
strb r1, [r0]
b _0807743E
.align 2, 0
_08077388: .4byte gUnk_03003F80
_0807738C:
movs r0, #0x60
ands r0, r1
cmp r0, #0
beq _0807743E
adds r0, r5, #0
adds r0, #0x59
movs r6, #1
strb r6, [r0]
adds r0, r5, #0
bl sub_0807B5B0
cmp r0, #0
beq _080773BC
movs r0, #0x84
lsls r0, r0, #1
bl sub_080A3268
ldrb r2, [r4, #0xe]
adds r0, r5, #0
movs r1, #0x1e
movs r3, #0
bl sub_080A2988
b _0807743E
_080773BC:
ldr r1, _08077440 @ =0x0000051C
adds r0, r4, #0
bl sub_08077DF4
adds r0, r5, #0
movs r1, #0x1d
movs r2, #0
bl CreateFX
adds r3, r0, #0
cmp r3, #0
beq _080773F6
ldrb r0, [r4, #0xa]
strb r0, [r3, #0x14]
adds r0, r5, #0
adds r0, #0x29
ldrb r1, [r0]
lsls r1, r1, #0x1d
lsrs r1, r1, #0x1d
subs r1, #1
adds r3, #0x29
movs r0, #7
ands r1, r0
ldrb r2, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
_080773F6:
adds r0, r5, #0
movs r1, #0x1d
movs r2, #0
bl CreateFX
adds r3, r0, #0
cmp r3, #0
beq _08077432
ldrb r0, [r4, #0xa]
strb r0, [r3, #0x14]
adds r0, r5, #0
adds r0, #0x29
ldrb r1, [r0]
lsls r1, r1, #0x1d
lsrs r1, r1, #0x1d
subs r1, #1
movs r0, #0x29
adds r0, r0, r3
mov ip, r0
movs r0, #7
ands r1, r0
mov r0, ip
ldrb r2, [r0]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
mov r1, ip
strb r0, [r1]
strb r6, [r3, #0xf]
_08077432:
movs r0, #3
strb r0, [r4, #4]
strb r6, [r4, #5]
ldr r0, _08077444 @ =0x00000119
bl sub_080A3268
_0807743E:
pop {r4, r5, r6, pc}
.align 2, 0
_08077440: .4byte 0x0000051C
_08077444: .4byte 0x00000119
thumb_func_start sub_08077448
sub_08077448: @ 0x08077448
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
ldr r2, _08077498 @ =gLinkEntity
ldrb r0, [r2, #0x14]
lsls r0, r0, #2
movs r1, #0x10
eors r0, r1
strb r0, [r2, #0x15]
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r2, #0x24]
ldrb r1, [r4, #0xe]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _08077474
ldrb r0, [r4, #5]
cmp r0, #0
beq _08077474
bl sub_08079E08
_08077474:
adds r0, r4, #0
bl sub_08077E24
ldrb r1, [r4, #0xe]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08077494
ldr r0, _0807749C @ =gUnk_03003F80
adds r0, #0x3d
movs r1, #0
strb r1, [r0]
adds r0, r4, #0
adds r1, r5, #0
bl sub_08077E78
_08077494:
pop {r4, r5, pc}
.align 2, 0
_08077498: .4byte gLinkEntity
_0807749C: .4byte gUnk_03003F80
thumb_func_start sub_080774A0
sub_080774A0: @ 0x080774A0
push {r4, r5, r6, r7, lr}
ldr r3, _080774FC @ =gLinkEntity
movs r0, #0x2e
ldrsh r2, [r3, r0]
ldr r5, _08077500 @ =gUnk_0811BE1E
ldrb r0, [r3, #0x14]
movs r1, #6
ands r1, r0
adds r0, r1, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r2, r2, r0
ldr r4, _08077504 @ =gUnk_03000BF0
ldrh r0, [r4, #6]
subs r2, r2, r0
asrs r6, r2, #4
movs r2, #0x3f
ands r6, r2
movs r7, #0x32
ldrsh r0, [r3, r7]
adds r1, #1
adds r1, r1, r5
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
adds r0, r0, r1
ldrh r1, [r4, #8]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r2
lsls r0, r0, #6
orrs r6, r0
adds r4, r3, #0
adds r4, #0x38
ldrb r1, [r4]
adds r0, r6, #0
bl sub_080002E0
cmp r0, #0x16
bhi _080774F6
cmp r0, #0xe
bhi _08077508
_080774F6:
movs r0, #0
b _0807751A
.align 2, 0
_080774FC: .4byte gLinkEntity
_08077500: .4byte gUnk_0811BE1E
_08077504: .4byte gUnk_03000BF0
_08077508:
adds r0, r6, #0
ldrb r1, [r4]
bl sub_080002C8
cmp r0, #0x56
bne _08077518
movs r0, #0x56
b _0807751A
_08077518:
movs r0, #1
_0807751A:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0807751C
sub_0807751C: @ 0x0807751C
push {lr}
ldr r3, _08077530 @ =gUnk_0811BE28
ldrb r2, [r0, #4]
lsls r2, r2, #2
adds r2, r2, r3
ldr r2, [r2]
bl _call_via_r2
pop {pc}
.align 2, 0
_08077530: .4byte gUnk_0811BE28
thumb_func_start sub_08077534
sub_08077534: @ 0x08077534
push {r4, lr}
adds r4, r0, #0
bl sub_08077D38
ldr r0, _08077570 @ =gLinkEntity
bl sub_0806F948
adds r0, r4, #0
bl sub_08077BB8
ldrb r1, [r4, #9]
movs r0, #0xf
orrs r0, r1
strb r0, [r4, #9]
ldrb r1, [r4, #1]
ldr r0, _08077574 @ =gUnk_02002A40
adds r0, r0, r1
adds r0, #0x9a
ldrb r0, [r0]
strb r0, [r4, #7]
ldrb r0, [r4, #7]
subs r0, #0x20
cmp r0, #0x11
bhi _080775F8
lsls r0, r0, #2
ldr r1, _08077578 @ =_0807757C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08077570: .4byte gLinkEntity
_08077574: .4byte gUnk_02002A40
_08077578: .4byte _0807757C
_0807757C: @ jump table
.4byte _080775C4 @ case 0
.4byte _080775D4 @ case 1
.4byte _080775D4 @ case 2
.4byte _080775D4 @ case 3
.4byte _080775D4 @ case 4
.4byte _080775D4 @ case 5
.4byte _080775F8 @ case 6
.4byte _080775F8 @ case 7
.4byte _080775F8 @ case 8
.4byte _080775D4 @ case 9
.4byte _080775D4 @ case 10
.4byte _080775D4 @ case 11
.4byte _080775D4 @ case 12
.4byte _080775D4 @ case 13
.4byte _080775D4 @ case 14
.4byte _080775F8 @ case 15
.4byte _080775F8 @ case 16
.4byte _080775F8 @ case 17
_080775C4:
ldr r1, _080775D0 @ =0x00000614
adds r0, r4, #0
bl sub_08077DF4
b _08077610
.align 2, 0
_080775D0: .4byte 0x00000614
_080775D4:
movs r0, #3
strb r0, [r4, #4]
ldr r1, _080775F0 @ =gLinkEntity
movs r0, #4
strb r0, [r1, #0x14]
ldrb r2, [r1, #0x18]
subs r0, #0x45
ands r0, r2
strb r0, [r1, #0x18]
ldr r1, _080775F4 @ =0x000002DF
adds r0, r4, #0
bl sub_08077DF4
b _08077606
.align 2, 0
_080775F0: .4byte gLinkEntity
_080775F4: .4byte 0x000002DF
_080775F8:
movs r0, #3
strb r0, [r4, #4]
movs r1, #0xc2
lsls r1, r1, #3
adds r0, r4, #0
bl sub_08077DF4
_08077606:
ldr r2, _08077614 @ =gLinkEntity
ldrb r1, [r2, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r2, #0x10]
_08077610:
pop {r4, pc}
.align 2, 0
_08077614: .4byte gLinkEntity
thumb_func_start sub_08077618
sub_08077618: @ 0x08077618
push {r4, lr}
adds r4, r0, #0
ldrb r1, [r4, #0xe]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08077638
movs r1, #0xc3
lsls r1, r1, #3
adds r0, r4, #0
bl sub_08077DF4
ldrb r0, [r4, #4]
adds r0, #1
strb r0, [r4, #4]
b _0807763E
_08077638:
adds r0, r4, #0
bl sub_08077E24
_0807763E:
pop {r4, pc}
thumb_func_start sub_08077640
sub_08077640: @ 0x08077640
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
bl sub_08077E24
ldrb r1, [r4, #0xe]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08077666
ldr r2, _08077668 @ =gLinkEntity
ldrb r1, [r2, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r2, #0x10]
adds r0, r4, #0
adds r1, r5, #0
bl sub_08077E78
_08077666:
pop {r4, r5, pc}
.align 2, 0
_08077668: .4byte gLinkEntity
thumb_func_start sub_0807766C
sub_0807766C: @ 0x0807766C
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
bl sub_08077E24
ldrb r1, [r4, #0xe]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08077692
ldr r2, _08077694 @ =gLinkEntity
ldrb r1, [r2, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r2, #0x10]
adds r0, r4, #0
adds r1, r5, #0
bl sub_08077E78
_08077692:
pop {r4, r5, pc}
.align 2, 0
_08077694: .4byte gLinkEntity
thumb_func_start sub_08077698
sub_08077698: @ 0x08077698
push {r4, r5, lr}
adds r4, r0, #0
ldr r2, _0807771C @ =gUnk_03003F80
ldrb r1, [r2, #3]
movs r0, #0xfe
ands r0, r1
strb r0, [r2, #3]
ldrb r1, [r2, #4]
movs r0, #0xf
ands r0, r1
strb r0, [r2, #4]
ldrb r0, [r2, #7]
ldrb r3, [r2, #2]
orrs r0, r3
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _08077700
movs r0, #0x40
ands r0, r3
cmp r0, #0
bne _08077700
adds r0, r2, #0
adds r0, #0x26
ldrb r0, [r0]
cmp r0, #0
bne _08077700
adds r0, r4, #0
bl sub_08077758
cmp r0, #0
beq _08077700
bl sub_080777A0
cmp r0, #0
bne _08077700
ldr r4, _08077720 @ =gUnk_02002A40
adds r0, r4, #0
adds r0, #0xb4
ldrb r0, [r0]
movs r1, #1
movs r2, #0
bl sub_08077880
adds r4, #0xb5
ldrb r0, [r4]
movs r1, #2
movs r2, #0
bl sub_08077880
bl sub_080778CC
_08077700:
movs r5, #0
ldr r4, _08077724 @ =gUnk_03000B80
_08077704:
ldrb r0, [r4, #9]
cmp r0, #0
beq _08077712
adds r0, r4, #0
adds r1, r5, #0
bl sub_080752E8
_08077712:
adds r4, #0x1c
adds r5, #1
cmp r5, #3
bls _08077704
pop {r4, r5, pc}
.align 2, 0
_0807771C: .4byte gUnk_03003F80
_08077720: .4byte gUnk_02002A40
_08077724: .4byte gUnk_03000B80
thumb_func_start sub_08077728
sub_08077728: @ 0x08077728
push {lr}
cmp r0, #0
bne _08077744
ldr r0, _08077740 @ =gUnk_02002A40
adds r0, #0xb4
ldrb r0, [r0]
movs r1, #1
movs r2, #1
bl sub_08077880
b _08077752
.align 2, 0
_08077740: .4byte gUnk_02002A40
_08077744:
ldr r0, _08077754 @ =gUnk_02002A40
adds r0, #0xb5
ldrb r0, [r0]
movs r1, #2
movs r2, #1
bl sub_08077880
_08077752:
pop {pc}
.align 2, 0
_08077754: .4byte gUnk_02002A40
thumb_func_start sub_08077758
sub_08077758: @ 0x08077758
push {lr}
adds r3, r0, #0
ldr r2, _08077794 @ =gUnk_03003F80
ldr r1, [r2, #0x30]
movs r0, #0x80
lsls r0, r0, #7
ands r0, r1
cmp r0, #0
bne _0807779C
movs r0, #0xd5
lsls r0, r0, #4
ands r1, r0
cmp r1, #0
bne _08077798
ldrb r0, [r2, #0x1e]
ldrb r1, [r2, #0x1a]
orrs r1, r0
adds r0, r3, #0
adds r0, #0x7a
ldrh r0, [r0]
orrs r1, r0
cmp r1, #0
bne _0807779C
adds r0, r3, #0
adds r0, #0x42
ldrb r0, [r0]
cmp r0, #0
bne _0807779C
movs r0, #1
b _0807779E
.align 2, 0
_08077794: .4byte gUnk_03003F80
_08077798:
bl sub_0807A108
_0807779C:
movs r0, #0
_0807779E:
pop {pc}
thumb_func_start sub_080777A0
sub_080777A0: @ 0x080777A0
push {r4, lr}
ldr r3, _080777D0 @ =gUnk_03003F80
adds r0, r3, #0
adds r0, #0x92
ldrh r1, [r0]
movs r4, #0x80
adds r0, r4, #0
ands r0, r1
cmp r0, #0
beq _08077870
ldr r1, [r3, #0x30]
movs r0, #0x80
lsls r0, r0, #0xf
ands r0, r1
cmp r0, #0
beq _080777D4
adds r1, r3, #0
adds r1, #0xa0
movs r0, #1
strb r0, [r1]
bl sub_0807A108
_080777CC:
movs r0, #1
b _0807787C
.align 2, 0
_080777D0: .4byte gUnk_03003F80
_080777D4:
ldr r2, _080777F4 @ =gUnk_02033A90
ldrb r0, [r2, #0x18]
cmp r0, #2
beq _080777FC
cmp r0, #3
beq _08077810
ldr r0, _080777F8 @ =gUnk_0200AF00
adds r0, #0x2c
ldrb r0, [r0]
cmp r0, #0xc
bne _0807787A
adds r2, r3, #0
ldrb r0, [r2, #0x1c]
cmp r0, #0
bne _0807787A
b _08077838
.align 2, 0
_080777F4: .4byte gUnk_02033A90
_080777F8: .4byte gUnk_0200AF00
_080777FC:
ldrb r0, [r2, #0x1a]
cmp r0, #0
bne _080777CC
ldr r1, _0807780C @ =gLinkEntity
ldrb r0, [r1, #0xd]
adds r0, #1
strb r0, [r1, #0xd]
b _080777CC
.align 2, 0
_0807780C: .4byte gLinkEntity
_08077810:
ldrb r0, [r2, #0x1a]
cmp r0, #0
bne _0807787A
ands r1, r4
cmp r1, #0
beq _0807787A
ldr r0, _08077834 @ =gLinkEntity
ldrb r1, [r0, #0xd]
adds r1, #1
strb r1, [r0, #0xd]
ldrb r2, [r0, #0x10]
movs r1, #0x7f
ands r1, r2
strb r1, [r0, #0x10]
movs r1, #0xb4
bl sub_0805E4E0
b _080777CC
.align 2, 0
_08077834: .4byte gLinkEntity
_08077838:
ldrb r0, [r2, #0x12]
cmp r0, #0x11
beq _0807787A
adds r0, r2, #0
adds r0, #0x90
ldrh r1, [r0]
movs r0, #0xf0
lsls r0, r0, #4
ands r0, r1
cmp r0, #0
beq _0807787A
ldr r0, [r2, #0x30]
ldr r1, _0807786C @ =0x00040400
ands r0, r1
cmp r0, #0
bne _0807787A
ldrb r0, [r2, #2]
cmp r0, #0
bne _0807787A
ldrb r0, [r2, #4]
cmp r0, #0
bne _0807787A
movs r0, #0x18
strb r0, [r2, #0xc]
b _0807787A
.align 2, 0
_0807786C: .4byte 0x00040400
_08077870:
ldr r0, [r3, #0x30]
movs r1, #0x20
ands r0, r1
cmp r0, #0
bne _080777CC
_0807787A:
movs r0, #0
_0807787C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08077880
sub_08077880: @ 0x08077880
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r6, r1, #0
subs r0, r4, #1
cmp r0, #0x1e
bhi _080778C0
lsls r0, r4, #1
adds r0, r0, r4
lsls r0, r0, #2
ldr r1, _080778C4 @ =gUnk_0811BE48
adds r5, r0, r1
ldr r1, _080778C8 @ =gUnk_03004010
ldrb r0, [r5]
cmp r0, #0
beq _080778A0
adds r1, #2
_080778A0:
ldrh r0, [r1]
ands r0, r6
cmp r0, #0
bne _080778AC
cmp r2, #0
beq _080778C0
_080778AC:
adds r0, r4, #0
bl sub_0807794C
adds r1, r0, #0
cmp r1, #0
beq _080778C0
ldrb r0, [r5, #1]
strb r0, [r1, #9]
strb r4, [r1, #1]
strb r6, [r1, #3]
_080778C0:
pop {r4, r5, r6, pc}
.align 2, 0
_080778C4: .4byte gUnk_0811BE48
_080778C8: .4byte gUnk_03004010
thumb_func_start sub_080778CC
sub_080778CC: @ 0x080778CC
push {lr}
ldr r2, _08077920 @ =gUnk_03003F80
ldr r0, [r2, #0x30]
ldr r1, _08077924 @ =0x000400A0
ands r0, r1
cmp r0, #0
bne _0807791C
ldr r0, _08077928 @ =gLinkEntity
adds r0, #0x79
ldrb r0, [r0]
cmp r0, #0
bne _080778FA
ldrb r0, [r2, #5]
cmp r0, #0
bne _080778FA
adds r0, r2, #0
adds r0, #0x92
ldrh r1, [r0]
movs r0, #0x80
lsls r0, r0, #8
ands r0, r1
cmp r0, #0
beq _0807791C
_080778FA:
bl sub_080789A8
cmp r0, #0
bne _08077910
ldr r0, _08077920 @ =gUnk_03003F80
adds r0, #0x90
ldrh r1, [r0]
ldr r0, _0807792C @ =0x00000F03
ands r0, r1
cmp r0, #0
bne _0807791C
_08077910:
movs r0, #0x1b
bl sub_0807794C
adds r1, r0, #0
cmp r1, #0
bne _08077930
_0807791C:
movs r0, #0
b _08077940
.align 2, 0
_08077920: .4byte gUnk_03003F80
_08077924: .4byte 0x000400A0
_08077928: .4byte gLinkEntity
_0807792C: .4byte 0x00000F03
_08077930:
movs r0, #0x1b
strb r0, [r1, #1]
ldr r0, _08077944 @ =gUnk_0811BE48
ldr r2, _08077948 @ =0x00000145
adds r0, r0, r2
ldrb r0, [r0]
strb r0, [r1, #9]
movs r0, #1
_08077940:
pop {pc}
.align 2, 0
_08077944: .4byte gUnk_0811BE48
_08077948: .4byte 0x00000145
thumb_func_start sub_0807794C
sub_0807794C: @ 0x0807794C
push {lr}
adds r2, r0, #0
ldr r0, _080779B8 @ =gUnk_03003F80
ldrb r1, [r0, #0xc]
adds r3, r0, #0
cmp r1, #0x18
bne _0807795E
cmp r2, #0x1b
bne _080779B2
_0807795E:
ldr r0, [r3, #0x30]
movs r1, #0x88
lsls r1, r1, #0xf
ands r0, r1
cmp r0, #0
beq _0807796E
cmp r2, #6
bhi _080779B2
_0807796E:
ldrb r0, [r3, #2]
cmp r0, #0
bne _0807797C
ldr r0, _080779BC @ =gLinkEntity
ldr r0, [r0, #0x34]
cmp r0, #0
beq _08077980
_0807797C:
cmp r2, #6
bhi _080779B2
_08077980:
ldr r0, [r3, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
beq _0807799A
ldr r0, _080779C0 @ =gUnk_0811BE48
lsls r1, r2, #1
adds r1, r1, r2
lsls r1, r1, #2
adds r1, r1, r0
ldrb r0, [r1, #8]
cmp r0, #0
beq _080779B2
_0807799A:
ldrb r0, [r3, #0x12]
cmp r0, #0x11
bne _080779C4
adds r0, r3, #0
adds r0, #0x37
ldrb r0, [r0]
cmp r0, #0
beq _080779C4
adds r0, r2, #0
subs r0, #0x14
cmp r0, #1
bls _080779C4
_080779B2:
movs r0, #0
b _080779DE
.align 2, 0
_080779B8: .4byte gUnk_03003F80
_080779BC: .4byte gLinkEntity
_080779C0: .4byte gUnk_0811BE48
_080779C4:
ldr r1, _080779E0 @ =gUnk_0811BE48
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #2
adds r0, r0, r1
ldrb r0, [r0, #2]
ldr r1, _080779E4 @ =gUnk_0811BFC8
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r2, #0
bl _call_via_r1
_080779DE:
pop {pc}
.align 2, 0
_080779E0: .4byte gUnk_0811BE48
_080779E4: .4byte gUnk_0811BFC8
thumb_func_start sub_080779E8
sub_080779E8: @ 0x080779E8
movs r0, #0
bx lr
thumb_func_start sub_080779EC
sub_080779EC: @ 0x080779EC
push {lr}
ldr r1, _08077A00 @ =gUnk_03000B80
adds r0, r1, #0
adds r0, #0x25
ldrb r0, [r0]
cmp r0, #0
bne _08077A04
adds r0, r1, #0
adds r0, #0x1c
b _08077A16
.align 2, 0
_08077A00: .4byte gUnk_03000B80
_08077A04:
adds r0, r1, #0
adds r0, #0x41
ldrb r0, [r0]
cmp r0, #0
beq _08077A12
movs r0, #0
b _08077A16
_08077A12:
adds r0, r1, #0
adds r0, #0x38
_08077A16:
pop {pc}
thumb_func_start sub_08077A18
sub_08077A18: @ 0x08077A18
push {lr}
adds r1, r0, #0
ldr r0, _08077A3C @ =gUnk_03003F80
ldrb r0, [r0, #5]
cmp r0, #0
bne _08077A44
ldr r0, _08077A40 @ =gUnk_03000B80
ldrb r2, [r0, #0x1d]
cmp r1, r2
beq _08077A44
adds r0, #0x39
ldrb r0, [r0]
cmp r1, r0
beq _08077A44
adds r0, r1, #0
bl sub_080779EC
b _08077A46
.align 2, 0
_08077A3C: .4byte gUnk_03003F80
_08077A40: .4byte gUnk_03000B80
_08077A44:
movs r0, #0
_08077A46:
pop {pc}
thumb_func_start sub_08077A48
sub_08077A48: @ 0x08077A48
push {r4, r5, r6, lr}
adds r2, r0, #0
ldr r6, _08077A88 @ =gUnk_03003F80
ldrb r0, [r6, #5]
cmp r0, #0
bne _08077A94
ldrb r1, [r6, #2]
movs r0, #0x20
ands r0, r1
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #0
bne _08077A94
ldr r0, _08077A8C @ =gUnk_0811BE48
lsls r1, r2, #1
adds r1, r1, r2
lsls r1, r1, #2
adds r1, r1, r0
ldr r5, _08077A90 @ =gUnk_03000B80
ldrb r0, [r1, #1]
ldrb r1, [r5, #9]
cmp r0, r1
blo _08077A94
adds r0, r5, #0
movs r1, #0
bl sub_08077E78
strb r4, [r6, #1]
strb r4, [r6, #0x1c]
strb r4, [r6, #0x1b]
adds r0, r5, #0
b _08077A96
.align 2, 0
_08077A88: .4byte gUnk_03003F80
_08077A8C: .4byte gUnk_0811BE48
_08077A90: .4byte gUnk_03000B80
_08077A94:
movs r0, #0
_08077A96:
pop {r4, r5, r6, pc}
thumb_func_start sub_08077A98
sub_08077A98: @ 0x08077A98
push {lr}
ldr r0, _08077AB8 @ =gUnk_02002A40
adds r0, #0xac
ldrb r0, [r0]
cmp r0, #0
beq _08077AC4
ldr r0, _08077ABC @ =gUnk_03003F80
ldrb r0, [r0, #5]
cmp r0, #0
bne _08077AC4
ldr r1, _08077AC0 @ =gUnk_03000B80
ldrb r0, [r1, #9]
cmp r0, #0
bne _08077AC4
adds r0, r1, #0
b _08077AC6
.align 2, 0
_08077AB8: .4byte gUnk_02002A40
_08077ABC: .4byte gUnk_03003F80
_08077AC0: .4byte gUnk_03000B80
_08077AC4:
movs r0, #0
_08077AC6:
pop {pc}
thumb_func_start sub_08077AC8
sub_08077AC8: @ 0x08077AC8
push {lr}
movs r2, #0
ldr r1, _08077AD8 @ =gUnk_03000B80
_08077ACE:
ldrb r0, [r1, #9]
cmp r0, #0
beq _08077ADC
movs r0, #0
b _08077AE6
.align 2, 0
_08077AD8: .4byte gUnk_03000B80
_08077ADC:
adds r1, #0x1c
adds r2, #1
cmp r2, #3
bls _08077ACE
ldr r0, _08077AE8 @ =gUnk_03000BD4
_08077AE6:
pop {pc}
.align 2, 0
_08077AE8: .4byte gUnk_03000BD4
thumb_func_start sub_08077AEC
sub_08077AEC: @ 0x08077AEC
push {lr}
ldr r0, _08077B14 @ =gUnk_03000BD4
movs r1, #3
bl sub_08077E78
ldr r2, _08077B18 @ =gUnk_03003F80
ldr r0, [r2, #0x30]
ldr r1, _08077B1C @ =0xFF7FFFFF
ands r0, r1
str r0, [r2, #0x30]
movs r0, #0x10
bl sub_0805436C
adds r1, r0, #0
cmp r1, #2
beq _08077B12
movs r0, #0xf
bl sub_08054414
_08077B12:
pop {pc}
.align 2, 0
_08077B14: .4byte gUnk_03000BD4
_08077B18: .4byte gUnk_03003F80
_08077B1C: .4byte 0xFF7FFFFF
thumb_func_start sub_08077B20
sub_08077B20: @ 0x08077B20
push {lr}
bl sub_08077B2C
bl sub_08077AEC
pop {pc}
thumb_func_start sub_08077B2C
sub_08077B2C: @ 0x08077B2C
push {r4, r5, lr}
movs r4, #0
ldr r5, _08077B88 @ =gUnk_03000B80
_08077B32:
adds r0, r5, #0
adds r1, r4, #0
bl sub_08077E78
adds r5, #0x1c
adds r4, #1
cmp r4, #2
bls _08077B32
ldr r2, _08077B8C @ =gUnk_03003F80
adds r0, r2, #0
adds r0, #0x3d
movs r3, #0
strb r3, [r0]
strb r3, [r2, #0x1c]
subs r0, #0x1c
strb r3, [r0]
strb r3, [r2, #1]
strb r3, [r2, #0xe]
strb r3, [r2, #0x1e]
strb r3, [r2, #0x1b]
strb r3, [r2, #3]
strb r3, [r2, #5]
ldr r0, [r2, #0x30]
ldr r1, _08077B90 @ =0xF7FBFFFF
ands r0, r1
str r0, [r2, #0x30]
ldr r0, _08077B94 @ =gLinkEntity
str r3, [r0, #0x70]
ldrb r1, [r2, #2]
movs r0, #0xc0
ands r0, r1
cmp r0, #0
bne _08077B76
strb r3, [r2, #2]
_08077B76:
adds r1, r2, #0
adds r1, #0xa8
ldrb r0, [r1]
cmp r0, #4
bgt _08077B86
cmp r0, #2
blt _08077B86
strb r3, [r1]
_08077B86:
pop {r4, r5, pc}
.align 2, 0
_08077B88: .4byte gUnk_03000B80
_08077B8C: .4byte gUnk_03003F80
_08077B90: .4byte 0xF7FBFFFF
_08077B94: .4byte gLinkEntity
thumb_func_start sub_08077B98
sub_08077B98: @ 0x08077B98
push {r4, lr}
adds r1, r0, #0
ldr r4, _08077BB4 @ =gUnk_03003F80
ldr r0, [r4, #0x2c]
cmp r0, #0
beq _08077BAA
ldrb r0, [r0, #9]
cmp r0, #1
beq _08077BB2
_08077BAA:
adds r0, r1, #0
bl sub_08077C54
str r0, [r4, #0x2c]
_08077BB2:
pop {r4, pc}
.align 2, 0
_08077BB4: .4byte gUnk_03003F80
thumb_func_start sub_08077BB8
sub_08077BB8: @ 0x08077BB8
push {lr}
bl sub_08077C54
adds r1, r0, #0
cmp r1, #0
beq _08077BC8
movs r0, #0x20
strb r0, [r1, #0x10]
_08077BC8:
ldr r0, _08077BD0 @ =gUnk_03003F80
str r1, [r0, #0x2c]
pop {pc}
.align 2, 0
_08077BD0: .4byte gUnk_03003F80
thumb_func_start sub_08077BD4
sub_08077BD4: @ 0x08077BD4
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, _08077C04 @ =gUnk_0811BE48
ldrb r1, [r4, #1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
ldrb r1, [r0, #3]
adds r0, r4, #0
bl sub_08077C94
cmp r0, #0
bne _08077C08
ldrb r1, [r4, #1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
ldrb r1, [r0, #3]
adds r0, r4, #0
bl sub_08077C3C
b _08077C0A
.align 2, 0
_08077C04: .4byte gUnk_0811BE48
_08077C08:
movs r0, #0
_08077C0A:
pop {r4, r5, pc}
thumb_func_start sub_08077C0C
sub_08077C0C: @ 0x08077C0C
push {r4, r5, lr}
adds r5, r0, #0
ldr r2, _08077C34 @ =gUnk_0811BE48
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrb r4, [r0, #3]
adds r0, r5, #0
adds r1, r4, #0
bl sub_08077C94
cmp r0, #0
bne _08077C38
adds r0, r5, #0
adds r1, r4, #0
bl sub_08077C3C
b _08077C3A
.align 2, 0
_08077C34: .4byte gUnk_0811BE48
_08077C38:
movs r0, #0
_08077C3A:
pop {r4, r5, pc}
thumb_func_start sub_08077C3C
sub_08077C3C: @ 0x08077C3C
push {r4, lr}
adds r4, r0, #0
adds r0, r1, #0
ldrb r3, [r4, #1]
movs r1, #0
movs r2, #0
bl sub_08077CB8
cmp r0, #0
beq _08077C52
str r4, [r0, #0x50]
_08077C52:
pop {r4, pc}
thumb_func_start sub_08077C54
sub_08077C54: @ 0x08077C54
push {r4, r5, lr}
adds r5, r0, #0
bl sub_0805E744
adds r4, r0, #0
cmp r4, #0
beq _08077C8C
ldr r2, _08077C90 @ =gUnk_0811BE48
ldrb r1, [r5, #1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrb r0, [r0, #3]
strb r0, [r4, #9]
movs r0, #8
strb r0, [r4, #8]
movs r0, #0xa0
strb r0, [r4, #0x10]
str r5, [r4, #0x50]
ldrb r1, [r5, #1]
adds r0, r4, #0
adds r0, #0x68
strb r1, [r0]
adds r0, r4, #0
movs r1, #2
bl sub_0805EA2C
_08077C8C:
adds r0, r4, #0
pop {r4, r5, pc}
.align 2, 0
_08077C90: .4byte gUnk_0811BE48
thumb_func_start sub_08077C94
sub_08077C94: @ 0x08077C94
push {lr}
ldr r2, _08077CB4 @ =gUnk_0811BE48
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrb r1, [r0, #3]
movs r0, #8
movs r2, #2
bl sub_0805EB00
cmp r0, #0
bne _08077CB0
movs r0, #0
_08077CB0:
pop {pc}
.align 2, 0
_08077CB4: .4byte gUnk_0811BE48
thumb_func_start sub_08077CB8
sub_08077CB8: @ 0x08077CB8
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r5, r0, #0
adds r6, r1, #0
adds r7, r2, #0
mov r8, r3
bl GetEmptyEntity
adds r4, r0, #0
cmp r4, #0
beq _08077CEE
movs r0, #0x80
strb r0, [r4, #0x10]
movs r0, #8
strb r0, [r4, #8]
strb r5, [r4, #9]
strb r6, [r4, #0xa]
strb r7, [r4, #0xb]
adds r0, r4, #0
adds r0, #0x68
mov r1, r8
strb r1, [r0]
adds r0, r4, #0
movs r1, #2
bl sub_0805EA2C
_08077CEE:
adds r0, r4, #0
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_08077CF8
sub_08077CF8: @ 0x08077CF8
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r5, r0, #0
adds r6, r1, #0
adds r7, r2, #0
mov r8, r3
bl sub_0805E744
adds r4, r0, #0
cmp r4, #0
beq _08077D2E
movs r0, #0x80
strb r0, [r4, #0x10]
movs r0, #8
strb r0, [r4, #8]
strb r5, [r4, #9]
strb r6, [r4, #0xa]
strb r7, [r4, #0xb]
adds r0, r4, #0
adds r0, #0x68
mov r1, r8
strb r1, [r0]
adds r0, r4, #0
movs r1, #2
bl sub_0805EA2C
_08077D2E:
adds r0, r4, #0
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_08077D38
sub_08077D38: @ 0x08077D38
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r4, r0, #0
mov r8, r1
ldr r3, _08077D94 @ =gUnk_03003F80
movs r7, #8
adds r1, r7, #0
mov r0, r8
asrs r1, r0
ldrb r2, [r3, #0xa]
adds r0, r1, #0
orrs r0, r2
strb r0, [r3, #0xa]
ldrb r0, [r3, #0xb]
orrs r1, r0
strb r1, [r3, #0xb]
ldr r0, _08077D98 @ =gLinkEntity
ldrb r0, [r0, #0x14]
strb r0, [r4, #0xa]
ldrb r0, [r4, #4]
cmp r0, #0
bne _08077D6A
adds r0, #1
strb r0, [r4, #4]
_08077D6A:
ldrb r2, [r4, #1]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #2
ldr r1, _08077D9C @ =gUnk_0811BE48
adds r5, r0, r1
ldrh r0, [r5, #4]
cmp r0, #0
beq _08077DCC
ldr r0, [r3, #0x30]
ands r0, r7
cmp r0, #0
beq _08077DC4
cmp r2, #0xd
beq _08077DB2
cmp r2, #0xd
bgt _08077DA0
cmp r2, #1
beq _08077DAC
b _08077DB4
.align 2, 0
_08077D94: .4byte gUnk_03003F80
_08077D98: .4byte gLinkEntity
_08077D9C: .4byte gUnk_0811BE48
_08077DA0:
cmp r2, #0x1b
bne _08077DB4
ldr r6, _08077DA8 @ =0x00000948
b _08077DB4
.align 2, 0
_08077DA8: .4byte 0x00000948
_08077DAC:
movs r6, #0x81
lsls r6, r6, #3
b _08077DB4
_08077DB2:
ldr r6, _08077DC0 @ =0x0000040C
_08077DB4:
adds r0, r4, #0
adds r1, r6, #0
bl sub_08077DF4
b _08077DCC
.align 2, 0
_08077DC0: .4byte 0x0000040C
_08077DC4:
ldrh r1, [r5, #4]
adds r0, r4, #0
bl sub_08077DF4
_08077DCC:
ldrb r0, [r5, #6]
strb r0, [r4, #0xf]
ldrb r0, [r5, #7]
cmp r0, #0
beq _08077DE8
ldr r2, _08077DF0 @ =gUnk_03003F80
movs r0, #8
mov r1, r8
asrs r0, r1
lsls r1, r0, #4
orrs r0, r1
ldrb r1, [r2, #4]
orrs r0, r1
strb r0, [r2, #4]
_08077DE8:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08077DF0: .4byte gUnk_03003F80
thumb_func_start sub_08077DF4
sub_08077DF4: @ 0x08077DF4
push {r4, lr}
adds r4, r0, #0
adds r2, r1, #0
strh r2, [r4, #0x10]
movs r0, #0xff
ands r0, r2
cmp r0, #0xb8
bls _08077E0A
ldrb r0, [r4, #0xa]
lsrs r0, r0, #1
adds r2, r2, r0
_08077E0A:
ldr r0, _08077E20 @ =gLinkEntity
lsrs r1, r2, #8
strh r1, [r0, #0x12]
lsls r1, r2, #0x18
lsrs r1, r1, #0x18
bl sub_080042AC
adds r0, r4, #0
bl sub_08077E54
pop {r4, pc}
.align 2, 0
_08077E20: .4byte gLinkEntity
thumb_func_start sub_08077E24
sub_08077E24: @ 0x08077E24
push {r4, lr}
adds r4, r0, #0
ldr r0, _08077E38 @ =gLinkEntity
bl sub_080042B8
adds r0, r4, #0
bl sub_08077E54
pop {r4, pc}
.align 2, 0
_08077E38: .4byte gLinkEntity
thumb_func_start sub_08077E3C
sub_08077E3C: @ 0x08077E3C
push {r4, lr}
adds r4, r0, #0
ldr r0, _08077E50 @ =gLinkEntity
bl sub_080042BA
adds r0, r4, #0
bl sub_08077E54
pop {r4, pc}
.align 2, 0
_08077E50: .4byte gLinkEntity
thumb_func_start sub_08077E54
sub_08077E54: @ 0x08077E54
ldr r2, _08077E74 @ =gLinkEntity
adds r1, r2, #0
adds r1, #0x58
ldrb r1, [r1]
strb r1, [r0, #0xc]
ldrb r1, [r2, #0x1e]
strb r1, [r0, #0x12]
adds r1, r2, #0
adds r1, #0x59
ldrb r1, [r1]
strb r1, [r0, #0xd]
adds r1, r2, #0
adds r1, #0x5a
ldrb r1, [r1]
strb r1, [r0, #0xe]
bx lr
.align 2, 0
_08077E74: .4byte gLinkEntity
thumb_func_start sub_08077E78
sub_08077E78: @ 0x08077E78
push {r4, r5, lr}
adds r5, r0, #0
adds r3, r1, #0
ldr r4, _08077EC4 @ =gUnk_03003F80
cmp r3, #0
bne _08077E9A
ldr r2, [r4, #0x2c]
cmp r2, #0
beq _08077E98
ldrb r0, [r2, #0x11]
movs r1, #0x10
rsbs r1, r1, #0
ands r1, r0
movs r0, #6
orrs r1, r0
strb r1, [r2, #0x11]
_08077E98:
str r3, [r4, #0x2c]
_08077E9A:
movs r2, #8
asrs r2, r3
lsls r1, r2, #4
orrs r1, r2
ldrb r0, [r4, #4]
bics r0, r1
strb r0, [r4, #4]
mvns r2, r2
ldrb r1, [r4, #0xa]
adds r0, r2, #0
ands r0, r1
strb r0, [r4, #0xa]
ldrb r0, [r4, #0xb]
ands r2, r0
strb r2, [r4, #0xb]
adds r0, r5, #0
movs r1, #0x1c
bl sub_0801D630
pop {r4, r5, pc}
.align 2, 0
_08077EC4: .4byte gUnk_03003F80
thumb_func_start sub_08077EC8
sub_08077EC8: @ 0x08077EC8
push {r4, lr}
adds r4, r0, #0
ldr r0, _08077EDC @ =gUnk_03003F80
ldrb r1, [r0, #0x1b]
movs r0, #8
ands r0, r1
cmp r0, #0
bne _08077EE0
movs r0, #0
b _08077EF8
.align 2, 0
_08077EDC: .4byte gUnk_03003F80
_08077EE0:
movs r1, #0xb8
lsls r1, r1, #1
adds r0, r4, #0
bl sub_08077DF4
movs r0, #0x28
strb r0, [r4, #7]
movs r0, #7
strb r0, [r4, #4]
movs r0, #6
strb r0, [r4, #0xf]
movs r0, #1
_08077EF8:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08077EFC
sub_08077EFC: @ 0x08077EFC
push {lr}
ldr r1, _08077F0C @ =gUnk_03003F80
adds r1, #0x90
ldrh r1, [r1]
bl sub_08077F24
pop {pc}
.align 2, 0
_08077F0C: .4byte gUnk_03003F80
thumb_func_start sub_08077F10
sub_08077F10: @ 0x08077F10
push {lr}
ldr r1, _08077F20 @ =gUnk_03003F80
adds r1, #0x92
ldrh r1, [r1]
bl sub_08077F24
pop {pc}
.align 2, 0
_08077F20: .4byte gUnk_03003F80
thumb_func_start sub_08077F24
sub_08077F24: @ 0x08077F24
push {lr}
ldr r2, _08077F34 @ =gStats
ldrb r3, [r0, #1]
ldrb r0, [r2, #0xc]
cmp r0, r3
bne _08077F38
movs r2, #1
b _08077F42
.align 2, 0
_08077F34: .4byte gStats
_08077F38:
ldrb r0, [r2, #0xd]
movs r2, #0
cmp r0, r3
bne _08077F42
movs r2, #2
_08077F42:
adds r0, r2, #0
ands r0, r1
cmp r0, #0
beq _08077F4C
movs r0, #1
_08077F4C:
pop {pc}
.align 2, 0
thumb_func_start sub_08077F50
sub_08077F50: @ 0x08077F50
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
bl sub_08079184
adds r0, r4, #0
adds r1, r5, #0
bl sub_08077E78
pop {r4, r5, pc}
thumb_func_start sub_08077F64
sub_08077F64: @ 0x08077F64
push {lr}
adds r2, r0, #0
ldr r0, _08077F7C @ =gUnk_03003F80
ldrb r0, [r0, #5]
cmp r0, #0
bne _08077F80
adds r0, r2, #0
bl sub_08077F50
movs r0, #0
b _08077F82
.align 2, 0
_08077F7C: .4byte gUnk_03003F80
_08077F80:
movs r0, #1
_08077F82:
pop {pc}
thumb_func_start sub_08077F84
sub_08077F84: @ 0x08077F84
push {r4, lr}
ldr r4, _08077FE0 @ =gLinkEntity
adds r0, r4, #0
adds r0, #0x38
ldrb r1, [r0]
movs r0, #2
ands r0, r1
cmp r0, #0
bne _08077FDE
movs r1, #0x2e
ldrsh r0, [r4, r1]
movs r2, #0x32
ldrsh r1, [r4, r2]
subs r1, #0xc
movs r2, #2
bl sub_080002A4
ldr r1, _08077FE4 @ =0xFFFFFCBD
adds r0, r0, r1
cmp r0, #3
bhi _08077FDE
adds r0, r4, #0
bl sub_0807AA80
ldr r2, _08077FE8 @ =gUnk_03003F80
ldrb r1, [r2, #2]
movs r0, #8
orrs r0, r1
strb r0, [r2, #2]
movs r0, #0x44
movs r1, #0
movs r2, #0
bl CreateObject
adds r1, r0, #0
cmp r1, #0
beq _08077FDE
ldr r0, [r4, #0x2c]
str r0, [r1, #0x2c]
ldrh r0, [r4, #0x32]
subs r0, #0xc
strh r0, [r1, #0x32]
ldrh r0, [r4, #0x32]
subs r0, #0xc
strh r0, [r4, #0x32]
_08077FDE:
pop {r4, pc}
.align 2, 0
_08077FE0: .4byte gLinkEntity
_08077FE4: .4byte 0xFFFFFCBD
_08077FE8: .4byte gUnk_03003F80
thumb_func_start sub_08077FEC
sub_08077FEC: @ 0x08077FEC
push {lr}
ldr r0, _08078000 @ =gUnk_03004020
ldr r2, _08078004 @ =gUnk_0811BFE8
ldrb r1, [r0]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08078000: .4byte gUnk_03004020
_08078004: .4byte gUnk_0811BFE8
thumb_func_start sub_08078008
sub_08078008: @ 0x08078008
push {r4, r5, r6, lr}
adds r4, r0, #0
ldr r6, _08078060 @ =gUnk_02002A40
adds r5, r6, #0
adds r5, #0xb4
ldrb r0, [r5]
bl sub_0805449C
cmp r0, #0
bne _0807802C
adds r5, r6, #0
adds r5, #0xb5
ldrb r0, [r5]
bl sub_0805449C
movs r2, #0
cmp r0, #0
beq _0807802E
_0807802C:
ldrb r2, [r5]
_0807802E:
subs r0, r2, #1
cmp r0, #1
bhi _08078036
movs r2, #0
_08078036:
cmp r2, #0
beq _08078068
ldr r0, _08078064 @ =gUnk_03003F80
ldrb r1, [r0, #0x1b]
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq _08078068
ldrb r0, [r4, #1]
adds r0, #1
strb r0, [r4, #1]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x14
ble _0807806C
movs r0, #0xa
strb r0, [r4, #1]
movs r0, #3
strb r0, [r4]
strb r2, [r4, #2]
b _0807806C
.align 2, 0
_08078060: .4byte gUnk_02002A40
_08078064: .4byte gUnk_03003F80
_08078068:
movs r0, #0
strb r0, [r4, #1]
_0807806C:
movs r0, #0
pop {r4, r5, r6, pc}
thumb_func_start sub_08078070
sub_08078070: @ 0x08078070
push {lr}
adds r2, r0, #0
ldr r3, _08078098 @ =gUnk_03003F80
ldrb r1, [r3, #0x1b]
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq _080780D6
adds r0, r3, #0
adds r0, #0xac
ldrh r1, [r0]
movs r0, #0x80
lsls r0, r0, #3
ands r0, r1
cmp r0, #0
beq _0807809C
ldrh r0, [r2, #4]
adds r0, #0xc
b _080780A0
.align 2, 0
_08078098: .4byte gUnk_03003F80
_0807809C:
ldrh r0, [r2, #4]
adds r0, #6
_080780A0:
strh r0, [r2, #4]
movs r0, #4
ldrsh r1, [r2, r0]
ldr r0, _080780BC @ =0x0000031F
cmp r1, r0
ble _080780C0
adds r0, #1
strh r0, [r2, #4]
movs r0, #4
strb r0, [r2]
movs r0, #0xd8
bl sub_080A3268
b _080780DA
.align 2, 0
_080780BC: .4byte 0x0000031F
_080780C0:
movs r1, #4
ldrsh r0, [r2, r1]
movs r1, #0x14
bl Mod
cmp r0, #0
bne _080780DA
movs r0, #0xd7
bl sub_080A3268
b _080780DA
_080780D6:
movs r0, #1
strb r0, [r2]
_080780DA:
movs r0, #1
pop {pc}
.align 2, 0
thumb_func_start sub_080780E0
sub_080780E0: @ 0x080780E0
push {lr}
adds r2, r0, #0
ldr r0, _080780F4 @ =gUnk_03003F80
ldrb r1, [r0, #0x1b]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _080780F8
movs r0, #5
b _08078102
.align 2, 0
_080780F4: .4byte gUnk_03003F80
_080780F8:
movs r0, #0x20
ands r0, r1
cmp r0, #0
bne _08078104
movs r0, #1
_08078102:
strb r0, [r2]
_08078104:
movs r0, #1
pop {pc}
thumb_func_start sub_08078108
sub_08078108: @ 0x08078108
push {lr}
adds r1, r0, #0
ldrh r0, [r1, #4]
subs r0, #1
strh r0, [r1, #4]
lsls r0, r0, #0x10
cmp r0, #0
bge _08078120
movs r0, #0
strh r0, [r1, #4]
movs r0, #2
strb r0, [r1]
_08078120:
movs r0, #1
pop {pc}
thumb_func_start sub_08078124
sub_08078124: @ 0x08078124
push {lr}
adds r1, r0, #0
ldrh r0, [r1, #4]
subs r0, #0x10
strh r0, [r1, #4]
lsls r0, r0, #0x10
cmp r0, #0
bge _0807813C
movs r0, #0
strh r0, [r1, #4]
movs r0, #2
strb r0, [r1]
_0807813C:
movs r0, #1
pop {pc}
thumb_func_start sub_08078140
sub_08078140: @ 0x08078140
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #1]
subs r0, #1
movs r2, #0
strb r0, [r1, #1]
lsls r0, r0, #0x18
cmp r0, #0
blt _08078156
movs r0, #0
b _0807815C
_08078156:
strb r2, [r1, #1]
strb r2, [r1]
movs r0, #1
_0807815C:
pop {pc}
.align 2, 0
thumb_func_start sub_08078160
sub_08078160: @ 0x08078160
push {lr}
ldr r1, _08078178 @ =gUnk_03003F80
adds r1, #0xa8
strb r0, [r1]
ldr r2, _0807817C @ =gLinkEntity
ldrb r1, [r2, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r2, #0x10]
bl sub_08078B48
pop {pc}
.align 2, 0
_08078178: .4byte gUnk_03003F80
_0807817C: .4byte gLinkEntity
thumb_func_start sub_08078180
sub_08078180: @ 0x08078180
push {r4, r5, r6, lr}
ldr r0, _080781C8 @ =gUnk_0200AF00
adds r1, r0, #0
adds r1, #0x2f
ldrb r1, [r1]
adds r6, r0, #0
cmp r1, #0
beq _08078192
b _080782BC
_08078192:
movs r4, #0
ldr r5, _080781CC @ =gUnk_03003F80
ldrb r0, [r5, #2]
cmp r0, #0
beq _0807819E
b _080782B6
_0807819E:
ldr r0, [r5, #0x30]
ldr r1, _080781D0 @ =0x00104D00
ands r0, r1
cmp r0, #0
beq _080781AA
b _080782B6
_080781AA:
ldrb r0, [r5, #5]
subs r0, #1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #3
bhi _080781D4
adds r1, r6, #0
adds r1, #0x2e
ldrb r0, [r1]
movs r4, #3
cmp r0, #0
bne _080781C4
b _080782B6
_080781C4:
adds r4, r0, #0
b _080782B6
.align 2, 0
_080781C8: .4byte gUnk_0200AF00
_080781CC: .4byte gUnk_03003F80
_080781D0: .4byte 0x00104D00
_080781D4:
adds r1, r6, #0
adds r1, #0x2d
ldrb r0, [r1]
cmp r0, #0
bne _080781C4
bl sub_080784E4
adds r1, r0, #0
ldr r0, [r1, #8]
adds r0, #0x39
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08078278
ldrb r0, [r1, #1]
subs r0, #1
cmp r0, #9
bhi _080782B6
lsls r0, r0, #2
ldr r1, _08078204 @ =_08078208
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08078204: .4byte _08078208
_08078208: @ jump table
.4byte _08078230 @ case 0
.4byte _080782B6 @ case 1
.4byte _08078254 @ case 2
.4byte _080782B6 @ case 3
.4byte _08078254 @ case 4
.4byte _08078254 @ case 5
.4byte _08078230 @ case 6
.4byte _0807823C @ case 7
.4byte _08078260 @ case 8
.4byte _0807826C @ case 9
_08078230:
movs r4, #7
ldr r6, _08078238 @ =gUnk_0200AF00
b _080782B6
.align 2, 0
_08078238: .4byte gUnk_0200AF00
_0807823C:
ldr r0, _0807824C @ =gUnk_02034350
ldrb r0, [r0, #6]
ldr r6, _08078250 @ =gUnk_0200AF00
cmp r0, #0
bne _080782B6
movs r4, #9
b _080782B6
.align 2, 0
_0807824C: .4byte gUnk_02034350
_08078250: .4byte gUnk_0200AF00
_08078254:
movs r4, #6
ldr r6, _0807825C @ =gUnk_0200AF00
b _080782B6
.align 2, 0
_0807825C: .4byte gUnk_0200AF00
_08078260:
movs r4, #5
ldr r6, _08078268 @ =gUnk_0200AF00
b _080782B6
.align 2, 0
_08078268: .4byte gUnk_0200AF00
_0807826C:
movs r4, #2
ldr r6, _08078274 @ =gUnk_0200AF00
b _080782B6
.align 2, 0
_08078274: .4byte gUnk_0200AF00
_08078278:
bl sub_080789A8
cmp r0, #0
beq _080782A4
adds r0, r5, #0
adds r0, #0xa8
ldrb r0, [r0]
cmp r0, #0xe
beq _080782BC
ldr r1, _080782A0 @ =gUnk_03003BE0
ldrb r0, [r1, #1]
movs r4, #9
cmp r0, #2
bne _080782B6
ldr r0, [r1, #8]
ldrb r0, [r0, #0x16]
cmp r0, #1
bne _080782B6
movs r4, #8
b _080782B6
.align 2, 0
_080782A0: .4byte gUnk_03003BE0
_080782A4:
adds r0, r5, #0
adds r0, #0xa8
ldrb r0, [r0]
cmp r0, #1
bne _080782B6
ldrb r0, [r5, #0x1a]
cmp r0, #0
bne _080782B6
movs r4, #0xc
_080782B6:
adds r0, r6, #0
adds r0, #0x2c
strb r4, [r0]
_080782BC:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_080782C0
sub_080782C0: @ 0x080782C0
push {r4, r5, r6, lr}
ldr r1, _080782D8 @ =gUnk_03003F80
adds r2, r1, #0
adds r2, #0xa8
ldrb r0, [r2]
adds r4, r1, #0
cmp r0, #0
bne _080782DC
adds r0, r4, #0
adds r0, #0xa9
ldrb r0, [r0]
b _080782DE
.align 2, 0
_080782D8: .4byte gUnk_03003F80
_080782DC:
ldrb r0, [r2]
_080782DE:
subs r0, #2
cmp r0, #0x14
bhi _08078348
lsls r0, r0, #2
ldr r1, _080782F0 @ =_080782F4
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080782F0: .4byte _080782F4
_080782F4: @ jump table
.4byte _080784AC @ case 0
.4byte _080784AC @ case 1
.4byte _08078348 @ case 2
.4byte _08078348 @ case 3
.4byte _08078348 @ case 4
.4byte _08078348 @ case 5
.4byte _08078348 @ case 6
.4byte _08078348 @ case 7
.4byte _08078348 @ case 8
.4byte _08078348 @ case 9
.4byte _080784AC @ case 10
.4byte _08078348 @ case 11
.4byte _08078348 @ case 12
.4byte _08078348 @ case 13
.4byte _08078348 @ case 14
.4byte _08078348 @ case 15
.4byte _080784AC @ case 16
.4byte _08078348 @ case 17
.4byte _08078348 @ case 18
.4byte _080784AC @ case 19
.4byte _080784AC @ case 20
_08078348:
adds r0, r4, #0
adds r0, #0x27
adds r2, r4, #0
adds r2, #0x26
ldrb r1, [r0]
ldrb r0, [r2]
orrs r0, r1
cmp r0, #0
beq _0807835C
b _080784AC
_0807835C:
ldrb r0, [r4, #0x12]
cmp r0, #1
bne _08078376
ldrb r0, [r4, #0x14]
cmp r0, #0
bne _0807836A
b _080784AC
_0807836A:
bl sub_08052B24
cmp r0, #0
beq _08078374
b _080784C4
_08078374:
b _080784AC
_08078376:
ldr r0, [r4, #0x30]
movs r1, #0x80
lsls r1, r1, #7
ands r0, r1
cmp r0, #0
beq _08078384
b _080784AC
_08078384:
bl sub_08052B24
cmp r0, #0
beq _0807838E
b _080784C4
_0807838E:
bl sub_080784E4
ldr r6, [r0, #8]
cmp r6, #0
bne _0807839A
b _080784AC
_0807839A:
ldrb r0, [r4, #5]
cmp r0, #0
beq _080783B6
cmp r0, #4
beq _080783A6
b _080784AC
_080783A6:
ldr r0, _08078400 @ =gLinkEntity
ldr r0, [r0, #0x74]
ldr r0, [r0, #0x54]
ldrh r1, [r0, #8]
ldr r0, _08078404 @ =0x00000206
cmp r1, r0
beq _080783B6
b _080784AC
_080783B6:
ldr r2, _08078408 @ =gUnk_03003F80
adds r0, r2, #0
adds r0, #0x92
ldrh r1, [r0]
movs r0, #0x80
lsls r0, r0, #5
ands r0, r1
adds r4, r2, #0
cmp r0, #0
beq _0807842C
ldr r5, _0807840C @ =gUnk_03003DF0
ldr r0, [r5, #4]
ldrb r0, [r0, #3]
subs r0, #1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x63
bhi _0807842C
movs r0, #0
bl sub_0801E738
ldr r0, _08078410 @ =gUnk_02002A40
ldr r1, _08078414 @ =0x0000012B
adds r0, r0, r1
ldrb r0, [r0]
cmp r0, #0
beq _08078418
ldr r1, [r5, #4]
ldrb r0, [r1, #3]
strb r0, [r5, #2]
ldr r0, [r1, #8]
adds r0, #0x39
movs r1, #2
strb r1, [r0]
movs r0, #7
strb r0, [r4, #0xc]
b _08078420
.align 2, 0
_08078400: .4byte gLinkEntity
_08078404: .4byte 0x00000206
_08078408: .4byte gUnk_03003F80
_0807840C: .4byte gUnk_03003DF0
_08078410: .4byte gUnk_02002A40
_08078414: .4byte 0x0000012B
_08078418:
ldr r0, _08078428 @ =0x00000B65
movs r1, #0
bl sub_08078AA8
_08078420:
movs r0, #0x13
bl sub_08078160
b _080784C4
.align 2, 0
_08078428: .4byte 0x00000B65
_0807842C:
adds r0, r4, #0
adds r0, #0x92
ldrh r1, [r0]
movs r0, #0x88
ands r0, r1
cmp r0, #0
beq _080784AC
ldr r0, _08078450 @ =gUnk_03003DF0
ldr r0, [r0, #4]
ldrb r0, [r0, #1]
cmp r0, #0xa
bhi _080784C4
lsls r0, r0, #2
ldr r1, _08078454 @ =_08078458
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08078450: .4byte gUnk_03003DF0
_08078454: .4byte _08078458
_08078458: @ jump table
.4byte _080784C4 @ case 0
.4byte _08078484 @ case 1
.4byte _080784C4 @ case 2
.4byte _0807848E @ case 3
.4byte _080784C4 @ case 4
.4byte _0807848E @ case 5
.4byte _08078484 @ case 6
.4byte _0807848E @ case 7
.4byte _080784A4 @ case 8
.4byte _08078484 @ case 9
.4byte _08078484 @ case 10
_08078484:
movs r0, #7
strb r0, [r4, #0xc]
movs r0, #0x13
bl sub_08078160
_0807848E:
adds r1, r6, #0
adds r1, #0x39
movs r2, #0
movs r0, #1
strb r0, [r1]
ldr r0, _080784A0 @ =gUnk_03003DF0
strb r2, [r0, #2]
b _080784C4
.align 2, 0
_080784A0: .4byte gUnk_03003DF0
_080784A4:
ldr r2, _080784B0 @ =gUnk_02034350
ldrb r0, [r2, #6]
cmp r0, #0
beq _080784B4
_080784AC:
movs r0, #0
b _080784C6
.align 2, 0
_080784B0: .4byte gUnk_02034350
_080784B4:
adds r1, r6, #0
adds r1, #0x39
movs r0, #1
strb r0, [r1]
ldrb r0, [r6, #0xa]
strb r0, [r2, #6]
ldrb r0, [r6, #0xb]
strb r0, [r2, #7]
_080784C4:
movs r0, #1
_080784C6:
pop {r4, r5, r6, pc}
thumb_func_start sub_080784C8
sub_080784C8: @ 0x080784C8
push {r4, lr}
ldr r4, _080784DC @ =gUnk_03003DF0
movs r1, #0xc4
lsls r1, r1, #1
adds r0, r4, #0
bl sub_0801D630
ldr r0, _080784E0 @ =gUnk_0811C000
str r0, [r4, #4]
pop {r4, pc}
.align 2, 0
_080784DC: .4byte gUnk_03003DF0
_080784E0: .4byte gUnk_0811C000
thumb_func_start sub_080784E4
sub_080784E4: @ 0x080784E4
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r0, _080784FC @ =gUnk_03003DF0
ldrb r1, [r0]
mov r8, r0
cmp r1, #0
beq _08078500
ldr r0, [r0, #4]
b _0807876A
.align 2, 0
_080784FC: .4byte gUnk_03003DF0
_08078500:
ldr r2, _08078528 @ =gUnk_03003F80
adds r0, r2, #0
adds r0, #0x27
adds r3, r2, #0
adds r3, #0x26
ldrb r1, [r0]
ldrb r0, [r3]
orrs r0, r1
cmp r0, #0
bne _08078598
adds r1, r2, #0
adds r1, #0xa8
ldrb r0, [r1]
cmp r0, #0
bne _0807852C
adds r0, r2, #0
adds r0, #0xa9
ldrb r0, [r0]
b _0807852E
.align 2, 0
_08078528: .4byte gUnk_03003F80
_0807852C:
ldrb r0, [r1]
_0807852E:
subs r0, #2
cmp r0, #0x14
bhi _080785B0
lsls r0, r0, #2
ldr r1, _08078540 @ =_08078544
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08078540: .4byte _08078544
_08078544: @ jump table
.4byte _08078598 @ case 0
.4byte _08078598 @ case 1
.4byte _080785B0 @ case 2
.4byte _080785B0 @ case 3
.4byte _080785B0 @ case 4
.4byte _080785B0 @ case 5
.4byte _080785B0 @ case 6
.4byte _080785B0 @ case 7
.4byte _080785B0 @ case 8
.4byte _080785B0 @ case 9
.4byte _080785B0 @ case 10
.4byte _080785B0 @ case 11
.4byte _080785B0 @ case 12
.4byte _080785B0 @ case 13
.4byte _080785B0 @ case 14
.4byte _080785B0 @ case 15
.4byte _08078598 @ case 16
.4byte _080785B0 @ case 17
.4byte _080785B0 @ case 18
.4byte _08078598 @ case 19
.4byte _08078598 @ case 20
_08078598:
movs r0, #0xff
mov r1, r8
strb r0, [r1, #3]
ldr r0, _080785AC @ =gUnk_0811C000
str r0, [r1, #4]
movs r1, #1
mov r2, r8
strb r1, [r2]
b _0807876A
.align 2, 0
_080785AC: .4byte gUnk_0811C000
_080785B0:
ldr r0, [r2, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _080785F0
bl sub_08052734
cmp r0, #0
beq _080785C4
movs r0, #1
_080785C4:
adds r7, r0, #0
bl sub_08052764
cmp r0, #0
beq _080785D2
movs r0, #2
orrs r7, r0
_080785D2:
ldr r3, _080785E4 @ =gLinkEntity
ldrb r0, [r3, #0x14]
movs r1, #6
ands r1, r0
ldr r0, _080785E8 @ =gUnk_0811C00C
adds r2, r1, r0
ldr r5, _080785EC @ =gUnk_03003DF0
mov r8, r5
b _080785FE
.align 2, 0
_080785E4: .4byte gLinkEntity
_080785E8: .4byte gUnk_0811C00C
_080785EC: .4byte gUnk_03003DF0
_080785F0:
ldr r3, _08078624 @ =gLinkEntity
ldrb r0, [r3, #0x14]
movs r1, #6
ands r1, r0
ldr r0, _08078628 @ =gUnk_0811C014
adds r2, r1, r0
movs r7, #0
_080785FE:
mov ip, r3
mov r0, ip
movs r3, #0x2e
ldrsh r1, [r0, r3]
movs r0, #0
ldrsb r0, [r2, r0]
adds r1, r1, r0
mov sl, r1
mov r5, ip
movs r0, #0x32
ldrsh r1, [r5, r0]
movs r0, #1
ldrsb r0, [r2, r0]
adds r1, r1, r0
mov sb, r1
movs r6, #0
ldr r5, _0807862C @ =gUnk_03003DF8
b _08078724
.align 2, 0
_08078624: .4byte gLinkEntity
_08078628: .4byte gUnk_0811C014
_0807862C: .4byte gUnk_03003DF8
_08078630:
ldrb r1, [r5]
movs r3, #1
adds r0, r3, #0
ands r0, r1
cmp r0, #0
bne _0807864E
mov r0, ip
adds r0, #0x38
adds r1, r2, #0
adds r1, #0x38
ldrb r2, [r0]
ldrb r0, [r1]
ands r0, r2
cmp r0, #0
beq _08078714
_0807864E:
ldrb r1, [r5, #2]
mov r2, ip
ldrb r0, [r2, #0x14]
lsrs r0, r0, #1
asrs r1, r0
ands r1, r3
cmp r1, #0
bne _08078714
ldrb r0, [r5, #1]
cmp r0, #0xa
bhi _080786D4
lsls r0, r0, #2
ldr r1, _08078670 @ =_08078674
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08078670: .4byte _08078674
_08078674: @ jump table
.4byte _08078714 @ case 0
.4byte _080786A0 @ case 1
.4byte _080786C4 @ case 2
.4byte _080786A0 @ case 3
.4byte _080786A0 @ case 4
.4byte _080786C8 @ case 5
.4byte _080786CC @ case 6
.4byte _080786B4 @ case 7
.4byte _080786A0 @ case 8
.4byte _080786A0 @ case 9
.4byte _080786D4 @ case 10
_080786A0:
ldr r0, _080786B0 @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _08078714
b _080786D4
.align 2, 0
_080786B0: .4byte gUnk_03003F80
_080786B4:
ldr r0, _080786C0 @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
b _080786D0
.align 2, 0
_080786C0: .4byte gUnk_03003F80
_080786C4:
ldrb r0, [r5, #3]
b _080786D0
_080786C8:
movs r0, #1
b _080786CE
_080786CC:
movs r0, #2
_080786CE:
ands r0, r7
_080786D0:
cmp r0, #0
beq _08078714
_080786D4:
ldr r0, [r5, #8]
movs r1, #0x2e
ldrsh r3, [r0, r1]
movs r2, #0x32
ldrsh r4, [r0, r2]
ldr r1, [r5, #4]
cmp r1, #0
beq _080786F4
movs r0, #0
ldrsb r0, [r1, r0]
adds r3, r3, r0
movs r0, #1
ldrsb r0, [r1, r0]
adds r4, r4, r0
adds r2, r1, #2
b _080786F8
_080786F4:
ldr r0, [r0, #0x48]
adds r2, r0, #6
_080786F8:
ldrb r1, [r2]
mov r5, sl
adds r0, r1, r5
subs r0, r0, r3
lsls r1, r1, #1
cmp r0, r1
bhs _08078714
ldrb r1, [r2, #1]
mov r2, sb
adds r0, r1, r2
subs r0, r0, r4
lsls r1, r1, #1
cmp r0, r1
blo _0807873A
_08078714:
adds r6, #1
cmp r6, #0x1f
bhi _08078758
lsls r0, r6, #1
adds r0, r0, r6
lsls r0, r0, #2
ldr r3, _08078754 @ =gUnk_03003DF8
adds r5, r0, r3
_08078724:
ldr r2, [r5, #8]
cmp r2, #0
beq _08078714
adds r0, r2, #0
adds r0, #0x39
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
blt _0807873A
b _08078630
_0807873A:
cmp r6, #0x1f
bhi _08078758
mov r5, r8
strb r6, [r5, #3]
lsls r0, r6, #1
adds r0, r0, r6
lsls r0, r0, #2
mov r1, r8
adds r1, #8
adds r0, r0, r1
str r0, [r5, #4]
b _08078762
.align 2, 0
_08078754: .4byte gUnk_03003DF8
_08078758:
movs r0, #0xff
mov r1, r8
strb r0, [r1, #3]
ldr r0, _08078774 @ =gUnk_0811C000
str r0, [r1, #4]
_08078762:
movs r0, #1
mov r2, r8
strb r0, [r2]
ldr r0, [r2, #4]
_0807876A:
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08078774: .4byte gUnk_0811C000
thumb_func_start sub_08078778
sub_08078778: @ 0x08078778
push {lr}
movs r1, #1
movs r2, #0
bl sub_0807887C
pop {pc}
thumb_func_start sub_08078784
sub_08078784: @ 0x08078784
push {lr}
adds r2, r1, #0
movs r1, #1
bl sub_0807887C
pop {pc}
thumb_func_start sub_08078790
sub_08078790: @ 0x08078790
push {lr}
adds r2, r1, #0
movs r1, #2
bl sub_0807887C
pop {pc}
thumb_func_start sub_0807879C
sub_0807879C: @ 0x0807879C
push {lr}
movs r1, #7
movs r2, #0
bl sub_0807887C
pop {pc}
thumb_func_start sub_080787A8
sub_080787A8: @ 0x080787A8
push {lr}
adds r2, r1, #0
movs r1, #7
bl sub_0807887C
pop {pc}
thumb_func_start sub_080787B4
sub_080787B4: @ 0x080787B4
push {lr}
movs r1, #9
movs r2, #0
bl sub_0807887C
pop {pc}
thumb_func_start sub_080787C0
sub_080787C0: @ 0x080787C0
push {lr}
movs r1, #0xa
movs r2, #0
bl sub_0807887C
pop {pc}
thumb_func_start sub_080787CC
sub_080787CC: @ 0x080787CC
push {lr}
movs r1, #5
movs r2, #0
bl sub_0807887C
pop {pc}
thumb_func_start sub_080787D8
sub_080787D8: @ 0x080787D8
push {lr}
movs r1, #8
movs r2, #0
bl sub_0807887C
adds r2, r0, #0
cmp r2, #0
blt _080787F6
ldr r0, _080787FC @ =gUnk_03003DF0
lsls r1, r2, #1
adds r1, r1, r2
lsls r1, r1, #2
adds r1, r1, r0
movs r0, #0xbe
strb r0, [r1, #0xa]
_080787F6:
adds r0, r2, #0
pop {pc}
.align 2, 0
_080787FC: .4byte gUnk_03003DF0
thumb_func_start sub_08078800
sub_08078800: @ 0x08078800
push {lr}
movs r1, #6
movs r2, #0
bl sub_0807887C
adds r2, r0, #0
cmp r2, #0
blt _0807881E
ldr r0, _08078824 @ =gUnk_03003DF0
lsls r1, r2, #1
adds r1, r1, r2
lsls r1, r1, #2
adds r1, r1, r0
movs r0, #0xbe
strb r0, [r1, #0xa]
_0807881E:
adds r0, r2, #0
pop {pc}
.align 2, 0
_08078824: .4byte gUnk_03003DF0
thumb_func_start sub_08078828
sub_08078828: @ 0x08078828
push {lr}
movs r1, #3
movs r2, #0
bl sub_0807887C
adds r2, r0, #0
cmp r2, #0
blt _08078846
ldr r0, _0807884C @ =gUnk_03003DF0
lsls r1, r2, #1
adds r1, r1, r2
lsls r1, r1, #2
adds r1, r1, r0
movs r0, #0xbe
strb r0, [r1, #0xa]
_08078846:
adds r0, r2, #0
pop {pc}
.align 2, 0
_0807884C: .4byte gUnk_03003DF0
thumb_func_start sub_08078850
sub_08078850: @ 0x08078850
push {r4, r5, r6, lr}
adds r4, r1, #0
adds r5, r2, #0
adds r6, r3, #0
bl sub_08078904
adds r2, r0, #0
cmp r2, #0
blt _08078876
ldr r0, _08078878 @ =gUnk_03003DF0
lsls r1, r2, #1
adds r1, r1, r2
lsls r1, r1, #2
adds r2, r1, r0
strb r4, [r2, #8]
strb r5, [r2, #0xa]
adds r0, #0xc
adds r1, r1, r0
str r6, [r1]
_08078876:
pop {r4, r5, r6, pc}
.align 2, 0
_08078878: .4byte gUnk_03003DF0
thumb_func_start sub_0807887C
sub_0807887C: @ 0x0807887C
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
adds r7, r1, #0
adds r6, r2, #0
adds r1, r5, #0
adds r1, #0x39
movs r0, #0
strb r0, [r1]
adds r0, r5, #0
bl sub_08078904
adds r4, r0, #0
cmp r4, #0
bge _080788A4
movs r0, #0
bl sub_08078904
adds r4, r0, #0
cmp r4, #0
blt _080788BA
_080788A4:
ldr r2, _080788DC @ =gUnk_03003DF0
lsls r1, r4, #1
adds r1, r1, r4
lsls r1, r1, #2
adds r0, r2, #0
adds r0, #0x10
adds r0, r1, r0
str r5, [r0]
adds r1, r1, r2
strb r7, [r1, #9]
strb r6, [r1, #0xb]
_080788BA:
cmp r6, #0
beq _080788D6
movs r0, #6
movs r1, #9
movs r2, #6
bl sub_0805EB00
cmp r0, #0
bne _080788D6
movs r0, #9
movs r1, #0
movs r2, #0
bl CreateObject
_080788D6:
adds r0, r4, #0
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080788DC: .4byte gUnk_03003DF0
thumb_func_start sub_080788E0
sub_080788E0: @ 0x080788E0
push {lr}
bl sub_08078904
adds r1, r0, #0
cmp r1, #0
blt _080788FC
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _08078900 @ =gUnk_03003DF8
adds r0, r0, r1
movs r1, #0xc
bl sub_0801D630
_080788FC:
pop {pc}
.align 2, 0
_08078900: .4byte gUnk_03003DF8
thumb_func_start sub_08078904
sub_08078904: @ 0x08078904
push {lr}
adds r3, r0, #0
movs r1, #0
ldr r0, _0807891C @ =gUnk_03003DF0
adds r2, r0, #0
adds r2, #0x10
_08078910:
ldr r0, [r2]
cmp r3, r0
bne _08078920
adds r0, r1, #0
b _0807892C
.align 2, 0
_0807891C: .4byte gUnk_03003DF0
_08078920:
adds r2, #0xc
adds r1, #1
cmp r1, #0x1f
bls _08078910
movs r0, #1
rsbs r0, r0, #0
_0807892C:
pop {pc}
.align 2, 0
thumb_func_start sub_08078930
sub_08078930: @ 0x08078930
push {lr}
adds r3, r0, #0
ldr r2, _08078950 @ =gUnk_03003BE0
ldrb r0, [r2, #2]
cmp r0, #0x1f
bhi _0807894C
lsls r0, r0, #2
adds r1, r2, #0
adds r1, #0xc
adds r0, r0, r1
str r3, [r0]
ldrb r0, [r2, #2]
adds r0, #1
strb r0, [r2, #2]
_0807894C:
pop {pc}
.align 2, 0
_08078950: .4byte gUnk_03003BE0
thumb_func_start sub_08078954
sub_08078954: @ 0x08078954
push {r4, r5, lr}
adds r5, r0, #0
movs r4, #0
ldr r0, _08078970 @ =gUnk_03003BE0
ldrb r1, [r0, #2]
adds r2, r0, #0
cmp r4, r1
bhs _080789A6
ldr r0, [r2, #0xc]
cmp r0, r5
bne _08078974
subs r0, r1, #1
b _0807898C
.align 2, 0
_08078970: .4byte gUnk_03003BE0
_08078974:
adds r4, #1
ldrb r3, [r2, #2]
cmp r4, r3
bhs _080789A6
lsls r0, r4, #2
adds r1, r2, #0
adds r1, #0xc
adds r0, r0, r1
ldr r0, [r0]
cmp r0, r5
bne _08078974
subs r0, r3, #1
_0807898C:
strb r0, [r2, #2]
ldrb r0, [r2, #2]
cmp r4, r0
bhs _080789A6
lsls r0, r4, #2
adds r0, #0xc
adds r1, r0, r2
_0807899A:
ldr r0, [r1, #4]
stm r1!, {r0}
adds r4, #1
ldrb r0, [r2, #2]
cmp r4, r0
blo _0807899A
_080789A6:
pop {r4, r5, pc}
thumb_func_start sub_080789A8
sub_080789A8: @ 0x080789A8
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
ldr r1, _080789BC @ =gUnk_03003BE0
ldrb r0, [r1]
cmp r0, #0
beq _080789C0
ldrb r0, [r1, #1]
b _08078A88
.align 2, 0
_080789BC: .4byte gUnk_03003BE0
_080789C0:
ldr r0, _08078A5C @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _08078A56
ldr r0, _08078A60 @ =gLinkEntity
bl sub_080002D0
adds r4, r0, #0
cmp r4, #0xf
bls _080789E6
ldr r0, _08078A64 @ =gUnk_080084BC
adds r1, r4, #0
subs r1, #0x10
adds r1, r1, r0
ldrb r0, [r1]
cmp r0, #0xf
beq _08078A56
_080789E6:
ldr r0, _08078A5C @ =gUnk_03003F80
ldrb r0, [r0, #0x12]
cmp r0, #0x12
beq _08078A56
ldr r3, _08078A68 @ =gUnk_03003BE0
movs r0, #1
strb r0, [r3]
ldrb r4, [r3, #2]
cmp r4, #0
beq _08078A2E
ldr r2, _08078A60 @ =gLinkEntity
ldrb r1, [r2, #0x14]
movs r0, #6
ands r0, r1
ldr r1, _08078A6C @ =gUnk_0811BFE0
adds r6, r0, r1
adds r7, r2, #0
adds r3, #8
mov r8, r3
_08078A0C:
lsls r0, r4, #2
mov r1, r8
adds r5, r0, r1
ldr r1, [r5]
cmp r1, #0
beq _08078A26
ldrb r2, [r6]
ldrb r3, [r6, #1]
adds r0, r7, #0
bl sub_0807A180
cmp r0, #0
bne _08078A74
_08078A26:
subs r4, #1
ldr r7, _08078A60 @ =gLinkEntity
cmp r4, #0
bne _08078A0C
_08078A2E:
ldr r0, _08078A60 @ =gLinkEntity
ldrb r1, [r0, #0x14]
movs r2, #6
ands r2, r1
ldr r1, _08078A70 @ =gUnk_08007DF4
adds r2, r2, r1
movs r1, #0
ldrsb r1, [r2, r1]
ldrb r2, [r2, #1]
lsls r2, r2, #0x18
asrs r2, r2, #0x18
bl sub_0800029C
ldr r4, _08078A68 @ =gUnk_03003BE0
strh r0, [r4, #4]
movs r1, #6
bl sub_0806FC24
cmp r0, #0
bne _08078A84
_08078A56:
movs r0, #0
b _08078A88
.align 2, 0
_08078A5C: .4byte gUnk_03003F80
_08078A60: .4byte gLinkEntity
_08078A64: .4byte gUnk_080084BC
_08078A68: .4byte gUnk_03003BE0
_08078A6C: .4byte gUnk_0811BFE0
_08078A70: .4byte gUnk_08007DF4
_08078A74:
mov r0, r8
subs r0, #8
ldr r1, [r5]
str r1, [r0, #8]
movs r1, #2
strb r1, [r0, #1]
movs r0, #2
b _08078A88
_08078A84:
movs r0, #1
strb r0, [r4, #1]
_08078A88:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_08078A90
sub_08078A90: @ 0x08078A90
push {lr}
adds r1, r0, #0
ldr r0, _08078AA4 @ =gUnk_03003F80
adds r2, r0, #0
adds r2, #0x8b
ldrb r0, [r2]
cmp r0, #3
beq _08078AA2
strb r1, [r2]
_08078AA2:
pop {pc}
.align 2, 0
_08078AA4: .4byte gUnk_03003F80
thumb_func_start sub_08078AA8
sub_08078AA8: @ 0x08078AA8
ldr r3, _08078AB8 @ =gUnk_03003F80
movs r2, #0x16
strb r2, [r3, #0xc]
ldr r2, _08078ABC @ =gUnk_030010A0
strh r0, [r2, #0x36]
adds r2, #0x35
strb r1, [r2]
bx lr
.align 2, 0
_08078AB8: .4byte gUnk_03003F80
_08078ABC: .4byte gUnk_030010A0
thumb_func_start sub_08078AC0
sub_08078AC0: @ 0x08078AC0
push {r4, lr}
ldr r3, _08078AEC @ =gUnk_03003F80
mov ip, r3
movs r3, #0xf
mov r4, ip
strb r3, [r4, #0xc]
mov r3, ip
adds r3, #0x38
strb r0, [r3]
rsbs r0, r1, #0
orrs r0, r1
lsrs r0, r0, #0x1f
mov r1, ip
adds r1, #0x39
strb r0, [r1]
rsbs r0, r2, #0
orrs r0, r2
lsrs r0, r0, #0x1f
adds r1, #1
strb r0, [r1]
pop {r4, pc}
.align 2, 0
_08078AEC: .4byte gUnk_03003F80
thumb_func_start sub_08078AF0
sub_08078AF0: @ 0x08078AF0
push {r4, lr}
ldr r3, _08078B40 @ =gUnk_03003F80
mov ip, r3
adds r3, #0x38
movs r4, #0
strb r1, [r3]
mov r1, ip
adds r1, #0x39
strb r2, [r1]
adds r1, #1
strb r4, [r1]
movs r1, #8
mov r2, ip
strb r1, [r2, #0xc]
adds r2, #0xa8
movs r1, #0x15
strb r1, [r2]
mov r1, ip
adds r1, #0x26
strb r4, [r1]
movs r1, #1
mov r3, ip
strb r1, [r3, #0x14]
ldr r2, _08078B44 @ =gLinkEntity
str r0, [r2, #0x54]
ldrb r1, [r2, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r2, #0x10]
ldrb r1, [r2, #0x11]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #2
orrs r0, r1
strb r0, [r2, #0x11]
bl sub_0807A108
pop {r4, pc}
.align 2, 0
_08078B40: .4byte gUnk_03003F80
_08078B44: .4byte gLinkEntity
thumb_func_start sub_08078B48
sub_08078B48: @ 0x08078B48
push {lr}
ldr r1, _08078B80 @ =gUnk_03003F80
ldrb r0, [r1, #7]
movs r2, #0x80
orrs r0, r2
strb r0, [r1, #7]
ldrb r0, [r1, #0xb]
orrs r0, r2
strb r0, [r1, #0xb]
ldrb r0, [r1, #0xa]
orrs r2, r0
strb r2, [r1, #0xa]
adds r2, r1, #0
adds r2, #0x27
movs r0, #2
strb r0, [r2]
adds r0, r1, #0
adds r0, #0xa8
ldrb r0, [r0]
subs r0, #4
adds r2, r1, #0
cmp r0, #0x19
bhi _08078BF8
lsls r0, r0, #2
ldr r1, _08078B84 @ =_08078B88
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08078B80: .4byte gUnk_03003F80
_08078B84: .4byte _08078B88
_08078B88: @ jump table
.4byte _08078C04 @ case 0
.4byte _08078C04 @ case 1
.4byte _08078BF8 @ case 2
.4byte _08078BF8 @ case 3
.4byte _08078BF8 @ case 4
.4byte _08078BF0 @ case 5
.4byte _08078BF8 @ case 6
.4byte _08078BF8 @ case 7
.4byte _08078BF8 @ case 8
.4byte _08078BF8 @ case 9
.4byte _08078BF8 @ case 10
.4byte _08078BF8 @ case 11
.4byte _08078BF8 @ case 12
.4byte _08078BF8 @ case 13
.4byte _08078BF8 @ case 14
.4byte _08078BF8 @ case 15
.4byte _08078BF8 @ case 16
.4byte _08078BF8 @ case 17
.4byte _08078BF8 @ case 18
.4byte _08078BF8 @ case 19
.4byte _08078BF8 @ case 20
.4byte _08078C04 @ case 21
.4byte _08078C04 @ case 22
.4byte _08078BF8 @ case 23
.4byte _08078BF8 @ case 24
.4byte _08078C04 @ case 25
_08078BF0:
ldr r0, [r2, #0x30]
ldr r1, _08078C18 @ =0xFFFBFFFF
ands r0, r1
str r0, [r2, #0x30]
_08078BF8:
ldr r0, _08078C1C @ =gUnk_02034350
ldrb r0, [r0, #6]
cmp r0, #0
bne _08078C04
movs r0, #1
strb r0, [r2, #0x1a]
_08078C04:
ldr r0, _08078C20 @ =gLinkEntity
adds r0, #0x3d
movs r1, #0xfe
strb r1, [r0]
adds r1, r2, #0
adds r1, #0x8a
movs r0, #2
strb r0, [r1]
pop {pc}
.align 2, 0
_08078C18: .4byte 0xFFFBFFFF
_08078C1C: .4byte gUnk_02034350
_08078C20: .4byte gLinkEntity
thumb_func_start sub_08078C24
sub_08078C24: @ 0x08078C24
push {lr}
ldr r3, _08078CAC @ =gUnk_03003F80
movs r2, #0
strb r2, [r3]
strb r2, [r3, #1]
strb r2, [r3, #2]
strb r2, [r3, #3]
strb r2, [r3, #4]
strb r2, [r3, #5]
strb r2, [r3, #6]
strb r2, [r3, #7]
movs r0, #0
strh r2, [r3, #8]
strb r0, [r3, #0xa]
strb r0, [r3, #0xb]
movs r1, #0x35
adds r1, r1, r3
mov ip, r1
adds r1, r3, #0
adds r1, #0x36
strb r0, [r1]
strb r0, [r3, #0xc]
strb r0, [r3, #0xd]
strb r0, [r3, #0xe]
strb r0, [r3, #0x11]
strb r0, [r3, #0x12]
strb r0, [r3, #0x13]
strb r0, [r3, #0x14]
strb r0, [r3, #0x1b]
strb r0, [r3, #0x1e]
strb r0, [r3, #0x1f]
subs r1, #0x16
strb r0, [r1]
adds r1, #1
strb r0, [r1]
strh r2, [r3, #0x22]
strh r2, [r3, #0x24]
adds r1, #5
strb r0, [r1]
str r2, [r3, #0x2c]
adds r1, #0x5a
strh r2, [r1]
mov r1, ip
strb r0, [r1]
str r2, [r3, #0x30]
adds r1, r3, #0
adds r1, #0x38
strb r0, [r1]
adds r1, #1
strb r0, [r1]
adds r1, #1
strb r0, [r1]
adds r1, #5
strb r0, [r1]
subs r1, #3
strb r0, [r1]
movs r0, #1
rsbs r0, r0, #0
adds r1, #4
movs r2, #0x40
bl _DmaFill32
ldr r0, _08078CB0 @ =gUnk_03003DF0
movs r1, #0xc4
lsls r1, r1, #1
bl sub_0801D630
pop {pc}
.align 2, 0
_08078CAC: .4byte gUnk_03003F80
_08078CB0: .4byte gUnk_03003DF0
thumb_func_start sub_08078CB4
sub_08078CB4: @ 0x08078CB4
push {lr}
ldr r0, _08078CCC @ =gUnk_03003F80
ldrb r0, [r0, #5]
subs r0, #3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bhi _08078CC8
bl sub_08078D60
_08078CC8:
pop {pc}
.align 2, 0
_08078CCC: .4byte gUnk_03003F80
thumb_func_start sub_08078CD0
sub_08078CD0: @ 0x08078CD0
push {r4, r5, lr}
adds r5, r0, #0
ldr r4, [r5, #0x70]
ldrh r0, [r5, #0x36]
subs r0, #1
strh r0, [r4, #0x36]
ldrb r1, [r5, #0x1b]
lsrs r1, r1, #6
lsls r1, r1, #6
ldrb r2, [r4, #0x1b]
movs r0, #0x3f
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x1b]
adds r0, r5, #0
adds r0, #0x38
ldrb r1, [r0]
adds r0, r4, #0
adds r0, #0x38
strb r1, [r0]
ldr r1, _08078D28 @ =gUnk_0811C01C
ldr r0, _08078D2C @ =gUnk_03003F80
ldr r0, [r0, #0x2c]
ldrb r0, [r0, #0x1e]
adds r0, r0, r1
ldrb r2, [r0]
ldr r3, _08078D30 @ =gUnk_0811C0B0
ldrb r1, [r4, #0x1c]
movs r0, #0x30
ands r0, r1
lsrs r0, r0, #2
adds r0, r0, r3
lsls r2, r2, #1
ldr r0, [r0]
adds r2, r0, r2
ldrb r0, [r5, #0x18]
lsls r0, r0, #0x19
cmp r0, #0
bge _08078D34
movs r1, #0
ldrsb r1, [r2, r1]
ldrh r0, [r5, #0x2e]
subs r0, r0, r1
b _08078D3C
.align 2, 0
_08078D28: .4byte gUnk_0811C01C
_08078D2C: .4byte gUnk_03003F80
_08078D30: .4byte gUnk_0811C0B0
_08078D34:
movs r0, #0
ldrsb r0, [r2, r0]
ldrh r1, [r5, #0x2e]
adds r0, r0, r1
_08078D3C:
strh r0, [r4, #0x2e]
movs r0, #1
ldrsb r0, [r2, r0]
ldrh r1, [r5, #0x32]
adds r0, r0, r1
strh r0, [r4, #0x32]
adds r0, r5, #0
movs r1, #0
adds r2, r4, #0
bl sub_0806FEBC
ldr r1, [r4, #0x50]
cmp r1, #0
beq _08078D5E
adds r0, r4, #0
bl sub_0806FA24
_08078D5E:
pop {r4, r5, pc}
thumb_func_start sub_08078D60
sub_08078D60: @ 0x08078D60
push {r4, r5, r6, lr}
ldr r1, _08078DCC @ =gLinkEntity
ldr r0, [r1, #0x74]
ldr r4, [r0, #0x54]
ldrb r0, [r4, #0xc]
adds r6, r1, #0
cmp r0, #2
beq _08078D72
b _08078E82
_08078D72:
adds r0, r6, #0
adds r0, #0x63
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r1, [r6, #0x36]
adds r0, r0, r1
strh r0, [r4, #0x36]
ldrb r1, [r6, #0x1b]
lsrs r1, r1, #6
lsls r1, r1, #6
ldrb r2, [r4, #0x1b]
movs r0, #0x3f
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x1b]
adds r0, r6, #0
adds r0, #0x38
ldrb r1, [r0]
adds r0, r4, #0
adds r0, #0x38
strb r1, [r0]
adds r0, r6, #0
adds r0, #0x5a
ldrb r0, [r0]
movs r2, #0x7f
ands r2, r0
ldr r1, _08078DD0 @ =gUnk_0811C0E8
ldrb r0, [r4, #0x16]
lsrs r0, r0, #4
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
ldrb r0, [r6, #0x18]
lsls r0, r0, #0x19
cmp r0, #0
bge _08078DD4
adds r2, r1, r2
movs r1, #0
ldrsb r1, [r2, r1]
ldrh r0, [r6, #0x2e]
subs r0, r0, r1
strh r0, [r4, #0x2e]
adds r1, r2, #0
b _08078DE0
.align 2, 0
_08078DCC: .4byte gLinkEntity
_08078DD0: .4byte gUnk_0811C0E8
_08078DD4:
adds r1, r1, r2
movs r0, #0
ldrsb r0, [r1, r0]
ldrh r2, [r6, #0x2e]
adds r0, r0, r2
strh r0, [r4, #0x2e]
_08078DE0:
movs r0, #1
ldrsb r0, [r1, r0]
ldrh r1, [r4, #0x36]
adds r0, r0, r1
strh r0, [r4, #0x36]
adds r5, r6, #0
ldrh r0, [r5, #0x32]
strh r0, [r4, #0x32]
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FAB0
ldr r0, _08078E34 @ =gUnk_03003F80
ldrb r0, [r0, #5]
cmp r0, #4
bne _08078E4C
ldrb r1, [r5, #0x19]
lsrs r1, r1, #6
lsls r1, r1, #6
ldrb r2, [r4, #0x19]
movs r0, #0x3f
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x19]
adds r0, r4, #0
bl sub_0806F8DC
ldrb r1, [r4, #0x16]
movs r0, #0xf
ands r0, r1
cmp r0, #2
bne _08078E82
ldr r0, _08078E38 @ =gUnk_030010A0
ldr r1, [r0]
movs r0, #3
ands r1, r0
cmp r1, #1
beq _08078E3C
cmp r1, #3
beq _08078E44
b _08078E82
.align 2, 0
_08078E34: .4byte gUnk_03003F80
_08078E38: .4byte gUnk_030010A0
_08078E3C:
ldrh r0, [r4, #0x2e]
adds r0, #1
strh r0, [r4, #0x2e]
b _08078E82
_08078E44:
ldrh r0, [r4, #0x2e]
subs r0, #1
strh r0, [r4, #0x2e]
b _08078E82
_08078E4C:
ldrb r0, [r5, #0x14]
lsrs r0, r0, #1
cmp r0, #0
beq _08078E62
adds r0, r5, #0
adds r0, #0x29
ldrb r1, [r0]
lsls r1, r1, #0x1d
lsrs r1, r1, #0x1d
subs r1, #1
b _08078E6E
_08078E62:
adds r0, r6, #0
adds r0, #0x29
ldrb r1, [r0]
lsls r1, r1, #0x1d
lsrs r1, r1, #0x1d
adds r1, #1
_08078E6E:
adds r3, r4, #0
adds r3, #0x29
movs r0, #7
ands r1, r0
ldrb r2, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
_08078E82:
pop {r4, r5, r6, pc}
thumb_func_start sub_08078E84
sub_08078E84: @ 0x08078E84
push {r4, r5, lr}
adds r5, r0, #0
adds r4, r1, #0
ldr r0, _08078ED0 @ =gLinkEntity
cmp r4, r0
bne _08078EAC
adds r0, r5, #0
bl sub_08079BD8
adds r0, r4, #0
adds r0, #0x62
ldrb r0, [r0]
adds r1, r5, #0
adds r1, #0x62
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x63
ldrb r0, [r0]
adds r1, #1
strb r0, [r1]
_08078EAC:
ldr r0, _08078ED4 @ =gUnk_080029B4
ldrh r2, [r4, #0x12]
lsls r2, r2, #4
adds r0, #4
adds r2, r2, r0
ldrb r1, [r4, #0x1e]
lsls r1, r1, #2
ldr r0, [r2]
adds r0, r0, r1
ldrb r0, [r0, #1]
cmp r0, #0
beq _08078ED8
adds r0, r4, #0
movs r1, #1
adds r2, r5, #0
bl sub_0806FEBC
b _08078EE2
.align 2, 0
_08078ED0: .4byte gLinkEntity
_08078ED4: .4byte gUnk_080029B4
_08078ED8:
adds r0, r4, #0
movs r1, #3
adds r2, r5, #0
bl sub_0806FEBC
_08078EE2:
pop {r4, r5, pc}
thumb_func_start sub_08078EE4
sub_08078EE4: @ 0x08078EE4
ldr r2, _08078EF4 @ =gLinkEntity
ldr r1, _08078EF8 @ =gUnk_03003F80
ldrh r0, [r1, #0x16]
strh r0, [r2, #0x2e]
ldrh r0, [r1, #0x18]
strh r0, [r2, #0x32]
bx lr
.align 2, 0
_08078EF4: .4byte gLinkEntity
_08078EF8: .4byte gUnk_03003F80
thumb_func_start sub_08078EFC
sub_08078EFC: @ 0x08078EFC
push {lr}
ldr r3, _08078F18 @ =gUnk_03003F80
ldrb r2, [r3, #0xc]
cmp r2, #0
beq _08078F20
ldr r0, _08078F1C @ =gLinkEntity
movs r1, #0
strb r2, [r0, #0xc]
strb r1, [r0, #0xd]
strb r1, [r3, #0xc]
bl sub_08070680
movs r0, #1
b _08078F22
.align 2, 0
_08078F18: .4byte gUnk_03003F80
_08078F1C: .4byte gLinkEntity
_08078F20:
movs r0, #0
_08078F22:
pop {pc}
thumb_func_start sub_08078F24
sub_08078F24: @ 0x08078F24
push {r4, lr}
ldr r4, _08078F38 @ =gUnk_03003F80
ldrb r3, [r4, #0xd]
movs r0, #0x80
ands r0, r3
cmp r0, #0
beq _08078F3C
bl sub_08078F60
b _08078F5A
.align 2, 0
_08078F38: .4byte gUnk_03003F80
_08078F3C:
ldr r2, _08078F5C @ =gUnk_080C9160
lsls r0, r3, #4
adds r0, r0, r2
ldrh r1, [r0]
adds r0, r4, #0
adds r0, #0x8c
strh r1, [r0]
lsls r0, r3, #4
adds r0, #0x80
adds r0, r0, r2
ldrh r0, [r0]
rsbs r0, r0, #0
adds r1, r4, #0
adds r1, #0x8e
strh r0, [r1]
_08078F5A:
pop {r4, pc}
.align 2, 0
_08078F5C: .4byte gUnk_080C9160
thumb_func_start sub_08078F60
sub_08078F60: @ 0x08078F60
ldr r0, _08078F70 @ =gUnk_03003F80
adds r1, r0, #0
adds r1, #0x8c
movs r2, #0
strh r2, [r1]
adds r0, #0x8e
strh r2, [r0]
bx lr
.align 2, 0
_08078F70: .4byte gUnk_03003F80
thumb_func_start sub_08078F74
sub_08078F74: @ 0x08078F74
push {lr}
adds r2, r0, #0
ldr r0, _08078FA4 @ =gUnk_02033A90
ldrb r0, [r0, #0x18]
cmp r0, #3
bne _08078FAC
ldr r3, _08078FA8 @ =gUnk_03003F80
adds r0, r3, #0
adds r0, #0x35
ldrb r0, [r0]
cmp r0, #0xff
beq _08078FAC
movs r1, #0
movs r0, #0x81
strb r0, [r3, #2]
movs r0, #0x15
strb r0, [r2, #0xc]
strb r1, [r2, #0xd]
movs r0, #0x80
lsls r0, r0, #0xa
str r0, [r2, #0x20]
movs r0, #1
b _08078FAE
.align 2, 0
_08078FA4: .4byte gUnk_02033A90
_08078FA8: .4byte gUnk_03003F80
_08078FAC:
movs r0, #0
_08078FAE:
pop {pc}
thumb_func_start sub_08078FB0
sub_08078FB0: @ 0x08078FB0
push {r4, r5, r6, lr}
adds r4, r0, #0
ldr r5, _08078FE0 @ =gUnk_03003F80
ldrb r1, [r5, #6]
movs r6, #0x80
adds r0, r6, #0
ands r0, r1
cmp r0, #0
bne _08078FCA
adds r1, r5, #0
adds r1, #0x35
movs r0, #0xff
strb r0, [r1]
_08078FCA:
adds r0, r4, #0
bl sub_08079064
ldr r1, [r5, #0x30]
movs r0, #8
ands r0, r1
cmp r0, #0
beq _08078FE4
movs r2, #0x58
b _08078FFA
.align 2, 0
_08078FE0: .4byte gUnk_03003F80
_08078FE4:
ands r1, r6
cmp r1, #0
beq _08078FEE
movs r2, #0x18
b _08078FFA
_08078FEE:
ldrh r0, [r5, #8]
lsrs r0, r0, #8
movs r2, #0xb8
cmp r0, #7
bne _08078FFA
movs r2, #0x34
_08078FFA:
ldr r0, _08079014 @ =gUnk_03003F80
adds r3, r0, #0
ldrb r1, [r0, #8]
cmp r2, r1
bls _08079040
ldrb r0, [r4, #0x14]
adds r2, r0, #0
cmp r2, #4
bls _08079018
ldrb r0, [r4, #0x18]
movs r1, #0x40
orrs r0, r1
b _08079020
.align 2, 0
_08079014: .4byte gUnk_03003F80
_08079018:
ldrb r1, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r1
_08079020:
strb r0, [r4, #0x18]
ldr r0, [r3, #0x30]
movs r1, #0x80
lsls r1, r1, #0xc
ands r0, r1
cmp r0, #0
beq _08079036
ldrh r1, [r3, #8]
ldrb r0, [r4, #0x14]
adds r2, r1, r0
b _08079042
_08079036:
lsls r0, r2, #0x18
lsrs r0, r0, #0x19
ldrh r3, [r3, #8]
adds r2, r0, r3
b _08079042
_08079040:
ldrh r2, [r0, #8]
_08079042:
ldrh r0, [r4, #0x12]
lsls r0, r0, #8
adds r1, r4, #0
adds r1, #0x58
ldrb r1, [r1]
orrs r0, r1
cmp r2, r0
beq _08079062
lsrs r0, r2, #8
strh r0, [r4, #0x12]
movs r0, #0xff
ands r2, r0
adds r0, r4, #0
adds r1, r2, #0
bl sub_080042AC
_08079062:
pop {r4, r5, r6, pc}
thumb_func_start sub_08079064
sub_08079064: @ 0x08079064
push {r4, r5, r6, lr}
adds r6, r0, #0
ldr r0, _0807909C @ =gUnk_03003F80
ldr r1, [r0, #0x30]
ldr r2, _080790A0 @ =0x00100080
ands r1, r2
adds r5, r0, #0
cmp r1, #0
bne _080790DE
movs r3, #0
movs r2, #0
ldr r1, _080790A4 @ =gUnk_03000B80
_0807907C:
ldrb r0, [r1, #0xf]
cmp r0, r3
bls _08079086
adds r3, r0, #0
ldrh r4, [r1, #0x10]
_08079086:
adds r1, #0x1c
adds r2, #1
cmp r2, #3
bls _0807907C
adds r2, r5, #0
ldrb r0, [r2, #0xe]
cmp r0, r3
bhs _080790A8
strh r4, [r2, #8]
b _080790DE
.align 2, 0
_0807909C: .4byte gUnk_03003F80
_080790A0: .4byte 0x00100080
_080790A4: .4byte gUnk_03000B80
_080790A8:
adds r0, r2, #0
adds r0, #0x26
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080790C0
ldr r0, _080790BC @ =0x000002BE
strh r0, [r2, #8]
b _080790DE
.align 2, 0
_080790BC: .4byte 0x000002BE
_080790C0:
ldrh r1, [r5, #8]
movs r0, #0xc1
lsls r0, r0, #3
cmp r1, r0
beq _080790D8
movs r0, #0x82
lsls r0, r0, #1
cmp r1, r0
beq _080790D8
ldr r0, _080790E0 @ =0x00000404
cmp r1, r0
bne _080790DE
_080790D8:
adds r0, r6, #0
bl sub_080790E4
_080790DE:
pop {r4, r5, r6, pc}
.align 2, 0
_080790E0: .4byte 0x00000404
thumb_func_start sub_080790E4
sub_080790E4: @ 0x080790E4
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, _08079128 @ =gUnk_03003F80
ldrb r0, [r5, #0xb]
cmp r0, #0
bne _08079182
movs r0, #0x10
bl sub_080793E4
cmp r0, #0
beq _0807912C
adds r1, r4, #0
adds r1, #0x3d
movs r0, #0x14
strb r0, [r1]
adds r1, #5
movs r0, #4
strb r0, [r1]
ldrb r0, [r4, #0x14]
lsls r0, r0, #2
movs r1, #0x10
eors r0, r1
adds r1, r4, #0
adds r1, #0x3e
strb r0, [r1]
movs r0, #2
rsbs r0, r0, #0
bl ModHealth
movs r0, #0x7a
bl sub_080A3268
b _08079182
.align 2, 0
_08079128: .4byte gUnk_03003F80
_0807912C:
ldrb r1, [r5, #6]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _08079182
cmp r1, #0
bne _08079150
movs r0, #1
bl sub_080793E4
cmp r0, #0
beq _0807914C
ldrb r0, [r4, #0xf]
cmp r0, #5
bhi _08079154
adds r0, #1
_0807914C:
strb r0, [r4, #0xf]
b _08079182
_08079150:
subs r0, r1, #1
strb r0, [r5, #6]
_08079154:
ldr r2, _08079174 @ =gUnk_03003F80
ldrb r0, [r4, #0x14]
adds r1, r2, #0
adds r1, #0x35
strb r0, [r1]
adds r1, #0x73
movs r0, #0x19
strb r0, [r1]
ldr r0, [r2, #0x30]
movs r1, #8
ands r0, r1
cmp r0, #0
beq _0807917C
ldr r0, _08079178 @ =0x0000093C
b _08079180
.align 2, 0
_08079174: .4byte gUnk_03003F80
_08079178: .4byte 0x0000093C
_0807917C:
movs r0, #0xcf
lsls r0, r0, #2
_08079180:
strh r0, [r2, #8]
_08079182:
pop {r4, r5, pc}
thumb_func_start sub_08079184
sub_08079184: @ 0x08079184
ldr r0, _08079194 @ =gUnk_03003F80
movs r1, #0
strb r1, [r0, #5]
strb r1, [r0, #1]
ldr r0, _08079198 @ =gLinkEntity
str r1, [r0, #0x74]
bx lr
.align 2, 0
_08079194: .4byte gUnk_03003F80
_08079198: .4byte gLinkEntity
thumb_func_start sub_0807919C
sub_0807919C: @ 0x0807919C
push {lr}
ldr r0, _080791B0 @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _080791B4
bl sub_080791BC
b _080791B8
.align 2, 0
_080791B0: .4byte gUnk_03003F80
_080791B4:
bl sub_08079258
_080791B8:
pop {pc}
.align 2, 0
thumb_func_start sub_080791BC
sub_080791BC: @ 0x080791BC
ldr r0, _080791CC @ =gLinkEntity
movs r2, #0
movs r1, #1
strb r1, [r0, #0xc]
strb r2, [r0, #0xd]
strb r2, [r0, #0xf]
bx lr
.align 2, 0
_080791CC: .4byte gLinkEntity
thumb_func_start sub_080791D0
sub_080791D0: @ 0x080791D0
push {lr}
ldr r3, _0807920C @ =gUnk_03003F80
ldr r0, [r3, #0x30]
movs r1, #0x40
ands r0, r1
cmp r0, #0
bne _080791E8
ldr r0, _08079210 @ =gLinkEntity
ldrb r1, [r0, #0x18]
movs r2, #3
orrs r1, r2
strb r1, [r0, #0x18]
_080791E8:
ldr r0, [r3, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _08079214
ldr r2, _08079210 @ =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]
bl sub_0807921C
b _08079218
.align 2, 0
_0807920C: .4byte gUnk_03003F80
_08079210: .4byte gLinkEntity
_08079214:
bl sub_08079258
_08079218:
pop {pc}
.align 2, 0
thumb_func_start sub_0807921C
sub_0807921C: @ 0x0807921C
push {r4, lr}
ldr r4, _0807924C @ =gLinkEntity
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
ldrb r0, [r4, #0x18]
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x18]
ldr r2, _08079250 @ =gUnk_03003F80
ldr r0, [r2, #0x30]
ldr r1, _08079254 @ =0xFECBF6FA
ands r0, r1
str r0, [r2, #0x30]
bl sub_08079938
bl sub_080791BC
adds r0, r4, #0
bl sub_0805E374
pop {r4, pc}
.align 2, 0
_0807924C: .4byte gLinkEntity
_08079250: .4byte gUnk_03003F80
_08079254: .4byte 0xFECBF6FA
thumb_func_start sub_08079258
sub_08079258: @ 0x08079258
push {r4, lr}
ldr r4, _080792AC @ =gUnk_03003F80
ldr r0, [r4, #0x30]
movs r1, #0x40
ands r0, r1
ldr r3, _080792B0 @ =gLinkEntity
cmp r0, #0
bne _08079278
ldrb r1, [r3, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r3, #0x10]
ldrb r0, [r3, #0x18]
movs r1, #3
orrs r0, r1
strb r0, [r3, #0x18]
_08079278:
movs r0, #9
strb r0, [r3, #0xc]
movs r0, #1
strb r0, [r3, #0xd]
adds r2, r3, #0
adds r2, #0x3c
ldrb r1, [r2]
movs r0, #0xfb
ands r0, r1
strb r0, [r2]
movs r2, #0
ldr r0, _080792B4 @ =0x00000C18
strh r0, [r4, #8]
ldr r0, [r4, #0x30]
ldr r1, _080792B8 @ =0xFECFFEFA
ands r0, r1
str r0, [r4, #0x30]
adds r0, r4, #0
adds r0, #0x26
strb r2, [r0]
strb r2, [r4, #0xc]
adds r0, r3, #0
bl sub_0805E374
pop {r4, pc}
.align 2, 0
_080792AC: .4byte gUnk_03003F80
_080792B0: .4byte gLinkEntity
_080792B4: .4byte 0x00000C18
_080792B8: .4byte 0xFECFFEFA
thumb_func_start sub_080792BC
sub_080792BC: @ 0x080792BC
push {r4, lr}
ldr r3, _080792D0 @ =gUnk_03003F80
movs r4, #0x13
strb r4, [r3, #0xc]
adds r3, #0x38
strb r2, [r3]
ldr r2, _080792D4 @ =gLinkEntity
strh r0, [r2, #0x24]
strb r1, [r2, #0x15]
pop {r4, pc}
.align 2, 0
_080792D0: .4byte gUnk_03003F80
_080792D4: .4byte gLinkEntity
thumb_func_start sub_080792D8
sub_080792D8: @ 0x080792D8
push {r4, r5, r6, lr}
ldr r5, _08079344 @ =gLinkEntity
adds r3, r5, #0
adds r3, #0x42
ldrb r0, [r3]
cmp r0, #0
beq _080793E0
ldrb r2, [r5, #0xc]
cmp r2, #0xb
beq _08079338
ldr r0, _08079348 @ =gUnk_03003F80
ldrb r1, [r0, #0x1e]
adds r6, r0, #0
cmp r1, #0
bne _08079338
ldrb r0, [r6, #5]
subs r0, #1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #3
bls _08079338
ldrb r0, [r6, #2]
cmp r0, #0
bne _08079338
ldrb r0, [r6, #0x12]
cmp r0, #0xff
beq _08079338
ldrb r1, [r6, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _08079338
adds r0, r6, #0
adds r0, #0x26
ldrb r1, [r0]
movs r0, #0xf
ands r0, r1
subs r0, #1
cmp r0, #0
bgt _08079338
cmp r2, #3
beq _08079338
ldr r1, [r6, #0x30]
movs r0, #0x80
lsls r0, r0, #0xb
ands r1, r0
cmp r1, #0
beq _0807934C
_08079338:
adds r1, r5, #0
adds r1, #0x42
movs r0, #0
strb r0, [r1]
b _080793E0
.align 2, 0
_08079344: .4byte gLinkEntity
_08079348: .4byte gUnk_03003F80
_0807934C:
cmp r2, #0x1d
bne _0807935E
adds r0, r5, #0
adds r0, #0x3e
ldrb r0, [r0]
cmp r0, #0x10
beq _0807935E
strb r1, [r3]
b _080793E0
_0807935E:
adds r0, r5, #0
adds r0, #0x42
ldrb r3, [r0]
movs r1, #0
ldrsb r1, [r0, r1]
adds r2, r0, #0
cmp r1, #0
ble _08079372
subs r0, r3, #1
b _08079374
_08079372:
adds r0, r3, #1
_08079374:
strb r0, [r2]
ldrb r0, [r2]
cmp r0, #0
beq _080793E0
adds r4, r6, #0
ldrb r0, [r4, #7]
movs r1, #0xdf
ands r1, r0
strb r1, [r4, #7]
adds r0, r5, #0
adds r0, #0x3d
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _080793CA
adds r0, r4, #0
adds r0, #0x26
ldrb r0, [r0]
cmp r0, #0
bne _080793CA
ldr r0, [r4, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _080793CA
ldrb r0, [r4, #2]
cmp r0, #0
bne _080793CA
bl sub_08077B2C
ldr r0, [r4, #0x30]
movs r1, #8
ands r0, r1
cmp r0, #0
bne _080793C4
movs r0, #0x8a
lsls r0, r0, #1
strh r0, [r4, #8]
b _080793CA
_080793C4:
movs r0, #0x83
lsls r0, r0, #3
strh r0, [r6, #8]
_080793CA:
movs r1, #0xa0
lsls r1, r1, #2
adds r4, r5, #0
adds r4, #0x3e
ldrb r2, [r4]
adds r0, r5, #0
bl sub_080027EA
ldrb r0, [r4]
bl sub_0807A5B8
_080793E0:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_080793E4
sub_080793E4: @ 0x080793E4
push {r4, r5, lr}
adds r5, r0, #0
ldr r0, _080793FC @ =gUnk_03003F80
adds r0, #0x26
ldrb r0, [r0]
cmp r0, #0
bne _08079408
ldr r1, _08079400 @ =gUnk_0811C0F8
ldr r0, _08079404 @ =gLinkEntity
ldrb r0, [r0, #0x14]
lsrs r0, r0, #1
b _08079410
.align 2, 0
_080793FC: .4byte gUnk_03003F80
_08079400: .4byte gUnk_0811C0F8
_08079404: .4byte gLinkEntity
_08079408:
ldr r1, _08079448 @ =gUnk_0811C0F8
ldr r0, _0807944C @ =gLinkEntity
ldrb r0, [r0, #0x15]
lsrs r0, r0, #2
_08079410:
lsls r0, r0, #1
adds r0, r0, r1
ldrh r4, [r0]
bl sub_08079778
cmp r0, #0
beq _08079454
ldr r0, _08079450 @ =gUnk_03003F80
adds r0, #0x90
ldrh r0, [r0]
ands r0, r4
cmp r0, #0
beq _08079454
cmp r5, #0
beq _08079442
bl sub_0807A500
ldr r1, _0807944C @ =gLinkEntity
adds r1, #0x38
ldrb r1, [r1]
adds r2, r5, #0
bl sub_080002F0
cmp r0, #0
beq _08079454
_08079442:
movs r0, #1
b _08079456
.align 2, 0
_08079448: .4byte gUnk_0811C0F8
_0807944C: .4byte gLinkEntity
_08079450: .4byte gUnk_03003F80
_08079454:
movs r0, #0
_08079456:
pop {r4, r5, pc}
thumb_func_start sub_08079458
sub_08079458: @ 0x08079458
push {r4, r5, lr}
ldr r4, _08079498 @ =gLinkEntity
movs r1, #0
movs r0, #0x19
strb r0, [r4, #0xc]
str r1, [r4, #0x34]
str r1, [r4, #0x20]
adds r0, r4, #0
adds r0, #0x42
strb r1, [r0]
bl sub_08078EE4
ldr r2, _0807949C @ =gUnk_03003F80
ldr r1, [r2, #0x30]
movs r0, #0x80
lsls r0, r0, #0xa
ands r0, r1
cmp r0, #0
bne _08079514
movs r0, #0x80
lsls r0, r0, #9
ands r1, r0
cmp r1, #0
beq _080794E4
adds r0, r2, #0
adds r0, #0x84
ldr r1, [r0]
ldrh r0, [r1, #0x2e]
strh r0, [r4, #0x2e]
ldrh r0, [r1, #0x32]
strh r0, [r4, #0x32]
b _08079514
.align 2, 0
_08079498: .4byte gLinkEntity
_0807949C: .4byte gUnk_03003F80
_080794A0:
ldr r2, _080794DC @ =gLinkEntity
ldr r0, [r4]
lsrs r0, r0, #0x1e
adds r1, r2, #0
adds r1, #0x38
strb r0, [r1]
ldr r3, _080794E0 @ =gUnk_03000BF0
ldr r0, [r4]
movs r1, #0x3f
ands r0, r1
lsls r0, r0, #4
ldrh r1, [r3, #6]
adds r0, r0, r1
adds r0, #8
strh r0, [r2, #0x2e]
ldr r0, [r4]
movs r1, #0xfc
lsls r1, r1, #4
ands r0, r1
lsrs r0, r0, #2
ldrh r3, [r3, #8]
adds r0, r0, r3
adds r0, #8
strh r0, [r2, #0x32]
ldrb r1, [r2, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r2, #0x10]
b _08079514
.align 2, 0
_080794DC: .4byte gLinkEntity
_080794E0: .4byte gUnk_03000BF0
_080794E4:
movs r5, #0
ldr r1, [r2, #0x40]
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
beq _08079514
adds r4, r2, #0
adds r4, #0x40
_080794F4:
ldr r1, [r4]
ldrh r0, [r4]
lsrs r1, r1, #0x1e
bl sub_080002E0
cmp r0, #0xf
bne _080794A0
adds r4, #4
adds r5, #1
cmp r5, #0xf
bhi _08079514
ldr r1, [r4]
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
bne _080794F4
_08079514:
ldr r0, _0807951C @ =gLinkEntity
bl sub_08016A04
pop {r4, r5, pc}
.align 2, 0
_0807951C: .4byte gLinkEntity
thumb_func_start sub_08079520
sub_08079520: @ 0x08079520
push {lr}
adds r1, r0, #0
ldr r0, _08079538 @ =gUnk_03003F80
ldrb r0, [r0, #0xd]
cmp r0, #0x7f
ble _08079532
ldrb r0, [r1, #0x14]
lsrs r0, r0, #1
lsls r0, r0, #3
_08079532:
strb r0, [r1, #0x15]
pop {pc}
.align 2, 0
_08079538: .4byte gUnk_03003F80
thumb_func_start sub_0807953C
sub_0807953C: @ 0x0807953C
ldr r1, _08079548 @ =0x00000F38
ldr r0, _0807954C @ =gUnk_03003F80
adds r0, #0x92
ldrh r0, [r0]
ands r0, r1
bx lr
.align 2, 0
_08079548: .4byte 0x00000F38
_0807954C: .4byte gUnk_03003F80
thumb_func_start sub_08079550
sub_08079550: @ 0x08079550
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
ldr r0, _080795A8 @ =gUnk_03004030
ldrb r0, [r0, #8]
cmp r0, #0
beq _08079562
b _080796FC
_08079562:
ldr r2, _080795AC @ =gUnk_03003F80
ldrb r0, [r2, #0x1e]
cmp r0, #0
beq _08079576
ldr r0, [r2, #0x30]
movs r1, #0x80
lsls r1, r1, #3
ands r0, r1
cmp r0, #0
beq _080795B4
_08079576:
adds r0, r2, #0
adds r0, #0x26
ldrb r0, [r0]
ldr r1, _080795B0 @ =gLinkEntity
mov r8, r1
cmp r0, #0
bne _080795A0
ldrb r1, [r2, #0x1b]
movs r0, #0x40
ands r0, r1
cmp r0, #0
bne _080795A0
mov r3, r8
ldrb r1, [r3, #0x15]
ldrb r2, [r2, #0xd]
cmp r1, r2
bne _080795A0
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080795B4
_080795A0:
movs r0, #0
mov r5, r8
strb r0, [r5, #0xf]
b _080796FE
.align 2, 0
_080795A8: .4byte gUnk_03004030
_080795AC: .4byte gUnk_03003F80
_080795B0: .4byte gLinkEntity
_080795B4:
bl sub_08079778
cmp r0, #0
bne _080795BE
b _080796FC
_080795BE:
ldr r3, _08079610 @ =gLinkEntity
ldrb r2, [r3, #0x14]
movs r0, #6
ands r0, r2
ldr r1, _08079614 @ =gUnk_0811C100
adds r1, r0, r1
movs r0, #2
ands r0, r2
mov r8, r3
cmp r0, #0
beq _0807961C
movs r6, #0x2e
ldrsh r2, [r3, r6]
movs r0, #0
ldrsb r0, [r1, r0]
adds r2, r2, r0
ldr r4, _08079618 @ =gUnk_03000BF0
ldrh r0, [r4, #6]
subs r2, r2, r0
asrs r2, r2, #4
movs r3, #0x3f
ands r2, r3
mov r0, r8
movs r5, #0x32
ldrsh r1, [r0, r5]
ldr r0, [r0, #0x48]
ldrb r5, [r0, #3]
adds r0, r1, r5
ldrh r4, [r4, #8]
subs r0, r0, r4
asrs r0, r0, #4
ands r0, r3
lsls r7, r0, #6
orrs r7, r2
subs r1, r1, r5
subs r1, r1, r4
asrs r1, r1, #4
ands r1, r3
lsls r4, r1, #6
orrs r4, r2
b _0807965E
.align 2, 0
_08079610: .4byte gLinkEntity
_08079614: .4byte gUnk_0811C100
_08079618: .4byte gUnk_03000BF0
_0807961C:
mov r6, r8
movs r0, #0x2e
ldrsh r2, [r6, r0]
ldr r0, [r6, #0x48]
ldrb r0, [r0, #4]
mov ip, r0
adds r0, r2, r0
ldr r4, _080796EC @ =gUnk_03000BF0
ldrh r3, [r4, #6]
mov sb, r3
subs r0, r0, r3
asrs r7, r0, #4
movs r3, #0x3f
ands r7, r3
movs r5, #0x32
ldrsh r0, [r6, r5]
ldrb r1, [r1, #1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
adds r0, r0, r1
ldrh r1, [r4, #8]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r7, r0
mov r6, ip
subs r2, r2, r6
mov r1, sb
subs r2, r2, r1
asrs r4, r2, #4
ands r4, r3
orrs r4, r0
_0807965E:
adds r0, r7, #0
mov r5, r8
adds r5, #0x38
ldrb r1, [r5]
bl sub_080002C8
adds r3, r0, #0
ldr r6, _080796F0 @ =gUnk_0811C1E8
mov r1, r8
ldrb r0, [r1, #0x14]
lsrs r0, r0, #1
lsls r0, r0, #2
adds r0, r0, r6
ldr r1, [r0]
adds r0, r3, #0
bl sub_08007DD6
adds r3, r0, #0
cmp r3, #0
beq _080796FC
adds r0, r4, #0
ldrb r1, [r5]
bl sub_080002C8
adds r3, r0, #0
mov r5, r8
ldrb r0, [r5, #0x14]
lsrs r0, r0, #1
lsls r0, r0, #2
adds r0, r0, r6
ldr r1, [r0]
adds r0, r3, #0
bl sub_08007DD6
adds r3, r0, #0
cmp r3, #0
beq _080796FC
ldr r1, _080796F4 @ =gUnk_03003F80
ldrb r2, [r1, #6]
movs r0, #0x80
orrs r0, r2
strb r0, [r1, #6]
ldrb r0, [r1, #0x1e]
adds r4, r1, #0
cmp r0, #0
bne _080796C8
ldrb r0, [r5, #0xf]
adds r0, #1
strb r0, [r5, #0xf]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #5
bls _080796FC
_080796C8:
ldr r0, _080796F8 @ =gLinkEntity
subs r1, r3, #1
movs r2, #0
strb r1, [r0, #0x14]
movs r1, #4
strb r1, [r0, #0xc]
strb r2, [r0, #0xd]
ldrb r2, [r0, #0x10]
movs r1, #0x7f
ands r1, r2
strb r1, [r0, #0x10]
movs r1, #0x81
strb r1, [r4, #2]
bl sub_08070680
movs r0, #1
b _080796FE
.align 2, 0
_080796EC: .4byte gUnk_03000BF0
_080796F0: .4byte gUnk_0811C1E8
_080796F4: .4byte gUnk_03003F80
_080796F8: .4byte gLinkEntity
_080796FC:
movs r0, #0
_080796FE:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_08079708
sub_08079708: @ 0x08079708
push {r4, lr}
ldr r4, _08079740 @ =gUnk_03003F80
adds r2, r4, #0
adds r2, #0xa8
movs r3, #0
movs r1, #0x12
strb r1, [r2]
subs r2, #0x6c
movs r1, #0xff
strb r1, [r2]
ldrb r2, [r0, #0x10]
movs r1, #0x7f
ands r1, r2
strb r1, [r0, #0x10]
movs r1, #0xa
strb r1, [r0, #0xc]
strb r3, [r0, #0xd]
bl sub_080085B0
ldr r0, [r4, #0x30]
movs r1, #0x88
lsls r1, r1, #1
ands r0, r1
cmp r0, #0
bne _0807973E
bl sub_0805E544
_0807973E:
pop {r4, pc}
.align 2, 0
_08079740: .4byte gUnk_03003F80
thumb_func_start sub_08079744
sub_08079744: @ 0x08079744
push {lr}
adds r2, r0, #0
ldrh r0, [r2, #0x2e]
movs r1, #0xf
ands r1, r0
cmp r1, #8
beq _0807975E
cmp r1, #8
ble _0807975A
subs r0, #1
b _0807975C
_0807975A:
adds r0, #1
_0807975C:
strh r0, [r2, #0x2e]
_0807975E:
ldrh r0, [r2, #0x32]
movs r1, #0xf
ands r1, r0
cmp r1, #8
beq _08079774
cmp r1, #8
ble _08079770
subs r0, #1
b _08079772
_08079770:
adds r0, #1
_08079772:
strh r0, [r2, #0x32]
_08079774:
pop {pc}
.align 2, 0
thumb_func_start sub_08079778
sub_08079778: @ 0x08079778
push {lr}
ldr r0, _08079790 @ =gUnk_03003F80
adds r0, #0x26
ldrb r0, [r0]
cmp r0, #0
bne _0807979C
ldr r2, _08079794 @ =gUnk_0811C108
ldr r1, _08079798 @ =gLinkEntity
ldrb r0, [r1, #0x14]
lsrs r0, r0, #1
b _080797A4
.align 2, 0
_08079790: .4byte gUnk_03003F80
_08079794: .4byte gUnk_0811C108
_08079798: .4byte gLinkEntity
_0807979C:
ldr r2, _080797BC @ =gUnk_0811C108
ldr r1, _080797C0 @ =gLinkEntity
ldrb r0, [r1, #0x15]
lsrs r0, r0, #2
_080797A4:
lsls r0, r0, #1
adds r0, r0, r2
ldrh r2, [r0]
movs r3, #0
ldrh r0, [r1, #0x2a]
ands r0, r2
cmp r2, r0
bne _080797B6
movs r3, #1
_080797B6:
adds r0, r3, #0
pop {pc}
.align 2, 0
_080797BC: .4byte gUnk_0811C108
_080797C0: .4byte gLinkEntity
thumb_func_start sub_080797C4
sub_080797C4: @ 0x080797C4
push {lr}
ldr r1, _080797E4 @ =gUnk_0811C110
ldr r2, _080797E8 @ =gLinkEntity
ldrb r0, [r2, #0x15]
lsrs r0, r0, #3
lsls r0, r0, #1
adds r0, r0, r1
ldrh r1, [r0]
movs r3, #0
ldrh r0, [r2, #0x2a]
ands r0, r1
cmp r1, r0
bne _080797E0
movs r3, #1
_080797E0:
adds r0, r3, #0
pop {pc}
.align 2, 0
_080797E4: .4byte gUnk_0811C110
_080797E8: .4byte gLinkEntity
thumb_func_start sub_080797EC
sub_080797EC: @ 0x080797EC
push {r4, r5, lr}
ldr r4, _08079804 @ =gUnk_03003F80
ldr r1, [r4, #0x30]
movs r0, #8
ands r0, r1
cmp r0, #0
beq _0807985C
ldrb r0, [r4, #5]
cmp r0, #0
beq _0807980C
ldr r5, _08079808 @ =0x00000934
b _0807991E
.align 2, 0
_08079804: .4byte gUnk_03003F80
_08079808: .4byte 0x00000934
_0807980C:
ldrb r0, [r4, #3]
cmp r0, #0
beq _08079818
movs r5, #0x82
lsls r5, r5, #3
b _0807991E
_08079818:
adds r0, r4, #0
adds r0, #0x21
ldrb r0, [r0]
cmp r0, #0
bne _080798A0
adds r0, r4, #0
adds r0, #0x26
ldrb r0, [r0]
movs r5, #0xa4
lsls r5, r5, #2
cmp r0, #0
bne _0807991E
movs r5, #0xb6
lsls r5, r5, #1
ldrb r1, [r4, #0x1b]
movs r0, #0x48
ands r0, r1
cmp r0, #0
bne _080798C2
lsls r0, r1, #0x18
cmp r0, #0
bne _080798CE
adds r1, r4, #0
adds r1, #0xa8
ldrb r0, [r1]
cmp r0, #0
bne _08079852
movs r0, #1
strb r0, [r1]
_08079852:
ldr r5, _08079858 @ =0x00000404
b _0807991E
.align 2, 0
_08079858: .4byte 0x00000404
_0807985C:
ldrb r0, [r4, #0x1c]
cmp r0, #0
bne _0807992E
ldrb r0, [r4, #5]
cmp r0, #0
beq _0807986E
movs r5, #0xd2
lsls r5, r5, #2
b _0807991E
_0807986E:
ldrb r0, [r4, #0x1e]
cmp r0, #0
beq _0807987A
movs r5, #0xa6
lsls r5, r5, #2
b _0807991E
_0807987A:
movs r0, #0x80
lsls r0, r0, #5
ands r1, r0
cmp r1, #0
beq _0807988A
movs r5, #0xe2
lsls r5, r5, #3
b _0807991E
_0807988A:
ldrb r0, [r4, #3]
cmp r0, #0
beq _08079896
movs r5, #0xb0
lsls r5, r5, #1
b _0807991E
_08079896:
adds r0, r4, #0
adds r0, #0x21
ldrb r0, [r0]
cmp r0, #0
beq _080798A6
_080798A0:
movs r5, #0xa1
lsls r5, r5, #2
b _0807991E
_080798A6:
adds r0, r4, #0
adds r0, #0x26
ldrb r0, [r0]
movs r5, #0xa4
lsls r5, r5, #2
cmp r0, #0
bne _0807991E
movs r5, #0xb6
lsls r5, r5, #1
ldrb r1, [r4, #0x1b]
movs r0, #0x48
ands r0, r1
cmp r0, #0
beq _080798C8
_080798C2:
movs r0, #0x6c
strb r0, [r4]
b _0807992E
_080798C8:
lsls r0, r1, #0x18
cmp r0, #0
beq _080798FC
_080798CE:
movs r0, #0
bl sub_080793E4
cmp r0, #0
beq _0807991E
bl sub_0807A500
ldr r1, _080798F8 @ =gLinkEntity
adds r1, #0x38
ldrb r1, [r1]
bl sub_080002E0
cmp r0, #0xff
beq _0807991E
ldrb r1, [r4, #0x1b]
movs r0, #0xf7
ands r0, r1
strb r0, [r4, #0x1b]
movs r5, #0xb8
lsls r5, r5, #1
b _0807991E
.align 2, 0
_080798F8: .4byte gLinkEntity
_080798FC:
adds r1, r4, #0
adds r1, #0xa8
ldrb r0, [r1]
cmp r0, #0
bne _0807990A
movs r0, #1
strb r0, [r1]
_0807990A:
ldr r0, [r4, #0x30]
movs r1, #0x80
lsls r1, r1, #0x10
ands r0, r1
movs r5, #0x82
lsls r5, r5, #1
cmp r0, #0
beq _0807991E
movs r5, #0xc1
lsls r5, r5, #3
_0807991E:
ldr r0, _08079930 @ =gUnk_03003F80
strh r5, [r0, #8]
ldrb r0, [r0, #3]
cmp r0, #0
bne _0807992E
ldr r0, _08079934 @ =gLinkEntity
bl sub_080042B8
_0807992E:
pop {r4, r5, pc}
.align 2, 0
_08079930: .4byte gUnk_03003F80
_08079934: .4byte gLinkEntity
thumb_func_start sub_08079938
sub_08079938: @ 0x08079938
push {r4, lr}
ldr r3, _08079954 @ =gUnk_03003F80
ldr r2, [r3, #0x30]
movs r0, #8
ands r0, r2
mov ip, r3
cmp r0, #0
beq _080799E4
ldrb r0, [r3, #5]
cmp r0, #0
beq _0807995C
ldr r4, _08079958 @ =0x0000092C
b _08079AD8
.align 2, 0
_08079954: .4byte gUnk_03003F80
_08079958: .4byte 0x0000092C
_0807995C:
mov r0, ip
adds r0, #0x3d
mov r3, ip
ldrb r1, [r3, #0x1c]
ldrb r0, [r0]
orrs r0, r1
cmp r0, #0
beq _0807996E
b _08079B14
_0807996E:
movs r0, #0x80
lsls r0, r0, #0x12
ands r0, r2
cmp r0, #0
bne _08079A1E
mov r4, ip
ldrb r0, [r4, #3]
cmp r0, #0
beq _08079988
ldr r4, _08079984 @ =0x00000414
b _08079AD8
.align 2, 0
_08079984: .4byte 0x00000414
_08079988:
mov r0, ip
adds r0, #0x21
ldrb r0, [r0]
cmp r0, #0
bne _08079A5C
mov r0, ip
adds r0, #0x26
ldrb r0, [r0]
cmp r0, #0
bne _08079A6C
mov r0, ip
ldrb r1, [r0, #0x1b]
movs r0, #0x48
ands r0, r1
cmp r0, #0
beq _080799AA
b _08079B14
_080799AA:
cmp r1, #0
beq _080799B0
b _08079AA4
_080799B0:
mov r1, ip
ldrb r0, [r1, #4]
cmp r0, #0
beq _080799BA
b _08079B14
_080799BA:
movs r0, #0x20
ands r2, r0
cmp r2, #0
beq _080799D0
ldr r0, _080799D8 @ =gUnk_02033A90
ldrb r0, [r0, #0x17]
cmp r0, #4
bne _080799CC
b _08079AD4
_080799CC:
cmp r0, #5
bne _080799DC
_080799D0:
movs r4, #0x80
lsls r4, r4, #3
b _08079AD8
.align 2, 0
_080799D8: .4byte gUnk_02033A90
_080799DC:
ldr r4, _080799E0 @ =0x000002C2
b _08079AD8
.align 2, 0
_080799E0: .4byte 0x000002C2
_080799E4:
mov r4, ip
ldrb r0, [r4, #5]
cmp r0, #0
beq _080799F2
movs r4, #0xd4
lsls r4, r4, #2
b _08079AD8
_080799F2:
mov r0, ip
adds r0, #0x3d
mov r4, ip
ldrb r1, [r4, #0x1c]
ldrb r0, [r0]
orrs r0, r1
cmp r0, #0
beq _08079A04
b _08079B14
_08079A04:
movs r0, #0x80
lsls r0, r0, #0xc
ands r0, r2
cmp r0, #0
beq _08079A14
movs r4, #0x8b
lsls r4, r4, #4
b _08079AD8
_08079A14:
movs r0, #0x80
lsls r0, r0, #0x12
ands r0, r2
cmp r0, #0
beq _08079A24
_08079A1E:
movs r4, #0x81
lsls r4, r4, #4
b _08079AD8
_08079A24:
mov r1, ip
ldrb r0, [r1, #0x1e]
cmp r0, #0
beq _08079A32
movs r4, #0xa6
lsls r4, r4, #2
b _08079AD8
_08079A32:
movs r0, #0x80
lsls r0, r0, #5
ands r0, r2
cmp r0, #0
beq _08079A44
ldr r4, _08079A40 @ =0x0000070C
b _08079AD8
.align 2, 0
_08079A40: .4byte 0x0000070C
_08079A44:
mov r4, ip
ldrb r0, [r4, #3]
cmp r0, #0
beq _08079A52
movs r4, #0xb2
lsls r4, r4, #1
b _08079AD8
_08079A52:
mov r0, ip
adds r0, #0x21
ldrb r0, [r0]
cmp r0, #0
beq _08079A62
_08079A5C:
movs r4, #0xa0
lsls r4, r4, #2
b _08079AD8
_08079A62:
mov r0, ip
adds r0, #0x26
ldrb r0, [r0]
cmp r0, #0
beq _08079A72
_08079A6C:
movs r4, #0xa3
lsls r4, r4, #2
b _08079AD8
_08079A72:
mov r0, ip
ldrb r1, [r0, #0x1b]
movs r0, #0x48
ands r0, r1
cmp r0, #0
bne _08079B14
movs r0, #0x20
ands r2, r0
cmp r2, #0
beq _08079AA0
ldr r0, _08079A98 @ =gUnk_02033A90
ldrb r0, [r0, #0x17]
ldr r4, _08079A9C @ =0x000002C2
cmp r0, #4
bne _08079AD8
movs r4, #0xa6
lsls r4, r4, #3
b _08079AD8
.align 2, 0
_08079A98: .4byte gUnk_02033A90
_08079A9C: .4byte 0x000002C2
_08079AA0:
cmp r1, #0
beq _08079AAA
_08079AA4:
movs r4, #0xb4
lsls r4, r4, #1
b _08079AD8
_08079AAA:
ldrb r0, [r3, #4]
cmp r0, #0
bne _08079B14
ldr r0, [r3, #0x30]
movs r1, #0x80
lsls r1, r1, #0x10
ands r0, r1
cmp r0, #0
beq _08079AD4
ldr r0, _08079ACC @ =gUnk_03000B80
adds r0, #0x63
ldrb r0, [r0]
cmp r0, #0
bne _08079B14
ldr r4, _08079AD0 @ =0x00000604
b _08079AD8
.align 2, 0
_08079ACC: .4byte gUnk_03000B80
_08079AD0: .4byte 0x00000604
_08079AD4:
movs r4, #0x80
lsls r4, r4, #1
_08079AD8:
mov r1, ip
strh r4, [r1, #8]
ldrb r0, [r1, #5]
cmp r0, #0
bne _08079B10
movs r3, #0
movs r2, #0
ldr r1, _08079B18 @ =gUnk_03000B80
_08079AE8:
ldrb r0, [r1, #0xf]
cmp r0, r3
bls _08079AF0
adds r3, r0, #0
_08079AF0:
adds r1, #0x1c
adds r2, #1
cmp r2, #3
bls _08079AE8
mov r2, ip
ldrb r0, [r2, #0xe]
cmp r0, r3
blo _08079B14
lsls r0, r4, #0x18
lsrs r0, r0, #0x18
ldrb r3, [r2]
cmp r0, r3
bne _08079B10
ldr r0, _08079B1C @ =gLinkEntity
bl sub_080042B8
_08079B10:
ldr r0, _08079B20 @ =gUnk_03003F80
strb r4, [r0]
_08079B14:
pop {r4, pc}
.align 2, 0
_08079B18: .4byte gUnk_03000B80
_08079B1C: .4byte gLinkEntity
_08079B20: .4byte gUnk_03003F80
thumb_func_start sub_08079B24
sub_08079B24: @ 0x08079B24
push {r4, r5, lr}
ldr r2, _08079B60 @ =gLinkEntity
ldrb r0, [r2, #0xc]
cmp r0, #0xa
beq _08079BD4
adds r0, r2, #0
adds r0, #0x45
ldrb r3, [r0]
cmp r3, #0
bne _08079BD4
ldr r4, _08079B64 @ =gUnk_03003F80
ldr r1, [r4, #0x30]
ldr r0, _08079B68 @ =0xFEFFFFFF
ands r1, r0
str r1, [r4, #0x30]
adds r0, r2, #0
adds r0, #0x42
strb r3, [r0]
ldrb r0, [r4, #7]
cmp r0, #0
bne _08079BD4
adds r0, r4, #0
adds r0, #0x26
ldrb r0, [r0]
cmp r0, #0
beq _08079B6C
bl sub_08079458
b _08079BC0
.align 2, 0
_08079B60: .4byte gLinkEntity
_08079B64: .4byte gUnk_03003F80
_08079B68: .4byte 0xFEFFFFFF
_08079B6C:
ldrb r0, [r4, #0x14]
cmp r0, #0
bne _08079BC0
movs r3, #0x80
lsls r3, r3, #5
ands r3, r1
cmp r3, #0
bne _08079BC0
movs r5, #0x36
ldrsh r0, [r2, r5]
cmp r0, #0
bge _08079BA6
ldr r0, [r2, #0x20]
cmp r0, #0
ble _08079B8C
str r3, [r2, #0x20]
_08079B8C:
ldrb r1, [r4, #2]
movs r3, #0x41
adds r0, r3, #0
ands r0, r1
cmp r0, #0
bne _08079BD4
strb r3, [r4, #2]
movs r0, #0xff
strb r0, [r2, #0x15]
movs r0, #1
rsbs r0, r0, #0
strb r0, [r4, #0xd]
b _08079BD4
_08079BA6:
movs r0, #2
ands r1, r0
cmp r1, #0
bne _08079BC0
bl sub_08079D48
cmp r0, #0
bne _08079BC0
ldrb r0, [r4, #0xa]
movs r1, #0x10
orrs r0, r1
strb r0, [r4, #0xa]
b _08079BD4
_08079BC0:
ldr r2, _08079BD0 @ =gLinkEntity
ldrb r1, [r2, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r2, #0x10]
movs r0, #0
b _08079BD6
.align 2, 0
_08079BD0: .4byte gLinkEntity
_08079BD4:
movs r0, #1
_08079BD6:
pop {r4, r5, pc}
thumb_func_start sub_08079BD8
sub_08079BD8: @ 0x08079BD8
push {r4, r5, lr}
ldr r4, _08079C2C @ =gLinkEntity
ldr r1, [r4, #0x2c]
str r1, [r0, #0x2c]
ldr r1, [r4, #0x30]
str r1, [r0, #0x30]
ldr r1, [r4, #0x34]
str r1, [r0, #0x34]
adds r1, r4, #0
adds r1, #0x38
ldrb r2, [r1]
adds r1, r0, #0
adds r1, #0x38
strb r2, [r1]
ldrb r3, [r4, #0x19]
lsrs r3, r3, #6
lsls r3, r3, #6
ldrb r5, [r0, #0x19]
movs r2, #0x3f
adds r1, r2, #0
ands r1, r5
orrs r1, r3
strb r1, [r0, #0x19]
ldrb r1, [r4, #0x1b]
lsrs r1, r1, #6
lsls r1, r1, #6
ldrb r3, [r0, #0x1b]
ands r2, r3
orrs r2, r1
strb r2, [r0, #0x1b]
adds r4, #0x29
ldrb r2, [r4]
lsls r2, r2, #0x1d
adds r0, #0x29
lsrs r2, r2, #0x1d
ldrb r3, [r0]
movs r1, #8
rsbs r1, r1, #0
ands r1, r3
orrs r1, r2
strb r1, [r0]
pop {r4, r5, pc}
.align 2, 0
_08079C2C: .4byte gLinkEntity
thumb_func_start sub_08079C30
sub_08079C30: @ 0x08079C30
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r6, r0, #0
ldr r0, _08079C68 @ =gUnk_03003F80
ldrb r1, [r0, #0x14]
adds r7, r0, #0
cmp r1, #0
beq _08079C44
b _08079D40
_08079C44:
ldr r1, [r7, #0x30]
movs r0, #2
ands r0, r1
cmp r0, #0
bne _08079D40
movs r0, #0x80
ands r1, r0
cmp r1, #0
bne _08079D36
ldrb r0, [r7, #0x13]
subs r0, #0xd
cmp r0, #0x1d
bhi _08079CE8
lsls r0, r0, #2
ldr r1, _08079C6C @ =_08079C70
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08079C68: .4byte gUnk_03003F80
_08079C6C: .4byte _08079C70
_08079C70: @ jump table
.4byte _08079D36 @ case 0
.4byte _08079D36 @ case 1
.4byte _08079D36 @ case 2
.4byte _08079D36 @ case 3
.4byte _08079CE8 @ case 4
.4byte _08079CE8 @ case 5
.4byte _08079CE8 @ case 6
.4byte _08079D36 @ case 7
.4byte _08079CE8 @ case 8
.4byte _08079CE8 @ case 9
.4byte _08079D36 @ case 10
.4byte _08079CE8 @ case 11
.4byte _08079CE8 @ case 12
.4byte _08079CE8 @ case 13
.4byte _08079CE8 @ case 14
.4byte _08079CE8 @ case 15
.4byte _08079CE8 @ case 16
.4byte _08079CE8 @ case 17
.4byte _08079CE8 @ case 18
.4byte _08079CE8 @ case 19
.4byte _08079CE8 @ case 20
.4byte _08079CE8 @ case 21
.4byte _08079CE8 @ case 22
.4byte _08079CE8 @ case 23
.4byte _08079CE8 @ case 24
.4byte _08079CE8 @ case 25
.4byte _08079CE8 @ case 26
.4byte _08079CE8 @ case 27
.4byte _08079CE8 @ case 28
.4byte _08079D36 @ case 29
_08079CE8:
mov r8, r7
mov r0, r8
ldrb r4, [r0, #0x12]
movs r2, #1
rsbs r2, r2, #0
adds r0, r6, #0
movs r1, #0
bl sub_080002B4
ldr r5, _08079D3C @ =gUnk_08007CAC
adds r1, r5, #0
bl sub_08007DD6
cmp r4, r0
bne _08079D40
mov r0, r8
ldrb r4, [r0, #0x12]
adds r0, r6, #0
movs r1, #2
movs r2, #0
bl sub_080002B4
adds r1, r5, #0
bl sub_08007DD6
cmp r4, r0
bne _08079D40
ldrb r4, [r7, #0x12]
movs r1, #2
rsbs r1, r1, #0
adds r0, r6, #0
movs r2, #0
bl sub_080002B4
adds r1, r5, #0
bl sub_08007DD6
cmp r4, r0
bne _08079D40
_08079D36:
movs r0, #1
b _08079D42
.align 2, 0
_08079D3C: .4byte gUnk_08007CAC
_08079D40:
movs r0, #0
_08079D42:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_08079D48
sub_08079D48: @ 0x08079D48
push {r4, lr}
ldr r4, _08079D78 @ =gLinkEntity
adds r0, r4, #0
bl sub_08079C30
cmp r0, #0
beq _08079D72
bl sub_08008B22
cmp r0, #0
bne _08079D80
adds r0, r4, #0
bl sub_080002B8
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r1, _08079D7C @ =gUnk_0811C268
bl sub_08007DD6
cmp r0, #0
bne _08079D80
_08079D72:
movs r0, #1
b _08079D82
.align 2, 0
_08079D78: .4byte gLinkEntity
_08079D7C: .4byte gUnk_0811C268
_08079D80:
movs r0, #0
_08079D82:
pop {r4, pc}
thumb_func_start sub_08079D84
sub_08079D84: @ 0x08079D84
push {lr}
ldr r3, _08079DC0 @ =gLinkEntity
ldrb r0, [r3, #0xc]
cmp r0, #1
beq _08079D92
cmp r0, #0x18
bne _08079DBE
_08079D92:
ldr r2, _08079DC4 @ =gUnk_03003F80
adds r1, r2, #0
adds r1, #0x38
movs r0, #0x9c
strb r0, [r1]
adds r1, #1
movs r0, #2
strb r0, [r1]
adds r1, #1
movs r0, #0x3c
strb r0, [r1]
movs r0, #0xe
strb r0, [r2, #0xc]
adds r1, r3, #0
adds r1, #0x3d
movs r0, #0x7c
strb r0, [r1]
bl sub_08077B20
ldr r0, _08079DC8 @ =0x00000193
bl sub_080A3268
_08079DBE:
pop {pc}
.align 2, 0
_08079DC0: .4byte gLinkEntity
_08079DC4: .4byte gUnk_03003F80
_08079DC8: .4byte 0x00000193
thumb_func_start sub_08079DCC
sub_08079DCC: @ 0x08079DCC
push {lr}
ldr r0, _08079DFC @ =gLinkEntity
ldrb r0, [r0, #0xc]
cmp r0, #1
bne _08079DF8
ldr r3, _08079E00 @ =gUnk_03003F80
adds r1, r3, #0
adds r1, #0x38
movs r2, #0
movs r0, #0xa0
strb r0, [r1]
adds r1, #1
movs r0, #3
strb r0, [r1]
adds r0, r3, #0
adds r0, #0x3a
strb r2, [r0]
movs r0, #0xe
strb r0, [r3, #0xc]
ldr r0, _08079E04 @ =0x00000193
bl sub_080A3268
_08079DF8:
pop {pc}
.align 2, 0
_08079DFC: .4byte gLinkEntity
_08079E00: .4byte gUnk_03003F80
_08079E04: .4byte 0x00000193
thumb_func_start sub_08079E08
sub_08079E08: @ 0x08079E08
push {r4, lr}
ldr r0, _08079E50 @ =gLinkEntity
ldrh r2, [r0, #0x24]
movs r3, #0x24
ldrsh r1, [r0, r3]
adds r4, r0, #0
cmp r1, #0
beq _08079E2E
ldr r0, _08079E54 @ =gUnk_03003F80
adds r0, #0x80
ldrh r0, [r0]
adds r0, r2, r0
strh r0, [r4, #0x24]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x1f
bgt _08079E2E
movs r0, #0x20
strh r0, [r4, #0x24]
_08079E2E:
adds r2, r4, #0
ldrb r1, [r2, #0x15]
movs r0, #4
ands r0, r1
cmp r0, #0
bne _08079E40
ldrb r0, [r2, #0x15]
bl sub_08079E90
_08079E40:
adds r0, r4, #0
bl sub_0800857C
ldrb r0, [r4, #0x15]
bl sub_0807A5B8
pop {r4, pc}
.align 2, 0
_08079E50: .4byte gLinkEntity
_08079E54: .4byte gUnk_03003F80
thumb_func_start sub_08079E58
sub_08079E58: @ 0x08079E58
push {r4, r5, r6, lr}
adds r6, r0, #0
adds r4, r1, #0
ldr r5, _08079E8C @ =gLinkEntity
ldrb r1, [r5, #0x15]
movs r0, #4
ands r0, r1
cmp r0, #0
bne _08079E70
adds r0, r4, #0
bl sub_08079E90
_08079E70:
adds r0, r5, #0
bl sub_080085B0
lsls r1, r6, #0x10
asrs r1, r1, #0x10
lsls r2, r4, #0x18
lsrs r2, r2, #0x18
adds r0, r5, #0
bl sub_080027EA
adds r0, r4, #0
bl sub_0807A5B8
pop {r4, r5, r6, pc}
.align 2, 0
_08079E8C: .4byte gLinkEntity
thumb_func_start sub_08079E90
sub_08079E90: @ 0x08079E90
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
mov sb, r0
ldr r1, _08079EBC @ =gLinkEntity
ldrb r2, [r1, #0x15]
movs r0, #8
ands r0, r2
adds r7, r1, #0
cmp r0, #0
beq _08079ECA
movs r0, #0x10
ands r0, r2
cmp r0, #0
beq _08079EC0
ldr r0, [r7, #0x48]
ldrb r0, [r0, #2]
rsbs r0, r0, #0
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
b _08079EC4
.align 2, 0
_08079EBC: .4byte gLinkEntity
_08079EC0:
ldr r0, [r7, #0x48]
ldrb r5, [r0, #2]
_08079EC4:
ldr r0, [r7, #0x48]
ldrb r4, [r0, #3]
b _08079EDE
_08079ECA:
ldr r0, [r7, #0x48]
ldrb r5, [r0, #4]
cmp r2, #0
beq _08079ED6
ldrb r4, [r0, #5]
b _08079EDE
_08079ED6:
ldrb r0, [r0, #5]
rsbs r0, r0, #0
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
_08079EDE:
lsls r0, r5, #0x10
asrs r0, r0, #0x10
mov r8, r0
lsls r0, r4, #0x10
asrs r6, r0, #0x10
adds r0, r7, #0
mov r1, r8
adds r2, r6, #0
bl sub_080002CC
adds r1, r0, #0
mov r0, sb
bl sub_08079F48
cmp r0, #0
bne _08079F3C
ldrb r1, [r7, #0x15]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _08079F10
rsbs r0, r6, #0
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
b _08079F18
_08079F10:
mov r1, r8
rsbs r0, r1, #0
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
_08079F18:
ldr r0, _08079F38 @ =gLinkEntity
lsls r1, r5, #0x10
asrs r1, r1, #0x10
lsls r2, r4, #0x10
asrs r2, r2, #0x10
bl sub_080002CC
adds r1, r0, #0
mov r0, sb
bl sub_08079F48
cmp r0, #0
bne _08079F3C
movs r0, #0
b _08079F3E
.align 2, 0
_08079F38: .4byte gLinkEntity
_08079F3C:
movs r0, #1
_08079F3E:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_08079F48
sub_08079F48: @ 0x08079F48
push {lr}
ldr r3, _08079F60 @ =gUnk_0811C118
lsrs r2, r0, #2
adds r0, r2, r3
ldrb r0, [r0]
cmp r0, r1
bne _08079F68
ldr r0, _08079F64 @ =gLinkEntity
ldrb r1, [r0, #0x15]
adds r1, #4
b _08079F7C
.align 2, 0
_08079F60: .4byte gUnk_0811C118
_08079F64: .4byte gLinkEntity
_08079F68:
adds r0, r2, #1
adds r0, r0, r3
ldrb r0, [r0]
cmp r0, r1
beq _08079F76
movs r0, #0
b _08079F84
_08079F76:
ldr r0, _08079F88 @ =gLinkEntity
ldrb r1, [r0, #0x15]
subs r1, #4
_08079F7C:
movs r2, #0x1f
ands r1, r2
strb r1, [r0, #0x15]
movs r0, #1
_08079F84:
pop {pc}
.align 2, 0
_08079F88: .4byte gLinkEntity
thumb_func_start sub_08079F8C
sub_08079F8C: @ 0x08079F8C
push {lr}
ldr r2, _08079FB4 @ =gUnk_03003F80
ldr r0, [r2, #0x30]
ldr r1, _08079FB8 @ =0x22189B75
ands r0, r1
cmp r0, #0
bne _08079FB0
adds r0, r2, #0
adds r0, #0x3c
ldrb r0, [r0]
cmp r0, #0
bne _08079FB0
ldr r0, _08079FBC @ =gLinkEntity
ldrb r0, [r0, #0xc]
cmp r0, #3
beq _08079FB0
cmp r0, #0xb
bne _08079FC0
_08079FB0:
movs r0, #0
b _08079FC2
.align 2, 0
_08079FB4: .4byte gUnk_03003F80
_08079FB8: .4byte 0x22189B75
_08079FBC: .4byte gLinkEntity
_08079FC0:
movs r0, #1
_08079FC2:
pop {pc}
thumb_func_start sub_08079FC4
sub_08079FC4: @ 0x08079FC4
push {lr}
adds r1, r0, #0
ldr r0, _08079FD0 @ =gLinkEntity
bl sub_08079FD4
pop {pc}
.align 2, 0
_08079FD0: .4byte gLinkEntity
thumb_func_start sub_08079FD4
sub_08079FD4: @ 0x08079FD4
push {r4, r5, r6, lr}
sub sp, #4
adds r5, r0, #0
movs r0, #0x2e
ldrsh r2, [r5, r0]
ldr r3, _0807A008 @ =gUnk_03000BF0
ldrh r0, [r3, #6]
subs r2, r2, r0
asrs r2, r2, #4
movs r4, #0x3f
ands r2, r4
movs r6, #0x32
ldrsh r0, [r5, r6]
ldrh r3, [r3, #8]
subs r0, r0, r3
asrs r0, r0, #4
ands r0, r4
lsls r0, r0, #6
orrs r2, r0
lsls r2, r2, #1
ldr r6, _0807A00C @ =gUnk_02027EB4
cmp r1, #2
bne _0807A004
ldr r6, _0807A010 @ =gUnk_0200D654
_0807A004:
movs r4, #0
b _0807A028
.align 2, 0
_0807A008: .4byte gUnk_03000BF0
_0807A00C: .4byte gUnk_02027EB4
_0807A010: .4byte gUnk_0200D654
_0807A014:
cmp r1, #0x23
beq _0807A028
cmp r1, #0x27
beq _0807A028
ldr r0, _0807A04C @ =gUnk_080082DC
subs r1, #0x10
adds r1, r1, r0
ldrb r0, [r1]
cmp r0, #0
beq _0807A046
_0807A028:
adds r4, #1
adds r0, r5, #0
mov r1, sp
bl sub_08004202
adds r2, r0, #0
lsrs r0, r2, #1
adds r0, r6, r0
ldrb r1, [r0]
cmp r1, #0xe
bls _0807A046
cmp r1, #0xf
bls _0807A028
cmp r1, #0x1d
bne _0807A014
_0807A046:
adds r0, r4, #0
add sp, #4
pop {r4, r5, r6, pc}
.align 2, 0
_0807A04C: .4byte gUnk_080082DC
thumb_func_start sub_0807A050
sub_0807A050: @ 0x0807A050
push {lr}
ldr r3, _0807A088 @ =gUnk_03003F80
ldrb r2, [r3, #0xf]
cmp r2, #0
beq _0807A06A
ldr r0, _0807A08C @ =gUnk_02000050
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
bne _0807A06A
subs r0, r2, #1
strb r0, [r3, #0xf]
_0807A06A:
movs r0, #0
bl sub_0807A094
adds r1, r0, #0
ldr r0, _0807A088 @ =gUnk_03003F80
adds r0, #0x83
ldrb r2, [r0]
cmp r1, r2
beq _0807A084
strb r1, [r0]
ldr r0, _0807A090 @ =gLinkEntity
bl sub_0801D2B4
_0807A084:
pop {pc}
.align 2, 0
_0807A088: .4byte gUnk_03003F80
_0807A08C: .4byte gUnk_02000050
_0807A090: .4byte gLinkEntity
thumb_func_start sub_0807A094
sub_0807A094: @ 0x0807A094
push {r4, r5, lr}
adds r3, r0, #0
movs r2, #0x16
ldr r0, _0807A0AC @ =gUnk_03003F80
ldrb r0, [r0, #0xf]
cmp r0, #0
beq _0807A0B0
movs r2, #0x1b
cmp r0, #0x78
bls _0807A104
movs r2, #0x1a
b _0807A104
.align 2, 0
_0807A0AC: .4byte gUnk_03003F80
_0807A0B0:
ldr r0, _0807A0F0 @ =gUnk_02002A40
adds r1, r0, #0
adds r1, #0xb2
ldrb r1, [r1]
adds r5, r0, #0
cmp r1, #0
beq _0807A104
movs r4, #1
cmp r3, #0
bne _0807A0D6
adds r0, #0xc4
ldrh r1, [r0]
cmp r1, #0xb3
bhi _0807A0D6
movs r0, #8
ands r0, r1
cmp r0, #0
beq _0807A0D6
movs r4, #0
_0807A0D6:
cmp r4, #0
beq _0807A104
adds r0, r5, #0
adds r0, #0xb2
ldrb r0, [r0]
cmp r0, #0x30
beq _0807A102
cmp r0, #0x30
bgt _0807A0F4
cmp r0, #0x2f
beq _0807A0FA
b _0807A102
.align 2, 0
_0807A0F0: .4byte gUnk_02002A40
_0807A0F4:
cmp r0, #0x31
beq _0807A0FE
b _0807A102
_0807A0FA:
movs r2, #0x18
b _0807A104
_0807A0FE:
movs r2, #0x17
b _0807A104
_0807A102:
movs r2, #0x19
_0807A104:
adds r0, r2, #0
pop {r4, r5, pc}
thumb_func_start sub_0807A108
sub_0807A108: @ 0x0807A108
push {lr}
ldr r1, _0807A148 @ =gUnk_03004040
movs r0, #0
str r0, [r1]
str r0, [r1, #4]
str r0, [r1, #8]
ldr r2, _0807A14C @ =gUnk_03003F80
ldr r0, [r2, #0x30]
ldr r1, _0807A150 @ =0xFFBFFFFF
ands r0, r1
str r0, [r2, #0x30]
ldr r0, _0807A154 @ =gLinkEntity
ldrb r0, [r0, #0xc]
cmp r0, #0x17
bne _0807A130
adds r0, r2, #0
adds r0, #0xa0
ldrb r0, [r0]
cmp r0, #4
beq _0807A144
_0807A130:
adds r1, r2, #0
adds r1, #0xa0
ldrb r0, [r1]
subs r0, #4
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bhi _0807A144
movs r0, #1
strb r0, [r1]
_0807A144:
pop {pc}
.align 2, 0
_0807A148: .4byte gUnk_03004040
_0807A14C: .4byte gUnk_03003F80
_0807A150: .4byte 0xFFBFFFFF
_0807A154: .4byte gLinkEntity
thumb_func_start sub_0807A158
sub_0807A158: @ 0x0807A158
push {r4, lr}
ldr r4, _0807A178 @ =gUnk_02002A40
adds r0, r4, #0
adds r0, #0xb4
ldrb r0, [r0]
bl sub_0805449C
cmp r0, #0
bne _0807A17C
adds r0, r4, #0
adds r0, #0xb5
ldrb r0, [r0]
bl sub_0805449C
b _0807A17E
.align 2, 0
_0807A178: .4byte gUnk_02002A40
_0807A17C:
movs r0, #1
_0807A17E:
pop {r4, pc}
thumb_func_start sub_0807A180
sub_0807A180: @ 0x0807A180
push {r4, r5, r6, lr}
mov r6, r8
push {r6}
sub sp, #0x88
adds r4, r0, #0
adds r5, r1, #0
adds r6, r2, #0
mov r8, r3
ldr r3, _0807A1B4 @ =0xFFFC0000
mov r1, sp
movs r2, #0
bl PositionRelative
mov r1, sp
ldrb r0, [r4, #0x14]
strb r0, [r1, #0x14]
mov r0, sp
adds r1, r5, #0
adds r2, r6, #0
mov r3, r8
bl sub_08003FDE
add sp, #0x88
pop {r3}
mov r8, r3
pop {r4, r5, r6, pc}
.align 2, 0
_0807A1B4: .4byte 0xFFFC0000
thumb_func_start sub_0807A1B8
sub_0807A1B8: @ 0x0807A1B8
push {r4, lr}
ldr r4, _0807A1DC @ =gLinkEntity
adds r0, r4, #0
movs r1, #0
movs r2, #0
bl sub_0807A1E8
ldr r1, _0807A1E0 @ =gUnk_03003F80
strb r0, [r1, #0x12]
ldr r2, _0807A1E4 @ =gUnk_0811C120
ldrb r0, [r1, #0x12]
lsls r0, r0, #2
adds r0, r0, r2
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
pop {r4, pc}
.align 2, 0
_0807A1DC: .4byte gLinkEntity
_0807A1E0: .4byte gUnk_03003F80
_0807A1E4: .4byte gUnk_0811C120
thumb_func_start sub_0807A1E8
sub_0807A1E8: @ 0x0807A1E8
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r5, r0, #0
adds r6, r1, #0
mov r8, r2
movs r1, #0x2e
ldrsh r0, [r5, r1]
adds r0, r0, r6
ldr r2, _0807A288 @ =gUnk_03000BF0
ldrh r1, [r2, #6]
subs r1, r0, r1
lsrs r4, r1, #4
movs r3, #0x3f
ands r4, r3
movs r7, #0x32
ldrsh r1, [r5, r7]
add r1, r8
ldrh r2, [r2, #8]
subs r2, r1, r2
asrs r2, r2, #4
ands r2, r3
lsls r2, r2, #6
orrs r4, r2
ldr r2, _0807A28C @ =gLinkEntity
adds r2, #0x38
ldrb r2, [r2]
bl sub_080002A4
adds r2, r0, #0
ldr r1, _0807A290 @ =gUnk_03003F80
ldrh r0, [r1, #0x24]
cmp r2, r0
beq _0807A23A
adds r3, r1, #0
adds r3, #0x37
movs r0, #0
strb r0, [r3]
ldrh r7, [r1, #0x24]
cmp r2, r7
bne _0807A242
_0807A23A:
adds r3, r1, #0
ldrh r0, [r3, #0x22]
cmp r4, r0
beq _0807A24E
_0807A242:
ldr r0, _0807A290 @ =gUnk_03003F80
movs r1, #0
strh r4, [r0, #0x22]
strh r2, [r0, #0x24]
strb r1, [r0, #0x11]
adds r3, r0, #0
_0807A24E:
adds r2, r3, #0
ldrb r1, [r2, #0x11]
adds r0, r1, #0
cmp r0, #0xff
beq _0807A25C
adds r0, r1, #1
strb r0, [r2, #0x11]
_0807A25C:
adds r2, #0x37
ldrb r1, [r2]
adds r0, r1, #0
cmp r0, #0xff
beq _0807A26A
adds r0, r1, #1
strb r0, [r2]
_0807A26A:
ldrb r0, [r3, #0x12]
strb r0, [r3, #0x13]
adds r0, r5, #0
adds r1, r6, #0
mov r2, r8
bl sub_080002B4
adds r2, r0, #0
ldr r1, _0807A294 @ =gUnk_08007CAC
bl sub_08007DD6
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0807A288: .4byte gUnk_03000BF0
_0807A28C: .4byte gLinkEntity
_0807A290: .4byte gUnk_03003F80
_0807A294: .4byte gUnk_08007CAC
thumb_func_start sub_0807A298
sub_0807A298: @ 0x0807A298
movs r1, #0
strb r1, [r0, #0xb]
ldrb r1, [r0, #0x18]
movs r2, #3
orrs r1, r2
strb r1, [r0, #0x18]
ldr r2, _0807A2B4 @ =gUnk_03003F80
ldr r0, [r2, #0x30]
movs r1, #0x41
rsbs r1, r1, #0
ands r0, r1
str r0, [r2, #0x30]
bx lr
.align 2, 0
_0807A2B4: .4byte gUnk_03003F80
thumb_func_start sub_0807A2B8
sub_0807A2B8: @ 0x0807A2B8
push {lr}
bl sub_08008B22
cmp r0, #0
beq _0807A2C6
movs r0, #1
b _0807A2EC
_0807A2C6:
ldr r0, _0807A2F0 @ =gUnk_03003F80
ldrb r1, [r0, #2]
movs r0, #0xc8
ands r0, r1
cmp r0, #0
bne _0807A2EA
ldr r1, _0807A2F4 @ =gLinkEntity
adds r0, r1, #0
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #1
beq _0807A2EA
adds r0, r1, #0
movs r1, #0x44
movs r2, #0
movs r3, #0
bl sub_080A2988
_0807A2EA:
movs r0, #0
_0807A2EC:
pop {pc}
.align 2, 0
_0807A2F0: .4byte gUnk_03003F80
_0807A2F4: .4byte gLinkEntity
thumb_func_start sub_0807A2F8
sub_0807A2F8: @ 0x0807A2F8
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
adds r4, r0, #0
ldr r0, _0807A364 @ =gUnk_03000BF0
mov r8, r0
ldrb r0, [r0, #4]
cmp r0, #8
bne _0807A312
b _0807A4F2
_0807A312:
bl sub_08079778
orrs r0, r4
cmp r0, #0
bne _0807A31E
b _0807A4F2
_0807A31E:
ldr r7, _0807A368 @ =gLinkEntity
ldrb r1, [r7, #0x14]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0807A36C
movs r1, #0x2e
ldrsh r2, [r7, r1]
mov r6, r8
ldrh r0, [r6, #6]
subs r2, r2, r0
asrs r2, r2, #4
movs r3, #0x3f
ands r2, r3
movs r0, #0x32
ldrsh r1, [r7, r0]
ldr r0, [r7, #0x48]
ldrb r5, [r0, #5]
adds r0, r1, r5
ldrh r4, [r6, #8]
subs r0, r0, r4
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r0, r2
lsls r7, r0, #1
subs r1, r1, r5
subs r1, r1, r4
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r2, r1
lsls r6, r2, #1
b _0807A3A2
.align 2, 0
_0807A364: .4byte gUnk_03000BF0
_0807A368: .4byte gLinkEntity
_0807A36C:
movs r1, #0x2e
ldrsh r3, [r7, r1]
ldr r0, [r7, #0x48]
ldrb r6, [r0, #2]
adds r1, r3, r6
mov r2, r8
ldrh r5, [r2, #6]
subs r1, r1, r5
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r2, #0x32
ldrsh r0, [r7, r2]
mov r7, r8
ldrh r2, [r7, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r4
lsls r0, r0, #6
orrs r1, r0
lsls r7, r1, #1
subs r3, r3, r6
subs r3, r3, r5
asrs r3, r3, #4
ands r3, r4
orrs r3, r0
lsls r6, r3, #1
_0807A3A2:
movs r0, #0
mov sb, r0
ldr r1, _0807A3F4 @ =gLinkEntity
mov sl, r1
_0807A3AA:
movs r2, #0
mov r8, r2
mov r0, sl
mov r1, sp
adds r2, r7, #0
bl sub_08004202
adds r7, r0, #0
lsrs r4, r7, #1
adds r0, r4, #0
movs r1, #1
bl sub_080002E0
cmp r0, #0
beq _0807A3FC
lsls r0, r4, #0x10
lsrs r0, r0, #0x10
mov r1, sl
adds r1, #0x38
ldrb r1, [r1]
bl sub_080002C8
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov r2, sl
ldrb r1, [r2, #0x14]
lsrs r1, r1, #1
lsls r1, r1, #2
ldr r2, _0807A3F8 @ =gUnk_0811C1D8
adds r1, r1, r2
ldr r1, [r1]
bl sub_08007DD6
cmp r0, #0
beq _0807A468
b _0807A400
.align 2, 0
_0807A3F4: .4byte gLinkEntity
_0807A3F8: .4byte gUnk_0811C1D8
_0807A3FC:
movs r0, #1
mov r8, r0
_0807A400:
ldr r5, _0807A444 @ =gLinkEntity
adds r0, r5, #0
mov r1, sp
adds r2, r6, #0
bl sub_08004202
adds r6, r0, #0
lsrs r4, r6, #1
adds r0, r4, #0
movs r1, #1
bl sub_080002E0
cmp r0, #0
beq _0807A44C
lsls r0, r4, #0x10
lsrs r0, r0, #0x10
adds r1, r5, #0
adds r1, #0x38
ldrb r1, [r1]
bl sub_080002C8
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldrb r1, [r5, #0x14]
lsrs r1, r1, #1
lsls r1, r1, #2
ldr r2, _0807A448 @ =gUnk_0811C1D8
adds r1, r1, r2
ldr r1, [r1]
bl sub_08007DD6
cmp r0, #0
beq _0807A468
b _0807A450
.align 2, 0
_0807A444: .4byte gLinkEntity
_0807A448: .4byte gUnk_0811C1D8
_0807A44C:
movs r0, #1
add r8, r0
_0807A450:
mov r1, r8
cmp r1, #2
bne _0807A45E
mov r2, sb
cmp r2, #0
bne _0807A46E
b _0807A4F2
_0807A45E:
movs r0, #1
add sb, r0
mov r1, sb
cmp r1, #1
bls _0807A3AA
_0807A468:
mov r2, sb
cmp r2, #0
beq _0807A4F2
_0807A46E:
bl sub_08052660
cmp r0, #0
beq _0807A4B0
ldr r4, _0807A4AC @ =gLinkEntity
adds r0, r4, #0
mov r1, sp
adds r2, r7, #0
bl sub_08004202
adds r7, r0, #0
lsrs r0, r7, #1
movs r1, #2
bl sub_080002E0
cmp r0, #0
bne _0807A4F2
adds r0, r4, #0
mov r1, sp
adds r2, r6, #0
bl sub_08004202
adds r6, r0, #0
lsrs r0, r6, #1
movs r1, #2
_0807A4A0:
bl sub_080002E0
cmp r0, #0
beq _0807A4EC
b _0807A4F2
.align 2, 0
_0807A4AC: .4byte gLinkEntity
_0807A4B0:
mov r0, sb
cmp r0, #2
bne _0807A4C2
ldr r0, _0807A4E8 @ =gLinkEntity
mov r1, sp
adds r2, r7, #0
bl sub_08004202
adds r7, r0, #0
_0807A4C2:
lsrs r0, r7, #1
movs r1, #1
bl sub_080002E0
cmp r0, #0
bne _0807A4F2
mov r1, sb
cmp r1, #2
bne _0807A4E0
ldr r0, _0807A4E8 @ =gLinkEntity
mov r1, sp
adds r2, r6, #0
bl sub_08004202
adds r6, r0, #0
_0807A4E0:
lsrs r0, r6, #1
movs r1, #1
b _0807A4A0
.align 2, 0
_0807A4E8: .4byte gLinkEntity
_0807A4EC:
mov r0, sb
adds r0, #1
b _0807A4F4
_0807A4F2:
movs r0, #0
_0807A4F4:
add sp, #4
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0807A500
sub_0807A500: @ 0x0807A500
push {r4, r5, r6, lr}
ldr r6, _0807A518 @ =gLinkEntity
ldrb r0, [r6, #0x14]
lsrs r0, r0, #1
cmp r0, #1
beq _0807A574
cmp r0, #1
bgt _0807A51C
cmp r0, #0
beq _0807A526
b _0807A5B4
.align 2, 0
_0807A518: .4byte gLinkEntity
_0807A51C:
cmp r0, #2
beq _0807A554
cmp r0, #3
beq _0807A580
b _0807A5B4
_0807A526:
movs r1, #0x2e
ldrsh r0, [r6, r1]
ldr r5, _0807A550 @ =gUnk_03000BF0
ldrh r1, [r5, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r4, #0x3f
ands r0, r4
movs r2, #0x32
ldrsh r1, [r6, r2]
ldr r3, [r6, #0x48]
ldrb r2, [r3, #5]
subs r1, r1, r2
movs r2, #1
ldrsb r2, [r3, r2]
adds r1, r1, r2
ldrh r2, [r5, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r4
b _0807A5AA
.align 2, 0
_0807A550: .4byte gUnk_03000BF0
_0807A554:
movs r5, #0x2e
ldrsh r0, [r6, r5]
ldr r4, _0807A570 @ =gUnk_03000BF0
ldrh r1, [r4, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
ldr r2, [r6, #0x48]
movs r5, #0x32
ldrsh r1, [r6, r5]
ldrb r5, [r2, #5]
adds r1, r1, r5
b _0807A59A
.align 2, 0
_0807A570: .4byte gUnk_03000BF0
_0807A574:
ldr r2, [r6, #0x48]
movs r1, #0x2e
ldrsh r0, [r6, r1]
ldrb r5, [r2, #2]
adds r0, r0, r5
b _0807A58A
_0807A580:
movs r1, #0x2e
ldrsh r0, [r6, r1]
ldr r2, [r6, #0x48]
ldrb r1, [r2, #2]
subs r0, r0, r1
_0807A58A:
ldr r4, _0807A5B0 @ =gUnk_03000BF0
ldrh r1, [r4, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r5, #0x32
ldrsh r1, [r6, r5]
_0807A59A:
ldrb r2, [r2, #1]
lsls r2, r2, #0x18
asrs r2, r2, #0x18
adds r1, r1, r2
ldrh r2, [r4, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
_0807A5AA:
lsls r1, r1, #6
orrs r0, r1
b _0807A5B6
.align 2, 0
_0807A5B0: .4byte gUnk_03000BF0
_0807A5B4:
movs r0, #0
_0807A5B6:
pop {r4, r5, r6, pc}
thumb_func_start sub_0807A5B8
sub_0807A5B8: @ 0x0807A5B8
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
mov sb, r0
ldr r2, _0807A5F8 @ =gUnk_03003F80
ldrb r3, [r2, #2]
movs r4, #0x80
adds r0, r4, #0
ands r0, r3
cmp r0, #0
beq _0807A5D2
b _0807A736
_0807A5D2:
ldr r1, [r2, #0x30]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _0807A5DE
b _0807A736
_0807A5DE:
adds r0, r2, #0
adds r0, #0x26
ldrb r0, [r0]
cmp r0, #0
beq _0807A5EA
b _0807A736
_0807A5EA:
adds r0, r1, #0
ands r0, r4
cmp r0, #0
beq _0807A600
ldr r7, _0807A5FC @ =gUnk_0800833C
b _0807A63A
.align 2, 0
_0807A5F8: .4byte gUnk_03003F80
_0807A5FC: .4byte gUnk_0800833C
_0807A600:
movs r0, #0x80
lsls r0, r0, #0x11
ands r1, r0
cmp r1, #0
bne _0807A60E
cmp r3, #0
beq _0807A618
_0807A60E:
ldr r7, _0807A614 @ =gUnk_0800845C
b _0807A63A
.align 2, 0
_0807A614: .4byte gUnk_0800845C
_0807A618:
ldrb r0, [r2, #5]
cmp r0, #0
bne _0807A624
ldrb r0, [r2, #0x1c]
cmp r0, #0
beq _0807A62C
_0807A624:
ldr r7, _0807A628 @ =gUnk_080084BC
b _0807A63A
.align 2, 0
_0807A628: .4byte gUnk_080084BC
_0807A62C:
adds r0, r2, #0
adds r0, #0xaa
ldrb r0, [r0]
ldr r7, _0807A740 @ =gUnk_080082DC
cmp r0, #0
beq _0807A63A
ldr r7, _0807A744 @ =gUnk_0800851C
_0807A63A:
mov r0, sb
cmp r0, #0
beq _0807A6B8
cmp r0, #0x10
beq _0807A6B8
ldr r6, _0807A748 @ =gLinkEntity
ldr r2, [r6, #0x48]
movs r1, #0x2e
ldrsh r0, [r6, r1]
ldrb r3, [r2, #2]
adds r0, r0, r3
movs r1, #0
ldrsb r1, [r2, r1]
adds r0, r0, r1
ldr r1, _0807A74C @ =gUnk_03000BF0
mov r8, r1
ldrh r1, [r1, #6]
subs r5, r0, r1
movs r3, #0x32
ldrsh r0, [r6, r3]
movs r1, #1
ldrsb r1, [r2, r1]
adds r0, r0, r1
mov r2, r8
ldrh r1, [r2, #8]
subs r4, r0, r1
adds r0, r5, #0
adds r1, r4, #0
adds r2, r7, #0
bl sub_080086B4
cmp r0, #0
beq _0807A688
adds r0, r5, #0
adds r1, r4, #0
adds r2, r7, #0
movs r3, #1
bl sub_0807A750
_0807A688:
movs r3, #0x2e
ldrsh r1, [r6, r3]
ldr r2, [r6, #0x48]
ldrb r0, [r2, #2]
subs r1, r1, r0
movs r0, #0
ldrsb r0, [r2, r0]
adds r1, r1, r0
mov r2, r8
ldrh r0, [r2, #6]
subs r5, r1, r0
adds r0, r5, #0
adds r1, r4, #0
adds r2, r7, #0
bl sub_080086B4
cmp r0, #0
beq _0807A6B8
adds r0, r5, #0
adds r1, r4, #0
adds r2, r7, #0
movs r3, #3
bl sub_0807A750
_0807A6B8:
mov r3, sb
cmp r3, #8
beq _0807A736
cmp r3, #0x18
beq _0807A736
ldr r6, _0807A748 @ =gLinkEntity
movs r0, #0x2e
ldrsh r1, [r6, r0]
ldr r2, [r6, #0x48]
movs r0, #0
ldrsb r0, [r2, r0]
adds r1, r1, r0
ldr r3, _0807A74C @ =gUnk_03000BF0
mov r8, r3
ldrh r0, [r3, #6]
subs r5, r1, r0
movs r1, #0x32
ldrsh r0, [r6, r1]
ldrb r3, [r2, #5]
adds r0, r0, r3
movs r1, #1
ldrsb r1, [r2, r1]
adds r0, r0, r1
mov r2, r8
ldrh r1, [r2, #8]
subs r4, r0, r1
adds r0, r5, #0
adds r1, r4, #0
adds r2, r7, #0
bl sub_080086B4
cmp r0, #0
beq _0807A706
adds r0, r5, #0
adds r1, r4, #0
adds r2, r7, #0
movs r3, #2
bl sub_0807A750
_0807A706:
movs r3, #0x32
ldrsh r1, [r6, r3]
ldr r2, [r6, #0x48]
ldrb r0, [r2, #5]
subs r1, r1, r0
movs r0, #1
ldrsb r0, [r2, r0]
adds r1, r1, r0
mov r2, r8
ldrh r0, [r2, #8]
subs r4, r1, r0
adds r0, r5, #0
adds r1, r4, #0
adds r2, r7, #0
bl sub_080086B4
cmp r0, #0
beq _0807A736
adds r0, r5, #0
adds r1, r4, #0
adds r2, r7, #0
movs r3, #0
bl sub_0807A750
_0807A736:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0807A740: .4byte gUnk_080082DC
_0807A744: .4byte gUnk_0800851C
_0807A748: .4byte gLinkEntity
_0807A74C: .4byte gUnk_03000BF0
thumb_func_start sub_0807A750
sub_0807A750: @ 0x0807A750
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r7, r0, #0
adds r6, r1, #0
mov r8, r2
adds r5, r3, #0
movs r0, #1
ands r0, r5
cmp r0, #0
bne _0807A76C
movs r4, #0xf
ands r4, r6
b _0807A770
_0807A76C:
movs r4, #0xf
ands r4, r7
_0807A770:
cmp r4, #0
bne _0807A776
b _0807A88E
_0807A776:
cmp r4, #0xf
bne _0807A77C
b _0807A88E
_0807A77C:
lsrs r0, r7, #4
movs r2, #0x3f
ands r0, r2
lsrs r1, r6, #4
ands r1, r2
lsls r1, r1, #6
orrs r0, r1
ldr r1, _0807A7A8 @ =gLinkEntity
adds r1, #0x38
ldrb r1, [r1]
bl sub_080002E0
adds r1, r0, #0
cmp r1, #0xf
bls _0807A7AE
cmp r1, #0xff
beq _0807A7AC
mov r2, r8
adds r0, r1, r2
subs r0, #0x10
ldrb r1, [r0]
b _0807A7AE
.align 2, 0
_0807A7A8: .4byte gLinkEntity
_0807A7AC:
movs r1, #0xf
_0807A7AE:
ldr r0, _0807A7D8 @ =gUnk_0800823C
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
movs r0, #1
ands r0, r5
cmp r0, #0
bne _0807A824
movs r0, #0xf
ands r0, r7
movs r2, #0x80
lsls r2, r2, #8
asrs r2, r0
cmp r5, #0
bne _0807A7F4
ldr r3, _0807A7DC @ =gLinkEntity
cmp r4, #0xe
bgt _0807A7F0
lsls r0, r4, #1
adds r1, r0, r1
b _0807A7E8
.align 2, 0
_0807A7D8: .4byte gUnk_0800823C
_0807A7DC: .4byte gLinkEntity
_0807A7E0:
adds r1, #2
adds r4, #1
cmp r4, #0xe
bgt _0807A7F0
_0807A7E8:
ldrh r0, [r1]
ands r0, r2
cmp r0, #0
bne _0807A7E0
_0807A7F0:
subs r4, #1
b _0807A816
_0807A7F4:
ldr r3, _0807A800 @ =gLinkEntity
cmp r4, #0
ble _0807A814
lsls r0, r4, #1
adds r1, r0, r1
b _0807A80C
.align 2, 0
_0807A800: .4byte gLinkEntity
_0807A804:
subs r1, #2
subs r4, #1
cmp r4, #0
ble _0807A814
_0807A80C:
ldrh r0, [r1]
ands r0, r2
cmp r0, #0
bne _0807A804
_0807A814:
adds r4, #1
_0807A816:
movs r0, #0xf
ands r0, r6
subs r0, r4, r0
ldrh r1, [r3, #0x32]
adds r0, r0, r1
strh r0, [r3, #0x32]
b _0807A88E
_0807A824:
movs r3, #0xf
ands r6, r3
lsls r0, r6, #1
adds r0, r0, r1
ldrh r2, [r0]
cmp r5, #1
bne _0807A85C
subs r0, r3, r4
lsrs r2, r0
ldr r3, _0807A858 @ =gLinkEntity
cmp r4, #0
ble _0807A854
ands r5, r2
cmp r5, #0
beq _0807A854
movs r1, #1
_0807A844:
lsrs r2, r2, #1
subs r4, #1
cmp r4, #0
ble _0807A854
adds r0, r2, #0
ands r0, r1
cmp r0, #0
bne _0807A844
_0807A854:
adds r4, #1
b _0807A882
.align 2, 0
_0807A858: .4byte gLinkEntity
_0807A85C:
lsls r2, r4
ldr r3, _0807A86C @ =gLinkEntity
cmp r4, #0xe
bgt _0807A880
movs r1, #0x80
lsls r1, r1, #8
b _0807A878
.align 2, 0
_0807A86C: .4byte gLinkEntity
_0807A870:
lsls r2, r2, #1
adds r4, #1
cmp r4, #0xe
bgt _0807A880
_0807A878:
adds r0, r2, #0
ands r0, r1
cmp r0, #0
bne _0807A870
_0807A880:
subs r4, #1
_0807A882:
movs r0, #0xf
ands r0, r7
subs r0, r4, r0
ldrh r2, [r3, #0x2e]
adds r0, r0, r2
strh r0, [r3, #0x2e]
_0807A88E:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0807A894
sub_0807A894: @ 0x0807A894
push {lr}
ldrb r1, [r0, #0x15]
cmp r1, #8
beq _0807A8BA
cmp r1, #8
bgt _0807A8A6
cmp r1, #0
beq _0807A8B0
b _0807A8C8
_0807A8A6:
cmp r1, #0x10
beq _0807A8B6
cmp r1, #0x18
beq _0807A8C0
b _0807A8C8
_0807A8B0:
movs r2, #8
rsbs r2, r2, #0
b _0807A8CA
_0807A8B6:
movs r2, #5
b _0807A8CA
_0807A8BA:
movs r2, #0
movs r1, #8
b _0807A8CC
_0807A8C0:
movs r2, #0
movs r1, #8
rsbs r1, r1, #0
b _0807A8CC
_0807A8C8:
movs r2, #0
_0807A8CA:
movs r1, #0
_0807A8CC:
bl sub_080002B4
pop {pc}
.align 2, 0
thumb_func_start nullsub_505
nullsub_505: @ 0x0807A8D4
bx lr
.align 2, 0
thumb_func_start sub_0807A8D8
sub_0807A8D8: @ 0x0807A8D8
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
adds r5, r0, #0
ldr r0, _0807AA5C @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
beq _0807A8F0
b _0807A9F6
_0807A8F0:
movs r1, #0x2e
ldrsh r0, [r5, r1]
ldr r7, _0807AA60 @ =gUnk_03000BF0
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]
adds r2, #1
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r6
lsls r1, r1, #6
orrs r0, r1
ldr r1, _0807AA64 @ =gLinkEntity
adds r1, #0x38
mov sb, r1
ldrb r1, [r1]
bl sub_080002EC
adds r4, r0, #0
movs r0, #0x20
mov r8, r0
ands r4, r0
cmp r4, #0
beq _0807A94E
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldrh r0, [r7, #6]
subs r1, r1, r0
asrs r1, r1, #4
ands r1, r6
movs r2, #0x32
ldrsh r0, [r5, r2]
ldrh r2, [r7, #8]
adds r2, #1
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r6
lsls r0, r0, #6
orrs r1, r0
adds r0, r5, #0
bl sub_0807AAF8
_0807A94E:
movs r1, #0x2e
ldrsh r0, [r5, r1]
ldrh r1, [r7, #6]
subs r1, #2
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
mov r2, sb
ldrb r1, [r2]
bl sub_080002EC
adds r4, r0, #0
mov r0, r8
ands r4, r0
cmp r4, #0
beq _0807A9A2
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldrh r0, [r7, #6]
subs r0, #2
subs r1, r1, r0
asrs r1, r1, #4
ands r1, r6
movs r2, #0x32
ldrsh r0, [r5, r2]
ldrh r2, [r7, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r6
lsls r0, r0, #6
orrs r1, r0
adds r0, r5, #0
bl sub_0807AAF8
_0807A9A2:
movs r1, #0x2e
ldrsh r0, [r5, r1]
ldrh r1, [r7, #6]
adds r1, #2
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
mov r2, sb
ldrb r1, [r2]
bl sub_080002EC
adds r4, r0, #0
mov r0, r8
ands r4, r0
cmp r4, #0
beq _0807A9F6
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldrh r0, [r7, #6]
adds r0, #2
subs r1, r1, r0
asrs r1, r1, #4
ands r1, r6
movs r2, #0x32
ldrsh r0, [r5, r2]
ldrh r2, [r7, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r6
lsls r0, r0, #6
orrs r1, r0
adds r0, r5, #0
bl sub_0807AAF8
_0807A9F6:
movs r1, #0x2e
ldrsh r0, [r5, r1]
ldr r7, _0807AA60 @ =gUnk_03000BF0
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, _0807AA64 @ =gLinkEntity
adds r1, #0x38
ldrb r1, [r1]
bl sub_080002EC
adds r4, r0, #0
movs r0, #0x20
ands r0, r4
cmp r0, #0
beq _0807AA4C
movs r0, #0x2e
ldrsh r1, [r5, r0]
ldrh r0, [r7, #6]
subs r1, r1, r0
asrs r1, r1, #4
ands r1, r6
movs r2, #0x32
ldrsh r0, [r5, r2]
ldrh r2, [r7, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r6
lsls r0, r0, #6
orrs r1, r0
adds r0, r5, #0
bl sub_0807AAF8
_0807AA4C:
movs r0, #2
ands r0, r4
cmp r0, #0
beq _0807AA68
adds r0, r5, #0
bl sub_0807AABC
b _0807AA76
.align 2, 0
_0807AA5C: .4byte gUnk_03003F80
_0807AA60: .4byte gUnk_03000BF0
_0807AA64: .4byte gLinkEntity
_0807AA68:
movs r0, #4
ands r0, r4
cmp r0, #0
beq _0807AA76
adds r0, r5, #0
bl sub_0807AA80
_0807AA76:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_0807AA80
sub_0807AA80: @ 0x0807AA80
push {lr}
adds r3, r0, #0
ldr r0, _0807AAB8 @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x40
ands r0, r1
cmp r0, #0
bne _0807AAB6
adds r0, r3, #0
adds r0, #0x38
movs r1, #2
strb r1, [r0]
movs r1, #0x36
ldrsh r0, [r3, r1]
cmp r0, #0
bne _0807AAB6
ldrb r2, [r3, #0x1b]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r2
movs r2, #0x40
orrs r0, r2
strb r0, [r3, #0x1b]
ldrb r0, [r3, #0x19]
ands r1, r0
orrs r1, r2
strb r1, [r3, #0x19]
_0807AAB6:
pop {pc}
.align 2, 0
_0807AAB8: .4byte gUnk_03003F80
thumb_func_start sub_0807AABC
sub_0807AABC: @ 0x0807AABC
push {lr}
adds r3, r0, #0
ldr r0, _0807AAF4 @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x40
ands r0, r1
cmp r0, #0
bne _0807AAF2
adds r0, r3, #0
adds r0, #0x38
movs r1, #1
strb r1, [r0]
movs r1, #0x36
ldrsh r0, [r3, r1]
cmp r0, #0
bne _0807AAF2
ldrb r2, [r3, #0x1b]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r2
movs r2, #0x80
orrs r0, r2
strb r0, [r3, #0x1b]
ldrb r0, [r3, #0x19]
ands r1, r0
orrs r1, r2
strb r1, [r3, #0x19]
_0807AAF2:
pop {pc}
.align 2, 0
_0807AAF4: .4byte gUnk_03003F80
thumb_func_start sub_0807AAF8
sub_0807AAF8: @ 0x0807AAF8
push {r4, lr}
adds r3, r0, #0
adds r2, r1, #0
movs r1, #0x36
ldrsh r0, [r3, r1]
cmp r0, #0
bne _0807AB3C
adds r0, r3, #0
adds r0, #0x38
ldrb r0, [r0]
lsls r0, r0, #0x1e
orrs r2, r0
movs r3, #0
ldr r0, _0807AB40 @ =gUnk_03003F80
ldr r1, [r0, #0x40]
adds r4, r0, #0
cmp r1, r2
beq _0807AB32
adds r1, r4, #0
adds r1, #0x40
_0807AB20:
ldr r0, [r1]
stm r1!, {r2}
adds r2, r0, #0
adds r3, #1
cmp r3, #0xe
bhi _0807AB32
ldr r0, [r1]
cmp r0, r2
bne _0807AB20
_0807AB32:
lsls r0, r3, #2
adds r1, r4, #0
adds r1, #0x40
adds r0, r0, r1
str r2, [r0]
_0807AB3C:
pop {r4, pc}
.align 2, 0
_0807AB40: .4byte gUnk_03003F80
thumb_func_start sub_0807AB44
sub_0807AB44: @ 0x0807AB44
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
adds r6, r0, #0
adds r7, r1, #0
mov r8, r2
movs r1, #0x2e
ldrsh r0, [r6, r1]
adds r0, r0, r7
ldr r2, _0807ABF0 @ =gUnk_03000BF0
mov sb, r2
ldrh r1, [r2, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
mov sl, r3
ands r0, r3
movs r5, #0x32
ldrsh r1, [r6, r5]
add r1, r8
ldrh r2, [r2, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
adds r1, r6, #0
adds r1, #0x38
ldrb r1, [r1]
bl sub_080002B0
movs r1, #0xb
bl sub_0806FC50
adds r5, r0, #0
cmp r5, #0
beq _0807AC44
ldrh r0, [r5, #6]
cmp r0, #0x76
bne _0807ABF4
movs r0, #0x2a
movs r1, #1
movs r2, #0
bl CreateObject
adds r4, r0, #0
cmp r4, #0
beq _0807AC44
lsls r2, r7, #0x10
mov r0, r8
lsls r3, r0, #0x10
adds r0, r6, #0
adds r1, r4, #0
bl PositionRelative
adds r0, r4, #0
bl sub_08004168
ldrh r0, [r5, #6]
movs r2, #0x2e
ldrsh r1, [r4, r2]
mov r3, sb
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
mov r5, sl
ands r1, r5
movs r3, #0x32
ldrsh r2, [r4, r3]
mov r5, sb
ldrh r3, [r5, #8]
subs r2, r2, r3
asrs r2, r2, #4
mov r3, sl
ands r2, r3
lsls r2, r2, #6
orrs r1, r2
adds r2, r4, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0807B7D8
b _0807AC44
.align 2, 0
_0807ABF0: .4byte gUnk_03000BF0
_0807ABF4:
movs r0, #0x2a
movs r1, #2
movs r2, #0
bl CreateObject
adds r4, r0, #0
cmp r4, #0
beq _0807AC44
lsls r2, r7, #0x10
mov r0, r8
lsls r3, r0, #0x10
adds r0, r6, #0
adds r1, r4, #0
bl PositionRelative
str r5, [r4, #0x54]
ldr r0, _0807AC50 @ =0x0000404F
movs r2, #0x2e
ldrsh r1, [r4, r2]
mov r3, sb
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
mov r5, sl
ands r1, r5
movs r3, #0x32
ldrsh r2, [r4, r3]
mov r5, sb
ldrh r3, [r5, #8]
subs r2, r2, r3
asrs r2, r2, #4
mov r3, sl
ands r2, r3
lsls r2, r2, #6
orrs r1, r2
adds r2, r4, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
_0807AC44:
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0807AC50: .4byte 0x0000404F
thumb_func_start sub_0807AC54
sub_0807AC54: @ 0x0807AC54
push {lr}
adds r2, r0, #0
ldr r0, _0807AC74 @ =gUnk_03003F80
ldrb r1, [r0, #0x11]
adds r3, r0, #0
cmp r1, #0
beq _0807ACC6
ldrb r0, [r3, #0x12]
cmp r0, #0x2a
beq _0807ACA8
cmp r0, #0x2a
bgt _0807AC78
cmp r0, #0x1e
beq _0807AC82
b _0807ACC6
.align 2, 0
_0807AC74: .4byte gUnk_03003F80
_0807AC78:
cmp r0, #0x2b
beq _0807AC90
cmp r0, #0x2c
beq _0807ACB6
b _0807ACC6
_0807AC82:
ldrh r0, [r2, #0x2e]
movs r1, #0x10
rsbs r1, r1, #0
ands r1, r0
movs r0, #8
orrs r1, r0
strh r1, [r2, #0x2e]
_0807AC90:
movs r0, #0
movs r1, #0x1d
strb r1, [r2, #0xc]
strb r0, [r2, #0xd]
strh r0, [r2, #0x30]
ldr r0, _0807ACA4 @ =0x000002CF
strh r0, [r3, #8]
movs r0, #1
b _0807ACC8
.align 2, 0
_0807ACA4: .4byte 0x000002CF
_0807ACA8:
ldrh r0, [r2, #0x2e]
movs r1, #0x10
rsbs r1, r1, #0
ands r1, r0
movs r0, #8
orrs r1, r0
strh r1, [r2, #0x2e]
_0807ACB6:
movs r0, #0
movs r1, #0x1d
strb r1, [r2, #0xc]
movs r1, #1
strb r1, [r2, #0xd]
strh r0, [r2, #0x30]
movs r0, #1
b _0807ACC8
_0807ACC6:
movs r0, #0
_0807ACC8:
pop {pc}
.align 2, 0
thumb_func_start sub_0807ACCC
sub_0807ACCC: @ 0x0807ACCC
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]
adds r1, r4, #0
adds r1, #0x42
movs r0, #0
strb r0, [r1]
movs r0, #0x72
bl GetInventoryValue
movs r1, #0xc0
cmp r0, #1
bne _0807ACF4
adds r1, #0x40
_0807ACF4:
movs r2, #0x24
ldrsh r0, [r4, r2]
cmp r1, r0
ble _0807AD18
strh r1, [r4, #0x24]
ldr r0, _0807AD14 @ =gUnk_03003F80
ldrb r1, [r0, #0xd]
strb r1, [r4, #0x15]
adds r0, #0x26
ldrb r1, [r0]
movs r0, #0xf
ands r0, r1
cmp r0, #1
bne _0807ADB4
b _0807AD1E
.align 2, 0
_0807AD14: .4byte gUnk_03003F80
_0807AD18:
ldrh r0, [r4, #0x24]
subs r0, #4
strh r0, [r4, #0x24]
_0807AD1E:
ldr r2, _0807AD3C @ =gUnk_03003F80
adds r1, r2, #0
adds r1, #0x89
ldrb r0, [r1]
cmp r0, #0
bne _0807AD40
adds r0, r4, #0
bl sub_0807ADB8
cmp r0, #0
bne _0807AD74
adds r0, r4, #0
bl sub_0807AE20
b _0807AD74
.align 2, 0
_0807AD3C: .4byte gUnk_03003F80
_0807AD40:
subs r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
cmp r0, #0
beq _0807AD52
adds r0, r4, #0
bl sub_0807ADB8
b _0807AD74
_0807AD52:
adds r2, #0x26
ldrb r1, [r2]
movs r0, #0x7f
ands r0, r1
strb r0, [r2]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #4
orrs r0, r1
strb r0, [r2]
ldr r0, _0807ADA0 @ =0x00000163
bl sub_080A3268
_0807AD74:
ldr r0, _0807ADA4 @ =gUnk_03003F80
adds r0, #0x26
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0807ADA8
adds r2, r4, #0
adds r2, #0x3c
ldrb r1, [r2]
movs r0, #4
orrs r0, r1
strb r0, [r2]
subs r2, #0x13
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #6
orrs r0, r1
b _0807ADB2
.align 2, 0
_0807ADA0: .4byte 0x00000163
_0807ADA4: .4byte gUnk_03003F80
_0807ADA8:
adds r2, r4, #0
adds r2, #0x3c
ldrb r1, [r2]
movs r0, #0xfb
ands r0, r1
_0807ADB2:
strb r0, [r2]
_0807ADB4:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0807ADB8
sub_0807ADB8: @ 0x0807ADB8
push {r4, lr}
adds r2, r0, #0
ldr r3, _0807ADF4 @ =gUnk_03003F80
adds r0, r3, #0
adds r0, #0x92
ldrh r1, [r0]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _0807AE1C
movs r0, #0x26
adds r0, r0, r3
mov ip, r0
ldrb r0, [r0]
movs r1, #0x80
eors r0, r1
mov r1, ip
strb r0, [r1]
movs r1, #0x80
ands r0, r1
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #0
beq _0807ADF8
adds r1, r3, #0
adds r1, #0x89
movs r0, #0x78
strb r0, [r1]
b _0807AE0E
.align 2, 0
_0807ADF4: .4byte gUnk_03003F80
_0807ADF8:
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #4
orrs r0, r1
strb r0, [r2]
adds r0, r3, #0
adds r0, #0x89
strb r4, [r0]
_0807AE0E:
ldr r0, _0807AE18 @ =0x00000163
bl sub_080A3268
movs r0, #1
b _0807AE1E
.align 2, 0
_0807AE18: .4byte 0x00000163
_0807AE1C:
movs r0, #0
_0807AE1E:
pop {r4, pc}
thumb_func_start sub_0807AE20
sub_0807AE20: @ 0x0807AE20
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0x17
bne _0807AE32
ldr r0, _0807AE58 @ =gUnk_03003F80
ldrb r0, [r0, #0xa]
cmp r0, #0
bne _0807AE74
_0807AE32:
ldr r0, _0807AE5C @ =gUnk_03000BF0
ldrh r0, [r0]
cmp r0, #0
bne _0807AE74
ldr r0, _0807AE58 @ =gUnk_03003F80
adds r0, #0x92
ldrh r1, [r0]
movs r0, #8
ands r0, r1
cmp r0, #0
beq _0807AE74
movs r0, #0x72
bl GetInventoryValue
cmp r0, #1
bne _0807AE60
movs r0, #0xe0
lsls r0, r0, #1
b _0807AE64
.align 2, 0
_0807AE58: .4byte gUnk_03003F80
_0807AE5C: .4byte gUnk_03000BF0
_0807AE60:
movs r0, #0xc0
lsls r0, r0, #1
_0807AE64:
strh r0, [r4, #0x24]
adds r0, r4, #0
bl sub_08079520
movs r0, #0xb1
lsls r0, r0, #1
bl sub_080A3268
_0807AE74:
movs r0, #0x10
bl sub_080793E4
cmp r0, #0
beq _0807AEA8
adds r1, r4, #0
adds r1, #0x3d
movs r0, #0x14
strb r0, [r1]
adds r1, #5
movs r0, #4
strb r0, [r1]
ldrb r0, [r4, #0x14]
lsls r0, r0, #2
movs r1, #0x10
eors r0, r1
adds r1, r4, #0
adds r1, #0x3e
strb r0, [r1]
movs r0, #2
rsbs r0, r0, #0
bl ModHealth
movs r0, #0x7a
bl sub_080A3268
_0807AEA8:
ldrb r1, [r4, #0x15]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0807AECC
ldr r0, _0807AEC8 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #0xf
ands r0, r1
cmp r0, #0
bne _0807AEDE
adds r0, r4, #0
movs r1, #4
bl sub_080A2A84
b _0807AEDE
.align 2, 0
_0807AEC8: .4byte gUnk_030010A0
_0807AECC:
ldr r0, _0807AEE0 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #7
ands r0, r1
cmp r0, #0
bne _0807AEDE
adds r0, r4, #0
bl sub_080A2A64
_0807AEDE:
pop {r4, pc}
.align 2, 0
_0807AEE0: .4byte gUnk_030010A0
thumb_func_start sub_0807AEE4
sub_0807AEE4: @ 0x0807AEE4
push {r4, lr}
ldr r0, _0807AFE4 @ =gUnk_03003F80
adds r4, r0, #0
adds r4, #0xac
movs r0, #0
strh r0, [r4]
movs r0, #0x48
bl GetInventoryValue
cmp r0, #1
bne _0807AF02
ldrh r0, [r4]
movs r1, #1
orrs r0, r1
strh r0, [r4]
_0807AF02:
movs r0, #0x49
bl GetInventoryValue
cmp r0, #1
bne _0807AF14
ldrh r0, [r4]
movs r1, #2
orrs r0, r1
strh r0, [r4]
_0807AF14:
movs r0, #0x4a
bl GetInventoryValue
cmp r0, #1
bne _0807AF26
ldrh r0, [r4]
movs r1, #4
orrs r0, r1
strh r0, [r4]
_0807AF26:
movs r0, #0x4b
bl GetInventoryValue
cmp r0, #1
bne _0807AF38
ldrh r0, [r4]
movs r1, #8
orrs r0, r1
strh r0, [r4]
_0807AF38:
movs r0, #0x4c
bl GetInventoryValue
cmp r0, #1
bne _0807AF4A
ldrh r0, [r4]
movs r1, #0x10
orrs r0, r1
strh r0, [r4]
_0807AF4A:
movs r0, #0x4d
bl GetInventoryValue
cmp r0, #1
bne _0807AF5C
ldrh r0, [r4]
movs r1, #0x20
orrs r0, r1
strh r0, [r4]
_0807AF5C:
movs r0, #0x4e
bl GetInventoryValue
cmp r0, #1
bne _0807AF6E
ldrh r0, [r4]
movs r1, #0x40
orrs r0, r1
strh r0, [r4]
_0807AF6E:
movs r0, #0x4f
bl GetInventoryValue
cmp r0, #1
bne _0807AF80
ldrh r0, [r4]
movs r1, #0x80
orrs r0, r1
strh r0, [r4]
_0807AF80:
movs r0, #6
bl GetInventoryValue
cmp r0, #1
bne _0807AF96
ldrh r0, [r4]
movs r2, #0x80
lsls r2, r2, #1
adds r1, r2, #0
orrs r0, r1
strh r0, [r4]
_0807AF96:
movs r0, #0x73
bl GetInventoryValue
cmp r0, #1
bne _0807AFAC
ldrh r0, [r4]
movs r3, #0x80
lsls r3, r3, #2
adds r1, r3, #0
orrs r0, r1
strh r0, [r4]
_0807AFAC:
movs r0, #0x74
bl GetInventoryValue
cmp r0, #1
bne _0807AFC6
ldr r0, _0807AFE4 @ =gUnk_03003F80
adds r0, #0xac
ldrh r2, [r0]
movs r3, #0x80
lsls r3, r3, #3
adds r1, r3, #0
orrs r1, r2
strh r1, [r0]
_0807AFC6:
movs r0, #0x75
bl GetInventoryValue
cmp r0, #1
bne _0807AFE0
ldr r0, _0807AFE4 @ =gUnk_03003F80
adds r0, #0xac
ldrh r2, [r0]
movs r3, #0x80
lsls r3, r3, #4
adds r1, r3, #0
orrs r1, r2
strh r1, [r0]
_0807AFE0:
pop {r4, pc}
.align 2, 0
_0807AFE4: .4byte gUnk_03003F80
thumb_func_start sub_0807AFE8
sub_0807AFE8: @ 0x0807AFE8
push {lr}
bl sub_08077B20
ldr r0, _0807B00C @ =gLinkEntity
movs r1, #0x43
movs r2, #0
bl CreateFX
adds r1, r0, #0
cmp r1, #0
beq _0807B004
ldrh r0, [r1, #0x32]
adds r0, #1
strh r0, [r1, #0x32]
_0807B004:
ldr r1, _0807B010 @ =gUnk_03003F80
movs r0, #9
strb r0, [r1, #0xc]
pop {pc}
.align 2, 0
_0807B00C: .4byte gLinkEntity
_0807B010: .4byte gUnk_03003F80
thumb_func_start sub_0807B014
sub_0807B014: @ 0x0807B014
push {lr}
ldr r2, _0807B03C @ =gUnk_03003F80
adds r0, r2, #0
adds r0, #0xac
ldrh r1, [r0]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _0807B044
ldr r0, _0807B040 @ =gUnk_02002A40
adds r1, r0, #0
adds r1, #0xaa
adds r0, #0xab
ldrb r1, [r1]
ldrb r0, [r0]
cmp r1, r0
bne _0807B044
movs r0, #0xf
b _0807B066
.align 2, 0
_0807B03C: .4byte gUnk_03003F80
_0807B040: .4byte gUnk_02002A40
_0807B044:
adds r0, r2, #0
adds r0, #0xac
ldrh r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0807B064
ldr r0, _0807B060 @ =gUnk_02002A40
adds r0, #0xaa
ldrb r0, [r0]
cmp r0, #8
bhi _0807B064
movs r0, #0x16
b _0807B066
.align 2, 0
_0807B060: .4byte gUnk_02002A40
_0807B064:
movs r0, #0
_0807B066:
pop {pc}
thumb_func_start sub_0807B068
sub_0807B068: @ 0x0807B068
push {lr}
ldr r2, _0807B090 @ =gUnk_03003F80
ldrb r1, [r2, #0x1e]
ldrb r0, [r2, #4]
orrs r0, r1
cmp r0, #0
bne _0807B0C2
adds r0, r2, #0
adds r0, #0x26
ldrb r1, [r0]
cmp r1, #0
beq _0807B0A4
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0807B098
ldr r0, _0807B094 @ =0x00000C1C
strh r0, [r2, #8]
b _0807B0C2
.align 2, 0
_0807B090: .4byte gUnk_03003F80
_0807B094: .4byte 0x00000C1C
_0807B098:
ldr r0, _0807B0A0 @ =0x00000C0C
strh r0, [r2, #8]
b _0807B0C2
.align 2, 0
_0807B0A0: .4byte 0x00000C0C
_0807B0A4:
ldrb r1, [r2, #0xd]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0807B0B8
ldrh r0, [r2, #8]
ldr r1, _0807B0B4 @ =0x00000C18
b _0807B0BC
.align 2, 0
_0807B0B4: .4byte 0x00000C18
_0807B0B8:
ldrh r0, [r2, #8]
ldr r1, _0807B0C4 @ =0x00000C04
_0807B0BC:
cmp r0, r1
beq _0807B0C2
strh r1, [r2, #8]
_0807B0C2:
pop {pc}
.align 2, 0
_0807B0C4: .4byte 0x00000C04
thumb_func_start sub_0807B0C8
sub_0807B0C8: @ 0x0807B0C8
push {r4, lr}
ldr r4, _0807B0F8 @ =gLinkEntity
adds r0, r4, #0
movs r1, #0
movs r2, #0
bl sub_0806FEBC
adds r0, r4, #0
movs r1, #1
movs r2, #0
bl sub_0806FEBC
adds r0, r4, #0
movs r1, #2
adds r2, r4, #0
bl sub_0806FEBC
adds r0, r4, #0
movs r1, #3
movs r2, #0
bl sub_0806FEBC
pop {r4, pc}
.align 2, 0
_0807B0F8: .4byte gLinkEntity
thumb_func_start sub_0807B0FC
sub_0807B0FC: @ 0x0807B0FC
push {lr}
ldr r2, _0807B110 @ =gUnk_0811C27C
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0807B110: .4byte gUnk_0811C27C
thumb_func_start sub_0807B114
sub_0807B114: @ 0x0807B114
movs r1, #1
strb r1, [r0, #0xd]
ldr r1, _0807B124 @ =gUnk_03003F80
adds r1, #0x38
ldrb r1, [r1]
adds r0, #0x6c
strb r1, [r0]
bx lr
.align 2, 0
_0807B124: .4byte gUnk_03003F80
thumb_func_start sub_0807B128
sub_0807B128: @ 0x0807B128
push {lr}
ldr r2, _0807B140 @ =gUnk_0811C284
adds r1, r0, #0
adds r1, #0x6c
ldrb r1, [r1]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0807B140: .4byte gUnk_0811C284
thumb_func_start sub_0807B144
sub_0807B144: @ 0x0807B144
push {lr}
ldrb r2, [r0, #0x18]
movs r1, #4
rsbs r1, r1, #0
ands r1, r2
movs r2, #1
orrs r1, r2
strb r1, [r0, #0x18]
ldrb r1, [r0, #0x14]
lsls r1, r1, #2
strb r1, [r0, #0x15]
movs r1, #0xa0
strh r1, [r0, #0x24]
movs r1, #0x80
lsls r1, r1, #0xb
str r1, [r0, #0x20]
ldr r1, _0807B170 @ =gUnk_03003F80
movs r0, #0x81
strb r0, [r1, #2]
bl sub_080791BC
pop {pc}
.align 2, 0
_0807B170: .4byte gUnk_03003F80
thumb_func_start nullsub_506
nullsub_506: @ 0x0807B174
bx lr
.align 2, 0
thumb_func_start sub_0807B178
sub_0807B178: @ 0x0807B178
push {lr}
ldrb r2, [r0, #0x18]
movs r1, #4
rsbs r1, r1, #0
ands r1, r2
movs r2, #1
orrs r1, r2
strb r1, [r0, #0x18]
movs r2, #0
movs r1, #0x10
strb r1, [r0, #0x15]
strh r2, [r0, #0x24]
movs r1, #0x80
lsls r1, r1, #0xb
str r1, [r0, #0x20]
ldr r1, _0807B1A4 @ =gUnk_03003F80
movs r0, #0x81
strb r0, [r1, #2]
bl sub_080791BC
pop {pc}
.align 2, 0
_0807B1A4: .4byte gUnk_03003F80
thumb_func_start sub_0807B1A8
sub_0807B1A8: @ 0x0807B1A8
push {r4, lr}
adds r4, r0, #0
ldr r1, _0807B1D4 @ =gUnk_0811C298
adds r0, #0x6e
ldrb r0, [r0]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
ldr r0, _0807B1D8 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #7
ands r0, r1
cmp r0, #0
bne _0807B1D0
adds r0, r4, #0
bl sub_080A2B80
_0807B1D0:
pop {r4, pc}
.align 2, 0
_0807B1D4: .4byte gUnk_0811C298
_0807B1D8: .4byte gUnk_030010A0
thumb_func_start sub_0807B1DC
sub_0807B1DC: @ 0x0807B1DC
adds r2, r0, #0
adds r2, #0x6e
ldrb r1, [r2]
adds r1, #1
strb r1, [r2]
movs r1, #0x1e
strb r1, [r0, #0xe]
bx lr
thumb_func_start sub_0807B1EC
sub_0807B1EC: @ 0x0807B1EC
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xe]
subs r0, #1
strb r0, [r2, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0807B212
adds r1, r2, #0
adds r1, #0x6e
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
movs r0, #0x80
lsls r0, r0, #9
str r0, [r2, #0x20]
ldr r1, _0807B214 @ =gUnk_03003F80
ldr r0, _0807B218 @ =0x000002C2
strh r0, [r1, #8]
_0807B212:
pop {pc}
.align 2, 0
_0807B214: .4byte gUnk_03003F80
_0807B218: .4byte 0x000002C2
thumb_func_start sub_0807B21C
sub_0807B21C: @ 0x0807B21C
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
ldr r0, [r4, #0x20]
cmp r0, #0
bge _0807B236
movs r1, #0x80
lsls r1, r1, #3
adds r0, r4, #0
bl sub_08003FC4
b _0807B240
_0807B236:
movs r1, #0x80
lsls r1, r1, #4
adds r0, r4, #0
bl sub_08003FC4
_0807B240:
ldr r1, [r4, #0x20]
ldr r0, _0807B260 @ =0xFFFF8000
cmp r1, r0
bge _0807B25E
movs r1, #0
movs r0, #0x78
strb r0, [r4, #0xe]
strb r1, [r4, #0xf]
adds r1, r4, #0
adds r1, #0x6e
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r0, [r4, #0x34]
str r0, [r4, #0x68]
_0807B25E:
pop {r4, pc}
.align 2, 0
_0807B260: .4byte 0xFFFF8000
thumb_func_start sub_0807B264
sub_0807B264: @ 0x0807B264
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
ldrb r0, [r4, #0xf]
adds r0, #2
strb r0, [r4, #0xf]
ldr r1, _0807B2B4 @ =gUnk_080C9160
ldrb r0, [r4, #0xf]
lsls r0, r0, #1
adds r0, r0, r1
movs r2, #0
ldrsh r1, [r0, r2]
asrs r1, r1, #7
lsls r1, r1, #0x10
ldr r0, [r4, #0x68]
adds r0, r0, r1
str r0, [r4, #0x34]
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0807B2B0
movs r0, #0x50
strb r0, [r4, #0xe]
movs r0, #0x80
lsls r0, r0, #8
str r0, [r4, #0x20]
adds r1, r4, #0
adds r1, #0x6e
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
movs r0, #0xa9
lsls r0, r0, #1
bl sub_080A3268
_0807B2B0:
pop {r4, pc}
.align 2, 0
_0807B2B4: .4byte gUnk_080C9160
thumb_func_start sub_0807B2B8
sub_0807B2B8: @ 0x0807B2B8
push {r4, lr}
adds r4, r0, #0
ldr r1, _0807B2F0 @ =0xFFFFE000
bl sub_08003FC4
adds r0, r4, #0
bl sub_080042B8
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _0807B2EC
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0807B2EC
adds r0, r4, #0
adds r0, #0x6d
ldrb r1, [r0]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _0807B2F4 @ =gUnk_0813AD88
adds r0, r0, r1
bl sub_08080840
_0807B2EC:
pop {r4, pc}
.align 2, 0
_0807B2F0: .4byte 0xFFFFE000
_0807B2F4: .4byte gUnk_0813AD88
thumb_func_start sub_0807B2F8
sub_0807B2F8: @ 0x0807B2F8
push {lr}
adds r2, r0, #0
adds r1, r2, #0
adds r1, #0x6e
ldrb r0, [r1]
cmp r0, #0
bne _0807B310
adds r0, #1
strb r0, [r1]
adds r0, r2, #0
bl sub_0809D738
_0807B310:
pop {pc}
.align 2, 0
thumb_func_start sub_0807B314
sub_0807B314: @ 0x0807B314
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
adds r4, r1, #0
adds r6, r2, #0
ldr r0, _0807B3A0 @ =0x000007FF
cmp r5, r0
bhi _0807B410
adds r0, r4, #0
adds r1, r6, #0
bl sub_0801AF8C
adds r0, r6, #0
bl sub_0808094C
adds r2, r0, #0
lsls r1, r5, #1
ldr r3, _0807B3A4 @ =0x00006004
adds r0, r2, r3
adds r0, r0, r1
ldrh r0, [r0]
mov ip, r0
lsls r1, r4, #1
adds r0, r2, #4
adds r0, r0, r1
mov r1, ip
strh r1, [r0]
ldr r0, _0807B3A8 @ =gUnk_080B3E80
adds r0, r5, r0
ldrb r3, [r0]
ldr r1, _0807B3AC @ =0x00002004
adds r0, r2, r1
adds r0, r0, r4
strb r3, [r0]
ldr r7, _0807B3B0 @ =gUnk_03000BF0
ldrb r1, [r7, #0xf]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0807B36C
ldr r0, _0807B3B4 @ =gUnk_02025EB0
ldr r1, _0807B3AC @ =0x00002004
adds r0, r0, r1
adds r0, r4, r0
strb r3, [r0]
_0807B36C:
ldr r3, _0807B3B8 @ =0x0000B004
adds r1, r2, r3
adds r1, r1, r4
ldr r0, _0807B3BC @ =gUnk_080B37A0
adds r0, r5, r0
ldrb r0, [r0]
strb r0, [r1]
ldrb r1, [r7, #0xf]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _0807B430
movs r1, #0x3f
ands r1, r4
lsls r1, r1, #1
movs r0, #0xfc
lsls r0, r0, #4
ands r0, r4
lsls r0, r0, #2
adds r1, r1, r0
cmp r6, #2
beq _0807B3C4
lsls r1, r1, #1
ldr r0, _0807B3C0 @ =gUnk_02019EE0
b _0807B3C8
.align 2, 0
_0807B3A0: .4byte 0x000007FF
_0807B3A4: .4byte 0x00006004
_0807B3A8: .4byte gUnk_080B3E80
_0807B3AC: .4byte 0x00002004
_0807B3B0: .4byte gUnk_03000BF0
_0807B3B4: .4byte gUnk_02025EB0
_0807B3B8: .4byte 0x0000B004
_0807B3BC: .4byte gUnk_080B37A0
_0807B3C0: .4byte gUnk_02019EE0
_0807B3C4:
lsls r1, r1, #1
ldr r0, _0807B400 @ =gUnk_02002F00
_0807B3C8:
adds r3, r1, r0
mov r1, ip
lsls r0, r1, #3
ldr r1, _0807B404 @ =0x00007004
adds r0, r0, r1
adds r0, r2, r0
ldrh r1, [r0]
strh r1, [r3]
ldrh r1, [r0, #2]
strh r1, [r3, #2]
movs r1, #0x80
lsls r1, r1, #1
adds r2, r3, r1
ldrh r1, [r0, #4]
strh r1, [r2]
movs r2, #0x81
lsls r2, r2, #1
adds r1, r3, r2
ldrh r0, [r0, #6]
strh r0, [r1]
ldr r0, _0807B408 @ =gUnk_03000BF0
ldrh r0, [r0]
cmp r0, #1
beq _0807B430
ldr r1, _0807B40C @ =gUnk_02000070
movs r0, #1
strb r0, [r1]
b _0807B430
.align 2, 0
_0807B400: .4byte gUnk_02002F00
_0807B404: .4byte 0x00007004
_0807B408: .4byte gUnk_03000BF0
_0807B40C: .4byte gUnk_02000070
_0807B410:
ldr r0, _0807B424 @ =0x00003FFF
cmp r5, r0
bls _0807B428
adds r0, r5, #0
adds r1, r4, #0
adds r2, r6, #0
bl sub_0800015E
b _0807B430
.align 2, 0
_0807B424: .4byte 0x00003FFF
_0807B428:
adds r0, r4, #0
adds r1, r6, #0
bl sub_0807BA8C
_0807B430:
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_0807B434
sub_0807B434: @ 0x0807B434
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
bl sub_080002B0
cmp r0, #0x37
bhi _0807B44A
cmp r0, #0x36
blo _0807B44A
movs r0, #0
b _0807B462
_0807B44A:
lsls r0, r4, #0x10
lsrs r0, r0, #0x10
lsls r1, r5, #0x18
lsrs r1, r1, #0x18
bl sub_080002C8
adds r1, r0, #0
movs r0, #0xd
eors r1, r0
rsbs r0, r1, #0
orrs r0, r1
lsrs r0, r0, #0x1f
_0807B462:
pop {r4, r5, pc}
thumb_func_start sub_0807B464
sub_0807B464: @ 0x0807B464
push {lr}
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
bl sub_080002C8
movs r1, #0
cmp r0, #0x56
bne _0807B47A
movs r1, #1
_0807B47A:
adds r0, r1, #0
pop {pc}
.align 2, 0
thumb_func_start sub_0807B480
sub_0807B480: @ 0x0807B480
push {r4, r5, r6, r7, lr}
adds r6, r0, #0
adds r7, r1, #0
movs r1, #2
bl sub_0807B464
cmp r0, #0
beq _0807B558
adds r0, r6, #0
subs r0, #0x40
movs r1, #2
bl sub_0807B464
adds r5, r0, #0
adds r0, r6, #1
movs r1, #2
bl sub_0807B464
lsls r0, r0, #1
orrs r5, r0
adds r4, r6, #0
adds r4, #0x40
adds r0, r4, #0
movs r1, #2
bl sub_0807B464
lsls r0, r0, #2
orrs r5, r0
subs r0, r6, #1
movs r1, #2
bl sub_0807B464
lsls r0, r0, #3
orrs r5, r0
adds r0, r6, #0
adds r0, #0x41
movs r1, #1
bl sub_0807B464
lsls r0, r0, #1
orrs r5, r0
adds r0, r6, #0
adds r0, #0x3f
movs r1, #1
bl sub_0807B464
lsls r0, r0, #3
orrs r5, r0
adds r0, r4, #0
movs r1, #2
bl sub_080002B0
cmp r0, #0
beq _0807B4FA
adds r0, r6, #0
adds r0, #0x80
movs r1, #1
bl sub_0807B464
lsls r0, r0, #2
orrs r5, r0
_0807B4FA:
ldr r0, _0807B514 @ =gUnk_0811C2CC
lsls r1, r5, #1
adds r1, r1, r0
ldrh r4, [r1]
adds r0, r6, #0
movs r1, #2
bl sub_080002B0
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r2, _0807B518 @ =gUnk_0811C2EC
movs r3, #0
b _0807B51E
.align 2, 0
_0807B514: .4byte gUnk_0811C2CC
_0807B518: .4byte gUnk_0811C2EC
_0807B51C:
adds r2, #6
_0807B51E:
ldrh r1, [r2]
cmp r1, #0
beq _0807B52A
cmp r0, r1
bne _0807B51C
ldrh r3, [r2, #2]
_0807B52A:
movs r0, #1
lsls r0, r7
bics r3, r0
ldr r2, _0807B534 @ =gUnk_0811C2EC
b _0807B53A
.align 2, 0
_0807B534: .4byte gUnk_0811C2EC
_0807B538:
adds r2, #6
_0807B53A:
ldrh r0, [r2]
cmp r0, #0
beq _0807B54E
ldrh r0, [r2, #2]
cmp r3, r0
bne _0807B538
ldrh r0, [r2, #4]
cmp r5, r0
bne _0807B538
ldrh r4, [r2]
_0807B54E:
adds r0, r4, #0
adds r1, r6, #0
movs r2, #2
bl sub_0807B314
_0807B558:
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_0807B55C
sub_0807B55C: @ 0x0807B55C
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
adds r6, r1, #0
adds r7, r2, #0
bl sub_0807B464
cmp r0, #0
beq _0807B5AC
adds r0, r5, #0
subs r0, #0x40
adds r1, r6, #0
bl sub_0807B464
adds r4, r0, #0
adds r0, r5, #1
adds r1, r6, #0
bl sub_0807B464
lsls r0, r0, #1
orrs r4, r0
adds r0, r5, #0
adds r0, #0x40
adds r1, r6, #0
bl sub_0807B464
lsls r0, r0, #2
orrs r4, r0
subs r0, r5, #1
adds r1, r6, #0
bl sub_0807B464
lsls r0, r0, #3
orrs r0, r4
lsls r0, r0, #1
adds r0, r0, r7
ldrh r0, [r0]
adds r1, r5, #0
adds r2, r6, #0
bl sub_0807B314
_0807B5AC:
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_0807B5B0
sub_0807B5B0: @ 0x0807B5B0
push {r4, r5, r6, r7, lr}
adds r3, r0, #0
movs r1, #0x2e
ldrsh r0, [r3, r1]
ldr r6, _0807B5F8 @ =gUnk_0811C456
ldrb r1, [r3, #0x14]
movs r2, #6
ands r2, r1
lsls r1, r2, #1
adds r1, r1, r6
movs r4, #0
ldrsh r1, [r1, r4]
adds r0, r0, r1
ldr r5, _0807B5FC @ =gUnk_03000BF0
ldrh r1, [r5, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r4, #0x3f
ands r0, r4
movs r7, #0x32
ldrsh r1, [r3, r7]
adds r2, #1
lsls r2, r2, #1
adds r2, r2, r6
movs r3, #0
ldrsh r2, [r2, r3]
adds r1, r1, r2
ldrh r2, [r5, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r4
lsls r1, r1, #6
orrs r0, r1
bl sub_0807B600
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0807B5F8: .4byte gUnk_0811C456
_0807B5FC: .4byte gUnk_03000BF0
thumb_func_start sub_0807B600
sub_0807B600: @ 0x0807B600
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r6, r5, #0
subs r6, #0x40
lsls r0, r5, #0x10
lsrs r0, r0, #0x10
movs r1, #1
bl sub_080002C8
cmp r0, #0x56
beq _0807B61A
movs r0, #0
b _0807B76E
_0807B61A:
adds r0, r5, #0
movs r1, #1
bl sub_080002B0
adds r1, r0, #0
ldr r0, _0807B634 @ =0x0000026A
cmp r1, r0
bne _0807B638
adds r0, r5, #0
bl sub_0807B820
b _0807B76C
.align 2, 0
_0807B634: .4byte 0x0000026A
_0807B638:
ldr r0, _0807B648 @ =0x00000267
cmp r1, r0
bne _0807B64C
adds r0, r5, #0
adds r0, #0x40
bl sub_0807B820
b _0807B76C
.align 2, 0
_0807B648: .4byte 0x00000267
_0807B64C:
ldr r0, _0807B65C @ =0x0000027A
cmp r1, r0
bne _0807B660
adds r0, r5, #0
bl sub_0807B8A8
b _0807B76C
.align 2, 0
_0807B65C: .4byte 0x0000027A
_0807B660:
ldr r0, _0807B670 @ =0x00000277
cmp r1, r0
bne _0807B674
adds r0, r5, #0
adds r0, #0x40
bl sub_0807B8A8
b _0807B76C
.align 2, 0
_0807B670: .4byte 0x00000277
_0807B674:
ldr r0, _0807B684 @ =0x0000028A
cmp r1, r0
bne _0807B688
adds r0, r5, #0
bl sub_0807B930
b _0807B76C
.align 2, 0
_0807B684: .4byte 0x0000028A
_0807B688:
ldr r0, _0807B698 @ =0x00000287
cmp r1, r0
bne _0807B69C
adds r0, r5, #0
adds r0, #0x40
bl sub_0807B930
b _0807B76C
.align 2, 0
_0807B698: .4byte 0x00000287
_0807B69C:
adds r0, r5, #0
movs r1, #2
bl sub_080002B0
cmp r0, #0
beq _0807B6EC
ldr r0, _0807B6E8 @ =0x000002F2
adds r1, r5, #0
movs r2, #1
bl sub_0807B314
adds r0, r6, #0
movs r1, #1
bl sub_080002E0
cmp r0, #3
bne _0807B6CA
movs r0, #0xbd
lsls r0, r0, #2
adds r1, r6, #0
movs r2, #1
bl sub_0807B314
_0807B6CA:
adds r0, r5, #0
adds r0, #0x40
movs r1, #1
bl sub_080002E0
cmp r0, #3
bne _0807B6F8
movs r0, #0xbd
lsls r0, r0, #2
adds r1, r5, #0
movs r2, #1
bl sub_0807B314
b _0807B6F8
.align 2, 0
_0807B6E8: .4byte 0x000002F2
_0807B6EC:
movs r0, #0xbd
lsls r0, r0, #2
adds r1, r5, #0
movs r2, #1
bl sub_0807B314
_0807B6F8:
adds r0, r6, #0
movs r1, #2
bl sub_0807B464
cmp r0, #0
beq _0807B748
movs r0, #0
adds r1, r6, #0
movs r2, #2
bl sub_0807B314
adds r0, r6, #0
movs r1, #1
bl sub_080002B0
ldr r1, _0807B770 @ =0x000002F2
cmp r0, r1
bne _0807B728
movs r0, #0xbd
lsls r0, r0, #2
adds r1, r6, #0
movs r2, #1
bl sub_0807B314
_0807B728:
adds r0, r5, #1
ldr r4, _0807B774 @ =gUnk_0811C2AC
movs r1, #1
adds r2, r4, #0
bl sub_0807B55C
subs r0, r5, #1
movs r1, #1
adds r2, r4, #0
bl sub_0807B55C
adds r0, r6, #0
movs r1, #1
adds r2, r4, #0
bl sub_0807B55C
_0807B748:
adds r0, r6, #1
movs r1, #3
bl sub_0807B480
subs r0, r6, #1
movs r1, #1
bl sub_0807B480
adds r0, r6, #0
adds r0, #0x40
movs r1, #0
bl sub_0807B480
adds r0, r6, #0
subs r0, #0x40
movs r1, #2
bl sub_0807B480
_0807B76C:
movs r0, #1
_0807B76E:
pop {r4, r5, r6, pc}
.align 2, 0
_0807B770: .4byte 0x000002F2
_0807B774: .4byte gUnk_0811C2AC
thumb_func_start sub_0807B778
sub_0807B778: @ 0x0807B778
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r6, r1, #0
lsls r0, r5, #0x10
lsrs r0, r0, #0x10
lsls r1, r6, #0x18
lsrs r1, r1, #0x18
bl sub_080002C8
cmp r0, #0xd
bne _0807B7D0
adds r0, r5, #0
subs r0, #0x40
adds r1, r6, #0
bl sub_0807B434
adds r4, r0, #0
adds r0, r5, #1
adds r1, r6, #0
bl sub_0807B434
lsls r0, r0, #1
orrs r4, r0
adds r0, r5, #0
adds r0, #0x40
adds r1, r6, #0
bl sub_0807B434
lsls r0, r0, #2
orrs r4, r0
subs r0, r5, #1
adds r1, r6, #0
bl sub_0807B434
lsls r0, r0, #3
orrs r0, r4
ldr r1, _0807B7D4 @ =gUnk_0811C466
lsls r0, r0, #1
adds r0, r0, r1
ldrh r0, [r0]
adds r1, r5, #0
adds r2, r6, #0
bl sub_0807B314
_0807B7D0:
pop {r4, r5, r6, pc}
.align 2, 0
_0807B7D4: .4byte gUnk_0811C466
thumb_func_start sub_0807B7D8
sub_0807B7D8: @ 0x0807B7D8
push {r4, r5, lr}
adds r4, r1, #0
adds r5, r2, #0
cmp r0, #0x35
bne _0807B816
movs r0, #0x35
bl sub_08000152
adds r0, r4, #0
adds r1, r5, #0
bl sub_0807B778
adds r0, r4, #1
adds r1, r5, #0
bl sub_0807B778
subs r0, r4, #1
adds r1, r5, #0
bl sub_0807B778
adds r0, r4, #0
adds r0, #0x40
adds r1, r5, #0
bl sub_0807B778
adds r0, r4, #0
subs r0, #0x40
adds r1, r5, #0
bl sub_0807B778
b _0807B81E
_0807B816:
adds r1, r4, #0
adds r2, r5, #0
bl sub_0807B314
_0807B81E:
pop {r4, r5, pc}
thumb_func_start sub_0807B820
sub_0807B820: @ 0x0807B820
push {r4, r5, lr}
adds r4, r0, #0
movs r0, #0x9b
lsls r0, r0, #2
adds r5, r4, #0
subs r5, #0x41
adds r1, r5, #0
movs r2, #1
bl sub_0807B314
ldr r0, _0807B890 @ =0x00000273
adds r1, r5, #0
movs r2, #2
bl sub_0807B314
ldr r0, _0807B894 @ =0x0000026D
adds r5, #1
adds r1, r5, #0
movs r2, #1
bl sub_0807B314
movs r0, #0x9d
lsls r0, r0, #2
adds r1, r5, #0
movs r2, #2
bl sub_0807B314
ldr r0, _0807B898 @ =0x0000026E
adds r5, #1
adds r1, r5, #0
movs r2, #1
bl sub_0807B314
ldr r0, _0807B89C @ =0x00000275
adds r1, r5, #0
movs r2, #2
bl sub_0807B314
ldr r0, _0807B8A0 @ =0x0000026F
subs r1, r4, #1
movs r2, #1
bl sub_0807B314
movs r0, #0x9c
lsls r0, r0, #2
adds r1, r4, #0
movs r2, #1
bl sub_0807B314
ldr r0, _0807B8A4 @ =0x00000272
adds r4, #1
adds r1, r4, #0
movs r2, #1
bl sub_0807B314
pop {r4, r5, pc}
.align 2, 0
_0807B890: .4byte 0x00000273
_0807B894: .4byte 0x0000026D
_0807B898: .4byte 0x0000026E
_0807B89C: .4byte 0x00000275
_0807B8A0: .4byte 0x0000026F
_0807B8A4: .4byte 0x00000272
thumb_func_start sub_0807B8A8
sub_0807B8A8: @ 0x0807B8A8
push {r4, r5, lr}
adds r4, r0, #0
movs r0, #0x9f
lsls r0, r0, #2
adds r5, r4, #0
subs r5, #0x41
adds r1, r5, #0
movs r2, #1
bl sub_0807B314
ldr r0, _0807B918 @ =0x00000283
adds r1, r5, #0
movs r2, #2
bl sub_0807B314
ldr r0, _0807B91C @ =0x0000027D
adds r5, #1
adds r1, r5, #0
movs r2, #1
bl sub_0807B314
movs r0, #0xa1
lsls r0, r0, #2
adds r1, r5, #0
movs r2, #2
bl sub_0807B314
ldr r0, _0807B920 @ =0x0000027E
adds r5, #1
adds r1, r5, #0
movs r2, #1
bl sub_0807B314
ldr r0, _0807B924 @ =0x00000285
adds r1, r5, #0
movs r2, #2
bl sub_0807B314
ldr r0, _0807B928 @ =0x0000027F
subs r1, r4, #1
movs r2, #1
bl sub_0807B314
movs r0, #0xa0
lsls r0, r0, #2
adds r1, r4, #0
movs r2, #1
bl sub_0807B314
ldr r0, _0807B92C @ =0x00000282
adds r4, #1
adds r1, r4, #0
movs r2, #1
bl sub_0807B314
pop {r4, r5, pc}
.align 2, 0
_0807B918: .4byte 0x00000283
_0807B91C: .4byte 0x0000027D
_0807B920: .4byte 0x0000027E
_0807B924: .4byte 0x00000285
_0807B928: .4byte 0x0000027F
_0807B92C: .4byte 0x00000282
thumb_func_start sub_0807B930
sub_0807B930: @ 0x0807B930
push {r4, r5, lr}
adds r4, r0, #0
movs r0, #0xa3
lsls r0, r0, #2
adds r5, r4, #0
subs r5, #0x41
adds r1, r5, #0
movs r2, #1
bl sub_0807B314
ldr r0, _0807B9A0 @ =0x00000293
adds r1, r5, #0
movs r2, #2
bl sub_0807B314
ldr r0, _0807B9A4 @ =0x0000028D
adds r5, #1
adds r1, r5, #0
movs r2, #1
bl sub_0807B314
movs r0, #0xa5
lsls r0, r0, #2
adds r1, r5, #0
movs r2, #2
bl sub_0807B314
ldr r0, _0807B9A8 @ =0x0000028E
adds r5, #1
adds r1, r5, #0
movs r2, #1
bl sub_0807B314
ldr r0, _0807B9AC @ =0x00000295
adds r1, r5, #0
movs r2, #2
bl sub_0807B314
ldr r0, _0807B9B0 @ =0x0000028F
subs r1, r4, #1
movs r2, #1
bl sub_0807B314
movs r0, #0xa4
lsls r0, r0, #2
adds r1, r4, #0
movs r2, #1
bl sub_0807B314
ldr r0, _0807B9B4 @ =0x00000292
adds r4, #1
adds r1, r4, #0
movs r2, #1
bl sub_0807B314
pop {r4, r5, pc}
.align 2, 0
_0807B9A0: .4byte 0x00000293
_0807B9A4: .4byte 0x0000028D
_0807B9A8: .4byte 0x0000028E
_0807B9AC: .4byte 0x00000295
_0807B9B0: .4byte 0x0000028F
_0807B9B4: .4byte 0x00000292
thumb_func_start sub_0807B9B8
sub_0807B9B8: @ 0x0807B9B8
push {r4, r5, r6, r7, lr}
adds r7, r0, #0
adds r4, r1, #0
adds r6, r2, #0
adds r0, r4, #0
adds r1, r6, #0
bl sub_0801AF8C
adds r0, r6, #0
bl sub_0808094C
adds r5, r0, #0
lsls r1, r4, #1
adds r0, r5, #4
adds r0, r0, r1
strh r7, [r0]
lsls r1, r7, #1
ldr r2, _0807BA24 @ =0x00005004
adds r0, r5, r2
adds r0, r0, r1
ldrh r2, [r0]
ldr r0, _0807BA28 @ =0x00002004
adds r1, r5, r0
adds r1, r1, r4
ldr r0, _0807BA2C @ =gUnk_080B3E80
adds r0, r2, r0
ldrb r0, [r0]
strb r0, [r1]
ldr r0, _0807BA30 @ =0x0000B004
adds r1, r5, r0
adds r1, r1, r4
ldr r0, _0807BA34 @ =gUnk_080B37A0
adds r2, r2, r0
ldrb r0, [r2]
strb r0, [r1]
ldr r0, _0807BA38 @ =gUnk_03000BF0
ldrb r1, [r0, #0xf]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _0807BA78
movs r1, #0x3f
ands r1, r4
lsls r1, r1, #1
movs r0, #0xfc
lsls r0, r0, #4
ands r0, r4
lsls r0, r0, #2
adds r1, r1, r0
cmp r6, #2
beq _0807BA40
lsls r1, r1, #1
ldr r0, _0807BA3C @ =gUnk_02019EE0
b _0807BA44
.align 2, 0
_0807BA24: .4byte 0x00005004
_0807BA28: .4byte 0x00002004
_0807BA2C: .4byte gUnk_080B3E80
_0807BA30: .4byte 0x0000B004
_0807BA34: .4byte gUnk_080B37A0
_0807BA38: .4byte gUnk_03000BF0
_0807BA3C: .4byte gUnk_02019EE0
_0807BA40:
lsls r1, r1, #1
ldr r0, _0807BA7C @ =gUnk_02002F00
_0807BA44:
adds r3, r1, r0
lsls r0, r7, #3
ldr r1, _0807BA80 @ =0x00007004
adds r0, r0, r1
adds r0, r5, r0
ldrh r1, [r0]
strh r1, [r3]
ldrh r1, [r0, #2]
strh r1, [r3, #2]
movs r1, #0x80
lsls r1, r1, #1
adds r2, r3, r1
ldrh r1, [r0, #4]
strh r1, [r2]
movs r2, #0x81
lsls r2, r2, #1
adds r1, r3, r2
ldrh r0, [r0, #6]
strh r0, [r1]
ldr r0, _0807BA84 @ =gUnk_03000BF0
ldrh r0, [r0]
cmp r0, #1
beq _0807BA78
ldr r1, _0807BA88 @ =gUnk_02000070
movs r0, #1
strb r0, [r1]
_0807BA78:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0807BA7C: .4byte gUnk_02002F00
_0807BA80: .4byte 0x00007004
_0807BA84: .4byte gUnk_03000BF0
_0807BA88: .4byte gUnk_02000070
thumb_func_start sub_0807BA8C
sub_0807BA8C: @ 0x0807BA8C
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
adds r7, r1, #0
bl sub_0801AF8C
adds r0, r7, #0
bl sub_0808094C
adds r5, r0, #0
lsls r2, r4, #1
adds r1, r5, #4
adds r1, r1, r2
ldr r3, _0807BAFC @ =0x00003004
adds r0, r5, r3
adds r0, r0, r2
ldrh r6, [r0]
strh r6, [r1]
lsls r1, r6, #1
ldr r2, _0807BB00 @ =0x00005004
adds r0, r5, r2
adds r0, r0, r1
ldrh r2, [r0]
ldr r3, _0807BB04 @ =0x00002004
adds r1, r5, r3
adds r1, r1, r4
ldr r0, _0807BB08 @ =gUnk_080B3E80
adds r0, r2, r0
ldrb r0, [r0]
strb r0, [r1]
ldr r0, _0807BB0C @ =0x0000B004
adds r1, r5, r0
adds r1, r1, r4
ldr r0, _0807BB10 @ =gUnk_080B37A0
adds r2, r2, r0
ldrb r0, [r2]
strb r0, [r1]
ldr r0, _0807BB14 @ =gUnk_03000BF0
ldrb r1, [r0, #0xf]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _0807BB54
movs r1, #0x3f
ands r1, r4
lsls r1, r1, #1
movs r0, #0xfc
lsls r0, r0, #4
ands r0, r4
lsls r0, r0, #2
adds r1, r1, r0
cmp r7, #2
beq _0807BB1C
lsls r1, r1, #1
ldr r0, _0807BB18 @ =gUnk_02019EE0
b _0807BB20
.align 2, 0
_0807BAFC: .4byte 0x00003004
_0807BB00: .4byte 0x00005004
_0807BB04: .4byte 0x00002004
_0807BB08: .4byte gUnk_080B3E80
_0807BB0C: .4byte 0x0000B004
_0807BB10: .4byte gUnk_080B37A0
_0807BB14: .4byte gUnk_03000BF0
_0807BB18: .4byte gUnk_02019EE0
_0807BB1C:
lsls r1, r1, #1
ldr r0, _0807BB58 @ =gUnk_02002F00
_0807BB20:
adds r3, r1, r0
lsls r0, r6, #3
ldr r1, _0807BB5C @ =0x00007004
adds r0, r0, r1
adds r0, r5, r0
ldrh r1, [r0]
strh r1, [r3]
ldrh r1, [r0, #2]
strh r1, [r3, #2]
movs r1, #0x80
lsls r1, r1, #1
adds r2, r3, r1
ldrh r1, [r0, #4]
strh r1, [r2]
movs r2, #0x81
lsls r2, r2, #1
adds r1, r3, r2
ldrh r0, [r0, #6]
strh r0, [r1]
ldr r0, _0807BB60 @ =gUnk_03000BF0
ldrh r0, [r0]
cmp r0, #1
beq _0807BB54
ldr r1, _0807BB64 @ =gUnk_02000070
movs r0, #1
strb r0, [r1]
_0807BB54:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0807BB58: .4byte gUnk_02002F00
_0807BB5C: .4byte 0x00007004
_0807BB60: .4byte gUnk_03000BF0
_0807BB64: .4byte gUnk_02000070
thumb_func_start sub_0807BB68
sub_0807BB68: @ 0x0807BB68
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
adds r6, r1, #0
adds r5, r2, #0
movs r1, #0
ldrsh r0, [r4, r1]
movs r1, #1
rsbs r1, r1, #0
cmp r0, r1
beq _0807BB96
adds r7, r1, #0
_0807BB7E:
ldrh r0, [r4]
movs r2, #2
ldrsh r1, [r4, r2]
adds r1, r6, r1
adds r2, r5, #0
bl sub_0807B314
adds r4, #4
movs r1, #0
ldrsh r0, [r4, r1]
cmp r0, r7
bne _0807BB7E
_0807BB96:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0807BB98
sub_0807BB98: @ 0x0807BB98
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
adds r5, r0, #0
mov sl, r1
mov r8, r2
mov sb, r3
movs r0, #0
cmp r0, sb
bhs _0807BBD4
_0807BBB0:
movs r4, #0
adds r7, r5, #0
adds r7, #0x40
adds r6, r0, #1
cmp r4, r8
bhs _0807BBCC
_0807BBBC:
adds r1, r5, r4
ldr r0, _0807BBE0 @ =0x00004072
mov r2, sl
bl sub_0800015E
adds r4, #1
cmp r4, r8
blo _0807BBBC
_0807BBCC:
adds r5, r7, #0
adds r0, r6, #0
cmp r0, sb
blo _0807BBB0
_0807BBD4:
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0807BBE0: .4byte 0x00004072
thumb_func_start sub_0807BBE4
sub_0807BBE4: @ 0x0807BBE4
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r0, _0807BC28 @ =gUnk_0202AEB4
mov sl, r0
ldr r0, _0807BC2C @ =gUnk_02010654
mov sb, r0
ldr r5, _0807BC30 @ =0xFFFFB000
add r5, sl
ldr r4, _0807BC30 @ =0xFFFFB000
add r4, sb
ldr r2, _0807BC34 @ =0xFFFFD000
add r2, sl
ldr r1, _0807BC34 @ =0xFFFFD000
add r1, sb
movs r3, #0
ldr r0, _0807BC38 @ =0x00003FFF
mov r8, r0
ldr r0, _0807BC3C @ =gUnk_080B3E80
mov ip, r0
ldr r7, _0807BC40 @ =gUnk_080B79A7
ldr r6, _0807BC44 @ =0xFFFFC000
_0807BC14:
ldrh r0, [r5]
adds r5, #2
cmp r0, r8
bhi _0807BC48
lsls r0, r0, #1
add r0, sl
ldrh r0, [r0]
add r0, ip
b _0807BC4C
.align 2, 0
_0807BC28: .4byte gUnk_0202AEB4
_0807BC2C: .4byte gUnk_02010654
_0807BC30: .4byte 0xFFFFB000
_0807BC34: .4byte 0xFFFFD000
_0807BC38: .4byte 0x00003FFF
_0807BC3C: .4byte gUnk_080B3E80
_0807BC40: .4byte gUnk_080B79A7
_0807BC44: .4byte 0xFFFFC000
_0807BC48:
adds r0, r0, r6
adds r0, r0, r7
_0807BC4C:
ldrb r0, [r0]
strb r0, [r2]
adds r2, #1
ldrh r0, [r4]
adds r4, #2
cmp r0, r8
bhi _0807BC64
lsls r0, r0, #1
add r0, sb
ldrh r0, [r0]
add r0, ip
b _0807BC68
_0807BC64:
adds r0, r0, r6
adds r0, r0, r7
_0807BC68:
ldrb r0, [r0]
strb r0, [r1]
adds r1, #1
adds r3, #1
ldr r0, _0807BC80 @ =0x00000FFF
cmp r3, r0
bls _0807BC14
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0807BC80: .4byte 0x00000FFF
thumb_func_start sub_0807BC84
sub_0807BC84: @ 0x0807BC84
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
ldr r1, _0807BD04 @ =gUnk_03000BF0
ldrh r0, [r1, #0x1e]
lsrs r2, r0, #4
mov r8, r1
cmp r2, #0x40
bne _0807BC98
movs r2, #0x3f
_0807BC98:
ldr r1, _0807BD08 @ =gUnk_02027EB4
adds r3, r2, r1
adds r6, r1, #0
adds r6, #0x3f
ldr r0, _0807BD0C @ =gUnk_0200D654
adds r2, r2, r0
adds r5, r0, #0
adds r5, #0x3f
movs r4, #0
adds r7, r1, #0
mov ip, r0
movs r0, #0xff
_0807BCB0:
strb r0, [r3]
strb r0, [r6]
strb r0, [r2]
strb r0, [r5]
adds r3, #0x40
adds r6, #0x40
adds r2, #0x40
adds r5, #0x40
adds r4, #1
cmp r4, #0x3f
bls _0807BCB0
mov r0, r8
ldrh r1, [r0, #0x20]
ldr r0, _0807BD10 @ =0x0000FFF0
ands r0, r1
lsls r0, r0, #2
adds r3, r0, r7
movs r1, #0xfc
lsls r1, r1, #4
adds r6, r7, r1
mov r1, ip
adds r2, r0, r1
movs r5, #0xfc
lsls r5, r5, #4
add r5, ip
movs r4, #0
movs r0, #0xff
_0807BCE6:
strb r0, [r3]
adds r3, #1
strb r0, [r6]
adds r6, #1
strb r0, [r2]
adds r2, #1
strb r0, [r5]
adds r5, #1
adds r4, #1
cmp r4, #0x3f
bls _0807BCE6
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0807BD04: .4byte gUnk_03000BF0
_0807BD08: .4byte gUnk_02027EB4
_0807BD0C: .4byte gUnk_0200D654
_0807BD10: .4byte 0x0000FFF0
thumb_func_start sub_0807BD14
sub_0807BD14: @ 0x0807BD14
push {r4, r5, lr}
adds r5, r1, #0
movs r1, #0x2e
ldrsh r2, [r0, r1]
movs r3, #0x32
ldrsh r1, [r0, r3]
adds r0, r2, #0
adds r2, r5, #0
bl sub_0807BEEC
adds r3, r0, #0
cmp r3, #0xff
beq _0807BDB4
ldr r1, _0807BD68 @ =gUnk_03000BF0
movs r2, #0
movs r0, #2
strb r0, [r1, #2]
strb r2, [r1, #3]
movs r4, #1
strh r4, [r1]
strb r3, [r1, #5]
strb r5, [r1, #0x10]
bl sub_08052E8C
adds r2, r0, #0
ldr r1, _0807BD6C @ =gUnk_02033A90
ldr r3, _0807BD70 @ =0x0000085C
adds r0, r1, r3
str r2, [r0]
ldrb r0, [r1, #0xd]
ands r4, r0
cmp r4, #0
beq _0807BD98
cmp r5, #1
beq _0807BD7E
cmp r5, #1
blo _0807BD74
cmp r5, #2
beq _0807BD86
cmp r5, #3
beq _0807BD90
b _0807BD98
.align 2, 0
_0807BD68: .4byte gUnk_03000BF0
_0807BD6C: .4byte gUnk_02033A90
_0807BD70: .4byte 0x0000085C
_0807BD74:
ldrh r0, [r2, #6]
ldrh r1, [r2, #2]
subs r0, r0, r1
strh r0, [r2, #6]
b _0807BD98
_0807BD7E:
ldrh r0, [r2]
ldrh r1, [r2, #4]
adds r0, r0, r1
b _0807BD96
_0807BD86:
ldrh r0, [r2, #2]
ldrh r3, [r2, #6]
adds r0, r0, r3
strh r0, [r2, #6]
b _0807BD98
_0807BD90:
ldrh r0, [r2, #4]
ldrh r1, [r2]
subs r0, r0, r1
_0807BD96:
strh r0, [r2, #4]
_0807BD98:
ldr r2, _0807BDB0 @ =gLinkEntity
ldrb r1, [r2, #0x11]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r2, #0x11]
bl sub_0805E5A8
movs r0, #1
b _0807BDB6
.align 2, 0
_0807BDB0: .4byte gLinkEntity
_0807BDB4:
movs r0, #0
_0807BDB6:
pop {r4, r5, pc}
thumb_func_start sub_0807BDB8
sub_0807BDB8: @ 0x0807BDB8
push {r4, r5, lr}
adds r3, r0, #0
movs r5, #0xff
movs r0, #7
ands r1, r0
cmp r1, #7
bls _0807BDC8
b _0807BEE2
_0807BDC8:
lsls r0, r1, #2
ldr r1, _0807BDD4 @ =_0807BDD8
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0807BDD4: .4byte _0807BDD8
_0807BDD8: @ jump table
.4byte _0807BDF8 @ case 0
.4byte _0807BE10 @ case 1
.4byte _0807BE30 @ case 2
.4byte _0807BE4C @ case 3
.4byte _0807BE78 @ case 4
.4byte _0807BE94 @ case 5
.4byte _0807BEB4 @ case 6
.4byte _0807BEC4 @ case 7
_0807BDF8:
movs r1, #0x32
ldrsh r0, [r3, r1]
ldr r1, _0807BE0C @ =gUnk_03000BF0
ldrh r1, [r1, #8]
subs r0, r0, r1
cmp r0, #9
bhi _0807BEE2
movs r5, #0
b _0807BEE2
.align 2, 0
_0807BE0C: .4byte gUnk_03000BF0
_0807BE10:
movs r2, #0x32
ldrsh r0, [r3, r2]
ldr r2, _0807BE2C @ =gUnk_03000BF0
ldrh r1, [r2, #8]
subs r0, r0, r1
cmp r0, #9
bhi _0807BE20
movs r5, #0
_0807BE20:
ldrh r0, [r2, #0x1e]
subs r0, #0xa
movs r4, #0x2e
ldrsh r1, [r3, r4]
ldrh r2, [r2, #6]
b _0807BE6A
.align 2, 0
_0807BE2C: .4byte gUnk_03000BF0
_0807BE30:
ldr r1, _0807BE48 @ =gUnk_03000BF0
ldrh r2, [r1, #0x1e]
subs r2, #0xa
movs r4, #0x2e
ldrsh r0, [r3, r4]
ldrh r1, [r1, #6]
subs r0, r0, r1
cmp r2, r0
bhs _0807BEE2
movs r5, #1
b _0807BEE2
.align 2, 0
_0807BE48: .4byte gUnk_03000BF0
_0807BE4C:
ldr r4, _0807BE74 @ =gUnk_03000BF0
ldrh r0, [r4, #0x20]
subs r0, #0xa
movs r2, #0x32
ldrsh r1, [r3, r2]
ldrh r2, [r4, #8]
subs r1, r1, r2
cmp r0, r1
bhs _0807BE60
movs r5, #2
_0807BE60:
ldrh r0, [r4, #0x1e]
subs r0, #0xa
movs r2, #0x2e
ldrsh r1, [r3, r2]
ldrh r2, [r4, #6]
_0807BE6A:
subs r1, r1, r2
cmp r0, r1
bhs _0807BEE2
movs r5, #1
b _0807BEE2
.align 2, 0
_0807BE74: .4byte gUnk_03000BF0
_0807BE78:
ldr r1, _0807BE90 @ =gUnk_03000BF0
ldrh r2, [r1, #0x20]
subs r2, #0xa
movs r4, #0x32
ldrsh r0, [r3, r4]
ldrh r1, [r1, #8]
subs r0, r0, r1
cmp r2, r0
bhs _0807BEE2
movs r5, #2
b _0807BEE2
.align 2, 0
_0807BE90: .4byte gUnk_03000BF0
_0807BE94:
ldr r4, _0807BEB0 @ =gUnk_03000BF0
ldrh r0, [r4, #0x20]
subs r0, #0xa
movs r2, #0x32
ldrsh r1, [r3, r2]
ldrh r2, [r4, #8]
subs r1, r1, r2
cmp r0, r1
bhs _0807BEA8
movs r5, #2
_0807BEA8:
movs r1, #0x2e
ldrsh r0, [r3, r1]
ldrh r1, [r4, #6]
b _0807BEDA
.align 2, 0
_0807BEB0: .4byte gUnk_03000BF0
_0807BEB4:
movs r2, #0x2e
ldrsh r0, [r3, r2]
ldr r1, _0807BEC0 @ =gUnk_03000BF0
ldrh r1, [r1, #6]
b _0807BEDA
.align 2, 0
_0807BEC0: .4byte gUnk_03000BF0
_0807BEC4:
movs r4, #0x32
ldrsh r0, [r3, r4]
ldr r2, _0807BEE8 @ =gUnk_03000BF0
ldrh r1, [r2, #8]
subs r0, r0, r1
cmp r0, #9
bhi _0807BED4
movs r5, #0
_0807BED4:
movs r1, #0x2e
ldrsh r0, [r3, r1]
ldrh r1, [r2, #6]
_0807BEDA:
subs r0, r0, r1
cmp r0, #9
bhi _0807BEE2
movs r5, #3
_0807BEE2:
adds r0, r5, #0
pop {r4, r5, pc}
.align 2, 0
_0807BEE8: .4byte gUnk_03000BF0
thumb_func_start sub_0807BEEC
sub_0807BEEC: @ 0x0807BEEC
push {r4, r5, r6, r7, lr}
adds r6, r0, #0
adds r7, r1, #0
ldr r0, _0807BF04 @ =gUnk_02033A90
ldrb r1, [r0, #0xd]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0807BF0C
ldr r0, _0807BF08 @ =gUnk_03000BF0
ldrb r0, [r0, #5]
b _0807BF7C
.align 2, 0
_0807BF04: .4byte gUnk_02033A90
_0807BF08: .4byte gUnk_03000BF0
_0807BF0C:
cmp r2, #1
beq _0807BF2C
cmp r2, #1
blo _0807BF1E
cmp r2, #2
beq _0807BF40
cmp r2, #3
beq _0807BF58
b _0807BF7A
_0807BF1E:
ldr r0, _0807BF28 @ =gUnk_03000BF0
ldrh r0, [r0, #8]
adds r7, r0, #0
subs r7, #0x10
b _0807BF60
.align 2, 0
_0807BF28: .4byte gUnk_03000BF0
_0807BF2C:
ldr r0, _0807BF3C @ =gUnk_03000BF0
ldrh r1, [r0, #6]
ldrh r0, [r0, #0x1e]
adds r1, r1, r0
adds r6, r1, #0
adds r6, #0x10
b _0807BF60
.align 2, 0
_0807BF3C: .4byte gUnk_03000BF0
_0807BF40:
ldr r0, _0807BF50 @ =gUnk_03000BF0
ldrh r1, [r0, #8]
ldrh r0, [r0, #0x20]
adds r1, r1, r0
adds r7, r1, #0
adds r7, #0x10
b _0807BF60
.align 2, 0
_0807BF50: .4byte gUnk_03000BF0
_0807BF54:
adds r0, r4, #0
b _0807BF7C
_0807BF58:
ldr r0, _0807BF80 @ =gUnk_03000BF0
ldrh r0, [r0, #6]
adds r6, r0, #0
subs r6, #0x10
_0807BF60:
ldr r5, _0807BF84 @ =gUnk_02033ACC
movs r4, #0
_0807BF64:
adds r0, r6, #0
adds r1, r7, #0
adds r2, r5, #0
bl sub_0807BF88
cmp r0, #0
bne _0807BF54
adds r4, #1
adds r5, #0x20
cmp r4, #0x3f
bls _0807BF64
_0807BF7A:
movs r0, #0xff
_0807BF7C:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0807BF80: .4byte gUnk_03000BF0
_0807BF84: .4byte gUnk_02033ACC
thumb_func_start sub_0807BF88
sub_0807BF88: @ 0x0807BF88
push {r4, lr}
adds r3, r2, #0
ldrh r2, [r3, #4]
subs r0, r0, r2
ldrh r2, [r3, #6]
subs r1, r1, r2
movs r2, #0
ldrh r4, [r3]
cmp r0, r4
bhs _0807BFA4
ldrh r3, [r3, #2]
cmp r1, r3
bhs _0807BFA4
movs r2, #1
_0807BFA4:
adds r0, r2, #0
pop {r4, pc}
thumb_func_start sub_0807BFA8
sub_0807BFA8: @ 0x0807BFA8
ldr r2, _0807BFC4 @ =gUnk_03000BF0
ldr r0, _0807BFC8 @ =gUnk_02033A90
ldr r1, _0807BFCC @ =0x0000085C
adds r0, r0, r1
ldr r1, [r0]
ldrh r0, [r1, #4]
strh r0, [r2, #6]
ldrh r0, [r1, #6]
strh r0, [r2, #8]
ldrh r0, [r1]
strh r0, [r2, #0x1e]
ldrh r0, [r1, #2]
strh r0, [r2, #0x20]
bx lr
.align 2, 0
_0807BFC4: .4byte gUnk_03000BF0
_0807BFC8: .4byte gUnk_02033A90
_0807BFCC: .4byte 0x0000085C
thumb_func_start sub_0807BFD0
sub_0807BFD0: @ 0x0807BFD0
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
bl sub_0801B170
bl sub_0807BFA8
ldr r7, _0807C0B8 @ =0x0000FFFF
ldr r6, _0807C0BC @ =gUnk_0202AEB4
movs r0, #0x80
lsls r0, r0, #5
mov r8, r0
adds r0, r7, #0
adds r1, r6, #0
mov r2, r8
bl sub_0801D5EC
movs r5, #0
strh r5, [r6]
ldr r4, _0807C0C0 @ =gUnk_02010654
adds r0, r7, #0
adds r1, r4, #0
mov r2, r8
bl sub_0801D5EC
strh r5, [r4]
ldr r2, _0807C0C4 @ =gUnk_03000BF0
ldr r0, _0807C0C8 @ =gUnk_02033A90
ldr r1, _0807C0CC @ =0x0000085C
adds r4, r0, r1
ldr r0, [r4]
ldr r1, [r2, #0x34]
ldr r0, [r0, #8]
cmp r1, r0
beq _0807C01C
str r0, [r2, #0x34]
bl sub_080197D4
_0807C01C:
ldr r0, [r4]
ldr r0, [r0, #0x10]
bl sub_080197D4
ldr r1, _0807C0D0 @ =gUnk_020176A0
adds r0, r1, #0
adds r0, #0x60
movs r2, #0xa8
lsls r2, r2, #2
adds r1, r1, r2
movs r2, #0x20
bl sub_0801D66C
ldr r2, _0807C0D4 @ =gUnk_0200B644
ldr r0, [r2]
movs r1, #0x80
lsls r1, r1, #0xe
orrs r0, r1
str r0, [r2]
ldr r0, [r4]
ldr r0, [r0, #0x14]
cmp r0, #0
beq _0807C04E
bl sub_0801B130
_0807C04E:
adds r5, r6, #0
movs r0, #0x80
lsls r0, r0, #5
adds r6, r5, r0
adds r0, r7, #0
adds r1, r6, #0
mov r2, r8
bl sub_0801D5EC
movs r2, #0
ldr r3, _0807C0D8 @ =0x000007FF
adds r4, r7, #0
_0807C066:
ldrh r0, [r5]
cmp r0, r3
bhi _0807C078
lsls r0, r0, #1
adds r1, r0, r6
ldrh r0, [r1]
cmp r0, r4
bne _0807C078
strh r2, [r1]
_0807C078:
adds r2, #1
adds r5, #2
cmp r2, r3
ble _0807C066
movs r2, #0x80
lsls r2, r2, #5
ldr r5, _0807C0C0 @ =gUnk_02010654
adds r6, r5, r2
ldr r4, _0807C0B8 @ =0x0000FFFF
adds r0, r4, #0
adds r1, r6, #0
bl sub_0801D5EC
movs r2, #0
ldr r3, _0807C0D8 @ =0x000007FF
_0807C096:
ldrh r0, [r5]
cmp r0, r3
bhi _0807C0A8
lsls r0, r0, #1
adds r1, r0, r6
ldrh r0, [r1]
cmp r0, r4
bne _0807C0A8
strh r2, [r1]
_0807C0A8:
adds r2, #1
adds r5, #2
cmp r2, r3
ble _0807C096
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0807C0B8: .4byte 0x0000FFFF
_0807C0BC: .4byte gUnk_0202AEB4
_0807C0C0: .4byte gUnk_02010654
_0807C0C4: .4byte gUnk_03000BF0
_0807C0C8: .4byte gUnk_02033A90
_0807C0CC: .4byte 0x0000085C
_0807C0D0: .4byte gUnk_020176A0
_0807C0D4: .4byte gUnk_0200B644
_0807C0D8: .4byte 0x000007FF
thumb_func_start sub_0807C0DC
sub_0807C0DC: @ 0x0807C0DC
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
bl sub_0807BFA8
ldr r7, _0807C158 @ =gUnk_03000BF0
ldrb r1, [r7, #0xf]
movs r0, #0xfc
ands r0, r1
strb r0, [r7, #0xf]
ldr r5, _0807C15C @ =gUnk_0200B654
movs r6, #0x80
lsls r6, r6, #6
adds r0, r5, #0
adds r1, r6, #0
bl sub_0801D630
adds r0, r5, r6
movs r1, #0x80
lsls r1, r1, #5
bl sub_0801D630
ldr r0, _0807C160 @ =gUnk_02019EE0
movs r4, #0x80
lsls r4, r4, #8
adds r1, r4, #0
bl sub_0801D630
ldr r0, _0807C164 @ =gUnk_02002F00
adds r1, r4, #0
bl sub_0801D630
ldr r0, _0807C168 @ =gUnk_02033A90
ldr r1, _0807C16C @ =0x0000085C
adds r0, r0, r1
ldr r0, [r0]
ldr r0, [r0, #0xc]
bl sub_080197D4
ldr r2, _0807C170 @ =gUnk_02025EB0
ldrh r1, [r2, #4]
ldr r0, _0807C174 @ =0x0000FFFF
cmp r1, r0
beq _0807C178
adds r0, r2, #4
ldrh r1, [r7, #0x1e]
lsrs r1, r1, #4
ldrh r2, [r7, #0x20]
lsrs r2, r2, #4
bl sub_0807C8B0
ldrh r1, [r7, #0x1e]
lsrs r1, r1, #4
ldrh r2, [r7, #0x20]
lsrs r2, r2, #4
adds r0, r5, #0
bl sub_0807C8B0
movs r2, #0
mov sb, r2
b _0807C184
.align 2, 0
_0807C158: .4byte gUnk_03000BF0
_0807C15C: .4byte gUnk_0200B654
_0807C160: .4byte gUnk_02019EE0
_0807C164: .4byte gUnk_02002F00
_0807C168: .4byte gUnk_02033A90
_0807C16C: .4byte 0x0000085C
_0807C170: .4byte gUnk_02025EB0
_0807C174: .4byte 0x0000FFFF
_0807C178:
adds r0, r2, #4
adds r1, r6, #0
bl sub_0801D630
movs r3, #1
mov sb, r3
_0807C184:
ldr r0, _0807C1B0 @ =gUnk_030010A0
adds r0, #0x2d
ldrb r0, [r0]
cmp r0, #0
bne _0807C1BC
ldr r0, _0807C1B4 @ =gUnk_02025EB4
movs r2, #0xc0
lsls r2, r2, #6
adds r1, r0, r2
movs r4, #0x80
lsls r4, r4, #6
adds r2, r4, #0
bl sub_0801D66C
ldr r0, _0807C1B8 @ =gUnk_0200B654
movs r3, #0xc0
lsls r3, r3, #6
adds r1, r0, r3
adds r2, r4, #0
bl sub_0801D66C
b _0807C26C
.align 2, 0
_0807C1B0: .4byte gUnk_030010A0
_0807C1B4: .4byte gUnk_02025EB4
_0807C1B8: .4byte gUnk_0200B654
_0807C1BC:
cmp r0, #2
bne _0807C26C
ldr r4, _0807C278 @ =gUnk_02025EB4
movs r0, #0xb0
lsls r0, r0, #8
adds r0, r0, r4
mov r8, r0
movs r5, #0x80
lsls r5, r5, #5
adds r0, r4, #0
mov r1, r8
adds r2, r5, #0
bl sub_0801D66C
movs r1, #0xc0
lsls r1, r1, #6
adds r6, r4, r1
adds r0, r6, #0
adds r1, r4, #0
adds r2, r5, #0
bl sub_0801D66C
mov r0, r8
adds r1, r6, #0
adds r2, r5, #0
bl sub_0801D66C
adds r6, r4, r5
adds r0, r6, #0
mov r1, r8
adds r2, r5, #0
bl sub_0801D66C
movs r2, #0x80
lsls r2, r2, #7
adds r4, r4, r2
adds r0, r4, #0
adds r1, r6, #0
adds r2, r5, #0
bl sub_0801D66C
mov r0, r8
adds r1, r4, #0
adds r2, r5, #0
bl sub_0801D66C
ldr r4, _0807C27C @ =gUnk_0200B654
movs r3, #0xb0
lsls r3, r3, #8
adds r3, r3, r4
mov r8, r3
adds r0, r4, #0
mov r1, r8
adds r2, r5, #0
bl sub_0801D66C
movs r0, #0xc0
lsls r0, r0, #6
adds r6, r4, r0
adds r0, r6, #0
adds r1, r4, #0
adds r2, r5, #0
bl sub_0801D66C
mov r0, r8
adds r1, r6, #0
adds r2, r5, #0
bl sub_0801D66C
adds r6, r4, r5
adds r0, r6, #0
mov r1, r8
adds r2, r5, #0
bl sub_0801D66C
movs r1, #0x80
lsls r1, r1, #7
adds r4, r4, r1
adds r0, r4, #0
adds r1, r6, #0
adds r2, r5, #0
bl sub_0801D66C
mov r0, r8
adds r1, r4, #0
adds r2, r5, #0
bl sub_0801D66C
_0807C26C:
mov r2, sb
cmp r2, #0
bne _0807C280
bl sub_0807BBE4
b _0807C2A0
.align 2, 0
_0807C278: .4byte gUnk_02025EB4
_0807C27C: .4byte gUnk_0200B654
_0807C280:
ldr r0, _0807C2CC @ =gUnk_02027EB4
ldrh r1, [r7, #0x1e]
lsrs r1, r1, #4
ldrh r2, [r7, #0x20]
lsrs r2, r2, #4
bl sub_0807C69C
ldr r0, _0807C2D0 @ =gUnk_0200D654
ldrh r1, [r7, #0x1e]
lsrs r1, r1, #4
ldrh r2, [r7, #0x20]
lsrs r2, r2, #4
bl sub_0807C69C
bl sub_0807C460
_0807C2A0:
bl sub_0807BC84
ldr r4, _0807C2D4 @ =gUnk_02025EB0
adds r0, r4, #0
bl sub_08080B60
ldr r5, _0807C2D8 @ =gUnk_0200B650
adds r0, r5, #0
bl sub_08080B60
mov r3, sb
cmp r3, #0
bne _0807C2E4
ldr r0, _0807C2DC @ =gUnk_02019EE0
adds r1, r4, #0
bl sub_0801AB08
ldr r0, _0807C2E0 @ =gUnk_02002F00
adds r1, r5, #0
bl sub_0801AB08
b _0807C326
.align 2, 0
_0807C2CC: .4byte gUnk_02027EB4
_0807C2D0: .4byte gUnk_0200D654
_0807C2D4: .4byte gUnk_02025EB0
_0807C2D8: .4byte gUnk_0200B650
_0807C2DC: .4byte gUnk_02019EE0
_0807C2E0: .4byte gUnk_02002F00
_0807C2E4:
ldr r4, _0807C34C @ =gUnk_02019EE0
movs r0, #0x80
lsls r0, r0, #7
adds r5, r4, r0
adds r6, r0, #0
adds r0, r4, #0
adds r1, r5, #0
adds r2, r6, #0
bl sub_0801D66C
adds r0, r4, #0
adds r1, r5, #0
bl sub_0807C5F4
adds r0, r5, #0
adds r1, r6, #0
bl sub_0801D630
ldr r4, _0807C350 @ =gUnk_02002F00
adds r5, r4, r6
adds r0, r4, #0
adds r1, r5, #0
adds r2, r6, #0
bl sub_0801D66C
adds r0, r4, #0
adds r1, r5, #0
bl sub_0807C5F4
adds r0, r5, #0
adds r1, r6, #0
bl sub_0801D630
_0807C326:
mov r1, sb
cmp r1, #0
bne _0807C332
ldrb r0, [r7, #4]
cmp r0, #0x71
bne _0807C33A
_0807C332:
ldrb r1, [r7, #0xf]
movs r0, #1
orrs r0, r1
strb r0, [r7, #0xf]
_0807C33A:
ldrb r0, [r7, #4]
subs r0, #0x20
cmp r0, #0x18
bhi _0807C400
lsls r0, r0, #2
ldr r1, _0807C354 @ =_0807C358
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0807C34C: .4byte gUnk_02019EE0
_0807C350: .4byte gUnk_02002F00
_0807C354: .4byte _0807C358
_0807C358: @ jump table
.4byte _0807C3BC @ case 0
.4byte _0807C3E4 @ case 1
.4byte _0807C3E4 @ case 2
.4byte _0807C3E4 @ case 3
.4byte _0807C3E4 @ case 4
.4byte _0807C3E4 @ case 5
.4byte _0807C400 @ case 6
.4byte _0807C3E4 @ case 7
.4byte _0807C3E4 @ case 8
.4byte _0807C400 @ case 9
.4byte _0807C400 @ case 10
.4byte _0807C400 @ case 11
.4byte _0807C400 @ case 12
.4byte _0807C3BC @ case 13
.4byte _0807C400 @ case 14
.4byte _0807C400 @ case 15
.4byte _0807C3E4 @ case 16
.4byte _0807C400 @ case 17
.4byte _0807C400 @ case 18
.4byte _0807C400 @ case 19
.4byte _0807C400 @ case 20
.4byte _0807C400 @ case 21
.4byte _0807C400 @ case 22
.4byte _0807C400 @ case 23
.4byte _0807C3E4 @ case 24
_0807C3BC:
ldr r0, _0807C3D8 @ =gUnk_02025EB0
ldr r2, [r0]
cmp r2, #0
beq _0807C3CC
ldrh r1, [r2]
movs r0, #0x80
orrs r0, r1
strh r0, [r2]
_0807C3CC:
ldr r2, _0807C3DC @ =gUnk_03000F50
ldrh r1, [r2]
ldr r0, _0807C3E0 @ =0x0000FDFF
ands r0, r1
strh r0, [r2]
b _0807C444
.align 2, 0
_0807C3D8: .4byte gUnk_02025EB0
_0807C3DC: .4byte gUnk_03000F50
_0807C3E0: .4byte 0x0000FDFF
_0807C3E4:
ldr r0, _0807C3F8 @ =gUnk_0200B650
ldr r1, [r0]
cmp r1, #0
beq _0807C3F2
ldr r0, _0807C3FC @ =gUnk_080B77C0
ldrh r0, [r0, #4]
strh r0, [r1]
_0807C3F2:
bl sub_0807C5B0
b _0807C444
.align 2, 0
_0807C3F8: .4byte gUnk_0200B650
_0807C3FC: .4byte gUnk_080B77C0
_0807C400:
ldr r0, _0807C44C @ =gUnk_02025EB0
ldr r1, [r0]
cmp r1, #0
beq _0807C40E
ldr r0, _0807C450 @ =gUnk_080B77C0
ldrh r0, [r0]
strh r0, [r1]
_0807C40E:
ldr r0, _0807C454 @ =gUnk_0200B650
ldr r1, [r0]
cmp r1, #0
beq _0807C41C
ldr r0, _0807C450 @ =gUnk_080B77C0
ldrh r0, [r0, #2]
strh r0, [r1]
_0807C41C:
ldr r2, _0807C458 @ =gUnk_03000F50
ldrh r0, [r2]
movs r1, #0x80
lsls r1, r1, #4
ands r1, r0
movs r3, #0xba
lsls r3, r3, #5
adds r0, r3, #0
movs r3, #0
orrs r1, r0
strh r1, [r2]
ldr r0, _0807C45C @ =gUnk_02033A90
ldrb r0, [r0, #0xc]
cmp r0, #0
beq _0807C444
movs r3, #0xa0
lsls r3, r3, #8
adds r0, r3, #0
orrs r1, r0
strh r1, [r2]
_0807C444:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0807C44C: .4byte gUnk_02025EB0
_0807C450: .4byte gUnk_080B77C0
_0807C454: .4byte gUnk_0200B650
_0807C458: .4byte gUnk_03000F50
_0807C45C: .4byte gUnk_02033A90
thumb_func_start sub_0807C460
sub_0807C460: @ 0x0807C460
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
ldr r7, _0807C4E8 @ =gUnk_02025EB4
ldr r6, _0807C4EC @ =gUnk_0200B654
ldr r0, _0807C4F0 @ =gUnk_03000BF0
ldrh r1, [r0, #0x1e]
lsrs r3, r1, #4
ldrh r0, [r0, #0x20]
lsrs r0, r0, #4
str r0, [sp]
movs r4, #0
movs r1, #0
cmp r1, r0
bhs _0807C4DC
movs r0, #0x40
subs r0, r0, r3
lsls r0, r0, #1
mov sb, r0
_0807C48C:
movs r5, #0
adds r1, #1
mov sl, r1
cmp r5, r3
bhs _0807C4CA
ldr r0, _0807C4F4 @ =0x00003FFF
mov r8, r0
_0807C49A:
ldrh r0, [r7]
cmp r0, r8
bls _0807C4AC
adds r1, r4, #0
movs r2, #1
str r3, [sp, #4]
bl sub_0800015E
ldr r3, [sp, #4]
_0807C4AC:
ldrh r0, [r6]
cmp r0, r8
bls _0807C4BE
adds r1, r4, #0
movs r2, #2
str r3, [sp, #4]
bl sub_0800015E
ldr r3, [sp, #4]
_0807C4BE:
adds r7, #2
adds r6, #2
adds r4, #1
adds r5, #1
cmp r5, r3
blo _0807C49A
_0807C4CA:
add r7, sb
add r6, sb
adds r0, r4, #0
adds r0, #0x40
subs r4, r0, r3
mov r1, sl
ldr r0, [sp]
cmp r1, r0
blo _0807C48C
_0807C4DC:
add sp, #8
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0807C4E8: .4byte gUnk_02025EB4
_0807C4EC: .4byte gUnk_0200B654
_0807C4F0: .4byte gUnk_03000BF0
_0807C4F4: .4byte 0x00003FFF
thumb_func_start sub_0807C4F8
sub_0807C4F8: @ 0x0807C4F8
push {r4, r5, r6, lr}
ldr r0, _0807C594 @ =gUnk_03000BF0
ldrb r0, [r0, #4]
cmp r0, #0x71
beq _0807C592
ldr r0, _0807C598 @ =gUnk_02019EE0
movs r4, #0x80
lsls r4, r4, #8
adds r1, r4, #0
bl sub_0801D630
ldr r0, _0807C59C @ =gUnk_02002F00
adds r1, r4, #0
bl sub_0801D630
ldr r5, _0807C5A0 @ =gUnk_02022830
ldr r0, _0807C5A4 @ =gUnk_02033A90
ldr r1, _0807C5A8 @ =0x0000085C
adds r0, r0, r1
ldr r0, [r0]
ldr r4, [r0, #0xc]
subs r4, #0xc
_0807C524:
adds r4, #0xc
ldr r1, [r4, #4]
ldr r0, _0807C598 @ =gUnk_02019EE0
cmp r1, r0
beq _0807C534
ldr r0, _0807C59C @ =gUnk_02002F00
cmp r1, r0
bne _0807C54A
_0807C534:
ldr r0, [r4]
ldr r1, _0807C5AC @ =0x7FFFFFFF
ands r0, r1
str r0, [r5]
ldr r0, [r4, #4]
str r0, [r5, #4]
ldr r0, [r4, #8]
str r0, [r5, #8]
adds r0, r5, #0
bl sub_080197D4
_0807C54A:
ldr r0, [r4]
cmp r0, #0
blt _0807C524
ldr r4, _0807C598 @ =gUnk_02019EE0
movs r0, #0x80
lsls r0, r0, #7
adds r5, r4, r0
adds r6, r0, #0
adds r0, r4, #0
adds r1, r5, #0
adds r2, r6, #0
bl sub_0801D66C
adds r0, r4, #0
adds r1, r5, #0
bl sub_0807C5F4
adds r0, r5, #0
adds r1, r6, #0
bl sub_0801D630
ldr r4, _0807C59C @ =gUnk_02002F00
adds r5, r4, r6
adds r0, r4, #0
adds r1, r5, #0
adds r2, r6, #0
bl sub_0801D66C
adds r0, r4, #0
adds r1, r5, #0
bl sub_0807C5F4
adds r0, r5, #0
adds r1, r6, #0
bl sub_0801D630
_0807C592:
pop {r4, r5, r6, pc}
.align 2, 0
_0807C594: .4byte gUnk_03000BF0
_0807C598: .4byte gUnk_02019EE0
_0807C59C: .4byte gUnk_02002F00
_0807C5A0: .4byte gUnk_02022830
_0807C5A4: .4byte gUnk_02033A90
_0807C5A8: .4byte 0x0000085C
_0807C5AC: .4byte 0x7FFFFFFF
thumb_func_start sub_0807C5B0
sub_0807C5B0: @ 0x0807C5B0
push {r4, r5, r6, lr}
ldr r5, _0807C5E8 @ =gUnk_0200D654
movs r4, #0x80
lsls r4, r4, #5
movs r3, #0
ldr r6, _0807C5EC @ =gUnk_03000BF0
ldr r2, _0807C5F0 @ =gUnk_02027EB4
_0807C5BE:
adds r0, r5, r3
ldrb r0, [r0]
cmp r0, #0
beq _0807C5D4
cmp r0, #0xf
bhi _0807C5D2
ldrb r1, [r2]
cmp r1, #0xf
bhi _0807C5D4
orrs r0, r1
_0807C5D2:
strb r0, [r2]
_0807C5D4:
adds r2, #1
adds r3, #1
cmp r3, r4
blo _0807C5BE
ldrb r1, [r6, #0xf]
movs r0, #2
orrs r0, r1
strb r0, [r6, #0xf]
pop {r4, r5, r6, pc}
.align 2, 0
_0807C5E8: .4byte gUnk_0200D654
_0807C5EC: .4byte gUnk_03000BF0
_0807C5F0: .4byte gUnk_02027EB4
thumb_func_start sub_0807C5F4
sub_0807C5F4: @ 0x0807C5F4
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r2, r5, #0
movs r0, #0x20
ldr r6, _0807C698 @ =gUnk_03000BF0
_0807C5FE:
movs r3, #0
subs r4, r0, #1
_0807C602:
ldrh r0, [r1]
strh r0, [r2]
adds r1, #2
adds r2, #2
adds r3, #1
cmp r3, #0x1f
bls _0807C602
adds r2, #0xc0
adds r0, r4, #0
cmp r0, #0
bne _0807C5FE
ldrh r0, [r6, #0x1e]
cmp r0, #0xff
bls _0807C63E
adds r2, r5, #0
adds r2, #0x40
movs r0, #0x20
_0807C624:
movs r3, #0
subs r4, r0, #1
_0807C628:
ldrh r0, [r1]
strh r0, [r2]
adds r1, #2
adds r2, #2
adds r3, #1
cmp r3, #0x1f
bls _0807C628
adds r2, #0xc0
adds r0, r4, #0
cmp r0, #0
bne _0807C624
_0807C63E:
ldrh r0, [r6, #0x20]
cmp r0, #0xff
bls _0807C666
movs r0, #0x80
lsls r0, r0, #6
adds r2, r5, r0
movs r0, #0x20
_0807C64C:
movs r3, #0
subs r4, r0, #1
_0807C650:
ldrh r0, [r1]
strh r0, [r2]
adds r1, #2
adds r2, #2
adds r3, #1
cmp r3, #0x1f
bls _0807C650
adds r2, #0xc0
adds r0, r4, #0
cmp r0, #0
bne _0807C64C
_0807C666:
ldrh r0, [r6, #0x1e]
cmp r0, #0xff
bls _0807C694
ldrh r0, [r6, #0x20]
cmp r0, #0xff
bls _0807C694
movs r0, #0x81
lsls r0, r0, #6
adds r2, r5, r0
movs r0, #0x20
_0807C67A:
movs r3, #0
subs r4, r0, #1
_0807C67E:
ldrh r0, [r1]
strh r0, [r2]
adds r1, #2
adds r2, #2
adds r3, #1
cmp r3, #0x1f
bls _0807C67E
adds r2, #0xc0
adds r0, r4, #0
cmp r0, #0
bne _0807C67A
_0807C694:
pop {r4, r5, r6, pc}
.align 2, 0
_0807C698: .4byte gUnk_03000BF0
thumb_func_start sub_0807C69C
sub_0807C69C: @ 0x0807C69C
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
mov sb, r0
adds r6, r1, #0
mov r8, r2
mov r0, r8
muls r0, r6, r0
add r0, sb
subs r2, r0, #1
mov r0, r8
subs r0, #1
lsls r0, r0, #6
add r0, sb
subs r1, r6, #1
adds r4, r0, r1
movs r5, #0
cmp r5, r8
bhs _0807C6EA
_0807C6C4:
movs r3, #0
adds r7, r4, #0
subs r7, #0x40
subs r0, r2, r6
mov ip, r0
cmp r3, r6
bhs _0807C6E0
_0807C6D2:
subs r0, r4, r3
subs r1, r2, r3
ldrb r1, [r1]
strb r1, [r0]
adds r3, #1
cmp r3, r6
blo _0807C6D2
_0807C6E0:
adds r4, r7, #0
mov r2, ip
adds r5, #1
cmp r5, r8
blo _0807C6C4
_0807C6EA:
movs r0, #0x40
subs r7, r0, r6
movs r5, #0
mov r1, r8
lsls r2, r1, #6
mov r0, sb
adds r1, r0, r6
_0807C6F8:
lsls r0, r5, #6
adds r4, r1, r0
movs r3, #0
adds r6, r5, #1
cmp r3, r7
bhs _0807C710
movs r5, #0
_0807C706:
adds r0, r4, r3
strb r5, [r0]
adds r3, #1
cmp r3, r7
blo _0807C706
_0807C710:
adds r5, r6, #0
cmp r5, #0x3f
bls _0807C6F8
movs r0, #0x40
mov r1, r8
subs r7, r0, r1
mov r0, sb
adds r4, r0, r2
movs r5, #0
cmp r5, r7
bhs _0807C736
_0807C726:
adds r0, r4, #0
movs r1, #0x40
bl sub_0801D630
adds r4, #0x40
adds r5, #1
cmp r5, r7
blo _0807C726
_0807C736:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_0807C740
sub_0807C740: @ 0x0807C740
push {r4, r5, lr}
bl sub_0807BFD0
bl sub_0807C0DC
ldr r4, _0807C780 @ =gUnk_03000BF0
ldr r2, [r4, #0x30]
cmp r2, #0
beq _0807C788
ldrh r1, [r2, #0x2e]
lsls r0, r1, #0x10
cmp r0, #0
bge _0807C764
ldr r0, _0807C784 @ =0x00007FFF
ands r0, r1
ldrh r1, [r4, #6]
subs r0, r0, r1
strh r0, [r2, #0x2e]
_0807C764:
movs r0, #0x2e
ldrsh r3, [r2, r0]
ldrh r1, [r2, #0x32]
lsls r0, r1, #0x10
cmp r0, #0
bge _0807C77A
ldr r0, _0807C784 @ =0x00007FFF
ands r0, r1
ldrh r1, [r4, #8]
subs r0, r0, r1
strh r0, [r2, #0x32]
_0807C77A:
movs r0, #0x32
ldrsh r5, [r2, r0]
b _0807C78C
.align 2, 0
_0807C780: .4byte gUnk_03000BF0
_0807C784: .4byte 0x00007FFF
_0807C788:
movs r3, #0
movs r5, #0
_0807C78C:
cmp r3, #0x77
bgt _0807C794
movs r0, #0
b _0807C7A2
_0807C794:
ldrh r1, [r4, #0x1e]
adds r0, r1, #0
subs r0, #0x78
cmp r0, r3
blt _0807C7A0
adds r0, r3, #0
_0807C7A0:
subs r0, #0x78
_0807C7A2:
strh r0, [r4, #0xa]
ldrh r1, [r4, #6]
ldrh r2, [r4, #0xa]
adds r0, r1, r2
strh r0, [r4, #0xa]
cmp r5, #0x4f
bgt _0807C7B4
movs r0, #0
b _0807C7C2
_0807C7B4:
ldrh r2, [r4, #0x20]
adds r0, r2, #0
subs r0, #0x50
cmp r0, r5
blt _0807C7C0
adds r0, r5, #0
_0807C7C0:
subs r0, #0x50
_0807C7C2:
strh r0, [r4, #0xc]
ldrh r0, [r4, #8]
ldrh r3, [r4, #0xc]
adds r0, r0, r3
strh r0, [r4, #0xc]
ldr r2, [r4, #0x30]
cmp r2, #0
beq _0807C7FC
ldrh r3, [r2, #0x2e]
adds r0, r1, r3
strh r0, [r2, #0x2e]
ldr r1, [r4, #0x30]
ldrh r0, [r4, #8]
ldrh r2, [r1, #0x32]
adds r0, r0, r2
strh r0, [r1, #0x32]
ldr r0, _0807C80C @ =gUnk_03000BF0
ldrb r1, [r0, #0xf]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0807C7FC
ldr r0, [r4, #0x30]
adds r0, #0x38
movs r1, #1
strb r1, [r0]
ldr r0, [r4, #0x30]
bl sub_08016A04
_0807C7FC:
ldrb r1, [r4, #0xf]
movs r0, #0xfb
ands r0, r1
strb r0, [r4, #0xf]
bl sub_08080BC4
pop {r4, r5, pc}
.align 2, 0
_0807C80C: .4byte gUnk_03000BF0
thumb_func_start sub_0807C810
sub_0807C810: @ 0x0807C810
push {r4, r5, r6, lr}
bl sub_0807BFD0
ldr r2, _0807C850 @ =gUnk_03004030
ldr r6, _0807C854 @ =gLinkEntity
ldr r4, _0807C858 @ =gUnk_03000BF0
ldr r3, [r2]
ldrh r1, [r3, #6]
movs r0, #0x3f
ands r0, r1
lsls r0, r0, #4
ldrh r1, [r4, #6]
adds r0, r0, r1
ldrh r1, [r2, #4]
adds r1, r1, r0
movs r5, #0
strh r1, [r6, #0x2e]
ldrh r1, [r3, #6]
movs r0, #0xfc
lsls r0, r0, #4
ands r0, r1
lsrs r0, r0, #2
ldrh r4, [r4, #8]
adds r0, r0, r4
ldrh r1, [r2, #6]
adds r1, r1, r0
strh r1, [r6, #0x32]
bl sub_080809D4
ldr r0, _0807C85C @ =gUnk_02000070
strb r5, [r0]
pop {r4, r5, r6, pc}
.align 2, 0
_0807C850: .4byte gUnk_03004030
_0807C854: .4byte gLinkEntity
_0807C858: .4byte gUnk_03000BF0
_0807C85C: .4byte gUnk_02000070
thumb_func_start sub_0807C860
sub_0807C860: @ 0x0807C860
push {r4, lr}
ldr r0, _0807C88C @ =gUnk_030010A0
adds r0, #0x2d
movs r1, #1
strb r1, [r0]
ldr r0, _0807C890 @ =gUnk_02025EB4
movs r2, #0xc0
lsls r2, r2, #6
adds r1, r0, r2
movs r4, #0x80
lsls r4, r4, #6
adds r2, r4, #0
bl sub_0801D66C
ldr r0, _0807C894 @ =gUnk_0200B654
movs r2, #0xc0
lsls r2, r2, #6
adds r1, r0, r2
adds r2, r4, #0
bl sub_0801D66C
pop {r4, pc}
.align 2, 0
_0807C88C: .4byte gUnk_030010A0
_0807C890: .4byte gUnk_02025EB4
_0807C894: .4byte gUnk_0200B654
thumb_func_start sub_0807C898
sub_0807C898: @ 0x0807C898
push {r4, r5, lr}
ldr r4, _0807C8AC @ =gUnk_030010A0
adds r4, #0x2d
movs r5, #0
movs r0, #2
strb r0, [r4]
bl sub_0807C0DC
strb r5, [r4]
pop {r4, r5, pc}
.align 2, 0
_0807C8AC: .4byte gUnk_030010A0
thumb_func_start sub_0807C8B0
sub_0807C8B0: @ 0x0807C8B0
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
mov r8, r0
adds r4, r1, #0
mov ip, r2
mov r0, ip
muls r0, r4, r0
lsls r0, r0, #1
add r0, r8
subs r7, r0, #2
mov r0, ip
subs r0, #1
lsls r0, r0, #7
add r0, r8
lsls r3, r4, #1
subs r1, r3, #2
adds r0, r0, r1
movs r5, #0
cmp r5, ip
bhs _0807C906
mov sb, r3
_0807C8DE:
movs r2, #0
adds r6, r0, #0
subs r6, #0x80
cmp r2, r4
bhs _0807C8FA
adds r1, r7, #0
adds r3, r0, #0
_0807C8EC:
ldrh r0, [r1]
strh r0, [r3]
subs r1, #2
subs r3, #2
adds r2, #1
cmp r2, r4
blo _0807C8EC
_0807C8FA:
adds r0, r6, #0
mov r1, sb
subs r7, r7, r1
adds r5, #1
cmp r5, ip
blo _0807C8DE
_0807C906:
movs r0, #0x40
subs r6, r0, r4
movs r5, #0
lsls r0, r4, #1
mov r2, ip
lsls r7, r2, #7
mov r2, r8
adds r1, r2, r0
_0807C916:
lsls r0, r5, #7
adds r0, r1, r0
movs r2, #0
adds r3, r5, #1
cmp r2, r6
bhs _0807C92E
movs r4, #0
_0807C924:
strh r4, [r0]
adds r0, #2
adds r2, #1
cmp r2, r6
blo _0807C924
_0807C92E:
adds r5, r3, #0
cmp r5, #0x3f
bls _0807C916
movs r0, #0x40
mov r1, ip
subs r6, r0, r1
mov r2, r8
adds r0, r2, r7
movs r5, #0
cmp r5, r6
bhs _0807C956
adds r4, r0, #0
_0807C946:
adds r0, r4, #0
movs r1, #0x80
bl sub_0801D630
adds r4, #0x80
adds r5, #1
cmp r5, r6
blo _0807C946
_0807C956:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_0807C960
sub_0807C960: @ 0x0807C960
push {lr}
adds r2, r0, #0
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
beq _0807C994
ldr r0, _0807C984 @ =0x7FFFFFFF
ands r0, r1
ldr r1, _0807C988 @ =gUnk_08324AE4
adds r1, r0, r1
lsrs r0, r2, #0x18
cmp r0, #6
bne _0807C98C
adds r0, r1, #0
adds r1, r2, #0
bl LZ77UnCompVram
b _0807C994
.align 2, 0
_0807C984: .4byte 0x7FFFFFFF
_0807C988: .4byte gUnk_08324AE4
_0807C98C:
adds r0, r1, #0
adds r1, r2, #0
bl LZ77UnCompWram
_0807C994:
pop {pc}
.align 2, 0