mirror of https://github.com/zeldaret/tmc.git
9215 lines
152 KiB
ArmAsm
9215 lines
152 KiB
ArmAsm
.include "asm/macros.inc"
|
|
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_0806A0A4
|
|
sub_0806A0A4: @ 0x0806A0A4
|
|
push {r4, r5, r6, lr}
|
|
adds r4, r0, #0
|
|
ldr r0, _0806A0F8 @ =gLinkState
|
|
ldr r0, [r0, #0x30]
|
|
movs r1, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806A100
|
|
movs r5, #4
|
|
movs r0, #0xcf
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
bne _0806A120
|
|
movs r5, #3
|
|
movs r0, #0xcf
|
|
bl sub_0807CCB4
|
|
movs r1, #0x2e
|
|
ldrsh r0, [r4, r1]
|
|
ldr r2, _0806A0FC @ =gRoomControls
|
|
ldrh r1, [r2, #6]
|
|
subs r0, r0, r1
|
|
asrs r0, r0, #4
|
|
movs r3, #0x3f
|
|
ands r0, r3
|
|
movs r6, #0x32
|
|
ldrsh r1, [r4, r6]
|
|
ldrh r2, [r2, #8]
|
|
adds 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 _0806A120
|
|
.align 2, 0
|
|
_0806A0F8: .4byte gLinkState
|
|
_0806A0FC: .4byte gRoomControls
|
|
_0806A100:
|
|
movs r5, #2
|
|
movs r0, #0xcf
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
bne _0806A120
|
|
movs r5, #1
|
|
movs r0, #0xdb
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
bne _0806A120
|
|
movs r5, #0
|
|
movs r0, #0xdb
|
|
bl sub_0807CCB4
|
|
_0806A120:
|
|
ldr r2, _0806A13C @ =gUnk_08111F74
|
|
ldr r0, _0806A140 @ =gUnk_02002A40
|
|
ldrb r1, [r0, #8]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
adds r0, r0, r5
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0]
|
|
adds r1, r4, #0
|
|
bl TextboxNoOverlap
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0806A13C: .4byte gUnk_08111F74
|
|
_0806A140: .4byte gUnk_02002A40
|
|
|
|
thumb_func_start sub_0806A144
|
|
sub_0806A144: @ 0x0806A144
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
movs r4, #4
|
|
ldr r0, _0806A18C @ =gLinkState
|
|
ldr r0, [r0, #0x30]
|
|
movs r1, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806A17A
|
|
movs r4, #3
|
|
movs r0, #0x46
|
|
bl GetInventoryValue
|
|
cmp r0, #0
|
|
bne _0806A17A
|
|
movs r0, #0x29
|
|
bl GetProgressFlag
|
|
cmp r0, #0
|
|
beq _0806A17A
|
|
movs r0, #0x85
|
|
bl sub_0807CBD0
|
|
movs r4, #2
|
|
cmp r0, #0
|
|
bne _0806A17A
|
|
movs r4, #1
|
|
_0806A17A:
|
|
ldr r0, _0806A190 @ =gUnk_08111FD8
|
|
lsls r1, r4, #1
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
adds r1, r5, #0
|
|
bl TextboxNoOverlap
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0806A18C: .4byte gLinkState
|
|
_0806A190: .4byte gUnk_08111FD8
|
|
|
|
thumb_func_start sub_0806A194
|
|
sub_0806A194: @ 0x0806A194
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
bne _0806A1CE
|
|
adds r0, r4, #0
|
|
bl sub_08069EF0
|
|
cmp r0, #0
|
|
beq _0806A1D4
|
|
ldrb r0, [r4, #0xc]
|
|
adds r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
adds r0, r4, #0
|
|
movs r1, #0x23
|
|
bl sub_08004260
|
|
b _0806A1D4
|
|
_0806A1CE:
|
|
adds r0, r4, #0
|
|
bl sub_08004274
|
|
_0806A1D4:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806A1D8
|
|
sub_0806A1D8: @ 0x0806A1D8
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldr r1, _0806A1F4 @ =gUnk_081121D4
|
|
ldrb r0, [r4, #0xc]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, [r0]
|
|
adds r0, r4, #0
|
|
bl _call_via_r1
|
|
adds r0, r4, #0
|
|
bl sub_0806ED78
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0806A1F4: .4byte gUnk_081121D4
|
|
|
|
thumb_func_start sub_0806A1F8
|
|
sub_0806A1F8: @ 0x0806A1F8
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xa]
|
|
ldr r1, _0806A22C @ =gUnk_081121C4
|
|
cmp r0, #0
|
|
bne _0806A206
|
|
ldr r1, _0806A230 @ =gUnk_081121B4
|
|
_0806A206:
|
|
adds r0, r4, #0
|
|
bl sub_0806FDEC
|
|
cmp r0, #0
|
|
beq _0806A22A
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
adds r0, r4, #0
|
|
bl sub_0807DD50
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_08004260
|
|
_0806A22A:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0806A22C: .4byte gUnk_081121C4
|
|
_0806A230: .4byte gUnk_081121B4
|
|
|
|
thumb_func_start sub_0806A234
|
|
sub_0806A234: @ 0x0806A234
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r1, #0
|
|
bl sub_0807DD94
|
|
adds r0, r4, #0
|
|
adds r0, #0x82
|
|
ldrh r1, [r0]
|
|
movs r0, #4
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806A266
|
|
ldr r0, _0806A268 @ =gUnk_030010A0
|
|
ldr r0, [r0]
|
|
movs r1, #7
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0806A25E
|
|
adds r0, r4, #0
|
|
bl sub_0806A26C
|
|
_0806A25E:
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_080042BA
|
|
_0806A266:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0806A268: .4byte gUnk_030010A0
|
|
|
|
thumb_func_start sub_0806A26C
|
|
sub_0806A26C: @ 0x0806A26C
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
movs r0, #0xf
|
|
movs r1, #0x2f
|
|
movs r2, #0
|
|
bl CreateObject
|
|
adds r4, r0, #0
|
|
cmp r4, #0
|
|
beq _0806A2AE
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
bl sub_0806FA30
|
|
bl Random
|
|
adds r5, r0, #0
|
|
ldr r2, _0806A2B0 @ =gUnk_081121DC
|
|
movs r1, #7
|
|
ands r0, r1
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0]
|
|
adds r3, r4, #0
|
|
adds r3, #0x62
|
|
strb r0, [r3]
|
|
lsrs r0, r5, #8
|
|
ands r0, r1
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0]
|
|
subs r0, #8
|
|
adds r1, r4, #0
|
|
adds r1, #0x63
|
|
strb r0, [r1]
|
|
_0806A2AE:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0806A2B0: .4byte gUnk_081121DC
|
|
|
|
thumb_func_start sub_0806A2B4
|
|
sub_0806A2B4: @ 0x0806A2B4
|
|
push {r4, r5, r6, lr}
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6}
|
|
adds r5, r0, #0
|
|
adds r0, #0x5b
|
|
ldrb r0, [r0]
|
|
movs r1, #1
|
|
mov sb, r1
|
|
mov r2, sb
|
|
ands r2, r0
|
|
mov sb, r2
|
|
adds r0, r5, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
lsrs r0, r1, #4
|
|
mov r8, r0
|
|
movs r0, #7
|
|
mov r2, r8
|
|
ands r2, r0
|
|
mov r8, r2
|
|
movs r6, #7
|
|
ands r6, r1
|
|
ldrb r4, [r5, #0x14]
|
|
lsrs r4, r4, #1
|
|
ldr r1, _0806A350 @ =gUnk_081121E4
|
|
ldrb r0, [r5, #0x1e]
|
|
lsls r0, r0, #2
|
|
adds r0, r4, r0
|
|
adds r0, r0, r1
|
|
ldrb r2, [r0]
|
|
adds r2, #0x10
|
|
adds r0, r5, #0
|
|
movs r1, #0
|
|
bl sub_0806FF60
|
|
ldr r0, _0806A354 @ =gUnk_08112204
|
|
adds r4, r4, r0
|
|
ldrb r2, [r4]
|
|
adds r0, r5, #0
|
|
movs r1, #0
|
|
bl sub_0806FF48
|
|
adds r0, r5, #0
|
|
movs r1, #1
|
|
mov r2, r8
|
|
bl sub_0806FF60
|
|
adds r6, #0x1c
|
|
adds r0, r5, #0
|
|
movs r1, #2
|
|
adds r2, r6, #0
|
|
bl sub_0806FF60
|
|
movs r0, #0x1a
|
|
add sb, r0
|
|
adds r0, r5, #0
|
|
movs r1, #3
|
|
mov r2, sb
|
|
bl sub_0806FF60
|
|
adds r0, r5, #0
|
|
movs r1, #1
|
|
movs r2, #0
|
|
bl sub_0806FF88
|
|
adds r0, r5, #0
|
|
movs r1, #1
|
|
movs r2, #3
|
|
bl sub_0806FFD8
|
|
adds r0, r5, #0
|
|
bl sub_0807000C
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0806A350: .4byte gUnk_081121E4
|
|
_0806A354: .4byte gUnk_08112204
|
|
|
|
thumb_func_start sub_0806A358
|
|
sub_0806A358: @ 0x0806A358
|
|
push {lr}
|
|
ldr r2, _0806A36C @ =gUnk_08112260
|
|
ldrb r1, [r0, #0xa]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806A36C: .4byte gUnk_08112260
|
|
|
|
thumb_func_start sub_0806A370
|
|
sub_0806A370: @ 0x0806A370
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldr r1, _0806A3D0 @ =gUnk_08112278
|
|
ldrb r0, [r4, #0xc]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, [r0]
|
|
adds r0, r4, #0
|
|
bl _call_via_r1
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0807DDAC
|
|
adds r0, r4, #0
|
|
bl sub_0807DDE4
|
|
adds r0, r4, #0
|
|
bl sub_080042B8
|
|
adds r0, r4, #0
|
|
bl sub_0806ED78
|
|
adds r0, r4, #0
|
|
adds r0, #0x58
|
|
ldrb r0, [r0]
|
|
cmp r0, #0xf
|
|
bne _0806A3CC
|
|
adds r4, #0x5a
|
|
ldrb r0, [r4]
|
|
cmp r0, #1
|
|
bne _0806A3BC
|
|
movs r0, #0
|
|
strb r0, [r4]
|
|
movs r0, #0x86
|
|
lsls r0, r0, #2
|
|
bl PlaySFX
|
|
_0806A3BC:
|
|
ldrb r0, [r4]
|
|
cmp r0, #2
|
|
bne _0806A3CC
|
|
movs r0, #0
|
|
strb r0, [r4]
|
|
ldr r0, _0806A3D4 @ =0x00000219
|
|
bl PlaySFX
|
|
_0806A3CC:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0806A3D0: .4byte gUnk_08112278
|
|
_0806A3D4: .4byte 0x00000219
|
|
|
|
thumb_func_start sub_0806A3D8
|
|
sub_0806A3D8: @ 0x0806A3D8
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #0xb4
|
|
strb r0, [r4, #0xe]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
adds r0, r4, #0
|
|
bl sub_0806A8C8
|
|
ldr r1, _0806A40C @ =gUnk_08012F0C
|
|
adds r0, r4, #0
|
|
bl sub_0807DAD0
|
|
adds r1, r4, #0
|
|
adds r1, #0x84
|
|
str r0, [r1]
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0807DD94
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0806A40C: .4byte gUnk_08012F0C
|
|
|
|
thumb_func_start sub_0806A410
|
|
sub_0806A410: @ 0x0806A410
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
ldrb r0, [r2, #0xd]
|
|
cmp r0, #0
|
|
beq _0806A420
|
|
cmp r0, #1
|
|
beq _0806A43C
|
|
b _0806A456
|
|
_0806A420:
|
|
ldrb r0, [r2, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r2, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0806A456
|
|
ldrb r0, [r2, #0xd]
|
|
adds r0, #1
|
|
strb r0, [r2, #0xd]
|
|
adds r0, r2, #0
|
|
movs r1, #8
|
|
bl sub_08004260
|
|
b _0806A456
|
|
_0806A43C:
|
|
adds r0, r2, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806A456
|
|
adds r0, r2, #0
|
|
adds r0, #0x84
|
|
ldr r1, [r0]
|
|
adds r0, r2, #0
|
|
bl sub_0806A9B0
|
|
_0806A456:
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_0806A458
|
|
sub_0806A458: @ 0x0806A458
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
ldrb r0, [r2, #0xd]
|
|
cmp r0, #1
|
|
beq _0806A486
|
|
cmp r0, #1
|
|
bgt _0806A46C
|
|
cmp r0, #0
|
|
beq _0806A472
|
|
b _0806A4CA
|
|
_0806A46C:
|
|
cmp r0, #2
|
|
beq _0806A4A8
|
|
b _0806A4CA
|
|
_0806A472:
|
|
ldrb r0, [r2, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r2, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0806A4CA
|
|
ldrb r0, [r2, #0xd]
|
|
adds r0, #1
|
|
strb r0, [r2, #0xd]
|
|
b _0806A4CA
|
|
_0806A486:
|
|
adds r0, r2, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806A4CA
|
|
movs r0, #2
|
|
strb r0, [r2, #0xd]
|
|
adds r0, r2, #0
|
|
movs r1, #0xa
|
|
bl sub_08004260
|
|
movs r0, #0x62
|
|
bl sub_0807CD34
|
|
b _0806A4CA
|
|
_0806A4A8:
|
|
adds r0, r2, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806A4CA
|
|
movs r0, #0
|
|
movs r1, #1
|
|
strb r1, [r2, #0xc]
|
|
strb r0, [r2, #0xd]
|
|
movs r0, #0x3c
|
|
strb r0, [r2, #0xe]
|
|
adds r0, r2, #0
|
|
movs r1, #2
|
|
bl sub_08004260
|
|
_0806A4CA:
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_0806A4CC
|
|
sub_0806A4CC: @ 0x0806A4CC
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r2, [r4, #0xd]
|
|
cmp r2, #0
|
|
beq _0806A4E0
|
|
cmp r2, #1
|
|
beq _0806A52C
|
|
movs r0, #0xb4
|
|
strb r0, [r4, #0xe]
|
|
b _0806A54C
|
|
_0806A4E0:
|
|
adds r0, r4, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806A54C
|
|
adds r0, r4, #0
|
|
adds r0, #0x58
|
|
ldrb r0, [r0]
|
|
subs r0, #8
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #1
|
|
bhi _0806A512
|
|
movs r0, #1
|
|
strb r0, [r4, #0xd]
|
|
adds r1, r4, #0
|
|
adds r1, #0x6a
|
|
strh r0, [r1]
|
|
adds r0, r4, #0
|
|
movs r1, #0xa
|
|
bl sub_08004260
|
|
b _0806A54C
|
|
_0806A512:
|
|
movs r0, #2
|
|
strb r0, [r4, #0xd]
|
|
adds r0, r4, #0
|
|
adds r0, #0x6a
|
|
strh r2, [r0]
|
|
adds r0, r4, #0
|
|
bl sub_0806EDC4
|
|
adds r1, r0, #0
|
|
adds r0, r4, #0
|
|
bl sub_08004260
|
|
b _0806A54C
|
|
_0806A52C:
|
|
adds r0, r4, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806A54C
|
|
movs r0, #2
|
|
strb r0, [r4, #0xd]
|
|
adds r0, r4, #0
|
|
bl sub_0806EDC4
|
|
adds r1, r0, #0
|
|
adds r0, r4, #0
|
|
bl sub_08004260
|
|
_0806A54C:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806A550
|
|
sub_0806A550: @ 0x0806A550
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xd]
|
|
cmp r0, #0
|
|
bne _0806A568
|
|
movs r0, #1
|
|
strb r0, [r4, #0xd]
|
|
adds r0, r4, #0
|
|
movs r1, #0xc
|
|
bl sub_08004260
|
|
b _0806A5B0
|
|
_0806A568:
|
|
adds r5, r4, #0
|
|
adds r5, #0x5a
|
|
ldrb r0, [r5]
|
|
cmp r0, #1
|
|
bne _0806A590
|
|
movs r0, #0
|
|
strb r0, [r5]
|
|
movs r0, #8
|
|
movs r1, #2
|
|
bl sub_08080964
|
|
ldr r2, _0806A5B4 @ =gUnk_02033280
|
|
ldr r0, [r2]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #1
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r0, _0806A5B8 @ =0x0000011B
|
|
bl PlaySFX
|
|
_0806A590:
|
|
ldrb r1, [r5]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806A5B0
|
|
movs r1, #0
|
|
movs r0, #5
|
|
strb r0, [r4, #0xc]
|
|
strb r1, [r4, #0xd]
|
|
adds r0, r4, #0
|
|
movs r1, #0xd
|
|
bl sub_08004260
|
|
adds r0, r4, #0
|
|
bl sub_0806A914
|
|
_0806A5B0:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0806A5B4: .4byte gUnk_02033280
|
|
_0806A5B8: .4byte 0x0000011B
|
|
|
|
thumb_func_start nullsub_503
|
|
nullsub_503: @ 0x0806A5BC
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806A5C0
|
|
sub_0806A5C0: @ 0x0806A5C0
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_08004274
|
|
adds r0, r4, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806A5E6
|
|
bl Random
|
|
movs r1, #3
|
|
ands r1, r0
|
|
adds r1, #4
|
|
adds r0, r4, #0
|
|
bl sub_08004260
|
|
_0806A5E6:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806A5E8
|
|
sub_0806A5E8: @ 0x0806A5E8
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
bne _0806A60A
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
movs r1, #0x10
|
|
bl sub_08004260
|
|
bl Random
|
|
movs r1, #0x3f
|
|
ands r0, r1
|
|
adds r0, #0x3c
|
|
strb r0, [r4, #0xe]
|
|
_0806A60A:
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0806A628
|
|
bl Random
|
|
movs r1, #0x3f
|
|
ands r0, r1
|
|
adds r0, #0x78
|
|
strb r0, [r4, #0xe]
|
|
movs r0, #0xcc
|
|
bl PlaySFX
|
|
_0806A628:
|
|
adds r0, r4, #0
|
|
bl sub_08004274
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806A630
|
|
sub_0806A630: @ 0x0806A630
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
bne _0806A646
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
movs r1, #0x12
|
|
bl sub_08004260
|
|
_0806A646:
|
|
ldr r0, _0806A670 @ =gUnk_02033280
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806A65A
|
|
adds r0, r4, #0
|
|
bl sub_08004274
|
|
_0806A65A:
|
|
adds r1, r4, #0
|
|
adds r1, #0x5a
|
|
ldrb r0, [r1]
|
|
cmp r0, #1
|
|
bne _0806A66E
|
|
movs r0, #0
|
|
strb r0, [r1]
|
|
movs r0, #0x72
|
|
bl PlaySFX
|
|
_0806A66E:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0806A670: .4byte gUnk_02033280
|
|
|
|
thumb_func_start sub_0806A674
|
|
sub_0806A674: @ 0x0806A674
|
|
push {r4, lr}
|
|
sub sp, #8
|
|
adds r4, r0, #0
|
|
ldr r1, _0806A694 @ =gUnk_08112294
|
|
mov r0, sp
|
|
movs r2, #8
|
|
bl memcpy
|
|
ldrb r3, [r4, #0xc]
|
|
cmp r3, #1
|
|
beq _0806A6BE
|
|
cmp r3, #1
|
|
bgt _0806A698
|
|
cmp r3, #0
|
|
beq _0806A6A0
|
|
b _0806A82A
|
|
.align 2, 0
|
|
_0806A694: .4byte gUnk_08112294
|
|
_0806A698:
|
|
cmp r3, #2
|
|
bne _0806A69E
|
|
b _0806A824
|
|
_0806A69E:
|
|
b _0806A82A
|
|
_0806A6A0:
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
adds r2, r4, #0
|
|
adds r2, #0x29
|
|
ldrb r1, [r2]
|
|
subs r0, #9
|
|
ands r0, r1
|
|
movs r1, #6
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
adds r0, r4, #0
|
|
movs r1, #0x13
|
|
bl sub_08004260
|
|
b _0806A82A
|
|
_0806A6BE:
|
|
ldr r0, _0806A6E0 @ =gUnk_02033280
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806A6E4
|
|
movs r0, #0
|
|
movs r1, #2
|
|
strb r1, [r4, #0xc]
|
|
adds r1, r4, #0
|
|
adds r1, #0x63
|
|
strb r0, [r1]
|
|
subs r1, #1
|
|
strb r0, [r1]
|
|
b _0806A82A
|
|
.align 2, 0
|
|
_0806A6E0: .4byte gUnk_02033280
|
|
_0806A6E4:
|
|
ldr r0, [r4, #0x50]
|
|
adds r0, #0x58
|
|
ldrb r0, [r0]
|
|
cmp r0, #9
|
|
bne _0806A7C8
|
|
adds r2, r4, #0
|
|
adds r2, #0x29
|
|
ldrb r0, [r2]
|
|
movs r1, #8
|
|
rsbs r1, r1, #0
|
|
ands r1, r0
|
|
movs r0, #3
|
|
orrs r1, r0
|
|
strb r1, [r2]
|
|
ldrb r2, [r4, #0xe]
|
|
cmp r2, #0
|
|
bne _0806A724
|
|
bl Random
|
|
adds r2, r0, #0
|
|
movs r1, #7
|
|
ands r0, r1
|
|
strb r0, [r4, #0xe]
|
|
lsrs r0, r2, #8
|
|
movs r1, #7
|
|
ands r0, r1
|
|
add r0, sp
|
|
ldrb r1, [r0]
|
|
adds r0, r4, #0
|
|
adds r0, #0x68
|
|
strb r1, [r0]
|
|
b _0806A75A
|
|
_0806A724:
|
|
ldr r0, _0806A780 @ =gUnk_030010A0
|
|
ldr r0, [r0]
|
|
movs r1, #3
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0806A75A
|
|
subs r0, r2, #1
|
|
strb r0, [r4, #0xe]
|
|
adds r2, r4, #0
|
|
adds r2, #0x62
|
|
movs r0, #0
|
|
ldrsb r0, [r2, r0]
|
|
adds r1, r4, #0
|
|
adds r1, #0x68
|
|
cmp r0, #0
|
|
bgt _0806A746
|
|
strb r3, [r1]
|
|
_0806A746:
|
|
movs r0, #0
|
|
ldrsb r0, [r2, r0]
|
|
cmp r0, #0xf
|
|
ble _0806A752
|
|
movs r0, #0xff
|
|
strb r0, [r1]
|
|
_0806A752:
|
|
ldrb r0, [r1]
|
|
ldrb r1, [r2]
|
|
adds r0, r0, r1
|
|
strb r0, [r2]
|
|
_0806A75A:
|
|
ldrb r2, [r4, #0xf]
|
|
cmp r2, #0
|
|
bne _0806A784
|
|
bl Random
|
|
adds r2, r0, #0
|
|
movs r1, #7
|
|
ands r0, r1
|
|
strb r0, [r4, #0xf]
|
|
lsrs r0, r2, #8
|
|
movs r1, #7
|
|
ands r0, r1
|
|
add r0, sp
|
|
ldrb r1, [r0]
|
|
adds r0, r4, #0
|
|
adds r0, #0x69
|
|
strb r1, [r0]
|
|
b _0806A82A
|
|
.align 2, 0
|
|
_0806A780: .4byte gUnk_030010A0
|
|
_0806A784:
|
|
ldr r0, _0806A7C4 @ =gUnk_030010A0
|
|
ldr r0, [r0]
|
|
lsrs r0, r0, #4
|
|
movs r1, #3
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0806A82A
|
|
subs r0, r2, #1
|
|
strb r0, [r4, #0xf]
|
|
adds r3, r4, #0
|
|
adds r3, #0x63
|
|
movs r0, #0
|
|
ldrsb r0, [r3, r0]
|
|
adds r2, r4, #0
|
|
adds r2, #0x69
|
|
cmp r0, #0
|
|
blt _0806A7AA
|
|
movs r0, #0xff
|
|
strb r0, [r2]
|
|
_0806A7AA:
|
|
movs r1, #0
|
|
ldrsb r1, [r3, r1]
|
|
movs r0, #8
|
|
rsbs r0, r0, #0
|
|
cmp r1, r0
|
|
bgt _0806A7BA
|
|
movs r0, #1
|
|
strb r0, [r2]
|
|
_0806A7BA:
|
|
ldrb r0, [r2]
|
|
ldrb r1, [r3]
|
|
adds r0, r0, r1
|
|
strb r0, [r3]
|
|
b _0806A82A
|
|
.align 2, 0
|
|
_0806A7C4: .4byte gUnk_030010A0
|
|
_0806A7C8:
|
|
adds r2, r4, #0
|
|
adds r2, #0x29
|
|
ldrb r0, [r2]
|
|
movs r1, #8
|
|
rsbs r1, r1, #0
|
|
ands r1, r0
|
|
movs r0, #6
|
|
orrs r1, r0
|
|
strb r1, [r2]
|
|
adds r1, r4, #0
|
|
adds r1, #0x62
|
|
ldrb r0, [r1]
|
|
movs r2, #0
|
|
ldrsb r2, [r1, r2]
|
|
cmp r2, #0
|
|
beq _0806A7FE
|
|
cmp r2, #0
|
|
ble _0806A7F0
|
|
subs r0, #1
|
|
strb r0, [r1]
|
|
_0806A7F0:
|
|
ldrb r2, [r1]
|
|
movs r0, #0
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, #0
|
|
bge _0806A7FE
|
|
adds r0, r2, #1
|
|
strb r0, [r1]
|
|
_0806A7FE:
|
|
adds r1, r4, #0
|
|
adds r1, #0x63
|
|
ldrb r0, [r1]
|
|
movs r2, #0
|
|
ldrsb r2, [r1, r2]
|
|
cmp r2, #0
|
|
beq _0806A82A
|
|
cmp r2, #0
|
|
ble _0806A814
|
|
subs r0, #1
|
|
strb r0, [r1]
|
|
_0806A814:
|
|
ldrb r2, [r1]
|
|
movs r0, #0
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, #0
|
|
bge _0806A82A
|
|
adds r0, r2, #1
|
|
strb r0, [r1]
|
|
b _0806A82A
|
|
_0806A824:
|
|
adds r0, r4, #0
|
|
bl sub_08004274
|
|
_0806A82A:
|
|
add sp, #8
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806A830
|
|
sub_0806A830: @ 0x0806A830
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
bne _0806A84E
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
movs r1, #0x14
|
|
bl sub_08004260
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
_0806A84E:
|
|
ldr r0, _0806A88C @ =gUnk_02033280
|
|
ldr r0, [r0]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806A860
|
|
bl sub_0805E780
|
|
_0806A860:
|
|
adds r0, r4, #0
|
|
bl sub_08004274
|
|
adds r1, r4, #0
|
|
adds r1, #0x5a
|
|
ldrb r0, [r1]
|
|
cmp r0, #1
|
|
bne _0806A88A
|
|
movs r0, #0
|
|
strb r0, [r1]
|
|
movs r0, #0x37
|
|
movs r1, #5
|
|
movs r2, #0
|
|
bl CreateNPC
|
|
adds r1, r0, #0
|
|
cmp r1, #0
|
|
beq _0806A88A
|
|
adds r0, r4, #0
|
|
bl sub_0806FA30
|
|
_0806A88A:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0806A88C: .4byte gUnk_02033280
|
|
|
|
thumb_func_start sub_0806A890
|
|
sub_0806A890: @ 0x0806A890
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
bne _0806A8AE
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
movs r1, #0x15
|
|
bl sub_08004260
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
_0806A8AE:
|
|
adds r0, r4, #0
|
|
bl sub_08004274
|
|
adds r0, r4, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806A8C6
|
|
bl sub_0805E780
|
|
_0806A8C6:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806A8C8
|
|
sub_0806A8C8: @ 0x0806A8C8
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
movs r0, #0x60
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
bne _0806A8F0
|
|
movs r0, #0x37
|
|
movs r1, #2
|
|
movs r2, #0
|
|
bl CreateNPC
|
|
adds r4, r0, #0
|
|
cmp r4, #0
|
|
beq _0806A8F0
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
bl CopyPosition
|
|
str r5, [r4, #0x50]
|
|
_0806A8F0:
|
|
movs r0, #0x37
|
|
movs r1, #3
|
|
movs r2, #0
|
|
bl CreateNPC
|
|
adds r4, r0, #0
|
|
cmp r4, #0
|
|
beq _0806A910
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
bl CopyPosition
|
|
ldrh r0, [r4, #0x32]
|
|
adds r0, #2
|
|
strh r0, [r4, #0x32]
|
|
str r5, [r4, #0x50]
|
|
_0806A910:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806A914
|
|
sub_0806A914: @ 0x0806A914
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
movs r0, #0x37
|
|
movs r1, #1
|
|
movs r2, #0
|
|
bl CreateNPC
|
|
adds r4, r0, #0
|
|
cmp r4, #0
|
|
beq _0806A938
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
bl CopyPosition
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
bl sub_0806FAB0
|
|
_0806A938:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806A93C
|
|
sub_0806A93C: @ 0x0806A93C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_08078778
|
|
ldr r3, _0806A954 @ =gUnk_0811229C
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
movs r2, #0
|
|
bl sub_08078850
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0806A954: .4byte gUnk_0811229C
|
|
|
|
thumb_func_start sub_0806A958
|
|
sub_0806A958: @ 0x0806A958
|
|
push {lr}
|
|
ldrb r0, [r0, #0xc]
|
|
cmp r0, #5
|
|
beq _0806A966
|
|
ldr r1, _0806A968 @ =gUnk_02033280
|
|
movs r0, #0
|
|
strb r0, [r1, #6]
|
|
_0806A966:
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806A968: .4byte gUnk_02033280
|
|
|
|
thumb_func_start sub_0806A96C
|
|
sub_0806A96C: @ 0x0806A96C
|
|
push {r4, lr}
|
|
adds r2, r0, #0
|
|
movs r3, #0
|
|
str r3, [r1, #0x14]
|
|
movs r0, #0x39
|
|
adds r0, r0, r2
|
|
mov ip, r0
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x18
|
|
asrs r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0806A9A8
|
|
ldrb r0, [r2, #0xc]
|
|
cmp r0, #3
|
|
beq _0806A992
|
|
movs r0, #3
|
|
strb r0, [r2, #0xc]
|
|
strb r3, [r2, #0xd]
|
|
b _0806A9A8
|
|
_0806A992:
|
|
ldrb r0, [r2, #0xd]
|
|
cmp r0, #1
|
|
bls _0806A9A8
|
|
mov r4, ip
|
|
strb r3, [r4]
|
|
movs r0, #1
|
|
str r0, [r1, #0x14]
|
|
ldr r2, _0806A9AC @ =gUnk_02033280
|
|
ldrb r1, [r2, #7]
|
|
orrs r0, r1
|
|
strb r0, [r2, #7]
|
|
_0806A9A8:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0806A9AC: .4byte gUnk_02033280
|
|
|
|
thumb_func_start sub_0806A9B0
|
|
sub_0806A9B0: @ 0x0806A9B0
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r1, #0
|
|
movs r0, #2
|
|
strb r0, [r4, #0xc]
|
|
strb r1, [r4, #0xd]
|
|
bl Random
|
|
ldr r2, _0806A9E4 @ =gUnk_081122A0
|
|
movs r1, #7
|
|
ands r1, r0
|
|
adds r1, r1, r2
|
|
ldrb r0, [r1]
|
|
strb r0, [r4, #0xe]
|
|
adds r1, r4, #0
|
|
adds r1, #0x80
|
|
movs r0, #9
|
|
strh r0, [r1]
|
|
adds r0, r4, #0
|
|
movs r1, #9
|
|
bl sub_08004260
|
|
movs r0, #0x62
|
|
bl sub_0807CCB4
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0806A9E4: .4byte gUnk_081122A0
|
|
|
|
thumb_func_start sub_0806A9E8
|
|
sub_0806A9E8: @ 0x0806A9E8
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
movs r0, #0x37
|
|
movs r1, #4
|
|
movs r2, #0
|
|
bl CreateNPC
|
|
adds r4, r0, #0
|
|
cmp r4, #0
|
|
beq _0806AA0C
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
bl CopyPosition
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
bl sub_0806FAD8
|
|
_0806AA0C:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806AA10
|
|
sub_0806AA10: @ 0x0806AA10
|
|
push {lr}
|
|
bl sub_0806A914
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_0806AA18
|
|
sub_0806AA18: @ 0x0806AA18
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
adds r0, #0x6a
|
|
ldrh r0, [r0]
|
|
cmp r0, #0
|
|
beq _0806AA2C
|
|
ldr r1, _0806AA28 @ =0x00004408
|
|
b _0806AA3C
|
|
.align 2, 0
|
|
_0806AA28: .4byte 0x00004408
|
|
_0806AA2C:
|
|
ldr r0, _0806AA48 @ =gUnk_030010A0
|
|
ldr r0, [r0]
|
|
movs r1, #1
|
|
ands r0, r1
|
|
ldr r1, _0806AA4C @ =0x0000440D
|
|
cmp r0, #0
|
|
bne _0806AA3C
|
|
subs r1, #6
|
|
_0806AA3C:
|
|
adds r0, r1, #0
|
|
adds r1, r2, #0
|
|
bl TextboxNoOverlap
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806AA48: .4byte gUnk_030010A0
|
|
_0806AA4C: .4byte 0x0000440D
|
|
|
|
thumb_func_start sub_0806AA50
|
|
sub_0806AA50: @ 0x0806AA50
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r6, r0, #0
|
|
adds r5, r1, #0
|
|
ldrb r0, [r5, #0x18]
|
|
cmp r0, #1
|
|
beq _0806AB38
|
|
cmp r0, #1
|
|
bgt _0806AA6A
|
|
cmp r0, #0
|
|
beq _0806AA70
|
|
b _0806AB64
|
|
_0806AA6A:
|
|
cmp r0, #2
|
|
beq _0806AB5C
|
|
b _0806AB64
|
|
_0806AA70:
|
|
str r0, [r5, #0x14]
|
|
movs r0, #0x8f
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
bne _0806AA84
|
|
ldr r2, _0806AA80 @ =gUnk_081122A8
|
|
b _0806AA9A
|
|
.align 2, 0
|
|
_0806AA80: .4byte gUnk_081122A8
|
|
_0806AA84:
|
|
movs r0, #0x15
|
|
bl GetInventoryValue
|
|
cmp r0, #0
|
|
bne _0806AA98
|
|
ldr r2, _0806AA94 @ =gUnk_081122B0
|
|
b _0806AA9A
|
|
.align 2, 0
|
|
_0806AA94: .4byte gUnk_081122B0
|
|
_0806AA98:
|
|
ldr r2, _0806AAD0 @ =gUnk_081122B8
|
|
_0806AA9A:
|
|
ldr r1, _0806AAD4 @ =gUnk_02034350
|
|
ldr r0, [r1, #0x68]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r2
|
|
ldrh r7, [r0]
|
|
mov r8, r1
|
|
mov r4, r8
|
|
ldr r0, [r4, #0x68]
|
|
adds r0, #1
|
|
str r0, [r4, #0x68]
|
|
cmp r0, #2
|
|
bls _0806AAB6
|
|
movs r0, #0
|
|
str r0, [r4, #0x68]
|
|
_0806AAB6:
|
|
adds r0, r7, #0
|
|
adds r1, r6, #0
|
|
bl TextboxNoOverlap
|
|
ldr r0, [r5, #4]
|
|
cmp r0, #1
|
|
beq _0806AAEE
|
|
cmp r0, #1
|
|
blo _0806AAD8
|
|
cmp r0, #2
|
|
beq _0806AB02
|
|
b _0806AB1C
|
|
.align 2, 0
|
|
_0806AAD0: .4byte gUnk_081122B8
|
|
_0806AAD4: .4byte gUnk_02034350
|
|
_0806AAD8:
|
|
adds r0, r4, #0
|
|
adds r0, #0xac
|
|
str r6, [r0]
|
|
adds r0, r6, #0
|
|
movs r1, #7
|
|
bl sub_0805EA78
|
|
movs r0, #0xc0
|
|
lsls r0, r0, #9
|
|
str r0, [r6, #0x20]
|
|
b _0806AB1C
|
|
_0806AAEE:
|
|
adds r0, r4, #0
|
|
adds r0, #0xac
|
|
ldr r0, [r0]
|
|
movs r1, #7
|
|
bl sub_0805EB64
|
|
adds r1, r0, #0
|
|
adds r0, r4, #0
|
|
adds r0, #0xb0
|
|
b _0806AB14
|
|
_0806AB02:
|
|
mov r0, r8
|
|
adds r0, #0xb0
|
|
ldr r0, [r0]
|
|
movs r1, #7
|
|
bl sub_0805EB64
|
|
adds r1, r0, #0
|
|
mov r0, r8
|
|
adds r0, #0xb4
|
|
_0806AB14:
|
|
str r1, [r0]
|
|
movs r0, #0xc0
|
|
lsls r0, r0, #9
|
|
str r0, [r1, #0x20]
|
|
_0806AB1C:
|
|
ldr r0, _0806AB34 @ =0x0000441E
|
|
cmp r7, r0
|
|
bne _0806AB2C
|
|
movs r0, #0x8f
|
|
bl sub_0807CCB4
|
|
movs r0, #1
|
|
str r0, [r5, #0x14]
|
|
_0806AB2C:
|
|
movs r0, #1
|
|
strb r0, [r5, #0x18]
|
|
b _0806AB64
|
|
.align 2, 0
|
|
_0806AB34: .4byte 0x0000441E
|
|
_0806AB38:
|
|
ldr r0, _0806AB58 @ =gUnk_02034350
|
|
ldr r1, [r5, #4]
|
|
lsls r1, r1, #2
|
|
adds r0, #0xac
|
|
adds r1, r1, r0
|
|
ldr r1, [r1]
|
|
movs r2, #0x36
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, #0
|
|
blt _0806AB64
|
|
movs r0, #0xc0
|
|
lsls r0, r0, #9
|
|
str r0, [r1, #0x20]
|
|
movs r0, #2
|
|
strb r0, [r5, #0x18]
|
|
b _0806AB64
|
|
.align 2, 0
|
|
_0806AB58: .4byte gUnk_02034350
|
|
_0806AB5C:
|
|
movs r1, #0x36
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, #0
|
|
bge _0806AB6A
|
|
_0806AB64:
|
|
ldr r1, _0806AB70 @ =gUnk_02033280
|
|
movs r0, #0
|
|
strb r0, [r1, #6]
|
|
_0806AB6A:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0806AB70: .4byte gUnk_02033280
|
|
|
|
thumb_func_start sub_0806AB74
|
|
sub_0806AB74: @ 0x0806AB74
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
ldr r1, _0806AB94 @ =gUnk_02034350
|
|
movs r0, #1
|
|
strb r0, [r1, #3]
|
|
movs r1, #0x32
|
|
ldrsh r0, [r2, r1]
|
|
ldr r1, _0806AB98 @ =gRoomControls
|
|
ldrh r1, [r1, #8]
|
|
subs r0, r0, r1
|
|
cmp r0, #0xa7
|
|
bgt _0806AB92
|
|
adds r0, r1, #0
|
|
adds r0, #0xa8
|
|
strh r0, [r2, #0x32]
|
|
_0806AB92:
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806AB94: .4byte gUnk_02034350
|
|
_0806AB98: .4byte gRoomControls
|
|
|
|
thumb_func_start sub_0806AB9C
|
|
sub_0806AB9C: @ 0x0806AB9C
|
|
push {r4, r5, lr}
|
|
sub sp, #4
|
|
adds r4, r0, #0
|
|
adds r5, r1, #0
|
|
movs r0, #0
|
|
str r0, [sp]
|
|
movs r0, #7
|
|
movs r1, #0x37
|
|
movs r2, #7
|
|
movs r3, #1
|
|
bl sub_0805EB2C
|
|
cmp r0, #0
|
|
beq _0806ABBC
|
|
bl sub_0805E7BC
|
|
_0806ABBC:
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807F950
|
|
add sp, #4
|
|
pop {r4, r5, pc}
|
|
|
|
thumb_func_start sub_0806ABC8
|
|
sub_0806ABC8: @ 0x0806ABC8
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r1, [r4, #0x10]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0806ABF4
|
|
ldr r0, _0806ABF0 @ =gUnk_081126E8
|
|
ldrb r1, [r4, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldr r1, [r1]
|
|
adds r0, r4, #0
|
|
bl _call_via_r1
|
|
adds r0, r4, #0
|
|
bl sub_0806ED78
|
|
b _0806ABFA
|
|
.align 2, 0
|
|
_0806ABF0: .4byte gUnk_081126E8
|
|
_0806ABF4:
|
|
adds r0, r4, #0
|
|
bl sub_0806ACC4
|
|
_0806ABFA:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806ABFC
|
|
sub_0806ABFC: @ 0x0806ABFC
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r1, [r4, #0xa]
|
|
lsls r1, r1, #4
|
|
ldr r0, _0806AC38 @ =gUnk_08112674
|
|
adds r1, r1, r0
|
|
adds r0, r4, #0
|
|
bl sub_0806FDEC
|
|
cmp r0, #0
|
|
beq _0806AC36
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_08004260
|
|
movs r1, #0
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r0, [r4, #0xe]
|
|
adds r2, r4, #0
|
|
adds r2, #0x6a
|
|
strb r0, [r2]
|
|
lsls r0, r0, #1
|
|
strb r0, [r4, #0x14]
|
|
ldrb r0, [r4, #0x14]
|
|
lsls r0, r0, #2
|
|
subs r2, #1
|
|
strb r0, [r2]
|
|
strb r1, [r4, #0xe]
|
|
_0806AC36:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0806AC38: .4byte gUnk_08112674
|
|
|
|
thumb_func_start sub_0806AC3C
|
|
sub_0806AC3C: @ 0x0806AC3C
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
adds r0, #0x58
|
|
ldrb r0, [r0]
|
|
cmp r0, #3
|
|
bhi _0806ACBA
|
|
ldr r4, _0806AC6C @ =gLinkEntity
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
movs r2, #0x18
|
|
movs r3, #0x18
|
|
bl sub_080041A0
|
|
cmp r0, #0
|
|
beq _0806AC70
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
bl sub_080045C4
|
|
adds r2, r0, #0
|
|
movs r0, #0x1e
|
|
ands r2, r0
|
|
b _0806AC74
|
|
.align 2, 0
|
|
_0806AC6C: .4byte gLinkEntity
|
|
_0806AC70:
|
|
ldrb r0, [r5, #0x14]
|
|
lsls r2, r0, #2
|
|
_0806AC74:
|
|
adds r0, r5, #0
|
|
adds r0, #0x69
|
|
ldrb r3, [r0]
|
|
adds r4, r0, #0
|
|
cmp r2, r3
|
|
beq _0806AC9A
|
|
subs r0, r2, r3
|
|
movs r1, #0x1f
|
|
ands r0, r1
|
|
cmp r0, #0xf
|
|
bgt _0806AC8E
|
|
subs r0, r3, #1
|
|
b _0806AC90
|
|
_0806AC8E:
|
|
adds r0, r3, #1
|
|
_0806AC90:
|
|
strb r0, [r4]
|
|
ldrb r1, [r4]
|
|
movs r0, #0x1f
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
_0806AC9A:
|
|
ldrb r1, [r4]
|
|
movs r0, #7
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0806ACBA
|
|
ldrb r0, [r4]
|
|
bl sub_0806F5B0
|
|
strb r0, [r5, #0x14]
|
|
ldrb r1, [r5, #0x14]
|
|
lsrs r1, r1, #1
|
|
movs r0, #2
|
|
eors r1, r0
|
|
adds r0, r5, #0
|
|
bl sub_08004260
|
|
_0806ACBA:
|
|
adds r0, r5, #0
|
|
bl sub_080042B8
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806ACC4
|
|
sub_0806ACC4: @ 0x0806ACC4
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
ldrb r5, [r4, #0xc]
|
|
cmp r5, #1
|
|
beq _0806AD28
|
|
cmp r5, #1
|
|
bgt _0806ACD8
|
|
cmp r5, #0
|
|
beq _0806ACE4
|
|
b _0806ADEA
|
|
_0806ACD8:
|
|
cmp r5, #2
|
|
beq _0806ADB8
|
|
cmp r5, #3
|
|
bne _0806ACE2
|
|
b _0806ADDC
|
|
_0806ACE2:
|
|
b _0806ADEA
|
|
_0806ACE4:
|
|
ldrb r1, [r4, #0xa]
|
|
lsls r1, r1, #4
|
|
ldr r0, _0806AD24 @ =gUnk_08112674
|
|
adds r1, r1, r0
|
|
adds r0, r4, #0
|
|
bl sub_0806FDEC
|
|
cmp r0, #0
|
|
bne _0806ACF8
|
|
b _0806ADFA
|
|
_0806ACF8:
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r0, [r4, #0xe]
|
|
adds r1, r4, #0
|
|
adds r1, #0x6a
|
|
strb r0, [r1]
|
|
lsls r0, r0, #1
|
|
strb r0, [r4, #0x14]
|
|
strb r5, [r4, #0xe]
|
|
adds r0, r4, #0
|
|
bl sub_0801E99C
|
|
adds r1, r4, #0
|
|
adds r1, #0x68
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
bl sub_0807DD50
|
|
ldrb r1, [r4, #0x14]
|
|
lsrs r1, r1, #1
|
|
adds r1, #8
|
|
b _0806ADCE
|
|
.align 2, 0
|
|
_0806AD24: .4byte gUnk_08112674
|
|
_0806AD28:
|
|
adds r5, r4, #0
|
|
adds r5, #0x39
|
|
movs r0, #0
|
|
ldrsb r0, [r5, r0]
|
|
cmp r0, #2
|
|
bne _0806AD44
|
|
movs r1, #0
|
|
movs r0, #3
|
|
strb r0, [r4, #0xc]
|
|
strb r1, [r5]
|
|
adds r0, r4, #0
|
|
bl sub_0806F118
|
|
b _0806ADEA
|
|
_0806AD44:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0807DDAC
|
|
adds r0, r4, #0
|
|
bl sub_0806AEA8
|
|
ldrb r0, [r4, #0xb]
|
|
cmp r0, #0xa
|
|
bne _0806AD8A
|
|
movs r0, #0
|
|
ldrsb r0, [r5, r0]
|
|
cmp r0, #0
|
|
beq _0806AD8A
|
|
movs r1, #0
|
|
movs r0, #2
|
|
strb r0, [r4, #0xc]
|
|
strb r1, [r5]
|
|
ldr r1, _0806ADAC @ =gLinkEntity
|
|
adds r0, r4, #0
|
|
bl sub_080045C4
|
|
bl sub_0806F5A4
|
|
adds r1, r0, #0
|
|
adds r1, #8
|
|
adds r0, r4, #0
|
|
bl sub_08004260
|
|
adds r0, r4, #0
|
|
adds r0, #0x84
|
|
ldr r1, [r0]
|
|
adds r0, r4, #0
|
|
bl sub_0806AFE8
|
|
_0806AD8A:
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #1
|
|
bne _0806ADEA
|
|
ldr r0, _0806ADAC @ =gLinkEntity
|
|
ldrb r3, [r0, #0x14]
|
|
lsrs r3, r3, #1
|
|
ldr r0, _0806ADB0 @ =gUnk_081126E4
|
|
adds r0, r3, r0
|
|
ldrb r2, [r0]
|
|
lsls r3, r3, #2
|
|
ldr r0, _0806ADB4 @ =gUnk_081126D4
|
|
adds r3, r3, r0
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
bl sub_08078850
|
|
b _0806ADEA
|
|
.align 2, 0
|
|
_0806ADAC: .4byte gLinkEntity
|
|
_0806ADB0: .4byte gUnk_081126E4
|
|
_0806ADB4: .4byte gUnk_081126D4
|
|
_0806ADB8:
|
|
ldr r0, _0806ADD8 @ =gTextBox
|
|
ldrb r1, [r0]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0806ADEA
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0x14]
|
|
lsrs r1, r1, #1
|
|
adds r1, #4
|
|
_0806ADCE:
|
|
adds r0, r4, #0
|
|
bl sub_08004260
|
|
b _0806ADEA
|
|
.align 2, 0
|
|
_0806ADD8: .4byte gTextBox
|
|
_0806ADDC:
|
|
adds r0, r4, #0
|
|
bl sub_0806F148
|
|
cmp r0, #0
|
|
beq _0806ADEA
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
_0806ADEA:
|
|
adds r0, r4, #0
|
|
adds r0, #0x59
|
|
ldrb r0, [r0]
|
|
cmp r0, #0xff
|
|
beq _0806ADFA
|
|
adds r0, r4, #0
|
|
bl sub_08004274
|
|
_0806ADFA:
|
|
pop {r4, r5, pc}
|
|
|
|
thumb_func_start sub_0806ADFC
|
|
sub_0806ADFC: @ 0x0806ADFC
|
|
push {lr}
|
|
adds r1, r0, #0
|
|
adds r1, #0x68
|
|
ldrb r1, [r1]
|
|
bl sub_08078784
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806AE0C
|
|
sub_0806AE0C: @ 0x0806AE0C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r1, [r4, #0x10]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0806AE62
|
|
adds r0, r4, #0
|
|
adds r0, #0x69
|
|
ldrb r0, [r0]
|
|
lsrs r2, r0, #1
|
|
adds r0, r4, #0
|
|
adds r0, #0x5b
|
|
ldrb r1, [r0]
|
|
movs r0, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806AE3C
|
|
adds r2, #0x1c
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0806FF60
|
|
b _0806AE46
|
|
_0806AE3C:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
movs r2, #0xff
|
|
bl sub_0806FF60
|
|
_0806AE46:
|
|
ldrb r2, [r4, #0x1e]
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
bl sub_0806FF60
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
movs r2, #0
|
|
bl sub_0806FF88
|
|
adds r0, r4, #0
|
|
bl sub_0807000C
|
|
b _0806AEA4
|
|
_0806AE62:
|
|
adds r0, r4, #0
|
|
adds r0, #0x5a
|
|
ldrb r2, [r0]
|
|
cmp r2, #0xff
|
|
beq _0806AE72
|
|
movs r0, #0x81
|
|
rsbs r0, r0, #0
|
|
ands r2, r0
|
|
_0806AE72:
|
|
adds r0, r4, #0
|
|
adds r0, #0x5b
|
|
ldrb r1, [r0]
|
|
movs r0, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0806AE82
|
|
movs r2, #0xff
|
|
_0806AE82:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0806FF60
|
|
ldrb r2, [r4, #0x1e]
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
bl sub_0806FF60
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
movs r2, #0
|
|
bl sub_0806FF88
|
|
adds r0, r4, #0
|
|
bl sub_0807000C
|
|
_0806AEA4:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806AEA8
|
|
sub_0806AEA8: @ 0x0806AEA8
|
|
push {r4, r5, r6, lr}
|
|
adds r4, r0, #0
|
|
adds r6, r4, #0
|
|
adds r6, #0x82
|
|
ldrh r5, [r6]
|
|
ldr r0, _0806AED4 @ =0x0000FFDF
|
|
ands r0, r5
|
|
strh r0, [r6]
|
|
movs r0, #0x20
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
beq _0806AECA
|
|
movs r1, #0x80
|
|
lsls r1, r1, #7
|
|
adds r0, r4, #0
|
|
bl sub_08003FC4
|
|
_0806AECA:
|
|
adds r0, r4, #0
|
|
bl sub_0807DDE4
|
|
strh r5, [r6]
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0806AED4: .4byte 0x0000FFDF
|
|
|
|
thumb_func_start sub_0806AED8
|
|
sub_0806AED8: @ 0x0806AED8
|
|
push {lr}
|
|
movs r1, #0
|
|
strb r1, [r0, #0xe]
|
|
bl sub_0806AEE4
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_0806AEE4
|
|
sub_0806AEE4: @ 0x0806AEE4
|
|
push {r4, r5, r6, r7, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xe]
|
|
adds r7, r0, #0
|
|
cmp r7, #0
|
|
beq _0806AEF6
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
b _0806AF5A
|
|
_0806AEF6:
|
|
movs r0, #2
|
|
strb r0, [r4, #0xe]
|
|
adds r0, r4, #0
|
|
movs r1, #0x20
|
|
movs r2, #0x20
|
|
bl sub_0806EDD8
|
|
adds r3, r0, #0
|
|
cmp r3, #0
|
|
bge _0806AF16
|
|
adds r0, r4, #0
|
|
adds r0, #0x6a
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #1
|
|
strb r0, [r4, #0x14]
|
|
lsls r3, r1, #3
|
|
_0806AF16:
|
|
ldrb r0, [r4, #0x14]
|
|
lsrs r0, r0, #1
|
|
lsls r0, r0, #5
|
|
asrs r1, r3, #1
|
|
lsls r1, r1, #1
|
|
ldr r2, _0806AF5C @ =gUnk_081125F4
|
|
adds r1, r1, r2
|
|
adds r0, r0, r1
|
|
ldrb r6, [r0]
|
|
ldrb r5, [r0, #1]
|
|
movs r0, #0x80
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
beq _0806AF3A
|
|
adds r0, r3, #0
|
|
bl sub_0806F5B0
|
|
strb r0, [r4, #0x14]
|
|
_0806AF3A:
|
|
movs r0, #0x7f
|
|
ands r5, r0
|
|
adds r0, r4, #0
|
|
adds r0, #0x5a
|
|
strb r6, [r0]
|
|
strb r5, [r4, #0x1e]
|
|
adds r1, r4, #0
|
|
adds r1, #0x5b
|
|
movs r0, #1
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
adds r0, #0x58
|
|
strb r7, [r0]
|
|
subs r1, #2
|
|
movs r0, #0xff
|
|
strb r0, [r1]
|
|
_0806AF5A:
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0806AF5C: .4byte gUnk_081125F4
|
|
|
|
thumb_func_start sub_0806AF60
|
|
sub_0806AF60: @ 0x0806AF60
|
|
push {lr}
|
|
ldrb r2, [r0, #0x14]
|
|
lsrs r2, r2, #1
|
|
ldr r1, [r1, #4]
|
|
adds r1, r1, r2
|
|
bl sub_08004260
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_0806AF70
|
|
sub_0806AF70: @ 0x0806AF70
|
|
movs r1, #0x90
|
|
lsls r1, r1, #0xa
|
|
str r1, [r0, #0x20]
|
|
bx lr
|
|
|
|
thumb_func_start sub_0806AF78
|
|
sub_0806AF78: @ 0x0806AF78
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
adds r5, r1, #0
|
|
movs r1, #0xc0
|
|
lsls r1, r1, #5
|
|
bl sub_08003FC4
|
|
ldr r0, [r4, #0x34]
|
|
cmp r0, #0
|
|
blt _0806AF9E
|
|
ldr r0, [r4, #0x20]
|
|
cmp r0, #0
|
|
bgt _0806AF9E
|
|
movs r0, #0
|
|
str r0, [r4, #0x34]
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0806AF70
|
|
_0806AF9E:
|
|
pop {r4, r5, pc}
|
|
|
|
thumb_func_start sub_0806AFA0
|
|
sub_0806AFA0: @ 0x0806AFA0
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0806ED78
|
|
cmp r0, #0
|
|
beq _0806AFBA
|
|
movs r0, #0x24
|
|
ldrsh r1, [r4, r0]
|
|
rsbs r1, r1, #0
|
|
ldrb r2, [r4, #0x15]
|
|
adds r0, r4, #0
|
|
bl sub_0806F62C
|
|
_0806AFBA:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806AFBC
|
|
sub_0806AFBC: @ 0x0806AFBC
|
|
push {lr}
|
|
adds r3, r0, #0
|
|
ldr r0, _0806AFE0 @ =gUnk_02002A40
|
|
ldrb r0, [r0, #8]
|
|
subs r0, #2
|
|
cmp r0, #0
|
|
bge _0806AFCC
|
|
movs r0, #0
|
|
_0806AFCC:
|
|
ldrb r1, [r3, #0xb]
|
|
lsls r1, r1, #6
|
|
lsls r0, r0, #3
|
|
ldr r2, _0806AFE4 @ =gUnk_081126F0
|
|
adds r0, r0, r2
|
|
adds r1, r1, r0
|
|
adds r0, r3, #0
|
|
bl sub_0806F1AC
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806AFE0: .4byte gUnk_02002A40
|
|
_0806AFE4: .4byte gUnk_081126F0
|
|
|
|
thumb_func_start sub_0806AFE8
|
|
sub_0806AFE8: @ 0x0806AFE8
|
|
push {lr}
|
|
movs r2, #0
|
|
str r2, [r1, #0x14]
|
|
ldr r3, _0806B000 @ =gUnk_08112BF0
|
|
ldrb r2, [r0, #0xb]
|
|
lsls r2, r2, #2
|
|
adds r2, r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806B000: .4byte gUnk_08112BF0
|
|
|
|
thumb_func_start sub_0806B004
|
|
sub_0806B004: @ 0x0806B004
|
|
push {r4, r5, r6, lr}
|
|
adds r6, r0, #0
|
|
adds r5, r1, #0
|
|
movs r4, #0
|
|
movs r0, #0x29
|
|
bl GetProgressFlag
|
|
cmp r0, #0
|
|
beq _0806B050
|
|
movs r0, #0x73
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
beq _0806B048
|
|
movs r0, #0x46
|
|
bl GetInventoryValue
|
|
cmp r0, #0
|
|
bne _0806B044
|
|
movs r4, #3
|
|
movs r0, #0x78
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
bne _0806B050
|
|
movs r4, #2
|
|
movs r0, #1
|
|
str r0, [r5, #0x14]
|
|
movs r0, #0x78
|
|
bl sub_0807CCB4
|
|
b _0806B050
|
|
_0806B044:
|
|
movs r4, #4
|
|
b _0806B050
|
|
_0806B048:
|
|
movs r4, #1
|
|
movs r0, #0x6a
|
|
bl sub_0807CCB4
|
|
_0806B050:
|
|
ldr r0, _0806B060 @ =gUnk_08112C40
|
|
lsls r1, r4, #1
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
adds r1, r6, #0
|
|
bl TextboxNoOverlap
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0806B060: .4byte gUnk_08112C40
|
|
|
|
thumb_func_start sub_0806B064
|
|
sub_0806B064: @ 0x0806B064
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
movs r4, #0
|
|
movs r0, #0x29
|
|
bl GetProgressFlag
|
|
cmp r0, #0
|
|
beq _0806B082
|
|
movs r4, #1
|
|
movs r0, #0x73
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
beq _0806B082
|
|
movs r4, #2
|
|
_0806B082:
|
|
ldr r0, _0806B094 @ =gUnk_08112C4A
|
|
lsls r1, r4, #1
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
adds r1, r5, #0
|
|
bl TextboxNoOverlap
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0806B094: .4byte gUnk_08112C4A
|
|
|
|
thumb_func_start sub_0806B098
|
|
sub_0806B098: @ 0x0806B098
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
movs r4, #2
|
|
movs r0, #0x46
|
|
bl GetInventoryValue
|
|
cmp r0, #0
|
|
bne _0806B0C0
|
|
movs r4, #1
|
|
movs r0, #0x29
|
|
bl GetProgressFlag
|
|
cmp r0, #0
|
|
beq _0806B0C0
|
|
movs r0, #0x2a
|
|
bl GetProgressFlag
|
|
rsbs r1, r0, #0
|
|
orrs r1, r0
|
|
lsrs r4, r1, #0x1f
|
|
_0806B0C0:
|
|
ldr r2, _0806B0DC @ =gUnk_08112C50
|
|
ldrb r1, [r5, #0xb]
|
|
subs r1, #7
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
adds r0, r0, r4
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r2
|
|
ldrh r0, [r0]
|
|
adds r1, r5, #0
|
|
bl TextboxNoOverlap
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0806B0DC: .4byte gUnk_08112C50
|
|
|
|
thumb_func_start sub_0806B0E0
|
|
sub_0806B0E0: @ 0x0806B0E0
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
movs r5, #0
|
|
movs r0, #0x38
|
|
movs r1, #0xb8
|
|
movs r2, #1
|
|
bl sub_080002C0
|
|
cmp r0, #0x57
|
|
bne _0806B120
|
|
movs r0, #0x48
|
|
movs r1, #0xb8
|
|
movs r2, #1
|
|
bl sub_080002C0
|
|
cmp r0, #0x57
|
|
bne _0806B120
|
|
movs r0, #0x38
|
|
movs r1, #0xc8
|
|
movs r2, #1
|
|
bl sub_080002C0
|
|
cmp r0, #0x57
|
|
bne _0806B120
|
|
movs r0, #0x48
|
|
movs r1, #0xc8
|
|
movs r2, #1
|
|
bl sub_080002C0
|
|
cmp r0, #0x57
|
|
bne _0806B120
|
|
movs r5, #1
|
|
_0806B120:
|
|
ldr r0, _0806B130 @ =gUnk_08112C5C
|
|
lsls r1, r5, #1
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
adds r1, r4, #0
|
|
bl TextboxNoOverlap
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0806B130: .4byte gUnk_08112C5C
|
|
|
|
thumb_func_start sub_0806B134
|
|
sub_0806B134: @ 0x0806B134
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
movs r0, #0x45
|
|
bl GetInventoryValue
|
|
cmp r0, #0
|
|
beq _0806B158
|
|
movs r4, #2
|
|
movs r0, #0x7b
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
bne _0806B160
|
|
movs r4, #1
|
|
movs r0, #0x7b
|
|
bl sub_0807CCB4
|
|
b _0806B160
|
|
_0806B158:
|
|
movs r4, #0
|
|
movs r0, #0x4a
|
|
bl sub_0807CD04
|
|
_0806B160:
|
|
ldr r0, _0806B17C @ =gUnk_02002A40
|
|
ldrb r0, [r0, #8]
|
|
cmp r0, #5
|
|
bls _0806B16A
|
|
movs r4, #3
|
|
_0806B16A:
|
|
ldr r0, _0806B180 @ =gUnk_08112C60
|
|
lsls r1, r4, #1
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
adds r1, r5, #0
|
|
bl TextboxNoOverlap
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0806B17C: .4byte gUnk_02002A40
|
|
_0806B180: .4byte gUnk_08112C60
|
|
|
|
thumb_func_start sub_0806B184
|
|
sub_0806B184: @ 0x0806B184
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
bne _0806B1C4
|
|
ldrb r1, [r4, #0xa]
|
|
lsls r1, r1, #4
|
|
ldr r0, _0806B1C0 @ =gUnk_08112674
|
|
adds r1, r1, r0
|
|
adds r0, r4, #0
|
|
bl sub_0806FDEC
|
|
cmp r0, #0
|
|
beq _0806B1CA
|
|
ldrb r0, [r4, #0xc]
|
|
adds r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
adds r0, r4, #0
|
|
movs r1, #6
|
|
bl sub_08004260
|
|
b _0806B1CA
|
|
.align 2, 0
|
|
_0806B1C0: .4byte gUnk_08112674
|
|
_0806B1C4:
|
|
adds r0, r4, #0
|
|
bl sub_08004274
|
|
_0806B1CA:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806B1CC
|
|
sub_0806B1CC: @ 0x0806B1CC
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #1
|
|
beq _0806B21E
|
|
cmp r0, #1
|
|
bgt _0806B1E0
|
|
cmp r0, #0
|
|
beq _0806B1E6
|
|
b _0806B25C
|
|
_0806B1E0:
|
|
cmp r0, #2
|
|
beq _0806B24E
|
|
b _0806B25C
|
|
_0806B1E6:
|
|
movs r2, #1
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0x18]
|
|
subs r0, #5
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r4, #0x18]
|
|
ldrb r0, [r4, #0xe]
|
|
strb r0, [r4, #0x14]
|
|
adds r0, r4, #0
|
|
bl sub_0801E99C
|
|
adds r1, r4, #0
|
|
adds r1, #0x68
|
|
strb r0, [r1]
|
|
ldrb r1, [r1]
|
|
adds r0, r4, #0
|
|
bl sub_08078784
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
adds r0, r4, #0
|
|
bl sub_0807DD50
|
|
b _0806B25C
|
|
_0806B21E:
|
|
adds r2, r4, #0
|
|
adds r2, #0x39
|
|
movs r1, #0
|
|
ldrsb r1, [r2, r1]
|
|
cmp r1, #2
|
|
bne _0806B238
|
|
movs r0, #0
|
|
strb r1, [r4, #0xc]
|
|
strb r0, [r2]
|
|
adds r0, r4, #0
|
|
bl sub_0806F118
|
|
b _0806B25C
|
|
_0806B238:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0807DDAC
|
|
adds r0, r4, #0
|
|
bl sub_0807DDE4
|
|
adds r0, r4, #0
|
|
bl sub_080042B8
|
|
b _0806B25C
|
|
_0806B24E:
|
|
adds r0, r4, #0
|
|
bl sub_0806F148
|
|
cmp r0, #0
|
|
beq _0806B25C
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
_0806B25C:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806B260
|
|
sub_0806B260: @ 0x0806B260
|
|
push {r4, r5, r6, lr}
|
|
adds r6, r0, #0
|
|
adds r5, r1, #0
|
|
movs r0, #0
|
|
str r0, [r5, #0x14]
|
|
movs r0, #0x46
|
|
bl GetInventoryValue
|
|
cmp r0, #0
|
|
bne _0806B29E
|
|
movs r0, #0x29
|
|
bl GetProgressFlag
|
|
cmp r0, #0
|
|
beq _0806B286
|
|
movs r4, #2
|
|
movs r0, #1
|
|
str r0, [r5, #0x14]
|
|
b _0806B2A0
|
|
_0806B286:
|
|
movs r0, #0x7a
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
bne _0806B29A
|
|
movs r4, #0
|
|
movs r0, #0x7a
|
|
bl sub_0807CCB4
|
|
b _0806B2A0
|
|
_0806B29A:
|
|
movs r4, #1
|
|
b _0806B2A0
|
|
_0806B29E:
|
|
movs r4, #3
|
|
_0806B2A0:
|
|
ldr r0, _0806B2B0 @ =gUnk_08112D48
|
|
lsls r1, r4, #1
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
adds r1, r6, #0
|
|
bl TextboxNoOverlap
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0806B2B0: .4byte gUnk_08112D48
|
|
|
|
thumb_func_start sub_0806B2B4
|
|
sub_0806B2B4: @ 0x0806B2B4
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
movs r0, #0xb3
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
beq _0806B314
|
|
movs r0, #0
|
|
bl sub_0807CC3C
|
|
cmp r0, #0
|
|
bne _0806B2D6
|
|
movs r4, #1
|
|
movs r0, #0
|
|
bl sub_0807CD10
|
|
b _0806B316
|
|
_0806B2D6:
|
|
movs r0, #1
|
|
bl sub_0807CC3C
|
|
cmp r0, #0
|
|
bne _0806B2EA
|
|
movs r4, #2
|
|
movs r0, #1
|
|
bl sub_0807CD10
|
|
b _0806B316
|
|
_0806B2EA:
|
|
movs r0, #2
|
|
bl sub_0807CC3C
|
|
cmp r0, #0
|
|
bne _0806B2FE
|
|
movs r4, #3
|
|
movs r0, #2
|
|
bl sub_0807CD10
|
|
b _0806B316
|
|
_0806B2FE:
|
|
movs r4, #4
|
|
movs r0, #0
|
|
bl sub_0807CD8C
|
|
movs r0, #1
|
|
bl sub_0807CD8C
|
|
movs r0, #2
|
|
bl sub_0807CD8C
|
|
b _0806B316
|
|
_0806B314:
|
|
movs r4, #0
|
|
_0806B316:
|
|
ldr r0, _0806B328 @ =gUnk_08112D50
|
|
lsls r1, r4, #1
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
adds r1, r5, #0
|
|
bl TextboxNoOverlap
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0806B328: .4byte gUnk_08112D50
|
|
|
|
thumb_func_start sub_0806B32C
|
|
sub_0806B32C: @ 0x0806B32C
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
ldrb r0, [r2, #0xc]
|
|
cmp r0, #0
|
|
bne _0806B352
|
|
adds r0, #1
|
|
strb r0, [r2, #0xc]
|
|
ldrb r1, [r2, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2, #0x18]
|
|
adds r0, r2, #0
|
|
movs r1, #9
|
|
bl sub_080042AC
|
|
b _0806B358
|
|
_0806B352:
|
|
adds r0, r2, #0
|
|
bl sub_080042B8
|
|
_0806B358:
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806B35C
|
|
sub_0806B35C: @ 0x0806B35C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
adds r0, #0x5b
|
|
ldrb r0, [r0]
|
|
movs r2, #0x3f
|
|
ands r2, r0
|
|
adds r2, #0x13
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0806FF60
|
|
adds r0, r4, #0
|
|
adds r0, #0x5a
|
|
ldrb r0, [r0]
|
|
movs r2, #0x7f
|
|
ands r2, r0
|
|
adds r2, #0xb
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
bl sub_0806FF60
|
|
ldrb r2, [r4, #0x1e]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_0806FF60
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
movs r2, #1
|
|
bl sub_0806FF88
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
movs r2, #0
|
|
bl sub_0806FFD8
|
|
adds r0, r4, #0
|
|
bl sub_0807000C
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806B3AC
|
|
sub_0806B3AC: @ 0x0806B3AC
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
ldrb r1, [r2, #0x10]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806B3C2
|
|
adds r0, r2, #0
|
|
bl sub_0806B41C
|
|
b _0806B3C8
|
|
_0806B3C2:
|
|
adds r0, r2, #0
|
|
bl sub_0806B3CC
|
|
_0806B3C8:
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806B3CC
|
|
sub_0806B3CC: @ 0x0806B3CC
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
bne _0806B3F4
|
|
ldr r1, _0806B418 @ =gUnk_08112E1C
|
|
adds r0, r4, #0
|
|
bl sub_0806FDEC
|
|
cmp r0, #0
|
|
beq _0806B414
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_08004260
|
|
adds r0, r4, #0
|
|
bl sub_08078778
|
|
_0806B3F4:
|
|
adds r0, r4, #0
|
|
bl sub_08004274
|
|
adds r1, r4, #0
|
|
adds r1, #0x39
|
|
movs r0, #0
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, #0
|
|
beq _0806B40E
|
|
movs r0, #0
|
|
strb r0, [r1]
|
|
bl TextboxTryNoOverlap
|
|
_0806B40E:
|
|
adds r0, r4, #0
|
|
bl sub_0806ED78
|
|
_0806B414:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0806B418: .4byte gUnk_08112E1C
|
|
|
|
thumb_func_start sub_0806B41C
|
|
sub_0806B41C: @ 0x0806B41C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #1
|
|
beq _0806B470
|
|
cmp r0, #1
|
|
bgt _0806B430
|
|
cmp r0, #0
|
|
beq _0806B436
|
|
b _0806B4EC
|
|
_0806B430:
|
|
cmp r0, #2
|
|
beq _0806B4DE
|
|
b _0806B4EC
|
|
_0806B436:
|
|
ldr r1, _0806B46C @ =gUnk_08112E1C
|
|
adds r0, r4, #0
|
|
bl sub_0806FDEC
|
|
cmp r0, #0
|
|
beq _0806B4EC
|
|
movs r2, #1
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0x18]
|
|
subs r0, #5
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r4, #0x18]
|
|
ldrb r0, [r4, #0xb]
|
|
cmp r0, #2
|
|
bne _0806B462
|
|
adds r0, r4, #0
|
|
movs r1, #0x25
|
|
movs r2, #0
|
|
bl CreateFX
|
|
_0806B462:
|
|
adds r0, r4, #0
|
|
bl sub_0807DD50
|
|
b _0806B4EC
|
|
.align 2, 0
|
|
_0806B46C: .4byte gUnk_08112E1C
|
|
_0806B470:
|
|
adds r2, r4, #0
|
|
adds r2, #0x39
|
|
movs r1, #0
|
|
ldrsb r1, [r2, r1]
|
|
cmp r1, #2
|
|
bne _0806B4D4
|
|
movs r0, #0
|
|
strb r1, [r4, #0xc]
|
|
strb r0, [r2]
|
|
ldr r1, _0806B4C8 @ =gLinkEntity
|
|
adds r0, r4, #0
|
|
bl sub_080045C4
|
|
bl sub_0806F5A4
|
|
adds r1, r0, #0
|
|
adds r1, #4
|
|
adds r0, r4, #0
|
|
bl sub_08004260
|
|
adds r0, r4, #0
|
|
bl sub_08002632
|
|
ldr r1, _0806B4CC @ =gUnk_08001A7C
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r3, [r0]
|
|
adds r0, r4, #0
|
|
adds r0, #0x68
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x21
|
|
bne _0806B4B2
|
|
adds r3, #6
|
|
_0806B4B2:
|
|
ldrh r1, [r3]
|
|
ldrh r2, [r3, #2]
|
|
ldrh r3, [r3, #4]
|
|
adds r0, r4, #0
|
|
bl sub_0801DFB4
|
|
ldr r0, _0806B4D0 @ =gLinkState
|
|
adds r0, #0x8b
|
|
movs r1, #3
|
|
strb r1, [r0]
|
|
b _0806B4EC
|
|
.align 2, 0
|
|
_0806B4C8: .4byte gLinkEntity
|
|
_0806B4CC: .4byte gUnk_08001A7C
|
|
_0806B4D0: .4byte gLinkState
|
|
_0806B4D4:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0807DD94
|
|
b _0806B4EC
|
|
_0806B4DE:
|
|
adds r0, r4, #0
|
|
bl sub_0806F148
|
|
cmp r0, #0
|
|
beq _0806B4EC
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
_0806B4EC:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806B4F0
|
|
sub_0806B4F0: @ 0x0806B4F0
|
|
push {lr}
|
|
ldrb r1, [r0, #0xb]
|
|
lsls r1, r1, #3
|
|
ldr r2, _0806B500 @ =gUnk_08112E2C
|
|
adds r1, r1, r2
|
|
bl sub_0806F1AC
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806B500: .4byte gUnk_08112E2C
|
|
|
|
thumb_func_start sub_0806B504
|
|
sub_0806B504: @ 0x0806B504
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
movs r4, #1
|
|
movs r0, #0x21
|
|
bl sub_0801E7F4
|
|
cmp r0, #0
|
|
beq _0806B518
|
|
movs r4, #3
|
|
b _0806B52A
|
|
_0806B518:
|
|
movs r0, #0x86
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
bne _0806B52A
|
|
movs r4, #0
|
|
movs r0, #0x86
|
|
bl sub_0807CCB4
|
|
_0806B52A:
|
|
ldr r0, _0806B53C @ =gUnk_08112E54
|
|
lsls r1, r4, #1
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
adds r1, r5, #0
|
|
bl TextboxNoOverlap
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0806B53C: .4byte gUnk_08112E54
|
|
|
|
thumb_func_start sub_0806B540
|
|
sub_0806B540: @ 0x0806B540
|
|
push {r4, lr}
|
|
adds r2, r0, #0
|
|
adds r0, #0x84
|
|
ldr r4, [r0]
|
|
ldrb r0, [r4, #0x18]
|
|
cmp r0, #1
|
|
beq _0806B588
|
|
cmp r0, #1
|
|
bgt _0806B558
|
|
cmp r0, #0
|
|
beq _0806B562
|
|
b _0806B600
|
|
_0806B558:
|
|
cmp r0, #2
|
|
beq _0806B5AC
|
|
cmp r0, #3
|
|
beq _0806B5EE
|
|
b _0806B600
|
|
_0806B562:
|
|
ldr r0, _0806B584 @ =0x00002312
|
|
adds r1, r2, #0
|
|
bl TextboxNoOverlap
|
|
movs r0, #0x3f
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
bne _0806B606
|
|
ldrb r0, [r4, #0x18]
|
|
adds r0, #1
|
|
strb r0, [r4, #0x18]
|
|
movs r0, #0x3f
|
|
bl sub_0807CCB4
|
|
b _0806B600
|
|
.align 2, 0
|
|
_0806B584: .4byte 0x00002312
|
|
_0806B588:
|
|
ldr r0, _0806B5A4 @ =gTextBox
|
|
ldrb r1, [r0]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0806B600
|
|
movs r0, #2
|
|
strb r0, [r4, #0x18]
|
|
ldr r0, _0806B5A8 @ =0x00002315
|
|
adds r1, r2, #0
|
|
bl TextboxNoOverlap
|
|
b _0806B600
|
|
.align 2, 0
|
|
_0806B5A4: .4byte gTextBox
|
|
_0806B5A8: .4byte 0x00002315
|
|
_0806B5AC:
|
|
ldr r0, _0806B5D4 @ =gTextBox
|
|
ldrb r1, [r0]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0806B600
|
|
movs r0, #3
|
|
strb r0, [r4, #0x18]
|
|
ldr r0, _0806B5D8 @ =gUnk_02002A40
|
|
adds r0, #0xbb
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0806B5DC
|
|
movs r0, #0x58
|
|
movs r1, #0
|
|
movs r2, #0
|
|
bl sub_080A7C18
|
|
b _0806B5E6
|
|
.align 2, 0
|
|
_0806B5D4: .4byte gTextBox
|
|
_0806B5D8: .4byte gUnk_02002A40
|
|
_0806B5DC:
|
|
movs r0, #0x3f
|
|
movs r1, #0x64
|
|
movs r2, #0
|
|
bl sub_080A7C18
|
|
_0806B5E6:
|
|
movs r0, #0xf
|
|
bl sub_0807CD10
|
|
b _0806B600
|
|
_0806B5EE:
|
|
ldr r0, _0806B5FC @ =gLinkEntity
|
|
ldrb r0, [r0, #0xc]
|
|
cmp r0, #8
|
|
beq _0806B600
|
|
movs r0, #0x2d
|
|
strh r0, [r4, #0x10]
|
|
b _0806B606
|
|
.align 2, 0
|
|
_0806B5FC: .4byte gLinkEntity
|
|
_0806B600:
|
|
ldr r1, _0806B608 @ =gUnk_02033280
|
|
movs r0, #0
|
|
strb r0, [r1, #6]
|
|
_0806B606:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0806B608: .4byte gUnk_02033280
|
|
|
|
thumb_func_start sub_0806B60C
|
|
sub_0806B60C: @ 0x0806B60C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0801E99C
|
|
adds r1, r4, #0
|
|
adds r1, #0x68
|
|
strb r0, [r1]
|
|
ldrb r1, [r1]
|
|
adds r0, r4, #0
|
|
bl sub_08078784
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806B624
|
|
sub_0806B624: @ 0x0806B624
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
bne _0806B65C
|
|
ldr r1, _0806B658 @ =gUnk_08112E1C
|
|
adds r0, r4, #0
|
|
bl sub_0806FDEC
|
|
cmp r0, #0
|
|
beq _0806B662
|
|
ldrb r0, [r4, #0xc]
|
|
adds r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_08004260
|
|
b _0806B662
|
|
.align 2, 0
|
|
_0806B658: .4byte gUnk_08112E1C
|
|
_0806B65C:
|
|
adds r0, r4, #0
|
|
bl sub_08004274
|
|
_0806B662:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806B664
|
|
sub_0806B664: @ 0x0806B664
|
|
push {lr}
|
|
ldr r2, _0806B678 @ =gUnk_08112F78
|
|
ldrb r1, [r0, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806B678: .4byte gUnk_08112F78
|
|
|
|
thumb_func_start sub_0806B67C
|
|
sub_0806B67C: @ 0x0806B67C
|
|
push {r4, r5, r6, lr}
|
|
adds r6, r0, #0
|
|
movs r1, #0
|
|
movs r0, #1
|
|
strb r0, [r6, #0xc]
|
|
strb r1, [r6, #0xd]
|
|
strb r1, [r6, #0xe]
|
|
ldrb r0, [r6, #0xa]
|
|
cmp r0, #5
|
|
bls _0806B692
|
|
b _0806B7B8
|
|
_0806B692:
|
|
lsls r0, r0, #2
|
|
ldr r1, _0806B69C @ =_0806B6A0
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0806B69C: .4byte _0806B6A0
|
|
_0806B6A0: @ jump table
|
|
.4byte _0806B6B8 @ case 0
|
|
.4byte _0806B7A6 @ case 1
|
|
.4byte _0806B70C @ case 2
|
|
.4byte _0806B726 @ case 3
|
|
.4byte _0806B7B0 @ case 4
|
|
.4byte _0806B7A6 @ case 5
|
|
_0806B6B8:
|
|
ldrh r0, [r6, #0x32]
|
|
subs r0, #0xa0
|
|
strh r0, [r6, #0x32]
|
|
movs r0, #0xa0
|
|
strb r0, [r6, #0xe]
|
|
movs r0, #0x20
|
|
strb r0, [r6, #0xf]
|
|
adds r1, r6, #0
|
|
adds r1, #0x63
|
|
strb r0, [r1]
|
|
movs r5, #0
|
|
_0806B6CE:
|
|
movs r0, #0x3b
|
|
movs r1, #2
|
|
adds r2, r5, #0
|
|
bl CreateNPC
|
|
adds r4, r0, #0
|
|
cmp r4, #0
|
|
beq _0806B6E0
|
|
str r6, [r4, #0x50]
|
|
_0806B6E0:
|
|
adds r5, #1
|
|
cmp r5, #3
|
|
bls _0806B6CE
|
|
movs r0, #0x3b
|
|
movs r1, #1
|
|
movs r2, #0
|
|
bl CreateNPC
|
|
adds r4, r0, #0
|
|
str r6, [r4, #0x50]
|
|
adds r1, r4, #0
|
|
adds r1, #0x63
|
|
movs r0, #0xff
|
|
strb r0, [r1]
|
|
movs r3, #0x80
|
|
lsls r3, r3, #9
|
|
adds r0, r6, #0
|
|
adds r1, r4, #0
|
|
movs r2, #0
|
|
bl PositionRelative
|
|
b _0806B7A6
|
|
_0806B70C:
|
|
ldrb r1, [r6, #0xb]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806B71E
|
|
ldrb r0, [r6, #0x18]
|
|
movs r1, #0x40
|
|
orrs r0, r1
|
|
strb r0, [r6, #0x18]
|
|
_0806B71E:
|
|
adds r0, r6, #0
|
|
bl sub_0806B96C
|
|
b _0806B7A6
|
|
_0806B726:
|
|
movs r0, #1
|
|
strb r0, [r6, #0xe]
|
|
movs r0, #0x20
|
|
strb r0, [r6, #0xf]
|
|
movs r0, #0x3b
|
|
movs r1, #4
|
|
movs r2, #0
|
|
bl CreateNPC
|
|
adds r4, r0, #0
|
|
cmp r4, #0
|
|
beq _0806B76C
|
|
adds r0, r6, #0
|
|
adds r1, r4, #0
|
|
bl CopyPosition
|
|
str r6, [r4, #0x50]
|
|
adds r0, r6, #0
|
|
adds r0, #0x29
|
|
ldrb r1, [r0]
|
|
lsls r1, r1, #0x1d
|
|
lsrs r1, r1, #0x1d
|
|
subs r1, #1
|
|
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]
|
|
movs r0, #0
|
|
strb r0, [r4, #0x1e]
|
|
_0806B76C:
|
|
movs r0, #0x3b
|
|
movs r1, #5
|
|
movs r2, #0
|
|
bl CreateNPC
|
|
adds r4, r0, #0
|
|
cmp r4, #0
|
|
beq _0806B7A6
|
|
adds r0, r6, #0
|
|
adds r1, r4, #0
|
|
bl CopyPosition
|
|
str r6, [r4, #0x50]
|
|
adds r0, r6, #0
|
|
adds r0, #0x29
|
|
ldrb r1, [r0]
|
|
lsls r1, r1, #0x1d
|
|
lsrs r1, r1, #0x1d
|
|
adds r1, #1
|
|
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]
|
|
_0806B7A6:
|
|
adds r0, r6, #0
|
|
movs r1, #0
|
|
bl sub_080042AC
|
|
b _0806B7B8
|
|
_0806B7B0:
|
|
adds r0, r6, #0
|
|
movs r1, #0
|
|
bl sub_08004260
|
|
_0806B7B8:
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806B7BC
|
|
sub_0806B7BC: @ 0x0806B7BC
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
movs r0, #3
|
|
bl sub_0807CC3C
|
|
cmp r0, #0
|
|
bne _0806B7CC
|
|
b _0806B968
|
|
_0806B7CC:
|
|
ldrb r0, [r5, #0xa]
|
|
cmp r0, #1
|
|
beq _0806B84C
|
|
cmp r0, #1
|
|
bgt _0806B7DC
|
|
cmp r0, #0
|
|
beq _0806B7E6
|
|
b _0806B93C
|
|
_0806B7DC:
|
|
cmp r0, #2
|
|
beq _0806B86C
|
|
cmp r0, #3
|
|
beq _0806B874
|
|
b _0806B93C
|
|
_0806B7E6:
|
|
ldrh r0, [r5, #0x32]
|
|
adds r0, #1
|
|
strh r0, [r5, #0x32]
|
|
ldrb r0, [r5, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r5, #0xe]
|
|
movs r1, #0xff
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0806B82C
|
|
movs r0, #0x3b
|
|
movs r1, #3
|
|
movs r2, #0
|
|
bl CreateNPC
|
|
adds r4, r0, #0
|
|
cmp r4, #0
|
|
bne _0806B80C
|
|
b _0806B968
|
|
_0806B80C:
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
bl CopyPosition
|
|
ldr r0, _0806B828 @ =0x00001634
|
|
bl TextboxTryNoOverlap
|
|
ldrb r0, [r5, #0xd]
|
|
adds r0, #1
|
|
strb r0, [r5, #0xd]
|
|
bl sub_0805E780
|
|
b _0806B968
|
|
.align 2, 0
|
|
_0806B828: .4byte 0x00001634
|
|
_0806B82C:
|
|
ldrb r0, [r5, #0xf]
|
|
subs r0, #1
|
|
strb r0, [r5, #0xf]
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806B83A
|
|
b _0806B95A
|
|
_0806B83A:
|
|
movs r0, #0x20
|
|
strb r0, [r5, #0xf]
|
|
ldr r0, _0806B848 @ =0x000001A9
|
|
bl PlaySFX
|
|
b _0806B95A
|
|
.align 2, 0
|
|
_0806B848: .4byte 0x000001A9
|
|
_0806B84C:
|
|
adds r0, r5, #0
|
|
bl sub_0806B9BC
|
|
adds r4, r0, #0
|
|
cmp r4, #0
|
|
bne _0806B85C
|
|
bl sub_0805E780
|
|
_0806B85C:
|
|
movs r3, #0x84
|
|
lsls r3, r3, #0xe
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
movs r2, #0
|
|
bl PositionRelative
|
|
b _0806B95A
|
|
_0806B86C:
|
|
adds r0, r5, #0
|
|
bl sub_0806B96C
|
|
b _0806B95A
|
|
_0806B874:
|
|
ldrb r0, [r5, #0xd]
|
|
cmp r0, #1
|
|
beq _0806B8A2
|
|
cmp r0, #1
|
|
bgt _0806B884
|
|
cmp r0, #0
|
|
beq _0806B88E
|
|
b _0806B91E
|
|
_0806B884:
|
|
cmp r0, #2
|
|
beq _0806B8C4
|
|
cmp r0, #3
|
|
beq _0806B906
|
|
b _0806B91E
|
|
_0806B88E:
|
|
ldrb r0, [r5, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r5, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0806B91E
|
|
ldrb r0, [r5, #0xd]
|
|
adds r0, #1
|
|
strb r0, [r5, #0xd]
|
|
b _0806B91E
|
|
_0806B8A2:
|
|
adds r0, r5, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806B91E
|
|
movs r0, #2
|
|
strb r0, [r5, #0xd]
|
|
ldr r1, _0806B8C0 @ =0x0000013F
|
|
adds r0, r5, #0
|
|
bl sub_0801D2B4
|
|
b _0806B8FA
|
|
.align 2, 0
|
|
_0806B8C0: .4byte 0x0000013F
|
|
_0806B8C4:
|
|
adds r2, r5, #0
|
|
adds r2, #0x5a
|
|
ldrb r1, [r2]
|
|
movs r0, #0x10
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806B91E
|
|
movs r0, #0xef
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldrb r0, [r5, #0xe]
|
|
adds r0, #1
|
|
strb r0, [r5, #0xe]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #1
|
|
beq _0806B91E
|
|
cmp r0, #0xa
|
|
bne _0806B91E
|
|
ldrb r0, [r5, #0xd]
|
|
adds r0, #1
|
|
strb r0, [r5, #0xd]
|
|
movs r0, #0xf4
|
|
bl sub_08004488
|
|
movs r0, #0
|
|
strb r0, [r5, #0xe]
|
|
_0806B8FA:
|
|
ldrb r1, [r5, #0xd]
|
|
subs r1, #1
|
|
adds r0, r5, #0
|
|
bl sub_080042AC
|
|
b _0806B91E
|
|
_0806B906:
|
|
adds r0, r5, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806B91E
|
|
movs r0, #0
|
|
bl sub_0807CD10
|
|
bl sub_0805E780
|
|
_0806B91E:
|
|
ldrb r0, [r5, #0xf]
|
|
subs r0, #1
|
|
strb r0, [r5, #0xf]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0806B95A
|
|
movs r0, #0x20
|
|
strb r0, [r5, #0xf]
|
|
ldr r0, _0806B938 @ =0x000001A9
|
|
bl PlaySFX
|
|
b _0806B95A
|
|
.align 2, 0
|
|
_0806B938: .4byte 0x000001A9
|
|
_0806B93C:
|
|
adds r0, r5, #0
|
|
bl sub_0806B9BC
|
|
adds r4, r0, #0
|
|
cmp r4, #0
|
|
bne _0806B94E
|
|
bl sub_0805E780
|
|
b _0806B968
|
|
_0806B94E:
|
|
ldrb r0, [r4, #0xd]
|
|
cmp r0, #0
|
|
beq _0806B968
|
|
ldrb r0, [r5, #0xa]
|
|
cmp r0, #4
|
|
beq _0806B962
|
|
_0806B95A:
|
|
adds r0, r5, #0
|
|
bl sub_080042B8
|
|
b _0806B968
|
|
_0806B962:
|
|
adds r0, r5, #0
|
|
bl sub_08004274
|
|
_0806B968:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806B96C
|
|
sub_0806B96C: @ 0x0806B96C
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0806B9BC
|
|
adds r5, r0, #0
|
|
cmp r5, #0
|
|
bne _0806B97E
|
|
bl sub_0805E780
|
|
_0806B97E:
|
|
ldrb r3, [r4, #0xb]
|
|
lsls r3, r3, #1
|
|
ldr r0, _0806B9B8 @ =gUnk_08112F80
|
|
adds r3, r3, r0
|
|
ldrb r1, [r5, #0x18]
|
|
lsls r1, r1, #0x1e
|
|
lsrs r1, r1, #0x1e
|
|
ldrb r2, [r4, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
movs r2, #0
|
|
ldrsb r2, [r3, r2]
|
|
lsls r2, r2, #0x10
|
|
ldrb r3, [r3, #1]
|
|
lsls r3, r3, #0x18
|
|
asrs r3, r3, #0x18
|
|
adds r3, #0x21
|
|
lsls r3, r3, #0x10
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
bl PositionRelative
|
|
adds r0, r4, #0
|
|
bl sub_080042B8
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0806B9B8: .4byte gUnk_08112F80
|
|
|
|
thumb_func_start sub_0806B9BC
|
|
sub_0806B9BC: @ 0x0806B9BC
|
|
push {lr}
|
|
ldr r1, [r0, #0x50]
|
|
cmp r1, #0
|
|
beq _0806B9CC
|
|
ldr r0, [r1, #4]
|
|
cmp r0, #0
|
|
bne _0806B9CC
|
|
movs r1, #0
|
|
_0806B9CC:
|
|
adds r0, r1, #0
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_0806B9D0
|
|
sub_0806B9D0: @ 0x0806B9D0
|
|
push {lr}
|
|
adds r1, r0, #0
|
|
ldrb r0, [r1, #0xc]
|
|
cmp r0, #0
|
|
bne _0806B9E6
|
|
adds r0, #1
|
|
strb r0, [r1, #0xc]
|
|
adds r0, r1, #0
|
|
bl sub_0807DD50
|
|
b _0806B9EE
|
|
_0806B9E6:
|
|
adds r0, r1, #0
|
|
movs r1, #0
|
|
bl sub_0807DD94
|
|
_0806B9EE:
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_0806B9F0
|
|
sub_0806B9F0: @ 0x0806B9F0
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
bne _0806BA18
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
bl sub_0807DD50
|
|
ldr r1, _0806BA30 @ =gUnk_08114F30
|
|
ldrb r2, [r4, #0x19]
|
|
lsrs r0, r2, #6
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r1, r1, #6
|
|
movs r0, #0x3f
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x19]
|
|
_0806BA18:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0807DDAC
|
|
adds r0, r4, #0
|
|
bl sub_0807DDE4
|
|
adds r0, r4, #0
|
|
bl sub_08004274
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0806BA30: .4byte gUnk_08114F30
|
|
|
|
thumb_func_start sub_0806BA34
|
|
sub_0806BA34: @ 0x0806BA34
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
mov sb, r0
|
|
adds r4, r1, #0
|
|
ldr r0, _0806BA58 @ =0x00004912
|
|
mov r8, r0
|
|
movs r0, #0
|
|
str r0, [r4, #0x14]
|
|
movs r0, #0x73
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
beq _0806BA60
|
|
ldr r0, _0806BA5C @ =0x00004913
|
|
mov r8, r0
|
|
b _0806BB06
|
|
.align 2, 0
|
|
_0806BA58: .4byte 0x00004912
|
|
_0806BA5C: .4byte 0x00004913
|
|
_0806BA60:
|
|
movs r0, #0x39
|
|
bl GetInventoryValue
|
|
adds r7, r0, #0
|
|
movs r0, #0x3a
|
|
bl GetInventoryValue
|
|
adds r6, r0, #0
|
|
movs r0, #0x3b
|
|
bl GetInventoryValue
|
|
adds r5, r0, #0
|
|
cmp r7, #1
|
|
bne _0806BA88
|
|
ldr r0, _0806BA84 @ =0x00004906
|
|
mov r8, r0
|
|
str r7, [r4, #0x14]
|
|
b _0806BAA2
|
|
.align 2, 0
|
|
_0806BA84: .4byte 0x00004906
|
|
_0806BA88:
|
|
cmp r6, #1
|
|
bne _0806BA98
|
|
ldr r0, _0806BA94 @ =0x00004907
|
|
mov r8, r0
|
|
str r6, [r4, #0x14]
|
|
b _0806BAA2
|
|
.align 2, 0
|
|
_0806BA94: .4byte 0x00004907
|
|
_0806BA98:
|
|
cmp r5, #1
|
|
bne _0806BAB4
|
|
ldr r0, _0806BAB0 @ =0x00004908
|
|
mov r8, r0
|
|
str r5, [r4, #0x14]
|
|
_0806BAA2:
|
|
movs r0, #0x6b
|
|
bl sub_0807CCB4
|
|
movs r0, #0x6a
|
|
bl sub_0807CCB4
|
|
b _0806BB06
|
|
.align 2, 0
|
|
_0806BAB0: .4byte 0x00004908
|
|
_0806BAB4:
|
|
movs r0, #0x6a
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
beq _0806BB06
|
|
movs r0, #0x6b
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
bne _0806BAD0
|
|
ldr r0, _0806BACC @ =0x00004901
|
|
b _0806BAD6
|
|
.align 2, 0
|
|
_0806BACC: .4byte 0x00004901
|
|
_0806BAD0:
|
|
cmp r7, #0
|
|
bne _0806BAE4
|
|
ldr r0, _0806BAE0 @ =0x00004902
|
|
_0806BAD6:
|
|
mov r8, r0
|
|
movs r0, #0x6b
|
|
bl sub_0807CCB4
|
|
b _0806BB06
|
|
.align 2, 0
|
|
_0806BAE0: .4byte 0x00004902
|
|
_0806BAE4:
|
|
cmp r6, #0
|
|
bne _0806BAF8
|
|
ldr r0, _0806BAF4 @ =0x00004903
|
|
mov r8, r0
|
|
movs r0, #0x6d
|
|
bl sub_0807CCB4
|
|
b _0806BB06
|
|
.align 2, 0
|
|
_0806BAF4: .4byte 0x00004903
|
|
_0806BAF8:
|
|
cmp r5, #0
|
|
bne _0806BB06
|
|
ldr r0, _0806BB18 @ =0x00004904
|
|
mov r8, r0
|
|
movs r0, #0x70
|
|
bl sub_0807CCB4
|
|
_0806BB06:
|
|
mov r0, r8
|
|
mov r1, sb
|
|
bl TextboxNoOverlap
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0806BB18: .4byte 0x00004904
|
|
|
|
thumb_func_start sub_0806BB1C
|
|
sub_0806BB1C: @ 0x0806BB1C
|
|
push {r4, r5, r6, lr}
|
|
adds r5, r0, #0
|
|
adds r6, r1, #0
|
|
movs r4, #1
|
|
rsbs r4, r4, #0
|
|
movs r0, #0x39
|
|
bl GetInventoryValue
|
|
cmp r0, #1
|
|
bne _0806BB34
|
|
movs r4, #0x39
|
|
b _0806BB52
|
|
_0806BB34:
|
|
movs r0, #0x3a
|
|
bl GetInventoryValue
|
|
cmp r0, #1
|
|
bne _0806BB42
|
|
movs r4, #0x3a
|
|
b _0806BB52
|
|
_0806BB42:
|
|
movs r0, #0x3b
|
|
bl GetInventoryValue
|
|
cmp r0, #1
|
|
bne _0806BB4E
|
|
movs r4, #0x3b
|
|
_0806BB4E:
|
|
cmp r4, #0
|
|
ble _0806BB78
|
|
_0806BB52:
|
|
ldr r0, [r6, #4]
|
|
cmp r0, #0
|
|
bne _0806BB70
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
bl sub_08095BE0
|
|
adds r0, r5, #0
|
|
movs r1, #0xc
|
|
bl sub_08004260
|
|
movs r0, #0xcd
|
|
bl PlaySFX
|
|
b _0806BB78
|
|
_0806BB70:
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_0807CAA0
|
|
_0806BB78:
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806BB7C
|
|
sub_0806BB7C: @ 0x0806BB7C
|
|
push {r4, lr}
|
|
adds r4, r1, #0
|
|
movs r0, #0
|
|
str r0, [r4, #0x14]
|
|
movs r0, #0x39
|
|
bl GetInventoryValue
|
|
cmp r0, #2
|
|
bne _0806BBAC
|
|
movs r0, #0x3a
|
|
bl GetInventoryValue
|
|
cmp r0, #2
|
|
bne _0806BBAC
|
|
movs r0, #0x3b
|
|
bl GetInventoryValue
|
|
cmp r0, #2
|
|
bne _0806BBAC
|
|
movs r0, #0x73
|
|
bl sub_0807CCB4
|
|
movs r0, #1
|
|
str r0, [r4, #0x14]
|
|
_0806BBAC:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806BBB0
|
|
sub_0806BBB0: @ 0x0806BBB0
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r0, #0x46
|
|
bl GetInventoryValue
|
|
cmp r0, #0
|
|
bne _0806BBCC
|
|
movs r0, #0x29
|
|
bl GetProgressFlag
|
|
rsbs r1, r0, #0
|
|
orrs r1, r0
|
|
lsrs r1, r1, #0x1f
|
|
b _0806BBCE
|
|
_0806BBCC:
|
|
movs r1, #2
|
|
_0806BBCE:
|
|
ldr r0, _0806BBE0 @ =gUnk_08113078
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
adds r1, r4, #0
|
|
bl TextboxNoOverlap
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0806BBE0: .4byte gUnk_08113078
|
|
|
|
thumb_func_start sub_0806BBE4
|
|
sub_0806BBE4: @ 0x0806BBE4
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
bne _0806BC40
|
|
ldrb r0, [r4, #0xa]
|
|
lsls r1, r0, #1
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
ldr r0, _0806BC28 @ =gUnk_08113140
|
|
adds r1, r1, r0
|
|
adds r0, r4, #0
|
|
bl sub_0806FDEC
|
|
cmp r0, #0
|
|
beq _0806BC54
|
|
ldrb r0, [r4, #0xc]
|
|
adds r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0xe]
|
|
movs r0, #1
|
|
ands r1, r0
|
|
lsls r1, r1, #6
|
|
ldrb r2, [r4, #0x18]
|
|
movs r0, #0x41
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
lsls r0, r0, #0x19
|
|
cmp r0, #0
|
|
blt _0806BC2C
|
|
movs r0, #6
|
|
b _0806BC2E
|
|
.align 2, 0
|
|
_0806BC28: .4byte gUnk_08113140
|
|
_0806BC2C:
|
|
movs r0, #2
|
|
_0806BC2E:
|
|
strb r0, [r4, #0x14]
|
|
ldrb r0, [r4, #0x14]
|
|
strb r0, [r4, #0xe]
|
|
adds r0, r4, #0
|
|
bl sub_0806BC58
|
|
adds r0, r4, #0
|
|
bl sub_0807DD64
|
|
_0806BC40:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0807DDAC
|
|
adds r0, r4, #0
|
|
bl sub_0807DDE4
|
|
adds r0, r4, #0
|
|
bl sub_08004274
|
|
_0806BC54:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806BC58
|
|
sub_0806BC58: @ 0x0806BC58
|
|
push {lr}
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806BC64
|
|
sub_0806BC64: @ 0x0806BC64
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
adds r0, #0x5a
|
|
ldrb r0, [r0]
|
|
movs r2, #0x7f
|
|
ands r2, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0806FF60
|
|
ldrb r2, [r4, #0x1e]
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
bl sub_0806FF60
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
movs r2, #0
|
|
bl sub_0806FF88
|
|
adds r0, r4, #0
|
|
bl sub_0807000C
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806BC94
|
|
sub_0806BC94: @ 0x0806BC94
|
|
push {lr}
|
|
ldrb r3, [r0, #0x18]
|
|
lsls r3, r3, #0x19
|
|
lsrs r3, r3, #0x1f
|
|
rsbs r2, r3, #0
|
|
orrs r2, r3
|
|
asrs r2, r2, #0x1f
|
|
movs r3, #8
|
|
ands r2, r3
|
|
ldr r1, [r1, #4]
|
|
adds r1, r1, r2
|
|
ldrb r2, [r0, #0x14]
|
|
lsrs r2, r2, #1
|
|
adds r1, r1, r2
|
|
bl sub_08004260
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806BCB8
|
|
sub_0806BCB8: @ 0x0806BCB8
|
|
ldrb r1, [r0, #0xe]
|
|
strb r1, [r0, #0x14]
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806BCC0
|
|
sub_0806BCC0: @ 0x0806BCC0
|
|
push {lr}
|
|
adds r1, r0, #0
|
|
ldrb r0, [r1, #0xa]
|
|
cmp r0, #0
|
|
bne _0806BCD0
|
|
adds r0, r1, #0
|
|
bl sub_0806F188
|
|
_0806BCD0:
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806BCD4
|
|
sub_0806BCD4: @ 0x0806BCD4
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0801E99C
|
|
adds r1, r0, #0
|
|
adds r0, r4, #0
|
|
bl sub_08078784
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806BCE8
|
|
sub_0806BCE8: @ 0x0806BCE8
|
|
push {lr}
|
|
ldrb r1, [r0, #0xa]
|
|
lsls r1, r1, #3
|
|
ldr r2, _0806BCF8 @ =gUnk_08113158
|
|
adds r1, r1, r2
|
|
bl sub_0806F1AC
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806BCF8: .4byte gUnk_08113158
|
|
|
|
thumb_func_start sub_0806BCFC
|
|
sub_0806BCFC: @ 0x0806BCFC
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
bne _0806BD4C
|
|
ldrb r0, [r4, #0xa]
|
|
lsls r1, r0, #1
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
ldr r0, _0806BD48 @ =gUnk_08113140
|
|
adds r1, r1, r0
|
|
adds r0, r4, #0
|
|
bl sub_0806FDEC
|
|
cmp r0, #0
|
|
beq _0806BD52
|
|
ldrb r0, [r4, #0xc]
|
|
adds r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
movs r1, #0x41
|
|
rsbs r1, r1, #0
|
|
ands r0, r1
|
|
strb r0, [r4, #0x18]
|
|
adds r0, r4, #0
|
|
bl sub_0806BC58
|
|
adds r0, r4, #0
|
|
movs r1, #3
|
|
bl sub_080042AC
|
|
b _0806BD52
|
|
.align 2, 0
|
|
_0806BD48: .4byte gUnk_08113140
|
|
_0806BD4C:
|
|
adds r0, r4, #0
|
|
bl sub_080042B8
|
|
_0806BD52:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806BD54
|
|
sub_0806BD54: @ 0x0806BD54
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
bne _0806BD6A
|
|
adds r0, #1
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
bl sub_0807DD50
|
|
b _0806BD72
|
|
_0806BD6A:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0807DD94
|
|
_0806BD72:
|
|
adds r4, #0x5a
|
|
ldrb r1, [r4]
|
|
movs r0, #0x10
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806BD94
|
|
movs r0, #0xef
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
movs r0, #0x82
|
|
lsls r0, r0, #1
|
|
bl sub_08004488
|
|
movs r0, #0x10
|
|
movs r1, #0
|
|
bl sub_08080964
|
|
_0806BD94:
|
|
ldrb r1, [r4]
|
|
movs r0, #0x20
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806BDAA
|
|
movs r0, #0xdf
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
movs r0, #0x7c
|
|
bl sub_08004488
|
|
_0806BDAA:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806BDAC
|
|
sub_0806BDAC: @ 0x0806BDAC
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #1
|
|
beq _0806BDE6
|
|
cmp r0, #1
|
|
bgt _0806BDC0
|
|
cmp r0, #0
|
|
beq _0806BDC6
|
|
b _0806BE3A
|
|
_0806BDC0:
|
|
cmp r0, #2
|
|
beq _0806BE26
|
|
b _0806BE3A
|
|
_0806BDC6:
|
|
movs r2, #1
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0x18]
|
|
subs r0, #5
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r4, #0x18]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
adds r0, r4, #0
|
|
bl sub_0807DD50
|
|
b _0806BE3A
|
|
_0806BDE6:
|
|
adds r2, r4, #0
|
|
adds r2, #0x39
|
|
movs r1, #0
|
|
ldrsb r1, [r2, r1]
|
|
cmp r1, #2
|
|
bne _0806BE1C
|
|
movs r0, #0
|
|
strb r1, [r4, #0xc]
|
|
strb r0, [r2]
|
|
ldr r1, _0806BE18 @ =gLinkEntity
|
|
adds r0, r4, #0
|
|
bl sub_080045C4
|
|
bl sub_0806F5A4
|
|
adds r1, r0, #0
|
|
adds r1, #4
|
|
adds r0, r4, #0
|
|
bl sub_080042AC
|
|
adds r0, r4, #0
|
|
bl sub_0806F118
|
|
b _0806BE3A
|
|
.align 2, 0
|
|
_0806BE18: .4byte gLinkEntity
|
|
_0806BE1C:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0807DD94
|
|
b _0806BE3A
|
|
_0806BE26:
|
|
adds r0, r4, #0
|
|
bl sub_080042B8
|
|
adds r0, r4, #0
|
|
bl sub_0806F148
|
|
cmp r0, #0
|
|
beq _0806BE3A
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
_0806BE3A:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806BE3C
|
|
sub_0806BE3C: @ 0x0806BE3C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0801E99C
|
|
adds r1, r4, #0
|
|
adds r1, #0x68
|
|
strb r0, [r1]
|
|
ldrb r1, [r1]
|
|
adds r0, r4, #0
|
|
bl sub_08078784
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806BE54
|
|
sub_0806BE54: @ 0x0806BE54
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
ldrb r0, [r2, #0xc]
|
|
cmp r0, #0
|
|
bne _0806BE7A
|
|
adds r0, #1
|
|
strb r0, [r2, #0xc]
|
|
ldrb r1, [r2, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2, #0x18]
|
|
adds r0, r2, #0
|
|
movs r1, #2
|
|
bl sub_080042AC
|
|
b _0806BE80
|
|
_0806BE7A:
|
|
adds r0, r2, #0
|
|
bl sub_080042B8
|
|
_0806BE80:
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806BE84
|
|
sub_0806BE84: @ 0x0806BE84
|
|
push {r4, r5, r6, lr}
|
|
adds r6, r0, #0
|
|
adds r4, r1, #0
|
|
movs r0, #0
|
|
str r0, [r4, #0x14]
|
|
movs r5, #1
|
|
movs r0, #0x69
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
bne _0806BEA6
|
|
movs r5, #0
|
|
movs r0, #0x69
|
|
bl sub_0807CCB4
|
|
movs r0, #1
|
|
str r0, [r4, #0x14]
|
|
_0806BEA6:
|
|
movs r0, #0x3c
|
|
bl GetInventoryValue
|
|
cmp r0, #1
|
|
bls _0806BEB2
|
|
movs r5, #2
|
|
_0806BEB2:
|
|
ldr r0, _0806BEC4 @ =gUnk_08113344
|
|
lsls r1, r5, #1
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
adds r1, r6, #0
|
|
bl TextboxNoOverlap
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0806BEC4: .4byte gUnk_08113344
|
|
|
|
thumb_func_start sub_0806BEC8
|
|
sub_0806BEC8: @ 0x0806BEC8
|
|
push {r4, r5, r6, lr}
|
|
adds r6, r0, #0
|
|
adds r5, r1, #0
|
|
movs r4, #0
|
|
str r4, [r5, #0x14]
|
|
movs r0, #0x3c
|
|
bl GetInventoryValue
|
|
cmp r0, #1
|
|
bne _0806BEE2
|
|
movs r4, #1
|
|
str r4, [r5, #0x14]
|
|
b _0806BEE8
|
|
_0806BEE2:
|
|
cmp r0, #1
|
|
bls _0806BEE8
|
|
movs r4, #2
|
|
_0806BEE8:
|
|
ldr r0, _0806BEF8 @ =gUnk_0811334A
|
|
lsls r1, r4, #1
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
adds r1, r6, #0
|
|
bl TextboxNoOverlap
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0806BEF8: .4byte gUnk_0811334A
|
|
|
|
thumb_func_start sub_0806BEFC
|
|
sub_0806BEFC: @ 0x0806BEFC
|
|
push {lr}
|
|
movs r0, #0xbf
|
|
lsls r0, r0, #1
|
|
ldr r1, _0806BF2C @ =0x0000058E
|
|
movs r2, #1
|
|
bl sub_0807B314
|
|
ldr r0, _0806BF30 @ =0x0000017F
|
|
ldr r1, _0806BF34 @ =0x0000058F
|
|
movs r2, #1
|
|
bl sub_0807B314
|
|
movs r0, #0xc0
|
|
lsls r0, r0, #1
|
|
ldr r1, _0806BF38 @ =0x000005CE
|
|
movs r2, #1
|
|
bl sub_0807B314
|
|
ldr r0, _0806BF3C @ =0x00000181
|
|
ldr r1, _0806BF40 @ =0x000005CF
|
|
movs r2, #1
|
|
bl sub_0807B314
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806BF2C: .4byte 0x0000058E
|
|
_0806BF30: .4byte 0x0000017F
|
|
_0806BF34: .4byte 0x0000058F
|
|
_0806BF38: .4byte 0x000005CE
|
|
_0806BF3C: .4byte 0x00000181
|
|
_0806BF40: .4byte 0x000005CF
|
|
|
|
thumb_func_start sub_0806BF44
|
|
sub_0806BF44: @ 0x0806BF44
|
|
push {r4, r5, lr}
|
|
adds r2, r0, #0
|
|
adds r4, r1, #0
|
|
movs r0, #0
|
|
str r0, [r4, #0x14]
|
|
movs r1, #0x2e
|
|
ldrsh r0, [r2, r1]
|
|
ldr r3, _0806BF78 @ =gRoomControls
|
|
movs r5, #0xa
|
|
ldrsh r1, [r3, r5]
|
|
subs r0, r0, r1
|
|
adds r0, #0x10
|
|
ldr r1, _0806BF7C @ =0x0000010F
|
|
cmp r0, r1
|
|
bhi _0806BF76
|
|
movs r1, #0x32
|
|
ldrsh r0, [r2, r1]
|
|
movs r2, #0xc
|
|
ldrsh r1, [r3, r2]
|
|
subs r0, r0, r1
|
|
adds r0, #0x18
|
|
cmp r0, #0xcf
|
|
bhi _0806BF76
|
|
movs r0, #1
|
|
str r0, [r4, #0x14]
|
|
_0806BF76:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0806BF78: .4byte gRoomControls
|
|
_0806BF7C: .4byte 0x0000010F
|
|
|
|
thumb_func_start sub_0806BF80
|
|
sub_0806BF80: @ 0x0806BF80
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #0
|
|
bne _0806BFBE
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
bne _0806BFA2
|
|
adds r0, #1
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
adds r0, r4, #0
|
|
bl sub_0807DD50
|
|
_0806BFA2:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0807DDAC
|
|
adds r0, r4, #0
|
|
bl sub_0807DDE4
|
|
adds r0, r4, #0
|
|
bl sub_08004274
|
|
adds r0, r4, #0
|
|
bl sub_0806BFD8
|
|
b _0806BFD4
|
|
_0806BFBE:
|
|
ldrb r0, [r4, #0xc]
|
|
adds r1, r0, #0
|
|
cmp r1, #0
|
|
bne _0806BFD4
|
|
adds r0, #1
|
|
strb r0, [r4, #0xc]
|
|
strb r1, [r4, #0x1e]
|
|
adds r0, r4, #0
|
|
adds r1, r4, #0
|
|
bl sub_0806FAD8
|
|
_0806BFD4:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806BFD8
|
|
sub_0806BFD8: @ 0x0806BFD8
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
adds r0, #0x5b
|
|
ldrb r0, [r0]
|
|
movs r5, #3
|
|
adds r1, r5, #0
|
|
ands r1, r0
|
|
cmp r1, #1
|
|
beq _0806BFF0
|
|
cmp r1, #2
|
|
beq _0806C002
|
|
b _0806C00A
|
|
_0806BFF0:
|
|
bl Random
|
|
adds r1, r0, #0
|
|
ands r1, r5
|
|
adds r1, #0xc
|
|
adds r0, r4, #0
|
|
bl sub_08004260
|
|
b _0806C00A
|
|
_0806C002:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_08004260
|
|
_0806C00A:
|
|
pop {r4, r5, pc}
|
|
|
|
thumb_func_start sub_0806C00C
|
|
sub_0806C00C: @ 0x0806C00C
|
|
push {lr}
|
|
adds r2, r1, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0806C022
|
|
movs r0, #1
|
|
_0806C022:
|
|
str r0, [r2, #0x14]
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806C028
|
|
sub_0806C028: @ 0x0806C028
|
|
push {lr}
|
|
ldrb r2, [r0, #0x14]
|
|
lsrs r2, r2, #1
|
|
ldr r1, [r1, #4]
|
|
adds r1, r1, r2
|
|
bl sub_08004260
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_0806C038
|
|
sub_0806C038: @ 0x0806C038
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
ldr r0, _0806C074 @ =gUnk_02002A40
|
|
ldrb r0, [r0, #8]
|
|
subs r4, r0, #5
|
|
cmp r4, #0
|
|
beq _0806C048
|
|
movs r4, #0
|
|
_0806C048:
|
|
movs r0, #0x46
|
|
bl GetInventoryValue
|
|
cmp r0, #0
|
|
bne _0806C086
|
|
movs r0, #0x3a
|
|
bl GetInventoryValue
|
|
cmp r0, #0
|
|
bne _0806C078
|
|
movs r4, #6
|
|
movs r0, #0xaf
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
bne _0806C086
|
|
movs r4, #5
|
|
movs r0, #0xaf
|
|
bl sub_0807CCB4
|
|
b _0806C086
|
|
.align 2, 0
|
|
_0806C074: .4byte gUnk_02002A40
|
|
_0806C078:
|
|
movs r4, #7
|
|
movs r0, #0x3a
|
|
bl GetInventoryValue
|
|
cmp r0, #1
|
|
bls _0806C086
|
|
movs r4, #0
|
|
_0806C086:
|
|
ldr r0, _0806C098 @ =gUnk_081133A4
|
|
lsls r1, r4, #1
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
adds r1, r5, #0
|
|
bl TextboxNoOverlap
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0806C098: .4byte gUnk_081133A4
|
|
|
|
thumb_func_start sub_0806C09C
|
|
sub_0806C09C: @ 0x0806C09C
|
|
push {lr}
|
|
ldr r3, _0806C0AC @ =gUnk_081133B4
|
|
movs r1, #1
|
|
movs r2, #0
|
|
bl sub_08078850
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806C0AC: .4byte gUnk_081133B4
|
|
|
|
thumb_func_start sub_0806C0B0
|
|
sub_0806C0B0: @ 0x0806C0B0
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
adds r5, r0, #0
|
|
cmp r5, #0
|
|
bne _0806C104
|
|
adds r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0x19]
|
|
movs r0, #0xd
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #4
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x19]
|
|
adds r1, r4, #0
|
|
adds r1, #0x38
|
|
movs r0, #2
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
adds r0, r4, #0
|
|
bl sub_0807DD50
|
|
ldr r1, _0806C100 @ =gLCDControls
|
|
adds r2, r1, #0
|
|
adds r2, #0x66
|
|
movs r0, #0xfd
|
|
lsls r0, r0, #6
|
|
strh r0, [r2]
|
|
adds r1, #0x68
|
|
movs r0, #0x80
|
|
lsls r0, r0, #5
|
|
strh r0, [r1]
|
|
strh r0, [r4, #0x24]
|
|
str r5, [r4, #0x20]
|
|
b _0806C134
|
|
.align 2, 0
|
|
_0806C100: .4byte gLCDControls
|
|
_0806C104:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0807DD94
|
|
movs r1, #0x24
|
|
ldrsh r0, [r4, r1]
|
|
lsls r3, r0, #8
|
|
ldr r0, [r4, #0x20]
|
|
adds r3, r3, r0
|
|
asrs r3, r3, #0x10
|
|
cmp r3, #0x10
|
|
ble _0806C11E
|
|
movs r3, #0x10
|
|
_0806C11E:
|
|
cmp r3, #3
|
|
bgt _0806C124
|
|
movs r3, #4
|
|
_0806C124:
|
|
ldr r2, _0806C138 @ =gLCDControls
|
|
lsls r1, r3, #8
|
|
movs r0, #0x10
|
|
subs r0, r0, r3
|
|
orrs r1, r0
|
|
adds r2, #0x68
|
|
strh r1, [r2]
|
|
strh r1, [r4, #0x24]
|
|
_0806C134:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0806C138: .4byte gLCDControls
|
|
|
|
thumb_func_start sub_0806C13C
|
|
sub_0806C13C: @ 0x0806C13C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #1
|
|
beq _0806C182
|
|
cmp r0, #1
|
|
bgt _0806C150
|
|
cmp r0, #0
|
|
beq _0806C156
|
|
b _0806C1D2
|
|
_0806C150:
|
|
cmp r0, #2
|
|
beq _0806C1BE
|
|
b _0806C1D2
|
|
_0806C156:
|
|
movs r2, #1
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0x18]
|
|
subs r0, #5
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r4, #0x18]
|
|
adds r0, r4, #0
|
|
bl sub_0801E99C
|
|
adds r1, r4, #0
|
|
adds r1, #0x68
|
|
strb r0, [r1]
|
|
ldrb r1, [r1]
|
|
adds r0, r4, #0
|
|
bl sub_08078784
|
|
adds r0, r4, #0
|
|
bl sub_0807DD50
|
|
b _0806C1D2
|
|
_0806C182:
|
|
adds r2, r4, #0
|
|
adds r2, #0x39
|
|
movs r1, #0
|
|
ldrsb r1, [r2, r1]
|
|
cmp r1, #2
|
|
bne _0806C1B4
|
|
movs r0, #0
|
|
strb r1, [r4, #0xc]
|
|
strb r0, [r2]
|
|
ldr r1, _0806C1B0 @ =gLinkEntity
|
|
adds r0, r4, #0
|
|
bl sub_080045C4
|
|
bl sub_0806F5A4
|
|
adds r1, r0, #0
|
|
adds r0, r4, #0
|
|
bl sub_080042AC
|
|
adds r0, r4, #0
|
|
bl sub_0806F118
|
|
b _0806C1D2
|
|
.align 2, 0
|
|
_0806C1B0: .4byte gLinkEntity
|
|
_0806C1B4:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0807DD94
|
|
b _0806C1D2
|
|
_0806C1BE:
|
|
adds r0, r4, #0
|
|
bl sub_0806F148
|
|
cmp r0, #0
|
|
beq _0806C1D2
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #0x88
|
|
bl sub_0807CCB4
|
|
_0806C1D2:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806C1D4
|
|
sub_0806C1D4: @ 0x0806C1D4
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
ldrb r0, [r2, #0xc]
|
|
cmp r0, #0
|
|
bne _0806C1FA
|
|
adds r0, #1
|
|
strb r0, [r2, #0xc]
|
|
ldrb r1, [r2, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2, #0x18]
|
|
adds r0, r2, #0
|
|
movs r1, #2
|
|
bl sub_080042AC
|
|
b _0806C200
|
|
_0806C1FA:
|
|
adds r0, r2, #0
|
|
bl sub_080042B8
|
|
_0806C200:
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806C204
|
|
sub_0806C204: @ 0x0806C204
|
|
push {lr}
|
|
adds r1, r0, #0
|
|
ldrb r0, [r1, #0xc]
|
|
cmp r0, #0
|
|
bne _0806C21A
|
|
adds r0, #1
|
|
strb r0, [r1, #0xc]
|
|
adds r0, r1, #0
|
|
bl sub_0807DD50
|
|
b _0806C222
|
|
_0806C21A:
|
|
adds r0, r1, #0
|
|
movs r1, #0
|
|
bl sub_0807DD94
|
|
_0806C222:
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_0806C224
|
|
sub_0806C224: @ 0x0806C224
|
|
push {lr}
|
|
ldr r0, _0806C234 @ =gUnk_0813AD60
|
|
bl sub_08080840
|
|
ldr r1, _0806C238 @ =gUnk_030010A0
|
|
movs r0, #6
|
|
strb r0, [r1, #9]
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806C234: .4byte gUnk_0813AD60
|
|
_0806C238: .4byte gUnk_030010A0
|
|
|
|
thumb_func_start sub_0806C23C
|
|
sub_0806C23C: @ 0x0806C23C
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
movs r1, #0xf
|
|
movs r2, #0x43
|
|
movs r3, #0
|
|
bl CreateObjectWithParent
|
|
movs r0, #0x2e
|
|
ldrsh r1, [r4, r0]
|
|
ldr r2, _0806C27C @ =gRoomControls
|
|
ldrh r0, [r2, #6]
|
|
subs r1, r1, r0
|
|
asrs r1, r1, #4
|
|
movs r3, #0x3f
|
|
ands r1, r3
|
|
movs r5, #0x32
|
|
ldrsh r0, [r4, r5]
|
|
ldrh r2, [r2, #8]
|
|
subs r0, r0, r2
|
|
asrs r0, r0, #4
|
|
ands r0, r3
|
|
lsls r0, r0, #6
|
|
orrs r1, r0
|
|
adds r4, #0x38
|
|
ldrb r2, [r4]
|
|
movs r0, #0x73
|
|
bl sub_0807B314
|
|
movs r0, #0x73
|
|
bl PlaySFX
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0806C27C: .4byte gRoomControls
|
|
|
|
thumb_func_start sub_0806C280
|
|
sub_0806C280: @ 0x0806C280
|
|
push {lr}
|
|
movs r0, #0x50
|
|
bl sub_0807CD04
|
|
ldr r0, _0806C298 @ =gUnk_0813AD74
|
|
bl sub_08080840
|
|
ldr r1, _0806C29C @ =gUnk_030010A0
|
|
movs r0, #6
|
|
strb r0, [r1, #9]
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806C298: .4byte gUnk_0813AD74
|
|
_0806C29C: .4byte gUnk_030010A0
|
|
|
|
thumb_func_start sub_0806C2A0
|
|
sub_0806C2A0: @ 0x0806C2A0
|
|
push {lr}
|
|
ldr r0, [r1, #4]
|
|
cmp r0, #0
|
|
beq _0806C2AE
|
|
cmp r0, #1
|
|
beq _0806C2B8
|
|
b _0806C2C0
|
|
_0806C2AE:
|
|
movs r0, #0xd
|
|
movs r1, #4
|
|
bl DoFade
|
|
b _0806C2C0
|
|
_0806C2B8:
|
|
movs r0, #0xc
|
|
movs r1, #4
|
|
bl DoFade
|
|
_0806C2C0:
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806C2C4
|
|
sub_0806C2C4: @ 0x0806C2C4
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #1
|
|
beq _0806C2FA
|
|
cmp r0, #1
|
|
bgt _0806C2D8
|
|
cmp r0, #0
|
|
beq _0806C2DE
|
|
b _0806C350
|
|
_0806C2D8:
|
|
cmp r0, #2
|
|
beq _0806C342
|
|
b _0806C350
|
|
_0806C2DE:
|
|
movs r2, #1
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0x18]
|
|
subs r0, #5
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r4, #0x18]
|
|
ldrb r0, [r4, #0xe]
|
|
strb r0, [r4, #0x14]
|
|
adds r0, r4, #0
|
|
bl sub_0807DD50
|
|
b _0806C350
|
|
_0806C2FA:
|
|
adds r2, r4, #0
|
|
adds r2, #0x39
|
|
movs r1, #0
|
|
ldrsb r1, [r2, r1]
|
|
cmp r1, #2
|
|
bne _0806C338
|
|
movs r0, #0
|
|
strb r1, [r4, #0xc]
|
|
strb r0, [r2]
|
|
ldr r1, _0806C334 @ =gLinkEntity
|
|
adds r0, r4, #0
|
|
bl sub_080045C4
|
|
bl sub_0806F5A4
|
|
adds r1, r4, #0
|
|
adds r1, #0x58
|
|
ldrb r1, [r1]
|
|
movs r2, #4
|
|
rsbs r2, r2, #0
|
|
ands r1, r2
|
|
adds r1, r1, r0
|
|
adds r0, r4, #0
|
|
bl sub_08004260
|
|
adds r0, r4, #0
|
|
bl sub_0806F118
|
|
b _0806C350
|
|
.align 2, 0
|
|
_0806C334: .4byte gLinkEntity
|
|
_0806C338:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0807DD94
|
|
b _0806C350
|
|
_0806C342:
|
|
adds r0, r4, #0
|
|
bl sub_0806F148
|
|
cmp r0, #0
|
|
beq _0806C350
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
_0806C350:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806C354
|
|
sub_0806C354: @ 0x0806C354
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0801E99C
|
|
adds r1, r4, #0
|
|
adds r1, #0x68
|
|
strb r0, [r1]
|
|
ldrb r1, [r1]
|
|
adds r0, r4, #0
|
|
bl sub_08078784
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806C36C
|
|
sub_0806C36C: @ 0x0806C36C
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
ldrb r0, [r2, #0xc]
|
|
cmp r0, #0
|
|
bne _0806C392
|
|
adds r0, #1
|
|
strb r0, [r2, #0xc]
|
|
ldrb r1, [r2, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2, #0x18]
|
|
adds r0, r2, #0
|
|
movs r1, #6
|
|
bl sub_080042AC
|
|
b _0806C398
|
|
_0806C392:
|
|
adds r0, r2, #0
|
|
bl sub_080042B8
|
|
_0806C398:
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806C39C
|
|
sub_0806C39C: @ 0x0806C39C
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
ldrb r5, [r4, #0xc]
|
|
cmp r5, #1
|
|
beq _0806C3E2
|
|
cmp r5, #1
|
|
bgt _0806C3B0
|
|
cmp r5, #0
|
|
beq _0806C3B6
|
|
b _0806C450
|
|
_0806C3B0:
|
|
cmp r5, #2
|
|
beq _0806C436
|
|
b _0806C450
|
|
_0806C3B6:
|
|
adds r0, r4, #0
|
|
bl sub_0806C454
|
|
cmp r0, #0
|
|
beq _0806C450
|
|
movs r2, #1
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0x18]
|
|
subs r0, #5
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r4, #0x18]
|
|
ldrb r0, [r4, #0xe]
|
|
strb r0, [r4, #0x14]
|
|
adds r0, r4, #0
|
|
adds r0, #0x69
|
|
strb r5, [r0]
|
|
adds r0, r4, #0
|
|
bl sub_0807DD50
|
|
b _0806C450
|
|
_0806C3E2:
|
|
adds r2, r4, #0
|
|
adds r2, #0x39
|
|
movs r1, #0
|
|
ldrsb r1, [r2, r1]
|
|
cmp r1, #2
|
|
bne _0806C420
|
|
movs r0, #0
|
|
strb r1, [r4, #0xc]
|
|
strb r0, [r2]
|
|
adds r0, r4, #0
|
|
adds r0, #0x58
|
|
ldrb r0, [r0]
|
|
adds r1, r4, #0
|
|
adds r1, #0x69
|
|
strb r0, [r1]
|
|
ldr r1, _0806C41C @ =gLinkEntity
|
|
adds r0, r4, #0
|
|
bl sub_080045C4
|
|
bl sub_0806F5A4
|
|
adds r1, r0, #0
|
|
adds r0, r4, #0
|
|
bl sub_08004260
|
|
adds r0, r4, #0
|
|
bl sub_0806F118
|
|
b _0806C450
|
|
.align 2, 0
|
|
_0806C41C: .4byte gLinkEntity
|
|
_0806C420:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0807DDAC
|
|
adds r0, r4, #0
|
|
bl sub_0807DDE4
|
|
adds r0, r4, #0
|
|
bl sub_08004274
|
|
b _0806C450
|
|
_0806C436:
|
|
adds r0, r4, #0
|
|
bl sub_0806F148
|
|
cmp r0, #0
|
|
beq _0806C450
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
adds r0, #0x69
|
|
ldrb r1, [r0]
|
|
adds r0, r4, #0
|
|
bl sub_08004260
|
|
_0806C450:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806C454
|
|
sub_0806C454: @ 0x0806C454
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldr r1, _0806C470 @ =gUnk_08113754
|
|
bl sub_0806FDEC
|
|
cmp r0, #0
|
|
beq _0806C474
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
movs r0, #1
|
|
b _0806C476
|
|
.align 2, 0
|
|
_0806C470: .4byte gUnk_08113754
|
|
_0806C474:
|
|
movs r0, #0
|
|
_0806C476:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806C478
|
|
sub_0806C478: @ 0x0806C478
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
adds r0, #0x5a
|
|
ldrb r0, [r0]
|
|
movs r2, #0x7f
|
|
ands r2, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0806FF60
|
|
ldrb r2, [r4, #0x1e]
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
bl sub_0806FF60
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
movs r2, #0
|
|
bl sub_0806FF88
|
|
adds r0, r4, #0
|
|
bl sub_0807000C
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806C4A8
|
|
sub_0806C4A8: @ 0x0806C4A8
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
adds r5, r1, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0806C4D8
|
|
adds r0, r4, #0
|
|
bl sub_0806EDC4
|
|
adds r1, r0, #0
|
|
cmp r1, #0
|
|
bge _0806C4CC
|
|
movs r1, #3
|
|
_0806C4CC:
|
|
lsls r0, r1, #1
|
|
strb r0, [r4, #0x14]
|
|
adds r0, r4, #0
|
|
bl sub_080042AC
|
|
movs r0, #1
|
|
_0806C4D8:
|
|
str r0, [r5, #0x14]
|
|
pop {r4, r5, pc}
|
|
|
|
thumb_func_start sub_0806C4DC
|
|
sub_0806C4DC: @ 0x0806C4DC
|
|
push {lr}
|
|
ldr r1, _0806C4F0 @ =gUnk_02002A40
|
|
ldrb r1, [r1, #8]
|
|
lsls r1, r1, #3
|
|
ldr r2, _0806C4F4 @ =gUnk_08113760
|
|
adds r1, r1, r2
|
|
bl sub_0806F1AC
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806C4F0: .4byte gUnk_02002A40
|
|
_0806C4F4: .4byte gUnk_08113760
|
|
|
|
thumb_func_start sub_0806C4F8
|
|
sub_0806C4F8: @ 0x0806C4F8
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0801E99C
|
|
adds r1, r4, #0
|
|
adds r1, #0x68
|
|
strb r0, [r1]
|
|
ldrb r1, [r1]
|
|
adds r0, r4, #0
|
|
bl sub_08078784
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806C510
|
|
sub_0806C510: @ 0x0806C510
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
bne _0806C548
|
|
adds r0, r4, #0
|
|
bl sub_0806C454
|
|
cmp r0, #0
|
|
beq _0806C54E
|
|
ldrb r0, [r4, #0xc]
|
|
adds r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
ldrh r0, [r4, #0x32]
|
|
subs r0, #4
|
|
strh r0, [r4, #0x32]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_08004260
|
|
b _0806C54E
|
|
_0806C548:
|
|
adds r0, r4, #0
|
|
bl sub_08004274
|
|
_0806C54E:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806C550
|
|
sub_0806C550: @ 0x0806C550
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
bne _0806C56E
|
|
adds r0, #1
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
adds r0, r4, #0
|
|
bl sub_0807DD50
|
|
b _0806C576
|
|
_0806C56E:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0807DD94
|
|
_0806C576:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806C578
|
|
sub_0806C578: @ 0x0806C578
|
|
push {lr}
|
|
ldr r0, _0806C584 @ =gUnk_0813AD10
|
|
bl sub_08080840
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806C584: .4byte gUnk_0813AD10
|
|
|
|
thumb_func_start sub_0806C588
|
|
sub_0806C588: @ 0x0806C588
|
|
push {lr}
|
|
ldr r0, _0806C594 @ =gUnk_0813AD24
|
|
bl sub_08080840
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806C594: .4byte gUnk_0813AD24
|
|
|
|
thumb_func_start sub_0806C598
|
|
sub_0806C598: @ 0x0806C598
|
|
push {lr}
|
|
ldr r0, _0806C5A4 @ =gUnk_0813AD38
|
|
bl sub_08080840
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806C5A4: .4byte gUnk_0813AD38
|
|
|
|
thumb_func_start sub_0806C5A8
|
|
sub_0806C5A8: @ 0x0806C5A8
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
ldrb r4, [r5, #0xc]
|
|
cmp r4, #1
|
|
beq _0806C604
|
|
cmp r4, #1
|
|
bgt _0806C5BC
|
|
cmp r4, #0
|
|
beq _0806C5C2
|
|
b _0806C670
|
|
_0806C5BC:
|
|
cmp r4, #2
|
|
beq _0806C656
|
|
b _0806C670
|
|
_0806C5C2:
|
|
ldrb r1, [r5, #0xa]
|
|
lsls r1, r1, #4
|
|
ldr r0, _0806C600 @ =gUnk_08113910
|
|
adds r1, r1, r0
|
|
adds r0, r5, #0
|
|
bl sub_0806FDEC
|
|
cmp r0, #0
|
|
beq _0806C670
|
|
movs r2, #1
|
|
movs r0, #1
|
|
strb r0, [r5, #0xc]
|
|
ldrb r1, [r5, #0x18]
|
|
subs r0, #5
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r5, #0x18]
|
|
ldrb r0, [r5, #0xe]
|
|
strb r0, [r5, #0x14]
|
|
adds r0, r5, #0
|
|
adds r0, #0x69
|
|
strb r4, [r0]
|
|
adds r0, r5, #0
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
adds r0, r5, #0
|
|
bl sub_0807DD50
|
|
b _0806C670
|
|
.align 2, 0
|
|
_0806C600: .4byte gUnk_08113910
|
|
_0806C604:
|
|
adds r2, r5, #0
|
|
adds r2, #0x39
|
|
movs r1, #0
|
|
ldrsb r1, [r2, r1]
|
|
cmp r1, #2
|
|
bne _0806C64C
|
|
movs r0, #0
|
|
strb r1, [r5, #0xc]
|
|
strb r0, [r2]
|
|
adds r4, r5, #0
|
|
adds r4, #0x58
|
|
ldrb r0, [r4]
|
|
adds r1, r5, #0
|
|
adds r1, #0x69
|
|
strb r0, [r1]
|
|
ldr r1, _0806C648 @ =gLinkEntity
|
|
adds r0, r5, #0
|
|
bl sub_080045C4
|
|
bl sub_0806F5A4
|
|
ldrb r1, [r4]
|
|
movs r2, #4
|
|
rsbs r2, r2, #0
|
|
ands r1, r2
|
|
adds r1, r1, r0
|
|
adds r0, r5, #0
|
|
bl sub_08004260
|
|
adds r0, r5, #0
|
|
bl sub_0806F118
|
|
b _0806C670
|
|
.align 2, 0
|
|
_0806C648: .4byte gLinkEntity
|
|
_0806C64C:
|
|
adds r0, r5, #0
|
|
movs r1, #0
|
|
bl sub_0807DD94
|
|
b _0806C670
|
|
_0806C656:
|
|
adds r0, r5, #0
|
|
bl sub_0806F148
|
|
cmp r0, #0
|
|
beq _0806C670
|
|
movs r0, #1
|
|
strb r0, [r5, #0xc]
|
|
adds r0, r5, #0
|
|
adds r0, #0x69
|
|
ldrb r1, [r0]
|
|
adds r0, r5, #0
|
|
bl sub_08004260
|
|
_0806C670:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806C674
|
|
sub_0806C674: @ 0x0806C674
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0801E99C
|
|
adds r1, r4, #0
|
|
adds r1, #0x68
|
|
strb r0, [r1]
|
|
ldrb r1, [r1]
|
|
adds r0, r4, #0
|
|
bl sub_08078784
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806C68C
|
|
sub_0806C68C: @ 0x0806C68C
|
|
push {r4, r5, r6, lr}
|
|
adds r4, r0, #0
|
|
adds r0, #0x5a
|
|
ldrb r2, [r0]
|
|
movs r0, #0x81
|
|
rsbs r0, r0, #0
|
|
ands r2, r0
|
|
ldrb r6, [r4, #0x1e]
|
|
adds r0, r4, #0
|
|
adds r0, #0x5b
|
|
ldrb r0, [r0]
|
|
movs r5, #0x3f
|
|
ands r5, r0
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #0
|
|
bne _0806C6D2
|
|
adds r2, #3
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0806FF60
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
adds r2, r6, #0
|
|
bl sub_0806FF60
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
movs r2, #0
|
|
bl sub_0806FF88
|
|
adds r0, r4, #0
|
|
bl sub_0807000C
|
|
b _0806C70A
|
|
_0806C6D2:
|
|
adds r2, #6
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0806FF60
|
|
adds r2, r5, #3
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
bl sub_0806FF60
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
adds r2, r6, #0
|
|
bl sub_0806FF60
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
movs r2, #1
|
|
bl sub_0806FF88
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
movs r2, #0
|
|
bl sub_0806FFD8
|
|
adds r0, r4, #0
|
|
bl sub_0807000C
|
|
_0806C70A:
|
|
pop {r4, r5, r6, pc}
|
|
|
|
thumb_func_start sub_0806C70C
|
|
sub_0806C70C: @ 0x0806C70C
|
|
push {lr}
|
|
adds r3, r0, #0
|
|
ldr r0, _0806C730 @ =gUnk_02002A40
|
|
ldrb r0, [r0, #8]
|
|
subs r0, #2
|
|
cmp r0, #0
|
|
bge _0806C71C
|
|
movs r0, #0
|
|
_0806C71C:
|
|
ldrb r1, [r3, #0xa]
|
|
lsls r1, r1, #6
|
|
lsls r0, r0, #3
|
|
ldr r2, _0806C734 @ =gUnk_08113930
|
|
adds r0, r0, r2
|
|
adds r1, r1, r0
|
|
adds r0, r3, #0
|
|
bl sub_0806F1AC
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806C730: .4byte gUnk_02002A40
|
|
_0806C734: .4byte gUnk_08113930
|
|
|
|
thumb_func_start sub_0806C738
|
|
sub_0806C738: @ 0x0806C738
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
bne _0806C778
|
|
ldrb r1, [r4, #0xa]
|
|
lsls r1, r1, #4
|
|
ldr r0, _0806C774 @ =gUnk_08113910
|
|
adds r1, r1, r0
|
|
adds r0, r4, #0
|
|
bl sub_0806FDEC
|
|
cmp r0, #0
|
|
beq _0806C77E
|
|
ldrb r0, [r4, #0xc]
|
|
adds r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_08004260
|
|
b _0806C77E
|
|
.align 2, 0
|
|
_0806C774: .4byte gUnk_08113910
|
|
_0806C778:
|
|
adds r0, r4, #0
|
|
bl sub_08004274
|
|
_0806C77E:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806C780
|
|
sub_0806C780: @ 0x0806C780
|
|
push {lr}
|
|
ldr r2, _0806C794 @ =gUnk_08113A7C
|
|
ldrb r1, [r0, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806C794: .4byte gUnk_08113A7C
|
|
|
|
thumb_func_start sub_0806C798
|
|
sub_0806C798: @ 0x0806C798
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r1, [r4, #0xa]
|
|
lsls r1, r1, #4
|
|
ldr r0, _0806C7D0 @ =gUnk_08113A1C
|
|
adds r1, r1, r0
|
|
adds r0, r4, #0
|
|
bl sub_0806FDEC
|
|
cmp r0, #0
|
|
beq _0806C7CE
|
|
movs r2, #1
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0x18]
|
|
subs r0, #5
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r4, #0x18]
|
|
ldrb r0, [r4, #0xe]
|
|
strb r0, [r4, #0x14]
|
|
adds r0, r4, #0
|
|
bl sub_0807DD50
|
|
adds r0, r4, #0
|
|
bl sub_0806C7D4
|
|
_0806C7CE:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0806C7D0: .4byte gUnk_08113A1C
|
|
|
|
thumb_func_start sub_0806C7D4
|
|
sub_0806C7D4: @ 0x0806C7D4
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
adds r2, r4, #0
|
|
adds r2, #0x39
|
|
movs r0, #0
|
|
ldrsb r0, [r2, r0]
|
|
cmp r0, #2
|
|
bne _0806C7F4
|
|
movs r1, #0
|
|
movs r0, #3
|
|
strb r0, [r4, #0xc]
|
|
strb r1, [r2]
|
|
adds r0, r4, #0
|
|
bl sub_0806F118
|
|
b _0806C82C
|
|
_0806C7F4:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0807DD94
|
|
ldrb r0, [r4, #0xb]
|
|
cmp r0, #3
|
|
bne _0806C82C
|
|
movs r0, #0x58
|
|
bl GetProgressFlag
|
|
cmp r0, #0
|
|
bne _0806C82C
|
|
movs r0, #0x63
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
beq _0806C82C
|
|
movs r0, #0
|
|
bl sub_0807CC3C
|
|
cmp r0, #0
|
|
beq _0806C82C
|
|
movs r0, #7
|
|
strb r0, [r4, #0xb]
|
|
ldr r1, _0806C830 @ =gUnk_08014A80
|
|
adds r0, r4, #0
|
|
bl sub_0807DD80
|
|
_0806C82C:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0806C830: .4byte gUnk_08014A80
|
|
|
|
thumb_func_start sub_0806C834
|
|
sub_0806C834: @ 0x0806C834
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
ldr r0, _0806C858 @ =gTextBox
|
|
ldrb r1, [r0]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0806C856
|
|
ldrb r0, [r2, #0xc]
|
|
subs r0, #1
|
|
strb r0, [r2, #0xc]
|
|
ldrb r1, [r2, #0x14]
|
|
lsrs r1, r1, #1
|
|
adds r1, #4
|
|
adds r0, r2, #0
|
|
bl sub_08004260
|
|
_0806C856:
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806C858: .4byte gTextBox
|
|
|
|
thumb_func_start sub_0806C85C
|
|
sub_0806C85C: @ 0x0806C85C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0806F148
|
|
cmp r0, #0
|
|
beq _0806C86C
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
_0806C86C:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806C870
|
|
sub_0806C870: @ 0x0806C870
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0801E99C
|
|
adds r1, r4, #0
|
|
adds r1, #0x68
|
|
strb r0, [r1]
|
|
ldrb r1, [r1]
|
|
adds r0, r4, #0
|
|
bl sub_08078784
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806C888
|
|
sub_0806C888: @ 0x0806C888
|
|
push {r4, r5, r6, r7, lr}
|
|
adds r4, r0, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r7, #0x3f
|
|
ands r7, r1
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #4
|
|
bne _0806C8D4
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
movs r2, #9
|
|
bl sub_0806FF60
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
adds r2, r7, #0
|
|
bl sub_0806FF60
|
|
ldrb r2, [r4, #0x1e]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_0806FF60
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
movs r2, #0
|
|
bl sub_0806FFD8
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
movs r2, #1
|
|
bl sub_0806FF88
|
|
adds r0, r4, #0
|
|
bl sub_0807000C
|
|
b _0806C90A
|
|
_0806C8D4:
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806C8E2
|
|
movs r6, #1
|
|
movs r5, #0
|
|
b _0806C8E6
|
|
_0806C8E2:
|
|
movs r6, #0
|
|
movs r5, #1
|
|
_0806C8E6:
|
|
adds r0, r4, #0
|
|
adds r1, r6, #0
|
|
adds r2, r7, #0
|
|
bl sub_0806FF60
|
|
ldrb r2, [r4, #0x1e]
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0806FF60
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
adds r2, r6, #0
|
|
bl sub_0806FF88
|
|
adds r0, r4, #0
|
|
bl sub_0807000C
|
|
_0806C90A:
|
|
pop {r4, r5, r6, r7, pc}
|
|
|
|
thumb_func_start sub_0806C90C
|
|
sub_0806C90C: @ 0x0806C90C
|
|
push {lr}
|
|
movs r2, #0
|
|
str r2, [r1, #0x14]
|
|
ldr r3, _0806C924 @ =gUnk_08113A8C
|
|
ldrb r2, [r0, #0xb]
|
|
lsls r2, r2, #2
|
|
adds r2, r2, r3
|
|
ldr r2, [r2]
|
|
bl _call_via_r2
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806C924: .4byte gUnk_08113A8C
|
|
|
|
thumb_func_start sub_0806C928
|
|
sub_0806C928: @ 0x0806C928
|
|
push {lr}
|
|
ldr r1, _0806C93C @ =gUnk_02002A40
|
|
ldrb r1, [r1, #8]
|
|
lsls r1, r1, #3
|
|
ldr r2, _0806C940 @ =gUnk_08113ABC
|
|
adds r1, r1, r2
|
|
bl sub_0806F1AC
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806C93C: .4byte gUnk_02002A40
|
|
_0806C940: .4byte gUnk_08113ABC
|
|
|
|
thumb_func_start sub_0806C944
|
|
sub_0806C944: @ 0x0806C944
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r0, #0x58
|
|
bl GetProgressFlag
|
|
cmp r0, #0
|
|
bne _0806C956
|
|
movs r1, #0
|
|
b _0806C964
|
|
_0806C956:
|
|
movs r0, #0x63
|
|
bl sub_0807CBD0
|
|
movs r1, #2
|
|
cmp r0, #0
|
|
beq _0806C964
|
|
movs r1, #1
|
|
_0806C964:
|
|
ldr r0, _0806C974 @ =gUnk_08113B0C
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
adds r1, r4, #0
|
|
bl TextboxNoOverlap
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0806C974: .4byte gUnk_08113B0C
|
|
|
|
thumb_func_start sub_0806C978
|
|
sub_0806C978: @ 0x0806C978
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r0, #0x58
|
|
bl GetProgressFlag
|
|
rsbs r1, r0, #0
|
|
orrs r1, r0
|
|
lsrs r1, r1, #0x1f
|
|
ldr r0, _0806C998 @ =gUnk_08113B12
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
adds r1, r4, #0
|
|
bl TextboxNoOverlap
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0806C998: .4byte gUnk_08113B12
|
|
|
|
thumb_func_start sub_0806C99C
|
|
sub_0806C99C: @ 0x0806C99C
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
movs r0, #0x58
|
|
bl GetProgressFlag
|
|
rsbs r1, r0, #0
|
|
orrs r1, r0
|
|
asrs r4, r1, #0x1f
|
|
movs r0, #2
|
|
ands r4, r0
|
|
movs r0, #0x63
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
beq _0806C9BC
|
|
adds r4, #1
|
|
_0806C9BC:
|
|
ldr r0, _0806C9CC @ =gUnk_08113B16
|
|
lsls r1, r4, #1
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
adds r1, r5, #0
|
|
bl TextboxNoOverlap
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0806C9CC: .4byte gUnk_08113B16
|
|
|
|
thumb_func_start sub_0806C9D0
|
|
sub_0806C9D0: @ 0x0806C9D0
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
movs r4, #0
|
|
movs r0, #0x64
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
bne _0806C9E2
|
|
movs r4, #1
|
|
_0806C9E2:
|
|
ldr r0, _0806C9F4 @ =gUnk_08113B1E
|
|
lsls r1, r4, #1
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
adds r1, r5, #0
|
|
bl TextboxNoOverlap
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0806C9F4: .4byte gUnk_08113B1E
|
|
|
|
thumb_func_start sub_0806C9F8
|
|
sub_0806C9F8: @ 0x0806C9F8
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r0, #0x58
|
|
bl GetProgressFlag
|
|
rsbs r1, r0, #0
|
|
orrs r1, r0
|
|
lsrs r1, r1, #0x1f
|
|
ldr r0, _0806CA18 @ =gUnk_08113B22
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
adds r1, r4, #0
|
|
bl TextboxNoOverlap
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0806CA18: .4byte gUnk_08113B22
|
|
|
|
thumb_func_start sub_0806CA1C
|
|
sub_0806CA1C: @ 0x0806CA1C
|
|
push {lr}
|
|
adds r1, r0, #0
|
|
ldr r0, _0806CA28 @ =0x0000251B
|
|
bl TextboxNoOverlap
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806CA28: .4byte 0x0000251B
|
|
|
|
thumb_func_start sub_0806CA2C
|
|
sub_0806CA2C: @ 0x0806CA2C
|
|
push {lr}
|
|
adds r1, r0, #0
|
|
ldr r0, _0806CA38 @ =0x00002527
|
|
bl TextboxNoOverlap
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806CA38: .4byte 0x00002527
|
|
|
|
thumb_func_start sub_0806CA3C
|
|
sub_0806CA3C: @ 0x0806CA3C
|
|
push {lr}
|
|
ldr r1, _0806CA48 @ =gUnk_08113B28
|
|
bl sub_0806F1AC
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806CA48: .4byte gUnk_08113B28
|
|
|
|
thumb_func_start sub_0806CA4C
|
|
sub_0806CA4C: @ 0x0806CA4C
|
|
push {lr}
|
|
ldr r1, _0806CA58 @ =gUnk_08113B30
|
|
bl sub_0806F1AC
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806CA58: .4byte gUnk_08113B30
|
|
|
|
thumb_func_start sub_0806CA5C
|
|
sub_0806CA5C: @ 0x0806CA5C
|
|
push {r4, lr}
|
|
adds r4, r1, #0
|
|
ldr r3, _0806CA8C @ =gUnk_08113B38
|
|
ldrb r1, [r4, #0x18]
|
|
adds r2, r1, #1
|
|
strb r2, [r4, #0x18]
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
adds r1, r1, r3
|
|
ldrb r1, [r1]
|
|
strh r1, [r4, #0x10]
|
|
ldrb r0, [r0, #0xb]
|
|
cmp r0, #0xa
|
|
bne _0806CA7E
|
|
movs r0, #0xe8
|
|
bl sub_08004488
|
|
_0806CA7E:
|
|
ldrh r0, [r4, #0x10]
|
|
cmp r0, #0
|
|
beq _0806CA8A
|
|
ldr r1, _0806CA90 @ =gUnk_02033280
|
|
movs r0, #0
|
|
strb r0, [r1, #6]
|
|
_0806CA8A:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0806CA8C: .4byte gUnk_08113B38
|
|
_0806CA90: .4byte gUnk_02033280
|
|
|
|
thumb_func_start sub_0806CA94
|
|
sub_0806CA94: @ 0x0806CA94
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
bne _0806CAD4
|
|
ldrb r1, [r4, #0xa]
|
|
lsls r1, r1, #4
|
|
ldr r0, _0806CAD0 @ =gUnk_08113A1C
|
|
adds r1, r1, r0
|
|
adds r0, r4, #0
|
|
bl sub_0806FDEC
|
|
cmp r0, #0
|
|
beq _0806CADA
|
|
ldrb r0, [r4, #0xc]
|
|
adds r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
adds r0, r4, #0
|
|
movs r1, #6
|
|
bl sub_08004260
|
|
b _0806CADA
|
|
.align 2, 0
|
|
_0806CAD0: .4byte gUnk_08113A1C
|
|
_0806CAD4:
|
|
adds r0, r4, #0
|
|
bl sub_08004274
|
|
_0806CADA:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806CADC
|
|
sub_0806CADC: @ 0x0806CADC
|
|
push {lr}
|
|
ldr r2, _0806CAF0 @ =gUnk_08113D8C
|
|
ldrb r1, [r0, #0xa]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806CAF0: .4byte gUnk_08113D8C
|
|
|
|
thumb_func_start sub_0806CAF4
|
|
sub_0806CAF4: @ 0x0806CAF4
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
ldrb r0, [r5, #0xc]
|
|
cmp r0, #0
|
|
bne _0806CB66
|
|
adds r0, #1
|
|
strb r0, [r5, #0xc]
|
|
adds r0, r5, #0
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
movs r0, #0x4a
|
|
movs r1, #1
|
|
movs r2, #0
|
|
bl CreateNPC
|
|
adds r4, r0, #0
|
|
cmp r4, #0
|
|
beq _0806CB2C
|
|
str r5, [r4, #0x50]
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
bl CopyPosition
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
bl sub_0806FAD8
|
|
_0806CB2C:
|
|
movs r0, #0x4a
|
|
movs r1, #2
|
|
movs r2, #0
|
|
bl CreateNPC
|
|
adds r4, r0, #0
|
|
cmp r4, #0
|
|
beq _0806CB4E
|
|
str r5, [r4, #0x50]
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
bl CopyPosition
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
bl sub_0806FAB0
|
|
_0806CB4E:
|
|
adds r0, r5, #0
|
|
bl sub_0807DD64
|
|
adds r0, r5, #0
|
|
bl sub_08078778
|
|
ldr r3, _0806CB7C @ =gUnk_08113D84
|
|
ldrb r2, [r3, #4]
|
|
adds r0, r5, #0
|
|
movs r1, #1
|
|
bl sub_08078850
|
|
_0806CB66:
|
|
adds r0, r5, #0
|
|
movs r1, #0
|
|
bl sub_0807DDAC
|
|
adds r0, r5, #0
|
|
bl sub_0807DDE4
|
|
adds r0, r5, #0
|
|
bl sub_08004274
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0806CB7C: .4byte gUnk_08113D84
|
|
|
|
thumb_func_start sub_0806CB80
|
|
sub_0806CB80: @ 0x0806CB80
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
adds r1, r0, #0
|
|
cmp r1, #0
|
|
bne _0806CB9E
|
|
adds r0, #1
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #2
|
|
strb r0, [r4, #0x14]
|
|
strb r1, [r4, #0x1e]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
_0806CB9E:
|
|
ldr r0, [r4, #0x50]
|
|
cmp r0, #0
|
|
beq _0806CBB0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #3
|
|
ands r0, r1
|
|
adds r0, #0x21
|
|
strb r0, [r4, #0x1e]
|
|
_0806CBB0:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806CBB4
|
|
sub_0806CBB4: @ 0x0806CBB4
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
bne _0806CBD6
|
|
adds r0, #1
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #2
|
|
strb r0, [r4, #0x14]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
adds r0, r4, #0
|
|
movs r1, #0x11
|
|
bl sub_08004260
|
|
_0806CBD6:
|
|
adds r0, r4, #0
|
|
bl sub_08004274
|
|
ldr r1, [r4, #0x50]
|
|
cmp r1, #0
|
|
beq _0806CC06
|
|
ldrb r0, [r4, #0x18]
|
|
movs r3, #4
|
|
rsbs r3, r3, #0
|
|
adds r2, r3, #0
|
|
ands r2, r0
|
|
strb r2, [r4, #0x18]
|
|
adds r0, r1, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #4
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806CC06
|
|
adds r0, r2, #0
|
|
ands r0, r3
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
_0806CC06:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806CC08
|
|
sub_0806CC08: @ 0x0806CC08
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #1
|
|
beq _0806CC40
|
|
cmp r0, #1
|
|
bgt _0806CC1C
|
|
cmp r0, #0
|
|
beq _0806CC22
|
|
b _0806CCB0
|
|
_0806CC1C:
|
|
cmp r0, #2
|
|
beq _0806CC96
|
|
b _0806CCB0
|
|
_0806CC22:
|
|
movs r2, #1
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0x18]
|
|
subs r0, #5
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r4, #0x18]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
adds r0, r4, #0
|
|
bl sub_0807DD64
|
|
_0806CC40:
|
|
adds r2, r4, #0
|
|
adds r2, #0x39
|
|
movs r1, #0
|
|
ldrsb r1, [r2, r1]
|
|
cmp r1, #2
|
|
bne _0806CC80
|
|
movs r0, #0
|
|
strb r1, [r4, #0xc]
|
|
strb r0, [r2]
|
|
adds r0, r4, #0
|
|
adds r0, #0x58
|
|
ldrb r0, [r0]
|
|
adds r1, r4, #0
|
|
adds r1, #0x69
|
|
strb r0, [r1]
|
|
ldr r1, _0806CC7C @ =gLinkEntity
|
|
adds r0, r4, #0
|
|
bl sub_080045C4
|
|
bl sub_0806F5A4
|
|
adds r1, r0, #0
|
|
adds r1, #8
|
|
adds r0, r4, #0
|
|
bl sub_080042AC
|
|
adds r0, r4, #0
|
|
bl sub_0806F118
|
|
b _0806CCB0
|
|
.align 2, 0
|
|
_0806CC7C: .4byte gLinkEntity
|
|
_0806CC80:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0807DDAC
|
|
adds r0, r4, #0
|
|
bl sub_0807DDE4
|
|
adds r0, r4, #0
|
|
bl sub_08004274
|
|
b _0806CCB0
|
|
_0806CC96:
|
|
adds r0, r4, #0
|
|
bl sub_0806F148
|
|
cmp r0, #0
|
|
beq _0806CCB0
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
adds r0, #0x69
|
|
ldrb r1, [r0]
|
|
adds r0, r4, #0
|
|
bl sub_080042AC
|
|
_0806CCB0:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806CCB4
|
|
sub_0806CCB4: @ 0x0806CCB4
|
|
push {lr}
|
|
adds r2, r1, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0806CCCA
|
|
movs r0, #1
|
|
_0806CCCA:
|
|
str r0, [r2, #0x14]
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806CCD0
|
|
sub_0806CCD0: @ 0x0806CCD0
|
|
push {r4, lr}
|
|
adds r3, r0, #0
|
|
adds r4, r1, #0
|
|
adds r0, #0x5b
|
|
ldrb r0, [r0]
|
|
movs r2, #0x3f
|
|
ands r2, r0
|
|
cmp r2, #0
|
|
beq _0806CCF4
|
|
ldrb r1, [r3, #0x14]
|
|
lsrs r1, r1, #1
|
|
adds r1, r2, r1
|
|
adds r0, r3, #0
|
|
bl sub_08004260
|
|
movs r0, #1
|
|
str r0, [r4, #0x14]
|
|
b _0806CCF6
|
|
_0806CCF4:
|
|
str r2, [r4, #0x14]
|
|
_0806CCF6:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806CCF8
|
|
sub_0806CCF8: @ 0x0806CCF8
|
|
push {lr}
|
|
movs r1, #0x85
|
|
lsls r1, r1, #1
|
|
bl sub_0801D2B4
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_0806CD04
|
|
sub_0806CD04: @ 0x0806CD04
|
|
push {lr}
|
|
ldr r1, _0806CD10 @ =0x0000010B
|
|
bl sub_0801D2B4
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806CD10: .4byte 0x0000010B
|
|
|
|
thumb_func_start sub_0806CD14
|
|
sub_0806CD14: @ 0x0806CD14
|
|
push {lr}
|
|
movs r1, #0x86
|
|
lsls r1, r1, #1
|
|
bl sub_0801D2B4
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_0806CD20
|
|
sub_0806CD20: @ 0x0806CD20
|
|
push {lr}
|
|
ldr r1, _0806CD2C @ =0x0000010D
|
|
bl sub_0801D2B4
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806CD2C: .4byte 0x0000010D
|
|
|
|
thumb_func_start sub_0806CD30
|
|
sub_0806CD30: @ 0x0806CD30
|
|
push {lr}
|
|
movs r1, #0x87
|
|
lsls r1, r1, #1
|
|
bl sub_0801D2B4
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_0806CD3C
|
|
sub_0806CD3C: @ 0x0806CD3C
|
|
push {lr}
|
|
ldr r1, _0806CD48 @ =0x0000010F
|
|
bl sub_0801D2B4
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806CD48: .4byte 0x0000010F
|
|
|
|
thumb_func_start sub_0806CD4C
|
|
sub_0806CD4C: @ 0x0806CD4C
|
|
push {lr}
|
|
movs r1, #0x88
|
|
lsls r1, r1, #1
|
|
bl sub_0801D2B4
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_0806CD58
|
|
sub_0806CD58: @ 0x0806CD58
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0801E99C
|
|
adds r1, r4, #0
|
|
adds r1, #0x68
|
|
strb r0, [r1]
|
|
ldrb r1, [r1]
|
|
adds r0, r4, #0
|
|
bl sub_08078784
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806CD70
|
|
sub_0806CD70: @ 0x0806CD70
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
bne _0806CD9E
|
|
adds r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
adds r0, r4, #0
|
|
movs r1, #6
|
|
bl sub_080042AC
|
|
b _0806CDA4
|
|
_0806CD9E:
|
|
adds r0, r4, #0
|
|
bl sub_080042B8
|
|
_0806CDA4:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806CDA8
|
|
sub_0806CDA8: @ 0x0806CDA8
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r1, [r4, #0xc]
|
|
cmp r1, #1
|
|
beq _0806CDE8
|
|
cmp r1, #1
|
|
bgt _0806CDBC
|
|
cmp r1, #0
|
|
beq _0806CDC2
|
|
b _0806CE58
|
|
_0806CDBC:
|
|
cmp r1, #2
|
|
beq _0806CE3E
|
|
b _0806CE58
|
|
_0806CDC2:
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
adds r0, #0x69
|
|
strb r1, [r0]
|
|
adds r0, r4, #0
|
|
bl sub_0801E99C
|
|
adds r1, r4, #0
|
|
adds r1, #0x68
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
adds r0, r4, #0
|
|
bl sub_0807DD50
|
|
b _0806CE58
|
|
_0806CDE8:
|
|
adds r2, r4, #0
|
|
adds r2, #0x39
|
|
movs r1, #0
|
|
ldrsb r1, [r2, r1]
|
|
cmp r1, #2
|
|
bne _0806CE28
|
|
movs r0, #0
|
|
strb r1, [r4, #0xc]
|
|
strb r0, [r2]
|
|
adds r0, r4, #0
|
|
adds r0, #0x58
|
|
ldrb r0, [r0]
|
|
adds r1, r4, #0
|
|
adds r1, #0x69
|
|
strb r0, [r1]
|
|
ldr r1, _0806CE24 @ =gLinkEntity
|
|
adds r0, r4, #0
|
|
bl sub_080045C4
|
|
bl sub_0806F5A4
|
|
adds r1, r0, #0
|
|
adds r1, #4
|
|
adds r0, r4, #0
|
|
bl sub_080042AC
|
|
adds r0, r4, #0
|
|
bl sub_0806F118
|
|
b _0806CE58
|
|
.align 2, 0
|
|
_0806CE24: .4byte gLinkEntity
|
|
_0806CE28:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0807DDAC
|
|
adds r0, r4, #0
|
|
bl sub_0807DDE4
|
|
adds r0, r4, #0
|
|
bl sub_080042B8
|
|
b _0806CE58
|
|
_0806CE3E:
|
|
adds r0, r4, #0
|
|
bl sub_0806F148
|
|
cmp r0, #0
|
|
beq _0806CE58
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
adds r0, #0x69
|
|
ldrb r1, [r0]
|
|
adds r0, r4, #0
|
|
bl sub_080042AC
|
|
_0806CE58:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806CE5C
|
|
sub_0806CE5C: @ 0x0806CE5C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0801E99C
|
|
adds r1, r0, #0
|
|
adds r0, r4, #0
|
|
bl sub_08078784
|
|
ldr r3, _0806CE7C @ =gUnk_08113F44
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
movs r2, #0
|
|
bl sub_08078850
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0806CE7C: .4byte gUnk_08113F44
|
|
|
|
thumb_func_start sub_0806CE80
|
|
sub_0806CE80: @ 0x0806CE80
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
ldr r0, _0806CEB4 @ =gUnk_02002A40
|
|
ldrb r4, [r0, #8]
|
|
cmp r4, #5
|
|
bne _0806CED6
|
|
movs r0, #0x46
|
|
bl GetInventoryValue
|
|
cmp r0, #0
|
|
bne _0806CEC0
|
|
movs r0, #0x70
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
beq _0806CEBC
|
|
movs r0, #0x71
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
bne _0806CEB8
|
|
movs r4, #0xb
|
|
movs r0, #0x71
|
|
bl sub_0807CCB4
|
|
b _0806CED6
|
|
.align 2, 0
|
|
_0806CEB4: .4byte gUnk_02002A40
|
|
_0806CEB8:
|
|
movs r4, #0xc
|
|
b _0806CED6
|
|
_0806CEBC:
|
|
movs r4, #0xa
|
|
b _0806CED6
|
|
_0806CEC0:
|
|
movs r0, #0x89
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
bne _0806CED4
|
|
movs r4, #0xd
|
|
movs r0, #0x89
|
|
bl sub_0807CCB4
|
|
b _0806CED6
|
|
_0806CED4:
|
|
movs r4, #0xe
|
|
_0806CED6:
|
|
lsls r1, r4, #3
|
|
ldr r0, _0806CEE4 @ =gUnk_08113F48
|
|
adds r1, r1, r0
|
|
adds r0, r5, #0
|
|
bl sub_0806F1AC
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0806CEE4: .4byte gUnk_08113F48
|
|
|
|
thumb_func_start sub_0806CEE8
|
|
sub_0806CEE8: @ 0x0806CEE8
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
ldrb r0, [r2, #0xc]
|
|
cmp r0, #0
|
|
bne _0806CF0E
|
|
adds r0, #1
|
|
strb r0, [r2, #0xc]
|
|
ldrb r1, [r2, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2, #0x18]
|
|
adds r0, r2, #0
|
|
movs r1, #8
|
|
bl sub_080042AC
|
|
b _0806CF14
|
|
_0806CF0E:
|
|
adds r0, r2, #0
|
|
bl sub_080042B8
|
|
_0806CF14:
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806CF18
|
|
sub_0806CF18: @ 0x0806CF18
|
|
push {lr}
|
|
ldr r2, _0806CF2C @ =gUnk_081140D4
|
|
ldrb r1, [r0, #0xa]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806CF2C: .4byte gUnk_081140D4
|
|
|
|
thumb_func_start sub_0806CF30
|
|
sub_0806CF30: @ 0x0806CF30
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
ldrb r0, [r5, #0xc]
|
|
cmp r0, #0
|
|
bne _0806CF5E
|
|
movs r0, #1
|
|
strb r0, [r5, #0xc]
|
|
strb r0, [r5, #0xd]
|
|
ldrh r1, [r5, #0x2e]
|
|
adds r0, r5, #0
|
|
adds r0, #0x68
|
|
strh r1, [r0]
|
|
adds r0, r5, #0
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
adds r0, r5, #0
|
|
bl sub_0806D0B0
|
|
adds r0, r5, #0
|
|
bl sub_0807DD64
|
|
b _0806CF6C
|
|
_0806CF5E:
|
|
adds r0, r5, #0
|
|
movs r1, #0
|
|
bl sub_0807DDAC
|
|
adds r0, r5, #0
|
|
bl sub_0807DDE4
|
|
_0806CF6C:
|
|
ldrb r0, [r5, #0xd]
|
|
cmp r0, #2
|
|
beq _0806CFD4
|
|
cmp r0, #2
|
|
bgt _0806D000
|
|
cmp r0, #0
|
|
blt _0806D000
|
|
ldr r0, _0806CFCC @ =gUnk_030010A0
|
|
ldr r0, [r0]
|
|
movs r1, #3
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0806D000
|
|
ldr r0, _0806CFD0 @ =gLinkEntity
|
|
movs r1, #0x2e
|
|
ldrsh r2, [r0, r1]
|
|
ldrh r3, [r5, #0x2e]
|
|
movs r4, #0x2e
|
|
ldrsh r1, [r5, r4]
|
|
adds r4, r0, #0
|
|
cmp r2, r1
|
|
bge _0806CFA8
|
|
adds r0, r5, #0
|
|
adds r0, #0x68
|
|
ldrh r0, [r0]
|
|
subs r0, #0x20
|
|
cmp r0, r1
|
|
bge _0806CFA8
|
|
subs r0, r3, #1
|
|
strh r0, [r5, #0x2e]
|
|
_0806CFA8:
|
|
movs r3, #0x2e
|
|
ldrsh r1, [r4, r3]
|
|
ldrh r2, [r5, #0x2e]
|
|
movs r4, #0x2e
|
|
ldrsh r0, [r5, r4]
|
|
cmp r1, r0
|
|
ble _0806D000
|
|
adds r0, r5, #0
|
|
adds r0, #0x68
|
|
ldrh r0, [r0]
|
|
adds r0, #0x20
|
|
movs r3, #0x2e
|
|
ldrsh r1, [r5, r3]
|
|
cmp r0, r1
|
|
ble _0806D000
|
|
adds r0, r2, #1
|
|
strh r0, [r5, #0x2e]
|
|
b _0806D000
|
|
.align 2, 0
|
|
_0806CFCC: .4byte gUnk_030010A0
|
|
_0806CFD0: .4byte gLinkEntity
|
|
_0806CFD4:
|
|
ldrb r0, [r5, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r5, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0806D000
|
|
bl Random
|
|
adds r4, r0, #0
|
|
ldr r1, _0806D008 @ =gUnk_081140CC
|
|
movs r0, #3
|
|
ands r0, r4
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
bl PlaySFX
|
|
movs r0, #7
|
|
ands r4, r0
|
|
lsls r4, r4, #4
|
|
adds r4, #0x80
|
|
strb r4, [r5, #0xe]
|
|
_0806D000:
|
|
adds r0, r5, #0
|
|
bl sub_0806D02C
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0806D008: .4byte gUnk_081140CC
|
|
|
|
thumb_func_start sub_0806D00C
|
|
sub_0806D00C: @ 0x0806D00C
|
|
push {r4, lr}
|
|
sub sp, #4
|
|
adds r4, r0, #0
|
|
movs r0, #0
|
|
str r0, [sp]
|
|
movs r0, #7
|
|
movs r1, #0x4c
|
|
movs r2, #7
|
|
movs r3, #0
|
|
bl sub_0805EB2C
|
|
cmp r0, #0
|
|
beq _0806D028
|
|
str r0, [r4, #0x50]
|
|
_0806D028:
|
|
add sp, #4
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806D02C
|
|
sub_0806D02C: @ 0x0806D02C
|
|
push {lr}
|
|
bl sub_0806D164
|
|
ldr r2, _0806D0A8 @ =gLCDControls
|
|
ldrh r1, [r2]
|
|
movs r3, #0x80
|
|
lsls r3, r3, #7
|
|
adds r0, r3, #0
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
adds r1, r2, #0
|
|
adds r1, #0x60
|
|
ldr r0, _0806D0AC @ =0x00003F3F
|
|
strh r0, [r1]
|
|
adds r1, #2
|
|
movs r0, #0x3d
|
|
strh r0, [r1]
|
|
movs r1, #0x16
|
|
ldrsh r0, [r2, r1]
|
|
rsbs r0, r0, #0
|
|
movs r3, #0x80
|
|
lsls r3, r3, #1
|
|
adds r1, r0, r3
|
|
cmp r0, #0
|
|
bge _0806D060
|
|
movs r0, #0
|
|
_0806D060:
|
|
cmp r0, #0xf0
|
|
ble _0806D066
|
|
movs r0, #0xf0
|
|
_0806D066:
|
|
cmp r1, #0
|
|
bge _0806D06C
|
|
movs r1, #0
|
|
_0806D06C:
|
|
cmp r1, #0xf0
|
|
ble _0806D072
|
|
movs r1, #0xf0
|
|
_0806D072:
|
|
lsls r0, r0, #8
|
|
orrs r0, r1
|
|
adds r1, r2, #0
|
|
adds r1, #0x5a
|
|
strh r0, [r1]
|
|
movs r1, #0x18
|
|
ldrsh r0, [r2, r1]
|
|
rsbs r0, r0, #0
|
|
adds r1, r0, r3
|
|
cmp r0, #0
|
|
bge _0806D08A
|
|
movs r0, #0
|
|
_0806D08A:
|
|
cmp r0, #0xa0
|
|
ble _0806D090
|
|
movs r0, #0xa0
|
|
_0806D090:
|
|
cmp r1, #0
|
|
bge _0806D096
|
|
movs r1, #0
|
|
_0806D096:
|
|
cmp r1, #0xa0
|
|
ble _0806D09C
|
|
movs r1, #0xa0
|
|
_0806D09C:
|
|
lsls r0, r0, #8
|
|
orrs r0, r1
|
|
adds r1, r2, #0
|
|
adds r1, #0x5e
|
|
strh r0, [r1]
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806D0A8: .4byte gLCDControls
|
|
_0806D0AC: .4byte 0x00003F3F
|
|
|
|
thumb_func_start sub_0806D0B0
|
|
sub_0806D0B0: @ 0x0806D0B0
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
ldr r0, _0806D0E8 @ =gUnk_0200B650
|
|
movs r1, #0
|
|
str r1, [r0]
|
|
movs r0, #0x30
|
|
bl sub_0801D7EC
|
|
bl sub_0806D110
|
|
ldr r5, _0806D0EC @ =gUnk_02002F00
|
|
movs r1, #0x80
|
|
lsls r1, r1, #6
|
|
adds r0, r5, #0
|
|
bl sub_0801D630
|
|
cmp r4, #0
|
|
beq _0806D0DA
|
|
adds r0, r4, #0
|
|
bl sub_0806D164
|
|
_0806D0DA:
|
|
ldr r0, _0806D0F0 @ =gLCDControls
|
|
ldr r1, _0806D0F4 @ =0x00001D47
|
|
strh r1, [r0, #0x14]
|
|
str r5, [r0, #0x1c]
|
|
movs r1, #1
|
|
strh r1, [r0, #0x1a]
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0806D0E8: .4byte gUnk_0200B650
|
|
_0806D0EC: .4byte gUnk_02002F00
|
|
_0806D0F0: .4byte gLCDControls
|
|
_0806D0F4: .4byte 0x00001D47
|
|
|
|
thumb_func_start sub_0806D0F8
|
|
sub_0806D0F8: @ 0x0806D0F8
|
|
push {lr}
|
|
movs r0, #7
|
|
movs r1, #0x4c
|
|
movs r2, #7
|
|
bl sub_0805EB00
|
|
cmp r0, #0
|
|
beq _0806D10C
|
|
bl sub_0806D0B0
|
|
_0806D10C:
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806D110
|
|
sub_0806D110: @ 0x0806D110
|
|
push {r4, r5, lr}
|
|
ldr r4, _0806D134 @ =gUnk_02002F00
|
|
movs r0, #0x80
|
|
lsls r0, r0, #7
|
|
adds r5, r4, r0
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0806D138
|
|
movs r0, #0x80
|
|
lsls r0, r0, #4
|
|
adds r4, r4, r0
|
|
adds r5, #0x40
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0806D138
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0806D134: .4byte gUnk_02002F00
|
|
|
|
thumb_func_start sub_0806D138
|
|
sub_0806D138: @ 0x0806D138
|
|
push {r4, r5, r6, lr}
|
|
adds r3, r0, #0
|
|
movs r4, #0
|
|
ldr r2, _0806D15C @ =0x040000D4
|
|
ldr r6, _0806D160 @ =0x80000020
|
|
movs r5, #0x80
|
|
lsls r5, r5, #1
|
|
_0806D146:
|
|
str r3, [r2]
|
|
str r1, [r2, #4]
|
|
str r6, [r2, #8]
|
|
ldr r0, [r2, #8]
|
|
adds r4, #1
|
|
adds r3, #0x40
|
|
adds r1, r1, r5
|
|
cmp r4, #0x1f
|
|
bls _0806D146
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0806D15C: .4byte 0x040000D4
|
|
_0806D160: .4byte 0x80000020
|
|
|
|
thumb_func_start sub_0806D164
|
|
sub_0806D164: @ 0x0806D164
|
|
push {r4, r5, r6, r7, lr}
|
|
ldr r5, _0806D1B8 @ =gRoomControls
|
|
movs r1, #0xa
|
|
ldrsh r2, [r5, r1]
|
|
movs r3, #0x2e
|
|
ldrsh r1, [r0, r3]
|
|
subs r2, r2, r1
|
|
adds r2, #0xa0
|
|
ldr r4, _0806D1BC @ =gLCDControls
|
|
movs r3, #0xf
|
|
adds r1, r2, #0
|
|
ands r1, r3
|
|
strh r1, [r4, #0x16]
|
|
ldrh r1, [r5, #0xc]
|
|
ldrh r0, [r0, #0x32]
|
|
subs r1, r1, r0
|
|
adds r1, #0xb0
|
|
strh r1, [r4, #0x18]
|
|
ldr r3, _0806D1C0 @ =gUnk_02006F00
|
|
ldr r0, _0806D1C4 @ =0xFFFFC000
|
|
adds r6, r3, r0
|
|
movs r5, #0x20
|
|
lsrs r2, r2, #4
|
|
lsls r2, r2, #2
|
|
adds r3, r2, r3
|
|
adds r7, r4, #0
|
|
ldr r1, _0806D1C8 @ =0x040000D4
|
|
ldr r4, _0806D1CC @ =0x80000020
|
|
movs r2, #0x80
|
|
lsls r2, r2, #1
|
|
_0806D1A0:
|
|
str r3, [r1]
|
|
str r6, [r1, #4]
|
|
str r4, [r1, #8]
|
|
ldr r0, [r1, #8]
|
|
adds r3, r3, r2
|
|
adds r6, #0x40
|
|
subs r5, #1
|
|
cmp r5, #0
|
|
bne _0806D1A0
|
|
movs r0, #1
|
|
strh r0, [r7, #0x1a]
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0806D1B8: .4byte gRoomControls
|
|
_0806D1BC: .4byte gLCDControls
|
|
_0806D1C0: .4byte gUnk_02006F00
|
|
_0806D1C4: .4byte 0xFFFFC000
|
|
_0806D1C8: .4byte 0x040000D4
|
|
_0806D1CC: .4byte 0x80000020
|
|
|
|
thumb_func_start sub_0806D1D0
|
|
sub_0806D1D0: @ 0x0806D1D0
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
ldrb r5, [r4, #0xc]
|
|
cmp r5, #0
|
|
bne _0806D21A
|
|
bl sub_0806D00C
|
|
cmp r0, #0
|
|
bne _0806D1E6
|
|
bl sub_0805E780
|
|
_0806D1E6:
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r0, [r4, #0x1b]
|
|
movs r1, #0xc0
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x1b]
|
|
ldrb r0, [r4, #0x19]
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x19]
|
|
adds r2, r4, #0
|
|
adds r2, #0x29
|
|
ldrb r0, [r2]
|
|
movs r1, #7
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrb r0, [r4, #0x18]
|
|
movs r1, #3
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
strb r5, [r4, #0x1e]
|
|
movs r0, #0x1e
|
|
strb r0, [r4, #0xe]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
_0806D21A:
|
|
ldrb r0, [r4, #0xd]
|
|
cmp r0, #1
|
|
beq _0806D25A
|
|
cmp r0, #1
|
|
ble _0806D228
|
|
cmp r0, #2
|
|
beq _0806D25E
|
|
_0806D228:
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
movs r5, #0xff
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0806D24A
|
|
bl Random
|
|
movs r1, #0x7f
|
|
ands r0, r1
|
|
adds r0, #0x30
|
|
strb r0, [r4, #0xe]
|
|
movs r0, #8
|
|
strb r0, [r4, #0xf]
|
|
movs r0, #1
|
|
strb r0, [r4, #0x1e]
|
|
_0806D24A:
|
|
ldrb r0, [r4, #0xf]
|
|
cmp r0, #0
|
|
beq _0806D268
|
|
subs r0, #1
|
|
strb r0, [r4, #0xf]
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
bne _0806D268
|
|
_0806D25A:
|
|
strb r0, [r4, #0x1e]
|
|
b _0806D268
|
|
_0806D25E:
|
|
ldrb r1, [r4, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
strb r0, [r4, #0x18]
|
|
_0806D268:
|
|
ldr r0, [r4, #0x50]
|
|
ldrh r1, [r0, #0x2e]
|
|
strh r1, [r4, #0x2e]
|
|
ldrh r0, [r0, #0x32]
|
|
strh r0, [r4, #0x32]
|
|
pop {r4, r5, pc}
|
|
|
|
thumb_func_start sub_0806D274
|
|
sub_0806D274: @ 0x0806D274
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
bne _0806D2CA
|
|
adds r0, r4, #0
|
|
bl sub_0806D00C
|
|
cmp r0, #0
|
|
bne _0806D28C
|
|
bl sub_0805E780
|
|
_0806D28C:
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r0, [r4, #0x1b]
|
|
movs r1, #0xc0
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x1b]
|
|
ldrb r0, [r4, #0x19]
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x19]
|
|
adds r2, r4, #0
|
|
adds r2, #0x29
|
|
ldrb r0, [r2]
|
|
movs r1, #7
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
movs r0, #2
|
|
strb r0, [r4, #0x1e]
|
|
movs r0, #8
|
|
strb r0, [r4, #0xe]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
movs r0, #0x4c
|
|
movs r1, #3
|
|
movs r2, #0
|
|
bl CreateNPC
|
|
cmp r0, #0
|
|
beq _0806D2CA
|
|
str r4, [r0, #0x54]
|
|
_0806D2CA:
|
|
ldrb r0, [r4, #0xd]
|
|
cmp r0, #4
|
|
bhi _0806D2F4
|
|
lsls r0, r0, #2
|
|
ldr r1, _0806D2DC @ =_0806D2E0
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0806D2DC: .4byte _0806D2E0
|
|
_0806D2E0: @ jump table
|
|
.4byte _0806D2F4 @ case 0
|
|
.4byte _0806D2F4 @ case 1
|
|
.4byte _0806D31C @ case 2
|
|
.4byte _0806D334 @ case 3
|
|
.4byte _0806D338 @ case 4
|
|
_0806D2F4:
|
|
ldr r0, _0806D318 @ =gTextBox
|
|
ldrb r1, [r0]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806D338
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0806D33C
|
|
movs r0, #8
|
|
strb r0, [r4, #0xe]
|
|
ldrb r0, [r4, #0x1e]
|
|
movs r1, #1
|
|
eors r0, r1
|
|
b _0806D33A
|
|
.align 2, 0
|
|
_0806D318: .4byte gTextBox
|
|
_0806D31C:
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0806D33C
|
|
movs r0, #8
|
|
strb r0, [r4, #0xe]
|
|
ldrb r0, [r4, #0x1e]
|
|
movs r1, #1
|
|
eors r0, r1
|
|
b _0806D33A
|
|
_0806D334:
|
|
movs r0, #4
|
|
b _0806D33A
|
|
_0806D338:
|
|
movs r0, #2
|
|
_0806D33A:
|
|
strb r0, [r4, #0x1e]
|
|
_0806D33C:
|
|
ldr r0, [r4, #0x50]
|
|
ldrh r1, [r0, #0x2e]
|
|
strh r1, [r4, #0x2e]
|
|
ldrh r0, [r0, #0x32]
|
|
strh r0, [r4, #0x32]
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806D348
|
|
sub_0806D348: @ 0x0806D348
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
bne _0806D39A
|
|
adds r0, r4, #0
|
|
bl sub_0806D00C
|
|
cmp r0, #0
|
|
bne _0806D360
|
|
bl sub_0805E780
|
|
_0806D360:
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r0, [r4, #0x1b]
|
|
movs r1, #0xc0
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x1b]
|
|
ldrb r0, [r4, #0x19]
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x19]
|
|
adds r2, r4, #0
|
|
adds r2, #0x29
|
|
ldrb r1, [r2]
|
|
movs r0, #8
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #6
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrb r1, [r4, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
strb r0, [r4, #0x18]
|
|
movs r0, #5
|
|
strb r0, [r4, #0x1e]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
_0806D39A:
|
|
ldr r0, [r4, #0x54]
|
|
ldrb r0, [r0, #0x1e]
|
|
cmp r0, #4
|
|
bne _0806D3AA
|
|
ldrb r0, [r4, #0x18]
|
|
movs r1, #3
|
|
orrs r0, r1
|
|
b _0806D3B2
|
|
_0806D3AA:
|
|
ldrb r1, [r4, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
_0806D3B2:
|
|
strb r0, [r4, #0x18]
|
|
ldr r0, [r4, #0x50]
|
|
ldrh r1, [r0, #0x2e]
|
|
strh r1, [r4, #0x2e]
|
|
ldrh r0, [r0, #0x32]
|
|
strh r0, [r4, #0x32]
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806D3C0
|
|
sub_0806D3C0: @ 0x0806D3C0
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
bne _0806D3F4
|
|
adds r0, r4, #0
|
|
bl sub_0806D00C
|
|
cmp r0, #0
|
|
bne _0806D3D8
|
|
bl sub_0805E780
|
|
_0806D3D8:
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldr r0, _0806D3F0 @ =gUnk_080FD180
|
|
str r0, [r4, #0x48]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
adds r0, r4, #0
|
|
bl sub_0807DD64
|
|
b _0806D408
|
|
.align 2, 0
|
|
_0806D3F0: .4byte gUnk_080FD180
|
|
_0806D3F4:
|
|
ldr r0, [r4, #0x50]
|
|
ldrh r0, [r0, #0x2e]
|
|
strh r0, [r4, #0x2e]
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0807DDAC
|
|
adds r0, r4, #0
|
|
bl sub_0807DDE4
|
|
_0806D408:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806D40C
|
|
sub_0806D40C: @ 0x0806D40C
|
|
push {lr}
|
|
ldrb r1, [r0, #0x18]
|
|
movs r2, #0x40
|
|
orrs r1, r2
|
|
strb r1, [r0, #0x18]
|
|
bl sub_0806D41C
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_0806D41C
|
|
sub_0806D41C: @ 0x0806D41C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
bne _0806D45E
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #6
|
|
strb r0, [r4, #0x1e]
|
|
adds r0, r4, #0
|
|
bl sub_0807DD64
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0806D4C0
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
bl sub_0806D4C0
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_0806D4C0
|
|
adds r0, r4, #0
|
|
movs r1, #3
|
|
bl sub_0806D4C0
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
b _0806D46C
|
|
_0806D45E:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0807DDAC
|
|
adds r0, r4, #0
|
|
bl sub_0807DDE4
|
|
_0806D46C:
|
|
ldr r0, _0806D4A8 @ =gUnk_030010A0
|
|
ldr r0, [r0]
|
|
movs r1, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0806D4BE
|
|
movs r1, #0x2e
|
|
ldrsh r0, [r4, r1]
|
|
subs r0, #0x20
|
|
movs r2, #0x32
|
|
ldrsh r1, [r4, r2]
|
|
movs r2, #0x40
|
|
movs r3, #0x40
|
|
bl sub_0806FBFC
|
|
cmp r0, #0
|
|
beq _0806D4AC
|
|
adds r2, r4, #0
|
|
adds r2, #0x63
|
|
ldrb r3, [r2]
|
|
movs r1, #0
|
|
ldrsb r1, [r2, r1]
|
|
movs r0, #8
|
|
rsbs r0, r0, #0
|
|
cmp r1, r0
|
|
ble _0806D4BE
|
|
subs r0, r3, #1
|
|
strb r0, [r2]
|
|
b _0806D4BE
|
|
.align 2, 0
|
|
_0806D4A8: .4byte gUnk_030010A0
|
|
_0806D4AC:
|
|
adds r1, r4, #0
|
|
adds r1, #0x63
|
|
ldrb r2, [r1]
|
|
movs r0, #0
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, #0
|
|
bge _0806D4BE
|
|
adds r0, r2, #1
|
|
strb r0, [r1]
|
|
_0806D4BE:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806D4C0
|
|
sub_0806D4C0: @ 0x0806D4C0
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
adds r1, #6
|
|
movs r0, #0x4c
|
|
movs r2, #0
|
|
bl CreateNPC
|
|
adds r4, r0, #0
|
|
cmp r4, #0
|
|
beq _0806D4EE
|
|
str r5, [r4, #0x50]
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
bl CopyPosition
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
bl sub_0806FAB0
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
_0806D4EE:
|
|
pop {r4, r5, pc}
|
|
|
|
thumb_func_start sub_0806D4F0
|
|
sub_0806D4F0: @ 0x0806D4F0
|
|
push {lr}
|
|
movs r1, #0
|
|
bl sub_0806D520
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806D4FC
|
|
sub_0806D4FC: @ 0x0806D4FC
|
|
push {lr}
|
|
movs r1, #1
|
|
bl sub_0806D520
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806D508
|
|
sub_0806D508: @ 0x0806D508
|
|
push {lr}
|
|
movs r1, #2
|
|
bl sub_0806D520
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806D514
|
|
sub_0806D514: @ 0x0806D514
|
|
push {lr}
|
|
movs r1, #3
|
|
bl sub_0806D520
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806D520
|
|
sub_0806D520: @ 0x0806D520
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
adds r3, r1, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
bne _0806D540
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldr r0, _0806D5B0 @ =gUnk_08114100
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
adds r0, #6
|
|
strb r0, [r4, #0xf]
|
|
strb r0, [r4, #0x1e]
|
|
movs r0, #8
|
|
strb r0, [r4, #0xe]
|
|
_0806D540:
|
|
ldr r0, [r4, #0x50]
|
|
ldrh r1, [r0, #0x2e]
|
|
strh r1, [r4, #0x2e]
|
|
ldrh r1, [r0, #0x32]
|
|
strh r1, [r4, #0x32]
|
|
adds r0, #0x62
|
|
ldrb r0, [r0]
|
|
adds r1, r4, #0
|
|
adds r1, #0x62
|
|
strb r0, [r1]
|
|
ldr r0, [r4, #0x50]
|
|
adds r0, #0x63
|
|
ldrb r0, [r0]
|
|
adds r1, #1
|
|
strb r0, [r1]
|
|
ldr r0, [r4, #0x50]
|
|
ldrb r1, [r0, #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]
|
|
ldrb r0, [r4, #0xd]
|
|
cmp r0, #0
|
|
bne _0806D590
|
|
movs r1, #0x2e
|
|
ldrsh r0, [r4, r1]
|
|
lsls r1, r3, #4
|
|
subs r0, r0, r1
|
|
adds r0, #0xc
|
|
movs r2, #0x32
|
|
ldrsh r1, [r4, r2]
|
|
movs r2, #0x18
|
|
movs r3, #0x40
|
|
bl sub_0806FBFC
|
|
cmp r0, #0
|
|
beq _0806D5B4
|
|
_0806D590:
|
|
ldrb r1, [r4, #0x1e]
|
|
ldrb r0, [r4, #0xf]
|
|
adds r0, #2
|
|
cmp r1, r0
|
|
bge _0806D5D0
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0806D5D0
|
|
movs r0, #8
|
|
strb r0, [r4, #0xe]
|
|
ldrb r0, [r4, #0x1e]
|
|
adds r0, #1
|
|
b _0806D5CE
|
|
.align 2, 0
|
|
_0806D5B0: .4byte gUnk_08114100
|
|
_0806D5B4:
|
|
ldrb r1, [r4, #0x1e]
|
|
ldrb r0, [r4, #0xf]
|
|
cmp r1, r0
|
|
bls _0806D5D0
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0806D5D0
|
|
movs r0, #8
|
|
strb r0, [r4, #0xe]
|
|
subs r0, r1, #1
|
|
_0806D5CE:
|
|
strb r0, [r4, #0x1e]
|
|
_0806D5D0:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806D5D4
|
|
sub_0806D5D4: @ 0x0806D5D4
|
|
push {lr}
|
|
bl sub_08053500
|
|
movs r0, #0xd
|
|
bl sub_0805436C
|
|
adds r1, r0, #0
|
|
cmp r1, #2
|
|
beq _0806D5F0
|
|
ldr r0, _0806D5FC @ =gUnk_02002A40
|
|
adds r0, #0xb4
|
|
adds r0, r1, r0
|
|
movs r1, #0
|
|
strb r1, [r0]
|
|
_0806D5F0:
|
|
movs r0, #0xd
|
|
movs r1, #0
|
|
bl sub_0807CAA0
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806D5FC: .4byte gUnk_02002A40
|
|
|
|
thumb_func_start sub_0806D600
|
|
sub_0806D600: @ 0x0806D600
|
|
push {lr}
|
|
movs r2, #0
|
|
ldr r0, _0806D618 @ =gUnk_02002A40
|
|
ldr r3, _0806D61C @ =0x00000494
|
|
adds r0, r0, r3
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
bne _0806D612
|
|
movs r2, #1
|
|
_0806D612:
|
|
str r2, [r1, #0x14]
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806D618: .4byte gUnk_02002A40
|
|
_0806D61C: .4byte 0x00000494
|
|
|
|
thumb_func_start sub_0806D620
|
|
sub_0806D620: @ 0x0806D620
|
|
push {lr}
|
|
movs r0, #0xd
|
|
movs r1, #0
|
|
bl sub_0807CAA0
|
|
movs r0, #0xe
|
|
movs r1, #0
|
|
movs r2, #0
|
|
bl sub_080A7C18
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806D638
|
|
sub_0806D638: @ 0x0806D638
|
|
ldrh r1, [r0, #0x32]
|
|
subs r1, #0x20
|
|
strh r1, [r0, #0x32]
|
|
bx lr
|
|
|
|
thumb_func_start sub_0806D640
|
|
sub_0806D640: @ 0x0806D640
|
|
ldrh r1, [r0, #0x32]
|
|
adds r1, #0x20
|
|
movs r2, #0
|
|
strh r1, [r0, #0x32]
|
|
adds r0, #0x39
|
|
strb r2, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806D650
|
|
sub_0806D650: @ 0x0806D650
|
|
movs r1, #2
|
|
strb r1, [r0, #0xd]
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806D658
|
|
sub_0806D658: @ 0x0806D658
|
|
ldr r1, [r1, #4]
|
|
strb r1, [r0, #0xd]
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806D660
|
|
sub_0806D660: @ 0x0806D660
|
|
ldrb r1, [r0, #0x1b]
|
|
movs r2, #0xc0
|
|
orrs r1, r2
|
|
strb r1, [r0, #0x1b]
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806D66C
|
|
sub_0806D66C: @ 0x0806D66C
|
|
ldrb r2, [r0, #0x1b]
|
|
movs r1, #0x3f
|
|
ands r1, r2
|
|
movs r2, #0x80
|
|
orrs r1, r2
|
|
strb r1, [r0, #0x1b]
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806D67C
|
|
sub_0806D67C: @ 0x0806D67C
|
|
push {r4, r5, r6, lr}
|
|
adds r5, r0, #0
|
|
ldr r4, _0806D6CC @ =gUnk_08114104
|
|
movs r0, #0
|
|
ldrsb r0, [r4, r0]
|
|
movs r1, #1
|
|
rsbs r1, r1, #0
|
|
cmp r0, r1
|
|
beq _0806D6CA
|
|
adds r6, r1, #0
|
|
_0806D690:
|
|
movs r1, #0
|
|
ldrsb r1, [r4, r1]
|
|
adds r0, r5, #0
|
|
movs r2, #0x40
|
|
bl CreateFX
|
|
adds r1, r0, #0
|
|
cmp r1, #0
|
|
beq _0806D6C0
|
|
movs r0, #1
|
|
ldrsb r0, [r4, r0]
|
|
ldrh r2, [r1, #0x2e]
|
|
adds r0, r0, r2
|
|
strh r0, [r1, #0x2e]
|
|
movs r0, #2
|
|
ldrsb r0, [r4, r0]
|
|
ldrh r2, [r1, #0x32]
|
|
adds r0, r0, r2
|
|
strh r0, [r1, #0x32]
|
|
ldrb r0, [r4, #3]
|
|
strb r0, [r1, #0x15]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #1
|
|
strh r0, [r1, #0x24]
|
|
_0806D6C0:
|
|
adds r4, #4
|
|
movs r0, #0
|
|
ldrsb r0, [r4, r0]
|
|
cmp r0, r6
|
|
bne _0806D690
|
|
_0806D6CA:
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0806D6CC: .4byte gUnk_08114104
|
|
|
|
thumb_func_start sub_0806D6D0
|
|
sub_0806D6D0: @ 0x0806D6D0
|
|
push {r4, lr}
|
|
sub sp, #4
|
|
movs r4, #0
|
|
str r4, [sp]
|
|
movs r0, #7
|
|
movs r1, #0x4c
|
|
movs r2, #7
|
|
movs r3, #2
|
|
bl sub_0805EB2C
|
|
adds r1, r0, #0
|
|
cmp r1, #0
|
|
beq _0806D6EE
|
|
movs r0, #2
|
|
strb r0, [r1, #0xd]
|
|
_0806D6EE:
|
|
str r4, [sp]
|
|
movs r0, #7
|
|
movs r1, #0x4c
|
|
movs r2, #7
|
|
movs r3, #1
|
|
bl sub_0805EB2C
|
|
adds r1, r0, #0
|
|
cmp r1, #0
|
|
beq _0806D706
|
|
movs r0, #1
|
|
strb r0, [r1, #0xd]
|
|
_0806D706:
|
|
add sp, #4
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806D70C
|
|
sub_0806D70C: @ 0x0806D70C
|
|
push {r4, lr}
|
|
sub sp, #4
|
|
movs r4, #0
|
|
str r4, [sp]
|
|
movs r0, #7
|
|
movs r1, #0x4c
|
|
movs r2, #7
|
|
movs r3, #2
|
|
bl sub_0805EB2C
|
|
adds r2, r0, #0
|
|
cmp r2, #0
|
|
beq _0806D728
|
|
strb r4, [r2, #0xd]
|
|
_0806D728:
|
|
str r4, [sp]
|
|
movs r0, #7
|
|
movs r1, #0x4c
|
|
movs r2, #7
|
|
movs r3, #1
|
|
bl sub_0805EB2C
|
|
adds r2, r0, #0
|
|
cmp r2, #0
|
|
beq _0806D746
|
|
strb r4, [r2, #0xd]
|
|
ldrb r0, [r2, #0x18]
|
|
movs r1, #3
|
|
orrs r0, r1
|
|
strb r0, [r2, #0x18]
|
|
_0806D746:
|
|
add sp, #4
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806D74C
|
|
sub_0806D74C: @ 0x0806D74C
|
|
push {r4, lr}
|
|
sub sp, #4
|
|
movs r4, #0
|
|
str r4, [sp]
|
|
movs r0, #7
|
|
movs r1, #0x4c
|
|
movs r2, #7
|
|
movs r3, #2
|
|
bl sub_0805EB2C
|
|
adds r1, r0, #0
|
|
cmp r1, #0
|
|
beq _0806D76A
|
|
movs r0, #3
|
|
strb r0, [r1, #0xd]
|
|
_0806D76A:
|
|
str r4, [sp]
|
|
movs r0, #7
|
|
movs r1, #0x4c
|
|
movs r2, #7
|
|
movs r3, #1
|
|
bl sub_0805EB2C
|
|
adds r1, r0, #0
|
|
cmp r1, #0
|
|
beq _0806D782
|
|
movs r0, #2
|
|
strb r0, [r1, #0xd]
|
|
_0806D782:
|
|
add sp, #4
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806D788
|
|
sub_0806D788: @ 0x0806D788
|
|
push {r4, lr}
|
|
sub sp, #4
|
|
movs r4, #0
|
|
str r4, [sp]
|
|
movs r0, #7
|
|
movs r1, #0x4c
|
|
movs r2, #7
|
|
movs r3, #2
|
|
bl sub_0805EB2C
|
|
adds r1, r0, #0
|
|
cmp r1, #0
|
|
beq _0806D7A6
|
|
movs r0, #4
|
|
strb r0, [r1, #0xd]
|
|
_0806D7A6:
|
|
str r4, [sp]
|
|
movs r0, #7
|
|
movs r1, #0x4c
|
|
movs r2, #7
|
|
movs r3, #1
|
|
bl sub_0805EB2C
|
|
adds r1, r0, #0
|
|
cmp r1, #0
|
|
beq _0806D7BE
|
|
movs r0, #1
|
|
strb r0, [r1, #0xd]
|
|
_0806D7BE:
|
|
add sp, #4
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806D7C4
|
|
sub_0806D7C4: @ 0x0806D7C4
|
|
push {r4, r5, lr}
|
|
sub sp, #4
|
|
adds r4, r0, #0
|
|
adds r5, r1, #0
|
|
ldr r1, _0806D800 @ =gLinkEntity
|
|
ldrh r0, [r1, #0x2e]
|
|
movs r2, #0
|
|
strh r0, [r4, #0x2e]
|
|
ldrh r0, [r1, #0x32]
|
|
subs r0, #0x18
|
|
strh r0, [r4, #0x32]
|
|
str r2, [sp]
|
|
movs r0, #7
|
|
movs r1, #0x4c
|
|
movs r2, #7
|
|
movs r3, #2
|
|
bl sub_0805EB2C
|
|
cmp r0, #0
|
|
beq _0806D7FC
|
|
movs r1, #0x2e
|
|
ldrsh r2, [r0, r1]
|
|
movs r1, #0x32
|
|
ldrsh r3, [r0, r1]
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807DEDC
|
|
_0806D7FC:
|
|
add sp, #4
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0806D800: .4byte gLinkEntity
|
|
|
|
thumb_func_start sub_0806D804
|
|
sub_0806D804: @ 0x0806D804
|
|
push {r4, r5, lr}
|
|
sub sp, #4
|
|
adds r4, r0, #0
|
|
adds r5, r1, #0
|
|
movs r0, #0
|
|
str r0, [sp]
|
|
movs r0, #7
|
|
movs r1, #0x4c
|
|
movs r2, #7
|
|
movs r3, #2
|
|
bl sub_0805EB2C
|
|
adds r1, r0, #0
|
|
cmp r1, #0
|
|
beq _0806D83A
|
|
ldrh r0, [r1, #0x2e]
|
|
strh r0, [r4, #0x2e]
|
|
ldrh r0, [r1, #0x32]
|
|
subs r0, #0x10
|
|
strh r0, [r4, #0x32]
|
|
adds r2, r4, #0
|
|
adds r2, #0x29
|
|
ldrb r1, [r2]
|
|
movs r0, #0x39
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
_0806D83A:
|
|
ldr r0, _0806D854 @ =gLinkEntity
|
|
movs r1, #0x2e
|
|
ldrsh r2, [r0, r1]
|
|
movs r1, #0x32
|
|
ldrsh r3, [r0, r1]
|
|
subs r3, #0x10
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807DEDC
|
|
add sp, #4
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0806D854: .4byte gLinkEntity
|
|
|
|
thumb_func_start sub_0806D858
|
|
sub_0806D858: @ 0x0806D858
|
|
adds r0, #0x29
|
|
ldrb r2, [r0]
|
|
movs r1, #0x39
|
|
rsbs r1, r1, #0
|
|
ands r1, r2
|
|
movs r2, #8
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806D86C
|
|
sub_0806D86C: @ 0x0806D86C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
bne _0806D888
|
|
adds r0, #1
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
adds r0, r4, #0
|
|
bl sub_0807DD50
|
|
_0806D888:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0807DDAC
|
|
adds r0, r4, #0
|
|
bl sub_0807DDE4
|
|
adds r0, r4, #0
|
|
bl sub_080042B8
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806D8A0
|
|
sub_0806D8A0: @ 0x0806D8A0
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
adds r3, r1, #0
|
|
movs r2, #0
|
|
movs r0, #8
|
|
strb r0, [r3, #0x19]
|
|
ldr r0, [r3, #8]
|
|
movs r1, #2
|
|
orrs r0, r1
|
|
str r0, [r3, #8]
|
|
str r2, [r3, #0x14]
|
|
movs r2, #0x10
|
|
ldrb r0, [r4, #0x18]
|
|
lsls r0, r0, #0x19
|
|
cmp r0, #0
|
|
bge _0806D8C2
|
|
rsbs r2, r2, #0
|
|
_0806D8C2:
|
|
ldr r1, _0806D900 @ =gLinkEntity
|
|
movs r5, #0x2e
|
|
ldrsh r0, [r1, r5]
|
|
adds r2, r2, r0
|
|
movs r0, #0x32
|
|
ldrsh r1, [r1, r0]
|
|
adds r1, #2
|
|
strh r2, [r3, #0x1e]
|
|
strh r1, [r3, #0x22]
|
|
movs r3, #0x2e
|
|
ldrsh r0, [r4, r3]
|
|
subs r2, r2, r0
|
|
movs r5, #0x32
|
|
ldrsh r0, [r4, r5]
|
|
subs r1, r1, r0
|
|
adds r0, r2, #0
|
|
bl sub_080045DA
|
|
strb r0, [r4, #0x15]
|
|
ldrb r2, [r4, #0x14]
|
|
movs r1, #0x80
|
|
ands r1, r2
|
|
ldr r2, _0806D904 @ =gUnk_08114134
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x1c
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0]
|
|
orrs r1, r0
|
|
strb r1, [r4, #0x14]
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0806D900: .4byte gLinkEntity
|
|
_0806D904: .4byte gUnk_08114134
|
|
|
|
thumb_func_start sub_0806D908
|
|
sub_0806D908: @ 0x0806D908
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
movs r1, #0x2e
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, #0x32
|
|
ldrsh r1, [r4, r2]
|
|
ldr r3, _0806D93C @ =gLinkEntity
|
|
movs r5, #0x2e
|
|
ldrsh r2, [r3, r5]
|
|
movs r5, #0x32
|
|
ldrsh r3, [r3, r5]
|
|
bl sub_080045D4
|
|
strb r0, [r4, #0x15]
|
|
ldrb r2, [r4, #0x14]
|
|
movs r1, #0x80
|
|
ands r1, r2
|
|
ldr r2, _0806D940 @ =gUnk_08114144
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x19
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0]
|
|
orrs r1, r0
|
|
strb r1, [r4, #0x14]
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0806D93C: .4byte gLinkEntity
|
|
_0806D940: .4byte gUnk_08114144
|
|
|
|
thumb_func_start sub_0806D944
|
|
sub_0806D944: @ 0x0806D944
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
ldrb r0, [r2, #0x18]
|
|
movs r3, #0x41
|
|
rsbs r3, r3, #0
|
|
ands r3, r0
|
|
strb r3, [r2, #0x18]
|
|
ldr r0, _0806D968 @ =gLinkEntity
|
|
ldr r1, [r2, #0x2c]
|
|
ldr r0, [r0, #0x2c]
|
|
cmp r1, r0
|
|
bgt _0806D964
|
|
movs r1, #0x40
|
|
adds r0, r3, #0
|
|
orrs r0, r1
|
|
strb r0, [r2, #0x18]
|
|
_0806D964:
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806D968: .4byte gLinkEntity
|
|
|
|
thumb_func_start sub_0806D96C
|
|
sub_0806D96C: @ 0x0806D96C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r1, #0x42
|
|
movs r2, #0
|
|
bl CreateFX
|
|
adds r2, r0, #0
|
|
cmp r2, #0
|
|
beq _0806D99C
|
|
adds r3, r2, #0
|
|
adds r3, #0x29
|
|
ldrb r1, [r3]
|
|
movs r0, #8
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
ldr r3, _0806D9A0 @ =0xFFE80000
|
|
adds r0, r4, #0
|
|
adds r1, r2, #0
|
|
movs r2, #0
|
|
bl PositionRelative
|
|
_0806D99C:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0806D9A0: .4byte 0xFFE80000
|
|
|
|
thumb_func_start sub_0806D9A4
|
|
sub_0806D9A4: @ 0x0806D9A4
|
|
push {lr}
|
|
ldr r1, _0806D9BC @ =gLinkEntity
|
|
ldr r2, [r0, #0x2c]
|
|
ldr r0, [r1, #0x2c]
|
|
adds r3, r1, #0
|
|
cmp r2, r0
|
|
bgt _0806D9C0
|
|
ldrb r1, [r3, #0x18]
|
|
movs r0, #0x41
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
b _0806D9C6
|
|
.align 2, 0
|
|
_0806D9BC: .4byte gLinkEntity
|
|
_0806D9C0:
|
|
ldrb r0, [r3, #0x18]
|
|
movs r1, #0x40
|
|
orrs r0, r1
|
|
_0806D9C6:
|
|
strb r0, [r3, #0x18]
|
|
movs r0, #4
|
|
strb r0, [r3, #0x14]
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806D9D0
|
|
sub_0806D9D0: @ 0x0806D9D0
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
ldrb r0, [r2, #0xc]
|
|
cmp r0, #0
|
|
bne _0806D9F8
|
|
movs r0, #1
|
|
strb r0, [r2, #0xc]
|
|
ldrb r1, [r2, #0x18]
|
|
subs r0, #5
|
|
ands r0, r1
|
|
strb r0, [r2, #0x18]
|
|
ldr r0, _0806D9F4 @ =gUnk_080FD170
|
|
str r0, [r2, #0x48]
|
|
adds r0, r2, #0
|
|
bl sub_0807DD50
|
|
b _0806DA00
|
|
.align 2, 0
|
|
_0806D9F4: .4byte gUnk_080FD170
|
|
_0806D9F8:
|
|
adds r0, r2, #0
|
|
movs r1, #0
|
|
bl sub_0807DD94
|
|
_0806DA00:
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806DA04
|
|
sub_0806DA04: @ 0x0806DA04
|
|
push {lr}
|
|
ldr r3, [r1, #4]
|
|
lsls r3, r3, #3
|
|
ldr r1, _0806DA18 @ =gUnk_0811415C
|
|
adds r3, r3, r1
|
|
ldrb r2, [r3, #4]
|
|
movs r1, #1
|
|
bl sub_08078850
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806DA18: .4byte gUnk_0811415C
|
|
|
|
thumb_func_start sub_0806DA1C
|
|
sub_0806DA1C: @ 0x0806DA1C
|
|
push {lr}
|
|
ldr r3, _0806DA34 @ =gUnk_081141A4
|
|
ldr r2, [r1, #4]
|
|
lsls r0, r2, #2
|
|
adds r0, r0, r3
|
|
ldr r0, [r0]
|
|
ldr r1, _0806DA38 @ =gUnk_081141E4
|
|
adds r2, r2, r1
|
|
ldrb r1, [r2]
|
|
bl sub_0808091C
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806DA34: .4byte gUnk_081141A4
|
|
_0806DA38: .4byte gUnk_081141E4
|
|
|
|
thumb_func_start sub_0806DA3C
|
|
sub_0806DA3C: @ 0x0806DA3C
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
ldrb r0, [r2, #0xa]
|
|
subs r0, #1
|
|
cmp r0, #0xa
|
|
bhi _0806DA84
|
|
lsls r0, r0, #2
|
|
ldr r1, _0806DA54 @ =_0806DA58
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0806DA54: .4byte _0806DA58
|
|
_0806DA58: @ jump table
|
|
.4byte _0806DA88 @ case 0
|
|
.4byte _0806DA8C @ case 1
|
|
.4byte _0806DA90 @ case 2
|
|
.4byte _0806DA94 @ case 3
|
|
.4byte _0806DA98 @ case 4
|
|
.4byte _0806DAA0 @ case 5
|
|
.4byte _0806DAA0 @ case 6
|
|
.4byte _0806DAA0 @ case 7
|
|
.4byte _0806DAA0 @ case 8
|
|
.4byte _0806DAA0 @ case 9
|
|
.4byte _0806DA9C @ case 10
|
|
_0806DA84:
|
|
movs r0, #0
|
|
b _0806DAA6
|
|
_0806DA88:
|
|
movs r0, #1
|
|
b _0806DAA6
|
|
_0806DA8C:
|
|
movs r0, #2
|
|
b _0806DAA6
|
|
_0806DA90:
|
|
movs r0, #3
|
|
b _0806DAA6
|
|
_0806DA94:
|
|
movs r0, #4
|
|
b _0806DAA6
|
|
_0806DA98:
|
|
movs r0, #5
|
|
b _0806DAA6
|
|
_0806DA9C:
|
|
movs r0, #9
|
|
b _0806DAA6
|
|
_0806DAA0:
|
|
adds r0, r2, #0
|
|
bl sub_0801E99C
|
|
_0806DAA6:
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_0806DAAC
|
|
sub_0806DAAC: @ 0x0806DAAC
|
|
push {r4, lr}
|
|
adds r4, r1, #0
|
|
bl sub_0806DA3C
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
bl sub_0801E7F4
|
|
str r0, [r4, #0x14]
|
|
ldr r2, _0806DACC @ =gUnk_02033280
|
|
ldrb r1, [r2, #7]
|
|
movs r0, #1
|
|
orrs r0, r1
|
|
strb r0, [r2, #7]
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0806DACC: .4byte gUnk_02033280
|
|
|
|
thumb_func_start sub_0806DAD0
|
|
sub_0806DAD0: @ 0x0806DAD0
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0806DA3C
|
|
adds r1, r0, #0
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
adds r0, r4, #0
|
|
bl sub_08078790
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806DAE8
|
|
sub_0806DAE8: @ 0x0806DAE8
|
|
push {lr}
|
|
ldrb r0, [r0, #0xa]
|
|
subs r0, #1
|
|
cmp r0, #4
|
|
bhi _0806DB3A
|
|
lsls r0, r0, #2
|
|
ldr r1, _0806DAFC @ =_0806DB00
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0806DAFC: .4byte _0806DB00
|
|
_0806DB00: @ jump table
|
|
.4byte _0806DB14 @ case 0
|
|
.4byte _0806DB1C @ case 1
|
|
.4byte _0806DB24 @ case 2
|
|
.4byte _0806DB2C @ case 3
|
|
.4byte _0806DB34 @ case 4
|
|
_0806DB14:
|
|
movs r0, #0xee
|
|
bl sub_0807CCB4
|
|
b _0806DB3A
|
|
_0806DB1C:
|
|
movs r0, #0xef
|
|
bl sub_0807CCB4
|
|
b _0806DB3A
|
|
_0806DB24:
|
|
movs r0, #0xf0
|
|
bl sub_0807CCB4
|
|
b _0806DB3A
|
|
_0806DB2C:
|
|
movs r0, #0xf1
|
|
bl sub_0807CCB4
|
|
b _0806DB3A
|
|
_0806DB34:
|
|
movs r0, #0xf2
|
|
bl sub_0807CCB4
|
|
_0806DB3A:
|
|
movs r0, #0xcd
|
|
bl PlaySFX
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806DB44
|
|
sub_0806DB44: @ 0x0806DB44
|
|
push {r4, lr}
|
|
adds r4, r1, #0
|
|
movs r0, #0
|
|
str r0, [r4, #0x14]
|
|
movs r0, #0xee
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
beq _0806DB82
|
|
movs r0, #0xef
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
beq _0806DB82
|
|
movs r0, #0xf0
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
beq _0806DB82
|
|
movs r0, #0xf1
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
beq _0806DB82
|
|
movs r0, #0xf2
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
beq _0806DB82
|
|
movs r0, #1
|
|
str r0, [r4, #0x14]
|
|
_0806DB82:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806DB84
|
|
sub_0806DB84: @ 0x0806DB84
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
ldr r0, _0806DBE4 @ =gUnk_08114154
|
|
str r0, [r5, #0x48]
|
|
movs r0, #0x3e
|
|
movs r1, #4
|
|
movs r2, #0
|
|
bl CreateObject
|
|
adds r4, r0, #0
|
|
cmp r4, #0
|
|
beq _0806DBB6
|
|
ldr r2, _0806DBE8 @ =0xFFF80000
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
movs r3, #0
|
|
bl PositionRelative
|
|
ldr r1, _0806DBEC @ =gUnk_08016030
|
|
adds r0, r4, #0
|
|
bl sub_0807DAD0
|
|
adds r1, r4, #0
|
|
adds r1, #0x84
|
|
str r0, [r1]
|
|
_0806DBB6:
|
|
movs r0, #0x3e
|
|
movs r1, #5
|
|
movs r2, #0
|
|
bl CreateObject
|
|
adds r4, r0, #0
|
|
cmp r4, #0
|
|
beq _0806DBE2
|
|
movs r2, #0x80
|
|
lsls r2, r2, #0xc
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
movs r3, #0
|
|
bl PositionRelative
|
|
ldr r1, _0806DBF0 @ =gUnk_0801606C
|
|
adds r0, r4, #0
|
|
bl sub_0807DAD0
|
|
adds r1, r4, #0
|
|
adds r1, #0x84
|
|
str r0, [r1]
|
|
_0806DBE2:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0806DBE4: .4byte gUnk_08114154
|
|
_0806DBE8: .4byte 0xFFF80000
|
|
_0806DBEC: .4byte gUnk_08016030
|
|
_0806DBF0: .4byte gUnk_0801606C
|
|
|
|
thumb_func_start sub_0806DBF4
|
|
sub_0806DBF4: @ 0x0806DBF4
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
cmp r4, #1
|
|
blo _0806DC36
|
|
cmp r4, #4
|
|
bls _0806DC04
|
|
cmp r4, #6
|
|
bne _0806DC36
|
|
_0806DC04:
|
|
movs r4, #1
|
|
movs r0, #2
|
|
bl GetInventoryValue
|
|
cmp r0, #0
|
|
beq _0806DC12
|
|
movs r4, #2
|
|
_0806DC12:
|
|
movs r0, #3
|
|
bl GetInventoryValue
|
|
cmp r0, #0
|
|
beq _0806DC1E
|
|
movs r4, #3
|
|
_0806DC1E:
|
|
movs r0, #4
|
|
bl GetInventoryValue
|
|
cmp r0, #0
|
|
beq _0806DC2A
|
|
movs r4, #4
|
|
_0806DC2A:
|
|
movs r0, #6
|
|
bl GetInventoryValue
|
|
cmp r0, #0
|
|
beq _0806DC36
|
|
movs r4, #6
|
|
_0806DC36:
|
|
adds r0, r4, #0
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806DC3C
|
|
sub_0806DC3C: @ 0x0806DC3C
|
|
ldr r2, _0806DC54 @ =gUnk_02002A40
|
|
adds r1, r2, #0
|
|
adds r1, #0xb4
|
|
ldrb r3, [r1]
|
|
adds r1, r0, #0
|
|
adds r1, #0x68
|
|
strb r3, [r1]
|
|
adds r2, #0xb5
|
|
ldrb r1, [r2]
|
|
adds r0, #0x69
|
|
strb r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0806DC54: .4byte gUnk_02002A40
|
|
|
|
thumb_func_start sub_0806DC58
|
|
sub_0806DC58: @ 0x0806DC58
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
adds r0, #0x68
|
|
ldrb r0, [r0]
|
|
bl sub_0806DBF4
|
|
movs r1, #0
|
|
bl sub_08054414
|
|
adds r4, #0x69
|
|
ldrb r0, [r4]
|
|
bl sub_0806DBF4
|
|
movs r1, #1
|
|
bl sub_08054414
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806DC7C
|
|
sub_0806DC7C: @ 0x0806DC7C
|
|
push {r4, lr}
|
|
ldr r4, _0806DC84 @ =gUnk_081141F4
|
|
b _0806DC94
|
|
.align 2, 0
|
|
_0806DC84: .4byte gUnk_081141F4
|
|
_0806DC88:
|
|
ldrh r1, [r4]
|
|
adds r4, #2
|
|
ldr r0, _0806DC9C @ =0x00004072
|
|
movs r2, #1
|
|
bl sub_0807B314
|
|
_0806DC94:
|
|
ldrh r0, [r4]
|
|
cmp r0, #0
|
|
bne _0806DC88
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0806DC9C: .4byte 0x00004072
|
|
|
|
thumb_func_start sub_0806DCA0
|
|
sub_0806DCA0: @ 0x0806DCA0
|
|
push {r4, lr}
|
|
ldr r4, _0806DCA8 @ =gUnk_081141F4
|
|
b _0806DCB6
|
|
.align 2, 0
|
|
_0806DCA8: .4byte gUnk_081141F4
|
|
_0806DCAC:
|
|
ldrh r0, [r4]
|
|
adds r4, #2
|
|
movs r1, #1
|
|
bl sub_0807BA8C
|
|
_0806DCB6:
|
|
ldrh r0, [r4]
|
|
cmp r0, #0
|
|
bne _0806DCAC
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806DCC0
|
|
sub_0806DCC0: @ 0x0806DCC0
|
|
ldr r0, _0806DCD0 @ =gUnk_030010A0
|
|
movs r1, #0xf9
|
|
lsls r1, r1, #3
|
|
strh r1, [r0, #0x20]
|
|
movs r1, #0xf8
|
|
strh r1, [r0, #0x22]
|
|
bx lr
|
|
.align 2, 0
|
|
_0806DCD0: .4byte gUnk_030010A0
|
|
|
|
thumb_func_start sub_0806DCD4
|
|
sub_0806DCD4: @ 0x0806DCD4
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
bne _0806DD40
|
|
adds r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r0, [r4, #0xa]
|
|
subs r0, #1
|
|
cmp r0, #0xa
|
|
bhi _0806DD40
|
|
lsls r0, r0, #2
|
|
ldr r1, _0806DCF4 @ =_0806DCF8
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0806DCF4: .4byte _0806DCF8
|
|
_0806DCF8: @ jump table
|
|
.4byte _0806DD24 @ case 0
|
|
.4byte _0806DD24 @ case 1
|
|
.4byte _0806DD24 @ case 2
|
|
.4byte _0806DD24 @ case 3
|
|
.4byte _0806DD24 @ case 4
|
|
.4byte _0806DD2C @ case 5
|
|
.4byte _0806DD2C @ case 6
|
|
.4byte _0806DD2C @ case 7
|
|
.4byte _0806DD2C @ case 8
|
|
.4byte _0806DD2C @ case 9
|
|
.4byte _0806DD34 @ case 10
|
|
_0806DD24:
|
|
adds r0, r4, #0
|
|
bl sub_0809623C
|
|
b _0806DD40
|
|
_0806DD2C:
|
|
adds r0, r4, #0
|
|
bl sub_08096260
|
|
b _0806DD40
|
|
_0806DD34:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0806DB84
|
|
movs r0, #0
|
|
str r0, [r4, #0x48]
|
|
_0806DD40:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806DD44
|
|
sub_0806DD44: @ 0x0806DD44
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
bne _0806DD5A
|
|
adds r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0xa]
|
|
adds r0, r4, #0
|
|
bl sub_080042AC
|
|
_0806DD5A:
|
|
adds r0, r4, #0
|
|
bl sub_080042B8
|
|
adds r4, #0x59
|
|
ldrb r0, [r4]
|
|
cmp r0, #0xfe
|
|
bne _0806DD74
|
|
bl Random
|
|
movs r1, #0x1f
|
|
ands r0, r1
|
|
adds r0, #0x14
|
|
strb r0, [r4]
|
|
_0806DD74:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806DD78
|
|
sub_0806DD78: @ 0x0806DD78
|
|
push {lr}
|
|
ldr r2, _0806DD8C @ =gUnk_0811423C
|
|
ldrb r1, [r0, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806DD8C: .4byte gUnk_0811423C
|
|
|
|
thumb_func_start sub_0806DD90
|
|
sub_0806DD90: @ 0x0806DD90
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
adds r7, r0, #0
|
|
movs r0, #1
|
|
strb r0, [r7, #0xc]
|
|
movs r0, #0x3b
|
|
bl GetProgressFlag
|
|
rsbs r1, r0, #0
|
|
orrs r1, r0
|
|
lsrs r4, r1, #0x1f
|
|
movs r0, #0x3c
|
|
bl GetProgressFlag
|
|
cmp r0, #0
|
|
beq _0806DDB8
|
|
movs r4, #2
|
|
_0806DDB8:
|
|
movs r0, #0x3d
|
|
bl GetProgressFlag
|
|
cmp r0, #0
|
|
beq _0806DDC4
|
|
movs r4, #3
|
|
_0806DDC4:
|
|
adds r0, r7, #0
|
|
adds r1, r4, #0
|
|
bl sub_08004260
|
|
movs r0, #0x2e
|
|
ldrsh r5, [r7, r0]
|
|
movs r1, #0x32
|
|
ldrsh r4, [r7, r1]
|
|
ldr r2, _0806DEC0 @ =0x00004072
|
|
mov sl, r2
|
|
ldr r0, _0806DEC4 @ =gRoomControls
|
|
mov r8, r0
|
|
ldrh r1, [r0, #6]
|
|
adds r1, #0x18
|
|
subs r1, r5, r1
|
|
lsrs r1, r1, #4
|
|
movs r6, #0x3f
|
|
ands r1, r6
|
|
ldrh r0, [r0, #8]
|
|
adds r0, #0x10
|
|
subs r0, r4, r0
|
|
lsrs r0, r0, #4
|
|
ands r0, r6
|
|
lsls r0, r0, #6
|
|
orrs r1, r0
|
|
adds r7, #0x38
|
|
mov sb, r7
|
|
mov r0, sb
|
|
ldrb r2, [r0]
|
|
mov r0, sl
|
|
bl sub_0800015E
|
|
mov r2, r8
|
|
ldrh r1, [r2, #6]
|
|
adds r1, #0x18
|
|
subs r1, r5, r1
|
|
lsrs r1, r1, #4
|
|
ands r1, r6
|
|
ldrh r0, [r2, #8]
|
|
subs r0, r4, r0
|
|
lsrs r0, r0, #4
|
|
ands r0, r6
|
|
lsls r0, r0, #6
|
|
orrs r1, r0
|
|
mov r0, sb
|
|
ldrb r2, [r0]
|
|
mov r0, sl
|
|
bl sub_0800015E
|
|
mov r2, r8
|
|
ldrh r1, [r2, #6]
|
|
adds r1, #0x18
|
|
subs r1, r5, r1
|
|
lsrs r1, r1, #4
|
|
ands r1, r6
|
|
ldrh r0, [r2, #8]
|
|
subs r0, #0x10
|
|
subs r0, r4, r0
|
|
lsrs r0, r0, #4
|
|
ands r0, r6
|
|
lsls r0, r0, #6
|
|
orrs r1, r0
|
|
mov r0, sb
|
|
ldrb r2, [r0]
|
|
mov r0, sl
|
|
bl sub_0800015E
|
|
mov r2, r8
|
|
ldrh r1, [r2, #6]
|
|
subs r1, #0x18
|
|
subs r1, r5, r1
|
|
lsrs r1, r1, #4
|
|
ands r1, r6
|
|
ldrh r0, [r2, #8]
|
|
adds r0, #0x10
|
|
subs r0, r4, r0
|
|
lsrs r0, r0, #4
|
|
ands r0, r6
|
|
lsls r0, r0, #6
|
|
orrs r1, r0
|
|
mov r0, sb
|
|
ldrb r2, [r0]
|
|
mov r0, sl
|
|
bl sub_0800015E
|
|
mov r2, r8
|
|
ldrh r1, [r2, #6]
|
|
subs r1, #0x18
|
|
subs r1, r5, r1
|
|
lsrs r1, r1, #4
|
|
ands r1, r6
|
|
ldrh r0, [r2, #8]
|
|
subs r0, r4, r0
|
|
lsrs r0, r0, #4
|
|
ands r0, r6
|
|
lsls r0, r0, #6
|
|
orrs r1, r0
|
|
mov r0, sb
|
|
ldrb r2, [r0]
|
|
mov r0, sl
|
|
bl sub_0800015E
|
|
mov r1, r8
|
|
ldrh r0, [r1, #6]
|
|
subs r0, #0x18
|
|
subs r5, r5, r0
|
|
lsrs r5, r5, #4
|
|
ands r5, r6
|
|
ldrh r0, [r1, #8]
|
|
subs r0, #0x10
|
|
subs r4, r4, r0
|
|
lsrs r4, r4, #4
|
|
ands r4, r6
|
|
lsls r4, r4, #6
|
|
orrs r5, r4
|
|
mov r0, sb
|
|
ldrb r2, [r0]
|
|
mov r0, sl
|
|
adds r1, r5, #0
|
|
bl sub_0800015E
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0806DEC0: .4byte 0x00004072
|
|
_0806DEC4: .4byte gRoomControls
|
|
|
|
thumb_func_start sub_0806DEC8
|
|
sub_0806DEC8: @ 0x0806DEC8
|
|
push {lr}
|
|
bl sub_08004274
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_0806DED0
|
|
sub_0806DED0: @ 0x0806DED0
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldr r1, _0806DEF8 @ =gUnk_081142BC
|
|
ldrb r0, [r4, #0xc]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, [r0]
|
|
adds r0, r4, #0
|
|
bl _call_via_r1
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #0
|
|
bne _0806DEF4
|
|
ldr r2, _0806DEFC @ =gLinkState
|
|
ldrb r1, [r2, #0x1a]
|
|
movs r0, #0x80
|
|
orrs r0, r1
|
|
strb r0, [r2, #0x1a]
|
|
_0806DEF4:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0806DEF8: .4byte gUnk_081142BC
|
|
_0806DEFC: .4byte gLinkState
|
|
|
|
thumb_func_start sub_0806DF00
|
|
sub_0806DF00: @ 0x0806DF00
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
ldrb r5, [r4, #0xa]
|
|
cmp r5, #0
|
|
bne _0806DF5C
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #0x51
|
|
movs r1, #1
|
|
movs r2, #0
|
|
bl CreateNPC
|
|
str r0, [r4, #0x68]
|
|
str r4, [r0, #0x50]
|
|
movs r0, #0x51
|
|
movs r1, #1
|
|
movs r2, #1
|
|
bl CreateNPC
|
|
str r0, [r4, #0x6c]
|
|
str r4, [r0, #0x50]
|
|
movs r0, #0x51
|
|
movs r1, #1
|
|
movs r2, #2
|
|
bl CreateNPC
|
|
str r0, [r4, #0x70]
|
|
str r4, [r0, #0x50]
|
|
adds r0, r4, #0
|
|
adds r0, #0x74
|
|
strh r5, [r0]
|
|
adds r0, #2
|
|
movs r1, #0xa
|
|
strh r1, [r0]
|
|
ldr r0, _0806DF58 @ =gUnk_030010A0
|
|
strh r1, [r0, #6]
|
|
adds r0, r4, #0
|
|
bl sub_0806E014
|
|
adds r0, r4, #0
|
|
bl sub_0807DD50
|
|
b _0806DF6E
|
|
.align 2, 0
|
|
_0806DF58: .4byte gUnk_030010A0
|
|
_0806DF5C:
|
|
ldr r0, _0806DF70 @ =gUnk_080FD150
|
|
str r0, [r4, #0x48]
|
|
adds r1, r4, #0
|
|
adds r1, #0x38
|
|
movs r0, #1
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
bl sub_0806E0DC
|
|
_0806DF6E:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0806DF70: .4byte gUnk_080FD150
|
|
|
|
thumb_func_start sub_0806DF74
|
|
sub_0806DF74: @ 0x0806DF74
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r1, #0
|
|
bl sub_0807DD94
|
|
ldrb r0, [r4, #0xe]
|
|
cmp r0, #0xff
|
|
beq _0806DFB0
|
|
adds r0, r4, #0
|
|
adds r0, #0x44
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0806DF96
|
|
ldr r1, [r4, #0x70]
|
|
ldrb r0, [r1, #0xe]
|
|
adds r0, #1
|
|
strb r0, [r1, #0xe]
|
|
_0806DF96:
|
|
ldr r1, [r4, #0x68]
|
|
ldrb r0, [r1, #0xe]
|
|
adds r0, #1
|
|
strb r0, [r1, #0xe]
|
|
ldr r1, [r4, #0x6c]
|
|
ldrb r0, [r1, #0xe]
|
|
adds r0, #1
|
|
strb r0, [r1, #0xe]
|
|
movs r0, #0xff
|
|
strb r0, [r4, #0xe]
|
|
movs r0, #0
|
|
bl sub_0807CD10
|
|
_0806DFB0:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806DFB4
|
|
sub_0806DFB4: @ 0x0806DFB4
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
adds r1, r4, #0
|
|
adds r1, #0x39
|
|
movs r2, #0
|
|
ldrsb r2, [r1, r2]
|
|
cmp r2, #0
|
|
beq _0806DFD6
|
|
movs r0, #0
|
|
strb r0, [r1]
|
|
ldr r1, [r4, #0x50]
|
|
ldrb r0, [r4, #0xb]
|
|
strb r0, [r1, #0xe]
|
|
ldr r1, [r4, #0x50]
|
|
ldrb r0, [r4, #0xf]
|
|
strb r0, [r1, #0xb]
|
|
b _0806E00C
|
|
_0806DFD6:
|
|
ldrb r0, [r4, #0xe]
|
|
cmp r0, #0
|
|
beq _0806E00C
|
|
strb r2, [r4, #0xe]
|
|
ldrb r2, [r4, #0xf]
|
|
movs r0, #0x35
|
|
movs r1, #2
|
|
bl CreateObject
|
|
adds r1, r0, #0
|
|
cmp r1, #0
|
|
beq _0806DFF8
|
|
str r4, [r1, #0x50]
|
|
str r1, [r4, #0x54]
|
|
adds r0, r4, #0
|
|
bl CopyPosition
|
|
_0806DFF8:
|
|
adds r0, r4, #0
|
|
bl sub_080788E0
|
|
adds r0, r4, #0
|
|
adds r0, #0x76
|
|
ldrh r1, [r0]
|
|
movs r0, #0x74
|
|
movs r2, #2
|
|
bl sub_0807B7D8
|
|
_0806E00C:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start nullsub_111
|
|
nullsub_111: @ 0x0806E010
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806E014
|
|
sub_0806E014: @ 0x0806E014
|
|
push {r4, r5, r6, r7, lr}
|
|
adds r5, r0, #0
|
|
bl Random
|
|
movs r1, #0x70
|
|
ands r1, r0
|
|
lsrs r4, r1, #4
|
|
movs r0, #0xff
|
|
strb r0, [r5, #0xb]
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
adds r7, r0, #0
|
|
strb r0, [r5, #0xe]
|
|
movs r0, #0x93
|
|
bl sub_0807CBD0
|
|
adds r1, r0, #0
|
|
cmp r1, #0
|
|
bne _0806E088
|
|
adds r0, r5, #0
|
|
adds r0, #0x44
|
|
strb r1, [r0]
|
|
lsls r1, r4, #1
|
|
ldr r0, _0806E084 @ =gUnk_081142CC
|
|
adds r6, r1, r0
|
|
ldr r1, [r5, #0x68]
|
|
ldrb r0, [r6]
|
|
strb r0, [r1, #0xf]
|
|
ldr r1, [r5, #0x68]
|
|
movs r4, #0x90
|
|
lsls r4, r4, #0xf
|
|
adds r0, r5, #0
|
|
adds r2, r4, #0
|
|
adds r3, r4, #0
|
|
bl PositionRelative
|
|
ldr r1, [r5, #0x6c]
|
|
ldrb r0, [r6, #1]
|
|
strb r0, [r1, #0xf]
|
|
ldr r1, [r5, #0x6c]
|
|
movs r2, #0xd0
|
|
lsls r2, r2, #0xf
|
|
adds r0, r5, #0
|
|
adds r3, r4, #0
|
|
bl PositionRelative
|
|
ldr r1, [r5, #0x70]
|
|
ldrb r0, [r1, #0xf]
|
|
orrs r0, r7
|
|
strb r0, [r1, #0xf]
|
|
ldr r1, [r5, #0x70]
|
|
adds r0, r5, #0
|
|
bl CopyPosition
|
|
b _0806E0D6
|
|
.align 2, 0
|
|
_0806E084: .4byte gUnk_081142CC
|
|
_0806E088:
|
|
adds r1, r5, #0
|
|
adds r1, #0x44
|
|
movs r0, #1
|
|
strb r0, [r1]
|
|
lsls r1, r4, #2
|
|
ldr r0, _0806E0D8 @ =gUnk_081142DC
|
|
adds r6, r1, r0
|
|
ldr r1, [r5, #0x68]
|
|
ldrb r0, [r6]
|
|
strb r0, [r1, #0xf]
|
|
ldr r1, [r5, #0x68]
|
|
movs r2, #0xe0
|
|
lsls r2, r2, #0xe
|
|
movs r4, #0x90
|
|
lsls r4, r4, #0xf
|
|
adds r0, r5, #0
|
|
adds r3, r4, #0
|
|
bl PositionRelative
|
|
ldr r1, [r5, #0x6c]
|
|
ldrb r0, [r6, #1]
|
|
strb r0, [r1, #0xf]
|
|
ldr r1, [r5, #0x6c]
|
|
movs r2, #0xb0
|
|
lsls r2, r2, #0xf
|
|
adds r0, r5, #0
|
|
adds r3, r4, #0
|
|
bl PositionRelative
|
|
ldr r1, [r5, #0x70]
|
|
ldrb r0, [r6, #2]
|
|
strb r0, [r1, #0xf]
|
|
ldr r1, [r5, #0x70]
|
|
movs r2, #0xf0
|
|
lsls r2, r2, #0xf
|
|
adds r0, r5, #0
|
|
adds r3, r4, #0
|
|
bl PositionRelative
|
|
_0806E0D6:
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0806E0D8: .4byte gUnk_081142DC
|
|
|
|
thumb_func_start sub_0806E0DC
|
|
sub_0806E0DC: @ 0x0806E0DC
|
|
push {r4, r5, r6, lr}
|
|
adds r4, r0, #0
|
|
movs r6, #0
|
|
strb r6, [r4, #0xe]
|
|
ldrb r0, [r4, #0xf]
|
|
cmp r0, #0xff
|
|
beq _0806E138
|
|
movs r0, #2
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #0x2e
|
|
ldrsh r1, [r4, r0]
|
|
ldr r2, _0806E134 @ =gRoomControls
|
|
ldrh r0, [r2, #6]
|
|
subs r1, r1, r0
|
|
asrs r1, r1, #4
|
|
movs r3, #0x3f
|
|
ands r1, r3
|
|
movs r5, #0x32
|
|
ldrsh r0, [r4, r5]
|
|
ldrh r2, [r2, #8]
|
|
subs r0, r0, r2
|
|
asrs r0, r0, #4
|
|
ands r0, r3
|
|
lsls r0, r0, #6
|
|
orrs r1, r0
|
|
adds r5, r4, #0
|
|
adds r5, #0x76
|
|
strh r1, [r5]
|
|
ldr r0, [r4, #0x54]
|
|
cmp r0, #0
|
|
beq _0806E120
|
|
bl sub_0805E7BC
|
|
str r6, [r4, #0x54]
|
|
_0806E120:
|
|
adds r0, r4, #0
|
|
bl sub_08078828
|
|
ldrh r1, [r5]
|
|
movs r0, #0x73
|
|
movs r2, #2
|
|
bl sub_0807B7D8
|
|
b _0806E13C
|
|
.align 2, 0
|
|
_0806E134: .4byte gRoomControls
|
|
_0806E138:
|
|
movs r0, #3
|
|
strb r0, [r4, #0xc]
|
|
_0806E13C:
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806E140
|
|
sub_0806E140: @ 0x0806E140
|
|
push {r4, r5, lr}
|
|
adds r3, r0, #0
|
|
adds r5, r1, #0
|
|
ldrb r1, [r3, #0xb]
|
|
cmp r1, #0
|
|
beq _0806E1AC
|
|
movs r0, #1
|
|
str r0, [r5, #0x14]
|
|
adds r1, r3, #0
|
|
adds r1, #0x74
|
|
ldrh r0, [r1]
|
|
adds r0, #1
|
|
strh r0, [r1]
|
|
adds r1, #2
|
|
ldrh r2, [r1]
|
|
adds r0, r3, #0
|
|
adds r0, #0x44
|
|
ldrb r0, [r0]
|
|
adds r4, r1, #0
|
|
cmp r0, #0
|
|
bne _0806E16E
|
|
lsls r0, r2, #1
|
|
b _0806E172
|
|
_0806E16E:
|
|
lsls r0, r2, #1
|
|
adds r0, r0, r2
|
|
_0806E172:
|
|
strh r0, [r4]
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
ldr r1, _0806E18C @ =0x000003E7
|
|
cmp r0, r1
|
|
bls _0806E194
|
|
strh r1, [r4]
|
|
movs r0, #0
|
|
str r0, [r5, #0x14]
|
|
ldr r0, _0806E190 @ =0x0000421B
|
|
bl TextboxTryNoOverlap
|
|
b _0806E1C0
|
|
.align 2, 0
|
|
_0806E18C: .4byte 0x000003E7
|
|
_0806E190: .4byte 0x0000421B
|
|
_0806E194:
|
|
ldr r0, _0806E1A4 @ =0x00004218
|
|
bl TextboxTryNoOverlap
|
|
ldr r1, _0806E1A8 @ =gTextBox
|
|
ldrh r0, [r4]
|
|
str r0, [r1, #0x10]
|
|
b _0806E1C0
|
|
.align 2, 0
|
|
_0806E1A4: .4byte 0x00004218
|
|
_0806E1A8: .4byte gTextBox
|
|
_0806E1AC:
|
|
str r1, [r5, #0x14]
|
|
adds r0, r3, #0
|
|
adds r0, #0x74
|
|
strh r1, [r0]
|
|
adds r4, r3, #0
|
|
adds r4, #0x76
|
|
strh r1, [r4]
|
|
ldr r0, _0806E1D4 @ =0x0000421C
|
|
bl TextboxTryNoOverlap
|
|
_0806E1C0:
|
|
ldr r1, _0806E1D8 @ =gUnk_030010A0
|
|
ldrh r0, [r4]
|
|
strh r0, [r1, #6]
|
|
ldr r2, _0806E1DC @ =gUnk_02033280
|
|
ldrb r1, [r2, #7]
|
|
movs r0, #1
|
|
orrs r0, r1
|
|
strb r0, [r2, #7]
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0806E1D4: .4byte 0x0000421C
|
|
_0806E1D8: .4byte gUnk_030010A0
|
|
_0806E1DC: .4byte gUnk_02033280
|
|
|
|
thumb_func_start sub_0806E1E0
|
|
sub_0806E1E0: @ 0x0806E1E0
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0806E014
|
|
ldr r0, [r4, #0x68]
|
|
bl sub_0806E0DC
|
|
ldr r0, [r4, #0x6c]
|
|
bl sub_0806E0DC
|
|
ldr r0, [r4, #0x70]
|
|
bl sub_0806E0DC
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806E1FC
|
|
sub_0806E1FC: @ 0x0806E1FC
|
|
push {lr}
|
|
ldr r0, _0806E208 @ =gUnk_0813AD4C
|
|
bl sub_08080840
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806E208: .4byte gUnk_0813AD4C
|
|
|
|
thumb_func_start sub_0806E20C
|
|
sub_0806E20C: @ 0x0806E20C
|
|
push {r4, lr}
|
|
ldr r4, _0806E224 @ =gUnk_030010A0
|
|
ldrh r0, [r4, #6]
|
|
cmp r0, #0
|
|
beq _0806E230
|
|
ldr r0, _0806E228 @ =0x0000421F
|
|
bl TextboxTryNoOverlap
|
|
ldr r1, _0806E22C @ =gTextBox
|
|
ldrh r0, [r4, #6]
|
|
str r0, [r1, #0x10]
|
|
b _0806E236
|
|
.align 2, 0
|
|
_0806E224: .4byte gUnk_030010A0
|
|
_0806E228: .4byte 0x0000421F
|
|
_0806E22C: .4byte gTextBox
|
|
_0806E230:
|
|
ldr r0, _0806E238 @ =0x00004220
|
|
bl TextboxTryNoOverlap
|
|
_0806E236:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0806E238: .4byte 0x00004220
|
|
|
|
thumb_func_start sub_0806E23C
|
|
sub_0806E23C: @ 0x0806E23C
|
|
push {lr}
|
|
ldr r1, _0806E24C @ =gUnk_030010A0
|
|
ldrh r0, [r1, #6]
|
|
cmp r0, #0
|
|
beq _0806E24A
|
|
bl ModRupees
|
|
_0806E24A:
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806E24C: .4byte gUnk_030010A0
|
|
|
|
thumb_func_start sub_0806E250
|
|
sub_0806E250: @ 0x0806E250
|
|
push {r4, lr}
|
|
adds r4, r1, #0
|
|
movs r0, #0
|
|
str r0, [r4, #0x14]
|
|
movs r0, #0x31
|
|
bl sub_0801E7F4
|
|
cmp r0, #0
|
|
beq _0806E266
|
|
movs r0, #1
|
|
str r0, [r4, #0x14]
|
|
_0806E266:
|
|
ldr r2, _0806E274 @ =gUnk_02033280
|
|
ldrb r1, [r2, #7]
|
|
movs r0, #1
|
|
orrs r0, r1
|
|
strb r0, [r2, #7]
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0806E274: .4byte gUnk_02033280
|
|
|
|
thumb_func_start sub_0806E278
|
|
sub_0806E278: @ 0x0806E278
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
bne _0806E2A8
|
|
adds r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldr r0, _0806E2A0 @ =gUnk_081142FC
|
|
str r0, [r4, #0x48]
|
|
adds r0, r4, #0
|
|
bl sub_0807DD50
|
|
ldr r3, _0806E2A4 @ =gUnk_08114304
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
movs r2, #0
|
|
bl sub_08078850
|
|
b _0806E2B0
|
|
.align 2, 0
|
|
_0806E2A0: .4byte gUnk_081142FC
|
|
_0806E2A4: .4byte gUnk_08114304
|
|
_0806E2A8:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0807DD94
|
|
_0806E2B0:
|
|
ldr r0, _0806E2CC @ =gLinkState
|
|
ldr r0, [r0, #0x30]
|
|
movs r1, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806E2D0
|
|
ldrb r0, [r4, #0x18]
|
|
subs r1, #0x84
|
|
ands r1, r0
|
|
movs r0, #1
|
|
orrs r1, r0
|
|
strb r1, [r4, #0x18]
|
|
b _0806E2DA
|
|
.align 2, 0
|
|
_0806E2CC: .4byte gLinkState
|
|
_0806E2D0:
|
|
ldrb r1, [r4, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
strb r0, [r4, #0x18]
|
|
_0806E2DA:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806E2DC
|
|
sub_0806E2DC: @ 0x0806E2DC
|
|
push {lr}
|
|
adds r3, r0, #0
|
|
ldr r0, _0806E300 @ =gUnk_02002A40
|
|
ldrb r0, [r0, #8]
|
|
subs r0, #2
|
|
cmp r0, #0
|
|
bge _0806E2EC
|
|
movs r0, #0
|
|
_0806E2EC:
|
|
ldrb r1, [r3, #0xb]
|
|
lsls r1, r1, #6
|
|
lsls r0, r0, #3
|
|
ldr r2, _0806E304 @ =gUnk_08114308
|
|
adds r0, r0, r2
|
|
adds r1, r1, r0
|
|
adds r0, r3, #0
|
|
bl sub_0806F1AC
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806E300: .4byte gUnk_02002A40
|
|
_0806E304: .4byte gUnk_08114308
|
|
|
|
thumb_func_start sub_0806E308
|
|
sub_0806E308: @ 0x0806E308
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
ldrb r5, [r4, #0xc]
|
|
cmp r5, #1
|
|
beq _0806E34C
|
|
cmp r5, #1
|
|
bgt _0806E31C
|
|
cmp r5, #0
|
|
beq _0806E322
|
|
b _0806E3E0
|
|
_0806E31C:
|
|
cmp r5, #2
|
|
beq _0806E3C6
|
|
b _0806E3E0
|
|
_0806E322:
|
|
ldr r1, _0806E348 @ =gUnk_081144F0
|
|
adds r0, r4, #0
|
|
bl sub_0806FDEC
|
|
cmp r0, #0
|
|
beq _0806E3E0
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
adds r0, #0x69
|
|
strb r5, [r0]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
adds r0, r4, #0
|
|
bl sub_0807DD50
|
|
b _0806E3E0
|
|
.align 2, 0
|
|
_0806E348: .4byte gUnk_081144F0
|
|
_0806E34C:
|
|
adds r2, r4, #0
|
|
adds r2, #0x39
|
|
movs r1, #0
|
|
ldrsb r1, [r2, r1]
|
|
cmp r1, #2
|
|
bne _0806E3BC
|
|
movs r0, #0
|
|
strb r1, [r4, #0xc]
|
|
strb r0, [r2]
|
|
adds r0, r4, #0
|
|
adds r0, #0x58
|
|
ldrb r0, [r0]
|
|
adds r1, r4, #0
|
|
adds r1, #0x69
|
|
strb r0, [r1]
|
|
ldr r1, _0806E3B0 @ =gLinkEntity
|
|
adds r0, r4, #0
|
|
bl sub_080045C4
|
|
bl sub_0806F5A4
|
|
adds r1, r0, #0
|
|
adds r0, r4, #0
|
|
bl sub_08004260
|
|
adds r0, r4, #0
|
|
bl sub_08002632
|
|
ldr r1, _0806E3B4 @ =gUnk_08001A7C
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r3, [r0]
|
|
adds r0, r4, #0
|
|
adds r0, #0x68
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x32
|
|
bne _0806E398
|
|
adds r3, #6
|
|
_0806E398:
|
|
ldrh r1, [r3]
|
|
ldrh r2, [r3, #2]
|
|
ldrh r3, [r3, #4]
|
|
adds r0, r4, #0
|
|
bl sub_0801DFB4
|
|
ldr r0, _0806E3B8 @ =gLinkState
|
|
adds r0, #0x8b
|
|
movs r1, #3
|
|
strb r1, [r0]
|
|
b _0806E3E0
|
|
.align 2, 0
|
|
_0806E3B0: .4byte gLinkEntity
|
|
_0806E3B4: .4byte gUnk_08001A7C
|
|
_0806E3B8: .4byte gLinkState
|
|
_0806E3BC:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0807DD94
|
|
b _0806E3E0
|
|
_0806E3C6:
|
|
adds r0, r4, #0
|
|
bl sub_0806F148
|
|
cmp r0, #0
|
|
beq _0806E3E0
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
adds r0, #0x69
|
|
ldrb r1, [r0]
|
|
adds r0, r4, #0
|
|
bl sub_08004260
|
|
_0806E3E0:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806E3E4
|
|
sub_0806E3E4: @ 0x0806E3E4
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
adds r0, #0x5a
|
|
ldrb r2, [r0]
|
|
movs r0, #0x81
|
|
rsbs r0, r0, #0
|
|
ands r2, r0
|
|
adds r2, #8
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0806FF60
|
|
ldrb r2, [r4, #0x1e]
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
bl sub_0806FF60
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
movs r2, #0
|
|
bl sub_0806FF88
|
|
adds r0, r4, #0
|
|
bl sub_0807000C
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806E418
|
|
sub_0806E418: @ 0x0806E418
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
ldr r0, _0806E438 @ =gUnk_02002A40
|
|
ldrb r0, [r0, #8]
|
|
subs r0, #2
|
|
cmp r0, #0
|
|
bge _0806E428
|
|
movs r0, #0
|
|
_0806E428:
|
|
lsls r1, r0, #3
|
|
ldr r0, _0806E43C @ =gUnk_081144FC
|
|
adds r1, r1, r0
|
|
adds r0, r2, #0
|
|
bl sub_0806F1AC
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806E438: .4byte gUnk_02002A40
|
|
_0806E43C: .4byte gUnk_081144FC
|
|
|
|
thumb_func_start sub_0806E440
|
|
sub_0806E440: @ 0x0806E440
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0801E99C
|
|
adds r1, r4, #0
|
|
adds r1, #0x68
|
|
strb r0, [r1]
|
|
ldrb r1, [r1]
|
|
adds r0, r4, #0
|
|
bl sub_08078784
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806E458
|
|
sub_0806E458: @ 0x0806E458
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
bne _0806E498
|
|
ldr r1, _0806E494 @ =gUnk_081144F0
|
|
adds r0, r4, #0
|
|
bl sub_0806FDEC
|
|
cmp r0, #0
|
|
beq _0806E49E
|
|
ldrb r0, [r4, #0xc]
|
|
adds r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
adds r0, r4, #0
|
|
movs r1, #0xa
|
|
bl sub_08004260
|
|
b _0806E49E
|
|
.align 2, 0
|
|
_0806E494: .4byte gUnk_081144F0
|
|
_0806E498:
|
|
adds r0, r4, #0
|
|
bl sub_08004274
|
|
_0806E49E:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0806E4A0
|
|
sub_0806E4A0: @ 0x0806E4A0
|
|
push {lr}
|
|
ldr r2, _0806E4B4 @ =gUnk_081145B4
|
|
ldrb r1, [r0, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0806E4B4: .4byte gUnk_081145B4
|
|
|
|
thumb_func_start sub_0806E4B8
|
|
sub_0806E4B8: @ 0x0806E4B8
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
adds r0, #1
|
|
movs r5, #0
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
bl sub_0801E99C
|
|
adds r1, r4, #0
|
|
adds r1, #0x68
|
|
strb r0, [r1]
|
|
ldrb r1, [r1]
|
|
adds r0, r4, #0
|
|
bl sub_080787A8
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl sub_0805E3A0
|
|
strb r5, [r4, #0xd]
|
|
adds r0, r4, #0
|
|
bl sub_0806E4EC
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806E4EC
|
|
sub_0806E4EC: @ 0x0806E4EC
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
ldrb r0, [r5, #0xd]
|
|
cmp r0, #0
|
|
bne _0806E50E
|
|
adds r0, #1
|
|
strb r0, [r5, #0xd]
|
|
bl Random
|
|
movs r1, #0x1f
|
|
ands r0, r1
|
|
adds r0, #0x3c
|
|
strb r0, [r5, #0xe]
|
|
adds r0, r5, #0
|
|
movs r1, #0
|
|
bl sub_080042AC
|
|
_0806E50E:
|
|
ldrb r0, [r5, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r5, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0806E552
|
|
bl Random
|
|
movs r1, #1
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
beq _0806E52A
|
|
movs r0, #3
|
|
b _0806E52C
|
|
_0806E52A:
|
|
movs r0, #2
|
|
_0806E52C:
|
|
strb r0, [r5, #0xc]
|
|
movs r0, #0
|
|
strb r0, [r5, #0xd]
|
|
bl Random
|
|
movs r1, #1
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
beq _0806E552
|
|
ldr r4, _0806E560 @ =gUnk_081145C8
|
|
bl Random
|
|
movs r1, #3
|
|
ands r1, r0
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r4
|
|
ldrh r0, [r1]
|
|
bl sub_08004488
|
|
_0806E552:
|
|
adds r0, r5, #0
|
|
bl sub_0806E65C
|
|
adds r0, r5, #0
|
|
bl sub_080042B8
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0806E560: .4byte gUnk_081145C8
|
|
|
|
thumb_func_start sub_0806E564
|
|
sub_0806E564: @ 0x0806E564
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xd]
|
|
cmp r0, #0
|
|
bne _0806E5AA
|
|
adds r0, #1
|
|
strb r0, [r4, #0xd]
|
|
bl Random
|
|
movs r2, #1
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _0806E590
|
|
ldrb r0, [r4, #0x18]
|
|
lsls r1, r0, #0x19
|
|
lsrs r1, r1, #0x1f
|
|
eors r1, r2
|
|
lsls r1, r1, #6
|
|
subs r2, #0x42
|
|
ands r2, r0
|
|
orrs r2, r1
|
|
strb r2, [r4, #0x18]
|
|
_0806E590:
|
|
bl Random
|
|
movs r1, #1
|
|
ands r0, r1
|
|
adds r0, #1
|
|
strb r0, [r4, #0xe]
|
|
movs r0, #0xc0
|
|
lsls r0, r0, #9
|
|
str r0, [r4, #0x20]
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
bl sub_080042AC
|
|
_0806E5AA:
|
|
movs r1, #0xa0
|
|
lsls r1, r1, #6
|
|
adds r0, r4, #0
|
|
bl sub_08003FC4
|
|
cmp r0, #0
|
|
bne _0806E5D4
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
lsls r0, r0, #0x18
|
|
lsrs r1, r0, #0x18
|
|
cmp r1, #0
|
|
bne _0806E5CE
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
strb r1, [r4, #0xd]
|
|
b _0806E5D4
|
|
_0806E5CE:
|
|
movs r0, #0xc0
|
|
lsls r0, r0, #9
|
|
str r0, [r4, #0x20]
|
|
_0806E5D4:
|
|
adds r0, r4, #0
|
|
bl sub_0806E65C
|
|
adds r0, r4, #0
|
|
bl sub_080042B8
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806E5E4
|
|
sub_0806E5E4: @ 0x0806E5E4
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xd]
|
|
cmp r0, #0
|
|
bne _0806E622
|
|
adds r0, #1
|
|
strb r0, [r4, #0xd]
|
|
bl Random
|
|
movs r5, #1
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
beq _0806E612
|
|
ldrb r0, [r4, #0x18]
|
|
lsls r1, r0, #0x19
|
|
lsrs r1, r1, #0x1f
|
|
eors r1, r5
|
|
lsls r1, r1, #6
|
|
movs r2, #0x41
|
|
rsbs r2, r2, #0
|
|
ands r2, r0
|
|
orrs r2, r1
|
|
strb r2, [r4, #0x18]
|
|
_0806E612:
|
|
bl Random
|
|
adds r1, r0, #0
|
|
ands r1, r5
|
|
adds r1, #2
|
|
adds r0, r4, #0
|
|
bl sub_080042AC
|
|
_0806E622:
|
|
adds r0, r4, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0806E638
|
|
movs r1, #0
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
strb r1, [r4, #0xd]
|
|
_0806E638:
|
|
adds r0, r4, #0
|
|
bl sub_0806E65C
|
|
adds r0, r4, #0
|
|
bl sub_080042B8
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0806E648
|
|
sub_0806E648: @ 0x0806E648
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0806F148
|
|
cmp r0, #0
|
|
beq _0806E658
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
_0806E658:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|